8000 STX MBL›8010 LDY #6›8020 JSR MOVPLYR›8030 LDX MBL›8040 JSR EXPLO›8050 LDX XREG›8060 PLPLCK LDA P0PL,X ;check for›8070 BEQ MPFCK ;player/›8080 CMP #4 ;player›8090 BNE PL8CK ;collisions›8100 JMP PBLPL›8110 PL8CK CMP #8 ;hit hot›8120 BNE DOTWO ;tail?›8130 LDA PCOLR3›8140 CMP #148›8150 BEQ YOTHER›8160 JMP PBLPL ;yes kill›8170 YOTHER LDY OTHER,X ;no tail›8180 LDA XP0,Y ;cool game›8190 STA HITCLR ;over›8200 BNE IJUMP›8210 JMP ENDIT›8220 IJUMP JMP INCM›8230 DOTWO JMP BLBOTH ;kill both›8240 MPFCK LDA HPOSP0,X ;check for›8250 BEQ MPLCK ;missile/›8260 JSR MISEXP ;playfield›8270 JSR EXSOUND ;collisions›8280 JSR TOM ;missile off›8290 MPLCK LDA M0PL,X ;check for›8300 BEQ PLPFCK ;missile/›8310 CMP #4 ;player›8320 BNE M8CK ;collisions›8330 JSR TOM›8340 JMP PLPFCK›8350 M8CK CMP #8 ;hit tail?›8360 BNE PLEX ;no go on›8370 JSR TOM ;yes stop›8380 LDA #16 ;rocket›8390 STA SCRL2›8400 LDA #0›8410 STA $1024›8420 STA AUDF2›8430 STA AUDC2›8440 JMP PLPFCK›8450 PLEX LDY MISDIR,X ;hit saucer›8460 TAX ›8470 DEX ›8480 LDA EXCNTR,X ;dead yet?›8490 BEQ MSCOR ;no score it›8500 JMP INCM ;yes›8510 MSCOR JSR MOVPLYR ;move plyr›8520 TXA ›8530 LSR A›8540 TAX ›8550 JSR EXPLO ;add score›8560 LDX XREG›8570 JSR MISEXP›8580 JSR TOM ;missile off›8590 PLPFCK LDA HPOSM0,X ;check for›8600 BEQ STRCK ;player/›8610 STA HITCLR ;playfield›8620 JSR EXSOUND ;collisions›8630 LDA SCFLAG ;scoring?›8640 BNE REBOUND ;no go on›8650 JSR EXPLO ;yes score›8660 REBOUND INC BOCNTR,X ;bounce›8670 LDA BOCNTR,X ;plyr off›8680 CMP #4 ;rocks?›8690 BNE RUBBER ;yes›8700 LDA #0 ;no end›8710 STA BOCNTR,X ;bounce›8720 RUBBER LDA STDIR,X ;bounce plyr›8730 TAY ›8740 LDA BOUNCE,Y›8750 CMP #6›8760 BNE DOTAY›8770 CLC ›8780 LDA PBL0,X›8790 CMP #117›8800 LDA #4›8810 BCS DOTAY›8820 LDA #5›8830 DOTAY TAY ›8840 JSR MOVPLYR›8850 JMP INCM›8860 STRCK LDA STRIG0,X ;check›8870 BNE STIK ;triggers›8880 STA ATRACT ;no attract›8890 LDA XM0,X ;missile›8900 BNE STIK ;already in›8910 JMP MISL ;use?›8920 STIK LDA STICK0,X ;check›8930 CMP #15 ;joysticks›8940 BNE GSTIK ;no move›8950 JSR ROTOR›8960 JMP INCM›8970 GSTIK SEC ;yes›8980 SBC #5 ;get›8990 TAY ;movement›9000 STA STDIR,X ;index›9010 JSR MOVPLYR›9020 JMP INCM›9030 MOVPLYR LDA XP0,X›9040 CLC ›9050 ADC PXDIR,Y ;check limits›9060 CMP #193›9070 BEQ RAISE›9080 CMP #47›9090 BEQ RAISE›9100 STORX STA HPOSP0,X ;player›9110 STA XP0,X ;horiz. move›9120 RAISE LDA PBH0,X›9130 STA PMVH›9140 LDA PBL0,X›9150 CLC ›9160 ADC PYDIR,Y›9170 CMP #197›9180 BEQ ROTOR›9190 CMP #34›9200 BEQ ROTOR›9210 STA PMVL›9220 STA PBL0,X›9230 LDY #7›9240 PLOOP LDA PLSHP,Y ;player›9250 STA (PMVL),Y ;vert. move›9260 DEY ›9270 BPL PLOOP›9280 INC ROCNTR,X›9290 LDA ROCNTR,X›9300 AND #7›9310 STA ROCNTR,X›9320 TAY ›9330 LDA ROTATE,Y›9340 LDY #4›9350 STA (PMVL),Y ;rotate›9360 LDA SSCNTR,X ;saucer›9370 BEQ DOROT ;center›9380 RTS ›9390 DOROT LDA ROCNTR,X›9400 AND #1›9410 TAY ›9420 LDA SNDX,X›9430 TAX ›9440 LDA MSAUSND,Y ;moving›9450 STA AUDF3,X ;saucer›9460 LDA #165 ;sound›9470 STA AUDC3,X›9480 RTS ›9490 ROTOR LDA PBL0,X ;slower›9500 STA PMVL ;stationary›9510 LDA PBH0,X ;rotate›9520 STA PMVH›9530 INC ROCNTR,X›9540 LDA ROCNTR,X›9550 AND #15›9560 STA ROCNTR,X›9570 LSR A›9580 TAY ›9590 LDA ROTATE,Y›9600 LDY #4›9610 STA (PMVL),Y›9620 LDA SSCNTR,X›9630 BEQ DOROT2›9640 RTS ›9650 DOROT2 LDA ROCNTR,X›9660 AND #3›9670 LSR A›9680 TAY ›9690 LDA SNDX,X›9700 TAX ›9710 LDA SSAUSND,Y›9720 STA AUDF3,X ;stationary›9730 LDA #165 ;sound›9740 STA AUDC3,X›9750 RTS ›9760 INCM LDA XM0 ;check›9770 BEQ CKM1 ;missile 0›9780 LDX #0 ;movement›9790 JSR GDIR›9800 CKM1 LDA XM1 ;check›9810 BEQ CKM3 ;missile 1›9820 LDX #1 ;movement›9830 JSR GDIR›9840 CKM3 LDA XM3 ;check›9850 BEQ NEXIT ;missile 2›9860 DEC XM3 ;movement›9870 LDA XM3›9880 STA HPOSM3›9890 NEXIT LDA CDTMV4 ;check sound›9900 BNE BUTCK ;timer›9910 STA AUDF1›9920 STA AUDC1›9930 BUTCK LDA CONSOL ;check›9940 CMP #7 ;console›9950 BEQ SHOTSND›9960 JMP ENDIT›9970 SHOTSND LDA SSCNTR ;check shot›9980 BEQ SHOTSND2 ;sound›9990 LDX #0 ;counter›010000 JSR INCSHOT›010010 SHOTSND2 LDA SSCNTR+1›010020 BEQ TOMEX›010030 LDX #1›010040 JSR INCSHOT›010050 TOMEX LDA MBL2 ;check for›010060 BEQ EXIT ;end of›010070 INC MXCNTR ;missile›010080 LDA MXCNTR ;explosion›010090 AND #3›010100 STA MXCNTR›010110 BNE EXIT›010120 LDA MBL2›010130 STA MBL›010140 LDA #0›010150 STA HPOSM2›010160 STA MBL2›010170 LDY #4›010180 TOMLOOP LDA (MBL),Y›010190 EOR MXSHP,Y›010200 STA (MBL),Y›010210 DEY ›010220 BPL TOMLOOP›010230 EXIT LDA CDTMV3 ;check›010240 BNE EXIT ;move timer›010250 JMP MLOOP ;start over›010260 INCSHOT INC SSCNTR,X ;change shot›010270 INC SSCNTR,X ;sound›010280 LDA SSCNTR,X›010290 CMP #48›010300 BEQ ENDSHOT›010310 LDY SNDX,X›010320 STA AUDF3,Y›010330 RTS ›010340 ENDSHOT LDA #0 ;turn off›010350 STA SSCNTR,X ;shot sound›010360 RTS ›010370 MISEXP LDA MBL2 ;check miss.›010380 BEQ DOEXP ;explosion›010390 RTS ;in use›010400 DOEXP LDA XM0,X ;load›010410 STA HPOSM2 ;missile›010420 LDA MBL0,X ;explosion›010430 SEC ;data›010440 SBC #2›010450 STA MBL2›010460 STA MBL›010470 LDY #4›010480 MIXLOOP LDA (MBL),Y›010490 ORA MXSHP,Y›010500 STA (MBL),Y›010510 DEY ›010520 BPL MIXLOOP›010530 RTS ›010540 MISL CLC ;determine›010550 LDA XP0 ;missile›010560 CMP XP1 ;direction›010570 LDA MDIR1,X›010580 BCC GETDIR›010590 LDA MDIR2,X›010600 GETDIR STA MISDIR,X›010610 LDY SNDX,X›010620 LDA #8›010630 STA AUDF3,Y›010640 STA SSCNTR,X›010650 LDA #139›010660 STA AUDC3,Y›010670 LDY MISDIR,X›010680 LDA XP0,X ;initial›010690 CLC ;missile›010700 ADC MSPOS,Y ;position›010710 STA XM0,X›010720 LDA PBL0,X›010730 CLC ›010740 ADC #5›010750 STA MBL0,X›010760 STA MBL›010770 LDY #0›010780 LDA (MBL),Y ;load›010790 ORA MSSHP,X ;missile›010800 STA (MBL),Y ;data›010810 JMP STIK›010820 EXPLO JSR EXSOUND›010830 LDY SCORE,X›010840 LDA $0664,Y ;get score›010850 CLC ›010860 ADC #1 ;add one›010870 CMP #26 ;10 yet?›010880 BEQ NEXP ;yes kill›010890 STA $0664,Y ;no store›010900 RTS ›010910 NEXP LDA #16›010920 STA $0664,Y›010930 LDA #17›010940 STA $0663,Y›010950 PLA ;pull return›010960 PLA ;address›010970 PBLPL JSR EXSOUND›010980 LDY SNDX,X›010990 LDA #200 ;start›011000 STA AUDF3,Y ;explosion›011010 LDA #143 ;sound›011020 STA AUDC3,Y›011030 STA ESCNTR,X›011040 LDA #144 ;change›011050 STA PCOLR0,X ;color›011060 BLPL LDA PBL0,X›011070 STA PMVL›011080 LDA PBH0,X›011090 STA PMVH›011100 STX MBL›011110 LDA EXCNTR,X›011120 TAX ›011130 LDY #7›011140 BLO1 LDA EXSHP,X ;load›011150 STA (PMVL),Y ;explosion›011160 INX ;shape›011170 DEY ›011180 BPL BLO1›011190 CPX #64 ;finished?›011200 BEQ EXOFF›011210 TXA ›011220 LDX MBL›011230 STA EXCNTR,X ;store data›011240 JMP INCM ;number›011250 EXOFF LDA #0 ;turn off›011260 LDX XREG ;explosion›011270 STA EXCNTR,X›011280 STA HPOSP0,X ;player off›011290 STA XP0,X ;screen›011300 STA PBL0,X›011310 STA HITCLR›011320 LDY SNDX,X›011330 STA AUDF3,Y›011340 STA AUDC3,Y›011350 INC DECNTR›011360 LDA DECNTR›011370 CMP #2 ;both dead?›011380 BNE GOBACK ;no go back›011390 JMP ENDIT ;game over›011400 GOBACK JMP INCM›011410 EXSOUND LDA #200 ;collision›011420 STA AUDF1 ;sound›011430 LDA #142›011440 STA AUDC1›011450 TIMER LDA #5 ;set sound›011460 STA CDTMV4 ;timer›011470 RTS ›011480 BLBOTH JSR EXSOUND ;saucers›011490 LDX #0 ;collided›011500 LDY #0 ;kill both›011510 LDA #158›011520 STA PCOLR0›011530 STA PCOLR1›011540 LDA PBL1›011550 STA PMVL›011560 LDA PBH1›011570 STA PMVH›011580 LDA PBH0›011590 STA PBL1›011600 BLO3 LDA EXSHP,X›011610 STA (PMVL),Y›011620 STA (PBL0),Y›011630 INX ›011640 INY ›011650 CPY #8›011660 BNE BLO3›011670 LDA #2›011680 STA CDTMV4›011690 LDY #0›011700 TIMCKB LDA CDTMV4›011710 BNE TIMCKB›011720 CPX #64›011730 BNE BLO3›011740 JMP ENDIT ;game over›011750 GDIR LDY MISDIR,X ;get›011760 LDA XM0,X ;direction›011770 CLC ›011780 ADC PXDIR,Y›011790 CMP #220 ;check›011800 BEQ TOM ;limits›011810 MXLCK CMP #40›011820 BEQ TOM›011830 STA XM0,X ;move missile›011840 STA HPOSM0,X›011850 RTS ›011860 TOM LDA #0 ;turn off›011870 STA HPOSM0,X ;missile›011880 STA XM0,X›011890 STA HITCLR›011900 TAY ›011910 LDA MBL0,X›011920 STA MBL›011930 LDA (MBL),Y›011940 EOR MSSHP,X›011950 STA (MBL),Y›011960 RTS ›011970 ENDIT LDA #30›011980 STA CDTMV3›011990 ENTCK LDA CDTMV3›012000 BNE ENTCK›012010 LDY #7›012020 ENDLP STA HPOSP0,Y ;all plyrs›012030 STA AUDF1,Y ;off screen›012040 DEY ;sound off›012050 BPL ENDLP›012060 LDA #16 ;stop›012070 STA SCRL2 ;scrolls›012080 LDA #9›012090 STA SCRL0›012100 JMP MENU›012110 ;›012120 ;ASTEROID CHARACTER DATA›012130 ;›012140 CHTAB›012150 .BYTE 0,24,56,127,126,24,60,32›012160 .BYTE 0,28,126,127,60,24,0›012170 .BYTE 0,0,16,60,120,8,0,0›012180 .BYTE 0,0,24,126,62,124,100,0›012190 .BYTE 24,62,124,60,24,126,60,120›012200 .BYTE 0,96,124,56,60,126,6,0›012210 .BYTE 28,60,30,60,126,126,56,0›012220 .BYTE 0,0,16,56,28,0,0,0›012230 .BYTE 0,0,24,32,0,0,0,0›012240 .BYTE 0,0,56,126,24,48,0,0›012250 .BYTE 0,0,0,24,60,126,120,0›012260 .BYTE 0,60,62,30,124,56,32,0›012270 .BYTE 0,0,0,0,63,110,52,0›012280 .BYTE 0,24,120,60,62,28,0,0›012290 .BYTE 0,124,62,60,28,62,120,0›012300 ;›012310 ;SAUCER SHAPE›012320 ;›012330 PLSHP›012340 .BYTE 0,16,56,254,254,254,56,0›012350 ;›012360 ;EXPLOSION SHAPES›012370 ;›012380 EXSHP›012390 .BYTE 0,8,64,24,254,170,254,48›012400 .BYTE 4,128,36,128,126,170,253,16›012410 .BYTE 0,36,0,82,44,41,60,64›012420 .BYTE 36,0,145,8,66,42,74,16›012430 .BYTE 34,145,0,16,129,82,0,146›012440 .BYTE 137,32,128,1,64,2,128,81›012450 .BYTE 64,1,0,128,0,0,65,128›012460 .BYTE 0,0,0,0,0,0,0,0›012470 PLINE .BYTE 0,0,$30,$2C,$39,$32›012480 .BYTE 0,$11,0,0,0,0,$30,$2C,$39›012490 .BYTE $32,0,$12,0,0›012500 ;›012510 ;MOVEMENT INDEXES›012520 ;›012530 PXDIR .BYTE 1,1,1,0,255,255,255,0,0,0›012540 PYDIR .BYTE 1,255,0,0,1,255,0,0,1,255›012550 ;›012560 ;BOUNCE MOVEMENT INDEXES›012570 ;›012580 BOUNCE .BYTE 1,0,6,0,5,4,2,0,9,8›012590 MSPOS .BYTE 0,0,9,0,0,0,254›012600 COLOR .BYTE 0,64,128,192›012610 ;›012620 ;ROCKET CHARACTER DATA›012630 ;›012640 C2TAB .BYTE 255,63,31,0,0,0,0,0›012650 .BYTE 255,255,255,0,0,0,0,0›012660 .BYTE 255,255,255,31,15,7,3,7›012670 .BYTE 254,254,222,2,0,0,0,0›012680 .BYTE 252,248,240,224,0,0,0,0›012690 .BYTE 254,252,248,240,0,0,0,0›012700 .BYTE 248,240,224,192,0,0,0,0›012710 ;›012720 ;MISSILE MOVEMENT INDEXES›012730 ;›012740 MDIR1 .BYTE 2,6›012750 MDIR2 .BYTE 6,2›012760 ROTAB .BYTE 154,27,28,221›012770 FLTAB .BYTE 159,158,160,0,0,0,0,0›012780 ;›012790 ;LIGHTNING SHAPE DATA›012800 ;›012810 LIGHT .BYTE 16,8,16,24,8,16,8,16,8›012820 .BYTE 8,16,8,16,16,16,24,8›012830 .BYTE 16,8,8,4,8,16,8,16›012840 .BYTE 8,16,16,8,16,8,16,16,24›012850 .BYTE 8,16,8,16,8,8,16,8›012860 .BYTE 16,8,8,24,16,16,8,8›012870 .BYTE 4,16,8,8,16,8,16,8,4›012880 .BYTE 8,16,32,32,24,8,16,12›012890 .BYTE 4,8,16,8,16,16,8,8›012900 SCORE .BYTE 0,10›012910 OTHER .BYTE 1,0›012920 ;›012930 ;ROTATING SAUCER CENTER DATA›012940 ;›012950 ROTATE .BYTE 126,190,222,238,246,250,252,254›012960 SNDX .BYTE 0,2›012970 MSAUSND .BYTE 160,170›012980 SSAUSND .BYTE 180,190›012990 MSSHP .BYTE 3,12›013000 MXSHP .BYTE 32,16,48,48,32,16›013010 PCOL .BYTE 202,70,158,158›013020 MSEL .BYTE 10,4,0,0›013030 PFCOL .BYTE 40,37,68,121›013040 ;›013050 ;DISPLAY LIST INTERRUPT ALLOWS›013060 ;RINGS TO SCROLL INDIVIDUALLY›013070 ;›013080 ;GAME DISPLAY LIST›013090 ;›013100 GDLIST .BYTE 112,112,112,32,86,0,7›013110 .BYTE 86,0,8,86,0,9,86,0,10›013120 .BYTE 86,0,11,128,86,0,12,86,0,13›013130 .BYTE 86,0,14,86,0,15,176›013140 .BYTE 214,0,16,86,0,16,176›013150 .BYTE 86,128,15,86,128,14›013160 .BYTE 86,128,13,86,128,12,128›013170 .BYTE 86,128,11,86,128,10›013180 .BYTE 86,128,9,86,128,8›013190 .BYTE 86,128,7,70›013200 .WORD PLINE›013210 .BYTE 70,96,6,32,65,0,6›013220 ;›013230 ;MENU DISPLAY LIST›013240 ;›013250 MDLIST .BYTE 112,112,112,112,71›013260 .WORD TITL›013270 .BYTE 7,112,70›013280 .WORD AUTH›013290 .BYTE 112,112,71›013300 .WORD COLLISY›013310 .BYTE 71›013320 .WORD SCORY›013330 .BYTE 112,71›013340 .WORD RINGD›013350 .BYTE 71›013360 .WORD LOW›013370 .BYTE 112,71›013380 .WORD RINGS›013390 .BYTE 71›013400 .WORD SLOW›013410 .BYTE 112,65›013420 .WORD MDLIST›013430 TITL .BYTE 0,0,0,0,0,$62,$61,$74›013440 .BYTE $74,$6C,$65,0,$69,$6E,0,0›013450 .BYTE 0,0,0,0,0,0,0,0,0,$74,$68›013460 .BYTE $65,0,$62,0,$72,$69,$6E›013470 .BYTE $67,0,0›013480 AUTH .BYTE 0,0,0,34,57,0,44,37,55,0›013490 .BYTE 52,40,47,45,41,52,51›013500 ;›013510 ;MENU SELECTIONS›013520 ;›013530 RINGD .BYTE 0,0,0,0,$F2,$E9,$EE,$E7›013540 .BYTE 0,$E4,$E5,$EE,$F3,$E9,$F4,$F9›013550 RINGS .BYTE 0,0,0,0,0,$F2,$E9,$EE,$E7›013560 .BYTE 0,$F3,$F0,$E5,$E5,$E4›013570 LOW .BYTE 0,0,0,0,0,0,0,0,$AC,$AF,$B7›013580 .BYTE 0,0›013590 MEDIUM .BYTE 0,0,0,0,0,0,0,$AD,$A5,$A4›013600 .BYTE $A9,$B5,$AD›013610 HIGH .BYTE 0,0,0,0,0,0,0,0,$A8,$A9,$A7›013620 .BYTE $A8,0›013630 SLOW .BYTE 0,0,0,0,0,0,0,0,$B3,$AC,$AF,$B7›013640 FAST .BYTE 0,0,0,0,0,0,0,0,$A6,$A1,$B3›013650 .BYTE $B4,0,0,0,0›013660 RINGDY .BYTE 0,0,0,0,$32,$29,$2E,$27›013670 .BYTE 0,$24,$25,$2E,$33,$29,$34,$39›013680 RINGSY .BYTE 0,0,0,0,0,$32,$29,$2E,$27›013690 .BYTE 0,$33,$30,$25,$25,$24›013700 COLLIS .BYTE 0,0,0,0,0,$E3,$EF,$EC,$EC›013710 .BYTE $E9,$F3,$E9,$EF,$EE,$F3›013720 COLLISY .BYTE 0,0,0,0,0,$23,$2F,$2C›013730 .BYTE $2C,$29,$33,$29,$2F,$2E,$33›013740 SCORY .BYTE 0,0,0,0,0,0,0,$B3,$A3,$AF›013750 .BYTE $B2,$A9,$AE,$A7,0›013760 SCORN .BYTE 0,0,0,0,0,$AE,$AF,$AE,$B3›013770 .BYTE $A3,$AF,$B2,$A9,$AE,$A7,0,0,0,0,0›013780 MENU LDA #0›013790 STA SDMCTL›013800 LDY YMENU›013810 LDA #224›013820 STA CHBAS›013830 LDA #2›013840 STA CHINV›013850 LDA #MDLIST&$FF›013860 LDX #MDLIST/256›013870 STA SDLSTL›013880 STX SDLSTH›013890 LDA #62›013900 STA SDMCTL›013910 CONCK LDA CONSOL›013920 CMP #6›013930 BNE OPTCK›013940 STY YMENU›013950 LDA #20›013960 JSR BELL›013970 JMP PROG›013980 OPTCK CMP #3›013990 BNE SELCK›014000 CPY #1›014010 BEQ OPT1›014020 CPY #2›014030 BEQ OPT2›014040 LDA #COLLIS&$FF›014050 LDX #COLLIS/256›014060 STA MDLIST+15›014070 STX MDLIST+16›014080 LDA #RINGDY&$FF›014090 LDX #RINGDY/256›014100 STA MDLIST+22›014110 STX MDLIST+23›014120 JMP OPOUT›014130 OPT1 LDA #RINGD&$FF›014140 LDX #RINGD/256›014150 STA MDLIST+22›014160 STX MDLIST+23›014170 LDA #RINGSY&$FF›014180 LDX #RINGSY/256›014190 STA MDLIST+29›014200 STX MDLIST+30›014210 JMP OPOUT›014220 OPT2 LDA #RINGS&$FF›014230 LDX #RINGS/256›014240 STA MDLIST+29›014250 STX MDLIST+30›014260 LDA #COLLISY&$FF›014270 LDX #COLLISY/256›014280 STA MDLIST+15›014290 STX MDLIST+16›014300 OPOUT INY ›014310 CPY #3›014320 BNE JBELL›014330 LDY #0›014340 JBELL LDA #40›014350 JSR BELL›014360 JMP CONCK›014370 SELCK CMP #5›014380 BNE CONCK›014390 CPY #1›014400 BEQ SEL1›014410 CPY #2›014420 BEQ SEL2›014430 LDA SCFLAG›014440 BEQ NOSCOR›014450 LDA #0›014460 STA SCFLAG›014470 LDA #SCORY&$FF›014480 LDX #SCORY/256›014490 STA MDLIST+18›014500 STX MDLIST+19›014510 JMP SELOUT›014520 NOSCOR LDA #1›014530 STA SCFLAG›014540 LDA #SCORN&$FF›014550 LDX #SCORN/256›014560 STA MDLIST+18›014570 STX MDLIST+19›014580 JMP SELOUT›014590 SEL1 LDA ADENS›014600 CMP #10›014610 BEQ MEDSEL›014620 CMP #12›014630 BEQ HISEL›014640 LDA #10›014650 STA ADENS›014660 LDA #LOW&$FF›014670 LDX #LOW/256›014680 STA MDLIST+25›014690 STX MDLIST+26›014700 JMP SELOUT›014710 MEDSEL LDA #12›014720 STA ADENS›014730 LDA #MEDIUM&$FF›014740 LDX #MEDIUM/256›014750 STA MDLIST+25›014760 STX MDLIST+26›014770 JMP SELOUT›014780 HISEL LDA #14›014790 STA ADENS›014800 LDA #HIGH&$FF›014810 LDX #HIGH/256›014820 STA MDLIST+25›014830 STX MDLIST+26›014840 JMP SELOUT›014850 SEL2 LDA ASPEED›014860 CMP #4›014870 BEQ FASTSEL›014880 LDA #4›014890 STA ASPEED›014900 LDA #SLOW&$FF›014910 LDX #SLOW/256›014920 STA MDLIST+32›014930 STX MDLIST+33›014940 JMP SELOUT›014950 FASTSEL LDA #3›014960 STA ASPEED›014970 LDA #FAST&$FF›014980 LDX #FAST/256›014990 STA MDLIST+32›015000 STX MDLIST+33›015010 SELOUT LDA #30›015020 JSR BELL›015030 JMP CONCK›015040 BELL STA AUDF1›015050 LDA #175›015060 STA AUDC1›015070 LDA #15›015080 STA CDTMV3›015090 BTIME LDA CDTMV3›015100 ORA #160›015110 STA AUDC1›015120 EOR #160›015130 BNE BTIME›015140 STA AUDF1›015150 STA AUDC1›015160 RTS ›