Home » Personal collection » Acorn tapes » Electron_User » Electron_User_tape09a_acorn_eu_1990_march.wav » INVADER

INVADER

This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.

Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.

Tape/disk: Home » Personal collection » Acorn tapes » Electron_User » Electron_User_tape09a_acorn_eu_1990_march.wav
Filename: INVADER
Read OK:
File size: 33B8 bytes
Load address: 2000
Exec address: 1900
Duplicates

There are 2 duplicate copies of this file in the archive:

File contents
   10MODE6:DIMchar 150
   20PROCdata:PROCassem:ENVELOPE2,1,2,0,-1,2,0,4,126,0,0,-126,126,126:VDU23,224,&FFFF;&FFFF;&FFFF;&FFFF;:*FX229
   30ONERROR IF ERR=17 THEN GOTO 40 ELSE REPORT:END
   40MODE5:VDU23;8202;0;0;0;
   50VDU19,3,4;0;0
   60PROCprt(8,1,"Menu",1,2):PROCprt(1,5,"1. Edit a wave",2,1):PROCprt(1,7,"2. Save a wave",2,1):PROCprt(1,9,"3. Load a wave",2,1):PROCprt(1,11,"4. Play a wave",2,1):PROCprt(1,13,"5. Play from start",2,1):REPEAT:A=GET-48:UNTILA>0 AND A<6
   70IFA=1 PROCedit
   80IFA=2 MODE6:PROCsave
   90IFA=3 MODE6:PROCload
  100IFA=4 PROCplwave 
  110IFA=5 PROCplay(0)
  120GOTO40
  130DEFPROCedit
  140CLS:PROCprt(0,5,"Edit : wave (A-J)?",1,2):REPEAT:A$=CHR$(GET AND 223):UNTILA$>="A" AND A$<"K":PROCchdata(ASC(A$)-65):ENDPROC  
  150DEFPROCplwave
  160CLS:PROCprt(0,5,"Play : wave (A-J)?",1,2):REPEAT:A$=CHR$(GET AND 223):UNTILA$>="A" AND A$<"K":PROCplay(ASC(A$)-65):ENDPROC 
  170END
  180DEFPROCplay(WAVE%)
  190!score=0
  200VDU26:COLOUR128:CLS  
  210PROCprt(0,1,STRING$(20,CHR$(224)),2,3)
  220PROCprt(6,1,"INVADERS",2,1)
  230PROCeor(3,30,0):PROCeor(6,30,0):PROCeor(9,30,0)     
  240L%=4
  250Z%=1
  260REPEAT
  270PROCwave(WAVE%,RND(6))
  280IF?finish=1 THEN SOUND0,-15,100,10:L%=L%-1:VDU19,0,1;0;0:TIME=0:REPEAT UNTILTIME>10:VDU19,0;0;0;:IFL%>0 THEN PROCeor(3*L%,30,0) 
  290IF!score>&5000*Z% AND?finish=0 THEN Z%=Z%+1:IF L%<5 THEN L%=L%+1:PROCeor(L%*3-3,30,0):Z%=Z%+1:PROCprt(4,15,"A Bonus Life",1,2):TIME=0:REPEATUNTILTIME>100
  300IF?finish=0 THEN WAVE%=(WAVE%+1)MOD 10
  310UNTILL%=0
  320*FX15
  330COLOUR128:VDU28,3,27,16,4:CLS:PROCprt(4,15,"Press Any Key",2,1):*FX15
  340REPEATUNTILGET:ENDPROC
  350DEFPROCdata
  360RESTORE
  370FOR X%=0 TO 143 STEP 4
  380READa$:X%!char=EVAL("&"+a$)
  390NEXT
  400DIMdata 370
  410RESTORE 3060
  420FORX%=0 TO 371 STEP4:READa$:X%!data=EVAL("&"+a$):NEXT
  430ENDPROC
  440DEFPROCdecode(N%)
  450ptr=pat1+7:FORX%=0 TO 6:pat1?X%=?(data+N%*37+X%):NEXT:FORX%=0 TO 13:act=?(data+7+X%*2+N%*37):no=?(data+8+X%*2+N%*37):FORY%=1 TO no:?ptr=act:ptr=ptr+1:NEXT:NEXT:ENDPROC
  460ENDPROC
  470DEFPROCprt(X,Y,M$,A%,B%)
  480X%=X*64:Y%=1024-Y*32:GCOL0,A%:VDU5:MOVEX%-8,Y%-4:PRINT;M$:MOVEX%-8,Y%+4:PRINT;M$:MOVEX%,Y%+4:PRINT;M$:MOVEX%,Y%-4:PRINT;M$:MOVEX%-8,Y%:PRINT;M$:MOVEX%+8,Y%:PRINT;M$:MOVEX%+8,Y%+4:PRINT;M$:MOVEX%+8,Y%-4:PRINT;M$:GCOL0,B%:MOVEX%,Y%:PRINT;M$
  490VDU4:ENDPROC
  500DEFPROCeor(X%,Y%,C%)
  510S%=X%*8+&140*Y%+&5800:D%=char+C%*16:?cpos=D% MOD 256:cpos?1=D% DIV 256:?spos=S% MOD 256:spos?1=S% DIV 256:CALLprint:ENDPROC 
  520DEFPROCassem
  530spos=&70:cpos=&72
  540tpos=&74:npos=&77:ypos=&79
  550x=&7B:y=&7C
  560pat=&7E:stpos=&80
  570X%=20:Y%=25*2:S%=&5800+X%*8+Y%/2*&140 
  580DIM Q% 2115
  590FORI=0 TO 2 STEP 2
  600P%=Q%
  610[OPTI
  620.print
  630SEI
  640LDAspos:STAtpos:LDAspos+1:STAtpos+1
  650LDY#0:LDX#0:LDA#2:STAtpos+2:.loop
  660LDA(cpos),Y:EOR(spos),Y:STA(spos),Y
  670INCcpos:BNEn1:INCcpos+1:.n1
  680LDAspos:AND#7:CMP#7:BNEn7
  690LDAspos:CLC:ADC#&38:STAspos
  700LDAspos+1:ADC#1:STAspos+1:.n7
  710INCspos:BNEn2:INCspos+1:.n2
  720INX:CPX#8:BNEloop
  730CLC:LDAtpos:ADC#8:STAspos
  740LDAtpos+1:ADC#0:STAspos+1
  750LDX#0
  760DECtpos+2:BNEloop
  770CLI
  780RTS
  790.k LDY#&FF:LDA#129:JSR&FFF4:CPY#0:RTS 
  800.move
  810LDA#char MOD 256:STAcpos:LDA#char DIV 256:STAcpos+1:LDAypos:STAspos:LDAypos+1:STAspos+1:JSRprint 
  820LDA#char MOD 256:STAcpos:LDA#char DIV 256:STAcpos+1:LDAnpos:STAspos:STAypos:LDAnpos+1:STAspos+1:STAypos+1:JSRprint
  830RTS
  840.keys
  850LDX#(-74 AND &FF):JSRk:BEQnshoot:JSRgengun:.nshoot 
  860LDX#(-67 AND &FF):JSRk:BEQnright:LDAx:CMP#32:BEQnright
  870CLC:LDAypos:ADC#8:STAnpos:LDAypos+1:ADC#0:STAnpos+1:JSRmove
  880INCx:RTS:.nright
  890LDX#(-98 AND &FF):JSRk:BEQnleft:LDAx:CMP#6:BEQnleft 
  900SEC:LDAypos:SBC#8:STAnpos:LDAypos+1:SBC#0:STAnpos+1:JSRmove
  910DECx:RTS:.nleft
  920RTS
  930.init
  940LDA#S% MOD 256:STAypos:STAspos:LDA#S% DIV 256:STAypos+1:STAspos+1:LDA#char MOD 256:STAcpos:LDA#char DIV 256:STAcpos+1:JSRprint
  950LDA#X%:STAx:LDA#Y%:STAy
  960JSRinitbul
  970JSRinitgun
  980LDA#0:STAfinish
  990RTS
 1000.game
 1010JSRinit
 1020.mloop
 1030LDA&240:.frame CMP&240:BEQframe
 1040JSRmval
 1050JSRkeys
 1060JSRmvbul
 1070JSRmvgun
 1080LDAnoal:BNEfine:LDAtypal:JSRgenal:.fine
 1090LDAfinish:BNEquit
 1100LDAalp2:BEQquit
 1110LDX#(-113 AND &FF):JSRk:BEQmloop
 1120.quit
 1130RTS
 1140.genal STAtype:LDAnoal:CMP#5:BEQnomore 
 1150LDAalpass:BEQnomore:DECalpass
 1160LDY#0:.loop
 1170LDAaldat,Y:CMP#0:BEQfndspc
 1180CLC:TYA:ADC#6:TAY:JMPloop
 1190.fndspc INCnoal
 1200TYA:TAX:LDY#0:LDA(pat),Y:STAaldat,X
 1210INY:LDA(pat),Y:STAaldat+1,X:INY:LDA(pat),Y:STAaldat+2,X:STAspos:INY:LDA(pat),Y:STAaldat+3,X:STAspos+1
 1220INY:LDA#0:STAaldat+4,X:LDAtype:STAaldat+5,X
 1230ASLA:ASLA:ASLA:ASLA:CLC:ADC#char MOD 256:STAcpos:LDA#char DIV 256:ADC#0:STAcpos+1
 1240JSRprint
 1250.nomore
 1260RTS
 1270.xc EQUB0:.yc EQUB0:.pc EQUW0:.pp EQUB0:.cc EQUB0:.atype EQUW0:.stx EQUB0:.sty EQUB0:.npc EQUW0:.type EQUB0
 1280.inital
 1290LDY#4:LDA(pat),Y:STArnd
 1300INY:LDA(pat),Y:STAminh
 1310INY:LDA(pat),Y:STAalpass:STAalp2
 1320LDA#0:STAnoal
 1330STAcnt
 1340STA&240
 1350LDY#0:.loop 
 1360LDA#0:STAaldat,Y:CLC:TYA:ADC#6:TAY:CPY#(6*6):BNEloop:RTS
 1370.mval
 1380LDX#0:.loop
 1390LDAaldat,X:BNEymove:JMPnmove:.ymove
 1400STAxc:LDAaldat+1,X:STAyc:LDAaldat+2,X:STApc:LDAaldat+3,X:STApc+1:LDAaldat+4,X:STApp:LDAaldat+5,X:STAcc
 1410ASLA:ASLA:ASLA:ASLA:CLC:ADC#char MOD 256:STAatype:LDA#char DIV 256:ADC#0:STAatype+1 
 1420LDApc:STAnpc:LDApc+1:STAnpc+1
 1430LDApp:CLC:ADC#7:TAY:LDAcc:CMP#7:BCCskip7:JMPskip6:.skip7 LDA(pat),Y
 1440AND#128:BEQnmvl:SEC:LDAnpc:SBC#8:STAnpc:LDAnpc+1:SBC#0:STAnpc+1:DECxc:.nmvl
 1450LDA(pat),Y:AND#64:BEQnmvr:CLC:LDAnpc:ADC#8:STAnpc:LDAnpc+1:ADC#0:STAnpc+1:INCxc:.nmvr 
 1460LDA(pat),Y:AND#16:BEQnmvd:LDApc:AND#7:CMP#4:BNEnjp:CLC:LDAnpc:ADC#&38:STAnpc:LDAnpc+1:ADC#1:STAnpc+1:.njp CLC:LDAnpc:ADC#4:STAnpc:LDAnpc+1:ADC#0:STAnpc+1:INCyc:.nmvd
 1470LDA(pat),Y:AND#32:BEQnmvu:LDApc:AND#7:BNEnjp2:SEC:LDAnpc:SBC#&38:STAnpc:LDAnpc+1:SBC#1:STAnpc+1:.njp2 SEC:LDAnpc:SBC#4:STAnpc:LDAnpc+1:SBC#0:STAnpc+1:DECyc:.nmvu
 1480INCcnt:LDAcnt:CMPrnd:BNEnmfr:LDA#0:STAcnt:LDAyc:CMPminh:BCSnmfr:STXstx:STYsty:JSRgenbul:LDXstx:LDYsty:.nmfr 
 1490LDA(pat),Y:AND#2:BEQngen:STYsty:STXstx:LDAcc:JSRgenal:LDXstx:LDYsty:.ngen
 1500LDA(pat),Y:AND#1:BEQnrep:LDA#255:STApp:.nrep
 1510LDAxc:STAx1:LDAyc:STAy1:LDAx:STAx2:LDAy:STAy2:LDAx1:CMPx2:BCCnoswap:LDAx:STAx1:LDAxc:STAx2:.noswap SEC:LDAx2:SBCx1:CMP#2:BCSnohit 
 1520LDAy1:CMPy2:BCCnoswap2:LDAy:STAy1:LDAyc:STAy2:.noswap2 SEC:LDAy2:SBCy1:CMP#2:BCSnohit 
 1530LDA#1:STAfinish
 1540.nohit
 1550INCpp
 1560.skip6
 1570STXstx:STYsty
 1580LDApc:STAspos:LDApc+1:STAspos+1:LDAatype:STAcpos:LDAatype+1:STAcpos+1:JSRprint
 1590LDAcc:CMP#7:BCCnend2:JMPnend:.nend2
 1600LDX#0:.loop2 LDAgundat,X:BEQnguns:CMPxc:BEQyposs:SEC:SBC#1:CMPxc:BNEngposs:.yposs LDAgundat+1,X:SEC:SBCyc:CMP#2:BCSngposs:LDA#0:STAgundat,X:LDAgundat+2,X:STAstpos:LDAgundat+3,X:STAstpos+1:LDY#0:LDA(stpos),Y:EOR#&01:STA(stpos),Y
 1610DECnogun:LDA#7:STAcc:LDA#0:STA&240:LDX#snd2 MOD 256:LDY#snd2 DIV 256:JSRsound:JSRascore:JMPskip5:.ngposs .nguns INX:INX:INX:INX:CPX#(5*4):BNEloop2
 1620LDAxc:CMP#5:BEQyend:CMP#33:BEQyend:LDAyc:CMP#10:BCCyend:CMP#53:BCSyend:JMPnend:.yend LDA#0:STAxc:DECnoal:DECalp2:JMPskip:.nend 
 1630LDA&240:CMP#250:BCSyadd 
 1640LDA#0:STA&240
 1650LDAcc:CMP#8:BNEnexpl:LDA#0:STAxc:DECnoal:DECalp2:JMPskip:.nexpl
 1660LDAcc:AND#1:BNEnadd:DECcc:JMPyadd:.nadd INCcc:.yadd
 1670.skip5
 1680LDAcc:ASLA:ASLA:ASLA:ASLA:CLC:ADC#char MOD 256:STAcpos:LDA#char DIV 256:ADC#0:STAcpos+1
 1690LDAnpc:STAspos:LDAnpc+1:STAspos+1:JSRprint   
 1700.skip
 1710LDXstx:LDYsty:LDAxc:STAaldat,X:LDAyc:STAaldat+1,X:LDAnpc:STAaldat+2,X:LDAnpc+1:STAaldat+3,X:LDApp:STAaldat+4,X:LDAcc:STAaldat+5,X
 1720.nmove
 1730CLC:TXA:ADC#6:TAX:CPX#(6*6):BEQeloop:JMPloop:.eloop  
 1740RTS
 1750.initbul LDY#0:.loop:LDA#0:STAbuldat,Y:INY:INY:INY:INY:CPY#(5*4):BNEloop:STAnobul:RTS 
 1760.genbul LDAnobul:CMP#5:BEQnfire:LDX#0:.loop LDAbuldat,X:CMP#0:BEQybul:INX:INX:INX:INX:JMPloop:.nfire RTS
 1770.ybul LDAxc:STAbuldat,X:LDAyc:STAbuldat+1,X:LDAnpc:STAbuldat+2,X:STAstpos:LDAnpc+1:STAbuldat+3,X:STAstpos+1:INCnobul:LDY#0:LDA(stpos),Y:EOR#&10:STA(stpos),Y:RTS 
 1780.mvbul LDY#0:LDX#0:.loop LDAbuldat,X:BNEokbul:JMPnpbul:.okbul STAxc:LDAbuldat+1,X:STAyc:LDAbuldat+2,X:STAstpos:LDAbuldat+3,X:STAstpos+1:INCyc
 1790LDAstpos:STAtpos:LDAstpos+1:STAtpos+1:LDAstpos:AND#7:CMP#4:BNEnjp3:CLC:LDAstpos:ADC#&38:STAtpos:LDAstpos+1:ADC#1:STAtpos+1:.njp3 CLC:LDAtpos:ADC#4:STAtpos:LDAtpos+1:ADC#0:STAtpos+1
 1800LDA(stpos),Y:EOR#&10:STA(stpos),Y   
 1810LDAyc:CMP#53:BCCoks:DECnobul:LDA#0:STAxc:JMPskip2:.oks
 1820LDAxc:CMPx:BEQposs:SEC:SBC#1:CMPx:BNEnposs:.poss LDAyc:CMPy:BCCnposs:SEC:SBC#2:CMPy:BCSnposs:LDA#1:STAfinish:.nposs
 1830LDA(tpos),Y:EOR#&10:STA(tpos),Y 
 1840.skip2
 1850LDAxc:STAbuldat,X
 1860LDAyc:STAbuldat+1,X:LDAtpos:STAbuldat+2,X:LDAtpos+1:STAbuldat+3,X
 1870.npbul
 1880INX:INX:INX:INX:CPX#(5*4):BEQeloop2:JMPloop:.eloop2
 1890RTS
 1900.initgun LDY#0:.loop:LDA#0:STAgundat,Y:INY:INY:INY:INY:CPY#(5*4):BNEloop:STAnogun:RTS
 1910.gengun LDAnogun:CMP#3:BEQnfr:LDX#0:.loop LDAgundat,X:CMP#0:BEQygun:INX:INX:INX:INX:JMPloop:.nfr RTS 
 1920.ygun LDAx:STAgundat,X:LDAy:STAgundat+1,X:LDAypos:STAgundat+2,X:STAstpos:LDAypos+1:STAgundat+3,X:STAstpos+1:INCnogun:LDY#0:LDA(stpos),Y:EOR#&01:STA(stpos),Y:LDX#snd MOD 256:LDY#snd DIV 256:JSRsound:RTS
 1930.mvgun LDY#0:LDX#0:.loop LDAgundat,X:BNEokgun:JMPnpgun:.okgun STAxc:LDAgundat+1,X:STAyc:LDAgundat+2,X:STAstpos:LDAgundat+3,X:STAstpos+1:DECyc
 1940LDAstpos:STAtpos:LDAstpos+1:STAtpos+1:LDAstpos:AND#7:BNEnjp4:SEC:LDAstpos:SBC#&38:STAtpos:LDAstpos+1:SBC#1:STAtpos+1:.njp4 SEC:LDAtpos:SBC#4:STAtpos:LDAtpos+1:SBC#0:STAtpos+1
 1950LDA(stpos),Y:EOR#&01:STA(stpos),Y
 1960LDAyc:CMP#10:BCSokg:DECnogun:LDA#0:STAxc:JMPskip3:.okg
 1970LDA(tpos),Y:EOR#&01:STA(tpos),Y 
 1980.skip3
 1990LDAxc:STAgundat,X
 2000LDAyc:STAgundat+1,X:LDAtpos:STAgundat+2,X:LDAtpos+1:STAgundat+3,X
 2010.npgun
 2020INX:INX:INX:INX:CPX#(5*4):BEQeloop3:JMPloop:.eloop3
 2030RTS
 2040.ascore SED:CLC:LDAscore:ADC#&10:STAscore:LDAscore+1:ADC#0:STAscore+1:LDAscore+2:ADC#0:STAscore+2:LDAscore+3:ADC#0:STAscore+3:CLD:JMPpscore
 2050.pscore LDA#31:JSR&FFEE:LDA#12:JSR&FFEE:LDA#30:JSR&FFEE:LDAscore+3:JSRpnum:LDAscore+2:JSRpnum:LDAscore+1:JSRpnum:LDAscore:JMPpnum
 2060.pnum PHA:AND#&F0:LSRA:LSRA:LSRA:LSRA:CLC:ADC#48:JSR&FFEE:PLA:AND#&0F:CLC:ADC#48:JMP&FFEE
 2070.nogun EQUB0
 2080.y1 EQUB0:.y2 EQUB0:.x1 EQUB0:.x2 EQUB0
 2090.eor
 2100.sound LDA#7:JMP&FFF1
 2110.snd EQUW1:EQUW2:EQUW10:EQUW1
 2120.snd2 EQUW0:EQUW-15:EQUW100:EQUW1
 2130.typal EQUB0
 2140.flag EQUB0
 2150.score EQUD0
 2160.rnd EQUB0
 2170.cnt EQUB0
 2180.minh EQUB0
 2190.noal EQUB0
 2200.nobul EQUB0
 2210.finish EQUB0
 2220.alpass EQUB0:.alp2 EQUB0
 2230.buldat EQUS STRING$(5,"ABCC")
 2240.gundat EQUS STRING$(5,"ABCC")
 2250.aldat EQUS STRING$(6,"ABCCDE") 
 2260.pat1 EQUS STRING$(300," ")   
 2270]
 2280NEXT
 2290ENDPROC
 2300DEFPROCwave(W%,T%)
 2310COLOUR128:VDU28,3,27,16,4:CLS
 2320GCOL0,2:PROCbox(3*64-8,1020-28*32,14*64+16,24*32+8)
 2330GCOL0,3:PROCbox(3*64-16,1016-28*32,14*64+32,24*32+16)
 2340GCOL0,0:PROCbox(3*64-24,1012-28*32,14*64+48,24*32+24)
 2350PROCprt(7,15,"Wave "+STR$(W%+1),1,2)
 2360TIME=0:REPEATUNTILTIME>150:CLS
 2370PROCdecode(W%)
 2380?pat=pat1 MOD 256:pat?1=pat1 DIV 256:A%=T%
 2390CALLinital
 2400CALLgenal
 2410COLOUR2:COLOUR128:VDU26:CALLpscore
 2420?typal=T%
 2430*FX178,0,0
 2440CALLgame
 2450*FX178,255,0
 2460ENDPROC
 2470DEFPROCbox(X,Y,XL,YL)
 2480MOVEX,Y:DRAWX+XL,Y:DRAWX+XL,Y+YL:DRAWX,Y+YL:DRAWX,Y:ENDPROC
 2490DEFPROCchdata(N%)
 2500VDU26:COLOUR128:COLOUR3:CLS
 2510PROCprt(0,1,"Editing Wave "+STR$(N%+1)+" :",1,2)
 2520PROCprt(0,3,"Space to finish",2,1)
 2530FORD%=7 TO 33 STEP2:PROCprt(2,D%-2,CHR$((D%-6)/2+65)+".",2,1)
 2540PROCprt(14,D%-2,"x",2,1)
 2550B=D%?(data+N%*37)
 2560PRINTTAB(5,D%-2);FNdir(B);TAB(16,D%-2);RIGHT$("000"+STR$(D%?(data+N%*37+1)),3); 
 2570NEXT
 2580REPEAT
 2590REPEAT:*FX15
 2600A$=CHR$(GET AND 223):UNTIL A$>="A" AND A$<="N" OR INKEY(-99):IFINKEY(-99)  THEN flag=1:GOTO2660 ELSE flag=0
 2610O%=2*(ASC(A$)-65)+7:B%=O%?(data+N%*37):COLOUR130:PRINTTAB(5,O%-2);FNdir(B%);
 2620REPEAT:A$=CHR$(GET AND 223):I=INSTR("LRUDF NA",A$):IFI>0 THEN B%=B% EOR (2^(8-I)):PRINTTAB(5,O%-2);FNdir(B%);
 2630UNTIL A$=CHR$(13):O%?(data+N%*37)=B%:COLOUR128:PRINTTAB(5,O%-2);FNdir(B%);:COLOUR130
 2640B%=O%?(data+N%*37+1):PRINTTAB(16,O%-2);:B%=FNrot(B%,3)
 2650O%?(data+N%*37+1)=B%
 2660UNTILflag=1
 2670REPEAT
 2680CLS:PROCprt(0,1,"Starting xco (6-30)",2,1):PRINTTAB(9,3);:X=FNrot(?(data+N%*37),2)
 2690UNTILX>5 AND X<31
 2700REPEAT:CLS
 2710PROCprt(0,1,"Starting yco (12-50)",2,1):PRINTTAB(9,3);:Y=FNrot(?(data+N%*37+1),2) 
 2720Y=(Y AND &FE)
 2730UNTILY>11 AND Y<51
 2740?(data+N%*37)=X:?(data+N%*37+1)=Y:S%=X*8+Y*&140/2+&5800:?(data+N%*37+2)=S% MOD 256:?(data+N%*37+3)=S% DIV 256
 2750REPEAT:CLS
 2760PROCprt(0,1,"Fire freq. (5-200)",2,1):PRINTTAB(9,3);:F=FNrot(205-?(data+N%*37+4),3):UNTILF>4 AND F<201:?(data+N%*37+4)=205-F
 2770REPEAT:CLS:PROCprt(0,1,"Min fire ht (5-40)",2,1):PRINTTAB(9,3);:F=FNrot(45-?(data+N%*37+5),2):UNTILF>4 AND F<40:?(data+N%*37+5)=45-F
 2780REPEAT:CLS:PROCprt(0,1,"No in wave (5-200)",2,1):PRINTTAB(9,3);:F=FNrot(?(data+N%*37+6),3):UNTILF>4 AND F<201:?(data+N%*37+6)=F
 2790ENDPROC
 2800DEFFNrot(F%,N%)
 2810F$=RIGHT$("00000"+STR$F%,N%)
 2820XC=POS:YC=VPOS:COLOUR 130:PRINTTAB(XC,YC);F$;:REPEAT:*FX15 
 2830A=GET-48:IFA>-1 AND A<10 THEN F$=RIGHT$(F$,N%-1)+STR$(A):PRINTTAB(XC,YC);F$;
 2840UNTILA=-35:COLOUR128:PRINTTAB(XC,YC);F$;
 2850=EVAL(F$)
 2860DEFFNdir(A)
 2870C$=""
 2880IF(A AND 128) THEN C$=C$+"L" ELSE C$=C$+" "
 2890IF(A AND 64) THEN C$=C$+"R" ELSE C$=C$+" "
 2900IF(A AND 32) THEN C$=C$+"U" ELSE C$=C$+" "
 2910IF(A AND 16) THEN C$=C$+"D" ELSE C$=C$+" "
 2920IF(A AND 8) THEN C$=C$+"F" ELSE C$=C$+" "
 2930IF(A AND 2) THEN C$=C$+"N" ELSE C$=C$+" "
 2940IF(A AND 1) THEN C$=C$+"A" ELSE C$=C$+" " 
 2950=C$
 2960DEFPROCsave
 2970CLS:INPUT"Saving waves : Filename ..."f$
 2980OSCLI"SAVE "+f$+" "+STR$~data+" +"+STR$~370
 2990ENDPROC
 3000DEFPROCload
 3010CLS:INPUT"Loading waves : Filename ..."f$ 
 3020OSCLI"LOAD "+f$+" "+STR$~data
 3030ENDPROC
 3040DATA 79695A14,80C4F7B,E969A582,1032FED,F0C34330,E0F0F0F0,F09686C0,3070F0F0,F0961630,C0E0F0F0,F03C2CC0,70F0F0F0,34120508,8051234,C2840A01,10A84C2,341E0100,11E34,C2870800,887C2,4B4B0D09,1032543,4A4A0602,88448,43250301,90D4B4B,48840800
 3050DATA 2064A4A,11442288,885566,22CC8822,228844,442288,881100,22880022,228844
 3060DATA 64B01406,403C2378,20036007,A201A002,801E1001,60041005,F400A,0,0,70220600,3727376D,6640B44,3A40126,3940484,3540514,40105,40004,40004,1E062805,26196AF0,120F1028,44035401,20036003,44036420,10035003,400050A,0,805DC00,53624010,5443723
 3070DATA B440146,2140254,10840294,2140294,1050254,40004,9A060004,60F00E06,503C2837,54015605,60168010,140B8416,3C,4000400,0,4E000400,70320607,46286C77,1260824,4240164,2240164,A440164,A440504,2140154,2884,C120C08,23056010,16051464,90141001
 3080DATA 44061408,A0062010,41E2407,0,4000400,608C000,F623010,24106328,1420540,14201440,1011880,0,0,0,7E090000,61000E08,14642269,10011208,A40F4406,1010D,4000400,0,4000400,32000000,F00E060A,5A285060,1420640,2101240,2101980,20101040,1E400F00
 3090DATA 0,0,3A30F00A

�6:�char 150
_�data:�assem:�2,1,2,0,-1,2,0,4,126,0,0,-126,126,126:�23,224,&FFFF;&FFFF;&FFFF;&FFFF;:*FX229
� � �=17 � � �Th@ � �:�
(�5:�23;8202;0;0;0;
2�19,3,4;0;0
<��prt(8,1,"Menu",1,2):�prt(1,5,"1. Edit a wave",2,1):�prt(1,7,"2. Save a wave",2,1):�prt(1,9,"3. Load a wave",2,1):�prt(1,11,"4. Play a wave",2,1):�prt(1,13,"5. Play from start",2,1):�:A=�-48:�A>0 � A<6
F�A=1 �edit
P�A=2 �6:�save
Z�A=3 �6:�load
d�A=4 �plwave 
n�A=5 �play(0)
x	�Th@
�
��edit
�`�:�prt(0,5,"Edit : wave (A-J)?",1,2):�:A$=�(� � 223):�A$>="A" � A$<"K":�chdata(�(A$)-65):�  
���plwave
�]�:�prt(0,5,"Play : wave (A-J)?",1,2):�:A$=�(� � 223):�A$>="A" � A$<"K":�play(�(A$)-65):� 
��
���play(WAVE%)
�!score=0
��26:�128:�  
��prt(0,1,�20,�(224)),2,3)
��prt(6,1,"INVADERS",2,1)
�/�eor(3,30,0):�eor(6,30,0):�eor(9,30,0)     
�L%=4
�Z%=1
�
�wave(WAVE%,�(6))
b�?finish=1 � �0,-15,100,10:L%=L%-1:�19,0,1;0;0:�=0:� ��>10:�19,0;0;0;:�L%>0 � �eor(3*L%,30,0) 
"~�!score>&5000*Z% �?finish=0 � Z%=Z%+1:� L%<5 � L%=L%+1:�eor(L%*3-3,30,0):Z%=Z%+1:�prt(4,15,"A Bonus Life",1,2):�=0:���>100
,$�?finish=0 � WAVE%=(WAVE%+1)� 10
6	�L%=0
@	*FX15
J=�128:�28,3,27,16,4:�:�prt(4,15,"Press Any Key",2,1):*FX15
T	���:�
^
��data
h�
r� X%=0 � 143 � 4
|�a$:X%!char=�("&"+a$)
��
�
�data 370
�
� �dtK
�*�X%=0 � 371 �4:�a$:X%!data=�("&"+a$):�
��
���decode(N%)
“ptr=pat1+7:�X%=0 � 6:pat1?X%=?(data+N%*37+X%):�:�X%=0 � 13:act=?(data+7+X%*2+N%*37):no=?(data+8+X%*2+N%*37):�Y%=1 � no:?ptr=act:ptr=ptr+1:�:�:�
��
���prt(X,Y,M$,A%,B%)
�X%=X*64:Y%=1024-Y*32:�0,A%:�5:�X%-8,Y%-4:�;M$:�X%-8,Y%+4:�;M$:�X%,Y%+4:�;M$:�X%,Y%-4:�;M$:�X%-8,Y%:�;M$:�X%+8,Y%:�;M$:�X%+8,Y%+4:�;M$:�X%+8,Y%-4:�;M$:�0,B%:�X%,Y%:�;M$
��4:�
���eor(X%,Y%,C%)
�oS%=X%*8+&140*Y%+&5800:D%=char+C%*16:?cpos=D% � 256:cpos?1=D% � 256:?spos=S% � 256:spos?1=S% � 256:�print:� 
��assem
spos=&70:cpos=&72
tpos=&74:npos=&77:ypos=&79
&x=&7B:y=&7C
0pat=&7E:stpos=&80
:*X%=20:Y%=25*2:S%=&5800+X%*8+Y%/2*&140 
D
� Q% 2115
N�I=0 � 2 � 2
X	P%=Q%
b	[OPTI
l
.print
vSEI
�'LDAspos:STAtpos:LDAspos+1:STAtpos+1
�%LDY#0:LDX#0:LDA#2:STAtpos+2:.loop
�%LDA(cpos),Y:�(spos),Y:STA(spos),Y
�INCcpos:BNEn1:INCcpos+1:.n1
�LDAspos:�#7:CMP#7:BNEn7
�LDAspos:CLC:ADC#&38:STAspos
�!LDAspos+1:ADC#1:STAspos+1:.n7
�INCspos:BNEn2:INCspos+1:.n2
�INX:CPX#8:BNEloop
�CLC:LDAtpos:ADC#8:STAspos
�LDAtpos+1:ADC#0:STAspos+1
�	LDX#0
�DECtpos+2:BNEloop
CLI
RTS
*.k LDY#&FF:LDA#129:JSR&FFF4:CPY#0:RTS 
 	.move
*aLDA#char � 256:STAcpos:LDA#char � 256:STAcpos+1:LDAypos:STAspos:LDAypos+1:STAspos+1:JSRprint 
4rLDA#char � 256:STAcpos:LDA#char � 256:STAcpos+1:LDAnpos:STAspos:STAypos:LDAnpos+1:STAspos+1:STAypos+1:JSRprint
>RTS
H	.keys
R5LDX#(-74 � &FF):JSRk:BEQnshoot:JSRgengun:.nshoot 
\8LDX#(-67 � &FF):JSRk:BEQnright:LDAx:CMP#32:BEQnright
f?CLC:LDAypos:ADC#8:STAnpos:LDAypos+1:ADC#0:STAnpos+1:JSRmove
pINCx:RTS:.nright
z6LDX#(-98 � &FF):JSRk:BEQnleft:LDAx:CMP#6:BEQnleft 
�?SEC:LDAypos:SBC#8:STAnpos:LDAypos+1:SBC#0:STAnpos+1:JSRmove
�DECx:RTS:.nleft
�RTS
�	.init
�zLDA#S% � 256:STAypos:STAspos:LDA#S% � 256:STAypos+1:STAspos+1:LDA#char � 256:STAcpos:LDA#char � 256:STAcpos+1:JSRprint
�LDA#X%:STAx:LDA#Y%:STAy
�JSRinitbul
�JSRinitgun
�LDA#0:STAfinish
�RTS
�	.game
�JSRinit
�
.mloop
#LDA&240:.frame CMP&240:BEQframe
JSRmval
JSRkeys
$JSRmvbul
.JSRmvgun
8+LDAnoal:BNEfine:LDAtypal:JSRgenal:.fine
BLDAfinish:BNEquit
LLDAalp2:BEQquit
V"LDX#(-113 � &FF):JSRk:BEQmloop
`	.quit
jRTS
t+.genal STAtype:LDAnoal:CMP#5:BEQnomore 
~!LDAalpass:BEQnomore:DECalpass
�LDY#0:.loop
�LDAaldat,Y:CMP#0:BEQfndspc
�CLC:TYA:ADC#6:TAY:JMPloop
�.fndspc INCnoal
�'TYA:TAX:LDY#0:LDA(pat),Y:STAaldat,X
�iINY:LDA(pat),Y:STAaldat+1,X:INY:LDA(pat),Y:STAaldat+2,X:STAspos:INY:LDA(pat),Y:STAaldat+3,X:STAspos+1
�/INY:LDA#0:STAaldat+4,X:LDAtype:STAaldat+5,X
�QASLA:ASLA:ASLA:ASLA:CLC:ADC#char � 256:STAcpos:LDA#char � 256:ADC#0:STAcpos+1
�JSRprint
�.nomore
�RTS
�o.xc EQUB0:.yc EQUB0:.pc EQUW0:.pp EQUB0:.cc EQUB0:.atype EQUW0:.stx EQUB0:.sty EQUB0:.npc EQUW0:.type EQUB0
.inital

LDY#4:LDA(pat),Y:STArnd
INY:LDA(pat),Y:STAminh
$INY:LDA(pat),Y:STAalpass:STAalp2
(LDA#0:STAnoal
2
STAcnt
<STA&240
FLDY#0:.loop 
P<LDA#0:STAaldat,Y:CLC:TYA:ADC#6:TAY:CPY#(6*6):BNEloop:RTS
Z	.mval
dLDX#0:.loop
n'LDAaldat,X:BNEymove:JMPnmove:.ymove
xjSTAxc:LDAaldat+1,X:STAyc:LDAaldat+2,X:STApc:LDAaldat+3,X:STApc+1:LDAaldat+4,X:STApp:LDAaldat+5,X:STAcc
�TASLA:ASLA:ASLA:ASLA:CLC:ADC#char � 256:STAatype:LDA#char � 256:ADC#0:STAatype+1 
�!LDApc:STAnpc:LDApc+1:STAnpc+1
�GLDApp:CLC:ADC#7:TAY:LDAcc:CMP#7:BCCskip7:JMPskip6:.skip7 LDA(pat),Y
�M�#128:BEQnmvl:SEC:LDAnpc:SBC#8:STAnpc:LDAnpc+1:SBC#0:STAnpc+1:DECxc:.nmvl
�XLDA(pat),Y:�#64:BEQnmvr:CLC:LDAnpc:ADC#8:STAnpc:LDAnpc+1:ADC#0:STAnpc+1:INCxc:.nmvr 
��LDA(pat),Y:�#16:BEQnmvd:LDApc:�#7:CMP#4:BNEnjp:CLC:LDAnpc:ADC#&38:STAnpc:LDAnpc+1:ADC#1:STAnpc+1:.njp CLC:LDAnpc:ADC#4:STAnpc:LDAnpc+1:ADC#0:STAnpc+1:INCyc:.nmvd
��LDA(pat),Y:�#32:BEQnmvu:LDApc:�#7:BNEnjp2:SEC:LDAnpc:SBC#&38:STAnpc:LDAnpc+1:SBC#1:STAnpc+1:.njp2 SEC:LDAnpc:SBC#4:STAnpc:LDAnpc+1:SBC#0:STAnpc+1:DECyc:.nmvu
�pINCcnt:LDAcnt:CMPrnd:BNEnmfr:LDA#0:STAcnt:LDAyc:CMPminh:BCSnmfr:STXstx:STYsty:JSRgenbul:LDXstx:LDYsty:.nmfr 
�KLDA(pat),Y:�#2:BEQngen:STYsty:STXstx:LDAcc:JSRgenal:LDXstx:LDYsty:.ngen
�.LDA(pat),Y:�#1:BEQnrep:LDA#255:STApp:.nrep
�LDAxc:STAx1:LDAyc:STAy1:LDAx:STAx2:LDAy:STAy2:LDAx1:CMPx2:BCCnoswap:LDAx:STAx1:LDAxc:STAx2:.noswap SEC:LDAx2:SBCx1:CMP#2:BCSnohit 
�ZLDAy1:CMPy2:BCCnoswap2:LDAy:STAy1:LDAyc:STAy2:.noswap2 SEC:LDAy2:SBCy1:CMP#2:BCSnohit 
�LDA#1:STAfinish

.nohit
	INCpp

.skip6
"STXstx:STYsty
,RLDApc:STAspos:LDApc+1:STAspos+1:LDAatype:STAcpos:LDAatype+1:STAcpos+1:JSRprint
6'LDAcc:CMP#7:BCCnend2:JMPnend:.nend2
@�LDX#0:.loop2 LDAgundat,X:BEQnguns:CMPxc:BEQyposs:SEC:SBC#1:CMPxc:BNEngposs:.yposs LDAgundat+1,X:SEC:SBCyc:CMP#2:BCSngposs:LDA#0:STAgundat,X:LDAgundat+2,X:STAstpos:LDAgundat+3,X:STAstpos+1:LDY#0:LDA(stpos),Y:�#&01:STA(stpos),Y
J�DECnogun:LDA#7:STAcc:LDA#0:STA&240:LDX#snd2 � 256:LDY#snd2 � 256:JSRsound:JSRascore:JMPskip5:.ngposs .nguns INX:INX:INX:INX:CPX#(5*4):BNEloop2
T�LDAxc:CMP#5:BEQyend:CMP#33:BEQyend:LDAyc:CMP#10:BCCyend:CMP#53:BCSyend:JMPnend:.yend LDA#0:STAxc:DECnoal:DECalp2:JMPskip:.nend 
^LDA&240:CMP#250:BCSyadd 
hLDA#0:STA&240
rCLDAcc:CMP#8:BNEnexpl:LDA#0:STAxc:DECnoal:DECalp2:JMPskip:.nexpl
|5LDAcc:�#1:BNEnadd:DECcc:JMPyadd:.nadd INCcc:.yadd
�
.skip5
�WLDAcc:ASLA:ASLA:ASLA:ASLA:CLC:ADC#char � 256:STAcpos:LDA#char � 256:ADC#0:STAcpos+1
�1LDAnpc:STAspos:LDAnpc+1:STAspos+1:JSRprint   
�	.skip
��LDXstx:LDYsty:LDAxc:STAaldat,X:LDAyc:STAaldat+1,X:LDAnpc:STAaldat+2,X:LDAnpc+1:STAaldat+3,X:LDApp:STAaldat+4,X:LDAcc:STAaldat+5,X
�
.nmove
�9CLC:TXA:ADC#6:TAX:CPX#(6*6):BEQeloop:JMPloop:.eloop  
�RTS
�Z.initbul LDY#0:.loop:LDA#0:STAbuldat,Y:INY:INY:INY:INY:CPY#(5*4):BNEloop:STAnobul:RTS 
�l.genbul LDAnobul:CMP#5:BEQnfire:LDX#0:.loop LDAbuldat,X:CMP#0:BEQybul:INX:INX:INX:INX:JMPloop:.nfire RTS
�.ybul LDAxc:STAbuldat,X:LDAyc:STAbuldat+1,X:LDAnpc:STAbuldat+2,X:STAstpos:LDAnpc+1:STAbuldat+3,X:STAstpos+1:INCnobul:LDY#0:LDA(stpos),Y:�#&10:STA(stpos),Y:RTS 
�.mvbul LDY#0:LDX#0:.loop LDAbuldat,X:BNEokbul:JMPnpbul:.okbul STAxc:LDAbuldat+1,X:STAyc:LDAbuldat+2,X:STAstpos:LDAbuldat+3,X:STAstpos+1:INCyc
��LDAstpos:STAtpos:LDAstpos+1:STAtpos+1:LDAstpos:�#7:CMP#4:BNEnjp3:CLC:LDAstpos:ADC#&38:STAtpos:LDAstpos+1:ADC#1:STAtpos+1:.njp3 CLC:LDAtpos:ADC#4:STAtpos:LDAtpos+1:ADC#0:STAtpos+1
&LDA(stpos),Y:�#&10:STA(stpos),Y   
:LDAyc:CMP#53:BCCoks:DECnobul:LDA#0:STAxc:JMPskip2:.oks
wLDAxc:CMPx:BEQposs:SEC:SBC#1:CMPx:BNEnposs:.poss LDAyc:CMPy:BCCnposs:SEC:SBC#2:CMPy:BCSnposs:LDA#1:STAfinish:.nposs
&"LDA(tpos),Y:�#&10:STA(tpos),Y 
0
.skip2
:LDAxc:STAbuldat,X
DELDAyc:STAbuldat+1,X:LDAtpos:STAbuldat+2,X:LDAtpos+1:STAbuldat+3,X
N
.npbul
X7INX:INX:INX:INX:CPX#(5*4):BEQeloop2:JMPloop:.eloop2
bRTS
lY.initgun LDY#0:.loop:LDA#0:STAgundat,Y:INY:INY:INY:INY:CPY#(5*4):BNEloop:STAnogun:RTS
vi.gengun LDAnogun:CMP#3:BEQnfr:LDX#0:.loop LDAgundat,X:CMP#0:BEQygun:INX:INX:INX:INX:JMPloop:.nfr RTS 
��.ygun LDAx:STAgundat,X:LDAy:STAgundat+1,X:LDAypos:STAgundat+2,X:STAstpos:LDAypos+1:STAgundat+3,X:STAstpos+1:INCnogun:LDY#0:LDA(stpos),Y:�#&01:STA(stpos),Y:LDX#snd � 256:LDY#snd � 256:JSRsound:RTS
��.mvgun LDY#0:LDX#0:.loop LDAgundat,X:BNEokgun:JMPnpgun:.okgun STAxc:LDAgundat+1,X:STAyc:LDAgundat+2,X:STAstpos:LDAgundat+3,X:STAstpos+1:DECyc
��LDAstpos:STAtpos:LDAstpos+1:STAtpos+1:LDAstpos:�#7:BNEnjp4:SEC:LDAstpos:SBC#&38:STAtpos:LDAstpos+1:SBC#1:STAtpos+1:.njp4 SEC:LDAtpos:SBC#4:STAtpos:LDAtpos+1:SBC#0:STAtpos+1
�#LDA(stpos),Y:�#&01:STA(stpos),Y
�:LDAyc:CMP#10:BCSokg:DECnogun:LDA#0:STAxc:JMPskip3:.okg
�"LDA(tpos),Y:�#&01:STA(tpos),Y 
�
.skip3
�LDAxc:STAgundat,X
�ELDAyc:STAgundat+1,X:LDAtpos:STAgundat+2,X:LDAtpos+1:STAgundat+3,X
�
.npgun
�7INX:INX:INX:INX:CPX#(5*4):BEQeloop3:JMPloop:.eloop3
�RTS
��.ascore SED:CLC:LDAscore:ADC#&10:STAscore:LDAscore+1:ADC#0:STAscore+1:LDAscore+2:ADC#0:STAscore+2:LDAscore+3:ADC#0:STAscore+3:CLD:JMPpscore
�.pscore LDA#31:JSR&FFEE:LDA#12:JSR&FFEE:LDA#30:JSR&FFEE:LDAscore+3:JSRpnum:LDAscore+2:JSRpnum:LDAscore+1:JSRpnum:LDAscore:JMPpnum
Y.pnum PHA:�#&F0:LSRA:LSRA:LSRA:LSRA:CLC:ADC#48:JSR&FFEE:PLA:�#&0F:CLC:ADC#48:JMP&FFEE
.nogun EQUB0
 +.y1 EQUB0:.y2 EQUB0:.x1 EQUB0:.x2 EQUB0
*.eor
4.sound LDA#7:JMP&FFF1
>!.snd EQUW1:EQUW2:EQUW10:EQUW1
H%.snd2 EQUW0:EQUW-15:EQUW100:EQUW1
R.typal EQUB0
\.flag EQUB0
f.score EQUD0
p.rnd EQUB0
z.cnt EQUB0
�.minh EQUB0
�.noal EQUB0
�.nobul EQUB0
�.finish EQUB0
�.alpass EQUB0:.alp2 EQUB0
�.buldat EQUS �5,"ABCC")
�.gundat EQUS �5,"ABCC")
�.aldat EQUS �6,"ABCCDE") 
�.pat1 EQUS �300," ")   
�]
��
��
���wave(W%,T%)
	�128:�28,3,27,16,4:�
	1�0,2:�box(3*64-8,1020-28*32,14*64+16,24*32+8)
	3�0,3:�box(3*64-16,1016-28*32,14*64+32,24*32+16)
	$3�0,0:�box(3*64-24,1012-28*32,14*64+48,24*32+24)
	."�prt(7,15,"Wave "+�(W%+1),1,2)
	8�=0:���>150:�
	B�decode(W%)
	L*?pat=pat1 � 256:pat?1=pat1 � 256:A%=T%
	V�inital
	`
�genal
	j�2:�128:�26:�pscore
	t
?typal=T%
	~*FX178,0,0
	�	�game
	�*FX178,255,0
	��
	���box(X,Y,XL,YL)
	�*�X,Y:�X+XL,Y:�X+XL,Y+YL:�X,Y+YL:�X,Y:�
	���chdata(N%)
	��26:�128:�3:�
	�.�prt(0,1,"Editing Wave "+�(N%+1)+" :",1,2)
	�#�prt(0,3,"Space to finish",2,1)
	�5�D%=7 � 33 �2:�prt(2,D%-2,�((D%-6)/2+65)+".",2,1)
	��prt(14,D%-2,"x",2,1)
	�B=D%?(data+N%*37)
@�5,D%-2);�dir(B);�16,D%-2);�"000"+�(D%?(data+N%*37+1)),3); 

�
�
�:*FX15
(OA$=�(� � 223):� A$>="A" � A$<="N" � �(-99):�(-99)  � flag=1:�DdJ � flag=0
2AO%=2*(�(A$)-65)+7:B%=O%?(data+N%*37):�130:�5,O%-2);�dir(B%);
<R�:A$=�(� � 223):I=�"LRUDF NA",A$):�I>0 � B%=B% � (2^(8-I)):�5,O%-2);�dir(B%);
F?� A$=�(13):O%?(data+N%*37)=B%:�128:�5,O%-2);�dir(B%);:�130
P2B%=O%?(data+N%*37+1):�16,O%-2);:B%=�rot(B%,3)
ZO%?(data+N%*37+1)=B%
d�flag=1
n�
xI�:�prt(0,1,"Starting xco (6-30)",2,1):�9,3);:X=�rot(?(data+N%*37),2)
��X>5 � X<31
��:�
�K�prt(0,1,"Starting yco (12-50)",2,1):�9,3);:Y=�rot(?(data+N%*37+1),2) 
�Y=(Y � &FE)
��Y>11 � Y<51
�m?(data+N%*37)=X:?(data+N%*37+1)=Y:S%=X*8+Y*&140/2+&5800:?(data+N%*37+2)=S% � 256:?(data+N%*37+3)=S% � 256
��:�
�o�prt(0,1,"Fire freq. (5-200)",2,1):�9,3);:F=�rot(205-?(data+N%*37+4),3):�F>4 � F<201:?(data+N%*37+4)=205-F
�p�:�:�prt(0,1,"Min fire ht (5-40)",2,1):�9,3);:F=�rot(45-?(data+N%*37+5),2):�F>4 � F<40:?(data+N%*37+5)=45-F
�k�:�:�prt(0,1,"No in wave (5-200)",2,1):�9,3);:F=�rot(?(data+N%*37+6),3):�F>4 � F<201:?(data+N%*37+6)=F
��
�ݤrot(F%,N%)
�F$=�"00000"+�F%,N%)
)XC=�:YC=�:� 130:�XC,YC);F$;:�:*FX15 
8A=�-48:�A>-1 � A<10 � F$=�F$,N%-1)+�(A):�XC,YC);F$;
�A=-35:�128:�XC,YC);F$;
"
=�(F$)
,ݤdir(A)
6	C$=""
@&�(A � 128) � C$=C$+"L" � C$=C$+" "
J%�(A � 64) � C$=C$+"R" � C$=C$+" "
T%�(A � 32) � C$=C$+"U" � C$=C$+" "
^%�(A � 16) � C$=C$+"D" � C$=C$+" "
h$�(A � 8) � C$=C$+"F" � C$=C$+" "
r$�(A � 2) � C$=C$+"N" � C$=C$+" "
|%�(A � 1) � C$=C$+"A" � C$=C$+" " 
�=C$
�
��save
�&�:�"Saving waves : Filename ..."f$
�%�"SAVE "+f$+" "+�~data+" +"+�~370
��
�
��load
�(�:�"Loading waves : Filename ..."f$ 
��"LOAD "+f$+" "+�~data
��
��� 79695A14,80C4F7B,E969A582,1032FED,F0C34330,E0F0F0F0,F09686C0,3070F0F0,F0961630,C0E0F0F0,F03C2CC0,70F0F0F0,34120508,8051234,C2840A01,10A84C2,341E0100,11E34,C2870800,887C2,4B4B0D09,1032543,4A4A0602,88448,43250301,90D4B4B,48840800
�K� 2064A4A,11442288,885566,22CC8822,228844,442288,881100,22880022,228844
��� 64B01406,403C2378,20036007,A201A002,801E1001,60041005,F400A,0,0,70220600,3727376D,6640B44,3A40126,3940484,3540514,40105,40004,40004,1E062805,26196AF0,120F1028,44035401,20036003,44036420,10035003,400050A,0,805DC00,53624010,5443723
��� B440146,2140254,10840294,2140294,1050254,40004,9A060004,60F00E06,503C2837,54015605,60168010,140B8416,3C,4000400,0,4E000400,70320607,46286C77,1260824,4240164,2240164,A440164,A440504,2140154,2884,C120C08,23056010,16051464,90141001
�� 44061408,A0062010,41E2407,0,4000400,608C000,F623010,24106328,1420540,14201440,1011880,0,0,0,7E090000,61000E08,14642269,10011208,A40F4406,1010D,4000400,0,4000400,32000000,F00E060A,5A285060,1420640,2101240,2101980,20101040,1E400F00
� 0,0,3A30F00A
�
00000000  0d 00 0a 10 eb 36 3a de  63 68 61 72 20 31 35 30  |.....6:.char 150|
00000010  0d 00 14 5f f2 64 61 74  61 3a f2 61 73 73 65 6d  |..._.data:.assem|
00000020  3a e2 32 2c 31 2c 32 2c  30 2c 2d 31 2c 32 2c 30  |:.2,1,2,0,-1,2,0|
00000030  2c 34 2c 31 32 36 2c 30  2c 30 2c 2d 31 32 36 2c  |,4,126,0,0,-126,|
00000040  31 32 36 2c 31 32 36 3a  ef 32 33 2c 32 32 34 2c  |126,126:.23,224,|
00000050  26 46 46 46 46 3b 26 46  46 46 46 3b 26 46 46 46  |&FFFF;&FFFF;&FFF|
00000060  46 3b 26 46 46 46 46 3b  3a 2a 46 58 32 32 39 0d  |F;&FFFF;:*FX229.|
00000070  00 1e 1c ee 85 20 e7 20  9f 3d 31 37 20 8c 20 e5  |..... . .=17 . .|
00000080  20 8d 54 68 40 20 8b 20  f6 3a e0 0d 00 28 16 eb  | .Th@ . .:...(..|
00000090  35 3a ef 32 33 3b 38 32  30 32 3b 30 3b 30 3b 30  |5:.23;8202;0;0;0|
000000a0  3b 0d 00 32 0f ef 31 39  2c 33 2c 34 3b 30 3b 30  |;..2..19,3,4;0;0|
000000b0  0d 00 3c cd f2 70 72 74  28 38 2c 31 2c 22 4d 65  |..<..prt(8,1,"Me|
000000c0  6e 75 22 2c 31 2c 32 29  3a f2 70 72 74 28 31 2c  |nu",1,2):.prt(1,|
000000d0  35 2c 22 31 2e 20 45 64  69 74 20 61 20 77 61 76  |5,"1. Edit a wav|
000000e0  65 22 2c 32 2c 31 29 3a  f2 70 72 74 28 31 2c 37  |e",2,1):.prt(1,7|
000000f0  2c 22 32 2e 20 53 61 76  65 20 61 20 77 61 76 65  |,"2. Save a wave|
00000100  22 2c 32 2c 31 29 3a f2  70 72 74 28 31 2c 39 2c  |",2,1):.prt(1,9,|
00000110  22 33 2e 20 4c 6f 61 64  20 61 20 77 61 76 65 22  |"3. Load a wave"|
00000120  2c 32 2c 31 29 3a f2 70  72 74 28 31 2c 31 31 2c  |,2,1):.prt(1,11,|
00000130  22 34 2e 20 50 6c 61 79  20 61 20 77 61 76 65 22  |"4. Play a wave"|
00000140  2c 32 2c 31 29 3a f2 70  72 74 28 31 2c 31 33 2c  |,2,1):.prt(1,13,|
00000150  22 35 2e 20 50 6c 61 79  20 66 72 6f 6d 20 73 74  |"5. Play from st|
00000160  61 72 74 22 2c 32 2c 31  29 3a f5 3a 41 3d a5 2d  |art",2,1):.:A=.-|
00000170  34 38 3a fd 41 3e 30 20  80 20 41 3c 36 0d 00 46  |48:.A>0 . A<6..F|
00000180  0e e7 41 3d 31 20 f2 65  64 69 74 0d 00 50 11 e7  |..A=1 .edit..P..|
00000190  41 3d 32 20 eb 36 3a f2  73 61 76 65 0d 00 5a 11  |A=2 .6:.save..Z.|
000001a0  e7 41 3d 33 20 eb 36 3a  f2 6c 6f 61 64 0d 00 64  |.A=3 .6:.load..d|
000001b0  11 e7 41 3d 34 20 f2 70  6c 77 61 76 65 20 0d 00  |..A=4 .plwave ..|
000001c0  6e 11 e7 41 3d 35 20 f2  70 6c 61 79 28 30 29 0d  |n..A=5 .play(0).|
000001d0  00 78 09 e5 8d 54 68 40  0d 00 82 0a dd f2 65 64  |.x...Th@......ed|
000001e0  69 74 0d 00 8c 60 db 3a  f2 70 72 74 28 30 2c 35  |it...`.:.prt(0,5|
000001f0  2c 22 45 64 69 74 20 3a  20 77 61 76 65 20 28 41  |,"Edit : wave (A|
00000200  2d 4a 29 3f 22 2c 31 2c  32 29 3a f5 3a 41 24 3d  |-J)?",1,2):.:A$=|
00000210  bd 28 a5 20 80 20 32 32  33 29 3a fd 41 24 3e 3d  |.(. . 223):.A$>=|
00000220  22 41 22 20 80 20 41 24  3c 22 4b 22 3a f2 63 68  |"A" . A$<"K":.ch|
00000230  64 61 74 61 28 97 28 41  24 29 2d 36 35 29 3a e1  |data(.(A$)-65):.|
00000240  20 20 0d 00 96 0c dd f2  70 6c 77 61 76 65 0d 00  |  ......plwave..|
00000250  a0 5d db 3a f2 70 72 74  28 30 2c 35 2c 22 50 6c  |.].:.prt(0,5,"Pl|
00000260  61 79 20 3a 20 77 61 76  65 20 28 41 2d 4a 29 3f  |ay : wave (A-J)?|
00000270  22 2c 31 2c 32 29 3a f5  3a 41 24 3d bd 28 a5 20  |",1,2):.:A$=.(. |
00000280  80 20 32 32 33 29 3a fd  41 24 3e 3d 22 41 22 20  |. 223):.A$>="A" |
00000290  80 20 41 24 3c 22 4b 22  3a f2 70 6c 61 79 28 97  |. A$<"K":.play(.|
000002a0  28 41 24 29 2d 36 35 29  3a e1 20 0d 00 aa 05 e0  |(A$)-65):. .....|
000002b0  0d 00 b4 11 dd f2 70 6c  61 79 28 57 41 56 45 25  |......play(WAVE%|
000002c0  29 0d 00 be 0c 21 73 63  6f 72 65 3d 30 0d 00 c8  |)....!score=0...|
000002d0  10 ef 32 36 3a fb 31 32  38 3a db 20 20 0d 00 d2  |..26:.128:.  ...|
000002e0  1d f2 70 72 74 28 30 2c  31 2c c4 32 30 2c bd 28  |..prt(0,1,.20,.(|
000002f0  32 32 34 29 29 2c 32 2c  33 29 0d 00 dc 1c f2 70  |224)),2,3).....p|
00000300  72 74 28 36 2c 31 2c 22  49 4e 56 41 44 45 52 53  |rt(6,1,"INVADERS|
00000310  22 2c 32 2c 31 29 0d 00  e6 2f f2 65 6f 72 28 33  |",2,1).../.eor(3|
00000320  2c 33 30 2c 30 29 3a f2  65 6f 72 28 36 2c 33 30  |,30,0):.eor(6,30|
00000330  2c 30 29 3a f2 65 6f 72  28 39 2c 33 30 2c 30 29  |,0):.eor(9,30,0)|
00000340  20 20 20 20 20 0d 00 f0  08 4c 25 3d 34 0d 00 fa  |     ....L%=4...|
00000350  08 5a 25 3d 31 0d 01 04  05 f5 0d 01 0e 15 f2 77  |.Z%=1..........w|
00000360  61 76 65 28 57 41 56 45  25 2c b3 28 36 29 29 0d  |ave(WAVE%,.(6)).|
00000370  01 18 62 e7 3f 66 69 6e  69 73 68 3d 31 20 8c 20  |..b.?finish=1 . |
00000380  d4 30 2c 2d 31 35 2c 31  30 30 2c 31 30 3a 4c 25  |.0,-15,100,10:L%|
00000390  3d 4c 25 2d 31 3a ef 31  39 2c 30 2c 31 3b 30 3b  |=L%-1:.19,0,1;0;|
000003a0  30 3a d1 3d 30 3a f5 20  fd 91 3e 31 30 3a ef 31  |0:.=0:. ..>10:.1|
000003b0  39 2c 30 3b 30 3b 30 3b  3a e7 4c 25 3e 30 20 8c  |9,0;0;0;:.L%>0 .|
000003c0  20 f2 65 6f 72 28 33 2a  4c 25 2c 33 30 2c 30 29  | .eor(3*L%,30,0)|
000003d0  20 0d 01 22 7e e7 21 73  63 6f 72 65 3e 26 35 30  | .."~.!score>&50|
000003e0  30 30 2a 5a 25 20 80 3f  66 69 6e 69 73 68 3d 30  |00*Z% .?finish=0|
000003f0  20 8c 20 5a 25 3d 5a 25  2b 31 3a e7 20 4c 25 3c  | . Z%=Z%+1:. L%<|
00000400  35 20 8c 20 4c 25 3d 4c  25 2b 31 3a f2 65 6f 72  |5 . L%=L%+1:.eor|
00000410  28 4c 25 2a 33 2d 33 2c  33 30 2c 30 29 3a 5a 25  |(L%*3-3,30,0):Z%|
00000420  3d 5a 25 2b 31 3a f2 70  72 74 28 34 2c 31 35 2c  |=Z%+1:.prt(4,15,|
00000430  22 41 20 42 6f 6e 75 73  20 4c 69 66 65 22 2c 31  |"A Bonus Life",1|
00000440  2c 32 29 3a d1 3d 30 3a  f5 fd 91 3e 31 30 30 0d  |,2):.=0:...>100.|
00000450  01 2c 24 e7 3f 66 69 6e  69 73 68 3d 30 20 8c 20  |.,$.?finish=0 . |
00000460  57 41 56 45 25 3d 28 57  41 56 45 25 2b 31 29 83  |WAVE%=(WAVE%+1).|
00000470  20 31 30 0d 01 36 09 fd  4c 25 3d 30 0d 01 40 09  | 10..6..L%=0..@.|
00000480  2a 46 58 31 35 0d 01 4a  3d fb 31 32 38 3a ef 32  |*FX15..J=.128:.2|
00000490  38 2c 33 2c 32 37 2c 31  36 2c 34 3a db 3a f2 70  |8,3,27,16,4:.:.p|
000004a0  72 74 28 34 2c 31 35 2c  22 50 72 65 73 73 20 41  |rt(4,15,"Press A|
000004b0  6e 79 20 4b 65 79 22 2c  32 2c 31 29 3a 2a 46 58  |ny Key",2,1):*FX|
000004c0  31 35 0d 01 54 09 f5 fd  a5 3a e1 0d 01 5e 0a dd  |15..T....:...^..|
000004d0  f2 64 61 74 61 0d 01 68  05 f7 0d 01 72 14 e3 20  |.data..h....r.. |
000004e0  58 25 3d 30 20 b8 20 31  34 33 20 88 20 34 0d 01  |X%=0 . 143 . 4..|
000004f0  7c 19 f3 61 24 3a 58 25  21 63 68 61 72 3d a0 28  ||..a$:X%!char=.(|
00000500  22 26 22 2b 61 24 29 0d  01 86 05 ed 0d 01 90 0d  |"&"+a$).........|
00000510  de 64 61 74 61 20 33 37  30 0d 01 9a 0a f7 20 8d  |.data 370..... .|
00000520  64 74 4b 0d 01 a4 2a e3  58 25 3d 30 20 b8 20 33  |dtK...*.X%=0 . 3|
00000530  37 31 20 88 34 3a f3 61  24 3a 58 25 21 64 61 74  |71 .4:.a$:X%!dat|
00000540  61 3d a0 28 22 26 22 2b  61 24 29 3a ed 0d 01 ae  |a=.("&"+a$):....|
00000550  05 e1 0d 01 b8 10 dd f2  64 65 63 6f 64 65 28 4e  |........decode(N|
00000560  25 29 0d 01 c2 93 70 74  72 3d 70 61 74 31 2b 37  |%)....ptr=pat1+7|
00000570  3a e3 58 25 3d 30 20 b8  20 36 3a 70 61 74 31 3f  |:.X%=0 . 6:pat1?|
00000580  58 25 3d 3f 28 64 61 74  61 2b 4e 25 2a 33 37 2b  |X%=?(data+N%*37+|
00000590  58 25 29 3a ed 3a e3 58  25 3d 30 20 b8 20 31 33  |X%):.:.X%=0 . 13|
000005a0  3a 61 63 74 3d 3f 28 64  61 74 61 2b 37 2b 58 25  |:act=?(data+7+X%|
000005b0  2a 32 2b 4e 25 2a 33 37  29 3a 6e 6f 3d 3f 28 64  |*2+N%*37):no=?(d|
000005c0  61 74 61 2b 38 2b 58 25  2a 32 2b 4e 25 2a 33 37  |ata+8+X%*2+N%*37|
000005d0  29 3a e3 59 25 3d 31 20  b8 20 6e 6f 3a 3f 70 74  |):.Y%=1 . no:?pt|
000005e0  72 3d 61 63 74 3a 70 74  72 3d 70 74 72 2b 31 3a  |r=act:ptr=ptr+1:|
000005f0  ed 3a ed 3a e1 0d 01 cc  05 e1 0d 01 d6 17 dd f2  |.:.:............|
00000600  70 72 74 28 58 2c 59 2c  4d 24 2c 41 25 2c 42 25  |prt(X,Y,M$,A%,B%|
00000610  29 0d 01 e0 ab 58 25 3d  58 2a 36 34 3a 59 25 3d  |)....X%=X*64:Y%=|
00000620  31 30 32 34 2d 59 2a 33  32 3a e6 30 2c 41 25 3a  |1024-Y*32:.0,A%:|
00000630  ef 35 3a ec 58 25 2d 38  2c 59 25 2d 34 3a f1 3b  |.5:.X%-8,Y%-4:.;|
00000640  4d 24 3a ec 58 25 2d 38  2c 59 25 2b 34 3a f1 3b  |M$:.X%-8,Y%+4:.;|
00000650  4d 24 3a ec 58 25 2c 59  25 2b 34 3a f1 3b 4d 24  |M$:.X%,Y%+4:.;M$|
00000660  3a ec 58 25 2c 59 25 2d  34 3a f1 3b 4d 24 3a ec  |:.X%,Y%-4:.;M$:.|
00000670  58 25 2d 38 2c 59 25 3a  f1 3b 4d 24 3a ec 58 25  |X%-8,Y%:.;M$:.X%|
00000680  2b 38 2c 59 25 3a f1 3b  4d 24 3a ec 58 25 2b 38  |+8,Y%:.;M$:.X%+8|
00000690  2c 59 25 2b 34 3a f1 3b  4d 24 3a ec 58 25 2b 38  |,Y%+4:.;M$:.X%+8|
000006a0  2c 59 25 2d 34 3a f1 3b  4d 24 3a e6 30 2c 42 25  |,Y%-4:.;M$:.0,B%|
000006b0  3a ec 58 25 2c 59 25 3a  f1 3b 4d 24 0d 01 ea 08  |:.X%,Y%:.;M$....|
000006c0  ef 34 3a e1 0d 01 f4 13  dd f2 65 6f 72 28 58 25  |.4:.......eor(X%|
000006d0  2c 59 25 2c 43 25 29 0d  01 fe 6f 53 25 3d 58 25  |,Y%,C%)...oS%=X%|
000006e0  2a 38 2b 26 31 34 30 2a  59 25 2b 26 35 38 30 30  |*8+&140*Y%+&5800|
000006f0  3a 44 25 3d 63 68 61 72  2b 43 25 2a 31 36 3a 3f  |:D%=char+C%*16:?|
00000700  63 70 6f 73 3d 44 25 20  83 20 32 35 36 3a 63 70  |cpos=D% . 256:cp|
00000710  6f 73 3f 31 3d 44 25 20  81 20 32 35 36 3a 3f 73  |os?1=D% . 256:?s|
00000720  70 6f 73 3d 53 25 20 83  20 32 35 36 3a 73 70 6f  |pos=S% . 256:spo|
00000730  73 3f 31 3d 53 25 20 81  20 32 35 36 3a d6 70 72  |s?1=S% . 256:.pr|
00000740  69 6e 74 3a e1 20 0d 02  08 0b dd f2 61 73 73 65  |int:. ......asse|
00000750  6d 0d 02 12 15 73 70 6f  73 3d 26 37 30 3a 63 70  |m....spos=&70:cp|
00000760  6f 73 3d 26 37 32 0d 02  1c 1e 74 70 6f 73 3d 26  |os=&72....tpos=&|
00000770  37 34 3a 6e 70 6f 73 3d  26 37 37 3a 79 70 6f 73  |74:npos=&77:ypos|
00000780  3d 26 37 39 0d 02 26 0f  78 3d 26 37 42 3a 79 3d  |=&79..&.x=&7B:y=|
00000790  26 37 43 0d 02 30 15 70  61 74 3d 26 37 45 3a 73  |&7C..0.pat=&7E:s|
000007a0  74 70 6f 73 3d 26 38 30  0d 02 3a 2a 58 25 3d 32  |tpos=&80..:*X%=2|
000007b0  30 3a 59 25 3d 32 35 2a  32 3a 53 25 3d 26 35 38  |0:Y%=25*2:S%=&58|
000007c0  30 30 2b 58 25 2a 38 2b  59 25 2f 32 2a 26 31 34  |00+X%*8+Y%/2*&14|
000007d0  30 20 0d 02 44 0d de 20  51 25 20 32 31 31 35 0d  |0 ..D.. Q% 2115.|
000007e0  02 4e 10 e3 49 3d 30 20  b8 20 32 20 88 20 32 0d  |.N..I=0 . 2 . 2.|
000007f0  02 58 09 50 25 3d 51 25  0d 02 62 09 5b 4f 50 54  |.X.P%=Q%..b.[OPT|
00000800  49 0d 02 6c 0a 2e 70 72  69 6e 74 0d 02 76 07 53  |I..l..print..v.S|
00000810  45 49 0d 02 80 27 4c 44  41 73 70 6f 73 3a 53 54  |EI...'LDAspos:ST|
00000820  41 74 70 6f 73 3a 4c 44  41 73 70 6f 73 2b 31 3a  |Atpos:LDAspos+1:|
00000830  53 54 41 74 70 6f 73 2b  31 0d 02 8a 25 4c 44 59  |STAtpos+1...%LDY|
00000840  23 30 3a 4c 44 58 23 30  3a 4c 44 41 23 32 3a 53  |#0:LDX#0:LDA#2:S|
00000850  54 41 74 70 6f 73 2b 32  3a 2e 6c 6f 6f 70 0d 02  |TAtpos+2:.loop..|
00000860  94 25 4c 44 41 28 63 70  6f 73 29 2c 59 3a 82 28  |.%LDA(cpos),Y:.(|
00000870  73 70 6f 73 29 2c 59 3a  53 54 41 28 73 70 6f 73  |spos),Y:STA(spos|
00000880  29 2c 59 0d 02 9e 1f 49  4e 43 63 70 6f 73 3a 42  |),Y....INCcpos:B|
00000890  4e 45 6e 31 3a 49 4e 43  63 70 6f 73 2b 31 3a 2e  |NEn1:INCcpos+1:.|
000008a0  6e 31 0d 02 a8 1b 4c 44  41 73 70 6f 73 3a 80 23  |n1....LDAspos:.#|
000008b0  37 3a 43 4d 50 23 37 3a  42 4e 45 6e 37 0d 02 b2  |7:CMP#7:BNEn7...|
000008c0  1f 4c 44 41 73 70 6f 73  3a 43 4c 43 3a 41 44 43  |.LDAspos:CLC:ADC|
000008d0  23 26 33 38 3a 53 54 41  73 70 6f 73 0d 02 bc 21  |#&38:STAspos...!|
000008e0  4c 44 41 73 70 6f 73 2b  31 3a 41 44 43 23 31 3a  |LDAspos+1:ADC#1:|
000008f0  53 54 41 73 70 6f 73 2b  31 3a 2e 6e 37 0d 02 c6  |STAspos+1:.n7...|
00000900  1f 49 4e 43 73 70 6f 73  3a 42 4e 45 6e 32 3a 49  |.INCspos:BNEn2:I|
00000910  4e 43 73 70 6f 73 2b 31  3a 2e 6e 32 0d 02 d0 15  |NCspos+1:.n2....|
00000920  49 4e 58 3a 43 50 58 23  38 3a 42 4e 45 6c 6f 6f  |INX:CPX#8:BNEloo|
00000930  70 0d 02 da 1d 43 4c 43  3a 4c 44 41 74 70 6f 73  |p....CLC:LDAtpos|
00000940  3a 41 44 43 23 38 3a 53  54 41 73 70 6f 73 0d 02  |:ADC#8:STAspos..|
00000950  e4 1d 4c 44 41 74 70 6f  73 2b 31 3a 41 44 43 23  |..LDAtpos+1:ADC#|
00000960  30 3a 53 54 41 73 70 6f  73 2b 31 0d 02 ee 09 4c  |0:STAspos+1....L|
00000970  44 58 23 30 0d 02 f8 15  44 45 43 74 70 6f 73 2b  |DX#0....DECtpos+|
00000980  32 3a 42 4e 45 6c 6f 6f  70 0d 03 02 07 43 4c 49  |2:BNEloop....CLI|
00000990  0d 03 0c 07 52 54 53 0d  03 16 2a 2e 6b 20 4c 44  |....RTS...*.k LD|
000009a0  59 23 26 46 46 3a 4c 44  41 23 31 32 39 3a 4a 53  |Y#&FF:LDA#129:JS|
000009b0  52 26 46 46 46 34 3a 43  50 59 23 30 3a 52 54 53  |R&FFF4:CPY#0:RTS|
000009c0  20 0d 03 20 09 2e 6d 6f  76 65 0d 03 2a 61 4c 44  | .. ..move..*aLD|
000009d0  41 23 63 68 61 72 20 83  20 32 35 36 3a 53 54 41  |A#char . 256:STA|
000009e0  63 70 6f 73 3a 4c 44 41  23 63 68 61 72 20 81 20  |cpos:LDA#char . |
000009f0  32 35 36 3a 53 54 41 63  70 6f 73 2b 31 3a 4c 44  |256:STAcpos+1:LD|
00000a00  41 79 70 6f 73 3a 53 54  41 73 70 6f 73 3a 4c 44  |Aypos:STAspos:LD|
00000a10  41 79 70 6f 73 2b 31 3a  53 54 41 73 70 6f 73 2b  |Aypos+1:STAspos+|
00000a20  31 3a 4a 53 52 70 72 69  6e 74 20 0d 03 34 72 4c  |1:JSRprint ..4rL|
00000a30  44 41 23 63 68 61 72 20  83 20 32 35 36 3a 53 54  |DA#char . 256:ST|
00000a40  41 63 70 6f 73 3a 4c 44  41 23 63 68 61 72 20 81  |Acpos:LDA#char .|
00000a50  20 32 35 36 3a 53 54 41  63 70 6f 73 2b 31 3a 4c  | 256:STAcpos+1:L|
00000a60  44 41 6e 70 6f 73 3a 53  54 41 73 70 6f 73 3a 53  |DAnpos:STAspos:S|
00000a70  54 41 79 70 6f 73 3a 4c  44 41 6e 70 6f 73 2b 31  |TAypos:LDAnpos+1|
00000a80  3a 53 54 41 73 70 6f 73  2b 31 3a 53 54 41 79 70  |:STAspos+1:STAyp|
00000a90  6f 73 2b 31 3a 4a 53 52  70 72 69 6e 74 0d 03 3e  |os+1:JSRprint..>|
00000aa0  07 52 54 53 0d 03 48 09  2e 6b 65 79 73 0d 03 52  |.RTS..H..keys..R|
00000ab0  35 4c 44 58 23 28 2d 37  34 20 80 20 26 46 46 29  |5LDX#(-74 . &FF)|
00000ac0  3a 4a 53 52 6b 3a 42 45  51 6e 73 68 6f 6f 74 3a  |:JSRk:BEQnshoot:|
00000ad0  4a 53 52 67 65 6e 67 75  6e 3a 2e 6e 73 68 6f 6f  |JSRgengun:.nshoo|
00000ae0  74 20 0d 03 5c 38 4c 44  58 23 28 2d 36 37 20 80  |t ..\8LDX#(-67 .|
00000af0  20 26 46 46 29 3a 4a 53  52 6b 3a 42 45 51 6e 72  | &FF):JSRk:BEQnr|
00000b00  69 67 68 74 3a 4c 44 41  78 3a 43 4d 50 23 33 32  |ight:LDAx:CMP#32|
00000b10  3a 42 45 51 6e 72 69 67  68 74 0d 03 66 3f 43 4c  |:BEQnright..f?CL|
00000b20  43 3a 4c 44 41 79 70 6f  73 3a 41 44 43 23 38 3a  |C:LDAypos:ADC#8:|
00000b30  53 54 41 6e 70 6f 73 3a  4c 44 41 79 70 6f 73 2b  |STAnpos:LDAypos+|
00000b40  31 3a 41 44 43 23 30 3a  53 54 41 6e 70 6f 73 2b  |1:ADC#0:STAnpos+|
00000b50  31 3a 4a 53 52 6d 6f 76  65 0d 03 70 14 49 4e 43  |1:JSRmove..p.INC|
00000b60  78 3a 52 54 53 3a 2e 6e  72 69 67 68 74 0d 03 7a  |x:RTS:.nright..z|
00000b70  36 4c 44 58 23 28 2d 39  38 20 80 20 26 46 46 29  |6LDX#(-98 . &FF)|
00000b80  3a 4a 53 52 6b 3a 42 45  51 6e 6c 65 66 74 3a 4c  |:JSRk:BEQnleft:L|
00000b90  44 41 78 3a 43 4d 50 23  36 3a 42 45 51 6e 6c 65  |DAx:CMP#6:BEQnle|
00000ba0  66 74 20 0d 03 84 3f 53  45 43 3a 4c 44 41 79 70  |ft ...?SEC:LDAyp|
00000bb0  6f 73 3a 53 42 43 23 38  3a 53 54 41 6e 70 6f 73  |os:SBC#8:STAnpos|
00000bc0  3a 4c 44 41 79 70 6f 73  2b 31 3a 53 42 43 23 30  |:LDAypos+1:SBC#0|
00000bd0  3a 53 54 41 6e 70 6f 73  2b 31 3a 4a 53 52 6d 6f  |:STAnpos+1:JSRmo|
00000be0  76 65 0d 03 8e 13 44 45  43 78 3a 52 54 53 3a 2e  |ve....DECx:RTS:.|
00000bf0  6e 6c 65 66 74 0d 03 98  07 52 54 53 0d 03 a2 09  |nleft....RTS....|
00000c00  2e 69 6e 69 74 0d 03 ac  7a 4c 44 41 23 53 25 20  |.init...zLDA#S% |
00000c10  83 20 32 35 36 3a 53 54  41 79 70 6f 73 3a 53 54  |. 256:STAypos:ST|
00000c20  41 73 70 6f 73 3a 4c 44  41 23 53 25 20 81 20 32  |Aspos:LDA#S% . 2|
00000c30  35 36 3a 53 54 41 79 70  6f 73 2b 31 3a 53 54 41  |56:STAypos+1:STA|
00000c40  73 70 6f 73 2b 31 3a 4c  44 41 23 63 68 61 72 20  |spos+1:LDA#char |
00000c50  83 20 32 35 36 3a 53 54  41 63 70 6f 73 3a 4c 44  |. 256:STAcpos:LD|
00000c60  41 23 63 68 61 72 20 81  20 32 35 36 3a 53 54 41  |A#char . 256:STA|
00000c70  63 70 6f 73 2b 31 3a 4a  53 52 70 72 69 6e 74 0d  |cpos+1:JSRprint.|
00000c80  03 b6 1b 4c 44 41 23 58  25 3a 53 54 41 78 3a 4c  |...LDA#X%:STAx:L|
00000c90  44 41 23 59 25 3a 53 54  41 79 0d 03 c0 0e 4a 53  |DA#Y%:STAy....JS|
00000ca0  52 69 6e 69 74 62 75 6c  0d 03 ca 0e 4a 53 52 69  |Rinitbul....JSRi|
00000cb0  6e 69 74 67 75 6e 0d 03  d4 13 4c 44 41 23 30 3a  |nitgun....LDA#0:|
00000cc0  53 54 41 66 69 6e 69 73  68 0d 03 de 07 52 54 53  |STAfinish....RTS|
00000cd0  0d 03 e8 09 2e 67 61 6d  65 0d 03 f2 0b 4a 53 52  |.....game....JSR|
00000ce0  69 6e 69 74 0d 03 fc 0a  2e 6d 6c 6f 6f 70 0d 04  |init.....mloop..|
00000cf0  06 23 4c 44 41 26 32 34  30 3a 2e 66 72 61 6d 65  |.#LDA&240:.frame|
00000d00  20 43 4d 50 26 32 34 30  3a 42 45 51 66 72 61 6d  | CMP&240:BEQfram|
00000d10  65 0d 04 10 0b 4a 53 52  6d 76 61 6c 0d 04 1a 0b  |e....JSRmval....|
00000d20  4a 53 52 6b 65 79 73 0d  04 24 0c 4a 53 52 6d 76  |JSRkeys..$.JSRmv|
00000d30  62 75 6c 0d 04 2e 0c 4a  53 52 6d 76 67 75 6e 0d  |bul....JSRmvgun.|
00000d40  04 38 2b 4c 44 41 6e 6f  61 6c 3a 42 4e 45 66 69  |.8+LDAnoal:BNEfi|
00000d50  6e 65 3a 4c 44 41 74 79  70 61 6c 3a 4a 53 52 67  |ne:LDAtypal:JSRg|
00000d60  65 6e 61 6c 3a 2e 66 69  6e 65 0d 04 42 15 4c 44  |enal:.fine..B.LD|
00000d70  41 66 69 6e 69 73 68 3a  42 4e 45 71 75 69 74 0d  |Afinish:BNEquit.|
00000d80  04 4c 13 4c 44 41 61 6c  70 32 3a 42 45 51 71 75  |.L.LDAalp2:BEQqu|
00000d90  69 74 0d 04 56 22 4c 44  58 23 28 2d 31 31 33 20  |it..V"LDX#(-113 |
00000da0  80 20 26 46 46 29 3a 4a  53 52 6b 3a 42 45 51 6d  |. &FF):JSRk:BEQm|
00000db0  6c 6f 6f 70 0d 04 60 09  2e 71 75 69 74 0d 04 6a  |loop..`..quit..j|
00000dc0  07 52 54 53 0d 04 74 2b  2e 67 65 6e 61 6c 20 53  |.RTS..t+.genal S|
00000dd0  54 41 74 79 70 65 3a 4c  44 41 6e 6f 61 6c 3a 43  |TAtype:LDAnoal:C|
00000de0  4d 50 23 35 3a 42 45 51  6e 6f 6d 6f 72 65 20 0d  |MP#5:BEQnomore .|
00000df0  04 7e 21 4c 44 41 61 6c  70 61 73 73 3a 42 45 51  |.~!LDAalpass:BEQ|
00000e00  6e 6f 6d 6f 72 65 3a 44  45 43 61 6c 70 61 73 73  |nomore:DECalpass|
00000e10  0d 04 88 0f 4c 44 59 23  30 3a 2e 6c 6f 6f 70 0d  |....LDY#0:.loop.|
00000e20  04 92 1e 4c 44 41 61 6c  64 61 74 2c 59 3a 43 4d  |...LDAaldat,Y:CM|
00000e30  50 23 30 3a 42 45 51 66  6e 64 73 70 63 0d 04 9c  |P#0:BEQfndspc...|
00000e40  1d 43 4c 43 3a 54 59 41  3a 41 44 43 23 36 3a 54  |.CLC:TYA:ADC#6:T|
00000e50  41 59 3a 4a 4d 50 6c 6f  6f 70 0d 04 a6 13 2e 66  |AY:JMPloop.....f|
00000e60  6e 64 73 70 63 20 49 4e  43 6e 6f 61 6c 0d 04 b0  |ndspc INCnoal...|
00000e70  27 54 59 41 3a 54 41 58  3a 4c 44 59 23 30 3a 4c  |'TYA:TAX:LDY#0:L|
00000e80  44 41 28 70 61 74 29 2c  59 3a 53 54 41 61 6c 64  |DA(pat),Y:STAald|
00000e90  61 74 2c 58 0d 04 ba 69  49 4e 59 3a 4c 44 41 28  |at,X...iINY:LDA(|
00000ea0  70 61 74 29 2c 59 3a 53  54 41 61 6c 64 61 74 2b  |pat),Y:STAaldat+|
00000eb0  31 2c 58 3a 49 4e 59 3a  4c 44 41 28 70 61 74 29  |1,X:INY:LDA(pat)|
00000ec0  2c 59 3a 53 54 41 61 6c  64 61 74 2b 32 2c 58 3a  |,Y:STAaldat+2,X:|
00000ed0  53 54 41 73 70 6f 73 3a  49 4e 59 3a 4c 44 41 28  |STAspos:INY:LDA(|
00000ee0  70 61 74 29 2c 59 3a 53  54 41 61 6c 64 61 74 2b  |pat),Y:STAaldat+|
00000ef0  33 2c 58 3a 53 54 41 73  70 6f 73 2b 31 0d 04 c4  |3,X:STAspos+1...|
00000f00  2f 49 4e 59 3a 4c 44 41  23 30 3a 53 54 41 61 6c  |/INY:LDA#0:STAal|
00000f10  64 61 74 2b 34 2c 58 3a  4c 44 41 74 79 70 65 3a  |dat+4,X:LDAtype:|
00000f20  53 54 41 61 6c 64 61 74  2b 35 2c 58 0d 04 ce 51  |STAaldat+5,X...Q|
00000f30  41 53 4c 41 3a 41 53 4c  41 3a 41 53 4c 41 3a 41  |ASLA:ASLA:ASLA:A|
00000f40  53 4c 41 3a 43 4c 43 3a  41 44 43 23 63 68 61 72  |SLA:CLC:ADC#char|
00000f50  20 83 20 32 35 36 3a 53  54 41 63 70 6f 73 3a 4c  | . 256:STAcpos:L|
00000f60  44 41 23 63 68 61 72 20  81 20 32 35 36 3a 41 44  |DA#char . 256:AD|
00000f70  43 23 30 3a 53 54 41 63  70 6f 73 2b 31 0d 04 d8  |C#0:STAcpos+1...|
00000f80  0c 4a 53 52 70 72 69 6e  74 0d 04 e2 0b 2e 6e 6f  |.JSRprint.....no|
00000f90  6d 6f 72 65 0d 04 ec 07  52 54 53 0d 04 f6 6f 2e  |more....RTS...o.|
00000fa0  78 63 20 45 51 55 42 30  3a 2e 79 63 20 45 51 55  |xc EQUB0:.yc EQU|
00000fb0  42 30 3a 2e 70 63 20 45  51 55 57 30 3a 2e 70 70  |B0:.pc EQUW0:.pp|
00000fc0  20 45 51 55 42 30 3a 2e  63 63 20 45 51 55 42 30  | EQUB0:.cc EQUB0|
00000fd0  3a 2e 61 74 79 70 65 20  45 51 55 57 30 3a 2e 73  |:.atype EQUW0:.s|
00000fe0  74 78 20 45 51 55 42 30  3a 2e 73 74 79 20 45 51  |tx EQUB0:.sty EQ|
00000ff0  55 42 30 3a 2e 6e 70 63  20 45 51 55 57 30 3a 2e  |UB0:.npc EQUW0:.|
00001000  74 79 70 65 20 45 51 55  42 30 0d 05 00 0b 2e 69  |type EQUB0.....i|
00001010  6e 69 74 61 6c 0d 05 0a  1b 4c 44 59 23 34 3a 4c  |nital....LDY#4:L|
00001020  44 41 28 70 61 74 29 2c  59 3a 53 54 41 72 6e 64  |DA(pat),Y:STArnd|
00001030  0d 05 14 1a 49 4e 59 3a  4c 44 41 28 70 61 74 29  |....INY:LDA(pat)|
00001040  2c 59 3a 53 54 41 6d 69  6e 68 0d 05 1e 24 49 4e  |,Y:STAminh...$IN|
00001050  59 3a 4c 44 41 28 70 61  74 29 2c 59 3a 53 54 41  |Y:LDA(pat),Y:STA|
00001060  61 6c 70 61 73 73 3a 53  54 41 61 6c 70 32 0d 05  |alpass:STAalp2..|
00001070  28 11 4c 44 41 23 30 3a  53 54 41 6e 6f 61 6c 0d  |(.LDA#0:STAnoal.|
00001080  05 32 0a 53 54 41 63 6e  74 0d 05 3c 0b 53 54 41  |.2.STAcnt..<.STA|
00001090  26 32 34 30 0d 05 46 10  4c 44 59 23 30 3a 2e 6c  |&240..F.LDY#0:.l|
000010a0  6f 6f 70 20 0d 05 50 3c  4c 44 41 23 30 3a 53 54  |oop ..P<LDA#0:ST|
000010b0  41 61 6c 64 61 74 2c 59  3a 43 4c 43 3a 54 59 41  |Aaldat,Y:CLC:TYA|
000010c0  3a 41 44 43 23 36 3a 54  41 59 3a 43 50 59 23 28  |:ADC#6:TAY:CPY#(|
000010d0  36 2a 36 29 3a 42 4e 45  6c 6f 6f 70 3a 52 54 53  |6*6):BNEloop:RTS|
000010e0  0d 05 5a 09 2e 6d 76 61  6c 0d 05 64 0f 4c 44 58  |..Z..mval..d.LDX|
000010f0  23 30 3a 2e 6c 6f 6f 70  0d 05 6e 27 4c 44 41 61  |#0:.loop..n'LDAa|
00001100  6c 64 61 74 2c 58 3a 42  4e 45 79 6d 6f 76 65 3a  |ldat,X:BNEymove:|
00001110  4a 4d 50 6e 6d 6f 76 65  3a 2e 79 6d 6f 76 65 0d  |JMPnmove:.ymove.|
00001120  05 78 6a 53 54 41 78 63  3a 4c 44 41 61 6c 64 61  |.xjSTAxc:LDAalda|
00001130  74 2b 31 2c 58 3a 53 54  41 79 63 3a 4c 44 41 61  |t+1,X:STAyc:LDAa|
00001140  6c 64 61 74 2b 32 2c 58  3a 53 54 41 70 63 3a 4c  |ldat+2,X:STApc:L|
00001150  44 41 61 6c 64 61 74 2b  33 2c 58 3a 53 54 41 70  |DAaldat+3,X:STAp|
00001160  63 2b 31 3a 4c 44 41 61  6c 64 61 74 2b 34 2c 58  |c+1:LDAaldat+4,X|
00001170  3a 53 54 41 70 70 3a 4c  44 41 61 6c 64 61 74 2b  |:STApp:LDAaldat+|
00001180  35 2c 58 3a 53 54 41 63  63 0d 05 82 54 41 53 4c  |5,X:STAcc...TASL|
00001190  41 3a 41 53 4c 41 3a 41  53 4c 41 3a 41 53 4c 41  |A:ASLA:ASLA:ASLA|
000011a0  3a 43 4c 43 3a 41 44 43  23 63 68 61 72 20 83 20  |:CLC:ADC#char . |
000011b0  32 35 36 3a 53 54 41 61  74 79 70 65 3a 4c 44 41  |256:STAatype:LDA|
000011c0  23 63 68 61 72 20 81 20  32 35 36 3a 41 44 43 23  |#char . 256:ADC#|
000011d0  30 3a 53 54 41 61 74 79  70 65 2b 31 20 0d 05 8c  |0:STAatype+1 ...|
000011e0  21 4c 44 41 70 63 3a 53  54 41 6e 70 63 3a 4c 44  |!LDApc:STAnpc:LD|
000011f0  41 70 63 2b 31 3a 53 54  41 6e 70 63 2b 31 0d 05  |Apc+1:STAnpc+1..|
00001200  96 47 4c 44 41 70 70 3a  43 4c 43 3a 41 44 43 23  |.GLDApp:CLC:ADC#|
00001210  37 3a 54 41 59 3a 4c 44  41 63 63 3a 43 4d 50 23  |7:TAY:LDAcc:CMP#|
00001220  37 3a 42 43 43 73 6b 69  70 37 3a 4a 4d 50 73 6b  |7:BCCskip7:JMPsk|
00001230  69 70 36 3a 2e 73 6b 69  70 37 20 4c 44 41 28 70  |ip6:.skip7 LDA(p|
00001240  61 74 29 2c 59 0d 05 a0  4d 80 23 31 32 38 3a 42  |at),Y...M.#128:B|
00001250  45 51 6e 6d 76 6c 3a 53  45 43 3a 4c 44 41 6e 70  |EQnmvl:SEC:LDAnp|
00001260  63 3a 53 42 43 23 38 3a  53 54 41 6e 70 63 3a 4c  |c:SBC#8:STAnpc:L|
00001270  44 41 6e 70 63 2b 31 3a  53 42 43 23 30 3a 53 54  |DAnpc+1:SBC#0:ST|
00001280  41 6e 70 63 2b 31 3a 44  45 43 78 63 3a 2e 6e 6d  |Anpc+1:DECxc:.nm|
00001290  76 6c 0d 05 aa 58 4c 44  41 28 70 61 74 29 2c 59  |vl...XLDA(pat),Y|
000012a0  3a 80 23 36 34 3a 42 45  51 6e 6d 76 72 3a 43 4c  |:.#64:BEQnmvr:CL|
000012b0  43 3a 4c 44 41 6e 70 63  3a 41 44 43 23 38 3a 53  |C:LDAnpc:ADC#8:S|
000012c0  54 41 6e 70 63 3a 4c 44  41 6e 70 63 2b 31 3a 41  |TAnpc:LDAnpc+1:A|
000012d0  44 43 23 30 3a 53 54 41  6e 70 63 2b 31 3a 49 4e  |DC#0:STAnpc+1:IN|
000012e0  43 78 63 3a 2e 6e 6d 76  72 20 0d 05 b4 a5 4c 44  |Cxc:.nmvr ....LD|
000012f0  41 28 70 61 74 29 2c 59  3a 80 23 31 36 3a 42 45  |A(pat),Y:.#16:BE|
00001300  51 6e 6d 76 64 3a 4c 44  41 70 63 3a 80 23 37 3a  |Qnmvd:LDApc:.#7:|
00001310  43 4d 50 23 34 3a 42 4e  45 6e 6a 70 3a 43 4c 43  |CMP#4:BNEnjp:CLC|
00001320  3a 4c 44 41 6e 70 63 3a  41 44 43 23 26 33 38 3a  |:LDAnpc:ADC#&38:|
00001330  53 54 41 6e 70 63 3a 4c  44 41 6e 70 63 2b 31 3a  |STAnpc:LDAnpc+1:|
00001340  41 44 43 23 31 3a 53 54  41 6e 70 63 2b 31 3a 2e  |ADC#1:STAnpc+1:.|
00001350  6e 6a 70 20 43 4c 43 3a  4c 44 41 6e 70 63 3a 41  |njp CLC:LDAnpc:A|
00001360  44 43 23 34 3a 53 54 41  6e 70 63 3a 4c 44 41 6e  |DC#4:STAnpc:LDAn|
00001370  70 63 2b 31 3a 41 44 43  23 30 3a 53 54 41 6e 70  |pc+1:ADC#0:STAnp|
00001380  63 2b 31 3a 49 4e 43 79  63 3a 2e 6e 6d 76 64 0d  |c+1:INCyc:.nmvd.|
00001390  05 be a1 4c 44 41 28 70  61 74 29 2c 59 3a 80 23  |...LDA(pat),Y:.#|
000013a0  33 32 3a 42 45 51 6e 6d  76 75 3a 4c 44 41 70 63  |32:BEQnmvu:LDApc|
000013b0  3a 80 23 37 3a 42 4e 45  6e 6a 70 32 3a 53 45 43  |:.#7:BNEnjp2:SEC|
000013c0  3a 4c 44 41 6e 70 63 3a  53 42 43 23 26 33 38 3a  |:LDAnpc:SBC#&38:|
000013d0  53 54 41 6e 70 63 3a 4c  44 41 6e 70 63 2b 31 3a  |STAnpc:LDAnpc+1:|
000013e0  53 42 43 23 31 3a 53 54  41 6e 70 63 2b 31 3a 2e  |SBC#1:STAnpc+1:.|
000013f0  6e 6a 70 32 20 53 45 43  3a 4c 44 41 6e 70 63 3a  |njp2 SEC:LDAnpc:|
00001400  53 42 43 23 34 3a 53 54  41 6e 70 63 3a 4c 44 41  |SBC#4:STAnpc:LDA|
00001410  6e 70 63 2b 31 3a 53 42  43 23 30 3a 53 54 41 6e  |npc+1:SBC#0:STAn|
00001420  70 63 2b 31 3a 44 45 43  79 63 3a 2e 6e 6d 76 75  |pc+1:DECyc:.nmvu|
00001430  0d 05 c8 70 49 4e 43 63  6e 74 3a 4c 44 41 63 6e  |...pINCcnt:LDAcn|
00001440  74 3a 43 4d 50 72 6e 64  3a 42 4e 45 6e 6d 66 72  |t:CMPrnd:BNEnmfr|
00001450  3a 4c 44 41 23 30 3a 53  54 41 63 6e 74 3a 4c 44  |:LDA#0:STAcnt:LD|
00001460  41 79 63 3a 43 4d 50 6d  69 6e 68 3a 42 43 53 6e  |Ayc:CMPminh:BCSn|
00001470  6d 66 72 3a 53 54 58 73  74 78 3a 53 54 59 73 74  |mfr:STXstx:STYst|
00001480  79 3a 4a 53 52 67 65 6e  62 75 6c 3a 4c 44 58 73  |y:JSRgenbul:LDXs|
00001490  74 78 3a 4c 44 59 73 74  79 3a 2e 6e 6d 66 72 20  |tx:LDYsty:.nmfr |
000014a0  0d 05 d2 4b 4c 44 41 28  70 61 74 29 2c 59 3a 80  |...KLDA(pat),Y:.|
000014b0  23 32 3a 42 45 51 6e 67  65 6e 3a 53 54 59 73 74  |#2:BEQngen:STYst|
000014c0  79 3a 53 54 58 73 74 78  3a 4c 44 41 63 63 3a 4a  |y:STXstx:LDAcc:J|
000014d0  53 52 67 65 6e 61 6c 3a  4c 44 58 73 74 78 3a 4c  |SRgenal:LDXstx:L|
000014e0  44 59 73 74 79 3a 2e 6e  67 65 6e 0d 05 dc 2e 4c  |DYsty:.ngen....L|
000014f0  44 41 28 70 61 74 29 2c  59 3a 80 23 31 3a 42 45  |DA(pat),Y:.#1:BE|
00001500  51 6e 72 65 70 3a 4c 44  41 23 32 35 35 3a 53 54  |Qnrep:LDA#255:ST|
00001510  41 70 70 3a 2e 6e 72 65  70 0d 05 e6 86 4c 44 41  |App:.nrep....LDA|
00001520  78 63 3a 53 54 41 78 31  3a 4c 44 41 79 63 3a 53  |xc:STAx1:LDAyc:S|
00001530  54 41 79 31 3a 4c 44 41  78 3a 53 54 41 78 32 3a  |TAy1:LDAx:STAx2:|
00001540  4c 44 41 79 3a 53 54 41  79 32 3a 4c 44 41 78 31  |LDAy:STAy2:LDAx1|
00001550  3a 43 4d 50 78 32 3a 42  43 43 6e 6f 73 77 61 70  |:CMPx2:BCCnoswap|
00001560  3a 4c 44 41 78 3a 53 54  41 78 31 3a 4c 44 41 78  |:LDAx:STAx1:LDAx|
00001570  63 3a 53 54 41 78 32 3a  2e 6e 6f 73 77 61 70 20  |c:STAx2:.noswap |
00001580  53 45 43 3a 4c 44 41 78  32 3a 53 42 43 78 31 3a  |SEC:LDAx2:SBCx1:|
00001590  43 4d 50 23 32 3a 42 43  53 6e 6f 68 69 74 20 0d  |CMP#2:BCSnohit .|
000015a0  05 f0 5a 4c 44 41 79 31  3a 43 4d 50 79 32 3a 42  |..ZLDAy1:CMPy2:B|
000015b0  43 43 6e 6f 73 77 61 70  32 3a 4c 44 41 79 3a 53  |CCnoswap2:LDAy:S|
000015c0  54 41 79 31 3a 4c 44 41  79 63 3a 53 54 41 79 32  |TAy1:LDAyc:STAy2|
000015d0  3a 2e 6e 6f 73 77 61 70  32 20 53 45 43 3a 4c 44  |:.noswap2 SEC:LD|
000015e0  41 79 32 3a 53 42 43 79  31 3a 43 4d 50 23 32 3a  |Ay2:SBCy1:CMP#2:|
000015f0  42 43 53 6e 6f 68 69 74  20 0d 05 fa 13 4c 44 41  |BCSnohit ....LDA|
00001600  23 31 3a 53 54 41 66 69  6e 69 73 68 0d 06 04 0a  |#1:STAfinish....|
00001610  2e 6e 6f 68 69 74 0d 06  0e 09 49 4e 43 70 70 0d  |.nohit....INCpp.|
00001620  06 18 0a 2e 73 6b 69 70  36 0d 06 22 11 53 54 58  |....skip6..".STX|
00001630  73 74 78 3a 53 54 59 73  74 79 0d 06 2c 52 4c 44  |stx:STYsty..,RLD|
00001640  41 70 63 3a 53 54 41 73  70 6f 73 3a 4c 44 41 70  |Apc:STAspos:LDAp|
00001650  63 2b 31 3a 53 54 41 73  70 6f 73 2b 31 3a 4c 44  |c+1:STAspos+1:LD|
00001660  41 61 74 79 70 65 3a 53  54 41 63 70 6f 73 3a 4c  |Aatype:STAcpos:L|
00001670  44 41 61 74 79 70 65 2b  31 3a 53 54 41 63 70 6f  |DAatype+1:STAcpo|
00001680  73 2b 31 3a 4a 53 52 70  72 69 6e 74 0d 06 36 27  |s+1:JSRprint..6'|
00001690  4c 44 41 63 63 3a 43 4d  50 23 37 3a 42 43 43 6e  |LDAcc:CMP#7:BCCn|
000016a0  65 6e 64 32 3a 4a 4d 50  6e 65 6e 64 3a 2e 6e 65  |end2:JMPnend:.ne|
000016b0  6e 64 32 0d 06 40 e5 4c  44 58 23 30 3a 2e 6c 6f  |nd2..@.LDX#0:.lo|
000016c0  6f 70 32 20 4c 44 41 67  75 6e 64 61 74 2c 58 3a  |op2 LDAgundat,X:|
000016d0  42 45 51 6e 67 75 6e 73  3a 43 4d 50 78 63 3a 42  |BEQnguns:CMPxc:B|
000016e0  45 51 79 70 6f 73 73 3a  53 45 43 3a 53 42 43 23  |EQyposs:SEC:SBC#|
000016f0  31 3a 43 4d 50 78 63 3a  42 4e 45 6e 67 70 6f 73  |1:CMPxc:BNEngpos|
00001700  73 3a 2e 79 70 6f 73 73  20 4c 44 41 67 75 6e 64  |s:.yposs LDAgund|
00001710  61 74 2b 31 2c 58 3a 53  45 43 3a 53 42 43 79 63  |at+1,X:SEC:SBCyc|
00001720  3a 43 4d 50 23 32 3a 42  43 53 6e 67 70 6f 73 73  |:CMP#2:BCSngposs|
00001730  3a 4c 44 41 23 30 3a 53  54 41 67 75 6e 64 61 74  |:LDA#0:STAgundat|
00001740  2c 58 3a 4c 44 41 67 75  6e 64 61 74 2b 32 2c 58  |,X:LDAgundat+2,X|
00001750  3a 53 54 41 73 74 70 6f  73 3a 4c 44 41 67 75 6e  |:STAstpos:LDAgun|
00001760  64 61 74 2b 33 2c 58 3a  53 54 41 73 74 70 6f 73  |dat+3,X:STAstpos|
00001770  2b 31 3a 4c 44 59 23 30  3a 4c 44 41 28 73 74 70  |+1:LDY#0:LDA(stp|
00001780  6f 73 29 2c 59 3a 82 23  26 30 31 3a 53 54 41 28  |os),Y:.#&01:STA(|
00001790  73 74 70 6f 73 29 2c 59  0d 06 4a 92 44 45 43 6e  |stpos),Y..J.DECn|
000017a0  6f 67 75 6e 3a 4c 44 41  23 37 3a 53 54 41 63 63  |ogun:LDA#7:STAcc|
000017b0  3a 4c 44 41 23 30 3a 53  54 41 26 32 34 30 3a 4c  |:LDA#0:STA&240:L|
000017c0  44 58 23 73 6e 64 32 20  83 20 32 35 36 3a 4c 44  |DX#snd2 . 256:LD|
000017d0  59 23 73 6e 64 32 20 81  20 32 35 36 3a 4a 53 52  |Y#snd2 . 256:JSR|
000017e0  73 6f 75 6e 64 3a 4a 53  52 61 73 63 6f 72 65 3a  |sound:JSRascore:|
000017f0  4a 4d 50 73 6b 69 70 35  3a 2e 6e 67 70 6f 73 73  |JMPskip5:.ngposs|
00001800  20 2e 6e 67 75 6e 73 20  49 4e 58 3a 49 4e 58 3a  | .nguns INX:INX:|
00001810  49 4e 58 3a 49 4e 58 3a  43 50 58 23 28 35 2a 34  |INX:INX:CPX#(5*4|
00001820  29 3a 42 4e 45 6c 6f 6f  70 32 0d 06 54 83 4c 44  |):BNEloop2..T.LD|
00001830  41 78 63 3a 43 4d 50 23  35 3a 42 45 51 79 65 6e  |Axc:CMP#5:BEQyen|
00001840  64 3a 43 4d 50 23 33 33  3a 42 45 51 79 65 6e 64  |d:CMP#33:BEQyend|
00001850  3a 4c 44 41 79 63 3a 43  4d 50 23 31 30 3a 42 43  |:LDAyc:CMP#10:BC|
00001860  43 79 65 6e 64 3a 43 4d  50 23 35 33 3a 42 43 53  |Cyend:CMP#53:BCS|
00001870  79 65 6e 64 3a 4a 4d 50  6e 65 6e 64 3a 2e 79 65  |yend:JMPnend:.ye|
00001880  6e 64 20 4c 44 41 23 30  3a 53 54 41 78 63 3a 44  |nd LDA#0:STAxc:D|
00001890  45 43 6e 6f 61 6c 3a 44  45 43 61 6c 70 32 3a 4a  |ECnoal:DECalp2:J|
000018a0  4d 50 73 6b 69 70 3a 2e  6e 65 6e 64 20 0d 06 5e  |MPskip:.nend ..^|
000018b0  1c 4c 44 41 26 32 34 30  3a 43 4d 50 23 32 35 30  |.LDA&240:CMP#250|
000018c0  3a 42 43 53 79 61 64 64  20 0d 06 68 11 4c 44 41  |:BCSyadd ..h.LDA|
000018d0  23 30 3a 53 54 41 26 32  34 30 0d 06 72 43 4c 44  |#0:STA&240..rCLD|
000018e0  41 63 63 3a 43 4d 50 23  38 3a 42 4e 45 6e 65 78  |Acc:CMP#8:BNEnex|
000018f0  70 6c 3a 4c 44 41 23 30  3a 53 54 41 78 63 3a 44  |pl:LDA#0:STAxc:D|
00001900  45 43 6e 6f 61 6c 3a 44  45 43 61 6c 70 32 3a 4a  |ECnoal:DECalp2:J|
00001910  4d 50 73 6b 69 70 3a 2e  6e 65 78 70 6c 0d 06 7c  |MPskip:.nexpl..||
00001920  35 4c 44 41 63 63 3a 80  23 31 3a 42 4e 45 6e 61  |5LDAcc:.#1:BNEna|
00001930  64 64 3a 44 45 43 63 63  3a 4a 4d 50 79 61 64 64  |dd:DECcc:JMPyadd|
00001940  3a 2e 6e 61 64 64 20 49  4e 43 63 63 3a 2e 79 61  |:.nadd INCcc:.ya|
00001950  64 64 0d 06 86 0a 2e 73  6b 69 70 35 0d 06 90 57  |dd.....skip5...W|
00001960  4c 44 41 63 63 3a 41 53  4c 41 3a 41 53 4c 41 3a  |LDAcc:ASLA:ASLA:|
00001970  41 53 4c 41 3a 41 53 4c  41 3a 43 4c 43 3a 41 44  |ASLA:ASLA:CLC:AD|
00001980  43 23 63 68 61 72 20 83  20 32 35 36 3a 53 54 41  |C#char . 256:STA|
00001990  63 70 6f 73 3a 4c 44 41  23 63 68 61 72 20 81 20  |cpos:LDA#char . |
000019a0  32 35 36 3a 41 44 43 23  30 3a 53 54 41 63 70 6f  |256:ADC#0:STAcpo|
000019b0  73 2b 31 0d 06 9a 31 4c  44 41 6e 70 63 3a 53 54  |s+1...1LDAnpc:ST|
000019c0  41 73 70 6f 73 3a 4c 44  41 6e 70 63 2b 31 3a 53  |Aspos:LDAnpc+1:S|
000019d0  54 41 73 70 6f 73 2b 31  3a 4a 53 52 70 72 69 6e  |TAspos+1:JSRprin|
000019e0  74 20 20 20 0d 06 a4 09  2e 73 6b 69 70 0d 06 ae  |t   .....skip...|
000019f0  85 4c 44 58 73 74 78 3a  4c 44 59 73 74 79 3a 4c  |.LDXstx:LDYsty:L|
00001a00  44 41 78 63 3a 53 54 41  61 6c 64 61 74 2c 58 3a  |DAxc:STAaldat,X:|
00001a10  4c 44 41 79 63 3a 53 54  41 61 6c 64 61 74 2b 31  |LDAyc:STAaldat+1|
00001a20  2c 58 3a 4c 44 41 6e 70  63 3a 53 54 41 61 6c 64  |,X:LDAnpc:STAald|
00001a30  61 74 2b 32 2c 58 3a 4c  44 41 6e 70 63 2b 31 3a  |at+2,X:LDAnpc+1:|
00001a40  53 54 41 61 6c 64 61 74  2b 33 2c 58 3a 4c 44 41  |STAaldat+3,X:LDA|
00001a50  70 70 3a 53 54 41 61 6c  64 61 74 2b 34 2c 58 3a  |pp:STAaldat+4,X:|
00001a60  4c 44 41 63 63 3a 53 54  41 61 6c 64 61 74 2b 35  |LDAcc:STAaldat+5|
00001a70  2c 58 0d 06 b8 0a 2e 6e  6d 6f 76 65 0d 06 c2 39  |,X.....nmove...9|
00001a80  43 4c 43 3a 54 58 41 3a  41 44 43 23 36 3a 54 41  |CLC:TXA:ADC#6:TA|
00001a90  58 3a 43 50 58 23 28 36  2a 36 29 3a 42 45 51 65  |X:CPX#(6*6):BEQe|
00001aa0  6c 6f 6f 70 3a 4a 4d 50  6c 6f 6f 70 3a 2e 65 6c  |loop:JMPloop:.el|
00001ab0  6f 6f 70 20 20 0d 06 cc  07 52 54 53 0d 06 d6 5a  |oop  ....RTS...Z|
00001ac0  2e 69 6e 69 74 62 75 6c  20 4c 44 59 23 30 3a 2e  |.initbul LDY#0:.|
00001ad0  6c 6f 6f 70 3a 4c 44 41  23 30 3a 53 54 41 62 75  |loop:LDA#0:STAbu|
00001ae0  6c 64 61 74 2c 59 3a 49  4e 59 3a 49 4e 59 3a 49  |ldat,Y:INY:INY:I|
00001af0  4e 59 3a 49 4e 59 3a 43  50 59 23 28 35 2a 34 29  |NY:INY:CPY#(5*4)|
00001b00  3a 42 4e 45 6c 6f 6f 70  3a 53 54 41 6e 6f 62 75  |:BNEloop:STAnobu|
00001b10  6c 3a 52 54 53 20 0d 06  e0 6c 2e 67 65 6e 62 75  |l:RTS ...l.genbu|
00001b20  6c 20 4c 44 41 6e 6f 62  75 6c 3a 43 4d 50 23 35  |l LDAnobul:CMP#5|
00001b30  3a 42 45 51 6e 66 69 72  65 3a 4c 44 58 23 30 3a  |:BEQnfire:LDX#0:|
00001b40  2e 6c 6f 6f 70 20 4c 44  41 62 75 6c 64 61 74 2c  |.loop LDAbuldat,|
00001b50  58 3a 43 4d 50 23 30 3a  42 45 51 79 62 75 6c 3a  |X:CMP#0:BEQybul:|
00001b60  49 4e 58 3a 49 4e 58 3a  49 4e 58 3a 49 4e 58 3a  |INX:INX:INX:INX:|
00001b70  4a 4d 50 6c 6f 6f 70 3a  2e 6e 66 69 72 65 20 52  |JMPloop:.nfire R|
00001b80  54 53 0d 06 ea a3 2e 79  62 75 6c 20 4c 44 41 78  |TS.....ybul LDAx|
00001b90  63 3a 53 54 41 62 75 6c  64 61 74 2c 58 3a 4c 44  |c:STAbuldat,X:LD|
00001ba0  41 79 63 3a 53 54 41 62  75 6c 64 61 74 2b 31 2c  |Ayc:STAbuldat+1,|
00001bb0  58 3a 4c 44 41 6e 70 63  3a 53 54 41 62 75 6c 64  |X:LDAnpc:STAbuld|
00001bc0  61 74 2b 32 2c 58 3a 53  54 41 73 74 70 6f 73 3a  |at+2,X:STAstpos:|
00001bd0  4c 44 41 6e 70 63 2b 31  3a 53 54 41 62 75 6c 64  |LDAnpc+1:STAbuld|
00001be0  61 74 2b 33 2c 58 3a 53  54 41 73 74 70 6f 73 2b  |at+3,X:STAstpos+|
00001bf0  31 3a 49 4e 43 6e 6f 62  75 6c 3a 4c 44 59 23 30  |1:INCnobul:LDY#0|
00001c00  3a 4c 44 41 28 73 74 70  6f 73 29 2c 59 3a 82 23  |:LDA(stpos),Y:.#|
00001c10  26 31 30 3a 53 54 41 28  73 74 70 6f 73 29 2c 59  |&10:STA(stpos),Y|
00001c20  3a 52 54 53 20 0d 06 f4  91 2e 6d 76 62 75 6c 20  |:RTS .....mvbul |
00001c30  4c 44 59 23 30 3a 4c 44  58 23 30 3a 2e 6c 6f 6f  |LDY#0:LDX#0:.loo|
00001c40  70 20 4c 44 41 62 75 6c  64 61 74 2c 58 3a 42 4e  |p LDAbuldat,X:BN|
00001c50  45 6f 6b 62 75 6c 3a 4a  4d 50 6e 70 62 75 6c 3a  |Eokbul:JMPnpbul:|
00001c60  2e 6f 6b 62 75 6c 20 53  54 41 78 63 3a 4c 44 41  |.okbul STAxc:LDA|
00001c70  62 75 6c 64 61 74 2b 31  2c 58 3a 53 54 41 79 63  |buldat+1,X:STAyc|
00001c80  3a 4c 44 41 62 75 6c 64  61 74 2b 32 2c 58 3a 53  |:LDAbuldat+2,X:S|
00001c90  54 41 73 74 70 6f 73 3a  4c 44 41 62 75 6c 64 61  |TAstpos:LDAbulda|
00001ca0  74 2b 33 2c 58 3a 53 54  41 73 74 70 6f 73 2b 31  |t+3,X:STAstpos+1|
00001cb0  3a 49 4e 43 79 63 0d 06  fe b6 4c 44 41 73 74 70  |:INCyc....LDAstp|
00001cc0  6f 73 3a 53 54 41 74 70  6f 73 3a 4c 44 41 73 74  |os:STAtpos:LDAst|
00001cd0  70 6f 73 2b 31 3a 53 54  41 74 70 6f 73 2b 31 3a  |pos+1:STAtpos+1:|
00001ce0  4c 44 41 73 74 70 6f 73  3a 80 23 37 3a 43 4d 50  |LDAstpos:.#7:CMP|
00001cf0  23 34 3a 42 4e 45 6e 6a  70 33 3a 43 4c 43 3a 4c  |#4:BNEnjp3:CLC:L|
00001d00  44 41 73 74 70 6f 73 3a  41 44 43 23 26 33 38 3a  |DAstpos:ADC#&38:|
00001d10  53 54 41 74 70 6f 73 3a  4c 44 41 73 74 70 6f 73  |STAtpos:LDAstpos|
00001d20  2b 31 3a 41 44 43 23 31  3a 53 54 41 74 70 6f 73  |+1:ADC#1:STAtpos|
00001d30  2b 31 3a 2e 6e 6a 70 33  20 43 4c 43 3a 4c 44 41  |+1:.njp3 CLC:LDA|
00001d40  74 70 6f 73 3a 41 44 43  23 34 3a 53 54 41 74 70  |tpos:ADC#4:STAtp|
00001d50  6f 73 3a 4c 44 41 74 70  6f 73 2b 31 3a 41 44 43  |os:LDAtpos+1:ADC|
00001d60  23 30 3a 53 54 41 74 70  6f 73 2b 31 0d 07 08 26  |#0:STAtpos+1...&|
00001d70  4c 44 41 28 73 74 70 6f  73 29 2c 59 3a 82 23 26  |LDA(stpos),Y:.#&|
00001d80  31 30 3a 53 54 41 28 73  74 70 6f 73 29 2c 59 20  |10:STA(stpos),Y |
00001d90  20 20 0d 07 12 3a 4c 44  41 79 63 3a 43 4d 50 23  |  ...:LDAyc:CMP#|
00001da0  35 33 3a 42 43 43 6f 6b  73 3a 44 45 43 6e 6f 62  |53:BCCoks:DECnob|
00001db0  75 6c 3a 4c 44 41 23 30  3a 53 54 41 78 63 3a 4a  |ul:LDA#0:STAxc:J|
00001dc0  4d 50 73 6b 69 70 32 3a  2e 6f 6b 73 0d 07 1c 77  |MPskip2:.oks...w|
00001dd0  4c 44 41 78 63 3a 43 4d  50 78 3a 42 45 51 70 6f  |LDAxc:CMPx:BEQpo|
00001de0  73 73 3a 53 45 43 3a 53  42 43 23 31 3a 43 4d 50  |ss:SEC:SBC#1:CMP|
00001df0  78 3a 42 4e 45 6e 70 6f  73 73 3a 2e 70 6f 73 73  |x:BNEnposs:.poss|
00001e00  20 4c 44 41 79 63 3a 43  4d 50 79 3a 42 43 43 6e  | LDAyc:CMPy:BCCn|
00001e10  70 6f 73 73 3a 53 45 43  3a 53 42 43 23 32 3a 43  |poss:SEC:SBC#2:C|
00001e20  4d 50 79 3a 42 43 53 6e  70 6f 73 73 3a 4c 44 41  |MPy:BCSnposs:LDA|
00001e30  23 31 3a 53 54 41 66 69  6e 69 73 68 3a 2e 6e 70  |#1:STAfinish:.np|
00001e40  6f 73 73 0d 07 26 22 4c  44 41 28 74 70 6f 73 29  |oss..&"LDA(tpos)|
00001e50  2c 59 3a 82 23 26 31 30  3a 53 54 41 28 74 70 6f  |,Y:.#&10:STA(tpo|
00001e60  73 29 2c 59 20 0d 07 30  0a 2e 73 6b 69 70 32 0d  |s),Y ..0..skip2.|
00001e70  07 3a 15 4c 44 41 78 63  3a 53 54 41 62 75 6c 64  |.:.LDAxc:STAbuld|
00001e80  61 74 2c 58 0d 07 44 45  4c 44 41 79 63 3a 53 54  |at,X..DELDAyc:ST|
00001e90  41 62 75 6c 64 61 74 2b  31 2c 58 3a 4c 44 41 74  |Abuldat+1,X:LDAt|
00001ea0  70 6f 73 3a 53 54 41 62  75 6c 64 61 74 2b 32 2c  |pos:STAbuldat+2,|
00001eb0  58 3a 4c 44 41 74 70 6f  73 2b 31 3a 53 54 41 62  |X:LDAtpos+1:STAb|
00001ec0  75 6c 64 61 74 2b 33 2c  58 0d 07 4e 0a 2e 6e 70  |uldat+3,X..N..np|
00001ed0  62 75 6c 0d 07 58 37 49  4e 58 3a 49 4e 58 3a 49  |bul..X7INX:INX:I|
00001ee0  4e 58 3a 49 4e 58 3a 43  50 58 23 28 35 2a 34 29  |NX:INX:CPX#(5*4)|
00001ef0  3a 42 45 51 65 6c 6f 6f  70 32 3a 4a 4d 50 6c 6f  |:BEQeloop2:JMPlo|
00001f00  6f 70 3a 2e 65 6c 6f 6f  70 32 0d 07 62 07 52 54  |op:.eloop2..b.RT|
00001f10  53 0d 07 6c 59 2e 69 6e  69 74 67 75 6e 20 4c 44  |S..lY.initgun LD|
00001f20  59 23 30 3a 2e 6c 6f 6f  70 3a 4c 44 41 23 30 3a  |Y#0:.loop:LDA#0:|
00001f30  53 54 41 67 75 6e 64 61  74 2c 59 3a 49 4e 59 3a  |STAgundat,Y:INY:|
00001f40  49 4e 59 3a 49 4e 59 3a  49 4e 59 3a 43 50 59 23  |INY:INY:INY:CPY#|
00001f50  28 35 2a 34 29 3a 42 4e  45 6c 6f 6f 70 3a 53 54  |(5*4):BNEloop:ST|
00001f60  41 6e 6f 67 75 6e 3a 52  54 53 0d 07 76 69 2e 67  |Anogun:RTS..vi.g|
00001f70  65 6e 67 75 6e 20 4c 44  41 6e 6f 67 75 6e 3a 43  |engun LDAnogun:C|
00001f80  4d 50 23 33 3a 42 45 51  6e 66 72 3a 4c 44 58 23  |MP#3:BEQnfr:LDX#|
00001f90  30 3a 2e 6c 6f 6f 70 20  4c 44 41 67 75 6e 64 61  |0:.loop LDAgunda|
00001fa0  74 2c 58 3a 43 4d 50 23  30 3a 42 45 51 79 67 75  |t,X:CMP#0:BEQygu|
00001fb0  6e 3a 49 4e 58 3a 49 4e  58 3a 49 4e 58 3a 49 4e  |n:INX:INX:INX:IN|
00001fc0  58 3a 4a 4d 50 6c 6f 6f  70 3a 2e 6e 66 72 20 52  |X:JMPloop:.nfr R|
00001fd0  54 53 20 0d 07 80 c7 2e  79 67 75 6e 20 4c 44 41  |TS .....ygun LDA|
00001fe0  78 3a 53 54 41 67 75 6e  64 61 74 2c 58 3a 4c 44  |x:STAgundat,X:LD|
00001ff0  41 79 3a 53 54 41 67 75  6e 64 61 74 2b 31 2c 58  |Ay:STAgundat+1,X|
00002000  3a 4c 44 41 79 70 6f 73  3a 53 54 41 67 75 6e 64  |:LDAypos:STAgund|
00002010  61 74 2b 32 2c 58 3a 53  54 41 73 74 70 6f 73 3a  |at+2,X:STAstpos:|
00002020  4c 44 41 79 70 6f 73 2b  31 3a 53 54 41 67 75 6e  |LDAypos+1:STAgun|
00002030  64 61 74 2b 33 2c 58 3a  53 54 41 73 74 70 6f 73  |dat+3,X:STAstpos|
00002040  2b 31 3a 49 4e 43 6e 6f  67 75 6e 3a 4c 44 59 23  |+1:INCnogun:LDY#|
00002050  30 3a 4c 44 41 28 73 74  70 6f 73 29 2c 59 3a 82  |0:LDA(stpos),Y:.|
00002060  23 26 30 31 3a 53 54 41  28 73 74 70 6f 73 29 2c  |#&01:STA(stpos),|
00002070  59 3a 4c 44 58 23 73 6e  64 20 83 20 32 35 36 3a  |Y:LDX#snd . 256:|
00002080  4c 44 59 23 73 6e 64 20  81 20 32 35 36 3a 4a 53  |LDY#snd . 256:JS|
00002090  52 73 6f 75 6e 64 3a 52  54 53 0d 07 8a 91 2e 6d  |Rsound:RTS.....m|
000020a0  76 67 75 6e 20 4c 44 59  23 30 3a 4c 44 58 23 30  |vgun LDY#0:LDX#0|
000020b0  3a 2e 6c 6f 6f 70 20 4c  44 41 67 75 6e 64 61 74  |:.loop LDAgundat|
000020c0  2c 58 3a 42 4e 45 6f 6b  67 75 6e 3a 4a 4d 50 6e  |,X:BNEokgun:JMPn|
000020d0  70 67 75 6e 3a 2e 6f 6b  67 75 6e 20 53 54 41 78  |pgun:.okgun STAx|
000020e0  63 3a 4c 44 41 67 75 6e  64 61 74 2b 31 2c 58 3a  |c:LDAgundat+1,X:|
000020f0  53 54 41 79 63 3a 4c 44  41 67 75 6e 64 61 74 2b  |STAyc:LDAgundat+|
00002100  32 2c 58 3a 53 54 41 73  74 70 6f 73 3a 4c 44 41  |2,X:STAstpos:LDA|
00002110  67 75 6e 64 61 74 2b 33  2c 58 3a 53 54 41 73 74  |gundat+3,X:STAst|
00002120  70 6f 73 2b 31 3a 44 45  43 79 63 0d 07 94 b0 4c  |pos+1:DECyc....L|
00002130  44 41 73 74 70 6f 73 3a  53 54 41 74 70 6f 73 3a  |DAstpos:STAtpos:|
00002140  4c 44 41 73 74 70 6f 73  2b 31 3a 53 54 41 74 70  |LDAstpos+1:STAtp|
00002150  6f 73 2b 31 3a 4c 44 41  73 74 70 6f 73 3a 80 23  |os+1:LDAstpos:.#|
00002160  37 3a 42 4e 45 6e 6a 70  34 3a 53 45 43 3a 4c 44  |7:BNEnjp4:SEC:LD|
00002170  41 73 74 70 6f 73 3a 53  42 43 23 26 33 38 3a 53  |Astpos:SBC#&38:S|
00002180  54 41 74 70 6f 73 3a 4c  44 41 73 74 70 6f 73 2b  |TAtpos:LDAstpos+|
00002190  31 3a 53 42 43 23 31 3a  53 54 41 74 70 6f 73 2b  |1:SBC#1:STAtpos+|
000021a0  31 3a 2e 6e 6a 70 34 20  53 45 43 3a 4c 44 41 74  |1:.njp4 SEC:LDAt|
000021b0  70 6f 73 3a 53 42 43 23  34 3a 53 54 41 74 70 6f  |pos:SBC#4:STAtpo|
000021c0  73 3a 4c 44 41 74 70 6f  73 2b 31 3a 53 42 43 23  |s:LDAtpos+1:SBC#|
000021d0  30 3a 53 54 41 74 70 6f  73 2b 31 0d 07 9e 23 4c  |0:STAtpos+1...#L|
000021e0  44 41 28 73 74 70 6f 73  29 2c 59 3a 82 23 26 30  |DA(stpos),Y:.#&0|
000021f0  31 3a 53 54 41 28 73 74  70 6f 73 29 2c 59 0d 07  |1:STA(stpos),Y..|
00002200  a8 3a 4c 44 41 79 63 3a  43 4d 50 23 31 30 3a 42  |.:LDAyc:CMP#10:B|
00002210  43 53 6f 6b 67 3a 44 45  43 6e 6f 67 75 6e 3a 4c  |CSokg:DECnogun:L|
00002220  44 41 23 30 3a 53 54 41  78 63 3a 4a 4d 50 73 6b  |DA#0:STAxc:JMPsk|
00002230  69 70 33 3a 2e 6f 6b 67  0d 07 b2 22 4c 44 41 28  |ip3:.okg..."LDA(|
00002240  74 70 6f 73 29 2c 59 3a  82 23 26 30 31 3a 53 54  |tpos),Y:.#&01:ST|
00002250  41 28 74 70 6f 73 29 2c  59 20 0d 07 bc 0a 2e 73  |A(tpos),Y .....s|
00002260  6b 69 70 33 0d 07 c6 15  4c 44 41 78 63 3a 53 54  |kip3....LDAxc:ST|
00002270  41 67 75 6e 64 61 74 2c  58 0d 07 d0 45 4c 44 41  |Agundat,X...ELDA|
00002280  79 63 3a 53 54 41 67 75  6e 64 61 74 2b 31 2c 58  |yc:STAgundat+1,X|
00002290  3a 4c 44 41 74 70 6f 73  3a 53 54 41 67 75 6e 64  |:LDAtpos:STAgund|
000022a0  61 74 2b 32 2c 58 3a 4c  44 41 74 70 6f 73 2b 31  |at+2,X:LDAtpos+1|
000022b0  3a 53 54 41 67 75 6e 64  61 74 2b 33 2c 58 0d 07  |:STAgundat+3,X..|
000022c0  da 0a 2e 6e 70 67 75 6e  0d 07 e4 37 49 4e 58 3a  |...npgun...7INX:|
000022d0  49 4e 58 3a 49 4e 58 3a  49 4e 58 3a 43 50 58 23  |INX:INX:INX:CPX#|
000022e0  28 35 2a 34 29 3a 42 45  51 65 6c 6f 6f 70 33 3a  |(5*4):BEQeloop3:|
000022f0  4a 4d 50 6c 6f 6f 70 3a  2e 65 6c 6f 6f 70 33 0d  |JMPloop:.eloop3.|
00002300  07 ee 07 52 54 53 0d 07  f8 8f 2e 61 73 63 6f 72  |...RTS.....ascor|
00002310  65 20 53 45 44 3a 43 4c  43 3a 4c 44 41 73 63 6f  |e SED:CLC:LDAsco|
00002320  72 65 3a 41 44 43 23 26  31 30 3a 53 54 41 73 63  |re:ADC#&10:STAsc|
00002330  6f 72 65 3a 4c 44 41 73  63 6f 72 65 2b 31 3a 41  |ore:LDAscore+1:A|
00002340  44 43 23 30 3a 53 54 41  73 63 6f 72 65 2b 31 3a  |DC#0:STAscore+1:|
00002350  4c 44 41 73 63 6f 72 65  2b 32 3a 41 44 43 23 30  |LDAscore+2:ADC#0|
00002360  3a 53 54 41 73 63 6f 72  65 2b 32 3a 4c 44 41 73  |:STAscore+2:LDAs|
00002370  63 6f 72 65 2b 33 3a 41  44 43 23 30 3a 53 54 41  |core+3:ADC#0:STA|
00002380  73 63 6f 72 65 2b 33 3a  43 4c 44 3a 4a 4d 50 70  |score+3:CLD:JMPp|
00002390  73 63 6f 72 65 0d 08 02  85 2e 70 73 63 6f 72 65  |score.....pscore|
000023a0  20 4c 44 41 23 33 31 3a  4a 53 52 26 46 46 45 45  | LDA#31:JSR&FFEE|
000023b0  3a 4c 44 41 23 31 32 3a  4a 53 52 26 46 46 45 45  |:LDA#12:JSR&FFEE|
000023c0  3a 4c 44 41 23 33 30 3a  4a 53 52 26 46 46 45 45  |:LDA#30:JSR&FFEE|
000023d0  3a 4c 44 41 73 63 6f 72  65 2b 33 3a 4a 53 52 70  |:LDAscore+3:JSRp|
000023e0  6e 75 6d 3a 4c 44 41 73  63 6f 72 65 2b 32 3a 4a  |num:LDAscore+2:J|
000023f0  53 52 70 6e 75 6d 3a 4c  44 41 73 63 6f 72 65 2b  |SRpnum:LDAscore+|
00002400  31 3a 4a 53 52 70 6e 75  6d 3a 4c 44 41 73 63 6f  |1:JSRpnum:LDAsco|
00002410  72 65 3a 4a 4d 50 70 6e  75 6d 0d 08 0c 59 2e 70  |re:JMPpnum...Y.p|
00002420  6e 75 6d 20 50 48 41 3a  80 23 26 46 30 3a 4c 53  |num PHA:.#&F0:LS|
00002430  52 41 3a 4c 53 52 41 3a  4c 53 52 41 3a 4c 53 52  |RA:LSRA:LSRA:LSR|
00002440  41 3a 43 4c 43 3a 41 44  43 23 34 38 3a 4a 53 52  |A:CLC:ADC#48:JSR|
00002450  26 46 46 45 45 3a 50 4c  41 3a 80 23 26 30 46 3a  |&FFEE:PLA:.#&0F:|
00002460  43 4c 43 3a 41 44 43 23  34 38 3a 4a 4d 50 26 46  |CLC:ADC#48:JMP&F|
00002470  46 45 45 0d 08 16 10 2e  6e 6f 67 75 6e 20 45 51  |FEE.....nogun EQ|
00002480  55 42 30 0d 08 20 2b 2e  79 31 20 45 51 55 42 30  |UB0.. +.y1 EQUB0|
00002490  3a 2e 79 32 20 45 51 55  42 30 3a 2e 78 31 20 45  |:.y2 EQUB0:.x1 E|
000024a0  51 55 42 30 3a 2e 78 32  20 45 51 55 42 30 0d 08  |QUB0:.x2 EQUB0..|
000024b0  2a 08 2e 65 6f 72 0d 08  34 19 2e 73 6f 75 6e 64  |*..eor..4..sound|
000024c0  20 4c 44 41 23 37 3a 4a  4d 50 26 46 46 46 31 0d  | LDA#7:JMP&FFF1.|
000024d0  08 3e 21 2e 73 6e 64 20  45 51 55 57 31 3a 45 51  |.>!.snd EQUW1:EQ|
000024e0  55 57 32 3a 45 51 55 57  31 30 3a 45 51 55 57 31  |UW2:EQUW10:EQUW1|
000024f0  0d 08 48 25 2e 73 6e 64  32 20 45 51 55 57 30 3a  |..H%.snd2 EQUW0:|
00002500  45 51 55 57 2d 31 35 3a  45 51 55 57 31 30 30 3a  |EQUW-15:EQUW100:|
00002510  45 51 55 57 31 0d 08 52  10 2e 74 79 70 61 6c 20  |EQUW1..R..typal |
00002520  45 51 55 42 30 0d 08 5c  0f 2e 66 6c 61 67 20 45  |EQUB0..\..flag E|
00002530  51 55 42 30 0d 08 66 10  2e 73 63 6f 72 65 20 45  |QUB0..f..score E|
00002540  51 55 44 30 0d 08 70 0e  2e 72 6e 64 20 45 51 55  |QUD0..p..rnd EQU|
00002550  42 30 0d 08 7a 0e 2e 63  6e 74 20 45 51 55 42 30  |B0..z..cnt EQUB0|
00002560  0d 08 84 0f 2e 6d 69 6e  68 20 45 51 55 42 30 0d  |.....minh EQUB0.|
00002570  08 8e 0f 2e 6e 6f 61 6c  20 45 51 55 42 30 0d 08  |....noal EQUB0..|
00002580  98 10 2e 6e 6f 62 75 6c  20 45 51 55 42 30 0d 08  |...nobul EQUB0..|
00002590  a2 11 2e 66 69 6e 69 73  68 20 45 51 55 42 30 0d  |...finish EQUB0.|
000025a0  08 ac 1d 2e 61 6c 70 61  73 73 20 45 51 55 42 30  |....alpass EQUB0|
000025b0  3a 2e 61 6c 70 32 20 45  51 55 42 30 0d 08 b6 1b  |:.alp2 EQUB0....|
000025c0  2e 62 75 6c 64 61 74 20  45 51 55 53 20 c4 35 2c  |.buldat EQUS .5,|
000025d0  22 41 42 43 43 22 29 0d  08 c0 1b 2e 67 75 6e 64  |"ABCC").....gund|
000025e0  61 74 20 45 51 55 53 20  c4 35 2c 22 41 42 43 43  |at EQUS .5,"ABCC|
000025f0  22 29 0d 08 ca 1d 2e 61  6c 64 61 74 20 45 51 55  |").....aldat EQU|
00002600  53 20 c4 36 2c 22 41 42  43 43 44 45 22 29 20 0d  |S .6,"ABCCDE") .|
00002610  08 d4 1b 2e 70 61 74 31  20 45 51 55 53 20 c4 33  |....pat1 EQUS .3|
00002620  30 30 2c 22 20 22 29 20  20 20 0d 08 de 05 5d 0d  |00," ")   ....].|
00002630  08 e8 05 ed 0d 08 f2 05  e1 0d 08 fc 11 dd f2 77  |...............w|
00002640  61 76 65 28 57 25 2c 54  25 29 0d 09 06 18 fb 31  |ave(W%,T%).....1|
00002650  32 38 3a ef 32 38 2c 33  2c 32 37 2c 31 36 2c 34  |28:.28,3,27,16,4|
00002660  3a db 0d 09 10 31 e6 30  2c 32 3a f2 62 6f 78 28  |:....1.0,2:.box(|
00002670  33 2a 36 34 2d 38 2c 31  30 32 30 2d 32 38 2a 33  |3*64-8,1020-28*3|
00002680  32 2c 31 34 2a 36 34 2b  31 36 2c 32 34 2a 33 32  |2,14*64+16,24*32|
00002690  2b 38 29 0d 09 1a 33 e6  30 2c 33 3a f2 62 6f 78  |+8)...3.0,3:.box|
000026a0  28 33 2a 36 34 2d 31 36  2c 31 30 31 36 2d 32 38  |(3*64-16,1016-28|
000026b0  2a 33 32 2c 31 34 2a 36  34 2b 33 32 2c 32 34 2a  |*32,14*64+32,24*|
000026c0  33 32 2b 31 36 29 0d 09  24 33 e6 30 2c 30 3a f2  |32+16)..$3.0,0:.|
000026d0  62 6f 78 28 33 2a 36 34  2d 32 34 2c 31 30 31 32  |box(3*64-24,1012|
000026e0  2d 32 38 2a 33 32 2c 31  34 2a 36 34 2b 34 38 2c  |-28*32,14*64+48,|
000026f0  32 34 2a 33 32 2b 32 34  29 0d 09 2e 22 f2 70 72  |24*32+24)...".pr|
00002700  74 28 37 2c 31 35 2c 22  57 61 76 65 20 22 2b c3  |t(7,15,"Wave "+.|
00002710  28 57 25 2b 31 29 2c 31  2c 32 29 0d 09 38 11 d1  |(W%+1),1,2)..8..|
00002720  3d 30 3a f5 fd 91 3e 31  35 30 3a db 0d 09 42 0f  |=0:...>150:...B.|
00002730  f2 64 65 63 6f 64 65 28  57 25 29 0d 09 4c 2a 3f  |.decode(W%)..L*?|
00002740  70 61 74 3d 70 61 74 31  20 83 20 32 35 36 3a 70  |pat=pat1 . 256:p|
00002750  61 74 3f 31 3d 70 61 74  31 20 81 20 32 35 36 3a  |at?1=pat1 . 256:|
00002760  41 25 3d 54 25 0d 09 56  0b d6 69 6e 69 74 61 6c  |A%=T%..V..inital|
00002770  0d 09 60 0a d6 67 65 6e  61 6c 0d 09 6a 17 fb 32  |..`..genal..j..2|
00002780  3a fb 31 32 38 3a ef 32  36 3a d6 70 73 63 6f 72  |:.128:.26:.pscor|
00002790  65 0d 09 74 0d 3f 74 79  70 61 6c 3d 54 25 0d 09  |e..t.?typal=T%..|
000027a0  7e 0e 2a 46 58 31 37 38  2c 30 2c 30 0d 09 88 09  |~.*FX178,0,0....|
000027b0  d6 67 61 6d 65 0d 09 92  10 2a 46 58 31 37 38 2c  |.game....*FX178,|
000027c0  32 35 35 2c 30 0d 09 9c  05 e1 0d 09 a6 14 dd f2  |255,0...........|
000027d0  62 6f 78 28 58 2c 59 2c  58 4c 2c 59 4c 29 0d 09  |box(X,Y,XL,YL)..|
000027e0  b0 2a ec 58 2c 59 3a df  58 2b 58 4c 2c 59 3a df  |.*.X,Y:.X+XL,Y:.|
000027f0  58 2b 58 4c 2c 59 2b 59  4c 3a df 58 2c 59 2b 59  |X+XL,Y+YL:.X,Y+Y|
00002800  4c 3a df 58 2c 59 3a e1  0d 09 ba 10 dd f2 63 68  |L:.X,Y:.......ch|
00002810  64 61 74 61 28 4e 25 29  0d 09 c4 11 ef 32 36 3a  |data(N%).....26:|
00002820  fb 31 32 38 3a fb 33 3a  db 0d 09 ce 2e f2 70 72  |.128:.3:......pr|
00002830  74 28 30 2c 31 2c 22 45  64 69 74 69 6e 67 20 57  |t(0,1,"Editing W|
00002840  61 76 65 20 22 2b c3 28  4e 25 2b 31 29 2b 22 20  |ave "+.(N%+1)+" |
00002850  3a 22 2c 31 2c 32 29 0d  09 d8 23 f2 70 72 74 28  |:",1,2)...#.prt(|
00002860  30 2c 33 2c 22 53 70 61  63 65 20 74 6f 20 66 69  |0,3,"Space to fi|
00002870  6e 69 73 68 22 2c 32 2c  31 29 0d 09 e2 35 e3 44  |nish",2,1)...5.D|
00002880  25 3d 37 20 b8 20 33 33  20 88 32 3a f2 70 72 74  |%=7 . 33 .2:.prt|
00002890  28 32 2c 44 25 2d 32 2c  bd 28 28 44 25 2d 36 29  |(2,D%-2,.((D%-6)|
000028a0  2f 32 2b 36 35 29 2b 22  2e 22 2c 32 2c 31 29 0d  |/2+65)+".",2,1).|
000028b0  09 ec 19 f2 70 72 74 28  31 34 2c 44 25 2d 32 2c  |....prt(14,D%-2,|
000028c0  22 78 22 2c 32 2c 31 29  0d 09 f6 15 42 3d 44 25  |"x",2,1)....B=D%|
000028d0  3f 28 64 61 74 61 2b 4e  25 2a 33 37 29 0d 0a 00  |?(data+N%*37)...|
000028e0  40 f1 8a 35 2c 44 25 2d  32 29 3b a4 64 69 72 28  |@..5,D%-2);.dir(|
000028f0  42 29 3b 8a 31 36 2c 44  25 2d 32 29 3b c2 22 30  |B);.16,D%-2);."0|
00002900  30 30 22 2b c3 28 44 25  3f 28 64 61 74 61 2b 4e  |00"+.(D%?(data+N|
00002910  25 2a 33 37 2b 31 29 29  2c 33 29 3b 20 0d 0a 0a  |%*37+1)),3); ...|
00002920  05 ed 0d 0a 14 05 f5 0d  0a 1e 0b f5 3a 2a 46 58  |............:*FX|
00002930  31 35 0d 0a 28 4f 41 24  3d bd 28 a5 20 80 20 32  |15..(OA$=.(. . 2|
00002940  32 33 29 3a fd 20 41 24  3e 3d 22 41 22 20 80 20  |23):. A$>="A" . |
00002950  41 24 3c 3d 22 4e 22 20  84 20 a6 28 2d 39 39 29  |A$<="N" . .(-99)|
00002960  3a e7 a6 28 2d 39 39 29  20 20 8c 20 66 6c 61 67  |:..(-99)  . flag|
00002970  3d 31 3a e5 8d 44 64 4a  20 8b 20 66 6c 61 67 3d  |=1:..DdJ . flag=|
00002980  30 0d 0a 32 41 4f 25 3d  32 2a 28 97 28 41 24 29  |0..2AO%=2*(.(A$)|
00002990  2d 36 35 29 2b 37 3a 42  25 3d 4f 25 3f 28 64 61  |-65)+7:B%=O%?(da|
000029a0  74 61 2b 4e 25 2a 33 37  29 3a fb 31 33 30 3a f1  |ta+N%*37):.130:.|
000029b0  8a 35 2c 4f 25 2d 32 29  3b a4 64 69 72 28 42 25  |.5,O%-2);.dir(B%|
000029c0  29 3b 0d 0a 3c 52 f5 3a  41 24 3d bd 28 a5 20 80  |);..<R.:A$=.(. .|
000029d0  20 32 32 33 29 3a 49 3d  a7 22 4c 52 55 44 46 20  | 223):I=."LRUDF |
000029e0  4e 41 22 2c 41 24 29 3a  e7 49 3e 30 20 8c 20 42  |NA",A$):.I>0 . B|
000029f0  25 3d 42 25 20 82 20 28  32 5e 28 38 2d 49 29 29  |%=B% . (2^(8-I))|
00002a00  3a f1 8a 35 2c 4f 25 2d  32 29 3b a4 64 69 72 28  |:..5,O%-2);.dir(|
00002a10  42 25 29 3b 0d 0a 46 3f  fd 20 41 24 3d bd 28 31  |B%);..F?. A$=.(1|
00002a20  33 29 3a 4f 25 3f 28 64  61 74 61 2b 4e 25 2a 33  |3):O%?(data+N%*3|
00002a30  37 29 3d 42 25 3a fb 31  32 38 3a f1 8a 35 2c 4f  |7)=B%:.128:..5,O|
00002a40  25 2d 32 29 3b a4 64 69  72 28 42 25 29 3b 3a fb  |%-2);.dir(B%);:.|
00002a50  31 33 30 0d 0a 50 32 42  25 3d 4f 25 3f 28 64 61  |130..P2B%=O%?(da|
00002a60  74 61 2b 4e 25 2a 33 37  2b 31 29 3a f1 8a 31 36  |ta+N%*37+1):..16|
00002a70  2c 4f 25 2d 32 29 3b 3a  42 25 3d a4 72 6f 74 28  |,O%-2);:B%=.rot(|
00002a80  42 25 2c 33 29 0d 0a 5a  18 4f 25 3f 28 64 61 74  |B%,3)..Z.O%?(dat|
00002a90  61 2b 4e 25 2a 33 37 2b  31 29 3d 42 25 0d 0a 64  |a+N%*37+1)=B%..d|
00002aa0  0b fd 66 6c 61 67 3d 31  0d 0a 6e 05 f5 0d 0a 78  |..flag=1..n....x|
00002ab0  49 db 3a f2 70 72 74 28  30 2c 31 2c 22 53 74 61  |I.:.prt(0,1,"Sta|
00002ac0  72 74 69 6e 67 20 78 63  6f 20 28 36 2d 33 30 29  |rting xco (6-30)|
00002ad0  22 2c 32 2c 31 29 3a f1  8a 39 2c 33 29 3b 3a 58  |",2,1):..9,3);:X|
00002ae0  3d a4 72 6f 74 28 3f 28  64 61 74 61 2b 4e 25 2a  |=.rot(?(data+N%*|
00002af0  33 37 29 2c 32 29 0d 0a  82 0f fd 58 3e 35 20 80  |37),2).....X>5 .|
00002b00  20 58 3c 33 31 0d 0a 8c  07 f5 3a db 0d 0a 96 4b  | X<31.....:....K|
00002b10  f2 70 72 74 28 30 2c 31  2c 22 53 74 61 72 74 69  |.prt(0,1,"Starti|
00002b20  6e 67 20 79 63 6f 20 28  31 32 2d 35 30 29 22 2c  |ng yco (12-50)",|
00002b30  32 2c 31 29 3a f1 8a 39  2c 33 29 3b 3a 59 3d a4  |2,1):..9,3);:Y=.|
00002b40  72 6f 74 28 3f 28 64 61  74 61 2b 4e 25 2a 33 37  |rot(?(data+N%*37|
00002b50  2b 31 29 2c 32 29 20 0d  0a a0 0f 59 3d 28 59 20  |+1),2) ....Y=(Y |
00002b60  80 20 26 46 45 29 0d 0a  aa 10 fd 59 3e 31 31 20  |. &FE).....Y>11 |
00002b70  80 20 59 3c 35 31 0d 0a  b4 6d 3f 28 64 61 74 61  |. Y<51...m?(data|
00002b80  2b 4e 25 2a 33 37 29 3d  58 3a 3f 28 64 61 74 61  |+N%*37)=X:?(data|
00002b90  2b 4e 25 2a 33 37 2b 31  29 3d 59 3a 53 25 3d 58  |+N%*37+1)=Y:S%=X|
00002ba0  2a 38 2b 59 2a 26 31 34  30 2f 32 2b 26 35 38 30  |*8+Y*&140/2+&580|
00002bb0  30 3a 3f 28 64 61 74 61  2b 4e 25 2a 33 37 2b 32  |0:?(data+N%*37+2|
00002bc0  29 3d 53 25 20 83 20 32  35 36 3a 3f 28 64 61 74  |)=S% . 256:?(dat|
00002bd0  61 2b 4e 25 2a 33 37 2b  33 29 3d 53 25 20 81 20  |a+N%*37+3)=S% . |
00002be0  32 35 36 0d 0a be 07 f5  3a db 0d 0a c8 6f f2 70  |256.....:....o.p|
00002bf0  72 74 28 30 2c 31 2c 22  46 69 72 65 20 66 72 65  |rt(0,1,"Fire fre|
00002c00  71 2e 20 28 35 2d 32 30  30 29 22 2c 32 2c 31 29  |q. (5-200)",2,1)|
00002c10  3a f1 8a 39 2c 33 29 3b  3a 46 3d a4 72 6f 74 28  |:..9,3);:F=.rot(|
00002c20  32 30 35 2d 3f 28 64 61  74 61 2b 4e 25 2a 33 37  |205-?(data+N%*37|
00002c30  2b 34 29 2c 33 29 3a fd  46 3e 34 20 80 20 46 3c  |+4),3):.F>4 . F<|
00002c40  32 30 31 3a 3f 28 64 61  74 61 2b 4e 25 2a 33 37  |201:?(data+N%*37|
00002c50  2b 34 29 3d 32 30 35 2d  46 0d 0a d2 70 f5 3a db  |+4)=205-F...p.:.|
00002c60  3a f2 70 72 74 28 30 2c  31 2c 22 4d 69 6e 20 66  |:.prt(0,1,"Min f|
00002c70  69 72 65 20 68 74 20 28  35 2d 34 30 29 22 2c 32  |ire ht (5-40)",2|
00002c80  2c 31 29 3a f1 8a 39 2c  33 29 3b 3a 46 3d a4 72  |,1):..9,3);:F=.r|
00002c90  6f 74 28 34 35 2d 3f 28  64 61 74 61 2b 4e 25 2a  |ot(45-?(data+N%*|
00002ca0  33 37 2b 35 29 2c 32 29  3a fd 46 3e 34 20 80 20  |37+5),2):.F>4 . |
00002cb0  46 3c 34 30 3a 3f 28 64  61 74 61 2b 4e 25 2a 33  |F<40:?(data+N%*3|
00002cc0  37 2b 35 29 3d 34 35 2d  46 0d 0a dc 6b f5 3a db  |7+5)=45-F...k.:.|
00002cd0  3a f2 70 72 74 28 30 2c  31 2c 22 4e 6f 20 69 6e  |:.prt(0,1,"No in|
00002ce0  20 77 61 76 65 20 28 35  2d 32 30 30 29 22 2c 32  | wave (5-200)",2|
00002cf0  2c 31 29 3a f1 8a 39 2c  33 29 3b 3a 46 3d a4 72  |,1):..9,3);:F=.r|
00002d00  6f 74 28 3f 28 64 61 74  61 2b 4e 25 2a 33 37 2b  |ot(?(data+N%*37+|
00002d10  36 29 2c 33 29 3a fd 46  3e 34 20 80 20 46 3c 32  |6),3):.F>4 . F<2|
00002d20  30 31 3a 3f 28 64 61 74  61 2b 4e 25 2a 33 37 2b  |01:?(data+N%*37+|
00002d30  36 29 3d 46 0d 0a e6 05  e1 0d 0a f0 10 dd a4 72  |6)=F...........r|
00002d40  6f 74 28 46 25 2c 4e 25  29 0d 0a fa 17 46 24 3d  |ot(F%,N%)....F$=|
00002d50  c2 22 30 30 30 30 30 22  2b c3 46 25 2c 4e 25 29  |."00000"+.F%,N%)|
00002d60  0d 0b 04 29 58 43 3d b1  3a 59 43 3d bc 3a fb 20  |...)XC=.:YC=.:. |
00002d70  31 33 30 3a f1 8a 58 43  2c 59 43 29 3b 46 24 3b  |130:..XC,YC);F$;|
00002d80  3a f5 3a 2a 46 58 31 35  20 0d 0b 0e 38 41 3d a5  |:.:*FX15 ...8A=.|
00002d90  2d 34 38 3a e7 41 3e 2d  31 20 80 20 41 3c 31 30  |-48:.A>-1 . A<10|
00002da0  20 8c 20 46 24 3d c2 46  24 2c 4e 25 2d 31 29 2b  | . F$=.F$,N%-1)+|
00002db0  c3 28 41 29 3a f1 8a 58  43 2c 59 43 29 3b 46 24  |.(A):..XC,YC);F$|
00002dc0  3b 0d 0b 18 1c fd 41 3d  2d 33 35 3a fb 31 32 38  |;.....A=-35:.128|
00002dd0  3a f1 8a 58 43 2c 59 43  29 3b 46 24 3b 0d 0b 22  |:..XC,YC);F$;.."|
00002de0  0a 3d a0 28 46 24 29 0d  0b 2c 0c dd a4 64 69 72  |.=.(F$)..,...dir|
00002df0  28 41 29 0d 0b 36 09 43  24 3d 22 22 0d 0b 40 26  |(A)..6.C$=""..@&|
00002e00  e7 28 41 20 80 20 31 32  38 29 20 8c 20 43 24 3d  |.(A . 128) . C$=|
00002e10  43 24 2b 22 4c 22 20 8b  20 43 24 3d 43 24 2b 22  |C$+"L" . C$=C$+"|
00002e20  20 22 0d 0b 4a 25 e7 28  41 20 80 20 36 34 29 20  | "..J%.(A . 64) |
00002e30  8c 20 43 24 3d 43 24 2b  22 52 22 20 8b 20 43 24  |. C$=C$+"R" . C$|
00002e40  3d 43 24 2b 22 20 22 0d  0b 54 25 e7 28 41 20 80  |=C$+" "..T%.(A .|
00002e50  20 33 32 29 20 8c 20 43  24 3d 43 24 2b 22 55 22  | 32) . C$=C$+"U"|
00002e60  20 8b 20 43 24 3d 43 24  2b 22 20 22 0d 0b 5e 25  | . C$=C$+" "..^%|
00002e70  e7 28 41 20 80 20 31 36  29 20 8c 20 43 24 3d 43  |.(A . 16) . C$=C|
00002e80  24 2b 22 44 22 20 8b 20  43 24 3d 43 24 2b 22 20  |$+"D" . C$=C$+" |
00002e90  22 0d 0b 68 24 e7 28 41  20 80 20 38 29 20 8c 20  |"..h$.(A . 8) . |
00002ea0  43 24 3d 43 24 2b 22 46  22 20 8b 20 43 24 3d 43  |C$=C$+"F" . C$=C|
00002eb0  24 2b 22 20 22 0d 0b 72  24 e7 28 41 20 80 20 32  |$+" "..r$.(A . 2|
00002ec0  29 20 8c 20 43 24 3d 43  24 2b 22 4e 22 20 8b 20  |) . C$=C$+"N" . |
00002ed0  43 24 3d 43 24 2b 22 20  22 0d 0b 7c 25 e7 28 41  |C$=C$+" "..|%.(A|
00002ee0  20 80 20 31 29 20 8c 20  43 24 3d 43 24 2b 22 41  | . 1) . C$=C$+"A|
00002ef0  22 20 8b 20 43 24 3d 43  24 2b 22 20 22 20 0d 0b  |" . C$=C$+" " ..|
00002f00  86 07 3d 43 24 0d 0b 90  0a dd f2 73 61 76 65 0d  |..=C$......save.|
00002f10  0b 9a 26 db 3a e8 22 53  61 76 69 6e 67 20 77 61  |..&.:."Saving wa|
00002f20  76 65 73 20 3a 20 46 69  6c 65 6e 61 6d 65 20 2e  |ves : Filename .|
00002f30  2e 2e 22 66 24 0d 0b a4  25 ff 22 53 41 56 45 20  |.."f$...%."SAVE |
00002f40  22 2b 66 24 2b 22 20 22  2b c3 7e 64 61 74 61 2b  |"+f$+" "+.~data+|
00002f50  22 20 2b 22 2b c3 7e 33  37 30 0d 0b ae 05 e1 0d  |" +"+.~370......|
00002f60  0b b8 0a dd f2 6c 6f 61  64 0d 0b c2 28 db 3a e8  |.....load...(.:.|
00002f70  22 4c 6f 61 64 69 6e 67  20 77 61 76 65 73 20 3a  |"Loading waves :|
00002f80  20 46 69 6c 65 6e 61 6d  65 20 2e 2e 2e 22 66 24  | Filename ..."f$|
00002f90  20 0d 0b cc 1a ff 22 4c  4f 41 44 20 22 2b 66 24  | ....."LOAD "+f$|
00002fa0  2b 22 20 22 2b c3 7e 64  61 74 61 0d 0b d6 05 e1  |+" "+.~data.....|
00002fb0  0d 0b e0 e9 dc 20 37 39  36 39 35 41 31 34 2c 38  |..... 79695A14,8|
00002fc0  30 43 34 46 37 42 2c 45  39 36 39 41 35 38 32 2c  |0C4F7B,E969A582,|
00002fd0  31 30 33 32 46 45 44 2c  46 30 43 33 34 33 33 30  |1032FED,F0C34330|
00002fe0  2c 45 30 46 30 46 30 46  30 2c 46 30 39 36 38 36  |,E0F0F0F0,F09686|
00002ff0  43 30 2c 33 30 37 30 46  30 46 30 2c 46 30 39 36  |C0,3070F0F0,F096|
00003000  31 36 33 30 2c 43 30 45  30 46 30 46 30 2c 46 30  |1630,C0E0F0F0,F0|
00003010  33 43 32 43 43 30 2c 37  30 46 30 46 30 46 30 2c  |3C2CC0,70F0F0F0,|
00003020  33 34 31 32 30 35 30 38  2c 38 30 35 31 32 33 34  |34120508,8051234|
00003030  2c 43 32 38 34 30 41 30  31 2c 31 30 41 38 34 43  |,C2840A01,10A84C|
00003040  32 2c 33 34 31 45 30 31  30 30 2c 31 31 45 33 34  |2,341E0100,11E34|
00003050  2c 43 32 38 37 30 38 30  30 2c 38 38 37 43 32 2c  |,C2870800,887C2,|
00003060  34 42 34 42 30 44 30 39  2c 31 30 33 32 35 34 33  |4B4B0D09,1032543|
00003070  2c 34 41 34 41 30 36 30  32 2c 38 38 34 34 38 2c  |,4A4A0602,88448,|
00003080  34 33 32 35 30 33 30 31  2c 39 30 44 34 42 34 42  |43250301,90D4B4B|
00003090  2c 34 38 38 34 30 38 30  30 0d 0b ea 4b dc 20 32  |,48840800...K. 2|
000030a0  30 36 34 41 34 41 2c 31  31 34 34 32 32 38 38 2c  |064A4A,11442288,|
000030b0  38 38 35 35 36 36 2c 32  32 43 43 38 38 32 32 2c  |885566,22CC8822,|
000030c0  32 32 38 38 34 34 2c 34  34 32 32 38 38 2c 38 38  |228844,442288,88|
000030d0  31 31 30 30 2c 32 32 38  38 30 30 32 32 2c 32 32  |1100,22880022,22|
000030e0  38 38 34 34 0d 0b f4 eb  dc 20 36 34 42 30 31 34  |8844..... 64B014|
000030f0  30 36 2c 34 30 33 43 32  33 37 38 2c 32 30 30 33  |06,403C2378,2003|
00003100  36 30 30 37 2c 41 32 30  31 41 30 30 32 2c 38 30  |6007,A201A002,80|
00003110  31 45 31 30 30 31 2c 36  30 30 34 31 30 30 35 2c  |1E1001,60041005,|
00003120  46 34 30 30 41 2c 30 2c  30 2c 37 30 32 32 30 36  |F400A,0,0,702206|
00003130  30 30 2c 33 37 32 37 33  37 36 44 2c 36 36 34 30  |00,3727376D,6640|
00003140  42 34 34 2c 33 41 34 30  31 32 36 2c 33 39 34 30  |B44,3A40126,3940|
00003150  34 38 34 2c 33 35 34 30  35 31 34 2c 34 30 31 30  |484,3540514,4010|
00003160  35 2c 34 30 30 30 34 2c  34 30 30 30 34 2c 31 45  |5,40004,40004,1E|
00003170  30 36 32 38 30 35 2c 32  36 31 39 36 41 46 30 2c  |062805,26196AF0,|
00003180  31 32 30 46 31 30 32 38  2c 34 34 30 33 35 34 30  |120F1028,4403540|
00003190  31 2c 32 30 30 33 36 30  30 33 2c 34 34 30 33 36  |1,20036003,44036|
000031a0  34 32 30 2c 31 30 30 33  35 30 30 33 2c 34 30 30  |420,10035003,400|
000031b0  30 35 30 41 2c 30 2c 38  30 35 44 43 30 30 2c 35  |050A,0,805DC00,5|
000031c0  33 36 32 34 30 31 30 2c  35 34 34 33 37 32 33 0d  |3624010,5443723.|
000031d0  0b fe ea dc 20 42 34 34  30 31 34 36 2c 32 31 34  |.... B440146,214|
000031e0  30 32 35 34 2c 31 30 38  34 30 32 39 34 2c 32 31  |0254,10840294,21|
000031f0  34 30 32 39 34 2c 31 30  35 30 32 35 34 2c 34 30  |40294,1050254,40|
00003200  30 30 34 2c 39 41 30 36  30 30 30 34 2c 36 30 46  |004,9A060004,60F|
00003210  30 30 45 30 36 2c 35 30  33 43 32 38 33 37 2c 35  |00E06,503C2837,5|
00003220  34 30 31 35 36 30 35 2c  36 30 31 36 38 30 31 30  |4015605,60168010|
00003230  2c 31 34 30 42 38 34 31  36 2c 33 43 2c 34 30 30  |,140B8416,3C,400|
00003240  30 34 30 30 2c 30 2c 34  45 30 30 30 34 30 30 2c  |0400,0,4E000400,|
00003250  37 30 33 32 30 36 30 37  2c 34 36 32 38 36 43 37  |70320607,46286C7|
00003260  37 2c 31 32 36 30 38 32  34 2c 34 32 34 30 31 36  |7,1260824,424016|
00003270  34 2c 32 32 34 30 31 36  34 2c 41 34 34 30 31 36  |4,2240164,A44016|
00003280  34 2c 41 34 34 30 35 30  34 2c 32 31 34 30 31 35  |4,A440504,214015|
00003290  34 2c 32 38 38 34 2c 43  31 32 30 43 30 38 2c 32  |4,2884,C120C08,2|
000032a0  33 30 35 36 30 31 30 2c  31 36 30 35 31 34 36 34  |3056010,16051464|
000032b0  2c 39 30 31 34 31 30 30  31 0d 0c 08 eb dc 20 34  |,90141001..... 4|
000032c0  34 30 36 31 34 30 38 2c  41 30 30 36 32 30 31 30  |4061408,A0062010|
000032d0  2c 34 31 45 32 34 30 37  2c 30 2c 34 30 30 30 34  |,41E2407,0,40004|
000032e0  30 30 2c 36 30 38 43 30  30 30 2c 46 36 32 33 30  |00,608C000,F6230|
000032f0  31 30 2c 32 34 31 30 36  33 32 38 2c 31 34 32 30  |10,24106328,1420|
00003300  35 34 30 2c 31 34 32 30  31 34 34 30 2c 31 30 31  |540,14201440,101|
00003310  31 38 38 30 2c 30 2c 30  2c 30 2c 37 45 30 39 30  |1880,0,0,0,7E090|
00003320  30 30 30 2c 36 31 30 30  30 45 30 38 2c 31 34 36  |000,61000E08,146|
00003330  34 32 32 36 39 2c 31 30  30 31 31 32 30 38 2c 41  |42269,10011208,A|
00003340  34 30 46 34 34 30 36 2c  31 30 31 30 44 2c 34 30  |40F4406,1010D,40|
00003350  30 30 34 30 30 2c 30 2c  34 30 30 30 34 30 30 2c  |00400,0,4000400,|
00003360  33 32 30 30 30 30 30 30  2c 46 30 30 45 30 36 30  |32000000,F00E060|
00003370  41 2c 35 41 32 38 35 30  36 30 2c 31 34 32 30 36  |A,5A285060,14206|
00003380  34 30 2c 32 31 30 31 32  34 30 2c 32 31 30 31 39  |40,2101240,21019|
00003390  38 30 2c 32 30 31 30 31  30 34 30 2c 31 45 34 30  |80,20101040,1E40|
000033a0  30 46 30 30 0d 0c 12 12  dc 20 30 2c 30 2c 33 41  |0F00..... 0,0,3A|
000033b0  33 30 46 30 30 41 0d ff                           |30F00A..|
000033b8
INVADER.m0
INVADER.m1
INVADER.m2
INVADER.m4
INVADER.m5