Address | Name | Description |
2000 | waitOnDraw | Cleared by alien-draw and set by next-alien. This ensures no alien gets missed while drawing. |
2001 | | |
2002 | alienIsExploding | Not-0 if an alien is exploding, 0 if not exploting |
2003 | expAlienTimer | Time (ISR ticks) left in alien-explosion |
2004 | alienRow | Row number of current alien (cursor) |
2005 | alienFrame | Animation frame number (0 or 1) for current alien (cursor) |
2006 | alienCurIndex | Alien cursor index (from 0 to 54) |
2007 | refAlienDYr | Reference alien delta Yr |
2008 | refAlienDXr | Reference alien deltaXr |
2009 | refAlienYr | Reference alien Yr coordinate |
200A | refAlienXr | Reference alien Xr coordinate |
200B | alienPosLSB | Alien cursor bit pos (LSB) |
200C | alienPosMSB | Alien cursor bit pos (MSB) |
200D | rackDirection | Value 0 if rack is moving right or 1 if rack is moving left |
200E | rackDownDelta | Constant value of alien rack dropping after bumping screen edge |
200F | | |
| | |
| | '''GameObject0 (Move/draw the player)''' |
2010 | obj0TimerMSB | |
2011 | obj0TimerLSB | Wait 128 interrupts (about 2 secs) before player task starts |
2013 | obj0HanlderLSB | |
2014 | oBJ0HanlderMSB | Player handler code at 028E |
2015 | playerAlive | Player is alive (FF=alive). Toggles between 0 and 1 for blow-up images. |
2016 | expAnimateTimer | Time till next blow-up sprite change (reloaded to 5) |
2017 | expAnimateCnt | Number of changes left in blow-up sequence |
2018 | plyrSprPicL | Player sprite descriptor ... picture LSB |
2019 | plyrSprPicM | Player sprite descriptor ... picture MSB |
201A | playerYr | Player sprite descriptor ... location LSB |
201B | playerXr | Player sprite descriptor ... location MSB |
201C | plyrSprSiz | Player sprite descriptor ... size of sprite |
201D | nextDemoCmd | Next movement command for demo |
201E | hidMessSeq | Set to 1 after 1st of 2 sequences are entered for hidden-message display |
201F | | Appears to be unused |
2020 | obj1TimerMSB | |
| | |
| | '''GameObject1 (Move/draw the player shot)''' |
2021 | obj1TimerLSB | |
2023 | obj1HandlerLSB | |
2024 | obj1HandlerMSB | Shot handler code at 03BB |
2025 | 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) |
2026 | blowUpTimer | Sprite blow-up timer |
2027 | obj1ImageLSB | |
2028 | obj1ImageMSB | Sprite image at 1C90 (just one byte) |
2029 | obj1CoorYr | Player shot Y coordinate |
202A | obj1CoorXr | Player shot X coordinate |
202B | obj1ImageSize | Size of shot image (just one byte) |
202C | shotDeltaX | Shot's delta X |
202D | fireBounce | 1 if button has been handled but remains down |
202E | | |
202F | | |
| | |
| | '''GameObject2 (Alien rolling-shot)''' |
2030 | obj2TimerMSB | |
2031 | obj2TimerLSB | |
2033 | obj2HandlerLSB | |
2034 | obj2HandlerMSB | Handler code at 0476 |
2035 | rolShotStatus | |
2036 | rolShotStepCnt | |
2037 | rolShotTrack | A 0 means this shot tracks the player |
2038 | rolShotCFirLSB | Pointer to column-firing table LSB (not used for targeting) |
2039 | rolShotCFirMSB | Pointer to column-firing table MSB (not used for MSB counter |
203A | rolShotBlowCnt | |
203B | rolShotImageLSB | |
203C | rolShotImageMSB | |
203D | rolShotYr | |
203E | rolShotXr | |
203F | rolShotSize | |
| | |
| | '''GameObject3 (Alien plunger-shot)''' |
2040 | obj3TimerMSB | |
2041 | obj3TimerLSB | |
2043 | obj3HandlerLSB | |
2044 | obj3HandlerMSB | Handler code at 04B6 |
2045 | pluShotStatus | |
2046 | pluShotStepCnt | |
2047 | pluShotTrack | A 1 means this shot does not track the player |
2048 | pluShotCFirLSB | Pointer to column-firing table LSB |
2049 | pluShotCFirMSB | Pointer to column-firing table MSB |
204A | pluShotBlowCnt | |
204B | pluShotImageLSB | |
204C | pluShotImageMSB | |
204D | pluShotYr | |
204E | pluSHotXr | |
204F | pluShotSize | |
| | |
| | '''GameObject4 (Flying saucer OR alien squiggly shot)''' |
2050 | obj4TimerMSB | |
2051 | obj4TimerLSB | |
2053 | obj4HandlerLSB | |
2054 | obj4HandlerMSB | Handler code at 0682 |
2055 | squShotStatus | |
2056 | squShotStepCnt | |
2057 | squShotTrack | A 1 means this shot does not track the player |
2058 | squShotCFirLSB | Pointer to column-firing table LSB |
2059 | squShotCFirMSB | Pointer to column-firing table MSB |
205A | squSHotBlowCnt | |
205B | squShotImageLSB | |
205C | squShotImageMSB | |
205D | squShotYr | |
205E | squShotXr | |
205F | squShotSize | |
2060 | endOfTasks | FF marks the end of the tasks list |
2061 | collision | Set to 1 if sprite-draw detects collision |
2062 | expAlienLSB | |
2063 | expAlienMSB | Exploding alien picture 1CC0 |
2064 | expAlienYr | Y coordinate of exploding alien |
2065 | expAlienXr | X coordinate of exploding alien |
2066 | expAlienSize | Size of exploding alien sprite (16 bytes) |
2067 | playerDataMSB | Current player's data-pointer MSB (21xx or 22xx) |
2068 | playerOK | 1 means OK, 0 means blowing up |
2069 | enableAlienFire | 1 means aliens can fire, 0 means not |
206A | alienFireDelay | Count down till aliens can fire (2069 flag is then set) |
206B | oneAlien | 1 when only one alien is on screen |
206C | temp206C | Holds the value ten ... number of characters in each "=xx POINTS" string but gets set to 18 in mem copy before game. |
206D | invaded | Set to 1 when player blows up because rack has reached bottom |
206E | skipPlunger | When there is only one alien left this goes to 1 to disable the plunger-shot when it ends |
206F | | |
2070 | otherShot1 | When processing a shot, this holds one of the other shot's info |
2071 | otherShot2 | When processing a shot, this holds one of the other shot's info |
2072 | vblankStatus | 80=screen is being drawn (don't touch), 0=blanking in progress (ok to change) |
| | |
| | '''Alien shot information (copied from the 3 actual structures when processed)''' |
2073 | aShotStatus | Bit 0 set if shot is blowing up, bit 7 set if active |
2074 | aShotStepCnt | Count of steps made by shot (used for fire reload rate) |
2075 | aShotTrack | 0 if shot tracks player or 1 if it uses the column-fire table |
2076 | aShotCFirLSB | Pointer to column-firing table LSB |
2077 | aShotCFirMSB | Pointer to column-firing table MSB |
2078 | aShotBlowCnt | Alen shot blow up counter. At 3 the explosion is drawn. At 0 it is done. |
2079 | aShotImageLSB | Alien shot image LSB |
207A | aShotImageMSB | Alien shot image MSB |
207B | alienShotYr | Alien shot delta Y |
207C | alienShotXr | Alien shot delta X |
207D | alienShotSize | Alien shot size |
207E | alienShotDelta | Alien shot speed. Normally -1 but set to -4 with less than 9 aliens |
207F | shotPicEnd | the last picture in the current alien shot animation |
2080 | shotSync | All 3 shots are synchronized to the GO-2 timer. This is copied from timer in the game loop |
2081 | tmp2081 | Used to hold the remember/restore flag in shield-copy routine |
2082 | numAliens | Number of aliens on screen |
2083 | saucerStart | Flag to start saucer (set to 1 when 2091:2092 counts down to 0) |
2084 | saucerActive | Saucer is on screen (1 means yes) |
2085 | saucerHit | Saucer has been hit (1 means draw it but don't move it) |
2086 | saucerHitTime | Hit-sequence timer (explosion drawn at 1F, score drawn at 18) |
2087 | saucerPriLocLSB | Mystery ship print descriptor ... coordinate LSB |
2088 | saucerPriLocMSB | Mystery ship print descriptor ... coordinate MSB |
2089 | saucerPriPicLSB | Mystery ship print descriptor ... message LSB |
208A | saucerPriPicMSB | Mystery ship print descriptor ... message MSB |
208B | saucerPriSize | Mystery ship print descriptor ... number of characters |
208C | saucerDeltaY | Mystery ship delta Y |
208D | sauScoreLSB | Pointer into mystery-ship score table (MSB) |
208E | sauScoreMSB | Pointer into mystery-ship score table (LSB) |
208F | shotCountLSB | Bumped every shot-removal. Saucer's direction is bit 0. (0=2/29, 1=-2/E0) |
2090 | shotCountMSB | Read as two-bytes with 208F, but never used as such. |
2091 | tillSaucerLSB | |
2092 | tillSaucerMSB | Count down every game loop. When it reaches 0 saucer is triggerd. Reset to 600. |
2093 | waitStartLoop | 1=in wait-for-start loop, 0=in splash screens |
2094 | soundPort3 | Current status of sound port (out $03) |
2095 | changeFleetSnd | Set to 1 in ISR if time to change the fleet sound |
2096 | fleetSndCnt | Delay until next fleet movement tone |
2097 | fleetSndReload | Reload value for fleet sound counter |
2098 | soundPort5 | Current status of sound port (out $05) |
209A | tilt | 1 if tilt handling is in progress |
209B | fleetSndHold | Time to hold fleet-sound at each change |
209C | | |
209D | | |
209E | | |
209F | | |
20A0 | | |
| | |
| | '''In the ROM mirror copied to RAM this is the image of the alien sprite pulling the upside down Y. The code expects it to be 0030 below the second animation picture at 1BD0. This RAM area must be unused. The copy is wasted. ''' |
20A1 | | |
20A2 | | |
20A3 | | |
20A4 | | |
20A5 | | |
20A6 | | |
20A7 | | |
20A8 | | |
20A9 | | |
20AA | | |
20AB | | |
20AC | | |
20AD | | |
20AE | | |
20AF | | |
20B0 | | |
20B1 | | |
20B2 | | |
20B3 | | |
20B4 | | |
20B5 | | |
20B6 | | |
20B7 | | |
20B8 | | |
20B9 | | |
20BA | | |
20BB | | |
20BC | | |
20BD | | |
20BE | | |
20BF | | |
| | |
| | ''' End of inialization copy from ROM mirror''' |
| | |
| | ''' These are copied once from ROM at startup (01E6)''' |
| | |
| | ''' Splash screen animation structure ''' |
20C0 | isrDelay | Delay counter decremented in ISR |
20C1 | isrSplashTask | 1=In demo, 2=Little-alien and Y, 4=shooting extra 'C' |
20C2 | splashAnForm | Image form (increments each draw) |
20C3 | splashDeltaX | Delta X |
20C4 | splashDeltaY | Delta Y |
20C5 | splashYr | Y coordinate |
20C6 | splashXr | X coordinate |
20C7 | splashImageLSB | |
20C8 | splashImageMSB | Base image 1BA0 (small alien with upside down Y) |
20C9 | splashImageSize | Size of image (16 bytes) |
20CA | splashTargetY | Target Y coordinate |
20CB | splashReached | Reached target Y flag (1 when reached) |
20CC | splashImRestLSB | Base image for restore 1BA0 is small alien with upside down Y |
20CD | splashImRestMSB | |
20CE | twoPlayers | 1 for yes, 0 means 1 player |
20CF | aShotReloadRate | Based on the MSB of the player's score ... how fast the aliens reload their shots |
20D0 | | ; This is where the alien-sprite-carying-the-Y ... |
20D1 | | ; ... lives in ROM |
20D2 | | | |
20D3 | | | |
20D4 | | | |
20D5 | | | |
20D6 | | | |
20D7 | | | |
20D8 | | | |
20D9 | | | |
20DA | | | |
20DB | | | |
20DC | | | |
20DD | | | |
20DE | | | |
20DF | | | |
20E0 | | | |
20E1 | | | |
20E2 | | | |
20E3 | | | |
20E4 | | | |
20E5 | player1Ex | Extra ship has been awarded = 0 |
20E6 | player2Ex | Extra ship has been awarded = 0 |
20E7 | player1Alive | 1 if player is alive, 0 if dead (after last man) |
20E8 | player2Alive | 1 if player is alive, 0 if dead (after last man) |
20E9 | suspendPlay | 1=game things are moving, 0=game things are suspended |
20EA | coinSwitch | 1=switch down, 0=switch up (used to debounce coin switch) |
20EB | numCoins | number of coin credits in BCD format (99 max) |
20EC | splashAnimate | 0 for animation during splash and 1 for not. This alternates after every cycle. |
20ED | demoCmdPtrLSB | pointer to demo commands LSB 1663 |
20EE | demoCmdPtrMSB | pointer to demo commands MSB |
20EF | gameMode | 1=game running, 0=demo or splash screens |
20F0 | | | |
20F1 | adjustScore | Set to 1 if score needs adjusting |
20F2 | scoreDeltaLSB | Score adjustment (LSB) |
20F3 | scoreDeltaMSB | Score adjustment (MSB) |
20F4 | HiScorL | Hi-score descriptor ... value LSB |
20F5 | HiScorM | Hi-score descriptor ... value MSB |
20F6 | HiScorLoL | Hi-score descriptor ... location LSB |
20F7 | HiScorLoM | Hi-score descriptor ... location MSB |
20F8 | P1ScorL | Hi-score descriptor ... value LSB |
20F9 | P1ScorM | Hi-score descriptor ... value MSB |
20FA | P1ScorLoL | Hi-score descriptor ... location LSB |
20FB | P1ScorLoM | Hi-score descriptor ... location MSB |
20FC | P2ScorL | Hi-score descriptor ... value LSB |
20FD | P2ScorM | Hi-score descriptor ... value MSB |
20FE | P2ScorLoL | Hi-score descriptor ... location LSB |
20FF | P2ScorLoM | Hi-score descriptor ... location MSB |