Address Length Description
5B00 4096
Copy of main playing area
This is a copy of the bottom two thirds of the screen containing the background graphics that don't change until a room is redrawn.
6B00 4096
Sprite buffer
The buffer contains a copy of the lower two thirds of the screen, sorted sequentially by rows.
80A9 60
Positions of the lightning bolts in the "asteroids" game
Used by the routines at EDF7, F8B9, F9F5 and FAF0.
813A 1
The current room showing in demo mode.
A838 1
Temporary X co-ordinate for putting static objects on screen
Used by the routine at A83D.
A839 1
Temporary Y co-ordinate for putting static objects on screen
Used by the routine at A83D.
A83B 2
Temporary store for the stack pointer for putting static objects on screen
AED5 2
The next room a computer character should swap
B09D 2
Buffer for the current player
During the game, the value of IY is set to this value and used to access other character specific flags, such as endurance and items held.
B34B 1
The current money digit being drawn.
Used by the routine in B34C
B4E7 2
The address of the next note in the theme tune to play
B4E9 1
The last key (0 - 4) pressed
If any bits are reset, that key was pressed. If all bits are set (ie: FF), no keys were pressed.
B4EA 1
The wave to play the next note, 0 = sawtooth, 1 = square
B55F 1
Set to '1' if the current character is computer controlled
During the intro screen, this byte is used as an index to the current theme tune note.
B951 1
The current room number
BAB3 1
Tick count for displaying "{character} is in {room}" message
Used by the routines in BA6E and BAB4.
BC2B 5
The current direction of each sprite (0 - left, 1 - right)
Used by the routines in B1A6, B288 and EFC7
BC30 5
Flags for objects (?)
BC35 5
Flags for objects (?)
BC3A 5
ID of the object a player is standing near and could potentially pick up
BC3F 5
Character ID (1 = Wally, 2 = Wilma, 4 = Tom, 8 = Dick, 10 = Harry)
BC44 5
Offset for each character name (from 7C00)
BC49 5
Earnings / 100
BC4E 5
Set to 1 to trigger a footstep sound for each character
BC53 5
Set to 1 if a computer controlled character is in the room it wanted to get to
BC58 5
ID of the next object in a room that a computer player can swap with
BC5D 5
Earnings % 100
BC62 5
Next index in the player's swap list to use.
BC67 5
The frame ID for each character
Runs from BC67 (Wally) to BC6B (Harry).
BC6C 5
x position on screen for each character
Runs from BC6C (Wally) to BC70 (Harry).
BC71 5
y position on screen for each character
Runs from BC71 (Wally) to BC75 (Harry).
BC76 5
Room number a character is in
Runs from BC76 (Wally) to BC7A (Harry).
BC7B 5
Endurance level for each character
Runs from BC7B (Wally) to BC7F (Harry).
BC80 5
ID of the favourite food item that restores endurance to maximum.
BC85 5
Attribute to draw the character
BC8A 5
Low byte of the character's graphic
BC8F 5
High byte of the character's graphic
BC94 5
Lives left for each player
BC9E 5
Set to 1 if a character is in mid-air
BCA3 5
Character jump flag
0 = no, 1 = jumping right, FF = jumping left
BCA8 5
Character direction (01 = right, FF = left)
BCAD 5
Character jump direction (01 = right, FF = left)
BCB2 5
If jumping, holds the frame number in the animation sequence
BCB7 5
First item of each character
BCBC 5
Second item of each character
BCC1 5
Target room to send a computer player
BCC6 5
Flag that toggles between 0 and 1 when a character not in the current room needs updating.
BCCB 5
Copy of the second entry in the current "next rooms" table (trigger co-ordinates)
BCD0 5
Copy of the first entry in the current "next rooms" table (room to move to)
BCD5 5
The room the computer player was previously in.
BCDA 5
Copy of the third entry in the current "next rooms" table (new co-ordinates)
BCDF 5
Lo byte of the item swap buffer
BCE4 5
Hi byte of the item swap buffer
EB54 1
Holds 1 if the player is near an object, or 0 for no item.
EC0F 1
Flag 0 : Bottle is full
EC10 1
Flag 1 : Fuse is rewired
EC11 1
Flag 2 : Parcel is stamped
EC12 1
Flag 3 : Hook is working
EC13 1
Flag 4 : Bucket is full
EC14 1
Flag 5 : Pipe is patched
EC15 1
Flag 6 : Battery is charged
EC16 1
Flag 7 : Oil can is full
EC17 1
Flag 8 : Fountain is repaired
EC18 1
Flag 9 : Wall is built
EC19 1
Flag A : Gas is repaired
EC1A 1
Flag B : Electricity is repaired
EC1B 1
Flag C : Trolley is moving
EC1C 1
Flag D : Asteroids game has been won
ED06 12
Movement table : Laboratory / Reward screens / Cave
ED12 1
Current object ID to use when drawing gas
F046 1
Direction of the shark
0 - left, 1 - right
F0BD 1
Chase : Current x co-ordinate of the shark
F104 4
Movement table : Jumping jack
F108 1
Next room for the jumping jack to appear in.
F109 1
Tick counter until the jumping jack updates
F243 4
Movement table : The Post Office
F26E 1
The amount to decrease endurance by in a collision
F270 4
Movement table : Herbert
F274 1
Current room Herbert is in
F275 1
Current tick count until Herbert moves
F276 1
Current object ID for Herbert. (40 - 46)
F2FD 12
Movement table : The Pub
F327 9
Movement table : The Zoo
F375 8
Movement table : The Docks
F3A3 8
Movement table : The Sewer
F401 8
Movement table : The Bakers
F491 12
Movement table : The Work Shed
F4FF 4
Movement table : The Super Market
F5BE 4
Movement table : School Lane
F5D2 1
Next object ID for the lighting bolts in School Lane
Alternates between 38 and 3A (8A78)
F5D3 30
School Lane electricity wire data
The buffer is defined as the direction in which to move after drawing one 8-bit cell of data. A 1 moves drawing up one row, a 0 moves it down one row, a 2 leaves it unchanged. FF marks the end of the data.
F653 80
Movement table : The Park
F671 1
Next ID to use for moving objects in the park
Alternates between 3C and 3E (8AF8).
F672 1
Set to 1 if a moving object hits its boundary in X and needs to move in the other direction.
Used by the routine in EF35.
F673 1
Set to 1 if a moving object hits its boundary in Y and needs to move in the other direction.
Used by the routine in EF35.
F6DC 16
Movement table : The Bank
F73A 12
Movement table : Wally's House
F7DE 1
Frame ID of the next moving desk in the school (57 - 5A)
Used by the routine in F773.
F7DF 1
X co-ordinate to draw the first school desk
Used by the routine in F773.
F7E1 1
X co-ordinate to draw the second school desk
Used by the routine in F773.
F7E3 1
X co-ordinate to draw the third school desk
Used by the routine in F773.
F7E5 1
X co-ordinate to draw the fourth school desk
Used by the routine in F773.
F7E7 1
X co-ordinate to draw the fifth school desk
Used by the routine in F773.
F812 2
Pointer to the next food table entry
F9C2 2
Asteroids : Current pointer to data for "hit lightning" sound
Used by the routine at F9C4.
F9F0 1
Asteroids : X co-ordinate of missile, or FF in inactive.
F9F1 1
Asteroids : Y co-ordinate of missile.
F9F2 1
Asteroids : Change in X for the missile
F9F3 1
Asteroids : Change in Y for the missile
FAEF 1
Asteroids : Flag to indicate new lightning bolts should be created
Alternates between 0 and 1. If reset, a new lightning bolt can be created if a small bolt is destroyed.
FC00 512
Copy of attribute buffer for sprites
The data is written to the screen by the routine at B9FB. It is initialised as a copy of the main screen at 5B00 by the routine at EEA2. Sprites are then drawn on top by the routine at A83D.
FE00 512
Copy of attribute buffer for main play area
The buffer is initialised by the routine at B9AC when all the background graphics are drawn.