The Hunt disassembly ==================== The Hunt, subtitled Search for Shauna, was written by Ian Muriss and published by Robico Software in 1987. It is a graphical text adventure in which the player must explore a space station in search of a kidnapped crew member. The following disassembly was created by reverse engineering binary images, without access to any source code. It is nevertheless reasonably complete, allowing the technical approaches used to be understood. The author of this disassembly imposes no additional copyright restrictions beyond those already present on the game itself. It is provided for educational purposes only, and it is hoped that the original authors will accept it in the good faith it was intended - as a tribute to their skills. Technical notes =============== The game has 101 rooms, 26 objects and approximately 13k of compressed text. The parser understands 187 words, including 72 verbs. Except for ordinal directions, only the first four characters of each word are considered. This disassembly analyses the tape version of the game. The disk version replaces twenty one of the graphics with bitmaps that are loaded as needed. Interesting pokes ================= &22b0 = &b0 fix bug to allow full ordinal directions (e.g. "northeast") &1ad3 = &01 fix bug to allow scoring for opening trapdoor Loader disassembly ================== ; HUNT1 ; 004100 005200 001162 ; loading_screen # MODE 5 screen data, &100 per group &4100 ff 8f 9f ef af af af af ff 2f ff 0f 0f 0f 0f 0f &4110 ff ff 2f 2f 2f 2f 2f 7f ff 8f 0f 0f 0f 0f 3f ef &4120 ff 4f 4f 4f 4f 7f cf 0f ff 0f 0f 0f 1f ef 4f 4f &4130 ff 8f 8f 9f ef 0f 0f 0f ff 2f 2f ff 8f 8f 8f 8f &4140 ff 0f ff 4f 4f 4f 4f 7f ff ff 2f 2f 2f 2f 7f 8f &4150 ff 9f 1f 1f 1f ff 8f 8f ff 1f 1f 1f ef 4f 4f 4f &4160 ff 1f 1f ef 4f 4f 7f df ff 3f df 9f 9f ef af 2f &4170 ff df 5f 7f ff bf bf df ff 00 00 00 33 44 44 33 &4180 ff 00 00 00 ff 00 00 ff ff 11 11 11 99 55 55 99 &4190 ff ef bf 9f df 3f ef bf ff 4f cf 7f 2f af 6f 9f &41a0 ff 9f 9f 9f 7f 4f 4f cf ff 3f 1f 1f 1f ff 4f 4f &41b0 ff ef 1f 0f 0f 0f ef 5f ff 0f ef 5f 4f 4f 4f ef &41c0 ff 8f 8f ff 1f 1f 1f 1f ff 1f 1f 9f 7f 0f 0f 0f &41d0 ff 0f 0f 0f 8f 7f 2f 2f ff 2f 2f 2f 2f ef 3f 0f &41e0 ff 1f 0f 0f 0f 0f cf 7f ff ff 4f 4f 4f 4f 4f ef &41f0 ff 4f ff 0f 0f 0f 0f 0f ff 1f 9f 7f 5f 5f 5f 5f &4200 af ff 8f 8f 8f 8f 8f 8f 7f af 2f 2f 2f 2f 2f 3f &4210 8f 0f 0f 0f 0f 0f 3f ef 2f 2f 2f 2f 2f 7f 8f 0f &4220 0f 0f 0f 1f ef 4f 5e 7c 4f 4f 5f ef 1e 1e 3c 3c &4230 0f 7a f0 f0 f0 f0 f0 f3 bf ef a7 a7 a7 b7 f6 bc &4240 9f 1f 1f 3c 78 f0 f0 f0 0f 78 f0 f0 e0 d0 b0 70 &4250 8f f1 b1 71 f1 f1 e1 e1 7f 9f 1f 1f 6f 9e 7c 48 &4260 1f 1e 7c f8 f0 f0 e0 10 3f f0 e0 d0 b0 70 f0 f0 &4270 3f d7 b7 d7 b7 d7 a6 c4 00 00 00 00 00 00 00 00 &4280 44 44 44 44 44 44 00 00 11 11 11 11 11 11 00 00 &4290 cf 3f af ef 9f 6f bf 67 4f 78 d8 68 f8 f8 f8 f8 &42a0 bf f0 f0 f0 70 b0 d0 e0 4f f0 f0 f0 f0 f0 f0 f0 &42b0 4f f0 f0 f0 f0 f0 f0 f0 1f f0 f0 f0 f0 f0 f0 f0 &42c0 df bf 87 c3 f0 f0 f0 f0 0f cf 3f 2f 2f a7 e3 e1 &42d0 2f 2f af 7f 0f 0f 0f 0f 0f 0f 0f 8f 7f 2f 2f 2f &42e0 4f 4f 4f 4f 4f ef 1f 0f 1f 0f 0f 0f 0f 0f cf 7f &42f0 ef 5f 4f 4f 4f 4f 4f cf 5f ff 1f 1f 1f 1f 1f 1f &4300 8f ff af af af af af af ef 0f 0f 0f 0f 0f 0f 3f &4310 2f 2f 2f 2f 2f 3f ef 0f 0f 0f 1e 1e 7c bc 3c 3c &4320 f0 f0 f0 e1 e1 c3 87 87 3c 7c fc 7c 7c 7c 7c 7c &4330 c3 87 87 87 97 e7 96 b4 bf ae ae ee ae a6 a6 a6 &4340 ff 11 59 95 59 95 59 95 f0 f0 f0 f0 f0 f0 f0 f0 &4350 e1 f1 f1 f1 e1 e1 e1 f1 ff 4c 5c cd 5c 4d dc 4d &4360 fe 32 3a b2 3a b2 3a b2 f0 f0 f0 f0 f0 f0 f0 f0 &4370 80 90 91 91 91 80 80 80 00 f0 ff ff ff 66 66 66 &4380 00 b0 bb bb bb 33 33 33 00 00 00 00 e0 f6 ff ff &4390 23 11 00 00 10 30 31 b3 78 78 b8 30 10 cc ee 33 &43a0 f0 f0 f0 f0 f0 f0 f0 70 ff 88 a9 9a a9 9a a9 9a &43b0 ff 00 a5 5a a5 5a a5 5a ff 00 a5 5a a5 5a a5 5a &43c0 ff 00 a5 5a a5 5a a5 5a ff 11 95 59 95 59 95 59 &43d0 8f 6f 3f 2f 2f 2f af 6f 2f 2f ef 3f 0f 0f 0f 0f &43e0 0f 0f 0f 0f ef 5f 4f 4f 4f 4f 4f 4f 4f cf 7f 0f &43f0 7f 0f 0f 0f 0f 0f 0f cf 1f ff 5f 5f 5f 5f 5f 5f &4400 bf ef 8f 8f 8f 8f 8f 8f ef 2f 3e 3c 3c 78 78 78 &4410 0f e1 f0 f0 f0 f0 e1 e1 3c 3c 3c 7c bc 3c 3c 3c &4420 96 f0 f0 f0 e1 e1 d7 e7 bc 3c 3c 3c 1e 6f cf 4f &4430 f0 f0 f0 f0 e1 c3 0f 1f e6 a6 ae ae ae ae ee 2e &4440 59 95 59 95 59 95 59 95 f0 f0 f0 f0 f0 f0 f0 e0 &4450 f1 f1 f1 e0 d0 b0 70 f0 5c cd 54 45 d4 c5 d4 c5 &4460 3a b2 3a b2 3a b2 3a b2 f0 f0 f0 f0 f0 f0 f0 f0 &4470 80 80 80 80 80 80 80 90 66 66 66 66 66 66 00 e0 &4480 33 33 33 33 33 33 00 10 bb 11 11 11 11 11 00 e0 &4490 bb bb bb bb bb 99 00 00 33 ff ee 00 ff ee 00 f0 &44a0 30 10 00 00 00 00 00 80 88 ff 00 70 70 70 70 70 &44b0 00 ff 11 f1 f1 f1 f1 f1 24 42 24 42 24 42 24 42 &44c0 00 ff 9f 9f 9f df ff df 11 ff df 3f 0f 0f 0f 8f &44d0 1f 0f 0f 0f 8f 6f 3f 2f 8f 6f 3f 2f 2f 2f af 6f &44e0 4f 4f cf 6f 1f 0f 1f 3e ff ef 4f 4f cf ef ff f0 &44f0 7f 4f 4f 4f 4f 4f cf ef df 7f 1f 1f 1f 1f 1f 1f &4500 9f ef af af af af af af f8 f0 f0 f0 f0 f0 f0 f0 &4510 a7 a7 2f 3f 2f cf 0f c3 3c 3c 7c bc 3c 3c 2f 2f &4520 c7 87 87 87 87 1f 2f cf 4f 4f 5f 6f cf 0f 0f 0f &4530 2f cf 8f 8f 8f 9f af cf 2e 2e 2e 6e ae ae ae ae &4540 59 95 59 95 48 a5 5a a5 d0 b0 70 ff 00 a5 5a a5 &4550 f0 f0 f0 ff 00 a5 5a a5 d4 c5 d4 cd 10 a5 5a a5 &4560 3a b2 3a b2 3a b2 3a b2 f0 f0 e0 d0 d0 f3 e2 e2 &4570 b0 70 f0 e0 e0 ff 11 95 a0 60 60 e0 e0 e0 e0 e0 &4580 30 30 70 70 78 ff 88 a9 e0 e0 e0 e0 e0 ec 64 64 &4590 10 30 30 70 f0 f0 f0 f1 f0 f0 f0 f0 f0 f3 ff cc &45a0 e0 e0 f0 f0 f0 fc ff 33 70 70 70 70 b0 b0 b0 f8 &45b0 f1 f1 f1 f1 f1 f1 f1 f1 24 42 24 42 24 42 24 42 &45c0 cf cf cf af 9f 9f 9f df 4f 3f 1f 1f 1f 9f 5f 3f &45d0 2f 2f af 6f 3f 0f 0f 0f 3f 0f 0f 0f 0f 8f 4f 3f &45e0 3e fc 7c 7c 7c 7c 7c 7c f0 f0 f0 f0 f0 f0 f0 f0 &45f0 9f 47 c7 c7 c7 c7 c7 e7 9f 7f 5f 5f 5f 5f 5f 5f &4600 af bf ef 8f 8f 8f 8f 8f f0 f0 78 78 78 3c 3e 6f &4610 e1 e1 f0 f0 f0 f0 f0 69 3f 2f cf 0f 0f 0f 0f 1f &4620 4f 4f 4f 4f 5f 6f cf 0f 1f 2f 4f cf 4f 4f 5f 6e &4630 8f 0f 1f 2e 4c 88 00 00 ee aa 22 22 22 22 22 22 &4640 5a a5 5a 84 59 95 59 95 5a a5 5a 00 ff 00 f0 f0 &4650 5a a5 5a 00 ff 00 e0 e0 5a a5 5a 01 dc 45 54 45 &4660 3a b2 3a b2 3a b2 3a b2 e2 e2 e2 e2 e2 e2 e2 e2 &4670 59 95 59 95 59 95 59 95 e0 e0 e0 e0 e0 e0 e0 e0 &4680 9a a9 9a a9 9a a9 9a a9 64 74 74 74 74 74 74 74 &4690 f1 f3 e2 e6 c4 d4 cd 98 01 52 25 5a a5 5a 84 19 &46a0 80 4a a4 5a a5 5a 21 98 d8 dc 74 76 32 3a b3 19 &46b0 f1 f1 f1 f1 f1 f1 f1 f1 24 42 24 42 24 42 24 42 &46c0 bb 99 88 88 88 88 88 88 1f 0f 8f 47 23 11 00 00 &46d0 8f 4f 2f 3f 2f 2f af 67 2f 2f 2f 2f af 6f 3f 0f &46e0 fc 7c 7e 7e 7e 7e 7f fe f0 f0 f0 f8 e8 f9 ea fb &46f0 d7 c7 c7 c7 c7 cf cf ef 5f df 7f 1f 1f 1f 1f 1f &4700 8f 9f ef af af af af af 8f 0f 0f 0f 0f 0f 1f 2f &4710 2f 2f 2f 3f 6f 8f 0f 0f 2f 6f af 2f 2f 2f 3f 2e &4720 0f 0f 1f 2e 4c 88 00 00 4c 88 00 00 00 00 00 00 &4730 00 00 00 00 00 00 00 00 22 22 22 22 22 22 22 22 &4740 59 95 59 95 59 95 59 95 f0 f0 f0 f0 f0 f0 f0 f0 &4750 e0 e0 e0 e0 e0 e0 e0 e0 54 45 54 45 54 45 54 45 &4760 3a b2 3a b2 3a b2 3a b2 e2 e2 e2 e2 e2 e2 e2 e2 &4770 59 95 59 95 59 95 59 95 e0 e0 e0 e0 e0 d0 b0 b0 &4780 9a a9 9a a9 9a a9 9a a9 74 74 74 74 74 74 74 74 &4790 a9 9a a9 9a a9 9a a9 9a 33 76 74 74 74 74 74 74 &47a0 cc e6 e2 e2 e2 e2 e2 e2 95 59 95 59 95 59 95 59 &47b0 f1 f1 f1 f1 f1 f1 f1 f1 24 42 24 42 24 42 24 42 &47c0 88 88 88 88 88 88 88 88 00 00 00 00 00 00 00 00 &47d0 23 11 00 00 00 00 00 00 0f 0f 8f 47 23 11 00 00 &47e0 7e 7c 7c 7c 7c 7c fc 74 ea f9 f0 f0 f0 f0 f0 f0 &47f0 57 cf c7 c7 c7 c7 c7 c7 1f 9f 7f 5f 5f 5f 5f 5f &4800 af af bf cf 8f 8f 8f 8f 6f af 2f 2f 2f 2f 3f 2e &4810 0f 0f 1f 2e 4c 88 00 00 4c 88 00 00 00 22 44 44 &4820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &4830 00 00 00 00 00 00 00 00 22 22 22 22 22 22 22 22 &4840 59 95 59 95 59 95 59 95 f0 f0 f0 f0 f0 f0 f0 f0 &4850 e0 e0 e0 e0 e0 e0 c0 80 54 45 54 45 54 45 54 45 &4860 3a b2 3a b2 3a b2 3a b2 e2 e2 e2 e2 f3 d1 f1 c0 &4870 59 84 4a 25 52 25 12 a9 f9 ff 66 00 5a a5 5a a5 &4880 9a 21 52 a4 4a a4 48 95 74 74 54 54 dc 98 98 10 &4890 a9 9a a9 9a a9 9a a9 9a 74 74 74 74 74 74 74 54 &48a0 e2 e2 e2 e2 e2 e2 e2 e2 95 59 95 59 95 59 95 59 &48b0 f1 f1 f1 f1 f1 f1 f1 f1 24 42 24 42 24 42 24 42 &48c0 88 88 88 88 88 88 88 88 00 00 00 00 00 00 00 00 &48d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &48e0 74 74 74 74 74 74 74 74 f0 f0 f0 f0 f0 f0 f0 f0 &48f0 e7 d7 c7 c7 c7 c7 c7 c7 5f 5f df 3f 1f 1f 1f 1f &4900 8f 8f 9f ae cc 88 88 88 4c 88 22 44 55 22 22 11 &4910 00 11 00 00 00 00 88 00 88 00 88 55 11 00 00 00 &4920 00 88 88 11 22 cc 00 11 00 00 00 00 00 cc aa 22 &4930 00 00 00 00 00 00 00 00 22 22 22 22 33 00 00 00 &4940 59 95 59 11 ff 00 00 00 f0 e0 c0 80 00 00 00 00 &4950 00 00 00 00 00 00 00 00 54 45 54 44 77 00 00 00 &4960 3a b2 3a 32 ee 00 00 00 80 80 00 00 00 00 00 00 &4970 98 44 66 33 11 00 00 00 5a a5 42 00 ff 00 00 00 &4980 19 22 66 cc 88 00 00 00 10 10 00 00 00 00 00 00 &4990 a9 9a a9 88 ff 00 00 00 54 44 44 44 cc 00 00 00 &49a0 e2 e2 e2 62 33 00 00 00 95 59 95 11 ff 00 00 00 &49b0 f1 f1 71 31 11 00 00 00 24 42 24 00 ff 00 00 00 &49c0 88 88 88 88 88 00 00 00 00 00 00 00 00 00 00 00 &49d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &49e0 54 54 32 32 11 00 00 00 f0 f0 f0 e0 f1 ee 00 00 &49f0 e7 d5 88 88 00 00 00 00 1f 1f 9f 57 33 11 11 11 &4a00 88 88 88 88 88 88 88 88 00 00 00 00 00 00 00 00 &4a10 66 99 99 66 00 00 00 00 00 00 44 22 ff 88 44 00 &4a20 11 00 22 11 00 00 00 44 22 ee 55 55 88 00 00 00 &4a30 cc aa 22 22 dc 10 20 20 00 00 00 80 00 10 10 20 &4a40 00 00 00 00 e0 10 00 00 00 00 00 40 20 20 10 10 &4a50 00 00 00 00 00 00 00 00 00 00 00 0f 01 01 01 01 &4a60 00 00 00 0e 00 00 00 00 00 00 00 00 00 00 00 00 &4a70 00 00 00 0c 0e 0a 0b 09 00 00 00 06 0e 0a 0a 02 &4a80 00 00 00 00 00 00 00 09 00 00 00 00 00 00 00 05 &4a90 00 00 00 00 00 00 04 00 00 00 00 00 00 00 00 0e &4aa0 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 00 &4ab0 00 00 00 00 40 d0 50 50 00 00 00 00 c0 20 20 20 &4ac0 00 00 00 00 60 90 90 90 00 00 00 00 70 00 00 00 &4ad0 00 00 00 00 c0 40 80 80 00 00 00 00 00 00 00 00 &4ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &4af0 00 00 00 00 00 00 00 00 11 11 11 11 11 11 11 11 &4b00 88 88 88 88 88 88 88 ff 00 00 00 00 00 00 00 ff &4b10 00 00 00 00 00 00 00 ff 00 00 11 11 00 00 00 ff &4b20 aa aa 44 00 99 23 22 ff 00 00 cc aa 00 33 44 ff &4b30 20 20 20 10 10 88 88 ff 20 20 10 10 00 80 00 ff &4b40 00 00 00 10 e0 00 00 ff 10 10 10 20 20 40 00 ff &4b50 00 00 00 00 00 00 00 ff 01 01 01 01 01 0f 00 ff &4b60 00 00 00 00 00 0e 00 ff 00 00 00 00 00 04 00 ff &4b70 09 08 08 08 08 08 00 ff 02 02 02 02 02 02 00 ff &4b80 09 09 09 09 09 06 00 ff 06 04 04 04 04 04 00 ff &4b90 05 05 04 04 04 05 00 ff 00 00 0c 02 02 0c 00 ff &4ba0 08 08 06 01 01 0e 00 ff 00 00 00 00 00 00 00 ff &4bb0 50 40 40 40 40 e0 00 ff 20 e0 20 20 20 c0 00 ff &4bc0 60 90 90 90 90 60 00 ff 10 10 20 20 40 40 00 ff &4bd0 00 00 00 00 00 00 00 ff 00 00 00 00 00 00 00 ff &4be0 00 00 00 00 00 00 00 ff 00 00 00 00 00 00 00 ff &4bf0 00 00 00 00 00 00 00 ff 11 11 11 11 11 11 11 ff # &4c00 - &4dff is moved to &2600 - &27ff at &5202 ; unused &2600 85 7f STA &7f # &2600 - &2616 is a copy of &2600 - &2616 from HUNT2 &2602 a9 00 LDA #&00 &2604 85 70 STA &70 &2606 85 7e STA &7e &2608 a8 TAY &2609 91 70 STA (&70),Y &260b c8 INY &260c d0 fb BNE &2609 &260e e6 71 INC &71 &2610 a6 71 LDX &71 &2612 e0 80 CPX #&80 &2614 d0 f3 BNE &2609 &2616 60 RTS ; initialise_oswrch_handler # &2617 - &262f is similar to &2617 - &262f from HUNT2 &2617 ad 0e 02 LDA &020e ; oswrch_vector_low &261a 85 26 STA &26 ; previous_oswrch_vector_zp_low # &261a 8d 3d 25 STA &253d ; previous_oswrch_vector_low &261c ea NOP &261d ad 0f 02 LDA &020f ; oswrch_vector_high &2620 85 27 STA &27 ; previous_oswrch_vector_zp_high # &2620 8d 3e 25 STA &253e ; previous_oswrch_vector_high &2622 ea NOP &2623 78 SEI &2624 a9 30 LDA #&30 &2626 8d 0e 02 STA &020e ; oswrch_vector_low &2629 a9 26 LDA #&26 ; &2630 = oswrch_handler &262b 8d 0f 02 STA &020f ; oswrch_vector_high &262e 58 CLI &262f 60 RTS ; oswrch_handler # &2630 - &266c is identical to &2630 - &266c from HUNT2 &2630 85 22 STA &22 ; tmp_a &2632 48 PHA &2633 8a TXA &2634 48 PHA &2635 98 TYA &2636 48 PHA &2637 a5 22 LDA &22 ; tmp_a &2639 c9 20 CMP #&20 ; " " &263b 90 0c BCC &2649 ; not_printable_character &263d c9 7f CMP #&7f ; DELETE &263f b0 08 BCS &2649 ; not_printable_character &2641 85 8e STA &8e ; character &2643 20 71 10 JSR &1071 ; to_write_character_with_variable_backup_and_restore &2646 4c 5f 26 JMP &265f ; leave_after_restoring_registers ; not_printable_character &2649 c9 0d CMP #&0d ; CR &264b d0 07 BNE &2654 ; not_carriage_return &264d a9 00 LDA #&00 &264f 85 7e STA &7e ; text_screen_address_low &2651 4c 5f 26 JMP &265f ; leave_after_restoring_registers ; not_carriage_return &2654 c9 0a CMP #&0a ; NL &2656 d0 0d BNE &2665 ; call_previous_oswrch_vector_after_restoring_registers &2658 a9 f8 LDA #&f8 &265a 85 7e STA &7e ; text_screen_address_low &265c 20 75 10 JSR &1075 ; to_write_spaces_until_start_of_line_with_variable_backup_and_restore ; leave_after_restoring_registers &265f 68 PLA &2660 a8 TAY &2661 68 PLA &2662 aa TAX &2663 68 PLA &2664 60 RTS ; call_previous_oswrch_vector_after_restoring_registers &2665 68 PLA &2666 a8 TAY &2667 68 PLA &2668 aa TAX &2669 68 PLA &266a 4c 89 46 JMP &4689 ; call_previous_oswrch_vector_if_not_bell ; unused # &266d - &2734 is a copy of &266d - &2734 from HUNT2 &266d c9 67 CMP #&67 &266f f0 08 BEQ &2679 &2671 c9 6a CMP #&6a &2673 90 09 BCC &267e &2675 c9 70 CMP #&70 &2677 b0 05 BCS &267e &2679 20 90 26 JSR &2690 &267c a5 22 LDA &22 &267e 20 1d 4f JSR &4f1d &2681 60 RTS &2682 4c d4 26 JMP &26d4 &2685 29 20 AND #&20 &2687 75 10 ADC &10,X &2689 a9 08 LDA #&08 &268b 85 7e STA &7e &268d 4c 34 1d JMP &1d34 &2690 20 75 51 JSR &5175 &2693 a9 01 LDA #&01 &2695 85 75 STA &75 &2697 60 RTS &2698 a9 4c LDA #&4c &269a 85 78 STA &78 &269c ee a9 4d INC &4da9 &269f 20 31 1d JSR &1d31 &26a2 20 75 10 JSR &1075 &26a5 ce a9 4d DEC &4da9 &26a8 a9 4a LDA #&4a &26aa 85 78 STA &78 &26ac 20 a0 0f JSR &0fa0 &26af ad a9 4d LDA &4da9 &26b2 60 RTS &26b3 85 81 STA &81 &26b5 ad a0 4d LDA &4da0 &26b8 f0 13 BEQ &26cd &26ba c0 03 CPY #&03 &26bc b0 0f BCS &26cd &26be a5 81 LDA &81 &26c0 c9 37 CMP #&37 &26c2 90 09 BCC &26cd &26c4 c9 3b CMP #&3b &26c6 b0 05 BCS &26cd &26c8 a9 ff LDA #&ff &26ca 85 81 STA &81 &26cc 60 RTS &26cd a5 81 LDA &81 &26cf c5 78 CMP &78 &26d1 4c b2 20 JMP &20b2 &26d4 20 bd 0f JSR &0fbd &26d7 29 03 AND #&03 &26d9 d0 05 BNE &26e0 &26db a9 3c LDA #&3c &26dd 20 0c 0e JSR &0e0c &26e0 60 RTS &26e1 20 0c 0e JSR &0e0c &26e4 a9 ea LDA #&ea &26e6 8d 03 4e STA &4e03 &26e9 a9 01 LDA #&01 &26eb 8d b4 4d STA &4db4 &26ee 60 RTS &26ef 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &26fe c5 86 CMP &86 &2700 d0 08 BNE &270a &2702 c9 25 CMP #&25 &2704 f0 0a BEQ &2710 &2706 c9 64 CMP #&64 &2708 f0 06 BEQ &2710 &270a 20 80 10 JSR &1080 &270d 4c a3 0f JMP &0fa3 &2710 60 RTS &2711 20 a0 0f JSR &0fa0 &2714 20 75 10 JSR &1075 &2717 20 93 24 JSR &2493 &271a 20 c7 24 JSR &24c7 &271d 60 RTS &271e 20 d2 25 JSR &25d2 &2721 a0 04 LDY #&04 &2723 20 bd 0f JSR &0fbd &2726 85 80 STA &80 &2728 46 80 LSR &80 &272a a5 80 LDA &80 &272c 29 07 AND #&07 &272e 99 bf 4d STA &4dbf,Y &2731 88 DEY &2732 d0 f4 BNE &2728 &2734 60 RTS ; loader # &2735 - &2757 is similar to &2735 - &2757 from HUNT2 &2735 20 48 4f JSR &4f48 ; initialise_screen &2738 a9 00 LDA #&00 &273a 85 7e STA &7e ; text_screen_address_low &273c 85 75 STA &75 ; font_flags &273e a9 75 LDA #&75 &2740 85 7f STA &7f ; text_screen_address_high &2742 20 3e 52 JSR &523e ; copy_loading_screen # &2742 a0 0a LDY #&0a &2745 a0 00 LDY #&00 # &2744 b9 34 27 LDA &2734,Y &2747 ea NOP # &2747 20 ee ff JSR &ffee ; OSWRCH &2748 ea NOP &2749 ea NOP &274a ea NOP # &274a 88 DEY &274b ea NOP # &274b d0 f7 BNE &2744 ; write_string_loop &274c ea NOP &274d a2 00 LDX #&00 &274f a9 90 LDA #&90 &2751 20 f4 ff JSR &fff4 ; OSBYTE &2754 4c 8e 27 JMP &278e ; load_and_start_game &2757 60 RTS ; unused # &2758 - &278d is a copy of &2758 - &278d from HUNT2 &2758 c9 66 CMP #&66 &275a f0 08 BEQ &2764 &275c ad fa 61 LDA &61fa &275f d0 03 BNE &2764 &2761 4c aa 25 JMP &25aa &2764 4c 65 25 JMP &2565 &2767 8d 10 4e STA &4e10 &276a 20 75 10 JSR &1075 &276d a9 6f LDA #&6f &276f 20 2a 1d JSR &1d2a &2772 a9 10 LDA #&10 &2774 20 0c 0e JSR &0e0c &2777 4c 3c 1e JMP &1e3c &277a 85 22 STA &22 &277c 20 c7 23 JSR &23c7 &277f c6 22 DEC &22 &2781 a5 22 LDA &22 &2783 20 c1 27 JSR &27c1 &2786 20 e3 23 JSR &23e3 &2789 a5 22 LDA &22 &278b 4c 86 26 JMP &2686 ; load_and_start_game &278e 20 17 26 JSR &2617 ; initialise_oswrch_handler &2791 a9 ff LDA #&ff ; load file &2793 a2 a3 LDX #&a3 &2795 a0 27 LDY #&27 ; &27a3 = load_block &2797 20 dd ff JSR &ffdd ; OSFILE # *LOAD Hunt2 0400, entry point &255f &279a 20 5f 25 JSR &255f ; start_game # &279a 4c 5f 25 JMP &255f ; start_game ; next_part_filename &279d 48 75 6e 74 32 0d ; "Hunt2" ; load_block &27a3 9d 27 ; &297d = next_part_filename &27a5 00 04 00 00 ; &0400 ; load address &27a9 5f 25 00 00 ; &255f = start_game &27ae 00 00 00 00 ; &0000 &27b2 00 00 00 ; &0000 ; unused # &27b5 - &27ff is a copy of &27b5 - &27ff from HUNT2 &27b5 a5 75 LDA &75 &27b7 29 04 AND #&04 &27b9 85 46 STA &46 &27bb a5 7e LDA &7e &27bd 4a LSR A &27be 4c 7b 54 JMP &547b &27c1 ad ff 06 LDA &06ff &27c4 d0 05 BNE &27cb &27c6 a5 22 LDA &22 &27c8 20 b6 55 JSR &55b6 &27cb 60 RTS &27cc 98 TYA &27cd 29 fe AND #&fe &27cf c9 22 CMP #&22 &27d1 d0 23 BNE &27f6 &27d3 98 TYA &27d4 29 01 AND #&01 &27d6 48 PHA &27d7 cd ff 06 CMP &06ff &27da f0 17 BEQ &27f3 &27dc 8d ff 06 STA &06ff &27df 20 c7 23 JSR &23c7 &27e2 20 f0 54 JSR &54f0 &27e5 a4 78 LDY &78 &27e7 68 PLA &27e8 f0 02 BEQ &27ec &27ea a0 2a LDY #&2a &27ec 98 TYA &27ed 20 bb 55 JSR &55bb &27f0 20 e3 23 JSR &23e3 &27f3 60 RTS &27f4 e7 27 &27f6 c0 30 CPY #&30 &27f8 f0 03 BEQ &27fd &27fa 4c 35 19 JMP &1935 &27fd 4c 15 19 JMP &1915 # &4e00 - &4e72 is moved to &0900 - &0972 at &5218 ; video_register_data &0900 06 18 # R6: Vertical displayed register &0902 01 20 # R1: Number of characters per line &0904 0c 0d # R12: Displayed screen start address register (high) &0906 0d 00 # R13: Displayed screen start address register (low) &0908 02 2c # R2: Horizontal sync position register ; bottom_ula_values &090a 27 37 67 77 # Set colour 0 to black &090e 80 90 c0 d0 # Set colour 1 to white ; top_ula_values &0912 26 36 66 76 # Set colour 1 to red &0913 83 93 c3 d3 # Set colour 2 to blue ; unused # &091a - &096f is a copy of &091a - &096f from HUNT2 &091a 88 44 22 11 &091e 00 00 00 00 &0922 00 74 &0924 00 75 &0926 00 76 &0928 00 77 &092a 00 78 &092c 00 79 &092e 00 7a &0930 00 7b &0932 00 7c &0934 00 7d &0936 00 7e &0938 00 7f &093a 0f 0f 0f 0f 0f 0f 0f 0f &0942 f0 f0 f0 f0 f0 f0 f0 f0 &094a ff ff ff ff ff ff ff ff &0952 f0 80 e0 e0 e0 e0 e0 f0 &095a 2d 78 f0 f0 d2 87 0f 0f &0962 a5 5a a5 5a a5 5a a5 5a &096a b4 5a e1 e1 e1 e1 ; unused &0970 00 00 00 # &4e73 - &4e7a is moved to &1071 - &1078 at &5223 # &1071 - &1068 is identical to &1071 - &1068 from HUNT2 ; to_write_character_with_variable_backup_and_restore &1071 4c 72 24 JMP &2472 ; write_character_preserving_variables ; unused &1074 60 RTS ; to_write_spaces_until_start_of_line_with_variable_backup_and_restore &1075 4c 68 24 JMP &2468 ; write_spaces_until_start_of_line_preserving_variables ; unused &1078 ee # &4e7b - &4e82 is moved to &4689 - &4690 at &5256 ; call_previous_oswrch_vector_if_not_bell # Differences in HUNT2: &4689 c9 07 CMP #&07 ; BELL &468b f0 03 BEQ &4690 ; leave &468d 6c 26 00 JMP (&0026) ; previous_oswrch_vector_zp # &468d 6c 3d 25 JMP (&253d) ; previous_oswrch_vector ; leave &4690 60 RTS # &4e83 - &4f47 is moved to &23bf - &2483 at &5230 ; write_character_with_nops # &23bf - &2407 is identical to &23bf - &2407 from HUNT2 &23bf a9 00 LDA #&00 # Unnecessary code &23c1 ea NOP &23c2 ea NOP &23c3 20 78 50 JSR &5078 ; write_character &23c6 60 RTS ; backup_variables &23c7 a5 4c LDA &4c ; tmp_y, offset &23c9 8d de 0d STA &0dde ; variables_copy_4c &23cc a5 4d LDA &4d ; tmp_x, input_word_length &23ce 8d df 0d STA &0ddf ; variables_copy_4d &23d1 84 20 STY &20 ; backup_x &23d3 86 21 STX &21 ; backup_y &23d5 a0 00 LDY #&00 ; backup_variables_loop # Copy &0070 - &008f to &0de0 - &0dff &23d7 b9 70 00 LDA &0070,Y ; variables &23da 99 e0 0d STA &0de0,Y ; variables_copy &23dd c8 INY &23de c0 20 CPY #&20 &23e0 d0 f5 BNE &23d7 ; backup_variables_loop &23e2 60 RTS ; restore_variables &23e3 a0 00 LDY #&00 ; restore_variables_loop # Copy &0de0 - &0dff to &0070 - &008f &23e5 b9 e0 0d LDA &0de0,Y ; variables_copy &23e8 99 70 00 STA &0070,Y ; variables &23eb c8 INY &23ec c0 0e CPY #&0e ; &7e - &70 ; text_screen_address_low # Don't restore &007e text_screen_address_low &23ee f0 13 BEQ &2403 ; skip_text_screen_address # or &007f text_screen_address_high &23f0 c0 20 CPY #&20 &23f2 d0 f1 BNE &23e5 ; restore_variables_loop &23f4 a4 20 LDY &20 ; backup_x &23f6 a6 21 LDX &21 ; backup_y &23f8 ad de 0d LDA &0dde ; variables_copy_4c &23fb 85 4c STA &4c ; tmp_y, offset &23fd ad df 0d LDA &0ddf ; variables_copy_4d &2400 85 4d STA &4d ; tmp_x, input_word_length &2402 60 RTS ; skip_text_screen_address &2403 a0 10 LDY #&10 # Continue restoring variables at &0080 &2405 4c e5 23 JMP &23e5 ; restore_variables_loop ; unused # &2408 - &2467 is a copy of &2408 - &2467 from HUNT2 &2408 85 22 STA &22 &240a 20 c7 23 JSR &23c7 &240d a5 22 LDA &22 &240f 29 f0 AND #&f0 &2411 c9 60 CMP #&60 &2413 f0 03 BEQ &2418 &2415 20 75 51 JSR &5175 &2418 a9 02 LDA #&02 &241a 85 75 STA &75 &241c a5 22 LDA &22 &241e 20 2b 4f JSR &4f2b &2421 20 e3 23 JSR &23e3 &2424 a5 22 LDA &22 &2426 60 RTS &2427 85 22 STA &22 &2429 20 c7 23 JSR &23c7 &242c a9 00 LDA #&00 &242e 85 75 STA &75 &2430 a5 22 LDA &22 &2432 c9 4e CMP #&4e &2434 90 0b BCC &2441 &2436 c9 61 CMP #&61 &2438 b0 0f BCS &2449 &243a a9 01 LDA #&01 &243c 85 75 STA &75 &243e 4c 49 24 JMP &2449 &2441 c9 23 CMP #&23 &2443 90 04 BCC &2449 &2445 c9 2d CMP #&2d &2447 90 f1 BCC &243a &2449 a5 22 LDA &22 &244b 20 39 4f JSR &4f39 &244e 20 e3 23 JSR &23e3 &2451 a5 22 LDA &22 &2453 60 RTS &2454 85 22 STA &22 &2456 20 c7 23 JSR &23c7 &2459 a9 00 LDA #&00 &245b 85 75 STA &75 &245d a5 22 LDA &22 &245f 20 6d 26 JSR &266d &2462 20 e3 23 JSR &23e3 &2465 a5 22 LDA &22 &2467 60 RTS ; write_spaces_until_start_of_line_preserving_variables # &2468 - &2483 is identical to &2468 - &2483 from HUNT2 &2468 20 c7 23 JSR &23c7 ; backup_variables &246b 20 75 51 JSR &5175 ; write_spaces_until_start_of_line &246e 20 e3 23 JSR &23e3 ; restore_variables &2471 60 RTS ; write_character_preserving_variables &2472 85 22 STA &22 ; string_id &2474 20 c7 23 JSR &23c7 ; backup_variables &2477 a5 22 LDA &22 ; string_id &2479 85 8e STA &8e ; character &247b 20 78 50 JSR &5078 ; write_character ; leave_after_restore &247e 20 e3 23 JSR &23e3 ; restore_variables &2481 a5 22 LDA &22 ; string_id &2483 60 RTS ; initialise_screen &4f48 a9 fc LDA #&fc &4f4a 8d 90 02 STA &0290 ; os_vdu_vertical_adjust &4f4d a9 16 LDA #&16 # Change to MODE 4 &4f4f 20 ee ff JSR &ffee ; OSWRCH &4f52 a9 04 LDA #&04 &4f54 20 ee ff JSR &ffee ; OSWRCH &4f57 a2 00 LDX #&00 ; set_video_registers_loop &4f59 a9 17 LDA #&17 &4f5b 20 ee ff JSR &ffee ; OSWRCH &4f5e a9 00 LDA #&00 &4f60 20 ee ff JSR &ffee ; OSWRCH &4f63 bd 00 09 LDA &0900,X ; video_register_data &4f66 20 ee ff JSR &ffee ; OSWRCH &4f69 bd 01 09 LDA &0901,X ; video_register_data + 1 &4f6c 20 ee ff JSR &ffee ; OSWRCH &4f6f a9 00 LDA #&00 &4f71 20 ee ff JSR &ffee ; OSWRCH &4f74 20 ee ff JSR &ffee ; OSWRCH &4f77 20 ee ff JSR &ffee ; OSWRCH &4f7a 20 ee ff JSR &ffee ; OSWRCH &4f7d 20 ee ff JSR &ffee ; OSWRCH &4f80 20 ee ff JSR &ffee ; OSWRCH &4f83 e8 INX &4f84 e8 INX &4f85 e0 0a CPX #&0a &4f87 d0 d0 BNE &4f59 ; set_video_registers_loop &4f89 78 SEI &4f8a ad 20 02 LDA &0220 ; event_vector_low &4f8d 85 95 STA &95 ; previous_event_vector_low &4f8f ad 21 02 LDA &0221 ; event_vector_high &4f92 85 96 STA &96 ; previous_event_vector_high &4f94 a9 bb LDA #&bb &4f96 8d 20 02 STA &0220 ; event_vector_low &4f99 a9 4f LDA #&4f ; &4fbb = event_handler &4f9b 8d 21 02 STA &0221 ; event_vector_high &4f9e ad 06 02 LDA &0206 ; irq2_vector_low &4fa1 85 97 STA &97 ; previous_irq2_vector_low &4fa3 ad 07 02 LDA &0207 ; irq2_vector_high &4fa6 85 98 STA &98 ; previous_irq2_vector_high &4fa8 a9 34 LDA #&34 &4faa 8d 06 02 STA &0206 ; irq2_vector_low &4fad a9 50 LDA #&50 ; &5034 = irq2_handler &4faf 8d 07 02 STA &0207 ; irq2_vector_high &4fb2 58 CLI &4fb3 a9 0e LDA #&0e &4fb5 a2 04 LDX #&04 &4fb7 20 f4 ff JSR &fff4 ; OSBYTE &4fba 60 RTS ; event_handler # &4fbb - &5185 is identical to &4fbb - &5185 from HUNT2 &4fbb 78 SEI &4fbc 48 PHA &4fbd 8a TXA &4fbe 48 PHA &4fbf 98 TYA &4fc0 48 PHA &4fc1 4c e0 4f JMP &4fe0 ; change_to_mode_5 ; unused &4fc4 01 ; set_colour_1 &4fc5 aa TAX # Unnecessary code &4fc6 ea NOP &4fc7 ea NOP &4fc8 ea NOP &4fc9 49 07 EOR #&07 &4fcb 85 93 STA &93 ; colour &4fcd a2 00 LDX #&00 ; set_colour_1_loop &4fcf bd 12 09 LDA &0912,X ; top_ula_values &4fd2 29 f0 AND #&f0 &4fd4 05 93 ORA &93 ; colour &4fd6 9d 12 09 STA &0912,X ; top_ula_values &4fd9 e8 INX &4fda e0 04 CPX #&04 &4fdc d0 f1 BNE &4fcf ; set_colour_1_loop &4fde 60 RTS ; unused &4fdf f1 ; change_to_mode_5 &4fe0 a9 9a LDA #&9a ; Write to Video ULA control register and RAM copy &4fe2 a2 c4 LDX #&c4 # Use MODE 5 &4fe4 20 f4 ff JSR &fff4 ; OSBYTE &4fe7 a9 03 LDA #&03 &4fe9 8d 60 03 STA &0360 ; os_colours_available &4fec 8d 61 03 STA &0361 ; os_pixels_per_byte &4fef a9 88 LDA #&88 &4ff1 8d 62 03 STA &0362 ; os_left_colour_mask &4ff4 a9 01 LDA #&01 &4ff6 8d 70 03 STA &0370 ; os_palette + 1 &4ff9 a9 11 LDA #&11 &4ffb 8d 63 03 STA &0363 ; os_right_colour_mask &4ffe a9 10 LDA #&10 &5000 8d 4f 03 STA &034f ; os_bytes_per_character &5003 a9 05 LDA #&05 &5005 8d 55 03 STA &0355 ; os_mode &5008 a0 00 LDY #&00 ; write_top_ula_values_loop &500a b9 12 09 LDA &0912,Y ; top_ula_values &500d 8d 21 fe STA &fe21 ; video ULA palette register # Set colours 1 and 2 &5010 c8 INY &5011 c0 08 CPY #&08 &5013 d0 f5 BNE &500a ; write_top_ula_values_loop &5015 a9 df LDA #&df # Set User VIA timer 2 to one-shot mode &5017 2d 6b fe AND &fe6b ; User VIA auxiliary control register &501a 8d 6b fe STA &fe6b ; User VIA auxiliary control register &501d a9 a0 LDA #&a0 # Enable interrupts for User VIA timer 2 &501f 8d 6e fe STA &fe6e ; User VIA interrupt enable register &5022 a9 46 LDA #&46 &5024 8d 68 fe STA &fe68 ; User VIA timer 2 counter LSB &5027 a9 23 LDA #&23 &5029 8d 69 fe STA &fe69 ; User VIA timer 2 counter MSB &502c 68 PLA &502d a8 TAY &502e 68 PLA &502f aa TAX &5030 68 PLA &5031 6c 95 00 JMP (&0095) ; previous_event_vector_low ; irq2_handler &5034 78 SEI &5035 48 PHA &5036 8a TXA &5037 48 PHA &5038 98 TYA &5039 48 PHA &503a ad 6d fe LDA &fe6d ; User VIA interrupt flag register &503d 29 20 AND #&20 &503f f0 29 BEQ &506a ; disable_interrupts_and_leave # Is this a timer 2 interrupt? ; change_to_mode_4 &5041 a0 00 LDY #&00 ; write_bottom_ula_values_loop &5043 b9 0a 09 LDA &090a,Y ; bottom_ula_values &5046 8d 21 fe STA &fe21 ; video ULA palette register # Set colours 0 and 1 &5049 c8 INY &504a c0 08 CPY #&08 &504c d0 f5 BNE &5043 ; write_bottom_ula_values_loop &504e a9 01 LDA #&01 &5050 8d 60 03 STA &0360 ; os_colours_available &5053 8d 63 03 STA &0363 ; os_right_colour_mask &5056 a9 80 LDA #&80 &5058 8d 62 03 STA &0362 ; os_left_colour_mask &505b 8d 61 03 STA &0361 ; os_pixels_per_byte &505e a9 04 LDA #&04 &5060 8d 55 03 STA &0355 ; os_mode &5063 a9 9a LDA #&9a ; Write to Video ULA control register and RAM copy &5065 a2 88 LDX #&88 # Use MODE 4 &5067 20 f4 ff JSR &fff4 ; OSBYTE ; disable_interrupts_and_leave &506a a9 20 LDA #&20 # Disable interrupts for User VIA timer 2 &506c 8d 6e fe STA &fe6e ; User VIA interrupt enable register &506f 68 PLA &5070 a8 TAY &5071 68 PLA &5072 aa TAX &5073 68 PLA &5074 58 CLI &5075 6c 97 00 JMP (&0097) ; previous_irq2_vector ; write_character &5078 a5 8e LDA &8e ; character &507a c9 09 CMP #&09 &507c b0 05 BCS &5083 ; is_character &507e 45 75 EOR &75 ; font_flags &5080 85 75 STA &75 ; font_flags &5082 60 RTS ; is_character &5083 29 e0 AND #&e0 # font_address = &bf00 + (character * 8) &5085 4a LSR A &5086 4a LSR A &5087 4a LSR A &5088 4a LSR A &5089 4a LSR A &508a 18 CLC &508b 69 bf ADC #&bf &508d 85 81 STA &81 ; font_address_high &508f a5 8e LDA &8e ; character &5091 29 1f AND #&1f &5093 0a ASL A &5094 0a ASL A &5095 0a ASL A &5096 85 80 STA &80 ; font_address_low # i.e. use os font data at &c000 &5098 a0 00 LDY #&00 &509a a5 75 LDA &75 ; font_flags &509c 29 01 AND #&01 ; FONT_INVERT &509e 38 SEC &509f e9 01 SBC #&01 &50a1 49 ff EOR #&ff &50a3 85 82 STA &82 ; font_inversion &50a5 a5 75 LDA &75 ; font_flags &50a7 29 04 AND #&04 ; FONT_COLOUR &50a9 d0 4c BNE &50f7 ; write_colour_character ; write_character_loop &50ab b1 80 LDA (&80),Y ; font_address &50ad 85 85 STA &85 ; font_byte &50af a5 75 LDA &75 ; font_flags &50b1 29 08 AND #&08 ; FONT_FANCY &50b3 f0 0b BEQ &50c0 ; skip_bold_row &50b5 c0 03 CPY #&03 &50b7 90 07 BCC &50c0 ; skip_bold_row &50b9 a5 85 LDA &85 ; font_byte &50bb 4a LSR A &50bc 05 85 ORA &85 ; font_byte &50be 85 85 STA &85 ; font_byte ; skip_bold_row &50c0 a5 85 LDA &85 ; font_byte &50c2 45 82 EOR &82 ; font_inversion &50c4 91 7e STA (&7e),Y ; text_screen_address &50c6 c8 INY &50c7 c0 08 CPY #&08 &50c9 d0 e0 BNE &50ab ; write_character_loop &50cb a5 75 LDA &75 ; font_flags &50cd 29 02 AND #&02 ; FONT_UNDERLINE &50cf f0 06 BEQ &50d7 ; skip_underline &50d1 a0 07 LDY #&07 &50d3 a9 ff LDA #&ff &50d5 91 7e STA (&7e),Y ; text_screen_address ; skip_underline &50d7 a5 7e LDA &7e ; text_screen_address_low &50d9 18 CLC &50da 69 08 ADC #&08 # Move right eight pixels (one character) &50dc 85 7e STA &7e ; text_screen_address_low &50de a5 7f LDA &7f ; text_screen_address_high &50e0 69 00 ADC #&00 &50e2 85 7f STA &7f ; text_screen_address_high &50e4 a5 7f LDA &7f ; text_screen_address_high &50e6 c9 80 CMP #&80 &50e8 f0 01 BEQ &50eb ; needs_scrolling &50ea 60 RTS ; needs_scolling &50eb 20 44 51 JSR &5144 ; scroll_text_window &50ee a9 00 LDA #&00 &50f0 85 7e STA &7e ; text_screen_address_low &50f2 a9 7f LDA #&7f &50f4 85 7f STA &7f ; text_screen_address_high &50f6 60 RTS ; write_colour_character ; write_left_nibble_loop &50f7 b1 80 LDA (&80),Y ; font_address &50f9 29 f0 AND #&f0 &50fb 85 84 STA &84 ; font_high_nibble &50fd 4a LSR A &50fe 4a LSR A &50ff 4a LSR A &5100 4a LSR A &5101 85 83 STA &83 ; font_high_nibble_rotated &5103 b1 5e LDA (&5e),Y ; text_screen_address_low &5105 05 83 ORA &83 ; font_high_nibble &5107 05 84 ORA &84 ; font_high_nibble_rotated &5109 91 5e STA (&5e),Y ; text_screen_address_low &510b c8 INY &510c c0 08 CPY #&08 &510e d0 e7 BNE &50f7 ; write_left_nibble_loop &5110 a5 80 LDA &80 ; font_address_low &5112 38 SEC &5113 e9 08 SBC #&08 &5115 85 80 STA &80 ; font_address_low &5117 a5 81 LDA &81 ; font_address_high &5119 e9 00 SBC #&00 &511b 85 81 STA &81 ; font_address_high ; write_right_nibble_loop &511d b1 80 LDA (&80),Y ; font_address &511f 29 0f AND #&0f &5121 85 84 STA &84 ; font_low_nibble &5123 0a ASL A &5124 0a ASL A &5125 0a ASL A &5126 0a ASL A &5127 85 83 STA &83 ; font_low_nibble_rotated &5129 b1 5e LDA (&5e),Y ; text_screen_address_low &512b 05 83 ORA &83 ; font_low_nibble_rotated &512d 05 84 ORA &84 ; font_low_nibble &512f 91 5e STA (&5e),Y ; text_screen_address_low &5131 c8 INY &5132 c0 10 CPY #&10 &5134 d0 e7 BNE &511d ; write_right_nibble_loop &5136 a5 5e LDA &5e ; text_screen_address_low &5138 18 CLC &5139 69 10 ADC #&10 # Move right eight pixels (one character) &513b 85 5e STA &5e ; text_screen_address_low &513d a5 5f LDA &5f ; text_screen_address_high &513f 69 00 ADC #&00 &5141 85 5f STA &5f ; text_screen_address_high &5143 60 RTS ; scroll_text_window &5144 a9 00 LDA #&00 &5146 85 80 STA &80 ; target_address_low &5148 85 82 STA &82 ; source_address_low &514a a9 74 LDA #&74 ; &7400 = text_screen_memory + &100 &514c 85 81 STA &81 ; target_address_high &514e a9 75 LDA #&75 ; &7500 = text_screen_memory + &200 &5150 85 83 STA &83 ; source_address_high &5152 a0 00 LDY #&00 ; scroll_text_window_loop &5154 b1 82 LDA (&82),Y ; source_address # Move &7500 - &7fff to &7400 - &7eff &5156 91 80 STA (&80),Y ; target_address &5158 e6 80 INC &80 ; target_address_low &515a d0 02 BNE &515e ; skip_page_target &515c e6 81 INC &81 ; target_address_high ; skip_page_target &515e e6 82 INC &82 ; source_address_low &5160 d0 f2 BNE &5154 ; scroll_text_window_loop &5162 e6 83 INC &83 ; source_address_high &5164 a5 83 LDA &83 ; source_address_high &5166 c9 80 CMP #&80 &5168 d0 ea BNE &5154 ; scroll_text_window_loop &516a a0 00 LDY #&00 &516c a9 00 LDA #&00 ; wipe_last_row_loop &516e 99 00 7f STA &7f00,Y # Wipe &7f00 - &7fff (last row of text) &5171 c8 INY &5172 d0 fa BNE &516e ; wipe_last_row_loop &5174 60 RTS ; write_spaces_until_start_of_line &5175 a9 20 LDA #&20 ; " " &5177 85 8e STA &8e ; character ; write_spaces_until_start_of_line_loop &5179 20 96 51 JSR &5196 ; check_for_start_of_line # Returns non-zero at start of line &517c 8a TXA &517d f0 01 BEQ &5180 ; not_start_of_line &517f 60 RTS ; not_start_of_line &5180 20 bf 23 JSR &23bf ; write_character_with_nops &5183 4c 79 51 JMP &5179 ; write_spaces_until_start_of_line_loop ; unused # &5186 - &51ff is a copy of &5186 - &51ff from HUNT2 &5186 20 75 51 JSR &5175 &5189 a2 20 LDX #&20 &518b a9 20 LDA #&20 &518d 85 8e STA &8e &518f 20 78 50 JSR &5078 &5192 ca DEX &5193 d0 fa BNE &518f &5195 60 RTS &5196 a2 00 LDX #&00 &5198 a0 00 LDY #&00 &519a b9 22 09 LDA &0922,Y &519d c5 7e CMP &7e &519f d0 0a BNE &51ab &51a1 b9 23 09 LDA &0923,Y &51a4 c5 7f CMP &7f &51a6 d0 03 BNE &51ab &51a8 a2 01 LDX #&01 &51aa 60 RTS &51ab c8 INY &51ac c8 INY &51ad c0 18 CPY #&18 &51af d0 e9 BNE &519a &51b1 60 RTS &51b2 a5 88 LDA &88 &51b4 29 01 AND #&01 &51b6 f0 1d BEQ &51d5 &51b8 a5 8f LDA &8f &51ba 0a ASL A &51bb 0a ASL A &51bc 0a ASL A &51bd 18 CLC &51be 65 7c ADC &7c &51c0 85 7c STA &7c &51c2 a5 7d LDA &7d &51c4 69 00 ADC #&00 &51c6 85 7d STA &7d &51c8 38 SEC &51c9 a5 7c LDA &7c &51cb e9 08 SBC #&08 &51cd 85 7c STA &7c &51cf a5 7d LDA &7d &51d1 e9 00 SBC #&00 &51d3 85 7d STA &7d &51d5 a6 89 LDX &89 &51d7 20 e2 51 JSR &51e2 &51da e6 8d INC &8d &51dc e6 7d INC &7d &51de ca DEX &51df d0 f6 BNE &51d7 &51e1 60 RTS &51e2 a5 8c LDA &8c &51e4 85 80 STA &80 &51e6 a5 8d LDA &8d &51e8 85 81 STA &81 &51ea a5 7d LDA &7d &51ec 85 7b STA &7b &51ee a5 7c LDA &7c &51f0 85 7a STA &7a &51f2 a5 8f LDA &8f &51f4 85 8b STA &8b &51f6 a0 00 LDY #&00 &51f8 b1 7a LDA (&7a),Y &51fa 20 30 52 JSR &5230 &51fd 91 80 STA (&80),Y &51ff c8 INY ; entry_point &5200 a0 00 LDY #&00 ; move_4c00_to_4dff_loop # Move &4c00 - &4dff to &2600 - &27ff &5202 b9 00 4c LDA &4c00,Y # actually LDA source_address,Y &5205 99 00 26 STA &2600,Y # actually STA target_address,Y &5208 c8 INY &5209 d0 f7 BNE &5202 ; move_4c00_to_4dff_loop &520b ee 04 52 INC &5204 ; source_address_high &520e ee 07 52 INC &5207 ; target_address_high &5211 ad 07 52 LDA &5207 ; target_address_high &5214 c9 28 CMP #&28 &5216 d0 ea BNE &5202 ; move_4c00_to_4dff_loop ; move_4e00_to_4e72_loop # Move &4e00 - &4e72 to &0900 - &0972 &5218 b9 00 4e LDA &4e00,Y &521b 99 00 09 STA &0900,Y &521e c8 INY &521f c0 73 CPY #&73 &5221 d0 f5 BNE &5218 ; move_4e00_to_4e72_loop ; move_4e73_to_4e7a_loop # Move &4e73 - &4e7a to &1071 - &1078 &5223 b9 00 4e LDA &4e00,Y &5226 99 fe 0f STA &0ffe,Y &5229 c8 INY &522a c0 7b CPY #&7b &522c d0 f5 BNE &5223 ; move_4e73_to_4e7a_loop &522e a0 00 LDY #&00 ; move_4e83_to_4f47_loop # Move &4e83 - &4f47 to &23bf - &2483 &5230 b9 83 4e LDA &4e83,Y &5233 99 bf 23 STA &23bf,Y &5236 c8 INY &5237 c0 c5 CPY #&c5 &5239 d0 f5 BNE &5230 ; move_4e83_to_4f47_loop &523b 4c 35 27 JMP &2735 ; loader ; copy_loading_screen &523e a0 00 LDY #&00 ; copy_loading_screen_loop &5240 b9 00 41 LDA &4100,Y ; loading_screen # Move &4100 - &4bff to &6800 - &72ff # actually LDA source_address,Y &5243 99 00 68 STA &6800,Y ; target_memory # actually STA target_address,Y &5246 c8 INY &5247 d0 f7 BNE &5240 ; copy_source_loop &5249 ee 42 52 INC &5242 ; source_address_high &524c ee 45 52 INC &5245 ; target_address_high &524f ad 45 52 LDA &5245 ; target_address_high &5252 c9 73 CMP #&73 &5254 d0 ea BNE &5240 ; copy_loading_screen_loop ; copy_call_previous_oswrch_vector_if_not_bell_loop &5256 b9 7b 4e LDA &4e7b,Y ; unrelocated_call_previous_oswrch_vector_if_not_bell &5259 99 89 46 STA &4689,Y ; call_previous_oswrch_vector_if_not_bell &525c c8 INY &525d c0 08 CPY #&08 &525f d0 f5 BNE &5256 ; copy_call_previous_oswrch_vector_if_not_bell_loop &5261 60 RTS Game disassembly ================ ; HUNT2 ; 000400 00225f 006400 ; graphics_0b &0400 45 ; colour 1 is blue, colour 2 is magenta &0401 07 ; 7 lines &0402 61 c5 c9 ; line at &6d61, direction 6, colour 2, length 48, slope 1 &0405 60 a1 5a ; line at &6960, direction 5, colour 2, length 20, slope 2 &0408 eb 40 f8 ; line at &68eb, direction 2, colour 2, length 60, slope 0 &040b c1 21 5b ; line at &69c1, direction 1, colour 2, length 20, slope 3 &040e 30 c2 5b ; line at &6a30, direction 6, colour 2, length 20, slope 3 &0411 28 c2 5b ; line at &6a28, direction 6, colour 2, length 20, slope 3 &0414 99 45 59 ; line at &6d99, direction 2, colour 2, length 20, slope 1 &0417 0b ; 11 quads &0418 69 81 86 f9 ; quad at &6969, direction 2, lengths 6 8, slope 0, draw 14, no fill &041c 30 83 11 f5 ; quad at &6b30, direction 3, lengths 1 8, slope 0, draw 13, no fill &0420 20 83 11 fd ; quad at &6b20, direction 3, lengths 1 8, slope 0, draw 134, no fill &0424 3c 23 12 ec ; quad at &6b3c, direction 1, lengths 2 2, slope 1, draw 34, no fill &0428 18 82 57 ff ; quad at &6a18, direction 3, lengths 7 8, slope 0, draw 1234, no fill &042c 0f 27 6c a4 ; quad at &6f0f, direction 0, lengths 12 2, slope 1, draw 3, fill 5 at 1 &0430 c1 81 d5 3c ; quad at &69c1, direction 3, lengths 5 8, slope 0, draw 34, fill 1 at 2 &0434 e9 24 c2 bc ; quad at &6ce9, direction 0, lengths 2 2, slope 1, draw 34, fill 5 at 2 &0438 3b 22 12 f9 ; quad at &6a3b, direction 1, lengths 2 2, slope 1, draw 14, no fill &043c 98 c1 85 a9 ; quad at &6998, direction 2, lengths 5 12, slope 2, draw 14, fill 5 at 1 &0440 69 81 46 74 ; quad at &6969, direction 2, lengths 6 8, slope 0, draw 3, fill 3 at 2 &0444 05 ; 5 filled areas &0445 74 00 ; fill area at &6874, fill 0 &0447 e6 20 ; fill area at &68e6, fill 1 &0449 22 43 ; fill area at &6b22, fill 2 &044b 3a 43 ; fill area at &6b3a, fill 2 &044d b9 a6 ; fill area at &6eb9, fill 5 &044f 00 ; 0 copied areas &0450 00 ; no text &0451 ff ; end ; graphics_53 &0452 14 ; colour 1 is red, colour 2 is blue ; graphics_continuation_0453 # Used by graphics_1f &0453 0f ; 15 lines &0454 1f 0a 99 ; line at &721f, direction 0, colour 2, length 36, slope 1 &0457 04 24 fb ; line at &6c04, direction 1, colour 2, length 60, slope 3 &045a 83 25 4b ; line at &6d83, direction 1, colour 2, length 16, slope 3 &045d 63 26 4a ; line at &6e63, direction 1, colour 2, length 16, slope 2 &0460 6f 0a 3b ; line at &726f, direction 0, colour 2, length 12, slope 3 &0463 70 e3 fa ; line at &6b70, direction 7, colour 2, length 60, slope 2 &0466 5a 23 5b ; line at &6b5a, direction 1, colour 2, length 20, slope 3 &0469 53 e3 ba ; line at &6b53, direction 7, colour 2, length 44, slope 2 &046c 79 22 58 ; line at &6a79, direction 1, colour 2, length 20, slope 0 &046f 83 22 48 ; line at &6a83, direction 1, colour 2, length 16, slope 0 &0472 7f 22 2b ; line at &6a7f, direction 1, colour 2, length 8, slope 3 &0475 8d 22 38 ; line at &6a8d, direction 1, colour 2, length 12, slope 0 &0478 9f 22 1a ; line at &6a9f, direction 1, colour 2, length 4, slope 2 &047b 9b 86 68 ; line at &6e9b, direction 4, colour 2, length 24, slope 0 &047e 9d 82 78 ; line at &6a9d, direction 4, colour 2, length 28, slope 0 &0481 04 ; 4 quads &0482 7c 2a 11 49 ; quad at &727c, direction 1, lengths 1 2, slope 1, draw 14, fill 2 at 1 &0486 73 89 44 bb ; quad at &7173, direction 2, lengths 4 8, slope 0, draw 124, fill 5 at 2 &048a 63 c6 24 01 ; quad at &6e63, direction 2, lengths 4 12, slope 2, draw 1, fill 0 at 1 &048e 98 e3 11 fd ; quad at &6b98, direction 3, lengths 1 14, slope 3, draw 134, no fill &0492 09 ; 9 filled areas &0493 9b 05 ; fill area at &6d9b, fill 0 &0495 01 25 ; fill area at &6d01, fill 1 &0497 37 23 ; fill area at &6b37, fill 1 &0499 50 23 ; fill area at &6b50, fill 1 &049b 6c 22 ; fill area at &6a6c, fill 1 &049d 7a 22 ; fill area at &6a7a, fill 1 &049f 9f 22 ; fill area at &6a9f, fill 1 &04a1 70 06 ; fill area at &6e70, fill 0 &04a3 9d 06 ; fill area at &6e9d, fill 0 &04a5 02 ; 2 copied areas &04a6 01 b0 a0 b0 ; mirror area from &7800 to &78a0, 10 x 11 &04aa 61 47 80 37 ; mirror area from &6f60 to &7f80, 8 x 3 &04ae 00 ; no text &04af ff ; end ; graphics_1f &04b0 46 ; colour 1 is blue, colour 2 is cyan &04b1 01 ; 1 line &04b2 7d 86 6a ; line at &6e7d, direction 4, colour 2, length 24, slope 2 &04b5 03 ; 3 quads &04b6 3a e4 16 ed ; quad at &6c3a, direction 3, lengths 6 14, slope 3, draw 134, no fill &04ba 6b 43 16 f7 ; quad at &6b6b, direction 1, lengths 6 4, slope 2, draw 123, no fill &04be 83 c4 14 ed ; quad at &6c83, direction 3, lengths 4 12, slope 2, draw 134, no fill &04c2 06 ; 6 filled areas &04c3 3c 44 ; fill area at &6c3c, fill 2 &04c5 84 44 ; fill area at &6c84, fill 2 &04c7 90 44 ; fill area at &6c90, fill 2 &04c9 9e 43 ; fill area at &6b9e, fill 2 &04cb 5f 43 ; fill area at &6b5f, fill 2 &04cd 64 43 ; fill area at &6b64, fill 2 &04cf 00 ; 0 copied areas &04d0 00 ; no text &04d1 53 04 ; continue at &0453 (graphics_continuation_0453) ; graphics_29 &04d3 41 ; colour 1 is blue, colour 2 is red &04d4 05 ; 5 lines &04d5 7e 83 08 ; line at &6b7e, direction 4, colour 2, length 0, slope 0 &04d8 a7 82 29 ; line at &6aa7, direction 4, colour 2, length 8, slope 1 &04db 97 a1 3a ; line at &6997, direction 5, colour 2, length 12, slope 2 &04de 0e c2 3a ; line at &6a0e, direction 6, colour 2, length 12, slope 2 &04e1 0f c2 18 ; line at &6a0f, direction 6, colour 2, length 4, slope 0 &04e4 02 ; 2 quads &04e5 12 23 22 e7 ; quad at &6b12, direction 0, lengths 2 2, slope 1, draw 123, no fill &04e9 03 23 12 f6 ; quad at &6b03, direction 1, lengths 2 2, slope 1, draw 23, no fill &04ed 01 ; 1 filled area &04ee a4 a1 ; fill area at &69a4, fill 5 &04f0 00 ; 0 copied areas &04f1 28 6a 04 ; text at &6a28, length &04 &04f4 12 00 0b 04 ; "SALE" &04f8 c0 08 ; continue at &08c0 (graphics_continuation_08c0) ; graphics_55 &04fa 51 ; colour 1 is magenta, colour 2 is red &04fb 02 ; 2 lines &04fc 95 22 3a ; line at &6a95, direction 1, colour 2, length 12, slope 2 &04ff 85 03 29 ; line at &6b85, direction 0, colour 2, length 8, slope 1 &0502 01 ; 1 quad &0503 0d 81 24 5f ; quad at &690d, direction 2, lengths 4 8, slope 0, draw 1234, fill 2 at 2 &0507 00 ; 0 filled areas &0508 00 ; 0 copied areas &0509 28 6a 04 ; text at &6a28, length &04 &050c 12 13 0e 0f ; "STOP" &0510 c0 08 ; continue at &08c0 (graphics_continuation_08c0) ; graphics_3d &0512 14 ; colour 1 is red, colour 2 is blue &0513 12 ; 18 lines &0514 2c 06 29 ; line at &6e2c, direction 0, colour 2, length 8, slope 1 &0517 58 02 29 ; line at &6a58, direction 0, colour 2, length 8, slope 1 &051a 7b 85 9b ; line at &6d7b, direction 4, colour 2, length 36, slope 3 &051d 58 08 39 ; line at &7058, direction 0, colour 2, length 12, slope 1 &0520 76 01 2a ; line at &6976, direction 0, colour 2, length 8, slope 2 &0523 7e 20 28 ; line at &687e, direction 1, colour 2, length 8, slope 0 &0526 3e 24 4a ; line at &6c3e, direction 1, colour 2, length 16, slope 2 &0529 07 0a 59 ; line at &7207, direction 0, colour 2, length 20, slope 1 &052c 73 c7 2a ; line at &6f73, direction 6, colour 2, length 8, slope 2 &052f 71 48 6b ; line at &7071, direction 2, colour 2, length 24, slope 3 &0532 6c 6a 2b ; line at &726c, direction 3, colour 2, length 8, slope 3 &0535 52 c9 4a ; line at &7152, direction 6, colour 2, length 16, slope 2 &0538 63 ca 1b ; line at &7263, direction 6, colour 2, length 4, slope 3 &053b 59 09 19 ; line at &7159, direction 0, colour 2, length 4, slope 1 &053e 7b 48 1a ; line at &707b, direction 2, colour 2, length 4, slope 2 &0541 7c 27 1b ; line at &6f7c, direction 1, colour 2, length 4, slope 3 &0544 61 6a 4a ; line at &7261, direction 3, colour 2, length 16, slope 2 &0547 5d 06 29 ; line at &6e5d, direction 0, colour 2, length 8, slope 1 &054a 0b ; 11 quads &054b 2b 26 44 3f ; quad at &6e2b, direction 0, lengths 4 2, slope 1, draw 1234, fill 1 at 2 &054f 49 48 44 e7 ; quad at &7049, direction 0, lengths 4 4, slope 2, draw 123, no fill &0553 3e c4 32 3f ; quad at &6c3e, direction 3, lengths 2 12, slope 2, draw 1234, fill 1 at 2 &0557 48 c5 33 e7 ; quad at &6d48, direction 3, lengths 3 12, slope 2, draw 123, no fill &055b 58 42 38 ff ; quad at &6a58, direction 1, lengths 8 4, slope 2, draw 1234, no fill &055f 7e 25 31 27 ; quad at &6d7e, direction 1, lengths 1 2, slope 1, draw 123, fill 1 at 1 &0563 76 81 24 3f ; quad at &6976, direction 2, lengths 4 8, slope 0, draw 1234, fill 1 at 2 &0567 00 80 99 b2 ; quad at &6800, direction 3, lengths 9 8, slope 0, draw 2, fill 5 at 2 &056b 64 88 32 19 ; quad at &7064, direction 3, lengths 2 8, slope 0, draw 14, fill 0 at 2 &056f 59 29 11 c1 ; quad at &7159, direction 1, lengths 1 2, slope 1, draw 1, fill 6 at 1 &0573 64 26 22 34 ; quad at &6e64, direction 0, lengths 2 2, slope 1, draw 3, fill 1 at 2 &0577 05 ; 5 filled areas &0578 4a a0 ; fill area at &684a, fill 5 &057a 68 a1 ; fill area at &6968, fill 5 &057c 7e 0a ; fill area at &727e, fill 0 &057e 78 c8 ; fill area at &7078, fill 6 &0580 5c 27 ; fill area at &6f5c, fill 1 &0582 01 ; 1 copied area &0583 01 b0 80 f0 ; mirror area from &7800 to &7880, 8 x 15 &0587 00 ; no text &0588 ff ; end ; graphics_continuation_0589 # Used by graphics_5e, graphics_61 &0589 06 ; 6 lines &058a 40 43 19 ; line at &6b40, direction 2, colour 2, length 4, slope 1 &058d bc 23 18 ; line at &6bbc, direction 1, colour 2, length 4, slope 0 &0590 44 e3 9a ; line at &6b44, direction 7, colour 2, length 36, slope 2 &0593 43 e3 9a ; line at &6b43, direction 7, colour 2, length 36, slope 2 &0596 4b 23 f8 ; line at &6b4b, direction 1, colour 2, length 60, slope 0 &0599 b8 43 19 ; line at &6bb8, direction 2, colour 2, length 4, slope 1 &059c 04 ; 4 quads &059d 40 80 6f 6e ; quad at &6840, direction 2, lengths 15 8, slope 0, draw 234, fill 3 at 1 &05a1 44 83 8f 7f ; quad at &6b44, direction 2, lengths 15 8, slope 0, draw 1234, fill 3 at 2 &05a5 0f 28 47 a4 ; quad at &700f, direction 0, lengths 7 2, slope 1, draw 3, fill 5 at 1 &05a9 01 e2 48 a4 ; quad at &6a01, direction 2, lengths 8 14, slope 3, draw 3, fill 5 at 1 &05ad 04 ; 4 filled areas &05ae f8 a3 ; fill area at &6bf8, fill 5 &05b0 3d a4 ; fill area at &6c3d, fill 5 &05b2 c0 a4 ; fill area at &6cc0, fill 5 &05b4 ba a7 ; fill area at &6fba, fill 5 &05b6 00 ; 0 copied areas &05b7 00 ; no text &05b8 ff ; end ; graphics_5e &05b9 63 ; colour 1 is cyan, colour 2 is yellow &05ba 00 ; 0 lines &05bb 03 ; 3 quads &05bc bc 21 c2 f6 ; quad at &69bc, direction 0, lengths 2 2, slope 1, draw 23, no fill &05c0 cc e2 04 f3 ; quad at &6acc, direction 2, lengths 4 14, slope 3, draw 12, no fill &05c4 cc 84 84 d4 ; quad at &6ccc, direction 2, lengths 4 8, slope 0, draw 3, fill 6 at 2 &05c8 00 ; 0 filled areas &05c9 00 ; 0 copied areas &05ca 00 ; no text &05cb 89 05 ; continue at &0589 (graphics_continuation_0589) ; graphics_61 &05cd 54 ; colour 1 is magenta, colour 2 is blue &05ce 03 ; 3 lines &05cf b6 27 4b ; line at &6fb6, direction 1, colour 2, length 16, slope 3 &05d2 d0 23 1a ; line at &6bd0, direction 1, colour 2, length 4, slope 2 &05d5 df 62 5b ; line at &6adf, direction 3, colour 2, length 20, slope 3 &05d8 05 ; 5 quads &05d9 b6 27 18 fd ; quad at &6fb6, direction 1, lengths 8 2, slope 1, draw 134, no fill &05dd d1 c7 16 d1 ; quad at &6fd1, direction 3, lengths 6 12, slope 2, draw 1, fill 6 at 2 &05e1 d0 e3 86 d9 ; quad at &6bd0, direction 2, lengths 6 14, slope 3, draw 14, fill 6 at 2 &05e5 b3 28 31 3e ; quad at &70b3, direction 1, lengths 1 2, slope 1, draw 234, fill 1 at 2 &05e9 ba c9 21 26 ; quad at &71ba, direction 2, lengths 1 12, slope 2, draw 23, fill 1 at 1 &05ed 01 ; 1 filled area &05ee fb ca ; fill area at &72fb, fill 6 &05f0 00 ; 0 copied areas &05f1 00 ; no text &05f2 89 05 ; continue at &0589 (graphics_continuation_0589) ; graphics_continuation_05f4 # Used by graphics_36, graphics_57 &05f4 02 ; 2 lines &05f5 17 02 49 ; line at &6a17, direction 0, colour 2, length 16, slope 1 &05f8 34 81 19 ; line at &6934, direction 4, colour 2, length 4, slope 1 &05fb 04 ; 4 quads &05fc 10 83 d2 df ; quad at &6b10, direction 3, lengths 2 8, slope 0, draw 1234, fill 6 at 2 &0600 27 22 d3 a5 ; quad at &6a27, direction 1, lengths 3 2, slope 1, draw 13, fill 5 at 1 &0604 03 29 22 24 ; quad at &7103, direction 0, lengths 2 2, slope 1, draw 3, fill 1 at 1 &0608 30 80 2f 3c ; quad at &6830, direction 2, lengths 15 8, slope 0, draw 34, fill 1 at 2 &060c 00 ; 0 filled areas &060d 01 ; 1 copied area &060e 01 b0 80 f0 ; mirror area from &7800 to &7880, 8 x 15 &0612 00 ; no text &0613 ff ; end ; graphics_36 &0614 54 ; colour 1 is magenta, colour 2 is blue &0615 02 ; 2 lines &0616 57 09 4a ; line at &7157, direction 0, colour 2, length 16, slope 2 &0619 55 22 c8 ; line at &6a55, direction 1, colour 2, length 48, slope 0 &061c 07 ; 7 quads &061d 56 89 1a ff ; quad at &7156, direction 3, lengths 10 8, slope 0, draw 1234, no fill &0621 5a 8a 21 ba ; quad at &725a, direction 2, lengths 1 8, slope 0, draw 24, fill 5 at 2 &0625 3c 81 df f9 ; quad at &693c, direction 3, lengths 15 8, slope 0, draw 14, no fill &0629 67 87 18 11 ; quad at &6f67, direction 3, lengths 8 8, slope 0, draw 1, fill 0 at 2 &062d 3d 82 b3 b6 ; quad at &6a3d, direction 3, lengths 3 8, slope 0, draw 23, fill 5 at 2 &0631 50 23 a1 26 ; quad at &6b50, direction 0, lengths 1 2, slope 1, draw 23, fill 1 at 1 &0635 5b 23 24 04 ; quad at &6b5b, direction 0, lengths 4 2, slope 1, draw 3, fill 0 at 1 &0639 00 ; 0 filled areas &063a 00 ; 0 copied areas &063b 00 ; no text &063c f4 05 ; continue at &05f4 (graphics_continuation_05f4) ; graphics_57 &063e 31 ; colour 1 is yellow, colour 2 is red &063f 03 ; 3 lines &0640 69 45 4a ; line at &6d69, direction 2, colour 2, length 16, slope 2 &0643 77 23 18 ; line at &6b77, direction 1, colour 2, length 4, slope 0 &0646 77 43 29 ; line at &6b77, direction 2, colour 2, length 8, slope 1 &0649 04 ; 4 quads &064a 42 82 35 9f ; quad at &6a42, direction 3, lengths 5 8, slope 0, draw 1234, fill 4 at 2 &064e 69 85 46 ff ; quad at &6d69, direction 2, lengths 6 8, slope 0, draw 1234, no fill &0652 7f 81 42 fb ; quad at &697f, direction 2, lengths 2 8, slope 0, draw 124, no fill &0656 3c 81 df df ; quad at &693c, direction 3, lengths 15 8, slope 0, draw 1234, fill 6 at 2 &065a 01 ; 1 filled area &065b 6e c2 ; fill area at &6a6e, fill 6 &065d 00 ; 0 copied areas &065e 00 ; no text &065f f4 05 ; continue at &05f4 (graphics_continuation_05f4) ; graphics_23 &0661 14 ; colour 1 is red, colour 2 is blue &0662 07 ; 7 lines &0663 4e 85 58 ; line at &6d4e, direction 4, colour 2, length 20, slope 0 &0666 85 47 78 ; line at &6f85, direction 2, colour 2, length 28, slope 0 &0669 2f 03 19 ; line at &6b2f, direction 0, colour 2, length 4, slope 1 &066c 34 23 38 ; line at &6b34, direction 1, colour 2, length 12, slope 0 &066f 30 25 38 ; line at &6d30, direction 1, colour 2, length 12, slope 0 &0672 8c 24 2b ; line at &6c8c, direction 1, colour 2, length 8, slope 3 &0675 c3 24 28 ; line at &6cc3, direction 1, colour 2, length 8, slope 0 &0678 09 ; 9 quads &0679 2f 83 15 ff ; quad at &6b2f, direction 3, lengths 5 8, slope 0, draw 1234, no fill &067d 2e 24 11 e6 ; quad at &6c2e, direction 1, lengths 1 2, slope 1, draw 23, no fill &0681 2b 85 35 9f ; quad at &6d2b, direction 3, lengths 5 8, slope 0, draw 1234, fill 4 at 2 &0685 05 c6 25 a4 ; quad at &6e05, direction 2, lengths 5 12, slope 2, draw 3, fill 5 at 1 &0689 81 27 12 5f ; quad at &6f81, direction 1, lengths 2 2, slope 1, draw 1234, fill 2 at 2 &068d 71 28 14 ef ; quad at &7071, direction 1, lengths 4 2, slope 1, draw 1234, no fill &0691 54 e4 27 a4 ; quad at &6c54, direction 2, lengths 7 14, slope 3, draw 3, fill 5 at 1 &0695 9d 88 3c 3f ; quad at &709d, direction 3, lengths 12 8, slope 0, draw 1234, fill 1 at 2 &0699 9a 88 1c fb ; quad at &709a, direction 3, lengths 12 8, slope 0, draw 124, no fill &069d 01 ; 1 filled area &069e 28 84 ; fill area at &6c28, fill 4 &06a0 04 ; 4 copied areas &06a1 29 43 40 13 ; mirror area from &6b28 to &7b40, 4 x 1 &06a5 28 43 60 42 ; copy area from &6b28 to &6a60, 6 x 4 &06a9 28 43 98 41 ; copy area from &6b28 to &6998, 9 x 4 &06ad 98 51 d0 52 ; copy area from &7998 to &7ad0, 13 x 5 &06b1 98 71 06 ; text at &7198, length &06 &06b4 02 0b 0e 12 04 03 ; "CLOSED" &06ba ff ; end ; graphics_2a &06bb 21 ; colour 1 is green, colour 2 is red &06bc 06 ; 6 lines &06bd 72 22 28 ; line at &6a72, direction 1, colour 2, length 8, slope 0 &06c0 72 c2 48 ; line at &6a72, direction 6, colour 2, length 16, slope 0 &06c3 8a 23 28 ; line at &6b8a, direction 1, colour 2, length 8, slope 0 &06c6 a2 23 18 ; line at &6ba2, direction 1, colour 2, length 4, slope 0 &06c9 a8 26 28 ; line at &6ea8, direction 1, colour 2, length 8, slope 0 &06cc 44 24 48 ; line at &6c44, direction 1, colour 2, length 16, slope 0 &06cf 08 ; 8 quads &06d0 ad 88 35 f7 ; quad at &70ad, direction 3, lengths 5 8, slope 0, draw 123, no fill &06d4 35 88 3f 3d ; quad at &7035, direction 3, lengths 15 8, slope 0, draw 134, fill 1 at 2 &06d8 46 81 c4 fa ; quad at &6946, direction 2, lengths 4 8, slope 0, draw 24, no fill &06dc 6e 84 63 fe ; quad at &6c6e, direction 2, lengths 3 8, slope 0, draw 234, no fill &06e0 8e 84 63 fb ; quad at &6c8e, direction 2, lengths 3 8, slope 0, draw 124, no fill &06e4 8a 82 42 fa ; quad at &6a8a, direction 2, lengths 2 8, slope 0, draw 24, no fill &06e8 a2 82 42 fd ; quad at &6aa2, direction 2, lengths 2 8, slope 0, draw 134, no fill &06ec ae 84 63 fc ; quad at &6cae, direction 2, lengths 3 8, slope 0, draw 34, no fill &06f0 00 ; 0 filled areas &06f1 00 ; 0 copied areas &06f2 40 71 08 ; text at &7140, length &08 &06f5 08 96 0c 14 11 08 12 12 ; "I.MURISS" &06fd ff ; end ; unused &06fe ff ; graphics_enabled &06ff 00 # &0700 - &07df is unused # &07e0 - &07fd is overwritten by input_buffer ; BASIC line input buffer # Source code fragments, corresponding to: &0700 2a 53 41 56 45 22 48 75 6e 74 32 22 20 34 30 30 ; *SAVE"Hunt2" 400+6400 255F &0710 2b 36 34 30 30 20 32 35 35 46 0d &071b 34 30 30 20 34 30 30 0d ; ... 400 400 &0723 30 31 29 2d 26 36 30 29 2a 32 35 36 29 3a ed 0d ; ... 01)-&60)*256):NEXT &0733 58 54 0d ; ... XT &0736 0d ; &0737 0d ; &0738 54 0d ; ... T &073a 54 0d ; ... T &073c 2c 31 33 33 2c 37 30 2c 32 35 35 2c 31 32 37 2c ; ... ,133,70,255,127,129,66,251,60, # &064f - &0660 &074c 31 32 39 2c 36 36 2c 32 35 31 2c 36 30 2c 31 32 ; 129,223,223,1,110,194,0,0,&F4,&5 &075c 39 2c 32 32 33 2c 32 32 33 2c 31 2c 31 31 30 2c &076c 31 39 34 2c 30 2c 30 2c 26 46 34 2c 26 35 0d &077b 26 35 0d ; ... &5 &077e 2c 30 2c 30 2c 30 2c 26 46 34 2c 26 35 0d ; ... ,0,0,0,&F4,&5 # &0639 - &063d &078c 26 35 0d ; ... &5 &078f 2c 39 35 2c 31 31 33 2c 34 30 2c 32 30 2c 32 33 ; ... 95,113,40,20,239,84,228,39,164, # &068c - &069c &079f 39 2c 38 34 2c 32 32 38 2c 33 39 2c 31 36 34 2c ; 157,136,60,63,154,136,28,251 &07af 31 35 37 2c 31 33 36 2c 36 30 2c 36 33 2c 31 35 &07bf 34 2c 31 33 36 2c 32 38 2c 32 35 31 0d &07cc 35 31 0d ; ... 51 &07cf 31 2c 34 30 2c 31 33 32 2c 34 2c 34 31 2c 36 37 ; ... 1,40,132,4,41,67,90 # &069d - &06a2 + 1 &07df 2c 39 30 0d &07e3 31 39 2c 34 30 2c 36 ; ... 19,40,6 # &06a4 - &06a6 &07ea 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &07fa 00 00 00 00 00 00 ; OS sound workspace # Unused &0800 0b a1 c1 bb 00 00 00 00 c0 c0 c0 c0 04 04 04 04 &0810 04 ca 07 64 08 6f 09 ff aa 0a 0d 00 00 00 00 00 &0820 0d de a0 05 79 d1 05 ff 56 03 90 00 00 00 00 00 &0830 00 00 00 64 08 0a 04 00 ff 9e 34 00 00 ef 00 0d ; string_070 &0840 07 &0841 06 26 aa 16 5a 0f 2b ; "great weapon" ; string_06d &0848 0d &0849 de a0 f1 35 00 03 90 01 0e 03 18 90 63 ; "there is a dead body here" ; string_06e &0856 13 &0857 de a2 f7 02 0e 0b 39 26 03 90 01 2e f5 a3 06 14 ; "there are many coloured bits of gunge" &0867 0d 06 04 ; string_06f &086a 03 &086b a1 c1 bb ; "you can see " ; unused # Not meaningful &086e 08 f1 06 90 90 64 06 64 06 90 64 06 90 64 06 90 &087e 64 06 12 ; string_072 &0881 0b &0882 ae 45 f5 a1 c1 2b ff 24 14 b4 9e ; "it says you can only touch the " ; string_073 &088d 0b &088e 0c 38 0a d7 b1 9e 03 08 06 2e f5 ; "marked with the digits " ; string_23c &0899 0a &089a b1 f1 01 d9 68 38 a7 25 ba 2e ; "with a ball bearing inside it" ; string_075 &08a4 0c &08a5 99 2e 92 f5 68 f0 35 0f 0e 16 28 57 ; "It's been depowered" ; prepare_and_write_ship_details &08b1 20 00 0e JSR &0e00 ; to_write_string_from_table_one &08b4 20 75 10 JSR &1075 ; to_write_spaces_until_start_of_line_preserving_variables &08b7 20 2d 18 JSR &182d ; prepare_ship_details &08ba 20 c3 18 JSR &18c3 ; write_ship_details &08bd 60 RTS ; unused &08be 41 41 ; graphics_continuation_08c0 # Used by graphics_29, graphics_55 &08c0 08 ; 8 lines &08c1 17 08 49 ; line at &7017, direction 0, colour 2, length 16, slope 1 &08c4 37 26 4a ; line at &6e37, direction 1, colour 2, length 16, slope 2 &08c7 57 25 3b ; line at &6d57, direction 1, colour 2, length 12, slope 3 &08ca 71 05 19 ; line at &6d71, direction 0, colour 2, length 4, slope 1 &08cd 6b 25 1a ; line at &6d6b, direction 1, colour 2, length 4, slope 2 &08d0 7d 04 2a ; line at &6c7d, direction 0, colour 2, length 8, slope 2 &08d3 69 a1 88 ; line at &6969, direction 5, colour 2, length 32, slope 0 &08d6 2d 01 19 ; line at &692d, direction 0, colour 2, length 4, slope 1 &08d9 05 ; 5 quads &08da 2d 81 38 ff ; quad at &692d, direction 3, lengths 8 8, slope 0, draw 1234, no fill &08de 6c 21 31 27 ; quad at &696c, direction 1, lengths 1 2, slope 1, draw 123, fill 1 at 1 &08e2 02 43 f4 a4 ; quad at &6b02, direction 1, lengths 4 4, slope 2, draw 3, fill 5 at 1 &08e6 a8 60 c3 fc ; quad at &68a8, direction 0, lengths 3 6, slope 3, draw 34, no fill &08ea b4 46 28 b4 ; quad at &6eb4, direction 0, lengths 8 4, slope 2, draw 3, fill 5 at 2 &08ee 07 ; 7 filled areas &08ef fd a9 ; fill area at &71fd, fill 5 &08f1 3b 21 ; fill area at &693b, fill 1 &08f3 72 a2 ; fill area at &6a72, fill 5 &08f5 26 a2 ; fill area at &6a26, fill 5 &08f7 16 a2 ; fill area at &6a16, fill 5 &08f9 07 a5 ; fill area at &6d07, fill 5 &08fb 05 a4 ; fill area at &6c05, fill 5 &08fd 00 ; 0 copied areas &08fe 00 ; no text &08ff ff ; end ; unused # &0900 - &0909 is a copy of &0900 - &0909 from HUNT1 &0900 06 18 &0902 01 20 &0904 0c 0d &0906 0d 00 &0908 02 2c ; bottom_ula_values &090a 27 37 67 77 # Set colour 0 to black &090e 80 90 c0 d0 # Set colour 1 to white ; top_ula_values &0912 26 36 66 76 # Set colour 1 to red &0916 83 93 c3 d3 # Set colour 2 to blue ; colour_3_pixel_values &091a 88 44 22 11 ; unused &091e 00 00 00 00 ; row_screen_addresses &0922 00 74 &0924 00 75 &0926 00 76 &0928 00 77 &092a 00 78 &092c 00 79 &092e 00 7a &0930 00 7b &0932 00 7c &0934 00 7d &0936 00 7e &0938 00 7f ; pattern_table &093a 0f 0f 0f 0f 0f 0f 0f 0f ; 0 # Solid colour 1 &0942 f0 f0 f0 f0 f0 f0 f0 f0 ; 1 # Solid colour 2 &094a ff ff ff ff ff ff ff ff ; 2 # Solid colour 3 &0952 f0 80 e0 e0 e0 e0 e0 f0 ; 3 # Colour 2 key on black &095a 2d 78 f0 f0 d2 87 0f 0f ; 4 # Colour 1 and colour 2 horizontal waves &0962 a5 5a a5 5a a5 5a a5 5a ; 5 # Colour 1 and colour 2 checkerboard &096a b4 5a e1 e1 e1 e1 5a b4 ; 6 # Colour 1 diagonal cross on colour 2 background &0972 69 69 3c 3c 96 96 c3 c3 ; 7 # Colour 1 and colour 2 vertical waves ; unused &097a 00 00 00 00 00 00 ; text_buffer # Initial values are unused &0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &0990 00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 00 &09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &09b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 &09d0 00 00 00 ff ff 00 00 00 00 00 00 00 00 04 10 06 &09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &09f0 00 00 00 00 00 00 00 00 80 00 00 00 00 00 00 00 &0a00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &0a10 00 00 00 00 00 00 00 00 20 00 00 00 80 00 00 00 &0a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &0a30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &0a40 00 00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 &0a50 00 00 00 00 00 00 00 00 00 00 00 00 00 02 10 06 &0a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &0a70 00 00 00 00 00 00 00 00 80 00 00 00 00 00 00 00 ; punctuation_table &0a80 3a ; ":" ; &91 &0a81 27 ; "'" ; &92 &0a82 28 ; "(" ; &93 &0a83 29 ; ")" ; &94 &0a84 2c ; "," ; &95 &0a85 2e ; "." ; &96 &0a86 3f ; "?" ; &97 &0a87 24 ; "$" ; &98 ; unused &0a88 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &0a98 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &0aa8 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &0ab8 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &0ac8 00 00 00 00 00 80 00 00 00 00 00 00 00 00 00 00 &0ad8 00 00 00 00 00 02 10 06 00 00 00 00 00 00 00 00 &0ae8 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &0af8 80 00 00 00 00 00 00 00 ; fragment_address_table &0b00 00 0c ; &0c00 = fragment_1a &0b02 06 0c ; &0c06 = fragment_1b &0b04 0c 0c ; &0c0c = fragment_1c &0b06 11 0c ; &0c11 = fragment_1d &0b08 16 0c ; &0c16 = fragment_1e &0b0a 1a 0c ; &0c1a = fragment_1f &0b0c 1e 0c ; &0c1e = fragment_20 &0b0e 21 0c ; &0c21 = fragment_21 &0b10 25 0c ; &0c25 = fragment_22 &0b12 29 0c ; &0c29 = fragment_23 &0b14 2c 0c ; &0c2c = fragment_24 &0b16 2f 0c ; &0c2f = fragment_25 &0b18 32 0c ; &0c32 = fragment_26 &0b1a 35 0c ; &0c35 = fragment_27 &0b1c 39 0c ; &0c39 = fragment_28 &0b1e 3c 0c ; &0c3c = fragment_29 &0b20 42 0c ; &0c42 = fragment_2a &0b22 45 0c ; &0c45 = fragment_2b &0b24 48 0c ; &0c48 = fragment_2c &0b26 4e 0c ; &0c4e = fragment_2d &0b28 53 0c ; &0c53 = fragment_2e &0b2a 56 0c ; &0c56 = fragment_2f &0b2c 59 0c ; &0c59 = fragment_30 &0b2e 5f 0c ; &0c5f = fragment_31 &0b30 64 0c ; &0c64 = fragment_32 &0b32 69 0c ; &0c69 = fragment_33 &0b34 6c 0c ; &0c6c = fragment_34 &0b36 6f 0c ; &0c6f = fragment_35 &0b38 72 0c ; &0c72 = fragment_36 &0b3a 75 0c ; &0c75 = fragment_37 &0b3c 78 0c ; &0c78 = fragment_38 &0b3e 7b 0c ; &0c7b = fragment_39 &0b40 7e 0c ; &0c7e = fragment_3a &0b42 83 0c ; &0c83 = fragment_3b &0b44 87 0c ; &0c87 = fragment_3c &0b46 8d 0c ; &0c8d = fragment_3d &0b48 91 0c ; &0c91 = fragment_3e &0b4a 94 0c ; &0c94 = fragment_3f &0b4c 9d 0c ; &0c9d = fragment_40 &0b4e a2 0c ; &0ca2 = fragment_41 &0b50 a6 0c ; &0ca6 = fragment_42 &0b52 ad 0c ; &0cad = fragment_43 &0b54 b2 0c ; &0cb2 = fragment_44 &0b56 b7 0c ; &0cb7 = fragment_45 &0b58 bb 0c ; &0cbb = fragment_46 &0b5a bf 0c ; &0cbf = fragment_47 &0b5c c4 0c ; &0cc4 = fragment_48 &0b5e c7 0c ; &0cc7 = fragment_49 &0b60 cc 0c ; &0ccc = fragment_4a &0b62 cf 0c ; &0ccf = fragment_4b &0b64 d4 0c ; &0cd4 = fragment_4c &0b66 d8 0c ; &0cd8 = fragment_4d &0b68 dc 0c ; &0cdc = fragment_4e &0b6a e2 0c ; &0ce2 = fragment_4f &0b6c e8 0c ; &0ce8 = fragment_40 &0b6e ec 0c ; &0cec = fragment_51 &0b70 ef 0c ; &0cef = fragment_52 &0b72 f2 0c ; &0cf2 = fragment_53 &0b74 fa 0c ; &0cfa = fragment_54 &0b76 ff 0c ; &0cff = fragment_55 &0b78 02 0d ; &0d02 = fragment_56 &0b7a 05 0d ; &0d05 = fragment_57 &0b7c 08 0d ; &0d08 = fragment_58 &0b7e 0b 0d ; &0d0b = fragment_59 &0b80 0f 0d ; &0d0f = fragment_5a &0b82 12 0d ; &0d12 = fragment_5b &0b84 1a 0d ; &0d1a = fragment_5c &0b86 24 0d ; &0d24 = fragment_5d &0b88 2a 0d ; &0d2a = fragment_5e &0b8a 30 0d ; &0d30 = fragment_5f &0b8c 35 0d ; &0d35 = fragment_60 &0b8e 3b 0d ; &0d3b = fragment_61 &0b90 40 0d ; &0d40 = fragment_62 &0b92 43 0d ; &0d43 = fragment_63 &0b94 48 0d ; &0d48 = fragment_64 &0b96 4b 0d ; &0d4b = fragment_65 &0b98 4e 0d ; &0d4e = fragment_66 &0b9a 52 0d ; &0d52 = fragment_67 &0b9c 56 0d ; &0d56 = fragment_68 &0b9e 59 0d ; &0d59 = fragment_69 &0ba0 5e 0d ; &0d5e = fragment_6a &0ba2 62 0d ; &0d62 = fragment_6b &0ba4 6a 0d ; &0d6a = fragment_6c &0ba6 6d 0d ; &0d6d = fragment_6d &0ba8 70 0d ; &0d70 = fragment_6e &0baa 78 0d ; &0d78 = fragment_6f &0bac 7c 0d ; &0d7c = fragment_70 &0bae 7f 0d ; &0d7f = fragment_71 &0bb0 81 0d ; &0d81 = fragment_72 &0bb2 87 0d ; &0d87 = fragment_73 &0bb4 8a 0d ; &0d8a = fragment_74 &0bb6 8d 0d ; &0d8d = fragment_75 &0bb8 8f 0d ; &0d8f = fragment_76 &0bba 92 0d ; &0d92 = fragment_77 &0bbc 97 0d ; &0d97 = fragment_78 &0bbe 9c 0d ; &0d9c = fragment_79 &0bc0 a0 0d ; &0da0 = fragment_7a &0bc2 a4 0d ; &0da4 = fragment_7b &0bc4 aa 0d ; &0daa = fragment_7c &0bc6 ae 0d ; &0dae = fragment_7d &0bc8 b2 0d ; &0db2 = fragment_7e &0bca b9 0d ; &0db9 = fragment_7f &0bcc bc 0d ; &0dbc = end_of_fragments # Unused ; unused &0bce 00 7a 00 7a 00 7a 00 7a 00 7a 00 7a 00 7a 00 7a &0bde 00 7a 00 7a 00 7a 00 7a 00 7a 00 7a 00 7a 00 7a &0bee 00 7a 10 10 10 10 10 10 10 10 10 10 10 10 10 10 &0bfe 10 10 ; fragments &0c00 6e 6f 72 74 68 0d ; &1a : "north" &0c06 73 6f 75 74 68 0d ; &1b : "south" &0c0c 65 61 73 74 0d ; &1c : "east" &0c11 77 65 73 74 0d ; &1d : "west" &0c16 74 68 65 0d ; &1e : "the" &0c1a 61 6e 64 0d ; &1f : "and" &0c1e 69 73 0d ; &20 : "is" &0c21 79 6f 75 0d ; &21 : "you" &0c25 61 72 65 0d ; &22 : "are" &0c29 6f 66 0d ; &23 : "of" &0c2c 74 6f 0d ; &24 : "to" &0c2f 69 6e 0d ; &25 : "in" &0c32 72 65 0d ; &26 : "re" &0c35 69 6e 67 0d ; &27 : "ing" &0c39 65 72 0d ; &28 : "er" &0c3c 73 74 61 6e 64 0d ; &29 : "stand" &0c42 61 74 0d ; &2a : "at" &0c45 6f 6e 0d ; &2b : "on" &0c48 63 61 6e 27 74 0d ; &2c : "can't" &0c4e 74 68 61 74 0d ; &2d : "that" &0c53 69 74 0d ; &2e : "it" &0c56 74 68 0d ; &2f : "th" &0c59 73 6d 61 6c 6c 0d ; &30 : "small" &0c5f 77 69 74 68 0d ; &31 : "with" &0c64 79 6f 75 72 0d ; &32 : "your" &0c69 73 68 0d ; &33 : "sh" &0c6c 63 68 0d ; &34 : "ch" &0c6f 64 65 0d ; &35 : "de" &0c72 73 65 0d ; &36 : "se" &0c75 6f 6f 0d ; &37 : "oo" &0c78 61 72 0d ; &38 : "ar" &0c7b 6f 75 0d ; &39 : "ou" &0c7e 73 69 64 65 0d ; &3a : "side" &0c83 73 65 65 0d ; &3b : "see" &0c87 66 72 6f 6e 74 0d ; &3c : "front" &0c8d 68 69 73 0d ; &3d : "his" &0c91 73 73 0d ; &3e : "ss" &0c94 63 6f 72 72 69 64 6f 72 0d ; &3f : "corridor" &0c9d 74 69 6f 6e 0d ; &40 : "tion" &0ca2 63 61 6e 0d ; &41 : "can" &0ca6 6e 61 72 72 6f 77 0d ; &42 : "narrow" &0cad 70 61 73 73 0d ; &43 : "pass" &0cb2 66 72 6f 6d 0d ; &44 : "from" &0cb7 73 61 79 0d ; &45 : "say" &0cbb 62 75 74 0d ; &46 : "but" &0cbf 6c 65 61 64 0d ; &47 : "lead" &0cc4 6e 65 0d ; &48 : "ne" &0cc7 6c 6f 6e 67 0d ; &49 : "long" &0ccc 73 74 0d ; &4a : "st" &0ccf 76 61 73 74 0d ; &4b : "vast" &0cd4 6f 6c 64 0d ; &4c : "old" &0cd8 6e 65 77 0d ; &4d : "new" &0cdc 73 70 61 63 65 0d ; &4e : "space" &0ce2 64 72 6f 69 64 0d ; &4f : "droid" &0ce8 77 61 79 0d ; &50 : "way" &0cec 63 65 0d ; &51 : "ce" &0cef 65 65 0d ; &52 : "ee" &0cf2 74 68 72 6f 75 67 68 0d ; &53 : "through" &0cfa 77 61 6c 6b 0d ; &54 : "walk" &0cff 6c 65 0d ; &55 : "le" &0d02 65 6c 0d ; &56 : "el" &0d05 65 64 0d ; &57 : "ed" &0d08 65 79 0d ; &58 : "ey" &0d0b 61 6c 6c 0d ; &59 : "all" &0d0f 65 61 0d ; &5a : "ea" &0d12 73 74 72 65 74 63 68 0d ; &5b : "stretch" &0d1a 63 6f 6e 74 69 6e 75 65 73 0d ; &5c : "continues" &0d24 74 68 69 6e 67 0d ; &5d : "thing" &0d2a 74 68 65 72 65 0d ; &5e : "there" &0d30 76 65 72 79 0d ; &5f : "very" &0d35 6c 61 72 67 65 0d ; &60 : "large" &0d3b 73 6f 6d 65 0d ; &61 : "some" &0d40 63 6b 0d ; &62 : "ck" &0d43 68 65 72 65 0d ; &63 : "here" &0d48 65 73 0d ; &64 : "es" &0d4b 65 78 0d ; &65 : "ex" &0d4e 6f 72 74 0d ; &66 : "ort" &0d52 61 76 65 0d ; &67 : "ave" &0d56 62 65 0d ; &68 : "be" &0d59 64 61 72 6b 0d ; &69 : "dark" &0d5e 65 6e 64 0d ; &6a : "end" &0d62 79 6f 75 20 61 72 65 0d ; &6b : "you are" &0d6a 65 74 0d ; &6c : "et" &0d6d 74 65 0d ; &6d : "te" &0d70 6c 75 67 6f 62 6f 74 0d ; &6e : "lugobot" &0d78 67 68 74 0d ; &6f : "ght" &0d7c 65 6e 0d ; &70 : "en" &0d7f 61 0d ; &71 : "a" &0d81 72 6f 75 6e 64 0d ; &72 : "round" &0d87 6e 6f 0d ; &73 : "no" &0d8a 77 68 0d ; &74 : "wh" &0d8d 73 0d ; &75 : "s" &0d8f 6e 74 0d ; &76 : "nt" &0d92 6d 61 6e 79 0d ; &77 : "many" &0d97 6c 6f 6f 6b 0d ; &78 : "look" &0d9c 66 6f 72 0d ; &79 : "for" &0da0 6e 6f 74 0d ; &7a : "not" &0da4 77 61 72 64 73 0d ; &7b : "wards" &0daa 65 6e 74 0d ; &7c : "ent" &0dae 66 75 6c 0d ; &7d : "ful" &0db2 6c 69 74 74 6c 65 0d ; &7e : "little" &0db9 6c 79 0d ; &7f : "ly" ; end_of_fragments ; it's_been_depowered &0dbc 20 72 24 JSR &2472 ; write_character_preserving_variables &0dbf a9 75 LDA #&75 ; string_075 : "It's been depowered" &0dc1 20 2a 1d JSR &1d2a ; to_write_string_from_table_zero &0dc4 60 RTS ; unused &0dc5 00 00 00 00 00 00 00 00 80 00 00 00 00 00 00 00 &0dd5 00 00 00 00 40 00 00 00 02 ; variables_copy_4c &0dde 00 ; variables_copy_4d &0ddf 00 ; variables_copy &0de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f8 79 &0df0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 30 00 ; to_write_string_from_table_one &0e00 4c 08 24 JMP &2408 ; write_string_from_table_one ; unused &0e03 00 00 83 00 00 00 00 ff 60 ; to_write_string_from_table_two &0e0c 4c 27 24 JMP &2427 ; write_string_from_table_two ; unused &0e0f 20 ee ff JSR &ffee ; OSWRCH &0e12 60 RTS ; decrease_gas_timer &0e13 ad ac 4d LDA &4dac ; gas_timer &0e16 f0 03 BEQ &0e1b ; leave &0e18 ce ac 4d DEC &4dac ; gas_timer ; leave &0e1b 60 RTS ; update_servobot &0e1c ad a6 4d LDA &4da6 ; servobot_room &0e1f 20 80 10 JSR &1080 ; find_room_exits &0e22 ad a6 4d LDA &4da6 ; servobot_room &0e25 85 5f STA &5f ; previous_servobot_room &0e27 ea NOP &0e28 29 03 AND #&03 &0e2a a8 TAY &0e2b 85 5e STA &5e ; servobot_direction &0e2d ea NOP &0e2e b9 80 09 LDA &0980,Y ; text_buffer &0e31 8d a6 4d STA &4da6 ; servobot_room &0e34 c5 78 CMP &78 ; player_room &0e36 d0 12 BNE &0e4a ; skip_servobot_entry &0e38 a9 22 LDA #&22 ; string_122 : "the servobot enters from the" ; string_1e" &0e3a 20 00 0e JSR &0e00 ; to_write_string_from_table_one &0e3d a5 5e LDA &5e ; servobot_direction &0e3f ea NOP &0e40 29 03 AND #&03 &0e42 49 01 EOR #&01 ; DIRECTION_SOUTH ^ DIRECTION_NORTH &0e44 18 CLC &0e45 69 2e ADC #&2e ; string_22e : "north" &0e47 20 0c 0e JSR &0e0c ; to_write_string_from_table_two ; skip_servobot_entry &0e4a a5 5f LDA &5f ; previous_servobot_room &0e4c ea NOP &0e4d c5 78 CMP &78 ; player_room &0e4f d0 10 BNE &0e61 ; skip_servobot_exit &0e51 a9 23 LDA #&23 ; string_123 : "the servobot rolls off to the" &0e53 20 00 0e JSR &0e00 ; to_write_string_from_table_one &0e56 a5 5f LDA &5f ; previous_servobot_room &0e58 ea NOP &0e59 29 03 AND #&03 &0e5b 18 CLC &0e5c 69 2e ADC #&2e ; string_22e : "north" &0e5e 20 0c 0e JSR &0e0c ; to_write_string_from_table_two ; skip_servobot_exit &0e61 ad a3 4d LDA &4da3 ; lugobot_room # Zero if lugobot is following player &0e64 d0 02 BNE &0e68 ; not_following_player &0e66 a5 78 LDA &78 ; player_room ; not_following_player &0e68 cd a6 4d CMP &4da6 ; servobot_room &0e6b d0 03 BNE &0e70 ; leave &0e6d 20 71 0e JSR &0e71 ; lugobot_meets_servobot ; leave &0e70 60 RTS ; lugobot_meets_servobot &0e71 20 75 10 JSR &1075 ; to_write_spaces_until_start_of_line_preserving_variables &0e74 ad a3 4d LDA &4da3 ; lugobot_room # Zero if lugobot is following player &0e77 f0 44 BEQ &0ebd ; is_following_player &0e79 a5 78 LDA &78 ; player_room &0e7b cd a6 4d CMP &4da6 ; servobot_room &0e7e f0 0f BEQ &0e8f ; skip_metallic_vocie &0e80 a5 78 LDA &78 ; player_room &0e82 c9 15 CMP #&15 ; ROOM_15 ; "near the base of a dark stairway that winds up through the spacestation" &0e84 90 36 BCC &0ebc ; leave &0e86 c9 22 CMP #&22 ; 1 + ROOM_21 ; "in what was once a foozball court until someone died from batshock.There is a mean looking robodroid here" &0e88 b0 32 BCS &0ebc ; leave &0e8a a9 24 LDA #&24 ; string_124 ; "a metallic voice says" &0e8c 20 00 0e JSR &0e00 ; to_write_string_from_table_one ; skip_metallic_vocie &0e8f ad 0a 4e LDA &4e0a ; object_locations + OBJECT_GAS_CYLINDER &0e92 c9 ff CMP #&ff ; ROOM_HIDDEN &0e94 d0 4a BNE &0ee0 ; get_blowing_lugobot &0e96 ad a7 4d LDA &4da7 ; lugobot_has_shield &0e99 d0 0b BNE &0ea6 ; check_sample &0e9b a9 02 LDA #&02 ; string_102 ; "#'lugobot, here is a static shield.I need some samples'" &0e9d 20 00 0e JSR &0e00 ; to_write_string_from_table_one &0ea0 a9 01 LDA #&01 # Set to non-zero to indicate lugobot has static shield &0ea2 8d a7 4d STA &4da7 ; lugobot_has_shield &0ea5 60 RTS ; check_sample &0ea6 ad 1a 4e LDA &4e1a ; object_locations + OBJECT_SAMPLE &0ea9 c9 fa CMP #&fa ; ROOM_IN_LUGOBOT &0eab d0 2d BNE &0eda ; get_on_with_it_lugobot ; ok_lugobot_here_is_some_gas &0ead a9 3f LDA #&3f ; string_23f : "#'ok lugobot ,here is some gas for the little droid's balloons'" &0eaf 20 0c 0e JSR &0e0c ; to_write_string_from_table_two &0eb2 a9 ff LDA #&ff ; ROOM_HIDDEN &0eb4 8d 1a 4e STA &4e1a ; object_locations + OBJECT_SAMPLE &0eb7 a9 fa LDA #&fa ; ROOM_IN_LUGOBOT &0eb9 8d 0a 4e STA &4e0a ; object_locations + OBJECT_GAS_CYLINDER ; leave &0ebc 60 RTS ; is_following_player &0ebd ad 1a 4e LDA &4e1a ; object_locations + OBJECT_SAMPLE &0ec0 c9 fa CMP #&fa ; ROOM_IN_LUGOBOT &0ec2 f0 e9 BEQ &0ead ; ok_lugobot_here_is_some_gas &0ec4 ad a7 4d LDA &4da7 ; lugobot_has_shield &0ec7 d0 06 BNE &0ecf ; you_do_not_need_the_shield_lugobot &0ec9 4c 82 26 JMP &2682 ; to_consider_writing_pity_you_are_busy_lugobot ; unused &0ecc 0c 0e ... &0e0c ; to_write_string_from_table_two &0ece 60 RTS ; you_do_not_need_the_shield_lugobot &0ecf a9 3d LDA #&3b ; string_23d : "#'you do not need the shield as you are with this thing lugobot'" &0ed1 20 0c 0e JSR &0e0c ; to_write_string_from_table_two &0ed4 a9 00 LDA #&00 # Set to zero to indicate lugobot doesn't have shield &0ed6 8d a7 4d STA &4da7 ; lugobot_has_shield &0ed9 60 RTS ; get_on_with_it_lugobot &0eda a9 3b LDA #&3b ; string_23b : "#'get on with it lugobot'" &0edc 20 0c 0e JSR &0e0c ; to_write_string_from_table_two &0edf 60 RTS ; get_blowing_lugobot &0ee0 a9 3e LDA #&3e ; string_23e : "#'get blowing lugobot'" &0ee2 20 0c 0e JSR &0e0c ; to_write_string_from_table_two &0ee5 60 RTS ; count_carried_objects &0ee6 a2 00 LDX #&00 &0ee8 a0 00 LDY #&00 ; count_carried_objects_loop &0eea b9 00 4e LDA &4e00,Y ; object_locations &0eed d0 01 BNE &0ef0 ; consider_next_object &0eef e8 INX ; consider_next_object &0ef0 c8 INY &0ef1 c0 1a CPY #&1a ; OBJECT_LAST # Bug: should be CPY #&1b to include OBJECT_SAMPLES &0ef3 d0 f5 BNE &0eea ; count_carried_objects_loop &0ef5 60 RTS ; update_evacuation_countdown &0ef6 ad ae 4d LDA &4dae ; evacuation_timer &0ef9 f0 27 BEQ &0f22 ; no_time_remaining &0efb c9 ff CMP #&ff # &ff if player has been sucked out into space &0efd f0 22 BEQ &0f21 ; leave &0eff 4c 08 0f JMP &0f08 ; time_remaining ; unused &0f02 05 &0f03 a9 2a LDA #&2a ; string_12a ; "there is a small man with a squeeky voice here &0f05 20 00 0e JSR &0e00 ; to_write_string_from_table_one ; time_remaining &0f08 20 75 10 JSR &1075 ; to_write_spaces_until_start_of_line_preserving_variables &0f0b ad ae 4d LDA &4dae ; evacuation_timer &0f0e 18 CLC &0f0f 69 30 ADC #&30 ; "0" &0f11 20 71 10 JSR &1071 ; to_write_character_preserving_variables &0f14 a9 30 LDA #&30 ; "0" &0f16 20 71 10 JSR &1071 ; to_write_character_preserving_variables &0f19 a9 40 LDA #&40 ; string_240 : "secs to space exposure" &0f1b 20 0c 0e JSR &0e0c ; to_write_string_from_table_two &0f1e ce ae 4d DEC &4dae ; evacuation_timer ; leave &0f21 60 RTS ; no_time_remaining &0f22 a9 2b LDA #&2b ; string_12b ; "the hatchway opens and you are sucked out into space" &0f24 20 00 0e JSR &0e00 ; to_write_string_from_table_one &0f27 ad 08 4e LDA &4e08 ; object_locations + OBJECT_GYROPAC &0f2a c9 c8 CMP #&c8 ; ROOM_WEARING &0f2c d0 0f BNE &0f3d ; not_wearing_gyropac &0f2e a9 2d LDA #&2d ; string_12d ; " the gyro starts and carries you to the nearest air pocket" &0f30 20 00 0e JSR &0e00 ; to_write_string_from_table_one &0f33 a9 04 LDA #&04 ; ROOM_04 ; "beside a spaceship on one of many vast platforms in space ,all visited by some large droids saying '#FOR HIRE BUT FREE FOR ALL TODAY'" &0f35 85 78 STA &78 ; player_room &0f37 a9 ff LDA #&ff &0f39 8d ae 4d STA &4dae ; evacuation_timer &0f3c 60 RTS ; not_wearing_gyropac &0f3d a9 2c LDA #&2c ; string_12c ; "you suffocate in 30 secs" &0f3f 20 00 0e JSR &0e00 ; to_write_string_from_table_one &0f42 a9 ff LDA #&ff ; ROOM_DEAD &0f44 85 78 STA &78 ; player_room &0f46 60 RTS ; list_objects_in_room &0f47 a2 00 LDX #&00 &0f49 a0 00 LDY #&00 ; count_objects_in_room_loop &0f4b b9 00 4e LDA &4e00,Y ; object_locations &0f4e c5 11 CMP &11 ; room_to_check &0f50 d0 01 BNE &0f53 ; consider_next_object_for_count &0f52 e8 INX ; consider_next_object_for_count &0f53 c8 INY &0f54 c0 1b CPY #&1b ; OBJECT_LAST + 1 &0f56 d0 f3 BNE &0f4b ; count_objects_in_room_loop &0f58 8a TXA &0f59 d0 06 BNE &0f61 ; room_has_objects &0f5b a9 1e LDA #&1e ; string_21e : "nothing" &0f5d 20 0c 0e JSR &0e0c ; to_write_string_from_table_two ; leave &0f60 60 RTS ; room_has_objects &0f61 a0 00 LDY #&00 ; list_objects_in_room_loop &0f63 b9 00 4e LDA &4e00,Y ; object_locations &0f66 c5 11 CMP &11 ; room_to_check &0f68 d0 1a BNE &0f84 ; skip_object_for_list &0f6a 98 TYA &0f6b 84 40 STY &40 ; tmp_y &0f6d 86 41 STX &41 ; tmp_x &0f6f 20 0c 0e JSR &0e0c ; to_write_string_from_table_two &0f72 a4 40 LDY &40 ; tmp_y &0f74 a6 41 LDX &41 ; tmp_x &0f76 e0 02 CPX #&02 &0f78 d0 0e BNE &0f88 ; not_penultimate_object &0f7a a9 1f LDA #&1f ; string_21f : " and " &0f7c 20 0c 0e JSR &0e0c ; to_write_string_from_table_two &0f7f a4 40 LDY &40 ; tmp_y &0f81 a6 41 LDX &41 ; tmp_x ; consider_next_object_for_list_after_dex &0f83 ca DEX ; consider_next_object_for_list &0f84 c8 INY &0f85 4c 63 0f JMP &0f63 ; list_objects_in_room_loop ; not_penultimate_object &0f88 e0 01 CPX #&01 &0f8a f0 07 BEQ &0f93 ; is_final_object &0f8c a9 2c LDA #&2c ; "," &0f8e 20 71 10 JSR &1071 ; to_write_character_preserving_variables &0f91 d0 f0 BNE &0f83 ; consider_next_object_for_list_after_dex # Always branches ; is_final_object &0f93 a5 11 LDA &11 ; room_to_check &0f95 c5 78 CMP &78 ; player_room &0f97 f0 c7 BEQ &0f60 ; leave &0f99 a5 7e LDA &7e ; text_screen_address_low &0f9b f0 c3 BEQ &0f60 ; leave &0f9d 4c 67 48 JMP &4867 ; write_period_preserving_variables ; to_initialise_room_exits &0fa0 4c fe 26 JMP &26fe ; initialise_room_exits ; use_temporary_room_exits_for_room &0fa3 a0 00 LDY #&00 ; use_temporary_room_exits_for_room_loop &0fa5 b9 80 09 LDA &0980,Y ; temporary_room_exits &0fa8 99 f0 61 STA &61f0,Y ; room_exits &0fab c8 INY &0fac c0 0c CPY #&0c ; DIRECTION_LAST + 1 &0fae d0 f5 BNE &0fa5 ; use_temporary_room_exits_for_room_loop &0fb0 60 RTS ; count_set_bits_in_A &0fb1 a0 08 LDY #&08 &0fb3 a2 00 LDX #&00 ; count_set_bits_in_A_loop &0fb5 6a ROR A &0fb6 90 01 BCC &0fb9 ; consider_next_bit &0fb8 e8 INX ; consider_next_bit &0fb9 88 DEY &0fba d0 f9 BNE &0fb5 ; count_set_bits_in_A_loop &0fbc 60 RTS ; rnd &0fbd ad 96 02 LDA &0296 ; os_system_clock + 4 &0fc0 4a LSR A &0fc1 60 RTS ; are_you_sure &0fc2 a9 12 LDA #&12 ; string_112 : "are you sure ?" &0fc4 20 00 0e JSR &0e00 ; to_write_string_from_table_one &0fc7 a9 81 LDA #&81 ; Read key with time limit &0fc9 a2 ff LDX #&ff &0fcb a0 7f LDY #&7f ; &7fff &0fcd 20 f4 ff JSR &fff4 ; OSBYTE # Returns Y = 255 if timed out, or Y = 0, X = character &0fd0 98 TYA &0fd1 d0 0b BNE &0fde ; be_careful_next_time &0fd3 8a TXA &0fd4 20 71 10 JSR &1071 ; to_write_character_preserving_variables &0fd7 e0 59 CPX #&59 ; "Y" &0fd9 d0 03 BNE &0fde ; be_careful_next_time &0fdb a0 01 LDY #&01 # Leave with non-zero to indicate yes &0fdd 60 RTS ; be_careful_next_time &0fde a9 13 LDA #&13 ; string_113 : "be careful next time" &0fe0 20 00 0e JSR &0e00 ; to_write_string_from_table_one &0fe3 a0 00 LDY #&00 # Leave with zero to indicate no &0fe5 60 RTS ; process_exit_data &0fe6 a0 00 LDY #&00 &0fe8 b1 70 LDA (&70),Y ; exit_data_address &0fea c8 INY &0feb a2 00 LDX #&00 &0fed 85 8b STA &8b ; byte ; process_first_byte_of_exit_data_loop &0fef 66 8b ROR &8b ; byte &0ff1 90 06 BCC &0ff9 ; no_exit_one &0ff3 c8 INY &0ff4 b1 70 LDA (&70),Y ; exit_data_address &0ff6 4c fb 0f JMP &0ffb ; set_exit_one ; no_exit_one &0ff9 a9 00 LDA #&00 ; ROOM_NO_EXIT ; set_exit_one &0ffb 9d 80 09 STA &0980,X ; text_buffer &0ffe e8 INX &0fff e0 08 CPX #&08 &1001 d0 ec BNE &0fef ; process_first_byte_of_exit_data_loop &1003 84 89 STY &89 ; offset &1005 a0 01 LDY #&01 &1007 b1 70 LDA (&70),Y ; exit_data_address &1009 85 8b STA &8b ; byte &100b a4 89 LDY &89 ; offset ; process_second_byte_of_exit_data_loop &100d 66 8b ROR &8b ; byte &100f 90 06 BCC &1017 ; no_exit_two &1011 c8 INY &1012 b1 70 LDA (&70),Y ; exit_data_address &1014 4c 19 10 JMP &1019 ; set_exit_two ; no_exit_two &1017 a9 00 LDA #&00 ; ROOM_NO_EXIT ; set_exit_two &1019 9d 80 09 STA &0980,X ; text_buffer &101c e8 INX &101d e0 0c CPX #&0c ; DIRECTION_LAST + 1 &101f d0 ec BNE &100d ; process_second_byte_of_exit_data_loop &1021 60 RTS ; write_rating &1022 a9 21 LDA #&21 ; string_121 : "you are rated as" &1024 20 00 0e JSR &0e00 ; to_write_string_from_table_one &1027 ad b3 4d LDA &4db3 ; score &102a 4a LSR A &102b 4a LSR A &102c 4a LSR A &102d 4a LSR A &102e 18 CLC &102f 69 23 ADC #&23 ; string_223 : "pathetic" &1031 20 0c 0e JSR &0e0c ; to_write_string_from_table_two &1034 60 RTS ; unused &1035 2d ; unused &1036 20 0c 0e JSR &0e0c ; to_write_string_from_table_two &1039 60 RTS ; unused &103a f8 &103b 18 CLC &103c 6d b3 4d ADC &4db3 ; score &103f 8d b3 4d STA &4db3 ; score &1042 d8 CLD &1043 60 RTS ; to_calculate_and_write_score &1044 4c eb 1a JMP &1aeb ; calculate_and_write_score ; unused &1047 00 0e ... &0e00 ; to_write_string_from_table_one ; write_score &1049 a9 20 LDA #&20 ; " " &104b 20 71 10 JSR &1071 ; to_write_character_preserving_variables &104e ad b3 4d LDA &4db3 ; score &1051 4a LSR A &1052 4a LSR A &1053 4a LSR A &1054 4a LSR A &1055 18 CLC &1056 69 30 ADC #&30 ; "0" # Write tens &1058 20 71 10 JSR &1071 ; to_write_character_preserving_variables &105b ad b3 4d LDA &4db3 ; score &105e 29 0f AND #&0f &1060 18 CLC &1061 69 30 ADC #&30 ; "0" # Write units &1063 20 71 10 JSR &1071 ; to_write_character_preserving_variables &1066 a9 20 LDA #&20 ; " " &1068 20 71 10 JSR &1071 ; to_write_character_preserving_variables &106b a9 22 LDA #&22 ; string_222 : " out of 100 " &106d 20 0c 0e JSR &0e0c ; to_write_string_from_table_two &1070 60 RTS ; to_write_character_preserving_variables &1071 4c 72 24 JMP &2472 ; write_character_preserving_variables ; unused &1074 60 RTS ; to_write_spaces_until_start_of_line_preserving_variables &1075 4c 68 24 JMP &2468 ; write_spaces_until_start_of_line_preserving_variables ; unused &1078 ee ff ... &ffee ; OSWRCH ; unused &107a a9 0d LDA #&0d ; CR &107c 20 ee ff JSR &ffee ; OSWRCH &107f 60 RTS ; find_room_exits &1080 85 8f STA &8f ; rooms_to_skip &1082 85 80 STA &80 ; room &1084 a9 00 LDA #&00 &1086 85 70 STA &70 ; exit_data_address_low &1088 a9 4c LDA #&4c ; &4c00 = exit_data &108a 85 71 STA &71 ; exit_data_address_high &108c c6 8f DEC &8f ; rooms_to_skip &108e f0 25 BEQ &10b5 ; skip_finding_room ; find_room_exit_data_loop &1090 a0 00 LDY #&00 &1092 b1 70 LDA (&70),Y ; exit_data_address &1094 20 b1 0f JSR &0fb1 ; count_set_bits_in_A # Returns number of set bits in X &1097 86 8e STX &8e ; count &1099 a0 01 LDY #&01 &109b b1 70 LDA (&70),Y ; exit_data_address &109d 20 b1 0f JSR &0fb1 ; count_set_bits_in_A # Returns number of set bits in X &10a0 e8 INX &10a1 e8 INX &10a2 8a TXA &10a3 18 CLC &10a4 65 8e ADC &8e ; count &10a6 18 CLC &10a7 65 70 ADC &70 ; exit_data_address_low &10a9 85 70 STA &70 ; exit_data_address_low &10ab a5 71 LDA &71 ; exit_data_address_high &10ad 69 00 ADC #&00 &10af 85 71 STA &71 ; exit_data_address_high &10b1 c6 8f DEC &8f ; rooms_to_skip &10b3 d0 db BNE &1090 ; find_room_exit_data_loop ; skip_finding_room &10b5 20 e6 0f JSR &0fe6 ; process_exit_data &10b8 a5 80 LDA &80 ; room &10ba c9 5f CMP #&5f ; ROOM_5f ; "in a tall ornate corridor with a large slippery chute that enters through the wall and ,with a foothold ,would be climbable" &10bc d0 0c BNE &10ca ; skip_adding_spike_exit ; consider_spike &10be ad 00 4e LDA &4e00 ; object_locations + OBJECT_SPIKE &10c1 c9 fe CMP #&fe ; ROOM_IN_WALL &10c3 d0 05 BNE &10ca ; skip_adding_spike_exit &10c5 a9 60 LDA #&60 ; ROOM_60 ; "at the top of the chute ,surrounded by gratings in the air conditioning system" &10c7 8d 88 09 STA &0988 ; temporary_room_exits + DIRECTION_UP ; skip_adding_spike_exit &10ca a5 80 LDA &80 ; room &10cc c9 49 CMP #&49 ; ROOM_49 ; "in a very dark and apparently empty room at the end of a small but steep passage" &10ce f0 07 BEQ &10d7 ; consider_trapdoor &10d0 c9 36 CMP #&36 ; ROOM_36 ; "at the entrance to the quarantine area ,by a small bare registration desk" &10d2 f0 03 BEQ &10d7 ; consider_trapdoor &10d4 4c e7 10 JMP &10e7 ; to_consider_changing_exits ; consider_trapdoor &10d7 ad a8 4d LDA &4da8 ; trapdoor_state &10da d0 0a BNE &10e6 ; leave &10dc a5 80 LDA &80 ; room &10de 29 01 AND #&01 &10e0 a8 TAY &10e1 a9 00 LDA #&00 ; ROOM_NO_EXIT &10e3 99 88 09 STA &0988,Y ; temporary_room_exits + DIRECTION_UP ; leave &10e6 60 RTS ; to_consider_changing_exits &10e7 4c f4 24 JMP &24f4 ; consider_changing_exits ; unused &10ea 0a ; consider_exhibition_hall_west_exit &10eb ad ab 4d LDA &4dab ; exhibition_hall_force_field_state &10ee f0 05 BEQ &10f5 ; leave &10f0 a9 64 LDA #&64 ; ROOM_64 ; "beside a large scarlet door containing a small microphone" &10f2 8d 83 09 STA &0983 ; temporary_room_exits + DIRECTION_WEST ; leave &10f5 60 RTS ; consider_quit &10f6 c0 11 CPY #&11 ; VERB_QUIT &10f8 d0 0b BNE &1105 ; consider_drop ; handle_quit &10fa 20 c2 0f JSR &0fc2 ; are_you_sure &10fd 98 TYA &10fe f0 04 BEQ &1104 ; leave &1100 a9 ff LDA #&ff ; ROOM_DEAD &1102 85 78 STA &78 ; player_room ; leave &1104 60 RTS ; consider_drop &1105 c0 14 CPY #&14 ; VERB_DROP &1107 f0 03 BEQ &110c ; handle_drop &1109 4c 9b 11 JMP &119b ; consider_get ; handle_drop &110c a5 51 LDA &51 ; first_noun &110e c9 64 CMP #&64 ; NOUN_TAXI &1110 90 06 BCC &1118 ; handle_drop_noun &1112 a9 15 LDA #&15 ; string_115 : "you can't carry that to begin with" &1114 20 00 0e JSR &0e00 ; to_write_string_from_table_one &1117 60 RTS ; handle_drop_noun &1118 c9 14 CMP #&14 ; NOUN_OBJECT_FIRST &111a b0 06 BCS &1122 ; handle_drop_object &111c a9 16 LDA #&16 ; string_116 : "you can't drop things you're not carrying" &111e 20 00 0e JSR &0e00 ; to_write_string_from_table_one &1121 60 RTS ; handle_drop_object &1122 38 SEC &1123 e9 14 SBC #&14 ; NOUN_OBJECT_FIRST &1125 a8 TAY &1126 b9 00 4e LDA &4e00,Y ; object_locations &1129 f0 0a BEQ &1135 ; handle_drop_carried_object &112b c9 c8 CMP #&c8 ; ROOM_WEARING &112d f0 10 BEQ &113f ; handle_drop_carried_or_worn_object &112f a9 17 LDA #&17 ; string_117 : "you're not carrying that" &1131 20 00 0e JSR &0e00 ; to_write_string_from_table_one &1134 60 RTS ; handle_drop_carried_object &1135 c0 05 CPY #&05 ; OBJECT_GUNGE &1137 d0 06 BNE &113f ; handle_drop_carried_or_worn_object &1139 a9 18 LDA #&18 ; string_118 : "its stuck to your hand" &113b 20 00 0e JSR &0e00 ; to_write_string_from_table_one &113e 60 RTS ; handle_drop_carried_or_worn_object &113f a5 78 LDA &78 ; player_room &1141 c9 04 CMP #&04 ; ROOM_04 ; "beside a spaceship on one of many vast platforms in space ,all visited by some large droids saying '#FOR HIRE BUT FREE FOR ALL TODAY'" &1143 d0 0b BNE &1150 ; not_in_space &1145 a9 fd LDA #&fd ; ROOM_LOST &1147 99 00 4e STA &4e00,Y ; object_locations &114a a9 19 LDA #&19 ; string_119 : "it floats away" &114c 20 00 0e JSR &0e00 ; to_write_string_from_table_one &114f 60 RTS ; not_in_space &1150 c9 0a CMP #&0a ; ROOM_0a ; "inside the taxi with some buttons marked 0 to 9 and a sign saying '#TYPE CODE'" &1152 f0 41 BEQ &1195 ; no_littering_the_taxi &1154 c9 66 CMP #&66 ; ROOM_66 ; "in the taxi.You can see a vast platform in space through the window" &1156 f0 3d BEQ &1195 ; no_littering_the_taxi &1158 a5 78 LDA &78 ; player_room &115a 99 00 4e STA &4e00,Y ; object_locations &115d c9 4b CMP #&4b ; ROOM_4b ; "on a small gallery that overlooks the magnolab" &115f d0 2e BNE &118f ; not_ball_in_gallery &1161 c0 07 CPY #&07 ; OBJECT_BALL_BEARING &1163 d0 2a BNE &118f ; not_ball_in_gallery &1165 a9 3f LDA #&3f ; string_13f : "the ball rolls over the edge " &1167 20 00 0e JSR &0e00 ; to_write_string_from_table_one &116a a9 4c LDA #&4c ; ROOM_4c ; "in the magnolab ,which is really just a long corridor with vast magnets forming both walls" &116c 8d 07 4e STA &4e07 ; object_locations + OBJECT_BALL_BEARING &116f ad a0 4d LDA &4da0 ; lever_state &1172 d0 06 BNE &117a ; is_shot_right_through_the_man &1174 a9 45 LDA #&45 ; string_245 : "and falls to the ground" &1176 20 0c 0e JSR &0e0c ; to_write_string_from_table_two &1179 60 RTS ; is_shot_right_through_the_man &117a a9 46 LDA #&46 ; string_246 : "and ,upon entering the field ,is shot right through the man" &117c 20 0c 0e JSR &0e0c ; to_write_string_from_table_two &117f ad a9 4d LDA &4da9 ; squeeky_voice_man_state &1182 f0 0a BEQ &118e ; leave &1184 a9 f3 LDA #&f3 ; ROOM_IN_MAN &1186 8d 07 4e STA &4e07 ; object_locations + OBJECT_BALL_BEARING &1189 a9 00 LDA #&00 # Set to zero to indicate squeeky voice man is dead &118b 8d a9 4d STA &4da9 ; squeeky_voice_man_state ; leave &118e 60 RTS ; not_ball_in_gallery &118f a9 34 LDA #&34 ; string_134 : "ok" &1191 20 00 0e JSR &0e00 ; to_write_string_from_table_one &1194 60 RTS ; no_littering_the_taxi &1195 a9 1a LDA #&1a ; string_11a : "no littering the taxi" &1197 20 00 0e JSR &0e00 ; to_write_string_from_table_one &119a 60 RTS ; consider_get &119b c0 29 CPY #&29 ; VERB_GET &119d f0 03 BEQ &11a2 ; handle_get &119f 4c 9c 12 JMP &129c ; consider_inventory ; handle_get &11a2 a0 00 LDY #&00 ; find_end_of_word_loop &11a4 b9 e0 07 LDA &07e0,Y ; input_buffer &11a7 c8 INY &11a8 c9 20 CMP #&20 ; " " &11aa f0 07 BEQ &11b3 ; found_end_of_word &11ac c9 0d CMP #&0d ; CR &11ae d0 f4 BNE &11a4 ; find_end_of_word_loop &11b0 4c 5c 12 JMP &125c ; handle_get_all ; found_end_of_word &11b3 a5 51 LDA &51 ; first_noun &11b5 c9 05 CMP #&05 ; NOUN_ALL &11b7 d0 03 BNE &11bc ; handle_get_noun &11b9 4c 5c 12 JMP &125c ; handle_get_all ; handle_get_noun &11bc c9 64 CMP #&64 ; NOUN_TAXI &11be 90 06 BCC &11c6 ; consider_get_object &11c0 a9 1b LDA #&1b ; string_11b : "too heavy" &11c2 20 00 0e JSR &0e00 ; to_write_string_from_table_one &11c5 60 RTS ; consider_get_object &11c6 c9 14 CMP #&14 ; NOUN_OBJECT_FIRST &11c8 b0 06 BCS &11d0 ; handle_get_object &11ca a9 1c LDA #&1c ; string_11c : "get what?" &11cc 20 00 0e JSR &0e00 ; to_write_string_from_table_one &11cf 60 RTS ; handle_get_object &11d0 38 SEC &11d1 e9 14 SBC #&14 ; NOUN_OBJECT_FIRST &11d3 a8 TAY &11d4 c9 3c CMP #&3c ; NOUN_GREEN &11d6 b0 2b BCS &1203 ; handle_get_colour &11d8 b9 00 4e LDA &4e00,Y ; object_locations &11db d0 06 BNE &11e3 ; handle_get_object_not_already_carried &11dd a9 27 LDA #&27 ; string_127 : "you are already carrying that" &11df 20 00 0e JSR &0e00 ; to_write_string_from_table_one &11e2 60 RTS ; handle_get_object_not_already_carried &11e3 c9 c8 CMP #&c8 ; ROOM_WEARING &11e5 d0 06 BNE &11ed ; handle_get_object_not_already_carried_or_worn &11e7 a9 28 LDA #&28 ; string_128 : "you are already wearing that" &11e9 20 00 0e JSR &0e00 ; to_write_string_from_table_one &11ec 60 RTS ; handle_get_object_not_already_carried_or_worn &11ed c5 78 CMP &78 ; player_room &11ef f0 49 BEQ &123a ; handle_get_present_object &11f1 c9 fc CMP #&fc ; ROOM_IN_HELMET &11f3 d0 39 BNE &122e ; to_consider_get_object_from_lugobot &11f5 98 TYA &11f6 d0 36 BNE &122e ; to_consider_get_object_from_lugobot &11f8 ad 02 4e LDA &4e02 ; object_locations + OBJECT_HELMET &11fb f0 3d BEQ &123a ; handle_get_present_object ; you_can't_see_that_here &11fd a9 1d LDA #&1d ; string_11d : "you can't see that here" &11ff 20 00 0e JSR &0e00 ; to_write_string_from_table_one &1202 60 RTS ; handle_get_colour &1203 a5 78 LDA &78 ; player_room &1205 c9 11 CMP #&11 ; ROOM_11 ; "in the Biolab ,near a small table that is covered in gunge" &1207 d0 f4 BNE &11fd ; you_can't_see_that_here &1209 a5 74 LDA &74 ; last_noun &120b c9 19 CMP #&19 ; NOUN_GUNGE &120d d0 25 BNE &1234 ; please_elaborate &120f a5 51 LDA &51 ; first_noun &1211 38 SEC &1212 e9 50 SBC #&50 ; NOUN_GREEN &1214 cd b6 4d CMP &4db6 ; safe_gunge_colour &1217 d0 0b BNE &1224 ; you_touch_it_and_fall_silently_to_the_floor &1219 a9 00 LDA #&00 ; ROOM_CARRYING &121b 8d 05 4e STA &4e05 ; object_locations + OBJECT_GUNGE &121e a9 34 LDA #&34 ; string_134 : "ok" &1220 20 00 0e JSR &0e00 ; to_write_string_from_table_one &1223 60 RTS ; you_touch_it_and_fall_silently_to_the_floor &1224 a9 7b LDA #&7b ; string_17b : "you touch it and fall silently to the floor" &1226 20 00 0e JSR &0e00 ; to_write_string_from_table_one &1229 a9 ff LDA #&ff ; ROOM_DEAD &122b 85 78 STA &78 ; player_room &122d 60 RTS ; to_consider_get_object_from_lugobot &122e 4c 29 15 JMP &1529 ; consider_get_object_from_lugobot ; unused &1231 00 0e ... &0e00 ; to_write_string_from_table_one ; leave &1233 60 RTS ; please_elaborate &1234 a9 35 LDA #&35 ; "please elaborate" &1236 20 00 0e JSR &0e00 ; to_write_string_from_table_one &1239 60 RTS ; handle_get_present_object # Called with Y = object offset &123a a5 51 LDA &51 ; first_noun &123b c9 19 CMP #&19 ; NOUN_GUNGE &123d f0 f4 BEQ &1233 ; leave &1240 84 4c STY &4c ; object &1242 20 e6 0e JSR &0ee6 ; count_carried_objects # Returns number of objects carried in X &1245 e0 07 CPX #&07 &1247 90 06 BCC &124f ; inventory_not_full &1249 a9 04 LDA #&04 ; string_104 : "you can't carry anything else" &124b 20 00 0e JSR &0e00 ; to_write_string_from_table_one &124e 60 RTS ; inventory_not_full &124f a4 4c LDY &4c ; object &1251 4c 47 15 JMP &1547 ; consider_get_dog ; unused &1254 00 4e ... &4e00 ; object_locations &1256 a9 34 LDA #&39 ; string_134 : "ok" &1258 20 00 0e JSR &0e00 ; to_write_string_from_table_one &125b 60 RTS ; handle_get_all &125c a0 00 LDY #&00 &125e a2 00 LDX #&00 ; consider_objects_to_get_loop &1260 84 4c STY &4c ; tmp_y &1262 86 4d STX &4d ; tmp_x &1264 20 e6 0e JSR &0ee6 ; count_carried_objects # Returns number of objects carried in X &1267 e0 07 CPX #&07 &1269 b0 2b BCS &1296 ; you_can't_carry_anything_else &126b a6 4d LDX &4d ; tmp_x &126d a4 4c LDY &4c ; tmp_y &126f b9 00 4e LDA &4e00,Y ; object_locations &1272 c5 78 CMP &78 ; player_room &1274 f0 0e BEQ &1284 ; get_object ; consider_next_object &1276 c8 INY &1277 c0 1b CPY #&1b ; OBJECT_LAST + 1 &1279 d0 e5 BNE &1260 ; consider_objects_to_get_loop &127b 8a TXA &127c d0 05 BNE &1283 ; leave &127e a9 1e LDA #&1e ; string_11e : "there is nothing here to get" &1280 20 00 0e JSR &0e00 ; to_write_string_from_table_one ; leave &1283 60 RTS ; get_object &1284 a9 00 LDA #&00 ; ROOM_CARRYING &1286 99 00 4e STA &4e00,Y ; object_locations &1289 e8 INX &128a a5 51 LDA &51 ; first_noun &128c c9 05 CMP #&05 ; NOUN_ALL &128e f0 e6 BEQ &1276 ; consider_next_object &1290 a9 34 LDA #&34 ; string_134 : "ok" &1292 20 00 0e JSR &0e00 ; to_write_string_from_table_one &1295 60 RTS ; you_can't_carry_anything_else &1296 a9 04 LDA #&04 ; string_104 : "you can't carry anything else" &1298 20 00 0e JSR &0e00 ; to_write_string_from_table_one &129b 60 RTS ; consider_inventory &129c c0 0f CPY #&0f ; VERB_INVENTORY &129e d0 40 BNE &12e0 ; consider_score ; handle_inventory &12a0 a5 51 LDA &51 ; first_noun &12a2 c9 65 CMP #&65 ; NOUN_LUGOBOT &12a4 f0 18 BEQ &12be ; handle_inventory_lugobot &12a6 a9 1f LDA #&1f ; string_11f : "you are carrying " &12a8 20 00 0e JSR &0e00 ; to_write_string_from_table_one &12ab a9 00 LDA #&00 ; ROOM_CARRYING &12ad 85 11 STA &11 ; room_to_check &12af 20 47 0f JSR &0f47 ; list_objects_in_room &12b2 a9 30 LDA #&30 ; string_130 : "you are wearing " &12b4 20 00 0e JSR &0e00 ; to_write_string_from_table_one &12b7 a9 c8 LDA #&c8 ; ROOM_WEARING &12b9 85 11 STA &11 ; room_to_check &12bb 20 47 0f JSR &0f47 ; list_objects_in_room ; handle_inventory_lugobot &12be ad a3 4d LDA &4da3 ; lugobot_room # Zero if lugobot is following player &12c1 f0 04 BEQ &12c7 ; lugobot_present &12c3 c5 78 CMP &78 ; player_room &12c5 d0 0d BNE &12d4 ; lugobot_not_present ; lugobot_present &12c7 a9 31 LDA #&31 ; string_131 : "the lugobot is carrying " &12c9 20 00 0e JSR &0e00 ; to_write_string_from_table_one &12cc a9 fa LDA #&fa ; ROOM_IN_LUGOBOT &12ce 85 11 STA &11 ; room_to_check &12d0 20 47 0f JSR &0f47 ; list_objects_in_room &12d3 60 RTS ; lugobot_not_present &12d4 a5 51 LDA &51 ; first_noun &12d6 c9 65 CMP #&65 ; NOUN_LUGOBOT &12d8 d0 a9 BNE &1283 ; leave &12da a9 32 LDA #&32 ; string_132 : "you can't see it" &12dc 20 00 0e JSR &0e00 ; to_write_string_from_table_one &12df 60 RTS ; consider_score &12e0 c0 21 CPY #&21 ; VERB_SCORE &12e2 d0 0a BNE &12ee ; consider_wear ; handle_score &12e4 20 44 10 JSR &1044 ; to_calculate_and_write_score &12e7 20 75 10 JSR &1075 ; to_write_spaces_until_start_of_line_preserving_variables &12ea 20 22 10 JSR &1022 ; write_rating &12ed 60 RTS ; consider_wear &12ee c0 28 CPY #&28 ; VERB_WEAR &12f0 d0 71 BNE &1363 ; consider_sit ; handle_wear &12f2 a5 51 LDA &51 ; first_noun &12f4 d0 06 BNE &12fc ; handle_wear_noun &12f6 a9 1c LDA #&1c ; string_11c : "get what?" &12f8 20 00 0e JSR &0e00 ; to_write_string_from_table_one &12fb 60 RTS ; handle_wear_noun &12fc 38 SEC &12fd e9 15 SBC #&15 ; NOUN_SUIT # First wearable object &12ff 85 80 STA &80 ; wearable_object_offset &1301 c9 02 CMP #&02 ; 1 + NOUN_HELMET - NOUN_SUIT &1303 b0 21 BCS &1326 ; handle_wear_object &1305 a8 TAY &1306 f0 39 BEQ &1341 ; wear_object # Zero if OBJECT_SUIT ; handle_wear_helmet &1308 ad 12 4e LDA &4e12 ; object_locations + OBJECT_SPECS &130b c9 c8 CMP #&c8 ; ROOM_WEARING &130d f0 11 BEQ &1320 ; you_area_already_wearing_something_on_your_head &130f ad 00 4e LDA &4e00 ; object_locations + OBJECT_SPIKE &1312 c9 fc CMP #&fc ; ROOM_IN_HELMET &1314 d0 2b BNE &1341 ; wear_object &1316 a9 2e LDA #&2e ; string_12e : "be careful what you wear" &1318 20 00 0e JSR &0e00 ; to_write_string_from_table_one &131b a9 ff LDA #&ff ; ROOM_DEAD &131d 85 78 STA &78 ; player_room &131f 60 RTS ; you_area_already_wearing_something_on_your_head &1320 a9 2f LDA #&2f ; string_12f : "you are already wearing something on your head" &1322 20 00 0e JSR &0e00 ; to_write_string_from_table_one &1325 60 RTS ; handle_wear_object &1326 c9 11 CMP #&11 ; NOUN_SPECS - &15 &1328 f0 0a BEQ &1334 ; consider_wearing_specs &132a c9 07 CMP #&07 ; NOUN_GYRO - &15 &132c f0 13 BEQ &1341 ; wear_object &132e a9 29 LDA #&29 ; string_129 : "now you are getting silly" &1330 20 00 0e JSR &0e00 ; to_write_string_from_table_one &1333 60 RTS ; consider_wearing_specs &1334 ad 02 4e LDA &4e02 ; object_locations + OBJECT_HELMET &1337 c9 c8 CMP #&c8 ; ROOM_WEARING &1339 d0 06 BNE &1341 ; wear_object &133b a9 2f LDA #&2f ; string_12f : "you are already wearing something on your head" &133d 20 00 0e JSR &0e00 ; to_write_string_from_table_one &1340 60 RTS ; wear_object &1341 a4 80 LDY &80 ; wearable_object_offset &1343 c8 INY &1344 b9 00 4e LDA &4e00,Y ; object_locations &1347 f0 14 BEQ &135d ; set_object_wearing &1349 c5 78 CMP &78 ; player_room &134b f0 10 BEQ &135d ; set_object_wearing &134d c9 c8 CMP #&c8 ; ROOM_WEARING &134f f0 06 BEQ &1357 ; you_are_already_wearing_that &1351 a9 1d LDA #&1d ; string_11d : "you can't see that here" &1353 20 00 0e JSR &0e00 ; to_write_string_from_table_one &1356 60 RTS ; you_are_already_wearing_that &1357 a9 28 LDA #&28 ; string_128 : "you are already wearing that" &1359 20 00 0e JSR &0e00 ; to_write_string_from_table_one &135c 60 RTS ; set_object_wearing &135d a9 c8 LDA #&c8 ; ROOM_WEARING &135f 4c a4 23 JMP &23a4 ; set_object_location_and_write_ok &1362 60 RTS ; consider_sit &1363 c0 1b CPY #&1b ; VERB_SIT &1365 d0 66 BNE &13cd ; consider_say ; handle_sit &1367 a5 51 LDA &51 ; first_noun &1369 c9 65 CMP #&65 ; NOUN_LUGOBOT &136b d0 25 BNE &1392 ; consider_sit_on_nothing ; handle_sit_on_lugobot &136d ad a3 4d LDA &4da3 ; lugobot_room # Zero if lugobot is following player &1370 f0 0a BEQ &137c ; handle_sit_on_present_lugobot &1372 c5 78 CMP &78 ; player_room &1374 d0 06 BNE &137c ; handle_sit_on_present_lugobot &1376 a9 1d LDA #&1d ; string_11d : "you can't see that here" &1378 20 00 0e JSR &0e00 ; to_write_string_from_table_one &137b 60 RTS ; handle_sit_on_present_lugobot &137c ad ad 4d LDA &4dad ; sitting_on_lugobot &137f f0 06 BEQ &1387 ; sit_on_lugobot &1381 a9 33 LDA #&33 ; string_133 : "you are already doing that" &1383 20 00 0e JSR &0e00 ; to_write_string_from_table_one &1386 60 RTS ; sit_on_lugobot &1387 a9 01 LDA #&01 # Set to non-zero to indicate player sitting on lugobot &1389 8d ad 4d STA &4dad ; sitting_on_lugobot &138c a9 34 LDA #&34 ; string_134 : "ok" &138e 20 00 0e JSR &0e00 ; to_write_string_from_table_one &1391 60 RTS ; consider_sit_on_nothing &1392 a8 TAY &1393 d0 06 BNE &139b ; consider_sit_on_chair ; handle_sit_on_nothing &1395 a9 35 LDA #&35 ; string_135 : "please elaborate" &1397 20 00 0e JSR &0e00 ; to_write_string_from_table_one &139a 60 RTS ; consider_sit_on_chair &139b c9 6d CMP #&6d ; NOUN_CHAIR &139d d0 1a BNE &13b9 ; consider_sit_on_monkey_or_dog ; handle_sit_on_chair &139f a5 78 LDA &78 ; player_room &13a1 c9 32 CMP #&32 ; ROOM_32 ; "in the radiation therapy operating theatre ,a small room with a couch" &13a3 f0 0e BEQ &13b3 ; handle_sit_on_present_chair &13a5 c9 07 CMP #&07 ; ROOM_07 ; "in the arrivals area with many old chairs around a closed bar and a small ,dark stairway" &13a7 f0 0a BEQ &13b3 ; handle_sit_on_present_chair &13a9 c9 09 CMP #&09 ; ROOM_09 ; "in the departure area with some very old chairs and a waiting taxi droid" &13ab f0 06 BEQ &13b3 ; handle_sit_on_present_chair &13ad a9 1d LDA #&1d ; string_11d : "you can't see that here" &13af 20 00 0e JSR &0e00 ; to_write_string_from_table_one &13b2 60 RTS ; handle_sit_on_present_chair &13b3 a9 36 LDA #&36 ; string_136 : "don't be lazy" &13b5 20 00 0e JSR &0e00 ; to_write_string_from_table_one &13b8 60 RTS ; consider_sit_on_monkey_or_dog &13b9 c9 21 CMP #&21 ; NOUN_MONKEY &13bb f0 0a BEQ &13c7 ; don't_do_that &13bd c9 22 CMP #&22 ; NOUN_DOG &13bf f0 06 BEQ &13c7 ; don't_do_that &13c1 a9 29 LDA #&29 ; string_129 : "now you are getting silly" &13c3 20 00 0e JSR &0e00 ; to_write_string_from_table_one &13c6 60 RTS ; don't_do_that &13c7 a9 37 LDA #&37 ; string_137 : "dont do that" &13c9 20 00 0e JSR &0e00 ; to_write_string_from_table_one &13cc 60 RTS ; consider_say &13cd c0 1e CPY #&1e ; VERB_SAY &13cf f0 03 BEQ &13d4 ; handle_say &13d1 4c 67 14 JMP &1467 ; consider_open ; handle_say &13d4 a5 51 LDA &51 ; first_noun &13d6 c9 64 CMP #&64 ; NOUN_TAXI &13d8 d0 31 BNE &140b ; consider_say_fred ; handle_say_taxi &13da a5 78 LDA &78 ; player_room &13dc c9 09 CMP #&09 ; ROOM_09 ; "in the departure area with some very old chairs and a waiting taxi droid" &13de d0 06 BNE &13e6 ; not_in_departure_area &13e0 a9 39 LDA #&39 ; string_139 : "you are looking at it" &13e2 20 00 0e JSR &0e00 ; to_write_string_from_table_one &13e5 60 RTS ; not_in_departure_area &13e6 c9 04 CMP #&04 ; ROOM_04 ; "beside a spaceship on one of many vast platforms in space ,all visited by some large droids saying '#FOR HIRE BUT FREE FOR ALL TODAY'" &13e8 d0 0d BNE &13f7 ; not_in_space &13ea a9 3a LDA #&3a ; string_13a : "a taxi takes you to customs" &13ec 20 00 0e JSR &0e00 ; to_write_string_from_table_one &13ef a9 05 LDA #&05 ; ROOM_05 ; "at customs ,standing on another space platform in front of a large archway that leads into the space station" &13f1 85 78 STA &78 ; player_room &13f3 20 a0 0f JSR &0fa0 ; to_initialise_room_exits &13f6 60 RTS ; not_in_space &13f7 c9 0a CMP #&0a ; ROOM_0a ; "inside the taxi with some buttons marked 0 to 9 and a sign saying '#TYPE CODE'" &13f9 f0 0a BEQ &1405 ; now_you_are_getting_silly &13fb c9 66 CMP #&66 ; ROOM_66 ; "in the taxi.You can see a vast platform in space through the window" &13fd f0 06 BEQ &1405 ; now_you_are_getting_silly &13ff a9 3b LDA #&3b ; string_13b : "a taxi here?" &1401 20 00 0e JSR &0e00 ; to_write_string_from_table_one &1404 60 RTS ; now_you_are_getting_silly &1405 a9 29 LDA #&29 ; string_129 : "now you are getting silly" &1407 20 00 0e JSR &0e00 ; to_write_string_from_table_one &140a 60 RTS ; consider_say_fred &140b 20 35 14 JSR &1435 ; say_or_squeak &140e a5 51 LDA &51 ; first_noun &1410 c9 5a CMP #&5a ; NOUN_FRED &1412 d0 20 BNE &1434 ; leave &1414 a5 78 LDA &78 ; player_room &1416 c9 64 CMP #&64 ; ROOM_64 ; "beside a large scarlet door containing a small microphone" &1418 d0 1a BNE &1434 ; leave &141a ad b4 4d LDA &4db4 ; gunman_state # Non-zero if man aiming gun is dead &141d d0 15 BNE &1434 ; leave &141f ad ac 4d LDA &4dac ; gas_timer &1422 f0 0b BEQ &142f ; i_don't_know_you &1424 a9 41 LDA #&41 ; string_241 : "The door opens" &1426 20 0c 0e JSR &0e0c ; to_write_string_from_table_two &1429 a9 65 LDA #&65 ; ROOM_65 ; "in a small sideroom with a neat little desk and a comfy looking seat" &142b 8d fa 61 STA &61fa ; room_exits + DIRECTION_IN &142e 60 RTS ; i_don't_know_you &142f a9 42 LDA #&42 ; string_242 : "'I don't know you'" &1431 20 0c 0e JSR &0e0c ; to_write_string_from_table_two ; leave &1434 60 RTS ; say_or_squeak &1435 ad ac 4d LDA &4dac ; gas_timer &1438 f0 08 BEQ &1442 ; you_say &143a a9 43 LDA #&43 ; string_243 : "you squeek " &143c 20 0c 0e JSR &0e0c ; to_write_string_from_table_two &143f 4c 47 14 JMP &1447 ; write_speech ; you_say &1442 a9 44 LDA #&44 ; string_244 : "you say " &1444 20 0c 0e JSR &0e0c ; to_write_string_from_table_two ; write_speech &1447 a9 22 LDA #&22 ; """ &1449 20 71 10 JSR &1071 ; to_write_character_preserving_variables &144c ac ff 63 LDY &63ff ; speech_offset &144f c8 INY ; write_speech_loop &1450 b9 e0 07 LDA &07e0,Y ; input_buffer &1453 c9 0d CMP #&0d ; CR &1455 f0 07 BEQ &145e ; finished_writing_speech &1457 20 71 10 JSR &1071 ; to_write_character_preserving_variables &145a c8 INY &145b 4c 50 14 JMP &1450 ; write_speech_loop ; finished_writing_speech &145e a9 22 LDA #&22 ; """ &1460 20 71 10 JSR &1071 ; to_write_character_preserving_variables &1463 20 75 10 JSR &1075 ; to_write_spaces_until_start_of_line_preserving_variables &1466 60 RTS ; consider_open &1467 c0 20 CPY #&20 ; VERB_OPEN &1469 f0 03 BEQ &146e ; handle_open &146b 4c f3 14 JMP &14f3 ; consider_pull ; handle_open &146e a5 51 LDA &51 ; first_noun &1470 c9 67 CMP #&67 ; NOUN_DOOR &1472 d0 59 BNE &14cd ; consider_open_gas ; handle_open_door &1474 a5 78 LDA &78 ; player_room &1476 c9 64 CMP #&64 ; ROOM_64 ; "beside a large scarlet door containing a small microphone" &1478 f0 16 BEQ &1490 ; it_is_jammed_stuck &147a c9 25 CMP #&25 ; ROOM_25 ; "at the south end of the hall ,away from the market but next to a large handprint key door" &147c f0 12 BEQ &1490 ; it_is_jammed_stuck &147e c9 49 CMP #&49 ; ROOM_49 ; "in a very dark and apparently empty room at the end of a small but steep passage" &1480 f0 1f BEQ &14a1 ; open_trapdoor &1482 c9 36 CMP #&36 ; ROOM_36 ; "at the entrance to the quarantine area ,by a small bare registration desk" &1484 f0 1b BEQ &14a1 ; open_trapdoor &1486 c9 02 CMP #&02 ; ROOM_02 ; "standing in the cockpit of your spacefighter.You can see the vast space station through the main screen beside the exit hatchway" &1488 f0 06 BEQ &1490 ; it_is_jammed_stuck &148a a9 1d LDA #&1d ; string_11d : "you can't see that here" &148c 20 00 0e JSR &0e00 ; to_write_string_from_table_one &148f 60 RTS ; it_is_jammed_stuck &1490 ad fa 61 LDA &61fa ; room_exits + DIRECTION_IN &1493 f0 06 BEQ &149b ; it_is_jammed_shut ; it's_open &1495 a9 3d LDA #&3d ; string_13d : "it's open" &1497 20 00 0e JSR &0e00 ; to_write_string_from_table_one &149a 60 RTS ; it_is_jammed_shut &149b a9 3c LDA #&3c ; string_13c : "it is jammed shut" &149d 20 00 0e JSR &0e00 ; to_write_string_from_table_one &14a0 60 RTS ; open_trapdoor &14a1 a5 78 LDA &78 ; player_room &14a3 29 01 AND #&01 &14a5 a8 TAY &14a6 b9 f8 61 LDA &61f8,Y ; room_exits + DIRECTION_UP &14a9 d0 ea BNE &1495 ; it's_open &14ab a5 78 LDA &78 ; player_room &14ad 49 7f EOR #&7f ; ROOM_49 ^ ROOM_36 &14af 99 f8 61 STA &61f8,Y ; room_exits + DIRECTION_UP &14b2 a9 34 LDA #&34 ; string_134 : "ok" &14b4 20 00 0e JSR &0e00 ; to_write_string_from_table_one &14b7 a9 01 LDA #&01 # Set to non-zero to indicate trapdoor is open &14b9 8d a8 4d STA &4da8 ; trapdoor_state &14bc 60 RTS ; unused # Unused code &14bd ad f9 61 LDA &61f9 ; room_exits + DIRECTION_DOWN &14c0 d0 d3 BNE &1495 ; it's_open &14c2 a9 34 LDA #&34 ; string_134 : "ok" &14c4 20 00 0e JSR &0e00 ; to_write_string_from_table_one &14c7 a9 36 LDA #&36 ; ROOM_36 ; "at the entrance to the quarantine area ,by a small bare registration desk" &14c9 8d f9 61 STA &61f9 ; room_exits + DIRECTION_DOWN &14cc 60 RTS ; consider_open_gas &14cd a5 51 LDA &51 ; first_noun &14cf c9 1e CMP #&1e ; NOUN_GAS &14d1 d0 1a BNE &14ed ; now_you_are_getting_silly &14d3 ad 0a 4e LDA &4e0a ; object_locations + OBJECT_GAS_CYLINDER &14d6 f0 0a BEQ &14e2 ; open_gas &14d8 c5 78 CMP &78 ; player_room &14da f0 06 BEQ &14e2 ; open_gas &14dc a9 17 LDA #&17 ; string_117 : "you're not carrying that" &14de 20 00 0e JSR &0e00 ; to_write_string_from_table_one &14e1 60 RTS ; open_gas &14e2 a9 3e LDA #&3e ; string_13e : "some gas seeps out" &14e4 20 00 0e JSR &0e00 ; to_write_string_from_table_one &14e7 a9 0c LDA #&0c &14e9 8d ac 4d STA &4dac ; gas_timer &14ec 60 RTS ; now_you_are_getting_silly &14ed a9 29 LDA #&29 ; string_129 : "now you are getting silly" &14ef 20 00 0e JSR &0e00 ; to_write_string_from_table_one &14f2 60 RTS ; consider_pull &14f3 c0 1f CPY #&1f ; VERB_PULL &14f5 d0 2f BNE &1526 ; to_consider_hammer ; handle_pull &14f7 a5 51 LDA &51 ; first_noun &14f9 c9 6e CMP #&6e ; NOUN_LEVER &14fb f0 0f BEQ &150c ; handle_pull_lever &14fd aa TAX &14fe d0 06 BNE &1506 ; you_can't_do_that &1500 a9 01 LDA #&01 ; string_101 : "i don't understand" &1502 20 00 0e JSR &0e00 ; to_write_string_from_table_one &1505 60 RTS ; you_can't_do_that &1506 a9 40 LDA #&40 ; string_140 : "you can't do that" &1508 20 00 0e JSR &0e00 ; to_write_string_from_table_one &150b 60 RTS ; handle_pull_lever &150c a5 78 LDA &78 ; player_room &150e c9 31 CMP #&31 ; ROOM_31 ; "in the generator room, full of dials ,screens and a very large lever" &1510 f0 06 BEQ &1518 ; pull_lever &1512 a9 1d LDA #&1d ; string_11d : "you can't see that here" &1514 20 00 0e JSR &0e00 ; to_write_string_from_table_one &1517 60 RTS ; pull_lever &1518 a9 34 LDA #&34 ; string_134 : "ok" &151a 20 00 0e JSR &0e00 ; to_write_string_from_table_one &151d ad a0 4d LDA &4da0 ; lever_state &1520 49 01 EOR #&01 &1522 8d a0 4d STA &4da0 ; lever_state &1525 60 RTS ; to_consider_hammer &1526 4c 8a 15 JMP &158a ; consider_hammer ; consider_get_object_from_lugobot # Called with A = object location &1529 c9 fa CMP #&fa ; ROOM_IN_LUGOBOT &152b d0 14 BNE &1541 ; to_consider_get_hidden_object &152d ad a3 4d LDA &4da3 ; lugobot_room # Zero if lugobot is following player &1530 f0 04 BEQ &1536 ; lugobot_is_present &1532 c5 78 CMP &78 ; player_room &1534 d0 0b BNE &1541 ; to_consider_get_hidden_object ; lugobot_is_present &1536 a9 00 LDA #&00 ; ROOM_CARRYING &1538 99 00 4e STA &4e00,Y ; object_locations &153b a9 34 LDA #&34 ; string_134 : "ok" &153d 20 00 0e JSR &0e00 ; to_write_string_from_table_one &1540 60 RTS ; to_consider_get_hidden_object &1541 4c 47 1a JMP &1a47 ; consider_get_hidden_object ; unused &1544 00 0e ... &0e00 ; to_write_string_from_table_one &1546 60 RTS ; consider_get_dog &1547 c0 0e CPY #&0e ; OBJECT_DOG &1549 d0 1c BNE &1567 ; write_ok_and_set_object_carrying &154b ad 0f 4e LDA &4e0f ; object_locations + OBJECT_LEASH &154e f0 0a BEQ &155a ; you_put_the_dog_on_the_leash &1550 c9 ff CMP #&ff ; ROOM_HIDDEN # &ff if leash is on dog &1552 f0 1e BEQ &1572 ; you_grab_the_dog's_leash &1554 a9 4c LDA #&4c ; string_14c : "it jumps out of your arms" &1556 20 00 0e JSR &0e00 ; to_write_string_from_table_one &1559 60 RTS ; you_put_the_dog_on_the_leash &155a a9 4d LDA #&4d ; string_14d : "you put the dog on the leash" &155c 20 00 0e JSR &0e00 ; to_write_string_from_table_one &155f a9 ff LDA #&ff ; ROOM_HIDDEN # Set to &ff to indicate leash is on dog &1561 8d 0f 4e STA &4e0f ; object_locations + OBJECT_LEASH &1564 4c 6c 15 JMP &156c ; set_object_carrying ; write_ok_and_set_object_carrying &1567 a9 34 LDA #&34 ; string_134 : "ok" &1569 20 00 0e JSR &0e00 ; to_write_string_from_table_one ; set_object_carrying &156c a9 00 LDA #&00 ; ROOM_CARRYING &156e 99 00 4e STA &4e00,Y ; object_locations &1571 60 RTS ; you_grab_the_dog's_leash &1572 a9 4e LDA #&4e ; string_14e : "you grab the dog's leash" &1574 20 00 0e JSR &0e00 ; to_write_string_from_table_one &1577 4c 6c 15 JMP &156c ; set_object_carrying ; dog_directions &157a 07 ; ROOM_3f : DIRECTION_SW &157b 02 ; ROOM_40 : DIRECTION_EAST &157c 07 ; ROOM_41 : DIRECTION_SW &157d 01 ; ROOM_42 : DIRECTION_SOUTH &157e 06 ; ROOM_43 : DIRECTION_NW &157f 00 ; ROOM_44 : DIRECTION_NORTH &1580 01 ; ROOM_45 : DIRECTION_SOUTH &1581 01 ; ROOM_46 : DIRECTION_SOUTH &1582 07 ; ROOM_47 : DIRECTION_SW &1583 00 ; ROOM_48 : DIRECTION_NORTH &1584 09 ; ROOM_49 : DIRECTION_DOWN &1585 06 ; ROOM_4a : DIRECTION_NW &1586 09 ; ROOM_4b : DIRECTION_DOWN &1587 03 ; ROOM_4c : DIRECTION_WEST &1588 03 ; ROOM_4d : DIRECTION_WEST &1589 03 ; ROOM_4e : DIRECTION_WEST ; consider_hammer &158a c0 27 CPY #&27 ; VERB_HAMMER &158c d0 47 BNE &15d5 ; consider_to ; handle_hammer &158e ad 06 4e LDA &4e06 ; object_locations + OBJECT_STAMP &1591 f0 06 BEQ &1599 ; handle_hammer_while_carrying_stamp &1593 a9 42 LDA #&42 ; string_142 : "what with?" &1595 20 00 0e JSR &0e00 ; to_write_string_from_table_one &1598 60 RTS ; handle_hammer_while_carrying_stamp &1599 a5 51 LDA &51 ; first_noun &159b c9 14 CMP #&14 ; NOUN_SPIKE &159d d0 27 BNE &15c6 ; handle_hammer_not_spike &159f ad 00 4e LDA &4e00 ; object_locations + OBJECT_SPIKE &15a2 f0 06 BEQ &15aa ; handle_hammer_spike &15a4 a9 17 LDA #&17 ; string_117 : "you're not carrying that" &15a6 20 00 0e JSR &0e00 ; to_write_string_from_table_one &15a9 60 RTS ; handle_hammer_spike &15aa a5 78 LDA &78 ; player_room &15ac c9 5f CMP #&5f ; ROOM_5f ; "in a tall ornate corridor with a large slippery chute that enters through the wall and ,with a foothold ,would be climbable" &15ae f0 06 BEQ &15b6 ; handle_hammer_spike_in_room_5f &15b0 a9 41 LDA #&41 ; string_141 : "try that somewhere else" &15b2 20 00 0e JSR &0e00 ; to_write_string_from_table_one &15b5 60 RTS ; handle_hammer_spike_in_room_5f &15b6 a9 34 LDA #&34 ; string_134 : "ok" &15b8 20 00 0e JSR &0e00 ; to_write_string_from_table_one &15bb a9 fe LDA #&fe ; ROOM_IN_WALL &15bd 8d 00 4e STA &4e00 ; object_locations + OBJECT_SPIKE &15c0 a9 60 LDA #&60 ; ROOM_60 ; "at the top of the chute ,surrounded by gratings in the air conditioning system" &15c2 8d f8 61 STA &61f8 ; room_exits + DIRECTION_UP &15c5 60 RTS ; handle_hammer_not_spike &15c6 aa TAX &15c7 f0 06 BEQ &15cf; i_don't_understand # Zero if no noun &15c9 a9 29 LDA #&29 ; string_129 : "now you are getting silly" &15cb 20 00 0e JSR &0e00 ; to_write_string_from_table_one &15ce 60 RTS ; i_don't_understand &15cf a9 01 LDA #&01 ; string_101 : "i don't understand" &15d1 20 00 0e JSR &0e00 ; to_write_string_from_table_one &15d4 60 RTS ; consider_to &15d5 c0 31 CPY #&31 ; VERB_TO &15d7 f0 03 BEQ &15dc ; handle_to &15d9 4c b3 16 JMP &16b3 ; consider_give ; handle_to &15dc a5 52 LDA &52 ; first_verb &15de c9 18 CMP #&18 ; VERB_GIVE &15e0 f0 06 BEQ &15e8 ; handle_give_to &15e2 a9 03 LDA #&03 ; string_103 : "might be _hand_y" # Bug: TO &15e4 20 00 0e JSR &0e00 ; to_write_string_from_table_one &15e7 60 RTS ; handle_give_to # GIVE OBJECT TO NOUN &15e8 a5 74 LDA &74 ; last_noun &15ea 85 52 STA &52 ; first_verb &15ec a5 51 LDA &51 ; first_noun &15ee 85 74 STA &74 ; last_noun &15f0 a5 52 LDA &52 ; first_verb &15f2 85 51 STA &51 ; first_noun ; handle_give # GIVE NOUN OBJECT &15f4 a5 74 LDA &74 ; last_noun &15f6 a8 TAY &15f7 c9 14 CMP #&14 ; NOUN_OBJECT_FIRST &15f9 90 13 BCC &160e ; you_can't_carry_that_to_begin_with &15fb c9 32 CMP #&32 ; NOUN_OBJECT_LAST + 1 &15fd b0 0f BCS &160e ; you_can't_carry_that_to_begin_with &15ff b9 ec 4d LDA &4dec,Y ; object_locations - &14 (NOUN_OBJECT_FIRST) &1602 f0 10 BEQ &1614 ; handle_give_carried_or_worn_object &1604 c9 c8 CMP #&c8 ; ROOM_WEARING &1606 f0 0c BEQ &1614 ; handle_give_carried_or_worn_object &1608 a9 17 LDA #&17 ; string_117 : "you're not carrying that" &160a 20 00 0e JSR &0e00 ; to_write_string_from_table_one &160d 60 RTS ; you_can't_carry_that_to_begin_with &160e a9 15 LDA #&15 ; string_115 : "you can't carry that to begin with" &1610 20 00 0e JSR &0e00 ; to_write_string_from_table_one &1613 60 RTS ; handle_give_carried_or_worn_object &1614 98 TYA &1615 f0 0e BEQ &1625 ; who_to &1617 c0 19 CPY #&19 ; NOUN_GUNGE &1619 d0 06 BNE &1621 ; handle_give_not_gunge &161b a9 18 LDA #&18 ; string_118 : "its stuck to your hand" &161d 20 00 0e JSR &0e00 ; to_write_string_from_table_one &1620 60 RTS ; handle_give_not_gunge &1621 a5 51 LDA &51 ; first_noun &1623 d0 06 BNE &162b ; handle_give_object_to_noun ; who_to &1625 a9 46 LDA #&46 ; string_146 : "who to ?" &1627 20 00 0e JSR &0e00 ; to_write_string_from_table_one &162a 60 RTS ; handle_give_object_to_noun &162b ea NOP &162c c9 65 CMP #&65 ; NOUN_LUGOBOT &162e f0 69 BEQ &1699 ; handle_give_object_to_lugobot &1630 c9 21 CMP #&21 ; NOUN_MONKEY &1632 f0 12 BEQ &1646 ; handle_give_object_to_monkey_or_dog &1634 c9 22 CMP #&22 ; NOUN_DOG &1636 f0 0e BEQ &1646 ; handle_give_object_to_monkey_or_dog &1638 c9 6a CMP #&6a ; NOUN_GUARDROID &163a f0 36 BEQ &1672 ; handle_give_object_to_guardroid_or_aggrogroid &163c c9 6b CMP #&6b ; NOUN_AGGRODROID &163e f0 32 BEQ &1672 ; handle_give_object_to_guardroid_or_aggrogroid &1640 a9 29 LDA #&29 ; string_129 : "now you are getting silly" &1642 20 00 0e JSR &0e00 ; to_write_string_from_table_one &1645 60 RTS ; handle_give_object_to_monkey_or_dog &1646 b9 ec 4d LDA &4dec,Y ; object_locations - &14 (NOUN_OBJECT_FIRST) &1649 f0 04 BEQ &164f ; handle_give_carried_object_to_monkey_or_dog &164b c5 78 CMP &78 ; player_room &164d d0 1d BNE &166c ; ; you_can't_see_that_here ; handle_give_carried_object_to_monkey_or_dog &164f a5 51 LDA &51 ; first_noun &1651 c9 22 CMP #&22 ; NOUN_DOG &1653 d0 11 BNE &1666 ; it_does_not_want_it &1655 a5 74 LDA &74 ; last_noun &1657 c9 17 CMP #&17 ; NOUN_SCRAP &1659 d0 0b BNE &1666 ; it_does_not_want_it &165b a9 74 LDA #&74 ; string_174 : "the dog swallows it" &165d 20 00 0e JSR &0e00 ; to_write_string_from_table_one &1660 a9 ff LDA #&ff ; ROOM_HIDDEN &1662 8d 03 4e STA &4e03 ; object_locations + OBJECT_SCRAP &1665 60 RTS ; it_does_not_want_it &1666 a9 47 LDA #&47 ; string_147 : "it does not want it" &1668 20 00 0e JSR &0e00 ; to_write_string_from_table_one &166b 60 RTS ; you_can't_see_that_here &166c a9 1d LDA #&1d ; string_11d : "you can't see that here" &166e 20 00 0e JSR &0e00 ; to_write_string_from_table_one &1671 60 RTS ; handle_give_object_to_guardroid_or_aggrogroid &1672 a8 TAY &1673 b9 3a 4d LDA &4d3a,Y ; guardroid_room - &6a (NOUN_GUARDROID) or aggrodroid_room - &6b (NOUN_AGGRODROID) &1676 c5 78 CMP &78 ; player_room &1678 d0 f2 BNE &166c ; ; you_can't_see_that_here &167a a5 74 LDA &74 ; last_noun &167c c9 2a CMP #&2a ; NOUN_FOOZBAT &167e d0 e6 BNE &1666 ; it_does_not_want_it &1680 c0 6a CPY #&6a ; NOUN_GUARDROID &1682 f0 0a BEQ &168e ; handle_give_foozbat_to_guardroid ; handle_give_foozbat_to_aggrodroid &1684 a9 73 LDA #&73 ; string_173 : "the droid takes it ,charges it ,and splits your skull with it" &1686 20 00 0e JSR &0e00 ; to_write_string_from_table_one &1689 a9 ff LDA #&ff ; ROOM_DEAD &168b 85 78 STA &78 ; player_room &168d 60 RTS ; handle_give_foozbat_to_guardroid &168e a9 ff LDA #&ff ; ROOM_HIDDEN &1690 8d 16 4e STA &4e16 ; object_locations + OBJECT_FOOZBAT &1693 a9 34 LDA #&34 ; string_134 : "ok" &1695 20 00 0e JSR &0e00 ; to_write_string_from_table_one &1698 60 RTS ; handle_give_object_to_lugobot &1699 ad a3 4d LDA &4da3 ; lugobot_room # Zero if lugobot is following player &169c f0 0a BEQ &16a8 ; handle_give_object_to_present_lugobot &169e c5 78 CMP &78 ; player_room &16a0 f0 06 BEQ &16a8 ; handle_give_object_to_present_lugobot &16a2 a9 32 LDA #&32 ; string_132 : "you can't see it" &16a4 20 00 0e JSR &0e00 ; to_write_string_from_table_one &16a7 60 RTS ; handle_give_object_to_present_lugobot &16a8 a9 fa LDA #&fa ; ROOM_IN_LUGOBOT &16aa 99 ec 4d STA &4dec,Y ; object_locations - &14 (NOUN_OBJECT_FIRST) &16ad a9 34 LDA #&34 ; string_134 : "ok" &16af 20 00 0e JSR &0e00 ; to_write_string_from_table_one &16b2 60 RTS ; consider_give &16b3 c0 18 CPY #&18 ; VERB_GIVE &16b5 d0 0a BNE &16c1 ; consider_fire &16b7 a5 74 LDA &74 ; last_noun &16b9 d0 03 BNE &16be ; to_handle_give &16bb 4c e8 15 JMP &15e8 ; handle_give_to ; to_handle_give &16be 4c f4 15 JMP &15f4 ; handle_give ; consider_fire &16c1 c0 13 CPY #&13 ; VERB_FIRE &16c3 d0 7b BNE &1740 ; consider_rub ; handle_fire &16c5 a5 51 LDA &51 ; first_noun &16c7 f0 10 BEQ &16d9 ; handle_fire_gun &16c9 c9 1f CMP #&1f ; NOUN_GUN &16cb f0 0c BEQ &16d9 ; handle_fire_gun &16cd a5 74 LDA &74 ; last_noun &16cf c9 1f CMP #&1f ; NOUN_GUN &16d1 f0 06 BEQ &16d9 ; handle_fire_gun &16d3 a9 29 LDA #&29 ; string_129 : "now you are getting silly" &16d5 20 00 0e JSR &0e00 ; to_write_string_from_table_one &16d8 60 RTS ; handle_fire_gun &16d9 ad 0b 4e LDA &4e0b ; object_locations + OBJECT_LASER_GUN &16dc f0 1d BEQ &16fb ; handle_fire_carried_gun &16de c5 78 CMP &78 ; player_room &16e0 f0 19 BEQ &16fb ; handle_fire_carried_gun &16e2 c9 fa CMP #&fa ; ROOM_IN_LUGOBOT &16e4 f0 06 BEQ &16ec ; check_if_lugobot_is_present &16e6 a9 17 LDA #&17 ; string_117 : "you're not carrying that" &16e8 20 00 0e JSR &0e00 ; to_write_string_from_table_one &16eb 60 RTS ; check_if_lugobot_is_present &16ec ad a3 4d LDA &4da3 ; lugobot_room # Zero if lugobot is following player &16ef f0 0a BEQ &16fb ; handle_fire_carried_gun &16f1 c5 78 CMP &78 ; player_room &16f3 f0 06 BEQ &16fb ; handle_fire_carried_gun &16f5 a9 17 LDA #&17 ; string_117 : "you're not carrying that" &16f7 20 00 0e JSR &0e00 ; to_write_string_from_table_one &16fa 60 RTS ; handle_fire_carried_gun &16fb a9 48 LDA #&48 ; string_148 : "a dark cloud emerges from the gun " &16fd 20 00 0e JSR &0e00 ; to_write_string_from_table_one &1700 a5 78 LDA &78 ; player_room &1702 c9 63 CMP #&63 ; ROOM_63 ; "at the west end of the desolate and deserted exhibition hall" &1704 d0 0a BNE &1710 ; explode_gun &1706 a9 01 LDA #&01 &1708 8d ab 4d STA &4dab ; exhibition_hall_force_field_state &170b a9 47 LDA #&47 ; string_247 : "and somehow collapses the field" &170d 20 0c 0e JSR &0e0c ; to_write_string_from_table_two ; explode_gun &1710 a9 49 LDA #&49 ; string_149 : "suddenly the gun explodes " &1712 20 00 0e JSR &0e00 ; to_write_string_from_table_one &1715 ad 0b 4e LDA &4e0b ; object_locations + OBJECT_LASER_GUN &1718 c9 fa CMP #&fa ; ROOM_IN_LUGOBOT &171a f0 0a BEQ &1726 ; destroy_lugobot &171c a9 48 LDA #&48 ; string_248 : "taking you with it" &171e 20 0c 0e JSR &0e0c ; to_write_string_from_table_two &1721 a9 ff LDA #&ff ; ROOM_DEAD &1723 85 78 STA &78 ; player_room &1725 60 RTS ; destroy_lugobot &1726 a9 49 LDA #&49 ; string_249 : "destroying the lugobot" &1728 20 0c 0e JSR &0e0c ; to_write_string_from_table_two &172b a5 78 LDA &78 ; player_room &172d 8d 18 4e STA &4e18 ; object_locations + OBJECT_METAL &1730 a9 ff LDA #&ff ; ROOM_HIDDEN # Set to &ff to indicate lugobot destroyed &1732 8d a3 4d STA &4da3 ; lugobot_room &1735 a9 ff LDA #&ff ; ROOM_HIDDEN # Set to &ff to indicate gun destroyed &1737 8d 0b 4e STA &4e0b ; object_locations + OBJECT_LASER_GUN &173a a9 64 LDA #&64 ; ROOM_64 ; "beside a large scarlet door containing a small microphone" &173c 8d f3 61 STA &61f3 ; room_exits + DIRECTION_WEST &173f 60 RTS ; consider_rub &1740 c0 17 CPY #&17 ; VERB_RUB &1742 d0 22 BNE &1766 ; consider_type ; handle_rub &1744 a5 51 LDA &51 ; first_noun &1746 f0 18 BEQ &1760 ; nothing_happens &1748 c9 32 CMP #&32 ; NOUN_OBJECT_LAST + 1 &174a b0 14 BCS &1760 ; nothing_happens &174c a8 TAY &174d b9 ec 4d LDA &4dec,Y ; object_locations - &14 (NOUN_OBJECT_FIRST) &1750 f0 0e BEQ &1760 ; nothing_happens &1752 c5 78 CMP &78 ; player_room &1754 f0 0a BEQ &1760 ; nothing_happens &1756 c9 c8 CMP #&c8 ; ROOM_WEARING &1758 f0 06 BEQ &1760 ; nothing_happens &175a a9 1d LDA #&1d ; string_11d : "you can't see that here" &175c 20 00 0e JSR &0e00 ; to_write_string_from_table_one &175f 60 RTS ; nothing_happens &1760 a9 4a LDA #&4a ; string_14a : "nothing happens" &1762 20 00 0e JSR &0e00 ; to_write_string_from_table_one &1765 60 RTS ; consider_type &1766 c0 1c CPY #&1c ; VERB_TYPE &1768 f0 03 BEQ &176d ; handle_type &176a 4c 11 19 JMP &1911 ; to_consider_groff_and_gron ; handle_type &176d a5 78 LDA &78 ; player_room &176f c9 26 CMP #&26 ; ROOM_26 ; "in the 'berth control' centre ,dominated by a large computer console comprising screens ,keyboards and a small slot marked 'security clearance'" &1771 f0 0e BEQ &1781 ; handle_type_code &1773 c9 0a CMP #&0a ; ROOM_0a ; "inside the taxi with some buttons marked 0 to 9 and a sign saying '#TYPE CODE'" &1775 f0 0a BEQ &1781 ; handle_type_code &1777 c9 66 CMP #&66 ; ROOM_66 ; "in the taxi.You can see a vast platform in space through the window" &1779 f0 06 BEQ &1781 ; handle_type_code &177b a9 41 LDA #&41 ; string_141 : "try that somewhere else" &177d 20 00 0e JSR &0e00 ; to_write_string_from_table_one &1780 60 RTS ; handle_type_code &1781 a0 00 LDY #&00 ; find_start_of_code_loop &1783 b9 e0 07 LDA &07e0,Y ; input_buffer &1786 c9 0d CMP #&0d ; CR &1788 f0 17 BEQ &17a1 ; invalid_input &178a c8 INY &178b c9 20 CMP #&20 ; " " &178d d0 f4 BNE &1783 ; find_start_of_code_loop &178f a2 00 LDX #&00 ; copy_code_loop &1791 b9 e0 07 LDA &07e0,Y ; input_buffer &1794 9d 80 09 STA &0980,X ; text_buffer &1797 c9 0d CMP #&0d ; CR &1799 f0 0c BEQ &17a7 ; found_end_of_code &179b c8 INY &179c e8 INX &179d e0 05 CPX #&05 &179f d0 f0 BNE &1791 ; copy_code_loop ; invalid_input &17a1 a9 4b LDA #&4b ; string_14b : "invalid input" &17a3 20 00 0e JSR &0e00 ; to_write_string_from_table_one &17a6 60 RTS ; found_end_of_code &17a7 a0 00 LDY #&00 ; check_code_loop &17a9 b9 80 09 LDA &0980,Y ; text_buffer &17ac 38 SEC &17ad e9 30 SBC #&30 ; "0" &17af 9d 84 09 STA &0984,X ; code_buffer &17b2 c9 0a CMP #&0a ; 9 + 1 &17b4 b0 eb BCS &17a1 ; invalid_input &17b6 c8 INY &17b7 ca DEX &17b8 d0 ef BNE &17a9 ; check_code_loop &17ba a5 78 LDA &78 ; player_room &17bc c9 66 CMP #&66 ; ROOM_66 ; "in the taxi.You can see a vast platform in space through the window" &17be f0 48 BEQ &1808 ; inside_berthed_taxi &17c0 a0 04 LDY #&04 &17c2 a2 00 LDX #&00 ; set_berth_number_loop &17c4 b9 84 09 LDA &0984,Y ; code_buffer &17c7 9d af 4d STA &4daf,X ; berth_number &17ca e8 INX &17cb 88 DEY &17cc d0 f6 BNE &17c4 ; set_berth_number_loop &17ce 20 2d 18 JSR &182d ; prepare_ship_details &17d1 a5 78 LDA &78 ; player_room &17d3 c9 0a CMP #&0a ; ROOM_0a ; "inside the taxi with some buttons marked 0 to 9 and a sign saying '#TYPE CODE'" &17d5 d0 0a BNE &17e1 ; in_berth_control ; inside_taxi &17d7 a9 66 LDA #&66 ; ROOM_66 ; "in the taxi.You can see a vast platform in space through the window" &17d9 85 78 STA &78 ; player_room &17db a9 56 LDA #&56 ; string_156 : "the taxi passes through space ,landing in a large berth" &17dd 20 b1 08 JSR &08b1 ; prepare_and_write_ship_details &17e0 60 RTS ; in_berth_control &17e1 20 c3 18 JSR &18c3 ; write_ship_details &17e4 a9 5e LDA #&5e ; string_15e : "#ENTRY CODE : " &17e6 20 00 0e JSR &0e00 ; to_write_string_from_table_one &17e9 ad bb 4d LDA &4dbb ; computer_state # Zero if card not inserted &17ec f0 11 BEQ &17ff ; is_restricted &17ee a0 00 LDY #&00 ; write_berth_entry_code_loop &17f0 b9 b7 4d LDA &4db7,Y ; berth_entry_code &17f3 18 CLC &17f4 69 30 ADC #&30 ; "0" &17f6 20 71 10 JSR &1071 ; to_write_character_preserving_variables &17f9 c8 INY &17fa c0 04 CPY #&04 &17fc d0 f2 BNE &17f0 ; write_berth_entry_code_loop &17fe 60 RTS ; is_restricted &17ff a9 61 LDA #&61 ; string_261 : "restricted" &1801 20 0c 0e JSR &0e0c ; to_write_string_from_table_two &1804 20 75 10 JSR &1075 ; to_write_spaces_until_start_of_line_preserving_variables &1807 60 RTS ; inside_berthed_taxi &1808 a0 04 LDY #&04 &180a a2 00 LDX #&00 ; check_entry_code_loop &180c b9 84 09 LDA &0984,Y ; code_buffer &180f dd b7 4d CMP &4db7,X ; berth_entry_code &1812 d0 0f BNE &1823 ; wrong_code &1814 e8 INX &1815 88 DEY &1816 d0 f4 BNE &180c ; check_entry_code_loop &1818 a9 57 LDA #&57 ; string_157 : "the sign switches to 'berth'" &181a 20 00 0e JSR &0e00 ; to_write_string_from_table_one &181d a9 04 LDA #&04 ; ROOM_04 ; "beside a spaceship on one of many vast platforms in space ,all visited by some large droids saying '#FOR HIRE BUT FREE FOR ALL TODAY'" &181f 4c 0a 25 JMP &250a ; set_out_room_and_computer_state ; unused &1822 60 RTS ; wrong_code &1823 a9 58 LDA #&58 ; string_158 : "wrong code ,you are returned to departure" &1825 20 00 0e JSR &0e00 ; to_write_string_from_table_one &1828 a9 09 LDA #&09 ; ROOM_09 ; "in the departure area with some very old chairs and a waiting taxi droid" &182a 85 78 STA &78 ; player_room &182c 60 RTS ; prepare_ship_details &182d ad b2 4d LDA &4db2 ; berth_number + 3 &1830 29 03 AND #&03 &1832 0a ASL A &1833 0a ASL A &1834 8d bc 4d STA &4dbc ; berth_ship_type &1837 ad af 4d LDA &4daf ; berth_number &183a 29 0c AND #&0c &183c 4a LSR A &183d 4a LSR A &183e 18 CLC &183f 6d bc 4d ADC &4dbc ; berth_ship_type &1842 4d af 4d EOR &4daf ; berth_number &1845 4d b0 4d EOR &4db0 ; berth_number + 1 &1848 4d b1 4d EOR &4db1 ; berth_number + 2 &184b 8d bc 4d STA &4dbc ; berth_ship_type &184e 29 0c AND #&0c &1850 4a LSR A &1851 8d bd 4d STA &4dbd ; berth_pilot_rating &1854 ad b0 4d LDA &4db0 ; berth_number + 1 &1857 4a LSR A &1858 4d af 4d EOR &4daf ; berth_number &185b 29 03 AND #&03 &185d 18 CLC &185e 6d bd 4d ADC &4dbd ; berth_pilot_rating &1861 8d bd 4d STA &4dbd ; berth_pilot_rating &1864 ad bc 4d LDA &4dbc ; berth_ship_type &1867 29 03 AND #&03 &1869 d0 08 BNE &1873 ; has_cargo &186b a9 0e LDA #&0e ; &25c - &24e, string_25c : "none" &186d 8d be 4d STA &4dbe ; berth_cargo_type &1870 4c 8b 18 JMP &188b ; calculate_species ; has_cargo &1873 ad bc 4d LDA &4dbc ; berth_ship_type &1876 29 0c AND #&0c &1878 4a LSR A &1879 8d be 4d STA &4dbe ; berth_cargo_type &187c ad af 4d LDA &4daf ; berth_number &187f 4d b0 4d EOR &4db0 ; berth_number + 1 &1882 29 07 AND #&07 &1884 18 CLC &1885 6d be 4d ADC &4dbe ; berth_cargo_type &1888 8d be 4d STA &4dbe ; berth_cargo_type ; calculate_species &188b ad af 4d LDA &4daf ; berth_number &188e 4a LSR A &188f 4a LSR A &1890 4d bc 4d EOR &4dbc ; berth_ship_type &1893 29 03 AND #&03 &1895 8d bf 4d STA &4dbf ; berth_pilot_species &1898 ad af 4d LDA &4daf ; berth_number &189b 0a ASL A &189c 4d b1 4d EOR &4db1 ; berth_number + 2 &189f 29 07 AND #&07 &18a1 8d b8 4d STA &4db8 ; berth_entry_code + 1 &18a4 4a LSR A &18a5 4d b0 4d EOR &4db0 ; berth_number + 1 &18a8 29 07 AND #&07 &18aa 8d b7 4d STA &4db7 ; berth_entry_code &18ad 29 05 AND #&05 &18af 4d b2 4d EOR &4db2 ; berth_number + 3 &18b2 29 07 AND #&07 &18b4 8d ba 4d STA &4dba ; berth_entry_code + 3 &18b7 0a ASL A &18b8 4d b1 4d EOR &4db1 ; berth_number + 2 &18bb 49 05 EOR #&05 &18bd 29 07 AND #&07 &18bf 8d b9 4d STA &4db9 ; berth_entry_code + 2 &18c2 60 RTS ; write_ship_details &18c3 a9 59 LDA #&59 ; string_159 : "#BERTH NO : " &18c5 20 00 0e JSR &0e00 ; to_write_string_from_table_one &18c8 a0 00 LDY #&00 ; write_berth_number_loop &18ca b9 af 4d LDA &4daf,Y ; berth_number &18cd 18 CLC &18ce 69 30 ADC #&30 ; "0" &18d0 20 71 10 JSR &1071 ; to_write_character_preserving_variables &18d3 c8 INY &18d4 c0 04 CPY #&04 &18d6 d0 f2 BNE &18ca ; write_berth_number_loop &18d8 a9 5a LDA #&5a ; string_15a : "#SHIP : " &18da 20 00 0e JSR &0e00 ; to_write_string_from_table_one &18dd ad bc 4d LDA &4dbc ; berth_ship_type &18e0 18 CLC &18e1 69 60 ADC #&60 ; string_160 : "kingfisher shuttle" to string_16f : "albatross carrier" &18e3 20 00 0e JSR &0e00 ; to_write_string_from_table_one &18e6 a9 5b LDA #&5b ; string_15b : "#MAIN CARGO : " &18e8 20 00 0e JSR &0e00 ; to_write_string_from_table_one &18eb ad be 4d LDA &4dbe ; berth_cargo_type &18ee 18 CLC &18ef 69 4e ADC #&4e ; string_24e : "clothing" to string_25b : "none" &18f1 20 0c 0e JSR &0e0c ; to_write_string_from_table_two &18f4 a9 5c LDA #&5c ; string_15c : "#PILOT RATING : " &18f6 20 00 0e JSR &0e00 ; to_write_string_from_table_one &18f9 ad bd 4d LDA &4dbd ; berth_pilot_rating &18fc 18 CLC &18fd 69 23 ADC #&23 ; string_223 : "pathetic" to string_22c : "genius" &18ff 20 0c 0e JSR &0e0c ; to_write_string_from_table_two &1902 a9 5d LDA #&5d ; string_15d : "#PILOT SPECIES : " &1904 20 00 0e JSR &0e00 ; to_write_string_from_table_one &1907 ad bf 4d LDA &4dbf ; berth_pilot_species &190a 18 CLC &190b 69 5d ADC #&5d ; string_25d : "avian" to string_260 : "human" &190d 20 0c 0e JSR &0e0c ; to_write_string_from_table_two &1910 60 RTS ; to_consider_groff_and_gron &1911 4c cc 27 JMP &27cc ; consider_groff_and_gron ; unused &1914 20 ; handle_follow &1915 ad a3 4d LDA &4da3 ; lugobot_room # Zero if lugobot is following player &1918 d0 06 BNE &1920 ; check_if_lugobot_present &191a a9 53 LDA #&53 ; string_153 : "he is" &191c 20 00 0e JSR &0e00 ; to_write_string_from_table_one &191f 60 RTS ; check_if_lugobot_present &1920 c5 78 CMP &78 ; player_room &1922 f0 06 BEQ &192a ; set_lugobot_following &1924 a9 40 LDA #&40 ; string_140 : "you can't do that" &1926 20 00 0e JSR &0e00 ; to_write_string_from_table_one &1929 60 RTS ; set_lugobot_following &192a a9 00 LDA #&00 # Set to zero to indicate lugobot is following player &192c 8d a3 4d STA &4da3 ; lugobot_room &192f a9 54 LDA #&54 ; string_154 : "the lugobot follows you" &1931 20 00 0e JSR &0e00 ; to_write_string_from_table_one &1934 60 RTS ; consider_lost &1935 c0 16 CPY #&16 ; VERB_LOST &1937 d0 16 BNE &194f ; consider_kill ; handle_lost # GET LOST, GO AWAY, CLEAR OFF, etc &1939 ad a3 4d LDA &4da3 ; lugobot_room # Zero if lugobot is following player &193c f0 06 BEQ &1944 ; lugobot_was_following &193e a9 40 LDA #&40 ; string_140 : "you can't do that" &1940 20 00 0e JSR &0e00 ; to_write_string_from_table_one &1943 60 RTS ; lugobot_was_following &1944 a9 34 LDA #&34 ; string_134 : "ok" &1946 20 00 0e JSR &0e00 ; to_write_string_from_table_one &1949 a5 78 LDA &78 ; player_room &194b 8d a3 4d STA &4da3 ; lugobot_room &194e 60 RTS ; consider_kill &194f c0 1a CPY #&1a ; VERB_KILL &1951 d0 54 BNE &19a7 ; consider_close ; handle_kill &1953 a5 51 LDA &51 ; first_noun &1955 d0 06 BNE &195d ; handle_kill_noun &1957 a9 35 LDA #&35 ; string_135 : "please elaborate" &1959 20 00 0e JSR &0e00 ; to_write_string_from_table_one &195c 60 RTS ; handle_kill_noun &195d c9 32 CMP #&32 ; NOUN_OBJECT_LAST + 1 &195f b0 06 BCS &1967 ; consider_kill_droids ; now_you_are_getting_silly &1961 a9 29 LDA #&29 ; string_129 : "now you are getting silly" &1963 20 00 0e JSR &0e00 ; to_write_string_from_table_one &1966 60 RTS ; consider_kill_droids &1967 c9 69 CMP #&69 ; NOUN_ROBODROID &1969 90 f6 BCC &1961 ; now_you_are_getting_silly &196b c9 6c CMP #&6c ; 1 + NOUN_AGGRODROID &196d b0 f2 BCS &1961 ; now_you_are_getting_silly &196f c9 69 CMP #&69 ; NOUN_ROBODROID &1971 d0 06 BNE &1979 ; handle_kill_guardroid_or_aggrodroid ; handle_kill_robodroid ; you_are_weaponless &1973 a9 75 LDA #&75 ; string_175 : "you are weaponless" &1975 20 00 0e JSR &0e00 ; to_write_string_from_table_one &1978 60 RTS ; handle_kill_guardroid_or_aggrodroid &1979 ad 11 4e LDA &4e11 ; object_locations + OBJECT_ROD &197c f0 0b BEQ &1989 ; handle_kill_guardroid_or_aggrodroid_with_rod &197e ad 16 4e LDA &4e16 ; object_locations + OBJECT_FOOZBAT &1981 d0 f0 BNE &1973 ; you_are_weaponless ; handle_kill_guardroid_or_aggrodroid_with_foozbat &1983 a9 76 LDA #&76 ; string_176 : "your bat is unpowered" &1985 20 00 0e JSR &0e00 ; to_write_string_from_table_one &1988 60 RTS ; handle_kill_guardroid_or_aggrodroid_with_rod &1989 ad a4 4d LDA &4da4 ; guardroid_room &198c c5 78 CMP &78 ; player_room &198e d0 06 BNE &1996 ; you_can't_see_that_here &1990 a5 51 LDA &51 ; first_noun &1992 c9 6a CMP #&6a ; NOUN_GUARDROID &1994 f0 06 BEQ &199c ; pulverise_droid ; you_can't_see_that_here # Aggrodroid has been destroyed if player has rod &1996 a9 1d LDA #&1d ; string_11d : "you can't see that here" &1998 20 00 0e JSR &0e00 ; to_write_string_from_table_one &199b 60 RTS ; pulverise_droid &199c a9 00 LDA #&00 ; ROOM_PULVERISED &199e 8d a4 4d STA &4da4 ; guardroid_room &19a1 a9 77 LDA #&77 ; string_177 : "you pulverise the droid" &19a3 20 00 0e JSR &0e00 ; to_write_string_from_table_one &19a6 60 RTS ; consider_close &19a7 c0 2d CPY #&2d ; VERB_CLOSE &19a9 d0 06 BNE &19b1 ; consider_insert ; handle_close &19ab a9 40 LDA #&40 ; string_140 : "you can't do that" &19ad 20 00 0e JSR &0e00 ; to_write_string_from_table_one &19b0 60 RTS ; consider_insert &19b1 c0 15 CPY #&15 ; VERB_INSERT &19b3 f0 03 BEQ &19b8 ; handle_insert &19b5 4c 43 1a JMP &1a43 ; to_consider_help ; handle_insert &19b8 a5 51 LDA &51 ; first_noun &19ba c9 32 CMP #&32 ; NOUN_OBJECT_LAST + 1 &19bc b0 13 BCS &19d1 ; you_can't_carry_that_to_begin_with &19be c9 14 CMP #&14 ; NOUN_OBJECT_FIRST &19c0 90 0f BCC &19d1 ; you_can't_carry_that_to_begin_with ; handle_insert_object &19c2 38 SEC &19c3 e9 14 SBC #&14 ; NOUN_OBJECT_FIRST &19c5 a8 TAY &19c6 b9 00 4e LDA &4e00,Y ; object_locations &19c9 f0 0c BEQ &19d7 ; handle_insert_carried_object &19cb a9 17 LDA #&17 ; string_117 : "you're not carrying that" &19cd 20 00 0e JSR &0e00 ; to_write_string_from_table_one &19d0 60 RTS ; you_can't_carry_that_to_begin_with &19d1 a9 15 LDA #&15 ; string_115 : "you can't carry that to begin with" &19d3 20 00 0e JSR &0e00 ; to_write_string_from_table_one &19d6 60 RTS ; handle_insert_carried_object &19d7 a5 51 LDA &51 ; first_noun &19d9 c9 1d CMP #&1d ; NOUN_HAND &19db f0 18 BEQ &19f5 ; handle_insert_hand &19dd c9 2c CMP #&2c ; NOUN_METAL &19df f0 2a BEQ &1a0b ; handle_insert_metal &19e1 c9 2d CMP #&2d ; NOUN_CARD &19e3 f0 3c BEQ &1a21 ; handle_insert_card &19e5 c9 20 CMP #&20 ; NOUN_DEACTIVATOR &19e7 f0 49 BEQ &1a32 ; handle_insert_deactivator &19e9 a9 40 LDA #&40 ; string_140 : "you can't do that" &19eb 20 00 0e JSR &0e00 ; to_write_string_from_table_one &19ee 60 RTS ; try_that_somewhere_else &19ef a9 41 LDA #&41 ; string_141 : "try that somewhere else" &19f1 20 00 0e JSR &0e00 ; to_write_string_from_table_one &19f4 60 RTS ; handle_insert_hand &19f5 a5 78 LDA &78 ; player_room &19f7 c9 25 CMP #&25 ; ROOM_25 ; "at the south end of the hall ,away from the market but next to a large handprint key door" &19f9 d0 f4 BNE &19ef ; try_that_somewhere_else &19fb a9 78 LDA #&78 ; string_178 : "the door slides open" &19fd 20 00 0e JSR &0e00 ; to_write_string_from_table_one &1a00 a9 26 LDA #&26 ; ROOM_26 ; "in the 'berth control' centre ,dominated by a large computer console comprising screens ,keyboards and a small slot marked 'security clearance'" &1a02 8d fa 61 STA &61fa ; room_exits + DIRECTION_IN &1a05 a9 00 LDA #&00 # Set to zero to indicate card not inserted &1a07 8d bb 4d STA &4dbb ; computer_state &1a0a 60 RTS ; handle_insert_metal &1a0b a5 78 LDA &78 ; player_room &1a0d c9 57 CMP #&57 ; ROOM_57 ; "in the recycling room with a vast machine stretching across the east ,south and west walls" &1a0f d0 de BNE &19ef ; try_that_somewhere_else &1a11 a9 79 LDA #&79 ; string_179 : "the machine whirs and something falls out" &1a13 20 00 0e JSR &0e00 ; to_write_string_from_table_one &1a16 a9 fe LDA #&fe ; ROOM_USED &1a18 8d 18 4e STA &4e18 ; object_locations + OBJECT_METAL &1a1b a9 57 LDA #&57 ; ROOM_57 ; "in the recycling room with a vast machine stretching across the east ,south and west walls" &1a1d 8d 11 4e STA &4e11 ; object_locations + OBJECT_ROD &1a20 60 RTS ; handle_insert_card &1a21 a5 78 LDA &78 ; player_room &1a23 c9 26 CMP #&26 ; ROOM_26 ; "in the 'berth control' centre ,dominated by a large computer console comprising screens ,keyboards and a small slot marked 'security clearance'" &1a25 d0 c8 BNE &19ef ; try_that_somewhere_else &1a27 a9 34 LDA #&34 ; string_134 : "ok" &1a29 20 00 0e JSR &0e00 ; to_write_string_from_table_one &1a2c a9 01 LDA #&01 # Set to non-zero to indicate card inserted &1a2e 8d bb 4d STA &4dbb ; computer_state &1a31 60 RTS ; handle_insert_deactivator &1a32 a5 78 LDA &78 ; player_room &1a34 c9 21 CMP #&21 ; ROOM_21 ; "in what was once a foozball court until someone died from batshock.There is a mean looking robodroid here" &1a36 d0 b7 BNE &19ef ; try_that_somewhere_else &1a38 a9 7a LDA #&7a ; string_17a : "the droid stops dead" &1a3a 20 00 0e JSR &0e00 ; to_write_string_from_table_one &1a3d 4c bc 24 JMP &24bc ; deactivate_robodroid ; unused &1a40 aa 4d ... &4daa ; robodroid_state &1a42 60 RTS ; to_consider_help &1a43 4c 1e 1b JMP &1b1e ; consider_help ; unused &1a46 37 ; consider_get_hidden_object # Called with A = object_location &1a47 c9 ff CMP #&ff ; ROOM_HIDDEN &1a49 d0 21 BNE &1a6c ; you_can't_see_that_here &1a4b a5 51 LDA &51 ; first_noun &1a4d c9 1b CMP #&1b ; NOUN_BALL &1a4f d0 2a BNE &1a7b ; consider_get_hand ; consider_get_ball &1a51 a5 78 LDA &78 ; player_room &1a53 c9 13 CMP #&13 ; ROOM_13 ; "in the Chemilab ,a mess of old benches and one test tube " &1a55 d0 15 BNE &1a6c ; you_can't_see_that_here &1a57 a9 7c LDA #&7c ; string_17c : "the tube is too thin" &1a59 20 00 0e JSR &0e00 ; to_write_string_from_table_one &1a5c ad 0d 4e LDA &4e0d ; object_locations + OBJECT_MONKEY &1a5f f0 05 BEQ &1a66 ; monkey_is_present &1a61 c5 78 CMP &78 ; player_room &1a63 f0 01 BEQ &1a66 ; monkey_is_present &1a65 60 RTS ; monkey_is_present &1a66 a9 7d LDA #&7d ; string_17d : "the monkey reaches in and gives the ball to you" &1a68 4c 72 1a JMP &1a72 ; get_ball &1a6b 60 RTS ; you_can't_see_that_here &1a6c a9 1d LDA #&1d ; string_11d : "you can't see that here" &1a6e 20 00 0e JSR &0e00 ; to_write_string_from_table_one &1a71 60 RTS ; get_ball &1a72 20 00 0e JSR &0e00 ; to_write_string_from_table_one &1a75 a9 00 LDA #&00 ; ROOM_CARRYING &1a77 8d 07 4e STA &4e07 ; object_locations + OBJECT_BALL_BEARING &1a7a 60 RTS ; consider_get_hand &1a7b c9 1d CMP #&1d ; NOUN_HAND &1a7d d0 ed BNE &1a6c ; you_can't_see_that_here &1a7f a5 78 LDA &78 ; player_room &1a81 c9 21 CMP #&21 ; ROOM_21 ; "in what was once a foozball court until someone died from batshock.There is a mean looking robodroid here" &1a83 d0 e7 BNE &1a6c ; you_can't_see_that_here &1a85 a9 7e LDA #&7e ; string_17e : "you try to break the wrist but " &1a87 20 00 0e JSR &0e00 ; to_write_string_from_table_one &1a8a ad 05 4e LDA &4e05 ; object_locations + OBJECT_GUNGE &1a8d f0 06 BEQ &1a95 ; get_hand_with_gunge &1a8f a9 62 LDA #&62 ; string_262 : "fail" &1a91 20 0c 0e JSR &0e0c ; to_write_string_from_table_two &1a94 60 RTS ; get_hand_with_gunge &1a95 a9 63 LDA #&63 ; string_263 : "your gunge melts it ,leaving you with the hand " &1a97 20 0c 0e JSR &0e0c ; to_write_string_from_table_two &1a9a a9 00 LDA #&00 ; ROOM_CARRYING &1a9c 8d 09 4e STA &4e09 ; object_locations + OBJECT_HAND &1a9f a9 68 LDA #&68 ; ROOM_68 ; " at chest height" &1aa1 8d 05 4e STA &4e05 ; object_locations + OBJECT_GUNGE &1aa4 ad aa 4d LDA &4daa ; robodroid_state &1aa7 f0 05 BEQ &1aae ; leave &1aa9 a9 64 LDA #&64 ; string_264 : "and a surpised droid" &1aab 20 0c 0e JSR &0e0c ; to_write_string_from_table_two ; leave &1aae 60 RTS ; unused &1aaf 00 ; load_file_block &1ab0 c2 1a ; &1ac2 = huntpos_filename &1ab2 a0 4d 00 00 ; &4da0 = game_state &1ab6 00 00 00 00 &1aba 7b 00 00 00 ; &007b = end_of_game_state - game_state &1abe 1b 4e 00 00 ; &4e1b = end_of_game_state ; huntpos_filename &1ac2 48 75 6e 74 70 6f 73 0d ; "Huntpos" ; unused &1aca 00 ; scoring_variables # Score ten points for each of: &1acb a4 4d 00 ; &4da4 = &00 (guardroid_room) # killing guardroid &1ace a5 4d 00 ; &4da5 = &00 (aggrodroid_room) # killing aggrodroid &1ad1 a8 4d ea ; &4da8 = &ea (trapdoor_state) # (impossible to achieve; last byte should be &01) &1ad4 a9 4d 00 ; &4da9 = &00 (squeeky_voice_man_state) # killing the small man with a squeeky voice &1ad7 aa 4d 00 ; &4daa = &00 (robodroid_state) # deactivating robodroid &1ada ab 4d 01 ; &4dab = &01 (exhibition_hall_force_field_state) # collapsing the exhibition hall force field &1add ae 4d ff ; &4dae = &ff (evacuation_timer) # being sucked out into space &1ae0 b4 4d 01 ; &4db4 = &01 (gunman_state) # dog killing the man aiming a gun at you &1ae3 0f 4e ff ; &4e0f = &ff (object_locations + OBJECT_LEASH) # attaching leash to dog &1ae6 18 4e fe ; &4e18 = &fe (object_locations + OBJECT_METAL) # making rod out of metal ; unused &1ae9 00 00 ; calculate_and_write_score &1aeb a9 20 LDA #&20 ; string_120 : "you have scored " &1aed 20 00 0e JSR &0e00 ; to_write_string_from_table_one &1af0 a2 00 LDX #&00 &1af2 a0 00 LDY #&00 &1af4 8e b3 4d STX &4db3 ; score ; calculate_score_loop &1af7 bd cb 1a LDA &1acb,X ; scoring_variables &1afa 85 4a STA &4a ; variable_address_low &1afc e8 INX &1afd bd cb 1a LDA &1acb,X ; scoring_variables &1b00 85 4b STA &4b ; variable_address_high &1b02 b1 4a LDA (&4a),Y ; variable_address &1b04 e8 INX &1b05 dd cb 1a CMP &1acb,X ; scoring_variables &1b08 d0 0b BNE &1b15 ; skip_scoring &1b0a f8 SED &1b0b ad b3 4d LDA &4db3 ; score &1b0e 18 CLC &1b0f 69 0a ADC #&0a &1b11 8d b3 4d STA &4db3 ; score &1b14 d8 CLD ; skip_scoring &1b15 e8 INX &1b16 e0 1e CPX #&1e &1b18 d0 dd BNE &1af7 ; calculate_score_loop &1b1a 4c 49 10 JMP &1049 ; write_score ; unused &1b1d 00 ; consider_help &1b1e c0 0e CPY #&0e ; VERB_HELP &1b20 d0 06 BNE &1b28 ; consider_examine &1b22 a9 36 LDA #&36 ; string_136 : "don't be lazy" &1b24 20 00 0e JSR &0e00 ; to_write_string_from_table_one &1b27 60 RTS ; consider_examine &1b28 c0 2a CPY #&2a ; VERB_EXAMINE &1b2a f0 03 BEQ &1b2f ; handle_examine &1b2c 4c d5 1c JMP &1cd5 ; consider_save ; handle_examine &1b2f a5 55 LDA &55 ; number_of_words &1b31 c9 02 CMP #&02 &1b33 b0 08 BCS &1b3d ; handle_examine_word &1b35 a5 51 LDA &51 ; first_noun &1b37 a8 TAY &1b38 d0 03 BNE &1b3d ; handle_examine_word &1b3a 4c c3 1b JMP &1bc3 ; handle_look ; handle_examine_word &1b3d a4 51 LDY &51 ; first_noun &1b3f c0 14 CPY #&14 ; NOUN_OBJECT_FIRST &1b41 90 7a BCC &1bbd ; nothing_special &1b43 c0 32 CPY #&32 ; NOUN_OBJECT_LAST + 1 &1b45 90 07 BCC &1b4e ; handle_examine_object &1b47 c0 64 CPY #&64 ; NOUN_TAXI &1b49 90 72 BCC &1bbd ; nothing_special &1b4b 4c d8 1b JMP &1bd8 ; handle_examine_noun ; handle_examine_object &1b4e b9 ec 4d LDA &4dec,Y ; object_locations - &14 (NOUN_OBJECT_FIRST) &1b51 f0 0e BEQ &1b61 ; handle_examine_present_object &1b53 c5 78 CMP &78 ; player_room &1b55 f0 0a BEQ &1b61 ; handle_examine_present_object &1b57 c9 c8 CMP #&c8 ; ROOM_WEARING &1b59 f0 06 BEQ &1b61 ; handle_examine_present_object &1b5b 4c dd 24 JMP &24dd ; handle_examine_not_present_object ; unused &1b5e 00 0e ... &0e00 ; to_write_string_from_table_one &1b5f 60 RTS ; handle_examine_present_object &1b61 a5 51 LDA &51 ; first_noun &1b63 c9 25 CMP #&25 ; NOUN_ROD # Descriptions are stored in two places &1b65 b0 2b BCS &1b92 ; handle_examine_rod_or_other_objects ; write_object_description &1b67 18 CLC &1b68 69 5b ADC #&5b ; &6f - &14 : string_26f : "sharp" to string_27f : "unconscious ,but showing signs of recovery" &1b6a 20 0c 0e JSR &0e0c ; to_write_string_from_table_two &1b6d a5 51 LDA &51 ; first_noun &1b6f c9 16 CMP #&16 ; NOUN_HELMET &1b71 d0 0c BNE &1b7f ; consider_examine_dog ; handle_examine_helmet # "heavy " &1b73 ad 00 4e LDA &4e00 ; object_locations + OBJECT_SPIKE &1b76 c9 fc CMP #&fc ; ROOM_IN_HELMET &1b78 d0 05 BNE &1b7f ; consider_examine_dog &1b7a a9 6e LDA #&6e ; string_26e : "with a large spike inside" &1b7c 20 0c 0e JSR &0e0c ; to_write_string_from_table_two ; consider_examine_dog &1b7f a5 51 LDA &51 ; first_noun &1b81 c9 22 CMP #&22 ; NOUN_DOG &1b83 d0 0c BNE &1b91 ; leave ; handle_examine_dog # "a great tracker " &1b85 ad 0f 4e LDA &4e0f ; object_locations + OBJECT_LEASH &1b88 c9 ff CMP #&ff ; ROOM_HIDDEN &1b8a d0 05 BNE &1b91 ; leave &1b8c a9 6d LDA #&6d ; string_26d : "with a leash attached" &1b8e 20 0c 0e JSR &0e0c ; to_write_string_from_table_two ; leave &1b91 60 RTS ; handle_examine_rod_or_other_objects &1b92 18 CLC &1b93 69 4b ADC #&4b ; &70 - &25 : string_070 : "great weapon" to string_079 : "of dubious origin" &1b95 20 2a 1d JSR &1d2a ; to_write_string_from_table_zero &1b98 a5 51 LDA &51 ; first_noun &1b9a c9 27 CMP #&27 ; NOUN_LETTER &1b9c d0 0a BNE &1ba8 ; consider_examine_receipt ; handle_examine_letter # "it says you can only touch the " &1b9e ad b6 4d LDA &4db6 ; safe_gunge_colour &1ba1 18 CLC &1ba2 69 65 ADC #&65 ; string_265 : "green" &1ba4 20 0c 0e JSR &0e0c ; to_write_string_from_table_two # Write colour of safe gunge &1ba7 60 RTS ; consider_examine_receipt &1ba8 c9 28 CMP #&28 ; NOUN_RECEIPT &1baa d0 e5 BNE &1b91 ; leave ; handle_examine_receipt # "marked with the digits " &1bac a0 00 LDY #&00 ; write_shauna_berth_number_loop &1bae b9 c0 4d LDA &4dc0,Y ; shauna_berth_number &1bb1 18 CLC &1bb2 69 30 ADC #&30 ; "0" &1bb4 20 71 10 JSR &1071 ; to_write_character_preserving_variables &1bb7 c8 INY &1bb8 c0 04 CPY #&04 &1bba d0 f2 BNE &1bae ; write_shauna_berth_number_loop &1bbc 60 RTS ; nothing_special &1bbd a9 7f LDA #&7f ; string_17f : "nothing special" &1bbf 20 00 0e JSR &0e00 ; to_write_string_from_table_one &1bc2 60 RTS ; handle_look &1bc3 a5 78 LDA &78 ; player_room &1bc5 c9 49 CMP #&49 ; ROOM_49 ; "in a very dark and apparently empty room at the end of a small but steep passage" &1bc7 d0 0b BNE &1bd4 ; to_to_write_room_description_and_plot_graphics &1bc9 ad a8 4d LDA &4da8 ; trapdoor_state &1bcc d0 06 BNE &1bd4 ; to_to_write_room_description_and_plot_graphics &1bce a9 45 LDA #&45 ; string_145 : "you find a small trapdoor" &1bd0 20 00 0e JSR &0e00 ; to_write_string_from_table_one &1bd3 60 RTS ; to_to_write_room_description_and_plot_graphics &1bd4 20 31 1d JSR &1d31 ; to_write_room_description_and_plot_graphics &1bd7 60 RTS ; handle_examine_noun &1bd8 c0 65 CPY #&65 ; NOUN_LUGOBOT &1bda d0 0f BNE &1beb ; consider_examine_taxi ; handle_examine_lugobot &1bdc ad a3 4d LDA &4da3 ; lugobot_room &1bdf f0 22 BEQ &1c03 ; handle_examine_present_noun &1be1 c5 78 CMP &78 ; player_room &1be3 f0 1e BEQ &1c03 ; handle_examine_present_noun &1be5 a9 32 LDA #&32 ; string_132 : "you can't see it" &1be7 20 00 0e JSR &0e00 ; to_write_string_from_table_one &1bea 60 RTS ; consider_examine_taxi &1beb c0 64 CPY #&64 ; NOUN_TAXI &1bed d0 1d BNE &1c0c ; consider_examine_nouns ; handle_examine_taxi &1bef a5 78 LDA &78 ; player_room &1bf1 c9 09 CMP #&09 ; ROOM_09 ; "in the departure area with some very old chairs and a waiting taxi droid" &1bf3 f0 0e BEQ &1c03 ; handle_examine_present_noun &1bf5 c9 0a CMP #&0a ; ROOM_0a ; "inside the taxi with some buttons marked 0 to 9 and a sign saying '#TYPE CODE'" &1bf7 f0 0a BEQ &1c03 ; handle_examine_present_noun &1bf9 c9 66 CMP #&66 ; ROOM_66 ; "in the taxi.You can see a vast platform in space through the window" &1bfb f0 06 BEQ &1c03 ; handle_examine_present_noun ; you_can't_see_that_here &1bfd a9 1d LDA #&1d ; string_11d : "you can't see that here" &1bff 20 00 0e JSR &0e00 ; to_write_string_from_table_one &1c02 60 RTS ; handle_examine_present_noun &1c03 a5 51 LDA &51 ; first_noun &1c05 18 CLC &1c06 69 16 ADC #&16 ; &7a - NOUN_TAXI ; string_07a : "very dirty" or &7b - NOUN_LUGOBOT ; string_07b : "friendly" &1c08 20 2a 1d JSR &1d2a ; to_write_string_from_table_zero &1c0b 60 RTS ; consider_examine_nouns &1c0c c0 6f CPY #&6f ; NOUN_TUBE &1c0e 90 03 BCC &1c13 ; consider_examine_chair &1c10 4c 9c 1c JMP &1c9c ; consider_examine_tube ; consider_examine_chair &1c13 c0 6d CPY #&6d ; NOUN_CHAIR &1c15 d0 10 BNE &1c27 ; consider_examine_arch ; handle_examine_chair &1c17 a5 78 LDA &78 ; player_room &1c19 c9 07 CMP #&07 ; ROOM_07 ; "in the arrivals area with many old chairs around a closed bar and a small ,dark stairway" &1c1b f0 04 BEQ &1c21 ; examine_chair &1c1d c9 32 CMP #&32 ; ROOM_32 ; "in the radiation therapy operating theatre ,a small room with a couch" &1c1f d0 dc BNE &1bfd ; you_can't_see_that_here ; examine_chair &1c21 a9 77 LDA #&77 ; string_077 : "a mess" &1c23 20 2a 1d JSR &1d2a ; to_write_string_from_table_zero &1c26 60 RTS ; consider_examine_arch &1c27 c0 6c CPY #&6c ; NOUN_COMPUTER &1c29 b0 92 BCS &1bbd ; nothing_special &1c2b c0 66 CPY #&66 ; NOUN_ARCH &1c2d d0 10 BNE &1c3f ; consider_examine_door ; handle_examine_arch &1c2f a5 78 LDA &78 ; player_room &1c31 c9 05 CMP #&05 ; ROOM_05 ; "at customs ,standing on another space platform in front of a large archway that leads into the space station" &1c33 90 c8 BCC &1bfd ; you_can't_see_that_here &1c35 c9 07 CMP #&07 ; 1 + ROOM_07 ; "in the arrivals area with many old chairs around a closed bar and a small ,dark stairway" &1c37 b0 c4 BCS &1bfd ; you_can't_see_that_here &1c39 a9 29 LDA #&29 ; string_229 : "skilled" &1c3b 20 0c 0e JSR &0e0c ; to_write_string_from_table_two &1c3e 60 RTS ; consider_examine_door &1c3f c0 69 CPY #&69 ; NOUN_ROBODROID &1c41 b0 3a BCS &1c7d ; consider_examine_droids &1c43 c0 67 CPY #&67 ; NOUN_DOOR &1c45 d0 1d BNE &1c64 ; handle_examine_field ; handle_examine_door &1c47 a5 78 LDA &78 ; player_room &1c49 c9 64 CMP #&64 ; ROOM_64 ; "beside a large scarlet door containing a small microphone" &1c4b f0 10 BEQ &1c5d ; handle_examine_present_door_or_field &1c4d c9 36 CMP #&36 ; ROOM_36 ; "at the entrance to the quarantine area ,by a small bare registration desk" &1c4f f0 0c BEQ &1c5d ; handle_examine_present_door_or_field &1c51 c9 49 CMP #&49 ; ROOM_49 ; "in a very dark and apparently empty room at the end of a small but steep passage" &1c53 f0 08 BEQ &1c5d ; handle_examine_present_door_or_field &1c55 c9 25 CMP #&25 ; ROOM_25 ; "at the south end of the hall ,away from the market but next to a large handprint key door" &1c57 f0 04 BEQ &1c5d ; handle_examine_present_door_or_field &1c59 c9 66 CMP #&66 ; ROOM_66 ; "in the taxi.You can see a vast platform in space through the window" &1c5b d0 a0 BNE &1bfd ; you_can't_see_that_here ; handle_examine_present_door_or_field &1c5d 98 TYA &1c5e 69 14 ADC #&14 ; &7c - NOUN_DOOR - 1 ; string_07c : "solid" or &7d - NOUN_FIELD - 1 ; string_07d : "powerful" ; to_to_write_string_from_table_zero &1c60 20 2a 1d JSR &1d2a ; to_write_string_from_table_zero &1c63 60 RTS ; handle_examine_field &1c64 a5 78 LDA &78 ; player_room &1c66 c9 63 CMP #&63 ; ROOM_63 ; "at the west end of the desolate and deserted exhibition hall" &1c68 d0 08 BNE &1c72 ; handle_examine_constant_field &1c6a ad ab 4d LDA &4dab ; exhibition_hall_force_field_state &1c6d f0 ee BEQ &1c5d ; handle_examine_present_door_or_field &1c6f 4c fd 1b JMP &1bfd ; you_can't_see_that_here ; handle_examine_constant_field &1c72 c9 37 CMP #&37 ; ROOM_37 ; "at the beginning of a short ,dark corridor that continues to the east.You can just see small force cages lining the north side" &1c74 f0 e7 BEQ &1c5d ; handle_examine_present_door_or_field &1c76 c9 3a CMP #&3a ; ROOM_3a ; "at the west end of the corridor outside the last cage that works" &1c78 f0 e3 BEQ &1c5d ; handle_examine_present_door_or_field &1c7a 4c fd 1b JMP &1bfd ; you_can't_see_that_here ; consider_examine_droids &1c7d c0 69 CPY #&69 ; NOUN_ROBODROID &1c7f d0 10 BNE &1c91 ; handle_examine_other_droids ; handle_examine_robodroid &1c81 a5 78 LDA &78 ; player_room &1c83 c9 21 CMP #&21 ; ROOM_21 ; "in what was once a foozball court until someone died from batshock.There is a mean looking robodroid here" &1c85 f0 06 BEQ &1c8d ; handle_examine_present_robodroid ; you_can't_see_that_here &1c87 a9 1d LDA #&1d ; string_11d : "you can't see that here" ; to_to_write_string_from_table_one &1c89 20 00 0e JSR &0e00 ; to_write_string_from_table_one &1c8c 60 RTS ; handle_examine_present_robodroid &1c8d a9 03 LDA #&03 ; string_103 : "might be _hand_y" &1c8f d0 f8 BNE &1c89 ; to_to_write_string_from_table_one # Always branches ; handle_examine_other_droids &1c91 b9 3a 4d LDA &4d3a,Y ; guardroid_room - &6a (NOUN_GUARDROID) or aggrodroid_room - &6b (NOUN_AGGRODROID) &1c94 c5 78 CMP &78 ; player_room &1c96 d0 ef BNE &1c87 ; you_can't_see_that_here &1c98 a9 7e LDA #&7e ; string_07e : "very large" &1c9a d0 c4 BNE &1c60 ; to_to_write_string_from_table_zero ; consider_examine_tube &1c9c c0 6f CPY #&6f ; NOUN_TUBE &1c9e d0 07 BNE &1ca7 ; consider_examine_body &1ca0 a5 78 LDA &78 ; player_room &1ca2 c9 13 CMP #&13 ; ROOM_13 ; "in the Chemilab ,a mess of old benches and one test tube " &1ca4 4c 9a 23 JMP &239a ; handle_examine_tube ; consider_examine_body &1ca7 a6 78 LDX &78 ; player_room &1ca9 e0 65 CPX #&65 ; ROOM_65 ; "in a small sideroom with a neat little desk and a comfy looking seat" &1cab f0 07 BEQ &1cb4 ; examine_body &1cad e0 4c CPX #&4c ; ROOM_4c ; "in the magnolab ,which is really just a long corridor with vast magnets forming both walls" &1caf f0 03 BEQ &1cb4 ; handle_examine_body &1cb1 4c fd 1b JMP &1bfd ; you_can't_see_that_here ; handle_examine_body &1cb4 a9 14 LDA #&14 ; OBJECT_RECEIPT &1cb6 e0 65 CPX #&65 ; ROOM_65 ; "in a small sideroom with a neat little desk and a comfy looking seat" &1cb8 f0 02 BEQ &1cbc ; is_receipt &1cba 69 03 ADC #&03 ; OBJECT_IDENTIFICATION - OBJECT_RECEIPT ; is_receipt &1cbc a8 TAY &1cbd b9 00 4e LDA &4e00,Y ; object_locations &1cc0 c9 ff CMP #&ff ; ROOM_HIDDEN &1cc2 f0 03 BEQ &1cc7 ; examine_body &1cc4 4c bd 1b JMP &1bbd ; nothing_special ; examine_body &1cc7 8a TXA &1cc8 99 00 4e STA &4e00,Y ; object_locations &1ccb a9 6f LDA #&6f ; string_06f : "you can see " &1ccd 20 2a 1d JSR &1d2a ; to_write_string_from_table_zero &1cd0 98 TYA ; string_214 : "a receipt" or string_217 : "some identification" &1cd1 20 0c 0e JSR &0e0c ; to_write_string_from_table_two &1cd4 60 RTS ; consider_save &1cd5 c0 10 CPY #&10 ; VERB_SAVE &1cd7 d0 04 BNE &1cdd ; consider_restore &1cd9 20 e6 1c JSR &1ce6 ; handle_save &1cdc 60 RTS ; consider_restore &1cdd c0 12 CPY #&12 ; VERB_RESTORE &1cdf d0 04 BNE &1ce5 ; leave &1ce1 20 02 1d JSR &1d02 ; handle_restore &1ce4 60 RTS ; leave &1ce5 60 RTS # End of verb checking ; handle_save &1ce6 a5 78 LDA &78 ; player_room &1ce8 8d ff 4d STA &4dff ; player_room_in_save &1ceb a0 00 LDY #&00 ; backup_room_exits_loop # Bug: room exits are not saved to file &1ced b9 f0 61 LDA &61f0,Y ; room_exits &1cf0 99 50 25 STA &2550,Y ; room_exits_for_save &1cf3 c8 INY &1cf4 c0 0c CPY #&0c ; DIRECTION_LAST + 1 &1cf6 d0 f5 BNE &1ced ; backup_room_exits_loop &1cf8 a9 00 LDA #&00 ; save file &1cfa a0 25 LDY #&25 ; &253f = save_file_block &1cfc a2 3f LDX #&3f &1cfe 20 dd ff JSR &ffdd ; OSFILE &1d01 60 RTS ; handle_restore &1d02 20 c2 0f JSR &0fc2 ; are_you_sure &1d05 98 TYA &1d06 f0 21 BEQ &1d29 ; leave &1d08 20 75 10 JSR &1075 ; to_write_spaces_until_start_of_line_preserving_variables &1d0b a9 ff LDA #&ff ; load file &1d0d a0 1a LDY #&1a ; &1ab0 = load_file_block &1d0f a2 b0 LDX #&b0 &1d11 20 dd ff JSR &ffdd ; OSFILE &1d14 ad ff 4d LDA &4dff ; player_room_in_save &1d17 85 78 STA &78 ; player_room &1d19 a0 00 LDY #&00 ; restore_room_exits_loop # Bug: room exits are not restored from file &1d1b b9 50 25 LDA &2550,Y ; room_exits_for_save &1d1e 99 f0 61 STA &61f0,Y ; room_exits &1d21 c8 INY &1d22 c0 0c CPY #&0c ; DIRECTION_LAST + 1 &1d24 d0 f5 BNE &1d1b ; restore_room_exits_loop &1d26 60 RTS ; unused &1d27 2a 1d ... &1d2a ; to_write_string_from_table_zero ; leave &1d29 60 RTS ; to_write_string_from_table_zero &1d2a 4c 53 24 JMP &2453 ; write_string_from_table_zero ; unused &1d2d 20 ee ff JSR &ffee ; OSWRCH &1d2f 60 RTS ; to_write_room_description_and_plot_graphics &1d31 4c 7a 27 JMP &277a ; write_room_description_and_plot_graphics ; write_room_description &1d34 a9 00 LDA #&00 ; string_000 : "You are " &1d36 20 2a 1d JSR &1d2a ; to_write_string_from_table_zero &1d39 a5 78 LDA &78 ; player_room &1d3b 20 2a 1d JSR &1d2a ; to_write_string_from_table_zero &1d3e a5 78 LDA &78 ; player_room &1d40 20 11 27 JSR &2711 ; write_extra_room_text &1d43 a0 00 LDY #&00 ; find_objects_in_room_loop &1d45 b9 00 4e LDA &4e00,Y ; object_locations &1d48 c5 78 CMP &78 ; player_room &1d4a f0 08 BEQ &1d54 ; found_object &1d4c c8 INY &1d4d c0 1b CPY #&1b ; OBJECT_LAST + 1 &1d4f d0 f4 BNE &1d45 ; find_objects_in_room_loop &1d51 4c 63 1d JMP &1d63 ; skip_objects_in_room ; found_object &1d54 ea NOP &1d55 ea NOP &1d56 ea NOP &1d57 a9 6f LDA #&6f ; string_06f : "you can see " &1d59 20 2a 1d JSR &1d2a ; to_write_string_from_table_zero &1d5c a5 78 LDA &78 ; player_room &1d5e 85 11 STA &11 ; room_to_check &1d60 20 47 0f JSR &0f47 ; list_objects_in_room ; skip_objects_in_room &1d63 ad a0 4d LDA &4da0 ; lever_state &1d66 f0 0f BEQ &1d77 ; skip_north_force_field &1d68 a5 78 LDA &78 ; player_room &1d6a c9 3a CMP #&3a ; ROOM_3a ; "at the west end of the corridor outside the last cage that works" &1d6c f0 04 BEQ &1d72 ; there_is_a_force_field_to_the_north &1d6e c9 37 CMP #&37 ; ROOM_37 ; "at the beginning of a short ,dark corridor that continues to the east.You can just see small force cages lining the north side" &1d70 d0 05 BNE &1d77 ; skip_north_force_field ; there_is_a_force_field_to_the_north &1d72 a9 6a LDA #&6a ; string_06a : "there is a force field to the north" &1d74 20 2a 1d JSR &1d2a ; to_write_string_from_table_zero ; skip_north_force_field &1d77 a5 78 LDA &78 ; player_room &1d79 c9 5f CMP #&5f ; ROOM_5f ; "in a tall ornate corridor with a large slippery chute that enters through the wall and ,with a foothold ,would be climbable" &1d7b d0 0c BNE &1d89 ; skip_spiked_wall &1d7d ad 00 4e LDA &4e00 ; object_locations + OBJECT_SPIKE &1d80 c9 fe CMP #&fe ; ROOM_IN_WALL &1d82 d0 05 BNE &1d89 ; skip_spiked_wall &1d84 a9 6b LDA #&6b ; string_06b : "the wall is spiked " &1d86 20 2a 1d JSR &1d2a ; to_write_string_from_table_zero ; skip_spiked_wall &1d89 a5 78 LDA &78 ; player_room &1d8b c9 63 CMP #&63 ; ROOM_63 ; "at the west end of the desolate and deserted exhibition hall" &1d8d d0 0a BNE &1d99 ; skip_west_force_field &1d8f ad ab 4d LDA &4dab ; exhibition_hall_force_field_state &1d92 d0 05 BNE &1d99 ; skip_west_force_field &1d94 a9 6c LDA #&6c ; string_06c : "there is a forcefield to the west" &1d96 20 2a 1d JSR &1d2a ; to_write_string_from_table_zero ; skip_west_force_field &1d99 a5 78 LDA &78 ; player_room &1d9b 4c a5 24 JMP &24a5 ; consider_squeeky_voice_man # Returns at &1da4, &1dac or &1db5 ; unused &1d9e 0d ; unused &1d9f ad a9 4d LDA &4da9 ; squeeky_voice_man_state &1da2 d0 11 BNE &1db5 ; consider_gunge ; there_is_a_dead_body_here &1da4 a9 6d LDA #&6d ; string_06d : "there is a dead body here" &1da6 20 2a 1d JSR &1d2a ; to_write_string_from_table_zero &1da9 4c b5 1d JMP &1db5 ; consider_gunge ; consider_gunman # Called with A = player_room &1dac c9 65 CMP #&65 ; ROOM_65 ; "in a small sideroom with a neat little desk and a comfy looking seat" &1dae d0 05 BNE &1db5 ; consider_gunge &1db0 ad b4 4d LDA &4db4 ; gunman_state &1db3 d0 ef BNE &1da4 ; there_is_a_dead_body_here ; consider_gunge &1db5 a5 78 LDA &78 ; player_room &1db7 c9 11 CMP #&11 ; ROOM_11 ; "in the Biolab ,near a small table that is covered in gunge" &1db9 d0 0a BNE &1dc5 ; skip_gunge &1dbb cd 05 4e CMP &4e05 ; object_locations + OBJECT_GUNGE &1dbe d0 05 BNE &1dc5 ; skip_gunge &1dc0 a9 6e LDA #&6e ; string_06e : "there are many coloured bits of gunge" &1dc2 20 2a 1d JSR &1d2a ; to_write_string_from_table_zero ; skip_gunge &1dc5 ad 12 4e LDA &4e12 ; object_locations + OBJECT_SPECS &1dc8 c9 c8 CMP #&c8 ; ROOM_WEARING &1dca d0 3d BNE &1e09 ; skip_lasers &1dcc a5 78 LDA &78 ; player_room &1dce c9 0d CMP #&0d ; ROOM_0d ; "near the west end of the corridor.You can see small notches in the walls" &1dd0 90 37 BCC &1e09 ; skip_lasers &1dd2 c9 11 CMP #&11 ; 1 + ROOM_10 ; "at the west end of a large but bare round room ,decorated only with the words #'RESEARCH HALL'" &1dd4 b0 33 BCS &1e09 ; skip_lasers &1dd6 29 03 AND #&03 &1dd8 f0 13 BEQ &1ded ; skip_east_laser &1dda a9 67 LDA #&67 ; string_067 : "you can see a laser to the " &1ddc 20 2a 1d JSR &1d2a ; to_write_string_from_table_zero &1ddf a9 30 LDA #&30 ; string_230 : "east" &1de1 20 0c 0e JSR &0e0c ; to_write_string_from_table_two &1de4 a5 78 LDA &78 ; player_room &1de6 29 01 AND #&01 ; &069 - &068 : string_069 : " at knee height" &1de8 49 68 EOR #&68 ; string_068 : " at chest height" &1dea 20 2a 1d JSR &1d2a ; to_write_string_from_table_zero ; skip_east_laser &1ded a5 78 LDA &78 ; player_room &1def c9 0d CMP #&0d ; ROOM_0d ; "near the west end of the corridor.You can see small notches in the walls" &1df1 f0 16 BEQ &1e09 ; skip_lasers &1df3 ea NOP &1df4 ea NOP &1df5 ea NOP &1df6 a9 67 LDA #&67 ; string_067 : "you can see a laser to the " &1df8 20 2a 1d JSR &1d2a ; to_write_string_from_table_zero &1dfb a9 31 LDA #&31 ; string_231 : "west" &1dfd 20 0c 0e JSR &0e0c ; to_write_string_from_table_two &1e00 a5 78 LDA &78 ; player_room &1e02 29 01 AND #&01 ; &069 - &068 : string_068 : " at chest height" &1e04 49 69 EOR #&69 ; string_069 : " at knee height" &1e06 20 2a 1d JSR &1d2a ; to_write_string_from_table_zero ; skip_lasers &1e09 a5 78 LDA &78 ; player_room &1e0b c9 05 CMP #&05 ; ROOM_05 ; "at customs ,standing on another space platform in front of a large archway that leads into the space station" &1e0d d0 0c BNE &1e1b ; not_at_customs &1e0f ad 10 4e LDA &4e10 ; object_locations + OBJECT_SHAUNA &1e12 c9 04 CMP #&04 ; ROOM_04 ; "beside a spaceship on one of many vast platforms in space ,all visited by some large droids saying '#FOR HIRE BUT FREE FOR ALL TODAY'" &1e14 d0 05 BNE &1e1b ; skip_removing_shauna &1e16 a9 ff LDA #&ff ; ROOM_HIDDEN &1e18 8d 10 4e STA &4e10 ; object_locations + OBJECT_SHAUNA ; skip_removing_shauna ; not_at_customs &1e1b a5 78 LDA &78 ; player_room &1e1d c9 04 CMP #&04 ; ROOM_04 ; "beside a spaceship on one of many vast platforms in space ,all visited by some large droids saying '#FOR HIRE BUT FREE FOR ALL TODAY'" &1e1f d0 2f BNE &1e50 ; not_in_space &1e21 a0 00 LDY #&00 ; check_if_shauna_berth_loop &1e23 b9 af 4d LDA &4daf,Y ; berth_number &1e26 d9 c0 4d CMP &4dc0,Y ; shauna_berth_number &1e29 d0 11 BNE &1e3c ; skip_adding_shauna &1e2b c8 INY &1e2c c0 04 CPY #&04 &1e2e d0 f3 BNE &1e23 ; check_if_shauna_berth_loop &1e30 ad 10 4e LDA &4e10 ; object_locations + OBJECT_SHAUNA &1e33 c9 ff CMP #&ff ; ROOM_HIDDEN &1e35 d0 05 BNE &1e3c ; skip_adding_shauna &1e37 a9 04 LDA #&04 ; ROOM_04 ; "beside a spaceship on one of many vast platforms in space ,all visited by some large droids saying '#FOR HIRE BUT FREE FOR ALL TODAY'" &1e39 4c 67 27 JMP &2767 ; set_shauna_location # Returns at &1e3c ; skip_adding_shauna &1e3c a0 00 LDY #&00 ; check_if_player_berth_loop &1e3e b9 af 4d LDA &4daf,Y ; berth_number &1e41 d9 c4 4d CMP &4dc4,Y ; player_berth_number &1e44 d0 0a BNE &1e50 ; skip_shauna &1e46 c8 INY &1e47 c0 04 CPY #&04 &1e49 d0 f3 BNE &1e3e ; check_if_player_berth_loop &1e4b a9 02 LDA #&02 ; ROOM_02 ; "standing in the cockpit of your spacefighter.You can see the vast space station through the main screen beside the exit hatchway" &1e4d 8d fa 61 STA &61fa ; room_exits + DIRECTION_IN ; not_in_space &1e50 a5 78 LDA &78 ; player_room &1e52 c9 02 CMP #&02 ; ROOM_02 ; "standing in the cockpit of your spacefighter.You can see the vast space station through the main screen beside the exit hatchway" &1e54 d0 0c BNE &1e62 ; not_in_cockpit &1e56 ad ae 4d LDA &4dae ; evacuation_timer &1e59 c9 ff CMP #&ff &1e5b d0 05 BNE &1e62 ; not_in_cockpit &1e5d a9 04 LDA #&04 ; ROOM_04 ; "beside a spaceship on one of many vast platforms in space ,all visited by some large droids saying '#FOR HIRE BUT FREE FOR ALL TODAY'" &1e5f 8d fb 61 STA &61fb ; room_exits + DIRECTION_OUT ; not_in_cockpit &1e62 a2 0d LDX #&0d &1e64 a0 00 LDY #&00 ; count_room_exits_loop &1e66 ca DEX &1e67 bd f0 61 LDA &61f0,X ; room_exits &1e6a f0 01 BEQ &1e6d ; consider_next_exit_for_counting &1e6c c8 INY ; consider_next_exit_for_counting &1e6d 8a TXA &1e6e d0 f6 BNE &1e66 ; count_room_exits_loop &1e70 98 TYA &1e71 f0 32 BEQ &1ea5 ; leave &1e73 48 PHA &1e74 20 11 41 JSR &4111 ; end_string &1e77 68 PLA &1e78 a8 TAY &1e79 ea NOP &1e7a a9 15 LDA #&15 ; string_215 : "You can go " &1e7c 20 0c 0e JSR &0e0c ; to_write_string_from_table_two &1e7f a2 00 LDX #&00 ; write_room_exits_loop &1e81 bd f0 61 LDA &61f0,X ; room_exits &1e84 f0 2a BEQ &1eb0 ; consider_next_exit_for_writing &1e86 8a TXA &1e87 18 CLC &1e88 69 2e ADC #&2e ; string_22e : "north" &1e8a 20 0c 0e JSR &0e0c ; to_write_string_from_table_two &1e8d 88 DEY &1e8e c0 01 CPY #&01 &1e90 d0 08 BNE &1e9a ; not_penultimate_exit &1e92 4c 8d 23 JMP &238d ; is_penultimate_exit ; unused &1e95 0c 0e ... &0e0c ; to_write_string_from_table_two &1e97 4c b0 1e JMP &1eb0 ; consider_next_exit_for_writing ; not_penultimate_exit &1e9a 98 TYA &1e9b d0 09 BNE &1ea6 ; not_last_exit &1e9d a9 2e LDA #&2e ; "." &1e9f 20 71 10 JSR &1071 ; to_write_character_preserving_variables &1ea2 20 75 10 JSR &1075 ; to_write_spaces_until_start_of_line_preserving_variables ; leave &1ea5 60 RTS ; not_last_exit &1ea6 a9 2c LDA #&2c ; "," &1ea8 20 71 10 JSR &1071 ; to_write_character_preserving_variables &1eab a5 7e LDA &7e ; text_screen_address_low &1ead 20 5f 48 JSR &485f ; optionally_write_space_preserving_variables ; consider_next_exit_for_writing &1eb0 e8 INX &1eb1 4c 81 1e JMP &1e81 ; write_room_exits_loop ; write_droid_states &1eb4 a0 00 LDY #&00 ; write_droid_states_loop &1eb6 b9 a3 4d LDA &4da3,Y ; lugobot_room &1eb9 c5 78 CMP &78 ; player_room &1ebb d0 19 BNE &1ed6 ; consider_next_droid &1ebd ea NOP &1ebe ea NOP &1ebf ea NOP &1ec0 a9 6f LDA #&6f ; string_06f : "you can see " &1ec2 20 2a 1d JSR &1d2a ; to_write_string_from_table_zero &1ec5 98 TYA &1ec6 f0 09 BEQ &1ed1 ; a_cute_little_lugobot &1ec8 18 CLC &1ec9 69 1a ADC #&1a ; &1b - 1 : string_21b : "a mean looking guardroid" or &1c - 2 : string_21c : "a nasty aggrodroid" or &1d - 3 : string_21d : "a railed servobot" &1ecb 20 0c 0e JSR &0e0c ; to_write_string_from_table_two &1ece 4c d6 1e JMP &1ed6 ; consider_next_droid ; a_cute_little_lugobot &1ed1 a9 2a LDA #&2a ; string_02a : "a cute little lugobot" &1ed3 20 2a 1d JSR &1d2a ; to_write_string_from_table_zero ; consider_next_droid &1ed6 c8 INY &1ed7 c0 04 CPY #&04 &1ed9 d0 db BNE &1eb6 ; write_droid_states_loop &1edb 60 RTS ; act_on_input &1edc a5 50 LDA &50 ; last_verb &1ede d0 13 BNE &1ef3 ; handle_verb &1ee0 a5 51 LDA &51 ; first_noun &1ee2 c9 20 CMP #&20 ; NOUN_DEACTIVATOR &1ee4 f0 09 BEQ &1eef ; handle_deactivate &1ee6 20 bd 0f JSR &0fbd ; rnd &1ee9 29 01 AND #&01 ; &101 - &100 : string_100 : "eh?" or string_101 : "i don't understand" &1eeb 20 00 0e JSR &0e00 ; to_write_string_from_table_one &1eee 60 RTS ; handle_deactivate &1eef a9 15 LDA #&15 ; VERB_INSERT &1ef1 85 50 STA &50 ; last_verb ; handle_verb &1ef3 a4 50 LDY &50 ; last_verb &1ef5 c0 0e CPY #&0e ; VERB_SWIM + 1 &1ef7 90 03 BCC &1efc ; handle_movement &1ef9 4c f6 10 JMP &10f6 ; consider_quit ; handle_movement &1efc c9 0d CMP #&0d ; VERB_SWIM &1efe d0 20 BNE &1f20 ; handle_direction ; handle_swim &1f00 a5 78 LDA &78 ; player_room &1f02 c9 2d CMP #&2d ; ROOM_2d ; "at the end of the walkway ,in a vast lab with a large vat of a liquid.It is marked #BREATHABLE" &1f04 90 14 BCC &1f1a ; there_are_places_for_people_like_you &1f06 c9 2f CMP #&2f ; 1 + ROOM_2e ; "in the liquid, somehow breathing it" &1f08 b0 10 BCS &1f1a ; there_are_places_for_people_like_you &1f0a a4 78 LDY &78 ; player_room &1f0c c8 INY &1f0d 98 TYA &1f0e 49 01 EOR #&01 &1f10 85 78 STA &78 ; player_room &1f12 c6 78 DEC &78 ; player_room # Swap between ROOM_2d and ROOM_2e &1f14 a5 78 LDA &78 ; player_room &1f16 20 a0 0f JSR &0fa0 ; to_initialise_room_exits &1f19 60 RTS ; there_are_places_for_people_like_you &1f1a a9 0a LDA #&0a ; string_10a : "there are places for people like you" &1f1c 20 00 0e JSR &0e00 ; to_write_string_from_table_one &1f1f 60 RTS ; handle_direction &1f20 b9 ef 61 LDA &61ef,Y ; room_exits - 1 &1f23 d0 06 BNE &1f2b ; handle_direction_with_exit &1f25 a9 05 LDA #&05 ; string_105 : "you can't go in that direction" &1f27 20 00 0e JSR &0e00 ; to_write_string_from_table_one &1f2a 60 RTS ; handle_direction_with_exit &1f2b a5 78 LDA &78 ; player_room &1f2d c9 0d CMP #&0d ; ROOM_0d ; "near the west end of the corridor.You can see small notches in the walls" &1f2f 90 2e BCC &1f5f ; not_long_corridor &1f31 c9 11 CMP #&11 ; 1 + ROOM_10 ; "at the west end of a large but bare round room ,decorated only with the words #'RESEARCH HALL'" &1f33 b0 2a BCS &1f5f ; not_long_corridor &1f35 a5 50 LDA &50 ; last_verb &1f37 c9 03 CMP #&03 ; VERB_EAST &1f39 90 24 BCC &1f5f ; not_long_corridor &1f3b a6 50 LDX &50 ; last_verb &1f3d e8 INX &1f3e 8a TXA &1f3f 49 01 EOR #&01 &1f41 18 CLC # A is 4 if moving west, 5 if moving east, &1f42 65 78 ADC &78 ; player_room &1f44 c9 12 CMP #&12 ; 5 + ROOM_0d ; "near the west end of the corridor.You can see small notches in the walls" &1f46 90 17 BCC &1f5f ; not_long_corridor # Can leave west end of corridor safely to west &1f48 c9 15 CMP #&15 ; 5 + ROOM_10 ; "at the west end of a large but bare round room ,decorated only with the words #'RESEARCH HALL'" &1f4a b0 13 BCS &1f5f ; not_long_corridor # Can leave east end of corridor safely to west &1f4c 29 01 AND #&01 ; NOUN_CRAWL - NOUN_JUMP &1f4e 18 CLC &1f4f 69 03 ADC #&03 ; NOUN_JUMP &1f51 c5 51 CMP &51 ; first_noun &1f53 f0 0a BEQ &1f5f ; not_long_corridor &1f55 a9 06 LDA #&06 ; string_106 : "you feel a searing sensation through your body" &1f57 20 00 0e JSR &0e00 ; to_write_string_from_table_one &1f5a a9 ff LDA #&ff ; ROOM_DEAD &1f5c 85 78 STA &78 ; player_room &1f5e 60 RTS ; not_long_corridor &1f5f a5 78 LDA &78 ; player_room &1f61 c9 37 CMP #&37 ; ROOM_37 ; "at the beginning of a short ,dark corridor that continues to the east.You can just see small force cages lining the north side" &1f63 90 15 BCC &1f7a ; not_force_cages &1f65 c9 3b CMP #&3b ; 1 + ROOM_3a ; "at the west end of the corridor outside the last cage that works" &1f67 b0 11 BCS &1f7a ; not_force_cages &1f69 ad a0 4d LDA &4da0 ; lever_state &1f6c f0 0c BEQ &1f7a ; not_force_cages &1f6e a5 50 LDA &50 ; last_verb &1f70 c9 01 CMP #&01 ; VERB_NORTH &1f72 d0 06 BNE &1f7a ; not_force_cages &1f74 a9 07 LDA #&07 ; string_107 : "you are forced back" &1f76 20 00 0e JSR &0e00 ; to_write_string_from_table_one &1f79 60 RTS ; not_force_cages &1f7a a5 78 LDA &78 ; player_room &1f7c c9 21 CMP #&21 ; ROOM_21 ; "in what was once a foozball court until someone died from batshock.There is a mean looking robodroid here" &1f7e d0 11 BNE &1f91 ; not_foozball_court &1f80 ad aa 4d LDA &4daa ; robodroid_state &1f83 f0 0c BEQ &1f91 ; not_foozball_court &1f85 a5 50 LDA &50 ; last_verb &1f87 c9 08 CMP #&08 ; VERB_SW &1f89 d0 06 BNE &1f91 ; not_foozball_court &1f8b a9 08 LDA #&08 ; string_108 : "the droid stands in your way" &1f8d 20 00 0e JSR &0e00 ; to_write_string_from_table_one &1f90 60 RTS ; not_foozball_court &1f91 a5 50 LDA &50 ; last_verb &1f93 c9 03 CMP #&03 ; VERB_EAST &1f95 b0 24 BCS &1fbb ; not_electrocuted # Branches if not moving north or south &1f97 65 78 ADC &78 ; player_room &1f99 c9 52 CMP #&52 ; VERB_SOUTH + ROOM_50 or VERB_NORTH + ROOM_51 ; "at the south end of the 'statilab ,just beside the charged mesh" &1f9b d0 1e BNE &1fbb ; not_electrocuted &1f9d ad ad 4d LDA &4dad ; sitting_on_lugobot &1fa0 d0 0a BNE &1fac ; is_sitting_on_lugobot &1fa2 a9 09 LDA #&09 ; string_109 : "you are electrocuted" &1fa4 20 00 0e JSR &0e00 ; to_write_string_from_table_one &1fa7 a9 ff LDA #&ff ; ROOM_DEAD &1fa9 85 78 STA &78 ; player_room &1fab 60 RTS ; is_sitting_on_lugobot &1fac ad a7 4d LDA &4da7 ; lugobot_has_shield &1faf d0 0a BNE &1fbb ; not_electrocuted &1fb1 a9 0c LDA #&0c ; string_10c : "the current passes through the lugobot and into you" &1fb3 20 00 0e JSR &0e00 ; to_write_string_from_table_one &1fb6 a9 ff LDA #&ff ; ROOM_DEAD &1fb8 85 78 STA &78 ; player_room &1fba 60 RTS ; not_electrocuted &1fbb a5 78 LDA &78 ; player_room &1fbd 18 CLC &1fbe 65 50 ADC &50 ; last_verb &1fc0 c9 09 CMP #&09 ; VERB_WEST + ROOM_05 or VERB_EAST + ROOM_06 &1fc2 d0 17 BNE &1fdb ; not_bad_credit # Branches if not moving west or east through customs &1fc4 ad 04 4e LDA &4e04 ; object_locations + OBJECT_CREDIT &1fc7 d0 0a BNE &1fd3 ; is_clean &1fc9 a9 10 LDA #&10 ; string_110 : "'scan positive ,sentence is death'" &1fcb 20 00 0e JSR &0e00 ; to_write_string_from_table_one &1fce a9 ff LDA #&ff ; ROOM_DEAD &1fd0 85 78 STA &78 ; player_room &1fd2 60 RTS ; is_clean &1fd3 a9 11 LDA #&11 ; string_111 : "'clean'" &1fd5 20 00 0e JSR &0e00 ; to_write_string_from_table_one &1fd8 4c db 1f JMP &1fdb ; not_bad_credit ; not_bad_credit &1fdb b9 ef 61 LDA &61ef,Y ; room_exits - 1 &1fde c9 4c CMP #&4c ; ROOM_4c ; "in the magnolab ,which is really just a long corridor with vast magnets forming both walls" &1fe0 d0 1b BNE &1ffd ; not_magnolab &1fe2 ad a9 4d LDA &4da9 ; squeeky_voice_man_state &1fe5 f0 16 BEQ &1ffd ; not_magnolab &1fe7 a9 4c LDA #&4c ; ROOM_4c ; "in the magnolab ,which is really just a long corridor with vast magnets forming both walls" &1fe9 85 78 STA &78 ; player_room &1feb 20 31 1d JSR &1d31 ; to_write_room_description_and_plot_graphics &1fee 20 75 10 JSR &1075 ; to_write_spaces_until_start_of_line_preserving_variables &1ff1 20 98 26 JSR &2698 ; update_squeeky_voice_man &1ff4 ad a9 4d LDA &4da9 ; squeeky_voice_man_state &1ff7 69 0d ADC #&0d ; string_10d : "the man kills you" &1ff9 20 00 0e JSR &0e00 ; to_write_string_from_table_one &1ffc 60 RTS ; not_magnolab &1ffd ad a4 4d LDA &4da4 ; guardroid_room &2000 c5 78 CMP &78 ; player_room &2002 d0 0c BNE &2010 ; not_blocked_by_guardroid &2004 a5 50 LDA &50 ; last_verb &2006 c9 04 CMP #&04 ; VERB_WEST &2008 d0 06 BNE &2010 ; not_blocked_by_guardroid ; the_droid_stands_in_your_way &200a a9 72 LDA #&72 ; string_172 : "the droid stands in your way" &200c 20 00 0e JSR &0e00 ; to_write_string_from_table_one &200f 60 RTS ; not_blocked_by_guardroid &2010 ad a5 4d LDA &4da5 ; aggrodroid_room &2013 c5 78 CMP &78 ; player_room &2015 d0 06 BNE &201d ; not_blocked_by_aggrodroid &2017 a5 50 LDA &50 ; last_verb &2019 c9 03 CMP #&03 ; VERB_EAST &201b f0 ed BEQ &200a ; the_droid_stands_in_your_way ; not_blocked_by_aggrodroid &201d b9 ef 61 LDA &61ef,Y ; room_exits - 1 &2020 85 78 STA &78 ; player_room &2022 c9 32 CMP #&32 ; ROOM_32 ; "in the radiation therapy operating theatre ,a small room with a couch" &2024 d0 18 BNE &203e ; not_radiation_theatre &2026 a9 c8 LDA #&c8 ; ROOM_WEARING &2028 cd 01 4e CMP &4e01 ; object_locations + OBJECT_SPACE_SUIT &202b d0 05 BNE &2032 ; the_radiation_seeps_through_you &202d cd 02 4e CMP &4e02 ; object_locations + OBJECT_HELMET &2030 f0 0a BEQ &203c ; not_irradiated ; the_radiation_seeps_through_you &2032 a9 0b LDA #&0b ; string_10b : "the radiation seeps through you" &2034 20 00 0e JSR &0e00 ; to_write_string_from_table_one &2037 a9 ff LDA #&ff ; PLAYER_DEAD &2039 85 78 STA &78 ; player_room &203b 60 RTS ; not_irradiated &203c a5 78 LDA &78 ; player_room ; not_radiation_theatre &203e 20 a0 0f JSR &0fa0 ; to_initialise_room_exits &2041 ad ad 4d LDA &4dad ; sitting_on_lugobot &2044 f0 0a BEQ &2050 ; leave &2046 a9 14 LDA #&14 ; string_114 : "the lugobot throws you off" &2048 20 00 0e JSR &0e00 ; to_write_string_from_table_one &204b a9 00 LDA #&00 # Set to zero to indicate player not sitting on lugobot &204d 8d ad 4d STA &4dad ; sitting_on_lugobot &2050 60 RTS ; update_game &2051 20 54 23 JSR &2354 ; update_gunman &2054 20 e8 20 JSR &20e8 ; update_guardroid_and_aggrodroid &2057 20 8f 21 JSR &218f ; update_lugobot_monkey_and_dog &205a 20 f6 0e JSR &0ef6 ; update_evacuation_countdown &205d a5 78 LDA &78 ; player_room &205f c9 ff CMP #&ff ; ROOM_DEAD &2061 d0 0c BNE &206f ; not_dead &2063 a9 38 LDA #&38 ; string_138 : "you are dead" &2065 20 00 0e JSR &0e00 ; to_write_string_from_table_one &2068 20 44 10 JSR &1044 ; to_calculate_and_write_score &206b 20 22 10 JSR &1022 ; write_rating &206e 60 RTS ; not_dead &206f 20 1c 0e JSR &0e1c ; update_servobot &2072 20 13 0e JSR &0e13 ; decrease_gas_timer &2075 60 RTS ; move_npc &2076 a9 ff LDA #&ff ; ROOM_BLOCKED &2078 85 81 STA &81 ; npc_new_room &207a a5 80 LDA &80 ; npc_previous_room &207c 20 80 10 JSR &1080 ; find_room_exits &207f a5 6d LDA &6d ; npc_string &2081 c9 51 CMP #&51 ; string_151 : "the dog stalks " &2083 d0 1e BNE &20a3 ; move_npc_randomly &2085 ac 0e 4e LDY &4e0e ; object_locations + OBJECT_DOG &2088 c0 3f CPY #&3f ; ROOM_3f ; "within the spacemaze, surrounded by twisting corridors and gleaming walls" &208a 90 17 BCC &20a3 ; move_npc_randomly &208c c0 4f CPY #&4f ; 1 + ROOM_4e ; "at a 3 way fork between the long corridor and 2 side corridors that go northwest and southwest" &208e b0 13 BCS &20a3 ; move_npc_randomly &2090 ad 03 4e LDA &4e03 ; object_locations + OBJECT_SCRAP &2093 c9 ff CMP #&ff ; ROOM_HIDDEN # &ff if dog was given scrap &2095 d0 0c BNE &20a3 ; move_npc_randomly &2097 ad b4 4d LDA &4db4 ; gunman_state # Non-zero if man aiming gun is dead &209a d0 07 BNE &20a3 ; move_npc_randomly &209c b9 3b 15 LDA &153b,Y ; dog_directions - &3f # Make dog move towards man aiming gun &209f a8 TAY &20a0 4c a9 20 JMP &20a9 ; consider_moving_npc ; move_npc_randomly &20a3 20 bd 0f JSR &0fbd ; rnd &20a6 29 07 AND #&07 # Choose random direction, but not up, down, in or out &20a8 a8 TAY ; consider_moving_npc &20a9 b9 80 09 LDA &0980,Y ; temporary_room_exits &20ac f0 24 BEQ &20d2 ; leave &20ae 4c b3 26 JMP &26b3 ; set_npc_new_room # Returns at &20b2 ; unused &20b1 78 ; check_if_player_can_see_npc &20b2 f0 07 BEQ &20bb ; player_can_see_npc &20b4 a5 80 LDA &80 ; npc_previous_room &20b6 c5 78 CMP &78 ; player_room &20b8 f0 01 BEQ &20bb ; player_can_see_npc &20ba 60 RTS ; player_can_see_npc &20bb a5 6d LDA &6d ; npc_string &20bd 20 00 0e JSR &0e00 ; to_write_string_from_table_one &20c0 a5 80 LDA &80 ; npc_previous_room &20c2 c5 78 CMP &78 ; player_room &20c4 d0 0d BNE &20d3 ; npc_enters_player_room ; npc_leaves_player_room &20c6 a9 4b LDA #&4b ; string_24b : "off to the " &20c8 20 0c 0e JSR &0e0c ; to_write_string_from_table_two &20cb 98 TYA &20cc 18 CLC &20cd 69 2e ADC #&2e ; string_22e : "north" &20cf 20 0c 0e JSR &0e0c ; to_write_string_from_table_two ; leave &20d2 60 RTS ; npc_enters_player_room &20d3 a9 4a LDA #&4a ; string_24a : "in from the " &20d5 20 0c 0e JSR &0e0c ; to_write_string_from_table_two &20d8 98 TYA &20d9 49 01 EOR #&01 ; DIRECTION_SOUTH ^ DIRECTION_NORTH &20db 18 CLC &20dc 69 2e ADC #&2e ; string_22e : "north" &20de c9 32 CMP #&32 ; string_232 : "northeast" &20e0 90 02 BCC &20e4 ; not_ordinal_direction &20e2 49 06 EOR #&06 ; &234 ^ &232 ; string_234 : "northwest" ; not_ordinal_direction &20e4 20 0c 0e JSR &0e0c ; to_write_string_from_table_two &20e7 60 RTS ; update_guardroid_and_aggrodroid &20e8 ad a4 4d LDA &4da4 ; guardroid_room &20eb f0 3e BEQ &212b ; skip_moving_guardroid &20ed c5 78 CMP &78 ; player_room &20ef f0 3a BEQ &212b ; skip_moving_guardroid &20f1 ad b5 4d LDA &4db5 ; droid_directions &20f4 29 01 AND #&01 ; GUARDROID_MOVING_WEST &20f6 f0 21 BEQ &2119 ; move_guardroid_east ; move_guardroid_west &20f8 ce a4 4d DEC &4da4 ; guardroid_room &20fb ad a4 4d LDA &4da4 ; guardroid_room &20fe c5 78 CMP &78 ; player_room &2100 d0 05 BNE &2107 ; skip_writing_guardroid_entry &2102 a9 43 LDA #&43 ; string_143 : "the guardroid enters from the west" &2104 20 00 0e JSR &0e00 ; to_write_string_from_table_one ; skip_writing_guardroid_entry &2107 ad a4 4d LDA &4da4 ; guardroid_room &210a c9 5b CMP #&5b ; ROOM_5b ; "at a T junction that connects a very long maintenance corridor with a small corridor to the south" &210c d0 1d BNE &212b ; skip_moving_guardroid &210e ad b5 4d LDA &4db5 ; droid_directions &2111 49 01 EOR #&01 ; GUARDROID_MOVING_WEST # Set guardroid moving in opposite direction &2113 8d b5 4d STA &4db5 ; droid_directions &2116 4c 2b 21 JMP &212b ; skip_moving_guardroid ; move_guardroid_east &2119 ee a4 4d INC &4da4 ; guardroid_room &211c ad a4 4d LDA &4da4 ; guardroid_room &211f c9 5e CMP #&5e ; ROOM_5e ; "in the tool storage area.Looted by space pirates ,it is depressingly bare" &2121 d0 08 BNE &212b ; skip_moving_guardroid &2123 ad b5 4d LDA &4db5 ; droid_directions &2126 49 01 EOR #&01 ; GUARDROID_MOVING_WEST # Set guardroid moving in opposite direction &2128 8d b5 4d STA &4db5 ; droid_directions ; skip_moving_guardroid &212b ad a5 4d LDA &4da5 ; aggrodroid_room &212e f0 29 BEQ &2159 ; skip_moving_aggrodroid &2130 c5 78 CMP &78 ; player_room &2132 f0 25 BEQ &2159 ; skip_moving_aggrodroid &2134 ad b5 4d LDA &4db5 ; droid_directions &2137 29 02 AND #&02 ; AGGRODROID_MOVING_EAST &2139 f0 41 BEQ &217c ; move_aggrodroid_west ; move_aggrodroid_east &213b ee a5 4d INC &4da5 ; aggrodroid_room &213e ad a5 4d LDA &4da5 ; aggrodroid_room &2141 c5 78 CMP &78 ; player_room &2143 d0 05 BNE &214a ; skip_writing_aggrodroid_entry &2145 a9 44 LDA #&44 ; string_144 : "the aggrodroid enters from the east" &2147 20 00 0e JSR &0e00 ; to_write_string_from_table_one ; skip_writing_aggrodroid_entry &214a ad a5 4d LDA &4da5 ; aggrodroid_room &214d c9 5b CMP #&5b ; ROOM_5b ; "at a T junction that connects a very long maintenance corridor with a small corridor to the south" &214f d0 08 BNE &2159 ; skip_moving_aggrodroid &2151 ad b5 4d LDA &4db5 ; droid_directions &2154 49 02 EOR #&02 ; AGGRODROID_MOVING_EAST # Set aggrodroid moving in opposite direction &2156 8d b5 4d STA &4db5 ; droid_directions ; skip_moving_aggrodroid &2159 ad a4 4d LDA &4da4 ; guardroid_room &215c c9 5b CMP #&5b ; ROOM_5b ; "at a T junction that connects a very long maintenance corridor with a small corridor to the south" &215e d0 1b BNE &217b ; leave &2160 cd a5 4d CMP &4da5 ; aggrodroid_room &2163 d0 16 BNE &217b ; leave &2165 4c 27 25 JMP &2527 ; the_droids_glare_at_each_other # Returns at &216a ; unused &2168 00 0e ... &0e00 ; to_write_string_from_table_one ; check_if_guardroid_is_carrying_foozbat &216a ad 16 4e LDA &4e16 ; object_locations + OBJECT_FOOZBAT &216d c9 ff CMP #&ff ; ROOM_HIDDEN # &ff if guardroid has been given foozbat &216f d0 0a BNE &217b ; leave &2171 a9 71 LDA #&71 ; string_171 : "the guardroid pulverises the aggrodroid with the bat " &2173 20 00 0e JSR &0e00 ; to_write_string_from_table_one &2176 a9 00 LDA #&00 ; ROOM_PULVERISED &2178 8d a5 4d STA &4da5 ; aggrodroid_room ; leave &217b 60 RTS ; move_aggrodroid_west &217c ce a5 4d DEC &4da5 ; aggrodroid_room &217f ad a5 4d LDA &4da5 ; aggrodroid_room &2182 c9 58 CMP #&58 ; ROOM_58 ; "at the very end of the corridor ,outside a large room to the south" &2184 d0 d3 BNE &2159 ; skip_moving_aggrodroid &2186 ad b5 4d LDA &4db5 ; droid_directions &2189 49 02 EOR #&02 ; AGGRODROID_MOVING_EAST # Set aggrodroid moving in opposite direction &218b 8d b5 4d STA &4db5 ; droid_directions &218e 60 RTS ; update_lugobot_monkey_and_dog &218f ad a3 4d LDA &4da3 ; lugobot_room &2192 f0 16 BEQ &21aa ; skip_moving_lugobot # If the lugobot isn't following the player, &2194 c9 ff CMP #&ff ; ROOM_HIDDEN &2196 f0 12 BEQ &21aa ; skip_moving_lugobot # and the lugobot hasn't been destroyed, &2198 85 80 STA &80 ; npc_previous_room &219a a9 4f LDA #&4f ; string_14f : "the lugobot trundles " &219c 85 6d STA &6d ; npc_string &219e 20 76 20 JSR &2076 ; move_npc &21a1 a5 81 LDA &81 ; npc_new_room &21a3 c9 ff CMP #&ff ; ROOM_BLOCKED &21a5 f0 03 BEQ &21aa ; skip_moving_lugobot &21a7 8d a3 4d STA &4da3 ; lugobot_room # move the lugobot ; skip_moving_lugobot &21aa ad 0d 4e LDA &4e0d ; object_locations + OBJECT_MONKEY &21ad 4d 0e 4e EOR &4e0e ; object_locations + OBJECT_DOG &21b0 f0 11 BEQ &21c3 ; monkey_and_dog_are_in_same_room &21b2 c5 78 CMP &78 ; player_room &21b4 d0 2c BNE &21e2 ; skip_monkey_and_dog # Branch if not carrying one and in room with the other &21b6 cd 0e 4e CMP &4e0e ; object_locations + OBJECT_DOG &21b9 f0 22 BEQ &21dd ; the_dog_and_monkey_snarl_at_each_other # Player is carrying monkey &21bb cd 0d 4e CMP &4e0d ; object_locations + OBJECT_MONKEY &21be f0 1d BEQ &21dd ; the_dog_and_monkey_snarl_at_each_other # Player is carrying dog &21c0 4c e2 21 JMP &21e2 ; skip_monkey_and_dog ; monkey_and_dog_are_in_same_room &21c3 ad 0d 4e LDA &4e0d ; object_locations + OBJECT_MONKEY &21c6 f0 07 BEQ &21cf ; the_dog_and_monkey_savage_each_other_to_death &21c8 c5 78 CMP &78 ; player_room &21ca d0 16 BNE &21e2 ; skip_monkey_and_dog &21cc 4c dd 21 JMP &21dd ; the_dog_and_monkey_snarl_at_each_other # Player is carrying neither monkey nor dog ; the_dog_and_monkey_savage_each_other_to_death # Player is carrying both monkey and dog &21cf a9 25 LDA #&25 ; string_125 : "the dog and monkey savage each other to death" &21d1 20 00 0e JSR &0e00 ; to_write_string_from_table_one &21d4 a9 ff LDA #&ff ; ROOM_HIDDEN &21d6 8d 0d 4e STA &4e0d ; object_locations + OBJECT_MONKEY # Set to &ff to indicate monkey killed &21d9 8d 0e 4e STA &4e0e ; object_locations + OBJECT_DOG # Set to &ff to indicate dog killed &21dc 60 RTS ; the_dog_and_monkey_snarl_at_each_other &21dd a9 26 LDA #&26 ; string_126 : "the dog and monkey snarl at each other" &21df 20 00 0e JSR &0e00 ; to_write_string_from_table_one ; skip_monkey_and_dog &21e2 ad 0d 4e LDA &4e0d ; object_locations + OBJECT_MONKEY &21e5 f0 12 BEQ &21f9 ; skip_moving_monkey # If the player isn't carrying the monkey, &21e7 85 80 STA &80 ; npc_previous_room &21e9 a9 50 LDA #&50 ; string_150 : "the monkey swings " &21eb 85 6d STA &6d ; npc_string &21ed 20 76 20 JSR &2076 ; move_npc &21f0 a5 81 LDA &81 ; npc_new_room &21f2 c9 ff CMP #&ff ; ROOM_BLOCKED &21f4 f0 03 BEQ &21f9 ; skip_moving_monkey &21f6 8d 0d 4e STA &4e0d ; object_locations + OBJECT_MONKEY # move the monkey ; skip_moving_monkey &21f9 ad 0e 4e LDA &4e0e ; object_locations + OBJECT_DOG &21fc f0 13 BEQ &2211 ; skip_moving_dog # If the player isn't carrying the dog, &21fe 85 80 STA &80 ; npc_previous_room &2200 a9 51 LDA #&51 ; string_151 : "the dog stalks " &2202 85 6d STA &6d ; npc_string &2204 20 76 20 JSR &2076 ; move_npc &2207 a5 81 LDA &81 ; npc_new_room &2209 c9 ff CMP #&ff ; ROOM_BLOCKED &220b f0 03 BEQ &2210 ; leave &220d 8d 0e 4e STA &4e0e ; object_locations + OBJECT_DOG # move the dog ; leave &2210 60 RTS ; skip_moving_dog &2211 a5 78 LDA &78 ; player_room &2213 c9 3f CMP #&3f ; ROOM_3f ; "within the spacemaze, surrounded by twisting corridors and gleaming walls" &2215 90 13 BCC &222a ; leave &2217 c9 4f CMP #&4f ; 1 + ROOM_4e ; "at a 3 way fork between the long corridor and 2 side corridors that go northwest and southwest" &2219 b0 0f BCS &222a ; leave &221b 4c 13 25 JMP &2513 ; consider_dog_straining_in_spacemaze # Returns at &221e or &222a ; dog_strains_in_spacemaze &221e 20 00 0e JSR &0e00 ; to_write_string_from_table_one &2221 b9 3b 15 LDA &153b,Y ; dog_directions - &3f &2224 18 CLC &2225 69 2e ADC #&2e ; string_22e : "north" &2227 20 0c 0e JSR &0e0c ; to_write_string_from_table_two ; leave &222a 60 RTS ; parse_input &222b a9 00 LDA #&00 &222d 85 72 STA &72 ; verb &222f 85 73 STA &73 ; noun &2231 85 74 STA &74 ; last_noun &2233 85 52 STA &52 ; first_verb &2235 85 55 STA &55 ; number_of_words &2237 a0 ff LDY #&ff ; check_word_against_vocabulary &2239 a2 00 LDX #&00 &223b 8a TXA ; wipe_word_buffer_loop &223c 9d 80 09 STA &0980,X ; word_buffer &223f e8 INX &2240 e0 07 CPX #&07 &2242 d0 f8 BNE &223c ; wipe_word_buffer_loop &2244 a2 ff LDX #&ff ; copy_word_into_buffer_loop &2246 c8 INY &2247 b9 e0 07 LDA &07e0,Y ; input_buffer &224a c9 21 CMP #&21 ; " " + 1 &224c 90 07 BCC &2255 ; end_of_input_word # Branch if space or carriage return &224e e8 INX &224f 9d 80 09 STA &0980,X ; word_buffer &2252 4c 46 22 JMP &2246 ; copy_word_into_buffer_loop ; end_of_input_word &2255 e6 55 INC &55 ; number_of_words &2257 e0 ff CPX #&ff &2259 d0 03 BNE &225e ; word_is_not_null &225b 4c 02 23 JMP &2302 ; consider_next_word ; word_is_not_null &225e e0 04 CPX #&04 &2260 90 02 BCC &2264 ; skip_floor &2262 a2 03 LDX #&03 ; skip_floor &2264 e0 ff CPX #&ff # X is never &ff here, see &2257 &2266 d0 03 BNE &226b ; word_is_still_not_null # Always branches &2268 4c 02 23 JMP &2302 ; consider_next_word # Unnecessary code ; word_is_still_not_null &226b 84 4c STY &4c ; offset &226d 86 4d STX &4d ; input_word_length &226f a9 00 LDA #&00 &2271 85 80 STA &80 ; vocabulary_address_low &2273 85 8b STA &8b ; word_count &2275 a9 61 LDA #&61 ; &6100 = vocabulary_one &2277 85 81 STA &81 ; vocabulary_address_high ; check_input_word_against_vocabulary_word &2279 e6 8b INC &8b ; word_count &227b a0 00 LDY #&00 &227d a2 ff LDX #&ff ; check_input_word_against_vocabulary_word_loop &227f b9 80 09 LDA &0980,Y ; word_buffer &2282 d1 80 CMP (&80),Y ; vocabulary_address &2284 d0 4a BNE &22d0 ; move_to_next_vocabulary_word &2286 e8 INX &2287 c8 INY &2288 e4 4d CPX &4d ; input_word_length &228a d0 f3 BNE &227f ; check_input_word_against_vocabulary_word_loop &228c a5 8b LDA &8b ; word_count &228e c9 49 CMP #&49 ; WORD_FIRST_NOUN &2290 90 03 BCC &2295 ; process_verb &2292 4c 33 23 JMP &2333 ; to_consider_disambiguating_droids ; process_verb &2295 a0 04 LDY #&04 &2297 b1 80 LDA (&80),Y ; vocabulary_address # Get token for verb &2299 85 72 STA &72 ; verb &229b a5 52 LDA &52 ; first_verb &229d d0 04 BNE &22a3 ; not_first_verb &229f a5 72 LDA &72 ; verb &22a1 85 52 STA &52 ; first_verb ; not_first_verb &22a3 c9 1e CMP #&1e ; VERB_SAY &22a5 d0 05 BNE &22ac ; not_say &22a7 a5 4c LDA &4c ; offset &22a9 8d ff 63 STA &63ff ; speech_offset &22ac a5 72 LDA &72 ; verb ; not_say &22ae c9 03 CMP #&03 ; VERB_EAST &22b0 d0 4c BNE &22fe ; consider_next_word_from_offset # Bug: should be BCS to branch if not north or south &22b2 a0 05 LDY #&05 &22b4 b9 80 09 LDA &0980,Y ; text_buffer &22b7 c9 45 CMP #&45 ; "E" # If NORT?E* or SOUT?E* &22b9 d0 07 BNE &22c2 ; not_northeast_or_southeast &22bb a5 72 LDA &72 ; verb &22bd 18 CLC &22be 69 04 ADC #&04 ; VERB_NE - VERB_NORTH # move northeast or southeast &22c0 85 72 STA &72 ; verb ; not_northeast_or_southeast &22c2 c9 57 CMP #&57 ; "W" # If NORT?W* or SOUT?W* &22c4 d0 38 BNE &22fe ; consider_next_word_from_offset &22c6 a5 72 LDA &72 ; verb &22c8 18 CLC &22c9 69 06 ADC #&06 ; VERB_NW - VERB_NORTH # move northwest or southwest &22cb 85 72 STA &72 ; verb &22cd 4c fe 22 JMP &22fe ; consider_next_word_from_offset ; move_to_next_vocabulary_word &22d0 a5 80 LDA &80 ; vocabulary_address_low &22d2 18 CLC &22d3 69 05 ADC #&05 &22d5 85 80 STA &80 ; vocabulary_address_low &22d7 a5 81 LDA &81 ; vocabulary_address_high &22d9 69 00 ADC #&00 &22db 85 81 STA &81 ; vocabulary_address_high &22dd c9 61 CMP #&61 ; &61f0 = end_of_vocabulary_one &22df d0 11 BNE &22f2 ; not_end_of_vocabulary_one &22e1 a5 80 LDA &80 ; vocabulary_address_low &22e3 c9 f0 CMP #&f0 &22e5 d0 0b BNE &22f2 ; not_end_of_vocabulary_one &22e7 a9 00 LDA #&00 &22e9 85 80 STA &80 ; vocabulary_address_low &22eb a9 62 LDA #&62 ; &6200 = vocabulary_two &22ed 85 81 STA &81 ; vocabulary_address_high &22ef 4c 27 23 JMP &2327 ; to_check_input_word_against_vocabulary_word ; not_end_of_vocabulary_one &22f2 a5 80 LDA &80 ; vocabulary_address_low &22f4 c9 fe CMP #&fe ; &63fe # Bug: should be &b8 to stop at end_of_vocabulary_two &22f6 d0 2f BNE &2327 ; to_check_input_word_against_vocabulary_word &22f8 a5 81 LDA &81 ; vocabulary_address_high &22fa c9 63 CMP #&63 &22fc d0 29 BNE &2327 ; to_check_input_word_against_vocabulary_word ; consider_next_word_from_offset &22fe a4 4c LDY &4c ; offset &2300 a6 4d LDX &4d ; input_word_length # Unnecessary code ; consider_next_word &2302 b9 e0 07 LDA &07e0,Y ; input_buffer &2305 c9 0d CMP #&0d ; CR &2307 f0 03 BEQ &230c ; end_of_input &2309 4c 39 22 JMP &2239 ; check_word_against_vocabulary ; end_of_input &230c a5 72 LDA &72 ; verb &230e c9 2c CMP #&2c ; VERB_AGAIN &2310 f0 18 BEQ &232a ; handle_again &2312 a5 52 LDA &52 ; first_verb &2314 85 53 STA &53 ; previous_first_verb &2316 a5 74 LDA &74 ; last_noun &2318 85 54 STA &54 ; previous_last_noun &231a a5 72 LDA &72 ; verb &231c 85 50 STA &50 ; last_verb &231e a5 73 LDA &73 ; noun &2320 c9 01 CMP #&01 ; NOUN_IT &2322 f0 02 BEQ &2326 ; leave # Use previous noun for IT &2324 85 51 STA &51 ; first_noun ; leave &2326 60 RTS ; to_check_input_word_against_vocabulary_word &2327 4c 79 22 JMP &2279 ; check_input_word_against_vocabulary_word ; handle_again # Use previous verb and noun for AGAIN &232a a5 53 LDA &53 ; previous_first_verb &232c 85 52 STA &52 ; first_verb &232e a5 54 LDA &54 ; previous_last_noun &2330 85 74 STA &74 ; last_noun &2332 60 RTS ; to_consider_disambiguating_droids &2333 4c a1 4f JMP &4fa1 ; consider_disambiguating_droids # Returns at &2337 ; unused &2336 ea NOP ; process_noun &2337 a4 73 LDY &73 ; noun &2339 d0 14 BNE &234f ; set_last_noun &233b 85 73 STA &73 ; noun &233d c9 23 CMP #&23 ; NOUN_LEASH &233f d0 0b BNE &234c ; to_consider_next_word_from_offset &2341 ad 0f 4e LDA &4e0f ; object_locations + OBJECT_LEASH &2344 c9 ff CMP #&ff ; ROOM_HIDDEN # &ff if leash is on dog &2346 d0 04 BNE &234c ; to_consider_next_word_from_offset &2348 a9 22 LDA #&22 ; NOUN_DOG &234a 85 73 STA &73 ; noun ; to_consider_next_word_from_offset &234c 4c fe 22 JMP &22fe ; consider_next_word_from_offset ; set_last_noun &234f 85 74 STA &74 ; last_noun &2351 4c fe 22 JMP &22fe ; consider_next_word_from_offset ; update_gunman &2354 a5 78 LDA &78 ; player_room &2356 c9 65 CMP #&65 ; ROOM_65 ; "in a small sideroom with a neat little desk and a comfy looking seat" &2358 d0 25 BNE &237f ; leave &235a ad b4 4d LDA &4db4 ; gunman_state &235d d0 20 BNE &237f ; leave &235f a9 55 LDA #&55 ; string_155 : "there is a man here aiming a gun at you " &2361 20 00 0e JSR &0e00 ; to_write_string_from_table_one &2364 ad 0e 4e LDA &4e0e ; object_locations + OBJECT_DOG &2367 d0 0d BNE &2376 ; killed_by_gunman &2369 ad 03 4e LDA &4e03 ; object_locations + OBJECT_SCRAP &236c c9 ff CMP #&ff ; ROOM_HIDDEN # &ff if dog has been given scrap &236e d0 06 BNE &2376 ; killed_by_gunman &2370 a9 4c LDA #&4c ; string_24c : "but ,seeing his prey ,the dog pounces and fearlessly kills him" &2372 20 e1 26 JSR &26e1 ; remove_gunman &2375 60 RTS ; killed_by_gunman &2376 a9 4d LDA #&4d ; string_24d : ". Bang" &2378 20 0c 0e JSR &0e0c ; to_write_string_from_table_two &237b a9 ff LDA #&ff ; ROOM_DEAD &237d 85 78 STA &78 ; player_room ; leave &237f 60 RTS ; unused &2380 a5 8e LDA &8e ; character &2382 20 ee ff JSR &ffee ; OSWRCH &2385 60 RTS ; unused &2386 a9 0d LDA #&0d ; CR &2388 20 ee ff JSR &ffee ; OSWRCH &238b 60 RTS ; unused &238c 38 SEC ; is_penultimate_exit &238d a9 3a LDA #&3a ; string_23a : " or " &238f 20 0c 0e JSR &0e0c ; to_write_string_from_table_two &2392 4c b0 1e JMP &1eb0 ; consider_next_exit_for_writing ; string_23a &2395 04 &2396 90 0e 11 90 ; " or " ; handle_examine_tube &239a f0 03 BEQ &239f ; examine_tube &239c 4c 87 1c JMP &1c87 ; you_can't_see_that_here ; examine_tube &239f a9 7f LDA #&7f ; string_07f : "thin" &23a1 4c 60 1c JMP &1c60 ; to_to_write_string_from_table_zero ; set_object_location_and_write_ok &23a4 99 00 4e STA &4e00,Y ; object_locations &23a7 a9 34 LDA #&34 ; string_134 : "ok" &23a9 20 00 0e JSR &0e00 ; to_write_string_from_table_one &23ac 60 RTS ; write_prompt &23ad 20 75 51 JSR &5175 ; write_spaces_until_start_of_line &23b0 20 86 51 JSR &5186 ; write_blank_line &23b3 a9 3a LDA #&3a ; ":" &23b5 85 8e STA &8e ; character &23b7 20 78 50 JSR &5078 ; write_character &23ba a9 10 LDA #&10 &23bc 85 7e STA &7e ; text_screen_address_low &23be 60 RTS ; write_character_with_nops &23bf a9 00 LDA #&00 # Unnecessary code &23c1 ea NOP &23c2 ea NOP &23c3 20 78 50 JSR &5078 ; write_character &23c6 60 RTS ; backup_variables &23c7 a5 4c LDA &4c ; tmp_y, offset &23c9 8d de 0d STA &0dde ; variables_copy_4c &23cc a5 4d LDA &4d ; tmp_x, input_word_length &23ce 8d df 0d STA &0ddf ; variables_copy_4d &23d1 84 20 STY &20 ; backup_x &23d3 86 21 STX &21 ; backup_y &23d5 a0 00 LDY #&00 ; backup_variables_loop # Copy &0070 - &008f to &0de0 - &0dff &23d7 b9 70 00 LDA &0070,Y ; variables &23da 99 e0 0d STA &0de0,Y ; variables_copy &23dd c8 INY &23de c0 20 CPY #&20 &23e0 d0 f5 BNE &23d7 ; backup_variables_loop &23e2 60 RTS ; restore_variables &23e3 a0 00 LDY #&00 ; restore_variables_loop # Copy &0de0 - &0dff to &0070 - &008f &23e5 b9 e0 0d LDA &0de0,Y ; variables_copy &23e8 99 70 00 STA &0070,Y ; variables &23eb c8 INY &23ec c0 0e CPY #&0e ; &7e - &70 ; text_screen_address_low # Don't restore &007e text_screen_address_low &23ee f0 13 BEQ &2403 ; skip_text_screen_address # or &007f text_screen_address_high &23f0 c0 20 CPY #&20 &23f2 d0 f1 BNE &23e5 ; restore_variables_loop &23f4 a4 20 LDY &20 ; backup_x &23f6 a6 21 LDX &21 ; backup_y &23f8 ad de 0d LDA &0dde ; variables_copy_4c &23fb 85 4c STA &4c ; tmp_y, offset &23fd ad df 0d LDA &0ddf ; variables_copy_4d &2400 85 4d STA &4d ; tmp_x, input_word_length &2402 60 RTS ; skip_text_screen_address &2403 a0 10 LDY #&10 # Continue restoring variables at &0080 &2405 4c e5 23 JMP &23e5 ; restore_variables_loop ; write_string_from_table_one &2408 85 22 STA &22 ; string_id &240a 20 c7 23 JSR &23c7 ; backup_variables &240d a5 22 LDA &22 ; string_id &240f 29 f0 AND #&f0 &2411 c9 60 CMP #&60 &2413 f0 03 BEQ &2418 ; skip_spaces # Branches for strings &100 - &11f &2415 20 75 51 JSR &5175 ; write_spaces_until_start_of_line ; skip_spaces &2418 a9 02 LDA #&02 ; STRING_UPPERCASE_WORD # Unnecessary code; string_flags set at &4f31 &241a 85 75 STA &75 ; string_flags &241c a5 22 LDA &22 ; string_id &241e 20 2b 4f JSR &4f2b ; write_raw_string_from_table_one &2421 20 e3 23 JSR &23e3 ; restore_variables &2424 a5 22 LDA &22 ; string_id &2426 60 RTS ; write_string_from_table_two &2427 85 22 STA &22 ; strind_id &2429 20 c7 23 JSR &23c7 ; backup_variables &242c a9 00 LDA #&00 # Zero to indicate lowercase by default &242e 85 75 STA &75 ; string_flags &2430 a5 22 LDA &22 ; strind_id &2432 c9 6f CMP #&6f ; string_26f # Strings &26f - &27f start uppercase &2434 b0 08 BCS &243e ; start_with_uppercase &2436 c9 4e CMP #&4e ; string_24e &2438 90 0b BCC &2445 ; check_for_uppercase &243a c9 61 CMP #&61 ; string_261 # Strings &261 - &26e start lowercase &243c b0 0f BCS &244d ; write_string_from_table_two_and_restore ; start_with_uppercase # Strings &24e - &260 start uppercase &243e a0 01 LDY #&01 ; STRING_UPPERCASE_CHARACTER &2440 84 75 STY &75 ; string_flags &2442 4c 4d 24 JMP &244d ; write_string_from_table_two_and_restore ; check_for_uppercase &2445 c9 23 CMP #&23 ; string_223 # Strings &200 - &222 start lowercase &2447 90 04 BCC &244d ; write_string_from_table_two_and_restore &2449 c9 2d CMP #&2d ; string_22d # Strings &223 - &22d start uppercase &244b 90 f1 BCC &243e ; start_with_uppercase ; write_string_from_table_two_and_restore # Strings &22e - &24d start lowercase &244d 20 39 4f JSR &4f39 ; write_raw_string_from_table_two &2450 4c 7e 24 JMP &247e ; leave_after_restore ; write_string_from_table_zero &2453 85 22 STA &22 ; string_id &2455 20 c7 23 JSR &23c7 ; backup_variables &2458 a9 00 LDA #&00 # Zero to indicate lowercase by default &245a 85 75 STA &75 ; string_flags &245c a5 22 LDA &22 ; string_id &245e c9 70 CMP #&70 ; string_070 # Strings &070 - &07f start uppercase &2460 26 75 ROL &75 ; string_flags &2462 20 6d 26 JSR &266d ; write_string_from_table_zero_after_possibly_ending_previous_string &2465 4c 7e 24 JMP &247e ; leave_after_restore ; write_spaces_until_start_of_line_preserving_variables &2468 20 c7 23 JSR &23c7 ; backup_variables &246b 20 75 51 JSR &5175 ; write_spaces_until_start_of_line &246e 20 e3 23 JSR &23e3 ; restore_variables &2471 60 RTS ; write_character_preserving_variables &2472 85 22 STA &22 ; string_id &2474 20 c7 23 JSR &23c7 ; backup_variables &2477 a5 22 LDA &22 ; string_id &2479 85 8e STA &8e ; character &247b 20 78 50 JSR &5078 ; write_character ; leave_after_restore &247e 20 e3 23 JSR &23e3 ; restore_variables &2481 a5 22 LDA &22 ; string_id &2483 60 RTS ; get_input_preserving_variables &2484 85 22 STA &22 ; tmp_a &2486 20 c7 23 JSR &23c7 ; backup_variables &2489 20 9c 52 JSR &529c ; get_input &248c 20 e3 23 JSR &23e3 ; restore_variables &248f a5 22 LDA &22 ; tmp_a &2491 60 RTS ; unused &2492 00 ; write_robodroid_state &2493 a5 78 LDA &78 ; player_room &2495 c9 21 CMP #&21 ; ROOM_21 ; "in what was once a foozball court until someone died from batshock.There is a mean looking robodroid here" &2497 d0 0a BNE &24a3 ; leave &2499 ad aa 4d LDA &4daa ; robodroid_state &249c d0 05 BNE &24a3 ; leave &249e a9 2e LDA #&2e ; "." &24a0 4c bc 0d JMP &0dbc ; it's_been_depowered ; leave &24a3 60 RTS ; unused &24a4 78 ; consider_squeeky_voice_man # Called with A = player_room &24a5 c9 4c CMP #&4c ; ROOM_4c ; "in the magnolab ,which is really just a long corridor with vast magnets forming both walls" &24a7 f0 03 BEQ &24ac ; consider_squeeky_voice_man &24a9 4c ac 1d JMP &1dac ; consider_gunman ; consider_squeeky_voice_man &24ac ad a9 4d LDA &4da9 ; squeeky_voice_man_state &24af d0 03 BNE &24b4 ; there_is_a_small_man_with_a_squeeky_voice_here &24b1 4c a4 1d JMP &1da4 ; there_is_a_dead_body_here ; there_is_a_small_man_with_a_squeeky_voice_here &24b4 a9 2a LDA #&2a ; string_12a : "there is a small man with a squeeky voice here" &24b6 20 00 0e JSR &0e00 ; to_write_string_from_table_one &24b9 4c b5 1d JMP &1db5 ; consider_gunge ; deactivate_robodroid &24bc a9 00 LDA #&00 &24be 8d aa 4d STA &4daa ; robodroid_state # Set to zero to indicate robodroid deactivated &24c1 a9 ff LDA #&ff ; ROOM_HIDDEN &24c3 8d 0c 4e STA &4e0c ; object_locations + OBJECT_DEACTIVATOR &24c6 60 RTS ; write_tube_state &24c7 a5 78 LDA &78 ; player_room &24c9 c9 13 CMP #&13 ; ROOM_13 ; "in the Chemilab ,a mess of old benches and one test tube " &24cb d0 0c BNE &24d9 ; to_write_droid_states &24cd ad 07 4e LDA &4e07 ; object_locations + OBJECT_BALL_BEARING &24d0 c9 ff CMP #&ff ; ROOM_HIDDEN &24d2 d0 05 BNE &24d9 ; to_write_droid_states &24d4 a9 3c LDA #&3c ; string_23c : "with a ball bearing inside it" &24d6 20 0c 0e JSR &0e0c ; to_write_string_from_table_two ; to_write_droid_states &24d9 20 b4 1e JSR &1eb4 ; write_droid_states &24dc 60 RTS ; handle_examine_not_present_object &24dd c9 ff CMP #&ff ; ROOM_HIDDEN &24df d0 0d BNE &24ee ; you_can't_see_that_here &24e1 c0 1b CPY #&1b ; NOUN_BALL &24e3 d0 09 BNE &24ee ; you_can't_see_that_here &24e5 a5 78 LDA &78 ; player_room &24e7 c9 13 CMP #&13 ; ROOM_13 ; "in the Chemilab ,a mess of old benches and one test tube " &24e9 d0 03 BNE &24ee ; you_can't_see_that_here &24eb 4c 61 1b JMP &1b61 ; handle_examine_present_object ; you_can't_see_that_here &24ee a9 1d LDA #&1d ; string_11d : "you can't see that here" &24f0 20 00 0e JSR &0e00 ; to_write_string_from_table_one &24f3 60 RTS ; consider_changing_exits # Called with A = player_room &24f4 c9 63 CMP #&63 ; ROOM_63 ; "at the west end of the desolate and deserted exhibition hall" &24f6 d0 03 BNE &24fb ; consider_taxi_out_exit &24f8 4c eb 10 JMP &10eb ; consider_exhibition_hall_west_exit ; consider_taxi_out_exit &24fb c9 66 CMP #&66 ; ROOM_66 ; "in the taxi.You can see a vast platform in space through the window" &24fd d0 0a BNE &2509 ; leave &24ff ad bb 4d LDA &4dbb ; computer_state # Non-zero if valid code entered &2502 d0 05 BNE &2509 ; leave &2504 a9 00 LDA #&00 ; ROOM_NO_EXIT &2506 8d 8b 09 STA &098b ; temporary_room_exits + DIRECTION_OUT ; leave &2509 60 RTS ; set_out_room_and_computer_state &250a 8d fb 61 STA &61fb ; room_exits + DIRECTION_OUT &250d a9 01 LDA #&01 # Set to non-zero to indicate valid code entered &250f 8d bb 4d STA &4dbb ; computer_state &2512 60 RTS ; consider_dog_straining_in_spacemaze &2513 a8 TAY &2514 c9 49 CMP #&49 ; ROOM_49 ; "in a very dark and apparently empty room at the end of a small but steep passage" &2516 d0 03 BNE &251b ; check_if_dog_has_scrap ; to_leave &2518 4c 2a 22 JMP &222a ; leave ; check_if_dog_has_scrap &251b ad 03 4e LDA &4e03 ; object_locations + OBJECT_SCRAP &251e c9 ff CMP #&ff ; ROOM_HIDDEN &2520 d0 f6 BNE &2518 ; to_leave &2522 a9 52 LDA #&52 ; string_152 : "the dog strains " &2524 4c 1e 22 JMP &221e ; dog_strains_in_spacemaze ; the_droids_glare_at_each_other &2527 a5 78 LDA &78 ; player_room &2529 cd a5 4d CMP &4da5 ; aggrodroid_room &252c d0 0c BNE &253a ; to_check_if_guardroid_is_carrying_foozbat &252e 20 bd 0f JSR &0fbd ; rnd &2531 29 03 AND #&03 # One in four chance of droids glaring at each other &2533 d0 05 BNE &253a ; to_check_if_guardroid_is_carrying_foozbat &2535 a9 70 LDA #&70 ; string_170 : "the droids glare at each other" &2537 20 00 0e JSR &0e00 ; to_write_string_from_table_one ; to_check_if_guardroid_is_carrying_foozbat &253a 4c 6a 21 JMP &216a ; check_if_guardroid_is_carrying_foozbat ; previous_oswrch_vector_low &253d a4 ; &e0a4 = os_oswrch_handler ; previous_oswrch_vector_high &253e e0 ; save_file_block &253f c2 1a ; &1ac2 = huntpos_filename &2541 a0 4d 00 00 ; &4da0 = game_state &2545 00 00 00 00 &2549 a0 4d 00 00 ; &4da0 = game_state &254d 1b 4e 00 ; &4e1b = end_of_game_state # Bug: last byte shared with room_exits_for_save ; room_exits_for_save &2550 01 03 00 00 00 00 00 00 00 00 00 00 ; new_game &255c 20 17 26 JSR &2617 ; initialise_oswrch_handler ; entry_point ; start_game &255f 20 1e 27 JSR &271e ; initialise_game &2562 20 31 1d JSR &1d31 ; to_write_room_description_and_plot_graphics ; main_game_loop &2565 20 84 24 JSR &2484 ; get_input_preserving_variables &2568 a5 78 LDA &78 ; player_room &256a 85 86 STA &86 ; previous_player_room &256c 20 2b 22 JSR &222b ; parse_input &256f 20 dc 1e JSR &1edc ; act_on_input &2572 a5 78 LDA &78 ; player_room &2574 c5 86 CMP &86 ; previous_player_room &2576 f0 1f BEQ &2597 ; skip_redrawing_room &2578 c9 ff CMP #&ff ; ROOM_HIDDEN &257a f0 1b BEQ &2597 ; skip_redrawing_room &257c a9 00 LDA #&00 # Set to zero to indicate card and code not entered &257e 8d bb 4d STA &4dbb ; computer_state &2581 20 31 1d JSR &1d31 ; to_write_room_description_and_plot_graphics &2584 a5 78 LDA &78 ; player_room &2586 c9 02 CMP #&02 ; ROOM_02 ; "standing in the cockpit of your spacefighter.You can see the vast space station through the main screen beside the exit hatchway" &2588 d0 0d BNE &2597 ; not_completed &258a ad 10 4e LDA &4e10 ; object_locations + OBJECT_SHAUNA &258d d0 08 BNE &2597 ; not_completed &258f a9 5f LDA #&5f ; string_15f : "*WELL DONE*, you have rescued Shauna" &2591 20 00 0e JSR &0e00 ; to_write_string_from_table_one &2594 4c b3 25 JMP &25b3 ; press_space_for_another_game ; not_completed ; skip_redrawing_room &2597 20 51 20 JSR &2051 ; update_game &259a a5 78 LDA &78 ; player_room &259c c9 04 CMP #&04 ; ROOM_04 ; "beside a spaceship on one of many vast platforms in space ,all visited by some large droids saying '#FOR HIRE BUT FREE FOR ALL TODAY'" &259e d0 0f BNE &25af ; check_if_dead &25a0 c5 86 CMP &86 ; previous_player_room &25a2 f0 c1 BEQ &2565 ; main_game_loop &25a4 a5 86 LDA &86 ; previous_player_room &25a6 4c 58 27 JMP &2758 ; check_space_entry # Returns at &25aa or &2565 ; unused &25a9 bb ; redraw_room_and_check_if_dead &25aa 20 31 1d JSR &1d31 ; to_write_room_description_and_plot_graphics &25ad a5 78 LDA &78 ; player_room ; check_if_dead &25af c9 ff CMP #&ff ; ROOM_DEAD &25b1 d0 b2 BNE &2565 ; main_game_loop ; press_space_for_another_game &25b3 20 86 51 JSR &5186 ; write_blank_line &25b6 a9 2d LDA #&2d ; string_22d : "Press SPACE for another game" &25b8 20 0c 0e JSR &0e0c ; to_write_string_from_table_two ; wait_for_space &25bb a0 7f LDY #&7f ; &7fff &25bd a2 ff LDX #&ff &25bf a9 81 LDA #&81 ; Read key with time limit &25c1 20 f4 ff JSR &fff4 ; OSBYTE # Returns Y = 255 if timed out, or Y = 0, X = character &25c4 e0 20 CPX #&20 ; " " &25c6 d0 f3 BNE &25bb ; wait_for_space &25c8 c0 ff CPY #&ff &25ca f0 ef BEQ &25bb ; wait_for_space &25cc 20 86 51 JSR &5186 ; write_blank_line &25cf 4c 5c 25 JMP &255c ; new_game ; initialise_game_state_and_object_locations &25d2 20 fc 25 JSR &25fc ; wipe_text_area &25d5 a0 00 LDY #&00 ; initialise_game_state_loop &25d7 b9 c8 4d LDA &4dc8,Y ; initial_game_state # Copy &4dc8 - &4ddd to &4da0 - &4db5 &25da 99 a0 4d STA &4da0,Y ; game_state &25dd c8 INY &25de c0 16 CPY #&16 &25e0 d0 f5 BNE &25d7 ; initialise_game_state_loop &25e2 a0 00 LDY #&00 ; initialise_object_locations_loop &25e4 b9 de 4d LDA &4dde,Y ; initial_object_locations # Copy &4dde - &4df8 to &4e00 - &4e1a &25e7 99 00 4e STA &4e00,Y ; object_locations &25ea c8 INY &25eb c0 1b CPY #&1b ; OBJECT_LAST + 1 &25ed d0 f5 BNE &25e4 ; initialise_object_locations_loop &25ef a9 02 LDA #&02 ; ROOM_02 ; "standing in the cockpit of your spacefighter.You can see the vast space station through the main screen beside the exit hatchway" &25f1 85 78 STA &78 ; player_room &25f3 20 bd 0f JSR &0fbd ; rnd &25f6 29 07 AND #&07 ; &26c - &265 : string_26c : "white" - string_265 : "green" &25f8 8d b6 4d STA &4db6 ; safe_gunge_colour &25fb 60 RTS ; wipe_text_area &25fc a9 74 LDA #&74 ; &7400 = text_screen_memory + &100 &25fe 85 71 STA &71 ; screen_address_high &2600 85 7f STA &7f ; text_screen_address_high &2602 a9 00 LDA #&00 &2604 85 70 STA &70 ; screen_address_low &2606 85 7e STA &7e ; text_screen_address_low &2608 a8 TAY ; wipe_text_area_loop &2609 91 70 STA (&70),Y ; screen_address # Wipe &7400 - &7fff &260b c8 INY &260c d0 fb BNE &2609 ; wipe_text_area_loop &260e e6 71 INC &71 ; screen_address_high &2610 a6 71 LDX &71 ; screen_address_high &2612 e0 80 CPX #&80 &2614 d0 f3 BNE &2609 ; wipe_text_area_loop &2616 60 RTS ; initialise_oswrch_handler &2617 ad 0e 02 LDA &020e ; oswrch_vector_low &261a 8d 3d 25 STA &253d ; previous_oswrch_vector_low &261d ad 0f 02 LDA &020f ; oswrch_vector_high &2620 8d 3e 25 STA &253e ; previous_oswrch_vector_high &2623 78 SEI &2624 a9 30 LDA #&30 ; &2630 = oswrch_handler &2626 8d 0e 02 STA &020e ; oswrch_vector_low &2629 a9 26 LDA #&26 &262b 8d 0f 02 STA &020f ; oswrch_vector_high &262e 58 CLI &262f 60 RTS ; oswrch_handler &2630 85 22 STA &22 ; tmp_a &2632 48 PHA &2633 8a TXA &2634 48 PHA &2635 98 TYA &2636 48 PHA &2637 a5 22 LDA &22 ; tmp_a &2639 c9 20 CMP #&20 ; " " &263b 90 0c BCC &2649 ; not_printable_character &263d c9 7f CMP #&7f ; DELETE &263f b0 08 BCS &2649 ; not_printable_character &2641 85 8e STA &8e ; character &2643 20 71 10 JSR &1071 ; to_write_character_preserving_variables &2646 4c 5f 26 JMP &265f ; leave_after_restoring_registers ; not_printable_character &2649 c9 0d CMP #&0d ; CR &264b d0 07 BNE &2654 ; not_carriage_return &264d a9 00 LDA #&00 &264f 85 7e STA &7e ; text_screen_address_low &2651 4c 5f 26 JMP &265f ; leave_after_restoring_registers ; not_carriage_return &2654 c9 0a CMP #&0a ; NL &2656 d0 0d BNE &2665 ; call_previous_oswrch_vector_after_restoring_registers &2658 a9 f8 LDA #&f8 &265a 85 7e STA &7e ; text_screen_address_low &265c 20 75 10 JSR &1075 ; to_write_spaces_until_start_of_line_preserving_variables ; leave_after_restoring_registers &265f 68 PLA &2660 a8 TAY &2661 68 PLA &2662 aa TAX &2663 68 PLA &2664 60 RTS ; call_previous_oswrch_vector_after_restoring_registers &2665 68 PLA &2666 a8 TAY &2667 68 PLA &2668 aa TAX &2669 68 PLA &266a 4c 89 46 JMP &4689 ; call_previous_oswrch_vector_if_not_bell ; write_string_from_table_zero_after_possibly_ending_previous_string &266d c9 67 CMP #&67 ; string_067 # String &067 ends previous string &266f f0 08 BEQ &2679 ; end_previous_string &2671 c9 6a CMP #&6a ; string_06a # Strings &000 - &066, &068 and &069 don't &2673 90 09 BCC &267e ; to_write_string_from_table_zero &2675 c9 70 CMP #&70 ; string_070 # Strings &070 - &07f don't &2677 b0 05 BCS &267e ; to_write_string_from_table_zero ; end_previous_string # Strings &06a - &06f end previous string &2679 20 90 26 JSR &2690 ; end_string_and_use_uppercase &267c a5 22 LDA &22 ; string_id ; to_write_string_from_table_zero &267e 20 1d 4f JSR &4f1d ; write_raw_string_from_table_zero &2681 60 RTS ; to_consider_writing_pity_you_are_busy_lugobot &2682 4c d4 26 JMP &26d4 ; consider_writing_pity_you_are_busy_lugobot ; unused &2685 29 ; write_room_description_after_spaces &2686 20 75 10 JSR &1075 ; to_write_spaces_until_start_of_line_preserving_variables &2689 a9 08 LDA #&08 # Indent by one character &268b 85 7e STA &7e ; text_screen_address_low &268d 4c 34 1d JMP &1d34 ; write_room_description ; end_string_and_use_uppercase &2690 20 11 41 JSR &4111 ; end_string &2693 a9 01 LDA #&01 ; STRING_UPPERCASE_CHARACTER &2695 85 75 STA &75 ; string_flags &2697 60 RTS ; update_squeeky_voice_man &2698 a9 ff LDA #&ff ; ROOM_DEAD &269a 85 78 STA &78 ; player_room &269c ce a9 4d DEC &4da9 ; squeeky_voice_man_state &269f f0 10 BEQ &26b1 ; leave &26a1 a9 4a LDA #&4a ; ROOM_4a ; "in a restricted research area that uses the spacemaze as a way of limiting visitors" &26a3 85 78 STA &78 ; player_room &26a5 20 a0 0f JSR &0fa0 ; to_initialise_room_exits &26a8 20 c7 23 JSR &23c7 ; backup_variables &26ab 20 c1 27 JSR &27c1 ; consider_plotting_graphics &26ae 20 e3 23 JSR &23e3 ; restore_variables ; leave &26b1 18 CLC &26b2 60 RTS ; set_npc_new_room &26b3 85 81 STA &81 ; npc_new_room &26b5 ad a0 4d LDA &4da0 ; lever_state &26b8 f0 13 BEQ &26cd ; to_check_if_player_can_see_npc &26ba c0 03 CPY #&03 ; DIRECTION_WEST &26bc b0 0f BCS &26cd ; to_check_if_player_can_see_npc # Branches if not NPC is not moving north or south &26be a5 81 LDA &81 ; npc_new_room &26c0 c9 37 CMP #&37 ; ROOM_37 ; "at the beginning of a short ,dark corridor that continues to the east.You can just see small force cages lining the north side" &26c2 90 09 BCC &26cd ; to_check_if_player_can_see_npc &26c4 c9 3b CMP #&3b ; 1 + ROOM_3a ; "at the west end of the corridor outside the last cage that works" &26c6 b0 05 BCS &26cd ; to_check_if_player_can_see_npc &26c8 a9 ff LDA #&ff ; ROOM_BLOCKED # Set to &ff to indicate NPC blocked by force field &26ca 85 81 STA &81 ; npc_new_room &26cc 60 RTS ; to_check_if_player_can_see_npc &26cd a5 81 LDA &81 ; npc_new_room &26cf c5 78 CMP &78 ; player_room &26d1 4c b2 20 JMP &20b2 ; check_if_player_can_see_npc ; consider_writing_pity_you_are_busy_lugobot &26d4 20 bd 0f JSR &0fbd ; rnd &26d7 29 03 AND #&03 &26d9 d0 05 BNE &26e0 ; leave &26db a9 74 LDA #&74 ; string_074 : "#'pity you are busy lugobot ,I needed you'" &26dd 20 2a 1d JSR &1d2a ; to_write_string_from_table_zero ; leave &26e0 60 RTS ; remove_gunman &26e1 20 0c 0e JSR &0e0c ; to_write_string_from_table_two &26e4 a9 ea LDA #&ea ; ROOM_KILLED_BY_DOG &26e6 8d 03 4e STA &4e03 ; object_locations + OBJECT_SCRAP &26e9 a9 01 LDA #&01 &26eb 8d b4 4d STA &4db4 ; gunman_state &26ee 60 RTS ; unused &26ef 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; initialise_room_exits # Called with A = player_room &26fe c5 86 CMP &86 ; previous_player_room &2700 d0 08 BNE &270a ; set_exits &2702 c9 25 CMP #&25 ; ROOM_25 ; "at the south end of the hall ,away from the market but next to a large handprint key door" &2704 f0 0a BEQ &2710 ; leave &2706 c9 64 CMP #&64 ; ROOM_64 ; "beside a large scarlet door containing a small microphone" &2708 f0 06 BEQ &2710 ; leave ; set_exits &270a 20 80 10 JSR &1080 ; find_room_exits &270d 4c a3 0f JMP &0fa3 ; use_temporary_room_exits_for_room ; leave &2710 60 RTS ; write_extra_room_text &2711 20 a0 0f JSR &0fa0 ; to_initialise_room_exits &2714 20 93 24 JSR &2493 ; write_robodroid_state &2717 20 c7 24 JSR &24c7 ; write_tube_state &271a 60 RTS ; unused &271b ea NOP &271c ea NOP &271d 60 RTS ; initialise_game &271e 20 d2 25 JSR &25d2 ; initialise_game_state_and_object_locations &2721 a0 04 LDY #&04 &2723 20 bd 0f JSR &0fbd ; rnd &2726 85 80 STA &80 ; tmp ; set_shauna_berth_number_loop &2728 46 80 LSR &80 ; tmp &272a a5 80 LDA &80 ; tmp &272c 29 07 AND #&07 &272e 99 bf 4d STA &4dbf,Y ; shauna_berth_number - 1 &2731 88 DEY &2732 d0 f4 BNE &2728 ; set_shauna_berth_number_loop &2734 60 RTS ; unused # &2735 - &2757 is similar to &2735 - &2757 from HUNT1 &2735 20 48 4f JSR &4f48 &2738 a9 00 LDA #&00 &273a 85 7e STA &7e ; text_screen_address_low &273c 85 75 STA &75 ; font_flags &273e a9 74 LDA #&74 ; &7400 = text_screen_memory + &100 &2740 85 7f STA &7f ; text_screen_address_high &2742 a0 0a LDY #&0a # &2742 20 3e 52 JSR &523e ; copy_loading_screen ; write_string_loop # &2745 a0 00 LDY #&00 &2744 b9 34 27 LDA &2734,Y # &2747 - &274c is NOPed out &2747 20 ee ff JSR &ffee ; OSWRCH &274a 88 DEY &274b d0 f7 BNE &2744 ; write_string_loop &274d a2 00 LDX #&00 &274f a9 90 LDA #&90 ; Set TV offset and interlacing &2751 20 f4 ff JSR &fff4 ; OSBYTE # *TV 0,0 (no shift, no interlacing) &2754 4c 8e 27 JMP &278e &2757 60 RTS ; check_space_entry # Called with A = previous_player_room &2758 c9 66 CMP #&66 ; ROOM_66 ; "in the taxi.You can see a vast platform in space through the window" &275a f0 08 BEQ &2764 ; to_main_game_loop &275c ad fa 61 LDA &61fa ; room_exits + DIRECTION_IN &275f d0 03 BNE &2764 ; to_main_game_loop &2761 4c aa 25 JMP &25aa ; redraw_room_and_check_if_dead # Redraw room after player is sucked out into space ; to_main_game_loop &2764 4c 65 25 JMP &2565 ; main_game_loop ; set_shauna_location &2767 8d 10 4e STA &4e10 ; object_locations + OBJECT_SHAUNA &276a 20 75 10 JSR &1075 ; to_write_spaces_until_start_of_line_preserving_variables &276d a9 6f LDA #&6f ; string_06f : "you can see " &276f 20 2a 1d JSR &1d2a ; to_write_string_from_table_zero &2772 a9 10 LDA #&10 ; string_210 : "Shauna" &2774 20 0c 0e JSR &0e0c ; to_write_string_from_table_two &2777 4c 3c 1e JMP &1e3c ; skip_adding_shauna ; write_room_description_and_plot_graphics &277a 85 22 STA &22 ; tmp_a &277c 20 c7 23 JSR &23c7 ; backup_variables &277f c6 22 DEC &22 ; tmp_a # Unnecessary code &2781 a5 22 LDA &22 ; tmp_a &2783 20 c1 27 JSR &27c1 ; consider_plotting_graphics &2786 20 e3 23 JSR &23e3 ; restore_variables &2789 a5 22 LDA &22 ; tmp_a &278b 4c 86 26 JMP &2686 ; write_room_description_after_spaces ; unused # &278e - &2799 is a copy of &278e - &2799 from HUNT1 &278e 20 17 26 JSR &2617 ; initialise_oswrch_handler &2791 a9 ff LDA #&ff &2793 a2 a3 LDX #&a3 &2795 a0 27 LDY #&27 ; &27a3 = load_block &2797 20 dd ff JSR &ffdd ; OSFILE &279a 4c 5f 25 JMP &255f ; start_game # &279a 20 5f 25 JSR &255f ; start_game ; next_part_filename # Unused &279d 48 75 6e 74 33 0d ; "Hunt3" ; load_block # Unused &27a3 9d 27 ; &279d = next_part_filename &27a5 00 58 00 00 ; &5800 &27a9 5f 25 00 00 ; &255f = start_game &27ad 00 64 00 00 ; &6400 &27b1 00 00 00 00 ; print_text_buffer_initialisation &27b5 a5 75 LDA &75 ; font_flags &27b7 29 04 AND #&04 ; FONT_COLOUR &27b9 85 46 STA &46 ; use_colour_font &27bb a5 7e LDA &7e ; text_screen_address_low &27bd 4a LSR A &27be 4c 7b 54 JMP &547b ; print_text_buffer_after_initialisation ; consider_plotting_graphics &27c1 ad ff 06 LDA &06ff ; graphics_enabled # Zero if graphics enabled &27c4 d0 05 BNE &27cb ; skip_plotting_graphics &27c6 a5 22 LDA &22 ; tmp_a # Unnecessary code &27c8 20 b6 55 JSR &55b6 ; plot_graphics ; skip_plotting_graphics &27cb 60 RTS ; consider_groff_and_gron &27cc 98 TYA &27cd 29 fe AND #&fe &27cf c9 22 CMP #&22 ; VERB_GRON &27d1 d0 23 BNE &27f6 ; consider_follow ; handle_groff_and_gron &27d3 98 TYA &27d4 29 01 AND #&01 &27d6 cd ff 06 CMP &06ff ; graphics_enabled &27d9 f0 17 BEQ &27f2 ; leave - 1 # Bug; should be BEQ &27f3 ; leave (&27da = &18) &27db 48 PHA &27dc 8d ff 06 STA &06ff ; graphics_enabled &27df 20 c7 23 JSR &23c7 ; backup_variables &27e2 20 f0 54 JSR &54f0 ; clear_graphics_area &27e5 a4 78 LDY &78 ; player_room &27e7 68 PLA &27e8 f0 02 BEQ &27ec ; use_room &27ea a0 2a LDY #&2a ; ROOM_2a # Use graphics_2a for no graphics screen ; use_room &27ec 98 TYA &27ed 20 bb 55 JSR &55bb ; plot_graphics_from_A &27f0 20 e3 23 JSR &23e3 ; restore_variables ; leave &27f3 60 RTS ; unused &27f4 e7 27 ; consider_follow &27f6 c0 30 CPY #&30 ; VERB_FOLLOW &27f8 f0 03 BEQ &27fd ; to_handle_follow &27fa 4c 35 19 JMP &1935 ; consider_lost ; to_handle_follow &27fd 4c 15 19 JMP &1915 ; handle_follow ; graphics_0c &2800 15 ; colour 1 is red, colour 2 is magenta &2801 05 ; 5 lines &2802 1f 0a d9 ; line at &721f, direction 0, colour 2, length 52, slope 1 &2805 69 22 18 ; line at &6a69, direction 1, colour 2, length 4, slope 0 &2808 68 25 18 ; line at &6d68, direction 1, colour 2, length 4, slope 0 &280b 7a 66 19 ; line at &6e7a, direction 3, colour 2, length 4, slope 1 &280e 7e 05 19 ; line at &6d7e, direction 0, colour 2, length 4, slope 1 &2811 07 ; 7 quads &2812 0a c4 13 f6 ; quad at &6c0a, direction 3, lengths 3 12, slope 2, draw 23, no fill &2816 0e 24 13 e3 ; quad at &6c0e, direction 1, lengths 3 2, slope 1, draw 12, no fill &281a 27 c3 22 e7 ; quad at &6b27, direction 2, lengths 2 12, slope 2, draw 123, no fill &281e 52 80 3c 9f ; quad at &6852, direction 3, lengths 12 8, slope 0, draw 1234, fill 4 at 2 &2822 7e 85 12 ff ; quad at &6d7e, direction 3, lengths 2 8, slope 0, draw 1234, no fill &2826 6f c1 11 ff ; quad at &696f, direction 3, lengths 1 12, slope 2, draw 1234, no fill &282a 6d c4 11 ef ; quad at &6c6d, direction 3, lengths 1 12, slope 2, draw 1234, no fill &282e 05 ; 5 filled areas &282f 72 a3 ; fill area at &6b72, fill 5 &2831 20 a2 ; fill area at &6a20, fill 5 &2833 02 a5 ; fill area at &6d02, fill 5 &2835 32 a5 ; fill area at &6d32, fill 5 &2837 25 a3 ; fill area at &6b25, fill 5 &2839 01 ; 1 copied area &283a 01 b0 80 f0 ; mirror area from &7800 to &7880, 8 x 15 &283e 00 ; no text &283f ff ; end ; graphics_03 &2840 32 ; colour 1 is yellow, colour 2 is green &2841 09 ; 9 lines &2842 3e c4 48 ; line at &6c3e, direction 6, colour 2, length 16, slope 0 &2845 45 28 48 ; line at &7045, direction 1, colour 2, length 16, slope 0 &2848 6b 04 19 ; line at &6c6b, direction 0, colour 2, length 4, slope 1 &284b 70 24 28 ; line at &6c70, direction 1, colour 2, length 8, slope 0 &284e 54 25 1a ; line at &6d54, direction 1, colour 2, length 4, slope 2 &2851 56 25 38 ; line at &6d56, direction 1, colour 2, length 12, slope 0 &2854 5a 25 28 ; line at &6d5a, direction 1, colour 2, length 8, slope 0 &2857 55 25 38 ; line at &6d55, direction 1, colour 2, length 12, slope 0 &285a 45 04 29 ; line at &6c45, direction 0, colour 2, length 8, slope 1 &285d 06 ; 6 quads &285e 7f 84 12 ff ; quad at &6c7f, direction 3, lengths 2 8, slope 0, draw 1234, no fill &2862 5d c5 11 ee ; quad at &6d5d, direction 3, lengths 1 12, slope 2, draw 234, no fill &2866 6b 84 33 fd ; quad at &6c6b, direction 3, lengths 3 8, slope 0, draw 134, no fill &286a 16 86 23 f6 ; quad at &6e16, direction 2, lengths 3 8, slope 0, draw 23, no fill &286e 13 c7 23 ef ; quad at &6f13, direction 2, lengths 3 12, slope 2, draw 1234, no fill &2872 65 86 48 b4 ; quad at &6e65, direction 2, lengths 8 8, slope 0, draw 3, fill 5 at 2 &2876 01 ; 1 filled area &2877 4b a5 ; fill area at &6d4b, fill 5 &2879 00 ; 0 copied areas &287a 00 ; no text &287b 90 5d ; continue at &5d90 (graphics_continuation_5d90) ; graphics_continuation_287d # Used by graphics_10, graphics_12 &287d 06 ; 6 lines &287e 44 06 19 ; line at &6e44, direction 0, colour 2, length 4, slope 1 &2881 49 26 78 ; line at &6e49, direction 1, colour 2, length 28, slope 0 &2884 01 08 39 ; line at &7001, direction 0, colour 2, length 12, slope 1 &2887 3d 25 5b ; line at &6d3d, direction 1, colour 2, length 20, slope 3 &288a 1d 26 4a ; line at &6e1d, direction 1, colour 2, length 16, slope 2 &288d 67 24 48 ; line at &6c67, direction 1, colour 2, length 16, slope 0 &2890 02 ; 2 quads &2891 44 86 4e 3f ; quad at &6e44, direction 2, lengths 14 8, slope 0, draw 1234, fill 1 at 2 &2895 5c 88 62 fa ; quad at &705c, direction 2, lengths 2 8, slope 0, draw 24, no fill &2899 03 ; 3 filled areas &289a 4b 06 ; fill area at &6e4b, fill 0 &289c 06 c2 ; fill area at &6a06, fill 6 &289e 39 c3 ; fill area at &6b39, fill 6 &28a0 01 ; 1 copied area &28a1 01 b0 80 f0 ; mirror area from &7800 to &7880, 8 x 15 &28a5 40 6f 08 ; text at &6f40, length &08 &28a8 11 04 12 04 00 11 02 07 ; "RESEARCH" &28b0 ff ; end ; graphics_10 &28b1 14 ; colour 1 is red, colour 2 is blue &28b2 04 ; 4 lines &28b3 6f 04 6a ; line at &6c6f, direction 0, colour 2, length 24, slope 2 &28b6 7a 82 39 ; line at &6a7a, direction 4, colour 2, length 12, slope 1 &28b9 7e 22 28 ; line at &6a7e, direction 1, colour 2, length 8, slope 0 &28bc 77 23 48 ; line at &6b77, direction 1, colour 2, length 16, slope 0 &28bf 01 ; 1 quad &28c0 6f 80 84 ff ; quad at &686f, direction 2, lengths 4 8, slope 0, draw 1234, no fill &28c4 02 ; 2 filled areas &28c5 68 a2 ; fill area at &6a68, fill 5 &28c7 7b 01 ; fill area at &697b, fill 0 &28c9 00 ; 0 copied areas &28ca 00 ; no text &28cb 7d 28 ; continue at &287d (graphics_continuation_287d) ; graphics_12 &28cd 14 ; colour 1 is red, colour 2 is blue &28ce 05 ; 5 lines &28cf 1d 02 2a ; line at &6a1d, direction 0, colour 2, length 8, slope 2 &28d2 25 01 19 ; line at &6925, direction 0, colour 2, length 4, slope 1 &28d5 35 81 19 ; line at &6935, direction 4, colour 2, length 4, slope 1 &28d8 35 e5 28 ; line at &6d35, direction 7, colour 2, length 8, slope 0 &28db 24 a5 2b ; line at &6d24, direction 5, colour 2, length 8, slope 3 &28de 02 ; 2 quads &28df 1c c2 84 ee ; quad at &6a1c, direction 2, lengths 4 12, slope 2, draw 234, no fill &28e3 29 81 21 b1 ; quad at &6929, direction 2, lengths 1 8, slope 0, draw 1, fill 5 at 2 &28e7 00 ; 0 filled areas &28e8 00 ; 0 copied areas &28e9 00 ; no text &28ea 7d 28 ; continue at &287d (graphics_continuation_287d) ; graphics_04 &28ec 16 ; colour 1 is red, colour 2 is cyan &28ed 10 ; 16 lines &28ee 53 24 f8 ; line at &6c53, direction 1, colour 2, length 60, slope 0 &28f1 03 09 a9 ; line at &7103, direction 0, colour 2, length 40, slope 1 &28f4 3f 0a aa ; line at &723f, direction 0, colour 2, length 40, slope 2 &28f7 67 0a ab ; line at &7267, direction 0, colour 2, length 40, slope 3 &28fa ad 01 1a ; line at &69ad, direction 0, colour 2, length 4, slope 2 &28fd a5 01 18 ; line at &69a5, direction 0, colour 2, length 4, slope 0 &2900 a1 21 28 ; line at &69a1, direction 1, colour 2, length 8, slope 0 &2903 ac 21 38 ; line at &69ac, direction 1, colour 2, length 12, slope 0 &2906 a1 81 19 ; line at &69a1, direction 4, colour 2, length 4, slope 1 &2909 a2 01 18 ; line at &69a2, direction 0, colour 2, length 4, slope 0 &290c bc a1 2a ; line at &69bc, direction 5, colour 2, length 8, slope 2 &290f a6 21 18 ; line at &69a6, direction 1, colour 2, length 4, slope 0 &2912 a5 20 88 ; line at &68a5, direction 1, colour 2, length 32, slope 0 &2915 88 02 39 ; line at &6a88, direction 0, colour 2, length 12, slope 1 &2918 35 02 29 ; line at &6a35, direction 0, colour 2, length 8, slope 1 &291b 46 21 18 ; line at &6946, direction 1, colour 2, length 4, slope 0 &291e 04 ; 4 quads &291f 89 82 18 ff ; quad at &6a89, direction 3, lengths 8 8, slope 0, draw 1234, no fill &2923 c8 22 13 e7 ; quad at &6ac8, direction 1, lengths 3 2, slope 1, draw 123, no fill &2927 36 82 11 ff ; quad at &6a36, direction 3, lengths 1 8, slope 0, draw 1234, no fill &292b 3d 22 12 e7 ; quad at &6a3d, direction 1, lengths 2 2, slope 1, draw 123, no fill &292f 09 ; 9 filled areas &2930 a3 21 ; fill area at &69a3, fill 1 &2932 b3 01 ; fill area at &69b3, fill 0 &2934 bb 02 ; fill area at &6abb, fill 0 &2936 c8 02 ; fill area at &6ac8, fill 0 &2938 d9 01 ; fill area at &69d9, fill 0 &293a d5 01 ; fill area at &69d5, fill 0 &293c 3c 82 ; fill area at &6a3c, fill 4 &293e 30 83 ; fill area at &6b30, fill 4 &2940 47 81 ; fill area at &6947, fill 4 &2942 02 ; 2 copied areas &2943 31 74 b0 94 ; mirror area from &7c30 to &7cb0, 11 x 9 &2947 89 30 00 53 ; mirror area from &7888 to &7b00, 0 x 5 &294b 00 ; no text &294c ff ; end ; graphics_continuation_294d # Used by graphics_0a, graphics_66 &294d 02 ; 2 lines &294e 6f 24 38 ; line at &6c6f, direction 1, colour 2, length 12, slope 0 &2951 03 23 b8 ; line at &6b03, direction 1, colour 2, length 44, slope 0 &2954 0e ; 14 quads &2955 03 80 59 ff ; quad at &6803, direction 3, lengths 9 8, slope 0, draw 1234, no fill &2959 77 85 24 df ; quad at &6d77, direction 2, lengths 4 8, slope 0, draw 1234, fill 6 at 2 &295d 7f 86 62 ce ; quad at &6e7f, direction 2, lengths 2 8, slope 0, draw 234, fill 6 at 1 &2961 6f 44 22 fd ; quad at &6c6f, direction 0, lengths 2 4, slope 2, draw 134, no fill &2965 75 66 33 fc ; quad at &6e75, direction 1, lengths 3 6, slope 3, draw 34, no fill &2969 74 81 72 f3 ; quad at &6974, direction 3, lengths 2 8, slope 0, draw 12, no fill &296d 64 81 c2 bd ; quad at &6964, direction 2, lengths 2 8, slope 0, draw 134, fill 5 at 2 &2971 62 80 28 9f ; quad at &6862, direction 2, lengths 8 8, slope 0, draw 1234, fill 4 at 2 &2975 07 83 4a 77 ; quad at &6b07, direction 2, lengths 10 8, slope 0, draw 123, fill 3 at 2 &2979 56 23 41 27 ; quad at &6b56, direction 0, lengths 1 2, slope 1, draw 123, fill 1 at 1 &297d 00 87 48 77 ; quad at &6f00, direction 2, lengths 8 8, slope 0, draw 123, fill 3 at 2 &2981 47 26 23 27 ; quad at &6e47, direction 0, lengths 3 2, slope 1, draw 123, fill 1 at 1 &2985 48 81 d3 14 ; quad at &6948, direction 3, lengths 3 8, slope 0, draw 3, fill 0 at 2 &2989 47 27 21 26 ; quad at &6f47, direction 0, lengths 1 2, slope 1, draw 23, fill 1 at 1 &298d 04 ; 4 filled areas &298e 6f 25 ; fill area at &6d6f, fill 1 &2990 77 27 ; fill area at &6f77, fill 1 &2992 05 66 ; fill area at &6e05, fill 3 &2994 05 23 ; fill area at &6b05, fill 1 &2996 01 ; 1 copied area &2997 01 b0 80 f0 ; mirror area from &7800 to &7880, 8 x 15 &299b 00 ; no text &299c ff ; end ; graphics_0a &299d 41 ; colour 1 is blue, colour 2 is red &299e 00 ; 0 lines &299f 01 ; 1 quad &29a0 03 80 58 d7 ; quad at &6803, direction 3, lengths 8 8, slope 0, draw 123, fill 6 at 2 &29a4 00 ; 0 filled areas &29a5 00 ; 0 copied areas &29a6 00 ; no text &29a7 4d 29 ; continue at &294d (graphics_continuation_294d) ; graphics_66 &29a9 41 ; colour 1 is blue, colour 2 is red &29aa 02 ; 2 lines &29ab 06 02 5a ; line at &6a06, direction 0, colour 2, length 20, slope 2 &29ae 2e 02 5b ; line at &6a2e, direction 0, colour 2, length 20, slope 3 &29b1 00 ; 0 quads &29b2 00 ; 0 filled areas &29b3 00 ; 0 copied areas &29b4 00 ; no text &29b5 4d 29 ; continue at &294d (graphics_continuation_294d) ; graphics_3f &29b7 63 ; colour 1 is cyan, colour 2 is yellow ; graphics_continuation_29b8 # Used by graphics_42, graphics_continuation_29cf &29b8 00 ; 0 lines &29b9 03 ; 3 quads &29ba 70 80 ea 1e ; quad at &6870, direction 2, lengths 10 8, slope 0, draw 234, fill 0 at 2 &29be 38 20 77 14 ; quad at &6838, direction 1, lengths 7 2, slope 1, draw 3, fill 0 at 2 &29c2 03 23 f7 06 ; quad at &6b03, direction 1, lengths 7 2, slope 1, draw 23, fill 0 at 1 &29c6 00 ; 0 filled areas &29c7 01 ; 1 copied area &29c8 31 b0 98 c0 ; mirror area from &7830 to &6898, 9 x 12 &29cc 00 ; no text &29cd ff ; end ; graphics_42 &29ce 62 ; colour 1 is cyan, colour 2 is green ; graphics_continuation_29cf # Used by graphics_45, graphics_47 &29cf 01 ; 1 line &29d0 6f 0a 39 ; line at &726f, direction 0, colour 2, length 12, slope 1 &29d3 01 ; 1 quad &29d4 83 89 27 d3 ; quad at &7183, direction 2, lengths 7 8, slope 0, draw 12, fill 6 at 2 &29d8 00 ; 0 filled areas &29d9 00 ; 0 copied areas &29da 00 ; no text &29db b8 29 ; continue at &29b8 (graphics_continuation_29b8) ; graphics_45 ; graphics_47 &29dd 61 ; colour 1 is cyan, colour 2 is red &29de 01 ; 1 line &29df 4c 46 49 ; line at &6e4c, direction 2, colour 2, length 16, slope 1 &29e2 01 ; 1 quad &29e3 4c 86 32 f9 ; quad at &6e4c, direction 3, lengths 2 8, slope 0, draw 14, no fill &29e7 00 ; 0 filled areas &29e8 00 ; 0 copied areas &29e9 00 ; no text &29ea cf 29 ; continue at &29cf (graphics_continuation_29cf) ; graphics_40 &29ec 65 ; colour 1 is cyan, colour 2 is magenta ; graphics_continuation_29ed # Used by graphics_43, graphics_continuation_2a13 &29ed 01 ; 1 line &29ee 09 89 08 ; line at &7109, direction 4, colour 2, length 0, slope 0 &29f1 06 ; 6 quads &29f2 10 80 f3 36 ; quad at &6810, direction 3, lengths 3 8, slope 0, draw 23, fill 1 at 2 &29f6 2b 21 c3 06 ; quad at &692b, direction 0, lengths 3 2, slope 1, draw 23, fill 0 at 1 &29fa 07 48 44 04 ; quad at &7007, direction 0, lengths 4 4, slope 2, draw 3, fill 0 at 1 &29fe 41 80 c4 16 ; quad at &6841, direction 2, lengths 4 8, slope 0, draw 23, fill 0 at 2 &2a02 67 42 66 26 ; quad at &6a67, direction 0, lengths 6 4, slope 2, draw 23, fill 1 at 1 &2a06 78 80 32 17 ; quad at &6878, direction 3, lengths 2 8, slope 0, draw 123, fill 0 at 2 &2a0a 00 ; 0 filled areas &2a0b 01 ; 1 copied area &2a0c 01 b0 80 f0 ; mirror area from &7800 to &7880, 8 x 15 &2a10 00 ; no text &2a11 ff ; end ; graphics_43 &2a12 64 ; colour 1 is cyan, colour 2 is blue ; graphics_continuation_2a13 # Used by graphics_46 &2a13 00 ; 0 lines &2a14 01 ; 1 quad &2a15 52 2a 12 ef ; quad at &7252, direction 1, lengths 2 2, slope 1, draw 1234, no fill &2a19 02 ; 2 filled areas &2a1a 5f 29 ; fill area at &715f, fill 1 &2a1c 53 2a ; fill area at &7253, fill 1 &2a1e 02 ; 2 copied areas &2a1f 51 29 60 19 ; mirror area from &7150 to &8160, 6 x 1 &2a23 50 29 68 26 ; copy area from &7150 to &6e68, 6 x 2 &2a27 00 ; no text &2a28 ed 29 ; continue at &29ed (graphics_continuation_29ed) ; graphics_46 &2a2a 62 ; colour 1 is cyan, colour 2 is green &2a2b 00 ; 0 lines &2a2c 00 ; 0 quads &2a2d 00 ; 0 filled areas &2a2e 00 ; 0 copied areas &2a2f 00 ; no text &2a30 13 2a ; continue at &2a13 (graphics_continuation_2a13) ; graphics_41 &2a32 65 ; colour 1 is cyan, colour 2 is magenta ; graphics_continuation_2a33 # Used by graphics_44, graphics_continuation_2a5f &2a33 03 ; 3 lines &2a34 21 a8 3b ; line at &7021, direction 5, colour 2, length 12, slope 3 &2a37 5f 84 39 ; line at &6c5f, direction 4, colour 2, length 12, slope 1 &2a3a 6f 86 4a ; line at &6e6f, direction 4, colour 2, length 16, slope 2 &2a3d 05 ; 5 quads &2a3e 13 22 e3 eb ; quad at &6a13, direction 0, lengths 3 2, slope 1, draw 124, no fill &2a42 4c 80 d5 fb ; quad at &684c, direction 3, lengths 5 8, slope 0, draw 124, no fill &2a46 02 26 82 04 ; quad at &6e02, direction 0, lengths 2 2, slope 1, draw 3, fill 0 at 1 &2a4a 2f c4 64 04 ; quad at &6c2f, direction 2, lengths 4 12, slope 2, draw 3, fill 0 at 1 &2a4e 73 80 d3 16 ; quad at &6873, direction 3, lengths 3 8, slope 0, draw 23, fill 0 at 2 &2a52 02 ; 2 filled areas &2a53 21 e2 ; fill area at &6a21, fill 7 &2a55 69 e2 ; fill area at &6a69, fill 7 &2a57 01 ; 1 copied area &2a58 01 b0 80 f0 ; mirror area from &7800 to &7880, 8 x 15 &2a5c 00 ; no text &2a5d ff ; end ; graphics_44 &2a5e 62 ; colour 1 is cyan, colour 2 is green ; graphics_continuation_2a5f # Used by graphics_48 &2a5f 02 ; 2 lines &2a60 57 0a 29 ; line at &7257, direction 0, colour 2, length 8, slope 1 &2a63 67 29 2a ; line at &7167, direction 1, colour 2, length 8, slope 2 &2a66 01 ; 1 quad &2a67 73 89 44 d3 ; quad at &7173, direction 2, lengths 4 8, slope 0, draw 12, fill 6 at 2 &2a6b 00 ; 0 filled areas &2a6c 00 ; 0 copied areas &2a6d 00 ; no text &2a6e 33 2a ; continue at &2a33 (graphics_continuation_2a33) ; graphics_48 &2a70 61 ; colour 1 is cyan, colour 2 is red &2a71 00 ; 0 lines &2a72 00 ; 0 quads &2a73 00 ; 0 filled areas &2a74 00 ; 0 copied areas &2a75 00 ; no text &2a76 5f 2a ; continue at &2a5f (graphics_continuation_2a5f) ; graphics_17 ; graphics_1a &2a78 46 ; colour 1 is blue, colour 2 is cyan &2a79 00 ; 0 lines &2a7a 01 ; 1 quad &2a7b 2c e1 63 ef ; quad at &692c, direction 2, lengths 3 14, slope 3, draw 1234, no fill &2a7f 00 ; 0 filled areas &2a80 00 ; 0 copied areas &2a81 00 ; no text &2a82 84 2a ; continue at &2a84 (graphics_continuation_2a84) ; graphics_continuation_2a84 # Used by graphics_17, graphics_18, graphics_19, graphics_1a &2a84 0c ; 12 lines &2a85 1e 47 a9 ; line at &6f1e, direction 2, colour 2, length 40, slope 1 &2a88 1e 27 da ; line at &6f1e, direction 1, colour 2, length 52, slope 2 &2a8b 20 28 ca ; line at &7020, direction 1, colour 2, length 48, slope 2 &2a8e 7d a8 da ; line at &707d, direction 5, colour 2, length 52, slope 2 &2a91 7b a9 da ; line at &717b, direction 5, colour 2, length 52, slope 2 &2a94 26 25 cb ; line at &6d26, direction 1, colour 2, length 48, slope 3 &2a97 25 25 cb ; line at &6d25, direction 1, colour 2, length 48, slope 3 &2a9a 78 a9 da ; line at &7178, direction 5, colour 2, length 52, slope 2 &2a9d 79 a9 da ; line at &7179, direction 5, colour 2, length 52, slope 2 &2aa0 7a a9 da ; line at &717a, direction 5, colour 2, length 52, slope 2 &2aa3 88 63 fb ; line at &6b88, direction 3, colour 2, length 60, slope 3 &2aa6 8e 63 9b ; line at &6b8e, direction 3, colour 2, length 36, slope 3 &2aa9 07 ; 7 quads &2aaa 1e c5 4d fb ; quad at &6d1e, direction 2, lengths 13 12, slope 2, draw 124, no fill &2aae 1d e5 2d e3 ; quad at &6d1d, direction 2, lengths 13 14, slope 3, draw 12, no fill &2ab2 3a c5 33 0a ; quad at &6d3a, direction 3, lengths 3 12, slope 2, draw 24, fill 0 at 1 &2ab6 53 84 23 12 ; quad at &6c53, direction 2, lengths 3 8, slope 0, draw 2, fill 0 at 2 &2aba 78 80 61 f6 ; quad at &6878, direction 2, lengths 1 8, slope 0, draw 23, no fill &2abe 80 80 61 fd ; quad at &6880, direction 2, lengths 1 8, slope 0, draw 134, no fill &2ac2 03 e5 2f 01 ; quad at &6d03, direction 2, lengths 15 14, slope 3, draw 1, fill 0 at 1 &2ac6 14 ; 20 filled areas &2ac7 25 27 ; fill area at &6f25, fill 1 &2ac9 32 27 ; fill area at &6f32, fill 1 &2acb 7f 24 ; fill area at &6c7f, fill 1 &2acd 6b 25 ; fill area at &6d6b, fill 1 &2acf 58 26 ; fill area at &6e58, fill 1 &2ad1 4b 26 ; fill area at &6e4b, fill 1 &2ad3 37 05 ; fill area at &6d37, fill 0 &2ad5 18 07 ; fill area at &6f18, fill 0 &2ad7 49 05 ; fill area at &6d49, fill 0 &2ad9 65 04 ; fill area at &6c65, fill 0 &2adb 6d 04 ; fill area at &6c6d, fill 0 &2add 78 04 ; fill area at &6c78, fill 0 &2adf 4b 04 ; fill area at &6c4b, fill 0 &2ae1 28 05 ; fill area at &6d28, fill 0 &2ae3 00 a1 ; fill area at &6900, fill 5 &2ae5 f8 a1 ; fill area at &69f8, fill 5 &2ae7 42 a2 ; fill area at &6a42, fill 5 &2ae9 ba a2 ; fill area at &6aba, fill 5 &2aeb 95 03 ; fill area at &6b95, fill 0 &2aed c5 04 ; fill area at &6cc5, fill 0 &2aef 03 ; 3 copied areas &2af0 01 65 80 f5 ; mirror area from &6d00 to &7d80, 8 x 15 &2af4 49 24 80 64 ; mirror area from &6c48 to &6c80, 8 x 6 &2af8 71 13 80 13 ; mirror area from &7b70 to &7b80, 8 x 1 &2afc 00 ; no text &2afd ff ; end ; graphics_18 ; graphics_19 &2afe 46 ; colour 1 is blue, colour 2 is cyan &2aff 00 ; 0 lines &2b00 01 ; 1 quad &2b01 c1 e1 63 ff ; quad at &69c1, direction 2, lengths 3 14, slope 3, draw 1234, no fill &2b05 00 ; 0 filled areas &2b06 00 ; 0 copied areas &2b07 00 ; no text &2b08 84 2a ; continue at &2a84 (graphics_continuation_2a84) ; graphics_15 &2b0a 24 ; colour 1 is green, colour 2 is blue &2b0b 0c ; 12 lines &2b0c 7e 08 19 ; line at &707e, direction 0, colour 2, length 4, slope 1 &2b0f 84 07 2a ; line at &6f84, direction 0, colour 2, length 8, slope 2 &2b12 8d 05 f8 ; line at &6d8d, direction 0, colour 2, length 60, slope 0 &2b15 bc 85 19 ; line at &6dbc, direction 4, colour 2, length 4, slope 1 &2b18 89 25 68 ; line at &6d89, direction 1, colour 2, length 24, slope 0 &2b1b 8a 24 68 ; line at &6c8a, direction 1, colour 2, length 24, slope 0 &2b1e 8e 23 48 ; line at &6b8e, direction 1, colour 2, length 16, slope 0 &2b21 a0 a3 2b ; line at &6ba0, direction 5, colour 2, length 8, slope 3 &2b24 92 a2 2b ; line at &6a92, direction 5, colour 2, length 8, slope 3 &2b27 b5 08 19 ; line at &70b5, direction 0, colour 2, length 4, slope 1 &2b2a 76 0a 19 ; line at &7276, direction 0, colour 2, length 4, slope 1 &2b2d ae 0a 19 ; line at &72ae, direction 0, colour 2, length 4, slope 1 &2b30 07 ; 7 quads &2b31 7e 88 37 ff ; quad at &707e, direction 3, lengths 7 8, slope 0, draw 1234, no fill &2b35 82 87 27 ff ; quad at &6f82, direction 2, lengths 7 8, slope 0, draw 1234, no fill &2b39 8d 85 27 ff ; quad at &6d8d, direction 2, lengths 7 8, slope 0, draw 1234, no fill &2b3d ae c3 22 f3 ; quad at &6bae, direction 2, lengths 2 12, slope 2, draw 12, no fill &2b41 89 83 14 f3 ; quad at &6b89, direction 3, lengths 4 8, slope 0, draw 12, no fill &2b45 8a 82 12 f7 ; quad at &6a8a, direction 3, lengths 2 8, slope 0, draw 123, no fill &2b49 ba 47 92 e3 ; quad at &6fba, direction 1, lengths 2 4, slope 2, draw 12, no fill &2b4d 09 ; 9 filled areas &2b4e 8b 48 ; fill area at &708b, fill 2 &2b50 8e 4a ; fill area at &728e, fill 2 &2b52 88 47 ; fill area at &6f88, fill 2 &2b54 92 45 ; fill area at &6d92, fill 2 &2b56 88 44 ; fill area at &6c88, fill 2 &2b58 90 43 ; fill area at &6b90, fill 2 &2b5a 89 42 ; fill area at &6a89, fill 2 &2b5c 16 c3 ; fill area at &6b16, fill 6 &2b5e ee c3 ; fill area at &6bee, fill 6 &2b60 00 ; 0 copied areas &2b61 00 ; no text &2b62 ff ; end ; graphics_49 &2b63 14 ; colour 1 is red, colour 2 is blue &2b64 08 ; 8 lines &2b65 2b e6 3a ; line at &6e2b, direction 7, colour 2, length 12, slope 2 &2b68 33 26 98 ; line at &6e33, direction 1, colour 2, length 36, slope 0 &2b6b b3 87 6a ; line at &6fb3, direction 4, colour 2, length 24, slope 2 &2b6e 9b 84 59 ; line at &6c9b, direction 4, colour 2, length 20, slope 1 &2b71 b3 26 28 ; line at &6eb3, direction 1, colour 2, length 8, slope 0 &2b74 74 c6 2a ; line at &6e74, direction 6, colour 2, length 8, slope 2 &2b77 6c c7 29 ; line at &6f6c, direction 6, colour 2, length 8, slope 1 &2b7a 7f 0a 4a ; line at &727f, direction 0, colour 2, length 16, slope 2 &2b7d 06 ; 6 quads &2b7e 53 4a 24 e9 ; quad at &7253, direction 0, lengths 4 4, slope 2, draw 14, no fill &2b82 88 89 44 93 ; quad at &7188, direction 2, lengths 4 8, slope 0, draw 12, fill 4 at 2 &2b86 7b 81 a7 fb ; quad at &697b, direction 2, lengths 7 8, slope 0, draw 124, no fill &2b8a 77 80 b9 db ; quad at &6877, direction 3, lengths 9 8, slope 0, draw 124, fill 6 at 2 &2b8e 03 26 43 24 ; quad at &6e03, direction 0, lengths 3 2, slope 1, draw 3, fill 1 at 1 &2b92 7c 87 78 b2 ; quad at &6f7c, direction 3, lengths 8 8, slope 0, draw 2, fill 5 at 2 &2b96 01 ; 1 filled area &2b97 a8 02 ; fill area at &6aa8, fill 0 &2b99 02 ; 2 copied areas &2b9a 01 90 b8 80 ; mirror area from &7800 to &68b8, 11 x 8 &2b9e 51 47 a0 67 ; mirror area from &6f50 to &6fa0, 10 x 6 &2ba2 00 ; no text &2ba3 ff ; end ; graphics_4c &2ba4 21 ; colour 1 is green, colour 2 is red &2ba5 03 ; 3 lines &2ba6 4f c7 79 ; line at &6f4f, direction 6, colour 2, length 28, slope 1 &2ba9 53 23 24 ; line at &6b53, direction 1, colour 1, length 8, slope 0 &2bac 3a 21 38 ; line at &693a, direction 1, colour 2, length 12, slope 0 &2baf 05 ; 5 quads &2bb0 05 c3 da 03 ; quad at &6b05, direction 3, lengths 10 12, slope 2, draw 12, fill 0 at 1 &2bb4 53 83 92 26 ; quad at &6b53, direction 3, lengths 2 8, slope 0, draw 23, fill 1 at 1 &2bb8 05 e0 37 26 ; quad at &6805, direction 3, lengths 7 14, slope 3, draw 23, fill 1 at 1 &2bbc 53 88 41 3f ; quad at &7053, direction 2, lengths 1 8, slope 0, draw 1234, fill 1 at 2 &2bc0 5d 88 3a b5 ; quad at &705d, direction 3, lengths 10 8, slope 0, draw 13, fill 5 at 2 &2bc4 00 ; 0 filled areas &2bc5 01 ; 1 copied area &2bc6 01 b0 80 f0 ; mirror area from &7800 to &7880, 8 x 15 &2bca 58 71 05 ; text at &7158, length &05 &2bcd 05 08 04 0b 03 ; "FIELD" &2bd2 e8 59 ; continue at &59e8 (graphics_continuation_59e8) ; graphics_4d &2bd4 25 ; colour 1 is green, colour 2 is magenta &2bd5 04 ; 4 lines &2bd6 7d 44 28 ; line at &6c7d, direction 2, colour 2, length 8, slope 0 &2bd9 3a 23 54 ; line at &6b3a, direction 1, colour 1, length 20, slope 0 &2bdc 30 c8 79 ; line at &7030, direction 6, colour 2, length 28, slope 1 &2bdf 6f 04 29 ; line at &6c6f, direction 0, colour 2, length 8, slope 1 &2be2 05 ; 5 quads &2be3 3b 83 95 3e ; quad at &6b3b, direction 3, lengths 5 8, slope 0, draw 234, fill 1 at 2 &2be7 38 21 52 e9 ; quad at &6938, direction 1, lengths 2 2, slope 1, draw 14, no fill &2beb 06 c2 27 a1 ; quad at &6a06, direction 2, lengths 7 12, slope 2, draw 1, fill 5 at 1 &2bef 7c 81 52 9f ; quad at &697c, direction 3, lengths 2 8, slope 0, draw 1234, fill 4 at 2 &2bf3 7e 84 12 ff ; quad at &6c7e, direction 3, lengths 2 8, slope 0, draw 1234, no fill &2bf7 02 ; 2 filled areas &2bf8 05 01 ; fill area at &6905, fill 0 &2bfa 7f c4 ; fill area at &6c7f, fill 6 &2bfc 01 ; 1 copied area &2bfd 01 b0 80 f0 ; mirror area from &7800 to &7880, 8 x 15 &2c01 00 ; no text &2c02 e8 59 ; continue at &59e8 (graphics_continuation_59e8) ; graphics_continuation_2c04 # Used by graphics_4e &2c04 00 ; 0 lines &2c05 00 ; 0 quads &2c06 02 ; 2 filled areas &2c07 40 23 ; fill area at &6b40, fill 1 &2c09 b8 03 ; fill area at &6bb8, fill 0 &2c0b 00 ; 0 copied areas &2c0c 00 ; no text &2c0d ff ; end ; graphics_4e &2c0e 12 ; colour 1 is red, colour 2 is green &2c0f 05 ; 5 lines &2c10 06 02 69 ; line at &6a06, direction 0, colour 2, length 24, slope 1 &2c13 38 01 19 ; line at &6938, direction 0, colour 2, length 4, slope 1 &2c16 44 20 1a ; line at &6844, direction 1, colour 2, length 4, slope 2 &2c19 4b 40 b8 ; line at &684b, direction 2, colour 2, length 44, slope 0 &2c1c 46 a5 3a ; line at &6d46, direction 5, colour 2, length 12, slope 2 &2c1f 04 ; 4 quads &2c20 03 20 24 ef ; quad at &6803, direction 0, lengths 4 2, slope 1, draw 1234, no fill &2c24 4d 43 4c a4 ; quad at &6b4d, direction 0, lengths 12 4, slope 2, draw 3, fill 5 at 1 &2c28 33 40 32 a4 ; quad at &6833, direction 1, lengths 2 4, slope 2, draw 3, fill 5 at 1 &2c2c 1f 44 d6 a6 ; quad at &6c1f, direction 1, lengths 6 4, slope 2, draw 23, fill 5 at 1 &2c30 00 ; 0 filled areas &2c31 01 ; 1 copied area &2c32 01 b0 80 f0 ; mirror area from &7800 to &7880, 8 x 15 &2c36 00 ; no text &2c37 04 2c ; continue at &2c04 (graphics_continuation_2c04) ; graphics_51 &2c39 14 ; colour 1 is red, colour 2 is blue &2c3a 0d ; 13 lines &2c3b 21 03 2a ; line at &6b21, direction 0, colour 2, length 8, slope 2 &2c3e 29 02 19 ; line at &6a29, direction 0, colour 2, length 4, slope 1 &2c41 35 21 1a ; line at &6935, direction 1, colour 2, length 4, slope 2 &2c44 3b 21 98 ; line at &693b, direction 1, colour 2, length 36, slope 0 &2c47 28 05 2a ; line at &6d28, direction 0, colour 2, length 8, slope 2 &2c4a 30 04 19 ; line at &6c30, direction 0, colour 2, length 4, slope 1 &2c4d 3c 23 1a ; line at &6b3c, direction 1, colour 2, length 4, slope 2 &2c50 46 24 2a ; line at &6c46, direction 1, colour 2, length 8, slope 2 &2c53 50 85 2a ; line at &6d50, direction 4, colour 2, length 8, slope 2 &2c56 48 84 19 ; line at &6c48, direction 4, colour 2, length 4, slope 1 &2c59 44 a3 1a ; line at &6b44, direction 5, colour 2, length 4, slope 2 &2c5c 19 c8 49 ; line at &7019, direction 6, colour 2, length 16, slope 1 &2c5f 43 24 2a ; line at &6c43, direction 1, colour 2, length 8, slope 2 &2c62 09 ; 9 quads &2c63 28 85 66 ea ; quad at &6d28, direction 2, lengths 6 8, slope 0, draw 24, no fill &2c67 58 86 47 b6 ; quad at &6e58, direction 2, lengths 7 8, slope 0, draw 23, fill 5 at 2 &2c6b 20 83 a1 bc ; quad at &6b20, direction 2, lengths 1 8, slope 0, draw 34, fill 5 at 2 &2c6f 2f 85 11 f7 ; quad at &6d2f, direction 3, lengths 1 8, slope 0, draw 123, no fill &2c73 36 25 12 e5 ; quad at &6d36, direction 1, lengths 2 2, slope 1, draw 13, no fill &2c77 2f 25 43 e5 ; quad at &6d2f, direction 0, lengths 3 2, slope 1, draw 13, no fill &2c7b 43 c5 23 e5 ; quad at &6d43, direction 2, lengths 3 12, slope 2, draw 13, no fill &2c7f 00 c3 36 a1 ; quad at &6b00, direction 3, lengths 6 12, slope 2, draw 1, fill 5 at 1 &2c83 06 e0 26 31 ; quad at &6806, direction 2, lengths 6 14, slope 3, draw 1, fill 1 at 2 &2c87 02 ; 2 filled areas &2c88 51 0a ; fill area at &7251, fill 0 &2c8a 1c a2 ; fill area at &6a1c, fill 5 &2c8c 01 ; 1 copied area &2c8d 01 b0 80 f0 ; mirror area from &7800 to &7880, 8 x 15 &2c91 00 ; no text &2c92 ff ; end ; graphics_50 &2c93 41 ; colour 1 is blue, colour 2 is red &2c94 04 ; 4 lines &2c95 21 08 89 ; line at &7021, direction 0, colour 2, length 32, slope 1 &2c98 63 02 19 ; line at &6a63, direction 0, colour 2, length 4, slope 1 &2c9b 68 22 38 ; line at &6a68, direction 1, colour 2, length 12, slope 0 &2c9e 22 28 c8 ; line at &7022, direction 1, colour 2, length 48, slope 0 &2ca1 09 ; 9 quads &2ca2 01 2a 14 21 ; quad at &7201, direction 1, lengths 4 2, slope 1, draw 1, fill 1 at 1 &2ca6 42 86 49 d3 ; quad at &6e42, direction 2, lengths 9 8, slope 0, draw 12, fill 6 at 2 &2caa 6a 23 21 e9 ; quad at &6b6a, direction 0, lengths 1 2, slope 1, draw 14, no fill &2cae 77 22 21 f3 ; quad at &6a77, direction 0, lengths 1 2, slope 1, draw 12, no fill &2cb2 62 82 41 ac ; quad at &6a62, direction 2, lengths 1 8, slope 0, draw 34, fill 5 at 1 &2cb6 7a 83 21 b4 ; quad at &6b7a, direction 2, lengths 1 8, slope 0, draw 3, fill 5 at 2 &2cba 6a 24 22 21 ; quad at &6c6a, direction 0, lengths 2 2, slope 1, draw 1, fill 1 at 1 &2cbe 02 c5 2c a1 ; quad at &6d02, direction 2, lengths 12 12, slope 2, draw 1, fill 5 at 1 &2cc2 00 e0 2d 11 ; quad at &6800, direction 2, lengths 13 14, slope 3, draw 1, fill 0 at 2 &2cc6 01 ; 1 filled area &2cc7 30 a5 ; fill area at &6d30, fill 5 &2cc9 01 ; 1 copied area &2cca 01 b0 80 f0 ; mirror area from &7800 to &7880, 8 x 15 &2cce 00 ; no text &2ccf ff ; end ; graphics_35 &2cd0 41 ; colour 1 is blue, colour 2 is red ; graphics_continuation_2cd1 # Used by graphics_4f &2cd1 0c ; 12 lines &2cd2 3b 02 5b ; line at &6a3b, direction 0, colour 2, length 20, slope 3 &2cd5 15 03 8b ; line at &6b15, direction 0, colour 2, length 32, slope 3 &2cd8 0e e3 2b ; line at &6b0e, direction 7, colour 2, length 8, slope 3 &2cdb 15 23 5a ; line at &6b15, direction 1, colour 2, length 20, slope 2 &2cde 5b 07 3b ; line at &6f5b, direction 0, colour 2, length 12, slope 3 &2ce1 4b 09 4a ; line at &714b, direction 0, colour 2, length 16, slope 2 &2ce4 37 0a 39 ; line at &7237, direction 0, colour 2, length 12, slope 1 &2ce7 c6 8a 6b ; line at &72c6, direction 4, colour 2, length 24, slope 3 &2cea 3b 0a 58 ; line at &723b, direction 0, colour 2, length 20, slope 0 &2ced d8 42 aa ; line at &6ad8, direction 2, colour 2, length 40, slope 2 &2cf0 d7 81 4b ; line at &69d7, direction 4, colour 2, length 16, slope 3 &2cf3 fc 84 9b ; line at &6cfc, direction 4, colour 2, length 36, slope 3 &2cf6 05 ; 5 quads &2cf7 3b 22 c5 2b ; quad at &6a3b, direction 0, lengths 5 2, slope 1, draw 124, fill 1 at 1 &2cfb b8 20 04 f3 ; quad at &68b8, direction 0, lengths 4 2, slope 1, draw 12, no fill &2cff a8 40 c4 fc ; quad at &68a8, direction 0, lengths 4 4, slope 2, draw 34, no fill &2d03 88 20 84 3c ; quad at &6888, direction 0, lengths 4 2, slope 1, draw 34, fill 1 at 2 &2d07 66 c1 25 34 ; quad at &6966, direction 2, lengths 5 12, slope 2, draw 3, fill 1 at 2 &2d0b 0e ; 14 filled areas &2d0c 35 27 ; fill area at &6f35, fill 1 &2d0e dc 25 ; fill area at &6ddc, fill 1 &2d10 d2 29 ; fill area at &71d2, fill 1 &2d12 a8 21 ; fill area at &69a8, fill 1 &2d14 af 22 ; fill area at &6aaf, fill 1 &2d16 bc 23 ; fill area at &6bbc, fill 1 &2d18 07 01 ; fill area at &6907, fill 0 &2d1a cf 00 ; fill area at &68cf, fill 0 &2d1c e1 01 ; fill area at &69e1, fill 0 &2d1e fd 04 ; fill area at &6cfd, fill 0 &2d20 fe 00 ; fill area at &68fe, fill 0 &2d22 20 02 ; fill area at &6a20, fill 0 &2d24 12 03 ; fill area at &6b12, fill 0 &2d26 42 01 ; fill area at &6942, fill 0 &2d28 00 ; 0 copied areas &2d29 00 ; no text &2d2a ff ; end ; graphics_4f &2d2b 42 ; colour 1 is blue, colour 2 is green &2d2c 02 ; 2 lines &2d2d b3 42 3a ; line at &6ab3, direction 2, colour 2, length 12, slope 2 &2d30 b3 22 2a ; line at &6ab3, direction 1, colour 2, length 8, slope 2 &2d33 01 ; 1 quad &2d34 bb 22 13 f7 ; quad at &6abb, direction 1, lengths 3 2, slope 1, draw 123, no fill &2d38 00 ; 0 filled areas &2d39 00 ; 0 copied areas &2d3a 00 ; no text &2d3b d1 2c ; continue at &2cd1 (graphics_continuation_2cd1) ; graphics_continuation_2d3d # Used by graphics_3a, graphics_continuation_2d57 &2d3d 02 ; 2 lines &2d3e dc 66 5a ; line at &6edc, direction 3, colour 2, length 20, slope 2 &2d41 dc 06 19 ; line at &6edc, direction 0, colour 2, length 4, slope 1 &2d44 02 ; 2 quads &2d45 dc 81 a5 f9 ; quad at &69dc, direction 2, lengths 5 8, slope 0, draw 14, no fill &2d49 e4 c1 94 1c ; quad at &69e4, direction 3, lengths 4 12, slope 2, draw 34, fill 0 at 2 &2d4d 03 ; 3 filled areas &2d4e 73 20 ; fill area at &6873, fill 1 &2d50 75 28 ; fill area at &7075, fill 1 &2d52 03 a2 ; fill area at &6a03, fill 5 &2d54 00 ; 0 copied areas &2d55 00 ; no text &2d56 ff ; end ; graphics_continuation_2d57 # Used by graphics_3b, graphics_continuation_2d73 &2d57 03 ; 3 lines &2d58 b4 04 19 ; line at &6cb4, direction 0, colour 2, length 4, slope 1 &2d5b b4 64 3a ; line at &6cb4, direction 3, colour 2, length 12, slope 2 &2d5e bb 64 2a ; line at &6cbb, direction 3, colour 2, length 8, slope 2 &2d61 02 ; 2 quads &2d62 b3 81 61 fb ; quad at &69b3, direction 2, lengths 1 8, slope 0, draw 124, no fill &2d66 bb 81 82 f3 ; quad at &69bb, direction 2, lengths 2 8, slope 0, draw 12, no fill &2d6a 02 ; 2 filled areas &2d6b c2 04 ; fill area at &6cc2, fill 0 &2d6d bd 01 ; fill area at &69bd, fill 0 &2d6f 00 ; 0 copied areas &2d70 00 ; no text &2d71 3d 2d ; continue at &2d3d (graphics_continuation_2d3d) ; graphics_continuation_2d73 # Used by graphics_37 &2d73 00 ; 0 lines &2d74 02 ; 2 quads &2d75 9b c2 22 f6 ; quad at &6a9b, direction 2, lengths 2 12, slope 2, draw 23, no fill &2d79 9b 81 42 fb ; quad at &699b, direction 2, lengths 2 8, slope 0, draw 124, no fill &2d7d 01 ; 1 filled area &2d7e a0 02 ; fill area at &6aa0, fill 0 &2d80 00 ; 0 copied areas &2d81 00 ; no text &2d82 57 2d ; continue at &2d57 (graphics_continuation_2d57) ; graphics_37 &2d84 84 51 ; colour 1 is red, colour 2 is blue &2d86 07 ; 7 lines &2d87 51 06 49 ; line at &6e51, direction 0, colour 2, length 16, slope 1 &2d8a 92 44 e9 ; line at &6c92, direction 2, colour 2, length 56, slope 1 &2d8d 89 21 7b ; line at &6989, direction 1, colour 2, length 28, slope 3 &2d90 b8 c2 48 ; line at &6ab8, direction 6, colour 2, length 16, slope 0 &2d93 4e a1 1a ; line at &694e, direction 5, colour 2, length 4, slope 2 &2d96 44 e1 6a ; line at &6944, direction 7, colour 2, length 24, slope 2 &2d99 10 c3 19 ; line at &6b10, direction 6, colour 2, length 4, slope 1 &2d9c 05 ; 5 quads &2d9d c7 81 41 97 ; quad at &69c7, direction 2, lengths 1 8, slope 0, draw 123, fill 4 at 2 &2da1 71 81 64 bf ; quad at &6971, direction 2, lengths 4 8, slope 0, draw 1234, fill 5 at 2 &2da5 0e 81 99 f6 ; quad at &690e, direction 3, lengths 9 8, slope 0, draw 23, no fill &2da9 0b 44 e2 e9 ; quad at &6c0b, direction 0, lengths 2 4, slope 2, draw 14, no fill &2dad 38 e0 27 b1 ; quad at &6838, direction 2, lengths 7 14, slope 3, draw 1, fill 5 at 2 &2db1 01 ; 1 filled area &2db2 50 a5 ; fill area at &6d50, fill 5 &2db4 00 ; 0 copied areas &2db5 00 ; no text &2db6 73 2d ; continue at &2d73 (graphics_continuation_2d73) ; graphics_3b &2db8 84 51 ; colour 1 is red, colour 2 is blue &2dba 07 ; 7 lines &2dbb 9f 44 e9 ; line at &6c9f, direction 2, colour 2, length 56, slope 1 &2dbe eb 65 3b ; line at &6deb, direction 3, colour 2, length 12, slope 3 &2dc1 66 a0 6b ; line at &6866, direction 5, colour 2, length 24, slope 3 &2dc4 9e 20 6b ; line at &689e, direction 1, colour 2, length 24, slope 3 &2dc7 0b e2 2a ; line at &6a0b, direction 7, colour 2, length 8, slope 2 &2dca 12 22 18 ; line at &6a12, direction 1, colour 2, length 4, slope 0 &2dcd 1b 42 19 ; line at &6a1b, direction 2, colour 2, length 4, slope 1 &2dd0 04 ; 4 quads &2dd1 ea 82 63 99 ; quad at &6aea, direction 2, lengths 3 8, slope 0, draw 14, fill 4 at 2 &2dd5 6f 80 86 bf ; quad at &686f, direction 2, lengths 6 8, slope 0, draw 1234, fill 5 at 2 &2dd9 06 82 d4 f6 ; quad at &6a06, direction 3, lengths 4 8, slope 0, draw 23, no fill &2ddd 21 26 69 a4 ; quad at &6e21, direction 0, lengths 9 2, slope 1, draw 3, fill 5 at 1 &2de1 00 ; 0 filled areas &2de2 00 ; 0 copied areas &2de3 00 ; no text &2de4 57 2d ; continue at &2d57 (graphics_continuation_2d57) ; graphics_3a &2de6 84 51 ; colour 1 is red, colour 2 is blue &2de8 02 ; 2 lines &2de9 41 c7 89 ; line at &6f41, direction 6, colour 2, length 32, slope 1 &2dec b9 47 89 ; line at &6fb9, direction 2, colour 2, length 32, slope 1 &2def 01 ; 1 quad &2df0 48 80 ee bf ; quad at &6848, direction 2, lengths 14 8, slope 0, draw 1234, fill 5 at 2 &2df4 00 ; 0 filled areas &2df5 00 ; 0 copied areas &2df6 00 ; no text &2df7 3d 2d ; continue at &2d3d (graphics_continuation_2d3d) ; graphics_3c &2df9 24 ; colour 1 is green, colour 2 is blue &2dfa 08 ; 8 lines &2dfb 42 02 2a ; line at &6a42, direction 0, colour 2, length 8, slope 2 &2dfe 4a 01 19 ; line at &694a, direction 0, colour 2, length 4, slope 1 &2e01 4e a0 5b ; line at &684e, direction 5, colour 2, length 20, slope 3 &2e04 7c aa 2b ; line at &727c, direction 5, colour 2, length 8, slope 3 &2e07 c3 46 89 ; line at &6ec3, direction 2, colour 2, length 32, slope 1 &2e0a 56 48 4a ; line at &7056, direction 2, colour 2, length 16, slope 2 &2e0d 6b ea 2b ; line at &726b, direction 7, colour 2, length 8, slope 3 &2e10 54 c8 1a ; line at &7054, direction 6, colour 2, length 4, slope 2 &2e13 06 ; 6 quads &2e14 42 82 8a be ; quad at &6a42, direction 2, lengths 10 8, slope 0, draw 234, fill 5 at 2 &2e18 56 80 37 b3 ; quad at &6856, direction 3, lengths 7 8, slope 0, draw 12, fill 5 at 2 &2e1c 5f e7 13 e7 ; quad at &6f5f, direction 3, lengths 3 14, slope 3, draw 123, no fill &2e20 74 c7 12 f7 ; quad at &6f74, direction 3, lengths 2 12, slope 2, draw 123, no fill &2e24 57 48 12 e3 ; quad at &7057, direction 1, lengths 2 4, slope 2, draw 12, no fill &2e28 02 2a 18 21 ; quad at &7202, direction 1, lengths 8 2, slope 1, draw 1, fill 1 at 1 &2e2c 03 ; 3 filled areas &2e2d 5c 20 ; fill area at &685c, fill 1 &2e2f 7d 27 ; fill area at &6f7d, fill 1 &2e31 75 2a ; fill area at &7275, fill 1 &2e33 01 ; 1 copied area &2e34 01 b0 80 f0 ; mirror area from &7800 to &7880, 8 x 15 &2e38 00 ; no text &2e39 3b 2e ; continue at &2e3b (graphics_continuation_2e3b) ; graphics_continuation_2e3b # Used by graphics_3c, graphics_56, graphics_continuation_2fab &2e3b 01 ; 1 line &2e3c 7d 43 28 ; line at &6b7d, direction 2, colour 2, length 8, slope 0 &2e3f 03 ; 3 quads &2e40 62 c3 42 ed ; quad at &6b62, direction 2, lengths 2 12, slope 2, draw 134, no fill &2e44 7b c2 22 ed ; quad at &6a7b, direction 2, lengths 2 12, slope 2, draw 134, no fill &2e48 95 c1 42 ed ; quad at &6995, direction 2, lengths 2 12, slope 2, draw 134, no fill &2e4c 00 ; 0 filled areas &2e4d 00 ; 0 copied areas &2e4e 00 ; no text &2e4f ff ; end ; graphics_38 ; graphics_39 &2e50 52 ; colour 1 is magenta, colour 2 is green &2e51 06 ; 6 lines &2e52 64 40 19 ; line at &6864, direction 2, colour 2, length 4, slope 1 &2e55 43 25 38 ; line at &6d43, direction 1, colour 2, length 12, slope 0 &2e58 2f 06 39 ; line at &6e2f, direction 0, colour 2, length 12, slope 1 &2e5b 64 05 19 ; line at &6d64, direction 0, colour 2, length 4, slope 1 &2e5e 24 c8 59 ; line at &7024, direction 6, colour 2, length 20, slope 1 &2e61 70 09 19 ; line at &7170, direction 0, colour 2, length 4, slope 1 &2e64 08 ; 8 quads &2e65 68 81 86 ff ; quad at &6968, direction 2, lengths 6 8, slope 0, draw 1234, no fill &2e69 64 80 a8 3f ; quad at &6864, direction 2, lengths 8 8, slope 0, draw 1234, fill 1 at 2 &2e6d 2f 86 33 1f ; quad at &6e2f, direction 3, lengths 3 8, slope 0, draw 1234, fill 0 at 2 &2e71 46 26 33 07 ; quad at &6e46, direction 1, lengths 3 2, slope 1, draw 123, fill 0 at 1 &2e75 00 80 b8 b2 ; quad at &6800, direction 3, lengths 8 8, slope 0, draw 2, fill 5 at 2 &2e79 58 80 e7 b6 ; quad at &6858, direction 2, lengths 7 8, slope 0, draw 23, fill 5 at 2 &2e7d 71 c9 12 bd ; quad at &7171, direction 3, lengths 2 12, slope 2, draw 134, fill 5 at 2 &2e81 7c c8 11 e5 ; quad at &707c, direction 3, lengths 1 12, slope 2, draw 13, no fill &2e85 02 ; 2 filled areas &2e86 7e a8 ; fill area at &707e, fill 5 &2e88 7f a9 ; fill area at &717f, fill 5 &2e8a 01 ; 1 copied area &2e8b 01 b0 80 f0 ; mirror area from &7800 to &7880, 8 x 15 &2e8f 00 ; no text &2e90 ff ; end ; graphics_continuation_2e91 # Used by graphics_25 &2e91 00 ; 0 lines &2e92 00 ; 0 quads &2e93 00 ; 0 filled areas &2e94 00 ; 0 copied areas &2e95 48 72 07 ; text at &7248, length &07 &2e98 02 0e 0d 13 11 0e 0b ; "CONTROL" &2e9f ff ; end ; graphics_25 &2ea0 46 ; colour 1 is blue, colour 2 is cyan &2ea1 04 ; 4 lines &2ea2 3c 89 08 ; line at &713c, direction 4, colour 2, length 0, slope 0 &2ea5 6f 01 2a ; line at &696f, direction 0, colour 2, length 8, slope 2 &2ea8 70 01 19 ; line at &6970, direction 0, colour 2, length 4, slope 1 &2eab 79 08 19 ; line at &7079, direction 0, colour 2, length 4, slope 1 &2eae 07 ; 7 quads &2eaf 7e 82 42 df ; quad at &6a7e, direction 2, lengths 2 8, slope 0, draw 1234, fill 6 at 2 &2eb3 68 82 b4 7e ; quad at &6a68, direction 3, lengths 4 8, slope 0, draw 234, fill 3 at 2 &2eb7 05 87 48 b4 ; quad at &6f05, direction 2, lengths 8 8, slope 0, draw 3, fill 5 at 2 &2ebb 60 80 f8 be ; quad at &6860, direction 3, lengths 8 8, slope 0, draw 234, fill 5 at 2 &2ebf 43 27 44 04 ; quad at &6f43, direction 0, lengths 4 2, slope 1, draw 3, fill 0 at 1 &2ec3 7a 88 11 f3 ; quad at &707a, direction 3, lengths 1 8, slope 0, draw 12, no fill &2ec7 7c c0 11 61 ; quad at &687c, direction 3, lengths 1 12, slope 2, draw 1, fill 3 at 1 &2ecb 00 ; 0 filled areas &2ecc 01 ; 1 copied area &2ecd 01 b0 80 f0 ; mirror area from &7800 to &7880, 8 x 15 &2ed1 58 71 05 ; text at &7158, length &05 &2ed4 01 04 11 13 07 ; "BERTH" &2ed9 91 2e ; continue at &2e91 (graphics_continuation_2e91) ; graphics_26 &2edb 14 ; colour 1 is red, colour 2 is blue &2edc 07 ; 7 lines &2edd 73 c3 58 ; line at &6b73, direction 6, colour 2, length 20, slope 0 &2ee0 71 03 19 ; line at &6b71, direction 0, colour 2, length 4, slope 1 &2ee3 7e 22 18 ; line at &6a7e, direction 1, colour 2, length 4, slope 0 &2ee6 71 07 2a ; line at &6f71, direction 0, colour 2, length 8, slope 2 &2ee9 5a 09 29 ; line at &715a, direction 0, colour 2, length 8, slope 1 &2eec 47 05 19 ; line at &6d47, direction 0, colour 2, length 4, slope 1 &2eef 70 21 28 ; line at &6970, direction 1, colour 2, length 8, slope 0 &2ef2 11 ; 17 quads &2ef3 07 22 f7 a6 ; quad at &6a07, direction 1, lengths 7 2, slope 1, draw 23, fill 5 at 1 &2ef7 62 26 12 ff ; quad at &6e62, direction 1, lengths 2 2, slope 1, draw 1234, no fill &2efb 72 87 14 f5 ; quad at &6f72, direction 3, lengths 4 8, slope 0, draw 13, no fill &2eff 7b 83 52 f7 ; quad at &6b7b, direction 3, lengths 2 8, slope 0, draw 123, no fill &2f03 71 83 64 3f ; quad at &6b71, direction 2, lengths 4 8, slope 0, draw 1234, fill 1 at 2 &2f07 48 81 75 9d ; quad at &6948, direction 3, lengths 5 8, slope 0, draw 134, fill 4 at 2 &2f0b 7e 87 42 3e ; quad at &6f7e, direction 2, lengths 2 8, slope 0, draw 234, fill 1 at 2 &2f0f 76 47 22 fc ; quad at &6f76, direction 0, lengths 2 4, slope 2, draw 34, no fill &2f13 65 85 12 b9 ; quad at &6d65, direction 3, lengths 2 8, slope 0, draw 14, fill 5 at 2 &2f17 56 26 61 eb ; quad at &6e56, direction 0, lengths 1 2, slope 1, draw 124, no fill &2f1b 56 29 13 ee ; quad at &7156, direction 1, lengths 3 2, slope 1, draw 234, no fill &2f1f 47 25 72 dd ; quad at &6d47, direction 1, lengths 2 2, slope 1, draw 134, fill 6 at 2 &2f23 5c 27 12 d1 ; quad at &6f5c, direction 1, lengths 2 2, slope 1, draw 1, fill 6 at 2 &2f27 4d 25 12 11 ; quad at &6d4d, direction 1, lengths 2 2, slope 1, draw 1, fill 0 at 2 &2f2b 5a 85 42 74 ; quad at &6d5a, direction 2, lengths 2 8, slope 0, draw 3, fill 3 at 2 &2f2f 39 80 e1 74 ; quad at &6839, direction 2, lengths 1 8, slope 0, draw 3, fill 3 at 2 &2f33 7c 86 12 ff ; quad at &6e7c, direction 3, lengths 2 8, slope 0, draw 1234, no fill &2f37 03 ; 3 filled areas &2f38 5b 09 ; fill area at &715b, fill 0 &2f3a 67 08 ; fill area at &7067, fill 0 &2f3c 6d a6 ; fill area at &6e6d, fill 5 &2f3e 01 ; 1 copied area &2f3f 01 b0 80 f0 ; mirror area from &7800 to &7880, 8 x 15 &2f43 00 ; no text &2f44 ff ; end ; graphics_20 &2f45 21 ; colour 1 is green, colour 2 is red &2f46 0b ; 11 lines &2f47 5f 45 29 ; line at &6d5f, direction 2, colour 2, length 8, slope 1 &2f4a 5e 45 29 ; line at &6d5e, direction 2, colour 2, length 8, slope 1 &2f4d 5f 05 2a ; line at &6d5f, direction 0, colour 2, length 8, slope 2 &2f50 60 45 29 ; line at &6d60, direction 2, colour 2, length 8, slope 1 &2f53 6e 06 2a ; line at &6e6e, direction 0, colour 2, length 8, slope 2 &2f56 63 a0 5b ; line at &6863, direction 5, colour 2, length 20, slope 3 &2f59 20 66 2b ; line at &6e20, direction 3, colour 2, length 8, slope 3 &2f5c 20 06 29 ; line at &6e20, direction 0, colour 2, length 8, slope 1 &2f5f 17 02 29 ; line at &6a17, direction 0, colour 2, length 8, slope 1 &2f62 62 46 18 ; line at &6e62, direction 2, colour 2, length 4, slope 0 &2f65 58 46 28 ; line at &6e58, direction 2, colour 2, length 8, slope 0 &2f68 0b ; 11 quads &2f69 7c 81 51 7f ; quad at &697c, direction 3, lengths 1 8, slope 0, draw 1234, fill 3 at 2 &2f6d 6c 80 76 bf ; quad at &686c, direction 3, lengths 6 8, slope 0, draw 1234, fill 5 at 2 &2f71 37 22 22 2f ; quad at &6a37, direction 0, lengths 2 2, slope 1, draw 1234, fill 1 at 1 &2f75 32 26 62 2f ; quad at &6e32, direction 0, lengths 2 2, slope 1, draw 1234, fill 1 at 1 &2f79 27 83 42 f9 ; quad at &6b27, direction 2, lengths 2 8, slope 0, draw 14, no fill &2f7d 17 82 d4 dd ; quad at &6a17, direction 3, lengths 4 8, slope 0, draw 134, fill 6 at 2 &2f81 30 e4 22 fc ; quad at &6c30, direction 2, lengths 2 14, slope 3, draw 34, no fill &2f85 20 82 14 31 ; quad at &6a20, direction 3, lengths 4 8, slope 0, draw 1, fill 1 at 2 &2f89 42 24 45 a4 ; quad at &6c42, direction 0, lengths 5 2, slope 1, draw 3, fill 5 at 1 &2f8d 02 28 42 a4 ; quad at &7002, direction 0, lengths 2 2, slope 1, draw 3, fill 5 at 1 &2f91 af 20 8b bc ; quad at &68af, direction 0, lengths 11 2, slope 1, draw 34, fill 5 at 2 &2f95 03 ; 3 filled areas &2f96 3f 25 ; fill area at &6d3f, fill 1 &2f98 3c 22 ; fill area at &6a3c, fill 1 &2f9a 67 05 ; fill area at &6d67, fill 0 &2f9c 03 ; 3 copied areas &2f9d 01 92 98 a1 ; mirror area from &7a00 to &6998, 9 x 10 &2fa1 51 40 80 50 ; mirror area from &6850 to &7880, 8 x 5 &2fa5 59 35 70 25 ; mirror area from &7d58 to &6d70, 7 x 2 &2fa9 00 ; no text &2faa ff ; end ; graphics_continuation_2fab # Used by graphics_21 &2fab 00 ; 0 lines &2fac 03 ; 3 quads &2fad b2 83 24 1f ; quad at &6bb2, direction 2, lengths 4 8, slope 0, draw 1234, fill 0 at 2 &2fb1 30 83 93 7b ; quad at &6b30, direction 3, lengths 3 8, slope 0, draw 124, fill 3 at 2 &2fb5 aa 83 36 bf ; quad at &6baa, direction 3, lengths 6 8, slope 0, draw 1234, fill 5 at 2 &2fb9 00 ; 0 filled areas &2fba 00 ; 0 copied areas &2fbb 00 ; no text &2fbc 3b 2e ; continue at &2e3b (graphics_continuation_2e3b) ; graphics_21 &2fbe 23 ; colour 1 is green, colour 2 is yellow &2fbf 02 ; 2 lines &2fc0 25 c7 59 ; line at &6f25, direction 6, colour 2, length 20, slope 1 &2fc3 07 29 08 ; line at &7107, direction 1, colour 2, length 0, slope 0 &2fc6 06 ; 6 quads &2fc7 3c 80 19 fd ; quad at &683c, direction 3, lengths 9 8, slope 0, draw 134, no fill &2fcb 40 80 11 5a ; quad at &6840, direction 3, lengths 1 8, slope 0, draw 24, fill 2 at 2 &2fcf 28 80 fb fc ; quad at &6828, direction 3, lengths 11 8, slope 0, draw 34, no fill &2fd3 01 c3 15 e5 ; quad at &6b01, direction 3, lengths 5 12, slope 2, draw 13, no fill &2fd7 28 82 1b f5 ; quad at &6a28, direction 3, lengths 11 8, slope 0, draw 13, no fill &2fdb 11 89 1e 11 ; quad at &7111, direction 3, lengths 14 8, slope 0, draw 1, fill 0 at 2 &2fdf 04 ; 4 filled areas &2fe0 24 02 ; fill area at &6a24, fill 0 &2fe2 17 02 ; fill area at &6a17, fill 0 &2fe4 02 03 ; fill area at &6b02, fill 0 &2fe6 3a 02 ; fill area at &6a3a, fill 0 &2fe8 01 ; 1 copied area &2fe9 01 b0 80 f0 ; mirror area from &7800 to &7880, 8 x 15 &2fed 00 ; no text &2fee ab 2f ; continue at &2fab (graphics_continuation_2fab) ; graphics_31 &2ff0 51 ; colour 1 is magenta, colour 2 is red &2ff1 08 ; 8 lines &2ff2 73 41 4a ; line at &6973, direction 2, colour 2, length 16, slope 2 &2ff5 6c 07 2a ; line at &6f6c, direction 0, colour 2, length 8, slope 2 &2ff8 7c 07 2a ; line at &6f7c, direction 0, colour 2, length 8, slope 2 &2ffb 74 06 29 ; line at &6e74, direction 0, colour 2, length 8, slope 1 &2ffe 7c 06 2a ; line at &6e7c, direction 0, colour 2, length 8, slope 2 &3001 7b 46 19 ; line at &6e7b, direction 2, colour 2, length 4, slope 1 &3004 7a c4 38 ; line at &6c7a, direction 6, colour 2, length 12, slope 0 &3007 6b 07 29 ; line at &6f6b, direction 0, colour 2, length 8, slope 1 &300a 07 ; 7 quads &300b 0c 22 65 cf ; quad at &6a0c, direction 0, lengths 5 2, slope 1, draw 1234, fill 6 at 1 &300f 73 21 52 e3 ; quad at &6973, direction 1, lengths 2 2, slope 1, draw 12, no fill &3013 49 82 24 7f ; quad at &6a49, direction 2, lengths 4 8, slope 0, draw 1234, fill 3 at 2 &3017 6b 87 26 3e ; quad at &6f6b, direction 2, lengths 6 8, slope 0, draw 234, fill 1 at 2 &301b 7c 86 22 fe ; quad at &6e7c, direction 2, lengths 2 8, slope 0, draw 234, no fill &301f 41 80 98 bc ; quad at &6841, direction 3, lengths 8 8, slope 0, draw 34, fill 5 at 2 &3023 04 25 68 a4 ; quad at &6d04, direction 0, lengths 8 2, slope 1, draw 3, fill 5 at 1 &3027 04 ; 4 filled areas &3028 7b 06 ; fill area at &6e7b, fill 0 &302a 70 27 ; fill area at &6f70, fill 1 &302c 75 a2 ; fill area at &6a75, fill 5 &302e 23 a5 ; fill area at &6d23, fill 5 &3030 01 ; 1 copied area &3031 01 b0 80 f0 ; mirror area from &7800 to &7880, 8 x 15 &3035 00 ; no text &3036 ff ; end ; graphics_56 &3037 32 ; colour 1 is yellow, colour 2 is green &3038 05 ; 5 lines &3039 47 87 08 ; line at &6f47, direction 4, colour 2, length 0, slope 0 &303c 4f 20 38 ; line at &684f, direction 1, colour 2, length 12, slope 0 &303f a7 20 38 ; line at &68a7, direction 1, colour 2, length 12, slope 0 &3042 22 03 29 ; line at &6b22, direction 0, colour 2, length 8, slope 1 &3045 33 22 28 ; line at &6a33, direction 1, colour 2, length 8, slope 0 &3048 06 ; 6 quads &3049 23 83 42 ff ; quad at &6b23, direction 2, lengths 2 8, slope 0, draw 1234, no fill &304d 32 23 42 e7 ; quad at &6b32, direction 0, lengths 2 2, slope 1, draw 123, no fill &3051 2e 45 c8 a6 ; quad at &6d2e, direction 0, lengths 8 4, slope 2, draw 23, fill 5 at 1 &3055 4b 81 12 f7 ; quad at &694b, direction 3, lengths 2 8, slope 0, draw 123, no fill &3059 5a 21 11 e7 ; quad at &695a, direction 1, lengths 1 2, slope 1, draw 123, no fill &305d 48 80 be 34 ; quad at &6848, direction 3, lengths 14 8, slope 0, draw 3, fill 1 at 2 &3061 03 ; 3 filled areas &3062 67 20 ; fill area at &6867, fill 1 &3064 06 a2 ; fill area at &6a06, fill 5 &3066 4d 41 ; fill area at &694d, fill 2 &3068 02 ; 2 copied areas &3069 01 b0 b8 80 ; mirror area from &7800 to &68b8, 11 x 8 &306d 49 11 a0 21 ; mirror area from &7948 to &69a0, 10 x 2 &3071 00 ; no text &3072 3b 2e ; continue at &2e3b (graphics_continuation_2e3b) ; graphics_5b &3074 32 ; colour 1 is yellow, colour 2 is green &3075 0c ; 12 lines &3076 59 05 3a ; line at &6d59, direction 0, colour 2, length 12, slope 2 &3079 67 63 3a ; line at &6b67, direction 3, colour 2, length 12, slope 2 &307c 76 c3 a9 ; line at &6b76, direction 6, colour 2, length 40, slope 1 &307f 05 28 58 ; line at &7005, direction 1, colour 2, length 20, slope 0 &3082 72 e2 ab ; line at &6a72, direction 7, colour 2, length 40, slope 3 &3085 40 24 7a ; line at &6c40, direction 1, colour 2, length 28, slope 2 &3088 43 24 1a ; line at &6c43, direction 1, colour 2, length 4, slope 2 &308b 42 24 3a ; line at &6c42, direction 1, colour 2, length 12, slope 2 &308e 41 24 6a ; line at &6c41, direction 1, colour 2, length 24, slope 2 &3091 70 a1 6b ; line at &6970, direction 5, colour 2, length 24, slope 3 &3094 6c 26 38 ; line at &6e6c, direction 1, colour 2, length 12, slope 0 &3097 6c 06 3b ; line at &6e6c, direction 0, colour 2, length 12, slope 3 &309a 06 ; 6 quads &309b b1 20 ca 3c ; quad at &68b1, direction 0, lengths 10 2, slope 1, draw 34, fill 1 at 2 &309f 79 81 52 ff ; quad at &6979, direction 3, lengths 2 8, slope 0, draw 1234, no fill &30a3 05 e2 d5 a3 ; quad at &6a05, direction 3, lengths 5 14, slope 3, draw 12, fill 5 at 1 &30a7 28 84 13 ff ; quad at &6c28, direction 3, lengths 3 8, slope 0, draw 1234, no fill &30ab 20 c2 11 a2 ; quad at &6a20, direction 3, lengths 1 12, slope 2, draw 2, fill 5 at 1 &30af 70 85 34 9b ; quad at &6d70, direction 3, lengths 4 8, slope 0, draw 124, fill 4 at 2 &30b3 0a ; 10 filled areas &30b4 2e 20 ; fill area at &682e, fill 1 &30b6 00 22 ; fill area at &6a00, fill 1 &30b8 29 25 ; fill area at &6d29, fill 1 &30ba 4c 24 ; fill area at &6c4c, fill 1 &30bc 72 23 ; fill area at &6b72, fill 1 &30be 7b a0 ; fill area at &687b, fill 5 &30c0 6a a6 ; fill area at &6e6a, fill 5 &30c2 5f 23 ; fill area at &6b5f, fill 1 &30c4 64 24 ; fill area at &6c64, fill 1 &30c6 59 25 ; fill area at &6d59, fill 1 &30c8 01 ; 1 copied area &30c9 29 90 80 a0 ; mirror area from &7828 to &6880, 8 x 10 &30cd 00 ; no text &30ce ff ; end ; graphics_5c &30cf 23 ; colour 1 is green, colour 2 is yellow &30d0 06 ; 6 lines &30d1 6c e2 ea ; line at &6a6c, direction 7, colour 2, length 56, slope 2 &30d4 6d a0 5b ; line at &686d, direction 5, colour 2, length 20, slope 3 &30d7 5f c8 4a ; line at &705f, direction 6, colour 2, length 16, slope 2 &30da 00 26 ca ; line at &6e00, direction 1, colour 2, length 48, slope 2 &30dd 01 26 8a ; line at &6e01, direction 1, colour 2, length 32, slope 2 &30e0 02 26 4a ; line at &6e02, direction 1, colour 2, length 16, slope 2 &30e3 07 ; 7 quads &30e4 17 48 18 ed ; quad at &7017, direction 1, lengths 8 4, slope 2, draw 134, no fill &30e8 37 c4 17 57 ; quad at &6c37, direction 3, lengths 7 12, slope 2, draw 123, fill 2 at 2 &30ec 76 80 84 ff ; quad at &6876, direction 2, lengths 4 8, slope 0, draw 1234, no fill &30f0 66 88 48 9b ; quad at &7066, direction 2, lengths 8 8, slope 0, draw 124, fill 4 at 2 &30f4 09 29 4d 04 ; quad at &7109, direction 0, lengths 13 2, slope 1, draw 3, fill 0 at 1 &30f8 03 e3 2e 04 ; quad at &6b03, direction 2, lengths 14 14, slope 3, draw 3, fill 0 at 1 &30fc 76 80 34 74 ; quad at &6876, direction 3, lengths 4 8, slope 0, draw 3, fill 3 at 2 &3100 0b ; 11 filled areas &3101 3c 05 ; fill area at &6d3c, fill 0 &3103 5a aa ; fill area at &725a, fill 5 &3105 71 a0 ; fill area at &6871, fill 5 &3107 47 45 ; fill area at &6d47, fill 2 &3109 52 46 ; fill area at &6e52, fill 2 &310b 5a 46 ; fill area at &6e5a, fill 2 &310d 1b 09 ; fill area at &711b, fill 0 &310f 25 05 ; fill area at &6d25, fill 0 &3111 36 06 ; fill area at &6e36, fill 0 &3113 28 05 ; fill area at &6d28, fill 0 &3115 5c 05 ; fill area at &6d5c, fill 0 &3117 01 ; 1 copied area &3118 01 b0 80 f0 ; mirror area from &7800 to &7880, 8 x 15 &311c 00 ; no text &311d ff ; end ; graphics_5d &311e 23 ; colour 1 is green, colour 2 is yellow &311f 06 ; 6 lines &3120 51 e3 ba ; line at &6b51, direction 7, colour 2, length 44, slope 2 &3123 07 25 aa ; line at &6d07, direction 1, colour 2, length 40, slope 2 &3126 00 26 8a ; line at &6e00, direction 1, colour 2, length 32, slope 2 &3129 52 a0 2b ; line at &6852, direction 5, colour 2, length 8, slope 3 &312c 6b 23 2a ; line at &6b6b, direction 1, colour 2, length 8, slope 2 &312f 7f 22 28 ; line at &6a7f, direction 1, colour 2, length 8, slope 0 &3132 04 ; 4 quads &3133 5a 80 ec ff ; quad at &685a, direction 2, lengths 12 8, slope 0, draw 1234, no fill &3137 03 e3 2b 04 ; quad at &6b03, direction 2, lengths 11 14, slope 3, draw 3, fill 0 at 1 &313b 1d 26 98 04 ; quad at &6e1d, direction 1, lengths 8 2, slope 1, draw 3, fill 0 at 1 &313f 5a 23 22 64 ; quad at &6b5a, direction 0, lengths 2 2, slope 1, draw 3, fill 3 at 1 &3143 00 ; 0 filled areas &3144 01 ; 1 copied area &3145 01 b0 80 f0 ; mirror area from &7800 to &7880, 8 x 15 &3149 00 ; no text &314a ff ; end ; graphics_58 &314b 23 ; colour 1 is green, colour 2 is yellow &314c 02 ; 2 lines &314d 66 c3 38 ; line at &6b66, direction 6, colour 2, length 12, slope 0 &3150 be 43 38 ; line at &6bbe, direction 2, colour 2, length 12, slope 0 &3153 07 ; 7 quads &3154 6d 83 3a f5 ; quad at &6b6d, direction 3, lengths 10 8, slope 0, draw 13, no fill &3158 79 81 34 fd ; quad at &6979, direction 3, lengths 4 8, slope 0, draw 134, no fill &315c 9c 20 13 f9 ; quad at &689c, direction 1, lengths 3 2, slope 1, draw 14, no fill &3160 9d 22 13 ec ; quad at &6a9d, direction 1, lengths 3 2, slope 1, draw 34, no fill &3164 c0 20 f7 bc ; quad at &68c0, direction 1, lengths 7 2, slope 1, draw 34, fill 5 at 2 &3168 58 80 bd 0c ; quad at &6858, direction 3, lengths 13 8, slope 0, draw 34, fill 0 at 1 &316c 07 28 4b a4 ; quad at &7007, direction 0, lengths 11 2, slope 1, draw 3, fill 5 at 1 &3170 03 ; 3 filled areas &3171 9d 42 ; fill area at &6a9d, fill 2 &3173 bd 02 ; fill area at &6abd, fill 0 &3175 bd 03 ; fill area at &6bbd, fill 0 &3177 00 ; 0 copied areas &3178 68 6c 05 ; text at &6c68, length &05 &317b 12 02 11 00 0f ; "SCRAP" &3180 ff ; end ; graphics_59 &3181 23 ; colour 1 is green, colour 2 is yellow &3182 0d ; 13 lines &3183 64 a0 4b ; line at &6864, direction 5, colour 2, length 16, slope 3 &3186 a2 c0 b8 ; line at &68a2, direction 6, colour 2, length 44, slope 0 &3189 18 25 2a ; line at &6d18, direction 1, colour 2, length 8, slope 2 &318c 17 24 6a ; line at &6c17, direction 1, colour 2, length 24, slope 2 &318f 3d 23 28 ; line at &6b3d, direction 1, colour 2, length 8, slope 0 &3192 37 23 28 ; line at &6b37, direction 1, colour 2, length 8, slope 0 &3195 31 a4 28 ; line at &6c31, direction 5, colour 2, length 8, slope 0 &3198 25 a4 28 ; line at &6c25, direction 5, colour 2, length 8, slope 0 &319b 2b a4 28 ; line at &6c2b, direction 5, colour 2, length 8, slope 0 &319e 3c 27 18 ; line at &6f3c, direction 1, colour 2, length 4, slope 0 &31a1 2c 28 18 ; line at &702c, direction 1, colour 2, length 4, slope 0 &31a4 33 24 1a ; line at &6c33, direction 1, colour 2, length 4, slope 2 &31a7 47 23 1a ; line at &6b47, direction 1, colour 2, length 4, slope 2 &31aa 0b ; 11 quads &31ab 10 85 a1 1f ; quad at &6d10, direction 2, lengths 1 8, slope 0, draw 1234, fill 0 at 2 &31af 1b 25 92 06 ; quad at &6d1b, direction 1, lengths 2 2, slope 1, draw 23, fill 0 at 1 &31b3 33 24 81 0e ; quad at &6c33, direction 0, lengths 1 2, slope 1, draw 234, fill 0 at 1 &31b7 47 23 71 0e ; quad at &6b47, direction 1, lengths 1 2, slope 1, draw 234, fill 0 at 1 &31bb 73 83 26 9f ; quad at &6b73, direction 2, lengths 6 8, slope 0, draw 1234, fill 4 at 2 &31bf 8a 21 12 f9 ; quad at &698a, direction 1, lengths 2 2, slope 1, draw 14, no fill &31c3 8b 22 12 ec ; quad at &6a8b, direction 1, lengths 2 2, slope 1, draw 34, no fill &31c7 7d 81 22 5f ; quad at &697d, direction 2, lengths 2 8, slope 0, draw 1234, fill 2 at 2 &31cb 4b 22 84 a6 ; quad at &6a4b, direction 0, lengths 4 2, slope 1, draw 23, fill 5 at 1 &31cf 07 28 42 a4 ; quad at &7007, direction 0, lengths 2 2, slope 1, draw 3, fill 5 at 1 &31d3 6d 80 88 15 ; quad at &686d, direction 2, lengths 8 8, slope 0, draw 13, fill 0 at 2 &31d7 02 ; 2 filled areas &31d8 89 42 ; fill area at &6a89, fill 2 &31da a1 02 ; fill area at &6aa1, fill 0 &31dc 01 ; 1 copied area &31dd 01 b0 a8 a0 ; mirror area from &7800 to &68a8, 10 x 10 &31e1 00 ; no text &31e2 ff ; end ; graphics_5a &31e3 23 ; colour 1 is green, colour 2 is yellow &31e4 0a ; 10 lines &31e5 77 a0 5b ; line at &6877, direction 5, colour 2, length 20, slope 3 &31e8 33 e3 7b ; line at &6b33, direction 7, colour 2, length 28, slope 3 &31eb 3b e3 8a ; line at &6b3b, direction 7, colour 2, length 32, slope 2 &31ee 3c e3 8a ; line at &6b3c, direction 7, colour 2, length 32, slope 2 &31f1 3d e3 8a ; line at &6b3d, direction 7, colour 2, length 32, slope 2 &31f4 33 23 28 ; line at &6b33, direction 1, colour 2, length 8, slope 0 &31f7 58 06 39 ; line at &6e58, direction 0, colour 2, length 12, slope 1 &31fa 53 23 3a ; line at &6b53, direction 1, colour 2, length 12, slope 2 &31fd 6d 22 18 ; line at &6a6d, direction 1, colour 2, length 4, slope 0 &3200 8e c0 58 ; line at &688e, direction 6, colour 2, length 20, slope 0 &3203 09 ; 9 quads &3204 86 81 11 ff ; quad at &6986, direction 3, lengths 1 8, slope 0, draw 1234, no fill &3208 62 c3 41 0b ; quad at &6b62, direction 2, lengths 1 12, slope 2, draw 124, fill 0 at 1 &320c 54 83 51 1f ; quad at &6b54, direction 3, lengths 1 8, slope 0, draw 1234, fill 0 at 2 &3210 5b c3 43 03 ; quad at &6b5b, direction 2, lengths 3 12, slope 2, draw 12, fill 0 at 1 &3214 78 81 53 1f ; quad at &6978, direction 3, lengths 3 8, slope 0, draw 1234, fill 0 at 2 &3218 07 26 86 06 ; quad at &6e07, direction 0, lengths 6 2, slope 1, draw 23, fill 0 at 1 &321c 00 80 76 12 ; quad at &6800, direction 3, lengths 6 8, slope 0, draw 2, fill 0 at 2 &3220 37 24 64 a4 ; quad at &6c37, direction 0, lengths 4 2, slope 1, draw 3, fill 5 at 1 &3224 77 22 21 a4 ; quad at &6a77, direction 0, lengths 1 2, slope 1, draw 3, fill 5 at 1 &3228 02 ; 2 filled areas &3229 80 42 ; fill area at &6a80, fill 2 &322b 88 02 ; fill area at &6a88, fill 0 &322d 01 ; 1 copied area &322e 01 b0 90 d0 ; mirror area from &7800 to &7890, 9 x 13 &3232 00 ; no text &3233 ff ; end ; graphics_4a &3234 14 ; colour 1 is red, colour 2 is blue &3235 06 ; 6 lines &3236 81 09 8a ; line at &7181, direction 0, colour 2, length 32, slope 2 &3239 44 84 99 ; line at &6c44, direction 4, colour 2, length 36, slope 1 &323c 75 41 59 ; line at &6975, direction 2, colour 2, length 20, slope 1 &323f 4f 24 5b ; line at &6c4f, direction 1, colour 2, length 20, slope 3 &3242 be 64 6a ; line at &6cbe, direction 3, colour 2, length 24, slope 2 &3245 40 c7 39 ; line at &6f40, direction 6, colour 2, length 12, slope 1 &3248 0a ; 10 quads &3249 1c 21 53 9f ; quad at &691c, direction 1, lengths 3 2, slope 1, draw 1234, fill 4 at 2 &324d 00 20 59 9f ; quad at &6800, direction 1, lengths 9 2, slope 1, draw 1234, fill 4 at 2 &3251 03 23 46 34 ; quad at &6b03, direction 0, lengths 6 2, slope 1, draw 3, fill 1 at 2 &3255 04 e6 26 14 ; quad at &6e04, direction 2, lengths 6 14, slope 3, draw 3, fill 0 at 2 &3259 49 80 85 b2 ; quad at &6849, direction 2, lengths 5 8, slope 0, draw 2, fill 5 at 2 &325d 98 e0 84 bc ; quad at &6898, direction 2, lengths 4 14, slope 3, draw 34, fill 5 at 2 &3261 e9 25 23 b4 ; quad at &6de9, direction 0, lengths 3 2, slope 1, draw 3, fill 5 at 2 &3265 81 89 44 db ; quad at &7181, direction 2, lengths 4 8, slope 0, draw 124, fill 6 at 2 &3269 a0 49 48 e7 ; quad at &71a0, direction 0, lengths 8 4, slope 2, draw 123, no fill &326d a1 85 24 31 ; quad at &6da1, direction 2, lengths 4 8, slope 0, draw 1, fill 1 at 2 &3271 04 ; 4 filled areas &3272 1f 07 ; fill area at &6f1f, fill 0 &3274 13 83 ; fill area at &6b13, fill 4 &3276 36 83 ; fill area at &6b36, fill 4 &3278 90 69 ; fill area at &7190, fill 3 &327a 00 ; 0 copied areas &327b 00 ; no text &327c ff ; end ; graphics_22 &327d 41 ; colour 1 is blue, colour 2 is red &327e 04 ; 4 lines &327f 26 e5 5a ; line at &6d26, direction 7, colour 2, length 20, slope 2 &3282 07 26 5a ; line at &6e07, direction 1, colour 2, length 20, slope 2 &3285 3c 25 a8 ; line at &6d3c, direction 1, colour 2, length 40, slope 0 &3288 05 26 5a ; line at &6e05, direction 1, colour 2, length 20, slope 2 &328b 06 ; 6 quads &328c 32 22 e1 2e ; quad at &6a32, direction 0, lengths 1 2, slope 1, draw 234, fill 1 at 1 &3290 2b 82 e1 3c ; quad at &6a2b, direction 2, lengths 1 8, slope 0, draw 34, fill 1 at 2 &3294 02 2a 15 a1 ; quad at &7202, direction 1, lengths 5 2, slope 1, draw 1, fill 5 at 1 &3298 3e 87 2a b1 ; quad at &6f3e, direction 2, lengths 10 8, slope 0, draw 1, fill 5 at 2 &329c 3a 84 2a 15 ; quad at &6c3a, direction 2, lengths 10 8, slope 0, draw 13, fill 0 at 2 &32a0 01 e5 25 01 ; quad at &6d01, direction 2, lengths 5 14, slope 3, draw 1, fill 0 at 1 &32a4 01 ; 1 filled area &32a5 20 05 ; fill area at &6d20, fill 0 &32a7 02 ; 2 copied areas &32a8 00 43 00 f0 ; copy area from &6b00 to &7800, 0 x 15 &32ac 01 b0 80 f0 ; mirror area from &7800 to &7880, 8 x 15 &32b0 00 ; no text &32b1 ff ; end ; graphics_13 &32b2 14 ; colour 1 is red, colour 2 is blue &32b3 02 ; 2 lines &32b4 6b c4 3b ; line at &6c6b, direction 6, colour 2, length 12, slope 3 &32b7 78 45 19 ; line at &6d78, direction 2, colour 2, length 4, slope 1 &32ba 02 ; 2 quads &32bb 6e 85 56 df ; quad at &6d6e, direction 3, lengths 6 8, slope 0, draw 1234, fill 6 at 2 &32bf 78 43 41 e9 ; quad at &6b78, direction 0, lengths 1 4, slope 2, draw 14, no fill &32c3 00 ; 0 filled areas &32c4 00 ; 0 copied areas &32c5 00 ; no text &32c6 c8 32 ; continue at &32c8 (graphics_continuation_32c8) ; graphics_continuation_32c8 # Used by graphics_11, graphics_13 &32c8 04 ; 4 lines &32c9 61 a1 7b ; line at &6961, direction 5, colour 2, length 28, slope 3 &32cc 1a 06 29 ; line at &6e1a, direction 0, colour 2, length 8, slope 1 &32cf 4a 04 19 ; line at &6c4a, direction 0, colour 2, length 4, slope 1 &32d2 56 23 48 ; line at &6b56, direction 1, colour 2, length 16, slope 0 &32d5 09 ; 9 quads &32d6 1a 86 67 df ; quad at &6e1a, direction 2, lengths 7 8, slope 0, draw 1234, fill 6 at 2 &32da 51 46 62 e7 ; quad at &6e51, direction 0, lengths 2 4, slope 2, draw 123, no fill &32de 2a 85 16 31 ; quad at &6d2a, direction 3, lengths 6 8, slope 0, draw 1, fill 1 at 2 &32e2 4a 84 24 f9 ; quad at &6c4a, direction 2, lengths 4 8, slope 0, draw 14, no fill &32e6 5a 84 42 d6 ; quad at &6c5a, direction 2, lengths 2 8, slope 0, draw 23, fill 6 at 2 &32ea 69 24 21 03 ; quad at &6c69, direction 0, lengths 1 2, slope 1, draw 12, fill 0 at 1 &32ee 73 84 11 31 ; quad at &6c73, direction 3, lengths 1 8, slope 0, draw 1, fill 1 at 2 &32f2 05 29 23 a4 ; quad at &7105, direction 0, lengths 3 2, slope 1, draw 3, fill 5 at 1 &32f6 6a 81 56 fb ; quad at &696a, direction 3, lengths 6 8, slope 0, draw 124, no fill &32fa 04 ; 4 filled areas &32fb 74 20 ; fill area at &6874, fill 1 &32fd 55 07 ; fill area at &6f55, fill 0 &32ff 50 24 ; fill area at &6c50, fill 1 &3301 72 a4 ; fill area at &6c72, fill 5 &3303 01 ; 1 copied area &3304 01 b0 80 f0 ; mirror area from &7800 to &7880, 8 x 15 &3308 00 ; no text &3309 ff ; end ; graphics_11 &330a 54 ; colour 1 is magenta, colour 2 is blue &330b 06 ; 6 lines &330c 6b c4 6b ; line at &6c6b, direction 6, colour 2, length 24, slope 3 &330f 7b 24 18 ; line at &6c7b, direction 1, colour 2, length 4, slope 0 &3312 7e 24 1a ; line at &6c7e, direction 1, colour 2, length 4, slope 2 &3315 77 c4 1a ; line at &6c77, direction 6, colour 2, length 4, slope 2 &3318 76 85 1b ; line at &6d76, direction 4, colour 2, length 4, slope 3 &331b 76 c5 19 ; line at &6d76, direction 6, colour 2, length 4, slope 1 &331e 04 ; 4 quads &331f 61 87 78 df ; quad at &6f61, direction 3, lengths 8 8, slope 0, draw 1234, fill 6 at 2 &3323 70 c6 11 fc ; quad at &6e70, direction 3, lengths 1 12, slope 2, draw 34, no fill &3327 7f 84 42 96 ; quad at &6c7f, direction 2, lengths 2 8, slope 0, draw 23, fill 4 at 2 &332b 77 81 32 ff ; quad at &6977, direction 3, lengths 2 8, slope 0, draw 1234, no fill &332f 01 ; 1 filled area &3330 6e 26 ; fill area at &6e6e, fill 1 &3332 00 ; 0 copied areas &3333 00 ; no text &3334 c8 32 ; continue at &32c8 (graphics_continuation_32c8) ; graphics_continuation_3336 # Used by graphics_24, graphics_27, graphics_28 &3336 04 ; 4 lines &3337 47 a5 38 ; line at &6d47, direction 5, colour 2, length 12, slope 0 &333a 17 07 49 ; line at &6f17, direction 0, colour 2, length 16, slope 1 &333d 0e 05 49 ; line at &6d0e, direction 0, colour 2, length 16, slope 1 &3340 0b 2a 18 ; line at &720b, direction 1, colour 2, length 4, slope 0 &3343 09 ; 9 quads &3344 17 87 53 f7 ; quad at &6f17, direction 3, lengths 3 8, slope 0, draw 123, no fill &3348 16 85 13 f3 ; quad at &6d16, direction 3, lengths 3 8, slope 0, draw 12, no fill &334c 17 c6 23 e9 ; quad at &6e17, direction 2, lengths 3 12, slope 2, draw 14, no fill &3350 2d 25 14 e7 ; quad at &6d2d, direction 1, lengths 4 2, slope 1, draw 123, no fill &3354 2e 27 54 27 ; quad at &6f2e, direction 1, lengths 4 2, slope 1, draw 123, fill 1 at 1 &3358 0e 85 91 39 ; quad at &6d0e, direction 3, lengths 1 8, slope 0, draw 14, fill 1 at 2 &335c 2e 83 14 31 ; quad at &6b2e, direction 3, lengths 4 8, slope 0, draw 1, fill 1 at 2 &3360 4b 20 b1 a6 ; quad at &684b, direction 1, lengths 1 2, slope 1, draw 23, fill 5 at 1 &3364 06 29 21 a4 ; quad at &7106, direction 0, lengths 1 2, slope 1, draw 3, fill 5 at 1 &3368 01 ; 1 filled area &3369 1d 25 ; fill area at &6d1d, fill 1 &336b 01 ; 1 copied area &336c 01 b0 b0 90 ; mirror area from &7800 to &78b0, 11 x 9 &3370 00 ; no text &3371 ff ; end ; graphics_24 &3372 36 ; colour 1 is yellow, colour 2 is cyan &3373 00 ; 0 lines &3374 04 ; 4 quads &3375 59 81 53 df ; quad at &6959, direction 3, lengths 3 8, slope 0, draw 1234, fill 6 at 2 &3379 51 81 94 1f ; quad at &6951, direction 3, lengths 4 8, slope 0, draw 1234, fill 0 at 2 &337d 7a 83 12 ff ; quad at &6b7a, direction 3, lengths 2 8, slope 0, draw 1234, no fill &3381 71 81 92 f7 ; quad at &6971, direction 3, lengths 2 8, slope 0, draw 123, no fill &3385 00 ; 0 filled areas &3386 01 ; 1 copied area &3387 01 b0 80 f0 ; mirror area from &7800 to &7880, 8 x 15 &338b 61 68 04 ; text at &6861, length &04 &338e 0c 00 19 04 ; "MAZE" &3392 36 33 ; continue at &3336 (graphics_continuation_3336) ; graphics_28 &3394 65 ; colour 1 is cyan, colour 2 is magenta &3395 03 ; 3 lines &3396 62 04 19 ; line at &6c62, direction 0, colour 2, length 4, slope 1 &3399 65 01 19 ; line at &6965, direction 0, colour 2, length 4, slope 1 &339c 69 21 68 ; line at &6969, direction 1, colour 2, length 24, slope 0 &339f 05 ; 5 quads &33a0 6b 81 16 ff ; quad at &696b, direction 3, lengths 6 8, slope 0, draw 1234, no fill &33a4 66 81 18 ff ; quad at &6966, direction 3, lengths 8 8, slope 0, draw 1234, no fill &33a8 62 84 48 3f ; quad at &6c62, direction 2, lengths 8 8, slope 0, draw 1234, fill 1 at 2 &33ac 6a 82 36 fe ; quad at &6a6a, direction 3, lengths 6 8, slope 0, draw 234, no fill &33b0 50 80 b2 bc ; quad at &6850, direction 3, lengths 2 8, slope 0, draw 34, fill 5 at 2 &33b4 03 ; 3 filled areas &33b5 65 21 ; fill area at &6965, fill 1 &33b7 72 21 ; fill area at &6972, fill 1 &33b9 7c 41 ; fill area at &697c, fill 2 &33bb 01 ; 1 copied area &33bc 01 b0 80 f0 ; mirror area from &7800 to &7880, 8 x 15 &33c0 00 ; no text &33c1 36 33 ; continue at &3336 (graphics_continuation_3336) ; graphics_27 &33c3 65 ; colour 1 is cyan, colour 2 is magenta &33c4 03 ; 3 lines &33c5 5f 00 19 ; line at &685f, direction 0, colour 2, length 4, slope 1 &33c8 5f 20 48 ; line at &685f, direction 1, colour 2, length 16, slope 0 &33cb 5f 40 19 ; line at &685f, direction 2, colour 2, length 4, slope 1 &33ce 04 ; 4 quads &33cf 50 80 86 be ; quad at &6850, direction 2, lengths 6 8, slope 0, draw 234, fill 5 at 2 &33d3 80 c1 66 b4 ; quad at &6980, direction 2, lengths 6 12, slope 2, draw 3, fill 5 at 2 &33d7 7f 88 41 1b ; quad at &707f, direction 2, lengths 1 8, slope 0, draw 124, fill 0 at 2 &33db 7d 85 81 db ; quad at &6d7d, direction 2, lengths 1 8, slope 0, draw 124, fill 6 at 2 &33df 01 ; 1 filled area &33e0 78 a1 ; fill area at &6978, fill 5 &33e2 00 ; 0 copied areas &33e3 58 6a 02 ; text at &6a58, length &02 &33e6 02 04 ; "CE" &33e8 36 33 ; continue at &3336 (graphics_continuation_3336) ; graphics_4b &33ea 62 ; colour 1 is cyan, colour 2 is green &33eb 05 ; 5 lines &33ec d5 e4 fb ; line at &6cd5, direction 7, colour 2, length 60, slope 3 &33ef 59 e7 cb ; line at &6f59, direction 7, colour 2, length 48, slope 3 &33f2 d4 e4 fb ; line at &6cd4, direction 7, colour 2, length 60, slope 3 &33f5 58 e7 cb ; line at &6f58, direction 7, colour 2, length 48, slope 3 &33f8 d0 e6 0a ; line at &6ed0, direction 7, colour 2, length 0, slope 2 &33fb 09 ; 9 quads &33fc 18 81 63 ff ; quad at &6918, direction 2, lengths 3 8, slope 0, draw 1234, no fill &3400 1d 81 13 f5 ; quad at &691d, direction 3, lengths 3 8, slope 0, draw 13, no fill &3404 21 82 31 5e ; quad at &6a21, direction 3, lengths 1 8, slope 0, draw 234, fill 2 at 2 &3408 75 86 51 da ; quad at &6e75, direction 3, lengths 1 8, slope 0, draw 24, fill 6 at 2 &340c ab 85 41 da ; quad at &6dab, direction 2, lengths 1 8, slope 0, draw 24, fill 6 at 2 &3410 2a 88 61 da ; quad at &702a, direction 2, lengths 1 8, slope 0, draw 24, fill 6 at 2 &3414 78 80 cc be ; quad at &6878, direction 2, lengths 12 8, slope 0, draw 234, fill 5 at 2 &3418 03 e3 af a4 ; quad at &6b03, direction 2, lengths 15 14, slope 3, draw 3, fill 5 at 1 &341c c0 c9 48 24 ; quad at &71c0, direction 2, lengths 8 12, slope 2, draw 3, fill 1 at 1 &3420 03 ; 3 filled areas &3421 a7 a5 ; fill area at &6da7, fill 5 &3423 ff 24 ; fill area at &6cff, fill 1 &3425 1f 41 ; fill area at &691f, fill 2 &3427 00 ; 0 copied areas &3428 00 ; no text &3429 ff ; end ; graphics_continuation_342a # Used by graphics_01, graphics_5f, graphics_60 &342a 04 ; 4 lines &342b 4e 46 49 ; line at &6e4e, direction 2, colour 2, length 16, slope 1 &342e 53 46 39 ; line at &6e53, direction 2, colour 2, length 12, slope 1 &3431 68 21 38 ; line at &6968, direction 1, colour 2, length 12, slope 0 &3434 6d 28 38 ; line at &706d, direction 1, colour 2, length 12, slope 0 &3437 04 ; 4 quads &3438 53 22 83 e9 ; quad at &6a53, direction 0, lengths 3 2, slope 1, draw 14, no fill &343c 49 22 94 49 ; quad at &6a49, direction 1, lengths 4 2, slope 1, draw 14, fill 2 at 1 &3440 6a 80 14 53 ; quad at &686a, direction 3, lengths 4 8, slope 0, draw 12, fill 2 at 2 &3444 6f 87 14 53 ; quad at &6f6f, direction 3, lengths 4 8, slope 0, draw 12, fill 2 at 2 &3448 03 ; 3 filled areas &3449 56 41 ; fill area at &6956, fill 2 &344b 5c 47 ; fill area at &6f5c, fill 2 &344d 45 a5 ; fill area at &6d45, fill 5 &344f 01 ; 1 copied area &3450 01 b0 80 f0 ; mirror area from &7800 to &7880, 8 x 15 &3454 00 ; no text &3455 ff ; end ; graphics_01 &3456 41 ; colour 1 is blue, colour 2 is red &3457 04 ; 4 lines &3458 00 07 19 ; line at &6f00, direction 0, colour 2, length 4, slope 1 &345b 10 c0 d8 ; line at &6810, direction 6, colour 2, length 52, slope 0 &345e 7f c2 4a ; line at &6a7f, direction 6, colour 2, length 16, slope 2 &3461 79 86 4a ; line at &6e79, direction 4, colour 2, length 16, slope 2 &3464 09 ; 9 quads &3465 08 80 d4 fc ; quad at &6808, direction 3, lengths 4 8, slope 0, draw 34, no fill &3469 07 28 15 e7 ; quad at &7007, direction 1, lengths 5 2, slope 1, draw 123, no fill &346d 08 89 1f fc ; quad at &7108, direction 3, lengths 15 8, slope 0, draw 34, no fill &3471 00 2a 11 01 ; quad at &7200, direction 1, lengths 1 2, slope 1, draw 1, fill 0 at 1 &3475 76 82 74 ff ; quad at &6a76, direction 3, lengths 4 8, slope 0, draw 1234, no fill &3479 7a 84 11 fd ; quad at &6c7a, direction 3, lengths 1 8, slope 0, draw 134, no fill &347d 1c 82 33 df ; quad at &6a1c, direction 3, lengths 3 8, slope 0, draw 1234, fill 6 at 2 &3481 20 82 11 3b ; quad at &6a20, direction 3, lengths 1 8, slope 0, draw 124, fill 1 at 2 &3485 18 82 53 1f ; quad at &6a18, direction 3, lengths 3 8, slope 0, draw 1234, fill 0 at 2 &3489 01 ; 1 filled area &348a 04 a9 ; fill area at &7104, fill 5 &348c 00 ; 0 copied areas &348d 00 ; no text &348e 2a 34 ; continue at &342a (graphics_continuation_342a) ; graphics_5f &3490 26 ; colour 1 is green, colour 2 is cyan &3491 04 ; 4 lines &3492 54 06 bb ; line at &6e54, direction 0, colour 2, length 44, slope 3 &3495 03 29 08 ; line at &7103, direction 1, colour 2, length 0, slope 0 &3498 68 21 38 ; line at &6968, direction 1, colour 2, length 12, slope 0 &349b 4e 46 49 ; line at &6e4e, direction 2, colour 2, length 16, slope 1 &349e 05 ; 5 quads &349f 53 22 83 e9 ; quad at &6a53, direction 0, lengths 3 2, slope 1, draw 14, no fill &34a3 0a 24 23 e3 ; quad at &6c0a, direction 0, lengths 3 2, slope 1, draw 12, no fill &34a7 09 23 23 f6 ; quad at &6b09, direction 0, lengths 3 2, slope 1, draw 23, no fill &34ab 26 83 24 97 ; quad at &6b26, direction 2, lengths 4 8, slope 0, draw 123, fill 4 at 2 &34af 49 22 94 e9 ; quad at &6a49, direction 1, lengths 4 2, slope 1, draw 14, no fill &34b3 05 ; 5 filled areas &34b4 56 03 ; fill area at &6b56, fill 0 &34b6 66 01 ; fill area at &6966, fill 0 &34b8 1c 83 ; fill area at &6b1c, fill 4 &34ba 1f 84 ; fill area at &6c1f, fill 4 &34bc 01 a4 ; fill area at &6c01, fill 5 &34be 00 ; 0 copied areas &34bf 00 ; no text &34c0 2a 34 ; continue at &342a (graphics_continuation_342a) ; graphics_60 &34c2 41 ; colour 1 is blue, colour 2 is red &34c3 07 ; 7 lines &34c4 38 29 98 ; line at &7138, direction 1, colour 2, length 36, slope 0 &34c7 38 09 08 ; line at &7138, direction 0, colour 2, length 0, slope 0 &34ca 19 0a 6b ; line at &7219, direction 0, colour 2, length 24, slope 3 &34cd 12 ca 29 ; line at &7212, direction 6, colour 2, length 8, slope 1 &34d0 1f 0a 49 ; line at &721f, direction 0, colour 2, length 16, slope 1 &34d3 52 42 cb ; line at &6a52, direction 2, colour 2, length 48, slope 3 &34d6 73 43 4a ; line at &6b73, direction 2, colour 2, length 16, slope 2 &34d9 05 ; 5 quads &34da 1a 21 a2 f3 ; quad at &691a, direction 0, lengths 2 2, slope 1, draw 12, no fill &34de 04 e0 23 a4 ; quad at &6804, direction 2, lengths 3 14, slope 3, draw 3, fill 5 at 1 &34e2 08 2a 22 04 ; quad at &7208, direction 0, lengths 2 2, slope 1, draw 3, fill 0 at 1 &34e6 52 23 63 1c ; quad at &6b52, direction 0, lengths 3 2, slope 1, draw 34, fill 0 at 2 &34ea 77 82 14 1b ; quad at &6a77, direction 3, lengths 4 8, slope 0, draw 124, fill 0 at 2 &34ee 03 ; 3 filled areas &34ef 33 a7 ; fill area at &6f33, fill 5 &34f1 1b aa ; fill area at &721b, fill 5 &34f3 7a 24 ; fill area at &6c7a, fill 1 &34f5 00 ; 0 copied areas &34f6 00 ; no text &34f7 2a 34 ; continue at &342a (graphics_continuation_342a) ; string_07b &34f9 05 &34fa 05 11 08 6a 7f ; "friendly" ; string_07c &34ff 05 &3500 12 0e 0b 08 03 ; "solid" ; string_07d &3505 05 &3506 0f 0e 16 28 7d ; "powerful" &350a 7d ; string_07f &350b 02 &350c 2f a5 ; "thin " ; unused &350e 00 ; string_000 &350f 02 &3510 99 eb ; "You are " ; string_001 &3512 1f &3513 a5 f1 e9 9f 61 74 aa 0c 64 12 18 90 64 02 00 0f ; "in a dark and somewhat messy escape pod at the rear of the ship" &3523 04 90 0f 0e 03 90 aa 9e 26 b8 a3 9e 33 08 0f ; string_002 &3532 2d &3533 29 a7 a5 9e 02 0e 62 0f ae a3 b2 4e 05 08 6f 28 ; "standing in the cockpit of your spacefighter.You can see the vast &3543 96 a1 c1 bb 9e cb ce 4a 2a 08 ab d3 9e 0c 00 a5 ; space station through the main screen beside the exit hatchway" &3553 12 02 26 f0 68 ba 9e 65 ae 07 2a 34 50 ; string_003 &3560 1e &3561 a5 f1 e0 02 38 06 0e 90 38 da ad 5b e4 00 d0 a4 ; "in a large cargo area that stretches away to the east but is &3571 9e 9c c6 a0 00 0b 0c 0e ca 04 0c 0f 13 18 ; almost empty" ; string_004 &357f 38 &3580 68 ba f1 4e 33 08 0f 90 ab 2b 04 90 a3 f7 cb 0f ; "beside a spaceship on one of many vast platforms in space ,all &3590 0b 2a 79 0c f5 a5 ce 95 d9 15 20 2e d7 01 18 90 ; visited by some large droids saying '#FOR HIRE BUT FREE FOR ALL &35a0 e1 e0 4f f5 45 a7 92 8c 8d f9 07 08 a6 c6 05 11 ; TODAY'" &35b0 d2 f9 d9 24 03 00 18 92 ; string_005 &35b8 29 &35b9 aa 02 14 4a 0e 0c f5 95 29 a7 ab 00 7a 07 a8 ce ; "at customs ,standing on another space platform in front of a large &35c9 0f 0b 2a 79 0c 90 a5 bc a3 f1 e0 38 34 d0 ad 47 ; archway that leads into the space station" &35d9 f5 25 a4 9e ce 4a 2a 08 2b ; string_006 &35e2 14 &35e3 a5 9e 7c 11 00 0d d1 05 0e 18 a8 68 ba f1 e0 38 ; "in the entrance foyer beside a large arch to the east" &35f3 b4 a4 9e 1c ; string_007 &35f7 28 &35f8 a5 9e 38 11 08 15 00 0b f5 22 f1 b1 f7 cc 34 00 ; "in the arrivals area with many old chairs around a closed bar and &3608 08 11 f5 00 f2 f1 02 0b 0e 36 03 90 01 b8 9f f1 ; a small ,dark stairway" &3618 b0 95 e9 4a 00 08 11 50 ; string_008 &3620 1a &3621 a5 f1 c9 bf b1 b0 16 25 03 0e 16 f5 d3 74 08 b4 ; "in a long corridor with small windows through which you can see &3631 a1 c1 bb 9e cb 69 48 be a3 4e ; the vast darkness of space" ; string_009 &363b 1f &363c a5 9e 35 0f 38 13 14 a6 22 f1 b1 e1 df cc 34 00 ; "in the departure area with some very old chairs and a waiting taxi &364c 08 11 f5 9f f1 16 00 2e a7 13 00 17 08 90 4f ; droid" ; string_00a &365b 2c &365c 25 ba 9e 13 00 17 08 90 b1 e1 46 24 0d f5 0c 38 ; "inside the taxi with some buttons marked 0 to 9 and a sign saying &366c 0a d7 80 90 a4 89 90 9f f1 12 08 06 0d 90 45 a7 ; '#TYPE CODE'" &367c 92 8c 8d 13 18 0f 04 90 02 0e 35 92 ; string_00b &3688 1e &3689 aa f1 09 14 0d 02 c0 68 13 16 52 0d 90 f1 33 e6 ; "at a junction between a short ,dark passage and a long corridor to &3699 95 e9 43 00 06 04 90 9f f1 c9 bf a4 9e 1c ; the east" ; string_00c &36a7 21 &36a8 aa 9e 4a 38 13 90 a3 f1 df c9 bf a4 9e 9c 01 18 ; "at the start of a very long corridor to the east by a sign saying &36b8 90 f1 12 08 06 0d 90 45 a7 92 f3 13 26 12 43 27 ; 'no trespassing'" &36c8 92 ; string_00d &36c9 15 &36ca 48 b8 9e 9d ea a3 9e 3f 96 a1 c1 bb b0 7a 34 e4 ; "near the west end of the corridor.You can see small notches in the &36da a5 9e 16 59 12 ; walls" ; string_00e &36df 0c &36e0 07 00 0b 05 d0 00 c9 9e 9c a4 9d 3f ; "halfway along the east to west corridor" ; string_00f &36ec 1a &36ed 54 a7 d3 f1 c9 bf ad 5b e4 a5 c4 9e 9d a4 7c a8 ; "walking through a long corridor that stretches in from the west to &36fd f1 e0 f2 11 37 0c 90 a4 b2 1c ; enter a large round room to your east" ; string_010 &3707 29 &3708 aa 9e 9d ea a3 f1 e0 c6 01 a2 f2 11 37 0c 90 95 ; "at the west end of a large but bare round room ,decorated only &3718 35 02 0e 11 2a d7 2b ff b1 9e 16 0e 11 03 f5 8c ; with the words #'RESEARCH HALL'" &3728 8d 92 26 36 38 b4 07 59 92 ; string_011 &3731 20 &3732 a5 9e 99 01 08 0e 0b 00 01 90 95 48 b8 f1 b0 13 ; "in the Biolab ,near a small table that is covered in gunge" &3742 00 01 d5 ad a0 02 0e 15 28 d7 a5 06 14 0d 06 04 ; string_012 &3752 24 &3753 aa 9e 9c ea a3 9e f2 07 d9 74 08 b4 95 68 ba 82 ; "at the east end of the round hall which ,beside 2 small exits, is &3763 90 b0 65 2e 12 95 90 a0 09 14 ca 00 f5 01 a2 00 ; just as bare as the west end" &3773 f5 9e 9d 6a ; string_013 &3777 1f &3778 a5 9e 99 34 04 0c 08 0b 00 01 90 95 f1 0c 64 f5 ; "in the Chemilab ,a mess of old benches and one test tube " &3788 a3 cc 68 0d 34 e4 9f 2b 04 90 6d ca 13 14 e8 ; string_014 &3797 23 &3798 a5 9e 99 0f 07 18 12 08 0b 00 01 90 95 f1 11 37 ; "in the Physilab ,a room with a large desk that is full of paper" &37a8 0c 90 b1 f1 e0 35 12 0a 90 ad a0 7d 0b 90 a3 0f &37b8 00 0f 28 ; string_015 &37bb 1d &37bc 48 b8 9e 01 00 b6 a3 f1 e9 4a 00 08 11 d0 ad 16 ; "near the base of a dark stairway that winds up through the &37cc 25 03 f5 14 0f 90 d3 9e 4e 4a 2a 08 2b ; spacestation" ; string_016 &37d9 1c &37da aa 9e 24 0f 90 a3 f1 4a 00 08 11 d0 95 a5 f1 b0 ; "at the top of a stairway ,in a small passage that runs westwards" &37ea 43 00 06 04 90 ad 11 14 0d f5 1d 7b ; string_017 ; string_018 ; string_019 ; string_01a ; string_01b ; string_01c ; string_01d ; string_01e &37f6 38 &37f7 ab f1 06 59 28 18 90 ad 5b e4 38 39 0d 03 90 f1 ; "on a gallery that stretches around a maze of small white passages &3807 0c 00 19 04 90 a3 b0 74 2e 04 90 43 00 06 e4 05 ; far below.There are little rails running along the ground" &3817 b8 68 0b 0e 16 96 de a2 fe 11 00 08 0b f5 11 14 &3827 0d 0d a7 00 c9 9e 06 72 ; string_01f &382f 1e &3830 a5 9e cf 36 11 15 08 d1 22 f1 95 f1 12 e6 a3 d4 ; "in the droid service area ,a sort of walk through garage for &3840 d3 06 38 00 06 04 90 f9 11 0e 01 0e 13 12 ; robots" ; string_020 &384e 2e &384f a5 9e cc 26 02 26 2a 08 ab 07 d9 95 f1 c9 35 36 ; "in the old recreation hall ,a long deserted corridor that used to &385f 11 6d 03 90 bf ad 14 36 03 90 a4 e8 7d 0b 90 a3 ; be full of games and pleasure droids ?" &386f 06 00 0c e4 9f 0f 55 00 12 14 a6 4f f5 97 ; string_021 &387d 35 &387e a5 74 aa 16 00 f5 2b d1 f1 05 37 19 01 d9 02 39 ; "in what was once a foozball court until someone died from &388e 11 13 90 14 76 08 0b 90 61 2b 04 90 03 08 d7 c4 ; batshock.There is a mean looking robodroid here" &389e 01 2a 33 0e 62 96 de a0 f1 0c 5a 0d 90 78 a7 11 &38ae 0e 01 0e cf 63 ; string_022 &38b3 11 &38b4 a5 9e 05 37 19 01 d9 04 10 14 08 0f 0c fc 11 37 ; "in the foozball equipment room" &38c4 0c ; string_023 &38c5 24 &38c6 a5 f1 cb 34 00 0c 01 a8 00 0c 2b 06 90 9e f7 cc ; "in a vast chamber among the many old stands that used to form the &38d6 29 f5 ad 14 36 03 90 a4 79 0c 90 9e 4a 00 c0 4e ; station spacemarket" &38e6 0c 38 0a 6c ; string_024 &38ea 2a &38eb aa 9e 9c ea a3 9e 0c 38 0a ec 95 48 b8 9e 7c 11 ; "at the east end of the market ,near the entrance to what was once &38fb 00 0d d1 a4 74 aa 16 00 f5 2b d1 9e 05 00 0c d7 ; the famed tourist spacemaze" &390b 24 14 11 08 ca 4e 0c 00 19 04 ; string_025 &3915 25 &3916 aa 9e 9b ea a3 9e 07 d9 95 00 d0 c4 9e 0c 38 0a ; "at the south end of the hall ,away from the market but next to a &3926 ec c6 48 17 13 90 a4 f1 e0 07 1f 0f 11 25 13 90 ; large handprint key door" &3936 0a d8 03 37 11 ; string_27f &393b 1b &393c 14 0d 02 2b 12 02 08 39 f5 95 c6 33 0e 16 a7 12 ; "unconscious ,but showing signs of recovery" &394c 08 06 0d f5 a3 26 02 0e 15 28 18 ; unused &3957 6d 11 90 63 ; string_027 &395b 25 &395c aa 9e 9a ea a3 9e 0c 38 0a ec 07 59 96 e3 9e 29 ; "at the north end of the market hall.Here the stands are battered &396c f5 a2 01 2a 13 28 d7 c6 02 55 00 0d a8 2f 00 0d ; but cleaner than at the south end" &397c 90 aa 9e 9b 6a ; string_028 &3981 1e &3982 48 b8 f1 8a 02 26 2a 14 a6 65 13 11 00 12 8a 90 ; "near a *creature extras* stand in the northwest corner of the &3992 a9 a5 9e 1a 9d 02 0e 11 0d a8 a3 9e 07 59 ; hall" ; string_029 &39a0 14 &39a1 aa 9e ea a3 f1 e0 bf ad 7c 28 f5 9e cc 0c 38 0a ; "at the end of a large corridor that enters the old market from the &39b1 ec c4 9e 1a ; north" ; string_02a &39b5 06 &39b6 f1 02 14 ed fe 6e ; "a cute little lugobot" ; string_02b &39bc 27 &39bd aa f1 0c 52 13 a7 a3 f7 43 00 06 e4 c6 b1 2b ff ; "at a meeting of many passages but with only 1 sign that points &39cd 81 90 12 08 06 0d 90 ad 0f 0e 25 13 f5 1b 9d f9 ; southwest for quarantine" &39dd 10 14 38 00 76 25 04 ; string_02c &39e4 18 &39e5 ab f1 2f a5 54 d0 5b a7 0e 15 a8 f1 e0 0e 01 c9 ; "on a thin walkway stretching over a large oblong room below" &39f5 11 37 0c 90 68 0b 0e 16 ; string_02d &39fd 2c &39fe aa 9e ea a3 9e 54 d0 95 a5 f1 cb 0b 00 01 90 b1 ; "at the end of the walkway ,in a vast lab with a large vat of a &3a0e f1 e0 15 aa a3 f1 0b 08 10 14 08 03 96 ae a0 0c ; liquid.It is marked #BREATHABLE" &3a1e 38 0a d7 8c 8d 01 26 2a 07 00 01 55 ; string_02e &3a2a 14 &3a2b a5 9e 0b 08 10 14 08 03 95 90 61 07 0e 16 90 01 ; "in the liquid, somehow breathing it" &3a3b 26 00 dd 2e ; string_02f &3a3f 1e &3a40 a5 bc a3 f1 b0 0e 0f f0 03 37 11 90 0c 38 0a d7 ; "in front of a small open door marked 'DANGER X RAYS'" &3a50 8d 92 03 00 0d 06 a8 17 90 11 00 18 12 92 ; string_030 &3a5e 15 &3a5f ab f1 b0 01 11 08 03 06 04 90 0e 15 a8 f1 e0 0e ; "on a small bridge over a large oblong room" &3a6f 01 c9 11 37 0c ; string_031 &3a74 24 &3a75 a5 9e 06 70 28 2a 0e 11 90 11 37 0c 95 90 7d 0b ; "in the generator room, full of dials ,screens and a very large &3a85 90 a3 03 08 00 0b f5 95 12 02 26 70 f5 9f f1 df ; lever" &3a95 e0 55 15 28 ; string_032 &3a99 23 &3a9a a5 9e 11 00 03 08 2a 08 ab 1e 11 00 0f 18 90 0e ; "in the radiation therapy operating theatre ,a small room with a &3aaa 0f 28 2a a7 1e 2a a6 95 f1 b0 11 37 0c 90 b1 f1 ; couch" &3aba 02 39 34 ; string_033 &3abd 2c &3abe a5 f1 e0 95 0e 01 c9 0e 0f 24 1e 11 0c 00 0b 90 ; "in a large ,oblong optothermal research laboratory (2 desks and &3ace 26 36 38 b4 0b 00 01 0e 11 2a 0e 11 18 90 93 82 ; some charts)" &3ade 90 35 12 0a f5 9f e1 34 38 13 12 94 ; string_034 &3aea 2e &3aeb a5 9e 0e 0f 28 2a a7 1e 2a a6 15 08 04 16 a7 11 ; "in the operating theatre viewing room.Gauges here show a large &3afb 37 0c 96 06 00 14 06 e4 e3 33 0e 16 90 f1 e0 11 ; radiation level in the theatre" &3b0b 00 03 08 2a 08 ab 55 15 d6 a5 9e 1e 2a 26 ; string_035 &3b19 2b &3b1a 54 a7 00 c9 f1 b0 43 00 06 04 d0 ad 7c 28 f5 c4 ; "walking along a small passageway that enters from the northeast &3b2a 9e 1a 9c 9f 05 59 f5 4a 52 0f ff 00 d0 25 a4 f1 ; and falls steeply away into a large but dark room below" &3b3a e0 c6 e9 11 37 0c 90 68 0b 0e 16 ; string_036 &3b45 25 &3b46 aa 9e 7c 11 00 0d d1 a4 9e 10 14 38 00 76 25 04 ; "at the entrance to the quarantine area ,by a small bare &3b56 90 22 f1 95 01 18 90 f1 b0 01 a2 26 06 20 13 11 ; registration desk" &3b66 00 c0 35 12 0a ; string_037 &3b6b 27 &3b6c aa 9e 68 06 25 0d a7 a3 f1 33 e6 95 e9 bf ad dc ; "at the beginning of a short ,dark corridor that continues to the &3b7c a4 9e 1c 96 a1 c1 09 14 ca bb b0 79 d1 02 00 06 ; east.You can just see small force cages lining the north side" &3b8c e4 0b 25 a7 9e 9a 3a ; string_038 &3b93 1f &3b94 a5 2b 04 90 a3 9e 10 14 38 00 76 25 04 90 02 00 ; "in one of the quarantine cages ,filled with rubbish" &3ba4 06 e4 95 05 08 0b 0b d7 b1 11 14 01 01 20 07 ; string_039 &3bb3 21 &3bb4 a5 9e ea 02 00 06 04 96 ae a0 a5 0c 14 b4 9e 12 ; "in the end cage.It is in much the same condition as the others" &3bc4 00 0c 04 90 02 2b 03 2e 08 ab 00 f5 9e 0e 1e 11 &3bd4 12 ; string_03a &3bd5 19 &3bd6 aa 9e 9d ea a3 9e bf 39 13 ba 9e 0b 00 ca 02 00 ; "at the west end of the corridor outside the last cage that works" &3be6 06 04 90 ad 16 0e 11 0a 12 ; string_03b &3bef 24 &3bf0 01 18 90 9e 35 4b 2a d7 26 0c 00 25 f5 a3 00 0d ; "by the devastated remains of an old cage.Not all animals are cute" &3c00 90 cc 02 00 06 04 96 fa d9 00 0d 08 0c 00 0b f5 &3c10 a2 02 14 6d ; string_03c &3c14 2b &3c15 a5 f1 df e9 00 0b 02 0e 15 04 96 e1 a3 9e 05 0b ; "in a very dark alcove.Some of the floor has subsided under the &3c25 37 11 90 07 00 f5 12 14 01 3a 03 90 14 0d 35 11 ; weight of something very large" &3c35 90 9e 16 04 08 ef a3 61 dd df 60 ; string_03d &3c40 25 &3c41 48 b8 f1 13 d9 0f 08 d5 a3 35 01 11 a0 ad 3b 0c ; "near a tall pile of debris that seems to include a very large but &3c51 f5 a4 25 02 0b 14 b5 f1 df e0 c6 c9 35 00 03 90 ; long dead creature" &3c61 02 26 2a 14 26 ; string_03e &3c66 29 &3c67 a5 f1 cb 24 11 13 14 a6 22 00 95 36 00 55 03 90 ; "in a vast torture area,sealed off when the police raided it many &3c77 23 05 90 74 f0 9e 0f 0e 0b 08 d1 11 00 08 03 d7 ; years ago" &3c87 ae f7 18 5a 11 f5 00 06 0e ; string_03f ; string_040 ; string_041 ; string_042 ; string_043 ; string_044 ; string_045 ; string_046 ; string_047 ; string_048 &3c90 22 &3c91 31 a5 9e 4e 0c 00 19 04 95 90 12 14 11 72 d7 01 ; "within the spacemaze, surrounded by twisting corridors and &3ca1 18 90 13 16 20 13 a7 3f f5 9f 06 55 00 0c a7 16 ; gleaming walls" &3cb1 59 12 ; string_049 &3cb3 24 &3cb4 a5 f1 df e9 9f 00 0f 0f 22 76 ff 04 0c 0f 13 18 ; "in a very dark and apparently empty room at the end of a small but &3cc4 90 11 37 0c 90 aa 9e ea a3 f1 b0 c6 4a 52 0f 90 ; steep passage" &3cd4 43 00 06 04 ; string_04a &3cd8 2b &3cd9 a5 f1 26 4a 11 08 02 6d 03 90 26 36 38 b4 22 f1 ; "in a restricted research area that uses the spacemaze as a way of &3ce9 ad 14 36 f5 9e 4e 0c 00 19 04 90 00 f5 f1 d0 a3 ; limiting visitors" &3cf9 0b 08 0c 2e a7 15 20 2e 0e 11 12 ; string_04b &3d04 16 &3d05 ab f1 b0 06 59 28 18 90 ad 0e 15 28 78 f5 9e 0c ; "on a small gallery that overlooks the magnolab" &3d15 00 06 73 0b 00 01 ; string_04c &3d1b 2a &3d1c a5 9e 0c 00 06 73 0b 00 01 90 95 74 08 b4 a0 26 ; "in the magnolab ,which is really just a long corridor with vast &3d2c 59 18 90 09 14 ca f1 c9 bf b1 cb 0c 00 06 48 13 ; magnets forming both walls" &3d3c f5 79 0c a7 01 0e af 16 59 12 ; string_04d &3d46 17 &3d47 a5 f1 c9 95 01 11 08 ef bf ad 5b e4 1d fb c4 9e ; "in a long ,bright corridor that stretches westwards from the &3d57 0c 00 06 73 0b 00 01 ; magnolab" ; string_04e &3d5e 20 &3d5f aa f1 83 90 d0 79 0a 90 68 13 16 52 0d 90 9e c9 ; "at a 3 way fork between the long corridor and 2 side corridors &3d6f bf 9f 82 90 ba 3f f5 ad 06 0e 90 1a 9d 9f 1b 1d ; that go northwest and southwest" ; string_04f &3d7f 2d &3d80 a5 f1 0b 0e 16 90 06 26 f0 3f 96 de a0 f1 b0 12 ; "in a low green corridor.There is a small sign here pointing south &3d90 08 06 0d 90 e3 0f 0e 25 13 a7 9b ad 45 f5 8d 92 ; that says 'ELECTROSTATILAB'" &3da0 56 04 02 13 11 0e 4a 2a 08 0b 00 01 92 ; string_050 &3dad 32 &3dae aa 9e 9a ea a3 9e 56 04 02 13 11 0e 4a 2a 08 0b ; "at the north end of the electrostatilab.To your south and &3dbe 00 01 96 a4 b2 9b 9f 5b a7 11 08 ef 00 02 11 0e ; stretching right across the room is a large metal grid" &3dce be 9e 11 37 0c 90 a0 f1 e0 0c 6c 00 0b 90 06 11 &3dde 08 03 ; string_051 &3de0 1c &3de1 aa 9e 9b ea a3 9e 92 4a 2a 08 0b 00 01 90 95 09 ; "at the south end of the 'statilab ,just beside the charged mesh" &3df1 14 ca 68 ba 9e 34 38 06 d7 0c 64 07 ; string_052 &3dfd 1f &3dfe aa 9e 9d 7c 11 00 0d d1 a3 f1 b0 13 14 0d 48 0b ; "at the west entrance of a small tunnel.There are small shelves in &3e0e 96 de a2 b0 33 56 15 e4 a5 9e 72 d7 16 59 12 ; the rounded walls" ; string_053 &3e1d 27 &3e1e 35 04 0f 90 31 a5 9e 36 11 15 08 d1 13 14 0d 48 ; "deep within the service tunnel.A small hole in the ground is &3e2e 0b 96 f1 b0 07 0e d5 a5 9e 06 f2 a0 0c 38 0a d7 ; marked with a skull" &3e3e b1 f1 12 0a 14 0b 0b ; string_054 &3e45 2d &3e46 aa 9e 9c 7c 11 00 0d d1 a3 f1 e9 95 f2 36 11 15 ; "at the east entrance of a dark ,round service tunnel that winds &3e56 08 d1 13 14 0d 0d d6 ad 16 25 03 f5 f7 e0 0f 0e ; many large power lines through the old spacestation" &3e66 16 a8 0b 25 e4 d3 9e cc 4e 4a 2a 08 2b ; string_055 &3e73 23 &3e74 a5 f1 33 e6 11 d7 bf 0f 0b 00 4a 28 d7 b1 12 08 ; "in a short red corridor plastered with signs marking it as a &3e84 06 0d f5 0c 38 0a a7 ae 00 f5 f1 92 36 02 14 a6 ; 'secure area'" &3e94 22 00 92 ; string_056 &3e97 1e &3e98 05 14 11 1e 11 90 00 c9 9e bf aa 9e 68 06 25 0d ; "further along the corridor at the beginning of the maintenance &3ea8 a7 a3 9e 0c 00 25 6d 0d 00 0d d1 36 02 40 ; section" ; string_057 &3eb6 25 &3eb7 a5 9e 26 02 18 02 0b a7 11 37 0c 90 b1 f1 cb 0c ; "in the recycling room with a vast machine stretching across the &3ec7 00 34 25 04 90 5b a7 00 02 11 0e be 9e 9c 95 9b ; east ,south and west walls" &3ed7 9f 9d 16 59 12 ; string_058 &3edc 14 &3edd aa 9e df ea a3 9e bf 95 39 13 ba f1 e0 11 37 0c ; "at the very end of the corridor ,outside a large room to the &3eed 90 a4 9e 1b ; south" ; string_059 &3ef1 2a &3ef2 01 18 90 f1 36 11 08 e4 a3 01 11 0e 0a f0 4e 02 ; "by a series of broken spacecleaner racks ,epitomising the entire &3f02 55 00 48 11 90 11 00 62 f5 95 04 0f 2e 0e 0c 20 ; spacestation" &3f12 a7 9e 7c 08 a6 4e 4a 2a 08 2b ; string_05a &3f1c 21 &3f1d a5 9e cc 02 55 00 0d a7 36 02 c0 a3 9e bf 95 b1 ; "in the old cleaning section of the corridor ,with shelves of &3f2d 33 56 15 e4 a3 01 55 00 34 e4 0b 25 a7 9e 16 59 ; bleaches lining the walls" &3f3d 12 ; string_05b &3f3e 24 &3f3f aa f1 99 13 90 09 14 0d 02 c0 ad 02 2b 48 02 13 ; "at a T junction that connects a very long maintenance corridor &3f4f f5 f1 df c9 0c 00 25 6d 0d 00 0d d1 bf b1 f1 b0 ; with a small corridor to the south" &3f5f bf a4 9e 1b ; string_05c &3f63 2b &3f64 a5 9e cc 0c 00 25 6d 0d 00 4f f5 36 11 15 08 d1 ; "in the old maintenadroids service area ,similar to the servobot's &3f74 22 f1 95 12 08 0c 08 0b b8 a4 9e 36 11 15 0e 01 ; walk through garage" &3f84 0e 13 92 f5 d4 d3 06 38 00 06 04 ; string_05d &3f8f 21 &3f90 48 b8 9e ea a3 9e 0c 00 25 6d 0d 00 0d d1 bf 95 ; "near the end of the maintenance corridor ,where it widens into a &3fa0 16 e3 ae 16 08 35 0d f5 25 a4 f1 e0 22 f1 a4 9e ; large area to the west" &3fb0 1d ; string_05e &3fb1 28 &3fb2 a5 9e 24 0e 0b 90 4a 0e 11 00 06 04 90 22 00 96 ; "in the tool storage area.Looted by space pirates ,it is &3fc2 0b 37 13 d7 01 18 90 ce 0f 08 11 2a e4 95 ae a0 ; depressingly bare" &3fd2 35 0f 26 3e 27 ff 01 22 ; string_05f &3fda 38 &3fdb a5 f1 13 d9 0e 11 0d 2a 04 90 bf b1 f1 e0 12 0b ; "in a tall ornate corridor with a large slippery chute that enters &3feb 08 0f 0f 28 18 90 34 14 ed ad 7c 28 f5 d3 9e 16 ; through the wall and ,with a foothold ,would be climbable" &3ffb d9 9f 95 b1 f1 05 37 2f cc 95 16 39 0b 03 90 e8 &400b 02 0b 08 0c 01 00 01 55 ; string_060 &4013 2a &4014 aa 9e 24 0f 90 a3 9e 34 14 ed 95 12 14 11 72 d7 ; "at the top of the chute ,surrounded by gratings in the air &4024 01 18 90 06 11 2a 27 f5 a5 9e 00 08 11 90 02 2b ; conditioning system" &4034 03 2e 08 2b a7 12 18 4a 04 0c ; string_061 &403e 20 &403f a5 9e 4a 0e 11 00 06 04 90 22 f1 f9 07 5a 15 18 ; "in the storage area for heavy duty repair tools " &404f 90 03 14 13 18 90 26 0f 00 08 11 90 24 0e 0b f5 ; string_062 &405f 2c &4060 aa 9e 9c ea a3 9e cc 65 07 08 01 08 c0 07 d9 95 ; "at the east end of the old exhibition hall ,now just exhibiting &4070 73 16 90 09 14 ca 65 07 08 01 2e a7 35 02 00 18 ; decaying walls and the odd rat" &4080 a7 16 59 f5 9f 9e 0e 03 03 90 11 2a ; string_063 &408c 1a &408d aa 9e 9d ea a3 9e 35 12 0e 0b 00 ed 9f 35 36 11 ; "at the west end of the desolate and deserted exhibition hall" &409d 13 d7 65 07 08 01 08 c0 07 59 ; string_064 &40a7 1e &40a8 68 ba f1 e0 12 02 38 0b ec 03 37 11 90 02 2b 13 ; "beside a large scarlet door containing a small microphone" &40b8 00 25 a7 f1 b0 0c 08 02 11 0e 0f 07 2b 04 ; string_065 &40c6 1d &40c7 a5 f1 b0 3a 11 37 0c 90 b1 f1 48 aa fe 35 12 0a ; "in a small sideroom with a neat little desk and a comfy looking &40d7 90 9f f1 02 0e 0c 05 18 90 78 a7 36 2a ; seat" ; string_066 &40e4 1b &40e5 a5 9e 13 00 17 08 96 a1 c1 bb f1 cb 0f 0b 2a 79 ; "in the taxi.You can see a vast platform in space through the &40f5 0c 90 a5 ce d3 9e 16 25 03 0e 16 ; window" ; string_100 &4100 03 &4101 04 07 97 ; "eh?" ; string_101 &4104 0c &4105 08 90 03 2b 92 13 90 14 0d 35 11 29 ; "i don't understand" ; end_string &4111 a5 7e LDA &7e ; text_address_low &4113 f0 0f BEQ &4124 ; leave &4115 a9 2e LDA #&2e ; "." &4117 a2 01 LDX #&01 # Write a single character &4119 20 8d 51 JSR &518d ; write_single_character &411c a5 7e LDA &7e ; text_address_low &411e f0 04 BEQ &4124 ; leave &4120 e8 INX &4121 4c 8b 51 JMP &518b ; write_single_space ; leave &4124 60 RTS ; string_104 &4125 0d &4126 a1 ac 02 38 11 18 90 00 0d 18 dd 56 36 ; "you can't carry anything else" ; string_105 &4133 0e &4134 a1 ac 06 0e 90 a5 ad 03 08 26 02 13 08 2b ; "you can't go in that direction" ; string_106 &4142 15 &4143 a1 05 52 0b 90 f1 36 38 a7 36 0d 12 2a 08 ab d3 ; "you feel a searing sensation through your body" &4153 b2 01 0e 03 18 ; string_107 &4158 08 &4159 eb 79 51 03 90 01 00 62 ; "you are forced back" ; string_108 ; string_172 &4161 07 &4162 9e cf 29 f5 a5 b2 50 ; "the droid stands in your way" ; string_109 &4169 0b &416a eb 56 04 02 13 11 0e 02 14 6d 03 ; "you are electrocuted" ; string_10a &4175 13 &4176 de a2 0f 0b 00 51 f5 f9 0f 04 0e 0f d5 0b 08 0a ; "there are places for people like you" &4186 04 90 21 ; string_10b &4189 0d &418a 9e 11 00 03 08 2a 08 ab 3b 0f f5 d3 21 ; "the radiation seeps through you" ; string_10c &4197 0f &4198 9e 02 14 11 26 f6 43 e4 d3 9e ee 9f 25 a4 21 ; "the current passes through the lugobot and into you" ; string_10d &41a7 0b &41a8 9e 0c 00 0d 90 0a 08 0b 0b f5 21 ; "the man kills you" ; string_10e &41b3 16 &41b4 07 04 90 45 f5 92 fa 00 06 00 25 92 90 9f 2f 11 ; "he says 'not again' and throws you out" &41c4 0e 16 f5 a1 39 13 ; string_10f &41ca 14 &41cb 07 04 90 45 f5 92 f3 7c 11 18 92 90 9f 0f 14 33 ; "he says 'no entry' and pushes you out" &41db e4 a1 39 13 ; string_110 &41df 15 &41e0 92 12 c1 0f 0e 12 2e 08 15 04 90 95 36 76 70 d1 ; "'scan positive ,sentence is death'" &41f0 a0 35 2a 07 92 ; string_111 &41f5 06 &41f6 92 02 55 00 0d 92 ; "'clean'" ; string_112 &41fc 06 &41fd a2 a1 12 14 a6 97 ; "are you sure ?" ; string_113 &4203 0c &4204 e8 02 22 fd 48 17 13 90 13 08 0c 04 ; "be careful next time" ; string_114 &4210 0a &4211 9e ee 2f 11 0e 16 f5 a1 23 05 ; "the lugobot throws you off" ; string_115 &421b 0d &421c a1 ac 02 38 11 18 90 ad a4 68 06 a5 31 ; "you can't carry that to begin with" ; string_116 &4229 12 &422a a1 ac 03 11 0e 0f 90 5d f5 21 92 a6 fa 02 38 11 ; "you can't drop things you're not carrying" &423a 18 27 ; string_117 &423c 0a &423d 21 92 a6 fa 02 38 11 18 a7 2d ; "you're not carrying that" ; string_118 &4247 09 &4248 2e f5 4a 14 e2 a4 b2 07 1f ; "its stuck to your hand" ; string_119 &4251 08 &4252 ae 05 0b 0e 2a f5 00 50 ; "it floats away" ; string_11a &425a 0b &425b f3 0b 2e 6d 11 a7 9e 13 00 17 08 ; "no littering the taxi" ; string_11b &4266 07 &4267 24 0e 90 07 5a 15 18 ; "too heavy" ; string_11c &426e 05 &426f 06 ec 74 2a 97 ; "get what?" ; string_11d &4274 05 &4275 a1 ac bb ad 63 ; "you can't see that here" ; string_11e &427a 09 &427b de a0 7a 07 a7 e3 a4 06 6c ; "there is nothing here to get" ; string_11f &4284 06 &4285 eb 02 38 11 18 a7 ; "you are carrying " ; string_120 &428b 09 &428c a1 07 e7 12 02 0e 26 03 90 ; "you have scored " ; string_121 &4295 06 &4296 eb 11 2a d7 00 f5 ; "you are rated as " ; string_122 &429c 0e &429d 9e 36 11 15 0e 01 0e 13 90 7c 28 f5 c4 9e ; "the servobot enters from the " ; string_123 &42ab 13 &42ac 9e 36 11 15 0e 01 0e 13 90 11 0e 0b 0b f5 23 05 ; "the servobot rolls off to the " &42bc 90 a4 9e ; string_124 &42bf 0d &42c0 f1 0c 6c 59 08 02 90 15 0e 08 d1 45 f5 ; "a metallic voice says " ; string_125 &42cd 1b &42ce 9e 03 0e 06 90 9f 0c 2b 0a d8 12 00 15 00 06 04 ; "the dog and monkey savage each other to death" &42de 90 5a b4 0e 1e 11 90 a4 35 2a 07 ; string_126 &42e9 15 &42ea 9e 03 0e 06 90 9f 0c 2b 0a d8 12 0d 38 0b 90 aa ; "the dog and monkey snarl at each other" &42fa 5a b4 0e 1e 11 ; string_127 &42ff 0e &4300 eb 00 0b 26 00 03 18 90 02 38 11 18 a7 2d ; "you are already carrying that" ; string_128 &430e 0d &430f eb 00 0b 26 00 03 18 90 16 5a 11 a7 2d ; "you are already wearing that" ; string_129 &431c 0c &431d 73 16 90 eb 06 6c 13 a7 12 08 0b 7f ; "now you are getting silly" ; string_12a &4329 16 &432a de a0 f1 b0 0c 00 0d 90 b1 f1 12 10 14 52 0a 18 ; "there is a small man with a squeeky voice here" &433a 90 15 0e 08 d1 63 ; string_12b &4340 15 &4341 9e 07 2a 34 d0 0e 0f 70 f5 9f eb 12 14 62 d7 39 ; "the hatchway opens and you are sucked out into space" &4351 13 90 25 a4 4e ; string_12c &4356 11 &4357 a1 12 14 05 05 0e 02 2a 04 90 a5 83 80 90 36 02 ; "you suffocate in 30 secs" &4367 12 ; string_12d &4368 1e &4369 9e 06 18 11 0e 90 4a 38 13 f5 9f 02 38 11 08 e4 ; "the gyro starts and carries you to the nearest air pocket" &4379 a1 a4 9e 48 22 ca 00 08 11 90 0f 0e 62 6c ; string_12e &4387 0a &4388 e8 02 22 fd 74 aa a1 16 5a 11 ; "be careful what you wear" ; string_12f &4392 13 &4393 eb 00 0b 26 00 03 18 90 16 5a 11 a7 61 dd ab b2 ; "you are already wearing something on your head" &43a3 07 5a 03 ; string_130 &43a6 05 &43a7 eb 16 5a 11 a7 ; "you are wearing " ; string_131 &43ac 08 &43ad 9e ee a0 02 38 11 18 a7 ; "the lugobot is carrying " ; string_132 &43b5 04 &43b6 a1 ac bb 2e ; "you can't see it" ; string_133 &43ba 0c &43bb eb 00 0b 26 00 03 18 90 03 0e a7 2d ; "you are already doing that" ; string_134 &43c7 02 &43c8 0e 0a ; "ok" ; string_135 &43ca 0b &43cb 0f 55 00 b6 56 00 01 0e 11 2a 04 ; "please elaborate" ; string_136 &43d6 0a &43d7 03 2b 92 13 90 e8 0b 00 19 18 ; "don't be lazy" ; string_137 &43e1 08 &43e2 03 2b 13 90 03 0e 90 2d ; "dont do that" ; string_138 &43ea 04 &43eb eb 35 00 03 ; "you are dead" ; string_139 &43ef 05 &43f0 eb 78 a7 aa 2e ; "you are looking at it" ; string_13a &43f5 12 &43f6 f1 13 00 17 08 90 13 00 0a e4 a1 a4 02 14 4a 0e ; "a taxi takes you to customs" &4406 0c 12 ; string_13b &4408 08 &4409 f1 13 00 17 08 90 63 97 ; "a taxi here?" ; string_13c &4411 0a &4412 ae a0 09 00 0c 0c d7 33 14 13 ; "it is jammed shut" ; string_13d &441c 06 &441d 2e 92 f5 0e 0f 70 ; "it's open" ; string_13e &4423 09 &4424 e1 06 00 f5 3b 0f f5 39 13 ; "some gas seeps out" ; string_13f &442d 10 &442e 9e 01 d9 11 0e 0b 0b f5 0e 15 a8 9e 57 06 04 90 ; "the ball rolls over the edge " ; string_140 &443e 06 &443f a1 ac 03 0e 90 2d ; "you can't do that" ; string_141 &4445 0c &4446 13 11 18 90 ad 61 74 28 04 90 56 36 ; "try that somewhere else" ; string_142 &4452 04 &4453 74 aa 31 97 ; "what with?" ; string_143 &4457 0b &4458 9e 06 14 38 cf 7c 28 f5 c4 9e 1d ; "the guardroid enters from the west" ; string_144 &4463 0d &4464 9e 00 06 06 11 0e cf 7c 28 f5 c4 9e 1c ; "the aggrodroid enters from the east" ; string_145 &4471 0e &4472 a1 05 25 03 90 f1 b0 13 11 00 0f 03 37 11 ; "you find a small trapdoor" ; string_146 &4480 05 &4481 74 0e 90 a4 97 ; "who to ?" ; string_147 &4486 09 &4487 ae 03 0e e4 fa 16 00 f6 2e ; "it does not want it" ; string_148 &4490 12 &4491 f1 e9 02 0b 39 03 90 04 0c 28 06 e4 c4 9e 06 14 ; "a dark cloud emerges from the gun " &44a1 0d 90 ; string_149 &44a3 11 &44a4 12 14 03 35 0d ff 9e 06 14 0d 90 65 0f 0b 0e 03 ; "suddenly the gun explodes " &44b4 e4 ; string_14a &44b5 09 &44b6 7a 07 a7 07 00 0f 0f 70 12 ; "nothing happens" ; string_14b &44bf 0b &44c0 25 15 00 0b 08 03 90 25 0f 14 13 ; "invalid input" ; string_14c &44cb 0e &44cc ae 09 14 0c 0f f5 39 13 90 a3 b2 38 0c 12 ; "it jumps out of your arms" ; string_14d &44da 0f &44db a1 0f 14 13 90 9e 03 0e 06 90 ab 9e 55 00 33 ; "you put the dog on the leash" ; string_14e &44ea 0f &44eb a1 06 11 00 01 90 9e 03 0e 06 92 f5 55 00 33 ; "you grab the dog's leash" ; string_14f &44fa 09 &44fb 9e ee 13 11 14 0d 03 55 f5 ; "the lugobot trundles " ; string_150 &4504 09 &4505 9e 0c 2b 0a d8 12 16 27 f5 ; "the monkey swings " ; string_151 &450e 0a &450f 9e 03 0e 06 90 4a 00 0b 0a f5 ; "the dog stalks " ; string_152 &4519 0a &451a 9e 03 0e 06 90 4a 11 00 25 f5 ; "the dog strains " ; string_21f &4524 02 &4525 90 9f ; " and " ; string_153 &4527 04 &4528 07 04 90 20 ; "he is" ; string_154 &452c 0a &452d 9e ee 05 0e 0b 0b 0e 16 f5 21 ; "the lugobot follows you" ; string_155 &4537 13 &4538 de a0 f1 0c 00 0d 90 e3 00 08 0c a7 f1 06 14 0d ; "there is a man here aiming a gun at you " &4548 90 aa a1 ; string_156 &454b 14 &454c 9e 13 00 17 08 90 43 e4 d3 ce 95 0b 1f a7 a5 f1 ; "the taxi passes through space ,landing in a large berth" &455c e0 68 11 2f ; string_157 &4560 11 &4561 9e 12 08 06 0d 90 12 16 2e 34 e4 a4 92 68 11 2f ; "the sign switches to 'berth'" &4571 92 ; string_158 &4572 18 &4573 16 11 2b 06 90 02 0e b5 95 eb 26 13 14 11 48 03 ; "wrong code ,you are returned to departure" &4583 90 a4 35 0f 38 13 14 26 ; string_159 &458b 08 &458c 8c 8d 68 11 af f3 91 90 ; "#BERTH NO : " ; string_15a &4594 08 &4595 8c 8d 33 08 0f 90 91 90 ; "#SHIP : " ; string_15b &459d 0c &459e 8c 8d 0c 00 a5 02 38 06 0e 90 91 90 ; "#MAIN CARGO : " ; string_15c &45aa 0d &45ab 8c 8d 0f 08 0b 0e 13 90 11 2a a7 91 90 ; "#PILOT RATING : " ; string_15d &45b8 10 &45b9 8c 8d 0f 08 0b 0e 13 90 12 0f 04 02 08 e4 91 90 ; "#PILOT SPECIES : " ; string_15e &45c9 0b &45ca 8c 8d 7c 11 18 90 02 0e b5 91 90 ; "#ENTRY CODE : " ; string_15f &45d5 1b &45d6 8a 8d 16 56 0b 90 03 2b 04 8a 8d 95 90 a1 07 e7 ; "*WELL DONE*, you have rescued Shauna" &45e6 26 12 02 14 d7 99 33 00 14 0d 00 ; string_160 &45f1 0b &45f2 0a 27 05 08 33 a8 33 14 13 13 55 ; "kingfisher shuttle" ; string_161 &45fd 07 &45fe 06 0d aa 05 08 6f 28 ; "gnat fighter" ; string_162 &4605 06 &4606 05 08 26 01 14 06 ; "firebug" ; string_163 &460c 05 &460d 0b 0e 02 14 4a ; "locust" ; string_164 &4612 04 &4613 16 00 12 0f ; "wasp" ; string_165 &4617 04 &4618 0c 00 76 20 ; "mantis" ; string_166 &461c 05 &461d 13 28 0c 08 6d ; "termite" ; string_167 &4622 05 &4623 33 11 08 0a 04 ; "shrike" ; string_168 &4628 05 &4629 05 00 0b 02 2b ; "falcon" ; string_169 &462e 06 &462f 15 14 0b 13 14 26 ; "vulture" ; string_16a &4635 07 &4636 0d 08 6f 07 00 16 0a ; "nighthawk" ; string_16b &463d 05 &463e 0a 04 4a 26 0b ; "kestrel" ; string_16c &4643 07 &4644 12 02 0e 11 0f 08 2b ; "scorpion" ; string_16d &464b 07 &464c 13 38 00 76 14 0b 00 ; "tarantula" ; string_16e &4653 03 &4654 5a 06 55 ; "eagle" ; string_16f &4657 0c &4658 00 0b 01 2a 11 0e be 02 38 11 08 28 ; "albatross carrier" ; string_170 &4664 0c &4665 9e 4f f5 06 0b a2 aa 5a b4 0e 1e 11 ; "the droids glare at each other" ; string_171 &4671 17 &4672 9e 06 14 38 cf 0f 14 0b 15 28 20 e4 9e 00 06 06 ; "the guardroid pulverises the aggrodroid with the bat " &4682 11 0e cf b1 9e 01 aa ; call_previous_oswrch_vector_if_not_bell &4689 c9 07 CMP #&07 ; BELL &468b f0 03 BEQ &4690 ; leave &468d 6c 3d 25 JMP (&253d) ; previous_oswrch_vector ; leave &4690 60 RTS ; unused &4691 00 00 8e ; string_173 &4694 1d &4695 9e cf 13 00 0a e4 ae 95 34 38 06 e4 ae 95 9f 12 ; "the droid takes it ,charges it ,and splits your skull with it" &46a5 0f 0b 2e f5 b2 12 0a 14 0b 0b 90 b1 2e ; string_174 &46b2 0c &46b3 9e 03 0e 06 90 12 16 59 0e 16 f5 2e ; "the dog swallows it" ; string_175 &46bf 07 &46c0 eb 16 5a 0f 2b 55 3e ; "you are weaponless" ; string_176 &46c7 0b &46c8 b2 01 aa a0 14 0d 0f 0e 16 28 57 ; "your bat is unpowered" ; string_177 &46d3 0b &46d4 a1 0f 14 0b 15 28 20 04 90 9e 4f ; "you pulverise the droid" ; string_178 &46df 0d &46e0 9e 03 37 11 90 12 0b 08 35 f5 0e 0f 70 ; "the door slides open" ; string_179 &46ed 13 &46ee 9e 0c 00 34 25 04 90 74 08 11 f5 9f 61 dd 05 59 ; "the machine whirs and something falls out" &46fe f5 39 13 ; string_17a &4701 09 &4702 9e cf 4a 0e 0f f5 35 00 03 ; "the droid stops dead" ; string_17b &470b 13 &470c a1 24 14 b4 ae 9f 05 d9 12 08 55 76 ff a4 9e 05 ; "you touch it and fall silently to the floor" &471c 0b 37 11 ; string_17c &471f 0a &4720 9e 13 14 e8 a0 24 0e 90 2f 25 ; "the tube is too thin" ; string_17d &472a 14 &472b 9e 0c 2b 0a d8 26 00 34 e4 a5 9f 06 08 15 e4 9e ; "the monkey reaches in and gives the ball to you" &473b 01 d9 a4 21 ; string_17e &473f 12 &4740 a1 13 11 18 90 a4 01 26 00 0a 90 9e 16 11 20 13 ; "you try to break the wrist but " &4750 90 c6 ; string_17f &4752 0a &4753 7a 07 a7 12 0f 04 02 08 00 0b ; "nothing special" ; string_200 &475d 0a &475e f1 33 38 0f 90 12 0f 08 0a 04 ; "a sharp spike" ; string_201 &4768 05 &4769 f1 ce 12 14 2e ; "a space suit" ; string_202 &476e 06 &476f f1 c7 07 56 0c 6c ; "a lead helmet" ; string_203 &4775 0e &4776 f1 12 02 11 00 0f 90 a3 0c 2a 28 08 00 0b ; "a scrap of material" ; string_204 &4784 0b &4785 f1 85 80 80 90 02 26 03 ae 7a 04 ; "a 500 credit note" ; string_205 &4790 06 &4791 e1 06 14 0d 06 04 ; "some gunge" ; string_206 &4797 0d &4798 f1 0f 48 14 0c 2a 08 02 90 4a 00 0c 0f ; "a pneumatic stamp" ; string_207 &47a5 06 &47a6 f1 01 d9 68 38 27 ; "a ball bearing" ; string_208 &47ac 08 &47ad f1 06 18 11 0e 0f 00 02 ; "a gyropac" ; string_209 &47b5 0a &47b6 f1 11 0e 01 0e 13 92 f5 07 1f ; "a robot's hand" ; string_20a &47c0 0a &47c1 f1 06 00 f5 02 18 0b 25 35 11 ; "a gas cylinder" ; string_20b &47cb 09 &47cc f1 0b 00 36 11 90 06 14 0d ; "a laser gun" ; string_20c &47d5 0a &47d6 f1 35 00 02 13 08 15 2a 0e 11 ; "a deactivator" ; string_20d &47e0 0b &47e1 f1 99 0b 67 00 0d 90 0c 2b 0a 58 ; "a Lavean monkey" ; string_20e &47ec 0f &47ed f1 99 26 15 28 a5 0f 0e 25 6d 11 90 03 0e 06 ; "a Reverin pointer dog" ; string_20f &47fc 04 &47fd f1 55 00 33 ; "a leash" ; string_210 &4801 06 &4802 99 33 00 14 0d 00 ; "Shauna" ; string_211 &4808 09 &4809 00 0d 90 08 11 ab 11 0e 03 ; "an iron rod" ; string_212 &4812 09 &4813 e1 68 13 f1 12 0f 04 02 75 ; "some beta specs" ; string_213 &481c 05 &481d f1 55 13 6d 11 ; "a letter" ; string_214 &4822 06 &4823 f1 26 51 08 0f 13 ; "a receipt" ; string_215 &4829 06 &482a 99 a1 c1 06 0e 90 ; "You can go " ; string_216 &4830 06 &4831 f1 05 37 19 01 2a ; "a foozbat" ; string_217 &4837 0b &4838 e1 08 35 76 08 05 08 02 2a 08 2b ; "some identification" ; string_218 &4843 0e &4844 f1 0f 08 d5 a3 13 16 08 4a d7 0c 6c 00 0b ; "a pile of twisted metal" ; string_219 &4852 04 &4853 f1 02 38 03 ; "a card" ; string_21a &4857 07 &4858 e1 12 00 0c 0f 55 75 ; "some samples" ; optionally_write_space_preserving_variables &485f f0 05 BEQ &4866 ; leave &4861 a9 20 LDA #&20 ; " " &4863 20 71 10 JSR &1071 ; to_write_character_preserving_variables ; leave &4866 60 RTS ; write_period_preserving_variables &4867 a9 2e LDA #&2e ; "." &4869 20 71 10 JSR &1071 ; to_write_character_preserving_variables &486c 60 RTS ; unused &486d 00 ; string_21b &486e 0b &486f f1 0c 5a 0d 90 78 a7 06 14 38 4f ; "a mean looking guardroid" ; string_21c &487a 0c &487b f1 0d 00 4a 18 90 00 06 06 11 0e 4f ; "a nasty aggrodroid" ; string_21d &4887 0e &4888 f1 11 00 08 55 03 90 36 11 15 0e 01 0e 13 ; "a railed servobot" ; string_21e &4896 03 &4897 7a 07 27 ; "nothing" ; unused # Unused string &489a 01 &489b 9f ; "and " ; string_220 &489c 01 &489d 95 ; "," ; string_221 &489e 01 &489f 96 ; "." ; string_222 &48a0 09 &48a1 90 39 13 90 a3 81 80 80 90 ; " out of 100 " ; string_223 &48aa 06 &48ab 0f 00 1e 13 08 02 ; "pathetic" ; string_224 &48b1 08 &48b2 25 65 0f 28 08 70 02 57 ; "inexperienced" ; string_225 &48ba 06 &48bb 0c 57 08 0e 02 26 ; "mediocre" ; string_226 &48c1 08 &48c2 02 0e 0c 0f 6c 00 0d 13 ; "competant" ; string_227 &48ca 09 &48cb 0f 11 0e 05 08 02 08 70 13 ; "proficient" ; string_228 &48d4 07 &48d5 65 0f 28 08 70 02 57 ; "experienced" ; string_229 &48dc 06 &48dd 12 0a 08 0b 0b 57 ; "skilled" ; string_22a &48e3 05 &48e4 13 00 0b 7c 57 ; "talented" ; string_22b &48e9 04 &48ea 65 0f 28 13 ; "expert" ; string_22c &48ee 05 &48ef 06 70 08 14 12 ; "genius" ; unused &48f4 00 ; string_22d &48f5 10 &48f6 99 0f 26 be 8d ce 8d f9 00 7a 07 a8 06 00 0c 04 ; "Press SPACE for another game" ; string_22e &4906 01 &4907 1a ; "north" ; string_22f &4908 01 &4909 1b ; "south" ; string_230 &490a 01 &490b 1c ; "east" ; string_231 &490c 01 &490d 1d ; "west" ; string_232 &490e 02 &490f 1a 1c ; "northeast" ; string_233 &4911 02 &4912 1b 1c ; "southeast" ; string_234 &4914 02 &4915 1a 1d ; "northwest" ; string_235 &4917 02 &4918 1b 1d ; "southwest" ; string_236 &491a 02 &491b 14 0f ; "up" ; string_237 &491d 04 &491e 03 0e 16 0d ; "down" ; string_238 &4922 01 &4923 25 ; "in" ; string_239 &4924 02 &4925 39 13 ; "out" ; string_102 &4927 1e &4928 8c 92 6e 95 90 e3 a0 f1 4a 2a 08 02 90 33 08 56 ; "#'lugobot, here is a static shield.I need some samples'" &4938 03 96 08 90 48 d7 e1 12 00 0c 0f 55 12 92 ; string_23b &4946 09 &4947 8c 92 06 ec ab b1 ae 6e 92 ; "#'get on with it lugobot'" ; string_074 &4950 16 &4951 8c 92 0f 2e 18 90 eb 01 14 12 18 90 ee 95 99 08 ; "#'pity you are busy lugobot ,I needed you'" &4961 90 48 57 d7 21 92 ; string_23d &4967 18 &4968 8c 92 a1 03 0e 90 fa 48 d7 9e 33 08 56 03 90 00 ; "#'you do not need the shield as you are with this thing lugobot'" &4978 f5 eb b1 2f a0 dd 6e 92 ; string_23e &4980 0b &4981 8c 92 06 ec 01 0b 0e 16 a7 6e 92 ; "#'get blowing lugobot'" ; string_23f &498c 19 &498d 8c 92 0e 0a 90 ee 95 e3 a0 e1 06 00 f5 f9 9e fe ; "#'ok lugobot ,here is some gas for the little droid's balloons'" &499d 4f 92 f5 01 59 37 0d 12 92 ; string_240 &49a6 0b &49a7 36 02 f5 a4 ce 65 0f 0e 12 14 26 ; "secs to space exposure" ; string_241 &49b2 0a &49b3 99 9e 03 37 11 90 0e 0f 70 12 ; "The door opens" ; string_242 &49bd 0f &49be 92 99 08 90 03 2b 92 13 90 0a 73 16 90 21 92 ; "'I don't know you'" ; string_243 &49cd 07 &49ce a1 12 10 14 52 0a 90 ; "you squeek " ; string_244 &49d5 02 &49d6 a1 c5 ; "you say " ; string_245 &49d8 08 &49d9 9f 05 59 f5 a4 9e 06 72 ; "and falls to the ground" ; string_246 &49e1 1c &49e2 9f 95 14 0f ab 7c 28 a7 9e 05 08 56 03 90 95 a0 ; "and ,upon entering the field ,is shot right through the man" &49f2 33 0e 13 90 11 08 ef d3 9e 0c 00 0d ; string_247 &49fe 13 &49ff 9f 61 07 0e 16 90 02 0e 0b 0b 00 0f 36 f5 9e 05 ; "and somehow collapses the field" &4a0f 08 56 03 ; string_248 &4a12 07 &4a13 13 00 0a a7 a1 b1 2e ; "taking you with it" ; string_249 &4a1a 08 &4a1b 35 4a 11 0e 18 a7 9e 6e ; "destroying the lugobot" ; string_24a &4a23 03 &4a24 a5 c4 9e ; "in from the " ; string_24b &4a27 05 &4a28 23 05 90 a4 9e ; "off to the " ; string_24c &4a2d 23 &4a2e c6 95 3b a7 bd 0f 26 18 90 95 9e 03 0e 06 90 0f ; "but ,seeing his prey ,the dog pounces and fearlessly kills him" &4a3e 39 0d 51 f5 9f 05 5a 11 55 3e ff 0a 08 0b 0b f5 &4a4e 07 08 0c ; string_24d &4a51 06 &4a52 96 90 01 00 0d 06 ; ". Bang" ; unused &4a58 21 ; unused # Unused string &4a59 03 &4a5a 05 37 03 ; "food" ; string_24e &4a5d 05 &4a5e 02 0b 0e 2f a7 ; "clothing " ; string_24f &4a63 03 &4a64 05 14 56 ; "fuel" ; string_250 &4a67 05 &4a68 43 70 06 28 12 ; "passengers" ; string_251 &4a6d 05 &4a6e cf 0f 38 13 12 ; "droid parts" ; string_252 &4a73 0b &4a74 0f 26 02 08 39 f5 0c 6c 00 0b 12 ; "precious metals" ; string_253 &4a7f 08 &4a80 34 04 0c 08 02 00 0b 12 ; "chemicals" ; string_254 &4a88 07 &4a89 02 11 18 4a 00 0b 12 ; "crystals" ; string_255 &4a90 07 &4a91 06 70 28 2a 0e 11 12 ; "generators" ; string_256 &4a98 03 &4a99 16 25 64 ; "wines" ; string_257 &4a9c 05 &4a9d 0b 00 12 28 12 ; "lasers" ; string_258 &4aa2 05 &4aa3 16 5a 0f 2b 12 ; "weapons" ; string_259 &4aa8 06 &4aa9 0c 57 08 02 25 64 ; "medicines" ; string_25a &4aaf 06 &4ab0 14 0d 0a 73 16 0d ; "unknown" ; unused &4ab6 00 00 ; string_25b ; string_25c &4ab8 02 &4ab9 73 48 ; "none" ; string_25d &4abb 05 &4abc 00 15 08 00 0d ; "avian" ; string_260 &4ac1 05 &4ac2 07 14 0c 00 0d ; "human" ; unused # Unused string (no length) &4ac7 90 02 0e 0b 2b 08 00 0b ; " colonial" ; string_25f &4acf 08 &4ad0 26 0f 13 08 0b 08 00 0d ; "reptilian" ; string_25e &4ad8 09 &4ad9 00 0c 0f 07 08 01 08 00 0d ; "amphibian" ; string_261 &4ae2 07 &4ae3 26 4a 11 08 02 6d 03 ; "restricted" ; string_262 &4aea 04 &4aeb 05 00 08 0b ; "fail" ; string_263 &4aef 16 &4af0 b2 06 14 0d 06 04 90 0c 56 13 f5 ae 95 55 00 15 ; "your gunge melts it ,leaving you with the hand " &4b00 a7 a1 b1 9e 07 9f ; string_264 &4b06 09 &4b07 9f f1 12 14 11 0f 20 d7 4f ; "and a surpised droid" ; string_265 &4b10 03 &4b11 06 26 70 ; "green" ; string_266 &4b14 02 &4b15 26 03 ; "red" ; string_267 &4b17 04 &4b18 01 0b 14 04 ; "blue" ; string_268 &4b1c 05 &4b1d 18 56 0b 0e 16 ; "yellow" ; string_269 &4b22 05 &4b23 01 11 0e 16 0d ; "brown" ; string_26a &4b28 05 &4b29 0f 14 11 0f 55 ; "purple" ; string_26b &4b2e 06 &4b2f 0e 11 00 0d 06 04 ; "orange" ; string_26c &4b35 03 &4b36 74 2e 04 ; "white" ; string_26d &4b39 0a &4b3a b1 f1 55 00 b3 2a 13 00 34 57 ; "with a leash attached" ; string_26e &4b44 0b &4b45 b1 f1 e0 12 0f 08 0a 04 90 25 3a ; "with a large spike inside" ; string_26f &4b50 03 &4b51 33 38 0f ; "sharp" ; string_270 &4b54 04 &4b55 c7 0b 25 57 ; "lead lined" ; string_271 &4b59 05 &4b5a 07 5a 15 18 90 ; "heavy " ; string_272 &4b5f 06 &4b60 ae 12 0c 56 0b 12 ; "it smells" ; string_273 &4b66 07 &4b67 02 39 76 28 05 04 2e ; "counterfeit" ; string_274 &4b6e 04 &4b6f 4a 08 62 18 ; "sticky" ; string_275 &4b73 10 &4b74 00 0d 90 00 03 15 00 0d 51 03 90 07 00 0c 0c 28 ; "an advanced hammer" ; string_276 &4b84 03 &4b85 08 11 2b ; "iron" ; string_277 &4b88 16 &4b89 01 14 08 0b 13 90 a5 ce 12 14 11 15 08 15 00 0b ; "built in space survival system" &4b99 90 12 18 4a 04 0c ; string_278 &4b9f 08 &4ba0 0e 03 03 ff 0c 38 0a 57 ; "oddly marked" ; string_103 &4ba8 09 &4ba9 0c 08 ef e8 8b 07 1f 8b 18 ; "might be _hand_y" ; string_279 &4bb2 08 &4bb3 0c 38 0a d7 b1 99 07 04 ; "marked with He" ; string_27a &4bbb 11 &4bbc 14 76 64 6d 03 90 70 28 06 18 90 03 20 0f 28 36 ; "untested energy disperser" &4bcc 11 ; string_27b &4bcd 0b &4bce 01 ae a3 f1 13 14 11 0d 90 23 05 ; "bit of a turn off" ; string_27c &4bd9 0a &4bda 12 14 0f 28 35 17 6d 11 39 12 ; "superdexterous" ; string_27d &4be4 09 &4be5 f1 06 26 aa 13 11 00 62 a8 ; "a great tracker " ; string_27e &4bee 06 &4bef c9 c6 4a 11 2b 06 ; "long but strong" ; unused # Unused string &4bf5 09 ; "fast recovering" &4bf6 05 00 ca 26 02 0e 15 28 27 00 ; room_exit_data ; N S E W NE SW NW SW U D I O &4c00 04 00 02 ; room &01 : 02 &4c03 0c 00 03 01 ; room &02 : 03 01 &4c07 08 00 02 ; room &03 : 02 &4c0a 00 00 ; room &04 : &4c0c 08 00 06 ; room &05 : 06 &4c0f 0c 00 05 07 ; room &06 : 05 07 &4c13 c4 01 06 0b 08 15 ; room &07 : 06 0b 08 15 &4c19 30 00 07 09 ; room &08 : 07 09 &4c1d 40 04 08 0a ; room &09 : 08 0a &4c21 00 08 09 ; room &0a : 09 &4c24 64 00 0c 07 23 ; room &0b : 0c 07 23 &4c29 0c 00 0d 0b ; room &0c : 0d 0b &4c2d 0c 00 0e 0c ; room &0d : 0e 0c &4c31 0c 00 0f 0d ; room &0e : 0f 0d &4c35 0c 00 10 0e ; room &0f : 10 0e &4c39 0d 00 11 12 0f ; room &10 : 11 12 0f &4c3e 02 00 10 ; room &11 : 10 &4c41 1a 00 14 10 13 ; room &12 : 14 10 13 &4c46 80 00 12 ; room &13 : 12 &4c49 01 00 12 ; room &14 : 12 &4c4c 00 03 16 07 ; room &15 : 16 07 &4c50 08 02 1d 15 ; room &16 : 1d 15 &4c54 09 00 1d 1b ; room &17 : 1d 1b &4c58 47 00 1c 20 1b 1f ; room &18 : 1c 20 1b 1f &4c5e 0a 00 1d 1e ; room &19 : 1d 1e &4c62 06 00 1c 1e ; room &1a : 1c 1e &4c66 0c 00 17 18 ; room &1b : 17 18 &4c6a 0b 00 1a 18 1f ; room &1c : 1a 18 1f &4c6f 07 00 19 17 16 ; room &1d : 19 17 16 &4c74 0c 00 19 1a ; room &1e : 19 1a &4c78 24 00 1c 18 ; room &1f : 1c 18 &4c7c 03 00 18 21 ; room &20 : 18 21 &4c80 81 00 20 22 ; room &21 : 20 22 &4c84 10 00 21 ; room &22 : 21 &4c87 b3 00 27 25 29 0b 24 ; room &23 : 27 25 29 0b 24 &4c8e 90 00 23 3f ; room &24 : 23 3f &4c92 01 00 23 ; room &25 : 23 &4c95 00 08 25 ; room &26 : 25 &4c98 0a 00 23 28 ; room &27 : 23 28 &4c9c 04 00 27 ; room &28 : 27 &4c9f 81 00 2b 23 ; room &29 : 2b 23 &4ca3 08 00 29 ; room &2a : 29 # (unused) &4ca6 87 00 2f 29 2c 35 ; room &2b : 2f 29 2c 35 &4cac 0c 00 2d 2b ; room &2c : 2d 2b &4cb0 08 00 2c ; room &2d : 2c &4cb3 00 00 ; room &2e : &4cb5 47 00 32 2b 30 34 ; room &2f : 32 2b 30 34 &4cbb 0c 00 31 2f ; room &30 : 31 2f &4cbf 08 00 30 ; room &31 : 30 &4cc2 02 02 2f 33 ; room &32 : 2f 33 &4cc6 00 01 32 ; room &33 : 32 &4cc9 20 00 2f ; room &34 : 2f &4ccc 10 02 2b 49 ; room &35 : 2b 49 &4cd0 08 01 37 49 ; room &36 : 37 49 &4cd4 8d 00 38 36 3b 3c ; room &37 : 38 36 3b 3c &4cda 02 00 37 ; room &38 : 37 &4cdd 02 00 3a ; room &39 : 3a &4ce0 05 00 39 3b ; room &3a : 39 3b &4ce4 2c 00 37 3a 3c ; room &3b : 37 3a 3c &4ce9 50 02 37 3b 3d ; room &3c : 37 3b 3d &4cee 04 01 3e 3c ; room &3d : 3e 3c &4cf2 08 00 3d ; room &3e : 3d &4cf5 98 00 42 24 41 ; room &3f : 42 24 41 # spacemaze &4cfa 1c 00 44 41 42 ; room &40 : 44 41 42 # spacemaze &4cff d4 00 40 3f 45 44 ; room &41 : 40 3f 45 44 # spacemaze &4d05 06 00 41 3f ; room &42 : 41 3f # spacemaze &4d09 42 00 44 45 ; room &43 : 44 45 # spacemaze &4d0d 91 00 43 41 3f ; room &44 : 43 41 3f # spacemaze &4d12 6a 00 46 3f 43 41 ; room &45 : 46 3f 43 41 # spacemaze &4d18 0f 00 45 47 44 42 ; room &46 : 45 47 44 42 # spacemaze &4d1e a9 00 46 40 44 48 ; room &47 : 46 40 44 48 # spacemaze &4d24 d5 00 4a 40 47 42 3f ; room &48 : 4a 40 47 42 3f # spacemaze &4d2b 00 03 35 36 ; room &49 : 35 36 &4d2f 42 01 48 4c 4b ; room &4a : 48 4c 4b &4d34 00 02 4a ; room &4b : 4a &4d37 28 00 4d 4a ; room &4c : 4d 4a &4d3b 0c 00 4c 4e ; room &4d : 4c 4e &4d3f cc 00 4d 62 55 4f ; room &4e : 4d 62 55 4f &4d45 12 00 50 4e ; room &4f : 50 4e &4d49 03 00 4f 51 ; room &50 : 4f 51 &4d4d a1 00 50 54 52 ; room &51 : 50 54 52 &4d52 30 00 51 53 ; room &52 : 51 53 &4d56 50 00 54 52 ; room &53 : 54 52 &4d5a c0 00 51 53 ; room &54 : 51 53 &4d5e 21 00 56 4e ; room &55 : 56 4e &4d62 03 00 5b 55 ; room &56 : 5b 55 &4d66 01 00 58 ; room &57 : 58 &4d69 0a 00 57 59 ; room &58 : 57 59 &4d6d 0c 00 58 5a ; room &59 : 58 5a &4d71 0c 00 59 5b ; room &5a : 59 5b &4d75 0e 00 56 5a 5c ; room &5b : 56 5a 5c &4d7a 0c 00 5b 5d ; room &5c : 5b 5d &4d7e 0c 00 5c 5e ; room &5d : 5c 5e &4d82 05 00 5f 5d ; room &5e : 5f 5d &4d86 12 00 5e 61 ; room &5f : 5e 61 &4d8a 00 02 5f ; room &60 : 5f &4d8d 80 00 5f ; room &61 : 5f &4d90 0c 00 4e 63 ; room &62 : 4e 63 &4d94 04 00 62 ; room &63 : 62 &4d97 04 00 63 ; room &64 : 63 &4d9a 00 08 64 ; room &65 : 64 &4d9d 00 08 04 ; room &66 : 04 ; game_state ; lever_state # Zero if generator has been switched off &4da0 01 ; unused # Unused; probably was location of monkey &4da1 38 ; ROOM_38 ; "in one of the quarantine cages ,filled with rubbish" ; unused # Unused; probably was location of dog &4da2 39 ; ROOM_39 ; "in the end cage.It is in much the same condition as the others" ; lugobot_room # Location of lugobot (not initial value) &4da3 0b ; ROOM_0b ; "at a junction between a short ,dark passage and a long corridor to the east" ; guardroid_room # Location of guardroid (not initial value) &4da4 5d ; ROOM_5d ; "near the end of the maintenance corridor ,where it widens into a large area to the west" ; aggrodroid_room # Location of aggrodroid (not initial value) &4da5 59 ; ROOM_59 ; "by a series of broken spacecleaner racks ,epitomising the entire spacestation" ; servobot_room # Location of servobot (not initial value) &4da6 1b ; ROOM_1b ; "on a gallery that stretches around a maze of small white passages far below.There are little rails running along the ground" ; lugobot_has_shield # Non-zero if lugobot has static shield &4da7 00 ; trapdoor_state # Non-zero if trapdoor has been opened &4da8 00 ; squeeky_voice_man_state # Turns before man with a squeeky voice kills player &4da9 03 ; robodroid_state # Zero if robodroid has been deactivated &4daa 01 ; exhibition_hall_force_field_state # Non-zero if force field has been collapsed &4dab 00 ; gas_timer # Turns before gas runs out &4dac 00 ; sitting_on_lugobot # Non-zero if player is sitting on lugobot &4dad 00 ; evacuation_timer # Turns before sucked out into space (not initial value) &4dae ff ; berth_number # Berth number entered by player (not initial value) &4daf 06 07 02 03 ; score # Player's score &4db3 00 ; gunman_state # Non-zero if man aiming gun has been killed by dog &4db4 00 ; droid_directions # Directions of guardroid and aggrodroid &4db5 03 ; GUARDROID_MOVING_WEST | AGGRODROID_MOVING_EAST ; safe_gunge_colour # Safe gunge colour &4db6 00 ; berth_entry_code # Entry code corresponding to berth_number &4db7 04 06 01 07 ; computer_state # Non-zero if card inserted or valid code entered &4dbb 00 ; berth_ship_type # Type of ship in berth &4dbc 0e ; berth_pilot_rating # Rating of pilot in berth &4dbd 07 ; berth_cargo_type # Type of cargo in berth &4dbe 07 ; berth_pilot_species # Species of pilot in berth &4dbf 03 ; shauna_berth_number # Berth number containing Shauna &4dc0 05 08 02 00 ; player_berth_number # Berth number of player's ship &4dc4 05 08 02 00 ; initial_game_state ; initial_lever_state # Zero if generator has been switched off &4dc8 01 ; initial_unused # Unused; probably was location of monkey &4dc9 38 ; ROOM_38 : "in one of the quarantine cages ,filled with rubbish" ; initial_unused # Unused; probably was location of dog &4dca 39 ; ROOM_39 : "in the end cage.It is in much the same condition as the others" ; initial_lugobot_room # Location of lugobot &4dcb 09 ; ROOM_09 : "in the departure area with some very old chairs and a waiting taxi droid" ; initial_guardroid_room # Location of guardroid &4dcc 5e ; ROOM_5e : "in the tool storage area.Looted by space pirates ,it is depressingly bare" ; initial_aggrodroid_room # Location of aggrodroid &4dcd 58 ; ROOM_58 : "at the very end of the corridor ,outside a large room to the south" ; initial_servobot_room # Location of servobot &4dce 17 ; ROOM_17 : "on a gallery that stretches around a maze of small white passages far below.There are little rails running along the ground" ; initial_lugobot_has_shield # Non-zero if lugobot has static shield &4dcf 00 ; initial_trapdoor_state # Non-zero if trapdoor has been opened &4dd0 00 ; initial_squeeky_voice_man_state # Turns before man with a squeeky voice kills player &4dd1 03 ; initial_robodroid_state # Zero if robodroid has been deactivated &4dd2 01 ; initial_exhibition_hall_force_field_state # Non-zero if force field has been collapsed &4dd3 00 ; initial_gas_timer # Turns before gas runs out &4dd4 00 ; initial_sitting_on_lugobot # Non-zero if player is sitting on lugobot &4dd5 00 ; initial_evacuation_timer # Turns before sucked out into space &4dd6 06 ; initial_berth_number # Berth number entered by player &4dd7 05 08 02 00 ; initial_score # Player's score &4ddb 00 ; initial_gunman_state # Non-zero if man aiming gun has been killed by dog &4ddc 00 ; initial_droid_directions # Directions of guardroid and aggrodroid &4ddd 03 ; initial_GUARDROID_MOVING_WEST | AGGRODROID_MOVING_EAST ; initial_object_locations &4dde fc ; &00 (OBJECT_SPIKE) : ROOM_IN_HELMET &4ddf c8 ; &01 (OBJECT_SPACE_SUIT) : ROOM_WEARING &4de0 3e ; &02 (OBJECT_HELMET) : ROOM_3e ; "in a vast torture area,sealed off when the police raided it many years ago" &4de1 01 ; &03 (OBJECT_SCRAP) : ROOM_01 ; "in a dark and somewhat messy escape pod at the rear of the ship" &4de2 00 ; &04 (OBJECT_CREDIT) : ROOM_CARRYING &4de3 11 ; &05 (OBJECT_GUNGE) : ROOM_11 ; "in the Biolab ,near a small table that is covered in gunge" &4de4 61 ; &06 (OBJECT_STAMP) : ROOM_61 ; "in the storage area for heavy duty repair tools " &4de5 ff ; &07 (OBJECT_BALL_BEARING) : ROOM_HIDDEN &4de6 03 ; &08 (OBJECT_GYROPAC) : ROOM_03 ; "in a large cargo area that stretches away to the east but is almost empty" &4de7 ff ; &09 (OBJECT_HAND) : ROOM_HIDDEN &4de8 ff ; &0a (OBJECT_GAS_CYLINDER) : ROOM_HIDDEN &4de9 53 ; &0b (OBJECT_LASER_GUN) : ROOM_53 ; "deep within the service tunnel.A small hole in the ground is marked with a skull" &4dea 2e ; &0c (OBJECT_DEACTIVATOR) : ROOM_2e ; "in the liquid, somehow breathing it" &4deb 38 ; &0d (OBJECT_MONKEY) : ROOM_38 ; "in one of the quarantine cages ,filled with rubbish" &4dec 39 ; &0e (OBJECT_DOG) : ROOM_39 ; "in the end cage.It is in much the same condition as the others" &4ded 28 ; &0f (OBJECT_LEASH) : ROOM_28 ; "near a *creature extras* stand in the northwest corner of the hall" &4dee ff ; &10 (OBJECT_SHAUNA) : ROOM_HIDDEN &4def ff ; &11 (OBJECT_ROD) : ROOM_HIDDEN &4df0 33 ; &12 (OBJECT_SPECS) : ROOM_33 ; "in a large ,oblong optothermal research laboratory (2 desks and some charts)" &4df1 14 ; &13 (OBJECT_LETTER) : ROOM_14 ; "in the Physilab ,a room with a large desk that is full of paper" &4df2 ff ; &14 (OBJECT_RECEIPT) : ROOM_HIDDEN &4df3 ff ; &15 (OBJECT_UNUSED) : ROOM_HIDDEN &4df4 22 ; &16 (OBJECT_FOOZBAT) : ROOM_22 ; "in the foozball equipment room" &4df5 ff ; &17 (OBJECT_IDENTIFICATION) : ROOM_HIDDEN &4df6 ff ; &18 (OBJECT_METAL) : ROOM_HIDDEN &4df7 60 ; &19 (OBJECT_CARD) : ROOM_60 ; "at the top of the chute ,surrounded by gratings in the air conditioning system" &4df8 52 ; &1a (OBJECT_SAMPLES) : ROOM_52 ; "at the west entrance of a small tunnel.There are small shelves in the rounded walls" ; unused &4df9 b0 00 00 9c 52 00 ; player_room_in_save &4dff 00 ; object_locations &4e00 fc ; &00 (OBJECT_SPIKE) : ROOM_IN_HELMET &4e01 c8 ; &01 (OBJECT_SPACE_SUIT) : ROOM_WEARING &4e02 3e ; &02 (OBJECT_HELMET) : ROOM_3e ; "in a vast torture area,sealed off when the police raided it many years ago" &4e03 00 ; &03 (OBJECT_SCRAP) : ROOM_CARRYING (not initial value) &4e04 03 ; &04 (OBJECT_CREDIT) : ROOM_03 ; "in a large cargo area that stretches away to the east but is almost empty" (not initial value) &4e05 11 ; &05 (OBJECT_GUNGE) : ROOM_11 ; "in the Biolab ,near a small table that is covered in gunge" &4e06 61 ; &06 (OBJECT_STAMP) : ROOM_61 ; "in the storage area for heavy duty repair tools " &4e07 ff ; &07 (OBJECT_BALL_BEARING) : ROOM_HIDDEN &4e08 c8 ; &08 (OBJECT_GYROPAC) : ROOM_WEARING (not initial value) &4e09 ff ; &09 (OBJECT_HAND) : ROOM_HIDDEN &4e0a ff ; &0a (OBJECT_GAS_CYLINDER) : ROOM_HIDDEN &4e0b 53 ; &0b (OBJECT_LASER_GUN) : ROOM_53 ; "deep within the service tunnel.A small hole in the ground is marked with a skull" &4e0c 2e ; &0c (OBJECT_DEACTIVATOR) : ROOM_2e ; "in the liquid, somehow breathing it" &4e0d 38 ; &0d (OBJECT_MONKEY) : ROOM_38 ; "in one of the quarantine cages ,filled with rubbish" &4e0e 39 ; &0e (OBJECT_DOG) : ROOM_39 ; "in the end cage.It is in much the same condition as the others" &4e0f 28 ; &0f (OBJECT_LEASH) : ROOM_28 ; "near a *creature extras* stand in the northwest corner of the hall" &4e10 ff ; &10 (OBJECT_SHAUNA) : ROOM_HIDDEN &4e11 ff ; &11 (OBJECT_ROD) : ROOM_HIDDEN &4e12 33 ; &12 (OBJECT_SPECS) : ROOM_33 ; "in a large ,oblong optothermal research laboratory (2 desks and some charts)" &4e13 14 ; &13 (OBJECT_LETTER) : ROOM_14 ; "in the Physilab ,a room with a large desk that is full of paper" &4e14 ff ; &14 (OBJECT_RECEIPT) : ROOM_HIDDEN &4e15 ff ; &15 (OBJECT_UNUSED) : ROOM_HIDDEN &4e16 22 ; &16 (OBJECT_FOOZBAT) : ROOM_22 ; "in the foozball equipment room" &4e17 ff ; &17 (OBJECT_IDENTIFICATION) : ROOM_HIDDEN &4e18 ff ; &18 (OBJECT_METAL) : ROOM_HIDDEN &4e19 60 ; &19 (OBJECT_CARD) : ROOM_60 ; "at the top of the chute ,surrounded by gratings in the air conditioning system" &4e1a 52 ; &1a (OBJECT_SAMPLES) : ROOM_52 ; "at the west entrance of a small tunnel.There are small shelves in the rounded walls" ; end_of_game_state ; unused # Source code fragment corresponding to &43a6 - &43a8 &4e1b dc 35 2c 32 33 35 2c 32 32 2c ; ... DATA5,235,22, ... ; process_byte_of_string &4e25 85 70 STA &70 ; byte &4e27 29 80 AND #&80 &4e29 85 71 STA &71 ; flag &4e2b a5 70 LDA &70 ; byte &4e2d 29 7f AND #&7f &4e2f 85 72 STA &72 ; id &4e31 c9 1a CMP #&1a &4e33 90 30 BCC &4e65 ; not_fragment ; is_fragment # &1a - &7f and &9a - &ff are fragments &4e35 a5 72 LDA &72 ; id &4e37 38 SEC &4e38 e9 1a SBC #&1a &4e3a 0a ASL A &4e3b 85 73 STA &73 ; token_address_low &4e3d a9 0b LDA #&0b ; &0b00 = fragment_address_table &4e3f 85 74 STA &74 ; token_address_high &4e41 a0 00 LDY #&00 &4e43 b1 73 LDA (&73),Y ; token_address &4e45 85 8c STA &8c ; fragment_address_low &4e47 c8 INY &4e48 b1 73 LDA (&73),Y ; token_address &4e4a 85 8d STA &8d ; fragment_address_high &4e4c a0 00 LDY #&00 ; add_fragment_loop &4e4e b1 8c LDA (&8c),Y ; fragment_address &4e50 c9 0d CMP #&0d ; CR &4e52 f0 07 BEQ &4e5b ; end_of_fragment &4e54 20 d0 4e JSR &4ed0 ; add_character_to_buffer_with_casing &4e57 c8 INY &4e58 4c 4e 4e JMP &4e4e ; add_fragment_loop ; end_of_fragment &4e5b a5 71 LDA &71 ; token_top_bit &4e5d f0 05 BEQ &4e64 ; skip_adding_space # followed by a space for &9a - &ff &4e5f a9 20 LDA #&20 ; " " &4e61 20 7f 4e JSR &4e7f ; add_character_to_buffer ; skip_adding_space &4e64 60 RTS ; not_fragment &4e65 a5 71 LDA &71 ; flag &4e67 d0 09 BNE &4e72 ; not_letter ; is_letter &4e69 a5 72 LDA &72 ; id &4e6b 18 CLC &4e6c 69 61 ADC #&61 ; "a" # &00 - &19 are letters "a" to "z" &4e6e 20 d0 4e JSR &4ed0 ; add_character_to_buffer_with_casing &4e71 60 RTS ; not_letter &4e72 a5 72 LDA &72 ; id &4e74 c9 0a CMP #&0a &4e76 b0 0e BCS &4e86 ; not_number ; is_number &4e78 18 CLC &4e79 69 30 ADC #&30 ; "0" # &80 - &89 are numbers "0" to "9" &4e7b 20 7f 4e JSR &4e7f ; add_character_to_buffer &4e7e 60 RTS ; add_character_to_buffer &4e7f 9d 80 09 STA &0980,X ; text_buffer &4e82 e8 INX &4e83 86 88 STX &88 ; buffer_length &4e85 60 RTS ; not_number &4e86 a5 72 LDA &72 ; id &4e88 c9 11 CMP #&11 ; TEXT_COLON - &80 &4e8a b0 26 BCS &4eb2 ; is_uppercase_or_punctuation &4e8c c9 0c CMP #&0c ; TEXT_FANCY_FONT - &80 &4e8e b0 07 BCS &4e97 ; not_font_change ; is_font_change # &8a toggles inverted font, &8b toggles underlining &4e90 38 SEC &4e91 e9 09 SBC #&09 # Add &01 (FONT_INVERT) for &8a &4e93 20 7f 4e JSR &4e7f ; add_character_to_buffer # &02 (FONT_UNDERLINE) for &8b &4e96 60 RTS ; not_font_change &4e97 c9 0d CMP #&0d ; TEXT_UPPERCASE_WORD - &80 # &8d toggles uppercasing &4e99 d0 07 BNE &4ea2 ; not_uppercasing ; is_uppercasing &4e9b a5 75 LDA &75 ; string_flags &4e9d 49 02 EOR #&02 ; STRING_UPPERCASE_WORD &4e9f 85 75 STA &75 ; string_flags &4ea1 60 RTS ; not_uppercasing &4ea2 c9 10 CMP #&10 ; TEXT_SPACE - &80 # &90 adds space &4ea4 d0 06 BNE &4eac ; is_fancy_font &4ea6 a9 20 LDA #&20 ; " " &4ea8 20 7f 4e JSR &4e7f ; add_character_to_buffer &4eab 60 RTS ; is_fancy_font &4eac a9 08 LDA #&08 # &8c toggles fancy font (FONT_FANCY) &4eae 20 7f 4e JSR &4e7f ; add_character_to_buffer &4eb1 60 RTS ; is_uppercase_or_punctuation &4eb2 a5 72 LDA &72 ; id &4eb4 c9 19 CMP #&19 ; TEXT_UPPERCASE - &80 # &99 makes next word start with uppercase letter &4eb6 f0 11 BEQ &4ec9 ; is_uppercase ; is_punctuation &4eb8 a8 TAY &4eb9 b9 6f 0a LDA &0a6f,Y ; punctuation_table - &11 &4ebc c9 2e CMP #&2e ; "." # &91 to &98 add punctuation &4ebe f0 06 BEQ &4ec6 ; add_character_and_uppercase &4ec0 20 7f 4e JSR &4e7f ; add_character_to_buffer &4ec3 60 RTS ; unused &4ec4 60 RTS ; unused &4ec5 60 RTS ; add_character_and_invert &4ec6 20 7f 4e JSR &4e7f ; add_character_to_buffer ; is_uppercase &4ec9 a5 75 LDA &75 ; string_flags &4ecb 09 01 ORA #&01 ; STRING_UPPERCASE_CHARACTER # Set next character to be uppercase &4ecd 85 75 STA &75 ; string_flags &4ecf 60 RTS ; add_character_to_buffer_with_casing &4ed0 85 76 STA &76 ; character &4ed2 a5 75 LDA &75 ; string_flags &4ed4 f0 0d BEQ &4ee3 ; skip_uppercase &4ed6 a5 76 LDA &76 ; character &4ed8 38 SEC &4ed9 e9 20 SBC #&20 # Convert to uppercase &4edb 85 76 STA &76 ; character &4edd a5 75 LDA &75 ; string_flags &4edf 29 fe AND #&fe ; !STRING_UPPERCASE_CHARACTER &4ee1 85 75 STA &75 ; string_flags ; skip_uppercase &4ee3 a5 76 LDA &76 ; character &4ee5 20 7f 4e JSR &4e7f ; add_character_to_buffer &4ee8 60 RTS ; write_string &4ee9 a5 80 LDA &80 ; string_address_low &4eeb 0a ASL A &4eec 85 80 STA &80 ; string_address_low &4eee a5 81 LDA &81 ; string_address_high &4ef0 a2 00 LDX #&00 &4ef2 a0 00 LDY #&00 &4ef4 b1 80 LDA (&80),Y ; string_address &4ef6 85 8e STA &8e ; text_address_low &4ef8 c8 INY &4ef9 b1 80 LDA (&80),Y ; string_address &4efb 85 8f STA &8f ; text_address_high &4efd 88 DEY ; write_string_from_variables &4efe b1 8e LDA (&8e),Y ; text_address &4f00 85 8b STA &8b ; length ; write_string_loop &4f02 c8 INY &4f03 b1 8e LDA (&8e),Y ; text_address &4f05 84 33 STY &33 ; tmp_y &4f07 20 25 4e JSR &4e25 ; process_byte_of_string &4f0a a4 33 LDY &33 ; tmp_y &4f0c c6 8b DEC &8b ; length &4f0e d0 f2 BNE &4f02 ; write_string_loop &4f10 a9 0d LDA #&0d ; CR &4f12 9d 80 09 STA &0980,X ; text_buffer &4f15 25 75 AND &75 ; string_flags &4f17 85 75 STA &75 ; string_flags &4f19 20 78 54 JSR &5478 ; print_text_buffer &4f1c 60 RTS ; write_raw_string_from_table_zero &4f1d 85 80 STA &80 ; string_address_low &4f1f a9 00 LDA #&00 # Unnecessary code &4f21 ea NOP &4f22 ea NOP &4f23 a9 64 LDA #&64 ; &6400 = string_addresses_table_zero &4f25 85 81 STA &81 ; string_address_high &4f27 20 e9 4e JSR &4ee9 ; write_string &4f2a 60 RTS ; write_raw_string_from_table_one &4f2b 85 80 STA &80 ; string_address_low &4f2d a9 65 LDA #&65 ; &6500 = string_addresses_table_one &4f2f 85 81 STA &81 ; string_address_high &4f31 a9 01 LDA #&01 ; STRING_UPPERCASE_CHARACTER # Uppercase first word of string &4f33 85 75 STA &75 ; string_flags &4f35 20 e9 4e JSR &4ee9 ; write_string &4f38 60 RTS ; write_raw_string_from_table_two &4f39 85 80 STA &80 ; string_address_low &4f3b a9 66 LDA #&66 ; &6600 = string_addresses_table_two &4f3d 85 81 STA &81 ; string_address_high &4f3f a9 00 LDA #&00 # Unnecessary code &4f41 ea NOP &4f42 ea NOP &4f43 20 e9 4e JSR &4ee9 ; write_string &4f46 60 RTS ; unused &4f47 00 ; string_026 &4f48 58 &4f49 a5 9e 92 01 28 af 02 2b 13 11 0e 0b 92 90 51 76 ; "in the 'berth control' centre ,dominated by a large computer &4f59 a6 95 03 0e 0c 25 2a d7 01 18 90 f1 e0 02 0e 0c ; console comprising screens ,keyboards and a small slot marked &4f69 0f 14 13 a8 02 2b 12 0e d5 02 0e 0c 0f 11 20 a7 ; 'security clearance'" &4f79 12 02 26 70 f5 95 0a 58 01 0e 38 03 f5 9f f1 b0 &4f89 12 0b 0e 13 90 0c 38 0a d7 92 36 02 14 11 2e 18 &4f99 90 02 55 38 00 0d 51 92 ; consider_disambiguating_droids &4fa1 a0 04 LDY #&04 &4fa3 b1 80 LDA (&80),Y ; vocabulary_address # Get token for noun &4fa5 c9 96 CMP #&96 ; NOUN_DROID &4fa7 d0 0e BNE &4fb7 ; not_droid &4fa9 a5 78 LDA &78 ; player_room &4fab 49 5b EOR #&5b ; ROOM_5b ; "at a T junction that connects a very long maintenance corridor with a small corridor to the south" &4fad f0 08 BEQ &4fb7 ; not_droid # Can't disambiguate if ROOM_5b &4faf a5 78 LDA &78 ; player_room &4fb1 29 0c AND #&0c # NOUN_AGGRODROID if ROOM_58, ROOM_59 or ROOM_5a &4fb3 4a LSR A # NOUN_GUARDROID if ROOM_5c, ROOM_5d or ROOM_5e &4fb4 4a LSR A &4fb5 49 69 EOR #&69 ; NOUN_ROBODROID ; not_droid &4fb7 4c 37 23 JMP &2337 ; process_noun ; unused &4fba 60 RTS ; event_handler &4fbb 78 SEI &4fbc 48 PHA &4fbd 8a TXA &4fbe 48 PHA &4fbf 98 TYA &4fc0 48 PHA &4fc1 4c e0 4f JMP &4fe0 ; change_to_mode_5 ; unused &4fc4 01 ; set_colour_1 &4fc5 aa TAX # Unnecessary code &4fc6 ea NOP &4fc7 ea NOP &4fc8 ea NOP &4fc9 49 07 EOR #&07 &4fcb 85 93 STA &93 ; colour &4fcd a2 00 LDX #&00 ; set_colour_1_loop &4fcf bd 12 09 LDA &0912,X ; top_ula_values &4fd2 29 f0 AND #&f0 &4fd4 05 93 ORA &93 ; colour &4fd6 9d 12 09 STA &0912,X ; top_ula_values &4fd9 e8 INX &4fda e0 04 CPX #&04 &4fdc d0 f1 BNE &4fcf ; set_colour_1_loop &4fde 60 RTS ; unused &4fdf f1 ; change_to_mode_5 &4fe0 a9 9a LDA #&9a ; Write to Video ULA control register and RAM copy &4fe2 a2 c4 LDX #&c4 # Use MODE 5 &4fe4 20 f4 ff JSR &fff4 ; OSBYTE &4fe7 a9 03 LDA #&03 &4fe9 8d 60 03 STA &0360 ; os_colours_available &4fec 8d 61 03 STA &0361 ; os_pixels_per_byte &4fef a9 88 LDA #&88 &4ff1 8d 62 03 STA &0362 ; os_left_colour_mask &4ff4 a9 01 LDA #&01 &4ff6 8d 70 03 STA &0370 ; os_palette + 1 &4ff9 a9 11 LDA #&11 &4ffb 8d 63 03 STA &0363 ; os_right_colour_mask &4ffe a9 10 LDA #&10 &5000 8d 4f 03 STA &034f ; os_bytes_per_character &5003 a9 05 LDA #&05 &5005 8d 55 03 STA &0355 ; os_mode &5008 a0 00 LDY #&00 ; write_top_ula_values_loop &500a b9 12 09 LDA &0912,Y ; top_ula_values &500d 8d 21 fe STA &fe21 ; video ULA palette register # Set colours 1 and 2 &5010 c8 INY &5011 c0 08 CPY #&08 &5013 d0 f5 BNE &500a ; write_top_ula_values_loop &5015 a9 df LDA #&df # Set User VIA timer 2 to one-shot mode &5017 2d 6b fe AND &fe6b ; User VIA auxiliary control register &501a 8d 6b fe STA &fe6b ; User VIA auxiliary control register &501d a9 a0 LDA #&a0 # Enable interrupts for User VIA timer 2 &501f 8d 6e fe STA &fe6e ; User VIA interrupt enable register &5022 a9 46 LDA #&46 &5024 8d 68 fe STA &fe68 ; User VIA timer 2 counter LSB &5027 a9 23 LDA #&23 &5029 8d 69 fe STA &fe69 ; User VIA timer 2 counter MSB &502c 68 PLA &502d a8 TAY &502e 68 PLA &502f aa TAX &5030 68 PLA &5031 6c 95 00 JMP (&0095) ; previous_event_vector_low ; irq2_handler &5034 78 SEI &5035 48 PHA &5036 8a TXA &5037 48 PHA &5038 98 TYA &5039 48 PHA &503a ad 6d fe LDA &fe6d ; User VIA interrupt flag register &503d 29 20 AND #&20 &503f f0 29 BEQ &506a ; disable_interrupts_and_leave # Is this a timer 2 interrupt? ; change_to_mode_4 &5041 a0 00 LDY #&00 ; write_bottom_ula_values_loop &5043 b9 0a 09 LDA &090a,Y ; bottom_ula_values &5046 8d 21 fe STA &fe21 ; video ULA palette register # Set colours 0 and 1 &5049 c8 INY &504a c0 08 CPY #&08 &504c d0 f5 BNE &5043 ; write_bottom_ula_values_loop &504e a9 01 LDA #&01 &5050 8d 60 03 STA &0360 ; os_colours_available &5053 8d 63 03 STA &0363 ; os_right_colour_mask &5056 a9 80 LDA #&80 &5058 8d 62 03 STA &0362 ; os_left_colour_mask &505b 8d 61 03 STA &0361 ; os_pixels_per_byte &505e a9 04 LDA #&04 &5060 8d 55 03 STA &0355 ; os_mode &5063 a9 9a LDA #&9a ; Write to Video ULA control register and RAM copy &5065 a2 88 LDX #&88 # Use MODE 4 &5067 20 f4 ff JSR &fff4 ; OSBYTE ; disable_interrupts_and_leave &506a a9 20 LDA #&20 # Disable interrupts for User VIA timer 2 &506c 8d 6e fe STA &fe6e ; User VIA interrupt enable register &506f 68 PLA &5070 a8 TAY &5071 68 PLA &5072 aa TAX &5073 68 PLA &5074 58 CLI &5075 6c 97 00 JMP (&0097) ; previous_irq2_vector ; write_character &5078 a5 8e LDA &8e ; character &507a c9 09 CMP #&09 &507c b0 05 BCS &5083 ; is_character &507e 45 75 EOR &75 ; font_flags &5080 85 75 STA &75 ; font_flags &5082 60 RTS ; is_character &5083 29 e0 AND #&e0 # font_address = &bf00 + (character * 8) &5085 4a LSR A &5086 4a LSR A &5087 4a LSR A &5088 4a LSR A &5089 4a LSR A &508a 18 CLC &508b 69 bf ADC #&bf &508d 85 81 STA &81 ; font_address_high &508f a5 8e LDA &8e ; character &5091 29 1f AND #&1f &5093 0a ASL A &5094 0a ASL A &5095 0a ASL A &5096 85 80 STA &80 ; font_address_low # i.e. use os font data at &c000 &5098 a0 00 LDY #&00 &509a a5 75 LDA &75 ; font_flags &509c 29 01 AND #&01 ; FONT_INVERT &509e 38 SEC &509f e9 01 SBC #&01 &50a1 49 ff EOR #&ff &50a3 85 82 STA &82 ; font_inversion &50a5 a5 75 LDA &75 ; font_flags &50a7 29 04 AND #&04 ; FONT_COLOUR &50a9 d0 4c BNE &50f7 ; write_colour_character ; write_character_loop &50ab b1 80 LDA (&80),Y ; font_address &50ad 85 85 STA &85 ; font_byte &50af a5 75 LDA &75 ; font_flags &50b1 29 08 AND #&08 ; FONT_FANCY &50b3 f0 0b BEQ &50c0 ; skip_bold_row &50b5 c0 03 CPY #&03 &50b7 90 07 BCC &50c0 ; skip_bold_row &50b9 a5 85 LDA &85 ; font_byte &50bb 4a LSR A &50bc 05 85 ORA &85 ; font_byte &50be 85 85 STA &85 ; font_byte ; skip_bold_row &50c0 a5 85 LDA &85 ; font_byte &50c2 45 82 EOR &82 ; font_inversion &50c4 91 7e STA (&7e),Y ; text_screen_address &50c6 c8 INY &50c7 c0 08 CPY #&08 &50c9 d0 e0 BNE &50ab ; write_character_loop &50cb a5 75 LDA &75 ; font_flags &50cd 29 02 AND #&02 ; FONT_UNDERLINE &50cf f0 06 BEQ &50d7 ; skip_underline &50d1 a0 07 LDY #&07 &50d3 a9 ff LDA #&ff &50d5 91 7e STA (&7e),Y ; text_screen_address ; skip_underline &50d7 a5 7e LDA &7e ; text_screen_address_low &50d9 18 CLC &50da 69 08 ADC #&08 # Move right eight pixels (one character) &50dc 85 7e STA &7e ; text_screen_address_low &50de a5 7f LDA &7f ; text_screen_address_high &50e0 69 00 ADC #&00 &50e2 85 7f STA &7f ; text_screen_address_high &50e4 a5 7f LDA &7f ; text_screen_address_high &50e6 c9 80 CMP #&80 &50e8 f0 01 BEQ &50eb ; needs_scrolling &50ea 60 RTS ; needs_scolling &50eb 20 44 51 JSR &5144 ; scroll_text_window &50ee a9 00 LDA #&00 &50f0 85 7e STA &7e ; text_screen_address_low &50f2 a9 7f LDA #&7f &50f4 85 7f STA &7f ; text_screen_address_high &50f6 60 RTS ; write_colour_character ; write_left_nibble_loop &50f7 b1 80 LDA (&80),Y ; font_address &50f9 29 f0 AND #&f0 &50fb 85 84 STA &84 ; font_high_nibble &50fd 4a LSR A &50fe 4a LSR A &50ff 4a LSR A &5100 4a LSR A &5101 85 83 STA &83 ; font_high_nibble_rotated &5103 b1 5e LDA (&5e),Y ; text_screen_address_low &5105 05 83 ORA &83 ; font_high_nibble &5107 05 84 ORA &84 ; font_high_nibble_rotated &5109 91 5e STA (&5e),Y ; text_screen_address_low &510b c8 INY &510c c0 08 CPY #&08 &510e d0 e7 BNE &50f7 ; write_left_nibble_loop &5110 a5 80 LDA &80 ; font_address_low &5112 38 SEC &5113 e9 08 SBC #&08 &5115 85 80 STA &80 ; font_address_low &5117 a5 81 LDA &81 ; font_address_high &5119 e9 00 SBC #&00 &511b 85 81 STA &81 ; font_address_high ; write_right_nibble_loop &511d b1 80 LDA (&80),Y ; font_address &511f 29 0f AND #&0f &5121 85 84 STA &84 ; font_low_nibble &5123 0a ASL A &5124 0a ASL A &5125 0a ASL A &5126 0a ASL A &5127 85 83 STA &83 ; font_low_nibble_rotated &5129 b1 5e LDA (&5e),Y ; text_screen_address_low &512b 05 83 ORA &83 ; font_low_nibble_rotated &512d 05 84 ORA &84 ; font_low_nibble &512f 91 5e STA (&5e),Y ; text_screen_address_low &5131 c8 INY &5132 c0 10 CPY #&10 &5134 d0 e7 BNE &511d ; write_right_nibble_loop &5136 a5 5e LDA &5e ; text_screen_address_low &5138 18 CLC &5139 69 10 ADC #&10 # Move right eight pixels (one character) &513b 85 5e STA &5e ; text_screen_address_low &513d a5 5f LDA &5f ; text_screen_address_high &513f 69 00 ADC #&00 &5141 85 5f STA &5f ; text_screen_address_high &5143 60 RTS ; scroll_text_window &5144 a9 00 LDA #&00 &5146 85 80 STA &80 ; target_address_low &5148 85 82 STA &82 ; source_address_low &514a a9 74 LDA #&74 ; &7400 = text_screen_memory + &100 &514c 85 81 STA &81 ; target_address_high &514e a9 75 LDA #&75 ; &7500 = text_screen_memory + &200 &5150 85 83 STA &83 ; source_address_high &5152 a0 00 LDY #&00 ; scroll_text_window_loop &5154 b1 82 LDA (&82),Y ; source_address # Move &7500 - &7fff to &7400 - &7eff &5156 91 80 STA (&80),Y ; target_address &5158 e6 80 INC &80 ; target_address_low &515a d0 02 BNE &515e ; skip_page_target &515c e6 81 INC &81 ; target_address_high ; skip_page_target &515e e6 82 INC &82 ; source_address_low &5160 d0 f2 BNE &5154 ; scroll_text_window_loop &5162 e6 83 INC &83 ; source_address_high &5164 a5 83 LDA &83 ; source_address_high &5166 c9 80 CMP #&80 &5168 d0 ea BNE &5154 ; scroll_text_window_loop &516a a0 00 LDY #&00 &516c a9 00 LDA #&00 ; wipe_last_row_loop &516e 99 00 7f STA &7f00,Y # Wipe &7f00 - &7fff (last row of text) &5171 c8 INY &5172 d0 fa BNE &516e ; wipe_last_row_loop &5174 60 RTS ; write_spaces_until_start_of_line &5175 a9 20 LDA #&20 ; " " &5177 85 8e STA &8e ; character ; write_spaces_until_start_of_line_loop &5179 20 96 51 JSR &5196 ; check_for_start_of_line # Returns non-zero at start of line &517c 8a TXA &517d f0 01 BEQ &5180 ; not_start_of_line &517f 60 RTS ; not_start_of_line &5180 20 bf 23 JSR &23bf ; write_character_with_nops &5183 4c 79 51 JMP &5179 ; write_spaces_until_start_of_line_loop ; write_blank_line &5186 20 75 51 JSR &5175 ; write_spaces_until_start_of_line &5189 a2 20 LDX #&20 ; write_single_space &518b a9 20 LDA #&20 ; " " ; write_single_character &518d 85 8e STA &8e ; character ; write_blank_line_loop &518f 20 78 50 JSR &5078 ; write_character &5192 ca DEX &5193 d0 fa BNE &518f ; write_blank_line &5195 60 RTS ; check_for_start_of_line &5196 a2 00 LDX #&00 &5198 a0 00 LDY #&00 ; check_loop &519a b9 22 09 LDA &0922,Y ; row_screen_addresses &519d c5 7e CMP &7e ; text_screen_address_low &519f d0 0a BNE &51ab ; check_next_row &51a1 b9 23 09 LDA &0923,Y ; row_screen_addresses + 1 &51a4 c5 7f CMP &7f ; text_screen_address_high &51a6 d0 03 BNE &51ab ; check_next_row &51a8 a2 01 LDX #&01 # Leave with non-zero to indicate start of line &51aa 60 RTS ; check_next_row &51ab c8 INY &51ac c8 INY &51ad c0 18 CPY #&18 &51af d0 e9 BNE &519a ; check_loop &51b1 60 RTS # Leave with zero if not at start of line ; copy_area_from_variables &51b2 a5 88 LDA &88 ; copy_flags &51b4 29 01 AND #&01 &51b6 f0 1d BEQ &51d5 ; skip_mirror_shift &51b8 a5 8f LDA &8f ; copy_width &51ba 0a ASL A &51bb 0a ASL A &51bc 0a ASL A &51bd 18 CLC &51be 65 7c ADC &7c ; copy_source_address_low &51c0 85 7c STA &7c ; copy_source_address_low &51c2 a5 7d LDA &7d ; copy_source_address_high &51c4 69 00 ADC #&00 &51c6 85 7d STA &7d ; copy_source_address_high &51c8 38 SEC &51c9 a5 7c LDA &7c ; copy_source_address_low &51cb e9 08 SBC #&08 &51cd 85 7c STA &7c ; copy_source_address_low &51cf a5 7d LDA &7d ; copy_source_address_high &51d1 e9 00 SBC #&00 &51d3 85 7d STA &7d ; copy_source_address_high ; skip_mirror_shift &51d5 a6 89 LDX &89 ; copy_height ; copy_area_loop &51d7 20 e2 51 JSR &51e2 ; copy_group &51da e6 8d INC &8d ; copy_target_address_high &51dc e6 7d INC &7d ; copy_source_address_high &51de ca DEX &51df d0 f6 BNE &51d7 ; copy_area_loop &51e1 60 RTS ; copy_group &51e2 a5 8c LDA &8c ; copy_target_address_low &51e4 85 80 STA &80 ; target_address_low &51e6 a5 8d LDA &8d ; copy_target_address_high &51e8 85 81 STA &81 ; target_address_high &51ea a5 7d LDA &7d ; copy_source_address_high &51ec 85 7b STA &7b ; source_address_high &51ee a5 7c LDA &7c ; copy_source_address_low &51f0 85 7a STA &7a ; source_address_low &51f2 a5 8f LDA &8f ; copy_width &51f4 85 8b STA &8b ; width ; copy_group_loop &51f6 a0 00 LDY #&00 ; copy_group_byte_loop &51f8 b1 7a LDA (&7a),Y ; source_address &51fa 20 30 52 JSR &5230 ; transform_pixel_value &51fd 91 80 STA (&80),Y ; target_address &51ff c8 INY &5200 c0 08 CPY #&08 &5202 d0 f4 BNE &51f8 ; copy_group_byte_loop &5204 a5 7a LDA &7a ; source_address_low &5206 38 SEC &5207 e9 08 SBC #&08 # Move left four pixels &5209 85 7a STA &7a ; source_address_low &520b a5 7b LDA &7b ; source_address_high &520d e9 00 SBC #&00 &520f 85 7b STA &7b ; source_address_high &5211 a5 88 LDA &88 ; copy_flags &5213 29 01 AND #&01 &5215 d0 0d BNE &5224 ; is_mirrored ; is_copy &5217 a5 7a LDA &7a ; source_address_low &5219 18 CLC &521a 69 10 ADC #&10 # Move right eight pixels (i.e. move right four pixels) &521c 85 7a STA &7a ; source_address_low &521e a5 7b LDA &7b ; source_address_high &5220 69 00 ADC #&00 &5222 85 7b STA &7b ; source_address_high ; is_mirror &5224 a5 80 LDA &80 ; target_address_low &5226 18 CLC &5227 69 08 ADC #&08 &5229 85 80 STA &80 ; target_address_low &522b c6 8b DEC &8b ; width &522d d0 c7 BNE &51f6 ; copy_group_loop &522f 60 RTS ; transform_pixel_value &5230 85 8e STA &8e ; value &5232 a5 88 LDA &88 ; copy_flags &5234 29 01 AND #&01 &5236 f0 25 BEQ &525d ; leave_with_value ; mirror_pixel_value &5238 a5 8e LDA &8e ; value # Swap first and fourth pixels &523a 29 11 AND #&11 ; 0003 &523c 0a ASL A &523d 0a ASL A &523e 0a ASL A &523f 85 8a STA &8a ; tmp &5241 a5 8e LDA &8e ; value &5243 29 88 AND #&88 ; 3000 &5245 4a LSR A &5246 4a LSR A &5247 4a LSR A &5248 45 8a EOR &8a ; tmp &524a 85 8a STA &8a ; tmp &524c a5 8e LDA &8e ; value # Swap second and third pixels &524e 29 44 AND #&44 ; 0300 &5250 4a LSR A &5251 45 8a EOR &8a ; tmp &5253 85 8a STA &8a ; tmp &5255 a5 8e LDA &8e ; value &5257 29 22 AND #&22 ; 0030 &5259 0a ASL A &525a 45 8a EOR &8a ; tmp &525c 60 RTS ; leave_with_value &525d a5 8e LDA &8e ; leave_with_value &525f 60 RTS ; copy_area # Four bytes of data per area to copy: &5260 a5 89 LDA &89 ; copy_data_second_byte &5262 29 0f AND #&0f # 84218... ....8421 ........ ........ source address &5264 18 CLC &5265 69 68 ADC #&68 ; &6800 = graphics_screen_memory &5267 85 7d STA &7d ; copy_source_address_high &5269 a5 88 LDA &88 ; copy_data_first_byte &526b 29 f8 AND #&f8 &526d 85 7c STA &7c ; copy_source_address_low &526f a5 8b LDA &8b ; copy_data_fourth_byte &5271 29 0f AND #&0f # ........ ........ 84218421 ....8421 target address &5273 18 CLC &5274 69 68 ADC #&68 ; &6800 = graphics_screen_memory &5276 85 8d STA &8d ; copy_target_address_high &5278 a5 8a LDA &8a ; copy_data_third_byte &527a 85 8c STA &8c ; copy_target_address_low &527c a5 88 LDA &88 ; copy_data_first_byte &527e 29 01 AND #&01 # .......1 ........ ........ ........ mirror if set &5280 85 88 STA &88 ; copy_flags &5282 a5 89 LDA &89 ; copy_data_second_byte &5284 29 f0 AND #&f0 # ........ ........ 8421.... ........ height &5286 4a LSR A &5287 4a LSR A &5288 4a LSR A &5289 4a LSR A &528a 85 89 STA &89 ; copy_height &528c a5 8b LDA &8b ; copy_data_fourth_byte &528e 29 f0 AND #&f0 # ........ ........ ........ 8421.... width &5290 4a LSR A &5291 4a LSR A &5292 4a LSR A &5293 4a LSR A &5294 85 8f STA &8f ; copy_width &5296 e6 8f INC &8f ; copy_width &5298 20 b2 51 JSR &51b2 ; copy_area_from_variables &529b 60 RTS ; get_input &529c a9 08 LDA #&08 ; FONT_FANCY &529e 85 75 STA &75 ; font_flags &52a0 a9 00 LDA #&00 &52a2 85 8f STA &8f ; input_length &52a4 20 ad 23 JSR &23ad ; write_prompt ; wait_for_keypress &52a7 a9 81 LDA #&81 ; Read key with time limit &52a9 a2 ff LDX #&ff &52ab a0 7f LDY #&7f &52ad 20 f4 ff JSR &fff4 ; OSBYTE # Returns Y = 255 if timed out, or Y = 0, X = character &52b0 b0 f5 BCS &52a7 ; wait_for_keypress &52b2 8a TXA &52b3 a8 TAY &52b4 c0 0d CPY #&0d ; CR &52b6 f0 36 BEQ &52ee ; is_return &52b8 c0 20 CPY #&20 ; " " &52ba 90 eb BCC &52a7 ; wait_for_keypress &52bc c0 80 CPY #&80 ; DELETE + 1 &52be b0 e7 BCS &52a7 ; wait_for_keypress &52c0 c0 7f CPY #&7f ; DELETE &52c2 f0 38 BEQ &52fc ; is_delete &52c4 a6 8f LDX &8f ; input_length &52c6 e0 1d CPX #&1d &52c8 d0 08 BNE &52d2 ; is_valid_key &52ca a9 07 LDA #&07 ; BELL &52cc 20 ee ff JSR &ffee ; OSWRCH # Unnecessary code; BELL is suppressed at &468b &52cf 4c a7 52 JMP &52a7 ; wait_for_keypress ; is_valid_key &52d2 98 TYA &52d3 85 85 STA &85 ; key &52d5 c0 41 CPY #&41 ; "A" &52d7 90 06 BCC &52df ; skip_uppercasing &52d9 a5 85 LDA &85 ; key &52db 29 df AND #&df # Make uppercase for parsing &52dd 85 85 STA &85 ; key ; skip_uppercasing &52df a5 85 LDA &85 ; key &52e1 9d e0 07 STA &07e0,X ; input_buffer &52e4 84 8e STY &8e ; character &52e6 20 78 50 JSR &5078 ; write_character &52e9 e6 8f INC &8f ; input_length &52eb 4c a7 52 JMP &52a7 ; wait_for_keypress ; is_return &52ee a6 8f LDX &8f ; input_length &52f0 98 TYA &52f1 9d e0 07 STA &07e0,X ; input_buffer &52f4 20 75 51 JSR &5175 ; write_spaces_until_start_of_line &52f7 a9 00 LDA #&00 &52f9 85 75 STA &75 ; font_flags &52fb 60 RTS ; is_delete &52fc a5 8f LDA &8f ; input_length &52fe f0 a7 BEQ &52a7 ; wait_for_keypress &5300 c6 8f DEC &8f ; input_length &5302 a5 7e LDA &7e ; text_screen_address_low &5304 38 SEC &5305 e9 08 SBC #&08 # Move left eight pixels (one character) &5307 85 7e STA &7e ; text_screen_address_low &5309 a5 7f LDA &7f ; text_screen_address_high &530b e9 00 SBC #&00 &530d 85 7f STA &7f ; text_screen_address_high &530f a9 20 LDA #&20 ; " " &5311 85 8e STA &8e ; character &5313 20 78 50 JSR &5078 ; write_character &5316 a5 7e LDA &7e ; text_screen_address_low &5318 38 SEC &5319 e9 08 SBC #&08 # Move left eight pixels (one character) &531b 85 7e STA &7e ; text_screen_address_low &531d a5 7f LDA &7f ; text_screen_address_high &531f e9 00 SBC #&00 &5321 85 7f STA &7f ; text_screen_address_high &5323 4c a7 52 JMP &52a7 ; wait_for_keypress ; leave &5326 60 RTS ; fill_line &5327 a5 81 LDA &81 ; fill_screen_address_high &5329 c9 68 CMP #&68 ; &6800 = graphics_screen_memory &532b 90 f9 BCC &5326 ; leave # Leave if above &532d c9 73 CMP #&73 ; &7300 = text_screen_memory &532f b0 f5 BCS &5326 ; leave # or below graphics area &5331 a5 8e LDA &8e ; fill_row &5333 29 07 AND #&07 &5335 a8 TAY &5336 b1 89 LDA (&89),Y ; fill_pattern_address_low &5338 85 8f STA &8f ; pattern_pixel_values &533a a5 8e LDA &8e ; fill_row &533c 85 80 STA &80 ; fill_screen_address_low &533e a0 00 LDY #&00 # Set to zero to indicate edge wasn't filled &5340 84 8b STY &8b ; fill_edge_flag &5342 b1 80 LDA (&80),Y ; fill_screen_address &5344 05 88 ORA &88 ; fill_edge_pixels &5346 85 88 STA &88 ; fill_edge_pixels &5348 a2 00 LDX #&00 ; fill_start_of_line_loop &534a bd 1a 09 LDA &091a,X ; colour_3_pixel_values &534d 31 80 AND (&80),Y ; fill_screen_address &534f d0 12 BNE &5363 ; consider_next_pixel &5351 bd 1a 09 LDA &091a,X ; colour_3_pixel_values &5354 25 88 AND &88 ; fill_edge_pixels &5356 d0 0b BNE &5363 ; consider_next_pixel &5358 e6 8b INC &8b ; fill_edge_flag # Set to non-zero to indicate edge was filled &535a a5 8f LDA &8f ; pattern_pixel_values &535c 3d 1a 09 AND &091a,X ; colour_3_pixel_values &535f 51 80 EOR (&80),Y ; fill_screen_address &5361 91 80 STA (&80),Y ; fill_screen_address ; consider_next_pixel &5363 e8 INX &5364 e0 04 CPX #&04 &5366 d0 e2 BNE &534a ; fill_start_of_line_loop &5368 a5 89 LDA &89 ; fill_pattern_address_low &536a f0 6c BEQ &53d8 ; leave &536c a5 88 LDA &88 ; fill_edge_pixels &536e 29 11 AND #&11 &5370 d0 2f BNE &53a1 ; fill_line_to_left &5372 a0 00 LDY #&00 ; fill_line_to_right_loop &5374 a5 80 LDA &80 ; fill_screen_address_low &5376 18 CLC &5377 69 08 ADC #&08 # Move right four pixels &5379 85 80 STA &80 ; fill_screen_address_low &537b c9 08 CMP #&08 &537d 90 22 BCC &53a1 ; fill_line_to_left # Stop filling right at right edge of screen &537f b1 80 LDA (&80),Y ; fill_screen_address &5381 d0 07 BNE &538a ; fill_right_edge &5383 a5 8f LDA &8f ; pattern_pixel_values &5385 91 80 STA (&80),Y ; fill_screen_address &5387 4c 74 53 JMP &5374 ; fill_line_to_right_loop ; fill_right_edge &538a a2 00 LDX #&00 ; fill_right_edge_loop &538c bd 1a 09 LDA &091a,X ; colour_3_pixel_values &538f 31 80 AND (&80),Y ; fill_screen_address &5391 d0 0e BNE &53a1 ; fill_line_to_left &5393 a5 8f LDA &8f ; pattern_pixel_values &5395 3d 1a 09 AND &091a,X ; colour_3_pixel_values &5398 51 80 EOR (&80),Y ; fill_screen_address &539a 91 80 STA (&80),Y ; fill_screen_address &539c e8 INX &539d e0 04 CPX #&04 &539f d0 eb BNE &538c ; fill_right_edge_loop ; fill_line_to_left &53a1 a5 88 LDA &88 ; fill_edge_pixels &53a3 29 88 AND #&88 ; 3000 &53a5 d0 31 BNE &53d8 ; leave &53a7 a5 8e LDA &8e ; fill_row &53a9 85 80 STA &80 ; fill_screen_address_low &53ab a0 00 LDY #&00 ; fill_line_to_left_loop &53ad a5 80 LDA &80 ; fill_screen_address_low &53af 38 SEC &53b0 e9 08 SBC #&08 # Move left four pixels &53b2 85 80 STA &80 ; fill_screen_address_low &53b4 c9 f8 CMP #&f8 &53b6 b0 20 BCS &53d8 ; leave # Stop filling left at left edge of screen &53b8 b1 80 LDA (&80),Y ; fill_screen_address &53ba d0 07 BNE &53c3 ; fill_left_edge &53bc a5 8f LDA &8f ; pattern_pixel_values &53be 91 80 STA (&80),Y ; fill_screen_address &53c0 4c ad 53 JMP &53ad ; fill_line_to_left_loop ; fill_left_edge &53c3 a2 04 LDX #&04 ; fill_left_edge_loop &53c5 bd 19 09 LDA &0919,X ; colour_3_pixel_values - 1 &53c8 31 80 AND (&80),Y ; fill_screen_address &53ca d0 0c BNE &53d8 ; leave &53cc a5 8f LDA &8f ; pattern_pixel_values &53ce 3d 19 09 AND &0919,X ; colour_3_pixel_values - 1 &53d1 51 80 EOR (&80),Y ; fill_screen_address &53d3 91 80 STA (&80),Y ; fill_screen_address &53d5 ca DEX &53d6 d0 ed BNE &53c5 ; fill_left_edge_loop ; leave &53d8 60 RTS ; fill_area # Two byes of data per area to fill: &53d9 a9 00 LDA #&00 &53db 85 88 STA &88 ; fill_edge_pixels &53dd a5 8d LDA &8d ; plot_screen_address_high &53df 29 e0 AND #&e0 # ........ 842..... fill type &53e1 4a LSR A &53e2 4a LSR A &53e3 18 CLC &53e4 69 3a ADC #&3a ; &093a = pattern_table &53e6 85 89 STA &89 ; fill_pattern_address_low &53e8 a9 09 LDA #&09 &53ea 85 8a STA &8a ; fill_pattern_address_high &53ec a5 8d LDA &8d ; plot_screen_address_high &53ee 29 1f AND #&1f # 84218421 ...18421 screen address &53f0 18 CLC &53f1 69 68 ADC #&68 ; &6800 = graphics_screen_memory &53f3 85 8d STA &8d ; plot_screen_address_high &53f5 85 81 STA &81 ; fill_screen_address_high &53f7 a5 8c LDA &8c ; plot_screen_address_low &53f9 85 8e STA &8e ; fill_row ; fill_area_upwards_loop &53fb 20 27 53 JSR &5327 ; fill_line &53fe a5 8b LDA &8b ; fill_edge_flag # Zero if edge wasn't filled &5400 f0 26 BEQ &5428 ; fill_area_downwards &5402 a5 88 LDA &88 ; fill_edge_pixels &5404 c9 ff CMP #&ff &5406 f0 20 BEQ &5428 ; fill_area_downwards &5408 a5 8e LDA &8e ; fill_row &540a 29 07 AND #&07 &540c d0 11 BNE &541f ; move_up_a_row &540e c6 81 DEC &81 ; fill_screen_address_high &5410 a5 8e LDA &8e ; fill_row &5412 09 07 ORA #&07 &5414 85 8e STA &8e ; fill_row &5416 a5 81 LDA &81 ; fill_screen_address_high &5418 c9 67 CMP #&67 &541a f0 0c BEQ &5428 ; fill_area_downwards &541c 4c 21 54 JMP &5421 ; consider_next_row_upwards ; move_up_a_row &541f c6 8e DEC &8e ; fill_row ; consider_next_row_upwards &5421 a5 8e LDA &8e ; fill_row &5423 85 80 STA &80 ; fill_screen_address_low &5425 4c fb 53 JMP &53fb ; fill_area_upwards_loop ; fill_area_downwards &5428 a9 00 LDA #&00 &542a 85 88 STA &88 ; fill_edge_pixels &542c a5 8c LDA &8c ; plot_screen_address_low &542e 85 8e STA &8e ; fill_row &5430 a5 8d LDA &8d ; plot_screen_address_high &5432 85 81 STA &81 ; fill_screen_address_high ; fill_area_downwards_loop &5434 a5 8e LDA &8e ; fill_row &5436 29 07 AND #&07 &5438 c9 07 CMP #&07 &543a d0 11 BNE &544d ; move_down_a_row &543c e6 81 INC &81 ; fill_screen_address_high &543e a5 8e LDA &8e ; fill_row &5440 29 f8 AND #&f8 &5442 85 8e STA &8e ; fill_row &5444 a5 81 LDA &81 ; fill_screen_address_high &5446 c9 73 CMP #&73 ; &7300 = text_screen_memory &5448 f0 19 BEQ &5463 ; leave &544a 4c 4f 54 JMP &544f ; consider_next_row_downwards ; move_down_a_row &544d e6 8e INC &8e ; fill_row ; consider_next_row_downwards &544f a5 8e LDA &8e ; fill_row &5451 85 80 STA &80 ; fill_screen_address_low &5453 20 27 53 JSR &5327 ; fill_line &5456 a5 8b LDA &8b ; fill_edge_flag # Zero if edge wasn't filled &5458 f0 09 BEQ &5463 ; leave &545a a5 8b LDA &8b ; fill_edge_flag &545c c9 ff CMP #&ff &545e f0 03 BEQ &5463 ; leave # Never branches &5460 4c 34 54 JMP &5434 ; fill_area_downwards_loop ; leave &5463 60 RTS ; move_up_a_pixel &5464 c6 8c DEC &8c ; plot_screen_address_low &5466 a5 8c LDA &8c ; plot_screen_address_low &5468 29 07 AND #&07 &546a c9 07 CMP #&07 &546c d0 09 BNE &5477 ; leave &546e c6 8d DEC &8d ; plot_screen_address_high &5470 a5 8c LDA &8c ; plot_screen_address_low &5472 18 CLC &5473 69 08 ADC #&08 &5475 85 8c STA &8c ; plot_screen_address_low ; leave &5477 60 RTS ; print_text_buffer &5478 4c b5 27 JMP &27b5 ; print_text_buffer_initialisation # Returns to &547b ; print_text_buffer_after_initialisation # A is text_screen_address_low / 2 here &547b 4a LSR A &547c 4a LSR A &547d 85 48 STA &48 ; x &547f a2 ff LDX #&ff &5481 86 4b STX &4b ; offset ; print_text_buffer_loop &5483 a9 04 LDA #&04 &5485 85 47 STA &47 ; do_skip_spaces ; find_end_of_word_loop &5487 e8 INX &5488 e6 48 INC &48 ; x &548a a5 48 LDA &48 ; x &548c c9 21 CMP #&21 &548e d0 04 BNE &5494 ; not_end_of_line &5490 a5 46 LDA &46 ; use_colour_font &5492 85 47 STA &47 ; do_skip_spaces ; not_end_of_line &5494 bd 80 09 LDA &0980,X ; text_buffer &5497 c9 20 CMP #&20 ; " " &5499 f0 04 BEQ &549f ; found_end_of_word &549b c9 0d CMP #&0d ; CR &549d d0 e8 BNE &5487 ; find_end_of_word_loop ; found_end_of_word &549f a5 47 LDA &47 ; do_skip_spaces &54a1 d0 07 BNE &54aa ; skip_spaces &54a3 86 4e STX &4e ; tmp_x &54a5 20 75 51 JSR &5175 ; write_spaces_until_start_of_line &54a8 a6 4e LDX &4e ; tmp_x ; skip_spaces &54aa 86 4a STX &4a ; end_of_word_offset &54ac a6 4b LDX &4b ; offset ; write_word_loop &54ae e8 INX &54af bd 80 09 LDA &0980,X ; text_buffer &54b2 85 8e STA &8e ; character &54b4 c9 0d CMP #&0d ; CR &54b6 f0 0f BEQ &54c7 ; skip_writing_character &54b8 c9 20 CMP #&20 ; " " &54ba d0 04 BNE &54c0 ; always_write_character &54bc a5 7e LDA &7e ; text_screen_address_low &54be f0 07 BEQ &54c7 ; skip_writing_character ; always_write_character &54c0 86 49 STX &49 ; tmp_x &54c2 20 78 50 JSR &5078 ; write_character &54c5 a6 49 LDX &49 ; tmp_x ; skip_writing_character &54c7 e4 4a CPX &4a ; end_of_word_offset &54c9 d0 e3 BNE &54ae ; write_word_loop &54cb a5 7e LDA &7e ; text_screen_address_low &54cd 4a LSR A &54ce 4a LSR A &54cf 4a LSR A &54d0 85 48 STA &48 ; x &54d2 c6 48 DEC &48 ; x &54d4 86 4b STX &4b ; offset &54d6 bd 80 09 LDA &0980,X ; text_buffer &54d9 c9 0d CMP #&0d ; CR &54db d0 a6 BNE &5483 ; print_text_buffer_loop &54dd 60 RTS ; move_down_a_pixel &54de e6 8c INC &8c ; plot_screen_address_low &54e0 a5 8c LDA &8c ; plot_screen_address_low &54e2 29 07 AND #&07 &54e4 d0 09 BNE &54ef ; leave &54e6 e6 8d INC &8d ; plot_screen_address_high &54e8 a5 8c LDA &8c ; plot_screen_address_low &54ea 38 SEC &54eb e9 08 SBC #&08 &54ed 85 8c STA &8c ; plot_screen_address_low ; leave &54ef 60 RTS ; clear_graphics_area &54f0 a9 68 LDA #&68 ; &6800 = graphics_screen_memory # Wipe &6800 - &72ff &54f2 85 81 STA &81 ; screen_address_high &54f4 a9 00 LDA #&00 &54f6 a8 TAY &54f7 85 80 STA &80 ; screen_address_low ; clear_graphics_area_loop &54f9 91 80 STA (&80),Y ; screen_address &54fb c8 INY &54fc d0 fb BNE &54f9 ; clear_graphics_area_loop &54fe e6 81 INC &81 ; screen_address_high &5500 a6 81 LDX &81 ; screen_address_high &5502 e0 73 CPX #&73 ; &7300 = text_screen_memory &5504 d0 f3 BNE &54f9 ; clear_graphics_area_loop &5506 60 RTS ; add_border_to_graphics &5507 a9 68 LDA #&68 ; &6800 = graphics_screen_memory &5509 85 81 STA &81 ; screen_address_high &550b a9 00 LDA #&00 &550d 85 80 STA &80 ; screen_address_low ; add_side_borders_loop &550f a0 00 LDY #&00 ; add_left_border_group_loop &5511 b1 80 LDA (&80),Y ; screen_address &5513 09 88 ORA #&88 ; 3000 # Set left pixel to colour 3 &5515 91 80 STA (&80),Y ; screen_address &5517 c8 INY &5518 c0 08 CPY #&08 &551a d0 f5 BNE &5511 ; add_left_border_group_loop &551c a0 f8 LDY #&f8 ; add_right_border_group_loop &551e b1 80 LDA (&80),Y ; screen_address &5520 09 11 ORA #&11 ; 0003 # Set right pixel to colour 3 &5522 91 80 STA (&80),Y ; screen_address &5524 c8 INY &5525 d0 f7 BNE &551e ; add_right_border_group_loop &5527 e6 81 INC &81 ; screen_address_high # Move down eight pixels &5529 a5 81 LDA &81 ; screen_address_high &552b c9 73 CMP #&73 ; &7300 = text_screen_memory &552d d0 e0 BNE &550f ; add_side_borders_loop &552f a0 00 LDY #&00 ; add_top_and_bottom_borders_loop &5531 a9 ff LDA #&ff ; 3333 # Set all pixels to colour 3 &5533 99 00 68 STA &6800,Y ; screen_memory &5536 99 07 72 STA &7207,Y ; screen_memory + &100 * 10 + 7 &5539 18 CLC &553a 98 TYA &553b 69 08 ADC #&08 # Move right four pixels &553d a8 TAY &553e d0 f1 BNE &5531 ; add_top_and_bottom_borders_loop &5540 60 RTS ; draw_line # Three bytes of data per line: &5541 a5 8d LDA &8d ; plot_screen_address_high &5543 29 e0 AND #&e0 # ........ 842..... ........ initial direction &5545 85 88 STA &88 ; initial_line_direction &5547 a5 8d LDA &8d ; plot_screen_address_high &5549 29 1f AND #&1f # 84218421 ...18421 ........ screen address &554b 18 CLC &554c 69 68 ADC #&68 ; &6800 = graphics_screen_memory &554e 85 8d STA &8d ; plot_screen_address_high &5550 a5 89 LDA &89 ; length_colour_and_slope &5552 29 03 AND #&03 # ........ ........ ......21 slope &5554 85 8a STA &8a ; slope &5556 a5 89 LDA &89 ; length_colour_and_slope &5558 29 0c AND #&0c # ........ ........ ....84.. colour &555a 0a ASL A &555b a8 TAY &555c b9 3a 09 LDA &093a,Y ; pattern_table &555f 85 8f STA &8f ; pixel_mask &5561 a5 89 LDA &89 ; length_colour_and_slope &5563 29 f0 AND #&f0 # ........ ........ 8421.... length &5565 4a LSR A &5566 4a LSR A &5567 aa TAX ; draw_line_from_variables &5568 a0 00 LDY #&00 &556a 84 8e STY &8e ; pixel_in_byte &556c 84 8b STY &8b ; pixels_plotted ; draw_line_loop &556e a5 8e LDA &8e ; pixel_in_byte &5570 29 03 AND #&03 &5572 a8 TAY &5573 a5 88 LDA &88 ; initial_line_direction &5575 29 80 AND #&80 ; LINE_LEFT &5577 f0 04 BEQ &557d ; skip_inversion &5579 98 TYA &557a 49 03 EOR #&03 &557c a8 TAY ; skip_inversion &557d b9 1a 09 LDA &091a,Y ; colour_3_pixel_values &5580 25 8f AND &8f ; pixel_mask &5582 85 89 STA &89 ; pixel_value &5584 a0 00 LDY #&00 &5586 a5 8d LDA &8d ; plot_screen_address_high &5588 c9 68 CMP #&68 ; &6800 = graphics_screen_memory &558a 90 0a BCC &5596 ; skip_plotting &558c c9 73 CMP #&73 ; &7300 = text_screen_memory &558e b0 06 BCS &5596 ; skip_plotting &5590 b1 8c LDA (&8c),Y ; plot_screen_address &5592 05 89 ORA &89 ; pixel_value &5594 91 8c STA (&8c),Y ; plot_screen_address ; skip_plotting &5596 e6 8b INC &8b ; pixels_plotted &5598 a5 8b LDA &8b ; pixels_plotted &559a c5 8a CMP &8a ; slope &559c d0 0b BNE &55a9 ; skip_restarting_slope &559e a9 00 LDA #&00 &55a0 85 8b STA &8b ; pixels_plotted &55a2 a5 88 LDA &88 ; initial_line_direction &55a4 85 87 STA &87 ; line_direction &55a6 20 98 56 JSR &5698 ; move_along_line ; skip_restarting_slope &55a9 a5 88 LDA &88 ; initial_line_direction &55ab 49 20 EOR #&20 ; LINE_VERTICAL &55ad 85 87 STA &87 ; line_direction &55af 20 98 56 JSR &5698 ; move_along_line &55b2 ca DEX &55b3 d0 b9 BNE &556e ; draw_line_loop &55b5 60 RTS ; plot_graphics &55b6 20 f0 54 JSR &54f0 ; clear_graphics_area &55b9 a5 78 LDA &78 ; player_room ; plot_graphics_from_A &55bb 38 SEC &55bc e9 01 SBC #&01 &55be 0a ASL A &55bf a8 TAY &55c0 b9 00 67 LDA &6700,Y ; room_graphics_addresses &55c3 85 70 STA &70 ; graphics_data_address_low &55c5 b9 01 67 LDA &6701,Y ; room_graphics_addresses + 1 &55c8 85 71 STA &71 ; graphics_data_address_high &55ca a0 00 LDY #&00 &55cc b1 70 LDA (&70),Y ; graphics_data_address # Get byte of graphics data for palette &55ce 85 80 STA &80 ; byte &55d0 29 70 AND #&70 # .421... colour 1 &55d2 4a LSR A &55d3 4a LSR A &55d4 4a LSR A &55d5 4a LSR A &55d6 20 c5 4f JSR &4fc5 ; set_colour_1 &55d9 ea NOP &55da a5 80 LDA &80 ; byte &55dc 29 0f AND #&0f # ....8421 colour 2 &55de 49 07 EOR #&07 &55e0 85 81 STA &81 ; colour ; set_colour_2_loop &55e2 b9 16 09 LDA &0916,Y ; top_ula_values + 4 &55e5 29 f0 AND #&f0 &55e7 05 81 ORA &81 ; colour &55e9 99 16 09 STA &0916,Y ; top_ula_values + 4 &55ec c8 INY &55ed c0 04 CPY #&04 &55ef d0 f1 BNE &55e2 ; set_colour_2_loop &55f1 a0 01 LDY #&01 &55f3 a5 80 LDA &80 ; byte &55f5 29 80 AND #&80 # 8....... set to set colour 1 from second byte instead &55f7 f0 13 BEQ &560c ; process_graphics_data &55f9 b1 70 LDA (&70),Y ; graphics_data_address # If set, get second byte of graphics data &55fb 85 80 STA &80 ; byte &55fd 29 0f AND #&0f # ........ ....8421 colour 1 &55ff 20 c5 4f JSR &4fc5 ; set_colour_1 &5602 4c 0b 56 JMP &560b ; process_graphics_data_after_iny ; unused # Unused code &5605 4a LSR A &5606 4a LSR A &5607 4a LSR A &5608 4a LSR A &5609 85 92 STA &92 ; unused ; process_graphics_data_after_iny &560b c8 INY ; process_graphics_data &560c b1 70 LDA (&70),Y ; graphics_data_address # Get a byte for number of lines &560e 85 82 STA &82 ; count &5610 f0 1a BEQ &562c ; skip_drawing_lines ; draw_lines_loop &5612 c8 INY &5613 b1 70 LDA (&70),Y ; graphics_data_address # Get three bytes for each line &5615 85 8c STA &8c ; plot_screen_address_low &5617 c8 INY &5618 b1 70 LDA (&70),Y ; graphics_data_address &561a 85 8d STA &8d ; plot_screen_address_high &561c c8 INY &561d b1 70 LDA (&70),Y ; graphics_data_address &561f 85 89 STA &89 ; length_colour_and_slope &5621 84 4c STY &4c ; offset &5623 20 41 55 JSR &5541 ; draw_line &5626 a4 4c LDY &4c ; offset &5628 c6 82 DEC &82 ; count &562a d0 e6 BNE &5612 ; draw_lines_loop ; skip_drawing_lines &562c c8 INY &562d b1 70 LDA (&70),Y ; graphics_data_address # Get a byte for number of quads &562f 85 4d STA &4d ; count &5631 f0 1f BEQ &5652 ; skip_drawing_quads ; draw_quads_loop &5633 c8 INY &5634 b1 70 LDA (&70),Y ; graphics_data_address # Get four bytes for each quad &5636 85 8c STA &8c ; plot_screen_address_low &5638 c8 INY &5639 b1 70 LDA (&70),Y ; graphics_data_address &563b 85 8d STA &8d ; plot_screen_address_high &563d c8 INY &563e b1 70 LDA (&70),Y ; graphics_data_address &5640 85 80 STA &80 ; quad_third_byte &5642 c8 INY &5643 b1 70 LDA (&70),Y ; graphics_data_address &5645 85 83 STA &83 ; quad_fourth_byte &5647 84 4c STY &4c ; offset &5649 20 ca 56 JSR &56ca ; draw_quad &564c a4 4c LDY &4c ; offset &564e c6 4d DEC &4d ; count &5650 d0 e1 BNE &5633 ; draw_quads_loop ; skip_drawing_quads &5652 c8 INY &5653 b1 70 LDA (&70),Y ; graphics_data_address # Get a byte for number of areas to fill &5655 85 82 STA &82 ; count &5657 f0 15 BEQ &566e ; skip_filling_areas ; fill_areas_loop &5659 c8 INY &565a b1 70 LDA (&70),Y ; graphics_data_address # Get two bytes for each area to fill &565c 85 8c STA &8c ; plot_screen_address_low &565e c8 INY &565f b1 70 LDA (&70),Y ; graphics_data_address &5661 85 8d STA &8d ; plot_screen_address_high &5663 84 4c STY &4c ; offset &5665 20 d9 53 JSR &53d9 ; fill_area &5668 a4 4c LDY &4c ; offset &566a c6 82 DEC &82 ; count &566c d0 eb BNE &5659 ; fill_areas_loop ; skip_filling_areas &566e c8 INY &566f b1 70 LDA (&70),Y ; graphics_data_address # Get a byte for number of areas to copy &5671 85 82 STA &82 ; count &5673 f0 1f BEQ &5694 ; skip_copying_areas ; copy_areas_loop &5675 c8 INY &5676 b1 70 LDA (&70),Y ; graphics_data_address # Get four bytes for each area to copy &5678 85 88 STA &88 ; copy_data_first_byte &567a c8 INY &567b b1 70 LDA (&70),Y ; graphics_data_address &567d 85 89 STA &89 ; copy_data_second_byte &567f c8 INY &5680 b1 70 LDA (&70),Y ; graphics_data_address &5682 85 8a STA &8a ; copy_data_third_byte &5684 c8 INY &5685 b1 70 LDA (&70),Y ; graphics_data_address &5687 85 8b STA &8b ; copy_data_fourth_byte &5689 84 4c STY &4c ; offset &568b 20 60 52 JSR &5260 ; copy_area &568e a4 4c LDY &4c ; offset &5690 c6 82 DEC &82 ; count &5692 d0 e1 BNE &5675 ; copy_areas_loop ; skip_copying_areas &5694 20 00 58 JSR &5800 ; add_text_to_graphics &5697 60 RTS ; move_along_line &5698 a5 87 LDA &87 ; line_direction &569a 29 20 AND #&20 ; LINE_VERTICAL &569c d0 1e BNE &56bc ; move_up_or_down &569e e6 8e INC &8e ; pixel_in_byte &56a0 a5 8e LDA &8e ; pixel_in_byte &56a2 29 03 AND #&03 &56a4 d0 0d BNE &56b3 ; leave &56a6 a5 87 LDA &87 ; line_direction &56a8 29 80 AND #&80 ; LINE_LEFT &56aa d0 08 BNE &56b4 ; move_left_four_pixels ; move_right_four_pixels &56ac a5 8c LDA &8c ; plot_screen_address_low &56ae 18 CLC &56af 69 08 ADC #&08 # Move right four pixels &56b1 85 8c STA &8c ; plot_screen_address_low &56b3 60 RTS ; move_left_four_pixels &56b4 a5 8c LDA &8c ; plot_screen_address_low &56b6 38 SEC &56b7 e9 08 SBC #&08 # Move left four pixels &56b9 85 8c STA &8c ; plot_screen_address_low &56bb 60 RTS ; move_up_or_down &56bc a5 87 LDA &87 ; line_direction &56be 29 40 AND #&40 ; LINE_DOWN &56c0 d0 04 BNE &56c6 ; to_move_down_a_pixel ; to_move_up_a_pixel &56c2 20 64 54 JSR &5464 ; move_up_a_pixel &56c5 60 RTS ; to_move_down_a_pixel &56c6 20 de 54 JSR &54de ; move_down_a_pixel &56c9 60 RTS ; draw_quad # Four bytes of data per quad: &56ca a5 83 LDA &83 ; quad_fourth_byte &56cc 29 10 AND #&10 &56ce 0a ASL A &56cf 0a ASL A &56d0 85 82 STA &82 ; one_bit_from_quad_fourth_byte &56d2 a5 8d LDA &8d ; plot_screen_address_high &56d4 29 e0 AND #&e0 &56d6 4a LSR A &56d7 4a LSR A &56d8 4a LSR A &56d9 4a LSR A &56da 4a LSR A &56db 85 81 STA &81 ; three_bits_from_second_byte &56dd a5 8d LDA &8d ; plot_screen_address_high &56df 29 1f AND #&1f # 84218421 ...18421 ........ ........ screen address &56e1 18 CLC &56e2 69 68 ADC #&68 ; &6800 = graphics_screen_memory &56e4 85 8d STA &8d ; plot_screen_address_high ; draw_first_line_of_quad &56e6 a5 80 LDA &80 ; quad_third_byte &56e8 29 0f AND #&0f # ........ ........ ....8421 ........ first length &56ea 0a ASL A &56eb 0a ASL A &56ec aa TAX &56ed a5 81 LDA &81 ; three_bits_from_second_byte &56ef 29 03 AND #&03 # ........ .42..... ........ ........ first slope &56f1 85 8a STA &8a ; slope &56f3 a5 81 LDA &81 ; three_bits_from_second_byte &56f5 29 04 AND #&04 # ........ 8....... ........ ...1.... direction &56f7 0a ASL A &56f8 0a ASL A &56f9 0a ASL A &56fa 45 82 EOR &82 ; one_bit_from_quad_fourth_byte &56fc 85 88 STA &88 ; initial_line_direction &56fe a5 83 LDA &83 ; quad_fourth_byte &5700 29 01 AND #&01 # ........ ........ ........ .......1 draw first line &5702 85 84 STA &84 ; tmp &5704 a9 00 LDA #&00 &5706 38 SEC &5707 e5 84 SBC &84 ; tmp &5709 85 8f STA &8f ; pixel_mask &570b 20 68 55 JSR &5568 ; draw_line_from_variables &570e a5 8a LDA &8a ; slope &5710 29 07 AND #&07 &5712 f0 0a BEQ &571e ; skip_moving_down_two_pixels &5714 a5 82 LDA &82 ; one_bit_from_quad_fourth_byte &5716 d0 06 BNE &571e ; skip_moving_down_two_pixels &5718 20 de 54 JSR &54de ; move_down_a_pixel &571b 20 de 54 JSR &54de ; move_down_a_pixel ; skip_moving_down_two_pixels &571e a5 8c LDA &8c ; plot_screen_address_low &5720 38 SEC &5721 e9 08 SBC #&08 &5723 85 8c STA &8c ; plot_screen_address_low ; draw_second_line_of_quad &5725 a9 c0 LDA #&c0 ; LINE_LEFT | LINE_DOWN &5727 85 88 STA &88 ; initial_line_direction &5729 a5 80 LDA &80 ; quad_third_byte &572b 29 f0 AND #&f0 # ........ ........ 8421.... ........ second length &572d 4a LSR A &572e 4a LSR A &572f aa TAX &5730 a9 00 LDA #&00 &5732 85 8a STA &8a ; slope &5734 a5 83 LDA &83 ; quad_fourth_byte &5736 29 02 AND #&02 # ........ ........ ........ ......2. draw second line &5738 4a LSR A &5739 85 84 STA &84 ; tmp &573b a9 00 LDA #&00 &573d 38 SEC &573e e5 84 SBC &84 ; tmp &5740 85 8f STA &8f ; pixel_mask &5742 a5 8c LDA &8c ; plot_screen_address_low &5744 85 7c STA &7c ; first_plot_screen_address_low &5746 a5 8d LDA &8d ; plot_screen_address_high &5748 85 7d STA &7d ; first_plot_screen_address_high &574a 20 68 55 JSR &5568 ; draw_line_from_variables &574d a5 8d LDA &8d ; plot_screen_address_high &574f 85 7b STA &7b ; second_plot_screen_address_high &5751 c6 7b DEC &7b ; second_plot_screen_address_high &5753 a5 8c LDA &8c ; plot_screen_address_low &5755 85 7a STA &7a ; second_plot_screen_address_low ; draw_third_line_of_quad &5757 a5 81 LDA &81 ; three_bits_from_second_byte &5759 29 04 AND #&04 # ........ 8....... ........ ...1.... direction &575b 0a ASL A &575c 0a ASL A &575d 0a ASL A &575e 49 c0 EOR #&c0 ; LINE_LEFT | LINE_DOWN &5760 45 82 EOR &82 ; one_bit_from_quad_fourth_byte &5762 85 88 STA &88 ; initial_line_direction &5764 a5 80 LDA &80 ; quad_third_byte &5766 29 0f AND #&0f # ........ ........ ....8421 ........ third length &5768 0a ASL A &5769 0a ASL A &576a aa TAX &576b a5 81 LDA &81 ; three_bits_from_second_byte &576d 29 03 AND #&03 # ........ .42..... ........ ........ third slope &576f 85 8a STA &8a ; slope &5771 a5 83 LDA &83 ; quad_fourth_byte &5773 29 04 AND #&04 # ........ ........ ........ .....4.. draw third line &5775 4a LSR A &5776 4a LSR A &5777 85 84 STA &84 ; tmp &5779 a9 00 LDA #&00 &577b 38 SEC &577c e5 84 SBC &84 ; tmp &577e 85 8f STA &8f ; pixel_mask &5780 20 68 55 JSR &5568 ; draw_line_from_variables &5783 a5 8a LDA &8a ; slope &5785 29 03 AND #&03 &5787 f0 0a BEQ &5793 ; skip_moving_up_two_pixels &5789 a5 82 LDA &82 ; one_bit_from_quad_fourth_byte &578b d0 06 BNE &5793 ; skip_moving_up_two_pixels &578d 20 64 54 JSR &5464 ; move_up_a_pixel &5790 20 64 54 JSR &5464 ; move_up_a_pixel ; skip_moving_up_two_pixels &5793 18 CLC &5794 a5 8c LDA &8c ; plot_screen_address_low &5796 69 08 ADC #&08 &5798 85 8c STA &8c ; plot_screen_address_low ; draw_fourth_line_of_quad &579a a9 00 LDA #&00 ; LINE_RIGHT | LINE_UP &579c 85 88 STA &88 ; initial_line_direction &579e a5 80 LDA &80 ; quad_third_byte &57a0 29 f0 AND #&f0 # ........ ........ 8421.... ........ fourth length &57a2 4a LSR A &57a3 4a LSR A &57a4 aa TAX &57a5 a9 00 LDA #&00 &57a7 85 8a STA &8a ; slope &57a9 a5 83 LDA &83 ; quad_fourth_byte &57ab 29 08 AND #&08 # ........ ........ ........ .....8.. draw fourth line &57ad 4a LSR A &57ae 4a LSR A &57af 4a LSR A &57b0 85 84 STA &84 ; tmp &57b2 a9 00 LDA #&00 &57b4 38 SEC &57b5 e5 84 SBC &84 ; tmp &57b7 85 8f STA &8f ; pixel_mask &57b9 20 68 55 JSR &5568 ; draw_line_from_variables ; fill_quad &57bc a5 83 LDA &83 ; quad_fourth_byte &57be 29 e0 AND #&e0 # ........ ........ ........ 842..... fill type &57c0 c9 e0 CMP #&e0 &57c2 f0 20 BEQ &57e4 ; leave &57c4 85 85 STA &85 ; fill_type &57c6 20 e5 57 JSR &57e5 ; fill_part_of_quad &57c9 a5 82 LDA &82 ; one_bit_from_quad_fourth_byte # ........ ........ ........ ...1.... fill location &57cb f0 0c BEQ &57d9 ; fill_at_end_of_first_line ; fill_at_end_of_second_line &57cd a5 7b LDA &7b ; second_plot_screen_address_high &57cf 85 8d STA &8d ; plot_screen_address_high &57d1 a5 7a LDA &7a ; second_plot_screen_address_low &57d3 85 8c STA &8c ; plot_screen_address_low &57d5 20 e5 57 JSR &57e5 ; fill_part_of_quad &57d8 60 RTS ; fill_at_end_of_first_line &57d9 a5 7d LDA &7d ; first_plot_screen_address_high &57db 85 8d STA &8d ; plot_screen_address_high &57dd a5 7c LDA &7c ; first_plot_screen_address_low &57df 85 8c STA &8c ; plot_screen_address_low &57e1 20 e5 57 JSR &57e5 ; fill_part_of_quad ; leave &57e4 60 RTS ; fill_part_of_quad &57e5 e6 8d INC &8d ; plot_screen_address_high &57e7 20 64 54 JSR &5464 ; move_up_a_pixel &57ea 20 64 54 JSR &5464 ; move_up_a_pixel &57ed 20 64 54 JSR &5464 ; move_up_a_pixel &57f0 20 64 54 JSR &5464 ; move_up_a_pixel &57f3 a5 8d LDA &8d ; plot_screen_address_high &57f5 38 SEC &57f6 e9 68 SBC #&68 ; &6800 = graphics_screen_memory &57f8 05 85 ORA &85 ; fill_type # Merge fill type into screen address for filling &57fa 85 8d STA &8d ; plot_screen_address_high &57fc 20 d9 53 JSR &53d9 ; fill_area &57ff 60 RTS ; add_text_to_graphics &5800 c8 INY &5801 b1 70 LDA (&70),Y ; graphics_data_address # Get two bytes for text screen address &5803 f0 2c BEQ &5831 ; skip_adding_text # (or &00 if no text) &5805 85 5e STA &5e ; text_screen_address_low &5807 c8 INY &5808 b1 70 LDA (&70),Y ; graphics_data_address &580a 85 5f STA &5f ; text_screen_address_high &580c c8 INY &580d a5 70 LDA &70 ; graphics_data_address_low &580f 85 8e STA &8e ; text_address_low &5811 a5 71 LDA &71 ; graphics_data_address_high &5813 85 8f STA &8f ; text_address_high &5815 a9 04 LDA #&04 ; FONT_COLOUR &5817 85 75 STA &75 ; font_flags &5819 a2 00 LDX #&00 &581b 98 TYA &581c 18 CLC &581d 71 8e ADC (&8e),Y ; text_address # Get byte for length of packed text &581f 48 PHA &5820 a5 70 LDA &70 ; graphics_data_address_low &5822 48 PHA &5823 a5 71 LDA &71 ; graphics_data_address_high &5825 48 PHA &5826 20 fe 4e JSR &4efe ; write_string_from_variables &5829 68 PLA &582a 85 71 STA &71 ; graphics_data_address_high &582c 68 PLA &582d 85 70 STA &70 ; graphics_data_address_low &582f 68 PLA &5830 a8 TAY ; skip_adding_text &5831 c8 INY &5832 b1 70 LDA (&70),Y ; graphics_data_address # Get two bytes for continuation address &5834 c9 ff CMP #&ff # (or &ff to indicate end of graphics) &5836 f0 0e BEQ &5846 ; end_of_graphics_data &5838 48 PHA &5839 c8 INY &583a b1 70 LDA (&70),Y ; graphics_data_address &583c 85 71 STA &71 ; graphics_data_address_high &583e 68 PLA &583f 85 70 STA &70 ; graphics_data_address_low &5841 a0 00 LDY #&00 &5843 4c 0c 56 JMP &560c ; process_graphics_data ; end_of_graphics_data &5846 20 07 55 JSR &5507 ; add_border_to_graphics &5849 a9 00 LDA #&00 &584b 85 75 STA &75 ; font_flags &584d 60 RTS ; graphics_64 &584e 21 ; colour 1 is green, colour 2 is red &584f 0c ; 12 lines &5850 00 40 49 ; line at &6800, direction 2, colour 2, length 16, slope 1 &5853 07 0a 49 ; line at &7207, direction 0, colour 2, length 16, slope 1 &5856 40 49 29 ; line at &7140, direction 2, colour 2, length 8, slope 1 &5859 47 01 29 ; line at &6947, direction 0, colour 2, length 8, slope 1 &585c f8 8a 59 ; line at &72f8, direction 4, colour 2, length 20, slope 1 &585f d4 a7 5a ; line at &6fd4, direction 5, colour 2, length 20, slope 2 &5862 57 20 5b ; line at &6857, direction 1, colour 2, length 20, slope 3 &5865 50 6a 6b ; line at &7250, direction 3, colour 2, length 24, slope 3 &5868 a8 ea 6b ; line at &72a8, direction 7, colour 2, length 24, slope 3 &586b a8 8a f8 ; line at &72a8, direction 4, colour 2, length 60, slope 0 &586e af 82 68 ; line at &6aaf, direction 4, colour 2, length 24, slope 0 &5871 65 06 19 ; line at &6e65, direction 0, colour 2, length 4, slope 1 &5874 03 ; 3 quads &5875 20 82 e4 6f ; quad at &6a20, direction 2, lengths 4 8, slope 0, draw 1234, fill 3 at 1 &5879 61 83 72 ef ; quad at &6b61, direction 3, lengths 2 8, slope 0, draw 1234, no fill &587d 69 83 61 ac ; quad at &6b69, direction 2, lengths 1 8, slope 0, draw 34, fill 5 at 1 &5881 07 ; 7 filled areas &5882 05 01 ; fill area at &6905, fill 0 &5884 7a 02 ; fill area at &6a7a, fill 0 &5886 fb 20 ; fill area at &68fb, fill 1 &5888 4a 04 ; fill area at &6c4a, fill 0 &588a 31 45 ; fill area at &6d31, fill 2 &588c 23 89 ; fill area at &7123, fill 4 &588e b3 89 ; fill area at &71b3, fill 4 &5890 00 ; 0 copied areas &5891 00 ; no text &5892 ff ; end ; graphics_02 &5893 81 25 ; colour 1 is magenta, colour 2 is red &5895 15 ; 21 lines &5896 b2 29 28 ; line at &71b2, direction 1, colour 2, length 8, slope 0 &5899 aa 05 19 ; line at &6daa, direction 0, colour 2, length 4, slope 1 &589c b6 24 28 ; line at &6cb6, direction 1, colour 2, length 8, slope 0 &589f b2 09 2a ; line at &71b2, direction 0, colour 2, length 8, slope 2 &58a2 80 27 58 ; line at &6f80, direction 1, colour 2, length 20, slope 0 &58a5 c8 07 29 ; line at &6fc8, direction 0, colour 2, length 8, slope 1 &58a8 d0 86 68 ; line at &6ed0, direction 4, colour 2, length 24, slope 0 &58ab d0 83 29 ; line at &6bd0, direction 4, colour 2, length 8, slope 1 &58ae 80 22 98 ; line at &6a80, direction 1, colour 2, length 36, slope 0 &58b1 f8 8a 39 ; line at &72f8, direction 4, colour 2, length 12, slope 1 &58b4 e5 88 08 ; line at &70e5, direction 4, colour 2, length 0, slope 0 &58b7 85 22 28 ; line at &6a85, direction 1, colour 2, length 8, slope 0 &58ba 84 26 28 ; line at &6e84, direction 1, colour 2, length 8, slope 0 &58bd 94 06 88 ; line at &6e94, direction 0, colour 2, length 32, slope 0 &58c0 84 06 4a ; line at &6e84, direction 0, colour 2, length 16, slope 2 &58c3 85 42 4a ; line at &6a85, direction 2, colour 2, length 16, slope 2 &58c6 a2 27 18 ; line at &6fa2, direction 1, colour 2, length 4, slope 0 &58c9 95 87 19 ; line at &6f95, direction 4, colour 2, length 4, slope 1 &58cc c2 85 19 ; line at &6dc2, direction 4, colour 2, length 4, slope 1 &58cf e5 a8 b8 ; line at &70e5, direction 5, colour 2, length 44, slope 0 &58d2 ba 89 2a ; line at &71ba, direction 4, colour 2, length 8, slope 2 &58d5 08 ; 8 quads &58d6 7a 84 12 ff ; quad at &6c7a, direction 3, lengths 2 8, slope 0, draw 1234, no fill &58da a2 27 11 fd ; quad at &6fa2, direction 1, lengths 1 2, slope 1, draw 134, no fill &58de f4 21 f2 19 ; quad at &69f4, direction 1, lengths 2 2, slope 1, draw 14, fill 0 at 2 &58e2 71 88 24 df ; quad at &7071, direction 2, lengths 4 8, slope 0, draw 1234, fill 6 at 2 &58e6 6d 87 16 3f ; quad at &6f6d, direction 3, lengths 6 8, slope 0, draw 1234, fill 1 at 2 &58ea 72 87 14 d9 ; quad at &6f72, direction 3, lengths 4 8, slope 0, draw 14, fill 6 at 2 &58ee aa 85 54 1e ; quad at &6daa, direction 3, lengths 4 8, slope 0, draw 234, fill 0 at 2 &58f2 ae 87 14 ff ; quad at &6fae, direction 3, lengths 4 8, slope 0, draw 1234, no fill &58f6 07 ; 7 filled areas &58f7 73 c7 ; fill area at &6f73, fill 6 &58f9 e5 a0 ; fill area at &68e5, fill 5 &58fb ed a0 ; fill area at &68ed, fill 5 &58fd 99 a7 ; fill area at &6f99, fill 5 &58ff ae 28 ; fill area at &70ae, fill 1 &5901 d6 28 ; fill area at &70d6, fill 1 &5903 fe a1 ; fill area at &69fe, fill 5 &5905 01 ; 1 copied area &5906 81 b0 00 f0 ; mirror area from &7880 to &7800, 0 x 15 &590a 00 ; no text &590b ff ; end ; graphics_2d &590c 24 ; colour 1 is green, colour 2 is blue &590d 04 ; 4 lines &590e 52 05 19 ; line at &6d52, direction 0, colour 2, length 4, slope 1 &5911 49 05 29 ; line at &6d49, direction 0, colour 2, length 8, slope 1 &5914 67 c1 48 ; line at &6967, direction 6, colour 2, length 16, slope 0 &5917 37 20 98 ; line at &6837, direction 1, colour 2, length 36, slope 0 &591a 0e ; 14 quads &591b 48 25 62 bf ; quad at &6d48, direction 0, lengths 2 2, slope 1, draw 1234, fill 5 at 2 &591f 58 c6 63 b7 ; quad at &6e58, direction 2, lengths 3 12, slope 2, draw 123, fill 5 at 2 &5923 76 86 64 b7 ; quad at &6e76, direction 2, lengths 4 8, slope 0, draw 123, fill 5 at 2 &5927 59 c4 13 ef ; quad at &6c59, direction 3, lengths 3 12, slope 2, draw 1234, no fill &592b 74 83 12 f5 ; quad at &6b74, direction 3, lengths 2 8, slope 0, draw 13, no fill &592f 00 24 13 e7 ; quad at &6c00, direction 1, lengths 3 2, slope 1, draw 123, no fill &5933 1c c2 15 e7 ; quad at &6a1c, direction 3, lengths 5 12, slope 2, draw 123, no fill &5937 43 81 15 f7 ; quad at &6943, direction 3, lengths 5 8, slope 0, draw 123, no fill &593b 05 24 73 26 ; quad at &6c05, direction 1, lengths 3 2, slope 1, draw 23, fill 1 at 1 &593f 19 c3 75 26 ; quad at &6b19, direction 3, lengths 5 12, slope 2, draw 23, fill 1 at 1 &5943 6f 21 52 23 ; quad at &696f, direction 1, lengths 2 2, slope 1, draw 12, fill 1 at 1 &5947 40 82 71 34 ; quad at &6a40, direction 3, lengths 1 8, slope 0, draw 3, fill 1 at 2 &594b 6f 21 52 23 ; quad at &696f, direction 1, lengths 2 2, slope 1, draw 12, fill 1 at 1 &594f 01 c1 26 26 ; quad at &6901, direction 2, lengths 6 12, slope 2, draw 23, fill 1 at 1 &5953 03 ; 3 filled areas &5954 7b 05 ; fill area at &6d7b, fill 0 &5956 73 21 ; fill area at &6973, fill 1 &5958 7c 20 ; fill area at &687c, fill 1 &595a 01 ; 1 copied area &595b 01 b0 80 f0 ; mirror area from &7800 to &7880, 8 x 15 &595f 00 ; no text &5960 ff ; end ; graphics_2e &5961 24 ; colour 1 is green, colour 2 is blue &5962 00 ; 0 lines &5963 00 ; 0 quads &5964 01 ; 1 filled area &5965 57 01 ; fill area at &6957, fill 0 &5967 00 ; 0 copied areas &5968 00 ; no text &5969 ff ; end ; graphics_2f &596a 14 ; colour 1 is red, colour 2 is blue &596b 00 ; 0 lines &596c 05 ; 5 quads &596d 20 83 64 9f ; quad at &6b20, direction 2, lengths 4 8, slope 0, draw 1234, fill 4 at 2 &5971 64 80 38 1f ; quad at &6864, direction 3, lengths 8 8, slope 0, draw 1234, fill 0 at 2 &5975 64 82 e8 fb ; quad at &6a64, direction 2, lengths 8 8, slope 0, draw 124, no fill &5979 60 24 b3 a6 ; quad at &6c60, direction 1, lengths 3 2, slope 1, draw 23, fill 5 at 1 &597d 05 82 ec 74 ; quad at &6a05, direction 2, lengths 12 8, slope 0, draw 3, fill 3 at 2 &5981 01 ; 1 filled area &5982 4c 63 ; fill area at &6b4c, fill 3 &5984 01 ; 1 copied area &5985 01 b0 80 f0 ; mirror area from &7800 to &7880, 8 x 15 &5989 60 69 04 ; text at &6960, length &04 &598c 17 11 00 18 ; "XRAY" &5990 ff ; end ; graphics_2c ; graphics_30 &5991 54 ; colour 1 is magenta, colour 2 is blue &5992 08 ; 8 lines &5993 48 02 48 ; line at &6a48, direction 0, colour 2, length 16, slope 0 &5996 40 04 2a ; line at &6c40, direction 0, colour 2, length 8, slope 2 &5999 41 24 88 ; line at &6c41, direction 1, colour 2, length 32, slope 0 &599c 27 0a 6a ; line at &7227, direction 0, colour 2, length 24, slope 2 &599f 3f 07 49 ; line at &6f3f, direction 0, colour 2, length 16, slope 1 &59a2 5f 25 3a ; line at &6d5f, direction 1, colour 2, length 12, slope 2 &59a5 72 25 28 ; line at &6d72, direction 1, colour 2, length 8, slope 0 &59a8 37 87 08 ; line at &6f37, direction 4, colour 2, length 0, slope 0 &59ab 08 ; 8 quads &59ac 44 82 38 ff ; quad at &6a44, direction 3, lengths 8 8, slope 0, draw 1234, no fill &59b0 48 82 27 ff ; quad at &6a48, direction 2, lengths 7 8, slope 0, draw 1234, no fill &59b4 40 41 3c e9 ; quad at &6940, direction 1, lengths 12 4, slope 2, draw 14, no fill &59b8 44 82 38 ff ; quad at &6a44, direction 3, lengths 8 8, slope 0, draw 1234, no fill &59bc 05 89 10 5f ; quad at &7105, direction 3, lengths 0 8, slope 0, draw 1234, fill 2 at 2 &59c0 48 80 62 3a ; quad at &6848, direction 2, lengths 2 8, slope 0, draw 24, fill 1 at 2 &59c4 39 84 44 32 ; quad at &6c39, direction 2, lengths 4 8, slope 0, draw 2, fill 1 at 2 &59c8 7b 8a 12 5f ; quad at &727b, direction 3, lengths 2 8, slope 0, draw 1234, fill 2 at 2 &59cc 0a ; 10 filled areas &59cd 5d 20 ; fill area at &685d, fill 1 &59cf 5a 22 ; fill area at &6a5a, fill 1 &59d1 5e 22 ; fill area at &6a5e, fill 1 &59d3 00 24 ; fill area at &6c00, fill 1 &59d5 4e a3 ; fill area at &6b4e, fill 5 &59d7 75 06 ; fill area at &6e75, fill 0 &59d9 16 2a ; fill area at &7216, fill 1 &59db 3e 0a ; fill area at &723e, fill 0 &59dd 52 22 ; fill area at &6a52, fill 1 &59df 5c 24 ; fill area at &6c5c, fill 1 &59e1 01 ; 1 copied area &59e2 01 b0 80 f0 ; mirror area from &7800 to &7880, 8 x 15 &59e6 00 ; no text &59e7 ff ; end ; graphics_continuation_59e8 # Used by graphics_05, graphics_06, graphics_4c, graphics_4d &59e8 08 ; 8 lines &59e9 65 03 3b ; line at &6b65, direction 0, colour 2, length 12, slope 3 &59ec 69 02 2a ; line at &6a69, direction 0, colour 2, length 8, slope 2 &59ef 71 01 19 ; line at &6971, direction 0, colour 2, length 4, slope 1 &59f2 7d 20 28 ; line at &687d, direction 1, colour 2, length 8, slope 0 &59f5 6b 07 88 ; line at &6f6b, direction 0, colour 2, length 32, slope 0 &59f8 6b 03 3b ; line at &6b6b, direction 0, colour 2, length 12, slope 3 &59fb 70 02 19 ; line at &6a70, direction 0, colour 2, length 4, slope 1 &59fe 66 23 18 ; line at &6b66, direction 1, colour 2, length 4, slope 0 &5a01 01 ; 1 quad &5a02 66 23 81 4c ; quad at &6b66, direction 0, lengths 1 2, slope 1, draw 34, fill 2 at 1 &5a06 06 ; 6 filled areas &5a07 65 20 ; fill area at &6865, fill 1 &5a09 68 42 ; fill area at &6a68, fill 2 &5a0b 69 42 ; fill area at &6a69, fill 2 &5a0d 74 41 ; fill area at &6974, fill 2 &5a0f 7e 40 ; fill area at &687e, fill 2 &5a11 64 43 ; fill area at &6b64, fill 2 &5a13 01 ; 1 copied area &5a14 09 80 80 e0 ; mirror area from &6808 to &6880, 8 x 14 &5a18 00 ; no text &5a19 ff ; end ; graphics_05 &5a1a 84 25 ; colour 1 is magenta, colour 2 is blue &5a1c 05 ; 5 lines &5a1d 5f 87 f4 ; line at &6f5f, direction 4, colour 1, length 60, slope 0 &5a20 46 c8 33 ; line at &7046, direction 6, colour 0, length 12, slope 3 &5a23 41 2a 90 ; line at &7241, direction 1, colour 0, length 36, slope 0 &5a26 4e 28 80 ; line at &704e, direction 1, colour 0, length 32, slope 0 &5a29 07 27 c8 ; line at &6f07, direction 1, colour 2, length 48, slope 0 &5a2c 02 ; 2 quads &5a2d 05 27 55 47 ; quad at &6f05, direction 1, lengths 5 2, slope 1, draw 123, fill 2 at 1 &5a31 15 82 37 9f ; quad at &6a15, direction 3, lengths 7 8, slope 0, draw 1234, fill 4 at 2 &5a35 04 ; 4 filled areas &5a36 55 25 ; fill area at &6d55, fill 1 &5a38 04 25 ; fill area at &6d04, fill 1 &5a3a 02 23 ; fill area at &6b02, fill 1 &5a3c 5f 09 ; fill area at &715f, fill 0 &5a3e 01 ; 1 copied area &5a3f 01 b0 80 f0 ; mirror area from &7800 to &7880, 8 x 15 &5a43 48 71 07 ; text at &7148, length &07 &5a46 02 14 12 13 0e 0c 12 ; "CUSTOMS" &5a4d e8 59 ; continue at &59e8 (graphics_continuation_59e8) ; graphics_06 &5a4f 34 ; colour 1 is yellow, colour 2 is blue &5a50 02 ; 2 lines &5a51 67 07 04 ; line at &6f67, direction 0, colour 1, length 0, slope 0 &5a54 2f 87 08 ; line at &6f2f, direction 4, colour 2, length 0, slope 0 &5a57 03 ; 3 quads &5a58 05 24 c6 c4 ; quad at &6c05, direction 0, lengths 6 2, slope 1, draw 3, fill 6 at 1 &5a5c 6b 83 23 9f ; quad at &6b6b, direction 2, lengths 3 8, slope 0, draw 1234, fill 4 at 2 &5a60 37 84 66 34 ; quad at &6c37, direction 2, lengths 6 8, slope 0, draw 3, fill 1 at 2 &5a64 00 ; 0 filled areas &5a65 01 ; 1 copied area &5a66 01 b0 80 f0 ; mirror area from &7800 to &7880, 8 x 15 &5a6a 00 ; no text &5a6b e8 59 ; continue at &59e8 (graphics_continuation_59e8) ; graphics_continuation_5a6d # Used by graphics_07, graphics_09 &5a6d 0b ; 11 lines &5a6e 34 22 68 ; line at &6a34, direction 1, colour 2, length 24, slope 0 &5a71 68 0a 64 ; line at &7268, direction 0, colour 1, length 24, slope 0 &5a74 28 03 19 ; line at &6b28, direction 0, colour 2, length 4, slope 1 &5a77 61 27 24 ; line at &6f61, direction 1, colour 1, length 8, slope 0 &5a7a 59 e7 26 ; line at &6f59, direction 7, colour 1, length 8, slope 2 &5a7d 4d c7 15 ; line at &6f4d, direction 6, colour 1, length 4, slope 1 &5a80 41 c8 16 ; line at &7041, direction 6, colour 1, length 4, slope 2 &5a83 40 89 16 ; line at &7140, direction 4, colour 1, length 4, slope 2 &5a86 49 49 15 ; line at &7149, direction 2, colour 1, length 4, slope 1 &5a89 55 69 26 ; line at &7155, direction 3, colour 1, length 8, slope 2 &5a8c 60 2a 24 ; line at &7260, direction 1, colour 1, length 8, slope 0 &5a8f 05 ; 5 quads &5a90 5f 22 31 2f ; quad at &6a5f, direction 1, lengths 1 2, slope 1, draw 1234, fill 1 at 1 &5a94 28 83 36 7d ; quad at &6b28, direction 3, lengths 6 8, slope 0, draw 134, fill 3 at 2 &5a98 50 25 12 ef ; quad at &6d50, direction 1, lengths 2 2, slope 1, draw 1234, no fill &5a9c 21 85 16 fd ; quad at &6d21, direction 3, lengths 6 8, slope 0, draw 134, no fill &5aa0 20 25 11 61 ; quad at &6d20, direction 1, lengths 1 2, slope 1, draw 1, fill 3 at 1 &5aa4 06 ; 6 filled areas &5aa5 4f 64 ; fill area at &6c4f, fill 3 &5aa7 4f 22 ; fill area at &6a4f, fill 1 &5aa9 5d 24 ; fill area at &6c5d, fill 1 &5aab 51 25 ; fill area at &6d51, fill 1 &5aad 66 c8 ; fill area at &7066, fill 6 &5aaf 01 03 ; fill area at &6b01, fill 0 &5ab1 01 ; 1 copied area &5ab2 41 47 68 47 ; mirror area from &6f40 to &6f68, 6 x 4 &5ab6 00 ; no text &5ab7 ff ; end ; graphics_07 &5ab8 21 ; colour 1 is green, colour 2 is red &5ab9 0c ; 12 lines &5aba 66 04 c8 ; line at &6c66, direction 0, colour 2, length 48, slope 0 &5abd a4 21 c8 ; line at &69a4, direction 1, colour 2, length 48, slope 0 &5ac0 76 42 19 ; line at &6a76, direction 2, colour 2, length 4, slope 1 &5ac3 68 22 18 ; line at &6a68, direction 1, colour 2, length 4, slope 0 &5ac6 61 c1 2a ; line at &6961, direction 6, colour 2, length 8, slope 2 &5ac9 61 21 18 ; line at &6961, direction 1, colour 2, length 4, slope 0 &5acc 67 81 18 ; line at &6967, direction 4, colour 2, length 4, slope 0 &5acf 60 c2 19 ; line at &6a60, direction 6, colour 2, length 4, slope 1 &5ad2 78 44 2a ; line at &6c78, direction 2, colour 2, length 8, slope 2 &5ad5 65 81 18 ; line at &6965, direction 4, colour 2, length 4, slope 0 &5ad8 14 25 2a ; line at &6d14, direction 1, colour 2, length 8, slope 2 &5adb 04 06 29 ; line at &6e04, direction 0, colour 2, length 8, slope 1 &5ade 0a ; 10 quads &5adf bc 84 12 ff ; quad at &6cbc, direction 3, lengths 2 8, slope 0, draw 1234, no fill &5ae3 c0 c5 31 fc ; quad at &6dc0, direction 3, lengths 1 12, slope 2, draw 34, no fill &5ae7 b9 c5 31 e6 ; quad at &6db9, direction 3, lengths 1 12, slope 2, draw 23, no fill &5aeb ad 83 5b 3d ; quad at &6bad, direction 3, lengths 11 8, slope 0, draw 134, fill 1 at 2 &5aef a1 83 1c fd ; quad at &6ba1, direction 3, lengths 12 8, slope 0, draw 134, no fill &5af3 a0 80 7c d8 ; quad at &68a0, direction 3, lengths 12 8, slope 0, draw 4, fill 6 at 2 &5af7 a4 80 1c f5 ; quad at &68a4, direction 3, lengths 12 8, slope 0, draw 13, no fill &5afb 80 80 a5 1c ; quad at &6880, direction 2, lengths 5 8, slope 0, draw 34, fill 0 at 2 &5aff 67 c3 13 ef ; quad at &6b67, direction 3, lengths 3 12, slope 2, draw 1234, no fill &5b03 67 22 12 ef ; quad at &6a67, direction 1, lengths 2 2, slope 1, draw 1234, no fill &5b07 05 ; 5 filled areas &5b08 62 41 ; fill area at &6962, fill 2 &5b0a 63 42 ; fill area at &6a63, fill 2 &5b0c 65 43 ; fill area at &6b65, fill 2 &5b0e 68 43 ; fill area at &6b68, fill 2 &5b10 7d a0 ; fill area at &687d, fill 5 &5b12 02 ; 2 copied areas &5b13 b8 34 e0 14 ; copy area from &7cb8 to &7ce0, 14 x 1 &5b17 a0 11 a0 b2 ; copy area from &79a0 to &7aa0, 10 x 11 &5b1b 00 ; no text &5b1c 6d 5a ; continue at &5a6d (graphics_continuation_5a6d) ; graphics_09 &5b1e 45 ; colour 1 is blue, colour 2 is magenta &5b1f 01 ; 1 line &5b20 01 26 f8 ; line at &6e01, direction 1, colour 2, length 60, slope 0 &5b23 08 ; 8 quads &5b24 78 20 c2 ae ; quad at &6878, direction 0, lengths 2 2, slope 1, draw 234, fill 5 at 1 &5b28 89 84 1a f5 ; quad at &6c89, direction 3, lengths 10 8, slope 0, draw 13, no fill &5b2c d8 80 c5 1c ; quad at &68d8, direction 2, lengths 5 8, slope 0, draw 34, fill 0 at 2 &5b30 8c 80 3a 35 ; quad at &688c, direction 3, lengths 10 8, slope 0, draw 13, fill 1 at 2 &5b34 a9 82 41 bb ; quad at &6aa9, direction 2, lengths 1 8, slope 0, draw 124, fill 5 at 2 &5b38 93 82 22 ff ; quad at &6a93, direction 2, lengths 2 8, slope 0, draw 1234, no fill &5b3c 8b 82 24 f5 ; quad at &6a8b, direction 2, lengths 4 8, slope 0, draw 13, no fill &5b40 54 23 42 e6 ; quad at &6b54, direction 0, lengths 2 2, slope 1, draw 23, no fill &5b44 03 ; 3 filled areas &5b45 88 22 ; fill area at &6a88, fill 1 &5b47 8e 23 ; fill area at &6b8e, fill 1 &5b49 6c 03 ; fill area at &6b6c, fill 0 &5b4b 01 ; 1 copied area &5b4c 89 32 b0 42 ; mirror area from &7a88 to &6ab0, 11 x 4 &5b50 90 69 04 ; text at &6990, length &04 &5b53 13 00 17 08 ; "TAXI" &5b57 6d 5a ; continue at &5a6d (graphics_continuation_5a6d) ; graphics_08 &5b59 14 ; colour 1 is red, colour 2 is blue &5b5a 14 ; 20 lines &5b5b 16 2a 2b ; line at &7216, direction 1, colour 2, length 8, slope 3 &5b5e 23 2a 3a ; line at &7223, direction 1, colour 2, length 12, slope 2 &5b61 3d 09 39 ; line at &713d, direction 0, colour 2, length 12, slope 1 &5b64 51 08 4a ; line at &7051, direction 0, colour 2, length 16, slope 2 &5b67 61 06 3b ; line at &6e61, direction 0, colour 2, length 12, slope 3 &5b6a 6d 04 a8 ; line at &6c6d, direction 0, colour 2, length 40, slope 0 &5b6d d7 8a 6b ; line at &72d7, direction 4, colour 2, length 24, slope 3 &5b70 c7 87 4a ; line at &6fc7, direction 4, colour 2, length 16, slope 2 &5b73 b7 85 59 ; line at &6db7, direction 4, colour 2, length 20, slope 1 &5b76 8b a3 3a ; line at &6b8b, direction 5, colour 2, length 12, slope 2 &5b79 75 a2 2b ; line at &6a75, direction 5, colour 2, length 8, slope 3 &5b7c 38 a3 1a ; line at &6b38, direction 5, colour 2, length 4, slope 2 &5b7f 78 60 2a ; line at &6878, direction 3, colour 2, length 8, slope 2 &5b82 8b 00 18 ; line at &688b, direction 0, colour 2, length 4, slope 0 &5b85 43 03 48 ; line at &6b43, direction 0, colour 2, length 16, slope 0 &5b88 3b c3 19 ; line at &6b3b, direction 6, colour 2, length 4, slope 1 &5b8b 38 a3 1a ; line at &6b38, direction 5, colour 2, length 4, slope 2 &5b8e 46 83 19 ; line at &6b46, direction 4, colour 2, length 4, slope 1 &5b91 cb 43 2a ; line at &6bcb, direction 2, colour 2, length 8, slope 2 &5b94 c3 23 1a ; line at &6bc3, direction 1, colour 2, length 4, slope 2 &5b97 03 ; 3 quads &5b98 38 22 52 ef ; quad at &6a38, direction 1, lengths 2 2, slope 1, draw 1234, no fill &5b9c c5 40 54 ff ; quad at &68c5, direction 1, lengths 4 4, slope 2, draw 1234, no fill &5ba0 c3 81 41 12 ; quad at &69c3, direction 2, lengths 1 8, slope 0, draw 2, fill 0 at 2 &5ba4 0a ; 10 filled areas &5ba5 41 02 ; fill area at &6a41, fill 0 &5ba7 09 21 ; fill area at &6909, fill 1 &5ba9 61 21 ; fill area at &6961, fill 1 &5bab f9 21 ; fill area at &69f9, fill 1 &5bad b1 21 ; fill area at &69b1, fill 1 &5baf 38 04 ; fill area at &6c38, fill 0 &5bb1 38 22 ; fill area at &6a38, fill 1 &5bb3 72 20 ; fill area at &6872, fill 1 &5bb5 c5 03 ; fill area at &6bc5, fill 0 &5bb7 c9 04 ; fill area at &6cc9, fill 0 &5bb9 00 ; 0 copied areas &5bba 00 ; no text &5bbb ff ; end ; graphics_continuation_5bbc # Used by graphics_1b, graphics_1c, graphics_1d, graphics_1e &5bbc 0a ; 10 lines &5bbd 03 25 8b ; line at &6d03, direction 1, colour 2, length 32, slope 3 &5bc0 3b 85 4a ; line at &6d3b, direction 4, colour 2, length 16, slope 2 &5bc3 34 23 a8 ; line at &6b34, direction 1, colour 2, length 40, slope 0 &5bc6 2c 83 88 ; line at &6b2c, direction 4, colour 2, length 32, slope 0 &5bc9 3d 24 94 ; line at &6c3d, direction 1, colour 1, length 36, slope 0 &5bcc 35 e4 76 ; line at &6c35, direction 7, colour 1, length 28, slope 2 &5bcf 37 1b 77 ; line at &8337, direction 0, colour 1, length 28, slope 3 &5bd2 2e e3 76 ; line at &6b2e, direction 7, colour 1, length 28, slope 2 &5bd5 36 23 a4 ; line at &6b36, direction 1, colour 1, length 40, slope 0 &5bd8 02 2a 04 ; line at &7202, direction 1, colour 1, length 0, slope 0 &5bdb 0b ; 11 quads &5bdc 01 86 10 55 ; quad at &6e01, direction 3, lengths 0 8, slope 0, draw 13, fill 2 at 2 &5be0 05 89 30 11 ; quad at &7105, direction 3, lengths 0 8, slope 0, draw 1, fill 0 at 2 &5be4 45 86 61 5a ; quad at &6e45, direction 2, lengths 1 8, slope 0, draw 24, fill 2 at 2 &5be8 01 c7 18 e7 ; quad at &6f01, direction 3, lengths 8 12, slope 2, draw 123, no fill &5bec 42 85 18 f5 ; quad at &6d42, direction 3, lengths 8 8, slope 0, draw 13, no fill &5bf0 03 e4 46 01 ; quad at &6c03, direction 2, lengths 6 14, slope 3, draw 1, fill 0 at 1 &5bf4 02 e5 28 e3 ; quad at &6d02, direction 2, lengths 8 14, slope 3, draw 12, no fill &5bf8 47 83 33 13 ; quad at &6b47, direction 3, lengths 3 8, slope 0, draw 12, fill 0 at 2 &5bfc 5f 83 33 13 ; quad at &6b5f, direction 3, lengths 3 8, slope 0, draw 12, fill 0 at 2 &5c00 77 83 32 11 ; quad at &6b77, direction 3, lengths 2 8, slope 0, draw 1, fill 0 at 2 &5c04 10 e5 33 0a ; quad at &6d10, direction 3, lengths 3 14, slope 3, draw 24, fill 0 at 1 &5c08 16 ; 22 filled areas &5c09 64 25 ; fill area at &6d64, fill 1 &5c0b 18 04 ; fill area at &6c18, fill 0 &5c0d 20 05 ; fill area at &6d20, fill 0 &5c0f 3d 03 ; fill area at &6b3d, fill 0 &5c11 3f 03 ; fill area at &6b3f, fill 0 &5c13 2d 03 ; fill area at &6b2d, fill 0 &5c15 3b 04 ; fill area at &6c3b, fill 0 &5c17 07 06 ; fill area at &6e07, fill 0 &5c19 28 05 ; fill area at &6d28, fill 0 &5c1b 3f 04 ; fill area at &6c3f, fill 0 &5c1d 08 06 ; fill area at &6e08, fill 0 &5c1f 05 05 ; fill area at &6d05, fill 0 &5c21 09 05 ; fill area at &6d09, fill 0 &5c23 15 04 ; fill area at &6c15, fill 0 &5c25 28 26 ; fill area at &6e28, fill 1 &5c27 3d 25 ; fill area at &6d3d, fill 1 &5c29 01 27 ; fill area at &6f01, fill 1 &5c2b 17 26 ; fill area at &6e17, fill 1 &5c2d 07 a0 ; fill area at &6807, fill 5 &5c2f 37 a0 ; fill area at &6837, fill 5 &5c31 2d 04 ; fill area at &6c2d, fill 0 &5c33 34 04 ; fill area at &6c34, fill 0 &5c35 01 ; 1 copied area &5c36 01 b0 80 f0 ; mirror area from &7800 to &7880, 8 x 15 &5c3a 00 ; no text &5c3b ff ; end ; graphics_1b ; graphics_1e &5c3c 46 ; colour 1 is blue, colour 2 is cyan &5c3d 00 ; 0 lines &5c3e 00 ; 0 quads &5c3f 00 ; 0 filled areas &5c40 00 ; 0 copied areas &5c41 00 ; no text &5c42 bc 5b ; continue at &5bbc (graphics_continuation_5bbc) ; graphics_1c ; graphics_1d &5c44 46 ; colour 1 is blue, colour 2 is cyan &5c45 00 ; 0 lines &5c46 01 ; 1 quad &5c47 7c 81 42 fb ; quad at &697c, direction 2, lengths 2 8, slope 0, draw 124, no fill &5c4b 00 ; 0 filled areas &5c4c 00 ; 0 copied areas &5c4d 00 ; no text &5c4e bc 5b ; continue at &5bbc (graphics_continuation_5bbc) ; graphics_continuation_5c50 # Used by graphics_32, graphics_34 &5c50 08 ; 8 lines &5c51 58 84 1a ; line at &6c58, direction 4, colour 2, length 4, slope 2 &5c54 5e 83 29 ; line at &6b5e, direction 4, colour 2, length 8, slope 1 &5c57 79 84 1a ; line at &6c79, direction 4, colour 2, length 4, slope 2 &5c5a 70 43 29 ; line at &6b70, direction 2, colour 2, length 8, slope 1 &5c5d 64 44 69 ; line at &6c64, direction 2, colour 2, length 24, slope 1 &5c60 85 44 69 ; line at &6c85, direction 2, colour 2, length 24, slope 1 &5c63 29 25 68 ; line at &6d29, direction 1, colour 2, length 24, slope 0 &5c66 89 25 a8 ; line at &6d89, direction 1, colour 2, length 40, slope 0 &5c69 06 ; 6 quads &5c6a 60 84 14 fe ; quad at &6c60, direction 3, lengths 4 8, slope 0, draw 234, no fill &5c6e 57 82 24 f9 ; quad at &6a57, direction 2, lengths 4 8, slope 0, draw 14, no fill &5c72 54 23 18 fe ; quad at &6b54, direction 1, lengths 8 2, slope 1, draw 234, no fill &5c76 5d 24 36 1e ; quad at &6c5d, direction 1, lengths 6 2, slope 1, draw 234, fill 0 at 2 &5c7a 89 88 24 16 ; quad at &7089, direction 2, lengths 4 8, slope 0, draw 23, fill 0 at 2 &5c7e 94 87 14 f7 ; quad at &6f94, direction 3, lengths 4 8, slope 0, draw 123, no fill &5c82 03 ; 3 filled areas &5c83 68 07 ; fill area at &6f68, fill 0 &5c85 4b 62 ; fill area at &6a4b, fill 3 &5c87 8c 63 ; fill area at &6b8c, fill 3 &5c89 00 ; 0 copied areas &5c8a 00 ; no text &5c8b ff ; end ; graphics_34 &5c8c 81 25 ; colour 1 is magenta, colour 2 is red &5c8e 05 ; 5 lines &5c8f 1d 03 19 ; line at &6b1d, direction 0, colour 2, length 4, slope 1 &5c92 19 83 28 ; line at &6b19, direction 4, colour 2, length 8, slope 0 &5c95 1e 41 19 ; line at &691e, direction 2, colour 2, length 4, slope 1 &5c98 16 21 18 ; line at &6916, direction 1, colour 2, length 4, slope 0 &5c9b 15 03 40 ; line at &6b15, direction 0, colour 0, length 16, slope 0 &5c9e 04 ; 4 quads &5c9f 2d 81 fb fd ; quad at &692d, direction 3, lengths 11 8, slope 0, draw 134, no fill &5ca3 15 81 41 14 ; quad at &6915, direction 2, lengths 1 8, slope 0, draw 3, fill 0 at 2 &5ca7 11 84 a1 ff ; quad at &6c11, direction 2, lengths 1 8, slope 0, draw 1234, no fill &5cab 11 85 81 31 ; quad at &6d11, direction 2, lengths 1 8, slope 0, draw 1, fill 1 at 2 &5caf 03 ; 3 filled areas &5cb0 02 a0 ; fill area at &6802, fill 5 &5cb2 27 a2 ; fill area at &6a27, fill 5 &5cb4 25 a4 ; fill area at &6c25, fill 5 &5cb6 02 ; 2 copied areas &5cb7 19 31 08 01 ; mirror area from &7918 to &6908, 0 x 0 &5cbb 01 b0 80 f0 ; mirror area from &7800 to &7880, 8 x 15 &5cbf 00 ; no text &5cc0 50 5c ; continue at &5c50 (graphics_continuation_5c50) ; graphics_32 &5cc2 81 25 ; colour 1 is magenta, colour 2 is red &5cc4 07 ; 7 lines &5cc5 50 40 19 ; line at &6850, direction 2, colour 2, length 4, slope 1 &5cc8 5c 40 2a ; line at &685c, direction 2, colour 2, length 8, slope 2 &5ccb 64 41 3b ; line at &6964, direction 2, colour 2, length 12, slope 3 &5cce 64 01 19 ; line at &6964, direction 0, colour 2, length 4, slope 1 &5cd1 01 25 58 ; line at &6d01, direction 1, colour 2, length 20, slope 0 &5cd4 60 81 39 ; line at &6960, direction 4, colour 2, length 12, slope 1 &5cd7 68 40 64 ; line at &6868, direction 2, colour 1, length 24, slope 0 &5cda 01 ; 1 quad &5cdb d8 20 a5 3c ; quad at &68d8, direction 0, lengths 5 2, slope 1, draw 34, fill 1 at 2 &5cdf 02 ; 2 filled areas &5ce0 63 a0 ; fill area at &6863, fill 5 &5ce2 65 a1 ; fill area at &6965, fill 5 &5ce4 01 ; 1 copied area &5ce5 51 30 68 20 ; mirror area from &7850 to &6868, 6 x 2 &5ce9 00 ; no text &5cea 50 5c ; continue at &5c50 (graphics_continuation_5c50) ; graphics_33 &5cec 45 ; colour 1 is blue, colour 2 is magenta &5ced 08 ; 8 lines &5cee 06 09 4a ; line at &7106, direction 0, colour 2, length 16, slope 2 &5cf1 16 07 19 ; line at &6f16, direction 0, colour 2, length 4, slope 1 &5cf4 1e 06 59 ; line at &6e1e, direction 0, colour 2, length 20, slope 1 &5cf7 42 24 38 ; line at &6c42, direction 1, colour 2, length 12, slope 0 &5cfa 5d 24 2b ; line at &6c5d, direction 1, colour 2, length 8, slope 3 &5cfd 6a 24 48 ; line at &6c6a, direction 1, colour 2, length 16, slope 0 &5d00 12 06 29 ; line at &6e12, direction 0, colour 2, length 8, slope 1 &5d03 33 04 19 ; line at &6c33, direction 0, colour 2, length 4, slope 1 &5d06 08 ; 8 quads &5d07 1e 86 53 ff ; quad at &6e1e, direction 3, lengths 3 8, slope 0, draw 1234, no fill &5d0b 35 26 15 e7 ; quad at &6e35, direction 1, lengths 5 2, slope 1, draw 123, no fill &5d0f 31 27 41 e6 ; quad at &6f31, direction 0, lengths 1 2, slope 1, draw 23, no fill &5d13 51 25 41 ee ; quad at &6d51, direction 0, lengths 1 2, slope 1, draw 234, no fill &5d17 3e 86 13 fc ; quad at &6e3e, direction 3, lengths 3 8, slope 0, draw 34, no fill &5d1b 26 24 32 ab ; quad at &6c26, direction 1, lengths 2 2, slope 1, draw 124, fill 5 at 1 &5d1f 12 23 65 cb ; quad at &6b12, direction 0, lengths 5 2, slope 1, draw 124, fill 6 at 1 &5d23 6d 80 36 bf ; quad at &686d, direction 3, lengths 6 8, slope 0, draw 1234, fill 5 at 2 &5d27 08 ; 8 filled areas &5d28 2b a4 ; fill area at &6c2b, fill 5 &5d2a 77 24 ; fill area at &6c77, fill 1 &5d2c 13 28 ; fill area at &7013, fill 1 &5d2e 37 c3 ; fill area at &6b37, fill 6 &5d30 5b 00 ; fill area at &685b, fill 0 &5d32 02 01 ; fill area at &6902, fill 0 &5d34 19 06 ; fill area at &6e19, fill 0 &5d36 35 04 ; fill area at &6c35, fill 0 &5d38 01 ; 1 copied area &5d39 01 b0 80 f0 ; mirror area from &7800 to &7880, 8 x 15 &5d3d 68 69 03 ; text at &6968, length &03 &5d40 08 03 0c ; "IDM" &5d43 ff ; end ; graphics_2b &5d44 52 ; colour 1 is magenta, colour 2 is green &5d45 09 ; 9 lines &5d46 25 e8 4a ; line at &7025, direction 7, colour 2, length 16, slope 2 &5d49 60 05 ab ; line at &6d60, direction 0, colour 2, length 40, slope 3 &5d4c b0 40 cb ; line at &68b0, direction 2, colour 2, length 48, slope 3 &5d4f e7 48 4b ; line at &70e7, direction 2, colour 2, length 16, slope 3 &5d52 94 87 a8 ; line at &6f94, direction 4, colour 2, length 40, slope 0 &5d55 88 08 19 ; line at &7088, direction 0, colour 2, length 4, slope 1 &5d58 98 88 19 ; line at &7098, direction 4, colour 2, length 4, slope 1 &5d5b 7b 04 2a ; line at &6c7b, direction 0, colour 2, length 8, slope 2 &5d5e 7c a4 1a ; line at &6c7c, direction 5, colour 2, length 4, slope 2 &5d61 08 ; 8 quads &5d62 02 23 f1 06 ; quad at &6b02, direction 1, lengths 1 2, slope 1, draw 23, fill 0 at 1 &5d66 0f 22 f4 a3 ; quad at &6a0f, direction 1, lengths 4 2, slope 1, draw 12, fill 5 at 1 &5d6a 2f 22 b7 06 ; quad at &6a2f, direction 1, lengths 7 2, slope 1, draw 23, fill 0 at 1 &5d6e d3 60 b6 fb ; quad at &68d3, direction 1, lengths 6 6, slope 3, draw 124, no fill &5d72 d0 83 62 b4 ; quad at &6bd0, direction 2, lengths 2 8, slope 0, draw 3, fill 5 at 2 &5d76 88 88 13 fe ; quad at &7088, direction 3, lengths 3 8, slope 0, draw 234, no fill &5d7a 83 23 23 27 ; quad at &6b83, direction 0, lengths 3 2, slope 1, draw 123, fill 1 at 1 &5d7e 94 83 81 3a ; quad at &6b94, direction 2, lengths 1 8, slope 0, draw 24, fill 1 at 2 &5d82 05 ; 5 filled areas &5d83 62 01 ; fill area at &6962, fill 0 &5d85 02 01 ; fill area at &6902, fill 0 &5d87 f9 00 ; fill area at &68f9, fill 0 &5d89 ca 01 ; fill area at &69ca, fill 0 &5d8b 95 27 ; fill area at &6f95, fill 1 &5d8d 00 ; 0 copied areas &5d8e 00 ; no text &5d8f ff ; end ; graphics_continuation_5d90 # Used by graphics_03, graphics_62, graphics_63 &5d90 08 ; 8 lines &5d91 3f e4 8b ; line at &6c3f, direction 7, colour 2, length 32, slope 3 &5d94 49 a3 1b ; line at &6b49, direction 5, colour 2, length 4, slope 3 &5d97 33 a2 7b ; line at &6a33, direction 5, colour 2, length 28, slope 3 &5d9a 59 a1 5a ; line at &6959, direction 5, colour 2, length 20, slope 2 &5d9d 39 e4 3b ; line at &6c39, direction 7, colour 2, length 12, slope 3 &5da0 0f e4 2b ; line at &6c0f, direction 7, colour 2, length 8, slope 3 &5da3 46 28 88 ; line at &7046, direction 1, colour 2, length 32, slope 0 &5da6 03 61 7b ; line at &6903, direction 3, colour 2, length 28, slope 3 &5da9 08 ; 8 quads &5daa 04 c6 88 a6 ; quad at &6e04, direction 2, lengths 8 12, slope 2, draw 23, fill 5 at 1 &5dae 40 24 12 ef ; quad at &6c40, direction 1, lengths 2 2, slope 1, draw 1234, no fill &5db2 16 24 25 cf ; quad at &6c16, direction 0, lengths 5 2, slope 1, draw 1234, fill 6 at 1 &5db6 3a c2 25 c7 ; quad at &6a3a, direction 2, lengths 5 12, slope 2, draw 123, fill 6 at 1 &5dba 61 81 25 d7 ; quad at &6961, direction 2, lengths 5 8, slope 0, draw 123, fill 6 at 2 &5dbe 50 c3 14 e7 ; quad at &6b50, direction 3, lengths 4 12, slope 2, draw 123, no fill &5dc2 76 81 24 d4 ; quad at &6976, direction 2, lengths 4 8, slope 0, draw 3, fill 6 at 2 &5dc6 13 c7 23 e5 ; quad at &6f13, direction 2, lengths 3 12, slope 2, draw 13, no fill &5dca 0b ; 11 filled areas &5dcb 22 c4 ; fill area at &6c22, fill 6 &5dcd 52 c3 ; fill area at &6b52, fill 6 &5dcf 67 c2 ; fill area at &6a67, fill 6 &5dd1 40 c4 ; fill area at &6c40, fill 6 &5dd3 4c c3 ; fill area at &6b4c, fill 6 &5dd5 08 25 ; fill area at &6d08, fill 1 &5dd7 1b 25 ; fill area at &6d1b, fill 1 &5dd9 3d 24 ; fill area at &6c3d, fill 1 &5ddb 20 25 ; fill area at &6d20, fill 1 &5ddd 72 a3 ; fill area at &6b72, fill 5 &5ddf 50 a6 ; fill area at &6e50, fill 5 &5de1 01 ; 1 copied area &5de2 01 b0 80 f0 ; mirror area from &7800 to &7880, 8 x 15 &5de6 00 ; no text &5de7 ff ; end ; graphics_62 &5de8 41 ; colour 1 is blue, colour 2 is red &5de9 00 ; 0 lines &5dea 03 ; 3 quads &5deb 7a 86 52 7f ; quad at &6e7a, direction 3, lengths 2 8, slope 0, draw 1234, fill 3 at 2 &5def 7f 23 11 ef ; quad at &6b7f, direction 1, lengths 1 2, slope 1, draw 1234, no fill &5df3 7c 24 11 ff ; quad at &6c7c, direction 1, lengths 1 2, slope 1, draw 1234, no fill &5df7 00 ; 0 filled areas &5df8 00 ; 0 copied areas &5df9 00 ; no text &5dfa 90 5d ; continue at &5d90 (graphics_continuation_5d90) ; graphics_63 &5dfc 41 ; colour 1 is blue, colour 2 is red &5dfd 01 ; 1 line &5dfe 7e 28 28 ; line at &707e, direction 1, colour 2, length 8, slope 0 &5e01 02 ; 2 quads &5e02 6a 26 32 f3 ; quad at &6e6a, direction 1, lengths 2 2, slope 1, draw 12, no fill &5e06 6e 24 33 89 ; quad at &6c6e, direction 1, lengths 3 2, slope 1, draw 14, fill 4 at 1 &5e0a 01 ; 1 filled area &5e0b 86 86 ; fill area at &6e86, fill 4 &5e0d 00 ; 0 copied areas &5e0e 00 ; no text &5e0f 90 5d ; continue at &5d90 (graphics_continuation_5d90) ; graphics_continuation_5e11 # Used by graphics_14, graphics_3e, graphics_65 &5e11 06 ; 6 lines &5e12 57 06 19 ; line at &6e57, direction 0, colour 2, length 4, slope 1 &5e15 63 26 48 ; line at &6e63, direction 1, colour 2, length 16, slope 0 &5e18 7b 24 58 ; line at &6c7b, direction 1, colour 2, length 20, slope 0 &5e1b 77 21 18 ; line at &6977, direction 1, colour 2, length 4, slope 0 &5e1e 5a 03 39 ; line at &6b5a, direction 0, colour 2, length 12, slope 1 &5e21 77 c5 19 ; line at &6d77, direction 6, colour 2, length 4, slope 1 &5e24 08 ; 8 quads &5e25 57 86 75 7f ; quad at &6e57, direction 3, lengths 5 8, slope 0, draw 1234, fill 3 at 2 &5e29 5b 83 61 7f ; quad at &6b5b, direction 2, lengths 1 8, slope 0, draw 1234, fill 3 at 2 &5e2d 62 23 83 63 ; quad at &6b62, direction 0, lengths 3 2, slope 1, draw 12, fill 3 at 1 &5e31 7e 26 71 67 ; quad at &6e7e, direction 1, lengths 1 2, slope 1, draw 123, fill 3 at 1 &5e35 82 27 53 67 ; quad at &6f82, direction 1, lengths 3 2, slope 1, draw 123, fill 3 at 1 &5e39 7f 85 34 71 ; quad at &6d7f, direction 3, lengths 4 8, slope 0, draw 1, fill 3 at 2 &5e3d 7f 84 24 73 ; quad at &6c7f, direction 2, lengths 4 8, slope 0, draw 12, fill 3 at 2 &5e41 9e 24 71 67 ; quad at &6c9e, direction 1, lengths 1 2, slope 1, draw 123, fill 3 at 1 &5e45 04 ; 4 filled areas &5e46 8c 64 ; fill area at &6c8c, fill 3 &5e48 81 66 ; fill area at &6e81, fill 3 &5e4a 6a 62 ; fill area at &6a6a, fill 3 &5e4c 67 62 ; fill area at &6a67, fill 3 &5e4e 00 ; 0 copied areas &5e4f 00 ; no text &5e50 ff ; end ; graphics_65 &5e51 21 ; colour 1 is green, colour 2 is red &5e52 04 ; 4 lines &5e53 a7 06 59 ; line at &6ea7, direction 0, colour 2, length 20, slope 1 &5e56 cb 24 48 ; line at &6ccb, direction 1, colour 2, length 16, slope 0 &5e59 a4 25 38 ; line at &6da4, direction 1, colour 2, length 12, slope 0 &5e5c 5b 06 28 ; line at &6e5b, direction 0, colour 2, length 8, slope 0 &5e5f 0b ; 11 quads &5e60 08 24 45 cf ; quad at &6c08, direction 0, lengths 5 2, slope 1, draw 1234, fill 6 at 1 &5e64 57 26 71 e9 ; quad at &6e57, direction 1, lengths 1 2, slope 1, draw 14, no fill &5e68 7a 27 65 e6 ; quad at &6f7a, direction 0, lengths 5 2, slope 1, draw 23, no fill &5e6c a0 87 14 ff ; quad at &6fa0, direction 3, lengths 4 8, slope 0, draw 1234, no fill &5e70 c7 26 15 e7 ; quad at &6ec7, direction 1, lengths 5 2, slope 1, draw 123, no fill &5e74 b4 87 41 1e ; quad at &6fb4, direction 2, lengths 1 8, slope 0, draw 234, fill 0 at 2 &5e78 bf 27 34 06 ; quad at &6fbf, direction 1, lengths 4 2, slope 1, draw 23, fill 0 at 1 &5e7c 03 29 28 a1 ; quad at &7103, direction 0, lengths 8 2, slope 1, draw 1, fill 5 at 1 &5e80 40 80 b3 fc ; quad at &6840, direction 3, lengths 3 8, slope 0, draw 34, no fill &5e84 e4 85 34 b1 ; quad at &6de4, direction 3, lengths 4 8, slope 0, draw 1, fill 5 at 2 &5e88 8f 80 46 df ; quad at &688f, direction 2, lengths 6 8, slope 0, draw 1234, fill 6 at 2 &5e8c 04 ; 4 filled areas &5e8d aa a8 ; fill area at &70aa, fill 5 &5e8f ce 04 ; fill area at &6cce, fill 0 &5e91 b5 06 ; fill area at &6eb5, fill 0 &5e93 a5 a5 ; fill area at &6da5, fill 5 &5e95 00 ; 0 copied areas &5e96 00 ; no text &5e97 11 5e ; continue at &5e11 (graphics_continuation_5e11) ; graphics_3e &5e99 65 ; colour 1 is cyan, colour 2 is magenta &5e9a 16 ; 22 lines &5e9b 81 04 5a ; line at &6c81, direction 0, colour 2, length 20, slope 2 &5e9e 81 04 5b ; line at &6c81, direction 0, colour 2, length 20, slope 3 &5ea1 89 21 2a ; line at &6989, direction 1, colour 2, length 8, slope 2 &5ea4 9d 20 d8 ; line at &689d, direction 1, colour 2, length 52, slope 0 &5ea7 11 03 3b ; line at &6b11, direction 0, colour 2, length 12, slope 3 &5eaa 29 83 3b ; line at &6b29, direction 4, colour 2, length 12, slope 3 &5ead 1d 21 28 ; line at &691d, direction 1, colour 2, length 8, slope 0 &5eb0 1d 01 39 ; line at &691d, direction 0, colour 2, length 12, slope 1 &5eb3 22 21 28 ; line at &6922, direction 1, colour 2, length 8, slope 0 &5eb6 2d 01 39 ; line at &692d, direction 0, colour 2, length 12, slope 1 &5eb9 33 41 3b ; line at &6933, direction 2, colour 2, length 12, slope 3 &5ebc 32 20 28 ; line at &6832, direction 1, colour 2, length 8, slope 0 &5ebf 43 40 3b ; line at &6843, direction 2, colour 2, length 12, slope 3 &5ec2 b8 04 2a ; line at &6cb8, direction 0, colour 2, length 8, slope 2 &5ec5 e8 23 18 ; line at &6be8, direction 1, colour 2, length 4, slope 0 &5ec8 c0 23 18 ; line at &6bc0, direction 1, colour 2, length 4, slope 0 &5ecb e0 04 2a ; line at &6ce0, direction 0, colour 2, length 8, slope 2 &5ece c7 04 2a ; line at &6cc7, direction 0, colour 2, length 8, slope 2 &5ed1 b1 c6 aa ; line at &6eb1, direction 6, colour 2, length 40, slope 2 &5ed4 4f 26 18 ; line at &6e4f, direction 1, colour 2, length 4, slope 0 &5ed7 a7 26 28 ; line at &6ea7, direction 1, colour 2, length 8, slope 0 &5eda ef 26 58 ; line at &6eef, direction 1, colour 2, length 20, slope 0 &5edd 0b ; 11 quads &5ede c5 84 14 fd ; quad at &6cc5, direction 3, lengths 4 8, slope 0, draw 134, no fill &5ee2 c8 83 23 fc ; quad at &6bc8, direction 2, lengths 3 8, slope 0, draw 34, no fill &5ee6 89 81 1f ff ; quad at &6989, direction 3, lengths 15 8, slope 0, draw 1234, no fill &5eea 30 23 a1 af ; quad at &6b30, direction 0, lengths 1 2, slope 1, draw 1234, fill 5 at 1 &5eee 11 83 a4 bc ; quad at &6b11, direction 2, lengths 4 8, slope 0, draw 34, fill 5 at 2 &5ef2 3c 22 a2 27 ; quad at &6a3c, direction 0, lengths 2 2, slope 1, draw 123, fill 1 at 1 &5ef6 d7 6a 1c e7 ; quad at &72d7, direction 1, lengths 12 6, slope 3, draw 123, no fill &5efa e0 84 41 df ; quad at &6ce0, direction 2, lengths 1 8, slope 0, draw 1234, fill 6 at 2 &5efe b8 84 41 df ; quad at &6cb8, direction 2, lengths 1 8, slope 0, draw 1234, fill 6 at 2 &5f02 c7 43 42 e5 ; quad at &6bc7, direction 0, lengths 2 4, slope 2, draw 13, no fill &5f06 ef 43 42 c3 ; quad at &6bef, direction 0, lengths 2 4, slope 2, draw 12, fill 6 at 1 &5f0a 09 ; 9 filled areas &5f0b 2f a1 ; fill area at &692f, fill 5 &5f0d 24 a1 ; fill area at &6924, fill 5 &5f0f 26 a1 ; fill area at &6926, fill 5 &5f11 3c 21 ; fill area at &693c, fill 1 &5f13 40 22 ; fill area at &6a40, fill 1 &5f15 2f 20 ; fill area at &682f, fill 1 &5f17 b3 c1 ; fill area at &69b3, fill 6 &5f19 b6 a0 ; fill area at &68b6, fill 5 &5f1b cc c6 ; fill area at &6ecc, fill 6 &5f1d 00 ; 0 copied areas &5f1e 00 ; no text &5f1f 11 5e ; continue at &5e11 (graphics_continuation_5e11) ; graphics_14 &5f21 62 ; colour 1 is cyan, colour 2 is green &5f22 05 ; 5 lines &5f23 7b 21 28 ; line at &697b, direction 1, colour 2, length 8, slope 0 &5f26 16 06 29 ; line at &6e16, direction 0, colour 2, length 8, slope 1 &5f29 35 04 19 ; line at &6c35, direction 0, colour 2, length 4, slope 1 &5f2c 3d 24 28 ; line at &6c3d, direction 1, colour 2, length 8, slope 0 &5f2f 22 25 3a ; line at &6d22, direction 1, colour 2, length 12, slope 2 &5f32 0c ; 12 quads &5f33 5a 23 64 e9 ; quad at &6b5a, direction 0, lengths 4 2, slope 1, draw 14, no fill &5f37 56 26 21 e9 ; quad at &6e56, direction 0, lengths 1 2, slope 1, draw 14, no fill &5f3b 23 85 12 fd ; quad at &6d23, direction 3, lengths 2 8, slope 0, draw 134, no fill &5f3f 16 86 14 ff ; quad at &6e16, direction 3, lengths 4 8, slope 0, draw 1234, no fill &5f43 35 26 15 e7 ; quad at &6e35, direction 1, lengths 5 2, slope 1, draw 123, no fill &5f47 39 80 84 bc ; quad at &6839, direction 2, lengths 4 8, slope 0, draw 34, fill 5 at 2 &5f4b 3e 86 23 bc ; quad at &6e3e, direction 2, lengths 3 8, slope 0, draw 34, fill 5 at 2 &5f4f 2a 87 61 1e ; quad at &6f2a, direction 2, lengths 1 8, slope 0, draw 234, fill 0 at 2 &5f53 31 27 61 06 ; quad at &6f31, direction 0, lengths 1 2, slope 1, draw 23, fill 0 at 1 &5f57 0d 23 e4 a4 ; quad at &6b0d, direction 0, lengths 4 2, slope 1, draw 3, fill 5 at 1 &5f5b 32 c5 13 ef ; quad at &6d32, direction 3, lengths 3 12, slope 2, draw 1234, no fill &5f5f 7b 82 22 9f ; quad at &6a7b, direction 2, lengths 2 8, slope 0, draw 1234, fill 4 at 2 &5f63 02 ; 2 filled areas &5f64 56 a5 ; fill area at &6d56, fill 5 &5f66 06 aa ; fill area at &7206, fill 5 &5f68 01 ; 1 copied area &5f69 01 b0 80 f0 ; mirror area from &7800 to &7880, 8 x 15 &5f6d 00 ; no text &5f6e 11 5e ; continue at &5e11 (graphics_continuation_5e11) ; graphics_continuation_5f70 # Used by graphics_16, graphics_52, graphics_54 &5f70 07 ; 7 lines &5f71 7a 21 28 ; line at &697a, direction 1, colour 2, length 8, slope 0 &5f74 72 e1 2a ; line at &6972, direction 7, colour 2, length 8, slope 2 &5f77 66 c1 29 ; line at &6966, direction 6, colour 2, length 8, slope 1 &5f7a 56 c2 2a ; line at &6a56, direction 6, colour 2, length 8, slope 2 &5f7d 8a 61 2a ; line at &698a, direction 3, colour 2, length 8, slope 2 &5f80 9e 41 29 ; line at &699e, direction 2, colour 2, length 8, slope 1 &5f83 ae 42 2a ; line at &6aae, direction 2, colour 2, length 8, slope 2 &5f86 04 ; 4 quads &5f87 49 65 a3 e9 ; quad at &6d49, direction 0, lengths 3 6, slope 3, draw 14, no fill &5f8b b6 63 a3 f3 ; quad at &6bb6, direction 0, lengths 3 6, slope 3, draw 12, no fill &5f8f b9 87 66 b4 ; quad at &6fb9, direction 2, lengths 6 8, slope 0, draw 3, fill 5 at 2 &5f93 19 87 66 b4 ; quad at &6f19, direction 2, lengths 6 8, slope 0, draw 3, fill 5 at 2 &5f97 00 ; 0 filled areas &5f98 00 ; 0 copied areas &5f99 00 ; no text &5f9a ff ; end ; graphics_54 &5f9b 41 ; colour 1 is blue, colour 2 is red &5f9c 07 ; 7 lines &5f9d 19 0a 08 ; line at &7219, direction 0, colour 2, length 0, slope 0 &5fa0 49 0a 4a ; line at &7249, direction 0, colour 2, length 16, slope 2 &5fa3 59 08 29 ; line at &7059, direction 0, colour 2, length 8, slope 1 &5fa6 a6 22 1a ; line at &6aa6, direction 1, colour 2, length 4, slope 2 &5fa9 b5 05 19 ; line at &6db5, direction 0, colour 2, length 4, slope 1 &5fac 9e 41 19 ; line at &699e, direction 2, colour 2, length 4, slope 1 &5faf e9 2a 38 ; line at &72e9, direction 1, colour 2, length 12, slope 0 &5fb2 09 ; 9 quads &5fb3 49 85 ae fa ; quad at &6d49, direction 2, lengths 14 8, slope 0, draw 24, no fill &5fb7 4e 85 11 f5 ; quad at &6d4e, direction 3, lengths 1 8, slope 0, draw 13, no fill &5fbb 55 25 14 ef ; quad at &6d55, direction 1, lengths 4 2, slope 1, draw 1234, no fill &5fbf 08 2a 22 a4 ; quad at &7208, direction 0, lengths 2 2, slope 1, draw 3, fill 5 at 1 &5fc3 75 c3 16 e5 ; quad at &6b75, direction 3, lengths 6 12, slope 2, draw 13, no fill &5fc7 48 25 14 01 ; quad at &6d48, direction 1, lengths 4 2, slope 1, draw 1, fill 0 at 1 &5fcb 68 c3 16 01 ; quad at &6b68, direction 3, lengths 6 12, slope 2, draw 1, fill 0 at 1 &5fcf 69 c7 8a 21 ; quad at &6f69, direction 2, lengths 10 12, slope 2, draw 1, fill 1 at 1 &5fd3 b6 85 11 fd ; quad at &6db6, direction 3, lengths 1 8, slope 0, draw 134, no fill &5fd7 03 ; 3 filled areas &5fd8 9c 26 ; fill area at &6e9c, fill 1 &5fda 5d 04 ; fill area at &6c5d, fill 0 &5fdc 7f 02 ; fill area at &6a7f, fill 0 &5fde 00 ; 0 copied areas &5fdf 00 ; no text &5fe0 70 5f ; continue at &5f70 (graphics_continuation_5f70) ; graphics_52 &5fe2 41 ; colour 1 is blue, colour 2 is red &5fe3 08 ; 8 lines &5fe4 5e a2 1a ; line at &6a5e, direction 5, colour 2, length 4, slope 2 &5fe7 01 2a 38 ; line at &7201, direction 1, colour 2, length 12, slope 0 &5fea e1 8a 08 ; line at &72e1, direction 4, colour 2, length 0, slope 0 &5fed ea 4a 29 ; line at &72ea, direction 2, colour 2, length 8, slope 1 &5ff0 b1 8a 4a ; line at &72b1, direction 4, colour 2, length 16, slope 2 &5ff3 a1 88 29 ; line at &70a1, direction 4, colour 2, length 8, slope 1 &5ff6 4d 85 19 ; line at &6d4d, direction 4, colour 2, length 4, slope 1 &5ff9 61 02 19 ; line at &6a61, direction 0, colour 2, length 4, slope 1 &5ffc 08 ; 8 quads &5ffd 49 85 ae fa ; quad at &6d49, direction 2, lengths 14 8, slope 0, draw 24, no fill &6001 b6 85 11 f5 ; quad at &6db6, direction 3, lengths 1 8, slope 0, draw 13, no fill &6005 4e 85 11 f7 ; quad at &6d4e, direction 3, lengths 1 8, slope 0, draw 123, no fill &6009 96 23 14 ff ; quad at &6b96, direction 1, lengths 4 2, slope 1, draw 1234, no fill &600d 62 c2 16 f5 ; quad at &6a62, direction 3, lengths 6 12, slope 2, draw 13, no fill &6011 4e c4 2a 31 ; quad at &6c4e, direction 2, lengths 10 12, slope 2, draw 1, fill 1 at 2 &6015 99 23 14 11 ; quad at &6b99, direction 1, lengths 4 2, slope 1, draw 1, fill 0 at 2 &6019 6d c1 16 11 ; quad at &696d, direction 3, lengths 6 12, slope 2, draw 1, fill 0 at 2 &601d 04 ; 4 filled areas &601e 7e 02 ; fill area at &6a7e, fill 0 &6020 a5 04 ; fill area at &6ca5, fill 0 &6022 5b 26 ; fill area at &6e5b, fill 1 &6024 fb a6 ; fill area at &6efb, fill 5 &6026 00 ; 0 copied areas &6027 00 ; no text &6028 70 5f ; continue at &5f70 (graphics_continuation_5f70) ; graphics_16 &602a 32 ; colour 1 is yellow, colour 2 is green &602b 08 ; 8 lines &602c 19 0a 08 ; line at &7219, direction 0, colour 2, length 0, slope 0 &602f e1 8a 08 ; line at &72e1, direction 4, colour 2, length 0, slope 0 &6032 b0 aa ca ; line at &72b0, direction 5, colour 2, length 48, slope 2 &6035 82 08 e8 ; line at &7082, direction 0, colour 2, length 56, slope 0 &6038 48 08 29 ; line at &7048, direction 0, colour 2, length 8, slope 1 &603b 72 67 2a ; line at &6f72, direction 3, colour 2, length 8, slope 2 &603e 7a 27 1b ; line at &6f7a, direction 1, colour 2, length 4, slope 3 &6041 6c 27 1a ; line at &6f6c, direction 1, colour 2, length 4, slope 2 &6044 03 ; 3 quads &6045 08 2a 22 a4 ; quad at &7208, direction 0, lengths 2 2, slope 1, draw 3, fill 5 at 1 &6049 e9 29 22 b4 ; quad at &71e9, direction 0, lengths 2 2, slope 1, draw 3, fill 5 at 2 &604d 49 86 8e fa ; quad at &6e49, direction 2, lengths 14 8, slope 0, draw 24, no fill &6051 01 ; 1 filled area &6052 5e 28 ; fill area at &705e, fill 1 &6054 00 ; 0 copied areas &6055 00 ; no text &6056 70 5f ; continue at &5f70 (graphics_continuation_5f70) ; graphics_continuation_6058 # Used by graphics_0f, graphics_continuation_609b &6058 05 ; 5 lines &6059 6b 81 49 ; line at &696b, direction 4, colour 2, length 16, slope 1 &605c 45 25 2b ; line at &6d45, direction 1, colour 2, length 8, slope 3 &605f 46 61 2b ; line at &6946, direction 3, colour 2, length 8, slope 3 &6062 42 26 28 ; line at &6e42, direction 1, colour 2, length 8, slope 0 &6065 41 21 28 ; line at &6941, direction 1, colour 2, length 8, slope 0 &6068 03 ; 3 quads &6069 45 c5 22 ee ; quad at &6d45, direction 2, lengths 2 12, slope 2, draw 234, no fill &606d 45 c0 22 fb ; quad at &6845, direction 2, lengths 2 12, slope 2, draw 124, no fill &6071 1a 28 5b a4 ; quad at &701a, direction 1, lengths 11 2, slope 1, draw 3, fill 5 at 1 &6075 04 ; 4 filled areas &6076 56 a0 ; fill area at &6856, fill 5 &6078 50 a6 ; fill area at &6e50, fill 5 &607a 7b 00 ; fill area at &687b, fill 0 &607c 27 a0 ; fill area at &6827, fill 5 &607e 01 ; 1 copied area &607f 01 b0 80 f0 ; mirror area from &7800 to &7880, 8 x 15 &6083 00 ; no text &6084 ff ; end ; graphics_0f &6085 15 ; colour 1 is red, colour 2 is magenta &6086 02 ; 2 lines &6087 71 22 1a ; line at &6a71, direction 1, colour 2, length 4, slope 2 &608a 44 28 88 ; line at &7044, direction 1, colour 2, length 32, slope 0 &608d 02 ; 2 quads &608e 73 81 84 ff ; quad at &6973, direction 2, lengths 4 8, slope 0, draw 1234, no fill &6092 7b 81 11 fc ; quad at &697b, direction 3, lengths 1 8, slope 0, draw 34, no fill &6096 00 ; 0 filled areas &6097 00 ; 0 copied areas &6098 00 ; no text &6099 58 60 ; continue at &6058 (graphics_continuation_6058) ; graphics_continuation_609b # Used by graphics_0d, graphics_0e &609b 05 ; 5 lines &609c 48 82 28 ; line at &6a48, direction 4, colour 2, length 8, slope 0 &609f 74 41 19 ; line at &6974, direction 2, colour 2, length 4, slope 1 &60a2 73 05 19 ; line at &6d73, direction 0, colour 2, length 4, slope 1 &60a5 69 22 18 ; line at &6a69, direction 1, colour 2, length 4, slope 0 &60a8 68 25 18 ; line at &6d68, direction 1, colour 2, length 4, slope 0 &60ab 02 ; 2 quads &60ac 6f c1 11 ff ; quad at &696f, direction 3, lengths 1 12, slope 2, draw 1234, no fill &60b0 6d c4 11 ef ; quad at &6c6d, direction 3, lengths 1 12, slope 2, draw 1234, no fill &60b4 03 ; 3 filled areas &60b5 74 a4 ; fill area at &6c74, fill 5 &60b7 72 a2 ; fill area at &6a72, fill 5 &60b9 59 a2 ; fill area at &6a59, fill 5 &60bb 00 ; 0 copied areas &60bc 00 ; no text &60bd 58 60 ; continue at &6058 (graphics_continuation_6058) ; graphics_0e &60bf 15 ; colour 1 is red, colour 2 is magenta &60c0 03 ; 3 lines &60c1 7c 22 1b ; line at &6a7c, direction 1, colour 2, length 4, slope 3 &60c4 6e 25 38 ; line at &6d6e, direction 1, colour 2, length 12, slope 0 &60c7 22 2a c8 ; line at &7222, direction 1, colour 2, length 48, slope 0 &60ca 01 ; 1 quad &60cb 78 82 62 ff ; quad at &6a78, direction 2, lengths 2 8, slope 0, draw 1234, no fill &60cf 00 ; 0 filled areas &60d0 00 ; 0 copied areas &60d1 00 ; no text &60d2 9b 60 ; continue at &609b (graphics_continuation_609b) ; graphics_0d &60d4 15 ; colour 1 is red, colour 2 is magenta &60d5 07 ; 7 lines &60d6 74 e8 1a ; line at &7074, direction 7, colour 2, length 4, slope 2 &60d9 6e c8 1a ; line at &706e, direction 6, colour 2, length 4, slope 2 &60dc 7f 04 19 ; line at &6c7f, direction 0, colour 2, length 4, slope 1 &60df 72 aa 1a ; line at &7272, direction 5, colour 2, length 4, slope 2 &60e2 68 8a 1a ; line at &7268, direction 4, colour 2, length 4, slope 2 &60e5 58 27 58 ; line at &6f58, direction 1, colour 2, length 20, slope 0 &60e8 78 25 18 ; line at &6d78, direction 1, colour 2, length 4, slope 0 &60eb 03 ; 3 quads &60ec 69 89 16 ff ; quad at &7169, direction 3, lengths 6 8, slope 0, draw 1234, no fill &60f0 78 22 41 f1 ; quad at &6a78, direction 0, lengths 1 2, slope 1, draw 1, no fill &60f4 7b 88 42 17 ; quad at &707b, direction 2, lengths 2 8, slope 0, draw 123, fill 0 at 2 &60f8 01 ; 1 filled area &60f9 73 49 ; fill area at &7173, fill 2 &60fb 00 ; 0 copied areas &60fc 00 ; no text &60fd 9b 60 ; continue at &609b (graphics_continuation_609b) ; unused &60ff 00 ; vocabulary_one &6100 4e 4f 52 54 01 ; &01 : "NORT", &01 (VERB_NORTH) &6105 53 4f 55 54 02 ; &02 : "SOUT", &02 (VERB_SOUTH) &610a 45 41 53 54 03 ; &03 : "EAST", &03 (VERB_EAST) &610f 57 45 53 54 04 ; &04 : "WEST", &04 (VERB_WEST) &6114 4e 45 00 00 05 ; &05 : "NE" , &05 (VERB_NE) &6119 53 45 00 00 06 ; &06 : "SE" , &06 (VERB_SE) &611e 4e 57 00 00 07 ; &07 : "NW" , &07 (VERB_NW) &6123 53 57 00 00 08 ; &08 : "SW" , &08 (VERB_SW) &6128 55 50 00 00 09 ; &09 : "UP" , &09 (VERB_UP) &612d 44 4f 57 4e 0a ; &0a : "DOWN", &0a (VERB_DOWN) &6132 49 4e 00 00 0b ; &0b : "IN" , &0b (VERB_IN) &6137 45 4e 54 45 0b ; &0c : "ENTE", &0b (VERB_IN) &613c 4f 55 54 00 0c ; &0d : "OUT" , &0c (VERB_OUT) &6141 45 58 49 54 0c ; &0e : "EXIT", &0c (VERB_OUT) &6146 47 45 54 00 29 ; &0f : "GET" , &29 (VERB_GET) &614b 54 41 4b 45 29 ; &10 : "TAKE", &29 (VERB_GET) &6150 45 58 41 4d 2a ; &11 : "EXAM", &2a (VERB_EXAMINE) &6155 53 57 49 4d 0d ; &12 : "SWIM", &0d (VERB_SWIM) &615a 43 4c 49 4d 09 ; &13 : "CLIM", &09 (VERB_UP) &615f 41 47 41 49 2c ; &14 : "AGAI", &2c (VERB_AGAIN) &6164 52 45 4d 4f 14 ; &15 : "REMO", &14 (VERB_DROP) &6169 4c 4f 4f 4b 2a ; &16 : "LOOK", &2a (VERB_EXAMINE) &616e 48 45 4c 50 0e ; &17 : "HELP", &0e (VERB_HELP) &6173 49 4e 56 45 0f ; &18 : "INVE", &0f (VERB_INVENTORY) &6178 43 41 52 52 29 ; &19 : "CARR", &29 (VERB_GET) &617d 41 54 00 00 13 ; &1a : "AT" , &13 (VERB_FIRE) &6182 53 41 56 45 10 ; &1b : "SAVE", &10 (VERB_SAVE) &6187 51 55 49 54 11 ; &1c : "QUIT", &11 (VERB_QUIT) &618c 52 45 53 54 12 ; &1d : "REST", &12 (VERB_RESTORE) &6191 4c 4f 41 44 12 ; &1e : "LOAD", &12 (VERB_RESTORE) &6196 46 49 52 45 13 ; &1f : "FIRE", &13 (VERB_FIRE) &619b 53 48 4f 4f 13 ; &20 : "SHOO", &13 (VERB_FIRE) &61a0 44 52 4f 50 14 ; &21 : "DROP", &14 (VERB_DROP) &61a5 54 48 52 4f 14 ; &22 : "THRO", &14 (VERB_DROP) &61aa 49 4e 53 45 15 ; &23 : "INSE", &15 (VERB_INSERT) &61af 4c 4f 53 54 16 ; &24 : "LOST", &16 (VERB_LOST) &61b4 46 4f 4c 4c 30 ; &25 : "FOLL", &30 (VERB_FOLLOW) &61b9 43 4f 4d 45 30 ; &26 : "COME", &30 (VERB_FOLLOW) &61be 52 55 42 00 17 ; &27 : "RUB" , &17 (VERB_RUB) &61c3 57 41 56 45 17 ; &28 : "WAVE", &17 (VERB_RUB) &61c8 47 49 56 45 18 ; &29 : "GIVE", &18 (VERB_GIVE) &61cd 52 45 50 45 2c ; &2a : "REPE", &2c (VERB_AGAIN) &61d2 4b 49 4c 4c 1a ; &2b : "KILL", &1a (VERB_KILL) &61d7 41 54 54 41 1a ; &2c : "ATTA", &1a (VERB_KILL) &61dc 53 49 54 00 1b ; &2d : "SIT" , &1b (VERB_SIT) &61e1 54 59 50 45 1c ; &2e : "TYPE", &1c (VERB_TYPE) &61e6 49 4e 50 55 1c ; &2f : "INPU", &1c (VERB_TYPE) &61eb 52 45 41 44 2a ; &30 : "READ", &2a (VERB_EXAMINE) ; end_of_vocabulary_one ; room_exits # Stored data is same as ROOM_07 ; "in the arrivals area with many old chairs around a closed bar and a small ,dark stairway" &61f0 00 ; DIRECTION_NORTH &61f1 00 ; DIRECTION_SOUTH &61f2 06 ; DIRECTION_EAST &61f3 00 ; DIRECTION_WEST &61f4 00 ; DIRECTION_NE &61f5 00 ; DIRECTION_SE &61f6 0b ; DIRECTION_NW &61f7 08 ; DIRECTION_SW &61f8 15 ; DIRECTION_UP &61f9 00 ; DIRECTION_DOWN &61fa 00 ; DIRECTION_IN &61fb 00 ; DIRECTION_OUT ; unused &61fc 00 00 00 00 ; vocabulary_two &6200 53 41 59 00 1e ; &31 : "SAY" , &1e (VERB_SAY) &6205 50 55 4c 4c 1f ; &32 : "PULL", &1f (VERB_PULL) &620a 4f 50 45 4e 20 ; &33 : "OPEN", &20 (VERB_OPEN) &620f 53 43 4f 52 21 ; &34 : "SCOR", &21 (VERB_SCORE) &6214 47 52 4f 4e 22 ; &35 : "GRON", &22 (VERB_GRON) &6219 47 52 41 50 22 ; &36 : "GRAP", &22 (VERB_GRON) &621e 47 52 4f 46 23 ; &37 : "GROF", &23 (VERB_GROFF) &6223 54 45 58 54 23 ; &38 : "TEXT", &23 (VERB_GROFF) &6228 53 54 4f 50 11 ; &39 : "STOP", &11 (VERB_QUIT) &622d 50 41 53 53 18 ; &3a : "PASS", &18 (VERB_GIVE) &6232 48 49 54 00 1a ; &3b : "HIT" , &1a (VERB_KILL) &6237 48 41 4d 4d 27 ; &3c : "HAMM", &27 (VERB_HAMMER) &623c 54 55 52 4e 1f ; &3d : "TURN", &1f (VERB_PULL) &6241 48 49 52 45 1e ; &3e : "HIRE", &1e (VERB_SAY) &6246 57 41 49 54 26 ; &3f : "WAIT", &26 (VERB_WAIT) &624b 48 41 49 4c 1e ; &40 : "HAIL", &1e (VERB_SAY) &6250 57 45 41 52 28 ; &41 : "WEAR", &28 (VERB_WEAR) &6255 43 41 4c 4c 1e ; &42 : "CALL", &1e (VERB_SAY) &625a 43 4c 4f 53 2d ; &43 : "CLOS", &2d (VERB_CLOSE) &625f 4c 49 45 00 1b ; &44 : "LIE" , &1b (VERB_SIT) &6264 54 4f 00 00 31 ; &45 : "TO" , &31 (VERB_TO) &6269 53 45 41 52 2a ; &46 : "SEAR", &2a (VERB_EXAMINE) &626e 41 57 41 59 16 ; &47 : "AWAY", &16 (VERB_LOST) &6273 4f 46 46 00 16 ; &48 : "OFF" , &16 (VERB_LOST) &6278 49 54 00 00 01 ; &49 : "IT" , &01 (NOUN_IT) &627d 46 4f 4c 4c 02 ; &4a : "FOLL", &02 (NOUN_FOLLOW) # Unused; VERB_FOLLOW is always matched first &6282 4a 55 4d 50 03 ; &4b : "JUMP", &03 (NOUN_JUMP) # Treated as noun, but used with direction &6287 43 52 41 57 04 ; &4c : "CRAW", &04 (NOUN_CRAWL) # Treated as noun, but used with direction &628c 45 56 45 52 05 ; &4d : "EVER", &05 (NOUN_ALL) &6291 44 55 43 4b 04 ; &4e : "DUCK", &04 (NOUN_CRAWL) # Treated as noun, but used with direction &6296 53 50 49 4b 14 ; &4f : "SPIK", &14 (NOUN_SPIKE) &629b 53 55 49 54 15 ; &50 : "SUIT", &15 (NOUN_SUIT) &62a0 48 45 4c 4d 16 ; &51 : "HELM", &16 (NOUN_HELMET) &62a5 53 43 52 41 17 ; &52 : "SCRA", &17 (NOUN_SCRAP) &62aa 4d 41 54 45 17 ; &53 : "MATE", &17 (NOUN_SCRAP) &62af 4e 4f 54 45 18 ; &54 : "NOTE", &18 (NOUN_NOTE) &62b4 47 55 4e 00 1f ; &55 : "GUN" , &1f (NOUN_GUN) &62b9 53 54 41 4d 1a ; &56 : "STAM", &1a (NOUN_STAMP) &62be 42 41 4c 4c 1b ; &57 : "BALL", &1b (NOUN_BALL) &62c3 42 45 41 52 1b ; &58 : "BEAR", &1b (NOUN_BALL) &62c8 47 59 52 4f 1c ; &59 : "GYRO", &1c (NOUN_GYRO) &62cd 41 4c 4c 00 05 ; &5a : "ALL" , &05 (NOUN_ALL) &62d2 48 41 4e 44 1d ; &5b : "HAND", &1d (NOUN_HAND) &62d7 47 41 53 00 1e ; &5c : "GAS" , &1e (NOUN_GAS) &62dc 43 59 4c 49 1e ; &5d : "CYLI", &1e (NOUN_GAS) &62e1 47 55 4e 47 19 ; &5e : "GUNG", &19 (NOUN_GUNGE) &62e6 44 45 41 43 20 ; &5f : "DEAC", &20 (NOUN_DEACTIVATOR) &62eb 4d 4f 4e 4b 21 ; &60 : "MONK", &21 (NOUN_MONKEY) &62f0 44 4f 47 00 22 ; &61 : "DOG" , &22 (NOUN_DOG) &62f5 4c 45 54 54 27 ; &62 : "LETT", &27 (NOUN_LETTER) &62fa 53 48 41 55 24 ; &63 : "SHAU", &24 (NOUN_SHAUNA) &62ff 52 4f 44 00 25 ; &64 : "ROD" , &25 (NOUN_ROD) &6304 53 50 45 43 26 ; &65 : "SPEC", &26 (NOUN_SPECS) &6309 44 52 4f 49 96 ; &66 : "DROI", &96 (NOUN_DROID) &630e 4c 45 41 53 23 ; &67 : "LEAS", &23 (NOUN_LEASH) &6313 52 45 43 45 28 ; &68 : "RECE", &28 (NOUN_RECEIPT) &6318 46 4f 4f 5a 2a ; &69 : "FOOZ", &2a (NOUN_FOOZBAT) &631d 42 41 54 00 2a ; &6a : "BAT" , &2a (NOUN_FOOZBAT) &6322 49 44 45 4e 2b ; &6b : "IDEN", &2b (NOUN_IDENTIFICATION) &6327 4d 45 54 41 2c ; &6c : "META", &2c (NOUN_METAL) &632c 50 49 4c 45 2c ; &6d : "PILE", &2c (NOUN_METAL) &6331 43 41 52 44 2d ; &6e : "CARD", &2d (NOUN_CARD) &6336 53 41 4d 50 2e ; &6f : "SAMP", &2e (NOUN_SAMPLES) &633b 46 52 45 44 5a ; &70 : "FRED", &5a (NOUN_FRED) &6340 42 4c 4f 47 5a ; &71 : "BLOG", &5a (NOUN_FRED) &6345 54 41 58 49 64 ; &72 : "TAXI", &64 (NOUN_TAXI) &634a 43 41 42 00 64 ; &73 : "CAB" , &64 (NOUN_TAXI) &634f 4c 55 47 4f 65 ; &74 : "LUGO", &65 (NOUN_LUGOBOT) &6354 41 52 43 48 66 ; &75 : "ARCH", &66 (NOUN_ARCH) &6359 44 4f 4f 52 67 ; &76 : "DOOR", &67 (NOUN_DOOR) &635e 42 4f 44 59 70 ; &77 : "BODY", &70 (NOUN_BODY) &6363 52 4f 42 4f 69 ; &78 : "ROBO", &69 (NOUN_ROBODROID) &6368 47 55 41 52 6a ; &79 : "GUAR", &6a (NOUN_GUARDROID) &636d 41 47 47 52 6b ; &7a : "AGGR", &6b (NOUN_AGGRODROID) &6372 43 4f 4d 50 6c ; &7b : "COMP", &6c (NOUN_COMPUTER) &6377 54 52 41 50 67 ; &7c : "TRAP", &67 (NOUN_DOOR) &637c 43 48 41 49 6d ; &7d : "CHAI", &6d (NOUN_CHAIR) &6381 4c 45 56 45 6e ; &7e : "LEVE", &6e (NOUN_LEVER) &6386 47 52 45 45 50 ; &7f : "GREE", &50 (NOUN_GREEN) &638b 52 45 44 00 51 ; &80 : "RED" , &51 (NOUN_RED) &6390 42 4c 55 45 52 ; &81 : "BLUE", &52 (NOUN_BLUE) &6395 59 45 4c 4c 53 ; &82 : "YELL", &53 (NOUN_YELLOW) &639a 42 52 4f 57 54 ; &83 : "BROW", &54 (NOUN_BROWN) &639f 50 55 52 50 55 ; &84 : "PURP", &55 (NOUN_PURPLE) &63a4 4f 52 41 4e 56 ; &85 : "ORAN", &56 (NOUN_ORANGE) &63a9 57 48 49 54 57 ; &86 : "WHIT", &57 (NOUN_WHITE) &63ae 54 55 42 45 6f ; &87 : "TUBE", &6f (NOUN_TUBE) &63b3 46 49 45 4c 68 ; &88 : "FIEL", &68 (NOUN_FIELD) ; end_of_vocabulary_two ; string_067 &63b8 0b &63b9 a1 c1 bb f1 0b 00 36 11 90 a4 9e ; "you can see a laser to the " ; string_068 &63c4 09 &63c5 90 aa 34 04 ca 07 04 08 6f ; " at chest height" ; string_069 &63ce 09 &63cf 90 aa 0a 0d d2 07 04 08 6f ; " at knee height" ; string_06a &63d8 0d &63d9 de a0 f1 79 d1 05 08 56 03 90 a4 9e 1a ; "there is a force field to the north" ; string_06b &63e6 09 &63e7 9e 16 d9 a0 12 0f 08 0a d7 ; "the wall is spiked " ; string_06c &63f0 0d &63f1 de a0 f1 79 51 05 08 56 03 90 a4 9e 1d ; "there is a forcefield to the west" ; unused &63fe 9e ; speech_offset &63ff 04 ; string_addresses_table_zero &6400 0f 35 ; &350f = string_000 &6402 12 35 ; &3512 = string_001 &6404 32 35 ; &3532 = string_002 &6406 60 35 ; &3560 = string_003 &6408 7f 35 ; &357f = string_004 &640a b8 35 ; &35b8 = string_005 &640c e2 35 ; &35e2 = string_006 &640e f7 35 ; &35f7 = string_007 &6410 20 36 ; &3620 = string_008 &6412 3b 36 ; &363b = string_009 &6414 5b 36 ; &365b = string_00a &6416 88 36 ; &3688 = string_00b &6418 a7 36 ; &36a7 = string_00c &641a c9 36 ; &36c9 = string_00d &641c df 36 ; &36df = string_00e &641e ec 36 ; &36ec = string_00f &6420 07 37 ; &3707 = string_010 &6422 31 37 ; &3731 = string_011 &6424 52 37 ; &3752 = string_012 &6426 77 37 ; &3777 = string_013 &6428 97 37 ; &3797 = string_014 &642a bb 37 ; &37bb = string_015 &642c d9 37 ; &37d9 = string_016 &642e f6 37 ; &37f6 = string_017 &6430 f6 37 ; &37f6 = string_018 &6432 f6 37 ; &37f6 = string_019 &6434 f6 37 ; &37f6 = string_01a &6436 f6 37 ; &37f6 = string_01b &6438 f6 37 ; &37f6 = string_01c &643a f6 37 ; &37f6 = string_01d &643c f6 37 ; &37f6 = string_01e &643e 2f 38 ; &382f = string_01f &6440 4e 38 ; &384e = string_020 &6442 7d 38 ; &387d = string_021 &6444 b3 38 ; &38b3 = string_022 &6446 c5 38 ; &38c5 = string_023 &6448 ea 38 ; &38ea = string_024 &644a 15 39 ; &3915 = string_025 &644c 48 4f ; &4f48 = string_026 &644e 5b 39 ; &395b = string_027 &6450 81 39 ; &3981 = string_028 &6452 a0 39 ; &39a0 = string_029 &6454 b5 39 ; &39b5 = string_02a &6456 bc 39 ; &39bc = string_02b &6458 e4 39 ; &39e4 = string_02c &645a fd 39 ; &39fd = string_02d &645c 2a 3a ; &3a2a = string_02e &645e 3f 3a ; &3a3f = string_02f &6460 5e 3a ; &3a5e = string_030 &6462 74 3a ; &3a74 = string_031 &6464 99 3a ; &3a99 = string_032 &6466 bd 3a ; &3abd = string_033 &6468 ea 3a ; &3aea = string_034 &646a 19 3b ; &3b19 = string_035 &646c 45 3b ; &3b45 = string_036 &646e 6b 3b ; &3b6b = string_037 &6470 93 3b ; &3b93 = string_038 &6472 b3 3b ; &3bb3 = string_039 &6474 d5 3b ; &3bd5 = string_03a &6476 ef 3b ; &3bef = string_03b &6478 14 3c ; &3c14 = string_03c &647a 40 3c ; &3c40 = string_03d &647c 66 3c ; &3c66 = string_03e &647e 90 3c ; &3c90 = string_03f &6480 90 3c ; &3c90 = string_040 &6482 90 3c ; &3c90 = string_041 &6484 90 3c ; &3c90 = string_042 &6486 90 3c ; &3c90 = string_043 &6488 90 3c ; &3c90 = string_044 &648a 90 3c ; &3c90 = string_045 &648c 90 3c ; &3c90 = string_046 &648e 90 3c ; &3c90 = string_047 &6490 90 3c ; &3c90 = string_048 &6492 b3 3c ; &3cb3 = string_049 &6494 d8 3c ; &3cd8 = string_04a &6496 04 3d ; &3d04 = string_04b &6498 1b 3d ; &3d1b = string_04c &649a 46 3d ; &3d46 = string_04d &649c 5e 3d ; &3d5e = string_04e &649e 7f 3d ; &3d7f = string_04f &64a0 ad 3d ; &3dad = string_050 &64a2 e0 3d ; &3de0 = string_051 &64a4 fd 3d ; &3dfd = string_052 &64a6 1d 3e ; &3e1d = string_053 &64a8 45 3e ; &3e45 = string_054 &64aa 73 3e ; &3e73 = string_055 &64ac 97 3e ; &3e97 = string_056 &64ae b6 3e ; &3eb6 = string_057 &64b0 dc 3e ; &3edc = string_058 &64b2 f1 3e ; &3ef1 = string_059 &64b4 1c 3f ; &3f1c = string_05a &64b6 3e 3f ; &3f3e = string_05b &64b8 63 3f ; &3f63 = string_05c &64ba 8f 3f ; &3f8f = string_05d &64bc b1 3f ; &3fb1 = string_05e &64be da 3f ; &3fda = string_05f &64c0 13 40 ; &4013 = string_060 &64c2 3e 40 ; &403e = string_061 &64c4 5f 40 ; &405f = string_062 &64c6 8c 40 ; &408c = string_063 &64c8 a7 40 ; &40a7 = string_064 &64ca c6 40 ; &40c6 = string_065 &64cc e4 40 ; &40e4 = string_066 &64ce b8 63 ; &63b8 = string_067 &64d0 c4 63 ; &63c4 = string_068 &64d2 ce 63 ; &63ce = string_069 &64d4 d8 63 ; &63d8 = string_06a &64d6 e6 63 ; &63e6 = string_06b &64d8 f0 63 ; &63f0 = string_06c &64da 48 08 ; &0848 = string_06d &64dc 56 08 ; &0856 = string_06e &64de 6a 08 ; &086a = string_06f &64e0 40 08 ; &0840 = string_070 &64e2 fc 67 ; &67fc = string_071 &64e4 81 08 ; &0881 = string_072 &64e6 8d 08 ; &088d = string_073 &64e8 50 49 ; &4950 = string_074 &64ea a4 08 ; &08a4 = string_075 &64ec cc 67 ; &67cc = string_076 &64ee dc 67 ; &67dc = string_077 &64f0 e1 67 ; &67e1 = string_078 &64f2 e8 67 ; &67e8 = string_079 &64f4 f5 67 ; &67f5 = string_07a &64f6 f9 34 ; &34f9 = string_07b &64f8 ff 34 ; &34ff = string_07c &64fa 05 35 ; &3505 = string_07d &64fc fc 67 ; &67fc = string_07e &64fe 0b 35 ; &350b = string_07f ; string_addresses_table_one &6500 00 41 ; &4100 = string_100 &6502 04 41 ; &4104 = string_101 &6504 27 49 ; &4927 = string_102 &6506 a8 4b ; &4ba8 = string_103 &6508 25 41 ; &4125 = string_104 &650a 33 41 ; &4133 = string_105 &650c 42 41 ; &4142 = string_106 &650e 58 41 ; &4158 = string_107 &6510 61 41 ; &4161 = string_108 &6512 69 41 ; &4169 = string_109 &6514 75 41 ; &4175 = string_10a &6516 89 41 ; &4189 = string_10b &6518 97 41 ; &4197 = string_10c &651a a7 41 ; &41a7 = string_10d &651c b3 41 ; &41b3 = string_10e &651e ca 41 ; &41ca = string_10f &6520 df 41 ; &41df = string_110 &6522 f5 41 ; &41f5 = string_111 &6524 fc 41 ; &41fc = string_112 &6526 03 42 ; &4203 = string_113 &6528 10 42 ; &4210 = string_114 &652a 1b 42 ; &421b = string_115 &652c 29 42 ; &4229 = string_116 &652e 3c 42 ; &423c = string_117 &6530 47 42 ; &4247 = string_118 &6532 51 42 ; &4251 = string_119 &6534 5a 42 ; &425a = string_11a &6536 66 42 ; &4266 = string_11b &6538 6e 42 ; &426e = string_11c &653a 74 42 ; &4274 = string_11d &653c 7a 42 ; &427a = string_11e &653e 84 42 ; &4284 = string_11f &6540 8b 42 ; &428b = string_120 &6542 95 42 ; &4295 = string_121 &6544 9c 42 ; &429c = string_122 &6546 ab 42 ; &42ab = string_123 &6548 bf 42 ; &42bf = string_124 &654a cd 42 ; &42cd = string_125 &654c e9 42 ; &42e9 = string_126 &654e ff 42 ; &42ff = string_127 &6550 0e 43 ; &430e = string_128 &6552 1c 43 ; &431c = string_129 &6554 29 43 ; &4329 = string_12a &6556 40 43 ; &4340 = string_12b &6558 56 43 ; &4356 = string_12c &655a 68 43 ; &4368 = string_12d &655c 87 43 ; &4387 = string_12e &655e 92 43 ; &4392 = string_12f &6560 a6 43 ; &43a6 = string_130 &6562 ac 43 ; &43ac = string_131 &6564 b5 43 ; &43b5 = string_132 &6566 ba 43 ; &43ba = string_133 &6568 c7 43 ; &43c7 = string_134 &656a ca 43 ; &43ca = string_135 &656c d6 43 ; &43d6 = string_136 &656e e1 43 ; &43e1 = string_137 &6570 ea 43 ; &43ea = string_138 &6572 ef 43 ; &43ef = string_139 &6574 f5 43 ; &43f5 = string_13a &6576 08 44 ; &4408 = string_13b &6578 11 44 ; &4411 = string_13c &657a 1c 44 ; &441c = string_13d &657c 23 44 ; &4423 = string_13e &657e 2d 44 ; &442d = string_13f &6580 3e 44 ; &443e = string_140 &6582 45 44 ; &4445 = string_141 &6584 52 44 ; &4452 = string_142 &6586 57 44 ; &4457 = string_143 &6588 63 44 ; &4463 = string_144 &658a 71 44 ; &4471 = string_145 &658c 80 44 ; &4480 = string_146 &658e 86 44 ; &4486 = string_147 &6590 90 44 ; &4490 = string_148 &6592 a3 44 ; &44a3 = string_149 &6594 b5 44 ; &44b5 = string_14a &6596 bf 44 ; &44bf = string_14b &6598 cb 44 ; &44cb = string_14c &659a da 44 ; &44da = string_14d &659c ea 44 ; &44ea = string_14e &659e fa 44 ; &44fa = string_14f &65a0 04 45 ; &4504 = string_150 &65a2 0e 45 ; &450e = string_151 &65a4 19 45 ; &4519 = string_152 &65a6 27 45 ; &4527 = string_153 &65a8 2c 45 ; &452c = string_154 &65aa 37 45 ; &4537 = string_155 &65ac 4b 45 ; &454b = string_156 &65ae 60 45 ; &4560 = string_157 &65b0 72 45 ; &4572 = string_158 &65b2 8b 45 ; &458b = string_159 &65b4 94 45 ; &4594 = string_15a &65b6 9d 45 ; &459d = string_15b &65b8 aa 45 ; &45aa = string_15c &65ba b8 45 ; &45b8 = string_15d &65bc c9 45 ; &45c9 = string_15e &65be d5 45 ; &45d5 = string_15f &65c0 f1 45 ; &45f1 = string_160 &65c2 fd 45 ; &45fd = string_161 &65c4 05 46 ; &4605 = string_162 &65c6 0c 46 ; &460c = string_163 &65c8 12 46 ; &4612 = string_164 &65ca 17 46 ; &4617 = string_165 &65cc 1c 46 ; &461c = string_166 &65ce 22 46 ; &4622 = string_167 &65d0 28 46 ; &4628 = string_168 &65d2 2e 46 ; &462e = string_169 &65d4 35 46 ; &4635 = string_16a &65d6 3d 46 ; &463d = string_16b &65d8 43 46 ; &4643 = string_16c &65da 4b 46 ; &464b = string_16d &65dc 53 46 ; &4653 = string_16e &65de 57 46 ; &4657 = string_16f &65e0 64 46 ; &4664 = string_170 &65e2 71 46 ; &4671 = string_171 &65e4 61 41 ; &4161 = string_172 &65e6 94 46 ; &4694 = string_173 &65e8 b2 46 ; &46b2 = string_174 &65ea bf 46 ; &46bf = string_175 &65ec c7 46 ; &46c7 = string_176 &65ee d3 46 ; &46d3 = string_177 &65f0 df 46 ; &46df = string_178 &65f2 ed 46 ; &46ed = string_179 &65f4 01 47 ; &4701 = string_17a &65f6 0b 47 ; &470b = string_17b &65f8 1f 47 ; &471f = string_17c &65fa 2a 47 ; &472a = string_17d &65fc 3f 47 ; &473f = string_17e &65fe 52 47 ; &4752 = string_17f ; string_addresses_table_two &6600 5d 47 ; &475d = string_200 &6602 68 47 ; &4768 = string_201 &6604 6e 47 ; &476e = string_202 &6606 75 47 ; &4775 = string_203 &6608 84 47 ; &4784 = string_204 &660a 90 47 ; &4790 = string_205 &660c 97 47 ; &4797 = string_206 &660e a5 47 ; &47a5 = string_207 &6610 ac 47 ; &47ac = string_208 &6612 b5 47 ; &47b5 = string_209 &6614 c0 47 ; &47c0 = string_20a &6616 cb 47 ; &47cb = string_20b &6618 d5 47 ; &47d5 = string_20c &661a e0 47 ; &47e0 = string_20d &661c ec 47 ; &47ec = string_20e &661e fc 47 ; &47fc = string_20f &6620 01 48 ; &4801 = string_210 &6622 08 48 ; &4808 = string_211 &6624 12 48 ; &4812 = string_212 &6626 1c 48 ; &481c = string_213 &6628 22 48 ; &4822 = string_214 &662a 29 48 ; &4829 = string_215 &662c 30 48 ; &4830 = string_216 &662e 37 48 ; &4837 = string_217 &6630 43 48 ; &4843 = string_218 &6632 52 48 ; &4852 = string_219 &6634 57 48 ; &4857 = string_21a &6636 6e 48 ; &486e = string_21b &6638 7a 48 ; &487a = string_21c &663a 87 48 ; &4887 = string_21d &663c 96 48 ; &4896 = string_21e &663e 24 45 ; &4524 = string_21f &6640 9c 48 ; &489c = string_220 &6642 9e 48 ; &489e = string_221 &6644 a0 48 ; &48a0 = string_222 &6646 aa 48 ; &48aa = string_223 &6648 b1 48 ; &48b1 = string_224 &664a ba 48 ; &48ba = string_225 &664c c1 48 ; &48c1 = string_226 &664e ca 48 ; &48ca = string_227 &6650 d4 48 ; &48d4 = string_228 &6652 dc 48 ; &48dc = string_229 &6654 e3 48 ; &48e3 = string_22a &6656 e9 48 ; &48e9 = string_22b &6658 ee 48 ; &48ee = string_22c &665a f5 48 ; &48f5 = string_22d &665c 06 49 ; &4906 = string_22e &665e 08 49 ; &4908 = string_22f &6660 0a 49 ; &490a = string_230 &6662 0c 49 ; &490c = string_231 &6664 0e 49 ; &490e = string_232 &6666 11 49 ; &4911 = string_233 &6668 14 49 ; &4914 = string_234 &666a 17 49 ; &4917 = string_235 &666c 1a 49 ; &491a = string_236 &666e 1d 49 ; &491d = string_237 &6670 22 49 ; &4922 = string_238 &6672 24 49 ; &4924 = string_239 &6674 95 23 ; &2395 = string_23a &6676 46 49 ; &4946 = string_23b &6678 99 08 ; &0899 = string_23c &667a 67 49 ; &4967 = string_23d &667c 80 49 ; &4980 = string_23e &667e 8c 49 ; &498c = string_23f &6680 a6 49 ; &49a6 = string_240 &6682 b2 49 ; &49b2 = string_241 &6684 bd 49 ; &49bd = string_242 &6686 cd 49 ; &49cd = string_243 &6688 d5 49 ; &49d5 = string_244 &668a d8 49 ; &49d8 = string_245 &668c e1 49 ; &49e1 = string_246 &668e fe 49 ; &49fe = string_247 &6690 12 4a ; &4a12 = string_248 &6692 1a 4a ; &4a1a = string_249 &6694 23 4a ; &4a23 = string_24a &6696 27 4a ; &4a27 = string_24b &6698 2d 4a ; &4a2d = string_24c &669a 51 4a ; &4a51 = string_24d &669c 5d 4a ; &4a5d = string_24e &669e 63 4a ; &4a63 = string_24f &66a0 67 4a ; &4a67 = string_250 &66a2 6d 4a ; &4a6d = string_251 &66a4 73 4a ; &4a73 = string_252 &66a6 7f 4a ; &4a7f = string_253 &66a8 88 4a ; &4a88 = string_254 &66aa 90 4a ; &4a90 = string_255 &66ac 98 4a ; &4a98 = string_256 &66ae 9c 4a ; &4a9c = string_257 &66b0 a2 4a ; &4aa2 = string_258 &66b2 a8 4a ; &4aa8 = string_259 &66b4 af 4a ; &4aaf = string_25a &66b6 b8 4a ; &4ab8 = string_25b &66b8 b8 4a ; &4ab8 = string_25c &66ba bb 4a ; &4abb = string_25d &66bc d8 4a ; &4ad8 = string_25e &66be cf 4a ; &4acf = string_25f &66c0 c1 4a ; &4ac1 = string_260 &66c2 e2 4a ; &4ae2 = string_261 &66c4 ea 4a ; &4aea = string_262 &66c6 ef 4a ; &4aef = string_263 &66c8 06 4b ; &4b06 = string_264 &66ca 10 4b ; &4b10 = string_265 &66cc 14 4b ; &4b14 = string_266 &66ce 17 4b ; &4b17 = string_267 &66d0 1c 4b ; &4b1c = string_268 &66d2 22 4b ; &4b22 = string_269 &66d4 28 4b ; &4b28 = string_26a &66d6 2e 4b ; &4b2e = string_26b &66d8 35 4b ; &4b35 = string_26c &66da 39 4b ; &4b39 = string_26d &66dc 44 4b ; &4b44 = string_26e &66de 50 4b ; &4b50 = string_26f &66e0 54 4b ; &4b54 = string_270 &66e2 59 4b ; &4b59 = string_271 &66e4 5f 4b ; &4b5f = string_272 &66e6 66 4b ; &4b66 = string_273 &66e8 6e 4b ; &4b6e = string_274 &66ea 73 4b ; &4b73 = string_275 &66ec 84 4b ; &4b84 = string_276 &66ee 88 4b ; &4b88 = string_277 &66f0 9f 4b ; &4b9f = string_278 &66f2 b2 4b ; &4bb2 = string_279 &66f4 bb 4b ; &4bbb = string_27a &66f6 cd 4b ; &4bcd = string_27b &66f8 d9 4b ; &4bd9 = string_27c &66fa e4 4b ; &4be4 = string_27d &66fc ee 4b ; &4bee = string_27e &66fe 3b 39 ; &393b = string_27f ; room_graphics_addresses # Differences in disk version: &6700 56 34 ; &3456 = graphics_01 &6702 93 58 ; &5893 = graphics_02 # &6702 31 9c ; use SCREEN1 &6704 40 28 ; &2840 = graphics_03 &6706 ec 28 ; &28ec = graphics_04 # &6706 32 9b ; use SCREEN2 &6708 1a 5a ; &5a1a = graphics_05 # &6708 35 9d ; use SCREEN5 &670a 4f 5a ; &5a4f = graphics_06 &670c b8 5a ; &5ab8 = graphics_07 &670e 59 5b ; &5b59 = graphics_08 &6710 1e 5b ; &5b1e = graphics_09 &6712 9d 29 ; &299d = graphics_0a &6714 00 04 ; &0400 = graphics_0b &6716 00 28 ; &2800 = graphics_0c &6718 d4 60 ; &60d4 = graphics_0d &671a bf 60 ; &60bf = graphics_0e &671c 85 60 ; &6085 = graphics_0f &671e b1 28 ; &28b1 = graphics_10 &6720 0a 33 ; &330a = graphics_11 &6722 cd 28 ; &28cd = graphics_12 &6724 b2 32 ; &32b2 = graphics_13 &6726 21 5f ; &5f21 = graphics_14 &6728 0a 2b ; &2b0a = graphics_15 &672a 2a 60 ; &602a = graphics_16 &672c 78 2a ; &2a78 = graphics_17 &672e fe 2a ; &2afe = graphics_18 &6730 fe 2a ; &2afe = graphics_19 &6732 78 2a ; &2a78 = graphics_1a &6734 3c 5c ; &5c3c = graphics_1b &6736 44 5c ; &5c44 = graphics_1c &6738 44 5c ; &5c44 = graphics_1d &673a 3c 5c ; &5c3c = graphics_1e &673c b0 04 ; &04b0 = graphics_1f &673e 45 2f ; &2f45 = graphics_20 &6740 be 2f ; &2fbe = graphics_21 &6742 7d 32 ; &327d = graphics_22 &6744 61 06 ; &0661 = graphics_23 &6746 72 33 ; &3372 = graphics_24 # &6746 43 ae ; use SCREENC &6748 a0 2e ; &2ea0 = graphics_25 &674a db 2e ; &2edb = graphics_26 # &674a 37 ce ; use SCREEN7 &674c c3 33 ; &33c3 = graphics_27 &674e 94 33 ; &3394 = graphics_28 # &674e 46 db ; use SCREENF &6750 d3 04 ; &04d3 = graphics_29 &6752 bb 06 ; &06bb = graphics_2a # &6752 30 ec ; use SCREEN0 &6754 44 5d ; &5d44 = graphics_2b # &6754 38 ca ; use SCREEN8 &6756 91 59 ; &5991 = graphics_2c &6758 0c 59 ; &590c = graphics_2d &675a 61 59 ; &5961 = graphics_2e # &675a 36 ae ; use SCREEN6 &675c 6a 59 ; &596a = graphics_2f &675e 91 59 ; &5991 = graphics_30 &6760 f0 2f ; &2ff0 = graphics_31 # &6760 39 9e ; use SCREEN9 &6762 c2 5c ; &5cc2 = graphics_32 &6764 ec 5c ; &5cec = graphics_33 &6766 8c 5c ; &5c8c = graphics_34 &6768 d0 2c ; &2cd0 = graphics_35 &676a 14 06 ; &0614 = graphics_36 &676c 84 2d ; &2d84 = graphics_37 &676e 50 2e ; &2e50 = graphics_38 # &676e 33 ca ; use SCREEN3 &6770 50 2e ; &2e50 = graphics_39 # &6770 33 eb ; use SCREEN3 &6772 e6 2d ; &2de6 = graphics_3a &6774 b8 2d ; &2db8 = graphics_3b &6776 f9 2d ; &2df9 = graphics_3c &6778 12 05 ; &0512 = graphics_3d # &6778 45 ac ; use SCREENE &677a 99 5e ; &5e99 = graphics_3e # &677a 34 c9 ; use SCREEN4 &677c b7 29 ; &29b7 = graphics_3f &677e ec 29 ; &29ec = graphics_40 # &677e ce 29 ; &29ce &6780 32 2a ; &2a32 = graphics_41 # &6780 44 dc ; use SCREEND &6782 ce 29 ; &29ce = graphics_42 # &6782 b7 29 ; &29b7 &6784 12 2a ; &2a12 = graphics_43 # &6784 dd 29 ; &29dd &6786 5e 2a ; &2a5e = graphics_44 # &6786 2a 2a ; &2a2a &6788 dd 29 ; &29dd = graphics_45 # &6788 12 2a ; &2a12 &678a 2a 2a ; &2a2a = graphics_46 # &678a 44 f9 ; use SCREEND &678c dd 29 ; &29dd = graphics_47 # &678c 44 cb ; use SCREEND &678e 70 2a ; &2a70 = graphics_48 # &678e 44 fa ; use SCREEND &6790 63 2b ; &2b63 = graphics_49 &6792 34 32 ; &3234 = graphics_4a &6794 ea 33 ; &33ea = graphics_4b &6796 a4 2b ; &2ba4 = graphics_4c &6798 d4 2b ; &2bd4 = graphics_4d &679a 0e 2c ; &2c0e = graphics_4e &679c 2b 2d ; &2d2b = graphics_4f &679e 93 2c ; &2c93 = graphics_50 # &679e 42 9c ; use SCREENB &67a0 39 2c ; &2c39 = graphics_51 &67a2 e2 5f ; &5fe2 = graphics_52 &67a4 52 04 ; &0452 = graphics_53 &67a6 9b 5f ; &5f9b = graphics_54 &67a8 fa 04 ; &04fa = graphics_55 &67aa 37 30 ; &3037 = graphics_56 &67ac 3e 06 ; &063e = graphics_57 # &67ac 41 9c ; use SCREENA &67ae 4b 31 ; &314b = graphics_58 &67b0 81 31 ; &3181 = graphics_59 &67b2 e3 31 ; &31e3 = graphics_5a &67b4 74 30 ; &3074 = graphics_5b &67b6 cf 30 ; &30cf = graphics_5c &67b8 1e 31 ; &311e = graphics_5d &67ba b9 05 ; &05b9 = graphics_5e &67bc 90 34 ; &3490 = graphics_5f &67be c2 34 ; &34c2 = graphics_60 &67c0 cd 05 ; &05cd = graphics_61 # &67c0 47 9b ; use SCREENG &67c2 e8 5d ; &5de8 = graphics_62 &67c4 fc 5d ; &5dfc = graphics_63 &67c6 4e 58 ; &584e = graphics_64 &67c8 51 5e ; &5e51 = graphics_65 &67ca a9 29 ; &29a9 = graphics_66 ; string_076 &67cc 0f &67cd 13 2e 0b d7 8d 05 26 03 90 01 0b 0e 06 06 12 ; "titled FRED BLOGGS" ; string_077 &67dc 04 &67dd f1 0c 64 12 ; "a mess" ; string_078 &67e1 06 &67e2 0f 0b 00 4a 08 02 ; "plastic" ; string_079 &67e8 0c &67e9 a3 03 14 01 08 39 f5 0e 11 08 06 25 ; "of dubious origin" ; string_07a &67f5 06 &67f6 df 03 08 11 13 18 ; "very dirty" ; string_071 ; string_07e &67fc 02 &67fd df 60 ; "very large" ; unused &67ff 2d