Address Description
5B5B
IM2 vector jump
8000
Display input options and wait to start
8069
Toggle the display on every interrupt so the selected option is flashing
808A
Blank a character on screen
8092
Print an option on the intro screen
80D1
Print a character on screen
80FF
Put a text character's attributes on screen
82A6
Check for player input
8395
Select the graphic for Monty
8452
Redraw Monty after jumping or falling
8751
Move all the nasties on the screen
8866
Draw the nasty's attributes
887D
Draw a type 1 - 3 nasty
8964
Update a type 2 (single direction) nasty
89D4
Update Monty's position
8A63
Make Monty jump
8AD3
Update Monty while jumping
8B0C
See if Monty has walked off a ladder, and if so, set some flags
8B1F
Update Monty and act on room flags
8B90
Determine where Monty can move to
8C3D
Check what attributes are around Monty
8D0F
Update the movement tables (across)
8D2E
Update the movement tables (down)
8D5F
Return the current screen address
8D7F
Play death tune
8DCD
Move a crusher
8E9B
Set the attributes for a crusher
8EDD
Animate Monty's angel as he has died
8F31
Update the moving platforms
8F9F
IM2 routine for main game
9052
Update one side of a moving platform
90A3
Update one byte of a moving platform
90A8
Animate water
90BD
Animate the shower water in room 11
912C
Animate the shower water in room 11 (2)
9148
Check that a crusher has killed Monty
917A
Make Monty climb a ladder
919D
Add value of coal to the current score
91E8
Print the score
9228
Check to see if Monty has collided with a nasty
9258
See if Monty is touching some coal and can collect it
927E
Check if Monty is touching a (non-coal) collectable item, and if so, pick it up
9298
Check if Monty has collided with a nasty that can be removed with an item
9327
Return IX pointing to the index of the nasty Monty is touching, or 0
935C
Check to see if Monty has moved near any coal, and if so, pick it up
940C
Enter a room
946E
Monty has died. Play the "death" tune and lose a life
949E
Print the number of lives on the screen
94C3
Copy the data for the current room into the working buffer
94D9
Move into a new room
952F
Put (non coal) collectable objects on screen
9551
Display the current room
9568
Pick up an item
95AE
Reset the index of the collectable item, as it was picked up
95B3
Animate the coal colours in the room
95E8
Animate an item of coal in a room.
960F
Draw the coal in the room
968D
Clear a non-coal item, as it has been collected
96AA
Refresh any coal in the room.
96D9
Animate the rolling minecart in room 10
C62A
Copy the room graphic buffer to screen so it is visible
CAD1
Display the "game won" sequence
CB03
Print a message
CB15
Scroll a line of the message
CB35
Print a character in a message
CB63
Move a line of a message upwards
CB93
Run one frame in the first (outdoor) room
CD26
Convert a sprite ID to a graphic offset
CD41
Display the first (outdoor) room
CDC4
Monty has grabbed the bucket - start the miner chase
CDEF
Interrupt routine for first room
CECD
Unused
D254
Copy the screen to storage buffer
D260
Save game to tape
D290
Main entry point
EBE0
Print an animinated object on screen
EC6F
Shift a sprite to the right and copy it into a working buffer
ECA2
Shift a sprite to the left and copy it into a working buffer
EF2E
Animate the smoke in the start room
EF6B
Initialize smoke animation in the start room
EF7E
Set up graphics for the start room
EFBD
Draw static UDGs on the start room
F64D
See if Monty has picked up enough coal to open a blocking wall
F6A6
Hide any blocking walls if sufficient coal has been picked up
F6FD
Erase a wall from the screen
F71A
Hide a wall after enough coal has been collected
F7C7
Perform interrupt handler background updates
F7D6
Start a new game
F817
Print the "game over" message and start a new game
F858
Print the "game won" message and start a new game
FBED
Fill a sprite with an attribute
FBFC
Fill three rows with an attribute
FC18
Convert a co-ordinate to an attribute address.
FD9B
Generate a random time for the crusher
FDD5
Print all static characters in the current room
FDEA
Print a line of characters in a room
FE41
Print a character in the room
FE8F
Convert a screen address to a buffer address and store it
FEA2
Check the attribute at the current position matches the "moving" type
FEC0
Get the attribute at the specified position
FF00
Set control option and reset IY
FF5B
Halt and run one frame in the first (outdoor) room