home *** CD-ROM | disk | FTP | other *** search
- ; SpinDizzy Worlds HD installer by Keith Krellwitz
- ; updated to include JOYPAD support by Kyzer/CSG
- include jst.i
-
- HD_PARAMS "sdw.d",STD_DISK_SIZE,1
-
- lea trainer(pc),a1
- tst.l d0
- sne.b (a1)
- lea joypad(pc),a1
- tst.l d2
- sne.b (a1)
-
- Mac_printf "Spindizzy Worlds Loader v1.1\nProgrammed by Keith Krellwitz (Abaddon) ©1997\nUpdated by Kyzer in 1999"
- tst.l d0
- beq.s .notrn
- Mac_printf "Trainer activated"
- .notrn tst.l d2
- beq.s .nojoy
- Mac_printf "Joypad mode active"
- .nojoy
-
- JSRABS LoadDisks
-
- moveq #0,d0
- moveq #-1,d1
- JSRABS Degrade
- GO_SUPERVISOR
- SAVE_OSDATA $80000
-
- moveq #0,d0
- moveq #0,d1
- moveq #1,d2
- moveq #0,d3
- lea $5c40,a0
- JSRGEN ReadRobSectors ; load bootblock
-
- PATCHUSRJMP $5c6e,patch1 ; patch us in
- JSRGEN FlushCachesHard
- jmp $5c4c ; run bootblock
-
-
- patch1 PATCHGENJMP $47168,ReadRobSectors
- PATCHUSRJMP $470a0,patch2
- JSRGEN FlushCachesHard
- jmp $47014
-
- patch2 PATCHUSRJMP $41af0,diskio
- PATCHUSRJMP $107f4,keyb
- PATCHUSRJMP $11D28,patch3
- move.w #$6030,$19ffa
-
- move.l d1,-(sp)
- ; add trainer if wanted
- move.b trainer(pc),d1
- beq.s .notrn
- PATCH_NOPNOP $10EB0
- PATCH_NOPNOP $10EB4
- PATCH_NOPNOP $10ED6
- PATCH_NOPNOP $10EDA
- PATCH_NOPNOP $1534E
- move.w #$603a,$15352
- .notrn move.l (sp)+,d1
-
- JSRGEN ResetSprites
- JSRGEN FlushCachesHard
- jmp $1001c
-
-
- patch3 lea $616e8,a5
- lea $7fffe,sp
- move.l #$18954,-(sp)
- move.l #$18970,-(sp)
- move.l #$cc0c62c0,$63b9c
- JSRGEN FlushCachesHard
- rts
-
- ;---------------------
- diskio cmpi.w #$3D3,d1
- beq.s .savef
- JSRGEN ReadRobSectors ; normal load
- JSRGEN FlushCachesHard
- rts
- .savef movem.l d0-d7/a0-a6,-(sp) ; savefile load/save
- movea.l a0,a1
- lea sname(pc),a0
- move.l #$A00,d1
- moveq #0,d0
- cmpi.w #$8001,d3
- beq.s .save
- JSRGEN ReadUserFileHD
- bra.s .done
- .save JSRGEN WriteUserFileHD
- .done movem.l (sp)+,d0-d7/a0-a6
- JSRGEN FlushCachesHard
- rts
-
- ;---------------------
- keyb move.b joypad(pc),d0
- beq.s .normal ; only if joypad mode is on
-
- btst.b #14-8,$dff016 ; test joypad button
- seq.b d0 ; d0 = -1 if pressed, 0 if not
- lea joystat(pc),a0
- cmp.b (a0),d0 ; test if joypad button has changed
- beq.s .normal ; if not, do nothing
- move.b d0,(a0) ; remember new state
-
- beq.s .upkey
- move.w #$40,d0 ; send space keypress
- bra.s .ok
- .upkey move.w #$c0,d0 ; send space!keyup keypress
- bra.s .ok
-
- .normal move.b $bfed01,d0
- btst #3,d0
- bne.s .cont
- jmp $107ba ; no keys pressed
- .cont move.b $bfec01,d0
- move.b #$40,$bfee01
- clr.b $bfec01
- ror.b #1,d0
- not.b d0
- cmpi.b #$59,d0 ; exit if F10 pressed
- bne.s .ok
- JSRGEN InGameExit
- .ok jmp $1081a
-
- joystat dc.b 0
- joypad dc.b 0
- trainer dc.b 0
- sname dc.b "save.bin",0
-