; Atic Atac for Sinclair ZX Spectrum ; (c) 1983 Ashby Computers and Graphics Ltd. ; ; Disassembled by obo ; ; Differences from original release: ; 6009: C0->00 - disable protection check on FRAMES sysvar after loading ; 7E91: B0->05 - new LSB of JP (HL) instruction (below) ; 7E92: 5C->D5 - new MSB of JP (HL) instruction ; 971F: D4->D3 - fixed typo in congratulations message ; D505: 00->E9 - JP (HL) instruction moved from printer buffer @equ=display=$4000 @equ=attrs=$5800 @equ=sysvar_FRAMES=$5c78 @org ; Data block at 5e00 @label=menu_selection b$5e00 defb $00 @label=charset_addr $5e01 defw $be4c @label=last_FRAMES $5e03 defb $00 @label=in_handlers $5e04 defb $00 ; flag set but never read @label=rand8 $5e05 defw $0000 ; only low 8 bits are ; meaningfully random $5e07 defs $09 @label=width_bytes $5e10 defb $02 @label=height_lines $5e11 defb $12 @label=counter_low $5e12 defb $3a @label=counter_high $5e13 defb $f5 @label=game_flags $5e14 defb $ac ; b0 set if room content ; drawn @label=saved_graphic $5e15 defb $36 @label=saved_x $5e16 defb $28 @label=saved_y $5e17 defb $97 @label=some_height $5e18 defb $00 @label=some_width $5e19 defb $00 @label=room_attr $5e1a defb $00 @label=room_ptr $5e1b defw $2c00 @label=room_width $5e1d defb $30 @label=room_height $5e1e defb $0e @label=pickup_flags $5e1f defb $00 @label=pickup_pressed $5e20 defb $00 @label=lives $5e21 defb $00 @label=text_attr $5e22 defb $c5 @label=line_counter $5e23 defb $00 @label=line_flags $5e24 defb $3a @label=num_creatures $5e25 defb $ef ; number of creatures ; processed this frame @label=last_creat_room $5e26 defb $22 @label=creature_delay $5e27 defb $22 @label=player_energy $5e28 defb $af @label=chicken_level $5e29 defb $3a ; last drawn chicken level @label=score_bcd $5e2a defb $f5,$ac,$36 @label=in_doorway $5e2d defb $0e @label=door_timer $5e2e defb $00 @label=walk_counter $5e2f defb $00 @label=inventory1 $5e30 defb $06,$00,$00,$2c @label=inventory2 $5e34 defb $30,$0e,$00,$00 @label=inventory3 $5e38 defb $00,$00,$00,$3a @label=flash_timer $5e3c defb $ef ; score flash timer @label=clock_hours $5e3d defb $22 @label=clock_minutes $5e3e defb $22 @label=clock_seconds $5e3f defb $af @label=visited_rooms $5e40 defb $3a,$f5,$c0,$32,$33,$34,$32,$34,$0e,$00 ; {visit rooms bit array $5e4a defb $00,$80,$5b,$00,$0d,$80,$ef,$22,$22,$0d ; } ; Data block at 5e54 @label=visited_percent b$5e54 defb $80 @label=food_ptr $5e55 defw $0000 i$5e57 ; Routine at 6000 @label=start c$6000 di ; $6001 ld sp,$5e00 ; $6004 ld a,($5c79) ; $6007 cp $25 ; is frames MSB as expected? @ssub=nop ; disable protection check on FRAMES sysvar after loading $6009 ret nz ; $600a jp $7c19 ; ; Initial game state data @label=player_init b$600d defb $00,$00,$00,$00,$00,$00,$00,$00 ; Data block at 6015 @label=weapon_init b$6015 defb $00,$00,$00,$00,$00,$00,$00,$00 ; Data block at 601d @label=sound_init b$601d defb $00,$00,$00,$00,$00,$00,$00,$00 ; Data block at 6025 @label=acg_key_init b$6025 defb $8c,$00,$00,$58,$58,$46,$00,$00 $602d defb $8d,$00,$00,$58,$58,$46,$00,$00 $6035 defb $8e,$00,$00,$58,$58,$46,$00,$00 ; green key @label=green_key_init b$603d defb $81,$05,$00,$70,$60,$44,$00,$00 ; red key @label=red_key_init b$6045 defb $81,$17,$00,$80,$40,$42,$00,$00 ; cyan key @label=cyan_key_init b$604d defb $81,$53,$00,$58,$58,$45,$00,$00 ; yellow key b$6055 defb $81,$66,$00,$30,$87,$46,$00,$00 ; Data block at 605d b$605d defb $80,$09,$00,$40,$40,$42,$00,$00 ; leaf $6065 defb $00,$00,$00,$00,$00,$00,$00,$00 ; tombstone1 $606d defb $00,$00,$00,$00,$00,$00,$00,$00 ; tombstone2 $6075 defb $00,$00,$00,$00,$00,$00,$00,$00 ; tombstone3 $607d defb $00,$00,$00,$00,$00,$00,$00,$00 ; tombstone4 $6085 defb $8a,$05,$00,$40,$70,$46,$00,$00 ; crucafix $608d defb $8b,$30,$00,$40,$70,$45,$00,$00 ; spanner $6095 defb $82,$3b,$00,$60,$60,$44,$00,$00 ; wine $609d defb $83,$48,$00,$70,$70,$45,$00,$00 ; coin $60a5 defb $84,$64,$00,$80,$80,$46,$00,$00 ; wing $60ad defb $85,$6b,$00,$40,$40,$45,$00,$00 ; whip $60b5 defb $86,$13,$00,$50,$50,$44,$00,$00 ; frog's leg $60bd defb $87,$84,$00,$60,$40,$43,$00,$00 ; jewel $60c5 defb $88,$1f,$00,$70,$70,$42,$00,$00 ; money bag $60cd defb $89,$49,$00,$50,$40,$47,$00,$00 ; skull ; Data block at 60d5 @label=food_init b$60d5 defb $50,$27,$00,$57,$67,$43,$00,$00 ; can $60dd defb $50,$7f,$00,$40,$40,$46,$00,$00 $60e5 defb $50,$1e,$00,$50,$57,$46,$00,$00 $60ed defb $50,$0c,$00,$60,$60,$43,$00,$00 $60f5 defb $50,$67,$00,$57,$40,$42,$00,$00 $60fd defb $50,$41,$00,$57,$67,$42,$00,$00 $6105 defb $51,$75,$00,$30,$40,$44,$00,$00 ; candy $610d defb $51,$83,$00,$30,$40,$46,$00,$00 $6115 defb $51,$0c,$00,$60,$70,$42,$00,$00 $611d defb $51,$68,$00,$57,$40,$43,$00,$00 $6125 defb $51,$45,$00,$57,$46,$45,$00,$00 $612d defb $51,$46,$00,$43,$7b,$45,$00,$00 $6135 defb $52,$86,$00,$47,$60,$43,$00,$00 ; chop $613d defb $52,$6e,$00,$60,$77,$42,$00,$00 $6145 defb $52,$7d,$00,$57,$67,$43,$00,$00 $614d defb $52,$6a,$00,$30,$67,$42,$00,$00 $6155 defb $52,$3e,$00,$43,$7b,$42,$00,$00 $615d defb $52,$35,$00,$57,$67,$43,$00,$00 $6165 defb $53,$2b,$00,$40,$80,$46,$00,$00 ; lollipop $616d defb $53,$8a,$00,$57,$67,$45,$00,$00 $6175 defb $53,$09,$00,$80,$90,$44,$00,$00 $617d defb $53,$70,$00,$80,$90,$43,$00,$00 $6185 defb $53,$74,$00,$57,$87,$42,$00,$00 $618d defb $53,$33,$00,$57,$67,$45,$00,$00 $6195 defb $54,$78,$00,$37,$37,$47,$00,$00 ; icecream $619d defb $54,$8a,$00,$7f,$7f,$47,$00,$00 $61a5 defb $54,$0b,$00,$57,$67,$46,$00,$00 $61ad defb $54,$65,$00,$57,$87,$46,$00,$00 $61b5 defb $54,$53,$00,$43,$7b,$47,$00,$00 $61bd defb $54,$4c,$00,$6b,$7b,$46,$00,$00 $61c5 defb $55,$7b,$00,$50,$60,$45,$00,$00 ; pudding $61cd defb $55,$87,$00,$57,$67,$45,$00,$00 $61d5 defb $55,$0d,$00,$30,$67,$43,$00,$00 $61dd defb $55,$66,$00,$43,$87,$43,$00,$00 $61e5 defb $55,$53,$00,$6b,$7b,$42,$00,$00 $61ed defb $55,$4f,$00,$57,$67,$47,$00,$00 $61f5 defb $56,$7e,$00,$37,$80,$44,$00,$00 ; apple $61fd defb $56,$8c,$00,$57,$67,$44,$00,$00 $6205 defb $56,$70,$00,$30,$90,$44,$00,$00 $620d defb $56,$66,$00,$6b,$87,$44,$00,$00 $6215 defb $56,$3c,$00,$43,$7b,$42,$00,$00 $621d defb $56,$39,$00,$43,$7b,$42,$00,$00 $6225 defb $57,$7e,$00,$87,$80,$47,$00,$00 ; bottle $622d defb $57,$24,$00,$60,$70,$47,$00,$00 $6235 defb $57,$70,$00,$57,$90,$47,$00,$00 $623d defb $57,$12,$00,$57,$40,$47,$00,$00 $6245 defb $57,$5e,$00,$57,$67,$47,$00,$00 $624d defb $57,$1d,$00,$30,$67,$47,$00,$00 $6255 defb $50,$17,$00,$40,$40,$42,$00,$00 ; can $625d defb $50,$73,$00,$30,$67,$42,$00,$00 $6265 defb $50,$07,$00,$57,$67,$43,$00,$00 $626d defb $50,$02,$00,$57,$67,$43,$00,$00 $6275 defb $51,$0f,$00,$57,$67,$43,$00,$00 ; candy $627d defb $51,$3a,$00,$30,$48,$43,$00,$00 $6285 defb $51,$41,$00,$80,$67,$42,$00,$00 $628d defb $51,$85,$00,$43,$7b,$42,$00,$00 $6295 defb $52,$6c,$00,$57,$47,$43,$00,$00 ; chop $629d defb $52,$3a,$00,$57,$48,$43,$00,$00 $62a5 defb $52,$69,$00,$30,$40,$03,$00,$00 $62ad defb $52,$80,$00,$30,$40,$03,$00,$00 $62b5 defb $53,$04,$00,$57,$67,$42,$00,$00 ; lollipop $62bd defb $53,$4b,$00,$30,$88,$42,$00,$00 $62c5 defb $53,$11,$00,$57,$67,$46,$00,$00 $62cd defb $53,$80,$00,$57,$40,$44,$00,$00 $62d5 defb $54,$69,$00,$30,$67,$46,$00,$00 ; icecream $62dd defb $54,$35,$00,$57,$90,$46,$00,$00 $62e5 defb $54,$69,$00,$30,$90,$46,$00,$00 $62ed defb $54,$80,$00,$80,$80,$44,$00,$00 $62f5 defb $55,$57,$00,$57,$40,$46,$00,$00 ; pudding $62fd defb $55,$35,$00,$57,$40,$46,$00,$00 $6305 defb $55,$25,$00,$6b,$7b,$43,$00,$00 $630d defb $55,$1b,$00,$57,$67,$44,$00,$00 $6315 defb $56,$58,$00,$57,$40,$44,$00,$00 ; apple $631d defb $56,$4e,$00,$67,$40,$42,$00,$00 $6325 defb $56,$37,$00,$57,$67,$46,$00,$00 $632d defb $56,$85,$00,$6b,$7b,$44,$00,$00 $6335 defb $57,$5b,$00,$57,$67,$47,$00,$00 ; bottle $633d defb $57,$4e,$00,$40,$67,$47,$00,$00 $6345 defb $57,$49,$00,$57,$67,$47,$00,$00 $634d defb $57,$28,$00,$57,$67,$47,$00,$00 $6355 defb $a1,$50,$00,$57,$40,$42,$00,$00 ; mushroom $635d defb $a1,$43,$00,$6b,$54,$42,$01,$00 $6365 defb $a1,$40,$00,$43,$7b,$42,$02,$00 $636d defb $a1,$8f,$00,$57,$8f,$42,$03,$00 $6375 defb $a1,$8f,$00,$43,$7b,$42,$04,$00 $637d defb $a1,$8f,$00,$6b,$7b,$42,$05,$00 $6385 defb $a1,$45,$00,$80,$67,$42,$06,$00 $638d defb $a1,$38,$00,$6b,$54,$42,$07,$00 $6395 defb $a1,$74,$00,$30,$40,$42,$06,$00 $639d defb $a1,$74,$00,$30,$88,$42,$05,$00 $63a5 defb $a1,$74,$00,$78,$88,$42,$04,$00 $63ad defb $a1,$74,$00,$80,$40,$42,$03,$00 $63b5 defb $a1,$54,$00,$57,$40,$42,$02,$00 $63bd defb $a1,$3b,$00,$43,$7b,$42,$01,$00 $63c5 defb $a1,$3b,$00,$6b,$7b,$42,$00,$00 $63cd defb $a1,$53,$00,$80,$40,$42,$01,$00 ; Data block at 63d5 b$63d5 defb $31,$00,$00,$00,$00,$00,$00,$00 ; blank ; Data block at 63dd b$63dd defb $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ; creature 1 $63ed defb $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ; creature 2 $63fd defb $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ; creature 3 ; Data block at 640d @label=byte_640D b$640d defb $70,$17,$00,$50,$50,$47,$00,$00,$00,$00,$00,$68,$68,$00,$00,$00 ; mummy $641d defb $7c,$6d,$00,$50,$50,$44,$00,$00,$00,$00,$00,$72,$72,$00,$00,$00 ; dracula $642d defb $78,$43,$00,$50,$50,$43,$00,$00,$00,$00,$00,$72,$72,$00,$00,$00 ; devil $643d defb $74,$55,$00,$50,$50,$42,$00,$00,$00,$00,$00,$50,$60,$00,$00,$00 ; frankenstein $644d defb $9c,$56,$00,$58,$38,$42,$00,$00,$00,$00,$00,$50,$60,$00,$00,$00 ; hunchback ; Key: _r/_g/_b/_y suffix for locked door colours, _s for stairs (one end is ; large doorway) @label=door_07_00 b$645d defb $02,$07,$34,$50,$1f,$00,$04,$56 $6465 defb $02,$00,$34,$50,$b7,$80,$04,$06 @label=door_19_00 $646d defb $02,$19,$34,$a0,$6f,$60,$b7,$03 $6475 defb $02,$00,$34,$08,$6f,$e0,$06,$03 @label=door_01_00_c $647d defb $0a,$01,$34,$50,$b7,$80,$04,$06 $6485 defb $0a,$00,$34,$50,$1f,$00,$04,$56 @label=door_02_01 $648d defb $02,$02,$34,$a0,$6f,$60,$b7,$03 $6495 defb $02,$01,$34,$08,$6f,$e0,$06,$03 @label=door_03_02 $649d defb $02,$03,$34,$a0,$6f,$60,$b7,$03 $64a5 defb $02,$02,$34,$08,$6f,$e0,$06,$03 @label=door_04_03 $64ad defb $02,$04,$34,$50,$1f,$00,$04,$56 $64b5 defb $02,$03,$34,$50,$b7,$80,$04,$06 @label=door_19_04 $64bd defb $02,$19,$34,$08,$6f,$e0,$06,$03 $64c5 defb $02,$04,$34,$80,$6f,$60,$b7,$03 @label=door_05_04 $64cd defb $02,$05,$34,$50,$1f,$00,$04,$56 $64d5 defb $02,$04,$34,$50,$b7,$80,$04,$06 @label=door_06_05 $64dd defb $02,$06,$34,$08,$6f,$e0,$06,$03 $64e5 defb $02,$05,$34,$a0,$6f,$60,$b7,$03 @label=door_1A_06_s $64ed defb $03,$1a,$38,$48,$b6,$80,$16,$08 $64f5 defb $02,$06,$34,$50,$3f,$00,$04,$56 @label=door_08_06_g $64fd defb $09,$08,$34,$50,$1f,$00,$04,$56 $6505 defb $09,$06,$34,$50,$97,$80,$04,$06 @label=door_07_06 $650d defb $02,$07,$34,$08,$6f,$e0,$06,$03 $6515 defb $02,$06,$34,$a0,$6f,$60,$b7,$03 @label=door_09_08 $651d defb $02,$09,$34,$50,$1f,$00,$04,$57 $6525 defb $02,$08,$34,$50,$b7,$80,$04,$06 @label=door_0A_09 $652d defb $02,$0a,$34,$a0,$6f,$60,$b7,$03 $6535 defb $02,$09,$34,$08,$6f,$e0,$06,$03 @label=door_0B_0A $653d defb $02,$0b,$34,$a0,$6f,$60,$b7,$03 $6545 defb $02,$0a,$34,$08,$6f,$e0,$06,$03 @label=door_0C_0B $654d defb $02,$0c,$34,$a0,$6f,$60,$b7,$03 $6555 defb $02,$0b,$34,$08,$6f,$e0,$06,$03 @label=door_0D_0C $655d defb $02,$0d,$34,$a0,$6f,$60,$b7,$03 $6565 defb $02,$0c,$34,$08,$6f,$e0,$06,$03 @label=door_0E_0D $656d defb $02,$0e,$34,$50,$b7,$80,$04,$06 $6575 defb $02,$0d,$34,$50,$1f,$00,$04,$56 @label=door_0F_0E $657d defb $02,$0f,$34,$50,$b7,$80,$04,$06 $6585 defb $02,$0e,$34,$50,$1f,$00,$04,$56 @label=door_10_0F $658d defb $02,$10,$34,$50,$b7,$80,$04,$06 $6595 defb $02,$0f,$34,$50,$1f,$00,$04,$56 @label=door_11_10_r $659d defb $08,$11,$34,$50,$b7,$80,$04,$06 $65a5 defb $08,$10,$34,$50,$1f,$00,$04,$56 @label=door_12_11 $65ad defb $02,$12,$34,$50,$b7,$80,$04,$06 $65b5 defb $02,$11,$34,$50,$1f,$00,$04,$56 @label=door_13_12 $65bd defb $02,$13,$34,$50,$b7,$80,$04,$06 $65c5 defb $02,$12,$34,$50,$1f,$00,$04,$56 @label=door_14_13 $65cd defb $02,$14,$34,$08,$6f,$e0,$06,$03 $65d5 defb $02,$13,$34,$a0,$6f,$60,$b7,$03 @label=door_15_14 $65dd defb $02,$15,$34,$08,$6f,$e0,$06,$03 $65e5 defb $02,$14,$34,$a0,$6f,$60,$b7,$03 @label=door_16_15 $65ed defb $02,$16,$34,$08,$6f,$e0,$06,$03 $65f5 defb $02,$15,$34,$a0,$6f,$60,$b7,$03 @label=door_17_16_r $65fd defb $08,$17,$34,$08,$6f,$e0,$06,$03 $6605 defb $08,$16,$34,$a0,$6f,$60,$b7,$03 @label=door_18_17_g $660d defb $09,$18,$34,$50,$1f,$00,$04,$56 $6615 defb $09,$17,$34,$50,$b7,$80,$04,$06 @label=door_18_02 $661d defb $02,$18,$34,$50,$b7,$80,$04,$06 $6625 defb $02,$02,$34,$50,$3f,$00,$04,$56 @label=door_1A_1B $662d defb $02,$1a,$34,$50,$28,$00,$04,$56 $6635 defb $02,$1b,$34,$50,$b7,$80,$04,$06 @label=door_1B_1C_s $663d defb $02,$1b,$34,$a0,$6f,$60,$b7,$03 $6645 defb $03,$1c,$74,$08,$77,$e0,$08,$f5 @label=door_1C_1D $664d defb $02,$1c,$34,$98,$6f,$60,$af,$03 $6655 defb $01,$1d,$34,$18,$6f,$e0,$06,$03 @label=door_1E_1F $665d defb $02,$1e,$34,$50,$1f,$00,$04,$56 $6665 defb $02,$1f,$34,$50,$b7,$80,$04,$06 @label=door_1F_20 $666d defb $02,$1f,$34,$08,$6f,$e0,$06,$03 $6675 defb $02,$20,$34,$a0,$6f,$60,$b7,$03 @label=door_20_21 $667d defb $02,$20,$34,$08,$6f,$e0,$06,$03 $6685 defb $02,$21,$34,$a0,$6f,$60,$b7,$03 @label=door_21_22 $668d defb $02,$21,$34,$50,$b7,$80,$04,$06 $6695 defb $02,$22,$34,$50,$1f,$00,$04,$56 @label=door_22_23 $669d defb $02,$22,$34,$50,$b7,$80,$04,$06 $66a5 defb $02,$23,$34,$50,$1f,$00,$04,$56 @label=door_23_24 $66ad defb $02,$23,$34,$a0,$6f,$60,$b7,$03 $66b5 defb $02,$24,$34,$08,$6f,$e0,$06,$03 @label=door_24_25 $66bd defb $02,$24,$34,$a0,$6f,$60,$b7,$03 $66c5 defb $02,$25,$34,$08,$6f,$e0,$06,$03 @label=door_25_1E_c $66cd defb $0a,$25,$34,$50,$1f,$00,$04,$56 $66d5 defb $0a,$1e,$34,$50,$b7,$80,$04,$06 @label=door_24_26_s $66dd defb $02,$24,$34,$50,$3f,$00,$04,$56 $66e5 defb $03,$26,$38,$48,$b6,$80,$16,$08 @label=door_03_26 $66ed defb $02,$02,$34,$50,$97,$80,$04,$06 $66f5 defb $02,$26,$34,$50,$28,$00,$04,$56 @label=door_27_28 $66fd defb $02,$27,$34,$50,$b7,$80,$04,$06 $6705 defb $02,$28,$34,$50,$1f,$00,$04,$56 @label=door_28_29_c $670d defb $0a,$28,$34,$50,$b7,$80,$04,$06 $6715 defb $0a,$29,$34,$50,$1f,$00,$04,$56 @label=door_29_2A $671d defb $02,$29,$34,$08,$6f,$e0,$06,$03 $6725 defb $02,$2a,$34,$a0,$6f,$60,$b7,$03 @label=door_2A_2B $672d defb $02,$2a,$34,$08,$6f,$e0,$06,$03 $6735 defb $02,$2b,$34,$a0,$6f,$60,$b7,$03 @label=door_2B_2C $673d defb $02,$2b,$34,$50,$1f,$00,$04,$56 $6745 defb $02,$2c,$34,$50,$b7,$80,$04,$06 @label=door_2C_2D $674d defb $02,$2c,$34,$50,$1f,$00,$04,$56 $6755 defb $02,$2d,$34,$50,$b7,$80,$04,$06 @label=door_2D_2E_g $675d defb $09,$2d,$34,$a0,$6f,$60,$b7,$03 $6765 defb $09,$2e,$34,$08,$6f,$e0,$06,$03 @label=door_2E_27 $676d defb $02,$2e,$34,$a0,$6f,$60,$b7,$03 $6775 defb $02,$27,$34,$08,$6f,$e0,$06,$03 @label=door_27_2F_s $677d defb $02,$27,$34,$50,$1f,$00,$04,$56 $6785 defb $03,$2f,$38,$48,$b6,$80,$16,$08 @label=door_20_2F_y $678d defb $0b,$20,$34,$50,$97,$80,$04,$06 $6795 defb $0b,$2f,$34,$50,$28,$00,$04,$56 @label=door_30_31 $679d defb $01,$30,$34,$50,$a7,$80,$04,$06 $67a5 defb $01,$31,$34,$50,$27,$00,$04,$56 @label=door_31_32 $67ad defb $01,$31,$34,$50,$af,$80,$04,$06 $67b5 defb $01,$32,$34,$50,$27,$00,$04,$56 @label=door_32_33 $67bd defb $01,$32,$34,$50,$af,$80,$04,$06 $67c5 defb $01,$33,$34,$50,$2f,$00,$04,$56 @label=door_33_34 $67cd defb $01,$33,$34,$50,$a7,$80,$04,$06 $67d5 defb $01,$34,$34,$50,$27,$00,$04,$56 @label=door_34_35 $67dd defb $01,$34,$34,$50,$af,$80,$04,$06 $67e5 defb $01,$35,$34,$50,$2f,$00,$04,$56 @label=door_33_36 $67ed defb $01,$33,$34,$90,$6f,$60,$b7,$03 $67f5 defb $01,$36,$34,$10,$6f,$e0,$06,$03 @label=door_36_37 $67fd defb $01,$36,$34,$98,$6f,$60,$b7,$03 $6805 defb $01,$37,$34,$10,$6f,$e0,$06,$03 @label=door_37_38 $680d defb $01,$37,$34,$98,$6f,$60,$b7,$03 $6815 defb $01,$38,$34,$18,$6f,$e0,$06,$03 @label=door_38_39 $681d defb $01,$38,$34,$50,$a7,$80,$04,$06 $6825 defb $01,$39,$34,$50,$2f,$00,$04,$56 @label=door_38_3A_g $682d defb $0d,$38,$34,$90,$6f,$60,$b7,$03 $6835 defb $0d,$3a,$34,$18,$6f,$e0,$06,$03 @label=door_39_3B $683d defb $01,$39,$34,$90,$6f,$60,$b7,$03 $6845 defb $01,$3b,$34,$18,$6f,$e0,$06,$03 @label=door_3A_3B $684d defb $01,$3a,$34,$50,$a7,$80,$04,$06 $6855 defb $01,$3b,$34,$50,$2f,$00,$04,$56 @label=door_3B_3C_g $685d defb $0d,$3b,$34,$50,$a7,$80,$04,$06 $6865 defb $0d,$3c,$34,$50,$2f,$00,$04,$56 @label=door_3B_3D $686d defb $01,$3b,$34,$90,$6f,$60,$b7,$03 $6875 defb $01,$3d,$34,$18,$6f,$e0,$06,$03 @label=door_3C_3E $687d defb $01,$3c,$34,$90,$6f,$60,$b7,$03 $6885 defb $01,$3e,$34,$18,$6f,$e0,$06,$03 @label=door_3D_3E $688d defb $01,$3d,$34,$50,$a7,$80,$04,$06 $6895 defb $01,$3e,$34,$50,$2f,$00,$04,$56 @label=door_3D_3F_c $689d defb $0e,$3d,$34,$90,$6f,$60,$b7,$03 $68a5 defb $0e,$3f,$34,$10,$6f,$e0,$06,$03 @label=door_34_40 $68ad defb $01,$3f,$34,$98,$6f,$60,$b7,$03 $68b5 defb $01,$40,$34,$18,$6f,$e0,$06,$03 @label=door_40_41 $68bd defb $01,$40,$34,$90,$6f,$60,$b7,$03 $68c5 defb $01,$41,$34,$18,$6f,$e0,$06,$03 @label=door_40_42 $68cd defb $01,$40,$34,$50,$2f,$00,$04,$56 $68d5 defb $01,$42,$34,$50,$af,$80,$04,$06 @label=door_42_43 $68dd defb $01,$42,$34,$50,$27,$00,$04,$56 $68e5 defb $01,$43,$34,$50,$a7,$80,$04,$06 @label=door_43_44 $68ed defb $01,$43,$34,$90,$6f,$60,$b7,$03 $68f5 defb $01,$44,$34,$10,$6f,$e0,$06,$03 @label=door_44_45_r $68fd defb $0c,$44,$34,$98,$6f,$60,$b7,$03 $6905 defb $0c,$45,$34,$18,$6f,$e0,$06,$03 @label=door_43_46 $690d defb $01,$43,$34,$50,$2f,$00,$04,$56 $6915 defb $01,$46,$34,$50,$a7,$80,$04,$06 @label=door_46_47 $691d defb $01,$46,$34,$18,$6f,$e0,$06,$03 $6925 defb $01,$47,$34,$98,$6f,$60,$b7,$03 @label=door_47_48_r $692d defb $0c,$47,$34,$10,$6f,$e0,$06,$03 $6935 defb $0c,$48,$34,$90,$6f,$60,$b7,$03 @label=door_48_49 $693d defb $01,$48,$34,$50,$a7,$80,$04,$06 $6945 defb $01,$49,$34,$50,$27,$00,$04,$56 @label=door_48_4A_c $694d defb $0e,$48,$34,$18,$6f,$e0,$06,$03 $6955 defb $0e,$4a,$34,$98,$6f,$60,$b7,$03 @label=door_4A_4B $695d defb $01,$4a,$34,$10,$6f,$e0,$06,$03 $6965 defb $01,$4b,$34,$90,$6f,$60,$b7,$03 @label=door_4B_4C $696d defb $01,$4b,$34,$50,$2f,$00,$04,$56 $6975 defb $01,$4c,$34,$50,$a7,$80,$04,$06 @label=door_48_4D $697d defb $01,$48,$34,$50,$2f,$00,$04,$56 $6985 defb $01,$4d,$34,$50,$af,$80,$04,$06 @label=door_4D_4E_r $698d defb $0c,$4d,$34,$50,$27,$00,$04,$56 $6995 defb $0c,$4e,$34,$50,$a7,$80,$04,$06 @label=door_4E_4F $699d defb $01,$4e,$34,$90,$6f,$60,$b7,$03 $69a5 defb $01,$4f,$34,$10,$6f,$e0,$06,$03 @label=door_4F_50 $69ad defb $01,$4f,$34,$98,$6f,$60,$b7,$03 $69b5 defb $01,$50,$34,$18,$6f,$e0,$06,$03 @label=door_50_51 $69bd defb $01,$50,$34,$50,$a7,$80,$04,$06 $69c5 defb $01,$51,$34,$50,$27,$00,$04,$56 @label=door_50_52_g $69cd defb $0d,$50,$34,$90,$6f,$60,$b7,$03 $69d5 defb $0d,$52,$34,$10,$6f,$e0,$06,$03 @label=door_52_53 $69dd defb $01,$52,$34,$98,$6f,$60,$b7,$03 $69e5 defb $01,$53,$34,$18,$6f,$e0,$06,$03 @label=door_1D_43 $69ed defb $01,$1d,$34,$90,$6f,$60,$b7,$03 $69f5 defb $01,$43,$34,$18,$6f,$e0,$06,$03 @label=door_46_51 $69fd defb $01,$46,$34,$50,$2f,$00,$04,$56 $6a05 defb $01,$51,$34,$50,$af,$80,$04,$06 @label=door_4C_55 $6a0d defb $01,$4c,$34,$18,$6f,$e0,$06,$03 $6a15 defb $01,$55,$34,$90,$6f,$60,$b7,$03 @label=door_54_55 $6a1d defb $01,$54,$34,$90,$6f,$60,$b7,$03 $6a25 defb $01,$55,$34,$18,$6f,$e0,$06,$03 @label=door_54_30 $6a2d defb $01,$54,$34,$18,$6f,$e0,$06,$03 $6a35 defb $01,$30,$34,$90,$6f,$60,$b7,$03 @label=door_2D_75 $6a3d defb $02,$2d,$34,$08,$6f,$e0,$06,$03 $6a45 defb $02,$75,$34,$a0,$6f,$60,$b7,$03 @label=door_75_76 $6a4d defb $02,$75,$34,$50,$b7,$80,$04,$06 $6a55 defb $02,$76,$34,$50,$1f,$00,$04,$56 @label=door_76_77 $6a5d defb $02,$76,$34,$a0,$6f,$60,$b7,$03 $6a65 defb $02,$77,$34,$08,$6f,$e0,$06,$03 @label=door_77_78 $6a6d defb $02,$77,$34,$a0,$6f,$60,$b7,$03 $6a75 defb $02,$78,$34,$08,$6f,$e0,$06,$03 @label=door_78_79 $6a7d defb $02,$78,$34,$50,$b7,$80,$04,$06 $6a85 defb $02,$79,$34,$50,$1f,$00,$04,$56 @label=door_79_7A $6a8d defb $02,$79,$34,$50,$b7,$80,$04,$06 $6a95 defb $02,$7a,$34,$50,$1f,$00,$04,$56 @label=door_7A_7B $6a9d defb $02,$7a,$34,$08,$6f,$e0,$06,$03 $6aa5 defb $02,$7b,$34,$a0,$6f,$60,$b7,$03 @label=door_7B_7C_y $6aad defb $0b,$7b,$34,$08,$6f,$e0,$06,$03 $6ab5 defb $0b,$7c,$34,$a0,$6f,$60,$b7,$03 @label=door_7C_7D_y $6abd defb $0b,$7c,$34,$50,$1f,$00,$04,$56 $6ac5 defb $0b,$7d,$34,$50,$b7,$80,$04,$06 @label=door_7D_76 $6acd defb $02,$7d,$34,$50,$1f,$00,$04,$56 $6ad5 defb $02,$76,$34,$50,$b7,$80,$04,$06 @label=door_7A_7E_r $6add defb $08,$7a,$34,$a0,$6f,$60,$b7,$03 $6ae5 defb $08,$7e,$34,$08,$6f,$e0,$06,$03 @label=door_7E_29 $6aed defb $02,$7e,$34,$50,$1f,$00,$04,$56 $6af5 defb $02,$29,$34,$50,$b7,$80,$04,$06 @label=door_21_88 $6afd defb $02,$21,$34,$50,$1f,$00,$04,$56 $6b05 defb $02,$88,$34,$50,$b7,$80,$04,$06 @label=door_7F_80_g $6b0d defb $09,$7f,$34,$a0,$6f,$60,$b7,$03 $6b15 defb $09,$80,$34,$08,$6f,$e0,$06,$03 @label=door_80_82 $6b1d defb $02,$80,$34,$50,$b7,$80,$04,$06 $6b25 defb $02,$82,$34,$50,$1f,$00,$04,$56 @label=door_82_81 $6b2d defb $02,$82,$34,$08,$6f,$e0,$06,$03 $6b35 defb $02,$81,$34,$a0,$6f,$60,$b7,$03 @label=door_81_7F $6b3d defb $02,$81,$34,$50,$1f,$00,$04,$56 $6b45 defb $02,$7f,$34,$50,$b7,$80,$04,$06 @label=door_82_87_c $6b4d defb $0a,$82,$34,$a0,$6f,$60,$b7,$03 $6b55 defb $0a,$87,$34,$08,$6f,$e0,$06,$03 @label=door_87_88 $6b5d defb $02,$87,$34,$a0,$6f,$60,$b7,$03 $6b65 defb $02,$88,$34,$08,$6f,$e0,$06,$03 @label=door_87_8B $6b6d defb $02,$87,$34,$50,$b7,$80,$04,$06 $6b75 defb $02,$8b,$34,$50,$1f,$00,$04,$56 @label=door_8B_8C $6b7d defb $02,$8b,$34,$50,$b7,$80,$04,$06 $6b85 defb $02,$8c,$34,$50,$1f,$00,$04,$56 @label=door_8C_8D_g $6b8d defb $09,$8c,$34,$50,$b7,$80,$04,$06 $6b95 defb $09,$8d,$34,$50,$1f,$00,$04,$56 @label=door_83_84_r $6b9d defb $08,$83,$34,$a0,$6f,$60,$b7,$03 $6ba5 defb $08,$84,$34,$08,$6f,$e0,$06,$03 @label=door_84_86 $6bad defb $02,$84,$34,$50,$b7,$80,$04,$06 $6bb5 defb $02,$86,$34,$50,$1f,$00,$04,$56 @label=door_86_85 $6bbd defb $02,$86,$34,$08,$6f,$e0,$06,$03 $6bc5 defb $02,$85,$34,$a0,$6f,$60,$b7,$03 @label=door_85_83 $6bcd defb $02,$85,$34,$50,$1f,$00,$04,$56 $6bd5 defb $02,$83,$34,$50,$b7,$80,$04,$06 @label=door_84_89_y $6bdd defb $0b,$84,$34,$a0,$6f,$60,$b7,$03 $6be5 defb $0b,$89,$34,$08,$6f,$e0,$06,$03 @label=door_89_8D $6bed defb $02,$89,$34,$50,$1f,$00,$04,$56 $6bf5 defb $02,$8d,$34,$50,$b7,$80,$04,$06 @label=door_89_8A $6bfd defb $02,$89,$34,$a0,$6f,$60,$b7,$03 $6c05 defb $02,$8a,$34,$08,$6f,$e0,$06,$03 @label=door_8A_23_g $6c0d defb $09,$8a,$34,$50,$1f,$00,$04,$56 $6c15 defb $09,$23,$34,$50,$b7,$80,$04,$06 @label=door_13_73 $6c1d defb $02,$13,$34,$08,$6f,$e0,$06,$03 $6c25 defb $02,$73,$34,$a0,$6f,$60,$b7,$03 @label=door_11_6B $6c2d defb $02,$11,$34,$80,$6f,$60,$b7,$03 $6c35 defb $02,$6b,$34,$08,$6f,$e0,$06,$03 @label=door_6B_6C $6c3d defb $02,$6b,$34,$a0,$6f,$60,$b7,$03 $6c45 defb $02,$6c,$34,$08,$6f,$e0,$06,$03 @label=door_6C_03_c $6c4d defb $0a,$6c,$34,$a0,$6f,$60,$b7,$03 $6c55 defb $0a,$03,$34,$08,$6f,$e0,$06,$03 @label=door_0F_6D_g $6c5d defb $09,$0f,$34,$80,$6f,$60,$b7,$03 $6c65 defb $09,$6d,$34,$08,$6f,$e0,$06,$03 @label=door_6D_6E $6c6d defb $02,$6d,$34,$a0,$6f,$60,$b7,$03 $6c75 defb $02,$6e,$34,$08,$6f,$e0,$06,$03 @label=door_6E_05 $6c7d defb $02,$6e,$34,$a0,$6f,$60,$b7,$03 $6c85 defb $02,$05,$34,$08,$6f,$e0,$06,$03 @label=door_0D_6F_c $6c8d defb $0a,$0d,$34,$50,$b7,$80,$04,$06 $6c95 defb $0a,$6f,$34,$50,$1f,$00,$04,$56 @label=door_6F_70 $6c9d defb $02,$6f,$34,$50,$b7,$80,$04,$06 $6ca5 defb $02,$70,$34,$70,$1f,$00,$04,$56 @label=door_70_71_s $6cad defb $02,$70,$34,$30,$1f,$00,$04,$56 $6cb5 defb $03,$71,$38,$48,$b6,$80,$16,$08 @label=door_71_72_s $6cbd defb $02,$71,$34,$50,$28,$00,$04,$56 $6cc5 defb $03,$72,$38,$48,$b6,$80,$16,$08 @label=door_72_35 $6ccd defb $02,$72,$34,$50,$28,$00,$04,$56 $6cd5 defb $01,$35,$34,$50,$a7,$80,$04,$06 @label=door_30_74 $6cdd defb $01,$30,$34,$18,$6f,$e0,$06,$03 $6ce5 defb $01,$74,$34,$90,$6f,$60,$b7,$03 @label=door_56_57 $6ced defb $02,$56,$34,$a0,$6f,$60,$b7,$03 $6cf5 defb $02,$57,$34,$08,$6f,$e0,$06,$03 @label=door_57_58_g $6cfd defb $09,$57,$34,$a0,$6f,$60,$b7,$03 $6d05 defb $09,$58,$34,$08,$6f,$e0,$06,$03 @label=door_58_59 $6d0d defb $02,$58,$34,$a0,$6f,$60,$b7,$03 $6d15 defb $02,$59,$34,$08,$6f,$e0,$06,$03 @label=door_5A_5B $6d1d defb $02,$5a,$34,$a0,$6f,$60,$b7,$03 $6d25 defb $02,$5b,$34,$08,$6f,$e0,$06,$03 @label=door_5B_5C_r $6d2d defb $08,$5b,$34,$a0,$6f,$60,$b7,$03 $6d35 defb $08,$5c,$34,$08,$6f,$e0,$06,$03 @label=door_5C_5D_g $6d3d defb $09,$5c,$34,$a0,$6f,$60,$b7,$03 $6d45 defb $09,$5d,$34,$08,$6f,$e0,$06,$03 @label=door_5E_5F_r $6d4d defb $08,$5e,$34,$a0,$6f,$60,$b7,$03 $6d55 defb $08,$5f,$34,$08,$6f,$e0,$06,$03 @label=door_5F_60_r $6d5d defb $08,$5f,$34,$a0,$6f,$60,$b7,$03 $6d65 defb $08,$60,$34,$08,$6f,$e0,$06,$03 @label=door_60_61 $6d6d defb $02,$60,$34,$a0,$6f,$60,$b7,$03 $6d75 defb $02,$61,$34,$08,$6f,$e0,$06,$03 @label=door_62_63 $6d7d defb $02,$62,$34,$a0,$6f,$60,$b7,$03 $6d85 defb $02,$63,$34,$08,$6f,$e0,$06,$03 @label=door_63_64 $6d8d defb $02,$63,$34,$a0,$6f,$60,$b7,$03 $6d95 defb $02,$64,$34,$08,$6f,$e0,$06,$03 @label=door_64_65_y $6d9d defb $0b,$64,$34,$a0,$6f,$60,$b7,$03 $6da5 defb $0b,$65,$34,$08,$6f,$e0,$06,$03 @label=door_56_5A $6dad defb $02,$56,$34,$50,$b7,$80,$04,$06 $6db5 defb $02,$5a,$34,$50,$1f,$00,$04,$56 @label=door_5A_5E_c $6dbd defb $0a,$5a,$34,$50,$b7,$80,$04,$06 $6dc5 defb $0a,$5e,$34,$50,$1f,$00,$04,$56 @label=door_5E_62 $6dcd defb $02,$5e,$34,$50,$b7,$80,$04,$06 $6dd5 defb $02,$62,$34,$50,$1f,$00,$04,$56 @label=door_57_5B $6ddd defb $02,$57,$34,$50,$b7,$80,$04,$06 $6de5 defb $02,$5b,$34,$50,$1f,$00,$04,$56 @label=door_5B_5F_g $6ded defb $09,$5b,$34,$30,$b7,$80,$04,$06 $6df5 defb $09,$5f,$34,$30,$1f,$00,$04,$56 @label=door_5F_63_c $6dfd defb $0a,$5f,$34,$50,$b7,$80,$04,$06 $6e05 defb $0a,$63,$34,$50,$1f,$00,$04,$56 @label=door_58_5C $6e0d defb $02,$58,$34,$50,$b7,$80,$04,$06 $6e15 defb $02,$5c,$34,$50,$1f,$00,$04,$56 @label=door_5C_60_r $6e1d defb $08,$5c,$34,$70,$b7,$80,$04,$06 $6e25 defb $08,$60,$34,$70,$1f,$00,$04,$56 @label=door_60_64_c $6e2d defb $0a,$60,$34,$50,$b7,$80,$04,$06 $6e35 defb $0a,$64,$34,$50,$1f,$00,$04,$56 @label=door_59_5D_y $6e3d defb $0b,$59,$34,$50,$b7,$80,$04,$06 $6e45 defb $0b,$5d,$34,$50,$1f,$00,$04,$56 @label=door_5D_61 $6e4d defb $02,$5d,$34,$50,$b7,$80,$04,$06 $6e55 defb $02,$61,$34,$50,$1f,$00,$04,$56 @label=door_61_65 $6e5d defb $02,$61,$34,$50,$b7,$80,$04,$06 $6e65 defb $02,$65,$34,$50,$1f,$00,$04,$56 @label=door_67_56_c $6e6d defb $0a,$67,$34,$50,$b7,$80,$04,$06 $6e75 defb $0a,$56,$34,$50,$1f,$00,$04,$56 @label=door_68_59_r $6e7d defb $08,$68,$34,$50,$b7,$80,$04,$06 $6e85 defb $08,$59,$34,$50,$1f,$00,$04,$56 @label=door_69_56_y $6e8d defb $0b,$69,$34,$a0,$6f,$60,$b7,$03 $6e95 defb $0b,$56,$34,$08,$6f,$e0,$06,$03 @label=door_6A_62_g $6e9d defb $09,$6a,$34,$a0,$6f,$60,$b7,$03 $6ea5 defb $09,$62,$34,$08,$6f,$e0,$06,$03 @label=door_66_5B_y $6ead defb $0b,$66,$34,$30,$1f,$00,$04,$56 $6eb5 defb $0b,$5b,$34,$70,$b7,$80,$04,$06 @label=door_66_5C_y $6ebd defb $0b,$66,$34,$70,$1f,$00,$04,$56 $6ec5 defb $0b,$5c,$34,$30,$b7,$80,$04,$06 @label=door_66_5F_y $6ecd defb $0b,$66,$34,$30,$b7,$80,$04,$06 $6ed5 defb $0b,$5f,$34,$70,$1f,$00,$04,$56 @label=door_66_60_y $6edd defb $0b,$66,$34,$70,$b7,$80,$04,$06 $6ee5 defb $0b,$60,$34,$30,$1f,$00,$04,$56 @label=door_65_1B $6eed defb $02,$65,$34,$a0,$6f,$60,$b7,$03 $6ef5 defb $02,$1b,$34,$08,$6f,$e0,$06,$03 @label=door_40_8F $6efd defb $01,$40,$34,$50,$a7,$80,$04,$06 $6f05 defb $01,$8f,$34,$50,$2f,$00,$04,$56 @label=door_54_90 $6f0d defb $01,$54,$34,$50,$a7,$80,$04,$06 $6f15 defb $01,$90,$34,$50,$2f,$00,$04,$56 @label=door_90_91 $6f1d defb $01,$90,$34,$50,$a7,$80,$04,$06 $6f25 defb $01,$91,$34,$50,$2f,$00,$04,$56 @label=door_91_92 $6f2d defb $01,$91,$34,$90,$6f,$60,$b7,$03 $6f35 defb $01,$92,$34,$18,$6f,$e0,$06,$03 @label=door_92_93 $6f3d defb $01,$92,$34,$90,$6f,$60,$b7,$03 $6f45 defb $01,$93,$34,$18,$6f,$e0,$06,$03 @label=door_93_94 $6f4d defb $01,$93,$34,$90,$6f,$60,$b7,$03 $6f55 defb $01,$94,$34,$18,$6f,$e0,$06,$03 @label=door_3A_94 $6f5d defb $01,$3a,$34,$50,$2f,$00,$04,$56 $6f65 defb $01,$94,$34,$50,$a7,$80,$04,$06 @label=trap_73_74 $6f6d defb $19,$73,$34,$50,$70,$03,$24,$e4 $6f75 defb $1b,$74,$34,$48,$74,$03,$00,$00 @label=trap_03_65 $6f7d defb $19,$03,$34,$30,$70,$03,$24,$e4 $6f85 defb $1b,$65,$34,$38,$74,$03,$00,$00 @label=trap_61_4B $6f8d defb $19,$61,$34,$50,$70,$03,$24,$e4 $6f95 defb $1b,$4b,$34,$48,$74,$03,$00,$00 @label=trap_2D_8D $6f9d defb $19,$2d,$34,$50,$90,$03,$24,$e4 $6fa5 defb $1b,$8d,$34,$48,$94,$03,$00,$00 @label=trap_76_84 $6fad defb $19,$76,$34,$50,$70,$03,$24,$e4 $6fb5 defb $1b,$84,$34,$48,$74,$03,$00,$00 @label=trap_8B_6C $6fbd defb $19,$8b,$34,$50,$70,$03,$24,$e4 $6fc5 defb $1b,$6c,$34,$48,$74,$03,$00,$00 @label=trap_8D_6E $6fcd defb $19,$8d,$34,$50,$50,$03,$24,$e4 $6fd5 defb $1b,$6e,$34,$48,$54,$03,$00,$00 @label=trap_21_03 $6fdd defb $19,$21,$34,$70,$70,$03,$24,$e4 $6fe5 defb $1b,$03,$34,$68,$74,$03,$00,$00 @label=trap_15_66 $6fed defb $19,$15,$34,$50,$80,$03,$24,$e4 $6ff5 defb $1b,$66,$34,$48,$74,$03,$00,$00 @label=trap_78_8A $6ffd defb $19,$78,$34,$70,$70,$03,$24,$e4 $7005 defb $1b,$8a,$34,$68,$74,$03,$00,$00 @label=trap_29_09 $700d defb $19,$29,$34,$50,$80,$03,$24,$e4 $7015 defb $1b,$09,$34,$48,$74,$03,$00,$00 @label=picture_0B_0C $701d defb $11,$0b,$00,$50,$97,$81,$00,$00 $7025 defb $11,$0c,$00,$50,$97,$81,$00,$00 @label=barrels_91_3D $702d defb $27,$91,$00,$50,$8f,$00,$00,$00 $7035 defb $27,$3d,$00,$5f,$5f,$00,$00,$00 @label=knight_1F_21 $703d defb $1e,$1f,$00,$98,$67,$60,$00,$00 $7045 defb $1e,$21,$00,$08,$67,$e0,$00,$00 @label=knight_25_23 $704d defb $1e,$25,$00,$98,$67,$60,$00,$00 $7055 defb $1e,$23,$00,$08,$67,$e0,$00,$00 @label=knight_00_06 $705d defb $1e,$00,$00,$98,$3f,$60,$00,$00 $7065 defb $1e,$06,$00,$38,$47,$00,$00,$00 @label=knight_00_06_2 $706d defb $1e,$00,$00,$98,$8f,$60,$00,$00 $7075 defb $1e,$06,$00,$78,$47,$00,$00,$00 @label=knight_01_03 $707d defb $1e,$01,$00,$58,$27,$00,$00,$00 $7085 defb $1e,$03,$00,$58,$27,$00,$00,$00 @label=knight_05_07 $708d defb $1e,$05,$00,$58,$b7,$80,$00,$00 $7095 defb $1e,$07,$00,$58,$b7,$80,$00,$00 @label=knight_17_15 $709d defb $1e,$17,$00,$58,$27,$00,$00,$00 $70a5 defb $1e,$15,$00,$78,$97,$80,$00,$00 @label=knight_15_13 $70ad defb $1e,$15,$00,$38,$97,$80,$00,$00 $70b5 defb $1e,$13,$00,$58,$27,$00,$00,$00 @label=knight_88_8A $70bd defb $1e,$88,$00,$08,$3f,$e0,$00,$00 $70c5 defb $1e,$8a,$00,$08,$47,$e0,$00,$00 @label=knight_88_8A_2 $70cd defb $1e,$88,$00,$08,$8f,$e0,$00,$00 $70d5 defb $1e,$8a,$00,$08,$87,$e0,$00,$00 @label=knight_27_2B $70dd defb $1e,$27,$00,$38,$27,$00,$00,$00 $70e5 defb $1e,$2b,$00,$38,$27,$00,$00,$00 @label=knight_27_2B_2 $70ed defb $1e,$27,$00,$78,$27,$00,$00,$00 $70f5 defb $1e,$2b,$00,$78,$27,$00,$00,$00 @label=knight_56_24 $70fd defb $1e,$56,$00,$38,$27,$00,$00,$00 $7105 defb $1e,$24,$00,$38,$47,$00,$00,$00 @label=knight_56_24_2 $710d defb $1e,$56,$00,$78,$27,$00,$00,$00 $7115 defb $1e,$24,$00,$78,$47,$00,$00,$00 @label=knight_7C_7A $711d defb $1e,$7c,$00,$38,$27,$00,$00,$00 $7125 defb $1e,$7a,$00,$38,$27,$00,$00,$00 @label=knight_7C_7A_2 $712d defb $1e,$7c,$00,$78,$27,$00,$00,$00 $7135 defb $1e,$7a,$00,$78,$27,$00,$00,$00 @label=knight_09_7F $713d defb $1e,$09,$00,$08,$3f,$e0,$00,$00 $7145 defb $1e,$7f,$00,$38,$b7,$80,$00,$00 @label=knight_09_7F_2 $714d defb $1e,$09,$00,$08,$8f,$e0,$00,$00 $7155 defb $1e,$7f,$00,$78,$b7,$80,$00,$00 @label=table_0D_13 $715d defb $12,$0d,$00,$38,$50,$04,$cc,$49 $7165 defb $12,$13,$00,$70,$90,$04,$cc,$49 @label=table_63_5D $716d defb $12,$63,$00,$38,$50,$04,$cc,$49 $7175 defb $12,$5d,$00,$70,$50,$04,$cc,$49 @label=table_18_88 $717d defb $12,$18,$00,$48,$50,$04,$cc,$49 $7185 defb $12,$88,$00,$70,$50,$04,$cc,$49 @label=table_7A_81 $718d defb $12,$7a,$00,$38,$50,$04,$cc,$49 $7195 defb $12,$81,$00,$70,$50,$04,$cc,$49 @label=table_18_6D $719d defb $12,$18,$00,$58,$80,$04,$cc,$49 $71a5 defb $12,$6d,$00,$30,$90,$04,$cc,$49 @label=table_5B_5C $71ad defb $12,$5b,$00,$38,$50,$04,$cc,$49 $71b5 defb $12,$5c,$00,$70,$50,$04,$cc,$49 @label=table_6A_1B $71bd defb $12,$6a,$00,$78,$98,$04,$cc,$49 $71c5 defb $12,$1b,$00,$70,$50,$04,$cc,$49 @label=table_2E_7D $71cd defb $12,$2e,$00,$38,$57,$04,$cc,$49 $71d5 defb $12,$7d,$00,$48,$50,$04,$cc,$49 @label=table_2E_7D_2 $71dd defb $12,$2e,$00,$60,$7f,$04,$cc,$49 $71e5 defb $12,$7d,$00,$58,$80,$04,$cc,$49 @label=table_2A_2D $71ed defb $12,$2a,$00,$38,$57,$04,$cc,$49 $71f5 defb $12,$2d,$00,$30,$80,$04,$cc,$49 @label=table_2A_2D_2 $71fd defb $12,$2a,$00,$60,$7f,$04,$cc,$49 $7205 defb $12,$2d,$00,$70,$80,$04,$cc,$49 @label=shields_8D_8C $720d defb $1c,$8d,$00,$28,$67,$e0,$00,$00 $7215 defb $1d,$8c,$00,$28,$67,$e0,$00,$00 @label=trophies_8B_8C $721d defb $15,$8b,$00,$88,$6f,$40,$00,$00 $7225 defb $16,$8c,$00,$88,$67,$40,$00,$00 @label=shields_16_14 $722d defb $1c,$16,$00,$58,$37,$00,$00,$00 $7235 defb $1d,$14,$00,$58,$97,$80,$00,$00 @label=trophies_0E_12 $723d defb $15,$0e,$00,$28,$57,$e0,$00,$00 $7245 defb $16,$12,$00,$88,$6f,$40,$00,$00 @label=shields_0F_11 $724d defb $1c,$0f,$00,$28,$67,$e0,$00,$00 $7255 defb $1d,$11,$00,$28,$67,$e0,$00,$00 @label=trophies_10_73 $725d defb $15,$10,$00,$88,$6f,$40,$00,$00 $7265 defb $16,$73,$00,$58,$97,$80,$00,$00 @label=shields_08_18 $726d defb $1c,$08,$00,$88,$67,$40,$00,$00 $7275 defb $1d,$18,$00,$88,$67,$40,$00,$00 @label=trophies_6F_0E $727d defb $15,$6f,$00,$28,$67,$e0,$00,$00 $7285 defb $16,$0e,$00,$28,$77,$e0,$00,$00 @label=pic_shi_00_19 $728d defb $25,$00,$00,$28,$17,$00,$00,$00 $7295 defb $1d,$19,$00,$58,$37,$00,$00,$00 @label=pic_tro_00_0B $729d defb $11,$00,$00,$78,$1c,$00,$00,$00 $72a5 defb $16,$0b,$00,$58,$37,$00,$00,$00 @label=shields_00_19 $72ad defb $1c,$00,$00,$38,$b7,$80,$00,$00 $72b5 defb $1d,$19,$00,$58,$97,$80,$00,$00 @label=trophies_00_0B $72bd defb $15,$00,$00,$78,$b7,$80,$00,$00 $72c5 defb $16,$0b,$00,$58,$97,$81,$00,$00 @label=pic_tro_04_15 $72cd defb $11,$04,$00,$28,$47,$e1,$00,$00 $72d5 defb $15,$15,$00,$58,$37,$00,$00,$00 @label=tro_pic_04_14 $72dd defb $16,$04,$00,$28,$87,$e0,$00,$00 $72e5 defb $25,$14,$00,$58,$37,$00,$00,$00 @label=pic_tro_73_6E $72ed defb $11,$73,$00,$58,$3c,$00,$00,$00 $72f5 defb $16,$6e,$00,$58,$b7,$80,$00,$00 @label=shi_pic_6D_0E $72fd defb $1c,$6d,$00,$58,$b7,$80,$00,$00 $7305 defb $25,$0e,$00,$88,$6f,$40,$00,$00 @label=pic_shi_07_06 $730d defb $25,$07,$00,$a8,$6f,$40,$00,$00 $7315 defb $1c,$06,$00,$38,$97,$80,$00,$00 @label=shields_06_01 $731d defb $1c,$06,$00,$78,$97,$80,$00,$00 $7325 defb $1d,$01,$00,$a8,$67,$40,$00,$00 @label=pic_shi_18_17 $732d defb $11,$18,$00,$28,$6f,$e1,$00,$00 $7335 defb $1d,$17,$00,$a8,$67,$40,$00,$00 @label=trophies_87_89 $733d defb $15,$87,$00,$38,$17,$00,$00,$00 $7345 defb $16,$89,$00,$38,$b7,$80,$00,$00 @label=trophies_87_89_2 $734d defb $16,$87,$00,$78,$17,$00,$00,$00 $7355 defb $15,$89,$00,$78,$b7,$80,$00,$00 @label=shi_pic_00_82 $735d defb $1d,$00,$00,$08,$47,$e0,$00,$00 $7365 defb $16,$82,$00,$38,$b7,$80,$00,$00 @label=trophies_00_82 $736d defb $16,$00,$00,$08,$87,$e0,$00,$00 $7375 defb $15,$82,$00,$78,$b7,$80,$00,$00 @label=pic_shi_66_61 $737d defb $11,$66,$00,$a0,$47,$61,$00,$00 $7385 defb $1d,$61,$00,$a8,$6f,$60,$00,$00 @label=tro_pic_66_5D $738d defb $15,$66,$00,$a8,$87,$60,$00,$00 $7395 defb $25,$5d,$00,$a8,$6f,$60,$00,$00 @label=tro_shi_66_65 $739d defb $16,$66,$00,$08,$47,$e0,$00,$00 $73a5 defb $1d,$65,$00,$58,$b7,$80,$00,$00 @label=shi_tro_66_64 $73ad defb $1c,$66,$00,$08,$87,$e0,$00,$00 $73b5 defb $16,$64,$00,$58,$b7,$80,$00,$00 @label=pic_tro_63_62 $73bd defb $11,$63,$00,$58,$b7,$81,$00,$00 $73c5 defb $15,$62,$00,$50,$b7,$80,$00,$00 @label=trophies_70_0D $73cd defb $16,$70,$00,$38,$b7,$80,$00,$00 $73d5 defb $15,$0d,$00,$08,$6f,$e0,$00,$00 @label=shi_tro_70_0C $73dd defb $1d,$70,$00,$78,$b7,$80,$00,$00 $73e5 defb $16,$0c,$00,$58,$37,$00,$00,$00 @label=trophies_09_7F $73ed defb $16,$09,$00,$a8,$47,$40,$00,$00 $73f5 defb $15,$7f,$00,$08,$60,$e0,$00,$00 @label=pic_shi_09_7F $73fd defb $11,$09,$00,$a0,$87,$41,$00,$00 $7405 defb $1d,$7f,$00,$58,$17,$00,$00,$00 @label=tro_pic_5A_27 $740d defb $15,$5a,$00,$08,$47,$e0,$00,$00 $7415 defb $25,$27,$00,$a8,$47,$60,$00,$00 @label=tro_shi_5A_27 $741d defb $16,$5a,$00,$08,$87,$e0,$00,$00 $7425 defb $1d,$27,$00,$a8,$87,$60,$00,$00 @label=shi_tro_29_7E $742d defb $1c,$29,$00,$a8,$47,$60,$00,$00 $7435 defb $16,$7e,$00,$a8,$60,$60,$00,$00 @label=pic_tro_29_7E $743d defb $11,$29,$00,$a0,$87,$61,$00,$00 $7445 defb $15,$7e,$00,$58,$b7,$80,$00,$00 @label=clock_0D_13 $744d defb $10,$0d,$34,$30,$27,$01,$04,$56 $7455 defb $10,$13,$34,$30,$b7,$81,$04,$06 @label=clock_09_17 $745d defb $10,$09,$34,$30,$27,$01,$04,$56 $7465 defb $10,$17,$34,$30,$b7,$81,$04,$06 @label=clock_17_35 $746d defb $10,$35,$34,$88,$6f,$61,$b7,$03 $7475 defb $10,$8f,$34,$18,$6f,$e1,$06,$03 @label=clock_67_68 $747d defb $10,$67,$34,$98,$6f,$61,$b7,$03 $7485 defb $10,$68,$34,$08,$6f,$e1,$06,$03 @label=clock_8D_22 $748d defb $10,$8d,$34,$78,$4f,$61,$b7,$03 $7495 defb $10,$22,$34,$28,$6f,$e1,$06,$03 @label=clock_75_0A $749d defb $10,$76,$34,$30,$27,$01,$04,$56 $74a5 defb $10,$75,$34,$30,$b7,$81,$04,$06 @label=bookcase_0A_16 $74ad defb $17,$0a,$34,$40,$47,$00,$04,$56 $74b5 defb $17,$16,$34,$40,$97,$80,$04,$06 @label=bookcase_3D_49 $74bd defb $17,$3d,$34,$48,$37,$00,$04,$56 $74c5 defb $17,$49,$34,$50,$af,$80,$04,$06 @label=bookcase_69_6A $74cd defb $17,$69,$34,$40,$b7,$80,$04,$06 $74d5 defb $17,$6a,$34,$40,$27,$00,$04,$56 @label=bookcase_6C_6E $74dd defb $17,$6c,$34,$40,$b7,$80,$04,$06 $74e5 defb $17,$6e,$34,$40,$27,$00,$04,$56 @label=bookcase_3E_41 $74ed defb $17,$3e,$34,$88,$77,$60,$b7,$03 $74f5 defb $17,$41,$34,$48,$a7,$80,$04,$06 @label=barrel_45_53 $74fd defb $1a,$45,$34,$50,$37,$00,$04,$56 $7505 defb $1a,$53,$34,$50,$a4,$a0,$04,$06 @label=barrel_4C_4E $750d defb $1a,$4c,$34,$88,$6f,$40,$b7,$03 $7515 defb $1a,$4e,$34,$18,$6f,$e0,$06,$03 @label=barrel_4E_38 $751d defb $1a,$38,$34,$50,$37,$00,$04,$56 $7525 defb $1a,$4b,$34,$50,$a7,$a0,$04,$06 @label=barrel_6B_6D $752d defb $1a,$6b,$34,$50,$b7,$a0,$04,$06 $7535 defb $1a,$6d,$34,$50,$27,$00,$04,$56 @label=barrel_8A_08 $753d defb $1a,$8a,$34,$98,$6f,$60,$b7,$03 $7545 defb $1a,$08,$34,$28,$6f,$e1,$06,$03 @label=acgexit_00_8E $754d defb $24,$00,$c4,$98,$7f,$40,$ba,$d6 $7555 defb $24,$8e,$c4,$00,$7f,$e0,$08,$d6 @label=skeleton_53_8F $755d defb $26,$53,$00,$80,$77,$61,$00,$00 $7565 defb $26,$8f,$00,$80,$77,$61,$00,$00 @label=skeleton_33_55 $756d defb $26,$33,$00,$18,$6f,$e1,$00,$00 $7575 defb $26,$55,$00,$50,$a7,$81,$00,$00 ; Data block at 757d @label=room_table w$757d defw $76a9,$76c3,$76cd,$76d7,$76e5,$76f1,$76fb,$770d ; &00 $758d defw $7717,$7721,$7733,$773d,$7747,$7751,$775f,$776b ; &08 $759d defw $7775,$777d,$7787,$778f,$779d,$77a7,$77b5,$77bf ; &10 $75ad defw $77cb,$77d9,$77e3,$77e9,$77f3,$77f9,$77ff,$7805 ; &18 $75bd defw $780d,$7815,$7821,$7829,$7833,$783f,$7847,$784d ; &20 $75cd defw $785d,$7863,$7871,$787b,$7885,$788b,$7899,$78a3 ; &28 $75dd defw $78a9,$78b1,$78b7,$78bd,$78c7,$78cd,$78d5,$78db ; &30 $75ed defw $78e1,$78eb,$78f1,$78f9,$7903,$7909,$7915,$791d ; &38 $75fd defw $7923,$792d,$7933,$7939,$7943,$7949,$794f,$7957 ; &40 $760d defw $795d,$7967,$796d,$7973,$797d,$7985,$798b,$7993 ; &48 $761d defw $7999,$79a1,$79a7,$79ad,$79b5,$79bd,$79c5,$79d3 ; &50 $762d defw $79db,$79e3,$79eb,$79f7,$7a05,$7a13,$7a1f,$7a27 ; &58 $763d defw $7a33,$7a3f,$7a4b,$7a55,$7a61,$7a6b,$7a77,$7a8b ; &60 $764d defw $7a91,$7a97,$7a9d,$7aa5,$7aad,$7ab7,$7ac3,$7acf ; &68 $765d defw $7ad7,$7ae1,$7ae7,$7aed,$7af7,$7afd,$7b05,$7b11 ; &70 $766d defw $7b17,$7b1f,$7b25,$7b33,$7b39,$7b43,$7b4d,$7b57 ; &78 $767d defw $7b61,$7b67,$7b6f,$7b7b,$7b81,$7b8b,$7b91,$7b97 ; &80 $768d defw $7ba3,$7baf,$7bbb,$7bc9,$7bd3,$7bdd,$7beb,$7bef ; &88 $769d defw $7bf7,$7bfd,$7c05,$7c0b,$7c11,$7c17 ; &90 ; Data block at 76a9 @label=room_00 w$76a9 defw $645d $76ab defw $646d $76ad defw $647d $76af defw $754d $76b1 defw $705d $76b3 defw $706d $76b5 defw $728d $76b7 defw $729d $76b9 defw $72ad $76bb defw $72bd $76bd defw $735d $76bf defw $736d $76c1 defw $0000 @label=room_01 $76c3 defw $647d $76c5 defw $648d $76c7 defw $707d $76c9 defw $731d $76cb defw $0000 @label=room_02 $76cd defw $648d $76cf defw $649d $76d1 defw $661d $76d3 defw $66ed $76d5 defw $0000 @label=room_03 $76d7 defw $649d $76d9 defw $64ad $76db defw $6c4d $76dd defw $6f7d $76df defw $6fdd $76e1 defw $707d $76e3 defw $0000 @label=room_04 $76e5 defw $64ad $76e7 defw $64bd $76e9 defw $64cd $76eb defw $72cd $76ed defw $72dd $76ef defw $0000 @label=room_05 $76f1 defw $64cd $76f3 defw $64dd $76f5 defw $6c7d $76f7 defw $708d $76f9 defw $0000 @label=room_06 $76fb defw $64dd $76fd defw $64ed $76ff defw $64fd $7701 defw $650d $7703 defw $705d $7705 defw $706d $7707 defw $730d $7709 defw $731d $770b defw $0000 @label=room_07 $770d defw $645d $770f defw $650d $7711 defw $708d $7713 defw $730d $7715 defw $0000 @label=room_08 $7717 defw $64fd $7719 defw $651d $771b defw $726d $771d defw $753d $771f defw $0000 @label=room_09 $7721 defw $651d $7723 defw $652d $7725 defw $700d $7727 defw $745d $7729 defw $713d $772b defw $714d $772d defw $73ed $772f defw $73fd $7731 defw $0000 @label=room_0A $7733 defw $652d $7735 defw $653d $7737 defw $74ad $7739 defw $72bd $773b defw $0000 @label=room_0B $773d defw $653d $773f defw $654d $7741 defw $701d $7743 defw $729d $7745 defw $0000 @label=room_0C $7747 defw $654d $7749 defw $655d $774b defw $701d $774d defw $73dd $774f defw $0000 @label=room_0D $7751 defw $655d $7753 defw $656d $7755 defw $6c8d $7757 defw $744d $7759 defw $715d $775b defw $73cd $775d defw $0000 @label=room_0E $775f defw $656d $7761 defw $657d $7763 defw $723d $7765 defw $727d $7767 defw $72fd $7769 defw $0000 @label=room_0F $776b defw $657d $776d defw $658d $776f defw $6c5d $7771 defw $724d $7773 defw $0000 @label=room_10 $7775 defw $658d $7777 defw $659d $7779 defw $725d $777b defw $0000 @label=room_11 $777d defw $659d $777f defw $65ad $7781 defw $6c2d $7783 defw $724d $7785 defw $0000 @label=room_12 $7787 defw $65ad $7789 defw $65bd $778b defw $723d $778d defw $0000 @label=room_13 $778f defw $65bd $7791 defw $65cd $7793 defw $6c1d $7795 defw $715d $7797 defw $744d $7799 defw $70ad $779b defw $0000 @label=room_14 $779d defw $65cd $779f defw $65dd $77a1 defw $722d $77a3 defw $72dd $77a5 defw $0000 @label=room_15 $77a7 defw $65dd $77a9 defw $65ed $77ab defw $6fed $77ad defw $72cd $77af defw $709d $77b1 defw $70ad $77b3 defw $0000 @label=room_16 $77b5 defw $65ed $77b7 defw $65fd $77b9 defw $722d $77bb defw $74ad $77bd defw $0000 @label=room_17 $77bf defw $65fd $77c1 defw $660d $77c3 defw $745d $77c5 defw $732d $77c7 defw $709d $77c9 defw $0000 @label=room_18 $77cb defw $660d $77cd defw $661d $77cf defw $726d $77d1 defw $717d $77d3 defw $719d $77d5 defw $732d $77d7 defw $0000 @label=room_19 $77d9 defw $646d $77db defw $64bd $77dd defw $728d $77df defw $72ad $77e1 defw $0000 @label=room_1A $77e3 defw $64ed $77e5 defw $662d $77e7 defw $0000 @label=room_1B $77e9 defw $662d $77eb defw $663d $77ed defw $6eed $77ef defw $71bd $77f1 defw $0000 @label=room_1C $77f3 defw $663d $77f5 defw $664d $77f7 defw $0000 @label=room_1D $77f9 defw $664d $77fb defw $69ed $77fd defw $0000 @label=room_1E $77ff defw $665d $7801 defw $66cd $7803 defw $0000 @label=room_1F $7805 defw $665d $7807 defw $666d $7809 defw $703d $780b defw $0000 @label=room_20 $780d defw $666d $780f defw $667d $7811 defw $678d $7813 defw $0000 @label=room_21 $7815 defw $667d $7817 defw $668d $7819 defw $6afd $781b defw $6fdd $781d defw $703d $781f defw $0000 @label=room_22 $7821 defw $668d $7823 defw $669d $7825 defw $748d $7827 defw $0000 @label=room_23 $7829 defw $669d $782b defw $66ad $782d defw $6c0d $782f defw $704d $7831 defw $0000 @label=room_24 $7833 defw $66ad $7835 defw $66bd $7837 defw $66dd $7839 defw $70fd $783b defw $710d $783d defw $0000 @label=room_25 $783f defw $66bd $7841 defw $66cd $7843 defw $704d $7845 defw $0000 @label=room_26 $7847 defw $66dd $7849 defw $66ed $784b defw $0000 @label=room_27 $784d defw $66fd $784f defw $676d $7851 defw $677d $7853 defw $70dd $7855 defw $70ed $7857 defw $740d $7859 defw $741d $785b defw $0000 @label=room_28 $785d defw $66fd $785f defw $670d $7861 defw $0000 @label=room_29 $7863 defw $670d $7865 defw $671d $7867 defw $6aed $7869 defw $700d $786b defw $742d $786d defw $743d $786f defw $0000 @label=room_2A $7871 defw $671d $7873 defw $672d $7875 defw $71ed $7877 defw $71fd $7879 defw $0000 @label=room_2B $787b defw $672d $787d defw $673d $787f defw $70dd $7881 defw $70ed $7883 defw $0000 @label=room_2C $7885 defw $673d $7887 defw $674d $7889 defw $0000 @label=room_2D $788b defw $674d $788d defw $675d $788f defw $6a3d $7891 defw $6f9d $7893 defw $71ed $7895 defw $71fd $7897 defw $0000 @label=room_2E $7899 defw $675d $789b defw $676d $789d defw $71cd $789f defw $71dd $78a1 defw $0000 @label=room_2F $78a3 defw $677d $78a5 defw $678d $78a7 defw $0000 @label=room_30 $78a9 defw $679d $78ab defw $6a2d $78ad defw $6cdd $78af defw $0000 @label=room_31 $78b1 defw $679d $78b3 defw $67ad $78b5 defw $0000 @label=room_32 $78b7 defw $67ad $78b9 defw $67bd $78bb defw $0000 @label=room_33 $78bd defw $67bd $78bf defw $67cd $78c1 defw $67ed $78c3 defw $756d $78c5 defw $0000 @label=room_34 $78c7 defw $67cd $78c9 defw $67dd $78cb defw $0000 @label=room_35 $78cd defw $67dd $78cf defw $6ccd $78d1 defw $746d $78d3 defw $0000 @label=room_36 $78d5 defw $67ed $78d7 defw $67fd $78d9 defw $0000 @label=room_37 $78db defw $67fd $78dd defw $680d $78df defw $0000 @label=room_38 $78e1 defw $680d $78e3 defw $681d $78e5 defw $682d $78e7 defw $751d $78e9 defw $0000 @label=room_39 $78eb defw $681d $78ed defw $683d $78ef defw $0000 @label=room_3A $78f1 defw $682d $78f3 defw $684d $78f5 defw $6f5d $78f7 defw $0000 @label=room_3B $78f9 defw $683d $78fb defw $684d $78fd defw $685d $78ff defw $686d $7901 defw $0000 @label=room_3C $7903 defw $685d $7905 defw $687d $7907 defw $0000 @label=room_3D $7909 defw $686d $790b defw $688d $790d defw $689d $790f defw $74bd $7911 defw $702d $7913 defw $0000 @label=room_3E $7915 defw $687d $7917 defw $688d $7919 defw $74ed $791b defw $0000 @label=room_3F $791d defw $689d $791f defw $68ad $7921 defw $0000 @label=room_40 $7923 defw $68ad $7925 defw $68bd $7927 defw $68cd $7929 defw $6efd $792b defw $0000 @label=room_41 $792d defw $68bd $792f defw $74ed $7931 defw $0000 @label=room_42 $7933 defw $68cd $7935 defw $68dd $7937 defw $0000 @label=room_43 $7939 defw $68dd $793b defw $68ed $793d defw $690d $793f defw $69ed $7941 defw $0000 @label=room_44 $7943 defw $68ed $7945 defw $68fd $7947 defw $0000 @label=room_45 $7949 defw $68fd $794b defw $74fd $794d defw $0000 @label=room_46 $794f defw $690d $7951 defw $691d $7953 defw $69fd $7955 defw $0000 @label=room_47 $7957 defw $691d $7959 defw $692d $795b defw $0000 @label=room_48 $795d defw $692d $795f defw $693d $7961 defw $694d $7963 defw $697d $7965 defw $0000 @label=room_49 $7967 defw $693d $7969 defw $74bd $796b defw $0000 @label=room_4A $796d defw $694d $796f defw $695d $7971 defw $0000 @label=room_4B $7973 defw $695d $7975 defw $696d $7977 defw $6f8d $7979 defw $751d $797b defw $0000 @label=room_4C $797d defw $696d $797f defw $6a0d $7981 defw $750d $7983 defw $0000 @label=room_4D $7985 defw $697d $7987 defw $698d $7989 defw $0000 @label=room_4E $798b defw $698d $798d defw $699d $798f defw $750d $7991 defw $0000 @label=room_4F $7993 defw $699d $7995 defw $69ad $7997 defw $0000 @label=room_50 $7999 defw $69ad $799b defw $69bd $799d defw $69cd $799f defw $0000 @label=room_51 $79a1 defw $69bd $79a3 defw $69fd $79a5 defw $0000 @label=room_52 $79a7 defw $69cd $79a9 defw $69dd $79ab defw $0000 @label=room_53 $79ad defw $69dd $79af defw $74fd $79b1 defw $755d $79b3 defw $0000 @label=room_54 $79b5 defw $6a1d $79b7 defw $6a2d $79b9 defw $6f0d $79bb defw $0000 @label=room_55 $79bd defw $6a0d $79bf defw $6a1d $79c1 defw $756d $79c3 defw $0000 @label=room_56 $79c5 defw $6ced $79c7 defw $6dad $79c9 defw $6e6d $79cb defw $6e8d $79cd defw $70fd $79cf defw $710d $79d1 defw $0000 @label=room_57 $79d3 defw $6ced $79d5 defw $6cfd $79d7 defw $6ddd $79d9 defw $0000 @label=room_58 $79db defw $6cfd $79dd defw $6d0d $79df defw $6e0d $79e1 defw $0000 @label=room_59 $79e3 defw $6d0d $79e5 defw $6e3d $79e7 defw $6e7d $79e9 defw $0000 @label=room_5A $79eb defw $6d1d $79ed defw $6dad $79ef defw $6dbd $79f1 defw $740d $79f3 defw $741d $79f5 defw $0000 @label=room_5B $79f7 defw $6d1d $79f9 defw $6d2d $79fb defw $6ddd $79fd defw $6ded $79ff defw $6ead $7a01 defw $71ad $7a03 defw $0000 @label=room_5C $7a05 defw $6d2d $7a07 defw $6d3d $7a09 defw $6e0d $7a0b defw $6e1d $7a0d defw $6ebd $7a0f defw $71ad $7a11 defw $0000 @label=room_5D $7a13 defw $6d3d $7a15 defw $6e3d $7a17 defw $6e4d $7a19 defw $716d $7a1b defw $738d $7a1d defw $0000 @label=room_5E $7a1f defw $6d4d $7a21 defw $6dbd $7a23 defw $6dcd $7a25 defw $0000 @label=room_5F $7a27 defw $6d4d $7a29 defw $6d5d $7a2b defw $6ded $7a2d defw $6dfd $7a2f defw $6ecd $7a31 defw $0000 @label=room_60 $7a33 defw $6d5d $7a35 defw $6d6d $7a37 defw $6e1d $7a39 defw $6e2d $7a3b defw $6edd $7a3d defw $0000 @label=room_61 $7a3f defw $6d6d $7a41 defw $6e4d $7a43 defw $6e5d $7a45 defw $6f8d $7a47 defw $737d $7a49 defw $0000 @label=room_62 $7a4b defw $6d7d $7a4d defw $6dcd $7a4f defw $6e9d $7a51 defw $73bd $7a53 defw $0000 @label=room_63 $7a55 defw $6d7d $7a57 defw $6d8d $7a59 defw $6dfd $7a5b defw $716d $7a5d defw $73bd $7a5f defw $0000 @label=room_64 $7a61 defw $6d8d $7a63 defw $6d9d $7a65 defw $6e2d $7a67 defw $73ad $7a69 defw $0000 @label=room_65 $7a6b defw $6d9d $7a6d defw $6e5d $7a6f defw $6eed $7a71 defw $6f7d $7a73 defw $739d $7a75 defw $0000 @label=room_66 $7a77 defw $6ead $7a79 defw $6ebd $7a7b defw $6ecd $7a7d defw $6edd $7a7f defw $6fed $7a81 defw $737d $7a83 defw $738d $7a85 defw $739d $7a87 defw $73ad $7a89 defw $0000 @label=room_67 $7a8b defw $6e6d $7a8d defw $747d $7a8f defw $0000 @label=room_68 $7a91 defw $6e7d $7a93 defw $747d $7a95 defw $0000 @label=room_69 $7a97 defw $6e8d $7a99 defw $74cd $7a9b defw $0000 @label=room_6A $7a9d defw $6e9d $7a9f defw $74cd $7aa1 defw $71bd $7aa3 defw $0000 @label=room_6B $7aa5 defw $6c2d $7aa7 defw $6c3d $7aa9 defw $752d $7aab defw $0000 @label=room_6C $7aad defw $6c3d $7aaf defw $6c4d $7ab1 defw $6fbd $7ab3 defw $74dd $7ab5 defw $0000 @label=room_6D $7ab7 defw $6c5d $7ab9 defw $6c6d $7abb defw $752d $7abd defw $72fd $7abf defw $719d $7ac1 defw $0000 @label=room_6E $7ac3 defw $6c6d $7ac5 defw $6c7d $7ac7 defw $6fcd $7ac9 defw $74dd $7acb defw $72ed $7acd defw $0000 @label=room_6F $7acf defw $6c8d $7ad1 defw $6c9d $7ad3 defw $727d $7ad5 defw $0000 @label=room_70 $7ad7 defw $6c9d $7ad9 defw $6cad $7adb defw $73cd $7add defw $73dd $7adf defw $0000 @label=room_71 $7ae1 defw $6cad $7ae3 defw $6cbd $7ae5 defw $0000 @label=room_72 $7ae7 defw $6cbd $7ae9 defw $6ccd $7aeb defw $0000 @label=room_73 $7aed defw $6c1d $7aef defw $6f6d $7af1 defw $725d $7af3 defw $72ed $7af5 defw $0000 @label=room_74 $7af7 defw $6cdd $7af9 defw $6f6d $7afb defw $0000 @label=room_75 $7afd defw $6a3d $7aff defw $6a4d $7b01 defw $749d $7b03 defw $0000 @label=room_76 $7b05 defw $6a4d $7b07 defw $6a5d $7b09 defw $6acd $7b0b defw $6fad $7b0d defw $749d $7b0f defw $0000 @label=room_77 $7b11 defw $6a5d $7b13 defw $6a6d $7b15 defw $0000 @label=room_78 $7b17 defw $6a6d $7b19 defw $6a7d $7b1b defw $6ffd $7b1d defw $0000 @label=room_79 $7b1f defw $6a7d $7b21 defw $6a8d $7b23 defw $0000 @label=room_7A $7b25 defw $6a8d $7b27 defw $6a9d $7b29 defw $6add $7b2b defw $718d $7b2d defw $711d $7b2f defw $712d $7b31 defw $0000 @label=room_7B $7b33 defw $6a9d $7b35 defw $6aad $7b37 defw $0000 @label=room_7C $7b39 defw $6aad $7b3b defw $6abd $7b3d defw $711d $7b3f defw $712d $7b41 defw $0000 @label=room_7D $7b43 defw $6abd $7b45 defw $6acd $7b47 defw $71cd $7b49 defw $71dd $7b4b defw $0000 @label=room_7E $7b4d defw $6add $7b4f defw $6aed $7b51 defw $742d $7b53 defw $743d $7b55 defw $0000 @label=room_7F $7b57 defw $6b0d $7b59 defw $6b3d $7b5b defw $713d $7b5d defw $714d $7b5f defw $0000 @label=room_80 $7b61 defw $6b0d $7b63 defw $6b1d $7b65 defw $0000 @label=room_81 $7b67 defw $6b2d $7b69 defw $6b3d $7b6b defw $718d $7b6d defw $0000 @label=room_82 $7b6f defw $6b1d $7b71 defw $6b2d $7b73 defw $6b4d $7b75 defw $735d $7b77 defw $736d $7b79 defw $0000 @label=room_83 $7b7b defw $6b9d $7b7d defw $6bcd $7b7f defw $0000 @label=room_84 $7b81 defw $6b9d $7b83 defw $6bad $7b85 defw $6bdd $7b87 defw $6fad $7b89 defw $0000 @label=room_85 $7b8b defw $6bbd $7b8d defw $6bcd $7b8f defw $0000 @label=room_86 $7b91 defw $6bad $7b93 defw $6bbd $7b95 defw $0000 @label=room_87 $7b97 defw $6b4d $7b99 defw $6b5d $7b9b defw $6b6d $7b9d defw $733d $7b9f defw $734d $7ba1 defw $0000 @label=room_88 $7ba3 defw $6afd $7ba5 defw $6b5d $7ba7 defw $717d $7ba9 defw $70bd $7bab defw $70cd $7bad defw $0000 @label=room_89 $7baf defw $6bdd $7bb1 defw $6bed $7bb3 defw $6bfd $7bb5 defw $733d $7bb7 defw $734d $7bb9 defw $0000 @label=room_8A $7bbb defw $6bfd $7bbd defw $6c0d $7bbf defw $6ffd $7bc1 defw $753d $7bc3 defw $70bd $7bc5 defw $70cd $7bc7 defw $0000 @label=room_8B $7bc9 defw $6b6d $7bcb defw $6b7d $7bcd defw $6fbd $7bcf defw $721d $7bd1 defw $0000 @label=room_8C $7bd3 defw $6b7d $7bd5 defw $6b8d $7bd7 defw $720d $7bd9 defw $721d $7bdb defw $0000 @label=room_8D $7bdd defw $6b8d $7bdf defw $6bed $7be1 defw $6f9d $7be3 defw $6fcd $7be5 defw $720d $7be7 defw $748d $7be9 defw $0000 @label=room_8E $7beb defw $754d $7bed defw $0000 @label=room_8F $7bef defw $6efd $7bf1 defw $746d $7bf3 defw $755d $7bf5 defw $0000 @label=room_90 $7bf7 defw $6f0d $7bf9 defw $6f1d $7bfb defw $0000 @label=room_91 $7bfd defw $6f1d $7bff defw $6f2d $7c01 defw $702d $7c03 defw $0000 @label=room_92 $7c05 defw $6f2d $7c07 defw $6f3d $7c09 defw $0000 @label=room_93 $7c0b defw $6f3d $7c0d defw $6f4d $7c0f defw $0000 @label=room_94 $7c11 defw $6f4d $7c13 defw $6f5d $7c15 defw $0000 @label=room_none $7c17 defw $0000 ; Routine at 7c19 ; ; Used by the routine at #R$6000. @label=reset_menu c$7c19 ld hl,$5e00 ; $7c1c ld b,$10 ; @label=loc_7C1E *$7c1e ld (hl),$00 ; clear menu data $7c20 inc hl ; $7c21 djnz $7c1e ; $7c23 ld hl,$be4c ; $7c26 ld ($5e01),hl ; ; This entry point is used by the routine at #R$8c35. @label=main_menu *$7c29 call $80aa ; clear display, attributes, and set black border $7c2c call $a311 ; draw menu icons for controls and player acharacters @label=menu_loop *$7c2f call $7caf ; $7c32 ld a,$f7 ; xxx54321 $7c34 out ($fd),a ; $7c36 in a,($fe) ; $7c38 cpl ; set bits now mean pressed keys $7c39 ld e,a ; $7c3a ld a,($5e00) ; $7c3d bit 0,e ; 1 pressed? $7c3f jr z,$7c43 ; jump if not $7c41 and $f9 ; select Keyboard @label=loc_7C43 *$7c43 bit 1,e ; 2 pressed? $7c45 jr z,$7c4b ; jump if not $7c47 and $f9 ; $7c49 or $02 ; select Kempston joystick @label=loc_7C4B *$7c4b bit 2,e ; 3 pressed? $7c4d jr z,$7c53 ; jump if not $7c4f and $f9 ; $7c51 or $04 ; select Cursor joystick @label=loc_7C53 *$7c53 bit 3,e ; 4 pressed? $7c55 jr z,$7c59 ; jump if not $7c57 and $e7 ; select Knight @label=loc_7C59 *$7c59 bit 4,e ; 5 pressed? $7c5b jr z,$7c61 ; jump if not $7c5d and $e7 ; $7c5f or $08 ; select Wizard @label=loc_7C61 *$7c61 ld d,a ; $7c62 ld a,$ef ; xxx67890 $7c64 out ($fd),a ; $7c66 in a,($fe) ; $7c68 cpl ; set bits now mean pressed keys $7c69 ld e,a ; $7c6a ld a,d ; $7c6b bit 4,e ; 6 pressed? $7c6d jr z,$7c73 ; jump if not $7c6f and $e7 ; $7c71 or $10 ; select Serf @label=loc_7C73 *$7c73 ld ($5e00),a ; $7c76 ld c,a ; $7c77 bit 0,e ; 0 pressed? $7c79 jp nz,$7d9a ; jump if so $7c7c ld hl,$7cea ; $7c7f ld b,$03 ; $7c81 ld a,c ; $7c82 call $7c90 ; highlight keyboard/kempston/cursor $7c85 ld b,$03 ; $7c87 ld a,c ; $7c88 rrca ; $7c89 rrca ; $7c8a call $7c90 ; highlight knight/wizard/serf $7c8d jp $7c2f ; ; set menu attrs to reflect current selection ; ; Used by the routine at #R$7c19. @label=set_menu_attrs c$7c90 rrca ; @label=loc_7C91 *$7c91 and $03 ; $7c93 jr z,$7c9c ; $7c95 call $7ca4 ; @label=loc_7C98 *$7c98 dec a ; $7c99 djnz $7c91 ; $7c9b ret ; @label=loc_7C9C *$7c9c call $7cab ; $7c9f jr $7c98 ; $7ca1 set 7,(hl) ; flash on $7ca3 inc hl ; ; Routine at 7ca4 ; ; Used by the routine at #R$7c90. @label=set_flash_off c$7ca4 res 7,(hl) ; clear flash attribute $7ca6 inc hl ; $7ca7 ret ; $7ca8 res 7,(hl) ; clear flash attribute $7caa inc hl ; ; Routine at 7cab ; ; Used by the routine at #R$7c90. @label=set_flash_on c$7cab set 7,(hl) ; set flash attribute $7cad inc hl ; $7cae ret ; ; Routine at 7caf ; ; Used by the routine at #R$7c19. @label=draw_menu_text c$7caf ld hl,$be4c ; $7cb2 ld ($5e01),hl ; $7cb5 ld de,$7cea ; $7cb8 exx ; $7cb9 ld hl,$7cf1 ; $7cbc ld de,$7cf8 ; "1 KEYBOAR" $7cbf ld b,$07 ; 7 lines @label=loc_7CC1 *$7cc1 exx ; $7cc2 ld a,(de) ; text attribute colour $7cc3 ld ($5e22),a ; $7cc6 inc de ; $7cc7 exx ; $7cc8 push bc ; $7cc9 ld a,(hl) ; next text character $7cca inc hl ; $7ccb push hl ; $7ccc ld h,a ; $7ccd ld l,$58 ; x coord for text $7ccf call $7d8a ; $7cd2 exx ; $7cd3 pop hl ; $7cd4 pop bc ; $7cd5 inc de ; $7cd6 djnz $7cc1 ; $7cd8 ld hl,$b800 ; copyright at 0,184 $7cdb ld de,$7d51 ; $7cde call $a1f3 ; show a line of text, first byte is attr $7ce1 ld hl,$0020 ; header at 32,0 $7ce4 ld de,$7d72 ; $7ce7 jp $a1f3 ; show a line of text, first byte is attr ; Data block at 7cea @label=menu_attrs b$7cea defb $c5,$45,$45,$c5,$45,$45,$47 @label=menu_ycoords $7cf1 defb $10,$28,$40,$58,$70,$88,$a0 ; Message at 7cf8 @label=menu_options t$7cf8 defm "1 KEYBOAR" $7d02 defb $c4 $7d03 defm "2 KEMPSTON JOYSTIC" $7d16 defb $cb $7d17 defm "3 CURSOR JOYSTIC" $7d2a defb $cb $7d2b defm "4 KNIGH" $7d33 defb $d4 $7d34 defm "5 WIZAR" $7d3c defb $c4 $7d3d defm "6 SER" $7d43 defb $c6 $7d44 defm "0 START GAM" $7d50 defb $c5 ; Data block at 7d51 @label=copyright_msg b$7d51 defb $47 $7d52 defm "%1983 A.C.G. ALL RIGHTS RESERVE" $7d71 defb $c4 ; Data block at 7d72 @label=header_msg b$7d72 defb $47 $7d73 defm "ATICATAC GAME SELECTIO" $7d89 defb $ce ; Routine at 7d8a ; ; Used by the routine at #R$7caf. @label=print_text c$7d8a push hl ; $7d8b call $9ba2 ; convert coords in HL to display address in HL $7d8e ld a,($5e22) ; $7d91 ex af,af' ; $7d92 exx ; $7d93 pop hl ; $7d94 call $9bd2 ; convert pixel coords in HL to attribute address $7d97 jp $a1ff ; ; Routine at 7d9a ; ; Used by the routine at #R$7c19. @label=start_game c$7d9a call $80cb ; clear 5E10-5FFF $7d9d ld a,$03 ; 3 lives on startup $7d9f ld ($5e21),a ; $7da2 ld hl,$eb58 ; $7da5 ld ($5e55),hl ; $7da8 call $80aa ; clear display, attributes, and set black border $7dab call $a219 ; draw side panel background scroll $7dae call $a2ce ; draw lives sprites in side panel $7db1 call $94b6 ; set locations of ACG key pieces $7db4 call $98d2 ; set positions of red/green/cyan keys, and mummy $7db7 call $8d61 ; copy initial game state to working state area $7dba call $94f5 ; randomise which doors can open/close $7dbd call $9443 ; prepare player to spawn $7dc0 jp $9147 ; ; Routine at 7dc3 ; ; Used by the routines at #R$7e13 and #R$9117. @label=main_loop c$7dc3 ld sp,$5e00 ; $7dc6 ei ; $7dc7 xor a ; @label=loc_7DC8 $7dc8 ld ($5e25),a ; number of creatures processed this frame $7dcb ld ix,$eaa8 ; first entity $7dcf ld a,($5e14) ; b0 set if room content drawn $7dd2 bit 0,a ; room content drawn? $7dd4 jr nz,$7ddc ; jump if so $7dd6 ld ix,$eee0 ; pairs of linked items, including doors $7dda jr $7e23 ; @label=loc_7DDC *$7ddc ld a,($5c78) ; $7ddf ld c,a ; $7de0 ld a,($5e03) ; $7de3 cp c ; same frame as last time? $7de4 call nz,$7eb2 ; call if not $7de7 ld a,($ea91) ; $7dea cp (ix+$01) ; entity in player room? $7ded ld hl,$7df3 ; $7df0 jp z,$7e7e ; jump if so @label=loop_return $7df3 ld de,$0008 ; entity size $7df6 add ix,de ; next entity $7df8 push ix ; $7dfa pop hl ; $7dfb ld de,$ee60 ; end marker $7dfe and a ; $7dff sbc hl,de ; end of list? $7e01 jr c,$7ddc ; jump if not ; This entry point is used by the routine at #R$7e13. @label=loc_7E03 *$7e03 ld a,($5c78) ; $7e06 ld c,a ; $7e07 ld a,($5e03) ; $7e0a cp c ; same frame as last time? $7e0b call nz,$7eb2 ; call if not $7e0e ld hl,$7e13 ; $7e11 jr $7e7e ; ; Routine at 7e13 @label=loop2_return c$7e13 ld de,$0010 ; 16 bytes per linked entity pair $7e16 add ix,de ; next pair $7e18 push ix ; $7e1a pop hl ; $7e1b ld de,$eee0 ; pairs of linked items, including doors $7e1e and a ; $7e1f sbc hl,de ; $7e21 jr c,$7e03 ; ; This entry point is used by the routine at #R$7dc3. @label=draw_room *$7e23 ld a,($ea91) ; $7e26 ld l,a ; $7e27 ld h,$00 ; $7e29 add hl,hl ; * 2 (bytes per entry) $7e2a ld bc,$757d ; $7e2d add hl,bc ; $7e2e ld a,(hl) ; room data LSB $7e2f inc hl ; $7e30 ld h,(hl) ; room data MSB $7e31 ld l,a ; $7e32 ld ($5e1b),hl ; @label=decor_loop $7e35 ld hl,($5e1b) ; $7e38 ld a,(hl) ; room item LSB $7e39 inc hl ; $7e3a inc hl ; $7e3b ld ($5e1b),hl ; $7e3e dec hl ; $7e3f ld h,(hl) ; room item MSB $7e40 ld l,a ; $7e41 or h ; end of list? $7e42 jr nz,$7e93 ; jump if not $7e44 ld hl,($5e12) ; $7e47 inc hl ; advance game loop counter $7e48 ld ($5e12),hl ; $7e4b ld hl,$5e14 ; b0 set if room content drawn $7e4e bit 0,(hl) ; room drawn yet? $7e50 jr nz,$7e55 ; jump if so $7e52 call $9291 ; draw all non-monster entities in the current room @label=loc_7E55 *$7e55 ld hl,$5e14 ; b0 set if room content drawn $7e58 set 0,(hl) ; mark room as drawn $7e5a ld hl,($5e05) ; another random number source $7e5d ld de,($5c78) ; $7e61 add hl,de ; add in frames $7e62 ld a,($5e12) ; $7e65 add a,l ; add in counter low $7e66 ld l,a ; $7e67 ld ($5e05),hl ; only low 8 bits are meaningfully random $7e6a call $938b ; check whether pick-up key has been pressed $7e6d call $9489 ; check for pause key, return when not paused $7e70 call $9924 ; periodically replenish consumed food $7e73 ld a,($ea91) ; $7e76 cp $8e ; end room? $7e78 jp z,$96ec ; congratulate player on completion $7e7b jp $7dc3 ; ; Routine at 7e7e ; ; Used by the routine at #R$7dc3. @label=process_action c$7e7e push hl ; push return location ; This entry point is used by the routine at #R$7eb2. @label=run_handler *$7e7f ld hl,$7ee6 ; @label=lookup_graphic *$7e82 ld c,(ix+$00) ; ; This entry point is used by the routine at #R$9924. @label=lookup_c_hl *$7e85 ld b,$00 ; $7e87 sla c ; $7e89 rl b ; * 2 (bytes per entry) $7e8b add hl,bc ; $7e8c ld a,(hl) ; LSB $7e8d inc hl ; $7e8e ld h,(hl) ; MSB $7e8f ld l,a ; @ssub=jp $d505 ; new JP instruction $7e90 jp $5cb0 ; ; This entry point is used by the routine at #R$7e13. @label=loc_7E93 *$7e93 ld bc,$7e35 ; $7e96 push bc ; $7e97 ld bc,$757d ; $7e9a and a ; $7e9b sbc hl,bc ; $7e9d push hl ; $7e9e pop ix ; $7ea0 ld a,($ea91) ; $7ea3 cp (ix+$01) ; in player room? $7ea6 jr z,$7ead ; jump if so $7ea8 ld bc,$0008 ; $7eab add ix,bc ; @label=loc_7EAD *$7ead ld hl,$802a ; $7eb0 jr $7e82 ; ; run player, weapon, and sound handlers ; ; Used by the routine at #R$7dc3. @label=run_player c$7eb2 di ; $7eb3 push ix ; $7eb5 ld a,$01 ; $7eb7 ld ($5e04),a ; flag set but never read $7eba ld ix,$ea90 ; ; This entry point is used by the routine at #R$7ec5. @label=loc_7EBE *$7ebe ld hl,$7ec5 ; $7ec1 push hl ; $7ec2 jp $7e7f ; ; Routine at 7ec5 @label=handler_loop c$7ec5 ld de,$0008 ; 8 bytes per entry $7ec8 add ix,de ; next entry $7eca push ix ; $7ecc pop hl ; $7ecd ld de,$eaa8 ; end marker $7ed0 and a ; $7ed1 sbc hl,de ; end of list? $7ed3 jr c,$7ebe ; jump if not $7ed5 call $95da ; advance the clock 1 frame $7ed8 ld a,($5c78) ; $7edb ld ($5e03),a ; $7ede xor a ; $7edf ld ($5e04),a ; flag set but never read $7ee2 pop ix ; $7ee4 ei ; $7ee5 ret ; ; Data block at 7ee6 @label=handler_table w$7ee6 defw $807a,$8e26,$8e26,$8e26 ; &00 $7eee defw $8e26,$8e26,$8e26,$8e26 ; &04 extra delay for inactive creatures $7ef6 defw $8e26,$8e26,$8e26,$8e26 ; &08 $7efe defw $8e26,$8e26,$8e26,$8e26 ; &0c $7f06 defw $8e26,$80d2,$80d2,$80d2 ; &10 $7f0e defw $80d2,$80d2,$80d2,$80d2 ; &14 $7f16 defw $80d2,$80d2,$80d2,$80d2 ; &18 $7f1e defw $80d2,$80d2,$80d2,$80d2 ; &1c $7f26 defw $80d2,$8dc4,$8dc4,$8dc4 ; &20 $7f2e defw $8dc4,$8dc4,$8dc4,$8dc4 ; &24 $7f36 defw $8dc4,$8dc4,$8dc4,$8dc4 ; &28 $7f3e defw $8dc4,$8dc4,$8dc4,$8dc4 ; &2c $7f46 defw $8dc4,$93e3,$807a,$807a ; &30 $7f4e defw $81f0,$81f0,$81f0,$81f0 ; &34 $7f56 defw $82f1,$82f1,$82f1,$82f1 ; &38 $7f5e defw $82f1,$82f1,$82f1,$82f1 ; &3c $7f66 defw $81db,$81db,$81db,$81db ; &40 $7f6e defw $81db,$81db,$81db,$81db ; &44 $7f76 defw $807a,$807a,$807a,$807a ; &48 $7f7e defw $845f,$845f,$862e,$862e ; &4c $7f86 defw $8c63,$8c63,$8c63,$8c63 ; &50 $7f8e defw $8c63,$8c63,$8c63,$8c63 ; &54 $7f96 defw $85f7,$85f7,$85f7,$85f7 ; &58 $7f9e defw $845f,$845f,$8672,$8672 ; &5c $7fa6 defw $871a,$871a,$87a6,$87a6 ; &60 $7fae defw $a3ef,$a408,$8cb7,$8d45 ; &64 $7fb6 defw $8672,$8672,$8301,$8301 ; &68 $7fbe defw $8787,$8787,$8787,$8787 ; &6c $7fc6 defw $8862,$8862,$8862,$8862 ; &70 $7fce defw $8988,$8988,$8988,$8988 ; &74 $7fd6 defw $89ed,$89ed,$89ed,$89ed ; &78 $7fde defw $8906,$8906,$8906,$8906 ; &7c $7fe6 defw $92f5,$92f5,$92f5,$92f5 ; &80 $7fee defw $92f5,$92f5,$92f5,$92f5 ; &84 $7ff6 defw $92f5,$92f5,$92f5,$92f5 ; &88 $7ffe defw $92f5,$92f5,$92f5,$95d7 ; &8c $8006 defw $8a2f,$8a2f,$8a2f,$8a2f ; &90 $800e defw $8a80,$8a80,$8a80,$8a80 ; &94 $8016 defw $8a80,$8a80,$8a80,$8a80 ; &98 $801e defw $8aff,$8aff,$8aff,$8aff ; &9c $8026 defw $a48b,$988b ; &a0 ; Data block at 802a @label=handler_table2 w$802a defw $807a,$91f2,$91f2,$91ed ; &00 $8032 defw $807a,$807a,$807a,$807a ; &04 extra delay for inactive creatures $803a defw $9244,$9244,$9244,$9244 ; &08 $8042 defw $9252,$9252,$9252,$9252 ; &0c $804a defw $942f,$91fe,$91fe,$807a ; &10 $8052 defw $807a,$91fe,$91fe,$9428 ; &14 $805a defw $91bc,$91c5,$9421,$91fe ; &18 $8062 defw $91fe,$91fe,$91fe,$807a ; &1c $806a defw $917d,$915f,$917d,$915f ; &20 $8072 defw $961b,$91fe,$91fe,$91fe ; &24 ; extra delay applied to inactive creatures @label=h_creat_delay c$807a push ix ; $807c pop hl ; $807d ld de,$ee60 ; end marker $8080 and a ; $8081 sbc hl,de ; subtract from entity address $8083 ld a,h ; $8084 and a ; before creature 1? $8085 ret nz ; return if so $8086 ld a,l ; $8087 cp $30 ; after creature3 (16 bytes &0eac) $8089 ret nc ; return if so $808a ld hl,$00c0 ; delay to keep game speed stable @label=delay_loop *$808d dec hl ; $808e ld a,h ; $808f or l ; $8090 jr nz,$808d ; $8092 ret ; ; clear screen and attrs of play area ; ; Used by the routines at #R$8c35, #R$9117 and #R$9731. @label=clear_play_area c$8093 ld hl,$4000 ; $8096 ld bc,$18c0 ; 24x192 $8099 xor a ; ; fill C rows of B columns of value A at address HL ; ; Used by the routines at #R$9bea and #R$a240. @label=fill_bc_hl_a c$809a push bc ; $809b push hl ; $809c ld de,$0020 ; line stride is 32 bytes @label=loc_809F *$809f ld (hl),a ; $80a0 inc hl ; $80a1 djnz $809f ; $80a3 pop hl ; $80a4 add hl,de ; $80a5 pop bc ; $80a6 dec c ; $80a7 jr nz,$809a ; fill C rows of B columns of value A at address HL $80a9 ret ; ; clear display, attributes, and set black border ; ; Used by the routines at #R$7c19 and #R$7d9a. @label=clear_screen c$80aa call $80c2 ; clear attribute file $80ad call $80b4 ; clear display file $80b0 xor a ; $80b1 out ($fe),a ; black border $80b3 ret ; ; clear display file ; ; Used by the routine at #R$80aa. @label=clear_display c$80b4 ld hl,$4000 ; $80b7 ld b,$58 ; ; This entry point is used by the routine at #R$80cb. @label=loc_80B9 *$80b9 ld c,$00 ; ; This entry point is used by the routine at #R$80c2. @label=loc_80BB *$80bb ld (hl),c ; $80bc inc hl ; $80bd ld a,h ; $80be cp b ; $80bf jr nz,$80bb ; $80c1 ret ; ; clear attribute file ; ; Used by the routine at #R$80aa. @label=clear_attrs c$80c2 ld hl,$5800 ; $80c5 ld b,$5b ; $80c7 ld c,$00 ; $80c9 jr $80bb ; ; clear 5E10-5FFF ; ; Used by the routine at #R$7d9a. @label=clear_game_data c$80cb ld hl,$5e10 ; $80ce ld b,$60 ; clear up to address 6000 $80d0 jr $80b9 ; ; wizard character handler @label=h_wizard c$80d2 ld bc,$2020 ; walk deceleration $80d5 ld de,$2020 ; walk acceleration $80d8 ld hl,$2020 ; unused $80db call $8d77 ; read controls and apply player movement $80de ld e,(ix+$06) ; x velocity $80e1 ld d,(ix+$07) ; y velocity $80e4 ld a,d ; $80e5 or e ; is player moving? $80e6 jr z,$811d ; jump if not $80e8 ld a,($5c78) ; $80eb and $03 ; 1/4 update rate $80ed jr nz,$811d ; jump if not time $80ef ld a,(ix+$00) ; $80f2 and $03 ; keep animation frame bits $80f4 add a,$11 ; add base wizard graphic $80f6 ld (ix+$00),a ; $80f9 ld a,d ; $80fa and a ; moving down? $80fb jp p,$8100 ; jump if so $80fe neg ; abs @label=loc_8100 *$8100 ld c,a ; $8101 ld a,e ; $8102 and a ; moving right? $8103 jp p,$8108 ; jump if so $8106 neg ; abs @label=loc_8108 *$8108 cp c ; moving more up/down than left/right? $8109 jr nc,$8128 ; jump if so $810b ld a,d ; $810c and a ; moving up? $810d ld a,(ix+$00) ; $8110 jp m,$8115 ; jump if so $8113 add a,$04 ; offset to down sprites @label=loc_8115 *$8115 add a,$08 ; offset to right sprites @label=loc_8117 *$8117 ld (ix+$00),a ; set animation graphic $811a call $a3c7 ; play walk clicks if due @label=loc_811D *$811d call $93be ; return controls in A (FUDLR order, negative logic) $8120 and $10 ; fire pressed? $8122 call z,$814b ; call if so (fire weapon) $8125 jp $8e78 ; @label=loc_8128 *$8128 ld a,e ; $8129 and a ; moving left? $812a ld a,(ix+$00) ; $812d jp m,$8117 ; jump if so $8130 add a,$04 ; offset to down sprites $8132 jr $8117 ; ; fire knight weapon ; ; Used by the routine at #R$8e26. @label=knight_fire c$8134 ld a,($ea98) ; $8137 and a ; weapon active? $8138 ret nz ; return if so (only one allowed) $8139 ld a,($5e2d) ; $813c and a ; standing in doorway? $813d ret nz ; return if so (can't fire) $813e call $a41b ; play axe throw sound $8141 call $817c ; throw the current character's weapon $8144 ld hl,$ea98 ; $8147 ld (hl),$40 ; base axe graphic $8149 jr $8160 ; ; fire wizard weapon ; ; Used by the routine at #R$80d2. @label=wizard_fire c$814b ld a,($ea98) ; $814e and a ; weapon active? $814f ret nz ; return if so $8150 ld a,($5e2d) ; $8153 and a ; standing in doorway? $8154 ret nz ; return if so (can't fire) $8155 call $a438 ; play fireball throw sound $8158 call $817c ; throw the current character's weapon $815b ld hl,$ea98 ; $815e ld (hl),$34 ; base fireball graphic ; This entry point is used by the routines at #R$8134 and #R$8283. @label=loc_8160 *$8160 inc hl ; $8161 ld a,(ix+$01) ; player room $8164 ld (hl),a ; set weapon room $8165 inc hl ; $8166 inc hl ; $8167 ld a,(ix+$03) ; player xpos $816a ld (hl),a ; set weapon xpos $816b inc hl ; $816c ld a,(ix+$04) ; player ypos $816f ld (hl),a ; set weapon ypos $8170 push ix ; $8172 ld ix,$ea98 ; $8176 call $9f4a ; draw entity graphic (no attrs) $8179 pop ix ; $817b ret ; ; throw the current character's weapon ; ; Used by the routines at #R$8134, #R$814b and #R$8283. @label=throw_weapon c$817c ld hl,$ea9e ; $817f ld a,$30 ; $8181 ld ($eaa7),a ; $8184 ld a,$00 ; $8186 ld ($ea9a),a ; $8189 ld a,(ix+$06) ; $818c or (ix+$07) ; $818f jr z,$81b3 ; $8191 ld a,(ix+$06) ; $8194 and a ; $8195 jr z,$81a0 ; $8197 jp m,$819e ; $819a ld a,$04 ; $819c jr $81a0 ; @label=loc_819E *$819e ld a,$fc ; @label=loc_81A0 *$81a0 ld (hl),a ; $81a1 inc hl ; $81a2 ld a,(ix+$07) ; $81a5 and a ; $81a6 jr z,$81b1 ; $81a8 jp m,$81af ; $81ab ld a,$04 ; $81ad jr $81b1 ; @label=loc_81AF *$81af ld a,$fc ; @label=loc_81B1 *$81b1 ld (hl),a ; $81b2 ret ; @label=loc_81B3 *$81b3 ld a,(ix+$00) ; $81b6 dec a ; $81b7 and $0c ; $81b9 jr z,$81c9 ; $81bb cp $04 ; $81bd jr z,$81cf ; $81bf cp $08 ; $81c1 jr nz,$81d5 ; $81c3 ld (hl),$00 ; x velocity $81c5 inc hl ; $81c6 ld (hl),$fc ; y velocity (up) $81c8 ret ; @label=loc_81C9 *$81c9 ld (hl),$fc ; x velocity (left) $81cb inc hl ; $81cc ld (hl),$00 ; y velocity $81ce ret ; @label=loc_81CF *$81cf ld (hl),$04 ; set x velocity (right) $81d1 inc hl ; $81d2 ld (hl),$00 ; set y velocity $81d4 ret ; @label=loc_81D5 *$81d5 ld (hl),$00 ; set x velocity (none) $81d7 inc hl ; $81d8 ld (hl),$04 ; set y velocity (down) $81da ret ; ; axe animation handler @label=h_axe c$81db call $9ffb ; save entity position for undraw $81de ld a,($5c78) ; $81e1 cpl ; cycle backwards $81e2 rra ; 1/2 animation rate $81e3 and $07 ; 8 animation frames $81e5 add a,$40 ; base axe graphic $81e7 ld (ix+$00),a ; $81ea ld (ix+$05),$42 ; bright red $81ee jr $8209 ; ; fireball animation handler @label=h_fireball c$81f0 call $9ffb ; save entity position for undraw $81f3 ld a,(ix+$00) ; $81f6 inc a ; cycle &0eac processing loop $81f7 and $03 ; 4 animation frames $81f9 add a,$34 ; base fireball graphic $81fb ld (ix+$00),a ; $81fe ld a,($5c78) ; $8201 rla ; $8202 and $02 ; two possible colours $8204 add a,$45 ; bright cyan or white $8206 ld (ix+$05),a ; ; This entry point is used by the routines at #R$81db and #R$82f1. @label=weapon_handler *$8209 ld de,($5e1d) ; $820d ld a,($ea91) ; $8210 cp (ix+$01) ; weapon in player room? $8213 jr nz,$827e ; jump if not (remove) $8215 dec (ix+$0f) ; existed too long? $8218 jr z,$826f ; jump if so (remove) $821a bit 0,(ix+$02) ; $821e jr nz,$826f ; $8220 ld a,(ix+$03) ; weapon xpos $8223 add a,(ix+$06) ; add x velocity $8226 ld c,a ; $8227 sub $58 ; subtract room x centre $8229 jp p,$822e ; jump if in right half $822c neg ; abs @label=loc_822E *$822e cp e ; hit screen edge? $822f jr nc,$825d ; jump if so (bounce) @label=loc_8231 *$8231 ld a,(ix+$04) ; weapon ypos $8234 add a,(ix+$07) ; add y velocity $8237 ld b,a ; $8238 sub $68 ; subtract room y centre $823a jp p,$823f ; jump if in bottom half $823d neg ; abs @label=loc_823F *$823f cp d ; hit screen edge? $8240 jr nc,$824b ; jump if so (bounce) @label=loc_8242 *$8242 ld (ix+$03),c ; set updated xpos $8245 ld (ix+$04),b ; set updated ypos $8248 jp $8e8e ; @label=loc_824B *$824b ld b,(ix+$04) ; weapon ypos $824e ld a,(ix+$07) ; y velocity $8251 neg ; invert (bounce) $8253 ld (ix+$07),a ; $8256 push bc ; $8257 call $a4b0 ; weapon bounce sound $825a pop bc ; $825b jr $8242 ; @label=loc_825D *$825d ld c,(ix+$03) ; weapon xpos $8260 ld a,(ix+$06) ; x velocity $8263 neg ; invert (bounce) $8265 ld (ix+$06),a ; $8268 push bc ; $8269 call $a4b0 ; weapon bounce sound $826c pop bc ; $826d jr $8231 ; ; This entry point is used by the routine at #R$8787. @label=loc_826F *$826f call $9f56 ; $8272 call $a445 ; weapon disappearing sound $8275 ld a,($5e1a) ; $8278 ld (ix+$05),a ; $827b call $a01a ; set attrs covering previous and new position ; This entry point is used by the routine at #R$85b2. @label=remove_entity *$827e ld (ix+$00),$00 ; clear entity graphic $8282 ret ; ; fire serf weapon, if not active ; ; Used by the routine at #R$8dc4. @label=serf_fire c$8283 ld a,($ea98) ; $8286 and a ; weapon active? $8287 ret nz ; return if so $8288 ld a,($5e2d) ; $828b and a ; standing in doorway? $828c ret nz ; return if so $828d call $a427 ; play sword throw sound $8290 call $817c ; throw the current character's weapon $8293 ld c,$00 ; $8295 ld a,(hl) ; $8296 and a ; y velocity zero? $8297 jr z,$82b6 ; jump if so $8299 jp p,$829e ; jump if down $829c ld c,$04 ; offset to up graphic @label=loc_829E *$829e dec hl ; $829f ld a,(hl) ; $82a0 and a ; x velocity zero? $82a1 jr z,$82a7 ; jump if so $82a3 jp p,$82b3 ; jump if right $82a6 dec c ; up/left or down/left @label=loc_82A7 *$82a7 ld a,c ; $82a8 and $07 ; 8 possible directions $82aa add a,$38 ; base sword graphic $82ac ld hl,$ea98 ; $82af ld (hl),a ; $82b0 jp $8160 ; @label=loc_82B3 *$82b3 inc c ; $82b4 jr $82a7 ; @label=loc_82B6 *$82b6 dec hl ; $82b7 bit 7,(hl) ; $82b9 jr z,$82bf ; $82bb ld c,$06 ; $82bd jr $82a7 ; @label=loc_82BF *$82bf ld c,$02 ; $82c1 jr $82a7 ; ; set sword direction to match player direction ; ; Used by the routine at #R$82f1. @label=set_sword_dir c$82c3 ld c,$00 ; down $82c5 ld a,(hl) ; $82c6 and a ; $82c7 jr z,$82e4 ; $82c9 jp p,$82ce ; $82cc ld c,$04 ; up @label=loc_82CE *$82ce dec hl ; $82cf ld a,(hl) ; $82d0 and a ; $82d1 jr z,$82d7 ; $82d3 jp p,$82e1 ; $82d6 dec c ; up-left or down-left @label=loc_82D7 *$82d7 ld a,c ; $82d8 and $07 ; 8 positions $82da add a,$38 ; base sword graphic $82dc ld hl,$ea98 ; $82df ld (hl),a ; $82e0 ret ; @label=loc_82E1 *$82e1 inc c ; up-right or down-right $82e2 jr $82d7 ; @label=loc_82E4 *$82e4 dec hl ; $82e5 bit 7,(hl) ; $82e7 jr z,$82ed ; $82e9 ld c,$06 ; facing left $82eb jr $82d7 ; @label=loc_82ED *$82ed ld c,$02 ; facing right $82ef jr $82d7 ; ; sword animation handler @label=h_sword c$82f1 call $9ffb ; save entity position for undraw $82f4 ld (ix+$05),$46 ; bright yellow $82f8 ld hl,$ea9f ; $82fb call $82c3 ; set sword direction to match player direction $82fe jp $8209 ; ; small bat handler @label=h_batlet c$8301 ld a,($ea91) ; $8304 cp (ix+$01) ; $8307 jp nz,$85f0 ; $830a call $9ffb ; save entity position for undraw $830d ld hl,$5e25 ; number of creatures processed this frame $8310 inc (hl) ; $8311 call $85b2 ; check if enemy is touching player (returns E=1) $8314 dec e ; touching player? $8315 jp z,$85ea ; jump if so $8318 call $8566 ; check if weapon has hit entity $831b dec e ; hit by weapon? $831c jp z,$875f ; jump if so $831f ld (ix+$0f),$00 ; live for 256 frames in different room $8323 ld de,($5e1d) ; $8327 ld a,(ix+$09) ; movement counter $832a inc a ; $832b and $0f ; 16-frames between movement changes $832d ld (ix+$09),a ; $8330 jp nz,$833a ; jump if no change $8333 ld a,r ; $8335 and $07 ; 3-bit random behaviour $8337 ld (ix+$08),a ; @label=loc_833A *$833a call $83ba ; random velocity used for batlet $833d ld (ix+$05),$43 ; bright magenta $8341 jr nz,$8344 ; jump if using first (decreasing) entry $8343 inc hl ; advance to second (increasing) entry @label=loc_8344 *$8344 ld a,(hl) ; get velocity from table $8345 bit 1,(ix+$08) ; random direction down? $8349 jr nz,$834d ; jump if so $834b neg ; invert to go up @label=loc_834D *$834d add a,(ix+$04) ; add velocity to ypos $8350 ld c,a ; $8351 sub $68 ; subtract room y centre $8353 jr c,$835a ; jump if in top screen half $8355 cp d ; $8356 jr nc,$83a2 ; $8358 jr $835f ; @label=loc_835A *$835a neg ; abs $835c cp d ; within screen height? $835d jr nc,$83a8 ; jump if not @label=loc_835F *$835f ld (ix+$04),c ; update ypos @label=loc_8362 *$8362 call $83ba ; random velocity used for batlet $8365 jr z,$8368 ; jump if using first (decreasing) entry $8367 inc hl ; advance to second (increasing) entry @label=loc_8368 *$8368 ld a,(hl) ; get velocity from table $8369 bit 0,(ix+$08) ; random direction right? $836d jr nz,$8371 ; jump if so $836f neg ; invert to go left @label=loc_8371 *$8371 add a,(ix+$03) ; add velocity to xpos $8374 ld c,a ; $8375 sub $58 ; subtract room x centre $8377 jr c,$837e ; jump if in left half $8379 cp e ; within room width? $837a jr nc,$83b4 ; jump if not $837c jr $8383 ; @label=loc_837E *$837e neg ; abs $8380 cp e ; within room width? $8381 jr nc,$83ae ; jump if not @label=loc_8383 *$8383 ld (ix+$03),c ; update xpos $8386 ld a,(ix+$09) ; $8389 rra ; $838a rra ; 1/4 animation rate $838b and $01 ; 2 animation frames $838d ld c,a ; $838e ld a,(ix+$00) ; $8391 and $fe ; strip animation bit $8393 add a,c ; $8394 ld (ix+$00),a ; set animation graphic $8397 ld a,($ea90) ; $839a cp $31 ; player active? $839c jp nc,$875f ; jump if not $839f jp $8e8e ; @label=loc_83A2 *$83a2 res 1,(ix+$08) ; move left away from room bounds $83a6 jr $8362 ; @label=loc_83A8 *$83a8 set 1,(ix+$08) ; move right away from room bounds $83ac jr $8362 ; @label=loc_83AE *$83ae set 0,(ix+$08) ; move down away from room bounds $83b2 jr $8383 ; @label=loc_83B4 *$83b4 res 0,(ix+$08) ; move up away from room bounds $83b8 jr $8383 ; ; random velocity used for batlet ; ; Used by the routine at #R$8301. @label=get_rnd_velocity c$83ba ld c,(ix+$09) ; movement counter $83bd sla c ; * 2 bytes per entry $83bf ld b,$00 ; $83c1 ld hl,$83ca ; random velocities (0-3) $83c4 add hl,bc ; $83c5 bit 2,(ix+$08) ; decide on using first or second entry $83c9 ret ; ; Data block at 83ca @label=rnd_velocities b$83ca defb $03,$00 $83cc defb $03,$00 ; random velocities (0-3) $83ce defb $03,$01 $83d0 defb $03,$01 $83d2 defb $03,$01 $83d4 defb $02,$02 $83d6 defb $02,$02 $83d8 defb $02,$02 $83da defb $02,$02 $83dc defb $02,$02 $83de defb $02,$02 $83e0 defb $01,$03 $83e2 defb $01,$03 $83e4 defb $01,$03 $83e6 defb $00,$03 $83e8 defb $00,$03 ; check whether to add new room creatures ; ; Used by the routine at #R$8e26. @label=chk_creatures c$83ea ld a,($5e26) ; last room creature created in $83ed ld c,a ; $83ee ld a,($ea91) ; $83f1 cp c ; player in different room? $83f2 jr nz,$844f ; jump if so $83f4 ld hl,$5e27 ; $83f7 ld a,(hl) ; $83f8 and a ; time to appear? $83f9 jr z,$8458 ; jump if so $83fb dec (hl) ; reduce delay timer $83fc ret nz ; return if not yet time @label=add_creature *$83fd ld hl,$ee60 ; first creature slot $8400 ld de,$0010 ; 16 bytes per creature $8403 ld b,$03 ; 3 room creatures @label=loc_8405 *$8405 ld a,(hl) ; $8406 and a ; free slot? $8407 jr z,$840d ; jump if so $8409 add hl,de ; $840a djnz $8405 ; $840c ret ; no free slots @label=loc_840D *$840d ex de,hl ; $840e ld hl,$8b6a ; default entity data for creature $8411 ld bc,$0010 ; 16 bytes of entity data $8414 push de ; $8415 ldir ; copy template $8417 pop hl ; $8418 push hl ; $8419 inc hl ; $841a ld a,($ea91) ; $841d ld (hl),a ; $841e inc hl ; $841f push hl ; $8420 ld hl,$8b7a ; creature table $8423 ld a,($5c78) ; $8426 and $0f ; 16 creatures entries to choose from $8428 ld e,a ; $8429 ld d,$00 ; $842b add hl,de ; $842c ld a,(hl) ; new creature graphic $842d pop hl ; $842e ld (hl),a ; set graphic $842f ld de,($5e1d) ; $8433 ld b,e ; $8434 call $8598 ; random coord less than interior size B $8437 ld (hl),a ; set x $8438 ld b,d ; $8439 call $8598 ; random coord less than interior size B $843c ld (hl),a ; set y $843d pop de ; $843e push ix ; $8440 ld ix,$0000 ; $8444 add ix,de ; $8446 call $86f2 ; set random movement $8449 call $9f4a ; draw entity graphic (no attrs) $844c pop ix ; $844e ret ; @label=loc_844F *$844f ld ($5e26),a ; $8452 ld a,$20 ; delay 32 frames before next creature $8454 ld ($5e27),a ; $8457 ret ; @label=loc_8458 *$8458 ld a,r ; $845a and $0f ; 1/16 chance of appearing $845c ret nz ; return if not $845d jr $83fd ; add creature ; pumpkin and spider handler @label=h_pumpkin_spider c$845f call $9ffb ; save entity position for undraw $8462 ld a,($ea91) ; $8465 cp (ix+$01) ; in player room? $8468 jp nz,$85f0 ; jump if not $846b ld hl,$5e25 ; number of creatures processed this frame $846e inc (hl) ; $846f call $8566 ; check if weapon has hit entity $8472 dec e ; hit by weapon? $8473 jp z,$875f ; jump if so $8476 call $85b2 ; check if enemy is touching player (returns E=1) $8479 dec e ; touching player? $847a jp z,$85ea ; jump if so $847d ld de,($5e1d) ; $8481 ld (ix+$0f),$00 ; live for 256 frames in different room $8485 ld (ix+$05),$46 ; bright yellow $8489 ld a,(ix+$07) ; $848c and $0f ; 4-bit animation counter 0? $848e jr nz,$8497 ; jump if not $8490 ld a,r ; $8492 and $03 ; 2-bit random x and y direction $8494 ld (ix+$06),a ; set directions @label=loc_8497 *$8497 bit 0,(ix+$07) ; unchanged movement this frame? $849b jr nz,$84bf ; jump if so $849d bit 0,(ix+$06) ; move left? $84a1 jp z,$854a ; jump if so $84a4 ld a,(ix+$08) ; $84a7 cp $02 ; at right speed limit? $84a9 jr z,$84ae ; jump if so $84ab inc (ix+$08) ; faster right @label=loc_84AE *$84ae bit 1,(ix+$06) ; move up? $84b2 jp z,$8558 ; jump if so $84b5 ld a,(ix+$09) ; $84b8 cp $02 ; at down speed limit? $84ba jr z,$84bf ; jump if so $84bc inc (ix+$09) ; faster down @label=loc_84BF *$84bf inc (ix+$07) ; increase animation counter $84c2 ld a,(ix+$07) ; $84c5 and $01 ; 2 animation frames $84c7 xor (ix+$00) ; combine, for 1/2 animation rate $84ca ld (ix+$00),a ; set animation graphic ; This entry point is used by the routines at #R$862e, #R$8672, #R$871a, ; #R$87a6, #R$8988, #R$8a2f, #R$8a80 and #R$8aff. @label=monster_move *$84cd ld a,(ix+$03) ; xpos $84d0 add a,(ix+$08) ; add x velocity $84d3 ld c,a ; save new xpos $84d4 sub $58 ; subtract room centre x $84d6 jr c,$84e8 ; jump if negative (left half) $84d8 cp e ; within room width? $84d9 jr c,$84f8 ; jump if so $84db res 0,(ix+$06) ; set direction to left $84df ld (ix+$08),$fe ; bounce left away from wall $84e3 ld c,(ix+$03) ; current xpos $84e6 jr $84f8 ; @label=loc_84E8 *$84e8 neg ; abs $84ea cp e ; within room width? $84eb jr c,$84f8 ; jump if so $84ed set 0,(ix+$06) ; set direction to right $84f1 ld c,(ix+$03) ; current xpos $84f4 ld (ix+$08),$02 ; bounce right away from wall @label=loc_84F8 *$84f8 ld a,(ix+$04) ; ypos $84fb add a,(ix+$09) ; add y velocity $84fe ld b,a ; save new ypos $84ff sub $68 ; subtract room centre y $8501 jr c,$8513 ; jump if negative (top half) $8503 cp d ; within screen height? $8504 jr c,$8523 ; jump if so $8506 res 1,(ix+$06) ; set direction to up $850a ld (ix+$09),$fe ; bounce up away from wall $850e ld b,(ix+$04) ; current ypos $8511 jr $8523 ; @label=loc_8513 *$8513 neg ; abs $8515 cp d ; within screen height? $8516 jr c,$8523 ; jump if so $8518 set 1,(ix+$06) ; set direction to down $851c ld b,(ix+$04) ; $851f ld (ix+$09),$02 ; bounce down away from wall @label=loc_8523 *$8523 ld (ix+$03),c ; set new xpos $8526 ld (ix+$04),b ; set new ypos $8529 ld a,($ea91) ; $852c cp (ix+$01) ; in player room? $852f ret nz ; return if not $8530 ld a,(ix+$00) ; entity graphic $8533 and $fc ; strip 2 animation bits $8535 cp $9c ; is it hunchback? $8537 jr z,$8547 ; jump if so $8539 and $f0 ; $853b cp $70 ; is it mummy/frankenstein/devil/dracula? $853d jr z,$8547 ; jump if so $853f ld a,($ea90) ; $8542 cp $31 ; is player active? $8544 jp nc,$875f ; jump if not (pop non-special creature types) @label=keep_special *$8547 jp $8e8e ; @label=loc_854A *$854a ld a,(ix+$08) ; $854d cp $fe ; at left speed limit? $854f jp z,$84ae ; jump if so $8552 dec (ix+$08) ; faster left $8555 jp $84ae ; @label=loc_8558 *$8558 ld a,(ix+$09) ; $855b cp $fe ; at up speed limit? $855d jp z,$84bf ; jump if so $8560 dec (ix+$09) ; faster up $8563 jp $84bf ; ; check if weapon has hit entity ; ; Used by the routines at #R$8301, #R$845f, #R$862e, #R$8672, #R$871a, #R$87a6, ; #R$8a2f and #R$8a80. @label=chk_weapon_hit c$8566 ld a,($ea99) ; weapon room $8569 ld e,$00 ; no weapon hit detected $856b cp (ix+$01) ; in entity room? $856e ret nz ; return if not $856f ld a,($ea98) ; $8572 and a ; is weapon active? $8573 ret z ; return if not $8574 ld a,($ea9b) ; weapon xpos $8577 sub (ix+$03) ; subtract entity x $857a jp p,$857f ; jump if postive $857d neg ; abs @label=loc_857F *$857f cp $0c ; within weapon x size? $8581 ret nc ; return if not $8582 ld a,($ea9c) ; weapon ypos $8585 sub (ix+$04) ; subtract entity y $8588 jp p,$858d ; jump if positive $858b neg ; abs @label=loc_858D *$858d cp $0c ; within weapon y size? $858f ret nc ; return if not $8590 ld a,$01 ; 1 frame before removal $8592 ld ($ea9a),a ; set weapon frames left $8595 ld e,$01 ; weapon hit detected $8597 ret ; ; random coord less than interior size B ; ; Used by the routine at #R$83ea. @label=rnd_coord c$8598 ld a,b ; $8599 sub $08 ; $859b ld b,a ; $859c ld a,r ; $859e inc hl ; @label=loc_859F *$859f cp b ; $85a0 jr c,$85a5 ; $85a2 sub b ; $85a3 jr $859f ; @label=loc_85A5 *$85a5 ld c,a ; $85a6 ld a,r ; $85a8 bit 1,a ; $85aa ld a,$60 ; $85ac jr z,$85b0 ; $85ae add a,c ; $85af ret ; @label=loc_85B0 *$85b0 sub c ; $85b1 ret ; ; check if enemy is touching player (returns E=1) ; ; Used by the routines at #R$8301, #R$845f, #R$862e, #R$8672, #R$871a, #R$87a6, ; #R$8862, #R$8906, #R$8988, #R$89ed, #R$8a2f, #R$8a80 and #R$8aff. @label=enemy_touching c$85b2 ld a,($ea91) ; $85b5 ld e,$00 ; is not touching player $85b7 cp (ix+$01) ; in player room? $85ba ret nz ; return if not $85bb ld a,($ea90) ; $85be and a ; does player exist? $85bf ret z ; return if not $85c0 cp $31 ; active player? $85c2 ret nc ; return if not $85c3 ld a,($ea93) ; $85c6 sub (ix+$03) ; right of player? $85c9 jp p,$85ce ; jump if not $85cc neg ; abs @label=loc_85CE *$85ce cp $0c ; too far from player? $85d0 ret nc ; return if so $85d1 ld a,($ea94) ; $85d4 sub (ix+$04) ; below player? $85d7 jp p,$85dc ; jump if not $85da neg ; abs @label=loc_85DC *$85dc cp $0c ; too far from player? $85de ret nc ; return if so $85df ld a,$01 ; $85e1 ld ($ea92),a ; $85e4 call $a3e5 ; play monster touched sound $85e7 ld e,$01 ; is touching player $85e9 ret ; ; This entry point is used by the routines at #R$8301, #R$845f, #R$862e, ; #R$8672, #R$871a, #R$87a6, #R$8a2f and #R$8a80. @label=hurt_and_pop *$85ea call $8ed7 ; reduce health by 32 $85ed jp $875f ; ; This entry point is used by the routines at #R$8301, #R$845f, #R$85f7, ; #R$862e, #R$8672, #R$871a, #R$8787, #R$87a6, #R$8a2f and #R$8a80. @label=delay_remove *$85f0 dec (ix+$0f) ; auto-remove timer for monsters $85f3 ret nz ; return if still alive $85f4 jp $827e ; ; monster appearance sparkle handler @label=h_sparkles c$85f7 call $9ffb ; save entity position for undraw $85fa ld a,($ea91) ; $85fd cp (ix+$01) ; in player room? $8600 jp nz,$85f0 ; jump if not $8603 ld hl,$5e25 ; number of creatures processed this frame $8606 inc (hl) ; $8607 dec (ix+$0e) ; sparkled long enough? $860a jr z,$8625 ; jump if so $860c ld a,(ix+$0e) ; $860f and $03 ; 4 animation frames $8611 add a,$58 ; base sparkle graphic $8613 ld (ix+$00),a ; $8616 ld (ix+$0f),$80 ; live for 128 frames outside player room $861a ld a,($ea90) ; $861d cp $31 ; player active? $861f jp nc,$875f ; jump if not $8622 jp $8e8e ; @label=to_creature *$8625 ld a,(ix+$02) ; creature graphic $8628 ld (ix+$00),a ; convert sparkle to creature $862b jp $8e8e ; ; small ghost handler @label=h_ghostlet c$862e call $9ffb ; save entity position for undraw $8631 ld a,($ea91) ; $8634 cp (ix+$01) ; in player room? $8637 jp nz,$85f0 ; jump if not $863a ld hl,$5e25 ; number of creatures processed this frame $863d inc (hl) ; $863e call $85b2 ; check if enemy is touching player (returns E=1) $8641 dec e ; touching player? $8642 jp z,$85ea ; jump if so $8645 call $8566 ; check if weapon has hit entity $8648 dec e ; hit by weapon? $8649 jp z,$875f ; jump if so $864c ld (ix+$05),$45 ; bright cyan $8650 inc (ix+$07) ; increment movement counter $8653 call z,$86f2 ; change movement every 256 frames $8656 ld a,(ix+$07) ; $8659 rra ; $865a rra ; 1/4 animation rate $865b and $01 ; 2 animation frames $865d ld c,a ; $865e ld a,(ix+$00) ; $8661 and $fe ; strip animation bit $8663 add a,c ; $8664 ld (ix+$00),a ; set animation graphic $8667 ld de,($5e1d) ; $866b ld (ix+$0f),$00 ; live for 256 frames in different room $866f jp $84cd ; common monster movement ; spikey ghost handler @label=h_spikey_ghost c$8672 call $9ffb ; save entity position for undraw $8675 ld a,($ea91) ; $8678 cp (ix+$01) ; in player room? $867b jp nz,$85f0 ; jump if not $867e ld hl,$5e25 ; number of creatures processed this frame $8681 inc (hl) ; $8682 ld (ix+$0f),$00 ; live for 256 frames in different room $8686 call $85b2 ; check if enemy is touching player (returns E=1) $8689 dec e ; touching player? $868a jp z,$85ea ; jump if so $868d call $8566 ; check if weapon has hit entity $8690 dec e ; hit by weapon? $8691 jp z,$875f ; jump if so $8694 ld a,(ix+$0a) ; vertical velocity $8697 rra ; 1/2 animation rate $8698 and $01 ; 2 animation frames $869a ld c,a ; $869b ld a,(ix+$00) ; $869e and $fe ; strip animation bit $86a0 add a,c ; $86a1 ld (ix+$00),a ; set graphic $86a4 ld de,($5e1d) ; $86a8 inc (ix+$0a) ; bounce speed $86ab ld a,(ix+$0a) ; $86ae cp $07 ; max bounce speed? $86b0 jr nz,$86b9 ; jump if not $86b2 call $86f2 ; random vertical offset $86b5 ld (ix+$0a),$f9 ; bounce back up @label=loc_86B9 *$86b9 sra a ; 1/2 bounce speed $86bb add a,(ix+$04) ; add to y position $86be ld c,a ; save result $86bf sub $68 ; subtract vertical centre $86c1 jp p,$86e1 ; jump if positive (lower screen half) $86c4 neg ; abs $86c6 cp d ; out of screen top? $86c7 jr c,$86db ; jump if not $86c9 ld (ix+$09),$02 ; kick down away from wall $86cd set 1,(ix+$06) ; $86d1 bit 7,(ix+$0a) ; $86d5 jr z,$86db ; $86d7 ld (ix+$0a),$00 ; @label=loc_86DB *$86db ld (ix+$04),c ; set y position $86de jp $84cd ; common monster movement @label=loc_86E1 *$86e1 cp d ; out of screen bottom? $86e2 jr c,$86db ; jump if not $86e4 res 1,(ix+$06) ; $86e8 ld (ix+$09),$fe ; kick up away from wall $86ec ld (ix+$0a),$f9 ; bounce back up at -7 pixels/frame $86f0 jr $86db ; ; set random movement ; ; Used by the routines at #R$83ea, #R$862e, #R$8672, #R$871a, #R$8a2f and ; #R$8a80. @label=rnd_movement c$86f2 ld a,r ; $86f4 bit 0,a ; use x speed of 1? $86f6 jr z,$870e ; jump if so $86f8 and $04 ; $86fa sub $02 ; y velocity is +/- 2 @label=loc_86FC *$86fc ld (ix+$09),a ; set y something? $86ff ld a,r ; $8701 rra ; $8702 bit 0,a ; use y speed of 1? $8704 jr z,$8714 ; jump if so $8706 and $04 ; $8708 sub $02 ; x velocity is +/- 2 @label=loc_870A *$870a ld (ix+$08),a ; set x something? $870d ret ; @label=rnd_move_y1 *$870e and $02 ; $8710 sub $01 ; y velocity is +/- 1 $8712 jr $86fc ; @label=rnd_move_x1 *$8714 and $02 ; $8716 sub $01 ; x velocity is +/- 1 $8718 jr $870a ; ; Routine at 871a @label=h_blob c$871a call $9ffb ; save entity position for undraw $871d ld a,($ea91) ; $8720 cp (ix+$01) ; $8723 jp nz,$85f0 ; $8726 ld hl,$5e25 ; number of creatures processed this frame $8729 inc (hl) ; $872a ld (ix+$0f),$00 ; live for 256 frames in different room $872e call $85b2 ; check if enemy is touching player (returns E=1) $8731 dec e ; touching player? $8732 jp z,$85ea ; jump if so $8735 call $8566 ; check if weapon has hit entity $8738 dec e ; hit by weapon? $8739 jp z,$875f ; jump if so $873c ld de,($5e1d) ; $8740 dec (ix+$0d) ; $8743 jr nz,$874c ; $8745 ld (ix+$0d),$11 ; $8749 call $86f2 ; set random movement @label=loc_874C *$874c ld a,(ix+$0d) ; $874f rra ; $8750 and $01 ; 2 animation frames $8752 ld c,a ; $8753 ld a,(ix+$00) ; $8756 and $fe ; clear b0 $8758 add a,c ; $8759 ld (ix+$00),a ; $875c jp $84cd ; common monster movement ; This entry point is used by the routines at #R$8301, #R$845f, #R$85b2, ; #R$85f7, #R$862e, #R$8672, #R$87a6, #R$8988, #R$8a2f and #R$8a80. @label=pop_creature *$875f ld a,(ix+$05) ; save creature attr $8762 push af ; $8763 ld a,($5e1a) ; $8766 ld (ix+$05),a ; undraw to room attr $8769 call $9f56 ; $876c call $a01a ; set attrs covering previous and new position $876f pop af ; $8770 ld (ix+$05),a ; $8773 ld (ix+$00),$6c ; base pop graphic $8777 ld (ix+$0e),$10 ; 16 animation frames (4 loops of 4) $877b ld bc,$0155 ; $877e call $a19c ; add 155 score $8781 call $9f4a ; draw entity graphic (no attrs) $8784 jp $a01a ; set attrs covering previous and new position ; creature death pop animation handler @label=h_pop c$8787 call $9ffb ; save entity position for undraw $878a ld a,($ea91) ; $878d cp (ix+$01) ; in player room? $8790 jp nz,$85f0 ; jump if not $8793 dec (ix+$0e) ; final animation frame? $8796 jp z,$826f ; jump if so $8799 ld a,(ix+$0e) ; $879c and $03 ; 4 animation frames $879e add a,$6c ; base pop graphic $87a0 ld (ix+$00),a ; set animation graphic $87a3 jp $8e8e ; ; Ghoul handler @label=h_ghoul c$87a6 call $9ffb ; save entity position for undraw $87a9 ld a,($ea91) ; $87ac cp (ix+$01) ; in player room? $87af jp nz,$85f0 ; jump if not $87b2 ld hl,$5e25 ; number of creatures processed this frame $87b5 inc (hl) ; $87b6 call $8566 ; check if weapon has hit entity $87b9 dec e ; hit by weapon? $87ba jp z,$875f ; jump if so $87bd call $85b2 ; check if enemy is touching player (returns E=1) $87c0 dec e ; touching player? $87c1 jp z,$85ea ; jump if so $87c4 ld de,($5e1d) ; $87c8 ld (ix+$0f),$00 ; live for 256 frames in different room $87cc ld (ix+$05),$46 ; bright yellow $87d0 ld a,(ix+$07) ; $87d3 and $07 ; 3-bit animation counter 0? $87d5 jr nz,$87de ; jump if not $87d7 ld a,r ; $87d9 and $03 ; 2-bit random direction $87db ld (ix+$06),a ; set directions @label=loc_87DE *$87de bit 0,(ix+$07) ; alternating behaviour &0eac frame $87e2 jr nz,$8804 ; jump if odd frame (continue movement) $87e4 bit 0,(ix+$06) ; moving left? $87e8 jr z,$8815 ; jump if so $87ea ld a,(ix+$08) ; $87ed cp $02 ; at right speed limit? $87ef jr z,$87f4 ; jump if so $87f1 inc (ix+$08) ; faster right @label=loc_87F4 *$87f4 bit 1,(ix+$06) ; moving up? $87f8 jr z,$8821 ; jump if so $87fa ld a,(ix+$09) ; $87fd cp $02 ; at down speed limit? $87ff jr z,$8804 ; jump if so $8801 inc (ix+$09) ; faster down @label=loc_8804 *$8804 inc (ix+$07) ; increase animation counter $8807 ld a,(ix+$07) ; $880a and $01 ; 2 animation frames $880c xor (ix+$00) ; gives 1/2 animation rate $880f ld (ix+$00),a ; $8812 jp $84cd ; common monster movement @label=loc_8815 *$8815 ld a,(ix+$08) ; $8818 cp $fe ; at left speed limit? $881a jr z,$87f4 ; jump if so $881c dec (ix+$08) ; faster left $881f jr $87f4 ; @label=loc_8821 *$8821 ld a,(ix+$09) ; $8824 cp $fe ; at up speed limit? $8826 jr z,$8804 ; jump if so $8828 dec (ix+$09) ; faster up $882b jr $8804 ; ; set movement towards coords in DE ; ; Used by the routines at #R$8862, #R$8906, #R$8988, #R$89ed and #R$8aff. @label=attract_de c$882d ld c,$00 ; $882f ld a,d ; $8830 cp (ix+$04) ; ypos match? $8833 jr z,$8848 ; jump if so $8835 jr nc,$8850 ; jump if greater (move down) $8837 ld (ix+$09),$ff ; move up @label=loc_883B *$883b ld a,e ; $883c cp (ix+$03) ; same xpos? $883f jr z,$8856 ; jump if so $8841 jr nc,$885d ; jump if greater (move right) $8843 ld (ix+$08),$ff ; move left $8847 ret ; @label=loc_8848 *$8848 ld (ix+$09),$00 ; no y movement $884c set 0,c ; flag same ypos $884e jr $883b ; @label=loc_8850 *$8850 ld (ix+$09),$01 ; move down $8854 jr $883b ; @label=loc_8856 *$8856 ld (ix+$08),$00 ; no x movement $885a set 1,c ; flag same xpos $885c ret ; @label=loc_885D *$885d ld (ix+$08),$01 ; move right $8861 ret ; ; Mummy handler @label=h_mummy c$8862 call $9ffb ; save entity position for undraw $8865 call $85b2 ; check if enemy is touching player (returns E=1) $8868 dec e ; touching player? $8869 call z,$8a1e ; call if so (reduce health by 8) $886c ld hl,$eae0 ; $886f ld a,(hl) ; $8870 and a ; does leaf exist? $8871 jr z,$8881 ; jump if not $8873 inc hl ; $8874 ld a,(hl) ; $8875 cp (ix+$01) ; is leaf in mummy room? $8878 jr nz,$8881 ; jump if not $887a inc hl ; $887b inc hl ; $887c ld e,(hl) ; leaf x $887d inc hl ; $887e ld d,(hl) ; leaf y $887f jr $88d7 ; leaf attracts mummy @label=loc_8881 *$8881 bit 7,(ix+$06) ; is mummy angry with player? $8885 jr nz,$88fd ; jump if so $8887 ld hl,$eac8 ; $888a ld a,(hl) ; $888b and a ; does red key exist? $888c jr z,$88f9 ; jump if not $888e inc hl ; $888f ld a,(hl) ; $8890 cp (ix+$01) ; is red key in mummy room? $8893 jr nz,$88f9 ; jump if not $8895 ld d,(ix+$0c) ; current target x $8898 ld e,(ix+$0b) ; current target y $889b call $882d ; set movement towards coords in DE $889e ld a,c ; $889f cp $03 ; reached target x+y position? $88a1 jr z,$88b5 ; jump if so @label=loc_88A3 *$88a3 ld a,($5e12) ; $88a6 rra ; $88a7 rra ; $88a8 and $03 ; 4 animation frames $88aa add a,$70 ; base mummy graphic $88ac ld (ix+$00),a ; set animation graphic $88af ld de,$3838 ; allowed to roam 56x56 from room centre $88b2 jp $89bb ; @label=loc_88B5 *$88b5 bit 6,(ix+$06) ; moving up/left? $88b9 jr z,$88c9 ; jump if so $88bb ld (ix+$0b),$8c ; new target x $88bf ld (ix+$0c),$68 ; new target y (below red key) $88c3 res 6,(ix+$06) ; move up-left $88c7 jr $88a3 ; @label=loc_88C9 *$88c9 ld (ix+$0b),$68 ; new target x (left of red key) $88cd ld (ix+$0c),$38 ; new target y $88d1 set 6,(ix+$06) ; move down-right $88d5 jr $88a3 ; @label=loc_88D7 *$88d7 call $882d ; set movement towards coords in DE $88da ld a,c ; $88db cp $03 ; has mummy reached leaf position? $88dd jr nz,$88a3 ; jump if not $88df push ix ; $88e1 ld ix,$eae0 ; $88e5 ld a,($ea91) ; $88e8 cp (ix+$01) ; if leaf in player room? $88eb jr nz,$88f0 ; $88ed call $9f4a ; undraw leaf @label=loc_88F0 *$88f0 pop ix ; $88f2 ld a,$6b ; room 6B $88f4 ld ($eae1),a ; move leaf to room 6B $88f7 jr $88b5 ; @label=loc_88F9 *$88f9 set 7,(ix+$06) ; mummy now angry with player @label=loc_88FD *$88fd ld de,($ea93) ; $8901 call $882d ; set movement towards coords in DE $8904 jr $88a3 ; ; Dracula handler @label=h_dracula c$8906 call $9ffb ; save entity position for undraw $8909 call $85b2 ; check if enemy is touching player (returns E=1) $890c dec e ; is touching player? $890d call z,$8a1e ; call if so (reduce health by 8) $8910 ld de,$468a ; yellow crucafix object $8913 call $9273 ; is player carrying crucafix? $8916 jr nz,$8931 ; jump if not $8918 ld de,($ea93) ; current player position $891c call $882d ; set movement towards coords in DE $891f ld a,(ix+$08) ; x velocity $8922 neg ; invert (run away!) $8924 ld (ix+$08),a ; $8927 ld a,(ix+$09) ; y velocity $892a neg ; invert (run away!) $892c ld (ix+$09),a ; $892f jr $8940 ; @label=loc_8931 *$8931 ld a,($ea91) ; $8934 cp (ix+$01) ; is Dracula in the player room? $8937 jr nz,$8952 ; jump if not $8939 ld de,($ea93) ; $893d call $882d ; set movement towards coords in DE @label=loc_8940 *$8940 ld a,($5e12) ; $8943 rra ; $8944 rra ; 1/4 animation rate $8945 and $03 ; 4 animation frames $8947 add a,$7c ; base Dracula graphic $8949 ld (ix+$00),a ; set animation graphic $894c ld de,$3434 ; allowed to roam 52x52 from room centre $894f jp $89bb ; @label=loc_8952 *$8952 ld (ix+$0b),$68 ; new target x (centre) $8956 ld (ix+$0c),$68 ; new target y (centre) $895a call $882d ; set movement towards coords in DE $895d ld a,($5c78) ; $8960 and a ; frame 0 of 50? $8961 jp nz,$8940 ; jump if not $8964 ld a,r ; $8966 and $7f ; random 7-bit room number $8968 ld c,a ; $8969 call $897d ; get style of room in A, returns style (0-B) $896c cp $03 ; non-square room? $896e jp nc,$8940 ; jump if so (ignore) $8971 ld a,($ea91) ; $8974 cp c ; current player room? $8975 jp z,$8940 ; jump if so (ignore) $8978 ld (ix+$01),c ; move Dracula to new room $897b jr $8940 ; ; get style of room in A, returns style (0-B) ; ; Used by the routine at #R$8906. @label=get_room_style c$897d ld l,a ; $897e ld h,$00 ; $8980 ld de,$a854 ; room attr colour and style (0-B) $8983 add hl,hl ; $8984 add hl,de ; $8985 inc hl ; $8986 ld a,(hl) ; first byte is room style (0-C) $8987 ret ; ; Frankenstein handler @label=h_frankenstein c$8988 call $9ffb ; save entity position for undraw $898b call $85b2 ; check if enemy is touching player (returns E=1) $898e dec e ; touching player? $898f jr nz,$89a5 ; jump if not $8991 ld de,$458b ; cyan spanner $8994 call $9273 ; carrying spanner? $8997 jr nz,$89a2 ; jump if not $8999 ld bc,$1000 ; $899c call $a19c ; add 1000 points $899f jp $875f ; @label=loc_89A2 *$89a2 call $8a1e ; reduce health by 8 @label=loc_89A5 *$89a5 ld de,($ea93) ; $89a9 call $882d ; set movement towards coords in DE $89ac ld a,($5e12) ; $89af rra ; $89b0 rra ; $89b1 and $03 ; $89b3 add a,$74 ; base frankenstein graphic $89b5 ld (ix+$00),a ; $89b8 ld de,$3434 ; 52x52 centre prison area if player is dead ; This entry point is used by the routines at #R$8862, #R$8906 and #R$89ed. @label=chk_move_away *$89bb ld a,($ea90) ; $89be cp $31 ; is player active? $89c0 jp c,$84cd ; jump if so $89c3 ld de,($ea93) ; $89c7 call $882d ; set movement towards coords in DE $89ca ld a,(ix+$08) ; x movement $89cd neg ; away from player $89cf ld (ix+$08),a ; $89d2 ld c,a ; $89d3 ld a,(ix+$09) ; y movement $89d6 neg ; away from player $89d8 ld (ix+$09),a ; $89db ld de,$3434 ; allowed to roam 52x52 from room centre $89de and c ; should be OR C maybe? (either movement) $89df jp nz,$84cd ; common monster movement $89e2 ld (ix+$08),$01 ; move right $89e6 ld (ix+$09),$01 ; move up $89ea jp $84cd ; common monster movement ; Devil handler @label=h_devil c$89ed call $9ffb ; save entity position for undraw $89f0 call $85b2 ; check if enemy is touching player (returns E=1) $89f3 dec e ; touching player? $89f4 call z,$8a1e ; call if so (reduce health by 8) $89f7 ld de,($ea93) ; $89fb call $882d ; set movement towards coords in DE $89fe ld a,(ix+$00) ; $8a01 and $fc ; strip animation frame bits $8a03 ld c,a ; $8a04 ld a,($5e12) ; $8a07 rra ; $8a08 rra ; 1/4 animation rate $8a09 and $03 ; 4 animation frames $8a0b add a,c ; $8a0c ld (ix+$00),a ; set animation graphic $8a0f ld de,$3434 ; allowed to roam 52x52 from room centre $8a12 jp $89bb ; ; reduce health by 16 ; ; Used by the routine at #R$8aff. @label=damage_16 c$8a15 ld a,($5e28) ; $8a18 sub $10 ; $8a1a jr c,$8a2b ; $8a1c jr $8a25 ; ; reduce health by 8 ; ; Used by the routines at #R$8862, #R$8906, #R$8988 and #R$89ed. @label=damage_8 c$8a1e ld a,($5e28) ; $8a21 sub $08 ; $8a23 jr c,$8a2b ; ; This entry point is used by the routine at #R$8a15. @label=loc_8A25 *$8a25 ld ($5e28),a ; $8a28 jp $8b8a ; draw chicken energy bar ; This entry point is used by the routine at #R$8a15. @label=player_dead_pop *$8a2b pop hl ; don't return to entity handler $8a2c jp $8ea0 ; ; witch handler @label=h_witch c$8a2f call $9ffb ; save entity position for undraw $8a32 ld a,($ea91) ; $8a35 cp (ix+$01) ; in player room? $8a38 jp nz,$85f0 ; jump if not $8a3b ld hl,$5e25 ; number of creatures processed this frame $8a3e inc (hl) ; $8a3f call $85b2 ; check if enemy is touching player (returns E=1) $8a42 dec e ; touching player? $8a43 jp z,$85ea ; jump if so $8a46 call $8566 ; check if weapon has hit entity $8a49 dec e ; hit by weapon? $8a4a jp z,$875f ; jump if so $8a4d dec (ix+$0d) ; movement timer expired? $8a50 jr nz,$8a5d ; jump if not $8a52 call $86f2 ; set random movement $8a55 sra (ix+$09) ; halve y velocity (to 1 or 0) $8a59 ld (ix+$0d),$10 ; 16 frames before changing movement @label=loc_8A5D *$8a5d ld a,(ix+$00) ; $8a60 and $fc ; strip animation bits $8a62 bit 7,(ix+$08) ; moving left? $8a66 jr nz,$8a6a ; jump if so $8a68 add a,$02 ; offset to right-facing graphics @label=loc_8A6A *$8a6a ld c,a ; $8a6b ld a,(ix+$0d) ; $8a6e rra ; 1/2 animation rate $8a6f and $01 ; 2 animation frames $8a71 add a,c ; $8a72 ld (ix+$00),a ; set animation graphic $8a75 ld de,($5e1d) ; $8a79 ld (ix+$05),$43 ; bright magenta $8a7d jp $84cd ; common monster movement ; monk and large bat handler @label=h_monk_bat c$8a80 call $9ffb ; save entity position for undraw $8a83 ld a,($ea91) ; $8a86 cp (ix+$01) ; in player room? $8a89 jp nz,$85f0 ; jump if not $8a8c ld hl,$5e25 ; number of creatures processed this frame $8a8f inc (hl) ; $8a90 call $85b2 ; check if enemy is touching player (returns E=1) $8a93 dec e ; touching player? $8a94 jp z,$85ea ; jump if so $8a97 call $8566 ; check if weapon has hit entity $8a9a dec e ; hit by weapon? $8a9b jp z,$875f ; jump if so (pop) $8a9e dec (ix+$0d) ; movement timer expired? $8aa1 jr nz,$8ab8 ; jump if not $8aa3 call $86f2 ; set random movement $8aa6 ld a,($5c78) ; $8aa9 and $04 ; $8aab sub $02 ; +/- 2 $8aad ld (ix+$08),a ; set x velocity $8ab0 sra (ix+$09) ; halve y velocity (to 1 or 0) $8ab4 ld (ix+$0d),$20 ; 32 frames before changing behaviour @label=loc_8AB8 *$8ab8 ld a,(ix+$00) ; $8abb and $fc ; strip animation bits $8abd bit 7,(ix+$08) ; moving left? $8ac1 jr nz,$8ac5 ; jump if so $8ac3 add a,$02 ; offset to right-facing graphics @label=loc_8AC5 *$8ac5 ld c,a ; $8ac6 ld a,(ix+$0d) ; $8ac9 rra ; 1/2 animation rate $8aca and $01 ; 2 animation frames $8acc add a,c ; $8acd ld (ix+$00),a ; set animation graphic $8ad0 ld de,($5e1d) ; $8ad4 ld (ix+$05),$42 ; bright red $8ad8 jp $84cd ; common monster movement ; check for hunchback items on the floor (return C=1) ; ; Used by the routine at #R$8aff. @label=chk_hunch_loot c$8adb ld hl,$eb18 ; first of 8 items hunchback reacts to $8ade ld de,$0008 ; 8 bytes per entry $8ae1 ld b,$08 ; 8 entries @label=loc_8AE3 *$8ae3 push hl ; $8ae4 ld a,(hl) ; $8ae5 and a ; unused slot? $8ae6 jr z,$8af8 ; jump if so $8ae8 inc hl ; $8ae9 ld a,(hl) ; room number $8aea cp (ix+$01) ; in hunchback room? $8aed jr nz,$8af8 ; jump if not $8aef pop de ; $8af0 inc hl ; $8af1 inc hl ; $8af2 ld e,(hl) ; item x $8af3 inc hl ; $8af4 ld d,(hl) ; item y $8af5 ld c,$01 ; entry found $8af7 ret ; @label=loc_8AF8 *$8af8 pop hl ; $8af9 add hl,de ; advance to next entry $8afa djnz $8ae3 ; $8afc ld c,$00 ; not found $8afe ret ; ; Hunchback handler @label=h_hunchback c$8aff call $9ffb ; save entity position for undraw $8b02 call $85b2 ; check if enemy is touching player (returns E=1) $8b05 dec e ; touching player? $8b06 call z,$8a15 ; call if so (reduce health by 16) $8b09 xor a ; $8b0a ld (ix+$09),a ; no x movement $8b0d ld (ix+$08),a ; no y movement $8b10 call $8adb ; check for hunchback items on the floor (return C=1) $8b13 dec c ; hunchback item in room? $8b14 jp nz,$8b59 ; jump if not $8b17 call $882d ; hunchback attracted to item $8b1a ld a,c ; $8b1b cp $03 ; hunchback reached item? $8b1d jr nz,$8b45 ; jump if not $8b1f call $8adb ; check for hunchback items on the floor (return C=1) $8b22 ld de,$0004 ; HL is 4 bytes into entity $8b25 and a ; $8b26 sbc hl,de ; start of item entity $8b28 push ix ; $8b2a ld ix,$0000 ; $8b2e ex de,hl ; $8b2f add ix,de ; item entity now in IX $8b31 ld a,($ea91) ; $8b34 cp (ix+$01) ; in player room? $8b37 jr nz,$8b3c ; jump if not $8b39 call $9f4a ; undraw item @label=loc_8B3C *$8b3c ld (ix+$00),$00 ; remove item $8b40 pop ix ; $8b42 jp $8b59 ; @label=loc_8B45 *$8b45 ld a,(ix+$00) ; $8b48 and $fc ; strip animation bits $8b4a ld c,a ; $8b4b ld a,($5e12) ; $8b4e rra ; $8b4f rra ; 1/4 animation rate $8b50 and $03 ; 4 animation frames $8b52 add a,c ; $8b53 ld (ix+$00),a ; set animation graphic $8b56 ld de,$3c3c ; @label=loc_8B59 *$8b59 ld a,($ea90) ; $8b5c cp $31 ; player active? $8b5e jp c,$84cd ; jump if so $8b61 ld de,$3a58 ; coords below top door $8b64 call $882d ; move towards door $8b67 jp $84cd ; common monster movement ; Data block at 8b6a @label=creature_default b$8b6a defb $58,$00,$5c,$68,$68,$44,$00,$00 $8b72 defb $02,$02,$00,$00,$00,$10,$20,$00 ; Data block at 8b7a @label=creatures b$8b7a defb $5c ; spider $8b7b defb $5e ; spikey $8b7c defb $98 ; bat $8b7d defb $98 ; bat $8b7e defb $90 ; witch $8b7f defb $90 ; witch $8b80 defb $94 ; monk $8b81 defb $94 ; monk $8b82 defb $5c ; spider $8b83 defb $5e ; spikey $8b84 defb $60 ; blob $8b85 defb $62 ; ghoul $8b86 defb $4c ; pumpkin $8b87 defb $4e ; ghostlet $8b88 defb $68 ; ghost $8b89 defb $6a ; batlet ; draw chicken energy bar ; ; Used by the routines at #R$8a1e, #R$8c63, #R$8e26, #R$8ed7, #R$9443 and ; #R$988b. @label=draw_chicken c$8b8a ld a,($5e28) ; $8b8d srl a ; $8b8f srl a ; $8b91 srl a ; $8b93 ld c,a ; $8b94 ld a,($5e29) ; last drawn chicken level $8b97 srl a ; $8b99 srl a ; $8b9b srl a ; $8b9d ld b,a ; $8b9e cp c ; $8b9f ret z ; $8ba0 ld a,($c543) ; full chicken height $8ba3 ld e,a ; $8ba4 ld a,($c48d) ; empty chicken height $8ba7 ld d,a ; $8ba8 push ix ; $8baa ld ix,$8c2d ; $8bae push de ; $8baf jr c,$8c12 ; $8bb1 ld a,($c48c) ; $8bb4 ld e,a ; $8bb5 ld d,$00 ; $8bb7 ld a,c ; $8bb8 push bc ; $8bb9 call $9aad ; HL = DE * A $8bbc pop bc ; $8bbd ld de,($a626) ; $8bc1 push de ; $8bc2 add hl,de ; $8bc3 ld ($a626),hl ; $8bc6 ld e,(hl) ; $8bc7 inc hl ; $8bc8 ld d,(hl) ; $8bc9 ld a,($c48d) ; $8bcc sub c ; $8bcd jr z,$8bfc ; $8bcf push de ; $8bd0 ld (hl),a ; $8bd1 ld a,($c48c) ; $8bd4 dec hl ; $8bd5 ld (hl),a ; $8bd6 push hl ; $8bd7 ld a,$14 ; empty chicken graphic $8bd9 ld (ix+$00),a ; $8bdc ld hl,$77c8 ; chicken draw coords $8bdf ld a,h ; $8be0 sub c ; $8be1 ld h,a ; $8be2 ld ($8c30),hl ; coords $8be5 call $9213 ; $8be8 ld hl,($8c30) ; $8beb call $9ba2 ; convert coords in HL to display address in HL $8bee ld a,($c48c) ; $8bf1 ld b,a ; @label=loc_8BF2 *$8bf2 ld (hl),$00 ; $8bf4 inc l ; $8bf5 djnz $8bf2 ; $8bf7 pop hl ; $8bf8 pop de ; $8bf9 ld (hl),e ; $8bfa inc hl ; $8bfb ld (hl),d ; @label=loc_8BFC *$8bfc pop hl ; $8bfd ld ($a626),hl ; @label=loc_8C00 *$8c00 pop de ; $8c01 ld a,e ; $8c02 ld ($c543),a ; $8c05 ld a,d ; $8c06 ld ($c48d),a ; $8c09 pop ix ; $8c0b ld a,($5e28) ; $8c0e ld ($5e29),a ; last drawn chicken level $8c11 ret ; @label=loc_8C12 *$8c12 ld a,c ; $8c13 ld ($c543),a ; $8c16 ld a,$13 ; full chicken graphic $8c18 ld (ix+$00),a ; $8c1b ld hl,$77c8 ; $8c1e ld ($8c30),hl ; coords $8c21 call $9213 ; $8c24 ld b,$06 ; @label=loc_8C26 *$8c26 ld (hl),$00 ; $8c28 inc l ; $8c29 djnz $8c26 ; $8c2b jr $8c00 ; ; Data block at 8c2d @label=chicken_entity b$8c2d defb $00,$00,$00,$00,$00,$00,$00,$00 ; Routine at 8c35 ; ; Used by the routine at #R$8e26. @label=game_over c$8c35 call $8093 ; clear screen and attrs of play area $8c38 ld hl,$be4c ; $8c3b ld ($5e01),hl ; $8c3e ld hl,$3040 ; game over at 64,48 $8c41 ld de,$8c59 ; $8c44 call $a1f3 ; show a line of text, first byte is attr $8c47 call $9641 ; show game statistics ; This entry point is used by the routine at #R$96c9. @label=loc_8C4A *$8c4a ld b,$14 ; 20 loops of 65536 delay $8c4c ld hl,$0000 ; @label=gameover_delay *$8c4f dec hl ; $8c50 ld a,h ; $8c51 or l ; $8c52 jr nz,$8c4f ; $8c54 djnz $8c4f ; $8c56 jp $7c29 ; ; Data block at 8c59 @label=gameover_msg b$8c59 defb $47 ; bright white $8c5a defm "GAME OVE" $8c62 defb $d2 ; food item handler @label=h_food c$8c63 call $9ffb ; save entity position for undraw $8c66 call $90fb ; touching food? $8c69 jr c,$8c6e ; jump if so $8c6b jp $92e0 ; draw 16x16 entity @label=loc_8C6E *$8c6e call $9f56 ; $8c71 ld (ix+$00),$00 ; remove food item $8c75 call $a485 ; $8c78 ld c,$40 ; food adds 64 health $8c7a ld a,($5e28) ; $8c7d add a,c ; add food value $8c7e jr c,$8c84 ; $8c80 cp $f0 ; exceeded maximum? $8c82 jr c,$8c86 ; jump if not @label=loc_8C84 *$8c84 ld a,$f0 ; cap energy at maximum @label=loc_8C86 *$8c86 ld ($5e28),a ; $8c89 jp $8b8a ; draw chicken energy bar ; flash score on game start ; ; Used by the routine at #R$8cb7. @label=flash_score c$8c8c dec a ; timer expired? $8c8d ld ($5e3c),a ; score flash timer $8c90 jr z,$8ca7 ; jump if so (stop flash) $8c92 and $0f ; 16th frame? $8c94 call z,$a3e0 ; call if so (beep) $8c97 ld hl,$50c8 ; $8c9a call $9bd2 ; convert pixel coords in HL to attribute address $8c9d ld b,$06 ; @label=loc_8C9F *$8c9f ld a,(hl) ; $8ca0 or $80 ; enable flash attribute $8ca2 ld (hl),a ; $8ca3 inc hl ; $8ca4 djnz $8c9f ; $8ca6 ret ; @label=loc_8CA7 *$8ca7 ld hl,$50c8 ; $8caa call $9bd2 ; convert pixel coords in HL to attribute address $8cad ld b,$06 ; @label=loc_8CAF *$8caf ld a,(hl) ; $8cb0 and $7f ; disable flash attribute $8cb2 ld (hl),a ; $8cb3 inc hl ; $8cb4 djnz $8caf ; $8cb6 ret ; ; player appear handler for game start @label=h_player_appear c$8cb7 ld a,($5e3c) ; score flash timer $8cba and a ; score flash timer active? $8cbb jr nz,$8c8c ; jump if so $8cbd ld a,($5c78) ; $8cc0 and $03 ; 0 in range 0-3? $8cc2 jp nz,$8d12 ; jump if not $8cc5 inc (ix+$06) ; increase drawn height $8cc8 ld a,(ix+$07) ; player spawn sprite $8ccb call $9e89 ; return address of sprite A in DE $8cce ld a,(de) ; normal player sprite height $8ccf cp (ix+$06) ; reached full reveal height? $8cd2 jr z,$8d32 ; jump if so ; This entry point is used by the routine at #R$8d45. @label=loc_8CD4 *$8cd4 push de ; $8cd5 push hl ; $8cd6 ld b,h ; $8cd7 ld c,l ; $8cd8 ld a,(ix+$04) ; $8cdb ld (ix+$02),a ; $8cde sub (ix+$06) ; $8ce1 ld (ix+$04),a ; $8ce4 ld l,(ix+$06) ; $8ce7 ld h,$00 ; $8ce9 add hl,hl ; $8cea add hl,de ; $8ceb ld a,h ; $8cec ld (bc),a ; $8ced dec bc ; $8cee ld a,l ; $8cef ld (bc),a ; $8cf0 push hl ; $8cf1 ld c,(hl) ; $8cf2 ld b,(ix+$00) ; $8cf5 push bc ; $8cf6 ld (hl),$01 ; $8cf8 ld a,(ix+$07) ; player spawn sprite $8cfb ld (ix+$00),a ; set player graphic $8cfe call $9f4a ; draw entity graphic (no attrs) $8d01 pop bc ; $8d02 pop hl ; $8d03 ld (hl),c ; $8d04 ld (ix+$00),b ; $8d07 ld a,(ix+$02) ; $8d0a ld (ix+$04),a ; $8d0d pop hl ; $8d0e pop de ; $8d0f ld (hl),d ; $8d10 dec hl ; $8d11 ld (hl),e ; ; This entry point is used by the routine at #R$8d45. @label=loc_8D12 *$8d12 ld a,(ix+$05) ; $8d15 push af ; $8d16 ld a,($5c78) ; $8d19 rrca ; $8d1a rrca ; 1/4 colour change rate $8d1b and $07 ; ink 0-7 $8d1d jr nz,$8d20 ; jump if not black $8d1f inc a ; convert black to blue @label=loc_8D20 *$8d20 or $40 ; add bright bit $8d22 ld (ix+$05),a ; set player attr $8d25 ld a,(ix+$06) ; $8d28 call $92e2 ; set spawn appearance width/height $8d2b pop af ; $8d2c ld (ix+$05),a ; $8d2f jp $a45f ; player appearance sound @label=loc_8D32 *$8d32 ld a,(ix+$07) ; player spawn sprite $8d35 ld (ix+$00),a ; set player graphic $8d38 ld (ix+$06),$00 ; no x movement $8d3c ld (ix+$07),$00 ; no y movement $8d40 ld (ix+$02),$00 ; no auto-steps $8d44 ret ; ; player death animation handler @label=h_death c$8d45 ld a,($5c78) ; $8d48 and $03 ; 3/4 animation rate for death $8d4a jr z,$8d12 ; jump if colouring this frame instead $8d4c dec (ix+$06) ; reduce player visible height $8d4f jp m,$8d5b ; jump if after zero $8d52 ld a,(ix+$07) ; player spawn sprite $8d55 call $9e89 ; return address of sprite A in DE $8d58 jp $8cd4 ; @label=loc_8D5B *$8d5b call $95a9 ; place a tombstone at the player position $8d5e jp $9443 ; prepare player to spawn ; copy initial game state to working state area ; ; Used by the routine at #R$7d9a. @label=reset_game_state c$8d61 ld hl,$600d ; initial game state $8d64 ld de,$ea90 ; working game state $8d67 ld bc,$1570 ; 0x10000-player, rather than real init data size! $8d6a ldir ; $8d6c ret ; ; reduce auto-walk counter ; ; Used by the routine at #R$8d77. @label=auto_walk_step c$8d6d ld a,(ix+$02) ; $8d70 and $0f ; auto-walk active? $8d72 ret z ; return if not $8d73 dec (ix+$02) ; take a step $8d76 ret ; ; read controls and apply player movement ; ; Used by the routines at #R$80d2, #R$8dc4 and #R$8e26. @label=control_player c$8d77 ld a,($ea91) ; $8d7a ld ($ee59),a ; blank entity? $8d7d push bc ; $8d7e push de ; $8d7f push hl ; $8d80 call $8d6d ; reduce auto-walk counter $8d83 ld a,(ix+$02) ; $8d86 or $30 ; can move left/right or up/down $8d88 ld (ix+$02),a ; $8d8b call $9ffb ; save entity position for undraw $8d8e call $93be ; return controls in A (FUDLR order, negative logic) $8d91 ld c,a ; FUDLR $8d92 pop hl ; $8d93 ld de,$0000 ; no movement yet $8d96 bit 1,c ; left pressed? $8d98 jr nz,$8d9e ; jump if not $8d9a ld a,b ; $8d9b neg ; negate for left $8d9d ld e,a ; @label=loc_8D9E *$8d9e bit 0,c ; right pressed? $8da0 jr nz,$8da3 ; jump if not $8da2 ld e,b ; @label=loc_8DA3 *$8da3 bit 2,c ; down pressed? $8da5 jr nz,$8da8 ; jump if not $8da7 ld d,b ; @label=loc_8DA8 *$8da8 bit 3,c ; up pressed? $8daa jr nz,$8db0 ; jump if not $8dac ld a,b ; $8dad neg ; negate for up $8daf ld d,a ; @label=loc_8DB0 *$8db0 pop hl ; DE value from function entry $8db1 call $8f96 ; decelerate player movement $8db4 pop hl ; BC value from function entry $8db5 call $8eef ; apply player movement, including auto-walk $8db8 call $8fca ; check if walls are blocking movement in DE $8dbb call $957d ; check if player is standing in a doorway $8dbe call $900a ; check if decor is blocking movement in DE $8dc1 jp $8f66 ; apply movement in DE ; serf character handler @label=h_serf c$8dc4 ld bc,$2020 ; walk deceleration $8dc7 ld de,$0101 ; walk acceleration $8dca ld hl,$0707 ; unused $8dcd call $8d77 ; read controls and apply player movement $8dd0 ld e,(ix+$06) ; x velocity $8dd3 ld d,(ix+$07) ; y velocity $8dd6 ld a,d ; $8dd7 or e ; is player moving? $8dd8 jr z,$8e0f ; jump if not $8dda ld a,($5c78) ; $8ddd and $03 ; 1/4 update rate $8ddf jr nz,$8e0f ; jump if not time $8de1 ld a,(ix+$00) ; $8de4 and $03 ; keep animation frame bits $8de6 add a,$21 ; add base serf graphic $8de8 ld (ix+$00),a ; $8deb ld a,d ; $8dec and a ; moving down? $8ded jp p,$8df2 ; jump if so $8df0 neg ; abs @label=loc_8DF2 *$8df2 ld c,a ; $8df3 ld a,e ; $8df4 and a ; moving right? $8df5 jp p,$8dfa ; jump if so $8df8 neg ; abs @label=loc_8DFA *$8dfa cp c ; moving more up/down than left/right? $8dfb jr nc,$8e1a ; jump if so $8dfd ld a,d ; $8dfe and a ; moving up? $8dff ld a,(ix+$00) ; $8e02 jp m,$8e07 ; jump if so $8e05 add a,$04 ; offset to down sprites @label=loc_8E07 *$8e07 add a,$08 ; offset to right sprites @label=loc_8E09 *$8e09 ld (ix+$00),a ; $8e0c call $a3c7 ; play walk clicks if due @label=loc_8E0F *$8e0f call $93be ; return controls in A (FUDLR order, negative logic) $8e12 and $10 ; fire pressed? $8e14 call z,$8283 ; call if so (fire weapon) $8e17 jp $8e78 ; @label=loc_8E1A *$8e1a ld a,e ; $8e1b and a ; moving left? $8e1c ld a,(ix+$00) ; $8e1f jp m,$8e09 ; jump if so $8e22 add a,$04 ; offset to right sprites $8e24 jr $8e09 ; ; knight character handler @label=h_knight c$8e26 ld bc,$2020 ; walk deceleration $8e29 ld de,$0303 ; walk acceleration $8e2c ld hl,$0707 ; unused $8e2f call $8d77 ; read controls and apply player movement $8e32 ld e,(ix+$06) ; current x velocity $8e35 ld d,(ix+$07) ; current y velocity $8e38 ld a,d ; $8e39 or e ; player moving? $8e3a jr z,$8e70 ; jump if not $8e3c ld a,($5c78) ; $8e3f and $03 ; 1/4 update rate $8e41 jr nz,$8e70 ; jump if not time $8e43 ld a,(ix+$00) ; $8e46 and $03 ; keep animation frame bits $8e48 inc a ; add base knight graphic $8e49 ld (ix+$00),a ; $8e4c ld a,d ; $8e4d and a ; moving down? $8e4e jp p,$8e53 ; jump if so $8e51 neg ; abs @label=loc_8E53 *$8e53 ld c,a ; $8e54 ld a,e ; $8e55 and a ; moving right? $8e56 jp p,$8e5b ; jump if so $8e59 neg ; abs @label=loc_8E5B *$8e5b cp c ; moving more up/down than left/right? $8e5c jr nc,$8e94 ; jump if so $8e5e ld a,d ; $8e5f and a ; moving up? $8e60 ld a,(ix+$00) ; $8e63 jp m,$8e68 ; jump if so $8e66 add a,$04 ; offset to down sprites @label=loc_8E68 *$8e68 add a,$08 ; offset to right sprites @label=loc_8E6A *$8e6a ld (ix+$00),a ; $8e6d call $a3c7 ; play walk clicks if due @label=loc_8E70 *$8e70 call $93be ; return controls in A (FUDLR order, negative logic) $8e73 and $10 ; fire pressed? $8e75 call z,$8134 ; call if so (fire weapon) ; This entry point is used by the routines at #R$80d2 and #R$8dc4. @label=loc_8E78 *$8e78 call $83ea ; check whether to add new room creatures $8e7b ld a,($5e12) ; $8e7e and $0f ; 16th game loop? $8e80 jr nz,$8e8e ; jump if not $8e82 ld a,($5e28) ; $8e85 dec a ; reduce health by 1 $8e86 jr z,$8ea0 ; $8e88 ld ($5e28),a ; $8e8b call $8b8a ; draw chicken energy bar ; This entry point is used by the routines at #R$81f0, #R$8301, #R$845f, ; #R$85f7 and #R$8787. @label=loc_8E8E *$8e8e call $9fca ; draw entity to display (no attrs) $8e91 jp $a01a ; set attrs covering previous and new position @label=loc_8E94 *$8e94 ld a,e ; $8e95 and a ; moving left? $8e96 ld a,(ix+$00) ; $8e99 jp m,$8e6a ; jump if so (use left sprites) $8e9c add a,$04 ; offset to down sprites $8e9e jr $8e6a ; ; This entry point is used by the routines at #R$8a1e, #R$8ed7 and #R$98c8. @label=player_dead *$8ea0 ld a,($5e21) ; $8ea3 and a ; no lives left? $8ea4 jp z,$8c35 ; jump if so $8ea7 dec a ; lose a life $8ea8 ld ($5e21),a ; $8eab ld a,(ix+$00) ; $8eae dec a ; $8eaf cp $30 ; is player active? $8eb1 jr c,$8ec6 ; jump if so $8eb3 ld a,($ea90) ; @label=loc_8EB6 *$8eb6 ld ($ea97),a ; $8eb9 call $9e89 ; return address of sprite A in DE $8ebc ld a,(de) ; $8ebd ld ($ea96),a ; $8ec0 ld a,$67 ; blank graphic, death handler $8ec2 ld ($ea90),a ; $8ec5 ret ; @label=loc_8EC6 *$8ec6 ld a,($5e16) ; $8ec9 ld ($ea93),a ; $8ecc ld a,($5e17) ; $8ecf ld ($ea94),a ; $8ed2 ld a,($5e15) ; $8ed5 jr $8eb6 ; ; reduce health by 32 ; ; Used by the routine at #R$85b2. @label=damage_32 c$8ed7 ld a,($5e28) ; $8eda sub $20 ; lose 32 health $8edc jr z,$8ee1 ; $8ede jr nc,$8ee9 ; jump if positive $8ee0 xor a ; @label=loc_8EE1 *$8ee1 ld ($5e28),a ; $8ee4 call $8b8a ; draw chicken energy bar $8ee7 jr $8ea0 ; @label=loc_8EE9 *$8ee9 ld ($5e28),a ; $8eec jp $8b8a ; draw chicken energy bar ; apply player movement, including auto-walk ; ; Used by the routine at #R$8d77. @label=move_player c$8eef ld a,(ix+$02) ; $8ef2 and $0f ; auto-walk active? $8ef4 jr nz,$8f35 ; jump if so $8ef6 ld a,e ; x acceleration $8ef7 add a,(ix+$06) ; add x velocity $8efa jp m,$8f21 ; jump if moving left $8efd cp l ; max x velocity? $8efe jr c,$8f01 ; jump if not $8f00 ld a,l ; limit velocity to max @label=loc_8F01 *$8f01 ld (ix+$06),a ; update x velocity $8f04 ld a,d ; y acceleration $8f05 add a,(ix+$07) ; add y velocity $8f08 jp m,$8f2b ; jump if moving up $8f0b cp h ; max y velocity? $8f0c jr c,$8f0f ; jump if not $8f0e ld a,h ; limit velocity to max @label=loc_8F0F *$8f0f ld (ix+$07),a ; update y velocity $8f12 ld a,(ix+$06) ; $8f15 call $8f80 ; return signed top nibble $8f18 ld e,a ; x offset $8f19 ld a,(ix+$07) ; $8f1c call $8f80 ; return signed top nibble $8f1f ld d,a ; y move offset $8f20 ret ; @label=loc_8F21 *$8f21 neg ; abs $8f23 cp l ; max x velocity? $8f24 jr c,$8f27 ; jump if not $8f26 ld a,l ; limit velocity to max @label=loc_8F27 *$8f27 neg ; re-negate $8f29 jr $8f01 ; @label=loc_8F2B *$8f2b neg ; abs $8f2d cp h ; max y velocity? $8f2e jr c,$8f31 ; jump if not $8f30 ld a,h ; limit velocity to max @label=loc_8F31 *$8f31 neg ; re-negate $8f33 jr $8f0f ; @label=auto_walk *$8f35 ld a,(ix+$06) ; x velocity $8f38 and a ; x movement? $8f39 jp m,$8f52 ; jump if left $8f3c and $f0 ; any non-fractional movement? $8f3e jr z,$8f42 ; jump if not $8f40 ld a,$02 ; walk right 2 pixels @label=loc_8F42 *$8f42 ld e,a ; x walk in e $8f43 ld a,(ix+$07) ; $8f46 and a ; auto-walk up/down? $8f47 jp m,$8f5c ; jump if up $8f4a and $f0 ; any non-fractional movement? $8f4c jr z,$8f50 ; jump if not $8f4e ld a,$02 ; walk down 2 pixels @label=loc_8F50 *$8f50 ld d,a ; y walk in d $8f51 ret ; @label=loc_8F52 *$8f52 neg ; negate for left $8f54 and $f0 ; any non-fractional movement? $8f56 jr z,$8f42 ; jump if not $8f58 ld a,$fe ; walk left 2 pixels $8f5a jr $8f42 ; @label=loc_8F5C *$8f5c neg ; negate for up $8f5e and $f0 ; any non-fractional movement? $8f60 jr z,$8f50 ; jump if not $8f62 ld a,$fe ; walk up 2 pixels $8f64 jr $8f50 ; ; This entry point is used by the routine at #R$8d77. @label=apply_move *$8f66 bit 4,(ix+$02) ; x movement allowed? $8f6a jr nz,$8f73 ; jump if not $8f6c ld a,e ; delta x $8f6d add a,(ix+$03) ; apply x movement $8f70 ld (ix+$03),a ; @label=loc_8F73 *$8f73 bit 5,(ix+$02) ; y movement allowed? $8f77 ret nz ; return if not $8f78 ld a,d ; delta y $8f79 add a,(ix+$04) ; apply y movement $8f7c ld (ix+$04),a ; $8f7f ret ; ; return signed top nibble ; ; Used by the routine at #R$8eef. @label=get_signed_b7_4 c$8f80 and a ; positive? $8f81 jp p,$8f8f ; jump if so $8f84 neg ; negate $8f86 rrca ; $8f87 rrca ; $8f88 rrca ; $8f89 rrca ; high nibble to low nibble $8f8a and $0f ; keep low nibble $8f8c neg ; re-negate $8f8e ret ; @label=loc_8F8F *$8f8f rrca ; $8f90 rrca ; $8f91 rrca ; $8f92 rrca ; high nibble to low nibble $8f93 and $0f ; keep low nibble $8f95 ret ; ; decelerate player movement ; ; Used by the routine at #R$8d77. @label=slow_player c$8f96 ld a,(ix+$02) ; $8f99 and $0f ; is auto-walk active? $8f9b ret nz ; return if so $8f9c ld a,(ix+$06) ; $8f9f and a ; x movement? $8fa0 jr z,$8fad ; jump if not $8fa2 jp m,$8fbe ; jump if left $8fa5 sub l ; decelerate $8fa6 jp p,$8faa ; jump if still positive @label=stop_x *$8fa9 xor a ; stopped on x axis @label=loc_8FAA *$8faa ld (ix+$06),a ; update x velocity @label=loc_8FAD *$8fad ld a,(ix+$07) ; $8fb0 and a ; y movement? $8fb1 ret z ; return if not $8fb2 jp m,$8fc4 ; jump if moving up $8fb5 sub h ; decelerate $8fb6 jp p,$8fba ; jump if still positive @label=stop_y *$8fb9 xor a ; clear auto-walk up/down @label=loc_8FBA *$8fba ld (ix+$07),a ; update y velocity $8fbd ret ; @label=loc_8FBE *$8fbe add a,l ; decelerate $8fbf jp m,$8faa ; jump if still negative $8fc2 jr $8fa9 ; stopped on x axis @label=loc_8FC4 *$8fc4 add a,h ; decelerate $8fc5 jp m,$8fba ; jump if negative $8fc8 jr $8fb9 ; stopped on y axis ; check if walls are blocking movement in DE ; ; Used by the routine at #R$8d77. @label=chk_wall_move c$8fca push de ; $8fcb ld a,e ; $8fcc add a,(ix+$03) ; apply x movement $8fcf ld e,a ; $8fd0 ld d,(ix+$04) ; apply y movement $8fd3 ld b,$10 ; x bit mask $8fd5 call $8fe9 ; check if position is within room interior $8fd8 pop de ; $8fd9 push de ; $8fda ld e,(ix+$03) ; $8fdd ld a,d ; $8fde add a,(ix+$04) ; $8fe1 ld d,a ; $8fe2 ld b,$20 ; $8fe4 call $8fe9 ; check if position is within room interior $8fe7 pop de ; $8fe8 ret ; ; check if position is within room interior ; ; Used by the routine at #R$8fca. @label=chk_walls c$8fe9 ld hl,$5e1d ; $8fec ld a,e ; player x $8fed sub $58 ; subtract room centre x $8fef jp p,$8ff4 ; $8ff2 neg ; abs @label=loc_8FF4 *$8ff4 cp (hl) ; within room width? $8ff5 ret nc ; return if so $8ff6 inc hl ; $8ff7 ld a,d ; player y $8ff8 sub $68 ; subtract room centre y $8ffa jp p,$8fff ; $8ffd neg ; abs @label=loc_8FFF *$8fff cp (hl) ; within room height? $9000 ret nc ; return if so $9001 ld a,b ; $9002 cpl ; $9003 and (ix+$02) ; clear bit in B $9006 ld (ix+$02),a ; $9009 ret ; ; check if decor is blocking movement in DE ; ; Used by the routine at #R$8d77. @label=chk_decor_move c$900a push de ; $900b ld a,e ; $900c add a,(ix+$03) ; $900f ld e,a ; $9010 ld d,(ix+$04) ; $9013 ld a,$10 ; bit for x movement allowed $9015 ex af,af' ; $9016 call $902b ; check if room decor is blocking movement $9019 pop de ; $901a push de ; $901b ld e,(ix+$03) ; $901e ld a,d ; $901f add a,(ix+$04) ; $9022 ld d,a ; $9023 ld a,$20 ; bit for y movement allowed $9025 ex af,af' ; $9026 call $902b ; check if room decor is blocking movement $9029 pop de ; $902a ret ; ; check if room decor is blocking movement ; ; Used by the routine at #R$900a. @label=chk_decor c$902b ld c,(ix+$01) ; $902e ld b,$00 ; $9030 ld hl,$757d ; $9033 sla c ; $9035 rl b ; * 2 (bytes per entry) $9037 add hl,bc ; $9038 ld c,(hl) ; $9039 inc hl ; $903a ld b,(hl) ; @label=loc_903B *$903b ld a,(bc) ; room item LSB $903c inc bc ; $903d ld l,a ; $903e ld a,(bc) ; room item MSB $903f inc bc ; $9040 ld h,a ; $9041 or l ; $9042 ret z ; $9043 push bc ; $9044 ld bc,$757d ; $9047 and a ; $9048 sbc hl,bc ; $904a inc hl ; $904b ld a,(hl) ; $904c cp (ix+$01) ; in player room? $904f jr z,$9055 ; jump if so $9051 ld bc,$0008 ; 8 bytes per entry $9054 add hl,bc ; next (linked) entry @label=loc_9055 *$9055 inc hl ; $9056 inc hl ; $9057 ld c,(hl) ; x $9058 inc hl ; $9059 ld b,(hl) ; y $905a inc hl ; $905b ld a,(hl) ; flags $905c inc hl ; $905d bit 2,a ; $905f jr nz,$909b ; $9061 bit 3,a ; $9063 jr nz,$9098 ; $9065 ld a,(hl) ; $9066 sra a ; $9068 sra a ; $906a and $fc ; $906c add a,c ; $906d sub e ; $906e neg ; $9070 ld c,a ; $9071 ld a,(hl) ; $9072 rlca ; $9073 rlca ; $9074 and $3c ; $9076 inc hl ; $9077 cp c ; $9078 jr c,$9098 ; $907a ld a,(hl) ; $907b sra a ; $907d sra a ; $907f and $fc ; $9081 add a,b ; $9082 sub d ; $9083 ld b,a ; $9084 ld a,(hl) ; $9085 inc hl ; $9086 rlca ; $9087 rlca ; $9088 and $3c ; $908a cp b ; $908b jr c,$9098 ; $908d ex af,af' ; $908e ld c,a ; $908f ex af,af' ; $9090 ld a,c ; $9091 cpl ; $9092 and (ix+$02) ; disallow movement bit @label=loc_9095 *$9095 ld (ix+$02),a ; @label=loc_9098 *$9098 pop bc ; $9099 jr $903b ; @label=loc_909B *$909b ld a,(hl) ; $909c sra a ; $909e sra a ; $90a0 and $fc ; $90a2 add a,c ; $90a3 sub e ; $90a4 neg ; $90a6 ld c,a ; $90a7 ld a,(hl) ; $90a8 rlca ; $90a9 rlca ; $90aa and $3c ; $90ac inc hl ; $90ad cp c ; $90ae jr c,$9098 ; $90b0 ld a,(hl) ; $90b1 sra a ; $90b3 sra a ; $90b5 and $fc ; $90b7 add a,b ; $90b8 sub d ; $90b9 ld b,a ; $90ba ld a,(hl) ; $90bb inc hl ; $90bc rlca ; $90bd rlca ; $90be and $3c ; $90c0 cp b ; $90c1 jr c,$9098 ; $90c3 ex af,af' ; $90c4 ld c,a ; $90c5 ex af,af' ; $90c6 ld a,c ; $90c7 or (ix+$02) ; allow movement bit $90ca jr $9095 ; ; check if player has left through a door ; ; Used by the routines at #R$91f2, #R$9222 and #R$9731. @label=check_exit c$90cc ld a,($ea92) ; $90cf and $0f ; touching enemy? $90d1 ret nz ; return if so [check] $90d2 ld a,($ea90) ; $90d5 dec a ; $90d6 cp $30 ; player active? $90d8 ret nc ; return if not $90d9 bit 6,(ix+$05) ; top/bottom door? $90dd jr z,$90e1 ; jump if so $90df srl c ; halve vertical distance @label=loc_90E1 *$90e1 ld a,($ea93) ; $90e4 sub (ix+$03) ; x distance $90e7 cp c ; within range? $90e8 ret nc ; return if not $90e9 bit 6,(ix+$05) ; left/right door? $90ed jr nz,$90f1 ; jump if so $90ef srl b ; halve horiztonal distance @label=loc_90F1 *$90f1 ld a,($ea94) ; $90f4 sub (ix+$04) ; y distance to exit $90f7 neg ; $90f9 cp b ; within range? $90fa ret ; return no-carry if not ; check if player is touching entity ; ; Used by the routines at #R$8c63, #R$92f5 and #R$988b. @label=check_touching c$90fb ld a,($ea93) ; $90fe sub (ix+$03) ; x distance $9101 jp p,$9106 ; $9104 neg ; abs @label=loc_9106 *$9106 cp $0c ; within range? $9108 ret nc ; return if not $9109 ld a,($ea94) ; $910c sub (ix+$04) ; y distance $910f jp p,$9114 ; $9112 neg ; abs @label=loc_9114 *$9114 cp $0c ; within range? $9116 ret ; return no-carry if not ; move player to room linked to entity (usually door) ; ; Used by the routines at #R$91f2, #R$9244 and #R$9731. @label=change_room c$9117 call $9286 ; get connected door exit $911a ld a,(ix+$01) ; $911d ld ($ea91),a ; move player to connected room $9120 ld a,(ix+$02) ; bits 3-0 used for x offset $9123 rlca ; * 2 $9124 and $1e ; $9126 add a,(ix+$03) ; add x $9129 ld ($ea93),a ; set player x to exit $912c ld a,(ix+$02) ; bits 7-4 used for y offset $912f rrca ; $9130 rrca ; $9131 rrca ; * 2 (effectively) $9132 and $1e ; $9134 neg ; invert $9136 add a,(ix+$04) ; add y $9139 ld ($ea94),a ; set player y to exit $913c call $986a ; auto-walk into the room $913f ld a,($ea92) ; $9142 or $0f ; $9144 ld ($ea92),a ; ; This entry point is used by the routine at #R$7d9a. @label=enter_room *$9147 ld a,($ea91) ; $914a call $96af ; mark room A as visited $914d call $8093 ; clear screen and attrs of play area $9150 call $9bea ; draw lines that make up outer room frame $9153 call $a240 ; draw side-panel colours, which follow room colour $9156 call $a13b ; draw any items in player inventory $9159 call $a403 ; room entry sound effect $915c jp $7dc3 ; ; open door handler @label=h_door_open c$915f ld a,($5e12) ; $9162 and $01 ; 2 alternating tasks $9164 jp nz,$91f2 ; jump if we're checking exits this time $9167 ld a,($5e2e) ; $916a and a ; door timer expired? $916b jr z,$9174 ; jump if so $916d dec a ; reduce timer $916e ld ($5e2e),a ; $9171 jp $91f2 ; jump to check exits @label=loc_9174 *$9174 ld a,($5e2d) ; $9177 and a ; player standing in doorway? $9178 jp nz,$91f2 ; jump if so (run exit logic only) $917b jr $9193 ; @label=h_door_closed $917d ld a,($5e12) ; closed door handler $9180 and $01 ; 2 alternating tasks $9182 jp nz,$91fe ; jump if we're drawing this time $9185 ld a,($5e2e) ; $9188 and a ; door timer expired? $9189 jp z,$9193 ; jump if so $918c dec a ; $918d ld ($5e2e),a ; $9190 jp $91fe ; draw room item @label=loc_9193 *$9193 ld a,$5e ; 0x5E * 2 / 50 = 3.76 seconds, due to halved timer ; processing $9195 ld ($5e2e),a ; $9198 ld a,(ix+$05) ; save door attr $919b push af ; $919c or $03 ; $919e ld (ix+$05),a ; $91a1 call $9213 ; undraw door $91a4 ld a,(ix+$00) ; entity type $91a7 xor $01 ; toggle open/close state $91a9 call $9260 ; set door type for both linked entities $91ac call $9213 ; redraw door $91af pop af ; $91b0 ld (ix+$05),a ; restore door attr $91b3 call $9546 ; update solid/passable door state $91b6 call $91fe ; draw room item $91b9 jp $a46e ; door sound (short burst of white noise) ; closed trapdoor handler @label=h_trap_closed c$91bc ld a,($5e12) ; $91bf and a ; $91c0 jp nz,$91fe ; draw room item $91c3 jr $91cc ; @label=h_trap_open $91c5 ld a,($5e05) ; open trapdoor handler $91c8 and a ; zero? $91c9 jp nz,$9731 ; jump if not @label=trap_common *$91cc ld a,(ix+$05) ; $91cf push af ; $91d0 or $03 ; $91d2 ld (ix+$05),a ; $91d5 call $9213 ; $91d8 ld a,(ix+$00) ; $91db xor $01 ; toggle open/closed state $91dd ld (ix+$00),a ; $91e0 call $9213 ; $91e3 pop af ; $91e4 ld (ix+$05),a ; $91e7 call $91fe ; draw room item $91ea jp $a46e ; door sound (short burst of white noise) ; big door exit handler @label=h_big_door_exit c$91ed ld bc,$2020 ; 32x32 size $91f0 jr $91f5 ; ; door exit handler ; ; Used by the routines at #R$915f and #R$9421. @label=h_door_exit c$91f2 ld bc,$1111 ; 17x17 exit size ; This entry point is used by the routines at #R$91ed and #R$961b. @label=loc_91F5 *$91f5 call $90cc ; check if player has left through a door $91f8 call c,$9117 ; move player to room linked to entity (usually door) $91fb jp $91fe ; draw room item ; draw room item ; ; Used by the routines at #R$915f, #R$91bc, #R$91f2, #R$9244, #R$9252, #R$9421, ; #R$961b and #R$9731. @label=h_room_item c$91fe ld e,(ix+$03) ; xpos $9201 ld d,(ix+$04) ; ypos $9204 dec d ; $9205 ld c,(ix+$00) ; graphic $9208 ld b,(ix+$05) ; attr $920b call $9980 ; B=attr, C=graphic, E=xpos, D=ypos $920e ld a,($5e14) ; b0 set if room content drawn $9211 and a ; room content drawn? $9212 ret nz ; return if so ; Routine at 9213 ; ; Used by the routines at #R$8b8a, #R$915f and #R$91bc. @label=draw_rot_obj c$9213 ld e,(ix+$03) ; xpos $9216 ld d,(ix+$04) ; ypos $9219 ld c,(ix+$00) ; graphic index $921c ld b,(ix+$05) ; orientation $921f jp $9962 ; ; return if player has required key (C if opened, NC if locked) ; ; Used by the routines at #R$9244 and #R$9252. @label=check_key_colour c$9222 ld a,(ix+$00) ; $9225 and $03 ; locked door colour index $9227 ld hl,$925c ; $922a call $926c ; HL = HL + A $922d ld d,(hl) ; key colour attr $922e ld e,$81 ; key graphic $9230 call $9273 ; is player carrying the required key colour? $9233 jp nz,$923f ; jump if not $9236 call $954d ; enter linked object (door etc.) $9239 ld bc,$1111 ; 17x17 size $923c jp $90cc ; check if player has left through a door @label=loc_923F *$923f call $9565 ; $9242 and a ; door locked $9243 ret ; ; coloured locked door handler @label=h_door_locked c$9244 call $9222 ; does player have the required key colour? $9247 jp nc,$91fe ; jump if not $924a ld a,$02 ; open door graphic ; This entry point is used by the routine at #R$9252. @label=loc_924C *$924c call $9260 ; set door type for both linked entities $924f jp $9117 ; move player to room linked to entity (usually door) ; coloured cave locked door handler @label=h_cave_locked c$9252 call $9222 ; return if player has required key (C if opened, NC if ; locked) $9255 jp nc,$91fe ; draw room item $9258 ld a,$01 ; open cave graphic $925a jr $924c ; ; Data block at 925c @label=key_attrs b$925c defb $42 ; red $925d defb $44 ; green $925e defb $45 ; cyan $925f defb $46 ; yellow ; set door type for both linked entities ; ; Used by the routines at #R$915f and #R$9244. @label=set_door_type c$9260 push ix ; $9262 pop hl ; $9263 ld (hl),a ; set door graphic $9264 ex af,af' ; $9265 ld a,l ; $9266 xor $08 ; linked entry $9268 ld l,a ; $9269 ex af,af' ; $926a ld (hl),a ; set linked door graphic $926b ret ; ; HL = HL + A ; ; Used by the routines at #R$9222 and #R$a00e. @label=add_hl_a c$926c add a,l ; $926d ld l,a ; $926e ld a,h ; $926f adc a,$00 ; $9271 ld h,a ; $9272 ret ; ; check if player is carrying object E with colour D ; ; Used by the routines at #R$8906, #R$8988 and #R$9222. @label=check_carrying c$9273 ld b,$03 ; 3 inventory slots to search $9275 ld hl,$5e32 ; @label=loc_9278 *$9278 ld a,(hl) ; item colour $9279 cp e ; match? $927a inc hl ; $927b jr nz,$9280 ; jump if not $927d ld a,(hl) ; item graphic $927e cp d ; match? $927f ret z ; return if so @label=loc_9280 *$9280 inc hl ; $9281 inc hl ; $9282 inc hl ; next inventory slot $9283 djnz $9278 ; $9285 ret ; ; get connected door exit ; ; Used by the routines at #R$9117 and #R$9546. @label=get_linked_door c$9286 push ix ; $9288 pop hl ; $9289 ld a,l ; $928a xor $08 ; swap 8-byte entry $928c ld l,a ; $928d push hl ; $928e pop ix ; $9290 ret ; ; draw all non-monster entities in the current room ; ; Used by the routine at #R$7e13. @label=draw_entities c$9291 ld ix,$ea90 ; @label=loc_9295 *$9295 ld a,(ix+$00) ; $9298 and a ; slot used? $9299 jr z,$92a6 ; jump if not $929b ld a,($ea91) ; $929e cp (ix+$01) ; in player room? $92a1 jr nz,$92a6 ; jump if not $92a3 call $9f4a ; draw entity graphic (no attrs) @label=loc_92A6 *$92a6 ld de,$0008 ; 8 bytes per entry $92a9 add ix,de ; $92ab push ix ; $92ad pop hl ; $92ae ld de,$ee60 ; end marker $92b1 and a ; $92b2 sbc hl,de ; more 8-byte entries to process? $92b4 jr c,$9295 ; jump back if so @label=loc_92B6 *$92b6 ld a,(ix+$00) ; $92b9 and a ; slot used? $92ba jr z,$92c7 ; jump if not $92bc ld a,($ea91) ; $92bf cp (ix+$01) ; in player room? $92c2 jr nz,$92c7 ; jump if not $92c4 call $9f4a ; draw entity graphic (no attrs) @label=loc_92C7 *$92c7 ld de,$0010 ; 16 bytes per entry $92ca add ix,de ; $92cc push ix ; $92ce pop hl ; $92cf ld de,$eee0 ; end of 16-byte entities $92d2 and a ; $92d3 sbc hl,de ; more 16-byte entries to draw? $92d5 jr c,$92b6 ; jump back if so $92d7 ret ; ; clear pickup key flag ; ; Used by the routine at #R$92f5. @label=pickup_released c$92d8 ld a,($5e1f) ; $92db and $fd ; clear b1 (pickup key not pressed) $92dd ld ($5e1f),a ; ; This entry point is used by the routines at #R$8c63, #R$92f5, #R$95d7 and ; #R$988b. @label=draw_16x16 *$92e0 ld a,$10 ; 16 lines high by default ; set spawn appearance width/height ; ; Used by the routine at #R$8cb7. @label=set_appear_w_h c$92e2 ld ($5e11),a ; $92e5 ld a,(ix+$03) ; $92e8 and $07 ; x aligned on cell boundary? $92ea ld a,$02 ; 2 bytes wide $92ec jr z,$92ef ; $92ee inc a ; extra byte needed @label=loc_92EF *$92ef ld ($5e10),a ; $92f2 jp $a01a ; set attrs covering previous and new position ; pickup item handler @label=h_pickup_item c$92f5 call $9ffb ; save entity position for undraw $92f8 ld a,($5e20) ; $92fb and a ; if pick-up key pressed? $92fc jr z,$92d8 ; jump if not $92fe ld a,($5e1f) ; $9301 and $03 ; is pick-up allowed? $9303 jr nz,$92e0 ; jump if not $9305 ld a,($ea90) ; $9308 dec a ; $9309 cp $30 ; is player active? $930b jr nc,$92e0 ; jump if not $930d call $90fb ; is player touching item? $9310 jr nc,$92e0 ; jump if not $9312 ld a,($5e1f) ; $9315 or $03 ; disallow further pickups $9317 ld ($5e1f),a ; $931a call $9358 ; drop last item in inventory $931d call $934c ; move items 1+2 to slots 2+3 $9320 call $9326 ; add item to inventory slot 1 $9323 jp $a13b ; draw any items in player inventory ; add item to inventory slot 1 ; ; Used by the routine at #R$92f5. @label=add_inventory c$9326 ld hl,$5e30 ; $9329 push ix ; $932b pop de ; $932c ld (hl),e ; entity LSB $932d inc hl ; $932e ld (hl),d ; entity MSB $932f inc hl ; $9330 ld a,(ix+$00) ; $9333 ld (hl),a ; graphic $9334 inc hl ; $9335 ld a,(ix+$05) ; $9338 ld (hl),a ; $9339 call $9f56 ; $933c ld a,($5e1a) ; $933f ld (ix+$05),a ; $9342 call $a01a ; set attrs covering previous and new position $9345 ld (ix+$00),$00 ; $9349 jp $a3bd ; ; move items 1+2 to slots 2+3 ; ; Used by the routines at #R$92f5 and #R$93e3. @label=shift_inventory c$934c ld hl,$5e37 ; $934f ld de,$5e3b ; $9352 ld bc,$0008 ; 2 items * 4 bytes $9355 lddr ; shift up items $9357 ret ; ; drop last item in inventory ; ; Used by the routines at #R$92f5 and #R$93e3. @label=drop_item c$9358 ld hl,$5e38 ; $935b ld e,(hl) ; $935c inc hl ; $935d ld d,(hl) ; $935e inc hl ; $935f ld a,d ; $9360 or e ; $9361 ret z ; return if no item to drop $9362 push de ; $9363 ld a,(hl) ; graphic idx $9364 inc hl ; $9365 ld (de),a ; $9366 inc de ; $9367 ld a,($ea91) ; $936a ld (de),a ; set item room $936b inc de ; $936c ld a,$80 ; $936e ld (de),a ; $936f inc de ; $9370 ld a,($ea93) ; $9373 ld (de),a ; set item xpos $9374 inc de ; $9375 ld a,($ea94) ; $9378 ld (de),a ; set item ypos $9379 inc de ; $937a ld a,(hl) ; inventory colour $937b ld (de),a ; set item attr $937c pop de ; $937d call $a3c2 ; $9380 push ix ; $9382 push de ; $9383 pop ix ; $9385 call $9f4a ; draw entity graphic (no attrs) $9388 pop ix ; $938a ret ; ; check whether pick-up key has been pressed ; ; Used by the routine at #R$7e13. @label=check_pickup_key c$938b ld a,$7e ; read V/C/X/Z/Shift and B/N/M/Sym/Space rows $938d out ($fd),a ; $938f in a,($fe) ; $9391 cpl ; $9392 and $02 ; non-zero if Symbol Shift or Z pressed $9394 ld ($5e20),a ; $9397 ret ; ; This entry point is used by the routine at #R$93be. @label=read_cursor *$9398 ld a,$ef ; $939a out ($fd),a ; $939c in a,($fe) ; xxx67890 $939e ld c,a ; $939f and $08 ; 7 key $93a1 ld e,a ; $93a2 ld a,c ; $93a3 rrca ; 0xxx6789 $93a4 rrca ; 90xxx678 $93a5 and $45 ; ?+6+8 keys $93a7 or e ; $93a8 ld e,a ; $93a9 rrca ; 890xxx67 $93aa rrca ; 7890xxx6 $93ab and $10 ; 0 key $93ad or e ; $93ae and $1f ; $93b0 ld e,a ; $93b1 ld a,$f7 ; xxx54321 $93b3 out ($fd),a ; $93b5 in a,($fe) ; $93b7 rra ; 1xxx5432 $93b8 rra ; 21xxx543 $93b9 rra ; 321xxx54 $93ba and $02 ; 5 key $93bc or e ; $93bd ret ; ; return controls in A (FUDLR order, negative logic) ; ; Used by the routines at #R$80d2, #R$8d77, #R$8dc4 and #R$8e26. @label=read_controls c$93be ld a,($5e00) ; $93c1 and $06 ; $93c3 jr z,$93cd ; $93c5 cp $04 ; $93c7 jr z,$9398 ; $93c9 in a,($1f) ; read Kempston joystick $93cb cpl ; $93cc ret ; @label=read_keyboard *$93cd ld a,$fb ; $93cf out ($fd),a ; $93d1 in a,($fe) ; xxxTREWQ $93d3 ld c,a ; $93d4 rra ; $93d5 and $01 ; W key $93d7 ld e,a ; $93d8 ld a,c ; $93d9 rla ; $93da and $02 ; Q key $93dc or e ; $93dd ld e,a ; $93de ld a,c ; $93df and $1c ; ___TRE__ $93e1 or e ; ___TREQW $93e2 ret ; ; Routine at 93e3 @label=h_blank c$93e3 ld a,($ea90) ; $93e6 dec a ; $93e7 cp $30 ; is player active? $93e9 ret nc ; return if not $93ea ld a,($5e20) ; $93ed and a ; pick-up key down? $93ee jr z,$9417 ; jump if not $93f0 ld a,($5e1f) ; $93f3 and $03 ; pick-up allowed? $93f5 jr nz,$940e ; jump if not $93f7 or $02 ; pickup key pressed $93f9 ld ($5e1f),a ; $93fc call $9358 ; drop last item in inventory $93ff call $934c ; move items 1+2 to slots 2+3 $9402 ld hl,$0000 ; $9405 ld ($5e30),hl ; $9408 ld ($5e32),hl ; $940b call $a13b ; draw any items in player inventory @label=loc_940E *$940e ld a,($5e1f) ; $9411 and $fe ; pickup key not processed $9413 ld ($5e1f),a ; $9416 ret ; @label=loc_9417 *$9417 ld a,($5e1f) ; $941a and $fd ; pickup key released $941c ld ($5e1f),a ; $941f jr $940e ; ; Routine at 9421 @label=h_barrel c$9421 ld a,($ea90) ; $9424 sub $21 ; subtract serf base graphic $9426 jr $9433 ; @label=h_bookcase $9428 ld a,($ea90) ; $942b sub $11 ; subtract wizard base graphic $942d jr $9433 ; @label=h_clock $942f ld a,($ea90) ; $9432 dec a ; subtract knight base graphic @label=loc_9433 *$9433 cp $10 ; required player type to pass through? $9435 jr nc,$943d ; jump if not $9437 call $954d ; enter linked object (door etc.) $943a jp $91f2 ; door exit handler @label=loc_943D *$943d call $9565 ; $9440 jp $91fe ; draw room item ; prepare player to spawn ; ; Used by the routines at #R$7d9a and #R$8d45. @label=prepare_player c$9443 ld a,($5e00) ; $9446 rlca ; $9447 and $30 ; base character graphic $9449 add a,$08 ; offset to desired facing direction $944b ld ($9488),a ; set spawn graphic $944e ld a,($ea91) ; current player room $9451 ld ($9482),a ; respawn in same room $9454 ld hl,$9481 ; $9457 ld de,$ea90 ; $945a ld bc,$0008 ; player entity size $945d ldir ; copy to live player $945f ld a,$68 ; flash score for 104 frames $9461 ld ($5e3c),a ; score flash timer $9464 ld a,($5e21) ; $9467 cp $03 ; first game spawn? (full lives) $9469 jr z,$9476 ; jump if so (skip drawing player) $946b push ix ; $946d ld ix,$ea90 ; $9471 call $9f4a ; draw entity graphic (no attrs) $9474 pop ix ; @label=loc_9476 *$9476 ld a,$f0 ; starting energy $9478 ld ($5e28),a ; $947b call $8b8a ; draw chicken energy bar $947e jp $a2ce ; draw lives sprites in side panel ; blank graphic and h_player_appear handler @label=player_template b$9481 defb $66,$00,$00,$60,$68,$47,$ff,$00 ; check for pause key, return when not paused ; ; Used by the routine at #R$7e13. @label=check_pause c$9489 di ; disable interrupts to suspend FRAMES counter advance $948a ld a,$7e ; $948c out ($fd),a ; $948e in a,($fe) ; $9490 bit 0,a ; pause (space/shift) pressed? $9492 ret nz ; return if not $9493 cpl ; $9494 and $1e ; any other key on the same row pressed? $9496 ret nz ; return if so @label=loc_9497 *$9497 ld a,$7e ; $9499 out ($fd),a ; $949b in a,($fe) ; $949d bit 0,a ; space/shift pressed? $949f jr z,$9497 ; jump if so (wait until released) @label=loc_94A1 *$94a1 ld a,$7e ; $94a3 out ($fd),a ; $94a5 in a,($fe) ; $94a7 bit 0,a ; space/shift pressed? $94a9 jr nz,$94a1 ; jump if not (main pause loop) @label=loc_94AB *$94ab ld a,$7e ; $94ad out ($fd),a ; $94af in a,($fe) ; $94b1 bit 0,a ; space/shift pressed? $94b3 jr z,$94ab ; jump if so (wait until pause key released) $94b5 ret ; ; set locations of ACG key pieces ; ; Used by the routine at #R$7d9a. @label=place_key_pieces c$94b6 ld a,($5c78) ; $94b9 ld c,a ; $94ba ld a,($5e12) ; $94bd add a,c ; $94be and $07 ; $94c0 ld c,a ; $94c1 add a,a ; * 2 $94c2 add a,c ; * 3 (3 key pieces per entry) $94c3 ld l,a ; $94c4 ld h,$00 ; $94c6 ld bc,$94dd ; $94c9 add hl,bc ; $94ca ex de,hl ; $94cb ld hl,$6026 ; first key piece room $94ce ld bc,$0008 ; 8 bytes per entity $94d1 ld a,$03 ; 3 key pieces @label=loc_94D3 *$94d3 ex af,af' ; $94d4 ld a,(de) ; $94d5 ld (hl),a ; $94d6 add hl,bc ; $94d7 inc de ; $94d8 ex af,af' ; $94d9 dec a ; $94da jr nz,$94d3 ; $94dc ret ; ; Data block at 94dd @label=acg_key_rooms b$94dd defb $81,$45,$7c $94e0 defb $85,$49,$2b $94e3 defb $6a,$3b,$7c $94e6 defb $69,$71,$2b $94e9 defb $67,$85,$7c $94ec defb $68,$7f,$2b $94ef defb $4d,$73,$7c $94f2 defb $17,$10,$2b ; randomise which doors can open/close ; ; Used by the routine at #R$7d9a. @label=randomise_doors c$94f5 ld a,($5e12) ; $94f8 ld l,a ; set ROM addr LSB $94f9 ld a,($5c78) ; 0-49 $94fc and $0f ; limit to 4K (0000-0FFF) $94fe or $10 ; add 4K (1000-1FFF) $9500 ld h,a ; set ROM addr MSB $9501 exx ; $9502 ld hl,$eee0 ; pairs of linked items, including doors $9505 ld de,$eee8 ; pairs of linked items, including doors $9508 ld bc,$0010 ; 16 bytes per entry @label=loc_950B *$950b exx ; $950c ld a,(hl) ; read ROM byte $950d inc hl ; $950e exx ; $950f cp $70 ; ROM value >= 0x70 (~56% chance) $9511 jr nc,$951f ; jump if so (door always open) $9513 ld a,(de) ; $9514 cp (hl) ; same value? $9515 jr nz,$951f ; jump if not (no change) $9517 cp $01 ; cave doorway? $9519 jr z,$9526 ; jump if so $951b cp $02 ; normal doorway? $951d jr z,$9542 ; jump if so @label=loc_951F *$951f add hl,bc ; next entry $9520 ex de,hl ; $9521 add hl,bc ; next entry $9522 ret c ; return if hit end of RAM $9523 ex de,hl ; $9524 jr $950b ; @label=loc_9526 *$9526 ld a,$22 ; mode? @label=loc_9528 *$9528 ld (de),a ; $9529 ld (hl),a ; $952a push de ; $952b inc de ; $952c inc de ; $952d inc de ; $952e inc de ; $952f inc de ; + 5 $9530 ld a,(de) ; $9531 or $08 ; $9533 ld (de),a ; $9534 pop de ; $9535 push hl ; $9536 inc hl ; $9537 inc hl ; $9538 inc hl ; $9539 inc hl ; $953a inc hl ; $953b ld a,(hl) ; $953c or $08 ; $953e ld (hl),a ; $953f pop hl ; $9540 jr $951f ; @label=loc_9542 *$9542 ld a,$20 ; mode? $9544 jr $9528 ; ; update solid/passable door state ; ; Used by the routine at #R$915f. @label=update_door c$9546 ld a,(ix+$00) ; $9549 and $01 ; is door open? $954b jr z,$9565 ; jump if so ; This entry point is used by the routines at #R$9222, #R$9421 and #R$961b. @label=enter_door *$954d ld a,(ix+$05) ; enter linked object (door etc.) $9550 and $f7 ; object is solid $9552 ld (ix+$05),a ; $9555 push ix ; $9557 call $9286 ; get connected door exit $955a ld a,(ix+$05) ; $955d and $f7 ; linked object is solid $955f ld (ix+$05),a ; $9562 pop ix ; $9564 ret ; ; This entry point is used by the routines at #R$9222, #R$9421 and #R$961b. @label=loc_9565 *$9565 ld a,(ix+$05) ; $9568 or $08 ; object can be passed through $956a ld (ix+$05),a ; $956d push ix ; $956f call $9286 ; get connected door exit $9572 ld a,(ix+$05) ; $9575 or $08 ; linked object can be passed through $9577 ld (ix+$05),a ; $957a pop ix ; $957c ret ; ; check if player is standing in a doorway ; ; Used by the routine at #R$8d77. @label=check_doorway c$957d push de ; $957e ld b,$00 ; $9580 ld hl,($5e1d) ; $9583 inc l ; increase interior width $9584 inc h ; increase interior height $9585 ld e,(ix+$03) ; player x $9588 ld d,(ix+$04) ; player y $958b ld a,e ; $958c sub $58 ; subtract room centre x $958e jp p,$9593 ; $9591 neg ; abs @label=loc_9593 *$9593 cp l ; within interior width? $9594 jr c,$9597 ; jump if so $9596 inc b ; mark as in left/right doorway @label=loc_9597 *$9597 ld a,d ; $9598 sub $68 ; subtract room centre y $959a jp p,$959f ; $959d neg ; abs @label=loc_959F *$959f cp h ; within interior height? $95a0 jr c,$95a3 ; jump if so $95a2 inc b ; mark as in top/bottom doorway @label=loc_95A3 *$95a3 ld a,b ; $95a4 ld ($5e2d),a ; non-zero if in a doorway $95a7 pop de ; $95a8 ret ; ; place a tombstone at the player position ; ; Used by the routine at #R$8d45. @label=place_tombstone c$95a9 ld hl,$eae8 ; tombstone entities $95ac ld de,$0008 ; 8 bytes per entity $95af ld b,$04 ; 4 tombstone slots @label=loc_95B1 *$95b1 ld a,(hl) ; $95b2 and a ; free slot? $95b3 jr z,$95b9 ; jump if so $95b5 add hl,de ; next slot $95b6 djnz $95b1 ; $95b8 ret ; @label=loc_95B9 *$95b9 ld a,$45 ; bright cyan $95bb ld ($ea95),a ; $95be push hl ; $95bf ld (hl),$8f ; tombstone graphic $95c1 ex de,hl ; $95c2 inc de ; $95c3 ld hl,$ea91 ; copy remaining details from player entity $95c6 ld bc,$0007 ; 8 bytes minus the graphic we've written $95c9 ldir ; $95cb pop hl ; jump return address ; draw entity in HL ; ; Used by the routine at #R$96c9. @label=draw_entity_hl c$95cc push ix ; $95ce push hl ; $95cf pop ix ; $95d1 call $9f4a ; draw entity graphic (no attrs) $95d4 pop ix ; $95d6 ret ; ; Attributes: thunk @label=h_tombstone c$95d7 jp $92e0 ; draw 16x16 entity ; advance the clock 1 frame ; ; Used by the routine at #R$7ec5. @label=clock_tick c$95da ld a,($5c78) ; $95dd cp $32 ; 1 second elapsed? $95df ret c ; return if not $95e0 sub $32 ; subtract 1 second $95e2 ld ($5c78),a ; store back [this keeps LSB in 0-49 range!] $95e5 ld hl,$5e3f ; $95e8 ld a,(hl) ; $95e9 inc a ; add a second $95ea daa ; $95eb ld (hl),a ; $95ec cp $60 ; 60 seconds? $95ee jr nz,$9604 ; jump if not $95f0 ld (hl),$00 ; reset seconds $95f2 dec hl ; $95f3 ld a,(hl) ; $95f4 inc a ; add a minute $95f5 daa ; $95f6 ld (hl),a ; $95f7 cp $60 ; 60 minutes? $95f9 jr nz,$9604 ; jump if not $95fb ld (hl),$00 ; reset minutes $95fd dec hl ; $95fe ld a,(hl) ; $95ff inc a ; add an hour $9600 daa ; $9601 and $0f ; clip hours to 0-15 $9603 ld (hl),a ; @label=loc_9604 *$9604 ld hl,$40c8 ; time coords ; print clock time at position HL ; ; Used by the routine at #R$9641. @label=print_clock c$9607 call $9ba2 ; convert coords in HL to display address in HL $960a ld de,$5e3d ; $960d ld b,$02 ; $960f call $a1c9 ; print a single BCD digit $9612 ld de,$5e3f ; $9615 inc hl ; $9616 ld b,$01 ; $9618 jp $a1bf ; print B BCD bytes at DE ; ACG exit door handler @label=h_acg_exit c$961b ld hl,$5e32 ; graphic idx $961e ld de,$0004 ; 4 bytes per inventory slot $9621 ld a,(hl) ; $9622 cp $8c ; ACG key part 1? $9624 jr nz,$963b ; jump if not $9626 add hl,de ; next slot $9627 ld a,(hl) ; $9628 cp $8d ; ACG key part 2? $962a jr nz,$963b ; jump if not $962c add hl,de ; next slot $962d ld a,(hl) ; $962e cp $8e ; ACG key part 3? $9630 jr nz,$963b ; jump if not $9632 call $954d ; enter linked object (door etc.) $9635 ld bc,$3020 ; 48x32 $9638 jp $91f5 ; @label=loc_963B *$963b call $9565 ; $963e jp $91fe ; draw room item ; show game statistics ; ; Used by the routines at #R$8c35 and #R$96c9. @label=game_stats c$9641 call $96c9 ; calculate percentage of rooms visited $9644 ld hl,$4040 ; time header at 64,64 $9647 ld de,$967f ; $964a call $a1f3 ; show a line of text, first byte is attr $964d ld hl,$5040 ; score header at 64,80 $9650 ld de,$968f ; $9653 call $a1f3 ; show a line of text, first byte is attr $9656 ld hl,$6040 ; percent header at 64,96 $9659 ld de,$969f ; $965c call $a1f3 ; show a line of text, first byte is attr $965f ld hl,$bfcc ; $9662 ld ($5e01),hl ; $9665 ld hl,$4080 ; clock at 128,64 $9668 call $9607 ; print clock time at position HL $966b ld hl,$5080 ; score at 128,80 $966e call $a1b7 ; print player score at position HL $9671 ld hl,$6080 ; percent at 128,96 $9674 call $9ba2 ; convert coords in HL to display address in HL $9677 ld de,$5e54 ; $967a ld b,$01 ; $967c jp $a1bf ; print B BCD bytes at DE ; Data block at 967f @label=time_msg b$967f defb $45 ; bright cyan $9680 defm "TIME " $968b defm "# " $968e defb $a0 ; Data block at 968f @label=score_msg b$968f defb $45 ; bright cyan $9690 defm "SCORE " $969e defb $a0 ; Data block at 969f @label=percent_msg b$969f defb $45 ; bright cyan $96a0 defm "$ " $96ae defb $a0 ; mark room A as visited ; ; Used by the routine at #R$9117. @label=visit_room c$96af ld c,a ; room A $96b0 srl c ; $96b2 srl c ; $96b4 srl c ; $96b6 ld b,$00 ; $96b8 ld hl,$5e40 ; visit rooms bit array $96bb add hl,bc ; $96bc rlca ; $96bd rlca ; $96be rlca ; $96bf and $38 ; $96c1 or $c6 ; $96c3 ld ($96c7),a ; self-modify bit in SET below @label=loc_96C6 $96c6 set 0,(hl) ; mark room as visited $96c8 ret ; ; calculate percentage of rooms visited ; ; Used by the routine at #R$9641. @label=calc_visited c$96c9 ld hl,$5e40 ; visit rooms bit array $96cc ld bc,$0813 ; 8*19 bits covers all rooms $96cf ld d,$03 ; D decremented for every visited room $96d1 xor a ; @label=loc_96D2 *$96d2 push bc ; $96d3 ld e,(hl) ; 8 visited bits $96d4 inc hl ; @label=loc_96D5 *$96d5 rr e ; $96d7 jr nc,$96e1 ; $96d9 dec d ; counter zero? $96da jr nz,$96e1 ; jump if not $96dc ld d,$03 ; reset counter $96de add a,$02 ; add 2% for every 3 visited rooms $96e0 daa ; @label=loc_96E1 *$96e1 djnz $96d5 ; $96e3 pop bc ; $96e4 dec c ; $96e5 jr nz,$96d2 ; $96e7 inc a ; add 1% to total $96e8 ld ($5e54),a ; $96eb ret ; ; This entry point is used by the routine at #R$7e13. @label=game_complete *$96ec ld hl,$ea90 ; congratulate player on completion $96ef call $95cc ; undraw player $96f2 ld hl,$be4c ; $96f5 ld ($5e01),hl ; $96f8 ld hl,$2040 ; congratulations at 64,32 $96fb ld de,$9710 ; $96fe call $a1f3 ; show a line of text, first byte is attr $9701 ld hl,$3040 ; escaped message at 64,48 $9704 ld de,$9720 ; $9707 call $a1f3 ; show a line of text, first byte is attr $970a call $9641 ; show game statistics $970d jp $8c4a ; ; Data block at 9710 @label=congrat_msg b$9710 defb $47 $9711 defm "CONGRATULATION" @bfix=defb $d3 ; fix typo in congratulations message $971f defb $d4 ; Data block at 9720 @label=escape_msg b$9720 defb $47 $9721 defm "YOU HAVE ESCAPE" $9730 defb $c4 ; Routine at 9731 ; ; Used by the routine at #R$91bc. @label=chk_trap_exit c$9731 ld bc,$1818 ; 24x24 $9734 call $90cc ; fallen into trap door? $9737 jp nc,$91fe ; jump if not $973a call $8093 ; clear screen and attrs of play area $973d ld a,$96 ; room 150 is trap door tunnel $973f push ix ; $9741 call $9bf1 ; draw trap door lines $9744 pop ix ; $9746 ld b,$80 ; 128 frames of tunnel animation @label=loc_9748 *$9748 ld a,($5c78) ; $974b ld c,a ; @label=loc_974C *$974c push bc ; $974d ld a,b ; $974e cpl ; ~frame counter is effect frequency $974f ld b,a ; $9750 call $a3a8 ; short beep $9753 pop bc ; $9754 ld a,($5c78) ; $9757 cp c ; same frame? $9758 jr z,$974c ; loop back to continue sound effect $975a and $07 ; frame 1-7? $975c ld a,$00 ; black $975e jr nz,$9762 ; jump if so (use black) $9760 ld a,$47 ; bright white @label=loc_9762 *$9762 ld l,a ; $9763 ld h,a ; $9764 ld ($596b),hl ; $9767 ld ($598b),hl ; $976a push bc ; $976b call $9774 ; $976e pop bc ; $976f djnz $9748 ; loop until end of effect $9771 jp $9117 ; move player to room linked to entity (usually door) ; Routine at 9774 ; ; Used by the routine at #R$9731. @label=draw_tunnel_attrs c$9774 ld bc,$170b ; 23x11 (for 24x24 final area) $9777 ld hl,$5ae0 ; $977a ld de,$0020 ; line pitch is 32 bytes @label=loc_977D *$977d push hl ; $977e and a ; $977f sbc hl,de ; $9781 inc l ; $9782 ld a,(hl) ; $9783 pop hl ; $9784 push bc ; @label=loc_9785 *$9785 ld (hl),a ; draw horizontal bar $9786 inc l ; forwards $9787 djnz $9785 ; $9789 pop bc ; $978a push bc ; @label=loc_978B *$978b ld (hl),a ; draw vertical bar $978c and a ; backwards $978d sbc hl,de ; $978f djnz $978b ; $9791 pop bc ; $9792 push bc ; @label=loc_9793 *$9793 ld (hl),a ; draw horizontal bar $9794 dec l ; backwards $9795 djnz $9793 ; $9797 pop bc ; $9798 push bc ; @label=loc_9799 *$9799 ld (hl),a ; draw vertical bar $979a add hl,de ; forwards $979b djnz $9799 ; $979d ld (hl),a ; $979e and a ; $979f sbc hl,de ; $97a1 inc l ; $97a2 pop bc ; $97a3 dec b ; $97a4 dec b ; $97a5 dec c ; $97a6 jr nz,$977d ; $97a8 ret ; ; Data block at 97a9 @label=points_trap b$97a9 defb $5c,$63 $97ab defb $63,$63 $97ad defb $63,$5c $97af defb $5c,$5c $97b1 defb $54,$6b $97b3 defb $6b,$6b $97b5 defb $6b,$54 $97b7 defb $54,$54 $97b9 defb $4c,$73 $97bb defb $73,$73 $97bd defb $73,$4c $97bf defb $4c,$4c $97c1 defb $44,$7b $97c3 defb $7b,$7b $97c5 defb $7b,$44 $97c7 defb $44,$44 $97c9 defb $3c,$83 $97cb defb $83,$83 $97cd defb $83,$3c $97cf defb $3c,$3c $97d1 defb $34,$8b $97d3 defb $8b,$8b $97d5 defb $8b,$34 $97d7 defb $34,$34 $97d9 defb $2c,$93 $97db defb $93,$93 $97dd defb $93,$2c $97df defb $2c,$2c $97e1 defb $24,$9b $97e3 defb $9b,$9b $97e5 defb $9b,$24 $97e7 defb $24,$24 $97e9 defb $1c,$a3 $97eb defb $a3,$a3 $97ed defb $a3,$1c $97ef defb $1c,$1c $97f1 defb $14,$ab $97f3 defb $ab,$ab $97f5 defb $ab,$14 $97f7 defb $14,$14 $97f9 defb $0c,$b3 $97fb defb $b3,$b3 $97fd defb $b3,$0c $97ff defb $0c,$0c $9801 defb $04,$bb $9803 defb $bb,$bb $9805 defb $bb,$04 $9807 defb $04,$04 ; Data block at 9809 @label=lines_trap b$9809 defb $00,$01,$03,$ff $980d defb $02,$01,$03,$ff $9811 defb $04,$05,$07,$ff $9815 defb $06,$05,$07,$ff $9819 defb $08,$09,$0b,$ff $981d defb $0a,$09,$0b,$ff $9821 defb $0c,$0d,$0f,$ff $9825 defb $0e,$0d,$0f,$ff $9829 defb $10,$11,$13,$ff $982d defb $12,$11,$13,$ff $9831 defb $14,$15,$17,$ff $9835 defb $16,$15,$17,$ff $9839 defb $18,$19,$1b,$ff $983d defb $1a,$19,$1b,$ff $9841 defb $1c,$1d,$1f,$ff $9845 defb $1e,$1d,$1f,$ff $9849 defb $20,$21,$23,$ff $984d defb $22,$21,$23,$ff $9851 defb $24,$25,$27,$ff $9855 defb $26,$25,$27,$ff $9859 defb $28,$29,$2b,$ff $985d defb $2a,$29,$2b,$ff $9861 defb $2c,$2d,$2f,$ff $9865 defb $2e,$2d,$2f,$ff $9869 defb $ff ; auto-walk into the room ; ; Used by the routine at #R$9117. @label=set_entry_walk c$986a ld a,(ix+$05) ; b7-6 is door facing direction (00=down, 01=left, 10=up, ; 11=right) $986d rlca ; $986e rlca ; move to b1-0 $986f rlca ; * 2 $9870 and $06 ; mask to look-up offset $9872 ld c,a ; $9873 ld b,$00 ; $9875 ld hl,$9883 ; $9878 add hl,bc ; $9879 ld a,(hl) ; $987a inc hl ; $987b ld ($ea96),a ; $987e ld a,(hl) ; $987f ld ($ea97),a ; $9882 ret ; ; Data block at 9883 @label=walk_dir b$9883 defb $00,$20 ; walk down $9885 defb $e0,$00 ; walk left ($e0 is actually -$20) $9887 defb $00,$e0 ; walk up ($e0 is actually -$20) $9889 defb $20,$00 ; walk right ; mushroom handler @label=h_mushroom c$988b call $9ffb ; save entity position for undraw $988e call $90fb ; check if player is touching entity $9891 jr c,$98b1 ; @label=loc_9893 *$9893 ld a,($5e12) ; $9896 cpl ; $9897 and $03 ; time to change colour? (every 4 frames) $9899 jr nz,$989e ; jump if not $989b inc (ix+$06) ; cycle colour @label=loc_989E *$989e ld a,(ix+$06) ; $98a1 and $03 ; 4 possible colours $98a3 ld c,a ; $98a4 ld b,$00 ; $98a6 ld hl,$98c4 ; $98a9 add hl,bc ; $98aa ld a,(hl) ; new mushroom attr $98ab ld (ix+$05),a ; set colour $98ae jp $92e0 ; draw 16x16 entity @label=loc_98B1 *$98b1 ld a,($5e28) ; $98b4 dec a ; $98b5 ld ($5e28),a ; $98b8 jp z,$98c8 ; $98bb call $8b8a ; draw chicken energy bar $98be call $a3e5 ; play monster touched sound $98c1 jp $9893 ; ; Data block at 98c4 @label=mushroom_attrs b$98c4 defb $42 ; bright red $98c5 defb $43 ; bright magenta $98c6 defb $46 ; bright yellow $98c7 defb $43 ; bright magenta ; Routine at 98c8 ; ; Used by the routine at #R$988b. @label=mushroom_death c$98c8 call $9f56 ; $98cb ld (ix+$00),$00 ; remove mushroom $98cf jp $8ea0 ; ; set positions of red/green/cyan keys, and mummy ; ; Used by the routine at #R$7d9a. @label=set_key_positions c$98d2 ld a,($5c78) ; $98d5 ld hl,$990c ; $98d8 call $9904 ; $98db ld ($603e),a ; set green key room $98de ld a,($5c78) ; $98e1 ld c,a ; $98e2 ld a,($5e12) ; $98e5 add a,c ; $98e6 ld hl,$9914 ; $98e9 call $9904 ; $98ec ld ($6046),a ; set red key room $98ef ld ($640e),a ; set Mummy room to match $98f2 ld a,($5c79) ; $98f5 ld c,a ; $98f6 ld a,($5e13) ; $98f9 add a,c ; $98fa ld hl,$991c ; $98fd call $9904 ; $9900 ld ($604e),a ; set cyan key room $9903 ret ; ; Routine at 9904 ; ; Used by the routine at #R$98d2. @label=get_key_room c$9904 and $07 ; $9906 ld c,a ; $9907 ld b,$00 ; $9909 add hl,bc ; $990a ld a,(hl) ; $990b ret ; ; Data block at 990c @label=green_key_rooms b$990c defb $05,$06,$07,$6d,$25,$24,$23,$22 @label=red_key_rooms $9914 defb $17,$13,$09,$0d,$89,$87,$80,$85 @label=cyan_key_rooms $991c defb $53,$8f,$41,$94,$33,$91,$39,$4c ; periodically replenish consumed food ; ; Used by the routine at #R$7e13. @label=replenish_food c$9924 ld a,($5e12) ; $9927 ld c,a ; $9928 ld a,($5e13) ; $992b and $01 ; $992d or c ; 9-bit counter value zero? $992e ret nz ; return if not $992f ld hl,($5e55) ; $9932 ld de,$0008 ; 8 bytes per item $9935 add hl,de ; next food item $9936 ld ($5e55),hl ; $9939 push hl ; $993a pop ix ; $993c ld de,$edd8 ; end marker $993f and a ; $9940 sbc hl,de ; end of list? $9942 jr nc,$995b ; jump if so $9944 ld a,($ea91) ; $9947 cp (ix+$01) ; in player room? $994a ret z ; return if so $994b ld a,(ix+$00) ; $994e and a ; does food still exist? $994f ret nz ; return if so $9950 ld a,($5c78) ; pseudo random value $9953 and $07 ; 8 available food items $9955 add a,$50 ; add food base graphic $9957 ld (ix+$00),a ; set food graphic (replenish) $995a ret ; @label=loc_995B *$995b ld hl,$eb58 ; $995e ld ($5e55),hl ; $9961 ret ; ; This entry point is used by the routine at #R$9213. @label=draw_orientation *$9962 ld hl,$9970 ; ; This entry point is used by the routine at #R$9980. @label=jump_table_b *$9965 push bc ; $9966 ld a,b ; $9967 rlca ; $9968 rlca ; $9969 rlca ; move b7-5 to b2-0 $996a and $07 ; $996c ld c,a ; $996d jp $7e85 ; ; Data block at 9970 @label=disp_funcs w$9970 defw $99c9 ; normal $9972 defw $99e5 $9974 defw $9a0a $9976 defw $9a50 $9978 defw $9acb ; 180 degrees $997a defw $9aef $997c defw $9b14 ; right 90 degrees $997e defw $9b5d ; left 90 degrees ; B=attr, C=graphic, E=xpos, D=ypos ; ; Used by the routine at #R$91fe. @label=draw_bc_at_de c$9980 ld hl,$9985 ; $9983 jr $9965 ; ; Data block at 9985 @label=attr_funcs w$9985 defw $9d25 $9987 defw $9d47 $9989 defw $9d6f $998b defw $9da0 $998d defw $9dce $998f defw $9df8 $9991 defw $9e21 $9993 defw $9e55 ; C=gfx idx, DE=coords ; ; Used by the routines at #R$99c9, #R$99e5, #R$9a0a, #R$9a50, #R$9acb, #R$9aef, ; #R$9b14 and #R$9b5d. @label=get_gfx_data c$9995 ld hl,$a600 ; $9998 dec c ; 1-based $9999 ld b,$00 ; $999b sla c ; $999d rl b ; $999f add hl,bc ; $99a0 ld a,(hl) ; $99a1 inc hl ; $99a2 ld h,(hl) ; $99a3 ld l,a ; $99a4 ex de,hl ; $99a5 call $9ba2 ; convert coords in HL to display address in HL $99a8 ld a,(de) ; $99a9 ld b,a ; $99aa inc de ; $99ab ld a,(de) ; $99ac ld c,a ; $99ad inc de ; $99ae ret ; ; IN: C=gfx idx, DE=coords OUT: HL=attr addr, DE=attr data, B=width, C=height ; ; Used by the routines at #R$9d25, #R$9d47, #R$9d6f, #R$9da0, #R$9dce, #R$9df8, ; #R$9e21 and #R$9e55. @label=get_gfx_attrs c$99af ld hl,$a64e ; $99b2 dec c ; 1-based $99b3 ld b,$00 ; $99b5 sla c ; $99b7 rl b ; $99b9 add hl,bc ; $99ba ld a,(hl) ; $99bb inc hl ; $99bc ld h,(hl) ; $99bd ld l,a ; $99be ex de,hl ; $99bf call $9bd2 ; convert pixel coords in HL to attribute address $99c2 ld a,(de) ; $99c3 ld b,a ; $99c4 inc de ; $99c5 ld a,(de) ; $99c6 ld c,a ; $99c7 inc de ; $99c8 ret ; ; Routine at 99c9 @label=draw_disp_0 c$99c9 pop bc ; $99ca call $9d19 ; map A=0-2 to Z80 opcode used to blend graphics data $99cd ld ($99d7),a ; $99d0 call $9995 ; C=gfx idx, DE=coords @label=loc_99D3 *$99d3 push bc ; $99d4 push hl ; @label=loc_99D5 *$99d5 ld a,(de) ; $99d6 inc de ; @label=loc_99D7 $99d7 nop ; $99d8 ld (hl),a ; $99d9 inc l ; $99da djnz $99d5 ; $99dc pop hl ; $99dd call $9f03 ; move up 1 display line in HL $99e0 pop bc ; $99e1 dec c ; $99e2 jr nz,$99d3 ; $99e4 ret ; ; Routine at 99e5 @label=draw_disp_1 c$99e5 pop bc ; $99e6 call $9d19 ; map A=0-2 to Z80 opcode used to blend graphics data $99e9 ld ($99f9),a ; $99ec call $9995 ; C=gfx idx, DE=coords @label=loc_99EF *$99ef push bc ; $99f0 push hl ; $99f1 call $9a9d ; add B to DE @label=loc_99F4 *$99f4 dec de ; $99f5 ld a,(de) ; graphic data byte $99f6 call $9a92 ; mirror bits in A @label=blend_instr $99f9 nop ; $99fa ld (hl),a ; write to display $99fb inc l ; $99fc djnz $99f4 ; $99fe pop hl ; $99ff call $9f03 ; move up 1 display line in HL $9a02 pop bc ; $9a03 call $9a9d ; add B to DE $9a06 dec c ; $9a07 jr nz,$99ef ; $9a09 ret ; ; Routine at 9a0a @label=draw_disp_2 c$9a0a pop bc ; $9a0b call $9d19 ; map A=0-2 to Z80 opcode used to blend graphics data $9a0e ld ($9a36),a ; $9a11 call $9995 ; C=gfx idx, DE=coords $9a14 ld a,b ; $9a15 exx ; $9a16 ld l,$01 ; $9a18 ld b,a ; $9a19 exx ; $9a1a call $9a9d ; add B to DE $9a1d dec de ; @label=loc_9A1E *$9a1e push bc ; $9a1f push de ; $9a20 push hl ; @label=loc_9A21 *$9a21 ld a,(de) ; $9a22 exx ; $9a23 and l ; $9a24 jr z,$9a27 ; $9a26 scf ; @label=loc_9A27 *$9a27 rl h ; $9a29 exx ; $9a2a call $9a9d ; add B to DE $9a2d dec c ; $9a2e ld a,c ; $9a2f and $07 ; $9a31 jr nz,$9a21 ; $9a33 exx ; $9a34 ld a,h ; $9a35 exx ; @label=loc_9A36 $9a36 nop ; $9a37 ld (hl),a ; $9a38 inc l ; $9a39 ld a,c ; $9a3a and a ; $9a3b jr nz,$9a21 ; $9a3d pop hl ; $9a3e call $9f03 ; move up 1 display line in HL $9a41 pop de ; $9a42 pop bc ; $9a43 exx ; $9a44 rlc l ; $9a46 exx ; $9a47 jr nc,$9a1e ; $9a49 exx ; $9a4a dec b ; $9a4b exx ; $9a4c ret z ; $9a4d dec de ; $9a4e jr $9a1e ; ; Routine at 9a50 @label=draw_disp_3 c$9a50 pop bc ; $9a51 call $9d19 ; map A=0-2 to Z80 opcode used to blend graphics data $9a54 ld ($9a78),a ; $9a57 call $9995 ; C=gfx idx, DE=coords $9a5a ld a,b ; $9a5b exx ; $9a5c ld b,a ; $9a5d ld l,$80 ; $9a5f exx ; @label=loc_9A60 *$9a60 push bc ; $9a61 push de ; $9a62 push hl ; @label=loc_9A63 *$9a63 ld a,(de) ; $9a64 exx ; $9a65 and l ; $9a66 jr z,$9a69 ; $9a68 scf ; @label=loc_9A69 *$9a69 rl h ; $9a6b exx ; $9a6c call $9a9d ; add B to DE $9a6f dec c ; $9a70 ld a,c ; $9a71 and $07 ; $9a73 jr nz,$9a63 ; $9a75 exx ; $9a76 ld a,h ; $9a77 exx ; @label=loc_9A78 $9a78 nop ; $9a79 ld (hl),a ; $9a7a inc l ; $9a7b ld a,c ; $9a7c and a ; $9a7d jr nz,$9a63 ; $9a7f pop hl ; $9a80 call $9f03 ; move up 1 display line in HL $9a83 pop de ; $9a84 pop bc ; $9a85 exx ; $9a86 rrc l ; $9a88 exx ; $9a89 jr nc,$9a60 ; $9a8b exx ; $9a8c dec b ; $9a8d exx ; $9a8e ret z ; $9a8f inc de ; $9a90 jr $9a60 ; ; mirror bits in A ; ; Used by the routines at #R$99e5 and #R$9aef. @label=mirror_a c$9a92 push bc ; $9a93 ld b,$08 ; @label=loc_9A95 *$9a95 rla ; $9a96 rr c ; $9a98 djnz $9a95 ; $9a9a ld a,c ; $9a9b pop bc ; $9a9c ret ; ; add B to DE ; ; Used by the routines at #R$99e5, #R$9a0a, #R$9a50, #R$9aef, #R$9b14, #R$9d47, ; #R$9d6f, #R$9da0, #R$9df8 and #R$9e21. @label=add_de_b c$9a9d ld a,b ; $9a9e add a,e ; $9a9f ld e,a ; $9aa0 ld a,d ; $9aa1 adc a,$00 ; $9aa3 ld d,a ; $9aa4 ret ; ; subtract B from DE ; ; Used by the routines at #R$9acb, #R$9b14, #R$9b5d, #R$9dce, #R$9e21 and ; #R$9e55. @label=sbc_de_b c$9aa5 ld a,e ; $9aa6 sub b ; $9aa7 ld e,a ; $9aa8 ld a,d ; $9aa9 sbc a,$00 ; $9aab ld d,a ; $9aac ret ; ; HL = DE * A ; ; Used by the routines at #R$8b8a and #R$9aba. @label=mult_de_a c$9aad ld hl,$0000 ; $9ab0 ld b,$08 ; @label=loc_9AB2 *$9ab2 add hl,hl ; $9ab3 rlca ; $9ab4 jr nc,$9ab7 ; $9ab6 add hl,de ; @label=loc_9AB7 *$9ab7 djnz $9ab2 ; $9ab9 ret ; ; HL = DE + B * C ; ; Used by the routines at #R$9acb, #R$9aef, #R$9b14, #R$9b5d, #R$9dce, #R$9df8, ; #R$9e21 and #R$9e55. @label=hl_de_b_c c$9aba push hl ; $9abb push de ; $9abc ld a,b ; $9abd ld e,c ; $9abe dec e ; convert 1-based to 0-based $9abf ld d,$00 ; $9ac1 push bc ; $9ac2 call $9aad ; HL = DE * A $9ac5 pop bc ; $9ac6 pop de ; $9ac7 add hl,de ; $9ac8 ex de,hl ; $9ac9 pop hl ; $9aca ret ; ; Routine at 9acb @label=draw_disp_4 c$9acb pop bc ; $9acc call $9d19 ; map A=0-2 to Z80 opcode used to blend graphics data $9acf ld ($9add),a ; $9ad2 call $9995 ; C=gfx idx, DE=coords $9ad5 call $9aba ; HL = DE + B * C @label=loc_9AD8 *$9ad8 push bc ; $9ad9 push de ; $9ada push hl ; @label=loc_9ADB *$9adb ld a,(de) ; $9adc inc de ; @label=loc_9ADD $9add nop ; $9ade ld (hl),a ; $9adf inc l ; $9ae0 djnz $9adb ; $9ae2 pop hl ; $9ae3 call $9f03 ; move up 1 display line in HL $9ae6 pop de ; $9ae7 pop bc ; $9ae8 call $9aa5 ; subtract B from DE $9aeb dec c ; $9aec jr nz,$9ad8 ; $9aee ret ; ; Routine at 9aef @label=draw_disp_5 c$9aef pop bc ; $9af0 call $9d19 ; map A=0-2 to Z80 opcode used to blend graphics data $9af3 ld ($9b06),a ; $9af6 call $9995 ; C=gfx idx, DE=coords $9af9 call $9aba ; HL = DE + B * C $9afc call $9a9d ; add B to DE @label=loc_9AFF *$9aff push bc ; $9b00 push hl ; @label=loc_9B01 *$9b01 dec de ; $9b02 ld a,(de) ; $9b03 call $9a92 ; mirror bits in A @label=loc_9B06 $9b06 nop ; $9b07 ld (hl),a ; $9b08 inc l ; $9b09 djnz $9b01 ; $9b0b pop hl ; $9b0c call $9f03 ; move up 1 display line in HL $9b0f pop bc ; $9b10 dec c ; $9b11 jr nz,$9aff ; $9b13 ret ; ; Routine at 9b14 @label=draw_disp_6 c$9b14 pop bc ; $9b15 call $9d19 ; map A=0-2 to Z80 opcode used to blend graphics data $9b18 ld ($9b43),a ; $9b1b call $9995 ; C=gfx idx, DE=coords $9b1e ld a,b ; $9b1f exx ; $9b20 ld b,a ; $9b21 ld l,$01 ; $9b23 exx ; $9b24 call $9a9d ; add B to DE $9b27 dec de ; $9b28 call $9aba ; HL = DE + B * C @label=loc_9B2B *$9b2b push bc ; $9b2c push de ; $9b2d push hl ; @label=loc_9B2E *$9b2e ld a,(de) ; $9b2f exx ; $9b30 and l ; $9b31 jr z,$9b34 ; $9b33 scf ; @label=loc_9B34 *$9b34 rl h ; $9b36 exx ; $9b37 call $9aa5 ; subtract B from DE $9b3a dec c ; $9b3b ld a,c ; $9b3c and $07 ; $9b3e jr nz,$9b2e ; $9b40 exx ; $9b41 ld a,h ; $9b42 exx ; @label=loc_9B43 $9b43 nop ; $9b44 ld (hl),a ; $9b45 inc l ; $9b46 ld a,c ; $9b47 and a ; $9b48 jr nz,$9b2e ; $9b4a pop hl ; $9b4b call $9f03 ; move up 1 display line in HL $9b4e pop de ; $9b4f pop bc ; $9b50 exx ; $9b51 rlc l ; $9b53 exx ; $9b54 jr nc,$9b2b ; $9b56 exx ; $9b57 dec b ; $9b58 exx ; $9b59 ret z ; $9b5a dec de ; $9b5b jr $9b2b ; ; Routine at 9b5d @label=draw_disp_7 c$9b5d pop bc ; $9b5e call $9d19 ; map A=0-2 to Z80 opcode used to blend graphics data $9b61 ld ($9b88),a ; $9b64 call $9995 ; C=gfx idx, DE=coords $9b67 ld a,b ; $9b68 exx ; $9b69 ld b,a ; $9b6a ld l,$80 ; $9b6c exx ; $9b6d call $9aba ; HL = DE + B * C @label=loc_9B70 *$9b70 push bc ; $9b71 push de ; $9b72 push hl ; @label=loc_9B73 *$9b73 ld a,(de) ; $9b74 exx ; $9b75 and l ; $9b76 jr z,$9b79 ; $9b78 scf ; @label=loc_9B79 *$9b79 rl h ; $9b7b exx ; $9b7c call $9aa5 ; subtract B from DE $9b7f dec c ; $9b80 ld a,c ; $9b81 and $07 ; $9b83 jr nz,$9b73 ; $9b85 exx ; $9b86 ld a,h ; $9b87 exx ; @label=loc_9B88 $9b88 nop ; $9b89 ld (hl),a ; $9b8a inc l ; $9b8b ld a,c ; $9b8c and a ; $9b8d jr nz,$9b73 ; $9b8f pop hl ; $9b90 call $9f03 ; move up 1 display line in HL $9b93 pop de ; $9b94 pop bc ; $9b95 exx ; $9b96 rrc l ; $9b98 exx ; $9b99 jr nc,$9b70 ; $9b9b exx ; $9b9c dec b ; $9b9d exx ; $9b9e ret z ; $9b9f inc de ; $9ba0 jr $9b70 ; ; convert coords in HL to display address in HL ; ; Used by the routines at #R$7d8a, #R$8b8a, #R$9607, #R$9641, #R$9995, #R$9c61, ; #R$9f80, #R$9f9f, #R$a185, #R$a1b7, #R$a1f3 and #R$a219. @label=xy_to_display c$9ba2 ld a,l ; $9ba3 rrca ; $9ba4 rrca ; $9ba5 rrca ; $9ba6 and $1f ; $9ba8 ld l,a ; $9ba9 ld a,h ; $9baa rlca ; $9bab rlca ; $9bac and $e0 ; $9bae or l ; $9baf ld l,a ; $9bb0 ld a,h ; $9bb1 and $07 ; $9bb3 ex af,af' ; $9bb4 ld a,h ; $9bb5 rrca ; $9bb6 rrca ; $9bb7 rrca ; $9bb8 and $18 ; $9bba or $40 ; $9bbc ld h,a ; $9bbd ex af,af' ; $9bbe or h ; $9bbf ld h,a ; $9bc0 ret ; ; Routine at 9bc1 @label=pixel_line_down c$9bc1 inc h ; $9bc2 ld a,h ; $9bc3 and $07 ; $9bc5 ret nz ; $9bc6 ld a,l ; $9bc7 add a,$20 ; $9bc9 ld l,a ; $9bca and $e0 ; $9bcc ret z ; $9bcd ld a,h ; $9bce sub $08 ; $9bd0 ld h,a ; $9bd1 ret ; ; convert pixel coords in HL to attribute address ; ; Used by the routines at #R$7d8a, #R$8c8c, #R$99af, #R$a00e, #R$a1f3 and ; #R$a240. @label=xy_to_attr c$9bd2 push bc ; $9bd3 ld a,l ; $9bd4 rrca ; $9bd5 rrca ; $9bd6 rrca ; $9bd7 and $1f ; $9bd9 ld l,a ; $9bda ld a,h ; $9bdb rlca ; $9bdc rlca ; $9bdd ld c,a ; $9bde and $e0 ; $9be0 or l ; $9be1 ld l,a ; $9be2 ld a,c ; $9be3 and $03 ; $9be5 or $58 ; $9be7 ld h,a ; $9be8 pop bc ; $9be9 ret ; ; draw lines that make up outer room frame ; ; Used by the routine at #R$9117. @label=draw_room_frame c$9bea xor a ; $9beb ld ($5e14),a ; b0 set if room content drawn $9bee ld a,($ea91) ; ; This entry point is used by the routine at #R$9731. @label=draw_room_a *$9bf1 ld bc,$a854 ; room attr colour and style (0-B) $9bf4 ld l,a ; $9bf5 ld h,$00 ; $9bf7 add hl,hl ; 2 bytes per entry $9bf8 add hl,bc ; $9bf9 ld a,(hl) ; attr colour $9bfa inc hl ; $9bfb ld ($5e1a),a ; $9bfe exx ; $9bff ld hl,$5800 ; $9c02 ld bc,$1818 ; 24x24 room area $9c05 ld a,($5e1a) ; $9c08 call $809a ; fill C rows of B columns of value A at address HL $9c0b exx ; $9c0c ld l,(hl) ; style? $9c0d ld h,$00 ; $9c0f add hl,hl ; * 2 $9c10 ld c,l ; $9c11 ld b,h ; $9c12 add hl,hl ; * 4 $9c13 add hl,bc ; * 6 $9c14 ld bc,$a982 ; $9c17 add hl,bc ; $9c18 ld a,(hl) ; $9c19 inc hl ; $9c1a ld ($5e1d),a ; $9c1d ld a,(hl) ; $9c1e inc hl ; $9c1f ld ($5e1e),a ; $9c22 ld e,(hl) ; points LSB $9c23 inc hl ; $9c24 ld d,(hl) ; points MSB $9c25 inc hl ; $9c26 ld a,(hl) ; lines LSB $9c27 inc hl ; $9c28 ld h,(hl) ; lines MSB $9c29 ld l,a ; $9c2a push de ; $9c2b pop ix ; $9c2d push bc ; @label=loc_9C2E *$9c2e pop bc ; $9c2f ld a,(hl) ; x of first point $9c30 inc hl ; $9c31 cp $ff ; end marker? $9c33 ret z ; return if so $9c34 sla a ; * 2 (bytes per point) $9c36 ld ($9c3f),a ; offset of source x $9c39 inc a ; $9c3a ld ($9c42),a ; offset of source y @label=loc_9C3D $9c3d ld c,(ix+$00) ; source x @label=loc_9C40 $9c40 ld b,(ix+$00) ; source y @label=loc_9C43 *$9c43 push bc ; $9c44 ld a,(hl) ; next point x $9c45 inc hl ; $9c46 cp $ff ; end marker? $9c48 jr z,$9c2e ; jump if so (next source point) $9c4a sla a ; * 2 (bytes per point) $9c4c ld ($9c55),a ; offset of target x $9c4f inc a ; $9c50 ld ($9c58),a ; offset of target y @label=loc_9C53 $9c53 ld e,(ix+$00) ; target x @label=loc_9C56 $9c56 ld d,(ix+$00) ; target y $9c59 push hl ; $9c5a call $9c79 ; draw line from (B,C) to (D,E) $9c5d pop hl ; $9c5e pop bc ; $9c5f jr $9c43 ; next target point ; plot pixel at L,H ; ; Used by the routine at #R$9c79. @label=plot_l_h c$9c61 ld a,l ; $9c62 and $07 ; $9c64 inc a ; $9c65 ld b,a ; $9c66 xor a ; $9c67 scf ; @label=loc_9C68 *$9c68 rra ; $9c69 djnz $9c68 ; $9c6b push hl ; $9c6c push af ; $9c6d ex af,af' ; $9c6e push af ; $9c6f call $9ba2 ; convert coords in HL to display address in HL $9c72 pop af ; $9c73 ex af,af' ; $9c74 pop af ; $9c75 or (hl) ; merge pixel $9c76 ld (hl),a ; write to display $9c77 pop hl ; $9c78 ret ; ; draw line from (B,C) to (D,E) ; ; Used by the routine at #R$9bea. @label=draw_line_bc_de c$9c79 ld h,b ; move source point to HL $9c7a ld l,c ; $9c7b ld c,$00 ; clear flags $9c7d ld a,h ; $9c7e sub d ; drawing upwards? $9c7f jr nc,$9c85 ; jump if so $9c81 neg ; abs $9c83 set 0,c ; flag drawing down @label=loc_9C85 *$9c85 ld b,a ; vertical count $9c86 ld a,l ; $9c87 sub e ; drawing left? $9c88 jr nc,$9c8e ; jump if so $9c8a neg ; abs $9c8c set 1,c ; flag drawing right @label=loc_9C8E *$9c8e cp b ; drawing more horiz than vert? $9c8f ex af,af' ; $9c90 ld a,c ; $9c91 ld ($5e24),a ; $9c94 ex af,af' ; $9c95 jp c,$9cd6 ; jump if so $9c98 ld ($5e23),a ; horiz counter $9c9b push de ; $9c9c push hl ; $9c9d ld e,a ; horiz line size $9c9e ld d,$00 ; $9ca0 ld l,d ; $9ca1 ld h,b ; vert line size $9ca2 call $a379 ; determine Bresenham line slope step $9ca5 ld a,($5e24) ; $9ca8 bit 0,a ; $9caa jr nz,$9caf ; $9cac call $a39e ; HL = -DE @label=loc_9CAF *$9caf ld a,($5e24) ; $9cb2 bit 1,a ; drawing down? $9cb4 ld c,$01 ; y step $9cb6 jr nz,$9cba ; jump if so $9cb8 ld c,$ff ; y step @label=loc_9CBA *$9cba ex de,hl ; $9cbb pop hl ; $9cbc ld a,($5e23) ; $9cbf inc a ; $9cc0 ld b,a ; $9cc1 ld a,e ; $9cc2 ex af,af' ; @label=loc_9CC3 *$9cc3 push bc ; $9cc4 call $9c61 ; plot pixel at L,H $9cc7 ld a,l ; $9cc8 ex af,af' ; $9cc9 ld l,a ; $9cca add hl,de ; step partial x $9ccb ld a,l ; $9ccc ex af,af' ; $9ccd pop bc ; $9cce add a,c ; step y $9ccf ld l,a ; $9cd0 djnz $9cc3 ; $9cd2 pop hl ; $9cd3 jp $9c61 ; plot pixel at L,H @label=loc_9CD6 *$9cd6 ex af,af' ; $9cd7 ld a,b ; $9cd8 ld ($5e23),a ; vert counter $9cdb ex af,af' ; $9cdc push de ; $9cdd push hl ; $9cde ld e,b ; $9cdf ld d,$00 ; $9ce1 ld l,d ; $9ce2 ld h,a ; $9ce3 call $a379 ; determine Bresenham line slope step $9ce6 ld a,($5e24) ; $9ce9 bit 1,a ; drawing right? $9ceb jr nz,$9cf0 ; jump if so $9ced call $a39e ; HL = -DE @label=loc_9CF0 *$9cf0 ld a,($5e24) ; $9cf3 bit 0,a ; drawing right? $9cf5 ld c,$01 ; x step $9cf7 jr nz,$9cfb ; jump if so $9cf9 ld c,$ff ; x step @label=loc_9CFB *$9cfb ex de,hl ; $9cfc pop hl ; $9cfd ld a,($5e23) ; $9d00 inc a ; $9d01 ld b,a ; $9d02 ld a,e ; $9d03 ex af,af' ; @label=loc_9D04 *$9d04 push bc ; $9d05 call $9c61 ; plot pixel at L,H $9d08 ld a,h ; $9d09 ex af,af' ; $9d0a ld h,l ; $9d0b ld l,a ; $9d0c add hl,de ; step partial y $9d0d ld a,l ; $9d0e ld l,h ; $9d0f ex af,af' ; $9d10 pop bc ; $9d11 add a,c ; step x $9d12 ld h,a ; $9d13 djnz $9d04 ; $9d15 pop hl ; $9d16 jp $9c61 ; plot pixel at L,H ; map A=0-2 to Z80 opcode used to blend graphics data ; ; Used by the routines at #R$99c9, #R$99e5, #R$9a0a, #R$9a50, #R$9acb, #R$9aef, ; #R$9b14 and #R$9b5d. @label=get_blend_instr c$9d19 ld a,b ; $9d1a and $03 ; $9d1c ret z ; return $9d1d cp $01 ; $9d1f ld a,$ae ; $9d21 ret nz ; return $9d22 add a,$08 ; $9d24 ret ; return ; Routine at 9d25 @label=draw_attr_0 c$9d25 pop bc ; $9d26 call $99af ; IN @label=loc_9D29 *$9d29 push bc ; $9d2a push hl ; @label=loc_9D2B *$9d2b ld a,(de) ; attr byte $9d2c inc de ; $9d2d and a ; skip attr? $9d2e jr z,$9d38 ; jump if so $9d30 cp $ff ; use room attr? $9d32 jr nz,$9d37 ; jump if not $9d34 ld a,($5e1a) ; @label=loc_9D37 *$9d37 ld (hl),a ; set attr @label=loc_9D38 *$9d38 inc l ; $9d39 djnz $9d2b ; $9d3b pop hl ; $9d3c ld bc,$0020 ; line pitch $9d3f and a ; $9d40 sbc hl,bc ; up a row $9d42 pop bc ; $9d43 dec c ; $9d44 jr nz,$9d29 ; $9d46 ret ; ; Routine at 9d47 @label=draw_attr_1 c$9d47 pop bc ; $9d48 call $99af ; IN $9d4b dec de ; @label=loc_9D4C *$9d4c call $9a9d ; add B to DE $9d4f push bc ; $9d50 push de ; $9d51 push hl ; @label=loc_9D52 *$9d52 ld a,(de) ; attr byte $9d53 dec de ; $9d54 and a ; skip attr? $9d55 jr z,$9d5f ; jump if so $9d57 cp $ff ; use room attr? $9d59 jr nz,$9d5e ; jump if not $9d5b ld a,($5e1a) ; @label=loc_9D5E *$9d5e ld (hl),a ; set attr @label=loc_9D5F *$9d5f inc l ; $9d60 djnz $9d52 ; $9d62 pop hl ; $9d63 ld bc,$0020 ; line pitch $9d66 and a ; $9d67 sbc hl,bc ; up a row $9d69 pop de ; $9d6a pop bc ; $9d6b dec c ; $9d6c jr nz,$9d4c ; $9d6e ret ; ; Routine at 9d6f @label=draw_attr_2 c$9d6f pop bc ; $9d70 call $99af ; IN $9d73 ld a,b ; $9d74 exx ; $9d75 ld b,a ; $9d76 exx ; $9d77 call $9a9d ; add B to DE @label=loc_9D7A *$9d7a dec de ; $9d7b push bc ; $9d7c push de ; $9d7d push hl ; @label=loc_9D7E *$9d7e ld a,(de) ; attr byte $9d7f and a ; skip attr? $9d80 jr z,$9d8a ; jump if so $9d82 cp $ff ; use room attr? $9d84 jr nz,$9d89 ; jump if not $9d86 ld a,($5e1a) ; @label=loc_9D89 *$9d89 ld (hl),a ; set attr @label=loc_9D8A *$9d8a call $9a9d ; add B to DE $9d8d inc l ; $9d8e dec c ; $9d8f jr nz,$9d7e ; $9d91 pop hl ; $9d92 ld bc,$0020 ; line pitch $9d95 and a ; $9d96 sbc hl,bc ; up a row $9d98 pop de ; $9d99 pop bc ; $9d9a exx ; $9d9b dec b ; $9d9c exx ; $9d9d jr nz,$9d7a ; $9d9f ret ; ; Routine at 9da0 @label=draw_attr_3 c$9da0 pop bc ; $9da1 call $99af ; IN $9da4 ld a,b ; $9da5 exx ; $9da6 ld b,a ; $9da7 exx ; @label=loc_9DA8 *$9da8 push bc ; $9da9 push de ; $9daa push hl ; @label=loc_9DAB *$9dab ld a,(de) ; $9dac and a ; skip attr? $9dad jr z,$9db7 ; jump if so $9daf cp $ff ; use room attr? $9db1 jr nz,$9db6 ; jump if not $9db3 ld a,($5e1a) ; @label=loc_9DB6 *$9db6 ld (hl),a ; set attr @label=loc_9DB7 *$9db7 call $9a9d ; add B to DE $9dba inc l ; $9dbb dec c ; $9dbc jr nz,$9dab ; $9dbe pop hl ; $9dbf ld bc,$0020 ; line pitch $9dc2 and a ; $9dc3 sbc hl,bc ; up a row $9dc5 pop de ; $9dc6 pop bc ; $9dc7 inc de ; $9dc8 exx ; $9dc9 dec b ; $9dca exx ; $9dcb jr nz,$9da8 ; $9dcd ret ; ; Routine at 9dce @label=draw_attr_4 c$9dce pop bc ; $9dcf call $99af ; IN $9dd2 call $9aba ; HL = DE + B * C @label=loc_9DD5 *$9dd5 push bc ; $9dd6 push de ; $9dd7 push hl ; @label=loc_9DD8 *$9dd8 ld a,(de) ; $9dd9 inc de ; $9dda and a ; skip attr? $9ddb jr z,$9de5 ; jump if so $9ddd cp $ff ; use room attr? $9ddf jr nz,$9de4 ; jump if not $9de1 ld a,($5e1a) ; @label=loc_9DE4 *$9de4 ld (hl),a ; set attr @label=loc_9DE5 *$9de5 inc l ; $9de6 djnz $9dd8 ; $9de8 pop hl ; $9de9 ld bc,$0020 ; line pitch $9dec and a ; $9ded sbc hl,bc ; up a row $9def pop de ; $9df0 pop bc ; $9df1 call $9aa5 ; subtract B from DE $9df4 dec c ; $9df5 jr nz,$9dd5 ; $9df7 ret ; ; Routine at 9df8 @label=draw_attr_5 c$9df8 pop bc ; $9df9 call $99af ; IN $9dfc call $9aba ; HL = DE + B * C $9dff call $9a9d ; add B to DE $9e02 dec de ; @label=loc_9E03 *$9e03 push bc ; $9e04 push hl ; @label=loc_9E05 *$9e05 ld a,(de) ; $9e06 dec de ; $9e07 and a ; skip attr? $9e08 jr z,$9e12 ; jump if so $9e0a cp $ff ; use room attr? $9e0c jr nz,$9e11 ; jump if not $9e0e ld a,($5e1a) ; @label=loc_9E11 *$9e11 ld (hl),a ; set attr @label=loc_9E12 *$9e12 inc l ; $9e13 djnz $9e05 ; $9e15 pop hl ; $9e16 ld bc,$0020 ; line pitch $9e19 and a ; $9e1a sbc hl,bc ; up a row $9e1c pop bc ; $9e1d dec c ; $9e1e jr nz,$9e03 ; $9e20 ret ; ; Routine at 9e21 @label=draw_attr_6 c$9e21 pop bc ; $9e22 call $99af ; IN $9e25 ld a,b ; $9e26 exx ; $9e27 ld b,a ; $9e28 exx ; $9e29 call $9aba ; HL = DE + B * C $9e2c call $9a9d ; add B to DE @label=loc_9E2F *$9e2f dec de ; $9e30 push bc ; $9e31 push de ; $9e32 push hl ; @label=loc_9E33 *$9e33 ld a,(de) ; $9e34 and a ; skip attr? $9e35 jr z,$9e3f ; jump if so $9e37 cp $ff ; use room attr? $9e39 jr nz,$9e3e ; jump if not $9e3b ld a,($5e1a) ; @label=loc_9E3E *$9e3e ld (hl),a ; set attr @label=loc_9E3F *$9e3f call $9aa5 ; subtract B from DE $9e42 inc l ; $9e43 dec c ; $9e44 jr nz,$9e33 ; $9e46 pop hl ; $9e47 ld bc,$0020 ; line pitch $9e4a and a ; $9e4b sbc hl,bc ; up a row $9e4d pop de ; $9e4e pop bc ; $9e4f exx ; $9e50 dec b ; $9e51 exx ; $9e52 jr nz,$9e2f ; $9e54 ret ; ; Routine at 9e55 @label=draw_attr_7 c$9e55 pop bc ; $9e56 call $99af ; IN $9e59 ld a,b ; $9e5a exx ; $9e5b ld b,a ; $9e5c exx ; $9e5d call $9aba ; HL = DE + B * C @label=loc_9E60 *$9e60 push bc ; $9e61 push de ; $9e62 push hl ; @label=loc_9E63 *$9e63 ld a,(de) ; $9e64 and a ; skip attr? $9e65 jr z,$9e6f ; jump if so $9e67 cp $ff ; use room attr? $9e69 jr nz,$9e6e ; jump if not $9e6b ld a,($5e1a) ; @label=loc_9E6E *$9e6e ld (hl),a ; set attr @label=loc_9E6F *$9e6f call $9aa5 ; subtract B from DE $9e72 inc l ; $9e73 dec c ; $9e74 jr nz,$9e63 ; $9e76 pop hl ; $9e77 ld bc,$0020 ; line pitch $9e7a and a ; $9e7b sbc hl,bc ; up a row $9e7d pop de ; $9e7e pop bc ; $9e7f inc de ; $9e80 exx ; $9e81 dec b ; $9e82 exx ; $9e83 jr nz,$9e60 ; $9e85 ret ; ; return address of sprite A in DE ; ; Used by the routine at #R$9f80. @label=get_sprite_a c$9e86 ld a,($5e15) ; ; return address of sprite A in DE ; ; Used by the routines at #R$8cb7, #R$8d45, #R$8e26 and #R$9e96. @label=get_sprite_addr c$9e89 dec a ; $9e8a ld l,a ; $9e8b ld h,$00 ; $9e8d add hl,hl ; $9e8e ld bc,$a4be ; $9e91 add hl,bc ; $9e92 ld e,(hl) ; $9e93 inc hl ; $9e94 ld d,(hl) ; $9e95 ret ; ; return addr of entity sprite addr in DE ; ; Used by the routine at #R$9f9f. @label=get_entity_sprite c$9e96 ld a,(ix+$00) ; $9e99 jr $9e89 ; return address of sprite A in DE ; This entry point is used by the routines at #R$9f4a, #R$9f56 and #R$9fca. @label=loc_9E9B *$9e9b ld a,c ; $9e9c and a ; $9e9d jr z,$9eaf ; $9e9f dec c ; $9ea0 call $9edc ; $9ea3 exx ; $9ea4 ld a,c ; $9ea5 and a ; $9ea6 jr z,$9eac ; @label=loc_9EA8 *$9ea8 dec c ; $9ea9 call $9f21 ; @label=loc_9EAC *$9eac exx ; $9ead jr $9e9b ; @label=loc_9EAF *$9eaf exx ; $9eb0 ld a,c ; $9eb1 and a ; $9eb2 jr nz,$9ea8 ; ; This entry point is used by the routine at #R$9fca. @label=loc_9EB4 *$9eb4 exx ; ; This entry point is used by the routine at #R$9fca. @label=loc_9EB5 *$9eb5 ld a,($5e18) ; $9eb8 ld c,a ; $9eb9 ld a,($5e19) ; $9ebc or c ; width and height zero? $9ebd ret z ; return if so $9ebe xor a ; $9ebf ld ($5e18),a ; $9ec2 exx ; $9ec3 ld a,($5e19) ; $9ec6 ld c,a ; $9ec7 xor a ; ; This entry point is used by the routine at #R$9fca. @label=loc_9EC8 *$9ec8 ld ($5e19),a ; $9ecb exx ; $9ecc jr $9e9b ; ; Routine at 9ece @label=draw_unshifted c$9ece ex de,hl ; $9ecf ex (sp),hl ; $9ed0 ld a,d ; $9ed1 xor (hl) ; $9ed2 ld (hl),a ; $9ed3 inc l ; $9ed4 ld a,e ; $9ed5 xor (hl) ; $9ed6 ld (hl),a ; $9ed7 pop de ; $9ed8 dec l ; $9ed9 jp $9f03 ; move up 1 display line in HL ; Routine at 9edc ; ; Used by the routine at #R$9e96. @label=draw_sprite23 c$9edc ex de,hl ; $9edd push de ; $9ede ld d,(hl) ; $9edf inc hl ; $9ee0 ld e,(hl) ; $9ee1 inc hl ; $9ee2 ex de,hl ; $9ee3 xor a ; @label=jr_23 *$9ee4 jr $9ee4 ; $9ee6 add hl,hl ; $9ee7 adc a,a ; $9ee8 add hl,hl ; $9ee9 adc a,a ; $9eea add hl,hl ; $9eeb adc a,a ; $9eec add hl,hl ; $9eed adc a,a ; $9eee add hl,hl ; $9eef adc a,a ; $9ef0 add hl,hl ; $9ef1 adc a,a ; $9ef2 add hl,hl ; $9ef3 adc a,a ; $9ef4 ex de,hl ; $9ef5 ex (sp),hl ; $9ef6 xor (hl) ; $9ef7 ld (hl),a ; $9ef8 inc l ; ; This entry point is used by the routine at #R$9f21. @label=draw_2_bytes *$9ef9 ld a,d ; $9efa xor (hl) ; $9efb ld (hl),a ; $9efc inc l ; $9efd ld a,e ; $9efe xor (hl) ; $9eff ld (hl),a ; $9f00 pop de ; $9f01 dec l ; $9f02 dec l ; ; This entry point is used by the routines at #R$99c9, #R$99e5, #R$9a0a, ; #R$9a50, #R$9acb, #R$9aef, #R$9b14, #R$9b5d, #R$9ece, #R$9f13 and #R$a185. @label=pixel_line_up *$9f03 dec h ; move up 1 display line in HL $9f04 ld a,h ; $9f05 cpl ; $9f06 and $07 ; $9f08 ret nz ; $9f09 ld a,l ; $9f0a sub $20 ; $9f0c ld l,a ; $9f0d ret c ; $9f0e ld a,h ; $9f0f add a,$08 ; $9f11 ld h,a ; $9f12 ret ; ; draw 2-byte unshifted graphic ; ; Used by the routine at #R$9f21. @label=draw_unshifted2 c$9f13 ex de,hl ; $9f14 ex (sp),hl ; $9f15 ld a,d ; $9f16 xor (hl) ; $9f17 ld (hl),a ; $9f18 inc l ; $9f19 ld a,e ; $9f1a xor (hl) ; $9f1b ld (hl),a ; $9f1c pop de ; $9f1d dec l ; $9f1e jp $9f03 ; move up 1 display line in HL ; Routine at 9f21 ; ; Used by the routine at #R$9e96. @label=draw_sprite2 c$9f21 ex de,hl ; $9f22 push de ; $9f23 ld d,(hl) ; $9f24 inc hl ; $9f25 ld e,(hl) ; $9f26 inc hl ; $9f27 ex de,hl ; $9f28 xor a ; @label=jr_2 $9f29 jr $9f13 ; $9f2b add hl,hl ; $9f2c adc a,a ; $9f2d add hl,hl ; $9f2e adc a,a ; $9f2f add hl,hl ; $9f30 adc a,a ; $9f31 add hl,hl ; $9f32 adc a,a ; $9f33 add hl,hl ; $9f34 adc a,a ; $9f35 add hl,hl ; $9f36 adc a,a ; $9f37 add hl,hl ; $9f38 adc a,a ; $9f39 ex de,hl ; $9f3a ex (sp),hl ; $9f3b xor (hl) ; $9f3c ld (hl),a ; first byte $9f3d inc l ; $9f3e jr $9ef9 ; ; Routine at 9f40 @label=draw2_entity c$9f40 call $9fa2 ; $9f43 jr $9f4d ; ; Routine at 9f45 @label=undraw_entity_de c$9f45 call $9f83 ; $9f48 jr $9f59 ; ; draw entity graphic (no attrs) ; ; Used by the routines at #R$814b, #R$83ea, #R$871a, #R$8862, #R$8aff, #R$8cb7, ; #R$9291, #R$9358, #R$9443, #R$95cc, #R$a14d, #R$a2ce and #R$a311. @label=draw_entity c$9f4a call $9f9f ; prepare for 2-byte drawing ; This entry point is used by the routine at #R$9f40. @label=loc_9F4D *$9f4d exx ; $9f4e xor a ; $9f4f ld ($5e18),a ; $9f52 ld c,a ; $9f53 jp $9e9b ; ; Routine at 9f56 ; ; Used by the routines at #R$81f0, #R$871a, #R$8c63, #R$9326 and #R$98c8. @label=undraw_entity c$9f56 call $9f80 ; prepare for 2-3 byte drawing ; This entry point is used by the routine at #R$9f45. @label=loc_9F59 *$9f59 exx ; $9f5a xor a ; $9f5b ld c,a ; $9f5c ld ($5e19),a ; $9f5f ld a,($5e18) ; $9f62 ld ($5e11),a ; $9f65 ld a,l ; $9f66 and $07 ; aligned to cell boundary? $9f68 ld a,$02 ; 2 bytes wide $9f6a jr z,$9f6d ; jump if so $9f6c inc a ; 3 bytes needed @label=loc_9F6D *$9f6d ld ($5e10),a ; $9f70 exx ; $9f71 jp $9e9b ; $9f74 push de ; $9f75 call $9f83 ; $9f78 exx ; $9f79 pop de ; $9f7a call $9fa2 ; $9f7d exx ; $9f7e jr $9fd1 ; ; prepare for 2-3 byte drawing ; ; Used by the routines at #R$9f56 and #R$9fca. @label=prepare_draw23 c$9f80 call $9e86 ; return address of sprite A in DE ; This entry point is used by the routines at #R$9f45 and #R$9f56. @label=prepare_draw23_de *$9f83 ld hl,($5e16) ; $9f86 ld a,l ; xpos (b2-0 determine shifting) $9f87 dec a ; $9f88 rlca ; * 2 (bytes per $9f89 and $0e ; relative jump offset $9f8b cp $0e ; originally unshifted? $9f8d jr nz,$9f91 ; jump if not (use calculated offset) $9f8f ld a,$e8 ; jr offset back to 'draw_unshifted' @label=loc_9F91 *$9f91 ld ($9ee5),a ; set jr offset for data shifting $9f94 call $9ba2 ; convert coords in HL to display address in HL $9f97 ld a,(de) ; $9f98 ld ($5e18),a ; ; This entry point is used by the routine at #R$9f9f. @label=loc_9F9B *$9f9b ld c,$00 ; $9f9d inc de ; $9f9e ret ; ; prepare for 2-byte drawing ; ; Used by the routines at #R$9f4a and #R$9fca. @label=prepare_draw2 c$9f9f call $9e96 ; return addr of entity sprite addr in DE ; This entry point is used by the routines at #R$9f40 and #R$9f56. @label=prepare_draw2_de *$9fa2 ld l,(ix+$03) ; x $9fa5 ld h,(ix+$04) ; y $9fa8 ld a,l ; xpos (b2-0 determine shifting) $9fa9 dec a ; $9faa rlca ; * 2 (bytes per $9fab and $0e ; relative jump offset $9fad cp $0e ; originally unshifted? $9faf jr nz,$9fb3 ; jump if not (use calculated offset) $9fb1 ld a,$e8 ; r offset back to 'draw_unshifted' @label=loc_9FB3 *$9fb3 ld ($9f2a),a ; set jr offset for data shifting $9fb6 ld a,$02 ; 2 bytes wide $9fb8 jr z,$9fbb ; $9fba inc a ; any shift requires 3 bytes @label=loc_9FBB *$9fbb ld ($5e10),a ; $9fbe call $9ba2 ; convert coords in HL to display address in HL $9fc1 ld a,(de) ; $9fc2 ld ($5e19),a ; $9fc5 ld ($5e11),a ; $9fc8 jr $9f9b ; ; draw entity to display (no attrs) ; ; Used by the routine at #R$8e26. @label=draw_entity_disp c$9fca call $9f9f ; prepare for 2-byte drawing $9fcd exx ; $9fce call $9f80 ; prepare for 2-3 byte drawing ; This entry point is used by the routine at #R$9f56. @label=loc_9FD1 *$9fd1 ld a,($5e17) ; $9fd4 sub (ix+$04) ; $9fd7 jp z,$9eb5 ; $9fda jp m,$9fec ; $9fdd ld c,a ; $9fde ld a,($5e18) ; $9fe1 cp c ; $9fe2 jp c,$9eb5 ; $9fe5 sub c ; $9fe6 ld ($5e18),a ; $9fe9 jp $9e9b ; @label=loc_9FEC *$9fec exx ; $9fed neg ; $9fef ld c,a ; $9ff0 ld a,($5e19) ; $9ff3 cp c ; $9ff4 jp c,$9eb4 ; $9ff7 sub c ; $9ff8 jp $9ec8 ; ; save entity position for undraw ; ; Used by the routines at #R$81db, #R$81f0, #R$82f1, #R$8301, #R$845f, #R$85f7, ; #R$862e, #R$8672, #R$871a, #R$8787, #R$87a6, #R$8862, #R$8906, #R$8988, ; #R$89ed, #R$8a2f, #R$8a80, #R$8aff, #R$8c63, #R$8d77, #R$92f5 and #R$988b. @label=save_entity c$9ffb ld a,(ix+$03) ; $9ffe ld ($5e16),a ; $a001 ld a,(ix+$04) ; $a004 ld ($5e17),a ; $a007 ld a,(ix+$00) ; $a00a ld ($5e15),a ; $a00d ret ; ; paint entity with its current attr colour ; ; Used by the routines at #R$a14d and #R$a311. @label=set_entity_attrs c$a00e ld a,(ix+$03) ; xpos $a011 ld ($5e16),a ; $a014 ld a,(ix+$04) ; ypos $a017 ld ($5e17),a ; ; This entry point is used by the routines at #R$81f0, #R$871a, #R$8e26, ; #R$92e2 and #R$9326. @label=set_entity_attrs2 *$a01a ld l,(ix+$03) ; xpos $a01d ld h,(ix+$04) ; ypos $a020 ld d,(ix+$05) ; entity attr $a023 ld a,($5e1a) ; $a026 ld e,a ; $a027 ld a,($5e10) ; $a02a ld b,a ; $a02b ld a,($5e11) ; $a02e rrca ; $a02f rrca ; $a030 inc a ; $a031 rrca ; $a032 and $1f ; $a034 inc a ; $a035 ld c,a ; attr height $a036 push bc ; $a037 ld b,$00 ; $a039 ld a,($5e16) ; $a03c cp l ; same as previous xpos? $a03d jr z,$a043 ; jump if so (no change) $a03f jr c,$a042 ; jump if less (moving left, add 1) $a041 inc b ; moving right (add 2) @label=loc_A042 *$a042 inc b ; @label=loc_A043 *$a043 ld a,($5e17) ; $a046 cp h ; ypos unchanged? $a047 ld a,b ; $a048 jr z,$a050 ; jump if so (no change) $a04a jr c,$a04e ; jump if less (moving up, add 4) $a04c add a,$04 ; moving down (add 8) @label=loc_A04E *$a04e add a,$04 ; @label=loc_A050 *$a050 ld b,a ; handler table index $a051 call $9bd2 ; convert pixel coords in HL to attribute address $a054 ld a,b ; $a055 pop bc ; $a056 push hl ; $a057 ld hl,$a064 ; 3x3 handlers (in 4x3 table) to cover attr for moving ; entity $a05a sla a ; * 2 (bytes per entry) $a05c call $926c ; HL = HL + A $a05f ld a,(hl) ; handler LSB $a060 inc hl ; $a061 ld h,(hl) ; handler MSB $a062 ld l,a ; $a063 jp (hl) ; execute handler ; Data block at a064 @label=attr_handlers w$a064 defw $a07a,$a08d,$a0a3,$807a ; 3x3 handlers (in 4x3 table) to cover attr ; for moving entity $a06c defw $a0b7,$a0d2,$a110,$807a ; extra delay applied to inactive creatures $a074 defw $a0ec,$a127,$a0fe ; draw attrs for moving up ; draw attrs for unchanged position @label=attr_draw_c c$a07a pop hl ; ; This entry point is used by the routine at #R$a0ec. @label=loc_A07B *$a07b push bc ; $a07c push hl ; @label=loc_A07D *$a07d ld (hl),d ; entity attr $a07e inc l ; $a07f djnz $a07d ; $a081 pop hl ; $a082 ld bc,$0020 ; line pitch $a085 and a ; $a086 sbc hl,bc ; up a row $a088 pop bc ; $a089 dec c ; $a08a jr nz,$a07b ; $a08c ret ; ; draw attrs for moving right @label=attr_draw_r c$a08d pop hl ; ; This entry point is used by the routine at #R$a127. @label=loc_A08E *$a08e push bc ; $a08f push hl ; $a090 dec l ; $a091 ld (hl),e ; room attr $a092 inc l ; @label=loc_A093 *$a093 ld (hl),d ; entity attr $a094 inc l ; $a095 djnz $a093 ; $a097 pop hl ; $a098 ld bc,$0020 ; line pitch $a09b and a ; $a09c sbc hl,bc ; up a row $a09e pop bc ; $a09f dec c ; $a0a0 jr nz,$a08e ; $a0a2 ret ; ; draw attrs for moving left @label=attr_draw_l c$a0a3 pop hl ; ; This entry point is used by the routine at #R$a0fe. @label=loc_A0A4 *$a0a4 push bc ; $a0a5 push hl ; @label=loc_A0A6 *$a0a6 ld (hl),d ; entity attr $a0a7 inc l ; $a0a8 djnz $a0a6 ; $a0aa ld (hl),e ; room attr $a0ab pop hl ; $a0ac ld bc,$0020 ; line pitch $a0af and a ; $a0b0 sbc hl,bc ; up a row $a0b2 pop bc ; $a0b3 dec c ; $a0b4 jr nz,$a0a4 ; $a0b6 ret ; ; draw attrs for moving down @label=attr_draw_d c$a0b7 pop hl ; @label=loc_A0B8 *$a0b8 push bc ; $a0b9 push hl ; @label=loc_A0BA *$a0ba ld (hl),d ; entity attr $a0bb inc l ; $a0bc djnz $a0ba ; $a0be pop hl ; $a0bf ld bc,$0020 ; line pitch $a0c2 and a ; $a0c3 sbc hl,bc ; up a row $a0c5 pop bc ; $a0c6 dec c ; $a0c7 jr nz,$a0b8 ; ; This entry point is used by the routines at #R$a0d2 and #R$a110. @label=cond_room_row *$a0c9 ld a,h ; $a0ca cp $58 ; out of screen top? $a0cc ret c ; return if so @label=loc_A0CD *$a0cd ld (hl),e ; room attr $a0ce inc l ; $a0cf djnz $a0cd ; $a0d1 ret ; ; draw attrs for moving down-right @label=attr_draw_dr c$a0d2 pop hl ; @label=loc_A0D3 *$a0d3 push bc ; $a0d4 push hl ; $a0d5 dec l ; $a0d6 ld (hl),e ; room attr $a0d7 inc l ; @label=loc_A0D8 *$a0d8 ld (hl),d ; $a0d9 inc l ; $a0da djnz $a0d8 ; $a0dc pop hl ; $a0dd ld bc,$0020 ; line pitch $a0e0 and a ; $a0e1 sbc hl,bc ; up a row $a0e3 pop bc ; $a0e4 dec c ; $a0e5 jr nz,$a0d3 ; $a0e7 dec l ; $a0e8 ld (hl),e ; $a0e9 inc l ; $a0ea jr $a0c9 ; ; draw attrs for moving up @label=attr_draw_u c$a0ec pop hl ; $a0ed push bc ; $a0ee push hl ; $a0ef push bc ; $a0f0 ld bc,$0020 ; line pitch $a0f3 add hl,bc ; down a row $a0f4 pop bc ; @label=loc_A0F5 *$a0f5 ld (hl),e ; entity attr $a0f6 inc l ; $a0f7 djnz $a0f5 ; $a0f9 pop hl ; $a0fa pop bc ; $a0fb jp $a07b ; ; draw attrs for moving up-left @label=attr_draw_ul c$a0fe pop hl ; $a0ff push bc ; $a100 push hl ; $a101 push bc ; $a102 ld bc,$0020 ; line pitch $a105 add hl,bc ; down a row $a106 pop bc ; $a107 inc b ; extra row @label=loc_A108 *$a108 ld (hl),e ; $a109 inc l ; $a10a djnz $a108 ; $a10c pop hl ; $a10d pop bc ; $a10e jr $a0a4 ; ; draw attrs for moving down-left @label=attrs_draw_dl c$a110 pop hl ; @label=loc_A111 *$a111 push bc ; $a112 push hl ; @label=loc_A113 *$a113 ld (hl),d ; room attr $a114 inc l ; $a115 djnz $a113 ; $a117 ld (hl),e ; entity attr $a118 pop hl ; $a119 ld bc,$0020 ; line pitch $a11c and a ; $a11d sbc hl,bc ; up a row $a11f pop bc ; $a120 dec c ; $a121 jr nz,$a111 ; $a123 inc b ; $a124 jp $a0c9 ; ; draw attrs for moving up-right @label=attr_draw_ur c$a127 pop hl ; $a128 push bc ; $a129 push hl ; $a12a push bc ; $a12b ld bc,$0020 ; line pitch $a12e add hl,bc ; down a row $a12f pop bc ; $a130 dec l ; $a131 inc b ; extra row @label=loc_A132 *$a132 ld (hl),e ; entity attr $a133 inc l ; $a134 djnz $a132 ; $a136 pop hl ; $a137 pop bc ; $a138 jp $a08e ; ; draw any items in player inventory ; ; Used by the routines at #R$9117, #R$92f5 and #R$93e3. @label=draw_inventory c$a13b ld de,$2cc8 ; coords of first inventory item $a13e ld hl,$5e30 ; $a141 ld b,$03 ; 3 items to draw @label=loc_A143 *$a143 call $a14d ; draw inventory item at position DE $a146 ld a,e ; $a147 add a,$10 ; next inventory position $a149 ld e,a ; $a14a djnz $a143 ; $a14c ret ; ; draw inventory item at position DE ; ; Used by the routine at #R$a13b. @label=draw_inv_item c$a14d push bc ; $a14e push de ; $a14f push ix ; $a151 ld ix,$a17d ; $a155 ld a,(hl) ; entity LSB $a156 inc hl ; $a157 or (hl) ; object in this slot? $a158 inc hl ; $a159 ld a,(hl) ; $a15a jr nz,$a15e ; jump if so $a15c ld a,$31 ; blank space @label=loc_A15E *$a15e inc hl ; $a15f ld (ix+$00),a ; set graphic $a162 ld (ix+$03),e ; set xpos $a165 ld (ix+$04),d ; set ypos $a168 ld a,(hl) ; $a169 inc hl ; $a16a ld (ix+$05),a ; set attr $a16d push hl ; $a16e call $a185 ; $a171 call $9f4a ; draw entity graphic (no attrs) $a174 call $a00e ; paint entity with its current attr colour $a177 pop hl ; $a178 pop ix ; $a17a pop de ; $a17b pop bc ; $a17c ret ; ; Data block at a17d @label=entity_to_draw b$a17d defb $21,$00,$00,$28,$97,$47,$00,$00 ; Routine at a185 ; ; Used by the routines at #R$a14d and #R$a2ce. @label=clear_sprite c$a185 ld l,(ix+$03) ; $a188 ld h,(ix+$04) ; $a18b call $9ba2 ; convert coords in HL to display address in HL $a18e ld b,$14 ; 20 pixels high @label=loc_A190 *$a190 ld (hl),$00 ; clear 2 bytes wide $a192 inc l ; $a193 ld (hl),$00 ; $a195 dec l ; $a196 call $9f03 ; move up 1 display line in HL $a199 djnz $a190 ; $a19b ret ; ; add BC to current score ; ; Used by the routines at #R$871a and #R$8988. @label=add_score_bc_bcd c$a19c ld hl,$5e2c ; end of score is 1s $a19f ld a,(hl) ; $a1a0 add a,c ; add 10s and 1s $a1a1 daa ; $a1a2 ld (hl),a ; $a1a3 dec hl ; $a1a4 ld a,(hl) ; $a1a5 adc a,b ; add 1000s and 100s $a1a6 daa ; $a1a7 ld (hl),a ; $a1a8 dec hl ; $a1a9 ld a,(hl) ; $a1aa adc a,$00 ; carry 10000s $a1ac daa ; $a1ad ld (hl),a ; ; This entry point is used by the routine at #R$a219. @label=loc_A1AE *$a1ae ld hl,$bfcc ; $a1b1 ld ($5e01),hl ; $a1b4 ld hl,$50c8 ; ; print player score at position HL ; ; Used by the routine at #R$9641. @label=print_score c$a1b7 call $9ba2 ; convert coords in HL to display address in HL $a1ba ld de,$5e2a ; $a1bd ld b,$03 ; 3 bytes = 6 digits ; This entry point is used by the routines at #R$9607, #R$9641 and #R$a1c9. @label=print_bcd_bytes *$a1bf ld a,(de) ; print B BCD bytes at DE $a1c0 rrca ; $a1c1 rrca ; $a1c2 rrca ; $a1c3 rrca ; $a1c4 and $0f ; $a1c6 call $a1d3 ; print a single character ; print a single BCD digit ; ; Used by the routine at #R$9607. @label=print_bcd_digit c$a1c9 ld a,(de) ; $a1ca and $0f ; $a1cc call $a1d3 ; print a single character $a1cf inc de ; $a1d0 djnz $a1bf ; print B BCD bytes at DE $a1d2 ret ; ; print a single character ; ; Used by the routines at #R$a1b7, #R$a1c9, #R$a1f3 and #R$a219. @label=print_char c$a1d3 push bc ; $a1d4 push de ; $a1d5 push hl ; $a1d6 ld l,a ; $a1d7 ld h,$00 ; $a1d9 add hl,hl ; $a1da add hl,hl ; $a1db add hl,hl ; $a1dc ld de,($5e01) ; $a1e0 add hl,de ; $a1e1 ex de,hl ; $a1e2 pop hl ; $a1e3 ld b,$08 ; 8 lines in character cell @label=loc_A1E5 *$a1e5 ld a,(de) ; $a1e6 ld (hl),a ; $a1e7 inc de ; next source byte $a1e8 inc h ; next pixel line $a1e9 djnz $a1e5 ; $a1eb pop de ; $a1ec pop bc ; $a1ed ld a,h ; $a1ee sub $08 ; back to start address $a1f0 ld h,a ; $a1f1 inc l ; next position to the right $a1f2 ret ; ; show a line of text, first byte is attr ; ; Used by the routines at #R$7caf, #R$8c35, #R$9641 and #R$96c9. @label=colour_text c$a1f3 push hl ; $a1f4 call $9ba2 ; convert coords in HL to display address in HL $a1f7 ld a,(de) ; text attr colour $a1f8 ex af,af' ; $a1f9 inc de ; $a1fa exx ; display addr in HL $a1fb pop hl ; $a1fc call $9bd2 ; convert pixel coords in HL to attribute address ; This entry point is used by the routine at #R$7d8a. @label=loc_A1FF *$a1ff exx ; attr addr in HL' $a200 ld a,(de) ; $a201 bit 7,a ; last character? $a203 jr nz,$a210 ; jump if so $a205 call $a1d3 ; print a single character $a208 inc de ; $a209 exx ; $a20a ex af,af' ; $a20b ld (hl),a ; set attr $a20c inc l ; $a20d ex af,af' ; $a20e jr $a1ff ; @label=loc_A210 *$a210 and $7f ; strip end marker b7 $a212 call $a1d3 ; print a single character $a215 exx ; $a216 ex af,af' ; $a217 ld (hl),a ; set attr $a218 ret ; ; draw side panel background scroll ; ; Used by the routine at #R$7d9a. @label=draw_side_panel c$a219 ld hl,$b03a ; $a21c ld ($5e01),hl ; $a21f ld hl,$00c0 ; $a222 ld de,$b32a ; $a225 ld bc,$0818 ; 8x24 @label=loc_A228 *$a228 push bc ; $a229 push hl ; $a22a call $9ba2 ; convert coords in HL to display address in HL @label=loc_A22D *$a22d ld a,(de) ; $a22e inc de ; $a22f call $a1d3 ; print a single character $a232 djnz $a22d ; $a234 pop hl ; $a235 ld a,h ; $a236 add a,$08 ; $a238 ld h,a ; $a239 pop bc ; $a23a dec c ; $a23b jr nz,$a228 ; $a23d jp $a1ae ; ; draw side-panel colours, which follow room colour ; ; Used by the routine at #R$9117. @label=draw_panel_attrs c$a240 ld hl,$00c0 ; $a243 call $9bd2 ; convert pixel coords in HL to attribute address $a246 ld bc,$0818 ; 8x24 $a249 ld a,($5e1a) ; $a24c cpl ; invert for colour contrast $a24d and $07 ; $a24f cp $02 ; $a251 jr nc,$a255 ; red or brighter? $a253 ld a,$44 ; change blue to bright green @label=loc_A255 *$a255 ld e,a ; save attr value $a256 push de ; @label=loc_A257 *$a257 push bc ; $a258 push hl ; @label=loc_A259 *$a259 ld (hl),e ; set panel attr $a25a inc l ; $a25b djnz $a259 ; $a25d pop hl ; $a25e ld bc,$0020 ; line pitch $a261 add hl,bc ; down a row $a262 pop bc ; $a263 dec c ; $a264 jr nz,$a257 ; $a266 ld hl,$90c8 ; $a269 call $9bd2 ; convert pixel coords in HL to attribute address $a26c ld a,($5e1a) ; $a26f ld bc,$0303 ; 3x3 (rosette body) $a272 call $809a ; fill C rows of B columns of value A at address HL $a275 inc l ; $a276 ld (hl),a ; $a277 add hl,de ; $a278 ld bc,$0202 ; 2x2 (rosette tail) $a27b call $809a ; fill C rows of B columns of value A at address HL $a27e ld hl,$98d0 ; $a281 call $9bd2 ; convert pixel coords in HL to attribute address $a284 pop de ; $a285 ld (hl),e ; rosette centre $a286 ld hl,$7dc8 ; $a289 call $9bd2 ; convert pixel coords in HL to attribute address $a28c ld bc,$0603 ; 6x3 $a28f ld a,$47 ; bright white (lives) $a291 call $809a ; fill C rows of B columns of value A at address HL $a294 ld hl,$5fc8 ; $a297 call $9bd2 ; convert pixel coords in HL to attribute address $a29a ld bc,$0604 ; 6x4 $a29d ld a,$46 ; bright yellow (chicken) $a29f call $809a ; fill C rows of B columns of value A at address HL $a2a2 ld hl,$48c8 ; $a2a5 call $9bd2 ; convert pixel coords in HL to attribute address $a2a8 ld bc,$0601 ; 6x1 $a2ab ld a,$45 ; bright cyan (score caption) $a2ad call $809a ; fill C rows of B columns of value A at address HL $a2b0 ld bc,$0601 ; 6x1 $a2b3 ld a,$47 ; bright white (score) $a2b5 call $809a ; fill C rows of B columns of value A at address HL $a2b8 ld hl,$38c8 ; $a2bb call $9bd2 ; convert pixel coords in HL to attribute address $a2be ld bc,$0601 ; 6x1 $a2c1 ld a,$43 ; bright magenta (time caption) $a2c3 call $809a ; fill C rows of B columns of value A at address HL $a2c6 ld bc,$0601 ; $a2c9 ld a,$47 ; bright white (time) $a2cb jp $809a ; fill C rows of B columns of value A at address HL ; draw lives sprites in side panel ; ; Used by the routines at #R$7d9a and #R$9443. @label=draw_lives c$a2ce push ix ; $a2d0 ld ix,$a17d ; $a2d4 ld a,($5e00) ; $a2d7 rlca ; $a2d8 and $30 ; extract character type from menu $a2da or $01 ; offset to first graphic $a2dc ld (ix+$00),a ; character type $a2df ld (ix+$05),$47 ; bright white $a2e3 ld hl,$8dc8 ; coords of lives in side panel $a2e6 ld (ix+$03),l ; $a2e9 ld (ix+$04),h ; $a2ec ld a,($5e21) ; $a2ef ld c,a ; number of lives to show $a2f0 ld b,$03 ; up to 3 lives to draw @label=loc_A2F2 *$a2f2 push bc ; $a2f3 call $a185 ; clear lives location $a2f6 ld a,c ; $a2f7 and a ; life to show? $a2f8 jr z,$a2fd ; jump if not $a2fa call $9f4a ; draw player character @label=loc_A2FD *$a2fd ld a,(ix+$03) ; $a300 add a,$10 ; offset to next life position $a302 ld (ix+$03),a ; $a305 pop bc ; $a306 dec c ; $a307 jp p,$a30c ; $a30a ld c,$00 ; min lives is zero @label=loc_A30C *$a30c djnz $a2f2 ; draw remaining slots $a30e pop ix ; $a310 ret ; ; draw menu icons for controls and player acharacters ; ; Used by the routine at #R$7c19. @label=draw_menu_icons c$a311 ld ix,$a17d ; $a315 ld hl,$a331 ; entities for icons in the menu position $a318 ld b,$09 ; 3*2 icons for controls, 3 player characters @label=loc_A31A *$a31a push bc ; $a31b ld de,$a17d ; $a31e ld bc,$0008 ; $a321 ldir ; $a323 push hl ; $a324 push de ; $a325 call $9f4a ; draw entity graphic (no attrs) $a328 call $a00e ; paint entity with its current attr colour $a32b pop de ; $a32c pop hl ; $a32d pop bc ; $a32e djnz $a31a ; $a330 ret ; ; Data block at a331 @label=menu_entities b$a331 defb $32,$00,$00,$20,$4f,$46,$00,$00 ; cursor (left) $a339 defb $33,$00,$00,$30,$4f,$46,$00,$00 ; cursor (right) $a341 defb $4a,$00,$00,$20,$37,$44,$00,$00 ; kempston (left) $a349 defb $4b,$00,$00,$30,$37,$44,$00,$00 ; kempston (right) $a351 defb $48,$00,$00,$20,$1c,$43,$00,$00 ; keyboard (left) $a359 defb $49,$00,$00,$30,$1c,$43,$00,$00 ; keyboard (right) $a361 defb $01,$00,$00,$28,$67,$47,$00,$00 ; knight (facing left) $a369 defb $11,$00,$00,$28,$7f,$47,$00,$00 ; wizard (facing left) $a371 defb $21,$00,$00,$28,$97,$47,$00,$00 ; serf (facing left) ; determine Bresenham line slope step ; ; Used by the routine at #R$9c79. @label=line_slope c$a379 ld l,h ; $a37a ld h,$00 ; $a37c exx ; $a37d ld hl,$0000 ; $a380 ld b,$08 ; @label=loc_A382 *$a382 exx ; $a383 sla l ; $a385 rl h ; $a387 push hl ; $a388 and a ; $a389 sbc hl,de ; $a38b jr c,$a399 ; $a38d pop af ; $a38e exx ; $a38f add hl,hl ; $a390 inc hl ; @label=loc_A391 *$a391 djnz $a382 ; $a393 push hl ; $a394 exx ; $a395 ld e,l ; $a396 ld d,h ; $a397 pop hl ; $a398 ret ; @label=loc_A399 *$a399 pop hl ; $a39a exx ; $a39b add hl,hl ; $a39c jr $a391 ; ; HL = -DE ; ; Used by the routine at #R$9c79. @label=minus_de c$a39e push de ; $a39f ex de,hl ; $a3a0 ld hl,$0000 ; $a3a3 and a ; $a3a4 sbc hl,de ; $a3a6 pop de ; $a3a7 ret ; ; Routine at a3a8 ; ; Used by the routines at #R$9731, #R$a41b, #R$a427, #R$a438 and #R$a445. @label=click c$a3a8 ld c,$01 ; length 1 for a short click ; This entry point is used by the routines at #R$a3c2, #R$a3c7, #R$a3e0, ; #R$a3ef, #R$a408, #R$a445, #R$a48b and #R$a4b0. @label=beep *$a3aa ld a,$10 ; freq B (low is higher), length C $a3ac out ($fe),a ; $a3ae push bc ; @label=loc_A3AF *$a3af djnz $a3af ; $a3b1 pop bc ; $a3b2 push bc ; $a3b3 xor a ; $a3b4 out ($fe),a ; @label=loc_A3B6 *$a3b6 djnz $a3b6 ; $a3b8 pop bc ; $a3b9 dec c ; $a3ba jr nz,$a3aa ; freq B (low is higher), length C $a3bc ret ; ; This entry point is used by the routine at #R$9326. @label=inventory_sound *$a3bd ld bc,$4040 ; $a3c0 jr $a3aa ; freq B (low is higher), length C ; Routine at a3c2 ; ; Used by the routine at #R$9358. @label=drop_sound c$a3c2 ld bc,$2080 ; long high beep $a3c5 jr $a3aa ; freq B (low is higher), length C ; play walk clicks if due ; ; Used by the routines at #R$80d2, #R$8dc4 and #R$8e26. @label=walk_sound c$a3c7 ld hl,$5e2f ; $a3ca inc (hl) ; $a3cb ld a,(hl) ; $a3cc bit 1,a ; low click time? $a3ce jr z,$a3d8 ; jump if so $a3d0 and $01 ; click this frame? $a3d2 ret z ; return if not $a3d3 ld bc,$4004 ; high beep $a3d6 jr $a3aa ; freq B (low is higher), length C @label=walk_low *$a3d8 and $01 ; click this frame? $a3da ret z ; return if not $a3db ld bc,$6004 ; low beep $a3de jr $a3aa ; freq B (low is higher), length C ; Routine at a3e0 ; ; Used by the routine at #R$8c8c. @label=start_beep c$a3e0 ld bc,$8060 ; long low beep $a3e3 jr $a3aa ; freq B (low is higher), length C ; play monster touched sound ; ; Used by the routines at #R$85b2 and #R$988b. @label=touching_sound c$a3e5 ld bc,$6410 ; ; This entry point is used by the routines at #R$a403 and #R$a485. @label=queue_sound *$a3e8 ld hl,$eaa0 ; $a3eb ld (hl),b ; blank graphic with required sound handler (64 or 65) $a3ec inc hl ; $a3ed ld (hl),c ; effect counter $a3ee ret ; ; play next note of sound effect @label=h_sound_effect c$a3ef dec (ix+$01) ; hit sound counter $a3f2 jr z,$a3fe ; $a3f4 ld a,(ix+$01) ; also used for freq and length $a3f7 ld c,a ; $a3f8 xor $43 ; $a3fa ld b,a ; $a3fb jp $a3aa ; freq B (low is higher), length C ; This entry point is used by the routines at #R$a408 and #R$a48b. @label=clear_sound *$a3fe ld (ix+$00),$00 ; $a402 ret ; ; room entry sound effect ; ; Used by the routine at #R$9117. @label=entry_sound c$a403 ld bc,$650a ; $a406 jr $a3e8 ; ; play next note of sound effect @label=h_sound_effect2 c$a408 dec (ix+$01) ; effect counter $a40b jr z,$a3fe ; $a40d ld a,(ix+$01) ; also used for freq and length $a410 ld c,a ; $a411 rlca ; $a412 rlca ; $a413 rlca ; $a414 cpl ; $a415 xor $40 ; $a417 ld b,a ; $a418 jp $a3aa ; freq B (low is higher), length C ; play axe throw sound ; ; Used by the routine at #R$8134. @label=axe_sound c$a41b ld d,$0c ; @label=loc_A41D *$a41d ld a,d ; $a41e rrca ; $a41f ld b,a ; set freq $a420 call $a3a8 ; $a423 dec d ; $a424 jr nz,$a41d ; $a426 ret ; ; play sword throw sound ; ; Used by the routine at #R$8283. @label=sword_sound c$a427 ld d,$10 ; @label=loc_A429 *$a429 ld a,d ; $a42a rlca ; $a42b rlca ; $a42c xor $07 ; $a42e rlca ; $a42f rlca ; $a430 ld b,a ; set freq $a431 call $a3a8 ; $a434 dec d ; $a435 jr nz,$a429 ; $a437 ret ; ; play fireball throw sound ; ; Used by the routine at #R$814b. @label=fireball_sound c$a438 ld d,$08 ; @label=loc_A43A *$a43a ld a,d ; $a43b cpl ; $a43c rlca ; $a43d ld b,a ; set freq $a43e call $a3a8 ; $a441 dec d ; $a442 jr nz,$a43a ; $a444 ret ; ; weapon disappearing sound ; ; Used by the routine at #R$81f0. @label=weapon_pop c$a445 ld a,($5e25) ; number of creatures processed this frame $a448 inc a ; $a449 rlca ; $a44a rlca ; $a44b rlca ; $a44c rlca ; * 16 $a44d or $0f ; + 15 $a44f and $7f ; 7-bit $a451 ld d,a ; @label=loc_A452 *$a452 ld a,d ; $a453 xor $20 ; $a455 ld b,a ; $a456 call $a3a8 ; $a459 dec d ; $a45a ret z ; $a45b dec d ; $a45c ret z ; $a45d jr $a452 ; ; This entry point is used by the routine at #R$8cb7. @label=appear_sound *$a45f ld a,(ix+$06) ; player appearance sound $a462 cpl ; $a463 rlca ; $a464 and $3f ; $a466 or $40 ; $a468 ld b,a ; $a469 ld c,$10 ; $a46b jp $a3aa ; freq B (low is higher), length C ; This entry point is used by the routines at #R$915f and #R$91bc. @label=door_sound *$a46e ld bc,$0830 ; 48 bytes * 8 bits to output $a471 ld hl,$0000 ; ROM start @label=loc_A474 *$a474 ld e,(hl) ; read ROM byte for white noise $a475 inc hl ; $a476 push bc ; @label=loc_A477 *$a477 rrc e ; rotate to use &0eac bit of the byte $a479 ld a,e ; $a47a and $10 ; keep speaker bit $a47c out ($fe),a ; click $a47e djnz $a477 ; loop for &0eac bit in the byte $a480 pop bc ; $a481 dec c ; done all bytes? $a482 jr nz,$a474 ; jump back if not $a484 ret ; ; Routine at a485 ; ; Used by the routine at #R$8c63. @label=eat_sound c$a485 ld bc,$a010 ; A0 is blank graphic with food-eaten handler (below) $a488 jp $a3e8 ; ; eaten food sound effect handler @label=h_food_eaten c$a48b dec (ix+$01) ; $a48e jp m,$a3fe ; $a491 ld c,(ix+$01) ; $a494 ld b,$00 ; $a496 ld hl,$a4a0 ; $a499 add hl,bc ; $a49a ld b,(hl) ; $a49b ld c,$08 ; duration $a49d jp $a3aa ; freq B (low is higher), length C ; Data block at a4a0 @label=eat_tone_table b$a4a0 defb $80,$90,$80,$90,$80,$90,$80,$90 $a4a8 defb $80,$70,$60,$50,$40,$30,$20,$10 ; weapon bounce sound ; ; Used by the routine at #R$81f0. @label=bounce_sound c$a4b0 ld d,$40 ; $a4b2 dec d ; $a4b3 ret z ; $a4b4 ld a,d ; $a4b5 rrca ; $a4b6 rrca ; $a4b7 rrca ; $a4b8 ld b,a ; $a4b9 ld c,$04 ; $a4bb jp $a3aa ; freq B (low is higher), length C ; Data block at a4be @label=sprite_table w$a4be defw $ae0c,$ae31,$ae56,$ae31 ; &00 $a4c6 defw $ae7b,$aea0,$aec5,$aea0 ; &04 $a4ce defw $ad9d,$adc2,$ade7,$adc2 ; &08 $a4d6 defw $ad2e,$ad53,$ad78,$ad53 ; &0c $a4de defw $b87c,$b8a5,$b8ce,$b8a5 ; &10 $a4e6 defw $b8f7,$b920,$b949,$b920 ; &14 $a4ee defw $b801,$b82a,$b853,$b82a ; &18 $a4f6 defw $b786,$b7af,$b7d8,$b7af ; &1c $a4fe defw $b614,$b639,$b65e,$b639 ; &20 $a506 defw $b683,$b6a8,$b6cd,$b6a8 ; &24 $a50e defw $b5a5,$b5ca,$b5ef,$b5ca ; &28 $a516 defw $b536,$b55b,$b580,$b55b ; &2c $a51e defw $aeec,$bbdc,$bc05,$bb60 ; &30 $a526 defw $bb7f,$bb7f,$bbbd,$ba16 ; &34 $a52e defw $b9fb,$b9e2,$b98b,$b9a6 ; &38 $a536 defw $b9c7,$b972,$ba37,$ba58 ; &3c $a53e defw $ba79,$ba9a,$babb,$badc ; &40 $a546 defw $bafd,$bb1e,$bb3f,$bc2e ; &44 $a54e defw $bc4f,$bc70,$bc9f,$bd30 ; &48 $a556 defw $bd57,$d2c0,$d2d7,$c124 ; &4c $a55e defw $c1aa,$c1cb,$c1f4,$c219 ; &50 $a566 defw $aff8,$b019,$af6c,$c23a ; &54 $a56e defw $c253,$c26e,$c28d,$c310 ; &58 $a576 defw $c32d,$c34a,$c36b,$c38c ; &5c $a57e defw $c3a3,$c3b6,$c3df,$aeea ; &60 $a586 defw $aeea,$aeea,$aeea,$c408 ; &64 $a58e defw $c429,$c44a,$c46f,$c5f8 ; &68 $a596 defw $c60f,$c62a,$c649,$cb46 ; &6c $a59e defw $cb77,$cba8,$cb77,$cbd9 ; &70 $a5a6 defw $cc0a,$cc3b,$cc0a,$cc6c ; &74 $a5ae defw $cc9d,$ccce,$cc9d,$ccff ; &78 $a5b6 defw $cd30,$cd61,$cd30,$af0d ; &7c $a5be defw $af2e,$af43,$c16e,$af95 ; &80 $a5c6 defw $afb6,$afd7,$c18f,$c14d ; &84 $a5ce defw $cde2,$cdbd,$d29f,$d1d5 ; &88 $a5d6 defw $d1ec,$d20b,$cd92,$ce01 ; &8c $a5de defw $ce2e,$ce5b,$ce88,$ceb5 ; &90 $a5e6 defw $cedc,$cf03,$cf2a,$cf51 ; &94 $a5ee defw $cf78,$cf93,$cfae,$d3d3 ; &98 $a5f6 defw $d404,$d435,$d404,$aeea ; &9c $a5fe defw $d232 ; &a0 ; Data block at a600 @label=gfx_data w$a600 defw $bcce $a602 defw $a76e $a604 defw $b3ea $a606 defw $aeea $a608 defw $aeea $a60a defw $aeea $a60c defw $aeea $a60e defw $a69c $a610 defw $a69c $a612 defw $a69c $a614 defw $a69c $a616 defw $c2ae $a618 defw $c2ae $a61a defw $c2ae $a61c defw $c2ae $a61e defw $b6f2 $a620 defw $b4c6 $a622 defw $a7ec $a624 defw $c542 @label=chicken_empty_addr $a626 defw $c48c $a628 defw $c66a $a62a defw $c6ac $a62c defw $c6ce $a62e defw $c7f2 $a630 defw $c770 $a632 defw $cfd5 $a634 defw $c874 $a636 defw $c9ca $a638 defw $c9ec $a63a defw $ca0e $a63c defw $aeea $a63e defw $ca82 $a640 defw $a76e $a642 defw $cae4 $a644 defw $bcce $a646 defw $d069 $a648 defw $d253 $a64a defw $d2ee $a64c defw $d466 @label=gfx_attrs $a64e defw $a7de $a650 defw $a7d0 $a652 defw $b4ac $a654 defw $aeea $a656 defw $aeea $a658 defw $aeea $a65a defw $aeea $a65c defw $a6fe $a65e defw $a70c $a660 defw $a71a $a662 defw $a728 $a664 defw $a736 $a666 defw $a744 $a668 defw $a752 $a66a defw $a760 $a66c defw $b774 $a66e defw $b528 $a670 defw $a846 $a672 defw $aeea ; full chicken attrs handled separately $a674 defw $aeea ; empty chicken attrs handled separately $a676 defw $c960 $a678 defw $c96a $a67a defw $c970 $a67c defw $c998 $a67e defw $c986 $a680 defw $d057 $a682 defw $c9aa $a684 defw $ca50 $a686 defw $ca56 $a688 defw $ca5c $a68a defw $aeea $a68c defw $ca74 $a68e defw $a7d0 $a690 defw $ca66 $a692 defw $a7de $a694 defw $d1ab $a696 defw $d295 $a698 defw $d3b8 $a69a defw $d4ef ; Data block at a69c @label=g_door_locked b$a69c defb $04,$18 $a69e defb $ff,$1b,$30,$ff $a6a2 defb $1f,$1b,$30,$f8 $a6a6 defb $02,$1b,$30,$40 $a6aa defb $3e,$1b,$30,$7c $a6ae defb $7f,$33,$18,$3e $a6b2 defb $07,$33,$18,$20 $a6b6 defb $f8,$33,$18,$1f $a6ba defb $f8,$33,$00,$1f $a6be defb $08,$63,$07,$08 $a6c2 defb $f0,$63,$17,$0f $a6c6 defb $f0,$63,$19,$0f $a6ca defb $1e,$63,$0e,$08 $a6ce defb $fe,$c3,$00,$1f $a6d2 defb $f8,$c3,$06,$1f $a6d6 defb $cc,$c3,$06,$33 $a6da defb $3e,$c3,$06,$7c $a6de defb $7d,$80,$01,$be $a6e2 defb $3b,$f0,$0f,$dc $a6e6 defb $17,$bf,$fd,$e8 $a6ea defb $07,$7b,$de,$e0 $a6ee defb $03,$7b,$de,$c0 $a6f2 defb $00,$77,$ee,$00 $a6f6 defb $00,$07,$e0,$00 $a6fa defb $00,$00,$00,$00 @label=a_red_locked $a6fe defb $04,$03 $a700 defb $43,$42,$42,$43 $a704 defb $43,$42,$46,$43 $a708 defb $43,$43,$43,$43 @label=a_green_locked $a70c defb $04,$03 $a70e defb $43,$44,$44,$43 $a712 defb $43,$44,$46,$43 $a716 defb $43,$43,$43,$43 @label=a_cyan_locked $a71a defb $04,$03 $a71c defb $43,$45,$45,$43 $a720 defb $43,$45,$46,$43 $a724 defb $43,$43,$43,$43 @label=a_yellow_locked $a728 defb $04,$03 $a72a defb $43,$46,$46,$43 $a72e defb $43,$46,$43,$43 $a732 defb $43,$43,$43,$43 @label=a_red_cave_locked $a736 defb $04,$03 $a738 defb $ff,$42,$42,$ff $a73c defb $ff,$42,$46,$ff $a740 defb $ff,$ff,$ff,$ff @label=a_green_cave_locked $a744 defb $04,$03 $a746 defb $ff,$44,$44,$ff $a74a defb $ff,$44,$46,$ff $a74e defb $ff,$ff,$ff,$ff @label=a_cyan_cave_locked $a752 defb $04,$03 $a754 defb $ff,$45,$45,$ff $a758 defb $ff,$45,$46,$ff $a75c defb $ff,$ff,$ff,$ff @label=a_yellow_cave_locked $a760 defb $04,$03 $a762 defb $ff,$46,$46,$ff $a766 defb $ff,$46,$43,$ff $a76a defb $ff,$ff,$ff,$ff @label=g_door_frame $a76e defb $04,$18 $a770 defb $ff,$00,$00,$ff $a774 defb $1f,$00,$00,$f8 $a778 defb $02,$00,$00,$40 $a77c defb $3e,$00,$00,$7c $a780 defb $7c,$00,$00,$3e $a784 defb $04,$00,$00,$20 $a788 defb $f8,$00,$00,$1f $a78c defb $f8,$00,$00,$1f $a790 defb $08,$00,$00,$08 $a794 defb $f0,$00,$00,$0f $a798 defb $f0,$00,$00,$0f $a79c defb $10,$00,$00,$08 $a7a0 defb $f0,$00,$00,$1f $a7a4 defb $f8,$00,$00,$1f $a7a8 defb $cc,$00,$00,$33 $a7ac defb $3e,$00,$00,$7c $a7b0 defb $7d,$80,$01,$be $a7b4 defb $3b,$f0,$0f,$dc $a7b8 defb $17,$bf,$fd,$e8 $a7bc defb $07,$7b,$de,$e0 $a7c0 defb $03,$7b,$de,$c0 $a7c4 defb $00,$77,$ee,$00 $a7c8 defb $00,$07,$e0,$00 $a7cc defb $00,$00,$00,$00 @label=a_door_frame $a7d0 defb $04,$03 $a7d2 defb $43,$00,$00,$43 $a7d6 defb $43,$00,$00,$43 $a7da defb $43,$43,$43,$43 @label=a_cave_door_frame $a7de defb $04,$03 $a7e0 defb $ff,$ff,$ff,$ff $a7e4 defb $ff,$ff,$ff,$ff $a7e8 defb $ff,$ff,$ff,$ff @label=g_table $a7ec defb $04,$16 $a7ee defb $60,$00,$00,$06 $a7f2 defb $70,$00,$00,$0e $a7f6 defb $30,$00,$00,$0c $a7fa defb $30,$00,$00,$0c $a7fe defb $70,$00,$00,$0e $a802 defb $70,$00,$00,$0e $a806 defb $78,$00,$00,$1e $a80a defb $3f,$ff,$ff,$fc $a80e defb $7f,$ff,$ff,$fe $a812 defb $80,$00,$00,$01 $a816 defb $7f,$ff,$ff,$fe $a81a defb $ff,$ff,$ff,$ff $a81e defb $ff,$ff,$ff,$ff $a822 defb $ff,$ff,$ff,$ff $a826 defb $7f,$ff,$ff,$fe $a82a defb $7f,$ff,$ff,$fe $a82e defb $7f,$ff,$ff,$fe $a832 defb $3f,$ff,$ff,$fc $a836 defb $3f,$ff,$ff,$fc $a83a defb $1f,$ff,$ff,$f8 $a83e defb $1f,$ff,$ff,$f8 $a842 defb $0f,$ff,$ff,$f0 @label=a_table $a846 defb $04,$03 $a848 defb $45,$45,$45,$45 $a84c defb $42,$42,$42,$42 $a850 defb $42,$42,$42,$42 ; Data block at a854 @label=room_attrs w$a854 defw $0042,$0243,$0344,$0245,$0446,$0247,$0346,$0245 ; 00 $a864 defw $0444,$0043,$0342,$0343,$0344,$0045,$0446,$0447 ; 08 room attr ; colour and style ; (0-B) $a874 defw $0446,$0445,$0444,$0043,$0342,$0343,$0344,$0045 ; 16 $a884 defw $0446,$0347,$0546,$0045,$0844,$0143,$0442,$0243 ; 24 $a894 defw $0344,$0245,$0446,$0247,$0346,$0245,$0544,$0043 ; 32 $a8a4 defw $0442,$0043,$0344,$0045,$0446,$0047,$0346,$0545 ; 40 $a8b4 defw $0144,$0a43,$0a42,$0143,$0a44,$0145,$0946,$0947 ; 48 $a8c4 defw $0146,$0145,$0144,$0143,$0142,$0143,$0144,$0945 ; 56 $a8d4 defw $0146,$0147,$0a46,$0145,$0944,$0143,$0142,$0943 ; 64 $a8e4 defw $0145,$0a45,$0946,$0147,$0146,$0a45,$0144,$0943 ; 72 $a8f4 defw $0142,$0a43,$0944,$0145,$0146,$0147,$0046,$0045 ; 80 $a904 defw $0044,$0043,$0042,$0047,$0043,$0044,$0045,$0046 ; 88 $a914 defw $0047,$0046,$0045,$0044,$0043,$0042,$0043,$0044 ; 96 $a924 defw $0045,$0046,$0047,$0046,$0045,$0044,$0043,$0442 ; 104 $a934 defw $0043,$0544,$0545,$0346,$0147,$0046,$0045,$0344 ; 112 $a944 defw $0043,$0442,$0043,$0344,$0045,$0446,$0047,$0046 ; 120 $a954 defw $0045,$0044,$0043,$0042,$0043,$0044,$0045,$0046 ; 128 $a964 defw $0047,$0046,$0045,$0444,$0443,$0442,$0b47,$0143 ; 136 $a974 defw $0144,$0145,$0146,$0147,$0146,$0000,$0c00 ; 144 ; Data block at a982 @label=room_styles b$a982 defb $38 ; style 0 = plain square $a983 defb $38 $a984 defw $a9df $a986 defw $a9ef $a988 defb $28 ; style 1 = cave square $a989 defb $28 $a98a defw $aa04 $a98c defw $aa78 $a98e defb $38 ; style 2 = octagonal square $a98f defb $38 $a990 defw $ab34 $a992 defw $ab54 $a994 defb $38 ; style 3 = wide rectangle $a995 defb $18 $a996 defw $ab7d $a998 defw $a9ef $a99a defb $18 ; style 4 = tall rectangle $a99b defb $38 $a99c defw $ab8d $a99e defw $a9ef $a9a0 defb $10 ; style 5 = stairs high@bottom $a9a1 defb $30 $a9a2 defw $ac4a $a9a4 defw $abe9 $a9a6 defb $10 ; style 6 = stairs high@top $a9a7 defb $30 $a9a8 defw $ab9d $a9aa defw $abe9 $a9ac defb $30 ; style 7 = stairs high@right $a9ad defb $10 $a9ae defw $ac96 $a9b0 defw $abe9 $a9b2 defb $30 ; style 8 = stairs high@left $a9b3 defb $10 $a9b4 defw $ace2 $a9b6 defw $abe9 $a9b8 defb $30 ; style 9 = wide cave $a9b9 defb $18 $a9ba defw $bed0 $a9bc defw $bd7e $a9be defb $18 ; style 10 = tall cave $a9bf defb $30 $a9c0 defw $be54 $a9c2 defw $bd7e $a9c4 defb $38 ; style 11 = final room $a9c5 defb $38 $a9c6 defw $a9d0 $a9c8 defw $a9d8 $a9ca defb $38 ; style 12 = trapdoor tunnel $a9cb defb $38 $a9cc defw $97a9 $a9ce defw $9809 ; Data block at a9d0 @label=points_final b$a9d0 defb $04,$bf $a9d2 defb $04,$00 $a9d4 defb $1f,$bf $a9d6 defb $1f,$00 @label=lines_final $a9d8 defb $00,$01,$ff $a9db defb $02,$03,$ff $a9de defb $ff @label=points_square $a9df defb $04,$bb $a9e1 defb $04,$04 $a9e3 defb $bb,$04 $a9e5 defb $bb,$bb $a9e7 defb $1f,$a0 $a9e9 defb $1f,$1f $a9eb defb $a0,$1f $a9ed defb $a0,$a0 @label=lines_rect $a9ef defb $00,$01,$03,$04,$ff $a9f4 defb $02,$01,$03,$06,$ff $a9f9 defb $05,$01,$04,$06,$ff $a9fe defb $07,$03,$04,$06,$ff $aa03 defb $ff @label=points_cav_square $aa04 defb $93,$05 $aa06 defb $24,$7d $aa08 defb $25,$7d $aa0a defb $02,$8e $aa0c defb $11,$ad $aa0e defb $26,$b7 $aa10 defb $46,$ad $aa12 defb $4f,$90 $aa14 defb $3b,$96 $aa16 defb $2e,$90 $aa18 defb $79,$ad $aa1a defb $70,$90 $aa1c defb $8c,$b9 $aa1e defb $97,$b4 $aa20 defb $7a,$96 $aa22 defb $81,$93 $aa24 defb $8a,$99 $aa26 defb $82,$94 $aa28 defb $97,$85 $aa2a defb $a2,$bf $aa2c defb $b9,$9c $aa2e defb $b8,$9b $aa30 defb $ad,$79 $aa32 defb $ae,$79 $aa34 defb $91,$71 $aa36 defb $90,$70 $aa38 defb $90,$4f $aa3a defb $ad,$46 $aa3c defb $28,$72 $aa3e defb $2f,$70 $aa40 defb $12,$79 $aa42 defb $11,$78 $aa44 defb $0a,$74 $aa46 defb $12,$46 $aa48 defb $2f,$4f $aa4a defb $26,$3c $aa4c defb $2f,$3c $aa4e defb $05,$2c $aa50 defb $17,$2c $aa52 defb $2f,$2b $aa54 defb $17,$13 $aa56 defb $37,$24 $aa58 defb $38,$25 $aa5a defb $24,$02 $aa5c defb $23,$01 $aa5e defb $46,$12 $aa60 defb $4f,$2f $aa62 defb $79,$12 $aa64 defb $70,$2f $aa66 defb $83,$26 $aa68 defb $83,$2f $aa6a defb $94,$2f $aa6c defb $9c,$37 $aa6e defb $9b,$38 $aa70 defb $be,$23 $aa72 defb $bf,$24 $aa74 defb $ac,$17 $aa76 defb $93,$17 @label=lines_cav_square $aa78 defb $00,$2f,$31,$39,$ff $aa7d defb $01,$ff $aa7f defb $02,$ff $aa81 defb $03,$01,$04,$20,$ff $aa86 defb $04,$ff $aa88 defb $05,$06,$08,$04,$ff $aa8d defb $06,$ff $aa8f defb $07,$06,$08,$0b,$ff $aa94 defb $08,$ff $aa96 defb $09,$08,$04,$02,$ff $aa9b defb $0a,$0c,$0b,$06,$ff $aaa0 defb $0b,$ff $aaa2 defb $0c,$ff $aaa4 defb $0d,$13,$0c,$11,$ff $aaa9 defb $0e,$0f,$0c,$0b,$ff $aaae defb $0f,$ff $aab0 defb $10,$ff $aab2 defb $11,$10,$ff,$12,$15,$18,$10,$ff $aaba defb $13,$10,$ff $aabd defb $14,$17,$13,$ff $aac1 defb $15,$ff $aac3 defb $16,$19,$ff $aac6 defb $17,$ff $aac8 defb $18,$ff $aaca defb $19,$ff $aacc defb $1a,$19,$35,$ff $aad0 defb $1b,$1a,$36,$16,$ff $aad5 defb $1c,$02,$1d,$1e,$ff $aada defb $1d,$ff $aadc defb $1e,$ff $aade defb $1f,$ff $aae0 defb $20,$1f,$ff $aae3 defb $21,$1e,$22,$25,$ff $aae8 defb $22,$1d,$ff $aaeb defb $23,$22,$24,$25,$ff $aaf0 defb $24,$ff $aaf2 defb $25,$ff $aaf4 defb $26,$24,$25,$28,$ff $aaf9 defb $27,$24,$29,$28,$ff $aafe defb $28,$ff $ab00 defb $29,$ff $ab02 defb $2a,$ff $ab04 defb $2b,$29,$ff $ab07 defb $2c,$28,$2d,$ff $ab0b defb $2d,$ff $ab0d defb $2e,$2a,$2d,$ff $ab11 defb $2f,$2d,$30,$ff $ab15 defb $30,$31,$2e,$ff $ab19 defb $31,$ff $ab1b defb $32,$31,$33,$39,$ff $ab20 defb $33,$ff $ab22 defb $34,$33,$36,$ff $ab26 defb $35,$ff $ab28 defb $36,$ff $ab2a defb $37,$ff $ab2c defb $38,$33,$37,$39,$ff $ab31 defb $39,$ff $ab33 defb $ff @label=points_2 $ab34 defb $02,$a3 $ab36 defb $02,$1c $ab38 defb $1c,$02 $ab3a defb $a3,$02 $ab3c defb $bd,$1c $ab3e defb $bd,$a3 $ab40 defb $a3,$bd $ab42 defb $1c,$bd $ab44 defb $30,$a0 $ab46 defb $1f,$8f $ab48 defb $1f,$30 $ab4a defb $30,$1f $ab4c defb $8f,$1f $ab4e defb $a0,$30 $ab50 defb $a0,$8f $ab52 defb $8f,$a0 @label=line_octagon $ab54 defb $00,$09,$07,$01,$ff $ab59 defb $02,$01,$03,$0b,$ff $ab5e defb $04,$03,$05,$0d,$ff $ab63 defb $06,$05,$0f,$07,$ff $ab68 defb $08,$07,$09,$0f,$ff $ab6d defb $0a,$01,$09,$0b,$ff $ab72 defb $0c,$03,$0b,$0d,$ff $ab77 defb $0e,$05,$0d,$0f,$ff $ab7c defb $ff @label=points_wide $ab7d defb $03,$9c $ab7f defb $03,$23 $ab81 defb $bc,$23 $ab83 defb $bc,$9c $ab85 defb $1f,$80 $ab87 defb $1f,$3f $ab89 defb $a0,$3f $ab8b defb $a0,$80 @label=points_tall $ab8d defb $23,$03 $ab8f defb $9c,$03 $ab91 defb $9c,$bc $ab93 defb $23,$bc $ab95 defb $3f,$1f $ab97 defb $80,$1f $ab99 defb $80,$a0 $ab9b defb $3f,$a0 @label=stair_points_t $ab9d defb $8a,$ba $ab9f defb $08,$04 $aba1 defb $35,$bb $aba3 defb $8a,$bb $aba5 defb $b7,$04 $aba7 defb $38,$28 $aba9 defb $38,$3d $abab defb $3d,$3d $abad defb $3d,$51 $abaf defb $41,$51 $abb1 defb $41,$63 $abb3 defb $45,$63 $abb5 defb $45,$73 $abb7 defb $48,$73 $abb9 defb $48,$81 $abbb defb $4b,$81 $abbd defb $4b,$8d $abbf defb $4e,$8d $abc1 defb $4e,$97 $abc3 defb $50,$97 $abc5 defb $50,$9f $abc7 defb $6f,$9f $abc9 defb $6f,$97 $abcb defb $71,$97 $abcd defb $71,$8d $abcf defb $74,$8d $abd1 defb $74,$81 $abd3 defb $77,$81 $abd5 defb $77,$73 $abd7 defb $7a,$73 $abd9 defb $7a,$63 $abdb defb $7e,$63 $abdd defb $7e,$51 $abdf defb $82,$51 $abe1 defb $82,$3d $abe3 defb $87,$3d $abe5 defb $87,$28 $abe7 defb $35,$ba @label=stair_lines $abe9 defb $01,$ff $abeb defb $02,$03,$01,$ff $abef defb $03,$ff $abf1 defb $04,$01,$03,$ff $abf5 defb $05,$01,$ff $abf8 defb $06,$23,$05,$ff $abfc defb $07,$ff $abfe defb $08,$21,$07,$ff $ac02 defb $09,$ff $ac04 defb $0a,$1f,$09,$ff $ac08 defb $0b,$ff $ac0a defb $0c,$1d,$0b,$ff $ac0e defb $0d,$ff $ac10 defb $0e,$1b,$0d,$ff $ac14 defb $0f,$ff $ac16 defb $10,$19,$0f,$ff $ac1a defb $11,$ff $ac1c defb $12,$17,$11,$02,$ff $ac21 defb $17,$03,$ff $ac24 defb $18,$17,$ff $ac27 defb $19,$ff $ac29 defb $1a,$19,$ff $ac2c defb $1b,$ff $ac2e defb $1c,$1b,$ff $ac31 defb $1d,$ff $ac33 defb $1e,$1d,$ff $ac36 defb $1f,$ff $ac38 defb $20,$1f,$ff $ac3b defb $21,$ff $ac3d defb $22,$21,$ff $ac40 defb $23,$ff $ac42 defb $24,$04,$05,$23,$ff $ac47 defb $25,$ff $ac49 defb $ff @label=stair_points_b $ac4a defb $8a,$05 $ac4c defb $08,$bb $ac4e defb $38,$04 $ac50 defb $8a,$04 $ac52 defb $b7,$bb $ac54 defb $38,$97 $ac56 defb $38,$82 $ac58 defb $3d,$82 $ac5a defb $3d,$6e $ac5c defb $41,$6e $ac5e defb $41,$5c $ac60 defb $45,$5c $ac62 defb $45,$4c $ac64 defb $48,$4c $ac66 defb $48,$3e $ac68 defb $4b,$3e $ac6a defb $4b,$32 $ac6c defb $4e,$32 $ac6e defb $4e,$28 $ac70 defb $50,$28 $ac72 defb $50,$20 $ac74 defb $6f,$20 $ac76 defb $6f,$28 $ac78 defb $71,$28 $ac7a defb $71,$32 $ac7c defb $74,$32 $ac7e defb $74,$3e $ac80 defb $77,$3e $ac82 defb $77,$4c $ac84 defb $7a,$4c $ac86 defb $7a,$5c $ac88 defb $7e,$5c $ac8a defb $7e,$6e $ac8c defb $82,$6e $ac8e defb $82,$82 $ac90 defb $87,$82 $ac92 defb $87,$97 $ac94 defb $35,$05 @label=stair_points_r $ac96 defb $05,$8a $ac98 defb $bb,$08 $ac9a defb $04,$38 $ac9c defb $04,$8a $ac9e defb $bb,$b7 $aca0 defb $97,$38 $aca2 defb $82,$38 $aca4 defb $82,$3d $aca6 defb $64,$3d $aca8 defb $6e,$41 $acaa defb $5c,$41 $acac defb $5c,$45 $acae defb $4c,$45 $acb0 defb $4c,$48 $acb2 defb $3e,$48 $acb4 defb $3e,$4b $acb6 defb $32,$4b $acb8 defb $32,$4e $acba defb $28,$4e $acbc defb $28,$50 $acbe defb $20,$50 $acc0 defb $20,$6f $acc2 defb $28,$6f $acc4 defb $28,$71 $acc6 defb $32,$71 $acc8 defb $32,$74 $acca defb $3e,$74 $accc defb $3e,$77 $acce defb $4c,$77 $acd0 defb $4c,$7a $acd2 defb $5c,$7a $acd4 defb $5c,$7e $acd6 defb $6e,$7e $acd8 defb $6e,$82 $acda defb $82,$82 $acdc defb $82,$87 $acde defb $97,$87 $ace0 defb $05,$35 @label=stair_points_l $ace2 defb $ba,$8a $ace4 defb $04,$08 $ace6 defb $bb,$35 $ace8 defb $bb,$8a $acea defb $04,$b7 $acec defb $28,$38 $acee defb $3d,$38 $acf0 defb $3d,$3d $acf2 defb $51,$3d $acf4 defb $51,$41 $acf6 defb $63,$41 $acf8 defb $63,$45 $acfa defb $73,$45 $acfc defb $73,$48 $acfe defb $81,$48 $ad00 defb $81,$4b $ad02 defb $8d,$4b $ad04 defb $8d,$4e $ad06 defb $97,$4e $ad08 defb $97,$50 $ad0a defb $9f,$50 $ad0c defb $9f,$6f $ad0e defb $97,$6f $ad10 defb $97,$71 $ad12 defb $8d,$71 $ad14 defb $8d,$74 $ad16 defb $81,$74 $ad18 defb $81,$77 $ad1a defb $73,$77 $ad1c defb $73,$7a $ad1e defb $63,$7a $ad20 defb $63,$7e $ad22 defb $51,$7e $ad24 defb $51,$82 $ad26 defb $3d,$82 $ad28 defb $3d,$87 $ad2a defb $28,$87 $ad2c defb $ba,$35 ; Data block at ad2e @label=g_knight_down1 b$ad2e defb $12 $ad2f defb $3c,$00 $ad31 defb $3c,$f0 $ad33 defb $1f,$78 $ad35 defb $1b,$94 $ad37 defb $05,$4e $ad39 defb $6b,$6e $ad3b defb $e9,$2c $ad3d defb $ef,$e8 $ad3f defb $44,$40 $ad41 defb $26,$c8 $ad43 defb $20,$08 $ad45 defb $30,$18 $ad47 defb $3f,$f8 $ad49 defb $13,$f0 $ad4b defb $13,$f0 $ad4d defb $09,$e0 $ad4f defb $05,$c0 $ad51 defb $02,$80 @label=g_knight_down2 $ad53 defb $12 $ad54 defb $1e,$f0 $ad56 defb $0e,$e0 $ad58 defb $05,$40 $ad5a defb $03,$f0 $ad5c defb $65,$4c $ad5e defb $eb,$6e $ad60 defb $e9,$2e $ad62 defb $6f,$ec $ad64 defb $04,$40 $ad66 defb $26,$c8 $ad68 defb $20,$08 $ad6a defb $30,$18 $ad6c defb $3f,$f8 $ad6e defb $13,$f0 $ad70 defb $13,$f0 $ad72 defb $09,$e0 $ad74 defb $05,$c0 $ad76 defb $02,$80 @label=g_knight_down3 $ad78 defb $12 $ad79 defb $00,$78 $ad7b defb $1e,$78 $ad7d defb $3d,$f0 $ad7f defb $53,$b0 $ad81 defb $e5,$40 $ad83 defb $eb,$6c $ad85 defb $69,$2e $ad87 defb $2f,$ee $ad89 defb $04,$44 $ad8b defb $26,$c8 $ad8d defb $20,$08 $ad8f defb $30,$18 $ad91 defb $3f,$f8 $ad93 defb $13,$f0 $ad95 defb $13,$f0 $ad97 defb $09,$e0 $ad99 defb $05,$c0 $ad9b defb $02,$80 @label=g_knight_up1 $ad9d defb $12 $ad9e defb $3c,$00 $ada0 defb $3c,$f0 $ada2 defb $1f,$78 $ada4 defb $1b,$94 $ada6 defb $07,$ce $ada8 defb $6f,$ee $adaa defb $ef,$ec $adac defb $ef,$e8 $adae defb $40,$00 $adb0 defb $3f,$f8 $adb2 defb $27,$f8 $adb4 defb $27,$f8 $adb6 defb $30,$38 $adb8 defb $13,$f0 $adba defb $13,$f0 $adbc defb $09,$e0 $adbe defb $05,$c0 $adc0 defb $02,$80 @label=g_knight_up2 $adc2 defb $12 $adc3 defb $1e,$f0 $adc5 defb $0e,$e0 $adc7 defb $05,$40 $adc9 defb $03,$80 $adcb defb $67,$cc $adcd defb $ef,$ee $adcf defb $ef,$ee $add1 defb $6f,$ec $add3 defb $00,$00 $add5 defb $3f,$f8 $add7 defb $27,$f8 $add9 defb $27,$f8 $addb defb $30,$38 $addd defb $13,$f0 $addf defb $13,$f0 $ade1 defb $09,$e0 $ade3 defb $05,$c0 $ade5 defb $02,$80 @label=g_knight_up3 $ade7 defb $12 $ade8 defb $00,$78 $adea defb $1e,$78 $adec defb $3d,$f0 $adee defb $53,$b0 $adf0 defb $e7,$c0 $adf2 defb $ef,$ec $adf4 defb $6f,$ee $adf6 defb $2f,$ee $adf8 defb $00,$04 $adfa defb $3f,$f8 $adfc defb $27,$f8 $adfe defb $27,$f8 $ae00 defb $30,$38 $ae02 defb $13,$f0 $ae04 defb $13,$f0 $ae06 defb $09,$e0 $ae08 defb $05,$c0 $ae0a defb $02,$80 @label=g_knight_left1 $ae0c defb $12 $ae0d defb $0c,$70 $ae0f defb $1c,$38 $ae11 defb $3b,$98 $ae13 defb $37,$60 $ae15 defb $06,$10 $ae17 defb $37,$08 $ae19 defb $27,$98 $ae1b defb $1f,$f0 $ae1d defb $67,$80 $ae1f defb $6b,$7c $ae21 defb $1a,$fc $ae23 defb $01,$fc $ae25 defb $1f,$fc $ae27 defb $08,$08 $ae29 defb $09,$f8 $ae2b defb $04,$f0 $ae2d defb $02,$e0 $ae2f defb $01,$40 @label=g_knight_left2 $ae31 defb $12 $ae32 defb $07,$c0 $ae34 defb $03,$c0 $ae36 defb $00,$00 $ae38 defb $03,$f0 $ae3a defb $06,$38 $ae3c defb $04,$18 $ae3e defb $0f,$98 $ae40 defb $1f,$f0 $ae42 defb $67,$80 $ae44 defb $6b,$7c $ae46 defb $1a,$fc $ae48 defb $01,$fc $ae4a defb $1f,$fc $ae4c defb $08,$08 $ae4e defb $09,$f8 $ae50 defb $04,$f0 $ae52 defb $02,$e0 $ae54 defb $01,$40 @label=g_knight_left3 $ae56 defb $12 $ae57 defb $0c,$70 $ae59 defb $1c,$38 $ae5b defb $3b,$d8 $ae5d defb $37,$e0 $ae5f defb $04,$74 $ae61 defb $08,$3a $ae63 defb $07,$1e $ae65 defb $1f,$f8 $ae67 defb $67,$80 $ae69 defb $6b,$7c $ae6b defb $1a,$fc $ae6d defb $01,$fc $ae6f defb $1f,$fc $ae71 defb $08,$08 $ae73 defb $09,$f8 $ae75 defb $04,$f0 $ae77 defb $02,$e0 $ae79 defb $01,$40 @label=g_knight_right1 $ae7b defb $12 $ae7c defb $0e,$30 $ae7e defb $1c,$38 $ae80 defb $1b,$dc $ae82 defb $07,$ec $ae84 defb $2e,$20 $ae86 defb $5c,$10 $ae88 defb $78,$e0 $ae8a defb $1f,$f8 $ae8c defb $01,$e6 $ae8e defb $3e,$d6 $ae90 defb $27,$58 $ae92 defb $27,$80 $ae94 defb $27,$f8 $ae96 defb $10,$30 $ae98 defb $13,$f0 $ae9a defb $09,$e0 $ae9c defb $05,$c0 $ae9e defb $02,$80 @label=g_knight_right2 $aea0 defb $12 $aea1 defb $03,$e0 $aea3 defb $03,$c0 $aea5 defb $00,$00 $aea7 defb $0f,$c0 $aea9 defb $1c,$60 $aeab defb $18,$20 $aead defb $19,$f0 $aeaf defb $0f,$f8 $aeb1 defb $01,$e6 $aeb3 defb $3e,$d6 $aeb5 defb $27,$58 $aeb7 defb $27,$80 $aeb9 defb $27,$f8 $aebb defb $10,$30 $aebd defb $13,$f0 $aebf defb $09,$e0 $aec1 defb $05,$c0 $aec3 defb $02,$80 @label=g_knight_right3 $aec5 defb $12 $aec6 defb $0e,$30 $aec8 defb $1c,$38 $aeca defb $18,$dc $aecc defb $06,$ec $aece defb $08,$60 $aed0 defb $10,$ec $aed2 defb $19,$e4 $aed4 defb $0f,$f8 $aed6 defb $01,$e6 $aed8 defb $3e,$d6 $aeda defb $27,$58 $aedc defb $27,$80 $aede defb $27,$f8 $aee0 defb $10,$30 $aee2 defb $13,$f0 $aee4 defb $09,$e0 $aee6 defb $05,$c0 $aee8 defb $02,$80 ; Data block at aeea @label=g_none b$aeea defb $00 $aeeb defb $00 ; Data block at aeec @label=g_blank b$aeec defb $10 $aeed defb $00,$00 $aeef defb $00,$00 $aef1 defb $00,$00 $aef3 defb $00,$00 $aef5 defb $00,$00 $aef7 defb $00,$00 $aef9 defb $00,$00 $aefb defb $00,$00 $aefd defb $00,$00 $aeff defb $00,$00 $af01 defb $00,$00 $af03 defb $00,$00 $af05 defb $00,$00 $af07 defb $00,$00 $af09 defb $00,$00 $af0b defb $00,$00 ; Data block at af0d @label=g_leaf b$af0d defb $10 $af0e defb $00,$03 $af10 defb $00,$3f $af12 defb $00,$fa $af14 defb $03,$f2 $af16 defb $06,$0a $af18 defb $0f,$da $af1a defb $1f,$bc $af1c defb $3f,$3c $af1e defb $20,$b8 $af20 defb $7d,$b8 $af22 defb $7b,$b0 $af24 defb $f3,$a0 $af26 defb $9b,$c0 $af28 defb $db,$80 $af2a defb $de,$00 $af2c defb $f8,$00 @label=g_key $af2e defb $0a $af2f defb $0c,$00 $af31 defb $1e,$17 $af33 defb $12,$12 $af35 defb $7b,$1a $af37 defb $cf,$ff $af39 defb $cf,$ff $af3b defb $7b,$00 $af3d defb $12,$00 $af3f defb $1e,$00 $af41 defb $0c,$00 @label=g_wine $af43 defb $14 $af44 defb $19,$fc $af46 defb $19,$fc $af48 defb $19,$c0 $af4a defb $19,$dc $af4c defb $19,$dc $af4e defb $19,$dc $af50 defb $19,$dc $af52 defb $19,$dc $af54 defb $19,$dc $af56 defb $19,$dc $af58 defb $19,$c0 $af5a defb $19,$fc $af5c defb $1c,$fc $af5e defb $0e,$f8 $af60 defb $03,$60 $af62 defb $01,$40 $af64 defb $01,$40 $af66 defb $01,$40 $af68 defb $02,$e0 $af6a defb $01,$c0 @label=g_bottle $af6c defb $14 $af6d defb $19,$f0 $af6f defb $19,$f0 $af71 defb $19,$f0 $af73 defb $19,$f0 $af75 defb $19,$f0 $af77 defb $19,$f0 $af79 defb $19,$f0 $af7b defb $19,$f0 $af7d defb $19,$f0 $af7f defb $09,$e0 $af81 defb $0d,$e0 $af83 defb $0d,$e0 $af85 defb $05,$c0 $af87 defb $05,$c0 $af89 defb $06,$c0 $af8b defb $02,$80 $af8d defb $02,$80 $af8f defb $02,$80 $af91 defb $05,$c0 $af93 defb $03,$80 @label=g_wing $af95 defb $10 $af96 defb $a0,$00 $af98 defb $b0,$00 $af9a defb $98,$00 $af9c defb $af,$80 $af9e defb $d0,$00 $afa0 defb $df,$c0 $afa2 defb $6f,$e0 $afa4 defb $73,$f0 $afa6 defb $3c,$74 $afa8 defb $3f,$88 $afaa defb $1f,$f8 $afac defb $0f,$f8 $afae defb $07,$f8 $afb0 defb $03,$fc $afb2 defb $00,$fe $afb4 defb $00,$1f @label=g_whip $afb6 defb $10 $afb7 defb $c0,$00 $afb9 defb $e0,$02 $afbb defb $e0,$0c $afbd defb $00,$30 $afbf defb $c0,$30 $afc1 defb $e0,$40 $afc3 defb $e0,$c0 $afc5 defb $40,$80 $afc7 defb $00,$30 $afc9 defb $e0,$36 $afcb defb $70,$06 $afcd defb $70,$03 $afcf defb $2c,$1e $afd1 defb $1e,$ec $afd3 defb $0e,$e0 $afd5 defb $04,$60 @label=g_frogsleg $afd7 defb $10 $afd8 defb $90,$08 $afda defb $b1,$0e $afdc defb $f6,$1e $afde defb $7c,$37 $afe0 defb $78,$67 $afe2 defb $30,$cf $afe4 defb $31,$9e $afe6 defb $33,$3c $afe8 defb $32,$78 $afea defb $76,$f0 $afec defb $76,$f0 $afee defb $75,$e0 $aff0 defb $e7,$c0 $aff2 defb $3f,$00 $aff4 defb $3e,$00 $aff6 defb $18,$00 @label=g_dessert $aff8 defb $10 $aff9 defb $05,$e0 $affb defb $00,$00 $affd defb $33,$fc $afff defb $67,$fe $b001 defb $00,$00 $b003 defb $c7,$ff $b005 defb $ff,$ff $b007 defb $00,$00 $b009 defb $6f,$fe $b00b defb $67,$3e $b00d defb $7b,$de $b00f defb $3f,$ec $b011 defb $0b,$e8 $b013 defb $0c,$f0 $b015 defb $0f,$80 $b017 defb $07,$00 @label=g_apple $b019 defb $10 $b01a defb $03,$e0 $b01c defb $0f,$f8 $b01e defb $1f,$fc $b020 defb $3f,$fe $b022 defb $7f,$fe $b024 defb $7f,$ff $b026 defb $7f,$ff $b028 defb $67,$ff $b02a defb $63,$ff $b02c defb $33,$ff $b02e defb $3b,$06 $b030 defb $1f,$f8 $b032 defb $0e,$dc $b034 defb $01,$86 $b036 defb $07,$7b $b038 defb $06,$3c ; Data block at b03a @label=panel_chars b$b03a defb $00,$00,$00,$00,$00,$00,$00,$00 ; &0000 $b042 defb $00,$00,$03,$0f,$1f,$3d,$7e,$79 ; &0008 $b04a defb $00,$00,$ff,$ff,$ff,$b4,$4a,$00 ; &0010 $b052 defb $00,$00,$80,$fe,$ff,$d5,$ad,$42 ; &0018 $b05a defb $00,$00,$00,$00,$f0,$7f,$56,$50 ; &0020 $b062 defb $00,$00,$00,$00,$03,$ff,$b5,$44 ; &0028 $b06a defb $00,$00,$01,$1f,$ff,$da,$25,$41 ; &0030 $b072 defb $00,$07,$ff,$fe,$fc,$fc,$d8,$3f ; &0038 $b07a defb $00,$f0,$08,$04,$02,$02,$02,$f1 ; &0040 $b082 defb $d0,$ca,$e0,$c0,$c0,$c0,$60,$60 ; &0048 $b08a defb $3b,$1b,$1b,$1b,$1b,$19,$0c,$0c ; &0050 $b092 defb $89,$89,$85,$85,$fd,$81,$81,$81 ; &0058 $b09a defb $0c,$06,$03,$03,$03,$01,$01,$01 ; &0060 $b0a2 defb $41,$42,$fc,$00,$00,$80,$80,$80 ; &0068 $b0aa defb $60,$30,$1c,$06,$3e,$1c,$0c,$06 ; &0070 $b0b2 defb $0c,$18,$18,$18,$0c,$0c,$0c,$0c ; &0078 $b0ba defb $06,$06,$06,$06,$06,$06,$06,$06 ; &0080 $b0c2 defb $06,$06,$06,$06,$06,$06,$0c,$0c ; &0088 $b0ca defb $0c,$0c,$0c,$18,$18,$18,$18,$18 ; &0090 $b0d2 defb $18,$30,$30,$30,$30,$30,$30,$30 ; &0098 $b0da defb $30,$60,$60,$60,$60,$60,$60,$60 ; &00a0 $b0e2 defb $60,$60,$60,$60,$30,$30,$30,$18 ; &00a8 $b0ea defb $0c,$18,$18,$18,$30,$30,$18,$30 ; &00b0 $b0f2 defb $30,$38,$0c,$06,$0c,$18,$18,$18 ; &00b8 $b0fa defb $0c,$0c,$0c,$0c,$0c,$06,$06,$06 ; &00c0 $b102 defb $06,$06,$06,$06,$03,$03,$03,$03 ; &00c8 $b10a defb $03,$03,$03,$03,$03,$03,$03,$03 ; &00d0 $b112 defb $03,$03,$03,$03,$03,$06,$06,$06 ; &00d8 $b11a defb $06,$06,$06,$06,$0c,$0c,$0c,$0c ; &00e0 $b122 defb $0c,$18,$18,$18,$18,$30,$30,$30 ; &00e8 $b12a defb $30,$60,$60,$60,$7f,$7e,$0c,$18 ; &00f0 $b132 defb $00,$00,$0c,$1e,$1d,$0b,$07,$37 ; &00f8 $b13a defb $7f,$ff,$80,$7f,$ff,$c1,$80,$00 ; &0100 $b142 defb $00,$80,$98,$3c,$dc,$e8,$f0,$76 ; &0108 $b14a defb $01,$03,$03,$03,$06,$06,$0c,$7f ; &0110 $b152 defb $80,$00,$00,$00,$00,$00,$00,$fc ; &0118 $b15a defb $70,$f0,$18,$fc,$f8,$c0,$c0,$c0 ; &0120 $b162 defb $6e,$ec,$ec,$ec,$ec,$ec,$6e,$37 ; &0128 $b16a defb $3e,$49,$49,$49,$49,$2a,$1c,$08 ; &0130 $b172 defb $3b,$1b,$1b,$1b,$1b,$1b,$3b,$76 ; &0138 $b17a defb $00,$80,$80,$80,$80,$80,$00,$00 ; &0140 $b182 defb $00,$03,$07,$0e,$07,$01,$00,$00 ; &0148 $b18a defb $fd,$c3,$df,$2f,$97,$eb,$77,$31 ; &0150 $b192 defb $c2,$c1,$81,$81,$01,$fd,$05,$05 ; &0158 $b19a defb $c0,$60,$60,$60,$30,$18,$0f,$07 ; &0160 $b1a2 defb $07,$0b,$1d,$1e,$0c,$00,$00,$ff ; &0168 $b1aa defb $80,$c1,$ff,$7f,$80,$ff,$7f,$3e ; &0170 $b1b2 defb $f0,$e8,$dc,$3c,$9b,$9f,$7c,$e0 ; &0178 $b1ba defb $00,$00,$00,$3f,$ff,$c0,$00,$00 ; &0180 $b1c2 defb $00,$00,$00,$00,$f0,$ff,$0f,$00 ; &0188 $b1ca defb $30,$3f,$30,$18,$18,$0c,$fe,$ff ; &0190 $b1d2 defb $89,$f1,$01,$01,$02,$04,$08,$f0 ; &0198 $b1da defb $ff,$00,$00,$00,$00,$00,$00,$00 ; &01a0 $b1e2 defb $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff ; &01a8 $b1ea defb $ff,$ff,$7f,$7b,$7b,$39,$39,$38 ; &01b0 $b1f2 defb $00,$00,$80,$80,$80,$80,$c0,$c0 ; &01b8 $b1fa defb $10,$10,$10,$00,$00,$00,$00,$00 ; &01c0 $b202 defb $60,$20,$10,$00,$00,$00,$00,$00 ; &01c8 $b20a defb $c0,$c0,$c0,$60,$60,$60,$30,$30 ; &01d0 $b212 defb $30,$18,$18,$18,$18,$30,$30,$30 ; &01d8 $b21a defb $18,$0c,$0c,$0c,$0c,$0c,$0c,$0c ; &01e0 $b222 defb $0c,$0c,$0c,$0c,$0c,$0c,$0c,$0c ; &01e8 $b22a defb $0c,$0c,$0c,$0c,$18,$18,$18,$18 ; &01f0 $b232 defb $18,$30,$30,$30,$30,$60,$60,$60 ; &01f8 $b23a defb $60,$60,$60,$c0,$c0,$c0,$c0,$c0 ; &0200 $b242 defb $c0,$c0,$c0,$c0,$c0,$c0,$c0,$c0 ; &0208 $b24a defb $60,$60,$60,$60,$60,$30,$30,$30 ; &0210 $b252 defb $18,$18,$18,$0c,$0c,$0c,$0c,$06 ; &0218 $b25a defb $06,$06,$06,$06,$03,$03,$03,$03 ; &0220 $b262 defb $03,$03,$03,$03,$03,$03,$03,$03 ; &0228 $b26a defb $06,$06,$06,$06,$06,$0c,$0c,$0c ; &0230 $b272 defb $0c,$18,$18,$18,$18,$30,$30,$30 ; &0238 $b27a defb $60,$60,$60,$c0,$c0,$c0,$80,$80 ; &0240 $b282 defb $07,$0f,$0f,$07,$01,$0f,$07,$00 ; &0248 $b28a defb $c3,$e7,$0f,$ce,$ef,$e7,$c3,$00 ; &0250 $b292 defb $c3,$e7,$8f,$0e,$1f,$e7,$c3,$00 ; &0258 $b29a defb $8f,$cf,$ee,$ef,$ef,$ce,$8e,$00 ; &0260 $b2a2 defb $cf,$ef,$6e,$ef,$ce,$cf,$ef,$00 ; &0268 $b2aa defb $80,$80,$00,$c0,$00,$e0,$e0,$00 ; &0270 $b2b2 defb $00,$00,$08,$1e,$27,$23,$71,$5f ; &0278 $b2ba defb $00,$00,$40,$40,$80,$80,$00,$c3 ; &0280 $b2c2 defb $00,$00,$00,$00,$00,$00,$00,$16 ; &0288 $b2ca defb $00,$00,$00,$05,$03,$03,$03,$33 ; &0290 $b2d2 defb $00,$00,$00,$ac,$18,$18,$18,$18 ; &0298 $b2da defb $4f,$22,$1f,$05,$7f,$47,$3b,$00 ; &02a0 $b2e2 defb $ef,$6c,$2c,$ac,$4c,$ce,$87,$00 ; &02a8 $b2ea defb $be,$18,$18,$18,$18,$9c,$0c,$00 ; &02b0 $b2f2 defb $fb,$db,$db,$db,$db,$fb,$61,$00 ; &02b8 $b2fa defb $18,$18,$18,$18,$18,$de,$8c,$00 ; &02c0 $b302 defb $fe,$fe,$fe,$38,$38,$38,$38,$00 ; &02c8 $b30a defb $7c,$7c,$38,$38,$38,$7c,$7c,$00 ; &02d0 $b312 defb $82,$ee,$fe,$fe,$d6,$d6,$d6,$00 ; &02d8 $b31a defb $f8,$f8,$e0,$fc,$e0,$fe,$fe,$00 ; &02e0 $b322 defb $00,$18,$18,$00,$00,$18,$18,$00 ; &02e8 ; Data block at b32a @label=panel_data b$b32a defb $01,$02,$03,$04,$05,$06,$07,$08 ; 0 $b332 defb $09,$4f,$50,$51,$52,$53,$0a,$0b ; 8 $b33a defb $0e,$54,$55,$56,$57,$58,$0c,$0d ; 16 $b342 defb $0f,$00,$00,$00,$00,$00,$00,$3a ; 24 $b34a defb $10,$00,$00,$00,$00,$00,$00,$3b ; 32 $b352 defb $11,$00,$00,$00,$00,$00,$00,$3c ; 40 $b35a defb $12,$00,$00,$00,$00,$00,$00,$3d ; 48 $b362 defb $13,$00,$59,$5a,$5b,$5c,$00,$3e ; 56 $b36a defb $14,$00,$00,$00,$5d,$00,$00,$3f ; 64 $b372 defb $15,$49,$4a,$4b,$4c,$4d,$4e,$40 ; 72 $b37a defb $16,$00,$00,$00,$00,$00,$00,$41 ; 80 $b382 defb $17,$00,$00,$00,$00,$00,$00,$42 ; 88 $b38a defb $18,$00,$00,$00,$00,$00,$00,$43 ; 96 $b392 defb $19,$00,$00,$00,$00,$00,$00,$44 ; 104 $b39a defb $1a,$00,$00,$00,$00,$00,$00,$45 ; 112 $b3a2 defb $1b,$00,$00,$00,$00,$00,$00,$46 ; 120 $b3aa defb $1c,$00,$00,$00,$00,$00,$00,$47 ; 128 $b3b2 defb $1d,$00,$00,$00,$00,$00,$00,$48 ; 136 $b3ba defb $1e,$1f,$20,$21,$00,$00,$22,$23 ; 144 $b3c2 defb $24,$25,$26,$27,$28,$29,$2a,$2b ; 152 $b3ca defb $2c,$2d,$2e,$2f,$30,$31,$32,$33 ; 160 $b3d2 defb $00,$34,$35,$00,$00,$00,$00,$00 ; 168 $b3da defb $00,$00,$36,$37,$00,$00,$00,$00 ; 176 $b3e2 defb $00,$00,$38,$39,$00,$00,$00,$00 ; 184 ; Data block at b3ea @label=g_bigdoor_frame b$b3ea defb $06,$20 $b3ec defb $ff,$fe,$00,$00,$3f,$ff $b3f2 defb $00,$fe,$00,$00,$7f,$00 $b3f8 defb $01,$fc,$00,$00,$3f,$80 $b3fe defb $00,$00,$00,$00,$00,$00 $b404 defb $01,$f8,$00,$00,$1f,$80 $b40a defb $03,$f8,$00,$00,$1f,$c0 $b410 defb $03,$f0,$00,$00,$0f,$c0 $b416 defb $00,$00,$00,$00,$00,$00 $b41c defb $07,$e0,$00,$00,$07,$e0 $b422 defb $0f,$e0,$00,$00,$07,$f0 $b428 defb $0f,$c0,$00,$00,$03,$f0 $b42e defb $00,$00,$00,$00,$00,$00 $b434 defb $1f,$80,$00,$00,$01,$f8 $b43a defb $1f,$80,$00,$00,$01,$f8 $b440 defb $1f,$80,$00,$00,$01,$f8 $b446 defb $10,$00,$00,$00,$00,$08 $b44c defb $07,$80,$00,$00,$01,$e0 $b452 defb $1f,$80,$00,$00,$01,$f8 $b458 defb $1f,$00,$00,$00,$00,$f8 $b45e defb $0e,$40,$00,$00,$02,$70 $b464 defb $08,$e0,$00,$00,$07,$10 $b46a defb $03,$f4,$00,$00,$2f,$c0 $b470 defb $07,$ef,$00,$00,$f7,$e0 $b476 defb $03,$ce,$77,$ee,$73,$c0 $b47c defb $01,$de,$f6,$6f,$7b,$80 $b482 defb $00,$9e,$f6,$6f,$79,$00 $b488 defb $00,$3c,$e6,$67,$3c,$00 $b48e defb $00,$1d,$ee,$ee,$b8,$00 $b494 defb $00,$01,$ee,$77,$80,$00 $b49a defb $00,$00,$08,$10,$00,$00 $b4a0 defb $00,$00,$0f,$f0,$00,$00 $b4a6 defb $00,$00,$00,$00,$00,$00 @label=a_bigdoor_frame $b4ac defb $06,$04 $b4ae defb $43,$43,$00,$00,$43,$43 $b4b4 defb $43,$43,$00,$00,$43,$43 $b4ba defb $43,$43,$43,$43,$43,$43 $b4c0 defb $43,$43,$43,$43,$43,$43 @label=g_ghost_picture $b4c6 defb $04,$18 $b4c8 defb $00,$00,$00,$00 $b4cc defb $00,$00,$00,$00 $b4d0 defb $03,$80,$01,$c0 $b4d4 defb $07,$c6,$63,$e0 $b4d8 defb $06,$7f,$fe,$60 $b4dc defb $03,$ff,$ff,$c0 $b4e0 defb $01,$80,$01,$80 $b4e4 defb $01,$80,$01,$80 $b4e8 defb $03,$8c,$31,$c0 $b4ec defb $07,$8f,$f1,$e0 $b4f0 defb $03,$0c,$30,$c0 $b4f4 defb $0b,$0f,$f0,$d0 $b4f8 defb $0f,$0c,$90,$f0 $b4fc defb $07,$0d,$b0,$e0 $b500 defb $06,$07,$e0,$60 $b504 defb $0e,$03,$c0,$70 $b508 defb $1e,$00,$00,$78 $b50c defb $37,$ff,$ff,$ec $b510 defb $1f,$ff,$ff,$f4 $b514 defb $35,$ff,$ff,$ac $b518 defb $1b,$1c,$31,$d8 $b51c defb $0e,$06,$60,$70 $b520 defb $00,$00,$00,$00 $b524 defb $00,$00,$00,$00 @label=a_ghost_picture $b528 defb $04,$03 $b52a defb $ff,$ff,$ff,$ff $b52e defb $ff,$ff,$ff,$ff $b532 defb $ff,$ff,$ff,$ff @label=g_serf_down1 $b536 defb $12 $b537 defb $1f,$38 $b539 defb $17,$38 $b53b defb $0e,$3c $b53d defb $01,$5e $b53f defb $03,$de $b541 defb $27,$ee $b543 defb $77,$70 $b545 defb $77,$f4 $b547 defb $77,$74 $b549 defb $45,$d0 $b54b defb $00,$80 $b54d defb $0a,$28 $b54f defb $1b,$6c $b551 defb $08,$0c $b553 defb $1c,$14 $b555 defb $17,$fc $b557 defb $0d,$e8 $b559 defb $07,$50 @label=g_serf_down2 $b55b defb $12 $b55c defb $0f,$f8 $b55e defb $0d,$68 $b560 defb $06,$30 $b562 defb $01,$40 $b564 defb $23,$e2 $b566 defb $37,$f6 $b568 defb $37,$76 $b56a defb $17,$f4 $b56c defb $17,$74 $b56e defb $05,$d0 $b570 defb $00,$80 $b572 defb $0a,$28 $b574 defb $1b,$6c $b576 defb $08,$0c $b578 defb $1c,$14 $b57a defb $17,$fc $b57c defb $0d,$e8 $b57e defb $07,$50 @label=g_serf_down3 $b580 defb $12 $b581 defb $07,$7c $b583 defb $07,$74 $b585 defb $1f,$58 $b587 defb $3d,$60 $b589 defb $3d,$e0 $b58b defb $3b,$f2 $b58d defb $07,$77 $b58f defb $17,$f7 $b591 defb $17,$77 $b593 defb $05,$d2 $b595 defb $00,$80 $b597 defb $0a,$28 $b599 defb $1b,$6c $b59b defb $08,$0c $b59d defb $1c,$14 $b59f defb $17,$fc $b5a1 defb $0d,$e8 $b5a3 defb $07,$a0 @label=g_serf_up1 $b5a5 defb $12 $b5a6 defb $1e,$40 $b5a8 defb $1e,$70 $b5aa defb $0a,$b0 $b5ac defb $07,$d8 $b5ae defb $0f,$d8 $b5b0 defb $4f,$e8 $b5b2 defb $ef,$e0 $b5b4 defb $ec,$6c $b5b6 defb $e2,$4c $b5b8 defb $8d,$a8 $b5ba defb $15,$70 $b5bc defb $1b,$d0 $b5be defb $3a,$98 $b5c0 defb $2b,$68 $b5c2 defb $15,$d0 $b5c4 defb $2f,$b8 $b5c6 defb $13,$50 $b5c8 defb $0a,$a0 @label=g_serf_up2 $b5ca defb $12 $b5cb defb $0e,$e0 $b5cd defb $0e,$e0 $b5cf defb $02,$80 $b5d1 defb $07,$c0 $b5d3 defb $47,$c4 $b5d5 defb $6f,$ec $b5d7 defb $6f,$ec $b5d9 defb $2c,$68 $b5db defb $23,$88 $b5dd defb $0d,$a0 $b5df defb $15,$70 $b5e1 defb $1b,$d0 $b5e3 defb $3a,$98 $b5e5 defb $2b,$68 $b5e7 defb $15,$d0 $b5e9 defb $2f,$b8 $b5eb defb $13,$50 $b5ed defb $0a,$a0 @label=g_serf_up3 $b5ef defb $12 $b5f0 defb $04,$f0 $b5f2 defb $1c,$f0 $b5f4 defb $1a,$a0 $b5f6 defb $37,$c0 $b5f8 defb $37,$e0 $b5fa defb $2f,$e4 $b5fc defb $0f,$ee $b5fe defb $6c,$3e $b600 defb $63,$8e $b602 defb $2d,$a2 $b604 defb $15,$70 $b606 defb $1b,$d0 $b608 defb $3a,$98 $b60a defb $2b,$68 $b60c defb $15,$d0 $b60e defb $2f,$b8 $b610 defb $13,$50 $b612 defb $0a,$a0 @label=g_serf_left1 $b614 defb $12 $b615 defb $03,$70 $b617 defb $0f,$78 $b619 defb $3f,$1c $b61b defb $fb,$ec $b61d defb $cb,$10 $b61f defb $77,$88 $b621 defb $07,$c8 $b623 defb $37,$88 $b625 defb $77,$30 $b627 defb $0f,$c0 $b629 defb $11,$50 $b62b defb $60,$b8 $b62d defb $68,$68 $b62f defb $19,$d0 $b631 defb $07,$a8 $b633 defb $19,$58 $b635 defb $16,$f0 $b637 defb $0a,$a0 @label=g_serf_left2 $b639 defb $12 $b63a defb $3f,$e0 $b63c defb $2f,$e0 $b63e defb $24,$c0 $b640 defb $19,$e0 $b642 defb $03,$f0 $b644 defb $06,$38 $b646 defb $06,$18 $b648 defb $07,$18 $b64a defb $07,$30 $b64c defb $0f,$c0 $b64e defb $11,$50 $b650 defb $60,$b8 $b652 defb $68,$68 $b654 defb $19,$d0 $b656 defb $07,$a8 $b658 defb $19,$58 $b65a defb $16,$f0 $b65c defb $0a,$a0 @label=g_serf_left3 $b65e defb $12 $b65f defb $03,$f0 $b661 defb $3a,$f8 $b663 defb $5a,$5c $b665 defb $4d,$9c $b667 defb $30,$30 $b669 defb $07,$f8 $b66b defb $08,$7a $b66d defb $18,$1a $b66f defb $07,$3c $b671 defb $0f,$c0 $b673 defb $11,$50 $b675 defb $60,$b8 $b677 defb $68,$68 $b679 defb $19,$d0 $b67b defb $07,$a8 $b67d defb $19,$58 $b67f defb $16,$f0 $b681 defb $0a,$a0 @label=g_serf_right1 $b683 defb $12 $b684 defb $0f,$c0 $b686 defb $1f,$5c $b688 defb $3a,$5a $b68a defb $39,$b2 $b68c defb $0c,$0c $b68e defb $1f,$e0 $b690 defb $5e,$10 $b692 defb $58,$18 $b694 defb $3c,$e0 $b696 defb $03,$f0 $b698 defb $05,$88 $b69a defb $1d,$06 $b69c defb $16,$16 $b69e defb $0b,$98 $b6a0 defb $15,$e0 $b6a2 defb $1a,$98 $b6a4 defb $0f,$e8 $b6a6 defb $05,$50 @label=g_serf_right2 $b6a8 defb $12 $b6a9 defb $07,$fc $b6ab defb $07,$f4 $b6ad defb $03,$24 $b6af defb $07,$98 $b6b1 defb $0f,$c0 $b6b3 defb $1c,$60 $b6b5 defb $18,$60 $b6b7 defb $18,$e0 $b6b9 defb $0c,$e0 $b6bb defb $03,$f0 $b6bd defb $05,$88 $b6bf defb $1d,$06 $b6c1 defb $16,$16 $b6c3 defb $0b,$98 $b6c5 defb $15,$e0 $b6c7 defb $1a,$98 $b6c9 defb $0f,$e8 $b6cb defb $05,$50 @label=g_serf_right3 $b6cd defb $12 $b6ce defb $0e,$c0 $b6d0 defb $1e,$f0 $b6d2 defb $31,$fc $b6d4 defb $37,$df $b6d6 defb $08,$d3 $b6d8 defb $11,$ee $b6da defb $13,$e0 $b6dc defb $11,$ec $b6de defb $0c,$ee $b6e0 defb $03,$f0 $b6e2 defb $05,$88 $b6e4 defb $1d,$06 $b6e6 defb $16,$16 $b6e8 defb $0b,$98 $b6ea defb $15,$e0 $b6ec defb $1a,$98 $b6ee defb $0f,$e8 $b6f0 defb $05,$50 @label=g_clock $b6f2 defb $04,$20 $b6f4 defb $00,$3f,$fc,$00 $b6f8 defb $00,$70,$0e,$00 $b6fc defb $00,$77,$ee,$00 $b700 defb $00,$67,$e6,$00 $b704 defb $00,$67,$e6,$00 $b708 defb $00,$6b,$f6,$00 $b70c defb $00,$e8,$f7,$00 $b710 defb $00,$cf,$f3,$00 $b714 defb $00,$df,$fb,$00 $b718 defb $00,$df,$fb,$00 $b71c defb $00,$c0,$03,$00 $b720 defb $00,$ff,$ff,$00 $b724 defb $00,$ff,$ff,$00 $b728 defb $01,$f9,$9f,$80 $b72c defb $01,$e0,$07,$80 $b730 defb $01,$c0,$03,$80 $b734 defb $01,$f7,$8f,$80 $b738 defb $01,$c0,$43,$80 $b73c defb $01,$e0,$27,$80 $b740 defb $06,$79,$9e,$60 $b744 defb $06,$9f,$f9,$60 $b748 defb $06,$e7,$e7,$60 $b74c defb $07,$69,$96,$e0 $b750 defb $06,$ee,$77,$60 $b754 defb $06,$f7,$6f,$60 $b758 defb $07,$6e,$f6,$e0 $b75c defb $06,$ef,$77,$60 $b760 defb $06,$f6,$ef,$60 $b764 defb $01,$6f,$76,$00 $b768 defb $00,$6e,$f6,$00 $b76c defb $00,$1f,$68,$00 $b770 defb $00,$03,$e0,$00 @label=a_clock $b774 defb $04,$04 $b776 defb $45,$45,$45,$45 $b77a defb $45,$45,$45,$45 $b77e defb $45,$45,$45,$45 $b782 defb $45,$45,$45,$45 @label=g_wizard_down1 $b786 defb $14 $b787 defb $3c,$00 $b789 defb $4c,$f0 $b78b defb $1f,$68 $b78d defb $1b,$84 $b78f defb $06,$6e $b791 defb $6c,$6e $b793 defb $ee,$ec $b795 defb $ef,$e8 $b797 defb $44,$40 $b799 defb $16,$d0 $b79b defb $18,$30 $b79d defb $1f,$f0 $b79f defb $1e,$70 $b7a1 defb $0c,$e0 $b7a3 defb $0c,$e0 $b7a5 defb $04,$c0 $b7a7 defb $06,$40 $b7a9 defb $03,$80 $b7ab defb $03,$80 $b7ad defb $01,$00 @label=g_wizard_down2 $b7af defb $14 $b7b0 defb $1e,$f0 $b7b2 defb $26,$c8 $b7b4 defb $05,$40 $b7b6 defb $03,$80 $b7b8 defb $66,$cc $b7ba defb $ec,$6e $b7bc defb $ee,$ee $b7be defb $6f,$ec $b7c0 defb $04,$40 $b7c2 defb $16,$d0 $b7c4 defb $18,$30 $b7c6 defb $1f,$f0 $b7c8 defb $1e,$70 $b7ca defb $0c,$e0 $b7cc defb $0c,$e0 $b7ce defb $04,$c0 $b7d0 defb $06,$40 $b7d2 defb $03,$80 $b7d4 defb $03,$80 $b7d6 defb $01,$00 @label=g_wizard_down3 $b7d8 defb $14 $b7d9 defb $00,$78 $b7db defb $1e,$64 $b7dd defb $2d,$f0 $b7df defb $43,$b0 $b7e1 defb $e6,$c0 $b7e3 defb $ec,$6c $b7e5 defb $6e,$ee $b7e7 defb $2f,$ee $b7e9 defb $04,$44 $b7eb defb $16,$d0 $b7ed defb $18,$30 $b7ef defb $1f,$f0 $b7f1 defb $1e,$70 $b7f3 defb $0c,$e0 $b7f5 defb $0c,$e0 $b7f7 defb $04,$c0 $b7f9 defb $06,$40 $b7fb defb $03,$80 $b7fd defb $03,$80 $b7ff defb $01,$00 @label=g_wizard_up1 $b801 defb $14 $b802 defb $1e,$00 $b804 defb $26,$78 $b806 defb $0f,$d4 $b808 defb $0d,$c2 $b80a defb $03,$e7 $b80c defb $3e,$f7 $b80e defb $ff,$f6 $b810 defb $77,$f4 $b812 defb $20,$00 $b814 defb $0f,$f8 $b816 defb $0d,$f8 $b818 defb $08,$f8 $b81a defb $0d,$f8 $b81c defb $07,$f0 $b81e defb $07,$70 $b820 defb $02,$20 $b822 defb $03,$60 $b824 defb $01,$c0 $b826 defb $01,$c0 $b828 defb $00,$80 @label=g_wizard_up2 $b82a defb $14 $b82b defb $0f,$78 $b82d defb $13,$64 $b82f defb $02,$a0 $b831 defb $01,$c0 $b833 defb $33,$e6 $b835 defb $77,$f7 $b837 defb $77,$f7 $b839 defb $37,$f6 $b83b defb $00,$00 $b83d defb $0f,$f8 $b83f defb $0d,$f8 $b841 defb $08,$f8 $b843 defb $0d,$f8 $b845 defb $07,$f0 $b847 defb $07,$70 $b849 defb $02,$20 $b84b defb $03,$60 $b84d defb $01,$c0 $b84f defb $01,$c0 $b851 defb $00,$80 @label=g_wizard_up3 $b853 defb $14 $b854 defb $00,$3c $b856 defb $0f,$32 $b858 defb $16,$f8 $b85a defb $21,$d8 $b85c defb $73,$e0 $b85e defb $77,$f6 $b860 defb $37,$f7 $b862 defb $17,$f7 $b864 defb $00,$02 $b866 defb $0f,$f8 $b868 defb $0d,$f8 $b86a defb $08,$f8 $b86c defb $0d,$f8 $b86e defb $07,$f0 $b870 defb $07,$70 $b872 defb $02,$20 $b874 defb $03,$60 $b876 defb $01,$c0 $b878 defb $01,$c0 $b87a defb $00,$80 @label=g_wizard_left1 $b87c defb $14 $b87d defb $0c,$f0 $b87f defb $1c,$38 $b881 defb $33,$98 $b883 defb $47,$60 $b885 defb $06,$10 $b887 defb $37,$08 $b889 defb $07,$98 $b88b defb $31,$f0 $b88d defb $35,$80 $b88f defb $0d,$78 $b891 defb $00,$d8 $b893 defb $1f,$88 $b895 defb $0f,$d8 $b897 defb $05,$f0 $b899 defb $05,$f0 $b89b defb $02,$e0 $b89d defb $02,$e0 $b89f defb $01,$c0 $b8a1 defb $01,$c0 $b8a3 defb $00,$80 @label=g_wizard_left2 $b8a5 defb $14 $b8a6 defb $07,$c0 $b8a8 defb $09,$c0 $b8aa defb $00,$00 $b8ac defb $03,$f0 $b8ae defb $06,$38 $b8b0 defb $04,$18 $b8b2 defb $07,$98 $b8b4 defb $31,$f0 $b8b6 defb $35,$80 $b8b8 defb $0d,$78 $b8ba defb $00,$d8 $b8bc defb $1f,$88 $b8be defb $0f,$d8 $b8c0 defb $05,$f0 $b8c2 defb $05,$f0 $b8c4 defb $02,$e0 $b8c6 defb $02,$e0 $b8c8 defb $01,$c0 $b8ca defb $01,$c0 $b8cc defb $00,$80 @label=g_wizard_left3 $b8ce defb $14 $b8cf defb $03,$f0 $b8d1 defb $1c,$38 $b8d3 defb $33,$d8 $b8d5 defb $47,$e0 $b8d7 defb $04,$74 $b8d9 defb $08,$3a $b8db defb $07,$1e $b8dd defb $31,$f8 $b8df defb $35,$80 $b8e1 defb $0d,$78 $b8e3 defb $00,$d8 $b8e5 defb $1f,$88 $b8e7 defb $0f,$d8 $b8e9 defb $05,$f0 $b8eb defb $05,$f0 $b8ed defb $02,$e0 $b8ef defb $02,$e0 $b8f1 defb $01,$c0 $b8f3 defb $01,$c0 $b8f5 defb $00,$80 @label=g_wizard_right1 $b8f7 defb $14 $b8f8 defb $0f,$30 $b8fa defb $1c,$38 $b8fc defb $1b,$cc $b8fe defb $07,$e2 $b900 defb $2e,$20 $b902 defb $5c,$10 $b904 defb $78,$e0 $b906 defb $1f,$8c $b908 defb $01,$ac $b90a defb $1e,$b0 $b90c defb $1b,$00 $b90e defb $11,$f8 $b910 defb $1b,$f0 $b912 defb $0f,$a0 $b914 defb $0f,$a0 $b916 defb $07,$40 $b918 defb $07,$40 $b91a defb $03,$80 $b91c defb $03,$80 $b91e defb $01,$00 @label=g_wizard_right2 $b920 defb $14 $b921 defb $03,$e0 $b923 defb $03,$90 $b925 defb $00,$00 $b927 defb $0f,$c0 $b929 defb $1c,$60 $b92b defb $18,$20 $b92d defb $19,$e0 $b92f defb $0f,$8c $b931 defb $01,$ac $b933 defb $1e,$b0 $b935 defb $1b,$00 $b937 defb $11,$f8 $b939 defb $1b,$f0 $b93b defb $0f,$a0 $b93d defb $0f,$a0 $b93f defb $07,$40 $b941 defb $07,$40 $b943 defb $03,$80 $b945 defb $03,$80 $b947 defb $01,$00 @label=g_wizard_right3 $b949 defb $14 $b94a defb $0f,$30 $b94c defb $1c,$38 $b94e defb $19,$cc $b950 defb $06,$e2 $b952 defb $08,$60 $b954 defb $10,$ec $b956 defb $19,$e0 $b958 defb $0f,$8c $b95a defb $01,$ac $b95c defb $1e,$b0 $b95e defb $1b,$00 $b960 defb $11,$f8 $b962 defb $1b,$f0 $b964 defb $0f,$a0 $b966 defb $0f,$a0 $b968 defb $07,$40 $b96a defb $07,$40 $b96c defb $03,$80 $b96e defb $03,$80 $b970 defb $01,$00 @label=g_sword7 $b972 defb $0c $b973 defb $00,$00 $b975 defb $00,$00 $b977 defb $00,$00 $b979 defb $00,$00 $b97b defb $00,$20 $b97d defb $00,$10 $b97f defb $00,$12 $b981 defb $7f,$df $b983 defb $ff,$df $b985 defb $00,$12 $b987 defb $00,$10 $b989 defb $00,$20 @label=g_sword4 $b98b defb $0d $b98c defb $00,$00 $b98e defb $00,$1c $b990 defb $01,$dc $b992 defb $00,$7c $b994 defb $00,$30 $b996 defb $00,$d8 $b998 defb $01,$c8 $b99a defb $03,$88 $b99c defb $07,$00 $b99e defb $0e,$00 $b9a0 defb $1c,$00 $b9a2 defb $18,$00 $b9a4 defb $10,$00 @label=g_sword5 $b9a6 defb $10 $b9a7 defb $01,$80 $b9a9 defb $03,$c0 $b9ab defb $01,$80 $b9ad defb $01,$80 $b9af defb $07,$e0 $b9b1 defb $08,$10 $b9b3 defb $01,$80 $b9b5 defb $01,$80 $b9b7 defb $01,$80 $b9b9 defb $01,$80 $b9bb defb $01,$80 $b9bd defb $01,$80 $b9bf defb $01,$80 $b9c1 defb $01,$80 $b9c3 defb $01,$80 $b9c5 defb $00,$80 @label=g_sword6 $b9c7 defb $0d $b9c8 defb $00,$00 $b9ca defb $00,$00 $b9cc defb $38,$00 $b9ce defb $3b,$80 $b9d0 defb $3e,$00 $b9d2 defb $0c,$00 $b9d4 defb $1b,$00 $b9d6 defb $13,$80 $b9d8 defb $11,$c0 $b9da defb $00,$e0 $b9dc defb $00,$70 $b9de defb $00,$38 $b9e0 defb $00,$1c @label=g_sword3 $b9e2 defb $0c $b9e3 defb $00,$00 $b9e5 defb $00,$00 $b9e7 defb $00,$00 $b9e9 defb $00,$00 $b9eb defb $04,$00 $b9ed defb $08,$00 $b9ef defb $48,$00 $b9f1 defb $fd,$ff $b9f3 defb $fd,$fe $b9f5 defb $48,$00 $b9f7 defb $08,$00 $b9f9 defb $04,$00 @label=g_sword2 $b9fb defb $0c $b9fc defb $00,$00 $b9fe defb $00,$08 $ba00 defb $00,$18 $ba02 defb $00,$38 $ba04 defb $00,$70 $ba06 defb $00,$e0 $ba08 defb $11,$c0 $ba0a defb $13,$80 $ba0c defb $1d,$00 $ba0e defb $0c,$00 $ba10 defb $3e,$00 $ba12 defb $3b,$80 $ba14 defb $38,$00 @label=g_sword1 $ba16 defb $10 $ba17 defb $01,$00 $ba19 defb $01,$80 $ba1b defb $01,$80 $ba1d defb $01,$80 $ba1f defb $01,$80 $ba21 defb $01,$80 $ba23 defb $01,$80 $ba25 defb $01,$80 $ba27 defb $01,$80 $ba29 defb $01,$80 $ba2b defb $08,$10 $ba2d defb $07,$e0 $ba2f defb $01,$80 $ba31 defb $01,$80 $ba33 defb $03,$c0 $ba35 defb $01,$80 @label=g_sword8 $ba37 defb $10 $ba38 defb $00,$00 $ba3a defb $00,$00 $ba3c defb $10,$00 $ba3e defb $18,$00 $ba40 defb $1c,$00 $ba42 defb $0e,$00 $ba44 defb $07,$00 $ba46 defb $03,$88 $ba48 defb $01,$c8 $ba4a defb $00,$d8 $ba4c defb $00,$30 $ba4e defb $00,$7c $ba50 defb $01,$dc $ba52 defb $00,$1c $ba54 defb $00,$00 $ba56 defb $00,$00 @label=g_axe1 $ba58 defb $10 $ba59 defb $00,$00 $ba5b defb $00,$00 $ba5d defb $3c,$00 $ba5f defb $7e,$00 $ba61 defb $c3,$00 $ba63 defb $3c,$00 $ba65 defb $18,$00 $ba67 defb $3d,$ff $ba69 defb $3d,$ff $ba6b defb $00,$00 $ba6d defb $00,$00 $ba6f defb $00,$00 $ba71 defb $00,$00 $ba73 defb $00,$00 $ba75 defb $00,$00 $ba77 defb $00,$00 @label=g_axe2 $ba79 defb $10 $ba7a defb $00,$00 $ba7c defb $00,$04 $ba7e defb $00,$0e $ba80 defb $00,$1c $ba82 defb $00,$38 $ba84 defb $3c,$70 $ba86 defb $60,$e0 $ba88 defb $d9,$c0 $ba8a defb $ba,$80 $ba8c defb $bf,$00 $ba8e defb $8e,$00 $ba90 defb $1c,$00 $ba92 defb $08,$00 $ba94 defb $00,$00 $ba96 defb $00,$00 $ba98 defb $00,$00 @label=g_axe3 $ba9a defb $10 $ba9b defb $01,$80 $ba9d defb $01,$80 $ba9f defb $01,$80 $baa1 defb $01,$80 $baa3 defb $01,$80 $baa5 defb $01,$80 $baa7 defb $01,$80 $baa9 defb $01,$80 $baab defb $09,$80 $baad defb $18,$00 $baaf defb $35,$80 $bab1 defb $37,$80 $bab3 defb $37,$80 $bab5 defb $35,$80 $bab7 defb $18,$00 $bab9 defb $08,$00 @label=g_axe4 $babb defb $10 $babc defb $00,$00 $babe defb $20,$00 $bac0 defb $70,$00 $bac2 defb $38,$00 $bac4 defb $1c,$00 $bac6 defb $0e,$00 $bac8 defb $07,$00 $baca defb $03,$80 $bacc defb $01,$40 $bace defb $00,$e0 $bad0 defb $04,$70 $bad2 defb $05,$f8 $bad4 defb $05,$d0 $bad6 defb $06,$c0 $bad8 defb $03,$00 $bada defb $01,$e0 @label=g_axe5 $badc defb $10 $badd defb $00,$00 $badf defb $00,$00 $bae1 defb $00,$00 $bae3 defb $00,$00 $bae5 defb $00,$00 $bae7 defb $00,$00 $bae9 defb $00,$00 $baeb defb $ff,$bc $baed defb $ff,$bc $baef defb $00,$18 $baf1 defb $00,$3c $baf3 defb $00,$c3 $baf5 defb $00,$7e $baf7 defb $00,$3c $baf9 defb $00,$00 $bafb defb $00,$00 @label=g_axe6 $bafd defb $10 $bafe defb $00,$00 $bb00 defb $00,$00 $bb02 defb $00,$00 $bb04 defb $00,$10 $bb06 defb $00,$38 $bb08 defb $00,$71 $bb0a defb $00,$fd $bb0c defb $01,$5d $bb0e defb $03,$9b $bb10 defb $07,$06 $bb12 defb $0e,$3c $bb14 defb $1c,$00 $bb16 defb $38,$00 $bb18 defb $70,$00 $bb1a defb $20,$00 $bb1c defb $00,$00 @label=g_axe7 $bb1e defb $10 $bb1f defb $00,$10 $bb21 defb $00,$18 $bb23 defb $01,$ac $bb25 defb $01,$ec $bb27 defb $01,$ec $bb29 defb $01,$ac $bb2b defb $00,$18 $bb2d defb $01,$90 $bb2f defb $01,$80 $bb31 defb $01,$80 $bb33 defb $01,$80 $bb35 defb $01,$80 $bb37 defb $01,$80 $bb39 defb $01,$80 $bb3b defb $01,$80 $bb3d defb $01,$80 @label=g_axe8 $bb3f defb $10 $bb40 defb $07,$80 $bb42 defb $00,$c0 $bb44 defb $03,$60 $bb46 defb $0b,$a0 $bb48 defb $1f,$a0 $bb4a defb $0e,$20 $bb4c defb $07,$00 $bb4e defb $02,$80 $bb50 defb $01,$c0 $bb52 defb $00,$e0 $bb54 defb $00,$70 $bb56 defb $00,$38 $bb58 defb $00,$1c $bb5a defb $00,$0e $bb5c defb $00,$04 $bb5e defb $00,$00 @label=g_fireball1 $bb60 defb $0f $bb61 defb $00,$00 $bb63 defb $00,$00 $bb65 defb $00,$00 $bb67 defb $00,$24 $bb69 defb $00,$80 $bb6b defb $09,$80 $bb6d defb $02,$d0 $bb6f defb $0d,$60 $bb71 defb $06,$f0 $bb73 defb $43,$42 $bb75 defb $05,$a0 $bb77 defb $12,$a0 $bb79 defb $00,$00 $bb7b defb $00,$00 $bb7d defb $01,$00 @label=g_fireball2 $bb7f defb $0f $bb80 defb $00,$00 $bb82 defb $00,$08 $bb84 defb $00,$00 $bb86 defb $20,$80 $bb88 defb $01,$00 $bb8a defb $03,$a0 $bb8c defb $02,$08 $bb8e defb $15,$f0 $bb90 defb $05,$a8 $bb92 defb $06,$60 $bb94 defb $01,$80 $bb96 defb $08,$20 $bb98 defb $04,$80 $bb9a defb $00,$10 $bb9c defb $00,$00 $bb9e defb $0f,$00 $bba0 defb $00,$00 $bba2 defb $80,$00 $bba4 defb $00,$01 $bba6 defb $00,$04 $bba8 defb $10,$01 $bbaa defb $82,$03 $bbac defb $60,$45 $bbae defb $68,$0e $bbb0 defb $b0,$07 $bbb2 defb $42,$09 $bbb4 defb $90,$01 $bbb6 defb $00,$20 $bbb8 defb $00,$00 $bbba defb $08,$10 $bbbc defb $80 @label=g_fireball3 $bbbd defb $0f $bbbe defb $00,$00 $bbc0 defb $01,$00 $bbc2 defb $10,$04 $bbc4 defb $00,$00 $bbc6 defb $00,$40 $bbc8 defb $01,$90 $bbca defb $07,$40 $bbcc defb $05,$e2 $bbce defb $17,$68 $bbd0 defb $03,$c0 $bbd2 defb $09,$c0 $bbd4 defb $00,$02 $bbd6 defb $01,$00 $bbd8 defb $00,$00 $bbda defb $00,$00 @label=g_cursor_l $bbdc defb $14 $bbdd defb $00,$01 $bbdf defb $00,$03 $bbe1 defb $00,$07 $bbe3 defb $00,$0f $bbe5 defb $00,$1f $bbe7 defb $00,$43 $bbe9 defb $00,$c3 $bbeb defb $01,$c3 $bbed defb $03,$f8 $bbef defb $07,$f8 $bbf1 defb $07,$f8 $bbf3 defb $03,$f8 $bbf5 defb $01,$c3 $bbf7 defb $00,$c3 $bbf9 defb $00,$43 $bbfb defb $00,$1f $bbfd defb $00,$0f $bbff defb $00,$07 $bc01 defb $00,$03 $bc03 defb $00,$01 @label=g_cursor_r $bc05 defb $14 $bc06 defb $80,$00 $bc08 defb $c0,$00 $bc0a defb $e0,$00 $bc0c defb $f0,$00 $bc0e defb $f8,$00 $bc10 defb $c2,$00 $bc12 defb $c3,$00 $bc14 defb $c3,$80 $bc16 defb $1f,$c0 $bc18 defb $1f,$e0 $bc1a defb $1f,$e0 $bc1c defb $1f,$c0 $bc1e defb $c3,$80 $bc20 defb $c3,$00 $bc22 defb $c2,$00 $bc24 defb $f8,$00 $bc26 defb $f0,$00 $bc28 defb $e0,$00 $bc2a defb $c0,$00 $bc2c defb $80,$00 @label=g_keyboard_l $bc2e defb $10 $bc2f defb $0f,$ff $bc31 defb $0f,$ff $bc33 defb $09,$24 $bc35 defb $09,$24 $bc37 defb $0f,$ff $bc39 defb $09,$24 $bc3b defb $09,$24 $bc3d defb $0f,$ff $bc3f defb $0c,$92 $bc41 defb $0c,$92 $bc43 defb $07,$ff $bc45 defb $08,$00 $bc47 defb $0f,$ff $bc49 defb $08,$45 $bc4b defb $0d,$11 $bc4d defb $07,$ff @label=g_keyboard_r $bc4f defb $10 $bc50 defb $ff,$f8 $bc52 defb $ff,$f8 $bc54 defb $92,$48 $bc56 defb $92,$48 $bc58 defb $ff,$f8 $bc5a defb $92,$48 $bc5c defb $92,$48 $bc5e defb $ff,$f8 $bc60 defb $49,$38 $bc62 defb $49,$38 $bc64 defb $ff,$f0 $bc66 defb $00,$08 $bc68 defb $ff,$f8 $bc6a defb $ff,$f8 $bc6c defb $ff,$f8 $bc6e defb $ff,$f0 @label=g_kempston_l $bc70 defb $17 $bc71 defb $00,$c7 $bc73 defb $01,$8f $bc75 defb $03,$1f $bc77 defb $00,$00 $bc79 defb $03,$1f $bc7b defb $01,$8f $bc7d defb $00,$c7 $bc7f defb $00,$00 $bc81 defb $00,$33 $bc83 defb $00,$0b $bc85 defb $00,$0b $bc87 defb $00,$0b $bc89 defb $00,$01 $bc8b defb $00,$01 $bc8d defb $00,$00 $bc8f defb $00,$03 $bc91 defb $00,$07 $bc93 defb $00,$0f $bc95 defb $00,$09 $bc97 defb $00,$09 $bc99 defb $00,$0c $bc9b defb $00,$06 $bc9d defb $00,$03 @label=g_kempston_r $bc9f defb $17 $bca0 defb $ff,$00 $bca2 defb $ff,$80 $bca4 defb $ff,$c0 $bca6 defb $00,$00 $bca8 defb $ff,$c0 $bcaa defb $ff,$80 $bcac defb $ff,$00 $bcae defb $00,$00 $bcb0 defb $fc,$00 $bcb2 defb $f0,$00 $bcb4 defb $f0,$00 $bcb6 defb $f0,$00 $bcb8 defb $80,$00 $bcba defb $80,$00 $bcbc defb $00,$00 $bcbe defb $c0,$00 $bcc0 defb $e0,$00 $bcc2 defb $f0,$00 $bcc4 defb $f0,$00 $bcc6 defb $f0,$00 $bcc8 defb $70,$00 $bcca defb $60,$00 $bccc defb $c0,$00 @label=g_cave_door_frame $bcce defb $04,$18 $bcd0 defb $ff,$00,$00,$ff $bcd4 defb $03,$00,$00,$b0 $bcd8 defb $03,$00,$00,$b0 $bcdc defb $07,$00,$00,$98 $bce0 defb $0d,$00,$00,$98 $bce4 defb $18,$80,$01,$0e $bce8 defb $38,$80,$01,$0c $bcec defb $78,$80,$01,$18 $bcf0 defb $58,$80,$01,$30 $bcf4 defb $cc,$80,$01,$38 $bcf8 defb $8c,$40,$02,$2c $bcfc defb $0c,$40,$02,$26 $bd00 defb $0c,$40,$02,$3b $bd04 defb $1c,$40,$02,$e1 $bd08 defb $34,$40,$02,$83 $bd0c defb $62,$20,$04,$86 $bd10 defb $f2,$20,$04,$86 $bd14 defb $7f,$2c,$05,$4c $bd18 defb $0f,$62,$25,$4c $bd1c defb $03,$c1,$7d,$58 $bd20 defb $00,$f0,$df,$78 $bd24 defb $00,$3d,$87,$f0 $bd28 defb $00,$0f,$00,$c0 $bd2c defb $00,$02,$00,$00 @label=g_pumpkin1 $bd30 defb $13 $bd31 defb $07,$e0 $bd33 defb $1f,$f8 $bd35 defb $3f,$fc $bd37 defb $7d,$be $bd39 defb $7b,$9e $bd3b defb $f5,$0f $bd3d defb $ef,$67 $bd3f defb $f6,$67 $bd41 defb $ff,$ff $bd43 defb $ff,$7f $bd45 defb $ea,$47 $bd47 defb $f7,$cf $bd49 defb $7b,$ce $bd4b defb $7f,$fe $bd4d defb $3f,$fc $bd4f defb $0d,$b0 $bd51 defb $01,$c0 $bd53 defb $00,$e0 $bd55 defb $00,$60 @label=g_pumpkin2 $bd57 defb $13 $bd58 defb $07,$e0 $bd5a defb $1f,$f8 $bd5c defb $3f,$fc $bd5e defb $7d,$fe $bd60 defb $79,$be $bd62 defb $f0,$5f $bd64 defb $e6,$ef $bd66 defb $e6,$77 $bd68 defb $ff,$ff $bd6a defb $fe,$ff $bd6c defb $e2,$6f $bd6e defb $f3,$df $bd70 defb $73,$ff $bd72 defb $7f,$fe $bd74 defb $3f,$fc $bd76 defb $0d,$b0 $bd78 defb $01,$c0 $bd7a defb $00,$e0 $bd7c defb $00,$60 @label=lines_cav_long $bd7e defb $00,$17,$01,$04,$ff $bd83 defb $01,$ff $bd85 defb $02,$03,$19,$01,$ff $bd8a defb $03,$ff $bd8c defb $04,$ff $bd8e defb $05,$06,$1b,$03,$ff $bd93 defb $06,$ff $bd95 defb $07,$08,$06,$1d,$ff $bd9a defb $08,$ff $bd9c defb $09,$04,$33,$0a,$ff $bda1 defb $0a,$ff $bda3 defb $0b,$0d,$1f,$08,$ff $bda8 defb $0c,$ff $bdaa defb $0d,$ff $bdac defb $0e,$0f,$0d,$0c,$ff $bdb1 defb $0f,$ff $bdb3 defb $10,$31,$0a,$35,$ff $bdb8 defb $11,$12,$23,$0f,$ff $bdbd defb $12,$ff $bdbf defb $13,$36,$35,$ff $bdc3 defb $14,$25,$15,$12,$ff $bdc8 defb $15,$ff $bdca defb $16,$17,$04,$33,$ff $bdcf defb $17,$ff $bdd1 defb $18,$19,$17,$01,$ff $bdd6 defb $19,$ff $bdd8 defb $1a,$1b,$19,$03,$ff $bddd defb $1b,$ff $bddf defb $1c,$1d,$1b,$06,$ff $bde4 defb $1d,$ff $bde6 defb $1e,$1f,$1d,$08,$ff $bdeb defb $1f,$ff $bded defb $20,$0d,$1f,$ff $bdf1 defb $21,$ff $bdf3 defb $22,$23,$21,$0f,$ff $bdf8 defb $23,$ff $bdfa defb $24,$25,$23,$12,$ff $bdff defb $25,$ff $be01 defb $26,$25,$27,$15,$ff $be06 defb $27,$ff $be08 defb $28,$27,$29,$3c,$ff $be0d defb $29,$ff $be0f defb $2a,$2b,$3a,$29,$ff $be14 defb $2b,$ff $be16 defb $2c,$2d,$2b,$38,$ff $be1b defb $2d,$ff $be1d defb $2e,$2f,$2d,$36,$ff $be22 defb $2f,$ff $be24 defb $30,$13,$31,$2f,$ff $be29 defb $31,$ff $be2b defb $32,$33,$31,$0a,$ff $be30 defb $33,$ff,$34,$ff $be34 defb $35,$34,$ff $be37 defb $36,$ff $be39 defb $37,$2d,$38,$36,$ff $be3e defb $38,$ff $be40 defb $39,$2b,$38,$3a,$ff $be45 defb $3a,$ff $be47 defb $3b,$3a,$29,$3c,$ff $be4c defb $3c,$ff $be4e defb $3d,$15,$3c,$27,$ff $be53 defb $ff @label=points_cav_tall $be54 defb $79,$0a $be56 defb $86,$04 $be58 defb $91,$04 $be5a defb $a6,$19 $be5c defb $46,$0a $be5e defb $9b,$38 $be60 defb $a7,$4b $be62 defb $9a,$58 $be64 defb $aa,$68 $be66 defb $37,$01 $be68 defb $2a,$07 $be6a defb $9b,$7e $be6c defb $9b,$87 $be6e defb $9b,$8f $be70 defb $a8,$8f $be72 defb $95,$a1 $be74 defb $2a,$1e $be76 defb $95,$b8 $be78 defb $88,$be $be7a defb $24,$30 $be7c defb $79,$b5 $be7e defb $46,$b5 $be80 defb $4f,$27 $be82 defb $70,$27 $be84 defb $79,$23 $be86 defb $82,$23 $be88 defb $8f,$30 $be8a defb $84,$47 $be8c defb $89,$52 $be8e defb $80,$5b $be90 defb $8b,$66 $be92 defb $85,$74 $be94 defb $85,$7d $be96 defb $89,$80 $be98 defb $81,$88 $be9a defb $81,$99 $be9c defb $77,$9d $be9e defb $70,$98 $bea0 defb $4f,$98 $bea2 defb $46,$9c $bea4 defb $3d,$9c $bea6 defb $30,$8f $bea8 defb $3b,$78 $beaa defb $36,$6d $beac defb $3f,$64 $beae defb $34,$59 $beb0 defb $3a,$4c $beb2 defb $3a,$42 $beb4 defb $36,$3f $beb6 defb $3e,$37 $beb8 defb $3e,$26 $beba defb $47,$22 $bebc defb $24,$38 $bebe defb $18,$30 $bec0 defb $24,$41 $bec2 defb $15,$57 $bec4 defb $25,$67 $bec6 defb $18,$74 $bec8 defb $24,$87 $beca defb $18,$a6 $becc defb $2e,$bb $bece defb $39,$bb @label=points_cav_wide $bed0 defb $0a,$79 $bed2 defb $04,$86 $bed4 defb $04,$91 $bed6 defb $19,$a6 $bed8 defb $0a,$46 $beda defb $38,$9b $bedc defb $4b,$a7 $bede defb $58,$9a $bee0 defb $68,$aa $bee2 defb $01,$37 $bee4 defb $07,$2a $bee6 defb $7e,$9b $bee8 defb $87,$9b $beea defb $8f,$9b $beec defb $8f,$a8 $beee defb $a1,$95 $bef0 defb $1e,$2a $bef2 defb $b8,$95 $bef4 defb $be,$88 $bef6 defb $30,$24 $bef8 defb $b5,$79 $befa defb $b5,$46 $befc defb $27,$4f $befe defb $27,$70 $bf00 defb $23,$79 $bf02 defb $23,$82 $bf04 defb $30,$8f $bf06 defb $47,$84 $bf08 defb $52,$89 $bf0a defb $5b,$80 $bf0c defb $66,$8b $bf0e defb $74,$85 $bf10 defb $7d,$85 $bf12 defb $80,$89 $bf14 defb $88,$81 $bf16 defb $99,$81 $bf18 defb $9d,$77 $bf1a defb $98,$70 $bf1c defb $98,$4f $bf1e defb $9c,$46 $bf20 defb $9c,$3d $bf22 defb $8f,$30 $bf24 defb $78,$3b $bf26 defb $6d,$36 $bf28 defb $64,$3f $bf2a defb $59,$34 $bf2c defb $4c,$3a $bf2e defb $42,$3a $bf30 defb $3f,$36 $bf32 defb $37,$3e $bf34 defb $26,$3e $bf36 defb $22,$47 $bf38 defb $38,$24 $bf3a defb $30,$18 $bf3c defb $41,$24 $bf3e defb $57,$15 $bf40 defb $67,$25 $bf42 defb $74,$18 $bf44 defb $87,$24 $bf46 defb $a6,$18 $bf48 defb $bb,$2e $bf4a defb $bb,$39 ; Data block at bf4c @label=charset b$bf4c defb $00,$00,$00,$00,$00,$00,$00,$00 ; space $bf54 defb $18,$18,$18,$18,$18,$00,$18,$18 ; ! $bf5c defb $28,$28,$00,$00,$00,$00,$00,$00 ; " $bf64 defb $00,$18,$18,$00,$00,$18,$18,$00 $bf6c defb $00,$62,$64,$08,$10,$26,$46,$00 ; % $bf74 defb $3c,$42,$99,$a1,$a1,$99,$42,$3c ; (c) $bf7c defb $00,$00,$00,$00,$00,$00,$00,$00 ; space $bf84 defb $10,$10,$00,$00,$00,$00,$00,$00 ; ' $bf8c defb $08,$18,$18,$18,$18,$18,$18,$08 $bf94 defb $10,$18,$18,$18,$18,$18,$18,$10 $bf9c defb $00,$14,$58,$3e,$7c,$1a,$28,$00 ; * $bfa4 defb $00,$18,$18,$7e,$78,$18,$18,$00 ; + $bfac defb $00,$00,$00,$00,$00,$00,$20,$20 ; , $bfb4 defb $00,$00,$00,$7e,$7e,$00,$00,$00 ; - $bfbc defb $00,$00,$00,$00,$00,$00,$18,$18 ; . $bfc4 defb $0c,$0c,$18,$18,$30,$30,$60,$60 ; / ; Data block at bfcc @label=digit_charset b$bfcc defb $7c,$fe,$c6,$c6,$c6,$fe,$7c,$00 ; 0 $bfd4 defb $18,$38,$58,$18,$18,$18,$3c,$00 ; 1 $bfdc defb $7c,$fe,$06,$7c,$c0,$fe,$fe,$00 ; 2 $bfe4 defb $fe,$fc,$08,$1c,$06,$fe,$fc,$00 ; 3 $bfec defb $0c,$1c,$3c,$6c,$fe,$0c,$0c,$00 ; 4 $bff4 defb $fe,$fe,$c0,$fc,$06,$fe,$7c,$00 ; 5 $bffc defb $7c,$fe,$c0,$fc,$c6,$fe,$7c,$00 ; 6 $c004 defb $fe,$fc,$0c,$18,$18,$30,$30,$00 ; 7 $c00c defb $7c,$fe,$c6,$7c,$c6,$fe,$7c,$00 ; 8 $c014 defb $7c,$fe,$c6,$7e,$06,$fe,$7c,$00 ; 9 $c01c defb $00,$00,$00,$00,$00,$00,$00,$00 $c024 defb $00,$00,$00,$00,$00,$00,$00,$00 $c02c defb $00,$00,$00,$00,$00,$00,$00,$00 $c034 defb $00,$00,$00,$00,$00,$00,$00,$00 $c03c defb $00,$00,$00,$00,$00,$00,$00,$00 $c044 defb $00,$00,$00,$00,$00,$00,$00,$00 $c04c defb $00,$00,$00,$00,$00,$00,$00,$00 $c054 defb $38,$38,$6c,$7c,$ee,$ee,$c6,$00 ; A $c05c defb $fc,$fe,$e6,$fc,$e6,$fe,$fc,$00 ; B $c064 defb $3c,$7e,$f8,$e0,$f8,$7e,$3c,$00 ; C $c06c defb $f8,$fc,$fe,$c6,$fe,$fc,$f8,$00 ; D $c074 defb $f8,$f8,$e0,$fc,$e0,$fe,$fe,$00 ; E $c07c defb $fe,$fe,$e0,$fc,$e0,$e0,$e0,$00 ; F $c084 defb $3c,$7e,$f8,$e0,$fe,$7e,$3a,$00 ; G $c08c defb $ee,$ee,$fe,$fe,$fe,$ee,$ee,$00 ; H $c094 defb $7c,$7c,$38,$38,$38,$7c,$7c,$00 ; I $c09c defb $0e,$0e,$0e,$0e,$ee,$7c,$38,$00 ; J $c0a4 defb $ee,$ec,$f8,$f8,$f8,$ec,$ee,$00 ; K $c0ac defb $e0,$e0,$e0,$e0,$fe,$fe,$fe,$00 ; L $c0b4 defb $82,$ee,$fe,$fe,$d6,$d6,$d6,$00 ; M $c0bc defb $8e,$ce,$ee,$fe,$ee,$e6,$e2,$00 ; N $c0c4 defb $38,$7c,$fe,$ee,$fe,$7c,$38,$00 ; O $c0cc defb $fc,$fe,$e6,$fe,$fc,$e0,$e0,$00 ; P $c0d4 defb $38,$7c,$fe,$ee,$fe,$7c,$3e,$00 ; Q $c0dc defb $fc,$fe,$e6,$fe,$fc,$ec,$ee,$00 ; R $c0e4 defb $7c,$fe,$f0,$7c,$1e,$fe,$7c,$00 ; S $c0ec defb $fe,$fe,$fe,$38,$38,$38,$38,$00 ; T $c0f4 defb $ee,$ee,$ee,$ee,$fe,$fe,$7c,$00 ; U $c0fc defb $ee,$ee,$6c,$7c,$38,$38,$10,$00 ; V $c104 defb $d6,$d6,$d6,$fe,$fe,$ee,$82,$00 ; W $c10c defb $ee,$ee,$6c,$38,$6c,$ee,$ee,$00 ; X $c114 defb $ee,$6c,$7c,$38,$38,$38,$38,$00 ; Y $c11c defb $fe,$fc,$f8,$10,$3e,$7e,$fe,$00 ; Z ; Data block at c124 @label=g_can b$c124 defb $14 $c125 defb $07,$e0 $c127 defb $18,$18 $c129 defb $2f,$f4 $c12b defb $7e,$1e $c12d defb $3e,$34 $c12f defb $3e,$54 $c131 defb $3e,$ec $c133 defb $3d,$dc $c135 defb $3d,$bc $c137 defb $39,$dc $c139 defb $23,$bc $c13b defb $27,$7c $c13d defb $26,$bc $c13f defb $2f,$fc $c141 defb $38,$1c $c143 defb $20,$c4 $c145 defb $5d,$22 $c147 defb $20,$c4 $c149 defb $18,$18 $c14b defb $07,$e0 @label=g_moneybag $c14d defb $10 $c14e defb $1f,$f8 $c150 defb $7f,$7e $c152 defb $f8,$1e $c154 defb $f0,$4f $c156 defb $f8,$0f $c158 defb $f9,$7f $c15a defb $fc,$0f $c15c defb $7f,$7f $c15e defb $7f,$ff $c160 defb $3e,$1e $c162 defb $1d,$ee $c164 defb $87,$b4 $c166 defb $7f,$18 $c168 defb $ce,$04 $c16a defb $11,$34 $c16c defb $0e,$c8 @label=g_coin $c16e defb $10 $c16f defb $07,$a0 $c171 defb $1f,$e8 $c173 defb $3b,$74 $c175 defb $6a,$9a $c177 defb $5f,$da $c179 defb $d8,$cd $c17b defb $b0,$75 $c17d defb $fc,$75 $c17f defb $f2,$35 $c181 defb $c0,$1d $c183 defb $c8,$1d $c185 defb $76,$3a $c187 defb $70,$3a $c189 defb $38,$74 $c18b defb $1f,$e8 $c18d defb $07,$a0 @label=g_gem $c18f defb $0d $c190 defb $1f,$f8 $c192 defb $28,$14 $c194 defb $48,$12 $c196 defb $9a,$b1 $c198 defb $f7,$ef $c19a defb $d5,$58 $c19c defb $a7,$b5 $c19e defb $f7,$f1 $c1a0 defb $08,$0f $c1a2 defb $f7,$f1 $c1a4 defb $77,$52 $c1a6 defb $37,$d4 $c1a8 defb $17,$f8 @label=g_candy $c1aa defb $10 $c1ab defb $10,$00 $c1ad defb $38,$00 $c1af defb $44,$00 $c1b1 defb $82,$00 $c1b3 defb $7f,$00 $c1b5 defb $3f,$80 $c1b7 defb $10,$40 $c1b9 defb $08,$20 $c1bb defb $07,$f0 $c1bd defb $03,$f8 $c1bf defb $01,$04 $c1c1 defb $00,$82 $c1c3 defb $00,$7f $c1c5 defb $00,$3e $c1c7 defb $00,$14 $c1c9 defb $00,$08 @label=g_chop $c1cb defb $14 $c1cc defb $0f,$fc $c1ce defb $10,$02 $c1d0 defb $11,$c1 $c1d2 defb $11,$c3 $c1d4 defb $18,$0e $c1d6 defb $0f,$fc $c1d8 defb $0f,$f8 $c1da defb $07,$f8 $c1dc defb $07,$f0 $c1de defb $07,$f0 $c1e0 defb $03,$e0 $c1e2 defb $03,$e0 $c1e4 defb $03,$c0 $c1e6 defb $00,$00 $c1e8 defb $01,$80 $c1ea defb $01,$80 $c1ec defb $01,$80 $c1ee defb $01,$c0 $c1f0 defb $07,$e0 $c1f2 defb $07,$60 @label=g_lollipop $c1f4 defb $12 $c1f5 defb $00,$18 $c1f7 defb $00,$38 $c1f9 defb $00,$30 $c1fb defb $00,$70 $c1fd defb $00,$60 $c1ff defb $00,$e0 $c201 defb $0f,$40 $c203 defb $3f,$c0 $c205 defb $7f,$e0 $c207 defb $7f,$e0 $c209 defb $ff,$f0 $c20b defb $cf,$f0 $c20d defb $cf,$f0 $c20f defb $c7,$f0 $c211 defb $61,$e0 $c213 defb $71,$e0 $c215 defb $3f,$c0 $c217 defb $0f,$00 @label=g_icecream $c219 defb $12 $c21a defb $00,$01 $c21c defb $00,$0f $c21e defb $00,$54 $c220 defb $03,$fe $c222 defb $15,$54 $c224 defb $3f,$fc $c226 defb $7d,$54 $c228 defb $07,$f8 $c22a defb $c9,$d0 $c22c defb $d0,$f8 $c22e defb $e8,$d0 $c230 defb $f2,$70 $c232 defb $79,$50 $c234 defb $74,$60 $c236 defb $3d,$40 $c238 defb $0f,$00 @label=g_sparkle1 $c23a defb $0c $c23b defb $00,$00 $c23d defb $00,$00 $c23f defb $00,$00 $c241 defb $00,$00 $c243 defb $02,$00 $c245 defb $01,$40 $c247 defb $04,$20 $c249 defb $02,$80 $c24b defb $0a,$a0 $c24d defb $00,$50 $c24f defb $01,$00 $c251 defb $04,$40 @label=g_sparkle2 $c253 defb $0d $c254 defb $00,$00 $c256 defb $00,$00 $c258 defb $00,$00 $c25a defb $00,$80 $c25c defb $02,$00 $c25e defb $09,$50 $c260 defb $04,$80 $c262 defb $02,$d0 $c264 defb $0b,$88 $c266 defb $01,$a0 $c268 defb $15,$08 $c26a defb $00,$a0 $c26c defb $02,$00 @label=g_sparkle3 $c26e defb $0f $c26f defb $00,$00 $c271 defb $01,$20 $c273 defb $02,$08 $c275 defb $80,$a0 $c277 defb $22,$14 $c279 defb $14,$60 $c27b defb $03,$50 $c27d defb $55,$82 $c27f defb $09,$74 $c281 defb $13,$40 $c283 defb $24,$50 $c285 defb $01,$94 $c287 defb $0a,$40 $c289 defb $00,$10 $c28b defb $01,$00 @label=g_sparkle4 $c28d defb $10 $c28e defb $00,$80 $c290 defb $12,$08 $c292 defb $00,$40 $c294 defb $2a,$02 $c296 defb $00,$a8 $c298 defb $85,$40 $c29a defb $12,$52 $c29c defb $45,$a8 $c29e defb $11,$14 $c2a0 defb $05,$28 $c2a2 defb $52,$52 $c2a4 defb $05,$00 $c2a6 defb $08,$90 $c2a8 defb $22,$44 $c2aa defb $09,$20 $c2ac defb $00,$40 @label=g_cave_locked $c2ae defb $04,$18 $c2b0 defb $ff,$1b,$18,$ff $c2b4 defb $03,$1b,$18,$b0 $c2b8 defb $03,$1b,$18,$b0 $c2bc defb $07,$1b,$18,$98 $c2c0 defb $0d,$33,$0c,$98 $c2c4 defb $1a,$33,$0c,$98 $c2c8 defb $3a,$33,$0c,$ec $c2cc defb $7a,$33,$00,$58 $c2d0 defb $5a,$63,$0e,$70 $c2d4 defb $ce,$63,$17,$78 $c2d8 defb $8c,$63,$19,$2c $c2dc defb $0c,$63,$0e,$26 $c2e0 defb $0c,$c3,$00,$23 $c2e4 defb $1c,$c3,$03,$21 $c2e8 defb $32,$c3,$03,$43 $c2ec defb $62,$43,$02,$46 $c2f0 defb $f8,$00,$00,$86 $c2f4 defb $7f,$c0,$03,$0c $c2f8 defb $0f,$38,$1c,$0c $c2fc defb $03,$c7,$fc,$18 $c300 defb $00,$f0,$df,$38 $c304 defb $00,$3d,$87,$f0 $c308 defb $00,$0f,$00,$c0 $c30c defb $00,$02,$00,$00 @label=g_spider1 $c310 defb $0e $c311 defb $0c,$30 $c313 defb $0c,$30 $c315 defb $c0,$03 $c317 defb $c6,$63 $c319 defb $60,$06 $c31b defb $1f,$f8 $c31d defb $39,$9c $c31f defb $74,$2e $c321 defb $76,$6e $c323 defb $79,$9e $c325 defb $7f,$fe $c327 defb $3f,$fc $c329 defb $1f,$f8 $c32b defb $0f,$f0 @label=g_spider2 $c32d defb $0e $c32e defb $00,$00 $c330 defb $60,$06 $c332 defb $66,$66 $c334 defb $06,$60 $c336 defb $33,$cc $c338 defb $1f,$f8 $c33a defb $39,$9c $c33c defb $74,$2e $c33e defb $76,$6e $c340 defb $79,$9e $c342 defb $7f,$fe $c344 defb $3f,$fc $c346 defb $1f,$f8 $c348 defb $0f,$f0 @label=g_spikey1 $c34a defb $10 $c34b defb $03,$ff $c34d defb $ff,$fc $c34f defb $3f,$f0 $c351 defb $0f,$fc $c353 defb $3f,$ff $c355 defb $ff,$fc $c357 defb $3f,$f8 $c359 defb $13,$9e $c35b defb $65,$2f $c35d defb $ed,$68 $c35f defb $33,$9e $c361 defb $3f,$f1 $c363 defb $67,$f8 $c365 defb $03,$b8 $c367 defb $03,$1c $c369 defb $02,$00 @label=g_spikey2 $c36b defb $10 $c36c defb $ff,$80 $c36e defb $7f,$ff $c370 defb $0f,$fc $c372 defb $3f,$f0 $c374 defb $ff,$ff $c376 defb $7f,$fe $c378 defb $1f,$fc $c37a defb $33,$98 $c37c defb $65,$2f $c37e defb $7d,$6e $c380 defb $73,$98 $c382 defb $1f,$f8 $c384 defb $3f,$f8 $c386 defb $7f,$6e $c388 defb $63,$62 $c38a defb $01,$20 @label=g_blob1 $c38c defb $0b $c38d defb $0e,$e0 $c38f defb $1f,$f0 $c391 defb $39,$38 $c393 defb $34,$90 $c395 defb $36,$d8 $c397 defb $39,$38 $c399 defb $1f,$f0 $c39b defb $0f,$e0 $c39d defb $1c,$70 $c39f defb $38,$38 $c3a1 defb $f0,$1e @label=g_blob2 $c3a3 defb $09 $c3a4 defb $0e,$e0 $c3a6 defb $1f,$f0 $c3a8 defb $39,$38 $c3aa defb $34,$98 $c3ac defb $36,$d8 $c3ae defb $39,$38 $c3b0 defb $1f,$f0 $c3b2 defb $3f,$f8 $c3b4 defb $f8,$3e @label=g_ghoul1 $c3b6 defb $14 $c3b7 defb $01,$c0 $c3b9 defb $03,$80 $c3bb defb $03,$00 $c3bd defb $03,$00 $c3bf defb $83,$81 $c3c1 defb $87,$c1 $c3c3 defb $8f,$e1 $c3c5 defb $cf,$f3 $c3c7 defb $df,$f3 $c3c9 defb $df,$fb $c3cb defb $df,$fb $c3cd defb $df,$fb $c3cf defb $d9,$9b $c3d1 defb $d9,$9b $c3d3 defb $19,$98 $c3d5 defb $19,$98 $c3d7 defb $19,$98 $c3d9 defb $1f,$f8 $c3db defb $0f,$f0 $c3dd defb $07,$e0 @label=g_ghoul2 $c3df defb $14 $c3e0 defb $03,$80 $c3e2 defb $01,$c0 $c3e4 defb $00,$c0 $c3e6 defb $00,$c0 $c3e8 defb $01,$c0 $c3ea defb $03,$e0 $c3ec defb $87,$f1 $c3ee defb $8f,$f1 $c3f0 defb $8f,$f9 $c3f2 defb $df,$fb $c3f4 defb $df,$fb $c3f6 defb $df,$fb $c3f8 defb $d9,$9b $c3fa defb $d9,$9b $c3fc defb $d9,$9b $c3fe defb $d9,$9b $c400 defb $99,$99 $c402 defb $0f,$f0 $c404 defb $0f,$f0 $c406 defb $07,$e0 @label=g_ghost1 $c408 defb $10 $c409 defb $03,$c0 $c40b defb $07,$e0 $c40d defb $7f,$fe $c40f defb $ff,$ff $c411 defb $ff,$ff $c413 defb $7f,$fe $c415 defb $3f,$fe $c417 defb $1f,$fc $c419 defb $1c,$ec $c41b defb $18,$44 $c41d defb $18,$44 $c41f defb $1c,$44 $c421 defb $0c,$cc $c423 defb $0f,$f8 $c425 defb $07,$f0 $c427 defb $03,$c0 @label=g_ghost2 $c429 defb $10 $c42a defb $78,$0c $c42c defb $fc,$1e $c42e defb $fe,$3f $c430 defb $ff,$ff $c432 defb $7f,$ff $c434 defb $3f,$fe $c436 defb $1f,$fc $c438 defb $1f,$fc $c43a defb $1c,$ec $c43c defb $18,$44 $c43e defb $18,$44 $c440 defb $1c,$44 $c442 defb $0c,$cc $c444 defb $0f,$f8 $c446 defb $07,$f0 $c448 defb $03,$c0 @label=g_bat1 $c44a defb $12 $c44b defb $00,$00 $c44d defb $00,$00 $c44f defb $00,$00 $c451 defb $04,$40 $c453 defb $0c,$60 $c455 defb $03,$80 $c457 defb $07,$c0 $c459 defb $06,$c0 $c45b defb $0d,$60 $c45d defb $1f,$f0 $c45f defb $1c,$70 $c461 defb $38,$38 $c463 defb $30,$18 $c465 defb $60,$0c $c467 defb $40,$04 $c469 defb $c0,$06 $c46b defb $80,$02 $c46d defb $80,$02 @label=g_bat2 $c46f defb $0e $c470 defb $80,$02 $c472 defb $80,$02 $c474 defb $80,$02 $c476 defb $40,$04 $c478 defb $60,$0c $c47a defb $64,$4c $c47c defb $3c,$78 $c47e defb $3b,$b8 $c480 defb $17,$d0 $c482 defb $06,$c0 $c484 defb $05,$40 $c486 defb $0f,$e0 $c488 defb $0c,$60 $c48a defb $08,$20 ; Data block at c48c @label=g_chicken_empty b$c48c defb $06,$1e $c48e defb $00,$00,$0f,$ff,$f8,$00 $c494 defb $00,$00,$ff,$fe,$3e,$00 $c49a defb $00,$07,$ff,$fd,$df,$80 $c4a0 defb $00,$1f,$e7,$01,$e8,$c0 $c4a6 defb $00,$7e,$e4,$f0,$e7,$60 $c4ac defb $01,$f6,$73,$fc,$73,$80 $c4b2 defb $03,$33,$27,$f8,$33,$c0 $c4b8 defb $04,$18,$0f,$fd,$38,$c0 $c4be defb $08,$00,$0f,$fd,$18,$e0 $c4c4 defb $00,$00,$1f,$fd,$18,$e0 $c4ca defb $00,$00,$1f,$fd,$18,$e0 $c4d0 defb $00,$00,$3f,$fd,$18,$e0 $c4d6 defb $00,$00,$3f,$fb,$38,$e0 $c4dc defb $00,$00,$7f,$fb,$38,$e8 $c4e2 defb $00,$00,$7f,$f6,$71,$d8 $c4e8 defb $00,$1e,$df,$ee,$71,$dc $c4ee defb $00,$0d,$3f,$dc,$f3,$bc $c4f4 defb $00,$02,$ff,$3c,$e3,$78 $c4fa defb $00,$05,$e0,$79,$e3,$70 $c500 defb $00,$0b,$9e,$f1,$d8,$e0 $c506 defb $00,$17,$3e,$e3,$bf,$c0 $c50c defb $0c,$2e,$1f,$1b,$7f,$80 $c512 defb $1e,$dc,$07,$fc,$fe,$00 $c518 defb $37,$b8,$01,$bb,$f8,$00 $c51e defb $33,$f0,$00,$3f,$e0,$00 $c524 defb $1d,$e0,$00,$00,$00,$00 $c52a defb $03,$c0,$00,$00,$00,$00 $c530 defb $06,$e0,$00,$00,$00,$00 $c536 defb $06,$60,$00,$00,$00,$00 $c53c defb $03,$c0,$00,$00,$00,$00 ; Data block at c542 @label=g_chicken_full b$c542 defb $06,$1e $c544 defb $00,$00,$ff,$ff,$fe,$00 $c54a defb $00,$07,$ff,$ff,$ff,$80 $c550 defb $00,$1f,$ff,$0f,$ff,$c0 $c556 defb $00,$7f,$fe,$f7,$ff,$e0 $c55c defb $01,$ff,$f9,$bb,$ff,$f0 $c562 defb $03,$ff,$f7,$fd,$ff,$f8 $c568 defb $07,$ff,$ef,$f5,$ff,$fc $c56e defb $0f,$ff,$df,$de,$ff,$ec $c574 defb $1f,$df,$5d,$be,$ff,$fe $c57a defb $36,$fd,$bf,$f6,$de,$fe $c580 defb $3f,$ff,$b7,$fe,$ff,$fe $c586 defb $1b,$bf,$7e,$be,$ff,$ba $c58c defb $0e,$fb,$7f,$fd,$bb,$fa $c592 defb $07,$be,$f7,$7d,$ff,$fe $c598 defb $01,$f6,$ff,$db,$ff,$fe $c59e defb $00,$dd,$fe,$f7,$ff,$7e $c5a4 defb $00,$3b,$77,$ed,$7f,$de $c5aa defb $00,$17,$fe,$df,$ff,$ec $c5b0 defb $00,$0b,$ff,$3f,$fb,$f8 $c5b6 defb $00,$1f,$c0,$fb,$ff,$b0 $c5bc defb $00,$1f,$bf,$ff,$bf,$e0 $c5c2 defb $0c,$2f,$37,$bf,$fb,$c0 $c5c8 defb $1e,$de,$1d,$fb,$ff,$80 $c5ce defb $37,$b8,$07,$bf,$be,$00 $c5d4 defb $33,$f0,$01,$fb,$f8,$00 $c5da defb $1d,$e0,$00,$3f,$e0,$00 $c5e0 defb $03,$c0,$00,$00,$00,$00 $c5e6 defb $06,$e0,$00,$00,$00,$00 $c5ec defb $06,$60,$00,$00,$00,$00 $c5f2 defb $03,$c0,$00,$00,$00,$00 ; Data block at c5f8 @label=g_pop1 b$c5f8 defb $0b $c5f9 defb $00,$00 $c5fb defb $00,$00 $c5fd defb $00,$00 $c5ff defb $00,$00 $c601 defb $00,$00 $c603 defb $03,$40 $c605 defb $05,$c0 $c607 defb $07,$60 $c609 defb $06,$a0 $c60b defb $03,$c0 $c60d defb $01,$00 @label=g_pop2 $c60f defb $0d $c610 defb $00,$00 $c612 defb $00,$00 $c614 defb $00,$00 $c616 defb $00,$80 $c618 defb $01,$a0 $c61a defb $0b,$48 $c61c defb $02,$f0 $c61e defb $1f,$40 $c620 defb $06,$f8 $c622 defb $07,$b0 $c624 defb $09,$c8 $c626 defb $02,$a0 $c628 defb $02,$90 @label=g_pop3 $c62a defb $0f $c62b defb $00,$00 $c62d defb $05,$00 $c62f defb $11,$10 $c631 defb $09,$10 $c633 defb $04,$24 $c635 defb $38,$08 $c637 defb $00,$10 $c639 defb $70,$00 $c63b defb $00,$0e $c63d defb $10,$00 $c63f defb $64,$2c $c641 defb $0a,$92 $c643 defb $12,$a8 $c645 defb $02,$80 $c647 defb $00,$80 @label=g_pop4 $c649 defb $10 $c64a defb $01,$00 $c64c defb $11,$10 $c64e defb $08,$20 $c650 defb $00,$02 $c652 defb $40,$04 $c654 defb $20,$00 $c656 defb $00,$00 $c658 defb $c0,$00 $c65a defb $00,$03 $c65c defb $00,$00 $c65e defb $40,$02 $c660 defb $80,$01 $c662 defb $00,$00 $c664 defb $20,$04 $c666 defb $44,$82 $c668 defb $04,$80 @label=g_wall_antlers $c66a defb $04,$10 $c66c defb $00,$03,$c0,$00 $c670 defb $00,$04,$20,$00 $c674 defb $00,$08,$10,$00 $c678 defb $00,$13,$c8,$00 $c67c defb $00,$27,$e4,$00 $c680 defb $00,$2d,$b4,$00 $c684 defb $00,$49,$92,$00 $c688 defb $00,$7f,$fe,$00 $c68c defb $03,$f9,$9f,$c0 $c690 defb $07,$f5,$af,$e0 $c694 defb $0f,$f6,$6f,$f0 $c698 defb $1c,$b9,$9d,$38 $c69c defb $30,$9f,$f9,$0c $c6a0 defb $20,$8f,$f1,$04 $c6a4 defb $00,$c0,$03,$00 $c6a8 defb $00,$3f,$fc,$00 @label=g_wall_trophy $c6ac defb $02,$10 $c6ae defb $03,$c0 $c6b0 defb $04,$20 $c6b2 defb $08,$10 $c6b4 defb $13,$c8 $c6b6 defb $27,$e4 $c6b8 defb $2d,$b4 $c6ba defb $4d,$b2 $c6bc defb $4f,$f2 $c6be defb $49,$92 $c6c0 defb $94,$29 $c6c2 defb $b6,$6d $c6c4 defb $b9,$9d $c6c6 defb $bf,$fd $c6c8 defb $98,$19 $c6ca defb $c0,$03 $c6cc defb $3f,$fc @label=g_bookcase $c6ce defb $05,$20 $c6d0 defb $1f,$ff,$ff,$ff,$f8 $c6d5 defb $18,$00,$00,$00,$18 $c6da defb $14,$00,$00,$00,$28 $c6df defb $13,$ff,$ff,$ff,$c8 $c6e4 defb $12,$00,$00,$00,$48 $c6e9 defb $12,$00,$00,$00,$48 $c6ee defb $12,$00,$00,$00,$48 $c6f3 defb $3f,$ff,$ff,$ff,$fc $c6f8 defb $30,$00,$00,$00,$0c $c6fd defb $28,$00,$00,$00,$14 $c702 defb $24,$00,$00,$00,$24 $c707 defb $23,$ff,$ff,$ff,$c4 $c70c defb $22,$00,$00,$00,$44 $c711 defb $22,$00,$00,$00,$44 $c716 defb $22,$00,$00,$00,$44 $c71b defb $7f,$ff,$ff,$ff,$fe $c720 defb $60,$00,$00,$00,$06 $c725 defb $50,$c6,$f6,$ef,$0a $c72a defb $48,$c7,$f6,$ed,$12 $c72f defb $47,$ce,$f6,$eb,$e2 $c734 defb $44,$ce,$f6,$ed,$22 $c739 defb $44,$dc,$f6,$eb,$22 $c73e defb $44,$dc,$f6,$ed,$22 $c743 defb $44,$f8,$f6,$eb,$22 $c748 defb $ff,$ff,$ff,$ff,$ff $c74d defb $00,$00,$00,$00,$00 $c752 defb $ff,$ff,$ff,$ff,$ff $c757 defb $7f,$ff,$ff,$ff,$fe $c75c defb $3f,$ff,$ff,$ff,$fc $c761 defb $1f,$ff,$ff,$ff,$f8 $c766 defb $0f,$ff,$ff,$ff,$f0 $c76b defb $07,$ff,$ff,$ff,$e0 @label=g_trap_open $c770 defb $04,$20 $c772 defb $00,$3c,$f0,$00 $c776 defb $0e,$66,$f9,$c0 $c77a defb $1f,$5e,$bb,$f8 $c77e defb $3f,$5c,$d1,$fc $c782 defb $77,$58,$55,$fe $c786 defb $7b,$6b,$56,$0e $c78a defb $dd,$bb,$77,$f6 $c78e defb $df,$d8,$01,$8e $c792 defb $4f,$00,$00,$76 $c796 defb $63,$00,$00,$f2 $c79a defb $3e,$00,$00,$f0 $c79e defb $00,$00,$00,$ce $c7a2 defb $7e,$00,$00,$1f $c7a6 defb $3f,$00,$00,$7f $c7aa defb $de,$00,$00,$5f $c7ae defb $db,$00,$00,$63 $c7b2 defb $be,$00,$00,$3e $c7b6 defb $e0,$00,$00,$00 $c7ba defb $0e,$00,$00,$3e $c7be defb $7e,$00,$00,$7f $c7c2 defb $4e,$00,$00,$43 $c7c6 defb $73,$00,$00,$7d $c7ca defb $3f,$00,$00,$0f $c7ce defb $00,$00,$00,$e3 $c7d2 defb $3f,$36,$7d,$78 $c7d6 defb $7f,$ee,$fe,$bc $c7da defb $6f,$ee,$be,$bc $c7de defb $2f,$da,$be,$cc $c7e2 defb $37,$de,$bf,$78 $c7e6 defb $19,$da,$c7,$60 $c7ea defb $0f,$ce,$7e,$00 $c7ee defb $01,$c6,$00,$00 @label=g_trap_closed $c7f2 defb $04,$20 $c7f4 defb $00,$3c,$f0,$00 $c7f8 defb $0e,$66,$f9,$c0 $c7fc defb $1f,$5e,$bb,$f8 $c800 defb $3f,$5c,$d1,$fc $c804 defb $77,$58,$55,$fe $c808 defb $7b,$6b,$56,$0e $c80c defb $dd,$bb,$77,$f6 $c810 defb $df,$d8,$01,$8e $c814 defb $4f,$ff,$ff,$76 $c818 defb $63,$92,$49,$f2 $c81c defb $3e,$92,$49,$f0 $c820 defb $00,$ff,$f9,$ce $c824 defb $7e,$ea,$ad,$1f $c828 defb $3f,$ff,$f9,$7f $c82c defb $de,$92,$49,$5f $c830 defb $db,$92,$49,$63 $c834 defb $be,$92,$49,$3e $c838 defb $e0,$92,$49,$00 $c83c defb $0e,$ff,$f9,$3e $c840 defb $7e,$ea,$ad,$7f $c844 defb $4e,$ff,$f9,$43 $c848 defb $73,$92,$49,$7d $c84c defb $3f,$92,$49,$0f $c850 defb $00,$ff,$ff,$e3 $c854 defb $3f,$36,$7d,$78 $c858 defb $7f,$ee,$fe,$bc $c85c defb $6f,$ee,$be,$bc $c860 defb $2f,$da,$be,$cc $c864 defb $37,$de,$bf,$78 $c868 defb $19,$da,$c7,$60 $c86c defb $0f,$ce,$7e,$00 $c870 defb $01,$c6,$00,$00 @label=g_rug $c874 defb $06,$27 $c876 defb $00,$03,$80,$00,$02,$00 $c87c defb $00,$07,$c0,$00,$0d,$00 $c882 defb $00,$07,$c0,$00,$1e,$00 $c888 defb $00,$07,$c0,$00,$1f,$00 $c88e defb $00,$03,$c0,$00,$1f,$00 $c894 defb $00,$03,$80,$00,$3e,$00 $c89a defb $00,$03,$80,$00,$3c,$00 $c8a0 defb $00,$03,$80,$00,$7c,$00 $c8a6 defb $00,$03,$80,$00,$78,$00 $c8ac defb $00,$03,$80,$00,$70,$00 $c8b2 defb $00,$02,$80,$00,$f0,$00 $c8b8 defb $00,$07,$80,$00,$b0,$00 $c8be defb $00,$07,$c7,$e1,$f0,$00 $c8c4 defb $00,$06,$7e,$3b,$20,$00 $c8ca defb $00,$07,$fd,$df,$e0,$00 $c8d0 defb $03,$cf,$1e,$3c,$e0,$00 $c8d6 defb $0f,$fe,$ef,$fb,$70,$00 $c8dc defb $79,$bf,$1c,$fc,$de,$00 $c8e2 defb $bb,$d9,$fb,$67,$f3,$f0 $c8e8 defb $ff,$f6,$fc,$db,$1e,$7f $c8ee defb $bb,$d9,$8f,$e6,$ef,$ce $c8f4 defb $e9,$bf,$76,$3f,$1c,$03 $c8fa defb $0f,$fb,$8d,$d9,$f0,$00 $c900 defb $03,$cc,$fe,$36,$e0,$00 $c906 defb $00,$07,$c7,$f9,$e0,$00 $c90c defb $00,$07,$ff,$ff,$20,$00 $c912 defb $00,$04,$c7,$e1,$f0,$00 $c918 defb $00,$07,$80,$00,$b0,$00 $c91e defb $00,$02,$80,$00,$f0,$00 $c924 defb $00,$03,$80,$00,$50,$00 $c92a defb $00,$02,$80,$00,$78,$00 $c930 defb $00,$03,$80,$00,$7c,$00 $c936 defb $00,$03,$80,$00,$3c,$00 $c93c defb $00,$03,$80,$00,$3e,$00 $c942 defb $00,$03,$c0,$00,$1f,$00 $c948 defb $00,$07,$c0,$00,$1f,$00 $c94e defb $00,$07,$c0,$00,$1e,$00 $c954 defb $00,$07,$c0,$00,$0d,$00 $c95a defb $00,$03,$80,$00,$02,$00 @label=a_wall_antlers $c960 defb $04,$02 $c962 defb $47,$47,$47,$47 $c966 defb $47,$47,$47,$47 @label=a_wall_trophy $c96a defb $02,$02 $c96c defb $45,$45,$45,$45 @label=a_bookcase $c970 defb $05,$04 $c972 defb $46,$46,$46,$46,$46 $c977 defb $46,$46,$46,$46,$46 $c97c defb $46,$45,$43,$44,$46 $c981 defb $46,$46,$46,$46,$46 @label=a_trap_open $c986 defb $04,$04 $c988 defb $43,$43,$43,$43 $c98c defb $43,$00,$00,$43 $c990 defb $43,$00,$00,$43 $c994 defb $43,$43,$43,$43 @label=a_trap_closed $c998 defb $04,$04 $c99a defb $43,$43,$43,$43 $c99e defb $43,$46,$46,$43 $c9a2 defb $43,$46,$46,$43 $c9a6 defb $43,$43,$43,$43 @label=a_rug $c9aa defb $06,$05 $c9ac defb $07,$07,$07,$07,$07,$07 $c9b2 defb $07,$07,$07,$07,$07,$07 $c9b8 defb $07,$07,$07,$07,$07,$07 $c9be defb $07,$07,$07,$07,$07,$07 $c9c4 defb $07,$07,$07,$07,$07,$07 @label=g_acg_shield $c9ca defb $02,$10 $c9cc defb $01,$80 $c9ce defb $07,$e0 $c9d0 defb $0f,$f0 $c9d2 defb $1f,$d8 $c9d4 defb $30,$0c $c9d6 defb $3f,$dc $c9d8 defb $7f,$fe $c9da defb $7f,$fe $c9dc defb $54,$42 $c9de defb $d5,$db $c9e0 defb $c5,$d3 $c9e2 defb $d5,$df $c9e4 defb $c4,$43 $c9e6 defb $ff,$ff $c9e8 defb $e7,$e7 $c9ea defb $81,$81 @label=g_wall_shield $c9ec defb $02,$10 $c9ee defb $01,$80 $c9f0 defb $07,$e0 $c9f2 defb $08,$10 $c9f4 defb $19,$98 $c9f6 defb $39,$9c $c9f8 defb $30,$0c $c9fa defb $75,$ae $c9fc defb $7f,$fe $c9fe defb $7f,$fe $ca00 defb $dc,$2f $ca02 defb $d7,$eb $ca04 defb $c4,$23 $ca06 defb $d7,$eb $ca08 defb $fd,$7f $ca0a defb $e7,$e7 $ca0c defb $81,$81 @label=g_suit_armour $ca0e defb $02,$20 $ca10 defb $30,$0c $ca12 defb $1c,$38 $ca14 defb $1e,$7a $ca16 defb $0e,$72 $ca18 defb $06,$62 $ca1a defb $0a,$52 $ca1c defb $1c,$3a $ca1e defb $0a,$52 $ca20 defb $07,$e2 $ca22 defb $47,$e7 $ca24 defb $47,$e2 $ca26 defb $07,$e0 $ca28 defb $60,$06 $ca2a defb $67,$e6 $ca2c defb $a6,$65 $ca2e defb $cc,$33 $ca30 defb $ad,$b5 $ca32 defb $6d,$b6 $ca34 defb $7f,$fe $ca36 defb $7f,$fe $ca38 defb $78,$1e $ca3a defb $37,$ec $ca3c defb $03,$c0 $ca3e defb $07,$e0 $ca40 defb $0e,$70 $ca42 defb $19,$98 $ca44 defb $07,$e0 $ca46 defb $0f,$f0 $ca48 defb $07,$e0 $ca4a defb $03,$c0 $ca4c defb $00,$00 $ca4e defb $00,$00 @label=a_acg_shield $ca50 defb $02,$02 $ca52 defb $43,$47 $ca54 defb $47,$43 @label=a_wall_shield $ca56 defb $02,$02 $ca58 defb $ff,$ff $ca5a defb $ff,$ff @label=a_suit_armour $ca5c defb $02,$04 $ca5e defb $45,$45 $ca60 defb $45,$45 $ca62 defb $45,$45 $ca64 defb $45,$45 @label=a_cave_door_shut $ca66 defb $04,$03 $ca68 defb $ff,$47,$47,$ff $ca6c defb $ff,$47,$47,$ff $ca70 defb $ff,$ff,$ff,$ff @label=a_door_shut $ca74 defb $04,$03 $ca76 defb $43,$47,$47,$43 $ca7a defb $43,$47,$47,$43 $ca7e defb $43,$43,$43,$43 @label=g_door_shut $ca82 defb $04,$18 $ca84 defb $ff,$3b,$dc,$ff $ca88 defb $1f,$3b,$dc,$f8 $ca8c defb $0c,$3b,$dc,$40 $ca90 defb $3e,$3b,$dc,$7c $ca94 defb $7c,$00,$00,$3e $ca98 defb $04,$7b,$ce,$20 $ca9c defb $f8,$7b,$d7,$1f $caa0 defb $f8,$7b,$d1,$1f $caa4 defb $08,$7b,$ce,$08 $caa8 defb $f0,$7b,$c0,$0f $caac defb $f0,$00,$00,$0f $cab0 defb $10,$fb,$df,$08 $cab4 defb $f0,$fb,$df,$1f $cab8 defb $f8,$7b,$de,$1f $cabc defb $cc,$3b,$dc,$33 $cac0 defb $3f,$0b,$d0,$7c $cac4 defb $7d,$80,$01,$be $cac8 defb $3b,$f0,$0f,$dc $cacc defb $17,$bf,$fd,$e8 $cad0 defb $07,$7b,$de,$e0 $cad4 defb $03,$7b,$de,$c0 $cad8 defb $00,$77,$ee,$00 $cadc defb $00,$07,$e0,$00 $cae0 defb $00,$00,$00,$00 @label=g_cave_door_shut $cae4 defb $04,$18 $cae6 defb $ff,$3b,$dc,$ff $caea defb $03,$3b,$dc,$b0 $caee defb $03,$3b,$dc,$b0 $caf2 defb $07,$3b,$dc,$98 $caf6 defb $0d,$00,$00,$98 $cafa defb $1a,$7b,$ce,$4e $cafe defb $3a,$7b,$d7,$ec $cb02 defb $7a,$7b,$d1,$58 $cb06 defb $5a,$7b,$ce,$70 $cb0a defb $ce,$7b,$c0,$78 $cb0e defb $8c,$00,$00,$2c $cb12 defb $0c,$fb,$df,$26 $cb16 defb $0c,$fb,$df,$23 $cb1a defb $1c,$7b,$de,$21 $cb1e defb $32,$3b,$dc,$43 $cb22 defb $62,$0b,$d0,$46 $cb26 defb $f1,$00,$00,$86 $cb2a defb $7f,$c0,$03,$0c $cb2e defb $0f,$38,$1c,$0c $cb32 defb $03,$c7,$fc,$18 $cb36 defb $00,$f0,$df,$38 $cb3a defb $00,$3d,$87,$f0 $cb3e defb $00,$0f,$00,$c0 $cb42 defb $00,$02,$00,$00 @label=g_mummy1 $cb46 defb $18 $cb47 defb $0f,$00 $cb49 defb $0f,$78 $cb4b defb $03,$78 $cb4d defb $04,$30 $cb4f defb $07,$70 $cb51 defb $07,$40 $cb53 defb $01,$f0 $cb55 defb $07,$e0 $cb57 defb $0e,$20 $cb59 defb $0f,$e0 $cb5b defb $0f,$e0 $cb5d defb $04,$20 $cb5f defb $cf,$e5 $cb61 defb $e8,$67 $cb63 defb $f7,$cb $cb65 defb $5b,$be $cb67 defb $17,$d4 $cb69 defb $03,$80 $cb6b defb $07,$c0 $cb6d defb $0c,$60 $cb6f defb $0f,$e0 $cb71 defb $0d,$60 $cb73 defb $07,$c0 $cb75 defb $03,$80 @label=g_mummy2 $cb77 defb $18 $cb78 defb $0f,$e8 $cb7a defb $0f,$e8 $cb7c defb $03,$30 $cb7e defb $04,$70 $cb80 defb $07,$40 $cb82 defb $07,$f0 $cb84 defb $01,$e0 $cb86 defb $07,$e0 $cb88 defb $07,$10 $cb8a defb $07,$f0 $cb8c defb $07,$f0 $cb8e defb $02,$10 $cb90 defb $af,$e5 $cb92 defb $78,$67 $cb94 defb $f7,$cb $cb96 defb $5b,$be $cb98 defb $17,$d4 $cb9a defb $03,$80 $cb9c defb $07,$c0 $cb9e defb $0c,$60 $cba0 defb $0f,$e0 $cba2 defb $0d,$60 $cba4 defb $07,$c0 $cba6 defb $03,$80 @label=g_mummy3 $cba8 defb $18 $cba9 defb $00,$78 $cbab defb $0f,$78 $cbad defb $0f,$30 $cbaf defb $07,$70 $cbb1 defb $04,$40 $cbb3 defb $07,$70 $cbb5 defb $07,$70 $cbb7 defb $01,$e0 $cbb9 defb $07,$10 $cbbb defb $07,$f0 $cbbd defb $07,$f0 $cbbf defb $02,$10 $cbc1 defb $a7,$f5 $cbc3 defb $e4,$37 $cbc5 defb $f3,$eb $cbc7 defb $5b,$fe $cbc9 defb $17,$f4 $cbcb defb $01,$c0 $cbcd defb $03,$e0 $cbcf defb $06,$30 $cbd1 defb $07,$f0 $cbd3 defb $06,$b0 $cbd5 defb $03,$e0 $cbd7 defb $01,$c0 @label=g_franken1 $cbd9 defb $18 $cbda defb $3e,$00 $cbdc defb $1e,$60 $cbde defb $00,$f0 $cbe0 defb $0e,$70 $cbe2 defb $0e,$b0 $cbe4 defb $0e,$c4 $cbe6 defb $4f,$e4 $cbe8 defb $4f,$ea $cbea defb $a0,$0a $cbec defb $af,$ee $cbee defb $ee,$ee $cbf0 defb $fe,$fe $cbf2 defb $ff,$fe $cbf4 defb $7e,$fc $cbf6 defb $0f,$e0 $cbf8 defb $20,$08 $cbfa defb $37,$d8 $cbfc defb $24,$48 $cbfe defb $0f,$e0 $cc00 defb $14,$50 $cc02 defb $16,$d0 $cc04 defb $10,$10 $cc06 defb $1a,$b0 $cc08 defb $0f,$e0 @label=g_franken2 $cc0a defb $18 $cc0b defb $1e,$f0 $cc0d defb $1e,$f0 $cc0f defb $00,$00 $cc11 defb $0e,$e0 $cc13 defb $4e,$e4 $cc15 defb $4e,$e4 $cc17 defb $af,$ea $cc19 defb $af,$ea $cc1b defb $e0,$0e $cc1d defb $ef,$ee $cc1f defb $ef,$ee $cc21 defb $fe,$fe $cc23 defb $ff,$fe $cc25 defb $7e,$fc $cc27 defb $0f,$e0 $cc29 defb $20,$08 $cc2b defb $37,$d8 $cc2d defb $24,$48 $cc2f defb $0f,$e0 $cc31 defb $14,$50 $cc33 defb $16,$d0 $cc35 defb $10,$10 $cc37 defb $1a,$b0 $cc39 defb $0f,$e0 @label=g_franken3 $cc3b defb $18 $cc3c defb $00,$f8 $cc3e defb $0c,$f0 $cc40 defb $1e,$00 $cc42 defb $1c,$e0 $cc44 defb $1a,$e0 $cc46 defb $46,$e0 $cc48 defb $4f,$e0 $cc4a defb $ae,$e4 $cc4c defb $0a,$a0 $cc4e defb $ef,$ea $cc50 defb $ef,$ee $cc52 defb $fe,$fe $cc54 defb $ff,$fe $cc56 defb $7e,$fc $cc58 defb $0f,$f0 $cc5a defb $20,$08 $cc5c defb $37,$d8 $cc5e defb $24,$48 $cc60 defb $0f,$e0 $cc62 defb $14,$50 $cc64 defb $16,$d0 $cc66 defb $10,$10 $cc68 defb $1a,$b0 $cc6a defb $0f,$e0 @label=g_devil1 $cc6c defb $18 $cc6d defb $0c,$07 $cc6f defb $0c,$63 $cc71 defb $00,$65 $cc73 defb $0c,$04 $cc75 defb $0c,$ec $cc77 defb $0e,$f8 $cc79 defb $0f,$d0 $cc7b defb $0f,$c0 $cc7d defb $05,$40 $cc7f defb $0b,$a0 $cc81 defb $0d,$60 $cc83 defb $ab,$a8 $cc85 defb $ff,$ff $cc87 defb $3f,$fc $cc89 defb $07,$c0 $cc8b defb $0a,$a0 $cc8d defb $11,$10 $cc8f defb $14,$50 $cc91 defb $16,$d0 $cc93 defb $31,$18 $cc95 defb $7b,$bc $cc97 defb $6f,$ec $cc99 defb $47,$c4 $cc9b defb $40,$04 @label=g_devil2 $cc9d defb $18 $cc9e defb $06,$c7 $cca0 defb $06,$c3 $cca2 defb $00,$05 $cca4 defb $06,$c4 $cca6 defb $06,$cc $cca8 defb $06,$d8 $ccaa defb $07,$d0 $ccac defb $07,$c0 $ccae defb $05,$40 $ccb0 defb $0b,$a0 $ccb2 defb $0d,$60 $ccb4 defb $ab,$aa $ccb6 defb $ff,$fe $ccb8 defb $3f,$f8 $ccba defb $07,$c0 $ccbc defb $0a,$a0 $ccbe defb $11,$10 $ccc0 defb $14,$50 $ccc2 defb $16,$d0 $ccc4 defb $31,$18 $ccc6 defb $7b,$bc $ccc8 defb $6f,$ec $ccca defb $47,$c4 $cccc defb $40,$04 @label=g_devil3 $ccce defb $18 $cccf defb $00,$37 $ccd1 defb $06,$33 $ccd3 defb $06,$05 $ccd5 defb $00,$34 $ccd7 defb $07,$3c $ccd9 defb $07,$78 $ccdb defb $03,$f0 $ccdd defb $07,$f0 $ccdf defb $02,$a0 $cce1 defb $05,$d0 $cce3 defb $06,$b0 $cce5 defb $a5,$d5 $cce7 defb $ff,$ff $cce9 defb $3f,$fc $cceb defb $03,$e0 $cced defb $05,$50 $ccef defb $08,$88 $ccf1 defb $0a,$28 $ccf3 defb $0b,$68 $ccf5 defb $18,$8c $ccf7 defb $39,$ce $ccf9 defb $37,$f6 $ccfb defb $23,$e2 $ccfd defb $20,$02 @label=g_dracula1 $ccff defb $18 $cd00 defb $00,$f0 $cd02 defb $0c,$00 $cd04 defb $1c,$c0 $cd06 defb $38,$c0 $cd08 defb $b4,$c2 $cd0a defb $ce,$de $cd0c defb $f7,$de $cd0e defb $f7,$de $cd10 defb $f8,$3e $cd12 defb $7f,$fc $cd14 defb $7f,$fc $cd16 defb $6b,$ac $cd18 defb $23,$88 $cd1a defb $3f,$f8 $cd1c defb $0f,$e0 $cd1e defb $3a,$b8 $cd20 defb $72,$9c $cd22 defb $41,$04 $cd24 defb $54,$54 $cd26 defb $16,$d0 $cd28 defb $19,$30 $cd2a defb $1b,$b0 $cd2c defb $0f,$e0 $cd2e defb $07,$c0 @label=g_dracula2 $cd30 defb $18 $cd31 defb $1e,$f0 $cd33 defb $0e,$e0 $cd35 defb $00,$00 $cd37 defb $06,$c0 $cd39 defb $86,$c2 $cd3b defb $f6,$de $cd3d defb $f7,$de $cd3f defb $f7,$de $cd41 defb $f8,$3e $cd43 defb $7f,$fc $cd45 defb $7f,$fc $cd47 defb $6b,$ac $cd49 defb $23,$88 $cd4b defb $3f,$f8 $cd4d defb $0f,$e0 $cd4f defb $3a,$b8 $cd51 defb $72,$9c $cd53 defb $41,$04 $cd55 defb $54,$54 $cd57 defb $16,$d0 $cd59 defb $19,$30 $cd5b defb $1b,$b0 $cd5d defb $0f,$e0 $cd5f defb $07,$c0 @label=g_dracula3 $cd61 defb $18 $cd62 defb $1e,$00 $cd64 defb $00,$60 $cd66 defb $06,$70 $cd68 defb $06,$38 $cd6a defb $86,$5a $cd6c defb $f6,$e6 $cd6e defb $f7,$de $cd70 defb $f7,$de $cd72 defb $f8,$3e $cd74 defb $7f,$fc $cd76 defb $7f,$ec $cd78 defb $6b,$ac $cd7a defb $23,$88 $cd7c defb $3f,$f8 $cd7e defb $0f,$e0 $cd80 defb $3a,$b8 $cd82 defb $72,$9c $cd84 defb $41,$04 $cd86 defb $54,$54 $cd88 defb $16,$d0 $cd8a defb $19,$30 $cd8c defb $1b,$b0 $cd8e defb $0f,$e0 $cd90 defb $07,$c0 @label=g_tombstone $cd92 defb $15 $cd93 defb $22,$00 $cd95 defb $4b,$c0 $cd97 defb $56,$80 $cd99 defb $37,$60 $cd9b defb $fb,$00 $cd9d defb $7b,$80 $cd9f defb $fd,$80 $cda1 defb $7d,$ce $cda3 defb $9e,$ae $cda5 defb $9e,$77 $cda7 defb $2f,$f9 $cda9 defb $4f,$f6 $cdab defb $07,$ec $cdad defb $07,$c0 $cdaf defb $0f,$d8 $cdb1 defb $1f,$dc $cdb3 defb $3d,$ec $cdb5 defb $3d,$e2 $cdb7 defb $3a,$dc $cdb9 defb $16,$b8 $cdbb defb $00,$70 @label=g_crucifix $cdbd defb $12 $cdbe defb $01,$80 $cdc0 defb $03,$c0 $cdc2 defb $03,$c0 $cdc4 defb $01,$80 $cdc6 defb $01,$80 $cdc8 defb $01,$80 $cdca defb $01,$80 $cdcc defb $01,$80 $cdce defb $03,$c0 $cdd0 defb $66,$66 $cdd2 defb $fd,$bf $cdd4 defb $fd,$bf $cdd6 defb $66,$66 $cdd8 defb $03,$c0 $cdda defb $01,$80 $cddc defb $03,$c0 $cdde defb $03,$c0 $cde0 defb $01,$80 @label=g_skull $cde2 defb $0f $cde3 defb $02,$d0 $cde5 defb $03,$50 $cde7 defb $04,$a8 $cde9 defb $0c,$08 $cdeb defb $1c,$c8 $cded defb $38,$44 $cdef defb $30,$84 $cdf1 defb $76,$32 $cdf3 defb $7b,$5a $cdf5 defb $73,$1a $cdf7 defb $79,$12 $cdf9 defb $38,$02 $cdfb defb $3f,$02 $cdfd defb $1f,$fc $cdff defb $07,$f0 @label=g_witch_l1 $ce01 defb $16 $ce02 defb $00,$0a $ce04 defb $07,$da $ce06 defb $00,$ba $ce08 defb $3c,$d8 $ce0a defb $07,$fc $ce0c defb $07,$fe $ce0e defb $07,$fe $ce10 defb $05,$ff $ce12 defb $1d,$ff $ce14 defb $3e,$f7 $ce16 defb $e6,$f6 $ce18 defb $c3,$78 $ce1a defb $09,$60 $ce1c defb $0f,$c0 $ce1e defb $0f,$c0 $ce20 defb $2f,$20 $ce22 defb $3b,$40 $ce24 defb $16,$e0 $ce26 defb $0d,$f0 $ce28 defb $03,$f8 $ce2a defb $07,$fc $ce2c defb $08,$1f @label=g_witch_l2 $ce2e defb $16 $ce2f defb $00,$80 $ce31 defb $07,$d5 $ce33 defb $00,$ba $ce35 defb $3c,$d4 $ce37 defb $07,$fc $ce39 defb $07,$fe $ce3b defb $07,$fe $ce3d defb $05,$ff $ce3f defb $0d,$ff $ce41 defb $1e,$f7 $ce43 defb $76,$f6 $ce45 defb $e3,$7c $ce47 defb $49,$60 $ce49 defb $0f,$c0 $ce4b defb $0f,$00 $ce4d defb $2f,$20 $ce4f defb $3b,$40 $ce51 defb $16,$e0 $ce53 defb $0d,$f0 $ce55 defb $03,$f8 $ce57 defb $07,$fc $ce59 defb $08,$1f @label=g_witch_r1 $ce5b defb $16 $ce5c defb $10,$00 $ce5e defb $ab,$e0 $ce60 defb $5d,$00 $ce62 defb $2b,$3c $ce64 defb $3f,$e0 $ce66 defb $7f,$e0 $ce68 defb $7f,$e0 $ce6a defb $ff,$a0 $ce6c defb $ff,$b0 $ce6e defb $ef,$78 $ce70 defb $6f,$6e $ce72 defb $3e,$c7 $ce74 defb $06,$92 $ce76 defb $03,$f0 $ce78 defb $00,$f0 $ce7a defb $04,$f4 $ce7c defb $02,$dc $ce7e defb $07,$68 $ce80 defb $0f,$b0 $ce82 defb $1f,$c0 $ce84 defb $3f,$e0 $ce86 defb $f8,$10 @label=g_witch_r2 $ce88 defb $16 $ce89 defb $50,$00 $ce8b defb $ab,$e0 $ce8d defb $5d,$00 $ce8f defb $2b,$3c $ce91 defb $3f,$e0 $ce93 defb $7f,$e0 $ce95 defb $7f,$e0 $ce97 defb $ff,$a0 $ce99 defb $ff,$b8 $ce9b defb $ef,$7c $ce9d defb $6f,$67 $ce9f defb $3e,$c3 $cea1 defb $06,$90 $cea3 defb $03,$f0 $cea5 defb $00,$f0 $cea7 defb $04,$f4 $cea9 defb $02,$dc $ceab defb $07,$68 $cead defb $0f,$b0 $ceaf defb $1f,$c0 $ceb1 defb $3f,$e0 $ceb3 defb $f8,$10 @label=g_monk_l1 $ceb5 defb $13 $ceb6 defb $0c,$ce $ceb8 defb $1f,$fc $ceba defb $3f,$f8 $cebc defb $2f,$b0 $cebe defb $17,$b0 $cec0 defb $3b,$10 $cec2 defb $3d,$b0 $cec4 defb $7e,$f0 $cec6 defb $ff,$70 $cec8 defb $e3,$70 $ceca defb $1d,$70 $cecc defb $0a,$e0 $cece defb $15,$c6 $ced0 defb $24,$3c $ced2 defb $47,$fc $ced4 defb $4f,$f8 $ced6 defb $7f,$e0 $ced8 defb $3f,$80 $ceda defb $1e,$00 @label=g_monk_l2 $cedc defb $13 $cedd defb $03,$00 $cedf defb $1f,$ff $cee1 defb $0f,$fc $cee3 defb $37,$b0 $cee5 defb $3b,$b0 $cee7 defb $7d,$10 $cee9 defb $7e,$d0 $ceeb defb $ff,$70 $ceed defb $e7,$b0 $ceef defb $0b,$b0 $cef1 defb $0d,$70 $cef3 defb $0c,$e0 $cef5 defb $17,$c0 $cef7 defb $26,$1f $cef9 defb $47,$fc $cefb defb $4f,$f8 $cefd defb $7f,$e0 $ceff defb $3f,$80 $cf01 defb $1e,$00 @label=g_monk_r1 $cf03 defb $13 $cf04 defb $00,$c0 $cf06 defb $ff,$f8 $cf08 defb $3f,$f0 $cf0a defb $0d,$ec $cf0c defb $0d,$dc $cf0e defb $08,$be $cf10 defb $0d,$7e $cf12 defb $0e,$ff $cf14 defb $0d,$e7 $cf16 defb $0d,$d0 $cf18 defb $0e,$b0 $cf1a defb $07,$30 $cf1c defb $03,$e8 $cf1e defb $f8,$64 $cf20 defb $3f,$e2 $cf22 defb $1f,$f2 $cf24 defb $07,$f3 $cf26 defb $01,$fc $cf28 defb $00,$78 @label=g_monk_r2 $cf2a defb $13 $cf2b defb $73,$30 $cf2d defb $3f,$f8 $cf2f defb $1f,$fc $cf31 defb $0d,$f4 $cf33 defb $0d,$e8 $cf35 defb $08,$dc $cf37 defb $0d,$bc $cf39 defb $0f,$7e $cf3b defb $0e,$ff $cf3d defb $0e,$c7 $cf3f defb $0e,$b8 $cf41 defb $07,$50 $cf43 defb $63,$a8 $cf45 defb $3c,$24 $cf47 defb $3f,$e2 $cf49 defb $1f,$f2 $cf4b defb $07,$fe $cf4d defb $01,$fc $cf4f defb $00,$78 @label=g_bat_l1 $cf51 defb $13 $cf52 defb $00,$00 $cf54 defb $00,$00 $cf56 defb $00,$00 $cf58 defb $00,$00 $cf5a defb $00,$00 $cf5c defb $00,$00 $cf5e defb $67,$f0 $cf60 defb $ff,$ff $cf62 defb $bf,$fe $cf64 defb $df,$80 $cf66 defb $f7,$f0 $cf68 defb $dc,$10 $cf6a defb $25,$f8 $cf6c defb $0b,$e8 $cf6e defb $0c,$18 $cf70 defb $07,$f8 $cf72 defb $03,$f8 $cf74 defb $00,$fc $cf76 defb $00,$1f @label=g_bat_l2 $cf78 defb $0d $cf79 defb $00,$1f $cf7b defb $00,$fc $cf7d defb $03,$f8 $cf7f defb $07,$04 $cf81 defb $08,$38 $cf83 defb $07,$90 $cf85 defb $67,$e0 $cf87 defb $ff,$9f $cf89 defb $bf,$fe $cf8b defb $df,$f0 $cf8d defb $f0,$00 $cf8f defb $b0,$00 $cf91 defb $20,$00 @label=g_bat_r1 $cf93 defb $0d $cf94 defb $f8,$00 $cf96 defb $3f,$00 $cf98 defb $1f,$c0 $cf9a defb $2f,$e0 $cf9c defb $1c,$10 $cf9e defb $09,$e0 $cfa0 defb $07,$e6 $cfa2 defb $f9,$ff $cfa4 defb $7f,$fd $cfa6 defb $0f,$fb $cfa8 defb $00,$0f $cfaa defb $00,$0d $cfac defb $00,$04 @label=g_bat_r2 $cfae defb $13 $cfaf defb $00,$00 $cfb1 defb $00,$00 $cfb3 defb $00,$00 $cfb5 defb $00,$00 $cfb7 defb $00,$00 $cfb9 defb $00,$00 $cfbb defb $0f,$e6 $cfbd defb $ff,$ff $cfbf defb $7f,$fd $cfc1 defb $01,$fb $cfc3 defb $0f,$ef $cfc5 defb $08,$6d $cfc7 defb $1f,$a4 $cfc9 defb $27,$d0 $cfcb defb $18,$30 $cfcd defb $1f,$e0 $cfcf defb $1f,$c0 $cfd1 defb $3f,$00 $cfd3 defb $f8,$00 @label=g_barrel $cfd5 defb $04,$20 $cfd7 defb $00,$0f,$f0,$00 $cfdb defb $00,$70,$0e,$00 $cfdf defb $01,$87,$b1,$80 $cfe3 defb $02,$7b,$de,$40 $cfe7 defb $04,$fd,$ef,$a0 $cfeb defb $0b,$7e,$f7,$d0 $cfef defb $17,$bf,$7b,$e8 $cff3 defb $17,$df,$bd,$e8 $cff7 defb $2f,$ff,$ff,$f4 $cffb defb $6e,$63,$8f,$b6 $cfff defb $5e,$49,$27,$ba $d003 defb $56,$49,$24,$2a $d007 defb $5e,$63,$8c,$ba $d00b defb $dc,$49,$24,$fb $d00f defb $ee,$49,$24,$f7 $d013 defb $af,$63,$8c,$b5 $d017 defb $b7,$ff,$ff,$ed $d01b defb $bb,$df,$f7,$dd $d01f defb $9d,$ef,$fb,$b9 $d023 defb $ce,$77,$fe,$73 $d027 defb $c7,$8f,$f1,$e3 $d02b defb $63,$f0,$0f,$c6 $d02f defb $70,$ff,$ff,$0e $d033 defb $38,$1f,$f8,$1c $d037 defb $1e,$00,$40,$78 $d03b defb $0f,$c0,$23,$f0 $d03f defb $03,$ff,$ff,$c0 $d043 defb $00,$ff,$ff,$00 $d047 defb $00,$1f,$f8,$00 $d04b defb $00,$00,$00,$00 $d04f defb $00,$00,$00,$00 $d053 defb $00,$00,$00,$00 @label=a_barrel $d057 defb $04,$04 $d059 defb $46,$46,$46,$46 $d05d defb $46,$46,$46,$46 $d061 defb $46,$46,$46,$46 $d065 defb $46,$46,$46,$46 @label=g_acg_door $d069 defb $08,$28 $d06b defb $00,$00,$00,$00,$00,$00,$00,$00 $d073 defb $00,$00,$00,$00,$00,$00,$00,$00 $d07b defb $00,$00,$00,$00,$00,$00,$00,$00 $d083 defb $00,$00,$00,$00,$00,$00,$00,$00 $d08b defb $00,$3c,$00,$00,$00,$00,$3c,$00 $d093 defb $00,$42,$00,$00,$00,$00,$42,$00 $d09b defb $00,$bd,$00,$00,$00,$00,$bd,$00 $d0a3 defb $00,$ef,$00,$00,$00,$00,$f7,$00 $d0ab defb $ff,$eb,$ff,$ff,$7f,$ff,$f7,$ff $d0b3 defb $00,$6a,$1f,$ff,$7f,$f8,$56,$00 $d0bb defb $00,$5a,$3f,$ff,$7f,$fc,$52,$00 $d0c3 defb $00,$d6,$3f,$e3,$63,$fc,$6b,$00 $d0cb defb $00,$d6,$7f,$d1,$51,$fe,$6b,$00 $d0d3 defb $00,$b6,$7f,$d1,$51,$fe,$69,$00 $d0db defb $00,$b6,$ff,$cd,$4d,$ff,$6d,$00 $d0e3 defb $01,$b6,$ff,$e3,$63,$ff,$6d,$80 $d0eb defb $01,$a4,$ff,$ff,$ff,$ff,$25,$80 $d0f3 defb $01,$2c,$ff,$36,$30,$ff,$34,$80 $d0fb defb $01,$6c,$ff,$34,$e6,$ff,$36,$80 $d103 defb $03,$6c,$ff,$04,$e4,$ff,$36,$c0 $d10b defb $03,$6c,$ff,$04,$e4,$ff,$36,$c0 $d113 defb $02,$6c,$ff,$34,$e7,$ff,$36,$40 $d11b defb $02,$6c,$ff,$34,$e7,$ff,$36,$40 $d123 defb $06,$cc,$7f,$8e,$30,$fe,$33,$60 $d12b defb $04,$cc,$7f,$ff,$ff,$fe,$33,$20 $d133 defb $07,$f4,$3f,$ff,$7f,$fc,$2f,$e0 $d13b defb $1f,$fc,$1f,$ff,$7f,$f8,$3f,$f8 $d143 defb $38,$0e,$0f,$ff,$7f,$f0,$70,$1c $d14b defb $67,$f3,$03,$ff,$7f,$c0,$cf,$e6 $d153 defb $5f,$fd,$00,$7f,$fe,$00,$bf,$fa $d15b defb $3f,$fe,$00,$07,$60,$00,$7f,$fc $d163 defb $00,$00,$00,$00,$00,$00,$00,$00 $d16b defb $7f,$ff,$ff,$ff,$ff,$ff,$ff,$fe $d173 defb $7f,$ff,$ff,$ff,$ff,$ff,$ff,$fe $d17b defb $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff $d183 defb $00,$00,$00,$00,$00,$00,$00,$00 $d18b defb $aa,$aa,$aa,$aa,$aa,$aa,$aa,$aa $d193 defb $55,$55,$55,$55,$55,$55,$55,$56 $d19b defb $2a,$aa,$aa,$aa,$aa,$aa,$aa,$ac $d1a3 defb $00,$00,$00,$00,$00,$00,$00,$00 @label=a_acg_door $d1ab defb $08,$05 $d1ad defb $ff,$47,$43,$43,$43,$43,$47,$ff $d1b5 defb $ff,$47,$43,$43,$43,$43,$47,$ff $d1bd defb $47,$47,$43,$43,$43,$43,$47,$47 $d1c5 defb $47,$47,$43,$43,$43,$43,$47,$47 $d1cd defb $46,$46,$46,$46,$46,$46,$46,$46 @label=g_acg_key1 $d1d5 defb $0b $d1d6 defb $0c,$ce $d1d8 defb $0c,$df $d1da defb $0f,$d8 $d1dc defb $0f,$d8 $d1de defb $0c,$d8 $d1e0 defb $0c,$df $d1e2 defb $07,$fe $d1e4 defb $3f,$ff $d1e6 defb $5f,$ff $d1e8 defb $40,$00 $d1ea defb $3f,$ff @label=g_acg_key2 $d1ec defb $0f $d1ed defb $3c,$00 $d1ef defb $7e,$00 $d1f1 defb $66,$00 $d1f3 defb $6e,$01 $d1f5 defb $60,$01 $d1f7 defb $7e,$03 $d1f9 defb $3c,$0f $d1fb defb $ff,$f0 $d1fd defb $ff,$ff $d1ff defb $00,$0f $d201 defb $ff,$f0 $d203 defb $00,$0f $d205 defb $00,$03 $d207 defb $00,$01 $d209 defb $00,$01 @label=g_acg_key3 $d20b defb $13 $d20c defb $1c,$00 $d20e defb $7f,$00 $d210 defb $7f,$00 $d212 defb $c3,$80 $d214 defb $c3,$c0 $d216 defb $81,$dc $d218 defb $81,$66 $d21a defb $1b,$42 $d21c defb $9f,$73 $d21e defb $c7,$b1 $d220 defb $c7,$b1 $d222 defb $9f,$73 $d224 defb $1b,$42 $d226 defb $81,$66 $d228 defb $81,$bc $d22a defb $c3,$80 $d22c defb $f8,$80 $d22e defb $7f,$00 $d230 defb $1c,$00 @label=g_mushroom $d232 defb $10 $d233 defb $00,$70 $d235 defb $00,$fc $d237 defb $00,$7e $d239 defb $00,$7e $d23b defb $00,$fc $d23d defb $00,$fc $d23f defb $7e,$3c $d241 defb $cf,$c8 $d243 defb $6f,$f0 $d245 defb $ff,$3c $d247 defb $7f,$3e $d249 defb $77,$f3 $d24b defb $33,$f3 $d24d defb $1f,$9e $d24f defb $0f,$fc $d251 defb $03,$f0 @label=g_pumpkin_picture $d253 defb $04,$10 $d255 defb $01,$ff,$ff,$80 $d259 defb $01,$ff,$ff,$80 $d25d defb $01,$80,$01,$80 $d261 defb $01,$87,$e1,$80 $d265 defb $03,$8d,$31,$c0 $d269 defb $03,$18,$98,$c0 $d26d defb $03,$13,$c8,$c0 $d271 defb $03,$16,$68,$c0 $d275 defb $07,$1f,$f8,$e0 $d279 defb $06,$19,$98,$60 $d27d defb $06,$19,$98,$60 $d281 defb $06,$0f,$f0,$60 $d285 defb $0e,$00,$00,$70 $d289 defb $0c,$00,$00,$30 $d28d defb $0f,$ff,$ff,$f0 $d291 defb $0f,$ff,$ff,$f0 @label=a_pumpkin_picture $d295 defb $04,$02 $d297 defb $46,$46,$46,$46 $d29b defb $46,$46,$46,$46 @label=g_spanner $d29f defb $10 $d2a0 defb $20,$00 $d2a2 defb $70,$00 $d2a4 defb $78,$00 $d2a6 defb $3c,$00 $d2a8 defb $1e,$00 $d2aa defb $0f,$00 $d2ac defb $07,$80 $d2ae defb $03,$c0 $d2b0 defb $01,$e0 $d2b2 defb $00,$f8 $d2b4 defb $00,$7e $d2b6 defb $00,$7f $d2b8 defb $00,$7f $d2ba defb $00,$63 $d2bc defb $00,$63 $d2be defb $00,$22 @label=g_ghostlet1 $d2c0 defb $0b $d2c1 defb $09,$10 $d2c3 defb $dd,$b9 $d2c5 defb $ff,$ff $d2c7 defb $7f,$ff $d2c9 defb $3f,$fe $d2cb defb $1c,$9c $d2cd defb $0a,$2c $d2cf defb $0b,$6c $d2d1 defb $0c,$98 $d2d3 defb $07,$f0 $d2d5 defb $01,$e0 @label=g_ghostlet2 $d2d7 defb $0b $d2d8 defb $00,$00 $d2da defb $00,$00 $d2dc defb $01,$01 $d2de defb $d7,$d7 $d2e0 defb $ff,$ff $d2e2 defb $f9,$3e $d2e4 defb $74,$5c $d2e6 defb $36,$d8 $d2e8 defb $19,$30 $d2ea defb $0f,$e0 $d2ec defb $03,$c0 @label=g_skeleton $d2ee defb $05,$28 $d2f0 defb $00,$00,$00,$00,$00 $d2f5 defb $00,$00,$00,$00,$00 $d2fa defb $00,$00,$00,$00,$00 $d2ff defb $00,$00,$00,$00,$00 $d304 defb $00,$00,$00,$00,$00 $d309 defb $00,$00,$00,$00,$00 $d30e defb $00,$00,$00,$00,$00 $d313 defb $00,$00,$60,$00,$00 $d318 defb $00,$e0,$78,$00,$00 $d31d defb $00,$fc,$ec,$40,$00 $d322 defb $00,$6e,$c6,$70,$00 $d327 defb $00,$c1,$c3,$60,$00 $d32c defb $00,$c6,$a1,$c0,$00 $d331 defb $00,$bf,$30,$80,$00 $d336 defb $00,$7c,$1c,$00,$00 $d33b defb $00,$6b,$9f,$00,$00 $d340 defb $ff,$50,$4e,$ff,$00 $d345 defb $00,$24,$e1,$00,$00 $d34a defb $00,$28,$10,$00,$00 $d34f defb $00,$12,$60,$00,$00 $d354 defb $00,$14,$30,$00,$00 $d359 defb $00,$14,$18,$00,$00 $d35e defb $00,$14,$46,$00,$00 $d363 defb $00,$0c,$99,$00,$00 $d368 defb $00,$02,$ae,$e0,$00 $d36d defb $00,$06,$7b,$60,$00 $d372 defb $50,$0c,$e7,$30,$00 $d377 defb $27,$18,$87,$18,$50 $d37c defb $17,$78,$ff,$0b,$98 $d381 defb $07,$00,$7e,$03,$b0 $d386 defb $05,$00,$3c,$03,$80 $d38b defb $05,$00,$00,$00,$e0 $d390 defb $0b,$00,$00,$00,$40 $d395 defb $14,$00,$00,$00,$f0 $d39a defb $14,$00,$00,$00,$28 $d39f defb $68,$00,$00,$00,$2e $d3a4 defb $f0,$00,$00,$00,$1f $d3a9 defb $b8,$00,$00,$00,$1b $d3ae defb $f8,$00,$00,$00,$1f $d3b3 defb $70,$00,$00,$00,$0e @label=a_skeleton $d3b8 defb $05,$05 $d3ba defb $ff,$ff,$ff,$ff,$ff $d3bf defb $ff,$47,$47,$47,$ff $d3c4 defb $ff,$47,$47,$ff,$ff $d3c9 defb $47,$47,$47,$47,$47 $d3ce defb $47,$ff,$ff,$ff,$47 @label=g_hunchback1 $d3d3 defb $18 $d3d4 defb $00,$3c $d3d6 defb $3c,$38 $d3d8 defb $1c,$00 $d3da defb $00,$38 $d3dc defb $0e,$38 $d3de defb $0e,$38 $d3e0 defb $0f,$38 $d3e2 defb $67,$f8 $d3e4 defb $03,$f8 $d3e6 defb $60,$00 $d3e8 defb $77,$f8 $d3ea defb $37,$38 $d3ec defb $37,$78 $d3ee defb $43,$9c $d3f0 defb $1d,$8c $d3f2 defb $06,$c2 $d3f4 defb $7b,$62 $d3f6 defb $7f,$72 $d3f8 defb $53,$62 $d3fa defb $73,$44 $d3fc defb $3e,$cc $d3fe defb $1e,$f8 $d400 defb $05,$f0 $d402 defb $03,$e0 @label=g_hunchback2 $d404 defb $18 $d405 defb $0f,$3c $d407 defb $07,$38 $d409 defb $00,$00 $d40b defb $07,$38 $d40d defb $07,$38 $d40f defb $07,$38 $d411 defb $07,$38 $d413 defb $37,$f8 $d415 defb $07,$f8 $d417 defb $30,$00 $d419 defb $27,$f8 $d41b defb $26,$78 $d41d defb $26,$f8 $d41f defb $03,$9c $d421 defb $1d,$8c $d423 defb $06,$cc $d425 defb $7b,$66 $d427 defb $7f,$66 $d429 defb $53,$66 $d42b defb $73,$4c $d42d defb $3e,$cc $d42f defb $1e,$f8 $d431 defb $05,$f0 $d433 defb $03,$e0 @label=g_hunchback3 $d435 defb $18 $d436 defb $0f,$00 $d438 defb $07,$3c $d43a defb $00,$38 $d43c defb $07,$00 $d43e defb $07,$38 $d440 defb $07,$3c $d442 defb $07,$3c $d444 defb $67,$f8 $d446 defb $07,$f8 $d448 defb $60,$00 $d44a defb $77,$f8 $d44c defb $37,$38 $d44e defb $37,$38 $d450 defb $43,$9c $d452 defb $1d,$8c $d454 defb $06,$c2 $d456 defb $7b,$62 $d458 defb $7f,$72 $d45a defb $53,$62 $d45c defb $73,$44 $d45e defb $3e,$cc $d460 defb $1e,$f8 $d462 defb $05,$f0 $d464 defb $03,$e0 @label=g_barrel_stack $d466 defb $05,$1b $d468 defb $03,$c0,$3c,$03,$c0 $d46d defb $0f,$f0,$ff,$0f,$f0 $d472 defb $1f,$f9,$ff,$9f,$f8 $d477 defb $1f,$f9,$ff,$9f,$f8 $d47c defb $2f,$f6,$ff,$6f,$f4 $d481 defb $43,$c0,$3c,$03,$c4 $d486 defb $30,$0f,$00,$f0,$0c $d48b defb $2c,$3f,$c3,$fc,$34 $d490 defb $23,$7f,$e7,$fe,$c4 $d495 defb $30,$7f,$e7,$fe,$0c $d49a defb $2c,$bf,$db,$fc,$34 $d49f defb $13,$8f,$00,$f1,$c8 $d4a4 defb $10,$c0,$3c,$03,$08 $d4a9 defb $0c,$b0,$ff,$0d,$30 $d4ae defb $03,$8d,$ff,$b1,$c0 $d4b3 defb $00,$c1,$ff,$83,$00 $d4b8 defb $00,$d2,$ff,$4b,$00 $d4bd defb $00,$4e,$3c,$72,$00 $d4c2 defb $00,$43,$00,$c2,$00 $d4c7 defb $00,$32,$c3,$4c,$00 $d4cc defb $00,$0e,$3c,$70,$00 $d4d1 defb $00,$03,$00,$c0,$00 $d4d6 defb $00,$02,$c3,$40,$00 $d4db defb $00,$01,$3c,$80,$00 $d4e0 defb $00,$01,$00,$80,$00 $d4e5 defb $00,$00,$c3,$00,$00 $d4ea defb $00,$00,$3c,$00,$00 @label=a_barrel_stack $d4ef defb $05,$04 $d4f1 defb $43,$43,$43,$43,$43 $d4f6 defb $43,$43,$43,$43,$43 $d4fb defb $43,$43,$43,$43,$43 $d500 defb $43,$43,$43,$43,$43 ; instruction moved from printer buffer (5B80) in original code @label=jp_hl @ssub=jp (hl) c$d505 nop ; i$d506 ; Note: data below must be aligned to 16-byte boundary ; Data block at ea90 @label=player b$ea90 defb $00 ; Data block at ea91 @label=player_room b$ea91 defb $00 ; Data block at ea92 @label=player_contact b$ea92 defb $00 ; Data block at ea93 @label=player_x b$ea93 defb $00 ; Data block at ea94 @label=player_y b$ea94 defb $00 ; Data block at ea95 @label=player_attr b$ea95 defb $00 ; Data block at ea96 @label=player_steps_x b$ea96 defb $00 ; Data block at ea97 @label=player_steps_y b$ea97 defb $00 ; Data block at ea98 @label=weapon b$ea98 defb $00,$00,$00,$00,$00,$00,$00,$00 ; Data block at eaa0 @label=sound b$eaa0 defb $00,$00,$00,$00,$00,$00,$00,$00 ; Data block at eaa8 @label=acg_key_1 b$eaa8 defb $00,$00,$00,$00,$00,$00,$00,$00 ; Data block at eab0 @label=acg_key_2 b$eab0 defb $00,$00,$00,$00,$00,$00,$00,$00 ; Data block at eab8 @label=acg_key_3 b$eab8 defb $00,$00,$00,$00,$00,$00,$00,$00 ; Data block at eac0 @label=green_key b$eac0 defb $00,$00,$00,$00,$00,$00,$00,$00 ; Data block at eac8 @label=red_key b$eac8 defb $00,$00,$00,$00,$00,$00,$00,$00 ; Data block at ead0 @label=cyan_key b$ead0 defb $00,$00,$00,$00,$00,$00,$00,$00 ; Data block at ead8 @label=yellow_key b$ead8 defb $00,$00,$00,$00,$00,$00,$00,$00 ; Data block at eae0 @label=leaf b$eae0 defb $00,$00,$00,$00,$00,$00,$00,$00 ; Data block at eae8 @label=tombstone1 b$eae8 defb $00,$00,$00,$00,$00,$00,$00,$00 ; Data block at eaf0 @label=tombstone2 b$eaf0 defb $00,$00,$00,$00,$00,$00,$00,$00 ; Data block at eaf8 @label=tombstone3 b$eaf8 defb $00,$00,$00,$00,$00,$00,$00,$00 ; Data block at eb00 @label=tombstone4 b$eb00 defb $00,$00,$00,$00,$00,$00,$00,$00 ; Data block at eb08 @label=crucafix b$eb08 defb $00,$00,$00,$00,$00,$00,$00,$00 ; Data block at eb10 @label=spanner b$eb10 defb $00,$00,$00,$00,$00,$00,$00,$00 ; Data block at eb18 @label=wine b$eb18 defb $00,$00,$00,$00,$00,$00,$00,$00 ; Data block at eb20 @label=coin b$eb20 defb $00,$00,$00,$00,$00,$00,$00,$00 ; Data block at eb28 @label=wing b$eb28 defb $00,$00,$00,$00,$00,$00,$00,$00 ; Data block at eb30 @label=whip b$eb30 defb $00,$00,$00,$00,$00,$00,$00,$00 ; Data block at eb38 @label=frogsleg b$eb38 defb $00,$00,$00,$00,$00,$00,$00,$00 ; Data block at eb40 @label=jewel b$eb40 defb $00,$00,$00,$00,$00,$00,$00,$00 ; Data block at eb48 @label=moneybag b$eb48 defb $00,$00,$00,$00,$00,$00,$00,$00 ; Data block at eb50 @label=skull b$eb50 defb $00,$00,$00,$00,$00,$00,$00,$00 ; Data block at eb58 @label=food_items b$eb58 defb $00,$00,$00,$00,$00,$00,$00,$00 $eb60 defb $00,$00,$00,$00,$00,$00,$00,$00 $eb68 defb $00,$00,$00,$00,$00,$00,$00,$00 $eb70 defb $00,$00,$00,$00,$00,$00,$00,$00 $eb78 defb $00,$00,$00,$00,$00,$00,$00,$00 $eb80 defb $00,$00,$00,$00,$00,$00,$00,$00 $eb88 defb $00,$00,$00,$00,$00,$00,$00,$00 $eb90 defb $00,$00,$00,$00,$00,$00,$00,$00 $eb98 defb $00,$00,$00,$00,$00,$00,$00,$00 $eba0 defb $00,$00,$00,$00,$00,$00,$00,$00 $eba8 defb $00,$00,$00,$00,$00,$00,$00,$00 $ebb0 defb $00,$00,$00,$00,$00,$00,$00,$00 $ebb8 defb $00,$00,$00,$00,$00,$00,$00,$00 $ebc0 defb $00,$00,$00,$00,$00,$00,$00,$00 $ebc8 defb $00,$00,$00,$00,$00,$00,$00,$00 $ebd0 defb $00,$00,$00,$00,$00,$00,$00,$00 $ebd8 defb $00,$00,$00,$00,$00,$00,$00,$00 $ebe0 defb $00,$00,$00,$00,$00,$00,$00,$00 $ebe8 defb $00,$00,$00,$00,$00,$00,$00,$00 $ebf0 defb $00,$00,$00,$00,$00,$00,$00,$00 $ebf8 defb $00,$00,$00,$00,$00,$00,$00,$00 $ec00 defb $00,$00,$00,$00,$00,$00,$00,$00 $ec08 defb $00,$00,$00,$00,$00,$00,$00,$00 $ec10 defb $00,$00,$00,$00,$00,$00,$00,$00 $ec18 defb $00,$00,$00,$00,$00,$00,$00,$00 $ec20 defb $00,$00,$00,$00,$00,$00,$00,$00 $ec28 defb $00,$00,$00,$00,$00,$00,$00,$00 $ec30 defb $00,$00,$00,$00,$00,$00,$00,$00 $ec38 defb $00,$00,$00,$00,$00,$00,$00,$00 $ec40 defb $00,$00,$00,$00,$00,$00,$00,$00 $ec48 defb $00,$00,$00,$00,$00,$00,$00,$00 $ec50 defb $00,$00,$00,$00,$00,$00,$00,$00 $ec58 defb $00,$00,$00,$00,$00,$00,$00,$00 $ec60 defb $00,$00,$00,$00,$00,$00,$00,$00 $ec68 defb $00,$00,$00,$00,$00,$00,$00,$00 $ec70 defb $00,$00,$00,$00,$00,$00,$00,$00 $ec78 defb $00,$00,$00,$00,$00,$00,$00,$00 $ec80 defb $00,$00,$00,$00,$00,$00,$00,$00 $ec88 defb $00,$00,$00,$00,$00,$00,$00,$00 $ec90 defb $00,$00,$00,$00,$00,$00,$00,$00 $ec98 defb $00,$00,$00,$00,$00,$00,$00,$00 $eca0 defb $00,$00,$00,$00,$00,$00,$00,$00 $eca8 defb $00,$00,$00,$00,$00,$00,$00,$00 $ecb0 defb $00,$00,$00,$00,$00,$00,$00,$00 $ecb8 defb $00,$00,$00,$00,$00,$00,$00,$00 $ecc0 defb $00,$00,$00,$00,$00,$00,$00,$00 $ecc8 defb $00,$00,$00,$00,$00,$00,$00,$00 $ecd0 defb $00,$00,$00,$00,$00,$00,$00,$00 $ecd8 defb $00,$00,$00,$00,$00,$00,$00,$00 $ece0 defb $00,$00,$00,$00,$00,$00,$00,$00 $ece8 defb $00,$00,$00,$00,$00,$00,$00,$00 $ecf0 defb $00,$00,$00,$00,$00,$00,$00,$00 $ecf8 defb $00,$00,$00,$00,$00,$00,$00,$00 $ed00 defb $00,$00,$00,$00,$00,$00,$00,$00 $ed08 defb $00,$00,$00,$00,$00,$00,$00,$00 $ed10 defb $00,$00,$00,$00,$00,$00,$00,$00 $ed18 defb $00,$00,$00,$00,$00,$00,$00,$00 $ed20 defb $00,$00,$00,$00,$00,$00,$00,$00 $ed28 defb $00,$00,$00,$00,$00,$00,$00,$00 $ed30 defb $00,$00,$00,$00,$00,$00,$00,$00 $ed38 defb $00,$00,$00,$00,$00,$00,$00,$00 $ed40 defb $00,$00,$00,$00,$00,$00,$00,$00 $ed48 defb $00,$00,$00,$00,$00,$00,$00,$00 $ed50 defb $00,$00,$00,$00,$00,$00,$00,$00 $ed58 defb $00,$00,$00,$00,$00,$00,$00,$00 $ed60 defb $00,$00,$00,$00,$00,$00,$00,$00 $ed68 defb $00,$00,$00,$00,$00,$00,$00,$00 $ed70 defb $00,$00,$00,$00,$00,$00,$00,$00 $ed78 defb $00,$00,$00,$00,$00,$00,$00,$00 $ed80 defb $00,$00,$00,$00,$00,$00,$00,$00 $ed88 defb $00,$00,$00,$00,$00,$00,$00,$00 $ed90 defb $00,$00,$00,$00,$00,$00,$00,$00 $ed98 defb $00,$00,$00,$00,$00,$00,$00,$00 $eda0 defb $00,$00,$00,$00,$00,$00,$00,$00 $eda8 defb $00,$00,$00,$00,$00,$00,$00,$00 $edb0 defb $00,$00,$00,$00,$00,$00,$00,$00 $edb8 defb $00,$00,$00,$00,$00,$00,$00,$00 $edc0 defb $00,$00,$00,$00,$00,$00,$00,$00 $edc8 defb $00,$00,$00,$00,$00,$00,$00,$00 $edd0 defb $00,$00,$00,$00,$00,$00,$00,$00 ; Data block at edd8 @label=food_end b$edd8 defb $00,$00,$00,$00,$00,$00,$00,$00 $ede0 defb $00,$00,$00,$00,$00,$00,$00,$00 $ede8 defb $00,$00,$00,$00,$00,$00,$00,$00 $edf0 defb $00,$00,$00,$00,$00,$00,$00,$00 $edf8 defb $00,$00,$00,$00,$00,$00,$00,$00 $ee00 defb $00,$00,$00,$00,$00,$00,$00,$00 $ee08 defb $00,$00,$00,$00,$00,$00,$00,$00 $ee10 defb $00,$00,$00,$00,$00,$00,$00,$00 $ee18 defb $00,$00,$00,$00,$00,$00,$00,$00 $ee20 defb $00,$00,$00,$00,$00,$00,$00,$00 $ee28 defb $00,$00,$00,$00,$00,$00,$00,$00 $ee30 defb $00,$00,$00,$00,$00,$00,$00,$00 $ee38 defb $00,$00,$00,$00,$00,$00,$00,$00 $ee40 defb $00,$00,$00,$00,$00,$00,$00,$00 $ee48 defb $00,$00,$00,$00,$00,$00,$00,$00 $ee50 defb $00,$00,$00,$00,$00,$00,$00,$00 ; Data block at ee58 @label=some_room b$ee58 defb $00,$00,$00,$00,$00,$00,$00,$00 ; Data block at ee60 @label=creature1 b$ee60 defb $00,$00,$00,$00,$00,$00,$00,$00 $ee68 defb $00,$00,$00,$00,$00,$00,$00,$00 ; Data block at ee70 @label=creature2 b$ee70 defb $00,$00,$00,$00,$00,$00,$00,$00 $ee78 defb $00,$00,$00,$00,$00,$00,$00,$00 ; Data block at ee80 @label=creature3 b$ee80 defb $00,$00,$00,$00,$00,$00,$00,$00 $ee88 defb $00,$00,$00,$00,$00,$00,$00,$00 ; Data block at ee90 @label=mummy b$ee90 defb $00,$00,$00,$00,$00,$00,$00,$00 $ee98 defb $00,$00,$00,$00,$00,$00,$00,$00 ; Data block at eea0 @label=dracula b$eea0 defb $00,$00,$00,$00,$00,$00,$00,$00 $eea8 defb $00,$00,$00,$00,$00,$00,$00,$00 ; Data block at eeb0 @label=devil b$eeb0 defb $00,$00,$00,$00,$00,$00,$00,$00 $eeb8 defb $00,$00,$00,$00,$00,$00,$00,$00 ; Data block at eec0 @label=frankenstein b$eec0 defb $00,$00,$00,$00,$00,$00,$00,$00 $eec8 defb $00,$00,$00,$00,$00,$00,$00,$00 ; Data block at eed0 @label=hunchback b$eed0 defb $00,$00,$00,$00,$00,$00,$00,$00 $eed8 defb $00,$00,$00,$00,$00,$00,$00,$00 ; Data block at eee0 @label=linked_items b$eee0 defb $00,$00,$00,$00,$00,$00,$00,$00 $eee8 defb $00,$00,$00,$00,$00,$00,$00,$00 $eef0 defb $00,$00,$00,$00,$00,$00,$00,$00 $eef8 defb $00,$00,$00,$00,$00,$00,$00,$00 $ef00 defb $00,$00,$00,$00,$00,$00,$00,$00 $ef08 defb $00,$00,$00,$00,$00,$00,$00,$00 $ef10 defb $00,$00,$00,$00,$00,$00,$00,$00 $ef18 defb $00,$00,$00,$00,$00,$00,$00,$00 $ef20 defb $00,$00,$00,$00,$00,$00,$00,$00 $ef28 defb $00,$00,$00,$00,$00,$00,$00,$00 $ef30 defb $00,$00,$00,$00,$00,$00,$00,$00 $ef38 defb $00,$00,$00,$00,$00,$00,$00,$00 $ef40 defb $00,$00,$00,$00,$00,$00,$00,$00 $ef48 defb $00,$00,$00,$00,$00,$00,$00,$00 $ef50 defb $00,$00,$00,$00,$00,$00,$00,$00 $ef58 defb $00,$00,$00,$00,$00,$00,$00,$00 $ef60 defb $00,$00,$00,$00,$00,$00,$00,$00 $ef68 defb $00,$00,$00,$00,$00,$00,$00,$00 $ef70 defb $00,$00,$00,$00,$00,$00,$00,$00 $ef78 defb $00,$00,$00,$00,$00,$00,$00,$00 $ef80 defb $00,$00,$00,$00,$00,$00,$00,$00 $ef88 defb $00,$00,$00,$00,$00,$00,$00,$00 $ef90 defb $00,$00,$00,$00,$00,$00,$00,$00 $ef98 defb $00,$00,$00,$00,$00,$00,$00,$00 $efa0 defb $00,$00,$00,$00,$00,$00,$00,$00 $efa8 defb $00,$00,$00,$00,$00,$00,$00,$00 $efb0 defb $00,$00,$00,$00,$00,$00,$00,$00 $efb8 defb $00,$00,$00,$00,$00,$00,$00,$00 $efc0 defb $00,$00,$00,$00,$00,$00,$00,$00 $efc8 defb $00,$00,$00,$00,$00,$00,$00,$00 $efd0 defb $00,$00,$00,$00,$00,$00,$00,$00 $efd8 defb $00,$00,$00,$00,$00,$00,$00,$00 $efe0 defb $00,$00,$00,$00,$00,$00,$00,$00 $efe8 defb $00,$00,$00,$00,$00,$00,$00,$00 $eff0 defb $00,$00,$00,$00,$00,$00,$00,$00 $eff8 defb $00,$00,$00,$00,$00,$00,$00,$00 $f000 defb $00,$00,$00,$00,$00,$00,$00,$00 $f008 defb $00,$00,$00,$00,$00,$00,$00,$00 $f010 defb $00,$00,$00,$00,$00,$00,$00,$00 $f018 defb $00,$00,$00,$00,$00,$00,$00,$00 $f020 defb $00,$00,$00,$00,$00,$00,$00,$00 $f028 defb $00,$00,$00,$00,$00,$00,$00,$00 $f030 defb $00,$00,$00,$00,$00,$00,$00,$00 $f038 defb $00,$00,$00,$00,$00,$00,$00,$00 $f040 defb $00,$00,$00,$00,$00,$00,$00,$00 $f048 defb $00,$00,$00,$00,$00,$00,$00,$00 $f050 defb $00,$00,$00,$00,$00,$00,$00,$00 $f058 defb $00,$00,$00,$00,$00,$00,$00,$00 $f060 defb $00,$00,$00,$00,$00,$00,$00,$00 $f068 defb $00,$00,$00,$00,$00,$00,$00,$00 $f070 defb $00,$00,$00,$00,$00,$00,$00,$00 $f078 defb $00,$00,$00,$00,$00,$00,$00,$00 $f080 defb $00,$00,$00,$00,$00,$00,$00,$00 $f088 defb $00,$00,$00,$00,$00,$00,$00,$00 $f090 defb $00,$00,$00,$00,$00,$00,$00,$00 $f098 defb $00,$00,$00,$00,$00,$00,$00,$00 $f0a0 defb $00,$00,$00,$00,$00,$00,$00,$00 $f0a8 defb $00,$00,$00,$00,$00,$00,$00,$00 $f0b0 defb $00,$00,$00,$00,$00,$00,$00,$00 $f0b8 defb $00,$00,$00,$00,$00,$00,$00,$00 $f0c0 defb $00,$00,$00,$00,$00,$00,$00,$00 $f0c8 defb $00,$00,$00,$00,$00,$00,$00,$00 $f0d0 defb $00,$00,$00,$00,$00,$00,$00,$00 $f0d8 defb $00,$00,$00,$00,$00,$00,$00,$00 $f0e0 defb $00,$00,$00,$00,$00,$00,$00,$00 $f0e8 defb $00,$00,$00,$00,$00,$00,$00,$00 $f0f0 defb $00,$00,$00,$00,$00,$00,$00,$00 $f0f8 defb $00,$00,$00,$00,$00,$00,$00,$00 $f100 defb $00,$00,$00,$00,$00,$00,$00,$00 $f108 defb $00,$00,$00,$00,$00,$00,$00,$00 $f110 defb $00,$00,$00,$00,$00,$00,$00,$00 $f118 defb $00,$00,$00,$00,$00,$00,$00,$00 $f120 defb $00,$00,$00,$00,$00,$00,$00,$00 $f128 defb $00,$00,$00,$00,$00,$00,$00,$00 $f130 defb $00,$00,$00,$00,$00,$00,$00,$00 $f138 defb $00,$00,$00,$00,$00,$00,$00,$00 $f140 defb $00,$00,$00,$00,$00,$00,$00,$00 $f148 defb $00,$00,$00,$00,$00,$00,$00,$00 $f150 defb $00,$00,$00,$00,$00,$00,$00,$00 $f158 defb $00,$00,$00,$00,$00,$00,$00,$00 $f160 defb $00,$00,$00,$00,$00,$00,$00,$00 $f168 defb $00,$00,$00,$00,$00,$00,$00,$00 $f170 defb $00,$00,$00,$00,$00,$00,$00,$00 $f178 defb $00,$00,$00,$00,$00,$00,$00,$00 $f180 defb $00,$00,$00,$00,$00,$00,$00,$00 $f188 defb $00,$00,$00,$00,$00,$00,$00,$00 $f190 defb $00,$00,$00,$00,$00,$00,$00,$00 $f198 defb $00,$00,$00,$00,$00,$00,$00,$00 $f1a0 defb $00,$00,$00,$00,$00,$00,$00,$00 $f1a8 defb $00,$00,$00,$00,$00,$00,$00,$00 $f1b0 defb $00,$00,$00,$00,$00,$00,$00,$00 $f1b8 defb $00,$00,$00,$00,$00,$00,$00,$00 $f1c0 defb $00,$00,$00,$00,$00,$00,$00,$00 $f1c8 defb $00,$00,$00,$00,$00,$00,$00,$00 $f1d0 defb $00,$00,$00,$00,$00,$00,$00,$00 $f1d8 defb $00,$00,$00,$00,$00,$00,$00,$00 $f1e0 defb $00,$00,$00,$00,$00,$00,$00,$00 $f1e8 defb $00,$00,$00,$00,$00,$00,$00,$00 $f1f0 defb $00,$00,$00,$00,$00,$00,$00,$00 $f1f8 defb $00,$00,$00,$00,$00,$00,$00,$00 $f200 defb $00,$00,$00,$00,$00,$00,$00,$00 $f208 defb $00,$00,$00,$00,$00,$00,$00,$00 $f210 defb $00,$00,$00,$00,$00,$00,$00,$00 $f218 defb $00,$00,$00,$00,$00,$00,$00,$00 $f220 defb $00,$00,$00,$00,$00,$00,$00,$00 $f228 defb $00,$00,$00,$00,$00,$00,$00,$00 $f230 defb $00,$00,$00,$00,$00,$00,$00,$00 $f238 defb $00,$00,$00,$00,$00,$00,$00,$00 $f240 defb $00,$00,$00,$00,$00,$00,$00,$00 $f248 defb $00,$00,$00,$00,$00,$00,$00,$00 $f250 defb $00,$00,$00,$00,$00,$00,$00,$00 $f258 defb $00,$00,$00,$00,$00,$00,$00,$00 $f260 defb $00,$00,$00,$00,$00,$00,$00,$00 $f268 defb $00,$00,$00,$00,$00,$00,$00,$00 $f270 defb $00,$00,$00,$00,$00,$00,$00,$00 $f278 defb $00,$00,$00,$00,$00,$00,$00,$00 $f280 defb $00,$00,$00,$00,$00,$00,$00,$00 $f288 defb $00,$00,$00,$00,$00,$00,$00,$00 $f290 defb $00,$00,$00,$00,$00,$00,$00,$00 $f298 defb $00,$00,$00,$00,$00,$00,$00,$00 $f2a0 defb $00,$00,$00,$00,$00,$00,$00,$00 $f2a8 defb $00,$00,$00,$00,$00,$00,$00,$00 $f2b0 defb $00,$00,$00,$00,$00,$00,$00,$00 $f2b8 defb $00,$00,$00,$00,$00,$00,$00,$00 $f2c0 defb $00,$00,$00,$00,$00,$00,$00,$00 $f2c8 defb $00,$00,$00,$00,$00,$00,$00,$00 $f2d0 defb $00,$00,$00,$00,$00,$00,$00,$00 $f2d8 defb $00,$00,$00,$00,$00,$00,$00,$00 $f2e0 defb $00,$00,$00,$00,$00,$00,$00,$00 $f2e8 defb $00,$00,$00,$00,$00,$00,$00,$00 $f2f0 defb $00,$00,$00,$00,$00,$00,$00,$00 $f2f8 defb $00,$00,$00,$00,$00,$00,$00,$00 $f300 defb $00,$00,$00,$00,$00,$00,$00,$00 $f308 defb $00,$00,$00,$00,$00,$00,$00,$00 $f310 defb $00,$00,$00,$00,$00,$00,$00,$00 $f318 defb $00,$00,$00,$00,$00,$00,$00,$00 $f320 defb $00,$00,$00,$00,$00,$00,$00,$00 $f328 defb $00,$00,$00,$00,$00,$00,$00,$00 $f330 defb $00,$00,$00,$00,$00,$00,$00,$00 $f338 defb $00,$00,$00,$00,$00,$00,$00,$00 $f340 defb $00,$00,$00,$00,$00,$00,$00,$00 $f348 defb $00,$00,$00,$00,$00,$00,$00,$00 $f350 defb $00,$00,$00,$00,$00,$00,$00,$00 $f358 defb $00,$00,$00,$00,$00,$00,$00,$00 $f360 defb $00,$00,$00,$00,$00,$00,$00,$00 $f368 defb $00,$00,$00,$00,$00,$00,$00,$00 $f370 defb $00,$00,$00,$00,$00,$00,$00,$00 $f378 defb $00,$00,$00,$00,$00,$00,$00,$00 $f380 defb $00,$00,$00,$00,$00,$00,$00,$00 $f388 defb $00,$00,$00,$00,$00,$00,$00,$00 $f390 defb $00,$00,$00,$00,$00,$00,$00,$00 $f398 defb $00,$00,$00,$00,$00,$00,$00,$00 $f3a0 defb $00,$00,$00,$00,$00,$00,$00,$00 $f3a8 defb $00,$00,$00,$00,$00,$00,$00,$00 $f3b0 defb $00,$00,$00,$00,$00,$00,$00,$00 $f3b8 defb $00,$00,$00,$00,$00,$00,$00,$00 $f3c0 defb $00,$00,$00,$00,$00,$00,$00,$00 $f3c8 defb $00,$00,$00,$00,$00,$00,$00,$00 $f3d0 defb $00,$00,$00,$00,$00,$00,$00,$00 $f3d8 defb $00,$00,$00,$00,$00,$00,$00,$00 $f3e0 defb $00,$00,$00,$00,$00,$00,$00,$00 $f3e8 defb $00,$00,$00,$00,$00,$00,$00,$00 $f3f0 defb $00,$00,$00,$00,$00,$00,$00,$00 $f3f8 defb $00,$00,$00,$00,$00,$00,$00,$00 $f400 defb $00,$00,$00,$00,$00,$00,$00,$00 $f408 defb $00,$00,$00,$00,$00,$00,$00,$00 $f410 defb $00,$00,$00,$00,$00,$00,$00,$00 $f418 defb $00,$00,$00,$00,$00,$00,$00,$00 $f420 defb $00,$00,$00,$00,$00,$00,$00,$00 $f428 defb $00,$00,$00,$00,$00,$00,$00,$00 $f430 defb $00,$00,$00,$00,$00,$00,$00,$00 $f438 defb $00,$00,$00,$00,$00,$00,$00,$00 $f440 defb $00,$00,$00,$00,$00,$00,$00,$00 $f448 defb $00,$00,$00,$00,$00,$00,$00,$00 $f450 defb $00,$00,$00,$00,$00,$00,$00,$00 $f458 defb $00,$00,$00,$00,$00,$00,$00,$00 $f460 defb $00,$00,$00,$00,$00,$00,$00,$00 $f468 defb $00,$00,$00,$00,$00,$00,$00,$00 $f470 defb $00,$00,$00,$00,$00,$00,$00,$00 $f478 defb $00,$00,$00,$00,$00,$00,$00,$00 $f480 defb $00,$00,$00,$00,$00,$00,$00,$00 $f488 defb $00,$00,$00,$00,$00,$00,$00,$00 $f490 defb $00,$00,$00,$00,$00,$00,$00,$00 $f498 defb $00,$00,$00,$00,$00,$00,$00,$00 $f4a0 defb $00,$00,$00,$00,$00,$00,$00,$00 $f4a8 defb $00,$00,$00,$00,$00,$00,$00,$00 $f4b0 defb $00,$00,$00,$00,$00,$00,$00,$00 $f4b8 defb $00,$00,$00,$00,$00,$00,$00,$00 $f4c0 defb $00,$00,$00,$00,$00,$00,$00,$00 $f4c8 defb $00,$00,$00,$00,$00,$00,$00,$00 $f4d0 defb $00,$00,$00,$00,$00,$00,$00,$00 $f4d8 defb $00,$00,$00,$00,$00,$00,$00,$00 $f4e0 defb $00,$00,$00,$00,$00,$00,$00,$00 $f4e8 defb $00,$00,$00,$00,$00,$00,$00,$00 $f4f0 defb $00,$00,$00,$00,$00,$00,$00,$00 $f4f8 defb $00,$00,$00,$00,$00,$00,$00,$00 $f500 defb $00,$00,$00,$00,$00,$00,$00,$00 $f508 defb $00,$00,$00,$00,$00,$00,$00,$00 $f510 defb $00,$00,$00,$00,$00,$00,$00,$00 $f518 defb $00,$00,$00,$00,$00,$00,$00,$00 $f520 defb $00,$00,$00,$00,$00,$00,$00,$00 $f528 defb $00,$00,$00,$00,$00,$00,$00,$00 $f530 defb $00,$00,$00,$00,$00,$00,$00,$00 $f538 defb $00,$00,$00,$00,$00,$00,$00,$00 $f540 defb $00,$00,$00,$00,$00,$00,$00,$00 $f548 defb $00,$00,$00,$00,$00,$00,$00,$00 $f550 defb $00,$00,$00,$00,$00,$00,$00,$00 $f558 defb $00,$00,$00,$00,$00,$00,$00,$00 $f560 defb $00,$00,$00,$00,$00,$00,$00,$00 $f568 defb $00,$00,$00,$00,$00,$00,$00,$00 $f570 defb $00,$00,$00,$00,$00,$00,$00,$00 $f578 defb $00,$00,$00,$00,$00,$00,$00,$00 $f580 defb $00,$00,$00,$00,$00,$00,$00,$00 $f588 defb $00,$00,$00,$00,$00,$00,$00,$00 $f590 defb $00,$00,$00,$00,$00,$00,$00,$00 $f598 defb $00,$00,$00,$00,$00,$00,$00,$00 $f5a0 defb $00,$00,$00,$00,$00,$00,$00,$00 $f5a8 defb $00,$00,$00,$00,$00,$00,$00,$00 $f5b0 defb $00,$00,$00,$00,$00,$00,$00,$00 $f5b8 defb $00,$00,$00,$00,$00,$00,$00,$00 $f5c0 defb $00,$00,$00,$00,$00,$00,$00,$00 $f5c8 defb $00,$00,$00,$00,$00,$00,$00,$00 $f5d0 defb $00,$00,$00,$00,$00,$00,$00,$00 $f5d8 defb $00,$00,$00,$00,$00,$00,$00,$00 $f5e0 defb $00,$00,$00,$00,$00,$00,$00,$00 $f5e8 defb $00,$00,$00,$00,$00,$00,$00,$00 $f5f0 defb $00,$00,$00,$00,$00,$00,$00,$00 $f5f8 defb $00,$00,$00,$00,$00,$00,$00,$00 $f600 defb $00,$00,$00,$00,$00,$00,$00,$00 $f608 defb $00,$00,$00,$00,$00,$00,$00,$00 $f610 defb $00,$00,$00,$00,$00,$00,$00,$00 $f618 defb $00,$00,$00,$00,$00,$00,$00,$00 $f620 defb $00,$00,$00,$00,$00,$00,$00,$00 $f628 defb $00,$00,$00,$00,$00,$00,$00,$00 $f630 defb $00,$00,$00,$00,$00,$00,$00,$00 $f638 defb $00,$00,$00,$00,$00,$00,$00,$00 $f640 defb $00,$00,$00,$00,$00,$00,$00,$00 $f648 defb $00,$00,$00,$00,$00,$00,$00,$00 $f650 defb $00,$00,$00,$00,$00,$00,$00,$00 $f658 defb $00,$00,$00,$00,$00,$00,$00,$00 $f660 defb $00,$00,$00,$00,$00,$00,$00,$00 $f668 defb $00,$00,$00,$00,$00,$00,$00,$00 $f670 defb $00,$00,$00,$00,$00,$00,$00,$00 $f678 defb $00,$00,$00,$00,$00,$00,$00,$00 $f680 defb $00,$00,$00,$00,$00,$00,$00,$00 $f688 defb $00,$00,$00,$00,$00,$00,$00,$00 $f690 defb $00,$00,$00,$00,$00,$00,$00,$00 $f698 defb $00,$00,$00,$00,$00,$00,$00,$00 $f6a0 defb $00,$00,$00,$00,$00,$00,$00,$00 $f6a8 defb $00,$00,$00,$00,$00,$00,$00,$00 $f6b0 defb $00,$00,$00,$00,$00,$00,$00,$00 $f6b8 defb $00,$00,$00,$00,$00,$00,$00,$00 $f6c0 defb $00,$00,$00,$00,$00,$00,$00,$00 $f6c8 defb $00,$00,$00,$00,$00,$00,$00,$00 $f6d0 defb $00,$00,$00,$00,$00,$00,$00,$00 $f6d8 defb $00,$00,$00,$00,$00,$00,$00,$00 $f6e0 defb $00,$00,$00,$00,$00,$00,$00,$00 $f6e8 defb $00,$00,$00,$00,$00,$00,$00,$00 $f6f0 defb $00,$00,$00,$00,$00,$00,$00,$00 $f6f8 defb $00,$00,$00,$00,$00,$00,$00,$00 $f700 defb $00,$00,$00,$00,$00,$00,$00,$00 $f708 defb $00,$00,$00,$00,$00,$00,$00,$00 $f710 defb $00,$00,$00,$00,$00,$00,$00,$00 $f718 defb $00,$00,$00,$00,$00,$00,$00,$00 $f720 defb $00,$00,$00,$00,$00,$00,$00,$00 $f728 defb $00,$00,$00,$00,$00,$00,$00,$00 $f730 defb $00,$00,$00,$00,$00,$00,$00,$00 $f738 defb $00,$00,$00,$00,$00,$00,$00,$00 $f740 defb $00,$00,$00,$00,$00,$00,$00,$00 $f748 defb $00,$00,$00,$00,$00,$00,$00,$00 $f750 defb $00,$00,$00,$00,$00,$00,$00,$00 $f758 defb $00,$00,$00,$00,$00,$00,$00,$00 $f760 defb $00,$00,$00,$00,$00,$00,$00,$00 $f768 defb $00,$00,$00,$00,$00,$00,$00,$00 $f770 defb $00,$00,$00,$00,$00,$00,$00,$00 $f778 defb $00,$00,$00,$00,$00,$00,$00,$00 $f780 defb $00,$00,$00,$00,$00,$00,$00,$00 $f788 defb $00,$00,$00,$00,$00,$00,$00,$00 $f790 defb $00,$00,$00,$00,$00,$00,$00,$00 $f798 defb $00,$00,$00,$00,$00,$00,$00,$00 $f7a0 defb $00,$00,$00,$00,$00,$00,$00,$00 $f7a8 defb $00,$00,$00,$00,$00,$00,$00,$00 $f7b0 defb $00,$00,$00,$00,$00,$00,$00,$00 $f7b8 defb $00,$00,$00,$00,$00,$00,$00,$00 $f7c0 defb $00,$00,$00,$00,$00,$00,$00,$00 $f7c8 defb $00,$00,$00,$00,$00,$00,$00,$00 $f7d0 defb $00,$00,$00,$00,$00,$00,$00,$00 $f7d8 defb $00,$00,$00,$00,$00,$00,$00,$00 $f7e0 defb $00,$00,$00,$00,$00,$00,$00,$00 $f7e8 defb $00,$00,$00,$00,$00,$00,$00,$00 $f7f0 defb $00,$00,$00,$00,$00,$00,$00,$00 $f7f8 defb $00,$00,$00,$00,$00,$00,$00,$00 $f800 defb $00,$00,$00,$00,$00,$00,$00,$00 $f808 defb $00,$00,$00,$00,$00,$00,$00,$00 $f810 defb $00,$00,$00,$00,$00,$00,$00,$00 $f818 defb $00,$00,$00,$00,$00,$00,$00,$00 $f820 defb $00,$00,$00,$00,$00,$00,$00,$00 $f828 defb $00,$00,$00,$00,$00,$00,$00,$00 $f830 defb $00,$00,$00,$00,$00,$00,$00,$00 $f838 defb $00,$00,$00,$00,$00,$00,$00,$00 $f840 defb $00,$00,$00,$00,$00,$00,$00,$00 $f848 defb $00,$00,$00,$00,$00,$00,$00,$00 $f850 defb $00,$00,$00,$00,$00,$00,$00,$00 $f858 defb $00,$00,$00,$00,$00,$00,$00,$00 $f860 defb $00,$00,$00,$00,$00,$00,$00,$00 $f868 defb $00,$00,$00,$00,$00,$00,$00,$00 $f870 defb $00,$00,$00,$00,$00,$00,$00,$00 $f878 defb $00,$00,$00,$00,$00,$00,$00,$00 $f880 defb $00,$00,$00,$00,$00,$00,$00,$00 $f888 defb $00,$00,$00,$00,$00,$00,$00,$00 $f890 defb $00,$00,$00,$00,$00,$00,$00,$00 $f898 defb $00,$00,$00,$00,$00,$00,$00,$00 $f8a0 defb $00,$00,$00,$00,$00,$00,$00,$00 $f8a8 defb $00,$00,$00,$00,$00,$00,$00,$00 $f8b0 defb $00,$00,$00,$00,$00,$00,$00,$00 $f8b8 defb $00,$00,$00,$00,$00,$00,$00,$00 $f8c0 defb $00,$00,$00,$00,$00,$00,$00,$00 $f8c8 defb $00,$00,$00,$00,$00,$00,$00,$00 $f8d0 defb $00,$00,$00,$00,$00,$00,$00,$00 $f8d8 defb $00,$00,$00,$00,$00,$00,$00,$00 $f8e0 defb $00,$00,$00,$00,$00,$00,$00,$00 $f8e8 defb $00,$00,$00,$00,$00,$00,$00,$00 $f8f0 defb $00,$00,$00,$00,$00,$00,$00,$00 $f8f8 defb $00,$00,$00,$00,$00,$00,$00,$00 $f900 defb $00,$00,$00,$00,$00,$00,$00,$00 $f908 defb $00,$00,$00,$00,$00,$00,$00,$00 $f910 defb $00,$00,$00,$00,$00,$00,$00,$00 $f918 defb $00,$00,$00,$00,$00,$00,$00,$00 $f920 defb $00,$00,$00,$00,$00,$00,$00,$00 $f928 defb $00,$00,$00,$00,$00,$00,$00,$00 $f930 defb $00,$00,$00,$00,$00,$00,$00,$00 $f938 defb $00,$00,$00,$00,$00,$00,$00,$00 $f940 defb $00,$00,$00,$00,$00,$00,$00,$00 $f948 defb $00,$00,$00,$00,$00,$00,$00,$00 $f950 defb $00,$00,$00,$00,$00,$00,$00,$00 $f958 defb $00,$00,$00,$00,$00,$00,$00,$00 $f960 defb $00,$00,$00,$00,$00,$00,$00,$00 $f968 defb $00,$00,$00,$00,$00,$00,$00,$00 $f970 defb $00,$00,$00,$00,$00,$00,$00,$00 $f978 defb $00,$00,$00,$00,$00,$00,$00,$00 $f980 defb $00,$00,$00,$00,$00,$00,$00,$00 $f988 defb $00,$00,$00,$00,$00,$00,$00,$00 $f990 defb $00,$00,$00,$00,$00,$00,$00,$00 $f998 defb $00,$00,$00,$00,$00,$00,$00,$00 $f9a0 defb $00,$00,$00,$00,$00,$00,$00,$00 $f9a8 defb $00,$00,$00,$00,$00,$00,$00,$00 $f9b0 defb $00,$00,$00,$00,$00,$00,$00,$00 $f9b8 defb $00,$00,$00,$00,$00,$00,$00,$00 $f9c0 defb $00,$00,$00,$00,$00,$00,$00,$00 $f9c8 defb $00,$00,$00,$00,$00,$00,$00,$00 $f9d0 defb $00,$00,$00,$00,$00,$00,$00,$00 $f9d8 defb $00,$00,$00,$00,$00,$00,$00,$00 $f9e0 defb $00,$00,$00,$00,$00,$00,$00,$00 $f9e8 defb $00,$00,$00,$00,$00,$00,$00,$00 $f9f0 defb $00,$00,$00,$00,$00,$00,$00,$00 $f9f8 defb $00,$00,$00,$00,$00,$00,$00,$00 $fa00 defb $00,$00,$00,$00,$00,$00,$00,$00 $fa08 defb $00,$00,$00,$00,$00,$00,$00,$00 $fa10 defb $00,$00,$00,$00,$00,$00,$00,$00 $fa18 defb $00,$00,$00,$00,$00,$00,$00,$00 $fa20 defb $00,$00,$00,$00,$00,$00,$00,$00 $fa28 defb $00,$00,$00,$00,$00,$00,$00,$00 $fa30 defb $00,$00,$00,$00,$00,$00,$00,$00 $fa38 defb $00,$00,$00,$00,$00,$00,$00,$00 $fa40 defb $00,$00,$00,$00,$00,$00,$00,$00 $fa48 defb $00,$00,$00,$00,$00,$00,$00,$00 $fa50 defb $00,$00,$00,$00,$00,$00,$00,$00 $fa58 defb $00,$00,$00,$00,$00,$00,$00,$00 $fa60 defb $00,$00,$00,$00,$00,$00,$00,$00 $fa68 defb $00,$00,$00,$00,$00,$00,$00,$00 $fa70 defb $00,$00,$00,$00,$00,$00,$00,$00 $fa78 defb $00,$00,$00,$00,$00,$00,$00,$00 $fa80 defb $00,$00,$00,$00,$00,$00,$00,$00 $fa88 defb $00,$00,$00,$00,$00,$00,$00,$00 $fa90 defb $00,$00,$00,$00,$00,$00,$00,$00 $fa98 defb $00,$00,$00,$00,$00,$00,$00,$00 $faa0 defb $00,$00,$00,$00,$00,$00,$00,$00 $faa8 defb $00,$00,$00,$00,$00,$00,$00,$00 $fab0 defb $00,$00,$00,$00,$00,$00,$00,$00 $fab8 defb $00,$00,$00,$00,$00,$00,$00,$00 $fac0 defb $00,$00,$00,$00,$00,$00,$00,$00 $fac8 defb $00,$00,$00,$00,$00,$00,$00,$00 $fad0 defb $00,$00,$00,$00,$00,$00,$00,$00 $fad8 defb $00,$00,$00,$00,$00,$00,$00,$00 $fae0 defb $00,$00,$00,$00,$00,$00,$00,$00 $fae8 defb $00,$00,$00,$00,$00,$00,$00,$00 $faf0 defb $00,$00,$00,$00,$00,$00,$00,$00 $faf8 defb $00,$00,$00,$00,$00,$00,$00,$00 $fb00 defb $00,$00,$00,$00,$00,$00,$00,$00 $fb08 defb $00,$00,$00,$00,$00,$00,$00,$00 $fb10 defb $00,$00,$00,$00,$00,$00,$00,$00 $fb18 defb $00,$00,$00,$00,$00,$00,$00,$00 $fb20 defb $00,$00,$00,$00,$00,$00,$00,$00 $fb28 defb $00,$00,$00,$00,$00,$00,$00,$00 $fb30 defb $00,$00,$00,$00,$00,$00,$00,$00 $fb38 defb $00,$00,$00,$00,$00,$00,$00,$00 $fb40 defb $00,$00,$00,$00,$00,$00,$00,$00 $fb48 defb $00,$00,$00,$00,$00,$00,$00,$00 $fb50 defb $00,$00,$00,$00,$00,$00,$00,$00 $fb58 defb $00,$00,$00,$00,$00,$00,$00,$00 $fb60 defb $00,$00,$00,$00,$00,$00,$00,$00 $fb68 defb $00,$00,$00,$00,$00,$00,$00,$00 $fb70 defb $00,$00,$00,$00,$00,$00,$00,$00 $fb78 defb $00,$00,$00,$00,$00,$00,$00,$00 $fb80 defb $00,$00,$00,$00,$00,$00,$00,$00 $fb88 defb $00,$00,$00,$00,$00,$00,$00,$00 $fb90 defb $00,$00,$00,$00,$00,$00,$00,$00 $fb98 defb $00,$00,$00,$00,$00,$00,$00,$00 $fba0 defb $00,$00,$00,$00,$00,$00,$00,$00 $fba8 defb $00,$00,$00,$00,$00,$00,$00,$00 $fbb0 defb $00,$00,$00,$00,$00,$00,$00,$00 $fbb8 defb $00,$00,$00,$00,$00,$00,$00,$00 $fbc0 defb $00,$00,$00,$00,$00,$00,$00,$00 $fbc8 defb $00,$00,$00,$00,$00,$00,$00,$00 $fbd0 defb $00,$00,$00,$00,$00,$00,$00,$00 $fbd8 defb $00,$00,$00,$00,$00,$00,$00,$00 $fbe0 defb $00,$00,$00,$00,$00,$00,$00,$00 $fbe8 defb $00,$00,$00,$00,$00,$00,$00,$00 $fbf0 defb $00,$00,$00,$00,$00,$00,$00,$00 $fbf8 defb $00,$00,$00,$00,$00,$00,$00,$00 $fc00 defb $00,$00,$00,$00,$00,$00,$00,$00 $fc08 defb $00,$00,$00,$00,$00,$00,$00,$00 $fc10 defb $00,$00,$00,$00,$00,$00,$00,$00 $fc18 defb $00,$00,$00,$00,$00,$00,$00,$00 $fc20 defb $00,$00,$00,$00,$00,$00,$00,$00 $fc28 defb $00,$00,$00,$00,$00,$00,$00,$00 $fc30 defb $00,$00,$00,$00,$00,$00,$00,$00 $fc38 defb $00,$00,$00,$00,$00,$00,$00,$00 $fc40 defb $00,$00,$00,$00,$00,$00,$00,$00 $fc48 defb $00,$00,$00,$00,$00,$00,$00,$00 $fc50 defb $00,$00,$00,$00,$00,$00,$00,$00 $fc58 defb $00,$00,$00,$00,$00,$00,$00,$00 $fc60 defb $00,$00,$00,$00,$00,$00,$00,$00 $fc68 defb $00,$00,$00,$00,$00,$00,$00,$00 $fc70 defb $00,$00,$00,$00,$00,$00,$00,$00 $fc78 defb $00,$00,$00,$00,$00,$00,$00,$00 $fc80 defb $00,$00,$00,$00,$00,$00,$00,$00 $fc88 defb $00,$00,$00,$00,$00,$00,$00,$00 $fc90 defb $00,$00,$00,$00,$00,$00,$00,$00 $fc98 defb $00,$00,$00,$00,$00,$00,$00,$00 $fca0 defb $00,$00,$00,$00,$00,$00,$00,$00 $fca8 defb $00,$00,$00,$00,$00,$00,$00,$00 $fcb0 defb $00,$00,$00,$00,$00,$00,$00,$00 $fcb8 defb $00,$00,$00,$00,$00,$00,$00,$00 $fcc0 defb $00,$00,$00,$00,$00,$00,$00,$00 $fcc8 defb $00,$00,$00,$00,$00,$00,$00,$00 $fcd0 defb $00,$00,$00,$00,$00,$00,$00,$00 $fcd8 defb $00,$00,$00,$00,$00,$00,$00,$00 $fce0 defb $00,$00,$00,$00,$00,$00,$00,$00 $fce8 defb $00,$00,$00,$00,$00,$00,$00,$00 $fcf0 defb $00,$00,$00,$00,$00,$00,$00,$00 $fcf8 defb $00,$00,$00,$00,$00,$00,$00,$00 $fd00 defb $00,$00,$00,$00,$00,$00,$00,$00 $fd08 defb $00,$00,$00,$00,$00,$00,$00,$00 $fd10 defb $00,$00,$00,$00,$00,$00,$00,$00 $fd18 defb $00,$00,$00,$00,$00,$00,$00,$00 $fd20 defb $00,$00,$00,$00,$00,$00,$00,$00 $fd28 defb $00,$00,$00,$00,$00,$00,$00,$00 $fd30 defb $00,$00,$00,$00,$00,$00,$00,$00 $fd38 defb $00,$00,$00,$00,$00,$00,$00,$00 $fd40 defb $00,$00,$00,$00,$00,$00,$00,$00 $fd48 defb $00,$00,$00,$00,$00,$00,$00,$00 $fd50 defb $00,$00,$00,$00,$00,$00,$00,$00 $fd58 defb $00,$00,$00,$00,$00,$00,$00,$00 $fd60 defb $00,$00,$00,$00,$00,$00,$00,$00 $fd68 defb $00,$00,$00,$00,$00,$00,$00,$00 $fd70 defb $00,$00,$00,$00,$00,$00,$00,$00 $fd78 defb $00,$00,$00,$00,$00,$00,$00,$00 $fd80 defb $00,$00,$00,$00,$00,$00,$00,$00 $fd88 defb $00,$00,$00,$00,$00,$00,$00,$00 $fd90 defb $00,$00,$00,$00,$00,$00,$00,$00 $fd98 defb $00,$00,$00,$00,$00,$00,$00,$00 $fda0 defb $00,$00,$00,$00,$00,$00,$00,$00 $fda8 defb $00,$00,$00,$00,$00,$00,$00,$00 $fdb0 defb $00,$00,$00,$00,$00,$00,$00,$00 $fdb8 defb $00,$00,$00,$00,$00,$00,$00,$00 $fdc0 defb $00,$00,$00,$00,$00,$00,$00,$00 $fdc8 defb $00,$00,$00,$00,$00,$00,$00,$00 $fdd0 defb $00,$00,$00,$00,$00,$00,$00,$00 $fdd8 defb $00,$00,$00,$00,$00,$00,$00,$00 $fde0 defb $00,$00,$00,$00,$00,$00,$00,$00 $fde8 defb $00,$00,$00,$00,$00,$00,$00,$00 $fdf0 defb $00,$00,$00,$00,$00,$00,$00,$00 $fdf8 defb $00,$00,$00,$00,$00,$00,$00,$00 $fe00 defb $00,$00,$00,$00,$00,$00,$00,$00 $fe08 defb $00,$00,$00,$00,$00,$00,$00,$00 $fe10 defb $00,$00,$00,$00,$00,$00,$00,$00 $fe18 defb $00,$00,$00,$00,$00,$00,$00,$00 $fe20 defb $00,$00,$00,$00,$00,$00,$00,$00 $fe28 defb $00,$00,$00,$00,$00,$00,$00,$00 $fe30 defb $00,$00,$00,$00,$00,$00,$00,$00 $fe38 defb $00,$00,$00,$00,$00,$00,$00,$00 $fe40 defb $00,$00,$00,$00,$00,$00,$00,$00 $fe48 defb $00,$00,$00,$00,$00,$00,$00,$00 $fe50 defb $00,$00,$00,$00,$00,$00,$00,$00 $fe58 defb $00,$00,$00,$00,$00,$00,$00,$00 $fe60 defb $00,$00,$00,$00,$00,$00,$00,$00 $fe68 defb $00,$00,$00,$00,$00,$00,$00,$00 $fe70 defb $00,$00,$00,$00,$00,$00,$00,$00 $fe78 defb $00,$00,$00,$00,$00,$00,$00,$00 $fe80 defb $00,$00,$00,$00,$00,$00,$00,$00 $fe88 defb $00,$00,$00,$00,$00,$00,$00,$00 $fe90 defb $00,$00,$00,$00,$00,$00,$00,$00 $fe98 defb $00,$00,$00,$00,$00,$00,$00,$00 $fea0 defb $00,$00,$00,$00,$00,$00,$00,$00 $fea8 defb $00,$00,$00,$00,$00,$00,$00,$00 $feb0 defb $00,$00,$00,$00,$00,$00,$00,$00 $feb8 defb $00,$00,$00,$00,$00,$00,$00,$00 $fec0 defb $00,$00,$00,$00,$00,$00,$00,$00 $fec8 defb $00,$00,$00,$00,$00,$00,$00,$00 $fed0 defb $00,$00,$00,$00,$00,$00,$00,$00 $fed8 defb $00,$00,$00,$00,$00,$00,$00,$00 $fee0 defb $00,$00,$00,$00,$00,$00,$00,$00 $fee8 defb $00,$00,$00,$00,$00,$00,$00,$00 $fef0 defb $00,$00,$00,$00,$00,$00,$00,$00 $fef8 defb $00,$00,$00,$00,$00,$00,$00,$00 $ff00 defb $00,$00,$00,$00,$00,$00,$00,$00 $ff08 defb $00,$00,$00,$00,$db,$02,$4d,$00 $ff10 defb $38,$00,$00,$00,$e2,$5a,$00,$38 $ff18 defb $f3,$0d,$ce,$0b,$e3,$50,$ce,$0b $ff20 defb $e4,$50,$1d,$17,$dc,$0a,$ce,$0b $ff28 defb $e7,$50,$1a,$17,$dc,$0a,$d7,$18 $ff30 defb $38,$00,$38,$00,$0d,$19,$db,$02 $ff38 defb $db,$02,$4d,$00,$de,$53,$22,$00 $ff40 defb $dd,$53,$12,$02,$5c,$0e,$c0,$57 $ff48 defb $71,$0e,$f3,$0d,$21,$17,$c6,$1e $ff50 defb $fe,$5f,$76,$1b,$03,$13,$00,$3e $ff58 defb $00,$3c,$42,$42,$7e,$42,$42,$00 $ff60 defb $00,$7c,$42,$7c,$42,$42,$7c,$00 $ff68 defb $00,$3c,$42,$40,$40,$42,$3c,$00 $ff70 defb $00,$78,$44,$42,$42,$44,$78,$00 $ff78 defb $00,$7e,$40,$7c,$40,$40,$7e,$00 $ff80 defb $00,$7e,$40,$7c,$40,$40,$40,$00 $ff88 defb $00,$3c,$42,$40,$4e,$42,$3c,$00 $ff90 defb $00,$42,$42,$7e,$42,$42,$42,$00 $ff98 defb $00,$3e,$08,$08,$08,$08,$3e,$00 $ffa0 defb $00,$02,$02,$02,$42,$42,$3c,$00 $ffa8 defb $00,$44,$48,$70,$48,$44,$42,$00 $ffb0 defb $00,$40,$40,$40,$40,$40,$7e,$00 $ffb8 defb $00,$42,$66,$5a,$42,$42,$42,$00 $ffc0 defb $00,$42,$62,$52,$4a,$46,$42,$00 $ffc8 defb $00,$3c,$42,$42,$42,$42,$3c,$00 $ffd0 defb $00,$7c,$42,$42,$7c,$40,$40,$00 $ffd8 defb $00,$3c,$42,$42,$52,$4a,$3c,$00 $ffe0 defb $00,$7c,$42,$42,$7c,$44,$42,$00 $ffe8 defb $00,$3c,$40,$3c,$02,$42,$3c,$00 $fff0 defb $00,$fe,$10,$10,$10,$10,$10,$00 $fff8 defb $00,$42,$42,$42,$42,$42,$3c,$00