100 *A,10000 200 end 10000 "*M 10005 "IRJU=$1316 10010 "SHIFT=$1750 10020 "COPY=$1200 10030 "O =$0200 10040 "D =COPY-O 10041 "CBASE=$04 10042 "COLOR=$7E 10043 "CLRCDE=$5D;BLANK 10049 "CCOL=$49 10050 " 10051 "LLOD=3403 10052 "LLEV=3645 10053 "LNUM=3889 10054 "LERR=3162 10055 "LREW=LERR 10060 " ORG $1008 10070 " 10110 " 10111 "MLIF=$1A 10120 "T0 =$02 10121 "TA=3 10122 "TB=4 10123 "T3=$94 10124 "T4=$95 10125 "T5=$96 10126 "T6=$97 10127 "T7=$98 10128 "T1=$92 10129 "T2=$93 10130 "FFIRST=$03;2B 10140 "FLAST =$05;2B 10150 "FNLEN =$07 10160 "TOP =$08 10170 "CHKSUM=$09 10180 "TEMP =$0A 10190 "DATA =$0B 10200 "LEVEL =$0C 10210 "LEVEI =$0D 10220 "FNAM =$100 10221 "SCOR=$17 10222 "HISCR=$E 10230 " 10240 "BEGIN: SEI 10250 " LDX #0 10260 "BEG1: LDA CODE,X 10270 " STA O,X 10280 " LDA CODE+256,X 10290 " STA O+256,X 10300 " LDA CODE+512,X 10310 " STA O+512,X 10320 " LDA CODE+768,X 10330 " STA O+768,X 10331 " LDA CODE+1024,X 10332 " STA O+1024,X 10333 " LDA CODE+1280,X 10334 " STA O+1280,X 10340 " INX 10350 " BNE BEG1 10360 " JMP BEGLO-D 10380 " ORG COPY 10400 " 10410 ";LEVEL CONTROL 10430 "CODE:JSR SETVID-D 10435 " LDA LEVEL 10440 " CMP LEVEI 10450 " BEQ COD1 10451 " CMP #3 10452 " BCC COD99 10453 " LDA #<3526 10454 " STA TA 10455 " LDA #>3526 10456 " STA TB 10457 " LDX #10 10458 " LDY #M12-M 10459 " JSR FLASH-D 10460 " LDA #1 10461 " STA LEVEL 10462 " JMP CODE-D 10465 "COD99:ORA #$30 10470 " STA FNAM 10480 " LDA #1 10490 " STA FNLEN 10491 " LDA LEVEL 10492 " CMP LEVEI 10493 " BCS COD2 10494 " JSR REWIND-D 10495 "COD3: JSR SETVID-D 10500 "COD2: JSR LEVINM-D 10510 " JSR READ-D 10520 " TXA 10530 " BEQ COD1 10540 " JSR ERRORL-D 10560 " JMP COD3-D 10570 "COD1: 10571 " LDA LEVEL 10572 " STA LEVEI 10573 " JSR MESG-D 10580 " JMP SCREEN-D 10600 " 50000 "PRINT: LDY #0 50010 "PRI1: LDA M-D,X 50020 " BEQ PRT2 50030 " STA (T1),Y 50040 " INX 50050 " INY 50060 " BNE PRI1 50070 "PRT2: RTS 50080 " 50150 "ERRORL:LDA #LERR 50180 " STA TB 50190 " LDX #9 50200 " LDY #M3-M 50210 " JSR FLASH-D 50220 " 50230 "REWIND:LDA #LREW 50260 " STA TB 50270 " LDX #9 50280 " LDY #M4-M 50290 " JMP FLASH-D 50380 " 50390 "LEVINM:LDA #LLEV 50420 " STA T2 50430 " LDX #6 50440 " LDA #$40 50450 " JSR DRAWBX-D 50460 " LDX #M2-M 50470 " JSR PRINT-D 50480 " LDA #LNUM 50510 " STA T2 50520 " LDX #2 50530 " LDA #$5F 50540 " JSR DRAWBX-D 50550 " LDY #0 50560 " LDA LEVEL 50570 " ORA #$60 50580 " STA (T1),Y 50590 " 50600 "LOADIN:LDA #LLOD 50630 " STA T2 50640 " LDX #8 50650 " LDA #$40 50660 " JSR DRAWBX-D 50670 " LDX #M1-M 50680 " JMP PRINT-D 50690 " 50700 "BEGLO: JSR SETVID-D 50710 " JSR LOADIN-D 50720 " LDX #0 50730 " STX FNLEN 50740 " STX LEVEI 50741 " STX HISCR 50742 " STX HISCR+1 50743 " STX HISCR+2 50750 " INX 50760 " STX LEVEL 50770 " JSR READ-D 50780 " TXA 50790 " BNE BEGERR 50800 " JSR READ-D 50810 " TXA 50820 " BNE BEGERR 50830 " JMP $1000 50840 "BEGERR: JSR ERRORL-D 50850 " JMP BEGLO-D 50860 " 50870 "SETVID:LDX #19 50880 "SETV1: LDA TEDD-D,X 50890 " STA $FF06,X 50900 " DEX 50910 " BPL SETV1 50920 " 50930 " LDX #0 50940 "SETV2: LDA #CLRCDE 50950 " STA $C00,X 50960 " STA $D00,X 50970 " STA $E00,X 50980 " STA $F00,X 50990 " LDA #COLOR 51000 " STA $800,X 51010 " STA $900,X 51020 " STA $A00,X 51030 " STA $B00,X 51040 " INX 51050 " BNE SETV2 51060 " RTS 51070 " ORG IRJU 51080 "TEDD:BYT $1B,$18,0,0,2,200 51090 " BYT 255,255;CURSOR 51100 " BYT 0,0,0,0;SOUND 51110 " BYT $C8,CBASE,8 51120 " BYT 6,$36,$16,$00,6 51130 "M: M1: BYT 'LOADING',0 51140 "M2: BYT 'LEVEL',$40,0 51150 "M3:BYT 'ERROR',$40,'IN',0 51160 "M4:BYT$40,'REWIND',$40,0 51170 "M5:BYT 'TOMCAT',0 51180 "M6:BYT'COPYRIGHT',$40,'PLAYERS',$40,$61,$69,$68,$69,0 51190 "M7:BYT'THIS',$40,'VERSION',$40,'CODED',$40,'BY',$40,'DARRON',$40 51200 "BYT'M',$40,'BROAD',0 51210 "M8:BYT'SCORE',0 51220 "M9:BYT'HI',0 51230 "M10:WOR$6060,$6060,$6060 51240 "BYT $60,0 51250 "M11:BYT'PRESS',$40,'SPACE',$40,'FOR',$40,$40,'LEVEL',$40,0 51251 "M12:BYT'WELL',$40,'DONE',0 51260 "TIM2 =$FF02 51270 "TINT =$FF09 51280 "SYNC =$16 51290 "PIO =1 51300 " 51310 "READ: 51320 " LDA $FF19 51330 " PHA 51340 " LDX #1 51350 "RETRY: LDA #0 51360 " STA $FF19 51370 " STA CHKSUM 51380 " STA PIO 51390 " LDY #255 51400 "SYNCT: 51410 " JSR READB- D 51420 " CMP #SYNC 51430 " BEQ GOTSYN 51440 " STX DATA 51450 " JSR SKIPB- D 51460 " BCC SYNCT 51470 "GOTSYN: 51480 " JSR READB- D 51490 " CMP #SYNC 51500 " BEQ GOTSYN 51510 " CMP FNLEN 51520 " BNE RETRY 51530 "NAMCHK: INY 51540 " CPY FNLEN 51550 " BCS NMEND 51560 " JSR READC- D 51570 " CMP FNAM,Y 51580 " BEQ NAMCHK 51590 " BNE RETRY 51600 "NMEND: 51610 " LDY #3 51620 "GADDR: JSR READC- D 51630 " STA FFIRST,Y 51640 " DEY 51650 " BPL GADDR 51660 " JSR READC- D 51670 " CMP CHKSUM 51680 " BNE ERROR 51690 " LDY FFIRST 51700 " LDA #0 51710 " STA FFIRST 51720 " STA TOP 51730 "RBLOCK: LDA FFIRST+1 51740 " CMP FLAST +1 51750 " PHP 51760 " BCC NOTYT 51770 " LDA FLAST 51780 " BEQ RDONE 51790 " STA TOP 51800 "NOTYT: 51810 " JSR READC- D 51820 " STA (FFIRST),Y 51830 " INY 51840 " CPY TOP 51850 " BNE NOTYT 51860 " JSR READC- D 51870 " CMP CHKSUM 51880 " BNE ERROR 51890 " INC FFIRST+1 51900 " PLP 51910 " BNE RBLOCK 51920 " PHA;DUMMY 51930 "RDONE: LDX #0 51940 " BYT $2C 51950 "ERROR: LDX #$80 51960 " PLA;DUMMY OR STATUS 51970 " LDA #$88 51980 " STA PIO 51990 " PLA 52000 " STA $FF19 52010 " RTS 52020 " 52030 "READC: LDA DATA 52040 " EOR CHKSUM 52050 " STA CHKSUM 52060 "READB: LDA #$FE 52070 " STA DATA 52080 "SKIPB: STY TEMP 52090 " LDY #$38 52100 "READ0: INC $FF19 52110 " LDA #$10 52120 "READ1: BIT PIO 52130 " BNE READ1 52140 " STY TIM2 52150 " STX TIM2+1 52160 "READ2: BIT PIO 52170 " BEQ READ2 52180 " LDA TIM2+1 52190 " ASL A 52200 " ROL DATA 52210 " BCS READ0 52220 " LDY TEMP 52230 " LDA DATA 52240 " RTS 52250 " 52260 "SCREEN: LDA #$B 52261 " STA $FF06 52262 " LDX #0 52270 "SCR1: LDA #0 52280 " STA $C00,X 52290 " STA $D00,X 52300 " STA $E00,X 52310 " STA $F00,X 52320 " LDA #CCOL 52330 " STA $800,X 52340 " STA $900,X 52350 " STA $A00,X 52360 " STA $B00,X 52370 " INX 52380 " BNE SCR1 52390 " LDA #<$846 52400 " STA T1 52410 " STA T3 52420 " LDA #>$846 52430 " STA T2 52440 " EOR #4 52450 " STA T4 52460 " LDA #BDAT- D 52490 " STA T6 52500 " LDA #0 52510 " STA T0 52520 " LDX #11 52530 "BORDER: LDA #$37 52540 " LDY #9 52550 "BORD1: STA (T1),Y 52560 " DEY 52570 " BPL BORD1 52580 " LDY #49 52590 "BORD2: STA (T1),Y 52600 " DEY 52610 " CPY #40 52620 " BCS BORD2 52630 " LDA #0 52640 " STA T7 52650 "ZEROIZ: LDY T0 52660 " LDA (T5),Y 52670 " INC T0 52680 " CMP #1 52690 " BEQ ZESKIP 52700 " LDY T7 52710 " STA (T3),Y 52720 " INC T7 52730 " PHA 52740 " TYA 52750 " CLC 52760 " ADC #40 52770 " TAY 52780 " PLA 52790 " ORA #1 52800 " STA (T3),Y 52810 " LDY T7 52820 " CPY #10 52830 " BCC ZEROIZ 52840 "ZESKIP: 52850 " LDA T1 52860 " CLC 52870 " ADC #80 52880 " STA T1 52890 " STA T3 52900 " LDA T2 52910 " ADC #0 52920 " STA T2 52930 " EOR #4 52940 " STA T4 52950 " DEX 52960 " BPL BORDER 52970 " LDA LEVEL 52980 " ASLA 52990 " CLC 53000 " ADC #$D0 53010 " STA 3706 53020 " ADC #1 53030 " STA 3746 53040 " LDY MLIF 53050 " CPY #5 53060 " BCC LIFPUT 53070 " LDY #4 53080 " STY MLIF 53090 "LIFPUT: LDA TABE-D,Y 53100 " TAX 53110 " LDA #$F4 53120 " STA 3462,X 53130 " LDA #$F5 53140 " STA 3502,X 53150 " DEY 53160 " BPL LIFPUT 53170 " RTS 53180 "BDAT: 53190 "BYT0,0,$E4,$E6,$E8,$EA,$EC,1 53200 "BYT0,$D0,$D0,$D0,$D0,$D0,$D0,$D0,1 53210 "BYT1 53220 "BYT0,0,$EE,$F0,$F2,$EC,$E4,1 53230 "BYT1 53240 "BYT1 53250 "BYT0,0,$EE,$EC,$F2,$EC,$EE,1 53260 "BYT1 53270 "BYT1 53280 "BYT1 53290 "BYT0,$F6,$E8,$F8,$E6,$FA,$F6,1 53300 "BYT1 53310 "TABE:BYT 4,2,6,0,8 53330 " 53340 "DRAWBX: LDY #0 53350 " STY T3 53360 " STA T4 53370 "DRA1: STA (T1),Y 53380 " TYA 53390 " CLC 53400 " ADC #80 53410 " TAY 53420 " LDA T4 53430 " STA (T1),Y 53440 " INC T3 53450 " LDY T3 53460 " DEX 53470 " BPL DRA1 53480 " TYA 53490 " CLC 53500 " ADC #39 53510 " TAY 53520 " LDA T4 53530 " STA (T1),Y 53540 " LDY #40 53550 " STA (T1),Y 53560 " LDA T1 53570 " CLC 53580 " ADC #41 53590 " STA T1 53600 " LDA T2 53610 " ADC #0 53620 " STA T2 53630 " RTS 53640 " 53650 "FLASH: STX T5 53660 " STY T6 53670 " LDA #8 53680 " STA T7 53690 "FLA1: LDA TA 53700 " STA T1 53710 " LDA TB 53720 " STA T2 53730 " LDX T5 53740 " LDA #$5B 53750 " JSR DRAWBX-D 53760 " LDX T6 53770 " JSR PRINT-D 53780 " JSR DELAY-D 53790 " LDA TA 53800 " STA T1 53810 " LDA TB 53820 " STA T2 53830 " LDX T5 53840 " LDA #$40 53850 " JSR DRAWBX-D 53860 " JSR DELAY-D 53870 " DEC T7 53880 " BNE FLA1 53890 " RTS 53900 " 54000 "DELAY: LDX #0 54010 " LDY #0 54020 "DEL1: DEY 54030 " BNE DEL1 54040 " DEX 54050 " BNE DEL1 54060 " RTS 54070 " 56000 "ORG SHIFT 56010 "MESG: JSR SETVID-D 56020 " LDY #0 56030 " STY TA 56040 "MES1: LDA MESD-D,Y 56050 " STA T1 56060 " LDA MESD+1-D,Y 56070 " STA T2 56080 " LDA MESD+2-D,Y 56090 " TAX 56100 " LDA #$40 56110 " JSR DRAWBX-D 56120 " LDY TA 56130 " LDA MESD+3-D,Y 56140 " TAX 56150 " JSR PRINT-D 56160 " LDA TA 56170 " CLC 56180 " ADC #4 56190 " STA TA 56200 " TAY 56210 " CPY #32 56220 " BCC MES1 56230 " LDA LEVEL 56240 " ORA #$60 56250 " STA 4023 56260 " LDA #<3126 56270 " STA T1 56280 " LDA #>3126 56290 " STA T2 56300 " LDA $23FF 56310 " LDX $23FE 56320 " LDY $23FD 56330 " JSR SCPUT-D 56340 " LDA #<3137 56350 " STA T1 56360 " LDA #>3137 56370 " STA T2 56380 " LDA HISCR+2 56390 " LDX HISCR+1 56400 " LDY HISCR 56410 " JSR SCPUT-D 56420 "WAITK: 56430 " LDA #$7F 56440 " STA $FD30 56450 " STA $FF08 56460 " LDA $FF08 56470 " AND #16 56480 " BNE WAITK 56490 " RTS 56500 "MESD:WOR 3408 56510 "BYT 7,M5-M 56520 "WOR 3480 56530 "BYT 23,M6-M 56540 "WOR 3593 56550 "BYT 37,M7-M 56560 "WOR 3079 56570 "BYT 6,M8-M 56580 "WOR 3093 56590 "BYT 3,M9-M 56600 "WOR 3085 56610 "BYT 8,M10-M 56620 "WOR 3096 56630 "BYT 8,M10-M 56640 "WOR 3959 56650 "BYT 25,M11-M 56660 "SCPUT: STY T7 56670 " LDY #0 56680 " JSR PUTSC-D 56690 " TXA 56700 " JSR PUTSC-D 56710 " LDA T7 56720 "PUTSC: 56730 " PHA 56740 " LSRA 56750 " LSRA 56760 " LSRA 56770 " LSRA 56780 " ORA #$60 56790 " STA (T1),Y 56800 " INY 56810 " PLA 56820 " AND #15 56830 " ORA #$60 56840 " STA (T1),Y 56850 " INY 56860 " RTS 56870 "*