1GOTO20 2*L.ELITEB 3GOTO20 4*L.ELITEA 6*L.ELITEC 7GOTO20 8*L.ELITED 9GOTO20 10*L.ELITEE 11GOTO20 12*L.ELITEF 20REM ELITE 100H%=L%+P%-C%:O%=W%:A$="(C)Bell/Braben1984":B$=STRING$(26," "):B$="":FORI%=1TOLENA$:B$=B$+CHR$(ASC(MID$(A$,I%,1))EOR&A4):NEXT:[OPTZ:EQUSB$ 190.cpl LDX#5:.TT53 LDAQQ15,X:STAQQ19,X:DEX:BPLTT53:LDY#3:BITQQ15:BVSP%+3:DEY:STYT:.TT55 LDAQQ15+5:AND#31:BEQP%+7:ORA#128:JSRTT27:JSRTT54:DECT:BPLTT55:LDX#5:.TT56 LDAQQ19,X:STAQQ15,X:DEX:BPLTT56:RTS 200.cmn LDY#0:.QUL4 LDANA%,Y:CMP#13:BEQypl-1:JSRTT26:INY:BNEQUL4:RTS 300.ypl LDAMJ:BNEcmn-1:JSRTT62:JSRcpl:.TT62 LDX#5:.TT78 LDAQQ15,X:LDYQQ2,X:STAQQ2,X:STYQQ15,X:DEX:BPLTT78:RTS 500.tal CLC:LDXGCNT:INX:JMPpr2:.fwl LDA#105:JSRTT68:LDXQQ14:SEC:JSRpr2:LDA#195:JSRplf:.PCASH LDA#119:BNETT27 510.csh LDX#3:.pc1 LDACASH,X:STAK,X:DEX:BPLpc1:LDA#9:STAU:SEC:JSRBPRNT:LDA#226:.plf JSRTT27:JMPTT67:.TT68 JSRTT27:.TT73 LDA#&3A 600.TT27 TAX:BEQcsh:BMITT43:DEX:BEQtal:DEX:BEQypl:dex:bneP%+5:JMPcpl:dex:beqcmn:dex:beqfwl:dex:bneP%+7:LDA#128:STAQQ17:RTS:DEX:DEX:BNEP%+5:STXQQ17:RTS:dex:beqcrlf:CMP#&60:BCSex:CMP#14:BCCP%+6:CMP#32:BCCqw:LDXQQ17 620BEQTT74:BMITT41:BITQQ17:BVSTT46:.TT42 CMP#65:BCCTT44:CMP#&5B:BCSTT44:ADC#32:.TT44 JMPTT26:.TT41 BITQQ17:BVSTT45:CMP#65:BCCTT74:PHA:TXA:ORA#64:STAQQ17:PLA:BNETT44 630.qw ADC#114:BNEex:.crlf LDA#21:STAXC:BNETT73:.TT45 CPX#FF:BEQTT48:CMP#65:BCSTT42:.TT46 PHA:TXA:AND#191:STAQQ17:PLA:.TT74 JMPTT26:.TT43 CMP#160:BCSTT47:AND#127:ASLA:TAY:LDAQQ16,Y 670JSRTT27:LDAQQ16+1,Y:CMP#63:BEQTT48:JMPTT27:.TT47 SBC#160:.ex TAX:LDA#(QQ18 MOD256):STAV:LDA#(QQ18 DIV256):STAV+1:LDY#0:TXA:BEQTT50 680.TT51 LDA(V),Y:BEQTT49:INY:BNETT51:INCV+1:BNETT51:.TT49 INY:BNETT59:INCV+1:.TT59 DEX:BNETT51:.TT50 693TYA:PHA:LDAV+1:PHA:LDA(V),Y:EOR#35 695JSRTT27:PLA:STAV+1:PLA:TAY:INY:BNEP%+4:INCV+1:LDA(V),Y:BNETT50:.TT48 RTS 1990.EX2 LDAINWK+31:ORA#&A0:STAINWK+31:RTS 2000.DOEXP LDAINWK+31:AND#64:BEQP%+5:JSRPTCLS:LDAINWK+6:STAT:LDAINWK+7:CMP#&20:BCCP%+6:LDA#&FE:BNEyy:ASLT:ROLA:ASLT:ROLA:SEC:ROLA:.yy STAQ:LDY#1:LDA(XX19),Y:ADC#4:BCSEX2 2040STA(XX19),Y:JSRDVID4:LDAP:CMP#&1C:BCCP%+6:LDA#&FE:BNE`_:ASLR:ROLA:ASLR:ROLA:ASLR:ROLA:.`_ DEY:STA(XX19),Y:LDAINWK+31:AND#&BF:STAINWK+31:AND#8:BEQTT48 2050LDY#2:LDA(XX19),Y:TAY:.EXL1 LDAXX3-7,Y:STA(XX19),Y:DEY:CPY#6:BNEEXL1:LDAINWK+31:ORA#64:STAINWK+31 2100.PTCLS LDY#0:LDA(XX19),Y:STAQ:INY:LDA(XX19),Y:BPLP%+4:EOR#FF:LSRA:LSRA:LSRA:ORA#1:STAU:INY:LDA(XX19),Y:STATGT:LDARAND+1:PHA 2110LDY#6:.EXL5 LDX#3:.EXL3 INY:LDA(XX19),Y:STAK3,X:DEX:BPLEXL3:STYCNT:LDY#2:.EXL2 INY:LDA(XX19),Y:EORCNT:STARAND-3,Y:CPY#6:BNEEXL2:LDYU 2140.EXL4 JSRDORND2:STAZZ:LDAK3+1:STAR:LDAK3:JSREXS1:BNEEX11:CPX#2*Y-1:BCSEX11:STXY1:LDAK3+3:STAR:LDAK3+2:JSREXS1:BNEEX4:LDAY1:JSRPIXEL:.EX4 DEY:BPLEXL4:LDYCNT:CPYTGT:BCCEXL5 2180PLA:STARAND+1:LDAK%+6:STARAND+3:RTS:.EX11 JSRDORND2:JMPEX4 2200.EXS1 STAS:JSRDORND2:ROLA:BCSEX5:JSRFMLTU:ADCR:TAX:LDAS:ADC#0:RTS 2210.EX5 JSRFMLTU:STAT:LDAR:SBCT:TAX:LDAS:SBC#0:RTS 3008.SOS1 JSRmsblob:LDA#127:STAINWK+29:STAINWK+30:LDAtek:AND#2:ORA#128:JMPNWSHP 3010.SOLAR LSRFIST:JSRZINF:LDAQQ15+1:AND#7:ADC#6:LSRA:STAINWK+8:RORA:STAINWK+2:STAINWK+5 3020JSRSOS1:LDAQQ15+3:AND#7:ORA#129:STAINWK+8:LDAQQ15+5:AND#3:STAINWK+2:STAINWK+1:LDA#0:STAINWK+29:STAINWK+30:LDA#&81:JSRNWSHP 3600.NWSTARS LDAQQ11:\ORAMJ:BNEWPSHPS:.nWq LDYNOSTM:.SAL4 JSRDORND:ORA#8:STASZ,Y:STAZZ:JSRDORND:STASX,Y:STAX1:JSRDORND:STASY,Y:STAY1:JSRPIXEL2:DEY:BNESAL4 3710.WPSHPS LDX#0:.WSL1 LDAFRIN,X:BEQWS2:BMIWS1:STATYPE:JSRGINF:LDY#31 3730.WSL2 LDA(INF),Y:STAINWK,Y:DEY:BPLWSL2:STXXSAV:JSRSCAN:LDXXSAV:LDY#31:LDA(INF),Y:AND#&A7:STA(INF),Y:.WS1 INX:BNEWSL1:.WS2 LDX#FF:STXLSX2:STXLSY2 3740.FLFLLS LDY#2*Y-1:LDA#0:.SAL6 STALSO,Y:DEY:BNESAL6:DEY:STYLSX:RTS 3810.DET1 LDA#6:SEI:STA&FE00:STX&FE01:CLI:RTS 3900DEX:RTS:.SHD INX:BEQSHD-2:.DENGY DECENERGY:PHP:BNEP%+5:INCENERGY:PLP:RTS 4000.COMPAS JSRDOT:LDASSPR:BNESP1:JSRSPS1:JMPSP2:.SPS2 ASLA:TAX:LDA#0:RORA:TAY:LDA#20 \14:STAQ:TXA:JSRDVID4:LDXP 4080TYA:BMILL163:LDY#0:RTS:.LL163 LDY#FF:TXA:EOR#FF:TAX:INX:RTS 4090.SPS4 LDX#8:.SPL1 LDAK%+NI%,X:STAK3,X:DEX:BPLSPL1:JMPTAS2 4100.SP1 JSRSPS4:.SP2 LDAXX15:JSRSPS2:TXA:ADC#195\X-1:STACOMX:LDAXX15+1:JSRSPS2:STXT:LDA#204:SBCT:STACOMY 4130LDA#&F0:LDXXX15+2:BPLP%+4:LDA#FF:STACOMC 4200.DOT LDACOMY:STAY1:LDACOMX:STAX1:LDACOMC:STACOL:CMP#&F0:BNECPIX2:.CPIX4 JSRCPIX2:DECY1:.CPIX2 LDAY1 4250\.CPIX:TAY:LSRA:LSRA:LSRA:ORA#&60:STASCH:LDAX1:AND#&F8:STASC:TYA:AND#7:TAY:LDAX1:AND#6:LSRA:TAX:LDACTWOS,X:ANDCOL:EOR(SC),Y:STA(SC),Y 4260LDACTWOS+1,X:BPLCP1:LDASC:ADC#8:STASC:LDACTWOS+1,X:.CP1 ANDCOL:EOR(SC),Y:STA(SC),Y:RTS 4300.OOPS STAT:LDY#8:LDX#0:LDA(INF),Y:BMIOO1:LDAFSH:SBCT:BCCOO2:STAFSH:RTS:.OO2 \LDX#0:STXFSH:BCCOO3:.OO1 LDAASH:SBCT:BCCOO5:STAASH:RTS:.OO5 \LDX#0:STXASH:.OO3 ADCENERGY:STAENERGY:BEQP%+4:BCSP%+5:JMPDEATH:JSREXNO3:JMPOUCH 4410.SPS3 LDAK%+1,X:STAK3,X:LDAK%+2,X:TAY:AND#127:STAK3+1,X:TYA:AND#128:STAK3+2,X:RTS 4450.GINF TXA:ASLA:TAY:LDAUNIV,Y:STAINF:LDAUNIV+1,Y:STAINF+1:RTS 4480.NWSPS JSRSPBLB:LDX#1:STXINWK+32:DEX:STXINWK+30:\STXINWK+31:STXFRIN+1:DEX:STXINWK+29:LDX#10:JSRNwS1:JSRNwS1:JSRNwS1 4490LDA#(LSO MOD256):STAINWK+33:LDA#(LSO DIV256):STAINWK+34:LDA#SST 4500.NWSHP STAT:LDX#0:.NWL1 LDAFRIN,X:BEQNW1:INX:CPX#NOSH:BCCNWL1:.NW3 CLC:RTS 4510.NW1 JSRGINF:LDAT:BMINW2:ASLA:TAY:LDAXX21-2,Y:STAXX0:LDAXX21-1,Y:STAXX0+1:CPY#2*SST:BEQNW6:LDY#5:LDA(XX0),Y:STAT1:LDASLSP:SEC:SBCT1:STAINWK+33:LDASLSP+1:SBC#0:STAINWK+34 4530LDAINWK+33:\SEC:SBCINF:TAY:LDAINWK+34:SBCINF+1:BCCNW3+1:BNENW4:CPY#NI%:BCCNW3+1:.NW4 4550LDAINWK+33:STASLSP:LDAINWK+34:STASLSP+1:.NW6 LDY#14:LDA(XX0),Y:STAINWK+35:LDY#19:LDA(XX0),Y:AND#7:STAINWK+31 4560LDAT:.NW2 STAFRIN,X:TAX:BMIP%+5:INCMANY,X:LDY#(NI%-1):.NWL3 LDAINWK,Y:STA(INF),Y:DEY:BPLNWL3:SEC:RTS 4600.NwS1 LDAINWK,X:EOR#128:STAINWK,X:INX:INX:RTS 4710.ABORT LDX#FF:.ABORT2 STXMSTG:LDXNOMSL:JSRMSBAR:STYMSAR:RTS 4730.ECBLB2 LDA#32:STAECMA:ASLA:JSRNOISE:.ECBLB LDA#7*8:\" <<120<":LDX#(ECBT MOD256):LDY#(ECBT DIV256):BNEBULB-2 4740.SPBLB LDA#24*8:\"†<<128<":LDX#(SPBT MOD256):LDY#(SPBT DIV256):.BULB STASC:STXP+1:STYP+2:LDA#&7D:JMPRREN 4800.ECBT EQUW&E0E0:EQUB&80:.SPBT EQUD&E080E0E0:EQUD&E0E020E0 4900.MSBAR TXA:ASLA:ASLA:ASLA:STAT:LDA#49\113:SBCT:STASC:LDA#&7E:STASCH:TYA:LDY#5:.MBL1 STA(SC),Y:DEY:BNEMBL1:RTS 5000.PROJ LDAINWK:STAP:LDAINWK+1:STAP+1:LDAINWK+2:JSRPLS6:BCSPL2-1:LDAK:ADC#X:STAK3:TXA:ADC#0:STAK3+1 5010LDAINWK+3:STAP:LDAINWK+4:STAP+1:LDAINWK+5:EOR#128:JSRPLS6:BCSPL2-1:LDAK:ADC#Y:STAK4:TXA:ADC#0:STAK4+1:CLC:RTS 5020.PL2 LDATYPE:LSRA:BCSP%+5:JMPWPLS2:JMPWPLS 5040.PLANET LDAINWK+8:BMIPL2:CMP#48:BCSPL2:ORAINWK+7:BEQPL2:JSRPROJ:BCSPL2 5090LDA#96:STAP+1:LDA#0:STAP:JSRDVID3B2:LDAK+1:BEQPL82:LDA#&F8:STAK:.PL82 5110LDATYPE:LSRA:BCCPL9:JMPSUN:.PL9 JSRWPLS2:JSRCIRCLE:BCSPL20:LDAK+1:BEQPL25:.PL20 RTS 5160.PL25 LDATYPE:CMP#&80:BNEPL26:LDAK:CMP#6:BCCPL20:LDAINWK+14:EOR#128:STAP:LDAINWK+20:JSRPLS4:LDX#9:JSRPLS1:STAK2:STYXX16:JSRPLS1:STAK2+1:STYXX16+1:LDX#15:JSRPLS5 5230JSRPLS2:LDAINWK+14:EOR#128:STAP:LDAINWK+26:JSRPLS4 5240LDX#21:JSRPLS5:JMPPLS2 5270.PL26\crtr:LDAINWK+20:BMIPL20 5280LDX#15:JSRPLS3:CLC:ADCK3:STAK3:TYA:ADCK3+1:STAK3+1:JSRPLS3:STAP:LDAK4:SEC:SBCP:STAK4:STYP:LDAK4+1:SBCP:STAK4+1 5300LDX#9:JSRPLS1:LSRA:STAK2:STYXX16:JSRPLS1:LSRA:STAK2+1:STYXX16+1 5310LDX#21:JSRPLS1:LSRA:STAK2+2:STYXX16+2:JSRPLS1:LSRA:STAK2+3:STYXX16+3 5320LDA#64:STATGT:LDA#0:STACNT2:JMPPLS22 5330.PLS1 LDAINWK,X:STAP:LDAINWK+1,X:AND#127:STAP+1:LDAINWK+1,X:AND#128 5340JSRDVID3B2:LDAK:LDYK+1:BEQP%+4:LDA#&FE:LDYK+3:INX:INX:RTS 5350.PLS2 LDA#31:STATGT:.PLS22 LDX#0:STXCNT:DEX:STXFLAG:.PLL4 5360LDACNT2:AND#31:TAX:LDASNE,X:STAQ:LDAK2+2:JSRFMLTU:STAR:LDAK2+3:JSRFMLTU:STAK:LDXCNT2:CPX#33:LDA#0:RORA:STAXX16+5 5370LDACNT2:CLC:ADC#16:AND#31:TAX:LDASNE,X:STAQ:LDAK2+1:JSRFMLTU:STAK+2:LDAK2:JSRFMLTU:STAP:LDACNT2:ADC#15:AND#63:CMP#33:LDA#0:RORA:STAXX16+4 5380LDAXX16+5:EORXX16+2:STAS:LDAXX16+4:EORXX16:JSRADD:STAT:BPLPL42:TXA:EOR#FF:CLC:ADC#1:TAX:LDAT:EOR#&7F:ADC#0:STAT:.PL42:TXA:ADCK3:STAK6:LDAT:ADCK3+1:STAK6+1 5390LDAK:STAR:LDAXX16+5:EORXX16+3:STAS:LDAK+2:STAP:LDAXX16+4:EORXX16+1:JSRADD:EOR#128:STAT:BPLPL43:TXA:EOR#FF:CLC:ADC#1:TAX:LDAT:EOR#&7F:ADC#0:STAT:.PL43 5400JSRBLINE:CMPTGT:BEQP%+4:BCSPL40:LDACNT2:CLC:ADCSTP:AND#63:STACNT2:JMPPLL4:.PL40 RTS 5410JMPWPLS:.PLF3 TXA:EOR#FF:CLC:ADC#1:TAX:.PLF17 LDA#FF:JMPPLF5 5430.SUN LDA#1:STALSX:JSRCHKON:BCSPLF3-3:LDA#0:LDXK:CPX#&60:ROLA:CPX#&28:ROLA:CPX#&10:ROLA 5450.PLF18 STACNT:LDA#2*Y-1:LDXP+2:BNEPLF2:CMPP+1:BCCPLF2:LDAP+1:BNEPLF2:LDA#1:.PLF2 STATGT 5460LDA#2*Y-1:SEC:SBCK4:TAX:LDA#0:SBCK4+1:BMIPLF3:BNEPLF4:INX:DEX:BEQPLF17:CPXK:BCCPLF5:.PLF4 LDXK:LDA#0:.PLF5 STXV:STAV+1 5470LDAK:JSRSQUA2:STAK2+1:LDAP:STAK2:LDY#2*Y-1:LDASUNX:STAYY:LDASUNX+1:STAYY+1:.PLFL2 CPYTGT:BEQPLFL:LDALSO,Y:BEQPLF13:JSRHLOIN2:.PLF13 DEY:BNEPLFL2 5480.PLFL LDAV:JSRSQUA2:STAT:LDAK2:SEC:SBCP:STAQ:LDAK2+1:SBCT:STAR:STYY1:JSRLL5:LDYY1:JSRDORND:ANDCNT:CLC:ADCQ:BCCPLF44:LDA#FF:.PLF44 5490LDXLSO,Y:STALSO,Y:BEQPLF11:LDASUNX:STAYY:LDASUNX+1:STAYY+1:TXA:JSREDGES:LDAX1:STAXX:LDAX2:STAXX+1 5500LDAK3:STAYY:LDAK3+1:STAYY+1:LDALSO,Y:JSREDGES:BCSPLF23:LDAX2:LDXXX:STXX2:STAXX:JSRHLOIN:.PLF23 LDAXX:STAX1:LDAXX+1:STAX2:.PLF16 JSRHLOIN:.PLF6 5530DEY:BEQPLF8:LDAV+1:BNEPLF10:DECV:BNEPLFL:DECV+1:.PLFLS JMPPLFL 5535.PLF11 LDXK3:STXYY:LDXK3+1:STXYY+1:JSREDGES:BCCPLF16:LDA#0:STALSO,Y:BEQPLF6 5540.PLF10 LDXV:INX:STXV:CPXK:BCCPLFLS:BEQPLFLS:LDASUNX:STAYY:LDASUNX+1:STAYY+1:.PLFL3 LDALSO,Y:BEQPLF9:JSRHLOIN2 5550.PLF9 DEY:BNEPLFL3:.PLF8 CLC:LDAK3:STASUNX:LDAK3+1:STASUNX+1:.RTS2 RTS 5600.CIRCLE JSRCHKON:BCSRTS2 5610LDA#0:STALSX2 5700LDXK:LDA#8:CPX#8:BCCPL89:LSRA:CPX#60:BCCPL89:LSRA:.PL89 STASTP:.CIRCLE2 LDX#FF:STXFLAG:INX:STXCNT:.PLL3 5710LDACNT:JSRFMLTU2:LDX#0:STXT:LDXCNT:CPX#33:BCCPL37:EOR#FF:ADC#0:TAX:LDA#FF:ADC#0:STAT:TXA:CLC 5720.PL37 ADCK3:STAK6:LDAK3+1:ADCT:STAK6+1 5730LDACNT:CLC:ADC#16:JSRFMLTU2:TAX:LDA#0:STAT:LDACNT:ADC#15:AND#63:CMP#33:BCCPL38:TXA:EOR#FF:ADC#0:TAX:LDA#FF:ADC#0:STAT:CLC 5740.PL38 JSRBLINE:CMP#65:BCSP%+5:JMPPLL3:CLC:RTS 5750.WPLS2 LDYLSX2:BNEWP1:.WPL1 CPYLSP:BCSWP1:LDALSY2,Y:CMP#FF:BEQWP2:STAY2:LDALSX2,Y:STAX2:JSRLOIN:INY:LDASWAP:BNEWPL1 5760LDAX2:STAX1:LDAY2:STAY1:JMPWPL1:.WP2 INY:LDALSX2,Y:STAX1:LDALSY2,Y:STAY1:INY:JMPWPL1:.WP1 LDA#1:STALSP:LDA#FF:STALSX2:RTS 5790.WPLS LDALSX:BMIWPLS-1:LDASUNX:STAYY:LDASUNX+1:STAYY+1:LDY#2*Y-1:.WPL2 LDALSO,Y:BEQP%+5:JSRHLOIN2:DEY:BNEWPL2:DEY:STYLSX:RTS 5800.EDGES STAT:CLC:ADCYY:STAX2:LDAYY+1:ADC#0:BMIED1:BEQP%+6:LDA#254:STAX2 5810LDAYY:SEC:SBCT:STAX1:LDAYY+1:SBC#0:BNEED3:CLC:RTS 5820.ED3 BPLED1:LDA#2:STAX1:CLC:RTS:.ED1 LDA#0:STALSO,Y:SEC:RTS 5850.CHKON LDAK3:CLC:ADCK:LDAK3+1:ADC#0:BMIPL21:LDAK3:SEC:SBCK:LDAK3+1:SBC#0:BMIPL31:BNEPL21:.PL31 5860LDAK4:CLC:ADCK:STAP+1:LDAK4+1:ADC#0:BMIPL21:STAP+2:LDAK4:SEC:SBCK:TAX:LDAK4+1:SBC#0:BMIPL44:BNEPL21:CPX#2*Y-1:RTS:.PL21 SEC:RTS 5900.PLS3 JSRPLS1:STAP:LDA#222:STAQ:STXU:JSRMULTU:LDXU:LDYK+3:BPLPL12:EOR#FF:CLC:ADC#1:BEQPL12:LDY#FF:RTS:.PL12 LDY#0:RTS 5910.PLS4 STAQ:JSRARCTAN:LDXINWK+14:BMIP%+4:EOR#128:LSRA:LSRA:STACNT2:RTS 5920.PLS5 JSRPLS1:STAK2+2:STYXX16+2:JSRPLS1:STAK2+3:STYXX16+3:RTS 5930.PLS6 JSRDVID3B2:LDAK+3:AND#127:ORAK+2:BNEPL21:LDXK+1:CPX#4:BCSPL6:LDAK+3:\CLC:BPLPL6:LDAK:EOR#FF:ADC#1:STAK:TXA:EOR#FF:ADC#0:TAX:.PL44 CLC:.PL6 RTS 7200.TT17 JSRDOKEY:LDAJSTK:BEQTJ1:LDAJSTX:EOR#FF:JSRTJS1:TYA:TAX 7210LDAJSTY:.TJS1 TAY:LDA#0:CPY#&10:SBC#0:\CPY#&20SBC#0:CPY#&40:SBC#0:CPY#&C0:ADC#0:CPY#&E0:ADC#0:\CPY#&F0ADC#0 7220TAY:LDAKL:RTS 7250.TJ1 LDAKL:LDX#0:LDY#0:CMP#&19:BNEP%+3:DEX:CMP#&79:BNEP%+3:INX:CMP#&39:BNEP%+3:INY:CMP#&29:BNEP%+3:DEY:RTS 7550.ping LDX#1:.pl1 LDAQQ0,X:STAQQ9,X:DEX:BPLpl1:RTS 9500]PRINT"E d,"; 9710IFZ>4OSCLI("S.ELTE "+STR$~W%+" "+STR$~O%+" "+STR$~L%+" "+STR$~H%) 9720GOTO12