-
Notifications
You must be signed in to change notification settings - Fork 40
Expand file tree
/
Copy pathC.ELITEA.TXT
More file actions
231 lines (231 loc) · 16.5 KB
/
C.ELITEA.TXT
File metadata and controls
231 lines (231 loc) · 16.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
1GOTO20
2*L.ELITEB
3GOTO20
4*L.ELITEA
5GOTO120
20REM ELITE <A> C64
40LOMEM=&5000
50VIC=&D000:SID=&D400:CIA=&DC00:CIA2=&DD00:l1=1
60KEY1=&36:KEY2=&49
70USA%=TRUE
80IF USA% INPUT"Do you really want USA%=TRUE"A$
90IF NOT USA% PALCK=311 MOD256
100B%=&1D00:C%=&7300:W%=&A700:L%=&2000:HIMEM=W%:Z=0:SNE=&AC0:ACT=&AE0:FONT=&B00:TAP%=&CF00
110F%=&8888:G%=&8888:R%=&8888:KEYLOOK=&4444:musicstart=&8888
115DIMTEMPCODE%100
120NTY=33:D%=&D000:E%=D%+2*NTY:KWL%=E%+NTY:KWH%=E%+2*NTY:DSTORE%=&6800:WP=&580:UP=&400:K%=&F000:QQ16=FNUT(65):LS%=&FFC0:QQ18=&700:SCBASE=&4000:DLOC%=SCBASE+18*8*40
130NMIV=&318:BRKV=&316:IRQV=&314
135KERNALSETLFS=&FFBA:KERNALSETNAM=&FFBD:KERNALSVE=&FFD8:KERNALSETMSG=&FF90:KERNALLOAD=&FFD5:CHRV=&326
140LP=K%+&400
200MSL=1:SST=2:ESC=3:PLT=4:OIL=5:AST=7:SPL=8:SHU=9:CYL=11:ANA=14:HER=15:COPS=16:SH3=17:KRA=19:ADA=20:WRM=23:CYL2=24:ASP=25:THG=29:TGL=30:CON=31:COU=32:DOD=33
220NOST=12:NOSH=10 : REM NOST=18:NOSH=20
225JL=ESC:JH=SHU+2:PACK=SH3:NI%=37:POW=15:B=&30
230Armlas=INT(128.5+1.5*POW):Mlas=50:NRU%=0:VE=&57:LL=30
500RED=&55:YELLOW=&AA:GREEN=&FF:REM Colours Masks for Dials
510RED2=&27:GREEN2=&57:YELLOW2=&87:BLACK2=&B7:REM Colours for Missile Blobs
520MAG2=&40:REM Colour for player input
530BLUE=YELLOW:CYAN=YELLOW:MAG=YELLOW:WHITE=&5A
700sfxplas=0:sfxelas=1:sfxhit=2:sfxexpl=3:sfxwhosh=4:sfxbeep=5:sfxboop=6:sfxhyp1=7:sfxeng=8:sfxecm=9:sfxblas=10:sfxalas=11:sfxmlas=12:sfxbomb=13:sfxtrib=14:sfxelas2=15
1000FF=&FF:XX21=D%: REM OSWRCH=&FFEE:OSBYTE=&FFF4:OSWORD=&FFF1:OSFILE=&FFDD:SCLI=&FFF7
1010SETXC=&85:SETYC=&86:clyns=&87:DODIALS=&8A:RDPARAMS=&88:DOmsbar=242:wscn=243:onescan=244:DOhfx=&84:DOdot=245:DOFE21=&83:VIAE=&8B:DOBULB=&8C:DODKS4=246:DOCATF=&8D:SETCOL=&8E:SETVDU19=&8F:DOsvn=&90
1020ZP=2:X=128:Y=72:RAND=FNZT(4):T1=FNZ:SC=FNZ2:SCH=SC+1
1025INWK=FNZT(NI%):NEWB=INWK+36:XX19=INWK+33:XX1=INWK
1030P=FNZT(3):XC=FNZ:COL=FNZ:YC=FNZ:QQ17=FNZ:XX2=FNZT(16):K3=XX2:K4=XX2+14:XX16=FNZT(18) :REM ZP up to K3+1 always paged in
1060XX0=FNZ2:INF=FNZ2:V=FNZ2:XX=FNZ2:YY=FNZ2:SUNX=FNZ2:BETA=FNZ:BET1=FNZ:QQ22=FNZ2:ECMA=FNZ:ALP1=FNZ:ALP2=FNZ2
1120XX15=FNZT(6):XX12=FNZT(6):X1=XX15:Y1=X1+1:X2=Y1+1:Y2=X2+1:K=FNZT(4)
1124LAS=FNZ:MSTG=FNZ:thiskey=FNZ:KL=FNUT(17) : REM ****
1125DINT=&2E:FINT=&2B:HINT=&23:OINT=&1A:YINT=&27
1126f1=&08:f2=&05:f3=&38:f4=&35:f5=&30:f6=&2D:f7=&28:f8=&25:f9=&20:f0=&3C:f12=&3B:f22=&3A:f32=&3D
1127KLO=KEYLOOK
1128KY1=KLO+9:KY2=KLO+4:KY3=KLO+&11:KY4=KLO+&14:KY5=KLO+&29:KY6=KLO+&33:KY7=KLO+&36:KY12=KLO+&03:KY13=KLO+&07:KY14=KLO+&2A:KY15=KLO+&22:KY16=KLO+&1C:KY17=KLO+&32:KY18=KLO+&1E:KY19=KLO+&2C:KY20=KLO+&17
1130LSP=FNZ:QQ15=FNZT(6):XX18=FNZT(9):QQ19=FNZT(6):K5=XX18:K6=K5+4
1150BET2=FNZ2:DELTA=FNZ:DELT4=FNZ2:U=FNZ:Q=FNZ:R=FNZ:S=FNZ:XSAV=FNZ:YSAV=FNZ:XX17=FNZ
1160QQ11=FNZ:ZZ=FNZ:XX13=FNZ:MCNT=FNZ:DL=FNZ:TYPE=FNZ:ALPHA=FNZ: REM PBUP=FNZ:HBUP=FNZ:LBUP=FNZ
1195QQ12=FNZ:TGT=FNZ:FLAG=FNZ:CNT=FNZ:CNT2=FNZ:STP=FNZ:XX4=FNZ:XX20=FNZ:XX14=FNZ:RAT=FNZ:RAT2=FNZ:K2=FNZT(4)
1196widget=FNZ:dontclip=FNZ:Yx2M1=FNZ:messXC=FNZ:newzp=FNZ
1400P%=B%:O%=W%:H%=L%
1410IFZ=4THENZ=6ELSEZ=4
1450FRIN=FNUT(NOSH+1):MANY=FNUT(NTY+1):SSPR=MANY+SST:JUNK=FNU
1460auto=FNU:ECMP=FNU:MJ=FNU:CABTMP=FNU:LAS2=FNU:MSAR=FNU:VIEW=FNU:LASCT=FNU:GNTMP=FNU:HFX=FNU:EV=FNU:DLY=FNU
1465de=FNU:T=FNZ
1467JSTX=FNU:JSTY=FNU
1470LSO=FNWT(200):LSX=LSO:BUF=FNWT(90):SX=FNWT(NOST+1):SXL=FNWT(NOST+1):SY=FNWT(NOST+1):SYL=FNWT(NOST+1):SZ=FNWT(NOST+1):SZL=FNWT(NOST+1):XX3=256:REM&70
1480LASX=FNW:LASY=FNW:XX24=FNW:ALTIT=FNW:SWAP=FNW:XP=FNW:YP=FNW:YS=FNW:BALI=FNW:UPO=FNW:boxsize=FNW:distaway=FNW
1490XSAV2=FNU:YSAV2=FNU:NAME=FNUT(8)
1500TP=FNU:QQ0=FNU:QQ1=FNU:QQ21=FNUT(6):CASH=FNUT(4):QQ14=FNU:COK=FNU:GCNT=FNU:LASER=FNUT(6):CRGO=FNU:QQ20=FNUT(17):ECM=FNU:BST=FNU:BOMB=FNU:ENGY=FNU:DKCMP=FNU:GHYP=FNU:ESCP=FNUT(2):TRIBBLE=FNUT(2):TALLYL=FNU
1520NOMSL=FNU:FIST=FNU:AVL=FNUT(17):QQ26=FNU:TALLY=FNU2:SVC=FNU:MCH=FNU:MCH=FNU:MCH=FNU:NT%=MCH-TP:MCH=FNU
1628FSH=FNU:ASH=FNU:ENERGY=FNU:REMFF
1630COMX=FNU:COMY=FNU:QQ24=FNU:QQ25=FNU:QQ28=FNU:QQ29=FNU
1640gov=FNU:tek=FNU:SLSP=FNU2
1650QQ2=FNUT(6):safehouse=FNUT(6):QQ3=FNU:QQ4=FNU:QQ5=FNU:QQ6=FNU2:QQ7=FNU2:QQ8=FNU2:QQ9=FNU:QQ10=FNU:NOSTM=FNU
1660COL2=FNU:frump=FNU:sprx=FNU:spry=FNU:TRIBCT=FNU
1670TRIBVX=FNUT(16):TRIBVXH=FNUT(16):TRIBXH=FNUT(16)
1800[OPTZ:.MOS brk:.COMC brk:.MUTOKOLD brk:.MUPLA brk:.DFLAG brk:.DNOIZ brk
1810.DAMP brk runstop:.DJD brk A:.PATG brk X:.FLH brk F:.JSTGY brk Y:.JSTE brk J:.JSTK brk K:.MUTOK brk M:.DISK brk D:.PLTOG brk P:.MUFOR brk C:.MUSILLY brk B
1900.TGINT
1910EQUB&01:EQUB&36:EQUB&29:EQUB&2B:EQUB&27:EQUB&1E:EQUB&1B:EQUB&1C:EQUB&2E
1911\ RS A X F Y J K M D
1920EQUB&17:EQUB&2C:EQUB&24
1921\ P C B
2490RTS \checksum here
2500.S% CLD:LDX#2:.ZONKPZERO LDA0,X:STA&CE00,X:INX:BNEZONKPZERO\shove over loader prog
2600JSRDEEOR:JSRCOLD\JSRChecksum:JMPBEGIN
2690\
2700.DEEOR LDA#((G%-1)MOD256):STAFRIN:LDA#((G%-1)DIV256):STAFRIN+1:LDA#((R%-1)DIV256):LDY#((R%-1)MOD256):LDX#KEY1:JSRDEEORS
2710LDA#((C%-1)MOD256):STAFRIN:LDA#((C%-1)DIV256):STAFRIN+1:LDA#((F%-1)DIV256):LDY#((F%-1)MOD256):LDX#KEY2
2800.DEEORS STXT:STASC+1:LDA#0:STASC:.DEEORL LDA(SC),Y:SEC:SBCT:STA(SC),Y:STAT:TYA:BNEP%+4:DECSC+1:DEY:CPYFRIN:BNEDEEORL:LDASC+1:CMPFRIN+1:BNEDEEORL:RTS
2850EQUD&2345AAB7 \red herring
2860\
2900.G% \mutilate from here to R% and from C% to F%
3000.DOENTRY \after dock:JSRRES2:JSRLAUN:LDA#0:STADELTA:\STAALPHA\STABETA\STAALP1\STABET1:STAGNTMP:STAQQ22+1:LDA#FF:STAFSH:STAASH:STAENERGY:\JSRHALL:LDY#44:JSRDELAY:LDATP:AND#3:BNEEN1:LDATALLY+1:BEQEN4:LDAGCNT:LSRA:BNEEN4:JMPBRIEF
3001.EN1 CMP#3:BNEEN2:JMPDEBRIEF
3010.EN2 LDAGCNT:CMP#2:BNEEN4:LDATP:AND#&F:CMP#2:BNEEN3:LDATALLY+1:CMP#5:BCCEN4:JMPBRIEF2:.EN3 CMP#6:BNEEN5:LDAQQ0:CMP#215:BNEEN4:LDAQQ1:CMP#84:BNEEN4:JMPBRIEF3
3020.EN5 CMP#10:BNEEN4:LDAQQ0:CMP#63:BNEEN4:LDAQQ1:CMP#72:BNEEN4:JMPDEBRIEF2
3090.EN4 LDACASH+2:CMP#&C4:BCCEN6:LDATP:AND#&10:BNEEN6:JMPTBRIEF:.EN6 JMPBAY
3100.BRKBK LDA#(BRBR MOD256):SEI:STABRKV:LDA#(BRBR DIV256):STABRKV+1:CLI:RTS
3800.TRIBDIR EQUB 0:EQUB 1:EQUBFF:EQUB 0
3810.TRIBDIRH EQUB0:EQUB 0:EQUBFF:EQUB 0
3820.SPMASK EQUW&04FB:EQUW&08F7:EQUW&10EF:EQUW&20DF:EQUW&40BF:EQUW&807F
3900.MVTRIBS LDAMCNT:AND#7:CMPTRIBCT:BCCP%+5:JMPNOMVETR:\STAT:ASLA:TAY:LDA#5:JSRSETL1:JSRDORND:CMP#235:BCCMVTR1:AND#3:TAX:LDATRIBDIR,X:STATRIBVX,Y:LDATRIBDIRH,X:STATRIBVXH,Y:JSRDORND:AND#3:TAX:LDATRIBDIR,X:STATRIBVX+1,Y
3910.MVTR1 LDASPMASK,Y:ANDVIC+&10:STAVIC+&10:LDAVIC+5,Y:CLC:ADCTRIBVX+1,Y:STAVIC+5,Y:CLC:LDAVIC+4,Y:ADCTRIBVX,Y:STAT:LDATRIBXH,Y:ADCTRIBVXH,Y:BPLnominus:LDA#&48:STAT:LDA#1
3914.nominus AND#1:BEQoktrib:LDAT:CMP#&50:LDA#1:BCCoktrib:LDA#0:STAT:.oktrib STATRIBXH,Y
3920BEQNOHIBIT:LDASPMASK+1,Y:ORAVIC+&10:SEI:STAVIC+&10
3930.NOHIBIT LDAT:STAVIC+4,Y:CLI:LDA#4:JSRSETL1:JMPNOMVETR
4000.M% LDAK%:STARAND:LDATRIBCT:BEQNOMVETR:JMPMVTRIBS:.NOMVETR
4020LDXJSTX:JSRcntr:JSRcntr:TXA:EOR#128:TAY:AND#128:STAALP2:STXJSTX:EOR#128:STAALP2+1:TYA:BPLP%+7:EOR#FF:CLC:ADC#1:LSRA:LSRA:CMP#8:BCSP%+3:LSRA:STAALP1:ORAALP2:STAALPHA
4030LDXJSTY:JSRcntr:TXA:EOR#128:TAY:AND#128:STXJSTY:STABET2+1:EOR#128:STABET2:TYA:BPLP%+4:EOR#FF:ADC#4:LSRA:LSRA:LSRA:LSRA:CMP#3:BCSP%+3:LSRA:STABET1:ORABET2:STABETA
4050LDAKY2:BEQMA17:LDADELTA:CMP#40:BCSMA17:INCDELTA:.MA17 LDAKY1:BEQMA4:DECDELTA:BNEMA4:INCDELTA:.MA4
4060LDAKY15:ANDNOMSL:BEQMA20:LDY#GREEN2:JSRABORT:LDY#sfxboop:JSRNOISE:LDA#0:STAMSAR:.MA20 LDAMSTG:BPLMA25:LDAKY14:BEQMA25:LDXNOMSL:BEQMA25:STAMSAR:LDY#YELLOW2:JSRMSBAR:.MA25
4064LDAKY16:BEQMA24:LDAMSTG:BMIMA64:JSRFRMIS:.MA24 LDAKY12:BEQMA76:ASLBOMB:BEQMA76:LDY#&D0:STYmoonflower:LDY#sfxbomb:JSRNOISE:.MA76 LDAKY20:BEQMA78:LDA#0:STAauto:JSRstopbd:.MA78
4070LDAKY13:ANDESCP:BEQnoescp:LDAMJ:BNEnoescp:JMPESCAPE:.noescp LDAKY18:BEQP%+5:JSRWARP:LDAKY17:ANDECM:BEQMA64:LDAECMA:BNEMA64:DECECMP:JSRECBLB2:.MA64
4075LDAKY19:ANDDKCMP:BEQMA68:EORKLO+&29:BEQMA68:STAauto:JSRstartbd:.MA68 \kill phantom Cs
4080LDA#0:STALAS:STADELT4:LDADELTA:LSRA:RORDELT4:LSRA:RORDELT4:STADELT4+1
4090LDALASCT:BNEMA3:LDAKY7:BEQMA3:LDAGNTMP:CMP#242:BCSMA3:LDXVIEW:LDALASER,X:BEQMA3:PHA:AND#127:STALAS:STALAS2:LDY#sfxplas:PLA:PHA:BMIbmorarm:CMP#Mlas:BNEP%+4:LDY#sfxmlas:BNEcustard:.bmorarm CMP#Armlas:BEQP%+5:LDY#sfxblas:EQUB&2C
4100LDY#sfxalas:.custard JSRNOISE:JSRLASLI:PLA:BPLma1:LDA#0:.ma1 AND#&FA:STALASCT:.MA3 LDX#0:.MAL1
4105STXXSAV:LDAFRIN,X:BNEP%+5:JMPMA18:STATYPE:JSRGINF
4110LDY#(NI%-1):.MAL2 LDA(INF),Y:STAINWK,Y:DEY:BPLMAL2:LDATYPE:BMIMA21:ASLA:TAY:LDAXX21-2,Y:STAXX0:LDAXX21-1,Y:STAXX0+1
4115LDABOMB:BPLMA21:CPY#2*SST:BEQMA21:CPY#2*THG:BEQMA21:CPY#2*CON:BCSMA21:LDAINWK+31:AND#32:BNEMA21:ASLINWK+31:SEC:RORINWK+31:LDXTYPE:JSREXNO2
4130.MA21 JSRMVEIT:LDY#(NI%-1):.MAL3 LDAINWK,Y:STA(INF),Y:DEY:BPLMAL3
4134LDAINWK+31:AND#&A0:JSRMAS4:BNEMA65:LDAINWK:ORAINWK+3:ORAINWK+6:BMIMA65:LDXTYPE:BMIMA65:CPX#SST:BEQISDK:AND#&C0:BNEMA65:CPX#MSL:BEQMA65
4138LDABST:ANDINWK+5:BPLMA58:CPX#OIL:BEQoily:LDY#0:LDA(XX0),Y:LSRA:LSRA:LSRA:LSRA:BEQMA58:ADC#1:BNEslvy2
4140.oily JSRDORND:AND#7:.slvy2 JSRtnpr1:LDY#78:BCSMA59:LDYQQ29:ADCQQ20,Y:STAQQ20,Y:TYA:ADC#208:JSRMESS
4141ASLNEWB:SEC:RORNEWB:.MA65 JMPMA26
4142.ISDK LDAK%+NI%+36:AND#4:BNEMA62:LDAINWK+14:CMP#&D6:BCCMA62:JSRSPS1:LDAXX15+2:CMP#89 \86:BCCMA62:LDAINWK+16:AND#&7F:CMP#80:BCCMA62:.GOIN JSRstopbd:JMPDOENTRY:.MA62 LDADELTA:CMP#5:BCCMA67:JMPDEATH
4143.MA59 JSREXNO3:.MA60 ASLINWK+31:SEC:RORINWK+31:.MA61 BNEMA26
4144.MA67 LDA#1:STADELTA:LDA#5:BNEMA63:.MA58 ASLINWK+31:SEC:RORINWK+31:LDAINWK+35:SEC:RORA:.MA63 JSROOPS:JSREXNO3:.MA26
4146LDANEWB:BPLP%+5:JSRSCAN:LDAQQ11:BNEMA15:JSRPLUT
4150JSRHITCH:BCCMA8:LDAMSAR:BEQMA47:JSRBEEP:LDXXSAV:LDY#RED2:JSRABORT2:.MA47 LDALAS:BEQMA8:LDX#15:JSREXNO:LDATYPE:CMP#SST:BEQMA14+2:CMP#CON:BCCBURN:LDALAS:CMP#(Armlas AND127):BNEMA14+2:LSRLAS:LSRLAS:.BURN LDAINWK+35:SEC:SBCLAS:BCSMA14
4155ASLINWK+31:SEC:RORINWK+31:LDATYPE:CMP#AST:BNEnosp:LDALAS:CMP#Mlas:BNEnosp:JSRDORND:LDX#SPL:AND#3:JSRSPIN2:.nosp LDY#PLT:JSRSPIN:LDY#OIL:JSRSPIN
4160LDXTYPE:JSREXNO2:.MA14 STAINWK+35:LDATYPE:JSRANGRY:.MA8
4180JSRLL9:.MA15 LDY#35:LDAINWK+35:STA(INF),Y:LDANEWB:BMIKS1S
4190LDAINWK+31:BPLMAC1:AND#&20:BEQMAC1:LDANEWB:AND#64:ORAFIST:STAFIST:LDADLY:ORAMJ:BNEKS1S:LDY#10:LDA(XX0),Y:BEQKS1S:TAX:INY:LDA(XX0),Y:TAY:JSRMCASH:LDA#0:JSRMESS:.KS1S JMPKS1
4192.MAC1 LDATYPE:BMIMA27:JSRFAROF:BCCKS1S:.MA27
4240LDY#31:LDAINWK+31:STA(INF),Y:LDXXSAV:INX:JMPMAL1:.MA18 LDABOMB:BPLMA77:ASLBOMB:BMIMA77:JSRBOMBOFF:.MA77
4250LDAMCNT:AND#7:BNEMA22:LDXENERGY:BPLb:LDXASH:JSRSHD:STXASH:LDXFSH:JSRSHD:STXFSH:.b SEC:LDAENGY:ADCENERGY:BCSP%+5:STAENERGY
4260LDAMJ:BNEMA23S:LDAMCNT:AND#31:BNEMA93:LDASSPR:BNEMA23S:TAY:JSRMAS2:BNEMA23S
4270LDX#28:.MAL4 LDAK%,X:STAINWK,X:DEX:BPLMAL4:INX:LDY#9:JSRMAS1:BNEMA23S:LDX#3:LDY#11:JSRMAS1:BNEMA23S:LDX#6:LDY#13:JSRMAS1:BNEMA23S
4280LDA#&C0:JSRFAROF2:BCCMA23S:JSRWPLS:JSRNWSPS:.MA23S JMPMA23
4300.MA22 LDAMJ:BNEMA23S:LDAMCNT:AND#31:.MA93 CMP#10:BNEMA29:LDA#50:CMPENERGY:BCCP%+6:ASLA:JSRMESS:LDY#FF:STYALTIT:INY:JSRm:BNEMA23:JSRMAS3:BCSMA23:SBC#&24:BCCMA28:STAR:JSRLL5:LDAQ:STAALTIT:BNEMA23:.MA28 JMPDEATH
4310.MA29 CMP#15:BNEMA33:LDAauto:BEQMA23:LDA#123:BNEMA34:.MA33 CMP#20:BNEMA23:LDA#30:STACABTMP:LDASSPR:BNEMA23:LDY#NI%:JSRMAS2:BNEMA23:JSRMAS3:EOR#FF:ADC#30:STACABTMP:BCSMA28
4320CMP#&E0:BCCMA23:CMP#&F0:BCCnokilltr:LDA#5:JSRSETL1:LDAVIC+&15:AND#&3:STAVIC+&15:LDA#4:JSRSETL1:LSRTRIBBLE+1:RORTRIBBLE:.nokilltr LDABST:BEQMA23:LDADELT4+1:LSRA:ADCQQ14:CMP#70:BCCP%+4:LDA#70:STAQQ14:LDA#160:.MA34 JSRMESS \--BT
4350.MA23 LDALAS2:BEQMA16:LDALASCT:CMP#8:BCSMA16:JSRLASLI2:LDA#0:STALAS2:.MA16
4360LDAECMP:BEQMA69:JSRDENGY:BEQMA70:.MA69 LDAECMA:BEQMA66:DECECMA:BNEMA66:.MA70 JSRECMOF:.MA66
4380LDAQQ11:BNEoh:JMPSTARS:\JMPPBFL
4500.SPIN JSRDORND:BPLoh:TYA:TAX:LDY#0:AND(XX0),Y:AND#15
4510.SPIN2 STACNT:.spl BEQoh:LDA#0:JSRSFS1:DECCNT:BNEspl+2:.oh RTS
4700.BOMBOFF LDA#&C0:STAmoonflower:LDA#0:STAwelcome:RTS
5000.MT27 LDA#217:BNEP%+4:.MT28 LDA#220:CLC:ADCGCNT:BNEDETOK
5010.DETOK3 PHA:TAX:TYA:PHA:LDAV:PHA:LDAV+1:PHA:LDA#(RUTOK MOD256):STAV:LDA#(RUTOK DIV256):BNEDTEN
5020\.....................
5030.DETOK PHA:TAX:TYA:PHA:LDAV:PHA:LDAV+1:PHA
5040LDA#(TKN1 MOD256):STAV:LDA#(TKN1 DIV256):.DTEN STAV+1:LDY#0
5050.DTL1 LDA(V),Y:EOR#VE:BNEDT1:DEX:BEQDTL2
5060.DT1 INY:BNEDTL1:INCV+1:BNEDTL1
5070.DTL2 INY:BNEP%+4:INCV+1:LDA(V),Y:EOR#VE:BEQDTEX:JSRDETOK2:JMPDTL2:.DTEX PLA:STAV+1:PLA:STAV:PLA:TAY:PLA:RTS
5080\.............
5090.DETOK2 CMP#32:BCCDT3
5100BITDTW3:BPLDT8:TAX:TYA:PHA:LDAV:PHA:LDAV+1:PHA:TXA:JSRTT27:JMPDT7 \TT27
5110.DT8 CMP#91:BCCDTS:CMP#129:BCCDT6:CMP#215:BCCDETOK
5120SBC#215:ASLA:PHA:TAX:LDATKN2,X:JSRDTS:PLA:TAX:LDATKN2+1,X \letter pair
5130.DTS CMP#&41:BCCDT9:BITDTW6:BMIDT10:BITDTW2:BMIDT5:.DT10 ORADTW1:.DT5 ANDDTW8:.DT9 JMPDASC \ascii
5140.DT3 TAX:TYA:PHA:LDAV:PHA:LDAV+1:PHA \Magic
5150TXA:ASLA:TAX
5160LDAJMTB-2,X:STADTM+1:LDAJMTB-1,X:STADTM+2:TXA:LSRA:.DTM JSRDASC
5170.DT7 PLA:STAV+1:PLA:STAV:PLA:TAY:RTS
5180.DT6 STASC:TYA:PHA:LDAV:PHA:LDAV+1:PHA:JSRDORND:TAX:LDA#0:CPX#51:ADC#0:CPX#102:ADC#0:CPX#153:ADC#0:CPX#204:LDXSC:ADCMTIN-91,X:JSRDETOK:JMPDT7 \Multitoken
5190\....................
5200.MT1 LDA#0:EQUB&2C:.MT2 LDA#32:STADTW1:LDA#0:STADTW6:RTS:.MT8 LDA#6:JSRDOXC:LDA#FF:STADTW2:RTS:.MT9 LDA#1:JSRDOXC:JMPTT66:.MT13 LDA#128:STADTW6:LDA#32:STADTW1:RTS
5210.MT6 LDA#128:STAQQ17:LDA#FF:EQUB&2C:.MT5 LDA#0:STADTW3:RTS:.MT14 LDA#128:EQUB&2C:.MT15 LDA#0:STADTW4:ASLA:STADTW5:RTS
5220.MT17 LDAQQ17:AND#191:STAQQ17:LDA#3:JSRTT27:LDXDTW5:LDABUF-1,X:JSRVOWEL:BCCMT171:DECDTW5:.MT171 LDA#153:JMPDETOK
5230.MT18 JSRMT19:JSRDORND:AND#3:TAY:.MT18L JSRDORND:AND#62:TAX:LDATKN2+2,X:JSRDTS:LDATKN2+3,X:JSRDTS:DEY:BPLMT18L:RTS
5240.MT19 LDA#&DF:STADTW8:RTS
5245.VOWEL ORA#32:CMP#ASC"a":BEQVRTS:CMP#ASC"e":BEQVRTS:CMP#ASC"i":BEQVRTS:CMP#ASC"o":BEQVRTS:CMP#ASC"u":BEQVRTS:CLC:.VRTS RTS
5246.WHITETEXT \LDA#32\JSRDOVDU19\LDA#RED\JMPDOCOL:RTS
5250\............
5260.JMTB EQUWMT1:EQUWMT2:EQUWTT27:EQUWTT27:EQUWMT5:EQUWMT6:EQUWDASC:EQUWMT8:EQUWMT9:EQUWDASC:EQUWNLIN4:EQUWDASC:EQUWMT13:EQUWMT14:EQUWMT15:EQUWMT16
5270EQUWMT17:EQUWMT18:EQUWMT19:EQUWDASC:EQUWCLYNS:EQUWPAUSE:EQUWMT23:EQUWPAUSE2:EQUWBRIS:EQUWMT26:EQUWMT27:EQUWMT28:EQUWMT29:EQUWFILEPR:EQUWOTHERFILEPR:EQUWDASC
5280\.............
5300.TKN2 EQUB12:EQUB10:EQUS"ABOUSEITILETSTONLONUTHNO":.QQ16 EQUS"ALLEXEGEZACEBISOUSESARMAINDIREA?ERATENBERALAVETIEDORQUANTEISRION"
5999\.............
6000EQUS":0.E.":.NA% EQUS("jameson"):EQUB13:EQUB0
6010EQUD0:EQUD0 \Base seed
6020EQUD0 \Cash
6030EQUW0:EQUB0 \Fuel-Gal
6040EQUD0:EQUW0:EQUB0 \Laser-Cargo
6050EQUD0:EQUD0:EQUD0:EQUD0:EQUB0\crgo
6060EQUD0\ECM-ENGY:EQUW0:EQUB0 \DCK-escp
6070EQUD0\EXPAND:EQUB0\MISSILES:EQUB0\FIST
6080EQUB16:EQUB15:EQUB17:EQUB0:EQUB3:EQUB28:EQUB14:EQUW0:EQUB10:EQUB0:EQUB17:EQUB58:EQUB7:EQUB9:EQUB8:EQUB0
6090EQUB 0 QQ26:EQUW 0 TALLY:EQUB 128 SVC
6095.CHK2 EQUB0:.CHK3 EQUB0:.CHK EQUB0:EQUD0:EQUD0:EQUD0:EQUD0:EQUD0
6099\.........
6100]:Q%=FALSE:J%=O%+5:[OPTZ:\ZIP:.S1%
6110EQUS":0.E.":.NA2% EQUS("JAMESON"):EQUB13:EQUB0
6120EQUB20\QQ0:EQUB173\QQ1:EQUD&2485A4A\QQ21:EQUW&B753 \Base seed
6130EQUD(((&E8030000)AND(NOTQ%))+((&CA9A3B)ANDQ%))\CASH,&80969800
6140EQUB70 fuel
6150EQUB Q%AND128 COK-UP
6160EQUB0 GALACTIC COUNT
6170EQUB(Armlas ANDQ%)+(POW AND(NOTQ%)):EQUB(POW)ANDQ%:EQUB(POW+128)ANDQ%:EQUBMlas ANDQ%:EQUW0 LASER:EQUB22+(15ANDQ%) \37 CRGO
6180EQUD0:EQUD0:EQUD0:EQUD0:EQUB0\crgo
6190EQUB Q% ECM
6200EQUB Q% BST
6210EQUB Q%AND127 BOMB
6220EQUB Q%AND1 ENGY++
6230EQUB Q% DCK COMP
6240EQUB Q% GHYP
6250EQUB Q% ESCP
6260EQUD FALSE EXPAND
6270EQUB 3+(Q%AND1) MISSILES
6280EQUB FALSE FIST
6290EQUB16:EQUB15:EQUB17:EQUB0:EQUB3:EQUB28:EQUB14:EQUW0:EQUB10:EQUB0:EQUB17:EQUB58:EQUB7:EQUB9:EQUB8:EQUB0
6300EQUB 0 QQ26
6310EQUW 0 :\(20000ANDQ%) TALLY
6320EQUB 128 SVC
6330]CH%=NT%-3:CY%=0:FORI%=CH%+J%TO1+J%STEP-1:CH%=CH%+CY%+(I%?7):CY%=(CH%>255)AND1:CH%=CH%MOD256:CH%=CH%EOR(I%?8):NEXT:[OPTZ
6340\.CHK2:EQUB CH% EOR&A9
6350]:CH3X%=FNcallthemother:[OPTZ:\.CHK3:EQUB CH3X%
6355\.CHK:EQUB CH%
6360EQUD0:EQUD0:EQUD0:.NAEND% EQUD0
7100.scacol EQUB0:EQUBGREEN:EQUBGREEN:EQUBBLUE:EQUBBLUE:EQUBBLUE barrel
7110 EQUBRED:EQUBRED:EQUBRED:EQUBCYAN:EQUBCYAN transp
7120 EQUBCYAN:EQUBMAG:EQUBMAG:EQUBMAG:EQUBRED:EQUBCYAN Viper
7130 EQUBCYAN:EQUBCYAN:EQUBCYAN:EQUBCYAN:EQUBCYAN:EQUBCYAN:EQUBBLUE Wor
7140 EQUBCYAN:EQUBCYAN:EQUBMAG:EQUBCYAN:EQUBCYAN Moray
7150 EQUBWHITE:EQUBCYAN:EQUBCYAN Con
7160 EQUB0:EQUBCYAN:EQUD0
7200.LSX2 :]:P%=P%+&100:O%=O%+&100:[OPTZ
7210.LSY2 :]:P%=P%+&100:O%=O%+&100
9510IFZ>4OSCLI("S.ELTA "+STR$~W%+" "+STR$~O%+" "+STR$~S%+" "+STR$~H%)
9520PRINT"Done: A";:GOTO2
10100DEFFNZ=FNZT(1)
10110DEFFNZ2=FNZT(2)
10120DEFFNZT(N%):ZP=ZP+N%:=ZP-N%
10200DEFFNU=FNUT(1)
10210DEFFNU2=FNUT(2)
10220DEFFNUT(N%):UP=UP+N%:=UP-N%
10300DEFFNW=FNWT(1)
10310DEFFNW2=FNWT(2)
10320DEFFNWT(N%):WP=WP+N%:=WP-N%
10400DEFFNLT(N%):LP=LP+N%:=LP-N%
10500DEFFNcallthemother:LOCALP%:P%=TEMPCODE%:[OPT2:LDX#NT%-3:CLC:TXA:.QU2L2L STX&70:EOR&70:RORA:ADCJ%+7,X:EORJ%+8,X:DEX:BNEQU2L2L:RTS:]:=USR(TEMPCODE%)AND&FF