4000: Screen
loading
4000 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4008 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4010 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4018 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4020 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4028 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4030 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4038 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4040 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4048 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4050 DEFB $00,$00,$00,$00,$FF,$FF,$FF,$FF
4058 DEFB $FF,$FF,$FF,$FF,$FF,$FF,$00,$00
4060 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4068 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4070 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4078 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4080 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4088 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4090 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4098 DEFB $00,$00,$00,$00,$00,$00,$00,$00
40A0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
40A8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
40B0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
40B8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
40C0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
40C8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
40D0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
40D8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
40E0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
40E8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
40F0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
40F8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4100 DEFB $F8,$FE,$FE,$FE,$C6,$FE,$FE,$C6
4108 DEFB $C0,$00,$00,$00,$00,$00,$00,$00
4110 DEFB $00,$00,$00,$00,$FE,$FE,$C6,$FE
4118 DEFB $FE,$FE,$C0,$FE,$00,$00,$00,$00
4120 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4128 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4130 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4138 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4140 DEFB $FE,$00,$FE,$FE,$FE,$C6,$FE,$C6
4148 DEFB $00,$FE,$FE,$00,$FE,$FE,$C6,$F8
4150 DEFB $FE,$FE,$00,$00,$CF,$FF,$31,$01
4158 DEFB $39,$01,$01,$01,$01,$07,$00,$00
4160 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4168 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4170 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4178 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4180 DEFB $FE,$00,$FE,$FE,$7E,$C0,$00,$C6
4188 DEFB $FE,$C6,$FE,$FE,$00,$FE,$FE,$FE
4190 DEFB $CE,$00,$00,$00,$FE,$00,$CE,$FE
4198 DEFB $C6,$FE,$FE,$FE,$FE,$C6,$00,$00
41A0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
41A8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
41B0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
41B8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
41C0 DEFB $FE,$00,$FE,$00,$FE,$FE,$C0,$FE
41C8 DEFB $00,$FE,$00,$C6,$7E,$FE,$00,$00
41D0 DEFB $00,$00,$00,$00,$FE,$00,$FE,$7E
41D8 DEFB $C6,$FE,$C0,$FE,$7E,$FE,$00,$00
41E0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
41E8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
41F0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
41F8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4200 DEFB $FC,$FE,$FE,$FE,$C6,$FE,$FE,$C6
4208 DEFB $C0,$00,$00,$00,$00,$00,$00,$00
4210 DEFB $00,$00,$00,$00,$FE,$FE,$E6,$FE
4218 DEFB $FE,$FE,$C0,$FE,$00,$00,$00,$00
4220 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4228 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4230 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4238 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4240 DEFB $FE,$00,$FE,$FE,$FE,$C6,$FE,$E6
4248 DEFB $00,$FE,$FE,$00,$FE,$FE,$E6,$FC
4250 DEFB $FE,$FE,$00,$00,$8F,$FF,$27,$01
4258 DEFB $39,$01,$01,$01,$01,$03,$00,$00
4260 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4268 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4270 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4278 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4280 DEFB $FE,$00,$FE,$FE,$7E,$C0,$00,$C6
4288 DEFB $FE,$C6,$FE,$FE,$00,$FE,$FE,$FE
4290 DEFB $D8,$00,$00,$00,$FE,$00,$D8,$FE
4298 DEFB $EE,$FE,$FE,$FE,$FE,$E6,$00,$00
42A0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
42A8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
42B0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
42B8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
42C0 DEFB $FE,$00,$FE,$00,$FE,$FE,$C0,$FE
42C8 DEFB $00,$FE,$00,$EE,$7E,$FE,$00,$00
42D0 DEFB $00,$00,$00,$00,$FE,$00,$FE,$7E
42D8 DEFB $E6,$FE,$C0,$FE,$7E,$FE,$00,$00
42E0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
42E8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
42F0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
42F8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4300 DEFB $C6,$C2,$C6,$18,$FE,$C6,$C6,$C6
4308 DEFB $C0,$00,$00,$00,$00,$00,$00,$00
4310 DEFB $00,$00,$00,$00,$C6,$C6,$F6,$18
4318 DEFB $C2,$C6,$C0,$C0,$00,$00,$00,$00
4320 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4328 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4330 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4338 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4340 DEFB $C6,$00,$C2,$C2,$18,$C6,$C2,$F6
4348 DEFB $00,$18,$C6,$00,$C0,$C2,$F6,$C6
4350 DEFB $C2,$C2,$00,$00,$0F,$FF,$0F,$3D
4358 DEFB $01,$39,$39,$39,$3D,$39,$00,$00
4360 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4368 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4370 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4378 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4380 DEFB $C6,$00,$06,$C6,$18,$C0,$00,$FE
4388 DEFB $C6,$C6,$C0,$C2,$00,$C2,$C6,$C6
4390 DEFB $F0,$00,$00,$00,$02,$00,$F0,$C2
4398 DEFB $FE,$C6,$C0,$18,$C6,$F6,$00,$00
43A0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
43A8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
43B0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
43B8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
43C0 DEFB $C6,$00,$C6,$00,$C0,$C6,$C0,$C2
43C8 DEFB $00,$C6,$00,$FE,$18,$C6,$00,$00
43D0 DEFB $00,$00,$00,$00,$06,$00,$C0,$18
43D8 DEFB $F6,$C6,$C0,$C6,$18,$C2,$00,$00
43E0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
43E8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
43F0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
43F8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4400 DEFB $C6,$F8,$FE,$18,$FE,$FC,$C6,$D6
4408 DEFB $C0,$00,$00,$00,$00,$00,$00,$00
4410 DEFB $00,$00,$00,$00,$C0,$C6,$DE,$18
4418 DEFB $FE,$C6,$C0,$FE,$00,$00,$00,$00
4420 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4428 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4430 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4438 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4440 DEFB $FE,$00,$FE,$F8,$18,$C6,$FE,$DE
4448 DEFB $00,$18,$C6,$00,$FE,$F8,$DE,$C6
4450 DEFB $F8,$FE,$00,$00,$CF,$FF,$0F,$07
4458 DEFB $01,$03,$39,$01,$01,$39,$00,$00
4460 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4468 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4470 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4478 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4480 DEFB $FC,$00,$C6,$FE,$18,$C0,$00,$FE
4488 DEFB $C6,$C6,$FE,$F8,$00,$FE,$C6,$C0
4490 DEFB $F0,$00,$00,$00,$FE,$00,$F0,$F8
4498 DEFB $D6,$FE,$FE,$18,$C6,$DE,$00,$00
44A0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
44A8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
44B0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
44B8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
44C0 DEFB $C0,$00,$C6,$00,$FE,$C6,$C0,$F8
44C8 DEFB $00,$C6,$00,$D6,$18,$C6,$00,$00
44D0 DEFB $00,$00,$00,$00,$3E,$00,$FE,$18
44D8 DEFB $DE,$C0,$C0,$FE,$18,$FE,$00,$00
44E0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
44E8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
44F0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
44F8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4500 DEFB $C6,$C2,$FE,$18,$C6,$C6,$C6,$FE
4508 DEFB $C6,$18,$00,$00,$00,$00,$00,$00
4510 DEFB $00,$00,$00,$00,$C6,$C6,$CE,$18
4518 DEFB $FC,$C6,$C6,$02,$18,$00,$00,$00
4520 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4528 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4530 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4538 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4540 DEFB $FE,$00,$FC,$C2,$18,$C6,$FC,$CE
4548 DEFB $00,$18,$C6,$00,$02,$C2,$CE,$C6
4550 DEFB $C2,$FC,$00,$00,$CF,$FF,$27,$3D
4558 DEFB $E7,$39,$39,$01,$03,$39,$00,$00
4560 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4568 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4570 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4578 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4580 DEFB $C6,$00,$C6,$FE,$18,$C6,$00,$C6
4588 DEFB $C6,$C6,$02,$C2,$00,$FC,$C6,$C6
4590 DEFB $D8,$00,$00,$00,$C0,$00,$D8,$C2
4598 DEFB $C6,$FE,$02,$18,$C6,$CE,$00,$00
45A0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
45A8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
45B0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
45B8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
45C0 DEFB $C6,$00,$C6,$00,$02,$C6,$C6,$C2
45C8 DEFB $00,$C6,$00,$C6,$18,$C6,$00,$00
45D0 DEFB $00,$00,$00,$00,$06,$00,$02,$18
45D8 DEFB $CE,$C6,$C6,$FE,$18,$FC,$00,$00
45E0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
45E8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
45F0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
45F8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4600 DEFB $FC,$FE,$C6,$18,$C6,$FE,$FE,$EE
4608 DEFB $FE,$18,$00,$00,$00,$00,$00,$00
4610 DEFB $00,$00,$00,$00,$FE,$FE,$C6,$18
4618 DEFB $CC,$FE,$FE,$FE,$18,$00,$00,$00
4620 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4628 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4630 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4638 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4640 DEFB $C6,$00,$CC,$FE,$18,$FE,$CC,$C6
4648 DEFB $00,$18,$FE,$00,$FE,$FE,$C6,$FC
4650 DEFB $FE,$CC,$00,$00,$03,$FF,$33,$01
4658 DEFB $E7,$01,$01,$39,$33,$03,$00,$00
4660 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4668 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4670 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4678 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4680 DEFB $FE,$00,$FE,$C6,$7E,$FE,$00,$C6
4688 DEFB $FE,$FE,$FE,$FE,$00,$CC,$FE,$FE
4690 DEFB $CC,$00,$00,$00,$FE,$00,$CC,$FE
4698 DEFB $C6,$C0,$FE,$18,$FE,$C6,$00,$00
46A0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
46A8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
46B0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
46B8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
46C0 DEFB $FE,$00,$FE,$00,$FE,$FE,$FE,$FE
46C8 DEFB $00,$FE,$00,$C6,$7E,$FE,$00,$00
46D0 DEFB $00,$00,$00,$00,$FE,$00,$FE,$7E
46D8 DEFB $C6,$FE,$FE,$C6,$7E,$CC,$00,$00
46E0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
46E8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
46F0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
46F8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4700 DEFB $F8,$FE,$C6,$18,$C6,$FE,$FE,$C6
4708 DEFB $FE,$00,$00,$00,$00,$00,$00,$00
4710 DEFB $00,$00,$00,$00,$FE,$FE,$C6,$18
4718 DEFB $C6,$FE,$FE,$FE,$00,$00,$00,$00
4720 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4728 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4730 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4738 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4740 DEFB $C6,$00,$C6,$FE,$18,$FE,$C6,$C6
4748 DEFB $00,$18,$FE,$00,$FE,$FE,$C6,$F8
4750 DEFB $FE,$C6,$00,$00,$03,$FF,$39,$01
4758 DEFB $E7,$01,$01,$39,$39,$07,$00,$00
4760 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4768 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4770 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4778 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4780 DEFB $FE,$00,$FE,$C6,$7E,$FE,$00,$C6
4788 DEFB $FE,$FE,$FE,$FE,$00,$C6,$FE,$FE
4790 DEFB $C6,$00,$00,$00,$FE,$00,$C6,$FE
4798 DEFB $C6,$C0,$FE,$18,$FE,$C6,$00,$00
47A0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
47A8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
47B0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
47B8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
47C0 DEFB $FE,$00,$FE,$00,$FE,$FE,$FE,$FE
47C8 DEFB $00,$FE,$00,$C6,$7E,$FE,$00,$00
47D0 DEFB $00,$00,$00,$00,$FE,$00,$FE,$7E
47D8 DEFB $C6,$FE,$FE,$C6,$7E,$C6,$00,$00
47E0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
47E8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
47F0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
47F8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4800 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4808 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4810 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4818 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4820 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4828 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4830 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4838 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4840 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4848 DEFB $00,$00,$00,$08,$00,$00,$00,$00
4850 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4858 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4860 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4868 DEFB $01,$FF,$A8,$E0,$00,$00,$00,$1A
4870 DEFB $15,$00,$00,$00,$00,$00,$00,$00
4878 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4880 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4888 DEFB $19,$5F,$F6,$BE,$00,$00,$00,$00
4890 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4898 DEFB $00,$00,$00,$00,$00,$00,$00,$00
48A0 DEFB $00,$00,$00,$00,$00,$0F,$B0,$00
48A8 DEFB $7F,$77,$DF,$E0,$00,$00,$00,$00
48B0 DEFB $00,$00,$00,$00,$00,$33,$CC,$00
48B8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
48C0 DEFB $00,$00,$00,$00,$00,$7C,$BE,$0F
48C8 DEFB $B0,$3C,$CF,$E8,$00,$00,$00,$00
48D0 DEFB $00,$00,$00,$00,$00,$1D,$9E,$00
48D8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
48E0 DEFB $00,$00,$00,$00,$00,$00,$00,$7C
48E8 DEFB $BE,$00,$00,$00,$01,$FF,$A8,$E0
48F0 DEFB $00,$33,$CC,$00,$00,$00,$00,$00
48F8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4900 DEFB $F8,$00,$C6,$FE,$FE,$FE,$FE,$FE
4908 DEFB $FE,$FE,$FE,$CE,$00,$C6,$FE,$FE
4910 DEFB $FE,$C0,$00,$00,$C0,$00,$FE,$C6
4918 DEFB $FE,$FE,$FE,$FE,$00,$00,$00,$00
4920 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4928 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4930 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4938 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4940 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4948 DEFB $00,$00,$00,$22,$00,$00,$00,$00
4950 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4958 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4960 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4968 DEFB $03,$DF,$95,$50,$00,$00,$00,$11
4970 DEFB $22,$00,$00,$00,$00,$00,$00,$00
4978 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4980 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4988 DEFB $06,$B0,$BF,$FC,$00,$00,$00,$00
4990 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4998 DEFB $00,$00,$00,$00,$00,$00,$00,$00
49A0 DEFB $00,$00,$00,$00,$00,$0F,$A8,$00
49A8 DEFB $7B,$2F,$B8,$30,$00,$00,$00,$00
49B0 DEFB $00,$00,$00,$00,$00,$17,$94,$00
49B8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
49C0 DEFB $00,$00,$00,$00,$00,$79,$5C,$0F
49C8 DEFB $A8,$78,$0C,$5C,$00,$00,$00,$00
49D0 DEFB $00,$00,$00,$00,$00,$0C,$CC,$00
49D8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
49E0 DEFB $00,$00,$00,$00,$00,$00,$00,$79
49E8 DEFB $5C,$00,$00,$00,$03,$DF,$95,$50
49F0 DEFB $00,$17,$94,$00,$00,$00,$00,$00
49F8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4A00 DEFB $FC,$00,$C6,$FE,$FE,$FE,$FE,$FE
4A08 DEFB $FE,$FE,$FE,$D8,$00,$C6,$FE,$FE
4A10 DEFB $FE,$C0,$00,$00,$CC,$00,$FE,$C6
4A18 DEFB $FE,$FE,$FE,$FE,$00,$00,$00,$00
4A20 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4A28 DEFB $00,$00,$00,$02,$00,$00,$00,$00
4A30 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4A38 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4A40 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4A48 DEFB $00,$00,$00,$57,$00,$00,$00,$00
4A50 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4A58 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4A60 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4A68 DEFB $0F,$7F,$AA,$AC,$00,$00,$00,$4A
4A70 DEFB $70,$00,$00,$00,$00,$00,$00,$00
4A78 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4A80 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4A88 DEFB $03,$77,$7F,$00,$00,$00,$00,$00
4A90 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4A98 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4AA0 DEFB $00,$00,$00,$00,$00,$1F,$54,$00
4AA8 DEFB $76,$0F,$37,$D8,$00,$00,$00,$00
4AB0 DEFB $00,$00,$00,$00,$00,$34,$78,$00
4AB8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4AC0 DEFB $00,$00,$00,$00,$00,$1A,$B8,$1F
4AC8 DEFB $54,$78,$05,$4E,$00,$00,$00,$00
4AD0 DEFB $00,$00,$00,$00,$00,$00,$E0,$00
4AD8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4AE0 DEFB $00,$00,$00,$00,$00,$00,$00,$1A
4AE8 DEFB $B8,$15,$00,$00,$0F,$7F,$AA,$AC
4AF0 DEFB $00,$34,$78,$00,$00,$00,$00,$00
4AF8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4B00 DEFB $C6,$00,$FE,$C2,$C6,$C2,$18,$C6
4B08 DEFB $C2,$C2,$C6,$F0,$00,$FE,$C6,$18
4B10 DEFB $C2,$C0,$00,$00,$CC,$00,$C6,$C6
4B18 DEFB $C2,$C0,$C6,$C2,$00,$00,$00,$00
4B20 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4B28 DEFB $00,$00,$00,$45,$00,$00,$00,$00
4B30 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4B38 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4B40 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4B48 DEFB $00,$00,$00,$22,$00,$00,$00,$00
4B50 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4B58 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4B60 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4B68 DEFB $1E,$77,$55,$56,$00,$00,$00,$04
4B70 DEFB $20,$00,$00,$00,$00,$00,$00,$00
4B78 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4B80 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4B88 DEFB $00,$27,$80,$00,$00,$00,$00,$00
4B90 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4B98 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4BA0 DEFB $00,$00,$00,$00,$00,$3F,$AC,$00
4BA8 DEFB $6E,$1F,$68,$28,$00,$00,$00,$00
4BB0 DEFB $00,$00,$00,$00,$00,$31,$E0,$00
4BB8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4BC0 DEFB $00,$00,$00,$00,$00,$07,$E0,$3F
4BC8 DEFB $AC,$60,$06,$DA,$00,$00,$00,$00
4BD0 DEFB $00,$00,$00,$00,$00,$00,$70,$00
4BD8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4BE0 DEFB $00,$00,$00,$00,$00,$00,$00,$07
4BE8 DEFB $E0,$2A,$80,$00,$1E,$77,$55,$56
4BF0 DEFB $00,$31,$E0,$00,$00,$00,$00,$00
4BF8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4C00 DEFB $C6,$00,$FE,$F8,$FE,$FE,$18,$FC
4C08 DEFB $FE,$F8,$FE,$F0,$00,$FE,$C6,$18
4C10 DEFB $F8,$C0,$00,$00,$FC,$00,$C0,$C6
4C18 DEFB $FE,$FE,$C6,$FE,$00,$00,$00,$00
4C20 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4C28 DEFB $00,$00,$00,$E2,$00,$00,$00,$00
4C30 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4C38 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4C40 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4C48 DEFB $00,$00,$00,$00,$00,$00,$00,$01
4C50 DEFB $10,$00,$00,$00,$00,$00,$00,$00
4C58 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4C60 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4C68 DEFB $3F,$FC,$2A,$A2,$00,$00,$00,$00
4C70 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4C78 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4C80 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4C88 DEFB $01,$86,$C0,$00,$00,$00,$00,$00
4C90 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4C98 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4CA0 DEFB $00,$00,$00,$00,$00,$37,$54,$00
4CA8 DEFB $3C,$1F,$72,$98,$00,$00,$00,$00
4CB0 DEFB $00,$00,$00,$00,$00,$19,$80,$00
4CB8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4CC0 DEFB $00,$00,$00,$00,$00,$00,$00,$37
4CC8 DEFB $54,$78,$00,$00,$00,$00,$00,$00
4CD0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4CD8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4CE0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4CE8 DEFB $01,$45,$40,$00,$3F,$FC,$2A,$AA
4CF0 DEFB $00,$19,$80,$00,$00,$00,$00,$00
4CF8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4D00 DEFB $C6,$00,$C6,$C2,$FE,$FC,$18,$C6
4D08 DEFB $FC,$C2,$FE,$D8,$00,$C6,$C6,$18
4D10 DEFB $C2,$C6,$00,$00,$FC,$00,$C6,$C6
4D18 DEFB $FC,$02,$C6,$FC,$00,$00,$00,$00
4D20 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4D28 DEFB $00,$00,$00,$40,$00,$00,$00,$00
4D30 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4D38 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4D40 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4D48 DEFB $00,$07,$3C,$00,$00,$00,$00,$40
4D50 DEFB $38,$00,$00,$00,$00,$00,$00,$00
4D58 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4D60 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4D68 DEFB $7D,$BE,$55,$40,$00,$00,$00,$00
4D70 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4D78 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4D80 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4D88 DEFB $03,$C7,$60,$00,$00,$00,$00,$00
4D90 DEFB $00,$00,$00,$00,$00,$30,$0C,$00
4D98 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4DA0 DEFB $00,$00,$00,$00,$00,$0F,$AE,$00
4DA8 DEFB $1C,$07,$76,$D8,$00,$00,$00,$00
4DB0 DEFB $00,$00,$00,$00,$00,$1F,$F0,$00
4DB8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4DC0 DEFB $00,$00,$00,$00,$00,$00,$00,$0F
4DC8 DEFB $AE,$3E,$00,$00,$00,$07,$3C,$00
4DD0 DEFB $00,$30,$0C,$00,$00,$00,$00,$00
4DD8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4DE0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4DE8 DEFB $02,$A2,$80,$00,$7D,$BE,$55,$56
4DF0 DEFB $00,$1F,$F0,$00,$00,$00,$00,$30
4DF8 DEFB $0C,$00,$00,$00,$00,$00,$00,$00
4E00 DEFB $FC,$00,$C6,$FE,$C6,$CC,$18,$FE
4E08 DEFB $CC,$FE,$C6,$CC,$00,$C6,$FE,$18
4E10 DEFB $FE,$FE,$00,$00,$0C,$00,$FE,$FE
4E18 DEFB $CC,$FE,$FE,$CC,$00,$00,$00,$00
4E20 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4E28 DEFB $00,$00,$00,$08,$00,$00,$00,$00
4E30 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4E38 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4E40 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4E48 DEFB $00,$3F,$E2,$00,$00,$00,$00,$E0
4E50 DEFB $7C,$00,$00,$00,$00,$00,$00,$00
4E58 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4E60 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4E68 DEFB $73,$5F,$2A,$8C,$00,$00,$00,$00
4E70 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4E78 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4E80 DEFB $00,$00,$00,$00,$00,$01,$80,$00
4E88 DEFB $07,$E4,$F0,$00,$00,$00,$00,$00
4E90 DEFB $00,$00,$00,$00,$00,$69,$9E,$00
4E98 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4EA0 DEFB $00,$00,$00,$00,$00,$33,$96,$01
4EA8 DEFB $88,$1F,$70,$18,$00,$00,$00,$00
4EB0 DEFB $00,$00,$00,$00,$00,$06,$6C,$00
4EB8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4EC0 DEFB $00,$00,$00,$00,$00,$00,$00,$33
4EC8 DEFB $96,$3A,$00,$00,$00,$3F,$E2,$00
4ED0 DEFB $00,$69,$9E,$00,$00,$00,$00,$00
4ED8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4EE0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4EE8 DEFB $05,$55,$50,$00,$73,$5F,$2A,$AC
4EF0 DEFB $00,$06,$6C,$00,$00,$00,$00,$69
4EF8 DEFB $9E,$00,$00,$00,$00,$00,$00,$00
4F00 DEFB $F8,$00,$C6,$FE,$C6,$C6,$18,$FE
4F08 DEFB $C6,$FE,$C6,$C6,$00,$C6,$FE,$18
4F10 DEFB $FE,$FE,$00,$00,$0C,$00,$FE,$FE
4F18 DEFB $C6,$FE,$FE,$C6,$00,$00,$00,$00
4F20 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4F28 DEFB $00,$00,$00,$14,$00,$00,$00,$00
4F30 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4F38 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4F40 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4F48 DEFB $00,$FF,$C1,$C0,$00,$00,$00,$44
4F50 DEFB $3A,$00,$00,$00,$00,$00,$00,$00
4F58 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4F60 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4F68 DEFB $32,$BF,$8D,$56,$00,$00,$00,$00
4F70 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4F78 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4F80 DEFB $00,$00,$00,$00,$00,$07,$E0,$00
4F88 DEFB $1E,$E3,$EF,$C0,$00,$00,$00,$00
4F90 DEFB $00,$00,$00,$00,$00,$6B,$DA,$00
4F98 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4FA0 DEFB $00,$00,$00,$00,$00,$7E,$6E,$07
4FA8 DEFB $E0,$3F,$98,$30,$00,$00,$00,$00
4FB0 DEFB $00,$00,$00,$00,$00,$0F,$16,$00
4FB8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4FC0 DEFB $00,$00,$00,$00,$00,$00,$00,$7E
4FC8 DEFB $6E,$00,$00,$00,$00,$FF,$C1,$C0
4FD0 DEFB $00,$6B,$DA,$00,$00,$00,$00,$00
4FD8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4FE0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
4FE8 DEFB $02,$AA,$AA,$80,$32,$BF,$8D,$54
4FF0 DEFB $00,$0F,$16,$00,$00,$00,$00,$6B
4FF8 DEFB $DA,$00,$00,$00,$00,$00,$00,$00
5000 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5008 DEFB $01,$55,$55,$40,$19,$5F,$F6,$B8
5010 DEFB $00,$1D,$9E,$00,$00,$00,$00,$33
5018 DEFB $CC,$00,$00,$00,$00,$00,$00,$00
5020 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5028 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5030 DEFB $00,$00,$00,$00,$00,$00,$00,$1D
5038 DEFB $9E,$00,$00,$00,$00,$00,$00,$00
5040 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5048 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5050 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5058 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5060 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5068 DEFB $00,$00,$00,$00,$00,$00,$00,$77
5070 DEFB $C3,$C2,$00,$00,$00,$00,$00,$00
5078 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5080 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5088 DEFB $00,$00,$00,$00,$00,$00,$11,$E7
5090 DEFB $C7,$08,$00,$00,$00,$00,$00,$00
5098 DEFB $00,$00,$00,$00,$00,$00,$00,$00
50A0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
50A8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
50B0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
50B8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
50C0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
50C8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
50D0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
50D8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
50E0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
50E8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
50F0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
50F8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5100 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5108 DEFB $00,$0A,$AA,$A0,$06,$B7,$BF,$F0
5110 DEFB $00,$0C,$CC,$00,$00,$00,$00,$17
5118 DEFB $94,$00,$00,$00,$00,$00,$00,$00
5120 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5128 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5130 DEFB $00,$00,$00,$00,$00,$00,$00,$0C
5138 DEFB $CC,$00,$00,$00,$00,$00,$00,$00
5140 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5148 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5150 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5158 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5160 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5168 DEFB $00,$00,$00,$00,$00,$00,$11,$CE
5170 DEFB $39,$E9,$00,$00,$00,$00,$00,$00
5178 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5180 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5188 DEFB $00,$00,$00,$00,$00,$00,$08,$F1
5190 DEFB $F8,$30,$00,$00,$00,$00,$00,$00
5198 DEFB $00,$00,$00,$00,$00,$00,$00,$00
51A0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
51A8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
51B0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
51B8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
51C0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
51C8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
51D0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
51D8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
51E0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
51E8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
51F0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
51F8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5200 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5208 DEFB $00,$00,$55,$40,$03,$7D,$7F,$00
5210 DEFB $00,$00,$E0,$00,$00,$00,$00,$34
5218 DEFB $78,$00,$00,$00,$00,$00,$00,$00
5220 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5228 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5230 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5238 DEFB $E0,$00,$00,$00,$00,$00,$00,$00
5240 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5248 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5250 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5258 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5260 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5268 DEFB $00,$00,$00,$00,$00,$00,$23,$30
5270 DEFB $07,$E5,$00,$00,$00,$00,$00,$00
5278 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5280 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5288 DEFB $00,$00,$00,$00,$00,$00,$06,$3C
5290 DEFB $00,$40,$00,$00,$00,$00,$00,$00
5298 DEFB $00,$00,$00,$00,$00,$00,$00,$00
52A0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
52A8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
52B0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
52B8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
52C0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
52C8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
52D0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
52D8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
52E0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
52E8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
52F0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
52F8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5300 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5308 DEFB $00,$00,$AA,$80,$00,$2F,$80,$00
5310 DEFB $00,$00,$70,$00,$00,$00,$00,$31
5318 DEFB $E0,$00,$00,$00,$00,$00,$00,$00
5320 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5328 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5330 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5338 DEFB $70,$00,$00,$00,$00,$00,$00,$00
5340 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5348 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5350 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5358 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5360 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5368 DEFB $00,$00,$00,$00,$00,$00,$06,$E4
5370 DEFB $11,$C4,$00,$00,$00,$00,$00,$00
5378 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5380 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5388 DEFB $00,$00,$00,$00,$00,$00,$01,$87
5390 DEFB $1E,$00,$00,$00,$00,$00,$00,$00
5398 DEFB $00,$00,$00,$00,$00,$00,$00,$00
53A0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
53A8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
53B0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
53B8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
53C0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
53C8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
53D0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
53D8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
53E0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
53E8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
53F0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
53F8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5400 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5408 DEFB $00,$00,$54,$00,$00,$00,$00,$00
5410 DEFB $00,$00,$00,$00,$00,$00,$00,$19
5418 DEFB $80,$00,$00,$00,$00,$00,$00,$00
5420 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5428 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5430 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5438 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5440 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5448 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5450 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5458 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5460 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5468 DEFB $00,$00,$00,$00,$00,$00,$44,$E8
5470 DEFB $A9,$90,$00,$00,$00,$00,$00,$00
5478 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5480 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5488 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5490 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5498 DEFB $00,$00,$00,$00,$00,$00,$00,$00
54A0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
54A8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
54B0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
54B8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
54C0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
54C8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
54D0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
54D8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
54E0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
54E8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
54F0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
54F8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5500 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5508 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5510 DEFB $00,$00,$00,$00,$00,$00,$00,$1F
5518 DEFB $F0,$00,$00,$00,$00,$00,$00,$00
5520 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5528 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5530 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5538 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5540 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5548 DEFB $00,$00,$00,$00,$00,$00,$00,$1E
5550 DEFB $00,$E0,$00,$00,$00,$00,$00,$00
5558 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5560 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5568 DEFB $00,$00,$00,$00,$00,$00,$41,$F1
5570 DEFB $47,$B1,$00,$00,$00,$00,$00,$00
5578 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5580 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5588 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5590 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5598 DEFB $00,$00,$00,$00,$00,$00,$00,$00
55A0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
55A8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
55B0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
55B8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
55C0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
55C8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
55D0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
55D8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
55E0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
55E8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
55F0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
55F8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5600 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5608 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5610 DEFB $00,$00,$00,$00,$00,$00,$00,$06
5618 DEFB $6C,$00,$00,$00,$00,$00,$00,$00
5620 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5628 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5630 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5638 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5640 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5648 DEFB $00,$00,$00,$00,$00,$00,$00,$C0
5650 DEFB $7C,$18,$00,$00,$00,$00,$00,$00
5658 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5660 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5668 DEFB $00,$00,$00,$00,$00,$00,$4B,$FE
5670 DEFB $3E,$61,$00,$00,$00,$00,$00,$00
5678 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5680 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5688 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5690 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5698 DEFB $00,$00,$00,$00,$00,$00,$00,$00
56A0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
56A8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
56B0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
56B8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
56C0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
56C8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
56D0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
56D8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
56E0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
56E8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
56F0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
56F8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5700 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5708 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5710 DEFB $00,$00,$00,$00,$00,$00,$00,$0F
5718 DEFB $16,$00,$00,$00,$00,$00,$00,$00
5720 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5728 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5730 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5738 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5740 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5748 DEFB $00,$00,$00,$00,$00,$00,$03,$1E
5750 DEFB $0F,$00,$00,$00,$00,$00,$00,$00
5758 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5760 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5768 DEFB $00,$00,$00,$00,$00,$00,$03,$CF
5770 DEFB $F9,$C6,$00,$00,$00,$00,$00,$00
5778 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5780 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5788 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5790 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5798 DEFB $00,$00,$00,$00,$00,$00,$00,$00
57A0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
57A8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
57B0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
57B8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
57C0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
57C8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
57D0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
57D8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
57E0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
57E8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
57F0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
57F8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5800 DEFB $45,$45,$45,$45,$45,$45,$45,$45
5808 DEFB $45,$45,$45,$45,$45,$45,$45,$45
5810 DEFB $45,$45,$45,$45,$45,$45,$45,$45
5818 DEFB $45,$45,$45,$45,$45,$45,$45,$45
5820 DEFB $45,$45,$45,$45,$45,$45,$45,$45
5828 DEFB $45,$45,$45,$45,$45,$45,$45,$45
5830 DEFB $45,$45,$45,$45,$45,$45,$45,$45
5838 DEFB $45,$45,$45,$45,$45,$45,$45,$45
5840 DEFB $45,$45,$45,$45,$45,$45,$45,$45
5848 DEFB $45,$45,$45,$45,$45,$45,$45,$45
5850 DEFB $45,$45,$45,$45,$45,$45,$45,$45
5858 DEFB $45,$45,$45,$45,$45,$45,$45,$45
5860 DEFB $45,$45,$45,$45,$45,$45,$45,$45
5868 DEFB $45,$45,$45,$45,$45,$45,$45,$45
5870 DEFB $45,$45,$45,$45,$45,$45,$45,$45
5878 DEFB $45,$45,$45,$45,$45,$45,$45,$45
5880 DEFB $45,$45,$45,$45,$45,$45,$45,$45
5888 DEFB $45,$45,$45,$45,$45,$45,$45,$45
5890 DEFB $45,$45,$45,$45,$45,$45,$45,$45
5898 DEFB $45,$45,$45,$45,$45,$45,$45,$45
58A0 DEFB $45,$45,$45,$45,$45,$45,$45,$45
58A8 DEFB $45,$45,$45,$45,$45,$45,$45,$45
58B0 DEFB $45,$45,$45,$45,$45,$45,$45,$45
58B8 DEFB $45,$45,$45,$45,$45,$45,$45,$45
58C0 DEFB $45,$45,$45,$45,$45,$45,$45,$45
58C8 DEFB $45,$45,$45,$45,$45,$45,$45,$45
58D0 DEFB $45,$45,$45,$45,$45,$45,$45,$45
58D8 DEFB $45,$45,$45,$45,$45,$45,$45,$45
58E0 DEFB $45,$45,$45,$45,$45,$45,$45,$45
58E8 DEFB $45,$45,$45,$45,$45,$45,$45,$45
58F0 DEFB $45,$45,$45,$45,$45,$45,$45,$45
58F8 DEFB $45,$45,$45,$45,$45,$45,$45,$45
5900 DEFB $45,$45,$45,$45,$45,$45,$45,$45
5908 DEFB $45,$45,$45,$45,$45,$45,$45,$45
5910 DEFB $45,$45,$45,$45,$45,$45,$45,$45
5918 DEFB $45,$45,$45,$45,$45,$45,$45,$45
5920 DEFB $43,$43,$43,$43,$43,$43,$43,$43
5928 DEFB $43,$43,$43,$43,$43,$43,$43,$43
5930 DEFB $43,$43,$43,$43,$43,$43,$43,$43
5938 DEFB $43,$43,$43,$43,$43,$43,$43,$43
5940 DEFB $43,$43,$43,$43,$43,$43,$43,$43
5948 DEFB $43,$43,$43,$43,$43,$43,$43,$43
5950 DEFB $43,$43,$43,$43,$45,$45,$45,$45
5958 DEFB $45,$45,$45,$45,$45,$45,$45,$45
5960 DEFB $43,$43,$43,$43,$43,$43,$43,$43
5968 DEFB $43,$43,$43,$43,$43,$43,$43,$43
5970 DEFB $43,$43,$43,$43,$43,$43,$43,$43
5978 DEFB $43,$43,$43,$43,$43,$43,$43,$43
5980 DEFB $43,$43,$43,$43,$43,$43,$43,$43
5988 DEFB $43,$43,$43,$43,$43,$43,$43,$43
5990 DEFB $43,$43,$43,$43,$43,$43,$43,$43
5998 DEFB $43,$43,$43,$43,$43,$43,$43,$43
59A0 DEFB $43,$43,$43,$43,$43,$43,$43,$43
59A8 DEFB $43,$43,$43,$43,$43,$43,$43,$43
59B0 DEFB $43,$43,$43,$43,$43,$43,$43,$43
59B8 DEFB $43,$43,$43,$43,$43,$43,$43,$43
59C0 DEFB $43,$43,$43,$43,$43,$43,$43,$43
59C8 DEFB $43,$43,$43,$43,$43,$43,$43,$43
59D0 DEFB $43,$43,$43,$43,$43,$43,$43,$43
59D8 DEFB $43,$43,$43,$43,$43,$43,$43,$43
59E0 DEFB $43,$43,$43,$43,$43,$43,$43,$43
59E8 DEFB $43,$43,$43,$43,$43,$43,$43,$43
59F0 DEFB $43,$43,$43,$43,$43,$43,$43,$43
59F8 DEFB $43,$43,$43,$43,$43,$43,$43,$43
5A00 DEFB $43,$43,$43,$43,$43,$43,$43,$43
5A08 DEFB $43,$43,$43,$43,$43,$43,$43,$43
5A10 DEFB $43,$43,$43,$43,$43,$43,$43,$43
5A18 DEFB $43,$43,$43,$43,$43,$43,$43,$43
5A20 DEFB $43,$43,$43,$43,$43,$43,$43,$43
5A28 DEFB $43,$43,$43,$43,$43,$43,$43,$43
5A30 DEFB $43,$43,$43,$43,$43,$43,$43,$43
5A38 DEFB $43,$43,$43,$43,$43,$43,$43,$43
5A40 DEFB $43,$43,$43,$43,$43,$43,$43,$43
5A48 DEFB $43,$43,$43,$43,$43,$43,$43,$43
5A50 DEFB $43,$43,$43,$43,$43,$43,$43,$43
5A58 DEFB $43,$43,$43,$43,$43,$43,$43,$43
5A60 DEFB $43,$43,$43,$43,$43,$43,$43,$43
5A68 DEFB $43,$43,$43,$43,$43,$43,$43,$43
5A70 DEFB $43,$43,$43,$43,$43,$43,$43,$43
5A78 DEFB $43,$43,$43,$43,$43,$43,$43,$43
5A80 DEFB $43,$43,$43,$43,$43,$43,$43,$43
5A88 DEFB $43,$43,$43,$43,$43,$43,$43,$43
5A90 DEFB $43,$43,$43,$43,$43,$43,$43,$43
5A98 DEFB $43,$43,$43,$43,$43,$43,$43,$43
5AA0 DEFB $43,$43,$43,$43,$43,$43,$43,$43
5AA8 DEFB $43,$43,$43,$43,$43,$43,$43,$43
5AB0 DEFB $43,$43,$43,$43,$43,$43,$43,$43
5AB8 DEFB $43,$43,$43,$43,$43,$43,$43,$43
5AC0 DEFB $43,$43,$43,$43,$43,$43,$43,$43
5AC8 DEFB $43,$43,$43,$43,$43,$43,$43,$43
5AD0 DEFB $43,$43,$43,$43,$43,$43,$43,$43
5AD8 DEFB $43,$43,$43,$43,$43,$43,$43,$43
5AE0 DEFB $43,$43,$43,$43,$43,$43,$43,$43
5AE8 DEFB $43,$43,$43,$43,$43,$43,$43,$43
5AF0 DEFB $43,$43,$43,$43,$43,$43,$43,$43
5AF8 DEFB $43,$43,$43,$43,$43,$43,$43,$43
5B00 DEFB $18,$5B,$00,$00,$00,$00,$00,$00
5B08 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5B10 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5B18 DEFB $30,$5B,$00,$00,$00,$00,$00,$00
5B20 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5B28 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5B30 DEFB $48,$5B,$00,$00,$00,$00,$00,$00
5B38 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5B40 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5B48 DEFB $60,$5B,$00,$00,$00,$00,$00,$00
5B50 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5B58 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5B60 DEFB $78,$5B,$00,$00,$00,$00,$00,$00
5B68 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5B70 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5B78 DEFB $90,$5B,$00,$00,$00,$00,$00,$00
5B80 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5B88 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5B90 DEFB $A8,$5B,$00,$00,$00,$00,$00,$00
5B98 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5BA0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5BA8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5BB0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5BB8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5BC0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5BC8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5BD0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5BD8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5BE0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5BE8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5BF0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5BF8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5C00 DEFB $FF,$00,$00,$00,$FF,$00,$22,$0D
5C08 DEFB $00,$23,$05,$00,$00,$00,$16,$01
5C10 DEFB $01,$00,$06,$00,$0B,$00,$01,$00
5C18 DEFB $01,$00,$06,$00,$10,$00,$00,$00
5C20 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5C28 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5C30 DEFB $00,$00,$00,$00,$00,$00,$00,$3C
5C38 DEFB $40,$00,$FF,$CC,$01,$DC,$60,$00
5C40 DEFB $00,$00,$00,$00,$FF,$FE,$FF,$01
5C48 DEFB $00,$00,$00,$0F,$5D,$00,$00,$B6
5C50 DEFB $5C,$B6,$5C,$CB,$5C,$1E,$5D,$CA
5C58 DEFB $5C,$10,$5D,$17,$5D,$1D,$5D,$27
5C60 DEFB $00,$1F,$5D,$1F,$5D,$1F,$5D,$2D
5C68 DEFB $92,$5C,$10,$02,$00,$00,$00,$00
5C70 DEFB $00,$00,$00,$00,$B6,$1A,$08,$00
5C78 DEFB $EB,$8F,$01,$58,$FF,$00,$00,$21
5C80 DEFB $00,$5B,$0E,$17,$C0,$40,$F3,$50
5C88 DEFB $21,$12,$0E,$17,$07,$38,$00,$00
5C90 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5C98 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5CA0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5CA8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5CB0 DEFB $00,$00,$DF,$60,$FF,$FF,$F4,$09
5CB8 DEFB $A8,$10,$4B,$F4,$09,$C4,$15,$53
5CC0 DEFB $81,$0F,$C4,$15,$52,$F4,$09,$C4
5CC8 DEFB $15,$50,$80,$00,$0A,$28,$00,$E7
5CD0 DEFB $30,$0E,$00,$00,$00,$00,$00,$3A
5CD8 DEFB $DA,$30,$0E,$00,$00,$00,$00,$00
5CE0 DEFB $3A,$D9,$30,$0E,$00,$00,$00,$00
5CE8 DEFB $00,$3A,$FD,$32,$34,$37,$39,$39
5CF0 DEFB $0E,$00,$00,$DF,$60,$00,$0D,$00
5CF8 DEFB $14,$14,$00,$EF,$22,$4C,$22,$AF
5D00 DEFB $3A,$F9,$C0,$36,$33,$35,$30,$30
5D08 DEFB $0E,$00,$00,$0C,$F8,$00,$0D,$80
5D10 DEFB $F9,$C0,$36,$33,$35,$37,$32,$0E
5D18 DEFB $00,$00,$54,$F8,$DD,$6A,$24,$04
5D20 DEFB $1F,$00,$50,$5E,$59,$EF,$27,$8E
5D28 DEFB $DB,$02,$4D,$00,$01,$A4,$20,$00
5D30 DEFB $DB,$02,$DB,$02,$DB,$02,$4D,$00
5D38 DEFB $60,$59,$00,$26,$5F,$59,$38,$00
5D40 DEFB $8B,$86,$71,$6B,$DD,$6A,$0A,$08
5D48 DEFB $0A,$01,$01,$00,$1E,$00,$D4,$03
5D50 DEFB $3A,$5C,$D7,$03,$7F,$84,$AF,$83
5D58 DEFB $F5,$6A,$F5,$9D,$00,$C3,$AA,$6A
5D60 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5D68 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5D70 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5D78 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5D80 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5D88 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5D90 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5D98 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5DA0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5DA8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5DB0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5DB8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5DC0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5DC8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5DD0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5DD8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5DE0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5DE8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5DF0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5DF8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5E00 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5E08 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5E10 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5E18 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5E20 DEFB $00,$00,$00,$00,$1C,$F6,$10,$00
5E28 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5E30 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5E38 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5E40 DEFB $00,$00,$00,$00,$00,$00,$00,$22
5E48 DEFB $F6,$10,$00,$00,$00,$00,$00,$00
5E50 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5E58 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5E60 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5E68 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5E70 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5E78 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5E80 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5E88 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5E90 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5E98 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5EA0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5EA8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5EB0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5EB8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5EC0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5EC8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5ED0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5ED8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5EE0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5EE8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5EF0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5EF8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5F00 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5F08 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5F10 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5F18 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5F20 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5F28 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5F30 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5F38 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5F40 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5F48 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5F50 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5F58 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5F60 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5F68 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5F70 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5F78 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5F80 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5F88 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5F90 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5F98 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5FA0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5FA8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5FB0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5FB8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5FC0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5FC8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5FD0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5FD8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5FE0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5FE8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5FF0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
5FF8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
6000 DEFB $00,$00,$00,$00,$00,$00,$00,$00
6008 DEFB $00,$00,$00,$00,$00,$00,$00,$00
6010 DEFB $00,$00,$00,$00,$00,$00,$00,$00
6018 DEFB $00,$00,$00,$00,$00,$00,$00,$00
6020 DEFB $00,$00,$00,$00,$00,$00,$00,$00
6028 DEFB $00,$00,$00,$00,$00,$00,$00,$00
6030 DEFB $00,$00,$00,$00,$00,$00,$00,$00
6038 DEFB $00,$00,$00,$00,$00,$00,$00,$00
6040 DEFB $00,$00,$00,$00,$00,$00,$00,$00
6048 DEFB $00,$00,$00,$00,$00,$00,$00,$00
6050 DEFB $00,$00,$00,$00,$00,$00,$00,$00
6058 DEFB $00,$00,$00,$00,$00,$00,$00,$00
6060 DEFB $00,$00,$00,$00,$00,$00,$00,$00
6068 DEFB $00,$00,$00,$00,$00,$00,$00,$00
6070 DEFB $00,$00,$00,$00,$00,$00,$00,$00
6078 DEFB $00,$00,$00,$00,$00,$00,$00,$00
6080 DEFB $00,$00,$00,$00,$00,$00,$00,$00
6088 DEFB $00,$00,$00,$00,$00,$00,$00,$00
6090 DEFB $00,$00,$00,$00,$00,$00,$00,$00
6098 DEFB $00,$00,$00,$00,$DB,$02,$7C,$38
60A0 DEFB $F3,$0D,$CE,$0B,$EC,$50,$CE,$0B
60A8 DEFB $ED,$50,$14,$17,$DC,$0A,$CE,$0B
60B0 DEFB $F3,$50,$0E,$17,$DC,$0A,$F3,$0D
60B8 DEFB $CE,$0B,$F2,$50,$0F,$17,$DC,$0A
60C0 DEFB $FE,$15
60C2: Data block at 60C2
60C2 DEFB $58,$27,$20,$FB,$6C,$F8,$2B,$2D
60CA DEFB $65,$33,$FF,$FF,$ED,$10,$0D,$00
60D2 DEFB $09,$00,$85,$1C,$10,$1C,$52,$1B
60DA DEFB $76,$1B,$03,$13,$00,$3E,$C3,$3C
60E2 DEFB $9D,$E0,$60,$18,$3E,$23,$5E
60E9 DEFW $5D42 Saved SP
60EB DEFB $05 Draw-queue length (number of object-record pointers at $60EC; see 9900)
60EC DEFW $8E0F,$A900,$8DB6,$8E27 Draw queue: object-record pointers, drawn by 9900
60F4 DEFW $A918
60F6 DEFB $00,$00,$00,$00,$00,$00,$00,$00
60FE DEFB $00,$00,$00,$00,$00,$00,$00,$00
6106 DEFB $00,$00,$00,$00
610A DEFW $70E0
610C DEFW $8FEF
610E DEFW $A918 Active object list HEAD pointer: points at the most recently spawned object record; each record's +0/+1 links to the next, ending in the fixed records 8DB6 (player) -> $8DCF -> $8DEF -> $0000. Passed as IX into 84AE, which head-inserts the new object here. Other insertion points exist (e.g. $8DEF for creatures -- see 6663), placing objects later in the list.
6110 DEFW $788A Currently-held item: pointer to its 4-byte item-table record (room,Y,X,sprite). Equals the fixed "empty hands" sentinel record at $788A when nothing is held. Set by 8AFB on pickup; the pointed-to record's room byte is zeroed on pickup and restored (to the current room, at the player's position) on drop.
6112 DEFB $00,$00,$00,$00,$00,$00,$00,$04
611A DEFB $05
611B DEFB $00,$00,$00,$00,$00 SCORE (5-digit BCD, most-significant byte first). Added to by 8879, subtracted by 8894, displayed (last 4 digits) by 885A via 8523.
6120 DEFB $00,$00
6122 DEFB $00 "Gnomes Gnabbed" end-game stat counter (BCD), printed by 86CC via 854F
6123 DEFB $00 "Goodies Gathered" end-game stat counter (BCD), printed by 86CC via 854F; incremented by 9341 on each successful item delivery to a Plug Room corner cube
6124 DEFB $00 "Plugs Pulled" end-game stat counter (BCD), printed by 86CC via 854F
6125 DEFB $00 Entry-point room number choosen selecting A/B/C/D in menu, see table 8567
6126 DEFB $02 Room number
6127 DEFW $6CD6 Room description address
6129 DEFB $00 Room shape/layout selector (0 or 1; bit 6 from byte 3 of Room description, shifted to bit 0). Selects one of 2 fixed wall/decoration layouts drawn by 642F.
612A DEFB $0E Bits 4-7 from byte 2 of Room description, shifted to bits 0-3
612B DEFB $00 Room exit/door bitfield (from room description byte1; see 6329). Also reused throughout the code as a numeric base address for room-grid cell addressing ($612B+index, grid starting at $612C) -- these are two unrelated uses of the same address, not a conflict.
8x8 grid (row-major, offset = row*8+col), cleared to 0 then populated by 62A2 from a shared room-type template (72D1 family, selected by $612A via the 72B1 pointer table), plus any per-room extra pairs from the room description itself (see 6CCF). Each entry's grid cell address is $612B+index (i.e. grid_offset = index-1); the stored value is either a plain content code (see table below), or one of $66/$67/$68/$69/$6A/$6B which additionally triggers a dedicated object-spawn routine (8EA7/8EF2/8F1E/8F4C/8E3F) -- these special values do NOT persist in the finished grid; they spawn a dynamic object instead (see 84AE) and the grid cell they occupied stays part of the static terrain layout only incidentally.
Static object codes: $01=small seaweed, $02=flat rock, $03=clam shell (no pearl), $04=small rock, $09=rock, $0D=seaweed, $7F=solid wall (seen as a contiguous 3x3 corner block), $0A-$10=display cubes/cases with varying item glyphs (seen in Plug Rooms). Creatures, pickups (spoon/ball/horseshoe/etc), and air-bubble sources are NEVER on the grid -- they're separate dynamic objects (see 84AE), not static terrain.
612C DEFB $00,$00,$00,$00,$00,$00,$00,$00 Room grid 8x8
6134 DEFB $00,$00,$00,$00,$00,$00,$00,$00
613C DEFB $00,$00,$00,$00,$00,$01,$00,$00
6144 DEFB $00,$00,$00,$00,$00,$00,$00,$01
614C DEFB $00,$02,$00,$00,$00,$01,$00,$00
6154 DEFB $00,$00,$00,$00,$02,$00,$00,$00
615C DEFB $00,$04,$04,$00,$00,$00,$00,$00
6164 DEFB $00,$00,$00,$00,$00,$00,$00,$00
616C DEFB $00,$00,$00,$00,$00,$00,$00,$00
6174 DEFB $00
6175 DEFB $43 Room color 0..15
6176 DEFB $40,$40,$40
6179 DEFB $00
617A DEFB $00
617B DEFB $00 Input device selector, read by 7EBE: 0=keyboard, 1=Kempston joystick, 2=Sinclair joystick, else=Cursor keys
617C DEFB $00 Cumulative input-held counter, incremented each frame by 6186's mask value (used for key-repeat timing)
617D DEFB $BF Keyboard row snapshot (contributes bit 4 -- fire/pick-up -- to 6186 via 7EBE)
617E DEFB $BF Keyboard row snapshot (contributes bit 2 to 6186 via 7EBE)
617F DEFB $BF Keyboard row snapshot (contributes bit 1 to 6186 via 7EBE)
6180 DEFB $BF,$BF
6182 DEFB $BF Keyboard row snapshot (contributes bit 3 to 6186 via 7EBE)
6183 DEFB $BF Keyboard row snapshot (contributes bit 0 to 6186 via 7EBE)
6184 DEFB $BF Keyboard row snapshot (also contributes bit 4 -- fire/pick-up -- to 6186 via 7EBE)
6185 DEFB $00
Resolved 5-bit input mask, produced every frame by 7EBE from whichever control method $617B selects. Bit0=Right, bit1=Left, bit2=Down, bit3=Up (Kempston-port convention: reading Kempston directly copies its byte here unmodified), bit4=Fire/pick-up. Consumed by 8968 (movement -- resolved to a single direction via the table at 88F0) and 8AFB (fire button). Masked against a "previously pressed" copy at $6188 by 7EBE itself (edge-detection), and accumulated into a repeat counter at $617C.
6186 DEFB $00 Resolved input mask (bit0=Right, bit1=Left, bit2=Down, bit3=Up, bit4=Fire/pick-up) -- see N-line
6187 DEFB $00
6188 DEFB $FF Previous frame's 6186 value, used by 7EBE for key-repeat/edge detection
6189 DEFB $01
618A DEFB $00 Message-window restore timer (counts down in 9808; the room/creature title is redrawn when it expires)
618B DEFW $A930 Free-list head pointer for the dynamic object pool (A900), consumed/updated by 84AE. Its high byte (at $618C) is also read standalone as an empty/enabled check.
618D DEFW $BDAE Current sprite: data address (copied from a A5DC record by 84ED)
618F DEFB $10 Current sprite: height, in 8px rows (copied from a A5DC record by 84ED)
6190 DEFB $04,$00,$00 Current sprite: width, in 8px columns, bit 7 = flip-flop flag (copied from a A5DC record by 84ED, unmasked)
6193 DEFB $FF
6194 DEFW $0000
6196 DEFW $FFB9
6198 DEFB $42 Oil cans remaining (BCD), decremented by 6622 on pickup/use
6199 DEFB $00 Flag, set to 1 by 6622 (oil can used) -- purpose of the flag itself not confirmed
619A DEFB $1C Room number copy
619B DEFW $1C34
619D DEFB $04
619E DEFB $00 Weapon ammo count (BCD-ish, decremented by 68C1 per shot), also acts as the weapon-held flag: tested by 8AFB on fire/pick-up to decide attack vs. pick-up/drop; hitting 0 auto-drops the weapon
619F DEFB $00
61A0 DEFB $01
61A1 DEFB $00
61A2 DEFB $7F
61A3 DEFB $04
61A4 DEFB $3A,$5C
61A6 DEFB $00
61A7: JP (HL) trampoline
Used by the routine at 983C.
Used by 983C to call a dynamic object's per-frame behaviour handler
61A7 JP (HL)
61A8: Initialize the object free list: chain B 24-byte records starting at DE (each record's first word points to the next)
Used by the routine at 61C1.
61A8 PUSH DE
61A9 DEC B
61AA LD HL,$0018
61AD ADD HL,DE
61AE EX DE,HL
61AF LD (HL),E
61B0 INC HL
61B1 LD (HL),D
61B2 DJNZ $61AA
61B4 EX DE,HL
61B5 LD DE,($618B)
61B9 LD (HL),E
61BA INC HL
61BB LD (HL),D
61BC POP HL
61BD LD ($618B),HL
61C0 RET
61C1: Routine at 61C1
Used by the routine at 676D.
61C1 LD HL,$0000
61C4 LD ($9D3C),HL
61C7 LD ($8DEF),HL
61CA LD ($618B),HL
61CD LD HL,$8DB6
61D0 LD ($610E),HL set Active object list HEAD pointer
61D3 LD DE,$5B00
61D6 LD B,$08
61D8 CALL $61A8 Initialize the object free list
61DB LD DE,$A900
61DE LD B,$08
61E0 JP $61A8
61E3: Routine at 61E3
Used by the routine at 6B05.
61E3 XOR A
61E4 LD ($6502),A
61E7 LD ($6199),A
61EA LD A,$42
61EC LD ($6198),A
61EF LD DE,$788A
61F2 LD A,($7C82)
61F5 PUSH AF
61F6 LD HL,$0004
61F9 ADD HL,DE
61FA LD BC,$0004
61FD LDIR
61FF EX DE,HL
6200 POP AF
6201 DEC A
6202 JR NZ,$61F5
6204 LD DE,$75B6
6207 LD A,(DE)
6208 CP $01
620A JR Z,$6219
620C LD HL,$0001
620F ADD HL,DE
6210 LD (HL),$01
6212 LD L,A
6213 LD H,$00
6215 ADD HL,DE
6216 EX DE,HL
6217 JR $6207
6219 LD HL,$5C92
621C LD DE,$611B
621F LD BC,$000A
6222 LDIR
6224 LD DE,$6CCF Room descriptions start address
6227 LD HL,$0001
622A ADD HL,DE
622B LD A,(HL)
622C RRCA
622D RRCA
622E RRCA
622F RRCA
6230 CPL
6231 OR $F6
6233 AND (HL)
6234 LD (HL),A
6235 INC HL
6236 INC HL
6237 RES 7,(HL)
6239 LD A,(DE)
623A LD L,A
623B LD H,$00
623D ADD HL,DE
623E EX DE,HL
623F LD A,(DE)
6240 CP $01
6242 JR NZ,$6227
6244 LD HL,$7288
6247 LD A,($72AB)
624A LD B,A
624B LD DE,$0006
624E LD (HL),$00
6250 ADD HL,DE
6251 DJNZ $624E
6253 RET
6254: Set object position (IX+5/+6) from grid index A (cell centre: row*8+4, col*8+4)
Used by the routines at 6663, 6B05, 8E3F, 8EA7, 8EF2, 8F1E and 9341.
6254 DEC A
6255 PUSH AF
6256 AND $F8
6258 OR $04
625A LD (IX+$05),A
625D POP AF
625E AND $07
6260 RLCA
6261 RLCA
6262 RLCA
6263 OR $04
6265 LD (IX+$06),A
6268 RET
6269: Set current room to A: locate its description record and build the room
Used by the routine at 676D.
6269 LD ($6126),A set room number
626C LD B,A
626D LD HL,$6CCF Room descriptions start address
6270 LD DE,$0000
6273 JR $6277
6275 LD E,(HL) get offset to the next room description
6276 ADD HL,DE
6277 DJNZ $6275
6279 LD ($6127),HL Store room description address
627C INC HL
627D LD A,(HL)
627E LD ($612B),A
6281 INC HL
6282 LD A,(HL)
6283 RRCA
6284 RRCA
6285 RRCA
6286 RRCA
6287 AND $0F
6289 LD ($612A),A
628C INC HL
628D LD A,(HL)
628E RLCA
628F RLCA
6290 AND $01
6292 LD ($6129),A
6295 LD HL,$612C Clear room grid - 64 bytes at 612C
6298 LD DE,$612D
629B LD BC,$003F
629E LD (HL),$00
62A0 LDIR
62A2 LD HL,($612A) place the room-type template ($612A indexes the 72B1 pointer table) into the grid via 62C8
62A5 LD H,$00
62A7 ADD HL,HL
62A8 LD DE,$72B1
62AB ADD HL,DE
62AC LD E,(HL)
62AD INC HL
62AE LD D,(HL)
62AF EX DE,HL
62B0 LD B,(HL)
62B1 DEC B
62B2 JR Z,$62BB
62B4 JP M,$62BB
62B7 INC HL
62B8 CALL $62C8
62BB LD HL,($6127) place this room's own extra (index,value) pairs (if its description is longer than 4 bytes) into the grid via 62C8
62BE LD A,(HL)
62BF SUB $04
62C1 JR Z,$62F8
62C3 LD DE,$0004
62C6 ADD HL,DE
62C7 LD B,A
62C8 LD E,(HL) Grid-entry writer. E=(HL)=index, IX=$612B+E=target address, A=(HL+1)=value; stores A at (IX+0), then checks A against $66/$67/$68/$69/$6A/$6B to also trigger a dedicated object-spawn routine. Loops B times (DJNZ), consuming 2 bytes/iteration; a special-value spawn routine can decrement B as a side effect, ending the loop earlier than the byte count alone would suggest (see 8EA7).
62C9 LD D,$00
62CB LD IX,$612B
62CF ADD IX,DE
62D1 INC HL
62D2 LD A,(HL)
62D3 LD (IX+$00),A
62D6 CP $66
62D8 CALL Z,$8EA7
62DB CP $6A
62DD CALL Z,$8EA7
62E0 CP $67
62E2 CALL Z,$8EF2
62E5 CP $69
62E7 CALL Z,$8F1E
62EA CP $6B
62EC CALL Z,$8F4C
62EF CP $68
62F1 CALL Z,$8E3F
62F4 INC HL
62F5 DEC B
62F6 DJNZ $62C8
62F8 RET
62F9: Test whether the current room is this level's Plug Room (via the per-level table at $7287); returns Z if so, with HL pointing at the entry's state byte
Used by the routines at 630D, 8F1E, 8F4C, 9341, 94F4 and 952D.
62F9 LD A,($6126) get room number
62FC LD B,A
62FD DEC A
62FE LD HL,$7281
6301 LD DE,$0006
6304 ADD HL,DE
6305 SUB $24
6307 JR NC,$6304
6309 LD A,(HL)
630A INC HL
630B CP B
630C RET
630D: Routine at 630D
Used by the routine at 676D.
630D CALL $62F9
6310 RET NZ
6311 LD A,(HL)
6312 LD HL,$72AC
6315 LD BC,$612B
6318 AND $0F
631A RET Z
631B RRCA
631C JR NC,$6326
631E LD E,(HL)
631F LD D,$00
6321 EX DE,HL
6322 ADD HL,BC
6323 LD (HL),$13
6325 EX DE,HL
6326 INC HL
6327 JR $6318
6329: Build the door/exit bitfield at $612B from the room description's byte1
Used by the routine at 91A6.
Re-reads room description byte1 (at room_base+1), merges bit4 into bit0 and bit7 into bit3 (via AND $90, RRCA x4, OR), writes the result back into the room description itself AND into $612B. Bits 0-3 of the result are then tested by 6344/6377 to conditionally draw door graphics at fixed screen positions -- one bit per exit direction: bit0=North, bit1=East, bit2=South, bit3=West (see 67F1).
6329 PUSH BC
632A PUSH DE
632B PUSH HL
632C LD HL,($6127)
632F INC HL
6330 LD A,(HL)
6331 AND $90
6333 RRCA
6334 RRCA
6335 RRCA
6336 RRCA
6337 OR (HL)
6338 CP (HL)
6339 LD (HL),A
633A LD ($612B),A
633D CALL NZ,$6344 Draw door graphics for $612B bits 0 and 3
6340 POP HL
6341 POP DE
6342 POP BC
6343 RET
6344: Draw single-piece doors, for $612B bits 0 and 3
Used by the routines at 6329 and 6377.
Tests bit 0 of $612B (North), drawing one door-graphic piece via 8128 at a fixed screen position if set; then bit 3 (West), drawing a different fixed-position piece if set.
6344 LD BC,$C7C7
6347 LD A,($612B)
634A BIT 0,A
634C JR NZ,$6355
634E LD BC,$BBBB
6351 BIT 4,A
6353 JR Z,$635E
6355 LD A,$83
6357 LD D,$6C
6359 LD E,$B8
635B CALL $8128 Draw sprite C with its mask at screen position DE
635E LD BC,$C7C7
6361 LD A,($612B)
6364 BIT 3,A
6366 JR NZ,$636E
6368 LD BC,$BBBB
636B BIT 7,A
636D RET Z
636E LD A,$03
6370 LD D,$6C
6372 LD E,$48
6374 JP $8128
6377: Draw three-piece doors, for $612B bits 1 and 2
Used by the routine at 676D.
Tests bit 1 of $612B (East), drawing three door-graphic pieces via 8128 (three fixed screen positions) if set; then bit 2 (South), drawing three different fixed-position pieces if set. Calls 6344 first.
6377 CALL $6344
637A LD A,($612B)
637D BIT 1,A
637F JR Z,$63A8
6381 LD A,$02
6383 LD D,$DC
6385 LD E,$C8
6387 LD BC,$BEBE
638A CALL $8128 Draw sprite C with its mask at screen position DE
638D LD A,$02
638F LD D,$D4
6391 LD E,$D8
6393 LD BC,$C1C1
6396 CALL $8128 Draw sprite C with its mask at screen position DE
6399 LD A,$02
639B LD D,$CC
639D LD E,$E8
639F LD BC,$BFBF
63A2 CALL $8128 Draw sprite C with its mask at screen position DE
63A5 LD A,($612B)
63A8 BIT 2,A
63AA RET Z
63AB LD A,$02
63AD LD D,$CC
63AF LD E,$18
63B1 LD BC,$BCBC
63B4 CALL $8128 Draw sprite C with its mask at screen position DE
63B7 LD A,$02
63B9 LD D,$D4
63BB LD E,$28
63BD LD BC,$C0C0
63C0 CALL $8128 Draw sprite C with its mask at screen position DE
63C3 LD A,$02
63C5 LD D,$DC
63C7 LD E,$38
63C9 LD BC,$BDBD
63CC CALL $8128 Draw sprite C with its mask at screen position DE
63CF RET
63D0: Clear shadow screen
Used by the routine at 676D.
63D0 LD HL,$E390 Shadow screen address
63D3 LD DE,$E391
63D6 LD BC,$17FF
63D9 LD (HL),$00
63DB LDIR
63DD RET
63DE: Data block at 63DE
63DE DEFB $E2,$63,$04,$64,$02,$7C,$14,$4C
63E6 DEFB $02,$7E,$40,$4C,$02,$7F,$6C,$4C
63EE DEFB $02,$7D,$14,$64,$82,$7C,$EC,$4C
63F6 DEFB $82,$7E,$C0,$4C,$82,$7F,$94,$4C
63FE DEFB $82,$7D,$EC,$64,$FF,$FF,$02,$7C
6406 DEFB $14,$4C,$02,$7E,$40,$4C,$82,$7D
640E DEFB $6C,$4C,$02,$7D,$14,$64,$82,$7C
6416 DEFB $EC,$4C,$82,$7E,$C0,$4C,$02,$7D
641E DEFB $94,$4C,$82,$7D,$EC,$64,$FF,$01
6426 DEFB $02,$03,$09,$0A,$0B,$11,$12,$13
642E DEFB $FF
642F: Draw the fixed wall/decoration layout selected by $6129
Used by the routine at 676D.
Uses $6129 (0 or 1) to index a 2-entry pointer table at $63DE, selecting one of two fixed layout lists. Each list has two parts: a sequence of 4-byte records (count, screen Y, screen X -- drawn via 8128) terminated by $FF, immediately followed by a sequence of single bytes (grid indices) terminated by $FF, each poked into the room grid ($612B+index, i.e. grid_offset=index-1) as solid wall ($7F). This is the source of the 3x3 solid-wall corner block seen in every room grid -- it is not part of the room-type template; it is this fixed, $6129-selected layout.
642F LD A,($6129)
6432 AND $01
6434 ADD A,A
6435 LD L,A
6436 LD H,$00
6438 LD DE,$63DE
643B ADD HL,DE
643C LD E,(HL)
643D INC HL
643E LD D,(HL)
643F PUSH DE
6440 POP IX
6442 LD A,(IX+$00)
6445 CP $FF
6447 JR Z,$645D
6449 LD C,(IX+$01)
644C LD B,C
644D LD E,(IX+$02)
6450 LD D,(IX+$03)
6453 CALL $8128 Draw sprite C with its mask at screen position DE
6456 LD DE,$0004
6459 ADD IX,DE
645B JR $6442
645D INC IX
645F LD A,(IX+$00)
6462 CP $FF
6464 RET Z
6465 LD C,A
6466 LD B,$00
6468 LD HL,$612B
646B ADD HL,BC
646C LD (HL),$7F
646E JR $645D
6470: Routine at 6470
Used by the routines at 64F3, 9341 and 9745.
6470 PUSH AF
6471 LD C,A
6472 LD A,B
6473 LD ($649A),A
6476 LD B,$00
6478 LD HL,$612C Room grid address
647B ADD HL,BC
647C LD A,(HL)
647D CP $7F
647F JP Z,$64EB
6482 AND $7F
6484 JP Z,$64EB
6487 LD A,C
6488 AND $07
648A RLA
648B RLA
648C RLA
648D LD D,A
648E RLA
648F ADD A,$80
6491 LD E,A
6492 LD A,C
6493 AND $F8
6495 ADD A,D
6496 ADD A,$88
6498 LD D,A
6499 SUB $18
649B ADD A,$18
649D JR NC,$64A1
649F LD A,D
64A0 INC A
64A1 LD ($64CE),A
64A4 LD A,C
64A5 AND $F8
64A7 RLA
64A8 NEG
64AA ADD A,E
64AB LD E,A
64AC LD L,(HL)
64AD LD H,$00
64AF ADD HL,HL
64B0 LD BC,$7556
64B3 ADD HL,BC
64B4 LD C,(HL)
64B5 INC HL
64B6 LD H,(HL)
64B7 LD L,C
64B8 LD B,(HL)
64B9 JR $64E8
64BB: Routine at 64BB
64BB PUSH BC
64BC PUSH HL
64BD LD A,(HL)
64BE CALL $9AAB Search the (key,data) pair table at $74CE for key A
64C1 LD C,(HL)
64C2 LD B,$00
64C4 LD HL,$750B
64C7 ADD HL,BC
64C8 ADD HL,BC
64C9 ADD HL,BC
64CA LD C,A
64CB LD A,D
64CC SUB (HL)
64CD CP $D0
64CF JR NC,$64E5
64D1 LD A,C
64D2 AND A
64D3 LD A,D
64D4 JR Z,$64E4
64D6 INC HL
64D7 LD A,D
64D8 SUB (HL)
64D9 LD D,A
64DA LD A,$00
64DC CALL $8128 Draw sprite C with its mask at screen position DE
64DF JR C,$64ED
64E1 LD A,D
64E2 ADD A,(HL)
64E3 DEC HL
64E4 SUB (HL)
64E5 LD D,A
64E6 POP HL
64E7 POP BC
This entry point is used by the routine at 6470.
64E8 INC HL
64E9 DJNZ $64BB
This entry point is used by the routine at 6470.
64EB POP AF
64EC RET
64ED JR Z,$64E1
64EF POP HL
64F0 POP HL
64F1 JR $64EB
64F3: Routine at 64F3
Used by the routine at 676D.
64F3 XOR A
64F4 LD B,$17
64F6 CALL $6470
64F9 INC A
64FA CP $40
64FC JR C,$64F4
64FE RET
64FF: Data block at 64FF
64FF DEFB $32
6500 DEFB $01 Oil level??
6501 DEFB $00 Rust/oil timer -- reset to 0 (full oil) by 6622 on using an oil can; per the game instructions, rust accumulates on contact with water and is reversed by oil
6502 DEFB $00 Oil level??
6503: Routine ?? Oil
Used by the routine at 6B71.
6503 LD A,($617A)
6506 AND A
6507 RET NZ POKE 201 (RET) here for infinite Oil
6508 LD A,($6126) get room number
650B CP $01
650D RET Z
650E CP $02
6510 RET Z
6511 LD A,($6199)
6514 AND A
6515 JP NZ,$6580
6518 LD HL,$6501
651B DEC (HL)
651C JP P,$6529
651F INC (HL)
6520 LD HL,$6500
6523 DEC (HL)
6524 RET NZ
6525 LD A,($64FF)
6528 LD (HL),A
6529 LD HL,$6502
652C INC (HL)
652D LD A,(HL)
652E CP $52
6530 JR C,$6543
6532 DEC (HL)
6533 LD HL,$8C48
6536 LD ($8DB9),HL set player behaviour-handler pointer
6539 LD A,$01
653B LD ($617A),A
653E RET
653F: Data block at 653F
653F DEFB $B5,$B6,$B7,$B8
6543: Routine at 6543
Used by the routines at 6503 and 655E.
6543 LD B,A
6544 ADD A,$AD
6546 AND $FC
6548 LD E,A
6549 LD D,$FC
654B LD A,B
654C ADD A,$01
654E AND $03
6550 LD C,A
6551 LD B,$00
6553 LD HL,$653F
6556 ADD HL,BC
6557 LD C,(HL)
6558 LD B,C
6559 LD A,$05
655B JP $8128
655E: Routine at 655E
Used by the routines at 6580 and 676D.
655E LD DE,$FCD4
6561 LD B,$C5
6563 LD C,B
6564 LD A,$03
6566 CALL $8128 Draw sprite C with its mask at screen position DE
6569 LD A,$01
656B LD HL,$6502
656E CP (HL)
656F JR NC,$657A
6571 PUSH AF
6572 CALL $6543
6575 POP AF
6576 ADD A,$03
6578 JR $656B
657A LD A,(HL)
657B AND A
657C RET Z
657D JP $6543
6580: Routine at 6580
Used by the routine at 6503.
6580 LD HL,$6502
6583 LD A,(HL)
6584 AND A
6585 JR Z,$658F
6587 DEC (HL)
6588 JP Z,$655E
658B DEC (HL)
658C JP $655E
658F LD ($6199),A
6592 RET
6593: Routine at 6593
Used by the routine at 676D.
6593 LD DE,$EC2C
6596 LD B,$C8
6598 LD C,B
6599 LD A,$02
659B CALL $8128 Draw sprite C with its mask at screen position DE
659E LD DE,$C408
65A1 LD B,$C3
65A3 LD C,B
65A4 LD H,$08
65A6 LD A,$02
65A8 CALL $8128 Draw sprite C with its mask at screen position DE
65AB LD A,D
65AC ADD A,$08
65AE LD D,A
65AF LD A,E
65B0 ADD A,$10
65B2 LD E,A
65B3 DEC H
65B4 JR NZ,$65A6
65B6 LD DE,$C4F8
65B9 LD B,$C4
65BB LD C,B
65BC LD H,$08
65BE LD A,$02
65C0 CALL $8128 Draw sprite C with its mask at screen position DE
65C3 LD A,D
65C4 ADD A,$08
65C6 LD D,A
65C7 LD A,E
65C8 SUB $10
65CA LD E,A
65CB DEC H
65CC JR NZ,$65BE
65CE RET
65CF: Data block at 65CF
65CF DEFB $16,$01,$A4,$5E
65D3 DEFB $16,$01,$B4,$5E
65D7 DEFW $7441
65D9 DEFW $0000
65DB: Draw message window: room/creature title line + rotating clue/joke message line
Used by the routine at 676D.
65DB LD HL,$65CF
65DE CALL $7D68 Print string: position cursor for message window line 1 (row $A4)
65E1 LD HL,($6127)
65E4 LD DE,$0003
65E7 ADD HL,DE
65E8 LD A,(HL)
65E9 AND $3F
65EB LD L,A
65EC LD H,$00
65EE ADD HL,HL
65EF LD C,L
65F0 LD B,H
65F1 ADD HL,HL
65F2 ADD HL,HL
65F3 ADD HL,BC
65F4 ADD HL,BC
65F5 ADD HL,BC
65F6 LD DE,$73B5 " DEATHBOWL "
65F9 ADD HL,DE
65FA LD ($65D9),HL
65FD CALL $7D68 Print string: room/creature title, indexed by room type (73B5 table)
6600 LD HL,$65D3
6603 CALL $7D68 Print string: position cursor for message window line 2 (row $B4)
6606 LD HL,($65D7)
6609 LD A,$FF
660B CP (HL)
660C JR NZ,$6614
660E LD HL,$7441
6611 LD ($65D7),HL
6614 CALL $7D68 Print string: current clue/joke message, rotating through the 7441 table
6617 LD HL,($65D7)
661A LD DE,$0014
661D ADD HL,DE
661E LD ($65D7),HL
6621 RET
6622: Use an oil can (kind $6E pickup, see 8AFB): resets rust timer, decrements oil-can count, plays sound
Used by the routine at 8AFB.
Sets $6199=1, resets the rust/oil timer $6501 to 0 (full), decrements oil-can count $6198 (BCD), calls $6646 (unidentified), plays sound effect $09.
6622 LD A,$01
6624 LD ($6199),A
6627 XOR A
6628 LD ($6501),A
662B LD HL,$6198
662E LD A,(HL)
662F SUB $01
6631 DAA
6632 LD (HL),A
6633 CALL $6646
6636 LD A,$09
6638 JP $848E
663B: Routine at 663B
Used by the routine at 676D.
663B LD DE,$D408
663E LD B,$6E
6640 LD C,B
6641 LD A,$05
6643 CALL $8128 Draw sprite C with its mask at screen position DE
This entry point is used by the routine at 6622.
6646 CALL $850E print inline string, then resume after it
6649 DEFM $16,$13,$03,$5E cursor position only, no visible text
664D LD A,($6198)
6650 JP $854F
6653: Prepare room with color 0
Used by the routine at 676D.
6653 XOR A
6654 JP $69AC Prepare the Room with color A
6657: Get room color from room description and store to 6175
Used by the routine at 676D.
6657 LD HL,($6127) get room description address
665A INC HL
665B INC HL
665C LD A,(HL) get Byte 3: Room colour and Room Size
665D AND $0F color only
665F LD ($6175),A Store room color
6662 RET
6663: Spawn the room's creature (dynamic object)
Used by the routines at 66CE and 8AFB.
Fires during room build. Passes IX=$8DEF (the creature insertion point -- see 8DB6) into 84AE, so the creature is spliced into the active object list right after the fixed records, i.e. processed after the player. Handler is 9341.
6663 PUSH BC
6664 PUSH HL
6665 LD IX,$8DEF
6669 CALL $84AE Dynamic object allocator
666C DEFW $9341 Dynamic object handler address (9341)
666E POP HL
666F PUSH HL
6670 LD (IX+$0E),L
6673 LD (IX+$0F),H
6676 INC HL
6677 LD A,(HL)
6678 INC HL
6679 CALL $6254 Set object position (IX+5/+6) from grid index A
667C LD A,(HL)
667D INC HL
667E LD (IX+$07),A
6681 LD A,(HL)
6682 LD (IX+$08),A
6685 CALL $9AAB Search the (key,data) pair table at $74CE for key A
6688 LD A,(HL)
6689 LD (IX+$0A),A
668C CALL $9A60 Dynamic object finalizer
668F POP HL
6690 POP BC
6691 RET
6692: Routine at 6692
Used by the routine at 6728.
6692 PUSH BC
6693 PUSH HL
6694 EX DE,HL
6695 LD IX,$60EC
6699 LD A,($60EB)
669C AND A
669D JR Z,$66C1
669F PUSH AF
66A0 LD L,(IX+$00)
66A3 LD H,(IX+$01)
66A6 INC HL
66A7 INC HL
66A8 INC DE
66A9 INC DE
66AA LD A,(DE)
66AB CP (HL)
66AC DEC DE
66AD DEC DE
66AE DEC HL
66AF DEC HL
66B0 JR NC,$66B9
66B2 EX DE,HL
66B3 LD (IX+$00),L
66B6 LD (IX+$01),H
66B9 INC IX
66BB INC IX
66BD POP AF
66BE DEC A
66BF JR NZ,$669F
66C1 LD (IX+$00),E
66C4 LD (IX+$01),D
66C7 LD HL,$60EB
66CA INC (HL)
66CB POP HL
66CC POP BC
66CD RET
66CE: Routine at 66CE
Used by the routine at 6728.
66CE LD HL,$8DB8
66D1 LD A,(HL)
66D2 PUSH AF
66D3 LD (HL),$00
66D5 LD A,($60EB)
66D8 AND A
66D9 JR Z,$6723
66DB LD B,A
66DC LD IX,$60EC
66E0 PUSH BC
66E1 PUSH IX
66E3 LD L,(IX+$00)
66E6 LD H,(IX+$01)
66E9 CALL $6663 Spawn the room's creature
66EC LD A,(IX+$07)
66EF SUB $04
66F1 LD (IX+$07),A
66F4 CP $18
66F6 JR C,$66FD
66F8 CALL $9BF0 Collision test
66FB JR NC,$66EC
66FD LD A,(IX+$07)
6700 ADD A,$04
6702 LD (IX+$07),A
6705 CALL $9BF0 Collision test
6708 JR C,$66FD
670A LD (IX+$0D),$00
670E LD L,(IX+$0E)
6711 LD H,(IX+$0F)
6714 INC HL
6715 INC HL
6716 LD A,(IX+$07)
6719 LD (HL),A
671A POP IX
671C INC IX
671E INC IX
6720 POP BC
6721 DJNZ $66E0
6723 POP AF
6724 LD ($8DB8),A
6727 RET
6728: Routine at 6728
Used by the routine at 676D.
6728 XOR A
6729 LD ($60EB),A
672C LD HL,$788A
672F LD BC,($7C81)
6733 LD A,($6126) get room number
6736 CP (HL)
6737 CALL Z,$6692
673A LD DE,$0008
673D ADD HL,DE
673E DJNZ $6733
6740 JP $66CE
6743: Routine at 6743
Used by the routine at 676D.
6743 LD HL,($6127)
6746 INC HL
6747 INC HL
6748 INC HL
6749 BIT 7,(HL)
674B JR NZ,$6765
674D SET 7,(HL)
674F LD IY,$7C9A
6753 CALL $88D7
6756 LD HL,$6120
6759 LD A,(HL)
675A ADD A,$05
675C DAA
675D LD (HL),A
675E INC HL
675F LD A,(HL)
6760 ADC A,$00
6762 DAA
6763 LD (HL),A
6764 RET
6765 LD IY,$7C9A
6769 CALL $88DD
676C RET
676D: Draw current room
Used by the routines at 6B05 and 97FC.
Draw the full room (walls, doors, message window, creatures/objects) -- or the reduced special-room variant for rooms $01/$02
Rooms $01 and $02 are the only two type $E rooms, and are special "no walls" rooms (see 6CCF -- room $01 is the ending/winning room). At 67AB, this routine checks if the current room ($6126) is 1 or 2 and, if so, skips straight to 67E0, bypassing: the wall/layout draw (642F), door-graphic draw (6377), the message window (65DB), and several creature/object placement calls (6593/$655E/$663B/$6743/$8F82/$6895/$885A). The room's grid contents (rocks/seaweed etc, from its type $E template) still get drawn via a separate, non-skipped path -- consistent with the "just floating rocks and seaweed, no walls" appearance of room $01. Room $01 additionally gets one extra call, 86CC (CALL Z at 67E8, gated on room==1 specifically, not room==2) -- draws the "DEATHBOWL DIVINED" end-game stats overlay (see 86CC).
676D LD ($8DB8),A
6770 LD ($8E11),A
6773 LD ($8E29),A
6776 LD A,($6126) get room number
6779 LD ($619A),A
677C LD A,($8DC1)
677F LD ($619D),A
6782 XOR A
6783 LD ($6193),A
6786 LD ($618A),A
6789 LD IX,$8DB6
678D CALL $9A49
6790 LD HL,($8DBB)
6793 LD ($619B),HL
6796 CALL $61C1
6799 LD A,($8DB8)
679C CALL $6269 Set current room to A
679F CALL $630D
67A2 CALL $7FC0
67A5 CALL $7F8E
67A8 CALL $63D0 Clear shadow screen
67AB LD A,($6126) get Room number
67AE CP $01 if room $6126 is 1 or 2, skip to 67E0 (special "no walls" room -- see 676D)
67B0 JR Z,$67E0
67B2 CP $02
67B4 JR Z,$67E0
67B6 CALL $642F Draw the fixed wall/decoration layout selected by $6129
67B9 CALL $64F3
67BC CALL $6593
67BF CALL $6377 Draw three-piece doors, for $612B bits 1 and 2
67C2 CALL $655E
67C5 CALL $65DB Draw message window
67C8 CALL $663B
67CB CALL $6743
67CE CALL $6653 Prepare room with color 0
67D1 CALL $6657 Get room color from room description and store to 6175
67D4 CALL $8F82 Re-initialize the state blocks of the two fixed object records at $8DCF and $8DEF
67D7 CALL $6895 HUD
67DA CALL $885A HUD
67DD JP $6728
Special-room path for rooms $01/$02: skips walls/doors/message-window/most creature calls; room $01 additionally calls 86CC (likely the end-game stats overlay)
67E0 CALL $64F3
67E3 LD A,($6126) get Room number
67E6 CP $01
67E8 CALL Z,$86CC Draw the end-game stats screen
67EB CALL $6653 Prepare room with color 0
67EE JP $6657 Get room color from room description and store to 6175
67F1: Attempt to move to an adjacent room (horizontal, via a door) in the direction given by ($8DC1)
Used by the routine at 8AD9.
Reads a direction code from ($8DC1) -- 1, 2, 4, or else (fallback case) -- and for each, tests one bit of the door bitfield at 612B via HL (set to $612B just before this dispatch) before allowing the move: bit 0 (direction code 1) gates "room number - 6" (row-1, NORTH); bit 1 (direction code 4) gates "room number + 1" (col+1, EAST); bit 2 (direction code 2) gates "room number + 6" (row+1, SOUTH); bit 3 (the fallback case) gates "room number - 1" (col-1, WEST). Also does on-screen player-position bounds checks (against D/E, likely screen row/col) before allowing the move, presumably to require the player to be near the room edge on that side. 97FC is called with the new room number to actually perform the transition.
67F1 LD A,($8DBD)
67F4 CP $29
67F6 JP NC,$687E
67F9 LD HL,$612B
67FC LD DE,($8DBB)
6800 LD A,($8DC1)
6803 CP $01
6805 JR NZ,$6827
6807 BIT 0,(HL)
6809 JR Z,$687E
680B LD A,E
680C CP $03
680E JR NC,$687E
6810 LD A,D
6811 CP $18
6813 JR C,$687E
6815 CP $20
6817 JR NC,$687E
6819 LD A,($6126) get room number
681C SUB $06 change room number: -6 (row-1, move NORTH)
681E LD E,$3C
6820 LD ($8DBB),DE
6824 JP $97FC Change current room to A
6827 CP $04
6829 JR NZ,$6845
682B BIT 1,(HL)
682D JR Z,$687E
682F LD A,D
6830 CP $3D
6832 JR C,$687E
6834 LD A,E
6835 CP $18
6837 JR C,$687E
6839 CP $20
683B JR NC,$687E
683D LD A,($6126) get room number
6840 INC A change room number: +1 (col+1, move EAST)
6841 LD D,$04
6843 JR $6820
6845 CP $02
6847 JR NZ,$6864
6849 BIT 2,(HL)
684B JR Z,$687E
684D LD A,E
684E CP $3D
6850 JR C,$687E
6852 LD A,D
6853 CP $18
6855 JR C,$687E
6857 CP $20
6859 JR NC,$687E
685B LD A,($6126) get room number
685E ADD A,$06 change room number: +6 (row+1, move SOUTH)
6860 LD E,$04
6862 JR $6820
6864 BIT 3,(HL)
6866 JR Z,$687E
6868 LD A,D
6869 CP $03
686B JR NC,$687E
686D LD A,E
686E CP $18
6870 JR C,$687E
6872 CP $20
6874 JR NC,$687E
6876 LD A,($6126) get room number
6879 DEC A change room number: -1 (col-1, move WEST)
687A LD D,$3C
687C JR $6820
687E AND A
687F RET
6880: Routine at 6880
Used by the routine at 8AFB.
6880 LD HL,$788A
6883 LD DE,$0008
6886 LD BC,($7C81)
688A LD C,$00
688C CP (HL)
688D JR NZ,$6890
688F INC C
6890 ADD HL,DE
6891 DJNZ $688C
6893 LD A,C
6894 RET
6895: HUD: draw the currently-held item's icon, and its ammo count if it's a weapon
Used by the routines at 676D, 68C1 and 8AFB.
Draws the sprite from the held-item record (6110, offset +3) at fixed HUD position $D4F8 via 8128, then checks (via 88E3) whether it's a weapon; if so also prints its ammo count (619E, BCD) via 854F.
6895 LD HL,($6110)
6898 LD DE,$D4F8
689B LD BC,$0003
689E ADD HL,BC
689F LD C,(HL)
68A0 LD B,C
68A1 LD A,B
68A2 LD A,$05
68A4 CALL $8128 Draw sprite C with its mask at screen position DE
68A7 LD A,(HL)
68A8 CALL $88E3 Search the buffer at $7C83 for byte A
68AB RET NZ
68AC JP $68AF
This entry point is used by the routine at 68C1.
68AF PUSH HL
68B0 PUSH BC
68B1 CALL $850E print inline string, then resume after it
68B4 DEFM $16,$13,$1C,$5E cursor position only, no visible text
68B8 LD A,($619E) get Weapon-held flag
68BB CALL $854F Print BCD byte A as two digits, high digit blanked to a space if zero
68BE POP BC
68BF POP HL
68C0 RET
68C1: Consume one shot of ammo; auto-drop the weapon when empty
Used by the routine at 8D8D.
Decrements 619E (ammo, BCD); if still nonzero, just redraws the HUD ammo count. If it reached 0: clears the HUD digits, resets 6110 (held item) to the "empty hands" sentinel 788A, and redraws the HUD icon via 6895.
68C1 LD HL,$619E
68C4 LD A,(HL)
68C5 SUB $01
68C7 DAA
68C8 LD (HL),A
68C9 JP NZ,$68AF
68CC CALL $850E print inline string, then resume after it
68CF DEFM $16,$13,$1C," ",$5E two spaces at cursor position
68D5 LD HL,$788A
68D8 LD ($6110),HL
68DB JP $6895
68DE: Data block at 68DE
68DE DEFB $04,$58,$06,$1C,$01,$C0,$58,$0E
68E6 DEFB $20,$01,$80,$5A,$04,$18,$01,$98
68EE DEFB $5A,$04,$08,$02,$00,$58,$06,$04
68F6 DEFB $01,$18,$58,$04,$08,$01,$20,$5A
68FE DEFB $07,$02,$04,$42,$5A,$06,$02,$04
6906 DEFB $64,$5A,$05,$02,$04,$86,$5A,$04
690E DEFB $02,$04,$A8,$5A,$03,$02,$04,$CA
6916 DEFB $5A,$02,$02,$04,$EC,$5A,$01,$02
691E DEFB $04,$3E,$5A,$07,$02,$04,$5C,$5A
6926 DEFB $06,$02,$04,$7A,$5A,$05,$02,$04
692E DEFB $98,$5A,$04,$02,$04,$B6,$5A,$03
6936 DEFB $02,$04,$D4,$5A,$02,$02,$04,$F2
693E DEFB $5A,$01,$02,$04,$E0,$59,$02,$02
6946 DEFB $02,$02,$5A,$02,$02,$02,$24,$5A
694E DEFB $02,$02,$02,$46,$5A,$02,$02,$02
6956 DEFB $68,$5A,$02,$02,$02,$8A,$5A,$02
695E DEFB $02,$02,$AC,$5A,$02,$02,$02,$CE
6966 DEFB $5A,$02,$02,$02,$D0,$5A,$02,$02
696E DEFB $02,$B2,$5A,$02,$02,$02,$94,$5A
6976 DEFB $02,$02,$02,$76,$5A,$02,$02,$02
697E DEFB $58,$5A,$02,$02,$02,$3A,$5A,$02
6986 DEFB $02,$02,$1C,$5A,$02,$02,$02,$FE
698E DEFB $59,$02,$02,$02,$00,$00,$00,$00
6996 DEFB $00
6997: Message at 6997
6997 DEFM "EGCFDFEABGBBAGCBDDBCF"
69AC: Prepare the Room ??
Used by the routines at 6653 and 9C35.
Input
A Room color
69AC AND $07
69AE OR $40
69B0 LD ($6175),A
69B3 EI
69B4 LD HL,$5C78
69B7 LD A,(HL)
69B8 CP (HL)
69B9 JR Z,$69B8
69BB PUSH IX
69BD LD A,($6175)
69C0 AND $07
69C2 LD C,A
69C3 ADD A,A
69C4 ADD A,C
69C5 LD C,A
69C6 LD B,$00
69C8 LD HL,$6994
69CB ADD HL,BC
69CC AND A
69CD JR Z,$69DF
69CF LD A,($6126) get room number
69D2 CP $01
69D4 JP Z,$6A32
69D7 CP $02
69D9 JP Z,$6A7E
69DC JP $69E2
69DF LD HL,$6175
69E2 LD DE,$6176
69E5 LDI
69E7 LDI
69E9 LDI
69EB LD IX,$68DE
69EF LD L,(IX+$00)
69F2 LD H,(IX+$01)
69F5 LD A,H
69F6 OR L
69F7 JR Z,$6A2F
69F9 LD B,(IX+$04)
69FC LD DE,$6174
69FF INC DE
6A00 DJNZ $69FF
6A02 LD A,(DE)
6A03 LD ($6A1A),A
6A06 LD A,(IX+$03)
6A09 DEC A
6A0A LD ($6A1F),A
6A0D NEG
6A0F ADD A,$20
6A11 LD ($6A23),A
6A14 LD A,(IX+$02)
6A17 LD B,$00
6A19 LD (HL),$40
6A1B LD E,L
6A1C LD D,H
6A1D INC DE
6A1E LD C,$01
6A20 LDIR
6A22 LD C,$1F
6A24 ADD HL,BC
6A25 DEC A
6A26 JR NZ,$6A19
6A28 LD BC,$0005
6A2B ADD IX,BC
6A2D JR $69EF
6A2F POP IX
6A31 RET
6A32 LD HL,$5800 Screen attribute area start address
6A35 LD DE,$5801
6A38 LD (HL),$03
6A3A LD BC,$0008
6A3D LDIR
6A3F LD A,($6175)
6A42 LD (HL),A
6A43 LD BC,$0004
6A46 LDIR
6A48 LD (HL),$03
6A4A LD BC,$0013
6A4D LDIR
6A4F LD HL,$5800
6A52 LD BC,$0100
6A55 LDIR
6A57 LD HL,$5920
6A5A LD DE,$5921
6A5D LD (HL),A
6A5E LD BC,$000E
6A61 LDIR
6A63 LD (HL),$03
6A65 LD BC,$0011
6A68 LDIR
6A6A LD HL,$5920
6A6D LD BC,$0040
6A70 LDIR
6A72 LD L,E
6A73 LD H,D
6A74 INC DE
6A75 LD (HL),A
6A76 LD BC,$017F
6A79 LDIR
6A7B JP $6A2F
6A7E LD HL,$5800
6A81 LD DE,$5801
6A84 LD BC,$02FF
6A87 LD A,($6175)
6A8A LD (HL),A
6A8B LDIR
6A8D LD HL,$5800
6A90 LD DE,$5801
6A93 LD BC,$011F
6A96 LD (HL),$45
6A98 LDIR
6A9A LD HL,$5954
6A9D LD DE,$5955
6AA0 LD BC,$000B
6AA3 LD (HL),$45
6AA5 LDIR
6AA7 JP $6A2F
6AAA: Routine at 6AAA
6AAA PUSH IY
6AAC PUSH IX
6AAE PUSH HL
6AAF PUSH DE
6AB0 PUSH BC
6AB1 PUSH AF
6AB2 LD HL,($5C78)
6AB5 INC HL
6AB6 LD ($5C78),HL
6AB9 LD A,($61A0)
6ABC AND A
6ABD JR NZ,$6ADA
6ABF LD BC,$7FFD
6AC2 LD A,$11
6AC4 OUT (C),A
6AC6 LD HL,$61A2
6AC9 LD A,(HL)
6ACA INC HL
6ACB CP (HL)
6ACC LD (HL),A
6ACD CALL NZ,$F424
6AD0 CALL $F427
6AD3 LD BC,$7FFD
6AD6 LD A,$10
6AD8 OUT (C),A
6ADA CALL $6AFB
6ADD POP AF
6ADE POP BC
6ADF POP DE
6AE0 POP HL
6AE1 POP IX
6AE3 POP IY
6AE5 EI
6AE6 RET
6AE7: Routine at 6AE7
Used by the routine at 6B71.
6AE7 POP HL
6AE8 LD ($6AF9),HL
6AEB XOR A
6AEC LD ($6AFB),A
6AEF EI
6AF0 RET
6AF1: Routine at 6AF1
6AF1 EI
6AF2 CALL $8445
6AF5 JP $6AF1
6AF8: Routine at 6AF8
Used by the routine at 6AFC.
6AF8 JP $6B05
6AFB: Routine at 6AFB
Used by the routine at 6AAA.
6AFB RET
6AFC: Routine at 6AFC
6AFC LD A,$C9
6AFE LD ($6AFB),A
6B01 EI
6B02 JP $6AF8
6B05: Routine at 6B05
Used by the routines at 6AF8 and 6B71.
6B05 CALL $61E3
6B08 LD HL,$8968
6B0B LD ($8DB9),HL set player behaviour-handler pointer
6B0E LD HL,$788A
6B11 LD ($6110),HL
6B14 LD A,$04
6B16 LD ($8DC1),A
6B19 LD IX,$8DB6
6B1D LD A,$34
6B1F CALL $6254 Set object position (IX+5/+6) from grid index A
6B22 LD (IX+$07),$28
6B26 XOR A
6B27 LD ($619E),A set Weapon-held flag
6B2A LD ($8DC5),A
6B2D LD ($8DC0),A
6B30 LD ($8DC3),A
6B33 LD ($8DCE),A
6B36 LD ($617A),A
6B39 LD ($6125),A set Entry-point room number choosen selecting A/B/C/D in menu
6B3C LD ($6501),A
6B3F LD HL,$9489
6B42 LD ($9493),HL
6B45 LD A,($61A0)
6B48 AND A
6B49 JR NZ,$6B5E
6B4B DI
6B4C LD BC,$7FFD
6B4F LD A,$11
6B51 OUT (C),A
6B53 CALL $F42A
6B56 LD BC,$7FFD
6B59 LD A,$10
6B5B OUT (C),A
6B5D EI
6B5E LD A,$7F
6B60 LD ($61A2),A
6B63 LD ($61A3),A
6B66 LD A,$02
6B68 CALL $676D Draw current room
6B6B CALL $9808 Per-frame main loop entry
6B6E CALL $8596
6B71: Routine at 6B71
6B71 LD HL,$0000
6B74 LD ($5C78),HL
6B77 LD A,($5C78)
6B7A LD ($6179),A
6B7D CALL $6AE7
6B80 LD A,($5C78)
6B83 LD HL,$6179
6B86 SUB (HL)
6B87 CP $03
6B89 JR C,$6B7D
6B8B LD A,($5C78)
6B8E LD (HL),A
6B8F CALL $6503 Routine ?? Oil
6B92 CALL $9C35
6B95 LD A,($6126) get room number
6B98 CP $02
6B9A JR Z,$6BA5
6B9C LD A,($61A1)
6B9F AND A
6BA0 JR NZ,$6BA5
6BA2 LD ($61A2),A
6BA5 CALL $835E
6BA8 CALL $9808 Per-frame main loop entry
6BAB LD A,($617A)
6BAE CP $FF
6BB0 JP Z,$6B05
6BB3 LD BC,$7FFE
6BB6 IN A,(C)
6BB8 BIT 1,A
6BBA JR NZ,$6B7D
6BBC LD BC,$F7FE
6BBF IN A,(C)
6BC1 BIT 0,A
6BC3 JP Z,$6B05
6BC6 LD BC,$EFFE
6BC9 IN A,(C)
6BCB RRCA
6BCC JR C,$6C03
6BCE DI
6BCF IN A,(C)
6BD1 RRCA
6BD2 JR NC,$6BCF
6BD4 LD A,($61A0)
6BD7 AND A
6BD8 JR NZ,$6BF5
6BDA LD HL,$61A2
6BDD LD A,(HL)
6BDE AND A
6BDF JR NZ,$6BE4
6BE1 INC HL
6BE2 LD (HL),$7F
6BE4 LD BC,$7FFD
6BE7 LD A,$11
6BE9 OUT (C),A
6BEB CALL $F42A
6BEE LD BC,$7FFD
6BF1 LD A,$10
6BF3 OUT (C),A
6BF5 LD BC,$EFFE
6BF8 IN A,(C)
6BFA RRCA
6BFB JR C,$6BF5
6BFD IN A,(C)
6BFF RRCA
6C00 JR NC,$6BFD
6C02 EI
6C03 JP $6B7D
6C06: Sprite number -> mask sprite number table (indexed by sprite number, read by 8128)
6C06 DEFB $82,$83,$84,$85,$86,$87,$88,$89
6C0E DEFB $8A,$8B,$8C,$0B,$0C,$0D,$0E,$91
6C16 DEFB $92,$93,$94,$95,$96,$97,$98,$99
6C1E DEFB $9A,$9B,$9C,$9D,$9E,$9F,$A0,$A1
6C26 DEFB $A2,$A3,$A4,$A5,$A6,$A7,$A8,$A9
6C2E DEFB $AA,$AB,$AC,$AD,$AE,$AF,$B0,$B1
6C36 DEFB $B2,$B3,$33,$34,$35,$36,$37,$38
6C3E DEFB $39,$3A,$3B,$3C,$3D,$3E,$3F,$40
6C46 DEFB $41,$42,$43,$44,$45,$46,$47,$48
6C4E DEFB $49,$4A,$4B,$00,$4C,$4D,$4F,$50
6C56 DEFB $51,$52,$53,$54,$55,$56,$57,$58
6C5E DEFB $59,$00,$B1,$B2,$B3,$B4,$5E,$5F
6C66 DEFB $60,$61,$62,$63,$64,$65,$66,$67
6C6E DEFB $68,$69,$6B,$00,$55,$C2,$6F,$70
6C76 DEFB $71,$72,$73,$74,$75,$76,$77,$78
6C7E DEFB $79,$7A,$7B,$00,$7C,$7D,$7E,$7F
6C86 DEFB $00,$00,$00,$00,$00,$00,$00,$A5
6C8E DEFB $00,$00,$00,$A9,$00,$00,$00,$00
6C96 DEFB $00,$00,$00,$00,$B2,$95,$96,$97
6C9E DEFB $98,$99,$9A,$9B,$9C,$9D,$9E,$9F
6CA6 DEFB $A0,$A1,$A2,$A3,$A4,$A5,$A6,$A7
6CAE DEFB $A8,$A9,$AA,$AB,$AC,$AD,$AE,$AF
6CB6 DEFB $B0,$B1,$B2,$B3,$B4,$B9,$B9,$B9
6CBE DEFB $B9,$B9,$BA,$BB,$BC,$BD,$BE,$BF
6CC6 DEFB $C0,$C1,$C2,$C3,$C4,$C5,$C6,$C7
6CCE DEFB $C8
6CCF: Room descriptions.
The world is a 6x6x6 cube of room slots (6 levels, each a 6x6 grid), per an external game map. The highest room number in this table is $D7=215=6*6*6-1, and the table has 216 records total ($00-$D7) -- one per cube slot, including ~15 unused/vacant ones (no room actually there). Horizontal (same-level) neighbours connect via doors (612B); vertical neighbours connect via whirlpools (down, 8A87) and bubbles (up, also 8A87).
The room number decodes to its cube position via n=room_number-1, then level=n/36, row=(n%36)/6, col=n%6 (0-based). Cross-checked against the 4 menu entry points (A/B/C/D) and an external game map (see x-docs/Room-Format.md).
Room description format (consumed by 6269/62BB):
byte 0: record length (offset to the next room's description);
byte 1: door/exit bitfield, stored to $612B (bit0=North, bit1=East, bit2=South, bit3=West -- see 6329/67F1);
byte 2 bits 4-7: room type index (0-15), stored to $612A -- selects the grid template from the 72B1 pointer table AND the room's creature/inhabitant (via the same value used again below);
byte 3 bit 6: wall/decoration layout selector, stored to $6129 (selects one of 2 fixed layouts drawn by 642F);
byte 3 bits 0-5: a 6-bit index (byte3 AND $3F) into the 73B5 room/creature title table -- selects the message-window title text (DEATHBOWL/PIRANHA/SEAHORSE/etc), printed by 65FD. NOT door/exit flags -- exits are encoded in byte1 (see 6329).
bytes 4+ (if record length > 4): extra (index,value) pairs specific to this room, laid out and consumed identically to a room-type template (see 72D1) -- appended on top of the shared room-type template when the room grid is built. The loop counter B starts at (length-4), but a special-value pair (value in $66/$67/$68/$69/$6A/$6B) makes its spawn routine (e.g. 8EA7) decrement B as a side effect, ending the loop early. Example: room $52 (6ECF) has 3 trailing bytes $37/$6A/$20 -- its single special pair ($37,$6A) consumes 2, and the double-decrement ends the loop before the last byte ($20) is read. Odd leftover-byte counts are therefore normal whenever a special-value entry is present.
The "Room $XX" labels below match the in-game room number as read from $6126 (i.e. 1-based: the first record is room $01).
Level 1 of 6 (room numbers $01-$24, cube rows/cols 0-5 -- see x-docs/Room-Format.md) -- entry point 'C' lands in this level (room $1A)
6CCF DEFB $07,$00,$E6,$00 Room $01 description, type $E -- the special ENDING/WINNING room
6CD3 DEFB $34,$6A,$28
6CD6 DEFB $06,$00,$E3,$00 Room $02 description, type $E -- the special MENU room
6CDA DEFB $37,$69
6CDC DEFB $04,$04,$05,$00 Room $03 description, type $0
6CE0 DEFB $04,$02,$51,$47 Room $04 description, type $5
6CE4 DEFB $0A,$0E,$05,$07 Room $05 description, type $0
6CE8 DEFB $1D,$0D,$1D,$66,$14,$40
6CEE DEFB $08,$0C,$12,$47 Room $06 description, type $1
6CF2 DEFB $1B,$03,$1F,$0D
6CF6 DEFB $08,$06,$46,$00 Room $07 description, type $4
6CFA DEFB $14,$66,$28,$40
6CFE DEFB $06,$0A,$64,$00 Room $08 description, type $6
6D02 DEFB $2D,$03
6D04 DEFB $04,$0A,$33,$44 Room $09 description, type $3
6D08 DEFB $04,$0A,$77,$40 Room $0A description, type $7
6D0C DEFB $04,$0D,$11,$07 Room $0B description, type $1
6D10 DEFB $06,$05,$05,$47 Room $0C description, type $0
6D14 DEFB $23,$0D
6D16 DEFB $04,$03,$12,$09 Room $0D description, type $1
6D1A DEFB $04,$0C,$06,$49 Room $0E description, type $0
6D1E DEFB $0E,$02,$04,$40 Room $0F description, type $0
6D22 DEFB $21,$11,$2E,$66,$2D,$60,$22,$68
6D2A DEFB $02,$53
6D2C DEFB $04,$0E,$03,$42 Room $10 description, type $0
6D30 DEFB $0A,$09,$57,$00 Room $11 description, type $5
6D34 DEFB $2D,$69,$0A,$68,$00,$14
6D3A DEFB $0A,$05,$41,$00 Room $12 description, type $4
6D3E DEFB $14,$66,$28,$40,$2E,$69
6D44 DEFB $0C,$06,$75,$40 Room $13 description, type $7
6D48 DEFB $2C,$66,$32,$68,$21,$11,$27,$09
6D50 DEFB $06,$0F,$12,$49 Room $14 description, type $1
6D54 DEFB $1C,$69
6D56 DEFB $04,$0C,$36,$06 Room $15 description, type $3
6D5A DEFB $06,$05,$24,$45 Room $16 description, type $2
6D5E DEFB $2C,$0D
6D60 DEFB $08,$06,$03,$00 Room $17 description, type $0
6D64 DEFB $13,$66,$19,$2C
6D68 DEFB $04,$09,$77,$40 Room $18 description, type $7
6D6C DEFB $04,$14,$01,$02 Room $19 description, type $0
6D70 DEFB $04,$05,$05,$49 Room $1A description, type $0
6D74 DEFB $04,$03,$22,$45 Room $1B description, type $2
6D78 DEFB $06,$09,$36,$04 Room $1C description, type $3
6D7C DEFB $1B,$69
6D7E DEFB $06,$07,$04,$49 Room $1D description, type $0
6D82 DEFB $2C,$0D
6D84 DEFB $06,$0C,$13,$09 Room $1E description, type $1
6D88 DEFB $1B,$03
6D8A DEFB $0A,$03,$27,$45 Room $1F description, type $2
6D8E DEFB $1E,$02,$22,$68,$00,$2E
6D94 DEFB $06,$0B,$61,$00 Room $20 description, type $6
6D98 DEFB $15,$0D
6D9A DEFB $04,$08,$25,$45 Room $21 description, type $2
6D9E DEFB $0A,$02,$12,$06 Room $22 description, type $1
6DA2 DEFB $2C,$03,$24,$66,$35,$60
6DA8 DEFB $08,$0B,$16,$09 Room $23 description, type $1
6DAC DEFB $12,$09,$1A,$09
6DB0 DEFB $04,$09,$54,$49 Room $24 description, type $5
Level 2 of 6 (room numbers $25-$48)
6DB4 DEFB $04,$0C,$05,$00 Room $25 description, type $0
6DB8 DEFB $04,$08,$05,$40 Room $26 description, type $0
6DBC DEFB $04,$05,$06,$00 Room $27 description, type $0
6DC0 DEFB $04,$06,$77,$40 Room $28 description, type $7
6DC4 DEFB $0A,$0A,$03,$40 Room $29 description, type $0
6DC8 DEFB $1D,$02,$1D,$68,$02,$10
6DCE DEFB $08,$08,$11,$06 Room $2A description, type $1
6DD2 DEFB $1B,$12,$0A,$12
6DD6 DEFB $09,$06,$65,$49 Room $2B description, type $6
6DDA DEFB $33,$0D,$2A,$6A,$28
6DDF DEFB $04,$0A,$82,$09 Room $2C description, type $8
6DE3 DEFB $06,$0C,$36,$44 Room $2D description, type $3
6DE7 DEFB $1A,$69
6DE9 DEFB $04,$07,$24,$45 Room $2E description, type $2
6DED DEFB $04,$0A,$53,$09 Room $2F description, type $5
6DF1 DEFB $06,$0C,$07,$49 Room $30 description, type $0
6DF5 DEFB $2C,$69
6DF7 DEFB $04,$05,$71,$40 Room $31 description, type $7
6DFB DEFB $10,$04,$F5,$08 Room $32 description, type $F -- one of 4 PLUG ROOMs (see 73B3), cube position level 2, row 2, col 1
6DFF DEFB $13,$0F,$17,$0E,$33,$0E,$37,$0F 4 decor cubes at grid corners (2,2)/(2,6)/(6,2)/(6,6), values $0F/$0E/$0E/$0F; then Plug+Whirlpool co-located at grid cell $25 -- see 8F4C/8F1E
6E07 DEFB $25,$6B,$25,$69
6E0B DEFB $0A,$07,$12,$46 Room $33 description, type $1
6E0F DEFB $1B,$03,$24,$68,$00,$61
6E15 DEFB $06,$0D,$06,$00 Room $34 description, type $0
6E19 DEFB $0F,$0D
6E1B DEFB $0A,$04,$34,$40 Room $35 description, type $3
6E1F DEFB $21,$11,$1D,$66,$28,$48
6E25 DEFB $06,$01,$03,$49 Room $36 description, type $0
6E29 DEFB $36,$69
6E2B DEFB $04,$07,$27,$05 Room $37 description, type $2
6E2F DEFB $06,$18,$01,$07 Room $38 description, type $0
6E33 DEFB $0A,$09
6E35 DEFB $04,$14,$25,$05 Room $39 description, type $2
6E39 DEFB $04,$05,$32,$44 Room $3A description, type $3
6E3D DEFB $04,$03,$16,$06 Room $3B description, type $1
6E41 DEFB $04,$0C,$34,$44 Room $3C description, type $3
6E45 DEFB $04,$07,$73,$40 Room $3D description, type $7
6E49 DEFB $0A,$0E,$57,$03 Room $3E description, type $5
6E4D DEFB $37,$0D,$0A,$68,$00,$23
6E53 DEFB $04,$09,$31,$43 Room $3F description, type $3
6E57 DEFB $04,$05,$05,$00 Room $40 description, type $0
6E5B DEFB $0A,$04,$12,$46 Room $41 description, type $1
6E5F DEFB $2F,$12,$36,$12,$1E,$12
6E65 DEFB $06,$05,$06,$00 Room $42 description, type $0
6E69 DEFB $14,$0D
6E6B DEFB $08,$03,$04,$40 Room $43 description, type $0
6E6F DEFB $0C,$69,$34,$0D
6E73 DEFB $04,$0B,$83,$03 Room $44 description, type $8
6E77 DEFB $08,$0A,$77,$40 Room $45 description, type $7
6E7B DEFB $1A,$68,$00,$11
6E7F DEFB $04,$0B,$31,$04 Room $46 description, type $3
6E83 DEFB $06,$0B,$55,$00 Room $47 description, type $5
6E87 DEFB $05,$02
6E89 DEFB $12,$09,$42,$00 Room $48 description, type $4
6E8D DEFB $1D,$00,$16,$00,$16,$68,$00,$44
6E95 DEFB $1D,$69,$2E,$68,$00,$48
Level 3 of 6 (room numbers $49-$6C) -- entry point 'A' lands in this level (room $52)
6E9B DEFB $06,$04,$37,$06 Room $49 description, type $3
6E9F DEFB $34,$69
6EA1 DEFB $0E,$06,$63,$00 Room $4A description, type $6
6EA5 DEFB $21,$11,$2E,$66,$30,$68,$2E,$68
6EAD DEFB $00,$5D
6EAF DEFB $04,$84,$04,$02 Room $4B description, type $0
6EB3 DEFB $08,$06,$16,$46 Room $4C description, type $1
6EB7 DEFB $1B,$03,$2F,$03
6EBB DEFB $04,$0A,$33,$04 Room $4D description, type $3
6EBF DEFB $04,$0C,$05,$43 Room $4E description, type $0
6EC3 DEFB $04,$07,$06,$43 Room $4F description, type $0
6EC7 DEFB $04,$0D,$24,$45 Room $50 description, type $2
6ECB DEFB $04,$07,$11,$46 Room $51 description, type $1
6ECF DEFB $07,$0B,$02,$00 Room $52 description, type $0
6ED3 DEFB $37,$6A,$20
6ED6 DEFB $04,$0C,$61,$00 Room $53 description, type $6
6EDA DEFB $0A,$01,$52,$40 Room $54 description, type $5
6EDE DEFB $21,$11,$2D,$66,$2D,$68
6EE4 DEFB $04,$05,$15,$06 Room $55 description, type $1
6EE8 DEFB $04,$01,$52,$00 Room $56 description, type $5
6EEC DEFB $04,$03,$24,$05 Room $57 description, type $2
6EF0 DEFB $04,$0C,$35,$04 Room $58 description, type $3
6EF4 DEFB $08,$07,$41,$40 Room $59 description, type $4
6EF8 DEFB $2E,$66,$28,$58
6EFC DEFB $08,$0C,$05,$40 Room $5A description, type $0
6F00 DEFB $25,$68,$00,$5D
6F04 DEFB $0C,$03,$44,$00 Room $5B description, type $4
6F08 DEFB $13,$02,$13,$68,$02,$1C,$2A,$03
6F10 DEFB $04,$0A,$65,$00 Room $5C description, type $6
6F14 DEFB $08,$0E,$12,$03 Room $5D description, type $1
6F18 DEFB $0D,$68,$02,$2F
6F1C DEFB $08,$09,$07,$43 Room $5E description, type $0
6F20 DEFB $2D,$68,$02,$4B
6F24 DEFB $08,$05,$04,$00 Room $5F description, type $0
6F28 DEFB $37,$66,$28,$58
6F2C DEFB $0D,$05,$56,$00 Room $60 description, type $5
6F30 DEFB $1A,$6A,$28,$33,$69,$3A,$09,$3D
6F38 DEFB $09
6F39 DEFB $04,$07,$04,$00 Room $61 description, type $0
6F3D DEFB $0A,$06,$04,$03 Room $62 description, type $0
6F41 DEFB $2D,$68,$02,$5D,$37,$0D
6F47 DEFB $04,$0F,$43,$03 Room $63 description, type $4
6F4B DEFB $04,$0A,$21,$05 Room $64 description, type $2
6F4F DEFB $10,$09,$F3,$08 Room $65 description, type $F -- one of 4 PLUG ROOMs (see 73B3), cube position level 3, row 4, col 4
6F53 DEFB $13,$0B,$17,$0C,$33,$0A,$37,$0B 4 decor cubes at grid corners (2,2)/(2,6)/(6,2)/(6,6), values $0B/$0C/$0A/$0B; then Plug+Whirlpool co-located at grid cell $25 -- see 8F4C/8F1E
6F5B DEFB $25,$6B,$25,$69
6F5F DEFB $06,$05,$45,$00 Room $66 description, type $4
6F63 DEFB $12,$69
6F65 DEFB $04,$02,$82,$00 Room $67 description, type $8
6F69 DEFB $04,$0B,$14,$03 Room $68 description, type $1
6F6D DEFB $04,$0B,$07,$43 Room $69 description, type $0
6F71 DEFB $08,$0A,$13,$03 Room $6A description, type $1
6F75 DEFB $33,$68,$00,$40
6F79 DEFB $06,$0A,$32,$04 Room $6B description, type $3
6F7D DEFB $0A,$0D
6F7F DEFB $04,$18,$05,$40 Room $6C description, type $0
Level 4 of 6 (room numbers $6D-$90) -- entry point 'D' lands in this level (room $84)
6F83 DEFB $04,$02,$85,$01 Room $6D description, type $8
6F87 DEFB $04,$0E,$12,$09 Room $6E description, type $1
6F8B DEFB $0D,$08,$36,$46 Room $6F description, type $3
6F8F DEFB $1B,$6A,$2D,$16,$02,$16,$68,$02
6F97 DEFB $38
6F98 DEFB $04,$06,$24,$45 Room $70 description, type $2
6F9C DEFB $04,$0A,$73,$40 Room $71 description, type $7
6FA0 DEFB $06,$0C,$27,$05 Room $72 description, type $2
6FA4 DEFB $24,$07
6FA6 DEFB $04,$02,$06,$00 Room $73 description, type $0
6FAA DEFB $06,$03,$65,$40 Room $74 description, type $6
6FAE DEFB $0C,$69
6FB0 DEFB $04,$0E,$02,$02 Room $75 description, type $0
6FB4 DEFB $0E,$09,$46,$02 Room $76 description, type $4
6FB8 DEFB $2E,$69,$0C,$66,$3C,$60,$37,$02
6FC0 DEFB $16,$00
6FC2 DEFB $07,$02,$54,$40 Room $77 description, type $5
6FC6 DEFB $23,$6A,$32
6FC9 DEFB $04,$0D,$63,$00 Room $78 description, type $6
6FCD DEFB $04,$02,$07,$40 Room $79 description, type $0
6FD1 DEFB $04,$02,$01,$40 Room $7A description, type $0
6FD5 DEFB $04,$05,$55,$42 Room $7B description, type $5
6FD9 DEFB $14,$02,$02,$00 Room $7C description, type $0
6FDD DEFB $0B,$09,$12,$09,$14,$09,$1B,$09
6FE5 DEFB $13,$66,$37,$50,$36,$66,$2B,$60
6FED DEFB $08,$0C,$86,$00 Room $7D description, type $8
6FF1 DEFB $0E,$68,$02,$41
6FF5 DEFB $04,$05,$34,$04 Room $7E description, type $3
6FF9 DEFB $16,$06,$73,$40 Room $7F description, type $7
6FFD DEFB $27,$68,$00,$11,$2E,$68,$00,$24
7005 DEFB $2F,$68,$00,$3B,$38,$0D,$0D,$0D
700D DEFB $22,$0D
700F DEFB $07,$0E,$37,$44 Room $80 description, type $3
7013 DEFB $2E,$6A,$40
7016 DEFB $04,$0B,$81,$00 Room $81 description, type $8
701A DEFB $06,$0C,$45,$00 Room $82 description, type $4
701E DEFB $1D,$00
7020 DEFB $04,$16,$02,$47 Room $83 description, type $0
7024 DEFB $04,$0D,$76,$40 Room $84 description, type $7
7028 DEFB $04,$05,$14,$43 Room $85 description, type $1
702C DEFB $04,$07,$03,$01 Room $86 description, type $0
7030 DEFB $04,$86,$67,$09 Room $87 description, type $6
7034 DEFB $06,$0F,$31,$49 Room $88 description, type $3
7038 DEFB $2D,$69
703A DEFB $04,$0F,$65,$00 Room $89 description, type $6
703E DEFB $04,$0D,$32,$04 Room $8A description, type $3
7042 DEFB $06,$03,$46,$03 Room $8B description, type $4
7046 DEFB $1A,$0D
7048 DEFB $04,$09,$84,$03 Room $8C description, type $8
704C DEFB $08,$03,$13,$49 Room $8D description, type $1
7050 DEFB $1B,$03,$2F,$03
7054 DEFB $08,$09,$07,$09 Room $8E description, type $0
7058 DEFB $14,$68,$00,$50
705C DEFB $09,$01,$01,$02 Room $8F description, type $0
7060 DEFB $21,$11,$1E,$6A,$32
7065 DEFB $06,$01,$25,$45 Room $90 description, type $2
7069 DEFB $25,$69
Level 5 of 6 (room numbers $91-$B4)
706B DEFB $0E,$02,$83,$05 Room $91 description, type $8
706F DEFB $1A,$02,$1A,$68,$00,$28,$1D,$68
7077 DEFB $00,$21
7079 DEFB $06,$84,$05,$47 Room $92 description, type $0
707D DEFB $23,$09
707F DEFB $0C,$06,$14,$01 Room $93 description, type $1
7083 DEFB $21,$11,$14,$66,$39,$5E,$1F,$03
708B DEFB $04,$0E,$06,$43 Room $94 description, type $0
708F DEFB $06,$0A,$17,$03 Room $95 description, type $1
7093 DEFB $12,$03
7095 DEFB $04,$0C,$31,$43 Room $96 description, type $3
7099 DEFB $04,$0D,$02,$00 Room $97 description, type $0
709D DEFB $04,$07,$73,$40 Room $98 description, type $7
70A1 DEFB $0C,$0D,$84,$05 Room $99 description, type $8
70A5 DEFB $0C,$68,$00,$1A,$2C,$68,$00,$27
70AD DEFB $0B,$03,$55,$03 Room $9A description, type $5
70B1 DEFB $0A,$03,$21,$11,$25,$6A,$38
70B8 DEFB $10,$0A,$F3,$08 Room $9B description, type $F -- one of 4 PLUG ROOMs (see 73B3), cube position level 5, row 1, col 4
70BC DEFB $13,$10,$17,$10,$33,$10,$37,$10 4 decor cubes at grid corners (2,2)/(2,6)/(6,2)/(6,6), all value $10; then Plug+Whirlpool co-located at grid cell $25 -- see 8F4C/8F1E
70C4 DEFB $25,$6B,$25,$69
70C8 DEFB $06,$0D,$66,$00 Room $9C description, type $6
70CC DEFB $13,$67
70CE DEFB $0A,$06,$17,$41 Room $9D description, type $1
70D2 DEFB $21,$11,$23,$66,$35,$58
70D8 DEFB $08,$0B,$21,$45 Room $9E description, type $2
70DC DEFB $2F,$68,$00,$30
70E0 DEFB $0B,$0F,$42,$09 Room $9F description, type $4
70E4 DEFB $0C,$66,$35,$68,$1A,$6A,$30
70EB DEFB $0E,$0C,$73,$09 Room $A0 description, type $7
70EF DEFB $0A,$68,$00,$10,$0B,$09,$13,$68
70F7 DEFB $00,$4F
70F9 DEFB $0A,$04,$04,$01 Room $A1 description, type $0
70FD DEFB $12,$0D,$13,$0D,$0D,$0D
7103 DEFB $0A,$05,$15,$06 Room $A2 description, type $1
7107 DEFB $0B,$12,$12,$12,$27,$12
710D DEFB $06,$03,$56,$40 Room $A3 description, type $5
7111 DEFB $1E,$67
7113 DEFB $18,$0A,$47,$40 Room $A4 description, type $4
7117 DEFB $16,$00,$2B,$00,$16,$68,$00,$0A
711F DEFB $0D,$68,$00,$2B,$2B,$68,$00,$11
7127 DEFB $34,$68,$00,$2B
712B DEFB $06,$0D,$11,$49 Room $A5 description, type $1
712F DEFB $1C,$69
7131 DEFB $0A,$07,$32,$04 Room $A6 description, type $3
7135 DEFB $12,$68,$00,$39,$26,$69
713B DEFB $04,$1E,$63,$00 Room $A7 description, type $6
713F DEFB $08,$85,$82,$09 Room $A8 description, type $8
7143 DEFB $2E,$68,$00,$1B
7147 DEFB $04,$06,$53,$02 Room $A9 description, type $5
714B DEFB $04,$0E,$04,$47 Room $AA description, type $0
714F DEFB $04,$0F,$15,$07 Room $AB description, type $1
7153 DEFB $04,$0A,$87,$07 Room $AC description, type $8
7157 DEFB $12,$0D,$41,$45 Room $AD description, type $4
715B DEFB $1D,$00,$1D,$68,$00,$13,$14,$68
7163 DEFB $00,$0E,$26,$68,$00,$19
7169 DEFB $07,$05,$32,$09 Room $AE description, type $3
716D DEFB $12,$6A,$3C
7170 DEFB $04,$03,$03,$47 Room $AF description, type $0
7174 DEFB $04,$0B,$24,$07 Room $B0 description, type $2
7178 DEFB $04,$09,$25,$05 Room $B1 description, type $2
717C DEFB $04,$08,$06,$00 Room $B2 description, type $0
7180 DEFB $06,$03,$37,$44 Room $B3 description, type $3
7184 DEFB $2C,$69
7186 DEFB $06,$09,$15,$46 Room $B4 description, type $1
718A DEFB $28,$09
Level 6 of 6 (room numbers $B5-$D8) -- entry point 'B' lands in this level (room $C0)
718C DEFB $10,$06,$12,$45 Room $B5 description, type $1
7190 DEFB $1F,$12,$27,$12,$1A,$12,$15,$12
7198 DEFB $19,$04,$1E,$04
719C DEFB $0C,$0C,$43,$09 Room $B6 description, type $4
71A0 DEFB $0F,$00,$16,$00,$16,$68,$00,$65
71A8 DEFB $0A,$02,$04,$47 Room $B7 description, type $0
71AC DEFB $36,$66,$2D,$68,$21,$11
71B2 DEFB $07,$0E,$85,$07 Room $B8 description, type $8
71B6 DEFB $2E,$6A,$3C
71B9 DEFB $04,$0E,$16,$07 Room $B9 description, type $1
71BD DEFB $04,$08,$87,$02 Room $BA description, type $8
71C1 DEFB $04,$07,$71,$40 Room $BB description, type $7
71C5 DEFB $04,$0B,$82,$09 Room $BC description, type $8
71C9 DEFB $04,$0C,$33,$44 Room $BD description, type $3
71CD DEFB $04,$03,$04,$47 Room $BE description, type $0
71D1 DEFB $04,$0B,$05,$47 Room $BF description, type $0
71D5 DEFB $12,$0C,$06,$00 Room $C0 description, type $0
71D9 DEFB $37,$66,$A0,$36,$2F,$09,$36,$09
71E1 DEFB $38,$09,$3F,$09,$0F,$0D
71E7 DEFB $0D,$01,$67,$07 Room $C1 description, type $6
71EB DEFB $21,$11,$21,$68,$11,$5D,$2E,$6A
71F3 DEFB $35
71F4 DEFB $04,$06,$51,$43 Room $C2 description, type $5
71F8 DEFB $08,$0F,$12,$03 Room $C3 description, type $1
71FC DEFB $1C,$68,$00,$11
7200 DEFB $04,$08,$63,$03 Room $C4 description, type $6
7204 DEFB $08,$06,$14,$01 Room $C5 description, type $1
7208 DEFB $13,$12,$0C,$0D
720C DEFB $0E,$0D,$45,$01 Room $C6 description, type $4
7210 DEFB $16,$00,$24,$00,$2B,$00,$2B,$68
7218 DEFB $00,$4E
721A DEFB $04,$06,$56,$47 Room $C7 description, type $5
721E DEFB $06,$1A,$17,$01 Room $C8 description, type $1
7222 DEFB $34,$03
7224 DEFB $04,$96,$81,$02 Room $C9 description, type $8
7228 DEFB $04,$0E,$12,$49 Room $CA description, type $1
722C DEFB $07,$0B,$53,$41 Room $CB description, type $5
7230 DEFB $2E,$6A,$3C
7233 DEFB $07,$09,$04,$01 Room $CC description, type $0
7237 DEFB $37,$6A,$46
723A DEFB $0D,$03,$45,$07 Room $CD description, type $4
723E DEFB $1A,$6A,$2D,$27,$66,$38,$58,$1D
7246 DEFB $00
7247 DEFB $04,$0C,$36,$47 Room $CE description, type $3
724B DEFB $08,$03,$07,$45 Room $CF description, type $0
724F DEFB $2D,$68,$02,$46
7253 DEFB $04,$09,$81,$09 Room $D0 description, type $8
7257 DEFB $04,$0C,$04,$40 Room $D1 description, type $0
725B DEFB $04,$0C,$04,$40 Room $D2 description, type $0
725F DEFB $04,$02,$84,$01 Room $D3 description, type $8
7263 DEFB $04,$09,$25,$05 Room $D4 description, type $2
7267 DEFB $04,$0A,$04,$00 Room $D5 description, type $0
726B DEFB $04,$0B,$04,$00 Room $D6 description, type $0
726F DEFB $07,$02,$81,$00 Room $D7 description, type $8
7273 DEFB $37,$6A,$28
7276 DEFB $10,$08,$F2,$08 Room $D8 description, type $F -- one of 4 PLUG ROOMs (see 73B3), cube position level 6, row 5, col 5
727A DEFB $13,$0F,$17,$0E,$33,$0E,$37,$0F 4 decor cubes at grid corners (2,2)/(2,6)/(6,2)/(6,6), values $0F/$0E/$0E/$0F; then Plug+Whirlpool co-located at grid cell $25 -- see 8F4C/8F1E
7282 DEFB $25,$6B,$25,$69
7286: Data block at 7286
7286 DEFB $01
Per-level Plug Room table: 6 entries (levels 1-6), 6 bytes each. byte0 = the level's Plug Room number ($00 = none; $32/$65/$9B/$D8 for levels 2/3/5/6), byte1 = state byte (low nibble checked against $0F by 8F4C/94F4 to suppress the plug spawn -- plug already pulled?), bytes 2-5 = purpose not yet known. Looked up by 62F9.
7287 DEFB $00,$00,$00,$00,$00,$00
728D DEFB $32,$00,$7A,$76,$76,$7A
7293 DEFB $65,$00,$42,$38,$3A,$42
7299 DEFB $00,$00,$00,$00,$00,$00
729F DEFB $9B,$00,$70,$70,$70,$70
72A5 DEFB $D8,$00,$7A,$76,$76,$7A
72AB: Data block at 72AB
72AB DEFB $06,$13,$17,$33,$37,$25
72B1: Room-type template pointer table
16 words, indexed by $612A (room type 0-15, from room description byte2 bits 4-7); each points to a template block below. Types 9-14 all share the same template ($73A0).
72B1 DEFW $72D1,$72E4,$72F3,$731A
72B9 DEFW $7329,$733E,$734F,$7362
72C1 DEFW $7389,$73A0,$73A0,$73A0
72C9 DEFW $73A0,$73A0,$73A0,$73B3
72D1: Room-type templates
Each template starts with a byte0 giving the total byte count of that template block (not a pair count -- matches the gap to the next template's pointer exactly), followed by (index,value) pairs consumed by 62C8 to populate the room grid (see 612C).
Room type $0 (19 bytes)
72D1 DEFB $13 byte count for this template (19)
72D2 DEFB $16,$01,$20,$01,$22,$02,$26,$01
72DA DEFB $2D,$02,$32,$04,$33,$04,$1C,$66
72E2 DEFB $37,$40
Room type $1 (15 bytes)
72E4 DEFB $0F byte count for this template (15)
72E5 DEFB $0D,$02,$0E,$04,$2B,$03,$25,$03
72ED DEFB $32,$01,$35,$66,$37,$40
Room type $2 (39 bytes)
72F3 DEFB $27 byte count for this template (39)
72F4 DEFB $0C,$68,$00,$11,$17,$68,$00,$18
72FC DEFB $1A,$68,$00,$27,$1C,$68,$00,$0A
7304 DEFB $1F,$68,$00,$5C,$2E,$68,$00,$35
730C DEFB $33,$68,$00,$1F,$36,$68,$00,$49
7314 DEFB $06,$09,$24,$09,$3A,$09
Room type $3 (15 bytes)
731A DEFB $0F byte count for this template (15)
731B DEFB $0F,$07,$14,$07,$22,$08,$2F,$08
7323 DEFB $33,$07,$1C,$67,$36,$0D
Room type $4 (21 bytes)
7329 DEFB $15 byte count for this template (21)
732A DEFB $08,$09,$0F,$09,$16,$09,$1D,$09
7332 DEFB $24,$09,$2B,$09,$32,$09,$39,$09
733A DEFB $2C,$02,$1F,$04
Room type $5 (17 bytes)
733E DEFB $11 byte count for this template (17)
733F DEFB $0E,$09,$1C,$09,$2B,$09,$26,$09
7347 DEFB $28,$09,$2B,$09,$35,$09,$0E,$0D
Room type $6 (19 bytes)
734F DEFB $13 byte count for this template (19)
7350 DEFB $0D,$0D,$10,$01,$17,$0D,$1C,$0D
7358 DEFB $23,$01,$27,$01,$32,$0D,$36,$0D
7360 DEFB $3D,$0D
Room type $7 (39 bytes)
7362 DEFB $27 byte count for this template (39)
7363 DEFB $0D,$68,$00,$0F,$10,$0D,$17,$0D
736B DEFB $1C,$09,$1E,$09,$1F,$68,$00,$28
7373 DEFB $22,$68,$00,$3F,$25,$68,$00,$39
737B DEFB $26,$0D,$28,$09,$2B,$03,$2D,$09
7383 DEFB $34,$68,$00,$21,$37,$09
Room type $8 (23 bytes)
7389 DEFB $17 byte count for this template (23)
738A DEFB $0B,$0D,$0E,$02,$0F,$01,$13,$03
7392 DEFB $1E,$03,$24,$0D,$2A,$03,$2F,$0D
739A DEFB $34,$01,$25,$66,$3C,$54
Room type $9..$E (19 bytes)
73A0 DEFB $13 byte count for this template (19)
73A1 DEFB $16,$01,$20,$01,$22,$02,$26,$01
73A9 DEFB $2D,$02,$32,$04,$33,$04,$13,$66
73B1 DEFB $23,$58
Room type $F (2 bytes) -- used by exactly 4 rooms in the whole table -- $32, $65, $9B, $D8 (cube positions level2/row2/col1, level3/row4/col4, level5/row1/col4, level6/row5/col5 respectively) -- all four "PLUG ROOM" (title index 8). Per the game's own instructions text (x-docs/Instructions.txt): "the gigantic planetary aquarium... is now so polluted that the only remedy is to completely empty it of water by pulling each of the four main plugs" -- these 4 rooms are the win-condition rooms: pulling all four plugs completes the game. The template itself (2 bytes: length + 1 more) is too short to hold any real (index,value) pair, consistent with Plug Rooms being a distinct, mostly-static-content-free category built around the plug-placement mechanic rather than normal terrain.
73B3 DEFB $01 byte count for this template (2)
73B4 DEFB $01
73B5: Room/creature title table
10 entries, 14 bytes each, terminated by $5E. Indexed by room type (see 72D1); printed as the message window's title line by 65DB and restored by 9808. Entries $A onward (from 7441) are reused as the rotating clue/joke message table printed by 65DB via 65D7.
73B5 DEFM " DEATHBOWL ",$5E " DEATHBOWL "
73C3 DEFM " PIRANHA ",$5E " PIRANHA "
73D1 DEFM " SEAHORSE ",$5E " SEAHORSE "
73DF DEFM " WOLF FISH ",$5E " WOLF FISH "
73ED DEFM " ANEMONE ",$5E " ANEMONE "
73FB DEFM " SEA SLUG ",$5E " SEA SLUG "
7409 DEFM " OYSTER ",$5E " OYSTER "
7417 DEFM " JELLYFISH ",$5E " JELLYFISH "
7425 DEFM " PLUG ROOM ",$5E " PLUG ROOM "
7433 DEFM " BABY WHALE ",$5E " BABY WHALE "
7441: Warning-sign / clue message table
7 entries, 20 bytes each, terminated by $FF; alias into the tail of the 73B5 table.
7441 DEFM "FEEDING PROHIBITED ",$5E "FEEDING PROHIBITED "
7455 DEFM "BATHING NOT ALLOWED",$5E "BATHING NOT ALLOWED"
7469 DEFM "DONT TAP THE GLASS ",$5E "DONT TAP THE GLASS "
747D DEFM "NOW WASH YOUR HANDS",$5E "NOW WASH YOUR HANDS"
7491 DEFM "NOT DRINKING WATER ",$5E "NOT DRINKING WATER "
74A5 DEFM "DONT BITE THE FISH ",$5E "DONT BITE THE FISH "
74B9 DEFM " PLEASE GO QUIETLY ",$5E,$FF " PLEASE GO QUIETLY "
74CE: Data block at 74CE
74CE DEFB $00,$0C,$6A,$0E,$38,$0D,$3A,$0D
74D6 DEFB $3C,$0D,$3E,$0D,$40,$0D,$42,$0D
74DE DEFB $6D,$0D,$6E,$0D,$70,$0D,$76,$0D
74E6 DEFB $72,$0D,$74,$0D,$76,$0D,$78,$0D
74EE DEFB $7A,$0D,$44,$0B,$50,$19,$52,$05
74F6 DEFB $54,$18,$56,$0F,$48,$08,$4E,$19
74FE DEFB $46,$13,$4A,$05,$58,$05,$6C,$18
7506 DEFB $BA,$0A,$04,$1D,$02
750B DEFB $0D,$14,$01,$18,$18,$02,$14,$15
7513 DEFB $02,$09,$10,$03,$0C,$18,$03,$0C
751B DEFB $10,$03,$00,$08,$04,$1C,$1E,$04
7523 DEFB $0C,$12,$02,$1C,$1E,$04,$00,$0A
752B DEFB $04,$14,$18,$02,$10,$0C,$02,$0C
7533 DEFB $14,$04,$1C,$20,$02,$20,$26,$04
753B DEFB $14,$16,$02,$24,$35,$03,$18,$20
7543 DEFB $04,$1C,$1E,$03,$08,$0E,$03,$08
754B DEFB $0C,$03,$10,$14,$03,$08,$10,$04
7553 DEFB $18,$18,$03
7556: Data block at 7556
Per-terrain-code shape/behaviour pointer table, indexed by grid content code * 2 (code $00, unused since a $00 grid cell means "empty" and is never looked up, has a dummy entry). Read by 9ABC (player/object collision -- looks up the pointer, then reads further bytes for shape data) and 8E6E (creature/object setup, same table). 21 entries (codes $00-$14) pointing into the shape-record area starting at $7580; codes above $14 are never used as static grid content and have no entry.
7556 DEFW $1A1A
7558 DEFW $7580
755A DEFW $7582
755C DEFW $7584
755E DEFW $7586
7560 DEFW $7588
7562 DEFW $758A
7564 DEFW $758C
7566 DEFW $758E
7568 DEFW $7590
756A DEFW $7592
756C DEFW $7595
756E DEFW $7598
7570 DEFW $759B
7572 DEFW $759D
7574 DEFW $75A0
7576 DEFW $75A3
7578 DEFW $75A6
757A DEFW $75A9
757C DEFW $75AB
757E DEFW $75AE
7580 DEFB $02,$4A Shape record for terrain code $01 (7556)
7582 DEFB $02,$52 Shape record for terrain code $02 (7556)
7584 DEFB $02,$54 Shape record for terrain code $03 (7556)
7586 DEFB $02,$58 Shape record for terrain code $04 (7556)
7588 DEFB $02,$BA Shape record for terrain code $05 (7556)
758A DEFB $02,$48 Shape record for terrain code $06 (7556)
758C DEFB $02,$4E Shape record for terrain code $07 (7556)
758E DEFB $02,$50 Shape record for terrain code $08 (7556)
7590 DEFB $02,$46 Shape record for terrain code $09 (7556)
7592 DEFB $03,$3A,$BA Shape record for terrain code $0A (7556)
7595 DEFB $03,$42,$BA Shape record for terrain code $0B (7556)
7598 DEFB $03,$38,$BA Shape record for terrain code $0C (7556)
759B DEFB $02,$56 Shape record for terrain code $0D (7556)
759D DEFB $03,$76,$BA Shape record for terrain code $0E (7556)
75A0 DEFB $03,$7A,$BA Shape record for terrain code $0F (7556)
75A3 DEFB $03,$70,$BA Shape record for terrain code $10 (7556)
75A6 DEFB $03,$00,$6A Shape record for terrain code $11 (7556)
75A9 DEFB $02,$6C Shape record for terrain code $12 (7556)
75AB DEFB $03,$6D,$BA Shape record for terrain code $13 (7556)
75AE: Data block at 75AE
75AE DEFB $46,$4E,$50,$52,$54,$56,$6C
75B5: Data block at 75B5
75B5 DEFB $07,$0D,$01,$32,$92,$34,$34,$07
75BD DEFB $00,$04,$05,$06,$0B,$0C,$09,$01
75C5 DEFB $1E,$92,$1C,$14,$07,$40,$08,$09
75CD DEFB $01,$1E,$92,$1C,$24,$07,$40,$08
75D5 DEFB $0C,$01,$85,$90,$34,$34,$07,$00
75DD DEFB $0D,$0E,$14,$1A,$09,$01,$08,$92
75E5 DEFB $14,$3C,$09,$00,$10,$09,$01,$08
75ED DEFB $92,$34,$0C,$09,$00,$10,$09,$01
75F5 DEFB $08,$92,$2C,$0C,$09,$00,$12,$09
75FD DEFB $01,$08,$92,$14,$3C,$09,$00,$19
7605 DEFB $09,$01,$08,$92,$34,$0C,$09,$00
760D DEFB $19,$0C,$01,$85,$90,$34,$34,$07
7615 DEFB $00,$1D,$1E,$23,$24,$09,$01,$A8
761D DEFB $90,$24,$3C,$07,$00,$22,$0A,$01
7625 DEFB $85,$90,$1C,$24,$07,$00,$2B,$2C
762D DEFB $0B,$01,$85,$90,$34,$34,$07,$00
7635 DEFB $2F,$30,$36,$0C,$01,$32,$92,$24
763D DEFB $1C,$07,$00,$34,$3A,$40,$46,$09
7645 DEFB $01,$32,$92,$34,$34,$07,$00,$38
764D DEFB $09,$01,$1E,$92,$1C,$2C,$07,$40
7655 DEFB $3B,$09,$01,$1E,$92,$24,$1C,$07
765D DEFB $40,$3B,$0B,$01,$A8,$90,$24,$34
7665 DEFB $07,$00,$3E,$3F,$44,$09,$01,$08
766D DEFB $92,$14,$24,$09,$00,$48,$09,$01
7675 DEFB $08,$92,$2C,$1C,$09,$00,$48,$09
767D DEFB $01,$08,$92,$04,$3C,$09,$00,$4B
7685 DEFB $09,$01,$08,$92,$3C,$04,$09,$00
768D DEFB $4B,$0A,$01,$A8,$90,$1C,$24,$07
7695 DEFB $00,$4E,$54,$0A,$01,$A8,$90,$1C
769D DEFB $0C,$07,$00,$55,$5B,$0C,$01,$A8
76A5 DEFB $90,$34,$34,$07,$00,$5C,$5D,$5E
76AD DEFB $63,$0C,$01,$A8,$90,$34,$34,$07
76B5 DEFB $00,$67,$68,$69,$6A,$09,$01,$32
76BD DEFB $92,$34,$34,$07,$00,$6C,$09,$01
76C5 DEFB $85,$90,$1C,$1C,$07,$00,$6E,$0B
76CD DEFB $01,$08,$92,$0C,$24,$09,$00,$75
76D5 DEFB $76,$7B,$0B,$01,$08,$92,$2C,$0C
76DD DEFB $09,$00,$75,$76,$7B,$09,$01,$1E
76E5 DEFB $92,$2C,$0C,$07,$40,$78,$09,$01
76ED DEFB $1E,$92,$04,$2C,$07,$40,$78,$0D
76F5 DEFB $01,$85,$90,$24,$14,$07,$00,$82
76FD DEFB $87,$88,$8D,$8E,$09,$01,$32,$92
7705 DEFB $34,$34,$07,$00,$83,$0B,$01,$A8
770D DEFB $90,$24,$14,$07,$00,$85,$8B,$8C
7715 DEFB $09,$01,$1E,$92,$2C,$04,$07,$40
771D DEFB $86,$09,$01,$1E,$92,$0C,$34,$07
7725 DEFB $40,$86,$09,$01,$08,$92,$0C,$2C
772D DEFB $09,$00,$8F,$09,$01,$08,$92,$2C
7735 DEFB $0C,$09,$00,$8F,$09,$01,$32,$92
773D DEFB $24,$1C,$07,$00,$92,$09,$01,$1E
7745 DEFB $92,$1C,$2C,$07,$40,$93,$09,$01
774D DEFB $1E,$92,$2C,$1C,$07,$40,$93,$0C
7755 DEFB $01,$A8,$90,$1C,$24,$07,$00,$94
775D DEFB $95,$96,$9A,$09,$01,$1E,$92,$1C
7765 DEFB $2C,$07,$40,$9D,$09,$01,$1E,$92
776D DEFB $2C,$1C,$07,$40,$9D,$0B,$01,$85
7775 DEFB $90,$24,$14,$07,$00,$9F,$A5,$A0
777D DEFB $09,$01,$1E,$92,$1C,$2C,$07,$40
7785 DEFB $A1,$09,$01,$1E,$92,$2C,$1C,$07
778D DEFB $40,$A1,$09,$01,$08,$92,$14,$2C
7795 DEFB $09,$00,$A7,$09,$01,$08,$92,$2C
779D DEFB $0C,$09,$00,$A7,$0B,$01,$85,$90
77A5 DEFB $0C,$34,$07,$00,$A8,$AE,$B4,$09
77AD DEFB $01,$08,$92,$14,$2C,$09,$00,$A9
77B5 DEFB $09,$01,$08,$92,$24,$24,$09,$00
77BD DEFB $A9,$0B,$01,$32,$92,$1C,$24,$07
77C5 DEFB $00,$AA,$AF,$B0,$0A,$01,$32,$92
77CD DEFB $1C,$24,$07,$00,$AB,$AC,$09,$01
77D5 DEFB $08,$92,$24,$24,$09,$00,$B1,$09
77DD DEFB $01,$08,$92,$24,$14,$09,$00,$B5
77E5 DEFB $09,$01,$08,$92,$2C,$34,$09,$00
77ED DEFB $B5,$0A,$01,$85,$90,$14,$34,$07
77F5 DEFB $00,$B6,$BC,$0D,$01,$32,$92,$34
77FD DEFB $34,$07,$00,$B7,$B8,$B9,$BE,$BF
7805 DEFB $09,$01,$08,$92,$24,$24,$09,$00
780D DEFB $BA,$09,$01,$32,$92,$24,$24,$07
7815 DEFB $00,$C1,$0B,$01,$A8,$90,$1C,$24
781D DEFB $07,$00,$C2,$C3,$C4,$09,$01,$1E
7825 DEFB $92,$1C,$2C,$07,$40,$C5,$09,$01
782D DEFB $1E,$92,$2C,$1C,$07,$40,$C5,$09
7835 DEFB $01,$1E,$92,$1C,$2C,$07,$40,$CC
783D DEFB $09,$01,$1E,$92,$1C,$14,$07,$40
7845 DEFB $CC,$0B,$01,$32,$92,$2C,$24,$07
784D DEFB $00,$C7,$CD,$CE,$09,$01,$08,$92
7855 DEFB $14,$24,$09,$00,$C9,$09,$01,$08
785D DEFB $92,$1C,$1C,$09,$00,$C9,$0A,$01
7865 DEFB $85,$90,$24,$14,$07,$00,$CA,$D0
786D DEFB $09,$01,$1E,$92,$1C,$24,$07,$40
7875 DEFB $D3,$09,$01,$1E,$92,$2C,$1C,$07
787D DEFB $40,$D3,$09,$01,$85,$90,$24,$14
7885 DEFB $07,$00,$1C,$01,$5A
788A DEFB $00,$01,$18,$6D "Empty hands" sentinel item record (room,Y,X,sprite) -- 6110 (currently-held item) points here when nothing is held; 8AFB compares against this fixed address to decide pick-up vs. drop
788E DEFB $00,$01,$18,$6D,$0F,$21,$54,$36
7896 DEFB $0F,$21,$54,$36,$1F,$22,$18,$36
789E DEFB $1F,$22,$18,$36,$35,$21,$54,$36
78A6 DEFB $35,$21,$54,$36,$45,$05,$30,$36
78AE DEFB $45,$05,$30,$36,$47,$2E,$18,$36
78B6 DEFB $47,$2E,$18,$36,$54,$21,$54,$36
78BE DEFB $54,$21,$54,$36,$5B,$12,$18,$36
78C6 DEFB $5B,$12,$18,$36,$6A,$33,$18,$36
78CE DEFB $6A,$33,$18,$36,$76,$37,$30,$36
78D6 DEFB $76,$37,$30,$36,$8D,$1A,$18,$36
78DE DEFB $8D,$1A,$18,$36,$9A,$21,$54,$36
78E6 DEFB $9A,$21,$54,$36,$9D,$21,$54,$36
78EE DEFB $9D,$21,$54,$36,$B7,$21,$54,$36
78F6 DEFB $B7,$21,$54,$36,$C1,$21,$54,$36
78FE DEFB $C1,$21,$54,$36,$CF,$2D,$30,$36
7906 DEFB $CF,$2D,$30,$36,$4A,$21,$54,$42
790E DEFB $4A,$21,$54,$42,$66,$2F,$18,$42
7916 DEFB $66,$2F,$18,$42,$8B,$22,$18,$38
791E DEFB $8B,$22,$18,$38,$72,$05,$18,$3A
7926 DEFB $72,$05,$18,$3A,$21,$17,$18,$72
792E DEFB $21,$17,$18,$72,$18,$24,$18,$72
7936 DEFB $18,$24,$18,$72,$34,$0A,$18,$72
793E DEFB $34,$0A,$18,$72,$71,$0C,$18,$72
7946 DEFB $71,$0C,$18,$72,$84,$1D,$18,$72
794E DEFB $84,$1D,$18,$72,$A6,$12,$18,$72
7956 DEFB $A6,$12,$18,$72,$C3,$1C,$18,$72
795E DEFB $C3,$1C,$18,$72,$2F,$04,$18,$3E
7966 DEFB $2F,$04,$18,$3E,$0E,$0E,$18,$3E
796E DEFB $0E,$0E,$18,$3E,$0C,$1B,$18,$3E
7976 DEFB $0C,$1B,$18,$3E,$53,$0F,$18,$3E
797E DEFB $53,$0F,$18,$3E,$6E,$04,$18,$3E
7986 DEFB $6E,$04,$18,$3E,$81,$02,$18,$3E
798E DEFB $81,$02,$18,$3E,$83,$2C,$18,$3E
7996 DEFB $83,$2C,$18,$3E,$96,$0E,$18,$3E
799E DEFB $96,$0E,$18,$3E,$A0,$25,$18,$3E
79A6 DEFB $A0,$25,$18,$3E,$AC,$23,$18,$3E
79AE DEFB $AC,$23,$18,$3E,$C2,$25,$18,$3E
79B6 DEFB $C2,$25,$18,$3E,$CC,$25,$18,$3E
79BE DEFB $CC,$25,$18,$3E,$41,$1D,$18,$76
79C6 DEFB $41,$1D,$18,$76,$2A,$01,$18,$76
79CE DEFB $2A,$01,$18,$76,$B5,$0D,$18,$76
79D6 DEFB $B5,$0D,$18,$76,$C5,$0B,$18,$76
79DE DEFB $C5,$0B,$18,$76,$67,$12,$18,$74
79E6 DEFB $67,$12,$18,$74,$15,$23,$18,$74
79EE DEFB $15,$23,$18,$74,$43,$2B,$18,$74
79F6 DEFB $43,$2B,$18,$74,$78,$0F,$18,$74
79FE DEFB $78,$0F,$18,$74,$87,$0E,$18,$74
7A06 DEFB $87,$0E,$18,$74,$93,$21,$54,$74
7A0E DEFB $93,$21,$54,$74,$A9,$1B,$18,$74
7A16 DEFB $A9,$1B,$18,$74,$AD,$23,$18,$74
7A1E DEFB $AD,$23,$18,$74,$BC,$27,$18,$74
7A26 DEFB $BC,$27,$18,$74,$BF,$0E,$18,$74
7A2E DEFB $BF,$0E,$18,$74,$CB,$34,$18,$74
7A36 DEFB $CB,$34,$18,$74,$91,$12,$18,$70
7A3E DEFB $91,$12,$18,$70,$7C,$13,$18,$70
7A46 DEFB $7C,$13,$18,$70,$A2,$0A,$18,$70
7A4E DEFB $A2,$0A,$18,$70,$BE,$2B,$18,$70
7A56 DEFB $BE,$2B,$18,$70,$5C,$35,$18,$78
7A5E DEFB $5C,$35,$18,$78,$1D,$1B,$18,$78
7A66 DEFB $1D,$1B,$18,$78,$3D,$2A,$18,$78
7A6E DEFB $3D,$2A,$18,$78,$4C,$2A,$18,$78
7A76 DEFB $4C,$2A,$18,$78,$7F,$21,$18,$78
7A7E DEFB $7F,$21,$18,$78,$9C,$35,$18,$78
7A86 DEFB $9C,$35,$18,$78,$62,$2F,$18,$78
7A8E DEFB $62,$2F,$18,$78,$8A,$0B,$18,$40
7A96 DEFB $8A,$0B,$18,$40,$04,$1B,$18,$40
7A9E DEFB $04,$1B,$18,$40,$48,$36,$18,$40
7AA6 DEFB $48,$36,$18,$40,$7B,$33,$18,$40
7AAE DEFB $7B,$33,$18,$40,$5D,$0C,$18,$40
7AB6 DEFB $5D,$0C,$18,$40,$9E,$37,$18,$40
7ABE DEFB $9E,$37,$18,$40,$A5,$26,$18,$40
7AC6 DEFB $A5,$26,$18,$40,$B4,$1D,$18,$40
7ACE DEFB $B4,$1D,$18,$40,$BA,$2E,$18,$40
7AD6 DEFB $BA,$2E,$18,$40,$CC,$25,$38,$40
7ADE DEFB $CC,$25,$38,$40,$07,$12,$18,$44
7AE6 DEFB $07,$12,$18,$44,$22,$0A,$18,$44
7AEE DEFB $22,$0A,$18,$44,$82,$1D,$18,$44
7AF6 DEFB $82,$1D,$18,$44,$A1,$0A,$18,$44
7AFE DEFB $A1,$0A,$18,$44,$D3,$12,$18,$44
7B06 DEFB $D3,$12,$18,$44,$24,$2D,$18,$3C
7B0E DEFB $24,$2D,$18,$3C,$13,$21,$54,$3C
7B16 DEFB $13,$21,$54,$3C,$8F,$21,$54,$3C
7B1E DEFB $8F,$21,$54,$3C,$AE,$27,$18,$3C
7B26 DEFB $AE,$27,$18,$3C,$CD,$23,$18,$3C
7B2E DEFB $CD,$23,$18,$3C,$06,$24,$18,$6E
7B36 DEFB $06,$24,$18,$6E,$08,$24,$18,$6E
7B3E DEFB $08,$24,$18,$6E,$0D,$24,$18,$6E
7B46 DEFB $0D,$24,$18,$6E,$16,$2E,$18,$6E
7B4E DEFB $16,$2E,$18,$6E,$17,$2D,$18,$6E
7B56 DEFB $17,$2D,$18,$6E,$1E,$0F,$18,$6E
7B5E DEFB $1E,$0F,$18,$6E,$20,$14,$18,$6E
7B66 DEFB $20,$14,$18,$6E,$28,$14,$18,$6E
7B6E DEFB $28,$14,$18,$6E,$31,$1B,$18,$6E
7B76 DEFB $31,$1B,$18,$6E,$33,$24,$18,$6E
7B7E DEFB $33,$24,$18,$6E,$39,$12,$18,$6E
7B86 DEFB $39,$12,$18,$6E,$3E,$0A,$18,$6E
7B8E DEFB $3E,$0A,$18,$6E,$42,$0B,$18,$6E
7B96 DEFB $42,$0B,$18,$6E,$46,$2D,$18,$6E
7B9E DEFB $46,$2D,$18,$6E,$51,$2A,$18,$6E
7BA6 DEFB $51,$2A,$18,$6E,$52,$0E,$18,$6E
7BAE DEFB $52,$0E,$18,$6E,$56,$37,$18,$6E
7BB6 DEFB $56,$37,$18,$6E,$5A,$2D,$30,$6E
7BBE DEFB $5A,$2D,$30,$6E,$5B,$37,$18,$6E
7BC6 DEFB $5B,$37,$18,$6E,$5F,$2D,$18,$6E
7BCE DEFB $5F,$2D,$18,$6E,$69,$37,$18,$6E
7BD6 DEFB $69,$37,$18,$6E,$6D,$12,$18,$6E
7BDE DEFB $6D,$12,$18,$6E,$6F,$0E,$18,$6E
7BE6 DEFB $6F,$0E,$18,$6E,$70,$19,$18,$6E
7BEE DEFB $70,$19,$18,$6E,$77,$24,$18,$6E
7BF6 DEFB $77,$24,$18,$6E,$80,$1B,$18,$6E
7BFE DEFB $80,$1B,$18,$6E,$89,$1B,$18,$6E
7C06 DEFB $89,$1B,$18,$6E,$8B,$1E,$18,$6E
7C0E DEFB $8B,$1E,$18,$6E,$95,$2D,$18,$6E
7C16 DEFB $95,$2D,$18,$6E,$98,$2C,$18,$6E
7C1E DEFB $98,$2C,$18,$6E,$A3,$1B,$18,$6E
7C26 DEFB $A3,$1B,$18,$6E,$A8,$2E,$18,$6E
7C2E DEFB $A8,$2E,$18,$6E,$AB,$23,$18,$6E
7C36 DEFB $AB,$23,$18,$6E,$AF,$22,$18,$6E
7C3E DEFB $AF,$22,$18,$6E,$B3,$1B,$18,$6E
7C46 DEFB $B3,$1B,$18,$6E,$B9,$2A,$18,$6E
7C4E DEFB $B9,$2A,$18,$6E,$BB,$34,$18,$6E
7C56 DEFB $BB,$34,$18,$6E,$BD,$0E,$18,$6E
7C5E DEFB $BD,$0E,$18,$6E,$C6,$24,$18,$6E
7C66 DEFB $C6,$24,$18,$6E,$C7,$14,$18,$6E
7C6E DEFB $C7,$14,$18,$6E,$D0,$2E,$18,$6E
7C76 DEFB $D0,$2E,$18,$6E,$D4,$1B,$18,$6E
7C7E DEFB $D4,$1B,$18
7C81 DEFW $7F6E
7C83 DEFB $3E,$78,$72,$74,$3C
7C88 DEFB $05
7C89 DEFB $07,$3C,$7A,$22,$3C,$7A,$82,$3C
7C91 DEFB $36,$A1,$3C,$7A,$D3,$3C,$7A,$05
7C99 DEFB $00
7C9A DEFW $7C9E,$7CA0
7C9E DEFB $53,$01
7CA0 DEFB $39,$00,$35,$02,$00,$01,$07,$01
7CA8 DEFB $52,$00,$00,$00
7CAC DEFW $7CB0,$7CB2
7CB0 DEFB $50,$00
7CB2 DEFB $64,$00,$45,$06,$15,$02,$35,$00
7CBA DEFB $00,$00
7CBC DEFW $7CC0,$7CC2
7CC0 DEFB $48,$00
7CC2 DEFB $84,$00,$12,$00,$25,$01,$00,$00
7CCA DEFW $7CCE,$7CD0
7CCE DEFB $00,$10
7CD0 DEFB $04,$15,$50,$01,$53,$26,$00,$00
7CD8 DEFW $7CDC,$7CDE
7CDC DEFB $70,$05
7CDE DEFB $88,$06,$32,$23,$33,$02,$23,$00
7CE6 DEFB $00,$00
7CE8 DEFW $7CF9 Print char routine vector (current print-engine mode; self-modified by 7D2D)
7CEA DEFW $EBAC Print cursor: current shadow screen print address
7CEC: Print engine entry point
Used by the routines at 8501, 854C, 854F, 85A1, 86CC and 885A.
Input
A char to print, or a control code ($14/$16)
Prints the char/control code in A by jumping through the vector at (7CE8).
7CEC PUSH HL save registers
7CED PUSH DE
7CEE PUSH BC
7CEF PUSH AF
7CF0 LD HL,$61A6 disable interrupt-driven redraw flag at 61A6 while printing
7CF3 LD (HL),$01
7CF5 LD HL,($7CE8) get Print char routine address
7CF8 JP (HL) jump to current print-engine mode handler
7CF9: Print char routine (default mode)
Input
A char to print, or a control code ($14/$16)
Prints char A as a font glyph at (7CEA), or switches mode for control codes $14/$16.
7CF9 CP $20 control codes (<$20) are handled separately; printable chars fall through
7CFB JR C,$7D26
7CFD LD L,A convert char code to font glyph offset (glyph = (A-$20)*8, using codes starting at font base -$20*8)
7CFE LD H,$00
7D00 ADD HL,HL
7D01 ADD HL,HL
7D02 ADD HL,HL
7D03 LD DE,$A300 Font base address
7D06 ADD HL,DE
7D07 EX DE,HL
7D08 LD HL,($7CEA) copy 8 rows of the glyph to the shadow screen at (7CEA), stepping by 32 bytes/row
7D0B LD BC,$0020
7D0E LD A,$08
7D10 PUSH AF
7D11 LD A,(DE)
7D12 NOP
7D13 LD (HL),A
7D14 INC DE
7D15 ADD HL,BC next line
7D16 POP AF
7D17 DEC A
7D18 JR NZ,$7D10
7D1A LD HL,($7CEA) advance print cursor (7CEA) to the next character column
7D1D INC HL
7D1E LD ($7CEA),HL
This entry point is used by the routine at 7D3F.
7D21 POP AF
7D22 POP BC
7D23 POP DE
7D24 POP HL
7D25 RET
7D26 CP $14 control code $14: switch mode to 7D32 (set inverse/highlight flag)
7D28 JR NZ,$7D3F
7D2A LD HL,$7D32
This entry point is used by the routines at 7D32, 7D3F and 7D48.
7D2D LD ($7CE8),HL
7D30 JR $7D21
7D32: Print engine mode: set inverse video flag
Input
A flag: zero sets inverse video (CPL), non-zero sets normal video (NOP)
Self-modifies the LD A at 7D12 to CPL/NOP for subsequent chars.
7D32 AND A
7D33 JR Z,$7D37
7D35 LD A,$2F
7D37 LD ($7D12),A
This entry point is used by the routine at 7D57.
7D3A LD HL,$7CF9
7D3D JR $7D2D
7D3F: Print engine mode: dispatch control code $16
Used by the routine at 7CF9.
Input
A char to test against control code $16
Control code $16 switches mode to 7D48 (set cursor row); else return.
7D3F CP $16
7D41 JR NZ,$7D21
7D43 LD HL,$7D48
7D46 JR $7D2D
7D48: Print engine mode: set cursor row
Input
A cursor row
Sets print cursor row from A (row*256 + shadow screen base).
7D48 LD H,A
7D49 LD L,$00
7D4B LD DE,$E390 Shadow screen address
7D4E ADD HL,DE
7D4F LD ($7CEA),HL
7D52 LD HL,$7D57
7D55 JR $7D2D
7D57: Print engine mode: set cursor column
Input
A cursor column offset
Sets print cursor column from A, then switches back to default char-printing mode.
7D57 LD HL,($7CEA)
7D5A LD E,A
7D5B LD D,$00
7D5D ADD HL,DE
7D5E LD ($7CEA),HL
7D61 JR $7D3A
7D63: Data block at 7D63
7D63 DEFW $0000 Print string cursor: current shadow screen address for 7D68 string printer
7D65 DEFB $00
7D66 DEFB $00,$00
7D68: Print string routine
Used by the routines at 65DB, 8513 and 9808.
Input
HL string address (terminated by $5E)
Prints the string at (HL) to the shadow screen until terminator $5E; handles control codes $16 (set row+col) and $2B (newline, +8 rows).
7D68 LD A,$01
7D6A LD ($61A6),A
7D6D LD A,(HL)
7D6E INC HL
7D6F CP $16
7D71 JP NZ,$7D9F
7D74 LD DE,$7D66
7D77 LDI
7D79 LDI
7D7B LD A,($7D66)
7D7E LD C,A
7D7F AND $01
7D81 LD ($7D65),A
7D84 SRL C
7D86 LD A,($7D67)
7D89 INC A
7D8A LD B,A
7D8B PUSH HL
7D8C LD HL,$E390 Shadow screen address
7D8F LD DE,$0020
7D92 JR $7D95
7D94 ADD HL,DE
7D95 DJNZ $7D94
7D97 ADD HL,BC
7D98 LD ($7D63),HL
7D9B POP HL
7D9C JP $7D6D
7D9F CP $5E
7DA1 RET Z
7DA2 CP $2B
7DA4 JR NZ,$7DB1
7DA6 LD A,($7D67)
7DA9 ADD A,$08
7DAB LD ($7D67),A
7DAE JP $7D7B
7DB1 CALL $7DC7
7DB4 JP $7D6D
7DB7: Data block at 7DB7
7DB7 DEFB $00,$00,$00,$00,$00,$00,$00,$00
7DBF DEFB $20,$5B,$2D,$5C,$21,$5D,$2E,$5E
7DC7: Routine at 7DC7
Used by the routine at 7D68.
7DC7 PUSH HL
7DC8 LD HL,$7DBF
7DCB LD BC,$0008
7DCE CPIR
7DD0 JR NZ,$7DD3
7DD2 LD A,(HL)
7DD3 SUB $30
7DD5 CP $0A
7DD7 JR C,$7DDB
7DD9 SUB $07
7DDB LD C,A
7DDC SRL A
7DDE LD L,A
7DDF LD H,$00
7DE1 ADD HL,HL
7DE2 ADD HL,HL
7DE3 ADD HL,HL
7DE4 LD DE,($A7DC)
7DE8 ADD HL,DE
7DE9 LD B,$08
7DEB LD DE,$7DB7
7DEE LD A,(HL)
7DEF BIT 0,C
7DF1 JR Z,$7DF7
7DF3 RLCA
7DF4 RLCA
7DF5 RLCA
7DF6 RLCA
7DF7 CPL
7DF8 AND $F0
7DFA LD (DE),A
7DFB INC HL
7DFC INC DE
7DFD DJNZ $7DEE
7DFF LD A,($7D65)
7E02 BIT 0,A
7E04 JP NZ,$7E27
7E07 LD B,$08
7E09 LD DE,($7D63)
7E0D LD HL,$7DB7
7E10 PUSH BC
7E11 LD A,(DE)
7E12 AND $0F
7E14 OR (HL)
7E15 LD (DE),A
7E16 INC HL
7E17 LD BC,$0020
7E1A EX DE,HL
7E1B ADD HL,BC
7E1C EX DE,HL
7E1D POP BC
7E1E DJNZ $7E10
7E20 LD A,$01
7E22 LD ($7D65),A
7E25 POP HL
7E26 RET
7E27 LD B,$08
7E29 LD DE,($7D63)
7E2D LD HL,$7DB7
7E30 PUSH BC
7E31 LD A,(DE)
7E32 RLD
7E34 LD (DE),A
7E35 INC HL
7E36 LD BC,$0020
7E39 EX DE,HL
7E3A ADD HL,BC
7E3B EX DE,HL
7E3C POP BC
7E3D DJNZ $7E30
7E3F XOR A
7E40 LD ($7D65),A
7E43 LD HL,($7D63)
7E46 INC HL
7E47 LD ($7D63),HL
7E4A POP HL
7E4B RET
7E4C: Variables to use in routine 7E4F
7E4C DEFW $0000
7E4E DEFB $00
7E4F: Flip sprite horizontally
Used by the routine at 8128.
Input
L Sprite number
Looks up the A5DC record for sprite L (L*4 -- see A5DC), takes its data address (record[0..1]) and masked height (record[2]&$7F, in 8px rows) and width (record[3]&$7F, in 8px columns, toggling record[3] bit 7 in place each call so alternating calls flip between drawing the normal and mirrored image). For each of height*8 pixel rows, copies ceil(width/2) bytes from the front of the row to the back (and vice versa via HL/DE working inward from both ends), bit-reversing each byte with the RLA/RR chain at 7E83 -- the standard trick for mirroring a monochrome bitmap left-to-right. Used to derive a sprite's mirror-image facing from a single stored copy.
7E4F LD H,$00
7E51 ADD HL,HL
7E52 ADD HL,HL
7E53 LD DE,$A5DC Table of sprites address
7E56 ADD HL,DE
7E57 LD E,(HL)
7E58 INC HL
7E59 LD D,(HL)
7E5A INC HL
7E5B LD A,(HL) record[2]: height (mask off bit 7)
7E5C AND $7F
7E5E LD C,A
7E5F INC HL
7E60 LD A,(HL) record[3]: width -- toggle bit 7 in place (flip-flop flag, self-modifying), then mask it off
7E61 XOR $80
7E63 LD (HL),A
7E64 AND $7F
7E66 LD L,A
7E67 LD H,$00
7E69 LD ($7E4C),HL
7E6C SRL A halve the width, rounding up
7E6E ADC A,$00
7E70 LD ($7E4E),A
7E73 LD B,$08 outer loop: once per 8px-row group (height)
7E75 PUSH BC inner loop: 8 pixel rows per group
7E76 LD HL,($7E4C)
7E79 ADD HL,DE
7E7A PUSH HL
7E7B LD A,($7E4E)
7E7E LD B,A
7E7F AND A
7E80 DEC HL innermost loop: ceil(width/2) byte pairs per row
7E81 LD A,(DE)
7E82 LD C,(HL)
7E83 RLA Flip the byte
7E84 RR C
7E86 RLA
7E87 RR C
7E89 RLA
7E8A RR C
7E8C RLA
7E8D RR C
7E8F RLA
7E90 RR C
7E92 RLA
7E93 RR C
7E95 RLA
7E96 RR C
7E98 RLA
7E99 RR C
7E9B RLA
7E9C LD (DE),A
7E9D LD (HL),C
7E9E INC DE
7E9F DJNZ $7E80
7EA1 POP DE
7EA2 POP BC
7EA3 DJNZ $7E75
7EA5 DEC C
7EA6 JR NZ,$7E73
7EA8 RET
7EA9: Routine at 7EA9
Used by the routine at 7EBE.
7EA9 LD HL,$6184
7EAC LD E,$80
7EAE LD BC,$7FFE
7EB1 IN D,(C)
7EB3 LD (HL),D
7EB4 AND A
7EB5 RR E
7EB7 RET Z
7EB8 DEC HL
7EB9 LD A,B
7EBA ADD A,E
7EBB LD B,A
7EBC JR $7EB1
7EBE: Read input: normalize the active control method into the 5-bit mask at 6186
Used by the routine at 8968.
Dispatches on the device selector $617B: keyboard (scans 6 half-rows into $6186's bits, some duplicated -- e.g. both $617D and $6184 set bit 4/fire), Kempston (port $001F, used as the mask directly), Sinclair (port $EFFE, bit-rotated into the mask), or Cursor keys (ports $EFFE/$F7FE). Result is masked against the previous frame's value at $6188 and stored to $6186; also accumulates a held-key counter at $617C. See 6186 for the bit layout.
7EBE LD A,($617B)
7EC1 AND A
7EC2 JP NZ,$7F8A
7EC5 LD A,($6185)
7EC8 AND A
7EC9 JR NZ,$7F28
7ECB CALL $7EA9
7ECE LD B,$00
7ED0 LD A,($6182)
7ED3 AND $1F
7ED5 XOR $1F
7ED7 JR Z,$7EDB
7ED9 SET 3,B
7EDB LD A,($617E)
7EDE AND $1F
7EE0 XOR $1F
7EE2 JR Z,$7EE6
7EE4 SET 2,B
7EE6 LD A,($6183)
7EE9 AND $1F
7EEB XOR $1F
7EED JR Z,$7EF1
7EEF SET 0,B
7EF1 LD A,($617F)
7EF4 AND $1F
7EF6 XOR $1F
7EF8 JR Z,$7EFC
7EFA SET 1,B
7EFC LD A,($617D)
7EFF AND $1F
7F01 XOR $1F
7F03 JR Z,$7F07
7F05 SET 4,B
7F07 LD A,($6184)
7F0A AND $1F
7F0C XOR $1F
7F0E JR Z,$7F12
7F10 SET 4,B
7F12 LD A,B
7F13 LD B,A
7F14 LD HL,$6188
7F17 AND (HL)
7F18 LD ($6186),A set Resolved input mask
7F1B LD A,B
7F1C CPL
7F1D OR $CF
7F1F LD (HL),A
7F20 LD A,($617C)
7F23 ADD A,B
7F24 LD ($617C),A
7F27 RET
7F28 CP $01
7F2A JR NZ,$7F33
7F2C LD BC,$001F
7F2F IN A,(C)
7F31 JR $7F13
7F33 CP $02
7F35 JR NZ,$7F5A
7F37 LD BC,$EFFE
7F3A IN A,(C)
7F3C CPL
7F3D LD B,$00
7F3F RRCA
7F40 JR NC,$7F44
7F42 SET 4,B
7F44 RRCA
7F45 JR NC,$7F49
7F47 SET 3,B
7F49 RRCA
7F4A JR NC,$7F4E
7F4C SET 2,B
7F4E RRCA
7F4F JR NC,$7F53
7F51 SET 0,B
7F53 RRCA
7F54 JR NC,$7F12
7F56 SET 1,B
7F58 JR $7F12
7F5A LD BC,$EFFE
7F5D IN A,(C)
7F5F CPL
7F60 LD BC,$F7FE
7F63 IN C,(C)
7F65 BIT 4,C
7F67 JR NZ,$7F6B
7F69 SET 1,A
7F6B LD B,$00
7F6D RRCA
7F6E JR NC,$7F72
7F70 SET 4,B
7F72 RRCA
7F73 JR NC,$7F77
7F75 SET 1,B
7F77 RRCA
7F78 JR NC,$7F7C
7F7A SET 0,B
7F7C RRCA
7F7D JR NC,$7F81
7F7F SET 3,B
7F81 RRCA
7F82 JP NC,$7F12
7F85 SET 2,B
7F87 JP $7F12
7F8A LD ($6186),A set Resolved input mask
7F8D RET
7F8E: Routine at 7F8E
Used by the routines at 676D and 9341.
7F8E LD HL,$0000
7F91 LD ($6194),HL
7F94 LD HL,$FFB9
7F97 LD ($6196),HL
7F9A RET
7F9B: Routine at 7F9B
Used by the routines at 7FCD and 8315.
7F9B LD HL,$6194
7F9E LD BC,$024C
7FA1 LD A,(DE)
7FA2 SUB C
7FA3 CP (HL)
7FA4 JR NC,$7FA7
7FA6 LD (HL),A
7FA7 INC DE
7FA8 INC HL
7FA9 LD C,$00
7FAB DJNZ $7FA1
7FAD LD BC,$024C
7FB0 LD A,(DE)
7FB1 SUB C
7FB2 CP (HL)
7FB3 JR C,$7FB6
7FB5 LD (HL),A
7FB6 INC DE
7FB7 INC HL
7FB8 LD C,$00
7FBA DJNZ $7FB0
7FBC RET
7FBD: Data block at 7FBD
7FBD DEFB $01,$70,$E0
7FC0: Routine at 7FC0
Used by the routines at 676D, 9341 and 9808.
7FC0 LD HL,$004C
7FC3 LD ($610A),HL
7FC6 LD HL,$FFFF
7FC9 LD ($610C),HL
7FCC RET
7FCD: Routine at 7FCD
Used by the routine at 8128.
7FCD LD A,($7FBD)
7FD0 AND $01
7FD2 RET Z
7FD3 LD A,($7FBF)
7FD6 CP $4C
7FD8 JR NC,$7FDC
7FDA LD A,$4C
7FDC LD ($610A),A
7FDF LD A,($7FBF)
7FE2 LD HL,$618F
7FE5 ADD A,(HL)
7FE6 JR NC,$7FE9
7FE8 XOR A
7FE9 DEC A
7FEA CP $4C
7FEC JR NC,$7FF0
7FEE LD A,$4C
7FF0 LD ($610C),A
7FF3 INC HL
7FF4 LD A,(HL)
7FF5 ADD A,A
7FF6 ADD A,A
7FF7 LD B,A
7FF8 LD A,($7FBE)
7FFB SUB B
7FFC AND $F0
7FFE LD ($610B),A
8001 LD A,($7FBE)
8004 ADD A,B
8005 DEC A
8006 OR $0F
8008 LD ($610D),A
800B LD DE,$610A
800E JP $7F9B
8011: Routine at 8011
Used by the routine at 8128.
8011 LD HL,$610A
8014 LD A,($7FBF)
8017 LD C,A
8018 CP (HL)
8019 JR NC,$8046
801B LD A,(HL)
801C LD ($7FBF),A
801F SUB C
8020 LD B,A
8021 LD A,($618F)
8024 SUB B
8025 JR C,$8096
8027 JR Z,$8096
8029 LD ($618F),A
802C LD DE,($6190)
8030 LD HL,$0000
8033 LD D,H
8034 ADD HL,DE
8035 DJNZ $8034
8037 EX DE,HL
8038 LD HL,($618D)
803B ADD HL,DE
803C LD ($618D),HL
803F LD HL,($A5D8)
8042 ADD HL,DE
8043 LD ($A5D8),HL
8046 LD A,($7FBF)
8049 LD HL,$618F
804C ADD A,(HL)
804D DEC A
804E LD HL,$610C
8051 SUB (HL)
8052 JR C,$8060
8054 LD B,A
8055 LD A,($618F)
8058 SUB B
8059 JR C,$809A
805B JR Z,$809A
805D LD ($618F),A
8060 LD A,($6190)
8063 ADD A,A
8064 ADD A,A
8065 LD B,A
8066 LD A,($7FBE)
8069 SUB B
806A AND $F8
806C LD HL,$610B
806F CP (HL)
8070 JR NC,$807D
8072 LD C,A
8073 LD A,(HL)
8074 SUB C
8075 RRCA
8076 RRCA
8077 RRCA
8078 AND $1F
807A LD ($8124),A
807D LD A,($7FBE)
8080 ADD A,B
8081 ADD A,$07
8083 AND $F8
8085 LD HL,$610D
8088 CP (HL)
8089 JR C,$8094
808B SUB (HL)
808C RRCA
808D RRCA
808E RRCA
808F AND $1F
8091 LD ($8125),A
8094 XOR A
8095 RET
8096 OR $01
8098 SCF
8099 RET
809A XOR A
809B SCF
809C RET
809D: Routine at 809D
Used by the routine at 8128.
809D LD A,($7FBD)
80A0 AND $7F
80A2 CP $01
80A4 RET NZ
80A5 LD HL,($610A)
80A8 LD A,H
80A9 LD H,$00
80AB ADD HL,HL
80AC ADD HL,HL
80AD ADD HL,HL
80AE ADD HL,HL
80AF ADD HL,HL
80B0 LD DE,$DA10
80B3 ADD HL,DE
80B4 AND A
80B5 RRCA
80B6 RRCA
80B7 RRCA
80B8 LD E,A
80B9 LD D,$00
80BB ADD HL,DE
80BC PUSH HL
80BD LD A,($610C)
80C0 LD BC,($610A)
80C4 SUB C
80C5 INC A
80C6 AND A
80C7 LD DE,$5E24
80CA DEC HL
80CB DEC HL
80CC EX DE,HL
80CD LD (HL),E
80CE INC HL
80CF LD (HL),D
80D0 INC HL
80D1 LD (HL),A
80D2 INC HL
80D3 EX DE,HL
80D4 PUSH AF
80D5 LD BC,$0020
80D8 LDI
80DA LDI
80DC ADD HL,BC
80DD DEC A
80DE JR NZ,$80D5
80E0 LD A,($610D)
80E3 LD BC,($610B)
80E7 SUB C
80E8 INC A
80E9 AND A
80EA RRCA
80EB RRCA
80EC RRCA
80ED LD C,A
80EE LD B,$00
80F0 POP AF
80F1 POP HL
80F2 ADD HL,BC
80F3 EX DE,HL
80F4 LD (HL),E
80F5 INC HL
80F6 LD (HL),D
80F7 INC HL
80F8 LD (HL),A
80F9 INC HL
80FA EX DE,HL
80FB LD BC,$0020
80FE LDI
8100 LDI
8102 ADD HL,BC
8103 DEC A
8104 JR NZ,$80FB
8106 RET
8107: Routine at 8107
Used by the routine at 97BA.
8107 LD HL,$5E24
810A LD B,$02
810C PUSH BC
810D LD E,(HL)
810E INC HL
810F LD D,(HL)
8110 INC HL
8111 LD A,(HL)
8112 INC HL
8113 LD BC,$0020
8116 LDI
8118 LDI
811A EX DE,HL
811B ADD HL,BC
811C EX DE,HL
811D DEC A
811E JR NZ,$8113
8120 POP BC
8121 DJNZ $810C
8123 RET
8124: Data block at 8124
8124 DEFB $01,$00
8126 DEFB $4C Current sprite number (set by 8128)
8127 DEFB $4C Current mask sprite number (set by 8128)
8128: Draw sprite C with its mask at screen position DE (mask sprite number from the table at 6C06; A bit 7 = mirror flag)
Used by the routines at 6344, 6377, 642F, 64BB, 6543, 655E, 6593, 663B, 6895 and 97BA.
Input
A ??
C ??
8128 PUSH IX
812A PUSH HL
812B PUSH DE
812C PUSH BC
812D LD ($7FBD),A
8130 LD ($7FBE),DE
8134 LD HL,$6C06
8137 LD B,$00
8139 ADD HL,BC
813A LD B,(HL)
813B LD ($8126),BC
813F LD L,B
8140 CALL $84ED Load a sprite's A5DC record into the "current sprite" scratch variables at 618D, ready for 8128 to draw it
8143 LD A,($7FBD)
8146 XOR (HL)
8147 JP P,$8150
814A LD HL,($8127)
814D CALL $7E4F Flip sprite horizontally
8150 LD HL,($618D)
8153 LD ($A5D8),HL
8156 LD HL,($8126)
8159 CALL $84ED Load a sprite's A5DC record into the "current sprite" scratch variables at 618D, ready for 8128 to draw it
815C LD A,($7FBD)
815F XOR (HL)
8160 JP P,$8169
8163 LD HL,($8126)
8166 CALL $7E4F Flip sprite horizontally
8169 LD HL,$7FBD
816C RES 7,(HL)
816E LD HL,$6190
8171 RES 7,(HL)
8173 DEC HL
8174 SLA (HL)
8176 SLA (HL)
8178 SLA (HL)
817A LD A,($7FBD)
817D CP $02
817F JR Z,$818D
8181 CALL $7FCD
8184 CALL $8011
8187 JP C,$830F
818A CALL $809D
818D LD HL,($7FBF)
8190 LD H,$00
8192 ADD HL,HL
8193 ADD HL,HL
8194 ADD HL,HL
8195 ADD HL,HL
8196 ADD HL,HL
8197 LD A,($6190)
819A ADD A,A
819B ADD A,A
819C LD B,A
819D LD A,($7FBE)
81A0 SUB B
81A1 LD ($7FBE),A
81A4 LD B,A
81A5 AND $F8
81A7 RRCA
81A8 RRCA
81A9 RRCA
81AA LD E,A
81AB LD D,$00
81AD ADD HL,DE
81AE LD DE,$DA10
81B1 ADD HL,DE
81B2 LD A,($7FBD)
81B5 CP $05
81B7 JP Z,$8246
81BA CP $03
81BC JP Z,$82F0
81BF CP $02
81C1 JP Z,$82F0
81C4 CP $01
81C6 JR NZ,$8246
81C8 PUSH HL
81C9 LD A,($6190)
81CC LD C,A
81CD LD A,B
81CE AND $07
81D0 JR Z,$81D3
81D2 INC C
81D3 LD IX,$9D3C
81D7 LD A,(IX+$00)
81DA OR (IX+$01)
81DD JR Z,$81F2
81DF LD E,(IX+$03)
81E2 LD D,$00
81E4 LD B,(IX+$02)
81E7 ADD IX,DE
81E9 DJNZ $81E7
81EB LD DE,$0004
81EE ADD IX,DE
81F0 JR $81D7
81F2 LD (IX+$00),L
81F5 LD (IX+$01),H
81F8 LD (IX+$02),C
81FB LD A,($618F)
81FE LD (IX+$03),A
8201 LD DE,$0004
8204 ADD IX,DE
8206 PUSH IX
8208 POP DE
8209 PUSH HL
820A LD B,$00
820C AND A
820D LD HL,$0020
8210 SBC HL,BC
8212 LD ($823B),HL
8215 SLA C
8217 LD HL,$823A
821A SBC HL,BC
821C LD ($8224),HL
821F LD ($8240),HL
8222 POP HL
8223 JP $8232
8226: Data block at 8226
8226 DEFB $ED,$A0,$ED,$A0,$ED,$A0,$ED,$A0
822E DEFB $ED,$A0
8230: Routine at 8230
8230 LDI
This entry point is used by the routine at 8128.
8232 LDI
8234 LDI
8236 LDI
8238 LDI
823A LD BC,$001C
823D ADD HL,BC
823E DEC A
823F JP NZ,$8232
8242 LD (DE),A
8243 INC DE
8244 LD (DE),A
8245 POP HL
This entry point is used by the routine at 8128.
8246 LD A,($7FBE)
8249 AND $07
824B JP NZ,$8278
This entry point is used by the routine at 82DB.
824E LD BC,($618F)
8252 LD DE,($A5D8)
8256 LD IX,($618D)
825A LD A,$20
825C SUB B
825D LD ($826F),A
8260 PUSH BC
8261 LD A,(DE)
8262 CPL
8263 AND (HL)
8264 OR (IX+$00)
8267 LD (HL),A
8268 INC DE
8269 INC HL
826A INC IX
826C DJNZ $8261
826E LD C,$1C
8270 ADD HL,BC
8271 POP BC
8272 DEC C
8273 JR NZ,$8260
8275 JP $830E
8278 PUSH HL
8279 LD A,($6190)
827C NEG
827E ADD A,$08
8280 LD B,A
8281 ADD A,A
8282 LD ($829D),A
8285 ADD A,B
8286 LD ($82CE),A
8289 LD A,$02
828B LD DE,$5EAC
828E LD HL,($618D)
8291 LD ($618D),DE
This entry point is used by the routine at 82A6.
8295 PUSH AF
8296 LD A,($618F)
8299 LD B,A
829A LD C,$FF
This entry point is used by the routine at 82A6.
829C JR $829C
829E: Data block at 829E
829E DEFB $ED,$A0,$ED,$A0,$ED,$A0,$ED,$A0
82A6: Routine at 82A6
82A6 LDI
82A8 LDI
82AA LDI
82AC LDI
82AE XOR A
82AF LD (DE),A
82B0 INC DE
82B1 DJNZ $829C
82B3 POP AF
82B4 DEC A
82B5 JR Z,$82C0
82B7 LD HL,($A5D8)
82BA LD ($A5D8),DE
82BE JR $8295
82C0 LD HL,$6190
82C3 INC (HL)
82C4 LD HL,($618D)
82C7 LD A,($618F)
82CA ADD A,A
82CB LD B,A
82CC XOR A
This entry point is used by the routine at 82DB.
82CD JR $82CD
82CF: Data block at 82CF
82CF DEFB $ED,$67,$23,$ED,$67,$23,$ED,$67
82D7 DEFB $23,$ED,$67,$23
82DB: Routine at 82DB
82DB RRD
82DD INC HL
82DE RRD
82E0 INC HL
82E1 RRD
82E3 INC HL
82E4 RRD
82E6 INC HL
82E7 RRD
82E9 INC HL
82EA DJNZ $82CD
82EC POP HL
82ED JP $824E
82F0: Routine at 82F0
Used by the routine at 8128.
82F0 LD BC,($618F)
82F4 LD DE,($618D)
82F8 LD A,C
82F9 LD C,B
82FA LD B,$00
82FC PUSH BC
82FD PUSH HL
82FE EX DE,HL
82FF LDIR
8301 EX DE,HL
8302 POP HL
8303 LD BC,$0020
8306 ADD HL,BC
8307 POP BC
8308 DEC A
8309 JR NZ,$82FC
830B JP $830E
This entry point is used by the routine at 8230.
830E XOR A
This entry point is used by the routine at 8128.
830F POP BC
8310 POP DE
8311 POP HL
8312 POP IX
8314 RET
8315: Routine at 8315
Used by the routine at 835E.
8315 LD E,(HL)
8316 INC HL
8317 LD D,(HL)
8318 INC HL
8319 PUSH HL
831A LD HL,$1C70
831D ADD HL,DE
831E ADD HL,HL
831F ADD HL,HL
8320 ADD HL,HL
8321 LD A,H
8322 ADD A,$4C
8324 LD ($610A),A
8327 LD C,A
8328 LD A,L
8329 LD ($610B),A
832C LD B,A
832D POP HL
832E LD A,(HL)
832F ADD A,A
8330 ADD A,A
8331 ADD A,A
8332 ADD A,B
8333 DEC A
8334 LD ($610D),A
8337 LD A,$20
8339 SUB (HL)
833A LD ($8351),A
833D LD A,(HL)
833E LD ($834D),A
8341 INC HL
8342 LD A,C
8343 ADD A,(HL)
8344 DEC A
8345 LD ($610C),A
8348 LD A,(HL)
8349 INC HL
834A LD B,$00
834C LD C,$00
834E LDIR
8350 LD C,$00
8352 EX DE,HL
8353 ADD HL,BC
8354 EX DE,HL
8355 DEC A
8356 JR NZ,$834C
8358 LD DE,$610A
835B JP $7F9B
835E: Routine at 835E
Used by the routine at 6B71.
835E LD HL,$FFB9
8361 LD ($6194),HL
8364 LD HL,$0000
8367 LD ($6196),HL
836A LD HL,$9D3C
836D LD C,$00
836F LD A,(HL)
8370 INC HL
8371 OR (HL)
8372 JR Z,$8382
8374 PUSH HL
8375 INC HL
8376 LD B,(HL)
8377 INC HL
8378 LD E,(HL)
8379 INC HL
837A LD D,$00
837C ADD HL,DE
837D DJNZ $837C
837F INC C
8380 JR $836F
8382 LD A,C
8383 AND A
8384 JR Z,$8390
8386 POP HL
8387 DEC HL
8388 PUSH AF
8389 CALL $8315
838C POP AF
838D DEC A
838E JR $8383
8390 LD HL,$0000
8393 LD ($9D3C),HL
8396 RET
8397: Data block at 8397
8397 DEFB $A1,$0F,$00,$00,$00,$00,$CB,$00
839F DEFB $CB,$00,$43,$01,$43,$01,$6B,$01
83A7 DEFB $6B,$01,$93,$01,$93,$01,$E3,$01
83AF DEFB $E3,$01,$33,$02,$33,$02,$83,$02
83B7 DEFB $83,$02,$23,$03,$23,$03,$B3,$04
83BF DEFB $B3,$04,$7B,$05,$7B,$05,$00,$00
83C7 DEFB $93,$01,$23,$03,$00,$00,$B2,$04
83CF DEFB $93,$01,$00,$00,$EB,$03,$91,$01
83D7 DEFB $00,$00,$D0,$07,$D0,$07,$40,$06
83DF DEFB $40,$06,$B0,$04,$B0,$04,$20,$03
83E7 DEFB $20,$03,$90,$01,$90,$01,$90,$01
83EF DEFB $90,$01,$20,$03,$20,$03,$B0,$04
83F7 DEFB $B0,$04,$40,$06,$40,$06,$D0,$07
83FF DEFB $D0,$07,$60,$09,$60,$09,$F0,$0A
8407 DEFB $F0,$0A,$80,$0C,$80,$0C,$10,$0E
840F DEFB $10,$0E,$A0,$0F,$A0,$0F,$A0,$0F
8417 DEFB $A0,$0F,$10,$0E,$10,$0E,$80,$0C
841F DEFB $80,$0C,$F0,$0A,$F0,$0A,$60,$09
8427 DEFB $60,$09,$D0,$07,$D0,$07,$00,$00
842F DEFB $9D,$83,$9D,$83,$97,$83,$D3,$83
8437 DEFB $C7,$83,$D9,$83,$CD,$83,$D9,$83
843F DEFB $D9,$83,$D9,$83,$9D,$83
8445: Routine at 8445
Used by the routine at 6AF1.
8445 LD A,($61A0)
8448 AND A
8449 RET Z
844A LD A,($61A3)
844D AND A
844E RET Z
844F DEC A
8450 ADD A,A
8451 LD L,A
8452 LD H,$00
8454 LD DE,$842F
8457 ADD HL,DE
8458 LD ($845D),HL
845B LD IX,($842F)
845F LD L,(IX+$00)
8462 LD H,(IX+$01)
8465 LD A,L
8466 OR H
8467 JR Z,$8487
8469 SRL H
846B RR L
846D RRA
846E SRL H
8470 RR L
8472 RLA
8473 RLCA
8474 AND $03
8476 INC A
8477 LD E,A
8478 LD D,$00
847A PUSH IX
847C CALL $03B6
847F POP IX
8481 INC IX
8483 INC IX
8485 JR $845F
8487 XOR A
8488 LD ($61A3),A
848B JP $844A
848E: Request sound effect A (queued at $61A2, gated by the $61A0/$61A1 flags)
Used by the routines at 6622, 8968, 8AFB, 90A8, 91A6, 925C, 9341, 9401, 94F4, 9602, 9923 and 9C35.
848E PUSH BC
848F PUSH HL
8490 LD B,A
8491 LD A,($61A0)
8494 AND A
8495 JR NZ,$84A7
8497 LD A,($61A1)
849A AND A
849B JR Z,$84A4
849D LD HL,$61A2
84A0 LD (HL),B
84A1 INC HL
84A2 LD (HL),$FF
84A4 POP HL
84A5 POP BC
84A6 RET
84A7 LD A,B
84A8 LD ($61A3),A
84AB POP HL
84AC POP BC
84AD RET
84AE: Dynamic object allocator
Used by the routines at 6663, 8E3F, 8EA7, 8EF2, 8F1E, 8F4C, 90A8, 957C and 9923.
Allocates one entry from a free-list of object records (creatures, bubble sources, snakes, whirlpools, plugs -- anything not baked into the static room grid; see 612C). Every caller has 2 embedded bytes immediately after its CALL instruction, holding the little-endian address of that call site's per-object behaviour handler (marked with a W-line at each site, e.g. 666C). On the early-exit path ($618C is 0): pops the return address and skips exactly those 2 bytes (INC HL twice, then JP (HL)) -- no object is allocated, and the handler address is discarded unread. On the success path: pops the SAME return address into HL, then LDIs those same 2 bytes as literal data into the new record's offset $03/$04 (the handler-pointer field), pushes the now-advanced HL (pointing just past the 2 bytes) back onto the stack, copies a fixed 19-byte block from $5C92 (ZX system-variable area, reused as a default object state template) into the rest of the record, then RETs -- popping that pushed address, so execution resumes 2 bytes past the CALL either way. The 2 bytes are never executed as code on either path. Allocation + list insertion: pops the next free record off the free-list head at $618B (each free record's first 2 bytes point to the next free record; the free list can extend outside the A900 pool, e.g. into scratch at $5B00). Then head-inserts the new record into the active object list at the insertion point given by IX: copies the old head word from (IX+0/1) into the new record's +0/+1 link field, then writes the new record's address back to (IX+0/1). IX is usually 610E (the global list head), but can be any record's own link field (e.g. $8DEF for creatures -- see 6663), which splices the object into the middle of the list instead. Switches IX to the new record's address, stores the current room number ($6126) at record offset $02. Sets a flag bit (A=1) and returns with IX = the new record's address. Object pool starts at A900.
84AE LD A,($618C)
84B1 AND A
84B2 JR NZ,$84B8
84B4 POP HL
84B5 INC HL
84B6 INC HL
84B7 JP (HL)
84B8 LD HL,($618B)
84BB LD E,(HL)
84BC INC HL
84BD LD D,(HL)
84BE LD ($618B),DE
84C2 LD A,(IX+$01)
84C5 LD (HL),A
84C6 DEC HL
84C7 LD A,(IX+$00)
84CA LD (HL),A
84CB LD (IX+$00),L
84CE LD (IX+$01),H
84D1 PUSH HL
84D2 POP IX
84D4 EX DE,HL
84D5 INC DE
84D6 INC DE
84D7 LD A,($6126) get room number
84DA LD (DE),A
84DB INC DE
84DC POP HL
84DD LDI
84DF LDI
84E1 PUSH HL
84E2 LD HL,$5C92
84E5 LD BC,$0013
84E8 LDIR
84EA OR $01
84EC RET
84ED: Load a sprite's A5DC record into the "current sprite" scratch variables at 618D, ready for 8128 to draw it
Used by the routine at 8128.
Input
L Sprite number
Looks up the A5DC record for sprite L (L*4), then copies all 4 raw bytes (data address, height, and width -- the width byte copied unmasked, flip-flop bit 7 and all) into 618D/618F/6190. Called by 8128 before it draws a sprite by number.
84ED LD H,$00
84EF ADD HL,HL
84F0 ADD HL,HL
84F1 LD DE,$A5DC sprite table base (A5DC)
84F4 ADD HL,DE
84F5 LD DE,$618D destination: current-sprite scratch variables (618D)
84F8 LDI copy data address (2 bytes) and height (1 byte)
84FA LDI
84FC LDI
84FE LD A,(HL) copy width byte as-is (unmasked, includes the flip-flop flag bit)
84FF LD (DE),A
8500 RET
8501: Print string at HL until terminator byte $5E or $2B
Used by the routines at 850E and 85A1.
Input
HL Address of the string to print (bytes are printed one at a time via 7CEC; the string ends at the first $5E or $2B byte, which is consumed but not printed)
Loops over bytes at HL, printing each one via 7CEC (the print engine, which also interprets embedded control codes like $14/$16 seen at 8623/861A), until it reads a terminator byte ($5E or $2B) -- returns with HL pointing just past the terminator. Called directly with HL already pointing at a string (e.g. from 8513), and via 850E for inline strings embedded right after a CALL.
8501 LD A,(HL)
8502 INC HL
8503 CP $5E terminator check: $5E
8505 RET Z
8506 CP $2B terminator check: $2B
8508 RET Z
8509 CALL $7CEC print current character (and interpret control codes)
850C JR $8501
850E: Print an inline string embedded right after the caller's CALL instruction
Used by the routines at 663B, 6895, 68C1, 85A1 and 86CC.
Pops the return address off the stack into HL -- since the caller used CALL $850E, this is the address of the string bytes immediately following that CALL. Calls 8501 to print the string (advancing HL past it), then JP (HL) to resume execution right after the embedded string, i.e. normal code flow continues past the inline text.
850E POP HL
850F CALL $8501 print string: see 8501
8512 JP (HL) resume execution after the inline string
8513: Routine at 8513
Used by the routines at 8968, 8AFB, 8C35 and 925C.
8513 LD HL,$65CF
8516 CALL $7D68 Print string: position cursor for message window line 1 (row $A4)
8519 POP HL
851A LD A,(HL)
851B LD ($618A),A
851E INC HL
851F CALL $7D68 Print string: inline message text embedded after the call to 8513
8522 JP (HL)
8523: Print a BCD number: B bytes from (HL), two digits per byte, leading zeros as spaces; DE = per-digit print routine (self-modifies 854C's JP)
Used by the routines at 86CC and 885A.
8523 LD ($854D),DE
8527 LD C,$20
8529 XOR A
852A LD E,(HL)
852B RLD
852D AND A
852E JR Z,$8532
8530 LD C,$30
8532 ADD A,C
8533 CALL $854C Print one digit
8536 LD (HL),E
8537 DEC B
8538 JR NZ,$853C
853A LD C,$30
853C INC B
853D LD A,E
853E AND $0F
8540 JR Z,$8544
8542 LD C,$30
8544 ADD A,C
8545 CALL $854C Print one digit
8548 INC HL
8549 DJNZ $8529
854B RET
854C: Print one digit (JP target self-modified by 8523)
Used by the routine at 8523.
854C JP $7CEC
854F: Print BCD byte A as two digits, high digit blanked to a space if zero
Used by the routines at 663B, 6895 and 86CC.
854F PUSH AF
8550 RRCA
8551 RRCA
8552 RRCA
8553 RRCA
8554 AND $0F
8556 JR NZ,$855A
8558 LD A,$F0
855A ADD A,$30
855C CALL $7CEC Print engine entry point
855F POP AF
8560 AND $0F
8562 ADD A,$30
8564 JP $7CEC
8567: Entry-point room number table (menu keys A/B/C/D)
4 bytes, one per starting location, in order A/B/C/D: $52 (level 3, row 1, col 4), $C0 (level 6, row 2, col 0), $1A (level 1, row 4, col 2), $84 (level 4, row 4, col 0). See x-docs/Room-Format.md for the full cube-position table and cross-check against an external game map.
8567 DEFB $52,$C0,$1A,$84
856B: Controls sub-menu text
"1 KEYBOARD 2 KEMPSTON 3 SINCLAIR 4 CURSOR", printed by 8617 via the 7CEC print engine.
856B DEFM "1 KEYBOARD+2 KEMPSTON+3 SINCLAIR+4 CURSOR+",$5E
8596: Routine at 8596
Used by the routine at 6B05.
8596 LD IY,($61A4)
859A IM 1
859C EI
859D XOR A
859E LD ($FBAA),A
85A1: Main menu screen: title, entry list A-D, controls menu; loops until a selection starts the game
85A1 CALL $850E print inline string, then resume after it
85A4 DEFM $14,$00,$16,$00,$00,"DEATHBOWL." main menu title
85B3 DEFM $16,$00,$14,"CONTROLS." sub-heading
85BF DEFM $16,$02,$00,"A RETURN TO SENDER" key A entry name
85D4 DEFM $16,$04,$00,"B JAIL HOUSE ROCK" key B entry name
85E8 DEFM $16,$06,$00,"C O SOLE O MIO" key C entry name
85F9 DEFM $16,$08,$00,"D HEARTBREAK HOTEL",$5E key D entry name (Elvis song titles)
860F LD A,($6185)
8612 ADD A,$01
8614 LD C,A
8615 LD B,$02
8617 LD HL,$856B load pointer to Controls menu text at 856B
861A LD A,$16 control code $16: set print cursor row (selects the menu row to print into)
861C CALL $7CEC
861F LD A,B
8620 CALL $7CEC print the Controls menu text (via 7CEC print engine loop)
8623 LD A,$14 control code $14 + flag: set/clear inverse video for the currently selected control method
8625 CALL $7CEC
8628 INC B
8629 INC B
862A DEC C
862B JR NZ,$8637
862D LD A,$14
862F CALL $7CEC Print engine entry point
8632 LD A,$01
8634 CALL $7CEC Print engine entry point
8637 CALL $8501 8501 (likely reads the current control method / input routine)
863A LD A,$14 control code $14 + $01: restore inverse video flag to normal
863C CALL $7CEC
863F XOR A
8640 CALL $7CEC Print engine entry point
8643 LD A,(HL)
8644 CP $5E
8646 JR NZ,$861A
8648 LD A,($61A0)
864B AND A
864C JR NZ,$8681
864E CALL $850E print inline string, then resume after it
8651 DEFM $16,$0A,$14,"5 ",$5E stray "5" (control-code list index? unclear)
8657 LD A,($61A1)
865A AND A
865B JR NZ,$8670
865D CALL $850E print inline string, then resume after it
8660 DEFM $14,$01,"MUSIC",$14,$00,"/SFX",$5E "MUSIC" label, shown selected/inverse
866E JR $8681
8670 CALL $850E print inline string, then resume after it
8673 DEFM "MUSIC/",$14,$01,"SFX",$14,$00,$5E "SFX" label, shown selected/inverse
8681 CALL $9C35
8684 LD (IY-$32),$00
8688 LD B,$32
868A HALT
868B DJNZ $868A
868D CALL $FB90 Menu tune + key-wait driver
8690 RST $38
8691 LD A,(IY-$32)
8694 AND A
8695 JR Z,$8688
8697 CP $31
8699 JR C,$8684
869B CP $35
869D JR NZ,$86AA
869F LD A,($61A1)
86A2 XOR $01
86A4 LD ($61A1),A
86A7 JP $85A1
86AA JR NC,$86B4
86AC SUB $31
86AE LD ($6185),A
86B1 JP $85A1
86B4 OR $20
86B6 SUB $61
86B8 JR C,$8684
86BA CP $04
86BC JR NC,$8684
86BE LD L,A
86BF LD H,$00
86C1 LD BC,$8567 load pointer to entry-point room number table (8567) -- used to look up the starting room for the pressed menu key A/B/C/D
86C4 ADD HL,BC
86C5 LD A,(HL)
86C6 LD ($6125),A set entry-point room number
86C9 IM 2
86CB RET
86CC: Draw the end-game stats screen
Used by the routine at 676D.
86CC CALL $850E print inline string, then resume after it
End-game stats overlay labels (see 676D: called only when room==1)
86CF DEFM $14,$00,$16,$00,$0D,"DEATHBOWL DIVINED" title
86E5 DEFM $16,$02,$0D,"SCORE SCRAPED" stat label
86F5 DEFM $16,$04,$0D,"PLUGS PULLED" stat label
8704 DEFM $16,$06,$0D,"GOODIES GATHERED" stat label
8717 DEFM $16,$08,$0D,"GNOMES GNABBED" stat label
8728 DEFM $16,$00,$01,$5E cursor position only, no visible text
872C LD HL,$6121
872F LD C,$20
8731 LD A,(HL)
8732 RRCA
8733 RRCA
8734 RRCA
8735 RRCA
8736 AND $0F
8738 JR Z,$873C
873A LD C,$30
873C ADD A,C
873D CALL $7CEC Print engine entry point
8740 LD A,(HL)
8741 AND $0F
8743 JR Z,$8747
8745 LD C,$30
8747 ADD A,C
8748 CALL $7CEC Print engine entry point
874B DEC HL
874C LD A,(HL)
874D RRCA
874E RRCA
874F RRCA
8750 RRCA
8751 AND $0F
8753 ADD A,$30
8755 CALL $7CEC Print engine entry point
8758 LD A,$2E
875A CALL $7CEC Print engine entry point
875D LD A,(HL)
875E AND $0F
8760 ADD A,$30
8762 CALL $7CEC Print engine entry point
8765 LD A,$25
8767 CALL $7CEC Print engine entry point
876A CALL $850E print inline string, then resume after it
876D DEFM $16,$02,$01,$5E cursor position only, no visible text (positions for a stat value printed separately)
8771 LD HL,$611D
8774 LD B,$03
8776 LD DE,$7CEC
8779 CALL $8523 Print a BCD number
877C CALL $850E print inline string, then resume after it
877F DEFM $16,$04,$05,$5E cursor position only, no visible text
8783 LD A,($6124) get "Plugs Pulled" end-game stat counter
8786 CALL $854F Print BCD byte A as two digits, high digit blanked to a space if zero
8789 CALL $850E print inline string, then resume after it
878C DEFM $16,$06,$05,$5E cursor position only, no visible text
8790 LD A,($6123) get "Goodies Gathered" end-game stat counter
8793 CALL $854F Print BCD byte A as two digits, high digit blanked to a space if zero
8796 CALL $850E print inline string, then resume after it
8799 DEFM $16,$08,$05,$5E cursor position only, no visible text
879D LD A,($6122) get "Gnomes Gnabbed" end-game stat counter
87A0 CALL $854F Print BCD byte A as two digits, high digit blanked to a space if zero
87A3 LD A,($617A)
87A6 CP $02
87A8 RET NZ
87A9 LD A,($6124) get "Plugs Pulled" end-game stat counter
87AC CP $04
87AE JR Z,$87FD
87B0 CALL $850E print inline string, then resume after it
End-game message, shown on an early/partial completion outcome
87B3 DEFM $16,$15,$02,"HYDROFOOL - DONT GO SO FAST" line 1
87D1 DEFM $16,$16,$07,"THE WISE MAN PULLS" line 2
87E6 DEFM $16,$17,$07,"THE LAST PLUG LAST",$5E line 3
87FC RET
87FD CALL $850E print inline string, then resume after it
End-game message, shown on full completion (all 4 plugs pulled)
8800 DEFM $16,$14,$05,"THE FOURTH PLUG PULLED" line 1
8819 DEFM $16,$15,$05,"JUST LIKE YOU PLANNED" line 2
8831 DEFM $16,$16,$07,"SO - SEE YOU SOON" line 3
8845 DEFM $16,$17,$08,"- IN WUNDERLAND!",$5E line 4
8859 RET
885A: HUD: redraw the score display (last 4 BCD digits of 611B via 8523)
Used by the routines at 676D, 888E and 8894.
885A LD A,$16
885C CALL $7CEC Print engine entry point
885F LD A,$14
8861 CALL $7CEC Print engine entry point
8864 LD A,$18
8866 CALL $7CEC Print engine entry point
8869 LD HL,$611C
886C LD B,$04
886E LD DE,$7CEC
8871 JP $8523
8874: Unused
8874 DEFS $05
8879: Add a 5-digit BCD value at 8874 to the score (611B)
Used by the routine at 888E.
8879 LD ($8874),HL
887C LD HL,$8874
887F LD DE,$611F
8882 LD B,$05
8884 XOR A
8885 LD A,(DE)
8886 ADC A,(HL)
8887 DAA
8888 LD (DE),A
8889 INC HL
888A DEC DE
888B DJNZ $8885
888D RET
888E: Add a bonus (HL, 5-digit BCD) to the score, then redraw the score display
Used by the routines at 88D7 and 8AFB.
888E CALL $8879
8891 JP $885A
8894: Subtract a 5-digit BCD value at 8874 from the score (611B); if the score can't cover it, resets $611B-$611F from a fixed 5-byte block at $5C92 instead
Used by the routine at 88DD.
Whether the $5C92 fallback is a genuine "reset score" or coincidentally reuses the same default-state bytes seen elsewhere (see A900) is unconfirmed.
8894 LD ($8874),HL
8897 LD HL,$8874
889A LD DE,$611F
889D LD B,$05
889F XOR A
88A0 LD A,(DE)
88A1 SBC A,(HL)
88A2 DAA
88A3 LD (DE),A
88A4 INC HL
88A5 DEC DE
88A6 DJNZ $88A0
88A8 JP NC,$885A
88AB LD HL,$5C92
88AE LD DE,$611B
88B1 LD BC,$0005
88B4 LDIR
88B6 JP $885A
88B9: Routine at 88B9
Used by the routines at 88D7 and 88DD.
88B9 LD L,(IY+$00)
88BC LD H,(IY+$01)
88BF LD E,(HL)
88C0 INC HL
88C1 LD D,(HL)
88C2 INC HL
88C3 LD A,E
88C4 OR D
88C5 JR NZ,$88CF
88C7 LD L,(IY+$02)
88CA LD H,(IY+$03)
88CD JR $88BF
88CF LD (IY+$00),L
88D2 LD (IY+$01),H
88D5 EX DE,HL
88D6 RET
88D7: Routine at 88D7
Used by the routines at 6743, 8AFB and 91A6.
88D7 CALL $88B9
88DA JP $888E
88DD: Routine at 88DD
Used by the routines at 6743, 8968 and 925C.
88DD CALL $88B9
88E0 JP $8894
88E3: Search the buffer at $7C83 for byte A (CPIR, length from $7C88)
Used by the routines at 6895 and 8AFB.
88E3 LD HL,$7C83
88E6 LD BC,($7C88)
88EA LD B,$00
88EC CPIR
88EE RET
88EF: Data block at 88EF
88EF DEFB $00
Input-mask -> direction-code priority table, scanned by 8968: (mask,direction) byte pairs, tried in order, first whose mask bits overlap ($6186's mask OR $80) wins. $08,$01 (Up bit -> direction $01); $04,$02 (Down bit -> $02); $02,$06 (Left bit -> $06); $01,$04 (Right bit -> $04); $80,$00 (default/no-input catch-all -- mask bit 7 always matches since 8968 ORs $80 into the scan key -- resolves to direction $00, i.e. no movement).
88F0 DEFB $08,$01
88F2 DEFB $04,$02
88F4 DEFB $02,$06
88F6 DEFB $01,$04
88F8 DEFB $80,$00
88FA DEFB $16,$16,$17,$17,$16,$16,$18,$18
8902 DEFB $16,$16,$17,$17,$1E,$1E,$18,$18
890A DEFB $FF,$02,$02,$03,$03,$02,$02,$04
8912 DEFB $04,$02,$02,$03,$03,$0A,$0A,$04
891A DEFB $04,$FF,$FA,$88,$0B,$89,$08,$07
8922 DEFB $07,$08,$08,$07,$07,$FF,$FE,$01
892A DEFB $08,$FE,$01,$08,$08,$FE,$FF,$08
8932 DEFB $FE,$FF,$08,$08,$FF,$FE,$01,$08
893A DEFB $FE,$01,$08,$FE,$02,$08,$FE,$02
8942 DEFB $08,$FF,$48,$89,$4F,$89,$FE,$FE
894A DEFB $19,$19,$19,$19,$FF,$FE,$FE,$05
8952 DEFB $05,$05,$05,$FF,$5A,$89,$61,$89
895A DEFB $15,$15,$15,$15,$15,$15,$FF,$01
8962 DEFB $01,$01,$01,$01,$01,$FF
8968: PLAYER per-frame behaviour handler
This is the handler address held in the player object record's +3/+4 field ($8DB9 -- see 8DB6), called every frame from 983C's dispatcher like any other object handler. Explains its many special cases: room $01 check (ending room), the vertical room transitions (8A87), etc. The player's handler pointer is swappable for state changes: 955A tests ($8DB9)==$8968 ("normal state?"), 9564 swaps in 8D11.
MOVEMENT: reads the input mask at 6186 (OR $80, a wildcard sentinel), then scans the (mask,direction) pair table at 88F0 for the first entry whose mask overlaps -- this resolves the raw multi-button input into a single prioritized direction code (0/1=Up, 2/3=Down, 4/5=Right, 6/7=Left; the low bit distinguishes sub-states, masked off by 8ABB's AND $0E). If the resolved direction equals the player's current facing ((IX+$0B)), calls 8AD9 immediately to take a step; if it differs and is nonzero, just updates the pending-direction latch at $8DC1 (turning takes one frame before the first step); if it resolves to 0 (no input), no movement happens this frame.
8968 LD A,($6126)
896B CP $01
896D JP Z,$8CAA
8970 BIT 6,(IX+$0D)
8974 JP NZ,$8A6B
8977 CALL $7EBE Read input
897A LD A,(IX+$0D)
897D BIT 1,A
897F JP NZ,$89D6
8982 BIT 0,A
8984 JP NZ,$89D6
8987 LD A,($6126) get room number
898A CP $02
898C JR NZ,$899B
898E LD A,($6125) get Entry-point room number choosen selecting A/B/C/D in menu
8991 AND A
8992 JP Z,$89C9
8995 LD (IX+$0A),$00
8999 JR $89C6
899B CALL $8CDF
899E CALL $8AFB Fire/pick-up button handler
89A1 LD A,($6186) get Resolved input mask
89A4 OR $80 set bit 7 as a wildcard sentinel, for the 88F0 priority-table scan (matches its default/no-input entry)
89A6 LD HL,$88F0
89A9 LD C,A
89AA LD A,(HL)
89AB INC HL
89AC AND C
89AD JR NZ,$89B2
89AF INC HL
89B0 JR $89AA
89B2 LD A,(HL)
89B3 LD B,A
89B4 CP (IX+$0B)
89B7 JR NZ,$89BB
89B9 JR $89C6
89BB LD A,B
89BC AND A
89BD JR NZ,$89C1
89BF JR $89C9
89C1 LD ($8DC1),A
89C4 JR $89C9
89C6 CALL $8AD9 Take one walk step
This entry point is used by the routine at 8D11.
89C9 LD IX,$8DB6
89CD LD HL,$891C
89D0 CALL $99A7
89D3 JP $9A60
89D6 LD A,($6501)
89D9 ADD A,$02
89DB LD ($6501),A
89DE LD A,$01
89E0 LD ($8DC5),A
89E3 LD HL,$948B
89E6 LD ($9493),HL
89E9 LD A,$05
89EB CALL $848E Request sound effect A
89EE LD IY,$7CBC
89F2 CALL $88DD
89F5 CALL $8513
89F8 INC D
89F9 JR NZ,$8A1B
89FB JR NZ,$8A1D
89FD LD C,A
89FE LD C,A
89FF DEC L
8A00 LD B,L
8A01 LD D,D
8A02 LD HL,$2020
8A05 JR NZ,$8A65
8A07 LD (IX+$0B),$06
8A0B CALL $923E Save continuation
8A0E LD HL,$8920
8A11 CALL $99D5 Sprite-animation stepper
8A14 RET NC
8A15 LD (IX+$0F),$0F
8A19 BIT 1,(IX+$0D)
8A1D JR NZ,$8A23
8A1F LD (IX+$0F),$00
8A23 LD A,$0C
8A25 LD ($88EF),A
8A28 CALL $923E Save continuation
8A2B LD HL,$8928
8A2E CALL $99D5 Sprite-animation stepper
8A31 LD HL,$88EF
8A34 DEC (HL)
8A35 RET NZ
8A36 CALL $923E Save continuation
8A39 LD HL,$8928
8A3C CALL $99D5 Sprite-animation stepper
8A3F CALL $7EBE Read input
8A42 LD A,($6186) get Resolved input mask
8A45 AND $1F test for ANY key pressed (bits 0-4)
8A47 RET Z
8A48 LD HL,$9489
8A4B LD ($9493),HL
8A4E LD HL,$8968
8A51 LD ($8DB9),HL set player behaviour-handler pointer
8A54 LD (IX+$0A),$00
8A58 LD (IX+$0F),$00
8A5C RES 1,(IX+$0D)
8A60 RES 0,(IX+$0D)
8A64 LD (IX+$18),$00
8A68 JP $89C9
8A6B CALL $9A49
8A6E RES 6,(IX+$0D)
8A72 LD (IX+$07),$38
8A76 LD A,($6126) get room number
8A79 CP $01
8A7B JR Z,$8A82
8A7D SUB $24 change room number: -36 (one level DOWN, via whirlpool)
8A7F JP $97FC Change current room to A
8A82 LD A,$02 room==1 special case: force A=2 instead
8A84 JP $97FC Change current room to A
8A87: Attempt to move to an adjacent room (vertical, via whirlpool/bubble)
Used by the routine at 8D11.
Computes the room number one level down ($6126 - $24, i.e. -36 -- a whirlpool) or one level up ($6126 + $24, i.e. +36 -- a bubble), the 6x6x6 cube level-stride (see x-docs/Room-Format.md). Has special-case handling when the current room number is exactly 1 (down) or 2 (up) -- overrides the computed value instead of using the generic +-36 arithmetic; not yet understood why. The upward case also bounds-checks the result against $D9 before allowing it (JP C,97FC), falling back to a different path (through $8C83) if out of range. 97FC is called with the new room number to actually perform the transition, same as the horizontal case (67F1).
8A87 LD A,$98
8A89 SUB (IX+$17)
8A8C ADD A,(IX+$05)
8A8F ADD A,(IX+$06)
8A92 SUB $4C
8A94 LD (IX+$07),A
8A97 LD A,($6126) get room number
8A9A CP $02
8A9C JR Z,$8AAD
8A9E ADD A,$24 change room number: +36 (one level UP, via bubble)
8AA0 CP $D9 bounds check: is the new room number in range?
8AA2 JP C,$97FC Change current room to A (if in range)
8AA5 LD A,$02 out of range: fall back instead of changing room
8AA7 LD ($617A),A
8AAA JP $8C83
8AAD LD A,($6125) room==2 special case: use $6125 instead
8AB0 JP $97FC Change current room to A
8AB3: Direction -> screen position delta table, indexed by (facing_code AND $0E): 4 (dx,dy) pairs -- Up=(-2,0), Down=(+2,0), Right=(0,+2), Left=(0,-2). Read by 8ABB.
8AB3 DEFB $FE,$00,$02,$00,$00,$02,$00,$FE
8ABB: Apply the object's facing direction to its position (IX+5/+6), returning the OLD position in BC
Used by the routines at 8AD9, 9021, 90A8, 925C and 9963.
Looks up (IX+$0B) AND $0E in the delta table at 8AB3 and adds it to the object's position (+5/+6) in place. Screen deltas are +-2px along one axis per direction (Up/Down move dx, Right/Left move dy) -- the isometric-diamond room layout means each cardinal game direction is a diagonal-looking step on screen along a single axis. Used by 8AD9 (player movement) and 9923.
8ABB LD HL,$8AB3
This entry point is used by the routine at 9923.
8ABE LD A,(IX+$0B)
8AC1 AND $0E
8AC3 LD E,A
8AC4 LD D,$00
8AC6 ADD HL,DE
8AC7 LD A,(IX+$05)
8ACA LD B,A
8ACB ADD A,(HL)
8ACC LD (IX+$05),A
8ACF INC HL
8AD0 LD A,(IX+$06)
8AD3 LD C,A
8AD4 ADD A,(HL)
8AD5 LD (IX+$06),A
8AD8 RET
8AD9: Take one walk step: apply the facing delta, then check for a room-edge/door transition and a collision, reverting the position if blocked
Used by the routine at 8968.
CALLs 8ABB to move (IX+5/+6) by the facing delta (old position saved in BC), then 67F1 (door/room-transition check) and 9BF0 (grid + object collision check). If 9BF0 reports no collision (NC), the new position is kept as-is. If it reports a collision (C): if also Z, pokes $FF into offset +9 of the colliding object's record (DE, from 9BF0/9ABC) -- disables it; either way, the position is then reverted to the saved BC (blocked), and the animation countdown (+0x0E) is reset.
8AD9 CALL $8ABB
8ADC PUSH BC
8ADD CALL $67F1 Attempt to move to an adjacent room (horizontal, via a door) in the direction given by
8AE0 CALL $9BF0 Collision test
8AE3 JR C,$8AE7
8AE5 POP BC
8AE6 RET
8AE7 JR NZ,$8AEF
8AE9 LD HL,$0009
8AEC ADD HL,DE
8AED LD (HL),$FF
8AEF POP BC
8AF0 LD (IX+$05),B
8AF3 LD (IX+$06),C
8AF6 LD (IX+$0E),$00
8AFA RET
8AFB: Fire/pick-up button handler: attack with the held weapon, or pick up/drop an item
Used by the routine at 8968.
Gated on the fire/pick-up key (bit 4 of 6186); if a weapon is currently held ($619E), jumps to 8D8D (attack) instead. Otherwise plays a "reach out" animation, then continues at $8B2B: if the held-item pointer 6110 currently equals the fixed "empty hands" sentinel record at $788A (i.e. nothing held), attempts to PICK UP something nearby; otherwise DROPS the currently-held item.
PICK UP ($8B2B, nothing currently held): walks nearby objects via 9B5D (proximity/collision helper, same one used by movement collision), skipping any whose kind byte (offset +8 from the found record) is $44 (the shared "vulnerable creature" pose -- not pickupable). For the first valid candidate: if its kind is $6E, calls 6622 (unidentified -- likely a special pickup, e.g. a key or weapon-specific item); if its kind is $36, treats it as a GNOME -- calls 888E, increments the "Gnomes Gnabbed" counter at $6122 (BCD), then plays sound effect $04 and finalizes via 9A60 (the gnome object is consumed). For any other kind, searches a weapon lookup buffer at $7C83 (via 88E3) -- if found, sets the Weapon-held flag $619E (and possibly a variant at $619F depending on a $3C check) instead of picking the object straight up; either way, the found record's pointer is stored into 6110 (now "held") and 6895 is called (equip/HUD update?), then sound effect $04 plays.
DROP ($8BC4, something currently held): writes the CURRENT ROOM into the held item's table record (byte0), restoring it to the world -- the same field that item-table entries have their room zeroed on pickup (see Room-Format.md). Re-derives the item's stored Y/X (record bytes 1/2) from the player's own position ($8DBB/$8DBC, grid-aligned) -- i.e. the item is dropped at the player's feet. Exact bit-packing of the combined Y/X byte not fully resolved.
8AFB LD A,($6186)
8AFE BIT 4,A
8B00 RET Z
8B01 LD A,($619E) get Weapon-held flag
8B04 AND A
8B05 JP NZ,$8D8D
8B08 LD (IX+$0F),$00
8B0C CALL $923E Save continuation
8B0F LD HL,$8944
8B12 CALL $99A7
8B15 RET NC
8B16 LD A,($8DBD)
8B19 ADD A,$04
8B1B LD ($8DBD),A
8B1E LD (IX+$0F),$00
8B22 LD HL,$8968
8B25 LD ($8DB9),HL set player behaviour-handler pointer
8B28 JP $8B2B
8B2B LD HL,($6110)
8B2E LD DE,$788A
8B31 AND A
8B32 SBC HL,DE
8B34 JP NZ,$8BC4
8B37 LD A,($8DBD)
8B3A SUB $08
8B3C LD ($8DBD),A
8B3F CALL $9A60 Dynamic object finalizer
8B42 JR C,$8BB9
8B44 LD (IX+$16),$04
8B48 LD HL,$8DEF
8B4B CALL $9B5D
8B4E JR NC,$8BB9
8B50 LD HL,$0008
8B53 ADD HL,DE
8B54 LD A,(HL)
8B55 CP $44
8B57 JR NZ,$8B5C
8B59 EX DE,HL
8B5A JR $8B4B
8B5C PUSH DE
8B5D LD IY,$7CAC
8B61 CALL $88D7
8B64 POP DE
8B65 LD HL,$0002
8B68 ADD HL,DE
8B69 LD (HL),$FF
8B6B LD HL,$000E
8B6E ADD HL,DE
8B6F LD A,(HL)
8B70 INC HL
8B71 LD H,(HL)
8B72 LD L,A
8B73 LD (HL),$00
8B75 EX DE,HL
8B76 LD BC,$0008
8B79 ADD HL,BC
8B7A LD A,(HL)
8B7B CP $6E
8B7D JR NZ,$8B84
8B7F CALL $6622 Use an oil can
8B82 JR $8BB9
8B84 CP $36
8B86 JR NZ,$8B9A
8B88 LD HL,$5000
8B8B CALL $888E Add a bonus (HL, 5-digit BCD) to the score, then redraw the score display
8B8E LD A,($6122) get "Gnomes Gnabbed" end-game stat counter
8B91 ADD A,$01
8B93 DAA
8B94 LD ($6122),A set "Gnomes Gnabbed" end-game stat counter
8B97 JP $8BB4
8B9A CALL $88E3 Search the buffer at $7C83 for byte A
8B9D JR NZ,$8BAD
8B9F LD ($619F),A
8BA2 CP $3C
8BA4 LD A,$03
8BA6 JR NZ,$8BAA
8BA8 LD A,$02
8BAA LD ($619E),A set Weapon-held flag
8BAD LD ($6110),DE
8BB1 CALL $6895 HUD
8BB4 LD A,$04
8BB6 CALL $848E Request sound effect A
8BB9 LD A,($8DBD)
8BBC ADD A,$08
8BBE LD ($8DBD),A
8BC1 JP $9A60
8BC4 LD HL,($6110)
8BC7 LD A,($6126) get room number
8BCA LD (HL),A
8BCB INC HL
8BCC LD A,($8DBB)
8BCF AND $F8
8BD1 LD (HL),A
8BD2 LD A,($8DBC)
8BD5 RRCA
8BD6 RRCA
8BD7 RRCA
8BD8 AND $07
8BDA OR (HL)
8BDB INC A
8BDC LD (HL),A
8BDD INC HL
8BDE LD A,($8DBD)
8BE1 SUB $10
8BE3 LD (HL),A
8BE4 PUSH IX
8BE6 LD HL,($6110)
8BE9 CALL $6663 Spawn the room's creature
8BEC CALL $9BF0 Collision test
8BEF JR C,$8C0F
8BF1 LD A,($6126) get room number
8BF4 CALL $6880
8BF7 CP $04
8BF9 JP NC,$8C15
8BFC LD HL,$788A
8BFF LD ($6110),HL
8C02 CALL $6895 HUD
8C05 LD A,$04
8C07 CALL $848E Request sound effect A
8C0A POP IX
8C0C JP $9A60
8C0F CALL $8C35
8C12 JP $8C27
8C15 CALL $8513
8C18 JR Z,$8C3A
8C1A JR NZ,$8C3C
8C1C LD B,(HL)
8C1D LD D,L
8C1E LD C,H
8C1F LD C,H
8C20 LD HL,$2020
8C23 JR NZ,$8C45
8C25 JR NZ,$8C85
8C27 LD HL,($6110)
8C2A LD (HL),$00
8C2C LD (IX+$02),$FF
8C30 POP IX
8C32 JP $9A60
8C35: Routine at 8C35
Used by the routines at 8AFB and 8D8D.
8C35 CALL $8513
8C38 JR Z,$8C5A
This entry point is used by the routine at 8AFB.
8C3A JR NZ,$8C5C
This entry point is used by the routine at 8AFB.
8C3C LD B,D
8C3D LD C,H
8C3E LD C,A
8C3F LD B,E
8C40 LD C,E
8C41 LD B,L
8C42 LD B,H
8C43 JR NZ,$8C65
This entry point is used by the routine at 8AFB.
8C45 JR NZ,$8CA5
8C47 RET
8C48: Data block at 8C48
8C48 DEFB $3E,$01,$32,$C5,$8D,$AF,$32,$29
8C50 DEFB $8E,$3E,$05,$CD,$8E,$84,$DD,$36
8C58 DEFB $0B,$06,$CD,$3E,$92,$21,$20,$89
8C60 DEFB $CD,$D5,$99,$D0,$3E,$07,$CD,$8E
8C68 DEFB $84,$DD,$36,$0F,$00,$CD,$3E,$92
8C70 DEFB $DD,$CB,$0D,$76,$20,$0D,$DD,$CB
8C78 DEFB $0D,$E6,$3A,$BD,$8D,$C6,$02,$32
8C80 DEFB $BD,$8D,$C9,$DD,$36,$0B,$06,$DD
8C88 DEFB $36,$0D,$01,$DD,$36,$05,$34,$DD
8C90 DEFB $36,$06,$34,$DD,$36,$07,$28,$DD
8C98 DEFB $36,$0A,$00,$DD,$36,$0F,$00,$21
8CA0 DEFB $68,$89,$22,$B9,$8D,$3E,$01,$C3
8CA8 DEFB $FC,$97,$DD,$CB,$0D,$B6,$CD,$3E
8CB0 DEFB $92,$CD,$BE,$7E,$3A,$86,$61,$E6
8CB8 DEFB $1F,$C8,$CD,$3E,$92,$DD,$CB,$0D
8CC0 DEFB $76,$20,$10,$DD,$7E,$06,$D6,$02
8CC8 DEFB $FE,$1C,$DA,$C9,$89,$CD,$D9,$8A
8CD0 DEFB $C3,$C9,$89,$DD,$CB,$0D,$B6,$3E
8CD8 DEFB $FF
8CD9: Message at 8CD9
8CD9 DEFM "2za"
8CDC: Data block at 8CDC
8CDC DEFB $C3,$C9,$89
8CDF: Routine at 8CDF
Used by the routine at 8968.
8CDF LD HL,$8DBD
8CE2 LD A,$28
8CE4 CP (HL)
8CE5 RET NC
8CE6 DEC (HL)
8CE7 CALL $9BF0 Collision test
8CEA RET NC
8CEB RES 0,(IX+$0D)
8CEF RES 1,(IX+$0D)
8CF3 LD HL,$8DBD
8CF6 INC (HL)
8CF7 RET
8CF8: Data block at 8CF8
8CF8 DEFB $FB,$01,$16,$16,$FE,$FF,$FB,$04
8D00 DEFB $02,$02,$FE,$FF,$FB,$02,$82,$82
8D08 DEFB $FE,$FF,$FB,$06,$96,$96,$FE,$FF
8D10 DEFB $FF
8D11: Alternate PLAYER behaviour handler (swapped into $8DB9 by 9564; see 8968 and 8DB6)
8D11 LD (IX+$0F),$00
8D15 CALL $923E Save continuation
8D18 LD B,$02
8D1A LD C,$02
8D1C LD A,($952B)
8D1F SUB (IX+$05)
8D22 JR NC,$8D2A
8D24 NEG
8D26 LD B,$FE
8D28 LD C,$01
8D2A CP $05
8D2C JR NC,$8D36
8D2E LD A,($952B)
8D31 LD (IX+$05),A
8D34 JR $8D43
8D36 LD A,(IX+$05)
8D39 ADD A,B
8D3A LD (IX+$05),A
8D3D LD (IX+$0B),C
8D40 JP $89C9
8D43 CALL $923E Save continuation
8D46 LD B,$02
8D48 LD C,$04
8D4A LD A,($952C)
8D4D SUB (IX+$06)
8D50 JR NC,$8D58
8D52 NEG
8D54 LD B,$FE
8D56 LD C,$06
8D58 CP $05
8D5A JR NC,$8D64
8D5C LD A,($952C)
8D5F LD (IX+$06),A
8D62 JR $8D71
8D64 LD A,(IX+$06)
8D67 ADD A,B
8D68 LD (IX+$06),A
8D6B LD (IX+$0B),C
8D6E JP $89C9
8D71 LD (IX+$0F),$00
8D75 CALL $923E Save continuation
8D78 LD HL,$8CF8
8D7B CALL $99D5 Sprite-animation stepper
8D7E LD A,($8DBD)
8D81 CP $18
8D83 RET NC
8D84 LD HL,$8968
8D87 LD ($8DB9),HL set player behaviour-handler pointer
8D8A JP $8A87
8D8D: Attack: fire the held weapon (reached from 8AFB when a weapon is held)
Used by the routine at 8AFB.
Calls 9923 (spawns the weapon projectile); if it returns Carry (meaning not fully confirmed -- possibly "could not spawn"), jumps to 8C35 (hit-response/reward text) directly. Otherwise calls 68C1 (consume ammo, auto-drop if empty), plays a firing animation via the $8956 table, then restores the normal player handler 8968. The actual hit detection happens later, asynchronously, in the projectile's own per-frame handler (9963).
8D8D PUSH IX
8D8F LD A,($619F)
8D92 CALL $9923 Spawn the weapon projectile object (thrown from the player's position, facing $8DC1), handler 9963
8D95 POP IX
8D97 JP C,$8C35
8D9A CALL $68C1 Consume one shot of ammo
8D9D LD (IX+$0F),$00
8DA1 CALL $923E Save continuation
8DA4 LD HL,$8956
8DA7 CALL $99A7
8DAA RET NC
8DAB LD (IX+$0F),$00
8DAF LD HL,$8968
8DB2 LD ($8DB9),HL set player behaviour-handler pointer
8DB5 RET
8DB6: PLAYER object record + 2 more fixed object records
The player is an object record with the same layout as the dynamic pool records (see A900), statically allocated here. Fields: +0/+1 = $8DCF (link to the next record in the active object list); +2 = current room number (mirrors $6126); +3/+4 = $8968 -- the player's per-frame behaviour handler (8968), SWAPPABLE: 955A tests it against $8968 ("is the player in the normal state?") and 9564 swaps it to 8D11 (an alternate player state); +5/+6 = player Y/X position -- these are the $8DBB/$8DBC bytes referenced by proximity checks all over the code; +16..+19 = previous/target position pair (unconfirmed). The active object list runs: ($610E head) -> newest spawned objects ... -> $8DB6 (player) -> $8DCF -> $8DEF -> $0000 end.
8DB6 DEFW $8DCF link to next object record ($8DCF)
8DB8 DEFB $02 current room number
8DB9 DEFW $8968 player behaviour-handler pointer (normally 8968; swapped for state changes, e.g. 8D11)
8DBB DEFB $34,$1C player Y/X position
8DBD DEFB $28,$02,$00,$00,$04,$AA,$00,$00
8DC5 DEFB $01,$32,$1A,$35,$1D,$00,$02,$0D
8DCD DEFB $14,$00
Second fixed object record (purpose not yet identified). Link points to $8DEF. Its state block (+2 onward, at $8DD1) is re-initialized with 22 bytes from $5C92 by 8F82 during room setup.
8DCF DEFW $8DEF link to next object record ($8DEF)
8DD1 DEFB $00,$00,$00,$00,$00,$17,$00,$00
8DD9 DEFB $00,$00,$00,$00,$00,$01,$00,$00
8DE1 DEFB $00,$00,$00,$00,$00,$00
8DE7 DEFB $00,$00,$00,$64,$32,$00,$00,$00
Third fixed object record -- also the CREATURE insertion point: 6663 passes IX=$8DEF into 84AE, so the room's creature gets spliced into the list right after this record. Link field is $0000 (list end) when the room has no creature. State block (+2 onward, at $8DF1) re-initialized from $5C92 by 8F82.
8DEF DEFW $0000 link to next object record ($0000 = list end, or the room's creature)
8DF1 DEFB $00,$00,$00,$00,$00,$17,$00,$00
8DF9 DEFB $00,$00,$00,$00,$00,$01,$00,$00
8E01 DEFB $00,$00,$00,$00,$00,$00
8E07 DEFB $00,$00,$00,$64,$32,$00,$00,$00
8E0F DEFB $27,$8E,$02,$71,$94,$34,$1C,$18
8E17 DEFB $0B,$0C,$00,$04,$5E,$00,$00,$02
8E1F DEFB $00,$00,$00,$00,$00,$03,$00,$0C
8E27 DEFB $00,$00,$02,$9E,$94,$34,$22,$40
8E2F DEFB $5A,$00,$01,$00,$B2,$00,$00,$02
8E37: Message at 8E37
8E37 DEFM "3!4\""
8E3B: Data block at 8E3B
8E3B DEFB $00,$01,$18,$18
8E3F: Special grid-value spawn routine (value $68) -- rearing snake
Used by the routine at 6269.
Same allocator mechanism as 8EA7; its handler is 9684 (see there for the full state machine).
8E3F INC HL
8E40 DEC B
8E41 PUSH AF
8E42 PUSH BC
8E43 PUSH HL
8E44 PUSH DE
8E45 LD A,(HL)
8E46 LD (IX+$00),A
8E49 LD IX,$610E
8E4D CALL $84AE Dynamic object allocator
8E50 DEFW $9684 Dynamic object handler address (9684)
8E52 POP DE
8E53 LD A,E
8E54 CALL $6254 Set object position (IX+5/+6) from grid index A
8E57 POP HL
8E58 PUSH HL
8E59 LD C,$18
8E5B LD A,(HL)
8E5C AND A
8E5D JR Z,$8E86
8E5F LD L,A
8E60 LD H,$00
8E62 ADD HL,HL
8E63 LD DE,$7556
8E66 ADD HL,DE
8E67 LD A,(HL)
8E68 INC HL
8E69 LD H,(HL)
8E6A LD L,A
8E6B LD B,(HL)
8E6C JR $8E83
8E6E: Routine at 8E6E
8E6E PUSH BC
8E6F PUSH HL
8E70 LD A,(HL)
8E71 CALL $9AAB Search the (key,data) pair table at $74CE for key A
8E74 LD A,(HL)
8E75 ADD A,A
8E76 ADD A,(HL)
8E77 LD C,A
8E78 LD B,$00
8E7A LD HL,$750B
8E7D ADD HL,BC
8E7E LD A,(HL)
8E7F POP HL
8E80 POP BC
8E81 ADD A,C
8E82 LD C,A
This entry point is used by the routine at 8E3F.
8E83 INC HL
8E84 DJNZ $8E6E
This entry point is used by the routine at 8E3F.
8E86 LD (IX+$07),C
8E89 LD (IX+$0A),$04
8E8D LD (IX+$0D),$88
8E91 CALL $9A60 Dynamic object finalizer
8E94 LD (IX+$16),$00
8E98 POP HL
8E99 POP BC
8E9A INC HL
8E9B DEC B
8E9C LD A,(HL)
8E9D LD (IX+$0E),A
8EA0 POP AF
8EA1 LD (IX+$08),$23
8EA5 XOR A
8EA6 RET
8EA7: Special grid-value spawn routine (values $66/$6A) -- bubble source ($6A full-strength, $66 weak; see 9602)
Used by the routine at 6269.
Called from 62C8 with A=the special value ($66 or $6A) and HL pointing just past it in the template/extras stream. Self-modifies its own 8EC3 operand with A (so the spawned object's initial "kind" byte matches whichever of $66/$6A triggered it). Clears the grid cell to 0 (so the special value never appears in the finished grid -- see 612C). Reads 2 more bytes from the template beyond the normal (index,value) pair -- these are NOT accounted for by the outer 62C8 loop's own HL advancement; instead the routine forces two extra DEC B's (at $8EE8/$8EE9), ending that loop one iteration early to compensate (see 6CCF). Sets up IX=$610E (the active-object list head) as the insertion point, then CALLs 84AE to allocate an object record -- its handler address (8EB9) is 957C. Populates further record fields (offset $07=$18, $0A=$06, $09=triggering value, $0B and $0E=first extra byte, $14=second extra byte), then CALLs 9A60 to finalize. The two extra bytes' exact meaning (screen position? direction?) is not yet confirmed. Offset $09 (the triggering value) reads back as $00 afterward, suggesting it's consumed during finalization.
8EA7 LD ($8EC6),A
8EAA LD (IX+$00),$00
8EAE PUSH HL
8EAF PUSH BC
8EB0 DEC HL
8EB1 PUSH HL
8EB2 LD IX,$610E
8EB6 CALL $84AE Dynamic object allocator
8EB9 DEFW $957C Dynamic object handler address (957C)
8EBB LD (IX+$07),$18
8EBF LD (IX+$0A),$06
8EC3 LD (IX+$09),$66
8EC7 POP HL
8EC8 LD A,(HL)
8EC9 CALL $6254 Set object position (IX+5/+6) from grid index A
8ECC INC HL
8ECD INC HL
8ECE LD A,(HL)
8ECF LD (IX+$0E),A
8ED2 LD (IX+$0B),A
8ED5 INC HL
8ED6 LD A,(HL)
8ED7 LD (IX+$14),A
8EDA CALL $9A60 Dynamic object finalizer
8EDD POP BC
8EDE POP HL
8EDF INC HL
8EE0 LD A,(IX+$09)
8EE3 CP $6A
8EE5 JR Z,$8EEC
8EE7 INC HL
8EE8 DEC B
8EE9 DEC B
8EEA XOR A
8EEB RET
8EEC LD (IX+$14),$E0
8EF0 JR $8EE9
8EF2: Special grid-value spawn routine (value $67) -- plant/coral
Used by the routine at 6269.
Same allocator mechanism as 8EA7; its handler is 94EE.
$67 is rare: only 2 occurrences in the whole room table (rooms $9C and $A3).
8EF2 LD (IX+$00),$00
8EF6 PUSH HL
8EF7 PUSH BC
8EF8 DEC HL
8EF9 PUSH HL
8EFA LD IX,$610E
8EFE CALL $84AE Dynamic object allocator
8F01 DEFW $94EE Dynamic object handler address (94EE)
8F03 LD (IX+$07),$18
8F07 LD (IX+$0A),$19
8F0B LD (IX+$0D),$08
8F0F POP HL
8F10 LD A,(HL)
8F11 CALL $6254 Set object position (IX+5/+6) from grid index A
8F14 INC (IX+$05)
This entry point is used by the routines at 8F1E and 8F4C.
8F17 CALL $9A60 Dynamic object finalizer
This entry point is used by the routine at 8F4C.
8F1A POP BC
8F1B POP HL
8F1C XOR A
8F1D RET
8F1E: Special grid-value spawn routine (value $69) -- whirlpool
Used by the routine at 6269.
Every Plug Room's extras end with $25,$6B,$25,$69 -- a Plug and a $69 object co-located at the same grid cell -- and $69 also appears 23x across the room table (not plug-exclusive, unlike $6B). Same allocator mechanism as 8EA7; its handler is 952D.
8F1E LD (IX+$00),$00
8F22 PUSH HL
8F23 PUSH BC
8F24 DEC HL
8F25 PUSH HL
8F26 LD IX,$610E
8F2A CALL $84AE Dynamic object allocator
8F2D DEFW $952D Dynamic object handler address (952D)
8F2F LD (IX+$07),$18
8F33 LD (IX+$0A),$06
8F37 POP HL
8F38 LD A,(HL)
8F39 CALL $6254 Set object position (IX+5/+6) from grid index A
8F3C CALL $62F9 Test whether the current room is this level's Plug Room
8F3F JR NZ,$8F17
8F41 LD (IX+$05),$20
8F45 LD (IX+$06),$20
8F49 JP $8F17
8F4C: Special grid-value spawn routine (value $6B) -- plug
Used by the routine at 6269.
$6B appears in exactly 4 rooms' extras in the whole room table, and they are precisely the 4 Plug Rooms (73B3) -- never in any of the 11 shared room-type templates, only introduced per-room. Same allocator mechanism as 8EA7; its handler is 94F4.
8F4C LD (IX+$00),$00
8F50 PUSH HL
8F51 PUSH BC
8F52 CALL $62F9 Test whether the current room is this level's Plug Room
8F55 LD A,(HL)
8F56 AND $0F
8F58 CP $0F
8F5A JP Z,$8F1A
8F5D LD IX,$610E
8F61 CALL $84AE Dynamic object allocator
8F64 DEFW $94F4 Dynamic object handler address (94F4)
8F66 LD (IX+$07),$19
8F6A LD (IX+$05),$20
8F6E LD (IX+$06),$20
8F72 LD A,$48
8F74 LD (IX+$08),A
8F77 CALL $9AAB Search the (key,data) pair table at $74CE for key A
8F7A LD A,(HL)
8F7B LD (IX+$0A),A
8F7E JP $8F17
8F81: Unused
8F81 DEFS $01
8F82: Re-initialize the state blocks of the two fixed object records at $8DCF and $8DEF (22 bytes each from $5C92 to $8DD1/$8DF1 -- see 8DB6)
Used by the routine at 676D.
8F82 LD HL,$5C92
8F85 LD DE,$8DD1
8F88 LD BC,$0016
8F8B LDIR
8F8D LD HL,$5C92
8F90 LD DE,$8DF1
8F93 LD BC,$0016
8F96 LDIR
8F98 LD A,$02
8F9A LD ($8F81),A
8F9D LD IX,$8DCF
8FA1 LD HL,$75B6
8FA4 LD A,(HL)
8FA5 SUB $08
8FA7 RET C
8FA8 LD C,A
8FA9 LD B,$00
8FAB EX DE,HL
8FAC INC DE
8FAD LD A,(DE)
8FAE DEC DE
8FAF AND A
8FB0 JR Z,$8FBD
8FB2 LD HL,$0008
8FB5 ADD HL,DE
8FB6 LD A,($6126) get room number
8FB9 CPIR
8FBB JR Z,$8FC4
8FBD EX DE,HL
8FBE LD E,(HL)
8FBF LD D,$00
8FC1 ADD HL,DE
8FC2 JR $8FA4
8FC4 EX DE,HL
8FC5 LD (IX+$18),L
8FC8 LD (IX+$19),H
8FCB INC HL
8FCC LD (HL),A
8FCD PUSH IX
8FCF POP DE
8FD0 INC DE
8FD1 INC DE
8FD2 LD BC,$0005
8FD5 LDIR
8FD7 LD A,(HL)
8FD8 LD (IX+$0A),A
8FDB INC HL
8FDC LD A,(HL)
8FDD LD (IX+$1A),A
8FE0 LD A,R
8FE2 AND $7F
8FE4 OR $01
8FE6 LD (IX+$1C),A
8FE9 XOR $0E
8FEB LD (IX+$1B),A
8FEE LD (IX+$07),$28
8FF2 LD (IX+$0B),$01
8FF6 LD (IX+$0F),$01
8FFA SET 7,(IX+$0D)
8FFE LD HL,$9021
9001 LD (IX+$03),L
9004 LD (IX+$04),H
9007 CALL $9A60 Dynamic object finalizer
900A LD HL,$8F81
900D DEC (HL)
900E RET Z
900F LD E,(IX+$18)
9012 LD D,(IX+$19)
9015 LD L,(IX+$00)
9018 LD H,(IX+$01)
901B PUSH HL
901C POP IX
901E JP $8FBD
9021: Routine at 9021
9021 LD L,(IX+$18)
9024 LD H,(IX+$19)
9027 LD A,(HL)
9028 SUB $08
902A LD C,A
902B LD B,$00
902D LD DE,$0008
9030 ADD HL,DE
9031 LD A,($619A)
9034 CPIR
9036 JR NZ,$9064
9038 XOR A
9039 LD ($619A),A
903C LD HL,($619B)
903F LD (IX+$05),L
9042 LD (IX+$06),H
9045 LD A,($619D)
9048 LD (IX+$0B),A
904B LD (IX+$09),$0A
904F CALL $8ABB Apply the object's facing direction to its position (IX+5/+6), returning the OLD position in BC
9052 CALL $9A60 Dynamic object finalizer
9055 CALL $923E Save continuation
9058 DEC (IX+$09)
905B RET NZ
905C LD (IX+$09),$0A
9060 CALL $9B5A Collision/overlap scan
9063 RET C
9064 RES 7,(IX+$0D)
9068 LD L,(IX+$18)
906B LD H,(IX+$19)
906E INC HL
906F INC HL
9070 LD E,(HL)
9071 INC HL
9072 LD D,(HL)
9073 EX DE,HL
9074 JP $923F
9077: Message at 9077
9077 DEFM "++,,"
907B: Data block at 907B
907B DEFB $FF
907C: Message at 907C
907C DEFM "))**"
9080: Data block at 9080
9080 DEFB $FF,$77,$90,$7C,$90
9085: Routine at 9085
9085 LD A,$72
9087 LD HL,$9081
908A JP $90AD
908D: Message at 908D
908D DEFM "!!\"\""
9091: Data block at 9091
9091 DEFB $FF,$1F,$1F,$20,$20,$FF,$01,$04
9099 DEFB $02,$06,$01,$8D,$90,$92,$90,$00
90A1 DEFB $08,$08,$00,$00,$08,$08,$00
90A8: Routine at 90A8
90A8 LD A,$78
90AA LD HL,$909C
This entry point is used by the routines at 9085 and 9232.
90AD LD (IX+$1D),L
90B0 LD (IX+$1E),H
90B3 LD (IX+$1F),A
90B6 CALL $91A6
90B9 LD HL,$90B6
90BC LD ($9195),HL
90BF DEC (IX+$1C)
90C2 JP Z,$9140
90C5 JP P,$90CB
90C8 INC (IX+$1C)
90CB DEC (IX+$1B)
90CE JP Z,$9109
90D1 LD A,(IX+$1F)
90D4 AND A
90D5 JR Z,$9109
90D7 LD HL,$5C78
90DA LD A,($617C)
90DD ADD A,(HL)
90DE AND $FC
90E0 CP $0C
90E2 JR Z,$90F4
90E4 CALL $8ABB Apply the object's facing direction to its position (IX+5/+6), returning the OLD position in BC
90E7 PUSH BC
90E8 CALL $9BF0 Collision test
90EB POP BC
90EC JR NC,$9103
90EE LD (IX+$05),B
90F1 LD (IX+$06),C
90F4 LD A,(IX+$0B)
90F7 LD HL,$9097
90FA LD BC,$0004
90FD CPIR
90FF LD A,(HL)
9100 LD (IX+$0B),A
9103 CALL $99A1 Direction-indexed sprite-animation stepper
9106 JP $9A60
9109 LD (IX+$1B),$32
910D LD HL,$911B
9110 LD ($9195),HL
9113 LD A,$06
9115 CALL $848E Request sound effect A
9118 CALL $923E Save continuation
911B CALL $91A6
911E DEC (IX+$1C)
9121 JR Z,$9140
9123 JP P,$9129
9126 INC (IX+$1C)
9129 DEC (IX+$1B)
912C JR Z,$9136
912E BIT 5,(IX+$0D)
9132 JP Z,$925C
9135 RET
9136 LD (IX+$1B),$64
913A LD HL,$90B6
913D JP $923F
9140 LD (IX+$1C),$05
9144 PUSH IX
9146 POP IY
9148 LD IX,$610E
914C CALL $84AE Dynamic object allocator
914F DEFW $94CA Dynamic object handler address
9151 LD (IX+$0B),$05
9155 LD A,(IY+$0B)
9158 AND $06
915A LD L,A
915B LD H,$00
915D LD DE,$90A0
9160 ADD HL,DE
9161 LD A,(IY+$05)
9164 ADD A,(HL)
9165 LD (IX+$05),A
9168 INC HL
9169 LD A,(IY+$06)
916C ADD A,(HL)
916D LD (IX+$06),A
9170 LD A,(IY+$07)
9173 ADD A,$20
9175 LD (IX+$07),A
9178 LD (IX+$0A),$03
917C CALL $9A60 Dynamic object finalizer
917F PUSH IY
9181 POP IX
9183 CALL $923E Save continuation
9186 CALL $91A6
9189 CALL $99A1 Direction-indexed sprite-animation stepper
918C DEC (IX+$1C)
918F RET NZ
9190 LD (IX+$1C),$32
9194 LD HL,$0000
9197 JP $923F
919A: Data block at 919A
919A DEFB $1A,$1A,$9A,$9A,$1B,$1B,$9B,$9B
91A2 DEFB $1A,$1A,$FF,$FF
91A6: Routine at 91A6
Used by the routine at 90A8.
91A6 BIT 2,(IX+$0D)
91AA RET Z
91AB RES 2,(IX+$0D)
91AF LD A,(IX+$09)
91B2 CP (IX+$1F)
91B5 RET NZ
91B6 POP HL
91B7 LD L,(IX+$18)
91BA LD H,(IX+$19)
91BD INC HL
91BE LD (HL),$00
91C0 LD (IX+$0F),$00
91C4 CALL $6329 Build the door/exit bitfield at $612B from the room description's byte1
91C7 LD A,$01
91C9 CALL $848E Request sound effect A
91CC LD IY,$7CCA
91D0 CALL $88D7
91D3 CALL $923E Save continuation
91D6 LD HL,$919A
91D9 CALL $99D5 Sprite-animation stepper
91DC RET NC
91DD LD (IX+$02),$00
91E1 RET
91E2: Data block at 91E2
91E2 DEFB $28,$28,$FE,$FE,$28,$28,$FE,$FE
91EA DEFB $28,$28,$FE,$02,$28,$28,$FE,$02
91F2 DEFB $FF,$27,$27,$FE,$FE,$27,$27,$FE
91FA DEFB $FE,$27,$27,$FE,$02,$27,$27,$FE
9202 DEFB $02,$FF,$E2,$91,$F3,$91
9208: Routine at 9208
9208 LD A,$3E
920A LD HL,$9204
920D JP $9237
9210: Data block at 9210
9210 DEFB $14,$14,$1D,$1D,$FF,$0F,$0F,$10
9218 DEFB $10,$FF,$10,$92,$15,$92,$3E,$00
9220 DEFB $21,$1A,$92,$C3,$37,$92,$12,$12
9228 DEFB $13,$13,$11,$11,$11,$FF,$26,$92
9230 DEFB $26,$92
9232: Routine at 9232
9232 LD A,$74
9234 LD HL,$922E
This entry point is used by the routine at 9208.
9237 LD (IX+$1C),$00
923B JP $90AD
923E: Save continuation: set the object's handler (+3/+4) to the address just after the caller's CALL, then jump there (the object resumes at that point next frame)
Used by the routines at 8968, 8AFB, 8D11, 8D8D, 9021, 90A8, 91A6, 9341, 9401, 94F4, 9602 and 9963.
923E POP HL
This entry point is used by the routines at 9021 and 90A8.
923F LD (IX+$03),L
9242 LD (IX+$04),H
9245 JP (HL)
9246: Data block at 9246
9246 DEFB $00,$00,$00,$00,$00,$00,$01,$04
924E DEFB $06,$02,$04,$02,$01,$06,$02,$06
9256 DEFB $04,$01,$06,$01,$02,$04
925C: Routine at 925C
Used by the routine at 90A8.
925C LD HL,($8DBB)
925F LD ($9246),HL
9262 LD HL,$8DEF
9265 LD E,(HL)
9266 INC HL
9267 LD D,(HL)
9268 LD A,E
9269 OR D
926A JR Z,$9284
926C LD HL,$0008
926F ADD HL,DE
9270 LD A,(IX+$1A)
9273 CP (HL)
9274 JR Z,$9279
9276 EX DE,HL
9277 JR $9265
9279 LD HL,$0005
927C ADD HL,DE
927D LD DE,$9246
9280 LDI
9282 LDI
9284 LD A,(IX+$0B)
9287 AND $0E
9289 ADD A,A
928A LD E,A
928B LD D,$00
928D LD HL,$924C
9290 ADD HL,DE
9291 LD DE,$9248
9294 LD BC,$0004
9297 LDIR
9299 LD DE,$9248
929C LD B,$03
929E LD HL,($9246)
92A1 LD A,(DE)
92A2 CP $01
92A4 JR NZ,$92AE
92A6 LD A,L
92A7 CP (IX+$05)
92AA JR C,$92D1
92AC JR $92CC
92AE CP $04
92B0 JR NZ,$92BA
92B2 LD A,(IX+$06)
92B5 CP H
92B6 JR C,$92D1
92B8 JR $92CC
92BA CP $02
92BC JR NZ,$92C6
92BE LD A,(IX+$05)
92C1 CP L
92C2 JR C,$92D1
92C4 JR $92CC
92C6 LD A,H
92C7 CP (IX+$06)
92CA JR C,$92D1
92CC INC DE
92CD DJNZ $92A1
92CF JR $92D9
92D1 LD HL,$9248
92D4 LD C,(HL)
92D5 LD A,(DE)
92D6 EX DE,HL
92D7 LD (HL),C
92D8 LD (DE),A
92D9 LD HL,$9248
92DC LD B,$04
92DE PUSH BC
92DF PUSH HL
92E0 LD A,(HL)
92E1 LD (IX+$0B),A
92E4 CALL $8ABB Apply the object's facing direction to its position (IX+5/+6), returning the OLD position in BC
92E7 PUSH BC
92E8 CALL $9BF0 Collision test
92EB POP BC
92EC JR NC,$9338
92EE LD (IX+$05),B
92F1 LD (IX+$06),C
92F4 JR NZ,$932D
92F6 LD HL,$8DB6
92F9 AND A
92FA SBC HL,DE
92FC JR NZ,$932D
92FE LD IY,$7CBC
9302 CALL $88DD
9305 LD A,$05
9307 CALL $848E Request sound effect A
930A CALL $8513
930D INC D
930E JR NZ,$9330
9310 JR NZ,$9332
9312 LD C,A
9313 LD C,A
9314 DEC L
9315 LD B,L
9316 LD D,D
9317 LD HL,$2020
931A JR NZ,$937A
931C LD B,$01
931E LD A,(IX+$1F)
9321 AND A
9322 JR Z,$9326
9324 LD B,$02
9326 LD A,($6501)
9329 ADD A,B
932A LD ($6501),A
932D POP HL
932E POP BC
932F INC HL
9330 DJNZ $92DE
9332 CALL $9A60 Dynamic object finalizer
9335 JP $99A1
9338 POP HL
9339 POP BC
933A JP $99A1
933D: Unused
933D DEFS $04
9341: Room-creature per-frame behaviour handler (installed by the creature spawn at 6663) -- dual purpose: item-delivery detector in Plug Rooms, settle/float physics + hit detection elsewhere
PLUG ROOM BRANCH (taken when 62F9 confirms the current room is this level's Plug Room): compares this object's own sprite number (+0x08) against each of the 4 required item sprites in the level's 7287 table (bytes 2-5), gated by the corresponding undelivered bit in the level's state nibble (byte1, CPL'd so unset/undelivered bits read as 1). On a match: sets that delivery bit in the state byte, repositions itself at the matching corner-cube grid cell (6254), increments the "Goodies Gathered" counter at $6123 (BCD), plays sound effect $01, runs a short animation via the 919A table, then re-pokes the grid cell to the "delivered" marker $13 and self-destructs ((IX+$02)=$FF). This strongly implies the object's sprite (+0x08) is set elsewhere to track whichever item the player is currently carrying/delivering -- that link is not yet found. If the state nibble is already fully clear (all delivered), falls through to the normal branch below.
NORMAL-ROOM BRANCH (93C1): settle/float physics -- the height/Z field (+0x07) decays by 4 each frame toward a rest value $18 (clamped), tested each step via 9BF0 (collision); if blocked, the height is bounced back up by 4 instead. Also checks bit 2 of (IX+$0D) (a "just hit by a weapon" flag set elsewhere, not yet traced) and calls 9401 if set.
9341 CALL $62F9
9344 JR NZ,$93C1
9346 LD ($933F),HL
9349 LD C,$80
934B LD A,(HL)
934C CPL
934D LD DE,$72AB
9350 AND $0F
9352 JR Z,$93C1
9354 INC HL
9355 INC DE
9356 RLC C
9358 RRCA
9359 JR NC,$9350
935B LD B,A
935C LD A,(HL)
935D CP (IX+$08)
9360 LD A,B
9361 JR NZ,$9350
9363 EX DE,HL
9364 LD E,(HL)
9365 LD (IX+$09),E
9368 LD D,$00
936A LD HL,$612B
936D ADD HL,DE
936E LD (HL),$00
9370 LD HL,($933F)
9373 LD A,(HL)
9374 OR C
9375 LD (HL),A
9376 LD L,(IX+$0E)
9379 LD H,(IX+$0F)
937C LD (HL),$00
937E LD A,(IX+$09)
9381 CALL $6254 Set object position (IX+5/+6) from grid index A
9384 LD (IX+$0F),$00
9388 LD (IX+$07),$18
938C LD A,($6123) get "Goodies Gathered" end-game stat counter
938F ADD A,$01
9391 DAA
9392 LD ($6123),A set "Goodies Gathered" end-game stat counter
9395 LD A,$01
9397 CALL $848E Request sound effect A
939A CALL $923E Save continuation
939D LD HL,$919A
93A0 CALL $99D5 Sprite-animation stepper
93A3 RET NC
93A4 CALL $7FC0
93A7 CALL $7F8E
93AA LD E,(IX+$09)
93AD LD D,$00
93AF LD HL,$612B
93B2 ADD HL,DE
93B3 LD (HL),$13
93B5 LD A,E
93B6 DEC A
93B7 LD B,$17
93B9 CALL $6470
93BC LD (IX+$02),$FF
93C0 RET
This entry point is used by the routine at 9401.
93C1 CALL $923E Save continuation
93C4 BIT 2,(IX+$0D)
93C8 CALL NZ,$9401 Creature hit/defeat sequence, called from 9341 when the "just hit" flag (bit 2 of +0x0D) is set
93CB LD A,(IX+$07)
93CE CP $18
93D0 RET Z
93D1 SUB $04
93D3 CP $18
93D5 JR NC,$93D9
93D7 LD A,$18
93D9 LD (IX+$07),A
93DC CALL $9BF0 Collision test
93DF RES 1,(IX+$0D)
93E3 RES 0,(IX+$0D)
93E7 JR NC,$93F4
93E9 JR NZ,$93EB
93EB LD A,(IX+$07)
93EE ADD A,$04
93F0 LD (IX+$07),A
93F3 RET
93F4 LD L,(IX+$0E)
93F7 LD H,(IX+$0F)
93FA INC HL
93FB INC HL
93FC LD A,(IX+$07)
93FF LD (HL),A
9400 RET
9401: Creature hit/defeat sequence, called from 9341 when the "just hit" flag (bit 2 of +0x0D) is set
Used by the routine at 9341.
CONFIRMED structure (trigger not yet traced): clears the hit flag, then only proceeds if the creature's current sprite (+0x08) is $44 (a shared "vulnerable" pose -- creatures presumably must be in this pose to register a hit). Searches a (room, position, reward-sprite) triple table at $7C89 (count from $7C97) for an entry matching the current room and this object's position field (+0x09); on a match, swaps the reward sprite into +0x09 and into offset +3 of a linked record (via +0x0E/+0x0F), plays sound effect $01 (the same "success" sound as item delivery), steps through the 919A animation table to transform the sprite, then finalizes (+0x08 = reward sprite, 9AAB kind lookup into +0x0A, 9A60) and resumes normal behaviour at 93C1. Likely how a creature is "defeated" and turns into a collectible (a Gnome?).
9401 RES 2,(IX+$0D)
9405 LD A,(IX+$08)
9408 CP $44
940A RET NZ
940B LD A,(IX+$02)
940E LD HL,$7C89
9411 LD BC,($7C97)
9415 CP (HL)
9416 INC HL
9417 JR Z,$941E
9419 INC HL
941A INC HL
941B DJNZ $9415
941D RET
941E LD A,(IX+$09)
9421 CP (HL)
9422 RET NZ
9423 POP DE
9424 INC HL
9425 LD A,(HL)
9426 LD (IX+$09),A
9429 LD E,(IX+$0E)
942C LD D,(IX+$0F)
942F LD HL,$0003
9432 ADD HL,DE
9433 LD (HL),A
9434 LD A,$01
9436 CALL $848E Request sound effect A
9439 LD HL,$919A
943C LD ($933D),HL
943F CALL $923E Save continuation
9442 LD HL,($933D)
9445 LD A,(HL)
9446 INC HL
9447 LD (IX+$08),A
944A LD ($933D),HL
944D CP $FF
944F RET NZ
9450 LD A,(IX+$09)
9453 LD (IX+$08),A
9456 CALL $9AAB Search the (key,data) pair table at $74CE for key A
9459 LD A,(HL)
945A LD (IX+$0A),A
945D CALL $9A60 Dynamic object finalizer
9460 JP $93C1
9463: Data block at 9463
9463 DEFB $0D,$0D,$0E,$0E,$FF,$0B,$0B,$0C
946B DEFB $0C,$FF,$63,$94,$68,$94
9471: Behaviour handler of the fixed object record at $8E0F (object identity not yet known)
9471 LD A,($8DBB)
9474 LD ($8E14),A
9477 LD A,($8DBC)
947A LD ($8E15),A
947D LD A,($8DC1)
9480 LD (IX+$0B),A
9483 LD HL,$946D
9486 JP $99A7
9489: Data block at 9489
9489 DEFB $00,$06,$06,$00,$00,$06,$06,$00
9491 DEFB $00,$06,$89,$94
9495: Message at 9495
9495 DEFM "ZZ[["
9499: Data block at 9499
9499 DEFB $5C,$5C,$5D,$5D,$FF
949E: Behaviour handler of the fixed object record at $8E27 (object identity not yet known)
949E LD A,($8DBD)
94A1 ADD A,$18
94A3 LD (IX+$07),A
94A6 LD A,($8DC1)
94A9 AND $06
94AB LD L,A
94AC LD H,$00
94AE LD DE,$9489
94B1 ADD HL,DE
94B2 LD A,($8DBB)
94B5 ADD A,(HL)
94B6 LD (IX+$05),A
94B9 INC HL
94BA LD A,($8DBC)
94BD ADD A,(HL)
94BE LD (IX+$06),A
94C1 CALL $9A60 Dynamic object finalizer
94C4 LD HL,$9495
94C7 JP $99D5
94CA: Routine at 94CA
94CA DEC (IX+$0B)
94CD JR NZ,$94D4
94CF LD (IX+$02),$FF
94D3 RET
94D4 LD A,(IX+$0F)
94D7 INC A
94D8 AND $07
94DA LD (IX+$0F),A
94DD LD L,A
94DE LD H,$00
94E0 LD DE,$9495
94E3 ADD HL,DE
94E4 LD A,(HL)
94E5 LD (IX+$08),A
94E8 RET
94E9: 99D5 sprite-animation table for the plant/coral object (94EE)
Sprites $4E,$4E,$50,$50 (see A714/A71C, both labeled "Plant/coral"), terminated by $FF -- a simple 2-frame swaying decoration.
94E9 DEFB $4E,$4E,$50,$50,$FF
94EE: Per-frame behaviour handler for value-$67 objects -- plant/coral
Its 99D5 animation table (94E9) is sprites $4E,$4E,$50,$50, both "Plant/coral" sprites -- a simple 2-frame swaying decoration.
94EE LD HL,$94E9
94F1 JP $99D5
94F4: Per-frame behaviour handler for value-$6B objects -- plug. WIN-CONDITION TRIGGER: polls every frame for full item delivery, then pops and increments the "Plugs Pulled" counter.
CONFIRMED: re-checks (every frame, via 62F9 + AND $0F/CP $0F) whether this level's Plug Room state nibble has reached $0F (all 4 items delivered -- see 9341). Once it has: increments the "Plugs Pulled" counter at $6124 (BCD), plays sound effect $09, and animates the plug popping out (+0x07 += 8 per frame, gated by bit 4 of +0x0D so this only fires once), then self-destructs on the following frame (bit 6 of +0x0D check). This is the actual win-condition trigger for a single Plug Room.
94F4 CALL $62F9
94F7 LD A,(HL)
94F8 AND $0F
94FA CP $0F
94FC RET NZ
94FD LD A,($6124) get "Plugs Pulled" end-game stat counter
9500 ADD A,$01
9502 DAA
9503 LD ($6124),A set "Plugs Pulled" end-game stat counter
9506 LD A,$09
9508 CALL $848E Request sound effect A
950B CALL $923E Save continuation
950E BIT 6,(IX+$0D)
9512 JR NZ,$9521
9514 SET 4,(IX+$0D)
9518 LD A,(IX+$07)
951B ADD A,$08
951D LD (IX+$07),A
9520 RET
9521 LD (IX+$02),$FF
9525 RET
9526: 99D5 sprite-animation table for the whirlpool object (952D)
9526 DEFB $4C,$4C,$4D,$4D,$FF,$00,$00
952D: Per-frame behaviour handler for value-$69 objects -- whirlpool
Its 99D5 animation table (9526) is sprites $4C,$4C,$4D,$4D, both "Whirlpool, animation phase" sprites.
952D LD HL,$9526
9530 CALL $99D5 Sprite-animation stepper
9533 CALL $62F9 Test whether the current room is this level's Plug Room
9536 JR NZ,$9540
9538 LD A,(HL)
9539 AND $0F
953B CP $0F
953D JR Z,$955A
953F RET
9540 LD A,($8DBB)
9543 SUB (IX+$05)
9546 JR NC,$954A
9548 NEG
954A CP $05
954C RET NC
954D LD A,($8DBC)
9550 SUB (IX+$06)
9553 JR NC,$9557
9555 NEG
9557 CP $06
9559 RET NC
955A LD HL,($8DB9) get player behaviour-handler pointer
955D LD DE,$8968
9560 AND A
9561 SBC HL,DE
9563 RET NZ
9564 LD HL,$8D11
9567 LD ($8DB9),HL set player behaviour-handler pointer
956A LD A,(IX+$05)
956D LD ($952B),A
9570 LD A,(IX+$06)
9573 LD ($952C),A
9576 RET
9577: 99D5 sprite-animation table for the bubble source object (957C)
Sprites $68,$68,$69,$69 (see C38E/C39E, both relabeled "Bubble"), terminated by $FF.
9577 DEFB $68,$68,$69,$69,$FF
957C: Per-frame behaviour handler for value-$66/$6A objects -- bubble source
Its 99D5 animation table (9577) is sprites $68,$68,$69,$69, the 16x8 bubble sprites at C38E/C39E.
957C LD HL,$9577
957F CALL $99D5 Sprite-animation stepper
9582 DEC (IX+$0E)
9585 RET NZ
9586 LD A,(IX+$0B)
9589 LD (IX+$0E),A
958C PUSH IX
958E POP IY
9590 LD IX,$610E
9594 CALL $84AE Dynamic object allocator
9597 DEFW $9602 Dynamic object handler address (9602)
9599 LD A,(IY+$05)
959C LD (IX+$05),A
959F LD A,(IY+$06)
95A2 LD (IX+$06),A
95A5 LD (IX+$07),$18
95A9 LD (IX+$0A),$03
95AD LD A,(IY+$09)
95B0 LD (IX+$0B),A
95B3 LD A,(IY+$14)
95B6 LD (IX+$0E),A
95B9 CALL $9A60 Dynamic object finalizer
95BC PUSH IY
95BE POP IX
95C0 RET
95C1: Data block at 95C1
95C1 DEFB $62,$62,$63,$63,$64,$64,$5E,$FF
95C9 DEFB $FE,$02,$5F,$FE,$02,$5F,$FE,$02
95D1 DEFB $5E,$FE,$02,$5E,$FE,$02,$60,$FE
95D9 DEFB $02,$60,$FE,$02,$5E,$FE,$02,$5E
95E1 DEFB $FF,$FE,$04,$5F,$FE,$04,$5F,$FE
95E9 DEFB $04,$5E,$FE,$04,$5E,$FE,$04,$60
95F1 DEFB $FE,$04,$60,$FE,$04,$5E,$FE,$04
95F9 DEFB $5E,$FF
95FB DEFB $65,$65,$66,$66,$67,$67,$FF
9602: Per-frame behaviour handler for the individual rising-bubble particle spawned by 957C
At $9622-$962D, branches on the inherited trigger value at (IX+$0B) -- only if it's $6A does it SET bit 4 of (IX+$0D) and switch to movement table $95E2 (steps +0x07 by $04/frame) instead of the default 95C9 (steps by $02/frame): the $6A bubble rises at double the rate. That bit 4 flag is later tested at 97E6 (in the sprite-draw wrapper, right after 8128 draws it); only if set does it SET bit 6 of (IX+$0D). Back here at $961B, bit 6 being set causes immediate self-destruct ((IX+$02)=$FF). So only $6A-triggered bubbles can ever reach that clean completion state -- $66 bubbles never do: a full-strength bubble stream that completes its rise ($6A) vs. a weak one that never does ($66), matching gameplay where some bubble sources cannot lift the player all the way. Whether bit 6 specifically means "reached the surface" is unconfirmed.
9602 LD A,$03
9604 CALL $848E Request sound effect A
9607 CALL $923E Save continuation
960A LD HL,$95C1
960D CALL $99D5 Sprite-animation stepper
9610 RET NC
9611 LD (IX+$0F),$00
9615 CALL $923E Save continuation
9618 LD HL,$95C9
961B BIT 6,(IX+$0D)
961F JP NZ,$967F
9622 LD A,(IX+$0B)
9625 CP $6A
9627 JR NZ,$9630
9629 SET 4,(IX+$0D)
962D LD HL,$95E2
9630 CALL $99D5 Sprite-animation stepper
9633 LD A,(IX+$07)
9636 CP (IX+$0E)
9639 JR NC,$966B
963B LD A,$FF
963D CP (IX+$09)
9640 JP Z,$966B
9643 LD HL,$610E
9646 CALL $9B5D
9649 RET NC
964A LD HL,$8DB6
964D AND A
964E SBC HL,DE
9650 JR NZ,$966B
9652 LD B,$02
9654 LD A,(IX+$0B)
9657 CP $6A
9659 JR NZ,$965D
965B LD B,$04
965D LD HL,$0007
9660 ADD HL,DE
9661 LD A,B
9662 ADD A,(HL)
9663 LD (HL),A
9664 LD HL,$000D
9667 ADD HL,DE
9668 SET 4,(HL)
966A RET
966B LD HL,$9678
966E LD (IX+$03),L
9671 LD (IX+$04),H
9674 LD (IX+$0F),$00
9678 LD HL,$95FB
967B CALL $99D5 Sprite-animation stepper
967E RET NC
967F LD (IX+$02),$FF
9683 RET
9684: Per-frame behaviour handler for value-$68 objects -- rearing snake
Handler for 8E3F's objects (its handler-address bytes at 8E50 -- see 84AE), called from 983C's dispatcher.
Sprite starts at $23 (set by 8EA1 on spawn) and cycles through $23,$24,$25,$26 -- the "Snake, rearing phase" sprites at B56E/B57E/B59E/B5CE, with increasing sprite height (16x8 -> 16x16 -> 16x24 -> 16x32) as it rises, i.e. more of the snake's body becomes visible each frame. Full cycle: phase 0 = idle countdown at (IX+$0E) (decrements while nonzero); phase 1 = seed position (IX+$16)/(IX+$17) at $FC/$FE then jump +8; phase 2 = each call, INC sprite number (IX+$08) and jump position +8 again, repeating until sprite reaches $26 (fully reared), then sets a long countdown ($24) and advances to phase 3+; phase 3+ (default case) = each call, if sprite isn't back down to $23 yet, DEC sprite and retract position by -8; once back at $23, reset position to 0, set bit 7 of (IX+$0D) (purpose not traced), set another countdown, and restart the cycle at phase 1. A full rise-pause-retract-pause loop.
9684 LD A,(IX+$0E)
9687 AND A
9688 JR Z,$968E
968A DEC (IX+$0E)
968D RET
968E LD A,(IX+$0F)
9691 AND A
9692 JR NZ,$969C
9694 LD (IX+$16),$00
9698 INC (IX+$0F)
969B RET
969C CP $01
969E JR NZ,$96E0
96A0 LD (IX+$17),$FE
96A4 LD (IX+$16),$FC
96A8 INC (IX+$0F)
96AB LD A,(IX+$17)
96AE ADD A,$08
96B0 LD (IX+$17),A
96B3 LD A,(IX+$16)
96B6 ADD A,$08
96B8 LD (IX+$16),A
96BB RES 7,(IX+$0D)
96BF LD HL,$610E
96C2 CALL $9B5D
96C5 RET NC
96C6 LD A,(IX+$07)
96C9 ADD A,(IX+$16)
96CC PUSH IX
96CE PUSH DE
96CF POP IX
96D1 LD (IX+$07),A
96D4 SET 1,(IX+$0D)
96D8 CALL $96BF
96DB EX (SP),IX
96DD POP HL
96DE JR $96C2
96E0 CP $02
96E2 JR NZ,$96F7
96E4 INC (IX+$08)
96E7 LD A,(IX+$08)
96EA CP $26
96EC JR NZ,$96AB
96EE LD (IX+$0E),$24
96F2 INC (IX+$0F)
96F5 JR $96AB
96F7 LD A,(IX+$08)
96FA CP $23
96FC JR Z,$9712
96FE DEC (IX+$08)
9701 LD A,(IX+$17)
9704 SUB $08
9706 LD (IX+$17),A
9709 LD A,(IX+$16)
970C SUB $08
970E LD (IX+$16),A
9711 RET
9712 LD (IX+$16),$00
9716 SET 7,(IX+$0D)
971A LD (IX+$0E),$24
971E LD (IX+$0F),$01
9722 RET
9723: Data block at 9723
9723 DEFB $39,$01,$39,$01,$31,$02,$29,$03
972B DEFB $21,$04,$19,$05,$11,$06,$09,$07
9733 DEFB $01,$08,$02,$07,$03,$06,$04,$05
973B DEFB $05,$04,$06,$03,$07,$02,$08,$01
9743 DEFB $08,$01
9745: Routine at 9745
Used by the routine at 97BA.
9745 LD A,(IX+$07)
9748 PUSH AF
9749 LD A,($610B)
974C RRCA
974D RRCA
974E RRCA
974F LD E,A
9750 LD D,$00
9752 LD HL,$9723
9755 ADD HL,DE
9756 LD A,($610D)
9759 ADD A,$01
975B RRA
975C RRA
975D RRA
975E SUB E
975F RRCA
9760 INC A
9761 PUSH AF
9762 LD E,(HL)
9763 LD D,$00
9765 INC HL
9766 LD B,(HL)
9767 INC HL
9768 PUSH HL
9769 LD HL,$612B
976C ADD HL,DE
976D LD DE,$0009
9770 LD A,(HL)
9771 AND A
9772 JR Z,$977A
9774 CP $7F
9776 JR Z,$977A
9778 SET 7,(HL)
977A ADD HL,DE
977B DJNZ $9770
977D POP HL
977E POP AF
977F DEC A
9780 JR NZ,$9761
9782 LD A,(IX+$10)
9785 AND $F8
9787 LD L,A
9788 LD A,(IX+$11)
978B AND $F8
978D RRCA
978E RRCA
978F RRCA
9790 ADD A,L
9791 LD C,A
9792 ADD A,$07
9794 LD B,A
9795 LD HL,$612C Room grid address
9798 XOR A
9799 BIT 7,(HL)
979B RES 7,(HL)
979D JR Z,$97AF
979F CP C
97A0 JR C,$97AF
97A2 CP B
97A3 JR Z,$97AF
97A5 PUSH BC
97A6 PUSH HL
97A7 LD B,(IX+$07)
97AA CALL $6470
97AD POP HL
97AE POP BC
97AF INC HL
97B0 INC A
97B1 CP $40
97B3 JR C,$9799
97B5 POP AF
97B6 LD (IX+$07),A
97B9 RET
97BA: Draw an object's sprite: convert record position (+5/+6) to screen coordinates and draw sprite (+8) with its mask via 8128
Used by the routine at 9900.
Input
IX ??
97BA LD L,(IX+$05)
97BD LD H,(IX+$06)
97C0 LD A,$98
97C2 SUB (IX+$17)
97C5 SUB (IX+$07)
97C8 ADD A,L
97C9 ADD A,H
97CA LD D,A
97CB LD A,$80
97CD SUB L
97CE SUB L
97CF ADD A,H
97D0 ADD A,H
97D1 LD E,A
97D2 LD A,(IX+$08)
97D5 AND $80
97D7 OR $01
97D9 LD ($97E2),A
97DC LD C,(IX+$08)
97DF RES 7,C
97E1 LD A,$01
97E3 CALL $8128 Draw sprite C with its mask at screen position DE
97E6 BIT 4,(IX+$0D)
97EA RES 4,(IX+$0D)
97EE JR NC,$97F6
97F0 RET Z
97F1 SET 6,(IX+$0D)
97F5 RET
97F6 CALL $9745
97F9 JP $8107
97FC: Change current room to A = new room number
Used by the routines at 67F1, 8968 and 8A87.
Input
A new room number
97FC CALL $676D
97FF LD SP,($60E9)
9803 JP $9808
9806: Data block at 9806
9806 DEFW $8E0F
9808: Per-frame main loop entry: saves SP to $60E9 (restored by 97FC on room change); restores the message-window title when the $618A timer expires
Used by the routines at 6B05, 6B71 and 97FC.
9808 LD ($60E9),SP
980C LD A,($618A)
980F AND A
9810 JR Z,$9824
9812 DEC A
9813 LD ($618A),A
9816 JR NZ,$9824
9818 LD HL,$65CF
981B CALL $7D68 Print string: position cursor for message window line 1 (row $A4)
981E LD HL,($65D9)
9821 CALL $7D68 Print string: restore room/creature title (saved at 65D9 by 65DB)
9824 CALL $7FC0
9827 XOR A
9828 LD ($60EB),A
982B LD IX,$610E
982F CALL $983C Per-frame dynamic object dispatcher
9832 LD IX,$9806
9836 CALL $983C Per-frame dynamic object dispatcher
9839 JP $9900
983C: Per-frame dynamic object dispatcher (walks the active object list from the head at 610E)
Used by the routine at 9808.
Input
IX ???
For each object record (IX) in the list (record +0/+1 links to the next; the list includes the pool records at A900, the PLAYER record at 8DB6, and the room's creature), checks if its room number (offset $02) matches the current room ($6126); if so, loads a function pointer from offset $03/$04 and CALLs 61A7 (a JP (HL) trampoline) to invoke the object's own per-frame behaviour handler (e.g. 9684 for a snake, 8968 for the player). Also checks bit 7 of offset $0D and computes into offset $0C from offsets $10/$11 -- purpose not yet confirmed.
983C LD L,(IX+$00)
983F LD H,(IX+$01)
9842 LD A,L
9843 OR H
9844 RET Z
9845 PUSH HL
9846 EX (SP),IX
9848 LD A,(IX+$02)
984B INC A
984C JR NZ,$986C
984E LD L,(IX+$00)
9851 LD H,(IX+$01)
9854 LD DE,($618B)
9858 LD (IX+$00),E
985B LD (IX+$01),D
985E LD ($618B),IX
9862 POP IX
9864 LD (IX+$00),L
9867 LD (IX+$01),H
986A JR $9842
986C LD A,($6126) get room number
986F CP (IX+$02)
9872 JP NZ,$98FC
9875 LD L,(IX+$03)
9878 LD H,(IX+$04)
987B CALL $61A7 JP (HL)
987E LD A,($6126) get room number
9881 CP (IX+$02)
9884 JR NZ,$98FC
9886 BIT 7,(IX+$0D)
988A JR NZ,$98FC
988C LD A,$5E
988E ADD A,(IX+$10)
9891 ADD A,(IX+$11)
9894 LD (IX+$0C),A
9897 LD HL,$60EC
989A LD A,($60EB)
989D AND A
989E JR Z,$98F2
98A0 LD B,A
98A1 LD A,(IX+$0C)
98A4 LD E,(HL)
98A5 INC HL
98A6 LD D,(HL)
98A7 PUSH HL
98A8 LD HL,$0010
98AB ADD HL,DE
98AC LD A,(IX+$12)
98AF CP (HL)
98B0 JR C,$98D4
98B2 INC HL
98B3 LD A,(IX+$13)
98B6 CP (HL)
98B7 JR C,$98D4
98B9 INC HL
98BA LD A,(HL)
98BB CP (IX+$10)
98BE JR C,$98D4
98C0 INC HL
98C1 LD A,(HL)
98C2 CP (IX+$11)
98C5 JR C,$98D4
98C7 LD HL,$0007
98CA ADD HL,DE
98CB LD A,(HL)
98CC POP HL
98CD CP (IX+$07)
98D0 JR NC,$98E4
98D2 JR $98DF
98D4 LD HL,$000C
98D7 ADD HL,DE
98D8 LD A,(IX+$0C)
98DB CP (HL)
98DC POP HL
98DD JR C,$98E4
98DF INC HL
98E0 DJNZ $98A4
98E2 JR $98F2
98E4 DEC HL
98E5 LD A,B
98E6 ADD A,A
98E7 LD C,A
98E8 LD B,$00
98EA ADD HL,BC
98EB LD E,L
98EC LD D,H
98ED INC DE
98EE DEC HL
98EF LDDR
98F1 INC HL
98F2 PUSH IX
98F4 POP DE
98F5 LD (HL),E
98F6 INC HL
98F7 LD (HL),D
98F8 LD HL,$60EB
98FB INC (HL)
98FC POP HL
98FD JP $983C
9900: Draw all queued objects: walk the record-pointer list at $60EC (count at $60EB), drawing each via 97BA
Used by the routine at 9808.
9900 LD A,($60EB)
9903 AND A
9904 RET Z
9905 LD B,A
9906 LD HL,$60EC
9909 PUSH BC
990A LD E,(HL)
990B INC HL
990C LD D,(HL)
990D INC HL
990E PUSH HL
990F PUSH DE
9910 POP IX
9912 CALL $97BA Draw an object's sprite
9915 POP HL
9916 POP BC
9917 DJNZ $9909
9919 RET
991A: Data block at 991A
991A DEFB $00,$FA,$00,$06,$00,$00,$06,$00
9922 DEFB $FA
9923: Spawn the weapon projectile object (thrown from the player's position, facing $8DC1), handler 9963
Used by the routine at 8D8D.
Plays sound effect $08, allocates an object at the active list head, sets its sprite to the weapon's own sprite (A), position from the player, kind $0D, and facing from $8DC1, then calls 9A60 to finalize.
9923 PUSH AF
9924 LD A,$08
9926 CALL $848E Request sound effect A
9929 LD IX,$610E
992D CALL $84AE Dynamic object allocator
9930 DEFW $9963 Dynamic object handler address
9932 POP AF
9933 LD (IX+$08),A
9936 LD A,($8DBD)
9939 LD (IX+$07),A
993C LD HL,($8DBB)
993F LD (IX+$05),L
9942 LD (IX+$06),H
9945 LD (IX+$0A),$0D
9949 LD A,($8DC1)
994C LD (IX+$0B),A
994F LD HL,$991B
9952 CALL $8ABE
9955 CALL $9A60 Dynamic object finalizer
9958 RET NC
9959 LD (IX+$02),$FF
995D RET
995E: Data block at 995E
995E DEFB $1C,$1C,$9C,$9C,$FF
9963: Weapon projectile per-frame handler: move (double step) and detect a hit on collision
Applies the facing delta twice via 8ABE (see 8ABB), testing collision (9BF0) after each step -- a fast-moving shot. On collision with terrain (no target object, DE unset): just stops. On collision with another object (DE = that object's record): SETS bit 2 of its (+0x0D) -- the "just hit" flag consumed by 9341/9401 -- and writes the projectile's own sprite (masked to 7 bits) into that object's offset +9, presumably so 9401's reward lookup can identify which weapon scored the hit. Animates briefly via the 995E table, then self-destructs.
9963 CALL $8ABB
9966 PUSH BC
9967 CALL $9BF0 Collision test
996A POP BC
996B JR C,$9976
996D CALL $8ABB Apply the object's facing direction to its position (IX+5/+6), returning the OLD position in BC
9970 PUSH BC
9971 CALL $9BF0 Collision test
9974 POP BC
9975 RET NC
9976 LD (IX+$05),B
9979 LD (IX+$06),C
997C JR NZ,$998E
997E LD HL,$000D
9981 ADD HL,DE
9982 SET 2,(HL)
9984 LD HL,$0009
9987 ADD HL,DE
9988 LD A,(IX+$08)
998B AND $7F
998D LD (HL),A
998E LD (IX+$0F),$00
9992 CALL $923E Save continuation
9995 LD HL,$995E
9998 CALL $99D5 Sprite-animation stepper
999B RET NC
999C LD (IX+$02),$FF
99A0 RET
99A1: Direction-indexed sprite-animation stepper: pick one of 4 per-direction tables via (IX+$0B), then run 99D5's stepper on it
Used by the routines at 90A8 and 925C.
HL = (IX+$1D)/(IX+$1E), a pointer to a table of 4 sub-table addresses. Selects one by facing direction ((IX+$0B), mapped 1->0/2->1/... via a small comparison chain, then AND $03), loads that sub-table's address, and falls into 99D5's shared byte-code interpreter ($FD/$FC/$FE/$FB position-delta markers, otherwise a sprite number) -- this is how the player's (and other directional objects') walk-cycle animation is driven per-facing.
99A1 LD L,(IX+$1D)
99A4 LD H,(IX+$1E)
This entry point is used by the routines at 8968, 8AFB, 8D8D and 9471.
99A7 LD A,$C9 "RET" instruction code
99A9 LD ($99D1),A set instruction
99AC LD A,(IX+$0B)
99AF CP $06
99B1 JR NZ,$99B9
99B3 XOR A "NOP" instruction code
99B4 LD ($99D1),A set instruction
99B7 LD A,$01
99B9 CP $02
99BB JR NZ,$99C3
99BD XOR A "NOP" instruction code
99BE LD ($99D1),A set instruction
99C1 LD A,$04
99C3 RRCA
99C4 AND $03
99C6 LD E,A
99C7 LD D,$00
99C9 ADD HL,DE
99CA LD E,(HL)
99CB INC HL
99CC LD D,(HL)
99CD EX DE,HL
99CE JP $99DA
99D1: NEG / not NEG
Used by the routine at 99D5.
99D1 RET
99D2 NEG
99D4 RET
99D5: Sprite-animation stepper: read next entry from a per-object sprite-number table, advancing a phase counter
Used by the routines at 8968, 8D11, 91A6, 9341, 949E, 94EE, 952D, 957C, 9602 and 9963.
Called with HL = a small table of raw sprite numbers (see 9526/9577/94E9 for examples). Indexes the table by (IX+$0F) (a per-object phase counter), reads the byte there into A, then INCs (IX+$0F) for next time. $FF in the table means "wrap to start" (resets (IX+$0F) to 0 and re-reads from the table's first byte); $FD is a second special marker (purpose not yet traced past 9A01). Otherwise A is the next sprite number to display for this object -- this is how 957C/952D/94EE (and others) drive their objects' animation frames.
99D5 LD A,$C9 "RET" instruction code
99D7 LD ($99D1),A set instruction
This entry point is used by the routine at 99A1.
99DA XOR A
99DB LD ($991A),A
99DE LD C,L
99DF LD B,H
99E0 LD E,(IX+$0F)
99E3 LD D,$00
99E5 ADD HL,DE
99E6 LD A,(HL)
99E7 INC HL
99E8 INC (IX+$0F)
99EB CP $FF
99ED JR NZ,$99FC
99EF LD (IX+$0F),$00
99F3 LD L,C
99F4 LD H,B
99F5 LD A,$FF
99F7 LD ($991A),A
99FA JR $99E6
99FC CP $FD
99FE JR NZ,$9A10
9A00 LD A,(HL)
9A01 CALL $99D1 NEG / not NEG
9A04 ADD A,(IX+$05)
9A07 LD (IX+$05),A
9A0A INC HL
9A0B INC (IX+$0F)
9A0E JR $99E6
9A10 CP $FC
9A12 JR NZ,$9A20
9A14 LD A,(HL)
9A15 CALL $99D1 NEG / not NEG
9A18 ADD A,(IX+$06)
9A1B LD (IX+$06),A
9A1E JR $9A0A
9A20 CP $FE
9A22 JR NZ,$9A2D
9A24 LD A,(IX+$07)
9A27 ADD A,(HL)
9A28 LD (IX+$07),A
9A2B JR $9A0A
9A2D CP $FB
9A2F JR NZ,$9A37
9A31 LD A,(HL)
9A32 LD (IX+$0B),A
9A35 JR $9A0A
9A37 LD (IX+$08),A
9A3A LD A,($99D1) get instruction code
9A3D AND A
9A3E JR NZ,$9A44
9A40 SET 7,(IX+$08)
9A44 LD A,($991A)
9A47 ADD A,A
9A48 RET
9A49: Routine at 9A49
Used by the routines at 676D and 8968.
9A49 LD A,(IX+$05)
9A4C AND $F8
9A4E OR $04
9A50 LD (IX+$05),A
9A53 LD A,(IX+$06)
9A56 AND $F8
9A58 OR $04
9A5A LD (IX+$06),A
9A5D JP $9A60
9A60: Dynamic object finalizer (called at the end of every spawn routine's object setup)
Used by the routines at 6663, 8968, 8AFB, 8E6E, 8EA7, 8EF2, 8F82, 9021, 90A8, 925C, 9401, 949E, 957C, 9923, 9A49 and 9BF0.
Role still open: the handler-address write into record +3/+4 and the list insertion both happen inside 84AE, so neither is this routine's job. Observed effect: record offset $09 (the triggering grid value) reads back as $00 after this call. Internals not yet traced.
9A60 PUSH IX
9A62 POP HL
9A63 LD DE,$0015
9A66 ADD HL,DE
9A67 EX DE,HL
9A68 LD C,(IX+$0A)
9A6B LD B,$00
9A6D LD HL,$750A
9A70 ADD HL,BC
9A71 ADD HL,BC
9A72 ADD HL,BC
9A73 LD BC,$0003
9A76 LDIR
9A78 LD E,(IX+$15)
9A7B LD A,(IX+$05)
9A7E SUB E
9A7F LD (IX+$10),A
9A82 JR C,$9AA7
9A84 JR Z,$9AA7
9A86 ADD A,E
9A87 ADD A,E
9A88 DEC A
9A89 LD (IX+$12),A
9A8C CP $3F
9A8E JR NC,$9AA7
9A90 LD A,(IX+$06)
9A93 SUB E
9A94 LD (IX+$11),A
9A97 JR C,$9AA7
9A99 JR Z,$9AA7
9A9B ADD A,E
9A9C ADD A,E
9A9D DEC A
9A9E LD (IX+$13),A
9AA1 CP $3F
9AA3 JR NC,$9AA7
9AA5 AND A
9AA6 RET
9AA7 OR $01
9AA9 SCF
9AAA RET
9AAB: Search the (key,data) pair table at $74CE for key A; returns Z with HL pointing at the matched pair's data byte
Used by the routines at 64BB, 6663, 8E6E, 8F4C, 9401 and 9AFD.
9AAB LD HL,$74CE
9AAE LD BC,($7509)
9AB2 LD B,C
9AB3 CP (HL)
9AB4 INC HL
9AB5 RET Z
9AB6 INC HL
9AB7 DJNZ $9AB3
9AB9 RET
9ABA: Data block at 9ABA
9ABA DEFB $00,$FF
9ABC: Terrain collision test for one screen point (B,C): convert to a grid cell and check its content
Used by the routine at 9BF0.
Input
BC ??
Converts screen coordinates (B=X,C=Y) to a room-grid cell: (Y AND $F8)>>3 * 8 + (X AND $F8)>>3 -- confirms the 612C grid's row*8+col indexing operates on 8px-aligned screen tiles. Reads the grid cell; $00 = passable (no collision). $7F = solid wall, hard block (see 9B56). Any other nonzero code is looked up in a per-terrain-code shape/behaviour table at $7556 (the same table 8E6E reads) -- individual terrain codes may have different collision shapes rather than being uniformly solid.
9ABC LD A,B
9ABD AND $F8
9ABF LD L,A
9AC0 LD A,C
9AC1 AND $F8
9AC3 RRCA
9AC4 RRCA
9AC5 RRCA
9AC6 ADD A,L
9AC7 LD HL,$9ABB
9ACA CP (HL)
9ACB RET Z
9ACC INC (HL)
9ACD JR Z,$9ACF
9ACF LD (HL),A
9AD0 LD L,A
9AD1 LD H,$00
9AD3 LD BC,$612C Room grid address
9AD6 ADD HL,BC
9AD7 LD A,(HL)
9AD8 AND A
9AD9 JR Z,$9B40
9ADB LD ($9ABA),A
9ADE CP $7F
9AE0 JP Z,$9B56
9AE3 LD L,A
9AE4 ADD HL,HL
9AE5 LD H,$00
9AE7 LD BC,$7556
9AEA ADD HL,BC
9AEB LD E,(HL)
9AEC INC HL
9AED LD D,(HL)
9AEE EX DE,HL
9AEF LD A,(IX+$07)
9AF2 LD D,A
9AF3 ADD A,(IX+$16)
9AF6 DEC A
9AF7 LD E,A
9AF8 LD C,$18
9AFA LD B,(HL)
9AFB JR $9B24
9AFD: Routine at 9AFD
9AFD LD A,E
9AFE CP C
9AFF JR C,$9B27
9B01 PUSH HL
9B02 PUSH BC
9B03 LD A,(HL)
9B04 CALL $9AAB Search the (key,data) pair table at $74CE for key A
9B07 LD C,(HL)
9B08 LD B,$00
9B0A LD HL,$750B
9B0D ADD HL,BC
9B0E ADD HL,BC
9B0F ADD HL,BC
9B10 LD A,(HL)
9B11 POP BC
9B12 POP HL
9B13 ADD A,C
9B14 LD C,A
9B15 CP D
9B16 JR C,$9B24
9B18 JR NZ,$9B20
9B1A LD A,(HL)
9B1B LD (IX+$14),A
9B1E JR $9B24
9B20 LD A,(HL)
9B21 AND A
9B22 JR NZ,$9B42
This entry point is used by the routine at 9ABC.
9B24 INC HL
9B25 DJNZ $9AFD
9B27 LD A,(IX+$14)
9B2A AND A
9B2B JR Z,$9B40
9B2D LD HL,$75AE
9B30 LD BC,($75B5)
9B34 LD B,$00
9B36 CPIR
9B38 JR NZ,$9B40
9B3A SET 1,(IX+$0D)
9B3E JR $9B40
This entry point is used by the routine at 9ABC.
9B40 AND A
9B41 RET
9B42 LD (IX+$14),A
9B45 LD HL,$75AE
9B48 LD BC,($75B5)
9B4C LD B,$00
9B4E CPIR
9B50 JR NZ,$9B56
9B52 SET 0,(IX+$0D)
This entry point is used by the routine at 9ABC.
9B56 OR $01
9B58 SCF
9B59 RET
9B5A: Collision/overlap scan: walk the active object list looking for another same-room object whose bounding box (+$10..+$13) overlaps IX's; DE = the object found
Used by the routines at 9021 and 9BF0.
9B5A LD HL,$610E
This entry point is used by the routines at 8AFB, 9602, 9684 and 9BD4.
9B5D LD E,(HL)
9B5E INC HL
9B5F LD D,(HL)
9B60 LD A,D
9B61 OR E
9B62 RET Z
9B63 PUSH IX
9B65 POP HL
9B66 AND A
9B67 SBC HL,DE
9B69 JP Z,$9BEC
9B6C LD HL,$0002
9B6F ADD HL,DE
9B70 LD A,(IX+$02)
9B73 CP (HL)
9B74 JP NZ,$9BEC
9B77 LD HL,$000D
9B7A ADD HL,DE
9B7B BIT 7,(HL)
9B7D JP NZ,$9BEC
9B80 LD HL,$0013
9B83 ADD HL,DE
9B84 LD A,(HL)
9B85 CP (IX+$11)
9B88 JR C,$9BEC
9B8A DEC HL
9B8B LD A,(HL)
9B8C CP (IX+$10)
9B8F JR C,$9BEC
9B91 DEC HL
9B92 LD A,(IX+$13)
9B95 CP (HL)
9B96 JR C,$9BEC
9B98 DEC HL
9B99 LD A,(IX+$12)
9B9C CP (HL)
9B9D JR C,$9BEC
9B9F LD HL,$0016
9BA2 ADD HL,DE
9BA3 LD A,(HL)
9BA4 LD HL,$0007
9BA7 ADD HL,DE
9BA8 ADD A,(HL)
9BA9 CP (IX+$07)
9BAC JR C,$9BEC
9BAE JR Z,$9BD4
9BB0 LD A,(IX+$07)
9BB3 ADD A,(IX+$16)
9BB6 CP (HL)
9BB7 JR C,$9BEC
9BB9 JR Z,$9BEC
9BBB LD HL,$000D
9BBE ADD HL,DE
9BBF BIT 3,(HL)
9BC1 JR Z,$9BCF
9BC3 LD HL,$8DB6
9BC6 AND A
9BC7 SBC HL,DE
9BC9 JR Z,$9BCF
9BCB SET 0,(IX+$0D)
9BCF XOR A
9BD0 SCF
9BD1 RET
9BD2: Data block at 9BD2
9BD2 DEFB $AF,$C9
9BD4: Routine at 9BD4
Used by the routine at 9B5A.
9BD4 LD (IX+$14),$01
9BD8 LD HL,$000D
9BDB ADD HL,DE
9BDC BIT 3,(HL)
9BDE JR Z,$9BEC
9BE0 LD HL,$8DB6
9BE3 AND A
9BE4 SBC HL,DE
9BE6 JR Z,$9BEC
9BE8 SET 1,(IX+$0D)
This entry point is used by the routine at 9B5A.
9BEC EX DE,HL
9BED JP $9B5D
9BF0: Collision test: check the object's 4 bounding-box corners against the room grid, then check for overlap with other objects
Used by the routines at 66CE, 8AD9, 8AFB, 8CDF, 90A8, 925C, 9341 and 9963.
Input
IX ??
Tests all 4 corners of the object's bounding box (screen-coordinate pairs at +0x10/+0x11, +0x10/+0x13, +0x12/+0x13, +0x12/+0x11 -- i.e. (left,top)/(left,bottom)/(right,bottom)/(right,top)) via 9ABC, returning early (C) if any corner hits solid terrain. If all 4 corners are clear, finishes with 9B5A (object-vs-object overlap scan). Also calls 9A60 first and returns early if it reports collision (purpose of that specific pre-check not fully traced).
9BF0 XOR A
9BF1 LD (IX+$14),A
9BF4 LD ($9ABA),A
9BF7 LD A,$FF
9BF9 LD ($9ABB),A
9BFC CALL $9A60 Dynamic object finalizer
9BFF RET C
9C00 LD B,(IX+$10)
9C03 LD C,(IX+$11)
9C06 CALL $9ABC Terrain collision test for one screen point
9C09 RET C
9C0A LD B,(IX+$10)
9C0D LD C,(IX+$13)
9C10 CALL $9ABC Terrain collision test for one screen point
9C13 RET C
9C14 LD B,(IX+$12)
9C17 LD C,(IX+$13)
9C1A CALL $9ABC Terrain collision test for one screen point
9C1D RET C
9C1E LD B,(IX+$12)
9C21 LD C,(IX+$11)
9C24 CALL $9ABC Terrain collision test for one screen point
9C27 RET C
9C28 XOR A
9C29 LD ($9ABA),A
9C2C CALL $9B5A Collision/overlap scan
9C2F RET C
9C30 AND A
9C31 RET
9C32: Data block at 9C32
9C32 DEFB $00,$B9,$FF
9C35: Routine at 9C35
Used by the routines at 6B71 and 85A1.
9C35 LD HL,$61A6
9C38 LD A,(HL)
9C39 LD (HL),$00
9C3B AND A
9C3C JR Z,$9C4A
9C3E LD HL,$9C32
9C41 LD DE,$6195
9C44 LDI
9C46 LDI
9C48 LDI
9C4A LD BC,$6194
9C4D LD A,(BC)
9C4E AND $F8
9C50 LD D,A
9C51 LD (BC),A
9C52 AND $38
9C54 ADD A,A
9C55 ADD A,A
9C56 LD E,A
9C57 LD A,D
9C58 AND $07
9C5A LD H,A
9C5B LD A,D
9C5C AND $C0
9C5E RRCA
9C5F RRCA
9C60 RRCA
9C61 OR H
9C62 LD D,A
9C63 LD HL,$4000
9C66 ADD HL,DE
9C67 INC BC
9C68 LD A,(BC)
9C69 AND $F8
9C6B LD (BC),A
9C6C RRCA
9C6D RRCA
9C6E RRCA
9C6F LD E,A
9C70 LD D,$00
9C72 ADD HL,DE
9C73 LD ($9CBB),HL
9C76 DEC BC
9C77 LD A,(BC)
9C78 LD L,A
9C79 LD H,$00
9C7B ADD HL,HL
9C7C ADD HL,HL
9C7D ADD HL,HL
9C7E ADD HL,HL
9C7F ADD HL,HL
9C80 ADD HL,DE
9C81 LD DE,$E390 Shadow screen address
9C84 ADD HL,DE
9C85 LD ($9CBE),HL
9C88 LD HL,($6194)
9C8B LD BC,$6196
9C8E LD A,(BC)
9C8F OR $07
9C91 INC A
9C92 SUB L
9C93 RET C
9C94 RRCA
9C95 RRCA
9C96 RRCA
9C97 LD ($9CC1),A
9C9A INC BC
9C9B LD A,(BC)
9C9C OR $07
9C9E SUB H
9C9F ADD A,$01
9CA1 RRA
9CA2 RRA
9CA3 LD E,A
9CA4 LD D,$00
9CA6 LD HL,$9D08
9CA9 AND A
9CAA SBC HL,DE
9CAC LD ($9D14),HL
9CAF RRA
9CB0 LD E,A
9CB1 LD HL,$0100
9CB4 AND A
9CB5 SBC HL,DE
9CB7 LD ($9D0A),HL
Copy shadow screen to ZX screen
9CBA LD DE,$4000
9CBD LD HL,$E390 Shadow screen address
9CC0 LD A,$18
9CC2 PUSH AF
9CC3 LD A,$09
9CC5 JP $9D0F
9CC8 LDI
9CCA LDI
9CCC LDI
9CCE LDI
9CD0 LDI
9CD2 LDI
9CD4 LDI
9CD6 LDI
9CD8 LDI
9CDA LDI
9CDC LDI
9CDE LDI
9CE0 LDI
9CE2 LDI
9CE4 LDI
9CE6 LDI
9CE8 LDI
9CEA LDI
9CEC LDI
9CEE LDI
9CF0 LDI
9CF2 LDI
9CF4 LDI
9CF6 LDI
9CF8 LDI
9CFA LDI
9CFC LDI
9CFE LDI
9D00 LDI
9D02 LDI
9D04 LDI
9D06 LDI
9D08 ADD HL,BC
9D09 LD BC,$00E0
9D0C EX DE,HL
9D0D ADD HL,BC
9D0E EX DE,HL
9D0F LD BC,$0020
9D12 DEC A
9D13 JP NZ,$9CC8
9D16 EX DE,HL
9D17 LD BC,$F820
9D1A ADD HL,BC
9D1B LD A,H
9D1C ADD A,$07
9D1E AND $F8
9D20 LD H,A
9D21 EX DE,HL
9D22 POP AF
9D23 DEC A
9D24 JP NZ,$9CC2
9D27 LD A,($6193)
9D2A AND A
9D2B RET NZ
9D2C LD A,$FF
9D2E LD ($6193),A
9D31 LD A,$04
9D33 CALL $848E Request sound effect A
9D36 LD A,($6175)
9D39 JP $69AC Prepare the Room with color A
9D3C: Data block at 9D3C
9D3C DEFB $98,$F2,$04,$10,$BE,$00,$00,$00
9D44 DEFB $5C,$00,$00,$00,$B8,$00,$00,$00
9D4C DEFB $E0,$00,$00,$00,$00,$00,$00,$00
9D54 DEFB $00,$00,$00,$00,$00,$00,$00,$00
9D5C DEFB $00,$00,$00,$00,$00,$00,$00,$00
9D64 DEFB $00,$00,$00,$00,$00,$00,$00,$00
9D6C DEFB $00,$00,$00,$00,$00,$00,$00,$00
9D74 DEFB $00,$00,$00,$00,$00,$00,$00,$00
9D7C DEFB $00,$00,$00,$00,$1F,$EE,$02,$08
9D84 DEFB $00,$00,$00,$00,$00,$00,$00,$00
9D8C DEFB $00,$00,$00,$00,$00,$00,$00,$00
9D94 DEFB $98,$EF,$04,$18,$19,$5F,$F6,$B8
9D9C DEFB $06,$B7,$BF,$F0,$03,$7D,$7F,$00
9DA4 DEFB $00,$2F,$80,$00,$00,$00,$00,$00
9DAC DEFB $00,$00,$00,$00,$00,$00,$00,$00
9DB4 DEFB $00,$00,$00,$00,$00,$00,$00,$00
9DBC DEFB $00,$00,$00,$00,$00,$00,$00,$00
9DC4 DEFB $00,$00,$00,$00,$00,$00,$00,$00
9DCC DEFB $00,$00,$00,$00,$80,$00,$00,$00
9DD4 DEFB $E0,$00,$00,$00,$B0,$00,$00,$00
9DDC DEFB $A8,$00,$00,$00,$54,$00,$00,$00
9DE4 DEFB $AC,$00,$00,$00,$54,$00,$00,$00
9DEC DEFB $AE,$00,$00,$00,$96,$00,$00,$00
9DF4 DEFB $6E,$00,$00,$00,$DB,$EC,$01,$18
9DFC DEFB $00,$00,$00,$00,$00,$00,$00,$00
9E04 DEFB $00,$00,$00,$00,$00,$C0,$E0,$50
9E0C DEFB $AC,$56,$AA,$56,$AC,$54,$B8,$F0
9E14 DEFB $1E,$F6,$04,$10,$00,$00,$00,$00
9E1C DEFB $00,$00,$00,$00,$00,$00,$00,$00
9E24 DEFB $00,$00,$00,$00,$00,$00,$00,$00
9E2C DEFB $00,$00,$00,$00,$00,$00,$00,$00
9E34 DEFB $00,$00,$00,$00,$00,$00,$00,$00
9E3C DEFB $00,$00,$00,$00,$00,$00,$00,$00
9E44 DEFB $00,$00,$00,$00,$00,$00,$00,$00
9E4C DEFB $00,$00,$00,$00,$00,$00,$00,$00
9E54 DEFB $00,$00,$00,$00,$00,$00,$00,$00
9E5C DEFB $00,$00,$00,$00,$00,$00,$00,$00
9E64 DEFB $00,$00,$00,$00,$00,$00,$00,$00
9E6C DEFB $00,$00,$00,$00,$00,$00,$00,$00
9E74 DEFB $00,$00,$00,$00,$00,$00,$00,$00
9E7C DEFB $00,$00,$00,$00,$00,$00,$00,$00
9E84 DEFB $00,$00,$00,$00,$00,$00,$00,$00
9E8C DEFB $00,$00,$00,$00,$00,$00,$00,$00
9E94 DEFB $00,$00,$00,$00,$00,$00,$00,$00
9E9C DEFB $00,$00,$00,$00,$00,$00,$00,$00
9EA4 DEFB $00,$00,$00,$00,$00,$00,$00,$00
9EAC DEFB $00,$00,$00,$00,$00,$00,$00,$00
9EB4 DEFB $00,$00,$00,$00,$00,$00,$00,$00
9EBC DEFB $00,$00,$00,$00,$00,$00,$00,$00
9EC4 DEFB $00,$00,$00,$00,$00,$00,$00,$00
9ECC DEFB $00,$00,$00,$00,$00,$00,$00,$00
9ED4 DEFB $00,$00,$00,$00,$00,$00,$00,$00
9EDC DEFB $00,$00,$00,$00,$00,$00,$00,$00
9EE4 DEFB $00,$00,$00,$00,$00,$00,$00,$00
9EEC DEFB $00,$00,$00,$00,$00,$00,$00,$00
9EF4 DEFB $00,$00,$00,$00,$00,$00,$00,$00
9EFC DEFB $00,$00,$00,$00,$00,$00,$00,$00
9F04 DEFB $00,$00,$00,$00,$00,$00,$00,$00
9F0C DEFB $00,$00,$00,$00,$00,$00,$00,$00
9F14 DEFB $00,$00,$00,$00,$00,$00,$00,$00
9F1C DEFB $00,$00,$00,$00,$00,$00,$00,$00
9F24 DEFB $00,$00,$00,$00,$00,$00,$00,$00
9F2C DEFB $00,$00,$00,$00,$00,$00,$00,$00
9F34 DEFB $00,$00,$00,$00,$00,$00,$00,$00
9F3C DEFB $00,$00,$00,$00,$00,$00,$00,$00
9F44 DEFB $00,$00,$00,$00,$00,$00,$00,$00
9F4C DEFB $00,$00,$00,$00,$00,$00,$00,$00
9F54 DEFB $00,$00,$00,$00,$00,$00,$00,$00
9F5C DEFB $00,$00,$00,$00,$00,$00,$00,$00
9F64 DEFB $00,$00,$00,$00,$00,$00,$00,$00
9F6C DEFB $00,$00,$00,$00,$00,$00,$00,$00
9F74 DEFB $00,$00,$00,$00,$00,$00,$00,$00
9F7C DEFB $00,$00,$00,$00,$00,$00,$00,$00
9F84 DEFB $00,$00,$00,$00,$00,$00,$00,$00
9F8C DEFB $00,$00,$00,$00,$00,$00,$00,$00
9F94 DEFB $00,$00,$00,$00,$00,$00,$00,$00
9F9C DEFB $00,$00,$00,$00,$00,$00,$00,$00
9FA4 DEFB $00,$00,$00,$00,$00,$00,$00,$00
9FAC DEFB $00,$00,$00,$00,$00,$00,$00,$00
9FB4 DEFB $00,$00,$00,$00,$00,$00,$00,$00
9FBC DEFB $00,$00,$00,$00,$00,$00,$00,$00
9FC4 DEFB $00,$00,$00,$00,$00,$00,$00,$00
9FCC DEFB $00,$00,$00,$00,$00,$00,$00,$00
9FD4 DEFB $00,$00,$00,$00,$00,$00,$00,$00
9FDC DEFB $00,$00,$00,$00,$00,$00,$00,$00
9FE4 DEFB $00,$00,$00,$00,$00,$00,$00,$00
9FEC DEFB $00,$00,$00,$00,$00,$00,$00,$00
9FF4 DEFB $00,$00,$00,$00,$00,$00,$00,$00
9FFC DEFB $00,$00,$00,$00,$00,$00,$00,$00
A004 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A00C DEFB $00,$00,$00,$00,$00,$00,$00,$00
A014 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A01C DEFB $00,$00,$00,$00,$00,$00,$00,$00
A024 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A02C DEFB $00,$00,$00,$00,$00,$00,$00,$00
A034 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A03C DEFB $00,$00,$00,$00,$00,$00,$00,$00
A044 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A04C DEFB $00,$00,$00,$00,$00,$00,$00,$00
A054 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A05C DEFB $00,$00,$00,$00,$00,$00,$00,$00
A064 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A06C DEFB $00,$00,$00,$00,$00,$00,$00,$00
A074 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A07C DEFB $00,$00,$00,$00,$00,$00,$00,$00
A084 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A08C DEFB $00,$00,$00,$00,$00,$00,$00,$00
A094 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A09C DEFB $00,$00,$00,$00,$00,$00,$00,$00
A0A4 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A0AC DEFB $00,$00,$00,$00,$00,$00,$00,$00
A0B4 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A0BC DEFB $00,$00,$00,$00,$00,$00,$00,$00
A0C4 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A0CC DEFB $00,$00,$00,$00,$00,$00,$00,$00
A0D4 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A0DC DEFB $00,$00,$00,$00,$00,$00,$00,$00
A0E4 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A0EC DEFB $00,$00,$00,$00,$00,$00,$00,$00
A0F4 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A0FC DEFB $00,$00,$00,$00,$00,$00,$00,$00
A104 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A10C DEFB $00,$00,$00,$00,$00,$00,$00,$00
A114 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A11C DEFB $00,$00,$00,$00,$00,$00,$00,$00
A124 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A12C DEFB $00,$00,$00,$00,$00,$00,$00,$00
A134 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A13C DEFB $00,$00,$00,$00,$00,$00,$00,$00
A144 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A14C DEFB $00,$00,$00,$00,$00,$00,$00,$00
A154 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A15C DEFB $00,$00,$00,$00,$00,$00,$00,$00
A164 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A16C DEFB $00,$00,$00,$00,$00,$00,$00,$00
A174 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A17C DEFB $00,$00,$00,$00,$00,$00,$00,$00
A184 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A18C DEFB $00,$00,$00,$00,$00,$00,$00,$00
A194 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A19C DEFB $00,$00,$00,$00,$00,$00,$00,$00
A1A4 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A1AC DEFB $00,$00,$00,$00,$00,$00,$00,$00
A1B4 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A1BC DEFB $00,$00,$00,$00,$00,$00,$00,$00
A1C4 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A1CC DEFB $00,$00,$00,$00,$00,$00,$00,$00
A1D4 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A1DC DEFB $00,$00,$00,$00,$00,$00,$00,$00
A1E4 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A1EC DEFB $00,$00,$00,$00,$00,$00,$00,$00
A1F4 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A1FC DEFB $00,$00,$00,$00,$00,$00,$00,$00
A204 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A20C DEFB $00,$00,$00,$00,$00,$00,$00,$00
A214 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A21C DEFB $00,$00,$00,$00,$00,$00,$00,$00
A224 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A22C DEFB $00,$00,$00,$00,$00,$00,$00,$00
A234 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A23C DEFB $00,$00,$00,$00,$00,$00,$00,$00
A244 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A24C DEFB $00,$00,$00,$00,$00,$00,$00,$00
A254 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A25C DEFB $00,$00,$00,$00,$00,$00,$00,$00
A264 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A26C DEFB $00,$00,$00,$00,$00,$00,$00,$00
A274 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A27C DEFB $00,$00,$00,$00,$00,$00,$00,$00
A284 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A28C DEFB $00,$00,$00,$00,$00,$00,$00,$00
A294 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A29C DEFB $00,$00,$00,$00,$00,$00,$00,$00
A2A4 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A2AC DEFB $00,$00,$00,$00,$00,$00,$00,$00
A2B4 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A2BC DEFB $00,$00,$00,$00,$00,$00,$00,$00
A2C4 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A2CC DEFB $00,$00,$00,$00,$00,$00,$00,$00
A2D4 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A2DC DEFB $00,$00,$00,$00,$00,$00,$00,$00
A2E4 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A2EC DEFB $00,$00,$00,$00,$00,$00,$00,$00
A2F4 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A2FC DEFB $00,$00,$00,$00,$00,$00,$00,$00
A304 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A30C DEFB $00,$00,$00,$00,$00,$00,$00,$00
A314 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A31C DEFB $00,$00,$00,$00,$00,$00,$00,$00
A324 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A32C DEFB $00,$00,$00,$00,$00,$00,$00,$00
A334 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A33C DEFB $00,$00,$00,$00,$00,$00,$00,$00
A344 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A34C DEFB $00,$00,$00,$00,$00,$00,$00,$00
A354 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A35C DEFB $00,$00,$00,$00,$00,$00,$00,$00
A364 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A36C DEFB $00,$00,$00,$00,$00,$00,$00,$00
A374 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A37C DEFB $00,$00,$00,$00,$00,$00,$00,$00
A384 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A38C DEFB $00,$00,$00,$00,$00,$00,$00,$00
A394 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A39C DEFB $00,$00,$00,$00,$00,$00,$00,$00
A3A4 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A3AC DEFB $00,$00,$00,$00,$00,$00,$00,$00
A3B4 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A3BC DEFB $00,$00,$00,$00,$00,$00,$00,$00
A3C4 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A3CC DEFB $00,$00,$00,$00,$00,$00,$00,$00
A3D4 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A3DC DEFB $00,$00,$00,$00,$00,$00,$00,$00
A3E4 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A3EC DEFB $00,$00,$00,$00,$00,$00,$00,$00
A3F4 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A3FC DEFB $00,$00,$00,$00
A400: Font 59 characters, 8 bytes each, 472 bytes
A400 DEFB $00,$00,$00,$00,$00,$00,$00,$00
A408 DEFB $00,$18,$18,$18,$18,$18,$00,$18
A410 DEFB $00,$36,$36,$36,$00,$00,$00,$00
A418 DEFB $00,$6C,$FE,$FE,$6C,$FE,$FE,$6C
A420 DEFB $00,$18,$FE,$98,$FE,$1A,$FE,$18
A428 DEFB $00,$C6,$C6,$0C,$18,$30,$66,$C6
A430 DEFB $00,$18,$24,$18,$30,$4A,$46,$3E
A438 DEFB $00,$08,$08,$10,$00,$00,$00,$00
A440 DEFB $00,$04,$08,$08,$08,$08,$08,$04
A448 DEFB $00,$20,$10,$10,$10,$10,$10,$20
A450 DEFB $00,$00,$54,$38,$FE,$38,$54,$00
A458 DEFB $00,$00,$08,$08,$3E,$08,$08,$00
A460 DEFB $00,$00,$00,$00,$00,$08,$08,$10
A468 DEFB $00,$00,$00,$00,$3C,$00,$00,$00
A470 DEFB $00,$00,$00,$00,$00,$18,$18,$00
A478 DEFB $00,$02,$04,$08,$10,$20,$40,$80
A480 DEFB $00,$FE,$FE,$CE,$D6,$E6,$FE,$FE
A488 DEFB $00,$30,$70,$F0,$30,$30,$FC,$FC
A490 DEFB $00,$FE,$FE,$02,$FE,$C0,$FE,$FE
A498 DEFB $00,$FE,$FE,$06,$3E,$06,$FE,$FE
A4A0 DEFB $00,$C0,$CC,$CC,$FC,$FC,$0C,$0C
A4A8 DEFB $00,$FE,$FE,$C0,$FE,$06,$FE,$FE
A4B0 DEFB $00,$FE,$FE,$80,$FE,$C6,$FE,$FE
A4B8 DEFB $00,$FE,$FE,$06,$06,$06,$06,$06
A4C0 DEFB $00,$FE,$FE,$C6,$FE,$C6,$FE,$FE
A4C8 DEFB $00,$FE,$FE,$C6,$FE,$06,$FE,$FE
A4D0 DEFB $00,$00,$18,$18,$00,$18,$18,$00
A4D8 DEFB $00,$00,$18,$18,$00,$18,$08,$10
A4E0 DEFB $00,$10,$20,$40,$80,$40,$20,$10
A4E8 DEFB $00,$00,$3C,$00,$3C,$00,$00,$00
A4F0 DEFB $00,$08,$04,$02,$01,$02,$04,$08
A4F8 DEFB $00,$18,$24,$04,$08,$10,$00,$10
A500 DEFB $00,$3C,$82,$9A,$94,$98,$82,$7C
A508 DEFB $00,$FE,$FE,$C6,$FE,$FE,$C6,$C6
A510 DEFB $00,$FE,$FE,$C6,$FC,$C6,$FE,$FE
A518 DEFB $00,$FE,$FE,$C6,$C0,$C6,$FE,$FE
A520 DEFB $00,$F8,$FC,$C6,$C6,$C6,$FC,$F8
A528 DEFB $00,$FE,$FE,$C2,$F8,$C2,$FE,$FE
A530 DEFB $00,$FE,$FE,$C2,$F8,$C0,$C0,$C0
A538 DEFB $00,$FE,$FE,$C0,$CE,$C6,$FE,$FE
A540 DEFB $00,$C6,$C6,$FE,$FE,$C6,$C6,$C6
A548 DEFB $00,$7E,$7E,$18,$18,$18,$7E,$7E
A550 DEFB $00,$FE,$FE,$06,$C6,$C6,$FE,$FE
A558 DEFB $00,$CE,$D8,$F0,$F0,$D8,$CC,$C6
A560 DEFB $00,$C0,$C0,$C0,$C0,$C6,$FE,$FE
A568 DEFB $00,$C6,$EE,$FE,$D6,$C6,$C6,$C6
A570 DEFB $00,$C6,$E6,$F6,$DE,$CE,$C6,$C6
A578 DEFB $00,$FE,$FE,$C6,$C6,$C6,$FE,$FE
A580 DEFB $00,$FE,$FE,$C6,$FE,$FE,$C0,$C0
A588 DEFB $00,$FE,$FE,$C6,$C6,$CE,$FE,$02
A590 DEFB $00,$FE,$FE,$C2,$FE,$FC,$CC,$C6
A598 DEFB $00,$FE,$FE,$C0,$FE,$02,$FE,$FE
A5A0 DEFB $00,$FE,$FE,$18,$18,$18,$18,$18
A5A8 DEFB $00,$C6,$C6,$C6,$C6,$C6,$FE,$FE
A5B0 DEFB $00,$C6,$C6,$C6,$C6,$6C,$38,$10
A5B8 DEFB $00,$C6,$C6,$C6,$D6,$FE,$EE,$C6
A5C0 DEFB $00,$86,$CC,$78,$38,$6C,$C6,$82
A5C8 DEFB $00,$C6,$C6,$FE,$FE,$18,$18,$18
A5D0 DEFB $00,$FE,$FE,$0C,$18,$30,$FE,$FE
A5D8: Current mask sprite data address (set by 8128 before drawing)
A5D8 DEFW $BDAE
A5DA DEFW $0000
A5DC: Table of Sprites, 201 records, 4 bytes each
Record format (read by 84ED/7E4F with the sprite number in L): record[0..1] = sprite data address (LE word); record[2] = height in 8px rows, top bit masked off before use ($7F) -- meaning of that bit not yet confirmed, may just be unused/reserved; record[3] = width in 8px columns, but bit 7 here is a live flip-flop flag: 7E4F XORs it in place (self-modifying table entry) on every call, toggling it between the two calls needed to draw a sprite's normal and mirrored/second-buffer image, then masks it off ($7F) to get the actual width.
A5DC DEFW $A9DE Sprite $00
A5DE DEFB $00,$00
A5E0 DEFW $A9DE Sprite $01
A5E2 DEFB $84,$03
A5E4 DEFW $AA3E Sprite $02
A5E6 DEFB $83,$04
A5E8 DEFW $AA9E Sprite $03
A5EA DEFB $83,$04
A5EC DEFW $AAFE Sprite $04
A5EE DEFB $83,$04
A5F0 DEFW $AB5E Sprite $05
A5F2 DEFB $83,$04
A5F4 DEFW $ABBE Sprite $06
A5F6 DEFB $00,$00
A5F8 DEFW $ABBE Sprite $07
A5FA DEFB $83,$04
A5FC DEFW $AC1E Sprite $08
A5FE DEFB $83,$04
A600 DEFW $AC7E Sprite $09
A602 DEFB $00,$00
A604 DEFW $AC7E Sprite $0A
A606 DEFB $83,$04
A608 DEFW $ACDE Sprite $0B
A60A DEFB $82,$04
A60C DEFW $AD1E Sprite $0C
A60E DEFB $82,$04
A610 DEFW $AD5E Sprite $0D
A612 DEFB $82,$04
A614 DEFW $AD9E Sprite $0E
A616 DEFB $82,$04
A618 DEFW $ADDE Sprite $0F
A61A DEFB $83,$03
A61C DEFW $AE26 Sprite $10
A61E DEFB $83,$03
A620 DEFW $AE6E Sprite $11
A622 DEFB $84,$03
A624 DEFW $AECE Sprite $12
A626 DEFB $84,$03
A628 DEFW $AF2E Sprite $13
A62A DEFB $84,$03
A62C DEFW $AF8E Sprite $14
A62E DEFB $83,$03
A630 DEFW $AFD6 Sprite $15
A632 DEFB $84,$03
A634 DEFW $B036 Sprite $16
A636 DEFB $83,$04
A638 DEFW $B096 Sprite $17
A63A DEFB $83,$04
A63C DEFW $B0F6 Sprite $18
A63E DEFB $83,$04
A640 DEFW $B156 Sprite $19
A642 DEFB $83,$04
A644 DEFW $B1B6 Sprite $1A
A646 DEFB $84,$04
A648 DEFW $B236 Sprite $1B
A64A DEFB $83,$04
A64C DEFW $B296 Sprite $1C
A64E DEFB $83,$02
A650 DEFW $B2C6 Sprite $1D
A652 DEFB $83,$03
A654 DEFW $B30E Sprite $1E
A656 DEFB $83,$04
A658 DEFW $B36E Sprite $1F
A65A DEFB $84,$04
A65C DEFW $B3EE Sprite $20
A65E DEFB $84,$04
A660 DEFW $B46E Sprite $21
A662 DEFB $84,$04
A664 DEFW $B4EE Sprite $22
A666 DEFB $84,$04
A668 DEFW $B56E Sprite $23
A66A DEFB $81,$02
A66C DEFW $B57E Sprite $24
A66E DEFB $82,$02
A670 DEFW $B59E Sprite $25
A672 DEFB $83,$02
A674 DEFW $B5CE Sprite $26
A676 DEFB $84,$02
A678 DEFW $B60E Sprite $27
A67A DEFB $84,$02
A67C DEFW $B64E Sprite $28
A67E DEFB $84,$02
A680 DEFW $B68E Sprite $29
A682 DEFB $84,$04
A684 DEFW $B70E Sprite $2A
A686 DEFB $84,$04
A688 DEFW $B78E Sprite $2B
A68A DEFB $84,$04
A68C DEFW $B80E Sprite $2C
A68E DEFB $84,$04
A690 DEFW $B88E Sprite $2D
A692 DEFB $00,$00
A694 DEFW $B5FE Sprite $2E
A696 DEFB $00,$00
A698 DEFW $B5FE Sprite $2F
A69A DEFB $00,$00
A69C DEFW $B5FE Sprite $30
A69E DEFB $00,$00
A6A0 DEFW $B5FE Sprite $31
A6A2 DEFB $00,$00
A6A4 DEFW $B5FE Sprite $32
A6A6 DEFB $00,$00
A6A8 DEFW $B5CE Sprite $33
A6AA DEFB $00,$00
A6AC DEFW $B5CE Sprite $34
A6AE DEFB $00,$00
A6B0 DEFW $B5CE Sprite $35
A6B2 DEFB $00,$00
A6B4 DEFW $B88E Sprite $36
A6B6 DEFB $83,$02
A6B8 DEFW $B8BE Sprite $37
A6BA DEFB $83,$02
A6BC DEFW $B8EE Sprite $38
A6BE DEFB $83,$02
A6C0 DEFW $B91E Sprite $39
A6C2 DEFB $83,$02
A6C4 DEFW $B94E Sprite $3A
A6C6 DEFB $83,$02
A6C8 DEFW $B97E Sprite $3B
A6CA DEFB $83,$02
A6CC DEFW $B9AE Sprite $3C
A6CE DEFB $83,$02
A6D0 DEFW $B9DE Sprite $3D
A6D2 DEFB $83,$02
A6D4 DEFW $BA0E Sprite $3E
A6D6 DEFB $83,$02
A6D8 DEFW $BA3E Sprite $3F
A6DA DEFB $83,$02
A6DC DEFW $BA6E Sprite $40
A6DE DEFB $83,$02
A6E0 DEFW $BA9E Sprite $41
A6E2 DEFB $83,$02
A6E4 DEFW $BACE Sprite $42
A6E6 DEFB $83,$02
A6E8 DEFW $BAFE Sprite $43
A6EA DEFB $83,$02
A6EC DEFW $BB2E Sprite $44
A6EE DEFB $84,$04
A6F0 DEFW $BBAE Sprite $45
A6F2 DEFB $84,$04
A6F4 DEFW $BC2E Sprite $46
A6F6 DEFB $84,$02
A6F8 DEFW $BC6E Sprite $47
A6FA DEFB $84,$02
A6FC DEFW $BCAE Sprite $48
A6FE DEFB $83,$04
A700 DEFW $BD0E Sprite $49
A702 DEFB $83,$04
A704 DEFW $BD6E Sprite $4A
A706 DEFB $82,$02
A708 DEFW $BD8E Sprite $4B
A70A DEFB $82,$02
A70C DEFW $BDAE Sprite $4C
A70E DEFB $82,$04
A710 DEFW $BDEE Sprite $4D
A712 DEFB $82,$04
A714 DEFW $BE2E Sprite $4E
A716 DEFB $84,$03
A718 DEFW $BE8E Sprite $4F
A71A DEFB $84,$03
A71C DEFW $BEEE Sprite $50
A71E DEFB $84,$03
A720 DEFW $BF4E Sprite $51
A722 DEFB $84,$03
A724 DEFW $BFAE Sprite $52
A726 DEFB $82,$04
A728 DEFW $BFEE Sprite $53
A72A DEFB $82,$04
A72C DEFW $C02E Sprite $54
A72E DEFB $84,$04
A730 DEFW $C0AE Sprite $55
A732 DEFB $84,$04
A734 DEFW $C12E Sprite $56
A736 DEFB $85,$02
A738 DEFW $C17E Sprite $57
A73A DEFB $85,$02
A73C DEFW $C1CE Sprite $58
A73E DEFB $82,$02
A740 DEFW $C1EE Sprite $59
A742 DEFB $82,$02
A744 DEFW $C20E Sprite $5A
A746 DEFB $83,$01
A748 DEFW $C226 Sprite $5B
A74A DEFB $83,$01
A74C DEFW $C23E Sprite $5C
A74E DEFB $83,$01
A750 DEFW $C256 Sprite $5D
A752 DEFB $83,$01
A754 DEFW $C26E Sprite $5E
A756 DEFB $82,$02
A758 DEFW $C28E Sprite $5F
A75A DEFB $82,$02
A75C DEFW $C2AE Sprite $60
A75E DEFB $82,$02
A760 DEFW $B796 Sprite $61
A762 DEFB $00,$00
A764 DEFW $C2CE Sprite $62
A766 DEFB $82,$02
A768 DEFW $C2EE Sprite $63
A76A DEFB $82,$02
A76C DEFW $C30E Sprite $64
A76E DEFB $82,$02
A770 DEFW $C32E Sprite $65
A772 DEFB $82,$02
A774 DEFW $C34E Sprite $66
A776 DEFB $82,$02
A778 DEFW $C36E Sprite $67
A77A DEFB $82,$02
A77C DEFW $C38E Sprite $68
A77E DEFB $81,$02
A780 DEFW $C39E Sprite $69
A782 DEFB $81,$02
A784 DEFW $C3AE Sprite $6A
A786 DEFB $84,$04
A788 DEFW $C42E Sprite $6B
A78A DEFB $84,$04
A78C DEFW $C4AE Sprite $6C
A78E DEFB $84,$04
A790 DEFW $C52E Sprite $6D
A792 DEFB $83,$02
A794 DEFW $C55E Sprite $6E
A796 DEFB $83,$02
A798 DEFW $C58E Sprite $6F
A79A DEFB $83,$02
A79C DEFW $C5BE Sprite $70
A79E DEFB $83,$02
A7A0 DEFW $C5EE Sprite $71
A7A2 DEFB $83,$02
A7A4 DEFW $C61E Sprite $72
A7A6 DEFB $83,$02
A7A8 DEFW $C64E Sprite $73
A7AA DEFB $83,$02
A7AC DEFW $C67E Sprite $74
A7AE DEFB $83,$02
A7B0 DEFW $C6AE Sprite $75
A7B2 DEFB $83,$02
A7B4 DEFW $C6DE Sprite $76
A7B6 DEFB $83,$02
A7B8 DEFW $C70E Sprite $77
A7BA DEFB $83,$02
A7BC DEFW $C73E Sprite $78
A7BE DEFB $83,$02
A7C0 DEFW $C76E Sprite $79
A7C2 DEFB $83,$02
A7C4 DEFW $C79E Sprite $7A
A7C6 DEFB $83,$02
A7C8 DEFW $C7CE Sprite $7B
A7CA DEFB $83,$02
A7CC DEFW $C7FE Sprite $7C
A7CE DEFB $83,$05
A7D0 DEFW $C876 Sprite $7D
A7D2 DEFB $8C,$05
A7D4 DEFW $CA56 Sprite $7E
A7D6 DEFB $8C,$06
A7D8 DEFW $CC96 Sprite $7F
A7DA DEFB $8A,$05
A7DC DEFW $CE26 Sprite $80
A7DE DEFB $94,$01
A7E0 DEFW $BE9E Sprite $81
A7E2 DEFB $00,$00
A7E4 DEFW $BE9E Sprite $82
A7E6 DEFB $00,$00
A7E8 DEFW $CEC6 Sprite $83
A7EA DEFB $84,$03
A7EC DEFW $CF26 Sprite $84
A7EE DEFB $83,$04
A7F0 DEFW $CF86 Sprite $85
A7F2 DEFB $83,$04
A7F4 DEFW $CFE6 Sprite $86
A7F6 DEFB $83,$04
A7F8 DEFW $D046 Sprite $87
A7FA DEFB $83,$04
A7FC DEFW $CBB6 Sprite $88
A7FE DEFB $00,$00
A800 DEFW $D0A6 Sprite $89
A802 DEFB $83,$04
A804 DEFW $D106 Sprite $8A
A806 DEFB $83,$04
A808 DEFW $C4F6 Sprite $8B
A80A DEFB $00,$00
A80C DEFW $D166 Sprite $8C
A80E DEFB $83,$04
A810 DEFW $D1C6 Sprite $8D
A812 DEFB $00,$00
A814 DEFW $CC76 Sprite $8E
A816 DEFB $00,$00
A818 DEFW $CC76 Sprite $8F
A81A DEFB $00,$00
A81C DEFW $CC76 Sprite $90
A81E DEFB $00,$00
A820 DEFW $D1C6 Sprite $91
A822 DEFB $83,$03
A824 DEFW $D20E Sprite $92
A826 DEFB $83,$03
A828 DEFW $D256 Sprite $93
A82A DEFB $84,$03
A82C DEFW $D2B6 Sprite $94
A82E DEFB $84,$03
A830 DEFW $D316 Sprite $95
A832 DEFB $84,$03
A834 DEFW $D376 Sprite $96
A836 DEFB $83,$03
A838 DEFW $D3BE Sprite $97
A83A DEFB $84,$03
A83C DEFW $D41E Sprite $98
A83E DEFB $83,$04
A840 DEFW $D47E Sprite $99
A842 DEFB $83,$04
A844 DEFW $D4DE Sprite $9A
A846 DEFB $83,$04
A848 DEFW $D53E Sprite $9B
A84A DEFB $83,$04
A84C DEFW $D59E Sprite $9C
A84E DEFB $84,$04
A850 DEFW $D61E Sprite $9D
A852 DEFB $83,$04
A854 DEFW $D67E Sprite $9E
A856 DEFB $83,$02
A858 DEFW $D6AE Sprite $9F
A85A DEFB $83,$03
A85C DEFW $D6F6 Sprite $A0
A85E DEFB $83,$04
A860 DEFW $D756 Sprite $A1
A862 DEFB $84,$04
A864 DEFW $D7D6 Sprite $A2
A866 DEFB $84,$04
A868 DEFW $D856 Sprite $A3
A86A DEFB $84,$04
A86C DEFW $D8D6 Sprite $A4
A86E DEFB $84,$04
A870 DEFW $D956 Sprite $A5
A872 DEFB $81,$02
A874 DEFW $D966 Sprite $A6
A876 DEFB $82,$02
A878 DEFW $D986 Sprite $A7
A87A DEFB $83,$02
A87C DEFW $D9B6 Sprite $A8
A87E DEFB $84,$02
A880 DEFW $D9F6 Sprite $A9
A882 DEFB $84,$02
A884 DEFW $DA36 Sprite $AA
A886 DEFB $84,$02
A888 DEFW $DA76 Sprite $AB
A88A DEFB $84,$04
A88C DEFW $DAF6 Sprite $AC
A88E DEFB $84,$04
A890 DEFW $DB76 Sprite $AD
A892 DEFB $84,$04
A894 DEFW $DBF6 Sprite $AE
A896 DEFB $84,$04
A898 DEFW $DCB6 Sprite $AF
A89A DEFB $00,$00
A89C DEFW $CD76 Sprite $B0
A89E DEFB $00,$00
A8A0 DEFW $DC76 Sprite $B1
A8A2 DEFB $83,$01
A8A4 DEFW $DC8E Sprite $B2
A8A6 DEFB $83,$01
A8A8 DEFW $DCA6 Sprite $B3
A8AA DEFB $83,$01
A8AC DEFW $DCBE Sprite $B4
A8AE DEFB $83,$01
A8B0 DEFW $DCD6 Sprite $B5
A8B2 DEFB $81,$01
A8B4 DEFW $DCDE Sprite $B6
A8B6 DEFB $81,$01
A8B8 DEFW $DCE6 Sprite $B7
A8BA DEFB $81,$01
A8BC DEFW $DCEE Sprite $B8
A8BE DEFB $81,$01
A8C0 DEFW $DCF6 Sprite $B9
A8C2 DEFB $81,$01
A8C4 DEFW $DCFE Sprite $BA
A8C6 DEFB $84,$04
A8C8 DEFW $DD7E Sprite $BB
A8CA DEFB $84,$04
A8CC DEFW $DDFE Sprite $BC
A8CE DEFB $82,$02
A8D0 DEFW $DE1E Sprite $BD
A8D2 DEFB $82,$02
A8D4 DEFW $DE3E Sprite $BE
A8D6 DEFB $82,$02
A8D8 DEFW $DE5E Sprite $BF
A8DA DEFB $82,$02
A8DC DEFW $DE7E Sprite $C0
A8DE DEFB $82,$02
A8E0 DEFW $DE9E Sprite $C1
A8E2 DEFB $82,$02
A8E4 DEFW $DEBE Sprite $C2
A8E6 DEFB $83,$02
A8E8 DEFW $DEEE Sprite $C3
A8EA DEFB $82,$02
A8EC DEFW $DF0E Sprite $C4
A8EE DEFB $82,$02
A8F0 DEFW $DF2E Sprite $C5
A8F2 DEFB $82,$0B
A8F4 DEFW $DFDE Sprite $C6
A8F6 DEFB $00,$00
A8F8 DEFW $DFDE Sprite $C7
A8FA DEFB $84,$04
A8FC DEFW $E05E Sprite $C8
A8FE DEFB $84,$0B
A900: Dynamic object pool (creatures, bubble sources, snakes, whirlpools, plugs -- anything not baked into the static room grid; see 612C)
Records allocated/freed via a linked list managed by 84AE (free-list head at $618B; the free list can extend outside this pool, e.g. into scratch at $5B00). Record layout (24 bytes, offsets from record start): +0/+1 = link to the next object record in the active object list (head at 610E; the list ends via the fixed records at 8DB6 -- the player record uses this same layout); +2 = room number the object belongs to; +3/+4 = per-object behaviour-handler function pointer, copied by 84AE from the 2 bytes embedded after the spawner's CALL; +5/+6 = Y/X position; +8 = current sprite number; +5..+23 initially a fixed 19-byte default state block copied from $5C92; +7=$18 and +0xA=$06 (constants set by 8EA7-style spawn routines); +9 = triggering grid value (e.g. $66), cleared to 0 by 9A60; +0xB and +0xE = a duplicated "extra" byte from the template; +0xF = animation phase counter (used by 99D5); +0x14 = a second "extra" byte. The exact meaning of the two "extra" bytes (position? direction?) is not yet confirmed.
A900 DEFB $B6,$8D,$02,$7C,$95,$14,$14,$18
A908 DEFB $68,$66,$06,$23,$80,$00,$22,$01
A910 DEFB $11,$11,$16,$16,$58,$03,$00,$08
A918 DEFB $00,$A9,$02,$2D,$95,$34,$34,$18
A920 DEFB $4C,$00,$06,$00,$C0,$00,$00,$01
A928 DEFB $31,$31,$36,$36
A92C: Data block at A92C
A92C DEFW $0300,$0800,$A948,$0000,$A9DE,$0000,$A9DE,$0000
A93C DEFW $A9DE,$0000,$A9DE,$0000,$A9DE,$0000,$A960,$0000
A94C DEFW $A9DE,$0000,$A9DE,$0000,$A9DE,$0000,$A9DE,$0000
A95C DEFW $A9DE,$0000,$A978,$0000,$A9DE,$0000,$A9DE,$0000
A96C DEFW $A9DE,$0000,$A9DE,$0000,$A9DE,$0000,$A990,$0000
A97C DEFW $A9DE,$0000,$A9DE,$0000,$A9DE,$0000,$A9DE,$0000
A98C DEFW $A9DE,$0000,$A9A8,$0000,$A9DE,$0000,$A9DE,$0000
A99C DEFW $A9DE,$0000,$A9DE,$0000,$A9DE,$0000,$5B00,$0000
A9AC DEFW $A9DE,$0000,$A9DE,$0000,$A9DE,$0000,$D5E6,$0000
A9BC DEFW $D5E6,$0000,$D6FE,$0000,$D6FE,$0000,$D906,$0000
A9CC DEFW $DBD6,$0000,$DDDE,$0000,$E046,$0000,$D9FE,$0000
A9DC DEFW $37E0
A9DE: Sprite, 24x32 pixels. Player sitting
A9DE DEFB $00,$00,$00,$00,$3F,$00,$00,$7F sprite-a9de
A9E6 DEFB $80,$00,$E0,$C0,$00,$DF,$60,$01
A9EE DEFB $A0,$A0,$01,$CA,$60,$01,$DB,$60
A9F6 DEFB $01,$CA,$60,$00,$E0,$E0,$03,$7F
A9FE DEFB $C0,$07,$B1,$80,$0F,$D5,$00,$0F
AA06 DEFB $DB,$40,$0D,$C4,$C0,$1F,$EF,$30
AA0E DEFB $1D,$E1,$78,$1E,$DE,$E8,$3E,$FC
AA16 DEFB $D8,$3F,$3E,$68,$3F,$81,$30,$3F
AA1E DEFB $FB,$00,$3E,$FD,$80,$1E,$39,$86
AA26 DEFB $0C,$F3,$1E,$03,$E7,$FE,$07,$83
AA2E DEFB $E6,$07,$E1,$FE,$03,$F8,$FC,$01
AA36 DEFB $DF,$10,$01,$E7,$00,$00,$FE,$00
AA3E: Sprite, 32x24 pixels. Player
AA3E DEFB $00,$00,$00,$00,$00,$00,$00,$00 sprite-aa3e
AA46 DEFB $00,$07,$00,$00,$00,$07,$80,$00
AA4E DEFB $01,$86,$C0,$00,$03,$C7,$60,$00
AA56 DEFB $07,$E4,$F0,$00,$1E,$E3,$EF,$C0
AA5E DEFB $7F,$77,$DF,$E0,$7B,$2F,$B8,$30
AA66 DEFB $76,$0F,$37,$D8,$6E,$1F,$68,$28
AA6E DEFB $3C,$1F,$72,$98,$1C,$07,$76,$D8
AA76 DEFB $08,$1F,$70,$18,$00,$3F,$98,$30
AA7E DEFB $00,$3C,$CF,$E8,$00,$78,$0C,$5C
AA86 DEFB $00,$78,$05,$4E,$00,$60,$06,$DA
AA8E DEFB $00,$78,$00,$00,$00,$3E,$00,$00
AA96 DEFB $00,$3A,$00,$00,$00,$00,$00,$00
AA9E: Sprite, 32x24 pixels. Player
AA9E DEFB $00,$00,$00,$00,$00,$01,$80,$00 sprite-aa9e
AAA6 DEFB $00,$03,$80,$00,$00,$02,$C0,$00
AAAE DEFB $00,$07,$40,$00,$00,$07,$60,$00
AAB6 DEFB $00,$C4,$F0,$00,$01,$F3,$EF,$C0
AABE DEFB $07,$77,$DF,$E0,$0F,$AF,$B8,$30
AAC6 DEFB $3F,$8F,$37,$D8,$7F,$1F,$68,$28
AACE DEFB $7B,$17,$72,$98,$76,$0F,$76,$D8
AAD6 DEFB $6E,$3F,$70,$18,$3C,$7F,$B8,$30
AADE DEFB $1C,$F7,$CF,$E4,$09,$E0,$EC,$6C
AAE6 DEFB $01,$80,$05,$5C,$01,$E0,$06,$CC
AAEE DEFB $00,$F8,$00,$0E,$00,$E8,$00,$1E
AAF6 DEFB $00,$00,$00,$1A,$00,$00,$00,$00
AAFE: Sprite, 32x24 pixels. Player
AAFE DEFB $00,$00,$00,$00,$01,$80,$00,$00 sprite-aafe
AB06 DEFB $03,$C0,$00,$00,$07,$C1,$80,$00
AB0E DEFB $7F,$E3,$C0,$00,$7D,$62,$00,$00
AB16 DEFB $7B,$70,$F0,$00,$37,$73,$EF,$C0
AB1E DEFB $1E,$37,$DF,$E0,$0E,$2F,$B8,$30
AB26 DEFB $04,$0F,$B7,$D8,$00,$1F,$68,$28
AB2E DEFB $00,$1F,$70,$18,$00,$0F,$76,$D8
AB36 DEFB $00,$37,$70,$18,$00,$3F,$B8,$38
AB3E DEFB $00,$3F,$DF,$F4,$00,$18,$EC,$6C
AB46 DEFB $00,$1E,$05,$40,$00,$0F,$06,$C0
AB4E DEFB $00,$07,$80,$00,$00,$07,$C0,$00
AB56 DEFB $00,$03,$40,$00,$00,$00,$00,$00
AB5E: Sprite, 32x24 pixels. Player
AB5E DEFB $00,$00,$00,$00,$01,$81,$80,$00 sprite-ab5e
AB66 DEFB $03,$C3,$80,$00,$07,$C7,$C0,$00
AB6E DEFB $7F,$E6,$C0,$00,$7D,$6F,$60,$00
AB76 DEFB $7B,$74,$60,$00,$37,$73,$9C,$00
AB7E DEFB $1E,$37,$F0,$00,$0E,$2F,$EF,$C0
AB86 DEFB $04,$0F,$DF,$E0,$00,$1F,$B8,$30
AB8E DEFB $00,$1F,$B7,$D8,$00,$0F,$68,$28
AB96 DEFB $00,$03,$70,$18,$00,$07,$76,$D8
AB9E DEFB $00,$0F,$72,$98,$00,$0F,$B8,$38
ABA6 DEFB $00,$0F,$1F,$F4,$00,$06,$0C,$6C
ABAE DEFB $00,$07,$C5,$58,$00,$03,$F6,$DE
ABB6 DEFB $00,$00,$D0,$16,$00,$00,$00,$00
ABBE: Sprite, 32x24 pixels. Player laying on back, hands up
ABBE DEFB $00,$00,$00,$00,$00,$07,$C0,$00 sprite-abbe
ABC6 DEFB $00,$1F,$F0,$00,$34,$38,$30,$50
ABCE DEFB $3C,$36,$D0,$F0,$1E,$74,$58,$E0
ABD6 DEFB $0E,$72,$99,$C0,$0F,$78,$3B,$80
ABDE DEFB $07,$9F,$F7,$80,$03,$ED,$61,$3C
ABE6 DEFB $01,$EC,$4E,$76,$01,$F6,$BB,$76
ABEE DEFB $00,$F9,$3B,$76,$00,$BF,$BB,$76
ABF6 DEFB $00,$7F,$BB,$7E,$00,$7F,$9F,$3E
ABFE DEFB $00,$3F,$DF,$3C,$00,$3E,$1E,$BC
AC06 DEFB $00,$25,$4E,$DC,$00,$3D,$EE,$D8
AC0E DEFB $00,$1F,$EC,$18,$00,$1F,$EC,$00
AC16 DEFB $00,$07,$C0,$00,$00,$00,$00,$00
AC1E: Sprite, 32x24 pixels. Player laying on back, dead
AC1E DEFB $00,$00,$00,$00,$03,$80,$00,$78 sprite-ac1e
AC26 DEFB $0E,$E0,$00,$EC,$1C,$30,$00,$EC
AC2E DEFB $3B,$98,$00,$EC,$37,$1B,$80,$EC
AC36 DEFB $32,$3D,$E0,$7C,$38,$E3,$B1,$78
AC3E DEFB $3F,$DB,$D7,$78,$11,$C7,$FF,$38
AC46 DEFB $0E,$3F,$8F,$B8,$1F,$FE,$77,$B8
AC4E DEFB $3F,$FD,$DA,$30,$3F,$FD,$D8,$00
AC56 DEFB $7D,$FD,$D8,$00,$70,$ED,$D8,$00
AC5E DEFB $7C,$2E,$F8,$00,$3C,$0E,$F8,$00
AC66 DEFB $1F,$06,$F0,$00,$1F,$02,$70,$00
AC6E DEFB $0D,$01,$70,$00,$00,$00,$70,$00
AC76 DEFB $00,$00,$60,$00,$00,$00,$00,$00
AC7E: Sprite, 32x24 pixels. Player
AC7E DEFB $00,$00,$00,$00,$00,$00,$00,$00 sprite-ac7e
AC86 DEFB $00,$07,$00,$00,$00,$07,$80,$00
AC8E DEFB $01,$86,$C0,$00,$03,$C7,$60,$00
AC96 DEFB $07,$E4,$F0,$00,$1E,$E3,$FC,$F0
AC9E DEFB $7F,$77,$FB,$FC,$7B,$2F,$F7,$04
ACA6 DEFB $76,$0F,$EE,$FE,$6E,$1F,$ED,$06
ACAE DEFB $3C,$1F,$EF,$2A,$1C,$07,$EE,$6A
ACB6 DEFB $08,$1F,$F6,$02,$00,$3F,$FB,$04
ACBE DEFB $00,$3C,$FB,$FC,$00,$78,$01,$8A
ACC6 DEFB $00,$78,$00,$CA,$00,$60,$00,$56
ACCE DEFB $00,$78,$00,$00,$00,$3E,$00,$00
ACD6 DEFB $00,$3A,$00,$00,$00,$00,$00,$00
ACDE: Sprite, 32x16 pixels. Player shadow
ACDE DEFB $00,$00,$00,$00,$00,$00,$00,$00 sprite-acde
ACE6 DEFB $00,$15,$00,$00,$00,$2A,$80,$00
ACEE DEFB $01,$45,$40,$00,$02,$A2,$80,$00
ACF6 DEFB $05,$55,$50,$00,$02,$AA,$AA,$80
ACFE DEFB $01,$55,$55,$40,$00,$0A,$AA,$A0
AD06 DEFB $00,$00,$55,$40,$00,$00,$AA,$80
AD0E DEFB $00,$00,$54,$00,$00,$00,$00,$00
AD16 DEFB $00,$00,$00,$00,$00,$00,$00,$00
AD1E: Sprite, 32x16 pixels. Player shadow
AD1E DEFB $00,$00,$00,$00,$00,$00,$00,$00 sprite-ad1e
AD26 DEFB $00,$10,$00,$00,$02,$2A,$80,$00
AD2E DEFB $05,$55,$40,$00,$0A,$8A,$80,$00
AD36 DEFB $05,$41,$50,$00,$02,$AA,$AA,$80
AD3E DEFB $01,$55,$55,$40,$00,$0A,$AA,$80
AD46 DEFB $00,$00,$55,$00,$00,$00,$AA,$80
AD4E DEFB $00,$00,$54,$00,$00,$00,$2A,$00
AD56 DEFB $00,$00,$00,$00,$00,$00,$00,$00
AD5E: Sprite, 32x16 pixels. Player shadow
AD5E DEFB $00,$00,$00,$00,$00,$00,$00,$00 sprite-ad5e
AD66 DEFB $00,$00,$2A,$00,$00,$00,$55,$40
AD6E DEFB $00,$00,$2A,$A0,$00,$05,$55,$50
AD76 DEFB $00,$AA,$AA,$A0,$01,$55,$55,$40
AD7E DEFB $02,$AA,$A8,$00,$01,$51,$40,$00
AD86 DEFB $00,$A2,$A0,$00,$00,$15,$40,$00
AD8E DEFB $00,$0A,$80,$00,$00,$00,$00,$00
AD96 DEFB $00,$00,$00,$00,$00,$00,$00,$00
AD9E: Sprite, 32x16 pixels. Player shadow
AD9E DEFB $00,$00,$00,$00,$00,$00,$15,$00 sprite-ad9e
ADA6 DEFB $00,$00,$2A,$00,$00,$00,$55,$40
ADAE DEFB $00,$00,$2A,$80,$00,$05,$55,$40
ADB6 DEFB $00,$AA,$AA,$A0,$01,$55,$55,$40
ADBE DEFB $02,$A0,$A8,$00,$05,$45,$40,$00
ADC6 DEFB $02,$AA,$A0,$00,$01,$15,$40,$00
ADCE DEFB $00,$08,$00,$00,$00,$00,$00,$00
ADD6 DEFB $00,$00,$00,$00,$00,$00,$00,$00
ADDE: Sprite, 24x24 pixels. Fish cloud
ADDE DEFB $00,$00,$00,$60,$01,$80,$5C,$01 sprite-adde
ADE6 DEFB $B8,$7E,$C1,$FC,$7F,$5C,$FE,$3B
ADEE DEFB $7E,$F6,$3F,$7B,$7E,$0C,$7F,$1C
ADF6 DEFB $06,$39,$00,$00,$06,$70,$18,$07
ADFE DEFB $F8,$19,$C7,$FC,$1F,$E1,$EC,$0F
AE06 DEFB $B1,$FC,$07,$F0,$F0,$43,$20,$00
AE0E DEFB $6E,$DC,$B8,$7F,$7E,$FC,$3F,$BE
AE16 DEFB $7E,$3D,$BB,$76,$1F,$3F,$7E,$06
AE1E DEFB $0E,$1C,$03,$00,$00,$00,$00,$00
AE26: Sprite, 24x24 pixels. Fish cloud
AE26 DEFB $00,$00,$00,$30,$00,$C0,$36,$00 sprite-ae26
AE2E DEFB $B8,$1F,$60,$FC,$1F,$9C,$FE,$1D
AE36 DEFB $BE,$F6,$1F,$BB,$7E,$0E,$3F,$18
AE3E DEFB $03,$3C,$0C,$18,$0B,$70,$1B,$C7
AE46 DEFB $F8,$1F,$E3,$FC,$0F,$73,$EC,$07
AE4E DEFB $F1,$FC,$01,$E0,$E0,$60,$00,$38
AE56 DEFB $6E,$EC,$80,$7F,$7E,$B8,$7F,$BE
AE5E DEFB $FC,$3D,$BB,$7E,$1F,$3F,$76,$06
AE66 DEFB $0C,$7E,$00,$06,$18,$00,$00,$00
AE6E: Sprite, 24x32 pixels. Jellyfish
AE6E DEFB $00,$00,$00,$00,$01,$E0,$00,$0F sprite-ae6e
AE76 DEFB $F8,$00,$1F,$FC,$00,$3F,$5C,$00
AE7E DEFB $7E,$BE,$00,$77,$5E,$00,$EB,$AE
AE86 DEFB $00,$D7,$DE,$01,$FE,$FE,$02,$F5
AE8E DEFB $7C,$0E,$EA,$BC,$19,$75,$58,$33
AE96 DEFB $7A,$B8,$26,$B5,$78,$6D,$DA,$B0
AE9E DEFB $5B,$0F,$F0,$5A,$75,$E0,$51,$E6
AEA6 DEFB $00,$37,$1D,$80,$36,$3B,$00,$66
AEAE DEFB $E3,$00,$6D,$C6,$00,$6B,$1C,$00
AEB6 DEFB $66,$38,$00,$6D,$60,$00,$1A,$C0
AEBE DEFB $00,$19,$80,$00,$33,$40,$00,$26
AEC6 DEFB $F0,$00,$06,$30,$00,$00,$00,$00
AECE: Sprite, 24x32 pixels. Jellyfish
AECE DEFB $00,$00,$00,$00,$00,$00,$00,$1F sprite-aece
AED6 DEFB $00,$01,$FF,$C0,$03,$F5,$70,$03
AEDE DEFB $FA,$78,$43,$F5,$58,$60,$EA,$AC
AEE6 DEFB $73,$36,$5C,$3E,$DF,$BC,$1C,$C6
AEEE DEFB $7E,$01,$BB,$BE,$03,$6D,$5E,$03
AEF6 DEFB $4E,$FE,$06,$3C,$3E,$06,$E3,$BE
AEFE DEFB $0C,$C6,$5C,$18,$DC,$40,$79,$B8
AF06 DEFB $C0,$71,$63,$80,$00,$C6,$00,$61
AF0E DEFB $AC,$00,$7B,$58,$00,$3B,$30,$00
AF16 DEFB $06,$E0,$00,$04,$00,$00,$00,$00
AF1E DEFB $00,$00,$00,$00,$00,$00,$00,$00
AF26 DEFB $00,$00,$00,$00,$00,$00,$00,$00
AF2E: Sprite, 24x32 pixels. Jellyfish
AF2E DEFB $00,$00,$00,$07,$F0,$00,$1F,$BE sprite-af2e
AF36 DEFB $00,$1F,$DF,$C0,$3F,$AB,$E0,$3F
AF3E DEFB $55,$F0,$0F,$FA,$B0,$37,$F5,$58
AF46 DEFB $23,$FA,$B8,$4D,$B9,$5C,$69,$FE
AF4E DEFB $AC,$60,$FF,$D4,$3F,$7F,$AC,$5E
AF56 DEFB $3F,$D4,$60,$CF,$FE,$4F,$C7,$EE
AF5E DEFB $1F,$3B,$D6,$39,$F9,$FE,$33,$C0
AF66 DEFB $6E,$36,$1F,$7C,$76,$3E,$38,$66
AF6E DEFB $E0,$40,$41,$C0,$60,$47,$18,$E0
AF76 DEFB $0E,$30,$C0,$38,$33,$C0,$30,$1F
AF7E DEFB $00,$00,$00,$00,$00,$00,$00,$00
AF86 DEFB $00,$00,$00,$00,$00,$00,$00,$00
AF8E: Sprite, 24x24 pixels. Fish cloud
AF8E DEFB $00,$00,$00,$00,$0C,$00,$06,$1E sprite-af8e
AF96 DEFB $1C,$0F,$3F,$3E,$5D,$BA,$B4,$7F
AF9E DEFB $BE,$FE,$7F,$3E,$FC,$6C,$DC,$B8
AFA6 DEFB $43,$E0,$00,$17,$B0,$70,$1F,$E4
AFAE DEFB $FC,$1F,$E5,$EC,$0F,$C7,$FC,$03
AFB6 DEFB $07,$F8,$00,$06,$70,$00,$00,$00
AFBE DEFB $0C,$8E,$1C,$1E,$BB,$3E,$5A,$BE
AFC6 DEFB $34,$5E,$FD,$BE,$7C,$FD,$FC,$7C
AFCE DEFB $71,$F8,$60,$00,$C0,$00,$00,$00
AFD6: Sprite, 24x32 pixels. Jellyfish
AFD6 DEFB $00,$00,$00,$00,$0F,$00,$00,$3F sprite-afd6
AFDE DEFB $C0,$00,$7F,$20,$00,$7E,$20,$00
AFE6 DEFB $FE,$C0,$00,$FE,$20,$00,$7F,$30
AFEE DEFB $07,$0F,$90,$0F,$76,$F0,$1E,$F6
AFF6 DEFB $70,$1D,$F7,$60,$3D,$F7,$18,$3B
AFFE DEFB $EF,$30,$3B,$DE,$F8,$13,$B7,$F8
B006 DEFB $0C,$6F,$C0,$1F,$EF,$30,$1F,$EE
B00E DEFB $78,$3F,$F1,$F8,$3F,$FF,$B0,$3F
B016 DEFB $FF,$70,$3D,$FE,$F0,$1E,$F9,$E0
B01E DEFB $07,$03,$C0,$00,$F3,$80,$03,$E7
B026 DEFB $80,$07,$EF,$C6,$07,$EF,$FE,$03
B02E DEFB $AF,$C6,$00,$E3,$FE,$00,$00,$3C
B036: Sprite, 32x24 pixels. Player
B036 DEFB $00,$00,$00,$00,$00,$00,$03,$C0 sprite-b036
B03E DEFB $00,$00,$0F,$F0,$00,$00,$1F,$F0
B046 DEFB $00,$03,$C3,$F8,$00,$0E,$3D,$F8
B04E DEFB $00,$1D,$FD,$F8,$00,$1D,$FC,$70
B056 DEFB $00,$02,$F3,$B0,$0D,$1F,$0F,$C0
B05E DEFB $1F,$63,$FF,$C0,$1F,$DC,$7F,$E0
B066 DEFB $1D,$DF,$FF,$E0,$3C,$3F,$FE,$E0
B06E DEFB $34,$3C,$F1,$DC,$36,$2C,$00,$FC
B076 DEFB $6E,$2C,$00,$FC,$6E,$6E,$00,$70
B07E DEFB $7E,$76,$00,$00,$0E,$7E,$00,$00
B086 DEFB $00,$1E,$00,$00,$00,$00,$00,$00
B08E DEFB $00,$00,$00,$00,$00,$00,$00,$00
B096: Sprite, 32x24 pixels. Player
B096 DEFB $00,$00,$00,$00,$00,$00,$03,$C0 sprite-b096
B09E DEFB $00,$00,$0F,$F0,$00,$00,$1F,$F0
B0A6 DEFB $00,$03,$C3,$F8,$00,$0E,$3D,$F8
B0AE DEFB $00,$1D,$FD,$F8,$0C,$1D,$FC,$70
B0B6 DEFB $1F,$1D,$F3,$B0,$1F,$C2,$EF,$C0
B0BE DEFB $1D,$FF,$1F,$C0,$3C,$FF,$FF,$E6
B0C6 DEFB $34,$63,$FF,$EE,$36,$1C,$7E,$EE
B0CE DEFB $6E,$1F,$FE,$FE,$6E,$3F,$F0,$FC
B0D6 DEFB $7E,$3C,$C0,$78,$0E,$2C,$00,$10
B0DE DEFB $00,$2C,$00,$00,$00,$6E,$00,$00
B0E6 DEFB $00,$76,$00,$00,$00,$7E,$00,$00
B0EE DEFB $00,$1E,$00,$00,$00,$00,$00,$00
B0F6: Sprite, 32x24 pixels. Player
B0F6 DEFB $00,$00,$00,$00,$00,$00,$03,$C0 sprite-b0f6
B0FE DEFB $00,$00,$0F,$F0,$00,$00,$1F,$F0
B106 DEFB $00,$03,$C3,$F8,$00,$0E,$3D,$F8
B10E DEFB $00,$0D,$FD,$F8,$00,$31,$FC,$70
B116 DEFB $00,$38,$F3,$B0,$00,$3F,$0F,$C0
B11E DEFB $00,$77,$FF,$C0,$01,$7B,$FF,$C0
B126 DEFB $0F,$5B,$7B,$C0,$1E,$58,$FB,$C0
B12E DEFB $1E,$DC,$03,$C0,$1C,$EC,$01,$C0
B136 DEFB $34,$FC,$01,$E0,$34,$3C,$00,$E0
B13E DEFB $36,$00,$00,$F8,$6E,$00,$00,$F8
B146 DEFB $6E,$00,$00,$78,$7E,$00,$00,$38
B14E DEFB $0E,$00,$00,$00,$00,$00,$00,$00
B156: Sprite, 32x24 pixels. Player
B156 DEFB $00,$00,$00,$00,$00,$00,$00,$00 sprite-b156
B15E DEFB $00,$00,$00,$00,$00,$00,$01,$F0
B166 DEFB $0C,$03,$CB,$F8,$1F,$0E,$3D,$E4
B16E DEFB $1F,$9D,$FD,$C4,$1D,$DD,$FD,$DA
B176 DEFB $3C,$E2,$F3,$CA,$34,$7F,$0F,$62
B17E DEFB $36,$23,$FF,$B2,$6E,$1C,$7F,$DE
B186 DEFB $6E,$1F,$FF,$CC,$7E,$3F,$FE,$EC
B18E DEFB $0E,$3C,$F1,$E0,$00,$2C,$05,$E0
B196 DEFB $00,$2C,$1C,$E0,$00,$6E,$1C,$E0
B19E DEFB $00,$76,$1C,$E0,$00,$7E,$1E,$70
B1A6 DEFB $00,$1E,$0A,$7C,$00,$00,$00,$3C
B1AE DEFB $00,$00,$00,$34,$00,$00,$00,$00
B1B6: Sprite, 32x32 pixels. Explosion
B1B6 DEFB $00,$00,$00,$00,$00,$00,$BC,$00 sprite-b1b6
B1BE DEFB $00,$06,$7E,$00,$00,$15,$FF,$00
B1C6 DEFB $01,$DB,$EB,$00,$01,$75,$D5,$00
B1CE DEFB $06,$AB,$AB,$F0,$0D,$55,$D5,$58
B1D6 DEFB $1A,$AF,$AA,$AC,$35,$7F,$D5,$54
B1DE DEFB $7A,$FC,$2C,$AC,$55,$FB,$DF,$54
B1E6 DEFB $7A,$FF,$EF,$A8,$1D,$FF,$F7,$B8
B1EE DEFB $0F,$FF,$F7,$BC,$1D,$FF,$FB,$DC
B1F6 DEFB $3E,$FF,$FB,$DE,$3E,$FF,$FB,$DE
B1FE DEFB $7E,$FF,$F3,$BE,$7D,$EF,$EF,$BE
B206 DEFB $7D,$EF,$F7,$7E,$7B,$F7,$F4,$FE
B20E DEFB $1B,$FB,$8D,$3C,$29,$FC,$7A,$8C
B216 DEFB $75,$FF,$D5,$50,$6A,$FA,$AB,$B0
B21E DEFB $2A,$FD,$56,$D0,$35,$7B,$B9,$20
B226 DEFB $1A,$7F,$56,$C0,$0F,$3E,$78,$00
B22E DEFB $00,$1D,$80,$00,$00,$00,$00,$00
B236: Sprite, 32x24 pixels. Explosion
B236 DEFB $00,$00,$00,$00,$00,$01,$C0,$00 sprite-b236
B23E DEFB $00,$0B,$B7,$00,$00,$1D,$5D,$00
B246 DEFB $06,$3F,$AA,$C0,$0F,$7E,$3D,$60
B24E DEFB $1F,$B9,$FF,$B0,$1F,$7B,$FF,$F0
B256 DEFB $3F,$7B,$FF,$F0,$7F,$7B,$F7,$60
B25E DEFB $7F,$FD,$F7,$80,$7F,$BE,$2F,$C0
B266 DEFB $7F,$DF,$DF,$C0,$7F,$FF,$FF,$D8
B26E DEFB $7D,$5F,$BF,$BC,$3E,$AE,$BF,$2C
B276 DEFB $05,$55,$4E,$5C,$06,$EA,$B1,$AC
B27E DEFB $05,$B5,$5E,$A8,$02,$4F,$BF,$58
B286 DEFB $01,$B5,$FE,$B0,$00,$1E,$FB,$E0
B28E DEFB $00,$01,$70,$00,$00,$00,$00,$00
B296: Sprite, 16x24 pixels. Explosion small
B296 DEFB $00,$00,$03,$B0,$07,$E8,$0F,$FC sprite-b296
B29E DEFB $0F,$7C,$02,$48,$32,$A8,$2D,$76
B2A6 DEFB $51,$FA,$6E,$F6,$3F,$EE,$27,$FC
B2AE DEFB $6F,$A8,$75,$48,$6E,$A4,$3D,$4C
B2B6 DEFB $12,$98,$07,$70,$06,$38,$0F,$BC
B2BE DEFB $07,$FC,$07,$78,$00,$F0,$00,$00
B2C6: Sprite, 24x24 pixels. Fish cloud
B2C6 DEFB $00,$00,$00,$00,$18,$00,$00,$3C sprite-b2c6
B2CE DEFB $38,$06,$76,$6C,$0F,$7D,$78,$1D
B2D6 DEFB $7D,$FC,$7F,$7D,$F8,$7F,$39,$70
B2DE DEFB $6C,$00,$00,$43,$80,$E0,$17,$45
B2E6 DEFB $C8,$17,$87,$F0,$1F,$C7,$F8,$0F
B2EE DEFB $87,$70,$03,$04,$60,$0C,$00,$18
B2F6 DEFB $1F,$00,$3E,$1A,$8E,$3A,$5E,$BB
B2FE DEFB $7E,$7E,$BE,$7C,$7C,$FE,$7C,$60
B306 DEFB $FC,$60,$00,$70,$00,$00,$00,$00
B30E: Sprite, 32x24 pixels. Player
B30E DEFB $00,$00,$00,$00,$00,$00,$01,$E0 sprite-b30e
B316 DEFB $00,$00,$07,$F8,$00,$00,$0F,$E4
B31E DEFB $00,$03,$C3,$C4,$00,$0E,$3D,$D8
B326 DEFB $00,$1D,$FD,$C4,$00,$1D,$FC,$66
B32E DEFB $00,$02,$F3,$B2,$0C,$1F,$0F,$DE
B336 DEFB $1F,$63,$FF,$CE,$1F,$DC,$7F,$EC
B33E DEFB $1D,$DF,$FF,$E0,$3C,$3F,$FE,$E0
B346 DEFB $34,$3C,$F1,$DC,$36,$2C,$00,$FC
B34E DEFB $6E,$2C,$00,$FC,$6E,$6E,$00,$70
B356 DEFB $7E,$76,$00,$00,$0E,$7E,$00,$00
B35E DEFB $00,$1E,$00,$00,$00,$00,$00,$00
B366 DEFB $00,$00,$00,$00,$00,$00,$00,$00
B36E: Sprite, 32x32 pixels. Fish
B36E DEFB $00,$00,$00,$00,$30,$03,$F0,$00 sprite-b36e
B376 DEFB $78,$1E,$9C,$00,$78,$73,$E7,$00
B37E DEFB $3C,$D5,$55,$C0,$3E,$FF,$FF,$60
B386 DEFB $1D,$AA,$EA,$B0,$3D,$FF,$FF,$70
B38E DEFB $1B,$57,$75,$58,$3A,$BD,$DF,$F8
B396 DEFB $3A,$2E,$BA,$BC,$1B,$FA,$1B,$F6
B39E DEFB $3E,$5C,$1D,$52,$3F,$F8,$CD,$FA
B3A6 DEFB $1E,$B9,$0E,$FA,$1F,$F9,$05,$B2
B3AE DEFB $1F,$58,$8D,$FA,$0D,$EC,$0F,$0C
B3B6 DEFB $1F,$AE,$3C,$70,$1D,$F7,$FB,$FC
B3BE DEFB $1E,$57,$D7,$FE,$35,$FE,$EF,$FE
B3C6 DEFB $3D,$2B,$AF,$6C,$3D,$FF,$DE,$4C
B3CE DEFB $38,$B5,$5C,$00,$30,$7F,$D9,$F0
B3D6 DEFB $30,$FA,$8F,$F8,$11,$FB,$EF,$F8
B3DE DEFB $01,$75,$47,$10,$00,$F7,$F0,$E0
B3E6 DEFB $00,$E0,$7F,$00,$00,$00,$00,$00
B3EE: Sprite, 32x32 pixels. Fish
B3EE DEFB $00,$00,$00,$00,$06,$07,$E0,$00 sprite-b3ee
B3F6 DEFB $0E,$3D,$38,$00,$1C,$E7,$CE,$00
B3FE DEFB $19,$AA,$AB,$80,$19,$FF,$FE,$C0
B406 DEFB $3B,$55,$D5,$60,$3B,$FF,$FE,$E0
B40E DEFB $36,$AE,$EA,$B0,$35,$7B,$BF,$F0
B416 DEFB $74,$5D,$75,$78,$7F,$F7,$F7,$FC
B41E DEFB $3C,$BC,$3A,$AC,$77,$F9,$9B,$F4
B426 DEFB $7D,$72,$5D,$F4,$3F,$F2,$4B,$64
B42E DEFB $3E,$B1,$1B,$F4,$3B,$D8,$1E,$18
B436 DEFB $7F,$5C,$78,$E0,$6B,$EF,$F7,$F8
B43E DEFB $3C,$AF,$AF,$FC,$33,$FD,$DF,$FC
B446 DEFB $12,$57,$5E,$D8,$1B,$FF,$BC,$98
B44E DEFB $1C,$6A,$B8,$00,$09,$FF,$B0,$00
B456 DEFB $07,$F5,$1B,$E0,$05,$E7,$DF,$F0
B45E DEFB $03,$9A,$8E,$20,$00,$0F,$E1,$C0
B466 DEFB $00,$00,$FE,$00,$00,$00,$00,$00
B46E: Sprite, 32x32 pixels. Fish
B46E DEFB $00,$00,$00,$00,$40,$00,$FE,$00 sprite-b46e
B476 DEFB $60,$03,$37,$E0,$7C,$0C,$EA,$A0
B47E DEFB $3E,$1B,$FF,$F8,$3E,$37,$D5,$58
B486 DEFB $1F,$37,$BE,$D8,$0F,$2F,$3B,$F4
B48E DEFB $1D,$6E,$AD,$FC,$1F,$7E,$77,$0C
B496 DEFB $0F,$7D,$FF,$24,$0F,$AC,$AE,$76
B49E DEFB $07,$BD,$EE,$56,$03,$B5,$46,$46
B4A6 DEFB $0F,$BF,$F6,$26,$1F,$BA,$A6,$8C
B4AE DEFB $0F,$67,$F3,$1A,$13,$5D,$55,$7E
B4B6 DEFB $0F,$EF,$9B,$FE,$0F,$2A,$BA,$84
B4BE DEFB $07,$7D,$BF,$B8,$07,$55,$54,$FC
B4C6 DEFB $07,$6F,$DF,$FE,$0F,$BA,$AA,$76
B4CE DEFB $07,$FF,$EF,$BA,$07,$B5,$72,$3C
B4D6 DEFB $0F,$9B,$1C,$1C,$1B,$0E,$70,$00
B4DE DEFB $07,$03,$C0,$00,$1E,$00,$00,$00
B4E6 DEFB $30,$00,$00,$00,$00,$00,$00,$00
B4EE: Sprite, 32x32 pixels. Fish
B4EE DEFB $00,$00,$00,$00,$03,$83,$F8,$00 sprite-b4ee
B4F6 DEFB $07,$0C,$DF,$80,$06,$33,$AA,$80
B4FE DEFB $0F,$2F,$FF,$E0,$0E,$5F,$55,$70
B506 DEFB $06,$5E,$FB,$70,$07,$7C,$EF,$90
B50E DEFB $0F,$3A,$BF,$F0,$0F,$39,$DF,$78
B516 DEFB $0F,$77,$FE,$38,$1F,$32,$BC,$98
B51E DEFB $1D,$77,$B5,$DC,$1B,$95,$35,$5C
B526 DEFB $1F,$BF,$F4,$9C,$1F,$2A,$BA,$38
B52E DEFB $0F,$9F,$DC,$74,$03,$B5,$5D,$7C
B536 DEFB $0F,$BE,$6F,$E8,$07,$2A,$EB,$D0
B53E DEFB $07,$76,$FF,$FC,$07,$55,$57,$70
B546 DEFB $03,$3F,$7E,$FC,$03,$6A,$AB,$38
B54E DEFB $07,$BF,$BE,$00,$07,$9D,$C8,$00
B556 DEFB $03,$BC,$70,$00,$03,$8F,$C0,$00
B55E DEFB $07,$00,$00,$00,$03,$80,$00,$00
B566 DEFB $00,$C0,$00,$00,$00,$00,$00,$00
B56E: Sprite, 16x8 pixels. Snake, rearing phase
B56E DEFB $00,$00,$03,$F0,$1F,$FC,$3F,$DC sprite-b56e
B576 DEFB $5E,$7E,$5C,$3E,$3D,$BC,$0F,$F0
B57E: Sprite, 16x16 pixels. Snake, rearing phase
B57E DEFB $00,$00,$03,$F0,$1F,$FC,$3F,$DC sprite-b57e
B586 DEFB $5E,$7E,$5C,$3E,$7D,$BA,$5E,$7E
B58E DEFB $5F,$E0,$3F,$9C,$3F,$FC,$6F,$F8
B596 DEFB $5D,$C0,$5A,$A0,$3D,$60,$0F,$C0
B59E: Sprite, 16x24 pixels. Snake, rearing phase
B59E DEFB $00,$00,$03,$F0,$1F,$FC,$3F,$DC sprite-b59e
B5A6 DEFB $5E,$7E,$5C,$3E,$7D,$BA,$5E,$7E
B5AE DEFB $5F,$E0,$3F,$9C,$3F,$FC,$6F,$F8
B5B6 DEFB $5D,$C0,$5A,$A0,$5D,$40,$6E,$80
B5BE DEFB $6D,$60,$3E,$F0,$2F,$88,$36,$78
B5C6 DEFB $37,$5C,$0F,$AC,$0F,$58,$07,$F0
B5CE: Sprite, 16x32 pixels. Snake, rearing phase
B5CE DEFB $00,$00,$03,$F0,$1F,$FC,$3F,$DC sprite-b5ce
B5D6 DEFB $5E,$7E,$5C,$3E,$7D,$BA,$5E,$7E
B5DE DEFB $5F,$E0,$3F,$9C,$3F,$FC,$6F,$F8
B5E6 DEFB $5D,$C0,$5A,$A0,$5D,$40,$6E,$80
B5EE DEFB $6D,$60,$3E,$F0,$2F,$88,$36,$78
B5F6 DEFB $37,$58,$1F,$AC,$17,$54,$13,$AC
B5FE DEFB $17,$54,$1F,$AC,$33,$54,$6E,$AC
B606 DEFB $7D,$54,$3E,$A8,$1D,$70,$07,$C0
B60E: Sprite, 16x32 pixels. Sea Horse
B60E DEFB $00,$00,$2F,$00,$1F,$C0,$7F,$C0 sprite-b60e
B616 DEFB $3D,$E0,$7B,$C0,$79,$E0,$3F,$FC
B61E DEFB $77,$3E,$78,$36,$36,$3E,$3F,$9C
B626 DEFB $7F,$C0,$3F,$E0,$5F,$E0,$19,$F0
B62E DEFB $37,$F0,$16,$E0,$09,$E0,$1F,$C0
B636 DEFB $0F,$80,$1E,$00,$1A,$00,$0C,$00
B63E DEFB $1C,$60,$18,$F0,$1C,$70,$0A,$A0
B646 DEFB $0F,$E0,$07,$C0,$03,$00,$00,$00
B64E: Sprite, 16x32 pixels. Sea Horse
B64E DEFB $00,$00,$13,$8C,$0F,$EE,$2F,$7E sprite-b64e
B656 DEFB $1E,$34,$7E,$B0,$1F,$F0,$7F,$E0
B65E DEFB $3D,$C0,$3E,$00,$1D,$80,$6F,$E0
B666 DEFB $7F,$F0,$5F,$C8,$3F,$F0,$37,$F8
B66E DEFB $0F,$B8,$1F,$98,$0F,$E0,$1F,$E0
B676 DEFB $07,$C0,$0F,$80,$06,$80,$1F,$10
B67E DEFB $0F,$38,$1F,$28,$0E,$18,$03,$98
B686 DEFB $07,$70,$03,$E0,$01,$80,$00,$00
B68E: Sprite, 32x32 pixels. Baby whale
B68E DEFB $00,$00,$00,$00,$00,$00,$00,$00 sprite-b68e
B696 DEFB $00,$00,$7C,$00,$00,$03,$FF,$00
B69E DEFB $00,$07,$E7,$C0,$40,$DF,$CD,$E0
B6A6 DEFB $63,$BF,$C3,$F0,$6D,$BF,$FF,$F0
B6AE DEFB $7F,$7F,$FF,$F8,$3E,$7F,$FF,$F8
B6B6 DEFB $0E,$FF,$FF,$FC,$1C,$FF,$FF,$FC
B6BE DEFB $0D,$FF,$FF,$FC,$01,$FF,$FF,$FE
B6C6 DEFB $01,$FF,$FF,$FE,$01,$FF,$FF,$FE
B6CE DEFB $01,$FF,$FF,$FE,$01,$FF,$FF,$FE
B6D6 DEFB $01,$FF,$FF,$FE,$01,$FF,$FF,$FC
B6DE DEFB $00,$FF,$9F,$FE,$00,$FF,$47,$FC
B6E6 DEFB $00,$FF,$6F,$FE,$00,$7F,$9F,$FE
B6EE DEFB $00,$23,$FF,$AC,$00,$1D,$FF,$FC
B6F6 DEFB $00,$3E,$EF,$F8,$00,$7E,$F1,$E0
B6FE DEFB $00,$7C,$FE,$10,$00,$7D,$FF,$E0
B706 DEFB $00,$38,$7F,$00,$00,$00,$00,$00
B70E: Sprite, 32x32 pixels. Baby whale
B70E DEFB $00,$00,$00,$00,$00,$00,$7C,$00 sprite-b70e
B716 DEFB $00,$03,$FF,$00,$00,$07,$F3,$C0
B71E DEFB $00,$1F,$E6,$E0,$00,$3F,$E1,$F0
B726 DEFB $00,$3F,$FF,$F0,$00,$7F,$FF,$F8
B72E DEFB $00,$7F,$FF,$F8,$00,$FF,$FF,$FC
B736 DEFB $00,$FF,$FF,$FC,$01,$FF,$FF,$FC
B73E DEFB $01,$FF,$FF,$FE,$01,$FF,$FF,$FE
B746 DEFB $01,$FF,$FF,$FE,$01,$FF,$FF,$FE
B74E DEFB $01,$FF,$FF,$FE,$0D,$FF,$FF,$FE
B756 DEFB $1D,$FF,$FF,$FC,$3C,$FF,$9F,$FE
B75E DEFB $1E,$FF,$0F,$FC,$7E,$FF,$67,$FE
B766 DEFB $7E,$67,$9F,$FE,$68,$3B,$FF,$AC
B76E DEFB $70,$FF,$FF,$FC,$21,$FD,$E3,$F8
B776 DEFB $01,$FB,$F0,$40,$00,$F1,$FE,$10
B77E DEFB $00,$00,$FF,$E0,$00,$00,$1F,$00
B786 DEFB $00,$00,$00,$00,$00,$00,$00,$00
B78E: Sprite, 32x32 pixels. Baby whale
B78E DEFB $00,$00,$00,$00,$00,$00,$00,$00 sprite-b78e
B796 DEFB $00,$00,$00,$00,$00,$00,$7C,$00
B79E DEFB $00,$03,$FF,$00,$00,$0F,$FF,$C0
B7A6 DEFB $00,$1F,$FF,$E0,$00,$1F,$FF,$F0
B7AE DEFB $00,$3F,$FF,$F8,$00,$3F,$FF,$F8
B7B6 DEFB $00,$7F,$FF,$F8,$00,$7F,$FF,$FC
B7BE DEFB $00,$7F,$FF,$FC,$00,$7F,$FF,$FC
B7C6 DEFB $00,$FF,$FF,$EE,$00,$FF,$FF,$96
B7CE DEFB $38,$78,$FF,$8E,$7F,$87,$0F,$BE
B7D6 DEFB $7F,$7F,$E7,$F8,$1F,$7F,$CF,$F8
B7DE DEFB $1F,$F9,$9F,$FE,$07,$FC,$3F,$C4
B7E6 DEFB $03,$F9,$E7,$B8,$00,$F3,$BB,$7E
B7EE DEFB $00,$07,$DF,$7E,$00,$3F,$DF,$7E
B7F6 DEFB $00,$3F,$FF,$BE,$00,$1F,$FF,$9C
B7FE DEFB $00,$0F,$FE,$00,$00,$07,$FC,$00
B806 DEFB $00,$01,$C0,$00,$00,$00,$00,$00
B80E: Sprite, 32x32 pixels. Baby whale
B80E DEFB $00,$00,$00,$00,$00,$00,$7C,$00 sprite-b80e
B816 DEFB $00,$03,$FF,$00,$00,$0F,$FF,$C0
B81E DEFB $00,$1F,$FF,$E0,$00,$1F,$FF,$F0
B826 DEFB $00,$3F,$FF,$F8,$00,$3F,$FF,$F8
B82E DEFB $00,$7F,$FF,$F8,$00,$7F,$FF,$FC
B836 DEFB $00,$7F,$FF,$FC,$00,$7F,$FF,$FC
B83E DEFB $00,$FF,$FF,$CE,$00,$FF,$FF,$B6
B846 DEFB $00,$FF,$FF,$8E,$00,$A7,$FF,$9E
B84E DEFB $00,$79,$FF,$FA,$00,$FF,$FF,$F8
B856 DEFB $03,$FF,$FF,$FE,$02,$07,$FF,$E4
B85E DEFB $00,$F3,$FF,$D8,$03,$F9,$FF,$F8
B866 DEFB $07,$FC,$3F,$B8,$1F,$F9,$9F,$FC
B86E DEFB $1F,$7F,$CF,$7C,$7F,$7F,$E7,$7C
B876 DEFB $7F,$87,$0E,$38,$38,$00,$3C,$00
B87E DEFB $00,$00,$00,$00,$00,$00,$00,$00
B886 DEFB $00,$00,$00,$00,$00,$00,$00,$00
B88E: Sprite, 16x24 pixels. Gnome item
B88E DEFB $00,$00,$00,$F0,$0E,$CC,$1B,$FA sprite-b88e
B896 DEFB $59,$E4,$72,$1E,$07,$FE,$01,$18
B89E DEFB $05,$5C,$05,$F8,$03,$64,$18,$DC
B8A6 DEFB $4B,$3C,$4C,$DE,$68,$3A,$77,$DA
B8AE DEFB $0F,$F6,$60,$0C,$77,$36,$71,$BA
B8B6 DEFB $16,$BE,$66,$BE,$33,$98,$00,$00
B8BE: Mask, 16x24 pixels. Gnome item
B8BE DEFB $00,$F0,$0F,$FC,$1F,$FE,$5F,$FF sprite-b8be
B8C6 DEFB $FF,$FE,$FF,$FF,$FF,$FF,$0F,$FE
B8CE DEFB $0F,$FE,$0F,$FC,$1F,$FE,$5F,$FE
B8D6 DEFB $FF,$FE,$FF,$FF,$FF,$FF,$FF,$FF
B8DE DEFB $7F,$FF,$FF,$FE,$FF,$FF,$FF,$FF
B8E6 DEFB $7F,$FF,$FF,$FF,$7F,$BE,$33,$18
B8EE: Sprite, 16x24 pixels. Bucket item
B8EE DEFB $00,$00,$07,$80,$0F,$C0,$0C,$60 sprite-b8ee
B8F6 DEFB $08,$60,$18,$00,$1B,$E0,$18,$98
B8FE DEFB $19,$44,$5A,$AA,$59,$46,$18,$1C
B906 DEFB $5B,$F2,$58,$0E,$67,$FE,$7F,$FE
B90E DEFB $3F,$FE,$3F,$FC,$1F,$F8,$27,$E4
B916 DEFB $38,$1C,$1F,$F8,$07,$E0,$00,$00
B91E: Mask, 16x24 pixels. Bucket item
B91E DEFB $07,$80,$0F,$C0,$1F,$E0,$1F,$F0 sprite-b91e
B926 DEFB $3C,$70,$3C,$70,$3F,$F8,$7F,$FC
B92E DEFB $7F,$FE,$FF,$FF,$FF,$FF,$FF,$FF
B936 DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
B93E DEFB $7F,$FF,$7F,$FE,$7F,$FE,$7F,$FE
B946 DEFB $7F,$FE,$3F,$FC,$1F,$F8,$07,$E0
B94E: Sprite, 16x24 pixels. Tin item
B94E DEFB $00,$00,$01,$F0,$07,$70,$0D,$A0 sprite-b94e
B956 DEFB $1B,$60,$16,$D8,$39,$84,$7F,$02
B95E DEFB $5E,$22,$40,$52,$62,$A6,$78,$1E
B966 DEFB $4F,$F2,$51,$8A,$5E,$7A,$57,$EA
B96E DEFB $59,$4A,$5B,$4A,$5B,$5A,$4F,$F2
B976 DEFB $71,$8E,$3E,$7C,$1F,$F8,$07,$E0
B97E: Mask, 16x24 pixels. Tin item
B97E DEFB $01,$F0,$07,$F8,$0F,$F8,$1F,$F0 sprite-b97e
B986 DEFB $3F,$F8,$3F,$FC,$7F,$FE,$7F,$FF
B98E DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
B996 DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
B99E DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
B9A6 DEFB $FF,$FF,$7F,$FE,$3F,$FC,$1F,$F8
B9AE: Sprite, 16x24 pixels. Key item
B9AE DEFB $00,$00,$1C,$38,$3E,$7C,$73,$CE sprite-b9ae
B9B6 DEFB $61,$86,$6D,$B6,$73,$CE,$3E,$7C
B9BE DEFB $0D,$B0,$03,$C0,$03,$40,$03,$40
B9C6 DEFB $03,$40,$03,$40,$03,$7C,$03,$5C
B9CE DEFB $03,$40,$03,$78,$03,$58,$03,$40
B9D6 DEFB $02,$7C,$03,$DC,$01,$80,$00,$00
B9DE: Mask, 16x24 pixels. Key item
B9DE DEFB $1C,$38,$3E,$7C,$7F,$FE,$FF,$FF sprite-b9de
B9E6 DEFB $FF,$FF,$FF,$FF,$FF,$FF,$7F,$FE
B9EE DEFB $3F,$FC,$0F,$F0,$07,$E0,$07,$E0
B9F6 DEFB $07,$E0,$07,$FC,$07,$FE,$07,$FE
B9FE DEFB $07,$FC,$07,$FC,$07,$FC,$07,$FC
BA06 DEFB $07,$FE,$07,$FE,$03,$DC,$01,$80
BA0E: Sprite, 16x24 pixels. Horseshoe item (weapon; kills Sea Horses)
BA0E DEFB $00,$00,$03,$C0,$0E,$70,$1E,$78 sprite-ba0e
BA16 DEFB $3F,$FC,$3C,$3C,$78,$1E,$48,$12
BA1E DEFB $48,$12,$78,$1E,$78,$1E,$38,$1C
BA26 DEFB $38,$1C,$3C,$3C,$24,$24,$24,$24
BA2E DEFB $3C,$3C,$1C,$38,$1C,$38,$1E,$78
BA36 DEFB $32,$4C,$32,$4C,$3E,$7C,$00,$00
BA3E: Mask, 16x24 pixels. Horseshoe item
BA3E DEFB $03,$C0,$0F,$F0,$1F,$F8,$3F,$FC sprite-ba3e
BA46 DEFB $7F,$FE,$7F,$FE,$FC,$3F,$FC,$3F
BA4E DEFB $FC,$3F,$FC,$3F,$FC,$3F,$7C,$3E
BA56 DEFB $7C,$3E,$7E,$7E,$7E,$7E,$7E,$7E
BA5E DEFB $7E,$7E,$3E,$7C,$3E,$7C,$3F,$FC
BA66 DEFB $7F,$FE,$7F,$FE,$7F,$FE,$3E,$7C
BA6E: Sprite, 16x24 pixels. Bone item (lures fish shoals away)
BA6E DEFB $00,$00,$00,$70,$00,$F8,$06,$F8 sprite-ba6e
BA76 DEFB $0F,$78,$1F,$70,$1F,$E0,$1F,$C0
BA7E DEFB $1E,$C0,$0D,$C0,$03,$C0,$03,$C0
BA86 DEFB $03,$C0,$03,$C0,$03,$D8,$03,$DC
BA8E DEFB $01,$FC,$0F,$FC,$1F,$B8,$1F,$90
BA96 DEFB $1F,$80,$1F,$80,$0F,$00,$00,$00
BA9E: Mask, 16x24 pixels. Bone item
BA9E DEFB $00,$70,$00,$F8,$07,$FC,$0F,$FC sprite-ba9e
BAA6 DEFB $1F,$FC,$3F,$F8,$3F,$F0,$3F,$E0
BAAE DEFB $3F,$E0,$1F,$E0,$0F,$E0,$07,$E0
BAB6 DEFB $07,$E0,$07,$F8,$07,$FC,$07,$FE
BABE DEFB $0F,$FE,$1F,$FE,$3F,$FC,$3F,$F8
BAC6 DEFB $3F,$D0,$3F,$C0,$1F,$80,$0F,$00
BACE: Sprite, 16x24 pixels. Boot item
BACE DEFB $00,$00,$03,$50,$0E,$AC,$15,$52 sprite-bace
BAD6 DEFB $12,$AE,$11,$52,$18,$A6,$0E,$1E
BADE DEFB $17,$FE,$0F,$FC,$07,$F8,$09,$E4
BAE6 DEFB $0A,$1C,$07,$EC,$00,$FC,$0F,$3C
BAEE DEFB $3F,$DC,$7F,$F8,$7F,$E8,$3F,$E8
BAF6 DEFB $4F,$D0,$70,$70,$1F,$C0,$00,$00
BAFE: Mask, 16x24 pixels. Boot item
BAFE DEFB $03,$F0,$0F,$F8,$1F,$FE,$3F,$FF sprite-bafe
BB06 DEFB $3F,$FF,$3F,$FF,$1F,$FF,$3F,$FF
BB0E DEFB $3F,$FF,$1F,$FE,$0F,$FC,$1F,$FE
BB16 DEFB $1F,$FE,$0F,$FE,$0F,$FE,$3F,$FE
BB1E DEFB $7F,$FE,$FF,$FC,$FF,$FC,$7F,$FC
BB26 DEFB $FF,$F8,$FF,$F8,$7F,$F0,$1F,$C0
BB2E: Sprite, 32x32 pixels. Treasure chest
BB2E DEFB $00,$00,$00,$00,$03,$E0,$00,$00 sprite-bb2e
BB36 DEFB $0F,$F8,$00,$00,$1F,$FE,$00,$00
BB3E DEFB $3F,$FF,$80,$00,$3F,$FF,$E0,$00
BB46 DEFB $7F,$FF,$F8,$00,$7F,$FF,$FE,$00
BB4E DEFB $3F,$FF,$FF,$80,$5F,$FF,$FF,$E0
BB56 DEFB $67,$C7,$FF,$F8,$79,$B9,$FF,$E4
BB5E DEFB $6E,$7E,$FF,$DE,$63,$4E,$FF,$B8
BB66 DEFB $6B,$76,$FF,$72,$6B,$7D,$FE,$E6
BB6E DEFB $6B,$4C,$7E,$CA,$6B,$45,$9D,$96
BB76 DEFB $6B,$55,$E5,$2A,$63,$45,$B8,$56
BB7E DEFB $7B,$65,$8C,$AA,$1F,$6D,$AD,$56
BB86 DEFB $07,$9D,$AC,$AA,$01,$E5,$AD,$54
BB8E DEFB $00,$79,$AC,$A8,$00,$1F,$AD,$50
BB96 DEFB $00,$07,$AC,$A0,$00,$01,$CD,$40
BB9E DEFB $00,$00,$7C,$80,$00,$00,$1D,$00
BBA6 DEFB $00,$00,$06,$00,$00,$00,$00,$00
BBAE: Mask, 32x32 pixels. Treasure chest
BBAE DEFB $03,$E0,$00,$00,$0F,$F8,$00,$00 sprite-bbae
BBB6 DEFB $1F,$FE,$00,$00,$3F,$FF,$80,$00
BBBE DEFB $7F,$FF,$E0,$00,$7F,$FF,$F8,$00
BBC6 DEFB $FF,$FF,$FE,$00,$FF,$FF,$FF,$80
BBCE DEFB $FF,$FF,$FF,$E0,$FF,$FF,$FF,$F8
BBD6 DEFB $FF,$FF,$FF,$FC,$FF,$FF,$FF,$FE
BBDE DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
BBE6 DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
BBEE DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
BBF6 DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
BBFE DEFB $FF,$FF,$FF,$FF,$7F,$FF,$FF,$FF
BC06 DEFB $1F,$FF,$FF,$FF,$07,$FF,$FF,$FF
BC0E DEFB $01,$FF,$FF,$FE,$00,$7F,$FF,$FC
BC16 DEFB $00,$1F,$FF,$F8,$00,$07,$FF,$F0
BC1E DEFB $00,$01,$FF,$C0,$00,$00,$7F,$80
BC26 DEFB $00,$00,$1F,$00,$00,$00,$06,$00
BC2E: Sprite, 16x32 pixels. Rock
BC2E DEFB $00,$00,$00,$00,$00,$60,$00,$E0 sprite-bc2e
BC36 DEFB $00,$E0,$00,$E0,$01,$F0,$03,$B0
BC3E DEFB $03,$B0,$03,$78,$03,$58,$03,$D8
BC46 DEFB $07,$58,$0F,$58,$0F,$5C,$0E,$F4
BC4E DEFB $1E,$F4,$1E,$D4,$1E,$DC,$36,$D4
BC56 DEFB $3A,$CC,$3E,$D6,$3D,$AA,$3F,$86
BC5E DEFB $3D,$AA,$7D,$96,$6D,$2A,$75,$96
BC66 DEFB $3F,$2C,$1F,$58,$0E,$B0,$07,$C0
BC6E: Mask, 16x32 pixels. Rock
BC6E DEFB $00,$00,$00,$60,$00,$F0,$01,$F0 sprite-bc6e
BC76 DEFB $01,$F0,$01,$F0,$03,$F8,$07,$F8
BC7E DEFB $07,$F8,$07,$FC,$07,$FC,$07,$FC
BC86 DEFB $0F,$FC,$1F,$FC,$1F,$FE,$1F,$FE
BC8E DEFB $3F,$FE,$3F,$FE,$3F,$FE,$7F,$FE
BC96 DEFB $7F,$FE,$7F,$FF,$7F,$FF,$7F,$FF
BC9E DEFB $FF,$FF,$FF,$FF,$FF,$FF,$7F,$FF
BCA6 DEFB $7F,$FF,$3F,$FE,$1F,$F8,$0F,$F0
BCAE: Sprite, 32x24 pixels. Plug
BCAE DEFB $00,$00,$00,$00,$00,$03,$C0,$00 sprite-bcae
BCB6 DEFB $00,$0F,$F0,$00,$00,$1F,$F8,$00
BCBE DEFB $00,$3F,$FC,$00,$00,$39,$FC,$00
BCC6 DEFB $00,$30,$FC,$00,$03,$B2,$FD,$C0
BCCE DEFB $1F,$B2,$FD,$F8,$3F,$B9,$FD,$5C
BCD6 DEFB $7F,$DF,$FA,$AE,$7F,$EF,$F5,$5E
BCDE DEFB $5F,$F3,$CA,$BA,$63,$FC,$2F,$C6
BCE6 DEFB $7C,$1F,$F8,$3E,$3F,$E0,$07,$D4
BCEE DEFB $3F,$FF,$FA,$AC,$3F,$FF,$D5,$54
BCF6 DEFB $1F,$FF,$AA,$A8,$1F,$FD,$D5,$58
BCFE DEFB $1F,$EA,$AA,$B8,$07,$D5,$55,$E0
BD06 DEFB $00,$FE,$BF,$00,$00,$07,$E0,$00
BD0E: Mask, 32x24 pixels. Plug
BD0E DEFB $00,$03,$C0,$00,$00,$0F,$F0,$00 sprite-bd0e
BD16 DEFB $00,$1F,$F8,$00,$00,$3F,$FC,$00
BD1E DEFB $00,$7F,$FE,$00,$00,$7F,$FE,$00
BD26 DEFB $03,$FF,$FF,$C0,$1F,$FF,$FF,$F8
BD2E DEFB $3F,$FF,$FF,$FC,$7F,$FF,$FF,$FE
BD36 DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
BD3E DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
BD46 DEFB $FF,$FF,$FF,$FF,$7F,$FF,$FF,$FE
BD4E DEFB $7F,$FF,$FF,$FE,$7F,$FF,$FF,$FE
BD56 DEFB $3F,$FF,$FF,$FC,$3F,$FF,$FF,$FC
BD5E DEFB $3F,$FF,$FF,$FC,$1F,$FF,$FF,$F8
BD66 DEFB $07,$FF,$FF,$E0,$00,$FF,$FF,$00
BD6E: Sprite, 16x16 pixels. Seaweed sprig
BD6E DEFB $00,$00,$30,$0C,$69,$9E,$6B,$DA sprite-bd6e
BD76 DEFB $33,$CC,$17,$94,$34,$78,$31,$E0
BD7E DEFB $19,$80,$1F,$F0,$06,$6C,$0F,$16
BD86 DEFB $1D,$9E,$0C,$CC,$00,$E0,$00,$70
BD8E: Mask, 16x16 pixels. Seaweed sprig
BD8E DEFB $30,$0C,$79,$9F,$FF,$FF,$FF,$FF sprite-bd8e
BD96 DEFB $7F,$FE,$3F,$FE,$7F,$FC,$7F,$F0
BD9E DEFB $3F,$F0,$3F,$FC,$0F,$FF,$1F,$FF
BDA6 DEFB $1F,$FF,$3F,$FE,$3F,$FC,$0C,$F8
BDAE: Sprite, 32x16 pixels. Whirlpool, animation phase 1
BDAE DEFB $00,$00,$00,$00,$00,$1E,$00,$E0 sprite-bdae
BDB6 DEFB $00,$C0,$7C,$18,$03,$1E,$0F,$00
BDBE DEFB $00,$77,$C3,$C2,$11,$CE,$39,$E9
BDC6 DEFB $23,$30,$07,$E5,$06,$E4,$11,$C4
BDCE DEFB $44,$E8,$A9,$90,$41,$F1,$47,$B1
BDD6 DEFB $4B,$FE,$3E,$61,$03,$CF,$F9,$C6
BDDE DEFB $11,$E7,$C7,$08,$08,$F1,$F8,$30
BDE6 DEFB $06,$3C,$00,$40,$01,$87,$1E,$00
BDEE: Sprite, 32x16 pixels. Whirlpool, animation phase 2
BDEE DEFB $00,$00,$70,$00,$00,$00,$07,$00 sprite-bdee
BDF6 DEFB $00,$03,$E0,$20,$06,$5E,$3C,$08
BDFE DEFB $31,$81,$C6,$12,$4C,$7E,$39,$49
BE06 DEFB $93,$B0,$07,$60,$17,$E0,$43,$B0
BE0E DEFB $06,$E0,$13,$B4,$16,$F0,$87,$F4
BE16 DEFB $93,$7E,$3E,$E8,$89,$4F,$FF,$08
BE1E DEFB $41,$B1,$F8,$71,$22,$1E,$00,$86
BE26 DEFB $08,$83,$E0,$28,$00,$00,$00,$00
BE2E: Sprite, 24x32 pixels. Plant/coral
BE2E DEFB $00,$00,$00,$38,$3C,$00,$7C,$7E sprite-be2e
BE36 DEFB $00,$5C,$7E,$00,$60,$6F,$38,$7C
BE3E DEFB $37,$7C,$3E,$06,$66,$1F,$80,$DE
BE46 DEFB $0F,$E1,$DE,$01,$F3,$CC,$1E,$F7
BE4E DEFB $B0,$3F,$6F,$78,$37,$6F,$18,$73
BE56 DEFB $5E,$78,$67,$5E,$F0,$6E,$DE,$E8
BE5E DEFB $0E,$BF,$78,$0E,$B9,$F8,$0F,$FA
BE66 DEFB $F0,$37,$FF,$C8,$7B,$FE,$3C,$7E
BE6E DEFB $D1,$AC,$3F,$2D,$58,$0F,$FA,$C6
BE76 DEFB $73,$D6,$3E,$7C,$71,$FA,$7F,$8F
BE7E DEFB $D6,$3F,$FE,$AC,$1F,$D5,$58,$0F
BE86 DEFB $AA,$F0,$03,$D7,$C0,$00,$7E,$00
BE8E: Mask, 24x32 pixels. Plant/coral
BE8E DEFB $38,$3C,$00,$7C,$7E,$00,$FE,$FF sprite-be8e
BE96 DEFB $00,$FE,$FF,$38,$FC,$FF,$FC,$FE
BE9E DEFB $7F,$FE,$7F,$BF,$FF,$3F,$CF,$FF
BEA6 DEFB $1F,$F7,$FF,$1F,$FF,$FE,$3F,$FF
BEAE DEFB $FC,$7F,$FF,$FC,$77,$FF,$FC,$F3
BEB6 DEFB $FF,$FC,$E7,$FF,$F8,$EF,$FF,$FC
BEBE DEFB $7F,$FF,$FC,$1F,$FF,$FC,$3F,$FF
BEC6 DEFB $F8,$7F,$FF,$FC,$FF,$FF,$FE,$FF
BECE DEFB $FF,$FE,$7F,$FF,$FC,$7F,$FF,$FF
BED6 DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
BEDE DEFB $FE,$7F,$FF,$FE,$3F,$FF,$FC,$1F
BEE6 DEFB $FF,$F8,$0F,$FF,$F0,$03,$FF,$C0
BEEE: Sprite, 24x32 pixels. Plant/coral
BEEE DEFB $00,$00,$00,$1C,$00,$3C,$3E,$38 sprite-beee
BEF6 DEFB $7E,$36,$7C,$7E,$32,$FC,$DE,$3C
BEFE DEFB $F6,$DC,$1E,$6E,$E0,$0F,$85,$C0
BF06 DEFB $01,$E3,$C0,$3E,$F7,$A0,$7E,$EF
BF0E DEFB $70,$77,$6F,$30,$77,$5F,$70,$73
BF16 DEFB $5E,$E0,$27,$5E,$D0,$0E,$DE,$F8
BF1E DEFB $1E,$DF,$78,$1F,$DD,$F8,$0F,$BA
BF26 DEFB $F0,$37,$FF,$C8,$7B,$FE,$3C,$7E
BF2E DEFB $D1,$AC,$3F,$2D,$58,$0F,$FA,$C6
BF36 DEFB $73,$D6,$3E,$7C,$71,$FA,$7F,$8F
BF3E DEFB $D6,$3F,$FE,$AC,$1F,$D5,$58,$0F
BF46 DEFB $AA,$F0,$03,$D7,$C0,$00,$7E,$00
BF4E: Mask, 24x32 pixels. Plant/coral
BF4E DEFB $1C,$00,$3C,$3E,$38,$7E,$7F,$7C sprite-bf4e
BF56 DEFB $7F,$7F,$FE,$FF,$7F,$FF,$FF,$7F
BF5E DEFB $FF,$FE,$3F,$FF,$FC,$1F,$FF,$E0
BF66 DEFB $3F,$FF,$E0,$7F,$FF,$F0,$FF,$FF
BF6E DEFB $F8,$FF,$FF,$F8,$FF,$FF,$F8,$FF
BF76 DEFB $FF,$F0,$7F,$FF,$F8,$3F,$FF,$FC
BF7E DEFB $3F,$FF,$FC,$1F,$FF,$FC,$3F,$FF
BF86 DEFB $F8,$7F,$FF,$FC,$FF,$FF,$FE,$FF
BF8E DEFB $FF,$FE,$7F,$FF,$FC,$7F,$FF,$FF
BF96 DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
BF9E DEFB $FF,$7F,$FF,$FE,$3F,$FF,$FC,$1F
BFA6 DEFB $FF,$F8,$0F,$FF,$F0,$03,$FF,$C0
BFAE: Sprite, 32x16 pixels. Closed clam shell
BFAE DEFB $00,$00,$00,$00,$00,$07,$3C,$00 sprite-bfae
BFB6 DEFB $00,$3F,$E2,$00,$00,$FF,$C1,$C0
BFBE DEFB $01,$FF,$A8,$E0,$03,$DF,$95,$50
BFC6 DEFB $0F,$7F,$AA,$AC,$1E,$77,$55,$56
BFCE DEFB $3F,$FC,$2A,$AA,$7D,$BE,$55,$56
BFD6 DEFB $73,$5F,$2A,$AC,$32,$BF,$8D,$54
BFDE DEFB $19,$5F,$F6,$B8,$06,$B7,$BF,$F0
BFE6 DEFB $03,$7D,$7F,$00,$00,$2F,$80,$00
BFEE: Mask, 32x16 pixels. Closed clam shell
BFEE DEFB $00,$07,$3C,$00,$00,$3F,$FE,$00 sprite-bfee
BFF6 DEFB $00,$FF,$FF,$C0,$01,$FF,$FF,$E0
BFFE DEFB $03,$FF,$FF,$F0,$0F,$FF,$FF,$FC
C006 DEFB $1F,$FF,$FF,$FE,$3F,$FF,$FF,$FF
C00E DEFB $7F,$FF,$FF,$FF,$FF,$FF,$FF,$FF
C016 DEFB $FF,$FF,$FF,$FE,$7F,$FF,$FF,$FC
C01E DEFB $3F,$FF,$FF,$FC,$0F,$FF,$FF,$F8
C026 DEFB $07,$FF,$FF,$F0,$03,$FF,$FF,$00
C02E: Sprite, 32x32 pixels. Open clam shell
C02E DEFB $00,$7C,$00,$00,$01,$FF,$9E,$00 sprite-c02e
C036 DEFB $03,$E7,$FF,$00,$1F,$98,$23,$80
C03E DEFB $3C,$7D,$51,$80,$71,$7F,$AE,$F0
C046 DEFB $6A,$B7,$D5,$18,$65,$6B,$FE,$A8
C04E DEFB $6A,$B5,$FF,$5C,$35,$6A,$FF,$AC
C056 DEFB $32,$F5,$5F,$58,$19,$7A,$AF,$A8
C05E DEFB $0C,$B5,$55,$58,$0D,$5A,$AA,$B0
C066 DEFB $1E,$BD,$55,$60,$1D,$5A,$BF,$C0
C06E DEFB $1E,$A5,$F3,$80,$07,$E0,$F6,$00
C076 DEFB $00,$DF,$8F,$E0,$07,$30,$73,$B0
C07E DEFB $0F,$EF,$F9,$58,$35,$B8,$CE,$AC
C086 DEFB $4B,$7A,$B3,$56,$55,$77,$39,$26
C08E DEFB $63,$76,$09,$9A,$39,$70,$E3,$A6
C096 DEFB $3D,$BB,$FF,$4E,$1F,$3E,$3C,$3C
C09E DEFB $0F,$E1,$C3,$F8,$03,$FD,$FF,$C0
C0A6 DEFB $00,$3F,$7C,$00,$00,$00,$00,$00
C0AE: Mask, 32x32 pixels. Open clam shell
C0AE DEFB $00,$FF,$9C,$00,$03,$FF,$FE,$00 sprite-c0ae
C0B6 DEFB $1F,$FF,$FF,$00,$3F,$FF,$FF,$80
C0BE DEFB $7F,$FF,$FF,$C0,$FF,$FF,$FF,$F0
C0C6 DEFB $FF,$FF,$FF,$F8,$FF,$FF,$FF,$FC
C0CE DEFB $FF,$FF,$FF,$FC,$FF,$FF,$FF,$FE
C0D6 DEFB $7F,$FF,$FF,$FE,$7F,$FF,$FF,$FC
C0DE DEFB $3F,$FF,$FF,$FC,$1F,$FF,$FF,$FC
C0E6 DEFB $1F,$FF,$FF,$F8,$3F,$FF,$FF,$F0
C0EE DEFB $3F,$FF,$FF,$E0,$3F,$FF,$FF,$C0
C0F6 DEFB $1F,$FF,$FF,$E0,$07,$FF,$FF,$F0
C0FE DEFB $0F,$FF,$FF,$F8,$3F,$FF,$FF,$FC
C106 DEFB $7F,$FF,$FF,$FE,$FF,$FF,$FF,$FF
C10E DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
C116 DEFB $7F,$FF,$FF,$FF,$3F,$FF,$FF,$FF
C11E DEFB $3F,$FF,$FF,$FE,$1F,$FF,$FF,$FC
C126 DEFB $0F,$FF,$FF,$F8,$03,$FF,$FF,$C0
C12E: Sprite, 16x40 pixels. Seaweed
C12E DEFB $00,$00,$04,$00,$0C,$00,$0C,$00 sprite-c12e
C136 DEFB $3C,$50,$58,$78,$38,$32,$30,$34
C13E DEFB $30,$3C,$38,$F4,$30,$70,$18,$32
C146 DEFB $0C,$62,$0E,$6A,$06,$6E,$13,$64
C14E DEFB $0F,$DC,$01,$F0,$00,$E0,$0D,$F0
C156 DEFB $0C,$30,$06,$70,$06,$60,$24,$48
C15E DEFB $7C,$DE,$58,$B2,$50,$60,$21,$C0
C166 DEFB $19,$10,$1B,$70,$35,$34,$36,$3C
C16E DEFB $76,$70,$6E,$60,$78,$60,$70,$E0
C176 DEFB $30,$E0,$38,$C0,$18,$00,$00,$00
C17E: Mask, 16x40 pixels. Seaweed
C17E DEFB $04,$00,$0E,$00,$1E,$00,$1E,$50 sprite-c17e
C186 DEFB $7E,$F8,$7C,$FC,$78,$7A,$78,$7E
C18E DEFB $78,$FE,$7D,$FE,$78,$F4,$3C,$72
C196 DEFB $1E,$F3,$1F,$EF,$3F,$FF,$3F,$FE
C19E DEFB $1F,$FE,$0F,$FC,$0D,$F0,$1F,$F8
C1A6 DEFB $1E,$F8,$0F,$78,$27,$78,$7E,$7E
C1AE DEFB $FC,$FF,$FC,$FF,$F9,$FA,$7B,$F8
C1B6 DEFB $3F,$F8,$3F,$F8,$77,$F8,$77,$F8
C1BE DEFB $F7,$F8,$EF,$F0,$FE,$F6,$F9,$FE
C1C6 DEFB $79,$F8,$7D,$E0,$3C,$00,$18,$00
C1CE: Sprite, 16x16 pixels. Small rock
C1CE DEFB $00,$00,$00,$00,$01,$80,$07,$E0 sprite-c1ce
C1D6 DEFB $0F,$B0,$0F,$A8,$1F,$54,$3F,$AC
C1DE DEFB $37,$54,$0F,$AE,$33,$96,$7E,$6E
C1E6 DEFB $7C,$BE,$79,$5C,$1A,$B8,$07,$E0
C1EE: Mask, 16x16 pixels. Small rock
C1EE DEFB $00,$00,$01,$80,$07,$E0,$0F,$F0 sprite-c1ee
C1F6 DEFB $1F,$F8,$1F,$FC,$3F,$FE,$7F,$FE
C1FE DEFB $7F,$FE,$3F,$FF,$7F,$FF,$FF,$FF
C206 DEFB $FF,$FF,$FF,$FE,$7F,$FC,$1F,$F8
C20E: Sprite, 8x24 pixels. Small debris/particle
C20E DEFB $02,$45,$E2,$40,$08,$14,$08,$22 sprite-c20e
C216 DEFB $57,$22,$00,$00,$00,$00,$00,$00
C21E DEFB $00,$00,$00,$00,$0C,$16,$1E,$0C
C226: Sprite, 8x24 pixels. Small debris/particle
C226 DEFB $00,$11,$82,$00,$28,$00,$08,$20 sprite-c226
C22E DEFB $02,$00,$00,$00,$00,$00,$00,$00
C236 DEFB $38,$7C,$5C,$7C,$38,$00,$00,$00
C23E: Sprite, 8x24 pixels. Small debris/particle
C23E DEFB $00,$02,$00,$10,$00,$00,$00,$08 sprite-c23e
C246 DEFB $00,$00,$00,$1C,$3E,$77,$6F,$6F
C24E DEFB $3E,$1C,$00,$00,$00,$00,$00,$00
C256: Sprite, 8x24 pixels. Small debris/particle
C256 DEFB $00,$00,$00,$00,$00,$00,$00,$3C sprite-c256
C25E DEFB $7E,$E7,$CF,$DF,$DF,$FF,$7E,$3C
C266 DEFB $00,$00,$00,$00,$00,$00,$00,$00
C26E: Sprite, 16x16 pixels. Disc/wheel
C26E DEFB $00,$00,$07,$E0,$0E,$B8,$15,$54 sprite-c26e
C276 DEFB $2A,$AA,$35,$56,$6A,$AB,$55,$55
C27E DEFB $6A,$AB,$55,$55,$6A,$AB,$35,$56
C286 DEFB $2A,$AA,$15,$54,$0E,$B8,$07,$E0
C28E: Sprite, 16x16 pixels. Disc/wheel
C28E DEFB $00,$00,$07,$E0,$1E,$B8,$35,$54 sprite-c28e
C296 DEFB $6A,$AA,$55,$57,$AA,$AB,$D5,$55
C29E DEFB $AA,$AB,$D5,$55,$6A,$AA,$55,$56
C2A6 DEFB $2A,$AC,$1D,$58,$07,$E0,$00,$00
C2AE: Sprite, 16x16 pixels. Disc/wheel
C2AE DEFB $03,$C0,$0E,$F0,$15,$58,$2A,$AC sprite-c2ae
C2B6 DEFB $35,$54,$6A,$AE,$55,$56,$6A,$AA
C2BE DEFB $55,$56,$6A,$AA,$55,$56,$2A,$AC
C2C6 DEFB $35,$54,$1A,$A8,$0D,$70,$03,$C0
C2CE: Sprite, 16x16 pixels. Disc/wheel
C2CE DEFB $00,$00,$00,$00,$00,$00,$00,$00 sprite-c2ce
C2D6 DEFB $00,$00,$00,$00,$00,$00,$00,$00
C2DE DEFB $00,$00,$03,$E0,$0E,$B8,$15,$54
C2E6 DEFB $2A,$AA,$1D,$5C,$0E,$B8,$01,$C0
C2EE: Sprite, 16x16 pixels. Disc/wheel
C2EE DEFB $00,$00,$00,$00,$00,$00,$00,$00 sprite-c2ee
C2F6 DEFB $00,$00,$00,$00,$03,$E0,$0E,$B8
C2FE DEFB $15,$54,$2A,$AA,$35,$56,$6A,$AB
C306 DEFB $55,$55,$3A,$AE,$0F,$78,$01,$C0
C30E: Sprite, 16x16 pixels. Disc/wheel
C30E DEFB $00,$00,$00,$00,$07,$E0,$0E,$B8 sprite-c30e
C316 DEFB $15,$54,$2A,$AA,$35,$56,$6A,$AB
C31E DEFB $55,$55,$6A,$AB,$55,$55,$6A,$AB
C326 DEFB $35,$5E,$1A,$AC,$0F,$78,$03,$E0
C32E: Sprite, 16x16 pixels. Small stars
C32E DEFB $00,$00,$00,$08,$00,$1C,$02,$08 sprite-c32e
C336 DEFB $17,$00,$2A,$40,$10,$A4,$00,$4E
C33E DEFB $08,$04,$1C,$10,$08,$38,$01,$10
C346 DEFB $02,$80,$01,$00,$00,$00,$00,$00
C34E: Sprite, 16x16 pixels. Small stars
C34E DEFB $00,$80,$11,$C0,$38,$80,$10,$40 sprite-c34e
C356 DEFB $00,$E8,$02,$54,$25,$08,$72,$00
C35E DEFB $20,$10,$08,$38,$1C,$10,$08,$00
C366 DEFB $00,$00,$00,$00,$00,$00,$00,$00
C36E: Sprite, 16x16 pixels. Small stars disappearing
C36E DEFB $00,$00,$00,$00,$04,$20,$00,$00 sprite-c36e
C376 DEFB $00,$00,$11,$00,$00,$10,$00,$40
C37E DEFB $08,$00,$00,$08,$04,$80,$00,$10
C386 DEFB $00,$80,$00,$00,$00,$00,$00,$00
C38E: Sprite $68, 16x8 pixels. Bubble source object 957C, animation frame 1
C38E DEFB $01,$10,$40,$38,$E0,$7C,$44,$3A sprite-c38e
C396 DEFB $1A,$15,$11,$22,$4A,$70,$04,$20
C39E: Sprite $69, 16x8 pixels. Bubble source object 957C, animation frame 2
C39E DEFB $04,$20,$0E,$50,$44,$88,$A8,$50 sprite-c39e
C3A6 DEFB $5C,$20,$3E,$02,$1C,$07,$08,$82
C3AE: Sprite, 32x32 pixels. Urn/well with seaweed
C3AE DEFB $00,$00,$00,$00,$00,$1E,$00,$00 sprite-c3ae
C3B6 DEFB $05,$FF,$FC,$00,$1F,$FF,$FF,$E0
C3BE DEFB $3F,$FF,$FF,$F0,$3F,$FF,$FF,$FC
C3C6 DEFB $7F,$FF,$FF,$FC,$7F,$FF,$FF,$F8
C3CE DEFB $3F,$FF,$FF,$FC,$01,$FF,$FF,$FC
C3D6 DEFB $10,$0F,$E0,$F0,$15,$C0,$1D,$04
C3DE DEFB $18,$AD,$1C,$A8,$0D,$5C,$1B,$30
C3E6 DEFB $09,$38,$B5,$68,$05,$58,$2D,$58
C3EE DEFB $02,$BA,$36,$68,$07,$D8,$4E,$58
C3F6 DEFB $0D,$A8,$94,$30,$0E,$88,$A8,$50
C3FE DEFB $0D,$50,$D0,$B0,$0A,$51,$A4,$60
C406 DEFB $0D,$45,$44,$C0,$06,$41,$03,$E0
C40E DEFB $03,$61,$23,$90,$03,$20,$4E,$50
C416 DEFB $01,$24,$0C,$B0,$01,$21,$18,$60
C41E DEFB $00,$20,$19,$20,$00,$40,$70,$C0
C426 DEFB $00,$41,$E1,$40,$00,$41,$00,$00
C42E: Mask, 32x32 pixels. Urn/well with seaweed
C42E DEFB $00,$1E,$00,$00,$05,$FF,$FC,$00 sprite-c42e
C436 DEFB $1F,$FF,$FF,$E0,$3F,$FF,$FF,$F0
C43E DEFB $7F,$FF,$FF,$FC,$7F,$FF,$FF,$FE
C446 DEFB $FF,$FF,$FF,$FE,$FF,$FF,$FF,$FC
C44E DEFB $7F,$FF,$FF,$FE,$7F,$FF,$FF,$FE
C456 DEFB $3F,$FF,$FF,$FE,$3F,$FF,$FF,$FE
C45E DEFB $3F,$FF,$FF,$FC,$1F,$FF,$FF,$FC
C466 DEFB $1F,$FF,$FF,$FC,$0F,$FF,$FF,$FC
C46E DEFB $07,$FF,$FF,$FC,$0F,$FF,$FF,$FC
C476 DEFB $1F,$FF,$FF,$F8,$1F,$FF,$FF,$F8
C47E DEFB $1F,$FF,$FF,$F8,$1F,$FF,$FF,$F0
C486 DEFB $1F,$FF,$FF,$E0,$0F,$FF,$FF,$F0
C48E DEFB $07,$FF,$FF,$F8,$03,$FF,$FF,$F8
C496 DEFB $03,$FF,$FF,$F8,$03,$FF,$FF,$F0
C49E DEFB $01,$FF,$FF,$E0,$01,$FF,$FF,$E0
C4A6 DEFB $01,$FF,$FF,$E0,$01,$FF,$FF,$80
C4AE: Sprite, 32x32 pixels. Clam shell with pearl
C4AE DEFB $00,$00,$00,$00,$00,$7C,$00,$00 sprite-c4ae
C4B6 DEFB $01,$FF,$9E,$00,$03,$E7,$FF,$00
C4BE DEFB $1F,$98,$23,$80,$3C,$7D,$51,$80
C4C6 DEFB $71,$7F,$AE,$F0,$6A,$B7,$D5,$18
C4CE DEFB $65,$6B,$FE,$A8,$6A,$B5,$FF,$5C
C4D6 DEFB $35,$6A,$FF,$AC,$32,$F5,$7F,$58
C4DE DEFB $19,$78,$1C,$A8,$0C,$E3,$E6,$D8
C4E6 DEFB $0D,$CF,$F9,$B0,$1E,$9F,$FC,$E0
C4EE DEFB $1D,$BC,$7E,$C0,$1F,$BC,$FE,$C0
C4F6 DEFB $07,$78,$FF,$40,$01,$79,$FF,$60
C4FE DEFB $07,$79,$FF,$30,$0F,$7F,$FF,$58
C506 DEFB $35,$7F,$FF,$2C,$4A,$BF,$FE,$56
C50E DEFB $55,$BF,$FE,$A6,$62,$9F,$FD,$DA
C516 DEFB $39,$4F,$FA,$A6,$3D,$F1,$C7,$4E
C51E DEFB $1E,$1E,$3C,$BC,$0F,$E1,$C3,$F8
C526 DEFB $03,$FD,$FF,$C0,$00,$3F,$7C,$00
C52E: Sprite, 16x24 pixels. Empty/unused frame
C52E DEFB $00,$00,$00,$00,$00,$00,$00,$00 sprite-c52e
C536 DEFB $00,$00,$00,$00,$00,$00,$00,$00
C53E DEFB $00,$00,$00,$00,$00,$00,$00,$00
C546 DEFB $00,$00,$00,$00,$00,$00,$00,$00
C54E DEFB $00,$00,$00,$00,$00,$00,$00,$00
C556 DEFB $00,$00,$00,$00,$00,$00,$00,$00
C55E: Sprite, 16x24 pixels. Oil can (anti-rust oil, refills Sweevo's suit)
C55E DEFB $00,$00,$0F,$80,$2F,$40,$60,$C0 sprite-c55e
C566 DEFB $60,$C0,$00,$C0,$1E,$D0,$2E,$D8
C56E DEFB $37,$3C,$3B,$FC,$28,$02,$2B,$FE
C576 DEFB $2A,$8A,$2A,$AA,$2A,$8A,$2A,$FA
C57E DEFB $2A,$DA,$2A,$DA,$2A,$FA,$2A,$BA
C586 DEFB $1A,$BA,$0A,$8A,$07,$FE,$00,$00
C58E: Mask, 16x24 pixels. Oil can
C58E DEFB $0F,$80,$1F,$C0,$7F,$E0,$FF,$E0 sprite-c58e
C596 DEFB $F1,$E0,$FF,$F0,$3F,$F8,$7F,$FC
C59E DEFB $7F,$FE,$7F,$FE,$7F,$FF,$7F,$FF
C5A6 DEFB $7F,$FF,$7F,$FF,$7F,$FF,$7F,$FF
C5AE DEFB $7F,$FF,$7F,$FF,$7F,$FF,$7F,$FF
C5B6 DEFB $3F,$FF,$1F,$FF,$0F,$FF,$07,$FE
C5BE: Sprite, 16x24 pixels. Shell item
C5BE DEFB $00,$00,$00,$00,$00,$C0,$00,$E0 sprite-c5be
C5C6 DEFB $01,$50,$03,$B0,$03,$40,$01,$F0
C5CE DEFB $06,$D8,$0F,$78,$0D,$80,$07,$F0
C5D6 DEFB $0B,$98,$1C,$F8,$17,$00,$0D,$F0
C5DE DEFB $07,$98,$19,$F8,$3E,$F0,$37,$0C
C5E6 DEFB $3D,$FC,$1F,$98,$07,$F0,$00,$00
C5EE: Mask, 16x24 pixels. Shell item
C5EE DEFB $00,$00,$00,$C0,$01,$E0,$01,$F0 sprite-c5ee
C5F6 DEFB $03,$F8,$07,$F8,$03,$E0,$07,$F8
C5FE DEFB $0F,$FC,$1F,$FC,$1F,$F8,$0F,$F8
C606 DEFB $1F,$FC,$3F,$FC,$3F,$F8,$1F,$F8
C60E DEFB $1F,$FC,$3F,$FC,$7F,$F8,$7F,$FC
C616 DEFB $7F,$FC,$3F,$FC,$1F,$F8,$0F,$F0
C61E: Sprite, 16x24 pixels. Harpoon item
C61E DEFB $00,$00,$03,$00,$07,$80,$06,$C0 sprite-c61e
C626 DEFB $0C,$60,$0D,$F0,$1F,$F8,$1E,$7C
C62E DEFB $3D,$BC,$3B,$C0,$7A,$40,$77,$C0
C636 DEFB $67,$40,$07,$E0,$0F,$F0,$0E,$78
C63E DEFB $1D,$BC,$1D,$5C,$3B,$C0,$3B,$40
C646 DEFB $7B,$C0,$73,$C0,$03,$00,$00,$00
C64E: Mask, 16x24 pixels. Harpoon item
C64E DEFB $07,$00,$07,$80,$0F,$C0,$0F,$E0 sprite-c64e
C656 DEFB $1F,$F0,$1F,$F8,$3F,$FC,$3F,$FE
C65E DEFB $7F,$FE,$7F,$FC,$FF,$E0,$FF,$E0
C666 DEFB $FF,$E0,$6F,$F0,$1F,$F8,$1F,$FC
C66E DEFB $3F,$FE,$3F,$FE,$7F,$FC,$7F,$E0
C676 DEFB $FF,$E0,$FF,$E0,$77,$C0,$03,$00
C67E: Sprite, 16x24 pixels. Spoon item (weapon; kills Jellyfish)
C67E DEFB $00,$00,$01,$C0,$03,$E0,$05,$70 sprite-c67e
C686 DEFB $06,$F0,$0D,$78,$0A,$F8,$0D,$78
C68E DEFB $0E,$F8,$05,$70,$06,$B0,$03,$60
C696 DEFB $00,$A0,$00,$E0,$00,$60,$00,$E0
C69E DEFB $00,$C0,$01,$C0,$03,$C0,$07,$80
C6A6 DEFB $0D,$80,$0F,$00,$0F,$00,$06,$00
C6AE: Mask, 16x24 pixels. Spoon item
C6AE DEFB $01,$C0,$03,$E0,$07,$F0,$0F,$F8 sprite-c6ae
C6B6 DEFB $0F,$F8,$1F,$FC,$1F,$FC,$1F,$FC
C6BE DEFB $1F,$FC,$0F,$F8,$0F,$F8,$07,$F0
C6C6 DEFB $03,$F0,$00,$F0,$00,$F0,$01,$F0
C6CE DEFB $03,$E0,$07,$E0,$0F,$C0,$1F,$C0
C6D6 DEFB $1F,$80,$1F,$80,$0F,$00,$06,$00
C6DE: Sprite, 16x24 pixels. Ball or pearl
C6DE DEFB $00,$00,$00,$00,$00,$00,$00,$00 sprite-c6de
C6E6 DEFB $00,$00,$00,$00,$00,$00,$00,$00
C6EE DEFB $03,$E0,$0F,$F8,$1F,$FC,$3C,$7E
C6F6 DEFB $3C,$FE,$78,$FF,$79,$FF,$79,$FF
C6FE DEFB $7F,$FF,$7F,$FF,$3F,$FE,$3F,$FE
C706 DEFB $1F,$FC,$0F,$F8,$03,$E0,$00,$00
C70E: Mask, 16x24 pixels. Ball or pearl
C70E DEFB $00,$00,$00,$00,$00,$00,$00,$00 sprite-c70e
C716 DEFB $00,$00,$00,$00,$00,$00,$03,$E0
C71E DEFB $0F,$F8,$1F,$FC,$3F,$FE,$7F,$FF
C726 DEFB $7F,$FF,$FF,$FF,$FF,$FF,$FF,$FF
C72E DEFB $FF,$FF,$FF,$FF,$7F,$FF,$7F,$FF
C736 DEFB $3F,$FE,$1F,$FC,$0F,$F8,$07,$F0
C73E: Sprite, 16x24 pixels. Item icon, unidentified
C73E DEFB $00,$00,$00,$08,$00,$0C,$00,$1E sprite-c73e
C746 DEFB $00,$1F,$10,$1F,$18,$3C,$3C,$32
C74E DEFB $3E,$2E,$3F,$0E,$78,$0E,$64,$0E
C756 DEFB $5C,$0E,$1C,$1E,$1C,$1C,$1E,$3C
C75E DEFB $0F,$B8,$0F,$D8,$07,$D0,$01,$F0
C766 DEFB $00,$70,$00,$F0,$00,$F0,$00,$60
C76E: Mask, 16x24 pixels. Item icon, unidentified
C76E DEFB $00,$08,$00,$1C,$00,$1E,$00,$3F sprite-c76e
C776 DEFB $10,$3F,$38,$3F,$3C,$7F,$7E,$7F
C77E DEFB $7F,$7F,$7F,$BF,$FF,$1F,$FE,$1F
C786 DEFB $FE,$1F,$7E,$3F,$3E,$3E,$3F,$BE
C78E DEFB $1F,$FC,$1F,$F8,$0F,$F8,$07,$F8
C796 DEFB $01,$F8,$01,$F8,$01,$F8,$00,$F0
C79E: Sprite, 16x24 pixels. Item icon, unidentified
C79E DEFB $00,$00,$03,$80,$0F,$E0,$19,$30 sprite-c79e
C7A6 DEFB $10,$10,$10,$10,$10,$10,$11,$10
C7AE DEFB $13,$90,$1B,$B0,$0B,$A0,$03,$80
C7B6 DEFB $01,$00,$07,$C0,$0D,$60,$16,$D0
C7BE DEFB $3B,$B8,$6D,$6C,$56,$D4,$2D,$68
C7C6 DEFB $3B,$B8,$16,$D0,$07,$C0,$00,$00
C7CE: Mask, 16x24 pixels. Item icon, unidentified
C7CE DEFB $03,$80,$0F,$E0,$1F,$F0,$3F,$F8 sprite-c7ce
C7D6 DEFB $39,$38,$38,$38,$39,$38,$3B,$B8
C7DE DEFB $3B,$B8,$3F,$F8,$1F,$F0,$0F,$E0
C7E6 DEFB $03,$80,$0F,$E0,$1F,$F0,$3F,$F8
C7EE DEFB $7F,$FC,$FF,$FE,$FF,$FE,$7F,$FC
C7F6 DEFB $7F,$FC,$3F,$F8,$3F,$F8,$0F,$E0
C7FE: Sprite, 40x24 pixels. Wall
C7FE DEFB $88,$50,$00,$00,$0C,$02,$B8,$00 sprite-c7fe
C806 DEFB $00,$06,$10,$58,$00,$01,$13,$02
C80E DEFB $B0,$00,$80,$4A,$05,$60,$00,$09
C816 DEFB $35,$92,$C0,$00,$00,$46,$00,$60
C81E DEFB $00,$00,$29,$04,$A0,$00,$24,$8A
C826 DEFB $00,$70,$00,$00,$45,$01,$38,$00
C82E DEFB $01,$92,$04,$5C,$00,$10,$49,$01
C836 DEFB $2C,$00,$01,$42,$01,$56,$00,$00
C83E DEFB $B9,$00,$8A,$00,$11,$2A,$00,$26
C846 DEFB $00,$02,$90,$20,$0A,$00,$04,$95
C84E DEFB $00,$27,$00,$02,$48,$00,$89,$00
C856 DEFB $45,$55,$01,$07,$80,$00,$A8,$00
C85E DEFB $0B,$80,$02,$0B,$00,$25,$00,$01
C866 DEFB $92,$00,$09,$00,$02,$92,$00,$07
C86E DEFB $00,$01,$0E,$00,$0A,$00,$20,$54
C876: Sprite, 40x96 pixels. Wall
C876 DEFB $00,$36,$00,$00,$4C,$81,$0B,$80 sprite-c876
C87E DEFB $01,$14,$00,$04,$C0,$12,$8C,$00
C886 DEFB $33,$70,$00,$16,$80,$04,$B0,$00
C88E DEFB $4A,$00,$12,$5C,$00,$06,$02,$05
C896 DEFB $34,$22,$2A,$00,$20,$CE,$00,$06
C89E DEFB $20,$06,$2A,$01,$2E,$00,$11,$4F
C8A6 DEFB $00,$4C,$00,$08,$33,$00,$2C,$00
C8AE DEFB $01,$0D,$00,$48,$10,$10,$93,$82
C8B6 DEFB $18,$80,$02,$24,$80,$08,$10,$04
C8BE DEFB $8A,$81,$5C,$00,$01,$15,$80,$14
C8C6 DEFB $00,$0A,$2B,$00,$4C,$00,$04,$56
C8CE DEFB $00,$17,$80,$8A,$3E,$08,$53,$00
C8D6 DEFB $01,$48,$01,$29,$00,$00,$28,$00
C8DE DEFB $02,$00,$05,$58,$40,$15,$00,$00
C8E6 DEFB $30,$11,$24,$00,$00,$50,$00,$05
C8EE DEFB $10,$08,$B0,$04,$88,$00,$00,$60
C8F6 DEFB $82,$23,$00,$00,$A0,$00,$88,$00
C8FE DEFB $04,$60,$09,$22,$00,$20,$C0,$20
C906 DEFB $10,$00,$00,$40,$02,$A5,$00,$04
C90E DEFB $E0,$20,$11,$00,$00,$60,$02,$45
C916 DEFB $30,$04,$A0,$00,$51,$30,$00,$60
C91E DEFB $09,$15,$18,$01,$30,$22,$44,$08
C926 DEFB $00,$50,$09,$11,$18,$04,$38,$02
C92E DEFB $48,$0C,$21,$18,$00,$95,$14,$00
C936 DEFB $2C,$04,$08,$0C,$01,$14,$01,$45
C93E DEFB $0B,$C4,$0C,$00,$92,$00,$C0,$56
C946 DEFB $02,$44,$05,$79,$0B,$01,$10,$00
C94E DEFB $A8,$05,$82,$42,$09,$5C,$52,$80
C956 DEFB $84,$00,$AC,$01,$A0,$0A,$02,$14
C95E DEFB $06,$80,$95,$00,$AE,$21,$C2,$0A
C966 DEFB $00,$16,$02,$40,$10,$00,$AA,$01
C96E DEFB $40,$85,$02,$8E,$14,$C0,$08,$00
C976 DEFB $92,$01,$60,$02,$00,$46,$12,$B0
C97E DEFB $8D,$00,$13,$80,$50,$12,$00,$82
C986 DEFB $80,$B0,$00,$00,$09,$C2,$58,$02
C98E DEFB $00,$21,$48,$28,$24,$04,$14,$C2
C996 DEFB $9C,$00,$00,$23,$41,$24,$02,$00
C99E DEFB $88,$C2,$9C,$10,$00,$01,$91,$28
C9A6 DEFB $00,$00,$12,$80,$99,$08,$00,$89
C9AE DEFB $82,$2C,$00,$00,$11,$10,$94,$02
C9B6 DEFB $00,$07,$02,$24,$14,$00,$04,$00
C9BE DEFB $F4,$01,$00,$5C,$00,$BC,$0A,$00
C9C6 DEFB $08,$17,$D7,$14,$00,$9C,$06,$2B
C9CE DEFB $E7,$00,$64,$0C,$85,$7D,$00,$97
C9D6 DEFB $88,$00,$AA,$00,$12,$E8,$08,$55
C9DE DEFB $04,$25,$38,$00,$2A,$00,$12,$8C
C9E6 DEFB $00,$85,$00,$A9,$2B,$00,$28,$00
C9EE DEFB $05,$55,$81,$03,$00,$10,$27,$80
C9F6 DEFB $27,$00,$84,$8A,$F0,$1C,$00,$24
C9FE DEFB $55,$40,$70,$04,$02,$2A,$B3,$80
CA06 DEFB $00,$10,$89,$58,$00,$00,$4A,$52
CA0E DEFB $98,$00,$00,$05,$35,$78,$00,$00
CA16 DEFB $11,$52,$F0,$00,$00,$04,$AF,$80
CA1E DEFB $00,$00,$41,$78,$00,$00,$00,$09
CA26 DEFB $C0,$00,$00,$00,$03,$00,$00,$00
CA2E DEFB $02,$06,$00,$00,$00,$00,$1C,$00
CA36 DEFB $00,$00,$0F,$70,$00,$00,$00,$3B
CA3E DEFB $C0,$00,$00,$00,$E0,$00,$00,$00
CA46 DEFB $00,$80,$00,$00,$00,$00,$00,$00
CA4E DEFB $00,$00,$00,$00,$00,$00,$00,$00
CA56: Sprite, 48x96 pixels. Wall
CA56 DEFB $00,$00,$04,$00,$01,$4C,$01,$04 sprite-ca56
CA5E DEFB $16,$02,$04,$CA,$80,$00,$83,$00
CA66 DEFB $21,$4C,$80,$00,$15,$00,$14,$E7
CA6E DEFB $C0,$00,$23,$00,$03,$21,$C0,$04
CA76 DEFB $11,$C0,$28,$A3,$60,$00,$82,$E2
CA7E DEFB $01,$62,$A0,$00,$11,$70,$0C,$C3
CA86 DEFB $60,$00,$84,$B1,$23,$C1,$C0,$04
CA8E DEFB $25,$60,$0E,$C1,$80,$01,$08,$E0
CA96 DEFB $1D,$40,$80,$00,$85,$82,$76,$C0
CA9E DEFB $80,$24,$4A,$80,$03,$80,$C0,$01
CAA6 DEFB $11,$80,$0A,$80,$C0,$00,$8A,$C0
CAAE DEFB $25,$C0,$40,$20,$51,$41,$0A,$C0
CAB6 DEFB $C0,$04,$0A,$C0,$25,$40,$C0,$01
CABE DEFB $15,$40,$80,$C0,$82,$02,$43,$C0
CAC6 DEFB $09,$60,$80,$29,$15,$01,$00,$A0
CACE DEFB $00,$00,$4B,$02,$25,$60,$00,$02
CAD6 DEFB $15,$00,$11,$20,$00,$08,$47,$10
CADE DEFB $80,$60,$40,$01,$2A,$00,$0A,$A0
CAE6 DEFB $00,$02,$8E,$00,$80,$50,$00,$08
CAEE DEFB $56,$00,$02,$B0,$01,$02,$14,$00
CAF6 DEFB $20,$50,$00,$00,$AC,$10,$09,$30
CAFE DEFB $00,$04,$14,$00,$24,$D0,$00,$02
CB06 DEFB $AC,$02,$01,$30,$00,$08,$98,$00
CB0E DEFB $88,$70,$00,$01,$28,$00,$25,$20
CB16 DEFB $00,$20,$18,$02,$50,$A0,$00,$0A
CB1E DEFB $B8,$00,$25,$60,$00,$00,$10,$80
CB26 DEFB $80,$B0,$02,$01,$30,$00,$01,$30
CB2E DEFB $00,$00,$9C,$02,$0A,$D0,$00,$0A
CB36 DEFB $2C,$20,$02,$B0,$00,$00,$96,$00
CB3E DEFB $89,$50,$00,$21,$2A,$00,$02,$F0
CB46 DEFB $00,$00,$17,$02,$29,$C0,$00,$04
CB4E DEFB $8B,$00,$02,$80,$00,$01,$55,$00
CB56 DEFB $05,$80,$80,$08,$2B,$82,$0B,$80
CB5E DEFB $81,$00,$85,$80,$06,$00,$80,$04
CB66 DEFB $2A,$80,$2A,$00,$C0,$02,$95,$90
CB6E DEFB $17,$80,$40,$00,$2B,$00,$09,$F0
CB76 DEFB $C1,$09,$05,$00,$26,$B8,$40,$02
CB7E DEFB $AB,$02,$09,$5C,$C0,$00,$17,$00
CB86 DEFB $16,$AE,$80,$20,$AA,$00,$09,$D2
CB8E DEFB $80,$08,$56,$00,$42,$57,$80,$02
CB96 DEFB $AA,$00,$02,$AB,$00,$20,$16,$01
CB9E DEFB $08,$55,$00,$00,$AA,$00,$02,$AB
CBA6 DEFB $01,$02,$56,$10,$49,$45,$C0,$04
CBAE DEFB $BC,$00,$02,$2A,$C0,$00,$50,$00
CBB6 DEFB $15,$43,$40,$20,$B0,$04,$81,$1F
CBBE DEFB $E0,$01,$20,$00,$14,$EA,$61,$04
CBC6 DEFB $98,$12,$41,$25,$B0,$00,$3C,$00
CBCE DEFB $93,$00,$58,$00,$97,$82,$04,$C1
CBD6 DEFB $2C,$01,$2E,$F0,$3A,$70,$D7,$80
CBDE DEFB $11,$DC,$75,$58,$2A,$84,$2A,$97
CBE6 DEFB $EA,$AC,$55,$C0,$A5,$A2,$51,$54
CBEE DEFB $AA,$C0,$12,$85,$04,$AC,$51,$70
CBF6 DEFB $05,$C0,$24,$96,$4A,$B1,$2A,$C0
CBFE DEFB $09,$4A,$15,$50,$05,$40,$00,$16
CC06 DEFB $52,$B0,$A2,$E1,$02,$2B,$05,$50
CC0E DEFB $05,$60,$00,$01,$4A,$B4,$14,$B0
CC16 DEFB $01,$23,$05,$58,$22,$70,$40,$05
CC1E DEFB $24,$A8,$05,$20,$04,$87,$51,$5C
CC26 DEFB $92,$E0,$00,$0C,$A9,$A4,$21,$40
CC2E DEFB $00,$48,$24,$4C,$02,$C1,$04,$30
CC36 DEFB $45,$0C,$09,$F0,$03,$E0,$50,$48
CC3E DEFB $22,$9F,$06,$00,$22,$18,$09,$81
CC46 DEFB $D8,$00,$08,$BE,$00,$80,$00,$00
CC4E DEFB $A2,$F5,$4A,$80,$00,$00,$0A,$DA
CC56 DEFB $F0,$80,$00,$00,$28,$85,$75,$00
CC5E DEFB $00,$00,$12,$AA,$B9,$00,$00,$00
CC66 DEFB $29,$80,$5D,$00,$00,$00,$01,$04
CC6E DEFB $AF,$00,$00,$00,$53,$09,$1B,$00
CC76 DEFB $00,$00,$0A,$40,$0E,$00,$00,$00
CC7E DEFB $96,$00,$96,$00,$00,$00,$BA,$00
CC86 DEFB $0C,$00,$00,$00,$E1,$80,$70,$00
CC8E DEFB $00,$00,$40,$7F,$00,$00,$00,$00
CC96: Sprite, 40x80 pixels. Wall
CC96 DEFB $80,$00,$0A,$40,$00,$00,$00,$0D sprite-cc96
CC9E DEFB $28,$00,$A0,$00,$0A,$80,$40,$00
CCA6 DEFB $00,$1D,$48,$00,$40,$00,$14,$80
CCAE DEFB $00,$28,$00,$11,$22,$00,$41,$00
CCB6 DEFB $1E,$80,$00,$A4,$00,$09,$48,$20
CCBE DEFB $50,$10,$0A,$21,$00,$AA,$80,$0C
CCC6 DEFB $80,$00,$92,$00,$05,$28,$00,$E9
CCCE DEFB $10,$04,$82,$20,$24,$40,$03,$48
CCD6 DEFB $00,$32,$00,$01,$20,$00,$24,$84
CCDE DEFB $01,$D2,$40,$3A,$90,$00,$A0,$00
CCE6 DEFB $0A,$00,$01,$AA,$00,$0D,$41,$01
CCEE DEFB $C8,$00,$05,$08,$00,$A4,$80,$02
CCF6 DEFB $28,$00,$C8,$00,$03,$95,$00,$6A
CCFE DEFB $10,$01,$5C,$00,$44,$00,$01,$C0
CD06 DEFB $80,$50,$80,$00,$94,$00,$C4,$00
CD0E DEFB $00,$E9,$41,$A9,$10,$80,$74,$83
CD16 DEFB $54,$00,$00,$56,$A3,$A8,$40,$20
CD1E DEFB $E1,$51,$D5,$08,$00,$D2,$A8,$AC
CD26 DEFB $00,$00,$AA,$50,$F2,$40,$01,$D2
CD2E DEFB $68,$15,$08,$11,$A5,$24,$1A,$00
CD36 DEFB $01,$54,$98,$0C,$80,$01,$AA,$B4
CD3E DEFB $0A,$20,$01,$53,$88,$0D,$00,$01
CD46 DEFB $A5,$24,$0A,$82,$01,$52,$C8,$89
CD4E DEFB $00,$11,$A4,$B2,$06,$A0,$01,$D3
CD56 DEFB $68,$03,$80,$10,$E8,$54,$03,$40
CD5E DEFB $00,$32,$20,$11,$80,$04,$29,$C2
CD66 DEFB $81,$48,$00,$32,$A8,$01,$80,$00
CD6E DEFB $14,$C4,$01,$40,$00,$19,$20,$01
CD76 DEFB $88,$04,$2C,$C8,$83,$80,$00,$06
CD7E DEFB $A0,$03,$22,$00,$4A,$D4,$02,$80
CD86 DEFB $01,$13,$A0,$03,$A0,$00,$28,$D1
CD8E DEFB $01,$42,$00,$14,$68,$01,$E8,$01
CD96 DEFB $28,$70,$02,$A0,$00,$00,$2A,$03
CD9E DEFB $70,$00,$00,$30,$06,$B1,$00,$04
CDA6 DEFB $18,$85,$58,$00,$00,$12,$06,$A9
CDAE DEFB $80,$00,$18,$05,$56,$80,$00,$18
CDB6 DEFB $0A,$AF,$E3,$C0,$12,$0D,$58,$73
CDBE DEFB $E0,$30,$0B,$F0,$BE,$BF,$F0,$0E
CDC6 DEFB $00,$2A,$5A,$BC,$7C,$00,$25,$87
CDCE DEFB $57,$C0,$00,$11,$46,$41,$80,$00
CDD6 DEFB $06,$97,$0F,$00,$00,$09,$2B,$D8
CDDE DEFB $00,$00,$00,$94,$F0,$00,$00,$02
CDE6 DEFB $A9,$00,$00,$00,$00,$96,$00,$00
CDEE DEFB $00,$02,$8C,$00,$00,$00,$00,$38
CDF6 DEFB $00,$00,$00,$00,$20,$00,$00,$00
CDFE DEFB $07,$E0,$00,$00,$00,$FC,$00,$00
CE06 DEFB $00,$00,$00,$00,$00,$00,$00,$00
CE0E DEFB $00,$00,$00,$00,$00,$00,$00,$00
CE16 DEFB $00,$00,$00,$00,$00,$00,$00,$00
CE1E DEFB $00,$00,$00,$00,$00,$00,$00,$00
CE26: Sprite, 8x160 pixels. Font: alphanumeric character set, used for HUD/score text (not a game sprite)
CE26 DEFB $00,$72,$56,$52,$52,$52,$52,$77 sprite-ce26
CE2E DEFB $00,$77,$11,$11,$73,$41,$41,$77
CE36 DEFB $00,$47,$44,$44,$57,$71,$11,$17
CE3E DEFB $00,$47,$41,$41,$71,$51,$51,$71
CE46 DEFB $00,$77,$55,$55,$77,$51,$51,$71
CE4E DEFB $00,$76,$55,$55,$76,$55,$55,$56
CE56 DEFB $00,$76,$45,$45,$45,$45,$45,$76
CE5E DEFB $00,$77,$44,$44,$66,$44,$44,$74
CE66 DEFB $00,$75,$45,$45,$57,$55,$55,$75
CE6E DEFB $00,$77,$21,$21,$21,$25,$25,$77
CE76 DEFB $00,$54,$54,$54,$64,$54,$54,$57
CE7E DEFB $00,$55,$75,$77,$77,$57,$55,$55
CE86 DEFB $00,$77,$55,$55,$57,$54,$54,$74
CE8E DEFB $00,$77,$55,$55,$56,$55,$75,$25
CE96 DEFB $00,$77,$42,$42,$72,$12,$12,$72
CE9E DEFB $00,$55,$55,$55,$55,$55,$55,$72
CEA6 DEFB $00,$55,$55,$55,$52,$75,$75,$55
CEAE DEFB $00,$57,$51,$51,$72,$24,$24,$27
CEB6 DEFB $00,$00,$00,$00,$07,$00,$00,$00
CEBE DEFB $00,$20,$20,$20,$20,$20,$00,$22
CEC6: Mask, 24x32 pixels. Diver silhouette
CEC6 DEFB $00,$3F,$00,$00,$7F,$80,$00,$FF sprite-cec6
CECE DEFB $C0,$01,$FF,$E0,$01,$FF,$F0,$03
CED6 DEFB $FF,$F0,$03,$FF,$F0,$03,$FF,$F0
CEDE DEFB $01,$FF,$F0,$03,$FF,$F0,$07,$FF
CEE6 DEFB $E0,$0F,$FF,$C0,$1F,$FF,$C0,$1F
CEEE DEFB $FF,$E0,$1F,$FF,$F0,$3F,$FF,$F8
CEF6 DEFB $3F,$FF,$FC,$3F,$FF,$FC,$7F,$FF
CEFE DEFB $FC,$7F,$FF,$FC,$7F,$FF,$78,$7F
CF06 DEFB $FF,$B0,$7F,$FF,$C6,$3F,$FF,$DF
CF0E DEFB $1F,$FF,$FF,$07,$FF,$FF,$0F,$FF
CF16 DEFB $FF,$0F,$FF,$FF,$07,$FF,$FE,$03
CF1E DEFB $FF,$FC,$03,$FF,$10,$01,$FF,$00
CF26: Mask, 32x24 pixels.
CF26 DEFB $00,$00,$00,$00,$00,$07,$00,$00 sprite-cf26
CF2E DEFB $00,$0F,$80,$00,$01,$8F,$C0,$00
CF36 DEFB $03,$CF,$E0,$00,$07,$EF,$F0,$00
CF3E DEFB $1F,$FF,$FF,$C0,$7F,$FF,$FF,$E0
CF46 DEFB $FF,$FF,$FF,$F0,$FF,$FF,$FF,$F8
CF4E DEFB $FF,$1F,$FF,$FC,$FF,$3F,$FF,$FC
CF56 DEFB $7E,$3F,$FF,$FC,$3E,$1F,$FF,$FC
CF5E DEFB $1C,$3F,$FF,$FC,$08,$7F,$FF,$F8
CF66 DEFB $00,$7F,$FF,$FC,$00,$FC,$DF,$FE
CF6E DEFB $00,$F8,$0F,$FF,$00,$F0,$0F,$FF
CF76 DEFB $00,$FE,$06,$DA,$00,$7F,$00,$00
CF7E DEFB $00,$7F,$00,$00,$00,$3A,$00,$00
CF86: Mask, 32x24 pixels.
CF86 DEFB $00,$03,$80,$00,$00,$03,$C0,$00 sprite-cf86
CF8E DEFB $00,$07,$C0,$00,$00,$07,$E0,$00
CF96 DEFB $00,$0F,$E0,$00,$00,$CF,$F0,$00
CF9E DEFB $01,$EF,$FF,$C0,$07,$FF,$FF,$E0
CFA6 DEFB $0F,$FF,$FF,$F0,$3F,$FF,$FF,$F8
CFAE DEFB $7F,$FF,$FF,$FC,$FF,$BF,$FF,$FC
CFB6 DEFB $FF,$BF,$FF,$FC,$FF,$3F,$FF,$FC
CFBE DEFB $FE,$7F,$FF,$FC,$7E,$FF,$FF,$F8
CFC6 DEFB $3D,$FF,$FF,$FE,$1F,$F7,$FF,$FE
CFCE DEFB $0B,$E0,$EF,$FE,$03,$F8,$0F,$FE
CFD6 DEFB $01,$FC,$06,$DF,$01,$FC,$00,$3F
CFDE DEFB $00,$E8,$00,$3F,$00,$00,$00,$1A
CFE6: Mask, 32x24 pixels.
CFE6 DEFB $01,$80,$00,$00,$03,$C0,$00,$00 sprite-cfe6
CFEE DEFB $07,$E1,$80,$00,$7F,$E3,$C0,$00
CFF6 DEFB $FF,$F7,$E0,$00,$FF,$F7,$F0,$00
CFFE DEFB $FF,$FF,$FF,$C0,$7F,$FF,$FF,$E0
D006 DEFB $3F,$7F,$FF,$F0,$1E,$7F,$FF,$F8
D00E DEFB $0E,$3F,$FF,$FC,$04,$3F,$FF,$FC
D016 DEFB $00,$3F,$FF,$FC,$00,$3F,$FF,$FC
D01E DEFB $00,$7F,$FF,$FC,$00,$7F,$FF,$FC
D026 DEFB $00,$7F,$FF,$FE,$00,$3F,$FF,$FE
D02E DEFB $00,$3F,$EF,$EC,$00,$1F,$8F,$E0
D036 DEFB $00,$0F,$C6,$C0,$00,$0F,$E0,$00
D03E DEFB $00,$07,$E0,$00,$00,$03,$40,$00
D046: Mask, 32x24 pixels.
D046 DEFB $01,$81,$80,$00,$03,$C3,$C0,$00 sprite-d046
D04E DEFB $07,$E7,$C0,$00,$7F,$EF,$E0,$00
D056 DEFB $FF,$FF,$E0,$00,$FF,$FF,$F0,$00
D05E DEFB $FF,$FF,$FC,$00,$7F,$FF,$FE,$00
D066 DEFB $3F,$7F,$FF,$C0,$1F,$7F,$FF,$E0
D06E DEFB $0E,$1F,$FF,$F0,$04,$3F,$FF,$F8
D076 DEFB $00,$3F,$FF,$FC,$00,$1F,$FF,$FC
D07E DEFB $00,$07,$FF,$FC,$00,$0F,$FF,$FC
D086 DEFB $00,$1F,$FF,$FC,$00,$1F,$FF,$F8
D08E DEFB $00,$1F,$BF,$FE,$00,$0F,$1F,$FE
D096 DEFB $00,$0F,$EF,$FC,$00,$07,$FF,$FF
D09E DEFB $00,$03,$F6,$FF,$00,$00,$D0,$16
D0A6: Mask, 32x24 pixels.
D0A6 DEFB $00,$07,$C0,$00,$00,$1F,$F0,$00 sprite-d0a6
D0AE DEFB $34,$3F,$F8,$50,$7E,$7F,$F8,$F8
D0B6 DEFB $7E,$7F,$F9,$F8,$3E,$FF,$FD,$F0
D0BE DEFB $1F,$FF,$FF,$E0,$0F,$FF,$FF,$C0
D0C6 DEFB $0F,$FF,$FF,$FC,$07,$FF,$FF,$FE
D0CE DEFB $03,$FF,$FF,$FF,$03,$FF,$FF,$FF
D0D6 DEFB $01,$FF,$FF,$FF,$01,$FF,$FF,$FF
D0DE DEFB $00,$7F,$FF,$FF,$00,$FF,$FF,$FF
D0E6 DEFB $00,$7F,$FF,$FE,$00,$7F,$FF,$FE
D0EE DEFB $00,$7F,$FF,$FE,$00,$7F,$FF,$FC
D0F6 DEFB $00,$3F,$FE,$FC,$00,$3F,$FE,$18
D0FE DEFB $00,$1F,$EC,$00,$00,$07,$C0,$00
D106: Mask, 32x24 pixels.
D106 DEFB $03,$80,$00,$78,$0F,$E0,$00,$FC sprite-d106
D10E DEFB $1F,$F0,$01,$FE,$3F,$F8,$01,$FE
D116 DEFB $7F,$FF,$81,$FE,$7F,$FF,$E1,$FE
D11E DEFB $7F,$FF,$F1,$FE,$7F,$FF,$FF,$FC
D126 DEFB $7F,$FF,$FF,$FC,$3F,$FF,$FF,$FC
D12E DEFB $1F,$FF,$FF,$FC,$3F,$FF,$FF,$FC
D136 DEFB $7F,$FF,$FF,$F8,$7F,$FF,$FE,$30
D13E DEFB $FF,$FF,$FC,$00,$F9,$FF,$FC,$00
D146 DEFB $FE,$FF,$FC,$00,$7E,$0F,$FC,$00
D14E DEFB $3F,$8F,$F8,$00,$3F,$87,$F8,$00
D156 DEFB $1F,$83,$F8,$00,$0D,$01,$F8,$00
D15E DEFB $00,$00,$F0,$00,$00,$00,$60,$00
D166: Mask, 32x24 pixels.
D166 DEFB $00,$00,$00,$00,$00,$07,$00,$00 sprite-d166
D16E DEFB $00,$0F,$80,$00,$01,$8F,$C0,$00
D176 DEFB $03,$CF,$E0,$00,$07,$EF,$F0,$00
D17E DEFB $1F,$FF,$FC,$F0,$7F,$FF,$FF,$FC
D186 DEFB $FF,$FF,$FF,$FE,$FF,$7F,$FF,$FE
D18E DEFB $FF,$3F,$FF,$FF,$FE,$3F,$FF,$FF
D196 DEFB $7E,$3F,$FF,$FF,$3E,$1F,$FF,$FF
D19E DEFB $1C,$3F,$FF,$FF,$00,$7F,$FF,$FE
D1A6 DEFB $00,$7F,$FF,$FF,$00,$FC,$FB,$FF
D1AE DEFB $00,$FC,$01,$FF,$00,$F8,$00,$FF
D1B6 DEFB $00,$FE,$00,$46,$00,$7F,$00,$00
D1BE DEFB $00,$7F,$00,$00,$00,$3A,$00,$00
D1C6: Mask, 24x24 pixels. Fish cloud
D1C6 DEFB $60,$01,$80,$FC,$03,$F8,$FE,$C3 sprite-d1c6
D1CE DEFB $FC,$FF,$FF,$FE,$FF,$FF,$FF,$7F
D1D6 DEFB $FF,$FF,$7F,$FF,$FF,$3E,$FF,$FE
D1DE DEFB $0F,$7F,$FC,$1E,$3F,$F8,$3D,$CF
D1E6 DEFB $FC,$3F,$EF,$FE,$3F,$F7,$FE,$1F
D1EE DEFB $FB,$FE,$4F,$F9,$FC,$EF,$FC,$F8
D1F6 DEFB $FF,$FF,$FC,$FF,$FF,$FE,$7F,$FF
D1FE DEFB $FF,$7F,$FF,$FF,$3F,$FF,$FF,$1F
D206 DEFB $3F,$7E,$07,$8E,$1C,$03,$00,$00
D20E: Mask, 24x24 pixels. Fish cloud
D20E DEFB $30,$00,$C0,$7E,$01,$F8,$7F,$61 sprite-d20e
D216 DEFB $FC,$3F,$FD,$FE,$3F,$FF,$FF,$3F
D21E DEFB $FF,$FF,$3F,$FF,$FF,$1F,$FF,$FE
D226 DEFB $1F,$3F,$FC,$3F,$CF,$FC,$3F,$EF
D22E DEFB $FC,$3F,$F7,$FE,$1F,$FB,$FE,$0F
D236 DEFB $FB,$FE,$67,$F1,$F8,$FF,$EC,$FC
D23E DEFB $FF,$FF,$FC,$FF,$FF,$FC,$FF,$FF
D246 DEFB $FE,$7F,$FF,$FF,$3F,$FF,$FF,$1F
D24E DEFB $3E,$FF,$06,$0F,$7E,$00,$06,$18
D256: Mask, 24x32 pixels. Jellyfish
D256 DEFB $00,$01,$E0,$00,$0F,$F8,$00,$1F sprite-d256
D25E DEFB $FC,$00,$3F,$FE,$00,$7F,$FE,$00
D266 DEFB $FF,$FF,$00,$FF,$FF,$01,$FF,$FF
D26E DEFB $01,$FF,$FF,$01,$FF,$FF,$0F,$FF
D276 DEFB $FE,$1F,$FF,$FE,$39,$FF,$FC,$7F
D27E DEFB $FF,$FC,$7E,$FF,$FC,$FD,$FF,$F8
D286 DEFB $DF,$FF,$F8,$DF,$FD,$F0,$DB,$EE
D28E DEFB $60,$7F,$DD,$C0,$7F,$FF,$80,$EF
D296 DEFB $E7,$80,$FF,$FF,$00,$EF,$FE,$00
D29E DEFB $EF,$FC,$00,$EF,$F8,$00,$7F,$E0
D2A6 DEFB $00,$3F,$E0,$00,$73,$70,$00,$7F
D2AE DEFB $F8,$00,$2E,$F8,$00,$06,$30,$00
D2B6: Mask, 24x32 pixels. Jellyfish
D2B6 DEFB $00,$00,$00,$00,$1F,$00,$01,$FF sprite-d2b6
D2BE DEFB $C0,$03,$FF,$F0,$07,$FF,$F8,$47
D2C6 DEFB $FF,$FC,$E7,$FF,$FC,$F3,$FF,$FE
D2CE DEFB $FF,$FF,$FE,$7F,$FF,$FE,$3F,$FF
D2D6 DEFB $FF,$1F,$FF,$FF,$07,$FF,$FF,$07
D2DE DEFB $7F,$FF,$06,$FF,$FF,$0F,$FF,$FF
D2E6 DEFB $1D,$FF,$7E,$7D,$FE,$7C,$FF,$FC
D2EE DEFB $E0,$FB,$F3,$C0,$71,$E7,$80,$EB
D2F6 DEFB $EE,$00,$FF,$DC,$00,$7F,$B8,$00
D2FE DEFB $3F,$F0,$00,$0E,$E0,$00,$04,$00
D306 DEFB $00,$00,$00,$00,$00,$00,$00,$00
D30E DEFB $00,$00,$00,$00,$00,$00,$00,$00
D316: Mask, 24x32 pixels. Jellyfish
D316 DEFB $07,$F0,$00,$1F,$FE,$00,$3F,$FF sprite-d316
D31E DEFB $C0,$3F,$FF,$E0,$7F,$FF,$F0,$7F
D326 DEFB $FF,$F8,$3F,$FF,$F8,$7F,$FF,$FC
D32E DEFB $7F,$FF,$FC,$DF,$FF,$FE,$FF,$FF
D336 DEFB $FE,$EF,$FF,$FE,$7F,$FF,$FE,$DF
D33E DEFB $FF,$FE,$E5,$FF,$FF,$CF,$FF,$FF
D346 DEFB $7F,$FF,$FF,$79,$FF,$FF,$73,$DF
D34E DEFB $FF,$76,$3F,$FE,$FE,$FF,$FC,$F7
D356 DEFB $E4,$F8,$E7,$DD,$F0,$CF,$BD,$F0
D35E DEFB $3F,$7B,$E0,$7E,$7F,$E0,$78,$3F
D366 DEFB $C0,$30,$1F,$00,$00,$00,$00,$00
D36E DEFB $00,$00,$00,$00,$00,$00,$00,$00
D376: Mask, 24x24 pixels. Fish cloud
D376 DEFB $00,$0C,$00,$06,$1E,$1C,$0F,$3F sprite-d376
D37E DEFB $3E,$5F,$FF,$FF,$FF,$FF,$FE,$FF
D386 DEFB $FF,$FF,$FF,$FF,$FE,$FF,$FF,$FC
D38E DEFB $EF,$FF,$F0,$57,$BF,$FC,$3F,$FF
D396 DEFB $FE,$3F,$FF,$FE,$1F,$EF,$FE,$0F
D39E DEFB $CF,$FC,$03,$0F,$F8,$0C,$8F,$FC
D3A6 DEFB $1D,$BF,$3E,$5F,$FF,$7F,$FF,$FF
D3AE DEFB $FE,$FF,$FF,$FF,$FF,$FF,$FF,$FC
D3B6 DEFB $FF,$FE,$FC,$73,$FC,$60,$01,$F8
D3BE: Mask, 24x32 pixels. Jellyfish
D3BE DEFB $00,$0F,$00,$00,$3F,$C0,$00,$7F sprite-d3be
D3C6 DEFB $E0,$00,$FF,$F0,$00,$FF,$F0,$01
D3CE DEFB $FF,$E0,$01,$FF,$F0,$07,$FF,$F8
D3D6 DEFB $0F,$FF,$F8,$1F,$FF,$F8,$3F,$FF
D3DE DEFB $F8,$3F,$FF,$F0,$7F,$FF,$FC,$7F
D3E6 DEFB $FF,$F8,$7F,$FF,$FC,$7F,$FF,$FC
D3EE DEFB $1F,$FF,$F8,$3F,$FF,$F8,$3F,$FF
D3F6 DEFB $FC,$7F,$FF,$FC,$7F,$FF,$F8,$7F
D3FE DEFB $FF,$F8,$7F,$FF,$F8,$3F,$FF,$F0
D406 DEFB $1F,$FF,$E0,$01,$FF,$C0,$07,$FF
D40E DEFB $E7,$0F,$FF,$FF,$0F,$FF,$FF,$0F
D416 DEFB $FF,$FF,$03,$EF,$FF,$00,$E3,$FE
D41E: Mask, 32x24 pixels.
D41E DEFB $00,$00,$03,$C0,$00,$00,$0F,$F0 sprite-d41e
D426 DEFB $00,$00,$1F,$F8,$00,$03,$FF,$F8
D42E DEFB $00,$0F,$FF,$FC,$00,$1F,$FF,$FC
D436 DEFB $00,$3F,$FF,$FC,$00,$3F,$FF,$F8
D43E DEFB $0C,$1F,$FF,$F8,$1F,$7F,$FF,$F0
D446 DEFB $3F,$FF,$FF,$E0,$3F,$FF,$FF,$F0
D44E DEFB $3F,$FF,$FF,$F0,$7F,$FF,$FF,$FC
D456 DEFB $7F,$FF,$FF,$FE,$7F,$FE,$F1,$FE
D45E DEFB $FF,$FE,$01,$FE,$FF,$FF,$00,$FC
D466 DEFB $FF,$FF,$00,$70,$7F,$FF,$00,$00
D46E DEFB $0E,$7F,$00,$00,$00,$1E,$00,$00
D476 DEFB $00,$00,$00,$00,$00,$00,$00,$00
D47E: Mask, 32x24 pixels.
D47E DEFB $00,$00,$03,$C0,$00,$00,$0F,$F0 sprite-d47e
D486 DEFB $00,$00,$1F,$F8,$00,$03,$FF,$F8
D48E DEFB $00,$0F,$FF,$FC,$00,$1F,$FF,$FC
D496 DEFB $0C,$3F,$FF,$FC,$1F,$3F,$FF,$F8
D49E DEFB $3F,$FF,$FF,$F8,$3F,$FF,$FF,$F0
D4A6 DEFB $3F,$FF,$FF,$E6,$7F,$FF,$FF,$FF
D4AE DEFB $7F,$FF,$FF,$FF,$7F,$3F,$FF,$FF
D4B6 DEFB $FF,$3F,$FF,$FF,$FF,$7F,$FE,$FE
D4BE DEFB $FF,$7F,$F0,$FC,$7F,$7E,$C0,$78
D4C6 DEFB $0E,$7E,$00,$10,$00,$FF,$00,$00
D4CE DEFB $00,$FF,$00,$00,$00,$FF,$00,$00
D4D6 DEFB $00,$7F,$00,$00,$00,$1E,$00,$00
D4DE: Mask, 32x24 pixels.
D4DE DEFB $00,$00,$03,$C0,$00,$00,$0F,$F0 sprite-d4de
D4E6 DEFB $00,$00,$1F,$F8,$00,$03,$DF,$FC
D4EE DEFB $00,$0F,$FF,$FC,$00,$1F,$FF,$FC
D4F6 DEFB $00,$3F,$FF,$FC,$00,$7F,$FF,$F8
D4FE DEFB $00,$7F,$FF,$F8,$00,$7F,$FF,$F0
D506 DEFB $00,$FF,$FF,$E0,$0F,$FF,$FF,$E0
D50E DEFB $1F,$FF,$FF,$E0,$3F,$FF,$FF,$E0
D516 DEFB $3F,$FE,$FF,$E0,$3F,$FE,$03,$E0
D51E DEFB $7F,$FE,$03,$F0,$7E,$FE,$01,$F8
D526 DEFB $7F,$3C,$01,$FC,$FF,$00,$01,$FC
D52E DEFB $FF,$00,$00,$FC,$FF,$00,$00,$7C
D536 DEFB $7F,$00,$00,$38,$0E,$00,$00,$00
D53E: Mask, 32x24 pixels.
D53E DEFB $00,$00,$00,$00,$00,$00,$00,$00 sprite-d53e
D546 DEFB $00,$00,$01,$F0,$0C,$03,$CB,$F8
D54E DEFB $1F,$0F,$FF,$FC,$3F,$9F,$FF,$FE
D556 DEFB $3F,$FF,$FF,$FF,$3F,$FF,$FF,$FF
D55E DEFB $7F,$FF,$FF,$FF,$7E,$FF,$FF,$FF
D566 DEFB $7F,$7F,$FF,$FF,$FF,$3F,$FF,$FF
D56E DEFB $FF,$3F,$FF,$FE,$FF,$7F,$FF,$FC
D576 DEFB $7F,$7F,$FF,$EC,$0E,$7E,$FF,$F0
D57E DEFB $00,$7E,$3F,$F0,$00,$FF,$3F,$F0
D586 DEFB $00,$FF,$3F,$F0,$00,$FF,$3E,$FE
D58E DEFB $00,$7F,$1E,$FE,$00,$1E,$0A,$7E
D596 DEFB $00,$00,$00,$7E,$00,$00,$00,$34
D59E: Mask, 32x32 pixels. Round
D59E DEFB $00,$00,$BC,$00,$00,$07,$FE,$00 sprite-d59e
D5A6 DEFB $00,$17,$FF,$00,$01,$DF,$FF,$80
D5AE DEFB $03,$FF,$FF,$80,$07,$FF,$FF,$F0
D5B6 DEFB $0F,$FF,$FF,$F8,$1F,$FF,$FF,$FC
D5BE DEFB $3F,$FF,$FF,$FE,$7F,$FF,$FF,$FE
D5C6 DEFB $FF,$FF,$FF,$FE,$FF,$FF,$FF,$FE
D5CE DEFB $FF,$FF,$FF,$FC,$7F,$FF,$FF,$FC
D5D6 DEFB $1F,$FF,$FF,$FE,$3F,$FF,$FF,$FE
D5DE DEFB $7F,$FF,$FF,$FF,$7F,$FF,$FF,$FF
D5E6 DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
D5EE DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
D5F6 DEFB $3F,$FF,$FF,$FE,$7F,$FF,$FF,$FE
D5FE DEFB $FF,$FF,$FF,$FC,$FF,$FF,$FF,$F8
D606 DEFB $7F,$FF,$FF,$F8,$7F,$FF,$FF,$F0
D60E DEFB $3F,$FF,$FF,$E0,$1F,$7F,$FD,$C0
D616 DEFB $0F,$3F,$F8,$00,$00,$1B,$80,$00
D61E: Mask, 32x24 pixels.
D61E DEFB $00,$01,$C0,$00,$00,$0B,$F7,$00 sprite-d61e
D626 DEFB $00,$1F,$FF,$80,$06,$3F,$FF,$C0
D62E DEFB $0F,$7F,$FF,$E0,$1F,$FF,$FF,$F0
D636 DEFB $3F,$FF,$FF,$F8,$3F,$FF,$FF,$F8
D63E DEFB $7F,$FF,$FF,$F8,$FF,$FF,$FF,$F0
D646 DEFB $FF,$FF,$FF,$E0,$FF,$FF,$FF,$E0
D64E DEFB $FF,$FF,$FF,$F8,$FF,$FF,$FF,$FC
D656 DEFB $FF,$FF,$FF,$FE,$7F,$FF,$FF,$FE
D65E DEFB $3F,$FF,$FF,$FE,$0F,$FF,$FF,$FE
D666 DEFB $0F,$FF,$FF,$FC,$07,$FF,$FF,$FC
D66E DEFB $03,$FF,$FF,$F8,$01,$BF,$FF,$F0
D676 DEFB $00,$1F,$FB,$E0,$00,$00,$70,$00
D67E: Mask, 16x24 pixels.
D67E DEFB $03,$B0,$0F,$F8,$0F,$FC,$1F,$FE sprite-d67e
D686 DEFB $0F,$FE,$3F,$FC,$7F,$FC,$7F,$FF
D68E DEFB $FF,$FF,$FF,$FF,$7F,$FF,$7F,$FE
D696 DEFB $FF,$FC,$FF,$FC,$FF,$FE,$7F,$FE
D69E DEFB $3F,$FC,$1F,$F8,$0F,$FC,$1F,$FE
D6A6 DEFB $0F,$FE,$0F,$FC,$07,$F8,$00,$F0
D6AE: Mask, 24x24 pixels. Fish cloud
D6AE DEFB $00,$18,$00,$00,$3C,$38,$06,$7E sprite-d6ae
D6B6 DEFB $7C,$0F,$FF,$FE,$1F,$FF,$FC,$7F
D6BE DEFB $FF,$FE,$FF,$FF,$FC,$FF,$7D,$F8
D6C6 DEFB $FF,$B9,$F0,$FF,$C5,$F8,$7F,$EF
D6CE DEFB $FC,$3F,$CF,$F8,$3F,$EF,$FC,$1F
D6D6 DEFB $CF,$F8,$0B,$8E,$78,$1D,$04,$7E
D6DE DEFB $3F,$8E,$7F,$7F,$DF,$7F,$FF,$FF
D6E6 DEFB $FF,$FF,$FF,$FE,$FF,$FF,$FE,$FD
D6EE DEFB $FE,$FC,$60,$FC,$60,$00,$70,$00
D6F6: Mask, 32x24 pixels.
D6F6 DEFB $00,$00,$01,$E0,$00,$00,$07,$F8 sprite-d6f6
D6FE DEFB $00,$00,$0F,$FC,$00,$03,$DF,$FE
D706 DEFB $00,$0F,$FF,$FE,$00,$1F,$FF,$FC
D70E DEFB $00,$3F,$FF,$FE,$00,$3F,$FF,$FF
D716 DEFB $0C,$1F,$FF,$FF,$1F,$7F,$FF,$FF
D71E DEFB $3F,$FF,$FF,$FF,$3F,$FF,$FF,$FE
D726 DEFB $3F,$FF,$FF,$FC,$7F,$FF,$FF,$FC
D72E DEFB $7F,$FF,$FF,$FE,$7F,$FE,$F1,$FE
D736 DEFB $FF,$FE,$01,$FE,$FF,$FF,$00,$FC
D73E DEFB $FF,$FF,$00,$70,$7F,$FF,$00,$00
D746 DEFB $0E,$7F,$00,$00,$00,$1E,$00,$00
D74E DEFB $00,$00,$00,$00,$00,$00,$00,$00
D756: Mask, 32x32 pixels. Round
D756 DEFB $30,$03,$F0,$00,$78,$1F,$FC,$00 sprite-d756
D75E DEFB $FC,$7F,$FF,$00,$FC,$FF,$FF,$C0
D766 DEFB $7E,$FF,$FF,$E0,$7F,$FF,$FF,$F0
D76E DEFB $3F,$FF,$FF,$F8,$7F,$FF,$FF,$F8
D776 DEFB $3F,$FF,$FF,$FC,$7F,$FF,$FF,$FC
D77E DEFB $7F,$FF,$FF,$FE,$3F,$FF,$FF,$FF
D786 DEFB $7F,$FF,$FF,$FF,$7F,$FF,$FF,$FF
D78E DEFB $3F,$FF,$FF,$FF,$3F,$FF,$FF,$FF
D796 DEFB $3F,$FF,$FF,$FF,$1F,$FF,$FF,$FE
D79E DEFB $3F,$FF,$FF,$FC,$3F,$FF,$FF,$FE
D7A6 DEFB $3F,$FF,$FF,$FF,$7F,$FF,$FF,$FF
D7AE DEFB $7F,$FF,$FF,$FE,$7F,$FF,$FF,$FE
D7B6 DEFB $7D,$FF,$FF,$FC,$78,$FF,$FF,$F8
D7BE DEFB $79,$FF,$FF,$FC,$3B,$FF,$FF,$FC
D7C6 DEFB $13,$FF,$FF,$F8,$03,$FF,$FF,$F0
D7CE DEFB $01,$F7,$FF,$E0,$00,$E0,$7F,$00
D7D6: Mask, 32x32 pixels. Round
D7D6 DEFB $06,$07,$E0,$00,$0F,$3F,$F8,$00 sprite-d7d6
D7DE DEFB $1F,$FF,$FF,$00,$3F,$FF,$FF,$80
D7E6 DEFB $3F,$FF,$FF,$C0,$3F,$FF,$FF,$E0
D7EE DEFB $7F,$FF,$FF,$F0,$7F,$FF,$FF,$F0
D7F6 DEFB $7F,$FF,$FF,$F8,$7F,$FF,$FF,$F8
D7FE DEFB $FF,$FF,$FF,$FC,$FF,$FF,$FF,$FE
D806 DEFB $7F,$FF,$FF,$FE,$FF,$FF,$FF,$FE
D80E DEFB $FF,$FF,$FF,$FE,$7F,$FF,$FF,$FE
D816 DEFB $7F,$FF,$FF,$FE,$7F,$FF,$FF,$FC
D81E DEFB $FF,$FF,$FF,$F8,$FF,$FF,$FF,$FC
D826 DEFB $7F,$FF,$FF,$FE,$7F,$FF,$FF,$FE
D82E DEFB $3F,$FF,$FF,$FC,$3F,$FF,$FF,$FC
D836 DEFB $3F,$FF,$FC,$98,$1F,$FF,$FB,$E0
D83E DEFB $0F,$FF,$FF,$F0,$0F,$FF,$FF,$F8
D846 DEFB $07,$FF,$FF,$F0,$03,$9F,$FF,$E0
D84E DEFB $00,$0F,$FF,$C0,$00,$00,$FE,$00
D856: Mask, 32x32 pixels. Round
D856 DEFB $40,$00,$FE,$00,$E0,$03,$FF,$E0 sprite-d856
D85E DEFB $FC,$0F,$FF,$F0,$7E,$1F,$FF,$F8
D866 DEFB $3F,$3F,$FF,$FC,$7F,$7F,$FF,$FC
D86E DEFB $3F,$FF,$FF,$FC,$1F,$FF,$FF,$FE
D876 DEFB $3F,$FF,$FF,$FE,$3F,$FF,$FF,$FE
D87E DEFB $1F,$FF,$FF,$FE,$1F,$FF,$FF,$FF
D886 DEFB $07,$FF,$FF,$FF,$0F,$FF,$FF,$FF
D88E DEFB $1F,$FF,$FF,$FF,$3F,$FF,$FF,$FE
D896 DEFB $1F,$FF,$FF,$FF,$3F,$FF,$FF,$FF
D89E DEFB $1F,$FF,$FF,$FF,$1F,$FF,$FF,$FE
D8A6 DEFB $0F,$FF,$FF,$FC,$0F,$FF,$FF,$FE
D8AE DEFB $0F,$FF,$FF,$FF,$1F,$FF,$FF,$FF
D8B6 DEFB $0F,$FF,$FF,$FF,$0F,$FF,$FF,$FE
D8BE DEFB $1F,$FF,$FE,$3C,$3F,$9F,$FC,$18
D8C6 DEFB $1F,$8F,$F0,$00,$3F,$03,$C0,$00
D8CE DEFB $7E,$00,$00,$00,$30,$00,$00,$00
D8D6: Mask, 32x32 pixels. Round
D8D6 DEFB $03,$83,$F8,$00,$07,$CF,$FF,$80 sprite-d8d6
D8DE DEFB $0F,$BF,$FF,$C0,$0F,$7F,$FF,$E0
D8E6 DEFB $1F,$FF,$FF,$F0,$1F,$FF,$FF,$F8
D8EE DEFB $0F,$FF,$FF,$F8,$0F,$FF,$FF,$F8
D8F6 DEFB $1F,$FF,$FF,$F8,$1F,$FF,$FF,$FC
D8FE DEFB $1F,$FF,$FF,$FC,$3F,$FF,$FF,$FC
D906 DEFB $3F,$FF,$FF,$FE,$3F,$FF,$FF,$FE
D90E DEFB $3F,$FF,$FF,$FE,$3F,$FF,$FF,$FC
D916 DEFB $1F,$FF,$FF,$FE,$0F,$FF,$FF,$FE
D91E DEFB $1F,$FF,$FF,$FC,$0F,$FF,$FF,$FE
D926 DEFB $0F,$FF,$FF,$FE,$0F,$FF,$FF,$FC
D92E DEFB $07,$FF,$FF,$FE,$07,$FF,$FF,$FC
D936 DEFB $0F,$FF,$FF,$38,$0F,$FF,$FE,$00
D93E DEFB $07,$FF,$F8,$00,$07,$BF,$F0,$00
D946 DEFB $0F,$8F,$C0,$00,$07,$C0,$00,$00
D94E DEFB $03,$E0,$00,$00,$00,$C0,$00,$00
D956: Mask, 16x8 pixels. Snake, rearing phase
D956 DEFB $03,$F0,$1F,$FC,$3F,$FE,$7F,$FE sprite-d956
D95E DEFB $FF,$FF,$FF,$FF,$7F,$FE,$1F,$F8
D966: Mask, 16x16 pixels. Snake, rearing phase
D966 DEFB $03,$F0,$1F,$FC,$3F,$FE,$7F,$FE sprite-d966
D96E DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FE
D976 DEFB $FF,$FC,$7F,$FE,$7F,$FE,$FF,$FC
D97E DEFB $FF,$F8,$FF,$F8,$7F,$E0,$3F,$C0
D986: Mask, 16x24 pixels. Snake, rearing phase
D986 DEFB $03,$F0,$1F,$FC,$3F,$FE,$7F,$FE sprite-d986
D98E DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FE
D996 DEFB $FF,$FC,$7F,$FE,$7F,$FE,$FF,$FC
D99E DEFB $FF,$F8,$FF,$F0,$FF,$E0,$FF,$E0
D9A6 DEFB $FF,$F0,$7F,$F8,$7F,$FC,$7F,$FC
D9AE DEFB $3F,$FC,$3F,$FE,$3F,$FE,$1F,$FC
D9B6: Mask, 16x32 pixels. Snake, rearing phase
D9B6 DEFB $03,$F0,$1F,$FC,$3F,$FE,$7F,$FE sprite-d9b6
D9BE DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FE
D9C6 DEFB $FF,$FC,$7F,$FE,$7F,$FE,$FF,$FC
D9CE DEFB $FF,$F8,$FF,$F0,$FF,$E0,$FF,$E0
D9D6 DEFB $FF,$F0,$7F,$F8,$7F,$FC,$7F,$FC
D9DE DEFB $3F,$FC,$3F,$FE,$3F,$FE,$3F,$FE
D9E6 DEFB $3F,$FE,$3F,$FE,$7F,$FE,$FF,$FE
D9EE DEFB $FF,$FE,$7F,$FC,$1F,$F0,$07,$C0
D9F6: Mask, 16x32 pixels. Sea Horse
D9F6 DEFB $0F,$00,$7F,$C0,$7F,$E0,$FF,$E0 sprite-d9f6
D9FE DEFB $7F,$F0,$FF,$E0,$FF,$FC,$7F,$FE
DA06 DEFB $FF,$FF,$FF,$FF,$7F,$FF,$7F,$FE
DA0E DEFB $FF,$FC,$7F,$F0,$FF,$F0,$3F,$F8
DA16 DEFB $7F,$F8,$3F,$F0,$1F,$F0,$3F,$E0
DA1E DEFB $1F,$C0,$3F,$00,$3F,$00,$1E,$60
DA26 DEFB $3E,$F0,$3C,$F8,$3E,$F8,$1F,$F0
DA2E DEFB $1F,$F0,$0F,$E0,$07,$C0,$03,$00
DA36: Mask, 16x32 pixels. Sea Horse
DA36 DEFB $03,$8C,$1F,$EE,$1F,$FF,$7F,$FF sprite-da36
DA3E DEFB $7F,$FE,$FF,$FC,$7F,$F8,$FF,$F0
DA46 DEFB $7F,$E0,$3F,$80,$7F,$E0,$FF,$F0
DA4E DEFB $FF,$F8,$DF,$FC,$3F,$FC,$7F,$FC
DA56 DEFB $1F,$FC,$3F,$FC,$1F,$F8,$3F,$F0
DA5E DEFB $0F,$E0,$1F,$C0,$1F,$D0,$3F,$B8
DA66 DEFB $1F,$FC,$3F,$FC,$1F,$FC,$07,$FC
DA6E DEFB $0F,$F8,$07,$F0,$03,$E0,$01,$80
DA76: Mask, 32x32 pixels. Baby whale
DA76 DEFB $00,$00,$00,$00,$00,$00,$7C,$00 sprite-da76
DA7E DEFB $00,$03,$FF,$00,$00,$07,$FF,$C0
DA86 DEFB $40,$FF,$FF,$E0,$E3,$FF,$FF,$F0
DA8E DEFB $F7,$FF,$FF,$F8,$FF,$FF,$FF,$F8
DA96 DEFB $FF,$FF,$FF,$FC,$7F,$FF,$FF,$FC
DA9E DEFB $1F,$FF,$FF,$FE,$3F,$FF,$FF,$FE
DAA6 DEFB $1F,$FF,$FF,$FE,$0F,$FF,$FF,$FF
DAAE DEFB $03,$FF,$FF,$FF,$03,$FF,$FF,$FF
DAB6 DEFB $03,$FF,$FF,$FF,$03,$FF,$FF,$FF
DABE DEFB $03,$FF,$FF,$FF,$03,$FF,$FF,$FE
DAC6 DEFB $01,$FF,$FF,$FF,$01,$FF,$FF,$FE
DACE DEFB $01,$FF,$FF,$FF,$00,$FF,$FF,$FF
DAD6 DEFB $00,$7F,$FF,$FE,$00,$3F,$FF,$FE
DADE DEFB $00,$7F,$FF,$FC,$00,$FF,$FF,$F8
DAE6 DEFB $00,$FF,$FF,$F8,$00,$FF,$FF,$F0
DAEE DEFB $00,$7D,$FF,$E0,$00,$38,$7F,$00
DAF6: Mask, 32x32 pixels. Baby whale
DAF6 DEFB $00,$00,$7C,$00,$00,$01,$FF,$00 sprite-daf6
DAFE DEFB $00,$07,$FF,$C0,$00,$1F,$FF,$E0
DB06 DEFB $00,$3F,$FF,$F0,$00,$7F,$FF,$F8
DB0E DEFB $00,$7F,$FF,$F8,$00,$FF,$FF,$FC
DB16 DEFB $00,$FF,$FF,$FC,$01,$FF,$FF,$FE
DB1E DEFB $01,$FF,$FF,$FE,$03,$FF,$FF,$FE
DB26 DEFB $03,$FF,$FF,$FF,$03,$FF,$FF,$FF
DB2E DEFB $03,$FF,$FF,$FF,$03,$FF,$FF,$FF
DB36 DEFB $0F,$FF,$FF,$FF,$1F,$FF,$FF,$FF
DB3E DEFB $3F,$FF,$FF,$FE,$3F,$FF,$FF,$FF
DB46 DEFB $7F,$FF,$FF,$FE,$FF,$FF,$FF,$FF
DB4E DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FE
DB56 DEFB $FF,$FF,$FF,$FE,$7B,$FF,$FF,$FC
DB5E DEFB $23,$FF,$FF,$F8,$01,$FB,$FF,$F8
DB66 DEFB $00,$F1,$FF,$F0,$00,$00,$FF,$E0
DB6E DEFB $00,$00,$1F,$00,$00,$00,$00,$00
DB76: Mask, 32x32 pixels. Baby whale
DB76 DEFB $00,$00,$00,$00,$00,$00,$00,$00 sprite-db76
DB7E DEFB $00,$00,$7C,$00,$00,$03,$FF,$00
DB86 DEFB $00,$0F,$FF,$C0,$00,$1F,$FF,$E0
DB8E DEFB $00,$3F,$FF,$F0,$00,$3F,$FF,$F8
DB96 DEFB $00,$7F,$FF,$FC,$00,$7F,$FF,$FC
DB9E DEFB $00,$FF,$FF,$FC,$00,$FF,$FF,$FE
DBA6 DEFB $00,$FF,$FF,$FE,$00,$FF,$FF,$FE
DBAE DEFB $01,$FF,$FF,$FF,$39,$FF,$FF,$FF
DBB6 DEFB $7F,$FF,$FF,$FF,$FF,$FF,$FF,$FF
DBBE DEFB $FF,$FF,$FF,$FE,$FF,$FF,$FF,$FF
DBC6 DEFB $3F,$FF,$FF,$FF,$1F,$FF,$FF,$FE
DBCE DEFB $07,$FF,$FF,$FE,$03,$FF,$FF,$FF
DBD6 DEFB $00,$FF,$FF,$FF,$00,$7F,$FF,$FF
DBDE DEFB $00,$7F,$FF,$FF,$00,$3F,$FF,$FE
DBE6 DEFB $00,$1F,$FF,$9C,$00,$0F,$FE,$00
DBEE DEFB $00,$07,$FC,$00,$00,$01,$C0,$00
DBF6: Mask, 32x32 pixels. Baby whale
DBF6 DEFB $00,$00,$7C,$00,$00,$03,$FF,$00 sprite-dbf6
DBFE DEFB $00,$0F,$FF,$C0,$00,$1F,$FF,$E0
DC06 DEFB $00,$3F,$FF,$F0,$00,$3F,$FF,$F8
DC0E DEFB $00,$7F,$FF,$FC,$00,$7F,$FF,$FC
DC16 DEFB $00,$FF,$FF,$FC,$00,$FF,$FF,$FE
DC1E DEFB $00,$FF,$FF,$FE,$00,$FF,$FF,$FE
DC26 DEFB $01,$FF,$FF,$FF,$01,$FF,$FF,$FF
DC2E DEFB $01,$FF,$FF,$FF,$01,$FF,$FF,$FF
DC36 DEFB $01,$FF,$FF,$FF,$03,$FF,$FF,$FE
DC3E DEFB $07,$FF,$FF,$FF,$07,$FF,$FF,$FE
DC46 DEFB $03,$FF,$FF,$FC,$0F,$FF,$FF,$FC
DC4E DEFB $1F,$FF,$FF,$FC,$3F,$FF,$FF,$FE
DC56 DEFB $7F,$FF,$FF,$FE,$FF,$FF,$FF,$FE
DC5E DEFB $FF,$FF,$FF,$7C,$7F,$87,$7E,$38
DC66 DEFB $38,$00,$3C,$00,$00,$00,$00,$00
DC6E DEFB $00,$00,$00,$00,$00,$00,$00,$00
DC76: Sprite, 8x24 pixels. Spark/debris
DC76 DEFB $47,$EF,$F7,$EA,$5C,$3E,$3E,$7F sprite-dc76
DC7E DEFB $FF,$77,$22,$00,$00,$00,$00,$00
DC86 DEFB $00,$00,$0C,$1E,$3F,$3F,$1E,$0C
DC8E: Sprite, 8x24 pixels. Spark/debris
DC8E DEFB $12,$BB,$D7,$AA,$7C,$28,$3C,$7A sprite-dc8e
DC96 DEFB $27,$02,$00,$00,$00,$00,$00,$38
DC9E DEFB $7C,$FE,$FE,$FE,$7C,$38,$00,$00
DCA6: Sprite, 8x24 pixels. Spark/debris
DCA6 DEFB $02,$07,$12,$38,$10,$00,$08,$1C sprite-dca6
DCAE DEFB $08,$00,$1C,$3E,$7F,$FF,$FF,$FF
DCB6 DEFB $7F,$3E,$1C,$00,$00,$00,$00,$00
DCBE: Sprite, 8x24 pixels. Spark/debris
DCBE DEFB $00,$00,$00,$00,$00,$3C,$7E,$FF sprite-dcbe
DCC6 DEFB $FF,$FF,$FF,$FF,$FF,$FF,$7E,$3C
DCCE DEFB $00,$00,$00,$00,$00,$00,$00,$00
DCD6: Sprite, 8x8 pixels. Gem/diamond icon
DCD6 DEFB $07,$08,$03,$07,$10,$07,$08,$00 sprite-dcd6
DCDE: Sprite, 8x8 pixels. Gem/diamond icon
DCDE DEFB $03,$04,$0B,$07,$04,$0B,$00,$00 sprite-dcde
DCE6: Sprite, 8x8 pixels. Gem/diamond icon
DCE6 DEFB $01,$02,$03,$0B,$04,$01,$02,$00 sprite-dce6
DCEE: Sprite, 8x8 pixels. Gem/diamond icon
DCEE DEFB $00,$01,$04,$03,$01,$00,$01,$00 sprite-dcee
DCF6: Sprite, 8x8 pixels. Gem/diamond icon
DCF6 DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF sprite-dcf6
DCFE: Sprite, 32x32 pixels. Cube/pedestal
DCFE DEFB $00,$00,$00,$00,$00,$00,$80,$00 sprite-dcfe
DD06 DEFB $00,$03,$60,$00,$00,$0E,$B8,$00
DD0E DEFB $00,$3D,$56,$00,$00,$EA,$AB,$80
DD16 DEFB $03,$D5,$55,$60,$0E,$AA,$AA,$B8
DD1E DEFB $39,$55,$55,$4E,$2C,$AA,$AA,$BA
DD26 DEFB $33,$55,$54,$E2,$28,$CA,$AB,$96
DD2E DEFB $35,$39,$5E,$2A,$2A,$8E,$31,$56
DD36 DEFB $35,$51,$CA,$AA,$2A,$AA,$55,$56
DD3E DEFB $35,$55,$6A,$AA,$2A,$AB,$55,$56
DD46 DEFB $35,$55,$6A,$AA,$2A,$AB,$55,$56
DD4E DEFB $35,$55,$6A,$AA,$2A,$AB,$55,$56
DD56 DEFB $35,$55,$6A,$AA,$2A,$AB,$55,$56
DD5E DEFB $39,$55,$6A,$AE,$0E,$AB,$55,$78
DD66 DEFB $03,$D5,$6A,$E0,$00,$EB,$57,$80
DD6E DEFB $00,$3D,$6E,$00,$00,$0F,$78,$00
DD76 DEFB $00,$03,$E0,$00,$00,$00,$80,$00
DD7E: Sprite, 32x32 pixels. Passage, closed/blocked
DD7E DEFB $58,$3F,$8F,$10,$19,$E0,$7E,$E0 sprite-dd7e
DD86 DEFB $9F,$9F,$87,$60,$5E,$3F,$F3,$B0
DD8E DEFB $18,$FF,$FC,$F0,$33,$FF,$FE,$F0
DD96 DEFB $B7,$F0,$7E,$70,$37,$C0,$1F,$78
DD9E DEFB $37,$28,$0F,$38,$6E,$55,$07,$B8
DDA6 DEFB $EE,$AA,$87,$B8,$EC,$55,$43,$9C
DDAE DEFB $DC,$AA,$A3,$DC,$D9,$55,$43,$D4
DDB6 DEFB $D8,$AA,$A1,$DC,$D9,$55,$51,$DC
DDBE DEFB $D8,$AA,$A1,$D8,$DD,$55,$41,$DC
DDC6 DEFB $D8,$AA,$A3,$DC,$DD,$55,$43,$9C
DDCE DEFB $EE,$AA,$87,$BC,$6E,$55,$07,$2C
DDD6 DEFB $6F,$2A,$0F,$78,$6F,$90,$3E,$78
DDDE DEFB $77,$E0,$FE,$D8,$37,$FF,$FC,$D0
DDE6 DEFB $1B,$FF,$F9,$B0,$1C,$FF,$E7,$50
DDEE DEFB $2F,$7F,$BE,$B0,$17,$1E,$75,$70
DDF6 DEFB $0B,$61,$EA,$A0,$15,$1E,$85,$60
DDFE: Sprite, 16x16 pixels. Passage, part
DDFE DEFB $00,$E0,$03,$F0,$0F,$A8,$7D,$54 sprite-ddfe
DE06 DEFB $7A,$AA,$F5,$57,$FA,$AB,$FF,$55
DE0E DEFB $7B,$AA,$67,$55,$1F,$AA,$03,$D5
DE16 DEFB $00,$6A,$00,$77,$00,$1E,$00,$07
DE1E: Sprite, 16x16 pixels. Passage, part
DE1E DEFB $C0,$00,$70,$00,$AC,$00,$5F,$7E sprite-de1e
DE26 DEFB $BB,$EB,$75,$57,$EA,$AB,$D5,$57
DE2E DEFB $FF,$AF,$67,$FF,$1F,$5E,$03,$AE
DE36 DEFB $00,$FE,$00,$7C,$00,$10,$00,$00
DE3E: Sprite, 16x16 pixels. Passage, part
DE3E DEFB $00,$03,$00,$0F,$00,$3F,$7E,$BF sprite-de3e
DE46 DEFB $FF,$DF,$BF,$EF,$DF,$F7,$DF,$FB
DE4E DEFB $AE,$1F,$D1,$66,$66,$B8,$55,$40
DE56 DEFB $6B,$00,$36,$00,$08,$00,$00,$00
DE5E: Sprite, 16x16 pixels. Passage, part
DE5E DEFB $07,$00,$0F,$C0,$1F,$F0,$3F,$FE sprite-de5e
DE66 DEFB $7F,$F2,$7F,$EB,$FF,$95,$FF,$AB
DE6E DEFB $FF,$56,$FE,$AA,$FE,$58,$FD,$C0
DE76 DEFB $7A,$00,$96,$00,$E8,$00,$E0,$00
DE7E: Sprite, 16x16 pixels. Passage, part
DE7E DEFB $A0,$00,$50,$00,$BC,$00,$77,$00 sprite-de7e
DE86 DEFB $EA,$C0,$55,$70,$AA,$AC,$55,$57
DE8E DEFB $AA,$AA,$55,$55,$3A,$AA,$0D,$55
DE96 DEFB $03,$AA,$00,$D5,$00,$3A,$00,$07
DE9E: Sprite, 16x16 pixels. Passage, part
DE9E DEFB $00,$01,$00,$0F,$00,$37,$00,$F9 sprite-de9e
DEA6 DEFB $03,$FE,$0F,$FF,$3F,$FF,$FF,$FF
DEAE DEFB $FF,$FF,$FF,$FE,$FF,$FC,$FF,$F0
DEB6 DEFB $FF,$C0,$FF,$00,$FC,$00,$E0,$00
DEBE: Mask, 16x24 pixels.
DEBE DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF sprite-debe
DEC6 DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
DECE DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
DED6 DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
DEDE DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
DEE6 DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
DEEE: Mask, 16x16 pixels.
DEEE DEFB $1C,$00,$37,$80,$6B,$E0,$75,$E0 sprite-deee
DEF6 DEFB $7F,$F8,$FF,$FC,$FF,$FC,$FF,$8E
DEFE DEFB $7B,$56,$66,$2A,$1F,$56,$03,$AE
DF06 DEFB $00,$7E,$00,$7C,$00,$10,$00,$00
DF0E: Mask, 16x16 pixels.
DF0E DEFB $00,$E0,$01,$B8,$07,$54,$0A,$AA sprite-df0e
DF16 DEFB $1B,$55,$14,$D3,$7A,$AD,$55,$53
DF1E DEFB $2A,$07,$74,$3E,$6A,$B8,$55,$E0
DF26 DEFB $6A,$00,$3E,$00,$08,$00,$00,$00
DF2E: Sprite, 88x16 pixels. RUSTOMETER gauge graphic
DF2E DEFB $03,$FF,$FF,$FF,$FF,$FF,$FF,$FF sprite-df2e
DF36 DEFB $FF,$FF,$FF,$03,$80,$00,$00,$00
DF3E DEFB $00,$00,$00,$00,$00,$07,$03,$7F
DF46 DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
DF4E DEFB $FB,$03,$7F,$FF,$FF,$FF,$FF,$FF
DF56 DEFB $FF,$FF,$FF,$FB,$03,$80,$00,$00
DF5E DEFB $00,$00,$00,$00,$00,$00,$07,$03
DF66 DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
DF6E DEFB $FF,$FF,$00,$00,$00,$00,$00,$00
DF76 DEFB $00,$00,$00,$00,$00,$00,$00,$00
DF7E DEFB $00,$00,$00,$00,$00,$00,$00,$00
DF86 DEFB $03,$FF,$FF,$FF,$FF,$FF,$FF,$FF
DF8E DEFB $FF,$FF,$FF,$03,$7F,$FF,$F3,$51
DF96 DEFB $11,$51,$11,$3F,$FF,$FB,$02,$B8
DF9E DEFB $00,$75,$57,$B5,$17,$B7,$5C,$00
DFA6 DEFB $75,$03,$70,$00,$35,$51,$B5,$11
DFAE DEFB $B1,$58,$00,$3B,$03,$71,$FE,$33
DFB6 DEFB $5D,$B5,$57,$B7,$38,$FE,$3B,$02
DFBE DEFB $B8,$00,$75,$5D,$B5,$57,$B7,$5C
DFC6 DEFB $00,$75,$03,$7F,$FF,$F5,$11,$B1
DFCE DEFB $51,$B1,$5F,$FF,$FB,$03,$FF,$FF
DFD6 DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
DFDE: Sprite, 32x32 pixels. Passage, open
DFDE DEFB $58,$3F,$8F,$10,$19,$F0,$7E,$E0 sprite-dfde
DFE6 DEFB $9F,$9C,$27,$60,$50,$03,$11,$B0
DFEE DEFB $10,$F8,$CC,$F0,$37,$1C,$22,$70
DFF6 DEFB $B8,$FE,$12,$70,$37,$FF,$89,$78
DFFE DEFB $37,$FF,$C9,$38,$6F,$FF,$E4,$B8
E006 DEFB $EF,$FF,$E4,$B8,$EF,$FF,$E4,$9C
E00E DEFB $DF,$FF,$E2,$9C,$DF,$FF,$F2,$9C
E016 DEFB $DF,$FF,$F2,$5C,$DF,$FF,$F2,$5C
E01E DEFB $DF,$FF,$F4,$58,$DF,$FF,$E4,$9C
E026 DEFB $DF,$FF,$E4,$9C,$DF,$FF,$E5,$1C
E02E DEFB $EF,$FF,$E5,$3C,$6F,$FF,$E9,$7C
E036 DEFB $6F,$FF,$49,$78,$6F,$FF,$92,$78
E03E DEFB $77,$F2,$22,$58,$3D,$6C,$C4,$D0
E046 DEFB $1C,$F1,$19,$B0,$1E,$06,$67,$50
E04E DEFB $2F,$F9,$BE,$B0,$17,$1E,$75,$70
E056 DEFB $0B,$61,$EA,$A0,$15,$1E,$85,$60
E05E: Sprite, 88x32 pixels. Sign: "PIRANHA / DO NOT TAP GLASS"
E05E DEFB $00,$00,$00,$00,$00,$00,$00,$00 sprite-e05e
E066 DEFB $00,$00,$00,$FF,$FF,$FF,$FF,$FF
E06E DEFB $FF,$FF,$FE,$00,$00,$00,$80,$00
E076 DEFB $00,$00,$00,$00,$00,$02,$00,$00
E07E DEFB $00,$FF,$FF,$FF,$FF,$FF,$FF,$FF
E086 DEFB $FE,$00,$00,$00,$DF,$FF,$FF,$FF
E08E DEFB $FF,$FF,$FF,$F6,$00,$00,$00,$AF
E096 DEFB $FF,$F1,$11,$15,$51,$FF,$EA,$00
E09E DEFB $00,$00,$DF,$FF,$F5,$B5,$51,$55
E0A6 DEFB $FF,$F6,$00,$00,$00,$FF,$FF,$F5
E0AE DEFB $B5,$51,$55,$FF,$FE,$00,$00,$00
E0B6 DEFB $FF,$FF,$F1,$B3,$11,$11,$FF,$FE
E0BE DEFB $00,$00,$00,$FF,$FF,$F7,$B5,$51
E0C6 DEFB $55,$FF,$FE,$00,$00,$00,$DF,$FF
E0CE DEFB $F7,$B5,$55,$55,$FF,$F6,$00,$00
E0D6 DEFB $00,$AF,$FF,$F7,$15,$55,$55,$FF
E0DE DEFB $EA,$00,$00,$00,$DF,$FF,$FF,$FF
E0E6 DEFB $FF,$FF,$FF,$F6,$00,$00,$00,$FF
E0EE DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FE,$00
E0F6 DEFB $00,$00,$80,$00,$00,$00,$00,$00
E0FE DEFB $00,$02,$00,$00,$00,$FF,$FF,$FF
E106 DEFB $FF,$FF,$FF,$FF,$FE,$00,$00,$00
E10E DEFB $00,$00,$00,$00,$00,$00,$00,$00
E116 DEFB $00,$00,$00,$FF,$FF,$FF,$FF,$FF
E11E DEFB $FF,$FF,$FF,$FF,$FF,$FC,$80,$00
E126 DEFB $00,$00,$00,$00,$00,$00,$00,$00
E12E DEFB $04,$FF,$FF,$FF,$FF,$FF,$FF,$FF
E136 DEFB $FF,$FF,$FF,$FC,$DF,$FF,$FF,$FF
E13E DEFB $FF,$FF,$FF,$FF,$FF,$FF,$EC,$AF
E146 DEFB $CC,$7E,$A2,$3E,$22,$3E,$2E,$22
E14E DEFB $3F,$D4,$DF,$D5,$7E,$2B,$7F,$6A
E156 DEFB $BE,$AE,$AE,$FF,$EC,$FF,$D5,$7E
E15E DEFB $2B,$7F,$6A,$BE,$EE,$AE,$FF,$FC
E166 DEFB $FF,$D5,$7E,$2B,$7F,$62,$3E,$2E
E16E DEFB $22,$3F,$FC,$FF,$D5,$7E,$2B,$7F
E176 DEFB $6A,$FE,$AE,$BB,$BF,$FC,$DF,$D5
E17E DEFB $7E,$AB,$7F,$6A,$FE,$AE,$BB,$BF
E186 DEFB $EC,$AF,$CC,$7E,$A3,$7F,$6A,$FE
E18E DEFB $22,$A2,$3F,$D4,$DF,$FF,$FF,$FF
E196 DEFB $FF,$FF,$FF,$FF,$FF,$FF,$EC,$FF
E19E DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
E1A6 DEFB $FF,$FC,$80,$00,$00,$00,$00,$00
E1AE DEFB $00,$00,$00,$00,$04,$FF,$FF,$FF
E1B6 DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FC
E1BE: Data block at E1BE
E1BE DEFB $31,$D4,$00,$00,$00,$00,$00,$00
E1C6 DEFB $00,$00,$00,$00,$00,$00,$00,$00
E1CE DEFB $00,$00,$00,$00,$00,$00,$00,$00
E1D6 DEFB $00,$00,$00,$00,$00,$00,$00,$00
E1DE DEFB $00,$00,$00,$00,$00,$00,$00,$00
E1E6 DEFB $00,$00,$00,$00,$00,$00,$00,$00
E1EE DEFB $00,$00,$00,$00,$00,$00,$00,$00
E1F6 DEFB $00,$00,$00,$00,$00,$00,$00,$00
E1FE DEFB $00,$00,$5D,$5D,$5D,$5D,$5D,$5D
E206 DEFB $5D,$5D,$5D,$5D,$5D,$5D,$5D,$5D
E20E DEFB $5D,$5D,$5D,$5D,$5D,$5D,$5D,$5D
E216 DEFB $5D,$5D,$5D,$5D,$5D,$5D,$5D,$5D
E21E DEFB $5D,$5D,$5D,$5D,$5D,$5D,$5D,$5D
E226 DEFB $5D,$5D,$5D,$5D,$5D,$5D,$5D,$5D
E22E DEFB $5D,$5D,$5D,$5D,$5D,$5D,$5D,$5D
E236 DEFB $5D,$5D,$5D,$5D,$5D,$5D,$5D,$5D
E23E DEFB $5D,$5D,$5D,$5D,$5D,$5D,$5D,$5D
E246 DEFB $5D,$5D,$5D,$5D,$5D,$5D,$5D,$5D
E24E DEFB $5D,$5D,$5D,$5D,$5D,$5D,$5D,$5D
E256 DEFB $5D,$5D,$5D,$5D,$5D,$5D,$5D,$5D
E25E DEFB $5D,$5D,$5D,$5D,$5D,$5D,$5D,$5D
E266 DEFB $5D,$5D,$5D,$5D,$5D,$5D,$5D,$5D
E26E DEFB $5D,$5D,$5D,$5D,$5D,$5D,$5D,$5D
E276 DEFB $5D,$5D,$5D,$5D,$5D,$5D,$5D,$5D
E27E DEFB $5D,$5D,$5D,$5D,$5D,$5D,$5D,$5D
E286 DEFB $5D,$5D,$5D,$5D,$5D,$5D,$5D,$5D
E28E DEFB $5D,$5D,$5D,$5D,$5D,$5D,$5D,$5D
E296 DEFB $5D,$5D,$5D,$5D,$5D,$5D,$5D,$5D
E29E DEFB $5D,$5D,$5D,$5D,$5D,$5D,$5D,$5D
E2A6 DEFB $5D,$5D,$5D,$5D,$5D,$5D,$5D,$5D
E2AE DEFB $5D,$5D,$5D,$5D,$5D,$5D,$5D,$5D
E2B6 DEFB $5D,$5D,$5D,$5D,$5D,$5D,$5D,$5D
E2BE DEFB $5D,$5D,$5D,$5D,$5D,$5D,$5D,$5D
E2C6 DEFB $5D,$5D,$5D,$5D,$5D,$5D,$5D,$5D
E2CE DEFB $5D,$5D,$5D,$5D,$5D,$5D,$5D,$5D
E2D6 DEFB $5D,$5D,$5D,$5D,$5D,$5D,$5D,$5D
E2DE DEFB $5D,$5D,$5D,$5D,$5D,$5D,$5D,$5D
E2E6 DEFB $5D,$5D,$5D,$5D,$5D,$5D,$5D,$5D
E2EE DEFB $5D,$5D,$5D,$5D,$5D,$5D,$5D,$5D
E2F6 DEFB $5D,$5D,$5D,$5D,$5D,$5D,$5D,$5D
E2FE DEFB $5D,$5D,$5D,$00,$00,$00,$00,$00
E306 DEFB $00,$00,$00,$00,$00,$00,$00,$00
E30E DEFB $00,$00,$00,$00,$00,$00,$00,$00
E316 DEFB $00,$00,$00,$00,$00,$00,$00,$00
E31E DEFB $00,$00,$00,$00,$00,$00,$00,$00
E326 DEFB $00,$00,$00,$00,$00,$00,$00,$00
E32E DEFB $00,$00,$00,$00,$00,$00,$00,$00
E336 DEFB $00,$00,$00,$00,$00,$00,$00,$00
E33E DEFB $00,$00,$00,$00,$00,$00,$00,$00
E346 DEFB $00,$00,$00,$00,$00,$00,$00,$00
E34E DEFB $00,$00,$00,$00,$00,$00,$00,$00
E356 DEFB $00,$00,$00,$00,$00,$00,$00,$00
E35E DEFB $00,$00,$00,$00,$00,$00,$00,$00
E366 DEFB $00,$00,$00,$00,$00,$00,$00,$00
E36E DEFB $00,$00,$00,$00,$00,$00,$00,$00
E376 DEFB $00,$00,$00,$00,$00,$00,$00,$00
E37E DEFB $00,$00,$00,$00,$00,$00,$00,$00
E386 DEFB $00,$00,$00,$00,$00,$00,$00,$00
E38E DEFB $00,$00
E390: Shadow screen 256x192, 32*192=6144 bytes
screen-e390
E390 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
E3B0 DEFB $F8,$FE,$FE,$FE,$C6,$FE,$FE,$C6,$C0,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$FE,$FE,$C6,$FE,$FE,$FE,$C0,$FE,$00,$00,$00,$00
E3D0 DEFB $FC,$FE,$FE,$FE,$C6,$FE,$FE,$C6,$C0,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$FE,$FE,$E6,$FE,$FE,$FE,$C0,$FE,$00,$00,$00,$00
E3F0 DEFB $C6,$C2,$C6,$18,$FE,$C6,$C6,$C6,$C0,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$C6,$C6,$F6,$18,$C2,$C6,$C0,$C0,$00,$00,$00,$00
E410 DEFB $C6,$F8,$FE,$18,$FE,$FC,$C6,$D6,$C0,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$C0,$C6,$DE,$18,$FE,$C6,$C0,$FE,$00,$00,$00,$00
E430 DEFB $C6,$C2,$FE,$18,$C6,$C6,$C6,$FE,$C6,$18,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$C6,$C6,$CE,$18,$FC,$C6,$C6,$02,$18,$00,$00,$00
E450 DEFB $FC,$FE,$C6,$18,$C6,$FE,$FE,$EE,$FE,$18,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$FE,$FE,$C6,$18,$CC,$FE,$FE,$FE,$18,$00,$00,$00
E470 DEFB $F8,$FE,$C6,$18,$C6,$FE,$FE,$C6,$FE,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$FE,$FE,$C6,$18,$C6,$FE,$FE,$FE,$00,$00,$00,$00
E490 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
E4B0 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
E4D0 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
E4F0 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
E510 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
E530 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
E550 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
E570 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
E590 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$00,$00
E5B0 DEFB $FE,$00,$FE,$FE,$FE,$C6,$FE,$C6,$00,$FE,$FE,$00,$FE,$FE,$C6,$F8,$FE,$FE,$00,$00,$CF,$FF,$31,$01,$39,$01,$01,$01,$01,$07,$00,$00
E5D0 DEFB $FE,$00,$FE,$FE,$FE,$C6,$FE,$E6,$00,$FE,$FE,$00,$FE,$FE,$E6,$FC,$FE,$FE,$00,$00,$8F,$FF,$27,$01,$39,$01,$01,$01,$01,$03,$00,$00
E5F0 DEFB $C6,$00,$C2,$C2,$18,$C6,$C2,$F6,$00,$18,$C6,$00,$C0,$C2,$F6,$C6,$C2,$C2,$00,$00,$0F,$FF,$0F,$3D,$01,$39,$39,$39,$3D,$39,$00,$00
E610 DEFB $FE,$00,$FE,$F8,$18,$C6,$FE,$DE,$00,$18,$C6,$00,$FE,$F8,$DE,$C6,$F8,$FE,$00,$00,$CF,$FF,$0F,$07,$01,$03,$39,$01,$01,$39,$00,$00
E630 DEFB $FE,$00,$FC,$C2,$18,$C6,$FC,$CE,$00,$18,$C6,$00,$02,$C2,$CE,$C6,$C2,$FC,$00,$00,$CF,$FF,$27,$3D,$E7,$39,$39,$01,$03,$39,$00,$00
E650 DEFB $C6,$00,$CC,$FE,$18,$FE,$CC,$C6,$00,$18,$FE,$00,$FE,$FE,$C6,$FC,$FE,$CC,$00,$00,$03,$FF,$33,$01,$E7,$01,$01,$39,$33,$03,$00,$00
E670 DEFB $C6,$00,$C6,$FE,$18,$FE,$C6,$C6,$00,$18,$FE,$00,$FE,$FE,$C6,$F8,$FE,$C6,$00,$00,$03,$FF,$39,$01,$E7,$01,$01,$39,$39,$07,$00,$00
E690 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
E6B0 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
E6D0 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
E6F0 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
E710 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
E730 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
E750 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
E770 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
E790 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
E7B0 DEFB $FE,$00,$FE,$FE,$7E,$C0,$00,$C6,$FE,$C6,$FE,$FE,$00,$FE,$FE,$FE,$CE,$00,$00,$00,$FE,$00,$CE,$FE,$C6,$FE,$FE,$FE,$FE,$C6,$00,$00
E7D0 DEFB $FE,$00,$FE,$FE,$7E,$C0,$00,$C6,$FE,$C6,$FE,$FE,$00,$FE,$FE,$FE,$D8,$00,$00,$00,$FE,$00,$D8,$FE,$EE,$FE,$FE,$FE,$FE,$E6,$00,$00
E7F0 DEFB $C6,$00,$06,$C6,$18,$C0,$00,$FE,$C6,$C6,$C0,$C2,$00,$C2,$C6,$C6,$F0,$00,$00,$00,$02,$00,$F0,$C2,$FE,$C6,$C0,$18,$C6,$F6,$00,$00
E810 DEFB $FC,$00,$C6,$FE,$18,$C0,$00,$FE,$C6,$C6,$FE,$F8,$00,$FE,$C6,$C0,$F0,$00,$00,$00,$FE,$00,$F0,$F8,$D6,$FE,$FE,$18,$C6,$DE,$00,$00
E830 DEFB $C6,$00,$C6,$FE,$18,$C6,$00,$C6,$C6,$C6,$02,$C2,$00,$FC,$C6,$C6,$D8,$00,$00,$00,$C0,$00,$D8,$C2,$C6,$FE,$02,$18,$C6,$CE,$00,$00
E850 DEFB $FE,$00,$FE,$C6,$7E,$FE,$00,$C6,$FE,$FE,$FE,$FE,$00,$CC,$FE,$FE,$CC,$00,$00,$00,$FE,$00,$CC,$FE,$C6,$C0,$FE,$18,$FE,$C6,$00,$00
E870 DEFB $FE,$00,$FE,$C6,$7E,$FE,$00,$C6,$FE,$FE,$FE,$FE,$00,$C6,$FE,$FE,$C6,$00,$00,$00,$FE,$00,$C6,$FE,$C6,$C0,$FE,$18,$FE,$C6,$00,$00
E890 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
E8B0 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
E8D0 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
E8F0 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
E910 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
E930 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
E950 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
E970 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
E990 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
E9B0 DEFB $FE,$00,$FE,$00,$FE,$FE,$C0,$FE,$00,$FE,$00,$C6,$7E,$FE,$00,$00,$00,$00,$00,$00,$FE,$00,$FE,$7E,$C6,$FE,$C0,$FE,$7E,$FE,$00,$00
E9D0 DEFB $FE,$00,$FE,$00,$FE,$FE,$C0,$FE,$00,$FE,$00,$EE,$7E,$FE,$00,$00,$00,$00,$00,$00,$FE,$00,$FE,$7E,$E6,$FE,$C0,$FE,$7E,$FE,$00,$00
E9F0 DEFB $C6,$00,$C6,$00,$C0,$C6,$C0,$C2,$00,$C6,$00,$FE,$18,$C6,$00,$00,$00,$00,$00,$00,$06,$00,$C0,$18,$F6,$C6,$C0,$C6,$18,$C2,$00,$00
EA10 DEFB $C0,$00,$C6,$00,$FE,$C6,$C0,$F8,$00,$C6,$00,$D6,$18,$C6,$00,$00,$00,$00,$00,$00,$3E,$00,$FE,$18,$DE,$C0,$C0,$FE,$18,$FE,$00,$00
EA30 DEFB $C6,$00,$C6,$00,$02,$C6,$C6,$C2,$00,$C6,$00,$C6,$18,$C6,$00,$00,$00,$00,$00,$00,$06,$00,$02,$18,$CE,$C6,$C6,$FE,$18,$FC,$00,$00
EA50 DEFB $FE,$00,$FE,$00,$FE,$FE,$FE,$FE,$00,$FE,$00,$C6,$7E,$FE,$00,$00,$00,$00,$00,$00,$FE,$00,$FE,$7E,$C6,$FE,$FE,$C6,$7E,$CC,$00,$00
EA70 DEFB $FE,$00,$FE,$00,$FE,$FE,$FE,$FE,$00,$FE,$00,$C6,$7E,$FE,$00,$00,$00,$00,$00,$00,$FE,$00,$FE,$7E,$C6,$FE,$FE,$C6,$7E,$C6,$00,$00
EA90 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
EAB0 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
EAD0 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
EAF0 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
EB10 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
EB30 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
EB50 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
EB70 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
EB90 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
EBB0 DEFB $F8,$00,$C6,$FE,$FE,$FE,$FE,$FE,$FE,$FE,$FE,$CE,$00,$C6,$FE,$FE,$FE,$C0,$00,$00,$C0,$00,$FE,$C6,$FE,$FE,$FE,$FE,$00,$00,$00,$00
EBD0 DEFB $FC,$00,$C6,$FE,$FE,$FE,$FE,$FE,$FE,$FE,$FE,$D8,$00,$C6,$FE,$FE,$FE,$C0,$00,$00,$CC,$00,$FE,$C6,$FE,$FE,$FE,$FE,$00,$00,$00,$00
EBF0 DEFB $C6,$00,$FE,$C2,$C6,$C2,$18,$C6,$C2,$C2,$C6,$F0,$00,$FE,$C6,$18,$C2,$C0,$00,$00,$CC,$00,$C6,$C6,$C2,$C0,$C6,$C2,$00,$00,$00,$00
EC10 DEFB $C6,$00,$FE,$F8,$FE,$FE,$18,$FC,$FE,$F8,$FE,$F0,$00,$FE,$C6,$18,$F8,$C0,$00,$00,$FC,$00,$C0,$C6,$FE,$FE,$C6,$FE,$00,$00,$00,$00
EC30 DEFB $C6,$00,$C6,$C2,$FE,$FC,$18,$C6,$FC,$C2,$FE,$D8,$00,$C6,$C6,$18,$C2,$C6,$00,$00,$FC,$00,$C6,$C6,$FC,$02,$C6,$FC,$00,$00,$00,$00
EC50 DEFB $FC,$00,$C6,$FE,$C6,$CC,$18,$FE,$CC,$FE,$C6,$CC,$00,$C6,$FE,$18,$FE,$FE,$00,$00,$0C,$00,$FE,$FE,$CC,$FE,$FE,$CC,$00,$00,$00,$00
EC70 DEFB $F8,$00,$C6,$FE,$C6,$C6,$18,$FE,$C6,$FE,$C6,$C6,$00,$C6,$FE,$18,$FE,$FE,$00,$00,$0C,$00,$FE,$FE,$C6,$FE,$FE,$C6,$00,$00,$00,$00
EC90 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
ECB0 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
ECD0 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$02,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
ECF0 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$45,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
ED10 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$E2,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
ED30 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$40,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
ED50 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$08,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
ED70 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$14,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
ED90 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$08,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
EDB0 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$22,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
EDD0 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$57,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
EDF0 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$22,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
EE10 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$01,$10,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
EE30 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$07,$3C,$00,$00,$00,$00,$40,$38,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
EE50 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$3F,$E2,$00,$00,$00,$00,$E0,$7C,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
EE70 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$FF,$C1,$C0,$00,$00,$00,$44,$3A,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
EE90 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$01,$FF,$A8,$E0,$00,$00,$00,$1A,$15,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
EEB0 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$03,$DF,$95,$50,$00,$00,$00,$11,$22,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
EED0 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$0F,$7F,$AA,$AC,$00,$00,$00,$4A,$70,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
EEF0 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$1E,$77,$55,$56,$00,$00,$00,$04,$20,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
EF10 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$3F,$FC,$2A,$A2,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
EF30 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$7D,$BE,$55,$40,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
EF50 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$73,$5F,$2A,$8C,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
EF70 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$32,$BF,$8D,$56,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
EF90 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$19,$5F,$F6,$BE,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
EFB0 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$06,$B0,$BF,$FC,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
EFD0 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$03,$77,$7F,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
EFF0 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$27,$80,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
F010 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$01,$86,$C0,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
F030 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$03,$C7,$60,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$30,$0C,$00,$00,$00,$00,$00,$00,$00,$00,$00
F050 DEFB $00,$00,$00,$00,$00,$01,$80,$00,$07,$E4,$F0,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$69,$9E,$00,$00,$00,$00,$00,$00,$00,$00,$00
F070 DEFB $00,$00,$00,$00,$00,$07,$E0,$00,$1E,$E3,$EF,$C0,$00,$00,$00,$00,$00,$00,$00,$00,$00,$6B,$DA,$00,$00,$00,$00,$00,$00,$00,$00,$00
F090 DEFB $00,$00,$00,$00,$00,$0F,$B0,$00,$7F,$77,$DF,$E0,$00,$00,$00,$00,$00,$00,$00,$00,$00,$33,$CC,$00,$00,$00,$00,$00,$00,$00,$00,$00
F0B0 DEFB $00,$00,$00,$00,$00,$0F,$A8,$00,$7B,$2F,$B8,$30,$00,$00,$00,$00,$00,$00,$00,$00,$00,$17,$94,$00,$00,$00,$00,$00,$00,$00,$00,$00
F0D0 DEFB $00,$00,$00,$00,$00,$1F,$54,$00,$76,$0F,$37,$D8,$00,$00,$00,$00,$00,$00,$00,$00,$00,$34,$78,$00,$00,$00,$00,$00,$00,$00,$00,$00
F0F0 DEFB $00,$00,$00,$00,$00,$3F,$AC,$00,$6E,$1F,$68,$28,$00,$00,$00,$00,$00,$00,$00,$00,$00,$31,$E0,$00,$00,$00,$00,$00,$00,$00,$00,$00
F110 DEFB $00,$00,$00,$00,$00,$37,$54,$00,$3C,$1F,$72,$98,$00,$00,$00,$00,$00,$00,$00,$00,$00,$19,$80,$00,$00,$00,$00,$00,$00,$00,$00,$00
F130 DEFB $00,$00,$00,$00,$00,$0F,$AE,$00,$1C,$07,$76,$D8,$00,$00,$00,$00,$00,$00,$00,$00,$00,$1F,$F0,$00,$00,$00,$00,$00,$00,$00,$00,$00
F150 DEFB $00,$00,$00,$00,$00,$33,$96,$01,$88,$1F,$70,$18,$00,$00,$00,$00,$00,$00,$00,$00,$00,$06,$6C,$00,$00,$00,$00,$00,$00,$00,$00,$00
F170 DEFB $00,$00,$00,$00,$00,$7E,$6E,$07,$E0,$3F,$98,$30,$00,$00,$00,$00,$00,$00,$00,$00,$00,$0F,$16,$00,$00,$00,$00,$00,$00,$00,$00,$00
F190 DEFB $00,$00,$00,$00,$00,$7C,$BE,$0F,$B0,$3C,$CF,$E8,$00,$00,$00,$00,$00,$00,$00,$00,$00,$1D,$9E,$00,$00,$00,$00,$00,$00,$00,$00,$00
F1B0 DEFB $00,$00,$00,$00,$00,$79,$5C,$0F,$A8,$78,$0C,$5C,$00,$00,$00,$00,$00,$00,$00,$00,$00,$0C,$CC,$00,$00,$00,$00,$00,$00,$00,$00,$00
F1D0 DEFB $00,$00,$00,$00,$00,$1A,$B8,$1F,$54,$78,$05,$4E,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$E0,$00,$00,$00,$00,$00,$00,$00,$00,$00
F1F0 DEFB $00,$00,$00,$00,$00,$07,$E0,$3F,$AC,$60,$06,$DA,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$70,$00,$00,$00,$00,$00,$00,$00,$00,$00
F210 DEFB $00,$00,$00,$00,$00,$00,$00,$37,$54,$78,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
F230 DEFB $00,$00,$00,$00,$00,$00,$00,$0F,$AE,$3E,$00,$00,$00,$07,$3C,$00,$00,$30,$0C,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
F250 DEFB $00,$00,$00,$00,$00,$00,$00,$33,$96,$3A,$00,$00,$00,$3F,$E2,$00,$00,$69,$9E,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
F270 DEFB $00,$00,$00,$00,$00,$00,$00,$7E,$6E,$00,$00,$00,$00,$FF,$C1,$C0,$00,$6B,$DA,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
F290 DEFB $00,$00,$00,$00,$00,$00,$00,$7C,$BE,$00,$00,$00,$01,$FF,$A8,$E0,$00,$33,$CC,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
F2B0 DEFB $00,$00,$00,$00,$00,$00,$00,$79,$5C,$00,$00,$00,$03,$DF,$95,$50,$00,$17,$94,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
F2D0 DEFB $00,$00,$00,$00,$00,$00,$00,$1A,$B8,$15,$00,$00,$0F,$7F,$AA,$AC,$00,$34,$78,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
F2F0 DEFB $00,$00,$00,$00,$00,$00,$00,$07,$E0,$2A,$80,$00,$1E,$77,$55,$56,$00,$31,$E0,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
F310 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$01,$45,$40,$00,$3F,$FC,$2A,$AA,$00,$19,$80,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
F330 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$02,$A2,$80,$00,$7D,$BE,$55,$56,$00,$1F,$F0,$00,$00,$00,$00,$30,$0C,$00,$00,$00,$00,$00,$00,$00
F350 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$05,$55,$50,$00,$73,$5F,$2A,$AC,$00,$06,$6C,$00,$00,$00,$00,$69,$9E,$00,$00,$00,$00,$00,$00,$00
F370 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$02,$AA,$AA,$80,$32,$BF,$8D,$54,$00,$0F,$16,$00,$00,$00,$00,$6B,$DA,$00,$00,$00,$00,$00,$00,$00
F390 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$01,$55,$55,$40,$19,$5F,$F6,$B8,$00,$1D,$9E,$00,$00,$00,$00,$33,$CC,$00,$00,$00,$00,$00,$00,$00
F3B0 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$0A,$AA,$A0,$06,$B7,$BF,$F0,$00,$0C,$CC,$00,$00,$00,$00,$17,$94,$00,$00,$00,$00,$00,$00,$00
F3D0 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$55,$40,$03,$7D,$7F,$00,$00,$00,$E0,$00,$00,$00,$00,$34,$78,$00,$00,$00,$00,$00,$00,$00
F3F0 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$AA,$80,$00,$2F,$80,$00,$00,$00,$70,$00,$00,$00,$00,$31,$E0,$00,$00,$00,$00,$00,$00,$00
F410 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$54,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$19,$80,$00,$00,$00,$00,$00,$00,$00
F430 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$1F,$F0,$00,$00,$00,$00,$00,$00,$00
F450 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$06,$6C,$00,$00,$00,$00,$00,$00,$00
F470 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$0F,$16,$00,$00,$00,$00,$00,$00,$00
F490 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$1D,$9E,$00,$00,$00,$00,$00,$00,$00
F4B0 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$0C,$CC,$00,$00,$00,$00,$00,$00,$00
F4D0 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$E0,$00,$00,$00,$00,$00,$00,$00
F4F0 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$70,$00,$00,$00,$00,$00,$00,$00
F510 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
F530 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
F550 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
F570 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
F590 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
F5B0 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
F5D0 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
F5F0 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
F610 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
F630 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$1E,$00,$E0,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
F650 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$C0,$7C,$18,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
F670 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$03,$1E,$0F,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
F690 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$77,$C3,$C2,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
F6B0 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$11,$CE,$39,$E9,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
F6D0 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$23,$30,$07,$E5,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
F6F0 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$06,$E4,$11,$C4,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
F710 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$44,$E8,$A9,$90,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
F730 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$41,$F1,$47,$B1,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
F750 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$4B,$FE,$3E,$61,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
F770 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$03,$CF,$F9,$C6,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
F790 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$11,$E7,$C7,$08,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
F7B0 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$08,$F1,$F8,$30,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
F7D0 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$06,$3C,$00,$40,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
F7F0 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$01,$87,$1E,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
F810 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
F830 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
F850 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
F870 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
F890 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
F8B0 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
F8D0 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
F8F0 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
F910 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
F930 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
F950 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
F970 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
F990 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
F9B0 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
F9D0 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
F9F0 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
FA10 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
FA30 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
FA50 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
FA70 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
FA90 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
FAB0 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
FAD0 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
FAF0 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
FB10 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
FB30 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
FB50 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
FB70 DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
FB90: Menu tune + key-wait driver
Used by the routine at 85A1.
Sets up the melody-table pointers ($FBAB=$FC99, $FBAF=$FE33), then loops: disable interrupts, play one note via FBD7 (which reads/advances through the melody-index table and produces the tone), scan the keyboard via the ROM KEY-SCAN routine at $028E, and repeat until a key is pressed; then re-enable interrupts and return.
FB90 LD HL,$FC99 point $FBAB at the start of the melody-index table (FC9A, aliased as code for a rare branch -- see its note)
FB93 LD ($FBAB),HL
FB96 LD HL,$FE33 point $FBAF at $FE33 (a second/loop-restart table pointer, not yet explored)
FB99 LD ($FBAF),HL
FB9C DI disable interrupts while bit-banging the tone (precise timing)
FB9D CALL $FBD7 play one note (advances the melody-index pointer internally via FBB4/FBC1)
FBA0 CALL $028E ROM KEY-SCAN: scans the keyboard, returns no-key-found as E=$FF
FBA3 INC E if no key was found (E wraps to 0), loop back and play the next note
FBA4 JR Z,$FB9D
FBA6 EI re-enable interrupts and return (a key was pressed)
FBA7 RET
FBA8: Data block at FBA8
FBA8 DEFB $00,$00,$00
FBAB DEFW $EA60
FBAD DEFW $FC9A
FBAF DEFW $EE48
FBB1 DEFW $FE34
FBB3 DEFB $EE
FBB4: Melody-index table reader/advancer, used by FBD7
Used by the routine at FBD7.
Reads the next byte of the melody-index table (via the pointer at (HL)), advances the pointer, and returns it in A. If the byte is $40 (end-of-tune marker), jumps to FBCF to reload the pointer from a loop-restart address instead.
FBB4 LD E,(HL)
FBB5 INC HL
FBB6 LD D,(HL)
FBB7 INC DE
This entry point is used by the routine at FBCF.
FBB8 LD A,(DE)
FBB9 CP $40
FBBB JR Z,$FBCF
FBBD LD (HL),D
FBBE DEC HL
FBBF LD (HL),E
FBC0 RET
FBC1: Melody-index to period lookup, used by FBD7
Used by the routine at FBD7.
Converts a melody-index byte (from FBB4, at (HL)) into an actual tone period by adding $0C and indexing into the period table at FC64; returns the period in H, with L fixed at $01. E.g. index $29 (+$0C=$35) -> FC64+$35 = $FC99 = $01.
FBC1 LD A,(HL)
FBC2 ADD A,$0C
FBC4 LD E,A
FBC5 LD D,$00
FBC7 LD HL,$FC64
FBCA ADD HL,DE
FBCB LD H,(HL)
FBCC LD L,$01
FBCE RET
FBCF: Continuation of FBB4
Used by the routine at FBB4.
FBCF INC HL
FBD0 LD E,(HL)
FBD1 INC HL
FBD2 LD D,(HL)
FBD3 DEC HL
FBD4 DEC HL
FBD5 JR $FBB8
FBD7: Play one note / check key selection
Used by the routine at FB90.
Calls FBB4 twice (storing results at $FBA8/$FBA9), then FBC1 twice to check them; if neither matches, falls into the tone-generator loop at $FC04, continuing through $FC15/$FC17/$FC25 into FC34, which toggles the speaker/border via OUT ($FE),A (bit 4 = speaker) in a tight DJNZ-timed square-wave loop -- this is the music heard while the menu waits for input. If both checks match, jumps to the plain delay loop at FC46 instead.
FBD7 LD HL,$FBAB
FBDA CALL $FBB4 Melody-index table reader/advancer, used by FBD7
FBDD LD ($FBA8),A
FBE0 LD HL,$FBAF
FBE3 CALL $FBB4 Melody-index table reader/advancer, used by FBD7
FBE6 LD ($FBA9),A
FBE9 LD HL,$FBA8
FBEC CALL $FBC1 Melody-index to period lookup, used by FBD7
FBEF RL E
FBF1 JP C,$FC9A
FBF4 PUSH HL
FBF5 LD HL,$FBA9
FBF8 CALL $FBC1 Melody-index to period lookup, used by FBD7
FBFB POP DE
FBFC LD A,H
FBFD DEC A
FBFE JR NZ,$FC04
FC00 LD A,D
FC01 DEC A
FC02 JR Z,$FC46
FC04 LD A,($FBB3) setup: C=note duration count (from $FBB3), B=0, load key-state twice into both AF register banks, D=$10 (initial half-period)
FC07 LD C,A
FC08 LD B,$00
FC0A LD A,($FBAA)
FC0D EX AF,AF'
FC0E LD A,($FBAA)
FC11 LD IXh,D
FC13 LD D,$10
This entry point is used by the routine at FC34.
FC15 NOP
FC16 NOP
This entry point is used by the routine at FC34.
FC17 EX AF,AF'
FC18 DEC E
FC19 OUT ($FE),A toggle speaker/border bit 4 -- produces the audible tone
FC1B JR NZ,$FC34
FC1D LD E,IXh
FC1F XOR D
FC20 EX AF,AF'
FC21 DEC L
FC22 JP NZ,$FC3B
This entry point is used by the routine at FC34.
FC25 OUT ($FE),A toggle speaker/border bit 4 -- produces the audible tone
FC27 LD L,H
FC28 XOR D
FC29 DJNZ $FC15
FC2B INC C
FC2C JP NZ,$FC17
FC2F RET
FC30: NOTE: not a real string
Literal ASCII "adam" embedded as data/padding between code paths; possibly a programmer's signature.
FC30 DEFM "adam"
FC34: Tone generator loop (continued)
Used by the routine at FBD7.
Toggles the speaker bit via OUT ($FE),A, timed by DJNZ.
FC34 JR Z,$FC34
FC36 EX AF,AF'
FC37 DEC L
FC38 JP Z,$FC25
This entry point is used by the routine at FBD7.
FC3B OUT ($FE),A toggle speaker/border bit 4 -- produces the audible tone
FC3D NOP
FC3E NOP
FC3F DJNZ $FC15
FC41 INC C
FC42 JP NZ,$FC17
FC45 RET
FC46: Plain delay loop (no sound)
Used by the routine at FBD7.
Decrements a counter via $FBB3, with no OUT ($FE) calls.
FC46 LD A,($FBB3)
FC49 CPL
FC4A LD C,A
FC4B PUSH BC
FC4C PUSH AF
FC4D LD B,$00
FC4F PUSH HL
FC50 LD HL,$0000
FC53 SRA (HL) shift a (self-modified) pointer's byte right 3 times (divide by 8) -- pure delay, no sound
FC55 SRA (HL)
FC57 SRA (HL)
FC59 NOP
FC5A POP HL
FC5B DJNZ $FC4F
FC5D DEC C
FC5E JP NZ,$FC4F
FC61 POP AF
FC62 POP BC
FC63 RET
FC64: Note/period table for the FC04 tone generator
54 bytes: 53 descending values (= ascending pitch), indexed by FBC1 as (melody-index byte + $0C), plus a trailing byte at $FC99 that is never actually read as a melody index (see FC9A).
FC64 DEFB $FF,$F0,$E3,$D7,$CB,$C0,$B4,$AB,$A1,$97,$90,$88,$80,$79,$72,$6C,$66,$60
FC76 DEFB $5B,$56,$51,$4C,$48,$44,$40,$3D,$39,$36,$33,$30,$2D,$2B,$28,$26,$24,$22
FC88 DEFB $20,$1E,$1C,$1B,$19,$18,$17,$15,$14,$13,$12,$11,$10,$0F,$0E,$0D,$0C,$01
FC9A: Melody-index table (start)
Used by the routine at FBD7.
Each byte, +$0C then indexed into FC64, gives the tone period for one note. Terminated by $40. FBB4 stores the pointer as $FC99 but always increments before reading, so the first byte actually consumed is here at $FC9A ($29); +$0C=$35, and FC64+$35=$FC99=$01. This table also happens to be reachable as code via FBF1 (JP C,$FC9A -- 12x ADD HL,HL, a rarely/never-taken branch that reuses these bytes as opcodes; not its primary purpose).
FC9A DEFB $29,$29,$29,$29,$29,$29,$29,$29
FCA2 DEFB $29,$29,$29,$29,$18,$29,$18,$1A
FCAA DEFB $29,$1B,$1C,$1C,$1C,$0C,$29,$29
FCB2 DEFB $F9,$0B,$0E,$F9,$0A,$29,$F9,$07
FCBA DEFB $0A,$F9,$07,$05,$F4,$04,$03,$F4
FCC2 DEFB $04,$03,$F4,$F4,$F6,$F8,$F8,$F6
FCCA DEFB $0E,$0D,$10,$F4,$0C,$0A,$F4,$09
FCD2 DEFB $0C,$F4,$07,$04,$F9,$05,$04,$F9
FCDA DEFB $05,$04,$F9,$F9,$FB,$FD,$FD,$FB
FCE2 DEFB $F9,$29,$29,$F9,$29,$29,$F9,$29
FCEA DEFB $29,$F9,$29,$29,$F4,$29,$29,$F4
FCF2 DEFB $29,$29,$F4,$F4,$F6,$F8,$F8,$F6
FCFA DEFB $FB,$29,$29,$FB,$29,$29,$FB,$29
FD02 DEFB $29,$FB,$29,$29,$FB,$29,$29,$F8
FD0A DEFB $29,$29,$F4,$29,$29,$F4,$29,$29
FD12 DEFB $F4,$29,$29,$F4,$29,$29,$F4,$29
FD1A DEFB $29,$F4,$29,$29,$F9,$0E,$0E,$F9
FD22 DEFB $29,$29,$F9,$29,$29,$F9,$29,$29
FD2A DEFB $FB,$29,$29,$F4,$29,$29,$FB,$29
FD32 DEFB $29,$F4,$29,$29,$F9,$29,$29,$F9
FD3A DEFB $29,$29,$F9,$29,$29,$F9,$29,$29
FD42 DEFB $F4,$29,$29,$F4,$29,$29,$F4,$29
FD4A DEFB $29,$F4,$29,$29,$F9,$29,$29,$F9
FD52 DEFB $29,$29,$F9,$29,$29,$F9,$29,$29
FD5A DEFB $F9,$29,$05,$29,$29,$29,$FE,$29
FD62 DEFB $29,$29,$29,$29,$FD,$29,$29,$FB
FD6A DEFB $29,$29,$F9,$29,$0C,$0C,$0B,$0C
FD72 DEFB $FB,$29,$29,$FB,$29,$29,$F4,$29
FD7A DEFB $29,$F4,$29,$29,$F9,$29,$29,$F9
FD82 DEFB $29,$29,$F9,$29,$29,$F9,$29,$29
FD8A DEFB $F4,$29,$29,$F4,$29,$29,$F4,$29
FD92 DEFB $29,$F4,$29,$29,$F9,$29,$29,$F9
FD9A DEFB $29,$29,$F9,$29,$29,$F9,$29,$29
FDA2 DEFB $FB,$29,$29,$FB,$29,$29,$F4,$29
FDAA DEFB $29,$F4,$29,$29,$F9,$29,$29,$F9
FDB2 DEFB $29,$29,$F9,$29,$29,$F9,$29,$29
FDBA DEFB $1C,$29,$29,$29,$29,$29,$07,$29
FDC2 DEFB $29,$29,$29,$29,$00,$29,$29,$00
FDCA DEFB $29,$29,$00,$29,$29,$00,$29,$29
FDD2 DEFB $00,$29,$29,$00,$29,$29,$00,$29
FDDA DEFB $29,$00,$29,$29,$05,$29,$29,$05
FDE2 DEFB $29,$29,$05,$29,$29,$05,$29,$29
FDEA DEFB $07,$29,$29,$07,$29,$29,$00,$29
FDF2 DEFB $29,$00,$29,$29,$05,$29,$29,$05
FDFA DEFB $29,$29,$00,$29,$29,$00,$29,$29
FE02 DEFB $F4,$29,$29,$F4,$29,$29,$F4,$29
FE0A DEFB $29,$F4,$29,$29,$F9,$29,$29,$F9
FE12 DEFB $29,$29,$F9,$29,$29,$F9,$29,$29
FE1A DEFB $F9,$29,$1D,$1D,$1F,$21,$22,$29
FE22 DEFB $16,$16,$1A,$18,$FD,$29,$29,$FB
FE2A DEFB $29,$29,$F9,$29,$29,$29,$29,$29
FE32 DEFB $40,$00
FE34: Data block at FE34
FE34 DEFB $18,$17,$1A,$18,$29,$29,$0C,$0B
FE3C DEFB $0E,$0C,$29,$29,$18,$29,$18,$1A
FE44 DEFB $1A,$1B,$1C,$1C,$1C,$00,$29,$29
FE4C DEFB $0C,$0B,$0E,$0C,$0A,$09,$09,$07
FE54 DEFB $0A,$09,$07,$05,$04,$04,$03,$04
FE5C DEFB $04,$03,$04,$F4,$F6,$F8,$F8,$F6
FE64 DEFB $F4,$0D,$10,$0E,$0C,$0A,$16,$15
FE6C DEFB $18,$16,$13,$10,$05,$05,$04,$05
FE74 DEFB $05,$0E,$0C,$0C,$0C,$F6,$F6,$F4
FE7C DEFB $0C,$0B,$0E,$0C,$0A,$09,$09,$07
FE84 DEFB $0A,$09,$07,$05,$04,$04,$03,$04
FE8C DEFB $04,$03,$04,$F4,$F6,$F8,$F8,$F6
FE94 DEFB $07,$07,$09,$0B,$0B,$09,$07,$07
FE9C DEFB $09,$0B,$0B,$09,$07,$07,$11,$10
FEA4 DEFB $10,$0E,$0C,$29,$29,$0C,$29,$29
FEAC DEFB $00,$00,$00,$04,$04,$07,$0E,$0E
FEB4 DEFB $29,$0E,$0E,$29,$0E,$0E,$0E,$0E
FEBC DEFB $0E,$0E,$0E,$0C,$0C,$0C,$09,$0C
FEC4 DEFB $0E,$0E,$0E,$0E,$0E,$0E,$0E,$0C
FECC DEFB $0C,$0C,$09,$0C,$0E,$0E,$0E,$0E
FED4 DEFB $0E,$0E,$0E,$0E,$0C,$09,$09,$05
FEDC DEFB $00,$00,$00,$04,$04,$07,$0E,$0E
FEE4 DEFB $29,$0E,$0E,$29,$0E,$0E,$0E,$0E
FEEC DEFB $0E,$0E,$0E,$0E,$0C,$0C,$09,$0C
FEF4 DEFB $11,$29,$05,$05,$07,$09,$0A,$29
FEFC DEFB $0A,$0A,$0E,$0C,$09,$09,$09,$07
FF04 DEFB $07,$07,$05,$29,$0C,$0C,$0B,$0C
FF0C DEFB $0E,$29,$29,$0E,$0E,$0E,$10,$29
FF14 DEFB $29,$10,$10,$10,$13,$29,$29,$11
FF1C DEFB $11,$11,$11,$29,$11,$11,$10,$0E
FF24 DEFB $0C,$0C,$0D,$0E,$0E,$0D,$0C,$29
FF2C DEFB $11,$11,$10,$0E,$0C,$0C,$0D,$0E
FF34 DEFB $0E,$0D,$0C,$29,$0C,$0C,$0B,$0C
FF3C DEFB $0E,$29,$29,$0E,$0E,$0E,$10,$29
FF44 DEFB $29,$10,$10,$10,$13,$29,$29,$11
FF4C DEFB $11,$11,$11,$29,$11,$11,$10,$11
FF54 DEFB $10,$29,$10,$10,$11,$12,$13,$29
FF5C DEFB $13,$13,$15,$17,$18,$1C,$1A,$18
FF64 DEFB $1C,$1A,$18,$29,$29,$18,$29,$29
FF6C DEFB $0C,$0C,$0C,$10,$10,$13,$1A,$1A
FF74 DEFB $29,$1A,$1A,$29,$1A,$1A,$1A,$1A
FF7C DEFB $1A,$1A,$1A,$18,$18,$18,$15,$18
FF84 DEFB $1A,$1A,$1A,$1A,$1A,$1A,$1A,$1A
FF8C DEFB $18,$18,$15,$18,$1A,$1A,$1A,$1A
FF94 DEFB $1A,$1A,$1A,$1A,$18,$15,$15,$11
FF9C DEFB $0C,$0C,$0C,$10,$10,$13,$1A,$1A
FFA4 DEFB $29,$1A,$1A,$29,$1A,$1A,$1A,$1A
FFAC DEFB $1A,$1A,$1A,$1A,$18,$18,$15,$18
FFB4 DEFB $1D,$29,$11,$11,$13,$15,$16,$29
FFBC DEFB $16,$16,$1A,$18,$15,$15,$15,$13
FFC4 DEFB $13,$13,$11,$29,$29,$29,$29,$29
FFCC DEFB $40,$00
FFCE: Data block at FFCE
FFCE DEFB $00,$00,$00,$00,$00,$00,$00,$00
FFD6 DEFB $00,$00,$00,$00,$00,$00,$00,$00
FFDE DEFB $00,$00,$00,$00,$00,$00,$00,$00
FFE6 DEFB $00,$00,$00,$00,$00,$00,$00,$00
FFEE DEFB $00,$00,$00,$00,$00,$00,$00,$00
FFF6 DEFB $00,$00,$00,$00,$00,$00,$00,$00
FFFE DEFB $00,$03