diff options
author | Vladimir Menshakov | 2011-06-15 21:52:54 +0400 |
---|---|---|
committer | Vladimir Menshakov | 2011-06-15 21:52:54 +0400 |
commit | dfe83466b56a6bf382903c37aa520f282052b47f (patch) | |
tree | 79659068ca717c3080c551a1dc89af117dab6b83 /devtools/tasmrecover/dreamweb/saveload.asm | |
parent | b97a5dcfb2e71d358274e017e4f1fdca02db4fa7 (diff) | |
download | scummvm-rg350-dfe83466b56a6bf382903c37aa520f282052b47f.tar.gz scummvm-rg350-dfe83466b56a6bf382903c37aa520f282052b47f.tar.bz2 scummvm-rg350-dfe83466b56a6bf382903c37aa520f282052b47f.zip |
DREAMWEB: converted line endings to the unix format
Diffstat (limited to 'devtools/tasmrecover/dreamweb/saveload.asm')
-rw-r--r-- | devtools/tasmrecover/dreamweb/saveload.asm | 2964 |
1 files changed, 1482 insertions, 1482 deletions
diff --git a/devtools/tasmrecover/dreamweb/saveload.asm b/devtools/tasmrecover/dreamweb/saveload.asm index a814c50bd6..f10d87149d 100644 --- a/devtools/tasmrecover/dreamweb/saveload.asm +++ b/devtools/tasmrecover/dreamweb/saveload.asm @@ -1,1495 +1,1495 @@ ;Copyright (c) 1990-2011 by Neil Dodwell ;Released with permission from Neil Dodwell under GPLv2 ;See LICENSE file for full license text -
-
-Zoomonoff proc near
-
- cmp watchingtime,0
- jnz blank
- cmp pointermode,2
- jz blank
- cmp commandtype,222
- jz alreadyonoff
- mov commandtype,222
- mov al,39
- call commandonly
-alreadyonoff: mov ax,mousebutton
- cmp ax,oldbutton
- jz nozoomonoff
- and ax,1
- jnz dozoomonoff
-nozoomonoff: ret
-
-dozoomonoff: mov al,zoomon
- xor al,1
- mov zoomon,al
-
- call createpanel
- mov newobs,0
- call drawfloor
- call printsprites
- call reelsonscreen
- call showicon
- call getunderzoom
- call undertextline
- mov al,39
- call commandonly
- call readmouse
- call worktoscreenm
- ret
-
- endp
-
-
-
-
-
-
-
-
-
-
-
-
-Saveload proc near
-
- if demo
- call dosreturn
- ret
- else
- cmp watchingtime,0
- jnz blank
- cmp pointermode,2
- jz blank
- cmp commandtype,253
- jz alreadyops
- mov commandtype,253
- mov al,43
- call commandonly
-alreadyops: mov ax,mousebutton
- cmp ax,oldbutton
- jz noops
- and ax,1
- jz noops
- call dosaveload
-noops: ret
- endif
-
- endp
-
-
-
-
-
-
-
-
-
-
-
-Dosaveload proc near
-
- mov pointerframe,0
- mov textaddressx,70
- mov textaddressy,182-8
- mov textlen,181
- mov manisoffscreen,1
- call clearwork
- call createpanel2
- call undertextline
- call getridofall ;reels
- call loadsavebox
- call showopbox
- call showmainops
- call worktoscreen ;2
- jmp donefirstops
-
-restartops: call showopbox
- call showmainops
- call worktoscreenm
-donefirstops: mov getback,0
-waitops: call readmouse
- call showpointer
- call vsync
- call dumppointer
- call dumptextline
- call delpointer
- mov bx,offset cs:opslist
- call checkcoords
- cmp getback,0
- jz waitops
- cmp getback,2
- jz restartops
- mov textaddressx,13
- mov textaddressy,182
- mov textlen,240
- cmp getback,4
- jz justret
- call getridoftemp
- call restoreall ;reels
- call redrawmainscrn
- call worktoscreenm
- mov commandtype,200
-justret: mov manisoffscreen,0
- ret
-
-opslist: dw opsx+59,opsx+114,opsy+30,opsy+76,getbackfromops
- dw opsx+10,opsx+77,opsy+10,opsy+59,dosreturn
- dw opsx+128,opsx+190,opsy+16,opsy+100,discops
- dw 0,320,0,200,blank
- dw 0ffffh
-
-
- endp
-
-
-
-Getbackfromops proc near
-
- cmp mandead,2
- jz opsblock1
- call getback1
- ret
-opsblock1: call blank
- ret
-
- endp
-
-
-
-
-
-Showmainops proc near
-
- mov ds,tempgraphics
- mov di,opsx+10
- mov bx,opsy+10
- mov al,8
- mov ah,0
- call showframe
- mov ds,tempgraphics
- mov di,opsx+59
- mov bx,opsy+30
- mov al,7
- mov ah,0
- call showframe
- mov ds,tempgraphics
- mov di,opsx+128+4
- mov bx,opsy+12
- mov al,1
- mov ah,0
- call showframe
- ret
-
- endp
-
-
-
-
-Showdiscops proc near
-
- mov ds,tempgraphics
- mov di,opsx+128+4
- mov bx,opsy+12
- mov al,1
- mov ah,0
- call showframe
- mov ds,tempgraphics
- mov di,opsx+10
- mov bx,opsy+10
- mov al,9
- mov ah,0
- call showframe
- mov ds,tempgraphics
- mov di,opsx+59
- mov bx,opsy+30
- mov al,10
- mov ah,0
- call showframe
- mov ds,tempgraphics
- mov di,opsx+176+2
- mov bx,opsy+60-4
- mov al,5
- mov ah,0
- call showframe
- ret
-
- endp
-
-
-
-
-Loadsavebox proc near
-
- mov dx,offset cs:icongraphics8
- call loadintotemp
- ret
-
- endp
-
-
-
-
-
-
-
-
-Loadgame proc near
-
- cmp commandtype,246
- jz alreadyload
- mov commandtype,246
- mov al,41
- call commandonly
-alreadyload: mov ax,mousebutton
- cmp ax,oldbutton
- jz noload
- cmp ax,1
- jz doload
-noload: ret
-
-doload: mov loadingorsave,1
- call showopbox
- call showloadops
- mov currentslot,0
- call showslots
- call shownames
- mov pointerframe,0
- call worktoscreenm
- call namestoold
- mov getback,0
-
-loadops: call delpointer
- call readmouse
- call showpointer
- call vsync
- call dumppointer
- call dumptextline
-
- mov bx,offset cs:loadlist
- call checkcoords
- cmp getback,0
- jz loadops
- cmp getback,2
- jz quitloaded
- call getridoftemp
- ;call clearnoreels
- mov dx,seg madeuproomdat
- mov es,dx
- mov bx,offset es:madeuproomdat
- call startloading
- call loadroomssample
- mov roomloaded,1
- mov newlocation,255
- call clearsprites
- call initman
- call initrain
- mov textaddressx,13
- mov textaddressy,182
- mov textlen,240
- call startup
- call worktoscreen
- mov getback,4
-quitloaded: ret
-
-loadlist: dw opsx+176,opsx+192,opsy+60,opsy+76,getbacktoops
- dw opsx+128,opsx+190,opsy+12,opsy+100,actualload
- dw opsx+2,opsx+92,opsy+4,opsy+81,selectslot
- dw 0,320,0,200,blank
- dw 0ffffh
-
- endp
-
-
-
-
-
-
-
-Getbacktoops proc near
-
- cmp commandtype,201
- jz alreadygetops
- mov commandtype,201
- mov al,42
- call commandonly
-alreadygetops: mov ax,mousebutton
- cmp ax,oldbutton
- jz nogetbackops
- and ax,1
- jnz dogetbackops
-nogetbackops: ret
-
-dogetbackops: call oldtonames
- mov getback,2
- ret
-
- endp
-
-
-
-
-
-
-
-Discops proc near
-
- cmp commandtype,249
- jz alreadydiscops
- mov commandtype,249
- mov al,43
- call commandonly
-alreadydiscops: mov ax,mousebutton
- cmp ax,oldbutton
- jz nodiscops
- and ax,1
- jnz dodiscops
-nodiscops: ret
-dodiscops: call scanfornames
- mov loadingorsave,2
- call showopbox
- call showdiscops
- mov currentslot,0
- call worktoscreenm
-
- mov getback,0
-discopsloop: call delpointer
- call readmouse
- call showpointer
- call vsync
- call dumppointer
- call dumptextline
- mov bx,offset cs:discopslist
- call checkcoords
- cmp getback,0
- jz discopsloop
- ret
-
-discopslist: dw opsx+59,opsx+114,opsy+30,opsy+76,loadgame
- dw opsx+10,opsx+79,opsy+10,opsy+59,savegame
- dw opsx+176,opsx+192,opsy+60,opsy+76,getbacktoops
- dw 0,320,0,200,blank
- dw 0ffffh
-
- endp
-
-
-
-
-
-
-
-
-Savegame proc near
-
- cmp mandead,2
- jnz cansaveok
- call blank
- ret
-
-cansaveok: cmp commandtype,247
- jz alreadysave
- mov commandtype,247
- mov al,44
- call commandonly
-alreadysave: mov ax,mousebutton
- and ax,1
- jnz dosave
- ret
-dosave: mov loadingorsave,2
- call showopbox
- call showsaveops
- mov currentslot,0
- call showslots
- call shownames
- call worktoscreenm
-
- call namestoold
- mov bufferin,0
- mov bufferout,0
-
- mov getback,0
-
-saveops: call delpointer
- call checkinput
- call readmouse
- call showpointer
- call vsync
- call dumppointer
- call dumptextline
-
- mov bx,offset cs:savelist
- call checkcoords
- cmp getback,0
- jz saveops
- ret
-
-savelist: dw opsx+176,opsx+192,opsy+60,opsy+76,getbacktoops
- dw opsx+128,opsx+190,opsy+12,opsy+100,actualsave
- dw opsx+2,opsx+92,opsy+4,opsy+81,selectslot
- dw 0,320,0,200,blank
- dw 0ffffh
-
- endp
-
-
-
-
-
-Actualsave proc near
-
- cmp commandtype,222
- jz alreadyactsave
- mov commandtype,222
- mov al,44
- call commandonly
-alreadyactsave: mov ax,mousebutton
- and ax,1
- jz noactsave
-
- mov dx,seg savenames
- mov ds,dx
- mov si,offset savenames
- mov al,currentslot
- mov ah,0
- mov cx,17
- mul cx
- add si,ax
- inc si
- cmp byte ptr [si],0
- jz noactsave
-
- mov al,location
- mov ah,0
- mov cx,32
- mul cx
- push cs
- pop ds
- mov si,offset cs:roomdata
- add si,ax
-
- mov di,offset cs:madeuproomdat
- mov bx,di
- push cs
- pop es
- mov cx,16
- rep movsw
-
- mov al,roomssample
- mov [es:bx+13],al
- mov al,mapx
- mov [es:bx+15],al
- mov al,mapy
- mov [es:bx+16],al
- mov al,liftflag
- mov [es:bx+20],al
- mov al,manspath
- mov [es:bx+21],al
- mov al,facing
- mov [es:bx+22],al
- mov al,255
- mov [es:bx+27],al
- call saveposition
- call getridoftemp
- call restoreall ;reels
- mov textaddressx,13
- mov textaddressy,182
- mov textlen,240
- call redrawmainscrn
- call worktoscreenm
- mov getback,4
-noactsave: ret
-
- endp
-
-
-
-
-Actualload proc near
-
- cmp commandtype,221
- jz alreadyactload
- mov commandtype,221
- mov al,41
- call commandonly
-alreadyactload: mov ax,mousebutton
- cmp ax,oldbutton
- jz notactload
- cmp ax,1
- jnz notactload
-
- mov dx,seg savenames
- mov ds,dx
- mov si,offset savenames
- mov al,currentslot
- mov ah,0
- mov cx,17
- mul cx
- add si,ax
- inc si
- cmp byte ptr [si],0
- jz notactload
- call loadposition
- mov getback,1
-notactload: ret
-
- endp
-
-
-
-
-Selectslot2 proc near
-
- cmp mousebutton,0
- jz noselslot2
- mov loadingorsave,2
-noselslot2: call selectslot
- ret
-
- endp
-
-
-
-
-
-Checkinput proc near
-
- cmp loadingorsave,3
- jz nokeypress
- call readkey
- mov al,currentkey
- cmp al,0
- jz nokeypress
- cmp al,13
- jnz notret
- mov loadingorsave,3
- jmp afterkey
-notret: cmp al,8
- jnz nodel2
- cmp cursorpos,0
- jz nokeypress
- call getnamepos
- dec cursorpos
- mov byte ptr [es:bx],0
- mov byte ptr [es:bx+1],1
- jmp afterkey
-nodel2: ;cmp al,32
- ;jz spacepress
- ;cmp al,"A"
- ;jc nokeypress
- ;cmp al,"Z"+1
- ;jnc nokeypress
-spacepress: cmp cursorpos,14
- jz nokeypress
- call getnamepos
- inc cursorpos
- mov al,currentkey
- mov [es:bx+1],al
- mov byte ptr [es:bx+2],0
- mov byte ptr [es:bx+3],1
- jmp afterkey
-
-nokeypress: ret
-
-afterkey: call showopbox
- call shownames
- call showslots
- call showsaveops
- call worktoscreenm
- ret
-
- endp
-
-
-
-
-
-Getnamepos proc near
-
- mov al,currentslot
- mov ah,0
- mov cx,17
- mul cx
- mov dx,seg savenames
- mov es,dx
- mov bx,offset es:savenames
- add bx,ax
- mov al,cursorpos
- mov ah,0
- add bx,ax
- ret
-
- endp
-
-
-
-
-
-
-
-
-Showopbox proc near
-
- mov ds,tempgraphics
- mov di,opsx
- mov bx,opsy
- mov al,0
- mov ah,0
- call showframe
-
- mov ds,tempgraphics
- mov di,opsx
- mov bx,opsy+55
- mov al,4
- mov ah,0
- call showframe
- ret
-
- endp
-
-
-
-
-
-
-
-
-Showloadops proc near
-
- mov ds,tempgraphics
- mov di,opsx+128+4
- mov bx,opsy+12
- mov al,1
- mov ah,0
- call showframe
- mov ds,tempgraphics
- mov di,opsx+176+2
- mov bx,opsy+60-4
- mov al,5
- mov ah,0
- call showframe
-
- mov di,opsx+104
- mov bx,opsy+14
- mov al,55
- mov dl,101
- call printmessage
- ret
-
- endp
-
-
-
-
-Showsaveops proc near
-
- mov ds,tempgraphics
- mov di,opsx+128+4
- mov bx,opsy+12
- mov al,1
- mov ah,0
- call showframe
- mov ds,tempgraphics
- mov di,opsx+176+2
- mov bx,opsy+60-4
- mov al,5
- mov ah,0
- call showframe
-
- mov di,opsx+104
- mov bx,opsy+14
- mov al,54
- mov dl,101
- call printmessage
- ret
-
- endp
-
-
-
-
-
-Selectslot proc near
-
- cmp commandtype,244
- jz alreadysel
- mov commandtype,244
- mov al,45
- call commandonly
-alreadysel: mov ax,mousebutton
- cmp ax,1
- jnz noselslot
- cmp ax,oldbutton
- jz noselslot
-
- cmp loadingorsave,3
- jnz notnocurs
- dec loadingorsave
-notnocurs: call oldtonames
- mov ax,mousey
- sub ax,opsy+4
- mov cl,-1
-getslotnum: inc cl
- sub ax,11
- jnc getslotnum
- mov currentslot,cl
- call delpointer
- call showopbox
- call showslots
- call shownames
- cmp loadingorsave,1
- jz isloadmode
- call showsaveops
- call readmouse
- call showpointer
- call worktoscreen
- call delpointer
- ret
-isloadmode: call showloadops
- call readmouse
- call showpointer
- call worktoscreen
- call delpointer
- ret
-
-noselslot: ret
-
- endp
-
-
-
-
-
-
-
-
-
-
-Showslots proc near
-
- mov di,opsx+7
- mov bx,opsy+8
- mov al,2
- mov ds,tempgraphics
- mov ah,0
- call showframe
-
- mov di,opsx+10
- mov bx,opsy+11
- mov cl,0
-slotloop: push cx di bx
-
- cmp cl,currentslot
- jnz nomatchslot
- mov al,3
- mov ds,tempgraphics
- mov ah,0
- call showframe
-
-nomatchslot: pop bx di cx
- add bx,10
- inc cl
- cmp cl,7
- jnz slotloop
- ret
-
- endp
-
-
-
-
-
-Shownames proc near
-
- mov dx,seg savenames
- mov es,dx
- mov si,offset es:savenames+1
- mov di,opsx+21
- mov bx,opsy+10
- mov cl,0
-
-shownameloop: push cx di es bx si
- mov al,4
- cmp cl,currentslot
- jnz nomatchslot2
-
- cmp loadingorsave,2
- jnz loadmode
-
- mov dx,si
- mov cx,15
- add si,15
-zerostill: dec si
- dec cl
- cmp byte ptr [es:si],1
- jnz foundcharacter
- jmp zerostill
-foundcharacter: mov cursorpos,cl
- mov byte ptr [es:si],"/"
- mov byte ptr [es:si+1],0
- push si
- mov si,dx
- mov dl,200
- mov ah,0
- call printdirect
- pop si
- mov byte ptr [es:si],0
- mov byte ptr [es:si+1],1
- jmp afterprintname
-
-loadmode: mov al,0
- mov dl,200
- mov ah,0
- mov charshift,91
- call printdirect
- mov charshift,0
- jmp afterprintname
-
-nomatchslot2: mov dl,200
- mov ah,0
- call printdirect
-
-afterprintname: pop si bx es di cx
- add si,17
- add bx,10
- inc cl
- cmp cl,7
- jnz shownameloop
- ret
-
- endp
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Dosreturn proc near
-
- cmp commandtype,250
- jz alreadydos
- mov commandtype,250
- mov al,46
- call commandonly
-alreadydos: mov ax,mousebutton
- and ax,1
- jz nodos
-
-quickquit2: call soundend
- call removeemm
-
-quickquit: if recording
- call saverec
- mov bx,rechandle
- mov ah,3eh
- int 21h
- endif
- if playback
- mov bx,rechandle
- mov ah,3eh
- int 21h
- endif
-
- call resetkeyboard
- mov bl,31h
- mov al,0
- mov ah,12h
- int 10h
- call vsync
-
- mov ah,0
- mov al,3
- int 10h
- call error
- mov ax,4c00h
- int 21h
- ret
-
- endp
-
-
-
-Error proc near
-
- cmp gameerror,1
- jz error1
- cmp gameerror,2
- jz error2
- cmp gameerror,3
- jz error3
- cmp gameerror,4
- jz error4
- cmp gameerror,5
- jz error5
- cmp gameerror,6
- jz error6
- cmp gameerror,7
- jz error7
- cmp gameerror,8
- jz error8
- ret
-
-error1: mov dx,offset cs:gameerror1
- jmp generalerror
-
-error2: mov ax,soundbaseadd
- sub ax,200h
- mov cl,4
- shr ax,cl
- add al,"0"
- mov bx,offset cs:error2patch
- mov [cs:bx+1],al
- mov dx,offset cs:gameerror2
- call generalerror
- mov dx,offset cs:gameinfo
- jmp generalerror
-
-error3: mov dx,offset cs:gameerror3
- jmp generalerror
-
-error4: mov dx,offset cs:gameerror4
- jmp generalerror
-
-error5: mov dx,offset cs:gameerror5
- jmp generalerror
-
-error6: mov al,soundint
- add al,"0"
- mov bx,offset cs:error6patch
- mov [cs:bx],al
- mov dx,offset cs:gameerror6
- call generalerror
- mov dx,offset cs:gameinfo
- jmp generalerror
-
-error7: mov dx,offset cs:gameerror7
- jmp generalerror
-
-error8: mov dx,offset cs:gameerror8
- jmp generalerror
-
-generalerror: mov ah,9h
- push cs
- pop ds
- int 21h
- ret
-
-nodos: ret
-
-gameerror1: db 13,10,13,10
- db "Dreamweb has an Error:",13,10
- db "Unable to allocate Expanded Memory."
- db 13,10,13,10
- db 24h
-gameerror2: db 13,10,13,10
- db "Dreamweb has an Error:",13,10
- db "Sound Blaster card not found at address "
-error2patch: db "220 Hex."
- db 13,10,13,10
- db 24h
-gameerror3: db 13,10,13,10
- db "Dreamweb has an Error:",13,10
- db "Out of Base Memory."
- db 13,10,13,10
- db 24h
-gameerror4: db 13,10,13,10
- db "Dreamweb has an Error:",13,10
- db "Memory Deallocation problem."
- db 13,10,13,10
- db 24h
-gameerror5: db 13,10,13,10
- db "Dreamweb has an Error:",13,10
- db "At least 590K of base memory is required."
- db 13,10,13,10
- db 24h
-gameerror6: db 13,10,13,10
- db "Dreamweb has an Error:",13,10
- db "Sound Blaster not found on interupt "
-error6patch: db "0"
- db 13,10,13,10
- db 24h
-gameerror7: db 13,10,13,10
- db "Dreamweb has an Error:",13,10
- db "Unable to select EMM page."
- db 13,10,13,10
- db 24h
-gameerror8: db 13,10,13,10
- db "Dreamweb has an Error:",13,10
- db "File not found.c"
-error8patch: db 13,10,13,10
- db 24h
-
-gameinfo: db "Dreamweb looks for Sound Blaster information in",13,10
- db "the BLASTER environment variable (in your AUTOEXEC.BAT)",13,10
- db 13,10,"If this is not found then IRQ 7, DMA channel 1 and base",13,10
- db "address 220h are assumed.",13,10,13,10
-
- db "To alter any or all of these settings you can specify them",13,10
- db "on the command line. For example:",13,10,13,10
- db "Type DREAMWEB I7 A220 D1 to run Dreamweb on IRQ 7, DMA",13,10
- db " channel 1 and base address 220h"
- db 13,10
- db " DREAMWEB I5 to run Dreamweb on IRQ 5 and",13,10
- db " default address of 220h, DMA 1",13,10
- db 13,10
- db 24h
-
-endgametext1: db 13,10,13,10
- db "Try the Dreamweb CD in your stereo....",13,10
- db 13,10,13,10
- db 24h
-
- endp
-
-
-
-
-
-
-
-
-Namestoold proc near
-
- push cs
- pop ds
- mov si,offset cs:savenames
- mov di,zoomspace
- mov es,buffers
- mov cx,17*4
- rep movsb
- ret
-
- endp
-
-
-
-Oldtonames proc near
-
- push cs
- pop es
- mov di,offset cs:savenames
- mov si,zoomspace
- mov ds,buffers
- mov cx,17*4
- rep movsb
- ret
-
- endp
-
-
-
+ + +Zoomonoff proc near + + cmp watchingtime,0 + jnz blank + cmp pointermode,2 + jz blank + cmp commandtype,222 + jz alreadyonoff + mov commandtype,222 + mov al,39 + call commandonly +alreadyonoff: mov ax,mousebutton + cmp ax,oldbutton + jz nozoomonoff + and ax,1 + jnz dozoomonoff +nozoomonoff: ret + +dozoomonoff: mov al,zoomon + xor al,1 + mov zoomon,al + + call createpanel + mov newobs,0 + call drawfloor + call printsprites + call reelsonscreen + call showicon + call getunderzoom + call undertextline + mov al,39 + call commandonly + call readmouse + call worktoscreenm + ret + + endp + + + + + + + + + + + + +Saveload proc near + + if demo + call dosreturn + ret + else + cmp watchingtime,0 + jnz blank + cmp pointermode,2 + jz blank + cmp commandtype,253 + jz alreadyops + mov commandtype,253 + mov al,43 + call commandonly +alreadyops: mov ax,mousebutton + cmp ax,oldbutton + jz noops + and ax,1 + jz noops + call dosaveload +noops: ret + endif + + endp + + + + + + + + + + + +Dosaveload proc near + + mov pointerframe,0 + mov textaddressx,70 + mov textaddressy,182-8 + mov textlen,181 + mov manisoffscreen,1 + call clearwork + call createpanel2 + call undertextline + call getridofall ;reels + call loadsavebox + call showopbox + call showmainops + call worktoscreen ;2 + jmp donefirstops + +restartops: call showopbox + call showmainops + call worktoscreenm +donefirstops: mov getback,0 +waitops: call readmouse + call showpointer + call vsync + call dumppointer + call dumptextline + call delpointer + mov bx,offset cs:opslist + call checkcoords + cmp getback,0 + jz waitops + cmp getback,2 + jz restartops + mov textaddressx,13 + mov textaddressy,182 + mov textlen,240 + cmp getback,4 + jz justret + call getridoftemp + call restoreall ;reels + call redrawmainscrn + call worktoscreenm + mov commandtype,200 +justret: mov manisoffscreen,0 + ret + +opslist: dw opsx+59,opsx+114,opsy+30,opsy+76,getbackfromops + dw opsx+10,opsx+77,opsy+10,opsy+59,dosreturn + dw opsx+128,opsx+190,opsy+16,opsy+100,discops + dw 0,320,0,200,blank + dw 0ffffh + + + endp + + + +Getbackfromops proc near + + cmp mandead,2 + jz opsblock1 + call getback1 + ret +opsblock1: call blank + ret + + endp + + + + + +Showmainops proc near + + mov ds,tempgraphics + mov di,opsx+10 + mov bx,opsy+10 + mov al,8 + mov ah,0 + call showframe + mov ds,tempgraphics + mov di,opsx+59 + mov bx,opsy+30 + mov al,7 + mov ah,0 + call showframe + mov ds,tempgraphics + mov di,opsx+128+4 + mov bx,opsy+12 + mov al,1 + mov ah,0 + call showframe + ret + + endp + + + + +Showdiscops proc near + + mov ds,tempgraphics + mov di,opsx+128+4 + mov bx,opsy+12 + mov al,1 + mov ah,0 + call showframe + mov ds,tempgraphics + mov di,opsx+10 + mov bx,opsy+10 + mov al,9 + mov ah,0 + call showframe + mov ds,tempgraphics + mov di,opsx+59 + mov bx,opsy+30 + mov al,10 + mov ah,0 + call showframe + mov ds,tempgraphics + mov di,opsx+176+2 + mov bx,opsy+60-4 + mov al,5 + mov ah,0 + call showframe + ret + + endp + + + + +Loadsavebox proc near + + mov dx,offset cs:icongraphics8 + call loadintotemp + ret + + endp + + + + + + + + +Loadgame proc near + + cmp commandtype,246 + jz alreadyload + mov commandtype,246 + mov al,41 + call commandonly +alreadyload: mov ax,mousebutton + cmp ax,oldbutton + jz noload + cmp ax,1 + jz doload +noload: ret + +doload: mov loadingorsave,1 + call showopbox + call showloadops + mov currentslot,0 + call showslots + call shownames + mov pointerframe,0 + call worktoscreenm + call namestoold + mov getback,0 + +loadops: call delpointer + call readmouse + call showpointer + call vsync + call dumppointer + call dumptextline + + mov bx,offset cs:loadlist + call checkcoords + cmp getback,0 + jz loadops + cmp getback,2 + jz quitloaded + call getridoftemp + ;call clearnoreels + mov dx,seg madeuproomdat + mov es,dx + mov bx,offset es:madeuproomdat + call startloading + call loadroomssample + mov roomloaded,1 + mov newlocation,255 + call clearsprites + call initman + call initrain + mov textaddressx,13 + mov textaddressy,182 + mov textlen,240 + call startup + call worktoscreen + mov getback,4 +quitloaded: ret + +loadlist: dw opsx+176,opsx+192,opsy+60,opsy+76,getbacktoops + dw opsx+128,opsx+190,opsy+12,opsy+100,actualload + dw opsx+2,opsx+92,opsy+4,opsy+81,selectslot + dw 0,320,0,200,blank + dw 0ffffh + + endp + + + + + + + +Getbacktoops proc near + + cmp commandtype,201 + jz alreadygetops + mov commandtype,201 + mov al,42 + call commandonly +alreadygetops: mov ax,mousebutton + cmp ax,oldbutton + jz nogetbackops + and ax,1 + jnz dogetbackops +nogetbackops: ret + +dogetbackops: call oldtonames + mov getback,2 + ret + + endp + + + + + + + +Discops proc near + + cmp commandtype,249 + jz alreadydiscops + mov commandtype,249 + mov al,43 + call commandonly +alreadydiscops: mov ax,mousebutton + cmp ax,oldbutton + jz nodiscops + and ax,1 + jnz dodiscops +nodiscops: ret +dodiscops: call scanfornames + mov loadingorsave,2 + call showopbox + call showdiscops + mov currentslot,0 + call worktoscreenm + + mov getback,0 +discopsloop: call delpointer + call readmouse + call showpointer + call vsync + call dumppointer + call dumptextline + mov bx,offset cs:discopslist + call checkcoords + cmp getback,0 + jz discopsloop + ret + +discopslist: dw opsx+59,opsx+114,opsy+30,opsy+76,loadgame + dw opsx+10,opsx+79,opsy+10,opsy+59,savegame + dw opsx+176,opsx+192,opsy+60,opsy+76,getbacktoops + dw 0,320,0,200,blank + dw 0ffffh + + endp + + + + + + + + +Savegame proc near + + cmp mandead,2 + jnz cansaveok + call blank + ret + +cansaveok: cmp commandtype,247 + jz alreadysave + mov commandtype,247 + mov al,44 + call commandonly +alreadysave: mov ax,mousebutton + and ax,1 + jnz dosave + ret +dosave: mov loadingorsave,2 + call showopbox + call showsaveops + mov currentslot,0 + call showslots + call shownames + call worktoscreenm + + call namestoold + mov bufferin,0 + mov bufferout,0 + + mov getback,0 + +saveops: call delpointer + call checkinput + call readmouse + call showpointer + call vsync + call dumppointer + call dumptextline + + mov bx,offset cs:savelist + call checkcoords + cmp getback,0 + jz saveops + ret + +savelist: dw opsx+176,opsx+192,opsy+60,opsy+76,getbacktoops + dw opsx+128,opsx+190,opsy+12,opsy+100,actualsave + dw opsx+2,opsx+92,opsy+4,opsy+81,selectslot + dw 0,320,0,200,blank + dw 0ffffh + + endp + + + + + +Actualsave proc near + + cmp commandtype,222 + jz alreadyactsave + mov commandtype,222 + mov al,44 + call commandonly +alreadyactsave: mov ax,mousebutton + and ax,1 + jz noactsave + + mov dx,seg savenames + mov ds,dx + mov si,offset savenames + mov al,currentslot + mov ah,0 + mov cx,17 + mul cx + add si,ax + inc si + cmp byte ptr [si],0 + jz noactsave + + mov al,location + mov ah,0 + mov cx,32 + mul cx + push cs + pop ds + mov si,offset cs:roomdata + add si,ax + + mov di,offset cs:madeuproomdat + mov bx,di + push cs + pop es + mov cx,16 + rep movsw + + mov al,roomssample + mov [es:bx+13],al + mov al,mapx + mov [es:bx+15],al + mov al,mapy + mov [es:bx+16],al + mov al,liftflag + mov [es:bx+20],al + mov al,manspath + mov [es:bx+21],al + mov al,facing + mov [es:bx+22],al + mov al,255 + mov [es:bx+27],al + call saveposition + call getridoftemp + call restoreall ;reels + mov textaddressx,13 + mov textaddressy,182 + mov textlen,240 + call redrawmainscrn + call worktoscreenm + mov getback,4 +noactsave: ret + + endp + + + + +Actualload proc near + + cmp commandtype,221 + jz alreadyactload + mov commandtype,221 + mov al,41 + call commandonly +alreadyactload: mov ax,mousebutton + cmp ax,oldbutton + jz notactload + cmp ax,1 + jnz notactload + + mov dx,seg savenames + mov ds,dx + mov si,offset savenames + mov al,currentslot + mov ah,0 + mov cx,17 + mul cx + add si,ax + inc si + cmp byte ptr [si],0 + jz notactload + call loadposition + mov getback,1 +notactload: ret + + endp + + + + +Selectslot2 proc near + + cmp mousebutton,0 + jz noselslot2 + mov loadingorsave,2 +noselslot2: call selectslot + ret + + endp + + + + + +Checkinput proc near + + cmp loadingorsave,3 + jz nokeypress + call readkey + mov al,currentkey + cmp al,0 + jz nokeypress + cmp al,13 + jnz notret + mov loadingorsave,3 + jmp afterkey +notret: cmp al,8 + jnz nodel2 + cmp cursorpos,0 + jz nokeypress + call getnamepos + dec cursorpos + mov byte ptr [es:bx],0 + mov byte ptr [es:bx+1],1 + jmp afterkey +nodel2: ;cmp al,32 + ;jz spacepress + ;cmp al,"A" + ;jc nokeypress + ;cmp al,"Z"+1 + ;jnc nokeypress +spacepress: cmp cursorpos,14 + jz nokeypress + call getnamepos + inc cursorpos + mov al,currentkey + mov [es:bx+1],al + mov byte ptr [es:bx+2],0 + mov byte ptr [es:bx+3],1 + jmp afterkey + +nokeypress: ret + +afterkey: call showopbox + call shownames + call showslots + call showsaveops + call worktoscreenm + ret + + endp + + + + + +Getnamepos proc near + + mov al,currentslot + mov ah,0 + mov cx,17 + mul cx + mov dx,seg savenames + mov es,dx + mov bx,offset es:savenames + add bx,ax + mov al,cursorpos + mov ah,0 + add bx,ax + ret + + endp + + + + + + + + +Showopbox proc near + + mov ds,tempgraphics + mov di,opsx + mov bx,opsy + mov al,0 + mov ah,0 + call showframe + + mov ds,tempgraphics + mov di,opsx + mov bx,opsy+55 + mov al,4 + mov ah,0 + call showframe + ret + + endp + + + + + + + + +Showloadops proc near + + mov ds,tempgraphics + mov di,opsx+128+4 + mov bx,opsy+12 + mov al,1 + mov ah,0 + call showframe + mov ds,tempgraphics + mov di,opsx+176+2 + mov bx,opsy+60-4 + mov al,5 + mov ah,0 + call showframe + + mov di,opsx+104 + mov bx,opsy+14 + mov al,55 + mov dl,101 + call printmessage + ret + + endp + + + + +Showsaveops proc near + + mov ds,tempgraphics + mov di,opsx+128+4 + mov bx,opsy+12 + mov al,1 + mov ah,0 + call showframe + mov ds,tempgraphics + mov di,opsx+176+2 + mov bx,opsy+60-4 + mov al,5 + mov ah,0 + call showframe + + mov di,opsx+104 + mov bx,opsy+14 + mov al,54 + mov dl,101 + call printmessage + ret + + endp + + + + + +Selectslot proc near + + cmp commandtype,244 + jz alreadysel + mov commandtype,244 + mov al,45 + call commandonly +alreadysel: mov ax,mousebutton + cmp ax,1 + jnz noselslot + cmp ax,oldbutton + jz noselslot + + cmp loadingorsave,3 + jnz notnocurs + dec loadingorsave +notnocurs: call oldtonames + mov ax,mousey + sub ax,opsy+4 + mov cl,-1 +getslotnum: inc cl + sub ax,11 + jnc getslotnum + mov currentslot,cl + call delpointer + call showopbox + call showslots + call shownames + cmp loadingorsave,1 + jz isloadmode + call showsaveops + call readmouse + call showpointer + call worktoscreen + call delpointer + ret +isloadmode: call showloadops + call readmouse + call showpointer + call worktoscreen + call delpointer + ret + +noselslot: ret + + endp + + + + + + + + + + +Showslots proc near + + mov di,opsx+7 + mov bx,opsy+8 + mov al,2 + mov ds,tempgraphics + mov ah,0 + call showframe + + mov di,opsx+10 + mov bx,opsy+11 + mov cl,0 +slotloop: push cx di bx + + cmp cl,currentslot + jnz nomatchslot + mov al,3 + mov ds,tempgraphics + mov ah,0 + call showframe + +nomatchslot: pop bx di cx + add bx,10 + inc cl + cmp cl,7 + jnz slotloop + ret + + endp + + + + + +Shownames proc near + + mov dx,seg savenames + mov es,dx + mov si,offset es:savenames+1 + mov di,opsx+21 + mov bx,opsy+10 + mov cl,0 + +shownameloop: push cx di es bx si + mov al,4 + cmp cl,currentslot + jnz nomatchslot2 + + cmp loadingorsave,2 + jnz loadmode + + mov dx,si + mov cx,15 + add si,15 +zerostill: dec si + dec cl + cmp byte ptr [es:si],1 + jnz foundcharacter + jmp zerostill +foundcharacter: mov cursorpos,cl + mov byte ptr [es:si],"/" + mov byte ptr [es:si+1],0 + push si + mov si,dx + mov dl,200 + mov ah,0 + call printdirect + pop si + mov byte ptr [es:si],0 + mov byte ptr [es:si+1],1 + jmp afterprintname + +loadmode: mov al,0 + mov dl,200 + mov ah,0 + mov charshift,91 + call printdirect + mov charshift,0 + jmp afterprintname + +nomatchslot2: mov dl,200 + mov ah,0 + call printdirect + +afterprintname: pop si bx es di cx + add si,17 + add bx,10 + inc cl + cmp cl,7 + jnz shownameloop + ret + + endp + + + + + + + + + + + + + + + + + + +Dosreturn proc near + + cmp commandtype,250 + jz alreadydos + mov commandtype,250 + mov al,46 + call commandonly +alreadydos: mov ax,mousebutton + and ax,1 + jz nodos + +quickquit2: call soundend + call removeemm + +quickquit: if recording + call saverec + mov bx,rechandle + mov ah,3eh + int 21h + endif + if playback + mov bx,rechandle + mov ah,3eh + int 21h + endif + + call resetkeyboard + mov bl,31h + mov al,0 + mov ah,12h + int 10h + call vsync + + mov ah,0 + mov al,3 + int 10h + call error + mov ax,4c00h + int 21h + ret + + endp + + + +Error proc near + + cmp gameerror,1 + jz error1 + cmp gameerror,2 + jz error2 + cmp gameerror,3 + jz error3 + cmp gameerror,4 + jz error4 + cmp gameerror,5 + jz error5 + cmp gameerror,6 + jz error6 + cmp gameerror,7 + jz error7 + cmp gameerror,8 + jz error8 + ret + +error1: mov dx,offset cs:gameerror1 + jmp generalerror + +error2: mov ax,soundbaseadd + sub ax,200h + mov cl,4 + shr ax,cl + add al,"0" + mov bx,offset cs:error2patch + mov [cs:bx+1],al + mov dx,offset cs:gameerror2 + call generalerror + mov dx,offset cs:gameinfo + jmp generalerror + +error3: mov dx,offset cs:gameerror3 + jmp generalerror + +error4: mov dx,offset cs:gameerror4 + jmp generalerror + +error5: mov dx,offset cs:gameerror5 + jmp generalerror + +error6: mov al,soundint + add al,"0" + mov bx,offset cs:error6patch + mov [cs:bx],al + mov dx,offset cs:gameerror6 + call generalerror + mov dx,offset cs:gameinfo + jmp generalerror + +error7: mov dx,offset cs:gameerror7 + jmp generalerror + +error8: mov dx,offset cs:gameerror8 + jmp generalerror + +generalerror: mov ah,9h + push cs + pop ds + int 21h + ret + +nodos: ret + +gameerror1: db 13,10,13,10 + db "Dreamweb has an Error:",13,10 + db "Unable to allocate Expanded Memory." + db 13,10,13,10 + db 24h +gameerror2: db 13,10,13,10 + db "Dreamweb has an Error:",13,10 + db "Sound Blaster card not found at address " +error2patch: db "220 Hex." + db 13,10,13,10 + db 24h +gameerror3: db 13,10,13,10 + db "Dreamweb has an Error:",13,10 + db "Out of Base Memory." + db 13,10,13,10 + db 24h +gameerror4: db 13,10,13,10 + db "Dreamweb has an Error:",13,10 + db "Memory Deallocation problem." + db 13,10,13,10 + db 24h +gameerror5: db 13,10,13,10 + db "Dreamweb has an Error:",13,10 + db "At least 590K of base memory is required." + db 13,10,13,10 + db 24h +gameerror6: db 13,10,13,10 + db "Dreamweb has an Error:",13,10 + db "Sound Blaster not found on interupt " +error6patch: db "0" + db 13,10,13,10 + db 24h +gameerror7: db 13,10,13,10 + db "Dreamweb has an Error:",13,10 + db "Unable to select EMM page." + db 13,10,13,10 + db 24h +gameerror8: db 13,10,13,10 + db "Dreamweb has an Error:",13,10 + db "File not found.c" +error8patch: db 13,10,13,10 + db 24h + +gameinfo: db "Dreamweb looks for Sound Blaster information in",13,10 + db "the BLASTER environment variable (in your AUTOEXEC.BAT)",13,10 + db 13,10,"If this is not found then IRQ 7, DMA channel 1 and base",13,10 + db "address 220h are assumed.",13,10,13,10 + + db "To alter any or all of these settings you can specify them",13,10 + db "on the command line. For example:",13,10,13,10 + db "Type DREAMWEB I7 A220 D1 to run Dreamweb on IRQ 7, DMA",13,10 + db " channel 1 and base address 220h" + db 13,10 + db " DREAMWEB I5 to run Dreamweb on IRQ 5 and",13,10 + db " default address of 220h, DMA 1",13,10 + db 13,10 + db 24h + +endgametext1: db 13,10,13,10 + db "Try the Dreamweb CD in your stereo....",13,10 + db 13,10,13,10 + db 24h + + endp + + + + + + + + +Namestoold proc near + + push cs + pop ds + mov si,offset cs:savenames + mov di,zoomspace + mov es,buffers + mov cx,17*4 + rep movsb + ret + + endp + + + +Oldtonames proc near + + push cs + pop es + mov di,offset cs:savenames + mov si,zoomspace + mov ds,buffers + mov cx,17*4 + rep movsb + ret + + endp + + + Savefilewrite proc near - mov bx,handle
- mov ah,40h
- int 21h
+ mov bx,handle + mov ah,40h + int 21h ret endp -
+ Savefileread proc near - mov bx,handle
- mov ah,3fh
- int 21h
+ mov bx,handle + mov ah,3fh + int 21h ret endp -
-Saveposition proc near
-
- call makeheader
-
- mov al,currentslot
- mov ah,0
- push ax
- mov cx,13
- mul cx
- mov dx,seg savefiles
- mov ds,dx
- mov dx,offset savefiles
- add dx,ax
- call openforsave
-
- mov dx,seg fileheader
- mov ds,dx
- mov dx,offset fileheader
- mov cx,headerlen
+ +Saveposition proc near + + call makeheader + + mov al,currentslot + mov ah,0 + push ax + mov cx,13 + mul cx + mov dx,seg savefiles + mov ds,dx + mov dx,offset savefiles + add dx,ax + call openforsave + + mov dx,seg fileheader + mov ds,dx + mov dx,offset fileheader + mov cx,headerlen call savefilewrite - mov dx,seg fileheader
- mov es,dx
- mov di,offset es:filedata
-
- pop ax
- mov cx,17
- mul cx
- mov dx,seg savenames
- mov ds,dx
- mov dx,offset savenames
- add dx,ax
- call saveseg
-
- mov dx,seg startvars
- mov ds,dx
- mov dx,offset startvars
- call saveseg
-
- mov ds,extras
- mov dx,exframedata
- call saveseg
-
- mov ds,buffers
- mov dx,listofchanges
- call saveseg
-
- mov dx,seg madeuproomdat
- mov ds,dx
- mov dx,offset madeuproomdat
- call saveseg
-
- mov dx,seg reelroutines
- mov ds,dx
- mov dx,offset reelroutines
- call saveseg
-
-fquit: call closefile
- ret
-
- endp
-
-
-
-
-
-
-Loadposition proc near
-
- mov timecount,0
- call clearchanges
-
- mov al,currentslot
- mov ah,0
- push ax
- mov cx,13
- mul cx
- mov dx,seg savefiles
- mov ds,dx
- mov dx,offset savefiles
- add dx,ax
- if cd
- call openfilefromc
- else
- call openfile
- endif
-
- push cs
- pop ds
- mov dx,offset cs:fileheader
- mov cx,headerlen
+ mov dx,seg fileheader + mov es,dx + mov di,offset es:filedata + + pop ax + mov cx,17 + mul cx + mov dx,seg savenames + mov ds,dx + mov dx,offset savenames + add dx,ax + call saveseg + + mov dx,seg startvars + mov ds,dx + mov dx,offset startvars + call saveseg + + mov ds,extras + mov dx,exframedata + call saveseg + + mov ds,buffers + mov dx,listofchanges + call saveseg + + mov dx,seg madeuproomdat + mov ds,dx + mov dx,offset madeuproomdat + call saveseg + + mov dx,seg reelroutines + mov ds,dx + mov dx,offset reelroutines + call saveseg + +fquit: call closefile + ret + + endp + + + + + + +Loadposition proc near + + mov timecount,0 + call clearchanges + + mov al,currentslot + mov ah,0 + push ax + mov cx,13 + mul cx + mov dx,seg savefiles + mov ds,dx + mov dx,offset savefiles + add dx,ax + if cd + call openfilefromc + else + call openfile + endif + + push cs + pop ds + mov dx,offset cs:fileheader + mov cx,headerlen call savefileread - push cs
- pop es
- mov di,offset cs:filedata
-
- pop ax
- mov cx,17
- mul cx
- mov dx,seg savenames
- mov ds,dx
- mov dx,offset savenames
- add dx,ax
- call loadseg
-
- mov dx,seg startvars
- mov ds,dx
- mov dx,offset startvars
- call loadseg
-
- mov ds,extras
- mov dx,exframedata
- call loadseg
-
- mov ds,buffers
- mov dx,listofchanges
- call loadseg
-
- mov dx,seg madeuproomdat
- mov ds,dx
- mov dx,offset madeuproomdat
- call loadseg
-
- push cs
- pop ds
- mov dx,offset cs:reelroutines
- call loadseg
-
- call closefile
- ret
-
- endp
-
-
-
-
-
-Loadseg proc near
-
- mov bx,handle
- mov ax,[es:di]
- add di,2
- push di
- push es
- mov cx,ax
- mov ah,3fh
- int 21h
- pop es
- pop di
- ret
-
- endp
-
-
-
-
-
-Makeheader proc near
-
- mov dx,seg fileheader
- mov es,dx
- mov di,offset es:filedata
- mov ax,17
- call storeit
- mov ax,lengthofvars
- call storeit
- mov ax,lengthofextra
- call storeit
- mov ax,numchanges*4
- call storeit
- mov ax,48
- call storeit
- mov ax,lenofreelrouts
- call storeit
- ret
-
- endp
-
-
-
-
-
-Storeit proc near
-
- cmp ax,0
- jnz isntblank
- inc ax
-isntblank: stosw
- ret
-
- endp
-
-
-
-
-Saveseg proc near
-
- mov cx,[es:di]
- add di,2
- push di es
- mov bx,handle
- mov ah,40h
- int 21h
- pop es di
- ret
-
- endp
-
-
-
-Findlen proc near
-
- dec bx
- add bx,ax
-nextone: cmp cl,[bx]
- jnz foundlen
- dec bx
- dec ax
- cmp ax,0
- jnz nextone
-foundlen: ret
-
- endp
-
-
-
-
-
-Scanfornames proc near
-
- mov dx,seg savenames
- mov es,dx
- mov di,offset es:savenames
- mov dx,seg savefiles
- mov ds,dx
- mov dx,offset savefiles
- mov cx,7
-scanloop: push es ds di dx cx
-
- if cd
- call openfilefromc
- else
- call openfilenocheck
- endif
- jc notexist
- pop cx
- inc ch
- push cx
- push di es
- mov dx,seg fileheader
- mov ds,dx
- mov dx,offset fileheader
- mov cx,headerlen
+ push cs + pop es + mov di,offset cs:filedata + + pop ax + mov cx,17 + mul cx + mov dx,seg savenames + mov ds,dx + mov dx,offset savenames + add dx,ax + call loadseg + + mov dx,seg startvars + mov ds,dx + mov dx,offset startvars + call loadseg + + mov ds,extras + mov dx,exframedata + call loadseg + + mov ds,buffers + mov dx,listofchanges + call loadseg + + mov dx,seg madeuproomdat + mov ds,dx + mov dx,offset madeuproomdat + call loadseg + + push cs + pop ds + mov dx,offset cs:reelroutines + call loadseg + + call closefile + ret + + endp + + + + + +Loadseg proc near + + mov bx,handle + mov ax,[es:di] + add di,2 + push di + push es + mov cx,ax + mov ah,3fh + int 21h + pop es + pop di + ret + + endp + + + + + +Makeheader proc near + + mov dx,seg fileheader + mov es,dx + mov di,offset es:filedata + mov ax,17 + call storeit + mov ax,lengthofvars + call storeit + mov ax,lengthofextra + call storeit + mov ax,numchanges*4 + call storeit + mov ax,48 + call storeit + mov ax,lenofreelrouts + call storeit + ret + + endp + + + + + +Storeit proc near + + cmp ax,0 + jnz isntblank + inc ax +isntblank: stosw + ret + + endp + + + + +Saveseg proc near + + mov cx,[es:di] + add di,2 + push di es + mov bx,handle + mov ah,40h + int 21h + pop es di + ret + + endp + + + +Findlen proc near + + dec bx + add bx,ax +nextone: cmp cl,[bx] + jnz foundlen + dec bx + dec ax + cmp ax,0 + jnz nextone +foundlen: ret + + endp + + + + + +Scanfornames proc near + + mov dx,seg savenames + mov es,dx + mov di,offset es:savenames + mov dx,seg savefiles + mov ds,dx + mov dx,offset savefiles + mov cx,7 +scanloop: push es ds di dx cx + + if cd + call openfilefromc + else + call openfilenocheck + endif + jc notexist + pop cx + inc ch + push cx + push di es + mov dx,seg fileheader + mov ds,dx + mov dx,offset fileheader + mov cx,headerlen call savefileread - mov dx,seg fileheader
- mov es,dx
- mov di,offset es:filedata
- pop ds dx
- call loadseg
- mov bx,handle
- call closefile
-
-notexist: pop cx dx di ds es
- add dx,13
- add di,17
- dec cl
- jnz scanloop
- mov al,ch
- ret
-
- endp
-
-
-
-
-
-Decide proc near
-
- call setmode
- call loadpalfromiff
- call clearpalette
- mov pointermode,0
- mov watchingtime,0
- mov pointerframe,0
- mov textaddressx,70
- mov textaddressy,182-8
- mov textlen,181
- mov manisoffscreen,1
- call loadsavebox
- call showdecisions
- call worktoscreen
- call fadescreenup
- mov getback,0
-
-waitdecide: call readmouse
- call showpointer
- call vsync
- call dumppointer
- call dumptextline
- call delpointer
- mov bx,offset cs:decidelist
- call checkcoords
- cmp getback,0
- jz waitdecide
- cmp getback,4
- jz hasloadedroom
- call getridoftemp
-hasloadedroom: mov textaddressx,13
- mov textaddressy,182
- mov textlen,240
- ret
-
-decidelist: dw opsx+69,opsx+124,opsy+30,opsy+76,newgame
- dw opsx+20,opsx+87,opsy+10,opsy+59,dosreturn
- dw opsx+123,opsx+190,opsy+10,opsy+59,loadold
- dw 0,320,0,200,blank
- dw 0ffffh
-
- endp
-
-
-
-
-
-
-Showdecisions proc near
-
- call createpanel2
- call showopbox
- mov ds,tempgraphics
- mov di,opsx+17
- mov bx,opsy+13
- mov al,6
- mov ah,0
- call showframe
- call undertextline
- ret
-
- endp
-
-
-
-
-
-Newgame proc near
-
- cmp commandtype,251
- jz alreadynewgame
- mov commandtype,251
- mov al,47
- call commandonly
-alreadynewgame: mov ax,mousebutton
- cmp ax,1
- jnz nonewgame
- mov getback,3
-nonewgame: ret
-
- endp
-
-
-
-
-
-
-
-Loadold proc near
-
- cmp commandtype,252
- jz alreadyloadold
- mov commandtype,252
- mov al,48
- call commandonly
-alreadyloadold: mov ax,mousebutton
- and ax,1
- jz noloadold
- call doload
- cmp getback,4
- jz noloadold
- call showdecisions
- call worktoscreenm
- mov getback,0
-noloadold: ret
-
- endp
-
-
-
-
+ mov dx,seg fileheader + mov es,dx + mov di,offset es:filedata + pop ds dx + call loadseg + mov bx,handle + call closefile + +notexist: pop cx dx di ds es + add dx,13 + add di,17 + dec cl + jnz scanloop + mov al,ch + ret + + endp + + + + + +Decide proc near + + call setmode + call loadpalfromiff + call clearpalette + mov pointermode,0 + mov watchingtime,0 + mov pointerframe,0 + mov textaddressx,70 + mov textaddressy,182-8 + mov textlen,181 + mov manisoffscreen,1 + call loadsavebox + call showdecisions + call worktoscreen + call fadescreenup + mov getback,0 + +waitdecide: call readmouse + call showpointer + call vsync + call dumppointer + call dumptextline + call delpointer + mov bx,offset cs:decidelist + call checkcoords + cmp getback,0 + jz waitdecide + cmp getback,4 + jz hasloadedroom + call getridoftemp +hasloadedroom: mov textaddressx,13 + mov textaddressy,182 + mov textlen,240 + ret + +decidelist: dw opsx+69,opsx+124,opsy+30,opsy+76,newgame + dw opsx+20,opsx+87,opsy+10,opsy+59,dosreturn + dw opsx+123,opsx+190,opsy+10,opsy+59,loadold + dw 0,320,0,200,blank + dw 0ffffh + + endp + + + + + + +Showdecisions proc near + + call createpanel2 + call showopbox + mov ds,tempgraphics + mov di,opsx+17 + mov bx,opsy+13 + mov al,6 + mov ah,0 + call showframe + call undertextline + ret + + endp + + + + + +Newgame proc near + + cmp commandtype,251 + jz alreadynewgame + mov commandtype,251 + mov al,47 + call commandonly +alreadynewgame: mov ax,mousebutton + cmp ax,1 + jnz nonewgame + mov getback,3 +nonewgame: ret + + endp + + + + + + + +Loadold proc near + + cmp commandtype,252 + jz alreadyloadold + mov commandtype,252 + mov al,48 + call commandonly +alreadyloadold: mov ax,mousebutton + and ax,1 + jz noloadold + call doload + cmp getback,4 + jz noloadold + call showdecisions + call worktoscreenm + mov getback,0 +noloadold: ret + + endp + + + +
\ No newline at end of file |