00010 *RASTER GRAPHICS -GR.8 EXAMPLE - WITH MUSIC- JEFF STANTON 00020 OR $4000 00030 *ZERO PAGE EQUATES O0FO: 00040 SHPL EQ $FO O0F1: 00050 SHPH EQ $Fl O0F2: 00060 HIRESL EQ $F2 00F3: 00070 HIRESH EQ $F3 O0F4: 00080 SL EQ $F4 00F5: 00090 SH EQ $F5 00100 *OTHER EQUATES 6000: 00110 SCREEN EQ $6000 ;SCREEN IS ACTUALLY OFFSET 496 BYTES @ $61FO 6000: 00120 NDLIST EQ $6000 ;ADR OF DISPLAY LIST 0278: 00130 STICK EQ $278 02C5: 00140 COLORI EQ $2C5 02C6: 00150 COLOR2 EQ $2C6 D201: 00160 AUDCl EQ $D201 D200: 00170 AUDFI EQ $D200 00F6: 00180 NOTEL EQ $F6 O0F7: 00190 NOTEH EQ $F7 E45C: 00200 SETVBK EQ $E45C E462: 00210 XITVBK .EQ $E462 00220 *LINE LOOKUP TABLE - LO BYTE STARTS AT $4000 4000: FO 18 40 4003: 68 90 B8 4006: EO 08 00230 YVERTL HS F01840689OB8EO08 4008: 30 58 80 40OB: A8 DO F8 400E: 20 48 00240 HS 30588OA8DOF82048 4010: 70 98 CO 4013: E8 10 38 4016: 60 88 00250 HS 7098COE810386088 4018: BO D8 00 401B: 28 50 78 401E: AO C8 00260 HS BOD800285078AOC8 4020: FO 18 40 4023: 68 90 B8 4026: EO 08 00270 HS F01840689OB8EO08 4028: 30 58 80 402B: A8 DO F8 402E: 20 48 00280 HS 30588OA8DOF82048 4030: 70 98 CO 4033: E8 10 38 4036: 60 88 00290 HS 7098COE810386088 4038: BO D8 00 403B: 28 50 78 403E: AO C8 00300 HS BOD800285078AOC8 4040: FO 18 40 4043: 68 90 B8 4046: EO 08 00310 HS F01840689OB8EO08 4048: 30 58 80 404B: A8 DO F8 404E: 20 48 00320 HS 30588OA8DOF82048 4050: 70 98 CO 4053: E8 10 38 4056: 60 88 00330 HS 7098COE810386088 4058: BO D8 00 405B: 28 50 78 405E: AO C8 00340 HS BOD800285078AOC8 4060: FO 18 40 4063: 68 90 B8 4066: EO 08 00350 HS F01840689OB8EO08 4068: 30 58 80 406B: A8 DO F8 406E: 20 48 00360 HS 30588OA8DOF82048 4070: 70 98 CO 4073: E8 10 38 4076: 60 88 00370 HS 7098COE810386088 4078: BO D8 00 407B: 28 50 78 407E: AO C8 00380 HS BOD800285078AOC8 4080: FO 18 40 4083: 68 90 B8 4086: EO 08 00390 HS F01840689OB8EO08 4088: 30 58 80 408B: A8 DO F8 408E: 20 48 00400 HS 30588OA8DOF82048 4090: 70 98 CO 4093: E8 10 38 4096: 60 88 00410 HS 7098COE810386088 4098: BO D8 00 409B: 28 50 78 409E: AO C8 00420 HS BOD800285078AOC8 40AO: FO 18 40 40A3: 68 90 B8 40A6: EO 08 00430 HS F01840689OB8EO08 40A8: 30 58 80 40AB: A8 DO F8 40AE: 20 48 00440 HS 30588OA8DOF82048 40BO: 70 98 CO 40B3: E8 10 38 40B6: 60 88 00450 HS 7098COE810386088 40B8: BO D8 00 40BB: 28 50 78 40BE: AO C8 00460 HS BOD800285078AOC8 40CO: 00470 BS $40 4100: 01 02 02 00480 *LINE LOOKUP TA I BLE - HI BYTE STARTS AT $4100 4103: 02 02 02 4106: 02 03 00490 YVERTH HS 0102020202020203 4108: 03 03 03 41OB: 03 03 03 41OE: 04 04 00500 HS 0303030303030404 4110: 04 04 04 4113: 04 05 05 4116: 05 05 00510 HS 0404040405050505 4118: 05 05 06 411B: 06 06 06 411E: 06 06 00520 HS 0505060606060606 4120: 06 07 07 4123: 07 07 07 4126: 07 08 00530 HS 0607070707070708 4128: 08 08 08 412B: 08 08 08 412E: 09 09 00540 HS 0808080808080909 4130: 09 09 09 4133: 09 OA OA 4136: OA OA 00550 HS 090909090AOAOAOA 4138: OA OA OB 413B: OB OB OB 413E: OB OB 00560 HS OAOAOBOBOBOBOBOB 4140: OB OC OC 4143: OC OC OC 4146: OC OD 00570 HS OBOCOCOCOCOCOCOD 4148: OD OD OD 414B: OD OD OD 414E: OE OE 00580 HS ODODODODODODOEOE 4150: OE OE OE 4153: OE OF OF 4156: OF OF 00590 AS OEOEOEOEOFOFOFOF 4158: OF OF 10 415B: 10 10 10 415E: 10 10 00600 HS OFOF101010101010 4160: 10 11 11 4163: 11 11 11 4166: 11 12 00610 HS 1011111111111112 4168: 12 12 12 416B: 12 12 12 416E: 13 13 00620 HS 1212121212121313 4170: 13 13 13 4173: 13 14 14 4176: 14 14 00630 HS 1313131314141414 4178: 14 14 15 417B: 15 15 15 417E: 15 15 00640 HS 1414151515151515 4180: 15 16 16 4183: 16 16 16 4186: 16 17 00650 HS 1516161616161617 4188: 17 17 17 418B: 17 17 17 418E: 18 18 00660 HS 1717171717171818 4190: 18 18 18 4193: 18 19 19 4196: 19 19 00670 HS 1818181819191919 4198: 19 19 1A 419B: 1A 1A 1A 419E: 1A 1A 00680 HS l9l9lAlAlAlAlAlA 41AO: IA IB 1B 41A3: 1B IB 1B 41A6: 1B 1C 00690 HS 1AIBIBIBlBlBlBlC 41A8: 1C 1C 1C 41AB: 1C 1C 1C 41AE: 1D ID 00700 HS lClClClClClClDlD 41BO: 1D ID 1D 4lB3: 1D 1E 1E 41B6: 1E IE 00710 HS 001MMEME 41B8: IE IE IF 41BB: IF IF IF 41BE: IF IF 00720 HS lElElFlFlFlFlFIF 41CO: 00730 .BS $40 00740 *DISPLAY LIST STARTS AT $4200 4200: 70 70 70 4203: 4F FO 61 4206: OF OF 00750 DUST HS 7070704FF0610FOF 4208: OF OF OF 420B: OF OF OF 420E: OF OF 00760 HS OFOFOFOFOFOFOFOF 4210: OF OF OF 4213: OF OF OF 4216: OF OF 00770 HS OFOFOFOFOFOFOFOF 4218: OF OF OF 421B: OF OF OF 421E: OF OF 00780 HS OFOFOFOFOFOFOFOF 4220: OF OF OF 4223: OF OF OF 4226: OF OF 00790 HS OFOFOFOFOFOFOFOF 4228: OF OF OF 422B: OF OF OF 422E: OF OF 00800 HS OFOFOFOFOFOFOFOF 4230: OF OF OF 4233: OF OF OF 4236: OF OF 00810 HS OFOFOFOFOFOFOFOF 4238: OF OF OF 423B: OF OF OF 423E: OF OF 00820 HS OFOFOFOFOFOFOFOF 4240: OF OF OF 4243: OF OF OF 4246: OF OF 00830 HS OFOFOFOFOFOFOFOF 4248: OF OF OF 424B: OF OF OF 424E: OF OF 00840 HS OFOFOFOFOFOFOFOF 4250: OF OF OF 4253: OF OF OF 4256: OF OF 00850 HS OFOFOFOFOFOFOFOF 4258: OF OF OF 425B: OF OF OF 425E: OF 4F 00860 HS OFOFOFOFOFOFOF4F 4260: 00 70 OF 4263: OF OF OF 4266: OF OF 00870 HS 00700FOFOFOFOFOF 4268: OF OF OF 426B: OF OF OF 426E: OF OF 00880 HS OFOFOFOFOFOFOFOF 4270: OF OF OF 4273: OF OF OF 4276: OF OF 00890 HS OFOFOFOFOFOFOFOF 4278: OF OF OF 427B: OF OF OF 427E: OF OF 00900 HS OFOFOFOFOFOFOFOF 4280: OF OF OF 4283: OF OF OF 4286: OF OF 00910 HS OFOFOFOFOFOFdOF 4288: OF OF OF 428B: OF OF OF 428E: OF OF 00920 HS OFOFOFOFOFOFOFOF 4290: OF OF OF 4293: OF OF OF 4296: OF OF 00930 HS OFOFOFOFOFOFOFOF 4298: OF OF OF 429B: OF OF OF 429E: OF OF 00940 HS OFOFOFOFOFOFOFOF 42AO: OF OF OF 42A3: OF OF OF 42A6: OF OF 00950 HS OFOFOFOFOFOFOFOF 42A8: OF OF OF 42AB: OF OF OF 42AE: OF OF 00960 HS OFOFOFOFOFOFOFOF 42BO: OF OF OF 42B3: OF OF OF 42B6: OF OF 00970 HS OFOFOFOFOFOFOFOF 42B8: OF OF OF 42BB: OF OF OF 42BE: OF OF 00980 HS OFOFOFOFOFOFOFOF 42CO: OF OF OF 42C3: OF OF OF 42C6: OF 41 00990 HS OFOFOFOFOFOFOF41 42C8: 00 60 01000 HS 0060 42CA: 01010 BS $36 01020 *HORIZONTAL OFFSET TABLE - START AT $4300 01030 *THIS POINTS TO PROPER OFFSET SHAPE FOR EACH X POS (0-159) 4300: 00 01 02 4303: 03 00 01 4306: 02 03 01040 XOFF HS 0001020300010203 4308: 00 01 02 430B: 03 00 01 430E: 02 03 01050 HS 0001020300010203 4310: 00 01 02 4313: 03 00 01 4316: 02 03 01060 HS 0001020300010203 4318: 00 01 02 431B: 03 00 01 431E: 02 03 01070 HS 0001020300010203 4320: 00 01 02 4323: 03 00 01 4326: 02 03 01080 HS 0001020300010203 4328: 00 01 02 432B: 03 00 01 432E: 02 03 01090 HS 0001020300010203 4330: 00 01 02 4333: 03 00 01 4336: 02 03 01100 HS 0001020300010203 4338: 00 01 02 433B: 03 00 01 433E: 02 03 01110 HS 0001020300010203 4340: 00 01 02 4343: 03 00 01 4346: 02 03 01120 HS 0001020300010203 4348: 00 01 02 434B: 03 00 01 434E: 02 03 01130 HS 0001020300010203 4350: 00 01 02 4353: 03 00 01 4356: 02 03 01140 HS 0001020300010203 4358: 00 01 02 435B: 03 00 01 435E: 02 03 01150 HS 0001020300010203 4360: 00 01 02 4363: 03 00 01 4366: 02 03 01160 HS 0001020300010203 4368: 00 01 02 436B: 03 00 01 436E: 02 03 01170 HS 0001020300010203 4370: 00 01 02 4373: 03 00 01 4376: 02 03 01180 HS 0001020300010203 4378: 00 01 02 437B: 03 00 01 437E: 02 03 01190 HS 0001020300010203 4380: 00 01 02 4383: 03 00 01 4386: 02 03 01200 HS 0001020300010203 4388: 00 01 02 438B: 03 00 01 438E: 02 03 01210 HS 0001020300010203 4390: 00 01 02 4393: 03 00 01 4396: 02 03 01220 HS 0001020300010203 4398: 00 01 02 439B: 03 00 01 439E: 02 03 01230 HS 0001020300010203 01240 *SHPLO CONTAINS LO ORDER BYTE ADDRESS OF OUR 4 SHAPES 43AO: 00 17 2E 43A3: 45 01250 SHPLO HS 00172E45 01260 *SHPHI CONTAINS HI ORDER BYTE ADDRESS OF OUR 4 SHAPES 43A4: 44 45 46 43A7: 47 01270 SHPHI HS 44454647 43A8: 01280 BS $58 01290 *SHAPES MUST BEGIN AT $4400 01300 *SHAPEO 4400: 02 AA AA 4403: AA AA AA 4406: 80 00 00 01310 SHAPES HS 02AAAAAAAAAA800000 4409: OA AA AA 440C: AA AA AA 440F: A8 00 00 01320 HS OAAAAAAAAAAAA80000 4412: 2A AA AA 4415: AA AA AA 4418: AA 00 00 01330 HS 2AAAAAAAAAAAAAOOOO 441B: 2A AA AA 441E: AA AA AA 4421: AA 80 00 01340 HS 2AAAAAAAAAAAAA8000 4424: AA AA AA 4427: AA AA.AA 442A: AA 80 00 01350 HS AAAAAAAAAAAAAA8000 442D: AA AA AA 4430: AA AA AA 4433: AA 80 00 01360 HS AAAAAAAAAAAAAA8000 4436: 2A AA AA 4439: AA AA AA 443C: AA 80 00 01370 HS 2AAAAAAAAAAAAA8000 443F: 2A AA AA 4442: AA AA AA 4445: AA 00 00 01380 HS 2AAAAAAAAAAAAAOOOO 4448: OA AA AA 444B: AA AA AA 444E: A8 00 00 01390 HS OAAAAAAAAAAAA80000 4451: 00 00 01 4454: 55 40 00 4457: 00 00 00 01400 HS 000001554000000000 445A: 00 03 81 445D: 55 40 00 4460: 00 00 00 01410 HS 000381554000000000 4463: 00 03 80 4466: 55 00 00 4469: 00 00 00 01420 HS 000380550000000000 446C: 00 01 00 446F: 15 00 00 4472: 00 00 00 01430 HS 000100150000000000 4475: 00 07 80 4478: 18 00 00 447B: 00 00 00 01440 HS 000780180000000000 447E: 00 01 80 4481: 18 00 00 4484: 00 00 00 01450 HS 000180180000000000 4487: 40 07 AA 448A: 8A 80 00 448D: CO AO 00 01460 HS 4007AA8A8OOOC0AOOO 4490: 50 1F 02 4493: AA 80 00 4496: C2 A8 00 01470 HS 50lFO2AA8OOOC2A8OO 4499: 50 1C 00 449C: AA 80 00 449F: E2 AB 00 01480 HS 50IC00AA80OOE2ABOO 44A2: 54 00 00 44A5: OA 80 00 44A8: EA AB 00 01490 HS 540000OA8000EAABOO 44AB: 55 07 FF 44AE: FF FF FD 44Bl: EA AB 00 01500 HS 5507FFFFFFFDEAABOO 44B4: 55 OF FF 44B7: FF FF E5 44BA: E2 AB 00 01510 HS 550FFFFFFFE5E2ABOO 44BD: 55 5F FF 44CO: FF FF D4 44C3: 02 A8 00 01520 HS 555FFFFFFFD402A800 44C6: 55 40 00 44C9: 18 00 10 44CC: 00 AO 00 01530 HS 55400018001000AOGO 44CF: 50 50 00 44D2: 18 00 50 44D5: 00 00 00 01540 HS 505000180050000000 44D8: 50 10 00 44DB: 18 00 40 44DE: 00 00 00 01550 HS 501000180040000000 44EI: 40 14 00 44E4: 18 01 40 44E7: 00 00 00 01560 HS 401400180140000000 44EA: 00 05 00 44ED: 18 01 00 44FO: 00 00 00 01570 HS 000500180100000000 44F3: 00 05 40 44F6: 54 05 00 44F9: 00 00 00 01580 HS 000540540500000000 44FC: 00 01 55 44FF: 55 54 00 4502: 00 00 00 01590 HS 000155555400000000 4505: 00 00 55 4508: 55 54 00 450B: 00 00 00 01600 HS 000055555400000000 450E: 00 00 15 4511: 01 50 00 4514: 00 00 00 01610 HS 000015015000000000 01620 *SHAPE #1 SHIFTED RT 2 PIXELS 4517: 00 AA AA 451A: AA AA AA 451D: AO 00 00 01630 HS OOAAAAAAAAAAAOOOOO 4520: 02 AA AA 4523: AA AA AA 4526: AA 00 00 01640 HS 02AAAAAAAAAAAAOOOO 4529: OA AA AA 452C: AA AA AA 452F: AA 80 00 01650 HS OAAAAAAAAAAAAA8000 4532: OA AA AA 4535: AA AA AA 4538: AA AO 00 01660 HS OAAAAAAAAAAAAAAOOO 453B: 2A AA AA 453E: AA AA AA 4541: AA AO 00 01670 HS 2AAAAAAAAAAAAAAOOO 4544: 2A AA AA 4547: AA AA AA 454A: AA AO 00 01680 HS 2AAAAAAAAAAAAAAOOO 454D: OA AA AA 4550: AA AA AA 4553: AA AO 00 01690 HS OAAAAAAAAAAAAAAOOO 4556: OA AA AA 4559: AA AA AA 455C: AA 80 00 01700 HS OAAAAAAAAAAAAA8000 455F: 02 AA AA 4562: AA AA AA 4565: AA 00 00 01710 HS 02AAAAAAAAAAAAOOOO 4568: 00 00 00 456B: 55 50 00 456E: 00 00 00 01720 HS 000000555000000000 4571: 00 00 EO 4574: 55 50 00 4577: 00 00 00 01730 HS 00OOE0555000000000 457A: 00 00 EO 457D: 15 40 00 4580: 00 00 00 01740 HS 00OOE0154000000000 4583: 00 00 40 4586: 05 40 00 4589: 00 00 00 01750 HS 000040054000000000 458C: 00 01 EO 458F: 06 00 00 4592: 00 00 00 01760 HS 00OIE0060000000000 4595: 00 00 60 4598: 06 00 00 459B: 00 30 00 01770 HS 000060060000003000 459E: 10 01 EA 45Al: A2 AO 00 45A4: 30 28 00 01780 HS 1001EAA2AO00302800 45A7: 14 07 CO 45AA: AA AO 00 45AD: 30 28 00 01790 HS 1407COAAA000302800 45BO: 14 07 00 45B3: AA AO 00 45B6: 30 AA CO 01800 HS 140700AAA00030AACO 45B9: 15 00 00 45BC: 02 AO 00 45BF: 78 AA CO 01810 HS 15000002AO0078AACO 45C2: 15 01 FF 45C5: FF FF FF 45C8: 7A AA CO 01820 HS 150IFFFFFFFF7AAACO 45CB: 15 03 FF 45CE: FF FF F9 45DI: 78 AA CO 01830 HS 1503FFFFFFF978AACO 45D4: 15 57 FF 45D7: FF FF F5 45DA: 00 AA 00 01840 HS1557FFFFFFF500AAOO 45DD: 15 50 00 45EO: 06 00 04 45E3: 00 28 00 01850 HS 155000060004002800 45E6: 14 14 00 45E9: 06 00 14 45EC: 00 00 00 01860 HS 141400060014000000 45EF: 14 04 00 45F2: 06 00 10 45F5: 00 00 00 01870 HS 140400060010000000 45F8: 10 05 00 45FB: 06 00 50 45FE: 00 00 00 01880 HS 100500060050000000 4601: 00 01 40 4604: 06 00 40 4607: 00 00 00 01890 HS 000140060040000000 460A: 00 01 50 460D: 15 01 40 4610: 00 00 00 01900 HS 000150150140000000 4613: 00 00 55 4616: 55 55 00 4619: 00 00 00 01910 HS 000055555500000000 461C: 00 00 15 461F: 55 55 00 4622: 00 00 00 01920 HS 000015555500000000 4625: 00 00 05 4628: 40 54 00 462B: 00 00 00 01930 HS 000005405400000000 01940 *SHAPE #2 SHIFTER RT 4 PIXELS 462E: 00 2A AA 4631: AA AA AA 4634: A8 00 00 01950 HS 002AAAAAAAAAA80000 4637: 00 AA AA 463A: AA AA AA 463D: AA 80 00 01960 HS OOAAAAAAAAAAAA8000 4640: 02 AA AA 4643: AA AA AA 4646: AA AO 00 01970 HS 02AAAAAAAAAAAAAOOO 4649: 02 AA AA 464C: AA AA AA 464F: AA A8 00 01980 HS 02AAAAAAAAAAAAA800 4652: OA AA AA 4655: AA AA AA 4658: AA A8 00 01990 HS OAAAAAAAAAAAAAA800 465B: OA AA AA 465E: AA AA AA 4661: AA A8 00 02000 HS OAAAAAAAAAAAAAA800 4664: 02 AA AA 4667: AA AA AA 466A: AA A8 00 02010 HS 02AAAAAAAAAAAAA800 466D: 02 AA AA 4670: AA AA AA 4673: AA AO 00 02020 HS 02AAAAAAAAAAAAAOOO 4676: 00 AA AA 4679: AA AA AA 467C: AA 80 00 02030 HS OOAAAAAAAAAAAA8000 467F: 00 00 00 4682: 15 54 00 4685: 00 00 00 02040 HS 000000155400000000 4688: 00 00 38 468B: 15 54 00 468E: 00 00 00 02050 HS 000038155400000000 4691: 00 00 38 4694: 05 50 00 4697: 00 00 00 02060 HS 000038055000000000 469A: 00 00 10 469D: 01 50 00 46AO: 00 00 00 02070 HS 000010015000000000 46A3: 00 00 78 46A6: 01 80 00 46A9: 00 00 00 02080 HS 000078018000000000 46AC: 00 00 18 46AF: 01 80 00 46B2: 00 00 00 02090 HS 000018018000000000 46B5: 04 00 7E 46B8: E8 A8 00 46BB: OC OA 00 02100 HS 04007EE8A8000COA00 46BE: 05 01 FO 46CI: 6A A8 00 46C4: OC 2A 80 02110 HS 05OlFO6AA800OC2A80 46C7: 05 01 CO 46CA: OA A8 00 46CD: IE 2A BO 02120 HS 050IC00AA80OIE2ABO 46DO: 05 40 00 46D3: 00 A8 00 46D6: IE AA BO 02130 HS 0540000OA8001EAABO 46D9: 05 50 7F 46DC: FF FF FF 46DF: DE AA BO 02140 HS 05507FFFFFFFDEAABO 46E2: 05 50 FF 46E5: FF FF FE 46E8: 5E 2A BO 02150 HS 0550FFFFFFFE5E2ABO 46EB: 05 55 FF 46EE: FF FF FD 46FI: 40 2A 80 02160 HS 0555FFFFFFFD402A80 46F4: 05 54 00 46F7: 01 80 01 46FA: 00 OA 00 02170 HS 05540001800100OA00 46FD: 05 05 00 4700: 01 80 05 4703: 00 00 00 02180 HS 050500018005000000 4706: 05 01 00 4709: 01 80 04 470C: 00 00 00 02190 HS 050100018004000000 470F: 04 01 40 4712: 01 80 14 4715: 00 00 00 02200 HS 040140018014000000 4718: 00 00 50 471B: 01 80 10 471E: 00 00 00 02210 HS 000050018010000000 4721: 00 00 54 4724: 05 40 50 4727: 00 00 00 02220 HS 000054054050000000 472A: 00 00 15 472D: 55 55 40 4730: 00 00 00 02230 HS 000015555540000000 4733: 00 00 05 4736: 55 55 40 4739: 00 00 00 02240 HS 000005555540000000 473C: 00 00 01 473F: 50 15 00 4742: 00 00 00 02250 HS 000001501500000000 02260 *SHAPE #3 SHIFTED RT 6 PIXELS 4745: 00 OA AA 4748: AA AA AA 474B: AA 00 00 02270 HS OOOAAAAAAAAAAAOOOO 474E: 00 2A AA 4751: AA AA AA 4754: AA AO 00 02280 HS 002AAAAAAAAAAAAOOO 4757: 00 AA AA 475A: AA AA AA 475D: AA A8 00 02290 HS OOAAAAAAAAAAAAA800 4760: 00 AA AA 4763: AA AA AA 4766: AA AA 00 02300 HS OOAAAAAAAAAAAAAAOO 4769: 02 AA AA 476C: AA AA AA 476F: AA AA 00 02310 HS 02AAAAAAAAAAAAAAOO 4772: 02 AA AA 4775: AA AA AA 4778: AA AA 00 02320 HS 02AAAAAAAAAAAAAAOO 477B: 00 AA AA 477E: AA AA AA 4781: AA AA 00 02330 HS OOAAAAAAAAAAAAAAOO 4784: 00 AA AA 4787: AA AA AA 478A: AA A8 00 02340 HS OOAAAAAAAAAAAAA800 478D: 00 2A AA 4790: AA AA AA 4793: AA AO 00 02350 HS 002AAAAAAAAAAAAOOO 4796: 00 00 00 4799: 05 55 00 479C: 00 00 00 02360 HS 000000055500000000 479F: 00 00 OE 47A2: 05 55 00 47A5: 00 00 00 02370 HS 000OOE055500000000 47A8: 00 00 OE 47AB: 01 54 00 47AE: 00 00 00 02380 HS 000OOE015400000000 47Bl: 00 00 04 47B4: 00 54 00 47B7: 00 00 00 02390 HS 000004005400000000 47BA: 00 00 IE 47BD: 00 60 00 47CO: 00 00 00 02400 HS 00OOlEO06000000000 47C3: 00 00 06 47C6: 00 60 00 47C9: 00 00 00 02410 HS 000006006000000000 47CC: 01 00 1E 47CF: AA 2A 00 47D2: 03 02 80 02420 HS 01001EAA2AO0030280 47D5: 01 40 7C 47D8: OA AA 00 47DB; 03 OA AO 02430 HS 01407COAAA00030AAO 47DE: 01 40 70 47El: 02 AA 00 47E4: 07 8A AC 02440 HS 01407002AA00078AAC 47E7: 01 50 00 47EA: 00 2A 00 47ED: 07 AA AC 02450 HS 015000002AO007AAAC 47FO: 01 54 IF 47F3: FF FF FF 47F6: F7 AA AC 02460 HS 01541FFFFFFFF7AAAC 47F9: 01 54 3F 47FC: FF FF FF 47FF: 97 8A AC 02470 HS 01543FFFFFFF978AAC 4802: 01 55 7F 4805: FF FF FF 4808: 50 OA AO 02480 HS 01557FFFFFFF500AAO 48OB: 01 55 00 48OE: 00 60 00 4811: 40 02 80 02490 HS 015500006000400280 4814: 01 41 40 4817: 00 60 01 481A: 40 00 00 02500 HS 014140006001400000 48ID: 01 40 40 4820: 00 60 01 4823: 00 00 00 02510 HS 014040006001000000 4826: 01 00 50 4829: 00 60 05 482C: 00 00 00 02520 HS 010050006005000000 482F: 00 00 14 4832: 00 60 04 4835: 00 00 00 02530 HS 000014006004000000 4838: 00 00 15 483B: 01 50 14 483E: 00 00 00 02540 HS 000015015014000000 4841: 00 00 05 4844: 55 55 50 4847: 00 00 00 02550 HS 000005555550000000 484A: 00 00 01 484D: 55 55 50 4850: 00 00 00 02560 HS 000001555550000000 4853: 00 00 00 4856: 54 05 40 4859: 00 00 00 02570 HS 000000540540000000 02580 *START TABLE ON EVEN PAGE BOUNDARY 485C: 02590 BS $A4 4900: 43 10 3F 4903: 08 38 20 4906: 00 14 02600 NOTES HS 43103FO838200014 ;PlMl 4908: 43 08 4B 490B: 10 43 08 490E: 54 40 02610 HS 43084BlO43085440 4910: 43 10 43 4913: 08 4B 10 4916: 54 08 02620 RS 431043084B105408 4918: 65 20 00 491B: 10 65 08 491E: 43 10 02630 HS 6520001065084310 ;PIM2 4920: 43 08 4B 4923: 20 00 10 02640 HS 43084B200010 4926: 43 10 3F 4929: 08 38 20 492C: 00 14 02650 HS 43103FO838200014 ;PIMI 492E: 43 08 4B 4931: 10 43 08 4934: 54 40 02660 HS 430801043085440 4936: 43 10 43 4939: 08 4B 10 493C: 54 08 02670 HS 431043084BI05408 493E: 65 20 00 4941: 10 65 08 4944: 43 10 02680 HS 6520001065084310 ;PlM2 4946: 43 08 4B 4949: 20 00 10 02690 HS 43084B200010 494C: 38 20 00 494F: 02 38 20 4952: 00 02 38 4955: 20 38 10 02700 HS 382000023820000238203810 ;P2MI 4958: 00 02 38 495B: 10 32 08 495E: 4B 10 00 4961: 02 02710 HS 0002381032084BI00002 4962: 4B 08 00 4965: 02 4B 10 4968: 00 02 4B 496B: 08 00 02 496E: 4B 40 00 4971: 02 4B 10 02720 Hs 4BO800024BlOOOO24BO800024B4000024BlO ;P2M2 4974: 00 02 4B 4977: 08 00 02 497A: 4B 10 00 497D: 02 4B 08 4980: 00 02 4B 4983: 40 02730 HS 00024BO800024BlOOOO24BO800024B40 4984: 54 10 00 4987: 02 54 08 498A: 00 02 54 498D: 10 00 02 4990: 54 08 00 4993: 02 54 40 02740 HS 541000025408000254100002540800025440 ;P2M3 4996: 38 20 00 4999: 02 38 20 499C: 00 02 38 499F: 20 38 10 02750 HS 382000023820000238203810 ;P2Ml 49A2: 00 02 38 49A5: 10 32 08 49A8: 4B 10 00 49AB: 02 02760 HS 0002381032080100002 49AC: 4B 08 00 49AF: 02 4B 10 49B2: 00 02 4B 49B5: 08 00 02 49B8: 4B 40 00 49BB: 02 4B 10 02770 -HS 4BO800024BI000024BO8OW24B4000024BlO ;P2M2 49BE: 00 02 4B 49CI: 08 00 02 49C4: 4B 10 00 49C7: 02 4B 08 49CA: 00 02 4B 49CD: 40 02780 HS 00024BO800024BlOOOO24BO800024B40 49CE: 54 10 00 49Dl: 02 54 08 49D4: 00 02 54 49D7: 10 00 02 49DA: 54 08 00 49DD: 02 54 40 02790 HS 541000025408000254100002540800025440 ;P2M3 49EO: 00 15 FF 02800 HS 0015FF ;REST & REPEAT 02810 *VARIABLES 49E3: 00 02820 X BS 1 49E4: 00 02830 Y BS 1 49E5: 00 02840 HORIZ BS 1 49E6: 00 02850 TEMP BS 1 49E7: 00 02860 DEPTH BS 1 49E8: 00 02870 SLNGH BS 1 49E9: 00 02880 VERT .BS 1 49EA: 00 02890 OFFSET .BS 1 49EB: 00 02900 POINTER .BS 1 49EC: 00 02910 TIME .BS 1 49ED: 00 02920 TDELAY .BS 1 49EE: 00 02925 VBFLAG .BS 1 02930 *CLEAR SCREEN 8K INCLUDING NDLIST AREA 49EF: A9 00 02940 CLRSCR LDA #SCREEN ;SETUP POINTERS TO CLEAR SCREEN 49FI: 85 F4 02950 STA SL 49F3: A9 60 02960 LDA /SCREEN 49F5: 85 F5 02970 STA SH 49F7: AO 00 02980 LDY #$00 49F9: 98 02990 TYA 49FA: A2 20 03000 LDX #$20 ;32 PAGES (8K) 49FC: 91 F4 03010 .2 STA (SL),Y 49FE: C8 03020 INY 49FF: DO FB 03030 BNE .2 ;CONTINUE UNTIL DONE WITH 256 BYTES 4AO1: E6 F5 03040 INC SH ;DO NEXT PAGE 4AO3: CA 03050 DEX 4AO4: DO F6 03060 BNE .2 03070 *SETUP DLIST 4AO6: A2 00 03080 LDX #$00 4AO8: BD 00 42 03090 DLOOP LDA DLIST,X 4AOB: 9D 00 60 03100 STA NDLIST,X 4AOE: E8 03110 INX 4AOF: EO CC 03120 CPx #$CC ;204 ELEMENTS 4All: DO F5 03130 BNE DLOOP 4A13: A9 00 03140 LDA #NDLIST 4A15: 8D 30 02 03150 STA 560 4A18: A9 60 03160 LDA /NDLIST 4AlA: 8D 31 02 03170 STA 561 03180 *INITILIZE 4AlD: A9 OB 03190 LDA #$OB 4AlF: 8D C5 02 03200 STA COLOR1 4A22: A9 00 03210 LDA #$00 4A24: 8D C6 02 03220 STA COLOR2 4A27: A9 40 03230 LDA #$40 4A29: 8D E3 49 03240 STA X 4A2C: A9 20 03250 LDA #$20 4A2E: 8D E4 49 03260 STA Y 4A31: 8D E9 49 03270 STA VERT 4A34: A9 00 03280 LDA #$00 4A36: 8D ED 49 03290 STA TDELAY 4A39: A9 00 03300 LDA MOTES ;GET LO BYTE OF TABLE 4A3B: 85 F6 03310 STA NOTEL 4A3D: A9 49 03320 LDA /NOTES ;GET HI BYTE OF TABLE 4A3F: 85 F7 03330 STA NOTEH 4A41: A9 00 03340 LDA #$00 ;CLEAR TIHER 4A43: 85 14 03350 STA $14 4A45: A9 01 03360 LDA #$Ol 4A47: 8D EC 49 03370 STA TIME 4A4A: A9 EA 03380 LDA #$EA ;PURE TONE - VOLUME 10 4A4C: 8D 01 D2 03390 STA AUDC1 4A4F: AO 00 03400 LDY #$00 4A51: 8C EB 49 03410 STY POINTER 03420 *SET VBLANK 4A54: A9 07 03430 LDA #$07 4A56: A2 4A 03440 LDX /FRAME 4A58: AO 60 03450 LDY #FRAME 4A5A: 20 5C E4 03460 JSR SETVBK 4A5D: 4C 5D 4A 03465 FOREVER JMP FOREVER 03470 *VBLANK ROUTINE 4A60: AD EE 49 03472 FRAME LDA VBFLAG 4A63: FO 03 03473 BEQ OK 4A65: 4C 62 E4 03474 JMP $E462 4A68: A9 01 03475 OK LDA #$Ol 4A6A: 8D EE 49 03476 STA VBFLAG 4A6D: AD E3 49 03480 LDA X ;CALC NEW HORIZ OFFSET 4A70: 4A 03490 LSR ;DIVIDE BY 4 TO GET HORIZ BYTE 4A71: 4A 03500 LSR 4A72: 8D E5 49 03510 STA HORIZ 4A75: 20 E7 4A 03520 JSR SETUP 4A78: 20 OB 4B 03530 JSR DRAW ;DRAW SHAPE 4A7B: AD ED 49 03540 LDA TDELAY ;DELAY 3/60 TH SEC 4A7E: C9 03 03550 CMP #$03 4A80: DO 1F 03560 BNE .1 4A82: 20 E7 4A 03570 JSR SETUP 4A85: 20 90 4B 03580 JSR XDRAW ;XDRAW SHAPE 4A88: 20 45 4B 03590 JSR JOYSTK ;READ JOYSTICK 4A8B: AD E3 49 03600 LDA X ;CALC NEW HORIZ OFFSET 4A8E: 4A 03610 LSR 4A8F: 4A 03620 LSR 4A90: 8D E5 49 03630 STA HORIZ 4A93: 20 E7 4A 03640 JSR SETUP 4A96: 20 OB 4B 03650 JSR DRAW ;IMMEDIATELY REDRAW SHAPE 4A99: A9 00 03660 LDA #$00 ;RESET DELAY 4A9B: 8D ED 49 03670 STA TDELAY 4A9E: 4C A4 4A 03680 JMP SOUND 4AAl: EE ED 49 03690 .1 INC TDELAY 4AA4: AD EC 49 03700 SOUND LDA TIME 4AA7: C5 14 03710 CMP $14 4AA9: BO 34 03720 BGE .2 03730 *STOP NOTE - EQUIVALENT TO SOUND 0,0,0,0 4AAB: A9 00 03740 LDA #$00 4AAD: 8D 08 D2 03750 STA $D208 4ABO: A9 03 03760 LDA #$03 4AB2: 8D OF D2 03770 STA $D20F 4AB5: AC EB 49 03780 LDY POINTER 03790 *LOAD NEXT NOTE 4AB8: BI F6 03800 LDA (NOTEL),Y 4ABA: C9 FF 03810 CMP #$FF ;LAST NOTE? 4ABC: DO 09 03820 BNE .3 03830 *RESET TO BEGINNING NOTE 4ABE: AO 00 03840 LDY #$00 4ACO: 8C EB 49 03850 STY POINTER 4AC3: A9 49 03860 LDA /NOTES 4AC5: 85 F7 03870 STA NOTEH 03880 *CONTINUE READING NOTES & STORING VALUES IN SOUND REGISTERS 4AC7: 8D 00 D2 03890 .3 STA AUDFI ;STORE FREQUENCY OF NEXT NOTE 4ACA: C8 03900 INY 4ACB: EE EB 49 03910 INC POINTER 4ACE: Bl F6 03920 LDA (NCfrEL),Y 4ADO: 8D EC 49 03930 STA TIME ;STORE LENGTH OF NOTE 4AD3: C8 03940 INY 4AD4: EE EB 49 03950 INC POINTER 4AD7: DO 02 03960 BNE .1 ;CAN ONLY HAPPEN ON AN EVEN NUMBER 4AD9: E6 F7 03970 INC NOTEH ;NEXT PAGE OF NOTES 4ADB: A9 00 03980 .1 LDA #$00 ;CLEAR TIMER AT BEGIINING OF EACH NEW NOTE 4ADD: 85 14 03990 STA $14 4ADF: A9 00 03995 .2 LDA #$00 4AEl: 8D EE 49 03996 STA VBFLAG 4AE4: 4C 62 E4 04000 JMP XITVBK 04010 *SUBROUTINES 04020 *DRAWING SETUP SUBROUTINE 4AE7: AC E3 49 04030 SETUP LDY X ;HORIZONTAL POSITION (0-159) 4AEA: BE 00 43 04040 LDX XOFF,Y ;INDEX TO FIND SHAPE # 4AED: BD AO 43 04050 LDA SHPLO,X ;INDEX TO GET LO BYTE OF SHAPE TABLE 4AFO: 85 FO 04060 STA SHPL ;STORE LO BYTE IN ZERO PAGE 4AF2: BD A4 43 04070 LDA SHPHI,X ;GET HI BYTE OF SHAPE TABLE 4AF5: 85 Fl 04080 STA SHPH 4AF7: AD E4 49 04090 LDA Y 4AFA: 8D E9 49 04100 STA VERT 4AFD: A9 1F 04110 LDA #$lF 4AFF: 8D E7 49 04120 STA DEPTH ;SHAPE IS 31 LINES DEEP 4B02: A9 09 04130 LDA #$09 4B04: 8D E8 49 04140 STA SLNGH ;SHAPE IS 9 BYTES WIDE 4B07: 8D E6 49 04150 STA TEMP ;STORED HERE ALSO BECAUSE DRAWING *ROUTINE DECREMENTS SLNGH 0 04160 ;AND VARIABLE MUST BE RESTORED AT START OF NEXT ROW 4B0A: 60 04170 RTS 04180 *DRAW SHAPE SUBROUTINE 4B0B: AC E9 49 04190 DRAW LDY VERT ;VERTICAL POSITION 4B0E: 20 34 4B 04200 JSR GETADR ;FIND BEGINNING OF SCREEN ADDRESS OF ROW 4B11: A2 00 04210 LDX #$00 4B13: AD E6 49 04220 LDA TEMP 4BI6: 8D E8 49 04230 STA SLNGH ;RESTORE VALUE OF WIDTH FOR NEXT ROW 4BI9: AO 00 04240 LDY #$00 4BIB: Al FO 04250 DRAW2 LDA (SHPL,X);GET BYTE OF SHAPE TABLE 4BlD: 91 F2 04260 STA (HIRESL),Y ;PLOT ON SCREEN 4BIF: E6 FO 04270 INC SHPL ;NEXT BYTE OF SHAPE TABLE 4B21: DO 02 04280 BNE .1 ;IF CROSS PAGE BOUNDARY? 4B23: E6 Fl 04290 INC SHPH ;INCREMENT TO NEXT PAGE OF SHAPE 4B25: C8 04300 .1 INY ;NEXT POSITION ON SCREEN 4B26: CE E8 49 04310 DEC SLNGH ;DECREMENT WIDTH 4B29: DO FO 04320 BNE DRAW2 ;FINISHED WITH ROW YET 4B2B: EE E9 49 04330 INC VERT JF SO, INCREMENT TO NEXT LINE 4B2E: CE E7 49 04340 DEC DEPTH ;DECREMENT DEPTH 4B31: DO D8 04350 BNE DRAW ;FINISHED ALL ROWS? 4B33: 60 04360 RTS ;YES, END 04370 *GETADR SUBROUTINE FOR FINDING STARTING SCREEN ADDRESS TO PLOT BYTES 4B34: B9 00 40 04380 GETADR LDA YVERTL,Y ;LOOKUP LO BYTE OF LINE 4B37: 18 04390 CLC 4B38: 6D E5 49 04400 ADC HORIZ ;ADD HORIZ OFFSET 4B3B: 85 F2 04410 STA HIRESL ;STORE LO BYTE SCREEN ADDRESS 4B3D: B9 00 41 04420 LDA YVERTH,Y ;LOOKUP HI BYTE LINE 4B40: 69 60 04430 ADC /SCREEN ;ADD HI BYTE OF SCREEN 4B42: 85 F3 04440 STA HIRESH ;STORE HI BYTE SCREEN ADDRESS 4B44: 60 04450 RTS 04460 *JOYSTICK ROUTINE 4B45: AD 78 02 04470 JOYSTK LDA STICK 4B48: 29 02 04480 AND #$02 ;DOWN BIT? 4B4A: DO OD 04490 BNE CHKLF 4B4C: AD E4 49 04500 LDA Y ;PREVENT SHAPE FROM EXITING BOTTOM SCREEN 4B4F: C9 AO 04510 CMP #$AO 4B51: FO 06 04520 BEQ CHKLF 4B53: EE E4 49 04530 INC Y ;MOVE TWO LINES 4B56: EE E4 49 04540 INC Y 4B59: AD 78 02 04550 CHKLF LDA STICK 4B5C: 29 04 04560 AND #$04 ;LEFT BIT? 4B5E: DO OA 04570 BNE CHKRT 4B60: AD E3 49 04580 LDA X ;PREVENT SHAPE FROM EXITING SCREEN LEFT 4B63: C9 00 04590 CMP #$00 4B65: FO 03 04600 BEQ CHKRT 4B67: CE E3 49 04610 DEC X ;THIS MOVES TWO PIXELS 4B6A: AD 78 02 04620 CHKRT LDA STICK 4B6D: 29 08 04630 AND #$08 ;RIGHT BIT? 4B6F: DO OA 04640 BNE CHKUP 4B71: AD E3 49 04650 LDA X ;PREVENT SHAPE FROM EXITING SCREEN RIGHT 4B74: C9 7C 04660 CMP #$7C 4B76: FO 03 04670 BEQ CHKUP 4B78: EE E3 49 04680 INC X 4B7B: AD 78 02 04690 CHKUP LDA STICK 4B7E: 29 01 04700 AND #$01 ;UP BIT 4B80: DO OD 04710 BNE .1 4B82: AD E4 49 04720 LDA Y ;PREVENT SHAPE FROM EXITING TOP SCREEN 4B85: C9 00 04730 CMP #$00 4B87: FO 06 04740 BEQ .1 4B89: CE E4 49 04750 DEC Y 4B8C: CE E4 49 04760 DEC Y 4B8F: 60 04770 .1 RTS 04780 *XDRAW SHAPE SUBROUTINE 4B90: AC E9 49 04790 XDRAW LDY VERT ;VERTICAL POSITION 4B93: 20 34 4B 04800 JSR GETADR ;FIND BEGINNING OF SCREEN ADDRESS OF ROW 4B96: A2 00 04810 LDX #$00 4B98: AD E6 49 04820 LDA TEMP 4B9B: 8D E8 49 04830 STA SLNGH ;RESTORE VALUE OF WIDTH FOR NEXT ROW 4B9E: AO 00 04840 LDY #$00 4BAO: Al FO 04850 XDRAW2 LDA (SHPL,X);GET BYTE OF SHAPE TABLE 4BA2: 51 F2 04860 EOR (HIRESL),Y ;EOR WITH SCREEN IMAGE 4BA4: 91 F2 04870 STA (HIRESL),Y ;PLOT ON SCREEN 4BA6: E6 FO 04880 INC SHPL ;NEXT BYTE OF SHAPE TABLE 4BA8: DO 02 04890 BNE .1 ;IF CROSS PAGE BOUNDARY? 4BAA: E6 F1 04900 INC SHPH ;INCREMENT TO NEXT PAGE OF SHAPE 4BAC: C8 04910 .1 INY ;NEXT POSITION ON SCREEN 4BAD: CE E8 49 04920 DEC SLNGH ;DECREMENT WIDTH 4BBO: DO EE 04930 BNE XDRAW2 ;FINISHED WITH ROW YET 4BB2: EE E9 49 04940 INC VERT ;IF SO, INCREMENT TO NEXT LINE 4BB5: CE E7 49 04950 DEC DEPTH ;DECREMENT DEPTH 4BB8: DO D6 04960 BNE XDRAW 4BBA: 60 04970 RTS ;YES, END