4000 ; 4000 ; 浜様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様 4000 ; This file is generated by The Interactive Disassembler (IDA) 4000 ; Licensed to: Unknown User ;-) 4000 ; Copyright (c) 1999 by DataRescue sa/nv, 4000 ; 藩様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様 4000 ; 4000 ; File Name : D:\markm\lode\Lode Runner\MSX\LODERUN.ROM 4000 ; Format : Binary File 4000 ; Base Address: 0000h Range: 4000h - C000h Loaded length: 8000h 4000 4000 ; Processor: z80 4000 ; Target assembler: Table Driven Assembler (TASM) by Speech Technology Inc. 4000 4000 ; 様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様 4000 4000 ; Segment type: Pure code 4000 ; segment 'seg000' 4000 .org 4000h 4000 41 42 aAb: .text "AB" ; ROM cartridge signature 4002 04 40 .dw 4004h ; entry point 4004 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 4004 4004 entry: 4004 31 00 F3 ld sp, 0F300h 4007 F3 di 4008 ED 56 im 1 400A CD 38 01 call 138h ; read primary slot register 400D E6 CF and 0CFh ; '' 400F 4F ld c, a 4010 87 add a, a 4011 87 add a, a 4012 E6 30 and 30h ; '0' 4014 B1 or c 4015 CD 3B 01 call 13Bh ; write primary slot register 4018 3E 07 ld a, 7 ; select mixer I/O enabled register 401A 1E BE ld e, 0BEh ; '' 401C CD 93 00 call 93h ; write to PSG register 401F 3E 01 ld a, 1 ; select tone generator control register 4021 1E 00 ld e, 0 4023 CD 93 00 call 93h ; write to PSG register 4026 CD 3E 01 call 13Eh ; read VDP status 4029 21 3B 40 ld hl, 403Bh ; VDP init data table 402C 01 00 08 ld bc, 800h ; 8 entries, starting with R0 402F 402F loc_402F: ; CODE XREF: seg000:4037j 402F C5 push bc 4030 46 ld b, (hl) ; get VDP init data 4031 CD 47 00 call 47h ; write VDP register 4034 C1 pop bc 4035 0C inc c ; next register 4036 23 inc hl ; next data value 4037 10 F6 djnz loc_402F ; loop until done 4039 18 1D jr loc_4058 4039 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 403B 02 VDP_INIT_DATA: .db 2 ; ; R0: m3=1 403C 82 .db 82h ; ; R1: 4K, ena_active, dis_irq, mode1, 8x8, X1 403D 0E .db 0Eh ; ; R2: name table base = $3800 403E FF .db 0FFh ; ; R3: Color Table base = $3FC0 403F 03 .db 3 ; ; R4: Pattern Generator table base address = $1800 4040 76 .db 76h ; v ; R5: Sprite Attribute address = $3B00 4041 03 .db 3 ; ; R6: Sprite pattern base = $1800 4042 01 .db 1 ; ; R7: colour 0, backdrop 4043 4043 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 4043 4043 4043 init_and_display_new_level: ; CODE XREF: seg000:4133p 4043 CD A2 51 ; seg000:4253p 4043 call sub_51A2 4046 CD FA 4E call create_level_data_scratchpad 4049 CD 72 4F call display_level 404C CD 73 51 call print_num_men_and_level 404F CD BB 4A call update_player_enemy_pixel_coords 4052 3E 01 ld a, 1 4054 32 A4 EF ld (0EFA4h), a 4057 C9 ret 4057 ; End of function init_and_display_new_level 4057 4058 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 4058 4058 loc_4058: ; CODE XREF: seg000:4039j 4058 21 00 00 ld hl, 0 405B CD 53 00 call 53h ; enable VDP to write 405E 3A 07 00 ld a, (7) ; base port address for VDP write 4061 4F ld c, a 4062 06 00 ld b, 0 ; 256 bytes each loop 4064 1E 40 ld e, 64 ; 64*256 bytes 4066 AF xor a ; zero data 4067 4067 loc_4067: ; CODE XREF: seg000:4069j 4067 ED 79 ; seg000:406Cj 4067 out (c), a 4069 10 FC djnz loc_4067 406B 1D dec e 406C 20 F9 jr nz, loc_4067 ; zero 16KB vram 406E 21 00 38 ld hl, 3800h ; name table base address (vram address) 4071 0E 03 ld c, 3 ; 3*256 = 768 bytes 4073 4073 loc_4073: ; CODE XREF: seg000:407Dj 4073 AF xor a ; start at 0 4074 47 ld b, a ; 256 bytes 4075 4075 loc_4075: ; CODE XREF: seg000:407Aj 4075 CD 4E 50 call write_data_in_vram 4078 3C inc a ; next pattern name 4079 23 inc hl ; next vram address 407A 10 F9 djnz loc_4075 407C 0D dec c ; done all 768 bytes? 407D 20 F4 jr nz, loc_4073 ; no, loop 407F 01 09 00 ld bc, 9 4082 21 00 E8 ld hl, 0E800h 4085 AF xor a 4086 4086 loc_4086: ; CODE XREF: seg000:4088j 4086 77 ; seg000:408Bj 4086 ld (hl), a 4087 23 inc hl 4088 10 FC djnz loc_4086 408A 0D dec c 408B 20 F9 jr nz, loc_4086 408D 3E C8 ld a, 0C8h ; '' 408F 32 79 EF ld (0EF79h), a 4092 3E 32 ld a, 32h ; '2' 4094 32 7A EF ld (0EF7Ah), a 4097 3E 3C ld a, 3Ch ; '<' 4099 32 7B EF ld (0EF7Bh), a 409C 32 7D EF ld (0EF7Dh), a 409F 3E FF ld a, 0FFh 40A1 32 7C EF ld (0EF7Ch), a 40A4 32 7E EF ld (0EF7Eh), a 40A7 AF xor a 40A8 32 6F EF ld (0EF6Fh), a 40AB 3E 04 ld a, 4 40AD 32 61 EF ld (0EF61h), a 40B0 3E C3 ld a, 0C3h ; '' 40B2 32 9A FD ld (0FD9Ah), a 40B5 21 2B 44 ld hl, 442Bh ; ISR 40B8 22 9B FD ld (0FD9Bh), hl ; hook ISR 40BB 3E 04 ld a, 4 ; enabled score update 40BD 32 A4 EF ld (0EFA4h), a ; store general flags 40C0 CD 82 4C call show_title_screen 40C3 CD 61 50 call enable_vdp_interrupts 40C6 FB ei 40C7 AF xor a 40C8 32 60 EF ld (0EF60h), a 40CB 40CB title_screen_loop: ; CODE XREF: seg000:40DEj 40CB CD A2 55 call scan_joystick_and_keyboard 40CE 3E 3F ld a, 3Fh ; '?' ; joystick bit mask 40D0 BA cp d ; any joystick bits? 40D1 20 0D jr nz, start_demo_or_game ; yes, skip 40D3 3E FF ld a, 0FFh 40D5 BB cp e ; any key pressed? 40D6 20 08 jr nz, start_demo_or_game ; yes, skip 40D8 76 halt ; wait for VDP interrupt 40D9 3A 60 EF ld a, (0EF60h) 40DC FE FA cp 250 ; wait for ~4 seconds 40DE 38 EB jr c, title_screen_loop 40E0 40E0 start_demo_or_game: ; CODE XREF: seg000:40D1j 40E0 CD 5A 50 ; seg000:40D6j 40E0 call disable_vdp_interrupts 40E3 CD 4A 52 call disable_all_LR_sprites 40E6 06 14 ld b, 20 ; write data for 20 sprites to VDP 40E8 21 00 18 ld hl, 1800h ; pattern generator table base 40EB 11 09 6A ld de, 6A09h ; sprite data in ROM 40EE CD 13 50 call write_n_x_10bytes_to_vdp 40F1 11 00 18 ld de, 1800h 40F4 21 00 00 ld hl, 0 40F7 CD 53 00 call 53h ; enable vdp to write 40FA 3A 07 00 ld a, (7) ; VDP data register base port 40FD 4F ld c, a 40FE 40FE loc_40FE: ; CODE XREF: seg000:4102j 40FE AF ; seg000:4105j 40FE xor a 40FF ED 79 out (c), a 4101 1D dec e 4102 20 FA jr nz, loc_40FE 4104 15 dec d 4105 20 F7 jr nz, loc_40FE ; zero 1st 1800 bytes of vram 4107 4107 loc_4107: ; CODE XREF: seg000:4378j 4107 F3 di 4108 CD 5A 50 call disable_vdp_interrupts 410B CD AF 4D call display_level_score_text 410E 21 00 E8 ld hl, 0E800h 4111 06 7F ld b, 7Fh ; '' 4113 AF xor a 4114 4114 loc_4114: ; CODE XREF: seg000:4116j 4114 77 ld (hl), a 4115 23 inc hl 4116 10 FC djnz loc_4114 4118 AF xor a 4119 32 2A F0 ld (0F02Ah), a 411C 11 00 00 ld de, 0 ; 0 points to add 411F CD 27 51 call add_points_and_score_2_ascii 4122 21 01 00 ld hl, 1 ; level 1 4125 22 66 EF ld (0EF66h), hl ; store 4128 21 05 00 ld hl, 5 ; 5 men 412B 22 68 EF ld (0EF68h), hl ; store 412E 3E 03 ld a, 3 4130 32 61 EF ld (0EF61h), a 4133 CD 43 40 call init_and_display_new_level 4136 CD 84 44 call update_sprite_coords_and_display 4139 CD 61 50 call enable_vdp_interrupts 413C FB ei 413D 21 5D 41 ld hl, 415Dh ; code here 4140 22 26 F0 ld (0F026h), hl 4143 21 63 41 ld hl, 4163h ; code here 4146 22 28 F0 ld (0F028h), hl 4149 4149 loc_4149: ; CODE XREF: seg000:4193j 4149 06 08 ld b, 8 414B CD A2 55 call scan_joystick_and_keyboard 414E 3E 3F ld a, 3Fh ; '?' ; joystick mask 4150 BA cp d ; any joystick bits? 4151 C2 23 42 jp nz, init_score_and_men ; yes, skip 4154 3E FF ld a, 0FFh 4156 BB cp e ; any keys? 4157 C2 23 42 jp nz, init_score_and_men ; yes, skip 415A C3 B9 47 jp loc_47B9 415D ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 415D CD 5D 45 call sub_455D 4160 CD 96 41 call sub_4196 4163 CD C1 55 call sub_55C1 4166 CD BB 4A call update_player_enemy_pixel_coords 4169 CD 22 4B call sub_4B22 416C 3A 70 EF ld a, (0EF70h) ; number of gold boxes 416F A7 and a ; any left? 4170 CC CF 4E call z, display_eos_ladder ; no, call 4173 FE FF cp 0FFh ; already displayed eos ladder? 4175 20 0D jr nz, loc_4184 ; no, skip 4177 3A 04 EF ld a, (0EF04h) ; get tile height 417A A7 and a ; 0? 417B 20 07 jr nz, loc_4184 ; no, skip 417D 3A 02 EF ld a, (0EF02h) ; current row 4180 A7 and a ; top of screen? 4181 CA FC 41 jp z, end_of_screen ; yes, skip 4184 4184 loc_4184: ; CODE XREF: seg000:4175j 4184 3A A4 EF ; seg000:417Bj 4184 ld a, (0EFA4h) ; get general flags 4187 CB C7 set 0, a 4189 32 A4 EF ld (0EFA4h), a 418C 418C loc_418C: ; CODE XREF: seg000:4191j 418C 3A A4 EF ld a, (0EFA4h) ; get general flags 418F CB 47 bit 0, a 4191 20 F9 jr nz, loc_418C 4193 C3 49 41 jp loc_4149 4196 4196 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 4196 4196 4196 sub_4196: ; CODE XREF: seg000:4160p 4196 21 C9 41 ld hl, 41C9h ; code here 4199 3A 2A F0 ld a, (0F02Ah) 419C 5F ld e, a 419D 16 00 ld d, 0 419F 19 add hl, de 41A0 56 ld d, (hl) 41A1 23 inc hl 41A2 46 ld b, (hl) 41A3 3E 02 ld a, 2 41A5 BA cp d 41A6 20 05 jr nz, loc_41AD 41A8 32 A0 EF ld (0EFA0h), a 41AB 18 0E jr loc_41BB 41AD ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 41AD 41AD loc_41AD: ; CODE XREF: sub_4196+10j 41AD 3A 02 EF ld a, (0EF02h) ; get current row 41B0 B8 cp b 41B1 20 11 jr nz, loc_41C4 41B3 23 inc hl 41B4 4E ld c, (hl) 41B5 3A 03 EF ld a, (0EF03h) ; get current column 41B8 B9 cp c 41B9 20 09 jr nz, loc_41C4 41BB 41BB loc_41BB: ; CODE XREF: sub_4196+15j 41BB 3A 2A F0 ld a, (0F02Ah) 41BE 06 03 ld b, 3 41C0 80 add a, b 41C1 32 2A F0 ld (0F02Ah), a 41C4 41C4 loc_41C4: ; CODE XREF: sub_4196+1Bj 41C4 7A ; sub_4196+23j 41C4 ld a, d 41C5 32 A1 EF ld (0EFA1h), a 41C8 C9 ret 41C8 ; End of function sub_4196 41C8 41C9 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 41C9 76 halt 41CA 0C inc c 41CB 1D dec e 41CC 7B ld a, e 41CD 0C inc c 41CE 18 02 jr loc_41D2 41D0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 41D0 02 ld (bc), a 41D1 00 nop 41D2 41D2 loc_41D2: ; CODE XREF: seg000:41CEj 41D2 76 halt 41D3 0C inc c 41D4 1C inc e 41D5 7A ld a, d 41D6 06 16 ld b, 16h 41D8 76 halt 41D9 03 inc bc 41DA 1B dec de 41DB 7B ld a, e 41DC 03 inc bc 41DD 0C inc c 41DE 7D ld a, l 41DF 0C inc c 41E0 0C inc c 41E1 7B ld a, e 41E2 0C inc c 41E3 09 add hl, bc 41E4 76 halt 41E5 09 add hl, bc 41E6 0C inc c 41E7 7B ld a, e 41E8 09 add hl, bc 41E9 05 dec b 41EA 02 ld (bc), a 41EB 02 ld (bc), a 41EC 00 nop 41ED 76 halt 41EE 09 add hl, bc 41EF 09 add hl, bc 41F0 7A ld a, d 41F1 06 04 ld b, 4 41F3 76 halt 41F4 01 09 7B ld bc, 7B09h 41F7 01 05 76 ld bc, 7605h 41FA 00 nop 41FB 00 nop 41FC 41FC end_of_screen: ; CODE XREF: seg000:4181j 41FC 3A A3 EF ld a, (0EFA3h) 41FF CB DF set 3, a 4201 32 A3 EF ld (0EFA3h), a 4204 01 00 00 ld bc, 0 4207 4207 loc_4207: ; CODE XREF: seg000:4211j 4207 11 01 00 ; seg000:4216j 4207 ld de, 1 420A CD 27 51 call add_points_and_score_2_ascii 420D 03 inc bc 420E 3E 08 ld a, 8 4210 B8 cp b 4211 20 F4 jr nz, loc_4207 4213 3E 98 ld a, 98h ; '' 4215 B9 cp c 4216 20 EF jr nz, loc_4207 4218 06 3C ld b, 3Ch ; '<' 421A 421A loc_421A: ; CODE XREF: seg000:421Ej 421A 3A A3 EF ; seg000:4221j 421A ld a, (0EFA3h) 421D A7 and a 421E 20 FA jr nz, loc_421A 4220 76 halt 4221 10 F7 djnz loc_421A 4223 4223 init_score_and_men: ; CODE XREF: seg000:4151j 4223 21 00 00 ; seg000:4157j 4223 ld hl, 0 4226 22 62 EF ld (0EF62h), hl ; zero score % 10,000 4229 22 64 EF ld (0EF64h), hl ; zero score / 10,000 422C 54 ld d, h 422D 5D ld e, l 422E CD 27 51 call add_points_and_score_2_ascii 4231 21 01 00 ld hl, 1 ; level 1 4234 22 66 EF ld (0EF66h), hl ; store 4237 AF xor a 4238 32 A3 EF ld (0EFA3h), a 423B 76 halt 423C 21 05 00 ld hl, 5 ; 5 men 423F 22 68 EF ld (0EF68h), hl ; store 4242 4242 loc_4242: ; CODE XREF: seg000:4320j 4242 06 7F ; seg000:4425j 4242 ld b, 7Fh ; '' 4244 21 00 E8 ld hl, 0E800h 4247 AF xor a 4248 4248 loc_4248: ; CODE XREF: seg000:424Aj 4248 77 ld (hl), a 4249 23 inc hl 424A 10 FC djnz loc_4248 424C CD 5A 50 call disable_vdp_interrupts 424F F3 di 4250 CD B0 52 call spiral_wipe_level 4253 CD 43 40 call init_and_display_new_level 4256 21 B0 42 ld hl, 42B0h ; main loop? read keyboard & handle keys 4259 22 26 F0 ld (0F026h), hl 425C 21 B6 42 ld hl, 42B6h ; main loop? no keyboard read etc 425F 22 28 F0 ld (0F028h), hl 4262 CD 6B 52 call spiral_draw_level 4265 CD 84 44 call update_sprite_coords_and_display 4268 CD 61 50 call enable_vdp_interrupts 426B 3A A4 EF ld a, (0EFA4h) ; get general flags 426E CB CF set 1, a 4270 32 A4 EF ld (0EFA4h), a ; store 4273 4273 loc_4273: ; CODE XREF: seg000:428Aj 4273 3E 07 ld a, 7 ; line 7 4275 CD 41 01 call 141h ; read keyboard line 4278 FE FB cp 0FBh ; '' ; ? 427A CA 8C 42 jp z, loc_428C ; yes, skip 427D 3E FB ld a, 0FBh ; '' 427F 32 20 F0 ld (0F020h), a ; no keys 4282 CD 4A 4E call read_joystick_and_keys 4285 3A 20 F0 ld a, (0F020h) ; keys 4288 FE FB cp 0FBh ; '' ; any keys? 428A 28 E7 jr z, loc_4273 ; no, skip 428C 428C loc_428C: ; CODE XREF: seg000:427Aj 428C 3A A4 EF ld a, (0EFA4h) ; get general flags 428F CB 8F res 1, a 4291 32 A4 EF ld (0EFA4h), a ; store 4294 76 halt 4295 4295 loc_4295: ; CODE XREF: seg000:438Cj 4295 3A A4 EF ld a, (0EFA4h) ; get general flags 4298 CB 8F res 1, a 429A 32 A4 EF ld (0EFA4h), a ; store 429D 3E 07 ld a, 7 ; line 7 429F CD 41 01 call 141h ; read keyboard line 42A2 FE FB cp 0FBh ; '' 42A4 CA 1A 61 jp z, loc_611A 42A7 42A7 loc_42A7: ; CODE XREF: seg000:63CDj 42A7 3A AA EF ; seg000:63E7j ... 42A7 ld a, (0EFAAh) 42AA A7 and a 42AB 20 03 jr nz, loc_42B0 42AD C3 B9 47 jp loc_47B9 42B0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 42B0 42B0 loc_42B0: ; CODE XREF: seg000:42ABj 42B0 CD 4A 4E call read_joystick_and_keys 42B3 CD 5D 45 call sub_455D 42B6 CD C1 55 call sub_55C1 42B9 CD BB 4A call update_player_enemy_pixel_coords 42BC CD 22 4B call sub_4B22 42BF 3A 70 EF ld a, (0EF70h) ; number of gold boxes 42C2 A7 and a ; any left? 42C3 CC CF 4E call z, display_eos_ladder ; no, call 42C6 FE FF cp 0FFh ; already displayed eos ladder? 42C8 C2 7B 43 jp nz, loc_437B ; no, skip 42CB 3A 04 EF ld a, (0EF04h) ; get tile height 42CE FE 02 cp 2 42D0 D2 7B 43 jp nc, loc_437B 42D3 3A 02 EF ld a, (0EF02h) ; get current row 42D6 A7 and a ; top of screen? 42D7 C2 7B 43 jp nz, loc_437B ; no, skip 42DA 2A 66 EF ld hl, (0EF66h) ; get level 42DD 23 inc hl ; next level 42DE 3E 4C ld a, 76 ; last level 42E0 BD cp l ; is this the last level? 42E1 30 03 jr nc, loc_42E6 ; no, skip 42E3 21 01 00 ld hl, 1 ; back to level 1 42E6 42E6 loc_42E6: ; CODE XREF: seg000:42E1j 42E6 22 66 EF ld (0EF66h), hl ; store level 42E9 2A 68 EF ld hl, (0EF68h) ; get num men 42EC 23 inc hl ; add extra 42ED 3E 62 ld a, 98 ; max men 42EF BD cp l ; got 98? 42F0 30 02 jr nc, loc_42F4 ; no, skip 42F2 2E 63 ld l, 99 ; infinite? 42F4 42F4 loc_42F4: ; CODE XREF: seg000:42F0j 42F4 22 68 EF ld (0EF68h), hl ; store num men 42F7 3A A3 EF ld a, (0EFA3h) 42FA CB DF set 3, a 42FC 32 A3 EF ld (0EFA3h), a 42FF 01 00 00 ld bc, 0 4302 4302 loc_4302: ; CODE XREF: seg000:4314j 4302 11 01 00 ; seg000:4319j 4302 ld de, 1 4305 CD 27 51 call add_points_and_score_2_ascii 4308 3A A4 EF ld a, (0EFA4h) ; get general flags 430B CB C7 set 0, a 430D 32 A4 EF ld (0EFA4h), a ; store 4310 03 inc bc 4311 3E 08 ld a, 8 4313 B8 cp b 4314 20 EC jr nz, loc_4302 4316 3E 98 ld a, 98h ; '' 4318 B9 cp c 4319 20 E7 jr nz, loc_4302 431B AF xor a 431C 32 A3 EF ld (0EFA3h), a 431F 76 halt 4320 C3 42 42 jp loc_4242 4323 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 4323 4323 loc_4323: ; CODE XREF: seg000:4428j 4323 CD 73 51 call print_num_men_and_level 4326 3A A4 EF ld a, (0EFA4h) ; get general flags 4329 F6 80 or 80h ; '' ; enabled sprite update 432B 32 A4 EF ld (0EFA4h), a ; store 432E 3E 01 ld a, 1 4330 32 A8 EF ld (0EFA8h), a 4333 21 B2 54 ld hl, 54B2h ; table of routines for spinning "GAME OVER" 4336 22 E4 EF ld (0EFE4h), hl ; store as next jump routine 4339 3E 09 ld a, 9 433B 32 E6 EF ld (0EFE6h), a 433E 433E loc_433E: ; CODE XREF: seg000:4342j 433E 3A A8 EF ld a, (0EFA8h) 4341 A7 and a 4342 20 FA jr nz, loc_433E 4344 CD BD 53 call display_high_score_screen 4347 06 04 ld b, 4 4349 21 00 00 ld hl, 0 434C 434C loc_434C: ; CODE XREF: seg000:436Cj 434C C5 ; seg000:436Ej 434C push bc 434D E5 push hl 434E CD A2 55 call scan_joystick_and_keyboard 4351 E1 pop hl 4352 C1 pop bc 4353 3E 3F ld a, 3Fh ; '?' ; joystick mask 4355 BA cp d ; any joystick bits? 4356 20 18 jr nz, loc_4370 ; yes, skip 4358 3E FF ld a, 0FFh 435A BB cp e ; any keys? 435B 20 13 jr nz, loc_4370 ; yes, skip 435D 435D loc_435D: ; CODE XREF: seg000:4368j 435D FD 29 add iy, iy 435F FD 29 add iy, iy 4361 FD 29 add iy, iy 4363 FD 29 add iy, iy 4365 2B dec hl 4366 7D ld a, l 4367 A7 and a 4368 20 F3 jr nz, loc_435D 436A 7C ld a, h 436B A7 and a 436C 20 DE jr nz, loc_434C 436E 10 DC djnz loc_434C 4370 4370 loc_4370: ; CODE XREF: seg000:4356j 4370 3A A4 EF ; seg000:435Bj 4370 ld a, (0EFA4h) ; get general flags 4373 E6 7F and 7Fh ; '' ; disable sprite update 4375 32 A4 EF ld (0EFA4h), a ; store 4378 C3 07 41 jp loc_4107 437B ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 437B 437B loc_437B: ; CODE XREF: seg000:42C8j 437B 3A A4 EF ; seg000:42D0j ... 437B ld a, (0EFA4h) ; get general flags 437E CB C7 set 0, a 4380 32 A4 EF ld (0EFA4h), a ; store 4383 4383 loc_4383: ; CODE XREF: seg000:4388j 4383 3A A4 EF ld a, (0EFA4h) ; get general flags 4386 CB 47 bit 0, a 4388 20 F9 jr nz, loc_4383 438A 18 03 jr loc_438F 438C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 438C 438C loc_438C: ; CODE XREF: seg000:43C7j 438C C3 95 42 jp loc_4295 438F ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 438F 438F loc_438F: ; CODE XREF: seg000:438Aj 438F 3A A9 EF ld a, (0EFA9h) 4392 A7 and a 4393 C2 DD 43 jp nz, loc_43DD 4396 21 02 EF ld hl, 0EF02h ; current row 4399 5E ld e, (hl) 439A 23 inc hl ; current column 439B 56 ld d, (hl) 439C CD 33 50 call get_ptr_level_data_of_row_col 439F 7E ld a, (hl) ; level data 43A0 FE 02 cp 2 ; diggable brick? 43A2 28 39 jr z, loc_43DD ; yes, skip 43A4 3A 00 EF ld a, (0EF00h) ; get player pixel Y 43A7 5F ld e, a 43A8 3A 01 EF ld a, (0EF01h) ; get player pixel X 43AB 57 ld d, a 43AC 3A 73 EF ld a, (0EF73h) ; length of enemy coord table 43AF CB 3F srl a ; get num enemies 43B1 47 ld b, a ; store 43B2 21 10 EF ld hl, 0EF10h 43B5 43B5 loc_43B5: ; CODE XREF: seg000:43C5j 43B5 4E ld c, (hl) 43B6 7B ld a, e 43B7 A7 and a 43B8 99 sbc a, c 43B9 FE 08 cp 8 43BB 38 0D jr c, loc_43CA 43BD 79 ld a, c 43BE 9B sbc a, e 43BF FE 08 cp 8 43C1 38 07 jr c, loc_43CA 43C3 43C3 loc_43C3: ; CODE XREF: seg000:43DAj 43C3 23 inc hl 43C4 23 inc hl 43C5 10 EE djnz loc_43B5 43C7 C3 8C 43 jp loc_438C 43CA ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 43CA 43CA loc_43CA: ; CODE XREF: seg000:43BBj 43CA 23 ; seg000:43C1j 43CA inc hl 43CB 4E ld c, (hl) 43CC 7A ld a, d 43CD A7 and a 43CE 99 sbc a, c 43CF FE 07 cp 7 43D1 38 0A jr c, loc_43DD 43D3 79 ld a, c 43D4 9A sbc a, d 43D5 FE 07 cp 7 43D7 38 04 jr c, loc_43DD 43D9 43D9 loc_43D9: ; CODE XREF: seg000:43F1j 43D9 2B dec hl 43DA C3 C3 43 jp loc_43C3 43DD ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 43DD 43DD loc_43DD: ; CODE XREF: seg000:4393j 43DD E5 ; seg000:43A2j ... 43DD push hl 43DE C5 push bc 43DF 3A 73 EF ld a, (0EF73h) ; length of enemy coord table 43E2 CB 3F srl a ; num enemies 43E4 A7 and a 43E5 98 sbc a, b 43E6 21 F0 EF ld hl, 0EFF0h 43E9 4F ld c, a 43EA 06 00 ld b, 0 43EC 09 add hl, bc 43ED 7E ld a, (hl) 43EE C1 pop bc 43EF E1 pop hl 43F0 A7 and a 43F1 20 E6 jr nz, loc_43D9 43F3 AF xor a 43F4 32 A9 EF ld (0EFA9h), a 43F7 3A A3 EF ld a, (0EFA3h) 43FA CB C7 set 0, a 43FC 32 A3 EF ld (0EFA3h), a 43FF 3A 61 EF ld a, (0EF61h) 4402 47 ld b, a 4403 3E 3C ld a, 3Ch ; '<' 4405 32 61 EF ld (0EF61h), a 4408 3A A4 EF ld a, (0EFA4h) ; get general flags 440B CB C7 set 0, a 440D 32 A4 EF ld (0EFA4h), a ; store 4410 4410 loc_4410: ; CODE XREF: seg000:4415j 4410 3A A4 EF ld a, (0EFA4h) ; get general flags 4413 CB 47 bit 0, a 4415 20 F9 jr nz, loc_4410 4417 78 ld a, b 4418 32 61 EF ld (0EF61h), a 441B 441B loc_441B: ; CODE XREF: seg000:441Fj 441B 3A A3 EF ld a, (0EFA3h) 441E A7 and a 441F 20 FA jr nz, loc_441B 4421 21 68 EF ld hl, 0EF68h ; num men 4424 35 dec (hl) ; decrement 4425 C2 42 42 jp nz, loc_4242 ; any left? yes, skip 4428 C3 23 43 jp loc_4323 442B ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 442B 442B ISR: 442B F1 pop af 442C CD 3E 01 call 13Eh ; read VDP status register 442F CD 5A 50 call disable_vdp_interrupts 4432 3A A4 EF ld a, (0EFA4h) ; general flags 4435 CB 7F bit 7, a ; sprite update enabled? 4437 20 03 jr nz, loc_443C ; no, skip 4439 CD 84 44 call update_sprite_coords_and_display ; update sprites 443C 443C loc_443C: ; CODE XREF: seg000:4437j 443C 3A A4 EF ld a, (0EFA4h) ; general flags 443F CB 57 bit 2, a ; update score enabled? 4441 20 03 jr nz, loc_4446 ; no, skip 4443 CD 0A 65 call display_score 4446 4446 loc_4446: ; CODE XREF: seg000:4441j 4446 CD B0 62 call update_PSG 4449 CD FA 62 call psg_20Hz_timer_tick 444C 3A A8 EF ld a, (0EFA8h) ; displaying game over? 444F CB 0F rrc a 4451 30 0B jr nc, loc_445E ; no, skip 4453 CD A6 54 call display_next_spinning_game_over 4456 21 00 3B ld hl, 3B00h ; sprite attribute table 4459 3E D0 ld a, 0D0h ; '' ; disable sprites 445B CD 4E 50 call write_data_in_vram 445E 445E loc_445E: ; CODE XREF: seg000:4451j 445E 3A 60 EF ld a, (0EF60h) 4461 3C inc a 4462 32 60 EF ld (0EF60h), a 4465 3A 75 EF ld a, (0EF75h) ; general timer variable 4468 3C inc a ; tick general timer 4469 FE 06 cp 6 ; spinning "GAME OVER" uses 10Hz tick 446B 38 01 jr c, loc_446E ; no overflow, skip 446D AF xor a ; reset 10Hz tick 446E 446E loc_446E: ; CODE XREF: seg000:446Bj 446E 32 75 EF ld (0EF75h), a ; store general timer 4471 CD 61 50 call enable_vdp_interrupts 4474 DD E1 pop ix ; exit from MSX ISR handler 4476 FD E1 pop iy 4478 F1 pop af 4479 C1 pop bc 447A D1 pop de 447B E1 pop hl 447C 08 ex af, af' 447D D9 exx 447E F1 pop af 447F C1 pop bc 4480 D1 pop de 4481 E1 pop hl 4482 FB ei 4483 C9 ret 4484 4484 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 4484 4484 4484 update_sprite_coords_and_display: ; CODE XREF: seg000:4136p 4484 3A 7F EF ; seg000:4265p ... 4484 ld a, (0EF7Fh) 4487 3C inc a 4488 32 7F EF ld (0EF7Fh), a 448B 3A A4 EF ld a, (0EFA4h) ; get general flags 448E CB 47 bit 0, a 4490 CA D9 44 jp z, update_sprites 4493 3A 7F EF ld a, (0EF7Fh) 4496 47 ld b, a 4497 3A 61 EF ld a, (0EF61h) 449A B8 cp b 449B 30 3C jr nc, update_sprites 449D AF xor a 449E 32 7F EF ld (0EF7Fh), a 44A1 3A 01 EF ld a, (0EF01h) ; get player pixel X 44A4 32 0D EF ld (0EF0Dh), a ; store a copy 44A7 3A 00 EF ld a, (0EF00h) ; get player pixel Y 44AA 32 0C EF ld (0EF0Ch), a ; store a copy 44AD 3A 06 EF ld a, (0EF06h) ; get place sprite SAT offset 44B0 32 0E EF ld (0EF0Eh), a ; store a copy 44B3 06 0A ld b, 10 44B5 C5 push bc 44B6 21 10 EF ld hl, 0EF10h ; table of enemy pixel coordinates 44B9 11 4C EF ld de, 0EF4Ch 44BC 44BC loc_44BC: ; CODE XREF: update_sprite_coords_and_display+3Cj 44BC 7E ld a, (hl) 44BD 12 ld (de), a 44BE 23 inc hl 44BF 13 inc de 44C0 10 FA djnz loc_44BC 44C2 C1 pop bc 44C3 CB 38 srl b 44C5 21 2E EF ld hl, 0EF2Eh 44C8 11 56 EF ld de, 0EF56h 44CB 44CB loc_44CB: ; CODE XREF: update_sprite_coords_and_display+4Bj 44CB 7E ld a, (hl) 44CC 12 ld (de), a 44CD 23 inc hl 44CE 13 inc de 44CF 10 FA djnz loc_44CB 44D1 3A A4 EF ld a, (0EFA4h) ; get general flags 44D4 CB 87 res 0, a 44D6 32 A4 EF ld (0EFA4h), a ; store 44D9 44D9 update_sprites: ; CODE XREF: update_sprite_coords_and_display+Cj 44D9 21 00 3B ; update_sprite_coords_and_display+17j 44D9 ld hl, 3B00h ; sprite attribute table 44DC CD 53 00 call 53h ; enable VDP to write 44DF 3A 07 00 ld a, (7) 44E2 4F ld c, a 44E3 3A A4 EF ld a, (0EFA4h) ; get general flags 44E6 CB 4F bit 1, a 44E8 28 0D jr z, loc_44F7 44EA 3A 60 EF ld a, (0EF60h) 44ED CB 5F bit 3, a 44EF 20 06 jr nz, loc_44F7 44F1 AF xor a 44F2 32 0F EF ld (0EF0Fh), a 44F5 18 05 jr loc_44FC 44F7 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 44F7 44F7 loc_44F7: ; CODE XREF: update_sprite_coords_and_display+64j 44F7 3E 0F ; update_sprite_coords_and_display+6Bj 44F7 ld a, 0Fh 44F9 32 0F EF ld (0EF0Fh), a 44FC 44FC loc_44FC: ; CODE XREF: update_sprite_coords_and_display+71j 44FC 3A AB EF ld a, (0EFABh) ; sprite to display 1st 44FF C6 10 add a, 16 ; round-robin which sprite gets display 1st 4501 FE 2F cp 47 ; past end of table? 4503 38 01 jr c, loc_4506 4505 AF xor a ; start at sprite 0 4506 4506 loc_4506: ; CODE XREF: update_sprite_coords_and_display+7Fj 4506 32 AB EF ld (0EFABh), a ; store sprite to display 1st next time 4509 11 2B 45 ld de, 452Bh ; table of addresses of SAT entries 450C 6F ld l, a 450D 26 00 ld h, 0 450F 19 add hl, de ; offset of sprite to display 1st 4510 1E 06 ld e, 6 ; 1 player + 5 enemies (max) 4512 4512 loc_4512: ; CODE XREF: update_sprite_coords_and_display+A4j 4512 D5 push de 4513 06 04 ld b, 4 ; 4 bytes / entry 4515 4515 loc_4515: ; CODE XREF: update_sprite_coords_and_display+A0j 4515 5E ld e, (hl) ; get 1st byte of address entry 4516 7B ld a, e 4517 A7 and a ; end of table 4518 20 04 jr nz, loc_451E ; no, skip 451A 21 2B 45 ld hl, 452Bh ; wrap to 1st entry in table 451D 5E ld e, (hl) ; get 1st byte of addres entry 451E 451E loc_451E: ; CODE XREF: update_sprite_coords_and_display+94j 451E 23 inc hl 451F 56 ld d, (hl) ; get 2nd byte of address entry 4520 1A ld a, (de) ; get SAT entry byte 4521 ED 79 out (c), a ; srite to VDP 4523 23 inc hl ; next SAT entry 4524 10 EF djnz loc_4515 ; loop thru 4 bytes per SAT entry 4526 D1 pop de 4527 1D dec e ; done all 6 sprites? 4528 20 E8 jr nz, loc_4512 ; no, loop 452A C9 ret 452A ; End of function update_sprite_coords_and_display 452A 452A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 452B 0C EF .dw 0EF0Ch ; player Y 452D 0D EF .dw 0EF0Dh ; player X 452F 0E EF .dw 0EF0Eh ; player sprite # 4531 0F EF .dw 0EF0Fh ; player colour code 4533 4C EF .dw 0EF4Ch ; enemy #1 4535 4D EF .dw 0EF4Dh 4537 56 EF .dw 0EF56h 4539 5B EF .dw 0EF5Bh 453B 4E EF .dw 0EF4Eh ; enemy #2 453D 4F EF .dw 0EF4Fh 453F 57 EF .dw 0EF57h 4541 5C EF .dw 0EF5Ch 4543 50 EF .dw 0EF50h ; enemy #3 4545 51 EF .dw 0EF51h 4547 58 EF .dw 0EF58h 4549 5D EF .dw 0EF5Dh 454B 52 EF .dw 0EF52h ; enemy #4 454D 53 EF .dw 0EF53h 454F 59 EF .dw 0EF59h 4551 5E EF .dw 0EF5Eh 4553 54 EF .dw 0EF54h ; enemy #5 4555 55 EF .dw 0EF55h 4557 5A EF .dw 0EF5Ah 4559 5F EF .dw 0EF5Fh 455B 00 00 .dw 0 ; end-of-table word 455D 455D ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 455D 455D 455D sub_455D: ; CODE XREF: seg000:415Dp 455D AF ; seg000:42B3p 455D xor a 455E 32 2B F0 ld (0F02Bh), a 4561 3A A0 EF ld a, (0EFA0h) 4564 CB 47 bit 0, a 4566 28 04 jr z, loc_456C 4568 CD 98 48 call test_and_do_dig_right 456B C9 ret 456C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 456C 456C loc_456C: ; CODE XREF: sub_455D+9j 456C CB 4F bit 1, a 456E 28 04 jr z, handle_move 4570 CD 9A 49 call sub_499A 4573 C9 ret 4574 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 4574 4574 handle_move: ; CODE XREF: sub_455D+11j 4574 3A A1 EF ld a, (0EFA1h) ; joystick 4577 FE 3F cp 3Fh ; '?' ; any joystick bits active? 4579 28 29 jr z, handle_keyboard_move ; no, skip 457B 3A A1 EF ld a, (0EFA1h) ; joystick 457E CB 47 bit 0, a ; up? 4580 20 03 jr nz, loc_4585 ; no, skip 4582 CD CE 45 call handle_up 4585 4585 loc_4585: ; CODE XREF: sub_455D+23j 4585 3A A1 EF ld a, (0EFA1h) ; joystick 4588 CB 57 bit 2, a ; left? 458A 20 03 jr nz, loc_458F ; no, skip 458C CD 2F 47 call handle_left 458F 458F loc_458F: ; CODE XREF: sub_455D+2Dj 458F 3A A1 EF ld a, (0EFA1h) ; joystick 4592 CB 5F bit 3, a ; right? 4594 20 03 jr nz, loc_4599 ; no, skip 4596 CD A1 46 call handle_right 4599 4599 loc_4599: ; CODE XREF: sub_455D+37j 4599 3A A1 EF ld a, (0EFA1h) ; joystick 459C CB 4F bit 1, a ; down? 459E 20 03 jr nz, locret_45A3 ; no, skip 45A0 CD 2F 46 call handle_down 45A3 45A3 locret_45A3: ; CODE XREF: sub_455D+41j 45A3 C9 ret 45A4 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 45A4 45A4 handle_keyboard_move: ; CODE XREF: sub_455D+1Cj 45A4 3A 20 F0 ld a, (0F020h) ; keys 45A7 CB 6F bit 5, a ; up? 45A9 20 03 jr nz, loc_45AE ; no, skip 45AB CD CE 45 call handle_up 45AE 45AE loc_45AE: ; CODE XREF: sub_455D+4Cj 45AE 3A 20 F0 ld a, (0F020h) ; keys 45B1 CB 7F bit 7, a ; right? 45B3 20 03 jr nz, loc_45B8 ; no, skip 45B5 CD A1 46 call handle_right 45B8 45B8 loc_45B8: ; CODE XREF: sub_455D+56j 45B8 3A 20 F0 ld a, (0F020h) ; keys 45BB CB 67 bit 4, a ; left? 45BD 20 04 jr nz, loc_45C3 ; no, skip 45BF CD 2F 47 call handle_left 45C2 C9 ret 45C3 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 45C3 45C3 loc_45C3: ; CODE XREF: sub_455D+60j 45C3 3A 20 F0 ld a, (0F020h) ; keys 45C6 CB 77 bit 6, a ; down? 45C8 20 03 jr nz, locret_45CD ; no, skip 45CA CD 2F 46 call handle_down 45CD 45CD locret_45CD: ; CODE XREF: sub_455D+6Bj 45CD C9 ret 45CD ; End of function sub_455D 45CD 45CE 45CE ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 45CE 45CE 45CE handle_up: ; CODE XREF: sub_455D+25p 45CE 3A 04 EF ; sub_455D+4Ep 45CE ld a, (0EF04h) ; get tile height 45D1 A7 and a ; zero? 45D2 20 30 jr nz, loc_4604 ; no, skip 45D4 3A 03 EF ld a, (0EF03h) 45D7 57 ld d, a ; column 45D8 3A 02 EF ld a, (0EF02h) ; row 45DB 3D dec a ; row above 45DC 5F ld e, a 45DD CD 33 50 call get_ptr_level_data_of_row_col 45E0 7E ld a, (hl) ; level data 45E1 FE 02 cp 2 ; diggable brick? 45E3 28 49 jr z, locret_462E ; yes, skip 45E5 FE 03 cp 3 ; solid brick? 45E7 28 45 jr z, locret_462E ; yes, skip 45E9 1C inc e ; this row 45EA AF xor a 45EB BB cp e ; top row? 45EC 28 40 jr z, locret_462E ; yes, skip 45EE 11 20 00 ld de, 32 45F1 19 add hl, de ; this tile 45F2 7E ld a, (hl) ; data for this tile 45F3 FE 05 cp 5 ; ladder? 45F5 20 37 jr nz, locret_462E ; no, skip 45F7 AF xor a 45F8 32 05 EF ld (0EF05h), a ; set tile offset to 0 45FB 21 02 EF ld hl, 0EF02h 45FE 35 dec (hl) ; row above 45FF 3E 05 ld a, 5 ; new tile height 4601 32 04 EF ld (0EF04h), a ; store 4604 4604 loc_4604: ; CODE XREF: handle_up+4j 4604 3A 20 F0 ld a, (0F020h) ; keys 4607 F6 90 or 90h ; '' ; mask off left/right 4609 32 20 F0 ld (0F020h), a ; store 460C 3A A1 EF ld a, (0EFA1h) ; joystick 460F F6 0C or 0Ch ; mask off left/right 4611 32 A1 EF ld (0EFA1h), a ; store 4614 21 04 EF ld hl, 0EF04h ; tile height 4617 35 dec (hl) ; adjust 4618 4618 calc_up_down_sprite_number: ; CODE XREF: handle_down+40j 4618 21 07 EF ld hl, 0EF07h ; ptr last up/down sprite number 461B 3E 04 ld a, 4 461D 86 add a, (hl) ; calc SAT offset of next sprite 461E 77 ld (hl), a ; store 461F FE 44 cp 44h ; 'D' ; overflow? 4621 20 05 jr nz, loc_4628 ; no, skip 4623 3E 38 ld a, 38h ; '8' ; set 1st SAT offset 4625 32 07 EF ld (0EF07h), a ; store 4628 4628 loc_4628: ; CODE XREF: handle_up+53j 4628 3A 07 EF ld a, (0EF07h) ; get updated up/down SAT offset 462B 32 06 EF ld (0EF06h), a ; store as current SAT offset 462E 462E locret_462E: ; CODE XREF: handle_up+15j 462E C9 ; handle_up+19j ... 462E ret 462E ; End of function handle_up 462E 462F 462F ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 462F 462F 462F handle_down: ; CODE XREF: sub_455D+43p 462F 3A 03 EF ; sub_455D+6Dp 462F ld a, (0EF03h) ; column 4632 57 ld d, a 4633 3A 02 EF ld a, (0EF02h) ; row 4636 5F ld e, a 4637 1C inc e ; row below 4638 CD 33 50 call get_ptr_level_data_of_row_col 463B 7E ld a, (hl) ; level data 463C FE 02 cp 2 ; diggable brick? 463E 28 EE jr z, locret_462E ; yes, skip 4640 FE 03 cp 3 ; solid brick? 4642 28 EA jr z, locret_462E ; yes, skip 4644 1D dec e ; row above 4645 7B ld a, e 4646 FE 0F cp 0Fh ; ??? is this a bug ??? 4648 28 E4 jr z, locret_462E 464A 11 20 00 ld de, 32 464D A7 and a ; clear carry 464E ED 52 sbc hl, de 4650 7E ld a, (hl) ; data for tile above 4651 FE 04 cp 4 ; rope? 4653 20 05 jr nz, loc_465A ; no, skip 4655 3E 01 ld a, 1 4657 32 A6 EF ld (0EFA6h), a 465A 465A loc_465A: ; CODE XREF: handle_down+24j 465A AF xor a 465B 32 05 EF ld (0EF05h), a ; set tile offset to 0 465E 21 04 EF ld hl, 0EF04h ; tile height 4661 34 inc (hl) ; adjust 4662 7E ld a, (hl) ; tile height 4663 FE 05 cp 5 ; max? 4665 20 08 jr nz, loc_466F ; no, skip 4667 21 02 EF ld hl, 0EF02h ; current row 466A 34 inc (hl) ; adjust 466B AF xor a 466C 32 04 EF ld (0EF04h), a ; set tile height to 0 466F 466F loc_466F: ; CODE XREF: handle_down+36j 466F C3 18 46 jp calc_up_down_sprite_number 466F ; End of function handle_down 466F 4672 4672 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 4672 4672 4672 sub_4672: ; CODE XREF: handle_rightp 4672 3A 02 EF ; handle_leftp 4672 ld a, (0EF02h) ; get current row 4675 5F ld e, a 4676 1C inc e ; row below 4677 3A 03 EF ld a, (0EF03h) ; get current column 467A 57 ld d, a 467B 3A 05 EF ld a, (0EF05h) ; get tile offset 467E FE 02 cp 2 4680 38 01 jr c, loc_4683 4682 14 inc d ; column to right 4683 4683 loc_4683: ; CODE XREF: sub_4672+Ej 4683 3A 73 EF ld a, (0EF73h) ; length of enemy coord table 4686 CB 3F srl a ; num enemies 4688 47 ld b, a ; store 4689 21 1B EF ld hl, 0EF1Bh ; table of enemy coords + 1 468C 468C loc_468C: ; CODE XREF: sub_4672+20j 468C 7E ld a, (hl) ; enemy column 468D BA cp d ; same as player column? 468E 28 05 jr z, loc_4695 ; yes, skip 4690 4690 loc_4690: ; CODE XREF: sub_4672+27j 4690 23 inc hl 4691 23 inc hl ; next enemy column 4692 10 F8 djnz loc_468C ; loop thru all enemies 4694 C9 ret 4695 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 4695 4695 loc_4695: ; CODE XREF: sub_4672+1Cj 4695 2B dec hl 4696 7E ld a, (hl) 4697 23 inc hl 4698 BB cp e 4699 20 F5 jr nz, loc_4690 469B 3E 01 ld a, 1 469D 32 2B F0 ld (0F02Bh), a 46A0 C9 ret 46A0 ; End of function sub_4672 46A0 46A1 46A1 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 46A1 46A1 46A1 handle_right: ; CODE XREF: sub_455D+39p 46A1 CD 72 46 ; sub_455D+58p 46A1 call sub_4672 46A4 3A 03 EF ld a, (0EF03h) ; column 46A7 57 ld d, a ; column to right 46A8 14 inc d ; column to right 46A9 3A 02 EF ld a, (0EF02h) ; row 46AC 5F ld e, a 46AD CD 33 50 call get_ptr_level_data_of_row_col 46B0 7E ld a, (hl) ; level data 46B1 3A 05 EF ld a, (0EF05h) ; get tile offset 46B4 A7 and a ; zero? 46B5 20 2F jr nz, loc_46E6 ; no, skip 46B7 15 dec d ; tile to the left 46B8 CD 33 50 call get_ptr_level_data_of_row_col 46BB 7E ld a, (hl) ; level data 46BC FE 07 cp 7 ; gold brick? 46BE CC 9C 4A call z, pickup_gold_and_add_points ; yes, call 46C1 23 inc hl 46C2 7E ld a, (hl) ; level data 46C3 FE 01 cp 1 ; fall-thru brick? 46C5 28 67 jr z, locret_472E ; yes, skip 46C7 FE 02 cp 2 ; diggable brick? 46C9 28 63 jr z, locret_472E ; yes, skip 46CB FE 03 cp 3 ; solid brick? 46CD 28 5F jr z, locret_472E ; yes, skip 46CF FE 04 cp 4 ; rope? 46D1 28 04 jr z, loc_46D7 ; yes, skip 46D3 3E 01 ld a, 1 46D5 18 01 jr loc_46D8 46D7 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 46D7 46D7 loc_46D7: ; CODE XREF: handle_right+30j 46D7 AF xor a 46D8 46D8 loc_46D8: ; CODE XREF: handle_right+34j 46D8 32 A5 EF ld (0EFA5h), a 46DB 3A 03 EF ld a, (0EF03h) ; current column 46DE FE 1D cp 29 ; right-hand edge of screen? 46E0 28 4C jr z, locret_472E ; yes, skip 46E2 AF xor a 46E3 32 04 EF ld (0EF04h), a ; set tile height to 0 46E6 46E6 loc_46E6: ; CODE XREF: handle_right+14j 46E6 3A 20 F0 ld a, (0F020h) ; keys 46E9 F6 40 or 40h ; '@' ; mask off down 46EB 32 20 F0 ld (0F020h), a ; store 46EE 3A A1 EF ld a, (0EFA1h) ; joystick 46F1 F6 02 or 2 ; mask off down 46F3 32 A1 EF ld (0EFA1h), a ; store 46F6 21 05 EF ld hl, 0EF05h ; tile offset 46F9 34 inc (hl) ; adjust 46FA 7E ld a, (hl) ; get tile offset 46FB FE 04 cp 4 ; max? 46FD 20 08 jr nz, loc_4707 ; no, skip 46FF AF xor a 4700 32 05 EF ld (0EF05h), a ; set tile offset to 0 4703 21 03 EF ld hl, 0EF03h ; current column 4706 34 inc (hl) ; adjust 4707 4707 loc_4707: ; CODE XREF: handle_right+5Cj 4707 3A A5 EF ld a, (0EFA5h) 470A A7 and a 470B 28 10 jr z, loc_471D 470D 21 08 EF ld hl, 0EF08h ; ptr last right SAT offset 4710 3E 04 ld a, 4 4712 86 add a, (hl) ; SAT offsetr of next sprite 4713 77 ld (hl), a ; store 4714 FE 14 cp 14h ; overflow? 4716 20 03 jr nz, loc_471B ; no, skip 4718 3E 08 ld a, 8 ; 1st SAT offset 471A 77 ld (hl), a ; store 471B 471B loc_471B: ; CODE XREF: handle_right+75j 471B 18 0E jr loc_472B ; set current SAT offset 471D ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 471D 471D loc_471D: ; CODE XREF: handle_right+6Aj 471D 21 0A EF ld hl, 0EF0Ah 4720 3E 04 ld a, 4 4722 86 add a, (hl) 4723 77 ld (hl), a 4724 FE 2C cp 2Ch ; ',' 4726 20 03 jr nz, loc_472B 4728 3E 20 ld a, 20h ; ' ' 472A 77 ld (hl), a 472B 472B loc_472B: ; CODE XREF: handle_right+7Aj 472B 32 06 EF ; handle_right+85j 472B ld (0EF06h), a 472E 472E locret_472E: ; CODE XREF: handle_right+24j 472E C9 ; handle_right+28j ... 472E ret 472E ; End of function handle_right 472E 472F 472F ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 472F 472F 472F handle_left: ; CODE XREF: sub_455D+2Fp 472F CD 72 46 ; sub_455D+62p 472F call sub_4672 4732 3A 03 EF ld a, (0EF03h) ; column 4735 57 ld d, a 4736 15 dec d ; column to left 4737 3A 02 EF ld a, (0EF02h) ; row 473A 5F ld e, a 473B CD 33 50 call get_ptr_level_data_of_row_col 473E 7E ld a, (hl) ; level data 473F 3A 05 EF ld a, (0EF05h) ; get tile offset 4742 A7 and a ; zero? 4743 20 38 jr nz, loc_477D ; no, skip 4745 14 inc d ; this column 4746 CD 33 50 call get_ptr_level_data_of_row_col 4749 7E ld a, (hl) ; level data 474A FE 07 cp 7 ; gold box? 474C CC 9C 4A call z, pickup_gold_and_add_points ; yes, call 474F 2B dec hl 4750 7E ld a, (hl) ; tile to left (this tile?) 4751 FE 01 cp 1 ; fall-thru brick? 4753 28 63 jr z, locret_47B8 ; yes, skip 4755 FE 02 cp 2 ; diggable brick? 4757 28 5F jr z, locret_47B8 ; yes, skip 4759 FE 03 cp 3 ; solid brick? 475B 28 5B jr z, locret_47B8 ; yes, skip 475D FE 04 cp 4 ; rope? 475F 28 04 jr z, loc_4765 ; yes, skip 4761 3E 01 ld a, 1 4763 18 01 jr loc_4766 4765 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 4765 4765 loc_4765: ; CODE XREF: handle_left+30j 4765 AF xor a 4766 4766 loc_4766: ; CODE XREF: handle_left+34j 4766 32 A5 EF ld (0EFA5h), a 4769 3A 03 EF ld a, (0EF03h) ; get current column 476C FE 02 cp 2 ; left-hand side of screen 476E 28 48 jr z, locret_47B8 ; yes, skip 4770 3E 04 ld a, 4 4772 32 05 EF ld (0EF05h), a ; max tile offset 4775 21 03 EF ld hl, 0EF03h ; current column 4778 35 dec (hl) ; adjust 4779 AF xor a 477A 32 04 EF ld (0EF04h), a ; set tile height to 0 477D 477D loc_477D: ; CODE XREF: handle_left+14j 477D 3A 20 F0 ld a, (0F020h) ; keys 4780 F6 40 or 40h ; '@' ; mask off down 4782 32 20 F0 ld (0F020h), a ; store 4785 3A A1 EF ld a, (0EFA1h) ; joystick 4788 F6 02 or 2 ; mask off down 478A 32 A1 EF ld (0EFA1h), a ; store 478D 21 05 EF ld hl, 0EF05h ; tile offset 4790 35 dec (hl) ; adjust 4791 3A A5 EF ld a, (0EFA5h) 4794 A7 and a 4795 28 10 jr z, loc_47A7 4797 21 09 EF ld hl, 0EF09h 479A 3E 04 ld a, 4 479C 86 add a, (hl) 479D 77 ld (hl), a 479E FE 20 cp 20h ; ' ' 47A0 20 03 jr nz, loc_47A5 47A2 3E 14 ld a, 14h 47A4 77 ld (hl), a 47A5 47A5 loc_47A5: ; CODE XREF: handle_left+71j 47A5 18 0E jr loc_47B5 47A7 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 47A7 47A7 loc_47A7: ; CODE XREF: handle_left+66j 47A7 21 0B EF ld hl, 0EF0Bh 47AA 3E 04 ld a, 4 47AC 86 add a, (hl) 47AD 77 ld (hl), a 47AE FE 38 cp 38h ; '8' 47B0 20 03 jr nz, loc_47B5 47B2 3E 2C ld a, 2Ch ; ',' 47B4 77 ld (hl), a 47B5 47B5 loc_47B5: ; CODE XREF: handle_left+76j 47B5 32 06 EF ; handle_left+81j 47B5 ld (0EF06h), a ; store current sprite SAT offset 47B8 47B8 locret_47B8: ; CODE XREF: handle_left+24j 47B8 C9 ; handle_left+28j ... 47B8 ret 47B9 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 47B9 47B9 loc_47B9: ; CODE XREF: seg000:415Aj 47B9 3A 2B F0 ; seg000:42ADj 47B9 ld a, (0F02Bh) 47BC A7 and a 47BD C2 82 48 jp nz, loc_4882 47C0 3A 01 EF ld a, (0EF01h) ; get player pixel X 47C3 57 ld d, a 47C4 3A 00 EF ld a, (0EF00h) ; get player pixel Y 47C7 5F ld e, a 47C8 21 11 EF ld hl, 0EF11h 47CB 06 05 ld b, 5 47CD 47CD loc_47CD: ; CODE XREF: handle_left+AEj 47CD 4E ld c, (hl) 47CE 7A ld a, d 47CF A7 and a 47D0 99 sbc a, c 47D1 FE 08 cp 8 47D3 38 0C jr c, loc_47E1 47D5 79 ld a, c 47D6 9A sbc a, d 47D7 FE 08 cp 8 47D9 38 06 jr c, loc_47E1 47DB 47DB loc_47DB: ; CODE XREF: handle_left+BCj 47DB 23 inc hl 47DC 23 inc hl 47DD 10 EE djnz loc_47CD 47DF 18 0C jr loc_47ED 47E1 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 47E1 47E1 loc_47E1: ; CODE XREF: handle_left+A4j 47E1 2B ; handle_left+AAj 47E1 dec hl 47E2 7E ld a, (hl) 47E3 A7 and a 47E4 9B sbc a, e 47E5 FE 0C cp 0Ch 47E7 DA 82 48 jp c, loc_4882 47EA 23 inc hl 47EB 18 EE jr loc_47DB 47ED ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 47ED 47ED loc_47ED: ; CODE XREF: handle_left+B0j 47ED 3A 03 EF ld a, (0EF03h) ; get current column 47F0 57 ld d, a 47F1 3A 05 EF ld a, (0EF05h) ; get tile offset 47F4 FE 02 cp 2 ; mid? 47F6 38 01 jr c, loc_47F9 ; no, skip 47F8 14 inc d ; column to right 47F9 47F9 loc_47F9: ; CODE XREF: handle_left+C7j 47F9 3A 02 EF ld a, (0EF02h) ; get current row 47FC 5F ld e, a 47FD 1C inc e ; row below 47FE CD 33 50 call get_ptr_level_data_of_row_col 4801 7E ld a, (hl) ; level data 4802 FE 02 cp 2 ; diggable brick? 4804 28 7C jr z, loc_4882 ; yes, skip 4806 FE 03 cp 3 ; solid brick? 4808 28 78 jr z, loc_4882 ; yes, skip 480A FE 05 cp 5 ; rope? 480C 28 74 jr z, loc_4882 ; yes, skip 480E 47 ld b, a 480F 3A 04 EF ld a, (0EF04h) ; get tile height 4812 FE 04 cp 4 ; max-1? 4814 20 06 jr nz, loc_481C ; no, skip 4816 78 ld a, b ; level data 4817 FE 07 cp 7 ; gold box? 4819 CC 9C 4A call z, pickup_gold_and_add_points ; yes, call 481C 481C loc_481C: ; CODE XREF: handle_left+E5j 481C 1D dec e ; row above 481D CD 33 50 call get_ptr_level_data_of_row_col 4820 7E ld a, (hl) ; level data 4820 ; End of function handle_left 4820 4821 47 ld b, a 4822 3A 04 EF ld a, (0EF04h) ; get tile height 4825 FE 03 cp 3 ; half-way? 4827 30 05 jr nc, loc_482E 4829 78 ld a, b ; level data 482A FE 05 cp 5 ; ladder? 482C 28 54 jr z, loc_4882 ; yes, skip 482E 482E loc_482E: ; CODE XREF: seg000:4827j 482E 78 ld a, b ; level data 482F FE 04 cp 4 ; rope? 4831 20 06 jr nz, loc_4839 ; no, skip 4833 3A A6 EF ld a, (0EFA6h) 4836 A7 and a 4837 28 49 jr z, loc_4882 4839 4839 loc_4839: ; CODE XREF: seg000:4831j 4839 3A 02 EF ld a, (0EF02h) ; get current row 483C FE 0F cp 15 ; bottom row? 483E 28 42 jr z, loc_4882 ; yes, skip 4840 3A A7 EF ld a, (0EFA7h) 4843 A7 and a 4844 20 0D jr nz, loc_4853 4846 3A A3 EF ld a, (0EFA3h) 4849 CB E7 set 4, a 484B 32 A3 EF ld (0EFA3h), a 484E 3E 01 ld a, 1 4850 32 A7 EF ld (0EFA7h), a 4853 4853 loc_4853: ; CODE XREF: seg000:4844j 4853 3A 05 EF ld a, (0EF05h) ; get tile offset 4856 FE 02 cp 2 ; mid? 4858 38 07 jr c, loc_4861 ; no, skip 485A 3A 03 EF ld a, (0EF03h) ; get current column 485D 3C inc a ; adjust 485E 32 03 EF ld (0EF03h), a ; store current column 4861 4861 loc_4861: ; CODE XREF: seg000:4858j 4861 AF xor a 4862 32 05 EF ld (0EF05h), a ; set tile offset to 0 4865 21 04 EF ld hl, 0EF04h ; tile height 4868 34 inc (hl) ; adjust 4869 7E ld a, (hl) ; get tile height 486A FE 05 cp 5 ; max? 486C 20 0B jr nz, loc_4879 ; no, skip 486E 21 02 EF ld hl, 0EF02h ; current row 4871 34 inc (hl) ; adjust 4872 AF xor a 4873 32 04 EF ld (0EF04h), a ; set tile height to 0 4876 32 A6 EF ld (0EFA6h), a 4879 4879 loc_4879: ; CODE XREF: seg000:486Cj 4879 3E 44 ld a, 44h ; 'D' 487B 32 06 EF ld (0EF06h), a 487E 2A 28 F0 ld hl, (0F028h) 4881 E9 jp (hl) 4882 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 4882 4882 loc_4882: ; CODE XREF: handle_left+8Ej 4882 3A A7 EF ; handle_left+B8j ... 4882 ld a, (0EFA7h) 4885 A7 and a 4886 28 0C jr z, loc_4894 4888 AF xor a 4889 32 A7 EF ld (0EFA7h), a 488C 3A A3 EF ld a, (0EFA3h) 488F CB A7 res 4, a 4891 32 A3 EF ld (0EFA3h), a 4894 4894 loc_4894: ; CODE XREF: seg000:4886j 4894 2A 26 F0 ld hl, (0F026h) 4897 E9 jp (hl) 4898 4898 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 4898 4898 4898 test_and_do_dig_right: ; CODE XREF: sub_455D+Bp 4898 3A 04 EF ld a, (0EF04h) ; get tile hight 489B A7 and a ; zero? 489C C2 11 49 jp nz, loc_4911 ; no, skip 489F 3A AA EF ld a, (0EFAAh) 48A2 A7 and a 48A3 20 44 jr nz, loc_48E9 48A5 3A 03 EF ld a, (0EF03h) ; get current column 48A8 57 ld d, a 48A9 14 inc d ; column to the right 48AA 3A 05 EF ld a, (0EF05h) ; get tile offset 48AD FE 02 cp 2 ; mid? 48AF 38 01 jr c, loc_48B2 ; no, skip 48B1 14 inc d ; column to right again 48B2 48B2 loc_48B2: ; CODE XREF: test_and_do_dig_right+17j 48B2 3A 02 EF ld a, (0EF02h) 48B5 5F ld e, a ; row 48B6 CD 33 50 call get_ptr_level_data_of_row_col 48B9 7E ld a, (hl) ; level data 48BA FE 01 cp 1 ; fall-thru brick? 48BC 28 53 jr z, loc_4911 ; yes, skip 48BE FE 02 cp 2 ; diggable brick? 48C0 28 4F jr z, loc_4911 ; yes, skip 48C2 FE 03 cp 3 ; solid brick? 48C4 28 4B jr z, loc_4911 ; yes, skip 48C6 FE 04 cp 4 ; rope? 48C8 28 47 jr z, loc_4911 ; yes, skip 48CA FE 05 cp 5 ; ladder? 48CC 28 43 jr z, loc_4911 ; yes, skip 48CE FE 07 cp 7 ; gold brick? 48D0 28 3F jr z, loc_4911 ; yes, skip 48D2 1C inc e ; tile below 48D3 CD 33 50 call get_ptr_level_data_of_row_col 48D6 7E ld a, (hl) ; level data 48D7 FE 02 cp 2 ; diggable brick? 48D9 20 36 jr nz, loc_4911 ; no, skip 48DB AF xor a 48DC 32 05 EF ld (0EF05h), a ; set tile offset to 0 48DF 15 dec d ; column to left 48E0 1D dec e ; row above 48E1 7A ld a, d 48E2 32 03 EF ld (0EF03h), a ; store current column 48E5 7B ld a, e 48E6 32 02 EF ld (0EF02h), a ; store current row 48E9 48E9 loc_48E9: ; CODE XREF: test_and_do_dig_right+Bj 48E9 3A 03 EF ld a, (0EF03h) ; get current column 48EC 57 ld d, a 48ED 3A 02 EF ld a, (0EF02h) ; get current row 48F0 5F ld e, a 48F1 21 AA EF ld hl, 0EFAAh 48F4 34 inc (hl) 48F5 3E 4C ld a, 4Ch ; 'L' 48F7 32 06 EF ld (0EF06h), a 48FA 7E ld a, (hl) 48FB FE 01 cp 1 48FD 28 1B jr z, display_dig_1_right 48FF FE 03 cp 3 4901 28 3A jr z, display_dig_2_right 4903 FE 05 cp 5 4905 28 4A jr z, display_dig_3_right 4907 FE 07 cp 7 4909 28 5A jr z, display_dig_4_right 490B FE 09 cp 9 490D 28 69 jr z, loc_4978 490F 18 08 jr locret_4919 4911 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 4911 4911 loc_4911: ; CODE XREF: test_and_do_dig_right+4j 4911 3A A0 EF ; test_and_do_dig_right+24j ... 4911 ld a, (0EFA0h) 4914 CB 87 res 0, a 4916 32 A0 EF ld (0EFA0h), a 4919 4919 locret_4919: ; CODE XREF: test_and_do_dig_right+77j 4919 C9 ; test_and_do_dig_right+A3j ... 4919 ret 491A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 491A 491A display_dig_1_right: ; CODE XREF: test_and_do_dig_right+65j 491A 14 inc d ; next col 491B CD 33 50 call get_ptr_level_data_of_row_col 491E 7E ld a, (hl) 491F 32 30 F0 ld (0F030h), a 4922 CD 5A 50 call disable_vdp_interrupts 4925 3E 25 ld a, 25h ; '%' ; digging #1 debris 4927 CD F9 50 call print_character 492A 1C inc e ; next line 492B 3E 26 ld a, 26h ; '&' ; digging #1 bricks 492D CD F9 50 call print_character 4930 CD 61 50 call enable_vdp_interrupts 4933 3A A3 EF ld a, (0EFA3h) 4936 F6 04 or 4 4938 32 A3 EF ld (0EFA3h), a 493B 18 DC jr locret_4919 493D ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 493D 493D display_dig_2_right: ; CODE XREF: test_and_do_dig_right+69j 493D 14 inc d ; next col 493E CD 5A 50 call disable_vdp_interrupts 4941 3E 27 ld a, 27h ; ''' ; digging #2 debris 4943 CD F9 50 call print_character 4946 1C inc e ; next line 4947 3E 28 ld a, 28h ; '(' ; digging #2 bricks 4949 CD F9 50 call print_character 494C CD 61 50 call enable_vdp_interrupts 494F 18 C8 jr locret_4919 4951 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 4951 4951 display_dig_3_right: ; CODE XREF: test_and_do_dig_right+6Dj 4951 14 inc d ; next col 4952 CD 5A 50 call disable_vdp_interrupts 4955 3E 29 ld a, 29h ; ')' ; digging #3 debris 4957 CD F9 50 call print_character 495A 1C inc e ; next line 495B 3E 2A ld a, 2Ah ; '*' ; digging #3 bricks 495D CD F9 50 call print_character 4960 CD 61 50 call enable_vdp_interrupts 4963 18 B4 jr locret_4919 4965 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 4965 4965 display_dig_4_right: ; CODE XREF: test_and_do_dig_right+71j 4965 14 inc d ; next col 4966 CD 5A 50 call disable_vdp_interrupts 4969 AF xor a ; space 496A CD F9 50 call print_character 496D 1C inc e ; next line 496E 3E 2B ld a, 2Bh ; '+' ; digging #4 bricks 4970 CD F9 50 call print_character 4973 CD 61 50 call enable_vdp_interrupts 4976 18 A1 jr locret_4919 4978 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 4978 4978 loc_4978: ; CODE XREF: test_and_do_dig_right+75j 4978 14 inc d ; next col 4979 1C inc e ; next line 497A CD 5A 50 call disable_vdp_interrupts 497D 3A 30 F0 ld a, (0F030h) 4980 CD F9 50 call print_character 4983 CD 61 50 call enable_vdp_interrupts 4986 AF xor a 4987 32 AA EF ld (0EFAAh), a 498A CD 33 50 call get_ptr_level_data_of_row_col 498D 3E FF ld a, 0FFh ; ??? what is this ??? 498F 77 ld (hl), a ; store in level data 4990 CD 0B 4B call sub_4B0B 4993 AF xor a 4994 32 A0 EF ld (0EFA0h), a 4997 C3 11 49 jp loc_4911 4997 ; End of function test_and_do_dig_right 4997 499A 499A ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 499A 499A 499A sub_499A: ; CODE XREF: sub_455D+13p 499A 3A 04 EF ld a, (0EF04h) ; get tile height 499D A7 and a ; zero? 499E C2 13 4A jp nz, loc_4A13 ; no, skip 49A1 3A AA EF ld a, (0EFAAh) 49A4 A7 and a 49A5 20 44 jr nz, loc_49EB 49A7 3A 03 EF ld a, (0EF03h) ; get current column 49AA 57 ld d, a 49AB 15 dec d ; adjust 49AC 3A 05 EF ld a, (0EF05h) ; get tile offset 49AF FE 02 cp 2 ; mid? 49B1 38 01 jr c, loc_49B4 ; no, skip 49B3 14 inc d ; column to right 49B4 49B4 loc_49B4: ; CODE XREF: sub_499A+17j 49B4 3A 02 EF ld a, (0EF02h) 49B7 5F ld e, a ; row 49B8 CD 33 50 call get_ptr_level_data_of_row_col 49BB 7E ld a, (hl) ; level data 49BC FE 01 cp 1 ; fall-thru brick? 49BE 28 53 jr z, loc_4A13 ; yes, skip 49C0 FE 02 cp 2 ; diggable brick 49C2 28 4F jr z, loc_4A13 ; yes, skip 49C4 FE 03 cp 3 ; solid brick? 49C6 28 4B jr z, loc_4A13 ; yes, skip 49C8 FE 04 cp 4 ; rope? 49CA 28 47 jr z, loc_4A13 ; yes, skip 49CC FE 05 cp 5 ; ladder? 49CE 28 43 jr z, loc_4A13 ; yes, skip 49D0 FE 07 cp 7 ; gold box? 49D2 28 3F jr z, loc_4A13 ; yes, skip 49D4 1C inc e ; row below 49D5 CD 33 50 call get_ptr_level_data_of_row_col 49D8 7E ld a, (hl) ; level data 49D9 FE 02 cp 2 ; diggable brick? 49DB 20 36 jr nz, loc_4A13 ; no, skip 49DD AF xor a 49DE 32 05 EF ld (0EF05h), a ; set tile offet to 0 49E1 14 inc d 49E2 1D dec e 49E3 7A ld a, d 49E4 32 03 EF ld (0EF03h), a ; store current column 49E7 7B ld a, e 49E8 32 02 EF ld (0EF02h), a ; store current row 49EB 49EB loc_49EB: ; CODE XREF: sub_499A+Bj 49EB 3A 03 EF ld a, (0EF03h) ; get current column 49EE 57 ld d, a 49EF 3A 02 EF ld a, (0EF02h) ; get current row 49F2 5F ld e, a 49F3 21 AA EF ld hl, 0EFAAh 49F6 34 inc (hl) 49F7 3E 48 ld a, 48h ; 'H' 49F9 32 06 EF ld (0EF06h), a 49FC 7E ld a, (hl) 49FD FE 01 cp 1 49FF 28 1B jr z, display_dig_1_left 4A01 FE 03 cp 3 4A03 28 3A jr z, display_dig_2_left 4A05 FE 05 cp 5 4A07 28 4A jr z, display_dig_3_left 4A09 FE 07 cp 7 4A0B 28 5A jr z, display_dig_4_left 4A0D FE 09 cp 9 4A0F 28 69 jr z, loc_4A7A 4A11 18 08 jr locret_4A1B 4A13 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 4A13 4A13 loc_4A13: ; CODE XREF: sub_499A+4j 4A13 3A A0 EF ; sub_499A+24j ... 4A13 ld a, (0EFA0h) 4A16 CB 8F res 1, a 4A18 32 A0 EF ld (0EFA0h), a 4A1B 4A1B locret_4A1B: ; CODE XREF: sub_499A+77j 4A1B C9 ; sub_499A+A3j ... 4A1B ret 4A1C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 4A1C 4A1C display_dig_1_left: ; CODE XREF: sub_499A+65j 4A1C 15 dec d ; prev_col 4A1D CD 33 50 call get_ptr_level_data_of_row_col 4A20 7E ld a, (hl) ; level data 4A21 32 30 F0 ld (0F030h), a ; store 4A24 CD 5A 50 call disable_vdp_interrupts 4A27 3E 25 ld a, 25h ; '%' ; digging #1 debris 4A29 CD F9 50 call print_character 4A2C 1C inc e ; next line 4A2D 3E 26 ld a, 26h ; '&' ; digging #1 bricks 4A2F CD F9 50 call print_character 4A32 CD 61 50 call enable_vdp_interrupts 4A35 3A A3 EF ld a, (0EFA3h) 4A38 F6 04 or 4 4A3A 32 A3 EF ld (0EFA3h), a 4A3D 18 DC jr locret_4A1B 4A3F ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 4A3F 4A3F display_dig_2_left: ; CODE XREF: sub_499A+69j 4A3F 15 dec d ; prev col 4A40 CD 5A 50 call disable_vdp_interrupts 4A43 3E 27 ld a, 27h ; ''' ; digging #2 debris 4A45 CD F9 50 call print_character 4A48 1C inc e ; next line 4A49 3E 28 ld a, 28h ; '(' ; diggign #2 bricks 4A4B CD F9 50 call print_character 4A4E CD 61 50 call enable_vdp_interrupts 4A51 18 C8 jr locret_4A1B 4A53 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 4A53 4A53 display_dig_3_left: ; CODE XREF: sub_499A+6Dj 4A53 15 dec d ; prev col 4A54 CD 5A 50 call disable_vdp_interrupts 4A57 3E 29 ld a, 29h ; ')' ; digging #3 debris 4A59 CD F9 50 call print_character 4A5C 1C inc e ; next line 4A5D 3E 2A ld a, 2Ah ; '*' ; digging #4 bricks 4A5F CD F9 50 call print_character 4A62 CD 61 50 call enable_vdp_interrupts 4A65 18 B4 jr locret_4A1B 4A67 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 4A67 4A67 display_dig_4_left: ; CODE XREF: sub_499A+71j 4A67 15 dec d ; prev col 4A68 CD 5A 50 call disable_vdp_interrupts 4A6B AF xor a ; space 4A6C CD F9 50 call print_character 4A6F 1C inc e ; next line 4A70 3E 2B ld a, 2Bh ; '+' ; digging #4 bricks 4A72 CD F9 50 call print_character 4A75 CD 61 50 call enable_vdp_interrupts 4A78 18 A1 jr locret_4A1B 4A7A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 4A7A 4A7A loc_4A7A: ; CODE XREF: sub_499A+75j 4A7A 15 dec d 4A7B 1C inc e 4A7C CD 5A 50 call disable_vdp_interrupts 4A7F 3A 30 F0 ld a, (0F030h) 4A82 CD F9 50 call print_character 4A85 CD 61 50 call enable_vdp_interrupts 4A88 AF xor a 4A89 32 AA EF ld (0EFAAh), a 4A8C CD 33 50 call get_ptr_level_data_of_row_col 4A8F 3E FF ld a, 0FFh ; what is this supposed to represent? 4A91 77 ld (hl), a ; store as level data 4A92 CD 0B 4B call sub_4B0B 4A95 AF xor a 4A96 32 A0 EF ld (0EFA0h), a 4A99 C3 13 4A jp loc_4A13 4A99 ; End of function sub_499A 4A99 4A9C 4A9C ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 4A9C 4A9C 4A9C pickup_gold_and_add_points: ; CODE XREF: handle_right+1Dp 4A9C D5 ; handle_left+1Dp ... 4A9C push de 4A9D E5 push hl 4A9E AF xor a 4A9F 77 ld (hl), a ; set level data to 0 4AA0 CD F9 50 call print_character ; display it 4AA3 3A 70 EF ld a, (0EF70h) ; number of gold boxes 4AA6 3D dec a ; adjust 4AA7 32 70 EF ld (0EF70h), a ; store 4AAA 11 FA 00 ld de, 250 ; number of points 4AAD CD 27 51 call add_points_and_score_2_ascii ; add to score 4AB0 3A A3 EF ld a, (0EFA3h) 4AB3 CB CF set 1, a 4AB5 32 A3 EF ld (0EFA3h), a 4AB8 E1 pop hl 4AB9 D1 pop de 4ABA C9 ret 4ABA ; End of function pickup_gold_and_add_points 4ABA 4ABB 4ABB ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 4ABB 4ABB 4ABB update_player_enemy_pixel_coords: ; CODE XREF: init_and_display_new_level+Cp 4ABB 21 03 EF ; seg000:4166p ... 4ABB ld hl, 0EF03h ; current column 4ABE 11 05 EF ld de, 0EF05h ; tile offset 4AC1 01 01 EF ld bc, 0EF01h ; ptr pixel coords + 1 4AC4 CD EA 4F call calc_man_pixel_coords 4AC7 3A 73 EF ld a, (0EF73h) ; length of enemy coord table 4ACA 47 ld b, a 4ACB CB 38 srl b ; num enemies 4ACD 21 ED 4A ld hl, 4AEDh ; table of enemy data 4AD0 4AD0 loc_4AD0: ; CODE XREF: update_player_enemy_pixel_coords+2Fj 4AD0 C5 push bc 4AD1 4E ld c, (hl) 4AD2 23 inc hl 4AD3 46 ld b, (hl) ; ptr enemy pixel coords 4AD4 23 inc hl 4AD5 5E ld e, (hl) 4AD6 23 inc hl 4AD7 56 ld d, (hl) ; ptr tile offset 4AD8 E5 push hl 4AD9 D5 push de ; ptr tile offset 4ADA EB ex de, hl 4ADB 13 inc de ; next enemy data byte 4ADC 1A ld a, (de) 4ADD 6F ld l, a 4ADE 13 inc de 4ADF 1A ld a, (de) 4AE0 67 ld h, a ; ptr enemy column 4AE1 D1 pop de ; tile offset 4AE2 CD EA 4F call calc_man_pixel_coords 4AE5 E1 pop hl 4AE6 23 inc hl 4AE7 23 inc hl 4AE8 23 inc hl 4AE9 C1 pop bc 4AEA 10 E4 djnz loc_4AD0 ; loop thru all enemies 4AEC C9 ret 4AEC ; End of function update_player_enemy_pixel_coords 4AEC 4AEC ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 4AED 11 EF .dw 0EF11h 4AEF 25 EF .dw 0EF25h 4AF1 1B EF .dw 0EF1Bh 4AF3 13 EF .dw 0EF13h 4AF5 27 EF .dw 0EF27h 4AF7 1D EF .dw 0EF1Dh 4AF9 15 EF .dw 0EF15h 4AFB 29 EF .dw 0EF29h 4AFD 1F EF .dw 0EF1Fh 4AFF 17 EF .dw 0EF17h 4B01 2B EF .dw 0EF2Bh 4B03 21 EF .dw 0EF21h 4B05 19 EF .dw 0EF19h 4B07 2D EF .dw 0EF2Dh 4B09 23 EF .dw 0EF23h 4B0B 4B0B ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 4B0B 4B0B 4B0B sub_4B0B: ; CODE XREF: test_and_do_dig_right+F8p 4B0B 06 1B ; sub_499A+F8p 4B0B ld b, 1Bh 4B0D 21 00 E8 ld hl, 0E800h 4B10 4B10 loc_4B10: ; CODE XREF: sub_4B0B+Cj 4B10 7E ld a, (hl) 4B11 A7 and a 4B12 28 06 jr z, loc_4B1A 4B14 23 inc hl 4B15 23 inc hl 4B16 23 inc hl 4B17 10 F7 djnz loc_4B10 4B19 C9 ret 4B1A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 4B1A 4B1A loc_4B1A: ; CODE XREF: sub_4B0B+7j 4B1A 3E B2 ld a, 0B2h ; '' 4B1C 77 ld (hl), a 4B1D 23 inc hl 4B1E 73 ld (hl), e 4B1F 23 inc hl 4B20 72 ld (hl), d 4B21 C9 ret 4B21 ; End of function sub_4B0B 4B21 4B22 4B22 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 4B22 4B22 4B22 sub_4B22: ; CODE XREF: seg000:4169p 4B22 06 1B ; seg000:42BCp 4B22 ld b, 1Bh 4B24 21 00 E8 ld hl, 0E800h 4B27 4B27 loc_4B27: ; CODE XREF: sub_4B22+Ej 4B27 C5 push bc 4B28 7E ld a, (hl) 4B29 A7 and a 4B2A 20 07 jr nz, loc_4B33 4B2C 4B2C loc_4B2C: ; CODE XREF: sub_4B22+7Ej 4B2C 23 inc hl 4B2D 23 inc hl 4B2E 23 inc hl 4B2F 4B2F loc_4B2F: ; CODE XREF: sub_4B22+62j 4B2F C1 ; sub_4B22+7Aj ... 4B2F pop bc 4B30 10 F5 djnz loc_4B27 4B32 C9 ret 4B33 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 4B33 4B33 loc_4B33: ; CODE XREF: sub_4B22+8j 4B33 3D dec a 4B34 77 ld (hl), a 4B35 A7 and a 4B36 20 4E jr nz, loc_4B86 4B38 23 inc hl 4B39 5E ld e, (hl) 4B3A 23 inc hl 4B3B 56 ld d, (hl) 4B3C E5 push hl 4B3D 3A 1B EF ld a, (0EF1Bh) 4B40 BA cp d 4B41 CC B8 4B call z, sub_4BB8 4B44 3A 1D EF ld a, (0EF1Dh) 4B47 BA cp d 4B48 CC DE 4B call z, sub_4BDE 4B4B 3A 1F EF ld a, (0EF1Fh) 4B4E BA cp d 4B4F CC 04 4C call z, sub_4C04 4B52 3A 21 EF ld a, (0EF21h) 4B55 BA cp d 4B56 CC 2A 4C call z, sub_4C2A 4B59 3A 23 EF ld a, (0EF23h) 4B5C BA cp d 4B5D CC 50 4C call z, sub_4C50 4B60 3A 03 EF ld a, (0EF03h) ; get current column 4B63 BA cp d 4B64 CC 76 4C call z, sub_4C76 4B67 CD 5A 50 call disable_vdp_interrupts 4B6A CD 33 50 call get_ptr_level_data_of_row_col 4B6D 7E ld a, (hl) ; level data 4B6E FE 07 cp 7 ; gold box? 4B70 20 07 jr nz, loc_4B79 ; no, skip 4B72 3A 70 EF ld a, (0EF70h) ; number of gold boxes 4B75 3D dec a ; adjust 4B76 32 70 EF ld (0EF70h), a ; store 4B79 4B79 loc_4B79: ; CODE XREF: sub_4B22+4Ej 4B79 3E 02 ld a, 2 ; diggable brick 4B7B 77 ld (hl), a ; store as level data 4B7C CD F9 50 call print_character ; display 4B7F CD 61 50 call enable_vdp_interrupts 4B82 E1 pop hl 4B83 23 inc hl 4B84 18 A9 jr loc_4B2F 4B86 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 4B86 4B86 loc_4B86: ; CODE XREF: sub_4B22+14j 4B86 FE 08 cp 8 4B88 20 14 jr nz, loc_4B9E 4B8A 23 inc hl 4B8B 5E ld e, (hl) 4B8C 23 inc hl 4B8D 56 ld d, (hl) 4B8E E5 push hl 4B8F CD 5A 50 call disable_vdp_interrupts 4B92 3E 0B ld a, 0Bh ; hole closing #2 4B94 CD F9 50 call print_character 4B97 CD 61 50 call enable_vdp_interrupts 4B9A E1 pop hl 4B9B 23 inc hl 4B9C 18 91 jr loc_4B2F 4B9E ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 4B9E 4B9E loc_4B9E: ; CODE XREF: sub_4B22+66j 4B9E FE 10 cp 10h 4BA0 C2 2C 4B jp nz, loc_4B2C 4BA3 23 inc hl 4BA4 5E ld e, (hl) 4BA5 23 inc hl 4BA6 56 ld d, (hl) 4BA7 E5 push hl 4BA8 CD 5A 50 call disable_vdp_interrupts 4BAB 3E 0A ld a, 0Ah ; hole closing #1 4BAD CD F9 50 call print_character 4BB0 CD 61 50 call enable_vdp_interrupts 4BB3 E1 pop hl 4BB4 23 inc hl 4BB5 C3 2F 4B jp loc_4B2F 4BB5 ; End of function sub_4B22 4BB5 4BB8 4BB8 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 4BB8 4BB8 4BB8 sub_4BB8: ; CODE XREF: sub_4B22+1Fp 4BB8 3A 1A EF ld a, (0EF1Ah) ; enemy #1 row 4BBB BB cp e 4BBC 28 09 jr z, loc_4BC7 4BBE 3C inc a 4BBF BB cp e 4BC0 C0 ret nz 4BC1 3A 24 EF ld a, (0EF24h) 4BC4 FE 02 cp 2 4BC6 D8 ret c 4BC7 4BC7 loc_4BC7: ; CODE XREF: sub_4BB8+4j 4BC7 D5 push de 4BC8 3E 1E ld a, 1Eh 4BCA 32 F0 EF ld (0EFF0h), a 4BCD CD 46 53 call sub_5346 4BD0 32 1B EF ld (0EF1Bh), a 4BD3 79 ld a, c 4BD4 32 1A EF ld (0EF1Ah), a ; store enemy #1 row 4BD7 3E 50 ld a, 50h ; 'P' 4BD9 32 2E EF ld (0EF2Eh), a 4BDC D1 pop de 4BDD C9 ret 4BDD ; End of function sub_4BB8 4BDD 4BDE 4BDE ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 4BDE 4BDE 4BDE sub_4BDE: ; CODE XREF: sub_4B22+26p 4BDE 3A 1C EF ld a, (0EF1Ch) 4BE1 BB cp e 4BE2 28 09 jr z, loc_4BED 4BE4 3C inc a 4BE5 BB cp e 4BE6 C0 ret nz 4BE7 3A 26 EF ld a, (0EF26h) 4BEA FE 02 cp 2 4BEC D8 ret c 4BED 4BED loc_4BED: ; CODE XREF: sub_4BDE+4j 4BED D5 push de 4BEE 3E 1E ld a, 1Eh 4BF0 32 F1 EF ld (0EFF1h), a 4BF3 CD 46 53 call sub_5346 4BF6 32 1D EF ld (0EF1Dh), a 4BF9 79 ld a, c 4BFA 32 1C EF ld (0EF1Ch), a 4BFD 3E 50 ld a, 50h ; 'P' 4BFF 32 2F EF ld (0EF2Fh), a 4C02 D1 pop de 4C03 C9 ret 4C03 ; End of function sub_4BDE 4C03 4C04 4C04 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 4C04 4C04 4C04 sub_4C04: ; CODE XREF: sub_4B22+2Dp 4C04 3A 1E EF ld a, (0EF1Eh) 4C07 BB cp e 4C08 28 09 jr z, loc_4C13 4C0A 3C inc a 4C0B BB cp e 4C0C C0 ret nz 4C0D 3A 28 EF ld a, (0EF28h) 4C10 FE 02 cp 2 4C12 D8 ret c 4C13 4C13 loc_4C13: ; CODE XREF: sub_4C04+4j 4C13 D5 push de 4C14 3E 1E ld a, 1Eh 4C16 32 F2 EF ld (0EFF2h), a 4C19 CD 46 53 call sub_5346 4C1C 32 1F EF ld (0EF1Fh), a 4C1F 79 ld a, c 4C20 32 1E EF ld (0EF1Eh), a 4C23 3E 50 ld a, 50h ; 'P' 4C25 32 30 EF ld (0EF30h), a 4C28 D1 pop de 4C29 C9 ret 4C29 ; End of function sub_4C04 4C29 4C2A 4C2A ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 4C2A 4C2A 4C2A sub_4C2A: ; CODE XREF: sub_4B22+34p 4C2A 3A 20 EF ld a, (0EF20h) 4C2D BB cp e 4C2E 28 09 jr z, loc_4C39 4C30 3C inc a 4C31 BB cp e 4C32 C0 ret nz 4C33 3A 2A EF ld a, (0EF2Ah) 4C36 FE 02 cp 2 4C38 D8 ret c 4C39 4C39 loc_4C39: ; CODE XREF: sub_4C2A+4j 4C39 D5 push de 4C3A 3E 1E ld a, 1Eh 4C3C 32 F3 EF ld (0EFF3h), a 4C3F CD 46 53 call sub_5346 4C42 32 21 EF ld (0EF21h), a 4C45 79 ld a, c 4C46 32 20 EF ld (0EF20h), a 4C49 3E 50 ld a, 50h ; 'P' 4C4B 32 31 EF ld (0EF31h), a 4C4E D1 pop de 4C4F C9 ret 4C4F ; End of function sub_4C2A 4C4F 4C50 4C50 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 4C50 4C50 4C50 sub_4C50: ; CODE XREF: sub_4B22+3Bp 4C50 3A 22 EF ld a, (0EF22h) 4C53 BB cp e 4C54 28 09 jr z, loc_4C5F 4C56 3C inc a 4C57 BB cp e 4C58 C0 ret nz 4C59 3A 2C EF ld a, (0EF2Ch) 4C5C FE 02 cp 2 4C5E D8 ret c 4C5F 4C5F loc_4C5F: ; CODE XREF: sub_4C50+4j 4C5F D5 push de 4C60 3E 1E ld a, 1Eh 4C62 32 F4 EF ld (0EFF4h), a 4C65 CD 46 53 call sub_5346 4C68 32 23 EF ld (0EF23h), a 4C6B 79 ld a, c 4C6C 32 22 EF ld (0EF22h), a 4C6F 3E 50 ld a, 50h ; 'P' 4C71 32 32 EF ld (0EF32h), a 4C74 D1 pop de 4C75 C9 ret 4C75 ; End of function sub_4C50 4C75 4C76 4C76 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 4C76 4C76 4C76 sub_4C76: ; CODE XREF: sub_4B22+42p 4C76 3A 02 EF ld a, (0EF02h) ; get current row 4C79 BB cp e 4C7A 20 05 jr nz, locret_4C81 4C7C 3E 01 ld a, 1 4C7E 32 A9 EF ld (0EFA9h), a 4C81 4C81 locret_4C81: ; CODE XREF: sub_4C76+4j 4C81 C9 ret 4C81 ; End of function sub_4C76 4C81 4C82 4C82 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 4C82 4C82 4C82 show_title_screen: ; CODE XREF: seg000:40C0p 4C82 16 0B ld d, 0Bh ; column 11 4C84 1E 0A ld e, 0Ah ; line 10 4C86 21 30 4D ld hl, 4D30h ; "licensed from" 4C89 CD 18 4E call print_string_at_XXX_d 4C8C 16 0C ld d, 0Ch ; column 12 4C8E 1E 0C ld e, 0Ch ; line 12 4C90 21 3E 4D ld hl, 4D3Eh ; "broderbund software" 4C93 CD 18 4E call print_string_at_XXX_d 4C96 16 0E ld d, 0Eh ; column 14 4C98 1E 0F ld e, 0Fh ; line 15 4C9A 21 52 4D ld hl, 4D52h ; "copyright 1983" 4C9D CD 18 4E call print_string_at_XXX_d 4CA0 16 0F ld d, 0Fh ; column 15 4CA2 1E 11 ld e, 11h ; line 17 4CA4 21 61 4D ld hl, 4D61h ; "by doug smith" 4CA7 CD 18 4E call print_string_at_XXX_d 4CAA 16 02 ld d, 2 ; column 2 4CAC 1E 11 ld e, 11h ; line 17 4CAE 21 70 4D ld hl, 4D70h ; diggable and solid bricks 4CB1 CD 18 4E call print_string_at_XXX_d 4CB4 16 02 ld d, 2 ; column 2 4CB6 1E 0F ld e, 0Fh ; line 15 4CB8 21 7C 4D ld hl, 4D7Ch ; bricks, ladder etc 4CBB CD 18 4E call print_string_at_XXX_d 4CBE 16 03 ld d, 3 ; column 3 4CC0 1E 10 ld e, 10h ; line 16 4CC2 21 87 4D ld hl, 4D87h ; ladder, man running left 4CC5 CD 18 4E call print_string_at_XXX_d 4CC8 16 04 ld d, 4 ; column 4 4CCA 1E 0E ld e, 0Eh ; line 14 4CCC 21 8A 4D ld hl, 4D8Ah ; men, ladder 4CCF CD 18 4E call print_string_at_XXX_d 4CD2 16 02 ld d, 2 ; column 2 4CD4 1E 06 ld e, 6 ; line 6 4CD6 21 90 4D ld hl, 4D90h ; rope 4CD9 CD 18 4E call print_string_at_XXX_d 4CDC 3E 1F ld a, 1Fh ; man falling 4CDE 16 08 ld d, 8 ; column 8 4CE0 1E 05 ld e, 5 ; line 5 4CE2 CD F9 50 call print_character 4CE5 3E 1F ld a, 1Fh ; man falling 4CE7 5A ld e, d ; line 4CE8 16 06 ld d, 6 ; column 6 4CEA CD F9 50 call print_character 4CED 43 ld b, e 4CEE 53 ld d, e 4CEF 1E 06 ld e, 6 ; line 6 4CF1 3E 05 ld a, 5 ; ladder 4CF3 4CF3 loc_4CF3: ; CODE XREF: show_title_screen+77j 4CF3 C5 push bc 4CF4 CD F9 50 call print_character 4CF7 C1 pop bc 4CF8 1C inc e ; next line 4CF9 10 F8 djnz loc_4CF3 ; show ladder on title screen 4CFB 21 0E 4D ld hl, 4D0Eh ; Title graphics 4CFE 4CFE loc_4CFE: ; CODE XREF: show_title_screen+8Aj 4CFE 7E ld a, (hl) ; get character 4CFF FE FF cp 0FFh ; end of graphics? 4D01 C8 ret z ; yes, return 4D02 23 inc hl 4D03 5E ld e, (hl) ; get line 4D04 23 inc hl 4D05 56 ld d, (hl) ; get column 4D06 23 inc hl 4D07 E5 push hl 4D08 CD 97 4D call print_3x3_character 4D0B E1 pop hl 4D0C 18 F0 jr loc_4CFE ; next character 4D0C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 4D0E A0 01 02 .db 0A0h, 1, 2 ; "L" 4D11 AC 01 05 .db 0ACh, 1, 5 ; "O" 4D14 D0 01 08 .db 0D0h, 1, 8 ; "D" 4D17 D3 01 0B .db 0D3h, 1, 0Bh ; "E" 4D1A A3 05 0B .db 0A3h, 5, 0Bh ; "R" 4D1D A6 05 0E .db 0A6h, 5, 0Eh ; "U" 4D20 A9 05 11 .db 0A9h, 5, 11h ; "N" 4D23 A9 05 14 .db 0A9h, 5, 14h ; "N" 4D26 D3 05 17 .db 0D3h, 5, 17h ; "E" 4D29 D6 05 1A .db 0D6h, 5, 1Ah ; "R" 4D2C D9 09 19 .db 0D9h, 9, 19h ; Broderbund logo 4D2F FF .db 0FFh ; 4D30 4C 49 43 45+aLicensedfrom: .text "LICENSED" 4D30 4E 53 45 44+ .db 0 4D30 00 46 52 4F+ .text "FROM" 4D3D FF .db 0FFh ; 4D3E 42 52 4F 44+aBroderbundsoftware:.text "BRODERBUND" 4D3E 45 52 42 55+ .db 0 4D3E 4E 44 00 53+ .text "SOFTWARE" 4D51 FF .db 0FFh ; 4D52 43 4F 50 59+aCopyright1983: .text "COPYRIGHT" 4D52 52 49 47 48+ .db 0 4D52 54 00 31 39+ .text "1983" 4D60 FF .db 0FFh ; 4D61 00 42 59 00+aBydougsmith: .db 0 4D61 44 4F 55 47+ .text "BY" 4D61 00 53 4D 49+ .db 0 4D61 54 48 .text "DOUG" 4D61 .db 0 4D61 .text "SMITH" 4D6F FF .db 0FFh ; 4D70 02 02 02 03+ .db 2, 2, 2, 3, 2, 3, 3, 3, 2, 2, 2 ; bricks & solid 4D7B FF .db 0FFh ; 4D7C 02 05 02 02+ .db 2, 5, 2, 2, 28h, 2, 2, 2, 2, 2 ; bricks, ladder ec 4D86 FF .db 0FFh ; 4D87 05 08 .db 5, 8 ; ladder, man running left 4D89 FF .db 0FFh ; 4D8A 11 00 27 20+ .db 11h, 0, 27h, 20h, 5 ; men, ladder 4D8F FF .db 0FFh ; 4D90 04 04 04 04+ .db 4, 4, 4, 4, 4, 4 ; rope 4D96 FF .db 0FFh ; 4D97 4D97 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 4D97 4D97 4D97 print_3x3_character: ; CODE XREF: show_title_screen+86p 4D97 0E 03 ld c, 3 4D99 4D99 loc_4D99: ; CODE XREF: print_3x3_character+15j 4D99 06 03 ld b, 3 4D9B 4D9B loc_4D9B: ; CODE XREF: print_3x3_character+Bj 4D9B C5 push bc 4D9C CD F9 50 call print_character 4D9F 3C inc a ; next character 4DA0 14 inc d ; next column 4DA1 C1 pop bc 4DA2 10 F7 djnz loc_4D9B ; done line? no, loop 4DA4 26 0D ld h, 13 4DA6 84 add a, h ; add 13 to character code 4DA7 1C inc e ; next line 4DA8 15 dec d 4DA9 15 dec d 4DAA 15 dec d ; go back 3 columns 4DAB 0D dec c ; done all 3 lines? 4DAC 20 EB jr nz, loc_4D99 ; no, loop 4DAE C9 ret 4DAE ; End of function print_3x3_character 4DAE 4DAF 4DAF ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 4DAF 4DAF 4DAF display_level_score_text: ; CODE XREF: seg000:410Bp 4DAF E5 ; sub_623B+Bp 4DAF push hl 4DB0 AF xor a ; space 4DB1 1E 10 ld e, 10h ; line=16 4DB3 57 ld d, a ; col=0 4DB4 CD F9 50 call print_character 4DB7 14 inc d ; next col 4DB8 CD F9 50 call print_character 4DBB 14 inc d ; next col 4DBC 3E 0C ld a, 12 ; solid line under level 4DBE 06 1C ld b, 28 ; 28 cols across screen 4DC0 4DC0 loc_4DC0: ; CODE XREF: display_level_score_text+17j 4DC0 C5 push bc 4DC1 CD F9 50 call print_character 4DC4 C1 pop bc 4DC5 14 inc d ; done screen? 4DC6 10 F8 djnz loc_4DC0 ; no, loop 4DC8 AF xor a ; space 4DC9 CD F9 50 call print_character 4DCC 14 inc d ; next col 4DCD CD F9 50 call print_character 4DD0 16 00 ld d, 0 ; col=0 4DD2 1E 11 ld e, 17 ; line=17 4DD4 21 FF 4D ld hl, 4DFFh ; "SCORE" 4DD7 CD 18 4E call print_string_at_XXX_d 4DDA 16 0E ld d, 14 ; col=14 4DDC 1E 11 ld e, 17 ; line=17 4DDE 21 07 4E ld hl, 4E07h ; "MEN" 4DE1 CD 18 4E call print_string_at_XXX_d 4DE4 16 15 ld d, 21 ; col=21 4DE6 1E 11 ld e, 17 ; line=17 4DE8 21 0C 4E ld hl, 4E0Ch ; "LEVEL" 4DEB CD 18 4E call print_string_at_XXX_d 4DEE 16 00 ld d, 0 ; col=0 4DF0 1E 12 ld e, 18 ; line=18 4DF2 06 20 ld b, 32 ; 32 chars across 4DF4 4DF4 loc_4DF4: ; CODE XREF: display_level_score_text+4Cj 4DF4 AF xor a ; space 4DF5 C5 push bc 4DF6 CD F9 50 call print_character 4DF9 C1 pop bc 4DFA 14 inc d ; next col 4DFB 10 F7 djnz loc_4DF4 ; done line? no, loop 4DFD E1 pop hl 4DFE C9 ret 4DFE ; End of function display_level_score_text 4DFE 4DFE ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 4DFF 00 00 53 43+aScore: .db 0 4DFF 4F 52 45 .db 0 4DFF .text "SCORE" 4E06 FF .db 0FFh ; 4E07 00 4D 45 4E aMen: .db 0 4E07 .text "MEN" 4E0B FF .db 0FFh ; 4E0C 00 4C 45 56+aLevel: .db 0 4E0C 45 4C 00 00+ .text "LEVEL" 4E0C 00 00 00 .db 0 4E0C .db 0 4E0C .db 0 4E0C .db 0 4E0C .db 0 4E17 FF .db 0FFh ; 4E18 4E18 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 4E18 4E18 4E18 print_string_at_XXX_d: ; CODE XREF: show_title_screen+7p 4E18 F5 ; show_title_screen+11p ... 4E18 push af 4E19 D5 push de 4E1A 4E1A loc_4E1A: ; CODE XREF: print_string_at_XXX_d+Ej 4E1A 7E ld a, (hl) ; get character 4E1B FE FF cp 0FFh ; end of string? 4E1D 28 09 jr z, loc_4E28 ; yes, skip 4E1F E5 push hl 4E20 CD F9 50 call print_character 4E23 E1 pop hl 4E24 14 inc d 4E25 23 inc hl ; next character 4E26 18 F2 jr loc_4E1A ; loop 4E28 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 4E28 4E28 loc_4E28: ; CODE XREF: print_string_at_XXX_d+5j 4E28 D1 pop de 4E29 F1 pop af 4E2A C9 ret 4E2A ; End of function print_string_at_XXX_d 4E2A 4E2B 4E2B ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 4E2B 4E2B 4E2B sub_4E2B: ; CODE XREF: display_level+39p 4E2B 3A 73 EF ld a, (0EF73h) ; length of enemy coord table 4E2E CB 3F srl a ; num enemies 4E30 47 ld b, a 4E31 3E 05 ld a, 5 4E33 A7 and a 4E34 98 sbc a, b 4E35 4F ld c, a 4E36 21 5B EF ld hl, 0EF5Bh 4E39 3E 08 ld a, 8 4E3B 4E3B loc_4E3B: ; CODE XREF: sub_4E2B+12j 4E3B 77 ld (hl), a 4E3C 23 inc hl 4E3D 10 FC djnz loc_4E3B 4E3F 79 ld a, c 4E40 A7 and a 4E41 28 06 jr z, locret_4E49 4E43 41 ld b, c 4E44 AF xor a 4E45 4E45 loc_4E45: ; CODE XREF: sub_4E2B+1Cj 4E45 77 ld (hl), a 4E46 23 inc hl 4E47 10 FC djnz loc_4E45 4E49 4E49 locret_4E49: ; CODE XREF: sub_4E2B+16j 4E49 C9 ret 4E49 ; End of function sub_4E2B 4E49 4E4A 4E4A ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 4E4A 4E4A 4E4A read_joystick_and_keys: ; CODE XREF: seg000:4282p 4E4A CD 5A 50 ; seg000:42B0p 4E4A call disable_vdp_interrupts 4E4D 3E 0F ld a, 0Fh ; select R15 4E4F 1E 8F ld e, 8Fh ; '' ; LED off, select input 4E51 CD 93 00 call 93h ; write data to PSG register 4E54 3E 0E ld a, 0Eh ; select R14 (joystick) 4E56 CD 96 00 call 96h ; read data from PSG register 4E59 E6 3F and 3Fh ; '?' ; mask off unused bits 4E5B CB 6F bit 5, a ; trigger B? 4E5D 20 0D jr nz, loc_4E6C ; no, skip 4E5F 3A A0 EF ld a, (0EFA0h) 4E62 A7 and a 4E63 20 16 jr nz, loc_4E7B 4E65 3E 01 ld a, 1 4E67 32 A0 EF ld (0EFA0h), a 4E6A 18 0F jr loc_4E7B 4E6C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 4E6C 4E6C loc_4E6C: ; CODE XREF: read_joystick_and_keys+13j 4E6C CB 67 bit 4, a ; trigger A? 4E6E 20 0B jr nz, loc_4E7B ; no, skip 4E70 3A A0 EF ld a, (0EFA0h) 4E73 A7 and a 4E74 20 05 jr nz, loc_4E7B 4E76 3E 02 ld a, 2 4E78 32 A0 EF ld (0EFA0h), a 4E7B 4E7B loc_4E7B: ; CODE XREF: read_joystick_and_keys+19j 4E7B 32 A1 EF ; read_joystick_and_keys+20j ... 4E7B ld (0EFA1h), a ; store 4E7E FE 3F cp 3Fh ; '?' ; any joystick active? 4E80 20 44 jr nz, loc_4EC6 ; yes, skip 4E82 3E 08 ld a, 8 ; line 8 (arrow keys) 4E84 CD 41 01 call 141h ; read keyboard line 4E87 E6 F1 and 0F1h ; '' ; arrows & space only 4E89 47 ld b, a ; store 4E8A C5 push bc 4E8B 3E 05 ld a, 5 ; line 5 - ZYX etc 4E8D CD 41 01 call 141h ; read keyboard line 4E90 C1 pop bc 4E91 E6 A0 and 0A0h ; '' ; Z,X only 4E93 CB 0F rrc a 4E95 CB 0F rrc a 4E97 CB 0F rrc a 4E99 CB 0F rrc a 4E9B B0 or b ; RT,DN,UP,LEFT,Z,0,X,SPACE 4E9C 32 20 F0 ld (0F020h), a ; store 4E9F CB 4F bit 1, a ; ? 4EA1 20 0D jr nz, loc_4EB0 ; no, skip 4EA3 3A A0 EF ld a, (0EFA0h) 4EA6 A7 and a 4EA7 20 16 jr nz, loc_4EBF 4EA9 3E 01 ld a, 1 4EAB 32 A0 EF ld (0EFA0h), a 4EAE 18 0F jr loc_4EBF 4EB0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 4EB0 4EB0 loc_4EB0: ; CODE XREF: read_joystick_and_keys+57j 4EB0 CB 5F bit 3, a ; ? 4EB2 20 0B jr nz, loc_4EBF ; no, skip 4EB4 3A A0 EF ld a, (0EFA0h) 4EB7 A7 and a 4EB8 20 05 jr nz, loc_4EBF 4EBA 3E 02 ld a, 2 4EBC 32 A0 EF ld (0EFA0h), a 4EBF 4EBF loc_4EBF: ; CODE XREF: read_joystick_and_keys+5Dj 4EBF 3A 20 F0 ; read_joystick_and_keys+64j ... 4EBF ld a, (0F020h) ; keys 4EC2 CB 47 bit 0, a ; ? 4EC4 20 05 jr nz, loc_4ECB ; no, skip 4EC6 4EC6 loc_4EC6: ; CODE XREF: read_joystick_and_keys+36j 4EC6 3E FF ld a, 0FFh ; no keys 4EC8 32 20 F0 ld (0F020h), a ; store 4ECB 4ECB loc_4ECB: ; CODE XREF: read_joystick_and_keys+7Aj 4ECB CD 61 50 call enable_vdp_interrupts 4ECE C9 ret 4ECE ; End of function read_joystick_and_keys 4ECE 4ECF 4ECF ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 4ECF 4ECF 4ECF display_eos_ladder: ; CODE XREF: seg000:4170p 4ECF CD 5A 50 ; seg000:42C3p 4ECF call disable_vdp_interrupts 4ED2 3A 71 EF ld a, (0EF71h) ; any eos ladders? 4ED5 A7 and a 4ED6 28 19 jr z, loc_4EF1 ; no, skip 4ED8 CB 3F srl a ; get number of entries 4EDA 47 ld b, a ; store 4EDB 21 80 E8 ld hl, 0E880h ; base of eos ladder data 4EDE 4EDE loc_4EDE: ; CODE XREF: display_eos_ladder+20j 4EDE 5E ld e, (hl) ; row 4EDF 23 inc hl 4EE0 56 ld d, (hl) ; colum 4EE1 23 inc hl 4EE2 E5 push hl 4EE3 CD 33 50 call get_ptr_level_data_of_row_col 4EE6 3E 05 ld a, 5 ; ladder 4EE8 77 ld (hl), a ; store as level data 4EE9 C5 push bc 4EEA CD F9 50 call print_character ; display ladder 4EED C1 pop bc 4EEE E1 pop hl 4EEF 10 ED djnz loc_4EDE ; loop for all eos ladder data 4EF1 4EF1 loc_4EF1: ; CODE XREF: display_eos_ladder+7j 4EF1 3E FF ld a, 0FFh 4EF3 32 70 EF ld (0EF70h), a ; set num gold boxes = $FF 4EF6 CD 61 50 call enable_vdp_interrupts 4EF9 C9 ret 4EF9 ; End of function display_eos_ladder 4EF9 4EFA 4EFA ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 4EFA 4EFA 4EFA create_level_data_scratchpad: ; CODE XREF: init_and_display_new_level+3p 4EFA AF ; seg000:6427p ... 4EFA xor a 4EFB 32 70 EF ld (0EF70h), a ; zero number of gold boxes 4EFE 32 71 EF ld (0EF71h), a ; zero number of eos ladder tiles 4F01 2A 66 EF ld hl, (0EF66h) ; get level 4F04 2B dec hl ; 0-based 4F05 11 E0 00 ld de, 224 ; number of bytes in level data 4F08 CD 0B 51 call calc_level_data_offset 4F0B 11 7D 7D ld de, 7D7Dh ; start of level data 4F0E 19 add hl, de ; addr of current level data 4F0F EB ex de, hl 4F10 0E 00 ld c, 0 ; line count = 0 4F12 21 00 E0 ld hl, 0E000h 4F15 4F15 loc_4F15: ; CODE XREF: create_level_data_scratchpad+4Cj 4F15 06 00 ld b, 0 4F17 AF xor a 4F18 77 ld (hl), a 4F19 23 inc hl 4F1A 04 inc b 4F1B 77 ld (hl), a 4F1C 23 inc hl 4F1D 04 inc b ; store 2 pad bytes per line 4F1E 4F1E loc_4F1E: ; CODE XREF: create_level_data_scratchpad+41j 4F1E 1A ld a, (de) ; get level tile data 4F1F F5 push af 4F20 CB 3F srl a 4F22 CB 3F srl a 4F24 CB 3F srl a 4F26 CB 3F srl a ; get high nibble 4F28 CD 49 4F call handle_gold_and_eol_ladder 4F2B 77 ld (hl), a ; store in current level data 4F2C 04 inc b 4F2D F1 pop af 4F2E E6 0F and 0Fh ; get low nibble 4F30 23 inc hl 4F31 CD 49 4F call handle_gold_and_eol_ladder 4F34 77 ld (hl), a ; store in current level data 4F35 23 inc hl 4F36 13 inc de 4F37 04 inc b 4F38 3E 1E ld a, 30 4F3A B8 cp b ; done 2+28=30 (full line?) 4F3B 20 E1 jr nz, loc_4F1E ; no, loop 4F3D AF xor a 4F3E 77 ld (hl), a 4F3F 23 inc hl 4F40 77 ld (hl), a 4F41 23 inc hl ; store 2 more pad bytes per line (=32) 4F42 0C inc c ; next line 4F43 3E 10 ld a, 16 4F45 B9 cp c ; done all 16 lines? 4F46 20 CD jr nz, loc_4F15 ; no, loop 4F48 C9 ret 4F48 ; End of function create_level_data_scratchpad 4F48 4F49 4F49 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 4F49 4F49 4F49 handle_gold_and_eol_ladder: ; CODE XREF: create_level_data_scratchpad+2Ep 4F49 C5 ; create_level_data_scratchpad+37p 4F49 push bc 4F4A D5 push de 4F4B E5 push hl 4F4C F5 push af 4F4D FE 06 cp 6 ; end of level ladder? 4F4F 20 14 jr nz, loc_4F65 ; no, skip 4F51 11 80 E8 ld de, 0E880h 4F54 2A 71 EF ld hl, (0EF71h) ; number of bytes of eos ladder data 4F57 E5 push hl 4F58 19 add hl, de ; get offset for new entry 4F59 71 ld (hl), c ; line 4F5A 23 inc hl 4F5B 70 ld (hl), b ; column 4F5C E1 pop hl 4F5D 23 inc hl 4F5E 23 inc hl ; add 2 byhtes to count 4F5F 22 71 EF ld (0EF71h), hl ; store 4F62 F1 pop af 4F63 AF xor a ; change to space 4F64 F5 push af 4F65 4F65 loc_4F65: ; CODE XREF: handle_gold_and_eol_ladder+6j 4F65 F1 pop af 4F66 FE 07 cp 7 ; gold box? 4F68 20 04 jr nz, loc_4F6E ; no, skip 4F6A 21 70 EF ld hl, 0EF70h ; number of gold boxes 4F6D 34 inc (hl) ; inc counter of gold boxes 4F6E 4F6E loc_4F6E: ; CODE XREF: handle_gold_and_eol_ladder+1Fj 4F6E E1 pop hl 4F6F D1 pop de 4F70 C1 pop bc 4F71 C9 ret 4F71 ; End of function handle_gold_and_eol_ladder 4F71 4F72 4F72 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 4F72 4F72 4F72 display_level: ; CODE XREF: init_and_display_new_level+6p 4F72 3E D0 ; seg000:642Dp ... 4F72 ld a, 0D0h ; '' 4F74 21 00 3B ld hl, 3B00h ; sprite attribute table 4F77 CD 4E 50 call write_data_in_vram ; disable sprites 4F7A 21 00 00 ld hl, 0 4F7D 22 73 EF ld (0EF73h), hl ; zero length of enemy coords (== num enemies*2) 4F80 5D ld e, l ; row = 0 4F81 0E 10 ld c, 16 ; 16 rows in level 4F83 4F83 loc_4F83: ; CODE XREF: display_level+2Dj 4F83 16 00 ld d, 0 ; col = 0 4F85 06 20 ld b, 32 ; 32 per row 4F87 4F87 loc_4F87: ; CODE XREF: display_level+29j 4F87 C5 push bc 4F88 CD 33 50 call get_ptr_level_data_of_row_col 4F8B 7E ld a, (hl) ; get level data 4F8C FE 09 cp 9 ; player? 4F8E CC B5 4F call z, init_player_coords ; yes, call 4F91 FE 08 cp 8 ; enemy? 4F93 CC C9 4F call z, add_enemy_to_enemy_coord_table ; yes, call 4F96 CD F9 50 call print_character ; print on screen 4F99 14 inc d ; next col 4F9A C1 pop bc 4F9B 10 EA djnz loc_4F87 ; done row? no, loop 4F9D 1C inc e ; next line 4F9E 0D dec c ; done all lines? 4F9F 20 E2 jr nz, loc_4F83 ; no, loop 4FA1 06 0A ld b, 10 4FA3 AF xor a 4FA4 21 24 EF ld hl, 0EF24h 4FA7 4FA7 loc_4FA7: ; CODE XREF: display_level+37j 4FA7 77 ld (hl), a 4FA8 23 inc hl 4FA9 10 FC djnz loc_4FA7 4FAB CD 2B 4E call sub_4E2B 4FAE CD A2 51 call sub_51A2 4FB1 CD BB 4A call update_player_enemy_pixel_coords 4FB4 C9 ret 4FB4 ; End of function display_level 4FB4 4FB5 4FB5 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 4FB5 4FB5 4FB5 init_player_coords: ; CODE XREF: display_level+1Cp 4FB5 7A ld a, d 4FB6 32 03 EF ld (0EF03h), a ; store current column 4FB9 7B ld a, e 4FBA 32 02 EF ld (0EF02h), a ; store current row 4FBD CD 33 50 call get_ptr_level_data_of_row_col 4FC0 AF xor a 4FC1 77 ld (hl), a ; store empty square 4FC2 32 05 EF ld (0EF05h), a 4FC5 32 04 EF ld (0EF04h), a ; set tile offset to 0 4FC8 C9 ret 4FC8 ; End of function init_player_coords 4FC8 4FC9 4FC9 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 4FC9 4FC9 4FC9 add_enemy_to_enemy_coord_table: ; CODE XREF: display_level+21p 4FC9 C5 push bc 4FCA E5 push hl 4FCB CD 33 50 call get_ptr_level_data_of_row_col 4FCE AF xor a 4FCF 77 ld (hl), a ; store as empty square 4FD0 2A 73 EF ld hl, (0EF73h) ; get length of enemy coord table 4FD3 01 1B EF ld bc, 0EF1Bh ; table of enemy coords+1 4FD6 E5 push hl 4FD7 09 add hl, bc ; offset to next enemy 4FD8 72 ld (hl), d ; store enemy column 4FD9 01 1A EF ld bc, 0EF1Ah ; table of enemy coords 4FDC E1 pop hl 4FDD E5 push hl ; length of enemy coord table 4FDE 09 add hl, bc ; offset to next enemy 4FDF 73 ld (hl), e ; store enemy row 4FE0 E1 pop hl 4FE1 23 inc hl 4FE2 23 inc hl 4FE3 22 73 EF ld (0EF73h), hl ; store length of enemy coord table 4FE6 AF xor a 4FE7 E1 pop hl 4FE8 C1 pop bc 4FE9 C9 ret 4FE9 ; End of function add_enemy_to_enemy_coord_table 4FE9 4FEA 4FEA ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 4FEA 4FEA 4FEA calc_man_pixel_coords: ; CODE XREF: update_player_enemy_pixel_coords+9p 4FEA C5 ; update_player_enemy_pixel_coords+27p 4FEA push bc ; ptr pixel coords 4FEB 7E ld a, (hl) ; get current column 4FEC CB 27 sla a 4FEE CB 27 sla a 4FF0 CB 27 sla a ; col * 8 4FF2 47 ld b, a 4FF3 1A ld a, (de) ; tile offset 4FF4 CB 27 sla a ; offset * 2 4FF6 80 add a, b ; A = col * 8 + offset * 2 (pixel x) 4FF7 C1 pop bc 4FF8 E5 push hl 4FF9 60 ld h, b 4FFA 69 ld l, c 4FFB 77 ld (hl), a ; store pixel X 4FFC E1 pop hl ; current column 4FFD 2B dec hl ; HL = ptr current row 4FFE 1B dec de ; DE = ptr tile height 4FFF 0B dec bc ; dec ptr pixel coords 5000 C5 push bc 5001 7E ld a, (hl) ; get current row 5002 CB 27 sla a 5004 47 ld b, a ; B = current row * 2 5005 CB 27 sla a 5007 CB 27 sla a ; A = current row * 8 5009 80 add a, b ; current row * 10 (pixel y) 500A 47 ld b, a 500B 1A ld a, (de) ; get tile height 500C CB 27 sla a ; A = tile height * 2 500E 80 add a, b ; add tile height 500F E1 pop hl 5010 3D dec a 5011 77 ld (hl), a ; store pixel Y 5012 C9 ret 5012 ; End of function calc_man_pixel_coords 5012 5013 5013 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 5013 5013 5013 write_n_x_10bytes_to_vdp: ; CODE XREF: seg000:40EEp 5013 F5 push af 5014 C5 push bc 5015 D5 push de 5016 E5 push hl 5017 5017 loc_5017: ; CODE XREF: write_n_x_10bytes_to_vdp+19j 5017 CD 53 00 call 53h ; enable VDP to write (hl=vram address) 501A 3A 07 00 ld a, (7) ; base port VDP data write 501D 4F ld c, a 501E C5 push bc 501F 06 0A ld b, 10 5021 5021 loc_5021: ; CODE XREF: write_n_x_10bytes_to_vdp+12j 5021 1A ld a, (de) ; get data byte 5022 ED 79 out (c), a ; write to VDP data register 5024 13 inc de ; next data byte 5025 10 FA djnz loc_5021 ; do 10 times 5027 01 20 00 ld bc, 32 502A 09 add hl, bc ; next row 502B C1 pop bc ; number of 10-byte blocks to write 502C 10 E9 djnz loc_5017 ; done? no, loop 502E E1 pop hl 502F D1 pop de 5030 C1 pop bc 5031 F1 pop af 5032 C9 ret 5032 ; End of function write_n_x_10bytes_to_vdp 5032 5033 5033 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 5033 5033 5033 get_ptr_level_data_of_row_col: ; CODE XREF: seg000:439Cp 5033 F5 ; handle_up+Fp ... 5033 push af 5034 D5 push de 5035 CD 3F 50 call get_offset_of_row_col 5038 11 00 E0 ld de, 0E000h 503B 19 add hl, de 503C D1 pop de 503D F1 pop af 503E C9 ret 503E ; End of function get_ptr_level_data_of_row_col 503E 503F 503F ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 503F 503F 503F get_offset_of_row_col: ; CODE XREF: get_ptr_level_data_of_row_col+2p 503F D5 push de 5040 6B ld l, e 5041 26 00 ld h, 0 ; hl = line 5043 29 add hl, hl 5044 29 add hl, hl 5045 29 add hl, hl 5046 29 add hl, hl 5047 29 add hl, hl ; hl = line * 32 5048 5A ld e, d 5049 16 00 ld d, 0 504B 19 add hl, de ; hl = line * 32 + col 504C D1 pop de 504D C9 ret 504D ; End of function get_offset_of_row_col 504D 504E 504E ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 504E 504E 504E write_data_in_vram: ; CODE XREF: seg000:4075p 504E F5 ; seg000:445Bp ... 504E push af 504F C5 push bc 5050 D5 push de 5051 E5 push hl 5052 CD 4D 00 call 4Dh ; write data in vram 5055 E1 pop hl 5056 D1 pop de 5057 C1 pop bc 5058 F1 pop af 5059 C9 ret 5059 ; End of function write_data_in_vram 5059 505A 505A ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 505A 505A 505A disable_vdp_interrupts: ; CODE XREF: seg000:40E0p 505A F3 ; seg000:4108p ... 505A di 505B 01 01 C2 ld bc, 0C201h ; R1: VDP interrupts disabled 505E C3 47 00 jp 47h ; write data in the VDP register 505E ; End of function disable_vdp_interrupts 505E 5061 5061 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 5061 5061 5061 enable_vdp_interrupts: ; CODE XREF: seg000:40C3p 5061 FB ; seg000:4139p ... 5061 ei 5062 01 01 E2 ld bc, 0E201h ; R1: VDP interrupts enabled 5065 C3 47 00 jp 47h ; write data in the VDP register 5065 ; End of function enable_vdp_interrupts 5065 5068 5068 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 5068 5068 5068 get_screen_offset_of_row_col: ; CODE XREF: write_char_data_to_VDP+Dp 5068 F5 push af 5069 D5 push de ; x, y 506A D5 push de ; x, y 506B 06 00 ld b, 0 506D CB 3B srl e 506F CB 18 rr b 5071 CB 3B srl e ; e /= 4 5073 CB 18 rr b 5075 CB 38 srl b 5077 CB 38 srl b 5079 CB 38 srl b 507B CB 38 srl b 507D CB 38 srl b ; b = (y&3)*2 507F 7B ld a, e ; a = y/4 5080 D1 pop de 5081 83 add a, e ; a = 5*y/4 5082 67 ld h, a ; h = 5*y/4 5083 CB 22 sla d 5085 CB 22 sla d 5087 CB 22 sla d ; x *= 8 5089 6A ld l, d ; hl = ((320*y)&FF00)+ x*8 508A 16 00 ld d, 0 508C 58 ld e, b ; de = (y&3)*2 508D 19 add hl, de ; hl = ((320*y)&FF00) + x*8 + (y&3)*2 508E D1 pop de 508F F1 pop af 5090 C9 ret 5090 ; End of function get_screen_offset_of_row_col 5090 5091 5091 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 5091 5091 5091 get_ptr_char_data: ; CODE XREF: write_char_data_to_VDP+7p 5091 C5 push bc ; base of character table 5092 D5 push de ; x, y 5093 26 00 ld h, 0 5095 6F ld l, a ; HL = A (character to print) 5096 E5 push hl 5097 CB 25 sla l 5099 CB 14 rl h 509B CB 25 sla l 509D CB 14 rl h 509F CB 25 sla l 50A1 CB 14 rl h ; hl = char * 8 50A3 D1 pop de ; de = char 50A4 CB 23 sla e 50A6 CB 12 rl d ; char *= 2 50A8 19 add hl, de ; hl = char * 10 50A9 09 add hl, bc ; ptr to char data in table 50AA D1 pop de 50AB C1 pop bc 50AC C9 ret 50AC ; End of function get_ptr_char_data 50AC 50AD 50AD ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 50AD 50AD 50AD write_char_data_to_VDP: ; CODE XREF: print_character+6p 50AD F5 ; print_character+Fj 50AD push af 50AE C5 push bc 50AF D5 push de 50B0 E5 push hl 50B1 C5 push bc 50B2 44 ld b, h 50B3 4D ld c, l ; bc = base of character data 50B4 CD 91 50 call get_ptr_char_data 50B7 C1 pop bc 50B8 E5 push hl 50B9 C5 push bc 50BA CD 68 50 call get_screen_offset_of_row_col 50BD D1 pop de ; vram offset (passed in via BC) 50BE 19 add hl, de ; added vram offset 50BF D1 pop de 50C0 3E 08 ld a, 8 50C2 A7 and a 50C3 98 sbc a, b ; a = number of lines in 8x8 cell (part 1) 50C4 4F ld c, a 50C5 47 ld b, a 50C6 C5 push bc 50C7 CD 53 00 call 53h ; enable VDP to write 50CA EB ex de, hl 50CB 3A 07 00 ld a, (7) 50CE 4F ld c, a 50CF 50CF loc_50CF: ; CODE XREF: write_char_data_to_VDP+27j 50CF 7E ld a, (hl) ; get character data 50D0 ED 79 out (c), a ; write to VDP 50D2 23 inc hl ; next character data 50D3 13 inc de ; next vram location 50D4 10 F9 djnz loc_50CF ; done? no, loop 50D6 C1 pop bc 50D7 3E 0A ld a, 0Ah ; each char 10 lines 50D9 A7 and a 50DA 99 sbc a, c ; number of lines in 8x8 cell (part 2) 50DB 47 ld b, a 50DC EB ex de, hl 50DD D5 push de 50DE 11 08 00 ld de, 8 50E1 A7 and a 50E2 ED 52 sbc hl, de 50E4 D1 pop de 50E5 24 inc h ; next line in vram 50E6 CD 53 00 call 53h ; enable VDP to write 50E9 EB ex de, hl 50EA 3A 07 00 ld a, (7) 50ED 4F ld c, a 50EE 50EE loc_50EE: ; CODE XREF: write_char_data_to_VDP+45j 50EE 7E ld a, (hl) ; get character data 50EF ED 79 out (c), a ; write to VDP 50F1 23 inc hl ; next character data 50F2 10 FA djnz loc_50EE ; done? no, loop 50F4 E1 pop hl 50F5 D1 pop de 50F6 C1 pop bc 50F7 F1 pop af 50F8 C9 ret 50F8 ; End of function write_char_data_to_VDP 50F8 50F9 50F9 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 50F9 50F9 50F9 print_character: ; CODE XREF: test_and_do_dig_right+8Fp 50F9 01 00 00 ; test_and_do_dig_right+95p ... 50F9 ld bc, 0 ; vram offset = $0 50FC 21 7D 69 ld hl, 697Dh ; base of character table 50FF CD AD 50 call write_char_data_to_VDP 5102 01 00 20 ld bc, 2000h ; vram offset = $2000 5105 21 7D 73 ld hl, 737Dh ; base of attribute/colour data??? 5108 C3 AD 50 jp write_char_data_to_VDP 5108 ; End of function print_character 5108 510B 510B ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 510B 510B 510B calc_level_data_offset: ; CODE XREF: create_level_data_scratchpad+Ep 510B F5 ; sub_535C+Dp 510B push af 510C C5 push bc 510D 4D ld c, l 510E 44 ld b, h 510F 21 00 00 ld hl, 0 5112 3E 0F ld a, 15 5114 5114 loc_5114: ; CODE XREF: calc_level_data_offset+12j 5114 CB 23 sla e 5116 CB 12 rl d ; DE *= 2 5118 30 01 jr nc, loc_511B 511A 09 add hl, bc 511B 511B loc_511B: ; CODE XREF: calc_level_data_offset+Dj 511B 29 add hl, hl 511C 3D dec a 511D 20 F5 jr nz, loc_5114 511F B2 or d 5120 F2 24 51 jp p, loc_5124 5123 09 add hl, bc 5124 5124 loc_5124: ; CODE XREF: calc_level_data_offset+15j 5124 C1 pop bc 5125 F1 pop af 5126 C9 ret 5126 ; End of function calc_level_data_offset 5126 5127 5127 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 5127 5127 5127 add_points_and_score_2_ascii: ; CODE XREF: seg000:411Fp 5127 F5 ; seg000:420Ap ... 5127 push af 5128 C5 push bc 5129 D5 push de ; points to add 512A E5 push hl 512B 2A 62 EF ld hl, (0EF62h) ; current score % 10,000 512E 19 add hl, de ; add new points 512F 44 ld b, h 5130 4D ld c, l ; bc = new score 5131 11 10 27 ld de, 10000 5134 A7 and a 5135 ED 52 sbc hl, de ; more than 10,000? 5137 38 1F jr c, loc_5158 ; no, skip 5139 22 62 EF ld (0EF62h), hl ; score % 10,000 513C 2A 64 EF ld hl, (0EF64h) ; current score / 10,000 513F 23 inc hl 5140 11 E8 03 ld de, 1000 5143 A7 and a 5144 E5 push hl 5145 ED 52 sbc hl, de ; more than 1000? 5147 E1 pop hl 5148 38 09 jr c, loc_5153 ; no, skip 514A 21 0F 27 ld hl, 9999 514D 22 62 EF ld (0EF62h), hl ; score % 10,000 5150 21 E7 03 ld hl, 999 5153 5153 loc_5153: ; CODE XREF: add_points_and_score_2_ascii+21j 5153 22 64 EF ld (0EF64h), hl ; score / 10,000 5156 18 04 jr loc_515C 5158 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 5158 5158 loc_5158: ; CODE XREF: add_points_and_score_2_ascii+10j 5158 ED 43 62 EF ld (0EF62h), bc ; score % 10,000 515C 515C loc_515C: ; CODE XREF: add_points_and_score_2_ascii+2Fj 515C 2A 62 EF ld hl, (0EF62h) ; score % 10,000 515F 11 86 EF ld de, 0EF86h 5162 CD 38 67 call conv_signed_to_ASCII_decimal 5165 2A 64 EF ld hl, (0EF64h) ; score / 10,000 5168 11 80 EF ld de, 0EF80h 516B CD 38 67 call conv_signed_to_ASCII_decimal 516E E1 pop hl 516F D1 pop de 5170 C1 pop bc 5171 F1 pop af 5172 C9 ret 5172 ; End of function add_points_and_score_2_ascii 5172 5173 5173 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 5173 5173 5173 print_num_men_and_level: ; CODE XREF: init_and_display_new_level+9p 5173 F5 ; seg000:4323p ... 5173 push af 5174 C5 push bc 5175 D5 push de 5176 E5 push hl 5177 2A 68 EF ld hl, (0EF68h) ; get num men 517A 11 92 EF ld de, 0EF92h 517D CD 38 67 call conv_signed_to_ASCII_decimal 5180 2A 66 EF ld hl, (0EF66h) ; get level 5183 11 8C EF ld de, 0EF8Ch 5186 CD 38 67 call conv_signed_to_ASCII_decimal 5189 16 12 ld d, 18 ; column 18 518B 1E 11 ld e, 17 ; line 17 518D 21 95 EF ld hl, 0EF95h 5190 CD 2E 65 call print_string_n_plus_3 5193 16 1B ld d, 27 ; column 27 5195 1E 11 ld e, 17 ; line 17 5197 21 8F EF ld hl, 0EF8Fh 519A CD 2E 65 call print_string_n_plus_3 519D E1 pop hl 519E D1 pop de 519F C1 pop bc 51A0 F1 pop af 51A1 C9 ret 51A1 ; End of function print_num_men_and_level 51A1 51A2 51A2 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 51A2 51A2 51A2 sub_51A2: ; CODE XREF: init_and_display_new_levelp 51A2 3E 08 ; display_level+3Cp 51A2 ld a, 8 51A4 32 08 EF ld (0EF08h), a 51A7 06 05 ld b, 5 51A9 21 38 EF ld hl, 0EF38h 51AC 51AC loc_51AC: ; CODE XREF: sub_51A2+Cj 51AC 77 ld (hl), a 51AD 23 inc hl 51AE 10 FC djnz loc_51AC 51B0 3E 14 ld a, 20 51B2 32 09 EF ld (0EF09h), a 51B5 06 05 ld b, 5 51B7 21 3D EF ld hl, 0EF3Dh 51BA 51BA loc_51BA: ; CODE XREF: sub_51A2+1Aj 51BA 77 ld (hl), a 51BB 23 inc hl 51BC 10 FC djnz loc_51BA 51BE 3E 20 ld a, 32 51C0 32 0A EF ld (0EF0Ah), a 51C3 06 05 ld b, 5 51C5 21 42 EF ld hl, 0EF42h 51C8 51C8 loc_51C8: ; CODE XREF: sub_51A2+28j 51C8 77 ld (hl), a 51C9 23 inc hl 51CA 10 FC djnz loc_51C8 51CC 3E 2C ld a, 44 51CE 32 0B EF ld (0EF0Bh), a 51D1 06 05 ld b, 5 51D3 21 47 EF ld hl, 0EF47h 51D6 51D6 loc_51D6: ; CODE XREF: sub_51A2+36j 51D6 77 ld (hl), a 51D7 23 inc hl 51D8 10 FC djnz loc_51D6 51DA 3E 38 ld a, 56 51DC 32 07 EF ld (0EF07h), a 51DF 06 05 ld b, 5 51E1 21 33 EF ld hl, 0EF33h 51E4 51E4 loc_51E4: ; CODE XREF: sub_51A2+44j 51E4 77 ld (hl), a 51E5 23 inc hl 51E6 10 FC djnz loc_51E4 51E8 3E 08 ld a, 8 51EA 32 06 EF ld (0EF06h), a 51ED 3E 14 ld a, 14h 51EF 32 2E EF ld (0EF2Eh), a 51F2 32 2F EF ld (0EF2Fh), a 51F5 32 30 EF ld (0EF30h), a 51F8 32 31 EF ld (0EF31h), a 51FB 32 32 EF ld (0EF32h), a 51FE AF xor a 51FF 32 2B F0 ld (0F02Bh), a 5202 32 A6 EF ld (0EFA6h), a 5205 32 A7 EF ld (0EFA7h), a 5208 32 F5 EF ld (0EFF5h), a 520B 32 F6 EF ld (0EFF6h), a 520E 32 F7 EF ld (0EFF7h), a 5211 32 F8 EF ld (0EFF8h), a 5214 32 F9 EF ld (0EFF9h), a 5217 32 FA EF ld (0EFFAh), a 521A 32 F0 EF ld (0EFF0h), a 521D 32 F1 EF ld (0EFF1h), a 5220 32 F2 EF ld (0EFF2h), a 5223 32 F3 EF ld (0EFF3h), a 5226 32 F4 EF ld (0EFF4h), a 5229 06 05 ld b, 5 522B 21 D1 EF ld hl, 0EFD1h 522E 522E loc_522E: ; CODE XREF: sub_51A2+8Ej 522E 77 ld (hl), a 522F 23 inc hl 5230 10 FC djnz loc_522E 5232 32 AA EF ld (0EFAAh), a 5235 32 A0 EF ld (0EFA0h), a 5238 CD 4A 52 call disable_all_LR_sprites 523B 3E B0 ld a, 0B0h ; '' 523D 32 12 EF ld (0EF12h), a 5240 32 14 EF ld (0EF14h), a 5243 32 16 EF ld (0EF16h), a 5246 32 18 EF ld (0EF18h), a 5249 C9 ret 5249 ; End of function sub_51A2 5249 524A 524A ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 524A 524A 524A disable_all_LR_sprites: ; CODE XREF: seg000:40E3p 524A 21 00 3B ; sub_51A2+96p 524A ld hl, 3B00h ; sprite attribute table 524D 3E D0 ld a, 0D0h ; '' 524F 06 1E ld b, 30 5251 5251 loc_5251: ; CODE XREF: disable_all_LR_sprites+Aj 5251 CD 4E 50 call write_data_in_vram 5254 10 FB djnz loc_5251 5256 3E D0 ld a, 0D0h ; '' ; mark end of sprite table 5258 32 4C EF ld (0EF4Ch), a ; enemy Y 525B 32 4E EF ld (0EF4Eh), a ; enemy Y 525E 32 50 EF ld (0EF50h), a ; enemy Y 5261 32 52 EF ld (0EF52h), a ; enemy Y 5264 32 54 EF ld (0EF54h), a ; enemy Y 5267 32 0C EF ld (0EF0Ch), a ; player Y 526A C9 ret 526A ; End of function disable_all_LR_sprites 526A 526B 526B ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 526B 526B 526B spiral_draw_level: ; CODE XREF: seg000:4262p 526B 21 4F 39 ; sub_679B+17p 526B ld hl, 394Fh ; vram address 526E 06 01 ld b, 1 5270 7D ld a, l 5271 CD 4D 00 call 4Dh ; write data in vram 5274 5274 loc_5274: ; CODE XREF: spiral_draw_level+42j 5274 C5 push bc 5275 5275 loc_5275: ; CODE XREF: spiral_draw_level+11j 5275 23 inc hl 5276 CD F6 52 call sub_52F6 5279 CD 32 53 call sub_5332 527C 10 F7 djnz loc_5275 527E C1 pop bc 527F C5 push bc 5280 5280 loc_5280: ; CODE XREF: spiral_draw_level+1Fj 5280 11 20 00 ld de, 20h ; ' ' 5283 19 add hl, de 5284 CD F6 52 call sub_52F6 5287 CD 32 53 call sub_5332 528A 10 F4 djnz loc_5280 528C C1 pop bc 528D 04 inc b 528E C5 push bc 528F 528F loc_528F: ; CODE XREF: spiral_draw_level+2Bj 528F 2B dec hl 5290 CD F6 52 call sub_52F6 5293 CD 32 53 call sub_5332 5296 10 F7 djnz loc_528F 5298 C1 pop bc 5299 C5 push bc 529A 529A loc_529A: ; CODE XREF: spiral_draw_level+3Bj 529A 11 20 00 ld de, 20h ; ' ' 529D A7 and a 529E ED 52 sbc hl, de 52A0 CD F6 52 call sub_52F6 52A3 CD 32 53 call sub_5332 52A6 10 F2 djnz loc_529A 52A8 C1 pop bc 52A9 04 inc b 52AA 3E 1E ld a, 1Eh 52AC B8 cp b 52AD 30 C5 jr nc, loc_5274 52AF C9 ret 52AF ; End of function spiral_draw_level 52AF 52B0 52B0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 52B0 52B0 52B0 spiral_wipe_level: ; CODE XREF: seg000:4250p 52B0 CD 80 54 ; sub_679B+6p 52B0 call disable_sprites 52B3 11 20 00 ld de, 20h ; ' ' 52B6 21 40 37 ld hl, 3740h 52B9 06 1E ld b, 30 52BB 52BB loc_52BB: ; CODE XREF: spiral_wipe_level+42j 52BB C5 push bc 52BC 52BC loc_52BC: ; CODE XREF: spiral_wipe_level+16j 52BC 11 20 00 ld de, 20h ; ' ' 52BF 19 add hl, de 52C0 CD 14 53 call sub_5314 52C3 CD 32 53 call sub_5332 52C6 10 F4 djnz loc_52BC 52C8 C1 pop bc 52C9 C5 push bc 52CA 52CA loc_52CA: ; CODE XREF: spiral_wipe_level+21j 52CA 23 inc hl 52CB CD 14 53 call sub_5314 52CE CD 32 53 call sub_5332 52D1 10 F7 djnz loc_52CA 52D3 C1 pop bc 52D4 05 dec b 52D5 C5 push bc 52D6 52D6 loc_52D6: ; CODE XREF: spiral_wipe_level+32j 52D6 11 20 00 ld de, 20h ; ' ' 52D9 A7 and a 52DA ED 52 sbc hl, de 52DC CD 14 53 call sub_5314 52DF CD 32 53 call sub_5332 52E2 10 F2 djnz loc_52D6 52E4 C1 pop bc 52E5 C5 push bc 52E6 52E6 loc_52E6: ; CODE XREF: spiral_wipe_level+3Ej 52E6 2B dec hl 52E7 AF xor a 52E8 CD 14 53 call sub_5314 52EB CD 32 53 call sub_5332 52EE 10 F6 djnz loc_52E6 52F0 C1 pop bc 52F1 05 dec b 52F2 C2 BB 52 jp nz, loc_52BB 52F5 C9 ret 52F5 ; End of function spiral_wipe_level 52F5 52F6 52F6 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 52F6 52F6 52F6 sub_52F6: ; CODE XREF: spiral_draw_level+Bp 52F6 E5 ; spiral_draw_level+19p ... 52F6 push hl 52F7 11 00 38 ld de, 3800h 52FA A7 and a 52FB ED 52 sbc hl, de 52FD 38 13 jr c, loc_5312 52FF E1 pop hl 5300 E5 push hl 5301 11 80 3A ld de, 3A80h 5304 A7 and a 5305 ED 52 sbc hl, de 5307 30 09 jr nc, loc_5312 5309 E1 pop hl 530A 7D ld a, l 530B CD 4D 00 call 4Dh ; write data in vram 530E E5 push hl 530F CD 32 53 call sub_5332 5312 5312 loc_5312: ; CODE XREF: sub_52F6+7j 5312 E1 ; sub_52F6+11j 5312 pop hl 5313 C9 ret 5313 ; End of function sub_52F6 5313 5314 5314 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 5314 5314 5314 sub_5314: ; CODE XREF: spiral_wipe_level+10p 5314 E5 ; spiral_wipe_level+1Bp ... 5314 push hl 5315 11 00 38 ld de, 3800h 5318 A7 and a 5319 ED 52 sbc hl, de 531B 38 13 jr c, loc_5330 531D E1 pop hl 531E E5 push hl 531F 11 80 3A ld de, 3A80h 5322 A7 and a 5323 ED 52 sbc hl, de 5325 30 09 jr nc, loc_5330 5327 E1 pop hl 5328 AF xor a 5329 CD 4D 00 call 4Dh ; write data in vram 532C E5 push hl 532D CD 32 53 call sub_5332 5330 5330 loc_5330: ; CODE XREF: sub_5314+7j 5330 E1 ; sub_5314+11j 5330 pop hl 5331 C9 ret 5331 ; End of function sub_5314 5331 5332 5332 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 5332 5332 5332 sub_5332: ; CODE XREF: spiral_draw_level+Ep 5332 C5 ; spiral_draw_level+1Cp ... 5332 push bc 5333 CB 10 rl b 5335 CB 10 rl b 5337 5337 loc_5337: ; CODE XREF: sub_5332+10j 5337 04 inc b 5338 C5 push bc 5339 5339 loc_5339: ; CODE XREF: sub_5332+Dj 5339 04 inc b 533A C5 push bc 533B 533B loc_533B: ; CODE XREF: sub_5332+Aj 533B 04 inc b 533C 20 FD jr nz, loc_533B 533E C1 pop bc 533F 20 F8 jr nz, loc_5339 5341 C1 pop bc 5342 20 F3 jr nz, loc_5337 5344 C1 pop bc 5345 C9 ret 5345 ; End of function sub_5332 5345 5346 5346 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 5346 5346 5346 sub_5346: ; CODE XREF: sub_4BB8+15p 5346 CD 5C 53 ; sub_4BDE+15p ... 5346 call sub_535C 5349 ED 5F ld a, r 534B 534B loc_534B: ; CODE XREF: sub_5346+9j 534B BA cp d 534C 38 03 jr c, loc_5351 534E 92 sub d 534F 18 FA jr loc_534B 5351 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 5351 5351 loc_5351: ; CODE XREF: sub_5346+6j 5351 21 00 F0 ld hl, 0F000h 5354 85 add a, l 5355 6F ld l, a 5356 7E ld a, (hl) 5357 21 2E F0 ld hl, 0F02Eh 535A 71 ld (hl), c 535B C9 ret 535B ; End of function sub_5346 535B 535C 535C ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 535C 535C 535C sub_535C: ; CODE XREF: sub_5346p 535C 21 00 F0 ld hl, 0F000h 535F 22 2C F0 ld (0F02Ch), hl 5362 2A 66 EF ld hl, (0EF66h) ; get num men 5365 2B dec hl ; decrement 5366 11 E0 00 ld de, 224 5369 CD 0B 51 call calc_level_data_offset 536C 11 8B 7D ld de, 7D8Bh 536F 19 add hl, de 5370 11 00 00 ld de, 0 5373 0E 01 ld c, 1 5375 5375 loc_5375: ; CODE XREF: sub_535C+47j 5375 06 02 ld b, 2 5377 5377 loc_5377: ; CODE XREF: sub_535C+41j 5377 7E ld a, (hl) 5378 E6 F0 and 0F0h ; '' 537A CC A5 53 call z, sub_53A5 537D FE 80 cp 80h ; '' 537F CC A5 53 call z, sub_53A5 5382 FE 70 cp 70h ; 'p' 5384 CC A5 53 call z, sub_53A5 5387 04 inc b 5388 7E ld a, (hl) 5389 E6 0F and 0Fh 538B CC A5 53 call z, sub_53A5 538E FE 08 cp 8 5390 CC A5 53 call z, sub_53A5 5393 FE 07 cp 7 5395 CC A5 53 call z, sub_53A5 5398 04 inc b 5399 23 inc hl 539A 3E 1E ld a, 1Eh 539C B8 cp b 539D 20 D8 jr nz, loc_5377 539F 7A ld a, d 53A0 A7 and a 53A1 C0 ret nz 53A2 0C inc c 53A3 18 D0 jr loc_5375 53A3 ; End of function sub_535C 53A3 53A5 53A5 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 53A5 53A5 53A5 sub_53A5: ; CODE XREF: sub_535C+1Ep 53A5 E5 ; sub_535C+23p ... 53A5 push hl 53A6 D5 push de 53A7 50 ld d, b 53A8 59 ld e, c 53A9 CD 33 50 call get_ptr_level_data_of_row_col 53AC D1 pop de 53AD 7E ld a, (hl) ; level data 53AE FE 07 cp 7 ; gold box? 53B0 28 09 jr z, loc_53BB ; yes, skip 53B2 2A 2C F0 ld hl, (0F02Ch) 53B5 70 ld (hl), b 53B6 23 inc hl 53B7 22 2C F0 ld (0F02Ch), hl 53BA 14 inc d 53BB 53BB loc_53BB: ; CODE XREF: sub_53A5+Bj 53BB E1 pop hl 53BC C9 ret 53BC ; End of function sub_53A5 53BC 53BD 53BD ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 53BD 53BD 53BD display_high_score_screen: ; CODE XREF: seg000:4344p 53BD CD 5A 50 call disable_vdp_interrupts 53C0 CD 80 54 call disable_sprites 53C3 CD 6B 54 call clear_level_from_screen 53C6 CD D3 53 call display_high_score_title 53C9 CD 15 54 call update_high_score 53CC CD 3C 54 call display_high_score 53CF CD 61 50 call enable_vdp_interrupts 53D2 C9 ret 53D2 ; End of function display_high_score_screen 53D2 53D3 53D3 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 53D3 53D3 53D3 display_high_score_title: ; CODE XREF: display_high_score_screen+9p 53D3 21 D9 68 ld hl, 68D9h ; "LODE RUNNER" 53D6 3E 0D ld a, 0Dh 53D8 16 07 ld d, 7 53DA 82 add a, d 53DB 32 6E EF ld (0EF6Eh), a 53DE 1E 02 ld e, 2 53E0 E5 push hl 53E1 CD 34 65 call print_string_n_ef6e_ 53E4 E1 pop hl 53E5 11 0D 00 ld de, 0Dh 53E8 19 add hl, de 53E9 3E 0F ld a, 0Fh 53EB 16 07 ld d, 7 53ED 82 add a, d 53EE 32 6E EF ld (0EF6Eh), a 53F1 1E 03 ld e, 3 53F3 E5 push hl 53F4 CD 34 65 call print_string_n_ef6e_ 53F7 E1 pop hl 53F8 11 0F 00 ld de, 0Fh 53FB 19 add hl, de 53FC 3E 10 ld a, 10h 53FE 16 07 ld d, 7 5400 82 add a, d 5401 32 6E EF ld (0EF6Eh), a 5404 1E 04 ld e, 4 5406 E5 push hl 5407 CD 34 65 call print_string_n_ef6e_ 540A E1 pop hl 540B 3E 3E ld a, 3Eh ; '>' 540D 16 09 ld d, 9 540F 1E 06 ld e, 6 5411 CD F9 50 call print_character 5414 C9 ret 5414 ; End of function display_high_score_title 5414 5415 5415 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 5415 5415 5415 update_high_score: ; CODE XREF: display_high_score_screen+Cp 5415 2A E2 EF ld hl, (0EFE2h) 5418 EB ex de, hl 5419 2A 64 EF ld hl, (0EF64h) ; score / 10,000 541C A7 and a 541D ED 52 sbc hl, de 541F D8 ret c 5420 20 0D jr nz, loc_542F 5422 2A E0 EF ld hl, (0EFE0h) 5425 EB ex de, hl 5426 2A 62 EF ld hl, (0EF62h) ; score % 10,000 5429 A7 and a 542A ED 52 sbc hl, de 542C D8 ret c 542D 18 00 jr loc_542F 542F 542F loc_542F: ; CODE XREF: update_high_score+Bj 542F 2A 62 EF ld hl, (0EF62h) ; score % 10,000 5432 22 E0 EF ld (0EFE0h), hl 5435 2A 64 EF ld hl, (0EF64h) ; score / 10,000 5438 22 E2 EF ld (0EFE2h), hl 543B C9 ret 543B ; End of function update_high_score 543B 543C 543C ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 543C 543C 543C display_high_score: ; CODE XREF: display_high_score_screen+Fp 543C 2A E2 EF ld hl, (0EFE2h) 543F 11 80 EF ld de, 0EF80h 5442 CD 38 67 call conv_signed_to_ASCII_decimal 5445 2A E0 EF ld hl, (0EFE0h) 5448 11 86 EF ld de, 0EF86h 544B CD 38 67 call conv_signed_to_ASCII_decimal 544E 21 83 EF ld hl, 0EF83h ; ptr score / 10,000 5451 16 0B ld d, 11 ; column 5453 1E 06 ld e, 6 ; row 5455 CD 89 54 call print_score_at_row_e 5458 2A 64 EF ld hl, (0EF64h) ; score / 10,000 545B 11 80 EF ld de, 0EF80h 545E CD 38 67 call conv_signed_to_ASCII_decimal 5461 2A 62 EF ld hl, (0EF62h) ; score % 10,000 5464 11 86 EF ld de, 0EF86h 5467 CD 38 67 call conv_signed_to_ASCII_decimal 546A C9 ret 546A ; End of function display_high_score 546A 546B 546B ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 546B 546B 546B clear_level_from_screen: ; CODE XREF: display_high_score_screen+6p 546B 1E 00 ld e, 0 ; line=0 546D 546D loc_546D: ; CODE XREF: clear_level_from_screen+12j 546D 16 00 ld d, 0 ; col=0 546F 546F loc_546F: ; CODE XREF: clear_level_from_screen+Cj 546F AF xor a ; space 5470 CD F9 50 call print_character 5473 14 inc d ; next col 5474 3E 20 ld a, 32 5476 BA cp d ; end of line? 5477 30 F6 jr nc, loc_546F ; no, loop 5479 1C inc e ; next row 547A 3E 0F ld a, 15 547C BB cp e ; end of game screen? 547D 30 EE jr nc, loc_546D ; no, loop 547F C9 ret 547F ; End of function clear_level_from_screen 547F 5480 5480 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 5480 5480 5480 disable_sprites: ; CODE XREF: spiral_wipe_levelp 5480 21 00 3B ; display_high_score_screen+3p ... 5480 ld hl, 3B00h ; sprite attribute table 5483 3E D0 ld a, 0D0h ; '' 5485 CD 4D 00 call 4Dh ; write data in vram 5488 C9 ret 5488 ; End of function disable_sprites 5488 5489 5489 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 5489 5489 5489 print_score_at_row_e: ; CODE XREF: display_high_score+19p 5489 7E ; print_score_at_row_e+Bj 5489 ld a, (hl) 548A E5 push hl 548B CD F9 50 call print_character 548E E1 pop hl 548F 23 inc hl 5490 14 inc d 5491 3E 0E ld a, 14 5493 BA cp d 5494 20 F3 jr nz, print_score_at_row_e 5496 23 inc hl 5497 23 inc hl 5498 5498 loc_5498: ; CODE XREF: print_score_at_row_e+1Aj 5498 7E ld a, (hl) 5499 E5 push hl 549A CD F9 50 call print_character 549D E1 pop hl 549E 23 inc hl 549F 14 inc d 54A0 3E 12 ld a, 18 54A2 BA cp d 54A3 20 F3 jr nz, loc_5498 54A5 C9 ret 54A5 ; End of function print_score_at_row_e 54A5 54A6 54A6 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 54A6 54A6 54A6 display_next_spinning_game_over: ; CODE XREF: seg000:4453p 54A6 CD 80 54 call disable_sprites 54A9 3A 75 EF ld a, (0EF75h) ; get 10Hz tick from general timer var 54AC A7 and a ; time to spin? 54AD C0 ret nz ; no, return 54AE 2A E4 EF ld hl, (0EFE4h) ; get next address of spin animation 54B1 E9 jp (hl) ; do it 54B1 ; End of function display_next_spinning_game_over 54B1 54B2 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 54B2 E5 push hl 54B3 21 05 69 ld hl, 6905h 54B6 CD 7F 55 call display_frame_of_game_over 54B9 E1 pop hl 54BA C3 36 55 jp loc_5536 54BD ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 54BD E5 push hl 54BE 21 19 69 ld hl, 6919h 54C1 CD 7F 55 call display_frame_of_game_over 54C4 E1 pop hl 54C5 C3 36 55 jp loc_5536 54C8 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 54C8 E5 push hl 54C9 21 2D 69 ld hl, 692Dh 54CC CD 7F 55 call display_frame_of_game_over 54CF E1 pop hl 54D0 C3 36 55 jp loc_5536 54D3 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 54D3 E5 push hl 54D4 21 41 69 ld hl, 6941h 54D7 CD 7F 55 call display_frame_of_game_over 54DA E1 pop hl 54DB C3 36 55 jp loc_5536 54DE ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 54DE E5 push hl 54DF 21 2D 69 ld hl, 692Dh 54E2 CD 7F 55 call display_frame_of_game_over 54E5 E1 pop hl 54E6 C3 36 55 jp loc_5536 54E9 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 54E9 E5 push hl 54EA 21 55 69 ld hl, 6955h 54ED CD 7F 55 call display_frame_of_game_over 54F0 E1 pop hl 54F1 C3 36 55 jp loc_5536 54F4 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 54F4 E5 push hl 54F5 21 69 69 ld hl, 6969h 54F8 CD 7F 55 call display_frame_of_game_over 54FB E1 pop hl 54FC C3 36 55 jp loc_5536 54FF ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 54FF E5 push hl 5500 21 55 69 ld hl, 6955h 5503 CD 7F 55 call display_frame_of_game_over 5506 E1 pop hl 5507 C3 36 55 jp loc_5536 550A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 550A E5 push hl 550B 21 2D 69 ld hl, 692Dh 550E CD 7F 55 call display_frame_of_game_over 5511 E1 pop hl 5512 C3 36 55 jp loc_5536 5515 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 5515 E5 push hl 5516 21 41 69 ld hl, 6941h 5519 CD 7F 55 call display_frame_of_game_over 551C E1 pop hl 551D C3 36 55 jp loc_5536 5520 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 5520 E5 push hl 5521 21 2D 69 ld hl, 692Dh 5524 CD 7F 55 call display_frame_of_game_over 5527 E1 pop hl 5528 C3 36 55 jp loc_5536 552B ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 552B E5 push hl 552C 21 19 69 ld hl, 6919h 552F CD 7F 55 call display_frame_of_game_over 5532 E1 pop hl 5533 C3 36 55 jp loc_5536 5536 5536 loc_5536: ; CODE XREF: seg000:54BAj 5536 E5 ; seg000:54C5j ... 5536 push hl 5537 CD A2 55 call scan_joystick_and_keyboard 553A 21 FF 3F ld hl, 3FFFh 553D ED 52 sbc hl, de ; any joystick or keys? 553F 28 0B jr z, loc_554C ; no, skip 5541 3E 01 ld a, 1 5543 32 E6 EF ld (0EFE6h), a 5546 21 8C 00 ld hl, 8Ch ; '' 5549 22 E4 EF ld (0EFE4h), hl 554C 554C loc_554C: ; CODE XREF: seg000:553Fj 554C E1 pop hl 554D 11 0B 00 ld de, 0Bh 5550 19 add hl, de 5551 22 E4 EF ld (0EFE4h), hl 5554 21 AE 54 ld hl, 54AEh 5557 11 84 00 ld de, 84h ; '' 555A 19 add hl, de 555B EB ex de, hl 555C 2A E4 EF ld hl, (0EFE4h) 555F A7 and a 5560 ED 52 sbc hl, de 5562 D8 ret c 5563 21 B2 54 ld hl, 54B2h 5566 22 E4 EF ld (0EFE4h), hl 5569 3A E6 EF ld a, (0EFE6h) 556C 3D dec a 556D 32 E6 EF ld (0EFE6h), a 5570 C0 ret nz 5571 32 A8 EF ld (0EFA8h), a 5574 CB 87 res 0, a 5576 3A A8 EF ld a, (0EFA8h) 5579 3E 09 ld a, 9 557B 32 E6 EF ld (0EFE6h), a 557E C9 ret 557F 557F ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 557F 557F 557F display_frame_of_game_over: ; CODE XREF: seg000:54B6p 557F 3E 0A ; seg000:54C1p ... 557F ld a, 0Ah 5581 16 0B ld d, 0Bh 5583 82 add a, d 5584 32 6E EF ld (0EF6Eh), a 5587 1E 07 ld e, 7 5589 E5 push hl 558A CD 34 65 call print_string_n_ef6e_ 558D E1 pop hl 558E 11 0A 00 ld de, 0Ah 5591 19 add hl, de 5592 3E 0A ld a, 0Ah 5594 16 0B ld d, 0Bh 5596 82 add a, d 5597 32 6E EF ld (0EF6Eh), a 559A 1E 08 ld e, 8 559C E5 push hl 559D CD 34 65 call print_string_n_ef6e_ 55A0 E1 pop hl 55A1 C9 ret 55A1 ; End of function display_frame_of_game_over 55A1 55A2 55A2 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 55A2 55A2 55A2 scan_joystick_and_keyboard: ; CODE XREF: seg000:40CBp 55A2 3E 0F ; seg000:414Bp ... 55A2 ld a, 0Fh ; select R15 55A4 1E 8F ld e, 8Fh ; '' ; LED off, joystick input 55A6 CD 93 00 call 93h ; write data to PSG register 55A9 3E 0E ld a, 0Eh ; select R15 (joystick) 55AB CD 96 00 call 96h ; read value from PSG register 55AE E6 3F and 3Fh ; '?' ; mask off unused bits 55B0 57 ld d, a ; store joystick inputs 55B1 06 09 ld b, 9 ; 9 lines of keyboard 55B3 55B3 loc_55B3: ; CODE XREF: scan_joystick_and_keyboard+1Aj 55B3 78 ld a, b 55B4 CD 41 01 call 141h ; read keyboard line 55B7 FE FF cp 0FFh ; any key? 55B9 20 04 jr nz, loc_55BF ; yes, skip 55BB 05 dec b ; next line 55BC F2 B3 55 jp p, loc_55B3 ; loop if not done 55BF 55BF loc_55BF: ; CODE XREF: scan_joystick_and_keyboard+17j 55BF 5F ld e, a ; store key in E 55C0 C9 ret 55C0 ; End of function scan_joystick_and_keyboard 55C0 55C1 55C1 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 55C1 55C1 55C1 sub_55C1: ; CODE XREF: seg000:4163p 55C1 3A CE EF ; seg000:42B6p 55C1 ld a, (0EFCEh) 55C4 A7 and a 55C5 28 0C jr z, loc_55D3 55C7 21 8E 56 ld hl, 568Eh 55CA 06 03 ld b, 3 55CC AF xor a 55CD 32 CE EF ld (0EFCEh), a 55D0 4F ld c, a 55D1 18 0C jr loc_55DF 55D3 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 55D3 55D3 loc_55D3: ; CODE XREF: sub_55C1+4j 55D3 21 CA 56 ld hl, 56CAh 55D6 06 02 ld b, 2 55D8 3E 03 ld a, 3 55DA 32 CE EF ld (0EFCEh), a 55DD 0E 00 ld c, 0 55DF 55DF loc_55DF: ; CODE XREF: sub_55C1+10j 55DF 3A CE EF ; sub_55C1+C9j 55DF ld a, (0EFCEh) 55E2 81 add a, c 55E3 32 D0 EF ld (0EFD0h), a 55E6 5E ld e, (hl) 55E7 23 inc hl 55E8 56 ld d, (hl) 55E9 23 inc hl 55EA 1A ld a, (de) 55EB A7 and a 55EC CA 84 56 jp z, loc_5684 55EF 5E ld e, (hl) 55F0 23 inc hl 55F1 56 ld d, (hl) 55F2 23 inc hl 55F3 1A ld a, (de) 55F4 32 C0 EF ld (0EFC0h), a 55F7 5E ld e, (hl) 55F8 23 inc hl 55F9 56 ld d, (hl) 55FA 23 inc hl 55FB 1A ld a, (de) 55FC 32 C1 EF ld (0EFC1h), a 55FF 5E ld e, (hl) 5600 23 inc hl 5601 56 ld d, (hl) 5602 23 inc hl 5603 1A ld a, (de) 5604 32 C2 EF ld (0EFC2h), a 5607 5E ld e, (hl) 5608 23 inc hl 5609 56 ld d, (hl) 560A 23 inc hl 560B 1A ld a, (de) 560C 32 C3 EF ld (0EFC3h), a 560F 5E ld e, (hl) 5610 23 inc hl 5611 56 ld d, (hl) 5612 23 inc hl 5613 1A ld a, (de) 5614 32 C4 EF ld (0EFC4h), a 5617 5E ld e, (hl) 5618 23 inc hl 5619 56 ld d, (hl) 561A 23 inc hl 561B 1A ld a, (de) 561C 32 CF EF ld (0EFCFh), a 561F 5E ld e, (hl) 5620 23 inc hl 5621 56 ld d, (hl) 5622 23 inc hl 5623 1A ld a, (de) 5624 32 F5 EF ld (0EFF5h), a 5627 5E ld e, (hl) 5628 23 inc hl 5629 56 ld d, (hl) 562A 23 inc hl 562B 1A ld a, (de) 562C 32 D6 EF ld (0EFD6h), a 562F 5E ld e, (hl) 5630 23 inc hl 5631 56 ld d, (hl) 5632 1A ld a, (de) 5633 32 41 F0 ld (0F041h), a 5636 C5 push bc 5637 E5 push hl 5638 CD F2 56 call sub_56F2 563B E1 pop hl 563C C1 pop bc 563D 56 ld d, (hl) 563E 2B dec hl 563F 5E ld e, (hl) 5640 2B dec hl 5641 3A 41 F0 ld a, (0F041h) 5644 12 ld (de), a 5645 56 ld d, (hl) 5646 2B dec hl 5647 5E ld e, (hl) 5648 2B dec hl 5649 3A D6 EF ld a, (0EFD6h) 564C 12 ld (de), a 564D 56 ld d, (hl) 564E 2B dec hl 564F 5E ld e, (hl) 5650 2B dec hl 5651 3A F5 EF ld a, (0EFF5h) 5654 12 ld (de), a 5655 56 ld d, (hl) 5656 2B dec hl 5657 5E ld e, (hl) 5658 2B dec hl 5659 3A CF EF ld a, (0EFCFh) 565C 12 ld (de), a 565D 56 ld d, (hl) 565E 2B dec hl 565F 5E ld e, (hl) 5660 2B dec hl 5661 3A C4 EF ld a, (0EFC4h) 5664 12 ld (de), a 5665 56 ld d, (hl) 5666 2B dec hl 5667 5E ld e, (hl) 5668 2B dec hl 5669 3A C3 EF ld a, (0EFC3h) 566C 12 ld (de), a 566D 56 ld d, (hl) 566E 2B dec hl 566F 5E ld e, (hl) 5670 2B dec hl 5671 3A C2 EF ld a, (0EFC2h) 5674 12 ld (de), a 5675 56 ld d, (hl) 5676 2B dec hl 5677 5E ld e, (hl) 5678 2B dec hl 5679 3A C1 EF ld a, (0EFC1h) 567C 12 ld (de), a 567D 56 ld d, (hl) 567E 2B dec hl 567F 5E ld e, (hl) 5680 3A C0 EF ld a, (0EFC0h) 5683 12 ld (de), a 5684 5684 loc_5684: ; CODE XREF: sub_55C1+2Bj 5684 11 12 00 ld de, 12h 5687 19 add hl, de 5688 0C inc c 5689 05 dec b 568A C2 DF 55 jp nz, loc_55DF 568D C9 ret 568D ; End of function sub_55C1 568D 568D ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 568E 5B EF .dw 0EF5Bh 5690 1A EF .dw 0EF1Ah 5692 1B EF .dw 0EF1Bh 5694 24 EF .dw 0EF24h 5696 25 EF .dw 0EF25h 5698 2E EF .dw 0EF2Eh 569A D7 EF .dw 0EFD7h 569C F6 EF .dw 0EFF6h 569E FB EF .dw 0EFFBh 56A0 42 F0 .dw 0F042h 56A2 5C EF .dw 0EF5Ch 56A4 1C EF .dw 0EF1Ch 56A6 1D EF .dw 0EF1Dh 56A8 26 EF .dw 0EF26h 56AA 27 EF .dw 0EF27h 56AC 2F EF .dw 0EF2Fh 56AE D8 EF .dw 0EFD8h 56B0 F7 EF .dw 0EFF7h 56B2 FC EF .dw 0EFFCh 56B4 43 F0 .dw 0F043h 56B6 5D EF .dw 0EF5Dh 56B8 1E EF .dw 0EF1Eh 56BA 1F EF .dw 0EF1Fh 56BC 28 EF .dw 0EF28h 56BE 29 EF .dw 0EF29h 56C0 30 EF .dw 0EF30h 56C2 D9 EF .dw 0EFD9h 56C4 F8 EF .dw 0EFF8h 56C6 FD EF .dw 0EFFDh 56C8 44 F0 .dw 0F044h 56CA 5E EF .dw 0EF5Eh 56CC 20 EF .dw 0EF20h 56CE 21 EF .dw 0EF21h 56D0 2A EF .dw 0EF2Ah 56D2 2B EF .dw 0EF2Bh 56D4 31 EF .dw 0EF31h 56D6 DA EF .dw 0EFDAh 56D8 F9 EF .dw 0EFF9h 56DA FE EF .dw 0EFFEh 56DC 45 F0 .dw 0F045h 56DE 5F EF .dw 0EF5Fh 56E0 22 EF .dw 0EF22h 56E2 23 EF .dw 0EF23h 56E4 2C EF .dw 0EF2Ch 56E6 2D EF .dw 0EF2Dh 56E8 32 EF .dw 0EF32h 56EA DB EF .dw 0EFDBh 56EC FA EF .dw 0EFFAh 56EE FF EF .dw 0EFFFh 56F0 46 F0 .dw 0F046h 56F2 56F2 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 56F2 56F2 56F2 sub_56F2: ; CODE XREF: sub_55C1+77p 56F2 AF xor a 56F3 32 40 F0 ld (0F040h), a 56F6 3A C2 EF ld a, (0EFC2h) 56F9 A7 and a 56FA 20 35 jr nz, loc_5731 56FC 3A C3 EF ld a, (0EFC3h) 56FF A7 and a 5700 20 2F jr nz, loc_5731 5702 3A F5 EF ld a, (0EFF5h) 5705 A7 and a 5706 20 29 jr nz, loc_5731 5708 3A C1 EF ld a, (0EFC1h) 570B 57 ld d, a 570C 3A C0 EF ld a, (0EFC0h) 570F 5F ld e, a 5710 CD 33 50 call get_ptr_level_data_of_row_col 5713 7E ld a, (hl) ; level data 5714 FE 07 cp 7 ; gold box? 5716 20 19 jr nz, loc_5731 ; no, skip 5718 ED 5F ld a, r ; random number 571A FE 60 cp 60h ; '`' ; pick up gold box? 571C 30 13 jr nc, loc_5731 ; no, skip 571E 3E 01 ld a, 1 5720 32 F5 EF ld (0EFF5h), a 5723 AF xor a 5724 77 ld (hl), a ; store empty square 5725 D5 push de 5726 CD 5A 50 call disable_vdp_interrupts 5729 D1 pop de 572A AF xor a 572B CD F9 50 call print_character ; display empty square 572E CD 61 50 call enable_vdp_interrupts 5731 5731 loc_5731: ; CODE XREF: sub_56F2+8j 5731 21 F0 EF ; sub_56F2+Ej ... 5731 ld hl, 0EFF0h 5734 3A D0 EF ld a, (0EFD0h) 5737 4F ld c, a 5738 06 00 ld b, 0 573A 09 add hl, bc 573B 7E ld a, (hl) 573C A7 and a 573D 28 79 jr z, loc_57B8 573F FE 01 cp 1 5741 20 50 jr nz, loc_5793 5743 18 3E jr loc_5783 5745 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 5745 5745 loc_5745: ; CODE XREF: sub_56F2+C1j 5745 E5 push hl 5746 3A D0 EF ld a, (0EFD0h) 5749 4F ld c, a 574A 06 00 ld b, 0 574C 3A C1 EF ld a, (0EFC1h) 574F 57 ld d, a 5750 21 1A EF ld hl, 0EF1Ah ; table of enemy coords 5753 5753 loc_5753: ; CODE XREF: sub_56F2+75j 5753 78 ld a, b 5754 B9 cp c 5755 28 07 jr z, loc_575E 5757 5E ld e, (hl) ; enemy row 5758 3A 2E F0 ld a, (0F02Eh) 575B BB cp e 575C 28 0E jr z, loc_576C 575E 575E loc_575E: ; CODE XREF: sub_56F2+63j 575E 23 ; sub_56F2+87j ... 575E inc hl 575F 23 inc hl 5760 04 inc b 5761 3A 73 EF ld a, (0EF73h) ; length enemy coord table 5764 CB 3F srl a ; num enemies 5766 B8 cp b 5767 20 EA jr nz, loc_5753 5769 E1 pop hl 576A 18 4A jr loc_57B6 576C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 576C 576C loc_576C: ; CODE XREF: sub_56F2+6Aj 576C C5 push bc 576D E5 push hl 576E 48 ld c, b 576F 06 00 ld b, 0 5771 21 F0 EF ld hl, 0EFF0h 5774 09 add hl, bc 5775 7E ld a, (hl) 5776 E1 pop hl 5777 C1 pop bc 5778 A7 and a 5779 20 E3 jr nz, loc_575E 577B 23 inc hl 577C 7E ld a, (hl) 577D 2B dec hl 577E BA cp d 577F 20 DD jr nz, loc_575E 5781 E1 pop hl 5782 C9 ret 5783 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 5783 5783 loc_5783: ; CODE XREF: sub_56F2+51j 5783 AF xor a 5784 32 CF EF ld (0EFCFh), a 5787 77 ld (hl), a 5788 CD B9 5A call sub_5AB9 578B AF xor a 578C 77 ld (hl), a 578D 3E 44 ld a, 44h ; 'D' 578F 32 C4 EF ld (0EFC4h), a 5792 C9 ret 5793 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 5793 5793 loc_5793: ; CODE XREF: sub_56F2+4Fj 5793 FE 0F cp 0Fh 5795 30 07 jr nc, loc_579E 5797 3E 04 ld a, 4 5799 32 C4 EF ld (0EFC4h), a 579C 18 15 jr loc_57B3 579E ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 579E 579E loc_579E: ; CODE XREF: sub_56F2+A3j 579E FE 1E cp 1Eh 57A0 20 07 jr nz, loc_57A9 57A2 11 4B 00 ld de, 4Bh ; 'K' 57A5 CD 27 51 call add_points_and_score_2_ascii 57A8 35 dec (hl) 57A9 57A9 loc_57A9: ; CODE XREF: sub_56F2+AEj 57A9 AF xor a 57AA 32 C4 EF ld (0EFC4h), a 57AD 32 C3 EF ld (0EFC3h), a 57B0 32 C2 EF ld (0EFC2h), a 57B3 57B3 loc_57B3: ; CODE XREF: sub_56F2+AAj 57B3 C3 45 57 jp loc_5745 57B6 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 57B6 57B6 loc_57B6: ; CODE XREF: sub_56F2+78j 57B6 35 dec (hl) 57B7 C9 ret 57B8 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 57B8 57B8 loc_57B8: ; CODE XREF: sub_56F2+4Bj 57B8 E5 push hl 57B9 3A C1 EF ld a, (0EFC1h) 57BC 57 ld d, a 57BD 3A C0 EF ld a, (0EFC0h) 57C0 5F ld e, a 57C1 CD 33 50 call get_ptr_level_data_of_row_col 57C4 7E ld a, (hl) ; level data 57C5 E1 pop hl 57C6 FE 02 cp 2 ; diggable brick? 57C8 20 13 jr nz, loc_57DD ; no, skip 57CA 3E 1E ld a, 1Eh 57CC 77 ld (hl), a 57CD CD 46 53 call sub_5346 57D0 32 C1 EF ld (0EFC1h), a 57D3 79 ld a, c 57D4 32 C0 EF ld (0EFC0h), a 57D7 3E 50 ld a, 50h ; 'P' 57D9 32 C4 EF ld (0EFC4h), a 57DC C9 ret 57DD ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 57DD 57DD loc_57DD: ; CODE XREF: sub_56F2+D6j 57DD 3A D6 EF ld a, (0EFD6h) 57E0 A7 and a 57E1 28 07 jr z, loc_57EA 57E3 AF xor a 57E4 32 D6 EF ld (0EFD6h), a 57E7 C3 0B 58 jp loc_580B 57EA ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 57EA 57EA loc_57EA: ; CODE XREF: sub_56F2+EFj 57EA CD B9 5A call sub_5AB9 57ED 7E ld a, (hl) 57EE F5 push af 57EF A7 and a 57F0 28 18 jr z, loc_580A 57F2 FE 03 cp 3 57F4 30 0A jr nc, loc_5800 57F6 3A C3 EF ld a, (0EFC3h) 57F9 A7 and a 57FA 28 0E jr z, loc_580A 57FC F1 pop af 57FD C3 90 5A jp loc_5A90 5800 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 5800 5800 loc_5800: ; CODE XREF: sub_56F2+102j 5800 3A C2 EF ld a, (0EFC2h) 5803 A7 and a 5804 28 04 jr z, loc_580A 5806 F1 pop af 5807 C3 90 5A jp loc_5A90 580A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 580A 580A loc_580A: ; CODE XREF: sub_56F2+FEj 580A F1 ; sub_56F2+108j ... 580A pop af 580B 580B loc_580B: ; CODE XREF: sub_56F2+F5j 580B 3A C0 EF ld a, (0EFC0h) 580E 5F ld e, a 580F 3A C1 EF ld a, (0EFC1h) 5812 57 ld d, a 5813 CD 33 50 call get_ptr_level_data_of_row_col 5816 7E ld a, (hl) ; level data 5817 47 ld b, a ; store 5818 3A 41 F0 ld a, (0F041h) 581B A7 and a 581C 20 13 jr nz, loc_5831 581E 78 ld a, b ; level data 581F FE FF cp 0FFh ; what is this? 5821 CA 0F 59 jp z, loc_590F 5824 5824 loc_5824: ; CODE XREF: sub_56F2+229j 5824 3A C0 EF ld a, (0EFC0h) 5827 FE 0F cp 0Fh 5829 CA 75 5A jp z, loc_5A75 582C 7E ld a, (hl) ; level data 582D FE FF cp 0FFh 582F 28 0F jr z, loc_5840 5831 5831 loc_5831: ; CODE XREF: sub_56F2+12Aj 5831 7E ld a, (hl) ; level data 5832 FE 01 cp 1 ; fall-thru brick? 5834 28 0A jr z, loc_5840 ; yes, skip 5836 A7 and a ; empty? 5837 28 07 jr z, loc_5840 ; yes, skip 5839 FE 07 cp 7 ; gold box? 583B 28 03 jr z, loc_5840 ; yes, skip 583D C3 75 5A jp loc_5A75 5840 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 5840 5840 loc_5840: ; CODE XREF: sub_56F2+13Dj 5840 11 20 00 ; sub_56F2+142j ... 5840 ld de, 32 5843 19 add hl, de ; tile below 5844 7E ld a, (hl) ; level data 5845 A7 and a ; empty? 5846 28 25 jr z, loc_586D ; yes, skip 5848 FE 01 cp 1 ; fall-thru brick? 584A 28 21 jr z, loc_586D ; yes, skip 584C FE 04 cp 4 ; rope? 584E 28 1D jr z, loc_586D ; yes, skip 5850 FE 07 cp 7 ; gold box? 5852 28 19 jr z, loc_586D ; yes, skip 5854 47 ld b, a ; store level data 5855 3A 41 F0 ld a, (0F041h) 5858 A7 and a 5859 C2 75 5A jp nz, loc_5A75 585C 78 ld a, b ; level data 585D FE FF cp 0FFh 585F 28 03 jr z, loc_5864 5861 C3 75 5A jp loc_5A75 5864 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 5864 5864 loc_5864: ; CODE XREF: sub_56F2+16Dj 5864 3A CF EF ld a, (0EFCFh) 5867 A7 and a 5868 28 2F jr z, loc_5899 586A C3 75 5A jp loc_5A75 586D ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 586D 586D loc_586D: ; CODE XREF: sub_56F2+154j 586D 01 73 58 ; sub_56F2+158j ... 586D ld bc, 5873h 5870 C3 04 5A jp loc_5A04 5873 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 5873 AF xor a 5874 32 C3 EF ld (0EFC3h), a 5877 CD B9 5A call sub_5AB9 587A AF xor a 587B 77 ld (hl), a 587C 32 41 F0 ld (0F041h), a 587F 3A C2 EF ld a, (0EFC2h) 5882 FE 04 cp 4 5884 20 09 jr nz, loc_588F 5886 3E FF ld a, 0FFh 5888 32 C2 EF ld (0EFC2h), a 588B 21 C0 EF ld hl, 0EFC0h 588E 34 inc (hl) 588F 588F loc_588F: ; CODE XREF: sub_56F2+192j 588F 21 C2 EF ld hl, 0EFC2h 5892 34 inc (hl) 5893 3E 44 ld a, 44h ; 'D' 5895 32 C4 EF ld (0EFC4h), a 5898 C9 ret 5899 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 5899 5899 loc_5899: ; CODE XREF: sub_56F2+176j 5899 01 9F 58 ld bc, 589Fh 589C C3 04 5A jp loc_5A04 589F ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 589F 3A D6 EF ld a, (0EFD6h) 58A2 A7 and a 58A3 20 04 jr nz, loc_58A9 58A5 AF xor a 58A6 32 C3 EF ld (0EFC3h), a 58A9 58A9 loc_58A9: ; CODE XREF: sub_56F2+1B1j 58A9 AF xor a 58AA CD B9 5A call sub_5AB9 58AD 77 ld (hl), a 58AE 3A C2 EF ld a, (0EFC2h) 58B1 3C inc a 58B2 FE 05 cp 5 58B4 38 50 jr c, loc_5906 58B6 3A F5 EF ld a, (0EFF5h) 58B9 A7 and a 58BA 28 2D jr z, loc_58E9 58BC AF xor a 58BD 32 F5 EF ld (0EFF5h), a 58C0 3A C0 EF ld a, (0EFC0h) 58C3 5F ld e, a 58C4 3A C1 EF ld a, (0EFC1h) 58C7 57 ld d, a 58C8 CD 33 50 call get_ptr_level_data_of_row_col 58CB 7E ld a, (hl) ; level data 58CC FE 07 cp 7 ; gold box? 58CE 20 09 jr nz, loc_58D9 ; no, skip 58D0 3A 70 EF ld a, (0EF70h) ; number of gold boxes 58D3 3D dec a ; adjust 58D4 32 70 EF ld (0EF70h), a ; store 58D7 18 10 jr loc_58E9 58D9 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 58D9 58D9 loc_58D9: ; CODE XREF: sub_56F2+1DCj 58D9 3E 07 ld a, 7 ; gold box 58DB 77 ld (hl), a ; store as level data 58DC D5 push de 58DD CD 5A 50 call disable_vdp_interrupts 58E0 D1 pop de 58E1 3E 07 ld a, 7 ; gold box 58E3 CD F9 50 call print_character ; display gold box 58E6 CD 61 50 call enable_vdp_interrupts 58E9 58E9 loc_58E9: ; CODE XREF: sub_56F2+1C8j 58E9 3E FF ; sub_56F2+1E5j 58E9 ld a, 0FFh 58EB 32 7E EF ld (0EF7Eh), a 58EE 3A A3 EF ld a, (0EFA3h) 58F1 CB EF set 5, a 58F3 32 A3 EF ld (0EFA3h), a 58F6 3E 23 ld a, 23h ; '#' 58F8 32 CF EF ld (0EFCFh), a 58FB 11 4B 00 ld de, 75 ; 75 points to add 58FE CD 27 51 call add_points_and_score_2_ascii 5901 21 C0 EF ld hl, 0EFC0h 5904 34 inc (hl) 5905 AF xor a 5906 5906 loc_5906: ; CODE XREF: sub_56F2+1C2j 5906 32 C2 EF ld (0EFC2h), a 5909 3E 44 ld a, 44h ; 'D' 590B 32 C4 EF ld (0EFC4h), a 590E C9 ret 590F ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 590F 590F loc_590F: ; CODE XREF: sub_56F2+12Fj 590F 3A CF EF ld a, (0EFCFh) 5912 A7 and a 5913 C2 1E 59 jp nz, loc_591E 5916 3E 01 ld a, 1 5918 32 40 F0 ld (0F040h), a 591B C3 24 58 jp loc_5824 591E ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 591E 591E loc_591E: ; CODE XREF: sub_56F2+221j 591E 3A CF EF ld a, (0EFCFh) 5921 FE 01 cp 1 5923 CA 75 5A jp z, loc_5A75 5926 FE 08 cp 8 5928 38 05 jr c, loc_592F 592A 3D dec a 592B 32 CF EF ld (0EFCFh), a 592E C9 ret 592F ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 592F 592F loc_592F: ; CODE XREF: sub_56F2+236j 592F 3D dec a 5930 32 CF EF ld (0EFCFh), a 5933 21 3F 59 ld hl, 593Fh 5936 4F ld c, a 5937 06 00 ld b, 0 5939 09 add hl, bc 593A 7E ld a, (hl) 593B 32 C4 EF ld (0EFC4h), a 593E C9 ret 593E ; End of function sub_56F2 593E 593E ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 593F 38 .db 38h ; 8 5940 3C .db 3Ch ; < 5941 40 .db 40h ; @ 5942 38 .db 38h ; 8 5943 3C .db 3Ch ; < 5944 40 .db 40h ; @ 5945 38 .db 38h ; 8 5946 3C .db 3Ch ; < 5947 40 .db 40h ; @ 5948 5948 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 5948 5948 5948 sub_5948: ; CODE XREF: sub_5969+2Bp 5948 D5 ; sub_599D+2Ap ... 5948 push de 5949 E5 push hl 594A 3E 05 ld a, 5 594C A7 and a 594D 98 sbc a, b 594E 21 2E EF ld hl, 0EF2Eh 5951 5F ld e, a 5952 16 00 ld d, 0 5954 19 add hl, de 5955 7E ld a, (hl) 5956 E1 pop hl 5957 D1 pop de 5958 C9 ret 5958 ; End of function sub_5948 5958 5959 5959 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 5959 5959 5959 sub_5959: ; CODE XREF: sub_5969+1p 5959 3A D0 EF ; sub_599D+1p ... 5959 ld a, (0EFD0h) 595C 4F ld c, a 595D CB 21 sla c 595F 06 00 ld b, 0 5961 21 10 EF ld hl, 0EF10h 5964 09 add hl, bc 5965 5E ld e, (hl) 5966 23 inc hl 5967 56 ld d, (hl) 5968 C9 ret 5968 ; End of function sub_5959 5968 5969 5969 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 5969 5969 5969 sub_5969: ; CODE XREF: seg000:5B46p 5969 E5 ; seg000:5C8Fp ... 5969 push hl 596A CD 59 59 call sub_5959 596D 06 05 ld b, 5 596F 21 10 EF ld hl, 0EF10h 5972 5972 loc_5972: ; CODE XREF: sub_5969+19j 5972 4E ld c, (hl) 5973 7B ld a, e 5974 A7 and a 5975 99 sbc a, c 5976 FE 08 cp 8 5978 38 0C jr c, loc_5986 597A 79 ld a, c 597B 9B sbc a, e 597C FE 09 cp 9 597E 38 06 jr c, loc_5986 5980 5980 loc_5980: ; CODE XREF: sub_5969+29j 5980 23 inc hl 5981 23 inc hl 5982 10 EE djnz loc_5972 5984 E1 pop hl 5985 C9 ret 5986 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 5986 5986 loc_5986: ; CODE XREF: sub_5969+Fj 5986 23 ; sub_5969+15j 5986 inc hl 5987 4E ld c, (hl) 5988 7A ld a, d 5989 A7 and a 598A 99 sbc a, c 598B 28 04 jr z, loc_5991 598D FE 09 cp 9 598F 38 03 jr c, loc_5994 5991 5991 loc_5991: ; CODE XREF: sub_5969+22j 5991 2B ; sub_5969+30j 5991 dec hl 5992 18 EC jr loc_5980 5994 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 5994 5994 loc_5994: ; CODE XREF: sub_5969+26j 5994 CD 48 59 call sub_5948 5997 FE 05 cp 5 5999 38 F6 jr c, loc_5991 599B 18 65 jr loc_5A02 599B ; End of function sub_5969 599B 599D 599D ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 599D 599D 599D sub_599D: ; CODE XREF: seg000:5BDBp 599D E5 push hl 599E CD 59 59 call sub_5959 59A1 06 05 ld b, 5 59A3 21 10 EF ld hl, 0EF10h 59A6 59A6 loc_59A6: ; CODE XREF: sub_599D+19j 59A6 4E ld c, (hl) 59A7 7B ld a, e 59A8 A7 and a 59A9 99 sbc a, c 59AA FE 08 cp 8 59AC 38 0C jr c, loc_59BA 59AE 79 ld a, c 59AF 9B sbc a, e 59B0 FE 09 cp 9 59B2 38 06 jr c, loc_59BA 59B4 59B4 loc_59B4: ; CODE XREF: sub_599D+28j 59B4 23 inc hl 59B5 23 inc hl 59B6 10 EE djnz loc_59A6 59B8 E1 pop hl 59B9 C9 ret 59BA ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 59BA 59BA loc_59BA: ; CODE XREF: sub_599D+Fj 59BA 23 ; sub_599D+15j 59BA inc hl 59BB 7E ld a, (hl) 59BC A7 and a 59BD 9A sbc a, d 59BE 28 04 jr z, loc_59C4 59C0 FE 09 cp 9 59C2 38 03 jr c, loc_59C7 59C4 59C4 loc_59C4: ; CODE XREF: sub_599D+21j 59C4 2B ; sub_599D+2Fj 59C4 dec hl 59C5 18 ED jr loc_59B4 59C7 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 59C7 59C7 loc_59C7: ; CODE XREF: sub_599D+25j 59C7 CD 48 59 call sub_5948 59CA FE 05 cp 5 59CC 38 F6 jr c, loc_59C4 59CE 18 32 jr loc_5A02 59CE ; End of function sub_599D 59CE 59D0 59D0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 59D0 59D0 59D0 sub_59D0: ; CODE XREF: seg000:5B4Ep 59D0 E5 ; seg000:5BE3p ... 59D0 push hl 59D1 CD 59 59 call sub_5959 59D4 06 05 ld b, 5 59D6 21 11 EF ld hl, 0EF11h 59D9 59D9 loc_59D9: ; CODE XREF: sub_59D0+19j 59D9 4E ld c, (hl) 59DA 7A ld a, d 59DB A7 and a 59DC 99 sbc a, c 59DD FE 08 cp 8 59DF 38 0C jr c, loc_59ED 59E1 79 ld a, c 59E2 9A sbc a, d 59E3 FE 08 cp 8 59E5 38 06 jr c, loc_59ED 59E7 59E7 loc_59E7: ; CODE XREF: sub_59D0+29j 59E7 23 inc hl 59E8 23 inc hl 59E9 10 EE djnz loc_59D9 59EB E1 pop hl 59EC C9 ret 59ED ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 59ED 59ED loc_59ED: ; CODE XREF: sub_59D0+Fj 59ED 2B ; sub_59D0+15j 59ED dec hl 59EE 4E ld c, (hl) 59EF 7B ld a, e 59F0 A7 and a 59F1 99 sbc a, c 59F2 28 04 jr z, loc_59F8 59F4 FE 0A cp 0Ah 59F6 38 03 jr c, loc_59FB 59F8 59F8 loc_59F8: ; CODE XREF: sub_59D0+22j 59F8 23 ; sub_59D0+30j 59F8 inc hl 59F9 18 EC jr loc_59E7 59FB ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 59FB 59FB loc_59FB: ; CODE XREF: sub_59D0+26j 59FB CD 48 59 call sub_5948 59FE FE 05 cp 5 5A00 38 F6 jr c, loc_59F8 5A02 5A02 loc_5A02: ; CODE XREF: sub_5969+32j 5A02 18 4C ; sub_599D+31j 5A02 jr loc_5A50 5A04 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 5A04 5A04 loc_5A04: ; CODE XREF: sub_56F2+17Ej 5A04 E5 ; sub_56F2+1AAj ... 5A04 push hl 5A05 C5 push bc 5A06 CD 59 59 call sub_5959 5A09 06 05 ld b, 5 5A0B 21 11 EF ld hl, 0EF11h 5A0E 5A0E loc_5A0E: ; CODE XREF: sub_59D0+4Ej 5A0E 4E ld c, (hl) 5A0F 7A ld a, d 5A10 A7 and a 5A11 99 sbc a, c 5A12 FE 07 cp 7 5A14 38 0D jr c, loc_5A23 5A16 79 ld a, c 5A17 9A sbc a, d 5A18 FE 07 cp 7 5A1A 38 07 jr c, loc_5A23 5A1C 5A1C loc_5A1C: ; CODE XREF: sub_59D0+5Ej 5A1C 23 inc hl 5A1D 23 inc hl 5A1E 10 EE djnz loc_5A0E 5A20 E1 pop hl 5A21 D1 pop de 5A22 E9 jp (hl) 5A23 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 5A23 5A23 loc_5A23: ; CODE XREF: sub_59D0+44j 5A23 2B ; sub_59D0+4Aj 5A23 dec hl 5A24 7E ld a, (hl) 5A25 A7 and a 5A26 9B sbc a, e 5A27 28 04 jr z, loc_5A2D 5A29 FE 0B cp 0Bh 5A2B 38 03 jr c, loc_5A30 5A2D 5A2D loc_5A2D: ; CODE XREF: sub_59D0+57j 5A2D 23 ; sub_59D0+65j 5A2D inc hl 5A2E 18 EC jr loc_5A1C 5A30 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 5A30 5A30 loc_5A30: ; CODE XREF: sub_59D0+5Bj 5A30 CD 48 59 call sub_5948 5A33 FE 05 cp 5 5A35 38 F6 jr c, loc_5A2D 5A37 C1 pop bc 5A38 21 9F 58 ld hl, 589Fh 5A3B A7 and a 5A3C ED 42 sbc hl, bc 5A3E 28 34 jr z, loc_5A74 5A40 21 73 58 ld hl, 5873h 5A43 A7 and a 5A44 ED 42 sbc hl, bc 5A46 28 28 jr z, loc_5A70 5A48 21 F6 5C ld hl, 5CF6h 5A4B A7 and a 5A4C ED 42 sbc hl, bc 5A4E 28 07 jr z, loc_5A57 5A50 5A50 loc_5A50: ; CODE XREF: sub_59D0+32j 5A50 E1 ; seg000:5A65j 5A50 pop hl 5A51 3E 01 ld a, 1 5A53 32 D6 EF ld (0EFD6h), a 5A56 C9 ret 5A56 ; End of function sub_59D0 5A56 5A57 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 5A57 5A57 loc_5A57: ; CODE XREF: sub_59D0+7Ej 5A57 3A C1 EF ld a, (0EFC1h) 5A5A 57 ld d, a 5A5B 3A C0 EF ld a, (0EFC0h) 5A5E 5F ld e, a 5A5F CD 33 50 call get_ptr_level_data_of_row_col 5A62 7E ld a, (hl) ; level data 5A63 FE 05 cp 5 ; ladder? 5A65 20 E9 jr nz, loc_5A50 ; no, skip 5A67 E1 pop hl 5A68 CD B9 5A call sub_5AB9 5A6B 3E 03 ld a, 3 5A6D 77 ld (hl), a 5A6E 18 20 jr loc_5A90 5A70 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 5A70 5A70 loc_5A70: ; CODE XREF: sub_59D0+76j 5A70 AF xor a 5A71 32 C2 EF ld (0EFC2h), a 5A74 5A74 loc_5A74: ; CODE XREF: sub_59D0+6Ej 5A74 E1 pop hl 5A75 5A75 loc_5A75: ; CODE XREF: sub_56F2+137j 5A75 3A 40 F0 ; sub_56F2+14Bj ... 5A75 ld a, (0F040h) 5A78 A7 and a 5A79 28 0A jr z, loc_5A85 5A7B AF xor a 5A7C 32 40 F0 ld (0F040h), a 5A7F CD B9 5A call sub_5AB9 5A82 7E ld a, (hl) 5A83 18 0B jr loc_5A90 5A85 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 5A85 5A85 loc_5A85: ; CODE XREF: seg000:5A79j 5A85 3A C1 EF ld a, (0EFC1h) 5A88 57 ld d, a 5A89 3A C0 EF ld a, (0EFC0h) 5A8C 5F ld e, a 5A8D CD 2F 5D call sub_5D2F 5A90 5A90 loc_5A90: ; CODE XREF: sub_56F2+10Bj 5A90 F5 ; sub_56F2+115j ... 5A90 push af 5A91 AF xor a 5A92 32 40 F0 ld (0F040h), a 5A95 F1 pop af 5A96 CD B9 5A call sub_5AB9 5A99 46 ld b, (hl) 5A9A B8 cp b 5A9B C4 C6 5A call nz, sub_5AC6 5A9E 77 ld (hl), a 5A9F 21 AD 5A ld hl, 5AADh 5AA2 5F ld e, a 5AA3 CB 23 sla e 5AA5 16 00 ld d, 0 5AA7 19 add hl, de 5AA8 5E ld e, (hl) 5AA9 23 inc hl 5AAA 56 ld d, (hl) 5AAB EB ex de, hl 5AAC E9 jp (hl) 5AAC ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 5AAD 06 5B .dw 5B06h 5AAF 19 5B .dw 5B19h 5AB1 AE 5B .dw 5BAEh 5AB3 45 5C .dw 5C45h 5AB5 C6 5C .dw 5CC6h 5AB7 4C 5C .dw 5C4Ch 5AB9 5AB9 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 5AB9 5AB9 5AB9 sub_5AB9: ; CODE XREF: sub_56F2+96p 5AB9 F5 ; sub_56F2+F8p ... 5AB9 push af 5ABA 21 D1 EF ld hl, 0EFD1h 5ABD 3A D0 EF ld a, (0EFD0h) 5AC0 5F ld e, a 5AC1 16 00 ld d, 0 5AC3 19 add hl, de 5AC4 F1 pop af 5AC5 C9 ret 5AC5 ; End of function sub_5AB9 5AC5 5AC6 5AC6 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 5AC6 5AC6 5AC6 sub_5AC6: ; CODE XREF: seg000:5A9Bp 5AC6 F5 push af 5AC7 E5 push hl 5AC8 3A F5 EF ld a, (0EFF5h) 5ACB A7 and a 5ACC 28 35 jr z, loc_5B03 5ACE ED 5F ld a, r 5AD0 FE 20 cp 20h ; ' ' 5AD2 30 2F jr nc, loc_5B03 5AD4 3A C1 EF ld a, (0EFC1h) 5AD7 57 ld d, a 5AD8 3A C0 EF ld a, (0EFC0h) 5ADB 5F ld e, a 5ADC CD 33 50 call get_ptr_level_data_of_row_col 5ADF 7E ld a, (hl) ; level data 5AE0 A7 and a ; empty? 5AE1 20 20 jr nz, loc_5B03 ; no, skip 5AE3 E5 push hl 5AE4 D5 push de 5AE5 11 20 00 ld de, 32 5AE8 19 add hl, de ; tile below 5AE9 D1 pop de 5AEA 7E ld a, (hl) ; level data 5AEB E1 pop hl 5AEC A7 and a ; empty? 5AED 28 14 jr z, loc_5B03 ; yes, skip 5AEF AF xor a 5AF0 32 F5 EF ld (0EFF5h), a 5AF3 3E 07 ld a, 7 ; gold box 5AF5 77 ld (hl), a ; store as level data 5AF6 D5 push de 5AF7 CD 5A 50 call disable_vdp_interrupts 5AFA D1 pop de 5AFB 3E 07 ld a, 7 ; gold box 5AFD CD F9 50 call print_character ; display gold box 5B00 CD 61 50 call enable_vdp_interrupts 5B03 5B03 loc_5B03: ; CODE XREF: sub_5AC6+6j 5B03 E1 ; sub_5AC6+Cj ... 5B03 pop hl 5B04 F1 pop af 5B05 C9 ret 5B05 ; End of function sub_5AC6 5B05 5B06 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 5B06 AF xor a 5B07 32 41 F0 ld (0F041h), a 5B0A 32 CF EF ld (0EFCFh), a 5B0D 5B0D loc_5B0D: ; CODE XREF: seg000:5BABj 5B0D 3A C0 EF ; seg000:5C42j ... 5B0D ld a, (0EFC0h) 5B10 FE 0F cp 0Fh 5B12 20 04 jr nz, locret_5B18 5B14 AF xor a 5B15 32 C2 EF ld (0EFC2h), a 5B18 5B18 locret_5B18: ; CODE XREF: seg000:5B12j 5B18 C9 ret 5B19 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 5B19 AF xor a 5B1A 32 CF EF ld (0EFCFh), a 5B1D 32 41 F0 ld (0F041h), a 5B20 3A C1 EF ld a, (0EFC1h) 5B23 57 ld d, a 5B24 15 dec d 5B25 3A C0 EF ld a, (0EFC0h) 5B28 5F ld e, a 5B29 CD 33 50 call get_ptr_level_data_of_row_col 5B2C 3A C3 EF ld a, (0EFC3h) 5B2F A7 and a 5B30 20 14 jr nz, loc_5B46 5B32 3A C1 EF ld a, (0EFC1h) 5B35 FE 02 cp 2 5B37 28 72 jr z, loc_5BAB 5B39 7E ld a, (hl) ; level data 5B3A FE 01 cp 1 ; fall-thru brick? 5B3C 28 6D jr z, loc_5BAB ; yes, skip 5B3E FE 02 cp 2 ; diggable brick? 5B40 28 69 jr z, loc_5BAB ; yes, skip 5B42 FE 03 cp 3 ; solid brick? 5B44 28 65 jr z, loc_5BAB ; yes, skip 5B46 5B46 loc_5B46: ; CODE XREF: seg000:5B30j 5B46 CD 69 59 call sub_5969 5B49 3A D6 EF ld a, (0EFD6h) 5B4C A7 and a 5B4D C0 ret nz 5B4E CD D0 59 call sub_59D0 5B51 3A D6 EF ld a, (0EFD6h) 5B54 A7 and a 5B55 20 03 jr nz, loc_5B5A 5B57 32 C2 EF ld (0EFC2h), a 5B5A 5B5A loc_5B5A: ; CODE XREF: seg000:5B55j 5B5A 3A C2 EF ld a, (0EFC2h) 5B5D A7 and a 5B5E C0 ret nz 5B5F 3A C3 EF ld a, (0EFC3h) 5B62 3D dec a 5B63 FE FF cp 0FFh 5B65 20 09 jr nz, loc_5B70 5B67 3A C1 EF ld a, (0EFC1h) 5B6A 3D dec a 5B6B 32 C1 EF ld (0EFC1h), a 5B6E 3E 03 ld a, 3 5B70 5B70 loc_5B70: ; CODE XREF: seg000:5B65j 5B70 32 C3 EF ld (0EFC3h), a 5B73 23 inc hl 5B74 7E ld a, (hl) 5B75 FE 04 cp 4 5B77 28 1A jr z, loc_5B93 5B79 21 3D EF ld hl, 0EF3Dh 5B7C 3A D0 EF ld a, (0EFD0h) 5B7F 5F ld e, a 5B80 16 00 ld d, 0 5B82 19 add hl, de 5B83 7E ld a, (hl) 5B84 06 04 ld b, 4 5B86 80 add a, b 5B87 FE 1F cp 1Fh 5B89 38 02 jr c, loc_5B8D 5B8B 3E 14 ld a, 14h 5B8D 5B8D loc_5B8D: ; CODE XREF: seg000:5B89j 5B8D 77 ld (hl), a 5B8E 32 C4 EF ld (0EFC4h), a 5B91 18 18 jr loc_5BAB 5B93 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 5B93 5B93 loc_5B93: ; CODE XREF: seg000:5B77j 5B93 21 47 EF ld hl, 0EF47h 5B96 3A D0 EF ld a, (0EFD0h) 5B99 5F ld e, a 5B9A 16 00 ld d, 0 5B9C 19 add hl, de 5B9D 7E ld a, (hl) 5B9E 06 04 ld b, 4 5BA0 80 add a, b 5BA1 FE 37 cp 37h ; '7' 5BA3 38 02 jr c, loc_5BA7 5BA5 3E 2C ld a, 2Ch ; ',' 5BA7 5BA7 loc_5BA7: ; CODE XREF: seg000:5BA3j 5BA7 77 ld (hl), a 5BA8 32 C4 EF ld (0EFC4h), a 5BAB 5BAB loc_5BAB: ; CODE XREF: seg000:5B37j 5BAB C3 0D 5B ; seg000:5B3Cj ... 5BAB jp loc_5B0D 5BAE ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 5BAE AF xor a 5BAF 32 CF EF ld (0EFCFh), a 5BB2 32 41 F0 ld (0F041h), a 5BB5 3A C1 EF ld a, (0EFC1h) 5BB8 57 ld d, a 5BB9 14 inc d 5BBA 3A C0 EF ld a, (0EFC0h) 5BBD 5F ld e, a 5BBE CD 33 50 call get_ptr_level_data_of_row_col 5BC1 3A C3 EF ld a, (0EFC3h) 5BC4 A7 and a 5BC5 20 14 jr nz, loc_5BDB 5BC7 3A C1 EF ld a, (0EFC1h) 5BCA FE 1D cp 1Dh 5BCC 28 74 jr z, loc_5C42 5BCE 7E ld a, (hl) ; level data 5BCF FE 01 cp 1 ; fall-thru brick? 5BD1 28 6F jr z, loc_5C42 ; yes, skip 5BD3 FE 02 cp 2 ; diggable brick? 5BD5 28 6B jr z, loc_5C42 ; yes, skip 5BD7 FE 03 cp 3 ; solid brick? 5BD9 28 67 jr z, loc_5C42 ; yes, skip 5BDB 5BDB loc_5BDB: ; CODE XREF: seg000:5BC5j 5BDB CD 9D 59 call sub_599D 5BDE 3A D6 EF ld a, (0EFD6h) 5BE1 A7 and a 5BE2 C0 ret nz 5BE3 CD D0 59 call sub_59D0 5BE6 3A D6 EF ld a, (0EFD6h) 5BE9 A7 and a 5BEA 20 03 jr nz, loc_5BEF 5BEC 32 C2 EF ld (0EFC2h), a 5BEF 5BEF loc_5BEF: ; CODE XREF: seg000:5BEAj 5BEF 3A C2 EF ld a, (0EFC2h) 5BF2 A7 and a 5BF3 C0 ret nz 5BF4 3A C3 EF ld a, (0EFC3h) 5BF7 3C inc a 5BF8 32 C3 EF ld (0EFC3h), a 5BFB FE 04 cp 4 5BFD 20 0B jr nz, loc_5C0A 5BFF AF xor a 5C00 32 C3 EF ld (0EFC3h), a 5C03 3A C1 EF ld a, (0EFC1h) 5C06 3C inc a 5C07 32 C1 EF ld (0EFC1h), a 5C0A 5C0A loc_5C0A: ; CODE XREF: seg000:5BFDj 5C0A 2B dec hl 5C0B 7E ld a, (hl) 5C0C FE 04 cp 4 5C0E 28 1A jr z, loc_5C2A 5C10 21 38 EF ld hl, 0EF38h 5C13 3A D0 EF ld a, (0EFD0h) 5C16 5F ld e, a 5C17 16 00 ld d, 0 5C19 19 add hl, de 5C1A 7E ld a, (hl) 5C1B 06 04 ld b, 4 5C1D 80 add a, b 5C1E FE 13 cp 13h 5C20 38 02 jr c, loc_5C24 5C22 3E 08 ld a, 8 5C24 5C24 loc_5C24: ; CODE XREF: seg000:5C20j 5C24 77 ld (hl), a 5C25 32 C4 EF ld (0EFC4h), a 5C28 18 18 jr loc_5C42 5C2A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 5C2A 5C2A loc_5C2A: ; CODE XREF: seg000:5C0Ej 5C2A 21 42 EF ld hl, 0EF42h 5C2D 3A D0 EF ld a, (0EFD0h) 5C30 5F ld e, a 5C31 16 00 ld d, 0 5C33 19 add hl, de 5C34 7E ld a, (hl) 5C35 06 04 ld b, 4 5C37 80 add a, b 5C38 FE 2B cp 2Bh ; '+' 5C3A 38 02 jr c, loc_5C3E 5C3C 3E 20 ld a, 20h ; ' ' 5C3E 5C3E loc_5C3E: ; CODE XREF: seg000:5C3Aj 5C3E 77 ld (hl), a 5C3F 32 C4 EF ld (0EFC4h), a 5C42 5C42 loc_5C42: ; CODE XREF: seg000:5BCCj 5C42 C3 0D 5B ; seg000:5BD1j ... 5C42 jp loc_5B0D 5C45 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 5C45 AF xor a 5C46 32 CF EF ld (0EFCFh), a 5C49 32 41 F0 ld (0F041h), a 5C4C 3A C2 EF ld a, (0EFC2h) 5C4F A7 and a 5C50 20 19 jr nz, loc_5C6B 5C52 3A C0 EF ld a, (0EFC0h) 5C55 A7 and a 5C56 CA C3 5C jp z, loc_5CC3 5C59 5F ld e, a 5C5A 1D dec e 5C5B 3A C1 EF ld a, (0EFC1h) 5C5E 57 ld d, a 5C5F CD 33 50 call get_ptr_level_data_of_row_col 5C62 7E ld a, (hl) ; level data 5C63 FE 02 cp 2 ; diggable brick? 5C65 28 5C jr z, loc_5CC3 ; yes, skip 5C67 FE 03 cp 3 ; solid brick? 5C69 28 58 jr z, loc_5CC3 ; yes, skip 5C6B 5C6B loc_5C6B: ; CODE XREF: seg000:5C50j 5C6B CD D0 59 call sub_59D0 5C6E 3A D6 EF ld a, (0EFD6h) 5C71 A7 and a 5C72 C0 ret nz 5C73 3A C2 EF ld a, (0EFC2h) 5C76 3D dec a 5C77 FE FF cp 0FFh 5C79 20 0E jr nz, loc_5C89 5C7B 3E 01 ld a, 1 5C7D 32 41 F0 ld (0F041h), a 5C80 3A C0 EF ld a, (0EFC0h) 5C83 3D dec a 5C84 32 C0 EF ld (0EFC0h), a 5C87 3E 04 ld a, 4 5C89 5C89 loc_5C89: ; CODE XREF: seg000:5C79j 5C89 32 C2 EF ld (0EFC2h), a 5C8C A7 and a 5C8D 20 10 jr nz, loc_5C9F 5C8F CD 69 59 call sub_5969 5C92 3A D6 EF ld a, (0EFD6h) 5C95 A7 and a 5C96 20 03 jr nz, loc_5C9B 5C98 32 C3 EF ld (0EFC3h), a 5C9B 5C9B loc_5C9B: ; CODE XREF: seg000:5C96j 5C9B AF xor a 5C9C 32 CF EF ld (0EFCFh), a 5C9F 5C9F loc_5C9F: ; CODE XREF: seg000:5C8Dj 5C9F 3A C3 EF ; seg000:5D24j 5C9F ld a, (0EFC3h) 5CA2 FE 02 cp 2 5CA4 38 05 jr c, loc_5CAB 5CA6 3E 01 ld a, 1 5CA8 32 C3 EF ld (0EFC3h), a 5CAB 5CAB loc_5CAB: ; CODE XREF: seg000:5CA4j 5CAB 21 33 EF ld hl, 0EF33h 5CAE 3A D0 EF ld a, (0EFD0h) 5CB1 5F ld e, a 5CB2 16 00 ld d, 0 5CB4 19 add hl, de 5CB5 7E ld a, (hl) 5CB6 06 04 ld b, 4 5CB8 80 add a, b 5CB9 FE 43 cp 43h ; 'C' 5CBB 38 02 jr c, loc_5CBF 5CBD 3E 38 ld a, 38h ; '8' 5CBF 5CBF loc_5CBF: ; CODE XREF: seg000:5CBBj 5CBF 77 ld (hl), a 5CC0 32 C4 EF ld (0EFC4h), a 5CC3 5CC3 loc_5CC3: ; CODE XREF: seg000:5C56j 5CC3 C3 0D 5B ; seg000:5C65j ... 5CC3 jp loc_5B0D 5CC6 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 5CC6 AF xor a 5CC7 32 CF EF ld (0EFCFh), a 5CCA 32 41 F0 ld (0F041h), a 5CCD 3A C0 EF ld a, (0EFC0h) 5CD0 5F ld e, a 5CD1 1C inc e 5CD2 3A C1 EF ld a, (0EFC1h) 5CD5 57 ld d, a 5CD6 CD 33 50 call get_ptr_level_data_of_row_col 5CD9 3A C0 EF ld a, (0EFC0h) 5CDC FE 0F cp 0Fh 5CDE D2 2C 5D jp nc, loc_5D2C 5CE1 3A C2 EF ld a, (0EFC2h) 5CE4 A7 and a 5CE5 20 09 jr nz, loc_5CF0 5CE7 7E ld a, (hl) ; level data 5CE8 FE 02 cp 2 ; diggable brick? 5CEA 28 40 jr z, loc_5D2C ; yes, skip 5CEC FE 03 cp 3 ; solid brick? 5CEE 28 3C jr z, loc_5D2C ; yes, skip 5CF0 5CF0 loc_5CF0: ; CODE XREF: seg000:5CE5j 5CF0 01 F6 5C ld bc, 5CF6h 5CF3 C3 04 5A jp loc_5A04 5CF6 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 5CF6 01 F6 5C ld bc, 5CF6h 5CF9 3A C2 EF ld a, (0EFC2h) 5CFC 3C inc a 5CFD FE 05 cp 5 5CFF 38 14 jr c, loc_5D15 5D01 CD 69 59 call sub_5969 5D04 3A D6 EF ld a, (0EFD6h) 5D07 A7 and a 5D08 20 03 jr nz, loc_5D0D 5D0A 32 C3 EF ld (0EFC3h), a 5D0D 5D0D loc_5D0D: ; CODE XREF: seg000:5D08j 5D0D 3A C0 EF ld a, (0EFC0h) 5D10 3C inc a 5D11 32 C0 EF ld (0EFC0h), a 5D14 AF xor a 5D15 5D15 loc_5D15: ; CODE XREF: seg000:5CFFj 5D15 32 C2 EF ld (0EFC2h), a 5D18 1A ld a, (de) 5D19 A7 and a 5D1A 28 0B jr z, loc_5D27 5D1C FE 01 cp 1 5D1E 28 07 jr z, loc_5D27 5D20 FE FF cp 0FFh 5D22 28 03 jr z, loc_5D27 5D24 C3 9F 5C jp loc_5C9F 5D27 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 5D27 5D27 loc_5D27: ; CODE XREF: seg000:5D1Aj 5D27 3E 44 ; seg000:5D1Ej ... 5D27 ld a, 44h ; 'D' 5D29 32 C4 EF ld (0EFC4h), a 5D2C 5D2C loc_5D2C: ; CODE XREF: seg000:5CDEj 5D2C C3 0D 5B ; seg000:5CEAj ... 5D2C jp loc_5B0D 5D2F 5D2F ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 5D2F 5D2F 5D2F sub_5D2F: ; CODE XREF: seg000:5A8Dp 5D2F 7A ld a, d 5D30 32 C7 EF ld (0EFC7h), a 5D33 7B ld a, e 5D34 32 C8 EF ld (0EFC8h), a 5D37 CD 33 50 call get_ptr_level_data_of_row_col 5D3A 7E ld a, (hl) ; level data 5D3B FE FF cp 0FFh 5D3D 20 0F jr nz, loc_5D4E 5D3F 3A CF EF ld a, (0EFCFh) 5D42 FE 01 cp 1 5D44 C2 4E 5D jp nz, loc_5D4E 5D47 AF xor a 5D48 32 CF EF ld (0EFCFh), a 5D4B 3E 05 ld a, 5 5D4D C9 ret 5D4E ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 5D4E 5D4E loc_5D4E: ; CODE XREF: sub_5D2F+Ej 5D4E 3A 02 EF ; sub_5D2F+15j 5D4E ld a, (0EF02h) ; get current row 5D51 47 ld b, a 5D52 3A C8 EF ld a, (0EFC8h) 5D55 B8 cp b 5D56 C2 DB 5D jp nz, loc_5DDB 5D59 3A C7 EF ld a, (0EFC7h) 5D5C 32 CD EF ld (0EFCDh), a 5D5F 21 03 EF ld hl, 0EF03h ; current column 5D62 BE cp (hl) 5D63 30 3D jr nc, loc_5DA2 5D65 5D65 loc_5D65: ; CODE XREF: sub_5D2F+6Ej 5D65 21 CD EF ld hl, 0EFCDh 5D68 34 inc (hl) 5D69 3A C8 EF ld a, (0EFC8h) 5D6C 5F ld e, a 5D6D 3A CD EF ld a, (0EFCDh) 5D70 57 ld d, a 5D71 CD 33 50 call get_ptr_level_data_of_row_col 5D74 7E ld a, (hl) ; level data 5D75 FE 05 cp 5 ; ladder? 5D77 28 1C jr z, loc_5D95 ; yes, skip 5D79 FE 04 cp 4 ; rope? 5D7B 28 18 jr z, loc_5D95 ; yes, skip 5D7D 3A C8 EF ld a, (0EFC8h) 5D80 FE 0F cp 0Fh 5D82 28 11 jr z, loc_5D95 5D84 5F ld e, a 5D85 1C inc e 5D86 3A CD EF ld a, (0EFCDh) 5D89 57 ld d, a 5D8A CD 33 50 call get_ptr_level_data_of_row_col 5D8D 7E ld a, (hl) ; level data 5D8E A7 and a ; empty? 5D8F 28 4A jr z, loc_5DDB ; yes, skip 5D91 FE 01 cp 1 ; fall-thru brick? 5D93 28 46 jr z, loc_5DDB ; yes, skip 5D95 5D95 loc_5D95: ; CODE XREF: sub_5D2F+48j 5D95 3A 03 EF ; sub_5D2F+4Cj ... 5D95 ld a, (0EF03h) ; get current column 5D98 47 ld b, a 5D99 3A CD EF ld a, (0EFCDh) 5D9C B8 cp b 5D9D 20 C6 jr nz, loc_5D65 5D9F 3E 02 ld a, 2 5DA1 C9 ret 5DA2 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 5DA2 5DA2 loc_5DA2: ; CODE XREF: sub_5D2F+34j 5DA2 21 CD EF ; sub_5D2F+A7j 5DA2 ld hl, 0EFCDh 5DA5 35 dec (hl) 5DA6 3A C8 EF ld a, (0EFC8h) 5DA9 FE 0F cp 0Fh 5DAB 28 21 jr z, loc_5DCE 5DAD 5F ld e, a 5DAE 3A CD EF ld a, (0EFCDh) 5DB1 57 ld d, a 5DB2 CD 33 50 call get_ptr_level_data_of_row_col 5DB5 7E ld a, (hl) ; level data 5DB6 FE 05 cp 5 ; ladder? 5DB8 28 14 jr z, loc_5DCE ; yes, skip 5DBA FE 04 cp 4 ; rope? 5DBC 28 10 jr z, loc_5DCE ; yes, skip 5DBE 1C inc e ; tile below 5DBF 3A CD EF ld a, (0EFCDh) 5DC2 57 ld d, a 5DC3 CD 33 50 call get_ptr_level_data_of_row_col 5DC6 7E ld a, (hl) ; level data 5DC7 A7 and a ; empty? 5DC8 28 11 jr z, loc_5DDB ; yes, skip 5DCA FE 01 cp 1 ; fall-thru brick? 5DCC 28 0D jr z, loc_5DDB ; yes, skip 5DCE 5DCE loc_5DCE: ; CODE XREF: sub_5D2F+7Cj 5DCE 3A 03 EF ; sub_5D2F+89j ... 5DCE ld a, (0EF03h) ; get current column 5DD1 47 ld b, a 5DD2 3A CD EF ld a, (0EFCDh) 5DD5 B8 cp b 5DD6 20 CA jr nz, loc_5DA2 5DD8 3E 01 ld a, 1 5DDA C9 ret 5DDB ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 5DDB 5DDB loc_5DDB: ; CODE XREF: sub_5D2F+27j 5DDB AF ; sub_5D2F+60j ... 5DDB xor a 5DDC 32 CA EF ld (0EFCAh), a 5DDF 3E FF ld a, 0FFh 5DE1 32 C9 EF ld (0EFC9h), a 5DE4 3A C7 EF ld a, (0EFC7h) 5DE7 57 ld d, a 5DE8 3A C8 EF ld a, (0EFC8h) 5DEB 5F ld e, a 5DEC CD FC 5D call sub_5DFC 5DEF CD B7 5F call sub_5FB7 5DF2 CD 38 5F call sub_5F38 5DF5 CD B9 5E call sub_5EB9 5DF8 3A CA EF ld a, (0EFCAh) 5DFB C9 ret 5DFB ; End of function sub_5D2F 5DFB 5DFC 5DFC ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 5DFC 5DFC 5DFC sub_5DFC: ; CODE XREF: sub_5D2F+BDp 5DFC 7A ld a, d 5DFD 32 CC EF ld (0EFCCh), a 5E00 32 CB EF ld (0EFCBh), a 5E03 4B ld c, e 5E04 5E04 loc_5E04: ; CODE XREF: sub_5DFC+49j 5E04 3A CC EF ld a, (0EFCCh) 5E07 FE 02 cp 2 5E09 28 41 jr z, loc_5E4C 5E0B 59 ld e, c 5E0C 57 ld d, a 5E0D 15 dec d 5E0E CD 33 50 call get_ptr_level_data_of_row_col 5E11 7E ld a, (hl) ; level data 5E12 FE 02 cp 2 ; diggable brick? 5E14 28 36 jr z, loc_5E4C ; yes, skip 5E16 FE 03 cp 3 ; solid brick? 5E18 28 32 jr z, loc_5E4C ; yes, skip 5E1A FE 05 cp 5 ; ladder? 5E1C 28 1E jr z, loc_5E3C ; yes, skip 5E1E FE 04 cp 4 ; rope? 5E20 28 1A jr z, loc_5E3C ; yes, skip 5E22 79 ld a, c 5E23 FE 0F cp 0Fh 5E25 28 15 jr z, loc_5E3C 5E27 11 20 00 ld de, 32 5E2A 19 add hl, de ; tile below 5E2B 7E ld a, (hl) ; level data 5E2C FE FF cp 0FFh 5E2E 28 0C jr z, loc_5E3C 5E30 FE 02 cp 2 ; diggable brick? 5E32 28 08 jr z, loc_5E3C ; yes, skip 5E34 FE 03 cp 3 ; solid brick? 5E36 28 04 jr z, loc_5E3C ; yes, skip 5E38 FE 05 cp 5 ; ladder? 5E3A 20 0C jr nz, loc_5E48 ; no, skip 5E3C 5E3C loc_5E3C: ; CODE XREF: sub_5DFC+20j 5E3C 3A CC EF ; sub_5DFC+24j ... 5E3C ld a, (0EFCCh) 5E3F 3D dec a 5E40 32 CC EF ld (0EFCCh), a 5E43 FE 02 cp 2 5E45 D2 04 5E jp nc, loc_5E04 5E48 5E48 loc_5E48: ; CODE XREF: sub_5DFC+3Ej 5E48 21 CC EF ld hl, 0EFCCh 5E4B 35 dec (hl) 5E4C 5E4C loc_5E4C: ; CODE XREF: sub_5DFC+Dj 5E4C 3A CB EF ; sub_5DFC+18j ... 5E4C ld a, (0EFCBh) 5E4F FE 1D cp 1Dh 5E51 28 3F jr z, locret_5E92 5E53 59 ld e, c 5E54 3A CB EF ld a, (0EFCBh) 5E57 57 ld d, a 5E58 14 inc d 5E59 CD 33 50 call get_ptr_level_data_of_row_col 5E5C 7E ld a, (hl) ; level data 5E5D FE 02 cp 2 ; diggable brick? 5E5F 28 31 jr z, locret_5E92 ; yes, skip 5E61 FE 03 cp 3 ; solid brick? 5E63 28 2D jr z, locret_5E92 ; yes, skip 5E65 FE 05 cp 5 ; ladder? 5E67 28 1E jr z, loc_5E87 ; yes, skip 5E69 FE 04 cp 4 ; rope? 5E6B 28 1A jr z, loc_5E87 ; yes, skip 5E6D 79 ld a, c 5E6E FE 0F cp 0Fh 5E70 28 15 jr z, loc_5E87 5E72 11 20 00 ld de, 32 5E75 19 add hl, de 5E76 7E ld a, (hl) ; tile below 5E77 FE FF cp 0FFh 5E79 28 0C jr z, loc_5E87 5E7B FE 02 cp 2 ; diggable brick? 5E7D 28 08 jr z, loc_5E87 ; yes, skip 5E7F FE 03 cp 3 ; solid brick? 5E81 28 04 jr z, loc_5E87 ; yes, skip 5E83 FE 05 cp 5 ; ladder? 5E85 20 07 jr nz, loc_5E8E ; no, skip 5E87 5E87 loc_5E87: ; CODE XREF: sub_5DFC+6Bj 5E87 21 CB EF ; sub_5DFC+6Fj ... 5E87 ld hl, 0EFCBh 5E8A 34 inc (hl) 5E8B C3 4C 5E jp loc_5E4C 5E8E ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 5E8E 5E8E loc_5E8E: ; CODE XREF: sub_5DFC+89j 5E8E 21 CB EF ld hl, 0EFCBh 5E91 34 inc (hl) 5E92 5E92 locret_5E92: ; CODE XREF: sub_5DFC+55j 5E92 C9 ; sub_5DFC+63j ... 5E92 ret 5E92 ; End of function sub_5DFC 5E92 5E93 5E93 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 5E93 5E93 5E93 sub_5E93: ; CODE XREF: sub_5EB9+34p 5E93 4F ; sub_5EB9+67p ... 5E93 ld c, a 5E94 3A 02 EF ld a, (0EF02h) ; get current row 5E97 B9 cp c 5E98 20 11 jr nz, loc_5EAB 5E9A 3A C1 EF ld a, (0EFC1h) 5E9D B8 cp b 5E9E 30 05 jr nc, loc_5EA5 5EA0 5F ld e, a 5EA1 78 ld a, b 5EA2 A7 and a 5EA3 9B sbc a, e 5EA4 C9 ret 5EA5 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 5EA5 5EA5 loc_5EA5: ; CODE XREF: sub_5E93+Bj 5EA5 3A C1 EF ld a, (0EFC1h) 5EA8 A7 and a 5EA9 98 sbc a, b 5EAA C9 ret 5EAB ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 5EAB 5EAB loc_5EAB: ; CODE XREF: sub_5E93+5j 5EAB 30 07 jr nc, loc_5EB4 5EAD 57 ld d, a 5EAE 79 ld a, c 5EAF A7 and a 5EB0 9A sbc a, d 5EB1 C6 C8 add a, 0C8h ; '' 5EB3 C9 ret 5EB4 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 5EB4 5EB4 loc_5EB4: ; CODE XREF: sub_5E93+18j 5EB4 A7 and a 5EB5 99 sbc a, c 5EB6 C6 64 add a, 64h ; 'd' 5EB8 C9 ret 5EB8 ; End of function sub_5E93 5EB8 5EB9 5EB9 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 5EB9 5EB9 5EB9 sub_5EB9: ; CODE XREF: sub_5D2F+C6p 5EB9 3A CB EF ; sub_5EB9+7Cj 5EB9 ld a, (0EFCBh) 5EBC 21 C7 EF ld hl, 0EFC7h 5EBF BE cp (hl) 5EC0 C8 ret z 5EC1 3A C8 EF ld a, (0EFC8h) 5EC4 FE 0F cp 0Fh 5EC6 28 36 jr z, loc_5EFE 5EC8 5F ld e, a 5EC9 1C inc e 5ECA 3A CB EF ld a, (0EFCBh) 5ECD 57 ld d, a 5ECE CD 33 50 call get_ptr_level_data_of_row_col 5ED1 7E ld a, (hl) ; level data 5ED2 FE FF cp 0FFh 5ED4 28 28 jr z, loc_5EFE 5ED6 FE 02 cp 2 ; diggable brick? 5ED8 28 24 jr z, loc_5EFE ; yes, skip 5EDA FE 03 cp 3 ; solid brick? 5EDC 28 20 jr z, loc_5EFE ; yes, skip 5EDE 3A CB EF ld a, (0EFCBh) 5EE1 57 ld d, a 5EE2 3A C8 EF ld a, (0EFC8h) 5EE5 5F ld e, a 5EE6 CD 96 60 call sub_6096 5EE9 21 CB EF ld hl, 0EFCBh 5EEC 46 ld b, (hl) 5EED CD 93 5E call sub_5E93 5EF0 21 C9 EF ld hl, 0EFC9h 5EF3 BE cp (hl) 5EF4 30 08 jr nc, loc_5EFE 5EF6 32 C9 EF ld (0EFC9h), a 5EF9 3E 02 ld a, 2 5EFB 32 CA EF ld (0EFCAh), a 5EFE 5EFE loc_5EFE: ; CODE XREF: sub_5EB9+Dj 5EFE 3A C8 EF ; sub_5EB9+1Bj ... 5EFE ld a, (0EFC8h) 5F01 A7 and a 5F02 28 2D jr z, loc_5F31 5F04 5F ld e, a 5F05 3A CB EF ld a, (0EFCBh) 5F08 57 ld d, a 5F09 CD 33 50 call get_ptr_level_data_of_row_col 5F0C 7E ld a, (hl) ; level data 5F0D FE 05 cp 5 ; ladder? 5F0F 20 20 jr nz, loc_5F31 ; no, skip 5F11 3A C8 EF ld a, (0EFC8h) 5F14 5F ld e, a 5F15 3A CB EF ld a, (0EFCBh) 5F18 57 ld d, a 5F19 CD 26 60 call sub_6026 5F1C 21 CB EF ld hl, 0EFCBh 5F1F 46 ld b, (hl) 5F20 CD 93 5E call sub_5E93 5F23 21 C9 EF ld hl, 0EFC9h 5F26 BE cp (hl) 5F27 30 08 jr nc, loc_5F31 5F29 32 C9 EF ld (0EFC9h), a 5F2C 3E 02 ld a, 2 5F2E 32 CA EF ld (0EFCAh), a 5F31 5F31 loc_5F31: ; CODE XREF: sub_5EB9+49j 5F31 21 CB EF ; sub_5EB9+56j ... 5F31 ld hl, 0EFCBh 5F34 35 dec (hl) 5F35 C3 B9 5E jp sub_5EB9 5F35 ; End of function sub_5EB9 5F35 5F38 5F38 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 5F38 5F38 5F38 sub_5F38: ; CODE XREF: sub_5D2F+C3p 5F38 3A CC EF ; sub_5F38+7Cj 5F38 ld a, (0EFCCh) 5F3B 21 C7 EF ld hl, 0EFC7h 5F3E BE cp (hl) 5F3F C8 ret z 5F40 3A C8 EF ld a, (0EFC8h) 5F43 FE 0F cp 0Fh 5F45 28 36 jr z, loc_5F7D 5F47 5F ld e, a 5F48 1C inc e 5F49 3A CC EF ld a, (0EFCCh) 5F4C 57 ld d, a 5F4D CD 33 50 call get_ptr_level_data_of_row_col 5F50 7E ld a, (hl) ; level data 5F51 FE FF cp 0FFh 5F53 28 28 jr z, loc_5F7D 5F55 FE 02 cp 2 ; diggable brick? 5F57 28 24 jr z, loc_5F7D ; yes, skip 5F59 FE 03 cp 3 ; solid brick? 5F5B 28 20 jr z, loc_5F7D ; yes, skip 5F5D 3A CC EF ld a, (0EFCCh) 5F60 57 ld d, a 5F61 3A C8 EF ld a, (0EFC8h) 5F64 5F ld e, a 5F65 CD 96 60 call sub_6096 5F68 21 CC EF ld hl, 0EFCCh 5F6B 46 ld b, (hl) 5F6C CD 93 5E call sub_5E93 5F6F 21 C9 EF ld hl, 0EFC9h 5F72 BE cp (hl) 5F73 30 08 jr nc, loc_5F7D 5F75 32 C9 EF ld (0EFC9h), a 5F78 3E 01 ld a, 1 5F7A 32 CA EF ld (0EFCAh), a 5F7D 5F7D loc_5F7D: ; CODE XREF: sub_5F38+Dj 5F7D 3A C8 EF ; sub_5F38+1Bj ... 5F7D ld a, (0EFC8h) 5F80 5F ld e, a 5F81 A7 and a 5F82 28 2C jr z, loc_5FB0 5F84 3A CC EF ld a, (0EFCCh) 5F87 57 ld d, a 5F88 CD 33 50 call get_ptr_level_data_of_row_col 5F8B 7E ld a, (hl) ; level data 5F8C FE 05 cp 5 ; ladder? 5F8E 20 20 jr nz, loc_5FB0 ; no, skip 5F90 3A C8 EF ld a, (0EFC8h) 5F93 5F ld e, a 5F94 3A CC EF ld a, (0EFCCh) 5F97 57 ld d, a 5F98 CD 26 60 call sub_6026 5F9B 21 CC EF ld hl, 0EFCCh 5F9E 46 ld b, (hl) 5F9F CD 93 5E call sub_5E93 5FA2 21 C9 EF ld hl, 0EFC9h 5FA5 BE cp (hl) 5FA6 30 08 jr nc, loc_5FB0 5FA8 32 C9 EF ld (0EFC9h), a 5FAB 3E 01 ld a, 1 5FAD 32 CA EF ld (0EFCAh), a 5FB0 5FB0 loc_5FB0: ; CODE XREF: sub_5F38+4Aj 5FB0 21 CC EF ; sub_5F38+56j ... 5FB0 ld hl, 0EFCCh 5FB3 34 inc (hl) 5FB4 C3 38 5F jp sub_5F38 5FB4 ; End of function sub_5F38 5FB4 5FB7 5FB7 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 5FB7 5FB7 5FB7 sub_5FB7: ; CODE XREF: sub_5D2F+C0p 5FB7 3A C8 EF ld a, (0EFC8h) 5FBA FE 0F cp 0Fh 5FBC CA F5 5F jp z, loc_5FF5 5FBF 5F ld e, a 5FC0 1C inc e 5FC1 3A C7 EF ld a, (0EFC7h) 5FC4 57 ld d, a 5FC5 CD 33 50 call get_ptr_level_data_of_row_col 5FC8 7E ld a, (hl) ; level data 5FC9 FE FF cp 0FFh 5FCB 28 28 jr z, loc_5FF5 5FCD FE 02 cp 2 ; diggable brick? 5FCF 28 24 jr z, loc_5FF5 ; yes, skip 5FD1 FE 03 cp 3 ; solid brick? 5FD3 28 20 jr z, loc_5FF5 ; yes, skip 5FD5 3A C7 EF ld a, (0EFC7h) 5FD8 57 ld d, a 5FD9 3A C8 EF ld a, (0EFC8h) 5FDC 5F ld e, a 5FDD CD 96 60 call sub_6096 5FE0 21 C7 EF ld hl, 0EFC7h 5FE3 46 ld b, (hl) 5FE4 CD 93 5E call sub_5E93 5FE7 21 C9 EF ld hl, 0EFC9h 5FEA BE cp (hl) 5FEB 30 08 jr nc, loc_5FF5 5FED 32 C9 EF ld (0EFC9h), a 5FF0 3E 04 ld a, 4 5FF2 32 CA EF ld (0EFCAh), a 5FF5 5FF5 loc_5FF5: ; CODE XREF: sub_5FB7+5j 5FF5 3A C8 EF ; sub_5FB7+14j ... 5FF5 ld a, (0EFC8h) 5FF8 A7 and a 5FF9 C8 ret z 5FFA 5F ld e, a 5FFB 3A C7 EF ld a, (0EFC7h) 5FFE 57 ld d, a 5FFF CD 33 50 call get_ptr_level_data_of_row_col 6002 7E ld a, (hl) ; level data 6003 FE 05 cp 5 ; aldder? 6005 C0 ret nz ; no, return 6006 3A C7 EF ld a, (0EFC7h) 6009 57 ld d, a 600A 3A C8 EF ld a, (0EFC8h) 600D 5F ld e, a 600E CD 26 60 call sub_6026 6011 21 C7 EF ld hl, 0EFC7h 6014 46 ld b, (hl) 6015 CD 93 5E call sub_5E93 6018 21 C9 EF ld hl, 0EFC9h 601B BE cp (hl) 601C D0 ret nc 601D 32 C9 EF ld (0EFC9h), a 6020 3E 03 ld a, 3 6022 32 CA EF ld (0EFCAh), a 6025 C9 ret 6025 ; End of function sub_5FB7 6025 6026 6026 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 6026 6026 6026 sub_6026: ; CODE XREF: sub_5EB9+60p 6026 42 ; sub_5F38+60p ... 6026 ld b, d 6027 4B ld c, e 6028 6028 loc_6028: ; CODE XREF: sub_6026+6Bj 6028 50 ld d, b 6029 59 ld e, c 602A CD 33 50 call get_ptr_level_data_of_row_col 602D 7E ld a, (hl) ; level data 602E FE 05 cp 5 ; ladder? 6030 20 62 jr nz, loc_6094 ; no, skip 6032 7A ld a, d ; column 6033 FE 02 cp 2 ; left-side of screen? 6035 28 25 jr z, loc_605C ; yes, skip 6037 2B dec hl ; previous tile 6038 7E ld a, (hl) ; level data 6039 FE FF cp 0FFh 603B 28 17 jr z, loc_6054 603D FE 02 cp 2 ; diggable brick? 603F 28 13 jr z, loc_6054 ; yes, skip 6041 FE 03 cp 3 ; solid brick? 6043 28 0F jr z, loc_6054 ; yes, skip 6045 FE 05 cp 5 ; ladder? 6047 28 0B jr z, loc_6054 ; yes, skip 6049 11 20 00 ld de, 32 604C A7 and a 604D ED 52 sbc hl, de ; tile above left 604F 7E ld a, (hl) ; level data 6050 FE 04 cp 4 ; rope? 6052 20 08 jr nz, loc_605C ; no, skip 6054 6054 loc_6054: ; CODE XREF: sub_6026+15j 6054 0D ; sub_6026+19j ... 6054 dec c 6055 3A 02 EF ld a, (0EF02h) ; get current row 6058 B9 cp c 6059 30 39 jr nc, loc_6094 605B 0C inc c 605C 605C loc_605C: ; CODE XREF: sub_6026+Fj 605C 79 ; sub_6026+2Cj 605C ld a, c 605D FE 1D cp 1Dh 605F 28 2A jr z, loc_608B 6061 50 ld d, b 6062 14 inc d 6063 59 ld e, c 6064 CD 33 50 call get_ptr_level_data_of_row_col 6067 7E ld a, (hl) ; level data 6068 FE FF cp 0FFh 606A 28 17 jr z, loc_6083 606C FE 02 cp 2 ; diggable brick? 606E 28 13 jr z, loc_6083 ; yes, skip 6070 FE 03 cp 3 ; solid brick? 6072 28 0F jr z, loc_6083 ; yes, skip 6074 FE 05 cp 5 ; ladder? 6076 28 0B jr z, loc_6083 ; yes, skip 6078 11 20 00 ld de, 32 607B A7 and a 607C ED 52 sbc hl, de ; tile above 607E 7E ld a, (hl) ; level data 607F FE 04 cp 4 ; rope? 6081 20 08 jr nz, loc_608B ; no, skip 6083 6083 loc_6083: ; CODE XREF: sub_6026+44j 6083 0D ; sub_6026+48j ... 6083 dec c 6084 3A 02 EF ld a, (0EF02h) ; get current row 6087 B9 cp c 6088 30 0A jr nc, loc_6094 608A 0C inc c 608B 608B loc_608B: ; CODE XREF: sub_6026+39j 608B 3E 01 ; sub_6026+5Bj 608B ld a, 1 608D B9 cp c 608E 30 04 jr nc, loc_6094 6090 0D dec c 6091 C3 28 60 jp loc_6028 6094 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 6094 6094 loc_6094: ; CODE XREF: sub_6026+Aj 6094 79 ; sub_6026+33j ... 6094 ld a, c 6095 C9 ret 6095 ; End of function sub_6026 6095 6096 6096 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 6096 6096 6096 sub_6096: ; CODE XREF: sub_5EB9+2Dp 6096 42 ; sub_5F38+2Dp ... 6096 ld b, d 6097 4B ld c, e 6098 6098 loc_6098: ; CODE XREF: sub_6096+7Cj 6098 50 ld d, b 6099 59 ld e, c 609A 1C inc e 609B CD 33 50 call get_ptr_level_data_of_row_col 609E 7E ld a, (hl) ; level data 609F FE FF cp 0FFh 60A1 28 75 jr z, loc_6118 60A3 FE 02 cp 2 ; diggable brick? 60A5 28 71 jr z, loc_6118 ; yes, skip 60A7 FE 03 cp 3 ; solid brick? 60A9 28 6D jr z, loc_6118 ; yes, skip 60AB 11 20 00 ld de, 32 60AE A7 and a 60AF ED 52 sbc hl, de ; tile above 60B1 7E ld a, (hl) ; level data 60B2 A7 and a ; empty? 60B3 CA 0C 61 jp z, loc_610C ; yes, skip 60B6 79 ld a, c 60B7 A7 and a 60B8 CA DE 60 jp z, loc_60DE 60BB 2B dec hl ; tile to above left 60BC 7E ld a, (hl) ; level data 60BD FE 04 cp 4 ; rope? 60BF 28 15 jr z, loc_60D6 ; yes, skip 60C1 11 20 00 ld de, 32 60C4 19 add hl, de ; tile left 60C5 7E ld a, (hl) ; level data 60C6 FE FF cp 0FFh 60C8 28 0C jr z, loc_60D6 60CA FE 02 cp 2 ; diggable brick? 60CC 28 08 jr z, loc_60D6 ; yes, skip 60CE FE 03 cp 3 ; solid brick? 60D0 28 04 jr z, loc_60D6 ; yes, skip 60D2 FE 05 cp 5 ; ladder? 60D4 20 08 jr nz, loc_60DE ; no, skip 60D6 60D6 loc_60D6: ; CODE XREF: sub_6096+29j 60D6 3A 02 EF ; sub_6096+32j ... 60D6 ld a, (0EF02h) ; get current row 60D9 B9 cp c 60DA 28 3C jr z, loc_6118 60DC 38 3A jr c, loc_6118 60DE 60DE loc_60DE: ; CODE XREF: sub_6096+22j 60DE 78 ; sub_6096+3Ej 60DE ld a, b 60DF FE 1D cp 1Dh 60E1 D2 0C 61 jp nc, loc_610C 60E4 3C inc a 60E5 57 ld d, a 60E6 59 ld e, c 60E7 CD 33 50 call get_ptr_level_data_of_row_col 60EA 7E ld a, (hl) ; level data 60EB FE 04 cp 4 ; rope? 60ED 28 15 jr z, loc_6104 ; yes, skp 60EF 11 20 00 ld de, 32 60F2 19 add hl, de ; tile below 60F3 7E ld a, (hl) ; level data 60F4 FE 05 cp 5 ; ladder? 60F6 28 0C jr z, loc_6104 ; yes, skip 60F8 FE FF cp 0FFh 60FA 28 08 jr z, loc_6104 60FC FE 02 cp 2 ; diggable brick? 60FE 28 04 jr z, loc_6104 ; yes, skip 6100 FE 03 cp 3 ; solid brick? 6102 20 08 jr nz, loc_610C ; no, skip 6104 6104 loc_6104: ; CODE XREF: sub_6096+57j 6104 3A 02 EF ; sub_6096+60j ... 6104 ld a, (0EF02h) ; get current row 6107 B9 cp c 6108 28 0E jr z, loc_6118 610A 38 0C jr c, loc_6118 610C 610C loc_610C: ; CODE XREF: sub_6096+1Dj 610C 0C ; sub_6096+4Bj ... 610C inc c 610D 79 ld a, c 610E FE 10 cp 10h 6110 30 03 jr nc, loc_6115 6112 C3 98 60 jp loc_6098 6115 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 6115 6115 loc_6115: ; CODE XREF: sub_6096+7Aj 6115 3E 0F ld a, 0Fh 6117 C9 ret 6118 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 6118 6118 loc_6118: ; CODE XREF: sub_6096+Bj 6118 79 ; sub_6096+Fj ... 6118 ld a, c 6119 C9 ret 6119 ; End of function sub_6096 6119 611A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 611A 611A loc_611A: ; CODE XREF: seg000:42A4j 611A 00 nop 611B 611B loc_611B: ; CODE XREF: seg000:6122j 611B 3E 07 ld a, 7 ; line 7 611D CD 41 01 call 141h ; read keyboard line 6120 FE FF cp 0FFh 6122 20 F7 jr nz, loc_611B 6124 21 00 C0 ld hl, 0C000h 6127 3E 4E ld a, 4Eh ; 'N' 6129 77 ld (hl), a 612A 23 inc hl 612B 3E 49 ld a, 49h ; 'I' 612D 77 ld (hl), a 612E 23 inc hl 612F 3E 53 ld a, 53h ; 'S' 6131 77 ld (hl), a 6132 23 inc hl 6133 3E 48 ld a, 48h ; 'H' 6135 77 ld (hl), a 6136 23 inc hl 6137 3E 49 ld a, 49h ; 'I' 6139 77 ld (hl), a 613A 23 inc hl 613B 3E 4D ld a, 4Dh ; 'M' 613D 77 ld (hl), a 613E 23 inc hl 613F 3E 4F ld a, 4Fh ; 'O' 6141 77 ld (hl), a 6142 23 inc hl 6143 3E 54 ld a, 54h ; 'T' 6145 77 ld (hl), a 6146 23 inc hl 6147 3E 4F ld a, 4Fh ; 'O' 6149 77 ld (hl), a 614A 3A A3 EF ld a, (0EFA3h) 614D 32 E9 EF ld (0EFE9h), a 6150 CD 12 67 call mute_audio 6153 3A A4 EF ld a, (0EFA4h) ; get general flags 6156 F6 01 or 1 6158 32 A4 EF ld (0EFA4h), a ; store 615B 21 56 62 ld hl, 6256h ; there's code here 615E 22 9B FD ld (0FD9Bh), hl 6161 6161 loc_6161: ; CODE XREF: seg000:6381j 6161 3E 18 ; seg000:6397j ... 6161 ld a, 24 6163 32 75 EF ld (0EF75h), a 6166 3E 05 ld a, 5 6168 32 6C EF ld (0EF6Ch), a 616B 3E 12 ld a, 12h 616D 32 6D EF ld (0EF6Dh), a 6170 3E 61 ld a, 61h ; 'a' 6172 32 A2 EF ld (0EFA2h), a 6175 CD 61 50 call enable_vdp_interrupts 6178 FB ei 6179 2A 68 EF ld hl, (0EF68h) ; get num men 617C 11 92 EF ld de, 0EF92h 617F CD 38 67 call conv_signed_to_ASCII_decimal 6182 CD 24 62 call sub_6224 6185 21 08 63 ld hl, 6308h ; jump table 6188 11 82 61 ld de, 6182h 618B 3E 08 ld a, 8 618D C3 1E 67 jp loc_671E 6190 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 6190 6190 loc_6190: ; CODE XREF: seg000:643Bj 6190 3E 12 ; seg000:6468j ... 6190 ld a, 12h 6192 32 A2 EF ld (0EFA2h), a 6195 3E 1B ld a, 1Bh 6197 32 6A EF ld (0EF6Ah), a 619A 3E 10 ld a, 10h 619C 32 6B EF ld (0EF6Bh), a 619F 2A 66 EF ld hl, (0EF66h) ; get level 61A2 11 8C EF ld de, 0EF8Ch 61A5 CD 38 67 call conv_signed_to_ASCII_decimal 61A8 CD 24 62 call sub_6224 61AB 21 28 63 ld hl, 6328h ; jump table 61AE 11 A8 61 ld de, 61A8h 61B1 3E 05 ld a, 5 61B3 C3 1E 67 jp loc_671E 61B6 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 61B6 61B6 loc_61B6: ; CODE XREF: seg000:61EDj 61B6 3E 94 ; seg000:6221j ... 61B6 ld a, 94h ; '' 61B8 32 A2 EF ld (0EFA2h), a 61BB 3E 17 ld a, 17h 61BD 32 6A EF ld (0EF6Ah), a 61C0 3E 11 ld a, 11h 61C2 32 6B EF ld (0EF6Bh), a 61C5 CD 24 62 call sub_6224 61C8 21 3C 63 ld hl, 633Ch 61CB 11 C5 61 ld de, 61C5h 61CE 3E 0B ld a, 0Bh 61D0 C3 1E 67 jp loc_671E 61D3 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 61D3 61D3 loc_61D3: ; CODE XREF: seg000:6491j 61D3 3A 75 EF ; seg000:6496j ... 61D3 ld a, (0EF75h) 61D6 FE 18 cp 24 61D8 28 0C jr z, loc_61E6 61DA 61DA loc_61DA: ; CODE XREF: seg000:61E1j 61DA 3A 66 EF ld a, (0EF66h) ; get level 61DD 3C inc a ; next level 61DE 32 66 EF ld (0EF66h), a ; store 61E1 10 F7 djnz loc_61DA 61E3 C3 FD 61 jp loc_61FD 61E6 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 61E6 61E6 loc_61E6: ; CODE XREF: seg000:61D8j 61E6 AF xor a ; level 0 61E7 32 66 EF ld (0EF66h), a ; store 61EA 3E 07 ld a, 7 61EC B8 cp b 61ED DA B6 61 jp c, loc_61B6 61F0 61F0 loc_61F0: ; CODE XREF: seg000:61F8j 61F0 3A 66 EF ld a, (0EF66h) ; get level 61F3 C6 0A add a, 10 ; add 10 61F5 32 66 EF ld (0EF66h), a ; store level 61F8 10 F6 djnz loc_61F0 61FA C3 FD 61 jp loc_61FD 61FD 61FD loc_61FD: ; CODE XREF: seg000:61E3j 61FD 11 8C EF ; seg000:6485j ... 61FD ld de, 0EF8Ch 6200 2A 66 EF ld hl, (0EF66h) ; get level 6203 CD 38 67 call conv_signed_to_ASCII_decimal 6206 3A 75 EF ld a, (0EF75h) 6209 3C inc a 620A FE 1A cp 26 620C 38 02 jr c, loc_6210 620E 3E 18 ld a, 24 6210 6210 loc_6210: ; CODE XREF: seg000:620Cj 6210 32 75 EF ld (0EF75h), a 6213 6213 wait_for_no_key_pressed: ; CODE XREF: seg000:621Bj 6213 06 09 ld b, 9 ; all keyboard lines 6215 6215 loc_6215: ; CODE XREF: seg000:621Ej 6215 78 ld a, b ; keyboard line 6216 CD 41 01 call 141h ; read keyboard line 6219 FE FF cp 0FFh ; any key? 621B 20 F6 jr nz, wait_for_no_key_pressed ; yes, start scanning keyboard again 621D 05 dec b ; next line 621E F2 15 62 jp p, loc_6215 ; loop thru all keyboard lines 6221 C3 B6 61 jp loc_61B6 6224 6224 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 6224 6224 6224 sub_6224: ; CODE XREF: seg000:6182p 6224 18 05 ; seg000:61A8p ... 6224 jr loc_622B 6226 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 6226 6226 loc_6226: ; CODE XREF: sub_6224+Cj 6226 3E 09 ld a, 9 6228 32 76 EF ld (0EF76h), a 622B 622B loc_622B: ; CODE XREF: sub_6224j 622B 3A 76 EF ld a, (0EF76h) 622E D6 01 sub 1 6230 38 F4 jr c, loc_6226 6232 32 76 EF ld (0EF76h), a 6235 47 ld b, a ; keyboard line 6236 CD 41 01 call 141h ; read keyboard line 6239 4F ld c, a 623A C9 ret 623A ; End of function sub_6224 623A 623B 623B ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 623B 623B 623B sub_623B: ; CODE XREF: seg000:6368p 623B CD 5A 50 ; seg000:63CAp ... 623B call disable_vdp_interrupts 623E 3A A4 EF ld a, (0EFA4h) ; get general flags 6241 E6 FE and 0FEh ; '' ; rest bit 0 - flag ??? 6243 32 A4 EF ld (0EFA4h), a ; store 6246 CD AF 4D call display_level_score_text 6249 CD 73 51 call print_num_men_and_level 624C 21 2B 44 ld hl, 442Bh ; address of ISR 624F 22 9B FD ld (0FD9Bh), hl 6252 CD 61 50 call enable_vdp_interrupts 6255 C9 ret 6255 ; End of function sub_623B 6255 6256 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 6256 F1 pop af 6257 CD 3E 01 call 13Eh ; read VDP status register 625A CD 5A 50 call disable_vdp_interrupts 625D CD 84 44 call update_sprite_coords_and_display 6260 CD 7F 62 call sub_627F 6263 CD A3 62 call sub_62A3 6266 CD B0 62 call update_PSG 6269 CD FA 62 call psg_20Hz_timer_tick 626C CD 61 50 call enable_vdp_interrupts 626F DD E1 pop ix 6271 FD E1 pop iy 6273 F1 pop af 6274 C1 pop bc 6275 D1 pop de 6276 E1 pop hl 6277 08 ex af, af' 6278 D9 exx 6279 F1 pop af 627A C1 pop bc 627B D1 pop de 627C E1 pop hl 627D FB ei 627E C9 ret 627F 627F ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 627F 627F 627F sub_627F: ; CODE XREF: seg000:6260p 627F 3A A2 EF ld a, (0EFA2h) 6282 1F rra 6283 DA 71 65 jp c, loc_6571 6286 1F rra 6287 DA 7A 65 jp c, loc_657A 628A 1F rra 628B DA 83 65 jp c, loc_6583 628E 1F rra 628F DC E2 64 call c, sub_64E2 6292 1F rra 6293 DC E8 64 call c, sub_64E8 6296 1F rra 6297 DC F9 64 call c, sub_64F9 629A 1F rra 629B DC 43 65 call c, sub_6543 629E 1F rra 629F DC 5C 65 call c, sub_655C 62A2 62A2 locret_62A2: ; CODE XREF: seg000:6594j 62A2 C9 ret 62A2 ; End of function sub_627F 62A2 62A3 62A3 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 62A3 62A3 62A3 sub_62A3: ; CODE XREF: seg000:6263p 62A3 3A 77 EF ld a, (0EF77h) 62A6 3C inc a 62A7 FE 20 cp 20h ; ' ' 62A9 38 01 jr c, loc_62AC 62AB AF xor a 62AC 62AC loc_62AC: ; CODE XREF: sub_62A3+6j 62AC 32 77 EF ld (0EF77h), a 62AF C9 ret 62AF ; End of function sub_62A3 62AF 62B0 62B0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 62B0 62B0 62B0 update_PSG: ; CODE XREF: seg000:4446p 62B0 3A 6F EF ; seg000:6266p 62B0 ld a, (0EF6Fh) 62B3 1F rra 62B4 38 1E jr c, loc_62D4 62B6 3A A3 EF ld a, (0EFA3h) 62B9 C4 B1 65 call nz, sub_65B1 62BC 1F rra 62BD DA C9 65 jp c, loc_65C9 62C0 1F rra 62C1 DA E9 65 jp c, loc_65E9 62C4 1F rra 62C5 DA 1B 66 jp c, loc_661B 62C8 1F rra 62C9 DA 6B 66 jp c, loc_666B 62CC 1F rra 62CD DA 95 66 jp c, loc_6695 62D0 1F rra 62D1 DA D6 66 jp c, loc_66D6 62D4 62D4 loc_62D4: ; CODE XREF: update_PSG+4j 62D4 CD 12 67 ; seg000:65E6j ... 62D4 call mute_audio 62D7 CD DF 62 call sub_62DF 62DA AF xor a 62DB 32 A3 EF ld (0EFA3h), a 62DE 62DE locret_62DE: ; CODE XREF: seg000:65DEj 62DE C9 ; seg000:65EDj ... 62DE ret 62DE ; End of function update_PSG 62DE 62DF 62DF ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 62DF 62DF 62DF sub_62DF: ; CODE XREF: update_PSG+27p 62DF 3E 3C ld a, 3Ch ; '<' 62E1 32 7B EF ld (0EF7Bh), a 62E4 32 7D EF ld (0EF7Dh), a 62E7 3E FF ld a, 0FFh 62E9 32 7C EF ld (0EF7Ch), a 62EC 32 7E EF ld (0EF7Eh), a 62EF 3E A0 ld a, 0A0h ; '' 62F1 32 79 EF ld (0EF79h), a 62F4 3E 32 ld a, 32h ; '2' 62F6 32 7A EF ld (0EF7Ah), a 62F9 C9 ret 62F9 ; End of function sub_62DF 62F9 62FA 62FA ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 62FA 62FA 62FA psg_20Hz_timer_tick: ; CODE XREF: seg000:4449p 62FA 3A 78 EF ; seg000:6269p 62FA ld a, (0EF78h) ; get psg timer 62FD 3C inc a ; tick 62FE FE 03 cp 3 ; over-flow? 6300 DA 04 63 jp c, loc_6304 ; no, skip 6303 AF xor a ; reset 6304 6304 loc_6304: ; CODE XREF: psg_20Hz_timer_tick+6j 6304 32 78 EF ld (0EF78h), a ; store psg timer 6307 C9 ret 6307 ; End of function psg_20Hz_timer_tick 6307 6307 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 6308 BF .db 0BFh ; 6309 02 .db 2 ; 630A 68 63 .dw 6368h 630C FD .db 0FDh ; 630D 04 .db 4 ; 630E 6E 63 .dw 636Eh 6310 DF .db 0DFh ; 6311 03 .db 3 ; 6312 84 63 .dw 6384h 6314 BF .db 0BFh ; 6315 03 .db 3 ; 6316 9A 63 .dw 639Ah 6318 F7 .db 0F7h ; 6319 04 .db 4 ; 631A AE 63 .dw 63AEh 631C FB .db 0FBh ; 631D 07 .db 7 ; 631E D0 63 .dw 63D0h 6320 FE .db 0FEh ; 6321 05 .db 5 ; 6322 EA 63 .dw 63EAh 6324 FE .db 0FEh ; 6325 03 .db 3 ; 6326 90 61 .dw 6190h 6328 DF .db 0DFh ; 6329 04 .db 4 ; 632A 03 64 .dw 6403h 632C 7F .db 7Fh ;  632D 04 .db 4 ; 632E 0E 64 .dw 640Eh 6330 7F .db 7Fh ;  6331 08 .db 8 ; 6332 11 64 .dw 6411h 6334 EF .db 0EFh ; 6335 08 .db 8 ; 6336 3E 64 .dw 643Eh 6338 6B .db 6Bh ; k 6339 07 .db 7 ; 633A 6B 64 .dw 646Bh 633C FE .db 0FEh ; 633D 00 .db 0 ; 633E 7E 64 .dw 647Eh 6340 FD .db 0FDh ; 6341 00 .db 0 ; 6342 8F 64 .dw 648Fh 6344 FB .db 0FBh ; 6345 00 .db 0 ; 6346 94 64 .dw 6494h 6348 F7 .db 0F7h ; 6349 00 .db 0 ; 634A 99 64 .dw 6499h 634C EF .db 0EFh ; 634D 00 .db 0 ; 634E 9E 64 .dw 649Eh 6350 DF .db 0DFh ; 6351 00 .db 0 ; 6352 A3 64 .dw 64A3h 6354 BF .db 0BFh ; 6355 00 .db 0 ; 6356 A8 64 .dw 64A8h 6358 7F .db 7Fh ;  6359 00 .db 0 ; 635A AD 64 .dw 64ADh 635C FE .db 0FEh ; 635D 01 .db 1 ; 635E B2 64 .dw 64B2h 6360 FD .db 0FDh ; 6361 01 .db 1 ; 6362 B7 64 .dw 64B7h 6364 7F .db 7Fh ;  6365 07 .db 7 ; 6366 BC 64 .dw 64BCh 6368 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 6368 CD 3B 62 call sub_623B 636B C3 DD 43 jp loc_43DD 636E ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 636E 3A 61 EF ld a, (0EF61h) 6371 3C inc a 6372 06 07 ld b, 7 6374 B8 cp b 6375 38 02 jr c, loc_6379 6377 3E 06 ld a, 6 6379 6379 loc_6379: ; CODE XREF: seg000:6375j 6379 32 61 EF ld (0EF61h), a 637C 06 32 ld b, 32h ; '2' 637E CD 7C 67 call sub_677C 6381 C3 61 61 jp loc_6161 6384 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 6384 3A 61 EF ld a, (0EF61h) 6387 3D dec a 6388 06 02 ld b, 2 638A B8 cp b 638B 30 02 jr nc, loc_638F 638D 3E 02 ld a, 2 638F 638F loc_638F: ; CODE XREF: seg000:638Bj 638F 32 61 EF ld (0EF61h), a 6392 06 32 ld b, 32h ; '2' 6394 CD 7C 67 call sub_677C 6397 C3 61 61 jp loc_6161 639A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 639A 3A 68 EF ld a, (0EF68h) ; get num men 639D 3C inc a ; add one 639E FE 64 cp 100 ; 100? 63A0 D2 61 61 jp nc, loc_6161 ; no, skip 63A3 32 68 EF ld (0EF68h), a ; store num men 63A6 06 07 ld b, 7 63A8 CD 7C 67 call sub_677C 63AB C3 61 61 jp loc_6161 63AE ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 63AE 3A 66 EF ld a, (0EF66h) ; get level 63B1 FE 4C cp 76 ; last level? 63B3 38 03 jr c, loc_63B8 ; no, skip 63B5 C3 61 61 jp loc_6161 63B8 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 63B8 63B8 loc_63B8: ; CODE XREF: seg000:63B3j 63B8 3C inc a ; next level 63B9 32 66 EF ld (0EF66h), a ; store level 63BC 3E 01 ld a, 1 63BE 32 A3 EF ld (0EFA3h), a 63C1 63C1 loc_63C1: ; CODE XREF: seg000:63C5j 63C1 3A A3 EF ld a, (0EFA3h) 63C4 A7 and a 63C5 20 FA jr nz, loc_63C1 63C7 CD 9B 67 call sub_679B 63CA CD 3B 62 call sub_623B 63CD C3 A7 42 jp loc_42A7 63D0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 63D0 06 32 ld b, 32h ; '2' 63D2 CD 7C 67 call sub_677C 63D5 3A E9 EF ld a, (0EFE9h) 63D8 32 A3 EF ld (0EFA3h), a 63DB CD 3B 62 call sub_623B 63DE 63DE loc_63DE: ; CODE XREF: seg000:63E5j 63DE 3E 07 ld a, 7 ; line 7 63E0 CD 41 01 call 141h ; read keyboard line 63E3 FE FF cp 0FFh 63E5 20 F7 jr nz, loc_63DE 63E7 C3 A7 42 jp loc_42A7 63EA ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 63EA 06 32 ld b, 32h ; '2' 63EC CD 7C 67 call sub_677C 63EF 3A 6F EF ld a, (0EF6Fh) 63F2 EE FF xor 0FFh 63F4 32 6F EF ld (0EF6Fh), a 63F7 63F7 loc_63F7: ; CODE XREF: seg000:63FEj 63F7 3E 05 ld a, 5 ; line 5 63F9 CD 41 01 call 141h ; read keyboard line 63FC FE FF cp 0FFh 63FE 20 F7 jr nz, loc_63F7 6400 C3 61 61 jp loc_6161 6403 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 6403 06 50 ld b, 50h ; 'P' 6405 CD 7C 67 call sub_677C 6408 CD 3B 62 call sub_623B 640B C3 A7 42 jp loc_42A7 640E ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 640E C3 B6 61 jp loc_61B6 6411 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 6411 3A 66 EF ld a, (0EF66h) ; get level 6414 FE 4C cp 76 ; last level? 6416 38 03 jr c, loc_641B ; no, skip 6418 C3 61 61 jp loc_6161 641B ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 641B 641B loc_641B: ; CODE XREF: seg000:6416j 641B 3C inc a ; next level 641C 32 66 EF ld (0EF66h), a ; store level 641F 06 32 ld b, 50 6421 CD 7C 67 call sub_677C 6424 CD 8F 67 call sub_678F 6427 CD FA 4E call create_level_data_scratchpad 642A CD 5A 50 call disable_vdp_interrupts 642D CD 72 4F call display_level 6430 3A A4 EF ld a, (0EFA4h) ; get general flags 6433 F6 01 or 1 6435 32 A4 EF ld (0EFA4h), a ; store 6438 CD 61 50 call enable_vdp_interrupts 643B C3 90 61 jp loc_6190 643E ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 643E 3A 66 EF ld a, (0EF66h) ; get level 6441 FE 02 cp 2 6443 30 03 jr nc, loc_6448 6445 C3 61 61 jp loc_6161 6448 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 6448 6448 loc_6448: ; CODE XREF: seg000:6443j 6448 3D dec a ; previous level 6449 32 66 EF ld (0EF66h), a ; store level 644C 06 32 ld b, 32h ; '2' 644E CD 7C 67 call sub_677C 6451 CD 8F 67 call sub_678F 6454 CD FA 4E call create_level_data_scratchpad 6457 CD 5A 50 call disable_vdp_interrupts 645A CD 72 4F call display_level 645D 3A A4 EF ld a, (0EFA4h) ; get general flags 6460 F6 01 or 1 6462 32 A4 EF ld (0EFA4h), a ; store 6465 CD 61 50 call enable_vdp_interrupts 6468 C3 90 61 jp loc_6190 646B ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 646B 21 00 C0 ld hl, 0C000h 646E 3E 0B ld a, 0Bh 6470 16 14 ld d, 14h 6472 82 add a, d 6473 32 6E EF ld (0EF6Eh), a 6476 1E 12 ld e, 12h 6478 CD 34 65 call print_string_n_ef6e_ 647B C3 90 61 jp loc_6190 647E ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 647E 3A 75 EF ld a, (0EF75h) 6481 FE 19 cp 19h 6483 38 03 jr c, loc_6488 6485 C3 FD 61 jp loc_61FD 6488 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 6488 6488 loc_6488: ; CODE XREF: seg000:6483j 6488 AF xor a ; zero level 6489 32 66 EF ld (0EF66h), a ; store level 648C C3 FD 61 jp loc_61FD 648F ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 648F 06 01 ld b, 1 6491 C3 D3 61 jp loc_61D3 6494 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 6494 06 02 ld b, 2 6496 C3 D3 61 jp loc_61D3 6499 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 6499 06 03 ld b, 3 649B C3 D3 61 jp loc_61D3 649E ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 649E 06 04 ld b, 4 64A0 C3 D3 61 jp loc_61D3 64A3 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 64A3 06 05 ld b, 5 64A5 C3 D3 61 jp loc_61D3 64A8 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 64A8 06 06 ld b, 6 64AA C3 D3 61 jp loc_61D3 64AD ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 64AD 06 07 ld b, 7 64AF C3 D3 61 jp loc_61D3 64B2 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 64B2 06 08 ld b, 8 64B4 C3 D3 61 jp loc_61D3 64B7 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 64B7 06 09 ld b, 9 64B9 C3 D3 61 jp loc_61D3 64BC ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 64BC 3A 66 EF ld a, (0EF66h) ; get level 64BF FE 4D cp 77 64C1 D2 B6 61 jp nc, loc_61B6 64C4 A7 and a 64C5 CA B6 61 jp z, loc_61B6 64C8 CD 8F 67 call sub_678F 64CB CD FA 4E call create_level_data_scratchpad 64CE CD 5A 50 call disable_vdp_interrupts 64D1 CD 72 4F call display_level 64D4 3A A4 EF ld a, (0EFA4h) ; get general flags 64D7 F6 01 or 1 64D9 32 A4 EF ld (0EFA4h), a ; store 64DC CD 61 50 call enable_vdp_interrupts 64DF C3 90 61 jp loc_6190 64E2 64E2 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 64E2 64E2 64E2 sub_64E2: ; CODE XREF: sub_627F+10p 64E2 F5 push af 64E3 CD 0A 65 call display_score 64E6 F1 pop af 64E7 C9 ret 64E7 ; End of function sub_64E2 64E7 64E8 64E8 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 64E8 64E8 64E8 sub_64E8: ; CODE XREF: sub_627F+14p 64E8 F5 push af 64E9 3A 6A EF ld a, (0EF6Ah) 64EC 57 ld d, a 64ED 3A 6B EF ld a, (0EF6Bh) 64F0 5F ld e, a 64F1 21 8F EF ld hl, 0EF8Fh 64F4 CD 2E 65 call print_string_n_plus_3 64F7 F1 pop af 64F8 C9 ret 64F8 ; End of function sub_64E8 64F8 64F9 64F9 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 64F9 64F9 64F9 sub_64F9: ; CODE XREF: sub_627F+18p 64F9 F5 push af 64FA 3A 6C EF ld a, (0EF6Ch) 64FD 57 ld d, a 64FE 3A 6D EF ld a, (0EF6Dh) 6501 5F ld e, a 6502 21 95 EF ld hl, 0EF95h 6505 CD 2E 65 call print_string_n_plus_3 6508 F1 pop af 6509 C9 ret 6509 ; End of function sub_64F9 6509 650A 650A ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 650A 650A 650A display_score: ; CODE XREF: seg000:4443p 650A 21 83 EF ; sub_64E2+1p 650A ld hl, 0EF83h ; score 650D 16 07 ld d, 7 ; col 650F 1E 11 ld e, 17 ; row 6511 6511 loc_6511: ; CODE XREF: display_score+12j 6511 7E ld a, (hl) ; get digit 6512 E5 push hl 6513 CD F9 50 call print_character 6516 E1 pop hl 6517 23 inc hl 6518 14 inc d ; next col 6519 3E 0A ld a, 10 ; up to col 10? 651B BA cp d ; done score / 10,000? 651C 20 F3 jr nz, loc_6511 ; no, loop 651E 23 inc hl 651F 23 inc hl ; next score word 6520 6520 loc_6520: ; CODE XREF: display_score+21j 6520 7E ld a, (hl) ; get digit 6521 E5 push hl 6522 CD F9 50 call print_character 6525 E1 pop hl 6526 23 inc hl 6527 14 inc d ; next col 6528 3E 0E ld a, 14 ; up to col 14? 652A BA cp d ; done score % 10,000? 652B 20 F3 jr nz, loc_6520 ; no, loop 652D C9 ret 652D ; End of function display_score 652D 652E 652E ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 652E 652E 652E print_string_n_plus_3: ; CODE XREF: print_num_men_and_level+1Dp 652E 3E 03 ; print_num_men_and_level+27p ... 652E ld a, 3 6530 82 add a, d 6531 32 6E EF ld (0EF6Eh), a 6531 ; End of function print_string_n_plus_3 6531 6534 6534 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 6534 6534 6534 print_string_n_ef6e_: ; CODE XREF: display_high_score_title+Ep 6534 7E ; display_high_score_title+21p ... 6534 ld a, (hl) 6535 E5 push hl 6536 CD F9 50 call print_character 6539 E1 pop hl 653A 23 inc hl 653B 14 inc d 653C 3A 6E EF ld a, (0EF6Eh) 653F BA cp d 6540 20 F2 jr nz, print_string_n_ef6e_ 6542 C9 ret 6542 ; End of function print_string_n_ef6e_ 6542 6543 6543 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 6543 6543 6543 sub_6543: ; CODE XREF: sub_627F+1Cp 6543 F5 push af 6544 16 03 ld d, 3 6546 1E 11 ld e, 11h 6548 3A 77 EF ld a, (0EF77h) 654B FE 10 cp 10h 654D 38 07 jr c, loc_6556 654F 3E 3F ld a, 3Fh ; '?' 6551 CD F9 50 call print_character 6554 18 04 jr loc_655A 6556 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 6556 6556 loc_6556: ; CODE XREF: sub_6543+Aj 6556 AF xor a 6557 CD F9 50 call print_character 655A 655A loc_655A: ; CODE XREF: sub_6543+11j 655A F1 pop af 655B C9 ret 655B ; End of function sub_6543 655B 655C 655C ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 655C 655C 655C sub_655C: ; CODE XREF: sub_627F+20p 655C F5 push af 655D 3A 75 EF ld a, (0EF75h) 6560 57 ld d, a 6561 1E 11 ld e, 11h 6563 3A 77 EF ld a, (0EF77h) 6566 FE 10 cp 10h 6568 38 05 jr c, loc_656F 656A 3E 03 ld a, 3 656C CD F9 50 call print_character 656F 656F loc_656F: ; CODE XREF: sub_655C+Cj 656F F1 pop af 6570 C9 ret 6570 ; End of function sub_655C 6570 6571 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 6571 6571 loc_6571: ; CODE XREF: sub_627F+4j 6571 21 B9 67 ld hl, 67B9h 6574 CD 97 65 call sub_6597 6577 C3 8C 65 jp loc_658C 657A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 657A 657A loc_657A: ; CODE XREF: sub_627F+8j 657A 21 19 68 ld hl, 6819h 657D CD 97 65 call sub_6597 6580 C3 8C 65 jp loc_658C 6583 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 6583 6583 loc_6583: ; CODE XREF: sub_627F+Cj 6583 21 79 68 ld hl, 6879h 6586 CD 97 65 call sub_6597 6589 C3 8C 65 jp loc_658C 658C 658C loc_658C: ; CODE XREF: seg000:6577j 658C 3A A2 EF ; seg000:6580j 658C ld a, (0EFA2h) 658F E6 F8 and 0F8h ; '' 6591 32 A2 EF ld (0EFA2h), a 6594 C3 A2 62 jp locret_62A2 6597 6597 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 6597 6597 6597 sub_6597: ; CODE XREF: seg000:6574p 6597 16 00 ; seg000:657Dp ... 6597 ld d, 0 6599 1E 10 ld e, 10h 659B 659B loc_659B: ; CODE XREF: sub_6597+Fj 659B 7E ; sub_6597+17j 659B ld a, (hl) 659C E5 push hl 659D CD F9 50 call print_character 65A0 E1 pop hl 65A1 23 inc hl 65A2 14 inc d 65A3 3E 20 ld a, 20h ; ' ' 65A5 BA cp d 65A6 20 F3 jr nz, loc_659B 65A8 16 00 ld d, 0 65AA 1C inc e 65AB 3E 13 ld a, 13h 65AD BB cp e 65AE 20 EB jr nz, loc_659B 65B0 C9 ret 65B0 ; End of function sub_6597 65B0 65B1 65B1 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 65B1 65B1 65B1 sub_65B1: ; CODE XREF: update_PSG+9p 65B1 F5 ; seg000:65F0p ... 65B1 push af 65B2 3E 0B ld a, 0Bh 65B4 1E 00 ld e, 0 65B6 CD 93 00 call 93h ; write data to PSG register 65B9 3E 0C ld a, 0Ch 65BB 1E 01 ld e, 1 65BD CD 93 00 call 93h ; write data to PSG register 65C0 3E 0D ld a, 0Dh 65C2 1E 08 ld e, 8 65C4 CD 93 00 call 93h ; write data to PSG register 65C7 F1 pop af 65C8 C9 ret 65C8 ; End of function sub_65B1 65C8 65C9 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 65C9 65C9 loc_65C9: ; CODE XREF: update_PSG+Dj 65C9 3E 08 ld a, 8 65CB 1E 0F ld e, 0Fh 65CD CD 93 00 call 93h ; write data to PSG register 65D0 3A 79 EF ld a, (0EF79h) 65D3 5F ld e, a 65D4 2E 02 ld l, 2 65D6 26 64 ld h, 64h ; 'd' 65D8 CD 08 67 call sub_6708 65DB 32 79 EF ld (0EF79h), a 65DE C2 DE 62 jp nz, locret_62DE 65E1 3E A0 ld a, 0A0h ; '' 65E3 32 79 EF ld (0EF79h), a 65E6 C3 D4 62 jp loc_62D4 65E9 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 65E9 65E9 loc_65E9: ; CODE XREF: update_PSG+11j 65E9 3A 78 EF ld a, (0EF78h) ; get psg timer 65EC A7 and a ; time to update PSG? 65ED C2 DE 62 jp nz, locret_62DE ; no, skip 65F0 CD B1 65 call sub_65B1 65F3 3E 08 ld a, 8 65F5 1E 10 ld e, 10h 65F7 CD 93 00 call 93h ; write data to PSG register 65FA 3A 7A EF ld a, (0EF7Ah) 65FD 5F ld e, a 65FE 2E 01 ld l, 1 6600 26 2E ld h, 2Eh ; '.' 6602 CD 08 67 call sub_6708 6605 32 7A EF ld (0EF7Ah), a 6608 D2 DE 62 jp nc, locret_62DE 660B 3E 32 ld a, 32h ; '2' 660D 32 7A EF ld (0EF7Ah), a 6610 3A A3 EF ld a, (0EFA3h) 6613 CB 8F res 1, a 6615 32 A3 EF ld (0EFA3h), a 6618 C3 DE 62 jp locret_62DE 661B ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 661B 661B loc_661B: ; CODE XREF: update_PSG+15j 661B 3A 78 EF ld a, (0EF78h) ; get PSG timer 661E A7 and a ; time to update PSG? 661F C2 DE 62 jp nz, locret_62DE ; no, skip 6622 3E 08 ld a, 8 6624 1E 10 ld e, 10h 6626 CD 93 00 call 93h ; write data to PSG register 6629 CD B1 65 call sub_65B1 662C 1E 3C ld e, 3Ch ; '<' 662E 3A 61 EF ld a, (0EF61h) 6631 83 add a, e 6632 67 ld h, a 6633 3A 61 EF ld a, (0EF61h) 6636 84 add a, h 6637 6F ld l, a 6638 AF xor a 6639 CD 93 00 call 93h ; write data to PSG register 663C 3A A3 EF ld a, (0EFA3h) 663F 17 rla 6640 DA 5B 66 jp c, loc_665B 6643 3A 7B EF ld a, (0EF7Bh) 6646 3C inc a 6647 32 7B EF ld (0EF7Bh), a 664A BC cp h 664B DA DE 62 jp c, locret_62DE 664E 1E 64 ld e, 64h ; 'd' 6650 AF xor a 6651 CD 93 00 call 93h ; write data to PSG register 6654 3A 7B EF ld a, (0EF7Bh) 6657 BD cp l 6658 C2 DE 62 jp nz, locret_62DE 665B 665B loc_665B: ; CODE XREF: seg000:6640j 665B 3E 3C ld a, 3Ch ; '<' 665D 32 7B EF ld (0EF7Bh), a 6660 3A A3 EF ld a, (0EFA3h) 6663 CB 97 res 2, a 6665 32 A3 EF ld (0EFA3h), a 6668 C3 DE 62 jp locret_62DE 666B ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 666B 666B loc_666B: ; CODE XREF: update_PSG+19j 666B 3A 78 EF ld a, (0EF78h) ; get PSG timer 666E A7 and a ; time to update PSG? 666F C2 DE 62 jp nz, locret_62DE ; no, skip 6672 3E 08 ld a, 8 6674 1E 0F ld e, 0Fh 6676 CD 93 00 call 93h ; write data to PSG register 6679 3A 7C EF ld a, (0EF7Ch) 667C 5F ld e, a 667D 2E 05 ld l, 5 667F 26 28 ld h, 28h ; '(' 6681 CD 08 67 call sub_6708 6684 32 7C EF ld (0EF7Ch), a 6687 D2 DE 62 jp nc, locret_62DE 668A CD 12 67 call mute_audio 668D 3E FF ld a, 0FFh 668F 32 7C EF ld (0EF7Ch), a 6692 C3 D4 62 jp loc_62D4 6695 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 6695 6695 loc_6695: ; CODE XREF: update_PSG+1Dj 6695 3A 78 EF ld a, (0EF78h) ; get PSG timer 6698 A7 and a ; time to update PSG? 6699 C2 DE 62 jp nz, locret_62DE ; no, skip 669C 3E 08 ld a, 8 669E 1E 10 ld e, 10h 66A0 CD 93 00 call 93h ; write data to PSG register 66A3 3E 0B ld a, 0Bh 66A5 1E 08 ld e, 8 66A7 CD 93 00 call 93h ; write data to PSG register 66AA 3E 0D ld a, 0Dh 66AC 1E 0E ld e, 0Eh 66AE CD 93 00 call 93h ; write data to PSG register 66B1 3A 7D EF ld a, (0EF7Dh) 66B4 5F ld e, a 66B5 AF xor a 66B6 CD 93 00 call 93h ; write data to PSG register 66B9 00 nop 66BA 1C inc e 66BB 7B ld a, e 66BC 32 7D EF ld (0EF7Dh), a 66BF 3A A3 EF ld a, (0EFA3h) 66C2 17 rla 66C3 D2 DE 62 jp nc, locret_62DE 66C6 3E 3C ld a, 3Ch ; '<' 66C8 32 7D EF ld (0EF7Dh), a 66CB 3A A3 EF ld a, (0EFA3h) 66CE CB A7 res 4, a 66D0 32 A3 EF ld (0EFA3h), a 66D3 C3 DE 62 jp locret_62DE 66D6 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 66D6 66D6 loc_66D6: ; CODE XREF: update_PSG+21j 66D6 3A 78 EF ld a, (0EF78h) ; get PSG timer 66D9 A7 and a ; time to update PSG? 66DA C2 DE 62 jp nz, locret_62DE ; no, skip 66DD CD B1 65 call sub_65B1 66E0 3E 08 ld a, 8 66E2 1E 10 ld e, 10h 66E4 CD 93 00 call 93h ; write data to PSG register 66E7 3A 7E EF ld a, (0EF7Eh) 66EA 5F ld e, a 66EB 2E 01 ld l, 1 66ED 26 FD ld h, 0FDh ; '' 66EF CD 08 67 call sub_6708 66F2 32 7E EF ld (0EF7Eh), a 66F5 D2 DE 62 jp nc, locret_62DE 66F8 3E FF ld a, 0FFh 66FA 32 7E EF ld (0EF7Eh), a 66FD 3A A3 EF ld a, (0EFA3h) 6700 CB AF res 5, a 6702 32 A3 EF ld (0EFA3h), a 6705 C3 DE 62 jp locret_62DE 6708 6708 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 6708 6708 6708 sub_6708: ; CODE XREF: seg000:65D8p 6708 AF ; seg000:6602p ... 6708 xor a 6709 CD 93 00 call 93h ; write data to PSG register 670C 7B ld a, e 670D 95 sub l 670E 5F ld e, a 670F BC cp h 6710 7B ld a, e 6711 C9 ret 6711 ; End of function sub_6708 6711 6712 6712 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 6712 6712 6712 mute_audio: ; CODE XREF: seg000:6150p 6712 AF ; update_PSG+24p ... 6712 xor a 6713 32 A3 EF ld (0EFA3h), a 6716 3E 08 ld a, 8 ; amplitude conrol 6718 1E 00 ld e, 0 ; turn OFF 671A CD 93 00 call 93h ; write data to PSG register 671D C9 ret 671D ; End of function mute_audio 671D 671E ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 671E 671E loc_671E: ; CODE XREF: seg000:618Dj 671E F5 ; seg000:61B3j ... 671E push af 671F 7E ld a, (hl) 6720 B9 cp c 6721 23 inc hl 6722 20 0B jr nz, loc_672F 6724 7E ld a, (hl) 6725 B8 cp b 6726 20 07 jr nz, loc_672F 6728 F1 pop af 6729 23 inc hl 672A 5E ld e, (hl) 672B 23 inc hl 672C 56 ld d, (hl) 672D EB ex de, hl 672E E9 jp (hl) 672F ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 672F 672F loc_672F: ; CODE XREF: seg000:6722j 672F F1 ; seg000:6726j 672F pop af 6730 23 inc hl 6731 23 inc hl 6732 23 inc hl 6733 3D dec a 6734 20 E8 jr nz, loc_671E 6736 EB ex de, hl 6737 E9 jp (hl) 6738 6738 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 6738 6738 6738 conv_signed_to_ASCII_decimal: ; CODE XREF: add_points_and_score_2_ascii+3Bp 6738 CB 7C ; add_points_and_score_2_ascii+44p ... 6738 bit 7, h 673A C2 5E 67 jp nz, loc_675E 673D 3E 20 ld a, 20h ; ' ' ; space 673F 12 ld (de), a ; store 6740 6740 loc_6740: ; CODE XREF: conv_signed_to_ASCII_decimal+32j 6740 13 inc de 6741 01 10 27 ld bc, 10000 6744 CD 6D 67 call divide_and_convert_ascii_digit 6747 01 E8 03 ld bc, 1000 674A CD 6D 67 call divide_and_convert_ascii_digit 674D 01 64 00 ld bc, 100 6750 CD 6D 67 call divide_and_convert_ascii_digit 6753 01 0A 00 ld bc, 10 6756 CD 6D 67 call divide_and_convert_ascii_digit 6759 7D ld a, l 675A C6 30 add a, 30h ; '0' ; convert units to ASCII 675C 12 ld (de), a ; store digit 675D C9 ret 675E ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 675E 675E loc_675E: ; CODE XREF: conv_signed_to_ASCII_decimal+2j 675E 3E 2D ld a, 2Dh ; '-' ; minus sign 6760 12 ld (de), a 6761 D5 push de 6762 11 00 00 ld de, 0 6765 EB ex de, hl 6766 AF xor a 6767 ED 52 sbc hl, de 6769 D1 pop de 676A C3 40 67 jp loc_6740 676A ; End of function conv_signed_to_ASCII_decimal 676A 676D 676D ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 676D 676D 676D divide_and_convert_ascii_digit: ; CODE XREF: conv_signed_to_ASCII_decimal+Cp 676D AF ; conv_signed_to_ASCII_decimal+12p ... 676D xor a ; zero count of divisor 676E 676E loc_676E: ; CODE XREF: divide_and_convert_ascii_digit+7j 676E ED 42 sbc hl, bc ; sub divisor 6770 FA 76 67 jp m, loc_6776 ; minus? yes, skip 6773 3C inc a ; inc counter 6774 18 F8 jr loc_676E ; loop 6776 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 6776 6776 loc_6776: ; CODE XREF: divide_and_convert_ascii_digit+3j 6776 09 add hl, bc ; restore positive 6777 C6 30 add a, 30h ; '0' ; convert counter digit to ASCII 6779 12 ld (de), a ; store 677A 13 inc de ; next digit location 677B C9 ret 677B ; End of function divide_and_convert_ascii_digit 677B 677C 677C ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 677C 677C 677C sub_677C: ; CODE XREF: seg000:637Ep 677C 3E 08 ; seg000:6394p ... 677C ld a, 8 677E 1E 0F ld e, 0Fh 6780 CD 93 00 call 93h ; write data to PSG register 6783 AF xor a 6784 1E 3C ld e, 3Ch ; '<' 6786 CD 93 00 call 93h ; write data to PSG register 6789 CD B1 65 call sub_65B1 678C 10 EE djnz sub_677C 678E C9 ret 678E ; End of function sub_677C 678E 678F 678F ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 678F 678F 678F sub_678F: ; CODE XREF: seg000:6424p 678F 21 00 E8 ; seg000:6451p ... 678F ld hl, 0E800h 6792 6792 loc_6792: ; CODE XREF: sub_678F+9j 6792 AF xor a 6793 77 ld (hl), a 6794 2C inc l 6795 3E 78 ld a, 120 6797 BD cp l 6798 30 F8 jr nc, loc_6792 679A C9 ret 679A ; End of function sub_678F 679A 679B 679B ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 679B 679B 679B sub_679B: ; CODE XREF: seg000:63C7p 679B CD 5A 50 call disable_vdp_interrupts 679E CD 8F 67 call sub_678F 67A1 CD B0 52 call spiral_wipe_level 67A4 CD FA 4E call create_level_data_scratchpad 67A7 CD 72 4F call display_level 67AA 3A A4 EF ld a, (0EFA4h) ; get general flags 67AD F6 01 or 1 67AF 32 A4 EF ld (0EFA4h), a ; store 67B2 CD 6B 52 call spiral_draw_level 67B5 CD 61 50 call enable_vdp_interrupts 67B8 C9 ret 67B8 ; End of function sub_679B 67B8 67B8 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 67B9 2F 2F 43 4F+aCommandAAbortLSlowHFast?IIncNNe:.text "//COMMAND" 67B9 4D 4D 41 4E+ .db 5Ch 67B9 44 5C 41 3A+ .text "A:ABORT/L:SLOW/H:FAST///>?/////" 67B9 41 42 4F 52+ .db 5Ch 67B9 54 2F 4C 3A+ .text "I:INC/N:NEXT/ESC:PLAY///MEN////" 67B9 53 4C 4F 57+ .db 5Ch 67B9 2F 48 3A 46+ .text "S:SOUND/C:COMMAND///////COMMAND/////////////LEVEL/////////P:PLAY/<:;:SCAN/R:RECALL////" 6859 00 00 00 00+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 6859 00 00 00 00+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 6899 2F 2F 50 4C+aPlayLevel?176: .text "//PLAY/LEVEL?/[/1-76]://////////" 68B9 00 00 00 00+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 68D9 2F 2F 4C 4F+aLodeRunner: .text "//LODE/RUNNER/////////////" 68F4 D9 .db 0D9h ; 68F5 E9 .db 0E9h ; 68F6 EA .db 0EAh ; 68F7 2F 2F 48 49+aHiScore: .text "//HI-SCORE//" 6903 E9 .db 0E9h ; 6904 EA .db 0EAh ; 6905 89 .db 89h ; 6906 60 .db 60h ; ` 6907 61 .db 61h ; a 6908 62 .db 62h ; b 6909 63 .db 63h ; c 690A 64 .db 64h ; d 690B 65 .db 65h ; e 690C 66 .db 66h ; f 690D 67 .db 67h ; g 690E 88 .db 88h ; 690F 8B .db 8Bh ; 6910 90 .db 90h ; 6911 90 .db 90h ; 6912 90 .db 90h ; 6913 90 .db 90h ; 6914 90 .db 90h ; 6915 90 .db 90h ; 6916 90 .db 90h ; 6917 90 .db 90h ; 6918 8A .db 8Ah ; 6919 8D .db 8Dh ; 691A 70 .db 70h ; p 691B 71 .db 71h ; q 691C 72 .db 72h ; r 691D 73 .db 73h ; s 691E 74 .db 74h ; t 691F 75 .db 75h ; u 6920 76 .db 76h ; v 6921 77 .db 77h ; w 6922 8C .db 8Ch ; 6923 00 .db 0 ; 6924 91 .db 91h ; 6925 91 .db 91h ; 6926 91 .db 91h ; 6927 91 .db 91h ; 6928 91 .db 91h ; 6929 91 .db 91h ; 692A 91 .db 91h ; 692B 91 .db 91h ; 692C 00 .db 0 ; 692D 8F .db 8Fh ; 692E 80 .db 80h ; 692F 81 .db 81h ; 6930 82 .db 82h ; 6931 83 .db 83h ; 6932 84 .db 84h ; 6933 85 .db 85h ; 6934 86 .db 86h ; 6935 87 .db 87h ; 6936 8E .db 8Eh ; 6937 00 .db 0 ; 6938 00 .db 0 ; 6939 00 .db 0 ; 693A 00 .db 0 ; 693B 00 .db 0 ; 693C 00 .db 0 ; 693D 00 .db 0 ; 693E 00 .db 0 ; 693F 00 .db 0 ; 6940 00 .db 0 ; 6941 00 .db 0 ; 6942 92 .db 92h ; 6943 92 .db 92h ; 6944 92 .db 92h ; 6945 92 .db 92h ; 6946 92 .db 92h ; 6947 92 .db 92h ; 6948 92 .db 92h ; 6949 92 .db 92h ; 694A 00 .db 0 ; 694B 00 .db 0 ; 694C 00 .db 0 ; 694D 00 .db 0 ; 694E 00 .db 0 ; 694F 00 .db 0 ; 6950 00 .db 0 ; 6951 00 .db 0 ; 6952 00 .db 0 ; 6953 00 .db 0 ; 6954 00 .db 0 ; 6955 8D .db 8Dh ; 6956 78 .db 78h ; x 6957 79 .db 79h ; y 6958 7A .db 7Ah ; z 6959 7B .db 7Bh ; { 695A 7C .db 7Ch ; | 695B 7D .db 7Dh ; } 695C 7E .db 7Eh ; ~ 695D 7F .db 7Fh ;  695E 8C .db 8Ch ; 695F 00 .db 0 ; 6960 91 .db 91h ; 6961 91 .db 91h ; 6962 91 .db 91h ; 6963 91 .db 91h ; 6964 91 .db 91h ; 6965 91 .db 91h ; 6966 91 .db 91h ; 6967 91 .db 91h ; 6968 00 .db 0 ; 6969 89 .db 89h ; 696A 68 .db 68h ; h 696B 69 .db 69h ; i 696C 6A .db 6Ah ; j 696D 6B .db 6Bh ; k 696E 6C .db 6Ch ; l 696F 6D .db 6Dh ; m 6970 6E .db 6Eh ; n 6971 6F .db 6Fh ; o 6972 88 .db 88h ; 6973 8B .db 8Bh ; 6974 90 .db 90h ; 6975 90 .db 90h ; 6976 90 .db 90h ; 6977 90 .db 90h ; 6978 90 .db 90h ; 6979 90 .db 90h ; 697A 90 .db 90h ; 697B 90 .db 90h ; 697C 8A .db 8Ah ; 697D 00 00 00 00+character_table:.db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ; empty space 6987 FB FB FB FB+ .db 0FBh, 0FBh, 0FBh, 0FBh, 0, 0DFh, 0DFh, 0DFh, 0DFh, 0 ; fall-thru brick 6991 FB FB FB FB+ .db 0FBh, 0FBh, 0FBh, 0FBh, 0, 0DFh, 0DFh, 0DFh, 0DFh, 0 ; diggable brick 699B FF FF FF FF+ .db 0FFh, 0FFh, 0FFh, 0FFh, 0FFh, 0FFh, 0FFh, 0FFh, 0FFh, 0 ; solid brick 69A5 00 FF 00 00+ .db 0, 0FFh, 0, 0, 0, 0, 0, 0, 0, 0 ; rope 69AF 41 41 7F 41+ .db 41h, 41h, 7Fh, 41h, 41h, 41h, 41h, 7Fh, 41h, 41h ; ladder 69B9 40 40 7F 41+ .db 40h, 40h, 7Fh, 41h, 1, 1, 41h, 7Fh, 40h, 40h ; end of level ladder 69C3 00 00 00 00+ .db 0, 0, 0, 0, 3Ch, 3Ch, 3Ch, 3Ch, 3Ch, 0 ; ?? gold ?? 69CD 00 30 30 1C+ .db 0, 30h, 30h, 1Ch, 32h, 48h, 8, 16h, 10h, 10h ; man facing left 69D7 00 0C 0C 38+ .db 0, 0Ch, 0Ch, 38h, 4Ch, 12h, 10h, 68h, 8, 8 ; man facing right 69E1 00 00 00 00+ .db 0, 0, 0, 0, 0, 81h, 81h, 0C3h, 0E7h, 0 ; hole #1 69EB 81 81 81 C3+ .db 81h, 81h, 81h, 0C3h, 0, 0C3h, 0C3h, 0DFh, 0DFh, 0 ; hole #2 69F5 FF FF FF FF+ .db 0FFh, 0FFh, 0FFh, 0FFh, 0FFh, 0, 0, 0, 0, 0 69FF 00 00 00 00+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 6A09 00 00 00 00+ .db 0, 0, 0, 0, 0, 30h, 78h, 0FCh, 0, 0 ; spawning baddie #1 6A13 00 00 00 38+ .db 0, 0, 0, 38h, 7Ch, 0FEh, 0FEh, 0FEh, 0, 0 ; spawning baddie #2 6A1D 00 0C 0C 38+ .db 0, 0Ch, 0Ch, 38h, 4Ch, 12h, 10h, 68h, 8, 8 ; run #1 right 6A27 00 0C 0C 08+ .db 0, 0Ch, 0Ch, 8, 1Ch, 2Ah, 0Ch, 1Ch, 28h, 10h ; run #2 right 6A31 00 0C 0C 3A+ .db 0, 0Ch, 0Ch, 3Ah, 4Ch, 8, 0Ch, 12h, 22h, 40h ; run #3 right 6A3B 00 30 30 1C+ .db 0, 30h, 30h, 1Ch, 32h, 48h, 8, 16h, 10h, 10h ; run #1 left 6A45 00 30 30 10+ .db 0, 30h, 30h, 10h, 38h, 54h, 30h, 38h, 14h, 8 ; run #2 left 6A4F 00 30 30 5C+ .db 0, 30h, 30h, 5Ch, 32h, 10h, 30h, 48h, 44h, 2 ; run #3 left 6A59 42 5A 5A 52+ .db 42h, 5Ah, 5Ah, 52h, 3Ch, 18h, 18h, 28h, 48h, 50h ; hang #1 right 6A63 02 1A 1A 14+ .db 2, 1Ah, 1Ah, 14h, 38h, 58h, 18h, 14h, 12h, 10h ; hang #2 right 6A6D 40 58 5A 32+ .db 40h, 58h, 5Ah, 32h, 1Ch, 18h, 18h, 14h, 14h, 24h ; hang #3 right 6A77 42 5A 5A 4A+ .db 42h, 5Ah, 5Ah, 4Ah, 3Ch, 18h, 18h, 14h, 12h, 0Ah ; hang #1 left 6A81 40 58 58 28+ .db 40h, 58h, 58h, 28h, 1Ch, 1Ah, 18h, 28h, 48h, 8 ; hang #2 left 6A8B 02 1A 5A 4C+ .db 2, 1Ah, 5Ah, 4Ch, 38h, 18h, 18h, 28h, 28h, 24h ; hang #3 left 6A95 00 18 58 78+ .db 0, 18h, 58h, 78h, 1Ah, 1Eh, 38h, 64h, 4, 6 ; climb #1 (left arm up) 6A9F 00 18 18 5A+ .db 0, 18h, 18h, 5Ah, 7Eh, 18h, 18h, 24h, 24h, 66h ; climb #2 6AA9 00 18 1A 1E+ .db 0, 18h, 1Ah, 1Eh, 58h, 78h, 1Ch, 26h, 20h, 60h ; climb #3 (right arm up) 6AB3 42 5A 5A 52+ .db 42h, 5Ah, 5Ah, 52h, 3Ch, 18h, 18h, 18h, 24h, 44h ; fall? 6ABD 00 30 30 10+ .db 0, 30h, 30h, 10h, 38h, 54h, 0B0h, 38h, 14h, 10h ; run left ?? 6AC7 00 0C 0C 08+ .db 0, 0Ch, 0Ch, 8, 1Ch, 2Ah, 0Dh, 1Ch, 28h, 8 ; run right ?? 6AD1 00 00 00 00+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 6ADB 00 00 00 00+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 6AE5 00 00 00 00+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 6AEF 00 00 28 00+ .db 0, 0, 28h, 0, 95h, 20h, 5, 0A2h, 0, 0 ; dig #1 debris 6AF9 C3 FF FB FB+ .db 0C3h, 0FFh, 0FBh, 0FBh, 0, 0DFh, 0DFh, 0DFh, 0DFh, 0 ; dig #1 brick 6B03 00 00 00 00+ .db 0, 0, 0, 0, 0, 28h, 82h, 49h, 92h, 0 ; dig #2 debris 6B0D A9 44 91 C3+ .db 0A9h, 44h, 91h, 0C3h, 0FFh, 0DFh, 0DFh, 0DFh, 0DFh, 0 ; dig #2 brick 6B17 00 00 00 00+ .db 0, 0, 0, 0, 0, 0, 0, 14h, 0A1h, 0 ; dig #3 debris 6B21 89 04 A1 44+ .db 89h, 4, 0A1h, 44h, 81h, 0C3h, 0FFh, 0DFh, 0DFh, 0 ; dig #3 brick 6B2B 00 00 41 24+ .db 0, 0, 41h, 24h, 0, 55h, 80h, 0C3h, 0FFh, 0 ; dig #4 debris 6B35 00 00 00 00+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 6B3F 00 00 00 7C+ .db 0, 0, 0, 7Ch, 0, 0, 0, 0, 0, 0 6B49 00 00 00 00+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 6B53 00 00 00 00+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 6B5D 7E 42 42 42+ .db 7Eh, 42h, 42h, 42h, 72h, 72h, 72h, 7Eh, 0, 0 ; "0" 6B67 04 04 04 04+ .db 4, 4, 4, 4, 0Ch, 0Ch, 0Ch, 0Ch, 0, 0 ; "1" 6B71 7E 62 62 02+ .db 7Eh, 62h, 62h, 2, 3Eh, 60h, 60h, 7Eh, 0, 0 ; "2" 6B7B 7E 66 06 1C+ .db 7Eh, 66h, 6, 1Ch, 6, 6, 66h, 7Eh, 0, 0 ; "3" 6B85 1E 22 42 42+ .db 1Eh, 22h, 42h, 42h, 7Fh, 6, 6, 6, 0, 0 ; "4" 6B8F 7C 60 60 7E+ .db 7Ch, 60h, 60h, 7Eh, 2, 2, 62h, 7Eh, 0, 0 ; "5" 6B99 7E 46 40 7E+ .db 7Eh, 46h, 40h, 7Eh, 62h, 66h, 66h, 7Eh, 0, 0 ; "6" 6BA3 7E 02 02 02+ .db 7Eh, 2, 2, 2, 6, 6, 6, 6, 0, 0 ; "7" 6BAD 7C 44 44 3C+ .db 7Ch, 44h, 44h, 3Ch, 66h, 66h, 66h, 7Eh, 0, 0 ; "8" 6BB7 7E 42 42 46+ .db 7Eh, 42h, 42h, 46h, 7Eh, 6, 6, 6, 0, 0 ; "9" 6BC1 00 10 00 00+ .db 0, 10h, 0, 0, 0, 0, 10h, 0, 0, 0 ; ":" 6BCB 00 00 08 04+ .db 0, 0, 8, 4, 0FEh, 4, 8, 0, 0, 0 ; right arrow 6BD5 00 00 10 20+ .db 0, 0, 10h, 20h, 7Fh, 20h, 10h, 0, 0, 0 ; left arrow 6BDF 00 00 00 00+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ; space? 6BE9 30 18 0C 06+ .db 30h, 18h, 0Ch, 6, 6, 0Ch, 18h, 30h, 0, 0 ; ">"? 6BF3 3C 62 62 0C+ .db 3Ch, 62h, 62h, 0Ch, 18h, 18h, 0, 18h, 0, 0 ; "?" 6BFD 00 00 00 00+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ; space? 6C07 1C 22 22 3E+ .db 1Ch, 22h, 22h, 3Eh, 62h, 62h, 62h, 62h, 0, 0 ; "A" 6C11 78 44 44 7C+ .db 78h, 44h, 44h, 7Ch, 46h, 66h, 66h, 7Eh, 0, 0 ; "B" 6C1B 7E 42 40 40+ .db 7Eh, 42h, 40h, 40h, 40h, 70h, 72h, 7Eh, 0, 0 ; "C" 6C25 7C 46 46 46+ .db 7Ch, 46h, 46h, 46h, 66h, 66h, 66h, 7Ch, 0, 0 ; "D" 6C2F 7E 70 70 70+ .db 7Eh, 70h, 70h, 70h, 7Ch, 60h, 60h, 7Eh, 0, 0 ; "E" 6C39 7E 70 70 70+ .db 7Eh, 70h, 70h, 70h, 7Ch, 60h, 60h, 60h, 0, 0 ; "F" 6C43 7C 44 40 4E+ .db 7Ch, 44h, 40h, 4Eh, 46h, 76h, 76h, 7Eh, 0, 0 ; "G" 6C4D 42 42 42 7E+ .db 42h, 42h, 42h, 7Eh, 42h, 62h, 62h, 62h, 0, 0 ; "H" 6C57 10 10 10 10+ .db 10h, 10h, 10h, 10h, 18h, 18h, 18h, 18h, 0, 0 ; "I" 6C61 04 04 04 04+ .db 4, 4, 4, 4, 0Ch, 4Ch, 4Ch, 7Ch, 0, 0 ; "J" 6C6B 44 44 48 70+ .db 44h, 44h, 48h, 70h, 78h, 64h, 62h, 62h, 0, 0 ; "K" 6C75 40 40 40 40+ .db 40h, 40h, 40h, 40h, 60h, 60h, 60h, 7Eh, 0, 0 ; "L" 6C7F 66 76 7E 66+ .db 66h, 76h, 7Eh, 66h, 66h, 66h, 66h, 66h, 0, 0 ; "M" 6C89 66 66 76 7E+ .db 66h, 66h, 76h, 7Eh, 7Eh, 6Eh, 66h, 66h, 0, 0 ; "N" 6C93 7E 4E 4E 4E+ .db 7Eh, 4Eh, 4Eh, 4Eh, 42h, 42h, 42h, 7Eh, 0, 0 ; "O" 6C9D 7E 42 42 62+ .db 7Eh, 42h, 42h, 62h, 7Eh, 60h, 60h, 60h, 0, 0 ; "P" 6CA7 7E 46 46 46+ .db 7Eh, 46h, 46h, 46h, 4Eh, 4Eh, 7Eh, 6, 0, 0 ; "Q" 6CB1 7E 66 66 66+ .db 7Eh, 66h, 66h, 66h, 7Eh, 78h, 66h, 66h, 0, 0 ; "R" 6CBB 7E 66 60 7E+ .db 7Eh, 66h, 60h, 7Eh, 0Eh, 0Eh, 6Eh, 7Eh, 0, 0 ; "S" 6CC5 7E 10 10 10+ .db 7Eh, 10h, 10h, 10h, 18h, 18h, 18h, 18h, 0, 0 ; "T" 6CCF 72 72 72 72+ .db 72h, 72h, 72h, 72h, 72h, 72h, 7Eh, 7Eh, 0, 0 ; "U" 6CD9 72 72 72 72+ .db 72h, 72h, 72h, 72h, 7Eh, 7Eh, 3Ch, 30h, 0, 0 ; "V" 6CE3 42 42 5A 5A+ .db 42h, 42h, 5Ah, 5Ah, 5Ah, 7Eh, 76h, 22h, 0, 0 ; "W" 6CED 62 62 62 3C+ .db 62h, 62h, 62h, 3Ch, 7Eh, 46h, 46h, 46h, 0, 0 ; "X" 6CF7 62 62 62 3C+ .db 62h, 62h, 62h, 3Ch, 18h, 18h, 18h, 18h, 0, 0 ; "Y" 6D01 7E 02 12 3C+ .db 7Eh, 2, 12h, 3Ch, 68h, 60h, 60h, 7Eh, 0, 0 ; "Z" 6D0B 08 10 20 20+ .db 8, 10h, 20h, 20h, 20h, 20h, 10h, 8, 0, 0 ; "(" 6D15 18 18 18 18+ .db 18h, 18h, 18h, 18h, 18h, 18h, 18h, 18h, 18h, 0 ; vertical bar 6D1F 10 08 04 04+ .db 10h, 8, 4, 4, 4, 4, 8, 10h, 0, 0 ; ")" 6D29 38 20 20 20+ .db 38h, 20h, 20h, 20h, 20h, 20h, 20h, 38h, 0, 0 ; "[" 6D33 00 00 00 00+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 6D3D FF 00 00 1C+ .db 0FFh, 0, 0, 1Ch, 22h, 40h, 4Eh, 42h, 22h, 1Ch ; "G" with a bar 6D47 FF 00 00 18+ .db 0FFh, 0, 0, 18h, 24h, 42h, 7Eh, 42h, 42h, 42h ; "A" with a bar 6D51 FF 00 00 42+ .db 0FFh, 0, 0, 42h, 66h, 5Ah, 5Ah, 42h, 42h, 42h ; "M" with a bar 6D5B FF 00 00 7E+ .db 0FFh, 0, 0, 7Eh, 40h, 40h, 78h, 40h, 40h, 7Eh ; "E" with a bar 6D65 FF 00 00 06+ .db 0FFh, 0, 0, 6, 9, 10h, 10h, 10h, 9, 6 ; "O" with a bar 6D6F FF 00 00 10+ .db 0FFh, 0, 0, 10h, 10h, 90h, 90h, 90h, 9, 6 ; "V" with a bar 6D79 FF 00 00 9F+ .db 0FFh, 0, 0, 9Fh, 90h, 90h, 9Eh, 90h, 10h, 1Fh ; "E" with a bar 6D83 FF 00 00 BC+ .db 0FFh, 0, 0, 0BCh, 22h, 22h, 3Ch, 28h, 24h, 0A2h ; "R" with a bar 6D8D FF 00 00 1C+ .db 0FFh, 0, 0, 1Ch, 22h, 42h, 4Eh, 40h, 22h, 1Ch ; upside-down "G" with a bar 6D97 FF 00 00 42+ .db 0FFh, 0, 0, 42h, 42h, 42h, 7Eh, 42h, 24h, 18h ; upside-down "A" with a bar 6DA1 FF 00 00 42+ .db 0FFh, 0, 0, 42h, 42h, 42h, 5Ah, 5Ah, 66h, 42h ; upside-down "M" with a bar 6DAB FF 00 00 7E+ .db 0FFh, 0, 0, 7Eh, 40h, 40h, 78h, 40h, 40h, 7Eh ; upside-down "E" with a bar 6DB5 FF 00 00 06+ .db 0FFh, 0, 0, 6, 9, 10h, 10h, 10h, 9, 6 ; upside-down "O" with a bar 6DBF FF 00 00 06+ .db 0FFh, 0, 0, 6, 9, 90h, 90h, 90h, 10h, 10h ; upside-down "V" with a bar 6DC9 FF 00 00 1F+ .db 0FFh, 0, 0, 1Fh, 10h, 90h, 9Eh, 90h, 90h, 9Fh ; upside-down "E" with a bar 6DD3 FF 00 00 A2+ .db 0FFh, 0, 0, 0A2h, 24h, 28h, 3Ch, 22h, 22h, 0BCh ; upside-down "R" with a bar 6DDD 00 00 FF 00+ .db 0, 0, 0FFh, 0, 3Eh, 40h, 4Eh, 42h, 3Eh, 0 6DE7 00 00 FF 00+ .db 0, 0, 0FFh, 0, 3Ch, 42h, 7Eh, 42h, 42h, 0 6DF1 00 00 FF 00+ .db 0, 0, 0FFh, 0, 66h, 5Ah, 5Ah, 42h, 42h, 0 6DFB 00 00 FF 00+ .db 0, 0, 0FFh, 0, 7Ch, 40h, 78h, 40h, 7Ch, 0 6E05 00 00 FF 00+ .db 0, 0, 0FFh, 0, 0Fh, 10h, 10h, 10h, 0Fh, 0 6E0F 00 00 FF 00+ .db 0, 0, 0FFh, 0, 10h, 90h, 90h, 90h, 0Fh, 0 6E19 00 00 FF 00+ .db 0, 0, 0FFh, 0, 9Fh, 90h, 9Eh, 90h, 1Fh, 0 6E23 00 00 FF 00+ .db 0, 0, 0FFh, 0, 0BCh, 22h, 3Ch, 28h, 0A4h, 0 6E2D 00 00 FF 00+ .db 0, 0, 0FFh, 0, 3Eh, 42h, 4Eh, 40h, 3Eh, 0 6E37 00 00 FF 00+ .db 0, 0, 0FFh, 0, 42h, 42h, 7Eh, 42h, 3Ch, 0 6E41 00 00 FF 00+ .db 0, 0, 0FFh, 0, 42h, 42h, 5Ah, 5Ah, 66h, 0 6E4B 00 00 FF 00+ .db 0, 0, 0FFh, 0, 7Ch, 40h, 78h, 40h, 7Ch, 0 6E55 00 00 FF 00+ .db 0, 0, 0FFh, 0, 0Fh, 10h, 10h, 10h, 0Fh, 0 6E5F 00 00 FF 00+ .db 0, 0, 0FFh, 0, 0Fh, 90h, 90h, 90h, 10h, 0 6E69 00 00 FF 00+ .db 0, 0, 0FFh, 0, 1Fh, 90h, 9Eh, 90h, 9Fh, 0 6E73 00 00 FF 00+ .db 0, 0, 0FFh, 0, 0A4h, 28h, 3Ch, 22h, 0BCh, 0 6E7D 00 00 00 00+ .db 0, 0, 0, 0, 0FFh, 0, 4Eh, 0, 0FFh, 0 6E87 00 00 00 00+ .db 0, 0, 0, 0, 0FFh, 0, 7Eh, 0, 0FFh, 0 6E91 00 00 00 00+ .db 0, 0, 0, 0, 0FFh, 0, 5Ah, 0, 0FFh, 0 6E9B 00 00 00 00+ .db 0, 0, 0, 0, 0FFh, 0, 78h, 0, 0FFh, 0 6EA5 00 00 00 00+ .db 0, 0, 0, 0, 0FFh, 0, 1Fh, 0, 0FFh, 0 6EAF 00 00 00 00+ .db 0, 0, 0, 0, 0FFh, 0, 9Fh, 0, 0FFh, 0 6EB9 00 00 00 00+ .db 0, 0, 0, 0, 0FFh, 0, 9Fh, 0, 0FFh, 0 6EC3 00 00 00 00+ .db 0, 0, 0, 0, 0FFh, 0, 3Eh, 0, 0FFh, 0 6ECD 80 80 80 80+ .db 80h, 80h, 80h, 80h, 80h, 80h, 80h, 80h, 80h, 80h 6ED7 01 01 01 01+ .db 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 6EE1 80 80 80 80+ .db 80h, 80h, 80h, 80h, 0, 0, 0, 0, 0, 0 6EEB 01 01 01 01+ .db 1, 1, 1, 1, 0, 0, 0, 0, 0, 0 6EF5 00 00 80 80+ .db 0, 0, 80h, 80h, 80h, 80h, 80h, 80h, 80h, 80h 6EFF 00 00 01 01+ .db 0, 0, 1, 1, 1, 1, 1, 1, 1, 1 6F09 00 00 00 00+ .db 0, 0, 0, 0, 80h, 80h, 80h, 80h, 80h, 0 6F13 00 00 00 00+ .db 0, 0, 0, 0, 1, 1, 1, 1, 1, 0 6F1D 00 00 00 FF+ .db 0, 0, 0, 0FFh, 0, 0, 0, 0, 0, 0 6F27 FF 00 00 00+ .db 0FFh, 0, 0, 0, 0, 0, 0, 0, 0, 0 6F31 00 00 00 00+ .db 0, 0, 0, 0, 0, 0, 0FFh, 0, 0, 0 6F3B 00 00 00 00+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 6F45 00 00 00 00+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 6F4F 00 00 00 00+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 6F59 00 00 00 00+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 6F63 00 00 00 00+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 6F6D 00 00 00 00+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 6F77 00 00 00 00+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 6F81 00 00 00 00+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 6F8B 00 00 00 00+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 6F95 00 00 00 00+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 6F9F 00 00 00 00+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 6FA9 00 00 00 00+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 6FB3 00 00 00 00+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 6FBD 00 00 00 00+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 6FC7 7F FF 3F 3F+ .db 7Fh, 0FFh, 3Fh, 3Fh, 3Fh, 7Fh, 7Fh, 7Fh, 0FFh, 0FFh 6FD1 C0 E0 E0 E0+ .db 0C0h, 0E0h, 0E0h, 0E0h, 0E0h, 0E0h, 0C0h, 0C0h, 0C0h, 80h 6FD1 E0 E0 C0 C0+ .db 7, 0Fh, 3, 3, 7, 7, 7, 7, 0Fh, 0Fh 6FD1 C0 80 07 0F+ .db 0FFh, 0FFh, 0FFh, 0FFh, 0FFh, 0FFh, 0FFh, 0F3h, 0F1h, 0E1h 6FD1 03 03 07 07+ .db 0FEh, 0FFh, 0FFh, 0FFh, 0FFh, 0FFh, 0FFh, 0FFh, 0FFh, 0FEh 6FD1 07 07 0F 0F+ .db 0, 0, 0, 0, 0, 0, 0, 0, 3, 7 6FD1 FF FF FF FF+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0FCh, 0FEh 6FD1 FF FF FF F3+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0FEh, 7Fh 6FD1 F1 E1 FE FF+ .db 0, 0, 0, 0, 0, 0, 0, 0, 3, 7 6FD1 FF FF FF FF+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0FCh, 0FDh 6FD1 FF FF FF FE+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0FEh, 0FFh 6FD1 00 00 00 00+ .db 0, 0, 0, 0, 0, 0, 0, 0, 1, 3 6FD1 00 00 00 00+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0FFh, 0FFh 6FD1 03 07 00 00+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0FCh, 0FEh 6FD1 00 00 00 00+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 6FD1 00 00 FC FE+ .db 0, 1, 1, 1, 3, 3, 7, 7, 0Fh, 0Fh 6FD1 00 00 00 00+ .db 0FFh, 0FFh, 0FFh, 0FFh, 0FFh, 0FFh, 0FCh, 0FCh, 0FCh, 0F8h 6FD1 00 00 00 00+ .db 80h, 80h, 80h, 0, 0, 0, 0, 0, 0, 0 6FD1 FE 7F 00 00+ .db 0Fh, 0Fh, 1Fh, 1Fh, 1Fh, 1Fh, 3Fh, 3Fh, 3Fh, 3Fh 6FD1 00 00 00 00+ .db 0E3h, 0E7h, 0FFh, 0FFh, 0FFh, 0FFh, 0FFh, 0FFh, 0BFh, 9Fh 6FD1 00 00 03 07+ .db 0FEh, 0FCh, 0FCh, 0F8h, 0F0h, 0E0h, 0C0h, 0C0h, 0C0h, 0E0h 6FD1 00 00 00 00+ .db 1, 1, 1, 3, 3, 3, 7, 7, 7, 7 6FD1 00 00 00 00+ .db 0FEh, 0FEh, 0FCh, 0FCh, 0F8h, 0F9h, 0F9h, 0F1h, 0F3h, 0F3h 6FD1 FC FD 00 00+ .db 7Fh, 7Fh, 7Fh, 0FEh, 0FEh, 0FEh, 0FEh, 0FCh, 0FCh, 0FCh 6FD1 00 00 00 00+ .db 1, 1, 1, 1, 3, 3, 3, 7, 7, 7 6FD1 00 00 FE FF+ .db 0FDh, 0FFh, 0FFh, 0FFh, 0FFh, 0FCh, 0FCh, 0F9h, 0F9h, 0F9h 6FD1 00 00 00 00+ .db 0FFh, 0FFh, 0FFh, 0FFh, 0FEh, 0FEh, 0FEh, 0FEh, 0FCh, 0FCh 6FD1 00 00 00 00+ .db 3, 7, 7, 7, 0Fh, 0Fh, 0Fh, 0Fh, 1Fh, 1Fh 6FD1 01 03 00 00+ .db 0FFh, 0FFh, 0FFh, 0FFh, 0F1h, 0F1h, 0F1h, 0E3h, 0E3h, 0E3h 6FD1 00 00 00 00+ .db 0FEh, 0FEh, 0FEh, 0FEh, 0FEh, 0FCh, 0FCh, 0FCh, 0FCh, 0F8h 6FD1 00 00 FF FF+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 6FD1 00 00 00 00+ .db 0Fh, 0Fh, 1Fh, 1Fh, 1Fh, 1Fh, 1Fh, 0Fh, 0Fh, 7 6FD1 00 00 00 00+ .db 0F8h, 0F8h, 0F8h, 0FFh, 0FFh, 0FFh, 0FFh, 0FFh, 0FFh, 0FFh 6FD1 FC FE 00 00+ .db 0, 4, 1Ch, 0FCh, 0FCh, 0F8h, 0F8h, 0F0h, 0F0h, 0E0h 6FD1 00 00 00 00+ .db 7Fh, 7Fh, 7Fh, 7Fh, 0FFh, 0FFh, 0FFh, 0FFh, 0FFh, 7Fh 6FD1 00 00 00 00+ .db 9Fh, 9Fh, 9Fh, 0Fh, 0Fh, 0Fh, 7, 7, 87h, 3 6FD1 00 01 01 01+ .db 0E0h, 0F0h, 0F2h, 0FAh, 0FEh, 0FEh, 0FCh, 0FCh, 0F8h, 0F8h 6FD1 03 03 07 07+ .db 0Fh, 0Fh, 0Fh, 0Fh, 1Fh, 1Fh, 1Fh, 1Fh, 1Fh, 0Fh 6FD1 0F 0F FF FF+ .db 0F3h, 0E7h, 0E7h, 0FFh, 0FFh, 0FFh, 0FFh, 0F7h, 0E7h, 0E7h 6FD1 FF FF FF FF+ .db 0FCh, 0F8h, 0F8h, 0F8h, 0F0h, 0F0h, 0F0h, 0F0h, 0FCh, 0F8h 6FD1 FC FC FC F8+ .db 7, 0Fh, 0Fh, 0Fh, 0Fh, 1Fh, 1Fh, 1Fh, 1Fh, 0Fh 6FD1 80 80 80 00+ .db 0F1h, 0F3h, 0F3h, 0F3h, 0E7h, 0C7h, 0C7h, 0C7h, 0C7h, 0E3h 6FD1 00 00 00 00+ .db 0FCh, 0F8h, 0F8h, 0F8h, 0F8h, 0F0h, 0F0h, 0F0h, 0FCh, 0F8h 6FD1 00 00 0F 0F+ .db 1Fh, 1Fh, 3Fh, 3Fh, 3Fh, 3Fh, 3Fh, 1Fh, 1Fh, 0Fh 6FD1 1F 1F 1F 1F+ .db 0C7h, 0C7h, 0C7h, 0FFh, 0FFh, 0FFh, 0FFh, 0FFh, 0FFh, 0FFh 6FD1 3F 3F 3F 3F+ .db 0F8h, 0F8h, 0F8h, 0F0h, 0F0h, 0F0h, 0F0h, 0E0h, 0E0h, 0C0h 6FD1 E3 E7 FF FF+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 6FD1 FF FF FF FF+ .db 0, 0, 0, 0, 0, 0, 0, 0, 1, 3 6FD1 BF 9F FE FC+ .db 1, 3, 0, 0, 0, 0, 0, 1, 0FFh, 0FFh 6FD1 FC F8 F0 E0+ .db 0FEh, 0FFh, 7Fh, 0FFh, 0FFh, 0FEh, 0FEh, 0FEh, 0FEh, 0FEh 6FD1 C0 C0 C0 E0+ .db 0, 0, 0, 0, 0, 0, 0, 0, 1, 3 6FD1 01 01 01 03+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0FFh, 0FFh 6FD1 03 03 07 07+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0FCh, 0FEh 6FD1 07 07 FE FE+ .db 0, 0, 0, 0, 0, 0, 0, 0, 1Fh, 3Fh 6FD1 FC FC F8 F9+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0E3h, 0F7h 6FD1 F9 F1 F3 F3+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0F0h, 0F0h 6FD1 7F 7F 7F FE+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 6FD1 FE FE FE FC+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 80h 6FD1 FC FC 01 01+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 6FD1 01 01 03 03+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 6FD1 03 07 07 07+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 6FD1 FD FF FF FF+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 6FD1 FF FC FC F9+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 6FD1 F9 F9 FF FF+ .db 3, 7, 7, 7, 0Fh, 0Fh, 0Fh, 0Fh, 1Fh, 1Fh 6FD1 FF FF FE FE+ .db 0FFh, 0FFh, 0FFh, 0FFh, 0F1h, 0F1h, 0F1h, 0E3h, 0E3h, 0E3h 6FD1 FE FE FC FC+ .db 0FEh, 0FCh, 0FCh, 0FCh, 0FCh, 0F8h, 0F8h, 0F8h, 0F8h, 0F8h 6FD1 03 07 07 07+ .db 3, 7, 7, 7, 0Fh, 0Fh, 0Fh, 0Fh, 1Fh, 1Fh 6FD1 0F 0F 0F 0F+ .db 0FFh, 0FFh, 0FFh, 0FFh, 0F0h, 0F1h, 0E1h, 0FFh, 0FFh, 0FFh 6FD1 1F 1F FF FF+ .db 0FEh, 0FEh, 0FEh, 0FEh, 0FEh, 0FCh, 0FCh, 0FCh, 0FCh, 0F8h 6FD1 FF FF F1 F1+ .db 0Fh, 0Fh, 0Fh, 1Fh, 1Fh, 1Fh, 3Fh, 3Fh, 3Fh, 3Fh 6FD1 F1 E3 E3 E3+ .db 0FFh, 0FFh, 0FFh, 0FFh, 0FFh, 0F0h, 0E0h, 0C0h, 0C0h, 0C0h 6FD1 FE FE FE FE+ .db 0F0h, 0E0h, 0E0h, 0E0h, 0C0h, 0, 0, 0, 0, 0 6FD1 FE FC FC FC+ .db 4, 2, 1, 1, 0, 10h, 92h, 54h, 38h, 38h 6FD1 FC F8 00 00+ .db 90h, 0A0h, 0C0h, 0C0h, 0, 8, 49h, 2Ah, 1Ch, 1Ch 6FD1 00 00 00 00+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 6FD1 00 00 00 00+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 6FD1 0F 0F 1F 1F+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 6FD1 1F 1F 1F 0F+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 6FD1 0F 07 F8 F8+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 6FD1 F8 FF FF FF+ .db 1Fh, 1Fh, 3Fh, 3Fh, 3Fh, 3Fh, 3Fh, 1Fh, 1Fh, 0Fh 6FD1 FF FF FF FF+ .db 0C7h, 0C7h, 0C7h, 0FFh, 0FFh, 0FFh, 0FFh, 0FFh, 0FFh, 0FFh 6FD1 00 04 1C FC+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0E0h, 0E0h, 0FEh, 0FCh, 0F8h, 0F8h 6FD1 FC F8 F8 F0+ .db 1Fh, 1Fh, 3Fh, 3Fh, 3Fh, 3Fh, 3Fh, 1Fh, 1Fh, 0Fh 6FD1 F0 E0 7F 7F+ .db 0, 0, 0, 0, 0FFh, 0FFh, 0FFh, 0FFh, 0FFh, 0FFh 6FD1 7F 7F FF FF+ .db 0, 0, 8, 18h, 0F8h, 0F0h, 0F0h, 0E0h, 0E0h, 0C0h 6FD1 FF FF FF 7F+ .db 7Fh, 7Fh, 7Fh, 7Fh, 0FFh, 0FFh, 0FFh, 0FFh, 0FFh, 0FFh 6FD1 9F 9F 9F 0F+ .db 80h, 80h, 80h, 80h, 0, 0, 0, 0, 80h, 0 6FD1 0F 0F 07 07+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 6FD1 87 03 E0 F0+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 6FD1 F2 FA FE FE+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 6FD1 FC FC F8 F8+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0FFh, 0FFh 6FD1 0F 0F 0F 0F+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0FFh, 0FFh 6FD1 1F 1F 1F 1F+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0FFh, 0FFh 6FD1 1F 0F F3 E7+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0FFh, 0FFh 6FD1 E7 FF FF FF+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 6FD1 FF F7 E7 E7+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 6FD1 FC F8 F8 F8+ .db 50h, 50h, 50h, 50h, 0F0h, 50h, 50h, 50h, 50h, 50h 6FD1 F0 F0 F0 F0+ .db 50h, 50h, 50h, 50h, 0F0h, 50h, 50h, 50h, 50h, 50h 6FD1 FC F8 07 0F+ .db 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h 6FD1 0F 0F 0F 1F+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 6FD1 1F 1F 1F 0F+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 6FD1 F1 F3 F3 F3+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 6FD1 E7 C7 C7 C7+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 60h, 0F0h, 60h, 0F0h, 0F0h 6FD1 C7 E3 FC F8+ .db 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h 73D7 F0 F0 F0 F0+colours: .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 F0 F0 F0 F0+ .db 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h 73D7 F0 F0 50 50+ .db 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h 73D7 50 50 50 50+ .db 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h 73D7 50 50 50 50+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 73D7 50 50 50 50+ .db 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h 73D7 50 50 50 50+ .db 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h 73D7 50 50 60 60+ .db 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h 73D7 60 60 60 60+ .db 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h 73D7 60 60 60 60+ .db 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h 73D7 00 00 00 00+ .db 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h 73D7 00 00 00 00+ .db 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h 73D7 00 00 60 60+ .db 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h 73D7 60 60 60 60+ .db 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h 73D7 60 60 60 60+ .db 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h 73D7 60 60 60 60+ .db 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h 73D7 60 60 60 60+ .db 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h 73D7 60 60 60 60+ .db 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h 73D7 60 60 60 60+ .db 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h 73D7 60 60 60 60+ .db 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h 73D7 60 60 60 60+ .db 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h 73D7 60 60 60 60+ .db 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h 73D7 60 60 60 60+ .db 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h 73D7 60 60 60 60+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 60 60 60 60+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 60 60 60 60+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 73D7 60 60 60 60+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 73D7 60 60 60 60+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 73D7 60 60 60 60+ .db 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h 73D7 60 60 60 60+ .db 60h, 60h, 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h 73D7 60 60 60 60+ .db 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h 73D7 60 60 60 60+ .db 0A0h, 0A0h, 0A0h, 60h, 60h, 50h, 50h, 50h, 50h, 50h 73D7 60 60 60 60+ .db 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h 73D7 60 60 60 60+ .db 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 60h, 60h, 50h, 50h, 50h 73D7 60 60 60 60+ .db 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 60h, 60h, 50h 73D7 60 60 60 60+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 73D7 60 60 60 60+ .db 0, 0, 0, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0, 0 73D7 60 60 60 60+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 73D7 60 60 60 60+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 73D7 60 60 60 60+ .db 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h 73D7 60 60 60 60+ .db 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h 73D7 60 60 60 60+ .db 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h 73D7 60 60 60 60+ .db 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h 73D7 60 60 60 60+ .db 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h 73D7 60 60 60 60+ .db 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h 73D7 60 60 60 60+ .db 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h 73D7 60 60 60 60+ .db 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h 73D7 60 60 60 60+ .db 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h 73D7 60 60 60 60+ .db 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h 73D7 60 60 60 60+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 60 60 60 60+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 60 60 60 60+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 60 60 60 60+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 73D7 60 60 60 60+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 60 60 60 60+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 60 60 60 60+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 73D7 60 60 60 60+ .db 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h 73D7 60 60 F0 F0+ .db 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h 73D7 F0 F0 F0 F0+ .db 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h 73D7 F0 F0 F0 F0+ .db 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h 73D7 F0 F0 F0 F0+ .db 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h 73D7 F0 F0 F0 F0+ .db 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h 73D7 F0 F0 00 00+ .db 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h 73D7 00 00 00 00+ .db 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h 73D7 00 00 00 00+ .db 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h 73D7 00 00 00 00+ .db 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h 73D7 00 00 00 00+ .db 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h 73D7 00 00 00 00+ .db 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h 73D7 00 00 00 00+ .db 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h 73D7 00 00 00 00+ .db 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h 73D7 A0 A0 A0 A0+ .db 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h 73D7 A0 A0 A0 A0+ .db 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h 73D7 A0 A0 60 60+ .db 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h 73D7 50 50 50 50+ .db 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h 73D7 50 50 50 50+ .db 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h 73D7 A0 A0 A0 A0+ .db 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h 73D7 A0 A0 A0 A0+ .db 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h 73D7 A0 A0 A0 A0+ .db 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h 73D7 A0 60 60 50+ .db 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h 73D7 50 50 50 50+ .db 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h 73D7 A0 A0 A0 A0+ .db 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h 73D7 A0 A0 A0 A0+ .db 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h, 50h 73D7 A0 A0 A0 A0+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 A0 A0 A0 60+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 60 50 50 50+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 A0 A0 A0 A0+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 A0 A0 A0 60+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 73D7 60 50 00 00+ .db 60h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 00 00 00 00+ .db 60h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 00 00 00 00+ .db 60h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 00 00 00 F0+ .db 60h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 F0 F0 F0 F0+ .db 60h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 00 00 00 00+ .db 60h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 00 00 00 00+ .db 60h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 00 00 00 00+ .db 60h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 00 00 00 00+ .db 60h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 00 00 00 00+ .db 60h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 00 00 60 60+ .db 60h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 60 60 60 60+ .db 60h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 60 60 60 60+ .db 60h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 60 60 60 60+ .db 60h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 60 60 60 60+ .db 60h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 60 60 60 60+ .db 60h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 60 60 60 60+ .db 60h, 60h, 60h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 60 60 60 60+ .db 60h, 60h, 60h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 60 60 60 60+ .db 60h, 60h, 60h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 60 60 60 60+ .db 60h, 60h, 60h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 60 60 60 60+ .db 60h, 60h, 60h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 60 60 60 60+ .db 60h, 60h, 60h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 60 60 60 60+ .db 60h, 60h, 60h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 60 60 60 60+ .db 60h, 60h, 60h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 60 60 60 60+ .db 60h, 60h, 60h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 60 60 60 60+ .db 60h, 60h, 60h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 60 60 60 60+ .db 60h, 60h, 60h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 60 60 60 60+ .db 60h, 60h, 60h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 60 60 60 60+ .db 60h, 60h, 60h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 60 60 60 60+ .db 60h, 60h, 60h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 60 60 60 60+ .db 60h, 60h, 60h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 60 60 60 60+ .db 60h, 60h, 60h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 60 60 60 60+ .db 60h, 60h, 60h, 60h, 60h, 0F0h, 0F0h, 0F0h, 60h, 60h 73D7 60 60 60 60+ .db 60h, 60h, 60h, 60h, 60h, 0F0h, 0F0h, 0F0h, 60h, 60h 73D7 60 60 60 60+ .db 60h, 60h, 60h, 60h, 60h, 0F0h, 0F0h, 0F0h, 60h, 60h 73D7 60 60 F0 F0+ .db 60h, 60h, 60h, 60h, 60h, 0F0h, 0F0h, 0F0h, 60h, 60h 73D7 F0 F0 F0 F0+ .db 60h, 60h, 60h, 60h, 60h, 0F0h, 0F0h, 0F0h, 60h, 60h 73D7 F0 F0 F0 F0+ .db 60h, 60h, 60h, 60h, 60h, 0F0h, 0F0h, 0F0h, 60h, 60h 73D7 F0 F0 F0 F0+ .db 60h, 60h, 60h, 60h, 60h, 0F0h, 0F0h, 0F0h, 60h, 60h 73D7 F0 F0 F0 F0+ .db 60h, 60h, 60h, 60h, 60h, 0F0h, 0F0h, 0F0h, 60h, 60h 73D7 F0 F0 F0 F0+ .db 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h 73D7 F0 F0 F0 F0+ .db 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h 73D7 F0 F0 F0 F0+ .db 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h 73D7 00 00 00 00+ .db 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h 73D7 00 00 00 00+ .db 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h 73D7 00 00 F0 F0+ .db 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h 73D7 F0 F0 F0 F0+ .db 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h 73D7 F0 F0 F0 F0+ .db 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h 73D7 F0 F0 F0 F0+ .db 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h 73D7 F0 F0 F0 F0+ .db 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h 73D7 F0 F0 00 00+ .db 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h, 60h 73D7 00 00 00 00+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 73D7 00 00 00 00+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 73D7 50 50 50 50+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 73D7 50 50 50 50+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 73D7 50 50 50 50+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 73D7 50 50 50 50+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 73D7 50 50 50 50+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 73D7 50 50 50 50+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 73D7 50 50 50 50+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 73D7 50 50 50 50+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 73D7 50 50 50 50+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 73D7 50 50 50 50+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 73D7 50 50 50 50+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 73D7 50 50 50 50+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 50 50 50 50+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 50 50 50 50+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 50 50 50 50+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 50 50 50 50+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 50 50 50 50+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 50 50 50 50+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 50 50 50 50+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 50 50 50 50+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 50 50 50 50+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 50 50 50 50+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 50 50 50 50+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 50 50 50 50+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 50 50 50 50+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 50 50 50 50+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 50 50 50 50+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 50 50 50 50+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 50 50 50 50+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 50 50 50 50+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 50 50 50 50+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 50 50 50 50+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 50 50 50 50+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 50 50 50 50+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 50 50 50 50+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 50 50 50 50+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 50 50 50 50+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 50 50 50 50+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 50 50 50 50+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 50 50 50 50+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 50 50 50 50+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 50 50 50 50+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 50 50 50 50+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 50 50 50 50+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 50 50 50 50+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 50 50 50 50+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 50 50 50 50+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 50 50 50 50+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 50 50 50 50+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 50 50 50 50+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 50 50 50 50+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 50 50 50 50+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 50 50 50 50+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 50 50 50 50+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 50 50 50 50+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 50 50 50 50+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 50 50 50 50+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 50 50 50 50+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 50 50 50 50+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 50 50 50 50+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 50 50 50 50+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 50 50 50 50+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 50 50 50 50+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 50 50 50 50+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 50 50 50 50+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 F0 F0 F0 F0+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 F0 F0 F0 F0+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 F0 F0 F0 F0+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 F0 F0 F0 F0+ .db 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h 73D7 F0 F0 F0 F0+ .db 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h 73D7 F0 F0 F0 F0+ .db 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h 73D7 F0 F0 F0 F0+ .db 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h 73D7 F0 F0 F0 F0+ .db 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h 73D7 F0 F0 F0 F0+ .db 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h 73D7 F0 F0 F0 F0+ .db 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h 73D7 00 00 00 00+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 00 00 00 00+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 00 00 60 F0+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 F0 F0 F0 F0+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 F0 F0 F0 F0+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 60 F0 F0 F0+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 F0 F0 F0 F0+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 F0 F0 60 F0+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 F0 F0 F0 F0+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 F0 F0 F0 F0+ .db 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h 73D7 60 F0 F0 F0+ .db 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h 73D7 F0 F0 F0 F0+ .db 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h 73D7 F0 F0 60 F0+ .db 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h 73D7 F0 F0 F0 F0+ .db 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h 73D7 F0 F0 F0 F0+ .db 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h 73D7 60 F0 F0 F0+ .db 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h, 0A0h 73D7 F0 F0 F0 F0+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 F0 F0 60 F0+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 F0 F0 F0 F0+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 F0 F0 F0 F0+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 60 F0 F0 F0+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 F0 F0 F0 F0+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 F0 F0 60 F0+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 F0 F0 F0 F0+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 73D7 F0 F0 F0 F0+ .db 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h, 0F0h 7D37 00 00 00 00+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 7D41 00 00 00 00+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 7D4B 00 00 00 00+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 7D55 00 00 00 00+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 7D5F 00 00 00 00+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 7D69 00 00 00 00+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 7D73 00 00 00 00+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 7D7D 00 00 00 00+level_01: .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 60h, 0, 0, 0, 0, 0, 0 7D7D 00 00 00 00+ .db 70h, 0, 0, 0, 0, 0, 0, 60h, 0, 0, 0, 0, 22h, 22h, 22h, 25h 7D7D 00 60 00 00+ .db 22h, 22h, 22h, 20h, 0, 60h, 0, 0, 0, 0, 0, 0, 0, 5, 44h, 44h 7D7D 00 00 00 00+ .db 44h, 44h, 44h, 60h, 0, 7, 0, 0, 0, 0, 0, 5, 0, 0, 22h, 50h 7D7D 70 00 00 00+ .db 0, 22h, 22h, 22h, 25h, 22h, 0, 0, 0, 5, 0, 0, 22h, 50h, 0, 0 7D7D 00 00 00 60+ .db 0, 0, 5, 0, 0, 0, 8, 5, 0, 0, 22h, 50h, 0, 0, 0, 78h 7D7D 00 00 00 00+ .db 5, 0, 22h, 52h, 22h, 22h, 20h, 0, 22h, 22h, 22h, 22h, 52h, 22h, 22h, 22h 7D7D 22 22 22 25+ .db 0, 50h, 0, 0, 0, 0, 0, 0, 0, 0, 50h, 0, 0, 0, 0, 50h 7D7D 22 22 22 20+ .db 0, 0, 0, 0, 0, 80h, 0, 0, 50h, 0, 0, 0, 22h, 22h, 22h, 22h 7D7D 00 60 00 00+ .db 22h, 52h, 22h, 22h, 22h, 22h, 50h, 0, 0, 0, 0, 0, 0, 0, 0, 50h 7D7D 00 00 00 00+ .db 0, 0, 0, 0, 50h, 0, 0, 0, 0, 0, 0, 0, 70h, 54h, 44h, 44h 7D7D 00 05 44 44+ .db 44h, 44h, 50h, 0, 70h, 0, 0, 0, 5, 22h, 22h, 22h, 0, 0, 0, 0 7D7D 44 44 44 60+ .db 22h, 22h, 22h, 25h, 0, 0, 5, 0, 0, 0, 0, 90h, 7, 0, 0, 0 7D7D 00 07 00 00+ .db 0, 5, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h 7E5D 00 07 00 00+level_02: .db 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 53h, 32h 7E5D 00 00 00 00+ .db 33h, 50h, 0, 0, 0, 0, 0, 70h, 0, 0, 0, 5, 50h, 0, 0, 50h 7E5D 00 00 00 00+ .db 0, 5, 22h, 22h, 22h, 22h, 25h, 7, 0, 5, 50h, 70h, 80h, 50h, 0, 5 7E5D 00 05 53 32+ .db 0, 0, 0, 0, 5, 22h, 22h, 15h, 52h, 32h, 32h, 50h, 0, 5, 0, 0 7E5D 33 50 00 00+ .db 0, 0, 5, 0, 0, 6, 50h, 0, 0, 54h, 44h, 45h, 44h, 44h, 44h, 0 7E5D 00 00 00 70+ .db 85h, 0, 0, 6, 50h, 0, 0, 50h, 0, 5, 0, 0, 5, 22h, 23h, 33h 7E5D 00 00 00 05+ .db 33h, 35h, 50h, 0, 0, 50h, 0, 5, 0, 70h, 5, 0, 0, 0, 0, 5 7E5D 50 00 00 50+ .db 50h, 0, 80h, 50h, 70h, 5, 22h, 22h, 25h, 0, 0, 0, 0, 5, 32h, 22h 7E5D 00 05 22 22+ .db 32h, 23h, 22h, 35h, 0, 0, 0, 0, 5, 22h, 25h, 22h, 32h, 22h, 30h, 0 7E5D 22 22 25 07+ .db 0, 5, 0, 0, 0, 0, 5, 0, 5, 0, 37h, 0, 30h, 0, 0, 5 7E5D 00 05 50 70+ .db 0, 4, 44h, 44h, 45h, 0, 5, 7, 22h, 22h, 22h, 22h, 52h, 22h, 33h, 33h 7E5D 80 50 00 05+ .db 0, 0, 5, 0, 22h, 22h, 0, 0, 0, 0, 50h, 0, 0, 0, 0, 0 7E5D 00 00 00 00+ .db 5, 0, 0, 0, 0, 0, 0, 0, 50h, 0, 9, 0, 0, 0, 5, 0 7E5D 05 22 22 15+ .db 0, 0, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h 7F3D 00 00 00 00+level_03: .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 44h, 44h 7F3D 00 00 00 00+ .db 44h, 44h, 44h, 0, 0, 70h, 0, 0, 0, 0, 0, 6, 50h, 70h, 0, 0 7F3D 00 00 00 00+ .db 5, 22h, 22h, 22h, 22h, 22h, 50h, 0, 0, 6, 22h, 22h, 25h, 0, 5, 0 7F3D 00 06 44 44+ .db 0, 0, 0, 0, 53h, 33h, 33h, 33h, 0, 0, 5, 8, 5, 0, 0, 7 7F3D 44 44 44 00+ .db 0, 0, 50h, 0, 0, 0, 0, 0, 5, 22h, 22h, 22h, 52h, 22h, 22h, 52h 7F3D 00 70 00 00+ .db 20h, 0, 0, 0, 0, 70h, 5, 0, 0, 0, 50h, 0, 0, 50h, 4, 40h 7F3D 00 00 00 06+ .db 0, 0, 22h, 22h, 52h, 0, 0, 0, 50h, 8, 0, 50h, 0, 4, 40h, 0 7F3D 50 70 00 00+ .db 0, 0, 50h, 0, 5, 22h, 22h, 22h, 52h, 20h, 0, 0, 4, 47h, 0, 0 7F3D 05 22 22 22+ .db 54h, 44h, 45h, 0, 0, 0, 50h, 8, 0, 0, 0, 2, 0, 0, 50h, 0 7F3D 22 22 50 00+ .db 0, 0, 52h, 22h, 22h, 22h, 22h, 50h, 0, 0, 0, 0, 50h, 0, 0, 0 7F3D 00 06 22 22+ .db 52h, 22h, 22h, 22h, 22h, 50h, 0, 0, 22h, 25h, 22h, 22h, 22h, 22h, 22h, 0 7F3D 25 00 05 00+ .db 7, 0, 2, 22h, 22h, 52h, 22h, 25h, 22h, 22h, 22h, 22h, 22h, 5, 22h, 25h 7F3D 00 00 00 00+ .db 2, 22h, 22h, 52h, 0, 5, 0, 0, 0, 90h, 0, 5, 22h, 25h, 0, 7 7F3D 53 33 33 33+ .db 0, 50h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h 801D 60 00 00 00+level_04: .db 60h, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64h, 44h 801D 00 00 00 00+ .db 44h, 44h, 44h, 44h, 0, 0, 0, 0, 0, 0, 0, 0, 50h, 0, 0, 50h 801D 00 00 00 00+ .db 0, 0, 20h, 70h, 20h, 0, 0, 50h, 0, 0, 50h, 70h, 5, 55h, 0, 70h 801D 00 00 64 44+ .db 22h, 22h, 20h, 70h, 5, 55h, 0, 70h, 50h, 55h, 0, 50h, 5, 50h, 0, 0 801D 44 44 44 44+ .db 0, 55h, 0, 50h, 5, 50h, 50h, 50h, 55h, 55h, 50h, 50h, 0, 0, 0, 50h 801D 00 00 00 00+ .db 55h, 55h, 50h, 50h, 50h, 50h, 7, 87h, 0, 50h, 0, 50h, 0, 50h, 7, 87h 801D 00 00 00 00+ .db 0, 50h, 50h, 5, 22h, 22h, 25h, 5, 5, 55h, 5, 5, 22h, 22h, 25h, 0 801D 50 00 00 50+ .db 50h, 0, 55h, 55h, 50h, 50h, 0, 50h, 0, 50h, 55h, 55h, 50h, 0, 50h, 0 801D 00 00 20 70+ .db 0, 0, 0, 50h, 55h, 55h, 50h, 50h, 0, 0, 0, 0, 50h, 0, 7, 0 801D 20 00 00 50+ .db 0, 50h, 7, 87h, 0, 50h, 0, 0, 70h, 0, 52h, 22h, 22h, 25h, 0, 5 801D 00 00 50 70+ .db 22h, 22h, 25h, 0, 52h, 22h, 22h, 22h, 50h, 0, 0, 5, 0, 0, 55h, 55h 801D 05 55 00 70+ .db 50h, 0, 50h, 0, 0, 0, 50h, 0, 0, 5, 0, 0, 0, 0, 0, 0 801D 22 22 20 70+ .db 50h, 0, 0, 0, 50h, 0, 0, 5, 0, 0, 0, 7, 0, 90h, 50h, 0 801D 05 55 00 70+ .db 0, 0, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h 80FD 22 22 22 22+level_05: .db 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 62h, 22h, 22h, 22h, 22h, 20h, 70h 80FD 22 22 22 22+ .db 0, 0, 0, 0, 0, 0, 0, 62h, 8, 7, 0, 2, 21h, 22h, 25h, 22h 80FD 22 62 22 22+ .db 22h, 50h, 0, 70h, 0, 62h, 22h, 22h, 22h, 52h, 21h, 22h, 25h, 22h, 22h, 22h 80FD 22 22 20 70+ .db 22h, 22h, 22h, 22h, 2, 22h, 0, 52h, 20h, 0, 5, 0, 70h, 80h, 0, 0 80FD 00 00 00 00+ .db 22h, 22h, 2, 22h, 0, 52h, 25h, 22h, 22h, 22h, 22h, 25h, 22h, 22h, 22h, 22h 80FD 00 00 00 62+ .db 2, 22h, 0, 52h, 25h, 0, 2, 22h, 22h, 25h, 22h, 22h, 27h, 72h, 2, 22h 80FD 08 07 00 02+ .db 70h, 52h, 25h, 0, 2, 22h, 22h, 25h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 52h 80FD 21 22 25 22+ .db 25h, 0, 2, 0, 0, 75h, 0, 0, 70h, 8, 0, 7, 2, 52h, 25h, 0 80FD 22 50 00 70+ .db 2, 22h, 52h, 22h, 22h, 22h, 52h, 22h, 22h, 22h, 52h, 52h, 25h, 0, 72h, 22h 80FD 00 62 22 22+ .db 50h, 0, 0, 0, 52h, 22h, 22h, 22h, 52h, 52h, 25h, 22h, 12h, 0, 50h, 0 80FD 22 52 21 22+ .db 9, 0, 50h, 2, 20h, 0, 52h, 52h, 25h, 22h, 12h, 52h, 22h, 22h, 52h, 22h 80FD 25 22 22 22+ .db 22h, 22h, 27h, 70h, 52h, 52h, 25h, 22h, 12h, 52h, 22h, 22h, 52h, 22h, 22h, 27h 80FD 22 22 22 22+ .db 22h, 22h, 22h, 52h, 25h, 80h, 0, 52h, 27h, 22h, 50h, 0, 7, 0, 80h, 0 80FD 02 22 00 52+ .db 0, 52h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h 81DD 00 00 00 00+level_06: .db 0, 0, 0, 0, 0, 6, 0, 0, 60h, 0, 0, 0, 0, 0, 0, 0 81DD 00 06 00 00+ .db 0, 0, 0, 6, 0, 0, 60h, 0, 0, 0, 0, 0, 0, 7, 0, 0 81DD 60 00 00 00+ .db 5, 26h, 0, 0, 62h, 50h, 0, 80h, 70h, 0, 52h, 22h, 22h, 54h, 45h, 26h 81DD 00 00 00 00+ .db 0, 0, 62h, 54h, 45h, 22h, 22h, 25h, 52h, 0, 2, 50h, 0, 26h, 0, 0 81DD 00 00 00 06+ .db 62h, 0, 5, 20h, 0, 25h, 52h, 0, 2, 50h, 0, 26h, 0, 0, 62h, 0 81DD 00 00 60 00+ .db 5, 20h, 0, 25h, 52h, 7, 2, 50h, 0, 26h, 0, 0, 62h, 0, 5, 20h 81DD 00 00 00 00+ .db 70h, 25h, 52h, 22h, 22h, 50h, 0, 26h, 0, 0, 62h, 0, 5, 22h, 22h, 25h 81DD 00 07 00 00+ .db 52h, 0, 2, 50h, 0, 26h, 0, 0, 62h, 0, 5, 20h, 0, 25h, 52h, 0 81DD 05 26 00 00+ .db 2, 54h, 44h, 25h, 22h, 22h, 52h, 44h, 45h, 20h, 0, 25h, 52h, 0, 2, 0 81DD 62 50 00 80+ .db 5, 25h, 0, 0, 52h, 50h, 0, 20h, 0, 25h, 52h, 87h, 2, 0, 5, 25h 81DD 70 00 52 22+ .db 0, 78h, 52h, 50h, 0, 20h, 78h, 25h, 52h, 21h, 22h, 0, 5, 23h, 33h, 33h 81DD 22 54 45 26+ .db 32h, 50h, 0, 22h, 12h, 25h, 50h, 0, 0, 10h, 5, 0, 0, 0, 0, 50h 81DD 00 00 62 54+ .db 1, 0, 0, 5, 50h, 0, 0, 1, 85h, 0, 0, 90h, 0, 50h, 10h, 0 81DD 45 22 22 25+ .db 0, 5, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h 82BD 60 00 00 00+level_07: .db 60h, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64h, 44h 82BD 00 00 00 00+ .db 44h, 44h, 44h, 44h, 44h, 44h, 44h, 44h, 44h, 44h, 44h, 44h, 52h, 8, 0, 2 82BD 00 00 00 00+ .db 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 50h, 22h, 22h, 20h, 0, 0 82BD 00 00 64 44+ .db 0, 0, 0, 0, 0, 22h, 22h, 20h, 50h, 20h, 22h, 20h, 0, 0, 0, 0 82BD 44 44 44 44+ .db 0, 0, 0, 27h, 22h, 20h, 50h, 22h, 22h, 20h, 80h, 0, 8, 0, 0, 0 82BD 44 44 44 44+ .db 80h, 22h, 22h, 20h, 50h, 22h, 20h, 21h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h 82BD 44 44 44 44+ .db 20h, 20h, 50h, 22h, 22h, 21h, 22h, 20h, 72h, 20h, 72h, 22h, 22h, 22h, 25h, 20h 82BD 52 08 00 02+ .db 50h, 22h, 22h, 21h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 25h, 20h, 50h, 22h 82BD 00 00 00 00+ .db 22h, 21h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 25h, 20h, 50h, 22h, 22h, 21h 82BD 00 00 02 00+ .db 22h, 22h, 0, 0, 22h, 22h, 22h, 22h, 25h, 20h, 50h, 22h, 22h, 21h, 22h, 22h 82BD 00 02 50 22+ .db 0, 0, 22h, 22h, 22h, 22h, 25h, 20h, 50h, 22h, 22h, 21h, 22h, 22h, 0, 7 82BD 22 20 00 00+ .db 52h, 22h, 22h, 22h, 25h, 20h, 50h, 0, 0, 0, 0, 0, 22h, 22h, 54h, 44h 82BD 00 00 00 00+ .db 44h, 44h, 45h, 0, 50h, 0, 0, 0, 0, 3, 33h, 30h, 0, 0, 0, 0 82BD 00 22 22 20+ .db 0, 0, 50h, 0, 0, 9, 0, 33h, 33h, 0, 0, 0, 80h, 0, 0, 0 839D 00 06 00 00+level_08: .db 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6 839D 00 00 00 00+ .db 0, 0, 0, 70h, 0, 0, 0, 0, 70h, 0, 0, 7, 51h, 25h, 0, 0 839D 00 00 00 00+ .db 52h, 22h, 50h, 0, 0, 52h, 22h, 52h, 0, 25h, 50h, 2, 22h, 22h, 20h, 0 839D 00 00 00 06+ .db 52h, 22h, 22h, 50h, 0, 50h, 7, 5, 57h, 8, 0, 0, 0, 0, 50h, 0 839D 00 00 00 70+ .db 0, 50h, 0, 22h, 22h, 5, 51h, 22h, 22h, 0, 0, 0, 0, 2, 22h, 52h 839D 00 00 00 00+ .db 0, 0, 0, 5, 50h, 32h, 22h, 20h, 0, 0, 0, 22h, 0, 0, 0, 0 839D 70 00 00 07+ .db 52h, 5, 50h, 32h, 22h, 22h, 0, 0, 2, 20h, 0, 0, 0, 52h, 50h, 5 839D 51 25 00 00+ .db 50h, 32h, 22h, 22h, 22h, 22h, 22h, 0, 0, 70h, 0, 50h, 0, 22h, 50h, 32h 839D 52 22 50 00+ .db 22h, 22h, 22h, 22h, 22h, 0, 2, 22h, 0, 50h, 0, 0, 50h, 30h, 0, 2 839D 00 52 22 52+ .db 22h, 2, 22h, 0, 0, 0, 0, 50h, 0, 87h, 50h, 30h, 7, 2, 20h, 70h 839D 00 25 50 02+ .db 22h, 0, 0, 8, 0, 50h, 0, 22h, 50h, 35h, 22h, 22h, 22h, 22h, 22h, 25h 839D 22 22 20 00+ .db 22h, 22h, 22h, 50h, 0, 22h, 50h, 5, 0, 0, 0, 0, 0, 5, 0, 0 839D 52 22 22 50+ .db 0, 50h, 0, 22h, 50h, 5, 0, 0, 0, 9, 0, 0, 0, 0, 0, 50h 839D 00 50 07 05+ .db 0, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h 847D 00 00 00 00+level_09: .db 0, 0, 0, 0, 0, 0, 52h, 25h, 0, 0, 0, 0, 0, 0, 0, 0 847D 00 00 52 25+ .db 0, 0, 0, 87h, 52h, 25h, 78h, 0, 0, 0, 0, 0, 0, 0, 0, 0 847D 00 00 00 00+ .db 0, 52h, 22h, 22h, 25h, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 52h 847D 00 00 00 00+ .db 22h, 22h, 25h, 70h, 0, 0, 0, 0, 0, 0, 0, 0, 52h, 22h, 22h, 22h 847D 00 00 00 87+ .db 22h, 25h, 0, 0, 0, 0, 0, 0, 0, 87h, 52h, 22h, 22h, 22h, 22h, 25h 847D 52 25 78 00+ .db 78h, 0, 0, 0, 0, 0, 0, 52h, 22h, 22h, 22h, 22h, 22h, 22h, 25h, 0 847D 00 00 00 00+ .db 0, 0, 0, 0, 7, 50h, 0, 77h, 77h, 77h, 77h, 0, 5, 70h, 0, 0 847D 00 00 00 00+ .db 0, 0, 52h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 25h, 0, 0, 0, 7 847D 00 52 22 22+ .db 52h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 25h, 70h, 0, 0, 52h, 22h, 22h 847D 25 00 00 00+ .db 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 25h, 0, 0, 52h, 22h, 22h, 22h, 22h 847D 00 00 00 00+ .db 22h, 22h, 22h, 22h, 22h, 22h, 25h, 0, 0, 50h, 0, 0, 0, 0, 0, 0 847D 00 00 07 52+ .db 0, 0, 0, 0, 5, 0, 0, 50h, 0, 0, 0, 0, 0, 0, 0, 0 847D 22 22 25 70+ .db 0, 0, 5, 0, 0, 50h, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0 847D 00 00 00 00+ .db 5, 0, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h 855D 22 22 22 22+level_10: .db 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 33h, 32h, 22h, 22h, 22h, 52h, 24h, 44h 855D 22 22 22 22+ .db 44h, 45h, 24h, 45h, 55h, 55h, 34h, 35h, 55h, 55h, 27h, 52h, 21h, 11h, 12h, 25h 855D 33 32 22 22+ .db 22h, 25h, 33h, 35h, 37h, 35h, 22h, 25h, 22h, 52h, 26h, 66h, 62h, 25h, 53h, 55h 855D 22 52 24 44+ .db 34h, 35h, 55h, 55h, 77h, 25h, 72h, 52h, 22h, 22h, 25h, 25h, 33h, 35h, 37h, 33h 855D 44 45 24 45+ .db 37h, 32h, 22h, 25h, 22h, 52h, 26h, 66h, 25h, 25h, 34h, 35h, 55h, 35h, 37h, 32h 855D 55 55 34 35+ .db 77h, 75h, 55h, 52h, 22h, 22h, 25h, 55h, 37h, 33h, 37h, 35h, 37h, 32h, 22h, 22h 855D 55 55 27 52+ .db 23h, 52h, 20h, 0, 5, 35h, 55h, 35h, 37h, 35h, 37h, 30h, 0, 0, 3, 52h 855D 21 11 12 25+ .db 22h, 22h, 25h, 53h, 37h, 35h, 37h, 35h, 37h, 32h, 22h, 22h, 23h, 52h, 20h, 0 855D 22 25 33 35+ .db 0, 55h, 37h, 35h, 37h, 35h, 37h, 30h, 0, 0, 3, 52h, 22h, 22h, 22h, 25h 855D 37 35 22 25+ .db 37h, 35h, 37h, 35h, 37h, 32h, 22h, 22h, 23h, 52h, 20h, 0, 8, 95h, 37h, 35h 855D 22 52 26 66+ .db 37h, 35h, 0, 0, 0, 0, 3, 52h, 20h, 0, 0, 15h, 37h, 35h, 0, 5 855D 62 25 53 55+ .db 20h, 22h, 52h, 22h, 22h, 52h, 25h, 22h, 22h, 25h, 0, 5, 20h, 25h, 12h, 12h 855D 34 35 55 55+ .db 20h, 0, 0, 52h, 25h, 0, 0, 5, 20h, 25h, 12h, 15h, 0, 0, 0, 0 855D 77 25 72 52+ .db 0, 52h, 25h, 0, 22h, 25h, 12h, 15h, 0, 5, 22h, 22h, 22h, 22h, 22h, 52h 863D 00 03 33 33+levels_11_to_20:.db 0, 3, 33h, 33h, 33h, 33h, 0, 0, 0, 0, 0, 6, 0, 0, 0, 30h 863D 33 33 00 00+ .db 0, 0, 0, 0, 30h, 0, 0, 0, 0, 6, 3, 30h, 3, 0, 7, 70h 863D 00 00 00 06+ .db 80h, 0, 2, 50h, 0, 0, 0, 6, 3, 30h, 33h, 22h, 52h, 22h, 22h, 22h 863D 00 00 00 30+ .db 23h, 35h, 0, 0, 80h, 6, 73h, 30h, 32h, 22h, 52h, 22h, 22h, 22h, 22h, 22h 863D 00 00 00 00+ .db 52h, 23h, 33h, 25h, 33h, 33h, 32h, 25h, 55h, 20h, 0, 0, 0, 25h, 55h, 24h 863D 30 00 00 00+ .db 44h, 45h, 44h, 45h, 32h, 25h, 5, 20h, 7, 0, 0, 25h, 5, 20h, 70h, 0 863D 00 06 03 30+ .db 7, 5, 32h, 25h, 5, 20h, 9, 0, 0, 25h, 5, 20h, 0, 0, 0, 5 863D 03 00 07 70+ .db 32h, 25h, 75h, 22h, 22h, 52h, 22h, 25h, 75h, 23h, 0, 0, 0, 35h, 32h, 22h 863D 80 00 02 50+ .db 22h, 22h, 22h, 52h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 25h, 30h, 0, 0, 2 863D 00 00 00 06+ .db 25h, 55h, 22h, 0, 70h, 0, 7, 0, 7, 5, 34h, 44h, 44h, 42h, 55h, 5 863D 03 30 33 22+ .db 54h, 44h, 44h, 44h, 44h, 44h, 44h, 45h, 30h, 70h, 0, 2, 50h, 0, 50h, 0 863D 52 22 22 22+ .db 0, 0, 0, 0, 8, 5, 30h, 0, 0, 0, 50h, 0, 50h, 2, 22h, 22h 863D 23 35 00 00+ .db 22h, 22h, 22h, 5, 33h, 33h, 0, 0, 50h, 0, 50h, 22h, 20h, 72h, 20h, 7 863D 80 06 73 30+ .db 2, 25h, 32h, 22h, 22h, 23h, 57h, 7, 50h, 2, 22h, 22h, 22h, 22h, 22h, 22h 863D 32 22 52 22+ .db 0, 0, 0, 0, 0, 0, 0, 0, 60h, 0, 0, 0, 0, 0, 0, 0 863D 22 22 22 22+ .db 0, 0, 0, 0, 0, 6, 60h, 0, 0, 0, 0, 0, 0, 0, 0, 0 863D 52 23 33 25+ .db 0, 0, 0, 66h, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 863D 33 33 32 25+ .db 6, 60h, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66h, 0 863D 55 20 00 00+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60h, 0, 0, 0 863D 00 25 55 24+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 52h, 25h, 0, 0, 0, 0, 0 863D 44 45 44 45+ .db 0, 0, 0, 0, 0, 0, 0, 52h, 25h, 70h, 0, 0, 0, 0, 0, 0 863D 32 25 05 20+ .db 0, 0, 0, 5, 22h, 22h, 22h, 25h, 0, 80h, 0, 0, 0, 0, 2, 50h 863D 07 00 00 25+ .db 8, 5, 20h, 70h, 70h, 25h, 2, 52h, 50h, 0, 0, 0, 0, 22h, 25h, 22h 863D 05 20 70 00+ .db 22h, 22h, 22h, 22h, 22h, 52h, 22h, 50h, 0, 0, 0, 2, 20h, 70h, 2, 22h 863D 07 05 32 25+ .db 20h, 70h, 0, 57h, 0, 22h, 50h, 0, 0, 0, 22h, 22h, 50h, 7, 2, 22h 863D 05 20 09 00+ .db 50h, 52h, 25h, 2, 50h, 0, 0, 0, 2, 72h, 52h, 22h, 50h, 70h, 50h, 57h 863D 00 25 05 20+ .db 25h, 72h, 50h, 0, 0, 80h, 0, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h 863D 00 00 00 05+ .db 50h, 90h, 33h, 33h, 33h, 33h, 33h, 33h, 33h, 33h, 33h, 33h, 33h, 33h, 33h, 33h 863D 32 25 75 22+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60h, 0, 0 863D 22 52 22 25+ .db 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60h, 52h, 22h, 22h, 22h 863D 75 23 00 00+ .db 22h, 25h, 0, 80h, 7, 0, 0, 7, 0, 60h, 50h, 0, 0, 0, 0, 5 863D 00 35 32 22+ .db 22h, 22h, 25h, 0, 2, 22h, 52h, 22h, 50h, 70h, 0, 0, 7, 5, 0, 0 863D 22 22 22 52+ .db 5, 0, 0, 0, 50h, 0, 50h, 20h, 2, 22h, 2, 5, 7, 70h, 5, 0 863D 22 22 22 22+ .db 0, 80h, 50h, 0, 50h, 20h, 22h, 20h, 2, 5, 3, 30h, 32h, 22h, 22h, 22h 863D 22 22 22 25+ .db 22h, 33h, 50h, 20h, 2, 22h, 2, 5, 3, 30h, 0, 0, 0, 0, 0, 37h 863D 30 00 00 02+ .db 50h, 20h, 22h, 20h, 2, 5, 3, 44h, 44h, 44h, 40h, 7, 0, 35h, 50h, 27h 863D 25 55 22 00+ .db 2, 22h, 2, 5, 3, 70h, 0, 0, 2, 22h, 25h, 35h, 50h, 22h, 22h, 20h 863D 70 00 07 00+ .db 2, 5, 3, 30h, 0, 0, 0, 0, 5, 5, 50h, 22h, 22h, 22h, 22h, 5 863D 07 05 34 44+ .db 3, 30h, 0, 7, 0, 0, 5, 22h, 50h, 0, 0, 0, 0, 5, 3, 30h 863D 44 42 55 05+ .db 22h, 22h, 22h, 0, 5, 0, 53h, 33h, 33h, 33h, 32h, 33h, 33h, 30h, 0, 0 863D 54 44 44 44+ .db 0, 0, 5, 0, 50h, 0, 0, 0, 0, 0, 0, 90h, 0, 0, 0, 0 863D 44 44 44 45+ .db 5, 0, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h 863D 30 70 00 02+ .db 60h, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 60h, 0 863D 50 00 50 00+ .db 0, 9, 0, 0, 0, 0, 0, 0, 80h, 0, 0, 6, 60h, 0, 32h, 52h 863D 00 00 00 00+ .db 34h, 44h, 44h, 44h, 44h, 43h, 25h, 23h, 0, 6, 60h, 0, 30h, 50h, 30h, 70h 863D 08 05 30 00+ .db 0, 0, 7, 3, 5, 3, 0, 6, 60h, 32h, 27h, 50h, 22h, 30h, 0, 0 863D 00 00 50 00+ .db 3, 22h, 5, 72h, 23h, 6, 66h, 37h, 0, 50h, 7, 30h, 70h, 0, 73h, 70h 863D 50 02 22 22+ .db 5, 2, 73h, 66h, 36h, 22h, 20h, 50h, 0, 22h, 30h, 3, 22h, 22h, 25h, 2 863D 22 22 22 05+ .db 0, 63h, 30h, 0, 0, 50h, 0, 0, 30h, 73h, 70h, 0, 5, 2, 0, 73h 863D 33 33 00 00+ .db 30h, 0, 0, 52h, 22h, 22h, 35h, 23h, 22h, 0, 5, 2, 20h, 23h, 30h, 70h 863D 50 00 50 22+ .db 80h, 50h, 0, 80h, 5, 0, 0, 0, 5, 0, 0, 3, 35h, 22h, 22h, 50h 863D 20 72 20 07+ .db 0, 32h, 25h, 22h, 23h, 0, 5, 0, 2, 53h, 5, 30h, 70h, 50h, 0, 20h 863D 02 25 32 22+ .db 5, 7, 2, 0, 5, 0, 83h, 50h, 5, 32h, 20h, 50h, 22h, 30h, 5, 0 863D 22 23 57 07+ .db 2, 22h, 5, 2, 23h, 50h, 5, 7, 30h, 50h, 30h, 0, 5, 0, 0, 73h 863D 50 02 22 22+ .db 5, 3, 70h, 50h, 5, 0, 2, 22h, 0, 0, 5, 0, 0, 0, 22h, 20h 863D 22 22 22 22+ .db 0, 50h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h 863D 00 00 00 00+ .db 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 44h, 44h 863D 00 00 00 00+ .db 44h, 44h, 44h, 40h, 6, 0, 0, 0, 0, 0, 0, 0, 0, 70h, 0, 7 863D 60 00 00 00+ .db 3, 50h, 6, 7, 0, 0, 0, 0, 0, 0, 22h, 22h, 22h, 22h, 23h, 33h 863D 00 00 00 00+ .db 33h, 33h, 50h, 7, 53h, 50h, 0, 0, 23h, 23h, 23h, 23h, 33h, 33h, 0, 3 863D 00 00 00 00+ .db 33h, 33h, 33h, 50h, 0, 5, 0, 0, 0, 0, 0, 33h, 0, 70h, 0, 0 863D 00 06 60 00+ .db 3, 50h, 87h, 5, 44h, 44h, 44h, 44h, 50h, 33h, 22h, 22h, 25h, 0, 3, 32h 863D 00 00 00 00+ .db 22h, 25h, 0, 0, 0, 0, 50h, 33h, 0, 0, 5, 80h, 0, 2, 22h, 25h 863D 00 00 00 00+ .db 0, 0, 0, 0, 50h, 33h, 2, 22h, 22h, 22h, 25h, 2, 22h, 25h, 7, 0 863D 00 00 00 66+ .db 0, 70h, 50h, 33h, 2, 0, 0, 0, 25h, 2, 22h, 25h, 22h, 28h, 0, 20h 863D 00 00 00 00+ .db 50h, 33h, 2, 0, 7, 0, 25h, 2, 27h, 25h, 22h, 22h, 22h, 20h, 50h, 33h 863D 00 00 00 00+ .db 2, 22h, 22h, 22h, 25h, 2, 20h, 25h, 0, 0, 0, 0, 50h, 0, 2, 0 863D 00 00 00 00+ .db 70h, 0, 25h, 0, 0, 25h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 5, 22h, 50h 863D 06 60 00 00+ .db 22h, 22h, 22h, 25h, 0, 0, 0, 0, 0, 90h, 0, 5, 7, 50h, 0, 0 863D 00 00 00 00+ .db 0, 5, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h 863D 00 00 00 00+ .db 0, 8, 4, 40h, 40h, 0, 0, 0, 0, 0, 0, 80h, 0, 0, 2, 22h 863D 00 00 66 00+ .db 20h, 5, 0, 4, 0, 0, 0, 0, 2, 25h, 0, 0, 2, 22h, 20h, 5 863D 00 00 00 00+ .db 2, 20h, 40h, 0, 8, 0, 42h, 25h, 0, 0, 2, 77h, 20h, 5, 2, 24h 863D 00 00 00 00+ .db 2, 22h, 22h, 22h, 0, 45h, 0, 0, 2, 22h, 20h, 5, 0, 0, 2, 22h 863D 00 00 00 00+ .db 22h, 22h, 5, 5, 22h, 20h, 0, 0, 0, 5, 44h, 40h, 2, 22h, 22h, 22h 863D 60 00 00 00+ .db 5, 0, 27h, 20h, 0, 0, 4, 0, 0, 5, 2, 22h, 22h, 22h, 5, 0 863D 00 00 00 00+ .db 22h, 20h, 0, 0, 0, 22h, 22h, 5, 2, 27h, 77h, 22h, 5, 0, 0, 0 863D 00 00 00 00+ .db 0, 0, 40h, 22h, 22h, 5, 2, 22h, 22h, 22h, 5, 0, 0, 0, 2, 22h 863D 00 52 25 00+ .db 40h, 27h, 72h, 5, 40h, 0, 0, 40h, 45h, 0, 0, 0, 2, 72h, 0, 22h 863D 00 00 00 00+ .db 22h, 5, 4, 0, 4, 5, 0, 22h, 22h, 0, 2, 22h, 0, 0, 0, 5 863D 00 00 00 00+ .db 0, 9, 0, 5, 0, 22h, 22h, 0, 0, 0, 0, 0, 0, 5, 0, 22h 863D 00 00 00 52+ .db 20h, 5, 0, 27h, 72h, 0, 0, 0, 22h, 0, 0, 5, 0, 27h, 20h, 5 863D 25 70 00 00+ .db 0, 22h, 22h, 0, 0, 0, 22h, 0, 0, 5, 0, 21h, 20h, 5, 0, 0 863D 00 00 00 00+ .db 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0 863D 00 00 00 05+ .db 30h, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 30h, 0 863D 22 22 22 25+ .db 0, 77h, 77h, 80h, 80h, 80h, 0, 0, 9, 0, 0, 6, 32h, 22h, 22h, 22h 863D 00 80 00 00+ .db 22h, 21h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 25h, 0, 0, 0, 0, 0, 0 863D 00 00 02 50+ .db 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 30h, 70h, 7, 0, 0, 0 863D 08 05 20 70+ .db 7, 0, 0, 0, 73h, 5, 0, 0, 32h, 22h, 22h, 22h, 12h, 22h, 22h, 22h 863D 70 25 02 52+ .db 12h, 22h, 23h, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 863D 50 00 00 00+ .db 0, 5, 0, 0, 0, 30h, 7, 0, 0, 70h, 0, 0, 70h, 3, 0, 5 863D 00 22 25 22+ .db 0, 0, 0, 32h, 22h, 12h, 22h, 22h, 21h, 22h, 22h, 23h, 0, 5, 0, 0 863D 22 22 22 22+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 3 863D 22 52 22 50+ .db 0, 70h, 0, 0, 70h, 0, 7, 30h, 0, 5, 0, 0, 0, 33h, 22h, 22h 863D 00 00 00 02+ .db 22h, 22h, 22h, 22h, 22h, 30h, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0 863D 20 70 02 22+ .db 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 863D 20 70 00 57+ .db 0, 0, 0, 5, 77h, 77h, 0, 8, 0, 0, 0, 0, 8, 0, 0, 0 863D 00 22 50 00+ .db 53h, 5, 22h, 22h, 22h, 22h, 22h, 33h, 33h, 33h, 22h, 22h, 22h, 23h, 33h, 5 863D 00 00 22 22+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22h, 26h 863D 50 07 02 22+ .db 22h, 22h, 0, 0, 0, 0, 4, 44h, 44h, 40h, 80h, 0, 0, 6, 4, 40h 863D 50 52 25 02+ .db 8, 0, 0, 0, 0, 0, 0, 33h, 33h, 35h, 0, 5, 20h, 2, 22h, 22h 863D 50 00 00 00+ .db 52h, 22h, 22h, 24h, 44h, 0, 2, 5, 52h, 22h, 20h, 2, 74h, 44h, 54h, 44h 863D 02 72 52 22+ .db 44h, 20h, 0, 22h, 22h, 52h, 50h, 0, 0, 2, 22h, 20h, 0, 22h, 25h, 20h 863D 50 70 50 57+ .db 0, 27h, 0, 50h, 50h, 0, 0, 2, 44h, 44h, 54h, 44h, 45h, 20h, 0, 24h 863D 25 72 50 00+ .db 0, 50h, 50h, 92h, 0, 2, 57h, 27h, 57h, 25h, 75h, 20h, 0, 20h, 0, 57h 863D 00 80 00 22+ .db 25h, 22h, 0, 2, 22h, 22h, 22h, 22h, 22h, 20h, 0, 22h, 52h, 22h, 5, 0 863D 22 22 22 22+ .db 0, 72h, 0, 0, 7, 0, 0, 20h, 0, 0, 50h, 0, 5, 0, 0, 22h 863D 22 22 22 22+ .db 0, 2, 22h, 50h, 0, 20h, 0, 0, 50h, 0, 5, 0, 72h, 2, 0, 0 863D 50 90 33 33+ .db 0, 50h, 0, 27h, 0, 52h, 22h, 22h, 5, 0, 20h, 2, 0, 7, 0, 50h 863D 33 33 33 33+ .db 0, 22h, 0, 50h, 0, 0, 5, 72h, 0, 2, 5, 22h, 22h, 22h, 50h, 20h 863D 33 33 33 33+ .db 27h, 50h, 0, 0, 5, 20h, 7, 2, 5, 20h, 7, 2, 50h, 0, 2, 50h 863D 33 33 33 33+ .db 0, 0, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h 863D 00 00 00 00+ .db 4, 44h, 44h, 44h, 47h, 72h, 22h, 22h, 27h, 74h, 44h, 44h, 44h, 40h, 50h, 0 863D 00 00 00 00+ .db 0, 0, 72h, 22h, 55h, 55h, 22h, 27h, 0, 0, 0, 5, 50h, 0, 0, 7 863D 00 00 00 00+ .db 22h, 55h, 58h, 85h, 55h, 22h, 70h, 0, 0, 5, 50h, 0, 0, 2, 25h, 50h 863D 00 60 00 00+ .db 0, 0, 5, 52h, 20h, 0, 0, 5, 50h, 0, 0, 72h, 55h, 0, 0, 0 863D 08 00 00 00+ .db 0, 55h, 27h, 0, 0, 5, 50h, 0, 0, 22h, 57h, 0, 0, 0, 0, 75h 863D 00 00 00 00+ .db 22h, 0, 0, 5, 50h, 0, 0, 25h, 57h, 0, 0, 0, 0, 75h, 52h, 0 863D 00 00 00 60+ .db 0, 5, 50h, 0, 0, 25h, 77h, 0, 0, 0, 0, 77h, 52h, 0, 0, 5 863D 52 22 22 22+ .db 50h, 0, 0, 25h, 57h, 0, 0, 0, 0, 75h, 52h, 0, 0, 5, 50h, 0 863D 22 25 00 80+ .db 0, 22h, 57h, 0, 0, 0, 0, 75h, 22h, 0, 0, 5, 50h, 0, 0, 2 863D 07 00 00 07+ .db 55h, 70h, 0, 0, 7, 55h, 20h, 0, 0, 5, 50h, 0, 0, 2, 15h, 57h 863D 00 60 50 00+ .db 70h, 7, 75h, 51h, 20h, 0, 0, 5, 50h, 0, 0, 0, 12h, 55h, 57h, 75h 863D 00 00 00 05+ .db 55h, 21h, 0, 0, 0, 5, 50h, 0, 0, 0, 2, 22h, 55h, 55h, 22h, 20h 863D 22 22 25 00+ .db 0, 0, 0, 5, 59h, 0, 0, 0, 80h, 2, 22h, 22h, 20h, 8, 0, 0 863D 02 22 52 22+ .db 0, 5, 22h, 22h, 22h, 22h, 25h, 0, 0, 0, 0, 52h, 22h, 22h, 22h, 22h 863D 50 70 00 00+ .db 50h, 0, 40h, 0, 0, 0, 0, 0, 0, 0, 0, 5, 44h, 44h, 50h, 0 863D 07 05 00 00+ .db 5, 0, 0, 0, 0, 0, 0, 0, 0, 5, 3, 0, 50h, 0, 5, 0 863D 05 00 00 00+ .db 0, 0, 0, 0, 0, 8, 0, 5, 3, 77h, 50h, 0, 5, 22h, 22h, 0 863D 50 00 50 20+ .db 70h, 7, 52h, 22h, 22h, 12h, 52h, 22h, 50h, 70h, 5, 0, 2, 22h, 22h, 22h 863D 02 22 02 05+ .db 22h, 0, 0, 0, 55h, 21h, 52h, 20h, 5, 0, 0, 0, 0, 0, 0, 0 863D 07 70 05 00+ .db 0, 0, 5, 51h, 50h, 0, 5, 54h, 44h, 44h, 44h, 44h, 44h, 44h, 44h, 44h 863D 00 80 50 00+ .db 44h, 55h, 50h, 0, 0, 50h, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5 863D 50 20 22 20+ .db 50h, 0, 0, 50h, 70h, 0, 0, 0, 80h, 0, 70h, 0, 0, 75h, 50h, 0 863D 02 05 03 30+ .db 0, 22h, 22h, 25h, 33h, 33h, 33h, 33h, 33h, 22h, 12h, 22h, 54h, 44h, 0, 0 863D 32 22 22 22+ .db 0, 5, 0, 0, 0, 0, 0, 44h, 40h, 0, 0, 8, 70h, 0, 0, 5 863D 22 33 50 20+ .db 0, 0, 0, 0, 5, 0, 0, 0, 22h, 22h, 22h, 22h, 25h, 5, 0, 7 863D 02 22 02 05+ .db 0, 0, 5, 40h, 0, 70h, 0, 0, 0, 0, 22h, 22h, 25h, 33h, 35h, 22h 863D 03 30 00 00+ .db 22h, 2, 72h, 22h, 70h, 0, 0, 0, 90h, 0, 5, 0, 5, 0, 8, 2 863D 00 00 00 37+ .db 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 25h, 0, 5, 22h, 22h, 22h, 22h, 22h 8EFD 00 00 44 70+levels_21_to_30:.db 0, 0, 44h, 70h, 44h, 44h, 44h, 44h, 84h, 44h, 44h, 4, 44h, 44h, 0, 5 8EFD 44 44 44 44+ .db 7, 27h, 0, 0, 0, 0, 54h, 2, 4, 50h, 7, 77h, 79h, 50h, 72h, 2 8EFD 84 44 44 04+ .db 70h, 0, 0, 5, 40h, 22h, 20h, 45h, 0, 77h, 22h, 7, 20h, 0, 27h, 0 8EFD 44 44 00 05+ .db 0, 54h, 2, 0, 2, 4, 50h, 7, 8, 1, 0, 20h, 2, 0, 5, 40h 8EFD 07 27 00 00+ .db 22h, 0, 2, 20h, 45h, 8, 52h, 20h, 2, 22h, 0, 33h, 34h, 0, 2, 77h 8EFD 00 00 54 02+ .db 72h, 0, 4, 25h, 50h, 0, 20h, 0, 20h, 0, 70h, 0, 55h, 22h, 20h, 0 8EFD 04 50 07 77+ .db 0, 5, 50h, 4, 2, 22h, 0, 7, 50h, 5, 0, 52h, 0, 0, 0, 5 8EFD 79 50 72 02+ .db 50h, 0, 40h, 20h, 0, 75h, 0, 5, 77h, 50h, 44h, 44h, 44h, 45h, 50h, 0 8EFD 70 00 00 05+ .db 4, 0, 7, 50h, 0, 53h, 33h, 35h, 0, 0, 0, 5, 33h, 35h, 0, 44h 8EFD 40 22 20 45+ .db 45h, 0, 0, 57h, 0, 75h, 4, 44h, 44h, 45h, 0, 5, 0, 0, 0, 0 8EFD 00 77 22 07+ .db 5, 22h, 22h, 22h, 50h, 0, 0, 5, 22h, 25h, 22h, 25h, 0, 0, 5, 70h 8EFD 20 00 27 00+ .db 0, 7, 50h, 44h, 44h, 45h, 0, 0, 0, 5, 0, 0, 53h, 33h, 33h, 33h 8EFD 00 54 02 00+ .db 35h, 0, 0, 5, 0, 0, 0, 5, 0, 80h, 57h, 0, 8, 0, 75h, 4 8EFD 02 04 50 07+ .db 44h, 45h, 22h, 22h, 22h, 22h, 33h, 33h, 32h, 22h, 22h, 22h, 25h, 0, 0, 5 8EFD 08 01 00 20+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60h 8EFD 02 00 05 40+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60h, 0, 52h, 22h, 22h 8EFD 22 00 02 20+ .db 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 50h, 0, 50h, 52h, 20h, 0, 70h 8EFD 45 08 52 20+ .db 0, 70h, 80h, 0, 70h, 22h, 50h, 50h, 0, 52h, 22h, 52h, 22h, 22h, 22h, 22h 8EFD 02 22 00 33+ .db 22h, 22h, 22h, 52h, 22h, 50h, 0, 50h, 50h, 50h, 22h, 20h, 70h, 0, 78h, 22h 8EFD 34 00 02 77+ .db 50h, 50h, 50h, 50h, 0, 22h, 52h, 22h, 50h, 52h, 22h, 22h, 22h, 50h, 52h, 22h 8EFD 72 00 04 25+ .db 52h, 20h, 0, 50h, 50h, 50h, 50h, 50h, 52h, 22h, 50h, 50h, 50h, 50h, 50h, 50h 8EFD 50 00 20 00+ .db 0, 52h, 22h, 52h, 22h, 50h, 50h, 70h, 50h, 52h, 22h, 52h, 22h, 50h, 70h, 50h 8EFD 20 00 70 00+ .db 50h, 50h, 50h, 58h, 53h, 33h, 58h, 50h, 50h, 50h, 50h, 57h, 22h, 22h, 52h, 22h 8EFD 55 22 20 00+ .db 57h, 53h, 53h, 33h, 53h, 57h, 52h, 22h, 52h, 22h, 22h, 50h, 50h, 50h, 53h, 53h 8EFD 00 05 50 04+ .db 53h, 33h, 53h, 53h, 50h, 50h, 50h, 52h, 22h, 52h, 20h, 53h, 53h, 53h, 53h, 33h 8EFD 02 22 00 07+ .db 53h, 53h, 53h, 50h, 52h, 52h, 22h, 50h, 53h, 53h, 53h, 53h, 53h, 33h, 53h, 53h 8EFD 50 05 00 52+ .db 53h, 53h, 50h, 52h, 22h, 53h, 50h, 50h, 50h, 50h, 50h, 9, 50h, 50h, 50h, 50h 8EFD 00 00 00 05+ .db 53h, 52h, 22h, 22h, 22h, 22h, 22h, 22h, 52h, 72h, 52h, 22h, 22h, 22h, 22h, 22h 8EFD 50 00 40 20+ .db 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 26h, 20h, 0 8EFD 00 75 00 05+ .db 55h, 55h, 55h, 55h, 55h, 55h, 55h, 55h, 55h, 50h, 0, 26h, 20h, 90h, 50h, 55h 8EFD 77 50 44 44+ .db 50h, 0, 5, 0, 5, 50h, 0, 50h, 80h, 26h, 22h, 22h, 50h, 55h, 50h, 55h 8EFD 44 45 50 00+ .db 5, 5, 50h, 50h, 55h, 52h, 22h, 26h, 20h, 0, 50h, 55h, 50h, 55h, 5, 5 8EFD 04 00 07 50+ .db 50h, 50h, 0, 50h, 0, 26h, 20h, 80h, 50h, 55h, 50h, 55h, 5, 5, 50h, 50h 8EFD 00 53 33 35+ .db 55h, 50h, 80h, 26h, 22h, 22h, 50h, 0, 50h, 0, 5, 0, 5, 50h, 0, 52h 8EFD 00 00 00 05+ .db 22h, 26h, 55h, 55h, 55h, 55h, 55h, 55h, 55h, 55h, 55h, 55h, 55h, 55h, 55h, 56h 8EFD 33 35 00 44+ .db 50h, 70h, 50h, 70h, 50h, 70h, 5, 0, 70h, 50h, 70h, 50h, 70h, 56h, 55h, 55h 8EFD 45 00 00 57+ .db 55h, 55h, 55h, 55h, 55h, 55h, 55h, 55h, 55h, 55h, 55h, 56h, 50h, 0, 50h, 50h 8EFD 00 75 04 44+ .db 50h, 55h, 5, 5, 50h, 50h, 0, 50h, 0, 56h, 50h, 50h, 50h, 50h, 50h, 5 8EFD 44 45 00 05+ .db 5, 0, 50h, 50h, 55h, 50h, 50h, 56h, 50h, 5, 50h, 50h, 50h, 50h, 5, 5 8EFD 00 00 00 00+ .db 0, 50h, 0, 50h, 5, 56h, 50h, 50h, 50h, 50h, 50h, 55h, 5, 5, 50h, 50h 8EFD 05 22 22 22+ .db 55h, 50h, 50h, 56h, 50h, 50h, 50h, 0, 50h, 55h, 5, 5, 50h, 50h, 0, 50h 8EFD 50 00 00 05+ .db 50h, 56h, 55h, 55h, 55h, 55h, 55h, 55h, 55h, 55h, 55h, 55h, 55h, 55h, 55h, 56h 8EFD 22 25 22 25+ .db 2, 0, 80h, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 20h, 62h, 23h 8EFD 00 00 05 70+ .db 60h, 3, 33h, 33h, 33h, 33h, 33h, 33h, 30h, 6, 32h, 26h, 60h, 0, 36h, 77h 8EFD 00 07 50 44+ .db 77h, 0, 0, 0, 7, 77h, 77h, 63h, 0, 6, 22h, 25h, 33h, 33h, 33h, 36h 8EFD 44 45 00 00+ .db 66h, 66h, 33h, 33h, 33h, 33h, 52h, 22h, 27h, 25h, 40h, 0, 0, 44h, 64h, 64h 8EFD 00 05 00 00+ .db 40h, 0, 0, 44h, 52h, 72h, 22h, 25h, 92h, 22h, 22h, 40h, 20h, 20h, 42h, 22h 8EFD 53 33 33 33+ .db 22h, 80h, 52h, 22h, 22h, 25h, 7, 20h, 72h, 2, 27h, 22h, 2, 70h, 27h, 0 8EFD 35 00 00 05+ .db 52h, 22h, 72h, 25h, 0, 22h, 22h, 2, 22h, 22h, 2, 22h, 20h, 0, 52h, 27h 8EFD 00 00 00 05+ .db 22h, 25h, 0, 22h, 0, 0, 22h, 20h, 0, 2, 20h, 0, 52h, 22h, 22h, 20h 8EFD 00 80 57 00+ .db 50h, 22h, 0, 22h, 22h, 22h, 22h, 2, 20h, 5, 2, 22h, 27h, 25h, 0, 50h 8EFD 08 00 75 04+ .db 0, 20h, 7, 70h, 2, 0, 5, 0, 52h, 72h, 22h, 20h, 55h, 2, 12h, 20h 8EFD 44 45 22 22+ .db 2, 20h, 2, 21h, 20h, 55h, 2, 22h, 0, 0, 0, 52h, 0, 7, 22h, 22h 8EFD 22 22 33 33+ .db 70h, 0, 25h, 0, 0, 0, 22h, 22h, 22h, 50h, 0, 22h, 22h, 22h, 22h, 0 8EFD 32 22 22 22+ .db 5, 22h, 22h, 22h, 20h, 0, 0, 51h, 22h, 22h, 22h, 22h, 22h, 22h, 15h, 0 8EFD 25 00 00 05+ .db 0, 2, 22h, 22h, 22h, 52h, 22h, 22h, 22h, 22h, 22h, 22h, 25h, 22h, 22h, 22h 8EFD 00 00 00 00+ .db 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 22h, 22h 8EFD 00 00 00 00+ .db 50h, 0, 0, 0, 0, 0, 8, 0, 6, 0, 0, 0, 0, 70h, 50h, 0 8EFD 00 00 00 00+ .db 0, 0, 0, 5, 22h, 22h, 22h, 50h, 0, 70h, 22h, 22h, 22h, 22h, 52h, 22h 8EFD 00 00 00 60+ .db 22h, 25h, 0, 0, 2, 22h, 22h, 22h, 0, 0, 0, 0, 50h, 0, 0, 5 8EFD 00 00 00 00+ .db 7, 0, 0, 0, 0, 70h, 0, 0, 7, 0, 50h, 0, 0, 5, 22h, 22h 8EFD 00 00 00 00+ .db 22h, 22h, 22h, 22h, 25h, 22h, 22h, 22h, 50h, 0, 70h, 5, 0, 0, 0, 0 8EFD 00 00 00 60+ .db 0, 0, 5, 0, 7, 0, 53h, 33h, 33h, 35h, 0, 0, 0, 70h, 0, 0 8EFD 00 52 22 22+ .db 25h, 22h, 22h, 22h, 50h, 0, 0, 2, 22h, 22h, 52h, 22h, 22h, 25h, 0, 0 8EFD 22 22 22 22+ .db 0, 0, 50h, 80h, 0, 7, 0, 0, 50h, 0, 0, 5, 7, 0, 0, 0 8EFD 22 22 22 22+ .db 52h, 22h, 52h, 22h, 22h, 22h, 33h, 33h, 33h, 33h, 22h, 25h, 22h, 22h, 20h, 0 8EFD 22 50 00 50+ .db 50h, 7, 0, 0, 0, 70h, 80h, 0, 0, 5, 0, 0, 0, 5, 22h, 22h 8EFD 52 20 00 70+ .db 22h, 22h, 52h, 22h, 22h, 22h, 0, 5, 44h, 44h, 44h, 45h, 0, 0, 0, 0 8EFD 00 70 80 00+ .db 50h, 0, 0, 0, 0, 5, 0, 0, 0, 0, 9, 0, 0, 0, 50h, 0 8EFD 70 22 50 50+ .db 0, 70h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 26h, 22h, 22h 8EFD 00 52 22 52+ .db 0, 0, 0, 0, 0, 0, 70h, 0, 0, 0, 0, 0, 0, 0, 4, 44h 8EFD 22 22 22 22+ .db 44h, 44h, 2, 22h, 25h, 90h, 0, 0, 0, 0, 0, 0, 50h, 0, 0, 0 8EFD 22 22 22 52+ .db 0, 7, 5, 0, 0, 70h, 0, 0, 7, 0, 50h, 0, 0, 0, 5, 33h 8EFD 22 50 00 50+ .db 33h, 2, 22h, 22h, 22h, 52h, 22h, 22h, 50h, 0, 0, 0, 5, 7, 0, 0 8EFD 50 50 22 20+ .db 0, 0, 0, 50h, 0, 0, 52h, 22h, 22h, 25h, 2, 22h, 25h, 0, 0, 0 8EFD 70 00 78 22+ .db 0, 50h, 0, 0, 50h, 0, 0, 5, 0, 7, 5, 85h, 22h, 22h, 22h, 22h 8EFD 50 50 50 50+ .db 22h, 25h, 50h, 0, 0, 5, 5, 33h, 33h, 5, 33h, 33h, 33h, 33h, 33h, 35h 8EFD 00 22 52 22+ .db 50h, 0, 7, 52h, 5, 70h, 0, 5, 30h, 0, 0, 70h, 0, 35h, 50h, 0 8EFD 50 52 22 22+ .db 5, 20h, 2, 22h, 25h, 5, 35h, 33h, 33h, 33h, 35h, 35h, 50h, 7, 52h, 0 8EFD 22 50 52 22+ .db 0, 0, 75h, 5, 35h, 30h, 0, 70h, 5, 35h, 50h, 5, 20h, 0, 5, 33h 8EFD 52 20 00 50+ .db 33h, 5, 35h, 33h, 33h, 33h, 33h, 35h, 50h, 52h, 0, 0, 5, 7, 0, 5 8EFD 50 50 50 50+ .db 35h, 0, 0, 70h, 0, 5, 55h, 20h, 0, 0, 2, 22h, 25h, 5, 33h, 33h 8EFD 52 22 50 50+ .db 33h, 33h, 33h, 33h, 55h, 0, 80h, 0, 0, 0, 6, 5, 0, 0, 8, 0 8EFD 50 50 50 50+ .db 0, 0, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h 8EFD 00 52 22 52+ .db 0, 0, 4, 0, 0, 4, 4, 0, 0, 0, 40h, 7, 0, 70h, 40h, 0 8EFD 22 50 50 70+ .db 40h, 40h, 0, 40h, 50h, 40h, 0, 4, 5, 22h, 22h, 22h, 4, 4, 0, 4 8EFD 50 52 22 52+ .db 4, 0, 50h, 4, 0, 40h, 5, 0, 0, 0, 0, 40h, 0, 0, 40h, 0 8EFD 22 50 70 50+ .db 50h, 0, 44h, 0, 5, 0, 80h, 0, 7, 0, 7, 0, 70h, 0, 50h, 0 8EFD 50 50 50 58+ .db 40h, 0, 5, 33h, 33h, 35h, 33h, 33h, 33h, 31h, 33h, 33h, 33h, 54h, 0, 0 8EFD 53 33 58 50+ .db 5, 30h, 70h, 35h, 0, 0, 0, 0, 0, 0, 0, 30h, 0, 0, 5, 35h 8EFD 50 50 50 57+ .db 37h, 35h, 0, 0, 0, 0, 0, 0, 7, 30h, 9, 7, 5, 35h, 37h, 35h 8EFD 22 22 52 22+ .db 52h, 22h, 22h, 22h, 22h, 25h, 23h, 35h, 22h, 22h, 45h, 35h, 37h, 35h, 50h, 0 8EFD 57 53 53 33+ .db 0, 80h, 0, 5, 22h, 55h, 0, 0, 5, 35h, 37h, 35h, 50h, 0, 2, 20h 8EFD 53 57 52 22+ .db 0, 5, 22h, 50h, 0, 78h, 0, 35h, 37h, 35h, 50h, 22h, 20h, 2, 22h, 5 8EFD 52 22 22 50+ .db 22h, 33h, 22h, 22h, 25h, 35h, 44h, 44h, 50h, 22h, 20h, 2, 22h, 5, 22h, 0 8EFD 50 50 53 53+ .db 0, 0, 5, 0, 0, 0, 50h, 22h, 27h, 72h, 22h, 5, 20h, 0, 0, 44h 8EFD 53 33 53 53+ .db 75h, 2, 22h, 20h, 50h, 70h, 72h, 27h, 7, 5, 22h, 0, 52h, 0, 25h, 22h 8EFD 50 50 50 52+ .db 77h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h 8EFD 22 52 20 53+ .db 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 8EFD 53 53 53 33+ .db 0, 0, 5, 0, 0, 0, 70h, 0, 8, 0, 0, 0, 44h, 44h, 0, 70h 8EFD 53 53 53 50+ .db 6, 0, 0, 3, 33h, 33h, 33h, 33h, 33h, 35h, 50h, 3, 33h, 33h, 33h, 0 8EFD 52 52 22 50+ .db 0, 0, 0, 0, 0, 0, 0, 5, 50h, 0, 0, 0, 0, 44h, 44h, 40h 8EFD 53 53 53 53+ .db 4, 44h, 44h, 5, 33h, 33h, 54h, 44h, 44h, 44h, 44h, 0, 0, 0, 0, 50h 8EFD 53 33 53 53+ .db 0, 5, 0, 0, 0, 0, 80h, 0, 0, 0, 0, 7, 0, 52h, 0, 5 8EFD 53 53 50 52+ .db 0, 0, 53h, 33h, 33h, 33h, 33h, 33h, 33h, 33h, 33h, 32h, 0, 3, 33h, 35h 8EFD 22 53 50 50+ .db 50h, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55h, 50h, 0 8EFD 50 50 50 09+ .db 0, 7, 0, 0, 0, 70h, 0, 0, 80h, 3, 0, 50h, 33h, 33h, 22h, 33h 8EFD 50 50 50 50+ .db 33h, 50h, 23h, 32h, 33h, 33h, 33h, 33h, 0, 50h, 0, 0, 0, 0, 0, 50h 8EFD 53 52 22 22+ .db 0, 0, 0, 0, 0, 0, 0, 50h, 0, 0, 0, 7, 0, 50h, 0, 0 8EFD 22 22 22 22+ .db 7, 0, 0, 0, 0, 50h, 53h, 33h, 33h, 33h, 33h, 30h, 33h, 33h, 33h, 33h 8EFD 52 72 52 22+ .db 0, 0, 0, 50h, 50h, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44h, 44h 8EFD 22 22 22 22+ .db 44h, 50h, 50h, 0, 0, 0, 0, 9, 0, 0, 0, 0, 80h, 0, 0, 0 8EFD 22 22 22 22+ .db 77h, 74h, 44h, 47h, 77h, 7, 77h, 44h, 44h, 44h, 44h, 44h, 47h, 77h, 22h, 20h 8EFD 22 22 22 22+ .db 0, 2, 22h, 52h, 22h, 0, 0, 0, 0, 0, 2, 22h, 22h, 20h, 0, 2 8EFD 22 22 22 22+ .db 22h, 52h, 22h, 0, 0, 0, 0, 0, 2, 22h, 22h, 20h, 0, 2, 22h, 52h 8EFD 22 26 20 00+ .db 22h, 0, 0, 77h, 70h, 0, 2, 22h, 22h, 20h, 0, 2, 22h, 52h, 22h, 0 8EFD 55 55 55 55+ .db 0, 22h, 20h, 0, 2, 22h, 22h, 20h, 0, 2, 22h, 52h, 22h, 0, 0, 22h 8EFD 55 55 55 55+ .db 20h, 0, 2, 22h, 22h, 20h, 0, 2, 22h, 52h, 22h, 0, 0, 22h, 20h, 0 8EFD 55 50 00 26+ .db 2, 22h, 22h, 20h, 0, 2, 22h, 52h, 22h, 0, 0, 22h, 20h, 0, 2, 22h 8EFD 20 90 50 55+ .db 22h, 20h, 0, 2, 22h, 52h, 22h, 0, 0, 22h, 20h, 0, 2, 22h, 22h, 27h 8EFD 50 00 05 00+ .db 44h, 72h, 22h, 52h, 22h, 74h, 47h, 22h, 27h, 44h, 72h, 22h, 22h, 22h, 77h, 22h 8EFD 05 50 00 50+ .db 22h, 52h, 22h, 27h, 72h, 22h, 22h, 77h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 52h 8EFD 80 26 22 22+ .db 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 2, 22h, 22h, 22h, 20h, 50h, 22h, 22h 8EFD 50 55 50 55+ .db 22h, 20h, 22h, 22h, 22h, 20h, 0, 22h, 22h, 22h, 0, 50h, 2, 22h, 22h, 0 8EFD 05 05 50 50+ .db 2, 22h, 22h, 0, 0, 8, 0, 0, 9, 50h, 0, 0, 0, 0, 8, 0 8EFD 55 52 22 26+ .db 0, 0, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h 8EFD 20 00 50 55+ .db 0, 4, 40h, 70h, 0, 0, 0, 0, 47h, 0, 0, 70h, 0, 0, 0, 50h 8EFD 50 55 05 05+ .db 2, 20h, 0, 0, 0, 5, 2, 20h, 0, 22h, 50h, 0, 0, 50h, 0, 0 8EFD 50 50 00 50+ .db 0, 7, 80h, 5, 0, 0, 0, 0, 50h, 7, 7, 54h, 40h, 0, 0, 2 8EFD 00 26 20 80+ .db 20h, 75h, 0, 87h, 0, 0, 55h, 22h, 22h, 50h, 5, 78h, 0, 0, 2, 25h 8EFD 50 55 50 55+ .db 0, 22h, 0, 7, 5, 0, 0, 7, 5, 22h, 0, 0, 0, 5, 0, 0 8EFD 05 05 50 50+ .db 0, 22h, 5, 0, 0, 22h, 5, 40h, 44h, 87h, 44h, 45h, 0, 0, 0, 0 8EFD 55 50 80 26+ .db 5, 0, 0, 70h, 0, 5, 0, 22h, 0, 0, 70h, 0, 74h, 0, 5, 70h 8EFD 22 22 50 00+ .db 2, 20h, 0, 5, 0, 0, 0, 2, 20h, 2, 20h, 57h, 52h, 20h, 0, 0 8EFD 50 00 05 00+ .db 40h, 75h, 0, 70h, 0, 0, 0, 0, 0, 52h, 20h, 0, 0, 5, 2, 25h 8EFD 05 50 00 52+ .db 0, 22h, 0, 7, 0, 0, 0, 50h, 0, 0, 7, 5, 0, 0, 7, 0 8EFD 22 26 55 55+ .db 0, 22h, 7, 0, 0, 57h, 0, 0, 52h, 25h, 0, 0, 22h, 0, 0, 0 8EFD 55 55 55 55+ .db 2, 20h, 0, 52h, 20h, 0, 50h, 0, 0, 0, 0, 0, 0, 0, 0, 0 8EFD 55 55 55 55+ .db 0, 0, 0, 0, 50h, 0, 0, 0, 0, 0, 0, 90h, 0, 0, 0, 0 8EFD 55 55 55 56+ .db 0, 0, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h 97BD 36 00 00 00+levels_31_to_40:.db 36h, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63h, 36h, 0 97BD 00 00 00 00+ .db 87h, 77h, 77h, 77h, 70h, 77h, 77h, 77h, 77h, 78h, 0, 63h, 33h, 33h, 33h, 33h 97BD 00 00 00 00+ .db 33h, 33h, 36h, 33h, 33h, 33h, 33h, 33h, 33h, 33h, 0, 0, 0, 70h, 70h, 0 97BD 00 63 36 00+ .db 6, 0, 0, 7, 0, 70h, 0, 0, 0, 0, 35h, 33h, 33h, 0, 6, 0 97BD 87 77 77 77+ .db 3, 53h, 33h, 33h, 0, 0, 0, 0, 5, 70h, 70h, 0, 6, 0, 0, 57h 97BD 70 77 77 77+ .db 0, 70h, 0, 0, 0, 3, 33h, 33h, 35h, 30h, 6, 0, 33h, 33h, 33h, 35h 97BD 77 78 00 63+ .db 30h, 0, 0, 0, 0, 70h, 75h, 0, 6, 0, 0, 7, 0, 75h, 0, 0 97BD 33 33 33 33+ .db 0, 35h, 33h, 33h, 33h, 33h, 6, 3, 53h, 33h, 33h, 33h, 33h, 0, 0, 5 97BD 33 33 36 33+ .db 0, 70h, 70h, 0, 6, 0, 50h, 7, 0, 70h, 0, 0, 3, 33h, 33h, 33h 97BD 33 33 33 33+ .db 33h, 35h, 36h, 33h, 33h, 33h, 33h, 33h, 35h, 30h, 0, 0, 0, 70h, 7, 5 97BD 33 33 00 00+ .db 6, 0, 0, 70h, 0, 70h, 5, 0, 3, 53h, 33h, 33h, 33h, 33h, 36h, 33h 97BD 00 70 70 00+ .db 33h, 33h, 33h, 33h, 33h, 30h, 0, 50h, 0, 0, 0, 0, 0, 0, 0, 0 97BD 06 00 00 07+ .db 0, 0, 0, 0, 0, 50h, 0, 70h, 7, 0, 0, 0, 90h, 70h, 0, 70h 97BD 00 70 00 00+ .db 0, 8, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h 97BD 00 00 35 33+ .db 60h, 0, 20h, 0, 0, 0, 7, 22h, 70h, 0, 0, 0, 72h, 7, 60h, 25h 97BD 33 00 06 00+ .db 2, 54h, 44h, 44h, 52h, 0, 25h, 44h, 44h, 45h, 20h, 52h, 60h, 20h, 52h, 0 97BD 03 53 33 33+ .db 5, 0, 2, 77h, 20h, 0, 50h, 0, 25h, 2, 62h, 0, 50h, 20h, 5, 0 97BD 00 00 00 00+ .db 20h, 55h, 2, 0, 50h, 2, 5, 20h, 62h, 0, 5, 20h, 5, 0, 20h, 55h 97BD 05 70 70 00+ .db 2, 0, 50h, 2, 50h, 20h, 60h, 7, 5, 28h, 5, 8, 20h, 55h, 2, 80h 97BD 06 00 00 57+ .db 50h, 92h, 50h, 7, 25h, 7, 5, 2, 5, 2, 5, 0, 50h, 20h, 50h, 20h 97BD 00 70 00 00+ .db 50h, 2, 25h, 0, 0, 52h, 5, 2, 5, 0, 50h, 20h, 50h, 25h, 0, 2 97BD 00 03 33 33+ .db 27h, 50h, 0, 52h, 5, 2, 5, 0, 50h, 20h, 50h, 5, 0, 2, 2, 50h 97BD 35 30 06 00+ .db 0, 50h, 25h, 20h, 50h, 0, 5, 2, 52h, 50h, 5, 20h, 2, 75h, 0, 50h 97BD 33 33 33 35+ .db 25h, 20h, 50h, 0, 5, 2, 52h, 50h, 5, 20h, 0, 20h, 0, 52h, 5, 2 97BD 30 00 00 00+ .db 50h, 0, 5, 20h, 50h, 25h, 2, 0, 0, 20h, 0, 52h, 5, 2, 5, 0 97BD 00 70 75 00+ .db 50h, 20h, 50h, 25h, 2, 0, 0, 2, 55h, 20h, 5, 0, 27h, 55h, 72h, 0 97BD 06 00 00 07+ .db 50h, 2, 20h, 0, 70h, 0, 55h, 0, 5, 0, 0, 55h, 0, 0, 50h, 0 97BD 00 75 00 00+ .db 0, 0, 22h, 22h, 55h, 22h, 22h, 22h, 27h, 22h, 72h, 22h, 52h, 22h, 22h, 22h 97BD 00 35 33 33+ .db 22h, 22h, 22h, 25h, 54h, 44h, 44h, 44h, 44h, 45h, 52h, 22h, 22h, 22h, 22h, 22h 97BD 33 33 06 03+ .db 22h, 55h, 0, 4, 0, 0, 40h, 0, 55h, 22h, 22h, 22h, 22h, 22h, 25h, 50h 97BD 53 33 33 33+ .db 0, 0, 28h, 82h, 0, 0, 5, 52h, 22h, 22h, 22h, 22h, 55h, 0, 0, 40h 97BD 33 00 00 05+ .db 22h, 22h, 4, 0, 0, 55h, 22h, 22h, 22h, 25h, 50h, 0, 4, 2, 22h, 22h 97BD 00 70 70 00+ .db 20h, 40h, 0, 5, 52h, 22h, 22h, 55h, 44h, 44h, 40h, 22h, 22h, 22h, 22h, 4 97BD 06 00 50 07+ .db 44h, 44h, 55h, 22h, 25h, 50h, 0, 4, 2, 22h, 27h, 72h, 22h, 20h, 40h, 0 97BD 00 70 00 00+ .db 5, 52h, 55h, 0, 0, 0, 22h, 22h, 22h, 22h, 22h, 22h, 0, 0, 0, 55h 97BD 03 33 33 33+ .db 55h, 0, 0, 4, 2, 22h, 27h, 72h, 22h, 20h, 40h, 0, 0, 55h, 25h, 50h 97BD 33 35 36 33+ .db 0, 0, 40h, 22h, 22h, 22h, 22h, 4, 0, 0, 5, 52h, 22h, 55h, 0, 0 97BD 33 33 33 33+ .db 4, 2, 22h, 22h, 20h, 40h, 0, 0, 55h, 22h, 22h, 25h, 50h, 0, 0, 40h 97BD 35 30 00 00+ .db 22h, 22h, 4, 0, 0, 5, 52h, 22h, 22h, 22h, 55h, 0, 0, 0, 0, 0 97BD 00 70 07 05+ .db 0, 0, 0, 55h, 22h, 22h, 22h, 22h, 25h, 50h, 0, 0, 0, 0, 0, 0 97BD 06 00 00 70+ .db 5, 52h, 22h, 22h, 22h, 22h, 22h, 55h, 80h, 0, 9, 0, 0, 8, 55h, 22h 97BD 00 70 05 00+ .db 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h 97BD 03 53 33 33+ .db 60h, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60h, 0 97BD 33 33 36 33+ .db 2, 0, 8, 2, 0, 0, 0, 8, 0, 8, 0, 0, 64h, 44h, 44h, 47h 97BD 33 33 33 33+ .db 52h, 50h, 22h, 52h, 26h, 62h, 66h, 22h, 50h, 0, 50h, 0, 0, 2, 50h, 25h 97BD 33 30 00 50+ .db 20h, 50h, 7, 20h, 72h, 0, 50h, 0, 50h, 90h, 0, 0, 20h, 2, 5, 20h 97BD 00 00 00 00+ .db 2, 0, 20h, 0, 50h, 0, 22h, 22h, 20h, 0, 2, 20h, 52h, 0, 20h, 2 97BD 00 00 00 00+ .db 0, 0, 50h, 0, 0, 0, 20h, 0, 72h, 5, 20h, 72h, 0, 20h, 44h, 40h 97BD 00 00 00 00+ .db 50h, 0, 0, 2, 0, 0, 20h, 55h, 50h, 20h, 0, 2, 0, 22h, 22h, 25h 97BD 00 50 00 70+ .db 7, 20h, 0, 72h, 0, 25h, 52h, 0, 22h, 0, 10h, 0, 0, 5, 22h, 0 97BD 07 00 00 00+ .db 0, 20h, 72h, 5, 20h, 2, 0, 20h, 2, 0, 0, 5, 20h, 0, 72h, 0 97BD 90 70 00 70+ .db 20h, 52h, 0, 20h, 0, 2, 0, 27h, 0, 5, 0, 0, 20h, 72h, 5, 20h 97BD 00 08 22 22+ .db 72h, 0, 52h, 0, 27h, 2, 0, 5, 0, 72h, 0, 20h, 52h, 0, 20h, 0 97BD 22 22 22 22+ .db 50h, 20h, 2, 0, 20h, 5, 0, 20h, 72h, 5, 20h, 2, 0, 0, 50h, 2 97BD 22 22 22 22+ .db 70h, 20h, 2, 5, 2, 0, 20h, 55h, 0, 0, 7, 0, 50h, 0, 20h, 0 97BD 22 22 22 22+ .db 0, 25h, 0, 0, 0, 52h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 20h, 5 97BD 60 00 20 00+ .db 20h, 33h, 33h, 33h, 33h, 0, 0, 90h, 0, 3, 33h, 33h, 33h, 2, 26h, 8 97BD 00 00 07 22+ .db 7, 77h, 76h, 33h, 33h, 63h, 33h, 36h, 77h, 77h, 0, 62h, 22h, 22h, 22h, 22h 97BD 70 00 00 00+ .db 26h, 66h, 55h, 55h, 56h, 66h, 22h, 22h, 22h, 22h, 0, 0, 0, 0, 0, 20h 97BD 72 07 60 25+ .db 5, 55h, 0, 20h, 44h, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 50h 97BD 02 54 44 44+ .db 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 20h, 0, 0, 50h, 0, 5 97BD 52 00 25 44+ .db 10h, 0, 0, 0, 0, 0, 0, 0, 50h, 0, 0, 50h, 0, 5, 50h, 24h 97BD 44 45 20 52+ .db 40h, 0, 0, 0, 4, 2, 50h, 0, 0, 50h, 0, 5, 2, 0, 74h, 0 97BD 60 20 52 00+ .db 0, 0, 20h, 52h, 50h, 0, 0, 50h, 0, 5, 0, 0, 20h, 0, 0, 2 97BD 05 00 02 77+ .db 72h, 72h, 5, 0, 0, 50h, 0, 5, 0, 72h, 52h, 0, 0, 20h, 55h, 27h 97BD 20 00 50 00+ .db 25h, 0, 52h, 22h, 50h, 5, 27h, 20h, 0, 27h, 2, 0, 4, 72h, 2, 22h 97BD 25 02 62 00+ .db 50h, 20h, 52h, 22h, 2, 0, 0, 1, 0, 50h, 0, 20h, 0, 0, 5, 25h 97BD 50 20 05 00+ .db 0, 0, 0, 27h, 7, 50h, 0, 52h, 72h, 50h, 0, 0, 5, 25h, 0, 0 97BD 20 55 02 00+ .db 0, 2, 72h, 50h, 0, 50h, 20h, 0, 0, 5, 22h, 22h, 25h, 0, 0, 0 97BD 50 02 05 20+ .db 10h, 50h, 22h, 25h, 5, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 25h, 5, 22h 97BD 62 00 05 20+ .db 2, 0, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 20h, 2, 62h, 9 97BD 05 00 20 55+ .db 0, 77h, 77h, 70h, 0, 0, 0, 0, 0, 8, 88h, 2, 62h, 22h, 20h, 22h 97BD 02 00 50 02+ .db 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 60h, 0, 0, 0, 0, 0 97BD 50 20 60 07+ .db 0, 0, 0, 0, 0, 0, 0, 0, 22h, 22h, 50h, 53h, 33h, 23h, 33h, 32h 97BD 05 28 05 08+ .db 33h, 32h, 22h, 25h, 22h, 22h, 70h, 20h, 50h, 53h, 0, 20h, 0, 2, 0, 2 97BD 20 55 02 80+ .db 7, 25h, 20h, 0, 22h, 22h, 50h, 53h, 0, 20h, 0, 2, 70h, 2, 22h, 25h 97BD 50 92 50 07+ .db 2, 70h, 0, 0, 50h, 53h, 0, 22h, 22h, 52h, 32h, 50h, 0, 22h, 52h, 0 97BD 25 07 05 02+ .db 22h, 26h, 50h, 50h, 35h, 20h, 2, 50h, 3, 32h, 50h, 72h, 50h, 25h, 0, 6 97BD 05 02 05 00+ .db 50h, 50h, 35h, 0, 2, 5, 0, 52h, 22h, 22h, 25h, 22h, 22h, 26h, 50h, 50h 97BD 50 20 50 20+ .db 32h, 22h, 52h, 25h, 0, 2, 0, 0, 25h, 2, 75h, 20h, 50h, 53h, 0, 52h 97BD 50 02 25 00+ .db 50h, 22h, 22h, 22h, 25h, 0, 22h, 50h, 0, 20h, 50h, 53h, 7, 2, 57h, 20h 97BD 00 52 05 02+ .db 0, 7, 25h, 70h, 2, 25h, 22h, 22h, 50h, 53h, 33h, 32h, 22h, 70h, 0, 2 97BD 05 00 50 20+ .db 22h, 22h, 22h, 25h, 0, 0, 0, 50h, 0, 0, 2, 22h, 22h, 22h, 0, 0 97BD 50 25 00 02+ .db 0, 5, 22h, 22h, 22h, 22h, 22h, 22h, 50h, 0, 0, 0, 52h, 22h, 22h, 22h 97BD 27 50 00 52+ .db 20h, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26h, 20h, 0 97BD 05 02 05 00+ .db 0, 7, 0, 80h, 0, 44h, 44h, 44h, 44h, 44h, 47h, 26h, 22h, 22h, 22h, 22h 97BD 50 20 50 05+ .db 22h, 22h, 25h, 50h, 0, 8, 7, 0, 52h, 26h, 22h, 22h, 0, 0, 0, 0 97BD 00 02 02 50+ .db 5, 52h, 22h, 22h, 22h, 22h, 22h, 6, 22h, 22h, 20h, 7, 0, 80h, 5, 50h 97BD 00 50 25 20+ .db 0, 0, 0, 2, 20h, 6, 22h, 22h, 22h, 22h, 22h, 22h, 25h, 50h, 7, 0 97BD 50 00 05 02+ .db 0, 22h, 25h, 6, 22h, 22h, 22h, 20h, 0, 0, 5, 52h, 22h, 22h, 22h, 20h 97BD 52 50 05 20+ .db 5, 6, 0, 7, 0, 22h, 0, 70h, 5, 50h, 0, 0, 22h, 21h, 25h, 6 97BD 02 75 00 50+ .db 52h, 22h, 22h, 22h, 22h, 22h, 25h, 50h, 70h, 2, 20h, 0, 5, 6, 52h, 20h 97BD 25 20 50 00+ .db 20h, 22h, 22h, 0, 5, 52h, 22h, 22h, 7, 0, 5, 6, 50h, 5, 25h, 20h 97BD 05 02 52 50+ .db 72h, 20h, 5, 50h, 0, 22h, 22h, 12h, 25h, 6, 33h, 35h, 5, 25h, 22h, 22h 97BD 05 20 00 20+ .db 95h, 50h, 2, 20h, 70h, 0, 5, 6, 33h, 33h, 35h, 5, 20h, 20h, 25h, 52h 97BD 00 52 05 02+ .db 22h, 22h, 21h, 22h, 25h, 6, 33h, 33h, 33h, 35h, 55h, 20h, 25h, 52h, 0, 0 97BD 50 00 05 20+ .db 0, 0, 5, 6, 0, 0, 0, 0, 5, 5, 5, 50h, 0, 0, 0, 0 97BD 50 25 02 00+ .db 5, 6, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h 97BD 00 20 00 52+ .db 90h, 44h, 44h, 40h, 0, 0, 40h, 4, 4, 4, 4, 4, 4, 0, 22h, 70h 97BD 05 02 05 00+ .db 0, 52h, 22h, 22h, 5, 27h, 27h, 57h, 27h, 27h, 20h, 72h, 2, 27h, 0, 50h 97BD 50 20 50 25+ .db 22h, 22h, 5, 32h, 33h, 33h, 33h, 35h, 5, 22h, 0, 22h, 70h, 50h, 72h, 22h 97BD 02 00 00 02+ .db 5, 0, 0, 0, 0, 25h, 45h, 42h, 0, 72h, 20h, 50h, 22h, 72h, 5, 2 97BD 55 20 05 00+ .db 22h, 52h, 22h, 22h, 22h, 22h, 7, 22h, 0, 50h, 72h, 22h, 5, 2, 77h, 25h 97BD 27 55 72 00+ .db 0, 0, 0, 2, 72h, 20h, 0, 50h, 22h, 72h, 5, 2, 5, 25h, 44h, 44h 97BD 50 02 20 00+ .db 52h, 72h, 22h, 70h, 0, 50h, 72h, 22h, 5, 2, 22h, 22h, 22h, 22h, 22h, 22h 97BD 70 00 55 00+ .db 2, 22h, 0, 50h, 22h, 70h, 5, 20h, 44h, 44h, 40h, 44h, 40h, 8, 2, 27h 97BD 05 00 00 55+ .db 0, 50h, 22h, 22h, 5, 25h, 20h, 0, 2, 70h, 2, 72h, 0, 22h, 20h, 50h 97BD 00 00 50 00+ .db 72h, 22h, 5, 25h, 2, 22h, 2, 22h, 22h, 22h, 70h, 22h, 0, 50h, 22h, 72h 97BD 00 00 22 22+ .db 5, 20h, 44h, 40h, 60h, 44h, 44h, 44h, 22h, 20h, 0, 50h, 22h, 20h, 5, 65h 97BD 55 22 22 22+ .db 0, 2, 72h, 0, 0, 5, 2, 20h, 0, 50h, 27h, 22h, 52h, 65h, 20h, 2 97BD 27 22 72 22+ .db 22h, 72h, 0, 5, 70h, 22h, 22h, 50h, 72h, 22h, 52h, 65h, 20h, 0, 2, 22h 97BD 52 22 22 22+ .db 72h, 25h, 22h, 22h, 22h, 50h, 22h, 22h, 52h, 65h, 27h, 52h, 0, 72h, 22h, 25h 97BD 22 22 22 25+ .db 60h, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60h, 0 97BD 54 44 44 44+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33h, 33h, 33h, 35h 97BD 44 45 52 22+ .db 0, 0, 0, 0, 0, 0, 0, 5, 33h, 33h, 0, 0, 0, 5, 0, 8 97BD 22 22 22 22+ .db 0, 0, 0, 0, 8, 5, 0, 0, 0, 0, 0, 5, 22h, 22h, 22h, 23h 97BD 22 55 00 04+ .db 33h, 22h, 22h, 25h, 0, 0, 0, 2, 0, 5, 0, 0, 0, 0, 0, 0 97BD 00 00 40 00+ .db 0, 5, 0, 0, 0, 20h, 4, 45h, 0, 0, 0, 0, 0, 0, 0, 5 97BD 55 22 22 22+ .db 0, 0, 0, 20h, 70h, 75h, 0, 0, 72h, 70h, 0, 0, 77h, 75h, 0, 0 97BD 22 22 25 50+ .db 0, 20h, 27h, 25h, 44h, 0, 20h, 20h, 77h, 70h, 22h, 25h, 44h, 0, 2, 0 97BD 00 00 28 82+ .db 27h, 25h, 70h, 74h, 47h, 20h, 22h, 20h, 27h, 25h, 70h, 74h, 2, 0, 22h, 25h 97BD 00 00 05 52+ .db 27h, 20h, 72h, 70h, 77h, 70h, 22h, 25h, 27h, 20h, 2, 0, 0, 25h, 72h, 70h 97BD 22 22 22 22+ .db 22h, 20h, 22h, 20h, 27h, 25h, 72h, 70h, 20h, 0, 0, 25h, 27h, 20h, 0, 0 97BD 55 00 00 40+ .db 0, 0, 22h, 25h, 27h, 20h, 0, 0, 0, 5, 45h, 0, 0, 0, 0, 0 97BD 22 22 04 00+ .db 0, 5, 45h, 0, 0, 0, 0, 5, 0, 0, 90h, 0, 0, 0, 0, 5 97BD 00 55 22 22+ .db 0, 0, 22h, 23h, 33h, 22h, 22h, 22h, 22h, 23h, 33h, 32h, 22h, 22h, 22h, 22h 97BD 22 25 50 00+ .db 4, 44h, 47h, 0, 0, 0, 0, 0, 0, 0, 0, 70h, 79h, 26h, 0, 0 97BD 04 02 22 22+ .db 2, 50h, 0, 0, 0, 0, 0, 0, 5, 22h, 22h, 26h, 0, 0, 2, 50h 97BD 20 40 00 05+ .db 0, 0, 0, 0, 0, 0, 51h, 22h, 22h, 26h, 0, 0, 2, 50h, 0, 0 97BD 52 22 22 55+ .db 0, 0, 0, 5, 21h, 22h, 0, 26h, 0, 0, 2, 50h, 0, 0, 0, 0 97BD 44 44 40 22+ .db 0, 52h, 21h, 22h, 70h, 26h, 7, 8, 2, 50h, 0, 0, 0, 0, 5, 27h 97BD 22 22 22 04+ .db 21h, 22h, 11h, 26h, 22h, 22h, 0, 25h, 0, 0, 0, 0, 52h, 5, 21h, 22h 97BD 44 44 55 22+ .db 0, 26h, 70h, 0, 27h, 2, 57h, 0, 0, 5, 20h, 75h, 21h, 22h, 0, 26h 97BD 25 50 00 04+ .db 22h, 25h, 2, 0, 22h, 50h, 0, 52h, 22h, 25h, 21h, 22h, 0, 26h, 70h, 2 97BD 02 22 27 72+ .db 50h, 27h, 2, 57h, 85h, 20h, 70h, 75h, 21h, 22h, 0, 26h, 22h, 50h, 25h, 2 97BD 22 20 40 00+ .db 0, 22h, 52h, 22h, 22h, 25h, 21h, 22h, 0, 26h, 70h, 25h, 2, 50h, 27h, 2 97BD 05 52 55 00+ .db 50h, 70h, 70h, 45h, 21h, 22h, 0, 26h, 25h, 2, 50h, 25h, 2, 2, 52h, 22h 97BD 00 00 22 22+ .db 22h, 5, 21h, 22h, 11h, 26h, 2, 50h, 25h, 2, 50h, 0, 0, 0, 0, 5 97BD 22 22 22 22+ .db 21h, 22h, 0, 6, 0, 50h, 5, 0, 50h, 0, 0, 80h, 0, 5, 0, 0 97BD 00 00 00 55+ .db 0, 6, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h A07D 36 00 00 03+levels_41_to_50:.db 36h, 0, 0, 3, 32h, 23h, 22h, 33h, 23h, 3, 32h, 33h, 22h, 33h, 35h, 66h A07D 32 23 22 33+ .db 66h, 63h, 63h, 23h, 32h, 63h, 66h, 66h, 66h, 0, 0, 62h, 35h, 9, 7, 63h A07D 23 03 32 33+ .db 60h, 77h, 70h, 60h, 60h, 8, 6, 7, 0, 62h, 35h, 32h, 32h, 63h, 62h, 32h A07D 22 33 35 66+ .db 23h, 52h, 53h, 22h, 25h, 22h, 22h, 62h, 35h, 7, 0, 63h, 60h, 77h, 70h, 50h A07D 66 63 63 23+ .db 50h, 72h, 25h, 22h, 23h, 62h, 35h, 32h, 36h, 63h, 60h, 22h, 20h, 50h, 50h, 33h A07D 32 63 66 66+ .db 75h, 72h, 27h, 62h, 35h, 66h, 60h, 73h, 60h, 0, 0, 57h, 50h, 2, 35h, 32h A07D 66 00 00 62+ .db 33h, 62h, 35h, 0, 62h, 23h, 60h, 7, 0, 53h, 50h, 7, 5, 44h, 44h, 62h A07D 35 09 07 63+ .db 35h, 70h, 86h, 3, 60h, 22h, 20h, 53h, 50h, 2, 35h, 0, 73h, 22h, 35h, 22h A07D 60 77 70 60+ .db 22h, 53h, 60h, 2, 0, 57h, 50h, 2, 5, 2, 27h, 63h, 35h, 0, 30h, 53h A07D 60 08 06 07+ .db 66h, 66h, 66h, 53h, 50h, 2, 5, 0, 3, 53h, 35h, 0, 30h, 54h, 44h, 44h A07D 00 62 35 32+ .db 44h, 44h, 57h, 82h, 5, 37h, 77h, 52h, 35h, 0, 37h, 53h, 22h, 22h, 50h, 73h A07D 32 63 62 32+ .db 52h, 22h, 22h, 22h, 22h, 22h, 35h, 0, 32h, 53h, 0, 2, 22h, 22h, 32h, 34h A07D 23 52 53 22+ .db 44h, 44h, 44h, 52h, 35h, 7, 0, 50h, 7, 0, 7, 0, 0, 0, 8, 7 A07D 25 22 22 62+ .db 77h, 52h, 32h, 22h, 22h, 23h, 23h, 33h, 33h, 33h, 33h, 33h, 32h, 33h, 33h, 52h A07D 35 07 00 63+ .db 62h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 26h, 62h, 70h A07D 60 77 70 50+ .db 0, 0, 0, 0, 87h, 79h, 0, 0, 0, 0, 7, 26h, 62h, 22h, 25h, 5 A07D 50 72 25 22+ .db 22h, 22h, 22h, 22h, 22h, 22h, 50h, 52h, 22h, 26h, 62h, 70h, 0, 57h, 55h, 55h A07D 23 62 35 32+ .db 55h, 55h, 55h, 55h, 75h, 0, 7, 26h, 60h, 0, 0, 5, 0, 0, 0, 0 A07D 36 63 60 22+ .db 0, 0, 50h, 0, 0, 6, 22h, 33h, 32h, 50h, 5, 55h, 58h, 85h, 55h, 50h A07D 20 50 50 33+ .db 5, 23h, 33h, 22h, 0, 20h, 72h, 50h, 0, 7, 0, 0, 70h, 0, 5, 27h A07D 75 72 27 62+ .db 2, 0, 0, 22h, 22h, 50h, 0, 0, 5, 50h, 0, 0, 5, 22h, 22h, 0 A07D 35 66 60 73+ .db 70h, 0, 20h, 50h, 0, 0, 57h, 75h, 0, 0, 5, 2, 50h, 7, 22h, 22h A07D 60 00 00 57+ .db 22h, 50h, 0, 0, 0, 0, 0, 0, 5, 23h, 33h, 33h, 70h, 0, 2, 5 A07D 50 02 35 32+ .db 0, 3, 33h, 33h, 30h, 0, 50h, 20h, 0, 7, 22h, 22h, 2, 20h, 50h, 4 A07D 33 62 35 00+ .db 44h, 44h, 40h, 5, 2, 25h, 22h, 22h, 7, 0, 23h, 33h, 5, 5, 0, 0 A07D 62 23 60 07+ .db 50h, 50h, 33h, 32h, 0, 0, 72h, 25h, 0, 0, 0, 52h, 67h, 76h, 25h, 0 A07D 00 53 50 07+ .db 0, 0, 52h, 27h, 7, 25h, 72h, 50h, 0, 52h, 0, 0, 25h, 0, 5, 27h A07D 05 44 44 62+ .db 52h, 70h, 33h, 33h, 33h, 22h, 22h, 23h, 33h, 33h, 32h, 22h, 22h, 33h, 33h, 33h A07D 35 70 86 03+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60h, 0, 0, 0 A07D 60 22 20 53+ .db 0, 0, 0, 0, 0, 70h, 0, 0, 2, 82h, 62h, 0, 0, 0, 0, 54h A07D 50 02 35 00+ .db 44h, 52h, 22h, 22h, 22h, 22h, 22h, 2, 62h, 0, 70h, 44h, 44h, 50h, 0, 2 A07D 73 22 35 22+ .db 0, 0, 0, 70h, 2, 2, 62h, 0, 25h, 0, 0, 0, 0, 2, 0, 0 A07D 22 53 60 02+ .db 22h, 22h, 22h, 2, 62h, 0, 22h, 50h, 0, 0, 8, 2, 0, 0, 70h, 0 A07D 00 57 50 02+ .db 0, 2, 62h, 0, 22h, 25h, 0, 0, 7, 2, 0, 0, 4, 44h, 44h, 2 A07D 05 02 27 63+ .db 62h, 0, 22h, 22h, 50h, 44h, 44h, 42h, 70h, 7, 20h, 0, 5, 0, 60h, 0 A07D 35 00 30 53+ .db 33h, 33h, 33h, 50h, 0, 2, 22h, 22h, 20h, 0, 5, 44h, 60h, 0, 0, 0 A07D 66 66 66 53+ .db 0, 50h, 0, 2, 22h, 22h, 20h, 0, 5, 2, 22h, 22h, 0, 0, 0, 50h A07D 50 02 05 00+ .db 0, 2, 22h, 22h, 20h, 0, 5, 2, 70h, 80h, 0, 0, 0, 50h, 0, 2 A07D 03 53 35 00+ .db 22h, 22h, 20h, 0, 5, 2, 22h, 25h, 0, 0, 0, 50h, 0, 0, 0, 0 A07D 30 54 44 44+ .db 0, 0, 5, 0, 0, 5, 0, 0, 44h, 50h, 0, 0, 0, 0, 0, 0 A07D 44 44 57 82+ .db 5, 0, 0, 5, 80h, 72h, 0, 50h, 0, 0, 0, 90h, 0, 0, 5, 0 A07D 05 37 77 52+ .db 0, 5, 22h, 22h, 0, 52h, 27h, 22h, 22h, 22h, 22h, 22h, 25h, 0, 22h, 25h A07D 35 00 37 53+ .db 0, 44h, 40h, 0, 0, 7, 0, 70h, 0, 4, 44h, 0, 30h, 25h, 22h, 0 A07D 22 22 50 73+ .db 25h, 0, 0, 52h, 22h, 25h, 0, 58h, 0, 22h, 30h, 5, 2, 20h, 25h, 0 A07D 52 22 22 22+ .db 5, 22h, 22h, 22h, 22h, 22h, 50h, 22h, 30h, 25h, 22h, 0, 25h, 22h, 22h, 27h A07D 22 22 35 00+ .db 22h, 72h, 22h, 22h, 50h, 27h, 32h, 25h, 72h, 27h, 25h, 0, 0, 8, 0, 0 A07D 32 53 00 02+ .db 0, 0, 50h, 0, 0, 25h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 21h, 22h A07D 22 22 32 34+ .db 22h, 22h, 22h, 25h, 0, 7, 8, 0, 7, 0, 0, 0, 0, 0, 90h, 0 A07D 44 44 44 52+ .db 80h, 5, 33h, 33h, 33h, 33h, 33h, 33h, 33h, 33h, 52h, 22h, 22h, 22h, 22h, 22h A07D 35 07 00 50+ .db 4, 44h, 44h, 44h, 44h, 44h, 44h, 3, 50h, 0, 0, 0, 0, 0, 50h, 0 A07D 07 00 07 00+ .db 0, 4, 0, 0, 0, 53h, 54h, 44h, 44h, 44h, 44h, 40h, 50h, 0, 0, 40h A07D 00 00 08 07+ .db 40h, 0, 0, 53h, 22h, 2, 20h, 22h, 2, 25h, 50h, 0, 4, 2, 4, 0 A07D 77 52 32 22+ .db 0, 53h, 33h, 33h, 33h, 33h, 33h, 35h, 50h, 0, 40h, 22h, 20h, 40h, 0, 54h A07D 22 23 23 33+ .db 44h, 44h, 44h, 44h, 44h, 45h, 50h, 4, 2, 22h, 22h, 4, 0, 51h, 21h, 21h A07D 33 33 33 33+ .db 21h, 21h, 21h, 21h, 50h, 40h, 22h, 77h, 72h, 20h, 40h, 53h, 0, 0, 0, 0 A07D 32 33 33 52+ .db 0, 0, 54h, 2, 22h, 22h, 22h, 22h, 4, 53h, 0, 0, 0, 0, 80h, 0 A07D 62 22 22 22+ .db 4, 44h, 44h, 44h, 44h, 40h, 9, 0, 4, 44h, 44h, 44h, 44h, 40h, 50h, 0 A07D 22 22 22 22+ .db 4, 44h, 40h, 2, 22h, 22h, 20h, 4, 44h, 40h, 0, 5, 50h, 0, 4, 44h A07D 22 22 22 22+ .db 2, 22h, 22h, 22h, 22h, 20h, 44h, 40h, 0, 5, 50h, 0, 4, 40h, 22h, 22h A07D 22 26 62 70+ .db 22h, 22h, 22h, 22h, 4, 40h, 0, 5, 50h, 0, 4, 2, 22h, 22h, 77h, 77h A07D 00 00 00 00+ .db 22h, 22h, 20h, 40h, 0, 5, 50h, 0, 4, 2, 22h, 22h, 22h, 22h, 22h, 22h A07D 87 79 00 00+ .db 20h, 40h, 0, 5, 50h, 0, 0, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 0 A07D 00 00 07 26+ .db 0, 5, 50h, 0, 0, 22h, 77h, 77h, 22h, 22h, 77h, 77h, 22h, 0, 0, 5 A07D 62 22 25 05+ .db 50h, 0, 0, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 0, 0, 5, 50h, 0 A07D 22 22 22 22+ .db 0, 22h, 22h, 22h, 77h, 77h, 22h, 22h, 22h, 0, 0, 5, 50h, 0, 4, 2 A07D 22 22 50 52+ .db 22h, 22h, 22h, 22h, 22h, 22h, 20h, 40h, 0, 5, 50h, 0, 4, 2, 22h, 22h A07D 22 26 62 70+ .db 22h, 22h, 22h, 22h, 20h, 40h, 0, 5, 50h, 0, 4, 40h, 27h, 77h, 72h, 27h A07D 00 57 55 55+ .db 77h, 72h, 4, 40h, 0, 5, 50h, 0, 4, 44h, 2, 22h, 22h, 22h, 22h, 20h A07D 55 55 55 55+ .db 44h, 40h, 0, 5, 58h, 77h, 70h, 0, 70h, 2, 22h, 22h, 20h, 7, 0, 7 A07D 75 00 07 26+ .db 77h, 85h, 22h, 22h, 22h, 22h, 25h, 77h, 77h, 77h, 77h, 52h, 22h, 22h, 22h, 22h A07D 60 00 00 05+ .db 88h, 80h, 44h, 44h, 44h, 44h, 44h, 44h, 44h, 40h, 22h, 22h, 22h, 26h, 0, 2 A07D 00 00 00 00+ .db 0, 50h, 0, 0, 70h, 0, 0, 50h, 29h, 0, 0, 26h, 22h, 20h, 0, 50h A07D 00 00 50 00+ .db 30h, 0, 20h, 0, 30h, 50h, 22h, 22h, 25h, 26h, 0, 70h, 0, 5, 33h, 33h A07D 00 06 22 33+ .db 13h, 33h, 30h, 50h, 0, 0, 5, 6, 0, 20h, 0, 25h, 4, 44h, 44h, 0 A07D 32 50 05 55+ .db 5, 33h, 33h, 33h, 33h, 6, 0, 2, 22h, 25h, 25h, 5, 5, 25h, 50h, 0 A07D 58 85 55 50+ .db 0, 0, 0, 6, 0, 0, 0, 5, 27h, 27h, 27h, 25h, 0, 22h, 22h, 22h A07D 05 23 33 22+ .db 25h, 6, 70h, 0, 0, 5, 22h, 22h, 22h, 25h, 0, 20h, 0, 0, 25h, 6 A07D 00 20 72 50+ .db 22h, 0, 2, 55h, 2, 77h, 72h, 5, 2, 20h, 26h, 20h, 25h, 6, 0, 22h A07D 00 07 00 00+ .db 22h, 25h, 2, 22h, 22h, 5, 2, 7, 26h, 20h, 25h, 6, 0, 0, 0, 5 A07D 70 00 05 27+ .db 4, 44h, 44h, 5, 2, 2, 26h, 20h, 25h, 6, 0, 0, 0, 5, 27h, 77h A07D 02 00 00 22+ .db 77h, 25h, 2, 2, 6, 20h, 25h, 6, 0, 0, 0, 5, 33h, 33h, 33h, 35h A07D 22 50 00 00+ .db 0, 72h, 60h, 20h, 25h, 6, 70h, 0, 5, 20h, 0, 0, 0, 0, 22h, 22h A07D 05 50 00 00+ .db 67h, 20h, 25h, 6, 20h, 0, 25h, 20h, 0, 0, 0, 0, 0, 0, 0, 20h A07D 05 22 22 00+ .db 5, 62h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h A07D 70 00 20 50+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 33h, 33h, 35h, 44h, 44h A07D 00 00 57 75+ .db 44h, 44h, 44h, 44h, 44h, 0, 80h, 0, 0, 0, 0, 5, 50h, 0, 0, 0 A07D 00 00 05 02+ .db 0, 0, 5, 33h, 33h, 33h, 30h, 52h, 5, 62h, 50h, 85h, 30h, 0, 0, 0 A07D 50 07 22 22+ .db 5, 44h, 44h, 45h, 2, 50h, 25h, 0, 33h, 33h, 35h, 35h, 30h, 90h, 0, 0 A07D 22 50 00 00+ .db 0, 5, 0, 22h, 6, 21h, 54h, 44h, 45h, 5, 21h, 22h, 23h, 33h, 2, 25h A07D 00 00 00 00+ .db 2, 25h, 66h, 21h, 50h, 0, 5, 5, 20h, 72h, 0, 7, 0, 5, 2, 5 A07D 05 23 33 33+ .db 24h, 41h, 50h, 0, 0, 5, 20h, 7, 22h, 22h, 3, 35h, 7, 52h, 70h, 77h A07D 70 00 02 05+ .db 50h, 0, 0, 5, 20h, 82h, 22h, 22h, 0, 5, 2, 52h, 0, 2, 51h, 70h A07D 00 03 33 33+ .db 0, 0, 20h, 22h, 22h, 27h, 3, 35h, 66h, 52h, 52h, 22h, 50h, 20h, 0, 0 A07D 30 00 50 20+ .db 20h, 72h, 22h, 22h, 7, 5, 0, 20h, 52h, 20h, 50h, 2, 0, 0, 20h, 22h A07D 00 07 22 22+ .db 22h, 22h, 5, 35h, 2, 22h, 50h, 22h, 50h, 0, 20h, 0, 25h, 7, 27h, 2 A07D 02 20 50 04+ .db 5, 5, 0, 20h, 52h, 7, 50h, 0, 2, 0, 5, 22h, 22h, 22h, 5, 35h A07D 44 44 40 05+ .db 2, 2, 20h, 22h, 50h, 0, 0, 0, 20h, 0, 0, 0, 0, 5, 0, 0 A07D 02 25 22 22+ .db 0, 0, 22h, 33h, 32h, 22h, 22h, 22h, 22h, 33h, 33h, 23h, 23h, 33h, 23h, 33h A07D 07 00 23 33+ .db 22h, 62h, 32h, 32h, 32h, 32h, 33h, 20h, 26h, 23h, 2, 26h, 22h, 22h, 22h, 62h A07D 05 05 00 00+ .db 22h, 22h, 23h, 23h, 35h, 30h, 36h, 32h, 2, 6, 0, 52h, 23h, 60h, 0, 0 A07D 50 50 33 32+ .db 2, 30h, 5, 0, 6, 7, 0, 86h, 0, 52h, 22h, 21h, 22h, 54h, 44h, 44h A07D 00 00 72 25+ .db 45h, 22h, 12h, 22h, 22h, 22h, 22h, 52h, 9, 7, 0, 57h, 52h, 37h, 5, 3 A07D 00 00 00 52+ .db 0, 32h, 30h, 2, 0, 52h, 22h, 22h, 25h, 22h, 53h, 23h, 0, 70h, 30h, 0 A07D 67 76 25 00+ .db 3, 4, 44h, 52h, 0, 32h, 5, 30h, 53h, 33h, 23h, 32h, 3, 0, 44h, 44h A07D 00 00 52 27+ .db 42h, 52h, 70h, 80h, 5, 0, 50h, 2, 44h, 44h, 44h, 44h, 43h, 7, 22h, 52h A07D 07 25 72 50+ .db 21h, 32h, 25h, 0, 57h, 33h, 27h, 2, 37h, 0, 0, 2, 20h, 52h, 31h, 3 A07D 00 52 00 00+ .db 5, 0, 73h, 23h, 32h, 70h, 32h, 44h, 45h, 20h, 0, 52h, 0, 20h, 5, 7 A07D 25 00 05 27+ .db 30h, 77h, 70h, 37h, 0, 30h, 5, 0, 0, 50h, 54h, 44h, 45h, 73h, 5, 23h A07D 52 70 33 33+ .db 20h, 3, 70h, 0, 25h, 22h, 22h, 22h, 50h, 50h, 3, 34h, 45h, 0, 0, 0 A07D 33 22 22 23+ .db 30h, 7, 5, 3, 33h, 33h, 50h, 52h, 32h, 77h, 5, 44h, 50h, 5, 2, 22h A07D 33 33 32 22+ .db 25h, 0, 30h, 2, 50h, 57h, 7, 22h, 78h, 77h, 54h, 45h, 0, 22h, 35h, 0 A07D 22 33 33 33+ .db 8, 72h, 22h, 22h, 22h, 22h, 22h, 22h, 50h, 75h, 72h, 22h, 22h, 22h, 22h, 22h A07D 00 00 00 00+ .db 0, 0, 0, 0, 0, 0, 22h, 20h, 0, 0, 0, 0, 0, 6, 0, 0 A07D 00 00 00 00+ .db 70h, 8, 7, 0, 33h, 30h, 0, 0, 78h, 0, 70h, 6, 52h, 22h, 22h, 22h A07D 00 00 00 00+ .db 22h, 22h, 22h, 25h, 22h, 22h, 22h, 22h, 22h, 22h, 54h, 44h, 44h, 44h, 44h, 40h A07D 60 00 00 00+ .db 33h, 35h, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 22h, 25h A07D 00 00 00 00+ .db 0, 44h, 44h, 44h, 44h, 40h, 4, 44h, 44h, 44h, 44h, 45h, 33h, 35h, 70h, 0 A07D 00 70 00 00+ .db 0, 0, 0, 5, 50h, 70h, 4, 44h, 49h, 0, 22h, 22h, 22h, 0, 0, 0 A07D 02 82 62 00+ .db 7, 52h, 22h, 22h, 20h, 0, 2, 50h, 33h, 33h, 33h, 0, 0, 87h, 52h, 22h A07D 00 00 00 54+ .db 0, 40h, 20h, 0, 2, 50h, 22h, 22h, 22h, 0, 7, 52h, 22h, 22h, 22h, 75h A07D 44 52 22 22+ .db 20h, 0, 2, 50h, 33h, 33h, 33h, 7, 52h, 22h, 22h, 22h, 72h, 25h, 20h, 0 A07D 22 22 22 02+ .db 2, 54h, 44h, 44h, 7, 52h, 22h, 22h, 22h, 22h, 22h, 75h, 20h, 0, 2, 50h A07D 62 00 70 44+ .db 33h, 30h, 53h, 33h, 33h, 33h, 33h, 33h, 72h, 25h, 20h, 77h, 2, 50h, 22h, 20h A07D 44 50 00 02+ .db 50h, 0, 0, 0, 0, 0, 22h, 75h, 22h, 22h, 12h, 50h, 33h, 30h, 52h, 22h A07D 00 00 00 70+ .db 22h, 22h, 22h, 25h, 72h, 25h, 0, 8, 0, 57h, 22h, 27h, 52h, 70h, 0, 0 A07D 02 02 62 00+ .db 0, 5, 22h, 22h, 22h, 22h, 22h, 22h, 33h, 32h, 22h, 33h, 33h, 33h, 33h, 33h A07D 25 00 00 00+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60h, 0, 0, 7 A07D 00 02 00 00+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60h, 0, 53h, 22h, 0, 0 A07D 22 22 22 02+ .db 0, 0, 0, 0, 0, 0, 0, 0, 63h, 35h, 53h, 72h, 20h, 70h, 0, 0 A07D 62 00 22 50+ .db 0, 0, 0, 0, 0, 7, 63h, 35h, 50h, 2, 72h, 22h, 0, 0, 0, 0 A07D 00 00 08 02+ .db 0, 80h, 22h, 22h, 22h, 25h, 50h, 2, 2, 0, 22h, 27h, 0, 0, 2, 22h A07D 00 00 70 00+ .db 7, 0, 0, 5, 54h, 40h, 2, 70h, 20h, 2, 0, 70h, 22h, 70h, 33h, 33h A07D 00 02 62 00+ .db 0, 5, 50h, 2, 22h, 22h, 20h, 0, 22h, 21h, 20h, 0, 0, 2, 22h, 35h A07D 22 25 00 00+ .db 57h, 9, 0, 0, 0, 0, 0, 0, 2, 33h, 35h, 20h, 70h, 5, 53h, 33h A07D 07 02 00 00+ .db 34h, 44h, 44h, 44h, 44h, 0, 0, 0, 5, 22h, 27h, 5, 50h, 0, 30h, 0 A07D 04 44 44 02+ .db 0, 87h, 77h, 70h, 0, 0, 5, 0, 22h, 22h, 50h, 70h, 37h, 0, 3, 33h A07D 62 00 22 22+ .db 33h, 33h, 33h, 0, 5, 7, 30h, 7, 52h, 22h, 22h, 0, 0, 0, 0, 0 A07D 50 44 44 42+ .db 0, 0, 5, 22h, 33h, 22h, 54h, 44h, 45h, 44h, 44h, 44h, 0, 0, 0, 0 A07D 70 07 20 00+ .db 5, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 5, 80h A07D 05 00 60 00+ .db 0, 0, 0, 7, 5, 0, 0, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h A93D 00 00 00 00+levels_51_to_60:.db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60h, 7 A93D 00 00 00 00+ .db 0, 70h, 0, 9, 0, 40h, 8, 0, 0, 0, 8, 40h, 6, 2, 2, 32h A93D 00 00 00 00+ .db 33h, 33h, 35h, 2, 72h, 22h, 22h, 22h, 72h, 5, 0, 62h, 31h, 32h, 33h, 33h A93D 00 00 60 07+ .db 35h, 20h, 27h, 20h, 20h, 27h, 20h, 25h, 0, 6, 70h, 0, 0, 0, 5, 2 A93D 00 70 00 09+ .db 2, 72h, 2, 72h, 2, 5, 0, 60h, 20h, 23h, 23h, 33h, 35h, 20h, 20h, 27h A93D 00 40 08 00+ .db 27h, 20h, 20h, 25h, 6, 0, 23h, 23h, 23h, 33h, 35h, 2, 2, 72h, 2, 72h A93D 00 00 08 40+ .db 2, 5, 67h, 0, 7, 0, 0, 0, 5, 20h, 27h, 20h, 20h, 27h, 20h, 25h A93D 06 02 02 32+ .db 33h, 0, 22h, 50h, 0, 2, 25h, 2, 72h, 2, 2, 2, 72h, 5, 3, 33h A93D 33 33 35 02+ .db 33h, 33h, 30h, 0, 5, 40h, 0, 0, 0, 0, 0, 45h, 4, 4, 4, 4 A93D 72 22 22 22+ .db 0, 2, 25h, 45h, 32h, 22h, 52h, 22h, 35h, 45h, 27h, 27h, 27h, 27h, 25h, 0 A93D 72 05 00 62+ .db 5, 40h, 0, 0, 60h, 0, 0, 45h, 34h, 45h, 45h, 45h, 25h, 2, 25h, 40h A93D 31 32 33 33+ .db 0, 0, 60h, 0, 0, 45h, 32h, 22h, 22h, 22h, 35h, 0, 5, 7, 0, 0 A93D 35 20 27 20+ .db 60h, 0, 7, 5, 44h, 44h, 44h, 44h, 45h, 5, 25h, 20h, 70h, 0, 60h, 0 A93D 20 27 20 25+ .db 70h, 25h, 50h, 0, 0, 0, 0, 5, 25h, 22h, 22h, 22h, 22h, 22h, 22h, 25h A93D 00 06 70 00+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22h, 22h A93D 00 00 05 02+ .db 22h, 56h, 0, 0, 0, 0, 0, 0, 65h, 22h, 22h, 22h, 22h, 25h, 55h, 76h A93D 02 72 02 72+ .db 0, 0, 0, 0, 0, 0, 67h, 55h, 52h, 22h, 55h, 22h, 25h, 55h, 70h, 0 A93D 02 05 00 60+ .db 0, 0, 0, 7, 55h, 52h, 12h, 55h, 75h, 55h, 21h, 25h, 55h, 78h, 0, 0 A93D 20 23 23 33+ .db 87h, 55h, 52h, 22h, 55h, 57h, 0, 75h, 55h, 22h, 25h, 55h, 70h, 7, 55h, 52h A93D 35 20 20 27+ .db 12h, 55h, 57h, 0, 0, 0, 75h, 55h, 21h, 25h, 55h, 55h, 52h, 22h, 55h, 57h A93D 27 20 20 25+ .db 0, 0, 0, 0, 0, 75h, 55h, 22h, 25h, 52h, 22h, 55h, 57h, 0, 0, 0 A93D 06 00 23 23+ .db 0, 0, 0, 0, 75h, 55h, 25h, 52h, 55h, 57h, 0, 0, 0, 0, 0, 0 A93D 23 33 35 02+ .db 0, 75h, 55h, 21h, 25h, 52h, 22h, 55h, 57h, 0, 0, 0, 0, 0, 75h, 55h A93D 02 72 02 72+ .db 22h, 25h, 55h, 55h, 52h, 12h, 55h, 57h, 0, 0, 0, 75h, 55h, 21h, 25h, 55h A93D 02 05 67 00+ .db 70h, 7, 55h, 52h, 22h, 55h, 57h, 0, 75h, 55h, 22h, 25h, 55h, 70h, 0, 0 A93D 07 00 00 00+ .db 7, 55h, 52h, 12h, 55h, 57h, 55h, 21h, 25h, 55h, 70h, 0, 0, 0, 0, 7 A93D 05 20 27 20+ .db 55h, 52h, 22h, 55h, 22h, 25h, 55h, 76h, 0, 0, 0, 0, 0, 0, 67h, 55h A93D 20 27 20 25+ .db 52h, 22h, 22h, 22h, 22h, 56h, 0, 0, 0, 9, 0, 0, 65h, 22h, 22h, 22h A93D 33 00 22 50+ .db 60h, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60h, 0 A93D 00 02 25 02+ .db 0, 8, 0, 0, 0, 0, 0, 70h, 0, 0, 0, 0, 60h, 33h, 53h, 33h A93D 72 02 02 02+ .db 30h, 0, 0, 0, 0, 33h, 33h, 53h, 33h, 33h, 60h, 0, 50h, 0, 2, 70h A93D 72 05 03 33+ .db 0, 0, 2, 0, 0, 52h, 4, 44h, 64h, 44h, 54h, 44h, 44h, 20h, 0, 0 A93D 33 33 30 00+ .db 24h, 44h, 44h, 53h, 50h, 7, 27h, 0, 50h, 7, 0, 2, 0, 2, 0, 0 A93D 05 40 00 00+ .db 0, 52h, 54h, 40h, 2, 80h, 54h, 44h, 2, 50h, 20h, 20h, 0, 70h, 0, 53h A93D 00 00 00 45+ .db 0, 5, 0, 20h, 0, 0, 20h, 50h, 1, 0, 0, 0, 0, 52h, 70h, 5 A93D 04 04 04 04+ .db 90h, 2, 0, 2, 0, 50h, 0, 0, 0, 0, 70h, 53h, 4, 45h, 33h, 20h A93D 00 02 25 45+ .db 20h, 20h, 0, 52h, 4, 44h, 44h, 40h, 20h, 52h, 50h, 0, 0, 0, 21h, 0 A93D 32 22 52 22+ .db 0, 50h, 20h, 70h, 0, 2, 0, 53h, 50h, 80h, 75h, 22h, 20h, 0, 0, 50h A93D 35 45 27 27+ .db 2, 0, 0, 20h, 70h, 52h, 22h, 25h, 25h, 34h, 44h, 44h, 44h, 50h, 0, 20h A93D 27 27 25 00+ .db 2, 0, 22h, 52h, 22h, 25h, 5, 0, 0, 0, 0, 0, 0, 1, 10h, 0 A93D 05 40 00 00+ .db 0, 50h, 0, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50h A93D 60 00 00 45+ .db 0, 5, 33h, 33h, 33h, 22h, 22h, 22h, 23h, 33h, 32h, 22h, 23h, 33h, 33h, 33h A93D 34 45 45 45+ .db 0, 0, 0, 0, 0, 0, 0, 60h, 0, 0, 0, 0, 0, 0, 0, 4 A93D 25 02 25 40+ .db 44h, 44h, 44h, 40h, 4, 64h, 44h, 0, 0, 0, 0, 0, 0, 50h, 0, 0 A93D 00 00 60 00+ .db 0, 5, 40h, 0, 0, 50h, 52h, 22h, 25h, 0, 0, 54h, 44h, 44h, 44h, 85h A93D 00 45 32 22+ .db 44h, 44h, 44h, 5, 20h, 54h, 2, 50h, 0, 50h, 0, 0, 0, 52h, 0, 44h A93D 22 22 35 00+ .db 40h, 52h, 0, 50h, 70h, 15h, 0, 50h, 0, 0, 5, 20h, 25h, 0, 5, 20h A93D 05 07 00 00+ .db 0, 50h, 0, 72h, 0, 50h, 4, 40h, 52h, 0, 2, 50h, 40h, 94h, 44h, 54h A93D 60 00 07 05+ .db 44h, 42h, 50h, 25h, 56h, 5, 27h, 52h, 20h, 25h, 0, 20h, 0, 0, 0, 2 A93D 44 44 44 44+ .db 52h, 2, 56h, 5, 22h, 22h, 22h, 25h, 0, 22h, 22h, 2, 22h, 22h, 22h, 12h A93D 45 05 25 20+ .db 26h, 5, 20h, 2, 70h, 25h, 45h, 0, 0, 40h, 0, 85h, 22h, 12h, 26h, 5 A93D 70 00 60 00+ .db 22h, 22h, 22h, 20h, 5, 22h, 22h, 2, 22h, 25h, 20h, 70h, 26h, 5, 20h, 72h A93D 70 25 50 00+ .db 0, 25h, 5, 27h, 22h, 2, 22h, 25h, 22h, 22h, 26h, 5, 22h, 22h, 22h, 25h A93D 00 00 00 05+ .db 5, 22h, 22h, 2, 27h, 25h, 22h, 22h, 26h, 5, 20h, 2, 70h, 25h, 5, 20h A93D 25 22 22 22+ .db 0, 2, 0, 5, 20h, 0, 26h, 5, 22h, 22h, 22h, 25h, 5, 22h, 12h, 22h A93D 22 22 22 25+ .db 12h, 25h, 20h, 70h, 6, 25h, 0, 0, 0, 25h, 25h, 0, 2, 0, 70h, 5 A93D 00 00 00 00+ .db 60h, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 60h, 0 A93D 00 00 00 00+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 64h, 44h, 44h, 50h A93D 00 00 00 00+ .db 0, 0, 54h, 44h, 44h, 45h, 20h, 0, 0, 25h, 0, 0, 0, 54h, 44h, 44h A93D 00 00 22 22+ .db 50h, 0, 0, 5, 20h, 70h, 0, 25h, 7, 0, 0, 50h, 0, 0, 50h, 80h A93D 22 56 00 00+ .db 70h, 5, 22h, 22h, 21h, 25h, 22h, 20h, 70h, 25h, 50h, 0, 22h, 22h, 22h, 22h A93D 00 00 00 00+ .db 22h, 22h, 21h, 25h, 22h, 22h, 22h, 20h, 50h, 70h, 0, 0, 0, 0, 7, 0 A93D 65 22 22 22+ .db 0, 5, 22h, 22h, 27h, 0, 52h, 20h, 0, 72h, 70h, 0, 22h, 0, 0, 5 A93D 22 25 55 76+ .db 22h, 22h, 22h, 70h, 52h, 20h, 7, 22h, 27h, 0, 22h, 0, 0, 5, 22h, 22h A93D 00 00 00 00+ .db 22h, 27h, 52h, 20h, 72h, 22h, 22h, 70h, 22h, 8, 7, 5, 22h, 22h, 22h, 22h A93D 00 00 67 55+ .db 52h, 21h, 22h, 22h, 22h, 22h, 22h, 25h, 33h, 25h, 20h, 0, 0, 8, 50h, 0 A93D 52 22 55 22+ .db 0, 0, 0, 0, 0, 5, 2, 25h, 20h, 7, 0, 22h, 54h, 44h, 40h, 0 A93D 25 55 70 00+ .db 90h, 0, 0, 5, 2, 25h, 22h, 22h, 22h, 22h, 50h, 0, 5, 22h, 22h, 57h A93D 00 00 00 07+ .db 44h, 45h, 2, 25h, 20h, 7, 0, 0, 50h, 7, 5, 22h, 72h, 52h, 0, 25h A93D 55 52 12 55+ .db 72h, 25h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 25h, 22h, 25h A93D 75 55 21 25+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0 A93D 55 78 00 00+ .db 0, 0, 74h, 0, 0, 0, 0, 0, 0, 0, 0, 76h, 52h, 22h, 22h, 20h A93D 87 55 52 22+ .db 20h, 66h, 66h, 66h, 66h, 66h, 66h, 66h, 52h, 26h, 52h, 22h, 22h, 22h, 20h, 62h A93D 55 57 00 75+ .db 66h, 62h, 52h, 56h, 52h, 55h, 50h, 76h, 54h, 44h, 44h, 44h, 0, 62h, 26h, 22h A93D 55 22 25 55+ .db 52h, 56h, 52h, 0, 52h, 26h, 50h, 0, 0, 0, 74h, 62h, 2, 72h, 52h, 22h A93D 70 07 55 52+ .db 22h, 0, 55h, 56h, 52h, 22h, 22h, 20h, 20h, 62h, 0, 2, 52h, 54h, 42h, 8 A93D 12 55 57 00+ .db 95h, 56h, 52h, 22h, 22h, 22h, 20h, 62h, 0, 2, 52h, 50h, 2, 0, 20h, 56h A93D 00 00 75 55+ .db 50h, 0, 0, 0, 0, 64h, 44h, 44h, 44h, 50h, 0, 27h, 22h, 5, 50h, 0 A93D 21 25 55 55+ .db 0, 0, 74h, 60h, 0, 0, 0, 0, 27h, 22h, 72h, 25h, 52h, 22h, 22h, 20h A93D 52 22 55 57+ .db 20h, 60h, 0, 0, 0, 27h, 22h, 7, 22h, 5, 52h, 22h, 22h, 22h, 20h, 60h A93D 00 00 00 00+ .db 0, 0, 27h, 22h, 0, 22h, 25h, 5, 50h, 0, 0, 0, 0, 0, 0, 27h A93D 00 75 55 22+ .db 22h, 2, 0, 75h, 25h, 5, 50h, 0, 0, 0, 0, 0, 27h, 22h, 7, 0 A93D 25 52 22 55+ .db 22h, 20h, 25h, 5, 50h, 0, 0, 0, 0, 27h, 22h, 0, 2, 25h, 0, 2 A93D 57 00 00 00+ .db 22h, 25h, 52h, 22h, 22h, 22h, 27h, 22h, 0, 0, 7, 25h, 0, 0, 7, 25h A93D 00 00 00 00+ .db 0, 0, 0, 0, 0, 60h, 0, 0, 0, 0, 0, 0, 0, 0, 78h, 0 A93D 75 55 25 52+ .db 4, 74h, 0, 6, 7, 44h, 44h, 44h, 44h, 44h, 44h, 47h, 54h, 0, 47h, 57h A93D 55 57 00 00+ .db 40h, 6, 75h, 74h, 8, 4, 74h, 8, 4, 75h, 50h, 74h, 0, 50h, 4, 60h A93D 00 00 00 00+ .db 5, 0, 47h, 40h, 70h, 47h, 40h, 5, 50h, 40h, 0, 50h, 6, 40h, 5, 0 A93D 00 75 55 21+ .db 4, 0, 70h, 4, 0, 5, 54h, 0, 0, 50h, 60h, 4, 5, 0, 47h, 40h A93D 25 52 22 55+ .db 70h, 47h, 40h, 5, 54h, 0, 4, 50h, 60h, 0, 45h, 4, 4, 4, 74h, 4 A93D 57 00 00 00+ .db 4, 5, 50h, 47h, 40h, 50h, 60h, 4, 5, 40h, 47h, 40h, 40h, 47h, 40h, 45h A93D 00 00 75 55+ .db 0, 4, 0, 50h, 6, 40h, 5, 4, 4, 4, 74h, 4, 4, 5, 0, 47h A93D 22 25 55 55+ .db 40h, 50h, 4, 60h, 5, 0, 47h, 40h, 70h, 47h, 40h, 5, 4, 0, 4, 50h A93D 52 12 55 57+ .db 40h, 6, 45h, 0, 4, 0, 70h, 4, 0, 5, 44h, 44h, 44h, 54h, 44h, 44h A93D 00 00 00 75+ .db 45h, 0, 0, 40h, 70h, 40h, 40h, 5, 44h, 44h, 44h, 54h, 44h, 44h, 45h, 0 A93D 55 21 25 55+ .db 0, 4, 74h, 0, 4, 5, 44h, 44h, 44h, 54h, 44h, 44h, 45h, 0, 0, 0 A93D 70 07 55 52+ .db 40h, 0, 0, 45h, 44h, 44h, 44h, 54h, 44h, 44h, 45h, 90h, 7, 0, 44h, 44h A93D 22 55 57 00+ .db 44h, 45h, 22h, 22h, 22h, 52h, 22h, 22h, 22h, 22h, 22h, 22h, 0, 7, 0, 7 A93D 75 55 22 25+ .db 0, 0, 0, 0, 0, 0, 60h, 0, 0, 0, 0, 0, 0, 0, 20h, 0 A93D 55 70 00 00+ .db 0, 0, 0, 27h, 67h, 20h, 0, 0, 0, 0, 20h, 0, 2, 44h, 45h, 44h A93D 07 55 52 12+ .db 44h, 42h, 52h, 44h, 44h, 45h, 44h, 42h, 0, 0, 0, 27h, 5, 8, 0, 7 A93D 55 57 55 21+ .db 57h, 0, 8, 5, 7, 20h, 0, 0, 0, 2, 45h, 45h, 44h, 42h, 52h, 44h A93D 25 55 70 00+ .db 45h, 45h, 42h, 0, 0, 0, 0, 0, 20h, 5, 0, 10h, 50h, 10h, 5, 0 A93D 00 00 00 07+ .db 20h, 0, 0, 0, 5, 44h, 42h, 5, 2, 44h, 54h, 42h, 5, 2, 44h, 44h A93D 55 52 22 55+ .db 44h, 50h, 5, 45h, 0, 25h, 20h, 0, 0, 0, 25h, 20h, 0, 0, 54h, 50h A93D 22 25 55 76+ .db 0, 5, 0, 25h, 20h, 0, 0, 0, 25h, 20h, 0, 0, 50h, 0, 5, 45h A93D 00 00 00 00+ .db 0, 25h, 20h, 90h, 70h, 0, 25h, 22h, 22h, 0, 54h, 50h, 5, 0, 0, 25h A93D 00 00 67 55+ .db 22h, 22h, 22h, 22h, 25h, 22h, 22h, 0, 0, 50h, 5, 45h, 0, 25h, 20h, 22h A93D 52 22 22 22+ .db 22h, 20h, 25h, 22h, 72h, 0, 54h, 50h, 0, 75h, 0, 25h, 20h, 22h, 72h, 20h A93D 22 56 00 00+ .db 25h, 22h, 22h, 0, 57h, 0, 5, 45h, 80h, 25h, 20h, 22h, 22h, 20h, 25h, 20h A93D 00 09 00 00+ .db 0, 8, 54h, 50h, 5, 44h, 44h, 5, 4, 0, 0, 4, 5, 4, 44h, 44h A93D 65 22 22 22+ .db 44h, 50h, 5, 0, 0, 25h, 20h, 22h, 22h, 20h, 25h, 20h, 0, 0, 0, 50h A93D 60 00 00 00+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 88h, 0, 0, 0, 0 A93D 00 00 00 00+ .db 0, 0, 0, 0, 0, 0, 0, 77h, 77h, 77h, 60h, 0, 0, 0, 0, 0 A93D 00 00 00 00+ .db 0, 7, 77h, 77h, 76h, 22h, 22h, 22h, 20h, 0, 0, 0, 77h, 77h, 77h, 63h A93D 00 00 60 00+ .db 33h, 33h, 33h, 0, 0, 0, 0, 0, 0, 6, 22h, 22h, 22h, 20h, 0, 0 A93D 00 08 00 00+ .db 0, 0, 0, 0, 0, 0, 0, 6, 60h, 0, 0, 0, 0, 0, 0, 0 A93D 00 00 00 70+ .db 0, 0, 0, 0, 0, 0, 60h, 0, 0, 0, 0, 0, 0, 0, 0, 0 A93D 00 00 00 00+ .db 0, 0, 77h, 77h, 60h, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 A93D 60 33 53 33+ .db 22h, 22h, 50h, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22h, 22h A93D 30 00 00 00+ .db 22h, 22h, 22h, 50h, 0, 0, 0, 0, 0, 0, 0, 0, 22h, 22h, 22h, 22h A93D 00 33 33 53+ .db 22h, 22h, 22h, 25h, 0, 0, 0, 0, 0, 0, 22h, 22h, 22h, 22h, 22h, 22h A93D 33 33 60 00+ .db 22h, 22h, 22h, 25h, 0, 0, 0, 0, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h A93D 50 00 02 70+ .db 22h, 22h, 22h, 50h, 0, 0, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h A93D 00 00 02 00+ .db 22h, 22h, 50h, 0, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h A93D 00 52 04 44+ .db 25h, 0, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 25h, 90h A93D 64 44 54 44+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22h, 22h A93D 44 20 00 00+ .db 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 26h, 66h, 66h, 66h, 66h A93D 24 44 44 53+ .db 66h, 66h, 66h, 66h, 66h, 66h, 66h, 66h, 66h, 66h, 62h, 22h, 22h, 22h, 22h, 22h A93D 50 07 27 00+ .db 22h, 22h, 22h, 22h, 22h, 22h, 22h, 20h, 62h, 0, 40h, 44h, 4, 4, 44h, 44h A93D 50 07 00 02+ .db 40h, 40h, 44h, 4, 0, 25h, 62h, 52h, 2, 77h, 27h, 26h, 67h, 76h, 62h, 72h A93D 00 02 00 00+ .db 77h, 27h, 25h, 25h, 62h, 52h, 50h, 55h, 5, 20h, 0, 0, 2, 44h, 55h, 45h A93D 00 52 54 40+ .db 25h, 25h, 62h, 52h, 22h, 22h, 22h, 33h, 33h, 33h, 33h, 22h, 22h, 22h, 25h, 25h A93D 02 80 54 44+ .db 60h, 50h, 0, 0, 5, 0, 0, 0, 0, 0, 50h, 0, 0, 5, 53h, 22h A93D 02 50 20 20+ .db 22h, 22h, 25h, 23h, 22h, 33h, 32h, 22h, 52h, 22h, 22h, 25h, 53h, 72h, 22h, 22h A93D 00 70 00 53+ .db 22h, 22h, 22h, 72h, 27h, 22h, 22h, 22h, 72h, 25h, 53h, 22h, 72h, 22h, 22h, 22h A93D 00 05 00 20+ .db 72h, 22h, 22h, 22h, 22h, 27h, 27h, 35h, 53h, 72h, 22h, 22h, 22h, 27h, 22h, 22h A93D 00 00 20 50+ .db 22h, 22h, 72h, 22h, 72h, 35h, 53h, 22h, 72h, 22h, 72h, 22h, 22h, 22h, 22h, 22h A93D 01 00 00 00+ .db 22h, 27h, 27h, 35h, 53h, 20h, 0, 0, 0, 0, 0, 0, 0, 0, 98h, 88h A93D 00 52 70 05+ .db 0, 35h, 50h, 0, 52h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 50h, 5 B1FD 44 44 44 44+levels_61_to_70:.db 44h, 44h, 44h, 44h, 44h, 0, 0, 0, 0, 44h, 44h, 44h, 44h, 44h, 50h, 0 B1FD 44 00 00 00+ .db 0, 0, 0, 22h, 22h, 22h, 22h, 0, 0, 0, 0, 5, 50h, 0, 0, 0 B1FD 00 44 44 44+ .db 22h, 22h, 22h, 22h, 22h, 22h, 0, 0, 0, 5, 50h, 0, 80h, 2, 22h, 22h B1FD 44 44 50 00+ .db 22h, 22h, 22h, 22h, 20h, 8, 0, 5, 50h, 33h, 33h, 22h, 22h, 22h, 22h, 22h B1FD 00 00 00 22+ .db 22h, 22h, 22h, 33h, 33h, 5, 50h, 0, 0, 0, 2, 22h, 22h, 22h, 22h, 20h B1FD 22 22 22 00+ .db 0, 0, 0, 5, 50h, 35h, 0, 0, 0, 0, 22h, 22h, 0, 0, 0, 0 B1FD 00 00 00 05+ .db 53h, 5, 33h, 35h, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53h, 33h B1FD 50 00 00 00+ .db 0, 5, 0, 70h, 7, 0, 70h, 7, 0, 70h, 7, 0, 50h, 0, 0, 5 B1FD 22 22 22 22+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50h, 0, 0, 5, 0, 0 B1FD 22 22 00 00+ .db 0, 0, 22h, 22h, 0, 0, 0, 0, 50h, 0, 0, 5, 0, 0, 2, 22h B1FD 00 05 50 00+ .db 11h, 11h, 22h, 20h, 9, 0, 50h, 0, 0, 5, 0, 22h, 21h, 11h, 11h, 11h B1FD 80 02 22 22+ .db 11h, 12h, 22h, 0, 50h, 0, 0, 5, 0, 1, 11h, 11h, 11h, 11h, 11h, 11h B1FD 22 22 22 22+ .db 10h, 0, 50h, 0, 0, 5, 0, 0, 11h, 11h, 11h, 11h, 11h, 11h, 0, 0 B1FD 20 08 00 05+ .db 50h, 0, 0, 5, 0, 0, 0, 11h, 11h, 11h, 11h, 0, 0, 0, 50h, 0 B1FD 50 33 33 22+ .db 44h, 44h, 44h, 44h, 44h, 44h, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 B1FD 22 22 22 22+ .db 0, 0, 0, 5, 0, 0, 2, 0, 4, 4, 0, 0, 0, 70h, 7, 0 B1FD 22 22 22 33+ .db 70h, 85h, 44h, 44h, 2, 22h, 20h, 50h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 20h B1FD 33 05 50 00+ .db 0, 0, 52h, 22h, 20h, 50h, 12h, 22h, 77h, 0, 0, 0, 7, 70h, 44h, 44h B1FD 00 00 02 22+ .db 52h, 22h, 20h, 50h, 12h, 22h, 22h, 70h, 0, 0, 72h, 25h, 0, 0, 2, 2 B1FD 22 22 22 20+ .db 20h, 50h, 17h, 72h, 22h, 27h, 0, 7, 22h, 25h, 44h, 44h, 2, 2, 20h, 50h B1FD 00 00 00 05+ .db 12h, 22h, 22h, 22h, 70h, 72h, 22h, 20h, 0, 0, 52h, 2, 20h, 50h, 17h, 72h B1FD 50 35 00 00+ .db 22h, 22h, 27h, 22h, 22h, 20h, 8, 0, 52h, 2, 20h, 50h, 12h, 22h, 22h, 22h B1FD 00 00 22 22+ .db 22h, 22h, 22h, 25h, 22h, 22h, 22h, 77h, 20h, 50h, 17h, 72h, 0, 0, 0, 0 B1FD 00 00 00 00+ .db 0, 5, 0, 0, 2, 22h, 20h, 50h, 12h, 22h, 26h, 20h, 0, 9, 0, 5 B1FD 53 05 33 35+ .db 0, 0, 0, 0, 8, 50h, 17h, 72h, 26h, 22h, 22h, 22h, 22h, 22h, 25h, 22h B1FD 00 00 00 00+ .db 22h, 22h, 22h, 22h, 12h, 22h, 26h, 0, 0, 22h, 27h, 22h, 25h, 22h, 22h, 27h B1FD 00 00 00 00+ .db 0, 0, 0, 0, 26h, 0, 0, 22h, 22h, 72h, 25h, 22h, 70h, 72h, 25h, 0 B1FD 00 00 53 33+ .db 0, 7, 26h, 70h, 7, 22h, 22h, 20h, 5, 0, 22h, 22h, 22h, 22h, 22h, 22h B1FD 00 05 00 70+ .db 0, 0, 0, 80h, 0, 60h, 0, 0, 6, 0, 0, 80h, 0, 0, 0, 0 B1FD 07 00 70 07+ .db 0, 0, 0, 6, 0, 0, 60h, 0, 0, 0, 0, 0, 0, 0, 0, 0 B1FD 00 70 07 00+ .db 0, 0, 60h, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72h B1FD 50 00 00 05+ .db 22h, 52h, 22h, 70h, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27h, 27h, 57h B1FD 00 00 00 00+ .db 27h, 20h, 0, 0, 0, 0, 0, 70h, 0, 0, 2, 75h, 5, 25h, 5, 72h B1FD 00 00 00 00+ .db 0, 0, 70h, 70h, 0, 22h, 52h, 52h, 22h, 22h, 25h, 5, 22h, 22h, 22h, 52h B1FD 00 00 50 00+ .db 52h, 20h, 7, 20h, 52h, 50h, 0, 0, 5, 55h, 0, 0, 0, 52h, 57h, 20h B1FD 00 05 00 00+ .db 2, 5, 52h, 55h, 55h, 55h, 55h, 55h, 55h, 55h, 55h, 52h, 55h, 2, 2, 58h B1FD 00 00 22 22+ .db 70h, 25h, 55h, 55h, 55h, 25h, 55h, 55h, 55h, 20h, 78h, 52h, 0, 22h, 25h, 2 B1FD 00 00 00 00+ .db 50h, 70h, 5, 5, 0, 70h, 52h, 5, 22h, 20h, 0, 7, 22h, 52h, 22h, 22h B1FD 50 00 00 05+ .db 22h, 52h, 22h, 22h, 22h, 52h, 27h, 0, 0, 2, 20h, 50h, 0, 0, 70h, 50h B1FD 00 00 02 22+ .db 70h, 0, 0, 50h, 22h, 0, 0, 2, 5, 22h, 55h, 55h, 55h, 25h, 55h, 55h B1FD 11 11 22 20+ .db 52h, 25h, 2, 0, 7, 0, 52h, 22h, 55h, 52h, 55h, 55h, 52h, 55h, 52h, 22h B1FD 09 00 50 00+ .db 59h, 70h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h B1FD 00 05 00 22+ .db 20h, 0, 4, 0, 0, 9, 0, 0, 40h, 0, 2, 7, 0, 0, 22h, 22h B1FD 21 11 11 11+ .db 50h, 22h, 22h, 22h, 22h, 22h, 5, 22h, 22h, 2, 22h, 25h, 22h, 22h, 50h, 20h B1FD 11 12 22 00+ .db 2, 22h, 22h, 2, 5, 22h, 22h, 0, 7, 5, 27h, 22h, 50h, 20h, 22h, 22h B1FD 50 00 00 05+ .db 20h, 2, 5, 22h, 72h, 5, 22h, 22h, 22h, 22h, 50h, 20h, 2, 22h, 22h, 2 B1FD 00 01 11 11+ .db 5, 22h, 22h, 5, 70h, 0, 22h, 72h, 50h, 20h, 22h, 22h, 20h, 2, 5, 27h B1FD 11 11 11 11+ .db 22h, 2, 22h, 25h, 22h, 22h, 50h, 20h, 2, 22h, 22h, 2, 5, 22h, 22h, 0 B1FD 10 00 50 00+ .db 0, 75h, 27h, 22h, 50h, 20h, 22h, 22h, 20h, 2, 5, 22h, 22h, 5, 22h, 22h B1FD 00 05 00 00+ .db 22h, 22h, 50h, 20h, 2, 22h, 22h, 2, 5, 2, 22h, 5, 7, 0, 22h, 72h B1FD 11 11 11 11+ .db 50h, 20h, 22h, 22h, 20h, 2, 5, 22h, 22h, 2, 22h, 25h, 22h, 22h, 50h, 20h B1FD 11 11 00 00+ .db 2, 22h, 22h, 2, 5, 27h, 22h, 0, 70h, 5, 27h, 22h, 50h, 27h, 22h, 22h B1FD 50 00 00 05+ .db 27h, 72h, 5, 22h, 22h, 5, 22h, 22h, 22h, 22h, 50h, 22h, 22h, 22h, 22h, 22h B1FD 00 00 00 11+ .db 5, 22h, 70h, 5, 0, 70h, 22h, 72h, 50h, 22h, 22h, 22h, 22h, 22h, 5, 22h B1FD 11 11 11 00+ .db 22h, 2, 22h, 25h, 22h, 22h, 50h, 8, 0, 0, 8, 0, 5, 22h, 22h, 0 B1FD 00 00 50 00+ .db 80h, 5, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h B1FD 44 44 44 44+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 B1FD 44 44 00 00+ .db 0, 0, 0, 88h, 6, 60h, 88h, 0, 0, 0, 0, 0, 0, 0, 0, 0 B1FD 00 00 00 00+ .db 7, 77h, 62h, 26h, 77h, 70h, 0, 0, 0, 0, 0, 7, 77h, 77h, 63h, 33h B1FD 00 00 00 00+ .db 33h, 33h, 33h, 36h, 77h, 77h, 70h, 0, 0, 62h, 22h, 22h, 20h, 0, 0, 0 B1FD 00 00 00 05+ .db 0, 2, 22h, 22h, 26h, 0, 0, 66h, 60h, 0, 0, 0, 0, 0, 0, 0 B1FD 00 00 02 00+ .db 0, 6, 66h, 0, 0, 0, 60h, 0, 0, 0, 0, 0, 0, 0, 0, 6 B1FD 04 04 00 00+ .db 0, 0, 0, 0, 60h, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0 B1FD 00 70 07 00+ .db 0, 0, 60h, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0 B1FD 70 85 44 44+ .db 60h, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 60h, 0 B1FD 02 22 20 50+ .db 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 60h, 0, 0, 0 B1FD 22 22 22 22+ .db 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 60h, 0, 0, 0, 0, 0 B1FD 22 22 22 20+ .db 0, 0, 0, 6, 0, 0, 0, 0, 60h, 0, 0, 0, 0, 0, 0, 0 B1FD 00 00 52 22+ .db 0, 6, 0, 0, 0, 0, 60h, 0, 0, 0, 0, 9, 0, 0, 0, 6 B1FD 20 50 12 22+ .db 0, 0, 32h, 22h, 22h, 23h, 22h, 22h, 23h, 32h, 22h, 22h, 32h, 22h, 22h, 23h B1FD 77 00 00 00+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 B1FD 07 70 44 44+ .db 0, 0, 5, 22h, 0, 0, 22h, 50h, 0, 0, 0, 0, 0, 0, 0, 0 B1FD 52 22 20 50+ .db 52h, 20h, 0, 0, 2, 25h, 0, 0, 0, 0, 0, 0, 0, 5, 22h, 0 B1FD 12 22 22 70+ .db 0, 0, 0, 22h, 50h, 0, 0, 0, 0, 0, 0, 52h, 27h, 0, 80h, 0 B1FD 00 00 72 25+ .db 0, 72h, 25h, 0, 0, 0, 0, 74h, 45h, 22h, 22h, 22h, 22h, 22h, 22h, 22h B1FD 00 00 02 02+ .db 22h, 54h, 47h, 80h, 5, 25h, 0, 2, 27h, 0, 0, 0, 0, 72h, 20h, 0 B1FD 20 50 17 72+ .db 52h, 50h, 5, 52h, 50h, 0, 22h, 7, 0, 0, 70h, 22h, 0, 5, 25h, 50h B1FD 22 27 00 07+ .db 7, 55h, 25h, 80h, 2, 22h, 20h, 2, 22h, 20h, 0, 52h, 55h, 70h, 0, 75h B1FD 22 25 44 44+ .db 52h, 50h, 0, 22h, 20h, 2, 22h, 0, 5, 25h, 57h, 0, 0, 7, 55h, 25h B1FD 02 02 20 50+ .db 0, 2, 27h, 92h, 20h, 0, 52h, 55h, 70h, 0, 0, 0, 75h, 52h, 50h, 0 B1FD 12 22 22 22+ .db 22h, 22h, 0, 5, 25h, 57h, 0, 0, 0, 0, 7, 55h, 25h, 0, 5, 50h B1FD 70 72 22 20+ .db 0, 52h, 55h, 70h, 0, 0, 0, 0, 0, 75h, 52h, 50h, 5, 50h, 5, 25h B1FD 00 00 52 02+ .db 57h, 0, 0, 0, 70h, 8, 0, 7, 52h, 25h, 5, 50h, 52h, 25h, 70h, 0 B1FD 20 50 17 72+ .db 80h, 7, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h B1FD 22 22 27 22+ .db 0, 8, 88h, 0, 0, 0, 0, 0, 0, 0, 0, 0, 90h, 0, 0, 2 B1FD 22 20 08 00+ .db 22h, 50h, 0, 22h, 25h, 0, 2, 22h, 50h, 5, 22h, 20h, 70h, 0, 0, 57h B1FD 52 02 20 50+ .db 0, 0, 5, 70h, 0, 0, 57h, 5, 0, 0, 22h, 50h, 0, 2, 25h, 0 B1FD 12 22 22 22+ .db 0, 22h, 50h, 0, 52h, 25h, 0, 0, 0, 50h, 0, 0, 5, 0, 0, 0 B1FD 22 22 22 25+ .db 50h, 0, 0, 5, 0, 0, 0, 2, 22h, 0, 5, 22h, 20h, 0, 52h, 22h B1FD 22 22 22 77+ .db 0, 0, 22h, 25h, 70h, 0, 0, 7, 0, 0, 0, 70h, 0, 0, 7, 0 B1FD 20 50 17 72+ .db 0, 5, 22h, 0, 0, 2, 20h, 0, 0, 22h, 0, 0, 2, 20h, 0, 5 B1FD 00 00 00 00+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 2 B1FD 00 05 00 00+ .db 22h, 0, 0, 22h, 20h, 0, 2, 22h, 0, 5, 22h, 20h, 70h, 0, 0, 7 B1FD 02 22 20 50+ .db 0, 0, 0, 70h, 0, 0, 7, 5, 0, 0, 22h, 0, 0, 2, 20h, 0 B1FD 12 22 26 20+ .db 0, 22h, 0, 0, 52h, 25h, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 B1FD 00 09 00 05+ .db 0, 0, 50h, 0, 0, 0, 0, 52h, 22h, 50h, 5, 22h, 25h, 0, 52h, 22h B1FD 00 00 00 00+ .db 50h, 5, 22h, 25h, 70h, 50h, 0, 57h, 5, 0, 5, 70h, 50h, 0, 57h, 5 B1FD 08 50 17 72+ .db 0, 5, 22h, 50h, 0, 2, 20h, 0, 5, 22h, 0, 0, 52h, 20h, 0, 5 B1FD 26 22 22 22+ .db 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0 B1FD 22 22 25 22+ .db 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 70h, 0, 0, 0 B1FD 22 22 22 22+ .db 0, 0, 6, 60h, 0, 0, 0, 0, 0, 7, 25h, 5, 44h, 44h, 44h, 44h B1FD 12 22 26 00+ .db 44h, 64h, 44h, 44h, 44h, 44h, 50h, 52h, 22h, 55h, 8, 0, 0, 0, 0, 0 B1FD 00 22 27 22+ .db 0, 0, 0, 70h, 55h, 22h, 22h, 25h, 5, 44h, 44h, 44h, 4, 44h, 44h, 44h B1FD 25 22 22 27+ .db 44h, 50h, 52h, 22h, 22h, 22h, 55h, 7, 0, 0, 0, 0, 0, 0, 0, 55h B1FD 00 00 00 00+ .db 22h, 22h, 22h, 22h, 15h, 5, 44h, 44h, 44h, 4, 44h, 44h, 58h, 51h, 22h, 22h B1FD 26 00 00 22+ .db 22h, 22h, 12h, 55h, 0, 0, 0, 0, 0, 70h, 55h, 21h, 22h, 22h, 22h, 22h B1FD 22 72 25 22+ .db 12h, 25h, 5, 44h, 40h, 44h, 44h, 50h, 52h, 21h, 22h, 22h, 22h, 22h, 12h, 22h B1FD 70 72 25 00+ .db 55h, 7, 0, 0, 0, 55h, 22h, 21h, 22h, 22h, 22h, 22h, 12h, 22h, 25h, 5 B1FD 00 07 26 70+ .db 44h, 4, 50h, 52h, 22h, 21h, 22h, 22h, 22h, 22h, 12h, 22h, 22h, 55h, 0, 0 B1FD 07 22 22 20+ .db 55h, 22h, 22h, 21h, 22h, 22h, 22h, 22h, 12h, 22h, 22h, 25h, 0, 0, 52h, 22h B1FD 05 00 22 22+ .db 22h, 21h, 22h, 22h, 22h, 22h, 12h, 22h, 22h, 22h, 59h, 75h, 22h, 22h, 22h, 21h B1FD 22 22 22 22+ .db 22h, 22h, 22h, 22h, 80h, 0, 0, 0, 52h, 25h, 0, 0, 0, 0, 22h, 22h B1FD 00 00 00 80+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0 B1FD 00 60 00 00+ .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0 B1FD 06 00 00 80+ .db 0, 0, 0, 0, 0, 0, 8, 47h, 77h, 46h, 0, 74h, 74h, 0, 0, 0 B1FD 00 00 00 00+ .db 0, 0, 0, 0, 5, 72h, 22h, 75h, 75h, 20h, 20h, 74h, 0, 0, 0, 0 B1FD 00 00 00 06+ .db 0, 0, 75h, 22h, 22h, 25h, 25h, 0, 0, 20h, 0, 0, 0, 0, 0, 70h B1FD 00 00 60 00+ .db 25h, 22h, 72h, 25h, 5, 0, 0, 0, 74h, 0, 0, 0, 0, 25h, 45h, 22h B1FD 00 00 00 00+ .db 22h, 25h, 5, 0, 0, 0, 20h, 0, 0, 0, 70h, 45h, 0, 72h, 22h, 70h B1FD 00 00 00 00+ .db 5, 0, 0, 0, 0, 0, 0, 0, 25h, 0, 0, 0, 0, 0, 5, 0 B1FD 00 00 60 06+ .db 0, 0, 0, 70h, 0, 0, 5, 0, 0, 77h, 77h, 0, 5, 0, 0, 0 B1FD 00 00 00 00+ .db 0, 20h, 0, 70h, 45h, 0, 7, 22h, 22h, 70h, 5, 0, 0, 0, 0, 0 B1FD 00 00 00 00+ .db 0, 25h, 0, 0, 2, 22h, 25h, 10h, 5, 0, 0, 0, 0, 7, 40h, 5 B1FD 00 00 00 72+ .db 0, 0, 2, 22h, 51h, 20h, 5, 0, 0, 0, 0, 2, 7, 45h, 0, 0 B1FD 22 52 22 70+ .db 2, 25h, 12h, 20h, 5, 0, 0, 0, 0, 0, 72h, 5, 0, 0, 2, 51h B1FD 00 00 00 00+ .db 22h, 20h, 5, 0, 90h, 0, 0, 0, 20h, 5, 8, 0, 5, 12h, 22h, 20h B1FD 00 00 00 00+ .db 63h, 0, 3, 33h, 33h, 0, 0, 0, 0, 0, 3, 70h, 0, 0, 63h, 33h B1FD 00 27 27 57+ .db 7, 77h, 77h, 88h, 33h, 33h, 33h, 33h, 33h, 22h, 22h, 25h, 66h, 65h, 3, 33h B1FD 27 20 00 00+ .db 33h, 33h, 0, 0, 5, 55h, 50h, 0, 0, 5, 0, 25h, 0, 0, 0, 0 B1FD 00 00 00 70+ .db 2, 22h, 20h, 0, 5, 4, 40h, 5, 52h, 75h, 2, 22h, 22h, 22h, 20h, 0 B1FD 00 00 02 75+ .db 0, 0, 25h, 20h, 72h, 50h, 52h, 22h, 2, 40h, 40h, 40h, 0, 52h, 50h, 2 B1FD 05 25 05 72+ .db 25h, 22h, 22h, 50h, 52h, 70h, 2, 72h, 72h, 72h, 52h, 52h, 52h, 27h, 25h, 25h B1FD 00 00 70 70+ .db 2, 50h, 52h, 22h, 3, 33h, 33h, 35h, 52h, 56h, 73h, 0, 25h, 25h, 0, 5 B1FD 00 22 52 52+ .db 54h, 44h, 0, 4, 40h, 45h, 2, 0, 3, 44h, 44h, 45h, 2, 5, 0, 5 B1FD 22 22 25 05+ .db 2, 50h, 2, 70h, 3, 33h, 33h, 33h, 33h, 33h, 33h, 35h, 22h, 25h, 2, 50h B1FD 22 22 22 52+ .db 2, 22h, 22h, 4, 4, 4, 4, 4, 4, 5, 75h, 25h, 2, 52h, 0, 0 B1FD 52 20 07 20+ .db 2, 0, 20h, 50h, 20h, 27h, 27h, 25h, 0, 25h, 2, 52h, 0, 70h, 2, 52h B1FD 52 50 00 00+ .db 72h, 52h, 72h, 2, 2, 5, 33h, 33h, 3, 33h, 33h, 33h, 33h, 0, 20h, 50h B1FD 05 55 00 00+ .db 10h, 27h, 27h, 25h, 0, 0, 0, 0, 0, 8, 90h, 0, 0, 50h, 0, 0 B1FD 00 52 57 20+ .db 0, 5, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h BABD 02 22 22 90+level_71: .db 2, 22h, 22h, 90h, 0, 0, 0, 0, 0, 0, 8, 22h, 22h, 20h, 65h, 0 BABD 00 00 00 00+ .db 2, 20h, 0, 0, 0, 0, 0, 0, 2, 20h, 0, 56h, 65h, 22h, 40h, 22h BABD 00 00 08 22+ .db 0, 52h, 22h, 22h, 25h, 0, 22h, 22h, 22h, 56h, 65h, 22h, 2, 2, 5, 20h BABD 22 20 65 00+ .db 0, 0, 2, 50h, 20h, 22h, 72h, 56h, 65h, 2, 71h, 5, 52h, 0, 0, 0 BABD 02 20 00 00+ .db 0, 25h, 50h, 27h, 22h, 56h, 5, 27h, 12h, 45h, 20h, 0, 0, 0, 0, 2 BABD 00 00 00 00+ .db 50h, 22h, 22h, 50h, 50h, 22h, 20h, 72h, 0, 48h, 40h, 4, 84h, 0, 25h, 2 BABD 02 20 00 56+ .db 22h, 5, 5, 0, 21h, 22h, 0, 2, 0, 0, 20h, 0, 21h, 22h, 0, 50h BABD 65 22 40 22+ .db 50h, 0, 0, 2, 25h, 27h, 25h, 52h, 72h, 52h, 20h, 0, 0, 5, 5, 0 BABD 00 52 22 22+ .db 0, 0, 25h, 2, 0, 0, 20h, 52h, 0, 0, 0, 50h, 50h, 0, 0, 0 BABD 25 00 22 22+ .db 22h, 50h, 0, 0, 5, 22h, 0, 0, 0, 5, 5, 0, 0, 0, 2, 50h BABD 22 56 65 22+ .db 0, 0, 5, 20h, 0, 0, 0, 50h, 50h, 0, 0, 7, 2, 25h, 0, 0 BABD 02 02 05 20+ .db 52h, 20h, 70h, 0, 0, 5, 5, 0, 0, 44h, 40h, 22h, 50h, 5, 12h, 4 BABD 00 00 02 50+ .db 44h, 0, 0, 50h, 50h, 0, 0, 0, 44h, 2, 20h, 52h, 70h, 44h, 0, 0 BABD 20 22 72 56+ .db 0, 5, 52h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 62h, 22h, 22h, 22h, 22h, 25h BB9D 00 00 00 00+level_72: .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 50h, 0, 60h, 0, 0, 0, 0 BB9D 00 00 00 00+ .db 0, 0, 44h, 0, 0, 0, 0, 50h, 0, 60h, 0, 0, 70h, 0, 70h, 4 BB9D 00 50 00 60+ .db 40h, 50h, 0, 0, 44h, 50h, 7, 68h, 0, 0, 22h, 22h, 54h, 40h, 0, 50h BB9D 00 00 00 00+ .db 80h, 4, 44h, 21h, 22h, 52h, 50h, 0, 0, 0, 50h, 3, 21h, 25h, 0, 44h BB9D 00 00 44 00+ .db 47h, 27h, 0, 62h, 50h, 0, 11h, 22h, 25h, 0, 70h, 5, 45h, 33h, 3, 22h BB9D 00 00 00 50+ .db 22h, 22h, 50h, 0, 17h, 0, 5, 0, 30h, 0, 5, 0, 3, 33h, 30h, 44h BB9D 00 60 00 00+ .db 50h, 0, 1, 70h, 5, 0, 0, 0, 75h, 7, 0, 0, 5, 30h, 0, 0 BB9D 70 00 70 04+ .db 0, 27h, 5, 21h, 22h, 53h, 33h, 33h, 35h, 21h, 35h, 30h, 0, 0, 0, 52h BB9D 40 50 00 00+ .db 75h, 0, 0, 50h, 7, 0, 5, 0, 5, 30h, 0, 0, 0, 50h, 15h, 30h BB9D 44 50 07 68+ .db 0, 52h, 12h, 22h, 25h, 22h, 35h, 30h, 0, 0, 0, 50h, 45h, 0, 70h, 50h BB9D 00 00 22 22+ .db 7, 0, 5, 0, 35h, 30h, 0, 0, 0, 53h, 7, 0, 30h, 52h, 22h, 21h BB9D 54 40 00 50+ .db 25h, 3, 75h, 73h, 0, 0, 0, 50h, 3, 0, 0, 50h, 7, 0, 5, 3 BB9D 80 04 44 21+ .db 35h, 33h, 0, 0, 0, 50h, 0, 0, 0, 52h, 21h, 22h, 25h, 0, 85h, 0 BB9D 22 52 50 00+ .db 0, 0, 22h, 22h, 22h, 22h, 22h, 50h, 8, 0, 95h, 22h, 22h, 22h, 22h, 22h BC7D 00 00 00 34+level_73: .db 0, 0, 0, 34h, 44h, 44h, 44h, 0, 44h, 40h, 55h, 22h, 50h, 6, 70h, 0 BC7D 44 44 44 00+ .db 87h, 34h, 44h, 44h, 47h, 22h, 0, 5, 52h, 25h, 50h, 6, 22h, 25h, 22h, 30h BC7D 44 40 55 22+ .db 0, 0, 72h, 20h, 0, 55h, 22h, 55h, 70h, 6, 0, 5, 0, 30h, 0, 7 BC7D 50 06 70 00+ .db 22h, 0, 5, 52h, 25h, 57h, 3, 36h, 70h, 5, 7, 30h, 0, 72h, 20h, 0 BC7D 87 34 44 44+ .db 55h, 22h, 55h, 70h, 33h, 6, 22h, 25h, 22h, 30h, 7, 22h, 0, 5, 52h, 25h BC7D 47 22 00 05+ .db 57h, 3, 30h, 6, 0, 95h, 0, 30h, 72h, 20h, 0, 55h, 22h, 55h, 70h, 33h BC7D 52 25 50 06+ .db 7, 76h, 22h, 25h, 7, 37h, 22h, 0, 5, 52h, 25h, 57h, 3, 30h, 52h, 20h BC7D 22 25 22 30+ .db 22h, 25h, 22h, 32h, 20h, 0, 55h, 22h, 55h, 70h, 33h, 0, 57h, 70h, 27h, 25h BC7D 00 00 72 20+ .db 0, 30h, 70h, 5, 58h, 5, 57h, 3, 30h, 52h, 22h, 20h, 22h, 25h, 7, 32h BC7D 00 55 22 55+ .db 22h, 22h, 22h, 22h, 22h, 53h, 0, 57h, 8, 70h, 72h, 25h, 22h, 34h, 44h, 44h BC7D 70 06 00 05+ .db 44h, 44h, 44h, 53h, 5, 22h, 22h, 20h, 22h, 25h, 7, 37h, 7, 0, 50h, 0 BC7D 00 30 00 07+ .db 0, 3, 5, 70h, 0, 70h, 23h, 33h, 33h, 32h, 22h, 0, 50h, 22h, 22h, 3 BC7D 22 00 05 52+ .db 5, 22h, 22h, 20h, 0, 0, 0, 0, 0, 8, 52h, 27h, 72h, 23h, 5, 70h BC7D 25 57 03 36+ .db 0, 70h, 22h, 22h, 22h, 22h, 22h, 22h, 32h, 22h, 22h, 23h, 2, 22h, 22h, 22h BD5D 22 22 22 22+level_74: .db 22h, 22h, 22h, 22h, 22h, 22h, 60h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 24h, 44h BD5D 22 22 60 22+ .db 44h, 44h, 44h, 20h, 60h, 2, 44h, 44h, 44h, 44h, 42h, 0, 2, 70h, 5, 0 BD5D 22 22 22 22+ .db 72h, 0, 60h, 0, 27h, 0, 50h, 7, 20h, 0, 0, 27h, 5, 7, 20h, 0 BD5D 22 22 24 44+ .db 60h, 0, 2, 70h, 50h, 72h, 0, 0, 0, 2, 75h, 72h, 0, 0, 60h, 0 BD5D 44 44 44 20+ .db 0, 27h, 57h, 20h, 0, 0, 0, 0, 25h, 20h, 0, 0, 63h, 33h, 33h, 22h BD5D 60 02 44 44+ .db 52h, 0, 0, 0, 9, 0, 25h, 20h, 0, 0, 63h, 0, 7, 2, 52h, 0 BD5D 44 44 42 00+ .db 80h, 0, 22h, 25h, 25h, 22h, 22h, 22h, 12h, 22h, 22h, 22h, 52h, 22h, 22h, 25h BD5D 02 70 05 00+ .db 0, 5, 5, 8, 0, 0, 0, 0, 0, 0, 50h, 0, 0, 5, 52h, 23h BD5D 72 00 60 00+ .db 25h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 52h, 32h, 22h, 22h, 54h, 44h, 25h, 24h BD5D 27 00 50 07+ .db 44h, 44h, 44h, 44h, 44h, 42h, 52h, 0, 0, 0, 50h, 72h, 5, 2, 70h, 0 BD5D 20 00 00 27+ .db 0, 0, 7, 20h, 50h, 20h, 0, 0, 57h, 20h, 75h, 70h, 27h, 0, 0, 0 BD5D 05 07 20 00+ .db 72h, 0, 50h, 2, 0, 0, 52h, 7, 25h, 27h, 2, 70h, 5, 22h, 20h, 0 BD5D 60 00 02 70+ .db 50h, 0, 20h, 70h, 50h, 72h, 25h, 72h, 55h, 23h, 52h, 32h, 0, 80h, 50h, 7 BD5D 50 72 00 00+ .db 2, 22h, 22h, 22h, 22h, 22h, 25h, 0, 50h, 72h, 22h, 22h, 22h, 22h, 22h, 22h BE3D 00 22 02 20+level_75: .db 0, 22h, 2, 20h, 22h, 22h, 0, 0, 22h, 22h, 2, 20h, 22h, 0, 6, 22h BE3D 22 22 00 00+ .db 62h, 26h, 22h, 22h, 9, 80h, 22h, 22h, 62h, 26h, 22h, 60h, 6, 60h, 62h, 26h BE3D 22 22 02 20+ .db 22h, 20h, 52h, 25h, 2, 22h, 62h, 26h, 6, 60h, 62h, 86h, 60h, 66h, 0, 5 BE3D 22 00 06 22+ .db 30h, 3, 50h, 0, 66h, 6, 68h, 26h, 62h, 20h, 6, 0, 0, 53h, 7, 70h BE3D 62 26 22 22+ .db 35h, 0, 0, 60h, 2, 26h, 22h, 0, 60h, 0, 0, 50h, 0, 0, 5, 0 BE3D 09 80 22 22+ .db 0, 6, 0, 22h, 0, 6, 0, 0, 1, 52h, 22h, 22h, 25h, 10h, 0, 0 BE3D 62 26 22 60+ .db 60h, 0, 0, 60h, 0, 0, 10h, 50h, 0, 5, 25h, 1, 0, 0, 6, 0 BE3D 06 60 62 26+ .db 0, 60h, 0, 1, 5, 20h, 2, 20h, 5, 0, 10h, 0, 6, 0, 6, 0 BE3D 22 20 52 25+ .db 0, 10h, 5, 50h, 22h, 32h, 50h, 37h, 1, 0, 0, 60h, 6, 0, 1, 7 BE3D 02 22 62 26+ .db 20h, 50h, 22h, 72h, 5, 0, 0, 10h, 0, 60h, 0, 60h, 10h, 0, 45h, 0 BE3D 06 60 62 86+ .db 73h, 20h, 3, 50h, 0, 1, 6, 0, 0, 61h, 7, 52h, 0, 25h, 0, 70h BE3D 60 66 00 05+ .db 0, 54h, 35h, 0, 16h, 0, 6, 10h, 42h, 54h, 0, 0, 34h, 34h, 44h, 44h BE3D 30 03 50 00+ .db 45h, 34h, 1, 60h, 6, 1, 0, 7, 52h, 60h, 7, 0, 62h, 70h, 5, 0 BE3D 66 06 68 26+ .db 10h, 60h, 0, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 0 BF1D 04 44 40 00+level_76: .db 4, 44h, 40h, 0, 0, 0, 8, 90h, 0, 0, 0, 4, 44h, 40h, 50h, 0 BF1D 00 00 08 90+ .db 2, 25h, 70h, 0, 0, 0, 0, 7, 52h, 20h, 0, 5, 50h, 0, 2, 25h BF1D 00 00 00 04+ .db 70h, 0, 0, 0, 0, 7, 52h, 20h, 0, 5, 50h, 0, 0, 22h, 57h, 0 BF1D 44 40 50 00+ .db 0, 0, 0, 75h, 22h, 0, 0, 5, 57h, 7, 0, 22h, 57h, 0, 0, 0 BF1D 02 25 70 00+ .db 0, 75h, 22h, 0, 70h, 75h, 52h, 22h, 25h, 2, 25h, 70h, 0, 0, 7, 52h BF1D 00 00 00 07+ .db 20h, 52h, 22h, 25h, 57h, 0, 75h, 2, 25h, 70h, 0, 0, 7, 52h, 20h, 57h BF1D 52 20 00 05+ .db 0, 75h, 52h, 22h, 22h, 50h, 22h, 57h, 0, 0, 75h, 22h, 5, 22h, 22h, 25h BF1D 50 00 02 25+ .db 57h, 80h, 87h, 50h, 22h, 57h, 0, 0, 75h, 22h, 5, 78h, 8, 75h, 52h, 22h BF1D 70 00 00 00+ .db 22h, 25h, 2, 25h, 70h, 7, 52h, 20h, 52h, 22h, 22h, 25h, 57h, 0, 0, 75h BF1D 00 07 52 20+ .db 2, 25h, 70h, 7, 52h, 20h, 57h, 0, 0, 75h, 52h, 22h, 22h, 22h, 50h, 22h BF1D 00 05 50 00+ .db 57h, 75h, 22h, 5, 22h, 22h, 22h, 25h, 57h, 0, 0, 7, 50h, 22h, 22h, 22h BF1D 00 22 57 00+ .db 22h, 5, 70h, 0, 0, 75h, 52h, 22h, 22h, 22h, 25h, 2, 22h, 12h, 20h, 52h BF1D 00 00 00 75+ .db 22h, 22h, 22h, 25h, 57h, 0, 0, 0, 75h, 7, 72h, 17h, 70h, 57h, 0, 0 BF1D 22 00 00 05+ .db 0, 75h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 22h, 26h, 22h, 22h, 22h, 22h, 22h BFFD 45 .db 45h ; E BFFE 02 .db 2 ; BFFF 51 .db 51h ; Q BFFF ; end of 'seg000' BFFF BFFF BFFF .end