Address Description
607C
Main entry point 1
60D2
Main entry point 2
6120
Start the game
6127
Run the demo
619A
Reset to level 1
61A6
Set up the playing field
61C4
Set up level 2
61CB
Set up level 3
61DE
Set up level 4
61F6
Set up level 5
6209
Set up level 6
6214
Set up level 7
6232
Set up level 8
6240
Set up level 9
6265
Set up level A
6274
Set up level B
6295
Set up level C
62A4
Set up level D
62AA
Set up level E
62C8
Set up level F
62F0
Reset back to level 1 and run it
62FD
Draw the game stats
633B
Start a game
638C
Main loop (1)
641D
Redraw Quasimodo while jumping
646A
Copy player's co-ordinates to a test buffer
647D
Copy player's co-ordinates from a test buffer
6490
Main loop (2) - Update all objects on screen
65BA
Check for moving right
65F1
Move right
6620
Handle state wrap-around moving right
662B
Check for moving left
6652
Move left
6681
Handle state wrap-around moving left
6691
Check for jumping
66C3
Jump
66F5
Fall after jumping
6706
Reset the jump flag
670C
Pause
6715
Move fireball or arrow R - L
677A
Draw a row of bells
67BA
Check if there is an object colliding with Quasimodo on the floor
67CC
Check if there is an object colliding with Quasimodo while jumping
67DE
Check for an object colliding with Quasimodo on the floor
67FA
Check for an object colliding with Quasimodo on the floor
681A
Mark a collision
6820
Get an attribute from screen
6831
Throw Quasimodo off the wall as he's died
68E5
Reset the level after dying
695D
Tidy up after losing a life
696E
Reset all the level flags to default
6A51
Level completed
6AC9
Draw the main paying area
6AD1
Print the score
6AEB
Display the bonus bells
6B08
Award the super bonus
6B75
Lower the soldiers' spears
6B8E
Draw the soldiers attributes (raised)
6BAF
Draw the soldiers attributes (normal)
6BC4
Move fireball or arrow L - R
6C3C
Move high fireball or arrow R - L
6CA1
Move high fireball or arrow L - R
6D1B
Draw the remaining lives
6D3C
Adjust the score for decimal arithmetic (?)
6D5B
Move the chasing knight
6DBA
Move the chasing knight towards Quasimodo
6DDE
Adjust level bonus for decimal arithmetic (?)
6DFD
Draw the level bonus
6E16
Adjust Quasimodo after grabbing a bell
6E45
Draw Quasimodo
6E73
Draw Quaismodo (alt graphic)
6EA9
Draw the "HELP" message on the last level
6ED7
Draw the chasing knight if it has climbed the wall
6F0A
Draw the chasing knight
6F8B
Move Quasimodo along the rope
6FE8
Quasimodo has died while on a rope
7021
Draw the attributes for the playing area
707C
Swap Quasimodo's sprite between the main and working copy
7095
Swap memory
70A3
See if the room has a pit or rampart, and if so, call the logic for that
70CA
Check for collision on a room with bells
7121
Update sub-frame of current object
7128
Get the current's object sub-frame
712D
Display the current level
7156
See if Quasimodo has fallen off a ledge
7174
See if Quasimodo has fallen off a rampart
71A1
Mark Quasimodo as fallen if the sub-frame is not 1
71AA
Check the X co-ordinate to see if Quasimodo has fallen
71F7
Mark Quasimodo as fallen if the sub-frame is 1
7200
Mark Quasimodo as fallen if the sub-frame is not 1
7209
Award an extra life every 10,000 points
721A
Mark falling off a ledge
7222
Draw a magenta stripe on the right of the screen
80E8
Play the tune
814C
Play a note in the tune
82DC
Print the current level as a dot on screen
86C4
See if Quasimodo has collided with something
8796
Check if Quasimodo is close enough to have collided
8816
Collision : Get a buffer to a sprite given its index
8826
Collision : Get the screen address from a co-ordinate
8854
Set the flag that Quasimodo collided with an object
8A48
End the game after all lives have been lost
8A71
Put the score on the high score table if necessary
8B0C
Find the right slot for the high score
8B2C
Compare the current score with an existing one
8B4F
Display the high score table
8B5F
Input a new entry in the high score table
8BC4
Display an entry in the high score table
8BF1
Display a character in the high score table
8BFC
Convert a Y co-ordinate to a screen address
8C13
Enter a character for the new high score name
8C38
Move the high score entry cursor right
8C45
Move the high score entry cursor left
8D61
Clear the screen blue (for high score display)
8D78
Clear the screen
8DCC
Display the high score table in demo mode
9A4C
Print the main wall
9A73
Convert Y co-ordinate to a screen address
9A90
Print a graphic on screen
9AAE
Convert a graphic ID to an address in memory
9ABA
Convert a screen address to attribute
9ACA
Print a group of graphics
9AEB
Erase a group of graphics
9B0C
Erase a graphic on screen
B798
Draw a sprite
B8EA
Get a buffer to a sprite given its ID
B8FA
Convert a Y co-ordinate to a screen address
B928
Convert a screen address into an attribute
B98C
Update the rope
B9CE
Update the rope and redraw it
B9F7
Update the rope angle (?)
B9FD
Update the rope position
BA05
Draw the rope
C030
Animate the fiery pit
C060
Set the attributes for the fiery pit
C0C6
Refresh the rope and pit
C0F8
Beep during the super bonus award
C12E
Flash the bells in the super bonus award
C15C
Play a sound effect
C182
Play a note in the sound data
EA60
Update state if Quasimodo is near a rope
EAC4
Flash the wall after dying
EAF1
Fill the wall with an attribute
EB06
Check for "right" on Interface 2
EB12
Jump to EB3A
EB1A
Jump to EB46
EB20
Check for "right" on Protek Interface
EB2C
Check for "left" on Protek Interface
EB38
Jump to EB50
EB3A
Check for "left" on Interface 2
EB46
Check for "jump" on Interface 2
EB50
Check for "jump" on Protek Interface