Address Length Description
5C76 2
Pseudo-random store for crushers
Used by the routine in FD9B.
5C7B 1
Current x co-ordinate
5C7C 1
Current y co-ordinate
82A3 1
Game input : 0 - keyboard, 1 - Kempston, 2 - Sinclair
82A4 1
Frame counter for input options
Cycles between 00 and 0F. Used by the routine at 82A5.
82A5 1
Set to 0 to print an option, or 1 to hide it
Used by the routine at 82A5.
832E 1
Last input data
value description
0 up
1 down
2 left
3 right
4 no movement
Bit 7 is set when jumping.
848E 1
Current frame to draw Monty
848F 1
Position off the ground (when jumping)
8498 1
Time Monty has been jumping
849B 1
Last input data when jumping or falling
8962 1
X co-ordinate for current nasty being drawn
Used by the routine in 8751.
8963 1
Y co-ordinate for current nasty being drawn
Used by the routine in 8751.
8D52 1
Room flags
bit value
0
1 Monty is jumping
2 Monty can climb
3 Monty has picked up the non-coal item
4 If reset, Monty can move right
5 If reset, Monty can move left
6 If reset, Monty can move down
7 If reset, Monty can move up
8D53 1
Game flags
bit value
0 If reset, background objects can move
1 If set, Monty is in mid-air
2
3
4
5
6
7
8D54 4
Movement flags
These four bytes describe what movement can be made up, down, left and right, with the following values:
value description
0 Movement is blocked
1 Fire (fatal)
2 Ladder (can be climbed)
3 Not used
4 Empty space (can be walked through)
8D58 1
Distance fallen by
8D59 2
Current attribute address of Monty
8D5B 1
Y screen offset for attribute
8D5C 1
X screen offset for attribute
8D5D 1
X co-ordinate on screen
8D5E 1
Y co-ordinate on screen
8D7D 2
Temp store for screen position
9177 2
Offset for Monty's angel as it is animated
9179 1
Frame number for the angel (0-3)
9217 5
Current score (in reverse digits)
9223 5
Current score (in text).
Used by the routine in 91E8
9649 1
Current room
964A 1
Number of lives
964B 2
Start position for this room (when a life is lost)
9797 1
X co-ordinate of the minecart in room 10
9798 1
Y co-ordinate of the minecart in room 10
C42A 240
Static characters on screen
Each character is 3 bits ie: 3 bytes for 8 characters
0C bytes per line, F0 bytes per page.
The following is set in the buffer when the game is loaded: unused_room
C51A 1
"Water" attribute
Monty can walk through any cell with this attribute. Used by the routines in 8D0F and 8D2E.
C51B 1
"Fire" attribute
If Monty touches this attribute, he will die. Used by the routines in 8D0F and 8D2E.
C51C 1
"Ladder" attribute
If Monty touches this attribute, he can climb around it. Used by the routines in 8D0F and 8D2E.
C51D 1
"Wall" attribute
Monty can't walk through any cell with this attribute. Used by the routines in 8D0F and 8D2E.
C51E 2
Offset for Monty's graphic
C520 1
Next room UP
C521 1
Next room DOWN
C522 1
Next room LEFT
C523 1
Next room RIGHT
C524 1
x co-ordinate of (non coal) collectable item
C525 1
y co-ordinate of (non coal) collectable item
C526 1
Graphic index of (non coal) collectable item
C527 1
x co-ordinate of crusher
C528 1
y co-ordinate of crusher
C529 1
Crusher bottom column
C52A 1
Ticks left until a crusher should fire
C52B 1
Set to 0 if a crusher is ascending, or 1 if it is descending
C52C 1
Crusher top column
C537 8
Coal UDG
C53F 15
Positions of coal in the room
Format is:
Offset Value
00 Index into the score buffer at 964D
01 X co-ordinate
02 Y co-ordinate
C54E 72
Static character graphics
First byte is the attribute, other bytes are the data
C596 140
Nasty data
Each entry contains :
Offset Value
00 Status flag. 0 = two directions, 1 - ???, 2 = one direction, 3 = invisible
01 - 02 Address of graphic (up)
03 - 04 Address of graphic (down)
05 - 06 Address of graphic (left)
07 - 08 Address of graphic (right)
09 Attribute
0A Index of this nasty in the table
0B Current direction (0 - up, 1 - down, 2 - left, 3 - right)
0C Current X co-ordinate
0D Current Y co-ordinate
0E Width or height of path covered
0F Not used
10 Current distance before changing direction
11 Speed ( 0 - static, 1 - slow, 2 - fast )
12 Not used
13 Not used
C622 1
Moving platform 1 left x co-ordinate
C623 1
Moving platform 1 left y co-ordinate
C624 1
Moving platform left edge
C625 1
Moving platform right edge
C626 1
Moving platform 2 right x co-ordinate
C627 1
Moving platform 2 right y co-ordinate
C628 1
Set bit 7 if the platform is closing, otherwise reset if it is opening
CB92 1
Timer used when scrolling the end message
Cycles between 00 and 03.
CD3C 1
Set to 1 if the squirrel is dropping a nut
CD3D 1
Set to 0 if the nut is still falling, or 4F if it is exploding
CD3E 1
Current screen position of the nut dropped by the squirrel
CD3F 1
Timer for animating nut
CD40 1
Animation frame for nut
CE19 1
Frame counter (when zero, background animation happens)
CF54 768
Screen attribute buffer
ECDC 1
Frame number of the next sprite to update
Used by the routines in EC6F and ECA2.
ECDE 1
X co-ordinate of next sprite to update
Used by the routines in EC6F and ECA2.
ECDF 1
Y co-ordinate of next sprite to update
Used by the routines in EC6F and ECA2.
ECE0 2
Address of next sprite to update
Used by the routines in EC6F and ECA2.
ECE2 2
Pointer to position on screen to update
Used by the routines in EC6F and ECA2.
ECE4 48
Working buffer for moving sprites
EF79 1
Frame number for smoke animation graphic
F045 4
Current position drawing the start room
F047 2
Address of UDG currently being printed in the start room
F049 2
Screen position to draw the next UDG in the start room
This is an offset relative to EA60.
F7D1 1
Flags to indicate which blocking walls can open
If the appropriate bit is set, the wall will open.
Bit Room
0 If set, there is no wall to remove
1
2 Room 14
3 Room 0F
4 Room 0B
5 Room 06
6
7
F7D2 1
Y co-ordinate for the disappearing wall
F7D3 1
X co-ordinate for the disappearing wall
F7D4 1
Timer state for the disappearing wall
Start at 0 and increments as the wall disappears.
F7D5 1
Number of pieces of coal that have been collected