83 | 0x2000 | | waitOnDraw | Cleared by alien-draw and set by next-alien. This ensures no alien gets missed while drawing. |
84 | 0x2001 | | | |
85 | 0x2002 | | alienIsExploding | Not-0 if an alien is exploding, 0 if not exploding |
86 | 0x2003 | | expAlienTimer | Time (ISR ticks) left in alien-explosion |
87 | 0x2004 | | alienRow | Row number of current alien (cursor) |
88 | 0x2005 | | alienFrame | Animation frame number (0 or 1) for current alien (cursor) |
89 | 0x2006 | | alienCurIndex | Alien cursor index (from 0 to 54) |
90 | 0x2007 | | refAlienDYr | Reference alien delta Yr |
91 | 0x2008 | | refAlienDXr | Reference alien deltaXr |
92 | 0x2009 | | refAlienYr | Reference alien Yr coordinate |
93 | 0x200A | | refAlienXr | Reference alien Xr coordinate |
94 | 0x200B | | alienPosLSB | Alien cursor bit pos (LSB) |
95 | 0x200C | | alienPosMSB | Alien cursor bit pos (MSB) |
96 | 0x200D | | rackDirection | Value 0 if rack is moving right or 1 if rack is moving left |
97 | 0x200E | | rackDownDelta | Constant value of alien rack dropping after bumping screen edge |
98 | 0x200F | | | |
99 | 0x2010 | | obj0TimerMSB | |
100 | 0x2011 | | obj0TimerLSB | Wait 128 interrupts (about 2 secs) before player task starts |
101 | 0x2012 | | obj0TimerExtra | |
102 | 0x2013 | | obj0HanlderLSB | |
103 | 0x2014 | | oBJ0HanlderMSB | Player handler code at 028E |
104 | 0x2015 | | playerAlive | Player is alive (FF=alive). Toggles between 0 and 1 for blow-up images. |
105 | 0x2016 | | expAnimateTimer | Time till next blow-up sprite change (reloaded to 5) |
106 | 0x2017 | | expAnimateCnt | Number of changes left in blow-up sequence |
107 | 0x2018 | | plyrSprPicL | Player sprite descriptor ... picture LSB |
108 | 0x2019 | | plyrSprPicM | Player sprite descriptor ... picture MSB |
109 | 0x201A | | playerYr | Player sprite descriptor ... location LSB |
110 | 0x201B | | playerXr | Player sprite descriptor ... location MSB |
111 | 0x201C | | plyrSprSiz | Player sprite descriptor ... size of sprite |
112 | 0x201D | | nextDemoCmd | Next movement command for demo |
113 | 0x201E | | hidMessSeq | Set to 1 after 1st of 2 sequences are entered for hidden-message display |
114 | 0x201F | | | Appears to be unused |
115 | 0x2020 | | obj1TimerMSB | |
116 | 0x2021 | | obj1TimerLSB | |
117 | 0x2022 | | obj1TimerExtra | All 0's ... run immediately |
118 | 0x2023 | | obj1HandlerLSB | |
119 | 0x2024 | | obj1HandlerMSB | Shot handler code at 03BB |
120 | 0x2025 | | plyrShotStatus | 0 if available, 1 if just initiated, 2 moving normally, 3 hit something besides alien, 5 if alien explosion is in progress, 4 if alien has exploded (remove from active duty) |
121 | 0x2026 | | blowUpTimer | Sprite blow-up timer |
122 | 0x2027 | | obj1ImageLSB | |
123 | 0x2028 | | obj1ImageMSB | Sprite image at 1C90 (just one byte) |
124 | 0x2029 | | obj1CoorYr | Player shot Y coordinate |
125 | 0x202A | | obj1CoorXr | Player shot X coordinate |
126 | 0x202B | | obj1ImageSize | Size of shot image (just one byte) |
127 | 0x202C | | shotDeltaX | Shot's delta X |
128 | 0x202D | | fireBounce | 1 if button has been handled but remains down |
129 | 0x202E | | | |
130 | 0x202F | | | |
131 | 0x2030 | | obj2TimerMSB | |
132 | 0x2031 | | obj2TimerLSB | |
133 | 0x2032 | | obj2TimerExtra | GO-3 runs when this is 1. GO-4 runs when this is 2. (copied to 2080 in game loop) |
134 | 0x2033 | | obj2HandlerLSB | |
135 | 0x2034 | | obj2HandlerMSB | Handler code at 0476 |
136 | 0x2035 | | rolShotStatus | |
137 | 0x2036 | | rolShotStepCnt | |
138 | 0x2037 | | rolShotTrack | A 0 means this shot tracks the player |
139 | 0x2038 | | rolShotCFirLSB | Pointer to column-firing table LSB (not used for targeting) |
140 | 0x2039 | | rolShotCFirMSB | Pointer to column-firing table MSB (not used for MSB counter |
141 | 0x203A | | rolShotBlowCnt | |
142 | 0x203B | | rolShotImageLSB | |
143 | 0x203C | | rolShotImageMSB | |
144 | 0x203D | | rolShotYr | |
145 | 0x203E | | rolShotXr | |
146 | 0x203F | | rolShotSize | |
147 | 0x2040 | | obj3TimerMSB | |
148 | 0x2041 | | obj3TimerLSB | |
149 | 0x2042 | | obj3TimerExtra | |
150 | 0x2043 | | obj3HandlerLSB | |
151 | 0x2044 | | obj3HandlerMSB | Handler code at 04B6 |
152 | 0x2045 | | pluShotStatus | |
153 | 0x2046 | | pluShotStepCnt | |
154 | 0x2047 | | pluShotTrack | A 1 means this shot does not track the player |
155 | 0x2048 | | pluShotCFirLSB | Pointer to column-firing table LSB |
156 | 0x2049 | | pluShotCFirMSB | Pointer to column-firing table MSB |
157 | 0x204A | | pluShotBlowCnt | |
158 | 0x204B | | pluShotImageLSB | |
159 | 0x204C | | pluShotImageMSB | |
160 | 0x204D | | pluShotYr | |
161 | 0x204E | | pluSHotXr | |
162 | 0x204F | | pluShotSize | |
163 | 0x2050 | | obj4TimerMSB | |
164 | 0x2051 | | obj4TimerLSB | |
165 | 0x2052 | | obj4TimerExtra | |
166 | 0x2053 | | obj4HandlerLSB | |
167 | 0x2054 | | obj4HandlerMSB | Handler code at 0682 |
168 | 0x2055 | | squShotStatus | |
169 | 0x2056 | | squShotStepCnt | |
170 | 0x2057 | | squShotTrack | A 1 means this shot does not track the player |
171 | 0x2058 | | squShotCFirLSB | Pointer to column-firing table LSB |
172 | 0x2059 | | squShotCFirMSB | Pointer to column-firing table MSB |
173 | 0x205A | | squSHotBlowCnt | |
174 | 0x205B | | squShotImageLSB | |
175 | 0x205C | | squShotImageMSB | |
176 | 0x205D | | squShotYr | |
177 | 0x205E | | squShotXr | |
178 | 0x205F | | squShotSize | |
179 | 0x2060 | | endOfTasks | FF marks the end of the tasks list |
180 | 0x2061 | | collision | Set to 1 if sprite-draw detects collision |
181 | 0x2062 | | expAlienLSB | |
182 | 0x2063 | | expAlienMSB | Exploding alien picture 1CC0 |
183 | 0x2064 | | expAlienYr | Y coordinate of exploding alien |
184 | 0x2065 | | expAlienXr | X coordinate of exploding alien |
185 | 0x2066 | | expAlienSize | Size of exploding alien sprite (16 bytes) |
186 | 0x2067 | | playerDataMSB | Current player's data-pointer MSB (21xx or 22xx) |
187 | 0x2068 | | playerOK | 1 means OK, 0 means blowing up |
188 | 0x2069 | | enableAlienFire | 1 means aliens can fire, 0 means not |
189 | 0x206A | | alienFireDelay | Count down till aliens can fire (2069 flag is then set) |
190 | 0x206B | | oneAlien | 1 when only one alien is on screen |
191 | 0x206C | | temp206C | Holds the value ten ... number of characters in each "=xx POINTS" string but gets set to 18 in mem copy before game. |
192 | 0x206D | | invaded | Set to 1 when player blows up because rack has reached bottom |
193 | 0x206E | | skipPlunger | When there is only one alien left this goes to 1 to disable the plunger-shot when it ends |
194 | 0x206F | | | |
195 | 0x2070 | | otherShot1 | When processing a shot, this holds one of the other shot's info |
196 | 0x2071 | | otherShot2 | When processing a shot, this holds one of the other shot's info |
197 | 0x2072 | | vblankStatus | 80=screen is being drawn (don't touch), 0=blanking in progress (ok to change) |
198 | 0x2073 | | aShotStatus | Bit 0 set if shot is blowing up, bit 7 set if active |
199 | 0x2074 | | aShotStepCnt | Count of steps made by shot (used for fire reload rate) |
200 | 0x2075 | | aShotTrack | 0 if shot tracks player or 1 if it uses the column-fire table |
201 | 0x2076 | | aShotCFirLSB | Pointer to column-firing table LSB |
202 | 0x2077 | | aShotCFirMSB | Pointer to column-firing table MSB |
203 | 0x2078 | | aShotBlowCnt | Alen shot blow up counter. At 3 the explosion is drawn. At 0 it is done. |
204 | 0x2079 | | aShotImageLSB | Alien shot image LSB |
205 | 0x207A | | aShotImageMSB | Alien shot image MSB |
206 | 0x207B | | alienShotYr | Alien shot delta Y |
207 | 0x207C | | alienShotXr | Alien shot delta X |
208 | 0x207D | | alienShotSize | Alien shot size |
209 | 0x207E | | alienShotDelta | Alien shot speed. Normally -1 but set to -4 with less than 9 aliens |
210 | 0x207F | | shotPicEnd | the last picture in the current alien shot animation |
211 | 0x2080 | | shotSync | All 3 shots are synchronized to the GO-2 timer. This is copied from timer in the game loop |
212 | 0x2081 | | tmp2081 | Used to hold the remember/restore flag in shield-copy routine |
213 | 0x2082 | | numAliens | Number of aliens on screen |
214 | 0x2083 | | saucerStart | Flag to start saucer (set to 1 when 2091:2092 counts down to 0) |
215 | 0x2084 | | saucerActive | Saucer is on screen (1 means yes) |
216 | 0x2085 | | saucerHit | Saucer has been hit (1 means draw it but don't move it) |
217 | 0x2086 | | saucerHitTime | Hit-sequence timer (explosion drawn at 1F, score drawn at 18) |
218 | 0x2087 | | saucerPriLocLSB | Mystery ship print descriptor ... coordinate LSB |
219 | 0x2088 | | saucerPriLocMSB | Mystery ship print descriptor ... coordinate MSB |
220 | 0x2089 | | saucerPriPicLSB | Mystery ship print descriptor ... message LSB |
221 | 0x208A | | saucerPriPicMSB | Mystery ship print descriptor ... message MSB |
222 | 0x208B | | saucerPriSize | Mystery ship print descriptor ... number of characters |
223 | 0x208C | | saucerDeltaY | Mystery ship delta Y |
224 | 0x208D | | sauScoreLSB | Pointer into mystery-ship score table (MSB) |
225 | 0x208E | | sauScoreMSB | Pointer into mystery-ship score table (LSB) |
226 | 0x208F | | shotCountLSB | Bumped every shot-removal. Saucer's direction is bit 0. (0=2/29, 1=-2/E0) |
227 | 0x2090 | | shotCountMSB | Read as two-bytes with 208F, but never used as such. |
228 | 0x2091 | | tillSaucerLSB | |
229 | 0x2092 | | tillSaucerMSB | Count down every game loop. When it reaches 0 saucer is triggerd. Reset to 600. |
230 | 0x2093 | | waitStartLoop | 1=in wait-for-start loop, 0=in splash screens |
231 | 0x2094 | | soundPort3 | Current status of sound port (out $03) |
232 | 0x2095 | | changeFleetSnd | Set to 1 in ISR if time to change the fleet sound |
233 | 0x2096 | | fleetSndCnt | Delay until next fleet movement tone |
234 | 0x2097 | | fleetSndReload | Reload value for fleet sound counter |
235 | 0x2098 | | soundPort5 | Current status of sound port (out $05) |
236 | 0x2099 | | extraHold | Duration counter for extra-ship sound |
237 | 0x209A | | tilt | 1 if tilt handling is in progress |
238 | 0x209B | | fleetSndHold | Time to hold fleet-sound at each change |
239 | 0x209C | | | |
240 | 0x209D | | | |
241 | 0x209E | | | |
242 | 0x209F | | | |
243 | 0x20A0 | | | |
244 | 0x20A1 | | | |
245 | 0x20A2 | | | |
246 | 0x20A3 | | | |
247 | 0x20A4 | | | |
248 | 0x20A5 | | | |
249 | 0x20A6 | | | |
250 | 0x20A7 | | | |
251 | 0x20A8 | | | |
252 | 0x20A9 | | | |
253 | 0x20AA | | | |
254 | 0x20AB | | | |
255 | 0x20AC | | | |
256 | 0x20AD | | | |
257 | 0x20AE | | | |
258 | 0x20AF | | | |
259 | 0x20B0 | | | |
260 | 0x20B1 | | | |
261 | 0x20B2 | | | |
262 | 0x20B3 | | | |
263 | 0x20B4 | | | |
264 | 0x20B5 | | | |
265 | 0x20B6 | | | |
266 | 0x20B7 | | | |
267 | 0x20B8 | | | |
268 | 0x20B9 | | | |
269 | 0x20BA | | | |
270 | 0x20BB | | | |
271 | 0x20BC | | | |
272 | 0x20BD | | | |
273 | 0x20BE | | | |
274 | 0x20BF | | | |
275 | 0x20C0 | | isrDelay | Delay counter decremented in ISR |
276 | 0x20C1 | | isrSplashTask | 1=In demo, 2=Little-alien and Y, 4=shooting extra 'C' |
277 | 0x20C2 | | splashAnForm | Image form (increments each draw) |
278 | 0x20C3 | | splashDeltaX | Delta X |
279 | 0x20C4 | | splashDeltaY | Delta Y |
280 | 0x20C5 | | splashYr | Y coordinate |
281 | 0x20C6 | | splashXr | X coordinate |
282 | 0x20C7 | | splashImageLSB | |
283 | 0x20C8 | | splashImageMSB | Base image 1BA0 (small alien with upside down Y) |
284 | 0x20C9 | | splashImageSize | Size of image (16 bytes) |
285 | 0x20CA | | splashTargetY | Target Y coordinate |
286 | 0x20CB | | splashReached | Reached target Y flag (1 when reached) |
287 | 0x20CC | | splashImRestLSB | Base image for restore 1BA0 is small alien with upside down Y |
288 | 0x20CD | | splashImRestMSB | |
289 | 0x20CE | | twoPlayers | 1 for yes, 0 means 1 player |
290 | 0x20CF | | aShotReloadRate | Based on the MSB of the player's score ... how fast the aliens reload their shots |
291 | 0x20D0 | | | ; This is where the alien-sprite-carying-the-Y ... |
292 | 0x20D1 | | | ; ... lives in ROM |
293 | 0x20D2 | | | |
294 | 0x20D3 | | | |
295 | 0x20D4 | | | |
296 | 0x20D5 | | | |
297 | 0x20D6 | | | |
298 | 0x20D7 | | | |
299 | 0x20D8 | | | |
300 | 0x20D9 | | | |
301 | 0x20DA | | | |
302 | 0x20DB | | | |
303 | 0x20DC | | | |
304 | 0x20DD | | | |
305 | 0x20DE | | | |
306 | 0x20DF | | | |
307 | 0x20E0 | | | |
308 | 0x20E1 | | | |
309 | 0x20E2 | | | |
310 | 0x20E3 | | | |
311 | 0x20E4 | | | |
312 | 0x20E5 | | player1Ex | Extra ship has been awarded = 0 |
313 | 0x20E6 | | player2Ex | Extra ship has been awarded = 0 |
314 | 0x20E7 | | player1Alive | 1 if player is alive, 0 if dead (after last man) |
315 | 0x20E8 | | player2Alive | 1 if player is alive, 0 if dead (after last man) |
316 | 0x20E9 | | suspendPlay | 1=game things are moving, 0=game things are suspended |
317 | 0x20EA | | coinSwitch | 1=switch down, 0=switch up (used to debounce coin switch) |
318 | 0x20EB | | numCoins | number of coin credits in BCD format (99 max) |
319 | 0x20EC | | splashAnimate | 0 for animation during splash and 1 for not. This alternates after every cycle. |
320 | 0x20ED | | demoCmdPtrLSB | pointer to demo commands LSB 1663 |
321 | 0x20EE | | demoCmdPtrMSB | pointer to demo commands MSB |
322 | 0x20EF | | gameMode | 1=game running, 0=demo or splash screens |
323 | 0x20F0 | | | |
324 | 0x20F1 | | adjustScore | Set to 1 if score needs adjusting |
325 | 0x20F2 | | scoreDeltaLSB | Score adjustment (LSB) |
326 | 0x20F3 | | scoreDeltaMSB | Score adjustment (MSB) |
327 | 0x20F4 | | HiScorL | Hi-score descriptor ... value LSB |
328 | 0x20F5 | | HiScorM | Hi-score descriptor ... value MSB |
329 | 0x20F6 | | HiScorLoL | Hi-score descriptor ... location LSB |
330 | 0x20F7 | | HiScorLoM | Hi-score descriptor ... location MSB |
331 | 0x20F8 | | P1ScorL | Hi-score descriptor ... value LSB |
332 | 0x20F9 | | P1ScorM | Hi-score descriptor ... value MSB |
333 | 0x20FA | | P1ScorLoL | Hi-score descriptor ... location LSB |
334 | 0x20FB | | P1ScorLoM | Hi-score descriptor ... location MSB |
335 | 0x20FC | | P2ScorL | Hi-score descriptor ... value LSB |
336 | 0x20FD | | P2ScorM | Hi-score descriptor ... value MSB |
337 | 0x20FE | | P2ScorLoL | Hi-score descriptor ... location LSB |
338 | 0x20FF | | P2ScorLoM | Hi-score descriptor ... location MSB |
339 |
340 |