Address Length Description
5CB1 79
Stack
The game's stack. The stack pointer is set to 5D00 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.
5E00 3
High Score
3-byte representation of the score.
5E03 1
Game Options
Holds the number of players and the chosen control method.
Byte Binary Option
00 00000000 1UP Game + Keyboard
01 00000001 2UP Game + Keyboard
02 00000010 1UP Game + Kempston Joystick
03 00000011 2UP Game + Kempston Joystick
5E04 1
Sound Mute Flag
Tunes are only played if this is 00 and are muted if it is not (see 66DF). It is set from the checksum of the BEEPER routine in the ROM, which is stored by 61E3.
5E05 3
1UP Score
3-byte representation of the score.
5E08 3
2UP Score
3-byte representation of the score.
5E0B 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 5E12.
5E13 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.
5E15 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.
5E16 1
Bug Count
The number of bugs found in the current pass through the objects. It is set to 00 at the start of each pass (6358), 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 06.
5E17 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 00 after FFFF.
5E19 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 (7156).
5E1A 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.
5E1C 2
Free Weapon Slot
The address of the first free weapon object, which is either State_Weapon_1 or State_Weapon_2 (each 08 bytes), set by FireWeapon.
5E1E 1
Current Player
Either 00 for 1UP or FF for 2UP.
5E1F 1
Last Frame
Holds a copy of the last FRAMES counter.
5E20 1
Frame Updated
Has the frame been updated? 00=No 01=Yes.
5E21 1
Menu Item Attribute
Current menu item colour attribute.
5E22 1
"Get Ready" Delay Counter
Counts down while Robbie waits at the start of a turn (set by PlayerInit_WriteDelay, to 80 for a 1UP game and FF for a 2UP game), during which the label of the active player flashes and no bugs are added.
5E23 10
Cubby Holes
The contents of the ten cubby holes of the active player. Holes 00 to 04 are on the left (X position 08) and holes 05 to 09 are on the right (X position E8), each going down the screen from the top.
An empty hole is 00. For a spray can, bits 0-2 are the colour and bit 3 is set. A hole is FF when a bonus item is waiting there (see SpawnBonusItem) and is set to 80 when Robbie collects it.
5E2D 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 6146).
5E37 1
Active Player Level
Note that level 1 is 00.
5E38 1
Active Player Lives
The currently active players remaining lives.
5E39 1
Inactive Player Level
Note that level 1 is 00.
5E3A 1
Inactive Player Lives
The inactive players remaining lives.
5E3B 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 00 (UpdateFlower_Finish).
5E3C 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.
5E44 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 6151).
5E6C 8
Robbie State
Robbie is the first of the objects which are updated in each pass.
5E74 8
Spray Can State
The spray can which Robbie is carrying (see UpdateSprayCan).
5E7C 8
Weapon 1 State
The first of the two weapons that Robbie can fire at once (see FireWeapon).
5E84 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.
5E8C 8
Flower State
The flower (see UpdateFlower).
5E94 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.
5EB4 48
Bug State
The six bugs, each an object of eight bytes. A bug is inactive (state 00) or is a slug (07), a swarm of midges (09) or a leech (0A). 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
5EE4 8
Explosion State
The explosion, which is the last of the objects (see AnimateExplosion). It is state 15 (which does nothing) until an object explodes.
5F16 8
Default Bug State
Copied into a bug when it is created (see CreateBug), which then changes its type and colour.
5F1E 8
Default Robbie State
Copied into Robbie at the start of a turn (see PlayerInit).
5F26 8
Default Flower State
Copied into the flower at the start of a level (see ResetFlowerLeaf).
5F2E 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 00 yellow in hole 03 and red in hole 06.
5F38 8
Default Leaf State
Copied into a leaf when it starts to grow (see GrowLeaf).