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