09       .OPT NO LIST
10 ; SAVE #D1:ST2.M65
20        LIST  
021412 ?SETPB STA ?ZPBORA
021414   LDA PORTB   Mask out bits
021417   AND #$F3    2 and 3 (LEDs)
021419   ORA ?ZPBORA Force mask bits
021421   STA PORTB   high
021424   RTS 
021425 ?21425 LDX #60 Delay loops
021427   BNE ?21431  Go always
021429 ?21429 LDX #150
021431 ?21431 LDY #$FF
021433 ?21433 STY WSYNC
021436   DEY 
021437   BNE ?21433
021439   DEX 
021440   BNE ?21431
021442   RTS 
021443 ?21443 PHA 
021444   LDX ?ZRTIX
021446   LDA $8D
021448   EOR #$FF
021450   AND $3038,X
021453   STA $3038,X
021456   PLA 
021457   AND $8D
021459   ORA $3038,X
021462   STA $3038,X
021465   RTS 
021466 ?DLI.1 PHA 
021467   LDA #12
021469   STA COLPF1
021472   LDA COLOR4
021475   STA COLPF2
021478   LDA #0
021480   STA ATRACT
021482   LDA HELPFG
021485   BEQ ?21501  Go if not Help
021487   LDA #0
021489   STA HELPFG
021492   LDA #$0C    Force b4 b0 high
021494   JSR ?SETPB-?DSP Go set Portb
021497   CLI 
021498   JMP ?MAIN-?DSP Back to start
021501 ?21501 LDA $8A If 0 then
021503   BEQ ?21576  dlist jmp set
021505   LDA CONSOL
021508   AND #1      Start pressed?
021510   BEQ ?21516
021512   LDA #$B3
021514   BNE ?21518  Go always
021516 ?21516 LDA #$33
021518 ?21518 STA $301C
021521   LDA CONSOL
021524   AND #2      Select pressed?
021526   BEQ ?21532
021528   LDA #$F3
021530   BNE ?21534  Go always
021532 ?21532 LDA #$73
021534 ?21534 STA $301E
021537   LDA CONSOL
021540   AND #4      Option?
021542   BEQ ?21548
021544   LDA #$AF
021546   BNE ?21550  Go always
021548 ?21548 LDA #$2F
021550 ?21550 STA $3020
021553   LDA CONSOL
021556   AND #$07
021558   CMP #$07
021560   BEQ ?21571
021562   LDA #$64
021564   STA AUDF2
021567   LDA #$A8
021569   BNE ?21573  Go always
021571 ?21571 LDA #0
021573 ?21573 STA AUDC2
021576 ?21576 PLA 
021577   RTI 
021578 ?21578 .BYTE $00,$50,$54,$30
021582   .BYTE $30,$30
021584 ?KEYTST LDX #0
021586   STX $94
021588   LDX #3
021590   JSR ?SETCOL-?DSP
021593   LDX # <?KEYDL-?DSP
021595   LDY # >?KEYDL-?DSP
021597   LDA #$FF
021599   JSR ?SETDL-?DSP Dlist x=< y=>
021600 ;
021602 ?21602 LDX #2
021604   JSR ?SCRMOV-?DSP
021607   LDX #$07
021609   JSR ?SCRMOV-?DSP
021612   LDA $82
021614   BEQ ?21635
021616   LDX $94
021618   LDA ?21829-?DSP,X
021621   INC $94
021623   LDX $94
021625   CPX #$13
021627   BNE ?21649
021629   JSR ?21429-?DSP delay
021632   JMP ?MEMTST-?DSP
021635 ?21635 LDA CH
021638   CMP #$FF
021640   BEQ ?21635
021642   CMP #$C0
021644   BCS ?21635
021646   LDA CH
021649 ?21649 LDX #$FF
021651   STX CH
021654   PHA 
021655   AND #$80
021657   BEQ ?21664
021659   LDX #$08
021661   JSR ?SCRMOV-?DSP
021664 ?21664 PLA 
021665   PHA 
021666   AND #$40
021668   BEQ ?21680
021670   LDX #$05
021672   JSR ?SCRMOV-?DSP
021675   LDX #4
021677   JSR ?SCRMOV-?DSP
021680 ?21680 PLA 
021681   AND #$3F
021683   CMP #$21
021685   BEQ ?21791
021687   CMP #$2C
021689   BEQ ?21807
021691   CMP #$34
021693   BEQ ?21799
021695   CMP #$0C
021697   BEQ ?21817
021699   TAX 
021700   LDA ?22428-?DSP,X
021703   PHA 
021704   LDA # <$3021
021706   STA $95
021708   LDA # >$3021
021710   STA $95+1
021712   PLA 
021713   LDY #$FF
021715 ?21715 INY 
021716   CMP ($95),Y
021718   BNE ?21715
021720   LDA ($95),Y
021722   EOR #$80
021724   STA ($95),Y
021726 ?21726 LDA $82
021728   BEQ ?21749
021730   JSR ?21765-?DSP
021733   LDX #$14
021735   JSR ?21431-?DSP
021738   JSR ?NOSOUND-?DSP
021741   LDX #$0A
021743   JSR ?21431-?DSP
021746   JMP ?21602-?DSP
021749 ?21749 JSR ?21765-?DSP
021752 ?21752 LDA SKSTAT
021755   AND #4
021757   BEQ ?21752
021759   JSR ?NOSOUND-?DSP
021762   JMP ?21602-?DSP
021765 ?21765 LDA #100
021767   STA AUDF1
021770   LDA #168
021772   STA AUDC1
021775   RTS 
021776 ?NOSOUND LDA #0
021778   STA AUDC1
021781   STA AUDC2
021784   STA AUDC3
021787   STA AUDC4
021790   RTS 
021791 ?21791 LDX #3
021793   JSR ?SCRMOV-?DSP
021796   JMP ?21726-?DSP
021799 ?21799 LDX #6
021801   JSR ?SCRMOV-?DSP
021804   JMP ?21726-?DSP
021807 ?21807 LDA #$7F
021809   STA $3052
021812   STA $3053
021815   BNE ?21726
021817 ?21817 LDA #$32
021819   STA $306D
021822   LDA #$34
021824   STA $306E
021827   BNE ?21726
021829 ?21829 .BYTE $52,$08,$0A,$2B
021833   .BYTE $28,$0D,$3D,$39
021837   .BYTE $2D,$1F,$30,$35
021841   .BYTE $1A,$7F,$2D,$3F
021845   .BYTE $28,$0D
021847 ?AVTEST LDX #2 A-V test?
021849   JSR ?SETCOL-?DSP
021852 ?21852 LDA #0
021854   STA $97
021856 ?21856 LDA #0
021858   STA $98
021860   LDX # <?AVDL-?DSP
021862   LDY # >?AVDL-?DSP
021864   LDA #0
021866   JSR ?SETDL-?DSP Dlist x=< y=>
021869   LDX #9
021871   JSR ?SCRMOV-?DSP
021874   LDA $97
021876   LSR A
021877   CLC 
021878   ADC #$11
021880   STA $300B
021883   LDX #15
021885 ?21885 LDA #$FF
021887   STA $3150,X
021890   STA $31B0,X
021893   STA $3210,X
021896   STA $3270,X
021899   STA $32D0,X
021902   DEX 
021903   BPL ?21885
021905   LDA #0
021907   STA $99
021909   LDA #$0C
021911   STA $9A
021913 ?21913 LDX $99
021915   LDA ?22294-?DSP+1,X
021918   TAY 
021919   LDA ?22294-?DSP,X
021922   TAX 
021923   LDA $9A
021925   JSR ?22149-?DSP
021928   CLC 
021929   LDA $9A
021931   ADC #$06
021933   STA $9A
021935   INC $99
021937   INC $99
021939   LDA $99
021941   CMP #$14
021943   BNE ?21913
021945   JSR ?21425-?DSP Delay
021948   LDX #$54
021950   LDY #$31
021952   LDA #0
021954   JSR ?22149-?DSP
021957   LDA #$51
021959   JSR ?22124-?DSP
021962   LDX #$86
021964   LDY #$31
021966   LDA #0
021968   JSR ?22149-?DSP
021971   LDA #$5B
021973   JSR ?22124-?DSP
021976   LDX #$F8
021978   LDY #$30
021980   LDA #$48
021982   JSR ?22149-?DSP
021985   LDX #$C7
021987   LDY #$30
021989   LDA #$54
021991   JSR ?22149-?DSP
021994   LDX #$48
021996   LDY #$32
021998   LDA #$4E
022000   JSR ?22149-?DSP
022003   LDA #$44
022005   JSR ?22124-?DSP
022008   LDX #$CA
022010   LDY #$30
022012   LDA #$48
022014   JSR ?22149-?DSP
022017   LDX #$1A
022019   LDY #$32
022021   LDA #$4E
022023   JSR ?22149-?DSP
022026   LDX #$CA
022028   LDY #$31
022030   LDA #$06
022032   JSR ?22149-?DSP
022035   LDA #$3C
022037   JSR ?22124-?DSP
022040   LDX #$3C
022042   LDY #$30
022044   LDA #$48
022046   JSR ?22149-?DSP
022049   LDX #$8C
022051   LDY #$31
022053   LDA #$4E
022055   JSR ?22149-?DSP
022058   LDX #$3C
022060   LDY #$31
022062   LDA #$06
022064   JSR ?22149-?DSP
022067   LDA #$2D
022069   JSR ?22124-?DSP
022072   LDX #$9E
022074   LDY #$30
022076   LDA #$48
022078   JSR ?22149-?DSP
022081   LDX #$EE
022083   LDY #$31
022085   LDA #$4E
022087   JSR ?22149-?DSP
022090   LDA #$35
022092   JSR ?22124-?DSP
022095   JSR ?21429-?DSP delay
022098   INC $97
022100   INC $97
022102   LDA $97
022104   CMP #$08
022106   BNE ?22115
022108   LDA $82
022110   BNE ?22118
022112   JMP ?21852-?DSP
022115 ?22115 JMP ?21856-?DSP
022118 ?22118 JSR ?21429-?DSP delay
022121   JMP ?KEYTST-?DSP
022124 ?22124 LDY $97
022126   STA AUDF1,Y
022129   LDA #168
022131   STA AUDC1,Y
022134   LDX $98
022136   LDA ?22198-?DSP,X
022139   TAX 
022140   JSR ?21431-?DSP
022143   INC $98
022145   JSR ?NOSOUND-?DSP
022148   RTS 
022149 ?22149 STX $9B
022151   STY $9B+1
022153   TAX 
022154   LDY #0
022156   LDA #$10
022158   STA $9D
022160   LDA #6
022162   STA $A3
022164 ?22164 LDA ?22204-?DSP,X
022167   ORA ($9B),Y
022169   STA ($9B),Y
022171   JSR ?ADD16-?DSP
022174   DEC $9D
022176   BNE ?22164
022178   INC $9D
022180   INX 
022181   DEC $A3
022183   BNE ?22164
022185   RTS 
022186 ?ADD16 CLC 
022187   LDA $9B
022189   ADC #16
022191   STA $9B
022193   BCC ?22197
022195   INC $9B+1
022197 ?22197 RTS 
022198 ?22198 .BYTE 32,32,32
022201   .BYTE 16,16,32
022204 ?22204 .BYTE 1,31,63,127
022208   .BYTE 62,28,0,65,66
022213   .BYTE 76,112,64,0
022217   .BYTE 1,2,4,8,16,0
022223   .BYTE 67,68,72,72,72,0
022229   .BYTE 68,34,16,8,7,0
022235   .BYTE 4,8,5,2,0,0
022241   .BYTE 48,72,136
022244   .BYTE 132,132,0,136
022248   .BYTE 136,144,160
022251   .BYTE 192,0,240,136
022255   .BYTE 132,130,130,0
022259   .BYTE 130,130,132,136,240
022264   .SBYTE "     "
022269   .SBYTE +$80,"       "
022276   .SBYTE 32
022277   .BYTE 28
022278   .BYTE 62,127,126
022281   .BYTE 124,64
022283   .SBYTE "      "
022289   .BYTE 4,4,6,5,6
022294 ?22294 .WORD $30C1
022296   .WORD $3121
022298   .WORD $3181
022300   .WORD $31F1
022302   .WORD $3002
022304   .WORD $3062
022306   .WORD $3122
022308   .WORD $3182
022310   .WORD $30C2
022312   .WORD $31C2
022314 ?FILRAM PHA   Fill ram
022315   LDA ?FILTAB-?DSP,X with byte
022318   STA $9E     in a at
022320   LDA ?FILTAB-?DSP+1,X addresses
022323   STA $9E+1   determined
022325   LDA ?FILTAB-?DSP+2,X by x
022328   STA $A0
022330   LDA ?FILTAB-?DSP+3,X
022333   STA $A0+1
022335   LDY #0
022337 ?22337 PLA 
022338   STA ($9E),Y
022340   INC $9E
022342   BNE ?22346
022344   INC $9E+1
022346 ?22346 PHA 
022347   LDA $9E
022349   CMP $A0
022351   BNE ?22337
022353   LDA $9E+1
022355   CMP $A0+1
022357   BNE ?22337
022359   PLA         Return orig chr
022360   RTS 
022361 ?SCRMOV LDA STSCIX,X Get index
022364   TAY         to screen data
022365   LDA ?SCRLEN-?DSP,X Get length
022368   STA $9E     to counter
022370   LDA ?SCROFF-?DSP,X Get offset
022373   TAX         into screen
022374 ?22374 LDA STSCDT,Y Copy message
022377   STA $3000,X to screen
022380   INY         at offset in
022381   INX         x rom offset
022382   DEC $9E     in y
022384   BNE ?22374
022386   RTS 
022387 ?SETCOL LDA ?COLTB-?DSP,X Set
022390   STA COLOR0  colors
022393   LDA ?COLTB-?DSP+4,X Return
022396   STA COLOR1  x=x y=y
022399   LDA ?COLTB-?DSP+8,X a=color4
022402   STA COLOR2
022405   LDA ?COLTB-?DSP+12,X
022408   STA COLOR4
022411   RTS 
022412 ?COLTB .BYTE 44,12,42,24 col0
022416   .BYTE 15,50,12,14 col1
022420   .BYTE 210,214,0,180 col2
022424   .BYTE 210,160,48,180 col4
022425 ; main,mem,av,key
022428 ?22428 .BYTE 44,42,27
022431   .BYTE 145,146,43,11
022435   .BYTE 10,47,0,48,53
022440   .BYTE 178,41,13
022443   .BYTE 29,54,168,35
022447   .BYTE 147,148,34,56
022451   .BYTE 58,20,0,19
022455   .BYTE 22,91,21,18
022459   .BYTE 17,12,0,14,46,0
022465   .BYTE 45,15,161,50,0
022470   .BYTE 37,57,255,52,55
022475   .BYTE 49,25,0,16,23
022480   .BYTE 162,24,28,30,38,40
022486   .BYTE 36,0,163,39,51,33
022492 ?FILTAB .WORD $3000,$3EFF x=0
022496   .WORD $3020,$3024 x=4
022500   .WORD $3024,$3028 x=8
022504   .WORD $3000,$3020 x=12
022508 ?SCRLEN .BYTE 19,3,19
022511   .BYTE 19,4,4,3,168,3,7
022518 ?SCROFF .BYTE 0,40,0,183
022522   .BYTE 146,171,76,34,114,4
