PX]Xd A,10000 cX  kX'"*M {X'"IRJU=$1316 X'"SHIFT=$1750 X$'"COPY=$1200 X.'"O   =$0200 X8'"D   =COPY-O X9'"CBASE=$04 X:'"COLOR=$7E X;'"CLRCDE=$5D;BLANK XA'"CCOL=$49 YB'" YC'"LLOD=3403 #YD'"LLEV=3645 2YE'"LNUM=3889 AYF'"LERR=3162 PYG'"LREW=LERR `YL'" ORG $1008 fYV'" lY~'" zY'"MLIF=$1A Y'"T0    =$02 Y'"TA=3 Y'"TB=4 Y'"T3=$94 Y'"T4=$95 Y'"T5=$96 Y'"T6=$97 Y'"T7=$98 Y'"T1=$92 Y'"T2=$93 Z'"FFIRST=$03;2B Z'"FLAST =$05;2B (Z'"FNLEN =$07 8Z'"TOP   =$08 HZ'"CHKSUM=$09 XZ'"TEMP  =$0A hZ'"DATA  =$0B xZ'"LEVEL =$0C Z'"LEVEI =$0D Z'"FNAM  =$100 Z'"SCOR=$17 Z'"HISCR=$E Z'" Z ("BEGIN:  SEI Z
(" LDX #0 Z("BEG1:   LDA CODE,X Z(" STA O,X [((" LDA CODE+256,X &[2(" STA O+256,X ;[<(" LDA CODE+512,X M[F(" STA O+512,X b[P(" LDA CODE+768,X t[Z(" STA O+768,X [[(" LDA CODE+1024,X [\(" STA O+1024,X [](" LDA CODE+1280,X [^(" STA O+1280,X [d(" INX [n(" BNE BEG1 [x(" JMP BEGLO-D  \(" ORG COPY \(" \(";LEVEL CONTROL 1\("CODE:JSR SETVID-D A\(" LDA LEVEL Q\(" CMP LEVEI `\(" BEQ COD1 m\(" CMP #3 }\(" BCC COD99 \(" LDA #<3526 \(" STA TA \(" LDA #>3526 \(" STA TB \(" LDX #10 \(" LDY #M12-M \(" JSR FLASH-D \(" LDA #1 ](" STA LEVEL ](" JMP CODE-D ,]("COD99:ORA #$30 ;](" STA FNAM H](" LDA #1 X](" STA FNLEN h](" LDA LEVEL x](" CMP LEVEI ](" BCS COD2 ](" JSR REWIND-D ]("COD3: JSR SETVID-D ])"COD2: JSR LEVINM-D ])" JSR READ-D ])" TXA ]")" BEQ COD1 ^,)" JSR ERRORL-D ^@)" JMP COD3-D #^J)"COD1: 3^K)" LDA LEVEL C^L)" STA LEVEI T^M)" JSR MESG-D g^T)" JMP SCREEN-D m^h)" ^P"PRINT: LDY #0 ^Z"PRI1:  LDA M-D,X ^d" BEQ PRT2 ^n" STA (T1),Y ^x" INX ^" INY ^" BNE PRI1 ^"PRT2:  RTS ^" _"ERRORL:LDA #<LERR _" STA TA $_" LDA #>LERR 1_" STA TB >_" LDX #9 N_" LDY #M3-M `_"" JSR FLASH-D f_," }_6"REWIND:LDA #<LREW _@" STA TA _J" LDA #>LREW _T" STA TB _^" LDX #9 _h" LDY #M4-M _r" JMP FLASH-D _" _"LEVINM:LDA #<LLEV `" STA T1 `" LDA #>LLEV `" STA T2 ,`" LDX #6 ;`" LDA #$40 N`" JSR DRAWBX-D ^`" LDX #M2-M p`&" JSR PRINT-D `0" LDA #<LNUM `:" STA T1 `D" LDA #>LNUM `N" STA T2 `X" LDX #2 `b" LDA #$5F `l" JSR DRAWBX-D `v" LDY #0 `" LDA LEVEL a" ORA #$60 a" STA (T1),Y a" 5a"LOADIN:LDA #<LLOD Ba" STA T1 Sa" LDA #>LLOD `a" STA T2 ma" LDX #8 |a" LDA #$40 a" JSR DRAWBX-D a" LDX #M1-M a" JMP PRINT-D a" a"BEGLO: JSR SETVID-D a" JSR LOADIN-D a " LDX #0  b*" STX FNLEN b4" STX LEVEI  b5" STX HISCR 2b6" STX HISCR+1 Db7" STX HISCR+2 Nb>" INX ^bH" STX LEVEL obR" JSR READ-D yb\" TXA bf" BNE BEGERR bp" JSR READ-D bz" TXA b" BNE BEGERR b" JMP $1000 b"BEGERR: JSR ERRORL-D b" JMP BEGLO-D b" c"SETVID:LDX #19 %c"SETV1: LDA TEDD-D,X 7c" STA $FF06,X Ac" DEX Qc" BPL SETV1 Wc" dc" LDX #0 |c"SETV2: LDA #CLRCDE c" STA $C00,X c" STA $D00,X c" STA $E00,X c$" STA $F00,X c." LDA #COLOR c8" STA $800,X cB" STA $900,X dL" STA $A00,X dV" STA $B00,X d`" INX /dj" BNE SETV2 9dt" RTS Hd~" ORG IRJU hd"TEDD:BYT $1B,$18,0,0,2,200 d" BYT 255,255;CURSOR d" BYT 0,0,0,0;SOUND d" BYT $C8,CBASE,8 d" BYT 6,$36,$16,$00,6 d"M: M1: BYT 'LOADING',0  e"M2: BYT 'LEVEL',$40,0 e"M3:BYT 'ERROR',$40,'IN',0 =e"M4:BYT$40,'REWIND',$40,0 Te"M5:BYT 'TOMCAT',0 e"M6:BYT'COPYRIGHT',$40,'PLAYERS',$40,$61,$69,$68,$69,0 e"M7:BYT'THIS',$40,'VERSION',$40,'CODED',$40,'BY',$40,'DARRON',$40 e "BYT'M',$40,'BROAD',0 f
"M8:BYT'SCORE',0 f"M9:BYT'HI',0 4f"M10:WOR$6060,$6060,$6060 Cf("BYT $60,0 f2"M11:BYT'PRESS',$40,'SPACE',$40,'FOR',$40,$40,'LEVEL',$40,0 f3"M12:BYT'WELL',$40,'DONE',0 f<"TIM2  =$FF02 fF"TINT  =$FF09 fP"SYNC  =$16 fZ"PIO   =1 fd" fn"READ: gx" LDA $FF19 g" PHA g" LDX #1 1g"RETRY:  LDA #0 Ag" STA $FF19 Rg" STA CHKSUM `g" STA PIO og" LDY #255 {g"SYNCT: g" JSR READB- D g" CMP #SYNC g" BEQ GOTSYN g" STX DATA g" JSR SKIPB- D g" BCC SYNCT g"GOTSYN: h" JSR READB- D h"" CMP #SYNC "h," BEQ GOTSYN 2h6" CMP FNLEN Bh@" BNE RETRY ShJ"NAMCHK: INY chT" CPY FNLEN sh^" BCS NMEND hh" JSR READC- D hr" CMP FNAM,Y h|" BEQ NAMCHK h" BNE RETRY h"NMEND: h" LDY #3 h"GADDR:  JSR READC- D h" STA FFIRST,Y i" DEY i" BPL GADDR +i" JSR READC- D <i" CMP CHKSUM Li" BNE ERROR ]i" LDY FFIRST ji" LDA #0 {i" STA FFIRST i" STA TOP i"RBLOCK: LDA FFIRST+1 i" CMP FLAST +1 i&" PHP i0" BCC NOTYT i:" LDA FLAST iD" BEQ RDONE iN" STA TOP 
jX"NOTYT: jb" JSR READC- D 2jl" STA (FFIRST),Y <jv" INY Jj" CPY TOP Zj" BNE NOTYT mj" JSR READC- D ~j" CMP CHKSUM j" BNE ERROR j" INC FFIRST+1 j" PLP j" BNE RBLOCK j" PHA;DUMMY j"RDONE:  LDX #0 j" BYT $2C k"ERROR:  LDX #$80 k" PLA;DUMMY OR STATUS -k" LDA #$88 ;k" STA PIO Ek" PLA Uk " STA $FF19 _k*" RTS ek4" {k>"READC:  LDA DATA kH" EOR CHKSUM kR" STA CHKSUM k\"READB:  LDA #$FE kf" STA DATA kp"SKIPB:  STY TEMP kz" LDY #$38 k"READ0:  INC $FF19 l" LDA #$10 "l"READ1:  BIT PIO 2l" BNE READ1 Al" STY TIM2 Rl" STX TIM2+1 gl"READ2:  BIT PIO wl" BEQ READ2 l" LDA TIM2+1 l" ASL A l" ROL DATA l" BCS READ0 l" LDY TEMP l" LDA DATA l" RTS l" l$"SCREEN: LDA #$B m%" STA $FF06 m&" LDX #0 'm."SCR1:   LDA #0 8m8" STA $C00,X ImB" STA $D00,X ZmL" STA $E00,X kmV" STA $F00,X {m`" LDA #CCOL mj" STA $800,X mt" STA $900,X m~" STA $A00,X m" STA $B00,X m" INX m" BNE SCR1 m" LDA #<$846 m" STA T1 n" STA T3 n" LDA #>$846 !n" STA T2 .n" EOR #4 ;n" STA T4 On" LDA #<BDAT- D \n" STA T5 pn " LDA #>BDAT- D }n
" STA T6 n" LDA #0 n" STA T0 n(" LDX #11 n2"BORDER: LDA #$37 n<" LDY #9 nF"BORD1:  STA (T1),Y nP" DEY nZ" BPL BORD1 od" LDY #49  on"BORD2:  STA (T1),Y *ox" DEY 8o" CPY #40 Ho" BCS BORD2 Uo" LDA #0 bo" STA T7 vo"ZEROIZ: LDY T0 o" LDA (T5),Y o" INC T0 o" CMP #1 o" BEQ ZESKIP o" LDY T7 o" STA (T3),Y o" INC T7 o" PHA o" TYA o" CLC 	p" ADC #40 p"" TAY p," PLA *p6" ORA #1 ;p@" STA (T3),Y HpJ" LDY T7 VpT" CPY #10 gp^" BCC ZEROIZ tph"ZESKIP: pr" LDA T1 p|" CLC p" ADC #80 p" STA T1 p" STA T3 p" LDA T2 p" ADC #0 p" STA T2 p" EOR #4 p" STA T4 p" DEX q" BPL BORDER q" LDA LEVEL *q" ASLA 4q" CLC Cq" ADC #$D0 Rq" STA 3706 _q" ADC #1 nq&" STA 3746 }q0" LDY MLIF q:" CPY #5 qD" BCC LIFPUT qN" LDY #4 qX" STY MLIF qb"LIFPUT: LDA TABE-D,Y ql" TAX qv" LDA #$F4 q" STA 3462,X 
r" LDA #$F5 r" STA 3502,X %r" DEY 6r" BPL LIFPUT @r" RTS Kr"BDAT: mr"BYT0,0,$E4,$E6,$E8,$EA,$EC,1 r"BYT0,$D0,$D0,$D0,$D0,$D0,$D0,$D0,1 r"BYT1 r"BYT0,0,$EE,$F0,$F2,$EC,$E4,1 r"BYT1 r"BYT1 r"BYT0,0,$EE,$EC,$F2,$EC,$EE,1 s"BYT1 s"BYT1 s "BYT1 9s*"BYT0,$F6,$E8,$F8,$E6,$FA,$F6,1 Cs4"BYT1 [s>"TABE:BYT 4,2,6,0,8 asR" us\"DRAWBX: LDY #0 sf" STY T3 sp" STA T4 sz"DRA1:   STA (T1),Y s" TYA s" CLC s" ADC #80 s" TAY s" LDA T4 s" STA (T1),Y s" INC T3 t" LDY T3 t" DEX $t" BPL DRA1 .t" TYA 8t" CLC Ft" ADC #39 Pt" TAY ]t" LDA T4 nt" STA (T1),Y |t$" LDY #40 t." STA (T1),Y t8" LDA T1 tB" CLC tL" ADC #41 tV" STA T1 t`" LDA T2 tj" ADC #0 tt" STA T2 t~" RTS t" 	u"FLASH: STX T5 u" STY T6 #u" LDA #8 0u" STA T7 Cu"FLA1:  LDA TA Pu" STA T1 ]u" LDA TB ju" STA T2 wu" LDX T5 u" LDA #$5B u" JSR DRAWBX-D u " LDX T6 u
" JSR PRINT-D u" JSR DELAY-D u" LDA TA u(" STA T1 u2" LDA TB u<" STA T2 vF" LDX T5 vP" LDA #$40 -vZ" JSR DRAWBX-D ?vd" JSR DELAY-D Lvn" DEC T7 [vx" BNE FLA1 ev" RTS kv" ~v"DELAY: LDX #0 v" LDY #0 v"DEL1:  DEY v" BNE DEL1 v" DEX v"" BNE DEL1 v," RTS v6" v"ORG SHIFT v"MESG: JSR SETVID-D w" LDY #0 w" STY TA ,w"MES1: LDA MESD-D,Y 9w" STA T1 Nw" LDA MESD+1-D,Y [w" STA T2 pw" LDA MESD+2-D,Y zw" TAX w$" LDA #$40 w." JSR DRAWBX-D w8" LDY TA wB" LDA MESD+3-D,Y wL" TAX wV" JSR PRINT-D w`" LDA TA wj" CLC wt" ADC #4 x~" STA TA x" TAY #x" CPY #32 2x" BCC MES1 Bx" LDA LEVEL Qx" ORA #$60 `x" STA 4023 qx" LDA #<3126 ~x" STA T1 x" LDA #>3126 x" STA T2 x" LDA $23FF x" LDX $23FE x " LDY $23FD x
" JSR SCPUT-D x" LDA #<3137 x" STA T1 y(" LDA #>3137 y2" STA T2 ,y<" LDA HISCR+2 >yF" LDX HISCR+1 NyP" LDY HISCR `yZ" JSR SCPUT-D lyd"WAITK: {yn" LDA #$7F yx" STA $FD30 y" STA $FF08 y" LDA $FF08 y" AND #16 y" BNE WAITK y" RTS y"MESD:WOR 3408 y"BYT 7,M5-M z"WOR 3480 z"BYT 23,M6-M #z"WOR 3593 4z"BYT 37,M7-M Bz"WOR 3079 Rz"BYT 6,M8-M `z"WOR 3093 pz"BYT 3,M9-M ~z"WOR 3085 z""BYT 8,M10-M z,"WOR 3096 z6"BYT 8,M10-M z@"WOR 3959 zJ"BYT 25,M11-M zT"SCPUT: STY T7 z^" LDY #0  {h" JSR PUTSC-D 
{r" TXA {|" JSR PUTSC-D ){" LDA T7 5{"PUTSC: ?{" PHA J{" LSRA U{" LSRA `{" LSRA k{" LSRA z{" ORA #$60 {" STA (T1),Y {" INY {" PLA {" AND #15 {" ORA #$60 {" STA (T1),Y {" INY {" RTS {&"*   