Subversion Repositories NedoOS

Rev

Rev 865 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download

  1. ;***************************************
  2. ;** MAIN CODE                         **
  3. ;***************************************
  4.  
  5.                 IF MUSICALSO=0
  6.  
  7.                 ;ORG CODE
  8.  
  9. ;                ENTR
  10.  
  11. START           CALL SETUPPAGES
  12.  
  13. REENTRY         LD SP,THESTACK:CALL GOMENU
  14. INTROLOOP       CALL HIGHSCORES:CALL GAMECLS
  15.  
  16.                 LD HL,0:LD (AMMOLEFT+1),HL:LD (PRTBARRIER+1),HL
  17.                 XOR A:LD (BACKLEFT+1),A:LD (KEYSCOLLECTED+1),A
  18.                 LD (SAVEDPEOPLE+1),A:LD (SAVORS),A:LD (WEPPOWER),A
  19.                 LD (WEPTYPE+1),A:LD (PAKTYPE+1),A
  20.                 INC A:CALL PLAYMUSIC
  21.  
  22.                 LD A,(INFLIVES)
  23.                 OR A:LD A,STARTLIVES:JR Z,JOEY:LD A,12
  24. JOEY            LD (LIVES),A
  25.  
  26.                 LD HL,"00":LD (SCORE+0),HL:LD (SCORE+2),HL
  27.                 LD (SCORE+4),HL:LD (SCORE+6),HL
  28.         ;jp FIB
  29. SAMELEVEL       CALL GAME
  30.                 LD A,(RETMODE):DEC A:ADD A,A:LD E,A:LD D,0
  31.                 LD HL,RETMODES:ADD HL,DE
  32.                 LD E,(HL):INC HL:LD D,(HL):EX DE,HL:JP (HL)
  33.  
  34. ;***************************************
  35.  
  36. GAMEOVER
  37. REALGAMEOVER    LD B,65:CALL BFLY:CALL SPRINT
  38.                 DB PRINK,$47,PRGAMECLS,PRSIZE,1
  39.                 DB PRAT, 11,10, "GAME  OVER",PREOF
  40.                 LD B,50:CALL BFLY
  41. TESTLOADLEV1    LD HL,SCORE:LD DE,LASTSCORE:LD BC,8:LDIR
  42.                 CALL TESTHIGH:DB 62
  43. LEVEL           DB STARTLEV
  44.                 CP STARTLEV:JP Z,INTROLOOP
  45.                 LD A,STARTLEV:LD (LEVEL),A:CALL LOADLEVEL:JP INTROLOOP
  46.  
  47. NEXTLEVEL       LD A,(LEVEL):INC A:LD (LEVEL),A:CP 10:JP NZ,FIB
  48.                 CALL SPRINT:DB PRGAMECLS,PRINK,$47,PRSIZE,1
  49.                 DB PRAT,07,04,"CONGRATULATIONS!!!"
  50.                 DB PRAT,08,07,"YOU'VE ESCAPED!!",PREOF
  51. SAVEDPEOPLE     LD A,0:OR A:JR Z,NO_l_SAVED:ADD A,"0":LD (SAVED+13),A
  52.                 CALL SPRINT
  53. SAVED           DB PRAT,01,10,"AND SAVED 1 OF YOUR RELATIVES.",PREOF
  54.                 JR SAVED_SOME
  55. NO_l_SAVED      CALL SPRINT
  56.                 DB PRAT,02,10,"BUT YOU DIDN'T SAVE ANYONE!!",PREOF
  57. SAVED_SOME      LD B,0:CALL BFLY:CALL BFLY:JP REALGAMEOVER
  58.  
  59. FIB             CALL LOADLEVEL:JP SAMELEVEL
  60.  
  61. LOADLEVEL
  62. ;               LD A,(LEVEL):ADD A,"0":LD (LEVNM),A:CALL GAMECLS
  63. ;               CALL SPRINT:DB PRINK,7,PRSIZE,1,PRAT,10,10,"LOAD LEVEL "
  64. ;LEVNM          DB "l",PREOF
  65.  
  66.                 CALL KILLSOUND
  67.  
  68.                 LD A,(LEVEL):DEC A:LD DE,LLDATLEN:LD HL,LLDAT:CALL MULT
  69.                 LD A,(HL):INC HL
  70.                 LD D,(HL):INC HL:LD E,0
  71.                 LD BC,$2000
  72.                 PUSH HL:LD HL,LEVELDATA:CALL PAGECOPY:POP HL
  73.                 LD A,(HL):JP PLAYMUSIC
  74.  
  75. LLDATLEN        EQU 3
  76. LLDAT           DB $11,$E0,6             ; 1
  77.                 DB $11,$C0,1             ; 2
  78.                 DB $13,$C0,1             ; 3
  79.                 DB $13,$E0,6             ; 4
  80.                 DB $14,$C0,3             ; 5
  81.                 DB $14,$E0,1             ; 6
  82.                 DB $16,$C0,3             ; 7
  83.                 DB $16,$E0,6             ; 8
  84.                 DB $17,$C0,4             ; 9
  85.  
  86. BFLY            PUSH BC:CALL BEEPER:POP BC:DJNZ BFLY:RET
  87.  
  88. ;****************************************
  89. ;** MISC ROUTINES                      **
  90. ;****************************************
  91.  
  92. BAXITA          LD B,(HL):INC HL:LD C,(HL):INC HL
  93.                 LD A,D:AND $F8:LD D,A:PUSH DE:PUSH BC
  94.                 SRL C:CALL BAXIT:EX DE,HL:POP BC:POP DE
  95. ATRIT           SRL C:SRL C:SRL C
  96. BAXATR          PUSH HL:CALL BATAD:POP DE
  97. BAXITALP        PUSH BC:PUSH HL
  98. BAXITALP1       LD A,(DE):INC DE:OR A:JR Z,DENO:LD (HL),A
  99. DENO            INC L:LD A,L:AND 31:JR NZ,NAG
  100.                 LD A,L:SUB 32:LD L,A
  101. NAG             DJNZ BAXITALP1:POP HL:LD BC,32:ADD HL,BC
  102.                 POP BC:DEC C:JP NZ,BAXITALP:RET
  103.  
  104. BAXITFLIP       LD A,C:ADD A,A:ADD A,D:DEC A:LD D,A:PUSH HL:LD HL,-32
  105.                 LD (BAXDIR1+1),HL:LD (BAXDIR2+1),HL:POP HL:CALL BAXIT
  106.                 LD HL,32:LD (BAXDIR1+1),HL:LD (BAXDIR2+1),HL:RET
  107. BAXIT           PUSH HL:CALL BIXAD:POP DE
  108. BAXITCLP        PUSH BC
  109. BAXITBLP1       LD A,(DE):INC DE:LD (HL),A:INC HL:DJNZ BAXITBLP1:DEC HL
  110. BAXDIR1         LD BC,32:ADD HL,BC:POP BC:PUSH BC
  111. BAXITBLP2       LD A,(DE):INC DE:LD (HL),A:DEC HL:DJNZ BAXITBLP2:INC HL
  112. BAXDIR2         LD BC,32:ADD HL,BC:POP BC:DEC C:JP NZ,BAXITCLP:RET
  113.  
  114. BAXITMIRFLIP    LD A,C:ADD A,A:ADD A,D:DEC A:LD D,A:PUSH HL:LD HL,-32
  115.                 LD (MAXDIR1+1),HL:LD (MAXDIR2+1),HL:POP HL:CALL BAXITMIR
  116.                 LD HL,32:LD (MAXDIR1+1),HL:LD (MAXDIR2+1),HL:RET
  117. BAXITMIR        LD A,B:DEC A:ADD A,A:ADD A,A:ADD A,A:ADD A,E:LD E,A
  118.                 PUSH HL:CALL BIXAD:POP DE:EXX:LD B,MIRPAGE/256:EXX
  119. MAXITCLP        PUSH BC
  120. MAXITBLP1       LD A,(DE):INC DE:EXX :LD C,A:LD A,(BC):EXX
  121.                 LD (HL),A:DEC HL:DJNZ MAXITBLP1:INC HL
  122. MAXDIR1         LD BC,32:ADD HL,BC:POP BC:PUSH BC
  123. MAXITBLP2       LD A,(DE):INC DE:EXX :LD C,A:LD A,(BC):EXX
  124.                 LD (HL),A:INC HL:DJNZ MAXITBLP2:DEC HL
  125. MAXDIR2         LD BC,32:ADD HL,BC:POP BC:DEC C:JP NZ,MAXITCLP:RET
  126.  
  127. DELAYBC         DEC BC:LD A,B:OR C:JP NZ,DELAYBC
  128. RETURN          RET ; L=X,H=XLEN,E=X1,D=X1LEN,NC=HIT
  129. HITA            LD A,L:ADD A,H:JR C,HITAX:CP E:RET C
  130. HITA2           LD A,E:ADD A,D:JR C,HITAY:CP L:RET
  131. HITAX           CP E:JR C,HITA2:SUB H:CP E:CCF :RET C:JR HITA2
  132. HITAY           CP L:CCF :RET NC:SUB D:CP L:CCF :RET
  133. RAND            PUSH HL:PUSH BC:LD HL,RND1:LD C,(HL):INC HL:LD A,(HL)
  134.                 SRL C:SRL C:SRL C:XOR C:INC HL:RRA
  135.                 RL (HL):DEC HL:RL (HL):DEC HL:RL (HL):POP BC:POP HL
  136.                 RET
  137.  
  138. RND1            DB #58 ; SRC = DB 128
  139. RND2            DB #5a ; SRC = DB 255
  140. RND3            DB #5d ; SRC = DB 63
  141.  
  142. SATAD2          SRL E:SRL E:SRL E:SRL D:SRL D:SRL D
  143.                 LD HL,BACKATR2:LD A,D:LD D,0:ADD HL,DE:LD E,26
  144.                 JP MULT
  145. BIXAD2          SRL E:SRL E:SRL E
  146. BAXAD2          LD HL,BACKSCR2:LD A,D:LD D,0:ADD HL,DE:LD E,26
  147.                 JP MULT
  148.  
  149. BATAD           SRL E:SRL E:SRL E:SRL D:SRL D:SRL D
  150.                 LD HL,BACKATR:LD A,D:LD D,0:ADD HL,DE:LD E,32
  151.                 JP MULT
  152. BIXAD           SRL E:SRL E:SRL E
  153. BAXAD           LD HL,BACKSCR:LD A,D:LD D,0:ADD HL,DE:LD E,32
  154. MULT            OR A:RET Z:RRA :JR NC,MULTI:ADD HL,DE
  155. MULTI           EX DE,HL:ADD HL,HL:EX DE,HL:JP MULT
  156. DIXAD           RES 0,D
  157. PIXAD           LD A,D:ADD A,64:OR A:RRA:SCF:RRA:OR A:RRA
  158.                 XOR D:AND $F8:XOR D:SUB 8:LD H,A
  159.                 LD A,E:RLCA:RLCA:RLCA:XOR D:AND $C7:XOR D
  160.                 RLCA:RLCA:LD L,A:RET
  161.  
  162. PIXDN           INC H:LD A,H:AND 7:RET NZ
  163.                 LD A,L:ADD A,32:LD L,A:RET C
  164.                 LD A,H:SUB 8:LD H,A:RET
  165.  
  166. PIXDNDE         INC D:LD A,D:AND 7:RET NZ
  167.                 LD A,E:ADD A,32:LD E,A:RET C
  168.                 LD A,D:SUB 8:LD D,A:RET
  169. CHRAD           LD A,D:AND 7:RRCA :RRCA :RRCA :OR E:LD E,A
  170.                 LD A,D:AND 24:OR 64:LD D,A:RET
  171. PIXATRAD        SRL E:SRL E:SRL E:SRL D:SRL D:SRL D
  172. ATRAD           LD HL,BACKATR:LD A,D:LD D,0:ADD HL,DE
  173.                 LD E,32:JP MULT
  174.  
  175. ;***************************************
  176. ;** INTERRUPT ROUTINES                **
  177. ;***************************************
  178.  
  179. PLAYMUSIC       CP $FF
  180.                 RET Z:LD (PLAYMUSIC+1),A:LD (TUNENUM+1),A
  181.                 DI
  182.                 LD A,$3F:LD I,A
  183.                 ds 2;IM 1
  184.                 LD A,$17:call setpg:ds 2 ;LD BC,$7FFD:OUT (C),A
  185. TUNENUM         LD A,0:CALL MUSINITTUNE
  186.                 LD A,$10:call setpg:ds 2 ;LD BC,$7FFD:OUT (C),A
  187.                 LD A,$FE:LD I,A
  188.                 ds 2;IM 2
  189.                 EI:RET
  190.  
  191. KILLSOUND       LD A,$FF:LD (PLAYMUSIC+1),A
  192.                 DI:LD A,$3F:LD I,A
  193.                 ds 2;IM 1
  194.                 LD A,$17:call setpg:ds 2 ;LD BC,$7FFD:OUT (C),A
  195.                 CALL MUSRESETSOUND
  196.                 LD A,$10:call setpg:ds 2 ;LD BC,$7FFD:OUT (C),A
  197.                 LD A,$FE:LD I,A
  198.                 ds 2;IM 2
  199.                 EI:RET
  200.  
  201. INTER           DI:LD HL,INTPAGE: LD DE,INTPAGE+1:LD BC,$100
  202.                 LD (HL),$FF:LDIR
  203.                 LD HL,INTRUP:LD DE,INTJP:LD BC,12:LDIR
  204.                 LD A,INTPAGE/256:LD I,A
  205.                 ds 2;IM 2
  206.                 EI:RET
  207.  
  208. INTRUP          JP INTS
  209.                 DB "J.BAGLEY",24
  210.  
  211. INTS            DI:PUSH AF
  212. MUSCONT         LD A,1:OR A:JR Z,HERE
  213.                 PUSH BC
  214.                 LD A,$17:call setpg:ds 2 ;LD BC,$7FFD:OUT (C),A
  215.                 PUSH IX:PUSH HL:PUSH DE
  216.                 CALL MUSDOMUSIC
  217.                 POP DE:POP HL:POP IX
  218. PAGEON          LD A,$10:call setpg:ds 2 ;LD BC,$7FFD:OUT (C),A
  219.                 POP BC
  220. HERE            LD A,255:LD R,A
  221. FRAME           LD A,0:INC A:LD (FRAME+1),A
  222.                 POP AF:EI:RET
  223.  
  224. ;***************************************
  225. ;** PRINT ROUTINES                    **
  226. ;***************************************
  227.  
  228. UDGS
  229. HEARTCHR_80     DB #00,#76,#EF,#EF,#F7,#7E,#3C,#18
  230. KEYCHR1_81      DB #07,#CF,#1F,#9C,#1C,#9F,#0F,#87,#E0,#F3,#F9,#39,#38,#D9,#F0,#E1
  231. KEYCHRZ_83      DB #00,#81,#01,#81,#01,#81,#A9,#00,#00,#81,#C0,#C1,#C0,#C1,#D5,#80
  232. KEYCHR3_85      DB #00,#D5,#00,#80,#00,#80,#00,#80,#00,#53,#01,#01,#00,#01,#00,#01
  233. KEYCHR4_87      DB #00,#80,#00,#80,#00,#80,#A9,#00,#00,#01,#00,#01,#00,#01,#55,#00
  234. PAKCHR_89       DB #05,#68,#00,#F1,#E9,#00,#68,#05,#E0,#F6,#00,#DF,#DF,#00,#F6,#E0
  235. GUNCHR_8B       DB #F8,#87,#B0,#A0,#83,#84,#88,#F0,#EF,#90,#47,#00,#90,#8F,#84,#FC,#FC,#06,#A9,#09,#06,#FC,#00,#00
  236.  
  237. BOXUDGS         DB %11111111,%00000111
  238.                 DB %11111000,%00011000
  239.                 DB %11100000,%00100000
  240.                 DB %11000000,%01000000
  241.                 DB %11000000,%01000000
  242.                 DB %10000000,%10000000
  243.                 DB %10000000,%10000000
  244.                 DB %10000000,%10000000
  245.                 DB %11111111,%11100000
  246.                 DB %00011111,%00011000
  247.                 DB %00000111,%00000100
  248.                 DB %00000011,%00000010
  249.                 DB %00000011,%00000010
  250.                 DB %00000001,%00000001
  251.                 DB %00000001,%00000001
  252.                 DB %00000001,%00000001
  253.                 DB %00000001,%00000001
  254.                 DB %00000001,%00000001
  255.                 DB %00000001,%00000001
  256.                 DB %00000011,%00000010
  257.                 DB %00000011,%00000010
  258.                 DB %00000111,%00000100
  259.                 DB %00011111,%00011000
  260.                 DB %11111111,%11100000
  261.                 DB %10000000,%10000000
  262.                 DB %10000000,%10000000
  263.                 DB %10000000,%10000000
  264.                 DB %11000000,%01000000
  265.                 DB %11000000,%01000000
  266.                 DB %11100000,%00100000
  267.                 DB %11111000,%00011000
  268.                 DB %11111111,%00000111
  269.                 DB %00000000,%10000001
  270.                 DB %00000001,%10000010
  271.                 DB %00000011,%10000100
  272.                 DB %10000111,%01000100
  273.                 DB %10000111,%01000100
  274.                 DB %11000011,%00100010
  275.                 DB %11110001,%00011001
  276.                 DB %11111100,%00000111
  277.  
  278. ;***************************************
  279.  
  280. SPRINT          POP HL:CALL PRINT:JP (HL)
  281.  
  282. PRINT           LD A,(HL):INC HL:CP PREOF: RET Z
  283.                 CP 32:JP C,PRTCODES:CALL PRTCELL:JP PRINT
  284.  
  285. PRTUDG          LD L,A:LD H,0:ADD HL,HL:ADD HL,HL:ADD HL,HL
  286.                 LD BC,UDGS:ADD HL,BC:LD (UDGHL+1),HL
  287.                 POP BC:POP DE:POP HL
  288.                 LD BC,(FONT):PUSH BC
  289. ;                LD A,(FONT+2):PUSH AF
  290.  
  291.                 LD BC,UDGRET:PUSH BC:PUSH HL:PUSH DE:PUSH BC
  292.                 XOR A:LD L,A:LD H,A:LD (FONT),HL
  293. ;                LD (FONT+2),A
  294. ;                LD (FONT+3),HL
  295.  
  296. UDGHL           LD HL,$0000:JR PRTCHR
  297. UDGRET
  298. ;               POP AF:LD (FONT+2),A
  299.                 POP BC:LD (FONT),BC
  300. ;                DB 1
  301. ;                RRCA:OR (HL):LD (FONT+3),BC
  302.                 RET
  303.  
  304. PRTCELL         PUSH HL:PUSH DE:PUSH BC:XOR 128:JP P,PRTUDG
  305.                 LD L,A:LD H,7:ADD HL,HL:ADD HL,HL:ADD HL,HL
  306. PRTCHR          LD A,D:AND 7:RRCA:RRCA:RRCA:OR E:LD E,A
  307.                 LD A,D:AND 24:OR 64:LD D,A:PUSH DE:LD B,8
  308. CHRBLP          LD A,(HL)
  309. FONT            RRCA:OR (HL)
  310. ;                INC HL:OR (HL):DEC HL
  311. ;                RRCA:OR (HL)
  312. CHRSIZE         NOP:NOP
  313.                 LD (DE),A
  314.                 INC D:LD A,D:AND 7:JR NZ,PSKP
  315.                 LD A,E:ADD A,32:LD E,A:JR C,PSKP
  316.                 LD A,D:SUB 8:LD D,A
  317. PSKP            INC HL:DJNZ CHRBLP:POP DE
  318.                 LD A,D:RRA:RRA:RRA:AND 3:OR 88:LD D,A:DB 62
  319. ATTR            DB 7+64
  320.                 OR A:JP M,NOMORE+1:JR NOMORE
  321. FROM            LD (DE),A:LD A,E:ADD A,32:LD E,A
  322.                 ADC A,D:SUB E:LD D,A:DB 62
  323. ATTR2           DB 7+64
  324. NOMORE          LD (DE),A:POP BC:POP DE:POP HL
  325.                 INC E:LD A,E:CP 32:RET C
  326. DOWNLINE        LD E,0:INC D:LD A,D:CP 24:RET C:LD D,0:RET
  327.  
  328. PRTCODES        CP PRKEY:     JP Z,PRTKEY
  329.                 CP PRAT:      JP Z,PRTAT
  330.                 CP PRINK:     JP Z,PRTINK
  331.                 CP PRINK2:    JP Z,PRTINK2
  332.                 CP PRCLS:     JP Z,PRTCLS
  333.                 CP PRSIZE:    JP Z,PRTSIZE
  334.                 CP PRMULTY:   JP Z,PRTMULTY
  335.                 CP PRGAMECLS: JP Z,PRTGAMECLS
  336.                 CP PRPAUSE:   JP Z,PRTPAUSE
  337.                 JP PRINT
  338.  
  339. ;DEC5            LD BC,10000:CALL DEC0
  340. ;DEC4            LD BC,1000:CALL DEC0
  341. DEC3            LD BC,100:CALL DEC0
  342. DEC2            LD BC,10:CALL DEC0
  343. DEC1            LD BC,1
  344. DEC0            LD A,"0"-1
  345. DECL            INC A:OR A:SBC HL,BC:JR NC,DECL
  346.                 ADD HL,BC:JP PRTCELL
  347.  
  348. PRTPAUSE        CALL PAUSE0:JP PRINT
  349.  
  350. PRTGAMECLS      PUSH HL:CALL GAMECLS:POP HL:LD DE,0:JP PRINT
  351.  
  352. PRTSIZE         LD A,(HL):INC HL:OR A:JR Z,NAMO
  353.                 DEC A:JR Z,EDZ:INC A
  354.                 LD C,A:LD B,(HL):INC HL:XOR A:JR SETSIZE
  355. EDZ             DB 1
  356.                 LD (DE),A:INC D
  357. SETSIZE         LD (CHRSIZE),BC:LD (FROM-1),A:JP PRINT
  358. NAMO            LD C,A:LD B,A:LD A,NOMORE-FROM:JR SETSIZE
  359.  
  360. PRTMULTY        LD B,(HL):INC HL:LD C,(HL):INC HL
  361.                 LD A,B:OR A:JP Z,PRINT
  362. PRTM1           PUSH BC:LD A,C:CALL PRTCELL:POP BC:DJNZ PRTM1:JP PRINT
  363.  
  364. PRTKEY          LD A,(HL):INC HL:LD (ATTR),A
  365.                 LD A,(HL):INC HL:PUSH AF:CALL PRTCELL
  366.                 LD A,(ATTR):XOR $40:LD (ATTR),A:POP AF:INC A
  367.                 CALL PRTCELL:LD A,E:SUB 2:LD E,A:INC D:JP PRINT
  368.  
  369. PRTCLS          PUSH HL:CALL CLS:POP HL:JP PRINT
  370.  
  371. PRTAT           LD E,(HL):INC HL:LD D,(HL):INC HL:JP PRINT
  372.  
  373. PRTINK          LD A,(HL):INC HL:LD (ATTR),A:LD (ATTR2),A:JP PRINT
  374. PRTINK2         LD A,(HL):INC HL:LD (ATTR2),A:JP PRINT
  375.  
  376. CLS             LD A,(ATTR)
  377.                 LD HL,$5800:LD DE,$5801:LD BC,$02FF:LD (HL),A:LDIR
  378.                 LD HL,$4000:LD DE,$4001:LD BC,$17FF:LD (HL),L:LDIR
  379.                 LD DE,$0000:RET
  380.  
  381. GAMECLS         LD HL,$5800:LD DE,$5801:LD BC,$01FF:LD (HL),L:LDIR
  382.                 LD HL,$4000:LD DE,$4001:LD BC,$0FFF:LD (HL),L:LDIR
  383.                 RET
  384.  
  385. ;***************************************
  386. ;** KEYBOARD ROUTINES                 **
  387. ;***************************************
  388.  
  389. XTRAKEYS        DB %10111111,%10000 ; H     (PAUSE GAME..)
  390.                 DB %01111111,%00001 ; SPACE (NITRO ETC...)
  391.  
  392. KEYBOARD        DB %01111111,%00100 ; M
  393.                 DB %11111011,%00001 ; Q
  394.                 DB %11111101,%00001 ; A
  395.                 DB %11011111,%00010 ; O
  396.                 DB %11011111,%00001 ; P
  397.  
  398. FACEII          DB %11101111,%00001 ; 0
  399.                 DB %11101111,%00010 ; 9
  400.                 DB %11101111,%00100 ; 8
  401.                 DB %11101111,%10000 ; 6
  402.                 DB %11101111,%01000 ; 7
  403.  
  404. CURSORS         DB %11101111,%00001 ; 0
  405.                 DB %11101111,%01000 ; 7
  406.                 DB %11101111,%10000 ; 6
  407.                 DB %11110111,%10000 ; 5
  408.                 DB %11101111,%00100 ; 8
  409.  
  410. READKEYS        LD A,CONT
  411.                 PUSH AF:LD HL,XTRAKEYS:LD BC,$0200:CALL CONTLOP:POP AF
  412.                 LD HL,KEYBOARD:OR A:JR Z,GOTCONT:DEC A:JR Z,KEMPSTON
  413.                 LD HL,FACEII:DEC A:JR Z,GOTCONT:LD HL,CURSORS
  414. GOTCONT         LD B,5:CALL CONTLOP:LD A,C:LD (FUDLR),A:RET
  415. CONTLOP         LD A,(HL):INC HL:IN A,(254)
  416.                 AND (HL):INC HL:JR NZ,NOSCF:SCF
  417. NOSCF           RL C:DJNZ CONTLOP:LD A,C:LD (FUDLR),A:RET
  418.  
  419. KEMPSTON        RRC C:RRC C:RRC C
  420. curkempston=$+1
  421.                 ld a,0
  422.                 ds 2
  423.                 ;LD A,1:IN A,(31)
  424.                 AND 31:OR C:LD (FUDLR),A
  425.                 RET
  426.  
  427. PAUSE           LD BC,$F000:JP DELAYBC
  428.  
  429. PAUSE0          CALL WAITNOKEY:CALL WAITKEY
  430. WAITNOKEY       PUSH HL:PUSH BC:CALL READKEYS:POP BC:POP HL
  431.                 OR A:JR NZ,WAITNOKEY
  432.                 XOR A:IN A,($FE):CPL:AND 31:JR NZ,WAITNOKEY:RET
  433. WAITKEY         PUSH HL:PUSH BC:CALL READKEYS:POP BC:POP HL
  434.                 OR A: RET NZ
  435.                 XOR A:IN A,($FE):CPL:AND 31:JR Z,WAITKEY:RET
  436.  
  437. ;***************************************
  438. ;** BEEPER ROUTINES                   **
  439. ;***************************************
  440.  
  441. GOBEEP          LD E,A:LD A,(BEEPNUM):OR A:JR Z,ISBEEP
  442.                 CP E:JR Z,ISBEEP:RET NC
  443. ISBEEP          LD A,E:LD (BEEPNUM),A:ADD A,A:LD E,A:LD D,0
  444.                 LD HL,BEEPTAB-2:ADD HL,DE:LD E,(HL):INC HL:LD D,(HL)
  445.                 LD (BEEPOS),DE
  446.                 RET
  447.  
  448. BEEPER          EI:XOR A:LD R,A:DB 62
  449. BEEPNUM         DB 0
  450.                 OR A:JR Z,NOBEEP:DB 33
  451. BEEPOS          DW 0
  452.                 LD A,(HL):INC HL:CP FIN:JR Z,ENDBEEP
  453.                 LD (BEEPOS),HL:LD C,A:SRL A:JR C,WHITE
  454. DOBEEP          LD A,24:OUT (254),A:LD B,C
  455. Z0              LD A,R:RET M:DJNZ Z0
  456.                 LD A,0:OUT (254),A:LD B,C
  457. Z1              LD A,R:RET M:DJNZ Z1
  458.                 INC C:JR DOBEEP
  459.  
  460. ENDBEEP         XOR A:LD (BEEPNUM),A
  461. NOBEEP          LD A,R:RET M:JR NOBEEP
  462. DODRM           LD A,24:OUT (254),A:LD A,(RND1):LD B,A
  463. BE0             LD A,R:RET M:DJNZ BE0
  464.                 LD A,0:OUT (254),A
  465. BEAT
  466.                 LD B,0
  467. BE1             LD A,R:RET M:DJNZ BE1
  468.                 CALL RAND:DJNZ DODRM
  469.  
  470. WHITE           LD A,(BEAT+1):PUSH AF
  471.                 LD A,C:LD (BEAT+1),A:CALL DODRM
  472.                 POP AF:LD (BEAT+1),A:RET
  473.  
  474. ;****************************************
  475. ;** SOUND FX                           **
  476. ;****************************************
  477.  
  478. BEEPTAB         DW WALKFX
  479.                 DW SHOOTFX
  480.                 DW FLAMEFX
  481.                 DW EXPLODEFX
  482.                 DW GETKEYFX
  483.                 DW KILLBADFX
  484.  
  485. WALKFX          DB 200,FIN
  486. SHOOTFX         DB 010,200,FIN
  487. FLAMEFX         DB 250,100,200,050,150,FIN
  488. EXPLODEFX       DB 200,100,050,120,120,050,FIN
  489. GETKEYFX        DB 100,200,150,150,200,100,FIN
  490. KILLBADFX       DB 200,050,FIN
  491.  
  492. ;***************************************
  493.  
  494. ;***************************************
  495. ;** HIGH SCORE PAGE                   **
  496. ;***************************************
  497.  
  498. NAMEADD         EQU 6
  499. SCOREADD        EQU 17
  500. HILEN           EQU 25
  501.  
  502. TESTHIGH        CALL KILLSOUND:CALL WAITNOKEY
  503.                 LD HL,HI1+SCOREADD:LD C,10
  504. TSTHICLP        PUSH HL:LD DE,SCORE:LD B,8
  505. TSTHIBLP        LD A,(DE):CP (HL):JR C,LOWERHIGH:JR NZ,GOTHIGH
  506. SAMEHIGH        INC HL:INC DE:DJNZ TSTHIBLP
  507. LOWERHIGH       POP HL:LD DE,HILEN:ADD HL,DE:DEC C:JP NZ,TSTHICLP:RET
  508. GOTHIGH         POP HL:LD DE,HI10+NAMEADD:LD A,C:LD (NAMENUM),A
  509.                 DEC A:JR Z,NOSCRO:LD HL,HI9+NAMEADD
  510. SCROHI          PUSH HL:PUSH DE:PUSH BC:LD BC,10+1+8:LDIR
  511.                 POP BC:POP DE:POP HL:LD BC,0-HILEN:ADD HL,BC
  512.                 EX DE,HL:ADD HL,BC:EX DE,HL:DEC A:JR NZ,SCROHI
  513. NOSCRO          PUSH DE:LD HL,11:ADD HL,DE:EX DE,HL
  514.                 LD HL,SCORE:LD BC,8:LDIR
  515.  
  516.                 LD HL,NAMETEXT:LD DE,NAMETEXT+1:LD BC,10:LD (HL)," "
  517.                 LDIR
  518.  
  519.                 LD HL,HIGHSCORETEXT:CALL PRINT:CALL SPRINT
  520.                 DB PRINK,$4E,PRSIZE,1,PRAT,05,14,"   STICK YA NAME IN   "
  521.                 DB PRINK,$07,PRSIZE,0,PREOF
  522.  
  523.                 LD A,7:CALL PLAYMUSIC
  524.                 XOR A:LD (NAMEX),A
  525.  
  526. NAMELOOPZ       LD A,31:LD (ALPHANUM),A
  527. NAMELOOP        LD B,8:PUSH BC:CALL BEEPER:POP BC:DJNZ NAMELOOP+2
  528.                 LD A,(NAMENUM):NEG:ADD A,14:LD D,A:LD E,8
  529.                 LD HL,NAMETEXT:CALL PRINT:LD A,(ALPHANUM)
  530.                 LD HL,ALPHABET:CALL ADDHLA
  531.                 LD DE,NAMETEXT:LD A,(NAMEX):ADD A,E:LD E,A
  532.                 ADC A,D:SUB E:LD D,A:LD A,(HL):LD (DE),A
  533.                 LD A,(NAMEX):ADD A,8:LD E,A
  534.                 LD A,(NAMENUM):NEG:ADD A,14:LD D,A
  535.                 LD A,$38:LD (ATTR),A
  536.                 LD A,(HL):CALL PRTCELL:LD A,$07:LD (ATTR),A
  537.  
  538.                 CALL READKEYS:LD C,A:LD A,(ALPHANUM)
  539.                 RR C:JR NC,NOTRT
  540.                 INC A:PUSH AF:LD A,2:CALL GOBEEP:POP AF
  541. NOTRT           RR C:JR NC,NOTLT
  542.                 DEC A:PUSH AF:LD A,2:CALL GOBEEP:POP AF
  543. NOTLT           AND 31:LD (ALPHANUM),A:BIT 4-2,C:JR Z,NAMELOOP
  544.  
  545.                 CP 31:JR Z,ENTER
  546.                 CP 30:JR Z,DELETE
  547.  
  548.                 LD A,(NAMEX):CP 10:JP Z,NAMELOOP
  549.                 PUSH AF:LD A,3:CALL GOBEEP:POP AF
  550.                 INC A:LD (NAMEX),A:CP 10:JP Z,NAMELOOPZ
  551.                 JP NAMELOOP
  552.  
  553. DELETE          LD A,(NAMEX):OR A:JP Z,NAMELOOP
  554.                 PUSH AF:LD A,1:CALL GOBEEP:POP AF
  555.                 LD HL,NAMETEXT:LD DE,(NAMEX):LD D,0:ADD HL,DE
  556.                 LD (HL)," ":DEC A:LD (NAMEX),A:JP NAMELOOP
  557.  
  558. ENTER           LD HL,NAMETEXT:LD DE,(NAMEX):LD D,0:ADD HL,DE
  559.                 LD (HL)," ":POP DE:LD HL,NAMETEXT:LD BC,10:LDIR
  560.                 JP CLS
  561.  
  562. ALPHANUM        DB 0
  563. ALPHABET        DB "ABCDEFGHIJKLMNOPQRSTUVWXYZ .<>re"
  564.  
  565. NAMEX           DB 0
  566. NAMENUM         DB 10                   ; 10 = HIGH 1
  567. NAMETEXT        DB "           ",PREOF
  568.  
  569. HIGHSCORES      LD A,HIGHTUNE:CALL PLAYMUSIC
  570.                 XOR A:LD (ATTR),A:CALL CLS:CALL SPRINT
  571. HIGHSCORETEXT   DB PRINK,$45,PRINK2,$44,PRGAMECLS,PRSIZE,1
  572.                 DB PRAT,06,00,"MIDNIGHT  RESISTANCE"
  573.                 DB PRSIZE,0,PRAT,09,03,"TOP 10 PLAYERS"
  574. HI1             DB PRAT,05,04,"01 JAMES B.   00010000"
  575. HI2             DB PRAT,05,05,"02 JACQUI H.  00009000"
  576. HI3             DB PRAT,05,06,"03 PAT W.     00008000"
  577. HI4             DB PRAT,05,07,"04 NIGE W.    00007000"
  578. HIS             DB PRAT,05,08,"05 CRAIG W.   00006000"
  579. HI6             DB PRAT,05,09,"06 DONNA W.   00005000"
  580. HI7             DB PRAT,05,10,"07 DAVE B.    00004000"
  581. HI8             DB PRAT,05,11,"08 KATHY H.   00003000"
  582. HI9             DB PRAT,05,12,"09 HELLO MUM. 00002000"
  583. HI10            DB PRAT,05,13,"10 THATS ALL! 00001000"
  584.                 DB PRAT,05,15,"LAST PLAYER.. "
  585. LASTSCORE       DB "00000000",PREOF
  586.                 CALL SPRINT:DB PRSIZE,1
  587.                 DB PRAT,10,17,"FIRE TO PLAY"
  588.                 DB PRAT,06,19,"'S' TOGGLE MUSIC OFF"
  589.                 DB PRAT,04,22,"WINNERS DON'T USE DRUGS.",PREOF
  590.                 CALL SHOWTOG
  591.  
  592. HIGHLOOP
  593.                 LD A,$FD:IN A,(254):AND 2:JR NZ,NOTOG
  594.                 LD A,(MUSCONT+1):XOR 1:LD (MUSCONT+1),A
  595.                 OR A:PUSH AF:CALL Z,KILLSOUND
  596.                 POP AF:LD A,(TUNENUM+1):CALL NZ,PLAYMUSIC
  597.                 CALL SHOWTOG:CALL WAITNOKEY
  598. NOTOG           CALL READKEYS:DB 62
  599. FUDLR           DB 0
  600.                 AND $10:JR Z,HIGHLOOP:JP CLS
  601.  
  602. SHOWTOG         LD A,(MUSCONT+1):OR A:LD HL,"FF":JR Z,MOF:LD HL," N"
  603. MOF             LD (HABBY-2),HL
  604.                 CALL SPRINT:DB PRSIZE,1,PRAT,24,19,"FF"
  605. HABBY           DB PRSIZE,0,PREOF
  606.                 RET
  607.  
  608.  
  609. ;***************************************
  610. ;** DUMP BACK SCREEN ROUTINE          **
  611. ;***************************************
  612.  
  613. DUMPBACK        LD HL,BACKATR+3:LD DE,$5803:EXX:LD HL,BACKSCR+3
  614.                 LD DE,$4003:CALL PLINE:LD DE,$4023:CALL PLINE
  615.                 LD DE,$4043:CALL PLINE:LD DE,$4063:CALL PLINE
  616.                 LD DE,$4083:CALL PLINE:LD DE,$40A3:CALL PLINE
  617.                 LD DE,$40C3:CALL PLINE:LD DE,$40E3:CALL PLINE
  618.                 LD DE,$4803:CALL PLINE:LD DE,$4823:CALL PLINE
  619.                 LD DE,$4843:CALL PLINE:LD DE,$4863:CALL PLINE
  620.                 LD DE,$4883:CALL PLINE:LD DE,$48A3:CALL PLINE
  621.                 LD DE,$48C3:CALL PLINE:LD DE,$48E3
  622. PLINE           LD C,H:LD A,8
  623. PLIN1           LDI:LDI:LDI:LDI:LDI:LDI:LDI:LDI
  624.                 LDI:LDI:LDI:LDI:LDI:LDI:LDI:LDI
  625.                 LDI:LDI:LDI:LDI:LDI:LDI:LDI:LDI
  626.                 LDI:LDI:LD BC,$0006:ADD HL,BC
  627.                 EX DE,HL:LD C,$E6:ADD HL,BC:EX DE,HL
  628.                 DEC A:JP NZ,PLIN1
  629.                 EXX:LD C,H:LDI:LDI:LDI:LDI:LDI:LDI
  630.                 LDI:LDI:LDI:LDI:LDI:LDI:LDI:LDI:LDI
  631.                 LDI:LDI:LDI:LDI:LDI:LDI:LDI:LDI:LDI
  632.                 LDI:LDI:LD BC,$0006:ADD HL,BC
  633.                 EX DE,HL:ADD HL,BC:EX DE,HL:EXX:RET
  634.  
  635. COPYBACK        LD HL,COPYLINE:PUSH HL:PUSH HL:PUSH HL
  636.                 PUSH HL:PUSH HL:PUSH HL:PUSH HL:PUSH HL:PUSH HL
  637.                 PUSH HL:PUSH HL:PUSH HL:PUSH HL:PUSH HL:PUSH HL
  638.                 LD HL,BACKATR2:LD DE,BACKATR+3:EXX
  639.                 LD HL,BACKSCR2:LD DE,BACKSCR+3
  640. COPYLINE        LD A,8
  641. CLIN1           LD BC,26:LDIR:INC E:INC E:INC DE:INC E:INC E:INC E
  642.                 DEC A:JP NZ,CLIN1:EXX:LD BC,26:LDIR
  643.                 INC E:INC E:INC DE:INC E:INC E:INC E:EXX:RET
  644.  
  645. ;****************************************************************************
  646. ;** COPY DATA FROM 'DE' PAGE 'A' TO 'HL' PAGE 0 FOR 'BC' BYTES             **
  647. ;****************************************************************************
  648.  
  649. PAGECOPY        
  650.                 ex de,hl
  651.                 ld hx,a
  652.                 ld lx,0
  653.                 di
  654.                 call copypage
  655.                 ei
  656.                 ret
  657.                 ;PUSH DE:EXX:POP HL:LD D,A:LD E,$10:LD BC,$7FFD:EXX
  658.                 DI
  659.                 LD A,$3F:LD I,A
  660.                 ;IM 1
  661. BCPAGECOPY      EXX:OUT (C),D:LD A,(HL):INC HL
  662.                 OUT (C),E:EXX:LD (HL),A:INC HL
  663.                 DEC BC:LD A,B:OR C:JP NZ,BCPAGECOPY
  664.                 LD A,$FE:LD I,A
  665.                 ds 2;IM 2
  666.                 EI:RET
  667.  
  668. ;****************************************************************************
  669. ;** THE GAME CODE                                                          **
  670. ;****************************************************************************
  671.  
  672. GAME            LD HL,(LEVELSTARTUP):LD (HEROX+1),HL
  673.                 LD A,H:SUB $10:LD H,A:LD (GUNX+1),HL
  674.  
  675.                 LD HL,(MAPXS):LD (MAPX),HL
  676.                 LD A,(MAPDIRS):LD (MAPDIR),A
  677.                 LD A,(RM):LD (RIGHTMAX+1),A
  678.                 LD A,(RDM):LD (DOWNMAX+1),A
  679.                 LD A,(UD):LD (SETUD+1),A
  680.                 LD A,(LR):LD (SETLR+1),A
  681.  
  682.                 LD A,(LD1):LD (LAD1+1),A
  683.                 LD A,(LD2):LD (LAD2+1),A
  684.                 LD A,(CR1):LD (CRAWLPLAT+1),A
  685.                 LD A,(SL1):LD (SLID1+1),A
  686.                 LD A,(SL2):LD (SLID2+1),A
  687.                 LD A,(SL3):LD (SLID3+1),A
  688.                 LD A,(SL4):LD (SLID4+1),A
  689.  
  690.                 LD HL,(CHRS):LD (DMPCHRAD+1),HL
  691.                 LD HL,(ATRS):LD (DMPATRAD+1),HL
  692.                 LD HL,(BLOX):LD (BLOXAD1+1),HL:LD (BLOXAD2+1),HL
  693.  
  694.                 DB 62
  695. MAPDIR          DB 0
  696.                 OR A:PUSH AF:CALL Z,SETLEFTRIGHT:POP AF
  697.                 PUSH AF:CALL NZ,SETUPDOWN:POP AF:JR NZ,SETU
  698.                 LD DE,$0018
  699. UPDATLOP1       PUSH DE:CALL UPDATEX:POP DE:DEC E:DEC E
  700.                 JP P,UPDATLOP1:JR SETL
  701. SETU            LD DE,$0F00
  702. UPDATL0P2       PUSH DE:CALL UPDATEY:POP DE:DEC D:JP P,UPDATL0P2
  703. SETL
  704.                 LD A,18:LD (HEROP+1),A:LD A,2:LD (GUNDIR+1),A
  705.                 XOR A:LD (NOSCROLL+1),A:LD (HEROF+1),A
  706.                 LD (ONLADDER+1),A:DEC A:LD (HEROG+1),A
  707.                 CALL RESETBAD:CALL PRTSTATUS
  708.  
  709.                 XOR A:LD (FRAME+1),A
  710.  
  711. GAMELOOP        XOR A:LD (RETMODE),A
  712.  
  713.                 CALL DOALLBACKBITS
  714.                 CALL MOVEBAD:CALL DODGYCOLISH
  715.                 CALL ReadKeysCheckQuit;READKEYS
  716.                 CALL DECODE
  717.  
  718.                 LD DE,(WEPROOMX)
  719.                 LD A,(MAPX):CP E:JR NZ,NOGOWEPROOM
  720.                 LD A,(MAPY):CP D:JR NZ,NOGOWEPROOM
  721.                 LD HL,(DOORXY):LD A,(DOORSIZE):LD H,A
  722.                 LD DE,(HEROX+1):LD D,$1F:CALL HITA:JR C,NOGOWEPROOM
  723.                 LD HL,(DOORXY+1):LD A,(DOORSIZE+1):LD H,A
  724.                 LD DE,(HEROX+2):LD D,$1F:CALL HITA:JR C,NOGOWEPROOM
  725.                 LD A,(PRTDOOR+1):OR A:JP Z,WEAPONROOM
  726. NOGOWEPROOM     LD A,(FUDLR):AND $40:CALL NZ,PAUSE0
  727.                 LD A,(RETMODE):OR A:RET NZ
  728.                 JP GAMELOOP
  729. ;               LD A,BREAK:LD (RETMODE),A
  730. ;               LD A,127:IN A,(254):RRA :JP C,GAMELOOP
  731. ;               LD A,254:IN A,(254):RRA :JP C,GAMELOOP:RET
  732.  
  733. ;****************************************************************************
  734. ;** DO ALL BACK BITS (EG. PRINT ALL SCREENS)                               **
  735. ;****************************************************************************
  736.  
  737. DOALLBACKBITS   XOR A:LD (BAGE+1),A
  738.                 CALL CONTSCROLL:CALL SCRCNT:CALL COPYBACK:CALL PRTDOOR
  739.                 CALL PRTLEVELBACK
  740.                 LD A,(STH+1):OR A:JR Z,SNF2
  741.                 LD A,(SHIM+1):LD (HEROX+2),A:SUB $10:LD (GUNX+2),A
  742.                 XOR A:LD (STH+1),A
  743. SNF2
  744.                 CALL PRTWAPS:CALL PRTKEYS
  745.                 CALL PRTBADDIES:CALL PRTHERO:CALL PRTBARRIER:CALL PRTBULLETS
  746.                 CALL PRTFLAMES:CALL PRTEXP
  747.  
  748.                 LD A,$FD:IN A,(254):AND 2
  749. MAZ             JR NZ,NOMOG
  750.                 LD A,(MAZ):XOR 8:LD (MAZ),A:AND 8:JR Z,NOMOG
  751.                 LD A,(MUSCONT+1):XOR 1:LD (MUSCONT+1),A
  752.                 OR A:PUSH AF:CALL Z,KILLSOUND
  753.                 POP AF:LD A,(TUNENUM+1):CALL NZ,PLAYMUSIC
  754. NOMOG
  755.                 CALL BEEPER:DB 62
  756. POS             DB 0
  757.                 INC A:LD (POS),A:CALL RAND
  758.  
  759.                 LD HL,SCORETEXT:CALL PRINT
  760.                 LD A,$47:LD (ATTR),A
  761.                 LD HL,(AMMOLEFT+1):LD DE,$110C:CALL DEC3
  762.                 LD HL,(BACKLEFT+1):LD H,0:LD DE,$1114:CALL DEC2
  763.  
  764. ;               LD A,(MAPX):LD DE,$1610:CALL HEX8
  765. ;               LD A,(MAPY):LD DE,$1710:CALL HEX8
  766.  
  767.                 LD A,(POS):AND 7:LD C,A:CP 6:CALL C,PRTCOL
  768.  
  769.                 DB #06,#00,#10,#FE,#10,#FE
  770.  
  771.                 LD HL,$5A63
  772.                 LD B,26:LD A,B
  773. LIMP            SUB 0:LD C,A
  774. LIVES           EQU LIMP+1
  775. PLATELP         LD A,C:CP B:LD A,#42:JR C,PRTLF:XOR A
  776. PRTLF           LD (HL),A:INC HL:DJNZ PLATELP
  777.  
  778.                 LD A, (BLAD+1): XOR 3:LD (BLAD+1),A
  779.                 AND 1:LD (MISSILEANI+1),A
  780.  
  781.                 JP DUMPBACK
  782.  
  783. PRTCOL          ADD A,A:ADD A,3:LD E,A:LD D,20:LD A,C
  784. KEYSCOLLECTED   CP 6:LD HL,NOKEYCEL:JR NC,NUS:LD HL,KEYCEL
  785. NUS             JP PRINT
  786.  
  787. KEYCEL          DB PRSIZE,0,PRKEY,#0B,$81,PRKEY,#0E,$83,PREOF
  788. NOKEYCEL        DB PRSIZE,0,PRKEY,#0B,$85,PRKEY,#0E,$87,PREOF
  789.  
  790. ;****************************************************************************
  791.  
  792. ; E=TENS TO ADD TO SCORE
  793. ; D=HUNDREDS TO ADD TO SCORE
  794.  
  795. ADDSCORE        PUSH BC:PUSH HL:LD HL,SCORE+7-1:LD B,7
  796. ADDSCOREBLP     LD A,(HL):ADD A,E:LD (HL),A:CP "9"+1:JR C,NOTOVER
  797.                 SUB 10:LD (HL),A
  798.                 LD A,B:CP 5:JR NZ,NOEXTRA        ; EVERY 10 THOUSAND POINTS
  799.                 LD A,(LIVES):CP 3:JR NC,NOEXTRA:INC A:LD (LIVES),A
  800. NOEXTRA         INC D:LD A,D:CP 10:JR C,NOTOVER
  801.                 DEC HL:SUB 10:LD E,A:LD D,1:DJNZ ADDSCOREBLP
  802. XITADDSCORE     POP HL:POP BC:RET
  803. NOTOVER         LD A,D:OR A:JR Z,XITADDSCORE
  804.                 DEC HL:LD E,D:LD D,0:DJNZ ADDSCOREBLP:JR XITADDSCORE
  805.  
  806. ;****************************************************************************
  807.  
  808. PRTSTATUS       LD A,(LEVEL):CP STARTLEV:RET NZ
  809.                 CALL SPRINT:DB PRSIZE,0
  810.                 DB PRINK,0,PRAT,03,19,PRMULTY,26,$80
  811.                 DB PRAT,09,17,PRKEY,5,$8B,PRAT,11,17,$8D
  812.                 DB PRAT,18,17,PRKEY,6,$89,PREOF
  813.  
  814.                 LD BC,$0600
  815. WAZS            PUSH BC:LD A,C:CALL PRTCOL:POP BC:INC C:DJNZ WAZS:RET
  816.  
  817. ;****************************************************************************
  818. ;** SCROLL ROUTINES                                                        **
  819. ;****************************************************************************
  820.  
  821. CONTSCROLL      LD A,0:OR A:RET Z:DEC A:LD (CONTSCROLL+1),A:PUSH AF
  822.                 XOR A:LD (NOSCROLL+1),A:CALL SCROLLUP
  823.                 CALL SCRDIR
  824. ;                CALL SCROLLRIGHT
  825.                 POP AF:RET Z:LD A,1:LD (NOSCROLL+1),A:RET
  826.  
  827. RETLR           LD A,(MAPY)
  828. SETLR           CP $10:JP Z,SETLEFTRIGHT:OR A:RET
  829.  
  830. SETUPDOWN       LD A,13:LD (MAPXSIZE),A:LD HL,(MAP2):LD (MAP),HL
  831.                 LD HL,(BADDYINITSY):LD (BADDATA+1),HL
  832.                 LD A,1:LD (MAPDIR),A:XOR A:RET
  833.  
  834. SCROLLUP        LD A,(NOSCROLL+1):CP 1:RET NC
  835.                 LD A,(LEVEL):CP 5:JR NZ,NOAE
  836.                 LD A,(MAPX):OR A:RET Z
  837. NOAE            LD A,(MAPDIR):OR A:RET Z
  838.                 LD A,(MAPY):OR A:JR Z,RETLR:DEC A:LD (MAPY),A
  839.                 LD HL,BACKATR2-$D0-1:LD DE,BACKATR2-1:LD BC,15*$D0:LDDR
  840.                 LD HL,BACKEND2-26-1:LD DE,BACKEND2-1:LD BC,15*26:LDDR
  841.                 LD HL,$0800:CALL SMODALLX:LD DE,$0000
  842.                 JP UPDATEY
  843. SCROLLDOWN
  844. NOSCROLL        LD A,0:CP 1:RET NC
  845.                 LD A,(MAPDIR):OR A:RET Z
  846.                 LD A,(MAPY)
  847. DOWNMAX         CP $10:JR NC,RETLR:INC A:LD (MAPY),A
  848.                 LD HL,BACKSCR2+$D0:LD DE,BACKSCR2:LD BC,15*$D0:LDIR
  849.                 LD HL,BACKATR2+26:LD DE,BACKATR2:LD BC,15*26:LDIR
  850.                 LD HL,$F800:CALL SMODALLX:LD DE,$0F00
  851. UPDATEY         PUSH DE:LD A,(MAPY):ADD A,D:LD D,A
  852.                 RRA
  853. BLOXAD1         LD HL,0:JR NC,SEFDY:INC HL:INC HL
  854. SEFDY           LD (BLXAD+1),HL:DB 33
  855. MAP             DW 0
  856.                 LD A,D:SRL A:LD D,0:ADD HL,DE
  857.                 PUSH AF:LD A,(MAPXSIZE):LD E,A:POP AF
  858.                 CALL MULT:POP DE:LD B,13
  859. BLPER           PUSH BC:LD A,(HL):INC HL:PUSH HL
  860.                 LD L,A:LD H,0:ADD HL,HL:ADD HL,HL
  861. BLXAD           LD BC,$FFFF:ADD HL,BC:LD A,(HL):INC HL:CALL DMPCHR
  862.                 LD A,(HL):CALL DMPCHR:POP HL:POP BC:DJNZ BLPER
  863.                 LD A,(MAPY):CALL TRYINITBAD
  864.                 CALL RETLR:CCF:RET
  865.  
  866. ;****************************************************************************
  867.  
  868. RETUD           LD A,(MAPX)
  869. SETUD           CP $E6:JP Z,SETUPDOWN:OR A:RET
  870. SETLEFTRIGHT    LD A,(MAXMAP):LD (MAPXSIZE),A:LD HL,(MAP1):LD (MAP),HL
  871.                 XOR A:LD (MAPDIR),A
  872.                 LD HL,(BADDYINITSX):LD (BADDATA+1),HL:LD A,(MAPX)
  873.                 OR A:RET Z:CP $E6:RET Z:ADD A,26:LD (MAPX),A
  874.                 LD HL,(BADDYINITSX2):LD (BADDATA+1),HL:RET
  875.  
  876. SCROLLLEFT      LD A,(LEVEL):OR A:JR Z,DOSCLEFT
  877.                 CP 9:JR Z,FOR9
  878.                 CP 5:SCF:CCF:RET NZ
  879. FOR9            LD A,(NOSCROLL+1):CP 1:RET NC
  880.                 LD A,(MAPDIR):OR A:RET NZ
  881. DOSCLEFT        LD A,(MAPX):SUB 2:CCF:JR NC,RETUD:LD (MAPX),A
  882.                 LD HL,BACKATR2-3:LD DE,BACKATR2-1:LD BC,16*$D0-2:LDDR
  883.                 LD HL,BACKEND2-3:LD DE,BACKEND2-1:LD BC,16*26-2:LDDR
  884.                 LD HL,$0010:CALL SMODALLX:LD DE,$0000:JP UPDATEX
  885.  
  886. SCROLLRIGHT     LD A,(LEVEL):OR A:JR Z,DOSCRIGHT
  887.                 CP 9:SCF:CCF:RET Z
  888.                 CP 5:SCF:CCF:RET Z
  889.                 LD A,(NOSCROLL+1):CP 1:RET NC
  890.                 LD A,(MAPDIR):OR A:RET NZ
  891.  
  892.                 LD A,(LEVEL):CP 4:JR NZ,DOSCRIGHT
  893.                 LD A,(MAPX):CP $AE:JR C,DOSCRIGHT
  894.                 CP $DE-4:JR NC,DOSCRIGHT:ADD A,2:LD (MAPX),A
  895.                 LD HL,BACKSCR2+$B62:LD DE,BACKSCR2+$B60:LD BC,$19E:LDIR
  896.                 LD HL,BACKATR2+$16E:LD DE,BACKATR2+$16C:LD BC,$032:LDIR
  897.                 LD HL,$00F0:CALL SMODALLX:LD A,1:LD (BLPER2-1),A
  898.                 LD HL,(MAP):PUSH HL:LD A,(MAPXSIZE):LD DE,7:CALL MULT
  899.                 LD (MAP),HL:LD DE,$0E18:CALL UPDATEX
  900.                 POP HL:LD (MAP),HL:LD A,8:LD (BLPER2-1),A:RET
  901.  
  902. DOSCRIGHT       LD A,(MAPX)
  903. RIGHTMAX        CP $E6:JP NC,RETUD:ADD A,2:LD (MAPX),A
  904.                 LD HL,BACKSCR2+2:LD DE,BACKSCR2:LD BC,16*$D0-2:LDIR
  905.                 LD HL,BACKATR2+2:LD DE,BACKATR2:LD BC,16*26-2:LDIR
  906.                 LD HL,$00F0:CALL SMODALLX:LD DE,$0018
  907. UPDATEX         PUSH DE:LD A,(MAPX):ADD A,E:LD E,A
  908. BLOXAD2         LD HL,0
  909. SEFDX           LD (BLXAD2+1),HL:LD HL,(MAP):SRL E
  910.                 LD D,0:ADD HL,DE:POP DE:LD B,8
  911. BLPER2          PUSH BC:LD A,(HL):DB 1
  912. MAPXSIZE        DW 0
  913.                 ADD HL,BC:PUSH HL:LD L,A:LD H,0:ADD HL,HL:ADD HL,HL
  914. BLXAD2          LD BC,$FFFF:ADD HL,BC
  915.                 LD A,(HL):INC HL:CALL DMPCHR
  916.                 LD A,(HL):INC HL:CALL DMPCHR:DEC E:DEC E:INC D
  917.                 LD A,(HL):INC HL:CALL DMPCHR
  918.                 LD A,(HL):INC HL:CALL DMPCHR:DEC E:DEC E:INC D
  919.                 POP HL:POP BC:DJNZ BLPER2
  920.                 LD A,(MAPX):CALL TRYINITBAD
  921.                 CALL RETUD:CCF:RET
  922.  
  923. ;***************************************
  924.  
  925. DMPCHR          PUSH HL:PUSH DE:PUSH BC:PUSH DE
  926.                 PUSH AF:LD HL,BACKSCR2:LD A,D:LD D,0:ADD HL,DE
  927.                 LD E,$D0:CALL MULT:POP AF:PUSH AF
  928.                 LD E,A:LD D,0:EX DE,HL:ADD HL,HL:ADD HL,HL:ADD HL,HL
  929. DMPCHRAD        LD BC,0:ADD HL,BC:EX DE,HL
  930.                 LD BC,26:LD A,(DE):LD (HL),A:INC DE:ADD HL,BC
  931.                 LD A,(DE):LD (HL),A:INC DE:ADD HL,BC
  932.                 LD A,(DE):LD (HL),A:INC DE:ADD HL,BC
  933.                 LD A,(DE):LD (HL),A:INC DE:ADD HL,BC
  934.                 LD A,(DE):LD (HL),A:INC DE:ADD HL,BC
  935.                 LD A,(DE):LD (HL),A:INC DE:ADD HL,BC
  936.                 LD A,(DE):LD (HL),A:INC DE:ADD HL,BC
  937.                 LD A,(DE):LD (HL),A:POP AF
  938. DMPATRAD        LD BC,0:ADD A,C:LD C,A:ADC A,B:SUB C:LD B,A
  939.                 POP DE:LD HL,BACKATR2:LD A,D:LD D,0:ADD HL,DE
  940.                 LD E,26:CALL MULT:LD A,(BC):LD (HL),A
  941.                 POP BC:POP DE:POP HL:INC E:RET
  942.  
  943. ;***************************************
  944.  
  945. SMODALLX
  946. SMODHERO        LD A,1:OR A:RET Z
  947.                 LD IX,BADDAT:LD DE,BADLEN:LD B,NOBAD
  948. SMODALLXBLP     LD A,(IX+ACTION):OR A:JR Z,OKDD:CP 6:JR Z,OKDD
  949.                 LD A,(IX+XPOS):ADD A,L:LD (IX+XPOS),A
  950.                 CP $E8:JR C,OKDE:LD (IX+ACTION),0
  951. OKDE            LD A,(IX+YPOS):ADD A,H:LD (IX+YPOS),A
  952.                 OR A:JP P,OKDD:CP $B0:JR C,OKDD:CP $D0:JR NC,OKDD
  953.                 LD (IX+ACTION),0
  954. OKDD            ADD IX,DE:DJNZ SMODALLXBLP
  955.  
  956.                 LD IX,WAPXYS:LD DE,5:LD B,6
  957. SMWP            LD A,(IX+02):CP $FF:JR Z,SKWP
  958.                 LD A,(IX+01):ADD A,H:LD (IX+01),A
  959.                 CP $B0: JR C,SKWP: CP $D0:JR NC,SKWP:LD (IX+02),$FF
  960. SKWP            ADD IX,DE:DJNZ SMWP
  961.  
  962.                 LD IX,KEYDAT:LD DE,KEYLEN:LD B,KEYNOKEY
  963. SMODALLXBLP2    LD A,(IX+KEYX):OR A:JR Z,OKKD:ADD A,L:LD (IX+KEYX),A
  964.                 CP $E8:JR C,OKKE:LD (IX+KEYX),0
  965. OKKE            LD A,H:OR A:JR Z,OKKD
  966.                 LD A,(IX+KEYY):ADD A,H:LD (IX+KEYY),A
  967.                 CP $B0:JR C,OKKD:CP $D0:JR NC,OKKD
  968.                 LD (IX+KEYX),0
  969. OKKD            ADD IX,DE:DJNZ SMODALLXBLP2
  970.  
  971.                 LD IX,BULDAT:LD DE,BULLEN:LD B,NOBUL
  972. SMODALLXBLP3    LD A,(IX+BULT):AND 7:CP 4:JR C,OKBD
  973.                 LD A,(IX+BULX):OR A:JR Z,OKBD:ADD A,L:LD (IX+BULX),A
  974.                 CP $E8:JR C,OKBE:LD (IX+BULX),0
  975. OKBE            LD A,(IX+BULY):ADD A,H:LD (IX+BULY),A
  976.                 OR A:JP P,OKBD:LD (IX+BULX),0
  977. OKBD            ADD IX,DE:DJNZ SMODALLXBLP3
  978.  
  979.                 LD IX,EXPDAT:LD DE,EXPLEN:LD B,NOEXP
  980. SMODALLXBLP3A   LD A,(IX+EXPP):CP EXPDEAD:JR NC,OSET
  981.                 LD A,(IX+EXPX):ADD A,L:LD (IX+EXPX),A
  982.                 CP $E8:JR C,OSED:LD (IX+EXPP),EXPDEAD
  983. OSED            LD A,(IX+EXPY): ADD A,H:LD (IX+EXPY),A
  984.                 OR A:JP P,OSET:LD (IX+EXPP),EXPDEAD
  985. OSET            ADD IX,DE:DJNZ SMODALLXBLP3A
  986.  
  987.                 CALL SMODLEVEL
  988.  
  989.                 LD A,(HEROX+2):ADD A,H
  990.                 LD (HEROX+2),A:SUB $10:LD (GUNX+2),A
  991.                 LD A,(HEROX+1):ADD A,L:CP $10:RET C:CP $D0:RET NC
  992.                 LD (HEROX+1),A:LD (GUNX+1),A:RET
  993.  
  994. ;****************************************************************************
  995. ;** DECODE JOYSTICK ROUTINE                                                **
  996. ;****************************************************************************
  997.  
  998. DYING           LD DE,(HEROX+1):LD HL,(GUNX+1):LD A,(HEROG+1)
  999.                 LD C,A:ADD A,D:OR A:JP M,FEST
  1000. SNA             LD D,A:LD A,C:ADD A,H:OR A:JP M,JPUZ
  1001.                 LD H,A:LD A,C:OR A:JP M,JPUS
  1002.                 PUSH DE:LD DE,(HEROX+1):CALL HESTFLOOR:POP DE:JR NC,JPUS
  1003.  
  1004. FEST            LD A,(INFLIVES):OR A:JR NZ,CHT
  1005.                 LD A,(LIVES):OR A:JR Z,LOSEGAME
  1006.                 DEC A
  1007.                 LD (LIVES),A
  1008. CHT             LD A,48:LD (HEROFLASH+1),A:LD A,18:LD (HEROP+1),A
  1009.                 LD A,2:LD (GUNDIR+1),A:RET
  1010. LOSEGAME        LD A,LOSELIFE:LD (RETMODE),A:RET
  1011.  
  1012. JPUZ            LD A,D:SUB C:LD D,A
  1013. JPUS            LD (HEROX+1),DE:LD (GUNX+1),HL
  1014.                 LD A,(HEROG+1):INC A:CP 7:RET P:LD (HEROG+1),A:RET
  1015.  
  1016. DECODE
  1017.                 LD A,(GUNDIR+1):INC A:JR Z,DYING
  1018.                 LD A,(ONLADDER+1):OR A:JR NZ,YONL
  1019.  
  1020.                 LD A,(GUNDIR+1):AND 7:LD (GUNDIR+1),A
  1021.                 LD A,(HEROP+1):AND 7:ADD A,24:LD (HEROP+1),A
  1022.                 LD A,$10:LD (XYSUB+1),A
  1023.  
  1024.                 LD A,(HEROF+1):OR A:JR NZ,JOD
  1025. HEROCRAWL       LD A,0:OR A:JR Z,JOD
  1026. NADU            LD A,4:LD (BXAD+1),A
  1027.                 JR NODU
  1028. JOD             LD A,8:LD (BXAD+1),A
  1029.                 LD A,(HEROX+1):AND $F8:LD (HEROX+1),A
  1030. NODU
  1031. YONL            LD A,(WEPSELECT):OR A:JR Z,NOWEPSEL
  1032.                 LD A,(POS):AND 3: JR NZ,NOWEPSEL
  1033.  
  1034.                 LD A, %11111011:IN A,(254):AND %00010:JR NZ,NOWEPSEL1
  1035.                 LD A,(WEPTYPE+1):INC A:AND 7:LD (WEPTYPE+1),A
  1036.  
  1037. NOWEPSEL1
  1038.                 LD A,%01111111:IN A,(254):AND %10000:JR NZ,NOWEPSEL2
  1039.                 LD A,(PAKTYPE+1):INC A:AND 3:LD (PAKTYPE+1),A
  1040. NOWEPSEL2
  1041. NOWEPSEL        LD A,(GUNDIR+1):LD (OLDDIR+1),A
  1042.  
  1043.                 LD A,(FUDLR):AND 15:LD C,A:LD B,0
  1044.                 LD HL,TURNUM:ADD HL,BC:LD A,(HL):OR A: LD C,A
  1045.                 CALL P,TURNERTO
  1046.  
  1047.                 LD A,(FUDLR)
  1048.                 RRA:PUSH AF:CALL C,HERORIGHT:POP AF
  1049.                 RRA:PUSH AF:CALL C,HEROLEFT:POP AF
  1050.                 RRA:PUSH AF:CALL C,HERODOWN:POP AF
  1051.                 RRA:PUSH AF:CALL C,HEROUP
  1052.  
  1053. STH             LD A,0:OR A:JR Z,SNF
  1054. SHIM            LD A,0:LD (HEROX+2),A:SUB $10:LD (GUNX+2),A
  1055.                 XOR A:LD (STH+1),A
  1056. SNF             CALL TOEN:POP AF
  1057.  
  1058.                 PUSH AF:CALL NOFIRE:POP AF
  1059.                 RRA:PUSH AF:CALL C,FIREWEAPON:POP AF
  1060.                 RRA:PUSH AF:CALL C,FIREPAK:POP AF
  1061.  
  1062.                 LD HL,WEPTIMER+1:CALL INCTIM:LD HL,PAKTIMER+1
  1063. INCTIM          LD A,(HL):CP 32:RET NC:INC (HL):RET
  1064.  
  1065. TOEN            LD A,(MAPDIR):OR A:RET Z:LD DE,(HEROX+1):LD A,D
  1066.                 CP $58+1:JP NC,SCROLLDOWN:CP $40:JP C,SCROLLUP
  1067.                 RET
  1068.  
  1069. TU              EQU 0
  1070. UR              EQU 1
  1071. TR              EQU 2
  1072. DR              EQU 3
  1073. TD              EQU 4
  1074. DL              EQU 5
  1075. TL              EQU 6
  1076. UL              EQU 7
  1077. FF              EQU 255
  1078.  
  1079. TURNUM          DB FF,TR,TL,FF
  1080.                 DB TD,DR,DL,TD
  1081.                 DB TU,UR,UL,TU
  1082.                 DB FF,FF,FF,FF
  1083.  
  1084. FIREWEAPON      LD HL,FIREWEPJUMPS
  1085. WEPTYPE         LD A,0:AND 7
  1086. WEPJUMP         ADD A,A:LD E,A:LD D,0:ADD HL,DE
  1087.                 LD E,(HL):INC HL:LD D,(HL):EX DE,HL:JP (HL)
  1088. FIREPAK         LD HL,FIREPAKJUMPS
  1089. PAKTYPE         LD A,0:AND 3:JR WEPJUMP
  1090.  
  1091. FIREWEPJUMPS
  1092.                 DW NORMAL
  1093.                 DW FLAME
  1094.                 DW THREEWAY
  1095.                 DW FULLAUTO
  1096.                 DW SHOTGUN
  1097.                 DW NORMAL
  1098.                 DW NORMAL
  1099.  
  1100. FIREPAKJUMPS    DW RETURN
  1101.                 DW NITRO
  1102.                 DW HOMINGMISSILE
  1103.                 DW SHOWER
  1104.  
  1105. PAKTIMER        CP 0:JR C,AKFIR:POP HL:RET
  1106. AKFIR           XOR A:LD (PAKTIMER+1),A:RET
  1107. WEPTIMER        CP 0:JR C,EPFIR:POP HL:RET
  1108. EPFIR           XOR A:LD (WEPTIMER+1),A:RET
  1109. NITRO           LD A,7:CALL PAKTIMER
  1110.                 CALL DECBACK:RET Z
  1111.                 LD DE,(GUNX+1):LD A,E:ADD A,$10:LD E,A:LD D,16
  1112.                 LD B,5:LD A,04+16
  1113. NITBLP          PUSH DE:PUSH BC:PUSH AF:LD B,5:CALL INITBIL
  1114.                 POP AF:POP BC:POP DE:ADD A,2:DJNZ NITBLP:RET
  1115.  
  1116. HOMINGMISSILE   LD A,7:CALL PAKTIMER
  1117.                 CALL DECBACK:RET Z
  1118.                 LD DE,(GUNX+1):LD A,D:ADD A,$0C:LD D,A:CALL GETXYOFHERO
  1119.                 LD B,5:LD A,14+16
  1120. HOMBLP          PUSH DE:PUSH BC:PUSH AF:LD B,7:OR 16:CALL INITBUL
  1121.                 POP AF:POP BC:POP DE:INC A:DJNZ HOMBLP:RET
  1122.  
  1123. SHOWER          LD A,7:CALL PAKTIMER
  1124.                 CALL DECBACK:RET Z
  1125.                 LD DE,$0028:LD B,8
  1126. SHOBLP          PUSH DE:PUSH BC:LD A,8+16:LD B,6:CALL INITBIL
  1127.                 POP BC:POP DE:LD A,E:ADD A,$18:LD E,A:DJNZ SHOBLP:RET
  1128.  
  1129. FLAME           LD A,(PRTFLAMES+1):ADD A,2:CP NOFLAMES+1:JR C,SKPFL
  1130.                 LD A,NOFLAMES+1
  1131. SKPFL           LD (PRTFLAMES+1),A:LD A,3:JP GOBEEP
  1132.  
  1133. FULLAUTO        CALL DECAMMO:RET Z
  1134.                 LD L,1:LD B,1:JR FIREBUL
  1135.  
  1136. THREEWAY        LD A,3:CALL WEPTIMER
  1137.                 CALL DECAMMO:RET Z
  1138.                 LD DE,(GUNX+1):LD A,E:AND $F8:ADD A,$0F:LD E,A
  1139.                 LD A,D:ADD A,$0E:LD D,A:PUSH HL:CALL GETXYOFHERO:POP HL
  1140.                 LD A,(GUNDIR+1):AND 7:ADD A,A:PUSH DE:PUSH AF:OR 16
  1141.                 LD B,3:CALL INITBIL:POP AF:POP DE:DEC A:AND 15
  1142.                 PUSH DE:PUSH AF:OR 16:LD B,3:CALL INITBIL:POP AF:POP DE
  1143.                 ADD A,2:AND 15:OR 16:LD B,3:JP INITBIL
  1144.  
  1145. SHOTGUN         LD A,3:CALL WEPTIMER
  1146.                 CALL DECAMMO:RET Z
  1147.                 LD L,1:LD B,2:JR FIREBUL
  1148.  
  1149. NORMAL          LD A,1:CALL WEPTIMER
  1150.                 LD L,1:LD B,0
  1151.  
  1152. FIREBUL         LD DE,(GUNX+1):LD A,E:AND $F8:ADD A,$0F:LD E,A
  1153.                 LD A,D:ADD A,$0E:LD D,A
  1154. FIRE1           PUSH HL:CALL GETXYOFHERO:POP HL
  1155.                 LD A,(GUNDIR+1):AND 7:ADD A,A
  1156. FIRE2           PUSH BC:PUSH HL:PUSH DE:PUSH AF:CALL INITBUL:POP AF:POP DE
  1157.                 POP HL:DEC L:POP BC:RET Z:DEC A:AND 15:PUSH BC
  1158.                 PUSH DE:PUSH AF:CALL INITBUL:POP AF:POP DE:ADD A,2:AND 15
  1159.                 POP BC:PUSH DE:PUSH AF:CALL INITBUL:POP AF:POP DE:RET
  1160.  
  1161. GETXYOFHERO     LD A,(GUNDIR+1):CP $FF:RET Z:CP 56:JR C,FKD:SUB 40
  1162. FKD             PUSH DE:ADD A,A:LD E,A:LD D,0:LD HL,XYOFSETS
  1163.                 ADD HL,DE:POP DE:LD A,E:ADD A,(HL):LD E,A:INC HL
  1164.                 LD A,D:ADD A,(HL):LD D,A:RET
  1165.  
  1166. XYOFSETS        DW $F408,$F808,$FA10,$0008    ; RUN
  1167.                 DW $0008,$0000,$FAF8,$F800
  1168.  
  1169.                 DW $EC08,$F408,$F810,$FA10    ; CLIMB
  1170.                 DW $0810,$FAF8,$F8F8,$F400
  1171.  
  1172.                 DW $F810,$0610,$0418,$0810    ; CRAWL
  1173.                 DW $1410,$0A00,$0400,$FE00
  1174.  
  1175. NOFIRE          LD A,(ONLADDER+1):OR A:RET NZ:CALL DOFALL
  1176. GODU            LD A,(BXAD+1):CP 8:RET Z
  1177.                 LD A,(HEROP+1):AND $07:ADD A,40:LD (HEROP+1),A
  1178.                 LD A,(GUNDIR+1):AND $07:ADD A,56:LD (GUNDIR+1),A
  1179.                 JR NOSTEP
  1180.  
  1181. DOFALL          LD A,(ONLADDER+1):OR A:RET NZ
  1182.                 LD A,(HEROG+1):OR A:JP M,JAFT
  1183.                 LD DE,(HEROX+1):CALL HESTFLOOR
  1184.                 LD A,(ONLADDER+1):LD C,A:INC C:DEC C:RET NZ
  1185.                 CALL C,SETFLOOR
  1186. JAFT            LD DE,(HEROX+1):LD HL,(GUNX+1):LD A,(HEROG+1)
  1187.                 LD C,A:ADD A,D:OR A:JP M,NOFT:LD D,A
  1188.                 LD A,H:ADD A,C:LD H,A
  1189. NOFT            LD A,C:OR A:JP M,JPUP
  1190.                 CALL HESTFLOOR
  1191.                 LD A,(ONLADDER+1):LD C,A:INC C:DEC C:RET NZ
  1192.                 JP C,SETFLOOR
  1193. JPUP            LD (HEROX+1),DE:LD (GUNX+1),HL
  1194.                 XOR A:LD (HEROCRAWL+1),A
  1195.                 LD A,(HEROP+1):AND 7:ADD A,32:LD (HEROP+1),A
  1196. HEROG           LD A,0:INC A:CP 9:JP P,SMOG:LD (HEROG+1),A
  1197. SMOG
  1198.  
  1199. NOSTEP          LD A,(XYSUB+1):LD E,A
  1200.                 LD A,(GUNX+2):ADD A,E:SUB $10:LD (GUNX+2),A
  1201.                 LD A,(BEEPNUM):CP 1:RET NZ:XOR A:LD (BEEPNUM),A:RET
  1202.  
  1203. GETMAPBYTE      DB 1
  1204. MAPX            DB 0
  1205. MAPY            DB 0
  1206.  
  1207.                 PUSH HL:PUSH DE
  1208.                 LD A,(MAPDIR):OR A:JR Z,NGD
  1209.                 LD A,E:SUB $10:SRL A:SRL A:SRL A:SRL A:LD E,A
  1210.                 LD H,0:LD L,B
  1211.                 RES 0,L:SLA L:RL H:SLA L:RL H:SLA L:RL H
  1212.  
  1213.                 LD A,B:AND 1:ADD A,A:ADD A,A:ADD A,A:NEG:ADD A,D
  1214.                 ADD A,$10:CP $C0:JR C,AHA
  1215.                 NEG:LD C,A:LD A,L:SUB C:LD L,A
  1216.                 LD A,H:SBC A,0:LD H,A:JR ALA
  1217. AHA             CALL ADDHLA
  1218. ALA             SRL H:RR L:SRL H:RR L:SRL H:RR L:SRL H:RR L
  1219.                 LD A,L: JR GETTHEBYTE
  1220. NGD             LD A,E:SUB 16:SRL A:SRL A:SRL A:ADD C:SRL A:LD E,A
  1221.                 LD A,D:AND $F0:ADD A,$10:SRL A:SRL A:SRL A:SRL A
  1222.                 CP 8:JR NC,NOFLORPOP
  1223. GETTHEBYTE      LD HL,(MAP):LD D,0:ADD HL,DE:LD DE,(MAPXSIZE)
  1224.                 CALL MULT:LD A,(HL):POP DE:POP HL:SCF:RET
  1225. NOFLORPOP       POP DE:POP HL:XOR A:RET
  1226.  
  1227. HEX8            PUSH AF:RRA:RRA:RRA:RRA:CALL HEX4:POP AF
  1228. HEX4            PUSH AF:AND $0F:ADD A,"0":CP "9"+1:JR C,HEX1:ADD A,7
  1229. HEX1            CALL PRTCELL:POP AF:RET
  1230.  
  1231. TESTWALL        LD A,(WEPFLRCOL+1):OR A:RET NZ
  1232.                 CALL GETMAPBYTE:PUSH IX:PUSH BC:LD IX,(FLOORWALLBYTES)
  1233.                 LD B,(IX+00):INC IX
  1234. BLPTW           CP (IX+00):JR Z,TESTYESWAL:INC IX:DJNZ BLPTW
  1235. TESTNOWAL       POP BC:POP IX:OR A:RET
  1236. TESTYESWAL      POP BC:POP IX:SCF:RET
  1237. ERSC            LD A,D:CP $60:CCF:RET
  1238.  
  1239. HESTFLOOR       LD C,0:CALL TESTFLOOR:RET NC
  1240. TRYSLIDE        PUSH AF
  1241. SLID1           CP $FF:JR Z,ONSLIDU
  1242. SLID2           CP $FF:JR Z,ONSLIDU
  1243. SLID3           CP $FF:JR Z,ONSLIDD
  1244. SLID4           CP $FF:JR Z,ONSLIDD
  1245. CRAWLPLAT       CP $FF:JR Z,ONCRAWLPLAT:POP AF:RET
  1246.  
  1247. ONCRAWLPLAT     LD A,2:LD (HEROCRAWL+1),A:POP AF:RET
  1248.  
  1249. PX              DW 0
  1250.  
  1251. ONSLIDU         PUSH DE:LD DE,(HEROX+1):SRL E:SRL E:SRL E
  1252.                 LD A,(MAPX):ADD A,E:CPL:JR SMILE
  1253. ONSLIDD         PUSH DE:LD DE,(HEROX+1):SRL E:SRL E:SRL E
  1254.                 LD A,(MAPX):ADD A,E
  1255. SMILE           AND 1:ADD A,A:ADD A,A:ADD A,A:LD E,A
  1256.                 LD A,D:AND $F0:ADD A,E:SUB 8:LD (SHIM+1),A
  1257.                 POP DE:LD A,1:LD (STH+1),A:POP AF:RET
  1258.  
  1259. TESTFLOOR       XOR A:LD (ONLADDER+1),A
  1260. TASTEFLOOR
  1261. WEPFLRCOL       LD A,0:OR A:JP NZ,ERSC
  1262.                 PUSH BC:CALL GETMAPBYTE:POP BC
  1263. LAD1            CP $B8:JR Z,TESTYESLAD
  1264. LAD2            CP $B9:JR Z,TESTYESLAD
  1265.                 PUSH IX:PUSH BC:LD IX,(FLOORTESTBYTES)
  1266.                 LD B,(IX+00):INC IX
  1267. BLPTF           CP (IX+00):JR Z,TESTYESFLR:INC IX:DJNZ BLPTF
  1268. TESTNOFLR       POP BC:POP IX:OR A:RET
  1269. TESTYESFLR      POP BC:POP IX:SCF:RET
  1270.  
  1271. TESTYESLAD      LD A,C:OR A:SCF:RET NZ
  1272.  
  1273.                 LD A,(HEROX+1):AND $F0:OR 8
  1274.                 LD (HEROX+1),A:LD (GUNX+1),A
  1275.  
  1276.                 LD A,(HEROP+1):AND 7:ADD A,48:LD (HEROP+1),A
  1277.                 LD A,(GUNDIR+1):AND 7:ADD A,8:LD (GUNDIR+1),A
  1278.                 XOR A:LD (HEROG+1),A:LD (HEROF+1),A
  1279.                 INC A:LD (ONLADDER+1),A:SCF:RET
  1280.  
  1281. FLOROF          EQU 4
  1282.  
  1283. SETFLOOR        LD A,(MAPY):AND $01:ADD A,A:ADD A,A:ADD A,A:NEG
  1284.                 LD B,A:LD A,D:AND $F0:ADD A,B
  1285.                 ADD A,FLOROF:LD (HEROX+2),A:LD D,A
  1286. XYSUB           SUB $10:LD (GUNX+2),A
  1287.                 XOR A:LD (HEROF+1),A:LD (HEROG+1),A:RET
  1288.  
  1289. HERODOWN
  1290. ONLADDER        LD A,0:OR A:JR NZ,LADDOWN
  1291.                 LD A,(HEROF+1):OR A:RET NZ
  1292.                 LD A,1:LD (HEROCRAWL+1),A
  1293.                 RET
  1294.  
  1295. LADDOWN         LD A,0:LD (HEROCRAWL+1),A
  1296.                 LD A,(POS):AND 1:RET NZ
  1297.                 LD A,(HEROX+2):ADD A,8:CP $60+FLOROF:LD (HEROX+2),A
  1298.                 PUSH AF:SUB $10:LD (GUNX+2),A
  1299.                 LD A,(GUNDIR+1): AND 7:CP 5:LD E,0:JR C,KOED:LD E,4
  1300. KOED            LD A,(HEROP+1):DEC A:AND 3:ADD A,E
  1301.                 ADD A,48:LD (HEROP+1),A
  1302.  
  1303.                 LD DE,(HEROX+1):CALL HESTFLOOR:POP HL
  1304.                 LD A,(ONLADDER+1):OR A:JR Z,SETOFFLAD:PUSH HL
  1305.  
  1306.                 POP AF:RET C
  1307.  
  1308.                 LD A,$50+FLOROF:LD (HEROX+2),A
  1309.                 SUB $10:LD (GUNX+2),A
  1310.  
  1311.                 LD A,(ONLADDER+1):OR A:JP NZ,SCROLLDOWN
  1312.  
  1313. SETOFFLAD       LD A,(HEROP+1):AND 3:ADD A,16:LD (HEROP+1),A
  1314.                 LD A,(GUNDIR+1):AND 7:LD (GUNDIR+1),A
  1315.                 RET
  1316.  
  1317. LADUP
  1318.                 LD A,(POS):AND 1:RET NZ
  1319.                 LD A,(HEROX+2):SUB 8:CP $21:LD (HEROX+2),A
  1320.                 PUSH AF:SUB $10:LD (GUNX+2),A
  1321.                 LD A,(GUNDIR+1):AND 7:CP 5:LD E,0:JR C,KOEU:LD E,4
  1322. KOEU            LD A,(HEROP+1):DEC A:AND 3:ADD A,E
  1323.                 ADD A,48:LD (HEROP+1),A
  1324.  
  1325.                 LD DE,(HEROX+1):CALL HESTFLOOR:POP HL
  1326.                 LD A,(ONLADDER+1):OR A:JR Z,SETOFFLAD:PUSH HL
  1327.  
  1328.                 POP AF:RET NC
  1329.                 LD A,$20:LD (HEROX+2),A
  1330.                 SUB $10:LD (GUNX+2),A
  1331.                 CALL SCROLLUP
  1332.                 LD DE,(HEROX+1):CALL HESTFLOOR:RET C
  1333.                 CALL SETOFFLAD:JR HEROF
  1334.  
  1335. HEROUP          LD A, (HEROCRAWL+1):CP 2:RET Z
  1336.                 OR A:JR Z,NAFL
  1337.                 LD A,(FUDLR):AND $10:RET NZ
  1338. NAFL            XOR A:LD (HEROCRAWL+1),A
  1339.                 LD A,(ONLADDER+1):OR A:JR NZ,LADUP
  1340.                 LD A,(FUDLR):AND $10:JP NZ,FIREPAK
  1341. HEROF           LD A,0:OR A:RET NZ
  1342.                 LD A,(HEROG+1):OR A:RET NZ
  1343.                 LD (HEROCRAWL+1),A:INC A:LD (HEROF+1),A
  1344.                 LD A,-7:LD (HEROG+1),A:RET
  1345. DOSTEPS         LD A,(HEROP+1):CP 16:RET C:CP 24:RET NC
  1346.                 AND 3:CP 1:PUSH DE:LD A,1:CALL Z,GOBEEP:POP DE:RET
  1347.  
  1348. NOWALK          LD A,(HEROP+1):AND 7:ADD A,16:LD (HEROP+1),A:RET
  1349.  
  1350. HERORIGHT       LD A,(ONLADDER+1):OR A:RET NZ
  1351.  
  1352.                 LD DE,(HEROX+1)
  1353.                 LD A,E:ADD A,$10:LD E,A:CALL TESTWALL:RET C
  1354. OLDDIR          LD A,0:AND 7: CP 1:RET C:CP 3+1:RET NC
  1355. BXAD            LD A,0:CP 8:JR Z,HE1
  1356.                 LD A,(POS):AND 1:RET NZ
  1357. HE1             LD A,(HEROX+1):ADD 8:CP $D0:JR NC,NFOR:LD (HEROX+1),A
  1358.  
  1359. NFOR            CP $B0:CALL NC,SETSCRRIGHT
  1360.                 LD A,(HEROP+1):INC A:AND 3:ADD 16:LD (HEROP+1),A
  1361.                 CALL DOSTEPS
  1362. ESR
  1363. WALKTOP         PUSH DE:LD DE,(HEROX+1):LD A,$10:LD (XYSUB+1),A
  1364.                 LD A,D:SUB $10:LD D,A
  1365.                 LD A,(HEROP+1):AND 3:CP 1:JR NZ,ESD
  1366.                 LD A,$0E:LD (XYSUB+1),A:LD A,D:ADD A,2:LD D,A
  1367. ESD             LD (GUNX+1),DE:POP DE:RET
  1368. ASR             LD A,(HEROP+1):AND 7:ADD 16:LD (HEROP+1),A
  1369.                 JR WALKTOP
  1370.  
  1371. HEROLEFT        LD A,(ONLADDER+1):OR A:RET NZ
  1372.  
  1373.                 LD DE,(HEROX+1)
  1374.                 LD A,E:SUB $08:LD E,A:CALL TESTWALL:RET C
  1375.                 LD A,(OLDDIR+1):AND 7:CP 5:RET C
  1376.                 LD A,(BXAD+1):CP 8:JR Z,HEZ
  1377.                 LD A,(POS):AND 1:RET NZ
  1378.  
  1379. HEZ             LD A,(HEROX+1):SUB 8:CP $18:JR C,NFOL:LD (HEROX+1),A
  1380.  
  1381. NFOL            CP $40:CALL C,SETSCRLEFT
  1382.                 LD A,(HEROP+1):DEC A:AND 3:ADD 20:LD (HEROP+1),A
  1383.                 CALL DOSTEPS
  1384. ESL             JP WALKTOP
  1385.  
  1386. SETSCRLEFT      LD A,8:LD (SCRCNT+1),A:LD A,255:LD (SCRDIR+1),A:RET
  1387. SETSCRRIGHT     LD A,8:LD (SCRCNT+1),A:LD A,1:LD (SCRDIR+1),A:RET
  1388.  
  1389. SCRCNT          LD A,0:OR A: RET Z:DEC A:LD (SCRCNT+1),A
  1390. SCRDIR          LD A,0:OR A:JP P,SCROLLRIGHT:JP SCROLLLEFT
  1391.  
  1392. TURNERTO        LD A,(GUNDIR+1):AND 7:CP C:RET Z
  1393.                 LD A,(GUNDIR+1):LD B,A:SUB C:AND 7:CP 4:CCF
  1394.                 LD A,0:RLA:ADD A,A:DEC A:ADD A,B:AND 7:LD L,A
  1395.                 LD A,B:AND $F8:OR L:LD (GUNDIR+1),A
  1396.                 AND 7
  1397.                 CP 5:LD A,1:SBC A,0:ADD A,A:ADD A,A:LD C,A
  1398.                 LD A,(HEROP+1):AND $FB:OR C:LD (HEROP+1),A
  1399.                 OR 128:RET
  1400.  
  1401. ;*********************************************************************
  1402. ;** DUMP KEYS ONTO BACKGROUND                                       **
  1403. ;*********************************************************************
  1404.  
  1405. KEYNOKEY           EQU 6
  1406. KEYX            EQU 0
  1407. KEYY            EQU 1
  1408. KEYG            EQU 2
  1409. KEYP            EQU 3
  1410. KEYLEN          EQU 4
  1411.  
  1412. KEYDAT          DS KEYNOKEY*KEYLEN,0
  1413.  
  1414. INITKEY         LD IX,KEYDAT:LD B,KEYNOKEY
  1415.                 PUSH DE:LD DE,KEYLEN
  1416. FINDKEYLP       LD A,(IX+KEYX):OR A:JR Z,GOTKEY
  1417.                 ADD IX,DE:DJNZ FINDKEYLP
  1418.                 POP DE:RET
  1419.  
  1420. GOTKEY          POP DE:LD (IX+KEYX),E:LD (IX+KEYY),D
  1421.                 LD (IX+KEYG),-6
  1422.                 LD (IX+KEYP),0
  1423.                 RET
  1424.  
  1425. PRTKEYS         LD IX,KEYDAT:LD B,KEYNOKEY
  1426. PRTKEYBLP       LD A,(IX+KEYX):OR A:JP Z,GONEXTKEY
  1427.  
  1428.                 INC (IX+KEYG):LD E,(IX+KEYX)
  1429.                 LD A,(IX+KEYY):ADD A,(IX+KEYG):LD (IX+KEYY),A:LD D,A
  1430.  
  1431.                 OR A:JP P,SKZD
  1432.                 CP $A0:JR NC,SKZD
  1433.                 CP $90:JR C,SKZD
  1434.                 LD (IX+KEYX),0:JR GONEXTKEY
  1435. SKZD            PUSH BC:LD C,1:CALL TASTEFLOOR:POP BC:JR NC,SKTD
  1436.  
  1437.                 LD (IX+KEYG),-1
  1438.                 LD A,(MAPY):AND 1:ADD A,A:ADD A,A:ADD A,A:NEG:ADD A,D
  1439.                 LD A,D:AND $F0:LD D,A
  1440.                 LD A,(MAPY):AND 1:ADD A,A:ADD A,A:ADD A,A:ADD A,D
  1441. NAR             LD (IX+KEYY),A
  1442. SKTD
  1443.                 INC (IX+KEYP):LD E,(IX+KEYX)
  1444.                 LD A,(IX+KEYY):CP $70:LD D,A
  1445.                 LD A,(IX+KEYP):CALL C,PRT1KEY
  1446.                 LD E,(IX+KEYX):LD D,8
  1447.                 LD HL,(HEROX+1):LD H,16:CALL HITA:JR C,GONEXTKEY
  1448.                 LD E,(IX+KEYY):LD D,16
  1449.                 LD HL,(HEROX+2):LD H,16:CALL HITA:JR C,GONEXTKEY
  1450.  
  1451.                 LD DE,0*256+2:CALL ADDSCORE
  1452.                 LD A,5:CALL GOBEEP
  1453.  
  1454.                 LD (IX+KEYX),0
  1455.                 LD A,(KEYSCOLLECTED+1):CP 6:JR NC,GONEXTKEY
  1456.                 INC A:LD (KEYSCOLLECTED+1),A
  1457.  
  1458. GONEXTKEY       LD DE,KEYLEN:ADD IX,DE:DEC B:JP NZ,PRTKEYBLP:RET
  1459.  
  1460. PRT1KEY         PUSH DE:AND 3:LD DE,64:LD HL,KEYSPRS:CALL MULT
  1461.                 POP DE:PUSH DE:PUSH BC:LD BC,$0208:CALL MASKCXB
  1462.                 POP BC:POP DE:RET
  1463.  
  1464. MASKCXBINVADD   LD A,C:ADD A,A:ADD A,D:LD D,A:DEC D
  1465. MASKCXBINV      PUSH HL:LD HL,-32:LD (SZ1+2),HL:LD (SZ2+2),HL:POP HL
  1466.                 CALL MASKCXB:LD HL,32:LD (SZ1+2),HL:LD (SZ2+2),HL:RET
  1467. MASKCXBMINVADD  LD A,C:ADD A,A:ADD A,D:LD D,A:DEC D
  1468. MASKCXBMINV     PUSH HL:LD HL,-32:LD (MZ1+2),HL:LD (MZ2+2),HL:POP HL
  1469.                 CALL MASKCXBMIR:LD HL,32:LD (MZ1+2),HL:LD (MZ2+2),HL:RET
  1470.  
  1471. MASKCXB         LD A,D:OR A:RET M
  1472.                 PUSH HL:CALL BIXAD:EX DE,HL:POP HL
  1473. MASKCXBCLP      PUSH BC
  1474. MASKCXBBLP1     LD A,(DE):AND (HL):INC HL:OR (HL):INC HL:LD (DE),A
  1475.                 INC DE:DJNZ MASKCXBBLP1:DEC DE
  1476. SZ1             EX DE,HL:LD BC,32:ADD HL,BC:EX DE,HL
  1477.                 POP BC:PUSH BC
  1478. MASKCXBBLP2     LD A,(DE):AND (HL):INC HL:OR (HL):INC HL:LD (DE),A
  1479.                 DEC DE:DJNZ MASKCXBBLP2:INC DE
  1480. SZ2             EX DE,HL:LD BC,32:ADD HL,BC:EX DE,HL
  1481.                 POP BC:DEC C:JP NZ,MASKCXBCLP:RET
  1482. MASKCXBMIR      LD A,D:OR A:RET M
  1483.                 LD A,B:DEC A:ADD A,A:ADD A,A:ADD A,A:ADD A,E:LD E,A
  1484.                 PUSH HL:CALL BIXAD:EX DE,HL:POP HL
  1485.                 PUSH BC:LD B,MIRPAGE/256:EXX:POP BC
  1486. MASKCXBMIRCLP   PUSH BC
  1487. MASKCXBMIRBLP1  EXX:LD A,(DE):LD C,A:LD A,(BC):AND (HL):INC HL
  1488.                 OR (HL):LD C,A:LD A,(BC):INC HL:LD (DE),A:DEC DE
  1489.                 EXX:DJNZ MASKCXBMIRBLP1:POP BC:PUSH BC:EXX:INC DE
  1490. MZ1             EX DE,HL:LD BC,32:ADD HL,BC:EX DE,HL:LD B,MIRPAGE/256
  1491.                 EXX
  1492. MASKCXBMIRBLP2  EXX :LD A,(DE):LD C,A:LD A,(BC):AND (HL):INC HL
  1493.                 OR (HL):LD C,A:LD A,(BC):INC HL:LD (DE),A:INC DE
  1494.                 EXX:DJNZ MASKCXBMIRBLP2:POP BC:EXX:DEC DE
  1495. MZ2             EX DE,HL:LD BC,32:ADD HL,BC:EX DE,HL:LD B,MIRPAGE/256
  1496.                 EXX:DEC C:JP NZ,MASKCXBMIRCLP:EXX:RET
  1497.  
  1498. ;****************************************************************************
  1499. ;** DUMP SPRITES ONTO BACKGROUND                                           **
  1500. ;****************************************************************************
  1501.  
  1502. BULDAT          DS NOBUL*BULLEN,0
  1503.  
  1504. INITBLD         SET 6,B:JR INITBIL
  1505. INITMIS         SET 6,B:JR INITBUL
  1506. INITBAL         SET 5,B:JR INITBUL
  1507. INITLAS         SET 5,B
  1508. INITBIL         SET 3,B:JR INITBUL+2
  1509. INITBUL         RES 3,B:LD C,A:PUSH BC:CALL FINDBUL:POP BC:RET NZ
  1510.                 LD A,C:LD (IX+BULP),A:AND 15:LD HL,XADS:ADD A,L
  1511.                 LD L,A:LD A,(HL):ADD A,E:LD (IX+BULX),E:LD A,L
  1512.                 ADD A,16:LD L,A:LD A,(HL):ADD A,D:LD (IX+BULY),D
  1513.                 LD (IX+BULT),B:LD A,2:CALL GOBEEP
  1514.  
  1515. FINDBUL         LD IX,BULDAT:LD B,NOBUL
  1516. FINDBLP         LD A,(IX+BULX):OR A:JR NZ,FINDNXT
  1517.                 OR (IX+BULY):RET Z
  1518. FINDNXT         PUSH DE:LD DE,BULLEN:ADD IX,DE:POP DE
  1519.                 DJNZ FINDBLP:INC B:RET
  1520.  
  1521. PRTBULLETS      LD HL,(BIGX1):LD A,H:SRL A:ADD A,L:LD E,A
  1522.                 LD HL,(BIGY1):LD A,H:SRL A:ADD A,L:LD D,A
  1523.                 LD A,(ISBIGON):OR A:JR NZ,GOTHOME
  1524.  
  1525.                 LD HL,(XSI+1):LD A,H:SRL A:ADD A,L:LD E,A
  1526.                 LD HL,(YSI+1):LD A,H:SRL A:ADD A,L:LD D,A
  1527. BAGE            LD A,0:OR A:JR NZ,GOTHOME
  1528.  
  1529.                 LD IX,BADDAT:LD B,NOBAD:LD DE,BADLEN
  1530. FINDH           LD A,(IX+ACTION):OR A:JR Z,TRYH:CP 3:JR Z,TRYH
  1531.                 LD E,(IX+XPOS):LD D,(IX+YPOS):JR GOTHOME
  1532. TRYH            ADD IX,DE:DJNZ FINDH
  1533.  
  1534.                 LD DE,$0000
  1535.  
  1536. GOTHOME         LD IX,BULDAT:LD B,NOBUL
  1537. PRTBULBLP       PUSH BC:PUSH DE
  1538.                 LD A,(IX+BULX):OR (IX+BULY):JP Z,NEXT1
  1539.  
  1540.                 LD A,D:OR E:JR Z,NOTHOME
  1541.  
  1542.                 LD A, (IX+BULT): AND 7: CP 7:JR NZ, NOTHOME
  1543.                 LD A,(IX+BULX):CP E
  1544.                 LD A,(IX+BULY):JR C,HRT
  1545. HLT             CP D:LD A,0:CCF:ADC A,0:ADD A,A:ADD A,A
  1546.                 ADD A,10+16:LD C,A:JR HOTO
  1547. HRT             CP D:LD A,0:ADC A,0:ADD A,A:ADD A,A
  1548.                 ADD A,2+16:LD C,A
  1549. HOTO            LD A,(IX+BULP):CP C:JR Z,NOTHOME
  1550.  
  1551.                 PUSH BC:LD B,A:SUB C:AND 15:CP 8:CCF
  1552.                 LD A,0:RLA:ADD A,A:DEC A:ADD A,B:AND 15:LD L,A
  1553.                 LD A,B:AND $F0:OR L:LD (IX+BULP),A:POP BC
  1554.  
  1555. NOTHOME
  1556.                 LD A,(IX+BULP):AND 15:LD HL,XADS:ADD A,L:LD L,A
  1557.  
  1558.                 LD A,(IX+BULX):ADD A,(HL):LD E,A
  1559.                 LD A,L:ADD A,16:LD L,A
  1560.                 LD A,(IX+BULY):ADD A,(HL):LD D,A:OR A:CALL M,KILLITZ
  1561.                 LD A,E
  1562. ;               CP $18:CALL C,KILLIT
  1563.                 CP $E8:CALL NC,KILLIT
  1564.  
  1565.                 LD (IX+BULX),E:LD (IX+BULY),D:LD A,E:OR D:JP Z,NEXT1
  1566.  
  1567.                 LD A,(IX+BULT):CP 8:JR NC,NEXT0
  1568.  
  1569.                 PUSH DE:LD A,(IX+BULP):SRL A:AND 3
  1570.                 LD HL,BULMASK:LD DE,16:CALL MULT:POP DE
  1571.                 LD A,D:CP $79:LD BC,$0104:CALL C,MASKCXB:JP NEXT1
  1572.  
  1573. NEXT0           BIT 6,A:JR NZ,BALZSP
  1574.                 BIT 5,A:JP Z,BILZSP
  1575.                 BIT 3,A:JR Z,BLOBALL
  1576.                 LD HL,BULLET3X1:LD A,D:CP $79:CALL C,BAXITA:JP NEXT1
  1577.  
  1578. COLTAB          DB #04,#05,#06,#07,#07,#06,#05,#04
  1579.  
  1580. BLOBALL         LD A,(POS):AND 7:LD HL,COLTAB:ADD A,L:LD L,A
  1581.                 ADC A,H:SUB L:LD H,A:LD A,(HL):LD (BLOBATR),A
  1582.                 LD HL,BLOB1X1:LD A,D:CP $79:CALL C,BAXITA:JP NEXT1
  1583.  
  1584. BALZSP          BIT 3,A:JP NZ,INITBIG3
  1585.                 LD HL,MISSILE:LD A,(IX+BULP):OR A:JR Z,MISUP
  1586.  
  1587. MISDN           LD A,D:ADD A,$0F:LD D,A:OR A:JP M,NEXT1
  1588.                 CP $1F:JP C,NEXT1
  1589.                 PUSH DE:LD BC,$0208:CALL MASKCXBINV
  1590.                 CALL MISSILEANI:POP DE:LD A,D:SUB $10:LD D,A
  1591.                 LD BC,$0208:CALL MASKCXBINV:JR NEXT1
  1592.  
  1593. MISSILEANI      LD A,0:LD HL,MISS1:OR A:RET Z:LD HL,MISS2:RET
  1594.  
  1595. MISUP           LD HL,MISSILE:LD A,D:SUB 8:LD D,A:JP M,NEXT1
  1596.                 CP $71:PUSH DE:LD BC,$0208:CALL C,MASKCXB:POP DE
  1597.                 CALL MISSILEANI:LD A,D:ADD A,$10:LD D,A:CP $71
  1598.                 LD BC,$0208:CALL C,MASKCXB:JR NEXT1
  1599.  
  1600. BILZSP          LD HL,BULLET3X2:LD A,D:AND $F8:SUB 4:LD D,A
  1601.                 CP $71:JR NC,NEXT1:LD A,E:SUB 4:LD E,A
  1602.                 PUSH DE:LD BC,$0308:CALL MASKCXB:POP DE
  1603.                 LD A,E:ADD A,8:LD E,A:LD A,D:ADD A,8:LD D,A
  1604.                 CALL PIXATRAD
  1605. BLAD            LD (HL),$45
  1606.  
  1607. NEXT1           LD DE,BULLEN:ADD IX,DE:POP DE
  1608.                 POP BC:DEC B:JP NZ,PRTBULBLP:RET
  1609.  
  1610. KILLITZ         BIT 6,(IX+BULT):JR Z,KILLIT
  1611.                 CP $C0: JR C, EXPLIT
  1612.                 LD A,(LEVEL):CP 7:JR NZ,KILLIT
  1613.                 LD D,0:LD (IX+BULP),8:RET
  1614.  
  1615. EXPLIT          LD A,(IX+BULX):SUB 8:LD E,A:LD D,$60
  1616.                 PUSH IX:CALL INITEXPNORND:POP IX
  1617.  
  1618. KILLIT          LD DE,0
  1619.                 RET
  1620.  
  1621. ;****************************************************************************
  1622. ;** PRINT SPRITES                                                          **
  1623. ;****************************************************************************
  1624.  
  1625. SPRTAB
  1626. ;  00 -  07 = GUN ROTATE (RUN,STAND,JUMP)
  1627.                 DB #00,#01,#02,#03
  1628.                 DB #04,#83,#82,#81
  1629. ;  08 -  15 = GUN ROTATE (CLIMB)
  1630.                 DB #05,#06,#07,#08
  1631.                 DB #09,#88,#87,#86
  1632. ;  16 -  23 = LEG RIGHT+1EFT
  1633.                 DB #0A,#0B,#0C,#0D
  1634.                 DB #8D,#8C,#8B,#8A
  1635. ;  24 -  31 = LEG STAND RIGHT+1EFT
  1636.                 DB #0E,#0E,#0E,#0E
  1637.                 DB #8E,#8E,#8E,#8E
  1638. ;  32 -  39 = LEG JUMP RIGHT+1EFT
  1639.                 DB #0F,#0F,#0F,#0F
  1640.                 DB #8F,#8F,#8F,#8F
  1641. ;  40 -  47 = LEG CRAWL
  1642.                 DB #14,#15,#16,#15
  1643.                 DB #14,#15,#16,#15
  1644. ;  48 -  55 = LEG (CLIMB)
  1645.                 DB #10,#11,#12,#13
  1646.                 DB #90,#91,#92,#93
  1647. ;  56 -  63 = GUN ROTATE (CRAWL)
  1648.                 DB #17,#18,#19,#1A
  1649.                 DB #1B,#1C,#1D,#1E
  1650. ;  64 -  75 = BAD1 RUN LEFT
  1651.                 DB #8A,#8B,#8C,#8D
  1652.                 DB #8F
  1653.                 DB #24,#25,#26,#27,#28
  1654.                 DB #27
  1655.                 DB #2A
  1656. ;  76 -  87 = BAD1 RUN RIGHT
  1657.                 DB #0A,#0B,#0C,#0D
  1658.                 DB #0F
  1659.                 DB #A4,#A5,#A6,#A7,#A8
  1660.                 DB #A7
  1661.                 DB #AA
  1662. ;  88 -  89 = BAD2 GUN TURRET
  1663.                 DB #2B,#AB
  1664. ;  90 -  91 = HERO DIE PHASE
  1665.                 DB #2E,#AE
  1666. ;  92 -  93 = BAD3 BEE PHASE
  1667.                 DB #2F,#AF
  1668. ;  94 -  97 = BAD4 GUN TURRET2+3
  1669.                 DB #2C,#AC,#2D,#AD
  1670. ;  98 - 101 = BAD5 CLIMB LADDERS
  1671.                 DB #30,#31,#32,#33
  1672. ; 102 - 110 = BAD6 CRAWL
  1673.                 DB #94,#95,#96
  1674.                 DB #B4,#B5,#B6
  1675.                 DB #34,#35,#36
  1676. ; 111 -     =
  1677.  
  1678. ;********************************************
  1679.  
  1680. ;                ADDRESS OF SPR    YSIZ,XOF,YOF
  1681.  
  1682. SPRINF
  1683.                 DW HEROWALK1:DB    12,0,-2    ; WALKTURN
  1684.                 DW HEROWALK2:DB    12,0,-2
  1685.                 DW HEROWALK3:DB    12,0,-2
  1686.                 DW HEROWALK4:DB    12,0,-2
  1687.                 DW HEROWALK5:DB    12,0,-2
  1688. ;05
  1689.                 DW HEROCLIMBl:DB   12,08,-06  ; CLIMB TURN
  1690.                 DW HEROCLIMB2:DB   10,08,-02
  1691.                 DW HEROCLIMB3:DB   11,08,-02
  1692.                 DW HEROCLIMB4:DB   13,08,-02
  1693.                 DW HEROCLIMB5:DB   18,08,-02
  1694. ;10
  1695.                 DW HEROLEG1:DB     2*4,0,0    ; WALK
  1696.                 DW HEROLEG2:DB     2*4,0,0
  1697.                 DW HEROLEG3:DB     2*4,0,0
  1698.                 DW HEROLEG4:DB     2*4,0,0
  1699. ;14
  1700.                 DW HEROLEGSTAND:DB 2*4,0,0    ; STAND
  1701. ;15
  1702.                 DW HEROLEGJUMP:DB  2*4,0,0    ; JUMP
  1703. ;16
  1704.                 DW HEROLEGCL1:DB   2*4,0,0    ; CLIMB 1
  1705.                 DW HEROLEGCL2:DB   2*4,0,0
  1706.                 DW HEROLEGCL3:DB   2*4,0,0
  1707.                 DW HEROLEGCL4:DB   2*4,0,0
  1708. ; 20
  1709.                 DW HEROLEGCR1:DB   2*4,-8,4   ; CRAWL
  1710.                 DW HEROLEGCR2:DB   2*4,-8,4
  1711.                 DW HEROLEGCR3:DB   2*4,-8,4
  1712. ;23
  1713.                 DW HEROCRAWL1:DB   12,08,08   ; CRAWL TURN
  1714.                 DW HEROCRAWL2:DB   11,08,12
  1715.                 DW HEROCRAWL3:DB   10,08,12
  1716.                 DW HEROCRAWL4:DB   15,08,10
  1717.                 DW HEROCRAWL5:DB   16,08,12
  1718.                 DW HEROCRAWL6:DB   13,08,12
  1719.                 DW HEROCRAWL7:DB   11,08,10
  1720.                 DW HEROCRAWL8:DB   11,08,10
  1721. ;31
  1722.                 DW HEROLEG1:DB     2*4,0,0    ; BAD1 LEGS WALK
  1723.                 DW HEROLEG2:DB     2*4,0,0
  1724.                 DW HEROLEG3:DB     2*4,0,0
  1725.                 DW HEROLEG4:DB     2*4,0,0
  1726. ;35
  1727.                 DW HEROLEGJUMP:DB  2*4,0,0    ; BAD1 LEG JUMP
  1728. ;36
  1729.                 DW BADWALK1:DB     3*4,0,0    ; BAD1 BODY WALK
  1730.                 DW BADWALK2:DB     3*4,0,0
  1731.                 DW BADWALK3:DB     3*4,0,0
  1732.                 DW BADWALK4:DB     3*4,0,0
  1733.                 DW BADWALK5:DB     3*4,0,0
  1734. ;41
  1735.                 DW BADWALK5:DB     3*4,0,0    ; BAD1 JUMP
  1736. ;42
  1737.                 DW BAD1FALL:DB     5*4,0,0    ; BAD1 FALL
  1738. ;43
  1739. TUR1            DW 0:DB            3*4,0,0    ; BAD GUN TURRET
  1740. TUR2            DW 0:DB            3*4,0,0
  1741. TUR3            DW 0:DB            3*4,0,0
  1742. ;46
  1743.                 DW HEROFALL:DB  4*4,0,0-16    ; HERO DIE PHASE
  1744. ;47
  1745. BEE1            DW 0:DB            5*4,0,0    ; BEE PHASE
  1746. ;48
  1747. BC1             DW 0:DB            11,0,-6    ; BAD CLIMB
  1748. BC2             DW 0:DB            10,0,-4
  1749. BC3             DW 0:DB            11,0,-6
  1750. BC4             DW 0:DB            10,0,-4
  1751. ;52
  1752. BCR1            DW 0:DB           12,16,12    ; BAD CRAWL
  1753. BCR2            DW 0:DB           12,16,12    ; BAD CRAWL
  1754. BCR3            DW 0:DB           12,16,12    ; BAD CRAWL
  1755.  
  1756. ;********************************************************************************
  1757.  
  1758. DECAMMO         LD A,(INFAMMO):OR A:RET NZ
  1759. AMMOLEFT        LD HL,999:LD A,H:OR L:RET Z
  1760.                 DEC HL:LD (AMMOLEFT+1),HL:LD A,H:OR L:RET NZ
  1761.                 LD (WEPTYPE+1),A:RET
  1762.  
  1763. DECBACK         LD A,(INFAMMO):OR A:RET NZ
  1764. BACKLEFT        LD A,50:OR A:JR Z,SETMFO
  1765.                 DEC A:LD (BACKLEFT+1),A:INC A:RET
  1766. SETMFO          LD (PAKTYPE+1),A:RET
  1767.  
  1768. PRTFLAMES       LD A,0:PUSH AF
  1769. FANNY           LD A,0:XOR 1:LD (FANNY+1),A:LD (FLMCNT+1),A
  1770.                 PUSH BC:LD HL,FLAMEXYS:LD B,NOFLAMES*2
  1771. FFFF            LD (HL),0:INC HL:DJNZ FFFF:POP BC
  1772.                 POP AF:OR A:RET Z
  1773.                 DEC A:LD (PRTFLAMES+1),A:RET Z:LD B,A
  1774.                 CALL DECAMMO:RET Z
  1775.                 LD IY,FLAMEXYS:LD IX,FLAMEDIR
  1776.                 LD DE,(HEROX+1):LD A,D:SUB 8:LD D,A:CALL GETXYOFHERO
  1777.                 LD A,(GUNDIR+1):AND 7:LD HL,JADDS:ADD A,L:LD L,A
  1778.                 LD A,E:ADD A,(HL):LD E,A:LD A,L:ADD A,8:LD L,A
  1779.                 LD A,D:ADD A,(HL):LD D,A
  1780. PRTFLAMBLP      PUSH BC:LD A,(IX+00):INC IX:LD HL,XADDS:ADD A,L:LD L,A
  1781.                 LD A,(HL):ADD A,E:LD E,A
  1782.                 LD A,L:ADD A,8:LD L,A
  1783.                 LD A,(HL):ADD A,D:AND $F8:LD D,A
  1784.  
  1785.                 LD A,E:CP $E8:JR NC,POPDER
  1786.                 LD A,D:CP $70:JR NC,POPDER
  1787.  
  1788.                 PUSH DE:LD HL,FLAMESPR
  1789. FLMCNT          LD A,0:XOR 1:LD (FLMCNT+1),A::JR Z,SDX:LD HL,FLAMESPR2
  1790. SDX             PUSH DE:LD BC,$030C:CALL MASKCXB:POP DE
  1791.                 LD A,E:ADD A,8:LD E,A:LD A,D:ADD A,08:LD D,A
  1792.                 CALL PIXATRAD
  1793. FLAMECOL        LD (HL),#72
  1794. DEO             POP DE:LD (IY+0),E:LD (IY+1),D:INC IY:INC IY
  1795.                 POP BC:DJNZ PRTFLAMBLP
  1796.  
  1797. ANIFLA          LD HL,FLAMEDIR+NOFLAMES-2:LD DE,FLAMEDIR+NOFLAMES-1
  1798.                 LD BC,NOFLAMES-1:LDDR
  1799.                 LD A,(GUNDIR+1):AND 7:LD (FLAMEDIR),A:RET
  1800.  
  1801. POPDER          POP BC:LD A,NOFLAMES:SUB B:SUB 2:OR A:JP P,OKF:XOR A
  1802. OKF             LD (PRTFLAMES+1),A:JR ANIFLA
  1803.  
  1804. ;****************************************************************************
  1805.  
  1806. PRTHERO
  1807. HEROFLASH       LD A,0:OR A:JR Z,HERK:DEC A:LD (HEROFLASH+1),A
  1808. EFSSS           LD A,$00:XOR $B6:LD (EFSSS+1),A
  1809. HERK            XOR $B6:CALL SMODSPR
  1810.  
  1811.                 LD A,(GUNDIR+1):AND $F8:CP 8:JR NZ,SKPARM
  1812.                 LD A,(HEROP+1):AND 3:LD HL,HEROARMS:LD DE,48:CALL MULT
  1813.                 LD DE,(GUNX+1):LD A,(GUNDIR+1):AND 7:CP 5:JR C,OKSS
  1814.                 LD A,E:ADD A,$18:LD E,A
  1815.                 LD A,D:SUB $06:LD D,A:OR A
  1816.                 LD BC,$010C:CALL P,MASKCXBMIR
  1817.                 JR SKPARM
  1818. OKSS            LD A,D:SUB $06:LD D,A:OR A
  1819.                 LD BC,$010C:CALL P,MASKCXB
  1820. SKPARM
  1821.  
  1822. HEROX           LD DE,$5870
  1823. HEROP           LD A, 18:CALL PRTSPRITE
  1824. GUNX            LD DE,$4870
  1825. GUNDIR          LD A,2:CALL PRTSPRITE
  1826.  
  1827.                 LD A,$B6  ; OR (HL)
  1828. SMODSPR         LD (S1+3),A:LD (S2+3),A:LD (S3+3),A:LD (S4+3),A
  1829.                 LD (S5+3),A:LD (S6+3),A:LD (S7+3),A:LD (S8+3),A
  1830.                 LD (M1+0),A:LD (M2+0),A:LD (M3+0),A:LD (M4+0),A
  1831.                 LD (M5+0),A:LD (M6+0),A:LD (M7+0),A:LD (M8+0),A:RET
  1832.  
  1833. PRTSPRITE       CP $FF:RET Z
  1834.                 LD C,A:LD B,0:LD HL,SPRTAB:ADD HL,BC:LD A,(HL)
  1835.                 PUSH AF:AND 127:LD C,A:LD B,0:LD HL,SPRINF
  1836.                 ADD HL,BC:ADD HL,BC:ADD HL,BC:ADD HL,BC:ADD HL,BC
  1837.                 LD C,(HL):INC HL:LD B,(HL):INC HL:LD A,(HL):INC HL
  1838.                 LD (PRTSPRBLP-1),A:LD (PRTMIRBLP-1),A:POP AF
  1839.                 PUSH AF:OR A:JP M,BACKWARD
  1840.                 LD A,E:ADD A,(HL):LD E,A:INC HL
  1841.                 LD A,D:ADD A,(HL):LD D,A:JR GOFIT
  1842. BACKWARD        LD A,E:SUB (HL):LD E,A:INC HL
  1843.                 LD A,D:ADD A,(HL):LD D,A
  1844. GOFIT           RES 0,D:LD A,D:OR A:JP M,TRYTOP
  1845.                 EXX:LD A,(PRTSPRBLP-1):SLA A:LD B,A
  1846.                 LD A,$80:SUB B:LD B,A:EXX
  1847.                 LD A,D:EXX:CP B:EXX :JR C,OKI:OR A:JP M,RETPOP
  1848.                 LD A,$80:SUB D:SRL A:JR Z,RETPOP:JP M,RETPOP
  1849.                 LD (PRTSPRBLP-1),A:LD (PRTMIRBLP-1),A:JR OKI
  1850. RETPOP2         POP AF
  1851. RETPOP          POP AF:RET
  1852. TRYTOP          EXX:LD A,(PRTSPRBLP-1):ADD A,A:NEG:LD B,A:EXX
  1853.                 LD A,D:EXX:SUB B:LD B,A:EXX:JR C,RETPOP
  1854.                 JR Z,RETPOP:LD A,D:PUSH AF
  1855.                 LD A,(PRTSPRBLP-1):SLA A:ADD A,D:NEG:LD D,A
  1856.                 EXX:LD A,B:EXX:OR A:JP M,RETPOP2
  1857.                 SRL A:JP Z,RETPOP2
  1858.                 LD (PRTSPRBLP-1),A:LD (PRTMIRBLP-1),A
  1859.                 POP AF:NEG:ADD A,A:ADD A,A:ADD A,A
  1860.                 ADD A,C:LD C,A:ADC A,B:SUB C:LD B,A:LD D,0
  1861. OKI             LD L,C:LD H,B:POP AF:OR A:JP M,PRTMIR
  1862.  
  1863. PRTSPR          PUSH HL:CALL BIXAD:EX DE,HL:POP HL
  1864.                 LD B,5*4
  1865. PRTSPRBLP
  1866. S1              LD A,(DE):AND (HL):INC HL:OR (HL):INC HL:LD (DE),A
  1867.                 INC DE
  1868. S2              LD A,(DE):AND (HL):INC HL:OR (HL):INC HL:LD (DE),A
  1869.                 INC DE
  1870. S3              LD A,(DE):AND (HL):INC HL:OR (HL):INC HL:LD (DE),A
  1871.                 INC DE
  1872. S4              LD A,(DE):AND (HL):INC HL:OR (HL):INC HL:LD (DE),A
  1873.                 PUSH BC
  1874. SD1             LD BC,32:EX DE,HL:ADD HL,BC:EX DE,HL:POP BC
  1875. S5              LD A,(DE):AND (HL):INC HL:OR (HL):INC HL:LD (DE),A
  1876.                 DEC DE
  1877. S6              LD A,(DE):AND (HL):INC HL:OR (HL):INC HL:LD (DE),A
  1878.                 DEC DE
  1879. S7              LD A,(DE):AND (HL):INC HL:OR (HL):INC HL:LD (DE),A
  1880.                 DEC DE
  1881. S8              LD A,(DE):AND (HL):INC HL:OR (HL):INC HL:LD (DE),A
  1882.                 PUSH BC
  1883. SD2             LD BC,32:EX DE,HL:ADD HL,BC:EX DE,HL:POP BC
  1884.                 DJNZ PRTSPRBLP:RET
  1885.  
  1886. PRTMIR          PUSH HL:LD A,E:ADD A,$18:LD E,A
  1887.                 CALL BIXAD:EX DE,HL:POP HL
  1888.                 LD B,MIRPAGE/256:EXX:LD B,5*4
  1889. PRTMIRBLP       EXX
  1890.                 LD A,(DE):LD C,A:LD A,(BC):AND (HL):INC HL
  1891. M1              OR (HL):INC HL:LD C,A:LD A,(BC):LD (DE),A:DEC DE
  1892.                 LD A,(DE):LD C,A:LD A,(BC):AND (HL):INC HL
  1893. M2              OR (HL):INC HL:LD C,A:LD A,(BC):LD (DE),A:DEC DE
  1894.                 LD A,(DE):LD C,A:LD A,(BC):AND (HL):INC HL
  1895. M3              OR (HL):INC HL:LD C,A:LD A,(BC):LD (DE),A:DEC DE
  1896.                 LD A,(DE):LD C,A:LD A,(BC):AND (HL):INC HL
  1897. M4              OR (HL):INC HL:LD C,A:LD A,(BC):LD (DE),A
  1898.                 PUSH BC
  1899. MD1             LD BC,32:EX DE,HL:ADD HL,BC:EX DE,HL:POP BC
  1900.                 LD A,(DE):LD C,A:LD A,(BC):AND (HL):INC HL
  1901. M5              OR (HL):INC HL:LD C,A:LD A,(BC):LD (DE),A:INC DE
  1902.                 LD A,(DE):LD C,A:LD A,(BC):AND (HL):INC HL
  1903. M6              OR (HL):INC HL:LD C,A:LD A,(BC):LD (DE),A:INC DE
  1904.                 LD A,(DE):LD C,A:LD A,(BC):AND (HL):INC HL
  1905. M7              OR (HL):INC HL:LD C,A:LD A,(BC):LD (DE),A:INC DE
  1906.                 LD A,(DE):LD C,A:LD A,(BC):AND (HL):INC HL
  1907. M8              OR (HL):INC HL:LD C,A:LD A,(BC):LD (DE),A
  1908.                 PUSH BC
  1909. MD2             LD BC,32:EX DE,HL:ADD HL,BC:EX DE,HL:POP BC
  1910.                 EXX:DJNZ PRTMIRBLP:EXX:RET
  1911.  
  1912. ;********************************************************************
  1913.  
  1914. PRTDOOR         LD E,$10
  1915.                 LD HL,(WEPROOMX)
  1916.                 LD A,(MAPX):CP L:RET NZ
  1917.                 LD A,(MAPY):CP H:RET NZ
  1918.                 LD A,(LEVEL):CP 8:JP Z,INITBIG4
  1919.                 LD A,E:OR A
  1920.                 LD HL,DOORSPR:LD BC,$0218:LD DE,(DOORXY):JP Z,BAXIT
  1921.  
  1922.                 LD IX,PRTDOOR-1:LD DE,(DOORXY):DB 1
  1923. DOORSIZE        DW $3020
  1924.                 CALL ISBULINBOX:LD A,(PRTDOOR+1):OR A:RET NZ
  1925.                 LD DE,(DOORXY):LD A,D:SUB $08:LD D,A
  1926.                 LD A,E:SUB 8:LD E,A:PUSH DE:CALL INITEXPNORND:POP DE
  1927.                 PUSH DE:LD A,D:ADD A,$18:LD D,A:CALL INITEXPNORND:POP DE
  1928.                 LD A,D:ADD A,$30:LD D,A:JP INITEXPNORND
  1929.  
  1930. ;****************************************************************************
  1931.  
  1932. EXPDAT          DS NOEXP*3,8
  1933.  
  1934. EXPDEAD         EQU 4
  1935.  
  1936. PRTEXP          LD IX,EXPDAT:LD B,NOEXP
  1937. PRTEXPLP        PUSH BC:LD E,(IX+EXPX):LD D,(IX+EXPY)
  1938.                 LD A,D:CP $68:JP NC,NXTEXP
  1939.                 LD A,(IX+EXPP):CP EXPDEAD:JR NC,EXLF
  1940.                 PUSH DE:LD HL,SHOTEXP1:LD DE,$C0+16:CALL MULT:POP DE
  1941.  
  1942.                 PUSH DE:LD BC,$0404:CALL MASKCXB:POP DE
  1943.                 LD A,D:ADD A,8:LD D,A
  1944.                 PUSH DE:LD BC,$0408:CALL BAXIT:EX DE,HL:POP DE
  1945.                 LD A,D:ADD A,16:LD D,A
  1946.                 PUSH DE:LD BC,$0404:CALL MASKCXB:POP DE
  1947.  
  1948.                 LD A,D:SUB $18:LD D,A:LD BC,$0404:CALL BAXATR
  1949.  
  1950.                 INC (IX+EXPP)
  1951. NXTEXP          POP BC:INC IX:INC IX:INC IX:DJNZ PRTEXPLP:RET
  1952. EXLF            LD (IX+EXPY),$FF:LD (IX+EXPX),0:JR NXTEXP
  1953.  
  1954. INITEXP         CALL RAND:LD A,(RND1):AND 24:SUB 24:ADD A,E:LD E,A
  1955.                 LD A,(RND2):AND 24:SUB 16:ADD A,D:LD D,A
  1956. INITEXPNORND    LD A,D:AND $F8:CP $60:JR C,OKINZ
  1957.                 CP $C0:LD A,$60:JR C,OKINZ:XOR A
  1958. OKINZ           LD D,A:PUSH BC:LD IX,EXPDAT:LD B,NOEXP
  1959. INEX            LD A,(IX+EXPP):CP EXPDEAD:JR NC,GOT1
  1960.                 INC IX:INC IX:INC IX:DJNZ INEX:POP BC:RET
  1961. GOT1            LD (IX+EXPX),E:LD (IX+EXPY),D:LD (IX+EXPP),0
  1962.                 LD A,4:CALL GOBEEP:POP BC:RET
  1963.  
  1964. ;************************************************************************
  1965.  
  1966. PRTBARRIER      LD HL,1000:LD A,H:OR L:RET Z
  1967.                 DEC HL:LD (PRTBARRIER+1),HL
  1968.  
  1969. BARO            LD A,0:INC A:LD C,A:AND 3:CP 2:JR NZ,MFE:INC C
  1970. MFE             LD A,C:LD (BARO+1),A
  1971.                 LD DE,(HEROX+1):PUSH AF:CALL PRT1BARRIER:LD (BARIER1),DE
  1972.                 LD DE,(HEROX+1):POP AF:ADD A,8
  1973. PRT1BARRIER     AND 15:LD C,A:LD B,0
  1974.                 LD HL,XADS:ADD HL,BC
  1975.                 LD A,(HL):ADD A,A:ADD A,A:ADD A,E:ADD A,8:LD E,A
  1976.                 LD HL,YADS:ADD HL,BC
  1977.                 LD A,(HL):ADD A,A:ADD A,A:ADD A,D:SUB 8:LD D,A
  1978.                 CP $71:RET NC
  1979.                 PUSH DE:LD A,(POS):AND 3:LD DE,64:LD HL,BARRIERSPR
  1980.                 CALL MULT:POP DE
  1981.                 PUSH DE:LD BC,$0208:CALL MASKCXB:POP DE:LD (BARIER2),DE
  1982.                 RET
  1983.  
  1984. BARIER1         DW 0
  1985. BARIER2         DW 0
  1986.  
  1987. ;****************************************************************************
  1988. ;** BADDIES PRINT AND MOVE ROUTINES                                        **
  1989. ;****************************************************************************
  1990. ; TOP LINE LEGS
  1991. ; BOTTOM LINE BODY
  1992.  
  1993. BADTYPES
  1994. ;BAD1 LEFT
  1995.                 DB #40,#41,#42,#43,#40,#41,#42,#43
  1996.                 DB #45,#46,#47,#48,#49,#48,#47,#46
  1997. ;BAD1 RIGHT
  1998.                 DB #4C,#4D,#4E,#4F,#4C,#4D,#4E,#4F
  1999.                 DB #51,#52,#53,#54,#55,#54,#53,#52
  2000. ;BAD1 JUMP LEFT
  2001.                 DB #44,#FF,#FF,#FF,#FF,#FF,#FF,#FF
  2002.                 DB #4A,#FF,#FF,#FF,#4B,#4B,#4B,#4B
  2003. ;BAD1 JUMP RIGHT
  2004.                 DB #50,#FF,#FF,#FF,#FF,#FF,#FF,#FF
  2005.                 DB #56,#FF,#FF,#FF,#57,#57,#57,#57
  2006. ;BAD2 GUN PLACEMENT
  2007.                 DB #FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF
  2008.                 DB #58,#5E,#60,#FF,#61,#5F,#59,#FF
  2009. ;BEE RIGHT+LEFT
  2010.                 DB #FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF
  2011.                 DB #5C,#5C,#5C,#5D,#5D,#5D,#5D,#5C
  2012. ;BAD3 CLIMB
  2013.                 DB #30,#31,#32,#33,#30,#31,#32,#33
  2014.                 DB #62,#63,#64,#65,#62,#63,#64,#65
  2015. ;BAD4 CRAWL
  2016.                 DB #28,#29,#2A,#2B,#66,#67,#68,#67
  2017.                 DB #6C,#6D,#6E,#6D,#69,#6A,#6B,#6A
  2018.  
  2019. ACTIONTAB       DW DEAD                              ; $00
  2020.                 DW RUNRIGHT                          ; $01
  2021.                 DW RUNLEFT                           ; $02
  2022.                 DW DIE                               ; $03
  2023.                 DW FALLON                            ; $04
  2024.                 DW GUNTURRET                         ; $05
  2025.                 DW BEE                               ; $06
  2026.                 DW CLIMBER                           ; $07
  2027.                 DW CRAWLER                           ; $08
  2028.  
  2029. ;***************************************
  2030.  
  2031. CRAWLER         LD A,(IX+XPOS):ADD A,(IX+COUNT):LD (IX+XPOS),A
  2032.                 CP $E8:JP NC,SETDEAD
  2033.                 LD A,(IX+PHASE):LD E,A:AND 4:LD D,A
  2034.                 LD A,E:INC A:AND 3:OR D:LD (IX+PHASE),A
  2035.                 RET
  2036.  
  2037. ;***************************************
  2038.  
  2039. CLIMBER         LD A,(MAPY):CP $10:JR NC,MAYO:LD (IX+COUNT),4
  2040. MAYO            LD A,(IX+YPOS):ADD A,(IX+COUNT):LD (IX+YPOS),A
  2041.                 CP $B0:JR C,EHA:CP $D0:JP C,SETDEAD
  2042. EHA             LD A,(IX+PHASE):INC A:AND 7:LD (IX+PHASE),A
  2043.                 RET P:CP $B0:RET C:CP $D0:RET NC:JP SETDEAD
  2044.  
  2045. ;***************************************
  2046.  
  2047. GUNTURRET       LD A,(HEROX+1):CP (IX+XPOS):LD A,0:CCF :ADC A,0
  2048.                 ADD A,A:ADD A,A:LD (IX+PHASE),A:LD HL,YBOUNCE
  2049.                 LD A,(POS)
  2050.                 RRA:RRA:RRA:RRA
  2051.                 AND 3:ADD A,L:LD L,A
  2052.  
  2053.                 LD A,(IX+PHASE):INC A:ADD A,(HL):LD (IX+PHASE),A
  2054.  
  2055.                 LD A,(POS):AND %00001111:RET NZ
  2056.                 LD A,(IX+PHASE):AND 4:JR Z,QED:LD A,$18
  2057. QED             ADD A,(IX+XPOS):LD E,A
  2058.                 LD A,(IX+YPOS):AND $F8:SUB 8:LD D,A
  2059.  
  2060.                 LD A,(IX+PHASE):RRA:RRA:CPL:AND 1
  2061.                 ADD A,A:ADD A,A:ADD A,A:ADD A,4:SUB (HL)
  2062.                 PUSH IX:LD B,4:CALL INITBAL:POP IX:RET
  2063.  
  2064. ;***************************************
  2065.  
  2066. RESETBAD        CALL RESETLEVELBAD
  2067.                 XOR A:LD (PRTFLAMES+1),A:LD (STH+1),A
  2068.                 LD (SCRCNT+1),A:LD (NOSCROLL+1),A
  2069.                 INC A:LD (SMODHERO+1),A
  2070.                 LD A,16:LD (PRTDOOR+1),A
  2071.                 XOR A:LD IX,BADDAT:LD DE,BADLEN:LD B,NOBAD
  2072. RESBAD          LD (IX+ACTION),A:ADD IX,DE:DJNZ RESBAD
  2073.                 LD IX,BULDAT:LD DE,BULLEN:LD B,NOBUL
  2074. RESBUL          LD (IX+BULX),A:LD (IX+BULY),A:ADD IX,DE:DJNZ RESBUL
  2075.                 LD IX,EXPDAT:LD DE,EXPLEN:LD B,NOEXP
  2076. RESEXP          LD (IX+EXPP),EXPDEAD:ADD IX,DE:DJNZ RESEXP
  2077.                 LD IX,KEYDAT:LD DE,KEYLEN:LD B,KEYNOKEY
  2078. RESKEY          LD (IX+KEYX),A:ADD IX,DE:DJNZ RESKEY
  2079.                 LD IX,WAPXYS:LD DE,5:LD B,6
  2080. RESWEP          LD (IX+02),$FF:ADD IX,DE:DJNZ RESWEP
  2081.                 RET
  2082.  
  2083. ;***************************************
  2084.  
  2085. MOVEBAD         LD IX,BADDAT:LD B,NOBAD
  2086. MOVEBADBLP      PUSH BC:CALL RAND:LD A,(IX+ACTION)
  2087.                 ADD A,A:LD E,A:LD D,0:LD HL,ACTIONTAB:ADD HL,DE
  2088.                 LD E,(HL):INC HL:LD D,(HL):EX DE,HL:CALL JPHL
  2089.                 POP BC:LD DE,BADLEN:ADD IX,DE:DJNZ MOVEBADBLP:RET
  2090.  
  2091. JPHL            JP (HL)
  2092.  
  2093. DEAD            RET
  2094.  
  2095. ;***************************************
  2096.  
  2097. RUNRIGHT        LD A,(IX+XPOS):ADD A,8:LD (IX+XPOS),A:JP C,SETDEAD
  2098.                 LD B,02
  2099. TESTAGAINSTMAP  LD E,(IX+XPOS):LD D,(IX+YPOS)
  2100.                 PUSH BC:LD C,2:CALL TESTFLOOR:POP BC:JR NC,SETJUMP
  2101.                 LD E,(IX+XPOS):LD D,(IX+YPOS)
  2102.                 LD A,(MAPX):ADD A,B:LD (MAPX),A
  2103.                 PUSH BC:LD C,2:CALL TESTWALL:POP BC
  2104.                 PUSH AF:LD A,(MAPX):SUB B:LD (MAPX),A:POP AF
  2105.                 JR NC,OKRUN
  2106. SETJUMP         LD (IX+COUNT),-8
  2107. JUMPSET         LD (IX+ACTION),4:SET 1,(IX+TYPE):LD (IX+PHASE),0
  2108.                 RES JUMPBIT,(IX+TEMP):RET
  2109. SETDROP         LD (IX+COUNT),0:JR JUMPSET
  2110. OKRUN           LD A,(IX+PHASE):INC A:AND 7:LD (IX+PHASE),A:RET
  2111.  
  2112. RUNLEFT         LD A,(IX+XPOS):SUB 8:LD (IX+XPOS),A:JP C,SETDEAD
  2113.                 LD B,-2:JP TESTAGAINSTMAP
  2114.  
  2115. ;***************************************
  2116.  
  2117. FALLON          LD A,(IX+YPOS):ADD A,(IX+COUNT):JP M,SKPFON
  2118.                 LD (IX+YPOS),A
  2119. SKPFON          BIT JUMPBIT,(IX+TEMP):JR NZ,JOSEFAT
  2120.                 LD A,(IX+COUNT):OR A:JP M,NESCAFE
  2121. JOSEFAT         LD A,(IX+TYPE):AND 1:ADD A,A:DEC A
  2122.                 ADD A,A:ADD A,A:ADD A,A:ADD A,(IX+XPOS)
  2123.                 CP $E8:JP NC,SETDEAD
  2124.                 LD E,(IX+XPOS):PUSH DE
  2125.                 LD (IX+XPOS),A:LD E,A:LD D,(IX+YPOS)
  2126.                 LD C,2:CALL TESTWALL:POP DE:JR NC,NESCAFE
  2127.                 LD (IX+XPOS),E
  2128. NESCAFE         INC (IX+COUNT):RET M
  2129.                 LD E,(IX+XPOS):LD D,(IX+YPOS)
  2130.                 LD C,2:CALL TESTFLOOR:RET NC
  2131.                 LD A,(IX+YPOS):AND $F0:ADD A,FLOROF:LD (IX+YPOS),A
  2132.                 LD A,(IX+TYPE):DEC A:AND 1:INC A:LD (IX+ACTION),A
  2133.                 RES 1,(IX+TYPE):LD (IX+PHASE),4
  2134.                 LD A,1:JP GOBEEP
  2135.  
  2136. ;***************************************
  2137.  
  2138. BEE             LD A,(IX+PHASE):LD HL,XADDS:ADD A,L:LD L,A:LD E,(HL)
  2139.                 ADD A,8:LD L,A:LD D,(HL)
  2140.                 LD A,(IX+XPOS):ADD A,E:LD (IX+XPOS),A:LD E,A
  2141.                 LD A,(IX+YPOS):ADD A,D:LD (IX+YPOS),A:LD D,A
  2142.                 LD A,(RND2):AND %10101010:JR NZ,FNES
  2143.  
  2144.                 LD A,(IX+PHASE):ADD A,2:ADD A,A
  2145.                 PUSH IX:LD B,4:CALL INITBAL:POP IX
  2146.  
  2147. FNES            DEC (IX+COUNT):RET NZ:LD (IX+COUNT),5
  2148.                 LD A,(IX+PHASE):INC A:AND 7:LD (IX+PHASE),A:RET
  2149.  
  2150. ;***************************************
  2151.  
  2152. SETBANGDEAD     LD E,(IX+XPOS):LD A,(IX+YPOS):SUB $10:LD D,A
  2153.                 PUSH IX:PUSH BC:CALL INITEXPNORND:POP BC:POP IX
  2154. SETDEAD         LD (IX+ACTION),0:LD (IX+XPOS),$FF:LD (IX+YPOS),$FF:RET
  2155.  
  2156. ;***************************************
  2157.  
  2158. SETFALL         PUSH HL:PUSH DE:LD A,6:CALL GOBEEP:POP DE:POP HL
  2159.  
  2160.                 BIT KEYBIT,(IX+TEMP):JR Z,NOKEYIZ
  2161.                 PUSH IX:PUSH DE:PUSH BC:LD DE,0*256+5:CALL ADDSCORE
  2162.                 LD E,(IX+XPOS):LD D,(IX+YPOS):CALL INITKEY
  2163.                 POP BC:POP DE:POP IX
  2164. NOKEYIZ
  2165.                 LD A,(IX+ACTION):CP 5:JR C,NOTBANGDEAD
  2166.                 CP 8+1:JR C,SETBANGDEAD
  2167. NOTBANGDEAD     LD (IX+ACTION),3:LD (IX+COUNT),-3
  2168.                 LD A,(IX+TYPE):CP 4:RET Z
  2169.                 SET 2,(IX+PHASE):RET NC:SET 1,(IX+TYPE):RET
  2170.  
  2171. ;***************************************
  2172.  
  2173. DIE             LD A, (IX+YPOS): ADD A, (IX+COUNT): LD (IX+YPOS), A
  2174.                 CP $C0:JR NC,NOSD
  2175.                 CP $90:JP NC, SETDEAD
  2176. NOSD            INC (IX+COUNT):RET
  2177.  
  2178. ;***************************************
  2179.  
  2180. PRTBADDIES      LD IX,BADDAT:LD B,NOBAD
  2181. PRTBADBLP       PUSH BC:LD A,(IX+ACTION):OR A:JP Z,PRTNXTBAD
  2182.                 LD A,(IX+XPOS):CP $E8:JR NC,PRTNXTBAD
  2183.  
  2184.                 LD A,(IX+TYPE):ADD A,A:ADD A,A:ADD A,A:ADD A,A
  2185.                 ADD A,(IX+PHASE):LD E,A:LD D,0:LD HL,BADTYPES
  2186.                 ADD HL,DE:LD A,(HL):PUSH HL
  2187.                 LD E,(IX+XPOS):LD D,(IX+YPOS):CALL PRTSPRITE
  2188.                 POP HL:LD DE,8:ADD HL,DE
  2189.                 LD E,(IX+XPOS):LD A,(IX+YPOS):SUB $10:LD D,A
  2190.                 LD A,(HL):CALL PRTSPRITE
  2191.  
  2192.                 LD A,(IX+ACTION):CP 6:CALL Z,INITBIG4
  2193.  
  2194.                 LD A,(IX+ACTION):CP 5:JR NZ,PRTNXTBAD
  2195. TANKATRS        LD HL,0:LD E,(IX+XPOS):LD A,(IX+YPOS)
  2196.                 SUB $10:LD D,A:CP $70:JR NC,PRTNXTBAD
  2197. OKT2            LD A,(IX+PHASE):AND 4:JR Z,ARTS:LD BC,12:ADD HL,BC
  2198. ARTS            LD BC,$0403:CALL BAXATR
  2199. PRTNXTBAD       POP BC:LD DE,BADLEN:ADD IX,DE:DEC B:JP NZ,PRTBADBLP
  2200.                 XOR A:LD ($5AFF),A
  2201.                 RET
  2202.  
  2203. ;***************************************
  2204.  
  2205. TRYINITBAD      LD E,A
  2206. BADDATA         LD HL,0
  2207.                 CP (HL):RET NZ
  2208.                 INC HL:LD A,(HL):INC HL:LD (BADDATA+1),HL
  2209. GOINITBADA      OR A:JP M,INITBIG
  2210.                 LD C,A:CALL FINDDEAD:RET NZ:LD A,C:JP INITBADA
  2211.  
  2212. INITBIG         CP POKE:JR NZ,NOTPOKE
  2213.                 CALL GETDATA:LD E,A:CALL GETDATA:LD D,A:CALL GETDATA
  2214.                 LD (DE),A:RET
  2215. NOTPOKE         CPL :ADD A,A:LD E,A:LD D,0
  2216.                 LD HL,BIGINITS:ADD HL,DE:LD E,(HL):INC HL:LD D,(HL)
  2217.                 EX DE,HL:JP (HL)
  2218.  
  2219. BIGINITS        DW INITBIG1             ; $FF
  2220.                 DW INITBIG2             ; $FE
  2221.                 DW INITBIG3             ; $FD
  2222.                 DW INITBIG4             ; $FC
  2223.                 DW SETCONTSCR           ; $FB
  2224.  
  2225. SETCONTSCR      CALL GETDATA:LD (CONTSCROLL+1),A:LD (NOSCROLL+1),A:RET
  2226.  
  2227. FINDDEAD        LD IX,BADDAT:LD DE,BADLEN:LD B,NOBAD:XOR A
  2228. SEARCH          CP (IX+ACTION):RET Z:ADD IX,DE:DJNZ SEARCH:INC B:RET
  2229.  
  2230. INITBADA        ADD A,A:LD E,A:LD D,0
  2231.                 LD HL,BADINITS:ADD HL,DE:LD E,(HL):INC HL:LD D,(HL)
  2232.                 EX DE,HL:JP (HL)
  2233.  
  2234. BADINITS        DW JMPINLEFT            ; $00
  2235.                 DW INLEFT               ; $01
  2236.                 DW JMPINRIGHT           ; $02
  2237.                 DW INRIGHT              ; $03
  2238.                 DW INGUNR               ; $04
  2239.                 DW INGUNL               ; $05
  2240.                 DW INBEER               ; $06
  2241.                 DW INBEEL               ; $07
  2242.                 DW CLIMBS               ; $08
  2243.                 DW CLIMB1               ; $09
  2244.                 DW CRAWLS               ; $0A
  2245.  
  2246. CRAWLS          CALL GETDATA:LD (IX+XPOS),A
  2247.                 CALL GETDATA:LD (IX+YPOS),A
  2248.                 CALL GETDATA:LD (IX+COUNT),A
  2249.                 LD (IX+TEMP),0:LD (IX+PHASE),0
  2250.                 OR A:JP P,AFTER:LD (IX+PHASE),4
  2251. AFTER           LD (IX+TYPE),7:LD (IX+ACTION),8:RET
  2252.  
  2253. CLIMB1          CALL GETDATA
  2254.                 LD C,A:LD B,1:LD DE,$90A8:JR CDS
  2255. CLIMBS          CALL GETDATA:LD C,A
  2256.                 LD B,4:LD DE,$0028:OR A:JP P,CDS:LD D,$90
  2257. CDS             CALL GETDATA
  2258. CLIMBDOWN       LD (IX+XPOS),E:LD (IX+YPOS),D
  2259.                 LD (IX+COUNT),C:LD (IX+TEMP),A
  2260.                 LD (IX+TYPE),6:LD (IX+PHASE),0
  2261.                 LD (IX+ACTION),7
  2262.  
  2263.                 PUSH AF:LD A,E:ADD A,$30:LD E,A
  2264.                 PUSH DE:PUSH BC:CALL FINDDEAD:POP BC:POP DE:JR NZ,NCD
  2265.                 POP AF:DJNZ CLIMBDOWN:RET
  2266. NCD             POP AF:RET
  2267.  
  2268. INBEER          LD DE,$88F0:LD A,6:JR INBEE
  2269. INBEEL          LD DE,$10F0:LD A,2
  2270. INBEE           LD (IX+XPOS),E:LD (IX+YPOS),D
  2271.                 LD (IX+TYPE),5:LD (IX+PHASE),A:LD (IX+TEMP),0
  2272.                 LD (IX+ACTION),6:LD (IX+COUNT),16+(5/2):RET
  2273.  
  2274. GETDATA         LD HL,(BADDATA+1):LD A,(HL):INC HL:LD (BADDATA+1),HL
  2275.                 RET
  2276.  
  2277. INGUNL          CALL GETDATA:LD (IX+XPOS),A:CALL GETDATA:LD (IX+YPOS),A
  2278.                 LD (IX+TEMP),0
  2279.                 LD (IX+ACTION),5:LD (IX+TYPE),4:LD (IX+PHASE),4:RET
  2280. INGUNR          CALL GETDATA:LD (IX+XPOS),A:CALL GETDATA:LD (IX+YPOS),A
  2281.                 LD (IX+TEMP),0
  2282.                 LD (IX+ACTION),5:LD (IX+TYPE),4:LD (IX+PHASE),0:RET
  2283.  
  2284. JMPINLEFT       CALL GETDATA:LD (IX+YPOS),A:LD (IX+XPOS),$E0
  2285.                 CALL GETDATA:LD (IX+TEMP),A
  2286.                 LD (IX+ACTION),4:LD (IX+TYPE),2:LD (IX+PHASE),0
  2287.                 LD (IX+COUNT),-4:SET JUMPBIT,(IX+TEMP):RET
  2288. INLEFT          CALL GETDATA:LD (IX+YPOS),A
  2289.                 CALL GETDATA:LD (IX+TEMP),A
  2290.                 LD (IX+XPOS), $E0:LD (IX+ACTION), 2
  2291.                 LD (IX+TYPE),0:LD (IX+PHASE),0:RET
  2292.  
  2293. JMPINRIGHT      CALL GETDATA:LD (IX+YPOS),A:LD (IX+XPOS),$08
  2294.                 CALL GETDATA:LD (IX+TEMP),A
  2295.                 LD (IX+ACTION),4:LD (IX+TYPE),3:LD (IX+PHASE),0
  2296.                 LD (IX+COUNT),-4:SET JUMPBIT,(IX+TEMP):RET
  2297. INRIGHT         CALL GETDATA:LD (IX+YPOS),A:LD (IX+XPOS),$08
  2298.                 CALL GETDATA:LD (IX+TEMP),A
  2299.                 LD (IX+ACTION),1:LD (IX+TYPE),1:LD (IX+PHASE),0:RET
  2300.  
  2301. ;***************************************************************************
  2302. ;** DODGY COLISH ROUTINES                                                 **
  2303. ;***************************************************************************
  2304.  
  2305. ISHEROINBOX     LD H,C:LD L,E:LD (XSI+1),HL
  2306.                 LD H,B:LD L,D:LD (YSI+1),HL:JR ISHEROINBOX2
  2307.  
  2308. ISBULORHERO     CALL ISBULINBOX
  2309.  
  2310. ISHEROINBOX2    LD A,(HEROFLASH+1):OR A:RET NZ
  2311.                 LD A,(GUNDIR+1):CP $FF:RET Z
  2312.                 LD DE,(HEROOFSET):LD A,(HEROSIZE):LD D,A
  2313.                 LD HL,(XSI+1):CALL HITA:RET C
  2314.                 LD DE,(HEROOFSET+1):LD A,(HEROSIZE+1):LD D,A
  2315.                 LD HL,(YSI+1):CALL HITA:RET C
  2316.                 PUSH IX:CALL SETHERODIE:POP IX:RET
  2317.  
  2318. ISBULINBOX      LD IY,BULDAT
  2319.                 LD A,(SPACEBARCHEAT):OR A:JR Z,NOSPACEBAR
  2320.                 LD A,127:IN A,(254):RRA:JR C,NOSPACEBAR
  2321.                 LD A,254:IN A,(254):RRA:JR NC,NOSPACEBAR
  2322.                 LD (IX+02),0:RET
  2323. NOSPACEBAR      LD A,1:LD (BAGE+1),A
  2324.                 LD H,C:LD L,E:LD (XSI+1),HL
  2325.                 LD H,B:LD L,D:LD (YSI+1),HL
  2326.                 LD B,NOBUL
  2327. ISBULBLP        LD A,(IY+BULT):AND 7:CP 4:JR Z,NEXTIS
  2328.                 LD E,(IY+BULX):LD D,$07
  2329.                 LD A,(IY+BULY):OR E:JR Z,NEXTIS
  2330. XSI             LD HL,$001F:CALL HITA:JR C,NEXTIS
  2331.                 LD E,(IY+BULY):LD D,$07
  2332. YSI             LD HL,$000F:CALL HITA:JR C,NEXTIS
  2333.                 LD A,(IY+BULT):AND 7:LD L,A:DB 62
  2334. WEPPOWER        DB 0
  2335.                 OR A:JR Z,NOSUPER:SLA L
  2336. NOSUPER         LD A,L:CALL BULISINBOX
  2337. NEXTIS          LD DE,BULLEN:ADD IY,DE:DJNZ ISBULBLP
  2338.  
  2339.                 LD HL,(PRTBARRIER+1):LD A,H:OR L:JR Z,NOTBAR2
  2340.                 LD IY,BARIER1:LD C,2
  2341. BARDODGE2       LD E,(IY+00):LD D,$0F
  2342.                 LD HL,(XSI+1):CALL HITA:JR C,NEXTDZDGCY
  2343.                 LD E,(IY+01):LD D,$0F
  2344.                 LD HL,(YSI+1):CALL HITA:JR C,NEXTDZDGCY
  2345.                 LD A,16:CALL BULISINBOX
  2346. NEXTDZDGCY      INC IY:INC IY:DEC C:JP NZ,BARDODGE2
  2347. NOTBAR2
  2348.  
  2349.                 LD IY,FLAMEXYS:LD B,NOFLAMES
  2350. DAGGEBLP3       LD E,(IY+0):LD D,$0F
  2351.                 LD A,(IY+1):OR E:OR A:JR Z,FAN2
  2352.                 LD HL,(XSI+1):CALL HITA:JR C,NEXTDAGGEB3
  2353.                 LD E,(IY+1):LD D,$0F
  2354.                 LD HL,(YSI+1):CALL HITA:JR C,NEXTDAGGEB3
  2355.                 LD A,NOFLAMES+1:SUB B:LD (PRTFLAMES+1),A
  2356.                 LD A,17:CALL BULISINBOX
  2357.                 JR FAN2
  2358. NEXTDAGGEB3     LD DE,2:ADD IY,DE:DJNZ DAGGEBLP3
  2359. FAN2            RET
  2360.  
  2361. BULISINBOX      PUSH AF
  2362.                 PUSH IX:PUSH BC:LD E,(IY+BULX):LD D,(IY+BULY):CALL INITEXP
  2363.                 POP BC:POP IX:LD DE,0*256+1:CALL ADDSCORE
  2364.                 POP AF
  2365.                 LD HL,DAMAGETAB:CALL ADDHLA
  2366.                 LD A,(IX+02):OR A:RET Z
  2367.                 LD A,(IX+02):SUB (HL):JR NC,NOCAR:XOR A
  2368. NOCAR           LD (IX+02),A
  2369.                 LD (IY+XPOS),0:LD (IY+YPOS),0:RET
  2370. ADDHLA          ADD A,L:LD L,A:ADC A,H:SUB L:LD H,A:RET
  2371.  
  2372. ;***************************************
  2373.  
  2374. DODGYCOLISH     LD IX,BADDAT:LD B,NOBAD
  2375. DODGYBLP        LD A,(IX+ACTION):OR A:JP Z,NEXTDODGYBA
  2376.                 CP 3:JP Z,NEXTDODGYBA
  2377.  
  2378.                 LD L,(IX+XPOS):LD H,$1F:LD (BAX+1),HL
  2379.                 CP 5:JR Z,NAZ
  2380.                 CP 8:JR Z,NUZ
  2381.                 LD A,(IX+YPOS):SUB $10:LD L,A:LD H,$1F:LD (BAY+1),HL
  2382.                 JR NAY
  2383. NAZ             LD A,(IX+YPOS):SUB $10:LD L,A:LD H,$0F:LD (BAY+1),HL
  2384.                 JR NAY
  2385. NUZ             LD L,(IX+YPOS):LD H,$0F:LD (BAY+1),HL
  2386. NAY
  2387.  
  2388.                 LD HL,(PRTBARRIER+1):LD A,H:OR L:JR Z,NOTBARI
  2389.                 LD IY,BARIER1:LD C,2
  2390. BARDODGE        LD E,(IY+00):LD D,$0F
  2391. BAX             LD HL,0:CALL HITA:JR C,NEXTDODGCY
  2392.                 LD E,(IY+01):LD D,$0F
  2393. BAY             LD HL,0:CALL HITA:JR C,NEXTDODGCY
  2394.                 LD DE,0*256+5:CALL ADDSCORE
  2395.                 CALL SETFALL
  2396. NEXTDODGCY      INC IY:INC IY:DEC C:JP NZ,BARDODGE
  2397. NOTBARI
  2398.  
  2399.                 LD IY,BULDAT:LD C,NOBUL
  2400. DODGYCLP        LD A,(IY+BULT):AND 7:CP 4:JR Z,NEXTDODGYC
  2401.                 LD E,(IY+BULX):LD A,E:OR (IY+BULY):JR Z,NEXTDODGYC
  2402.                 LD D,7:LD HL,(BAX+1):CALL HITA:JR C,NEXTDODGYC
  2403.                 LD E,(IY+BULY):LD D,$07
  2404.                 LD HL,(BAY+1):CALL HITA:JR C,NEXTDODGYC
  2405.                 LD (IY+BULX),0:LD (IY+BULY),0
  2406.                 LD DE,0*256+5:CALL ADDSCORE:CALL SETFALL
  2407.                 LD A,(WEPTYPE+1):CP 4:JR NZ,NEXTDODGYB
  2408.                 LD E,(IX+XPOS):LD D,(IX+YPOS)
  2409.                 PUSH IX:PUSH BC:CALL INITEXP:POP BC:POP IX:JR NEXTDODGYB
  2410. NEXTDODGYC      LD DE,BULLEN:ADD IY,DE:DEC C:JP NZ,DODGYCLP
  2411. NEXTDODGYB
  2412.  
  2413.                 LD IY,FLAMEXYS:LD C,NOFLAMES
  2414.                 LD A,(PRTFLAMES+1):OR A:JR Z,NEXTDADGYB
  2415. DADGYCLP        LD A,(IY+0):OR (IY+1):JR Z,NEXTDADGYB
  2416.                 LD E,(IY+0):LD D,8
  2417.                 LD HL,(BAX+1):CALL HITA:JR C,NEXTDADGYC
  2418.                 LD E,(IY+1):LD D,8
  2419.                 LD HL,(BAY+1):CALL HITA:JR C,NEXTDADGYC
  2420.                 LD DE,0*256+5:CALL ADDSCORE
  2421.                 CALL SETFALL
  2422.                 LD A,NOFLAMES:SUB C:LD (PRTFLAMES+1),A
  2423.                 JR NEXTDADGYB
  2424. NEXTDADGYC      LD DE,2:ADD IY,DE:DEC C:JP NZ,DADGYCLP
  2425. NEXTDADGYB
  2426.  
  2427. NEXTDODGYBA     LD DE,BADLEN:ADD IX,DE:DEC B:JP NZ,DODGYBLP
  2428.  
  2429. ;***************************************
  2430.  
  2431. DODGEBIG        DB 62
  2432. ISBIGON         DB 0
  2433.                 OR A:JP Z,HAR1:DB 17
  2434. BIGX1           DW 0
  2435.                 LD C, D: DB 33
  2436. BIGY1           DW 0
  2437.                 LD B,H:LD D,L:PUSH IX:LD IX,BIGHITS-2
  2438.                 CALL ISBULINBOX:POP IX:DB 62
  2439. BIGHITS         DB 0
  2440.                 OR A:CALL Z,KILLBIG
  2441. HAR1
  2442.  
  2443. ;***************************************
  2444.  
  2445. NEXTYDODGE
  2446.                 LD A,(HEROFLASH+1):OR A:JP NZ,NEXTDUDGE
  2447.                 LD A,(GUNDIR+1):CP $FF:JP Z,NEXTDUDGE
  2448.  
  2449.                 LD HL,$1C0F:LD A,(GUNDIR+1):CP 56:LD A,$F0:JR C,ONE
  2450.                 LD HL,$0F1F:XOR A
  2451. ONE             LD (HEROSIZE),HL
  2452.                 LD HL,(HEROX+1):ADD A,H:LD H,A
  2453.                 LD A,L:ADD A,8:LD L,A
  2454.                 LD (HEROOFSET),HL
  2455.                 LD IY,BULDAT:LD B,NOBUL
  2456. EFJM            LD A,(IY+BULT):AND 7:CP 4:JR NZ,NEXTDIDGYH
  2457.                 LD E,(IY+BULX):LD D,$08
  2458.                 LD A,E:OR (IY+BULY):JR Z,NEXTDIDGYH
  2459.                 LD HL,(HEROOFSET):LD A,(HEROSIZE):LD H,A
  2460.                 CALL HITA:JR C,NEXTDIDGYH
  2461.                 LD E,(IY+BULY):LD D,$08
  2462.                 LD HL,(HEROOFSET+1):LD A,(HEROSIZE+1):LD H,A
  2463.                 CALL HITA:JR C,NEXTDIDGYH
  2464.                 LD (IY+BULX),0:LD (IY+BULY),0
  2465.                 CALL SETHERODIE:JR NEXTDUDGE
  2466. NEXTDIDGYH      LD DE,BULLEN:ADD IY,DE:DJNZ EFJM
  2467.  
  2468.                 LD IY,BADDAT:LD B,NOBAD
  2469. EFKM            LD A,(IY+ACTION):OR A:JR Z,NXTDIDGEH
  2470.                 CP 3:JR Z,NXTDIDGEH
  2471.                 LD E,(IY+XPOS):LD D,$1F
  2472.                 LD HL,(HEROOFSET):LD A,(HEROSIZE):LD H,A
  2473.                 CALL HITA:JR C,NXTDIDGEH
  2474.                 LD E,(IY+YPOS):LD D,$0F
  2475.                 LD HL,(HEROOFSET+1):LD A,(HEROSIZE+1):LD H,A
  2476.                 CALL HITA:JR C,NXTDIDGEH
  2477.                 CALL SETHERODIE:JR NEXTDUDGE
  2478. NXTDIDGEH       LD DE,BADLEN:ADD IY,DE:DJNZ EFKM
  2479.  
  2480. ;*************************************
  2481.  
  2482. HERODODGEBIG    LD A,(ISBIGON):OR A:JR Z,HAR2
  2483.                 LD DE,(BIGX1)
  2484.                 LD HL,(HEROOFSET):LD A,(HEROSIZE):LD H,A
  2485.                 CALL HITA:JR C,HAR2
  2486.                 LD DE,(BIGY1)
  2487.                 LD HL,(HEROOFSET+1):LD A,(HEROSIZE+1):LD H,A
  2488.                 CALL HITA:JR C,HAR2
  2489.                 CALL SETHERODIE
  2490. HAR2
  2491.  
  2492. ;***************************************************************************
  2493.  
  2494. NEXTDUDGE
  2495.                 RET
  2496.  
  2497. ;***************************************************************************
  2498.  
  2499. HEROOFSET       DW 0
  2500. HEROSIZE        DW 0
  2501.  
  2502. SETHERODIE
  2503. ;                LD A,(INFLIVES):OR A:RET NZ
  2504.                 LD A,(GUNDIR+1):INC A:RET Z
  2505.  
  2506.                 LD A,$FF:LD (GUNDIR+1),A
  2507.                 LD A,(HEROP+1):AND 4:RRA :RRA :ADD A,90:LD (HEROP+1),A
  2508.                 LD A,-9:LD (HEROG+1),A
  2509.  
  2510.                 LD A,(KEYSCOLLECTED+1):LD B,A:LD HL,OKFES
  2511.                 OR A:JR Z,NODROPKEY
  2512. KDEIFTH         LD A,(HL):INC HL:PUSH HL:PUSH BC
  2513.                 LD DE,(HEROX+1):ADD A,E:LD E,A:CALL INITKEY
  2514.                 POP BC:POP HL:DJNZ KDEIFTH
  2515.                 XOR A:LD (KEYSCOLLECTED+1),A
  2516.  
  2517. NODROPKEY       LD IX,WAPXYS
  2518.                 LD A,(WEPTYPE+1):OR A:JR Z,NOWEPE
  2519.  
  2520.                 LD DE,WAPT-1:CALL STIT
  2521.                 LD DE,(AMMOLEFT+1):LD (WEPAMOUNT),DE
  2522.                 LD DE,0:LD (AMMOLEFT+1),DE:XOR A:LD (WEPTYPE+1),A
  2523. NOWEPE
  2524.                 INC HL
  2525.                 LD A,(PAKTYPE+1):OR A:JR Z,NOPEPE
  2526.  
  2527.                 LD DE,BAPT-1:CALL STIT
  2528.                 LD A,(BACKLEFT+1):LD (PAKAMOUNT),A
  2529.                 XOR A:LD (BACKLEFT+1),A:LD (PAKTYPE+1),A
  2530.  
  2531. NOPEPE          XOR A:LD (WEPPOWER),A
  2532.                 LD L,A:LD H,A:LD (PRTBARRIER+1),HL:RET
  2533.  
  2534. STIT            PUSH DE:PUSH AF
  2535.                 LD DE,(HEROX+1):LD A,D:SUB 16:LD (IX+01),A
  2536.                 LD A, (HL): ADD A,E:RRA:RRA:RRA:AND 31:LD E,A
  2537.                 LD A,(LEVEL):CP 7:JR NZ,ZZ1
  2538.                 LD A,(HEROX+1):ADD A,(HL):LD (IX+00),A:JR ZZ2
  2539. ZZ1             LD A,(MAPX):ADD A,E:LD (IX+00),A
  2540. ZZ2             POP AF:POP DE:ADD A,E:LD E,A:ADC A,D:SUB E:LD D,A
  2541.                 LD A,(DE):LD (IX+02),A
  2542.                 LD (IX+03),-6
  2543.                 LD (IX+04),0
  2544.                 LD DE,5:ADD IX,DE:RET
  2545.  
  2546. OKFES           DB $20, $F0,$28,$E8,$30,$E0,$38,$D8
  2547. WAPT            DB 2,1,0,3
  2548. BAPT            DB 5,7,6
  2549.  
  2550. ;****************************************************************************
  2551. ;** GRAFIX                                                                 **
  2552. ;**************************************************лХ************************
  2553.  
  2554. KEYSPRS         DB #F8,#00,#1F,#00,#0F,#00,#F0,#00,#E0,#07,#07,#E0,#03,#10,#C0,#08
  2555.                 DB #80,#10,#01,#28,#00,#94,#00,#21,#00,#23,#00,#C4,#00,#84,#00,#21
  2556.                 DB #80,#10,#01,#08,#03,#90,#C0,#08,#E0,#04,#07,#20,#07,#A0,#E0,#04
  2557.                 DB #E0,#04,#07,#A0,#0F,#40,#F0,#02,#F8,#01,#1F,#80,#3F,#00,#FC,#00
  2558.                 DB #FC,#00,#3F,#00,#1F,#00,#F8,#00,#F0,#03,#0F,#C0,#07,#20,#E0,#04
  2559.                 DB #C0,#08,#03,#50,#01,#28,#80,#11,#80,#11,#01,#88,#01,#88,#80,#10
  2560.                 DB #C0,#08,#03,#10,#07,#A0,#E0,#04,#E0,#04,#07,#20,#07,#A0,#E0,#04
  2561.                 DB #E0,#04,#07,#A0,#0F,#40,#F0,#02,#F8,#01,#1F,#80,#3F,#00,#FC,#00
  2562.                 DB #FE,#00,#7F,#00,#3F,#00,#FC,#00,#F8,#01,#1F,#80,#0F,#40,#F0,#02
  2563.                 DB #E0,#04,#07,#A0,#07,#A0,#E0,#04,#E0,#04,#07,#20,#07,#20,#E0,#04
  2564.                 DB #E0,#04,#07,#20,#07,#A0,#E0,#04,#E0,#04,#07,#20,#07,#A0,#E0,#04
  2565.                 DB #E0,#04,#07,#A0,#0F,#40,#F0,#02,#F8,#01,#1F,#80,#3F,#00,#FC,#00
  2566.                 DB #FC,#00,#3F,#00,#1F,#00,#F8,#00,#F0,#03,#0F,#C0,#07,#20,#E0,#04
  2567.                 DB #C0,#08,#03,#50,#01,#A8,#80,#10,#80,#11,#01,#88,#01,#08,#80,#11
  2568.                 DB #C0,#08,#03,#10,#07,#A0,#E0,#04,#E0,#04,#07,#20,#07,#A0,#E0,#04
  2569.                 DB #E0,#04,#07,#A0,#0F,#40,#F0,#02,#F8,#01,#1F,#80,#3F,#00,#FC,#00
  2570.  
  2571. DOORSPR         DB #40,#8F,#22,#70,#7C,#08,#02,#7F,#7F,#40,#20,#7F,#7F,#54,#2A,#7F
  2572.                 DB #7F,#55,#2A,#7F,#7F,#55,#2A,#7F,#7F,#55,#2A,#7F,#7F,#55,#2A,#7F
  2573.                 DB #7F,#55,#2A,#7F,#7F,#55,#2A,#7F,#7F,#55,#2A,#7F,#7F,#55,#2A,#7F
  2574.                 DB #7F,#55,#2A,#7F,#7F,#55,#2A,#7F,#7F,#55,#2A,#7F,#7F,#55,#2A,#7F
  2575.                 DB #7F,#55,#2A,#7F,#7F,#55,#2A,#7F,#7F,#55,#2A,#7F,#7F,#55,#2A,#7F
  2576.                 DB #1F,#55,#2A,#8F,#53,#55,#2A,#A8,#84,#00,#00,#42,#C0,#00,#00,#00
  2577.  
  2578. BULMASK         DB #87,#00,#03,#00,#03,#30,#03,#30,#03,#30,#03,#30,#03,#00,#87,#00
  2579.                 DB #FF,#00,#E3,#00,#C1,#08,#81,#1C,#01,#38,#03,#70,#07,#20,#8F,#00
  2580.                 DB #FF,#00,#81,#00,#00,#00,#00,#3C,#00,#3C,#00,#00,#81,#00,#FF,#00
  2581.                 DB #FF,#00,#C7,#00,#83,#10,#81,#38,#80,#1C,#C0,#0E,#E0,#04,#F1,#00
  2582.  
  2583. BLOB1X1         DB 1,1*8
  2584.                 DB %10000001
  2585.                 DB %00111100
  2586.                 DB %01111110
  2587.                 DB %01111110
  2588.                 DB %01111110
  2589.                 DB %01111110
  2590.                 DB %00111100
  2591.                 DB %10000001
  2592. BLOBATR         DB #43
  2593.  
  2594. MISSILE         DB #FE,#00,#7F,#00,#3F,#80,#FC,#01,#F8,#02,#1F,#40,#0F,#A0,#F0,#04
  2595.                 DB #F0,#04,#0F,#20,#07,#50,#E0,#08,#E0,#08,#07,#50,#07,#50,#E0,#08
  2596.                 DB #E0,#08,#07,#50,#07,#50,#E0,#08,#E0,#08,#07,#50,#07,#50,#E0,#08
  2597.                 DB #E0,#08,#07,#10,#03,#A8,#C0,#10,#80,#28,#01,#14,#00,#0A,#00,#50
  2598.  
  2599. MISS1           DB #00,#50,#00,#0A,#00,#02,#00,#40,#80,#38,#01,#3C,#03,#C0,#C0,#17
  2600.                 DB #80,#2F,#03,#E8,#01,#F4,#00,#53,#00,#A7,#00,#DA,#00,#E2,#00,#4F
  2601.                 DB #80,#37,#01,#D4,#03,#E8,#C0,#0B,#E0,#0B,#07,#D0,#07,#D0,#F0,#05
  2602.                 DB #F0,#05,#0F,#A0,#1F,#40,#F8,#02,#FC,#01,#3F,#80,#7F,#00,#FE,#00
  2603.  
  2604. MISS2           DB #00,#50,#00,#0A,#00,#02,#00,#40,#80,#38,#01,#3C,#03,#20,#C0,#0B
  2605.                 DB #C0,#17,#07,#D0,#0F,#A0,#E0,#0B,#E0,#0B,#0F,#A0,#1F,#40,#F0,#05
  2606.                 DB #F8,#02,#3F,#80,#7F,#00,#FC,#01,#FE,#00,#FF,#00,#FF,#00,#FF,#00
  2607.                 DB #FF,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00
  2608.  
  2609. BULLET3X2       DB #FF,#00,#C3,#00,#FF,#00,#FF,#00,#00,#3C,#FF,#00,#FE,#00,#00,#C3
  2610.                 DB #7F,#00,#3F,#80,#00,#1C,#FC,#01,#F8,#02,#00,#7F,#1F,#40,#1F,#40
  2611.                 DB #00,#BF,#F8,#02,#F0,#04,#00,#7F,#0F,#A0,#0F,#A0,#00,#3F,#F0,#04
  2612.                 DB #F0,#04,#00,#5F,#0F,#A0,#0F,#A0,#00,#2A,#F0,#04,#F8,#02,#00,#14
  2613.                 DB #1F,#40,#1F,#40,#00,#00,#F8,#02,#FC,#01,#00,#00,#3F,#80,#7F,#00
  2614.                 DB #00,#C3,#FE,#00,#FF,#00,#00,#3C,#FF,#00,#FF,#00,#C3,#00,#FF,#00
  2615.  
  2616. BULLET3X1       DB 3,1*8
  2617.                 DB #7F,#FF,#FE,#03,#00,#C0,#9F,#FF,#F9,#AD,#AA,#AA,#95,#55,#51,#01,#00,#80,#C0,#00,#03,#FE,#FF,#7F
  2618.                 DB #46,#46,#46
  2619.  
  2620. FLAMESPR        DB #FF,#00,#FF,#00,#FF,#00,#FF,#00,#DD,#00,#FF,#00,#FF,#00,#88,#22
  2621.                 DB #FF,#00,#FF,#00,#DD,#00,#FE,#00,#F8,#01,#45,#20,#DF,#00,#8F,#20
  2622.                 DB #00,#0A,#F0,#04,#F8,#00,#00,#81,#1F,#00,#17,#00,#00,#28,#E0,#00
  2623.                 DB #C0,#12,#00,#7D,#03,#48,#17,#00,#00,#BE,#E0,#00,#C0,#01,#00,#FF
  2624.                 DB #0B,#20,#11,#84,#00,#FF,#80,#24,#C0,#01,#00,#FF,#0B,#20,#1B,#80
  2625.                 DB #00,#7F,#E0,#04,#E0,#00,#00,#FE,#31,#04,#1B,#40,#00,#5B,#C0,#12
  2626.                 DB #EC,#00,#00,#12,#3F,#00,#6F,#00,#00,#81,#F8,#00,#F0,#04,#00,#14
  2627.                 DB #C7,#10,#AF,#00,#01,#00,#FA,#00,#FC,#01,#09,#00,#1F,#40,#BF,#00
  2628.                 DB #88,#22,#FE,#00,#FF,#00,#DD,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00
  2629.  
  2630. FLAMESPR2       DB #FF,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00
  2631.                 DB #FF,#00,#FF,#00,#F7,#00,#FF,#00,#FF,#00,#63,#08,#7F,#00,#3F,#80
  2632.                 DB #34,#80,#FE,#00,#FD,#00,#18,#42,#7F,#00,#6F,#00,#80,#2D,#F8,#02
  2633.                 DB #FD,#00,#80,#A5,#07,#90,#2F,#00,#00,#42,#F6,#00,#E0,#09,#00,#1D
  2634.                 DB #1F,#40,#37,#80,#00,#BE,#F6,#00,#F4,#01,#00,#3E,#23,#08,#77,#40
  2635.                 DB #00,#5C,#E2,#08,#F6,#00,#00,#A2,#7F,#80,#DF,#00,#00,#49,#FD,#00
  2636.                 DB #F8,#02,#C5,#14,#8F,#20,#DF,#00,#E6,#00,#FD,#00,#FF,#00,#C0,#09
  2637.                 DB #7F,#00,#FF,#00,#86,#20,#FF,#00,#FF,#00,#DF,#00,#FF,#00,#FF,#00
  2638.                 DB #FF,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00
  2639.  
  2640. SHOTEXP1        DB #F6,#00,#40,#15,#40,#1B,#3F,#00,#17,#80,#00,#2E,#00,#A9,#E0,#00
  2641.                 DB #C0,#08,#00,#1B,#00,#85,#03,#40,#01,#88,#00,#A0,#00,#23,#C0,#04
  2642.                 DB #80,#10,#00,#83,#00,#82,#03,#30,#03,#70,#00,#88,#00,#27,#C0,#0C
  2643.                 DB #80,#17,#00,#87,#00,#C0,#01,#D0,#00,#94,#00,#DD,#00,#EC,#00,#2E
  2644.  
  2645.                 DB #C7,#7B,#23,#C2,#E6,#DD,#87,#63,#33,#3F,#BE,#CC,#42,#FF,#7F,#96
  2646.                 DB #42,#F3,#FF,#57,#8A,#3E,#E1,#64,#14,#F0,#1C,#A5,#CA,#1E,#79,#4C
  2647.  
  2648.                 DB #3E,#7B,#BF,#70,#7E,#3E,#31,#FF,#1F,#9C,#3E,#FF,#F8,#9D,#9E,#07
  2649.                 DB #A1,#3F,#FA,#E1,#81,#FE,#3F,#55,#60,#9A,#7D,#06,#4A,#BA,#45,#30
  2650.  
  2651.                 DB #00,#22,#00,#EF,#00,#46,#03,#40,#01,#28,#00,#1E,#00,#F0,#80,#10
  2652.                 DB #C0,#05,#00,#E2,#00,#0F,#03,#10,#07,#40,#00,#07,#00,#C0,#80,#11
  2653.                 DB #C0,#0B,#00,#09,#00,#43,#07,#20,#0F,#00,#00,#11,#00,#13,#E0,#02
  2654.                 DB #F0,#00,#00,#2B,#00,#C8,#5F,#00,#FF,#00,#08,#74,#94,#01,#FD,#00
  2655.  
  2656.                 DB #00,#46,#46,#00
  2657.                 DB #06,#57,#57,#46
  2658.                 DB #06,#57,#57,#46
  2659.                 DB #00,#06,#46,#00
  2660.  
  2661. SHOTEXP2        DB #E0,#00,#12,#2D,#0C,#20,#BF,#00,#0F,#00,#00,#82,#00,#76,#C0,#05
  2662.                 DB #80,#13,#00,#8D,#00,#09,#07,#40,#03,#10,#00,#84,#00,#46,#C0,#01
  2663.                 DB #80,#15,#00,#30,#00,#70,#01,#28,#00,#90,#00,#F9,#00,#7C,#00,#20
  2664.                 DB #00,#04,#00,#BE,#00,#FF,#00,#EA,#00,#D0,#00,#FF,#00,#FF,#00,#40
  2665.  
  2666.                 DB #21,#FF,#FF,#E1,#F2,#EF,#BF,#44,#A7,#DD,#9F,#F4,#FA,#8F,#E0,#4F
  2667.                 DB #1F,#B0,#05,#FC,#FA,#93,#E4,#1B,#9F,#62,#A3,#B0,#C0,#C3,#C1,#0F
  2668.  
  2669.                 DB #4F,#87,#F5,#C2,#E8,#C1,#61,#A7,#DF,#F3,#60,#F5,#F2,#33,#F6,#5E
  2670.                 DB #97,#F8,#0E,#F9,#FA,#D7,#F0,#6F,#AF,#DD,#EF,#F0,#E2,#FE,#BF,#4F
  2671.  
  2672.                 DB #C0,#04,#00,#FE,#00,#FF,#03,#E0,#01,#C8,#00,#7F,#00,#7F,#80,#01
  2673.                 DB #00,#22,#00,#FA,#00,#FF,#00,#04,#01,#80,#00,#6B,#00,#FD,#80,#00
  2674.                 DB #80,#12,#00,#79,#00,#E7,#01,#28,#03,#90,#00,#D8,#00,#30,#C0,#05
  2675.                 DB #E0,#00,#00,#02,#00,#3F,#07,#80,#2F,#00,#00,#97,#18,#23,#FA,#00
  2676.  
  2677.                 DB #00,#46,#46,#00
  2678.                 DB #06,#56,#56,#46
  2679.                 DB #06,#16,#56,#46
  2680.                 DB #00,#06,#46,#00
  2681.  
  2682. SHOTEXP3        DB #F4,#00,#00,#C2,#00,#92,#3F,#00,#0F,#80,#00,#2F,#00,#E9,#E0,#01
  2683.                 DB #C0,#09,#00,#9C,#00,#77,#07,#C0,#03,#90,#00,#FF,#00,#7B,#E0,#02
  2684.                 DB #E0,#06,#00,#FF,#00,#F7,#01,#28,#00,#BC,#00,#FF,#00,#7F,#C0,#0A
  2685.                 DB #C0,#0D,#00,#FF,#00,#FF,#00,#78,#00,#B6,#00,#DD,#00,#F2,#80,#13
  2686.  
  2687.                 DB #3B,#61,#58,#7F,#BF,#01,#01,#5F,#8B,#43,#83,#FE,#FE,#8D,#B3,#5F
  2688.                 DB #3E,#9F,#D9,#3C,#7E,#70,#8C,#3F,#1F,#0B,#B0,#FF,#FF,#D8,#34,#AE
  2689.  
  2690.                 DB #1C,#F6,#5E,#FF,#7F,#B8,#1B,#2E,#7F,#0C,#60,#3E,#FC,#E0,#06,#7F
  2691.                 DB #FA,#0C,#61,#F8,#FC,#31,#18,#FC,#7D,#10,#02,#FC,#F8,#C2,#01,#2E
  2692.  
  2693.                 DB #80,#16,#00,#23,#00,#F1,#07,#E0,#07,#40,#00,#FB,#00,#CE,#00,#39
  2694.                 DB #80,#16,#00,#FD,#00,#FE,#03,#D0,#07,#E0,#00,#FF,#00,#5F,#C0,#0E
  2695.  
  2696.                 DB #C0,#0C,#00,#AF,#00,#0E,#07,#A0,#0F,#C0,#00,#5E,#00,#5E,#E0,#03
  2697.                 DB #F0,#01,#00,#FC,#00,#ED,#1F,#00,#3F,#00,#12,#40,#03,#38,#FC,#00
  2698.  
  2699.                 DB #00,#46,#46,#00
  2700.                 DB #06,#57,#57,#46
  2701.                 DB #06,#17,#57,#46
  2702.                 DB #00,#06,#06,#00
  2703.  
  2704. SHOTEXP4        DB #F8,#00,#98,#64,#02,#98,#1F,#00,#0F,#80,#00,#7D,#00,#BB,#F0,#02
  2705.                 DB #E0,#06,#00,#7D,#00,#FB,#07,#A0,#03,#70,#00,#30,#00,#A2,#C0,#0C
  2706.                 DB #80,#1C,#00,#03,#00,#00,#01,#38,#00,#5C,#00,#04,#00,#03,#80,#19
  2707.                 DB #00,#28,#00,#27,#00,#90,#00,#AC,#00,#5C,#00,#81,#00,#57,#80,#10
  2708.  
  2709.                 DB #38,#27,#84,#0E,#36,#C0,#86,#1D,#4F,#AF,#C1,#EF,#CD,#77,#FC,#2D
  2710.                 DB #78,#F3,#9F,#9E,#3C,#6F,#67,#70,#E2,#4F,#EE,#3C,#1A,#74,#CE,#50
  2711.  
  2712.                 DB #F3,#CD,#24,#1C,#9E,#77,#C4,#67,#DF,#63,#EF,#EF,#1B,#CE,#E6,#61
  2713.                 DB #30,#71,#10,#9D,#1E,#F0,#3F,#5A,#2C,#3F,#E2,#2E,#7E,#F0,#5C,#1C
  2714.  
  2715.                 DB #80,#18,#00,#78,#00,#70,#00,#74,#01,#38,#00,#39,#00,#72,#00,#2A
  2716.                 DB #80,#14,#00,#E0,#00,#18,#01,#38,#01,#58,#00,#0C,#00,#CD,#80,#10
  2717.                 DB #80,#1A,#00,#BF,#00,#85,#03,#B0,#07,#E0,#00,#E3,#00,#3D,#C0,#0F
  2718.                 DB #E0,#07,#00,#F8,#00,#F7,#0F,#80,#1F,#00,#00,#3C,#02,#E0,#F0,#00
  2719.  
  2720.                 DB #00,#46,#46,#00
  2721.                 DB #46,#57,#47,#46
  2722.                 DB #46,#57,#47,#46
  2723.                 DB #00,#46,#46,#00
  2724.  
  2725. ;****************************************************************************
  2726.  
  2727. WEAPONSPRITE5
  2728.  
  2729. SHOTGUNSPRT     DB #FE,#00,#7F,#00,#3F,#00,#FC,#00,#F8,#01,#1F,#80,#0F,#40,#F0,#02
  2730.                 DB #E0,#06,#0F,#40,#07,#E0,#E0,#04,#E0,#05,#07,#20,#07,#20,#E0,#05
  2731.                 DB #E0,#05,#07,#20,#07,#20,#E0,#05,#C0,#04,#07,#20,#03,#20,#80,#19
  2732.                 DB #00,#26,#01,#58,#00,#B4,#00,#2A,#00,#2A,#00,#94,#00,#24,#00,#2A
  2733.                 DB #00,#2A,#00,#24,#00,#04,#00,#2A,#00,#2E,#00,#04,#00,#54,#00,#20
  2734.                 DB #80,#11,#00,#6C,#01,#40,#C0,#0A,#E0,#04,#03,#40,#07,#60,#C0,#0C
  2735.                 DB #80,#10,#03,#10,#01,#08,#00,#20,#00,#20,#01,#08,#01,#08,#00,#21
  2736.                 DB #80,#12,#03,#90,#07,#60,#C0,#0C,#E1,#00,#0F,#00,#9F,#00,#F3,#00
  2737.  
  2738. THREEWAYSPRT    DB #F0,#00,#0F,#00,#07,#00,#E0,#00,#C0,#0F,#03,#F0,#01,#18,#80,#18
  2739.                 DB #80,#14,#01,#28,#01,#C8,#80,#13,#C0,#08,#03,#10,#01,#18,#80,#18
  2740.                 DB #00,#22,#00,#44,#00,#B4,#00,#2D,#00,#26,#00,#74,#00,#24,#00,#24
  2741.                 DB #00,#20,#00,#04,#00,#44,#00,#22,#00,#25,#00,#24,#00,#94,#00,#2B
  2742.                 DB #80,#15,#01,#48,#01,#10,#C0,#08,#C0,#08,#00,#3C,#00,#44,#80,#15
  2743.                 DB #80,#15,#00,#54,#00,#44,#80,#15,#80,#15,#00,#44,#01,#18,#80,#10
  2744.                 DB #C0,#0A,#03,#B0,#07,#40,#E0,#04,#C0,#0A,#07,#A0,#03,#90,#C0,#0A
  2745.                 DB #E0,#04,#03,#10,#07,#E0,#F0,#03,#F8,#00,#0F,#00,#1F,#00,#FC,#00
  2746.  
  2747. FLAMESPRT       DB #FE,#00,#FF,#00,#6F,#00,#EC,#00,#C0,#01,#07,#00,#03,#90,#80,#12
  2748.                 DB #00,#2C,#01,#68,#00,#44,#00,#20,#00,#24,#00,#A4,#01,#08,#80,#10
  2749.                 DB #00,#24,#00,#A4,#00,#A4,#00,#24,#80,#10,#01,#08,#00,#A4,#00,#24
  2750.                 DB #00,#24,#00,#A4,#01,#08,#80,#10,#00,#24,#00,#A4,#00,#A4,#00,#24
  2751.                 DB #00,#20,#01,#08,#01,#68,#80,#16,#00,#26,#01,#68,#01,#08,#00,#20
  2752.                 DB #00,#20,#03,#10,#01,#68,#00,#26,#00,#26,#01,#68,#01,#10,#00,#20
  2753.                 DB #00,#20,#00,#9C,#00,#44,#00,#28,#00,#28,#00,#74,#00,#84,#00,#24
  2754.                 DB #80,#10,#00,#FC,#01,#80,#C0,#0F,#E0,#00,#03,#00,#7F,#00,#F0,#00
  2755.  
  2756. POWERUPSPRT     DB #F2,#00,#4F,#00,#07,#00,#E0,#00,#C0,#0D,#03,#B0,#01,#48,#80,#12
  2757.                 DB #80,#12,#01,#48,#01,#D8,#80,#16,#80,#12,#01,#48,#01,#F8,#80,#1F
  2758.                 DB #C0,#00,#03,#00,#03,#00,#C0,#00,#C0,#0D,#03,#B0,#01,#48,#80,#12
  2759.                 DB #80,#12,#01,#48,#01,#D8,#80,#16,#80,#12,#01,#48,#01,#F8,#80,#1F
  2760.                 DB #C0,#00,#03,#00,#03,#00,#C0,#00,#C0,#0D,#03,#B0,#01,#48,#80,#12
  2761.                 DB #80,#12,#01,#48,#01,#D8,#80,#16,#80,#12,#01,#48,#01,#F8,#80,#1F
  2762.                 DB #00,#3D,#01,#F8,#00,#04,#00,#22,#00,#2E,#00,#94,#00,#94,#00,#22
  2763.                 DB #80,#1A,#00,#94,#00,#04,#00,#22,#80,#1D,#01,#F8,#03,#00,#C2,#00
  2764.  
  2765. FULLAUTOSPRT    DB #F8,#00,#7F,#00,#3F,#00,#F0,#00,#E0,#07,#1F,#80,#0F,#80,#E0,#04
  2766.                 DB #C0,#0D,#07,#E0,#07,#20,#C0,#08,#80,#1D,#03,#70,#01,#08,#00,#20
  2767.                 DB #00,#20,#01,#08,#03,#90,#80,#13,#00,#20,#01,#08,#01,#08,#00,#20
  2768.                 DB #80,#13,#03,#90,#01,#08,#00,#20,#00,#20,#01,#08,#01,#50,#80,#10
  2769.                 DB #C0,#0E,#00,#3C,#00,#44,#80,#10,#00,#20,#00,#34,#00,#24,#00,#2B
  2770.                 DB #00,#24,#00,#84,#01,#88,#00,#24,#00,#23,#03,#70,#07,#40,#80,#10
  2771.                 DB #C0,#0C,#0F,#C0,#0F,#40,#C0,#08,#80,#16,#07,#20,#07,#20,#80,#14
  2772.                 DB #80,#10,#07,#20,#07,#E0,#80,#1F,#C0,#00,#0F,#00,#1F,#00,#E0,#00
  2773.  
  2774. SCHARGESPRT1    DB #FB,#00,#1F,#00,#0F,#40,#D0,#00,#80,#04,#07,#A0,#07,#40,#00,#2A
  2775.                 DB #80,#04,#03,#10,#07,#80,#80,#00,#00,#21,#0F,#40,#17,#80,#80,#00
  2776.                 DB #C0,#04,#23,#00,#41,#08,#C0,#0A,#E0,#04,#83,#00,#07,#20,#E1,#00
  2777.                 DB #C0,#08,#03,#50,#01,#50,#80,#14,#C0,#09,#00,#8C,#00,#02,#E0,#02
  2778.                 DB #F0,#01,#00,#8C,#01,#50,#FC,#00,#EE,#00,#03,#50,#07,#20,#C6,#00
  2779.                 DB #80,#10,#0B,#80,#11,#00,#00,#28,#00,#44,#60,#04,#C1,#00,#01,#28
  2780.                 DB #83,#10,#83,#10,#01,#28,#C1,#08,#80,#14,#00,#44,#01,#28,#00,#22
  2781.                 DB #80,#14,#83,#10,#C7,#00,#C1,#08,#E3,#00,#EF,#00,#FF,#00,#F7,#00
  2782.  
  2783. SCHARGESPRT2    DB #DF,#00,#BF,#00,#0F,#00,#8B,#00,#00,#20,#07,#40,#03,#10,#00,#54
  2784.                 DB #00,#20,#01,#28,#03,#10,#00,#20,#00,#50,#03,#80,#01,#08,#00,#24
  2785.                 DB #80,#0A,#00,#14,#00,#22,#80,#11,#C0,#0A,#00,#14,#81,#08,#80,#14
  2786.                 DB #00,#22,#03,#00,#07,#20,#00,#41,#00,#22,#03,#50,#01,#88,#80,#14
  2787.                 DB #C0,#08,#03,#50,#07,#20,#E3,#00,#F6,#00,#0F,#00,#1B,#80,#EC,#00
  2788.                 DB #C8,#01,#01,#40,#00,#84,#84,#10,#02,#28,#00,#0A,#00,#14,#83,#10
  2789.                 DB #C1,#08,#01,#28,#00,#44,#80,#14,#00,#22,#00,#82,#00,#44,#00,#41
  2790.                 DB #00,#22,#01,#28,#83,#10,#80,#14,#C1,#08,#C7,#00,#EF,#00,#E3,#00
  2791.  
  2792. BARRIERSPR      DB #F8,#00,#0F,#00,#07,#00,#F0,#00,#E0,#07,#03,#F0,#01,#08,#C0,#08
  2793.                 DB #80,#11,#00,#C4,#00,#20,#80,#02,#00,#34,#00,#16,#00,#16,#00,#34
  2794.                 DB #00,#34,#00,#16,#00,#16,#00,#34,#80,#02,#00,#20,#00,#C4,#80,#11
  2795.                 DB #C0,#08,#01,#08,#03,#F0,#E0,#07,#F0,#00,#07,#00,#0F,#00,#F8,#00
  2796.                 DB #FC,#00,#1F,#00,#0F,#00,#F8,#00,#F0,#03,#07,#E0,#03,#30,#E0,#06
  2797.                 DB #E0,#04,#03,#90,#03,#80,#E0,#00,#C0,#0C,#01,#58,#01,#58,#C0,#0C
  2798.                 DB #C0,#0C,#01,#58,#01,#58,#C0,#0C,#E0,#00,#03,#80,#03,#90,#E0,#04
  2799.                 DB #E0,#06,#03,#30,#07,#E0,#F0,#03,#F8,#00,#0F,#00,#1F,#00,#FC,#00
  2800.                 DB #FE,#00,#3F,#00,#1F,#00,#FC,#00,#F8,#01,#0F,#C0,#07,#20,#F0,#02
  2801.                 DB #F0,#02,#07,#20,#0F,#00,#F8,#00,#F0,#03,#07,#E0,#07,#E0,#F0,#03
  2802.                 DB #F0,#03,#07,#E0,#07,#E0,#F0,#03,#F8,#00,#0F,#00,#07,#20,#F0,#02
  2803.                 DB #F0,#02,#07,#20,#0F,#C0,#F8,#01,#FC,#00,#1F,#00,#3F,#00,#FE,#00
  2804.                 DB #FC,#00,#1F,#00,#0F,#00,#F8,#00,#F0,#03,#07,#E0,#03,#30,#E0,#06
  2805.                 DB #E0,#04,#03,#90,#03,#80,#E0,#00,#C0,#0D,#01,#18,#01,#18,#C0,#0D
  2806.                 DB #C0,#0D,#01,#18,#01,#18,#C0,#0D,#E0,#00,#03,#80,#03,#90,#E0,#04
  2807.                 DB #E0,#06,#03,#30,#07,#E0,#F0,#03,#F8,#00,#0F,#00,#1F,#00,#FC,#00
  2808.  
  2809. BACKPACKSPR     DB #F8,#00,#1F,#00,#0F,#00,#F0,#00,#C0,#07,#03,#E0,#01,#10,#80,#08
  2810.                 DB #00,#33,#00,#CC,#00,#44,#00,#22,#00,#2B,#00,#D4,#01,#28,#80,#14
  2811.                 DB #80,#12,#01,#48,#01,#18,#80,#18,#00,#22,#00,#44,#00,#C4,#00,#23
  2812.                 DB #00,#22,#00,#44,#01,#38,#80,#1C,#C1,#00,#83,#00,#C7,#00,#E3,#00
  2813.  
  2814. EXTRALIFESPRT   DB #00,#00,#00,#00,#00,#FE,#00,#7F,#00,#40,#00,#02,#00,#FA,#00,#5F
  2815.                 DB #00,#40,#00,#02,#00,#D2,#00,#5D,#00,#5A,#00,#52,#00,#52,#00,#54
  2816.                 DB #00,#57,#00,#52,#00,#52,#00,#52,#00,#5A,#00,#52,#00,#42,#00,#52
  2817.                 DB #00,#54,#00,#22,#00,#22,#00,#44,#00,#57,#00,#E2,#00,#02,#00,#40
  2818.                 DB #00,#40,#00,#02,#00,#FE,#00,#7F,#00,#00,#00,#00,#FF,#00,#FF,#00
  2819.  
  2820. ;*******************************************************************************
  2821.  
  2822. GMX             EQU 25
  2823.  
  2824. WEAPONROOM      XOR A:LD (MAPX),A:LD (MAPDIR),A
  2825.                 LD (ONLADDER+1),A
  2826.                 LD A,$FF:LD (SETUD+1),A
  2827.                 LD A,GMX*2-26:LD (RIGHTMAX+1),A
  2828.                 LD A,GMX:LD (MAPXSIZE),A
  2829.                 LD HL,GRCHRS:LD (DMPCHRAD+1),HL
  2830.                 LD HL,GRATRS:LD (DMPATRAD+1),HL
  2831.                 LD HL,GRBLOX:LD (BLOXAD1+1),HL:LD (BLOXAD2+1),HL
  2832.                 LD HL,GRMAP:LD (MAP),HL
  2833.                 LD A,$F0:LD (MAPY),A
  2834.  
  2835.                 LD DE,$0018
  2836. SHOWEPRM        PUSH DE:CALL UPDATEX:POP DE:DEC E:DEC E:JP P,SHOWEPRM
  2837.  
  2838.                 LD HL,500:LD (WEPAMOUNT),HL:LD A,50:LD (PAKAMOUNT),A
  2839.  
  2840.                 LD DE,$6820:LD (HEROX+1),DE
  2841.                 LD A,D:SUB $10:LD D,A:LD (GUNX+1),DE
  2842.                 XOR A:LD (HEROF+1),A:LD (HEROG+1),A
  2843.                 CALL RESETBAD
  2844.  
  2845. WAPINITAD       LD HL,WAPTABLE
  2846.                 LD IX,WAPXYS:LD DE,5:LD BC,$060C
  2847. SETWAPS         LD (IX+00),C:LD A,C:ADD A,6:LD C,A:LD (IX+01),$30
  2848.                 LD A,(HL):INC HL:LD (IX+02),A:LD (IX+03),$80
  2849.                 LD A,(HL):INC HL:LD (IX+04),A:ADD IX,DE:DJNZ SETWAPS
  2850.  
  2851.                 LD A,1:LD (NOSCROLL+1),A
  2852. WEAPONROOMLOOP  XOR A:LD (RETMODE),A
  2853.  
  2854.                 LD A,(LEVEL):PUSH AF:XOR A:LD (LEVEL),A
  2855.                 LD A,1:LD (WEPFLRCOL+1),A:CALL DOALLBACKBITS
  2856.                 CALL READKEYS:CALL DECODE:XOR A:LD (WEPFLRCOL+1),A
  2857.                 POP AF:LD (LEVEL),A
  2858.  
  2859.                 LD A,(RETMODE):OR A:RET NZ
  2860.                 LD A,NXTLEV:LD (RETMODE),A
  2861.                 LD A,(HEROX+1):CP $C8:RET Z
  2862.  
  2863.                 LD A,(FUDLR):AND $40:CALL NZ,PAUSE0
  2864.                 JP WEAPONROOMLOOP
  2865. ;               LD A,BREAK:LD (RETMODE),A
  2866. ;               LD A,1Z7:IN A,(254):RRA :JP C,WEAPONROOMLOOP
  2867. ;               LD A,254:IN A,(254):RRA :JP C,WEAPONROOMLOOP:RET
  2868.  
  2869. ;***************************************
  2870.  
  2871. PRTWAPS         LD A,(POS):AND 3:LD DE,64:LD HL,BARRIERSPR:CALL MULT
  2872.                 LD (BARANI),HL
  2873.                 LD A,(POS):AND 1:LD DE,128:LD HL,SCHARGESPRT1:CALL MULT
  2874.                 LD (SCHANI),HL
  2875.  
  2876.                 LD IX,WAPXYS:LD B,6
  2877. PRTWAPBLP       PUSH BC:LD A,(IX+02):CP $FF:JP Z,NOPWAP:LD D,(IX+01)
  2878.                 LD A,(IX+03):CP $80:JR Z,NOPWAPS
  2879.                 CP 20:JR Z,NOPWAPS
  2880.                 INC A:CP 10:JR Z,NOPWAPZ:LD (IX+03),A
  2881. NOPWAPZ         ADD A,(IX+01):LD D,A
  2882.                 JP P,NOPWAPS:CP $90:JR NC,NOPWAPS
  2883.                 LD (IX+02),$FF:JP NOPWAP
  2884. NOPWAPS
  2885.                 LD E,(IX+00):LD A,(MAPY):CP $F0:JR Z,MASDA
  2886.                 LD A,(LEVEL):CP 7:JR Z,MAZDA
  2887. MASDA           LD HL,(MAPX):LD A,E:SUB L
  2888.                 ADD A,A:ADD A,A:ADD A,A:LD E,A
  2889. MAZDA
  2890.                 LD C,1:CALL TASTEFLOOR:JR NC,NSTFLS
  2891.                 LD (IX+03),20
  2892.  
  2893.                 LD A,(IX+02):SUB 11:JR C,NSTFLS
  2894.                 ADD A,A:ADD A,A:ADD A,A:ADD A,199:LD (SETEE+1),A
  2895.                 DB 62
  2896. SAVORS          DB 0
  2897. SETEE           SET 0,A:LD (SAVORS),A
  2898.                 LD HL,SAVEDPEOPLE+1:INC (HL)
  2899.                 LD A,(RND1):AND 15:CP 11:JR C,ARR:SUB 11
  2900. ARR             LD (IX+02),A
  2901.  
  2902. NSTFLS          LD (IX+01),D:LD A,(MAPY):CP $F0:JR Z,ESRA
  2903.                 LD A,(LEVEL):CP 7:JR Z,EZRA
  2904. ESRA            LD DE,(MAPX):LD A,(IX+00)
  2905.                 SUB E:JP C,NOPWAP:CP 30:JP NC,NOPWAP
  2906.                 ADD A,A:ADD A,A:ADD A,A:LD E,A
  2907. EZRA
  2908.                 LD D,(IX+01)
  2909.                 LD HL,WAPTYPES+3:LD A,(IX+02):ADD A,A:ADD A,A
  2910.                 CALL ADDHLA
  2911.                 LD (HEREXY+1),DE
  2912.                 LD A,D:ADD A,(HL):LD D,A:DEC HL:LD B,(HL):DEC HL
  2913.                 LD A,(HL):DEC HL:LD L,(HL):LD H,A
  2914.                 LD A,D:ADD A,B:ADD A,B:OR A:JP M,NOPWAP
  2915.                 LD C,B:LD B,2:CALL MASKCXB
  2916. HEREXY          LD DE,0
  2917.                 LD A,(IX+3):CP $80:LD B,(IX+4):CALL Z,PRTNUMKEY
  2918.  
  2919.                 LD D,8:LD HL,(HEROX+1):LD H,32:CALL HITA:JR C,NOPWAP
  2920.                 LD E,(IX+01):LD D,32:LD A,(HEROX+2):SUB $10:LD L,A
  2921.                 LD H,32:CALL HITA:JR C,NOPWAP
  2922.  
  2923.                 LD A,(KEYSCOLLECTED+1):SUB (IX+04):JR C,NOPWAP
  2924.                 LD (KEYSCOLLECTED+1),A
  2925.  
  2926.                 LD A,(IX+03):CP $80:JR Z,JUMPWAP
  2927.                 CP 20:JR NZ,NOPWAP
  2928.  
  2929.                 LD DE,0*256+2:CALL ADDSCORE
  2930.  
  2931.                 LD A,(IX+02):ADD A,A:LD E,A:LD D,0:LD HL,FNI
  2932.                 ADD HL,DE:LD E,(HL):INC HL:LD D,(HL):EX DE,HL
  2933.                 CALL JPHL:LD (IX+02),$FF:JR NOPWAP
  2934. JUMPWAP         LD (IX+03),-8:LD (IX+04),0
  2935. NOPWAP          POP BC:LD DE,5:ADD IX,DE:DEC B:JP NZ,PRTWAPBLP:RET
  2936. PRTNUMKEY       DEC B:RET M
  2937.                 PUSH BC:PUSH DE
  2938.                 LD HL,SMOFDE:LD A,B:ADD A,A:ADD A,B:ADD A,L:LD L,A
  2939.                 ADC A,H:SUB L:LD H,A:LD A,D:ADD A,$18:LD D,A:LD B,3
  2940. PRTNUMKEYBLP    LD A,(HL):INC HL:SUB 8:PUSH HL:JR C,NOKEYCH
  2941.                 LD HL,KEYCHRS:CALL ADDHLA
  2942.                 CALL DMPHLCHR
  2943. NOKEYCH         LD A,E:ADD 8:LD E,A:POP HL:DJNZ PRTNUMKEYBLP
  2944. DEK
  2945.                 LD A,(IX+02):ADD A,A:LD HL,WEPNAMESAD:LD E,A:LD D,0
  2946.                 ADD HL,DE:LD E,(HL):INC HL:LD D,(HL):EX DE,HL
  2947.                 POP DE:PUSH DE:LD A,D:SUB $20:LD D,A
  2948.                 LD A,E:SUB 8:LD E,A:LD BC,$0503:CALL BAXIT:POP DE
  2949.  
  2950.                 POP BC:INC B:LD A,(KEYSCOLLECTED+1):CP B:RET C
  2951.  
  2952.                 PUSH DE:LD A,(POS):AND 1:JR Z,NOF
  2953.                 LD D,$18:LD A,(HEROX+1):ADD A,8:LD L,A:LD H,$10
  2954.                 CALL HITA:JR C,NOF:POP DE:PUSH DE:LD A,D:ADD A,$18
  2955.                 LD D,A:LD A,E:SUB 8:LD E,A:CALL BATAD
  2956.                 LD A,#46:LD (HL),A:INC L:LD (HL),A:INC L
  2957.                 LD (HL),A:INC L:LD (HL),A:INC L:LD (HL),A
  2958. NOF             POP DE:RET
  2959.  
  2960. SMOFDE          DB #00,#18,#00
  2961.                 DB #00,#10,#00
  2962.                 DB #08,#10,#00
  2963.                 DB #08,#10,#18
  2964.                 DB #10,#10,#18
  2965.                 DB #10,#10,#10
  2966.  
  2967. KEYCHRS
  2968.                 DB %00000000
  2969.                 DB %11111111
  2970.                 DB %11111000
  2971.                 DB %11111000
  2972.                 DB %11111101
  2973.                 DB %11111101
  2974.                 DB %11111111
  2975.                 DB %00000000
  2976.  
  2977.                 DB %00000000
  2978.                 DB %11111111
  2979.                 DB %10001000
  2980.                 DB %10001000
  2981.                 DB %11011101
  2982.                 DB %11011101
  2983.                 DB %11111111
  2984.                 DB %00000000
  2985.  
  2986.                 DB %00000000
  2987.                 DB %11111111
  2988.                 DB %10001111
  2989.                 DB %10001111
  2990.                 DB %11011111
  2991.                 DB %11011111
  2992.                 DB %11111111
  2993.                 DB %00000000
  2994.  
  2995. WEPNAMESAD      DW WEPNAMES+00*30
  2996.                 DW WEPNAMES+01*30
  2997.                 DW WEPNAMES+02*30
  2998.                 DW WEPNAMES+03*30
  2999.                 DW WEPNAMES+04*30
  3000.                 DW WEPNAMES+05*30
  3001.                 DW WEPNAMES+06*30
  3002.                 DW WEPNAMES+07*30
  3003.                 DW WEPNAMES+08*30
  3004.                 DW WEPNAMES+09*30
  3005.                 DW WEPNAMES+10*30
  3006.                 DW WEPNAMES+11*30
  3007.                 DW WEPNAMES+11*30
  3008.                 DW WEPNAMES+11*30
  3009.                 DW WEPNAMES+11*30
  3010.                 DW WEPNAMES+11*30
  3011.                 DW WEPNAMES+11*30
  3012.  
  3013. WEPNAMES
  3014.                 DB #0E,#A8,#82,#57,#20,#50,#52,#85,#A8,#08,#0C,#A8,#87,#52,#50,#50
  3015.                 DB #52,#85,#A8,#08,#08,#6E,#E5,#32,#20,#00,#00,#00,#00,#00
  3016.                 DB #00,#30,#44,#94,#00,#00,#54,#45,#08,#00,#00,#13,#45,#C8,#00,#00
  3017.                 DB #48,#55,#08,#00,#00,#30,#29,#48,#00,#00,#00,#00,#00,#00
  3018.                 DB #00,#03,#AC,#E0,#00,#00,#80,#2A,#02,#00,#00,#03,#2C,#C0,#00,#00
  3019.                 DB #80,#2A,#02,#00,#00,#02,#2A,#E0,#00,#00,#00,#00,#00,#00
  3020.                 DB #01,#A9,#38,#95,#40,#C0,#55,#91,#2A,#02,#01,#3A,#91,#15,#C0,#C0
  3021.                 DB #55,#91,#AA,#00,#03,#29,#10,#CD,#40,#00,#00,#00,#00,#00
  3022.                 DB #01,#95,#11,#DC,#C0,#00,#09,#11,#55,#01,#01,#95,#11,#88,#80,#40
  3023.                 DB #08,#11,#55,#01,#01,#CD,#DD,#C9,#80,#00,#00,#00,#00,#00
  3024.                 DB #00,#0A,#BB,#10,#00,#00,#A8,#92,#0E,#00,#00,#0E,#93,#28,#00,#00
  3025.                 DB #A8,#92,#0E,#00,#00,#0A,#92,#90,#00,#00,#00,#00,#00,#00
  3026.                 DB #00,#6A,#48,#BB,#00,#80,#A2,#A8,#8A,#00,#00,#4E,#A8,#B3,#00,#80
  3027.                 DB #A2,#AA,#2A,#00,#00,#CA,#45,#3A,#80,#00,#00,#00,#00,#00
  3028.                 DB #00,#52,#29,#52,#00,#00,#75,#55,#55,#00,#00,#75,#45,#74,#00,#00
  3029.                 DB #75,#45,#55,#00,#00,#52,#45,#53,#00,#00,#00,#00,#00,#00
  3030.                 DB #01,#89,#99,#76,#00,#00,#45,#55,#55,#01,#01,#9D,#99,#66,#00,#00
  3031.                 DB #45,#55,#55,#01,#01,#D5,#55,#75,#00,#00,#00,#00,#00,#00
  3032.                 DB #03,#0D,#49,#8D,#C0,#00,#51,#55,#11,#04,#02,#11,#DD,#95,#80,#00
  3033.                 DB #55,#55,#11,#01,#06,#4D,#55,#4D,#C0,#00,#00,#00,#00,#00
  3034.                 DB #00,#00,#42,#B0,#00,#00,#A8,#C2,#00,#00,#00,#00,#42,#B0,#00,#00
  3035.                 DB #A0,#42,#00,#00,#00,#00,#E3,#A0,#00,#00,#00,#00,#00,#00
  3036.                 DB #00,#00,#04,#00,#00,#00,#00,#0A,#00,#00,#00,#00,#02,#00,#00,#00
  3037.                 DB #00,#04,#00,#00,#00,#00,#00,#00,#00,#00,#00,#04,#00,#00
  3038.  
  3039. DMPHLCHR        PUSH DE:PUSH BC:PUSH HL:CALL BIXAD:POP DE:LD BC,32:LD A,7
  3040. AFLP            EX AF,AF:LD A,(DE):LD (HL),A:ADD HL,BC:INC DE
  3041.                 EX AF,AF:DEC A:JP NZ,AFLP:LD A,(DE):LD (HL),A
  3042.                 POP BC:POP DE:RET
  3043.  
  3044. FNI             DW SETSHOT            ; 00
  3045.                 DW SETTHREE           ; 01
  3046.                 DW SETFLAME           ; 02
  3047.                 DW SETFULL            ; 03
  3048.                 DW ADDAMMO            ; 04
  3049.                 DW SETNITRO           ; 05
  3050.                 DW SETSHOWER          ; 06
  3051.                 DW SETHOMING          ; 07
  3052.                 DW SETBARRIER         ; 08
  3053.                 DW SETSUPER           ; 09
  3054.                 DW SET1UP             ; 10
  3055. ;                DW RETURN             ; 11
  3056. ;                DW RETURN             ; 12
  3057. ;                DW RETURN             ; 13
  3058. ;                DW RETURN             ; 14
  3059. ;                DW RETURN             ; 15
  3060. ;                DW RETURN             ; 16
  3061.  
  3062. WEPAMOUNT       DW 500
  3063. PAKAMOUNT       DB 50
  3064.  
  3065. SETSUPER        LD A,(WEPTYPE+1):OR A:RET Z
  3066.                 LD A,1:LD (WEPPOWER),A:RET
  3067.  
  3068. SET1UP          LD A,(LIVES):INC A:LD (LIVES),A:RET
  3069.  
  3070. SETFULL         XOR A:LD (WEPPOWER),A
  3071.                 LD A,4:LD (WEPTYPE+1),A
  3072.                 LD HL,(WEPAMOUNT):LD (AMMOLEFT+1),HL:RET
  3073. SETFLAME        XOR A:LD (WEPPOWER),A
  3074.                 LD A,1:LD (WEPTYPE+1),A
  3075.                 LD HL,(WEPAMOUNT):LD (AMMOLEFT+1),HL:RET
  3076. SETTHREE        XOR A:LD (WEPPOWER),A
  3077.                 LD A,2:LD (WEPTYPE+1),A
  3078.                 LD HL,(WEPAMOUNT):LD (AMMOLEFT+1),HL:RET
  3079. SETSHOT         XOR A:LD (WEPPOWER),A
  3080.                 LD A,3:LD (WEPTYPE+1),A
  3081.                 LD HL,(WEPAMOUNT):LD (AMMOLEFT+1),HL:RET
  3082. ADDAMMO         LD A,(WEPTYPE+1):OR A:RET Z
  3083.                 LD DE,(AMMOLEFT+1):LD HL,499:OR A:SBC HL,DE
  3084.                 JR NC,FJE:LD DE,499
  3085. FJE             LD HL,500:ADD HL,DE:LD (AMMOLEFT+1),HL:RET
  3086.  
  3087. SETNITRO        LD A,1:LD (PAKTYPE+1),A
  3088.                 LD A,(PAKAMOUNT):LD (BACKLEFT+1),A:RET
  3089. SETHOMING       LD A,2:LD (PAKTYPE+1),A
  3090.                 LD A,(PAKAMOUNT):LD (BACKLEFT+1),A:RET
  3091. SETSHOWER       LD A,3:LD (PAKTYPE+1),A
  3092.                 LD A,(PAKAMOUNT):LD (BACKLEFT+1),A:RET
  3093.  
  3094. SETBARRIER      LD HL,500:LD (PRTBARRIER+1),HL:RET
  3095.  
  3096. WAPXYS          DB $FF,$FF,$00,$80,$01
  3097.                 DB $FF,$FF,$01,$80,$02
  3098.                 DB $FF,$FF,$02,$80,$03
  3099.                 DB $FF,$FF,$03,$80,$04
  3100.                 DB $FF,$FF,$04,$80,$05
  3101.                 DB $FF,$FF,$05,$80,$06
  3102.  
  3103. WAPTYPES        DW SHOTGUNSPRT         ; SHOT GUN
  3104.                 DB 4*4,0-16
  3105.                 DW THREEWAYSPRT        ; 3 WAY
  3106.                 DB 4*4,0-16
  3107.                 DW FLAMESPRT           ; FLAME
  3108.                 DB 4*4,0-16
  3109.                 DW FULLAUTOSPRT        ; FULL AUTO
  3110.                 DB 4*4,0-16
  3111.                 DW POWERUPSPRT         ; AMMO
  3112.                 DB 4*4,0-16
  3113.                 DW BACKPACKSPR         ; NITRO
  3114.                 DB 2*4,0-08
  3115.                 DW BACKPACKSPR         ; SHOWER
  3116.                 DB 2*4,0-08
  3117.                 DW BACKPACKSPR         ; HOMING
  3118.                 DB 2*4,0-08
  3119. BARANI          DW BARRIERSPR          ; BARRIER
  3120.                 DB 2*4,0-08
  3121. SCHANI          DW SCHARGESPRT1        ; S.CHARGE
  3122.                 DB 4*4,0-16
  3123.                 DW EXTRALIFESPRT       ; 1 UP
  3124.                 DB 010,0-10
  3125.  
  3126. SP1             DS 6*4,0
  3127.  
  3128. ;****************************************
  3129. ;** GUN ROOM STUFF + ROUTINES          **
  3130. ;****************************************
  3131.  
  3132. GRCHRS          DB #AA,#55,#AA,#55,#AA,#55,#AA,#55,#00,#00,#00,#00,#00,#00,#00,#00
  3133.                 DB #41,#42,#41,#42,#41,#42,#41,#42,#5E,#9E,#5E,#9E,#5E,#9E,#5E,#9E
  3134.                 DB #00,#EF,#D0,#A7,#4F,#5D,#5C,#58,#00,#FF,#00,#FF,#FF,#54,#00,#A9
  3135.                 DB #5D,#58,#5D,#58,#5D,#58,#5C,#59,#53,#A7,#4F,#9E,#3D,#7A,#F5,#EA
  3136.                 DB #02,#F6,#0A,#E4,#F2,#FA,#FA,#FA,#FF,#FF,#F8,#F0,#F0,#F0,#F0,#F8
  3137.                 DB #DA,#BA,#1A,#BA,#1A,#BA,#1A,#BA,#FC,#FC,#F8,#F8,#F8,#F8,#F8,#FC
  3138.                 DB #BD,#42,#89,#9D,#9D,#9D,#4A,#4A,#50,#83,#00,#42,#05,#42,#85,#42
  3139.                 DB #00,#7F,#80,#17,#0F,#17,#0E,#01,#85,#42,#85,#42,#01,#42,#A0,#50
  3140.                 DB #00,#FF,#00,#A0,#5F,#A0,#4F,#47,#00,#FF,#00,#02,#FD,#06,#F3,#FA
  3141.                 DB #44,#40,#20,#9F,#40,#AA,#00,#00,#13,#02,#05,#FA,#05,#AA,#00,#00
  3142.                 DB #03,#FD,#06,#F2,#7A,#FA,#7A,#BA,#5A,#BA,#5A,#AA,#5A,#A6,#0D,#03
  3143.                 DB #41,#42,#41,#42,#41,#42,#41,#00,#5E,#9E,#5E,#9E,#5E,#9E,#5E,#00
  3144.                 DB #5F,#5F,#5F,#4F,#A7,#D0,#EF,#00,#D5,#80,#2A,#FF,#FF,#00,#FF,#00
  3145.                 DB #BF,#40,#8C,#9C,#9C,#8C,#40,#7F,#FF,#00,#FF,#00,#BD,#BD,#00,#FF
  3146.                 DB #1A,#3A,#BA,#F2,#E4,#0A,#F6,#00,#FE,#FC,#F8,#F0,#00,#E8,#00,#00
  3147.                 DB #FA,#04,#3A,#7A,#7A,#3A,#04,#F8,#F0,#F0,#F0,#F0,#00,#E8,#00,#00
  3148.                 DB #00,#07,#37,#37,#27,#17,#27,#40,#00,#FF,#FF,#FF,#FF,#FF,#FF,#00
  3149.                 DB #01,#02,#02,#06,#0A,#12,#2A,#5A,#FF,#00,#00,#00,#00,#00,#FF,#FF
  3150.                 DB #FF,#01,#01,#01,#01,#01,#C1,#C1,#00,#F6,#0A,#E4,#F2,#FA,#FA,#FA
  3151.                 DB #BA,#7A,#7A,#76,#6A,#52,#22,#42,#82,#02,#02,#06,#0A,#12,#2A,#5A
  3152.                 DB #FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF,#C1,#C1,#C1,#C1,#C1,#C1,#C1,#C1
  3153.                 DB #00,#1F,#1F,#1F,#1F,#1F,#1F,#00,#FF,#FF,#FF,#FF,#FF,#FF,#00,#FF
  3154.                 DB #C1,#C1,#C1,#C1,#C1,#C1,#01,#FF,#FD,#FE,#FE,#FE,#00,#54,#A8,#51
  3155.                 DB #FD,#FE,#FE,#FE,#00,#55,#A8,#51,#F0,#F0,#F0,#F8,#FC,#FC,#FC,#00
  3156.                 DB #00,#00,#00,#5C,#1E,#5E,#5E,#00,#03,#07,#0F,#5F,#1F,#5F,#5F,#00
  3157.                 DB #A8,#51,#A8,#00,#88,#88,#88,#88,#00,#00,#E3,#F1,#F8,#FC,#FE,#FF
  3158.                 DB #00,#00,#FF,#FF,#FF,#7F,#3F,#1F,#FF,#FF,#FF,#FF,#00,#00,#55,#AA
  3159.                 DB #8F,#C7,#E3,#F1,#00,#00,#54,#A8,#55,#AA,#00,#00,#00,#AA,#55,#AA
  3160.                 DB #54,#A8,#00,#00,#00,#AA,#55,#AA,#01,#E4,#E2,#E2,#E6,#EA,#E2,#02
  3161.                 DB #42,#82,#02,#06,#0A,#12,#2A,#5A,#82,#FA,#FA,#FA,#FA,#FA,#FA,#04
  3162. GRATRS
  3163.                 DB #05,#47,#05,#47,#45,#05,#45,#05,#05,#07,#05,#07,#56,#07,#4E,#07
  3164.                 DB #4E,#4E,#0E,#0E,#47,#47,#05,#47,#45,#05,#4E,#4E,#05,#07,#4E,#07
  3165.                 DB #45,#45,#46,#47,#47,#05,#46,#46,#47,#47,#45,#47,#47,#47,#47,#07
  3166.                 DB #07,#07,#07,#07,#07,#07,#07,#05,#05,#45,#46,#45
  3167. GRBLOX
  3168.                 DB #00,#01,#00,#01,#02,#03,#02,#03,#04,#05,#06,#07,#08,#09,#0A,#0B
  3169.                 DB #0C,#0D,#0E,#0F,#10,#11,#12,#13,#14,#09,#15,#0B,#02,#03,#16,#17
  3170.                 DB #18,#19,#1A,#1B,#1C,#1D,#1E,#1F,#20,#21,#22,#23,#21,#21,#23,#24
  3171.                 DB #25,#1F,#0A,#1F,#26,#28,#27,#28,#28,#29,#28,#29,#26,#1F,#27,#1F
  3172.                 DB #1C,#1F,#1E,#1F,#26,#2B,#2A,#21,#2B,#2C,#21,#21,#00,#01,#2D,#01
  3173.                 DB #18,#19,#2D,#2E,#1C,#2F,#2D,#2E,#30,#30,#2D,#2E,#31,#2F,#2D,#2E
  3174.                 DB #32,#01,#33,#34,#02,#03,#33,#34,#32,#32,#33,#34,#35,#36,#37,#38
  3175.                 DB #14,#04,#15,#06,#05,#08,#07,#0A,#26,#04,#27,#06,#26,#04,#3B,#06
  3176.                 DB #31,#18,#2D,#2D,#19,#1C,#2E,#2D,#00,#01,#33,#34,#39,#18,#3A,#1A
  3177.                 DB #19,#1C,#1B,#1E,#26,#18,#27,#1A,#39,#1D,#3A,#1F,#26,#1F,#3B,#1F
  3178. GRMAP
  3179.                 DB #00,#01,#02,#03,#04,#05,#06,#04,#05,#06,#04,#05,#06,#04,#05,#06
  3180.                 DB #04,#05,#06,#04,#05,#1C,#1D,#00,#01
  3181.                 DB #00,#07,#08,#09,#0A,#0B,#26,#0A,#0B,#26,#0A,#0B,#26,#0A,#0B,#26
  3182.                 DB #0A,#0B,#26,#0A,#0B,#23,#24,#00,#07
  3183.                 DB #00,#01,#02,#0C,#0D,#0E,#0F,#0D,#0E,#0F,#0D,#0E,#0F,#0D,#0E,#0F
  3184.                 DB #0D,#0E,#0F,#0D,#0E,#1E,#1D,#00,#01
  3185.                 DB #00,#07,#08,#10,#0D,#0E,#0F,#0D,#0E,#0F,#0D,#0E,#0F,#0D,#0E,#0F
  3186.                 DB #0D,#0E,#0F,#0D,#0E,#25,#24,#00,#07
  3187.                 DB #00,#01,#02,#0C,#11,#12,#27,#11,#12,#27,#11,#12,#27,#11,#12,#27
  3188.                 DB #11,#12,#27,#11,#12,#1F,#1D,#00,#01
  3189.                 DB #13,#07,#14,#15,#16,#16,#17,#16,#16,#17,#16,#16,#17,#16,#16,#17
  3190.                 DB #16,#16,#17,#16,#16,#20,#21,#00,#07
  3191.                 DB #18,#19,#1A,#1A,#1A,#1A,#1A,#1A,#1A,#1A,#1A,#1A,#1A,#1A,#1A,#1A
  3192.                 DB #1A,#1A,#1A,#1A,#1A,#1A,#1A,#22,#19
  3193.                 DB #1B,#1B,#1B,#1B,#1B,#1B,#1B,#1B,#1B,#1B,#1B,#1B,#1B,#1B,#1B,#1B
  3194.                 DB #1B,#1B,#1B,#1B,#1B,#1B,#1B,#1B,#1B
  3195.  
  3196. ;***************************************
  3197. ;** SPRITES                           **
  3198. ;***************************************
  3199.  
  3200. HEROARMS        DB #FF,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00
  3201.                 DB #FF,#00,#F8,#00,#F0,#00,#E0,#07,#C0,#08,#80,#13,#00,#27,#00,#27
  3202.                 DB #00,#23,#80,#10,#00,#2C,#00,#50,#00,#59,#00,#22,#80,#1C,#C1,#00
  3203.                 DB #FF,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#F3,#00,#C1,#00,#80,#0C
  3204.                 DB #00,#34,#00,#50,#80,#27,#00,#48,#00,#13,#00,#27,#00,#27,#00,#23
  3205.                 DB #80,#10,#C0,#0C,#E0,#02,#F0,#02,#F8,#01,#FC,#00,#F8,#01,#F0,#02
  3206.                 DB #E7,#00,#80,#00,#00,#18,#00,#6B,#80,#25,#00,#42,#80,#20,#00,#4C
  3207.                 DB #00,#21,#80,#17,#00,#28,#80,#13,#00,#27,#00,#27,#00,#23,#80,#10
  3208.                 DB #C0,#0C,#E0,#02,#F0,#01,#F8,#01,#FC,#00,#FE,#00,#FF,#00,#FF,#00
  3209.                 DB #FF,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#F1,#00,#E0,#00,#C0,#0E
  3210.                 DB #80,#11,#00,#21,#00,#26,#80,#08,#80,#13,#00,#27,#00,#27,#00,#23
  3211.                 DB #80,#10,#C0,#0E,#E0,#01,#F0,#01,#FC,#00,#FE,#00,#FC,#00,#F8,#01
  3212.  
  3213. SPRITES
  3214.  
  3215. HEROWALK1
  3216.                 DB #FF,#00,#83,#00,#CF,#00,#FF,#00,#FF,#00,#87,#00,#01,#00,#FF,#00
  3217.                 DB #FE,#00,#00,#7C,#03,#30,#FF,#00,#FF,#00,#01,#48,#00,#82,#F4,#00
  3218.                 DB #E0,#01,#00,#38,#01,#A8,#FF,#00,#FF,#00,#01,#A8,#00,#40,#C0,#09
  3219.                 DB #80,#16,#00,#0C,#00,#AC,#FF,#00,#7F,#00,#00,#92,#00,#30,#C0,#09
  3220.                 DB #80,#11,#00,#12,#00,#B9,#3F,#00,#1F,#80,#00,#92,#00,#8C,#C0,#0B
  3221.                 DB #E0,#04,#00,#20,#00,#87,#0F,#40,#0F,#40,#00,#A3,#00,#90,#C0,#09
  3222.                 DB #80,#13,#00,#C8,#00,#A8,#1F,#80,#3F,#00,#00,#A1,#00,#C0,#80,#13
  3223.                 DB #80,#11,#00,#A4,#00,#18,#1F,#80,#1F,#80,#00,#7A,#00,#C0,#C0,#08
  3224.                 DB #C0,#0B,#00,#F6,#00,#32,#1F,#80,#1F,#80,#00,#00,#00,#7C,#C0,#09
  3225.                 DB #C0,#08,#00,#C0,#00,#CF,#3F,#00,#7F,#00,#00,#08,#00,#1F,#E0,#04
  3226.                 DB #F0,#03,#00,#E0,#00,#48,#FF,#00,#FF,#00,#00,#84,#00,#00,#F8,#00
  3227.                 DB #FC,#00,#1C,#00,#00,#FC,#FF,#00,#FF,#00,#01,#00,#FE,#00,#FF,#00
  3228. HEROWALK2
  3229.                 DB #FF,#00,#F0,#00,#3F,#00,#FF,#00,#FF,#00,#1F,#80,#E0,#03,#FF,#00
  3230.                 DB #FF,#00,#C0,#0C,#09,#40,#9F,#00,#0F,#00,#00,#A0,#80,#10,#FE,#00
  3231.                 DB #FC,#00,#00,#13,#00,#16,#07,#60,#03,#90,#00,#68,#00,#64,#F8,#01
  3232.                 DB #F0,#02,#00,#92,#00,#95,#03,#50,#07,#A0,#00,#12,#00,#25,#F0,#02
  3233.                 DB #F8,#01,#00,#03,#00,#64,#0F,#40,#0F,#40,#00,#89,#00,#C0,#F8,#01
  3234.                 DB #F0,#02,#00,#18,#00,#13,#0F,#40,#0F,#40,#00,#AB,#00,#CD,#E0,#04
  3235.                 DB #C0,#09,#00,#E5,#00,#54,#1F,#80,#3F,#00,#00,#0B,#00,#CA,#C0,#09
  3236.                 DB #C0,#08,#00,#84,#00,#B0,#7F,#00,#FF,#00,#00,#D0,#00,#01,#E0,#05
  3237.                 DB #C0,#0B,#00,#FD,#01,#A8,#FF,#00,#FF,#00,#01,#08,#00,#E2,#C0,#09
  3238.                 DB #C0,#08,#00,#8D,#03,#90,#FF,#00,#FF,#00,#07,#60,#00,#72,#E0,#04
  3239.                 DB #F0,#03,#00,#94,#0F,#00,#FF,#00,#FF,#00,#9F,#00,#01,#08,#F8,#00
  3240.                 DB #FC,#00,#63,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#F7,#00,#FF,#00
  3241. HEROWALK3
  3242.                 DB #FF,#00,#FE,#00,#0F,#00,#FF,#00,#FF,#00,#07,#00,#FC,#00,#FF,#00
  3243.                 DB #FF,#00,#E0,#01,#03,#F0,#FF,#00,#FF,#00,#01,#08,#C0,#02,#FF,#00
  3244.                 DB #FF,#00,#80,#1C,#00,#04,#FF,#00,#7F,#00,#00,#FA,#00,#22,#FF,#00
  3245.                 DB #FE,#00,#00,#40,#00,#02,#7F,#00,#3F,#00,#00,#AD,#00,#08,#FC,#00
  3246.                 DB #F8,#01,#00,#E1,#00,#52,#7F,#00,#3F,#00,#00,#67,#00,#14,#F0,#02
  3247.                 DB #E0,#04,#00,#C6,#00,#38,#03,#80,#01,#40,#00,#03,#00,#E3,#C0,#09
  3248.                 DB #C0,#09,#00,#E3,#00,#C7,#00,#BC,#00,#02,#00,#00,#00,#D4,#C0,#08
  3249.                 DB #E0,#04,#00,#82,#00,#AD,#00,#7A,#00,#84,#00,#03,#00,#E0,#C0,#09
  3250.                 DB #C0,#08,#00,#FA,#00,#E1,#01,#B8,#03,#40,#00,#CC,#00,#6D,#C0,#09
  3251.                 DB #E0,#04,#00,#10,#00,#13,#07,#80,#3F,#00,#00,#D0,#00,#EE,#F0,#03
  3252.                 DB #F8,#00,#00,#01,#00,#10,#7F,#00,#FF,#00,#07,#E0,#10,#00,#FC,#00
  3253.                 DB #FF,#00,#FE,#00,#0F,#00,#FF,#00,#FF,#00,#1F,#00,#FF,#00,#FF,#00
  3254. HEROWALK4
  3255.                 DB #FF,#00,#FE,#00,#1F,#00,#FF,#00,#FF,#00,#0F,#00,#A8,#00,#FF,#00
  3256.                 DB #FF,#00,#00,#01,#07,#E0,#FF,#00,#FF,#00,#03,#10,#00,#56,#FE,#00
  3257.                 DB #FC,#00,#00,#A8,#01,#48,#FF,#00,#FF,#00,#00,#24,#00,#80,#FC,#00
  3258.                 DB #F8,#01,#00,#C9,#00,#1A,#7F,#00,#7F,#00,#00,#42,#00,#24,#F0,#02
  3259.                 DB #E0,#04,#00,#C9,#00,#54,#FF,#00,#FF,#00,#00,#E0,#00,#E0,#C0,#09
  3260.                 DB #C0,#09,#00,#E4,#00,#9A,#7F,#00,#3F,#00,#00,#41,#00,#CA,#C0,#08
  3261.                 DB #E0,#04,#00,#12,#00,#24,#1F,#80,#1F,#80,#00,#0E,#00,#82,#C0,#09
  3262.                 DB #C0,#08,#00,#C6,#00,#A4,#1F,#80,#1F,#80,#00,#08,#00,#F3,#C0,#08
  3263.                 DB #E0,#04,#00,#51,#00,#E5,#3F,#00,#7F,#00,#00,#92,#00,#08,#F0,#03
  3264.                 DB #F8,#00,#00,#C6,#00,#0A,#7F,#00,#FF,#00,#00,#24,#00,#2F,#FC,#00
  3265.                 DB #FF,#00,#00,#16,#00,#72,#7F,#00,#3F,#00,#00,#B9,#C0,#09,#FF,#00
  3266.                 DB #FF,#00,#E0,#06,#00,#44,#1F,#80,#1F,#80,#84,#3B,#F1,#00,#FF,#00
  3267. HEROWALK5
  3268.                 DB #FF,#00,#95,#00,#FF,#00,#FF,#00,#FF,#00,#1F,#00,#00,#00,#FF,#00
  3269.                 DB #FE,#00,#00,#6A,#0F,#00,#FF,#00,#FF,#00,#07,#E0,#00,#97,#FC,#00
  3270.                 DB #FC,#00,#00,#68,#03,#10,#FF,#00,#FF,#00,#01,#08,#00,#C0,#F8,#01
  3271.                 DB #F0,#02,#00,#20,#01,#08,#FF,#00,#FF,#00,#01,#08,#00,#40,#E0,#04
  3272.                 DB #C0,#09,#00,#E8,#01,#08,#FF,#00,#FF,#00,#00,#10,#00,#E8,#C0,#09
  3273.                 DB #C0,#08,#00,#C4,#00,#24,#7F,#00,#3F,#00,#00,#C7,#00,#13,#E0,#04
  3274.                 DB #C0,#08,#00,#18,#00,#00,#1F,#80,#0F,#40,#00,#06,#00,#AC,#C0,#09
  3275.                 DB #C0,#08,#00,#D4,#00,#6F,#0F,#40,#0F,#40,#00,#26,#00,#49,#E0,#04
  3276.                 DB #F0,#02,#00,#60,#00,#28,#0F,#40,#1F,#80,#00,#24,#00,#31,#F8,#01
  3277.                 DB #FC,#00,#00,#B4,#00,#26,#1F,#80,#1F,#80,#00,#2A,#00,#4E,#FE,#00
  3278.                 DB #FE,#00,#00,#6E,#00,#28,#1F,#80,#3F,#00,#00,#23,#00,#45,#FE,#00
  3279.                 DB #FE,#00,#00,#7A,#00,#CC,#7F,#00,#FF,#00,#00,#70,#00,#00,#FF,#00
  3280.  
  3281. ;********************************************
  3282.  
  3283. HEROCLIMBl
  3284.                 DB #FF,#00,#0F,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#07,#60,#FE,#00
  3285.                 DB #F0,#00,#03,#90,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#01,#A8,#C0,#00
  3286.                 DB #80,#0E,#01,#A8,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#01,#28,#00,#31
  3287.                 DB #00,#40,#00,#88,#7F,#00,#FF,#00,#FF,#00,#3F,#00,#00,#48,#00,#81
  3288.                 DB #00,#81,#00,#4B,#1F,#80,#FF,#00,#FF,#00,#0F,#40,#00,#84,#00,#42
  3289.                 DB #00,#A4,#00,#63,#07,#A0,#FF,#00,#FF,#00,#07,#A0,#00,#1D,#00,#10
  3290.                 DB #00,#A9,#00,#C2,#07,#60,#FF,#00,#FF,#00,#0F,#40,#00,#B9,#00,#6B
  3291.                 DB #00,#F7,#00,#FD,#0F,#40,#FF,#00,#FF,#00,#1F,#80,#00,#FD,#00,#7F
  3292.                 DB #00,#7F,#00,#B8,#0F,#40,#FF,#00,#FF,#00,#0F,#40,#00,#C3,#00,#EE
  3293.                 DB #00,#1F,#00,#07,#0F,#40,#FF,#00,#FF,#00,#1F,#80,#00,#C8,#00,#7F
  3294.                 DB #80,#7F,#00,#C7,#3F,#00,#FF,#00,#FF,#00,#7F,#00,#00,#80,#FE,#3F
  3295.                 DB #FF,#00,#00,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#C7,#00,#FF,#00
  3296. HEROCLIMB2
  3297.                 DB #C0,#00,#7F,#00,#E7,#00,#FF,#00,#FF,#00,#C3,#00,#3F,#00,#80,#0F
  3298.                 DB #00,#30,#1F,#80,#81,#18,#FF,#00,#FF,#00,#00,#24,#0F,#40,#00,#41
  3299.                 DB #00,#8E,#06,#A0,#00,#54,#FF,#00,#FF,#00,#01,#A8,#04,#A0,#00,#90
  3300.                 DB #00,#61,#00,#21,#03,#50,#FF,#00,#FF,#00,#07,#A0,#00,#C2,#00,#A0
  3301.                 DB #00,#28,#00,#38,#0F,#40,#FF,#00,#FF,#00,#07,#A0,#00,#84,#00,#AF
  3302.                 DB #00,#5F,#00,#72,#03,#50,#FF,#00,#FF,#00,#01,#28,#00,#FA,#00,#FF
  3303.                 DB #00,#7F,#00,#FB,#01,#68,#FF,#00,#FF,#00,#01,#28,#00,#70,#00,#7F
  3304.                 DB #00,#ED,#00,#84,#03,#90,#FF,#00,#FF,#00,#01,#68,#00,#0F,#00,#1E
  3305.                 DB #00,#7F,#00,#7E,#03,#90,#FF,#00,#FF,#00,#07,#A0,#00,#9E,#80,#3F
  3306.                 DB #FF,#00,#80,#21,#0F,#00,#FF,#00,#FF,#00,#5F,#00,#C0,#1E,#FF,#00
  3307. HEROCLIMB3
  3308.                 DB #80,#00,#7F,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#3F,#00,#00,#2F
  3309.                 DB #00,#50,#1F,#80,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#0F,#40,#00,#80
  3310.                 DB #00,#AF,#07,#A0,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#07,#20,#00,#80
  3311.                 DB #00,#42,#03,#D0,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#03,#10,#00,#81
  3312.                 DB #00,#60,#03,#70,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#01,#08,#00,#BF
  3313.                 DB #00,#7E,#00,#E4,#00,#00,#1F,#00,#0F,#00,#00,#00,#00,#F4,#00,#FF
  3314.                 DB #00,#7F,#00,#F5,#00,#FF,#07,#E0,#03,#10,#00,#00,#00,#E8,#00,#7E
  3315.                 DB #00,#ED,#00,#15,#00,#5F,#03,#D0,#07,#20,#00,#00,#00,#38,#00,#1E
  3316.                 DB #00,#7E,#00,#FB,#00,#77,#0F,#C0,#1F,#00,#00,#B4,#00,#7F,#80,#3F
  3317.                 DB #FF,#00,#00,#00,#00,#04,#3F,#00,#FF,#00,#00,#B4,#80,#1F,#FF,#00
  3318.                 DB #FF,#00,#C0,#00,#01,#48,#FF,#00,#FF,#00,#03,#00,#E0,#00,#FF,#00
  3319. HEROCLIMB4
  3320.                 DB #00,#00,#7F,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#3F,#00,#00,#6F
  3321.                 DB #00,#90,#1F,#80,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#0F,#40,#00,#AC
  3322.                 DB #00,#83,#07,#A0,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#07,#20,#00,#40
  3323.                 DB #00,#42,#03,#D0,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#03,#90,#00,#81
  3324.                 DB #00,#60,#07,#60,#FF,#00,#FF,#00,#FF,#00,#7F,#00,#02,#10,#00,#BE
  3325.                 DB #00,#7D,#00,#C8,#3F,#00,#FF,#00,#FF,#00,#1F,#80,#00,#E9,#00,#FF
  3326.                 DB #00,#7F,#00,#EA,#0F,#40,#FF,#00,#FF,#00,#07,#20,#00,#D1,#00,#7D
  3327.                 DB #00,#DA,#00,#11,#03,#50,#FF,#00,#FF,#00,#01,#08,#00,#2E,#00,#3C
  3328.                 DB #00,#7D,#00,#F2,#00,#14,#FF,#00,#7F,#00,#00,#0A,#00,#F8,#80,#3C
  3329.                 DB #FF,#00,#00,#3C,#00,#85,#3F,#00,#1F,#80,#00,#42,#00,#0D,#FF,#00
  3330.                 DB #FF,#00,#80,#00,#00,#ED,#0F,#40,#07,#A0,#00,#CA,#80,#1C,#FF,#00
  3331.                 DB #FF,#00,#C0,#02,#00,#91,#07,#20,#07,#E0,#04,#20,#E0,#02,#FF,#00
  3332.                 DB #FF,#00,#F8,#01,#0E,#C0,#0F,#00,#1F,#00,#1F,#00,#FC,#00,#FF,#00
  3333. HEROCLIMB5
  3334.                 DB #08,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#7F,#00,#00,#60
  3335.                 DB #00,#97,#3F,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#1F,#80,#00,#88
  3336.                 DB #00,#46,#0F,#40,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#07,#20,#00,#81
  3337.                 DB #00,#80,#07,#A0,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#03,#50,#00,#41
  3338.                 DB #00,#81,#03,#90,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#07,#60,#00,#60
  3339.                 DB #00,#BC,#07,#20,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#03,#90,#00,#7B
  3340.                 DB #00,#FF,#03,#D0,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#03,#D0,#00,#7F
  3341.                 DB #00,#7B,#07,#A0,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#03,#50,#00,#B4
  3342.                 DB #00,#79,#01,#C8,#1F,#00,#FF,#00,#FF,#00,#0F,#00,#00,#B4,#80,#7C
  3343.                 DB #FC,#00,#00,#74,#07,#E0,#FF,#00,#FF,#00,#03,#10,#00,#3B,#FC,#00
  3344.                 DB #FE,#01,#00,#08,#03,#50,#FF,#00,#FF,#00,#03,#50,#00,#F0,#FE,#00
  3345.                 DB #FF,#00,#00,#12,#03,#10,#FF,#00,#FF,#00,#03,#50,#00,#26,#FF,#00
  3346.                 DB #FF,#00,#80,#2F,#03,#10,#FF,#00,#FF,#00,#03,#50,#80,#26,#FF,#00
  3347.                 DB #FF,#00,#80,#10,#03,#50,#FF,#00,#FF,#00,#03,#50,#C0,#0F,#FF,#00
  3348.                 DB #FF,#00,#E0,#01,#03,#50,#FF,#00,#FF,#00,#03,#50,#F0,#01,#FF,#00
  3349.                 DB #FF,#00,#F8,#01,#03,#50,#FF,#00,#FF,#00,#03,#50,#F8,#01,#FF,#00
  3350.                 DB #FF,#00,#F8,#01,#03,#50,#FF,#00,#FF,#00,#03,#90,#FC,#00,#FF,#00
  3351.                 DB #FF,#00,#FE,#00,#07,#60,#FF,#00,#FF,#00,#0F,#00,#FF,#00,#FF,#00
  3352.                 DB #FF,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00
  3353.                 DB #FF,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00
  3354.  
  3355. ;********************************************
  3356.  
  3357. HEROCRAWL1
  3358.                 DB #FF,#00,#FF,#00,#9F,#00,#FF,#00,#FF,#00,#0F,#00,#FF,#00,#FF,#00
  3359.                 DB #FF,#00,#FE,#00,#07,#60,#FF,#00,#FF,#00,#03,#90,#FC,#00,#FF,#00
  3360.                 DB #FF,#00,#F8,#01,#03,#50,#FF,#00,#FF,#00,#01,#50,#F8,#01,#FF,#00
  3361.                 DB #FF,#00,#F8,#01,#00,#50,#FF,#00,#7F,#00,#00,#16,#F8,#01,#FF,#00
  3362.                 DB #FF,#00,#F8,#01,#00,#55,#3F,#00,#1F,#80,#00,#80,#E0,#00,#FF,#00
  3363.                 DB #FF,#00,#80,#01,#00,#70,#1F,#80,#0F,#40,#00,#4A,#00,#1D,#FF,#00
  3364.                 DB #FF,#00,#00,#65,#00,#4A,#0F,#40,#1F,#80,#00,#B4,#00,#A9,#FF,#00
  3365.                 DB #FF,#00,#00,#56,#00,#C0,#1F,#80,#0F,#40,#00,#21,#00,#D6,#FF,#00
  3366.                 DB #FF,#00,#00,#52,#00,#A6,#07,#A0,#03,#A0,#00,#A6,#00,#69,#FF,#00
  3367.                 DB #FF,#00,#00,#29,#00,#16,#01,#B8,#00,#24,#00,#15,#00,#45,#FF,#00
  3368.                 DB #FF,#00,#00,#04,#00,#92,#00,#C2,#00,#52,#00,#14,#00,#14,#FF,#00
  3369.                 DB #FF,#00,#08,#E2,#01,#20,#00,#2C,#81,#00,#0B,#C0,#1C,#01,#FF,#00
  3370. HEROCRAWL2
  3371.                 DB #FF,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#07,#00,#FF,#00,#FF,#00
  3372.                 DB #FF,#00,#FE,#00,#03,#00,#FF,#00,#E7,#00,#01,#F8,#EC,#00,#FF,#00
  3373.                 DB #FF,#00,#C0,#01,#00,#04,#C3,#00,#01,#18,#00,#3A,#80,#12,#FF,#00
  3374.                 DB #FF,#00,#00,#2A,#00,#C2,#00,#24,#00,#54,#00,#2C,#00,#44,#FF,#00
  3375.                 DB #FF,#00,#80,#20,#00,#10,#01,#A8,#03,#50,#00,#65,#00,#54,#FF,#00
  3376.                 DB #FF,#00,#00,#AB,#00,#1A,#07,#A0,#07,#20,#00,#84,#00,#57,#FF,#00
  3377.                 DB #FF,#00,#00,#D7,#00,#88,#03,#D0,#03,#D0,#00,#01,#00,#53,#FF,#00
  3378.                 DB #FF,#00,#00,#48,#00,#E4,#03,#B0,#01,#08,#00,#EE,#00,#04,#FF,#00
  3379.                 DB #FF,#00,#00,#42,#00,#58,#00,#04,#00,#24,#00,#33,#00,#01,#FF,#00
  3380.                 DB #FF,#00,#00,#10,#00,#84,#01,#D8,#03,#00,#00,#48,#06,#E0,#FF,#00
  3381.                 DB #FF,#00,#0F,#00,#03,#30,#27,#00,#FF,#00,#87,#00,#1F,#00,#FF,#00
  3382. HEROCRAWL3
  3383.                 DB #FF,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#07,#00,#FF,#00,#FF,#00
  3384.                 DB #FF,#00,#FE,#00,#03,#00,#FF,#00,#FF,#00,#01,#F8,#E4,#00,#FF,#00
  3385.                 DB #FF,#00,#C0,#01,#00,#04,#FF,#00,#7F,#00,#00,#02,#80,#1A,#FF,#00
  3386.                 DB #FF,#00,#00,#25,#00,#7D,#3F,#00,#3F,#00,#00,#01,#00,#20,#FF,#00
  3387.                 DB #FF,#00,#00,#38,#00,#6A,#01,#80,#00,#00,#00,#00,#00,#44,#FF,#00
  3388.                 DB #FF,#00,#00,#AB,#00,#7F,#00,#FE,#00,#02,#00,#80,#00,#57,#FF,#00
  3389.                 DB #FF,#00,#00,#53,#00,#07,#00,#C4,#01,#38,#00,#A0,#00,#68,#FF,#00
  3390.                 DB #FF,#00,#00,#2B,#00,#87,#01,#40,#01,#A8,#00,#76,#00,#52,#FF,#00
  3391.                 DB #FF,#00,#00,#11,#00,#F6,#03,#90,#07,#80,#00,#88,#00,#12,#FF,#00
  3392.                 DB #FF,#00,#00,#E8,#00,#77,#0F,#80,#3F,#00,#00,#90,#00,#07,#FF,#00
  3393. HEROCRAWL4
  3394.                 DB #FF,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#87,#00,#FF,#00,#FF,#00
  3395.                 DB #FF,#00,#F9,#00,#03,#00,#FF,#00,#FF,#00,#01,#78,#F0,#00,#FF,#00
  3396.                 DB #FF,#00,#E0,#06,#00,#84,#FF,#00,#7F,#00,#00,#02,#C0,#05,#FF,#00
  3397.                 DB #FF,#00,#C0,#08,#00,#21,#3F,#00,#3F,#00,#00,#11,#80,#08,#FF,#00
  3398.                 DB #FF,#00,#00,#34,#00,#8E,#1F,#80,#1F,#80,#00,#30,#00,#48,#FF,#00
  3399.                 DB #FF,#00,#00,#93,#00,#2D,#3F,#00,#7F,#00,#00,#92,#00,#57,#FF,#00
  3400.                 DB #FF,#00,#00,#D7,#00,#A8,#7F,#00,#3F,#00,#00,#00,#00,#53,#FF,#00
  3401.                 DB #FF,#00,#00,#68,#00,#31,#1F,#80,#0F,#40,#00,#B4,#00,#13,#FF,#00
  3402.                 DB #FF,#00,#00,#57,#00,#AA,#07,#20,#07,#20,#00,#01,#00,#13,#FF,#00
  3403.                 DB #FF,#00,#00,#15,#00,#C2,#07,#80,#0F,#40,#00,#F0,#00,#D0,#FF,#00
  3404.                 DB #FF,#00,#00,#08,#00,#36,#07,#A0,#03,#50,#00,#0F,#00,#06,#FF,#00
  3405.                 DB #FF,#00,#F0,#01,#00,#F6,#01,#28,#00,#54,#00,#11,#F8,#00,#FF,#00
  3406.                 DB #FF,#00,#FE,#00,#00,#08,#00,#AA,#00,#12,#E0,#07,#FF,#00,#FF,#00
  3407.                 DB #FF,#00,#FF,#00,#F0,#00,#40,#0E,#E0,#00,#F8,#00,#FF,#00,#FF,#00
  3408.                 DB #FF,#00,#FF,#00,#FF,#00,#F1,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00
  3409. HEROCRAWL5
  3410.                 DB #FF,#00,#FF,#00,#81,#00,#FF,#00,#FF,#00,#00,#00,#FF,#00,#FF,#00
  3411.                 DB #FF,#00,#FE,#00,#00,#7E,#7F,#00,#3F,#00,#00,#81,#FC,#00,#FF,#00
  3412.                 DB #FF,#00,#F0,#01,#00,#02,#1F,#80,#1F,#80,#00,#02,#C0,#01,#FF,#00
  3413.                 DB #FF,#00,#80,#0E,#00,#7C,#0F,#40,#1F,#80,#00,#80,#00,#36,#FF,#00
  3414.                 DB #FF,#00,#00,#48,#00,#56,#0F,#40,#1F,#80,#00,#2C,#00,#93,#FF,#00
  3415.                 DB #FF,#00,#00,#57,#00,#91,#3F,#00,#1F,#00,#00,#A3,#00,#D7,#FF,#00
  3416.                 DB #FF,#00,#00,#53,#00,#77,#0F,#00,#07,#60,#00,#3D,#00,#20,#FF,#00
  3417.                 DB #FF,#00,#00,#27,#00,#3D,#03,#10,#01,#08,#00,#0A,#00,#2F,#FF,#00
  3418.                 DB #FF,#00,#00,#16,#00,#E5,#01,#48,#03,#B0,#00,#10,#00,#15,#FF,#00
  3419.                 DB #FF,#00,#00,#D5,#02,#50,#07,#00,#4F,#00,#03,#10,#00,#09,#FF,#00
  3420.                 DB #FF,#00,#00,#06,#03,#50,#FF,#00,#FF,#00,#03,#10,#C0,#0D,#FF,#00
  3421.                 DB #FF,#00,#E0,#05,#03,#50,#FF,#00,#FF,#00,#03,#50,#E0,#05,#FF,#00
  3422.                 DB #FF,#00,#F0,#01,#03,#50,#FF,#00,#FF,#00,#03,#10,#F8,#01,#FF,#00
  3423.                 DB #FF,#00,#F8,#01,#03,#D0,#FF,#00,#FF,#00,#03,#30,#F8,#01,#FF,#00
  3424.                 DB #FF,#00,#FC,#00,#07,#E0,#FF,#00,#FF,#00,#0F,#00,#FE,#00,#FF,#00
  3425.                 DB #FF,#00,#FF,#00,#1F,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00
  3426. HEROCRAWL6
  3427.                 DB #FF,#00,#FF,#00,#C1,#00,#FF,#00,#FF,#00,#80,#00,#FF,#00,#FF,#00
  3428.                 DB #FF,#00,#FF,#00,#00,#3E,#7F,#00,#1F,#00,#00,#41,#FE,#00,#FF,#00
  3429.                 DB #FF,#00,#F0,#00,#00,#80,#0F,#80,#07,#60,#00,#BE,#C0,#00,#FF,#00
  3430.                 DB #FF,#00,#80,#0C,#00,#80,#03,#50,#03,#10,#00,#24,#00,#33,#FF,#00
  3431.                 DB #FE,#00,#00,#44,#00,#9A,#07,#20,#0F,#C0,#00,#44,#00,#AB,#FC,#00
  3432.                 DB #FC,#00,#00,#D7,#00,#9D,#1F,#00,#1F,#80,#00,#A1,#00,#27,#F8,#01
  3433.                 DB #F0,#02,#00,#A3,#00,#3B,#0F,#40,#07,#00,#00,#3F,#00,#2C,#E0,#04
  3434.                 DB #C0,#09,#00,#47,#00,#3D,#03,#70,#01,#48,#00,#7D,#00,#93,#80,#10
  3435.                 DB #00,#24,#00,#3A,#00,#7A,#00,#04,#00,#A4,#00,#84,#00,#20,#00,#48
  3436.                 DB #00,#52,#00,#80,#00,#B8,#01,#D8,#03,#00,#02,#00,#00,#89,#00,#6C
  3437.                 DB #00,#3A,#00,#DA,#47,#00,#27,#00,#FF,#00,#FF,#00,#00,#20,#80,#01
  3438.                 DB #C0,#01,#05,#20,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#0F,#C0,#F8,#01
  3439.                 DB #FC,#00,#1F,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#3F,#00,#FE,#00
  3440. HEROCRAWL7
  3441.                 DB #FF,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#C1,#00,#FF,#00,#FF,#00
  3442.                 DB #FF,#00,#FF,#00,#80,#00,#FF,#00,#7F,#00,#00,#3E,#FF,#00,#FF,#00
  3443.                 DB #FF,#00,#FE,#00,#00,#41,#3F,#00,#0F,#80,#00,#BC,#F0,#00,#FF,#00
  3444.                 DB #FF,#00,#C0,#01,#00,#03,#07,#40,#03,#50,#00,#3C,#80,#0D,#FF,#00
  3445.                 DB #E0,#00,#00,#33,#00,#5A,#01,#28,#01,#08,#00,#AC,#00,#44,#C0,#00
  3446.                 DB #80,#1F,#00,#FB,#00,#44,#03,#10,#07,#20,#00,#A8,#00,#05,#00,#20
  3447.                 DB #00,#5F,#00,#55,#00,#A0,#0F,#C0,#07,#20,#00,#3B,#00,#03,#00,#40
  3448.                 DB #00,#3E,#00,#04,#00,#3F,#03,#70,#03,#60,#00,#3D,#00,#0F,#80,#04
  3449.                 DB #C0,#05,#00,#37,#00,#7D,#01,#18,#00,#A4,#00,#5A,#00,#76,#E0,#05
  3450.                 DB #E0,#04,#00,#C0,#00,#C5,#00,#42,#00,#52,#00,#B8,#00,#38,#F0,#03
  3451.                 DB #F8,#00,#00,#07,#02,#00,#00,#2C,#81,#00,#47,#00,#C0,#00,#FC,#00
  3452. HEROCRAWL8
  3453.                 DB #FF,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#CF,#00
  3454.                 DB #87,#00,#FF,#00,#C1,#00,#FF,#00,#FF,#00,#80,#00,#FF,#00,#03,#30
  3455.                 DB #01,#48,#FF,#00,#00,#3E,#7F,#00,#3F,#00,#00,#41,#FE,#00,#00,#54
  3456.                 DB #00,#4A,#70,#00,#00,#B0,#1F,#80,#0F,#40,#00,#0E,#20,#01,#00,#31
  3457.                 DB #80,#0C,#00,#8D,#00,#50,#0F,#40,#0F,#40,#00,#34,#00,#53,#C0,#00
  3458.                 DB #80,#17,#00,#24,#00,#88,#07,#20,#03,#10,#00,#52,#00,#0B,#80,#1A
  3459.                 DB #C0,#00,#00,#B7,#00,#82,#03,#10,#03,#B0,#00,#99,#00,#27,#80,#11
  3460.                 DB #C0,#0E,#00,#09,#00,#1D,#07,#80,#03,#B0,#00,#3F,#00,#EE,#E0,#00
  3461.                 DB #F0,#01,#00,#76,#00,#7D,#01,#38,#00,#24,#00,#7D,#00,#34,#F8,#01
  3462.                 DB #FC,#00,#00,#88,#00,#BA,#00,#5C,#00,#A2,#00,#85,#00,#41,#FE,#00
  3463.                 DB #FF,#00,#00,#22,#00,#00,#00,#52,#00,#6C,#7A,#00,#80,#1C,#FF,#00
  3464.                 DB #FF,#00,#C1,#00,#FF,#00,#01,#00,#93,#00,#FF,#00,#E3,#00,#FF,#00
  3465.  
  3466. ;********************************************
  3467.  
  3468. HEROFALL        ; 1 FALL $100 256 BYTES
  3469.  
  3470.                 DB #FF,#00,#C9,#00,#FF,#00,#FF,#00,#3F,#00,#FF,#00,#80,#00,#F9,#00
  3471.                 DB #F0,#00,#00,#36,#7E,#00,#0F,#00,#07,#C0,#20,#00,#00,#49,#E0,#06
  3472.                 DB #C0,#09,#00,#82,#00,#81,#03,#30,#01,#48,#00,#5D,#00,#4C,#E0,#05
  3473.                 DB #C0,#08,#00,#11,#00,#A3,#00,#34,#00,#94,#00,#5D,#00,#0A,#E0,#06
  3474.                 DB #C0,#08,#00,#14,#00,#5E,#00,#44,#01,#E8,#00,#BE,#00,#0D,#80,#15
  3475.                 DB #00,#2B,#00,#02,#00,#74,#01,#E8,#03,#50,#00,#E7,#00,#31,#00,#26
  3476.                 DB #00,#2D,#00,#7F,#00,#F3,#03,#D0,#07,#A0,#00,#F0,#00,#DF,#80,#13
  3477.                 DB #80,#17,#00,#EE,#00,#E3,#0F,#40,#1F,#80,#00,#0C,#00,#41,#80,#13
  3478.                 DB #C0,#08,#00,#33,#00,#D0,#0F,#40,#0F,#40,#00,#80,#00,#07,#E0,#06
  3479.                 DB #E0,#04,#00,#00,#00,#00,#0F,#40,#0F,#40,#00,#00,#00,#00,#C0,#08
  3480.                 DB #C0,#08,#00,#21,#00,#88,#0F,#40,#07,#80,#00,#70,#00,#3E,#C0,#08
  3481.                 DB #E0,#04,#00,#10,#00,#08,#03,#80,#01,#98,#80,#08,#01,#20,#F0,#02
  3482.                 DB #F8,#01,#03,#10,#E0,#04,#00,#E4,#00,#44,#E0,#04,#01,#08,#F8,#01
  3483.                 DB #F0,#02,#01,#08,#C0,#08,#01,#08,#03,#30,#C0,#08,#03,#50,#E0,#04
  3484.                 DB #E0,#04,#07,#60,#C0,#0F,#07,#C0,#0F,#00,#E0,#00,#0F,#C0,#E0,#07
  3485.                 DB #F0,#00,#1F,#00,#F0,#00,#3F,#00,#FF,#00,#FF,#00,#3F,#00,#F8,#00
  3486.  
  3487. ;********************************************
  3488.  
  3489. HEROLEG1
  3490.                 DB #FF,#00,#20,#04,#00,#02,#7F,#00,#3F,#00,#00,#01,#00,#08,#FC,#00
  3491.                 DB #F8,#00,#00,#C8,#00,#00,#1F,#80,#0F,#40,#00,#00,#00,#34,#F0,#03
  3492.                 DB #F0,#02,#00,#08,#00,#20,#07,#20,#07,#20,#00,#30,#00,#10,#F0,#02
  3493.                 DB #F0,#02,#00,#30,#00,#48,#07,#20,#07,#20,#00,#44,#00,#58,#E0,#04
  3494.                 DB #E0,#04,#00,#47,#10,#82,#07,#20,#07,#E0,#30,#02,#00,#40,#E0,#04
  3495.                 DB #E0,#04,#18,#80,#78,#01,#03,#20,#01,#20,#F8,#01,#3F,#00,#F0,#03
  3496.                 DB #F8,#00,#7F,#00,#F0,#02,#00,#5C,#00,#22,#F0,#02,#FF,#00,#FC,#00
  3497.                 DB #FF,#00,#FF,#00,#E0,#04,#00,#02,#00,#FE,#E0,#07,#FF,#00,#FF,#00
  3498. HEROLEG2
  3499.                 DB #FF,#00,#80,#10,#03,#10,#FF,#00,#FF,#00,#03,#10,#00,#20,#FF,#00
  3500.                 DB #FF,#00,#00,#20,#03,#10,#FF,#00,#FF,#00,#03,#10,#00,#20,#FF,#00
  3501.                 DB #FF,#00,#00,#10,#01,#08,#FF,#00,#FF,#00,#01,#08,#00,#70,#FE,#00
  3502.                 DB #FC,#00,#00,#80,#01,#08,#FF,#00,#FF,#00,#01,#08,#00,#80,#FC,#00
  3503.                 DB #FC,#00,#00,#86,#03,#10,#FF,#00,#FF,#00,#07,#E0,#00,#09,#F8,#01
  3504.                 DB #F8,#01,#00,#09,#03,#20,#FF,#00,#FF,#00,#01,#20,#00,#12,#F8,#01
  3505.                 DB #FC,#00,#00,#92,#00,#5C,#FF,#00,#7F,#00,#00,#22,#00,#64,#FE,#00
  3506.                 DB #FF,#00,#00,#04,#00,#02,#7F,#00,#7F,#00,#00,#FE,#80,#07,#FF,#00
  3507. HEROLEG3
  3508.                 DB #FF,#00,#00,#20,#07,#20,#FF,#00,#FF,#00,#03,#10,#00,#40,#FE,#00
  3509.                 DB #FE,#00,#00,#40,#01,#08,#FF,#00,#FF,#00,#01,#08,#00,#40,#FE,#00
  3510.                 DB #FE,#00,#00,#40,#03,#10,#FF,#00,#FF,#00,#07,#20,#00,#40,#FE,#00
  3511.                 DB #FF,#00,#00,#20,#0F,#40,#FF,#00,#FF,#00,#1F,#80,#00,#20,#FF,#00
  3512.                 DB #FE,#00,#00,#43,#3F,#00,#FF,#00,#FF,#00,#1F,#80,#00,#E0,#FC,#00
  3513.                 DB #F8,#01,#00,#00,#0F,#40,#FF,#00,#FF,#00,#0F,#40,#00,#00,#F0,#02
  3514.                 DB #F0,#02,#00,#1D,#1F,#80,#FF,#00,#FF,#00,#3F,#00,#00,#22,#E0,#04
  3515.                 DB #E0,#04,#00,#02,#7F,#00,#FF,#00,#FF,#00,#7F,#00,#00,#FE,#E0,#07
  3516. HEROLEG4
  3517.                 DB #FE,#00,#00,#40,#01,#08,#FF,#00,#FF,#00,#00,#04,#00,#80,#FC,#00
  3518.                 DB #FC,#00,#00,#80,#00,#04,#FF,#00,#FF,#00,#01,#08,#00,#00,#F8,#01
  3519.                 DB #F8,#01,#00,#02,#01,#08,#FF,#00,#FF,#00,#03,#10,#00,#05,#F8,#01
  3520.                 DB #F0,#02,#00,#09,#01,#20,#FF,#00,#FF,#00,#00,#1C,#00,#12,#80,#02
  3521.                 DB #00,#0C,#00,#22,#00,#02,#7F,#00,#7F,#00,#00,#82,#08,#C1,#00,#70
  3522.                 DB #00,#43,#1C,#00,#00,#7C,#FF,#00,#FF,#00,#01,#00,#3E,#00,#00,#44
  3523.                 DB #00,#44,#FF,#00,#83,#00,#FF,#00,#FF,#00,#FF,#00,#7F,#00,#00,#42
  3524.                 DB #00,#61,#3F,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#3F,#00,#80,#3F
  3525.  
  3526. ;********************************************
  3527.  
  3528. HEROLEGSTAND
  3529.                 DB #FC,#00,#00,#80,#07,#20,#FF,#00,#FF,#00,#03,#10,#00,#00,#F8,#01
  3530.                 DB #F8,#01,#00,#00,#01,#08,#FF,#00,#FF,#00,#01,#08,#00,#00,#F8,#01
  3531.                 DB #F8,#01,#00,#02,#00,#04,#FF,#00,#FF,#00,#00,#CC,#00,#85,#FC,#00
  3532.                 DB #F8,#01,#00,#1C,#00,#82,#7F,#00,#7F,#00,#00,#82,#00,#08,#F0,#02
  3533.                 DB #F0,#02,#00,#08,#00,#42,#7F,#00,#7F,#00,#00,#2E,#03,#90,#F8,#01
  3534.                 DB #F8,#01,#07,#20,#00,#32,#3F,#00,#1F,#00,#00,#22,#03,#10,#F0,#02
  3535.                 DB #F0,#03,#03,#D0,#00,#25,#0F,#C0,#07,#20,#00,#22,#07,#20,#E0,#04
  3536.                 DB #C0,#08,#02,#10,#00,#40,#07,#20,#07,#E0,#00,#7F,#02,#F0,#C0,#0F
  3537. HEROLEGJUMP
  3538.                 DB #F8,#01,#00,#00,#00,#0C,#FF,#00,#7F,#00,#00,#02,#00,#00,#F0,#02
  3539.                 DB #F0,#02,#00,#00,#00,#01,#3F,#00,#1F,#80,#00,#80,#00,#00,#F8,#01
  3540.                 DB #FC,#00,#00,#E0,#00,#40,#1F,#80,#3F,#00,#00,#21,#00,#20,#FE,#00
  3541.                 DB #FE,#00,#00,#40,#00,#43,#1F,#80,#0F,#40,#00,#8E,#00,#83,#FC,#00
  3542.                 DB #F8,#01,#00,#0C,#00,#40,#0F,#40,#1F,#80,#00,#40,#00,#30,#F0,#02
  3543.                 DB #F0,#02,#00,#1C,#00,#47,#3F,#00,#7F,#00,#00,#38,#00,#02,#F0,#02
  3544.                 DB #F8,#01,#00,#82,#00,#00,#FF,#00,#FF,#00,#C7,#00,#00,#7C,#FC,#00
  3545.                 DB #FE,#00,#01,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#83,#00,#FF,#00
  3546.  
  3547. ;**************************************
  3548.  
  3549. HEROLEGCL1
  3550.                 DB #F8,#00,#00,#17,#07,#A0,#FF,#00,#FF,#00,#07,#20,#00,#00,#F0,#02
  3551.                 DB #F0,#02,#00,#00,#03,#10,#FF,#00,#FF,#00,#03,#10,#00,#44,#F8,#01
  3552.                 DB #F8,#01,#00,#38,#03,#10,#FF,#00,#FF,#00,#07,#20,#00,#88,#F0,#02
  3553.                 DB #F0,#02,#00,#A5,#03,#10,#FF,#00,#FF,#00,#01,#08,#00,#FA,#F0,#03
  3554.                 DB #F8,#00,#00,#02,#01,#08,#FF,#00,#FF,#00,#01,#08,#00,#01,#FC,#00
  3555.                 DB #FF,#00,#FC,#00,#03,#90,#FF,#00,#FF,#00,#03,#50,#FE,#00,#FF,#00
  3556.                 DB #FF,#00,#FC,#00,#01,#D8,#FF,#00,#FF,#00,#00,#54,#F8,#01,#FF,#00
  3557.                 DB #FF,#00,#F8,#01,#00,#54,#FF,#00,#FF,#00,#00,#FC,#F8,#01,#FF,#00
  3558. HEROLEGCL2
  3559.                 DB #FC,#00,#00,#97,#07,#A0,#FF,#00,#FF,#00,#03,#10,#00,#00,#F8,#01
  3560.                 DB #F0,#02,#00,#00,#01,#08,#FF,#00,#FF,#00,#01,#08,#00,#00,#F0,#02
  3561.                 DB #F0,#02,#00,#06,#00,#04,#FF,#00,#FF,#00,#00,#04,#00,#29,#F0,#02
  3562.                 DB #F8,#01,#00,#12,#01,#08,#FF,#00,#FF,#00,#03,#10,#00,#12,#F8,#01
  3563.                 DB #F8,#01,#00,#B1,#07,#20,#FF,#00,#FF,#00,#03,#F0,#00,#A9,#F0,#02
  3564.                 DB #F0,#02,#00,#AA,#01,#28,#FF,#00,#FF,#00,#00,#14,#00,#FA,#F0,#03
  3565.                 DB #F8,#00,#00,#01,#00,#0C,#FF,#00,#FF,#00,#00,#84,#04,#00,#FC,#00
  3566.                 DB #FF,#00,#FE,#00,#01,#78,#FF,#00,#FF,#00,#03,#00,#FF,#00,#FF,#00
  3567. HEROLEGCL3
  3568.                 DB #FE,#00,#00,#57,#01,#80,#FF,#00,#FF,#00,#00,#04,#00,#40,#FE,#00
  3569.                 DB #FC,#00,#00,#80,#01,#08,#FF,#00,#FF,#00,#03,#D0,#00,#83,#FC,#00
  3570.                 DB #FC,#00,#00,#82,#01,#18,#FF,#00,#FF,#00,#00,#54,#00,#44,#FE,#00
  3571.                 DB #FC,#00,#00,#89,#00,#54,#FF,#00,#FF,#00,#00,#FC,#00,#05,#F8,#01
  3572.                 DB #F8,#01,#00,#04,#01,#00,#FF,#00,#FF,#00,#03,#00,#00,#08,#F8,#01
  3573.                 DB #FC,#00,#03,#90,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#07,#A0,#FC,#00
  3574.                 DB #F8,#01,#03,#B0,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#01,#A8,#F0,#02
  3575.                 DB #F0,#02,#01,#A8,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#01,#F8,#F0,#03
  3576. HEROLEGCL4
  3577.                 DB #FE,#00,#00,#57,#03,#90,#FF,#00,#FF,#00,#01,#08,#00,#80,#FC,#00
  3578.                 DB #F8,#01,#00,#00,#00,#04,#FF,#00,#FF,#00,#00,#44,#00,#02,#F0,#02
  3579.                 DB #F0,#02,#00,#05,#00,#84,#FF,#00,#FF,#00,#01,#08,#00,#18,#F8,#01
  3580.                 DB #F8,#01,#00,#08,#01,#88,#FF,#00,#FF,#00,#03,#50,#00,#88,#FC,#00
  3581.                 DB #FE,#00,#00,#48,#01,#D8,#FF,#00,#FF,#00,#00,#54,#00,#65,#FE,#00
  3582.                 DB #FC,#00,#00,#BD,#00,#54,#FF,#00,#FF,#00,#00,#FC,#00,#45,#F8,#01
  3583.                 DB #F0,#02,#00,#84,#01,#00,#FF,#00,#FF,#00,#03,#00,#00,#08,#F0,#03
  3584.                 DB #F0,#02,#03,#10,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#07,#E0,#F8,#01
  3585.  
  3586. ;********************************************
  3587.  
  3588. HEROLEGCR1
  3589.                 DB #FC,#00,#7C,#00,#F0,#00,#FF,#00,#FF,#00,#60,#06,#00,#00,#F8,#00
  3590.                 DB #F0,#03,#00,#83,#00,#09,#FF,#00,#FF,#00,#00,#91,#00,#64,#F0,#02
  3591.                 DB #F0,#02,#00,#04,#00,#E1,#FF,#00,#FF,#00,#00,#20,#00,#08,#F0,#02
  3592.                 DB #E0,#04,#00,#50,#00,#10,#FF,#00,#FF,#00,#00,#00,#00,#A3,#E0,#04
  3593.                 DB #E0,#04,#00,#A2,#00,#80,#FF,#00,#FF,#00,#00,#40,#00,#AC,#E0,#04
  3594.                 DB #F0,#03,#01,#98,#00,#21,#FF,#00,#FF,#00,#80,#12,#03,#00,#F8,#00
  3595.                 DB #FC,#00,#67,#00,#C0,#0C,#FF,#00,#FF,#00,#E1,#00,#FF,#00,#FF,#00
  3596.                 DB #FF,#00,#FF,#00,#F3,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00
  3597. HEROLEGCR2
  3598.                 DB #FF,#00,#87,#00,#F3,#00,#FF,#00,#FF,#00,#E0,#00,#03,#00,#FF,#00
  3599.                 DB #FE,#00,#00,#68,#C0,#0C,#FF,#00,#FF,#00,#00,#13,#00,#94,#FC,#00
  3600.                 DB #FC,#00,#00,#8F,#00,#22,#FF,#00,#FF,#00,#00,#C2,#00,#80,#FC,#00
  3601.                 DB #FC,#00,#00,#80,#00,#40,#FF,#00,#FF,#00,#00,#00,#00,#18,#F8,#01
  3602.                 DB #F8,#01,#00,#24,#00,#00,#FF,#00,#FF,#00,#00,#00,#00,#23,#F8,#01
  3603.                 DB #F8,#01,#00,#C8,#00,#E3,#FF,#00,#FF,#00,#00,#1C,#00,#00,#FC,#00
  3604.                 DB #FE,#00,#37,#00,#00,#00,#FF,#00,#FF,#00,#E3,#00,#FF,#00,#FF,#00
  3605.                 DB #FF,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00
  3606. HEROLEGCR3
  3607.                 DB #FE,#00,#31,#00,#E0,#00,#FF,#00,#FF,#00,#C0,#0C,#00,#00,#FC,#00
  3608.                 DB #F8,#01,#00,#CE,#00,#13,#FF,#00,#FF,#00,#00,#23,#00,#69,#F8,#01
  3609.                 DB #F8,#01,#00,#1C,#00,#C2,#FF,#00,#FF,#00,#00,#80,#00,#03,#F8,#01
  3610.                 DB #F0,#03,#00,#00,#00,#80,#FF,#00,#FF,#00,#00,#00,#00,#30,#F0,#02
  3611.                 DB #F0,#02,#00,#4C,#00,#00,#FF,#00,#FF,#00,#00,#02,#00,#47,#F0,#02
  3612.                 DB #F0,#03,#10,#80,#00,#FD,#FF,#00,#FF,#00,#00,#00,#38,#00,#F8,#00
  3613.                 DB #FC,#00,#7F,#00,#02,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00
  3614.                 DB #FF,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00
  3615.  
  3616. ;********************************************
  3617.  
  3618. BADWALK1        ; 5 RUN LEFT $3C0 1152 BYTES
  3619.  
  3620.                 DB #FE,#00,#00,#00,#FF,#00,#FF,#00,#FF,#00,#7F,#00,#00,#FE,#F0,#00
  3621.                 DB #E0,#01,#00,#01,#3F,#00,#FF,#00,#FF,#00,#10,#80,#00,#00,#C0,#0F
  3622.                 DB #80,#10,#00,#80,#00,#80,#7F,#00,#3F,#00,#00,#8F,#00,#B4,#80,#10
  3623.                 DB #00,#21,#00,#41,#00,#70,#1F,#80,#1F,#80,#00,#8E,#00,#01,#00,#22
  3624.                 DB #80,#14,#00,#00,#00,#7F,#0F,#40,#0F,#40,#00,#F7,#00,#26,#80,#14
  3625.                 DB #80,#16,#00,#DE,#00,#F7,#07,#A0,#03,#A0,#00,#E3,#00,#3F,#80,#16
  3626.                 DB #80,#15,#00,#3F,#00,#8D,#01,#A8,#00,#14,#00,#EA,#00,#3F,#80,#15
  3627.                 DB #80,#17,#00,#1F,#00,#D2,#00,#04,#00,#04,#00,#11,#00,#0E,#C0,#08
  3628.                 DB #E0,#07,#00,#E0,#00,#38,#01,#F8,#03,#00,#02,#00,#00,#00,#F0,#00
  3629.                 DB #F8,#00,#1F,#00,#C7,#00,#07,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00
  3630.                 DB #FF,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00
  3631.                 DB #FF,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00
  3632. BADWALK2
  3633.                 DB #FF,#00,#80,#00,#FF,#00,#FF,#00,#FF,#00,#7F,#00,#00,#00,#FF,#00
  3634.                 DB #FE,#00,#00,#7F,#3F,#00,#FF,#00,#FF,#00,#1F,#80,#00,#80,#FC,#00
  3635.                 DB #F8,#01,#00,#40,#0F,#40,#FF,#00,#FF,#00,#0F,#40,#00,#00,#F8,#01
  3636.                 DB #F8,#01,#00,#7A,#0F,#40,#FF,#00,#FF,#00,#1F,#80,#00,#60,#F0,#01
  3637.                 DB #E0,#01,#00,#00,#07,#80,#FF,#00,#FF,#00,#01,#60,#00,#00,#C0,#0D
  3638.                 DB #80,#19,#00,#10,#00,#18,#7F,#00,#3F,#00,#00,#E6,#00,#E6,#80,#10
  3639.                 DB #80,#10,#00,#0D,#00,#F9,#1F,#80,#0F,#40,#00,#FE,#00,#1D,#C0,#0E
  3640.                 DB #E0,#04,#00,#5F,#00,#EF,#07,#A0,#07,#A0,#00,#9F,#00,#9F,#E0,#05
  3641.                 DB #E0,#05,#00,#CF,#00,#EF,#0F,#40,#1F,#80,#00,#86,#00,#CF,#F0,#02
  3642.                 DB #F8,#01,#00,#07,#00,#61,#3F,#00,#7F,#00,#00,#46,#00,#F0,#FC,#00
  3643.                 DB #FE,#00,#00,#00,#00,#42,#7F,#00,#7F,#00,#00,#22,#0F,#00,#FF,#00
  3644.                 DB #FF,#00,#FF,#00,#80,#1C,#FF,#00,#FF,#00,#C1,#00,#FF,#00,#FF,#00
  3645. BADWALK3
  3646.                 DB #FF,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#80,#00,#FF,#00
  3647.                 DB #FF,#00,#00,#00,#7F,#00,#FF,#00,#FF,#00,#3F,#00,#00,#7F,#FE,#00
  3648.                 DB #FC,#00,#00,#80,#1F,#80,#FF,#00,#FF,#00,#0F,#40,#00,#40,#F8,#01
  3649.                 DB #F8,#01,#00,#00,#0F,#40,#FF,#00,#FF,#00,#0F,#40,#00,#7A,#F8,#01
  3650.                 DB #F8,#01,#00,#60,#1F,#80,#FF,#00,#FF,#00,#1F,#80,#00,#00,#F8,#01
  3651.                 DB #F8,#01,#00,#00,#0F,#40,#FF,#00,#FF,#00,#07,#A0,#00,#13,#F8,#01
  3652.                 DB #FC,#00,#00,#EF,#03,#D0,#FF,#00,#FF,#00,#03,#D0,#00,#1F,#FC,#00
  3653.                 DB #F8,#00,#00,#5B,#01,#A8,#FF,#00,#FF,#00,#01,#E8,#00,#AD,#F0,#03
  3654.                 DB #E0,#04,#00,#0D,#00,#F4,#FF,#00,#FF,#00,#00,#74,#00,#36,#E0,#04
  3655.                 DB #F0,#02,#00,#C9,#00,#FA,#FF,#00,#FF,#00,#00,#E4,#00,#23,#F8,#01
  3656.                 DB #F8,#01,#00,#03,#01,#08,#FF,#00,#FF,#00,#03,#00,#00,#8C,#FC,#00
  3657.                 DB #FE,#00,#00,#70,#F7,#00,#FF,#00,#FF,#00,#FF,#00,#03,#00,#FF,#00
  3658. BADWALK4
  3659.                 DB #FF,#00,#80,#00,#FF,#00,#FF,#00,#FF,#00,#7F,#00,#00,#00,#FF,#00
  3660.                 DB #FE,#00,#00,#7F,#3F,#00,#FF,#00,#FF,#00,#1F,#80,#00,#80,#FC,#00
  3661.                 DB #F8,#01,#00,#40,#0F,#40,#FF,#00,#FF,#00,#0F,#40,#00,#00,#F8,#01
  3662.                 DB #F8,#01,#00,#7A,#0F,#40,#FF,#00,#FF,#00,#1F,#80,#00,#60,#F8,#01
  3663.                 DB #F8,#01,#00,#00,#0F,#80,#FF,#00,#FF,#00,#03,#40,#00,#01,#F8,#01
  3664.                 DB #F8,#01,#00,#00,#00,#B0,#FF,#00,#7F,#00,#00,#4C,#00,#D7,#F8,#00
  3665.                 DB #F0,#00,#00,#2F,#00,#E3,#3F,#00,#1F,#80,#00,#E4,#00,#2F,#E0,#07
  3666.                 DB #C0,#08,#00,#A7,#00,#73,#0F,#40,#0F,#40,#00,#F3,#00,#DC,#C0,#08
  3667.                 DB #C0,#09,#00,#3E,#00,#F2,#1F,#80,#3F,#00,#00,#F1,#00,#7C,#C0,#08
  3668.                 DB #E0,#06,#00,#71,#00,#C2,#7F,#00,#FF,#00,#00,#00,#00,#08,#F0,#01
  3669.                 DB #F8,#00,#00,#F0,#3D,#00,#FF,#00,#FF,#00,#FF,#00,#07,#00,#FE,#00
  3670.                 DB #FF,#00,#0F,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00
  3671. BADWALK5
  3672.                 DB #FE,#00,#00,#00,#FF,#00,#FF,#00,#FF,#00,#7F,#00,#00,#FE,#F4,#00
  3673.                 DB #E0,#01,#00,#01,#3F,#00,#FF,#00,#FF,#00,#1F,#80,#00,#80,#C0,#0A
  3674.                 DB #80,#12,#00,#00,#19,#80,#FF,#00,#FF,#00,#00,#80,#00,#F4,#00,#22
  3675.                 DB #00,#22,#00,#C1,#00,#06,#7F,#00,#3F,#00,#00,#19,#00,#01,#00,#22
  3676.                 DB #80,#12,#00,#02,#00,#66,#1F,#80,#0F,#40,#00,#9F,#00,#01,#C0,#0A
  3677.                 DB #C0,#09,#00,#03,#00,#CF,#03,#A0,#01,#D0,#00,#E3,#00,#3B,#C0,#0A
  3678.                 DB #C0,#0B,#00,#7F,#00,#E0,#00,#D4,#00,#0A,#00,#EB,#00,#7F,#C0,#09
  3679.                 DB #C0,#0B,#00,#FB,#00,#F4,#00,#C2,#00,#24,#00,#F4,#00,#C5,#C0,#0B
  3680.                 DB #C0,#09,#00,#DB,#00,#02,#01,#18,#C3,#00,#08,#00,#00,#20,#E0,#04
  3681.                 DB #F0,#03,#04,#C0,#FD,#00,#E7,#00,#FF,#00,#FF,#00,#1F,#00,#F8,#00
  3682.                 DB #FC,#00,#3F,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00
  3683.                 DB #FF,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00,#FF,#00
  3684.  
  3685. ;********************************************
  3686.  
  3687. BAD1FALL        ;1FALL RIGHT $140 320 BYTES
  3688.  
  3689.                 DB #FF,#00,#FC,#00,#1F,#00,#FF,#00,#FF,#00,#0F,#C0,#F8,#01,#FF,#00
  3690.                 DB #FF,#00,#F0,#02,#0F,#40,#FF,#00,#07,#00,#04,#20,#E0,#04,#FF,#00
  3691.                 DB #FF,#00,#E0,#04,#00,#20,#03,#00,#01,#F8,#00,#43,#C0,#0B,#FF,#00
  3692.                 DB #FF,#00,#80,#15,#00,#84,#00,#04,#00,#6A,#00,#08,#00,#2D,#FF,#00
  3693.                 DB #FF,#00,#00,#2E,#00,#48,#00,#62,#00,#22,#00,#B4,#00,#5D,#FE,#00
  3694.                 DB #FC,#00,#00,#0F,#00,#C0,#00,#22,#00,#02,#00,#BE,#00,#A7,#F8,#01
  3695.                 DB #F0,#02,#00,#53,#00,#7F,#00,#02,#00,#02,#00,#FF,#00,#10,#F0,#02
  3696.                 DB #F0,#02,#00,#3D,#00,#FB,#00,#44,#01,#B8,#00,#FA,#00,#3D,#F8,#01
  3697.                 DB #F8,#01,#00,#DD,#00,#F5,#03,#00,#47,#00,#00,#EA,#00,#2F,#FC,#00
  3698.                 DB #F8,#00,#00,#C7,#00,#9A,#7F,#00,#FF,#00,#00,#34,#00,#00,#F0,#03
  3699.                 DB #E0,#04,#00,#00,#00,#14,#FF,#00,#FF,#00,#01,#08,#00,#00,#E0,#04
  3700.                 DB #E0,#04,#00,#00,#01,#08,#FF,#00,#FF,#00,#01,#08,#00,#00,#C0,#04
  3701.                 DB #80,#04,#00,#50,#01,#08,#FF,#00,#FF,#00,#03,#70,#00,#30,#00,#34
  3702.                 DB #00,#4C,#00,#50,#07,#20,#FF,#00,#FF,#00,#0F,#40,#00,#50,#00,#44
  3703.                 DB #00,#44,#00,#90,#0F,#C0,#FF,#00,#FF,#00,#0F,#40,#00,#90,#00,#20
  3704.                 DB #00,#21,#00,#08,#07,#20,#FF,#00,#FF,#00,#03,#10,#60,#04,#80,#12
  3705.                 DB #C0,#0C,#F0,#02,#03,#10,#FF,#00,#FF,#00,#01,#08,#F8,#01,#E1,#00
  3706.                 DB #F3,#00,#FC,#00,#00,#C4,#FF,#00,#7F,#00,#00,#02,#F8,#01,#FF,#00
  3707.                 DB #FF,#00,#F0,#02,#00,#04,#FF,#00,#FF,#00,#01,#08,#F0,#02,#FF,#00
  3708.                 DB #FF,#00,#F8,#01,#03,#F0,#FF,#00,#FF,#00,#07,#00,#FC,#00,#FF,#00
  3709.  
  3710. ;*******************************
  3711.  
  3712. STAR1           DB #FF,#00,#7F,#00,#3F,#00,#FE,#00,#FC,#00,#1F,#80,#3F,#00,#FE,#00
  3713.                 DB #FC,#00,#1F,#80,#0F,#40,#F8,#01,#D0,#01,#05,#40,#00,#30,#80,#06
  3714.                 DB #00,#28,#00,#8A,#00,#30,#80,#06,#D0,#01,#05,#40,#0F,#40,#F8,#01
  3715.                 DB #FC,#00,#1F,#80,#3F,#00,#FE,#00,#FC,#00,#1F,#80,#3F,#00,#FE,#00
  3716. STAR2           DB #FF,#00,#FF,#00,#FF,#00,#FF,#00,#F7,#00,#F7,#00,#C3,#00,#E1,#00
  3717.                 DB #C0,#08,#81,#08,#03,#20,#E0,#02,#E0,#05,#03,#50,#07,#A0,#F0,#02
  3718.                 DB #F8,#01,#0F,#C0,#07,#A0,#F0,#02,#E0,#05,#03,#50,#03,#20,#E0,#02
  3719.                 DB #C0,#08,#81,#08,#C3,#00,#E1,#00,#F7,#00,#F7,#00,#FF,#00,#FF,#00
  3720.  
  3721. ;***************************************
  3722. ;** CODE END LABEL                    **
  3723. ;***************************************
  3724.  
  3725. CODEEND
  3726.  
  3727. ;**************************************************************************
  3728. ;** LEVEL STUFF                                                          **
  3729. ;**************************************************************************
  3730.  
  3731. LEVELDATA
  3732. LEVELEND        EQU LEVELDATA+$2000
  3733.  
  3734. LEVELSTARTUP    DB $FF,$FF         ; HERO X,Y
  3735. MAPXS           DB $FF             ; MAPX
  3736. MAPYS           DB $FF             ; MAPY
  3737. MAPDIRS         DB 0               ; 0=SCROLL L/R - 1=SCR0LL U/D
  3738. WEPROOMX        DB $FF             ; WEAPON ROOM X INIT
  3739. WEPROOMY        DB $FF             ; WEAPON ROOM Y INIT
  3740. DOORXY          DW $FFFF           ; DOOR XY
  3741. RM              DB $FF             ; RIGHTMAX
  3742. RDM             DB $FF             ; DOWNMAX
  3743. UD              DB $FF             ; SETUD
  3744. LR              DB $FF             ; SETLR
  3745. FLOORTESTBYTES  DW $FFFF           ; FLOOR BLOCKS
  3746. FLOORWALLBYTES  DW $FFFF           ; WALL BLOCKS
  3747. LD1             DB $FF             ; LADDER BLOCKS - $FF,$FF
  3748. LD2             DB $FF             ; LADDER BLOCKS - $FF,$FF
  3749. CR1             DB $FF             ; CRAWL ON BLOCK
  3750. SL1             DB $FF             ; SLIDE UP
  3751. SL2             DB $FF             ; SLIDE UP
  3752. SL3             DB $FF             ; SLIDE DOWN
  3753. SL4             DB $FF             ; SLIDE DOWN
  3754. BADDYINITSX     DW $FFFF           ; LEVEL BADDY INITS X
  3755. BADDYINITSX2    DW $FFFF           ; LEVEL BADDY INITS X2
  3756. BADDYINITSY     DW $FFFF           ; LEVEL BADDY INITS Y
  3757. CHRS            DW $FFFF           ; CHRS
  3758. ATRS            DW $FFFF           ; ATRS
  3759. BLOX            DW $FFFF           ; BLOX
  3760. MAP1            DW $FFFF           ; MAPX
  3761. MAP2            DW $FFFF           ; MAPY
  3762. MAXMAP          DB 0               ; MAPXMAXSIZE
  3763.  
  3764. PRTLEVELBACK    LD HL,0:LD HL,0:LD HL,0:RET
  3765. RESETLEVELBAD   JP RETURN
  3766. SMODLEVEL       JP RETURN
  3767. WAPTABLE        DB $00,0,$00,0,$00,0,$00,0,$00,0,$00,0
  3768. KILLBIG         JP RETURN
  3769. INITBIG1        JP RETURN
  3770. INITBIG2        JP RETURN
  3771. INITBIG3        JP RETURN
  3772. INITBIG4        JP RETURN
  3773.  
  3774.                         ENDIF
  3775.  
  3776. ;*****************************************************************************
  3777. ;** END OF FILE                                                             **
  3778. ;*****************************************************************************