home *** CD-ROM | disk | FTP | other *** search
/ The Amiga Game Guide / AmigaGameGuide_CD.iso / Amiga / Game-Installer / JST-Installer / SpindizzyWorlds / sdw.asm < prev    next >
Encoding:
Assembly Source File  |  1978-01-01  |  2.5 KB  |  133 lines

  1. ; SpinDizzy Worlds HD installer by Keith Krellwitz
  2. ; updated to include JOYPAD support by Kyzer/CSG
  3.     include    jst.i
  4.  
  5.     HD_PARAMS "sdw.d",STD_DISK_SIZE,1
  6.  
  7.     lea    trainer(pc),a1
  8.     tst.l    d0
  9.     sne.b    (a1)
  10.     lea    joypad(pc),a1
  11.     tst.l    d2
  12.     sne.b    (a1)
  13.  
  14.     Mac_printf     "Spindizzy Worlds Loader v1.1\nProgrammed by Keith Krellwitz (Abaddon) ©1997\nUpdated by Kyzer in 1999"
  15.     tst.l    d0
  16.     beq.s    .notrn
  17.     Mac_printf    "Trainer activated"
  18. .notrn    tst.l    d2
  19.     beq.s    .nojoy
  20.     Mac_printf    "Joypad mode active"
  21. .nojoy
  22.  
  23.     JSRABS    LoadDisks
  24.  
  25.     moveq    #0,d0
  26.     moveq    #-1,d1
  27.     JSRABS    Degrade
  28.     GO_SUPERVISOR
  29.     SAVE_OSDATA    $80000
  30.  
  31.     moveq    #0,d0
  32.     moveq    #0,d1
  33.     moveq    #1,d2
  34.     moveq    #0,d3
  35.     lea    $5c40,a0
  36.     JSRGEN    ReadRobSectors        ; load bootblock
  37.  
  38.     PATCHUSRJMP    $5c6e,patch1    ; patch us in
  39.     JSRGEN    FlushCachesHard
  40.     jmp    $5c4c            ; run bootblock
  41.  
  42.  
  43. patch1    PATCHGENJMP    $47168,ReadRobSectors
  44.     PATCHUSRJMP    $470a0,patch2
  45.     JSRGEN    FlushCachesHard
  46.     jmp    $47014
  47.  
  48. patch2    PATCHUSRJMP    $41af0,diskio
  49.     PATCHUSRJMP    $107f4,keyb
  50.     PATCHUSRJMP    $11D28,patch3
  51.     move.w    #$6030,$19ffa
  52.  
  53.     move.l    d1,-(sp)
  54.     ; add trainer if wanted
  55.     move.b    trainer(pc),d1
  56.     beq.s    .notrn
  57.     PATCH_NOPNOP    $10EB0
  58.     PATCH_NOPNOP    $10EB4
  59.     PATCH_NOPNOP    $10ED6
  60.     PATCH_NOPNOP    $10EDA
  61.     PATCH_NOPNOP    $1534E
  62.     move.w    #$603a,$15352
  63. .notrn    move.l    (sp)+,d1
  64.  
  65.     JSRGEN    ResetSprites
  66.     JSRGEN    FlushCachesHard
  67.     jmp    $1001c
  68.  
  69.  
  70. patch3    lea    $616e8,a5
  71.     lea    $7fffe,sp
  72.     move.l    #$18954,-(sp)
  73.     move.l    #$18970,-(sp)
  74.     move.l    #$cc0c62c0,$63b9c
  75.     JSRGEN    FlushCachesHard
  76.     rts
  77.  
  78. ;---------------------
  79. diskio    cmpi.w    #$3D3,d1
  80.     beq.s    .savef
  81.     JSRGEN    ReadRobSectors        ; normal load
  82.     JSRGEN    FlushCachesHard
  83.     rts
  84. .savef    movem.l    d0-d7/a0-a6,-(sp)    ; savefile load/save
  85.     movea.l    a0,a1
  86.     lea    sname(pc),a0
  87.     move.l    #$A00,d1
  88.     moveq    #0,d0
  89.     cmpi.w    #$8001,d3
  90.     beq.s    .save
  91.     JSRGEN    ReadUserFileHD
  92.     bra.s    .done
  93. .save    JSRGEN    WriteUserFileHD
  94. .done    movem.l    (sp)+,d0-d7/a0-a6
  95.     JSRGEN    FlushCachesHard
  96.     rts
  97.  
  98. ;---------------------
  99. keyb    move.b    joypad(pc),d0
  100.     beq.s    .normal        ; only if joypad mode is on
  101.  
  102.      btst.b    #14-8,$dff016    ; test joypad button
  103.     seq.b    d0        ; d0 = -1 if pressed, 0 if not
  104.     lea    joystat(pc),a0
  105.      cmp.b    (a0),d0        ; test if joypad button has changed
  106.     beq.s    .normal        ; if not, do nothing
  107.     move.b    d0,(a0)        ; remember new state
  108.  
  109.     beq.s    .upkey
  110.     move.w    #$40,d0        ; send space keypress
  111.     bra.s    .ok
  112. .upkey    move.w    #$c0,d0        ; send space!keyup keypress
  113.     bra.s    .ok
  114.  
  115. .normal    move.b    $bfed01,d0
  116.     btst    #3,d0
  117.     bne.s    .cont
  118.     jmp    $107ba        ; no keys pressed
  119. .cont    move.b    $bfec01,d0
  120.     move.b    #$40,$bfee01
  121.     clr.b    $bfec01
  122.     ror.b    #1,d0
  123.     not.b    d0
  124.     cmpi.b    #$59,d0        ; exit if F10 pressed
  125.     bne.s    .ok
  126.     JSRGEN    InGameExit
  127. .ok    jmp    $1081a
  128.  
  129. joystat    dc.b    0
  130. joypad    dc.b    0
  131. trainer    dc.b    0
  132. sname    dc.b    "save.bin",0
  133.