                1  *RASTER GRAPHICS -GR.8 EXAMPLE - WITH MUSIC- JEFF STANTON
                2  	ORG	$4000
                3  *ZERO PAGE EQUATES
                4  SHPL	EQU	$F0
                5  SHPH	EQU	$F1
                6  HIRESL	EQU	$F2
                7  HIRESH	EQU	$F3
                8  SL	EQU	$F4
                9  SH	EQU	$F5
               10  *OTHER EQUATES
               11  SCREEN	EQU	$6000	;SCREEN IS ACTUALLY OFFSET 496 BYTES @ $61FO
               12  NDLIST	EQU	$6000	;ADR OF DISPLAY LIST
               13  STICK	EQU	$278
               14  COLOR1	EQU	$2C5
               15  COLOR2	EQU	$2C6
               16  AUDC1	EQU	$D201
               17  AUDF1	EQU	$D200
               18  NOTEL	EQU	$F6
               19  NOTEH	EQU	$F7
               20  SETVBK	EQU	$E45C
               21  XITVBK	EQU	$E462
               22  *LINE LOOKUP TABLE - LO BYTE STARTS AT $4000
4000 F01840    23  YVERTL	DB	$F0,$18,$40,$68,$90,$B8,$E0,$08
4008 305880    24  	DB	$30,$58,$80,$A8,$D0,$F8,$20,$48
4010 7098C0    25  	DB	$70,$98,$C0,$E8,$10,$38,$60,$88
4018 B0D800    26  	DB	$B0,$D8,$00,$28,$50,$78,$A0,$C8
4020 F01840    27  	DB	$F0,$18,$40,$68,$90,$B8,$E0,$08
4028 305880    28  	DB	$30,$58,$80,$A8,$D0,$F8,$20,$48
4030 7098C0    29  	DB	$70,$98,$C0,$E8,$10,$38,$60,$88
4038 B0D800    30  	DB	$B0,$D8,$00,$28,$50,$78,$A0,$C8
4040 F01840    31  	DB	$F0,$18,$40,$68,$90,$B8,$E0,$08
4048 305880    32  	DB	$30,$58,$80,$A8,$D0,$F8,$20,$48
4050 7098C0    33  	DB	$70,$98,$C0,$E8,$10,$38,$60,$88
4058 B0D800    34  	DB	$B0,$D8,$00,$28,$50,$78,$A0,$C8
4060 F01840    35  	DB	$F0,$18,$40,$68,$90,$B8,$E0,$08
4068 305880    36  	DB	$30,$58,$80,$A8,$D0,$F8,$20,$48
4070 7098C0    37  	DB	$70,$98,$C0,$E8,$10,$38,$60,$88
4078 B0D800    38  	DB	$B0,$D8,$00,$28,$50,$78,$A0,$C8
4080 F01840    39  	DB	$F0,$18,$40,$68,$90,$B8,$E0,$08
4088 305880    40  	DB	$30,$58,$80,$A8,$D0,$F8,$20,$48
4090 7098C0    41  	DB	$70,$98,$C0,$E8,$10,$38,$60,$88
4098 B0D800    42  	DB	$B0,$D8,$00,$28,$50,$78,$A0,$C8
40A0 F01840    43  	DB	$F0,$18,$40,$68,$90,$B8,$E0,$08
40A8 305880    44  	DB	$30,$58,$80,$A8,$D0,$F8,$20,$48
40B0 7098C0    45  	DB	$70,$98,$C0,$E8,$10,$38,$60,$88
40B8 B0D800    46  	DB	$B0,$D8,$00,$28,$50,$78,$A0,$C8
40C0 000000    47  	DS	$40
               48  *LINE L00KUP TABLE - HI BYTE STARTS AT $4100
4100 010202    49  YVERTH	DB	$01,$02,$02,$02,$02,$02,$02,$03
4108 030303    50  	DB	$03,$03,$03,$03,$03,$03,$04,$04
4110 040404    51  	DB	$04,$04,$04,$04,$05,$05,$05,$05
4118 050506    52  	DB	$05,$05,$06,$06,$06,$06,$06,$06
4120 060707    53  	DB	$06,$07,$07,$07,$07,$07,$07,$08
4128 080808    54  	DB	$08,$08,$08,$08,$08,$08,$09,$09
4130 090909    55  	DB	$09,$09,$09,$09,$0A,$0A,$0A,$0A
4138 0A0A0B    56  	DB	$0A,$0A,$0B,$0B,$0B,$0B,$0B,$0B
4140 0B0C0C    57  	DB	$0B,$0C,$0C,$0C,$0C,$0C,$0C,$0D
4148 0D0D0D    58  	DB	$0D,$0D,$0D,$0D,$0D,$0D,$0E,$0E
4150 0E0E0E    59  	DB	$0E,$0E,$0E,$0E,$0F,$0F,$0F,$0F
4158 0F0F10    60  	DB	$0F,$0F,$10,$10,$10,$10,$10,$10
4160 101111    61  	DB	$10,$11,$11,$11,$11,$11,$11,$12
4168 121212    62  	DB	$12,$12,$12,$12,$12,$12,$13,$13
4170 131313    63  	DB	$13,$13,$13,$13,$14,$14,$14,$14
4178 141415    64  	DB	$14,$14,$15,$15,$15,$15,$15,$15
4180 151616    65  	DB	$15,$16,$16,$16,$16,$16,$16,$17
4188 171717    66  	DB	$17,$17,$17,$17,$17,$17,$18,$18
4190 181818    67  	DB	$18,$18,$18,$18,$19,$19,$19,$19
4198 19191A    68  	DB	$19,$19,$1A,$1A,$1A,$1A,$1A,$1A
41A0 1A1B1B    69  	DB	$1A,$1B,$1B,$1B,$1B,$1B,$1B,$1C
41A8 1C1C1C    70  	DB	$1C,$1C,$1C,$1C,$1C,$1C,$1D,$1D
41B0 1D1D1D    71  	DB	$1D,$1D,$1D,$1D,$1E,$1E,$1E,$1E
41B8 1E1E1F    72  	DB	$1E,$1E,$1F,$1F,$1F,$1F,$1F,$1F
41C0 000000    73  	DS	$40
               74  *DISPLAY LIST STARTS AT $4200
4200 707070    75  DLIST	DB	$70,$70,$70,$4F,$F0,$61,$0F,$0F
4208 0F0F0F    76  	DB	$0F,$0F,$0F,$0F,$0F,$0F,$0F,$0F
4210 0F0F0F    77  	DB	$0F,$0F,$0F,$0F,$0F,$0F,$0F,$0F
4218 0F0F0F    78  	DB	$0F,$0F,$0F,$0F,$0F,$0F,$0F,$0F
4220 0F0F0F    79  	DB	$0F,$0F,$0F,$0F,$0F,$0F,$0F,$0F
4228 0F0F0F    80  	DB	$0F,$0F,$0F,$0F,$0F,$0F,$0F,$0F
4230 0F0F0F    81  	DB	$0F,$0F,$0F,$0F,$0F,$0F,$0F,$0F
4238 0F0F0F    82  	DB	$0F,$0F,$0F,$0F,$0F,$0F,$0F,$0F
4240 0F0F0F    83  	DB	$0F,$0F,$0F,$0F,$0F,$0F,$0F,$0F
4248 0F0F0F    84  	DB	$0F,$0F,$0F,$0F,$0F,$0F,$0F,$0F
4250 0F0F0F    85  	DB	$0F,$0F,$0F,$0F,$0F,$0F,$0F,$0F
4258 0F0F0F    86  	DB	$0F,$0F,$0F,$0F,$0F,$0F,$0F,$4F
4260 00700F    87  	DB	$00,$70,$0F,$0F,$0F,$0F,$0F,$0F
4268 0F0F0F    88  	DB	$0F,$0F,$0F,$0F,$0F,$0F,$0F,$0F
4270 0F0F0F    89  	DB	$0F,$0F,$0F,$0F,$0F,$0F,$0F,$0F
4278 0F0F0F    90  	DB	$0F,$0F,$0F,$0F,$0F,$0F,$0F,$0F
4280 0F0F0F    91  	DB	$0F,$0F,$0F,$0F,$0F,$0F,$0F,$0F
4288 0F0F0F    92  	DB	$0F,$0F,$0F,$0F,$0F,$0F,$0F,$0F
4290 0F0F0F    93  	DB	$0F,$0F,$0F,$0F,$0F,$0F,$0F,$0F
4298 0F0F0F    94  	DB	$0F,$0F,$0F,$0F,$0F,$0F,$0F,$0F
42A0 0F0F0F    95  	DB	$0F,$0F,$0F,$0F,$0F,$0F,$0F,$0F
42A8 0F0F0F    96  	DB	$0F,$0F,$0F,$0F,$0F,$0F,$0F,$0F
42B0 0F0F0F    97  	DB	$0F,$0F,$0F,$0F,$0F,$0F,$0F,$0F
42B8 0F0F0F    98  	DB	$0F,$0F,$0F,$0F,$0F,$0F,$0F,$0F
42C0 0F0F0F    99  	DB	$0F,$0F,$0F,$0F,$0F,$0F,$0F,$41
42C8 0060     100  	DB	$00,$60
42CA 000000   101  	DS	$36
              102  *HORIZONTAL OFFSET TABLE - START AT $4300
              103  *THIS POINTS TO PROPER OFFSET SHAPE FOR EACH X POS (0-159)
4300 000102   104  XOFF	DB	$00,$01,$02,$03,$00,$01,$02,$03
4308 000102   105  	DB	$00,$01,$02,$03,$00,$01,$02,$03
4310 000102   106  	DB	$00,$01,$02,$03,$00,$01,$02,$03
4318 000102   107  	DB	$00,$01,$02,$03,$00,$01,$02,$03
4320 000102   108  	DB	$00,$01,$02,$03,$00,$01,$02,$03
4328 000102   109  	DB	$00,$01,$02,$03,$00,$01,$02,$03
4330 000102   110  	DB	$00,$01,$02,$03,$00,$01,$02,$03
4338 000102   111  	DB	$00,$01,$02,$03,$00,$01,$02,$03
4340 000102   112  	DB	$00,$01,$02,$03,$00,$01,$02,$03
4348 000102   113  	DB	$00,$01,$02,$03,$00,$01,$02,$03
4350 000102   114  	DB	$00,$01,$02,$03,$00,$01,$02,$03
4358 000102   115  	DB	$00,$01,$02,$03,$00,$01,$02,$03
4360 000102   116  	DB	$00,$01,$02,$03,$00,$01,$02,$03
4368 000102   117  	DB	$00,$01,$02,$03,$00,$01,$02,$03
4370 000102   118  	DB	$00,$01,$02,$03,$00,$01,$02,$03
4378 000102   119  	DB	$00,$01,$02,$03,$00,$01,$02,$03
4380 000102   120  	DB	$00,$01,$02,$03,$00,$01,$02,$03
4388 000102   121  	DB	$00,$01,$02,$03,$00,$01,$02,$03
4390 000102   122  	DB	$00,$01,$02,$03,$00,$01,$02,$03
4398 000102   123  	DB	$00,$01,$02,$03,$00,$01,$02,$03
              124  *SHPLO CONTAINS LO ORDER BYTE ADDRESS OF OUR 4 SHAPES
43A0 00172E   125  SHPLO	DB	$00,$17,$2E,$45
              126  *SHPHI CONTAINS HI ORDER BYTE ADDRESS OF OUR 4 SHAPES
43A4 444546   127  SHPHI	DB	$44,$45,$46,$47
43A8 000000   128  	DS	$58
              129  *SHAPES MUST BEGIN AT $4400
              130  *SHAPE0
4400 02AAAA   131  SHAPES	DB	$02,$AA,$AA,$AA,$AA,$AA,$80,$00,$00
4409 0AAAAA   132  	DB	$0A,$AA,$AA,$AA,$AA,$AA,$A8,$00,$00
4412 2AAAAA   133  	DB	$2A,$AA,$AA,$AA,$AA,$AA,$AA,$00,$00
441B 2AAAAA   134  	DB	$2A,$AA,$AA,$AA,$AA,$AA,$AA,$80,$00
4424 AAAAAA   135  	DB	$AA,$AA,$AA,$AA,$AA,$AA,$AA,$80,$00
442D AAAAAA   136  	DB	$AA,$AA,$AA,$AA,$AA,$AA,$AA,$80,$00
4436 2AAAAA   137  	DB	$2A,$AA,$AA,$AA,$AA,$AA,$AA,$80,$00
443F 2AAAAA   138  	DB	$2A,$AA,$AA,$AA,$AA,$AA,$AA,$00,$00
4448 0AAAAA   139  	DB	$0A,$AA,$AA,$AA,$AA,$AA,$A8,$00,$00
4451 000001   140  	DB	$00,$00,$01,$55,$40,$00,$00,$00,$00
445A 000381   141  	DB	$00,$03,$81,$55,$40,$00,$00,$00,$00
4463 000380   142  	DB	$00,$03,$80,$55,$00,$00,$00,$00,$00
446C 000100   143  	DB	$00,$01,$00,$15,$00,$00,$00,$00,$00
4475 000780   144  	DB	$00,$07,$80,$18,$00,$00,$00,$00,$00
447E 000180   145  	DB	$00,$01,$80,$18,$00,$00,$00,$00,$00
4487 4007AA   146  	DB	$40,$07,$AA,$8A,$80,$00,$C0,$A0,$00
4490 501F02   147  	DB	$50,$1F,$02,$AA,$80,$00,$C2,$A8,$00
4499 501C00   148  	DB	$50,$1C,$00,$AA,$80,$00,$E2,$AB,$00
44A2 540000   149  	DB	$54,$00,$00,$0A,$80,$00,$EA,$AB,$00
44AB 5507FF   150  	DB	$55,$07,$FF,$FF,$FF,$FD,$EA,$AB,$00
44B4 550FFF   151  	DB	$55,$0F,$FF,$FF,$FF,$E5,$E2,$AB,$00
44BD 555FFF   152  	DB	$55,$5F,$FF,$FF,$FF,$D4,$02,$A8,$00
44C6 554000   153  	DB	$55,$40,$00,$18,$00,$10,$00,$A0,$00
44CF 505000   154  	DB	$50,$50,$00,$18,$00,$50,$00,$00,$00
44D8 501000   155  	DB	$50,$10,$00,$18,$00,$40,$00,$00,$00
44E1 401400   156  	DB	$40,$14,$00,$18,$01,$40,$00,$00,$00
44EA 000500   157  	DB	$00,$05,$00,$18,$01,$00,$00,$00,$00
44F3 000540   158  	DB	$00,$05,$40,$54,$05,$00,$00,$00,$00
44FC 000155   159  	DB	$00,$01,$55,$55,$54,$00,$00,$00,$00
4505 000055   160  	DB	$00,$00,$55,$55,$54,$00,$00,$00,$00
450E 000015   161  	DB	$00,$00,$15,$01,$50,$00,$00,$00,$00
              162  *SHAPE #1 SHIFTED RT 2 PIXELS
4517 00AAAA   163  	DB	$00,$AA,$AA,$AA,$AA,$AA,$A0,$00,$00
4520 02AAAA   164  	DB	$02,$AA,$AA,$AA,$AA,$AA,$AA,$00,$00
4529 0AAAAA   165  	DB	$0A,$AA,$AA,$AA,$AA,$AA,$AA,$80,$00
4532 0AAAAA   166  	DB	$0A,$AA,$AA,$AA,$AA,$AA,$AA,$A0,$00
453B 2AAAAA   167  	DB	$2A,$AA,$AA,$AA,$AA,$AA,$AA,$A0,$00
4544 2AAAAA   168  	DB	$2A,$AA,$AA,$AA,$AA,$AA,$AA,$A0,$00
454D 0AAAAA   169  	DB	$0A,$AA,$AA,$AA,$AA,$AA,$AA,$A0,$00
4556 0AAAAA   170  	DB	$0A,$AA,$AA,$AA,$AA,$AA,$AA,$80,$00
455F 02AAAA   171  	DB	$02,$AA,$AA,$AA,$AA,$AA,$AA,$00,$00
4568 000000   172  	DB	$00,$00,$00,$55,$50,$00,$00,$00,$00
4571 0000E0   173  	DB	$00,$00,$E0,$55,$50,$00,$00,$00,$00
457A 0000E0   174  	DB	$00,$00,$E0,$15,$40,$00,$00,$00,$00
4583 000040   175  	DB	$00,$00,$40,$05,$40,$00,$00,$00,$00
458C 0001E0   176  	DB	$00,$01,$E0,$06,$00,$00,$00,$00,$00
4595 000060   177  	DB	$00,$00,$60,$06,$00,$00,$00,$30,$00
459E 1001EA   178  	DB	$10,$01,$EA,$A2,$A0,$00,$30,$28,$00
45A7 1407C0   179  	DB	$14,$07,$C0,$AA,$A0,$00,$30,$28,$00
45B0 140700   180  	DB	$14,$07,$00,$AA,$A0,$00,$30,$AA,$C0
45B9 150000   181  	DB	$15,$00,$00,$02,$A0,$00,$78,$AA,$C0
45C2 1501FF   182  	DB	$15,$01,$FF,$FF,$FF,$FF,$7A,$AA,$C0
45CB 1503FF   183  	DB	$15,$03,$FF,$FF,$FF,$F9,$78,$AA,$C0
45D4 1557FF   184  	DB	$15,$57,$FF,$FF,$FF,$F5,$00,$AA,$00
45DD 155000   185  	DB	$15,$50,$00,$06,$00,$04,$00,$28,$00
45E6 141400   186  	DB	$14,$14,$00,$06,$00,$14,$00,$00,$00
45EF 140400   187  	DB	$14,$04,$00,$06,$00,$10,$00,$00,$00
45F8 100500   188  	DB	$10,$05,$00,$06,$00,$50,$00,$00,$00
4601 000140   189  	DB	$00,$01,$40,$06,$00,$40,$00,$00,$00
460A 000150   190  	DB	$00,$01,$50,$15,$01,$40,$00,$00,$00
4613 000055   191  	DB	$00,$00,$55,$55,$55,$00,$00,$00,$00
461C 000015   192  	DB	$00,$00,$15,$55,$55,$00,$00,$00,$00
4625 000005   193  	DB	$00,$00,$05,$40,$54,$00,$00,$00,$00
              194  *SHAPE #2 SHIFTED RT 4 PIXELS
462E 002AAA   195  	DB	$00,$2A,$AA,$AA,$AA,$AA,$A8,$00,$00
4637 00AAAA   196  	DB	$00,$AA,$AA,$AA,$AA,$AA,$AA,$80,$00
4640 02AAAA   197  	DB	$02,$AA,$AA,$AA,$AA,$AA,$AA,$A0,$00
4649 02AAAA   198  	DB	$02,$AA,$AA,$AA,$AA,$AA,$AA,$A8,$00
4652 0AAAAA   199  	DB	$0A,$AA,$AA,$AA,$AA,$AA,$AA,$A8,$00
465B 0AAAAA   200  	DB	$0A,$AA,$AA,$AA,$AA,$AA,$AA,$A8,$00
4664 02AAAA   201  	DB	$02,$AA,$AA,$AA,$AA,$AA,$AA,$A8,$00
466D 02AAAA   202  	DB	$02,$AA,$AA,$AA,$AA,$AA,$AA,$A0,$00
4676 00AAAA   203  	DB	$00,$AA,$AA,$AA,$AA,$AA,$AA,$80,$00
467F 000000   204  	DB	$00,$00,$00,$15,$54,$00,$00,$00,$00
4688 000038   205  	DB	$00,$00,$38,$15,$54,$00,$00,$00,$00
4691 000038   206  	DB	$00,$00,$38,$05,$50,$00,$00,$00,$00
469A 000010   207  	DB	$00,$00,$10,$01,$50,$00,$00,$00,$00
46A3 000078   208  	DB	$00,$00,$78,$01,$80,$00,$00,$00,$00
46AC 000018   209  	DB	$00,$00,$18,$01,$80,$00,$00,$00,$00
46B5 04007E   210  	DB	$04,$00,$7E,$E8,$A8,$00,$0C,$0A,$00
46BE 0501F0   211  	DB	$05,$01,$F0,$6A,$A8,$00,$0C,$2A,$80
46C7 0501C0   212  	DB	$05,$01,$C0,$0A,$A8,$00,$1E,$2A,$B0
46D0 054000   213  	DB	$05,$40,$00,$00,$A8,$00,$1E,$AA,$B0
46D9 05507F   214  	DB	$05,$50,$7F,$FF,$FF,$FF,$DE,$AA,$B0
46E2 0550FF   215  	DB	$05,$50,$FF,$FF,$FF,$FE,$5E,$2A,$B0
46EB 0555FF   216  	DB	$05,$55,$FF,$FF,$FF,$FD,$40,$2A,$80
46F4 055400   217  	DB	$05,$54,$00,$01,$80,$01,$00,$0A,$00
46FD 050500   218  	DB	$05,$05,$00,$01,$80,$05,$00,$00,$00
4706 050100   219  	DB	$05,$01,$00,$01,$80,$04,$00,$00,$00
470F 040140   220  	DB	$04,$01,$40,$01,$80,$14,$00,$00,$00
4718 000050   221  	DB	$00,$00,$50,$01,$80,$10,$00,$00,$00
4721 000054   222  	DB	$00,$00,$54,$05,$40,$50,$00,$00,$00
472A 000015   223  	DB	$00,$00,$15,$55,$55,$40,$00,$00,$00
4733 000005   224  	DB	$00,$00,$05,$55,$55,$40,$00,$00,$00
473C 000001   225  	DB	$00,$00,$01,$50,$15,$00,$00,$00,$00
              226  *SHAPE #3 SHIFTED RT 6 PIXELS
4745 000AAA   227  	DB	$00,$0A,$AA,$AA,$AA,$AA,$AA,$00,$00
474E 002AAA   228  	DB	$00,$2A,$AA,$AA,$AA,$AA,$AA,$A0,$00
4757 00AAAA   229  	DB	$00,$AA,$AA,$AA,$AA,$AA,$AA,$A8,$00
4760 00AAAA   230  	DB	$00,$AA,$AA,$AA,$AA,$AA,$AA,$AA,$00
4769 02AAAA   231  	DB	$02,$AA,$AA,$AA,$AA,$AA,$AA,$AA,$00
4772 02AAAA   232  	DB	$02,$AA,$AA,$AA,$AA,$AA,$AA,$AA,$00
477B 00AAAA   233  	DB	$00,$AA,$AA,$AA,$AA,$AA,$AA,$AA,$00
4784 00AAAA   234  	DB	$00,$AA,$AA,$AA,$AA,$AA,$AA,$A8,$00
478D 002AAA   235  	DB	$00,$2A,$AA,$AA,$AA,$AA,$AA,$A0,$00
4796 000000   236  	DB	$00,$00,$00,$05,$55,$00,$00,$00,$00
479F 00000E   237  	DB	$00,$00,$0E,$05,$55,$00,$00,$00,$00
47A8 00000E   238  	DB	$00,$00,$0E,$01,$54,$00,$00,$00,$00
47B1 000004   239  	DB	$00,$00,$04,$00,$54,$00,$00,$00,$00
47BA 00001E   240  	DB	$00,$00,$1E,$00,$60,$00,$00,$00,$00
47C3 000006   241  	DB	$00,$00,$06,$00,$60,$00,$00,$00,$00
47CC 01001E   242  	DB	$01,$00,$1E,$AA,$2A,$00,$03,$02,$80
47D5 01407C   243  	DB	$01,$40,$7C,$0A,$AA,$00,$03,$0A,$A0
47DE 014070   244  	DB	$01,$40,$70,$02,$AA,$00,$07,$8A,$AC
47E7 015000   245  	DB	$01,$50,$00,$00,$2A,$00,$07,$AA,$AC
47F0 01541F   246  	DB	$01,$54,$1F,$FF,$FF,$FF,$F7,$AA,$AC
47F9 01543F   247  	DB	$01,$54,$3F,$FF,$FF,$FF,$97,$8A,$AC
4802 01557F   248  	DB	$01,$55,$7F,$FF,$FF,$FF,$50,$0A,$A0
480B 015500   249  	DB	$01,$55,$00,$00,$60,$00,$40,$02,$80
4814 014140   250  	DB	$01,$41,$40,$00,$60,$01,$40,$00,$00
481D 014040   251  	DB	$01,$40,$40,$00,$60,$01,$00,$00,$00
4826 010050   252  	DB	$01,$00,$50,$00,$60,$05,$00,$00,$00
482F 000014   253  	DB	$00,$00,$14,$00,$60,$04,$00,$00,$00
4838 000015   254  	DB	$00,$00,$15,$01,$50,$14,$00,$00,$00
4841 000005   255  	DB	$00,$00,$05,$55,$55,$50,$00,$00,$00
484A 000001   256  	DB	$00,$00,$01,$55,$55,$50,$00,$00,$00
4853 000000   257  	DB	$00,$00,$00,$54,$05,$40,$00,$00,$00
              258  *START TABLE ON EVEN PAGE BOUNDARY
485C 000000   259  	DS	$A4
4900 43103F   260  NOTES	DB	$43,$10,$3F,$08,$38,$20,$00,$14	;P1M1
4908 43084B   261  	DB	$43,$08,$4B,$10,$43,$08,$54,$40
4910 431043   262  	DB	$43,$10,$43,$08,$4B,$10,$54,$08
4918 652000   263  	DB	$65,$20,$00,$10,$65,$08,$43,$10	;P1M2
4920 43084B   264  	DB	$43,$08,$4B,$20,$00,$10
4926 43103F   265  	DB	$43,$10,$3F,$08,$38,$20,$00,$14	;P1M1
492E 43084B   266  	DB	$43,$08,$4B,$10,$43,$08,$54,$40
4936 431043   267  	DB	$43,$10,$43,$08,$4B,$10,$54,$08
493E 652000   268  	DB	$65,$20,$00,$10,$65,$08,$43,$10	;P1M2
4946 43084B   269  	DB	$43,$08,$4B,$20,$00,$10
494C 382000   270  	DB	$38,$20,$00,$02,$38,$20,$00,$02,$38,$20,$38,$10	;P2M1
4958 000238   271  	DB	$00,$02,$38,$10,$32,$08,$4B,$10,$00,$02
4962 4B0800   272  	DB	$4B,$08,$00,$02,$4B,$10,$00,$02,$4B,$08,$00,$02,$4B,$40,$00
4971 024B10   273  	DB	$02,$4B,$10	;P2M2
4974 00024B   274  	DB	$00,$02,$4B,$08,$00,$02,$4B,$10,$00,$02,$4B,$08,$00,$02,$4B
4983 40       275  	DB	$40
4984 541000   276  	DB	$54,$10,$00,$02,$54,$08,$00,$02,$54
498D 100002   277  	DB	$10,$00,$02,$54,$08,$00,$02,$54,$40	;P2M3
4996 382000   278  	DB	$38,$20,$00,$02,$38,$20,$00,$02,$38,$20,$38,$10	;P2M1
49A2 000238   279  	DB	$00,$02,$38,$10,$32,$08,$4B,$10,$00,$02
49AC 4B0800   280  	DB	$4B,$08,$00,$02,$4B,$10,$00,$02,$4B
49B5 080002   281  	DB	$08,$00,$02,$4B,$40,$00,$02,$4B,$10	;P2M2
49BE 00024B   282  	DB	$00,$02,$4B,$08,$00,$02,$4B,$10,$00
49C7 024B08   283  	DB	$02,$4B,$08,$00,$02,$4B,$40
49CE 541000   284  	DB	$54,$10,$00,$02,$54,$08,$00,$02,$54
49D7 100002   285  	DB	$10,$00,$02,$54,$08,$00,$02,$54,$40	;P2M3
49E0 0015FF   286  	DB	$00,$15,$FF				;REST & REPEAT
              287  *VARIABLES
49E3 00       288  XX	DS	1
49E4 00       289  YY	DS	1
49E5 00       290  HORIZ	DS	1
49E6 00       291  TEMP	DS	1
49E7 00       292  DEPTH	DS	1
49E8 00       293  SLNGH	DS	1
49E9 00       294  VERT	DS	1
49EA 00       295  OFFSET	DS	1
49EB 00       296  POINTER	DS	1
49EC 00       297  TIME	DS	1
49ED 00       298  TDELAY	DS	1
49EE 00       299  VBFLAG	DS	1
              300  *CLEAR SCREEN 8K INCLUDING NDLIST AREA
49EF A900     301  CLRSCR	LDA	#>SCREEN	;SETUP POINTERS TO CLEAR SCREEN
49F1 85F4     302  	STA	SL
49F3 A960     303  	LDA	#<SCREEN
49F5 85F5     304  	STA	SH
49F7 A000     305  	LDY	#$00
49F9 98       306  	TYA
49FA A220     307  	LDX	#$20		;32 PAGES (8K)
49FC 91F4     308  AA2	STA	(SL),Y
49FE C8       309  	INY
49FF D0FB     310  	BNE	AA2		;CONTINUE UNTIL DONE WITH 256 BYTES
4A01 E6F5     311  	INC	SH		;DO NEXT PAGE
4A03 CA       312  	DEX
4A04 D0F6     313  	BNE	AA2
              314  *SETUP DLIST
4A06 A200     315  	LDX	#$00
4A08 BD0042   316  DLOOP	LDA	DLIST,X
4A0B 9D0060   317  	STA	NDLIST,X
4A0E E8       318  	INX
4A0F E0CC     319  	CPX	#$CC		;204 ELEMENTS
4A11 D0F5     320  	BNE	DLOOP
4A13 A900     321  	LDA	#>NDLIST
4A15 8D3002   322  	STA	560
4A18 A960     323  	LDA	#<NDLIST
4A1A 8D3102   324  	STA	561
              325  *INITILIZE
4A1D A90B     326  	LDA	#$0B
4A1F 8DC502   327  	STA	COLOR1
4A22 A900     328  	LDA	#$00
4A24 8DC602   329  	STA	COLOR2
4A27 A940     330  	LDA	#$40
4A29 8DE349   331  	STA	XX
4A2C A920     332  	LDA	#$20
4A2E 8DE449   333  	STA	YY
4A31 8DE949   334  	STA	VERT
4A34 A900     335  	LDA	#$00
4A36 8DED49   336  	STA	TDELAY
4A39 A900     337  	LDA	#>NOTES		;GET LO BYTE OF TABLE
4A3B 85F6     338  	STA	NOTEL
4A3D A949     339  	LDA	#<NOTES		;GET HI BYTE OF TABLE
4A3F 85F7     340  	STA	NOTEH
4A41 A900     341  	LDA	#$00		;CLEAR TIHER
4A43 8514     342  	STA	$14
4A45 A901     343  	LDA	#$01
4A47 8DEC49   344  	STA	TIME
4A4A A9EA     345  	LDA	#$EA		;PURE TONE - VOLUME 10
4A4C 8D01D2   346  	STA	AUDC1
4A4F A000     347  	LDY	#$00
4A51 8CEB49   348  	STY	POINTER
              349  *SET VBLANK
4A54 A907     350  	LDA	#$07
4A56 A24A     351  	LDX	#<FRAME
4A58 A060     352  	LDY	#>FRAME
4A5A 205CE4   353  	JSR	SETVBK
4A5D 4C5D4A   354  FOREVER	JMP	FOREVER
              355  *VBLANK ROUTINE
4A60 ADEE49   356  FRAME	LDA	VBFLAG
4A63 F003     357  	BEQ	OK
4A65 4C62E4   358  	JMP	$E462
4A68 A901     359  OK	LDA	#$01
4A6A 8DEE49   360  	STA	VBFLAG
4A6D ADE349   361  	LDA	XX		;CALC NEW HORIZ OFFSET
4A70 4A       362  	LSR			;DIVIDE BY 4 TO GET HORIZ BYTE
4A71 4A       363  	LSR
4A72 8DE549   364  	STA	HORIZ
4A75 20E74A   365  	JSR	SETUP
4A78 200B4B   366  	JSR	DRAW		;DRAW SHAPE
4A7B ADED49   367  	LDA	TDELAY		;DELAY 3/60 TH SEC
4A7E C903     368  	CMP	#$03
4A80 D01F     369  	BNE	AB1
4A82 20E74A   370  	JSR	SETUP
4A85 20904B   371  	JSR	XDRAW		;XDRAW SHAPE
4A88 20454B   372  	JSR	JOYSTK		;READ JOYSTICK
4A8B ADE349   373  	LDA	XX		;CALC NEW HORIZ OFFSET
4A8E 4A       374  	LSR
4A8F 4A       375  	LSR
4A90 8DE549   376  	STA	HORIZ
4A93 20E74A   377  	JSR	SETUP
4A96 200B4B   378  	JSR	DRAW		;IMMEDIATELY REDRAW SHAPE
4A99 A900     379  	LDA	#$00		;RESET DELAY
4A9B 8DED49   380  	STA	TDELAY
4A9E 4CA44A   381  	JMP	SOUND
4AA1 EEED49   382  AB1	INC	TDELAY
4AA4 ADEC49   383  SOUND	LDA	TIME
4AA7 C514     384  	CMP	$14
4AA9 B034     385  	BGE	AC2
              386  *STOP NOTE - EQUIVALENT TO SOUND 0,0,0,0
4AAB A900     387  	LDA	#$00
4AAD 8D08D2   388  	STA	$D208
4AB0 A903     389  	LDA	#$03
4AB2 8D0FD2   390  	STA	$D20F
4AB5 ACEB49   391  	LDY	POINTER
              392  *LOAD NEXT NOTE
4AB8 B1F6     393  	LDA	(NOTEL),Y
4ABA C9FF     394  	CMP	#$FF		;LAST NOTE?
4ABC D009     395  	BNE	AC3
              396  *RESET TO BEGINNING NOTE
4ABE A000     397  	LDY	#$00
4AC0 8CEB49   398  	STY	POINTER
4AC3 A949     399  	LDA	#<NOTES
4AC5 85F7     400  	STA	NOTEH
              401  *CONTINUE READING NOTES & STORING VALUES IN SOUND REGISTERS
4AC7 8D00D2   402  AC3	STA	AUDF1		;STORE FREQUENCY OF NEXT NOTE
4ACA C8       403  	INY
4ACB EEEB49   404  	INC	POINTER
4ACE B1F6     405  	LDA	(NOTEL),Y
4AD0 8DEC49   406  	STA	TIME		;STORE LENGTH OF NOTE
4AD3 C8       407  	INY
4AD4 EEEB49   408  	INC	POINTER
4AD7 D002     409  	BNE	AC1		;CAN ONLY HAPPEN ON AN EVEN NUMBER
4AD9 E6F7     410  	INC	NOTEH		;NEXT PAGE OF NOTES
4ADB A900     411  AC1	LDA	#$00		;CLEAR TIMER AT BEGIINING OF EACH NEW NOTE
4ADD 8514     412  	STA	$14
4ADF A900     413  AC2	LDA	#$00
4AE1 8DEE49   414  	STA	VBFLAG
4AE4 4C62E4   415  	JMP	XITVBK
              416  *SUBROUTINES
              417  *DRAWING SETUP SUBROUTINE
4AE7 ACE349   418  SETUP	LDY	XX		;HORIZONTAL POSITION (0-159)
4AEA BE0043   419  	LDX	XOFF,Y		;INDEX TO FIND SHAPE #
4AED BDA043   420  	LDA	SHPLO,X		;INDEX TO GET LO BYTE OF SHAPE TABLE
4AF0 85F0     421  	STA	SHPL		;STORE LO BYTE IN ZERO PAGE
4AF2 BDA443   422  	LDA	SHPHI,X		;GET HI BYTE OF SHAPE TABLE
4AF5 85F1     423  	STA	SHPH
4AF7 ADE449   424  	LDA	YY
4AFA 8DE949   425  	STA	VERT
4AFD A91F     426  	LDA	#$1F
4AFF 8DE749   427  	STA	DEPTH		;SHAPE IS 31 LINES DEEP
4B02 A909     428  	LDA	#$09
4B04 8DE849   429  	STA	SLNGH		;SHAPE IS 9 BYTES WIDE
4B07 8DE649   430  	STA	TEMP		;STORED HERE ALSO BECAUSE DRAWING
              431  *ROUTINE DECREMENTS SLNGH 0
              432  * AND VARIABLE MUST BE RESTORED AT START OF NEXT ROW
4B0A 60       433  	RTS
              434  *DRAW SHAPE SUBROUTINE
4B0B ACE949   435  DRAW	LDY	VERT		;VERTICAL POSITION
4B0E 20344B   436  	JSR	GETADR		;FIND BEGINNING OF SCREEN ADDRESS OF ROW
4B11 A200     437  	LDX	#$00
4B13 ADE649   438  	LDA	TEMP
4B16 8DE849   439  	STA	SLNGH		;RESTORE VALUE OF WIDTH FOR NEXT ROW
4B19 A000     440  	LDY	#$00
4B1B A1F0     441  DRAW2	LDA	(SHPL,X)	;GET BYTE OF SHAPE TABLE
4B1D 91F2     442  	STA	(HIRESL),Y	;PLOT ON SCREEN
4B1F E6F0     443  	INC	SHPL		;NEXT BYTE OF SHAPE TABLE
4B21 D002     444  	BNE	AD1		;IF CROSS PAGE BOUNDARY?
4B23 E6F1     445  	INC	SHPH		;INCREMENT TO NEXT PAGE OF SHAPE
4B25 C8       446  AD1	INY			;NEXT POSITION ON SCREEN
4B26 CEE849   447  	DEC	SLNGH		;DECREMENT WIDTH
4B29 D0F0     448  	BNE	DRAW2		;FINISHED WITH ROW YET
4B2B EEE949   449  	INC	VERT		;IF SO, INCREMENT TO NEXT LINE
4B2E CEE749   450  	DEC	DEPTH		;DECREMENT DEPTH
4B31 D0D8     451  	BNE	DRAW		;FINISHED ALL ROWS?
4B33 60       452  	RTS			;YES, END
              453  *GETADR SUBROUTINE FOR FINDING STARTING SCREEN ADDRESS TO PLOT BYTES
4B34 B90040   454  GETADR	LDA	YVERTL,Y	;LOOKUP LO BYTE OF LINE
4B37 18       455  	CLC
4B38 6DE549   456  	ADC	HORIZ		;ADD HORIZ OFFSET
4B3B 85F2     457  	STA	HIRESL		;STORE LO BYTE SCREEN ADDRESS
4B3D B90041   458  	LDA	YVERTH,Y	;LOOKUP HI BYTE LINE
4B40 6960     459  	ADC	#<SCREEN	;ADD HI BYTE OF SCREEN
4B42 85F3     460  	STA	HIRESH		;STORE HI BYTE SCREEN ADDRESS
4B44 60       461  	RTS
              462  *JOYSTICK ROUTINE
4B45 AD7802   463  JOYSTK	LDA	STICK
4B48 2902     464  	AND	#$02		;DOWN BIT?
4B4A D00D     465  	BNE	CHKLF
4B4C ADE449   466  	LDA	YY		;PREVENT SHAPE FROM EXITING BOTTOM SCREEN
4B4F C9A0     467  	CMP	#$A0
4B51 F006     468  	BEQ	CHKLF
4B53 EEE449   469  	INC	YY		;MOVE TWO LINES
4B56 EEE449   470  	INC	YY
4B59 AD7802   471  CHKLF	LDA	STICK
4B5C 2904     472  	AND	#$04		;LEFT BIT?
4B5E D00A     473  	BNE	CHKRT
4B60 ADE349   474  	LDA	XX		;PREVENT SHAPE FROM EXITING SCREEN LEFT
4B63 C900     475  	CMP	#$00
4B65 F003     476  	BEQ	CHKRT
4B67 CEE349   477  	DEC	XX		;THIS MOVES TWO PIXELS
4B6A AD7802   478  CHKRT	LDA	STICK
4B6D 2908     479  	AND	#$08		;RIGHT BIT?
4B6F D00A     480  	BNE	CHKUP
4B71 ADE349   481  	LDA	XX		;PREVENT SHAPE FROM EXITING SCREEN RIGHT
4B74 C97C     482  	CMP	#$7C
4B76 F003     483  	BEQ	CHKUP
4B78 EEE349   484  	INC	XX
4B7B AD7802   485  CHKUP	LDA	STICK
4B7E 2901     486  	AND	#$01		;UP BIT
4B80 D00D     487  	BNE	AE1
4B82 ADE449   488  	LDA	YY		;PREVENT SHAPE FROM EXITING TOP SCREEN
4B85 C900     489  	CMP	#$00
4B87 F006     490  	BEQ	AE1
4B89 CEE449   491  	DEC	YY
4B8C CEE449   492  	DEC	YY
4B8F 60       493  AE1	RTS
              494  *XDRAW SHAPE SUBROUTINE
4B90 ACE949   495  XDRAW	LDY	VERT		;VERTICAL POSITION
4B93 20344B   496  	JSR	GETADR		;FIND BEGINNING OF SCREEN ADDRESS OF ROW
4B96 A200     497  	LDX	#$00
4B98 ADE649   498  	LDA	TEMP
4B9B 8DE849   499  	STA	SLNGH		;RESTORE VALUE OF WIDTH FOR NEXT ROW
4B9E A000     500  	LDY	#$00
4BA0 A1F0     501  XDRAW2	LDA	(SHPL,X)	;GET BYTE OF SHAPE TABLE
4BA2 51F2     502  	EOR 	(HIRESL),Y	;EOR WITH SCREEN IMAGE
4BA4 91F2     503  	STA	(HIRESL),Y	;PLOT ON SCREEN
4BA6 E6F0     504  	INC	SHPL		;NEXT BYTE OF SHAPE TABLE
4BA8 D002     505  	BNE	AF1		;IF CROSS PAGE BOUNDARY?
4BAA E6F1     506  	INC	SHPH		;INCREMENT TO NEXT PAGE OF SHAPE
4BAC C8       507  AF1	INY			;NEXT POSITION ON SCREEN
4BAD CEE849   508  	DEC	SLNGH		;DECREMENT WIDTH
4BB0 D0EE     509  	BNE	XDRAW2		;FINISHED WITH ROW YET
4BB2 EEE949   510  	INC	VERT		;IF SO, INCREMENT TO NEXT LINE
4BB5 CEE749   511  	DEC	DEPTH		;DECREMENT DEPTH
4BB8 D0D6     512  	BNE	XDRAW
4BBA 60       513  	RTS			;YES, END
