Address Length Description
23729 79
Stack
The game's stack. The stack pointer is set to 23808 by Game_Restart and MainLoop_NewPass and the stack grows downwards from there. The bytes held here in the snapshot are left over from the BASIC loader.
24064 3
High Score
3-byte representation of the score.
24067 1
Game Options
Holds the number of players and the chosen control method.
Byte Binary Option
0 00000000 1UP Game + Keyboard
1 00000001 2UP Game + Keyboard
2 00000010 1UP Game + Kempston Joystick
3 00000011 2UP Game + Kempston Joystick
24068 1
Sound Mute Flag
Tunes are only played if this is 0 and are muted if it is not (see 26335). It is set from the checksum of the BEEPER routine in the ROM, which is stored by 25059.
24069 3
1UP Score
3-byte representation of the score.
24072 3
2UP Score
3-byte representation of the score.
24075 8
Temporary Sprite State
The saved position and state of the object which is being drawn, and the details of the sprites being drawn. The object position and state are saved by StoreEntity and the sprite details are set by SetUpPreviousSprite and SetUpSprite_Address. NewSprite_Width is also used as a dummy object when drawing the items in the cubby holes, so that ColouriseSprite can fetch the colour from 24082.
24083 1
Bug Start Cubby Hole
The number of the cubby hole that the next bug will start from, which is written by SpawnBug and read by CreateBug.
24085 1
Leaf Growth Flags
Used to grow the leaves of the flower (see GrowLeaf and UpdateFlower).
  • Bit 6 is flipped each time a leaf is added, so that the leaves alternate between the right and the left of the flower.
  • Bit 0 is set when a leaf is added and is reset when the flower moves, to stop another leaf being added until then.
24086 1
Bug Count
The number of bugs found in the current pass through the objects. It is set to 0 at the start of each pass (25432), added to by every bug that is updated (UpdateBugCommon) and used by SpawnBug to decide whether a new bug should be added. The most there can be is 6.
24087 2
Game Timer
A 16-bit counter which is increased by one at the end of every full pass through the objects (see Pause_Loop). It is used for timing, such as when leaves grow and when the bonus item flashes. It goes back to 0 after 65535.
24089 1
Random Number
The random number is added to every time an object has been updated (NewActor). At the end of each pass it is also added to the byte of the ROM at the address given by the low byte of the game timer, and to the refresh register (29014).
24090 2
Sprite Screen Position
The position of the sprite most recently set up by SetUpSprite_Address (X in L, Y in H), after the horizontal offset from the sprite data has been added.
24092 2
Free Weapon Slot
The address of the first free weapon object, which is either State_Weapon_1 or State_Weapon_2 (each 8 bytes), set by FireWeapon.
24094 1
Current Player
Either 0 for 1UP or 255 for 2UP.
24095 1
Last Frame
Holds a copy of the last FRAMES counter.
24096 1
Frame Updated
Has the frame been updated? 0=No 1=Yes.
24097 1
Menu Item Attribute
Current menu item colour attribute.
24098 1
"Get Ready" Delay Counter
Counts down while Robbie waits at the start of a turn (set by PlayerInit_WriteDelay, to 128 for a 1UP game and 255 for a 2UP game), during which the label of the active player flashes and no bugs are added.
24099 10
Cubby Holes
The contents of the ten cubby holes of the active player. Holes 0 to 4 are on the left (X position 8) and holes 5 to 9 are on the right (X position 232), each going down the screen from the top.
An empty hole is 0. For a spray can, bits 0-2 are the colour and bit 3 is set. A hole is 255 when a bonus item is waiting there (see SpawnBonusItem) and is set to 128 when Robbie collects it.
24109 10
Inactive Player Cubby Holes
The cubby holes of the player who is not active in a two player game. They are swapped with the holes at CubbyHoles when the active player changes (see 24902).
24119 1
Active Player Level
Note that level 1 is 0.
24120 1
Active Player Lives
The currently active players remaining lives.
24121 1
Inactive Player Level
Note that level 1 is 0.
24122 1
Inactive Player Lives
The inactive players remaining lives.
24123 1
Bugs Eating Flower
The number of bugs which have been eating the flower during the current pass through the objects. Each bug that is eating adds one (EatFlower), and the flower uses the total and then resets it to 0 (UpdateFlower_Finish).
24124 8
Bonus Item State
The bonus item, which sits in a cubby hole until Robbie collects it (see SpawnBonusItem and UpdateBonusItem). It is an object which is not in the main table.
24132 40
Inactive Player Flower And Leaves
The flower and the four leaves of the player who is not active in a two player game. They are swapped with the objects at State_Flower when the active player changes (see 24913).
24172 8
Robbie State
Robbie is the first of the objects which are updated in each pass.
24180 8
Spray Can State
The spray can which Robbie is carrying (see UpdateSprayCan).
24188 8
Weapon 1 State
The first of the two weapons that Robbie can fire at once (see FireWeapon).
24196 8
Weapon 2 State
The second of the two weapons that Robbie can fire at once. It has the same fields as State_Weapon_1.
24204 8
Flower State
The flower (see UpdateFlower).
24212 32
Leaf Data
The four leaves of the flower (see UpdateLeaf). Each leaf is an object of eight bytes. Bit 6 of the state is set when the leaf is on the left of the flower. The other fields are the position, the colour, a flag which is set while the leaf is animating, a flag which is set once it is being eaten, and the frame.
24244 48
Bug State
The six bugs, each an object of eight bytes. A bug is inactive (state 0) or is a slug (7), a swarm of midges (9) or a leech (10). The fields of a bug are:
Field Use
+0 State, with the direction of movement in bits 6 and 7
+1 X position
+2 Y position
+3 Colour attribute
+4 Bit 2 is set when the bug is stunned, bit 3 when it is eating the flower and (for a leech) bit 0 when it is moving vertically
+5 The stun timer, the horizontal motion of midges or a counter used while eating
+6 The vertical movement counter, the vertical motion of midges or the Y position where the bug started eating
+7 The height of the sprite in pixels, used to find collisions
24292 8
Explosion State
The explosion, which is the last of the objects (see AnimateExplosion). It is state 21 (which does nothing) until an object explodes.
24342 8
Default Bug State
Copied into a bug when it is created (see CreateBug), which then changes its type and colour.
24350 8
Default Robbie State
Copied into Robbie at the start of a turn (see PlayerInit).
24358 8
Default Flower State
Copied into the flower at the start of a level (see ResetFlowerLeaf).
24366 10
Default Cubby Holes
Copied into the cubby holes at the start of a level (see ResetCubbyHoles). Three of the holes hold a spray can: cyan in hole 0 yellow in hole 3 and red in hole 6.
24376 8
Default Leaf State
Copied into a leaf when it starts to grow (see GrowLeaf).