2012-01-01 11:49:41 +01:00

1762 lines
21 KiB
NASM

;Copyright (c) 1990-2012 by Neil Dodwell
;Released with permission from Neil Dodwell under GPLv2
;See LICENSE file for full license text
Entercode proc near
mov keypadax,ax
mov keypadcx,cx
call getridofreels
call loadkeypad
call createpanel
call showicon
call showouterpad
call showkeypad
call readmouse
call showpointer
call worktoscreen
call delpointer
mov presspointer,0
mov getback,0
keypadloop:
cmp quitrequested, 0
jnz numberright
call delpointer
call readmouse
call showkeypad
call showpointer
call vsync
cmp presscount,0
jz nopresses
dec presscount
jmp afterpress
nopresses: mov pressed,255
mov graphicpress,255
call vsync
afterpress: call dumppointer
call dumpkeypad
call dumptextline
mov bx,offset cs:keypadlist
call checkcoords
cmp getback,1
jz numberright
cmp lightcount,1
jnz notendkey
cmp lockstatus,0
jz numberright
jmp keypadloop
notendkey: cmp presscount,40
jnz keypadloop
call addtopresslist
cmp pressed,11
jnz keypadloop
mov ax,keypadax
mov cx,keypadcx
call isitright
jnz incorrect
mov lockstatus,0
mov al,11
call playchannel1
mov lightcount,120
mov presspointer,0
jmp keypadloop
incorrect: mov al,11
call playchannel1
mov lightcount,120
mov presspointer,0
jmp keypadloop
numberright: mov manisoffscreen,0
call getridoftemp
call restorereels
call redrawmainscrn
call worktoscreenm
ret
keypadlist: dw keypadx+9,keypadx+30,keypady+9,keypady+22,buttonone
dw keypadx+31,keypadx+52,keypady+9,keypady+22,buttontwo
dw keypadx+53,keypadx+74,keypady+9,keypady+22,buttonthree
dw keypadx+9,keypadx+30,keypady+23,keypady+40,buttonfour
dw keypadx+31,keypadx+52,keypady+23,keypady+40,buttonfive
dw keypadx+53,keypadx+74,keypady+23,keypady+40,buttonsix
dw keypadx+9,keypadx+30,keypady+41,keypady+58,buttonseven
dw keypadx+31,keypadx+52,keypady+41,keypady+58,buttoneight
dw keypadx+53,keypadx+74,keypady+41,keypady+58,buttonnine
dw keypadx+9,keypadx+30,keypady+59,keypady+73,buttonnought
dw keypadx+31,keypadx+74,keypady+59,keypady+73,buttonenter
dw keypadx+72,keypadx+86,keypady+80,keypady+94,quitkey
dw 0,320,0,200,blank
dw 0ffffh
endp
Loadkeypad proc near
mov dx,offset cs:extragraphics1
call loadintotemp
ret
endp
Quitkey proc near
cmp commandtype,222
jz alreadyqk
mov commandtype,222
mov al,4
call commandonly
alreadyqk: mov ax,mousebutton
cmp ax,oldbutton
jz notqk
and ax,1
jnz doqk
notqk: ret
doqk: mov getback,1
ret
endp
Addtopresslist proc near
cmp presspointer,5
jz nomorekeys
mov al,pressed
cmp al,10
jnz not10
mov al,0
not10: mov bx,presspointer
mov dx,seg presslist
mov es,dx
add bx,offset es:presslist
mov [es:bx],al
inc presspointer
nomorekeys: ret
endp
Buttonone proc near
mov cl,1
call buttonpress
ret
endp
Buttontwo proc near
mov cl,2
call buttonpress
ret
endp
Buttonthree proc near
mov cl,3
call buttonpress
ret
endp
Buttonfour proc near
mov cl,4
call buttonpress
ret
endp
Buttonfive proc near
mov cl,5
call buttonpress
ret
endp
Buttonsix proc near
mov cl,6
call buttonpress
ret
endp
Buttonseven proc near
mov cl,7
call buttonpress
ret
endp
Buttoneight proc near
mov cl,8
call buttonpress
ret
endp
Buttonnine proc near
mov cl,9
call buttonpress
ret
endp
Buttonnought proc near
mov cl,10
call buttonpress
ret
endp
Buttonenter proc near
mov cl,11
call buttonpress
ret
endp
Buttonpress proc near
mov ch,cl
add ch,100
cmp commandtype,ch
jz alreadyb
mov commandtype,ch
mov al,cl
add al,4
push cx
call commandonly
pop cx
alreadyb: mov ax,mousebutton
cmp ax,oldbutton
jz notb
and ax,1
jnz dob
notb: ret
dob: mov pressed,cl
add cl,21
mov graphicpress,cl
mov presscount,40
cmp cl,32
jz nonoise
mov al,10
call playchannel1
nonoise: ret
endp
Showouterpad proc near
mov di,keypadx-3
mov bx,keypady-4
mov ds,tempgraphics
mov al,1
mov ah,0
call showframe
mov di,keypadx+74
mov bx,keypady+76
mov ds,tempgraphics
mov al,37
mov ah,0
call showframe
ret
endp
Showkeypad proc near
mov al,22
mov di,keypadx+9
mov bx,keypady+5
call singlekey
mov al,23
mov di,keypadx+31
mov bx,keypady+5
call singlekey
mov al,24
mov di,keypadx+53
mov bx,keypady+5
call singlekey
mov al,25
mov di,keypadx+9
mov bx,keypady+23
call singlekey
mov al,26
mov di,keypadx+31
mov bx,keypady+23
call singlekey
mov al,27
mov di,keypadx+53
mov bx,keypady+23
call singlekey
mov al,28
mov di,keypadx+9
mov bx,keypady+41
call singlekey
mov al,29
mov di,keypadx+31
mov bx,keypady+41
call singlekey
mov al,30
mov di,keypadx+53
mov bx,keypady+41
call singlekey
mov al,31
mov di,keypadx+9
mov bx,keypady+59
call singlekey
mov al,32
mov di,keypadx+31
mov bx,keypady+59
call singlekey
cmp lightcount,0
jz notenter
dec lightcount
mov al,36
mov bx,keypady-1+63
cmp lockstatus,0
jnz changelight
mov al,41
mov bx,keypady+4+63
changelight: cmp lightcount,60
jc gotlight
cmp lightcount,100
jnc gotlight
dec al
gotlight: mov ds,tempgraphics
mov ah,0
mov di,keypadx+60
call showframe
notenter: ret
endp
Singlekey proc near
cmp graphicpress,al
jnz gotkey
add al,11
cmp presscount,8
jnc gotkey
sub al,11
; cmp presscount,10
; jnc gotkey
; sub al,11
gotkey: mov ds,tempgraphics
sub al,20
mov ah,0
call showframe
ret
endp
Dumpkeypad proc near
mov di,keypadx-3
mov bx,keypady-4
mov cl,120
mov ch,90
call multidump
ret
endp
;---------------------------------
Usemenu proc near
call getridofreels
call loadmenu
call createpanel
call showpanel
call showicon
mov newobs,0
call drawfloor
call printsprites
mov al,4
mov ah,0
mov di,menux-48
mov bx,menuy-4
mov ds,tempgraphics2
call showframe
call getundermenu
mov al,5
mov ah,0
mov di,menux+54
mov bx,menuy+72
mov ds,tempgraphics2
call showframe
call worktoscreenm
mov getback,0
menuloop: call delpointer
call putundermenu
call showmenu
call readmouse
call showpointer
call vsync
call dumppointer
call dumpmenu
call dumptextline
mov bx,offset cs:menulist
call checkcoords
cmp getback,1
jnz menuloop
mov manisoffscreen,0
call redrawmainscrn
call getridoftemp
call getridoftemp2
call restorereels
call worktoscreenm
ret
menulist: dw menux+54,menux+68,menuy+72,menuy+88,quitkey
dw 0,320,0,200,blank
dw 0ffffh
ret
endp
Dumpmenu proc near
mov di,menux
mov bx,menuy
mov cl,48
mov ch,48
call multidump
ret
endp
Getundermenu proc near
mov di,menux
mov bx,menuy
mov cl,48
mov ch,48
mov ds,buffers
mov si,undertimedtext
call multiget
ret
endp
Putundermenu proc near
mov di,menux
mov bx,menuy
mov cl,48
mov ch,48
mov ds,buffers
mov si,undertimedtext
call multiput
ret
endp
Showoutermenu proc near
mov al,40
mov ah,0
mov di,menux-34
mov bx,menuy-40
mov ds,tempgraphics
call showframe
mov al,41
mov ah,0
mov di,menux+64-34
mov bx,menuy-40
mov ds,tempgraphics
call showframe
mov al,42
mov ah,0
mov di,menux-26
mov bx,menuy+57-40
mov ds,tempgraphics
call showframe
mov al,43
mov ah,0
mov di,menux+64-26
mov bx,menuy+57-40
mov ds,tempgraphics
call showframe
ret
endp
Showmenu proc near
inc menucount
cmp menucount,37*2
jnz menuframeok
mov menucount,0
menuframeok: mov al,menucount
shr al,1
mov ah,0
mov di,menux
mov bx,menuy
mov ds,tempgraphics
call showframe
ret
endp
Loadmenu proc near
mov dx,offset cs:spritename3
call loadintotemp
mov dx,offset cs:mongraphics2
call loadintotemp2
ret
endp
Viewfolder proc near
mov manisoffscreen,1
call getridofall
call loadfolder
mov folderpage,0
call showfolder
call worktoscreenm
mov getback,0
folderloop: call delpointer
call readmouse
call showpointer
call vsync
call dumppointer
call dumptextline
mov bx,offset cs:folderlist
call checkcoords
cmp getback,0
jz folderloop
mov manisoffscreen,0
call getridoftemp
call getridoftemp2
call getridoftemp3
call getridoftempcharset
call restoreall
call redrawmainscrn
call worktoscreenm
ret
folderlist: dw 280,320,160,200,quitkey
dw 143,300,6,194,nextfolder
dw 0,143,6,194,lastfolder
dw 0,320,0,200,blank
dw 0ffffh
endp
Nextfolder proc near
cmp folderpage,12
jnz cannextf
call blank
ret
cannextf: cmp commandtype,201
jz alreadynextf
mov commandtype,201
mov al,16
call commandonly
alreadynextf: mov ax,mousebutton
cmp ax,oldbutton
jz notnextf
cmp ax,1
jz donextf
notnextf: ret
donextf: inc folderpage
call folderhints
call delpointer
call showfolder
mov mousebutton,0
mov bx,offset cs:folderlist
call checkcoords
call worktoscreenm
ret
endp
Folderhints proc near
cmp folderpage,5
jnz notaideadd
cmp aidedead,1
jz notaideadd
mov al,13
call getlocation
cmp al,1
jz notaideadd
mov al,13
call setlocation
call showfolder
mov al,30
call findtext1
mov di,0
mov bx,86
mov dl,141
mov ah,16
call printdirect
call worktoscreenm
mov cx,200
call hangonp
ret
notaideadd: cmp folderpage,9
jnz notaristoadd
mov al,7
call getlocation
cmp al,1
jz notaristoadd
mov al,7
call setlocation
call showfolder
mov al,31
call findtext1
mov di,0
mov bx,86
mov dl,141
mov ah,16
call printdirect
call worktoscreenm
mov cx,200
call hangonp
notaristoadd: ret
endp
Lastfolder proc near
cmp folderpage,0
jnz canlastf
call blank
ret
canlastf: cmp commandtype,202
jz alreadylastf
mov commandtype,202
mov al,17
call commandonly
alreadylastf: cmp folderpage,0
jz notlastf
mov ax,mousebutton
cmp ax,oldbutton
jz notlastf
cmp ax,1
jz dolastf
notlastf: ret
dolastf: dec folderpage
call delpointer
call showfolder
mov mousebutton,0
mov bx,offset cs:folderlist
call checkcoords
call worktoscreenm
ret
endp
Loadfolder proc near
mov dx,offset cs:foldergraphic1
call loadintotemp
mov dx,offset cs:foldergraphic2
call loadintotemp2
mov dx,offset cs:foldergraphic3
call loadintotemp3
mov dx,offset cs:characterset3
call loadtempcharset
mov dx,offset cs:foldertext
call loadtemptext
ret
endp
Showfolder proc near
mov commandtype,255
cmp folderpage,0
jz closedfolder
call usetempcharset
call createpanel2
mov ds,tempgraphics
mov di,0
mov bx,0
mov al,0
mov ah,0
call showframe
mov ds,tempgraphics
mov di,143
mov bx,0
mov al,1
mov ah,0
call showframe
mov ds,tempgraphics
mov di,0
mov bx,92
mov al,2
mov ah,0
call showframe
mov ds,tempgraphics
mov di,143
mov bx,92
mov al,3
mov ah,0
call showframe
call folderexit
cmp folderpage,1
jz noleftpage
call showleftpage
noleftpage: cmp folderpage,12
jz norightpage
call showrightpage
norightpage: call usecharset1
call undertextline
ret
closedfolder: call createpanel2
mov ds,tempgraphics3
mov di,143-28
mov bx,0
mov al,0
mov ah,0
call showframe
mov ds,tempgraphics3
mov di,143-28
mov bx,92
mov al,1
mov ah,0
call showframe
call folderexit
call undertextline
ret
endp
Folderexit proc near
mov ds,tempgraphics2
mov di,296
mov bx,178
mov al,6
mov ah,0
call showframe
ret
endp
Showleftpage proc near
mov ds,tempgraphics2
mov di,0
mov bx,12
mov al,3
mov ah,0
call showframe
mov bx,12+5
mov cx,9
leftpageloop: push cx bx
mov ds,tempgraphics2
mov di,0
mov al,4
mov ah,0
call showframe
pop bx cx
add bx,16
loop leftpageloop
mov ds,tempgraphics2
mov di,0
mov al,5
mov ah,0
call showframe
mov linespacing,8
mov charshift,91
mov kerning,1
mov bl,folderpage
dec bl
dec bl
add bl,bl
mov bh,0
add bx,bx
mov es,textfile1
mov si,[es:bx]
add si,66*2
mov di,2
mov bx,48
mov dl,140
mov cx,2
twolotsleft: push cx
contleftpage: call printdirect
add bx,linespacing
cmp al,0
jnz contleftpage
pop cx
loop twolotsleft
mov kerning,0
mov charshift,0
mov linespacing,10
mov es,workspace
mov ds,workspace
mov di,(48*320)+2
mov si,(48*320)+2+130
mov cx,120
flipfolder: push cx di si
mov cx,65
flipfolderline: mov al,[es:di]
mov ah,[es:si]
mov [es:di],ah
mov [es:si],al
dec si
inc di
loop flipfolderline
pop si di cx
add si,320
add di,320
loop flipfolder
ret
endp
Showrightpage proc near
mov ds,tempgraphics2
mov di,143
mov bx,12
mov al,0
mov ah,0
call showframe
mov bx,12+37
mov cx,7
rightpageloop: push cx bx
mov ds,tempgraphics2
mov di,143
mov al,1
mov ah,0
call showframe
pop bx cx
add bx,16
loop rightpageloop
mov ds,tempgraphics2
mov di,143
mov al,2
mov ah,0
call showframe
mov linespacing,8
mov kerning,1
mov bl,folderpage
dec bl
add bl,bl
mov bh,0
add bx,bx
mov es,textfile1
mov si,[es:bx]
add si,66*2
mov di,152
mov bx,48
mov dl,140
mov cx,2
twolotsright: push cx
contrightpage: call printdirect
add bx,linespacing
cmp al,0
jnz contrightpage
pop cx
loop twolotsright
mov kerning,0
mov linespacing,10
ret
endp
Entersymbol proc near
mov manisoffscreen,1
call getridofreels
mov dx,offset cs:symbolgraphic
call loadintotemp
mov symboltopx,24
mov symboltopdir,0
mov symbolbotx,24
mov symbolbotdir,0
call redrawmainscrn
call showsymbol
call undertextline
call worktoscreenm
mov getback,0
symbolloop: call delpointer
call updatesymboltop
call updatesymbolbot
call showsymbol
call readmouse
call showpointer
call vsync
call dumppointer
call dumptextline
call dumpsymbol
mov bx,offset cs:symbollist
call checkcoords
cmp getback,0
jz symbolloop
cmp symbolbotnum,3
jnz symbolwrong
cmp symboltopnum,5
jnz symbolwrong
mov al,43
call removesetobject
mov al,46
call placesetobject
mov ah,roomnum
add ah,12
mov al,0
call turnanypathon
mov manisoffscreen,0
call redrawmainscrn
call getridoftemp
call restorereels
call worktoscreenm
mov al,13
call playchannel1
ret
symbolwrong: mov al,46
call removesetobject
mov al,43
call placesetobject
mov ah,roomnum
add ah,12
mov al,0
call turnanypathoff
mov manisoffscreen,0
call redrawmainscrn
call getridoftemp
call restorereels
call worktoscreenm
ret
symbollist: dw symbolx+40,symbolx+64,symboly+2,symboly+16,quitsymbol
dw symbolx,symbolx+52,symboly+20,symboly+50,settopleft
dw symbolx+52,symbolx+104,symboly+20,symboly+50,settopright
dw symbolx,symbolx+52,symboly+50,symboly+80,setbotleft
dw symbolx+52,symbolx+104,symboly+50,symboly+80,setbotright
dw 0,320,0,200,blank
dw 0ffffh
endp
Quitsymbol proc near
cmp symboltopx,24
jnz blank
cmp symbolbotx,24
jnz blank
cmp commandtype,222
jz alreadyqs
mov commandtype,222
mov al,18
call commandonly
alreadyqs: mov ax,mousebutton
cmp ax,oldbutton
jz notqs
and ax,1
jnz doqs
notqs: ret
doqs: mov getback,1
ret
endp
Settopleft proc near
cmp symboltopdir,0
jnz blank
cmp commandtype,210
jz alreadytopl
mov commandtype,210
mov al,19
call commandonly
alreadytopl: cmp mousebutton,0
jz notopleft
mov symboltopdir,-1
notopleft: ret
endp
Settopright proc near
cmp symboltopdir,0
jnz blank
cmp commandtype,211
jz alreadytopr
mov commandtype,211
mov al,20
call commandonly
alreadytopr: cmp mousebutton,0
jz notopright
mov symboltopdir,1
notopright: ret
endp
Setbotleft proc near
cmp symbolbotdir,0
jnz blank
cmp commandtype,212
jz alreadybotl
mov commandtype,212
mov al,21
call commandonly
alreadybotl: cmp mousebutton,0
jz nobotleft
mov symbolbotdir,-1
nobotleft: ret
endp
Setbotright proc near
cmp symbolbotdir,0
jnz blank
cmp commandtype,213
jz alreadybotr
mov commandtype,213
mov al,22
call commandonly
alreadybotr: cmp mousebutton,0
jz nobotright
mov symbolbotdir,1
nobotright: ret
endp
Dumpsymbol proc near
mov newtextline,0
mov di,symbolx
mov bx,symboly+20
mov cl,104
mov ch,60
call multidump
ret
endp
Showsymbol proc near
mov al,12
mov ah,0
mov di,symbolx
mov bx,symboly
mov ds,tempgraphics
call showframe
mov al,symboltopx
mov ah,0
mov di,ax
add di,symbolx-44
mov al,symboltopnum
mov bx,symboly+20
mov ds,tempgraphics
mov ah,32
push ax di bx ds
call showframe
pop ds bx di ax
call nextsymbol
add di,49
push ax di bx ds
call showframe
pop ds bx di ax
call nextsymbol
add di,49
call showframe
mov al,symbolbotx
mov ah,0
mov di,ax
add di,symbolx-44
mov al,symbolbotnum
add al,6
mov bx,symboly+49
mov ds,tempgraphics
mov ah,32
push ax di bx ds
call showframe
pop ds bx di ax
call nextsymbol
add di,49
push ax di bx ds
call showframe
pop ds bx di ax
call nextsymbol
add di,49
call showframe
ret
endp
Nextsymbol proc near
inc al
cmp al,6
jz topwrap
cmp al,12
jz botwrap
ret
topwrap: mov al,0
ret
botwrap: mov al,6
ret
endp
Updatesymboltop proc near
cmp symboltopdir,0
jz topfinished
cmp symboltopdir,-1
jz backwards
inc symboltopx
cmp symboltopx,49
jnz notwrapfor
mov symboltopx,0
dec symboltopnum
cmp symboltopnum,-1
jnz topfinished
mov symboltopnum,5
ret
notwrapfor: cmp symboltopx,24
jnz topfinished
mov symboltopdir,0
ret
backwards: dec symboltopx
cmp symboltopx,-1
jnz notwrapback
mov symboltopx,48
inc symboltopnum
cmp symboltopnum,6
jnz topfinished
mov symboltopnum,0
ret
notwrapback: cmp symboltopx,24
jnz topfinished
mov symboltopdir,0
topfinished: ret
endp
Updatesymbolbot proc near
cmp symbolbotdir,0
jz botfinished
cmp symbolbotdir,-1
jz backwardsbot
inc symbolbotx
cmp symbolbotx,49
jnz notwrapforb
mov symbolbotx,0
dec symbolbotnum
cmp symbolbotnum,-1
jnz botfinished
mov symbolbotnum,5
ret
notwrapforb: cmp symbolbotx,24
jnz botfinished
mov symbolbotdir,0
ret
backwardsbot: dec symbolbotx
cmp symbolbotx,-1
jnz notwrapbackb
mov symbolbotx,48
inc symbolbotnum
cmp symbolbotnum,6
jnz botfinished
mov symbolbotnum,0
ret
notwrapbackb: cmp symbolbotx,24
jnz botfinished
mov symbolbotdir,0
botfinished: ret
endp
Dumpsymbox proc near
cmp dumpx,-1
jz nodumpsym
mov di,dumpx
mov bx,dumpy
mov cl,30
mov ch,77;30
call multidump
mov dumpx,-1
nodumpsym: ret
endp
Usediary proc near
call getridofreels
mov dx,offset cs:diarygraphic
call loadintotemp
mov dx,offset cs:diarytext
call loadtemptext
mov dx,offset cs:characterset3
call loadtempcharset
call createpanel
call showicon
call showdiary
call undertextline
call showdiarypage
call readmouse
call showpointer
call worktoscreen
call delpointer
mov getback,0
diaryloop: call delpointer
call readmouse
call showdiarykeys
call showpointer
call vsync
call dumppointer
call dumpdiarykeys
call dumptextline
mov bx,offset cs:diarylist
call checkcoords
cmp getback,0
jz diaryloop
call getridoftemp
call getridoftemptext
call getridoftempcharset
call restorereels
mov manisoffscreen,0
call redrawmainscrn
call worktoscreenm
ret
diarylist: dw diaryx+94,diaryx+110,diaryy+97,diaryy+113,diarykeyn
dw diaryx+151,diaryx+167,diaryy+71,diaryy+87,diarykeyp
dw diaryx+176,diaryx+192,diaryy+108,diaryy+124,quitkey
dw 0,320,0,200,blank
dw 0ffffh
ret
endp
Showdiary proc near
mov al,1
mov ah,0
mov di,diaryx
mov bx,diaryy+37
mov ds,tempgraphics
call showframe
mov al,2
mov ah,0
mov di,diaryx+176
mov bx,diaryy+108
mov ds,tempgraphics
call showframe
ret
endp
Showdiarykeys proc near
cmp presscount,0
jz nokeyatall
dec presscount
cmp presscount,0
jz nokeyatall
cmp pressed,"N"
jnz nokeyn
mov al,3
cmp presscount,1
jz gotkeyn
mov al,4
gotkeyn: mov ah,0
mov di,diaryx+94
mov bx,diaryy+97
mov ds,tempgraphics
call showframe
cmp presscount,1
jnz notshown
call showdiarypage
notshown: ret
nokeyn: mov al,5
cmp presscount,1
jz gotkeyp
mov al,6
gotkeyp: mov ah,0
mov di,diaryx+151
mov bx,diaryy+71
mov ds,tempgraphics
call showframe
cmp presscount,1
jnz notshowp
call showdiarypage
notshowp: ret
nokeyatall: ret
endp
Dumpdiarykeys proc near
cmp presscount,1
jnz notdumpdiary
cmp sartaindead,1
jz notsartadd
cmp diarypage,5
jnz notsartadd
cmp diarypage,5
jnz notsartadd
mov al,6
call getlocation
cmp al,1
jz notsartadd
mov al,6
call setlocation
call delpointer
mov al,12
call findtext1
mov di,70 ;diaryx+48
mov bx,106 ;diaryy+16
mov dl,241
mov ah,16
call printdirect
call worktoscreenm
mov cx,200
call hangonp
call createpanel
call showicon
call showdiary
call showdiarypage
call worktoscreenm
call showpointer
ret
notsartadd: mov di,diaryx+48
mov bx,diaryy+15
mov cl,200
mov ch,16
call multidump
notdumpdiary: mov di,diaryx+94
mov bx,diaryy+97
mov cl,16
mov ch,16
call multidump
mov di,diaryx+151
mov bx,diaryy+71
mov cl,16
mov ch,16
call multidump
ret
endp
Diarykeyp proc near
cmp commandtype,214
jz alreadykeyp
mov commandtype,214
mov al,23
call commandonly
alreadykeyp: cmp mousebutton,0
jz notkeyp
mov ax,oldbutton
cmp ax,mousebutton
jz notkeyp
cmp presscount,0
jnz notkeyp
mov al,16
call playchannel1
mov presscount,12
mov pressed,"P"
dec diarypage
cmp diarypage,-1
jnz notkeyp
mov diarypage,11
notkeyp: ret
endp
Diarykeyn proc near
cmp commandtype,213
jz alreadykeyn
mov commandtype,213
mov al,23
call commandonly
alreadykeyn: cmp mousebutton,0
jz notkeyn
mov ax,oldbutton
cmp ax,mousebutton
jz notkeyn
cmp presscount,0
jnz notkeyn
mov al,16
call playchannel1
mov presscount,12
mov pressed,"N"
inc diarypage
cmp diarypage,12
jnz notkeyn
mov diarypage,0
notkeyn: ret
endp
Showdiarypage proc near
mov al,0
mov ah,0
mov di,diaryx
mov bx,diaryy
mov ds,tempgraphics
call showframe
mov al,diarypage
call findtext1
mov kerning,1
call usetempcharset
mov di,diaryx+48
mov bx,diaryy+16
mov dl,240
mov ah,16
mov charshift,91+91
call printdirect
mov di,diaryx+129
mov bx,diaryy+16
mov dl,240
mov ah,16
call printdirect
mov di,diaryx+48
mov bx,diaryy+23
mov dl,240
mov ah,16
call printdirect
mov kerning,0
mov charshift,0
call usecharset1
ret
endp
Findtext1 proc near
mov ah,0
mov si,ax
add si,si
mov es,textfile1
mov ax,[es:si]
add ax,textstart
mov si,ax
ret
endp