6270: Data block at 6270
6270 DEFB $3E,$00,$00,$00,$00,$00,$00,$00
6278 DEFB $00,$00,$00,$00,$00,$00,$00,$00
6280 DEFB $00,$00,$00,$00,$00,$00,$00,$00
6288 DEFB $00
6289: Show title picture (two ninjas)
Used by the routine at BC0D.
6289 LD HL,$62DB Encoded picture data address
628C LD DE,$6590 Tile screens address, used as a buffer
628F LD A,(HL) Load next byte of picture data
6290 CP $02 check for control byte $02 - end of sequence
6292 JR Z,$62A9 => Copy the buffer to screen
6294 INC HL move to next source byte
6295 CP $00 check for repeater marker
6297 JR Z,$62A1 => repeat byte N times
6299 CP $FF check for block marker
629B JR Z,$62A1 => repeat byte N times
629D LD (DE),A Store regular byte into tile screen
629E INC DE next buffer address
629F JR $628F Loop back to process next byte
62A1 LD B,(HL) get repeat count
62A2 LD (DE),A store repeated byte in buffer
62A3 INC DE next buffer address
62A4 DJNZ $62A2 repeat B times
62A6 INC HL move to next source byte
62A7 JR $628F continue processing
Buffer is ready, copy to screen
62A9 LD HL,$4000 Start of screen
62AC LD DE,$6590 Tile screens address
62AF LD C,$0C Number of columns = 12
62B1 PUSH HL save screen address
62B2 LD B,$18 Number of rows = 24
62B4 PUSH HL save screen address
62B5 PUSH BC save counters
62B6 LD B,$08 8 lines
62B8 LD A,(DE) get picture byte
62B9 OR (HL) bitwise OR with screen pixels
62BA LD (HL),A put to the screen
62BB INC DE next address in the buffer
62BC INC H next line
62BD DJNZ $62B8 Repeat 8 times
62BF POP BC restore counters
62C0 POP HL save screen address
62C1 RR H
62C3 RR H
62C5 RR H
62C7 PUSH DE save address in picture buffer
62C8 LD DE,$0020 32
62CB ADD HL,DE move HL to next tile row
62CC POP DE restore address in picture buffer
62CD RL H
62CF RL H
62D1 RL H
62D3 DJNZ $62B4 continue loop for rows
62D5 POP HL restore screen address
62D6 INC HL next column
62D7 DEC C decrement column counter
62D8 JR NZ,$62B1 continue loop for columns
62DA RET
62DB: Title picture (two ninjas), RLE encoded
62DB DEFB $00,$07,$FF,$01,$00,$01,$FF,$01
62E3 DEFB $03,$00,$14,$01,$01,$01,$01,$01
62EB DEFB $01,$01,$03,$03,$03,$03,$03,$03
62F3 DEFB $03,$03,$07,$07,$0F,$0F,$1F,$1F
62FB DEFB $0F,$0F,$0F,$07,$07,$07,$07,$03
6303 DEFB $03,$03,$01,$01,$01,$00,$05,$01
630B DEFB $01,$01,$01,$03,$03,$03,$07,$07
6313 DEFB $07,$07,$03,$01,$00,$01,$01,$03
631B DEFB $07,$03,$01,$01,$01,$03,$03,$07
6323 DEFB $07,$0F,$0F,$0F,$0F,$0F,$0F,$1F
632B DEFB $6F,$EF,$F7,$F7,$FF,$01,$F7,$E7
6333 DEFB $07,$07,$07,$03,$03,$03,$03,$03
633B DEFB $03,$03,$03,$03,$01,$01,$01,$01
6343 DEFB $01,$01,$01,$01,$01,$03,$07,$07
634B DEFB $07,$03,$03,$03,$01,$01,$01,$01
6353 DEFB $01,$00,$01,$01,$01,$01,$03,$07
635B DEFB $03,$01,$01,$01,$01,$01,$01,$01
6363 DEFB $00,$07,$01,$01,$01,$01,$01,$01
636B DEFB $01,$00,$01,$01,$01,$01,$03,$03
6373 DEFB $03,$03,$03,$01,$00,$13,$80,$7E
637B DEFB $FF,$01,$F8,$07,$00,$0D,$01,$07
6383 DEFB $0F,$3F,$7F,$FF,$97,$7F,$3F,$1F
638B DEFB $00,$10,$07,$F8,$0A,$FD,$1D,$17
6393 DEFB $10,$0F,$00,$05,$01,$0F,$3F,$FF
639B DEFB $03,$FE,$FC,$F8,$FB,$F7,$EF,$EF
63A3 DEFB $DF,$DF,$DF,$BF,$7F,$7E,$7E,$BF
63AB DEFB $BF,$DF,$EF,$FF,$07,$F8,$FF,$3C
63B3 DEFB $FD,$FC,$FC,$F8,$F8,$F8,$F0,$F8
63BB DEFB $F8,$F8,$FC,$FC,$FC,$FE,$FE,$FE
63C3 DEFB $FF,$0B,$FE,$FE,$FE,$FC,$FC,$FC
63CB DEFB $FC,$F9,$F8,$F8,$F8,$F0,$F0,$F0
63D3 DEFB $E0,$E0,$E0,$C0,$C0,$C0,$C0,$C0
63DB DEFB $80,$80,$80,$80,$80,$C0,$E0,$E0
63E3 DEFB $E0,$F0,$F8,$F8,$F8,$FC,$FC,$FC
63EB DEFB $FE,$FE,$FE,$FC,$F8,$C0,$00,$10
63F3 DEFB $E0,$78,$8D,$23,$4F,$4F,$FF,$01
63FB DEFB $0F,$9F,$7F,$7F,$7F,$FF,$02,$FC
6403 DEFB $F8,$E0,$C0,$00,$04,$FC,$FF,$07
640B DEFB $00,$01,$FF,$01,$3F,$C0,$FE,$FE
6413 DEFB $FF,$04,$FB,$FB,$F7,$CF,$3F,$FF
641B DEFB $15,$FE,$FE,$FE,$FC,$FC,$FD,$FB
6423 DEFB $FB,$F7,$F7,$EF,$EF,$F7,$F7,$F4
642B DEFB $F8,$F8,$FC,$FE,$FE,$FE,$FF,$14
6433 DEFB $7F,$0F,$01,$00,$05,$01,$01,$01
643B DEFB $03,$07,$07,$07,$07,$07,$0F,$0F
6443 DEFB $0F,$0F,$0F,$1F,$1F,$1F,$1F,$1F
644B DEFB $3F,$7F,$7F,$7F,$FF,$06,$FE,$00
6453 DEFB $31,$F8,$FC,$FE,$FE,$FE,$FC,$FC
645B DEFB $FC,$FE,$FF,$03,$7F,$3F,$1F,$1F
6463 DEFB $1F,$3F,$3F,$3F,$7F,$7F,$FF,$05
646B DEFB $7F,$7F,$7F,$7F,$7F,$FF,$06,$FE
6473 DEFB $F8,$F0,$F0,$E0,$C0,$80,$80,$C0
647B DEFB $C0,$E0,$E0,$E0,$E0,$C0,$C0,$C0
6483 DEFB $C0,$C0,$80,$80,$80,$80,$00,$09
648B DEFB $80,$C0,$E0,$E0,$F0,$E0,$C0,$00
6493 DEFB $02,$01,$01,$01,$01,$01,$01,$00
649B DEFB $01,$C0,$E0,$F0,$FC,$FE,$FF,$33
64A3 DEFB $00,$3C,$80,$80,$C0,$C0,$C0,$E0
64AB DEFB $E0,$E0,$F0,$F0,$F8,$F8,$F8,$F0
64B3 DEFB $F0,$E0,$C0,$C0,$C0,$C0,$C0,$80
64BB DEFB $80,$80,$80,$00,$19,$01,$03,$03
64C3 DEFB $07,$07,$07,$07,$0F,$3F,$3F,$07
64CB DEFB $07,$07,$07,$07,$07,$07,$7F,$FF
64D3 DEFB $0C,$7F,$BF,$DF,$EF,$F7,$F7,$FB
64DB DEFB $FB,$FB,$FB,$FB,$FB,$FB,$FB,$FD
64E3 DEFB $FD,$FD,$FD,$FD,$FB,$FB,$F7,$F7
64EB DEFB $EF,$EF,$DF,$DF,$BF,$BF,$BF,$BF
64F3 DEFB $BF,$BF,$BF,$7F,$7F,$7F,$7F,$78
64FB DEFB $00,$03,$80,$C0,$F0,$F8,$F8,$FC
6503 DEFB $FE,$FC,$F8,$C0,$00,$6B,$0F,$3F
650B DEFB $FF,$05,$FE,$F0,$FF,$38,$F8,$F0
6513 DEFB $E0,$C0,$00,$7B,$C0,$F0,$F8,$FC
651B DEFB $FC,$FC,$FC,$04,$04,$FC,$FC,$FC
6523 DEFB $FC,$FC,$F8,$F8,$FF,$30,$00,$02
652B DEFB $01,$01,$01,$01,$01,$03,$03,$03
6533 DEFB $03,$03,$01,$00,$83,$80,$F0,$FE
653B DEFB $FF,$02,$F8,$07,$FF,$07,$7F,$1F
6543 DEFB $07,$01,$00,$07,$E0,$FC,$FF,$22
654B DEFB $00,$86,$38,$FF,$0E,$1F,$03,$00
6553 DEFB $07,$E0,$FF,$15,$FE,$FC,$F8,$F0
655B DEFB $E0,$F0,$F8,$F8,$F8,$F8,$F8,$00
6563 DEFB $88,$80,$C0,$C0,$C0,$80,$80,$00
656B DEFB $03,$80,$F0,$FE,$FF,$04,$1F,$0F
6573 DEFB $00,$06,$C0,$FE,$FF,$09,$FE,$FC
657B DEFB $FC,$FC,$F8,$F0,$E0,$C0,$80,$00
6583 DEFB $9D,$38,$FC,$FC,$F8,$F0,$F0,$F0
658B DEFB $E0,$00,$9A,$02
658F DEFB $00
6590: Tile screen 0 30x17 tiles, 510 bytes - background
Used by the routine at F9E4.
Code to show anti-piracy message just once at the very beginning
6590 LD HL,$5800 Start of screen attribute area
6593 LD DE,$5801 Start of screen attribute area + 1
6596 LD BC,$0020 32
6599 LD (HL),$46 set the attribute
659B LDIR copy to the rest of the row
659D LD BC,$02C0 704 = 22 attribute rows
65A0 LD (HL),$0F set the attribute
65A2 LDIR
65A4 LD BC,$001F
65A7 LD (HL),$06
65A9 LDIR
65AB LD HL,$58E0
65AE LD DE,$0000
65B1 LD C,$07
65B3 LD A,$06
65B5 LD B,$20
65B7 LD (HL),A
65B8 INC HL
65B9 DJNZ $65B7
65BB ADD HL,DE
65BC DEC C
65BD JR NZ,$65B5
65BF LD HL,$65E7 Start of anti-piracy message
65C2 LD DE,$4000 Screen address
65C5 LD C,$00
65C7 CALL $AED1 Print string
65CA LD DE,$4800 Screen address
65CD LD C,$00
65CF CALL $AED1 Print string
65D2 LD DE,$5000 Screen address
65D5 LD C,$00
65D7 CALL $AED1 Print string
Wait for any key and RET
65DA XOR A
65DB LD ($5C08),A clear LASTK
65DE RST $38
65DF LD A,($5C08) check LASTK
65E2 CP $00 any key?
65E4 JR Z,$65DA no => wait
65E6 RET
65E7: Start of anti-piracy message
65E7 DEFM " ",$60
65F2 DEFM "100 REWARD If your copy of this game doesnot have a"
6633 DEFM " blue cassette bodywith DURELL embossed on it, anddoes not have"
6674 DEFM " DURELL on the leadin strip then it is a forgery. Please send a"
66B5 DEFM "ny forgeries to DURELL SOFTWARE Ltd. Castle "
66F6 DEFM "Lodge Castle Green TAUNTO"
6737 DEFM "N TA1 4AB Somerse"
6778 DEFM "t "
678E: Tile screen 1 30x17 tiles, 510 bytes - update flags
678E DEFM " ENGLAND with your name and address,and the "
67CF DEFM "name and address of theperson who supplied you withthe forge"
6810 DEFM "ry. You will be sent a genuinereplacemen"
6851 DEFM "t copy and a reward of"
6867 DEFM $60
6868 DEFM "100 if your information leads to a successful prosecution. "
68A9 DEFM " PRESS ANY KEY TO CONTINUE "
68E7 DEFB $00,$00,$01,$01,$01,$01,$01,$01
68EF DEFB $00,$C0,$E0,$F0,$FC,$FE,$FF
68F6 DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
6914 DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
6932 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
6950 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$80,$80,$C0,$C0,$C0,$E0,$E0,$E0,$F0,$F0
696E DEFB $F8,$F8,$F8,$F0,$F0,$E0,$C0,$C0,$C0,$C0,$C0,$80,$80,$80,$80,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
698C: Tile screen 2 30x17 tiles, 510 bytes - Ninja screen
698C DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$01,$03,$03,$07,$07,$07,$07,$0F,$3F,$3F,$07,$07,$07,$07,$07,$07,$07,$7F,$FF,$FF
69AA DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$7F,$BF,$DF,$EF,$F7,$F7,$FB,$FB,$FB,$FB,$FB,$FB,$FB,$FB,$FD,$FD,$FD,$FD,$FD,$FB
69C8 DEFB $FB,$F7,$F7,$EF,$EF,$DF,$DF,$BF,$BF,$BF,$BF,$BF,$BF,$BF,$7F,$7F,$7F,$7F,$78,$00,$00,$00,$80,$C0,$F0,$F8,$F8,$FC,$FE,$FC
69E6 DEFB $F8,$C0,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
6A04 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
6A22 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
6A40 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$0F,$3F,$FF,$FF,$FF,$FF,$FF,$FE,$F0,$FF,$FF
6A5E DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
6A7C DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$F8,$F0,$E0,$C0,$00,$00
6A9A DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
6AB8 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
6AD6 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
6AF4 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
6B12 DEFB $00,$C0,$F0,$F8,$FC,$FC,$FC,$FC,$04,$04,$FC,$FC,$FC,$FC,$FC,$F8,$F8,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
6B30 DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
6B4E DEFB $FF,$FF,$FF,$FF,$FF,$00,$00,$01,$01,$01,$01,$01,$03,$03,$03,$03,$03,$01,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
6B6C DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
6B8A: Tile screen 3 30x17 tiles, 510 bytes - Dog screen
6B8A DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
6BA8 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
6BC6 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$80
6BE4 DEFB $F0,$FE,$FF,$FF,$F8,$07,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$7F,$1F,$07,$01,$00,$00,$00,$00,$00,$00,$00,$E0,$FC,$FF,$FF,$FF,$FF
6C02 DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
6C20 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
6C3E DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
6C5C DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
6C7A DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
6C98 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$38,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$1F
6CB6 DEFB $03,$00,$00,$00,$00,$00,$00,$00,$E0,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
6CD4 DEFB $FE,$FC,$F8,$F0,$E0,$F0,$F8,$F8,$F8,$F8,$F8,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
6CF2 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
6D10 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
6D2E DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
6D4C DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$80,$C0,$C0
6D6A DEFB $C0,$80,$80,$00,$00,$00,$80,$F0,$FE,$FF,$FF,$FF,$FF,$1F,$0F,$00,$00,$00,$00,$00,$00,$C0,$FE,$FF,$FF,$FF,$FF,$FF,$FF,$FF
6D88: Tile screen 4 30x17 tiles, 510 bytes - Guard screen
6D88 DEFB $FF,$FF,$FE,$FC,$FC,$FC,$F8,$F0,$E0,$C0,$80,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
6DA6 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
6DC4 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
6DE2 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
6E00 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
6E1E DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$38,$FC,$FC,$F8,$F0,$F0,$F0,$E0,$00,$00,$00,$00
6E3C DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
6E5A DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
6E78 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
6E96 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
6EB4 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
6ED2 DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
6EF0 DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
6F0E DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
6F2C DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
6F4A DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
6F68 DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
6F86: Tile screen 5 30x17 tiles, 510 bytes - front
6F86 DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
6FA4 DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
6FC2 DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
6FE0 DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
6FFE DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
701C DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
703A DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
7058 DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
7076 DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
7094 DEFB $FF,$FF,$FF,$14,$15,$16,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
70B2 DEFB $FF,$FF,$FF,$17,$18,$19,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
70D0 DEFB $FF,$FF,$FF,$1A,$1B,$1C,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
70EE DEFB $FF,$FF,$14,$15,$00,$01,$01,$01,$02,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$00,$01,$01,$02,$FF,$FF,$FF,$FF
710C DEFB $FF,$FF,$17,$18,$03,$04,$04,$04,$05,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$03,$04,$04,$05,$FF,$FF,$FF,$FF
712A DEFB $FF,$FF,$1A,$1B,$06,$07,$07,$07,$08,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$06,$07,$07,$08,$FF,$FF,$FF,$FF
7148 DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
7166 DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
7184: Data block at 7184
7184 DEFW $84A8 Current Room address
7186 DEFW $A0B5 Ninja sprite address
7188: Blocks for rooms
7188 DEFB $FF,$2F,$30,$31,$32,$FF Front block 6x2 - pile of garbage
718E DEFB $33,$34,$35,$36,$37,$38
7194 DEFB $0E,$0F,$10,$11 Back block 4x3 - pier fencing
7198 DEFB $12,$0D,$0D,$0D
719C DEFB $12,$0D,$0D,$0D
71A0 DEFB $00,$01,$02 Front block 3x3 - box
71A3 DEFB $03,$04,$05
71A6 DEFB $06,$07,$08
71A9 DEFB $0D,$0D,$0D,$0E Front block 4x4 - computer part
71AD DEFB $0F,$10,$10,$11
71B1 DEFB $0D,$13,$0D,$0D
71B5 DEFB $12,$12,$12,$12
71B9 DEFB $07,$0A Back block 2x1 - ladder black on blue
71BB DEFB $1F,$20 Front block 2x4 - console
71BD DEFB $21,$22
71BF DEFB $23,$24
71C1 DEFB $25,$26
71C3: Current Guard data
71C3 DEFW $0101 Current Guard position in tilemap
71C5 DEFB $11 Current Guard X position
71C6 DEFB $08 Current Guard Y position
71C7: Data block at 71C7
71C7 DEFB $0E,$00,$0E,$00
71CB: Current Dog data, 9 bytes
71CB DEFW $018E Dog position in tilemap
71CD DEFB $00 Dog direction
71CE DEFB $08 Dog X position
71CF DEFB $00 Dog ??
71D0 DEFB $07 Dog's left limit
71D1 DEFB $17 Dog's right limit
71D2 DEFB $00 Dog ??
71D3 DEFB $06 Dog Y position
71D4: Data block at 71D4
71D4 DEFB $F3 ??
71D5 DEFB $01 ??
71D6 DEFB $7A,$00,$00,$02,$00,$01,$16,$00,$FD Room 79C6 dog data
71DF DEFB $9E,$00,$01,$08,$00,$01,$16,$01
71E7 DEFB $FE,$B8,$67,$B0,$6F,$0A,$D9,$67
71EF DEFB $D1,$6F,$0D
71F2: Sprite Dog 1
71F2 DEFB $FF,$00,$FF,$01
71F6 DEFB $02,$03,$04,$05
71FA DEFB $06,$07,$08,$09
71FE: Sprite Dog 2
71FE DEFB $FF,$FF,$0A,$0B
7202 DEFB $0C,$0D,$0E,$0F
7206 DEFB $10,$11,$12,$13
720A: Sprite Dog 3
720A DEFB $FF,$14,$15,$16
720E DEFB $17,$18,$19,$1A
7212 DEFB $1B,$1C,$1D,$1E
7216: Sprite Dog 4
7216 DEFB $FF,$1F,$20,$FF
721A DEFB $21,$22,$23,$24
721E DEFB $25,$26,$27,$FF
7222: Data block at 7222
7222 DEFB $00 Input method: 1 = Joystick, 0 = Keyboard or Protek
7223 DEFB $EF,$01,$04 Ports and bits for the current input method
7226 DEFB $EF,$08,$03
7229 DEFB $EF,$10,$02
722C DEFB $F7,$10,$01
722F DEFB $EF,$04,$00
7232 DEFB $00 Input bits: 000FUDLR
7233 DEFW $5A41 Screen attributes address stored during tile map drawing
7235 DEFW $7184 Tile screen 5 address stored during tile map drawing
7237 DEFW $6F86 Tile screen 4 address stored during tile map drawing
7239 DEFB $00 Byte mirror flag
723A: Mirror table
723A DEFB $01,$81,$41,$C1,$21,$A1,$61,$E1,$11,$91,$51,$D1,$31,$B1,$71,$F1 Mirror table 1st part
724A DEFB $09,$89,$49,$C9,$29,$A9,$69,$E9,$19,$99,$59,$D9,$39,$B9,$79,$F9
725A DEFB $05,$85,$45,$C5,$25,$A5,$65,$E5,$15,$95,$55,$D5,$35,$B5,$75,$F5
726A DEFB $0D,$8D,$4D,$CD,$2D,$AD,$6D,$ED,$1D,$9D,$5D,$DD,$3D,$BD,$7D,$FD
727A DEFB $03,$83,$43,$C3,$23,$A3,$63,$E3,$13,$93,$53,$D3,$33,$B3,$73,$F3
728A DEFB $0B,$8B,$4B,$CB,$2B,$AB,$6B,$EB,$1B,$9B,$5B,$DB,$3B,$BB,$7B,$FB
729A DEFB $07,$87,$47,$C7,$27,$A7,$67,$E7,$17,$97,$57,$D7,$37,$B7,$77,$F7
72AA DEFB $0F,$8F,$4F,$CF,$2F,$AF,$6F,$EF,$1F,$9F,$5F,$DF,$3F,$BF,$7F,$FF
72BA DEFB $00,$80,$40,$C0,$20,$A0,$60,$E0,$10,$90,$50,$D0,$30,$B0,$70,$F0 Mirror table 2nd part
72CA DEFB $08,$88,$48,$C8,$28,$A8,$68,$E8,$18,$98,$58,$D8,$38,$B8,$78,$F8
72DA DEFB $04,$84,$44,$C4,$24,$A4,$64,$E4,$14,$94,$54,$D4,$34,$B4,$74,$F4
72EA DEFB $0C,$8C,$4C,$CC,$2C,$AC,$6C,$EC,$1C,$9C,$5C,$DC,$3C,$BC,$7C,$FC
72FA DEFB $02,$82,$42,$C2,$22,$A2,$62,$E2,$12,$92,$52,$D2,$32,$B2,$72,$F2
730A DEFB $0A,$8A,$4A,$CA,$2A,$AA,$6A,$EA,$1A,$9A,$5A,$DA,$3A,$BA,$7A,$FA
731A DEFB $06,$86,$46,$C6,$26,$A6,$66,$E6,$16,$96,$56,$D6,$36,$B6,$76,$F6
732A DEFB $0E,$8E,$4E,$CE,$2E,$AE,$6E,$EE,$1E,$9E,$5E,$DE,$3E,$BE,$7E,$FE
733A: Data block at 733A
733A DEFB $00 Ninja walking phase
733B: Table of four addresses of Ninja/Guard walking sprites
733B DEFW $D3DE Sprite Ninja/Guard walking 1
733D DEFW $D408 Sprite Ninja/Guard walking 2
733F DEFW $D432 Sprite Ninja/Guard walking 3
7341 DEFW $D45C Sprite Ninja/Guard walking 4
7343: Data block at 7343
7343 DEFB $07 Counter used in movement handlers
7344 DEFB $00 Dog's flag: 1 = ignore left/right limit
7345 DEFB $14 Dog ??
7346 DEFB $0A Guard walking phase $00..$03 or other state: $09 = Guard dead; ...
7347 DEFB $01 Guard direction
7348 DEFB $05,$08
734A: Proceed to the next room token (redirect to B702)
Used by the routines at 734D, 7359, 7361, 7381, 73A4, 73C5, 73F3, 7406, 742B, 7452 and B38F.
734A JP $B702
734D: Room token #0E: Put one tile at the given address; params: 3 bytes (tile, address)
734D POP HL Restore token sequence address
734E INC HL Skip token byte
734F LD C,(HL) get tile byte
7350 INC HL
7351 LD A,(HL) get address low byte
7352 INC HL
7353 PUSH HL
7354 LD H,(HL) get address high byte
7355 LD L,A
7356 LD (HL),C put tile into tilemap
7357 JR $734A => B702 Proceed to the next room token
7359: Room token #0D: Set border color; params: 1 byte
7359 POP HL Restore token sequence address
735A INC HL Skip token byte
735B LD A,(HL) get byte
735C PUSH HL
735D OUT ($FE),A
735F JR $734A => B702 Proceed to the next room token
7361: Room token #?? - Draw frame with one tile; params: 1 byte - UNUSED
7361 POP HL Restore token sequence address
7362 INC HL Skip token byte
7363 LD A,(HL) get tile byte
7364 PUSH HL
7365 LD HL,$6590 Tile screen 0 start address
7368 LD B,$1E 30
736A LD (HL),A
736B INC HL
736C DJNZ $736A
736E LD B,$0F
7370 LD DE,$001D
7373 LD (HL),A
7374 ADD HL,DE
7375 LD (HL),A
7376 INC HL
7377 DJNZ $7373
7379 LD B,$1E
737B LD (HL),A
737C INC HL
737D DJNZ $737B
737F JR $734A => B702 Proceed to the next room token
7381: Room token #01: Fill to down; params: 4 bytes (count, filler, address)
7381 LD DE,$001E 30
This entry point is used by the routines at 7395, 739A and 739F.
7384 POP HL Restore token sequence address
7385 INC HL Skip token byte
7386 LD B,(HL) get count byte
7387 INC HL
7388 LD C,(HL) get tile byte
7389 INC HL
738A LD A,(HL) get address low byte
738B INC HL
738C PUSH HL
738D LD H,(HL) get address high byte
738E LD L,A
738F LD (HL),C
7390 ADD HL,DE
7391 DJNZ $738F
7393 JR $734A => B702 Proceed to the next room token
7395: Room token #0A: Fill to down-right; params: 4 bytes (count, filler, address)
7395 LD DE,$001F 30 + 1
7398 JR $7384
739A: Room token #0B: Fill to down-left; params: 4 bytes (count, filler, address)
739A LD DE,$001D 30 - 1
739D JR $7384
739F: Room token #02: Fill to right; params: 4 bytes (count, filler, address)
739F LD DE,$0001
73A2 JR $7384
73A4: Room token #06: Fill triangle from wide top
73A4 LD A,$23 A = "INC HL" command
This entry point is used by the routine at 73EF.
73A6 LD ($73BB),A set the command
73A9 POP HL Restore token sequence address
73AA INC HL Skip token byte
73AB LD D,(HL) get filler tile
73AC INC HL
73AD LD B,(HL) get count
73AE INC HL
73AF LD A,(HL) get address low byte
73B0 INC HL
73B1 PUSH HL
73B2 LD H,(HL) get address high byte
73B3 LD L,A
73B4 LD A,D
73B5 LD DE,$001E 30
73B8 PUSH HL
73B9 LD C,B
73BA LD (HL),A
73BB INC HL !!MUT-CMD!! "INC HL" or "DEC HL"
73BC DEC C
73BD JR NZ,$73BA
73BF POP HL
73C0 ADD HL,DE next row
73C1 DJNZ $73B8
73C3 JR $734A => B702 Proceed to the next room token
73C5: Room token #07: Fill triangle from wide bottom; params: 4 bytes (filler, count, address)
73C5 LD A,$23 A = "INC HL" command
This entry point is used by the routine at 73EB.
73C7 LD ($73DE),A set the command
73CA POP HL Restore token sequence address
73CB INC HL Skip token byte
73CC LD D,(HL) get filler tile
73CD INC HL
73CE LD B,(HL) get count
73CF INC HL
73D0 LD A,(HL) get address low byte
73D1 INC HL
73D2 PUSH HL
73D3 LD H,(HL) get address high byte
73D4 LD L,A
73D5 LD A,D
73D6 LD DE,$001E 30
73D9 LD C,$01
73DB PUSH HL
73DC PUSH BC
73DD LD (HL),A
73DE INC HL !!MUT-CMD!! "INC HL" or "DEC HL"
73DF DEC C
73E0 JR NZ,$73DD
73E2 POP BC
73E3 INC C
73E4 POP HL
73E5 ADD HL,DE next row
73E6 DJNZ $73DB
73E8 JP $734A => B702 Proceed to the next room token
73EB: Room token #08: Fill triangle from wide bottom; params: 4 bytes (filler, count, address)
73EB LD A,$2B A = "DEC HL" command
73ED JR $73C7
73EF: Room token #09: Fill triangle from wide top
73EF LD A,$2B A = "DEC HL" command
73F1 JR $73A6
73F3: Room token #04: Fill whole Tile screen 0 with one tile; params: 1 byte (filler)
73F3 POP HL Restore token sequence address
73F4 INC HL Skip token byte
73F5 LD A,(HL) get tile byte
73F6 PUSH HL
73F7 LD HL,$6590 Tile screen 0 start address
73FA LD DE,$6591 Tile screen 0 start address + 1
73FD LD (HL),A
73FE LD BC,$01FD 510 - 1
7401 LDIR
7403 JP $734A => B702 Proceed to the next room token
7406: Room token #05: Copy block of tiles; params: 6 bytes (width, height, srcaddr, address)
7406 POP HL Restore token sequence address
7407 INC HL Skip token byte
7408 LD B,(HL) get width byte
7409 INC HL
740A LD C,(HL) get height byte
740B INC HL
740C LD E,(HL) get source address low byte
740D INC HL
740E LD D,(HL) get source address high byte
740F INC HL
7410 LD A,(HL) get address low byte
7411 INC HL
7412 PUSH HL
7413 LD H,(HL) get address high byte
7414 LD L,A
7415 PUSH BC
7416 PUSH HL
7417 LD A,(DE)
7418 LD (HL),A
7419 INC HL
741A INC DE
741B DJNZ $7417 continue loop by columns
741D POP HL
741E PUSH DE
741F LD DE,$001E 30
7422 ADD HL,DE
7423 POP DE
7424 POP BC
7425 DEC C
7426 JR NZ,$7415 continue loop by rows
7428 JP $734A => B702 Proceed to the next room token
742B: Room token #0C: Copy block of tiles N times; params: 6 bytes (srcaddr, width, count, address)
742B POP HL Restore token sequence address
742C INC HL Skip token byte
742D LD E,(HL) get source address low byte
742E INC HL
742F LD D,(HL) get source address high byte
7430 INC HL
7431 LD C,(HL) get width byte
7432 INC HL
7433 LD B,(HL) get height byte
7434 INC HL
7435 LD A,(HL) get address low byte
7436 INC HL
7437 PUSH HL
7438 LD H,(HL) get address high byte
7439 LD L,A
743A PUSH HL
743B PUSH BC
743C PUSH DE
743D LD A,(DE)
743E LD (HL),A
743F INC HL
7440 INC DE
7441 DEC C
7442 JR NZ,$743D continue loop by columns
7444 POP DE
7445 POP BC
7446 POP HL
7447 PUSH DE
7448 LD DE,$001E 30
744B ADD HL,DE
744C POP DE
744D DJNZ $743A continue loop by rows
744F JP $734A => B702 Proceed to the next room token
7452: Room token #03: Fill rectangle; params: 5 bytes (filler, width, height, address)
7452 POP HL Restore token sequence address
7453 INC HL Skip token byte
7454 LD D,(HL)
7455 INC HL
7456 LD C,(HL)
7457 INC HL
7458 LD B,(HL)
7459 INC HL
745A LD A,(HL)
745B INC HL
745C PUSH HL
745D LD H,(HL)
745E LD L,A
745F LD A,D
7460 LD DE,$001E 30
7463 PUSH HL
7464 PUSH BC
7465 LD (HL),A
7466 INC HL
7467 DEC C
7468 JR NZ,$7465
746A POP BC
746B POP HL
746C ADD HL,DE
746D DJNZ $7463
746F JP $734A => B702 Proceed to the next room token
7472: Routine at 7472
Used by the routine at B5C7.
7472 DI
7473 LD ($74F1),SP
7477 LD SP,$753B
747A LD DE,$0005
747D LD A,$FF
747F LD C,$10
7481 POP HL
7482 ADD HL,DE
7483 LD B,$0F
7485 LD (HL),A
7486 INC HL
7487 DJNZ $7485
7489 DEC C
748A JR NZ,$7481
748C LD SP,($74F1)
7490 LD A,$13
7492 LD ($749C),A set Energy = MAX
7495 LD A,$01
7497 LD ($749D),A
749A EI
749B RET
749C: Data block at 749C
749C DEFB $13 Energy $04..$13
749D DEFB $01 Energy lower, running bit
749E: Decreasing Energy
Used by the routine at 9DD9.
749E DI
749F LD ($74F1),SP
74A3 LD SP,$753B
74A6 LD A,($749C) get Energy
74A9 LD E,A
74AA LD D,$00
74AC LD B,$10
74AE LD A,($749D)
74B1 LD C,A
74B2 POP HL
74B3 ADD HL,DE
74B4 LD A,C
74B5 XOR (HL)
74B6 LD (HL),A
74B7 DJNZ $74B2
74B9 LD A,($749D)
74BC RLC A
74BE LD ($749D),A
74C1 JR NC,$74C7
74C3 LD HL,$749C Energy address
74C6 DEC (HL) Decrease Energy
74C7 LD SP,($74F1)
74CB EI
74CC RET
74CD: Draw NEAR/HELD item
Used by the routine at B889.
74CD LD A,$00 !!MUT-ARG!! item number
74CF LD H,$00
74D1 LD L,A
74D2 ADD HL,HL
74D3 LD DE,$B5B0 !!MUT-ARG!! address for Table of items
74D6 ADD HL,DE
74D7 LD E,(HL)
74D8 INC HL
74D9 LD D,(HL)
74DA DI
74DB LD ($74F1),SP
74DF LD SP,$751B
74E2 LD C,$18
74E4 POP HL
74E5 LD B,$04
74E7 LD A,(DE)
74E8 LD (HL),A
74E9 INC DE
74EA INC HL
74EB DJNZ $74E7
74ED DEC C
74EE JR NZ,$74E4
74F0 LD SP,$6255
74F3 LD HL,$5A61
74F6 LD C,$03
74F8 LD B,$04
74FA LD A,(DE)
74FB LD (HL),A
74FC INC HL
74FD INC DE
74FE DJNZ $74FA
7500 PUSH DE
7501 LD DE,$001C 28
7504 ADD HL,DE
7505 POP DE
7506 DEC C
7507 JR NZ,$74F8
7509 EI
750A RET
750B: Data block at 750B
750B DEFB $00,$00,$6C,$00,$D8,$00,$44,$01
7513 DEFB $B0,$01,$1C,$02,$88,$02,$F4,$02
751B: Data block at 751B
751B DEFW $5061,$5161,$5261,$5361
7523 DEFW $5461,$5561,$5661,$5761
752B DEFW $5081,$5181,$5281,$5381
7533 DEFW $5481,$5581,$5681,$5781
753B DEFW $50A1,$51A1,$52A1,$53A1
7543 DEFW $54A1,$55A1,$56A1,$57A1
754B DEFW $50C1,$51C1,$52C1,$53C1
7553 DEFW $54C1,$55C1,$56C1,$57C1
755B: Data block at 755B
755B DEFB $00 Ninja falling count, to decrease Energy on hit
755C: Data block at 755C
755C DEFB $00,$00,$00,$00,$00,$00,$00,$00
7564 DEFB $00,$00,$00,$00,$00,$00,$00,$00
756C DEFB $00,$00,$00,$00,$00,$00,$00,$00
7574 DEFB $00,$00,$00,$00,$00,$00,$00,$00
757C DEFB $00,$00,$00,$00,$00,$00,$00,$00
7584 DEFB $00,$00,$00,$00,$00,$00,$00,$00
758C DEFB $00,$00,$00,$00,$00,$00,$00,$00
7594 DEFB $00,$00,$00,$00,$00,$00,$00,$00
759C DEFB $00,$00,$00,$00,$00,$00,$00,$00
75A4 DEFB $00,$00,$00,$00,$00,$00,$00,$00
75AC DEFB $00,$00,$00,$00,$00,$00,$00,$00
75B4 DEFB $00,$00,$00,$00,$00,$00,$00,$00
75BC DEFB $00,$00,$00,$00,$00,$00,$00,$00
75C4 DEFB $00,$00,$00,$00,$00,$00,$00,$00
75CC DEFB $00,$00,$00,$00,$00,$00,$00,$00
75D4 DEFB $00,$00,$00,$00,$00,$00,$00,$00
75DC DEFB $00,$00,$00,$00,$00,$00,$00,$00
75E4 DEFB $00,$00,$00,$00,$00,$00,$00,$00
75EC DEFB $00,$00,$00,$00,$00,$00,$00,$00
75F4 DEFB $00,$00,$00,$00,$00,$00,$00,$00
75FC DEFB $00,$00,$00,$00,$00,$00,$00,$00
7604 DEFB $00,$00,$00,$00,$00,$00,$00,$00
760C DEFB $00,$00,$00,$00,$00,$00,$00,$00
7614 DEFB $00,$00,$00,$00,$00,$00,$00,$00
761C DEFB $00,$00,$00,$00,$00,$00,$00,$00
7624 DEFB $00,$00,$00,$00,$00,$00,$00,$00
762C DEFB $00,$00,$00,$00,$00,$00,$00,$00
7634 DEFB $00,$00,$00,$00,$00,$00,$00,$00
763C DEFB $00,$00,$00,$00,$00,$00,$00,$00
7644 DEFB $00,$00,$00,$00,$00,$00,$00,$00
764C DEFB $00,$00,$00,$00,$00,$00,$00,$00
7654 DEFB $00,$00,$00,$00,$00,$00,$00,$00
765C DEFB $00,$00,$00,$00,$00,$00,$00,$00
7664 DEFB $00,$00,$00,$00,$00,$00,$00,$00
766C DEFB $00,$00,$00,$00,$00,$00,$00,$00
7674 DEFB $00,$00,$00,$00,$00,$00,$00,$00
767C DEFB $00,$00,$00,$00,$00,$00,$00,$00
7684 DEFB $00,$00,$00,$00,$00,$00,$00,$00
768C DEFB $00,$00,$00,$00,$00,$00,$00,$00
7694 DEFB $00,$00,$00,$00,$00,$00,$00,$00
769C DEFB $00,$00,$00,$00,$00,$00,$00,$00
76A4 DEFB $00,$00,$00,$00,$00,$00,$00,$00
76AC DEFB $00,$00,$00,$00,$00,$00,$00,$00
76B4 DEFB $00,$00,$00,$00,$00,$00,$00,$00
76BC DEFB $00,$00,$00,$00,$00,$00,$00,$00
76C4 DEFB $00,$00,$00,$00,$00,$00,$00,$00
76CC DEFB $00,$00,$00,$00,$00,$00,$00,$00
76D4 DEFB $00,$00,$00,$00,$00,$00,$00,$00
76DC DEFB $00,$00,$00,$00,$00,$00,$00,$00
76E4 DEFB $00,$00,$00,$00,$00,$00,$00,$00
76EC DEFB $00,$00,$00,$00,$00,$00,$00,$00
76F4 DEFB $00,$00,$00,$00,$00,$00,$00,$00
76FC DEFB $00,$00,$00,$00,$00,$00,$00,$00
7704 DEFB $00,$00,$00,$00,$00,$00,$00,$00
770C DEFB $00,$00,$00,$00,$00,$00,$00,$00
7714 DEFB $00,$00,$00,$00,$00,$00,$00,$00
771C DEFB $00,$00,$00,$00,$00,$00,$00,$00
7724 DEFB $00,$00,$00,$00,$00,$00,$00,$00
772C DEFB $00,$00,$00,$00,$00,$00,$00,$00
7734 DEFB $00,$00,$00,$00,$00,$00,$00,$00
773C DEFB $00,$00,$00,$00,$00,$00,$00,$00
7744 DEFB $00,$00,$00,$00,$00,$00,$00,$00
774C DEFB $00,$00,$00,$00,$00,$00,$00,$00
7754 DEFB $00,$00,$00,$00,$00,$00,$00,$00
775C DEFB $00,$00,$00,$00,$00,$00,$00,$00
7764 DEFB $00,$00,$00,$00,$00,$00,$00,$00
776C DEFB $00,$00,$00,$00,$00,$00,$00,$00
7774 DEFB $00,$00,$00,$00,$00,$00,$00,$00
777C DEFB $00,$00,$00,$00,$00,$00,$00,$00
7784 DEFB $00,$00,$00,$00,$00,$00,$00,$00
778C DEFB $00,$00,$00,$00,$00,$00,$00,$00
7794 DEFB $00,$00,$00,$00,$00,$00,$00,$00
779C DEFB $00,$00,$00,$00,$00,$00,$00,$00
77A4 DEFB $00,$00,$00,$00,$00,$00,$00,$00
77AC DEFB $00,$00,$00,$00,$00,$00,$00,$00
77B4 DEFB $00,$00,$00,$00,$00,$00,$00,$00
77BC DEFB $00,$00,$00,$00,$00,$00,$00,$00
77C4 DEFB $00,$00,$00,$00,$00,$00,$00,$00
77CC DEFB $00,$00,$00,$00,$00,$00,$00,$00
77D4 DEFB $00,$00,$00,$00,$00,$00,$00,$00
77DC DEFB $00,$00,$00,$00,$00,$00,$00,$00
77E4 DEFB $00,$00,$00,$00,$00,$00,$00,$00
77EC DEFB $00,$00,$00,$00,$00,$00,$00,$00
77F4 DEFB $00,$00,$00,$00,$00,$00,$00,$00
77FC DEFB $00,$00,$00,$00,$00,$00,$00,$00
7804 DEFB $00,$00,$00,$00,$00,$00,$00,$00
780C DEFB $00,$00,$00,$00,$00,$00,$00,$00
7814 DEFB $00,$00,$00,$00,$00,$00,$00,$00
781C DEFB $00,$00,$00,$00,$00,$00,$00,$00
7824 DEFB $00,$00,$00,$00,$00,$00,$00,$00
782C DEFB $00,$00,$00,$00,$00,$00,$00,$00
7834 DEFB $00,$00,$00,$00,$00,$00,$00,$00
783C DEFB $00,$00,$00,$00,$00,$00,$00,$00
7844 DEFB $00,$00,$00,$00,$00,$00,$00,$00
784C DEFB $00,$00,$00,$00,$00,$00,$00,$00
7854 DEFB $00,$00,$00,$00,$00,$00,$00,$00
785C DEFB $00,$00,$00,$00,$00,$00,$00,$00
7864 DEFB $00,$00,$00,$00,$00,$00,$00,$00
786C DEFB $00,$00,$00,$00,$00,$00,$00,$00
7874 DEFB $00,$00,$00,$00,$00,$00,$00,$00
787C DEFB $00,$00,$00,$00,$00,$00,$00,$00
7884 DEFB $00,$00,$00,$00,$00,$00,$00,$00
788C DEFB $00,$00,$00,$00,$00,$00,$00,$00
7894 DEFB $00,$00,$00,$00,$00,$00,$00,$00
789C DEFB $00,$00,$00,$00,$00,$00,$00,$00
78A4 DEFB $00,$00,$00,$00,$00,$00,$00,$00
78AC DEFB $00,$00,$00,$00,$00,$00,$00,$00
78B4 DEFB $00,$00,$00,$00,$00,$00,$00,$00
78BC DEFB $00,$00,$00,$00,$00,$00,$00,$00
78C4 DEFB $00,$00,$00,$00,$00,$00,$00,$00
78CC DEFB $00,$00,$00,$00,$00,$00,$00,$00
78D4 DEFB $00,$00,$00,$00,$00,$00,$00,$00
78DC DEFB $00,$00,$00,$00,$00,$00,$00,$00
78E4 DEFB $00,$00,$00,$00,$00,$00,$00,$00
78EC DEFB $00,$00,$00,$00,$00,$00,$00,$00
78F4 DEFB $00,$00,$00,$00,$00,$00,$00,$00
78FC DEFB $00,$00,$00,$00,$00,$00,$00,$00
7904 DEFB $00,$00,$00,$00,$00,$00,$00,$00
790C DEFB $00,$00,$00,$00,$00,$00,$00,$00
7914 DEFB $00,$00,$00,$00
7918: Room procedure (for 19 rooms with a guard)
7918 JP $B44C
791B: Rooms 7C9C/92EF initialization
791B JP $B425
791E: Room 791E (room with pier)
791E DEFW $B446 Room procedure
7920 DEFW $C64C Initialization
7922 DEFW $0000
7924 DEFW $79C6 Room to Right
7926 DEFW $0000
7928 DEFW $0000
792A DEFB $04,$0D Fill entire screen with $0D
792C DEFB $03,$FF,$07,$0A,$79,$66 Rectangle 7x10 tiles with $FF at $6679
7932 DEFB $02,$17,$F5,$70,$67 Fill horz 23 tiles with $F5 at $6770
7937 DEFB $02,$17,$0B,$EE,$70 Fill horz 23 tiles with $0B at $70EE
793C DEFB $03,$0C,$17,$03,$0C,$71 Rectangle 23x3 tiles with $0C at $710C
7942 DEFB $02,$13,$F6,$6A,$66 Fill horz 19 tiles with $F6 at $666A
7947 DEFB $01,$08,$0C,$89,$66 Fill vert 8 tiles with $0C at $6689
794C DEFB $01,$08,$0C,$8E,$66 Fill vert 8 tiles with $0C at $668E
7951 DEFB $01,$08,$0C,$93,$66 Fill vert 8 tiles with $0C at $6693
7956 DEFB $01,$0C,$F2,$EB,$65 Fill vert 12 tiles with $F2 at $65EB
795B DEFB $05,$04,$03,$94,$71,$11,$66 Block 4x3 tiles from 7194 to $6611
7962 DEFB $05,$04,$03,$94,$71,$15,$66 Block 4x3 tiles from 7194 to $6615
7969 DEFB $05,$04,$03,$94,$71,$19,$66 Block 4x3 tiles from 7194 to $6619
7970 DEFB $05,$04,$03,$94,$71,$1D,$66 Block 4x3 tiles from 7194 to $661D
7977 DEFB $05,$04,$03,$94,$71,$21,$66 Block 4x3 tiles from 7194 to $6621
797E DEFB $01,$03,$12,$25,$66 Fill vert 3 tiles with $12 at $6625
7983 DEFB $FF End of sequence
7984: Blocks for rooms
7984 DEFB $F1,$F0 Back block 2x5 - ladder black on blue
7986 DEFB $07,$0A
7988 DEFB $07,$0A
798A DEFB $07,$0A
798C DEFB $07,$0A
798E DEFB $FF,$FF,$39,$58 Front block 4x7 - ladder fencing
7992 DEFB $FF,$39,$3A,$58
7996 DEFB $39,$3A,$3A,$58
799A DEFB $3A,$3A,$3A,$58
799E DEFB $3A,$3A,$3B,$FF
79A2 DEFB $3A,$3B,$FF,$FF
79A6 DEFB $3B,$FF,$FF,$FF
79AA DEFB $59,$3C,$FF,$FF Front block 4x7 - ladder fencing
79AE DEFB $59,$3D,$3C,$FF
79B2 DEFB $59,$3D,$3D,$3C
79B6 DEFB $59,$3D,$3D,$3D
79BA DEFB $FF,$3E,$3D,$3D
79BE DEFB $FF,$FF,$3E,$3D
79C2 DEFB $FF,$FF,$FF,$3E
79C6: Room 79C6 (next to room with pier)
79C6 DEFW $B452 Room procedure
79C8 DEFW $B42E Initialization
79CA DEFW $791E Room to Left
79CC DEFW $7A17 Room to Right
79CE DEFW $0000
79D0 DEFW $0000
79D2 DEFB $04,$0D Fill entire screen with $0D
79D4 DEFB $03,$FF,$1E,$0A,$62,$66 Rectangle 30x10 tiles with $FF at $6662
79DA DEFB $03,$02,$15,$06,$C5,$66 Rectangle 21x6 tiles with $02 at $66C5
79E0 DEFB $02,$15,$03,$A7,$66 Fill horz 21 tiles with $03 at $66A7
79E5 DEFB $0C,$B9,$71,$02,$09,$6C,$66 Block 2 tiles from 71B9 to $666C copy 9 times
79EC DEFB $03,$00,$08,$06,$C4,$65 Rectangle 8x6 tiles with $00 at $65C4
79F2 DEFB $02,$0A,$FF,$A4,$65 Fill horz 10 tiles with $FF at $65A4
79F7 DEFB $05,$02,$04,$BB,$71,$F8,$6F Block 2x4 tiles from 71BB to $6FF8
79FE DEFB $0E,$2A,$B9,$6F Put tile $2A at $6FB9
7A02 DEFB $01,$05,$2B,$D7,$6F Fill vert 5 tiles with $2B at $6FD7
7A07 DEFB $05,$06,$02,$88,$71,$3D,$71 Block 6x2 tiles from 7188 to $713D
7A0E DEFB $0E,$F1,$6C,$66 Put tile $F1 at $666C
7A12 DEFB $0E,$F0,$6D,$66 Put tile $F0 at $666D
7A16 DEFB $FF End of sequence
7A17: Room 7A17
7A17 DEFW $B483 Room procedure
7A19 DEFW $A142 Initialization
7A1B DEFW $79C6 Room to Left
7A1D DEFW $7B90 Room to Right
7A1F DEFW $8238 Room Up
7A21 DEFW $0000
7A23 DEFB $04,$02 Fill entire screen with $02
7A25 DEFB $08,$FF,$06,$CD,$66 Triangle with $FF, count=6 at $66CD
7A2A DEFB $02,$12,$FF,$70,$67 Fill horz 18 tiles with $FF at $6770
7A2F DEFB $03,$FF,$0C,$08,$B0,$66 Rectangle 12x8 tiles with $FF at $66B0
7A35 DEFB $03,$00,$04,$06,$AE,$65 Rectangle 4x6 tiles with $00 at $65AE
7A3B DEFB $02,$0B,$FF,$80,$66 Fill horz 11 tiles with $FF at $6680
7A40 DEFB $02,$05,$FF,$62,$66 Fill horz 5 tiles with $FF at $6662
7A45 DEFB $01,$05,$2B,$C6,$6F Fill vert 5 tiles with $2B at $6FC6
7A4A DEFB $0E,$2A,$A8,$6F Put tile $2A at $6FA8
7A4E DEFB $02,$05,$FF,$90,$65 Fill horz 5 tiles with $FF at $6590
7A53 DEFB $02,$0C,$FF,$9A,$65 Fill horz 12 tiles with $FF at $659A
7A58 DEFB $0C,$B9,$71,$02,$08,$98,$65 Block 2 tiles from 71B9 to $6598 copy 8 times
7A5F DEFB $05,$04,$07,$8E,$79,$9F,$70 Block 4x7 tiles from 798E to $709F
7A66 DEFB $05,$04,$07,$8E,$79,$48,$70 Block 4x7 tiles from 798E to $7048
7A6D DEFB $05,$04,$07,$8E,$79,$2B,$70 Block 4x7 tiles from 798E to $702B
7A74 DEFB $FF End of sequence
7A75: Room 7A75
7A75 DEFW $B41F Room procedure
7A77 DEFW $B422 Initialization
7A79 DEFW $0000
7A7B DEFW $0000
7A7D DEFW $7BD2 Room Up
7A7F DEFW $7A9E Room Down
7A81 DEFB $04,$FF Fill entire screen with $FF
7A83 DEFB $02,$12,$03,$0F,$66 Fill horz 18 tiles with $03 at $660F
7A88 DEFB $03,$02,$12,$05,$2D,$66 Rectangle 18x5 tiles with $02 at $662D
7A8E DEFB $0C,$B9,$71,$02,$11,$98,$65 Block 2 tiles from 71B9 to $6598 copy 17 times
7A95 DEFB $0E,$F1,$C4,$66 Put tile $F1 at $66C4
7A99 DEFB $0E,$F0,$C5,$66 Put tile $F0 at $66C5
7A9D DEFB $FF End of sequence
7A9E: Room 7A9E
7A9E DEFW $B41F Room procedure
7AA0 DEFW $B422 Initialization
7AA2 DEFW $0000
7AA4 DEFW $7ACD Room to Right
7AA6 DEFW $7A75 Room Up
7AA8 DEFW $0000
7AAA DEFB $04,$FF Fill entire screen with $FF
7AAC DEFB $02,$1C,$03,$82,$66 Fill horz 28 tiles with $03 at $6682
7AB1 DEFB $03,$02,$1C,$06,$A0,$66 Rectangle 28x6 tiles with $02 at $66A0
7AB7 DEFB $0C,$B9,$71,$02,$0F,$98,$65 Block 2 tiles from 71B9 to $6598 copy 15 times
7ABE DEFB $05,$06,$02,$88,$71,$15,$71 Block 6x2 tiles from 7188 to $7115
7AC5 DEFB $05,$06,$02,$88,$71,$20,$71 Block 6x2 tiles from 7188 to $7120
7ACC DEFB $FF End of sequence
7ACD: Room 7ACD
7ACD DEFW $B41F Room procedure
7ACF DEFW $B422 Initialization
7AD1 DEFW $7A9E Room to Left
7AD3 DEFW $7AF8 Room to Right
7AD5 DEFW $7B56 Room Up
7AD7 DEFW $0000
7AD9 DEFB $04,$FF Fill entire screen with $FF
7ADB DEFB $03,$02,$1E,$06,$80,$66 Rectangle 30x6 tiles with $02 at $6680
7AE1 DEFB $02,$1A,$03,$66,$66 Fill horz 26 tiles with $03 at $6666
7AE6 DEFB $02,$04,$03,$80,$66 Fill horz 4 tiles with $03 at $6680
7AEB DEFB $02,$0A,$02,$34,$67 Fill horz 10 tiles with $02 at $6734
7AF0 DEFB $0C,$B9,$71,$02,$0E,$A2,$65 Block 2 tiles from 71B9 to $65A2 copy 14 times
7AF7 DEFB $FF End of sequence
7AF8: Room 7AF8
7AF8 DEFW $B41F Room procedure
7AFA DEFW $B422 Initialization
7AFC DEFW $7ACD Room to Left
7AFE DEFW $0001
7B00 DEFW $7C6D Room Up
7B02 DEFW $0000
7B04 DEFB $04,$FF Fill entire screen with $FF
7B06 DEFB $03,$02,$1C,$08,$80,$66 Rectangle 28x8 tiles with $02 at $6680
7B0C DEFB $02,$0D,$03,$86,$66 Fill horz 13 tiles with $03 at $6686
7B11 DEFB $0C,$B9,$71,$02,$0F,$98,$65 Block 2 tiles from 71B9 to $6598 copy 15 times
7B18 DEFB $02,$06,$03,$62,$66 Fill horz 6 tiles with $03 at $6662
7B1D DEFB $02,$09,$FF,$93,$66 Fill horz 9 tiles with $FF at $6693
7B22 DEFB $02,$09,$03,$B1,$66 Fill horz 9 tiles with $03 at $66B1
7B27 DEFB $05,$06,$02,$88,$71,$3C,$71 Block 6x2 tiles from 7188 to $713C
7B2E DEFB $02,$02,$FF,$34,$67 Fill horz 2 tiles with $FF at $6734
7B33 DEFB $02,$0E,$FF,$52,$67 Fill horz 14 tiles with $FF at $6752
7B38 DEFB $0E,$FE,$83,$67 Put tile $FE at $6783
7B3C DEFB $0E,$FE,$8A,$67 Put tile $FE at $678A
7B40 DEFB $05,$01,$02,$4F,$7B,$56,$67 Block 1x2 tiles from 7B4F to $6756
7B47 DEFB $05,$01,$02,$4F,$7B,$5E,$67 Block 1x2 tiles from 7B4F to $675E
7B4E DEFB $FF End of sequence
7B4F: Blocks for rooms
7B4F DEFB $FE Back block 1x2 - vertical pipe
7B50 DEFB $FD
7B51 DEFB $FD Back block 1x1 - vertical pipe
7B52 DEFB $FD Back block 1x4 - vertical pipe
7B53 DEFB $FD
7B54 DEFB $FD
7B55 DEFB $FC
7B56: Room 7B56
7B56 DEFW $B41F Room procedure
7B58 DEFW $B422 Initialization
7B5A DEFW $0000
7B5C DEFW $0000
7B5E DEFW $7D5A Room Up
7B60 DEFW $7ACD Room Down
7B62 DEFB $04,$FF Fill entire screen with $FF
7B64 DEFB $03,$02,$08,$06,$28,$66 Rectangle 8x6 tiles with $02 at $6628
7B6A DEFB $03,$02,$0A,$05,$33,$66 Rectangle 10x5 tiles with $02 at $6633
7B70 DEFB $02,$08,$03,$0A,$66 Fill horz 8 tiles with $03 at $660A
7B75 DEFB $02,$0A,$03,$15,$66 Fill horz 10 tiles with $03 at $6615
7B7A DEFB $0C,$B9,$71,$02,$0B,$94,$65 Block 2 tiles from 71B9 to $6594 copy 11 times
7B81 DEFB $0C,$B9,$71,$02,$11,$A2,$65 Block 2 tiles from 71B9 to $65A2 copy 17 times
7B88 DEFB $0C,$84,$79,$02,$01,$CE,$66 Block 2 tiles from 7984 to $66CE copy 1 times
7B8F DEFB $FF End of sequence
7B90: Room 7B90
7B90 DEFW $B41F Room procedure
7B92 DEFW $B422 Initialization
7B94 DEFW $7A17 Room to Left
7B96 DEFW $7BD2 Room to Right
7B98 DEFW $0000
7B9A DEFW $0000
7B9C DEFB $04,$01 Fill entire screen with $01
7B9E DEFB $03,$02,$05,$09,$90,$65 Rectangle 5x9 tiles with $02 at $6590
7BA4 DEFB $02,$06,$FF,$92,$65 Fill horz 6 tiles with $FF at $6592
7BA9 DEFB $0E,$2A,$A9,$6F Put tile $2A at $6FA9
7BAD DEFB $01,$07,$2B,$C7,$6F Fill vert 7 tiles with $2B at $6FC7
7BB2 DEFB $03,$FF,$0F,$08,$9E,$66 Rectangle 15x8 tiles with $FF at $669E
7BB8 DEFB $03,$FF,$0F,$03,$43,$67 Rectangle 15x3 tiles with $FF at $6743
7BBE DEFB $07,$FF,$04,$CB,$66 Triangle with $FF, count=4 at $66CB
7BC3 DEFB $05,$04,$07,$AA,$79,$68,$70 Block 4x7 tiles from 79AA to $7068
7BCA DEFB $05,$04,$07,$AA,$79,$2A,$70 Block 4x7 tiles from 79AA to $702A
7BD1 DEFB $FF End of sequence
7BD2: Room 7BD2
7BD2 DEFW $B41F Room procedure
7BD4 DEFW $B422 Initialization
7BD6 DEFW $7B90 Room to Left
7BD8 DEFW $7D5A Room to Right
7BDA DEFW $8162 Room Up
7BDC DEFW $7A75 Room Down
7BDE DEFB $04,$01 Fill entire screen with $01
7BE0 DEFB $03,$FF,$14,$03,$34,$67 Rectangle 20x3 tiles with $FF at $6734
7BE6 DEFB $02,$0A,$FF,$84,$67 Fill horz 10 tiles with $FF at $6784
7BEB DEFB $0E,$FF,$66,$67 Put tile $FF at $6766
7BEF DEFB $05,$03,$04,$0C,$7C,$B5,$70 Block 3x4 tiles from 7C0C to $70B5
7BF6 DEFB $05,$03,$03,$18,$7C,$24,$71 Block 3x3 tiles from 7C18 to $7124
7BFD DEFB $0C,$2A,$7C,$02,$0E,$9E,$65 Block 2 tiles from 7C2A to $659E copy 14 times
7C04 DEFB $05,$02,$03,$84,$79,$3C,$67 Block 2x3 tiles from 7984 to $673C
7C0B DEFB $FF End of sequence
7C0C: Blocks for rooms
7C0C DEFB $3F,$40,$41 Front block 3x4
7C0F DEFB $42,$43,$44
7C12 DEFB $45,$46,$47
7C15 DEFB $48,$49,$4A
7C18 DEFB $4B,$4C,$4D Front block 3x3
7C1B DEFB $45,$46,$47
7C1E DEFB $48,$49,$4A
7C21 DEFB $14,$15,$16 Front block 3x3 - barrel - to drow using token #00
7C24 DEFB $17,$18,$19
7C27 DEFB $1A,$1B,$1C
7C2A DEFB $06,$09 Back block 2x1 - ladder black on green
7C2C DEFB $ED,$EC Back block 2x1 - ladder black on green
7C2E: Room 7C2E
7C2E DEFW $B458 Room procedure
7C30 DEFW $A1A6 Initialization
7C32 DEFW $7D5A Room to Left
7C34 DEFW $0000
7C36 DEFW $7DA9 Room Up
7C38 DEFW $7C6D Room Down
7C3A DEFB $04,$01 Fill entire screen with $01
7C3C DEFB $03,$FF,$1E,$04,$16,$67 Rectangle 30x4 tiles with $FF at $6716
7C42 DEFB $03,$FF,$05,$06,$90,$65 Rectangle 5x6 tiles with $FF at $6590
7C48 DEFB $03,$FF,$03,$0D,$AB,$65 Rectangle 3x13 tiles with $FF at $65AB
7C4E DEFB $0E,$2A,$3B,$70 Put tile $2A at $703B
7C52 DEFB $01,$06,$2B,$59,$70 Fill vert 6 tiles with $2B at $7059
7C57 DEFB $0C,$2A,$7C,$02,$0D,$95,$65 Block 2 tiles from 7C2A to $6595 copy 13 times
7C5E DEFB $05,$02,$04,$84,$79,$1E,$67 Block 2x4 tiles from 7984 to $671E
7C65 DEFB $05,$02,$04,$84,$79,$2A,$67 Block 2x4 tiles from 7984 to $672A
7C6C DEFB $FF End of sequence
7C6D: Room 7C6D
7C6D DEFW $B41F Room procedure
7C6F DEFW $B422 Initialization
7C71 DEFW $0000
7C73 DEFW $7FC4 Room to Right
7C75 DEFW $7C2E Room Up
7C77 DEFW $7AF8 Room Down
7C79 DEFB $04,$FF Fill entire screen with $FF
7C7B DEFB $0C,$B9,$71,$02,$11,$98,$65 Block 2 tiles from 71B9 to $6598 copy 17 times
7C82 DEFB $03,$02,$0E,$06,$90,$66 Rectangle 14x6 tiles with $02 at $6690
7C88 DEFB $02,$09,$03,$72,$66 Fill horz 9 tiles with $03 at $6672
7C8D DEFB $02,$05,$03,$99,$66 Fill horz 5 tiles with $03 at $6699
7C92 DEFB $0C,$B9,$71,$02,$0E,$A4,$65 Block 2 tiles from 71B9 to $65A4 copy 14 times
7C99 DEFB $FF End of sequence
7C9A: Blocks for rooms
7C9A DEFB $06,$09 Back block 2x1 - ladder black on green
7C9C: Room 7C9C
7C9C DEFW $C6A5 Room procedure
7C9E DEFW $791B Initialization
7CA0 DEFW $947C Room to Left
7CA2 DEFW $93DF Room to Right
7CA4 DEFW $0000
7CA6 DEFW $0000
7CA8 DEFB $04,$FF Fill entire screen with $FF
7CAA DEFB $02,$1E,$03,$62,$66 Fill horz 30 tiles with $03 at $6662
7CAF DEFB $03,$02,$1E,$07,$80,$66 Rectangle 30x7 tiles with $02 at $6680
7CB5 DEFB $03,$22,$04,$02,$AB,$66 Rectangle 4x2 tiles with $22 at $66AB
7CBB DEFB $03,$21,$1E,$02,$16,$67 Rectangle 30x2 tiles with $21 at $6716
7CC1 DEFB $05,$06,$07,$0D,$7D,$82,$70 Block 6x7 tiles from 7D0D to $7082
7CC8 DEFB $05,$05,$01,$08,$7D,$53,$67 Block 5x1 tiles from 7D08 to $6753
7CCF DEFB $05,$05,$01,$08,$7D,$62,$67 Block 5x1 tiles from 7D08 to $6762
7CD6 DEFB $05,$05,$07,$E5,$7C,$87,$66 Block 5x7 tiles from 7CE5 to $6687
7CDD DEFB $05,$05,$07,$37,$7D,$92,$66 Block 5x7 tiles from 7D37 to $6692
7CE4 DEFB $FF End of sequence
7CE5: Blocks for rooms
7CE5 DEFB $02,$E9,$E8,$E7,$E7 Back block 5x7 - Train part
7CEA DEFB $17,$0D,$15,$15,$0D
7CEF DEFB $18,$0D,$15,$15,$0D
7CF4 DEFB $19,$0D,$0D,$0D,$0D
7CF9 DEFB $22,$22,$22,$22,$22
7CFE DEFB $22,$22,$22,$22,$22
7D03 DEFB $1F,$0D,$0D,$0D,$0D
7D08 DEFB $FB,$FB,$FF,$FF,$FB Back block 5x1 - Train part
7D0D DEFB $56,$4E,$4E,$4E,$4E,$57 Front block 6x7 - Train central part
7D13 DEFB $52,$4F,$4F,$4F,$4F,$54
7D19 DEFB $52,$4F,$4F,$4F,$4F,$54
7D1F DEFB $52,$6C,$6D,$6E,$50,$54
7D25 DEFB $53,$6F,$70,$71,$51,$55
7D2B DEFB $53,$72,$73,$74,$51,$55
7D31 DEFB $52,$50,$50,$50,$50,$54
7D37 DEFB $E7,$E7,$E6,$E5,$02 Back block 5x7 - Train part
7D3C DEFB $0D,$15,$15,$0D,$1C
7D41 DEFB $0D,$15,$15,$0D,$1D
7D46 DEFB $0D,$0D,$0D,$0D,$1E
7D4B DEFB $22,$22,$22,$22,$22
7D50 DEFB $22,$22,$22,$22,$22
7D55 DEFB $0D,$0D,$0D,$0D,$20
7D5A: Room 7D5A
7D5A DEFW $B483 Room procedure
7D5C DEFW $A14A Initialization
7D5E DEFW $7BD2 Room to Left
7D60 DEFW $7C2E Room to Right
7D62 DEFW $0000
7D64 DEFW $7B56 Room Down
7D66 DEFB $04,$01 Fill entire screen with $01
7D68 DEFB $03,$FF,$1E,$06,$90,$65 Rectangle 30x6 tiles with $FF at $6590
7D6E DEFB $0C,$2A,$7C,$02,$10,$9B,$65 Block 2 tiles from 7C2A to $659B copy 16 times
7D75 DEFB $02,$02,$EA,$31,$66 Fill horz 2 tiles with $EA at $6631
7D7A DEFB $02,$1E,$FF,$70,$67 Fill horz 30 tiles with $FF at $6770
7D7F DEFB $03,$FF,$06,$03,$2E,$67 Rectangle 6x3 tiles with $FF at $672E
7D85 DEFB $08,$FF,$02,$4B,$67 Triangle with $FF, count=2 at $674B
7D8A DEFB $0C,$84,$79,$02,$01,$74,$67 Block 2 tiles from 7984 to $6774 copy 1 times
7D91 DEFB $0C,$84,$79,$02,$01,$82,$67 Block 2 tiles from 7984 to $6782 copy 1 times
7D98 DEFB $0E,$2A,$56,$70 Put tile $2A at $7056
7D9C DEFB $01,$06,$2B,$74,$70 Fill vert 6 tiles with $2B at $7074
7DA1 DEFB $05,$04,$07,$8E,$79,$A9,$70 Block 4x7 tiles from 798E to $70A9
7DA8 DEFB $FF End of sequence
7DA9: Room 7DA9
7DA9 DEFW $7918 Room procedure
7DAB DEFW $A0E8 Initialization
7DAD DEFW $0000
7DAF DEFW $7E8C Room to Right
7DB1 DEFW $7E05 Room Up
7DB3 DEFW $7C2E Room Down
7DB5 DEFB $04,$01 Fill entire screen with $01
7DB7 DEFB $02,$1E,$FF,$70,$67 Fill horz 30 tiles with $FF at $6770
7DBC DEFB $02,$1E,$FF,$90,$65 Fill horz 30 tiles with $FF at $6590
7DC1 DEFB $03,$FF,$03,$03,$AE,$65 Rectangle 3x3 tiles with $FF at $65AE
7DC7 DEFB $01,$0C,$EB,$09,$66 Fill vert 12 tiles with $EB at $6609
7DCC DEFB $05,$03,$04,$0C,$7C,$F0,$70 Block 3x4 tiles from 7C0C to $70F0
7DD3 DEFB $0C,$2C,$7C,$02,$01,$75,$67 Block 2 tiles from 7C2C to $6775 copy 1 times
7DDA DEFB $0C,$9A,$7C,$02,$10,$99,$65 Block 2 tiles from 7C9A to $6599 copy 16 times
7DE1 DEFB $0C,$9A,$7C,$02,$10,$9C,$65 Block 2 tiles from 7C9A to $659C copy 16 times
7DE8 DEFB $0C,$9A,$7C,$02,$10,$9F,$65 Block 2 tiles from 7C9A to $659F copy 16 times
7DEF DEFB $05,$03,$03,$18,$7C,$22,$71 Block 3x3 tiles from 7C18 to $7122
7DF6 DEFB $05,$03,$04,$0C,$7C,$01,$71 Block 3x4 tiles from 7C0C to $7101
7DFD DEFB $05,$03,$04,$0C,$7C,$06,$71 Block 3x4 tiles from 7C0C to $7106
7E04 DEFB $FF End of sequence
7E05: Room 7E05
7E05 DEFW $B452 Room procedure
7E07 DEFW $A35C Initialization
7E09 DEFW $0000
7E0B DEFW $80A7 Room to Right
7E0D DEFW $83ED Room Up
7E0F DEFW $7DA9 Room Down
7E11 DEFB $02,$1E,$FF,$70,$67 Fill horz 30 tiles with $FF at $6770
7E16 DEFB $0C,$2C,$7C,$02,$01,$79,$67 Block 2 tiles from 7C2C to $6779 copy 1 times
7E1D DEFB $0C,$2C,$7C,$02,$01,$7C,$67 Block 2 tiles from 7C2C to $677C copy 1 times
7E24 DEFB $0C,$2C,$7C,$02,$01,$7F,$67 Block 2 tiles from 7C2C to $677F copy 1 times
7E2B DEFB $0C,$48,$73,$02,$10,$99,$65 Block 2 tiles from 7348 to $6599 copy 16 times
7E32 DEFB $01,$0C,$EB,$09,$66 Fill vert 12 tiles with $EB at $6609
7E37 DEFB $05,$03,$03,$21,$7C,$B5,$70 Block 3x3 tiles from 7C21 to $70B5
7E3E DEFB $05,$03,$03,$21,$7C,$0E,$71 Block 3x3 tiles from 7C21 to $710E
7E45 DEFB $05,$03,$03,$21,$7C,$11,$71 Block 3x3 tiles from 7C21 to $7111
7E4C DEFB $05,$03,$04,$0C,$7C,$03,$71 Block 3x4 tiles from 7C0C to $7103
7E53 DEFB $05,$04,$03,$7B,$7E,$1F,$71 Block 4x3 tiles from 7E7B to $711F
7E5A DEFB $05,$03,$01,$87,$7E,$44,$71 Block 3x1 tiles from 7E87 to $7144
7E61 DEFB $05,$02,$01,$8A,$7E,$61,$71 Block 2x1 tiles from 7E8A to $7161
7E68 DEFB $05,$02,$01,$8A,$7E,$64,$71 Block 2x1 tiles from 7E8A to $7164
7E6F DEFB $02,$05,$FF,$90,$65 Fill horz 5 tiles with $FF at $6590
7E74 DEFB $03,$FF,$03,$03,$AE,$65 Rectangle 3x3 tiles with $FF at $65AE
7E7A DEFB $FF End of sequence
7E7B: Blocks for rooms
7E7B DEFB $00,$01,$01,$02 Front block 4x3 wooden box
7E7F DEFB $03,$04,$04,$05
7E83 DEFB $06,$07,$07,$08
7E87 DEFB $09,$1D,$0A Block 3x1
7E8A DEFB $09,$0A Block 2x1
7E8C: Room 7E8C
7E8C DEFW $7918 Room procedure
7E8E DEFW $A0ED Initialization
7E90 DEFW $7DA9 Room to Left
7E92 DEFW $7EF2 Room to Right
7E94 DEFW $0000
7E96 DEFW $7F48 Room Down
7E98 DEFB $04,$01 Fill entire screen with $01
7E9A DEFB $02,$1E,$FF,$90,$65 Fill horz 30 tiles with $FF at $6590
7E9F DEFB $02,$1E,$FF,$70,$67 Fill horz 30 tiles with $FF at $6770
7EA4 DEFB $0C,$2C,$7C,$02,$01,$72,$67 Block 2 tiles from 7C2C to $6772 copy 1 times
7EAB DEFB $0C,$2C,$7C,$02,$01,$84,$67 Block 2 tiles from 7C2C to $6784 copy 1 times
7EB2 DEFB $05,$03,$03,$18,$7C,$0C,$71 Block 3x3 tiles from 7C18 to $710C
7EB9 DEFB $05,$03,$04,$0C,$7C,$F2,$70 Block 3x4 tiles from 7C0C to $70F2
7EC0 DEFB $05,$04,$03,$7B,$7E,$11,$71 Block 4x3 tiles from 7E7B to $7111
7EC7 DEFB $05,$04,$03,$7B,$7E,$15,$71 Block 4x3 tiles from 7E7B to $7115
7ECE DEFB $05,$04,$03,$7B,$7E,$BE,$70 Block 4x3 tiles from 7E7B to $70BE
7ED5 DEFB $05,$03,$03,$A0,$71,$BA,$70 Block 3x3 tiles from 71A0 to $70BA
7EDC DEFB $05,$03,$03,$A0,$71,$1B,$71 Block 3x3 tiles from 71A0 to $711B
7EE3 DEFB $05,$03,$03,$18,$7C,$22,$71 Block 3x3 tiles from 7C18 to $7122
7EEA DEFB $05,$03,$04,$0C,$7C,$06,$71 Block 3x4 tiles from 7C0C to $7106
7EF1 DEFB $FF End of sequence
7EF2: Room 7EF2
7EF2 DEFW $B47A Room procedure
7EF4 DEFW $A154 Initialization
7EF6 DEFW $7E8C Room to Left
7EF8 DEFW $0000
7EFA DEFW $0000
7EFC DEFW $0000
7EFE DEFB $04,$01 Fill entire screen with $01
7F00 DEFB $02,$1E,$FF,$90,$65 Fill horz 30 tiles with $FF at $6590
7F05 DEFB $02,$1E,$FF,$70,$67 Fill horz 30 tiles with $FF at $6770
7F0A DEFB $01,$0F,$EB,$CA,$65 Fill vert 15 tiles with $EB at $65CA
7F0F DEFB $05,$04,$03,$7B,$7E,$63,$70 Block 4x3 tiles from 7E7B to $7063
7F16 DEFB $05,$04,$03,$7B,$7E,$BA,$70 Block 4x3 tiles from 7E7B to $70BA
7F1D DEFB $05,$04,$03,$7B,$7E,$17,$71 Block 4x3 tiles from 7E7B to $7117
7F24 DEFB $05,$03,$03,$A0,$71,$C0,$70 Block 3x3 tiles from 71A0 to $70C0
7F2B DEFB $05,$03,$03,$A0,$71,$0E,$71 Block 3x3 tiles from 71A0 to $710E
7F32 DEFB $05,$03,$03,$A0,$71,$12,$71 Block 3x3 tiles from 71A0 to $7112
7F39 DEFB $05,$03,$03,$A0,$71,$1C,$71 Block 3x3 tiles from 71A0 to $711C
7F40 DEFB $05,$03,$03,$A0,$71,$23,$71 Block 3x3 tiles from 71A0 to $7123
7F47 DEFB $FF End of sequence
7F48: Room 7F48
7F48 DEFW $B483 Room procedure
7F4A DEFW $A14F Initialization
7F4C DEFW $0000
7F4E DEFW $7F9C Room to Right
7F50 DEFW $7E8C Room Up
7F52 DEFW $7FC4 Room Down
7F54 DEFB $04,$FF Fill entire screen with $FF
7F56 DEFB $03,$01,$08,$0C,$B2,$65 Rectangle 8x12 tiles with $01 at $65B2
7F5C DEFB $03,$01,$12,$07,$6E,$66 Rectangle 18x7 tiles with $01 at $666E
7F62 DEFB $02,$04,$01,$1E,$67 Fill horz 4 tiles with $01 at $671E
7F67 DEFB $07,$01,$05,$D8,$65 Triangle with $01, count=5 at $65D8
7F6C DEFB $0C,$9A,$7C,$02,$0D,$92,$65 Block 2 tiles from 7C9A to $6592 copy 13 times
7F73 DEFB $0C,$9A,$7C,$02,$0E,$A4,$65 Block 2 tiles from 7C9A to $65A4 copy 14 times
7F7A DEFB $01,$01,$E4,$5E,$66 Fill vert 1 tiles with $E4 at $665E
7F7F DEFB $05,$03,$03,$18,$7C,$DF,$70 Block 3x3 tiles from 7C18 to $70DF
7F86 DEFB $05,$01,$03,$4F,$7B,$42,$67 Block 1x3 tiles from 7B4F to $6742
7F8D DEFB $05,$01,$03,$4F,$7B,$4B,$67 Block 1x3 tiles from 7B4F to $674B
7F94 DEFB $05,$02,$03,$84,$79,$3E,$67 Block 2x3 tiles from 7984 to $673E
7F9B DEFB $FF End of sequence
7F9C: Room 7F9C
7F9C DEFW $B458 Room procedure
7F9E DEFW $A1B5 Initialization
7FA0 DEFW $7F48 Room to Left
7FA2 DEFW $0000
7FA4 DEFW $0000
7FA6 DEFW $8008 Room Down
7FA8 DEFB $04,$FF Fill entire screen with $FF
7FAA DEFB $03,$01,$1B,$07,$62,$66 Rectangle 27x7 tiles with $01 at $6662
7FB0 DEFB $01,$01,$E4,$46,$66 Fill vert 1 tiles with $E4 at $6646
7FB5 DEFB $05,$02,$03,$84,$79,$38,$67 Block 2x3 tiles from 7984 to $6738
7FBC DEFB $05,$02,$03,$84,$79,$48,$67 Block 2x3 tiles from 7984 to $6748
7FC3 DEFB $FF End of sequence
7FC4: Room 7FC4
7FC4 DEFW $B41F Room procedure
7FC6 DEFW $B422 Initialization
7FC8 DEFW $7C6D Room to Left
7FCA DEFW $8008 Room to Right
7FCC DEFW $7F48 Room Up
7FCE DEFW $0000
7FD0 DEFB $04,$FF Fill entire screen with $FF
7FD2 DEFB $03,$02,$0D,$06,$80,$66 Rectangle 13x6 tiles with $02 at $6680
7FD8 DEFB $02,$04,$03,$80,$66 Fill horz 4 tiles with $03 at $6680
7FDD DEFB $02,$09,$03,$66,$66 Fill horz 9 tiles with $03 at $6666
7FE2 DEFB $0C,$B9,$71,$02,$0E,$9A,$65 Block 2 tiles from 71B9 to $659A copy 14 times
7FE9 DEFB $01,$11,$FD,$9E,$65 Fill vert 17 tiles with $FD at $659E
7FEE DEFB $02,$0E,$03,$36,$66 Fill horz 14 tiles with $03 at $6636
7FF3 DEFB $03,$02,$0E,$05,$54,$66 Rectangle 14x5 tiles with $02 at $6654
7FF9 DEFB $05,$01,$06,$4F,$7B,$F1,$66 Block 1x6 tiles from 7B4F to $66F1
8000 DEFB $05,$01,$05,$51,$7B,$A7,$65 Block 1x5 tiles from 7B51 to $65A7
8007 DEFB $FF End of sequence
8008: Room 8008
8008 DEFW $B41F Room procedure
800A DEFW $B422 Initialization
800C DEFW $7FC4 Room to Left
800E DEFW $0000
8010 DEFW $7F9C Room Up
8012 DEFW $8076 Room Down
8014 DEFB $04,$FF Fill entire screen with $FF
8016 DEFB $02,$0D,$03,$26,$66 Fill horz 13 tiles with $03 at $6626
801B DEFB $02,$0B,$03,$36,$66 Fill horz 11 tiles with $03 at $6636
8020 DEFB $03,$02,$0D,$05,$44,$66 Rectangle 13x5 tiles with $02 at $6644
8026 DEFB $03,$02,$0B,$06,$54,$66 Rectangle 11x6 tiles with $02 at $6654
802C DEFB $02,$0A,$02,$DD,$66 Fill horz 10 tiles with $02 at $66DD
8031 DEFB $0C,$B9,$71,$02,$0C,$94,$65 Block 2 tiles from 71B9 to $6594 copy 12 times
8038 DEFB $0C,$B9,$71,$02,$0C,$A4,$65 Block 2 tiles from 71B9 to $65A4 copy 12 times
803F DEFB $05,$02,$05,$84,$79,$FF,$66 Block 2x5 tiles from 7984 to $66FF
8046 DEFB $05,$02,$05,$84,$79,$0C,$67 Block 2x5 tiles from 7984 to $670C
804D DEFB $05,$01,$05,$4F,$7B,$02,$67 Block 1x5 tiles from 7B4F to $6702
8054 DEFB $05,$01,$05,$4F,$7B,$0A,$67 Block 1x5 tiles from 7B4F to $670A
805B DEFB $05,$01,$05,$4F,$7B,$11,$67 Block 1x5 tiles from 7B4F to $6711
8062 DEFB $05,$01,$05,$51,$7B,$A2,$65 Block 1x5 tiles from 7B51 to $65A2
8069 DEFB $05,$01,$05,$51,$7B,$A9,$65 Block 1x5 tiles from 7B51 to $65A9
8070 DEFB $01,$11,$FD,$9E,$65 Fill vert 17 tiles with $FD at $659E
8075 DEFB $FF End of sequence
8076: Room 8076
8076 DEFW $B41F Room procedure
8078 DEFW $B422 Initialization
807A DEFW $0000
807C DEFW $0000
807E DEFW $8008 Room Up
8080 DEFW $8384 Room Down
8082 DEFB $04,$FF Fill entire screen with $FF
8084 DEFB $01,$11,$FD,$9A,$65 Fill vert 17 tiles with $FD at $659A
8089 DEFB $01,$11,$FD,$9E,$65 Fill vert 17 tiles with $FD at $659E
808E DEFB $01,$11,$FD,$A2,$65 Fill vert 17 tiles with $FD at $65A2
8093 DEFB $01,$11,$FD,$A9,$65 Fill vert 17 tiles with $FD at $65A9
8098 DEFB $0C,$B9,$71,$02,$11,$97,$65 Block 2 tiles from 71B9 to $6597 copy 17 times
809F DEFB $0C,$B9,$71,$02,$11,$A4,$65 Block 2 tiles from 71B9 to $65A4 copy 17 times
80A6 DEFB $FF End of sequence
80A7: Room 80A7
80A7 DEFW $B458 Room procedure
80A9 DEFW $A1CB Initialization
80AB DEFW $7E05 Room to Left
80AD DEFW $80F6 Room to Right
80AF DEFW $0000
80B1 DEFW $0000
80B3 DEFB $02,$1E,$FF,$90,$65 Fill horz 30 tiles with $FF at $6590
80B8 DEFB $02,$1E,$FF,$70,$67 Fill horz 30 tiles with $FF at $6770
80BD DEFB $05,$03,$04,$0C,$7C,$F0,$70 Block 3x4 tiles from 7C0C to $70F0
80C4 DEFB $05,$03,$03,$21,$7C,$13,$71 Block 3x3 tiles from 7C21 to $7113
80CB DEFB $05,$03,$03,$A0,$71,$17,$71 Block 3x3 tiles from 71A0 to $7117
80D2 DEFB $05,$04,$03,$7B,$7E,$1C,$71 Block 4x3 tiles from 7E7B to $711C
80D9 DEFB $05,$03,$03,$21,$7C,$C3,$70 Block 3x3 tiles from 7C21 to $70C3
80E0 DEFB $05,$03,$03,$21,$7C,$C9,$70 Block 3x3 tiles from 7C21 to $70C9
80E7 DEFB $05,$03,$03,$21,$7C,$22,$71 Block 3x3 tiles from 7C21 to $7122
80EE DEFB $05,$03,$03,$21,$7C,$25,$71 Block 3x3 tiles from 7C21 to $7125
80F5 DEFB $FF End of sequence
80F6: Room 80F6
80F6 DEFW $B452 Room procedure
80F8 DEFW $A38E Initialization
80FA DEFW $80A7 Room to Left
80FC DEFW $0000
80FE DEFW $0000
8100 DEFW $0000
8102 DEFB $02,$1E,$FF,$70,$67 Fill horz 30 tiles with $FF at $6770
8107 DEFB $03,$FF,$02,$10,$AC,$65 Rectangle 2x16 tiles with $FF at $65AC
810D DEFB $05,$02,$04,$BB,$71,$F1,$70 Block 2x4 tiles from 71BB to $70F1
8114 DEFB $05,$03,$03,$21,$7C,$BA,$70 Block 3x3 tiles from 7C21 to $70BA
811B DEFB $05,$03,$03,$21,$7C,$12,$71 Block 3x3 tiles from 7C21 to $7112
8122 DEFB $05,$03,$03,$21,$7C,$15,$71 Block 3x3 tiles from 7C21 to $7115
8129 DEFB $05,$03,$03,$21,$7C,$6F,$70 Block 3x3 tiles from 7C21 to $706F
8130 DEFB $05,$03,$03,$21,$7C,$C7,$70 Block 3x3 tiles from 7C21 to $70C7
8137 DEFB $05,$03,$03,$21,$7C,$CB,$70 Block 3x3 tiles from 7C21 to $70CB
813E DEFB $05,$03,$03,$21,$7C,$1F,$71 Block 3x3 tiles from 7C21 to $711F
8145 DEFB $05,$03,$03,$21,$7C,$22,$71 Block 3x3 tiles from 7C21 to $7122
814C DEFB $05,$03,$03,$21,$7C,$25,$71 Block 3x3 tiles from 7C21 to $7125
8153 DEFB $05,$04,$03,$7B,$7E,$1A,$71 Block 4x3 tiles from 7E7B to $711A
815A DEFB $05,$02,$01,$8A,$7E,$55,$71 Block 2x1 tiles from 7E8A to $7155
8161 DEFB $FF End of sequence
8162: Room 8162
8162 DEFW $B458 Room procedure
8164 DEFW $A1C0 Initialization
8166 DEFW $81E5 Room to Left
8168 DEFW $0000
816A DEFW $8321 Room Up
816C DEFW $7BD2 Room Down
816E DEFB $03,$01,$1C,$08,$80,$66 Rectangle 28x8 tiles with $01 at $6680
8174 DEFB $02,$1C,$FF,$62,$66 Fill horz 28 tiles with $FF at $6662
8179 DEFB $02,$1E,$FF,$70,$67 Fill horz 30 tiles with $FF at $6770
817E DEFB $02,$0D,$FF,$90,$65 Fill horz 13 tiles with $FF at $6590
8183 DEFB $02,$07,$FF,$A7,$65 Fill horz 7 tiles with $FF at $65A7
8188 DEFB $0C,$E3,$81,$02,$0F,$CA,$65 Block 2 tiles from 81E3 to $65CA copy 15 times
818F DEFB $0C,$48,$73,$02,$07,$A0,$65 Block 2 tiles from 7348 to $65A0 copy 7 times
8196 DEFB $05,$02,$04,$BB,$71,$E7,$6F Block 2x4 tiles from 71BB to $6FE7
819D DEFB $05,$03,$04,$0C,$7C,$EF,$70 Block 3x4 tiles from 7C0C to $70EF
81A4 DEFB $05,$03,$03,$18,$7C,$10,$71 Block 3x3 tiles from 7C18 to $7110
81AB DEFB $05,$03,$03,$18,$7C,$1D,$71 Block 3x3 tiles from 7C18 to $711D
81B2 DEFB $05,$03,$04,$0C,$7C,$04,$71 Block 3x4 tiles from 7C0C to $7104
81B9 DEFB $05,$03,$03,$18,$7C,$25,$71 Block 3x3 tiles from 7C18 to $7125
81C0 DEFB $0E,$2A,$A8,$6F Put tile $2A at $6FA8
81C4 DEFB $01,$05,$2B,$C6,$6F Fill vert 5 tiles with $2B at $6FC6
81C9 DEFB $0E,$2A,$AF,$6F Put tile $2A at $6FAF
81CD DEFB $01,$05,$2B,$CD,$6F Fill vert 5 tiles with $2B at $6FCD
81D2 DEFB $0E,$2A,$BC,$6F Put tile $2A at $6FBC
81D6 DEFB $01,$05,$2B,$DA,$6F Fill vert 5 tiles with $2B at $6FDA
81DB DEFB $0C,$2C,$7C,$02,$01,$7E,$67 Block 2 tiles from 7C2C to $677E copy 1 times
81E2 DEFB $FF End of sequence
81E3: Blocks for rooms
81E3 DEFB $FF,$FF Block 2x1
81E5: Room 81E5
81E5 DEFW $B452 Room procedure
81E7 DEFW $A353 Initialization
81E9 DEFW $8238 Room to Left
81EB DEFW $8162 Room to Right
81ED DEFW $0000
81EF DEFW $0000
81F1 DEFB $03,$FF,$1E,$09,$80,$66 Rectangle 30x9 tiles with $FF at $6680
81F7 DEFB $03,$01,$1C,$07,$A0,$66 Rectangle 28x7 tiles with $01 at $66A0
81FD DEFB $02,$05,$00,$80,$66 Fill horz 5 tiles with $00 at $6680
8202 DEFB $02,$06,$FF,$9E,$66 Fill horz 6 tiles with $FF at $669E
8207 DEFB $02,$0C,$FF,$90,$65 Fill horz 12 tiles with $FF at $6590
820C DEFB $02,$0B,$FF,$A3,$65 Fill horz 11 tiles with $FF at $65A3
8211 DEFB $06,$FF,$02,$AE,$65 Triangle with $FF, count=2 at $65AE
8216 DEFB $0E,$2A,$AC,$6F Put tile $2A at $6FAC
821A DEFB $0E,$2A,$B8,$6F Put tile $2A at $6FB8
821E DEFB $01,$06,$2B,$CA,$6F Fill vert 6 tiles with $2B at $6FCA
8223 DEFB $01,$05,$2B,$D6,$6F Fill vert 5 tiles with $2B at $6FD6
8228 DEFB $02,$0A,$01,$94,$66 Fill horz 10 tiles with $01 at $6694
822D DEFB $02,$18,$01,$A4,$66 Fill horz 24 tiles with $01 at $66A4
8232 DEFB $02,$0B,$FF,$75,$66 Fill horz 11 tiles with $FF at $6675
8237 DEFB $FF End of sequence
8238: Room 8238
8238 DEFW $B41F Room procedure
823A DEFW $B422 Initialization
823C DEFW $0000
823E DEFW $81E5 Room to Right
8240 DEFW $8279 Room Up
8242 DEFW $7A17 Room Down
8244 DEFB $04,$FF Fill entire screen with $FF
8246 DEFB $03,$00,$1C,$06,$EC,$65 Rectangle 28x6 tiles with $00 at $65EC
824C DEFB $02,$0E,$00,$A0,$66 Fill horz 14 tiles with $00 at $66A0
8251 DEFB $0C,$B9,$71,$02,$11,$98,$65 Block 2 tiles from 71B9 to $6598 copy 17 times
8258 DEFB $0C,$48,$73,$02,$07,$F2,$65 Block 2 tiles from 7348 to $65F2 copy 7 times
825F DEFB $05,$02,$01,$84,$79,$C4,$66 Block 2x1 tiles from 7984 to $66C4
8266 DEFB $0E,$2A,$E4,$6F Put tile $2A at $6FE4
826A DEFB $0E,$2A,$F8,$6F Put tile $2A at $6FF8
826E DEFB $01,$06,$2B,$02,$70 Fill vert 6 tiles with $2B at $7002
8273 DEFB $01,$05,$2B,$16,$70 Fill vert 5 tiles with $2B at $7016
8278 DEFB $FF End of sequence
8279: Room 8279
8279 DEFW $B41F Room procedure
827B DEFW $B422 Initialization
827D DEFW $0000
827F DEFW $82DD Room to Right
8281 DEFW $0000
8283 DEFW $8238 Room Down
8285 DEFB $0C,$E3,$81,$02,$11,$90,$65 Block 2 tiles from 81E3 to $6590 copy 17 times
828C DEFB $07,$FF,$04,$BE,$66 Triangle with $FF, count=4 at $66BE
8291 DEFB $02,$0F,$FF,$34,$67 Fill horz 15 tiles with $FF at $6734
8296 DEFB $02,$15,$FF,$52,$67 Fill horz 21 tiles with $FF at $6752
829B DEFB $02,$1E,$FF,$70,$67 Fill horz 30 tiles with $FF at $6770
82A0 DEFB $05,$03,$03,$21,$7C,$A5,$70 Block 3x3 tiles from 7C21 to $70A5
82A7 DEFB $05,$03,$03,$21,$7C,$C7,$70 Block 3x3 tiles from 7C21 to $70C7
82AE DEFB $05,$03,$03,$21,$7C,$DB,$70 Block 3x3 tiles from 7C21 to $70DB
82B5 DEFB $05,$03,$03,$21,$7C,$FD,$70 Block 3x3 tiles from 7C21 to $70FD
82BC DEFB $05,$03,$03,$21,$7C,$00,$71 Block 3x3 tiles from 7C21 to $7100
82C3 DEFB $05,$03,$03,$21,$7C,$21,$71 Block 3x3 tiles from 7C21 to $7121
82CA DEFB $05,$03,$03,$21,$7C,$24,$71 Block 3x3 tiles from 7C21 to $7124
82D1 DEFB $05,$02,$03,$84,$79,$3C,$67 Block 2x3 tiles from 7984 to $673C
82D8 DEFB $0E,$00,$BE,$66 Put tile $00 at $66BE
82DC DEFB $FF End of sequence
82DD: Room 82DD
82DD DEFW $B41F Room procedure
82DF DEFW $B422 Initialization
82E1 DEFW $8279 Room to Left
82E3 DEFW $8321 Room to Right
82E5 DEFW $0000
82E7 DEFW $81E5 Room Down
82E9 DEFB $02,$0D,$FF,$70,$67 Fill horz 13 tiles with $FF at $6770
82EE DEFB $02,$07,$FF,$58,$67 Fill horz 7 tiles with $FF at $6758
82F3 DEFB $02,$06,$FF,$64,$67 Fill horz 6 tiles with $FF at $6764
82F8 DEFB $02,$0C,$FF,$82,$67 Fill horz 12 tiles with $FF at $6782
82FD DEFB $05,$03,$03,$21,$7C,$0C,$71 Block 3x3 tiles from 7C21 to $710C
8304 DEFB $05,$03,$03,$21,$7C,$0F,$71 Block 3x3 tiles from 7C21 to $710F
830B DEFB $05,$03,$03,$21,$7C,$F5,$70 Block 3x3 tiles from 7C21 to $70F5
8312 DEFB $05,$03,$03,$A0,$71,$02,$71 Block 3x3 tiles from 71A0 to $7102
8319 DEFB $05,$04,$03,$7B,$7E,$25,$71 Block 4x3 tiles from 7E7B to $7125
8320 DEFB $FF End of sequence
8321: Room 8321
8321 DEFW $B41F Room procedure
8323 DEFW $B422 Initialization
8325 DEFW $82DD Room to Left
8327 DEFW $0000
8329 DEFW $844E Room Up
832B DEFW $8162 Room Down
832D DEFB $02,$1E,$FF,$70,$67 Fill horz 30 tiles with $FF at $6770
8332 DEFB $05,$02,$01,$84,$79,$80,$67 Block 2x1 tiles from 7984 to $6780
8339 DEFB $03,$FF,$03,$04,$AB,$65 Rectangle 3x4 tiles with $FF at $65AB
833F DEFB $01,$0C,$EB,$24,$66 Fill vert 12 tiles with $EB at $6624
8344 DEFB $05,$04,$03,$7B,$7E,$0E,$71 Block 4x3 tiles from 7E7B to $710E
834B DEFB $05,$04,$03,$7B,$7E,$B6,$70 Block 4x3 tiles from 7E7B to $70B6
8352 DEFB $05,$03,$03,$A0,$71,$13,$71 Block 3x3 tiles from 71A0 to $7113
8359 DEFB $05,$03,$03,$21,$7C,$18,$71 Block 3x3 tiles from 7C21 to $7118
8360 DEFB $05,$03,$03,$A0,$71,$1F,$71 Block 3x3 tiles from 71A0 to $711F
8367 DEFB $05,$03,$03,$A0,$71,$24,$71 Block 3x3 tiles from 71A0 to $7124
836E DEFB $05,$02,$01,$8A,$7E,$5F,$71 Block 2x1 tiles from 7E8A to $715F
8375 DEFB $05,$04,$03,$7B,$7E,$C7,$70 Block 4x3 tiles from 7E7B to $70C7
837C DEFB $0C,$48,$73,$02,$10,$A0,$65 Block 2 tiles from 7348 to $65A0 copy 16 times
8383 DEFB $FF End of sequence
8384: Room 8384
8384 DEFW $B41F Room procedure
8386 DEFW $B422 Initialization
8388 DEFW $0000
838A DEFW $0000
838C DEFW $8076 Room Up
838E DEFW $9376 Room Down
8390 DEFB $04,$FF Fill entire screen with $FF
8392 DEFB $03,$02,$0F,$07,$28,$66 Rectangle 15x7 tiles with $02 at $6628
8398 DEFB $02,$0F,$03,$0A,$66 Fill horz 15 tiles with $03 at $660A
839D DEFB $03,$02,$06,$07,$3C,$66 Rectangle 6x7 tiles with $02 at $663C
83A3 DEFB $02,$06,$03,$1E,$66 Fill horz 6 tiles with $03 at $661E
83A8 DEFB $0C,$B9,$71,$02,$0C,$97,$65 Block 2 tiles from 71B9 to $6597 copy 12 times
83AF DEFB $0C,$B9,$71,$02,$11,$A4,$65 Block 2 tiles from 71B9 to $65A4 copy 17 times
83B6 DEFB $05,$02,$05,$84,$79,$FC,$66 Block 2x5 tiles from 7984 to $66FC
83BD DEFB $05,$02,$01,$84,$79,$0C,$67 Block 2x1 tiles from 7984 to $670C
83C4 DEFB $01,$11,$FD,$A2,$65 Fill vert 17 tiles with $FD at $65A2
83C9 DEFB $05,$01,$04,$52,$7B,$9A,$65 Block 1x4 tiles from 7B52 to $659A
83D0 DEFB $05,$01,$04,$52,$7B,$9E,$65 Block 1x4 tiles from 7B52 to $659E
83D7 DEFB $05,$01,$04,$52,$7B,$A9,$65 Block 1x4 tiles from 7B52 to $65A9
83DE DEFB $05,$01,$05,$4F,$7B,$02,$67 Block 1x5 tiles from 7B4F to $6702
83E5 DEFB $05,$01,$05,$4F,$7B,$11,$67 Block 1x5 tiles from 7B4F to $6711
83EC DEFB $FF End of sequence
83ED: Room 83ED
83ED DEFW $B452 Room procedure
83EF DEFW $A361 Initialization
83F1 DEFW $0000
83F3 DEFW $920A Room to Right
83F5 DEFW $913F Room Up
83F7 DEFW $7E05 Room Down
83F9 DEFB $02,$1E,$FF,$70,$67 Fill horz 30 tiles with $FF at $6770
83FE DEFB $0C,$48,$73,$02,$10,$99,$65 Block 2 tiles from 7348 to $6599 copy 16 times
8405 DEFB $05,$02,$01,$84,$79,$79,$67 Block 2x1 tiles from 7984 to $6779
840C DEFB $03,$FF,$03,$04,$90,$65 Rectangle 3x4 tiles with $FF at $6590
8412 DEFB $02,$02,$FF,$93,$65 Fill horz 2 tiles with $FF at $6593
8417 DEFB $01,$0C,$EB,$09,$66 Fill vert 12 tiles with $EB at $6609
841C DEFB $05,$03,$04,$0C,$7C,$F2,$70 Block 3x4 tiles from 7C0C to $70F2
8423 DEFB $05,$03,$03,$A0,$71,$0E,$71 Block 3x3 tiles from 71A0 to $710E
842A DEFB $05,$02,$01,$8A,$7E,$4E,$71 Block 2x1 tiles from 7E8A to $714E
8431 DEFB $05,$04,$03,$7B,$7E,$C4,$70 Block 4x3 tiles from 7E7B to $70C4
8438 DEFB $05,$04,$03,$7B,$7E,$1B,$71 Block 4x3 tiles from 7E7B to $711B
843F DEFB $05,$03,$04,$0C,$7C,$06,$71 Block 3x4 tiles from 7C0C to $7106
8446 DEFB $05,$04,$03,$7B,$7E,$21,$71 Block 4x3 tiles from 7E7B to $7121
844D DEFB $FF End of sequence
844E: Room 844E
844E DEFW $B452 Room procedure
8450 DEFW $A37F Initialization
8452 DEFW $84A8 Room to Left
8454 DEFW $0000
8456 DEFW $0000
8458 DEFW $8321 Room Down
845A DEFB $02,$1E,$FF,$70,$67 Fill horz 30 tiles with $FF at $6770
845F DEFB $02,$06,$FF,$52,$67 Fill horz 6 tiles with $FF at $6752
8464 DEFB $03,$FF,$03,$04,$AB,$65 Rectangle 3x4 tiles with $FF at $65AB
846A DEFB $01,$0C,$EB,$24,$66 Fill vert 12 tiles with $EB at $6624
846F DEFB $05,$02,$01,$84,$79,$80,$67 Block 2x1 tiles from 7984 to $6780
8476 DEFB $05,$03,$03,$A0,$71,$F0,$70 Block 3x3 tiles from 71A0 to $70F0
847D DEFB $05,$03,$03,$A0,$71,$12,$71 Block 3x3 tiles from 71A0 to $7112
8484 DEFB $00,$BE,$70 Barrel 3x3 tiles at $70BE
8487 DEFB $00,$16,$71 Barrel 3x3 tiles at $7116
848A DEFB $00,$19,$71 Barrel 3x3 tiles at $7119
848D DEFB $05,$04,$03,$7B,$7E,$1F,$71 Block 4x3 tiles from 7E7B to $711F
8494 DEFB $05,$03,$04,$9C,$84,$07,$71 Block 3x4 tiles from 849C to $7107
849B DEFB $FF End of sequence
849C: Blocks for rooms
849C DEFB $00,$01,$02 Front block 3x4
849F DEFB $03,$04,$05
84A2 DEFB $03,$04,$05
84A5 DEFB $06,$07,$08
84A8: Room 84A8
84A8 DEFW $B41F Room procedure
84AA DEFW $F973 Initialization
84AC DEFW $84EE Room to Left
84AE DEFW $844E Room to Right
84B0 DEFW $0000
84B2 DEFW $82DD Room Down
84B4 DEFB $03,$FF,$0D,$02,$52,$67 Rectangle 13x2 tiles with $FF at $6752
84BA DEFB $03,$FF,$0C,$02,$64,$67 Rectangle 12x2 tiles with $FF at $6764
84C0 DEFB $02,$03,$FF,$BC,$65 Fill horz 3 tiles with $FF at $65BC
84C5 DEFB $02,$0D,$FF,$9A,$65 Fill horz 13 tiles with $FF at $659A
84CA DEFB $00,$F0,$70 Barrel 3x3 tiles at $70F0
84CD DEFB $00,$97,$70 Barrel 3x3 tiles at $7097
84D0 DEFB $05,$04,$03,$7B,$7E,$04,$71 Block 4x3 tiles from 7E7B to $7104
84D7 DEFB $05,$05,$03,$DF,$84,$F2,$70 Block 5x3 tiles from 84DF to $70F2
84DE DEFB $FF End of sequence
84DF: Blocks for rooms
84DF DEFB $00,$01,$01,$01,$02 Front block 5x3 - box
84E4 DEFB $03,$04,$04,$04,$05
84E9 DEFB $06,$07,$07,$07,$08
84EE: Room 84EE
84EE DEFW $7918 Room procedure
84F0 DEFW $A10B Initialization
84F2 DEFW $0000
84F4 DEFW $84A8 Room to Right
84F6 DEFW $8526 Room Up
84F8 DEFW $0000
84FA DEFB $03,$FF,$02,$0F,$90,$65 Rectangle 2x15 tiles with $FF at $6590
8500 DEFB $03,$FF,$1E,$02,$52,$67 Rectangle 30x2 tiles with $FF at $6752
8506 DEFB $0C,$48,$73,$02,$0F,$98,$65 Block 2 tiles from 7348 to $6598 copy 15 times
850D DEFB $00,$F0,$70 Barrel 3x3 tiles at $70F0
8510 DEFB $00,$F3,$70 Barrel 3x3 tiles at $70F3
8513 DEFB $00,$4D,$70 Barrel 3x3 tiles at $704D
8516 DEFB $00,$A6,$70 Barrel 3x3 tiles at $70A6
8519 DEFB $00,$A9,$70 Barrel 3x3 tiles at $70A9
851C DEFB $00,$FE,$70 Barrel 3x3 tiles at $70FE
851F DEFB $00,$01,$71 Barrel 3x3 tiles at $7101
8522 DEFB $00,$04,$71 Barrel 3x3 tiles at $7104
8525 DEFB $FF End of sequence
8526: Room 8526
8526 DEFW $B483 Room procedure
8528 DEFW $A179 Initialization
852A DEFW $0000
852C DEFW $858F Room to Right
852E DEFW $8608 Room Up
8530 DEFW $84EE Room Down
8532 DEFB $0C,$E3,$81,$02,$10,$90,$65 Block 2 tiles from 81E3 to $6590 copy 16 times
8539 DEFB $0C,$48,$73,$02,$10,$98,$65 Block 2 tiles from 7348 to $6598 copy 16 times
8540 DEFB $02,$1E,$FF,$70,$67 Fill horz 30 tiles with $FF at $6770
8545 DEFB $05,$02,$01,$84,$79,$78,$67 Block 2x1 tiles from 7984 to $6778
854C DEFB $00,$B4,$70 Barrel 3x3 tiles at $70B4
854F DEFB $00,$0F,$71 Barrel 3x3 tiles at $710F
8552 DEFB $00,$26,$71 Barrel 3x3 tiles at $7126
8555 DEFB $05,$02,$02,$77,$85,$38,$71 Block 2x2 tiles from 8577 to $7138
855C DEFB $05,$03,$04,$9C,$84,$00,$71 Block 3x4 tiles from 849C to $7100
8563 DEFB $05,$02,$02,$77,$85,$3E,$71 Block 2x2 tiles from 8577 to $713E
856A DEFB $05,$02,$02,$77,$85,$41,$71 Block 2x2 tiles from 8577 to $7141
8571 DEFB $02,$06,$FF,$9F,$65 Fill horz 6 tiles with $FF at $659F
8576 DEFB $FF End of sequence
8577: Blocks for rooms
8577 DEFB $00,$02 Front block 2x2 - box
8579 DEFB $06,$08
857B DEFB $00,$01,$01,$01,$02 Front block 5x4 - box
8580 DEFB $03,$04,$04,$04,$05
8585 DEFB $03,$04,$04,$04,$05
858A DEFB $06,$07,$07,$07,$08
858F: Room 858F
858F DEFW $7918 Room procedure
8591 DEFW $A106 Initialization
8593 DEFW $8526 Room to Left
8595 DEFW $85BD Room to Right
8597 DEFW $0000
8599 DEFW $0000
859B DEFB $02,$1E,$FF,$70,$67 Fill horz 30 tiles with $FF at $6770
85A0 DEFB $05,$05,$04,$7B,$85,$F2,$70 Block 5x4 tiles from 857B to $70F2
85A7 DEFB $05,$05,$04,$7B,$85,$F9,$70 Block 5x4 tiles from 857B to $70F9
85AE DEFB $05,$02,$01,$8A,$7E,$4E,$71 Block 2x1 tiles from 7E8A to $714E
85B5 DEFB $05,$03,$03,$A0,$71,$1E,$71 Block 3x3 tiles from 71A0 to $711E
85BC DEFB $FF End of sequence
85BD: Room 85BD
85BD DEFW $B41F Room procedure
85BF DEFW $B422 Initialization
85C1 DEFW $858F Room to Left
85C3 DEFW $0000
85C5 DEFW $8689 Room Up
85C7 DEFW $0000
85C9 DEFB $02,$1E,$FF,$70,$67 Fill horz 30 tiles with $FF at $6770
85CE DEFB $03,$FF,$03,$04,$AB,$65 Rectangle 3x4 tiles with $FF at $65AB
85D4 DEFB $01,$0C,$EB,$24,$66 Fill vert 12 tiles with $EB at $6624
85D9 DEFB $0C,$48,$73,$02,$10,$9D,$65 Block 2 tiles from 7348 to $659D copy 16 times
85E0 DEFB $00,$04,$70 Barrel 3x3 tiles at $7004
85E3 DEFB $00,$5D,$70 Barrel 3x3 tiles at $705D
85E6 DEFB $00,$60,$70 Barrel 3x3 tiles at $7060
85E9 DEFB $00,$B5,$70 Barrel 3x3 tiles at $70B5
85EC DEFB $00,$B8,$70 Barrel 3x3 tiles at $70B8
85EF DEFB $00,$BB,$70 Barrel 3x3 tiles at $70BB
85F2 DEFB $00,$0E,$71 Barrel 3x3 tiles at $710E
85F5 DEFB $00,$11,$71 Barrel 3x3 tiles at $7111
85F8 DEFB $00,$14,$71 Barrel 3x3 tiles at $7114
85FB DEFB $00,$1D,$71 Barrel 3x3 tiles at $711D
85FE DEFB $00,$21,$71 Barrel 3x3 tiles at $7121
8601 DEFB $00,$24,$71 Barrel 3x3 tiles at $7124
8604 DEFB $00,$17,$71 Barrel 3x3 tiles at $7117
8607 DEFB $FF End of sequence
8608: Room 8608
8608 DEFW $B452 Room procedure
860A DEFW $A37A Initialization
860C DEFW $0000
860E DEFW $86FD Room to Right
8610 DEFW $0000
8612 DEFW $8526 Room Down
8614 DEFB $02,$1E,$FF,$70,$67 Fill horz 30 tiles with $FF at $6770
8619 DEFB $02,$1C,$FF,$82,$66 Fill horz 28 tiles with $FF at $6682
861E DEFB $02,$0C,$FF,$74,$66 Fill horz 12 tiles with $FF at $6674
8623 DEFB $0C,$E3,$81,$02,$10,$90,$65 Block 2 tiles from 81E3 to $6590 copy 16 times
862A DEFB $02,$0E,$FF,$92,$65 Fill horz 14 tiles with $FF at $6592
862F DEFB $0C,$E3,$81,$02,$07,$BA,$66 Block 2 tiles from 81E3 to $66BA copy 7 times
8636 DEFB $05,$02,$01,$84,$79,$78,$67 Block 2x1 tiles from 7984 to $6778
863D DEFB $05,$03,$03,$A0,$71,$C4,$6F Block 3x3 tiles from 71A0 to $6FC4
8644 DEFB $05,$04,$03,$7B,$7E,$1E,$70 Block 4x3 tiles from 7E7B to $701E
864B DEFB $05,$03,$03,$A0,$71,$24,$70 Block 3x3 tiles from 71A0 to $7024
8652 DEFB $00,$28,$70 Barrel 3x3 tiles at $7028
8655 DEFB $05,$03,$03,$18,$7C,$11,$70 Block 3x3 tiles from 7C18 to $7011
865C DEFB $05,$03,$04,$0C,$7C,$F7,$6F Block 3x4 tiles from 7C0C to $6FF7
8663 DEFB $05,$03,$03,$18,$7C,$18,$71 Block 3x3 tiles from 7C18 to $7118
866A DEFB $00,$B5,$70 Barrel 3x3 tiles at $70B5
866D DEFB $00,$0E,$71 Barrel 3x3 tiles at $710E
8670 DEFB $00,$11,$71 Barrel 3x3 tiles at $7111
8673 DEFB $00,$C4,$70 Barrel 3x3 tiles at $70C4
8676 DEFB $00,$C8,$70 Barrel 3x3 tiles at $70C8
8679 DEFB $00,$CB,$70 Barrel 3x3 tiles at $70CB
867C DEFB $00,$1C,$71 Barrel 3x3 tiles at $711C
867F DEFB $00,$1F,$71 Barrel 3x3 tiles at $711F
8682 DEFB $00,$22,$71 Barrel 3x3 tiles at $7122
8685 DEFB $00,$25,$71 Barrel 3x3 tiles at $7125
8688 DEFB $FF End of sequence
8689: Room 8689
8689 DEFW $B41F Room procedure
868B DEFW $B422 Initialization
868D DEFW $86FD Room to Left
868F DEFW $0000
8691 DEFW $0000
8693 DEFW $85BD Room Down
8695 DEFB $02,$39,$FF,$BC,$66 Fill horz 57 tiles with $FF at $66BC
869A DEFB $03,$FF,$03,$11,$AB,$65 Rectangle 3x17 tiles with $FF at $65AB
86A0 DEFB $05,$02,$02,$84,$79,$C9,$66 Block 2x2 tiles from 7984 to $66C9
86A7 DEFB $0C,$48,$73,$02,$05,$05,$67 Block 2 tiles from 7348 to $6705 copy 5 times
86AE DEFB $05,$03,$03,$18,$7C,$67,$70 Block 3x3 tiles from 7C18 to $7067
86B5 DEFB $05,$04,$02,$F5,$86,$21,$70 Block 4x2 tiles from 86F5 to $7021
86BC DEFB $05,$04,$03,$7B,$7E,$5B,$70 Block 4x3 tiles from 7E7B to $705B
86C3 DEFB $05,$03,$03,$A0,$71,$60,$70 Block 3x3 tiles from 71A0 to $7060
86CA DEFB $05,$03,$01,$87,$7E,$96,$70 Block 3x1 tiles from 7E87 to $7096
86D1 DEFB $05,$05,$03,$DF,$84,$B9,$6F Block 5x3 tiles from 84DF to $6FB9
86D8 DEFB $05,$03,$03,$A0,$71,$12,$70 Block 3x3 tiles from 71A0 to $7012
86DF DEFB $05,$04,$03,$7B,$7E,$15,$70 Block 4x3 tiles from 7E7B to $7015
86E6 DEFB $05,$04,$03,$7B,$7E,$6B,$70 Block 4x3 tiles from 7E7B to $706B
86ED DEFB $05,$04,$03,$7B,$7E,$6F,$70 Block 4x3 tiles from 7E7B to $706F
86F4 DEFB $FF End of sequence
86F5: Blocks for rooms
86F5 DEFB $00,$01,$01,$02 Front block 4x2 - box
86F9 DEFB $06,$07,$07,$08
86FD: Room 86FD
86FD DEFW $B41F Room procedure
86FF DEFW $B422 Initialization
8701 DEFW $8608 Room to Left
8703 DEFW $8689 Room to Right
8705 DEFW $8739 Room Up
8707 DEFW $0000
8709 DEFB $06,$FF,$04,$16,$67 Triangle with $FF, count=4 at $6716
870E DEFB $02,$41,$FF,$BC,$66 Fill horz 65 tiles with $FF at $66BC
8713 DEFB $07,$FF,$02,$87,$66 Triangle with $FF, count=2 at $6687
8718 DEFB $03,$FF,$07,$03,$62,$66 Rectangle 7x3 tiles with $FF at $6662
871E DEFB $0C,$48,$73,$02,$07,$93,$65 Block 2 tiles from 7348 to $6593 copy 7 times
8725 DEFB $05,$04,$07,$AA,$79,$E6,$6F Block 4x7 tiles from 79AA to $6FE6
872C DEFB $00,$0E,$70 Barrel 3x3 tiles at $700E
872F DEFB $00,$66,$70 Barrel 3x3 tiles at $7066
8732 DEFB $00,$69,$70 Barrel 3x3 tiles at $7069
8735 DEFB $00,$6F,$70 Barrel 3x3 tiles at $706F
8738 DEFB $FF End of sequence
8739: Room 8739
8739 DEFW $7918 Room procedure
873B DEFW $A101 Initialization
873D DEFW $8799 Room to Left
873F DEFW $8802 Room to Right
8741 DEFW $0000
8743 DEFW $86FD Room Down
8745 DEFB $01,$09,$3A,$94,$65 Fill vert 9 tiles with $3A at $6594
874A DEFB $01,$09,$3A,$9E,$65 Fill vert 9 tiles with $3A at $659E
874F DEFB $01,$09,$3A,$A1,$65 Fill vert 9 tiles with $3A at $65A1
8754 DEFB $01,$05,$3A,$A8,$65 Fill vert 5 tiles with $3A at $65A8
8759 DEFB $02,$78,$FF,$9E,$66 Fill horz 120 tiles with $FF at $669E
875E DEFB $05,$02,$04,$84,$79,$A1,$66 Block 2x4 tiles from 7984 to $66A1
8765 DEFB $0C,$48,$73,$02,$04,$19,$67 Block 2 tiles from 7348 to $6719 copy 4 times
876C DEFB $05,$02,$04,$BB,$71,$2E,$70 Block 2x4 tiles from 71BB to $702E
8773 DEFB $05,$03,$03,$18,$7C,$44,$70 Block 3x3 tiles from 7C18 to $7044
877A DEFB $05,$03,$04,$0C,$7C,$23,$70 Block 3x4 tiles from 7C0C to $7023
8781 DEFB $05,$03,$04,$0C,$7C,$33,$70 Block 3x4 tiles from 7C0C to $7033
8788 DEFB $FF End of sequence
8789: Blocks for rooms
8789 DEFB $00,$01,$01,$02 Front block 4x4
878D DEFB $03,$04,$04,$05
8791 DEFB $03,$04,$04,$05
8795 DEFB $06,$07,$07,$08
8799: Room 8799
8799 DEFW $B41F Room procedure
879B DEFW $B422 Initialization
879D DEFW $0000
879F DEFW $8739 Room to Right
87A1 DEFW $0000
87A3 DEFW $0000
87A5 DEFB $01,$0F,$3A,$98,$65 Fill vert 15 tiles with $3A at $6598
87AA DEFB $01,$0B,$3A,$9D,$65 Fill vert 11 tiles with $3A at $659D
87AF DEFB $01,$09,$3A,$A1,$65 Fill vert 9 tiles with $3A at $65A1
87B4 DEFB $01,$09,$3A,$A4,$65 Fill vert 9 tiles with $3A at $65A4
87B9 DEFB $01,$09,$3A,$A7,$65 Fill vert 9 tiles with $3A at $65A7
87BE DEFB $01,$09,$3A,$AB,$65 Fill vert 9 tiles with $3A at $65AB
87C3 DEFB $0C,$E3,$81,$02,$0F,$90,$65 Block 2 tiles from 81E3 to $6590 copy 15 times
87CA DEFB $03,$FF,$10,$02,$52,$67 Rectangle 16x2 tiles with $FF at $6752
87D0 DEFB $03,$FF,$0E,$04,$AE,$66 Rectangle 14x4 tiles with $FF at $66AE
87D6 DEFB $08,$FF,$06,$AD,$66 Triangle with $FF, count=6 at $66AD
87DB DEFB $06,$FF,$04,$26,$67 Triangle with $FF, count=4 at $6726
87E0 DEFB $02,$08,$FA,$CE,$65 Fill horz 8 tiles with $FA at $65CE
87E5 DEFB $05,$03,$03,$A0,$71,$78,$70 Block 3x3 tiles from 71A0 to $7078
87EC DEFB $05,$04,$04,$89,$87,$D2,$70 Block 4x4 tiles from 8789 to $70D2
87F3 DEFB $05,$04,$07,$8E,$79,$7F,$70 Block 4x7 tiles from 798E to $707F
87FA DEFB $05,$04,$07,$8E,$79,$28,$70 Block 4x7 tiles from 798E to $7028
8801 DEFB $FF End of sequence
8802: Room 8802
8802 DEFW $B452 Room procedure
8804 DEFW $A375 Initialization
8806 DEFW $8739 Room to Left
8808 DEFW $0000
880A DEFW $8834 Room Up
880C DEFW $0000
880E DEFB $01,$09,$3A,$9D,$65 Fill vert 9 tiles with $3A at $659D
8813 DEFB $01,$08,$3A,$A2,$65 Fill vert 8 tiles with $3A at $65A2
8818 DEFB $03,$FF,$03,$11,$AB,$65 Rectangle 3x17 tiles with $FF at $65AB
881E DEFB $02,$84,$FF,$92,$66 Fill horz 132 tiles with $FF at $6692
8823 DEFB $00,$42,$70 Barrel 3x3 tiles at $7042
8826 DEFB $00,$46,$70 Barrel 3x3 tiles at $7046
8829 DEFB $00,$2F,$70 Barrel 3x3 tiles at $702F
882C DEFB $0C,$48,$73,$02,$08,$A7,$65 Block 2 tiles from 7348 to $65A7 copy 8 times
8833 DEFB $FF End of sequence
8834: Room 8834
8834 DEFW $B41F Room procedure
8836 DEFW $B422 Initialization
8838 DEFW $889F Room to Left
883A DEFW $890E Room to Right
883C DEFW $8A81 Room Up
883E DEFW $8802 Room Down
8840 DEFB $01,$0B,$3A,$EC,$65 Fill vert 11 tiles with $3A at $65EC
8845 DEFB $01,$0E,$3A,$97,$65 Fill vert 14 tiles with $3A at $6597
884A DEFB $01,$10,$3A,$9D,$65 Fill vert 16 tiles with $3A at $659D
884F DEFB $01,$11,$3A,$A2,$65 Fill vert 17 tiles with $3A at $65A2
8854 DEFB $02,$0A,$FF,$84,$67 Fill horz 10 tiles with $FF at $6784
8859 DEFB $0C,$48,$73,$02,$10,$A7,$65 Block 2 tiles from 7348 to $65A7 copy 16 times
8860 DEFB $0E,$3A,$5C,$67 Put tile $3A at $675C
8864 DEFB $05,$02,$01,$9D,$88,$D3,$66 Block 2x1 tiles from 889D to $66D3
886B DEFB $05,$02,$01,$84,$79,$87,$67 Block 2x1 tiles from 7984 to $6787
8872 DEFB $02,$07,$FA,$7A,$67 Fill horz 7 tiles with $FA at $677A
8877 DEFB $05,$01,$02,$98,$88,$5E,$67 Block 1x2 tiles from 8898 to $675E
887E DEFB $02,$0C,$FA,$34,$67 Fill horz 12 tiles with $FA at $6734
8883 DEFB $02,$04,$FA,$80,$66 Fill horz 4 tiles with $FA at $6680
8888 DEFB $02,$04,$FA,$E0,$66 Fill horz 4 tiles with $FA at $66E0
888D DEFB $02,$06,$FA,$CD,$66 Fill horz 6 tiles with $FA at $66CD
8892 DEFB $01,$03,$28,$88,$6F Fill vert 3 tiles with $28 at $6F88
8897 DEFB $FF End of sequence
8898: Blocks for rooms
8898 DEFB $F9 Back block 1x1
8899 DEFB $F8 Back block 1x4
889A DEFB $F9
889B DEFB $F9
889C DEFB $F9
889D DEFB $EF,$EE Back block 2x1 - ladder on yellow
889F: Room 889F
889F DEFW $B41F Room procedure
88A1 DEFW $B422 Initialization
88A3 DEFW $8953 Room to Left
88A5 DEFW $8834 Room to Right
88A7 DEFW $89B9 Room Up
88A9 DEFW $8739 Room Down
88AB DEFB $01,$11,$3A,$94,$65 Fill vert 17 tiles with $3A at $6594
88B0 DEFB $01,$11,$3A,$A8,$65 Fill vert 17 tiles with $3A at $65A8
88B5 DEFB $01,$0C,$3A,$9C,$65 Fill vert 12 tiles with $3A at $659C
88BA DEFB $01,$06,$3A,$9F,$65 Fill vert 6 tiles with $3A at $659F
88BF DEFB $01,$06,$3A,$A3,$65 Fill vert 6 tiles with $3A at $65A3
88C4 DEFB $01,$04,$3A,$24,$67 Fill vert 4 tiles with $3A at $6724
88C9 DEFB $01,$06,$3A,$EB,$66 Fill vert 6 tiles with $3A at $66EB
88CE DEFB $02,$07,$63,$53,$66 Fill horz 7 tiles with $63 at $6653
88D3 DEFB $01,$07,$3A,$19,$66 Fill vert 7 tiles with $3A at $6619
88D8 DEFB $0E,$63,$55,$66 Put tile $63 at $6655
88DC DEFB $02,$04,$FA,$A2,$66 Fill horz 4 tiles with $FA at $66A2
88E1 DEFB $02,$0A,$FA,$DA,$66 Fill horz 10 tiles with $FA at $66DA
88E6 DEFB $02,$03,$FA,$04,$67 Fill horz 3 tiles with $FA at $6704
88EB DEFB $02,$0B,$FA,$5F,$67 Fill horz 11 tiles with $FA at $675F
88F0 DEFB $02,$06,$FA,$98,$66 Fill horz 6 tiles with $FA at $6698
88F5 DEFB $02,$03,$FA,$4F,$67 Fill horz 3 tiles with $FA at $674F
88FA DEFB $02,$06,$FA,$6A,$67 Fill horz 6 tiles with $FA at $676A
88FF DEFB $05,$01,$01,$99,$88,$A4,$66 Block 1x1 tiles from 8899 to $66A4
8906 DEFB $05,$01,$04,$98,$88,$C2,$66 Block 1x4 tiles from 8898 to $66C2
890D DEFB $FF End of sequence
890E: Room 890E
890E DEFW $B41F Room procedure
8910 DEFW $B422 Initialization
8912 DEFW $8834 Room to Left
8914 DEFW $8BF0 Room to Right
8916 DEFW $0000
8918 DEFW $0000
891A DEFB $01,$10,$3A,$99,$65 Fill vert 16 tiles with $3A at $6599
891F DEFB $01,$10,$3A,$A1,$65 Fill vert 16 tiles with $3A at $65A1
8924 DEFB $01,$07,$3A,$B6,$66 Fill vert 7 tiles with $3A at $66B6
8929 DEFB $02,$1E,$FF,$70,$67 Fill horz 30 tiles with $FF at $6770
892E DEFB $05,$03,$03,$18,$7C,$12,$71 Block 3x3 tiles from 7C18 to $7112
8935 DEFB $02,$05,$63,$19,$66 Fill horz 5 tiles with $63 at $6619
893A DEFB $02,$03,$FA,$AE,$66 Fill horz 3 tiles with $FA at $66AE
893F DEFB $02,$07,$FA,$97,$66 Fill horz 7 tiles with $FA at $6697
8944 DEFB $02,$09,$FA,$84,$66 Fill horz 9 tiles with $FA at $6684
8949 DEFB $01,$07,$F9,$F3,$65 Fill vert 7 tiles with $F9 at $65F3
894E DEFB $0E,$F8,$89,$66 Put tile $F8 at $6689
8952 DEFB $FF End of sequence
8953: Room 8953
8953 DEFW $B41F Room procedure
8955 DEFW $B422 Initialization
8957 DEFW $0000
8959 DEFW $889F Room to Right
895B DEFW $89B9 Room Up
895D DEFW $8799 Room Down
895F DEFB $01,$11,$3A,$98,$65 Fill vert 17 tiles with $3A at $6598
8964 DEFB $01,$10,$3A,$9D,$65 Fill vert 16 tiles with $3A at $659D
8969 DEFB $01,$05,$3A,$A0,$65 Fill vert 5 tiles with $3A at $65A0
896E DEFB $01,$09,$3A,$A3,$65 Fill vert 9 tiles with $3A at $65A3
8973 DEFB $01,$11,$3A,$AB,$65 Fill vert 17 tiles with $3A at $65AB
8978 DEFB $01,$07,$3A,$CD,$66 Fill vert 7 tiles with $3A at $66CD
897D DEFB $01,$07,$3A,$D0,$66 Fill vert 7 tiles with $3A at $66D0
8982 DEFB $01,$02,$3A,$69,$67 Fill vert 2 tiles with $3A at $6769
8987 DEFB $0C,$E3,$81,$02,$11,$90,$65 Block 2 tiles from 81E3 to $6590 copy 17 times
898E DEFB $0C,$48,$73,$02,$09,$95,$65 Block 2 tiles from 7348 to $6595 copy 9 times
8995 DEFB $02,$05,$63,$33,$66 Fill horz 5 tiles with $63 at $6633
899A DEFB $02,$07,$FA,$A0,$66 Fill horz 7 tiles with $FA at $66A0
899F DEFB $02,$08,$FA,$54,$67 Fill horz 8 tiles with $FA at $6754
89A4 DEFB $02,$03,$FA,$7C,$67 Fill horz 3 tiles with $FA at $677C
89A9 DEFB $02,$05,$FA,$AE,$66 Fill horz 5 tiles with $FA at $66AE
89AE DEFB $02,$06,$FA,$47,$67 Fill horz 6 tiles with $FA at $6747
89B3 DEFB $02,$17,$FA,$E1,$66 Fill horz 23 tiles with $FA at $66E1
89B8 DEFB $FF End of sequence
89B9: Room 89B9
89B9 DEFW $B41F Room procedure
89BB DEFW $B422 Initialization
89BD DEFW $0000
89BF DEFW $8A2D Room to Right
89C1 DEFW $0000
89C3 DEFW $8953 Room Down
89C5 DEFB $0E,$3A,$B6,$66 Put tile $3A at $66B6
89C9 DEFB $0E,$3A,$2A,$67 Put tile $3A at $672A
89CD DEFB $01,$08,$3A,$AB,$66 Fill vert 8 tiles with $3A at $66AB
89D2 DEFB $01,$08,$3A,$B9,$66 Fill vert 8 tiles with $3A at $66B9
89D7 DEFB $01,$02,$3A,$62,$67 Fill vert 2 tiles with $3A at $6762
89DC DEFB $01,$02,$3A,$65,$67 Fill vert 2 tiles with $3A at $6765
89E1 DEFB $06,$FF,$0B,$90,$65 Triangle with $FF, count=11 at $6590
89E6 DEFB $02,$13,$FF,$9B,$65 Fill horz 19 tiles with $FF at $659B
89EB DEFB $0C,$E3,$81,$02,$08,$9E,$66 Block 2 tiles from 81E3 to $669E copy 8 times
89F2 DEFB $0C,$48,$73,$02,$0B,$2B,$66 Block 2 tiles from 7348 to $662B copy 11 times
89F9 DEFB $05,$02,$01,$9D,$88,$75,$67 Block 2x1 tiles from 889D to $6775
8A00 DEFB $02,$0B,$FA,$77,$67 Fill horz 11 tiles with $FA at $6777
8A05 DEFB $02,$04,$FA,$8B,$66 Fill horz 4 tiles with $FA at $668B
8A0A DEFB $02,$05,$FA,$44,$67 Fill horz 5 tiles with $FA at $6744
8A0F DEFB $02,$08,$FA,$96,$66 Fill horz 8 tiles with $FA at $6696
8A14 DEFB $05,$01,$04,$98,$88,$F0,$66 Block 1x4 tiles from 8898 to $66F0
8A1B DEFB $05,$01,$03,$98,$88,$D4,$66 Block 1x3 tiles from 8898 to $66D4
8A22 DEFB $02,$02,$FA,$F0,$66 Fill horz 2 tiles with $FA at $66F0
8A27 DEFB $02,$03,$FA,$0B,$67 Fill horz 3 tiles with $FA at $670B
8A2C DEFB $FF End of sequence
8A2D: Room 8A2D
8A2D DEFW $B41F Room procedure
8A2F DEFW $B422 Initialization
8A31 DEFW $89B9 Room to Left
8A33 DEFW $8A81 Room to Right
8A35 DEFW $8B25 Room Up
8A37 DEFW $889F Room Down
8A39 DEFB $01,$08,$3A,$A2,$66 Fill vert 8 tiles with $3A at $66A2
8A3E DEFB $01,$08,$3A,$AD,$66 Fill vert 8 tiles with $3A at $66AD
8A43 DEFB $01,$08,$3A,$B1,$66 Fill vert 8 tiles with $3A at $66B1
8A48 DEFB $01,$05,$3A,$04,$67 Fill vert 5 tiles with $3A at $6704
8A4D DEFB $02,$03,$FF,$90,$65 Fill horz 3 tiles with $FF at $6590
8A52 DEFB $02,$0F,$FA,$80,$66 Fill horz 15 tiles with $FA at $6680
8A57 DEFB $02,$05,$FA,$8F,$66 Fill horz 5 tiles with $FA at $668F
8A5C DEFB $0C,$48,$73,$02,$08,$A1,$65 Block 2 tiles from 7348 to $65A1 copy 8 times
8A63 DEFB $02,$08,$FA,$55,$67 Fill horz 8 tiles with $FA at $6755
8A68 DEFB $02,$05,$FA,$E2,$66 Fill horz 5 tiles with $FA at $66E2
8A6D DEFB $02,$04,$FA,$86,$67 Fill horz 4 tiles with $FA at $6786
8A72 DEFB $05,$01,$03,$99,$88,$E3,$66 Block 1x3 tiles from 8899 to $66E3
8A79 DEFB $05,$01,$03,$98,$88,$3D,$67 Block 1x3 tiles from 8898 to $673D
8A80 DEFB $FF End of sequence
8A81: Room 8A81
8A81 DEFW $B41F Room procedure
8A83 DEFW $B422 Initialization
8A85 DEFW $8A2D Room to Left
8A87 DEFW $8AF4 Room to Right
8A89 DEFW $0000
8A8B DEFW $8834 Room Down
8A8D DEFB $01,$06,$3A,$E1,$66 Fill vert 6 tiles with $3A at $66E1
8A92 DEFB $01,$0C,$3A,$33,$66 Fill vert 12 tiles with $3A at $6633
8A97 DEFB $01,$05,$3A,$0A,$67 Fill vert 5 tiles with $3A at $670A
8A9C DEFB $09,$FF,$04,$A7,$65 Triangle with $FF, count=4 at $65A7
8AA1 DEFB $06,$FF,$04,$A8,$65 Triangle with $FF, count=4 at $65A8
8AA6 DEFB $0C,$48,$73,$02,$0E,$01,$66 Block 2 tiles from 7348 to $6601 copy 14 times
8AAD DEFB $05,$02,$01,$9D,$88,$F1,$66 Block 2x1 tiles from 889D to $66F1
8AB4 DEFB $05,$02,$01,$9D,$88,$4B,$67 Block 2x1 tiles from 889D to $674B
8ABB DEFB $02,$05,$FA,$4D,$67 Fill horz 5 tiles with $FA at $674D
8AC0 DEFB $02,$06,$FA,$EB,$66 Fill horz 6 tiles with $FA at $66EB
8AC5 DEFB $02,$03,$FA,$C1,$66 Fill horz 3 tiles with $FA at $66C1
8ACA DEFB $01,$04,$28,$0E,$71 Fill vert 4 tiles with $28 at $710E
8ACF DEFB $02,$0B,$FA,$B8,$65 Fill horz 11 tiles with $FA at $65B8
8AD4 DEFB $05,$01,$05,$98,$88,$9D,$65 Block 1x5 tiles from 8898 to $659D
8ADB DEFB $02,$03,$FA,$FF,$66 Fill horz 3 tiles with $FA at $66FF
8AE0 DEFB $02,$06,$FA,$1F,$67 Fill horz 6 tiles with $FA at $671F
8AE5 DEFB $05,$01,$04,$99,$88,$1E,$67 Block 1x4 tiles from 8899 to $671E
8AEC DEFB $05,$01,$02,$98,$88,$E2,$66 Block 1x2 tiles from 8898 to $66E2
8AF3 DEFB $FF End of sequence
8AF4: Room 8AF4
8AF4 DEFW $B41F Room procedure
8AF6 DEFW $B422 Initialization
8AF8 DEFW $8A81 Room to Left
8AFA DEFW $8C5A Room to Right
8AFC DEFW $8BAB Room Up
8AFE DEFW $890E Room Down
8B00 DEFB $01,$08,$3A,$A7,$66 Fill vert 8 tiles with $3A at $66A7
8B05 DEFB $01,$08,$3A,$AF,$66 Fill vert 8 tiles with $3A at $66AF
8B0A DEFB $02,$0B,$FA,$34,$67 Fill horz 11 tiles with $FA at $6734
8B0F DEFB $02,$13,$FA,$88,$66 Fill horz 19 tiles with $FA at $6688
8B14 DEFB $0C,$48,$73,$02,$08,$A4,$65 Block 2 tiles from 7348 to $65A4 copy 8 times
8B1B DEFB $01,$06,$F9,$8E,$66 Fill vert 6 tiles with $F9 at $668E
8B20 DEFB $0E,$F8,$8E,$66 Put tile $F8 at $668E
8B24 DEFB $FF End of sequence
8B25: Room 8B25
8B25 DEFW $B483 Room procedure
8B27 DEFW $A174 Initialization
8B29 DEFW $0000
8B2B DEFW $8B71 Room to Right
8B2D DEFW $0000
8B2F DEFW $8A2D Room Down
8B31 DEFB $02,$1E,$FF,$70,$67 Fill horz 30 tiles with $FF at $6770
8B36 DEFB $02,$48,$FF,$90,$65 Fill horz 72 tiles with $FF at $6590
8B3B DEFB $0C,$48,$73,$02,$0E,$DD,$65 Block 2 tiles from 7348 to $65DD copy 14 times
8B42 DEFB $05,$02,$01,$84,$79,$81,$67 Block 2x1 tiles from 7984 to $6781
8B49 DEFB $05,$04,$04,$A9,$71,$F7,$70 Block 4x4 tiles from 71A9 to $70F7
8B50 DEFB $05,$04,$04,$A9,$71,$F5,$70 Block 4x4 tiles from 71A9 to $70F5
8B57 DEFB $05,$04,$04,$A9,$71,$F0,$70 Block 4x4 tiles from 71A9 to $70F0
8B5E DEFB $05,$04,$04,$A9,$71,$07,$71 Block 4x4 tiles from 71A9 to $7107
8B65 DEFB $06,$FF,$0B,$EA,$65 Triangle with $FF, count=11 at $65EA
8B6A DEFB $03,$FF,$03,$04,$F8,$66 Rectangle 3x4 tiles with $FF at $66F8
8B70 DEFB $FF End of sequence
8B71: Room 8B71
8B71 DEFW $7918 Room procedure
8B73 DEFW $A0FC Initialization
8B75 DEFW $8B25 Room to Left
8B77 DEFW $8BAB Room to Right
8B79 DEFW $0000
8B7B DEFW $0000
8B7D DEFB $02,$1E,$FF,$70,$67 Fill horz 30 tiles with $FF at $6770
8B82 DEFB $02,$3C,$FF,$90,$65 Fill horz 60 tiles with $FF at $6590
8B87 DEFB $05,$04,$04,$A9,$71,$EF,$70 Block 4x4 tiles from 71A9 to $70EF
8B8E DEFB $05,$04,$04,$A9,$71,$F5,$70 Block 4x4 tiles from 71A9 to $70F5
8B95 DEFB $05,$04,$04,$A9,$71,$FB,$70 Block 4x4 tiles from 71A9 to $70FB
8B9C DEFB $05,$04,$04,$A9,$71,$00,$71 Block 4x4 tiles from 71A9 to $7100
8BA3 DEFB $05,$04,$04,$A9,$71,$07,$71 Block 4x4 tiles from 71A9 to $7107
8BAA DEFB $FF End of sequence
8BAB: Room 8BAB
8BAB DEFW $B41F Room procedure
8BAD DEFW $B422 Initialization
8BAF DEFW $8B71 Room to Left
8BB1 DEFW $0000
8BB3 DEFW $0000
8BB5 DEFW $8AF4 Room Down
8BB7 DEFB $02,$3C,$FF,$90,$65 Fill horz 60 tiles with $FF at $6590
8BBC DEFB $03,$FF,$02,$0E,$E8,$65 Rectangle 2x14 tiles with $FF at $65E8
8BC2 DEFB $02,$09,$FF,$70,$67 Fill horz 9 tiles with $FF at $6770
8BC7 DEFB $02,$10,$FF,$7E,$67 Fill horz 16 tiles with $FF at $677E
8BCC DEFB $0C,$48,$73,$02,$0E,$E0,$65 Block 2 tiles from 7348 to $65E0 copy 14 times
8BD3 DEFB $05,$02,$01,$9D,$88,$84,$67 Block 2x1 tiles from 889D to $6784
8BDA DEFB $05,$03,$03,$A0,$71,$1B,$71 Block 3x3 tiles from 71A0 to $711B
8BE1 DEFB $05,$04,$04,$A9,$71,$F2,$70 Block 4x4 tiles from 71A9 to $70F2
8BE8 DEFB $05,$04,$04,$A9,$71,$06,$71 Block 4x4 tiles from 71A9 to $7106
8BEF DEFB $FF End of sequence
8BF0: Room 8BF0
8BF0 DEFW $B41F Room procedure
8BF2 DEFW $B422 Initialization
8BF4 DEFW $890E Room to Left
8BF6 DEFW $8CC8 Room to Right
8BF8 DEFW $0000
8BFA DEFW $9005 Room Down
8BFC DEFB $01,$10,$3A,$93,$65 Fill vert 16 tiles with $3A at $6593
8C01 DEFB $01,$08,$3A,$98,$65 Fill vert 8 tiles with $3A at $6598
8C06 DEFB $01,$08,$3A,$9C,$65 Fill vert 8 tiles with $3A at $659C
8C0B DEFB $01,$08,$3A,$A0,$65 Fill vert 8 tiles with $3A at $65A0
8C10 DEFB $01,$08,$3A,$A3,$65 Fill vert 8 tiles with $3A at $65A3
8C15 DEFB $01,$08,$3A,$A7,$65 Fill vert 8 tiles with $3A at $65A7
8C1A DEFB $01,$08,$3A,$AB,$65 Fill vert 8 tiles with $3A at $65AB
8C1F DEFB $02,$1E,$FF,$70,$67 Fill horz 30 tiles with $FF at $6770
8C24 DEFB $03,$FF,$04,$07,$B8,$66 Rectangle 4x7 tiles with $FF at $66B8
8C2A DEFB $02,$17,$FF,$87,$66 Fill horz 23 tiles with $FF at $6687
8C2F DEFB $0C,$48,$73,$02,$07,$B0,$66 Block 2 tiles from 7348 to $66B0 copy 7 times
8C36 DEFB $05,$02,$01,$84,$79,$82,$67 Block 2x1 tiles from 7984 to $6782
8C3D DEFB $02,$04,$FA,$80,$66 Fill horz 4 tiles with $FA at $6680
8C42 DEFB $0E,$F9,$95,$65 Put tile $F9 at $6595
8C46 DEFB $02,$06,$63,$31,$66 Fill horz 6 tiles with $63 at $6631
8C4B DEFB $0E,$2A,$9D,$70 Put tile $2A at $709D
8C4F DEFB $01,$06,$2B,$BB,$70 Fill vert 6 tiles with $2B at $70BB
8C54 DEFB $01,$01,$FF,$89,$66 Fill vert 1 tiles with $FF at $6689
8C59 DEFB $FF End of sequence
8C5A: Room 8C5A
8C5A DEFW $B41F Room procedure
8C5C DEFW $B422 Initialization
8C5E DEFW $8AF4 Room to Left
8C60 DEFW $8D18 Room to Right
8C62 DEFW $0000
8C64 DEFW $8BF0 Room Down
8C66 DEFB $01,$05,$3A,$DD,$66 Fill vert 5 tiles with $3A at $66DD
8C6B DEFB $01,$0D,$3A,$F2,$65 Fill vert 13 tiles with $3A at $65F2
8C70 DEFB $01,$0F,$3A,$D8,$65 Fill vert 15 tiles with $3A at $65D8
8C75 DEFB $01,$07,$3A,$CC,$66 Fill vert 7 tiles with $3A at $66CC
8C7A DEFB $01,$07,$3A,$CF,$66 Fill vert 7 tiles with $3A at $66CF
8C7F DEFB $01,$0D,$3A,$1F,$66 Fill vert 13 tiles with $3A at $661F
8C84 DEFB $01,$0D,$3A,$23,$66 Fill vert 13 tiles with $3A at $6623
8C89 DEFB $09,$FF,$03,$A6,$65 Triangle with $FF, count=3 at $65A6
8C8E DEFB $03,$FF,$07,$04,$A7,$65 Rectangle 7x4 tiles with $FF at $65A7
8C94 DEFB $02,$0A,$FA,$B3,$65 Fill horz 10 tiles with $FA at $65B3
8C99 DEFB $05,$01,$03,$98,$88,$98,$65 Block 1x3 tiles from 8898 to $6598
8CA0 DEFB $01,$03,$F9,$1B,$67 Fill vert 3 tiles with $F9 at $671B
8CA5 DEFB $02,$07,$FA,$73,$67 Fill horz 7 tiles with $FA at $6773
8CAA DEFB $0E,$F8,$75,$67 Put tile $F8 at $6775
8CAE DEFB $02,$0A,$FA,$BD,$66 Fill horz 10 tiles with $FA at $66BD
8CB3 DEFB $02,$04,$FA,$E5,$66 Fill horz 4 tiles with $FA at $66E5
8CB8 DEFB $02,$04,$FA,$AE,$66 Fill horz 4 tiles with $FA at $66AE
8CBD DEFB $02,$03,$FA,$EF,$66 Fill horz 3 tiles with $FA at $66EF
8CC2 DEFB $02,$05,$FA,$2F,$67 Fill horz 5 tiles with $FA at $672F
8CC7 DEFB $FF End of sequence
8CC8: Room 8CC8
8CC8 DEFW $B41F Room procedure
8CCA DEFW $B422 Initialization
8CCC DEFW $8BF0 Room to Left
8CCE DEFW $8E9C Room to Right
8CD0 DEFW $0000
8CD2 DEFW $0000
8CD4 DEFB $01,$0C,$3A,$96,$65 Fill vert 12 tiles with $3A at $6596
8CD9 DEFB $01,$10,$3A,$9E,$65 Fill vert 16 tiles with $3A at $659E
8CDE DEFB $01,$10,$3A,$A3,$65 Fill vert 16 tiles with $3A at $65A3
8CE3 DEFB $01,$10,$3A,$AA,$65 Fill vert 16 tiles with $3A at $65AA
8CE8 DEFB $07,$FF,$07,$A1,$66 Triangle with $FF, count=7 at $66A1
8CED DEFB $02,$1E,$FF,$70,$67 Fill horz 30 tiles with $FF at $6770
8CF2 DEFB $03,$FF,$03,$08,$80,$66 Rectangle 3x8 tiles with $FF at $6680
8CF8 DEFB $02,$06,$63,$F5,$65 Fill horz 6 tiles with $63 at $65F5
8CFD DEFB $02,$0A,$FA,$92,$66 Fill horz 10 tiles with $FA at $6692
8D02 DEFB $05,$04,$07,$AA,$79,$9B,$70 Block 4x7 tiles from 79AA to $709B
8D09 DEFB $05,$04,$07,$AA,$79,$3E,$70 Block 4x7 tiles from 79AA to $703E
8D10 DEFB $05,$04,$07,$AA,$79,$00,$70 Block 4x7 tiles from 79AA to $7000
8D17 DEFB $FF End of sequence
8D18: Room 8D18
8D18 DEFW $B41F Room procedure
8D1A DEFW $B422 Initialization
8D1C DEFW $8C5A Room to Left
8D1E DEFW $8EE1 Room to Right
8D20 DEFW $8D5C Room Up
8D22 DEFW $8CC8 Room Down
8D24 DEFB $01,$03,$3A,$3A,$67 Fill vert 3 tiles with $3A at $673A
8D29 DEFB $01,$03,$3A,$42,$67 Fill vert 3 tiles with $3A at $6742
8D2E DEFB $01,$03,$3A,$4E,$67 Fill vert 3 tiles with $3A at $674E
8D33 DEFB $01,$11,$3A,$A3,$65 Fill vert 17 tiles with $3A at $65A3
8D38 DEFB $03,$FF,$0A,$04,$90,$65 Rectangle 10x4 tiles with $FF at $6590
8D3E DEFB $0C,$48,$73,$02,$0D,$9A,$65 Block 2 tiles from 7348 to $659A copy 13 times
8D45 DEFB $02,$12,$FA,$16,$67 Fill horz 18 tiles with $FA at $6716
8D4A DEFB $02,$06,$FA,$2E,$67 Fill horz 6 tiles with $FA at $672E
8D4F DEFB $02,$05,$63,$74,$66 Fill horz 5 tiles with $63 at $6674
8D54 DEFB $05,$02,$04,$BB,$71,$A1,$70 Block 2x4 tiles from 71BB to $70A1
8D5B DEFB $FF End of sequence
8D5C: Room 8D5C
8D5C DEFW $B483 Room procedure
8D5E DEFW $A1A1 Initialization
8D60 DEFW $8DCA Room to Left
8D62 DEFW $0000
8D64 DEFW $0000
8D66 DEFW $8D18 Room Down
8D68 DEFB $04,$01 Fill entire screen with $01
8D6A DEFB $02,$3E,$FF,$90,$65 Fill horz 62 tiles with $FF at $6590
8D6F DEFB $03,$FF,$02,$04,$EA,$65 Rectangle 2x4 tiles with $FF at $65EA
8D75 DEFB $02,$04,$FF,$62,$66 Fill horz 4 tiles with $FF at $6662
8D7A DEFB $09,$FF,$07,$E4,$65 Triangle with $FF, count=7 at $65E4
8D7F DEFB $03,$FF,$05,$0C,$E5,$65 Rectangle 5x12 tiles with $FF at $65E5
8D85 DEFB $02,$41,$FF,$4D,$67 Fill horz 65 tiles with $FF at $674D
8D8A DEFB $05,$02,$02,$84,$79,$5C,$67 Block 2x2 tiles from 7984 to $675C
8D91 DEFB $05,$03,$03,$A0,$71,$F2,$70 Block 3x3 tiles from 71A0 to $70F2
8D98 DEFB $05,$03,$03,$A0,$71,$A3,$70 Block 3x3 tiles from 71A0 to $70A3
8D9F DEFB $05,$03,$03,$A0,$71,$A7,$70 Block 3x3 tiles from 71A0 to $70A7
8DA6 DEFB $05,$03,$03,$A0,$71,$FC,$70 Block 3x3 tiles from 71A0 to $70FC
8DAD DEFB $05,$03,$03,$A0,$71,$FF,$70 Block 3x3 tiles from 71A0 to $70FF
8DB4 DEFB $05,$03,$03,$A0,$71,$03,$71 Block 3x3 tiles from 71A0 to $7103
8DBB DEFB $01,$01,$FF,$64,$66 Fill vert 1 tiles with $FF at $6664
8DC0 DEFB $0E,$2A,$78,$70 Put tile $2A at $7078
8DC4 DEFB $01,$06,$2B,$96,$70 Fill vert 6 tiles with $2B at $7096
8DC9 DEFB $FF End of sequence
8DCA: Room 8DCA (helicopter)
8DCA DEFW $B41F Room procedure
8DCC DEFW $B422 Initialization
8DCE DEFW $0000
8DD0 DEFW $8D5C Room to Right
8DD2 DEFW $0000
8DD4 DEFW $0000
8DD6 DEFB $04,$01 Fill entire screen with $01
8DD8 DEFB $02,$3F,$FF,$90,$65 Fill horz 63 tiles with $FF at $6590
8DDD DEFB $03,$FF,$02,$0D,$EA,$65 Rectangle 2x13 tiles with $FF at $65EA
8DE3 DEFB $02,$25,$FF,$69,$67 Fill horz 37 tiles with $FF at $6769
8DE8 DEFB $02,$0A,$91,$5A,$67 Fill horz 10 tiles with $91 at $675A
8DED DEFB $02,$17,$01,$93,$65 Fill horz 23 tiles with $01 at $6593
8DF2 DEFB $02,$1B,$E2,$AF,$65 Fill horz 27 tiles with $E2 at $65AF
8DF7 DEFB $0E,$FF,$E6,$65 Put tile $FF at $65E6
8DFB DEFB $03,$FF,$03,$06,$E7,$65 Rectangle 3x6 tiles with $FF at $65E7
8E01 DEFB $0E,$2A,$91,$70 Put tile $2A at $7091
8E05 DEFB $01,$06,$2B,$AF,$70 Fill vert 6 tiles with $2B at $70AF
8E0A DEFB $05,$04,$07,$47,$8E,$63,$70 Block 4x7 tiles from 8E47 to $7063
8E11 DEFB $05,$02,$06,$6C,$8E,$89,$66 Block 2x6 tiles from 8E6C to $6689
8E18 DEFB $05,$05,$01,$67,$8E,$3E,$67 Block 5x1 tiles from 8E67 to $673E
8E1F DEFB $05,$01,$02,$63,$8E,$06,$67 Block 1x2 tiles from 8E63 to $6706
8E26 DEFB $05,$03,$08,$78,$8E,$71,$66 Block 3x8 tiles from 8E78 to $6671
8E2D DEFB $02,$11,$D4,$2C,$66 Fill horz 17 tiles with $D4 at $662C
8E32 DEFB $05,$01,$02,$65,$8E,$34,$66 Block 1x2 tiles from 8E65 to $6634
8E39 DEFB $05,$03,$04,$90,$8E,$56,$66 Block 3x4 tiles from 8E90 to $6656
8E40 DEFB $03,$1B,$04,$04,$8B,$66 Rectangle 4x4 tiles with $1B at $668B
8E46 DEFB $FF End of sequence
8E47: Blocks for rooms
8E47 DEFB $64,$65,$5A,$5A Front block 4x7
8E4B DEFB $5B,$FF,$5C,$63
8E4F DEFB $FF,$FF,$FF,$62
8E53 DEFB $5A,$5A,$61,$62
8E57 DEFB $5A,$5A,$5A,$60
8E5B DEFB $5A,$5A,$5A,$5F
8E5F DEFB $5D,$5A,$5A,$5E
8E63 DEFB $23 Block 1x2
8E64 DEFB $24
8E65 DEFB $D3 Block 1x2
8E66 DEFB $D2
8E67 DEFB $E0,$D9,$D8,$D5,$E0 Back block 5x1
8E6C DEFB $01,$DA Back block 2x6
8E6E DEFB $DC,$DB
8E70 DEFB $DD,$D7
8E72 DEFB $DE,$D6
8E74 DEFB $DF,$D6
8E76 DEFB $01,$E1
8E78 DEFB $2F,$30,$01 Back block 3x8
8E7B DEFB $2E,$28,$31
8E7E DEFB $2D,$28,$28
8E81 DEFB $2B,$28,$2C
8E84 DEFB $28,$28,$2A
8E87 DEFB $28,$29,$01
8E8A DEFB $27,$01,$01
8E8D DEFB $25,$26,$01
8E90 DEFB $36,$01,$01 Back block 3x4
8E93 DEFB $34,$35,$37
8E96 DEFB $28,$28,$01
8E99 DEFB $32,$33,$01
8E9C: Room 8E9C
8E9C DEFW $B41F Room procedure
8E9E DEFW $B422 Initialization
8EA0 DEFW $8CC8 Room to Left
8EA2 DEFW $0000
8EA4 DEFW $8EE1 Room Up
8EA6 DEFW $8F20 Room Down
8EA8 DEFB $01,$10,$3A,$91,$65 Fill vert 16 tiles with $3A at $6591
8EAD DEFB $01,$10,$3A,$99,$65 Fill vert 16 tiles with $3A at $6599
8EB2 DEFB $01,$10,$3A,$9C,$65 Fill vert 16 tiles with $3A at $659C
8EB7 DEFB $01,$06,$3A,$C1,$66 Fill vert 6 tiles with $3A at $66C1
8EBC DEFB $01,$07,$3A,$CF,$66 Fill vert 7 tiles with $3A at $66CF
8EC1 DEFB $01,$07,$3A,$D3,$66 Fill vert 7 tiles with $3A at $66D3
8EC6 DEFB $02,$0E,$FF,$70,$67 Fill horz 14 tiles with $FF at $6770
8ECB DEFB $02,$08,$FA,$A1,$66 Fill horz 8 tiles with $FA at $66A1
8ED0 DEFB $02,$06,$FA,$B1,$66 Fill horz 6 tiles with $FA at $66B1
8ED5 DEFB $02,$04,$FA,$45,$67 Fill horz 4 tiles with $FA at $6745
8EDA DEFB $03,$FF,$02,$11,$AC,$65 Rectangle 2x17 tiles with $FF at $65AC
8EE0 DEFB $FF End of sequence
8EE1: Room 8EE1
8EE1 DEFW $B41F Room procedure
8EE3 DEFW $B422 Initialization
8EE5 DEFW $8D18 Room to Left
8EE7 DEFW $0000
8EE9 DEFW $0000
8EEB DEFW $8E9C Room Down
8EED DEFB $01,$03,$3A,$35,$67 Fill vert 3 tiles with $3A at $6735
8EF2 DEFB $01,$0F,$3A,$D5,$65 Fill vert 15 tiles with $3A at $65D5
8EF7 DEFB $0E,$3A,$7C,$67 Put tile $3A at $677C
8EFB DEFB $0E,$FF,$93,$65 Put tile $FF at $6593
8EFF DEFB $03,$FF,$1A,$02,$94,$65 Rectangle 26x2 tiles with $FF at $6594
8F05 DEFB $03,$FF,$02,$0F,$E8,$65 Rectangle 2x15 tiles with $FF at $65E8
8F0B DEFB $09,$FF,$07,$E7,$65 Triangle with $FF, count=7 at $65E7
8F10 DEFB $02,$04,$FA,$16,$67 Fill horz 4 tiles with $FA at $6716
8F15 DEFB $02,$07,$FA,$5B,$67 Fill horz 7 tiles with $FA at $675B
8F1A DEFB $02,$04,$63,$E0,$66 Fill horz 4 tiles with $63 at $66E0
8F1F DEFB $FF End of sequence
8F20: Room 8F20
8F20 DEFW $B41F Room procedure
8F22 DEFW $B422 Initialization
8F24 DEFW $8FBD Room to Left
8F26 DEFW $0000
8F28 DEFW $8E9C Room Up
8F2A DEFW $8F84 Room Down
8F2C DEFB $02,$0E,$FF,$90,$65 Fill horz 14 tiles with $FF at $6590
8F31 DEFB $01,$01,$FF,$96,$65 Fill vert 1 tiles with $FF at $6596
8F36 DEFB $0E,$2A,$AA,$6F Put tile $2A at $6FAA
8F3A DEFB $0E,$2A,$AF,$6F Put tile $2A at $6FAF
8F3E DEFB $01,$07,$2B,$C8,$6F Fill vert 7 tiles with $2B at $6FC8
8F43 DEFB $01,$07,$2B,$CD,$6F Fill vert 7 tiles with $2B at $6FCD
8F48 DEFB $03,$FF,$02,$09,$AC,$65 Rectangle 2x9 tiles with $FF at $65AC
8F4E DEFB $03,$FF,$1E,$08,$9E,$66 Rectangle 30x8 tiles with $FF at $669E
8F54 DEFB $05,$02,$02,$84,$79,$6A,$67 Block 2x2 tiles from 7984 to $676A
8F5B DEFB $03,$00,$08,$06,$B2,$66 Rectangle 8x6 tiles with $00 at $66B2
8F61 DEFB $09,$00,$05,$B1,$66 Triangle with $00, count=5 at $66B1
8F66 DEFB $05,$04,$07,$AA,$79,$87,$70 Block 4x7 tiles from 79AA to $7087
8F6D DEFB $05,$04,$07,$AA,$79,$2A,$70 Block 4x7 tiles from 79AA to $702A
8F74 DEFB $01,$0E,$3A,$A3,$65 Fill vert 14 tiles with $3A at $65A3
8F79 DEFB $01,$0F,$3A,$A7,$65 Fill vert 15 tiles with $3A at $65A7
8F7E DEFB $02,$05,$FA,$97,$66 Fill horz 5 tiles with $FA at $6697
8F83 DEFB $FF End of sequence
8F84: Room 8F84
8F84 DEFW $7918 Room procedure
8F86 DEFW $A0F7 Initialization
8F88 DEFW $9053 Room to Left
8F8A DEFW $0000
8F8C DEFW $8F20 Room Up
8F8E DEFW $91BA Room Down
8F90 DEFB $04,$FF Fill entire screen with $FF
8F92 DEFB $03,$00,$1C,$08,$26,$66 Rectangle 28x8 tiles with $00 at $6626
8F98 DEFB $08,$00,$04,$C5,$65 Triangle with $00, count=4 at $65C5
8F9D DEFB $03,$00,$02,$03,$E6,$65 Rectangle 2x3 tiles with $00 at $65E6
8FA3 DEFB $0E,$00,$C8,$65 Put tile $00 at $65C8
8FA7 DEFB $05,$02,$04,$BB,$71,$A2,$70 Block 2x4 tiles from 71BB to $70A2
8FAE DEFB $0C,$48,$73,$02,$0D,$A8,$65 Block 2 tiles from 7348 to $65A8 copy 13 times
8FB5 DEFB $05,$02,$04,$84,$79,$2A,$67 Block 2x4 tiles from 7984 to $672A
8FBC DEFB $FF End of sequence
8FBD: Room 8FBD
8FBD DEFW $B483 Room procedure
8FBF DEFW $A16A Initialization
8FC1 DEFW $9005 Room to Left
8FC3 DEFW $8F20 Room to Right
8FC5 DEFW $0000
8FC7 DEFW $9053 Room Down
8FC9 DEFB $03,$FF,$1E,$08,$9E,$66 Rectangle 30x8 tiles with $FF at $669E
8FCF DEFB $03,$39,$07,$07,$C5,$66 Rectangle 7x7 tiles with $39 at $66C5
8FD5 DEFB $02,$05,$38,$A8,$66 Fill horz 5 tiles with $38 at $66A8
8FDA DEFB $02,$06,$FF,$90,$65 Fill horz 6 tiles with $FF at $6590
8FDF DEFB $02,$04,$FF,$AA,$65 Fill horz 4 tiles with $FF at $65AA
8FE4 DEFB $0E,$2A,$A5,$6F Put tile $2A at $6FA5
8FE8 DEFB $0E,$2A,$BF,$6F Put tile $2A at $6FBF
8FEC DEFB $01,$07,$2B,$C3,$6F Fill vert 7 tiles with $2B at $6FC3
8FF1 DEFB $01,$07,$2B,$DD,$6F Fill vert 7 tiles with $2B at $6FDD
8FF6 DEFB $05,$02,$04,$BB,$71,$1F,$70 Block 2x4 tiles from 71BB to $701F
8FFD DEFB $05,$02,$04,$BB,$71,$31,$70 Block 2x4 tiles from 71BB to $7031
9004 DEFB $FF End of sequence
9005: Room 9005
9005 DEFW $B41F Room procedure
9007 DEFW $B422 Initialization
9009 DEFW $92A7 Room to Left
900B DEFW $8FBD Room to Right
900D DEFW $8BF0 Room Up
900F DEFW $0000
9011 DEFB $02,$1E,$FF,$90,$65 Fill horz 30 tiles with $FF at $6590
9016 DEFB $05,$02,$04,$BB,$71,$33,$70 Block 2x4 tiles from 71BB to $7033
901D DEFB $0C,$48,$73,$02,$08,$C0,$65 Block 2 tiles from 7348 to $65C0 copy 8 times
9024 DEFB $05,$02,$01,$84,$79,$A2,$65 Block 2x1 tiles from 7984 to $65A2
902B DEFB $0E,$2A,$B1,$6F Put tile $2A at $6FB1
902F DEFB $01,$07,$2B,$CF,$6F Fill vert 7 tiles with $2B at $6FCF
9034 DEFB $03,$FF,$13,$05,$A9,$66 Rectangle 19x5 tiles with $FF at $66A9
903A DEFB $02,$4F,$FF,$3F,$67 Fill horz 79 tiles with $FF at $673F
903F DEFB $08,$FF,$05,$C6,$66 Triangle with $FF, count=5 at $66C6
9044 DEFB $05,$04,$07,$8E,$79,$7B,$70 Block 4x7 tiles from 798E to $707B
904B DEFB $05,$04,$07,$8E,$79,$24,$70 Block 4x7 tiles from 798E to $7024
9052 DEFB $FF End of sequence
9053: Room 9053
9053 DEFW $B41F Room procedure
9055 DEFW $B422 Initialization
9057 DEFW $909F Room to Left
9059 DEFW $8F84 Room to Right
905B DEFW $8FBD Room Up
905D DEFW $90DB Room Down
905F DEFB $03,$FF,$1E,$09,$90,$65 Rectangle 30x9 tiles with $FF at $6590
9065 DEFB $03,$00,$0A,$04,$3A,$66 Rectangle 10x4 tiles with $00 at $663A
906B DEFB $02,$27,$FF,$67,$67 Fill horz 39 tiles with $FF at $6767
9070 DEFB $02,$04,$FF,$30,$67 Fill horz 4 tiles with $FF at $6730
9075 DEFB $02,$06,$FF,$4C,$67 Fill horz 6 tiles with $FF at $674C
907A DEFB $05,$02,$04,$BB,$71,$F1,$70 Block 2x4 tiles from 71BB to $70F1
9081 DEFB $05,$02,$04,$BB,$71,$E5,$70 Block 2x4 tiles from 71BB to $70E5
9088 DEFB $03,$39,$07,$08,$99,$65 Rectangle 7x8 tiles with $39 at $6599
908E DEFB $03,$39,$04,$07,$A7,$66 Rectangle 4x7 tiles with $39 at $66A7
9094 DEFB $02,$04,$38,$79,$67 Fill horz 4 tiles with $38 at $6779
9099 DEFB $02,$04,$38,$89,$66 Fill horz 4 tiles with $38 at $6689
909E DEFB $FF End of sequence
909F: Room 909F
909F DEFW $B47A Room procedure
90A1 DEFW $A15F Initialization
90A3 DEFW $92EF Room to Left
90A5 DEFW $9053 Room to Right
90A7 DEFW $0000
90A9 DEFW $0000
90AB DEFB $02,$1E,$FF,$90,$65 Fill horz 30 tiles with $FF at $6590
90B0 DEFB $09,$FF,$08,$CB,$65 Triangle with $FF, count=8 at $65CB
90B5 DEFB $03,$FF,$05,$09,$62,$66 Rectangle 5x9 tiles with $FF at $6662
90BB DEFB $02,$1E,$FF,$70,$67 Fill horz 30 tiles with $FF at $6770
90C0 DEFB $07,$FF,$08,$85,$66 Triangle with $FF, count=8 at $6685
90C5 DEFB $05,$04,$07,$AA,$79,$9E,$70 Block 4x7 tiles from 79AA to $709E
90CC DEFB $05,$04,$07,$AA,$79,$41,$70 Block 4x7 tiles from 79AA to $7041
90D3 DEFB $05,$04,$07,$AA,$79,$E4,$6F Block 4x7 tiles from 79AA to $6FE4
90DA DEFB $FF End of sequence
90DB: Room 90DB
90DB DEFW $B452 Room procedure
90DD DEFW $A370 Initialization
90DF DEFW $913F Room to Left
90E1 DEFW $91BA Room to Right
90E3 DEFW $9053 Room Up
90E5 DEFW $0000
90E7 DEFB $04,$FF Fill entire screen with $FF
90E9 DEFB $03,$00,$16,$06,$D4,$65 Rectangle 22x6 tiles with $00 at $65D4
90EF DEFB $02,$0C,$00,$C0,$65 Fill horz 12 tiles with $00 at $65C0
90F4 DEFB $06,$00,$07,$92,$66 Triangle with $00, count=7 at $6692
90F9 DEFB $03,$00,$12,$06,$9E,$66 Rectangle 18x6 tiles with $00 at $669E
90FF DEFB $02,$04,$39,$99,$65 Fill horz 4 tiles with $39 at $6599
9104 DEFB $02,$04,$38,$B7,$65 Fill horz 4 tiles with $38 at $65B7
9109 DEFB $05,$03,$03,$18,$7C,$F5,$70 Block 3x3 tiles from 7C18 to $70F5
9110 DEFB $05,$03,$03,$18,$7C,$F9,$70 Block 3x3 tiles from 7C18 to $70F9
9117 DEFB $0E,$2A,$95,$70 Put tile $2A at $7095
911B DEFB $01,$05,$2B,$B3,$70 Fill vert 5 tiles with $2B at $70B3
9120 DEFB $0E,$2A,$A4,$70 Put tile $2A at $70A4
9124 DEFB $01,$05,$2B,$C2,$70 Fill vert 5 tiles with $2B at $70C2
9129 DEFB $05,$04,$07,$8E,$79,$88,$70 Block 4x7 tiles from 798E to $7088
9130 DEFB $05,$04,$07,$8E,$79,$31,$70 Block 4x7 tiles from 798E to $7031
9137 DEFB $05,$04,$07,$8E,$79,$14,$70 Block 4x7 tiles from 798E to $7014
913E DEFB $FF End of sequence
913F: Room 913F
913F DEFW $B41F Room procedure
9141 DEFW $B422 Initialization
9143 DEFW $0000
9145 DEFW $90DB Room to Right
9147 DEFW $0000
9149 DEFW $83ED Room Down
914B DEFB $09,$FF,$09,$AD,$65 Triangle with $FF, count=9 at $65AD
9150 DEFB $02,$27,$FF,$67,$67 Fill horz 39 tiles with $FF at $6767
9155 DEFB $02,$05,$FF,$90,$65 Fill horz 5 tiles with $FF at $6590
915A DEFB $03,$FF,$03,$03,$AE,$65 Rectangle 3x3 tiles with $FF at $65AE
9160 DEFB $01,$0C,$EB,$09,$66 Fill vert 12 tiles with $EB at $6609
9165 DEFB $05,$02,$01,$84,$79,$79,$67 Block 2x1 tiles from 7984 to $6779
916C DEFB $05,$03,$03,$A0,$71,$0E,$71 Block 3x3 tiles from 71A0 to $710E
9173 DEFB $05,$03,$03,$18,$7C,$11,$71 Block 3x3 tiles from 7C18 to $7111
917A DEFB $05,$02,$01,$8A,$7E,$4E,$71 Block 2x1 tiles from 7E8A to $714E
9181 DEFB $05,$03,$04,$0C,$7C,$FE,$70 Block 3x4 tiles from 7C0C to $70FE
9188 DEFB $05,$03,$01,$87,$7E,$3A,$71 Block 3x1 tiles from 7E87 to $713A
918F DEFB $05,$03,$01,$87,$7E,$56,$71 Block 3x1 tiles from 7E87 to $7156
9196 DEFB $05,$02,$01,$8A,$7E,$37,$71 Block 2x1 tiles from 7E8A to $7137
919D DEFB $05,$02,$01,$8A,$7E,$54,$71 Block 2x1 tiles from 7E8A to $7154
91A4 DEFB $05,$02,$01,$8A,$7E,$5A,$71 Block 2x1 tiles from 7E8A to $715A
91AB DEFB $05,$02,$01,$8A,$7E,$40,$71 Block 2x1 tiles from 7E8A to $7140
91B2 DEFB $05,$02,$01,$8A,$7E,$43,$71 Block 2x1 tiles from 7E8A to $7143
91B9 DEFB $FF End of sequence
91BA: Room 91BA
91BA DEFW $B452 Room procedure
91BC DEFW $A36B Initialization
91BE DEFW $90DB Room to Left
91C0 DEFW $0000
91C2 DEFW $8F84 Room Up
91C4 DEFW $924E Room Down
91C6 DEFB $02,$04,$FF,$90,$65 Fill horz 4 tiles with $FF at $6590
91CB DEFB $0E,$2A,$A5,$6F Put tile $2A at $6FA5
91CF DEFB $01,$07,$2B,$C3,$6F Fill vert 7 tiles with $2B at $6FC3
91D4 DEFB $03,$FF,$04,$03,$9E,$66 Rectangle 4x3 tiles with $FF at $669E
91DA DEFB $02,$98,$FF,$F6,$66 Fill horz 152 tiles with $FF at $66F6
91DF DEFB $0C,$E3,$81,$02,$0B,$AC,$65 Block 2 tiles from 81E3 to $65AC copy 11 times
91E6 DEFB $07,$FF,$02,$C0,$66 Triangle with $FF, count=2 at $66C0
91EB DEFB $0C,$48,$73,$02,$0C,$A4,$65 Block 2 tiles from 7348 to $65A4 copy 12 times
91F2 DEFB $05,$02,$05,$84,$79,$0C,$67 Block 2x5 tiles from 7984 to $670C
91F9 DEFB $05,$03,$03,$18,$7C,$9B,$70 Block 3x3 tiles from 7C18 to $709B
9200 DEFB $00,$9F,$70 Barrel 3x3 tiles at $709F
9203 DEFB $00,$A2,$70 Barrel 3x3 tiles at $70A2
9206 DEFB $00,$AD,$70 Barrel 3x3 tiles at $70AD
9209 DEFB $FF End of sequence
920A: Room 920A
920A DEFW $7918 Room procedure
920C DEFW $A0F2 Initialization
920E DEFW $83ED Room to Left
9210 DEFW $924E Room to Right
9212 DEFW $0000
9214 DEFW $0000
9216 DEFB $02,$1E,$FF,$70,$67 Fill horz 30 tiles with $FF at $6770
921B DEFB $05,$03,$04,$0C,$7C,$F1,$70 Block 3x4 tiles from 7C0C to $70F1
9222 DEFB $05,$03,$03,$A0,$71,$13,$71 Block 3x3 tiles from 71A0 to $7113
9229 DEFB $00,$17,$71 Barrel 3x3 tiles at $7117
922C DEFB $00,$1A,$71 Barrel 3x3 tiles at $711A
922F DEFB $00,$BE,$70 Barrel 3x3 tiles at $70BE
9232 DEFB $00,$C1,$70 Barrel 3x3 tiles at $70C1
9235 DEFB $00,$26,$71 Barrel 3x3 tiles at $7126
9238 DEFB $05,$04,$03,$7B,$7E,$C4,$70 Block 4x3 tiles from 7E7B to $70C4
923F DEFB $05,$04,$03,$7B,$7E,$1B,$71 Block 4x3 tiles from 7E7B to $711B
9246 DEFB $05,$04,$03,$7B,$7E,$20,$71 Block 4x3 tiles from 7E7B to $7120
924D DEFB $FF End of sequence
924E: Room 924E
924E DEFW $B452 Room procedure
9250 DEFW $A366 Initialization
9252 DEFW $920A Room to Left
9254 DEFW $0000
9256 DEFW $91BA Room Up
9258 DEFW $0000
925A DEFB $02,$10,$FF,$9E,$65 Fill horz 16 tiles with $FF at $659E
925F DEFB $0C,$E3,$81,$02,$0E,$CA,$65 Block 2 tiles from 81E3 to $65CA copy 14 times
9266 DEFB $02,$20,$FF,$6E,$67 Fill horz 32 tiles with $FF at $676E
926B DEFB $0C,$48,$73,$02,$0F,$C2,$65 Block 2 tiles from 7348 to $65C2 copy 15 times
9272 DEFB $05,$02,$01,$B9,$71,$A4,$65 Block 2x1 tiles from 71B9 to $65A4
9279 DEFB $05,$03,$03,$A0,$71,$1C,$71 Block 3x3 tiles from 71A0 to $711C
9280 DEFB $05,$03,$03,$A0,$71,$CB,$70 Block 3x3 tiles from 71A0 to $70CB
9287 DEFB $05,$04,$03,$7B,$7E,$24,$71 Block 4x3 tiles from 7E7B to $7124
928E DEFB $00,$5D,$70 Barrel 3x3 tiles at $705D
9291 DEFB $00,$B5,$70 Barrel 3x3 tiles at $70B5
9294 DEFB $00,$B9,$70 Barrel 3x3 tiles at $70B9
9297 DEFB $00,$BC,$70 Barrel 3x3 tiles at $70BC
929A DEFB $00,$0E,$71 Barrel 3x3 tiles at $710E
929D DEFB $00,$11,$71 Barrel 3x3 tiles at $7111
92A0 DEFB $00,$14,$71 Barrel 3x3 tiles at $7114
92A3 DEFB $00,$18,$71 Barrel 3x3 tiles at $7118
92A6 DEFB $FF End of sequence
92A7: Room 92A7
3rd console: flips trigger "A": set/remove wall in room 7F48.
92A7 DEFW $B483 Room procedure
92A9 DEFW $A16F Initialization
92AB DEFW $0000
92AD DEFW $9005 Room to Right
92AF DEFW $0000
92B1 DEFW $0000
92B3 DEFB $02,$20,$FF,$90,$65 Fill horz 32 tiles with $FF at $6590
92B8 DEFB $0C,$E3,$81,$02,$0D,$CC,$65 Block 2 tiles from 81E3 to $65CC copy 13 times
92BF DEFB $02,$3C,$FF,$52,$67 Fill horz 60 tiles with $FF at $6752
92C4 DEFB $05,$04,$04,$A9,$71,$D1,$70 Block 4x4 tiles from 71A9 to $70D1
92CB DEFB $05,$04,$04,$A9,$71,$E1,$70 Block 4x4 tiles from 71A9 to $70E1
92D2 DEFB $05,$02,$04,$BB,$71,$D6,$70 Block 2x4 tiles from 71BB to $70D6
92D9 DEFB $05,$02,$04,$BB,$71,$D8,$70 Block 2x4 tiles from 71BB to $70D8
92E0 DEFB $05,$02,$04,$BB,$71,$DB,$70 Block 2x4 tiles from 71BB to $70DB
92E7 DEFB $05,$02,$04,$BB,$71,$DE,$70 Block 2x4 tiles from 71BB to $70DE
92EE DEFB $FF End of sequence
92EF: Room 92EF
1st conosole: flips trigger "C": set/remove wall in room 8D5C.
92EF DEFW $7918 Room procedure
92F1 DEFW $791B Initialization
92F3 DEFW $0000
92F5 DEFW $909F Room to Right
92F7 DEFW $0000
92F9 DEFW $0000
92FB DEFB $04,$FF Fill entire screen with $FF
92FD DEFB $03,$00,$1A,$06,$B2,$65 Rectangle 26x6 tiles with $00 at $65B2
9303 DEFB $03,$02,$16,$06,$DE,$66 Rectangle 22x6 tiles with $02 at $66DE
9309 DEFB $03,$CC,$06,$04,$1C,$67 Rectangle 6x4 tiles with $CC at $671C
930F DEFB $02,$07,$D1,$38,$67 Fill horz 7 tiles with $D1 at $6738
9314 DEFB $0E,$D0,$3D,$67 Put tile $D0 at $673D
9318 DEFB $02,$0C,$CD,$22,$67 Fill horz 12 tiles with $CD at $6722
931D DEFB $05,$01,$04,$72,$93,$24,$67 Block 1x4 tiles from 9372 to $6724
9324 DEFB $05,$01,$04,$72,$93,$26,$67 Block 1x4 tiles from 9372 to $6726
932B DEFB $05,$01,$04,$72,$93,$28,$67 Block 1x4 tiles from 9372 to $6728
9332 DEFB $05,$01,$04,$72,$93,$2A,$67 Block 1x4 tiles from 9372 to $672A
9339 DEFB $05,$01,$04,$72,$93,$2C,$67 Block 1x4 tiles from 9372 to $672C
9340 DEFB $05,$01,$04,$72,$93,$2E,$67 Block 1x4 tiles from 9372 to $672E
9347 DEFB $05,$04,$04,$A9,$71,$E1,$6F Block 4x4 tiles from 71A9 to $6FE1
934E DEFB $05,$02,$04,$BB,$71,$E6,$6F Block 2x4 tiles from 71BB to $6FE6
9355 DEFB $05,$02,$04,$BB,$71,$E9,$6F Block 2x4 tiles from 71BB to $6FE9
935C DEFB $05,$02,$04,$BB,$71,$EC,$6F Block 2x4 tiles from 71BB to $6FEC
9363 DEFB $05,$02,$04,$BB,$71,$EF,$6F Block 2x4 tiles from 71BB to $6FEF
936A DEFB $05,$02,$04,$BB,$71,$F2,$6F Block 2x4 tiles from 71BB to $6FF2
9371 DEFB $FF End of sequence
9372: Blocks for rooms
9372 DEFB $CE Back block 1x4
9373 DEFB $CF
9374 DEFB $CF
9375 DEFB $CF
9376: Room 9376
9376 DEFW $B41F Room procedure
9378 DEFW $B422 Initialization
937A DEFW $93DF Room to Left
937C DEFW $0000
937E DEFW $8384 Room Up
9380 DEFW $0000
9382 DEFB $04,$FF Fill entire screen with $FF
9384 DEFB $03,$02,$0C,$06,$80,$66 Rectangle 12x6 tiles with $02 at $6680
938A DEFB $03,$02,$0B,$06,$90,$66 Rectangle 11x6 tiles with $02 at $6690
9390 DEFB $02,$0C,$03,$62,$66 Fill horz 12 tiles with $03 at $6662
9395 DEFB $02,$0B,$03,$72,$66 Fill horz 11 tiles with $03 at $6672
939A DEFB $03,$0C,$0B,$02,$FE,$70 Rectangle 11x2 tiles with $0C at $70FE
93A0 DEFB $02,$0B,$0B,$E0,$70 Fill horz 11 tiles with $0B at $70E0
93A5 DEFB $0C,$B9,$71,$02,$0E,$94,$65 Block 2 tiles from 71B9 to $6594 copy 14 times
93AC DEFB $0C,$B9,$71,$02,$0E,$A4,$65 Block 2 tiles from 71B9 to $65A4 copy 14 times
93B3 DEFB $05,$06,$02,$88,$71,$F3,$70 Block 6x2 tiles from 7188 to $70F3
93BA DEFB $01,$07,$FD,$9A,$65 Fill vert 7 tiles with $FD at $659A
93BF DEFB $01,$07,$FD,$A2,$65 Fill vert 7 tiles with $FD at $65A2
93C4 DEFB $01,$07,$FD,$A9,$65 Fill vert 7 tiles with $FD at $65A9
93C9 DEFB $05,$01,$03,$4F,$7B,$36,$67 Block 1x3 tiles from 7B4F to $6736
93D0 DEFB $05,$01,$03,$4F,$7B,$3A,$67 Block 1x3 tiles from 7B4F to $673A
93D7 DEFB $05,$01,$03,$4F,$7B,$3E,$67 Block 1x3 tiles from 7B4F to $673E
93DE DEFB $FF End of sequence
93DF: Room 93DF
93DF DEFW $B41F Room procedure
93E1 DEFW $C671 Initialization
93E3 DEFW $7C9C Room to Left
93E5 DEFW $9376 Room to Right
93E7 DEFW $9431 Room Up
93E9 DEFW $0000
93EB DEFB $04,$02 Fill entire screen with $02
93ED DEFB $03,$21,$05,$02,$16,$67 Rectangle 5x2 tiles with $21 at $6716
93F3 DEFB $02,$04,$03,$7C,$66 Fill horz 4 tiles with $03 at $667C
93F8 DEFB $02,$99,$FF,$90,$65 Fill horz 153 tiles with $FF at $6590
93FD DEFB $02,$10,$FF,$36,$66 Fill horz 16 tiles with $FF at $6636
9402 DEFB $02,$04,$FF,$5E,$66 Fill horz 4 tiles with $FF at $665E
9407 DEFB $02,$11,$FF,$1B,$67 Fill horz 17 tiles with $FF at $671B
940C DEFB $02,$56,$FF,$38,$67 Fill horz 86 tiles with $FF at $6738
9411 DEFB $0C,$B9,$71,$02,$0D,$96,$65 Block 2 tiles from 71B9 to $6596 copy 13 times
9418 DEFB $01,$05,$FD,$9E,$65 Fill vert 5 tiles with $FD at $659E
941D DEFB $01,$06,$FD,$A7,$65 Fill vert 6 tiles with $FD at $65A7
9422 DEFB $05,$01,$04,$4F,$7B,$24,$67 Block 1x4 tiles from 7B4F to $6724
9429 DEFB $05,$01,$03,$4F,$7B,$4B,$67 Block 1x3 tiles from 7B4F to $674B
9430 DEFB $FF End of sequence
9431: Room 9431
9431 DEFW $B41F Room procedure
9433 DEFW $B422 Initialization
9435 DEFW $0000
9437 DEFW $0000
9439 DEFW $9451 Room Up
943B DEFW $93DF Room Down
943D DEFB $04,$FF Fill entire screen with $FF
943F DEFB $0C,$B9,$71,$02,$11,$96,$65 Block 2 tiles from 71B9 to $6596 copy 17 times
9446 DEFB $01,$11,$FD,$9E,$65 Fill vert 17 tiles with $FD at $659E
944B DEFB $01,$11,$FD,$A7,$65 Fill vert 17 tiles with $FD at $65A7
9450 DEFB $FF End of sequence
9451: Room 9451
9451 DEFW $B41F Room procedure
9453 DEFW $B422 Initialization
9455 DEFW $0000
9457 DEFW $0000
9459 DEFW $0000
945B DEFW $9431 Room Down
945D DEFB $04,$FF Fill entire screen with $FF
945F DEFB $05,$02,$04,$84,$79,$1C,$67 Block 2x4 tiles from 7984 to $671C
9466 DEFB $01,$11,$FD,$9E,$65 Fill vert 17 tiles with $FD at $659E
946B DEFB $01,$11,$FD,$A7,$65 Fill vert 17 tiles with $FD at $65A7
9470 DEFB $03,$02,$18,$06,$65,$66 Rectangle 24x6 tiles with $02 at $6665
9476 DEFB $02,$18,$03,$47,$66 Fill horz 24 tiles with $03 at $6647
947B DEFB $FF End of sequence
947C: Room 947C
947C DEFW $B41F Room procedure
947E DEFW $C671 Initialization
9480 DEFW $94AB Room to Left
9482 DEFW $7C9C Room to Right
9484 DEFW $0000
9486 DEFW $0000
9488 DEFB $04,$FF Fill entire screen with $FF
948A DEFB $03,$02,$15,$07,$26,$66 Rectangle 21x7 tiles with $02 at $6626
9490 DEFB $03,$02,$07,$06,$79,$66 Rectangle 7x6 tiles with $02 at $6679
9496 DEFB $01,$08,$02,$3B,$66 Fill vert 8 tiles with $02 at $663B
949B DEFB $01,$07,$02,$5A,$66 Fill vert 7 tiles with $02 at $665A
94A0 DEFB $02,$08,$21,$2C,$67 Fill horz 8 tiles with $21 at $672C
94A5 DEFB $02,$07,$21,$4B,$67 Fill horz 7 tiles with $21 at $674B
94AA DEFB $FF End of sequence
94AB: Room 94AB
94AB DEFW $7918 Room procedure
94AD DEFW $A0DF Initialization
94AF DEFW $95D6 Room to Left
94B1 DEFW $947C Room to Right
94B3 DEFW $0000
94B5 DEFW $0000
94B7 DEFB $04,$FF Fill entire screen with $FF
94B9 DEFB $03,$00,$1E,$07,$26,$66 Rectangle 30x7 tiles with $00 at $6626
94BF DEFB $03,$02,$02,$07,$42,$66 Rectangle 2x7 tiles with $02 at $6642
94C5 DEFB $0E,$2A,$37,$70 Put tile $2A at $7037
94C9 DEFB $01,$06,$2B,$55,$70 Fill vert 6 tiles with $2B at $7055
94CE DEFB $FF End of sequence
94CF: Room 94CF
94CF DEFW $7918 Room procedure
94D1 DEFW $A11A Initialization
94D3 DEFW $9552 Room to Left
94D5 DEFW $9A9A Room to Right
94D7 DEFW $0000
94D9 DEFW $0000
94DB DEFB $02,$3C,$FF,$52,$67 Fill horz 60 tiles with $FF at $6752
94E0 DEFB $03,$0D,$12,$07,$80,$66 Rectangle 18x7 tiles with $0D at $6680
94E6 DEFB $03,$A3,$1B,$02,$90,$65 Rectangle 27x2 tiles with $A3 at $6590
94EC DEFB $0E,$9C,$AB,$65 Put tile $9C at $65AB
94F0 DEFB $0E,$9B,$C9,$65 Put tile $9B at $65C9
94F4 DEFB $03,$BF,$12,$06,$CC,$65 Rectangle 18x6 tiles with $BF at $65CC
94FA DEFB $05,$02,$04,$BB,$71,$E8,$70 Block 2x4 tiles from 71BB to $70E8
9501 DEFB $02,$12,$BA,$CC,$65 Fill horz 18 tiles with $BA at $65CC
9506 DEFB $02,$12,$B3,$62,$66 Fill horz 18 tiles with $B3 at $6662
950B DEFB $05,$01,$06,$28,$95,$CD,$65 Block 1x6 tiles from 9528 to $65CD
9512 DEFB $05,$01,$06,$2E,$95,$D4,$65 Block 1x6 tiles from 952E to $65D4
9519 DEFB $05,$02,$06,$34,$95,$DA,$65 Block 2x6 tiles from 9534 to $65DA
9520 DEFB $05,$03,$06,$40,$95,$DE,$65 Block 3x6 tiles from 9540 to $65DE
9527 DEFB $FF End of sequence
9528: Blocks for rooms
9528 DEFB $A9 Back block 1x6
9529 DEFB $A8
952A DEFB $A8
952B DEFB $A8
952C DEFB $A8
952D DEFB $A7
952E DEFB $A6 Back block 1x6
952F DEFB $A5
9530 DEFB $A4
9531 DEFB $A8
9532 DEFB $A2
9533 DEFB $A1
9534 DEFB $BA,$CB Back block 2x6
9536 DEFB $BF,$CA
9538 DEFB $C9,$C8
953A DEFB $C7,$C6
953C DEFB $CA,$BF
953E DEFB $C4,$B3
9540 DEFB $BA,$BA,$C3 Back block 3x6
9543 DEFB $BF,$C2,$C1
9546 DEFB $BF,$C0,$00
9549 DEFB $C2,$C1,$00
954C DEFB $C0,$00,$00
954F DEFB $C1,$00,$00
9552: Room 9552
9552 DEFW $B483 Room procedure
9554 DEFW $A197 Initialization
9556 DEFW $9A5A Room to Left
9558 DEFW $94CF Room to Right
955A DEFW $0000
955C DEFW $0000
955E DEFB $02,$3C,$FF,$52,$67 Fill horz 60 tiles with $FF at $6752
9563 DEFB $03,$0D,$12,$07,$8C,$66 Rectangle 18x7 tiles with $0D at $668C
9569 DEFB $03,$A3,$1B,$02,$93,$65 Rectangle 27x2 tiles with $A3 at $6593
956F DEFB $0E,$9E,$92,$65 Put tile $9E at $6592
9573 DEFB $0E,$9D,$B0,$65 Put tile $9D at $65B0
9577 DEFB $03,$BF,$12,$06,$D8,$65 Rectangle 18x6 tiles with $BF at $65D8
957D DEFB $05,$02,$04,$BB,$71,$DD,$70 Block 2x4 tiles from 71BB to $70DD
9584 DEFB $05,$02,$04,$BB,$71,$E3,$70 Block 2x4 tiles from 71BB to $70E3
958B DEFB $02,$12,$BA,$D8,$65 Fill horz 18 tiles with $BA at $65D8
9590 DEFB $02,$12,$B3,$6E,$66 Fill horz 18 tiles with $B3 at $666E
9595 DEFB $05,$01,$06,$28,$95,$E8,$65 Block 1x6 tiles from 9528 to $65E8
959C DEFB $05,$01,$06,$B2,$95,$E1,$65 Block 1x6 tiles from 95B2 to $65E1
95A3 DEFB $05,$02,$06,$B8,$95,$DA,$65 Block 2x6 tiles from 95B8 to $65DA
95AA DEFB $05,$03,$06,$C4,$95,$D5,$65 Block 3x6 tiles from 95C4 to $65D5
95B1 DEFB $FF End of sequence
95B2: Blocks for rooms
95B2 DEFB $A0 Back block 1x6
95B3 DEFB $A2
95B4 DEFB $A8
95B5 DEFB $A4
95B6 DEFB $A5
95B7 DEFB $9F
95B8 DEFB $BB,$BA Back block 2x6
95BA DEFB $B9,$BF
95BC DEFB $B8,$B7
95BE DEFB $B6,$B5
95C0 DEFB $BF,$B9
95C2 DEFB $B3,$B2
95C4 DEFB $B1,$BA,$BA Back block 3x6
95C7 DEFB $B0,$AF,$BF
95CA DEFB $00,$AE,$BF
95CD DEFB $00,$B0,$AF
95D0 DEFB $00,$00,$AE
95D3 DEFB $00,$00,$B0
95D6: Room 95D6
95D6 DEFW $B483 Room procedure
95D8 DEFW $A183 Initialization
95DA DEFW $95F8 Room to Left
95DC DEFW $94AB Room to Right
95DE DEFW $0000
95E0 DEFW $0000
95E2 DEFB $02,$96,$FF,$90,$65 Fill horz 150 tiles with $FF at $6590
95E7 DEFB $03,$FF,$10,$05,$06,$67 Rectangle 16x5 tiles with $FF at $6706
95ED DEFB $02,$07,$00,$06,$67 Fill horz 7 tiles with $00 at $6706
95F2 DEFB $02,$10,$FA,$16,$67 Fill horz 16 tiles with $FA at $6716
95F7 DEFB $FF End of sequence
95F8: Room 95F8
95F8 DEFW $B41F Room procedure
95FA DEFW $B422 Initialization
95FC DEFW $0000
95FE DEFW $95D6 Room to Right
9600 DEFW $0000
9602 DEFW $9634 Room Down
9604 DEFB $04,$FF Fill entire screen with $FF
9606 DEFB $03,$00,$17,$08,$2D,$66 Rectangle 23x8 tiles with $00 at $662D
960C DEFB $06,$FF,$03,$2D,$66 Triangle with $FF, count=3 at $662D
9611 DEFB $02,$0C,$FA,$28,$67 Fill horz 12 tiles with $FA at $6728
9616 DEFB $02,$0A,$00,$48,$67 Fill horz 10 tiles with $00 at $6748
961B DEFB $02,$16,$00,$5A,$67 Fill horz 22 tiles with $00 at $675A
9620 DEFB $02,$18,$00,$76,$67 Fill horz 24 tiles with $00 at $6776
9625 DEFB $0C,$48,$73,$02,$0C,$34,$66 Block 2 tiles from 7348 to $6634 copy 12 times
962C DEFB $05,$02,$01,$9D,$88,$24,$67 Block 2x1 tiles from 889D to $6724
9633 DEFB $FF End of sequence
9634: Room 9634
9634 DEFW $B41F Room procedure
9636 DEFW $B422 Initialization
9638 DEFW $0000
963A DEFW $968A Room to Right
963C DEFW $95F8 Room Up
963E DEFW $990D Room Down
9640 DEFB $03,$FF,$04,$0D,$90,$65 Rectangle 4x13 tiles with $FF at $6590
9646 DEFB $03,$FF,$18,$04,$1C,$67 Rectangle 24x4 tiles with $FF at $671C
964C DEFB $07,$FF,$05,$84,$66 Triangle with $FF, count=5 at $6684
9651 DEFB $0E,$00,$84,$66 Put tile $00 at $6684
9655 DEFB $09,$FF,$03,$1B,$67 Triangle with $FF, count=3 at $671B
965A DEFB $05,$02,$02,$86,$96,$52,$67 Block 2x2 tiles from 9686 to $6752
9661 DEFB $0C,$48,$73,$02,$0D,$9E,$65 Block 2 tiles from 7348 to $659E copy 13 times
9668 DEFB $02,$0C,$00,$28,$67 Fill horz 12 tiles with $00 at $6728
966D DEFB $02,$0C,$00,$62,$67 Fill horz 12 tiles with $00 at $6762
9672 DEFB $02,$10,$00,$7C,$67 Fill horz 16 tiles with $00 at $677C
9677 DEFB $0C,$48,$73,$02,$02,$6B,$67 Block 2 tiles from 7348 to $676B copy 2 times
967E DEFB $05,$02,$01,$9D,$88,$4D,$67 Block 2x1 tiles from 889D to $674D
9685 DEFB $FF End of sequence
9686: Blocks for rooms
9686 DEFB $B4,$AA Back block 2x2
9688 DEFB $AD,$AB
968A: Room 968A
968A DEFW $B483 Room procedure
968C DEFW $A188 Initialization
968E DEFW $9634 Room to Left
9690 DEFW $96CC Room to Right
9692 DEFW $0000
9694 DEFW $9715 Room Down
9696 DEFB $03,$FF,$10,$05,$9E,$65 Rectangle 16x5 tiles with $FF at $659E
969C DEFB $01,$0C,$3A,$40,$66 Fill vert 12 tiles with $3A at $6640
96A1 DEFB $03,$FF,$0B,$02,$52,$67 Rectangle 11x2 tiles with $FF at $6752
96A7 DEFB $02,$10,$FF,$34,$67 Fill horz 16 tiles with $FF at $6734
96AC DEFB $02,$09,$FA,$44,$67 Fill horz 9 tiles with $FA at $6744
96B1 DEFB $02,$06,$FA,$6A,$67 Fill horz 6 tiles with $FA at $676A
96B6 DEFB $05,$02,$04,$BB,$71,$B6,$70 Block 2x4 tiles from 71BB to $70B6
96BD DEFB $0C,$48,$73,$02,$02,$5E,$67 Block 2 tiles from 7348 to $675E copy 2 times
96C4 DEFB $05,$02,$01,$9D,$88,$40,$67 Block 2x1 tiles from 889D to $6740
96CB DEFB $FF End of sequence
96CC: Room 96CC
96CC DEFW $B41F Room procedure
96CE DEFW $B422 Initialization
96D0 DEFW $968A Room to Left
96D2 DEFW $0000
96D4 DEFW $0000
96D6 DEFW $96F3 Room Down
96D8 DEFB $02,$96,$FF,$90,$65 Fill horz 150 tiles with $FF at $6590
96DD DEFB $03,$FF,$0F,$0C,$35,$66 Rectangle 15x12 tiles with $FF at $6635
96E3 DEFB $09,$FF,$09,$34,$66 Triangle with $FF, count=9 at $6634
96E8 DEFB $01,$0C,$3A,$27,$66 Fill vert 12 tiles with $3A at $6627
96ED DEFB $02,$04,$FA,$52,$67 Fill horz 4 tiles with $FA at $6752
96F2 DEFB $FF End of sequence
96F3: Room 96F3
96F3 DEFW $B41F Room procedure
96F5 DEFW $B422 Initialization
96F7 DEFW $9715 Room to Left
96F9 DEFW $0000
96FB DEFW $0000
96FD DEFW $976E Room Down
96FF DEFB $03,$FF,$0F,$11,$9F,$65 Rectangle 15x17 tiles with $FF at $659F
9705 DEFB $01,$11,$3A,$91,$65 Fill vert 17 tiles with $3A at $6591
970A DEFB $01,$0A,$3A,$68,$66 Fill vert 10 tiles with $3A at $6668
970F DEFB $02,$09,$FA,$80,$66 Fill horz 9 tiles with $FA at $6680
9714 DEFB $FF End of sequence
9715: Room 9715
9715 DEFW $B41F Room procedure
9717 DEFW $B422 Initialization
9719 DEFW $0000
971B DEFW $96F3 Room to Right
971D DEFW $968A Room Up
971F DEFW $9739 Room Down
9721 DEFB $03,$FF,$0B,$11,$90,$65 Rectangle 11x17 tiles with $FF at $6590
9727 DEFB $0C,$48,$73,$02,$11,$9C,$65 Block 2 tiles from 7348 to $659C copy 17 times
972E DEFB $01,$11,$3A,$AA,$65 Fill vert 17 tiles with $3A at $65AA
9733 DEFB $02,$08,$FA,$96,$66 Fill horz 8 tiles with $FA at $6696
9738 DEFB $FF End of sequence
9739: Room 9739
9739 DEFW $B452 Room procedure
973B DEFW $A384 Initialization
973D DEFW $99A6 Room to Left
973F DEFW $976E Room to Right
9741 DEFW $9715 Room Up
9743 DEFW $97A6 Room Down
9745 DEFB $03,$FF,$0B,$0A,$90,$65 Rectangle 11x10 tiles with $FF at $6590
974B DEFB $08,$00,$06,$12,$66 Triangle with $00, count=6 at $6612
9750 DEFB $02,$22,$FF,$6C,$67 Fill horz 34 tiles with $FF at $676C
9755 DEFB $01,$01,$E4,$A0,$66 Fill vert 1 tiles with $E4 at $66A0
975A DEFB $01,$0F,$3A,$AA,$65 Fill vert 15 tiles with $3A at $65AA
975F DEFB $05,$02,$01,$9D,$88,$76,$67 Block 2x1 tiles from 889D to $6776
9766 DEFB $0C,$48,$73,$02,$10,$9C,$65 Block 2 tiles from 7348 to $659C copy 16 times
976D DEFB $FF End of sequence
976E: Room 976E
976E DEFW $B41F Room procedure
9770 DEFW $B422 Initialization
9772 DEFW $9739 Room to Left
9774 DEFW $0000
9776 DEFW $0000
9778 DEFW $0000
977A DEFB $04,$FF Fill entire screen with $FF
977C DEFB $03,$00,$0F,$08,$90,$65 Rectangle 15x8 tiles with $00 at $6590
9782 DEFB $03,$00,$07,$07,$80,$66 Rectangle 7x7 tiles with $00 at $6680
9788 DEFB $02,$06,$00,$87,$66 Fill horz 6 tiles with $00 at $6687
978D DEFB $02,$04,$00,$A5,$66 Fill horz 4 tiles with $00 at $66A5
9792 DEFB $02,$02,$00,$C3,$66 Fill horz 2 tiles with $00 at $66C3
9797 DEFB $01,$0F,$3A,$91,$65 Fill vert 15 tiles with $3A at $6591
979C DEFB $01,$0F,$3A,$96,$65 Fill vert 15 tiles with $3A at $6596
97A1 DEFB $0E,$FA,$E0,$66 Put tile $FA at $66E0
97A5 DEFB $FF End of sequence
97A6: Room 97A6
97A6 DEFW $B483 Room procedure
97A8 DEFW $B368 Initialization
97AA DEFW $9876 Room to Left
97AC DEFW $97F8 Room to Right
97AE DEFW $9739 Room Up
97B0 DEFW $0000
97B2 DEFB $03,$FF,$09,$07,$80,$66 Rectangle 9x7 tiles with $FF at $6680
97B8 DEFB $02,$3C,$FF,$52,$67 Fill horz 60 tiles with $FF at $6752
97BD DEFB $07,$FF,$06,$A7,$66 Triangle with $FF, count=6 at $66A7
97C2 DEFB $0C,$48,$73,$02,$08,$96,$65 Block 2 tiles from 7348 to $6596 copy 8 times
97C9 DEFB $03,$FF,$04,$08,$AA,$65 Rectangle 4x8 tiles with $FF at $65AA
97CF DEFB $0E,$00,$31,$67 Put tile $00 at $6731
97D3 DEFB $0E,$2A,$91,$70 Put tile $2A at $7091
97D7 DEFB $01,$06,$2B,$AF,$70 Fill vert 6 tiles with $2B at $70AF
97DC DEFB $05,$04,$07,$AA,$79,$82,$70 Block 4x7 tiles from 79AA to $7082
97E3 DEFB $05,$04,$07,$AA,$79,$25,$70 Block 4x7 tiles from 79AA to $7025
97EA DEFB $05,$04,$07,$AA,$79,$06,$70 Block 4x7 tiles from 79AA to $7006
97F1 DEFB $03,$02,$02,$07,$9C,$66 Rectangle 2x7 tiles with $02 at $669C
97F7 DEFB $FF End of sequence
97F8: Room 97F8
97F8 DEFW $7918 Room procedure
97FA DEFW $A115 Initialization
97FC DEFW $97A6 Room to Left
97FE DEFW $0000
9800 DEFW $0000
9802 DEFW $982B Room Down
9804 DEFB $04,$FF Fill entire screen with $FF
9806 DEFB $03,$02,$1C,$07,$80,$66 Rectangle 28x7 tiles with $02 at $6680
980C DEFB $03,$02,$10,$04,$0E,$66 Rectangle 16x4 tiles with $02 at $660E
9812 DEFB $08,$02,$03,$2B,$66 Triangle with $02, count=3 at $662B
9817 DEFB $07,$02,$03,$3C,$66 Triangle with $02, count=3 at $663C
981C DEFB $0C,$B9,$71,$02,$09,$99,$66 Block 2 tiles from 71B9 to $6699 copy 9 times
9823 DEFB $05,$02,$01,$84,$79,$6B,$67 Block 2x1 tiles from 7984 to $676B
982A DEFB $FF End of sequence
982B: Room 982B
982B DEFW $B41F Room procedure
982D DEFW $C681 Initialization
982F DEFW $7C9C Room to Left
9831 DEFW $0000
9833 DEFW $97F8 Room Up
9835 DEFW $0000
9837 DEFB $04,$FF Fill entire screen with $FF
9839 DEFB $03,$02,$13,$06,$B7,$65 Rectangle 19x6 tiles with $02 at $65B7
983F DEFB $03,$02,$13,$06,$62,$66 Rectangle 19x6 tiles with $02 at $6662
9845 DEFB $08,$02,$05,$D4,$65 Triangle with $02, count=5 at $65D4
984A DEFB $06,$02,$05,$75,$66 Triangle with $02, count=5 at $6675
984F DEFB $02,$12,$21,$16,$67 Fill horz 18 tiles with $21 at $6716
9854 DEFB $02,$11,$21,$34,$67 Fill horz 17 tiles with $21 at $6734
9859 DEFB $0C,$B9,$71,$02,$07,$A9,$65 Block 2 tiles from 71B9 to $65A9 copy 7 times
9860 DEFB $05,$04,$07,$8E,$79,$86,$70 Block 4x7 tiles from 798E to $7086
9867 DEFB $05,$04,$07,$8E,$79,$2F,$70 Block 4x7 tiles from 798E to $702F
986E DEFB $05,$04,$07,$8E,$79,$F5,$6F Block 4x7 tiles from 798E to $6FF5
9875 DEFB $FF End of sequence
9876: Room 9876
9876 DEFW $B41F Room procedure
9878 DEFW $B422 Initialization
987A DEFW $98C0 Room to Left
987C DEFW $97A6 Room to Right
987E DEFW $0000
9880 DEFW $0000
9882 DEFB $04,$FF Fill entire screen with $FF
9884 DEFB $03,$00,$0A,$07,$80,$66 Rectangle 10x7 tiles with $00 at $6680
988A DEFB $03,$00,$0E,$07,$2E,$66 Rectangle 14x7 tiles with $00 at $662E
9890 DEFB $03,$00,$0A,$07,$C2,$65 Rectangle 10x7 tiles with $00 at $65C2
9896 DEFB $08,$00,$02,$4B,$66 Triangle with $00, count=2 at $664B
989B DEFB $08,$00,$03,$DF,$65 Triangle with $00, count=3 at $65DF
98A0 DEFB $06,$00,$02,$02,$67 Triangle with $00, count=2 at $6702
98A5 DEFB $06,$00,$03,$96,$66 Triangle with $00, count=3 at $6696
98AA DEFB $05,$04,$07,$8E,$79,$7F,$70 Block 4x7 tiles from 798E to $707F
98B1 DEFB $05,$04,$07,$8E,$79,$31,$70 Block 4x7 tiles from 798E to $7031
98B8 DEFB $05,$04,$07,$8E,$79,$14,$70 Block 4x7 tiles from 798E to $7014
98BF DEFB $FF End of sequence
98C0: Room 98C0 (think door)
98C0 DEFW $B41F Room procedure
98C2 DEFW $B422 Initialization
98C4 DEFW $9A9A Room to Left
98C6 DEFW $9876 Room to Right
98C8 DEFW $0000
98CA DEFW $0000
98CC DEFB $02,$F0,$FF,$90,$65 Fill horz 240 tiles with $FF at $6590
98D1 DEFB $02,$3C,$FF,$52,$67 Fill horz 60 tiles with $FF at $6752
98D6 DEFB $05,$04,$03,$7B,$7E,$EF,$70 Block 4x3 tiles from 7E7B to $70EF
98DD DEFB $05,$03,$03,$A0,$71,$98,$70 Block 3x3 tiles from 71A0 to $7098
98E4 DEFB $05,$03,$03,$A0,$71,$F4,$70 Block 3x3 tiles from 71A0 to $70F4
98EB DEFB $05,$01,$05,$03,$99,$AB,$66 Block 1x5 tiles from 9903 to $66AB
98F2 DEFB $05,$01,$05,$08,$99,$AE,$66 Block 1x5 tiles from 9908 to $66AE
98F9 DEFB $0C,$01,$99,$02,$07,$8E,$66 Block 2 tiles from 9901 to $668E copy 7 times
9900 DEFB $FF End of sequence
9901: Blocks for rooms
9901 DEFB $9A,$99 Back block 2x1
9903 DEFB $C5 Back block 1x5
9904 DEFB $C5
9905 DEFB $BC
9906 DEFB $C5
9907 DEFB $C5
9908 DEFB $C5 Back block 1x5
9909 DEFB $C5
990A DEFB $BD
990B DEFB $C5
990C DEFB $C5
990D: Room 990D
990D DEFW $B41F Room procedure
990F DEFW $B422 Initialization
9911 DEFW $0000
9913 DEFW $0000
9915 DEFW $9634 Room Up
9917 DEFW $0000
9919 DEFB $03,$FF,$14,$11,$9A,$65 Rectangle 20x17 tiles with $FF at $659A
991F DEFB $03,$00,$11,$0C,$9B,$65 Rectangle 17x12 tiles with $00 at $659B
9925 DEFB $03,$00,$08,$04,$0C,$67 Rectangle 8x4 tiles with $00 at $670C
992B DEFB $09,$00,$03,$0B,$67 Triangle with $00, count=3 at $670B
9930 DEFB $0C,$48,$73,$02,$10,$A9,$65 Block 2 tiles from 7348 to $65A9 copy 16 times
9937 DEFB $05,$04,$07,$AA,$79,$A5,$70 Block 4x7 tiles from 79AA to $70A5
993E DEFB $05,$04,$07,$AA,$79,$86,$70 Block 4x7 tiles from 79AA to $7086
9945 DEFB $03,$0D,$02,$11,$94,$65 Rectangle 2x17 tiles with $0D at $6594
994B DEFB $01,$07,$2B,$26,$70 Fill vert 7 tiles with $2B at $7026
9950 DEFB $05,$03,$01,$97,$99,$B2,$65 Block 3x1 tiles from 9997 to $65B2
9957 DEFB $05,$03,$01,$97,$99,$2A,$66 Block 3x1 tiles from 9997 to $662A
995E DEFB $05,$03,$01,$97,$99,$C0,$66 Block 3x1 tiles from 9997 to $66C0
9965 DEFB $05,$03,$01,$97,$99,$38,$67 Block 3x1 tiles from 9997 to $6738
996C DEFB $05,$04,$03,$9A,$99,$CC,$65 Block 4x3 tiles from 999A to $65CC
9973 DEFB $05,$04,$03,$9A,$99,$26,$66 Block 4x3 tiles from 999A to $6626
997A DEFB $05,$04,$03,$9A,$99,$80,$66 Block 4x3 tiles from 999A to $6680
9981 DEFB $05,$04,$03,$9A,$99,$DA,$66 Block 4x3 tiles from 999A to $66DA
9988 DEFB $05,$04,$03,$9A,$99,$34,$67 Block 4x3 tiles from 999A to $6734
998F DEFB $05,$04,$02,$9E,$99,$90,$65 Block 4x2 tiles from 999E to $6590
9996 DEFB $FF End of sequence
9997: Blocks for rooms
9997 DEFB $1A,$1A,$16 Back block 3x1
999A DEFB $B4,$AA,$B4,$AA Back block 4x1
999E DEFB $AC,$BE,$AC,$BE Back block 4x2
99A2 DEFB $AD,$AB,$AD,$AB
99A6: Room 99A6
Console: flips trigger "E": set/remove wall in room 97A6.
99A6 DEFW $7918 Room procedure
99A8 DEFW $A110 Initialization
99AA DEFW $0000
99AC DEFW $9739 Room to Right
99AE DEFW $0000
99B0 DEFW $0000
99B2 DEFB $02,$1E,$FF,$70,$67 Fill horz 30 tiles with $FF at $6770
99B7 DEFB $01,$0E,$FF,$D6,$65 Fill vert 14 tiles with $FF at $65D6
99BC DEFB $01,$07,$2B,$9E,$70 Fill vert 7 tiles with $2B at $709E
99C1 DEFB $03,$FF,$14,$02,$9A,$65 Rectangle 20x2 tiles with $FF at $659A
99C7 DEFB $03,$FF,$03,$08,$E7,$65 Rectangle 3x8 tiles with $FF at $65E7
99CD DEFB $0E,$00,$B9,$66 Put tile $00 at $66B9
99D1 DEFB $05,$02,$04,$BB,$71,$01,$71 Block 2x4 tiles from 71BB to $7101
99D8 DEFB $03,$0D,$02,$10,$94,$65 Rectangle 2x16 tiles with $0D at $6594
99DE DEFB $05,$04,$03,$9A,$99,$CC,$65 Block 4x3 tiles from 999A to $65CC
99E5 DEFB $05,$04,$03,$9A,$99,$26,$66 Block 4x3 tiles from 999A to $6626
99EC DEFB $05,$04,$03,$9A,$99,$80,$66 Block 4x3 tiles from 999A to $6680
99F3 DEFB $05,$04,$03,$9A,$99,$DA,$66 Block 4x3 tiles from 999A to $66DA
99FA DEFB $05,$04,$02,$9A,$99,$34,$67 Block 4x2 tiles from 999A to $6734
9A01 DEFB $05,$03,$01,$97,$99,$EE,$65 Block 3x1 tiles from 9997 to $65EE
9A08 DEFB $05,$03,$01,$97,$99,$48,$66 Block 3x1 tiles from 9997 to $6648
9A0F DEFB $05,$03,$01,$97,$99,$C0,$66 Block 3x1 tiles from 9997 to $66C0
9A16 DEFB $05,$04,$02,$9E,$99,$90,$65 Block 4x2 tiles from 999E to $6590
9A1D DEFB $FF End of sequence
9A1E: Room 9A1E
9A1E DEFW $B41F Room procedure
9A20 DEFW $B422 Initialization
9A22 DEFW $0000
9A24 DEFW $7C9C Room to Right
9A26 DEFW $9A5A Room Up
9A28 DEFW $0000
9A2A DEFB $04,$FF Fill entire screen with $FF
9A2C DEFB $03,$02,$06,$08,$92,$65 Rectangle 6x8 tiles with $02 at $6592
9A32 DEFB $03,$02,$08,$06,$D4,$65 Rectangle 8x6 tiles with $02 at $65D4
9A38 DEFB $09,$02,$06,$8F,$66 Triangle with $02, count=6 at $668F
9A3D DEFB $03,$02,$0E,$06,$72,$66 Rectangle 14x6 tiles with $02 at $6672
9A43 DEFB $07,$02,$04,$FA,$65 Triangle with $02, count=4 at $65FA
9A48 DEFB $0C,$B9,$71,$02,$08,$94,$65 Block 2 tiles from 71B9 to $6594 copy 8 times
9A4F DEFB $02,$0F,$21,$25,$67 Fill horz 15 tiles with $21 at $6725
9A54 DEFB $02,$0E,$21,$44,$67 Fill horz 14 tiles with $21 at $6744
9A59 DEFB $FF End of sequence
9A5A: Room 9A5A
9A5A DEFW $B452 Room procedure
9A5C DEFW $A389 Initialization
9A5E DEFW $0000
9A60 DEFW $9552 Room to Right
9A62 DEFW $9B51 Room Up
9A64 DEFW $9A1E Room Down
9A66 DEFB $04,$FF Fill entire screen with $FF
9A68 DEFB $03,$00,$1C,$0B,$92,$65 Rectangle 28x11 tiles with $00 at $6592
9A6E DEFB $03,$00,$07,$04,$F1,$66 Rectangle 7x4 tiles with $00 at $66F1
9A74 DEFB $09,$00,$03,$F0,$66 Triangle with $00, count=3 at $66F0
9A79 DEFB $03,$02,$06,$02,$54,$67 Rectangle 6x2 tiles with $02 at $6754
9A7F DEFB $02,$04,$02,$37,$67 Fill horz 4 tiles with $02 at $6737
9A84 DEFB $0C,$B9,$71,$02,$05,$FC,$66 Block 2 tiles from 71B9 to $66FC copy 5 times
9A8B DEFB $05,$02,$01,$84,$79,$DE,$66 Block 2x1 tiles from 7984 to $66DE
9A92 DEFB $0C,$48,$73,$02,$0B,$99,$65 Block 2 tiles from 7348 to $6599 copy 11 times
9A99 DEFB $FF End of sequence
9A9A: Room 9A9A
9A9A DEFW $B483 Room procedure
9A9C DEFW $A192 Initialization
9A9E DEFW $94CF Room to Left
9AA0 DEFW $98C0 Room to Right
9AA2 DEFW $9ADC Room Up
9AA4 DEFW $0000
9AA6 DEFB $02,$0A,$FF,$91,$65 Fill horz 10 tiles with $FF at $6591
9AAB DEFB $02,$3C,$FF,$52,$67 Fill horz 60 tiles with $FF at $6752
9AB0 DEFB $03,$FF,$04,$08,$AA,$65 Rectangle 4x8 tiles with $FF at $65AA
9AB6 DEFB $0E,$2A,$90,$70 Put tile $2A at $7090
9ABA DEFB $01,$06,$2B,$AE,$70 Fill vert 6 tiles with $2B at $70AE
9ABF DEFB $0C,$48,$73,$02,$0F,$A5,$65 Block 2 tiles from 7348 to $65A5 copy 15 times
9AC6 DEFB $05,$04,$04,$A9,$71,$D4,$70 Block 4x4 tiles from 71A9 to $70D4
9ACD DEFB $05,$04,$04,$A9,$71,$DB,$70 Block 4x4 tiles from 71A9 to $70DB
9AD4 DEFB $05,$04,$04,$A9,$71,$E0,$70 Block 4x4 tiles from 71A9 to $70E0
9ADB DEFB $FF End of sequence
9ADC: Room 9ADC
9ADC DEFW $B41F Room procedure
9ADE DEFW $B422 Initialization
9AE0 DEFW $0000
9AE2 DEFW $0000
9AE4 DEFW $9B19 Room Up
9AE6 DEFW $9A9A Room Down
9AE8 DEFB $04,$FF Fill entire screen with $FF
9AEA DEFB $03,$00,$18,$08,$92,$65 Rectangle 24x8 tiles with $00 at $6592
9AF0 DEFB $03,$00,$0F,$07,$8B,$66 Rectangle 15x7 tiles with $00 at $668B
9AF6 DEFB $09,$00,$06,$8A,$66 Triangle with $00, count=6 at $668A
9AFB DEFB $0C,$48,$73,$02,$11,$A5,$65 Block 2 tiles from 7348 to $65A5 copy 17 times
9B02 DEFB $01,$0F,$3A,$A0,$65 Fill vert 15 tiles with $3A at $65A0
9B07 DEFB $02,$0D,$FF,$70,$66 Fill horz 13 tiles with $FF at $6670
9B0C DEFB $02,$0D,$27,$66,$70 Fill horz 13 tiles with $27 at $7066
9B11 DEFB $05,$02,$01,$9D,$88,$67,$67 Block 2x1 tiles from 889D to $6767
9B18 DEFB $FF End of sequence
9B19: Room 9B19
9B19 DEFW $7918 Room procedure
9B1B DEFW $A133 Initialization
9B1D DEFW $0000
9B1F DEFW $0000
9B21 DEFW $9BE7 Room Up
9B23 DEFW $9ADC Room Down
9B25 DEFB $03,$FF,$02,$11,$90,$65 Rectangle 2x17 tiles with $FF at $6590
9B2B DEFB $03,$FF,$04,$11,$AA,$65 Rectangle 4x17 tiles with $FF at $65AA
9B31 DEFB $0C,$48,$73,$02,$11,$A5,$65 Block 2 tiles from 7348 to $65A5 copy 17 times
9B38 DEFB $01,$11,$3A,$A0,$65 Fill vert 17 tiles with $3A at $65A0
9B3D DEFB $02,$1A,$FA,$F9,$66 Fill horz 26 tiles with $FA at $66F9
9B42 DEFB $05,$03,$03,$A0,$71,$96,$70 Block 3x3 tiles from 71A0 to $7096
9B49 DEFB $05,$02,$01,$9D,$88,$0D,$67 Block 2x1 tiles from 889D to $670D
9B50 DEFB $FF End of sequence
9B51: Room 9B51
9B51 DEFW $7918 Room procedure
9B53 DEFW $A11F Initialization
9B55 DEFW $0000
9B57 DEFW $0000
9B59 DEFW $9B9D Room Up
9B5B DEFW $9A5A Room Down
9B5D DEFB $04,$FF Fill entire screen with $FF
9B5F DEFB $03,$00,$1A,$0E,$92,$65 Rectangle 26x14 tiles with $00 at $6592
9B65 DEFB $01,$07,$00,$7F,$66 Fill vert 7 tiles with $00 at $667F
9B6A DEFB $01,$07,$2B,$74,$70 Fill vert 7 tiles with $2B at $7074
9B6F DEFB $0C,$48,$73,$02,$02,$5B,$67 Block 2 tiles from 7348 to $675B copy 2 times
9B76 DEFB $0C,$48,$73,$02,$0E,$A5,$65 Block 2 tiles from 7348 to $65A5 copy 14 times
9B7D DEFB $05,$02,$01,$9D,$88,$3D,$67 Block 2x1 tiles from 889D to $673D
9B84 DEFB $00,$D5,$70 Barrel 3x3 tiles at $70D5
9B87 DEFB $05,$04,$04,$89,$87,$B4,$70 Block 4x4 tiles from 8789 to $70B4
9B8E DEFB $05,$04,$04,$89,$87,$C0,$70 Block 4x4 tiles from 8789 to $70C0
9B95 DEFB $05,$03,$03,$A0,$71,$E9,$70 Block 3x3 tiles from 71A0 to $70E9
9B9C DEFB $FF End of sequence
9B9D: Room 9B9D
9B9D DEFW $B458 Room procedure
9B9F DEFW $A1D6 Initialization
9BA1 DEFW $0000
9BA3 DEFW $0000
9BA5 DEFW $9F3A Room Up
9BA7 DEFW $9B51 Room Down
9BA9 DEFB $04,$FF Fill entire screen with $FF
9BAB DEFB $03,$00,$1A,$07,$A0,$66 Rectangle 26x7 tiles with $00 at $66A0
9BB1 DEFB $03,$00,$18,$08,$94,$65 Rectangle 24x8 tiles with $00 at $6594
9BB7 DEFB $05,$02,$01,$9D,$88,$85,$67 Block 2x1 tiles from 889D to $6785
9BBE DEFB $05,$02,$01,$9D,$88,$8A,$66 Block 2x1 tiles from 889D to $668A
9BC5 DEFB $0C,$48,$73,$02,$07,$A8,$66 Block 2 tiles from 7348 to $66A8 copy 7 times
9BCC DEFB $0C,$48,$73,$02,$08,$A6,$65 Block 2 tiles from 7348 to $65A6 copy 8 times
9BD3 DEFB $05,$03,$03,$A0,$71,$24,$71 Block 3x3 tiles from 71A0 to $7124
9BDA DEFB $00,$B5,$70 Barrel 3x3 tiles at $70B5
9BDD DEFB $00,$0F,$71 Barrel 3x3 tiles at $710F
9BE0 DEFB $00,$12,$71 Barrel 3x3 tiles at $7112
9BE3 DEFB $00,$19,$71 Barrel 3x3 tiles at $7119
9BE6 DEFB $FF End of sequence
9BE7: Room 9BE7
9BE7 DEFW $B483 Room procedure
9BE9 DEFW $A19C Initialization
9BEB DEFW $0000
9BED DEFW $9DF5 Room to Right
9BEF DEFW $9E73 Room Up
9BF1 DEFW $9B19 Room Down
9BF3 DEFB $03,$FF,$02,$0C,$26,$66 Rectangle 2x12 tiles with $FF at $6626
9BF9 DEFB $03,$FF,$09,$05,$96,$65 Rectangle 9x5 tiles with $FF at $6596
9BFF DEFB $08,$FF,$05,$95,$65 Triangle with $FF, count=5 at $6595
9C04 DEFB $06,$FF,$09,$28,$66 Triangle with $FF, count=9 at $6628
9C09 DEFB $02,$04,$FF,$AA,$65 Fill horz 4 tiles with $FF at $65AA
9C0E DEFB $03,$FF,$04,$04,$30,$67 Rectangle 4x4 tiles with $FF at $6730
9C14 DEFB $01,$11,$3A,$A0,$65 Fill vert 17 tiles with $3A at $65A0
9C19 DEFB $0C,$48,$73,$02,$0D,$A2,$65 Block 2 tiles from 7348 to $65A2 copy 13 times
9C20 DEFB $0C,$48,$73,$02,$03,$49,$67 Block 2 tiles from 7348 to $6749 copy 3 times
9C27 DEFB $02,$1A,$FA,$17,$67 Fill horz 26 tiles with $FA at $6717
9C2C DEFB $05,$02,$01,$9D,$88,$2B,$67 Block 2x1 tiles from 889D to $672B
9C33 DEFB $01,$04,$F9,$A5,$66 Fill vert 4 tiles with $F9 at $66A5
9C38 DEFB $FF End of sequence
9C39: Data block at 9C39
9C39 DEFB $00,$00,$00,$00,$00,$00,$00
9C40 DEFB $08 Ninja Y within the room, 0 at the top
9C41 DEFB $06 Ninja X within the room
9C42 DEFW $00F6 Ninja position in tilemap: Y * 30 + X
9C44: Process a dog
Used by the routines at B452, B458 and B47A.
9C44 LD HL,$71D3 dog Y position address
9C47 LD A,($9C40) get Ninja Y
9C4A SUB (HL)
9C4B CP $07
9C4D JR NC,$9C80
9C4F LD HL,$7345
9C52 XOR A
9C53 CP (HL)
9C54 JR NZ,$9C5A
9C56 LD (HL),$19 !!MUT-ARG!! ??
9C58 JR $9C80
9C5A DEC (HL)
9C5B CP (HL)
9C5C JR NZ,$9C80
9C5E LD A,($71CD) get Dog direction
9C61 CP $00 left?
9C63 JR NZ,$9C71 right =>
9C65 LD A,($9C41) get Ninja X
9C68 INC A
9C69 LD HL,$71CE Dog X position address
9C6C CP (HL)
9C6D JR C,$9C80
9C6F JR $9C7B
9C71 LD A,($9C41) get Ninja X
9C74 INC A
9C75 LD HL,$71CE Dog X position address
9C78 CP (HL)
9C79 JR NC,$9C80
9C7B LD A,$01
9C7D LD ($7344),A set "Dog ignore left/right limit" flag
9C80 LD A,($71CD) !!MUT-ARG!! get Dog direction
9C83 LD ($71CD),A
9C86 LD HL,$71CD
9C89 LD ($9C81),HL
9C8C CALL $9D5C Set update flags for Dog
9C8F LD A,($71CF)
9C92 CP $42
9C94 JR C,$9CA8
9C96 LD HL,$9C9C Sprite Dog dead
9C99 JP $9D31 => Set Dog sprite = HL, Draw Dog in tilemap
9C9C: Sprite Dog dead
9C9C DEFB $FF,$FF,$FF,$FF
9CA0 DEFB $FF,$FF,$FF,$FF
9CA4 DEFB $5D,$5E,$5F,$60
9CA8: Part of Dog processing
Used by the routine at 9C44.
9CA8 CP $00
9CAA JP NZ,$9D8B
9CAD LD HL,($71CB) get Dog position in tilemap
9CB0 LD DE,$69AD $69AD = $698C (Tile screen 2) + 33: for right direction
9CB3 LD A,($71CD) get Dog direction
9CB6 CP $01 right?
9CB8 JR Z,$9CBD right =>
9CBA LD DE,$69AA $69AA = $698C (Tile screen 2) + 30: for left direction
9CBD ADD HL,DE now HL = Dog position in Ninja tile screen
9CBE LD A,(HL) get tile from Ninja tile screen
9CBF INC A $FF?
9CC0 LD B,$05
9CC2 CALL NZ,$9DD9 not $FF => Dog bites, decrease Energy by 5
9CC5 LD A,($71CD) get Dog direction
9CC8 CP $00 left?
9CCA JR Z,$9CF1 left =>
Dog runs right
9CCC LD HL,($71CB) get Dog position in tilemap
9CCF INC HL one tile right
9CD0 LD ($71CB),HL update Dog position in tilemap
9CD3 LD HL,$71CE Dog X position address
9CD6 INC (HL) one tile right
9CD7 LD A,($7344)
9CDA CP $01
9CDC JR Z,$9CE4
9CDE LD A,($71D1) get Dog's right limit
9CE1 CP (HL)
9CE2 JR NZ,$9D14
9CE4 XOR A
9CE5 LD ($7344),A
9CE8 LD ($71D2),A
9CEB INC A
9CEC LD ($71CF),A ?? = 1
9CEF JR $9D14
Dog runs left
9CF1 LD HL,($71CB) get Dog position in tilemap
9CF4 DEC HL one tile left
9CF5 LD ($71CB),HL update Dog position in tilemap
9CF8 LD HL,$71CE Dog X position address
9CFB DEC (HL) one tile left
9CFC LD A,($7344)
9CFF CP $01
9D01 JR Z,$9D09
9D03 LD A,($71D0) get Dog's left limit
9D06 CP (HL)
9D07 JR NZ,$9D14
9D09 XOR A
9D0A LD ($7344),A
9D0D INC A
9D0E LD ($71D2),A
9D11 LD ($71CF),A ?? = 1
9D14 LD HL,$71D5
9D17 INC (HL)
9D18 LD A,$03
9D1A CP (HL)
9D1B JR NZ,$9D1F
9D1D LD (HL),$00
9D1F LD A,(HL)
9D20 LD HL,$71F2 Sprite Dog 1
9D23 CP $00
9D25 JR Z,$9D31 => Set Dog sprite = HL, Draw Dog in tilemap
9D27 LD HL,$71FE Sprite Dog 2
9D2A CP $01
9D2C JR Z,$9D31 => Set Dog sprite = HL, Draw Dog in tilemap
9D2E LD HL,$720A Sprite Dog 3
Set Dog sprite = HL, Draw Dog in tilemap
9D31 LD ($9D3C),HL set DOg sprite = HL
Draw Dog in tilemap
9D34 LD HL,($71CB)
9D37 LD DE,$6B8A Tile screen 3 start address
9D3A ADD HL,DE
9D3B LD DE,$71FE !!MUT-ARG!! current Dog sprite address
9D3E LD B,$03 3 rows
9D40 LD A,($71CD) get Dog direction
9D43 CP $00 left?
9D45 JR Z,$9D75 left => draw Dog facing left
Draw Dog facing right in tilemap
9D47 LD C,$04 4 columns
9D49 LD A,(DE)
9D4A LD (HL),A
9D4B INC HL
9D4C INC DE
9D4D DEC C
9D4E JR NZ,$9D49
9D50 PUSH DE
9D51 LD DE,$001A 26
9D54 ADD HL,DE next row
9D55 POP DE
9D56 DJNZ $9D47
This entry point is used by the routine at 9D75.
9D58 CALL $9D5C Set update flags for Dog, 4x3 tiles
9D5B RET
9D5C: Set update flags for Dog, 4x3 tiles
Used by the routines at 9C44 and 9CA8.
9D5C LD C,$03 3 rows
9D5E LD HL,($71CB)
9D61 LD DE,$678E Tile screen 1 start address
9D64 ADD HL,DE
9D65 LD A,$01 "need to update" flag
9D67 LD DE,$001A 26
9D6A LD B,$04 4 columns
9D6C LD (HL),A set the flag
9D6D INC HL next column
9D6E DJNZ $9D6C
9D70 ADD HL,DE next row
9D71 DEC C
9D72 JR NZ,$9D6A continue loop by rows
9D74 RET
9D75: Draw Dog facing left in tilemap
Used by the routine at 9CA8.
9D75 INC HL
9D76 INC HL
9D77 INC HL
9D78 LD C,$04 4 rows
9D7A LD A,(DE)
9D7B LD (HL),A
9D7C DEC HL
9D7D INC DE
9D7E DEC C
9D7F JR NZ,$9D7A
9D81 PUSH DE
9D82 LD DE,$0022 34
9D85 ADD HL,DE
9D86 POP DE
9D87 DJNZ $9D78
9D89 JR $9D58 => Set update flags for Dog, and RET
9D8B: ?? something about Dog
Used by the routine at 9CA8.
9D8B LD HL,$7216 Sprite Dog 4
9D8E LD ($9D3C),HL
9D91 LD A,($71D2)
9D94 CP $00
9D96 JR Z,$9DB3
9D98 LD A,($71CD) get Dog direction
9D9B CP $00 left?
9D9D JR Z,$9DA6 left =>
9D9F DEC A
9DA0 LD ($71CF),A
9DA3 JP $9D34
9DA6 INC A
9DA7 LD ($71D4),A
9DAA LD HL,$71D4
9DAD LD ($9C81),HL
9DB0 JP $9D34
9DB3 LD A,($71CD) get Dog direction
9DB6 CP $00 left?
9DB8 JR Z,$9DC7 left =>
9DBA DEC A
9DBB LD ($71D4),A
9DBE LD HL,$71D4
9DC1 LD ($9C81),HL
9DC4 JP $9D34
9DC7 LD ($71CF),A
9DCA JP $9D34
9DCD: Initialize a dog
Used by the routines at A154, A15F, A1A6, A1B5, A1C0, A1CB, A1D6, A353, B42E and B437.
Input
HL dog data address
9DCD LD DE,$71CB current dog data address
9DD0 LD ($B674),HL save current Dog data address
9DD3 LD BC,$0009 9 = size of Dog data
9DD6 LDIR Copy Dog data
9DD8 RET
9DD9: Decrease Energy by B
Used by the routines at 9CA8, A434, B937, BC55, C22F, C4F6, C50D, C5C6 and FA31.
9DD9 RET !!MUT-CMD!! $C5 PUSH BC or $C9 RET
9DDA CALL $749E Decrease Energy
9DDD POP BC
9DDE LD A,($749C) get Energy
9DE1 CP $04 Energy = MIN ?
9DE3 JR NZ,$9DF1
9DE5 LD A,($749D) get Energy lower
9DE8 CP $01
9DEA JR NZ,$9DF1
9DEC JP $BEAA Energy is out => Saboteur dead
9DEF DI !!UNUSED!!
9DF0 RET
9DF1 DJNZ $9DD9 continue loop by B
9DF3 DI
9DF4 RET
9DF5: Room 9DF5
9DF5 DEFW $7918 Room procedure
9DF7 DEFW $A138 Initialization
9DF9 DEFW $9BE7 Room to Left
9DFB DEFW $0000
9DFD DEFW $9E22 Room Up
9DFF DEFW $0000
9E01 DEFB $02,$07,$FF,$90,$65 Fill horz 7 tiles with $FF at $6590
9E06 DEFB $03,$FF,$02,$0C,$AC,$65 Rectangle 2x12 tiles with $FF at $65AC
9E0C DEFB $02,$7A,$FF,$14,$67 Fill horz 122 tiles with $FF at $6714
9E11 DEFB $0C,$48,$73,$02,$0D,$A4,$65 Block 2 tiles from 7348 to $65A4 copy 13 times
9E18 DEFB $0E,$2A,$A7,$6F Put tile $2A at $6FA7
9E1C DEFB $01,$0B,$2B,$C5,$6F Fill vert 11 tiles with $2B at $6FC5
9E21 DEFB $FF End of sequence
9E22: Room 9E22
9E22 DEFW $B41F Room procedure
9E24 DEFW $B422 Initialization
9E26 DEFW $0000
9E28 DEFW $0000
9E2A DEFW $0000
9E2C DEFW $9DF5 Room Down
9E2E DEFB $04,$FF Fill entire screen with $FF
9E30 DEFB $03,$00,$14,$02,$5A,$67 Rectangle 20x2 tiles with $00 at $675A
9E36 DEFB $03,$02,$1A,$0C,$B0,$65 Rectangle 26x12 tiles with $02 at $65B0
9E3C DEFB $09,$FF,$05,$C9,$65 Triangle with $FF, count=5 at $65C9
9E41 DEFB $0C,$48,$73,$02,$03,$48,$67 Block 2 tiles from 7348 to $6748 copy 3 times
9E48 DEFB $05,$02,$01,$9D,$88,$2A,$67 Block 2x1 tiles from 889D to $672A
9E4F DEFB $05,$02,$04,$BB,$71,$A5,$70 Block 2x4 tiles from 71BB to $70A5
9E56 DEFB $05,$03,$03,$A0,$71,$B7,$70 Block 3x3 tiles from 71A0 to $70B7
9E5D DEFB $05,$03,$03,$A0,$71,$BD,$70 Block 3x3 tiles from 71A0 to $70BD
9E64 DEFB $05,$03,$03,$A0,$71,$CA,$70 Block 3x3 tiles from 71A0 to $70CA
9E6B DEFB $05,$03,$04,$9C,$84,$96,$70 Block 3x4 tiles from 849C to $7096
9E72 DEFB $FF End of sequence
9E73: Room 9E73
9E73 DEFW $B41F Room procedure
9E75 DEFW $B422 Initialization
9E77 DEFW $9EB8 Room to Left
9E79 DEFW $0000
9E7B DEFW $0000
9E7D DEFW $9BE7 Room Down
9E7F DEFB $02,$78,$FF,$90,$65 Fill horz 120 tiles with $FF at $6590
9E84 DEFB $03,$FF,$06,$0D,$20,$66 Rectangle 6x13 tiles with $FF at $6620
9E8A DEFB $03,$FF,$06,$06,$E4,$66 Rectangle 6x6 tiles with $FF at $66E4
9E90 DEFB $08,$FF,$04,$1F,$67 Triangle with $FF, count=4 at $671F
9E95 DEFB $02,$0C,$FA,$DA,$66 Fill horz 12 tiles with $FA at $66DA
9E9A DEFB $01,$0D,$3A,$18,$66 Fill vert 13 tiles with $3A at $6618
9E9F DEFB $01,$07,$3A,$0C,$66 Fill vert 7 tiles with $3A at $660C
9EA4 DEFB $02,$0A,$FA,$E9,$66 Fill horz 10 tiles with $FA at $66E9
9EA9 DEFB $0C,$48,$73,$02,$0D,$1A,$66 Block 2 tiles from 7348 to $661A copy 13 times
9EB0 DEFB $05,$02,$01,$9D,$88,$EC,$66 Block 2x1 tiles from 889D to $66EC
9EB7 DEFB $FF End of sequence
9EB8: Room 9EB8
9EB8 DEFW $7918 Room procedure
9EBA DEFW $A12E Initialization
9EBC DEFW $9ED9 Room to Left
9EBE DEFW $9E73 Room to Right
9EC0 DEFW $0000
9EC2 DEFW $0000
9EC4 DEFB $02,$78,$FF,$90,$65 Fill horz 120 tiles with $FF at $6590
9EC9 DEFB $02,$1E,$FA,$DA,$66 Fill horz 30 tiles with $FA at $66DA
9ECE DEFB $01,$07,$28,$03,$70 Fill vert 7 tiles with $28 at $7003
9ED3 DEFB $01,$07,$28,$13,$70 Fill vert 7 tiles with $28 at $7013
9ED8 DEFB $FF End of sequence
9ED9: Room 9ED9
9ED9 DEFW $B41F Room procedure
9EDB DEFW $B422 Initialization
9EDD DEFW $9EFA Room to Left
9EDF DEFW $9EB8 Room to Right
9EE1 DEFW $0000
9EE3 DEFW $0000
9EE5 DEFB $02,$78,$FF,$90,$65 Fill horz 120 tiles with $FF at $6590
9EEA DEFB $02,$1E,$FA,$DA,$66 Fill horz 30 tiles with $FA at $66DA
9EEF DEFB $01,$07,$28,$05,$70 Fill vert 7 tiles with $28 at $7005
9EF4 DEFB $01,$07,$28,$11,$70 Fill vert 7 tiles with $28 at $7011
9EF9 DEFB $FF End of sequence
9EFA: Room 9EFA
9EFA DEFW $B41F Room procedure
9EFC DEFW $B422 Initialization
9EFE DEFW $0000
9F00 DEFW $9ED9 Room to Right
9F02 DEFW $0000
9F04 DEFW $9F3A Room Down
9F06 DEFB $02,$7D,$FF,$90,$65 Fill horz 125 tiles with $FF at $6590
9F0B DEFB $03,$FF,$05,$0C,$26,$66 Rectangle 5x12 tiles with $FF at $6626
9F11 DEFB $03,$FF,$14,$05,$01,$67 Rectangle 20x5 tiles with $FF at $6701
9F17 DEFB $02,$13,$FF,$DF,$66 Fill horz 19 tiles with $FF at $66DF
9F1C DEFB $02,$06,$FA,$F2,$66 Fill horz 6 tiles with $FA at $66F2
9F21 DEFB $01,$07,$3A,$16,$66 Fill vert 7 tiles with $3A at $6616
9F26 DEFB $01,$07,$28,$17,$70 Fill vert 7 tiles with $28 at $7017
9F2B DEFB $0C,$48,$73,$02,$0D,$0E,$66 Block 2 tiles from 7348 to $660E copy 13 times
9F32 DEFB $05,$02,$01,$9D,$88,$E0,$66 Block 2x1 tiles from 889D to $66E0
9F39 DEFB $FF End of sequence
9F3A: Room 9F3A
9F3A DEFW $7918 Room procedure
9F3C DEFW $A124 Initialization
9F3E DEFW $0000
9F40 DEFW $9F7E Room to Right
9F42 DEFW $9EFA Room Up
9F44 DEFW $9B9D Room Down
9F46 DEFB $03,$FF,$05,$0F,$90,$65 Rectangle 5x15 tiles with $FF at $6590
9F4C DEFB $02,$3C,$FF,$52,$67 Fill horz 60 tiles with $FF at $6752
9F51 DEFB $03,$FF,$14,$02,$99,$65 Rectangle 20x2 tiles with $FF at $6599
9F57 DEFB $0C,$48,$73,$02,$0F,$96,$65 Block 2 tiles from 7348 to $6596 copy 15 times
9F5E DEFB $05,$02,$04,$BB,$71,$E3,$70 Block 2x4 tiles from 71BB to $70E3
9F65 DEFB $01,$0D,$3A,$DA,$65 Fill vert 13 tiles with $3A at $65DA
9F6A DEFB $01,$0D,$3A,$E5,$65 Fill vert 13 tiles with $3A at $65E5
9F6F DEFB $05,$02,$01,$9D,$88,$68,$67 Block 2x1 tiles from 889D to $6768
9F76 DEFB $05,$02,$01,$48,$73,$86,$67 Block 2x1 tiles from 7348 to $6786
9F7D DEFB $FF End of sequence
9F7E: Room 9F7E
9F7E DEFW $7918 Room procedure
9F80 DEFW $A129 Initialization
9F82 DEFW $9F3A Room to Left
9F84 DEFW $A022 Room to Right
9F86 DEFW $0000
9F88 DEFW $0000
9F8A DEFB $03,$FF,$02,$02,$52,$67 Rectangle 2x2 tiles with $FF at $6752
9F90 DEFB $03,$A3,$1B,$02,$55,$67 Rectangle 27x2 tiles with $A3 at $6755
9F96 DEFB $05,$01,$02,$08,$A0,$54,$67 Block 1x2 tiles from A008 to $6754
9F9D DEFB $03,$F5,$1A,$0A,$20,$70 Rectangle 26x10 tiles with $F5 at $7020
9FA3 DEFB $03,$FF,$02,$02,$20,$70 Rectangle 2x2 tiles with $FF at $7020
9FA9 DEFB $05,$02,$02,$04,$A0,$2A,$66 Block 2x2 tiles from A004 to $662A
9FB0 DEFB $05,$04,$04,$0A,$A0,$7C,$70 Block 4x4 tiles from A00A to $707C
9FB7 DEFB $05,$04,$04,$0A,$A0,$80,$70 Block 4x4 tiles from A00A to $7080
9FBE DEFB $05,$04,$04,$0A,$A0,$84,$70 Block 4x4 tiles from A00A to $7084
9FC5 DEFB $05,$04,$04,$0A,$A0,$88,$70 Block 4x4 tiles from A00A to $7088
9FCC DEFB $05,$04,$04,$0A,$A0,$8C,$70 Block 4x4 tiles from A00A to $708C
9FD3 DEFB $05,$04,$04,$0A,$A0,$90,$70 Block 4x4 tiles from A00A to $7090
9FDA DEFB $03,$1B,$18,$04,$86,$66 Rectangle 24x4 tiles with $1B at $6686
9FE0 DEFB $03,$A3,$18,$02,$F0,$65 Rectangle 24x2 tiles with $A3 at $65F0
9FE6 DEFB $05,$01,$02,$08,$A0,$EF,$65 Block 1x2 tiles from A008 to $65EF
9FED DEFB $0E,$98,$D3,$65 Put tile $98 at $65D3
9FF1 DEFB $02,$16,$0D,$D4,$65 Fill horz 22 tiles with $0D at $65D4
9FF6 DEFB $05,$04,$02,$1A,$A0,$A6,$65 Block 4x2 tiles from A01A to $65A6
9FFD DEFB $03,$0D,$04,$02,$AA,$65 Rectangle 4x2 tiles with $0D at $65AA
A003 DEFB $FF End of sequence
A004: Blocks for rooms
A004 DEFB $00,$98 Back block 2x2
A006 DEFB $98,$95
A008 DEFB $9E Back block 1x2
A009 DEFB $9D
A00A DEFB $FE,$FB,$FB,$F8 Front block 4x4
A00E DEFB $FD,$FF,$FF,$F7
A012 DEFB $FD,$FF,$FF,$F7
A016 DEFB $FC,$F9,$F9,$F6
A01A DEFB $00,$00,$97,$96 Back block 4x2
A01E DEFB $97,$96,$0D,$0D
A022: Room A022
A022 DEFW $B41F Room procedure
A024 DEFW $B422 Initialization
A026 DEFW $9F7E Room to Left
A028 DEFW $0000
A02A DEFW $0000
A02C DEFW $0000
A02E DEFB $03,$A3,$1B,$02,$52,$67 Rectangle 27x2 tiles with $A3 at $6752
A034 DEFB $03,$F5,$1A,$0A,$1C,$70 Rectangle 26x10 tiles with $F5 at $701C
A03A DEFB $03,$FF,$02,$02,$34,$70 Rectangle 2x2 tiles with $FF at $7034
A040 DEFB $05,$02,$02,$A7,$A0,$3E,$66 Block 2x2 tiles from A0A7 to $663E
A047 DEFB $05,$04,$04,$0A,$A0,$76,$70 Block 4x4 tiles from A00A to $7076
A04E DEFB $05,$04,$04,$0A,$A0,$7A,$70 Block 4x4 tiles from A00A to $707A
A055 DEFB $05,$04,$04,$0A,$A0,$7E,$70 Block 4x4 tiles from A00A to $707E
A05C DEFB $05,$04,$04,$0A,$A0,$82,$70 Block 4x4 tiles from A00A to $7082
A063 DEFB $05,$04,$04,$0A,$A0,$86,$70 Block 4x4 tiles from A00A to $7086
A06A DEFB $05,$04,$04,$0A,$A0,$8A,$70 Block 4x4 tiles from A00A to $708A
A071 DEFB $03,$1B,$18,$04,$80,$66 Rectangle 24x4 tiles with $1B at $6680
A077 DEFB $03,$A3,$18,$02,$EA,$65 Rectangle 24x2 tiles with $A3 at $65EA
A07D DEFB $05,$01,$02,$AB,$A0,$02,$66 Block 1x2 tiles from A0AB to $6602
A084 DEFB $0E,$94,$E2,$65 Put tile $94 at $65E2
A088 DEFB $02,$16,$0D,$CC,$65 Fill horz 22 tiles with $0D at $65CC
A08D DEFB $05,$04,$02,$AD,$A0,$94,$65 Block 4x2 tiles from A0AD to $6594
A094 DEFB $03,$0D,$04,$02,$90,$65 Rectangle 4x2 tiles with $0D at $6590
A09A DEFB $01,$08,$FF,$7B,$66 Fill vert 8 tiles with $FF at $667B
A09F DEFB $05,$01,$02,$AB,$A0,$6D,$67 Block 1x2 tiles from A0AB to $676D
A0A6 DEFB $FF End of sequence
A0A7: Blocks for rooms
A0A7 DEFB $94,$00 Back block 2x2
A0A9 DEFB $0D,$94
A0AB DEFB $9C Back block 1x2
A0AC DEFB $9B
A0AD DEFB $93,$92,$00,$00 Back block 4x2
A0B1 DEFB $0D,$0D,$93,$92
A0B5: Sprite Ninja/Guard dead, 6x7 tiles
A0B5 DEFB $FF,$FF,$FF,$FF,$FF,$FF
A0BB DEFB $FF,$FF,$FF,$FF,$FF,$FF
A0C1 DEFB $FF,$FF,$FF,$FF,$FF,$FF
A0C7 DEFB $FF,$FF,$FF,$FF,$FF,$FF
A0CD DEFB $FF,$FF,$FF,$FF,$FF,$FF
A0D3 DEFB $FF,$FF,$ED,$EC,$EB,$FF
A0D9 DEFB $F3,$F2,$F1,$F0,$EF,$EE
A0DF: Room 94AB initialization
A0DF LD HL,$A1E1 Guard data address
Initialize a guard, then Standard room initialization
A0E2 CALL $B40A Initialize a guard
This entry point is used by the routine at A142.
A0E5 JP $B422 Standard room initialization
A0E8: Room 7DA9 initialization
A0E8 LD HL,$A1E7 Guard data address
A0EB JR $A0E2 Initialize a guard, then Standard room initialization
A0ED: Room 7E8C initialization
A0ED LD HL,$A1ED Guard data address
A0F0 JR $A0E2 Initialize a guard, then Standard room initialization
A0F2: Room 920A initialization
A0F2 LD HL,$A1F3 Guard data address
A0F5 JR $A0E2 Initialize a guard, then Standard room initialization
A0F7: Room 8F84 initialization
A0F7 LD HL,$A1F9 Guard data address
A0FA JR $A0E2 Initialize a guard, then Standard room initialization
A0FC: Room 8B71 initialization
A0FC LD HL,$A1FF Guard data address
A0FF JR $A0E2 Initialize a guard, then Standard room initialization
A101: Room 8739 initialization
A101 LD HL,$A205 Guard data address
A104 JR $A0E2 Initialize a guard, then Standard room initialization
A106: Room 858F initialization
A106 LD HL,$A20B Guard data address
A109 JR $A0E2 Initialize a guard, then Standard room initialization
A10B: Room 84EE initialization
A10B LD HL,$A211 Guard data address
A10E JR $A0E2 Initialize a guard, then Standard room initialization
A110: Room 99A6 initialization
A110 LD HL,$A21D Guard data address
A113 JR $A0E2 Initialize a guard, then Standard room initialization
A115: Room 97F8 initialization
A115 LD HL,$A223 Guard data address
A118 JR $A0E2 Initialize a guard, then Standard room initialization
A11A: Room 94CF initialization
A11A LD HL,$A229 Guard data address
A11D JR $A0E2 Initialize a guard, then Standard room initialization
A11F: Room 9B51 initialization
A11F LD HL,$A22F Guard data address
A122 JR $A0E2 Initialize a guard, then Standard room initialization
A124: Room 9F3A initialization
A124 LD HL,$A235 Guard data address
A127 JR $A0E2 Initialize a guard, then Standard room initialization
A129: Room 9F7E initialization
A129 LD HL,$A23B Guard data address
A12C JR $A0E2 Initialize a guard, then Standard room initialization
A12E: Room 9EB8 initialization
A12E LD HL,$A241 Guard data address
A131 JR $A0E2 Initialize a guard, then Standard room initialization
A133: Room 9B19 initialization
A133 LD HL,$A247 Guard data address
A136 JR $A0E2 Initialize a guard, then Standard room initialization
A138: Room 9DF5 initialization
A138 LD HL,$A24D Guard data address
A13B JR $A0E2 Initialize a guard, then Standard room initialization
A13D: ?? UNUSED??
A13D LD HL,$A217 Guard data address
A140 JR $A0E2 Initialize a guard, then Standard room initialization
A142: Room 7A17 initialization
A142 LD HL,$A33E Turret data address
Initialize a turret, then Standard room initialization
A145 CALL $B461 Initialize a turret
A148 JR $A0E5 Standard room initialization
A14A: Room 7D5A initialization
A14A LD HL,$A32F Turret data address
A14D JR $A145 Initialize a turret, then Standard room initialization
A14F: Room 7F48 initialization
A14F LD HL,$A332 Turret data address
A152 JR $A145 Initialize a turret, then Standard room initialization
A154: Room 7EF2 initialization
A154 LD HL,$A299 Dog data address
A157 CALL $9DCD Initialize a dog
A15A LD HL,$A338 Turret data address
A15D JR $A145 Initialize a turret, then Standard room initialization
A15F: Room 909F initialization
A15F LD HL,$A2E9 Dog data address
A162 CALL $9DCD Initialize a dog
A165 LD HL,$A338 Turret data address
A168 JR $A145 Initialize a turret, then Standard room initialization
A16A: Room 8FBD initialization
A16A LD HL,$A335 Turret data address
A16D JR $A145 Initialize a turret, then Standard room initialization
A16F: Room 92A7 initialization
A16F LD HL,$A338 Turret data address
A172 JR $A145 Initialize a turret, then Standard room initialization
A174: Room 8B25 initialization
A174 LD HL,$A33B Turret data address
A177 JR $A145 Initialize a turret, then Standard room initialization
A179: Room 8526 initialization
A179 LD HL,$A33E Turret data address
A17C JR $A145 Initialize a turret, then Standard room initialization
A17E: ?? UNUSED??
A17E LD HL,$A341 Turret data address
A181 JR $A145 Initialize a turret, then Standard room initialization
A183: Room 95D6 initialization
A183 LD HL,$A344 Turret data address
A186 JR $A145 Initialize a turret, then Standard room initialization
A188: Room 968A initialization
A188 LD HL,$A347 Turret data address
A18B JR $A145 Initialize a turret, then Standard room initialization
A18D: Finish Room 97A6 initialization
Used by the routine at B368.
A18D LD HL,$A34A Turret data address
A190 JR $A145 Initialize a turret, then Standard room initialization
A192: Room 9A9A initialization
A192 LD HL,$A332 Turret data address
A195 JR $A145 Initialize a turret, then Standard room initialization
A197: Room 9552 initialization
A197 LD HL,$A34D Turret data address
A19A JR $A145 Initialize a turret, then Standard room initialization
A19C: Room 9BE7 initialization
A19C LD HL,$A350 Turret data address
A19F JR $A145 Initialize a turret, then Standard room initialization
A1A1: Room 8D5C initialization
A1A1 LD HL,$A33B Turret data address
A1A4 JR $A145 Initialize a turret, then Standard room initialization
A1A6: Room 7C2E initialization
A1A6 LD HL,$A271 Dog data address
A1A9 CALL $9DCD Initialize a dog
A1AC LD HL,$A253 Guard data address
A1AF: Finish room initialization
Used by the routines at A1B5, A1C0, A1CB and A1D6.
A1AF CALL $B40A Initialize a guard
A1B2 JP $B422 Standard room initialization
A1B5: Room 7F9C initialization
A1B5 LD HL,$A27B Dog data address
A1B8 CALL $9DCD Initialize a dog
A1BB LD HL,$A259 Guard data address
A1BE JR $A1AF Initialize a guard, then Standard room initialization
A1C0: Room 8162 initialization
A1C0 LD HL,$A28F Dog data address
A1C3 CALL $9DCD Initialize a dog
A1C6 LD HL,$A25F Guard data address
A1C9 JR $A1AF Initialize a guard, then Standard room initialization
A1CB: Room 80A7 initialization
A1CB LD HL,$A2AD Dog data address
A1CE CALL $9DCD Initialize a dog
A1D1 LD HL,$A265 Guard data address
A1D4 JR $A1AF Initialize a guard, then Standard room initialization
A1D6: Room 9B9D initialization
A1D6 LD HL,$A325 Dog data address
A1D9 CALL $9DCD Initialize a dog
A1DC LD HL,$A26B Guard data address
A1DF JR $A1AF Initialize a guard, then Standard room initialization
A1E1: Guards data, 24 records, 6 bytes each
+$04: Guard energy, initially 10
A1E1 DEFB $9D,$00,$07,$05,$0A,$01 Room 94AB guard
A1E7 DEFB $18,$01,$0A,$09,$0A,$00 Room 7DA9 guard
A1ED DEFB $14,$01,$06,$09,$0A,$00 Room 7E8C guard
A1F3 DEFB $13,$01,$05,$09,$0A,$00 Room 920A guard
A1F9 DEFB $C8,$00,$14,$06,$0A,$00 Room 8F84 guard
A1FF DEFB $20,$01,$12,$09,$0A,$01 Room 8B71 guard
A205 DEFB $50,$00,$14,$02,$0A,$01 Room 8739 guard
A20B DEFB $1E,$01,$10,$09,$0A,$00 Room 858F guard
A211 DEFB $01,$01,$11,$08,$0A,$01 Room 84EE guard
A217 DEFB $18,$01,$0A,$09,$0A,$00 UNUSED, see A13D
A21D DEFB $22,$01,$14,$09,$0A,$01 Room 99A6 guard
A223 DEFB $F9,$00,$09,$08,$0A,$00 Room 97F8 guard
A229 DEFB $02,$01,$12,$08,$0A,$01 Room 94CF guard
A22F DEFB $DF,$00,$0D,$07,$0A,$01 Room 9B51 guard
A235 DEFB $F7,$00,$07,$08,$0A,$01 Room 9F3A guard
A23B DEFB $F8,$00,$08,$08,$0A,$00 Room 9F7E guard
A241 DEFB $86,$00,$0E,$04,$0A,$01 Room 9EB8 guard
A247 DEFB $A2,$00,$0C,$05,$0A,$00 Room 9B19 guard
A24D DEFB $BB,$00,$07,$06,$0A,$00 Room 9DF5 guard
A253 DEFB $C2,$00,$0E,$06,$0A,$00 Room 7C2E guard
A259 DEFB $D4,$00,$02,$07,$0A,$00 Room 7F9C guard
A25F DEFB $0B,$00,$0B,$00,$0A,$01 Room 8162 guard
A265 DEFB $20,$01,$12,$09,$0A,$01 Room 80A7 guard
A26B DEFB $30,$00,$12,$01,$0A,$01 Room 9B9D guard
A271: Dogs data, 19 records, 10 bytes each
+$00/$01: Dog position in tilemap
+$02: Dog direction
+$03: Dog X position
+$05: Dog left limit
+$06: Dog right limit
+$08: Dog Y position
A271 DEFB $3C,$01,$00,$10,$00,$03,$16,$00,$03,$01 Room 7C2E dog
A27B DEFB $5E,$01,$01,$14,$00,$03,$16,$01,$04,$01 Room 7F9C dog
A285 DEFB $A5,$00,$00,$0F,$00,$05,$0F,$00,$FE,$01 Room 81E5 dog
A28F DEFB $7A,$00,$01,$02,$00,$00,$18,$01,$FD,$01 Room 8162 dog
A299 DEFB $8F,$01,$01,$09,$00,$03,$18,$01,$06,$01 Room 7EF2 dog
A2A3 DEFB $8A,$01,$01,$04,$00,$02,$1A,$01,$06,$01 Room 7E05 dog
A2AD DEFB $9A,$01,$00,$14,$01,$03,$15,$01,$06,$01 Room 80A7 dog
A2B7 DEFB $92,$01,$00,$0C,$00,$05,$19,$00,$06,$01 Room 83ED dog
A2C1 DEFB $8C,$01,$01,$06,$01,$01,$17,$00,$06,$01 Room 80F6 dog
A2CB DEFB $90,$01,$00,$0A,$00,$04,$17,$00,$06,$01 Room 924E dog
A2D5 DEFB $1B,$01,$01,$0D,$00,$06,$18,$01,$02,$01 Room 91BA dog
A2DF DEFB $76,$01,$01,$0E,$00,$00,$0F,$01,$05,$01 Room 90DB dog
A2E9 DEFB $97,$01,$01,$11,$00,$0D,$1A,$01,$06,$01 Room 909F dog
A2F3 DEFB $BC,$00,$00,$08,$00,$01,$0E,$00,$FF,$01 Room 8802 dog
A2FD DEFB $A4,$00,$00,$0E,$00,$02,$0E,$00,$FE,$01 Room 8608 dog
A307 DEFB $8E,$01,$00,$08,$00,$07,$17,$00,$06,$01 Room 844E dog
A311 DEFB $8D,$01,$01,$07,$00,$03,$15,$01,$06,$01 Room 9739 dog
A31B DEFB $F6,$00,$00,$06,$00,$02,$0F,$00,$01,$01 Room 9A5A dog
A325 DEFB $8C,$01,$01,$06,$00,$04,$18,$01,$06,$01 Room 9B9D dog
A32F: Turrets data, 12 records, 3 bytes each
A32F DEFB $C4,$00,$0E Room 7A17 turret
A332 DEFB $27,$00,$07 Room 7F48/9A9A turret
A335 DEFB $11,$00,$0F Room 8FBD turret
A338 DEFB $2B,$00,$0A Room 7EF2/909F/92A7 turret
A33B DEFB $4B,$00,$0D Room 8B25/8D5C turret
A33E DEFB $2F,$00,$0F Room 7A17/8526 turret
A341 DEFB $32,$00,$12 UNUSED, see A17E
A344 DEFB $9D,$00,$05 Room 95D6 turret
A347 DEFB $A6,$00,$0E Room 968A turret
A34A DEFB $0A,$01,$18 Room 97A6 turret
A34D DEFB $3F,$00,$01 Room 9552 turret
A350 DEFB $A3,$00,$0B Room 9BE7 turret
A353: Room 81E5 initialization
A353 LD HL,$A285 Dog data address
Initialize a dog, then Standard room initialization
A356 CALL $9DCD Initialize a dog
A359 JP $B422 Standard room initialization
A35C: Room 7E05 initialization
A35C LD HL,$A2A3 Dog data address
A35F JR $A356 Initialize a dog, then Standard room initialization
A361: Room 83ED initialization
A361 LD HL,$A2B7 Dog data address
A364 JR $A356 Initialize a dog, then Standard room initialization
A366: Room 924E initialization
A366 LD HL,$A2CB Dog data address
A369 JR $A356 Initialize a dog, then Standard room initialization
A36B: Room 91BA initialization
A36B LD HL,$A2D5 Dog data address
A36E JR $A356 Initialize a dog, then Standard room initialization
A370: Room 90DB initialization
A370 LD HL,$A2DF Dog data address
A373 JR $A356 Initialize a dog, then Standard room initialization
A375: Room 8802 initialization
A375 LD HL,$A2F3 Dog data address
A378 JR $A356 Initialize a dog, then Standard room initialization
A37A: Room 8608 initialization
A37A LD HL,$A2FD Dog data address
A37D JR $A356 Initialize a dog, then Standard room initialization
A37F: Room 844E initialization
A37F LD HL,$A307 Dog data address
A382 JR $A356 Initialize a dog, then Standard room initialization
A384: Room 9739 initialization
A384 LD HL,$A311 Dog data address
A387 JR $A356 Initialize a dog, then Standard room initialization
A389: Room 9A5A initialization
A389 LD HL,$A31B Dog data address
A38C JR $A356 Initialize a dog, then Standard room initialization
A38E: Room 80F6 initialization
A38E LD HL,$A2C1 Dog data address
A391 JR $A356 Initialize a dog, then Standard room initialization
A393: Data block at A393
A393 DEFB $90,$01,$01,$0A,$42,$01,$17,$01
A39B DEFB $06,$01,$00,$00,$00,$C4,$00,$00
A3A3 DEFB $03,$06,$10,$00,$45,$01,$05,$05
A3AB DEFB $0A,$19,$00,$69,$00,$06,$06,$03
A3B3 DEFB $0F
A3B4 DEFB $01 ?? Guard counter
A3B5: ?? something about Ninja and Guard
Used by the routine at A434.
A3B5 LD A,($9C40) get Ninja Y
A3B8 LD HL,$71C6 Guard Y position address
A3BB CP (HL) compare Ninja Y to Guard Y
A3BC RET NZ
A3BD POP HL
A3BE LD A,$14 !!MUT-ARG!! ??
A3C0 LD ($A3B4),A
A3C3 LD A,$0B
A3C5 LD ($7346),A set Guard state = $0B
A3C8 LD HL,$D504 Sprite Ninja/Guard punching
A3CB LD ($A70F),HL set Guard sprite
A3CE JP $A6FF => Draw Guard on tilemap
A3D1: ?? something about Ninja and Guard
Used by the routine at A434.
A3D1 LD A,($9C40) get Ninja Y
A3D4 LD HL,$71C6 Guard Y position address
A3D7 CP (HL) compare Ninja Y to Guard Y
A3D8 RET NZ
A3D9 LD A,($A3A6)
A3DC CP $00
A3DE RET NZ
A3DF POP HL
A3E0 LD A,$14
A3E2 LD ($7346),A set Guard state = $14
A3E5 LD HL,$D504 Sprite Ninja/Guard punching
A3E8 LD ($A70F),HL set Guard sprite
A3EB JP $A6FF => Draw Guard on tilemap
A3EE: ?? something about Ninja and Guard
Used by the routine at A434.
A3EE LD A,($9C40) get Ninja Y
A3F1 LD HL,$71C6 Guard Y position address
A3F4 CP (HL) compare Ninja Y to Guard Y
A3F5 RET NZ
A3F6 LD HL,($71C3) get Guard position in tilemap
A3F9 LD DE,$6592 $6592 = $6590 (Tile screen 0) + 2
A3FC ADD HL,DE now HL in Back tile screen
A3FD LD A,$64
A3FF CP (HL)
A400 RET C
A401 INC HL
A402 CP (HL)
A403 RET C
A404 POP HL
A405 LD A,$05
A407 LD ($7346),A set Guard state = $05
A40A LD A,$02
A40C LD ($A3B4),A set Guard counter
A40F LD HL,$D4B0 Sprite Ninja/Guard jumping
A412 LD ($A70F),HL set Guard sprite
A415 JP $A6FF => Draw Guard on tilemap
A418: ?? something about Ninja and Guard
Used by the routine at A434.
A418 LD A,($9C40) get Ninja Y
A41B LD HL,$71C6 Guard Y position address
A41E CP (HL) compare Ninja Y to Guard Y
A41F RET NZ
A420 POP HL
A421 LD A,$08
A423 LD ($7346),A set Guard state = $08
A426 LD A,$03
A428 LD ($A3B4),A set Guard counter
A42B LD HL,$D504 Sprite Ninja/Guard punching
A42E LD ($A70F),HL set Guard sprite
A431 JP $A6FF => Draw Guard on tilemap
A434: ?? something about Guard
Used by the routines at B44C and B458.
A434 CALL $A75B Set update flags for Guard, 6x7 tiles
A437 LD HL,$7346 Guard state address
A43A LD A,(HL) get Guard state
Guard state = $0B ?
A43B CP $0B
A43D JP NZ,$A4E7
A440 LD HL,$A3B4 Guard counter address
A443 DEC (HL) decrease Guard counter
A444 LD A,(HL) get Guard counter
A445 CP $06
A447 JP NC,$A6FF => Draw Guard on tilemap
A44A LD A,$10
A44C OUT ($FE),A
A44E LD A,($71C6) get Guard Y
A451 ADD A,A Guard Y * 2
A452 LD ($A45F),A
A455 INC A Guard Y * 2 + 1
A456 LD ($A462),A
A459 LD IX,$A747
A45D LD L,(IX+$04)
A460 LD H,(IX+$05)
A463 LD A,($71C5) get Guard X
A466 LD D,$00
A468 LD E,A
A469 ADD HL,DE
A46A LD DE,$003C
A46D LD A,($71C5) get Guard X
A470 INC A
A471 PUSH HL
A472 LD HL,($71C3) get Current Guard position in tilemap
A475 ADD HL,DE
A476 EX DE,HL
A477 POP HL
A478 LD B,A
A479 LD A,$2B "DEC HL" instruction
A47B LD ($A4D0),A set the instruction
A47E LD A,$1B "DEC DE" instruction
A480 LD ($A4D1),A set the instruction
A483 LD A,($7347) get Guard direction
A486 CP $00 left?
A488 JR Z,$A4A2 yes =>
A48A LD A,$1A 26
A48C SUB B
A48D LD B,A
A48E INC DE
A48F INC DE
A490 INC DE
A491 INC DE
A492 INC DE +5
A493 INC HL
A494 INC HL
A495 INC HL
A496 INC HL
A497 INC HL +5
A498 LD A,$23 "INC HL" instruction
A49A LD ($A4D0),A set the instruction
A49D LD A,$13 "INC DE" instruction
A49F LD ($A4D1),A set the instruction
A4A2 PUSH HL
A4A3 LD HL,$6590 Tile screen 0 start address
A4A6 ADD HL,DE
A4A7 LD A,$64
A4A9 CP (HL)
A4AA JR C,$A4CD
A4AC LD HL,$6F86 Tile screen 5 start address
A4AF ADD HL,DE
A4B0 LD A,(HL)
A4B1 INC A
A4B2 JR NZ,$A4C0
A4B4 LD HL,$678E Tile screen 1 start address
A4B7 ADD HL,DE
A4B8 LD (HL),$01
A4BA POP HL
A4BB PUSH HL
A4BC LD A,$CC
A4BE XOR (HL)
A4BF LD (HL),A
A4C0 LD HL,$698C Tile screen 2 start address
A4C3 ADD HL,DE
A4C4 LD A,(HL)
A4C5 INC A
A4C6 JR Z,$A4CF
A4C8 LD B,$04
A4CA CALL $9DD9 Decrease Energy by B
A4CD LD B,$01
A4CF POP HL
A4D0 DEC HL !!MUT-CMD!! "DEC HL" or "INC HL" instruction
A4D1 DEC DE !!MUT-CMD!! "DEC DE" or "INC DE" instruction
A4D2 DJNZ $A4A2
A4D4 XOR A
A4D5 OUT ($FE),A
A4D7 LD A,($A3B4) get Guard counter
A4DA CP $00
A4DC JP NZ,$A6FF => Draw Guard on tilemap
A4DF LD A,$04
A4E1 LD ($7346),A set Guard state = $04
A4E4 JP $A6FF => Draw Guard on tilemap
Guard state = $14 ?
A4E7 CP $14
A4E9 JR NZ,$A52F
A4EB LD (HL),$04 set Guard state = $04
A4ED LD HL,$D486 Sprite Ninja/Guard standing
A4F0 LD ($A70F),HL set Guard sprite
A4F3 LD HL,($71C3) get Guard position in tilemap
A4F6 LD DE,$003C 60
A4F9 LD B,$00
A4FB LD C,$03
A4FD LD A,($7347) get Guard direction
A500 CP $00 left?
A502 JR Z,$A50B left =>
A504 LD C,$05
A506 LD B,$05
A508 LD DE,$0041 65
A50B ADD HL,DE
A50C LD ($A3A7),HL
A50F LD A,($71C5) get Guard X
A512 ADD A,B
A513 LD IX,$A3A6
A517 LD (IX+$00),$CA
A51B LD (IX+$03),C
A51E LD (IX+$04),C
A521 LD (IX+$06),A
A524 LD A,($71C6) get Guard Y
A527 ADD A,$02 Guard Y + 2
A529 LD (IX+$05),A
A52C JP $A6FF => Draw Guard on tilemap
Guard state = $0A ?
A52F CP $0A
A531 JR NZ,$A56D
A533 LD HL,$D486 Sprite Ninja/Guard standing
A536 LD ($A70F),HL set Guard sprite
A539 LD HL,$9C40 Ninja Y address
A53C LD A,($71C6) get Guard Y
A53F ADD A,$03 Guard Y + 3
A541 CP (HL) compare with Ninja Y
A542 JP C,$A6FF Guard above Ninja => Draw Guard on tilemap
A545 LD A,($A39E)
A548 DEC A
A549 JR Z,$A565
A54B LD A,($7347) get Guard direction: 0 / 1
A54E DEC A $FF left / 0 right
A54F LD A,($71C5) get Guard X
A552 LD HL,$9C41 Ninja X address
A555 JR Z,$A55F right =>
A557 ADD A,$02 for left, Guard X + 2
A559 CP (HL) compare with Ninja X
A55A JP C,$A6FF Guard still behind Ninja => Draw Guard on tilemap
A55D JR $A565
A55F SUB $03 for right, Guard X - 3
A561 CP (HL) compare with Ninja X
A562 JP NC,$A6FF Guard not reached Ninja => Draw Guard on tilemap
A565 LD A,$04 state $04
A567 LD ($7346),A set Guard state = $04
A56A JP $A6FF => Draw Guard on tilemap
Guard state = $09 ? - Guard is dead
A56D CP $09
A56F JR NZ,$A57A
A571 LD HL,$A0B5 Sprite Ninja dead
A574 LD ($A70F),HL set Guard sprite
A577 JP $A6FF => Draw Guard on tilemap
Guard state = $08 ?
A57A CP $08
A57C JR NZ,$A5AA
A57E PUSH HL
A57F LD HL,$A3B4 Guard counter address
A582 DEC (HL) decrease Guard counter
A583 POP HL
A584 JP NZ,$A6FF => Draw Guard on tilemap
A587 LD (HL),$03 set Guard state = walking state 3
A589 LD HL,($71C3)
A58C LD DE,$69CC $69CC = $698C (Tile screen 2) + 64
A58F LD A,($7347) get Guard direction
A592 CP $01 right?
A594 JR Z,$A599 yes =>
A596 LD DE,$69C9 $69C9 = $698C (Tile screen 2) + 61
A599 ADD HL,DE
A59A LD A,(HL)
A59B INC A
A59C LD B,$06
A59E CALL NZ,$FA31 => Decrease Energy by B + Sound
A5A1 LD HL,$D486 Sprite Ninja/Guard standing
A5A4 LD ($A70F),HL set Guard sprite
A5A7 JP $A6FF => Draw Guard on tilemap
Guard state = $05 ? - Preparing for jump-kick
A5AA CP $05
A5AC JR NZ,$A5C7
A5AE PUSH HL
A5AF LD HL,$A3B4 Guard counter address
A5B2 DEC (HL) decrease Guard counter
A5B3 POP HL
A5B4 JP NZ,$A6FF => Draw Guard on tilemap
A5B7 LD A,$03
A5B9 LD ($A3B4),A set Guard counter value
A5BC LD (HL),$06 set Guard state = $06: jump-kick
A5BE LD HL,$D4DA Sprite Ninja/Guard jump-kick
A5C1 LD ($A70F),HL set Guard sprite
A5C4 JP $A6FF => Draw Guard on tilemap
Guard state = $06 ?
A5C7 CP $06
A5C9 JR NZ,$A5FC
A5CB PUSH HL
A5CC LD HL,$A3B4 Guard counter address
A5CF DEC (HL) decrease Guard counter
A5D0 POP HL
A5D1 JP NZ,$A6FF => Draw Guard on tilemap
A5D4 LD A,$01
A5D6 LD ($A3B4),A set Guard counter value
A5D9 LD (HL),$07 set Guard state = $07: back to standing
A5DB LD HL,$D4B0 Sprite Ninja/Guard jumping
A5DE LD ($A70F),HL set Guard sprite
A5E1 LD HL,($71C3) get Guard position in tilemap
A5E4 LD DE,$69CD $69CD = $698C (Tile screen 2) + 65
A5E7 LD A,($7347) get Guard direction
A5EA CP $01 right?
A5EC JR Z,$A5F1 right =>
A5EE LD DE,$69C8 $69C8 = $698C (Tile screen 2) + 60
A5F1 ADD HL,DE now HL = address in Ninja tile screen
A5F2 LD A,(HL) get tile from Ninja screen
A5F3 INC A $FF ?
A5F4 LD B,$0A 10 damage
A5F6 CALL NZ,$FA31 not $FF => Decrease Energy by 10 + Sound
A5F9 JP $A6FF => Draw Guard on tilemap
Guard state = $07 ? - back to standing
A5FC CP $07
A5FE JR NZ,$A614
A600 PUSH HL
A601 LD HL,$A3B4 Guard counter address
A604 DEC (HL) decrease Guard counter
A605 POP HL
A606 JP NZ,$A6FF counter not zero => Draw Guard on tilemap
A609 LD (HL),$03 set Guard state = walking phase 3
A60B LD HL,$D486 Sprite Ninja/Guard standing
A60E LD ($A70F),HL set Guard sprite
A611 JP $A6FF => Draw Guard on tilemap
Guard state is none of the above
A614 LD HL,$9C41 Ninja X address
A617 LD A,($71C5) get Guard X
A61A SUB (HL) compare to Ninja X
A61B JR NZ,$A635 not equal =>
A61D CALL $A418
A620 LD HL,$7346 Guard state address
A623 LD A,$0A
A625 CP (HL) Guard state = $0A ?
A626 JP Z,$A6FF Guard state is $0A => Draw Guard on tilemap
A629 LD A,$04
A62B LD (HL),A set Guard state = $04
A62C LD HL,$D486 Sprite Ninja/Guard standing
A62F LD ($A70F),HL set Guard sprite
A632 JP $A6FF => Draw Guard on tilemap
Guard X != Ninja X
A635 JR C,$A68C Guard X < Ninja X =>
Ninja X < Guard X
A637 LD B,A save value "Guard X - Ninja X"
A638 LD A,($7347) get Guard direction
A63B CP $00 left?
A63D JR Z,$A65B left =>
A63F LD A,($7346) get Guard state
A642 CP $04 Guard state = $04 ?
A644 JR Z,$A654
A646 LD A,$04
A648 LD ($7346),A set Guard state = $04
A64B LD HL,$D486 Sprite Ninja/Guard standing
A64E LD ($A70F),HL set Guard sprite
A651 JP $A6FF => Draw Guard on tilemap
A654 XOR A
A655 LD ($7347),A set Guard direction = left
A658 JP $A6FF => Draw Guard on tilemap
A65B LD A,B restore value "Guard X - Ninja X"
A65C CP $03 3
A65E CALL Z,$A3EE
A661 CP $01 1
A663 CALL Z,$A418
A666 CP $09 9
A668 CALL Z,$A3D1
A66B CP $0C 12
A66D CALL Z,$A3B5
A670 LD A,($7346) get Guard state
A673 CP $04 Guard state = $04 ?
A675 JR NZ,$A67F no =>
A677 LD A,$03 walking phase 3
A679 LD ($7346),A set Guard state
A67C JP $A6FF => Draw Guard on tilemap
A67F LD HL,$71C5 Guard X address
A682 DEC (HL) decrease Guard X - move one tile left
A683 XOR A
A684 LD ($7347),A set Guard direction = left
A687 LD DE,$FFFF
A68A JR $A6DE
Guard X < Ninja X
A68C LD B,A
A68D LD A,($7347) get Guard direction
A690 CP $01 right?
A692 JR Z,$A6AF right =>
A694 LD A,($7346) get Guard state
A697 CP $04 Guard state = $04 ?
A699 JR Z,$A6A8
A69B LD A,$04
A69D LD ($7346),A set Guard state = $04
A6A0 LD HL,$D486 Sprite Ninja/Guard standing
A6A3 LD ($A70F),HL set Guard sprite
A6A6 JR $A6FF => Draw Guard on tilemap
A6A8 LD A,$01
A6AA LD ($7347),A set Guard direction = right
A6AD JR $A6FF => Draw Guard on tilemap
A6AF LD A,B
A6B0 CP $FD -3
A6B2 CALL Z,$A3EE
A6B5 CP $FF -1
A6B7 CALL Z,$A418
A6BA CP $F7 -9
A6BC CALL Z,$A3D1
A6BF CP $F4 -12
A6C1 CALL Z,$A3B5
A6C4 LD A,($7346) get Guard state
A6C7 CP $04 Guard state = $04 ?
A6C9 JR NZ,$A6D2
A6CB LD A,$03
A6CD LD ($7346),A set Guard state = walking phase 3
A6D0 JR $A6FF => Draw Guard on tilemap
A6D2 LD HL,$71C5 Guard X address
A6D5 INC (HL) increase Guard X - move one tile right
A6D6 LD A,$01
A6D8 LD ($7347),A set Guard direction = right
A6DB LD DE,$0001
A6DE LD HL,($71C3) get Guard position in tilemap
A6E1 ADD HL,DE
A6E2 LD ($71C3),HL update Guard position in tilemap
A6E5 LD A,($7346) get Guard state
A6E8 INC A next walking phase
A6E9 AND $03 0..3
A6EB LD ($7346),A set Guard state
A6EE ADD A,A * 2
A6EF LD L,A
A6F0 LD H,$00
A6F2 LD DE,$733B Table of four Ninja/Guard walking sprites
A6F5 ADD HL,DE
A6F6 LD DE,$A70F Guard sprite address
A6F9 LD A,(HL)
A6FA LD (DE),A
A6FB INC HL
A6FC INC DE
A6FD LD A,(HL)
A6FE LD (DE),A
Draw Guard on tilemap
A6FF LD DE,($71C3) get Guard position in tilemap
A703 LD A,($7347) get Guard direction
A706 CP $00 left?
A708 JR NZ,$A728 right =>
A70A LD HL,$6D8D Tile screen 4 start address + 5
A70D ADD HL,DE
A70E LD DE,$D432 !!MUT-ARG!! current Ninja/Guard sprite address
A711 LD B,$07 7 rows
A713 LD C,$06 6 rows
A715 LD A,(DE)
A716 CALL $A775 Translate Ninja tile A into Guard tile
A719 LD (HL),A
A71A DEC HL
A71B INC DE
A71C DEC C
A71D JR NZ,$A715
A71F PUSH DE
A720 LD DE,$0024 36
A723 ADD HL,DE next row
A724 POP DE
A725 DJNZ $A713 continue loop by rows
A727 RET
A728 LD HL,$6D88 Tile screen 4 start address
A72B ADD HL,DE
A72C LD DE,($A70F) get Guard sprite address
A730 LD B,$07 7 rows
A732 LD C,$06 6 rows
A734 LD A,(DE) get tile
A735 CALL $A775 Translate Ninja tile A into Guard tile
A738 LD (HL),A
A739 INC HL
A73A INC DE
A73B DEC C
A73C JR NZ,$A734
A73E PUSH DE
A73F LD DE,$0018 24
A742 ADD HL,DE next row
A743 POP DE
A744 DJNZ $A732 continue loop by rows
A746 RET
A747: Data block at A747
A747 DEFB $61,$45,$81,$45,$A1,$45,$C1,$45
A74F DEFB $E1,$45,$01,$4D,$21,$4D,$41,$4D
A757 DEFB $61,$4D,$81,$4D
A75B: Set update flags for Guard, 6x7 tiles
Used by the routine at A434.
A75B LD DE,($71C3) get Current Guard position in tilemap
A75F LD HL,$678E Tile screen 1 start address
A762 ADD HL,DE now HL in update flags tilemap
A763 LD DE,$0018 24
A766 LD A,$01 "need to update" flag
A768 LD B,$07 7 rows
A76A LD C,$06 6 columns
A76C LD (HL),A set the flag
A76D INC HL next column
A76E DEC C
A76F JR NZ,$A76C continue loop by columns
A771 ADD HL,DE next row
A772 DJNZ $A76A continue loop by rows
A774 RET
A775: Translate Ninja tile A into Guard tile, using A787 table
Used by the routine at A434.
A775 EXX
A776 LD HL,$A787 Translate table address
A779 LD B,$13 19 records
A77B CP (HL) found the tile?
A77C INC HL
A77D JR NZ,$A782
A77F LD A,(HL) get the new tile
A780 EXX
A781 RET
A782 INC HL
A783 DJNZ $A77B continue the loop
A785 EXX
A786 RET
A787: Table used to translate Ninja tiles to Guard tiles, 19 records
A787 DEFB $50,$C7,$51,$DC,$54,$DD,$EA,$DE
A78F DEFB $13,$DF,$15,$E0,$16,$E1,$00,$E2
A797 DEFB $01,$E3,$03,$E4,$04,$E5,$4D,$E6
A79F DEFB $22,$E7,$2F,$E8,$30,$E9,$F4,$E2
A7A7 DEFB $F5,$E3,$E4,$E4,$F6,$E5
A7AD: Pictures of NEAR/HELD items, 32x24px each
A7AD DEFB $00,$00,$00,$00,$00,$00,$00,$00 itemnoth Nothing
A7B5 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A7BD DEFB $00,$00,$00,$00,$00,$00,$00,$00
A7C5 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A7CD DEFB $00,$00,$00,$00,$00,$00,$00,$00
A7D5 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A7DD DEFB $00,$00,$00,$00,$00,$00,$00,$00
A7E5 DEFB $00,$00,$00,$00,$45,$DD,$54,$5E
A7ED DEFB $65,$49,$56,$52,$65,$49,$56,$52
A7F5 DEFB $55,$49,$D5,$50,$55,$49,$55,$56
A7FD DEFB $4D,$49,$54,$D2,$4D,$49,$54,$D2
A805 DEFB $45,$C9,$54,$5E,$00,$00,$00,$00
A80D DEFB $06,$06,$06,$06,$06,$06,$06,$06 attributes
A815 DEFB $06,$06,$06,$06
A819 DEFB $00,$00,$00,$00,$00,$00,$80,$00 itemshur Shuriken
A821 DEFB $00,$00,$80,$00,$00,$00,$80,$00
A829 DEFB $00,$01,$80,$00,$00,$01,$80,$00
A831 DEFB $00,$03,$C0,$00,$00,$7F,$F0,$00
A839 DEFB $00,$0F,$FE,$00,$00,$03,$C0,$00
A841 DEFB $00,$01,$80,$00,$00,$01,$80,$00
A849 DEFB $00,$01,$00,$00,$00,$01,$00,$00
A851 DEFB $00,$01,$00,$00,$00,$00,$00,$00
A859 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A861 DEFB $75,$56,$55,$D2,$45,$55,$55,$1A
A869 DEFB $77,$56,$59,$9E,$15,$55,$55,$16
A871 DEFB $75,$25,$55,$D2,$00,$00,$00,$00
A879 DEFB $0E,$0D,$4F,$0E,$0E,$4D,$0F,$4F attributes
A881 DEFB $06,$06,$06,$06
A885 DEFB $00,$00,$00,$0C,$00,$00,$00,$7C itemnife Knife
A88D DEFB $00,$00,$07,$D8,$00,$00,$0F,$B8
A895 DEFB $00,$00,$1F,$B0,$00,$00,$7F,$60
A89D DEFB $00,$00,$FE,$C0,$00,$01,$F9,$80
A8A5 DEFB $00,$07,$CF,$00,$00,$0F,$BE,$00
A8AD DEFB $00,$BE,$78,$00,$00,$BD,$E0,$00
A8B5 DEFB $03,$5F,$80,$00,$0F,$AC,$00,$00
A8BD DEFB $1F,$50,$00,$00,$DF,$48,$00,$00
A8C5 DEFB $EF,$84,$00,$00,$6F,$04,$00,$00
A8CD DEFB $74,$00,$00,$00,$38,$00,$00,$00
A8D5 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A8DD DEFB $00,$00,$00,$00,$00,$00,$00,$00
A8E5 DEFB $0A,$0F,$0F,$4F,$0A,$0F,$4F,$4F attributes
A8ED DEFB $0A,$0A,$0A,$0A
A8F1 DEFB $00,$00,$00,$00,$00,$00,$00,$00 itemthre ??
A8F9 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A901 DEFB $00,$00,$70,$00,$00,$00,$FC,$00
A909 DEFB $00,$01,$3E,$00,$00,$71,$3F,$00
A911 DEFB $00,$FE,$3F,$C0,$00,$BF,$1F,$E0
A919 DEFB $01,$3F,$9F,$F0,$01,$3F,$DF,$F0
A921 DEFB $01,$1F,$FF,$F0,$00,$9F,$FC,$F0
A929 DEFB $00,$8F,$F9,$F8,$00,$47,$F3,$F8
A931 DEFB $00,$31,$F3,$F0,$01,$88,$7F,$E0
A939 DEFB $01,$C7,$C3,$C0,$00,$00,$00,$06
A941 DEFB $18,$04,$00,$00,$00,$00,$00,$00
A949 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A951 DEFB $0E,$0E,$0E,$0E,$0E,$0E,$0E,$0E attributes
A959 DEFB $0E,$0E,$0E,$0E
A95D DEFB $00,$00,$3E,$00,$00,$00,$F5,$C0 itembrik Brick
A965 DEFB $00,$03,$FA,$B8,$00,$0F,$F5,$56
A96D DEFB $00,$3F,$FB,$AF,$00,$FF,$FE,$FF
A975 DEFB $03,$FF,$F5,$6B,$0F,$FF,$EA,$D5
A97D DEFB $3F,$FF,$57,$AB,$EA,$FE,$AD,$55
A985 DEFB $BD,$55,$7A,$AB,$D7,$BA,$F5,$55
A98D DEFB $AA,$EF,$AA,$AB,$D5,$5F,$55,$56
A995 DEFB $AA,$AA,$AA,$BE,$D5,$57,$55,$78
A99D DEFB $AA,$AA,$AA,$E0,$D5,$57,$57,$80
A9A5 DEFB $6A,$AA,$AE,$00,$1D,$57,$78,$00
A9AD DEFB $03,$AB,$E0,$00,$00,$77,$80,$00
A9B5 DEFB $00,$0C,$00,$00,$00,$00,$00,$00
A9BD DEFB $02,$02,$02,$02,$02,$02,$02,$02 attributes
A9C5 DEFB $02,$02,$02,$02
A9C9 DEFB $00,$00,$00,$00,$00,$00,$00,$00 itempipe Pipe
A9D1 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A9D9 DEFB $7F,$FF,$FF,$FE,$60,$00,$00,$02
A9E1 DEFB $71,$3E,$07,$CA,$7F,$FF,$FF,$FA
A9E9 DEFB $7F,$FF,$FF,$F2,$7F,$FF,$FF,$FE
A9F1 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A9F9 DEFB $00,$00,$00,$00,$00,$00,$00,$00
AA01 DEFB $00,$00,$00,$00,$00,$00,$00,$00
AA09 DEFB $00,$00,$00,$00,$3F,$3E,$7C,$FC
AA11 DEFB $21,$08,$44,$80,$21,$08,$44,$FC
AA19 DEFB $3F,$08,$7C,$80,$20,$08,$40,$80
AA21 DEFB $20,$3E,$40,$FC,$00,$00,$00,$00
AA29 DEFB $4F,$4F,$4F,$4F,$4D,$4D,$4D,$4D attributes
AA31 DEFB $06,$06,$06,$06
AA35 DEFB $00,$00,$00,$00,$00,$00,$00,$00 itemgran Granade
AA3D DEFB $00,$00,$00,$E0,$00,$00,$39,$B0
AA45 DEFB $00,$00,$0D,$18,$00,$0F,$F6,$18
AA4D DEFB $00,$7E,$7B,$70,$00,$CF,$9D,$A0
AA55 DEFB $01,$F2,$6D,$C0,$03,$FD,$F6,$C0
AA5D DEFB $07,$72,$F6,$C0,$0F,$6F,$6A,$C0
AA65 DEFB $0F,$5F,$AA,$C0,$1B,$BF,$BE,$C0
AA6D DEFB $1B,$5F,$DC,$C0,$3A,$EF,$DC,$C0
AA75 DEFB $3D,$F7,$AC,$C0,$3D,$FB,$69,$C0
AA7D DEFB $16,$FD,$F9,$80,$1F,$62,$71,$80
AA85 DEFB $0C,$9F,$E3,$00,$0F,$E7,$C7,$00
AA8D DEFB $03,$FF,$8E,$00,$00,$FE,$00,$00
AA95 DEFB $0C,$0C,$0C,$0C,$0C,$04,$04,$0C attributes
AA9D DEFB $0C,$04,$0C,$0C
AAA1 DEFB $00,$00,$00,$00,$01,$FF,$FF,$F8 itemdisk Disk
AAA9 DEFB $01,$FF,$FF,$F8,$01,$FF,$FF,$F8
AAB1 DEFB $01,$FF,$FF,$F8,$01,$FF,$FF,$F8
AAB9 DEFB $01,$FF,$FF,$F8,$01,$FF,$FF,$F8
AAC1 DEFB $01,$FF,$0C,$F8,$01,$FE,$F7,$F8
AAC9 DEFB $01,$FD,$FB,$F8,$01,$85,$FB,$F8
AAD1 DEFB $01,$85,$FB,$F8,$01,$FD,$FB,$F8
AAD9 DEFB $01,$FE,$F7,$F8,$01,$FF,$0F,$F8
AAE1 DEFB $00,$00,$00,$00,$0F,$84,$FC,$84
AAE9 DEFB $08,$44,$8C,$84,$08,$44,$80,$84
AAF1 DEFB $08,$CC,$FC,$FC,$08,$CC,$0C,$98
AAF9 DEFB $08,$CC,$8C,$98,$0F,$8C,$FC,$98
AB01 DEFB $0C,$08,$08,$08,$0A,$38,$38,$08 attributes
AB09 DEFB $46,$46,$46,$46
AB0D DEFB $00,$00,$00,$00,$00,$06,$80,$00 itembomb Bomb
AB15 DEFB $00,$89,$40,$00,$01,$68,$20,$00
AB1D DEFB $02,$10,$33,$00,$07,$77,$00,$00
AB25 DEFB $07,$77,$FF,$C0,$07,$77,$FF,$C0
AB2D DEFB $07,$77,$DD,$C0,$07,$77,$AA,$D0
AB35 DEFB $07,$77,$AA,$D0,$07,$77,$AA,$D0
AB3D DEFB $07,$77,$DD,$D0,$07,$77,$FF,$C0
AB45 DEFB $07,$77,$FF,$C0,$07,$77,$FF,$C0
AB4D DEFB $00,$00,$00,$00,$0F,$1C,$8B,$C0
AB55 DEFB $08,$A2,$DA,$20,$0F,$22,$AB,$C0
AB5D DEFB $08,$A2,$8A,$20,$08,$A2,$8A,$20
AB65 DEFB $0F,$1C,$8B,$C0,$00,$00,$00,$00
AB6D DEFB $0A,$0A,$08,$08,$0A,$02,$38,$08 attributes
AB75 DEFB $06,$06,$06,$06
AB79 DEFB $00,$00,$00,$00,$00,$00,$00,$00 itemcons Console
AB81 DEFB $00,$00,$00,$00,$00,$00,$00,$00
AB89 DEFB $00,$00,$00,$00,$00,$00,$00,$00
AB91 DEFB $00,$03,$03,$40,$00,$03,$23,$40
AB99 DEFB $00,$0F,$FF,$E0,$00,$0C,$00,$60
ABA1 DEFB $00,$0D,$FF,$FC,$01,$FA,$00,$0C
ABA9 DEFB $0F,$83,$FF,$EC,$0C,$7F,$E0,$2C
ABB1 DEFB $0C,$FF,$FF,$CC,$0F,$FC,$81,$3C
ABB9 DEFB $00,$00,$FF,$00,$00,$00,$FD,$00
ABC1 DEFB $00,$00,$FD,$00,$00,$00,$FD,$00
ABC9 DEFB $00,$00,$FD,$00,$00,$00,$FD,$00
ABD1 DEFB $00,$00,$FD,$00,$00,$00,$FF,$00
ABD9 DEFB $07,$46,$42,$44,$45,$45,$4D,$45 attributes
ABE1 DEFB $07,$07,$0D,$07
ABE5: Explosion image, 3x3 tiles
ABE5 DEFB $04,$66,$06,$03,$4B,$E3,$C3,$43 ade5
ABED DEFB $48,$08,$18,$18,$39,$BB,$FF,$FF
ABF5 DEFB $01,$04,$60,$C0,$86,$1C,$F8,$F1
ABFD DEFB $03,$7F,$1F,$03,$43,$C7,$0F,$AF
AC05 DEFB $88,$01,$81,$01,$65,$E7,$EF,$E0
AC0D DEFB $E0,$C8,$82,$86,$84,$C4,$E1,$F0
AC15 DEFB $0F,$9E,$BC,$30,$61,$C3,$83,$10
AC1D DEFB $7D,$38,$38,$30,$10,$11,$10,$50
AC25 DEFB $F1,$F9,$38,$1C,$06,$03,$10,$41
AC2D: Data block at AC2D
AC2D DEFB $00,$00,$00,$00,$00,$00,$00,$00
AC35 DEFB $00,$00,$00,$00,$00,$00,$00,$00
AC3D DEFB $00,$00,$00,$00,$00,$00,$00
AC44: Reset Guard data and Dog data
Used by the routine at B5C7.
AC44 LD HL,$AC72 address for Table of Guard data addresses
AC47 LD B,$18 24
AC49 LD E,(HL)
AC4A INC HL
AC4B LD D,(HL) now DE = Guard data address
AC4C INC HL
AC4D PUSH HL
AC4E LD HL,$0004
AC51 ADD HL,DE
AC52 LD (HL),$0A set initial Guard energy = 10
AC54 POP HL
AC55 DJNZ $AC49
AC57 LD HL,$ACA2 address for Table of Dog data addresses
AC5A LD B,$14 20
AC5C LD E,(HL)
AC5D INC HL
AC5E LD D,(HL)
AC5F INC HL
AC60 PUSH HL
AC61 LD HL,$0004
AC64 ADD HL,DE
AC65 LD A,$41
AC67 CP (HL)
AC68 JR NC,$AC6E
AC6A LD A,(HL)
AC6B SUB $42
AC6D LD (HL),A
AC6E POP HL
AC6F DJNZ $AC5C
AC71 RET
AC72: Table of Guard data addresses, 24 records
AC72 DEFW $A26B,$A265,$A25F,$A259
AC7A DEFW $A253,$A217,$A24D,$A247
AC82 DEFW $A241,$A23B,$A235,$A22F
AC8A DEFW $A229,$A223,$A21D,$A211
AC92 DEFW $A20B,$A205,$A1FF,$A1F9
AC9A DEFW $A1F3,$A1ED,$A1E7,$A1E1
ACA2: Table of Dog data addresses, 20 records
ACA2 DEFW $A31B,$A311,$A307,$A2FD
ACAA DEFW $A2F3,$A2DF,$A2D5,$A2CB
ACB2 DEFW $A2C1,$A2B7,$A2A3,$A285
ACBA DEFW $A325,$A2AD,$A28F,$A27B
ACC2 DEFW $A271,$A2E9,$A299,$71D6
ACCA: Draw game screen frames and indicator text
Used by the routine at B5C7.
ACCA EXX
ACCB LD DE,$5800
ACCE EXX
ACCF LD HL,$4000 Screen start address
ACD2 LD DE,$AD65 Game screen frames/indicators RLE encoded sequence
ACD5 LD A,(DE)
ACD6 PUSH DE
ACD7 LD C,$01
ACD9 CP $FF
ACDB JR Z,$AD1D
ACDD CP $17
ACDF JR C,$ACE8
ACE1 SUB $14
ACE3 LD C,A
ACE4 POP DE
ACE5 INC DE
ACE6 LD A,(DE)
ACE7 PUSH DE
ACE8 PUSH HL
ACE9 LD H,$00
ACEB LD L,A
ACEC PUSH HL
ACED POP DE
ACEE ADD HL,HL
ACEF ADD HL,HL
ACF0 ADD HL,HL * 8
ACF1 ADD HL,DE * 9
ACF2 LD DE,$AE02 Indicator tiles address
ACF5 ADD HL,DE
ACF6 POP DE
ACF7 LD B,$08
ACF9 PUSH HL
ACFA PUSH DE
ACFB LD A,(HL)
ACFC LD (DE),A
ACFD INC HL
ACFE INC D
ACFF DJNZ $ACFB
AD01 LD A,(HL)
AD02 EXX
AD03 LD (DE),A
AD04 INC DE
AD05 EXX
AD06 POP DE
AD07 POP HL
AD08 RR D
AD0A RR D
AD0C RR D
AD0E INC DE
AD0F RL D
AD11 RL D
AD13 RL D
AD15 DEC C
AD16 JR NZ,$ACF7
AD18 EX DE,HL
AD19 POP DE
AD1A INC DE
AD1B JR $ACD5
AD1D POP DE
AD1E LD DE,$5067
AD21 LD HL,$AD4A Indicator messages address
AD24 LD C,$0D
AD26 CALL $AED1 Print string "PAY : $ XXXXX"
AD29 LD DE,$5097
AD2C LD C,$02
AD2E CALL $AED1 Print string "99"
AD31 LD DE,$50C1
AD34 LD C,$04
AD36 CALL $AED1 Print string "HELD"
AD39 LD DE,$50D6
AD3C LD C,$04
AD3E CALL $AED1 Print string "TIME"
AD41 LD DE,$50DB
AD44 LD C,$04
AD46 CALL $AED1 Print string "NEAR"
AD49 RET
AD4A: Indicator messages
AD4A DEFM "PAY : $ "
AD52 DEFM "00000" Pay value text
AD57 DEFM "99" Indicator time value
AD59 DEFM "HELDTIMENEAR"
AD65: Game screen frames/indicators RLE encoded sequence
AD65 DEFB $00,$32,$01,$02,$03,$32,$0B,$04
AD6D DEFB $03,$32,$0B,$04,$03,$32,$0B,$04
AD75 DEFB $03,$32,$0B,$04,$03,$32,$0B,$04
AD7D DEFB $03,$32,$0B,$04,$03,$32,$0B,$04
AD85 DEFB $03,$32,$0B,$04,$03,$32,$0B,$04
AD8D DEFB $03,$32,$0B,$04,$03,$32,$0B,$04
AD95 DEFB $03,$32,$0B,$04,$03,$32,$0B,$04
AD9D DEFB $03,$32,$0B,$04,$03,$32,$0B,$04
ADA5 DEFB $03,$32,$0B,$04,$03,$32,$0B,$04
ADAD DEFB $05,$18,$06,$07,$23,$06,$07,$18
ADB5 DEFB $06,$07,$18,$06,$08,$03,$18,$0B
ADBD DEFB $03,$23,$0B,$03,$0E,$0F,$0F,$10
ADC5 DEFB $03,$18,$0B,$04,$03,$18,$0B,$05
ADCD DEFB $23,$06,$08,$11,$0B,$0B,$12,$03
ADD5 DEFB $18,$0B,$04,$03,$18,$0B,$03,$23
ADDD DEFB $16,$03,$13,$14,$14,$15,$03,$18
ADE5 DEFB $0B,$04,$03,$18,$09,$03,$23,$16
ADED DEFB $03,$18,$09,$03,$18,$09,$04,$0A
ADF5 DEFB $18,$06,$0C,$23,$06,$0C,$18,$06
ADFD DEFB $0C,$18,$06,$0D,$FF
AE02: Tiles for game screen frames/indicators, 9 bytes each
AE02 DEFB $30,$08,$04,$05,$02,$8D,$70,$1C,$02
AE0B DEFB $22,$22,$14,$E7,$3C,$24,$44,$00,$02
AE14 DEFB $00,$10,$21,$22,$A4,$64,$A8,$30,$02
AE1D DEFB $10,$50,$3C,$08,$08,$6A,$9C,$08,$02
AE26 DEFB $10,$48,$39,$0E,$08,$78,$17,$10,$02
AE2F DEFB $0A,$9C,$68,$04,$03,$4C,$38,$14,$02
AE38 DEFB $00,$11,$22,$62,$BF,$44,$44,$42,$02
AE41 DEFB $00,$24,$22,$22,$A7,$66,$5A,$89,$02
AE4A DEFB $10,$78,$27,$20,$C0,$2E,$70,$10,$02
AE53 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$06
AE5C DEFB $08,$0E,$08,$36,$43,$02,$04,$18,$02
AE65 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$0F
AE6E DEFB $50,$72,$54,$CE,$25,$28,$28,$08,$02
AE77 DEFB $10,$3C,$92,$61,$A0,$18,$04,$04,$02
AE80 DEFB $7F,$80,$80,$87,$88,$88,$88,$88,$0F
AE89 DEFB $FF,$00,$00,$FF,$00,$00,$00,$00,$0F
AE92 DEFB $FE,$01,$01,$E1,$11,$11,$11,$11,$0F
AE9B DEFB $88,$88,$88,$88,$88,$88,$88,$88,$0F
AEA4 DEFB $11,$11,$11,$11,$11,$11,$11,$11,$0F
AEAD DEFB $88,$88,$88,$88,$87,$80,$80,$7F,$0F
AEB6 DEFB $00,$00,$00,$00,$FF,$00,$00,$FF,$0F
AEBF DEFB $11,$11,$11,$11,$E1,$01,$01,$FE,$0F
AEC8 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$0A
AED1: Print string with standard font
Used by the routines at 6590, ACCA, AEF0, AF9C, B005, B040, B4DE, B77B, BEB3, BFD5, DEC1, DF60, E097 and E2A7.
Input
C Length
HL string address
DE screen address
AED1 LD A,(HL)
AED2 PUSH HL
AED3 LD H,$00
AED5 LD L,A
AED6 ADD HL,HL
AED7 ADD HL,HL
AED8 ADD HL,HL * 8
AED9 PUSH DE
AEDA LD DE,$3C00
AEDD ADD HL,DE
AEDE POP DE
AEDF PUSH DE
AEE0 LD B,$08
AEE2 LD A,(HL)
AEE3 LD (DE),A
AEE4 INC HL
AEE5 INC D
AEE6 DJNZ $AEE2
AEE8 POP DE
AEE9 POP HL
AEEA INC DE
AEEB INC HL
AEEC DEC C
AEED JR NZ,$AED1
AEEF RET
AEF0: Routine at AEF0
Used by the routine at BC0D.
AEF0 LD HL,$5800 attributes screen address
AEF3 LD C,$10
AEF5 LD B,$0C
AEF7 LD (HL),$08
AEF9 INC HL
AEFA DJNZ $AEF7
AEFC LD B,$14
AEFE LD (HL),$0E
AF00 INC HL
AF01 DJNZ $AEFE
AF03 DEC C
AF04 JR NZ,$AEF5
AF06 LD B,$00
AF08 LD (HL),$20
AF0A INC HL
AF0B DJNZ $AF08
AF0D LD HL,$B066
AF10 LD B,$01
AF12 PUSH HL
AF13 LD DE,$AD52 Pay value text address
AF16 LD C,$01
AF18 LD A,(DE)
AF19 SUB (HL)
AF1A JR Z,$AF22
AF1C JP P,$AF38
AF1F JP $AF2A
AF22 INC C
AF23 INC HL
AF24 INC DE
AF25 LD A,C
AF26 CP $04
AF28 JR NZ,$AF18
AF2A INC B
AF2B POP HL
AF2C LD DE,$000D
AF2F ADD HL,DE
AF30 LD A,B
AF31 CP $0B
AF33 JR NZ,$AF12
AF35 JP $B005 => Print table of records
AF38 PUSH BC
AF39 LD DE,$402C
AF3C LD HL,$B0F2
AF3F LD C,$0F
AF41 CALL $AED1 Print string "EXCELLENT WORK."
AF44 LD DE,$408C
AF47 LD C,$0E
AF49 CALL $AED1 Print string "YOU ARE ONE OF"
AF4C LD DE,$40AC
AF4F LD C,$0D
AF51 CALL $AED1 Print string " OUR TEN BEST"
AF54 LD DE,$40CC
AF57 LD C,$10
AF59 CALL $AED1 Print string "NINJA SABOTEURS."
AF5C LD DE,$480C
AF5F LD C,$11
AF61 CALL $AED1 Print string "ENTER YOUR NAME..."
AF64 POP BC
AF65 LD C,$0A
AF67 PUSH BC
AF68 LD DE,$484D screen address
AF6B LD HL,$B0E8 address of string 10 spaces
AF6E CALL $AED1 Print string
AF71 LD B,$01
AF73 EXX
AF74 LD DE,$594D
AF77 EXX
AF78 LD DE,$484D
AF7B LD HL,$B0E8 address of string 10 spaces
This entry point is used by the routine at AF9C.
AF7E PUSH BC
AF7F EXX
AF80 LD A,$E3
AF82 LD (DE),A
AF83 EXX
This entry point is used by the routine at AF9C.
AF84 XOR A
AF85 LD ($5C08),A clear LASTK
AF88 RST $38
AF89 LD A,($5C08) get LASTK
AF8C CP $5B
AF8E JP M,$AF93
AF91 SUB $20
AF93 CP $20
AF95 JR Z,$AFAA
AF97 CP $0C
AF99 JP $F968
AF9C: Routine at AF9C
Used by the routine at F913.
AF9C CP $0D
AF9E JR Z,$AFCD
AFA0 CP $41
AFA2 JP M,$AF84
AFA5 CP $5C
AFA7 JP P,$AF84
This entry point is used by the routine at AEF0.
AFAA LD (HL),A
AFAB LD C,$01
AFAD CALL $AED1 Print string
AFB0 EXX
AFB1 LD A,$0E
AFB3 LD (DE),A
AFB4 INC DE
AFB5 EXX
AFB6 POP BC
AFB7 INC B
AFB8 LD A,B
AFB9 CP $0B
AFBB JR Z,$AFD3
AFBD PUSH BC
This entry point is used by the routine at B040.
AFBE PUSH DE
AFBF PUSH HL
AFC0 CALL $028E KEY-SCAN
AFC3 INC DE
AFC4 LD A,D
AFC5 OR E
AFC6 JR NZ,$AFC0
AFC8 POP HL
AFC9 POP DE
AFCA POP BC
AFCB JR $AF7E
AFCD POP BC
AFCE EXX
AFCF LD A,$0E
AFD1 LD (DE),A
AFD2 EXX
AFD3 POP BC
AFD4 LD A,$0A
AFD6 SUB B
AFD7 JR Z,$AFEC
AFD9 LD B,A
AFDA LD HL,$B0E7
AFDD LD DE,$B0DA
AFE0 LD C,$0D
AFE2 LD A,(DE)
AFE3 LD (HL),A
AFE4 DEC HL
AFE5 DEC DE
AFE6 DEC C
AFE7 JR NZ,$AFE2
AFE9 DEC B
AFEA JR NZ,$AFE0
AFEC POP HL
AFED LD DE,$AD52 Pay value text address
AFF0 LD C,$03
AFF2 LD A,(DE)
AFF3 LD (HL),A
AFF4 INC HL
AFF5 INC DE
AFF6 DEC C
AFF7 JR NZ,$AFF2
AFF9 LD DE,$B0E8 address of string 10 spaces
AFFC LD C,$0A
AFFE LD A,(DE)
AFFF LD (HL),A
B000 INC HL
B001 INC DE
B002 DEC C
B003 JR NZ,$AFFE
B005: Print table of records
Used by the routine at AEF0.
B005 LD B,$0A
B007 LD HL,$B066
B00A LD DE,$402C
B00D PUSH BC
B00E PUSH HL
B00F LD HL,$B065
B012 LD C,$01
B014 CALL $AED1 Print string
B017 POP HL
B018 LD C,$03
B01A CALL $AED1 Print string
B01D PUSH HL
B01E LD HL,$B061
B021 LD C,$04
B023 CALL $AED1 Print string
B026 POP HL
B027 LD C,$0A
B029 CALL $AED1 Print string
B02C EX DE,HL
B02D PUSH DE
B02E LD DE,$000E +14
B031 ADD HL,DE
B032 POP DE
B033 EX DE,HL
B034 POP BC
B035 LD A,B
B036 CP $04
B038 JR NZ,$B03D
B03A LD DE,$480C
B03D DJNZ $B00D
B03F RET
B040: Routine at B040
Used by the routine at F913.
B040 POP BC
B041 LD A,B
B042 CP $01
B044 JR Z,$B05D
B046 DEC B
B047 PUSH BC
B048 LD A,$20
B04A LD (HL),A
B04B LD C,$01
B04D CALL $AED1 Print string
B050 DEC HL
B051 DEC HL
B052 DEC DE
B053 DEC DE
B054 EXX
B055 LD A,$0E
B057 LD (DE),A
B058 DEC DE
B059 EXX
B05A JP $AFBE
B05D PUSH BC
B05E JP $AFBE
B061: Message at B061
B061 DEFM "00 $"
B066: Table of records
B066 DEFM "020 THE CAT "
B073 DEFM "018JOOLZ "
B080 DEFM "016MICKY "
B08D DEFM "014DAVE "
B09A DEFM "012GEOFF P "
B0A7 DEFM "010SHARFACE "
B0B4 DEFM "008HOLLY "
B0C1 DEFM "006BRAD "
B0CE DEFM "004TOZZY "
B0DB DEFM "002MAT LE FAT"
B0E8: String 10 spaces
B0E8 DEFM " "
B0F2: Message at B0F2
B0F2 DEFM "EXCELLENT WORK."
B101 DEFM "YOU ARE ONE OF"
B10F DEFM " OUR TEN BEST"
B11C DEFM "NINJA SABOTEURS."
B12C DEFM "ENTER YOUR NAME..."
B13E: Tile buffer
B13E DEFB $FE,$82,$A2,$00,$FE,$FF,$FF,$7E Pixel bytes
B146 DEFB $32 Attribute byte
B147 DEFB $30 Background attribute byte
B148: Draw tile map on the screen
Used by the routines at B724 and B937.
B148 LD HL,$5821 Screen attributes address
B14B LD B,$11 17 rows
B14D LD ($7233),HL
B150 LD HL,$6F86 Tile screen 5 start address
B153 LD ($7235),HL
B156 LD HL,$6D88 Tile screen 4 start address
B159 LD ($7237),HL
B15C LD HL,$678E Tile screen 1 start address
B15F LD DE,$4021 screen address where game screen starts
B162 EXX
B163 LD HL,$6590 Tile screen 0 start address
B166 LD DE,$698C Tile screen 2 start address
B169 LD BC,$6B8A Tile screen 3 start address
B16C EXX
Loop start
B16D LD C,$1E 30 column
B16F XOR A
B170 CP (HL) Check "need update" flag in Tile screen 1
B171 JP Z,$B2A9 zero => Skip this tile rendering
B174 PUSH HL
B175 PUSH BC
B176 PUSH DE
Process Tile screen 0 - background tile
B177 EXX
B178 LD A,(HL) get byte from Tile screen 0 tile
B179 EXX
B17A LD HL,$B1A3 for non-$FF, don't skip Ninja tile processing
B17D CP $FF $FF - "earth" background?
B17F JR NZ,$B184 byte <> $FF =>
B181 LD HL,$B1F9 for $FF, skip Ninja tile processing
B184 LD ($B1A1),HL save the chosen jump address ($B1A3 or $B1F9)
B187 LD H,$00
B189 LD L,A
B18A PUSH HL
B18B ADD HL,HL
B18C ADD HL,HL
B18D ADD HL,HL
B18E POP DE
B18F ADD HL,DE * 9
B190 LD DE,$F700 Background tiles start address
B193 ADD HL,DE now HL = tile data address
B194 LD DE,$B13E Tile buffer address
B197 LD B,$09 8 pixel bytes + attribute byte
B199 LD A,(HL) get byte from tile data
B19A LD (DE),A store the byte to tile buffer
B19B INC HL move to next byte in tile data
B19C INC DE move to next byte in tile buffer
B19D DJNZ $B199 loop for 9 bytes
B19F LD (DE),A save attribute byte once more
B1A0 JP $B1A3 !!MUT-ARG!! $B1A3 or $B1F9
Process Tile screen 2 tile - Ninja
B1A3 EXX
B1A4 LD A,(DE) get tile from Tile Screen 2 tile
B1A5 EXX
B1A6 CP $FF $FF - transparent?
B1A8 JR Z,$B1F9 $FF => skip Ninja tile drawing
B1AA LD L,A
B1AB CP $C8
B1AD JR C,$B1D5
B1AF CP $F4
B1B1 JR NC,$B1D5
B1B3 LD H,$02
B1B5 CP $DA
B1B7 JR NC,$B1CC
B1B9 LD H,$05
B1BB CP $D8
B1BD JR NC,$B1CC
B1BF LD H,$07
B1C1 LD A,($B146) get attribute byte from the tile buffer
B1C4 AND $38
B1C6 CP $20
B1C8 JR C,$B1CC
B1CA LD H,$01
B1CC LD A,($B146) get attribute byte from the tile buffer
B1CF AND $F8
B1D1 OR H
B1D2 LD ($B146),A set attribute byte
B1D5 LD H,$00
B1D7 ADD HL,HL
B1D8 ADD HL,HL
B1D9 ADD HL,HL
B1DA ADD HL,HL * 16
B1DB LD DE,$E700 Ninja tiles base address
B1DE ADD HL,DE now HL = tile data address
B1DF LD B,$08 8 bytes
B1E1 LD DE,$B13E Tile buffer address
B1E4 INC HL
B1E5 LD A,(DE) get byte from tile buffer
B1E6 LD C,A
B1E7 LD A,(HL) get byte from tile data (mask)
B1E8 CALL $B2E8 Mirror byte if needed
B1EB AND C AND with byte from the buffer - apply the mask
B1EC LD C,A
B1ED DEC HL
B1EE LD A,(HL) get byte from tile data (pixels)
B1EF CALL $B2E8 Mirror byte if needed
B1F2 OR C OR with the byte from buffer - apply pixels
B1F3 INC HL
B1F4 INC HL
B1F5 LD (DE),A
B1F6 INC DE
B1F7 DJNZ $B1E4 loop for all 8 bytes
B1F9 JP $B1FC
Process Tile screen 3 tile - Dog
B1FC EXX
B1FD PUSH BC
B1FE EXX
B1FF POP BC
B200 LD A,(BC) get tile from Tile screen 3
B201 CP $FF $FF - transparent?
B203 JR Z,$B230 $FF => skip Dog tile drawing
B205 CALL $B2FE Exchange $7239 (Ninja direction) and $71CD (Dog direction)
B208 LD H,$00
B20A LD L,A
B20B ADD HL,HL
B20C ADD HL,HL
B20D ADD HL,HL
B20E ADD HL,HL * 16
B20F LD DE,$F0F0 Dog tiles base address
B212 ADD HL,DE now HL = tile data address
B213 LD B,$08
B215 LD DE,$B13E Tile buffer address
B218 INC HL
B219 LD A,(DE) get byte from tile buffer
B21A LD C,A
B21B LD A,(HL)
B21C CALL $B2E8 Mirror byte if needed
B21F AND C
B220 LD C,A
B221 DEC HL
B222 LD A,(HL)
B223 CALL $B2E8 Mirror byte if needed
B226 OR C
B227 INC HL
B228 INC HL
B229 LD (DE),A
B22A INC DE
B22B DJNZ $B218
B22D CALL $B2FE Exchange $7239 (Ninja direction) and $71CD (Dog direction)
Process Tile screen 4 tile - Guard
B230 LD HL,($7237) get address in Tile screen 4
B233 LD A,(HL) get tile from the tilemap
B234 CP $FF $FF - transparent?
B236 JR Z,$B263 $FF => skip Guard tile drawing
B238 LD H,$00
B23A LD L,A
B23B ADD HL,HL
B23C ADD HL,HL
B23D ADD HL,HL
B23E ADD HL,HL * 16
B23F LD DE,$E700 tiles base address
B242 ADD HL,DE now HL = tile data address
B243 LD B,$08
B245 LD DE,$B13E Tile buffer address
B248 CALL $B30F Exchange $7239 (Ninja direction) and $7347 (Guard direction)
B24B INC HL
B24C LD A,(DE) get byte from tile buffer
B24D LD C,A
B24E LD A,(HL) get byte from tile data (mask)
B24F CALL $B2E8 Mirror byte if needed
B252 AND C AND with byte from buffer - masking
B253 LD C,A
B254 DEC HL
B255 LD A,(HL) get byte from tile data (pixels)
B256 CALL $B2E8 Mirror byte if needed
B259 OR C OR with byte from buffer
B25A INC HL
B25B INC HL
B25C LD (DE),A save result byte to tile buffer
B25D INC DE
B25E DJNZ $B24B loop for all 8 bytes
B260 CALL $B30F Exchange $7239 (Ninja direction) and $7347 (Guard direction)
Process Tile screen 5 tile - front
B263 LD HL,($7235) get address in Tile screen 5
B266 LD A,(HL) get tile from the tilemap
B267 CP $FF $FF - transparent?
B269 JR Z,$B293 $FF => skip front tile drawing
B26B LD H,$00
B26D LD L,A
B26E LD A,($B147) get Background tile attribute
B271 LD ($B146),A set it as current tile attribute
B274 PUSH HL
B275 ADD HL,HL
B276 ADD HL,HL
B277 ADD HL,HL
B278 ADD HL,HL * 16
B279 POP DE
B27A ADD HL,DE * 17
B27B LD DE,$D600 Front tiles base address
B27E ADD HL,DE now HL = address of tile data
B27F LD B,$08
B281 LD DE,$B13E Tile buffer address
B284 LD A,(DE) get byte from buffer
B285 AND (HL) AND with mask byte
B286 INC HL move to next byte in tile data
B287 OR (HL) OR with pixel byte
B288 LD (DE),A store result back to tile buffer
B289 INC HL move to next byte in tile data
B28A INC DE move to next buffer byte
B28B DJNZ $B284 loop for all 8 bytes
B28D LD A,(HL) get attribute byte from the tile data
B28E CP $FF $FF?
B290 JR Z,$B293 $FF => skip
B292 LD (DE),A set as current attribute
Draw prepared tile on the screen
B293 NOP
B294 POP DE
B295 PUSH DE
B296 LD HL,$B13E Tile buffer address
B299 LD B,$08 8 bytes
B29B LD A,(HL) get byte from the buffer
B29C LD (DE),A put byte on the screen
B29D INC HL
B29E INC D
B29F DJNZ $B29B loop for all 8 bytes
B2A1 LD A,(HL) get attribute byte from the buffer
B2A2 LD HL,($7233) get address in screen attributes
B2A5 LD (HL),A put the attribute
Next column
B2A6 POP DE
B2A7 POP BC
B2A8 POP HL
B2A9 INC DE Next address in screen
B2AA INC HL Next address in Tile screen 1
B2AB EXX
B2AC INC DE
B2AD INC HL Next address in Tile screen 0
B2AE INC BC
B2AF EXX
B2B0 PUSH HL
B2B1 LD HL,($7233)
B2B4 INC HL Next address in screen attributes
B2B5 LD ($7233),HL
B2B8 LD HL,($7235)
B2BB INC HL Next address in Tile screen 5
B2BC LD ($7235),HL
B2BF LD HL,($7237)
B2C2 INC HL Next address in Tile screen 4
B2C3 LD ($7237),HL
B2C6 POP HL
B2C7 DEC C Decrease column counter
B2C8 JP NZ,$B16F Continue loop by columns
Next tile row
B2CB RR D
B2CD RR D
B2CF RR D
B2D1 INC DE
B2D2 INC DE
B2D3 RL D
B2D5 RL D
B2D7 RL D
B2D9 PUSH HL
B2DA LD HL,($7233) get screen attributes address
B2DD INC HL
B2DE INC HL increase address by 2 - next row
B2DF LD ($7233),HL set screen attributes address
B2E2 POP HL
B2E3 DEC B Decrease line counter
B2E4 JP NZ,$B16D Continue loop by lines
B2E7 RET
B2E8: Mirror byte if needed
Used by the routine at B148.
B2E8 PUSH BC
B2E9 LD B,A
B2EA LD A,($7239) get Ninja direction
B2ED CP $00 left?
B2EF LD A,B
B2F0 POP BC
B2F1 RET NZ right - no need to mirror => return
B2F2 LD IX,$72BA Mirror table half address
B2F6 LD ($B2FB),A
B2F9 LD A,(IX+$7E)
B2FC RET
B2FD: Data block at B2FD
B2FD DEFB $C3 Counter for Ninja/Guard head tile change
B2FE: Exchange $7239 (Ninja direction) and $71CD (dog direction)
Used by the routine at B148.
B2FE PUSH AF
B2FF LD A,($7239) get Ninja direction
B302 PUSH AF
B303 LD A,($71CD) get Dog direction
B306 LD ($7239),A
B309 POP AF
B30A LD ($71CD),A
B30D POP AF
B30E RET
B30F: Exchange $7239 (Ninja direction) and $7347 (Guard direction)
Used by the routine at B148.
B30F PUSH AF
B310 LD A,($7239) get Ninja direction
B313 PUSH AF
B314 LD A,($7347) get Guard direction
B317 LD ($7239),A
B31A POP AF
B31B LD ($7347),A
B31E POP AF
B31F RET
B320: Object procedure: flip trigger "D": set/remove wall in room 9739
B320 LD A,($9756)
B323 XOR $06
B325 LD ($9756),A
B328 JR $B350 => Change Console color in NEAR
B32A: Object procedure: flip trigger "E": set/remove wall in room 97A6
B32A LD A,($97D0)
B32D XOR $FF
B32F LD ($97D0),A
B332 JR $B350 => Change Console color in NEAR
B334: Object procedure: flip trigger "C": set/remove wall in room 8D5C
B334 LD A,($8DBC)
B337 XOR $06
B339 LD ($8DBC),A
B33C JR $B350 => Change Console color in NEAR
B33E: Object procedure: flip trigger "B": set/remove wall in room 8F20
B33E LD A,($8F32)
B341 XOR $08
B343 LD ($8F32),A
B346 JR $B350 => Change Console color in NEAR
B348: Object procedure: flip trigger "A": set/remove wall in room 7F48
B348 LD A,($7F7B)
B34B XOR $09
B34D LD ($7F7B),A
Change Console color in NEAR, so we see that console action worked
B350 LD HL,$5A7B address in screen attributes
B353 LD DE,$001C 28
B356 LD C,$03 3 rows
B358 LD B,$04 4 columns
B35A LD A,(HL)
B35B XOR $06
B35D LD (HL),A
B35E INC HL
B35F DJNZ $B35A
B361 ADD HL,DE next row
B362 DEC C
B363 JR NZ,$B358
B365 JP $B8D0 => Update Ninja on tilemap
B368: Room 97A6 initialization
B368 LD A,($97D0) get trigger "E" value
B36B LD ($66F5),A
B36E JP $A18D => Finish Room 97A6 initialization
B371: Play melody ??; HL = melody address
Used by the routine at BC55.
B371 DI
B372 LD C,$C8
B374 LD A,(HL)
B375 AND $07
B377 LD B,A
B378 INC HL
B379 LD A,$10
B37B OUT ($FE),A
B37D PUSH BC
B37E LD A,(HL)
B37F AND $3F
B381 LD B,A
B382 DJNZ $B382
B384 POP BC
B385 XOR A
B386 OUT ($FE),A
B388 DJNZ $B379
B38A INC HL
B38B DEC C
B38C JR NZ,$B374
B38E RET
B38F: Room token #00: Barrel, 3x3 tiles 7C21; params: 2 bytes (address)
B38F POP HL
B390 INC HL
B391 LD A,(HL)
B392 INC HL
B393 PUSH HL
B394 LD H,(HL)
B395 LD L,A
B396 LD DE,$7C21 Tile block address
B399 LD C,$03
B39B LD B,$03
B39D LD A,(DE)
B39E LD (HL),A
B39F INC DE
B3A0 INC HL
B3A1 DJNZ $B39D
B3A3 PUSH DE
B3A4 LD DE,$001B
B3A7 ADD HL,DE
B3A8 POP DE
B3A9 DEC C
B3AA JR NZ,$B39B
B3AC JP $734A => B702 Proceed to the next room token
B3AF: Unused
B3AF DEFS $01
B3B0: Routine at B3B0
Used by the routine at F913.
B3B0 LD HL,$C681
B3B3 LD ($982D),HL
B3B6 LD HL,$B674 current dog data address
B3B9 LD ($9DD1),HL
B3BC LD HL,$C6A5
B3BF LD ($7C9C),HL
B3C2 LD HL,$C671
B3C5 LD ($947E),HL
B3C8 LD ($93E1),HL
B3CB LD HL,$B422
B3CE LD ($7BD4),HL
B3D1 LD HL,$C64C
B3D4 LD ($7920),HL
B3D7 LD HL,$B702
B3DA LD ($734B),HL
B3DD LD B,$00
B3DF LD D,$80
B3E1 LD HL,$723A Mirror table address
B3E4 LD C,$08
B3E6 LD A,D
B3E7 RR A
B3E9 RL E
B3EB DEC C
B3EC JR NZ,$B3E7
B3EE LD (HL),E store reversed byte
B3EF INC HL
B3F0 INC D
B3F1 DJNZ $B3E4
B3F3 EXX
B3F4 PUSH HL
B3F5 EXX
B3F6 LD A,$01
B3F8 LD ($5C09),A set REPDEL = 1
B3FB LD ($5C0A),A set REPPER = 1
B3FE JP $B5C7
B401: Unused
B401 DEFS $09
B40A: Initialize a guard
Used by the routines at A0DF, A1AF, B425 and B437.
Input
HL Guard data address, see A1E1
B40A LD DE,$71C3 address to store guard data
B40D LD ($B696),HL Save Guard data address
B410 LD BC,$0004
B413 LDIR
B415 LD A,(HL)
B416 LD ($7346),A set Guard state
B419 INC HL
B41A LD A,(HL) get Guard direction from Guard data
B41B LD ($7347),A set Guard direction
B41E RET
B41F: Standard room procedure (for 63 rooms)
B41F JP $B937
B422: Standard room initialization (for 60 rooms)
Used by the routines at A0DF, A1AF, A353 and F973.
B422 JP $B724 => Finish room initialization
B425: Rooms 7C9C/92EF initialization (redirect from 791B)
Used by the routine at 791B.
B425 LD HL,$C66B Guard data address
B428 CALL $B40A Initialize a guard
B42B JP $B724 => Finish room initialization
B42E: Room 79C6 initialization
B42E LD HL,$71D6 Dog data address
B431 CALL $9DCD Initialize a dog
B434 JP $B724 => Finish room initialization
B437: UNUSED: Room XXXX initialization
B437 LD HL,$71D6
B43A CALL $9DCD Initialize a dog
B43D LD HL,$C66B
B440 CALL $B40A Initialize a guard
B443 JP $B724 => Finish room initialization
B446: Room B513 procedure (initial Room)
B446 CALL $B4FA Processing in the initial room
B449 JP $B937 Standard room procedure
B44C: Room procedure (for 19 rooms with a guard) (redirect from 7918)
Used by the routine at 7918.
B44C CALL $A434 Process a guard
B44F JP $B937 Standard room procedure
B452: Room procedure (for 18 rooms with a dog)
B452 CALL $9C44 Process a dog
B455 JP $B937 Standard room procedure
B458: Room procedure (for 5 rooms with a guard and a dog)
B458 CALL $9C44 Process a dog
B45B CALL $A434 Process a guard
B45E JP $B937 Standard room procedure
B461: Turret initialization
Used by the routine at A142.
Input
HL turret data address
B461 LD E,(HL) get Turret offset low byte
B462 INC HL
B463 LD D,(HL) get Turret offset high byte
B464 PUSH HL save offset
B465 LD HL,$678E Tile screen 1 start address
B468 ADD HL,DE
B469 LD ($B4CC),HL set Turret address on Tile Screen 1
B46C LD DE,$07F8
B46F ADD HL,DE
B470 LD ($B48E),HL set Turret address on Tile Screen 5
B473 POP HL restore offset
B474 INC HL
B475 LD A,(HL)
B476 LD ($B4D4),A
B479 RET
B47A: Room procedure (for 2 rooms with a turret and a dog)
B47A CALL $9C44 Process a dog
B47D CALL $B489 Process turret
B480 JP $B937 Standard room procedure
B483: Room procedure (for 14 rooms with a turret)
B483 CALL $B489 Process turret
B486 JP $B937 Standard room procedure
B489: Process turret
Used by the routines at B47A and B483.
B489 LD A,($B4DD) get Turret counter
B48C DEC A decrease counter
B48D LD HL,$6FB5 !!MUT-ARG!! Turret address on Tile Screen 5
B490 JR NZ,$B4C6
B492 LD A,(HL)
B493 PUSH HL
B494 LD DE,$907A
B497 ADD HL,DE
B498 SUB $26
B49A LD IX,$A3AD
B49E LD (IX+$03),A
B4A1 LD (IX+$04),A
B4A4 LD ($A3AE),HL
B4A7 LD (IX+$00),$DA
B4AB LD DE,$FFE2 -30
B4AE LD B,$00
B4B0 XOR A
B4B1 CP H
B4B2 JR Z,$B4B8
B4B4 ADD HL,DE
B4B5 INC B
B4B6 JR $B4B0
B4B8 LD A,$1E
B4BA CP L
B4BB JR C,$B4B4
B4BD LD (IX+$06),L
B4C0 LD (IX+$05),B
B4C3 LD A,$32 !!MUT-ARG!! ??
B4C5 POP HL
B4C6 LD ($B4DD),A update Turret counter
B4C9 LD A,$01
B4CB LD ($67BD),A !!MUT-ARG!! set "need update" mark for Turret on Tile Screen 1
B4CE LD (HL),$2D
B4D0 LD A,($9C41) get Ninja X
B4D3 LD B,$0F !!MUT-ARG!! Turret counter value
B4D5 CP B
B4D6 RET Z
B4D7 DEC (HL)
B4D8 CP B
B4D9 RET M
B4DA INC (HL)
B4DB INC (HL)
B4DC RET
B4DD: Data block at B4DD
B4DD DEFB $32 Turret counter 50..0
B4DE: Increase PAY value by B * 100
Used by the routines at B77B, B937, BC55, BDB2, BFD5 and C4A7.
B4DE LD HL,$AD54 PAY value 3rd digit address
B4E1 LD A,$3A ':' = '9' + 1
B4E3 INC (HL)
B4E4 CP (HL)
B4E5 JP NZ,$B4ED
B4E8 LD (HL),$30 '0'
B4EA DEC HL previous digit
B4EB JR $B4E3
B4ED DJNZ $B4DE
B4EF LD HL,$AD52 Pay value text address
B4F2 LD C,$05 five digits
B4F4 LD DE,$506F Screen address
B4F7 JP $AED1 => Print string, and RET
B4FA: Processing in initial room - the boat moving
Used by the routine at B446.
B4FA LD B,$06
B4FC LD HL,$D6BB
B4FF LD A,(HL)
B500 RR A
B502 RR (HL)
B504 INC HL
B505 DJNZ $B4FF
B507 LD HL,$68F6
B50A LD B,$1E
B50C LD A,$01
B50E LD (HL),A
B50F INC HL
B510 DJNZ $B50E
B512 RET
B513: Room B513: Initial Room
B513 DEFW $B446 Room procedure
B515 DEFW $B422 Initialization
B517 DEFW $0000
B519 DEFW $791E Room to Right
B51B DEFW $0000
B51D DEFW $0000
B51F DEFB $04,$0D Fill entire screen with $0D
B521 DEFB $02,$1E,$F5,$70,$67 Fill horz 30 tiles with $F5 at $6770
B526 DEFB $02,$1E,$0B,$EE,$70 Fill horz 30 tiles with $0B at $70EE
B52B DEFB $03,$0C,$1E,$03,$0C,$71 Rectangle 30x3 tiles with $0C at $710C
B531 DEFB $FF End of sequence
B532: Movement handler for initial room (B8CE handler)
B532 LD HL,($9C42)
B535 INC HL increase Ninja position in tilemap
B536 LD ($9C42),HL
B539 LD HL,$9C41 Ninja X address
B53C INC (HL)
B53D LD DE,$70E3
B540 LD HL,$B5A7 Boat sprite address
B543 LD BC,$0009
B546 LDIR copy Boat sprite
B548 LD HL,$F807
B54B ADD HL,DE
B54C LD (HL),$01
B54E LD DE,$FFF8
B551 ADD HL,DE
B552 LD (HL),$01
B554 LD HL,($B53E)
B557 INC HL
B558 LD ($B53E),HL
B55B LD A,($B5A8)
B55E XOR $01
B560 LD ($B5A8),A
B563 LD C,$FE
B565 LD B,$05
B567 LD A,$10
B569 OUT (C),A
B56B DJNZ $B56B delay
B56D XOR A
B56E OUT (C),A
B570 LD HL,$7343 counter address
B573 DEC (HL) decrease counter
B574 JP NZ,$B8D0 => Update Ninja on tilemap
B577 LD HL,$9C41 Ninja X address
B57A INC (HL) Moving right one tile
B57B LD HL,($9C42)
B57E INC HL increase Ninja position in tilemap
B57F LD ($9C42),HL
B582 LD HL,$70E3
B585 LD (HL),$FF
B587 LD DE,$D5AC Sprite Ninja jumping 3
B58A LD HL,$C4F6 Movement handler address
B58D LD A,$04
B58F LD ($7343),A set counter = 4
B592 JP $BFB0 Set movement handler = HL, Ninja sprite = DE
B595: Data block at B595
B595 DEFB $00
B596: Routine at B596
Used by the routines at BDB2 and C4A7.
B596 LD B,$14
This entry point is used by the routine at B59E.
B598 JP $F9A1
B59B: Data block at B59B
B59B DEFB $FE,$0E,$2D
B59E: Routine at B59E
Used by the routine at C5C6.
B59E DEC C
B59F JR NZ,$B59E
B5A1 XOR A
B5A2 OUT ($FE),A
B5A4 DJNZ $B598
B5A6 RET
B5A7: Boat sprite for initial room
B5A7 DEFB $FF
B5A8 DEFB $67,$68,$6A,$6A,$6A,$6A,$6A,$6B
B5B0: Table of items: addresses for NEAR/HELD items
B5B0 DEFW $A7AD #0 Nothing
B5B2 DEFW $A819 #1 Shuriken
B5B4 DEFW $A885 #2 Knife
B5B6 DEFW $A8F1 #3 ??
B5B8 DEFW $A95D #4 Brick
B5BA DEFW $A9C9 #5 Pipe
B5BC DEFW $AA35 #6 Granade
B5BE DEFW $AAA1 #7 Disk
B5C0 DEFW $AB0D #8 Bomb
B5C2 DEFW $AB79 #9 Console
B5C4: Data block at B5C4
B5C4 DEFB $15 Time fast counter 50..0
B5C5 DEFB $01 Ninja standing counter
B5C6 DEFB $00 Time mode: $00 = time ticking; $01 = Time stopped; $02 = BOMB ticking mode
B5C7: Routine at B5C7
Used by the routine at B3B0.
B5C7 CALL $AC44 Reset Guard data and Dog data
B5CA LD ($BC0E),SP
B5CE LD HL,$B7CB
B5D1 LD ($E345),HL
B5D4 LD HL,$BC3B
B5D7 LD ($DFD2),HL
B5DA LD A,$C5 command = $C5 PUSH BC
B5DC LD ($9DD9),A set command = PUSH BC = enable Energy decrease
B5DF LD HL,$BEAA
B5E2 LD ($9DED),HL
B5E5 LD HL,$B8D0 Object procedure address for "Update Ninja on tilemap"
B5E8 LD ($D285),HL set Object procedure for object #6 in Table of objects D256
B5EB LD ($B366),HL
B5EE LD A,$30
B5F0 LD HL,$AD52 Pay value text address
B5F3 LD B,$03
B5F5 LD (HL),A
B5F6 INC HL
B5F7 DJNZ $B5F5
B5F9 CALL $ACCA Draw game screen frames and indicator text
B5FC XOR A
B5FD LD ($5C48),A set BORDCR = 0
B600 LD ($B5C6),A set Time mode = time ticking
B603 LD ($B850),A clear HELD tile
B606 LD ($D48E),A set tile in Ninja sprite
B609 OUT ($FE),A set border black, sound off
B60B INC A
B60C LD ($D48F),A set head tile for Ninja/Guard standing sprite
B60F LD ($7239),A set Ninja direction = 1 = right
B612 LD ($B84F),A set NEAR item = 1
B615 LD HL,$70D0
B618 LD ($B53E),HL
B61B LD HL,$B5B0 address for Table of items
B61E LD ($74D4),HL
B621 CALL $B851 Set initial data in Table of Objects
B624 LD HL,$0000
B627 LD ($B674),HL set current Dog data address = no dog
B62A LD ($B696),HL set current Guard data address = no guard
B62D LD A,$04
B62F LD ($C66F),A
B632 LD ($D495),A
B635 LD A,$FA
B637 LD ($B2FD),A
B63A LD A,$C8
B63C LD ($BD7A),A
B63F CALL $7472
B642 DI
B643 LD HL,$B513 Initial room address
B646 LD ($7184),HL set Current Room address
B649 LD HL,$B532 movement handler for initial room
B64C LD ($B8CE),HL set movement handler address
B64F LD HL,$D558 Sprite Ninja sitting
B652 LD ($7186),HL set Ninja sprite address
B655 LD A,$01
B657 LD ($9C41),A set Ninja X = 1
B65A LD A,$05
B65C LD ($9C40),A set Ninja Y = 5
B65F LD HL,$0097
B662 LD ($9C42),HL set Ninja position in tilemap: Y * 30 + X
B665 LD A,$13
B667 LD ($7343),A set counter = 19
B66A: Current Room changed, entering the new Room
Used by the routines at C2FA, C319, C604 and C623.
B66A LD A,($71D4)
B66D LD ($0000),A !!MUT-ARG!! address for current Dog flag
B670 LD HL,$71CB
B673 LD DE,$0000 !!MUT-ARG!! current Dog data address
B676 LD BC,$0009
B679 LDIR
B67B LD HL,$B263 For first drawing entering the room, skip Dog and Guard tiles drawing
B67E LD ($B1FA),HL
B681 CALL $DE68 Find record for the current room in DE84 table
B684 CP $00
B686 JR NZ,$B68B found =>
B688 LD HL,$0000
B68B LD A,(HL) get flag
B68C LD ($71D4),A
B68F LD ($B66E),HL
B692 LD HL,$71C3
B695 LD DE,$0000 !!MUT-ARG!! current Guard data address
B698 LD BC,$0004
B69B LDIR
B69D LD A,($7346) get Guard state
B6A0 LD (DE),A
B6A1 INC DE
B6A2 LD A,($7347) get Guard direction
B6A5 LD (DE),A
B6A6 LD HL,$0000
B6A9 LD ($B674),HL set current Dog data address = no dog
B6AC LD ($B696),HL set current Guard data address = no guard
B6AF XOR A
B6B0 LD ($BAB2),A
B6B3 LD HL,$A39F
B6B6 LD B,$03
B6B8 LD DE,$0007
B6BB LD (HL),A
B6BC ADD HL,DE
B6BD DJNZ $B6BB
B6BF LD HL,$6590 Tile screen 0 start address
B6C2 LD (HL),A fill with $00
B6C3 INC A
B6C4 LD ($A3B4),A
B6C7 LD BC,$01FD 510 - 1
B6CA LD DE,$6591 Tile screen 0 start address + 1
B6CD LDIR Fill Tile screen 0
B6CF LD HL,$6D88 Tile screen 4 start address
B6D2 LD (HL),$FF fill with transparent tile
B6D4 LD BC,$03FB 510 + 510 - 1
B6D7 LD DE,$6D89 Tile screen 4 start address
B6DA LDIR Fill Tile screen 4 and Tile screen 5
B6DC LD HL,($7184) get Current Room address
B6DF INC HL
B6E0 INC HL
B6E1 LD A,(HL) get Room init address low byte
B6E2 INC HL
B6E3 PUSH HL
B6E4 LD H,(HL) get Room init address high byte
B6E5 LD L,A
B6E6 LD ($B6F2),HL set Room init address
B6E9 POP HL
B6EA LD DE,$0009
B6ED ADD HL,DE now HL = room sequence start address
This entry point is used by the routine at B702.
B6EE LD A,(HL) get next token
B6EF CP $FF End of sequence?
B6F1 JP Z,$F973 !!MUT-ARG!! yes => run Room initialization code
B6F4 PUSH HL Save address in the room sequence
B6F5 LD L,A
B6F6 LD H,$00
B6F8 ADD HL,HL * 2
B6F9 LD DE,$B706 Table of Room tokens
B6FC ADD HL,DE now HL = address in the table
B6FD LD A,(HL) get address low byte
B6FE INC HL
B6FF LD H,(HL) get address high byte
B700 LD L,A now HL = room token procedure address
B701 JP (HL) => run token procedure
B702: Proceed to the next room token
Used by the routine at 734A.
B702 POP HL Restore address in the room sequence
B703 INC HL to next token
B704 JR $B6EE => continue room sequence processing
B706: Table of Room tokens
B706 DEFW $B38F #00: Put 3x3 tiles $7C21; params: 2 bytes (address)
B708 DEFW $7381 #01: Fill to down; params: 4 bytes (count, filler, address)
B70A DEFW $739F #02: Fill to right; params: 4 bytes (count, filler, address)
B70C DEFW $7452 #03: Fill rectangle; params: 5 bytes (filler, width, height, address)
B70E DEFW $73F3 #04: Fill whole Tile screen 0 with one tile; params: 1 byte (filler)
B710 DEFW $7406 #05: Copy block of tiles; params: 6 bytes (width, height, srcaddr, address)
B712 DEFW $73A4 #06: Fill triangle from wide top; params: 4 bytes (filler, count, address)
B714 DEFW $73C5 #07: Fill triangle from wide bottom; params: 4 bytes (filler, count, address)
B716 DEFW $73EB #08: Fill triangle from wide bottom; params: 4 bytes (filler, count, address)
B718 DEFW $73EF #09: Fill triangle from wide top; params: 4 bytes (filler, count, address)
B71A DEFW $7395 #0A: Fill to down-right; params: 4 bytes (count, filler, address)
B71C DEFW $739A #0B: Fill to down-left; params: 4 bytes (count, filler, address)
B71E DEFW $742B #0C: Copy block of tiles N times; params: 6 bytes (srcaddr, width, count, address)
B720 DEFW $7359 #0D: Set border color; params: 1 byte
B722 DEFW $734D #0E: Put one tile at the given address; params: 3 bytes (tile, address)
B724: Finish room initialization
Used by the routines at B422, B425, B42E, B437, C64C and C681.
Called to finish room initialization from room initialization procedure
B724 LD HL,$678E Tile screen 1 start address
B727 LD (HL),$01 Filler = $01 = "need update" mark
B729 LD BC,$01FD 510 - 1
B72C LD DE,$678F Tile screen 1 start address + 1
B72F LDIR
B731 LD HL,$698C Tile screen 2 start address
B734 LD (HL),$FF Filler = transparent tile
B736 LD BC,$01FD 510 - 1
B739 LD DE,$698D Tile screen 2 start address + 1
B73C LDIR
B73E LD HL,$6B8A Tile screen 3 start address
B741 LD (HL),$FF Filler = transparent tile
B743 LD BC,$01FD 510 - 1
B746 LD DE,$6B8B Tile screen 3 start address + 1
B749 LDIR
B74B CALL $B148 Draw tile map on the screen
B74E LD HL,$D34D Table of objects address
B751 LD B,$23 35 objects
B753 PUSH HL save address in Table of objects
B754 LD A,($7184) get Current Room address, low byte
B757 CP (HL)
B758 JR NZ,$B768
B75A INC HL
B75B LD A,($7185) get Current Room address, high byte
B75E CP (HL)
B75F JR NZ,$B768
B761 INC HL
B762 LD E,(HL) get address in Tile screen 0, low byte
B763 INC HL
B764 LD D,(HL) get address in Tile screen 0, high byte
B765 INC HL
B766 LD A,(HL) get tile byte
B767 LD (DE),A set tile byte in Tile screen 0
B768 POP HL restore address in Table of objects
B769 LD DE,$0005
B76C ADD HL,DE next object
B76D DJNZ $B753 continue loop by objects
B76F LD A,($7346) get Guard state
B772 CP $09
B774 JR Z,$B77B
B776 LD A,$0A
B778 LD ($7346),A set Guard state = $0A
B77B: Game loop start
Used by the routines at B724 and B937.
B77B XOR A
B77C LD ($5C08),A clear LASTK
B77F RST $38
B780 DI
B781 LD A,($5C08) get LASTK
B784 LD A,($B5C6) get Time mode
B787 CP $01 time stopped?
B789 JR Z,$B7AF yes =>
Decrease Time, check if Time is out
B78B LD HL,$B5C4 address for Time fast counter
B78E DEC (HL) decrease the counter
B78F JR NZ,$B7AF not zero => skip Time decrease
B791 LD (HL),$28 reset fast counter to 50
B793 LD HL,$AD58 address for Time lower digit
B796 DEC (HL) Decrease Time lower digit
B797 LD A,$2F
B799 CP (HL)
B79A JR NZ,$B7A4
B79C LD (HL),$39 '9'
B79E DEC HL go to higher digit
B79F DEC (HL) decrease Time higher digit
B7A0 CP (HL)
B7A1 JP Z,$BE71 time is out =>
B7A4 LD DE,$5097 screen address for timer value
B7A7 LD HL,$AD57 Indicator Time value address
B7AA LD C,$02 Two digits
B7AC CALL $AED1 Print string
Check for BOMB
B7AF LD A,($D28B) check Object #7 in Table of objects D256
B7B2 CP $D6 BOMB tile in the place of Diskette?
B7B4 JR NZ,$B7ED no => skip
BOMB ticking mode
B7B6 LD HL,$B5C6 Time mode address
B7B9 LD A,$02
B7BB CP (HL) already in BOMB ticking mode?
B7BC JR Z,$B7ED
B7BE LD (HL),A set Time mode = BOMB ticking mode
B7BF LD HL,$BD2F "BOMB"
B7C2 LD DE,$50D6 screen address under timer value
B7C5 LD C,$04
B7C7 CALL $AED1 Print string "BOMB"
B7CA LD HL,$3939 !!MUT-ARG!! "99" bomb timer initial value
B7CD LD ($AD57),HL set Indicator Time value
B7D0 LD A,$01
B7D2 LD ($B5C4),A
B7D5 LD HL,$5A76
B7D8 LD DE,$001C 28
B7DB LD C,$03
B7DD LD B,$04
B7DF LD (HL),$D6
B7E1 INC HL
B7E2 DJNZ $B7DF
B7E4 ADD HL,DE
B7E5 DEC C
B7E6 JR NZ,$B7DD
B7E8 LD B,$32
B7EA CALL $B4DE Increase PAY value by 5000
B7ED LD HL,$678E Tile screen 1 start address
B7F0 LD (HL),$00 "no need to update" value
B7F2 LD BC,$01FD 510 - 1
B7F5 LD DE,$678F Tile screen 1 start address + 1
B7F8 LDIR
B7FA CALL $BBBB Set update flags for Ninja, 6x7 tiles
B7FD LD HL,$698C Tile screen 2 start address
B800 LD (HL),$FF
B802 LD BC,$01FD 510 - 1
B805 LD DE,$698D Tile screen 2 start address + 1
B808 LDIR Fill the Tile screen 2
B80A XOR A
B80B LD ($B84C),A clear Object tile
B80E LD C,A
B80F LD B,$23 35 = number of records in D256
B811 LD DE,$D256 Table address
Loop through the table
B814 LD A,(DE) get byte +$00
B815 LD L,A
B816 INC DE
B817 LD A,(DE) get byte +$01
B818 LD H,A
B819 INC DE
B81A PUSH DE save address in the table
B81B LD DE,($9C42)
B81F ADD HL,DE add Ninja position in tilemap
B820 POP DE restore address in the table
B821 LD A,(DE) get byte +$02
B822 INC DE
B823 CP (HL)
B824 JP NZ,$B889
B827 LD A,(DE) get byte +$03
B828 LD C,A
B829 LD B,$03
B82B LD HL,$B84C address to store Object tile and Object procedure address
B82E INC DE
B82F LD ($B84A),DE store Object address + 4
B833 LD A,(DE) get byte +$04/$05/$06
B834 LD (HL),A
B835 INC HL
B836 INC DE
B837 DJNZ $B833
B839 JP $B891
B83C: Increase Energy a bit
Used by the routine at BC55.
B83C LD A,($749D) get Energy lower
B83F RRC A
B841 LD ($749D),A set Energy lower
B844 RET NC
B845 LD HL,$749C Energy address
B848 INC (HL) increase Energy
B849 RET
B84A: Data block at B84A
B84A DEFW $D2FB Object address + 4, in table D256
B84C DEFB $00 Object tile
B84D DEFW $0000 Object procedure address
B84F DEFB $00 NEAR item
B850 DEFB $C8 HELD tile
B851: Set initial data in Table of Objects
Used by the routine at B5C7.
B851 LD B,$23 35 objects
B853 LD DE,$0007 7 = size of record in Table of Objects
B856 LD IX,$D259 = D256 (address for Table of Objects) + 3
B85A LD HL,$D210 Address for table with initial data
B85D LD A,(HL)
B85E LD (IX+$00),A set byte +$03 in the record
B861 INC HL
B862 LD A,(HL)
B863 LD (IX+$01),A set byte +$04 in the record
B866 INC HL
B867 ADD IX,DE next record
B869 DJNZ $B85D continue the loop
B86B RET
B86C: ?? Adjust table 751B by DE
Used by the routine at B889.
Input
DE ??
A ??
B86C LD B,$18
B86E LD ($74F4),A
B871 LD IX,$751B
B875 LD L,(IX+$00)
B878 LD H,(IX+$01)
B87B ADD HL,DE
B87C LD (IX+$00),L
B87F LD (IX+$01),H
B882 INC IX
B884 INC IX
B886 DJNZ $B875
B888 RET
B889: Routine at B889
Used by the routine at B77B.
B889 INC DE
B88A INC DE
B88B INC DE
B88C INC DE
B88D DEC B
B88E JP NZ,$B814 continue th loop through the table
This entry point is used by the routine at B77B.
B891 LD HL,$B84F NEAR item address
B894 LD A,C
B895 CP (HL)
B896 JR Z,$B8B0
B898 LD (HL),A
B899 LD ($74CE),A
B89C LD DE,$001A
B89F LD A,$7B
B8A1 CALL $B86C
B8A4 CALL $74CD Draw NEAR/HELD item
B8A7 DI
B8A8 LD DE,$FFE6 -26
B8AB LD A,$61
B8AD CALL $B86C
B8B0 LD HL,$B850 HELD tile address
B8B3 LD A,($BD7A)
B8B6 CP (HL)
B8B7 JR Z,$B8C9
B8B9 LD (HL),A
B8BA CP $00
B8BC JR Z,$B8C2
B8BE SUB $C6
B8C0 SRL A
B8C2 LD ($74CE),A
B8C5 CALL $74CD Draw NEAR/HELD item
B8C8 DI
B8C9 XOR A
B8CA LD ($A39E),A
B8CD JP $BEB3 !!MUT-ARG!! => run handler
B8D0: Update Ninja on tilemap
Used by the routines at B348, B532, BBD4, BC55, BE0D, BFB0, C094, C13D, C1B6, C24B, C339, C3D9, C4A7, C4DE, C5C6 and C6E2.
B8D0 CALL $BBBB Set update flags for Ninja, 6x7 tiles
B8D3 LD HL,$6D88 Tile screen 4 start address
B8D6 LD (HL),$FF
B8D8 LD BC,$01FD 510 - 1
B8DB LD DE,$6D89
B8DE LDIR
Draw Ninja on tilemap
B8E0 LD HL,($9C42) get Ninja position in tilemap
B8E3 LD A,($7239) get Ninja direction
B8E6 CP $00 left?
B8E8 JR NZ,$B907
B8EA LD DE,$6991
B8ED ADD HL,DE
B8EE LD DE,($7186) get Ninja sprite address
B8F2 LD B,$07
B8F4 LD C,$06
B8F6 LD A,(DE)
B8F7 LD (HL),A
B8F8 DEC HL
B8F9 INC DE
B8FA DEC C
B8FB JR NZ,$B8F6
B8FD PUSH DE
B8FE LD DE,$0024
B901 ADD HL,DE
B902 POP DE
B903 DJNZ $B8F4
B905 JR $B922
B907 LD DE,$698C Tile screen 2 start address
B90A ADD HL,DE
B90B LD DE,($7186) get Ninja sprite address
B90F LD B,$07
B911 LD C,$06
B913 LD A,(DE)
B914 LD (HL),A
B915 INC HL
B916 INC DE
B917 DEC C
B918 JR NZ,$B913
B91A PUSH DE
B91B LD DE,$0018
B91E ADD HL,DE
B91F POP DE
B920 DJNZ $B911
B922 LD HL,$6B8A Tile screen 3 start address
B925 LD (HL),$FF
B927 LD DE,$6B8B Tile screen 3 start address + 1
B92A LD BC,$01FD 510 - 1
B92D LDIR
B92F LD HL,($7184) get Current Room address
B932 LD A,(HL)
B933 INC HL
B934 LD H,(HL)
B935 LD L,A
B936 JP (HL)
B937: Standard room procedure (redirect from B41F)
Used by the routines at B41F, B446, B44C, B452, B458, B47A, B483 and C6A5.
B937 LD IX,$A39F
B93B LD B,$03
B93D LD A,$03
B93F LD ($B951),A
B942 XOR A
B943 CP (IX+$00)
B946 PUSH BC
B947 JP Z,$BA20
B94A CALL $BBAE
B94D LD B,$02
B94F LD A,(IX+$03) !!MUT-ARG!!
B952 LD DE,$0000
B955 CP $03
B957 JR NC,$B95F
B959 LD DE,$FFE2 -30
B95C DEC (IX+$05)
B95F CP $06
B961 JR C,$B969
B963 LD DE,$001E +30
B966 INC (IX+$05)
B969 CP $01
B96B JR Z,$B98D
B96D CP $04
B96F JR Z,$B98D
B971 CP $07
B973 JR Z,$B98D
B975 DEC DE
B976 DEC (IX+$06)
B979 CP $03
B97B JR Z,$B98D
B97D CP $00
B97F JR Z,$B98D
B981 CP $06
B983 JR Z,$B98D
B985 INC DE
B986 INC DE
B987 INC (IX+$06)
B98A INC (IX+$06)
B98D LD L,(IX+$01)
B990 LD H,(IX+$02)
B993 ADD HL,DE
B994 LD (IX+$01),L
B997 LD (IX+$02),H
B99A LD A,(IX+$05)
B99D CP $FF
B99F JP Z,$BBA7
B9A2 CP $11
B9A4 JP Z,$BBA7
B9A7 LD A,(IX+$06)
B9AA CP $1E
B9AC JP Z,$BBA7
B9AF CP $FF
B9B1 JP Z,$BBA7
B9B4 PUSH HL
B9B5 LD DE,$6590 Tile screen 0 start address
B9B8 ADD HL,DE
B9B9 LD A,$64
B9BB CP (HL)
B9BC POP HL
B9BD JP C,$BAD5
B9C0 PUSH HL
B9C1 LD DE,$6B8A Tile screen 3 start address
B9C4 ADD HL,DE
B9C5 LD A,(HL)
B9C6 POP HL
B9C7 INC A
B9C8 JR Z,$B9DA
B9CA LD A,($71CF)
B9CD CP $42
B9CF JP NC,$BAD5
B9D2 ADD A,$42
B9D4 LD ($71CF),A
B9D7 JP $BAD5
B9DA PUSH HL
B9DB LD DE,$6D88 Tile screen 4 start address
B9DE ADD HL,DE
B9DF LD A,(HL)
B9E0 POP HL
B9E1 INC A
B9E2 JR Z,$B9F9
B9E4 LD A,($7346) get Guard state
B9E7 CP $09
B9E9 JP Z,$BAD5
B9EC LD A,$09
B9EE LD ($7346),A set Guard state = $09
B9F1 LD B,$01
B9F3 CALL $B4DE Increase PAY value by 100 - Guard killed by weapon
B9F6 JP $BAD5
B9F9 PUSH HL
B9FA LD HL,$B951
B9FD INC (HL)
B9FE POP HL
B9FF DEC B
BA00 JP NZ,$B94F
BA03 LD DE,$698C Tile screen 2 start address
BA06 ADD HL,DE
BA07 LD A,(HL)
BA08 CP $C8
BA0A JR NC,$BA14
BA0C LD B,$14
BA0E CALL $9DD9 Decrease Energy by B = 20
BA11 JP $BAD5
BA14 LD A,(IX+$00)
BA17 LD (HL),A
BA18 XOR $01
BA1A LD (IX+$00),A
BA1D CALL $BBAE
This entry point is used by the routine at BAD5.
BA20 POP BC
BA21 LD DE,$0007
BA24 ADD IX,DE
BA26 DEC B
BA27 JP NZ,$B93D
BA2A LD HL,$6833 !!MUT-ARG!!
BA2D LD B,$03
BA2F LD C,$03
BA31 PUSH HL
BA32 LD (HL),$01
BA34 INC HL
BA35 DEC C
BA36 JR NZ,$BA32
BA38 POP HL
BA39 PUSH DE
BA3A LD DE,$001E +30
BA3D ADD HL,DE
BA3E POP DE
BA3F DJNZ $BA2F
BA41 CALL $B148 Draw tile map on the screen
BA44 LD HL,$B1FC Restore drawing of Dog and Guard tiles
BA47 LD ($B1FA),HL
BA4A LD HL,$BAB2
BA4D XOR A
BA4E CP (HL)
BA4F JP Z,$B77B => Game loop start
Draw Explosion image on the screen and make some noise
BA52 LD A,$10
BA54 OUT ($FE),A
BA56 DEC (HL)
BA57 LD HL,$40D0 !!MUT-ARG!! address on the screen
BA5A LD DE,$ABE5 !!MUT-ARG!! Explosion image address
BA5D LD B,$03 !!MUT-ARG!!
BA5F LD C,$03 !!MUT-ARG!!
BA61 PUSH HL
BA62 PUSH DE
BA63 PUSH HL
BA64 PUSH BC
BA65 LD B,$08
BA67 LD A,(DE)
BA68 LD (HL),A
BA69 INC DE
BA6A INC H
BA6B DJNZ $BA67
BA6D POP BC
BA6E POP HL
BA6F INC HL
BA70 DEC C
BA71 JR NZ,$BA63
BA73 POP DE
BA74 LD HL,$0018
BA77 ADD HL,DE
BA78 EX DE,HL
BA79 POP HL
BA7A PUSH DE
BA7B LD DE,$0020
BA7E RR H
BA80 RR H
BA82 RR H
BA84 ADD HL,DE
BA85 RL H
BA87 RL H
BA89 RL H
BA8B POP DE
BA8C DJNZ $BA5F
BA8E LD HL,$58D0 !!MUT-ARG!!
BA91 LD B,$03
BA93 LD DE,$0020
BA96 LD C,$03 !!MUT-ARG!!
BA98 PUSH HL
BA99 LD A,(HL)
BA9A AND $F8
BA9C OR $42
BA9E LD (HL),A
BA9F INC HL
BAA0 DEC C
BAA1 JR NZ,$BA99
BAA3 POP HL
BAA4 ADD HL,DE
BAA5 DJNZ $BA96
BAA7 LD A,$72
BAA9 LD ($58F1),A !!MUT-ARG!!
BAAC XOR A
BAAD OUT ($FE),A
BAAF JP $B77B => Game loop start
BAB2: Data block at BAB2
BAB2 DEFB $00 ??
BAB3 DEFW $4000,$4020,$4040,$4060 Screen addresses for every 17 rows
BABB DEFW $4080,$40A0,$40C0,$40E0
BAC3 DEFW $4800,$4820,$4840,$4860
BACB DEFW $4880,$48A0,$48C0,$48E0
BAD3 DEFW $5000
BAD5: Routine at BAD5
Used by the routine at B937.
BAD5 CALL $FA28
BAD8 CP $CA current room address low byte = $CA ?
BADA JR NZ,$BAE4
BADC LD A,($7185)
BADF CP $8D current room address high byte = $8D ?
BAE1 JP Z,$BBA7 room 8DCA (room with helicopter) =>
BAE4 LD A,(IX+$00)
BAE7 CP $D2
BAE9 JR Z,$BAF0
BAEB CP $D3
BAED JP NZ,$BBA7
BAF0 LD HL,$BAB2
BAF3 XOR A
BAF4 CP (HL)
BAF5 JP NZ,$BBA7
BAF8 LD (HL),$0A
BAFA LD L,(IX+$01)
BAFD LD H,(IX+$02)
BB00 LD DE,$676F
BB03 ADD HL,DE
BB04 LD ($BA2B),HL
BB07 LD H,$00
BB09 LD A,(IX+$05)
BB0C ADD A,A * 2
BB0D LD L,A
BB0E LD DE,$5800
BB11 ADD HL,HL
BB12 ADD HL,HL
BB13 ADD HL,HL
BB14 ADD HL,HL * 32
BB15 ADD HL,DE now HL = address in screen attributes
BB16 LD D,$00
BB18 LD E,(IX+$06)
BB1B ADD HL,DE
BB1C LD ($BA8F),HL
BB1F LD ($BB2E),A
BB22 INC A
BB23 LD ($BB31),A
BB26 PUSH IX
BB28 LD IX,$BAB3 Address for table of screen addresses for 17 rows
BB2C LD L,(IX+$0C) !!MUT-ARG!!
BB2F LD H,(IX+$0D) !!MUT-ARG!!
BB32 POP IX
BB34 ADD HL,DE
BB35 LD ($BA58),HL
BB38 LD HL,($BA8F)
BB3B LD DE,$0021
BB3E ADD HL,DE
BB3F LD ($BAAA),HL
BB42 LD B,$03
BB44 LD C,$03
BB46 EXX
BB47 LD DE,$ABE5 Explosion image address
BB4A EXX
BB4B LD HL,($BA2B)
BB4E LD DE,$0000
BB51 LD A,(IX+$05)
BB54 CP $10
BB56 JR NZ,$BB59
BB58 DEC B
BB59 CP $00
BB5B JR NZ,$BB6A
BB5D DEC B
BB5E LD DE,$001E 30
BB61 ADD HL,DE
BB62 LD DE,$0020
BB65 EXX
BB66 LD DE,$ABFD
BB69 EXX
BB6A LD A,(IX+$06)
BB6D CP $1D
BB6F JR NZ,$BB72
BB71 DEC C
BB72 CP $00
BB74 JR NZ,$BB7C
BB76 DEC C
BB77 INC HL
BB78 INC DE
BB79 EXX
BB7A INC DE
BB7B EXX
BB7C LD A,B
BB7D LD ($BA2E),A
BB80 LD ($BA5E),A
BB83 LD ($BA92),A
BB86 LD A,C
BB87 LD ($BA30),A
BB8A LD ($BA60),A
BB8D LD ($BA97),A
BB90 LD ($BA2B),HL
BB93 LD HL,($BA58)
BB96 ADD HL,DE
BB97 LD ($BA58),HL
BB9A LD HL,($BA8F)
BB9D ADD HL,DE
BB9E LD ($BA8F),HL
BBA1 EXX
BBA2 LD ($BA5B),DE
BBA6 EXX
This entry point is used by the routine at B937.
BBA7 XOR A
BBA8 LD (IX+$00),A
BBAB JP $BA20
BBAE: Routine at BBAE
Used by the routine at B937.
BBAE LD L,(IX+$01)
BBB1 LD H,(IX+$02)
BBB4 LD DE,$678E Tile screen 1 start address
BBB7 ADD HL,DE
BBB8 LD (HL),$01 set "need update" mark
BBBA RET
BBBB: Set update flags for Ninja, 6x7 tiles
Used by the routines at B77B and B8D0.
BBBB LD HL,($9C42) get Ninja position in tilemap
BBBE LD DE,$678E Tile screen 1 start address
BBC1 ADD HL,DE
BBC2 LD DE,$0018 24
BBC5 LD A,$01 "need to update" mark
BBC7 LD B,$07 7 rows
BBC9 LD C,$06 6 columns
BBCB LD (HL),A set the flag
BBCC INC HL
BBCD DEC C
BBCE JR NZ,$BBCB continue by columns
BBD0 ADD HL,DE next row
BBD1 DJNZ $BBC9 continue by rows
BBD3 RET
BBD4: Movement handler: Ninja punching
BBD4 CALL $BBDF Read Input
BBD7 BIT 4,A check FIRE bit
BBD9 JP NZ,$B8D0 => Update Ninja on tilemap
BBDC JP $C226 => Ninja standing
BBDF: Read Input
Used by the routines at BBD4, BC55, C1B6, C22F, C24B, C3D9 and F9B9.
BBDF PUSH HL
BBE0 LD HL,$7222
BBE3 XOR A
BBE4 CP (HL) Input method = Keyboard/Protek?
BBE5 JR Z,$BBEE
BBE7 IN A,($1F) read joystick port
BBE9 LD ($7232),A store input bits
BBEC POP HL
BBED RET
BBEE PUSH BC
BBEF LD B,$05
BBF1 LD C,$00
BBF3 INC HL
BBF4 LD A,(HL)
BBF5 IN A,($FE)
BBF7 INC HL
BBF8 AND (HL)
BBF9 INC HL
BBFA JR NZ,$BC07
BBFC LD A,(HL)
BBFD ADD A,A
BBFE ADD A,A
BBFF ADD A,A * 8
BC00 ADD A,$C1
BC02 LD ($BC06),A
BC05 SET 1,C
BC07 DJNZ $BBF3
BC09 LD A,C
BC0A POP BC
BC0B JR $BBE9 => store input bits and RET
BC0D: Routine at BC0D
Used by the routine at BEB3.
Prepare screen background for title picture
BC0D LD SP,$6257 !!MUT-ARG!!
BC10 EXX
BC11 POP HL
BC12 EXX
This entry point is used by the routine at F9E7.
BC13 LD HL,$E5DC Melody start address
BC16 LD ($E442),HL set melody current address
BC19 LD HL,$4000
BC1C LD BC,$1000
BC1F LD DE,$4001
BC22 LD (HL),$00
BC24 LDIR clear screen
BC26 LD C,$00
BC28 PUSH HL
BC29 LD B,$04
BC2B LD (HL),$AA
BC2D INC H
BC2E LD (HL),$55
BC30 INC H
BC31 DJNZ $BC2B
BC33 POP HL
BC34 INC HL
BC35 DEC C
BC36 JR NZ,$BC28
Show the title picture
BC38 CALL $6289 Show title picture (two ninjas)
This entry point is used by the routine at DF60.
BC3B CALL $AEF0
BC3E LD HL,$AD52
BC41 LD B,$03
BC43 LD (HL),$30
BC45 INC HL
BC46 DJNZ $BC43
BC48 LD HL,$B0E8 address of string 10 spaces
BC4B LD B,$0A
BC4D LD (HL),$20
BC4F INC HL
BC50 DJNZ $BC4D
BC52 JP $DF37
BC55: Movement handler: Ninja standing
Increase Energy if needed
BC55 LD HL,$B5C5 Ninja standing counter address
BC58 DEC (HL) decrease counter
BC59 JR NZ,$BC76
BC5B LD (HL),$02 reload the counter
BC5D LD A,($749C) get Energy
BC60 CP $13 energy at MAX?
BC62 JR NZ,$BC6B
BC64 LD A,($749D) get Energy lower
BC67 CP $01
BC69 JR Z,$BC76
BC6B CALL $B83C Increase Energy a bit
BC6E LD B,$01
BC70 CALL $9DD9 Decrease Energy by B
BC73 CALL $B83C Increase Energy a bit
Move the head (idle animation)
BC76 LD HL,$B2FD address for head movement counter
BC79 INC (HL) increase counter
BC7A JR NZ,$BC98 not zero => skip head animation
BC7C LD (HL),$BE reset counter (how often head moves)
BC7E LD A,($D48E)
BC81 XOR $F4 toggle tile
BC83 LD ($D48E),A set head tile
BC86 LD A,($D48F)
BC89 XOR $F4 toggle between $01 and $F5 tiles
BC8B LD ($D48F),A set head tile for Ninja/Guard standing sprite
BC8E LD A,($D495)
BC91 XOR $F2 toggle tile
BC93 LD ($D495),A update the tile
BC96 JR $BC9D
BC98 LD A,$D2
BC9A CP (HL)
BC9B JR Z,$BC7E
Check for suicide key combination
BC9D LD A,$FE
BC9F IN A,($FE)
BCA1 BIT 0,A check for CAPS SHIFT key
BCA3 JR NZ,$BCB6 not pressed => skip suicide
BCA5 LD A,$7F
BCA7 IN A,($FE)
BCA9 BIT 0,A check for "1" key
BCAB JR NZ,$BCB6 not pressed => skip suicide
BCAD LD HL,$BEEF "SEPUKU" / "MISSION ABORTED"
BCB0 LD ($BEB4),HL set two-line Game Over message
BCB3 JP $BE5A => Ninja sit, and then fall and DIE
BCB6 CALL $C5A3 Check for falling
BCB9 JP Z,$C643 => Ninja falling
BCBC LD HL,$B595
BCBF XOR A
BCC0 CP (HL)
BCC1 JR Z,$BCC4
BCC3 DEC (HL)
BCC4 CALL $BBDF Read Input
BCC7 BIT 4,A check FIRE bit
BCC9 JP Z,$BDDD
FIRE pressed, ninja standing
BCCC LD HL,$B595 action cooldown counter
BCCF XOR A
BCD0 CP (HL) check if counter is 0
BCD1 JP NZ,$BDB2 not zero =>
BCD4 LD (HL),$05 reset cooldown (5 ticks until next action)
BCD6 LD A,($B84C) get Object tile
BCD9 CP $63
BCDB JR Z,$BD33 => execute the object procedure
BCDD LD B,A
BCDE LD HL,($9C42) get Ninja position in tilemap
BCE1 LD DE,$6669 $6669 = $6590 (Tile screen 0) + 217
BCE4 ADD HL,DE
BCE5 LD A,$9C
BCE7 CP (HL)
BCE8 JR NZ,$BCF3
BCEA LD A,($B5C6) get Time mode
BCED CP $02 BOMB ticking mode?
BCEF JR Z,$BD37 yes =>
BCF1 JR $BCF7
BCF3 XOR A
BCF4 CP B Object tile = nothing?
BCF5 JR Z,$BD37 nothing =>
BCF7 LD A,($B850) get HELD tile
BCFA LD DE,($B84A) get Object address + 4
BCFE LD (DE),A set Object tile
BCFF DEC DE
BD00 CP $00 held nothing?
BD02 JR Z,$BD08 nothing =>
BD04 SUB $C6
BD06 SRL A
BD08 LD (DE),A
BD09 LD A,$09
BD0B LD ($D28A),A set ?? in Object #7 in Table of objects D256
BD0E LD A,B
BD0F LD ($BD7A),A
BD12 CP $D4
BD14 JP NZ,$B8D0 => Update Ninja on tilemap
BD17 LD HL,$B5C6 Time mode address
BD1A XOR A 0 = time ticking
BD1B CP (HL)
BD1C JP NZ,$B8D0 => Update Ninja on tilemap
BD1F LD (HL),$01 set Time mode = time stopped
BD21 LD HL,$0190
BD24 CALL $B371 Play melody
BD27 LD B,$32 50
BD29 CALL $B4DE Increase PAY value by 5000
BD2C JP $B8D0 => Update Ninja on tilemap
BD2F: "BOMB" message
BD2F DEFM "BOMB"
BD33: Routine at BD33
Used by the routine at BC55.
BD33 LD HL,($B84D) get object procedure address
BD36 JP (HL) execute the object procedure
BD37: Fire pressed, Ninja standing, no object nearby
Used by the routine at BC55.
BD37 LD HL,$A39F
BD3A XOR A
BD3B CP (HL)
BD3C JP NZ,$BDB2
BD3F LD A,($B850) get HELD tile
BD42 CP $00 nothing?
BD44 JP Z,$BDB2
BD47 CP $D4
BD49 JP Z,$BDB2
BD4C CP $D6 BOMB?
BD4E JP Z,$BDB2
BD51 LD (HL),A
BD52 LD HL,($9C42) get Ninja position in tilemap
BD55 LD DE,$003D 61
BD58 ADD HL,DE
BD59 LD A,($9C41) get Ninja X
BD5C INC A
BD5D LD B,A
BD5E LD A,($7239) get Ninja direction
BD61 DEC A
BD62 JR NZ,$BD6A
BD64 INC B
BD65 INC B
BD66 INC B
BD67 INC HL
BD68 INC HL
BD69 INC HL
BD6A LD A,B
BD6B LD ($A3A5),A
BD6E LD ($A3A0),HL
BD71 LD A,($9C40) get Ninja Y
BD74 ADD A,$02
BD76 LD ($A3A4),A
BD79 LD A,$C8 !!MUT-ARG!!
BD7B LD ($A39F),A
BD7E XOR A
BD7F LD ($BD7A),A
BD82 LD B,$03
BD84 LD A,($7239) get Ninja direction
BD87 CP $00 left?
BD89 JR Z,$BD8D left =>
BD8B INC B
BD8C INC B
BD8D LD A,B
BD8E LD ($A3A3),A
BD91 LD A,($7232) get Input bits
BD94 BIT 3,A check UP bit
BD96 JR Z,$BD9B
BD98 DEC B
BD99 DEC B
BD9A DEC B
BD9B BIT 2,A check DOWN bit
BD9D JR Z,$BDA2
BD9F INC B
BDA0 INC B
BDA1 INC B
BDA2 LD A,B
BDA3 LD ($A3A2),A
BDA6 CALL $F9F9
BDA9 LD DE,$D504 Sprite Ninja/Guard punching
BDAC JP $BFB0 Set movement handler = HL, Ninja sprite = DE
BDAF: Ninja standing (redirect)
BDAF JP $C226 => Ninja standing
BDB2: Routine at BDB2
Used by the routines at BC55 and BD37.
BDB2 LD HL,($9C42) get Ninja position in tilemap
BDB5 LD DE,$6DAA $6DAA = $6D88 (Tile screen 4) + 34 for right
BDB8 LD A,($7239) get Ninja direction
BDBB CP $01 right?
BDBD JR Z,$BDC2 right =>
BDBF LD DE,$6DA7 $6DA7 = $6D88 (Tile screen 4) + 31 for left
BDC2 ADD HL,DE now HL = address in Guard tilemap
BDC3 LD A,(HL) get tile
BDC4 INC A $FF ?
BDC5 JR Z,$BDD4 $FF =>
BDC7 LD A,$09
BDC9 LD ($7346),A set Guard state = $09
BDCC CALL $B596
BDCF LD B,$05 5 hundreds
BDD1 CALL $B4DE Increase PAY value by 500 - Guard killed by punch/kick
BDD4 LD HL,$BBD4 Movement handler address
BDD7 LD DE,$D504 Sprite Ninja/Guard punching
BDDA JP $BFB0 Set movement handler = HL, Ninja sprite = DE
BDDD: Routine at BDDD
Used by the routine at BC55.
BDDD BIT 3,A
BDDF JP Z,$BFBA
BDE2 LD HL,$65AE
BDE5 LD DE,($9C42) get Ninja position in tilemap
BDE9 ADD HL,DE
BDEA LD A,$DA
BDEC CP (HL)
BDED JP NZ,$BF7B
BDF0 LD A,$0B
BDF2 LD ($7343),A set counter = 11
BDF5 LD HL,$65BC
BDF8 LD ($BE0E),HL
BDFB LD ($BE1D),HL
BDFE LD HL,$68BC
BE01 LD ($BA2B),HL
BE04 LD HL,$BE0D Movement handler
BE07 LD DE,$D486 Sprite Ninja/Guard standing
BE0A JP $BFB0 Set movement handler = HL, Ninja sprite = DE
BE0D: ?? Movement handler
BE0D LD HL,$65B1 !!MUT-ARG!!
BE10 LD A,$01
BE12 LD (HL),A
BE13 DEC HL
BE14 LD ($BE0E),HL
BE17 LD DE,$01FF 511
BE1A ADD HL,DE
BE1B LD (HL),A
BE1C LD HL,$65C7 !!MUT-ARG!!
BE1F LD (HL),A
BE20 INC HL
BE21 LD ($BE1D),HL
BE24 LD DE,$01FD 509
BE27 ADD HL,DE
BE28 LD (HL),A
BE29 LD HL,$7343 counter address
BE2C DEC (HL) decrease counter
BE2D JP NZ,$B8D0 => Update Ninja on tilemap
BE30 LD (HL),$14 reset the counter
BE32 LD HL,$675A
BE35 LD DE,$6958
BE38 LD B,$0A 10
BE3A LD (HL),A
BE3B LD (DE),A
BE3C INC DE
BE3D INC HL
BE3E DJNZ $BE3A
BE40 LD HL,$0110
BE43 LD ($9C42),HL set Ninja position in tilemap
BE46 LD HL,$6860
BE49 LD DE,$6861
BE4C LD BC,$00D1 210 - 1 = 7 rows
BE4F LDIR
BE51 LD HL,$C094 Movement handler (helicopter?)
BE54 LD DE,$C0E6 Empty sprite
BE57 JP $BFB0 Set movement handler = HL, Ninja sprite = DE
BE5A: Ninja sit, and then fall and DIE
Used by the routine at BC55.
BE5A LD HL,$BE63 Movement handler: Ninja dead
BE5D LD DE,$D558 Sprite Ninja sitting
BE60 JP $BFB0 Set movement handler = HL, Ninja sprite = DE
BE63: Movement handler (B8CE handler): Ninja dead
Used by the routine at BE71.
BE63 LD A,$C9 command = $C9 RET
BE65 LD ($9DD9),A set command = RET = disable Energy decrease
BE68 LD HL,$BEB3 Movement handler: Game Over
BE6B LD DE,$A0B5 Sprite Ninja dead
BE6E JP $BFB0 Set movement handler = HL, Ninja sprite = DE
BE71: Time is out
Used by the routine at B77B.
BE71 LD A,($B5C6) get Time mode
BE74 CP $02 BOMB ticking mode?
BE76 JR Z,$BE80 yes =>
BE78 LD HL,$BF35 "TIME OUT" / "MISSION TERMINATED"
BE7B LD ($BEB4),HL set two-line Game Over message
BE7E JR $BE63 => Ninja dead
BOMB time is out, BOMB explodes
BE80 LD B,$06
BE82 LD IX,$0000
BE86 LD C,$00
BE88 LD HL,$5821
BE8B LD A,(IX+$00)
BE8E OUT ($FE),A
BE90 INC IX
BE92 PUSH BC
BE93 LD C,$11 17
BE95 LD B,$1E 30
BE97 INC (HL)
BE98 INC HL
BE99 DJNZ $BE97
BE9B INC HL
BE9C INC HL
BE9D DEC C
BE9E JR NZ,$BE95
BEA0 POP BC
BEA1 DEC C
BEA2 JR NZ,$BE88
BEA4 DJNZ $BE86
BEA6 XOR A
BEA7 OUT ($FE),A
BEA9 PUSH HL
Saboteur is dead
BEAA POP HL
BEAB LD HL,$BF58 "SABOTEUR DEAD" / "MISSION FAILURE"
BEAE LD ($BEB4),HL set two-line Game Over message
BEB1 JR $BE63 => Ninja dead
BEB3: Movement handler: Game Over
Used by the routines at B889 and BFD5.
BEB3 LD HL,$BEEF !!MUT-ARG!! two-line message address
BEB6 LD DE,$4068
BEB9 LD C,$0F
BEBB CALL $AED1 Print string 1st line
BEBE LD DE,$40A6
BEC1 LD C,$14
BEC3 CALL $AED1 Print string 2nd line
BEC6 LD HL,$5868
BEC9 LD B,$0F
BECB LD (HL),$0F
BECD INC HL
BECE DJNZ $BECB
BED0 LD HL,$58A6
BED3 LD B,$14
BED5 LD (HL),$0F
BED7 INC HL
BED8 DJNZ $BED5
BEDA CALL $F9B9 Pause, then wait for any key pressed
BEDD NOP
BEDE NOP
BEDF NOP !!MUT-CMD!!
BEE0 NOP
BEE1 NOP
BEE2 NOP
BEE3 NOP
BEE4 NOP
BEE5 NOP
BEE6 NOP
BEE7 LD A,$0A "LD A,(BC)" instruction code
BEE9 LD ($BEDF),A
BEEC JP $BC0D => Title picture and music, then go to Main menu
BEEF: Game over two-line messages
BEEF DEFM " SEPUKU "
BEFE DEFM " MISSION ABORTED "
BF12 DEFM " ESCAPE "
BF21 DEFM " MISSION SUCCESSFUL "
BF35 DEFM " TIME OUT "
BF44 DEFM " MISSION TERMINATED "
BF58 DEFM " SABOTEUR DEAD "
BF67 DEFM " MISSION FAILURE "
BF7B: Routine at BF7B
Used by the routine at BDDD.
BF7B LD HL,$6592 $6592 = $6590 (Tile screen 0) + 2
BF7E ADD HL,DE
BF7F LD A,$64
BF81 CP (HL)
BF82 JP C,$C16E => Object procedure
BF85 INC HL
BF86 CP (HL)
BF87 JP C,$C16E => Update Ninja on tilemap
BF8A LD A,$03
BF8C LD ($7343),A set counter = 3
BF8F LD A,($7239) get Ninja direction
BF92 CP $00 left?
BF94 LD A,($7232) get Input bits
BF97 JR Z,$BFA0
BF99 BIT 0,A check RIGHT bit
BF9B CALL NZ,$C4E8
BF9E JR $BFA5
BFA0 BIT 1,A check LEFT bit
BFA2 CALL NZ,$C4E8
BFA5 LD HL,$C339 Movement handler: Ninja jumping
BFA8 LD A,$02
BFAA LD ($7343),A set counter = 2
BFAD LD DE,$D4B0 Sprite Ninja/Guard jumping
BFB0: Set movement handler = HL, set Ninja sprite = DE
Used by the routines at B532, BD37, BDB2, BDDD, BE0D, BE5A, BE63, BFBA, C13D, C226, C339, C3BB, C4A7, C4E8, C4F6, C50D and C643.
BFB0 LD ($B8CE),HL
BFB3 LD ($7186),DE set Ninja sprite address = DE
BFB7 JP $B8D0 => Update Ninja on tilemap
BFBA: Routine at BFBA
Used by the routine at BDDD.
BFBA BIT 2,A
BFBC JP Z,$C13D
BFBF LD HL,($9C42) get Ninja position in tilemap
BFC2 LD DE,$6664
BFC5 ADD HL,DE
BFC6 CALL $C392
BFC9 JP Z,$C12E => Ninja on ladder
This entry point is used by the routine at C5C6.
BFCC LD HL,$C22F Movement handler: Ninja sitting
BFCF LD DE,$D558 Sprite Ninja sitting
BFD2 JP $BFB0 Set movement handler = HL, Ninja sprite = DE
BFD5: Escaped; clear screen, show final messages, then Game Over
Used by the routine at C094.
BFD5 LD B,$0A
BFD7 CALL $B4DE Increase PAY value by 1000 - Escape by Helicopter
BFDA LD A,($BD7A)
BFDD CP $D4
BFDF JR NZ,$C04A
BFE1 LD B,$32
BFE3 CALL $B4DE Increase PAY value by 5000
BFE6 LD HL,$4000 Screen start address
BFE9 LD DE,$4001
BFEC LD BC,$1800
BFEF LD (HL),$00
BFF1 LDIR Clear whole screen
BFF3 LD BC,$02FF
BFF6 LD (HL),$0F
BFF8 LDIR Clear all attributes
BFFA LD HL,$C062 Messages address
BFFD LD DE,$4089 Screen address
C000 LD C,$0E
C002 CALL $AED1 Print string "DISK RETRIEVED"
C005 LD DE,$4828
C008 LD C,$12
C00A CALL $AED1 Print string "DISK BONUS: $05000"
C00D LD DE,$4865
C010 LD C,$05
C012 CALL $AED1 Print string "LEVEL"
C015 LD DE,$5062
C018 LD C,$0D
C01A CALL $AED1 Print string "TOTAL PAY : $"
C01D LD DE,$486D
C020 LD HL,$C075 Messages address
C023 LD C,$0D
C025 CALL $AED1 Print string "BONUS: $05000"
C028 LD DE,$4875
C02B LD HL,$E388
C02E LD C,$03
C030 CALL $AED1 Print string
C033 LD A,($E38B)
C036 LD B,A
C037 CALL $B4DE Increase PAY value by B * 100
C03A LD DE,$486B
C03D LD HL,$E1EC Skill level address
C040 LD C,$01
C042 CALL $AED1 Print skill level digit
C045 LD A,$14 "INC D" instruction code
C047 LD ($BEDF),A
C04A LD A,($B5C6) get Time mode
C04D CP $02 BOMB ticking mode?
C04F JR NZ,$C056 no =>
C051 LD B,$64 100
C053 CALL $B4DE Increase PAY value by 10000 - Escape with Disk and Bomb
C056 LD HL,$BF12 "ESCAPE" / "MISSION SUCCESSFUL"
C059 LD ($BEB4),HL set two-line Game Over message
C05C NOP
C05D NOP
C05E NOP
C05F JP $BEB3 => Game Over
C062: Message at C062
C062 DEFM "DISK RETRIEVED"
C070 DEFM "DISK "
C075 DEFM "BONUS: $05000"
C082 DEFM "LEVEL"
C087 DEFM "TOTAL PAY : $"
C094: ?? Movement handler (helicopter?)
C094 LD HL,$7343 counter address
C097 DEC (HL) decrease counter
C098 JP Z,$BFD5 zero => Escaped; final messages, then Game Over
C09B LD A,$10
C09D OUT ($FE),A
C09F LD HL,$4047
C0A2 LD DE,$4027
C0A5 LD C,$0F
C0A7 PUSH HL
C0A8 PUSH DE
C0A9 LD B,$08
C0AB PUSH HL
C0AC PUSH DE
C0AD PUSH BC
C0AE LD BC,$0011
C0B1 LDIR
C0B3 POP BC
C0B4 POP DE
C0B5 POP HL
C0B6 INC D
C0B7 INC H
C0B8 DJNZ $C0AB
C0BA POP DE
C0BB POP HL
C0BC PUSH BC
C0BD LD BC,$0020
C0C0 RR H
C0C2 RR H
C0C4 RR H
C0C6 ADD HL,BC
C0C7 RL H
C0C9 RL H
C0CB RL H
C0CD EX DE,HL
C0CE RR H
C0D0 RR H
C0D2 RR H
C0D4 ADD HL,BC
C0D5 RL H
C0D7 RL H
C0D9 RL H
C0DB EX DE,HL
C0DC POP BC
C0DD DEC C
C0DE JR NZ,$C0A7
C0E0 XOR A
C0E1 OUT ($FE),A
C0E3 JP $B8D0 => Update Ninja on tilemap
C0E6: Empty sprite
C0E6 DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
C0EE DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
C0F6 DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
C0FE DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
C106 DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
C10E DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
C116 DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
C11E DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
C126 DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
C12E: Ninja on ladder
Used by the routine at BFBA.
C12E LD HL,$C3D9 Movement handler for Ninja on ladder
C131 LD ($B8CE),HL
C134 LD HL,$D52E Sprite Ninja on ladder
C137 LD ($7186),HL set Ninja sprite address
C13A JP $C498 => Move down one tile
C13D: Routine at C13D
Used by the routine at BFBA.
C13D BIT 1,A
C13F JR Z,$C154
C141 LD HL,$7239 Ninja direction address
C144 XOR A
C145 CP (HL) left?
C146 JR Z,$C14B
C148 DEC (HL)
C149 JR $C16E => Update Ninja on tilemap
This entry point is used by the routine at C3D9.
C14B LD HL,$C24B Movement handler address
C14E LD DE,$D3DE Sprite Ninja/Guard walking 1
C151 JP $BFB0 Set movement handler = HL, Ninja sprite = DE
C154 BIT 0,A
C156 JR Z,$C16E
C158 LD HL,$7239 Ninja direction address
C15B XOR A
C15C CP (HL) left?
C15D JR NZ,$C162
C15F INC (HL)
C160 JR $C16E => Update Ninja on tilemap
This entry point is used by the routine at C3D9.
C162 LD HL,$C1B6 Movement handler address
C165 LD ($B8CE),HL
C168 LD HL,$D3DE Sprite Ninja/Guard walking 1
C16B LD ($7186),HL set Ninja sprite address
This entry point is used by the routines at BF7B, C22F, C24B and C50D.
C16E JP $B8D0 => Update Ninja on tilemap
C171: Data block at C171
C171 DEFB $3A,$40,$9C,$FE,$00,$CA,$26,$C2
C179 DEFB $3A,$40,$9C,$3D,$32,$40,$9C,$2A
C181 DEFB $42,$9C,$11,$E2,$FF,$19,$22,$42
C189 DEFB $9C,$CD,$DF,$BB,$CB,$5F,$20,$DD
C191 DEFB $C3,$26,$C2,$3A,$40,$9C,$FE,$0A
C199 DEFB $CA,$26,$C2,$3A,$40,$9C,$3C,$32
C1A1 DEFB $40,$9C,$2A,$42,$9C,$11,$1E,$00
C1A9 DEFB $19,$22,$42,$9C,$CD,$DF,$BB,$CB
C1B1 DEFB $57,$20,$BA,$18,$70
C1B6: Movement handler ?? (B8CE handler)
C1B6 LD A,($9C41) get Ninja X
C1B9 CP $18 24 ?
C1BB JP Z,$C2FA => Going to room at Right
C1BE LD HL,($9C42) get Ninja position in tilemap
C1C1 LD DE,$6648
C1C4 ADD HL,DE
C1C5 LD A,$64
C1C7 CP (HL)
C1C8 JR NC,$C1DA
C1CA LD HL,$9C40 Ninja Y address
C1CD DEC (HL) one row up
C1CE LD HL,($9C42) get Ninja position in tilemap
C1D1 LD DE,$FFE2 -30
C1D4 ADD HL,DE
C1D5 LD ($9C42),HL set Ninja position in tilemap
C1D8 JR $C20D
C1DA LD DE,$FFE3 -29
C1DD ADD HL,DE
C1DE LD A,$64
C1E0 CP (HL)
C1E1 JR NC,$C1EE
C1E3 CALL $BBDF Read Input
C1E6 BIT 0,A check RIGHT bit
C1E8 JP Z,$C226 => Ninja standing
C1EB JP $B8D0 => Update Ninja on tilemap
C1EE LD DE,$003B +59
C1F1 ADD HL,DE
C1F2 CP (HL)
C1F3 JR C,$C20D
C1F5 DEC HL
C1F6 CP (HL)
C1F7 JR C,$C20D
C1F9 LD HL,($9C42) get Ninja position in tilemap
C1FC LD DE,$001E +30
C1FF ADD HL,DE
C200 LD ($9C42),HL set Ninja position in tilemap
C203 LD HL,$9C40 Ninja Y address
C206 INC (HL) one row down
C207 LD A,(HL)
C208 CP $0A at the room bottom?
C20A JP Z,$C604 yes => Going to room Down from current
C20D LD HL,$9C41 Ninja X address
C210 INC (HL)
C211 LD HL,($9C42) get Ninja position in tilemap
C214 INC HL move one tile to right
C215 LD ($9C42),HL set Ninja position in tilemap
C218 CALL $C5A3 Check for falling
C21B JP Z,$C643 => Ninja falling
C21E CALL $BBDF Read Input
C221 BIT 0,A check RIGHT bit
C223 JP NZ,$C2BB
C226: Ninja standing
Used by the routines at BBD4, BDAF, C1B6, C22F, C24B, C3D9, C4DE, C4F6, C5A0 and C6E2.
C226 LD HL,$BC55 Movement handler: Ninja standing
C229 LD DE,$D486 Sprite Ninja/Guard standing
C22C JP $BFB0 Set movement handler = HL, Ninja sprite = DE
C22F: Movement handler (B8CE handler): Ninja sitting
C22F CALL $BBDF Read Input
C232 BIT 2,A check DOWN bit
C234 JR NZ,$C239 still pressed =>
C236 JP $C226 DOWN key released => stand up
C239 LD HL,($9C42) get Ninja position in tilemap
C23C LD DE,$703C
C23F ADD HL,DE
C240 LD A,$0C
C242 CP (HL)
C243 LD B,$02
C245 CALL Z,$9DD9 => Decrease Energy by B
C248 JP $C16E => Object procedure
C24B: Movement handler (B8CE handler): Ninja walking
C24B LD A,($9C41) get Ninja X
C24E CP $00 at very left?
C250 JP Z,$C319 => Going to room at Left
C253 LD HL,($9C42) get Ninja position in tilemap
C256 LD DE,$6645 = $6590 (Tile screen 0) + 181
C259 ADD HL,DE
C25A LD A,$64
C25C CP (HL)
C25D JR NC,$C26F
C25F LD HL,$9C40 Ninja Y address
C262 DEC (HL) moving one row up
C263 LD HL,($9C42) get Ninja position in tilemap
C266 LD DE,$FFE2 -30
C269 ADD HL,DE one row up
C26A LD ($9C42),HL set Ninja position in tilemap
C26D JR $C2A2
C26F LD DE,$FFE1 -31
C272 ADD HL,DE
C273 LD A,$64
C275 CP (HL)
C276 JR NC,$C283
C278 CALL $BBDF Read Input
C27B BIT 1,A check LEFT bit
C27D JP Z,$C226 => Ninja standing
C280 JP $B8D0 => Update Ninja on tilemap
C283 LD DE,$003D +61
C286 ADD HL,DE
C287 CP (HL)
C288 JR C,$C2A2
C28A INC HL
C28B CP (HL)
C28C JR C,$C2A2
C28E LD HL,($9C42) get Ninja position in tilemap
C291 LD DE,$001E +30
C294 ADD HL,DE
C295 LD ($9C42),HL set Ninja position in tilemap
C298 LD HL,$9C40 Ninja Y address
C29B INC (HL) moving one row down
C29C LD A,(HL)
C29D CP $0A at room bottom?
C29F JP Z,$C604 => Going to room Down from current
C2A2 LD HL,$9C41 Ninja X address
C2A5 DEC (HL) moving one tile left
C2A6 LD HL,($9C42) get Ninja position in tilemap
C2A9 DEC HL moving one tile left
C2AA LD ($9C42),HL set Ninja position in tilemap
C2AD CALL $C5A3 Check for falling
C2B0 JP Z,$C643 => Ninja falling
C2B3 CALL $BBDF Read Input
C2B6 BIT 1,A check LEFT bit
C2B8 JP Z,$C226 => Ninja standing
LEFT or RIGHT key pressed
C2BB BIT 3,A check for UP bit
C2BD LD A,$07
C2BF LD ($7343),A set counter = 7
C2C2 CALL NZ,$C4E8
C2C5 LD A,($733A)
C2C8 INC A next walking phase
C2C9 AND $03 0..3
C2CB LD ($733A),A
C2CE ADD A,A * 2
C2CF LD L,A
C2D0 LD A,$00
C2D2 LD ($A39E),A
C2D5 JR NZ,$C2E8
C2D7 INC A
C2D8 LD ($A39E),A
C2DB LD C,$FE
C2DD XOR A
C2DE LD D,$10
C2E0 LD B,$32
C2E2 OUT (C),D
C2E4 OUT (C),A
C2E6 DJNZ $C2E2
C2E8 LD H,$00
C2EA LD DE,$733B Table of four Ninja/Guard walking sprites
C2ED ADD HL,DE
C2EE LD DE,$7186 address for Ninja sprite address
C2F1 LD A,(HL)
C2F2 LD (DE),A
C2F3 INC HL
C2F4 INC DE
C2F5 LD A,(HL)
C2F6 LD (DE),A
C2F7 JP $C16E => Object procedure
C2FA: Going to room at Right
Used by the routines at C1B6 and C50D.
C2FA XOR A
C2FB LD ($9C41),A set Ninja X = 0
C2FE LD DE,$FFE8 -24
C301 LD HL,($9C42)
C304 ADD HL,DE update Ninja position in tilemap
C305 LD ($9C42),HL
C308 LD HL,($7184) get Current Room address
C30B LD DE,$0006 offset in Room description
C30E ADD HL,DE
C30F LD A,(HL) get Room Right address low byte
C310 INC HL
C311 LD H,(HL) get Room Right address high byte
C312 LD L,A
C313 LD ($7184),HL set Current Room address
C316 JP $B66A => Current Room changed
C319: Going to room at Left
Used by the routines at C24B and C50D.
C319 LD A,$18
C31B LD ($9C41),A set Ninja X = 24
C31E LD DE,$0018 +24
C321 LD HL,($9C42)
C324 ADD HL,DE update Ninja position in tilemap
C325 LD ($9C42),HL
C328 LD HL,($7184) get Current Room address
C32B LD DE,$0004 offset in Room description
C32E ADD HL,DE
C32F LD A,(HL) get Room Left address low byte
C330 INC HL
C331 LD H,(HL) get Room Left address high byte
C332 LD L,A
C333 LD ($7184),HL set Current Room address
C336 JP $B66A => Current Room changed
C339: Movement handler (B8CE handler): Ninja jumping
C339 LD HL,$7343 counter address
C33C DEC (HL) decrease counter
C33D JP NZ,$B8D0 => Update Ninja on tilemap
C340 LD A,($7239) get Ninja direction
C343 LD HL,($9C42) get Ninja position in tilemap
C346 LD DE,$6592 $6592 = $6590 (Tile screen 0) + 2
C349 ADD HL,DE
C34A CP $00 direction = left ?
C34C JR NZ,$C361 no =>
C34E LD A,(HL)
C34F CP $0C
C351 JR Z,$C3BB
C353 CP $0A
C355 JR Z,$C3BB
C357 CP $08
C359 JR Z,$C3BB
C35B CP $09
C35D JR Z,$C3BB
C35F JR $C368
C361 INC HL
C362 CALL $C392
C365 JR Z,$C3CF
C367 DEC HL
C368 CALL $C392
C36B JR Z,$C3C6 => Ninja on ladder
C36D LD DE,$65CC
C370 LD HL,($9C42) get Ninja position in tilemap
C373 LD A,($7239) get Ninja direction
C376 CP $00 left ?
C378 JR Z,$C37D
C37A LD DE,$65D1
C37D ADD HL,DE
C37E LD A,$64
C380 CP (HL)
C381 JP C,$C4D0
C384 LD HL,$C4A7 Movement handler
C387 LD DE,$D4DA Sprite Ninja/Guard jump-kick
C38A LD A,$03
C38C LD ($7343),A set counter = 3
C38F JP $BFB0 Set movement handler = HL, Ninja sprite = DE
C392: Check if tile is a ladder
Used by the routines at BFBA, C339 and C3D9.
C392 LD A,(HL)
C393 LD B,$01
C395 CP $05
C397 JR Z,$C3B7
C399 CP $06
C39B JR Z,$C3B7
C39D CP $07
C39F JR Z,$C3B7
C3A1 CP $F6
C3A3 JR Z,$C3B7
C3A5 CP $F1
C3A7 JR Z,$C3B7
C3A9 CP $EF
C3AB JR Z,$C3B7
C3AD CP $ED
C3AF JR Z,$C3B7
C3B1 CP $0C
C3B3 JR Z,$C3B7
C3B5 LD B,$00
C3B7 LD A,$01
C3B9 CP B
C3BA RET
C3BB: Move LEFT one tile
Used by the routine at C339.
C3BB LD HL,$9C41 Ninja X address
C3BE DEC (HL) one tile to left
C3BF LD HL,($9C42) get Ninja position in tilemap
C3C2 DEC HL move one tile left
This entry point is used by the routine at C3CF.
C3C3 LD ($9C42),HL set Ninja position in tilemap
Ninja on ladder now
C3C6 LD HL,$C3D9 Movement handler for Ninja on ladder
C3C9 LD DE,$D52E Sprite Ninja on ladder
C3CC JP $BFB0 Set movement handler = HL, Ninja sprite = DE
C3CF: Move RIGHT one tile
Used by the routine at C339.
C3CF LD HL,$9C41 Ninja X address
C3D2 INC (HL) one tile to right
C3D3 LD HL,($9C42) get Ninja position in tilemap
C3D6 INC HL move one tile right
C3D7 JR $C3C3 => Set Ninja position in tilemap; Ninja on ladder
C3D9: Movement handler (B8CE handler): Ninja on ladder
C3D9 LD HL,($9C42) get Ninja position in tilemap
C3DC LD DE,$6647 = $6590 (Tile screen 0) + 183
C3DF ADD HL,DE
C3E0 LD A,$0C
C3E2 CP (HL) ladder?
C3E3 JR Z,$C3EC yes => Read and process Input
C3E5 DEC HL
C3E6 CALL $C392
C3E9 JP NZ,$C226 not ladder => Ninja standing
Read and process Input
C3EC CALL $BBDF Read Input
C3EF BIT 0,A check RIGHT bit
C3F1 JR Z,$C40E
Pressed RIGHT
C3F3 LD HL,($9C42) get Ninja position in tilemap
C3F6 LD DE,$6648 = $6590 (Tile screen 0) + 184
C3F9 ADD HL,DE
C3FA LD A,$64
C3FC CP (HL)
C3FD JR C,$C42C
C3FF LD DE,$001E +30
C402 ADD HL,DE
C403 CP (HL)
C404 JR NC,$C42C
C406 LD A,$01
C408 LD ($7239),A set Ninja direction = 1 = right
C40B JP $C162
Check if LEFT pressed
C40E BIT 1,A check LEFT bit
C410 JR Z,$C42C
Pressed LEFT
C412 LD HL,($9C42) get Ninja position in tilemap
C415 LD DE,$6645 = $6590 (Tile screen 0) + 181
C418 ADD HL,DE
C419 LD A,$64
C41B CP (HL)
C41C JR C,$C42C
C41E LD DE,$001E +30
C421 ADD HL,DE
C422 CP (HL)
C423 JR NC,$C42C
C425 XOR A
C426 LD ($7239),A set Ninja direction = 0 = left
C429 JP $C14B
Check if UP pressed
C42C LD A,($7232) get Input bits
C42F BIT 3,A check UP bit
C431 JR Z,$C477
Pressed UP
C433 LD HL,($9C42) get Ninja position in tilemap
C436 LD DE,$6647
C439 ADD HL,DE
C43A LD A,$0C
C43C CP (HL)
C43D JR Z,$C447
C43F DEC HL
C440 CALL $C392
C443 JR Z,$C447
C445 JR $C495 => Update Ninja on tilemap
C447 LD A,($9C40) get Ninja Y
C44A CP $00 top row?
C44C JP Z,$C623 yes => Going to room Up from current
C44F LD DE,$FF2E -210 = 7 rows higher
C452 ADD HL,DE
C453 LD A,$EA
C455 CP (HL)
C456 JR Z,$C495 => Update Ninja on tilemap
C458 LD A,$FF
C45A CP (HL)
C45B JR Z,$C495 => Update Ninja on tilemap
C45D LD HL,$9C40 Ninja Y address
C460 DEC (HL) one row up
C461 LD HL,($9C42) get Ninja position in tilemap
C464 LD DE,$FFE2 -30
This entry point is used by the routine at C498.
C467 ADD HL,DE
C468 LD ($9C42),HL set Ninja position in tilemap
C46B LD A,($7239) get Ninja direction
C46E INC A invert direction
C46F AND $01
C471 LD ($7239),A set Ninja direction
C474 JP $B8D0 => Update Ninja on tilemap
Check if DOWN pressed
C477 BIT 2,A check DOWN bit
C479 JR Z,$C495 => Update Ninja on tilemap
Pressed DOWN
C47B LD A,($9C40) get Ninja Y
C47E CP $0A
C480 JP Z,$C604 => Going to room Down from current
C483 LD HL,($9C42) get Ninja position in tilemap
C486 LD DE,$6665
C489 ADD HL,DE
C48A LD A,$0C
C48C CP (HL)
C48D JR Z,$C498 => Move down one tile
C48F DEC HL
C490 CALL $C392
C493 JR Z,$C498 => Move down one tile
C495 JP $B8D0 => Update Ninja on tilemap
C498: Move DOWN one tile
Used by the routines at C12E and C3D9.
C498 LD HL,$9C40 Ninja Y address
C49B INC (HL) one tile down
C49C LD HL,($9C42) get Ninja position in tilemap
C49F LD DE,$001E +30
C4A2 JR $C467 => set Ninja position = HL, invert direction, Object procedure
C4A4: Routine at C4A4
C4A4 LD A,($7239) get Ninja direction
C4A7: ?? Movement handler
C4A7 LD HL,$7343 counter address
C4AA DEC (HL) decrease counter
C4AB JP NZ,$B8D0 => Update Ninja on tilemap
C4AE LD HL,($9C42) get Ninja position in tilemap
C4B1 LD DE,$6DC9 value for right dir = $6D88 (Tile screen 4) + 65
C4B4 LD A,($7239) get Ninja direction
C4B7 CP $01 direction = right?
C4B9 JR Z,$C4BE
C4BB LD DE,$6DC4 value for left dir = $6D88 (Tile screen 4) + 60
C4BE ADD HL,DE
C4BF LD A,(HL)
C4C0 INC A = $FF ?
C4C1 JR Z,$C4D0
C4C3 LD A,$09
C4C5 LD ($7346),A set Guard state = $09
C4C8 CALL $B596
C4CB LD B,$05
C4CD CALL $B4DE Increase PAY value by 500 - Guard killed by punch/kick
This entry point is used by the routine at C339.
C4D0 LD HL,$C4DE Movement handler address
C4D3 LD DE,$D4B0 Sprite Ninja/Guard jumping
C4D6 LD A,$01
C4D8 LD ($7343),A set counter = 1
C4DB JP $BFB0 Set movement handler = HL, Ninja sprite = DE
C4DE: ?? Movement handler
C4DE LD HL,$7343 counter address
C4E1 DEC (HL) decrease counter
C4E2 JP NZ,$B8D0 => Update Ninja on tilemap
C4E5 JP $C226 => Ninja standing
C4E8: Routine at C4E8
Used by the routines at BF7B and C24B.
C4E8 CALL $C57B Check for ??
C4EB RET NZ
C4EC POP HL
C4ED LD HL,$C4F6 Movement handler address
C4F0 LD DE,$D5AC Sprite Ninja jumping 3
C4F3 JP $BFB0 Set movement handler = HL, Ninja sprite = DE
C4F6: Movement handler (used in initial room)
C4F6 CALL $C57B Check for ??
C4F9 JP Z,$C504
C4FC LD B,$03
C4FE CALL $9DD9 Decrease Energy by B
C501 JP $C226 => Ninja standing
C504 LD HL,$C50D Movement handler address
C507 LD DE,$D5D6 Sprite Ninja jumping 4
C50A JP $BFB0 Set movement handler = HL, Ninja sprite = DE
C50D: Movement handler ??
C50D LD A,($7239) get Ninja direction
C510 CP $00 left?
C512 LD HL,$9C41 Ninja X address
C515 LD A,(HL)
C516 JR NZ,$C56C
C518 CP $00
C51A JP Z,$C319 => Going to room at Left
C51D DEC (HL)
C51E LD HL,($9C42) get Ninja position in tilemap
C521 DEC HL
C522 LD ($9C42),HL set Ninja position in tilemap
C525 CALL $C57B Check for ??
C528 JR NZ,$C533
C52A LD HL,$7343 counter address
C52D DEC (HL) decrease counter
C52E JP NZ,$C16E
C531 JR $C538
C533 LD B,$04
C535 CALL $9DD9 Decrease Energy by B
C538 LD DE,$660A
C53B LD B,$03
C53D LD HL,($9C42) get Ninja position in tilemap
C540 ADD HL,DE
C541 LD A,$64
C543 CP (HL)
C544 JR NC,$C558
C546 LD HL,$9C40 Ninja Y address
C549 DEC (HL)
C54A LD HL,($9C42) get Ninja position in tilemap
C54D PUSH DE
C54E LD DE,$FFE2 -30
C551 ADD HL,DE
C552 POP DE
C553 LD ($9C42),HL set Ninja position in tilemap
C556 JR $C53D
C558 INC HL
C559 CP (HL)
C55A JR C,$C546
C55C LD HL,$001E +30
C55F ADD HL,DE
C560 EX DE,HL
C561 DJNZ $C53D
C563 LD HL,$C5A0 Movement handler: switch Ninja to standing
C566 LD DE,$D5AC Sprite Ninja jumping 3
C569 JP $BFB0 Set movement handler = HL, Ninja sprite = DE
C56C CP $18
C56E JP Z,$C2FA => Going to room at Right
C571 INC (HL)
C572 LD HL,($9C42) get Ninja position in tilemap
C575 INC HL
C576 LD ($9C42),HL set Ninja position in tilemap
C579 JR $C525
C57B: Routine at C57B
Used by the routines at C4E8, C4F6 and C50D.
C57B LD A,($7239) get Ninja direction
C57E LD L,A
C57F ADD A,A
C580 ADD A,A
C581 ADD A,L * 5
C582 LD L,A
C583 LD H,$00
C585 LD DE,($9C42) get Ninja position in tilemap
C589 ADD HL,DE
C58A LD DE,$6590 Tile screen 0 start address
C58D ADD HL,DE
C58E LD BC,$0400
C591 LD DE,$001E +30
C594 LD A,$64
C596 CP (HL)
C597 JR NC,$C59A
C599 INC C
C59A ADD HL,DE
C59B DJNZ $C596
C59D XOR A
C59E CP C now Z=0: falling, Z=1: not falling
C59F RET
C5A0: Switch Ninja to standing (redirect)
C5A0 JP $C226 => Ninja standing
C5A3: Check for falling
Used by the routines at BC55, C1B6 and C24B.
C5A3 LD HL,($9C42) get Ninja position in tilemap
C5A6 LD DE,$00D3
C5A9 ADD HL,DE
C5AA LD DE,$6590 Tile screen 0 start address
C5AD ADD HL,DE
C5AE LD A,($7239) get Ninja direction
C5B1 LD D,$00 left?
C5B3 LD E,A
C5B4 ADD HL,DE
C5B5 LD B,$03
C5B7 LD C,$00
C5B9 LD A,$64
C5BB CP (HL)
C5BC JR NC,$C5C0
C5BE LD C,$01
C5C0 INC HL
C5C1 DJNZ $C5BB
C5C3 XOR A
C5C4 CP C
C5C5 RET
C5C6: Movement handler: Ninja falling down
C5C6 LD HL,($9C42) get Ninja position in tilemap
C5C9 LD DE,$001E +30
C5CC ADD HL,DE one row lower
C5CD LD ($9C42),HL set Ninja position in tilemap
C5D0 LD HL,$755B falling counter address
C5D3 INC (HL) increase falling counter
C5D4 LD HL,$9C40 Ninja Y address
C5D7 INC (HL) increase Ninja Y
C5D8 LD A,(HL) get Ninja Y
C5D9 CP $0A at room bottom?
C5DB JR Z,$C604 => Going to room Down from current
C5DD LD HL,($9C42) get Ninja position in tilemap
C5E0 LD DE,$6664
C5E3 ADD HL,DE
C5E4 LD A,$64
C5E6 CP (HL)
C5E7 JR C,$C5EE
C5E9 INC HL
C5EA CP (HL)
C5EB JP NC,$B8D0 => Update Ninja on tilemap
Ninja hit somehting after falling
C5EE LD A,$01
C5F0 LD ($A39E),A
C5F3 LD HL,$755B falling counter address
C5F6 LD B,(HL) get counter value
C5F7 LD (HL),$00 clear falling counter
C5F9 CALL $9DD9 Decrease Energy by B
C5FC LD B,$32
C5FE CALL $B59E
C601 JP $BFCC => Ninja sitting now
C604: Going to room Down from current
Used by the routines at C1B6, C24B, C3D9 and C5C6.
C604 XOR A
C605 LD ($9C40),A set Ninja Y = 0
C608 LD HL,($9C42) get Ninja position in tilemap
C60B LD DE,$FED4 -300
C60E ADD HL,DE 10 rows higher
C60F LD ($9C42),HL set Ninja position in tilemap
C612 LD HL,($7184) get Current Room address
C615 LD DE,$000A offset in room description
C618 ADD HL,DE now HL = room address + 10
C619 LD A,(HL) get Room Down address low byte
C61A INC HL
C61B LD H,(HL) get Room Down address high byte
C61C LD L,A
C61D LD ($7184),HL set Current Room address
C620 JP $B66A => Current Room changed
C623: Going to room Up from current
Used by the routine at C3D9.
C623 LD A,$0A
C625 LD ($9C40),A set Ninja Y = 10
C628 LD HL,($9C42) get Ninja position in tilemap
C62B LD DE,$012C +300
C62E ADD HL,DE 10 rows lower
C62F LD ($9C42),HL set Ninja position in tilemap
C632 LD HL,($7184) get Current Room address
C635 LD DE,$0008 offset in room description
C638 ADD HL,DE now HL = room address + 8
C639 LD A,(HL) get Room Up address low byte
C63A INC HL
C63B LD H,(HL) get Room Up address high byte
C63C LD L,A
C63D LD ($7184),HL set Current Room address
C640 JP $B66A => Current Room changed
C643: Ninja falling
Used by the routines at BC55, C1B6 and C24B.
C643 LD HL,$C5C6 Movement handler address: Ninja falling
C646 LD DE,$D582 Sprite Ninja falling
C649 JP $BFB0 Set movement handler = HL, Ninja sprite = DE
C64C: Room 791E (room with pier) initialization
C64C LD HL,$C65A
C64F LD DE,$666C = $6590 (Tile screen 0) + 220
C652 LD BC,$0011 17
C655 LDIR copy bytes to Background
C657 JP $B724 => Finish room initialization
C65A: Data for room with pier
C65A DEFB $E3,$E3,$E3,$F6,$F6,$E3,$E3,$E3
C662 DEFB $F6,$F6,$E3,$E3,$E3,$E3,$E3,$E3
C66A DEFB $E3
C66B: Guard data for rooms 7C9C/92EF
C66B DEFB $0E,$00,$0E,$00,$04,$00
C671: Room 93DF/947C (room right from Train) initialization
C671 LD HL,$947C room 947C at left of Train 1
C674 LD ($7CA0),HL set "room to left" for room 7C9C
C677 LD HL,$93DF room 93DF at right of Train 1
C67A LD ($7CA2),HL set "room to right" for room 7C9C
C67D LD A,$6C tile for "1" sign
C67F JR $C68F
C681: Room 982B initialization
C681 LD HL,$9A1E room 9A1E at left of Train 2
C684 LD ($7CA0),HL set "room to left" for room 7C9C
C687 LD HL,$982B room 982B at right of Train 2
C68A LD ($7CA2),HL set "room to right" for room 7C9C
C68D LD A,$75 tile for "2" sign
Fill 3x3 block with tile for "1"/"2" sign
C68F LD HL,$7D20
C692 LD DE,$0003
C695 LD C,$03
C697 LD B,$03
C699 LD (HL),A
C69A INC HL
C69B INC A
C69C DJNZ $C699
C69E ADD HL,DE
C69F DEC C
C6A0 JR NZ,$C697
C6A2 JP $B724 => Finish room initialization
C6A5: Room 7C9C procedure (tunnel Train)
C6A5 LD A,($9C41) get Ninja X
C6A8 CP $0C
C6AA JP NZ,$B937 => Standard room procedure
C6AD LD A,$4B
C6AF LD ($7343),A set counter = 75
C6B2 LD DE,($9C42) get Ninja position in tilemap
C6B6 LD A,($9C41) get Ninja X
C6B9 INC A
C6BA LD B,A
C6BB INC DE
C6BC LD HL,$C70C Movement handler: Train moving right
C6BF LD A,($7239) get Ninja direction
C6C2 CP $00 left?
C6C4 JR NZ,$C6CD right =>
C6C6 LD HL,$C6E2 Movement handler: Train moving left
C6C9 DEC B
C6CA DEC B
C6CB DEC DE
C6CC DEC DE
C6CD LD A,B
C6CE LD ($9C41),A set Ninja X
C6D1 LD ($9C42),DE set Ninja position in tilemap
C6D5 LD DE,$D486 Sprite Ninja/Guard standing
C6D8 LD ($7186),DE set Ninja sprite
C6DC LD ($B8CE),HL set Movement handler
C6DF JP $B937 => Standard room procedure
C6E2: Movement handler (B8CE handler): Train moving left
C6E2 LD B,$02
C6E4 LD DE,$676F
C6E7 LD HL,$676E
C6EA PUSH BC
C6EB LD BC,$001D
C6EE LD A,(DE)
C6EF LDDR
C6F1 LD (DE),A
C6F2 POP BC
C6F3 DJNZ $C6E4
This entry point is used by the routine at C70C.
C6F5 LD HL,$6950
C6F8 LD DE,$6951
C6FB LD (HL),$01
C6FD LD BC,$001D
C700 LDIR
C702 LD HL,$7343 counter address
C705 DEC (HL) decrease counter
C706 JP Z,$C226 => Ninja standing
C709 JP $B8D0 => Update Ninja on tilemap
C70C: Movement handler (B8CE handler): Train moving right
C70C LD B,$02
C70E LD DE,$6752
C711 LD HL,$6753
C714 PUSH BC
C715 LD BC,$001D
C718 LD A,(DE)
C719 LDIR
C71B LD (DE),A
C71C POP BC
C71D DJNZ $C70E
C71F JR $C6F5
C721: Font
C721 DEFB $00,$00,$00,$00,$00,$00,$00,$00 ' '
C729 DEFB $00,$10,$10,$10,$10,$00,$10,$00 '!'
C731 DEFB $00,$24,$24,$00,$00,$00,$00,$00 '"'
C739 DEFB $00,$24,$7E,$24,$24,$7E,$24,$00 '#'
C741 DEFB $00,$08,$3E,$28,$3E,$0A,$3E,$08 '$'
C749 DEFB $00,$62,$64,$08,$10,$26,$46,$00 '%'
C751 DEFB $00,$10,$28,$10,$2A,$44,$3A,$00 '&'
C759 DEFB $00,$08,$10,$00,$00,$00,$00,$00 '''
C761 DEFB $00,$04,$08,$08,$08,$08,$04,$00 '('
C769 DEFB $00,$20,$10,$10,$10,$10,$20,$00 ')'
C771 DEFB $00,$00,$14,$08,$3E,$08,$14,$00 '*'
C779 DEFB $00,$00,$08,$08,$3E,$08,$08,$00 '+'
C781 DEFB $00,$00,$00,$00,$00,$08,$08,$10 ','
C789 DEFB $00,$00,$00,$00,$3E,$00,$00,$00 '-'
C791 DEFB $00,$00,$00,$00,$00,$18,$18,$00 '.'
C799 DEFB $00,$00,$02,$04,$08,$10,$20,$00 '/'
C7A1 DEFB $00,$7E,$42,$42,$46,$46,$7E,$00 '0'
C7A9 DEFB $00,$08,$08,$08,$18,$18,$18,$00 '1'
C7B1 DEFB $00,$7E,$02,$02,$7E,$60,$7E,$00 '2'
C7B9 DEFB $00,$7E,$02,$1E,$06,$06,$7E,$00 '3'
C7C1 DEFB $00,$42,$42,$7E,$06,$06,$06,$00 '4'
C7C9 DEFB $00,$7E,$40,$7E,$06,$06,$7E,$00 '5'
C7D1 DEFB $00,$7E,$40,$7E,$46,$46,$7E,$00 '6'
C7D9 DEFB $00,$7E,$02,$02,$06,$06,$06,$00 '7'
C7E1 DEFB $00,$7E,$42,$7E,$46,$46,$7E,$00 '8'
C7E9 DEFB $00,$7E,$42,$7E,$06,$06,$06,$00 '9'
C7F1 DEFB $00,$00,$00,$10,$00,$00,$10,$00 ':'
C7F9 DEFB $00,$00,$10,$00,$00,$10,$10,$20 ';'
C801 DEFB $00,$00,$04,$08,$10,$08,$04,$00 '<'
C809 DEFB $00,$00,$00,$3E,$00,$3E,$00,$00 '='
C811 DEFB $00,$00,$10,$08,$04,$08,$10,$00 '>'
C819 DEFB $00,$3C,$42,$04,$08,$00,$08,$00 '?'
C821 DEFB $00,$3C,$4A,$56,$5E,$40,$3C,$00 '@'
C829 DEFB $00,$7E,$42,$42,$7E,$46,$46,$00 'A'
C831 DEFB $00,$7C,$42,$7C,$46,$46,$7C,$00 'B'
C839 DEFB $00,$7E,$40,$40,$60,$60,$7E,$00 'C'
C841 DEFB $00,$7C,$42,$42,$46,$46,$7C,$00 'D'
C849 DEFB $00,$7E,$40,$7E,$60,$60,$7E,$00 'E'
C851 DEFB $00,$7E,$40,$7E,$60,$60,$60,$00 'F'
C859 DEFB $00,$7E,$42,$40,$4E,$46,$7E,$00 'G'
C861 DEFB $00,$42,$42,$7E,$46,$46,$46,$00 'H'
C869 DEFB $00,$08,$08,$08,$18,$18,$18,$00 'I'
C871 DEFB $00,$02,$02,$02,$46,$46,$7E,$00 'J'
C879 DEFB $00,$42,$42,$7E,$4C,$4C,$4C,$00 'K'
C881 DEFB $00,$40,$40,$40,$40,$40,$7E,$00 'L'
C889 DEFB $00,$7E,$52,$52,$56,$56,$56,$00 'M'
C891 DEFB $00,$72,$52,$52,$56,$56,$5E,$00 'N'
C899 DEFB $00,$7E,$42,$42,$46,$46,$7E,$00 'O'
C8A1 DEFB $00,$7E,$42,$42,$7E,$60,$60,$00 'P'
C8A9 DEFB $00,$7E,$42,$42,$4E,$4E,$7F,$07 'Q'
C8B1 DEFB $00,$7E,$42,$42,$7E,$4C,$4C,$00 'R'
C8B9 DEFB $00,$7E,$40,$7E,$06,$06,$7E,$00 'S'
C8C1 DEFB $00,$7E,$08,$08,$18,$18,$18,$00 'T'
C8C9 DEFB $00,$42,$42,$42,$46,$46,$7E,$00 'U'
C8D1 DEFB $00,$42,$42,$42,$2C,$2C,$18,$00 'V'
C8D9 DEFB $00,$52,$52,$52,$56,$56,$7E,$00 'W'
C8E1 DEFB $00,$42,$24,$18,$18,$2C,$46,$00 'X'
C8E9 DEFB $00,$42,$42,$7E,$18,$18,$18,$00 'Y'
C8F1 DEFB $00,$7E,$02,$7E,$60,$60,$7E,$00 'Z'
C8F9: Data block at C8F9
C8F9 DEFM " "
C8FA DEFB $6D,$C2,$CE
C8FD DEFM "X2LD "
C90A DEFB $44,$C2,$CE
C90D DEFM "DLDC "
C91A DEFB $38,$C2,$CB
C91D DEFM "ICKP "
C92A DEFB $28,$C3,$CE
C92D DEFM "DEDG "
C93A DEFB $4E,$C3,$CE
C93D DEFM "KICR "
C94A DEFB $FE,$C1,$CC
C94D DEFM "ADUP "
C95A DEFB $47,$C2,$CC
C95D DEFM "AD2R "
C96A DEFB $50,$C2,$CE
C96D DEFM "LADR "
C97A DEFB $E9,$C1,$CC
C97D DEFM "AD2L "
C98A DEFB $3C,$C2,$CE
C98D DEFM "LADL "
C99A DEFB $E2,$C1,$C6
C99D DEFM "TFLL "
C9AA DEFB $63,$C1,$CE
C9AD DEFM "FTFL "
C9BA DEFB $69,$C1,$CC
C9BD DEFM "OIUT "
C9CA DEFB $04,$C1,$CA
C9CD DEFM "AK "
C9DA DEFB $23,$C1,$CA
C9DD DEFM "AKE2 "
C9EA DEFB $F0,$C0,$CC
C9ED DEFM "EFSC "
C9FA DEFB $9A,$C1,$D3
C9FD DEFM "TCRH "
CA0A DEFB $C9,$C0,$CC
CA0D DEFM "EGP "
CA1A DEFB $3C,$C1,$C4
CA1D DEFM "NSCR "
CA2A DEFB $9D,$C4,$CC
CA2D DEFM "OIUY "
CA3A DEFB $7E,$C0,$CA
CA3D DEFM "AKSN "
CA4A DEFB $9D,$C0,$CA
CA4D DEFM "AKS2 "
CA5A DEFB $6A,$C0,$D2
CA5D DEFM "ITSC "
CA6A DEFB $7B,$C1,$C4
CA6D DEFM "OWNP "
CA7A DEFB $24,$C0,$D5
CA7D DEFM "PP "
CA8A DEFB $01,$C0,$D2
CA8D DEFM "ITEP "
CA9A DEFB $46,$C0,$CE
CA9D DEFM "TRN2 "
CAAA DEFB $F2,$BF,$CC
CAAD DEFM "EFTP "
CABA DEFB $CC,$C0,$CE
CABD DEFM "TRN1 "
CACA DEFB $DB,$BF,$CE
CACD DEFM "LEFT "
CADA DEFB $E4,$BF,$CC
CADD DEFM "ADDD "
CAEA DEFB $19,$C3,$CC
CAED DEFM "ADDP "
CAFA DEFB $5A,$C2,$CE
CAFD DEFM " "
CB0A DEFB $FF,$FF,$C3
CB0D DEFM "PLP1 "
CB1A DEFB $3B,$BF,$C3
CB1D DEFM "PLP2 "
CB2A DEFB $37,$BF,$C3
CB2D DEFM "RUTP "
CB3A DEFB $BF,$C0,$D3
CB3D DEFM "QUSH "
CB4A DEFB $16,$BF,$C4
CB4D DEFM "NTPL "
CB5A DEFB $BE,$BF,$C3
CB5D DEFM "MPLD "
CB6A DEFB $13,$C2,$CE
CB6D DEFM "DOWN "
CB7A DEFB $CD,$BF,$CA
CB7D DEFM "UMPP "
CB8A DEFB $BA,$C1,$CE
CB8D DEFM "DRTY "
CB9A DEFB $EF,$BE,$CC
CB9D DEFM "EAPR "
CBAA DEFB $66,$C3,$CE
CBAD DEFM "BDEE "
CBBA DEFB $EA,$BE,$CE
CBBD DEFM "RITE "
CBCA DEFB $FE,$BF,$CE
CBCD DEFM "ONIN "
CBDA DEFB $76,$BF,$C6
CBDD DEFM "LYP "
CBEA DEFB $24,$BF,$C3
CBED DEFM "OD98 "
CBFA DEFB $A0,$BE,$C3
CBFD DEFM "OD99 "
CC0A DEFB $82,$BE,$C8
CC0D DEFM "ANGR "
CC1A DEFB $73,$BE,$CE
CC1D DEFM "COPT "
CC2A DEFB $C5,$BE,$CE
CC2D DEFM "UP "
CC3A DEFB $04,$BF,$CE
CC3D DEFM "DDG2 "
CC4A DEFB $3B,$BE,$CE
CC4D DEFM "PGRD "
CC5A DEFB $2C,$BE,$D4
CC5D DEFM "HROP "
CC6A DEFB $19,$BE,$C2
CC6D DEFM "UNGD "
CC7A DEFB $0C,$BE,$C2
CC7D DEFM "UNGU "
CC8A DEFB $05,$BE,$CE
CC8D DEFM "LFTH "
CC9A DEFB $F7,$BD,$C3
CC9D DEFM "OD3 "
CCAA DEFB $D4,$BD,$D0
CCAD DEFM "UNCH "
CCBA DEFB $1C,$BE,$C3
CCBD DEFM "OD22 "
CCCA DEFB $8B,$BD,$CE
CCCD DEFM "NEAR "
CCDA DEFB $A1,$BD,$D0
CCDD DEFM "ROGO "
CCEA DEFB $93,$BD,$CE
CCED DEFM "FIRE "
CCFA DEFB $44,$BE,$C6
CCFD DEFM "ALLN "
CD0A DEFB $DC,$C4,$C6
CD0D DEFM "ALLQ "
CD1A DEFB $22,$C4,$CE
CD1D DEFM "DGLN "
CD2A DEFB $60,$BD,$C7
CD2D DEFM "LANS "
CD3A DEFB $41,$BD,$CE
CD3D DEFM "GLAN "
CD4A DEFB $5B,$BD,$D3
CD4D DEFM "TANP "
CD5A DEFB $39,$BD,$D4
CD5D DEFM "BFST "
CD6A DEFB $34,$BD,$C3
CD6D DEFM "HRLP "
CD7A DEFB $D6,$BC,$CC
CD7D DEFM "LLP2 "
CD8A DEFB $BF,$BC,$CE
CD8D DEFM "BROT "
CD9A DEFB $CE,$BC,$CC
CD9D DEFM "OIP2 "
CDAA DEFB $86,$BC,$C7
CDAD DEFM "DDIS "
CDBA DEFB $45,$C4,$D1
CDBD DEFM "LLP1 "
CDCA DEFB $53,$BC,$C4
CDCD DEFM "GDIS "
CDDA DEFB $56,$C4,$D3
CDDD DEFM "CRCB "
CDEA DEFB $6B,$BC,$D2
CDED DEFM "EVQ "
CDFA DEFB $23,$BD,$CC
CDFD DEFM "LLP1 "
CE0A DEFB $1F,$BC,$C3
CE0D DEFM "OLOK "
CE1A DEFB $07,$BC,$CB
CE1D DEFM "NOB "
CE2A DEFB $10,$BC,$C2
CE2D DEFM "CLP1 "
CE3A DEFB $D4,$BB,$C2
CE3D DEFM "CHRS "
CE4A DEFB $00,$F7,$C6
CE4D DEFM "TJMP "
CE5A DEFB $DB,$BB,$C8
CE5D DEFM "IDFT "
CE6A DEFB $BF,$BB,$C6
CE6D DEFM "OTS1 "
CE7A DEFB $DE,$BB,$CE
CE7D DEFM "DRAW "
CE8A DEFB $E4,$BC,$C4
CE8D DEFM "LP2 "
CE9A DEFB $AA,$BB,$C4
CE9D DEFM "LP1 "
CEAA DEFB $A8,$BB,$D3
CEAD DEFM "ETIN "
CEBA DEFB $6C,$BB,$CE
CEBD DEFM "TKEY "
CECA DEFB $6E,$BB,$CC
CECD DEFM "OPQ1 "
CEDA DEFB $5A,$BB,$CF
CEDD DEFM "K "
CEEA DEFB $50,$BB,$CB
CEED DEFM "EYBD "
CEFA DEFB $55,$BB,$D3
CEFD DEFM "TN "
CF0A DEFB $B6,$C0,$CB
CF0D DEFM "EY "
CF1A DEFB $46,$BB,$D0
CF1D DEFM "UNCP "
CF2A DEFB $3B,$BB,$CC
CF2D DEFM "OPP2 "
CF3A DEFB $32,$BB,$CC
CF3D DEFM "OPP1 "
CF4A DEFB $30,$BB,$CE
CF4D DEFM "LEFE "
CF5A DEFB $E3,$BA,$CE
CF5D DEFM "RTED "
CF6A DEFB $D9,$BA,$CE
CF6D DEFM "TOPE "
CF7A DEFB $D1,$BA,$CE
CF7D DEFM "BOTE "
CF8A DEFB $C0,$BA,$D0
CF8D DEFM "IXX2 "
CF9A DEFB $96,$BA,$D0
CF9D DEFM "IXEX "
CFAA DEFB $93,$BA,$C3
CFAD DEFM "OD31 "
CFBA DEFB $57,$BA,$D0
CFBD DEFM "IXTB "
CFCA DEFB $29,$BA,$C3
CFCD DEFM "ENAT "
CFDA DEFB $1F,$BA,$C3
CFDD DEFM "OD37 "
CFEA DEFB $0F,$BA,$C3
CFED DEFM "OD36 "
CFFA DEFB $0C,$BA,$C8
CFFD DEFM "ITE3 "
D00A DEFB $07,$BA,$C1
D00D DEFM "TEXP "
D01A DEFB $04,$BA,$C3
D01D DEFM "OD39 "
D02A DEFB $DD,$B9,$C3
D02D DEFM "OD33 "
D03A DEFB $D9,$B9,$C3
D03D DEFM "OD32 "
D04A DEFB $D5,$B9,$C8
D04D DEFM "ITE2 "
D05A DEFB $D3,$B9,$C4
D05D DEFM "ATAX "
D06A DEFB $D0,$B9,$C5
D06D DEFM "XPLO "
D07A DEFB $E5,$AB,$D0
D07D DEFM "XEXP "
D08A DEFB $CD,$B9,$C3
D08D DEFM "OD35 "
D09A DEFB $AE,$B9,$C3
D09D DEFM "OD34 "
D0AA DEFB $AB,$B9,$C8
D0AD DEFM "ITE1 "
D0BA DEFB $A9,$B9,$C4
D0BD DEFM "REXP "
D0CA DEFB $A6,$B9,$C3
D0CD DEFM "OD10 "
D0DA DEFB $90,$B9,$CE
D0DD DEFM "THGD "
D0EA DEFB $75,$B9,$CE
D0ED DEFM "THDD "
D0FA DEFB $5E,$B9,$CF
D0FD DEFM "BEXP "
D10A DEFB $4B,$BA,$CF
D10D DEFM "BOFS "
D11A DEFB $0E,$BB,$CE
D11D DEFM "DMV1 "
D12A DEFB $11,$B9,$CE
D12D DEFM "DNTH "
D13A DEFB $ED,$B8,$CE
D13D DEFM "UPTH "
D14A DEFB $E3,$B8,$D2
D14D DEFM "MDOB "
D15A DEFB $15,$BB,$CE
D15D DEFM "DMVO "
D16A DEFB $9C,$B9,$CE
D16D DEFM "XTHR "
D17A DEFB $D3,$B8,$CC
D17D DEFM "OOPO "
D18A DEFB $C1,$B8,$C4
D18D DEFM "ELAY "
D19A DEFB $A1,$B8,$CC
D19D DEFM "PPP2 "
D1AA DEFB $8F,$B8,$CC
D1AD DEFM "PPP1 "
D1BA DEFB $8D,$B8,$C5
D1BD DEFM "NDRF P "
D1CE DEFB $70,$B7,$C9
D1D1 DEFM "NITB "
D1DE DEFB $7F,$B7,$C3
D1E1 DEFM "LOSP "
D1EE DEFB $60,$B7,$C5
D1F1 DEFM "NDNR "
D1FE DEFB $D1,$B7,$C3
D201 DEFM "OD21 "
D20E DEFB $54,$B7
D210: Table of 35 records, 2 bytes each, see B851
D210 DEFB $04,$CE,$09,$63,$09,$63,$09,$63,$09,$63
D21A DEFB $09,$63,$09,$63,$09,$D4,$05,$D0,$05,$D0
D224 DEFB $05,$D0,$06,$D2,$08,$D6,$02,$CA,$03,$CC
D22E DEFB $05,$D0,$05,$D0,$05,$D0,$03,$CC,$02,$CA
D238 DEFB $02,$CA,$03,$CC,$02,$CA,$06,$D2,$02,$CA
D242 DEFB $06,$D2,$02,$CA,$03,$CC,$03,$CC,$03,$CC
D24C DEFB $04,$CE,$04,$CE,$04,$CE,$04,$CE,$04,$CE
D256: Table ?? objects, 35 records, 7-byte records
+$04: Object tile
+$05/$06: Object procedure, or $0000
D256 DEFW $6F02 Object ?? 00
D258 DEFB $58,$04,$CE
D25B DEFW $0000
D25D DEFW $6664 Object: Console in room 80F6
D25F DEFB $7C,$09,$63
D262 DEFW $B320 Object procedure: flip trigger "D": set/remove wall in room 9739
D264 DEFW $6664 Object: Console in room 99A6
D266 DEFB $7D,$09,$63
D269 DEFW $B32A Object procedure: flip trigger "E": set/remove wall in room 97A6
D26B DEFW $6664 Object: Console in room 92A7
D26D DEFB $7E,$09,$63
D270 DEFW $B348 Object procedure: flip trigger "A": set/remove wall in room 7F48
D272 DEFW $6664 Object: Console in room 92EF
D274 DEFB $7F,$09,$63
D277 DEFW $B334 Object procedure: flip trigger "C": set/remove wall in room 8D5C
D279 DEFW $6664 Object: Console in room 9005
D27B DEFB $80,$09,$63
D27E DEFW $B33E Object procedure: flip trigger "B": set/remove wall in room 8F20
D280 DEFW $6FE2 Object ?? 06
D282 DEFB $1F,$09,$63
D285 DEFW $B8D0 Object procedure "Update Ninja on tilemap"
D287 DEFW $6669 Object ?? 07 Diskette
D289 DEFB $9C,$09,$D4
D28C DEFW $0000
D28E DEFW $659B Object ?? 08
D290 DEFB $9A,$05,$D0
D293 DEFW $0000
D295 DEFW $6750 Object ?? 09
D297 DEFB $38,$05,$D0
D29A DEFW $0000
D29C DEFW $6664 Object ?? 10
D29E DEFB $81,$05,$D0
D2A1 DEFW $0000
D2A3 DEFW $6664 Object ?? 11
D2A5 DEFB $65,$06,$D2
D2A8 DEFW $0000
D2AA DEFW $6664 Object ?? 12 BOMB ??
D2AC DEFB $66,$08,$D6
D2AF DEFW $0000
D2B1 DEFW $6664 Object ?? 13
D2B3 DEFB $67,$02,$CA
D2B6 DEFW $0000
D2B8 DEFW $6664 Object ?? 14
D2BA DEFB $68,$03,$CC
D2BD DEFW $0000
D2BF DEFW $6664 Object ?? 15
D2C1 DEFB $69,$05,$D0
D2C4 DEFW $0000
D2C6 DEFW $6664 Object ?? 16
D2C8 DEFB $6A,$05,$D0
D2CB DEFW $0000
D2CD DEFW $6664 Object ?? 17
D2CF DEFB $6B,$05,$D0
D2D2 DEFW $0000
D2D4 DEFW $6664 Object ?? 18
D2D6 DEFB $6C,$03,$CC
D2D9 DEFW $0000
D2DB DEFW $6664 Object ?? 19
D2DD DEFB $6D,$02,$CA
D2E0 DEFW $0000
D2E2 DEFW $6664 Object ?? 20
D2E4 DEFB $6D,$02,$CA
D2E7 DEFW $0000
D2E9 DEFW $6664 Object ?? 21
D2EB DEFB $6E,$03,$CC
D2EE DEFW $0000
D2F0 DEFW $6664 Object ?? 22
D2F2 DEFB $6F,$02,$CA
D2F5 DEFW $0000
D2F7 DEFW $6664 Object ?? 23
D2F9 DEFB $70,$06,$D2
D2FC DEFW $0000
D2FE DEFW $6664 Object ?? 24
D300 DEFB $71,$02,$CA
D303 DEFW $0000
D305 DEFW $6664 Object ?? 25
D307 DEFB $72,$06,$D2
D30A DEFW $0000
D30C DEFW $6664 Object ?? 26
D30E DEFB $73,$02,$CA
D311 DEFW $0000
D313 DEFW $6664 Object ?? 27
D315 DEFB $74,$03,$CC
D318 DEFW $0000
D31A DEFW $6664 Object ?? 28
D31C DEFB $75,$03,$CC
D31F DEFW $0000
D321 DEFW $6664 Object ?? 29
D323 DEFB $76,$03,$CC
D326 DEFW $0000
D328 DEFW $6664 Object ?? 30
D32A DEFB $77,$04,$CE
D32D DEFW $0000
D32F DEFW $6664 Object ?? 31
D331 DEFB $78,$04,$CE
D334 DEFW $0000
D336 DEFW $6664 Object ?? 32
D338 DEFB $79,$04,$CE
D33B DEFW $0000
D33D DEFW $6664 Object ?? 33
D33F DEFB $7A,$04,$CE
D342 DEFW $0000
D344 DEFW $6664 Object ?? 34
D346 DEFB $7B,$04,$CE
D349 DEFB $00,$00
D34B: Data block at D34B
D34B DEFW $6664
D34D: Table of objects, 35 records, 5 bytes each
+$00/$01: room address
+$02/$03: address in Tile screen 0
+$04: tile byte
D34D DEFW $9ED9,$66DF
D351 DEFB $81
D352 DEFW $9E22,$671C
D356 DEFB $65
D357 DEFW $9E22,$672E BOMB, placement depends on Level
D35B DEFB $66
D35C DEFW $990D,$6787
D360 DEFB $67
D361 DEFW $8D5C,$6767
D365 DEFB $68
D366 DEFW $8EE1,$675E
D36A DEFB $69
D36B DEFW $889F,$66DC
D36F DEFB $6A
D370 DEFW $890E,$6699
D374 DEFB $6B
D375 DEFW $8CC8,$6782
D379 DEFB $6C
D37A DEFW $8739,$66AA #10
D37E DEFB $6D
D37F DEFW $8799,$6757
D383 DEFB $6E
D384 DEFW $913F,$6782
D388 DEFB $6F
D389 DEFW $8321,$6777
D38D DEFB $70
D38E DEFW $8162,$6782
D392 DEFB $71
D393 DEFW $7EF2,$6788
D397 DEFB $72
D398 DEFW $7F48,$6744
D39C DEFB $73
D39D DEFW $7C6D,$6747
D3A1 DEFB $74
D3A2 DEFW $7A9E,$675D
D3A6 DEFB $75
D3A7 DEFW $7A9E,$6767
D3AB DEFB $76
D3AC DEFW $7A9E,$6769 #20
D3B0 DEFB $77
D3B1 DEFW $7AF8,$6785
D3B5 DEFB $78
D3B6 DEFW $7AF8,$6786
D3BA DEFB $79
D3BB DEFW $9376,$673B
D3BF DEFB $7A
D3C0 DEFW $79C6,$6785
D3C4 DEFB $7B
D3C5 DEFW $80F6,$6773 Console in room 80F6
D3C9 DEFB $7C
D3CA DEFW $99A6,$6783 Console in room 99A6
D3CE DEFB $7D
D3CF DEFW $92A7,$675D Console in room 92A7, see D26B
D3D3 DEFB $7E
D3D4 DEFW $92EF,$6668 Console in room 92EF
D3D8 DEFB $7F
D3D9 DEFW $9005,$66B5 Console in room 9005
D3DD DEFB $80
D3DE: Ninja/Guard sprites
Most of Ninja sprites are also Guard sprites, A775 procedure and A787 table used to translate Ninja tiles into Guard tiles.
Sprite Ninja/Guard walking 1
D3DE DEFB $FF,$FF,$FF,$FF,$FF,$FF
D3E4 DEFB $FF,$FF,$FF,$FF,$FF,$FF
D3EA DEFB $FF,$FF,$4F,$50,$51,$FF
D3F0 DEFB $FF,$FF,$52,$53,$54,$FF
D3F6 DEFB $FF,$FF,$55,$56,$57,$FF
D3FC DEFB $FF,$FF,$58,$59,$FF,$FF
D402 DEFB $FF,$5A,$5B,$5C,$FF,$FF
Sprite Ninja/Guard walking 2
D408 DEFB $FF,$FF,$FF,$FF,$FF,$FF
D40E DEFB $FF,$FF,$FF,$FF,$FF,$FF
D414 DEFB $FF,$FF,$4F,$50,$51,$FF
D41A DEFB $FF,$FF,$52,$53,$54,$FF
D420 DEFB $FF,$FF,$55,$5E,$5F,$FF
D426 DEFB $FF,$FF,$60,$61,$62,$FF
D42C DEFB $FF,$FF,$63,$64,$FF,$FF
Sprite Ninja/Guard walking 3
D432 DEFB $FF,$FF,$FF,$FF,$FF,$FF
D438 DEFB $FF,$FF,$FF,$FF,$FF,$FF
D43E DEFB $FF,$FF,$4F,$50,$51,$FF
D444 DEFB $FF,$FF,$52,$53,$54,$FF
D44A DEFB $FF,$FF,$5D,$65,$66,$FF
D450 DEFB $FF,$FF,$67,$68,$69,$FF
D456 DEFB $FF,$6A,$6B,$6C,$FF,$FF
Sprite Ninja/Guard walking 4
D45C DEFB $FF,$FF,$FF,$FF,$FF,$FF
D462 DEFB $FF,$FF,$FF,$FF,$FF,$FF
D468 DEFB $FF,$FF,$4F,$50,$51,$FF
D46E DEFB $FF,$FF,$52,$53,$54,$FF
D474 DEFB $FF,$FF,$5D,$6D,$57,$FF
D47A DEFB $FF,$6F,$70,$71,$72,$FF
D480 DEFB $FF,$73,$74,$FF,$75,$FF
Sprite Ninja/Guard standing
D486 DEFB $FF,$FF,$FF,$FF,$FF,$FF
D48C DEFB $FF,$FF,$F4,$F5,$FF,$FF
D492 DEFB $FF,$02,$03,$F6,$FF,$FF
D498 DEFB $FF,$05,$06,$07,$08,$FF
D49E DEFB $FF,$0A,$0B,$0C,$0D,$FF
D4A4 DEFB $FF,$FF,$0E,$0F,$10,$FF
D4AA DEFB $FF,$FF,$11,$FF,$12,$FF
Sprite Ninja/Guard jumping
D4B0 DEFB $FF,$FF,$13,$14,$FF,$FF
D4B6 DEFB $FF,$15,$16,$17,$FF,$FF
D4BC DEFB $FF,$18,$19,$1A,$FF,$FF
D4C2 DEFB $FF,$1B,$1C,$1D,$FF,$FF
D4C8 DEFB $FF,$FF,$1E,$1F,$FF,$FF
D4CE DEFB $FF,$FF,$FF,$FF,$FF,$FF
D4D4 DEFB $FF,$FF,$FF,$FF,$FF,$FF
Sprite Ninja/Guard jump-kick
D4DA DEFB $FF,$FF,$20,$21,$FF,$FF
D4E0 DEFB $4D,$22,$23,$FF,$FF,$FF
D4E6 DEFB $4E,$24,$25,$26,$27,$2C
D4EC DEFB $FF,$28,$29,$2A,$2B,$FF
D4F2 DEFB $FF,$FF,$2D,$2E,$FF,$FF
D4F8 DEFB $FF,$FF,$FF,$FF,$FF,$FF
D4FE DEFB $FF,$FF,$FF,$FF,$FF,$FF
Sprite Ninja/Guard punching
D504 DEFB $FF,$FF,$FF,$FF,$FF,$FF
D50A DEFB $FF,$FF,$00,$01,$FF,$FF
D510 DEFB $FF,$FF,$2F,$30,$31,$FF
D516 DEFB $FF,$FF,$32,$33,$34,$FF
D51C DEFB $FF,$FF,$35,$0C,$0D,$FF
D522 DEFB $FF,$FF,$0E,$0F,$10,$FF
D528 DEFB $FF,$FF,$11,$FF,$12,$FF
Sprite Ninja on ladder
D52E DEFB $FF,$FF,$40,$FF,$FF,$FF
D534 DEFB $FF,$FF,$41,$42,$FF,$FF
D53A DEFB $FF,$FF,$43,$44,$FF,$FF
D540 DEFB $FF,$FF,$45,$46,$FF,$FF
D546 DEFB $FF,$FF,$47,$48,$FF,$FF
D54C DEFB $FF,$FF,$49,$4A,$FF,$FF
D552 DEFB $FF,$FF,$4B,$4C,$FF,$FF
Sprite Ninja sitting
D558 DEFB $FF,$FF,$FF,$FF,$FF,$FF
D55E DEFB $FF,$FF,$FF,$FF,$FF,$FF
D564 DEFB $FF,$FF,$FF,$FF,$FF,$FF
D56A DEFB $FF,$FF,$FF,$36,$FF,$FF
D570 DEFB $FF,$FF,$37,$38,$39,$FF
D576 DEFB $FF,$FF,$3A,$3B,$3C,$FF
D57C DEFB $FF,$FF,$3D,$3E,$3F,$FF
Sprite Ninja falling
D582 DEFB $FF,$FF,$6E,$7C,$FF,$FF
D588 DEFB $FF,$FF,$7D,$7E,$FF,$FF
D58E DEFB $FF,$FF,$7F,$80,$FF,$FF
D594 DEFB $FF,$FF,$81,$82,$FF,$FF
D59A DEFB $FF,$FF,$76,$77,$FF,$FF
D5A0 DEFB $FF,$FF,$78,$79,$FF,$FF
D5A6 DEFB $FF,$FF,$7A,$7B,$FF,$FF
Sprite Ninja jumping 3
D5AC DEFB $FF,$FF,$FF,$FF,$FF,$FF
D5B2 DEFB $FF,$FF,$8D,$8E,$FF,$FF
D5B8 DEFB $FF,$8F,$90,$91,$92,$FF
D5BE DEFB $FF,$93,$94,$95,$96,$FF
D5C4 DEFB $FF,$97,$98,$99,$9A,$FF
D5CA DEFB $FF,$9B,$9C,$9D,$FF,$FF
D5D0 DEFB $FF,$9E,$FF,$FF,$FF,$FF
Sprite Ninja jumping 4
D5D6 DEFB $FF,$FF,$84,$88,$FF,$FF
D5DC DEFB $FF,$8C,$85,$89,$FF,$FF
D5E2 DEFB $FF,$83,$86,$8A,$FF,$FF
D5E8 DEFB $FF,$FF,$87,$8B,$FF,$FF
D5EE DEFB $FF,$FF,$FF,$FF,$FF,$FF
D5F4 DEFB $FF,$FF,$FF,$FF,$FF,$FF
D5FA DEFB $FF,$FF,$FF,$FF,$FF,$FF
D600: Front tiles, 124 tiles, 17 bytes each
D600 DEFB $00,$FF,$00,$D8,$00,$A8,$00,$D8,$00,$FF,$00,$8A,$00,$8A,$00,$8A,$30
D611 DEFB $00,$FF,$00,$00,$00,$00,$00,$00,$00,$FF,$00,$AA,$00,$AA,$00,$AA,$30
D622 DEFB $00,$FF,$00,$15,$00,$1B,$00,$15,$00,$FF,$00,$B1,$00,$B1,$00,$B1,$30
D633 DEFB $00,$8A,$00,$8A,$00,$8F,$00,$A8,$00,$A8,$00,$88,$00,$8F,$00,$8A,$30
D644 DEFB $00,$AA,$00,$AA,$00,$FF,$00,$00,$00,$00,$00,$00,$00,$FF,$00,$AA,$30
D655 DEFB $00,$B1,$00,$B1,$00,$F1,$00,$15,$00,$15,$00,$11,$00,$F1,$00,$B1,$30
D666 DEFB $00,$8A,$00,$8A,$00,$8A,$00,$8F,$00,$A8,$00,$A8,$00,$88,$00,$FF,$30
D677 DEFB $00,$AA,$00,$AA,$00,$AA,$00,$FF,$00,$00,$00,$00,$00,$00,$00,$FF,$30
D688 DEFB $00,$B1,$00,$B1,$00,$B1,$00,$F1,$00,$15,$00,$15,$00,$11,$00,$FF,$30
D699 DEFB $00,$FF,$00,$80,$00,$FF,$00,$95,$00,$95,$00,$95,$00,$95,$00,$FF,$30
D6AA DEFB $00,$FF,$00,$01,$00,$FF,$00,$59,$00,$59,$00,$59,$00,$59,$00,$FF,$30
D6BB DEFB $9B,$64,$13,$AC,$01,$FE,$00,$FF,$00,$FF,$00,$BF,$00,$FF,$00,$FD,$0D
D6CC DEFB $00,$5F,$00,$FB,$00,$BF,$00,$DF,$00,$FF,$00,$7D,$00,$EF,$00,$FF,$25
D6DD DEFB $00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$00
D6EE DEFB $00,$FF,$00,$FF,$00,$FB,$00,$DB,$00,$DF,$00,$FF,$00,$F7,$00,$F6,$50
D6FF DEFB $00,$DF,$00,$FF,$00,$FF,$00,$FB,$00,$FF,$00,$FF,$00,$EF,$00,$FF,$70
D710 DEFB $00,$F3,$00,$C9,$00,$89,$00,$B6,$00,$C8,$00,$C9,$00,$E7,$00,$FF,$68
D721 DEFB $00,$FE,$00,$F7,$00,$F7,$00,$DF,$00,$DF,$00,$FD,$00,$FD,$00,$FF,$70
D732 DEFB $00,$FF,$00,$00,$00,$FF,$00,$00,$00,$00,$00,$00,$00,$24,$00,$00,$78
D743 DEFB $00,$FF,$00,$AF,$00,$AF,$00,$AF,$00,$AD,$00,$AD,$00,$FF,$00,$FF,$60
D754 DEFB $F0,$07,$E0,$08,$E0,$0F,$C0,$1D,$C0,$1B,$80,$3A,$80,$31,$80,$27,$32
D765 DEFB $00,$FF,$00,$00,$00,$FF,$00,$BB,$00,$7D,$00,$00,$00,$7D,$00,$7D,$32
D776 DEFB $07,$E0,$03,$10,$03,$F0,$01,$B8,$01,$D8,$00,$5C,$00,$8C,$00,$E4,$32
D787 DEFB $80,$36,$80,$36,$80,$2E,$80,$2E,$80,$22,$80,$2C,$80,$36,$80,$36,$32
D798 DEFB $00,$FE,$00,$FE,$00,$FE,$00,$FE,$00,$FE,$00,$00,$00,$FE,$00,$FE,$32
D7A9 DEFB $00,$EC,$00,$EC,$00,$F4,$00,$F4,$00,$84,$00,$74,$00,$EC,$00,$EC,$32
D7BA DEFB $80,$27,$80,$31,$80,$3A,$C0,$1A,$C0,$1D,$E0,$0F,$E0,$08,$F0,$07,$32
D7CB DEFB $00,$7D,$00,$7D,$00,$00,$00,$7C,$00,$BB,$00,$FF,$00,$00,$00,$FF,$32
D7DC DEFB $00,$E4,$00,$8C,$00,$1C,$01,$18,$01,$B8,$03,$F0,$03,$10,$07,$E0,$32
D7ED DEFB $00,$FF,$00,$00,$00,$FF,$00,$55,$00,$55,$00,$55,$00,$55,$00,$FF,$30
D7FE DEFB $B3,$4C,$B2,$4D,$22,$DD,$02,$FD,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$0D
D80F DEFB $FF,$00,$FF,$00,$FF,$00,$FF,$00,$F8,$00,$F0,$07,$F0,$07,$F0,$00,$FF
D820 DEFB $FF,$00,$FF,$00,$FF,$00,$E7,$00,$C3,$18,$03,$18,$03,$58,$01,$00,$FF
D831 DEFB $E0,$0F,$C0,$1F,$80,$3F,$80,$3F,$C0,$00,$FE,$00,$FE,$00,$FE,$00,$FF
D842 DEFB $00,$FE,$00,$FE,$00,$FA,$00,$FE,$01,$B0,$07,$B0,$07,$B0,$07,$B0,$FF
D853 DEFB $FE,$00,$FE,$00,$FE,$00,$FE,$00,$FE,$00,$FE,$00,$FE,$00,$FE,$00,$FF
D864 DEFB $07,$B0,$07,$B0,$07,$B0,$07,$B0,$07,$B0,$07,$B0,$07,$B0,$07,$B0,$FF
D875 DEFB $FE,$00,$FE,$00,$FE,$00,$E6,$00,$C2,$18,$C0,$00,$80,$3F,$00,$7F,$FF
D886 DEFB $07,$B0,$07,$B0,$07,$B0,$07,$B0,$07,$B0,$03,$B0,$01,$FC,$00,$FE,$FF
D897 DEFB $00,$FF,$00,$00,$00,$00,$00,$00,$00,$FF,$00,$00,$00,$FF,$00,$00,$10
D8A8 DEFB $00,$99,$00,$9D,$00,$99,$00,$9B,$00,$DB,$00,$D9,$00,$99,$00,$B9,$28
D8B9 DEFB $00,$FF,$00,$66,$00,$00,$00,$00,$00,$FF,$00,$00,$00,$FF,$00,$99,$10
D8CA DEFB $00,$FF,$00,$FF,$00,$81,$00,$81,$00,$FF,$00,$81,$00,$81,$00,$81,$30
D8DB DEFB $00,$FF,$00,$81,$00,$81,$00,$81,$00,$81,$00,$81,$00,$81,$00,$81,$30
D8EC DEFB $81,$3C,$C3,$08,$E1,$0C,$C0,$0A,$81,$34,$03,$78,$07,$F0,$0F,$60,$FF
D8FD DEFB $81,$3C,$C1,$08,$81,$3C,$81,$2C,$81,$34,$81,$3C,$81,$24,$81,$3C,$FF
D90E DEFB $81,$3C,$C3,$10,$87,$30,$03,$50,$81,$2C,$C0,$1E,$E0,$0F,$F0,$06,$FF
D91F DEFB $FF,$00,$FF,$00,$FF,$00,$F8,$00,$F0,$07,$F0,$04,$F0,$07,$C0,$00,$FF
D930 DEFB $FF,$00,$FF,$00,$F8,$00,$10,$07,$00,$E5,$00,$25,$00,$E7,$00,$1B,$FF
D941 DEFB $FF,$00,$FF,$00,$FF,$00,$7F,$00,$78,$00,$70,$07,$30,$04,$10,$C4,$FF
D952 DEFB $FF,$00,$FF,$00,$FF,$00,$FF,$00,$C7,$00,$03,$38,$03,$E8,$01,$34,$FF
D963 DEFB $FF,$00,$FF,$00,$FC,$00,$F0,$03,$00,$0C,$00,$F9,$00,$9E,$00,$F1,$FF
D974 DEFB $80,$31,$00,$4A,$00,$46,$00,$36,$00,$8A,$00,$FF,$00,$43,$00,$7E,$FF
D985 DEFB $00,$A3,$00,$C2,$00,$DC,$00,$61,$00,$42,$00,$7F,$00,$E1,$00,$BF,$FF
D996 DEFB $00,$23,$00,$FE,$00,$A2,$00,$7F,$00,$14,$00,$08,$00,$D9,$00,$26,$FF
D9A7 DEFB $01,$5C,$00,$BE,$00,$E2,$00,$7F,$00,$42,$00,$FC,$00,$87,$00,$FC,$FF
D9B8 DEFB $FF,$00,$FF,$00,$FF,$00,$7F,$00,$01,$80,$00,$7E,$00,$22,$00,$FE,$FF
D9C9 DEFB $FC,$01,$F8,$02,$F0,$05,$E0,$0A,$40,$14,$02,$A8,$06,$D0,$0E,$E0,$FF
D9DA DEFB $1E,$C0,$1E,$C0,$1E,$C0,$1E,$C0,$1E,$C0,$1E,$C0,$1E,$C0,$1C,$C0,$FF
D9EB DEFB $18,$C3,$10,$C6,$01,$CC,$03,$D8,$07,$F0,$0F,$E0,$1F,$C0,$3F,$80,$FF
D9FC DEFB $3F,$80,$1F,$40,$0F,$A0,$07,$50,$02,$28,$40,$15,$60,$0B,$70,$07,$FF
DA0D DEFB $78,$03,$78,$03,$78,$03,$78,$03,$78,$03,$78,$03,$78,$03,$38,$03,$FF
DA1E DEFB $18,$C3,$08,$63,$80,$33,$C0,$1B,$E0,$0F,$F0,$07,$F8,$03,$FC,$01,$FF
DA2F DEFB $00,$FF,$00,$80,$00,$80,$00,$C0,$C0,$20,$C0,$20,$00,$FF,$00,$80,$FF
DA40 DEFB $00,$FF,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$FF,$00,$00,$FF
DA51 DEFB $00,$FF,$00,$01,$00,$01,$00,$03,$03,$04,$03,$04,$00,$FF,$00,$01,$FF
DA62 DEFB $00,$80,$00,$C0,$C0,$20,$C0,$20,$00,$FF,$00,$80,$00,$80,$00,$C0,$FF
DA73 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$FF,$00,$00,$00,$00,$00,$00,$FF
DA84 DEFB $00,$01,$00,$03,$03,$04,$03,$04,$00,$FF,$00,$01,$00,$01,$00,$03,$FF
DA95 DEFB $C0,$20,$C0,$20,$00,$FF,$00,$80,$00,$80,$00,$C0,$C0,$20,$C0,$20,$FF
DAA6 DEFB $00,$00,$00,$00,$00,$FF,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$FF
DAB7 DEFB $03,$04,$03,$04,$00,$FF,$00,$01,$00,$01,$00,$03,$03,$04,$03,$04,$FF
DAC8 DEFB $00,$FF,$00,$80,$00,$80,$00,$C0,$C0,$20,$C0,$20,$E0,$10,$E0,$10,$FF
DAD9 DEFB $00,$FF,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$FF
DAEA DEFB $00,$FF,$00,$01,$00,$01,$00,$03,$03,$04,$03,$04,$07,$08,$07,$08,$FF
DAFB DEFB $FF,$00,$FF,$00,$FF,$00,$FF,$00,$00,$FF,$00,$80,$00,$80,$00,$C0,$FF
DB0C DEFB $FF,$00,$FF,$00,$FF,$00,$FF,$00,$00,$FF,$00,$00,$00,$00,$00,$00,$FF
DB1D DEFB $FF,$00,$FF,$00,$FF,$00,$FF,$00,$00,$FF,$00,$01,$00,$01,$00,$03,$FF
DB2E DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$29
DB3F DEFB $00,$83,$7C,$01,$7C,$01,$7C,$01,$7C,$01,$7C,$01,$00,$83,$00,$FF,$FF
DB50 DEFB $00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$01
DB61 DEFB $00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$05
DB72 DEFB $00,$80,$00,$80,$00,$80,$00,$80,$00,$80,$00,$80,$00,$80,$00,$80,$08
DB83 DEFB $00,$80,$00,$80,$00,$80,$00,$80,$00,$80,$00,$80,$00,$80,$00,$80,$28
DB94 DEFB $00,$01,$00,$01,$00,$01,$00,$01,$00,$01,$00,$01,$00,$01,$00,$01,$08
DBA5 DEFB $00,$01,$00,$01,$00,$01,$00,$01,$00,$01,$00,$01,$00,$01,$00,$01,$28
DBB6 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$7F,$00,$7F,$00,$7F,$00,$7F,$29
DBC7 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$FE,$00,$FE,$00,$FE,$00,$FE,$29
DBD8 DEFB $1F,$C0,$1F,$C0,$1F,$C0,$1F,$C0,$1F,$C0,$1F,$C0,$1F,$C0,$1F,$C0,$FF
DBE9 DEFB $F8,$03,$F8,$03,$F8,$03,$F8,$03,$F8,$03,$F8,$03,$F8,$03,$F8,$03,$FF
DBFA DEFB $00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$FF
DC0B DEFB $00,$F0,$0F,$C0,$3F,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FF
DC1C DEFB $00,$3F,$C0,$0F,$F0,$03,$FC,$01,$FE,$00,$FF,$00,$FF,$00,$FF,$00,$FF
DC2D DEFB $00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$3F,$C0,$03,$FF
DC3E DEFB $00,$FB,$00,$FB,$00,$F7,$00,$F7,$00,$EF,$00,$EF,$00,$FF,$00,$E0,$FF
DC4F DEFB $00,$FE,$00,$FE,$00,$FD,$00,$FD,$00,$FD,$00,$FD,$00,$FD,$00,$FB,$FF
DC60 DEFB $00,$3E,$00,$3E,$00,$3E,$00,$7E,$00,$7E,$00,$FE,$00,$FE,$00,$FE,$FF
DC71 DEFB $3F,$00,$0F,$C0,$07,$F0,$03,$F8,$01,$FC,$00,$FE,$00,$FE,$00,$FF,$FF
DC82 DEFB $C0,$1F,$C0,$1F,$C0,$1F,$C0,$1F,$C0,$1F,$C0,$1F,$C0,$1F,$C0,$1F,$FF
DC93 DEFB $00,$01,$0E,$C0,$07,$F0,$03,$F8,$01,$FC,$00,$7E,$80,$3E,$80,$3F,$FF
DCA4 DEFB $FF,$00,$FC,$00,$F0,$03,$C0,$0F,$80,$3F,$00,$7F,$00,$FF,$00,$FF,$FF
DCB5 DEFB $80,$0F,$00,$7F,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$FF
DCC6 DEFB $00,$00,$00,$04,$00,$42,$00,$00,$00,$00,$00,$24,$00,$12,$00,$02,$0D
DCD7 DEFB $00,$08,$00,$00,$00,$01,$00,$11,$00,$80,$00,$02,$00,$01,$00,$65,$0C
DCE8 DEFB $00,$F1,$00,$E4,$00,$E8,$00,$E8,$00,$E0,$00,$F0,$00,$30,$00,$DC,$30
DCF9 DEFB $00,$70,$00,$DF,$00,$BF,$00,$BF,$00,$FF,$00,$7F,$00,$7F,$00,$1F,$0E
DD0A DEFB $00,$9F,$00,$FF,$00,$DF,$00,$BF,$00,$BF,$00,$DF,$00,$FF,$00,$FD,$06
DD1B DEFB $00,$6C,$00,$FE,$00,$BF,$00,$BF,$00,$BF,$00,$FE,$00,$FE,$00,$F8,$0E
DD2C DEFB $00,$FF,$00,$80,$00,$80,$00,$80,$00,$80,$00,$80,$00,$80,$00,$80,$0F
DD3D DEFB $00,$FF,$00,$00,$00,$00,$00,$00,$00,$0C,$00,$0C,$00,$0C,$00,$0C,$0F
DD4E DEFB $00,$FF,$00,$01,$00,$01,$00,$01,$00,$01,$00,$01,$00,$01,$00,$01,$0F
DD5F DEFB $00,$80,$00,$80,$00,$80,$00,$80,$00,$80,$00,$80,$00,$80,$00,$80,$0F
DD70 DEFB $00,$0C,$00,$0C,$00,$0C,$00,$0C,$00,$0C,$00,$3C,$00,$3C,$00,$3C,$0F
DD81 DEFB $00,$01,$00,$01,$00,$01,$00,$01,$00,$01,$00,$01,$00,$01,$00,$01,$0F
DD92 DEFB $00,$80,$00,$80,$00,$80,$00,$80,$00,$80,$00,$80,$00,$80,$00,$FF,$0F
DDA3 DEFB $00,$3C,$00,$3C,$00,$3C,$00,$3C,$00,$3C,$00,$00,$00,$00,$00,$FF,$0F
DDB4 DEFB $00,$01,$00,$01,$00,$01,$00,$01,$00,$01,$00,$01,$00,$01,$00,$FF,$0F
DDC5 DEFB $00,$FF,$00,$80,$00,$80,$00,$80,$00,$83,$00,$83,$00,$83,$00,$80,$0F
DDD6 DEFB $00,$FF,$00,$00,$00,$00,$00,$00,$00,$FF,$00,$FF,$00,$E1,$00,$01,$0F
DDE7 DEFB $00,$FF,$00,$01,$00,$01,$00,$01,$00,$C1,$00,$C1,$00,$C1,$00,$C1,$0F
DDF8 DEFB $00,$80,$00,$80,$00,$80,$00,$83,$00,$83,$00,$83,$00,$83,$00,$83,$0F
DE09 DEFB $00,$01,$00,$01,$00,$01,$00,$FF,$00,$FF,$00,$80,$00,$80,$00,$80,$0F
DE1A DEFB $00,$C1,$00,$C1,$00,$C1,$00,$C1,$00,$C1,$00,$01,$00,$01,$00,$01,$0F
DE2B DEFB $00,$83,$00,$83,$00,$83,$00,$83,$00,$83,$00,$80,$00,$80,$00,$FF,$0F
DE3C DEFB $00,$80,$00,$80,$00,$83,$00,$FF,$00,$FF,$00,$00,$00,$00,$00,$FF,$0F
DE4D DEFB $00,$01,$00,$01,$00,$C1,$00,$C1,$00,$C1,$00,$01,$00,$01,$00,$FF,$0F
DE5E DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00
DE68: Find record for the current room in DE84 table
Used by the routine at B66A.
DE68 LD B,$14 20 records
DE6A LD HL,$DE84
DE6D LD A,($7184) get Current Room address low byte
DE70 CP (HL)
DE71 INC HL
DE72 JR NZ,$DE7E
DE74 LD A,($7185) get Current Room address high byte
DE77 CP (HL)
DE78 INC HL
DE79 JR NZ,$DE7F
DE7B LD A,$01
DE7D RET
DE7E INC HL
DE7F INC HL
DE80 DJNZ $DE6D
DE82 XOR A
DE83 RET
DE84: ?? Dog rooms/flags ?? 20 records, 3 bytes each
DE84 DEFW $79C6
DE86 DEFB $00
DE87 DEFW $7C2E
DE89 DEFB $00
DE8A DEFW $7F9C
DE8C DEFB $01
DE8D DEFW $81E5
DE8F DEFB $00
DE90 DEFW $8162
DE92 DEFB $01
DE93 DEFW $7EF2
DE95 DEFB $01
DE96 DEFW $7E05
DE98 DEFB $01
DE99 DEFW $80A7
DE9B DEFB $00
DE9C DEFW $83ED
DE9E DEFB $00
DE9F DEFW $80F6
DEA1 DEFB $00
DEA2 DEFW $924E
DEA4 DEFB $00
DEA5 DEFW $91BA
DEA7 DEFB $01
DEA8 DEFW $90DB
DEAA DEFB $01
DEAB DEFW $909F
DEAD DEFB $00
DEAE DEFW $8802
DEB0 DEFB $00
DEB1 DEFW $8608
DEB3 DEFB $00
DEB4 DEFW $844E
DEB6 DEFB $00
DEB7 DEFW $9739
DEB9 DEFB $01
DEBA DEFW $9A5A
DEBC DEFB $00
DEBD DEFW $9B9D
DEBF DEFB $01
DEC0: Data block at DEC0
DEC0 DEFB $00
DEC1: Clear strings on the screen
Used by the routines at DF60, E097 and E2A7.
Clears 10 strings, 18 characters each; used to clear table of scores, menu etc.
DEC1 LD B,$0A
DEC3 LD DE,$402C
DEC6 PUSH DE
DEC7 PUSH BC
DEC8 LD C,$12
DECA LD HL,$DEE6 String 18 spaces
DECD CALL $AED1 Print string
DED0 POP BC
DED1 POP DE
DED2 RR D
DED4 RR D
DED6 RR D
DED8 LD HL,$0020
DEDB ADD HL,DE
DEDC EX DE,HL
DEDD RL D
DEDF RL D
DEE1 RL D
DEE3 DJNZ $DEC6
DEE5 RET
DEE6: String 18 spaces
DEE6 DEFM " "
DEF8: Menu messages
DEF8 DEFM "J KEMPSTON"
DF03 DEFM "K KEYBOARD"
DF0E DEFM "P PROTEK"
DF17 DEFM "R REDEFINE KEYS"
DF27 DEFM "S START MISSION"
DF37: Routine at DF37
Used by the routine at BC0D.
DF37 LD A,$01 blue
DF39 OUT ($FE),A set border color, sound off
DF3B LD ($5C09),A set REPDEL = 1
DF3E LD ($5C0A),A set REPPER = 1
DF41 LD A,$08
DF43 LD ($5C48),A set BORDCR = $08
DF46 CALL $E04D Clear key buffer playing melody
DF49 LD DE,$00D4
DF4C PUSH DE
DF4D CALL $E440 Play next note in melody
DF50 CALL $DFD4 Clear LASTK and do RST $38 once
DF53 POP DE
DF54 LD A,($5C08) get LASTK
DF57 CP $00
DF59 JR NZ,$DF60 key pressed => Main menu
DF5B DEC DE
DF5C LD A,D
DF5D OR E
DF5E JR NZ,$DF4C
DF60: Main menu
Used by the routines at DF37 and E097.
DF60 CALL $DEC1 Clear strings on the screen
DF63 LD HL,$DEF8 Menu messages address
DF66 LD DE,$402D
DF69 LD C,$0B
DF6B CALL $AED1 Print string "J KEMPSTON"
DF6E LD C,$0B
DF70 LD DE,$406D
DF73 CALL $AED1 Print string "K KEYBOARD"
DF76 LD C,$09
DF78 LD DE,$40AD
DF7B CALL $AED1 Print string "P PROTEK"
DF7E LD C,$10
DF80 LD DE,$40ED
DF83 CALL $AED1 Print string "R REDEFINE KEYS"
DF86 LD C,$10
DF88 LD DE,$484D
DF8B CALL $AED1 Print string "S START MISSION"
DF8E CALL $E04D Clear key buffer playing melody
DF91 CALL $DFDB Highlight Menu item
DF94 LD DE,$00D4
DF97 PUSH DE
DF98 CALL $E440 Play next note in melody
DF9B CALL $DFD4 Clear LASTK and do RST $38 once
DF9E POP DE
DF9F LD A,($5C08) get LASTK
DFA2 CP $61
DFA4 JR C,$DFA8
DFA6 SUB $20
DFA8 CP $53 'S' ?
DFAA JP Z,$E2A7 => Start Mission
DFAD CP $4A 'J' ?
DFAF JR Z,$DFF1 => Joystick selected
DFB1 CP $4B 'K' ?
DFB3 JR Z,$E004 => Keyboard selected
DFB5 CP $50 'P' ?
DFB7 JR Z,$E015 => Protek selected
DFB9 CP $52 'R' ?
DFBB JP Z,$E097 => Redefine Keys
DFBE LD A,($7222) get Input method
DFC1 CP $01 Joystick?
DFC3 JR NZ,$DFCC
DFC5 IN A,($1F) read joystick port
DFC7 BIT 4,A
DFC9 JP NZ,$E2A7 => Start Mission
This entry point is used by the routines at DFF1 and E015.
DFCC DEC DE
DFCD LD A,D
DFCE OR E
DFCF JR NZ,$DF97
DFD1 JP $BC3B
DFD4: Clear LASTK and do RST $38 once
Used by the routines at DF37, DF60, E04D, E097 and E2A7.
DFD4 XOR A
DFD5 LD ($5C08),A clear LASTK
DFD8 RST $38
DFD9 NOP
DFDA RET
DFDB: Highlight Menu item
Used by the routines at DF60, DFF1, E004 and E015.
DFDB LD HL,$58AC
DFDE LD B,$0D
DFE0 LD (HL),$B1
DFE2 INC HL
DFE3 DJNZ $DFE0
DFE5 RET
DFE6: Unhighlight Menu item
Used by the routines at DFF1, E004, E015, E097 and E2A7.
DFE6 LD HL,($DFDC)
DFE9 LD B,$0D
DFEB LD (HL),$0E
DFED INC HL
DFEE DJNZ $DFEB
DFF0 RET
DFF1: Joystick selected in Main menu
Used by the routine at DF60.
DFF1 CALL $DFE6 Unhighlight Menu item
DFF4 LD HL,$582C
DFF7 LD ($DFDC),HL
DFFA CALL $DFDB Highlight Menu item
DFFD LD A,$01
DFFF LD ($7222),A
E002 JR $DFCC
E004: Keyboard selected in Main menu
Used by the routine at DF60.
E004 CALL $DFE6 Unhighlight Menu item
E007 LD HL,$586C
E00A LD ($DFDC),HL
E00D CALL $DFDB Highlight Menu item
E010 LD HL,$E043
E013 JR $E024
E015: Protek selected in Main menu
Used by the routine at DF60.
E015 CALL $DFE6 Unhighlight Menu item
E018 LD HL,$58AC
E01B LD ($DFDC),HL
E01E CALL $DFDB Highlight Menu item
E021 LD HL,$E039
This entry point is used by the routine at E004.
E024 LD DE,$7222
E027 XOR A
E028 LD (DE),A
E029 INC DE
E02A LD B,$05
E02C LD A,(HL)
E02D LD (DE),A
E02E INC DE
E02F INC HL
E030 LD A,(HL)
E031 LD (DE),A
E032 INC DE
E033 INC HL
E034 INC DE
E035 DJNZ $E02C
E037 JR $DFCC
E039: Ports/bits for Protek and Keyboard
E039 DEFB $EF,$01,$EF,$08,$EF,$10,$F7,$10,$EF,$04 Protek ports/bits
E043 DEFB $7F,$01,$FD,$01,$FE,$02,$7F,$08,$7F,$04 Keyboard input ports/bits
E04D: Clear key buffer playing melody
Used by the routines at DF37, DF60, E097 and E2A7.
E04D CALL $E440 Play next note in melody
E050 CALL $DFD4 Clear LASTK and do RST $38 once
E053 LD A,($5C08) get LASTK
E056 CP $00
E058 RET Z
E059 JR $E04D
E05B: Redefine keys messages
E05B DEFM "REDEFINE KEYS"
E068 DEFM "PRESS THE KEYS"
E076 DEFM "OF YOUR CHOICE"
E084 DEFM "FIRE"
E088 DEFM "UP"
E08A DEFM "DOWN"
E08E DEFM "LEFT"
E092 DEFM "RIGHT"
E097: Redefine Keys
Used by the routine at DF60.
E097 CALL $DFE6 Unhighlight Menu item
E09A CALL $DEC1 Clear strings on the screen
E09D LD HL,$E05B Redefine keys messages
E0A0 LD DE,$402D
E0A3 LD C,$0D
E0A5 CALL $AED1 Print string "REDEFINE KEYS"
E0A8 LD DE,$406D
E0AB LD C,$0E
E0AD CALL $AED1 Print string "PRESS THE KEYS"
E0B0 LD DE,$408D
E0B3 LD C,$0E
E0B5 CALL $AED1 Print string "OF YOUR CHOICE"
E0B8 LD DE,$40CF
E0BB LD C,$04
E0BD CALL $AED1 Print string "FIRE"
E0C0 LD DE,$40EF
E0C3 LD C,$02
E0C5 CALL $AED1 Print string "UP"
E0C8 LD DE,$480F
E0CB LD C,$04
E0CD CALL $AED1 Print string "DOWN"
E0D0 LD DE,$482F
E0D3 LD C,$04
E0D5 CALL $AED1 Print string "LEFT"
E0D8 LD DE,$484F
E0DB LD C,$05
E0DD CALL $AED1 Print string "RIGHT"
E0E0 CALL $E04D Clear key buffer playing melody
E0E3 EXX
E0E4 LD DE,$58CD
E0E7 LD BC,$7223
E0EA EXX
E0EB LD DE,$40D5
E0EE LD B,$05
E0F0 LD IX,$E043
E0F4 PUSH BC
E0F5 LD A,$B1
E0F7 LD B,$0A
E0F9 EXX
E0FA LD (DE),A
E0FB INC DE
E0FC EXX
E0FD DJNZ $E0F9
E0FF PUSH DE
E100 PUSH IX
E102 CALL $DFD4 Clear LASTK and do RST $38 once
E105 CALL $E440 Play next note in melody
E108 POP IX
E10A LD A,($5C08) get LASTK
E10D CP $5B '['
E10F JR C,$E113
E111 SUB $20
E113 LD B,$25
E115 LD ($E17C),A
E118 LD HL,$E17D
E11B CP (HL)
E11C JR Z,$E125
E11E INC HL
E11F INC HL
E120 INC HL
E121 DJNZ $E11B
E123 JR $E100
E125 LD B,$02
E127 INC HL
E128 LD A,($DFDC)
E12B CP $6C
E12D LD A,(HL)
E12E LD (IX+$00),A
E131 JR NZ,$E137
E133 EXX
E134 LD (BC),A
E135 INC BC
E136 EXX
E137 INC IX
E139 DJNZ $E127
E13B EXX
E13C INC BC
E13D EXX
E13E POP DE
E13F PUSH DE
E140 LD C,$01
E142 LD HL,$E17C
E145 CALL $AED1 Print string
E148 PUSH IX
E14A CALL $E04D Clear key buffer playing melody
E14D POP IX
E14F POP DE
E150 LD A,$0E
E152 LD B,$0A
E154 EXX
E155 DEC DE
E156 LD (DE),A
E157 EXX
E158 DJNZ $E154
E15A EXX
E15B PUSH HL
E15C LD HL,$0020 32
E15F ADD HL,DE
E160 EX DE,HL
E161 POP HL
E162 EXX
E163 LD HL,$0020 32
E166 RR D
E168 RR D
E16A RR D
E16C ADD HL,DE
E16D EX DE,HL
E16E RL D
E170 RL D
E172 RL D
E174 POP BC
E175 DEC B
E176 JP NZ,$E0F4
E179 JP $DF60 => Main menu
E17C: Data block at E17C
E17C DEFM "M"
E17D: Data block at E17D
E17D DEFB $30,$EF,$01
E180 DEFB $31,$F7,$01
E183 DEFB $32,$F7,$02
E186 DEFB $33,$F7,$04
E189 DEFB $34,$F7,$08
E18C DEFB $35,$F7,$10
E18F DEFB $36,$EF,$10
E192 DEFB $37,$EF,$08
E195 DEFB $38,$EF,$04
E198 DEFB $39,$EF,$02
E19B DEFB $41,$FD,$01
E19E DEFB $42,$7F,$10
E1A1 DEFB $43,$FE,$08
E1A4 DEFB $44,$FD,$04
E1A7 DEFB $45,$FB,$04
E1AA DEFB $46,$FD,$08
E1AD DEFB $47,$FD,$10
E1B0 DEFB $48,$BF,$10
E1B3 DEFB $49,$DF,$04
E1B6 DEFB $4A,$BF,$08
E1B9 DEFB $4B,$BF,$04
E1BC DEFB $4C,$BF,$02
E1BF DEFB $4D,$7F,$04
E1C2 DEFB $4E,$7F,$08
E1C5 DEFB $4F,$DF,$02
E1C8 DEFB $50,$DF,$01
E1CB DEFB $51,$FB,$01
E1CE DEFB $52,$FB,$08
E1D1 DEFB $53,$FD,$02
E1D4 DEFB $54,$FB,$10
E1D7 DEFB $55,$DF,$08
E1DA DEFB $56,$FE,$10
E1DD DEFB $57,$FB,$02
E1E0 DEFB $58,$FE,$04
E1E3 DEFB $59,$DF,$10
E1E6 DEFB $5A,$FE,$02
E1E9 DEFB $20,$7F,$01
E1EC: Message at E1EC
E1EC DEFM "1" Current Level digit
E1ED DEFM "ENTER SKILL LEVEL"
E1FE DEFM "1 TO 9"
E204 DEFM "YOUR MISSION"
E210 DEFM "WILL BE"
E217: Level descriptions and data addresses
E217 DEFM "EXTREMELY EASY"
E225 DEFW $E38C
E227 DEFM " VERY EASY "
E235 DEFW $E3A0
E237 DEFM " EASY "
E245 DEFW $E3B4
E247 DEFM "SLIGHTLY EASY"
E255 DEFW $E3C8
E257 DEFM " MODERATE "
E265 DEFW $E3DC
E267 DEFM "SLIGHTLY HARD"
E275 DEFW $E3F0
E277 DEFM " HARD "
E285 DEFW $E404
E287 DEFM " VERY HARD "
E295 DEFW $E418
E297 DEFM "EXTREMELY HARD"
E2A5 DEFW $E42C
E2A7: Start Mission
Used by the routine at DF60.
E2A7 CALL $DFE6 Unhighlight Menu item
E2AA CALL $DEC1 Clear strings on the screen
E2AD LD HL,$E1ED "ENTER SKILL LEVEL"
E2B0 LD DE,$406D
E2B3 LD C,$11
E2B5 CALL $AED1 Print string "ENTER SKILL LEVEL"
E2B8 LD DE,$4092
E2BB LD C,$06
E2BD CALL $AED1 Print string "1 TO 9"
E2C0 CALL $E04D Clear key buffer playing melody
E2C3 LD HL,$58F3
E2C6 LD A,$B1
E2C8 LD (HL),A
E2C9 INC HL
E2CA LD (HL),A
E2CB INC HL
E2CC LD (HL),A
E2CD CALL $E440 Play next note in melody
E2D0 CALL $DFD4 Clear LASTK and do RST $38 once
E2D3 LD A,($5C08) get LASTK
E2D6 CP $31
E2D8 JR C,$E2CD
E2DA CP $3A
E2DC JR NC,$E2CD
E2DE LD HL,$E1EC Skill level address
E2E1 LD (HL),A
E2E2 LD DE,$40F4
E2E5 LD C,$01
E2E7 CALL $AED1 Print string
E2EA CALL $E04D Clear key buffer playing melody
E2ED LD HL,$58F3
E2F0 LD A,$0E
E2F2 LD (HL),A
E2F3 INC HL
E2F4 LD (HL),A
E2F5 INC HL
E2F6 LD (HL),A
E2F7 CALL $DEC1 Clear strings on the screen
E2FA LD HL,$E204 "YOUR MISSION"
E2FD LD DE,$406F
E300 LD C,$0C
E302 CALL $AED1 Print string "YOUR MISSION"
E305 LD DE,$4091
E308 LD C,$07
E30A CALL $AED1 Print string "WILL BE"
E30D LD A,($E1EC) get Skill level
E310 SUB $31
E312 LD L,A
E313 LD H,$00
E315 ADD HL,HL
E316 ADD HL,HL
E317 ADD HL,HL
E318 ADD HL,HL * 16
E319 LD DE,$E217 Levels data base address
E31C ADD HL,DE
E31D LD DE,$40EE
E320 LD C,$0E
E322 CALL $AED1 Print string - level description
E325 LD A,(HL)
E326 INC HL
E327 LD H,(HL)
E328 LD L,A
E329 LD A,(HL)
E32A LD ($A3BF),A set Guard counter value
E32D INC HL
E32E LD A,(HL)
E32F LD ($9C57),A set Dog counter value
E332 INC HL
E333 LD A,(HL)
E334 LD ($B4C4),A set Turret counter value
E337 INC HL
E338 LD E,(HL)
E339 INC HL
E33A LD D,(HL)
E33B LD ($AD57),DE set Indicator Time value
E33F INC HL
E340 LD E,(HL)
E341 INC HL
E342 LD D,(HL)
E343 LD ($B7CB),DE set Time value for BOMB
E347 INC HL
E348 LD A,(HL)
E349 LD ($97D0),A set flag for wall in room 97A6
E34C INC HL
E34D LD A,(HL)
E34E LD ($9756),A set count for wall in room 9739
E351 INC HL
E352 LD A,(HL)
E353 LD ($7F7B),A set count for wall in room 7F48
E356 INC HL
E357 LD A,(HL)
E358 LD ($8DBC),A set count for wall in room 8D5C
E35B INC HL
E35C LD A,(HL)
E35D LD ($8F32),A set count for wall in room 8F20
E360 INC HL
E361 LD BC,$0004
E364 LD DE,$E388
E367 LDIR
E369 LD BC,$0004
E36C LD DE,$D357 address for BOMB in Table of objects D34D
E36F LDIR Copy last 4 bytes: BOMB placement
E371 LD DE,$0019
E374 PUSH DE
E375 CALL $DFD4 Clear LASTK and do RST $38 once
E378 CALL $E440 Play next note in melody
E37B POP DE
E37C LD A,($5C08) get LASTK
E37F CP $00
E381 RET NZ
E382 DEC DE
E383 LD A,D
E384 OR E
E385 JR NZ,$E374
E387 RET
E388: Data block at E388
E388 DEFM " 10",$0A
E38C: Levels data
+$00: Guard counter value
+$01: Dog counter value
+$02: Turret counter value
+$03/$04: two digits for TIME value
+$05/$06: two digits for BOMB timer
+$07: flag for wall in room 97A6
+$08: count for wall in room 9739: $01 = no wall, $07 = put wall
+$09: count for wall in room 7F48
+$0A: count for wall in room 8D5C
+$0B: count for wall in room 8F20: $01 = no wall, $09 = put wall
+$10/$11: room for BOMB placement
+$12/$13: address in Tile screen 0 for BOMB placement
Level 1 "EXTREMELY EASY"
E38C DEFB $14,$19,$32
E38F DEFM "9999"
E393 DEFB $00,$01,$01,$01,$01
E398 DEFM " 10"
E39B DEFB $0A
E39C DEFW $9E22
E39E DEFW $672E
Level 2 "VERY EASY"
E3A0 DEFB $12,$0F,$2D
E3A3 DEFM "9995"
E3A7 DEFB $00,$01,$01,$01,$01
E3AC DEFM " 20"
E3AF DEFB $14
E3B0 DEFW $9E22
E3B2 DEFW $672E
Level 3 "EASY"
E3B4 DEFB $10,$0C,$28
E3B7 DEFM "9590"
E3BB DEFB $00,$07,$01,$01,$01
E3C0 DEFM " 30"
E3C3 DEFB $1E
E3C4 DEFW $924E
E3C6 DEFW $6788
Level 4 "SLIGHTLY EASY"
E3C8 DEFB $0E,$0A,$23
E3CB DEFM "9080"
E3CF DEFB $FF,$01,$01,$01,$09
E3D4 DEFM " 50"
E3D7 DEFB $32
E3D8 DEFW $8608
E3DA DEFW $6787
Level 5 "MODERATE"
E3DC DEFB $0C,$09,$1E
E3DF DEFM "9070"
E3E3 DEFB $FF,$01,$01,$07,$01
E3E8 DEFM " 70"
E3EB DEFB $46
E3EC DEFW $8689
E3EE DEFW $66D2
Level 6 "SLIGHTLY HARD"
E3F0 DEFB $0A,$07,$19
E3F3 DEFM "8560"
E3F7 DEFB $FF,$07,$01,$07,$01
E3FC DEFM "100"
E3FF DEFB $64
E400 DEFW $8BAB
E402 DEFW $6780
Level 7 "HARD"
E404 DEFB $08,$06,$14
E407 DEFM "8550"
E40B DEFB $FF,$07,$08,$07,$01
E410 DEFM "130"
E413 DEFB $82
E414 DEFW $8D5C
E416 DEFW $6757
Level 8 "VERY HARD"
E418 DEFB $05,$05,$0F
E41B DEFM "8050"
E41F DEFB $FF,$07,$08,$07,$09
E424 DEFM "170"
E427 DEFB $AA
E428 DEFW $8279
E42A DEFW $6763
Level 9 "EXTREMELY HARD"
E42C DEFB $02,$03,$0A
E42F DEFM "7040"
E433 DEFB $FF,$07,$08,$07,$09
E438 DEFM "250"
E43B DEFB $FA
E43C DEFW $8608
E43E DEFW $6787
E440: Play next note in melody
Used by the routines at DF37, DF60, E04D, E097 and E2A7.
E440 LD IX,$E51C
E444 LD A,(IX+$01)
E447 CP $FF
E449 JR Z,$E487
E44B CP $FE
E44D JR Z,$E477
E44F CP $FD
E451 JR Z,$E46F
E453 LD L,(IX+$00)
E456 LD H,A
E457 LD E,(IX+$02)
E45A LD D,(IX+$03)
E45D PUSH IX
E45F CALL $03B5 BEEPER
E462 NOP
E463 POP IX
E465 LD DE,$0004
E468 ADD IX,DE
E46A LD ($E442),IX
E46E RET
E46F LD DE,$E4AE
E472 LD HL,$E496
E475 JR $E47E
E477 LD HL,$E49A
E47A LD E,(HL)
E47B INC HL
E47C LD D,(HL)
E47D INC HL
E47E LD ($E478),HL
E481 LD ($E442),DE
E485 JR $E440
E487 LD BC,$4E20
E48A DEC BC
E48B LD A,B
E48C OR C
E48D JR NZ,$E48A
E48F LD DE,$0002
E492 JR $E468
E494: Table for melodies
E494 DEFW $E4AE
E496 DEFW $E4AE
E498 DEFW $E508
E49A DEFW $E53A
E49C DEFW $E508
E49E DEFW $E56C
E4A0 DEFW $E4AE
E4A2 DEFW $E4AE
E4A4 DEFW $E508
E4A6 DEFW $E53A
E4A8 DEFW $E508
E4AA DEFW $E56C
E4AC DEFW $E5CA
E4AE: Melodies
E4AE DEFB $9A,$08,$19,$00 Melody
E4B2 DEFB $9A,$08,$19,$00
E4B6 DEFB $9A,$08,$31,$00
E4BA DEFB $8C,$03,$75,$00
E4BE DEFB $9A,$08,$19,$00
E4C2 DEFB $8C,$03,$75,$00
E4C6 DEFB $9A,$08,$19,$00
E4CA DEFB $8C,$03,$75,$00
E4CE DEFB $3E,$04,$62,$00
E4D2 DEFB $C6,$04,$57,$00
E4D6 DEFB $9A,$08,$19,$00
E4DA DEFB $9A,$08,$19,$00
E4DE DEFB $9A,$08,$31,$00
E4E2 DEFB $8C,$03,$75,$00
E4E6 DEFB $9A,$08,$19,$00
E4EA DEFB $8C,$03,$75,$00
E4EE DEFB $9A,$08,$19,$00
E4F2 DEFB $8C,$03,$75,$00
E4F6 DEFB $3E,$04,$31,$00
E4FA DEFB $C6,$04,$2C,$00
E4FE DEFB $B3,$05,$25,$00
E502 DEFB $6A,$06,$21,$00
E506 DEFB $00,$FE
E508 DEFB $9A,$08,$19,$00 Melody
E50C DEFB $9A,$08,$19,$00
E510 DEFB $9A,$08,$31,$00
E514 DEFB $CA,$02,$93,$00
E518 DEFB $9A,$08,$19,$00
E51C DEFB $CA,$02,$93,$00
E520 DEFB $9A,$08,$19,$00
E524 DEFB $CA,$02,$93,$00
E528 DEFB $9A,$08,$19,$00
E52C DEFB $CA,$02,$93,$00
E530 DEFB $26,$03,$83,$00
E534 DEFB $8C,$03,$75,$00
E538 DEFB $00,$FE
E53A DEFB $9A,$08,$19,$00 Melody
E53E DEFB $9A,$08,$19,$00
E542 DEFB $9A,$08,$31,$00
E546 DEFB $CA,$02,$93,$00
E54A DEFB $9A,$08,$19,$00
E54E DEFB $CA,$02,$93,$00
E552 DEFB $9A,$08,$19,$00
E556 DEFB $CA,$02,$93,$00
E55A DEFB $26,$03,$41,$00
E55E DEFB $8C,$03,$3A,$00
E562 DEFB $3E,$04,$31,$00
E566 DEFB $C6,$04,$2C,$00
E56A DEFB $00,$FE
E56C DEFB $9A,$08,$19,$00 Melody
E570 DEFB $9A,$08,$19,$00
E574 DEFB $9A,$08,$31,$00
E578 DEFB $CA,$02,$93,$00
E57C DEFB $9A,$08,$19,$00
E580 DEFB $CA,$02,$93,$00
E584 DEFB $9A,$08,$19,$00
E588 DEFB $CA,$02,$93,$00
E58C DEFB $54,$02,$57,$00
E590 DEFB $79,$02,$52,$00
E594 DEFB $CA,$02,$49,$00
E598 DEFB $26,$03,$41,$00
E59C DEFB $54,$02,$57,$00
E5A0 DEFB $C4,$03,$37,$00
E5A4 DEFB $3E,$04,$31,$00
E5A8 DEFB $C4,$03,$37,$00
E5AC DEFB $57,$03,$3E,$00
E5B0 DEFB $C4,$03,$37,$00
E5B4 DEFB $3E,$04,$31,$00
E5B8 DEFB $C6,$04,$2C,$00
E5BC DEFB $B3,$05,$25,$00
E5C0 DEFB $6A,$06,$21,$00
E5C4 DEFB $A6,$07,$1C,$00
E5C8 DEFB $00,$FE
E5CA DEFB $9A,$08,$31,$00 Melody
E5CE DEFB $00,$FF,$00,$FF
E5D2 DEFB $00,$FF,$00,$FF
E5D6 DEFB $00,$FF,$00,$FF
E5DA DEFB $00,$FF
E5DC DEFB $00,$FD Melody end/restart
E5DE: Data block at E5DE
E5DE DEFB $00,$00,$00,$00,$00,$00,$00,$00
E5E6 DEFB $00,$00,$00,$00,$00,$00,$00,$00
E5EE DEFB $00,$00,$00,$00,$00,$00,$00,$00
E5F6 DEFB $00,$00,$00,$00,$00,$00,$00,$00
E5FE DEFB $00,$00,$00,$00,$00,$00,$00,$00
E606 DEFB $00,$00,$00,$00,$00,$00,$00,$00
E60E DEFB $00,$00,$00,$00,$00,$00,$00,$00
E616 DEFB $00,$00,$00,$00,$00,$00,$00,$00
E61E DEFB $00,$00,$00,$00,$00,$00,$00,$00
E626 DEFB $00,$00,$00,$00,$00,$00,$00,$00
E62E DEFB $00,$00,$00,$00,$00,$00,$00,$00
E636 DEFB $00,$00,$00,$00,$00,$00,$00,$00
E63E DEFB $00,$00,$00,$00,$00,$00,$00,$00
E646 DEFB $FF,$00,$FF,$00,$FF,$00,$FF,$00
E64E DEFB $FF,$00,$FF,$00,$FF,$00,$FF,$01
E656 DEFB $FC,$01,$FC,$01,$FC,$01,$FC,$01
E65E DEFB $FC,$01,$00,$03,$00,$FF,$00,$FF
E666 DEFB $20,$FC,$01,$FC,$01,$FC,$01,$FC
E66E DEFB $01,$FC,$01,$FC,$01,$FC,$01,$FC
E676 DEFB $01,$20,$00,$FF,$00,$FF,$00,$03
E67E DEFB $FC,$01,$FC,$01,$FC,$01,$FC,$01
E686 DEFB $FC,$01,$20,$FF,$00,$FF,$00,$FF
E68E DEFB $00,$FF,$00,$FF,$00,$00,$00,$00
E696 DEFB $FF,$00,$FF,$20,$00,$00,$00,$00
E69E DEFB $00,$00,$00,$00,$00,$00,$00,$00
E6A6 DEFB $00,$00,$00,$00,$00,$00,$FF,$00
E6AE DEFB $FF,$00,$00,$FF,$00,$FF,$00,$FF
E6B6 DEFB $00,$FF,$00,$FF,$00,$20,$3F,$80
E6BE DEFB $3F,$80,$3F,$80,$3F,$80,$3F,$80
E6C6 DEFB $00,$C0,$00,$FF,$00,$FF,$20,$3F
E6CE DEFB $80,$3F,$80,$3F,$80,$3F,$80,$3F
E6D6 DEFB $80,$3F,$80,$3F,$80,$3F,$80,$20
E6DE DEFB $00,$FF,$00,$FF,$00,$C0,$3F,$80
E6E6 DEFB $3F,$80,$3F,$80,$3F,$80,$3F,$80
E6EE DEFB $20,$00,$00,$00,$00,$00,$00,$00
E6F6 DEFB $00,$00,$00,$00,$00,$00,$00,$00
E6FE DEFB $00,$00
E700: Ninja/Guard tiles, tiles with mask, 159 tiles, 16 bytes each
Used to draw Ninja tiles on Tile Screen 2 (see B1A3), and Guard tiles on Tile Screen 4 (see B230).
E700 DEFB $00,$FF,$00,$FE,$01,$FC,$03,$F8,$03,$F8,$07,$F0,$07,$F0,$07,$F0
E710 DEFB $00,$FF,$00,$3F,$C0,$1F,$E0,$0F,$F0,$07,$F0,$07,$50,$07,$20,$07
E720 DEFB $00,$FF,$00,$FE,$01,$FC,$01,$FC,$00,$FC,$01,$FC,$03,$F8,$07,$F0
E730 DEFB $77,$00,$E7,$00,$DF,$00,$3F,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$00
E740 DEFB $F0,$07,$F0,$07,$F0,$03,$EC,$01,$9E,$00,$FE,$00,$FF,$00,$FF,$00
E750 DEFB $07,$F0,$0F,$E0,$0F,$E0,$0E,$E0,$0E,$E0,$0E,$E0,$0E,$E0,$07,$F0
E760 DEFB $DF,$00,$9F,$00,$2F,$00,$6F,$00,$6F,$00,$77,$00,$77,$00,$77,$00
E770 DEFB $EF,$00,$FF,$00,$FD,$00,$FD,$00,$FE,$00,$FE,$00,$FE,$00,$FE,$00
E780 DEFB $80,$3F,$C0,$04,$FB,$00,$FF,$00,$7F,$00,$0F,$80,$00,$F0,$00,$FF
E790 DEFB $00,$FF,$00,$FF,$00,$3F,$C0,$1F,$C0,$1F,$C0,$1F,$00,$3F,$00,$FF
E7A0 DEFB $07,$F0,$03,$F8,$03,$F8,$01,$FC,$00,$FE,$00,$FF,$00,$FF,$00,$FF
E7B0 DEFB $B4,$00,$C4,$00,$C7,$10,$07,$30,$0F,$E0,$0F,$E0,$1F,$C0,$1F,$C0
E7C0 DEFB $02,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$CF,$00
E7D0 DEFB $00,$FF,$00,$7F,$80,$3F,$80,$3F,$C0,$1F,$C0,$1F,$E0,$0F,$E0,$0F
E7E0 DEFB $1F,$C0,$3F,$80,$3E,$80,$3E,$80,$7E,$00,$7C,$01,$7C,$01,$7C,$01
E7F0 DEFB $07,$30,$03,$78,$03,$F8,$01,$FC,$01,$FC,$01,$FC,$00,$FE,$00,$FE
E800 DEFB $F0,$07,$F0,$07,$F0,$07,$F0,$07,$F0,$07,$F0,$07,$F0,$07,$E0,$0F
E810 DEFB $7C,$01,$44,$01,$3C,$81,$3C,$81,$38,$83,$38,$83,$7C,$01,$7C,$01
E820 DEFB $A0,$0F,$E0,$0F,$E0,$0F,$E0,$0F,$E0,$0F,$F0,$03,$FC,$01,$FE,$00
E830 DEFB $00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$87,$78,$03,$FC,$01
E840 DEFB $00,$FF,$00,$FF,$00,$C7,$38,$83,$3C,$81,$3C,$81,$1C,$C1,$1C,$C1
E850 DEFB $00,$FE,$00,$FE,$00,$FE,$00,$FE,$00,$FE,$00,$F8,$06,$F0,$0C,$E0
E860 DEFB $FE,$00,$EA,$00,$E4,$00,$FE,$00,$FE,$00,$7E,$00,$FD,$00,$FF,$00
E870 DEFB $18,$C3,$1C,$C1,$1C,$C1,$1C,$C1,$3C,$81,$7C,$01,$FC,$01,$F8,$03
E880 DEFB $0B,$E0,$07,$F0,$07,$F0,$07,$F0,$0F,$E0,$0F,$E0,$0F,$E0,$0F,$E0
E890 DEFB $FF,$00,$FB,$00,$FB,$00,$FF,$00,$DF,$00,$BE,$00,$8E,$00,$76,$00
E8A0 DEFB $F0,$07,$E0,$0F,$E0,$0F,$80,$0F,$70,$07,$F8,$03,$F8,$03,$F8,$03
E8B0 DEFB $0F,$E0,$0F,$E0,$07,$F0,$00,$F8,$01,$FC,$00,$FE,$00,$FF,$00,$FF
E8C0 DEFB $F7,$00,$F1,$00,$EE,$00,$1F,$00,$BF,$00,$DF,$00,$1C,$00,$0B,$E0
E8D0 DEFB $48,$03,$78,$03,$F8,$03,$78,$03,$B4,$01,$AC,$01,$BC,$01,$B8,$03
E8E0 DEFB $0F,$E0,$0F,$E0,$07,$F0,$07,$F0,$07,$F0,$02,$F8,$03,$F8,$03,$F8
E8F0 DEFB $80,$07,$80,$3F,$80,$3F,$80,$3F,$40,$1F,$C0,$1F,$C0,$1F,$80,$3F
E900 DEFB $00,$FF,$00,$FF,$00,$FF,$00,$FE,$01,$FC,$03,$F8,$07,$E0,$1F,$C0
E910 DEFB $00,$C7,$38,$83,$7C,$01,$FC,$01,$F8,$03,$C0,$07,$C0,$1F,$80,$3F
E920 DEFB $F0,$07,$F8,$03,$A8,$02,$91,$00,$FB,$00,$FF,$00,$FF,$00,$FF,$00
E930 DEFB $3F,$80,$7E,$00,$FC,$01,$F8,$03,$F0,$07,$E0,$0F,$D0,$07,$E8,$03
E940 DEFB $FE,$00,$FF,$00,$7F,$00,$C7,$00,$BB,$00,$BB,$00,$DD,$00,$5D,$00
E950 DEFB $E8,$03,$74,$01,$F4,$01,$F8,$00,$FB,$00,$FF,$00,$FB,$00,$F7,$00
E960 DEFB $00,$FF,$00,$FF,$00,$FF,$00,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$00
E970 DEFB $00,$FF,$00,$FF,$00,$FF,$00,$60,$9F,$00,$FE,$00,$FE,$00,$FF,$00
E980 DEFB $6E,$00,$2F,$80,$37,$80,$1F,$C0,$0E,$E0,$00,$F1,$00,$FF,$00,$FF
E990 DEFB $E7,$00,$4F,$00,$5F,$00,$7E,$00,$7F,$00,$3F,$80,$3F,$80,$1F,$C0
E9A0 DEFB $FF,$00,$FC,$00,$C0,$00,$07,$30,$07,$70,$0F,$60,$9F,$00,$AE,$00
E9B0 DEFB $1E,$00,$00,$E1,$00,$0F,$F0,$07,$F0,$07,$E0,$0F,$00,$1F,$00,$FF
E9C0 DEFB $00,$FF,$00,$FF,$00,$FF,$00,$78,$87,$00,$FB,$00,$FB,$00,$FF,$00
E9D0 DEFB $0F,$E0,$07,$F0,$03,$F8,$01,$FC,$00,$FE,$00,$FF,$00,$FF,$00,$FF
E9E0 DEFB $E8,$01,$E8,$03,$F0,$07,$E0,$0F,$C0,$1F,$00,$3F,$00,$FF,$00,$FF
E9F0 DEFB $07,$80,$77,$00,$6F,$00,$DF,$00,$DE,$00,$DF,$00,$DF,$00,$CF,$00
EA00 DEFB $F0,$07,$F0,$07,$F0,$03,$EC,$01,$3E,$00,$C0,$00,$FF,$00,$FF,$00
EA10 DEFB $00,$FF,$00,$FF,$00,$FF,$00,$F8,$07,$C0,$3F,$00,$FF,$00,$FF,$00
EA20 DEFB $D7,$00,$D9,$00,$6E,$00,$6F,$00,$6F,$00,$37,$80,$37,$80,$0F,$C0
EA30 DEFB $FF,$00,$FC,$00,$02,$00,$FE,$00,$FE,$00,$FE,$00,$FE,$00,$FE,$00
EA40 DEFB $F0,$00,$00,$0F,$00,$3F,$C0,$1F,$E0,$0F,$E0,$0F,$C0,$1F,$00,$3F
EA50 DEFB $04,$F0,$04,$F0,$07,$F0,$07,$F0,$0F,$E0,$0F,$E0,$1F,$C0,$1F,$C0
EA60 DEFB $00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$83,$7C,$01
EA70 DEFB $00,$FE,$00,$FE,$00,$FE,$00,$F8,$06,$F0,$0F,$E0,$1F,$C0,$1D,$C0
EA80 DEFB $FE,$00,$FE,$00,$FE,$00,$AB,$00,$92,$00,$FE,$00,$7F,$00,$9F,$00
EA90 DEFB $00,$7F,$00,$7F,$00,$3F,$C0,$1F,$E0,$0F,$E0,$0F,$E0,$0F,$E0,$0F
EAA0 DEFB $3D,$80,$38,$80,$37,$80,$2F,$80,$6F,$00,$6F,$00,$6F,$00,$6B,$00
EAB0 DEFB $FE,$00,$FE,$00,$FE,$00,$C3,$00,$FF,$00,$FF,$00,$FF,$00,$CF,$00
EAC0 DEFB $F0,$07,$F0,$07,$F0,$07,$70,$07,$70,$07,$B0,$07,$B8,$03,$B8,$03
EAD0 DEFB $6D,$00,$37,$80,$37,$80,$37,$80,$37,$80,$37,$80,$6F,$00,$6F,$00
EAE0 DEFB $07,$30,$07,$70,$07,$70,$07,$70,$07,$70,$07,$70,$07,$70,$03,$78
EAF0 DEFB $B8,$03,$B8,$03,$D8,$03,$D8,$03,$D8,$03,$D8,$03,$D8,$03,$B8,$03
EB00 DEFB $00,$FF,$00,$FF,$00,$FF,$00,$E7,$18,$C3,$3C,$81,$3C,$81,$38,$83
EB10 DEFB $70,$04,$73,$00,$E7,$00,$E7,$00,$E7,$00,$E7,$00,$F7,$00,$F7,$00
EB20 DEFB $00,$3F,$C0,$1F,$E0,$0F,$E0,$0F,$E0,$0F,$E0,$09,$E6,$00,$E7,$00
EB30 DEFB $E3,$00,$DC,$00,$BF,$00,$BF,$00,$BF,$00,$BF,$00,$BF,$00,$BF,$00
EB40 DEFB $D7,$00,$33,$00,$FB,$00,$FB,$00,$FB,$00,$FB,$00,$FB,$00,$FE,$00
EB50 DEFB $7F,$00,$3F,$80,$3F,$80,$3F,$80,$1F,$80,$20,$80,$20,$80,$3F,$80
EB60 DEFB $FC,$01,$F8,$03,$F8,$03,$F8,$03,$F0,$07,$10,$07,$30,$07,$F8,$03
EB70 DEFB $7F,$00,$FF,$00,$FF,$00,$DF,$00,$EF,$00,$F0,$00,$FC,$00,$7C,$01
EB80 DEFB $F8,$03,$F8,$03,$F8,$03,$F8,$03,$FC,$01,$FC,$01,$FC,$01,$7E,$00
EB90 DEFB $5C,$01,$64,$01,$3C,$81,$3C,$81,$3C,$81,$1E,$C0,$1E,$C0,$1E,$C0
EBA0 DEFB $7E,$00,$3E,$80,$3E,$80,$1E,$C0,$3E,$80,$3C,$81,$7C,$01,$58,$03
EBB0 DEFB $0E,$E0,$0E,$E0,$0D,$E0,$0D,$E0,$01,$F0,$03,$F8,$03,$F8,$03,$F8
EBC0 DEFB $E8,$03,$F0,$07,$E0,$0F,$E0,$0F,$C0,$1F,$C0,$1F,$E0,$0F,$F0,$07
EBD0 DEFB $01,$FC,$03,$F8,$03,$F8,$03,$F8,$03,$F8,$03,$F8,$01,$FC,$01,$FC
EBE0 DEFB $02,$F8,$02,$F8,$03,$F8,$02,$F8,$02,$F8,$00,$FC,$00,$FE,$00,$FF
EBF0 DEFB $00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FE,$01,$FC,$03,$F8
EC00 DEFB $00,$FE,$01,$FC,$01,$FC,$03,$F8,$03,$18,$E3,$00,$DF,$00,$B1,$00
EC10 DEFB $F0,$07,$F8,$03,$F8,$03,$F8,$03,$C8,$03,$C8,$03,$F0,$07,$F0,$07
EC20 DEFB $03,$F8,$06,$F0,$06,$F0,$0D,$E0,$0D,$E0,$0D,$E0,$0B,$E0,$0B,$E0
EC30 DEFB $6E,$00,$EF,$00,$EF,$00,$F7,$00,$F7,$00,$FB,$00,$FB,$00,$FD,$00
EC40 DEFB $E0,$0C,$83,$10,$4F,$00,$B8,$00,$D7,$00,$CF,$00,$FF,$00,$FE,$00
EC50 DEFB $0A,$E0,$04,$F0,$07,$F0,$07,$F0,$07,$F0,$07,$F0,$03,$F8,$01,$FC
EC60 DEFB $79,$00,$10,$06,$D0,$07,$F0,$07,$E0,$0F,$F0,$07,$F0,$07,$F0,$07
EC70 DEFB $F8,$01,$E0,$07,$00,$1F,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FF
EC80 DEFB $01,$FC,$00,$FE,$00,$FE,$00,$FE,$00,$FE,$01,$F8,$07,$80,$7B,$00
EC90 DEFB $F8,$03,$F8,$03,$FC,$01,$FC,$01,$FE,$00,$FE,$00,$FE,$00,$F8,$01
ECA0 DEFB $03,$F8,$03,$F8,$07,$F0,$07,$F0,$06,$F0,$04,$F1,$00,$FB,$00,$FF
ECB0 DEFB $FD,$00,$F8,$00,$80,$07,$00,$7F,$00,$FF,$00,$FF,$00,$FF,$00,$FF
ECC0 DEFB $F0,$07,$70,$07,$50,$07,$70,$07,$70,$07,$30,$83,$3C,$81,$3E,$80
ECD0 DEFB $0A,$E0,$04,$F0,$07,$F0,$07,$F0,$07,$F0,$07,$F0,$03,$F8,$03,$F8
ECE0 DEFB $79,$00,$10,$06,$D0,$07,$E0,$07,$F0,$03,$FC,$00,$FF,$00,$FF,$00
ECF0 DEFB $F8,$01,$E0,$07,$00,$1F,$00,$FF,$00,$FF,$00,$FF,$00,$3F,$C0,$1F
ED00 DEFB $01,$FC,$01,$FC,$01,$FC,$01,$FC,$01,$FC,$03,$F8,$03,$F8,$07,$F0
ED10 DEFB $FF,$00,$FF,$00,$F3,$00,$E3,$08,$E7,$00,$C8,$00,$DF,$00,$BC,$00
ED20 DEFB $E0,$0F,$F0,$07,$F0,$07,$E0,$0F,$C0,$1F,$80,$3F,$00,$7F,$00,$FF
ED30 DEFB $07,$F0,$0A,$E0,$1E,$C0,$3C,$80,$78,$02,$70,$02,$7C,$01,$3E,$80
ED40 DEFB $70,$03,$60,$0F,$E0,$0F,$C0,$1F,$C0,$1F,$80,$3F,$00,$7F,$00,$FF
ED50 DEFB $79,$00,$10,$06,$D0,$07,$F0,$07,$F8,$01,$FE,$00,$FF,$00,$FF,$00
ED60 DEFB $F8,$01,$E0,$07,$00,$1F,$00,$FF,$00,$FF,$00,$FF,$00,$7F,$80,$3F
ED70 DEFB $01,$FC,$01,$FC,$03,$F8,$03,$F8,$07,$F0,$07,$F0,$0F,$C0,$3F,$00
ED80 DEFB $FF,$00,$FF,$00,$E7,$00,$C3,$18,$C5,$10,$86,$30,$8F,$20,$0F,$60
ED90 DEFB $C0,$1F,$C0,$1F,$C0,$1F,$C0,$1F,$80,$3F,$80,$3F,$00,$7F,$00,$7F
EDA0 DEFB $00,$FC,$03,$F0,$0F,$E0,$1F,$C0,$1C,$C0,$1C,$C1,$1C,$C1,$0E,$E0
EDB0 DEFB $DF,$00,$DC,$00,$E0,$03,$00,$1F,$00,$FF,$00,$FF,$00,$FF,$00,$FF
EDC0 DEFB $1E,$C0,$1C,$C1,$18,$C3,$1C,$C1,$0C,$E1,$0E,$E0,$06,$F0,$00,$F9
EDD0 DEFB $79,$00,$10,$06,$D0,$07,$F0,$07,$F0,$07,$F8,$03,$F8,$03,$FC,$01
EDE0 DEFB $1C,$C1,$1C,$C1,$1C,$C1,$18,$C3,$18,$C3,$18,$C2,$39,$80,$3B,$80
EDF0 DEFB $00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FC,$03,$F8
EE00 DEFB $07,$F0,$07,$F0,$0F,$E0,$0F,$E0,$1F,$C0,$3E,$00,$FE,$00,$FC,$01
EE10 DEFB $FE,$00,$FF,$00,$FF,$00,$BF,$00,$0F,$40,$03,$F0,$01,$FC,$00,$FE
EE20 DEFB $00,$FF,$00,$7F,$80,$3F,$C0,$1F,$C0,$1F,$C0,$1F,$E0,$0F,$E0,$0F
EE30 DEFB $0B,$C0,$3B,$80,$3C,$80,$70,$03,$60,$0F,$E0,$0F,$C0,$1F,$C0,$1F
EE40 DEFB $F0,$03,$80,$0F,$00,$7F,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FF
EE50 DEFB $A0,$0F,$E0,$0F,$70,$07,$70,$07,$70,$07,$70,$03,$7C,$01,$3E,$80
EE60 DEFB $1F,$C0,$11,$C0,$1E,$C0,$1F,$C0,$1F,$C0,$0F,$E0,$0F,$E0,$0F,$E0
EE70 DEFB $FC,$01,$F8,$01,$64,$01,$9C,$01,$BC,$01,$BC,$01,$DC,$01,$DC,$01
EE80 DEFB $0F,$E0,$07,$F0,$07,$F0,$07,$F0,$07,$F0,$07,$F0,$07,$F0,$03,$F8
EE90 DEFB $DC,$01,$DC,$01,$DC,$01,$DC,$01,$DC,$01,$BC,$01,$DC,$01,$DC,$01
EEA0 DEFB $02,$F8,$03,$F8,$03,$F8,$03,$F8,$03,$F8,$03,$F8,$03,$F8,$01,$FC
EEB0 DEFB $58,$03,$C8,$03,$D8,$03,$D8,$03,$D8,$03,$D8,$03,$D8,$03,$B0,$07
EEC0 DEFB $1C,$C1,$1C,$C1,$1C,$C1,$0C,$E1,$0C,$E1,$0C,$01,$EC,$01,$F4,$01
EED0 DEFB $3A,$80,$3A,$80,$3B,$80,$3D,$80,$3F,$80,$3D,$80,$5F,$00,$5F,$00
EEE0 DEFB $B6,$00,$56,$00,$F6,$00,$F6,$00,$F6,$00,$EE,$00,$9E,$00,$FE,$00
EEF0 DEFB $5F,$00,$5F,$00,$5F,$00,$5F,$00,$5F,$00,$6F,$00,$6F,$00,$77,$00
EF00 DEFB $FE,$00,$FE,$00,$F6,$00,$F6,$00,$FE,$00,$FE,$00,$FC,$01,$FC,$01
EF10 DEFB $77,$00,$77,$00,$37,$80,$08,$C0,$08,$E0,$0F,$E0,$0F,$E0,$1F,$C0
EF20 DEFB $FC,$01,$FC,$01,$F8,$01,$04,$01,$04,$01,$FC,$01,$FC,$01,$FC,$01
EF30 DEFB $02,$F8,$02,$F8,$00,$FC,$01,$FC,$01,$FC,$01,$FC,$01,$FC,$00,$FE
EF40 DEFB $00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FE,$01,$FC,$03,$F8
EF50 DEFB $03,$F8,$06,$F0,$0F,$C0,$37,$80,$7B,$00,$7B,$00,$FB,$00,$F6,$00
EF60 DEFB $ED,$00,$EF,$00,$F7,$00,$7B,$00,$BC,$00,$DF,$00,$C7,$00,$B8,$00
EF70 DEFB $7D,$00,$73,$00,$66,$00,$00,$99,$00,$FF,$00,$FF,$00,$FF,$00,$FF
EF80 DEFB $00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$1F,$E0,$0F,$F0,$07
EF90 DEFB $70,$07,$30,$07,$10,$07,$A0,$0F,$C0,$1F,$00,$3F,$C0,$07,$38,$03
EFA0 DEFB $9C,$01,$DC,$01,$FA,$00,$C6,$00,$36,$00,$F4,$01,$E0,$03,$00,$1F
EFB0 DEFB $80,$1F,$00,$7F,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FF
EFC0 DEFB $00,$FF,$00,$FF,$00,$FE,$01,$FC,$01,$FC,$03,$F8,$03,$F8,$02,$F8
EFD0 DEFB $00,$FF,$00,$FF,$00,$FC,$03,$F8,$07,$F0,$07,$F0,$06,$F0,$07,$F0
EFE0 DEFB $00,$FF,$00,$FF,$00,$3F,$C0,$1F,$E0,$0F,$E0,$0F,$00,$0F,$00,$0F
EFF0 DEFB $00,$FF,$00,$FE,$01,$FC,$03,$F8,$02,$F8,$01,$FC,$03,$F8,$07,$F0
F000 DEFB $07,$30,$CF,$00,$BF,$00,$7F,$00,$FF,$00,$FF,$00,$FF,$00,$EF,$00
F010 DEFB $E0,$0F,$C0,$0F,$B0,$07,$F8,$03,$FC,$01,$FE,$00,$DF,$00,$DF,$00
F020 DEFB $00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$7F,$80,$3F
F030 DEFB $07,$F0,$0F,$E0,$0F,$E0,$0E,$E0,$0F,$E0,$07,$E0,$0B,$E0,$0D,$E0
F040 DEFB $9F,$00,$7F,$00,$7F,$00,$FF,$00,$7F,$00,$7F,$00,$9F,$00,$EF,$00
F050 DEFB $B7,$00,$E3,$08,$E1,$0C,$E0,$0E,$C0,$00,$DE,$00,$FF,$00,$FF,$00
F060 DEFB $C0,$1F,$C0,$1F,$E0,$0F,$F0,$07,$70,$07,$78,$03,$38,$03,$78,$03
F070 DEFB $0E,$E0,$0D,$E0,$01,$F0,$01,$FC,$01,$FC,$01,$FC,$03,$F8,$03,$F8
F080 DEFB $F7,$00,$77,$00,$8F,$00,$FF,$00,$FB,$00,$F0,$04,$F0,$07,$E0,$0E
F090 DEFB $FF,$00,$FF,$00,$FE,$00,$DC,$01,$3C,$01,$78,$03,$70,$07,$E0,$0F
F0A0 DEFB $78,$03,$30,$07,$00,$CF,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FF
F0B0 DEFB $03,$F8,$03,$F8,$07,$F0,$07,$F0,$07,$F0,$07,$F0,$0F,$E0,$0E,$E0
F0C0 DEFB $C1,$1C,$C1,$1C,$C1,$1C,$81,$3C,$81,$3C,$00,$7E,$00,$7F,$00,$FF
F0D0 DEFB $C0,$1F,$80,$3F,$80,$3F,$80,$3F,$00,$7F,$00,$FF,$00,$FF,$00,$FF
F0E0 DEFB $0E,$E0,$1C,$C1,$1C,$C1,$18,$C3,$38,$83,$38,$83,$78,$03,$78,$03
F0F0: Dog tiles, tiles with mask, 61 tiles, 16 bytes each
Used to draw tiles from Tile screen 3, see B1FC.
F0F0 DEFB $00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$F0
F100 DEFB $00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$8F,$70,$03
F110 DEFB $00,$FF,$00,$FF,$00,$FE,$01,$FC,$03,$F8,$04,$70,$88,$03,$70,$07
F120 DEFB $0F,$C0,$3F,$80,$7F,$00,$FF,$00,$7F,$00,$FE,$00,$7F,$00,$0F,$80
F130 DEFB $00,$00,$FF,$00,$EF,$00,$EF,$00,$FF,$00,$FF,$00,$7F,$00,$7F,$00
F140 DEFB $EC,$01,$7E,$00,$BE,$00,$E8,$01,$86,$10,$80,$39,$80,$3F,$00,$7F
F150 DEFB $00,$8F,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FF
F160 DEFB $06,$F0,$06,$F0,$0D,$E0,$0C,$E0,$05,$F0,$06,$F0,$03,$F8,$01,$FC
F170 DEFB $BC,$00,$86,$00,$73,$00,$C1,$0C,$80,$1E,$61,$0C,$32,$00,$00,$4D
F180 DEFB $00,$FF,$00,$FF,$00,$7F,$80,$3F,$80,$3F,$00,$7F,$00,$FF,$00,$FF
F190 DEFB $00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FE,$01,$FC,$01,$FC,$03,$00
F1A0 DEFB $00,$FF,$00,$FF,$00,$FF,$00,$7F,$80,$07,$F8,$03,$F4,$01,$3E,$00
F1B0 DEFB $00,$F0,$0F,$E0,$17,$00,$EF,$00,$0F,$00,$1F,$C0,$1F,$C0,$0D,$E0
F1C0 DEFB $00,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$EF,$00,$F7,$00,$F4,$00
F1D0 DEFB $FE,$00,$F7,$00,$EF,$00,$EF,$00,$F7,$00,$FF,$00,$FF,$00,$FD,$00
F1E0 DEFB $FF,$00,$78,$00,$BE,$00,$C0,$01,$80,$3F,$80,$3F,$C0,$1F,$E0,$0F
F1F0 DEFB $0E,$E0,$0E,$E0,$1C,$C1,$30,$82,$60,$0E,$40,$1E,$60,$0E,$20,$8F
F200 DEFB $F0,$03,$E0,$0F,$60,$0F,$C0,$1F,$C0,$1F,$80,$3F,$C0,$0F,$70,$07
F210 DEFB $02,$00,$00,$FC,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FF
F220 DEFB $F0,$07,$30,$07,$58,$03,$2C,$80,$37,$80,$03,$C8,$00,$FC,$00,$FF
F230 DEFB $00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$E0
F240 DEFB $00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$1F
F250 DEFB $00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$8F,$70,$03
F260 DEFB $00,$FF,$00,$FE,$01,$FC,$02,$F8,$05,$80,$79,$00,$00,$80,$05,$F0
F270 DEFB $1F,$C0,$3F,$00,$FF,$00,$FF,$00,$FF,$00,$FC,$00,$E0,$03,$C0,$1F
F280 DEFB $E0,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$7F,$00,$1F,$80,$07,$E0
F290 DEFB $FC,$01,$F6,$00,$7F,$00,$BF,$00,$DC,$00,$C0,$03,$C0,$1F,$00,$1F
F2A0 DEFB $1D,$C0,$23,$80,$0E,$80,$78,$01,$C0,$07,$00,$3F,$00,$FF,$00,$FF
F2B0 DEFB $C0,$1F,$80,$3F,$00,$7F,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FF
F2C0 DEFB $0E,$E0,$0C,$E1,$08,$E3,$18,$C3,$10,$C7,$30,$87,$30,$87,$18,$C3
F2D0 DEFB $E0,$0F,$60,$0F,$30,$87,$10,$C7,$18,$C0,$0F,$E0,$07,$F0,$00,$F8
F2E0 DEFB $00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$F1,$0E,$80
F2F0 DEFB $00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$91
F300 DEFB $00,$FF,$00,$FF,$00,$FE,$00,$FE,$00,$FE,$00,$FE,$00,$FE,$00,$FE
F310 DEFB $7F,$00,$7F,$00,$FF,$00,$FF,$00,$F7,$00,$F7,$00,$EB,$00,$ED,$00
F320 DEFB $6E,$00,$5F,$00,$6D,$00,$72,$00,$B6,$00,$BE,$00,$D2,$00,$ED,$00
F330 DEFB $00,$7F,$80,$3F,$80,$3F,$80,$3F,$00,$7F,$00,$FF,$00,$FF,$00,$7F
F340 DEFB $00,$FE,$01,$FC,$01,$FC,$01,$FC,$00,$FE,$00,$FE,$00,$FF,$00,$FF
F350 DEFB $C4,$10,$84,$30,$84,$30,$8C,$21,$CC,$01,$C4,$01,$66,$00,$66,$00
F360 DEFB $F2,$00,$C6,$00,$C6,$10,$42,$18,$42,$18,$62,$08,$66,$00,$66,$00
F370 DEFB $00,$FC,$03,$F8,$03,$F8,$01,$FC,$01,$1C,$E3,$00,$DF,$00,$B1,$00
F380 DEFB $02,$00,$C6,$00,$6C,$00,$38,$00,$1C,$00,$36,$00,$63,$00,$40,$00
F390 DEFB $10,$00,$18,$00,$18,$00,$7F,$00,$FE,$00,$18,$00,$18,$00,$08,$00
F3A0 DEFB $00,$00,$00,$00,$20,$00,$FC,$00,$FF,$00,$20,$00,$00,$00,$00,$00
F3B0 DEFB $00,$00,$00,$00,$20,$00,$FC,$00,$FF,$00,$20,$00,$00,$00,$00,$00
F3C0 DEFB $00,$00,$00,$00,$3C,$00,$32,$00,$6E,$00,$6E,$00,$7C,$00,$00,$00
F3D0 DEFB $00,$00,$18,$00,$3C,$00,$62,$00,$6E,$00,$3E,$00,$1C,$00,$00,$00
F3E0 DEFB $1E,$00,$3E,$00,$7A,$00,$86,$00,$F4,$00,$F8,$00,$F0,$00,$00,$00
F3F0 DEFB $1E,$00,$3E,$00,$7A,$00,$86,$00,$F4,$00,$F8,$00,$F0,$00,$00,$00
F400 DEFB $00,$00,$00,$00,$00,$00,$FF,$00,$FF,$00,$00,$00,$00,$00,$00,$00
F410 DEFB $18,$00,$18,$00,$18,$00,$18,$00,$18,$00,$18,$00,$18,$00,$18,$00
F420 DEFB $00,$00,$0E,$00,$30,$00,$78,$00,$48,$00,$78,$00,$70,$00,$00,$00
F430 DEFB $00,$00,$1C,$00,$18,$00,$34,$00,$3C,$00,$3C,$00,$38,$00,$00,$00
F440 DEFB $1E,$C0,$3E,$80,$7A,$00,$86,$00,$F4,$01,$F8,$03,$F0,$07,$00,$0F
F450 DEFB $1E,$C0,$3E,$80,$7A,$00,$86,$00,$F4,$01,$F8,$03,$F0,$07,$00,$0F
F460 DEFB $FA,$00,$9E,$00,$BA,$00,$FA,$00,$FA,$00,$FE,$00,$FA,$00,$00,$00
F470 DEFB $BE,$00,$FE,$00,$BE,$00,$BE,$00,$BE,$00,$FE,$00,$BE,$00,$00,$00
F480 DEFB $08,$00,$18,$00,$38,$00,$7C,$00,$5E,$00,$5A,$00,$7E,$00,$3C,$00
F490 DEFB $08,$00,$08,$00,$1C,$00,$36,$00,$3A,$00,$3A,$00,$3E,$00,$1C,$00
F4A0 DEFB $3C,$00,$7A,$00,$DF,$00,$FF,$00,$FD,$00,$FF,$00,$76,$00,$3C,$00
F4B0 DEFB $3C,$00,$76,$00,$DF,$00,$FF,$00,$FF,$00,$FF,$00,$6E,$00,$3C,$00
F4C0 DEFB $7C,$01,$FC,$01,$FC,$01,$C8,$03,$98,$03,$08,$03,$38,$03,$90,$07
F4D0 DEFB $F0,$04,$83,$00,$0F,$00,$B8,$00,$D7,$00,$CF,$00,$FF,$00,$FE,$00
F4E0 DEFB $00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FE,$01,$FC,$01,$FC
F4F0 DEFB $00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$C1,$3E,$00,$FE,$00,$FE,$00
F500 DEFB $00,$FE,$00,$FE,$00,$FE,$00,$FE,$00,$FE,$00,$FA,$05,$F0,$0B,$E0
F510 DEFB $C4,$01,$AC,$01,$84,$01,$9C,$01,$E8,$01,$FE,$00,$FF,$00,$FF,$00
F520 DEFB $00,$FF,$00,$FF,$00,$FF,$00,$FC,$03,$F8,$03,$F8,$01,$FC,$01,$FC
F530 DEFB $00,$FF,$00,$FF,$00,$83,$7C,$01,$FC,$01,$FC,$01,$88,$03,$58,$03
F540 DEFB $01,$FC,$03,$00,$DF,$00,$3F,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$00
F550 DEFB $08,$03,$38,$03,$D0,$03,$FC,$01,$FE,$00,$FE,$00,$FF,$00,$FF,$00
F560 DEFB $00,$FE,$01,$F8,$07,$F0,$07,$F0,$07,$F0,$01,$F8,$01,$FC,$01,$FC
F570 DEFB $78,$03,$F8,$03,$E8,$02,$59,$00,$0B,$00,$BF,$00,$DF,$00,$FF,$00
F580 DEFB $01,$FC,$03,$C0,$2F,$80,$5F,$00,$DE,$00,$DF,$00,$DF,$00,$CF,$00
F590 DEFB $08,$03,$38,$03,$D0,$03,$FC,$01,$3E,$00,$C0,$00,$FF,$00,$FF,$00
F5A0 DEFB $00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FF
F5B0 DEFB $00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$3F,$C0,$1F,$E0,$07,$38,$00
F5C0 DEFB $00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$C0,$3F,$00,$FF,$00,$FE,$00
F5D0 DEFB $00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FF,$00,$FC,$03,$80,$7F,$00
F5E0 DEFB $00,$1F,$E0,$0F,$F0,$07,$F0,$07,$F0,$01,$F6,$00,$EF,$00,$07,$10
F5F0 DEFB $DF,$00,$FF,$00,$FF,$00,$FF,$00,$3F,$00,$D7,$00,$D1,$00,$A0,$06
F600 DEFB $71,$00,$8F,$00,$BF,$00,$7F,$00,$73,$00,$7C,$00,$BF,$00,$4F,$00
F610 DEFB $F8,$00,$FF,$00,$FF,$00,$07,$00,$FF,$00,$FF,$00,$3F,$00,$CE,$00
F620 DEFB $00,$F0,$07,$C0,$3E,$00,$F9,$00,$E7,$00,$DF,$00,$BF,$00,$38,$00
F630 DEFB $00,$FF,$00,$FF,$00,$FF,$00,$80,$7F,$00,$FF,$00,$FF,$00,$7E,$00
F640 DEFB $00,$FF,$00,$FE,$01,$FC,$03,$F8,$07,$F0,$07,$F0,$06,$F0,$06,$F0
F650 DEFB $00,$FF,$00,$1F,$E0,$0F,$F0,$07,$F0,$07,$F0,$07,$B0,$07,$50,$07
F660 DEFB $F0,$07,$F0,$07,$F0,$01,$EC,$00,$1E,$00,$FE,$00,$FF,$00,$FF,$00
F670 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
F680 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
F690 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
F6A0 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
F6B0 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
F6C0 DEFB $00,$FF,$00,$FF,$00,$FF,$00,$FE,$00,$FE,$00,$98,$67,$00,$7F,$00
F6D0 DEFB $00,$F0,$0D,$C0,$2B,$00,$ED,$00,$EE,$00,$B6,$00,$5B,$00,$6B,$00
F6E0 DEFB $00,$0F,$B0,$03,$D4,$00,$B7,$00,$77,$00,$ED,$00,$DA,$00,$D6,$00
F6F0 DEFB $00,$FF,$00,$FF,$00,$FF,$00,$7F,$00,$7F,$00,$19,$E6,$00,$FE,$00
F700: Background tiles, 59 tiles, 9 bytes each
Used to draw background level, see B177.
F700 DEFB $FE,$82,$A2,$A2,$BA,$82,$FE,$00,$30
F709 DEFB $7F,$41,$7F,$00,$7F,$41,$7F,$00,$20
F712 DEFB $FF,$80,$80,$80,$FF,$08,$08,$08,$08
F71B DEFB $FF,$FF,$08,$FF,$80,$FF,$08,$08,$08
F724 DEFB $02,$7A,$42,$52,$52,$5A,$42,$7A,$30
F72D DEFB $EF,$8C,$AC,$AF,$AF,$8C,$EC,$0F,$30
F736 DEFB $6F,$4C,$6C,$0F,$6F,$4C,$6C,$0F,$20
F73F DEFB $EF,$8C,$8C,$8F,$EF,$0C,$0C,$0F,$08
F748 DEFB $F6,$32,$32,$F2,$F2,$32,$36,$F0,$30
F751 DEFB $F7,$31,$37,$F0,$F7,$31,$37,$F0,$20
F75A DEFB $F7,$30,$30,$F0,$F7,$30,$30,$F0,$08
F763 DEFB $40,$5F,$41,$41,$41,$5D,$41,$5F,$30
F76C DEFB $D5,$95,$A5,$A5,$A9,$A5,$95,$D5,$10
F775 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$08
F77E DEFB $E0,$E0,$F0,$DC,$C7,$C0,$C0,$C0,$08
F787 DEFB $00,$00,$00,$00,$80,$F8,$0F,$00,$08
F790 DEFB $00,$00,$00,$00,$00,$0F,$F8,$00,$08
F799 DEFB $01,$01,$07,$1C,$F0,$80,$00,$00,$08
F7A2 DEFB $C0,$C0,$C0,$C0,$C0,$C0,$C0,$C0,$08
F7AB DEFB $FF,$80,$80,$00,$F7,$F0,$F0,$F0,$08
F7B4 DEFB $FF,$80,$80,$80,$EF,$0F,$0F,$0F,$08
F7BD DEFB $83,$01,$01,$01,$01,$01,$83,$FF,$28
F7C6 DEFB $F0,$FC,$FE,$1F,$07,$FA,$FC,$F0,$22
F7CF DEFB $FD,$82,$82,$84,$F4,$08,$08,$08,$08
F7D8 DEFB $D0,$90,$90,$90,$A0,$20,$20,$20,$08
F7E1 DEFB $40,$40,$40,$40,$80,$80,$80,$80,$08
F7EA DEFB $FF,$FF,$FF,$00,$00,$00,$00,$00,$0A
F7F3 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$20
F7FC DEFB $BF,$40,$40,$20,$2F,$10,$10,$10,$08
F805 DEFB $0B,$08,$08,$08,$05,$04,$04,$04,$08
F80E DEFB $02,$02,$02,$02,$01,$01,$01,$01,$08
F817 DEFB $7F,$7F,$7F,$3F,$3F,$1F,$0F,$03,$39
F820 DEFB $FE,$FE,$FE,$FC,$FC,$F8,$F0,$C0,$39
F829 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$38
F832 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$28
F83B DEFB $00,$00,$00,$00,$00,$00,$00,$00,$20
F844 DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$F0,$20
F84D DEFB $F7,$79,$7B,$3C,$BD,$9E,$12,$FF,$20
F856 DEFB $7F,$41,$7F,$00,$7F,$41,$00,$FF,$20
F85F DEFB $FF,$FE,$F9,$F0,$CF,$A1,$77,$F0,$20
F868 DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$20
F871 DEFB $FF,$FE,$FE,$FC,$FB,$F1,$CF,$80,$20
F87A DEFB $EF,$E1,$EF,$E0,$DF,$C1,$BF,$80,$20
F883 DEFB $01,$03,$07,$0F,$1F,$3F,$7F,$FF,$20
F88C DEFB $F6,$F6,$F6,$F4,$F5,$ED,$EB,$E8,$20
F895 DEFB $07,$07,$03,$03,$03,$01,$01,$01,$20
F89E DEFB $FF,$7F,$3F,$1F,$1F,$0F,$0F,$07,$20
F8A7 DEFB $F3,$FC,$FF,$FF,$FF,$FF,$FF,$FF,$20
F8B0 DEFB $7F,$41,$7F,$80,$CF,$F1,$FC,$FF,$20
F8B9 DEFB $41,$BF,$BF,$DF,$DF,$DF,$DF,$DF,$20
F8C2 DEFB $FF,$FF,$FF,$FF,$FF,$FF,$C3,$00,$20
F8CB DEFB $FF,$FF,$FE,$FE,$FE,$FD,$FD,$F8,$20
F8D4 DEFB $79,$47,$6F,$1F,$5F,$3F,$3F,$7F,$20
F8DD DEFB $FB,$FD,$FE,$E6,$DF,$DB,$E7,$FF,$20
F8E6 DEFB $73,$4D,$6E,$0E,$6E,$46,$77,$02,$20
F8EF DEFB $47,$39,$FB,$C0,$3F,$41,$7F,$00,$20
F8F8 DEFB $FF,$00,$7F,$45,$51,$7F,$00,$FF,$28
F901 DEFB $82,$AA,$AA,$AA,$AA,$AA,$AA,$82,$28
F90A DEFB $99,$B9,$B9,$99,$9D,$99,$99,$99,$28
F913: Routine at F913
Used by the routine at F9E7.
F913 LD A,$04
F915 LD ($89B4),A
F918 LD A,$F4
F91A LD ($89B6),A
F91D LD HL,$0D1B
F920 LD BC,$0505
F923 LD DE,$0506
F926 LD A,($E1EC)
F929 CP $34
F92B JR NC,$F94D
F92D LD E,$0B
F92F LD A,$17
F931 LD ($89B4),A
F934 LD A,$E1
F936 LD ($89B6),A
F939 LD A,($E1EC)
F93C CP $33
F93E JR Z,$F94D
F940 LD C,$0F
F942 LD D,$0B
F944 CP $32
F946 JR Z,$F94D
F948 LD B,$0A
F94A LD HL,$1216
F94D LD A,H
F94E LD ($8D46),A
F951 LD A,B
F952 LD ($8CAF),A
F955 LD A,C
F956 LD ($8A53),A
F959 LD A,D
F95A LD ($8A01),A
F95D LD A,E
F95E LD ($88EC),A
F961 LD A,L
F962 LD ($8D48),A
F965 JP $B3B0
This entry point is used by the routine at AEF0.
F968 JP Z,$B040
F96B CP $30
F96D JP Z,$B040
F970 JP $AF9C
F973: Room 84A8 initialization
Used by the routine at B66A.
F973 LD HL,$65DA tile screen address
F976 LD DE,$F98F block address
F979 LD C,$06 6 rows
F97B LD B,$03 3 columns
F97D LD A,(DE)
F97E LD (HL),A
F97F INC HL
F980 INC DE
F981 DJNZ $F97D
F983 PUSH DE
F984 LD DE,$001B
F987 ADD HL,DE
F988 POP DE
F989 DEC C
F98A JR NZ,$F97B
F98C JP $B422
F98F: Block 3x6 tiles for room 84A8
F98F DEFB $82,$83,$84 Back block 3x6 - crane
F992 DEFB $85,$86,$87
F995 DEFB $85,$88,$89
F998 DEFB $8A,$8B,$89
F99B DEFB $82,$83,$84
F99E DEFB $00,$8C,$00
F9A1: Sound ??
Used by the routines at B596, FA28 and FA31.
F9A1 RL B
F9A3 RL B
F9A5 RL B
F9A7 RL B
F9A9 LD HL,$0000
F9AC LD A,(HL)
F9AD AND $F8
F9AF OUT ($FE),A
F9B1 LD C,(HL)
F9B2 INC HL
F9B3 DEC C
F9B4 JR NZ,$F9B3
F9B6 DJNZ $F9AC
F9B8 RET
F9B9: Pause, then wait for any key pressed
Used by the routine at BEB3.
F9B9 LD DE,$0000
F9BC DEC DE
F9BD LD B,$05
F9BF DJNZ $F9BF
F9C1 LD A,D
F9C2 OR E
F9C3 JR NZ,$F9BC
F9C5 CALL $BBDF Read Input
F9C8 LD A,($7222)
F9CB CP $00
F9CD LD A,($7232) get Input bits
F9D0 JR Z,$F9D7
F9D2 BIT 4,A
F9D4 RET NZ
F9D5 JR $F9C5
F9D7 XOR A
F9D8 LD ($5C08),A clear LASTK
F9DB RST $38
F9DC LD A,($5C08) get LASTK
F9DF CP $00
F9E1 RET NZ
F9E2 JR $F9C5
F9E4: Routine at F9E4
F9E4 CALL $6590 Prepare screen, show anti-piracy message, and wait for any key
F9E7: Start point after loading
F9E7 LD A,$21
F9E9 LD ($AEDB),A
F9EC LD A,$C6
F9EE LD ($AEDC),A
F9F1 CALL $BC13
F9F4 CALL $F913
F9F7 JR $F9F4
F9F9: Routine at F9F9
Used by the routine at BD37.
F9F9 LD HL,$00B4
F9FC LD B,$01
F9FE CALL $FA11
FA01 LD HL,$BDAF
FA04 RET
FA05 LD HL,$018F
FA08 LD B,$10
FA0A CALL $FA11
FA0D LD A,($71CF)
FA10 RET
FA11: Routine at FA11
Used by the routine at F9F9.
FA11 LD A,$10
FA13 OUT ($FE),A
FA15 LD A,B
FA16 DEC A
FA17 JR NZ,$FA16
FA19 INC B
FA1A XOR A
FA1B OUT ($FE),A
FA1D LD A,L
FA1E AND $F8
FA20 OUT ($FE),A
FA22 DEC HL
FA23 LD A,H
FA24 OR L
FA25 JR NZ,$FA11
FA27 RET
FA28: Routine at FA28
Used by the routine at BAD5.
FA28 LD B,$01
FA2A CALL $F9A1
FA2D LD A,($7184) get current room address low byte
FA30 RET
FA31: Decrease Energy by B + Sound
Used by the routine at A434.
FA31 CALL $9DD9 Decrease Energy by B
FA34 LD B,$01
FA36 CALL $F9A1 Sound
FA39 RET
FA3A: Data block at FA3A
FA3A DEFB $00,$00,$00,$00,$00,$00,$00,$00
FA42 DEFB $00,$00,$00,$00,$00,$00,$00,$00
FA4A DEFB $00,$00,$00,$00,$00,$00,$00,$00
FA52 DEFB $00,$00,$00,$00,$00,$00,$00,$00
FA5A DEFB $00,$00,$00,$00,$00,$00,$00,$00
FA62 DEFB $00,$00,$00,$00,$00,$00,$00,$00
FA6A DEFB $00,$00,$00,$00,$00,$00,$00,$00
FA72 DEFB $00,$00,$00,$00,$00,$00,$00,$00
FA7A DEFB $00,$FF,$60,$04,$FF,$FF,$10,$86
FA82 DEFB $FF,$28,$00,$00,$00,$00,$00,$00
FA8A DEFB $00,$00,$00,$DF,$FB,$DF,$FF,$F7
FA92 DEFB $FF,$DF,$FF,$08,$DF,$FB,$DF,$FF
FA9A DEFB $F7,$FF,$DF,$FF,$08,$DF,$FB,$DF
FAA2 DEFB $FF,$F7,$FF,$DF,$FF,$08,$DF,$FB
FAAA DEFB $DF,$FF,$F7,$FF,$DF,$FF,$08,$00
FAB2 DEFB $00,$00,$00,$FF,$FF,$00,$FF,$10
FABA DEFB $00,$00,$00,$00,$FF,$FF,$00,$FF
FAC2 DEFB $10,$00,$00,$00,$00,$FF,$FF,$00
FACA DEFB $FF,$10,$DF,$FB,$DF,$FF,$F7,$FF
FAD2 DEFB $DF,$FF,$08,$DF,$FB,$DF,$FF,$F7
FADA DEFB $FF,$DF,$FF,$08,$DF,$FB,$DF,$FF
FAE2 DEFB $F7,$FF,$DF,$FF,$08,$DF,$FB,$DF
FAEA DEFB $FF,$F7,$FF,$DF,$FF,$08,$DF,$FB
FAF2 DEFB $DF,$FF,$F7,$FF,$DF,$FF,$08,$DF
FAFA DEFB $FB,$DF,$FF,$F7,$FF,$DF,$FF,$08
FB02 DEFB $DF,$FB,$DF,$FF,$F7,$FF,$DF,$FF
FB0A DEFB $08,$DF,$FB,$DF,$FF,$F7,$FF,$DF
FB12 DEFB $FF,$08,$DF,$FB,$DF,$FF,$F7,$FF
FB1A DEFB $DF,$FF,$08,$DF,$FB,$DF,$FF,$F7
FB22 DEFB $FF,$DF,$FF,$08,$DF,$FB,$DF,$FF
FB2A DEFB $F7,$FF,$DF,$FF,$08,$DF,$FB,$DF
FB32 DEFB $FF,$F7,$FF,$DF,$FF,$08,$DF,$FB
FB3A DEFB $DF,$FF,$F7,$FF,$DF,$FF,$08,$DF
FB42 DEFB $FB,$DF,$FF,$F7,$FF,$DF,$FF,$08
FB4A DEFB $DF,$FB,$DF,$FF,$F7,$FF,$DF,$FF
FB52 DEFB $08,$DF,$FB,$DF,$FF,$F7,$FF,$DF
FB5A DEFB $FF,$08,$DF,$FB,$DF,$FF,$F7,$FF
FB62 DEFB $DF,$FF,$08,$DF,$FB,$DF,$FF,$F7
FB6A DEFB $FF,$DF,$FF,$08,$DF,$FB,$DF,$FF
FB72 DEFB $F7,$FF,$DF,$FF,$08,$DF,$FB,$DF
FB7A DEFB $FF,$F7,$FF,$DF,$FF,$08,$DF,$FB
FB82 DEFB $DF,$FF,$F7,$FF,$DF,$FF,$08,$00
FB8A DEFB $00,$00,$00,$FF,$FF,$00,$FF,$10
FB92 DEFB $1F,$FA,$FF,$A0,$A0,$FF,$F5,$1F
FB9A DEFB $28,$FF,$AA,$FF,$00,$00,$FF,$55
FBA2 DEFB $FF,$28,$F8,$AF,$FF,$05,$05,$FF
FBAA DEFB $5F,$F8,$28,$6E,$62,$62,$62,$62
FBB2 DEFB $62,$6E,$60,$30,$96,$97,$DB,$19
FBBA DEFB $DA,$9A,$9A,$9A,$30,$B4,$74,$EC
FBC2 DEFB $CC,$2C,$8C,$EC,$0C,$30,$DA,$9A
FBCA DEFB $B2,$B2,$B2,$B2,$B6,$30,$30,$EC
FBD2 DEFB $8C,$AC,$AC,$AC,$8C,$EC,$0C,$30
FBDA DEFB $62,$62,$6E,$60,$67,$6F,$5D,$5A
FBE2 DEFB $30,$B6,$B2,$B2,$B2,$32,$B2,$D6
FBEA DEFB $D0,$30,$FB,$18,$9C,$2E,$86,$C6
FBF2 DEFB $FE,$7C,$30,$00,$00,$00,$00,$00
FBFA DEFB $00,$00,$00,$00,$00,$00,$00,$00
FC02 DEFB $00,$00,$00,$00,$00,$00,$00,$00
FC0A DEFB $00,$00,$00,$00,$00,$00,$00,$00
FC12 DEFB $00,$00,$00,$00,$00,$00,$00,$FE
FC1A DEFB $FE,$C6,$38,$28,$28,$28,$7C,$21
FC22 DEFB $FE,$82,$A2,$22,$CA,$F2,$FC,$FF
FC2A DEFB $31,$CE,$F2,$FC,$FF,$FF,$FF,$FF
FC32 DEFB $FF,$31,$BE,$C2,$E2,$F2,$FA,$FC
FC3A DEFB $FE,$FF,$31,$00,$00,$00,$00,$00
FC42 DEFB $00,$00,$00,$08,$F3,$8F,$3F,$FF
FC4A DEFB $FF,$FF,$FF,$FF,$31,$FE,$82,$A2
FC52 DEFB $A0,$B3,$8F,$3F,$FF,$31,$FD,$83
FC5A DEFB $A7,$AF,$9F,$BF,$7F,$FF,$31,$07
FC62 DEFB $1B,$63,$87,$63,$1B,$07,$03,$28
FC6A DEFB $F0,$CC,$C3,$E1,$C6,$D8,$E0,$C0
FC72 DEFB $28,$FF,$FF,$FF,$FF,$FE,$FC,$F8
FC7A DEFB $F0,$32,$F0,$F8,$FC,$FE,$FF,$FF
FC82 DEFB $FF,$FF,$32,$FF,$FF,$FF,$FF,$7F
FC8A DEFB $3F,$1F,$0F,$32,$0F,$1F,$3F,$7F
FC92 DEFB $FF,$FF,$FF,$FF,$32,$07,$07,$07
FC9A DEFB $07,$FF,$FF,$FF,$FF,$20,$FF,$FF
FCA2 DEFB $FF,$FF,$E0,$E0,$E0,$E0,$20,$E0
FCAA DEFB $E0,$E0,$E0,$FF,$FF,$FF,$FF,$20
FCB2 DEFB $70,$70,$70,$70,$70,$70,$70,$70
FCBA DEFB $20,$00,$00,$00,$00,$00,$00,$00
FCC2 DEFB $00,$10,$1C,$1C,$1C,$1C,$1C,$1C
FCCA DEFB $1C,$1C,$20,$0E,$0E,$0E,$0E,$0E
FCD2 DEFB $0E,$0E,$0E,$20,$FF,$FF,$FF,$FF
FCDA DEFB $07,$07,$07,$07,$20,$38,$38,$38
FCE2 DEFB $38,$FF,$FF,$FF,$FF,$20,$38,$38
FCEA DEFB $38,$38,$38,$38,$38,$38,$20,$FF
FCF2 DEFB $FF,$FF,$FF,$38,$38,$38,$38,$20
FCFA DEFB $00,$FE,$02,$02,$02,$0A,$02,$02
FD02 DEFB $28,$02,$02,$02,$02,$02,$CA,$02
FD0A DEFB $FE,$28,$A0,$A0,$A0,$A0,$A0,$A0
FD12 DEFB $A0,$A0,$28,$A0,$A0,$A0,$A0,$A0
FD1A DEFB $BF,$80,$FF,$28,$E0,$E0,$70,$70
FD22 DEFB $B8,$B8,$DC,$1C,$20,$00,$00,$00
FD2A DEFB $00,$80,$80,$C0,$C0,$20,$EE,$8E
FD32 DEFB $A7,$A7,$BB,$83,$FD,$01,$30,$FF
FD3A DEFB $FF,$7F,$7F,$B8,$B8,$DC,$1C,$20
FD42 DEFB $0E,$0E,$07,$07,$FF,$FF,$FF,$FF
FD4A DEFB $20,$00,$00,$00,$00,$FF,$FF,$FF
FD52 DEFB $FF,$20,$00,$FF,$80,$A0,$A0,$A0
FD5A DEFB $A0,$A0,$28,$C0,$C0,$C0,$E0,$E0
FD62 DEFB $E0,$70,$70,$20,$01,$01,$01,$00
FD6A DEFB $00,$00,$00,$00,$20,$00,$00,$00
FD72 DEFB $00,$00,$80,$80,$80,$20,$0E,$0E
FD7A DEFB $07,$07,$07,$03,$03,$03,$20,$70
FD82 DEFB $38,$38,$38,$1C,$1C,$1C,$0E,$20
FD8A DEFB $FF,$FF,$FF,$FF,$00,$00,$00,$00
FD92 DEFB $20,$FF,$FF,$FF,$FF,$E0,$E0,$70
FD9A DEFB $70,$20,$D8,$9C,$9D,$9F,$9F,$9D
FDA2 DEFB $DC,$18,$30,$1A,$3A,$BA,$FA,$FA
FDAA DEFB $BA,$3A,$18,$30,$02,$02,$02,$02
FDB2 DEFB $02,$0A,$02,$02,$28,$00,$00,$00
FDBA DEFB $00,$00,$00,$00,$00,$20,$07,$07
FDC2 DEFB $0E,$0E,$1C,$1C,$3A,$38,$20,$76
FDCA DEFB $72,$E2,$E2,$DA,$C2,$BE,$80,$30
FDD2 DEFB $00,$00,$00,$00,$01,$01,$03,$03
FDDA DEFB $20,$FF,$FF,$FE,$FE,$1C,$1C,$3A
FDE2 DEFB $38,$20,$70,$70,$E0,$E0,$FF,$FF
FDEA DEFB $FF,$FF,$20,$BC,$BC,$9A,$9A,$9A
FDF2 DEFB $9A,$BC,$3C,$30,$80,$80,$80,$00
FDFA DEFB $00,$00,$00,$00,$20,$03,$03,$03
FE02 DEFB $07,$07,$07,$0E,$0E,$20,$70,$70
FE0A DEFB $E0,$E0,$E0,$C0,$C0,$C0,$20,$00
FE12 DEFB $00,$00,$00,$00,$01,$01,$01,$20
FE1A DEFB $0E,$1C,$1C,$1C,$38,$38,$38,$70
FE22 DEFB $20,$FF,$FF,$FF,$FF,$07,$07,$0E
FE2A DEFB $0E,$20,$7F,$41,$55,$41,$55,$41
FE32 DEFB $7F,$80,$28,$B6,$7D,$00,$00,$00
FE3A DEFB $00,$00,$00,$0E,$D8,$BE,$46,$DB
FE42 DEFB $A3,$B6,$CD,$7A,$0E,$03,$01,$02
FE4A DEFB $03,$01,$02,$01,$02,$0E,$C3,$3D
FE52 DEFB $66,$4E,$5E,$5E,$3C,$C3,$28,$FF
FE5A DEFB $73,$00,$8C,$FF,$FF,$00,$FF,$28
FE62 DEFB $3C,$7E,$BD,$BD,$BD,$A5,$7E,$C3
FE6A DEFB $20,$7F,$41,$3C,$DB,$5A,$DB,$3C
FE72 DEFB $3C,$20,$7F,$41,$00,$FF,$FF,$FF
FE7A DEFB $00,$00,$20,$00,$41,$7F,$00,$7F
FE82 DEFB $41,$7F,$00,$20,$FF,$FF,$FF,$FF
FE8A DEFB $FF,$FF,$FF,$FF,$20,$0F,$3F,$7F
FE92 DEFB $FF,$FF,$FF,$FF,$FF,$20,$00,$41
FE9A DEFB $7F,$00,$7F,$41,$00,$FF,$20,$5D
FEA2 DEFB $5D,$5D,$3C,$3D,$3D,$24,$FF,$20
FEAA DEFB $7B,$47,$6F,$1E,$3C,$78,$F0,$E0
FEB2 DEFB $20,$E0,$C0,$C0,$80,$80,$00,$00
FEBA DEFB $00,$20,$7D,$41,$7B,$03,$77,$47
FEC2 DEFB $6F,$0F,$20,$6E,$4E,$5C,$1D,$5D
FECA DEFB $5D,$5D,$1F,$20,$5F,$4F,$6F,$0F
FED2 DEFB $6F,$4F,$77,$07,$20,$77,$47,$7B
FEDA DEFB $03,$7B,$41,$7D,$00,$20,$7F,$41
FEE2 DEFB $7F,$00,$03,$7C,$7F,$1F,$20,$FF
FEEA DEFB $7F,$3F,$1F,$63,$40,$7F,$00,$20
FEF2 DEFB $66,$FF,$FF,$99,$66,$FF,$FF,$AA
FEFA DEFB $0D,$FF,$80,$3E,$C1,$1C,$E3,$08
FF02 DEFB $FF,$10,$42,$7E,$42,$52,$42,$52
FF0A DEFB $42,$7E,$27,$FF,$00,$80,$60,$1B
FF12 DEFB $04,$02,$01,$08,$01,$FE,$01,$00
FF1A DEFB $00,$00,$00,$00,$08,$FF,$00,$00
FF22 DEFB $00,$FF,$FF,$FF,$FF,$29,$80,$7F
FF2A DEFB $80,$00,$00,$00,$00,$00,$08,$FF
FF32 DEFB $80,$81,$86,$D8,$20,$40,$80,$08
FF3A DEFB $00,$22,$FF,$00,$FF,$22,$00,$00
FF42 DEFB $07,$32,$2E,$7B,$26,$32,$2E,$7B
FF4A DEFB $26,$07,$F0,$31,$3F,$F1,$F0,$31
FF52 DEFB $3F,$F1,$20,$0F,$8C,$FC,$8F,$0F
FF5A DEFB $8C,$FC,$8F,$20,$F1,$31,$3F,$F1
FF62 DEFB $F0,$31,$3F,$F1,$30,$0F,$8C,$FC
FF6A DEFB $8F,$4F,$8C,$FC,$8F,$30,$F6,$31
FF72 DEFB $3F,$F1,$F6,$31,$3F,$F1,$08,$6F
FF7A DEFB $8C,$FC,$8F,$6F,$8C,$FC,$8F,$08
FF82 DEFB $00,$00,$00,$00,$00,$00,$00,$00
FF8A DEFB $08,$FF,$80,$80,$80,$EF,$0F,$0F
FF92 DEFB $0F,$08,$FF,$80,$80,$00,$F7,$F0
FF9A DEFB $F0,$F0,$08,$84,$5B,$88,$F7,$22
FFA2 DEFB $D5,$FF,$FF,$30,$FF,$80,$3E,$C1
FFAA DEFB $1C,$E3,$08,$FF,$10,$44,$10,$FF
FFB2 DEFB $00,$FF,$FF,$FF,$FF,$30,$66,$00
FFBA DEFB $00,$00,$FF,$FF,$99,$99,$10,$B9
FFC2 DEFB $B3,$B1,$BB,$B9,$B3,$B3,$B3,$20
FFCA DEFB $00,$00,$00,$00,$FF,$FF,$00,$FF
FFD2 DEFB $10,$3C,$66,$42,$C3,$81,$81,$00
FFDA DEFB $00,$07,$D3,$D3,$D3,$D3,$D3,$D3
FFE2 DEFB $FF,$81,$08,$D3,$D3,$D3,$D3,$D3
FFEA DEFB $D3,$D3,$D3,$08,$81,$FF,$D3,$D3
FFF2 DEFB $D3,$D3,$D3,$D3,$08
FFF7: Background tile $FF
FFF7 DEFB $DF,$FB,$DF,$FF,$F7,$FF,$DF,$FF,$08