Subversion Repositories NedoOS

Rev

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