Page Byte Address Description
64 0 4000
Loading screen
91 0 5B00
Unused
96 124 607C
Main entry point 1
96 127 607F
Quasimodo Y co-ordinate
96 128 6080
Quasimodo X co-ordinate
96 129 6081
Quasimodo sub-frame
96 130 6082
Y co-ordinate of current fireball / arrow / chasing knight
96 131 6083
X co-ordinate of current fireball / arrow / chasing knight
96 132 6084
Sub-frame of current fireball / arrow / chasing knight
96 133 6085
Jump flag
96 134 6086
Direction
96 135 6087
R - L Fireball / arrow attribute
96 136 6088
R - L Fireball / arrow X co-ordinate
96 137 6089
R - L Fireball / arrow Y co-ordinate
96 138 608A
R - L Fireball / arrow sprite ID
96 139 608B
Set to 1 for R - L fireballs or arrows
96 140 608C
L - R Fireball / arrow attribute
96 141 608D
L - R Fireball / arrow X co-ordinate
96 142 608E
L - R Fireball / arrow Y co-ordinate
96 143 608F
L - R Fireball / arrow sprite ID
96 144 6090
Set to 1 for L - R fireballs or arrows
96 145 6091
High L - R fireball / arrow attribute
96 146 6092
High L - R fireball / arrow X co-ordinate
96 147 6093
High L - R fireball / arrow Y co-ordinate
96 148 6094
High L - R fireball / arrow sprite ID
96 149 6095
Set to 1 for L - R high fireballs or arrows
96 150 6096
High R - L fireball / arrow attribute
96 151 6097
High R - L fireball / arrow X co-ordinate
96 152 6098
High R - L fireball / arrow Y co-ordinate
96 153 6099
High R - L fireball / arrow sprite ID
96 154 609A
Set to 1 for R - L high fireballs or arrows
96 155 609B
Set to 1 if this level has R - L fireballs or arrows
96 156 609C
Set to 1 if this level has L - R fireballs or arrows
96 157 609D
Set to 1 if this level has L - R high fireballs or arrows
96 158 609E
Set to 1 if this level has R - L high fireballs or arrows
96 159 609F
Set to 1 for collision
96 160 60A0
Current level
96 161 60A1
Score
96 168 60A8
Level bonus
96 173 60AD
Number of bells rung
96 174 60AE
Time before switching soldier state
96 175 60AF
State of rampart soldiers
96 176 60B0
Set to 1 to put soldiers in the ramparts
96 177 60B1
Set to 1 if this level has the fiery pit
96 178 60B2
Game status buffer entry at 60B2
96 179 60B3
Game status buffer entry at 60B3
96 180 60B4
Game status buffer entry at 60B4
96 181 60B5
Game status buffer entry at 60B5
96 182 60B6
Next sprite ID to use for L - R static objects
96 183 60B7
Next sprite ID to use for "high" static objects
96 184 60B8
Number of lives
96 185 60B9
Set to 1 if a Kempston joystick is installed
96 186 60BA
Set to 1 if Interface 2 is installed
96 187 60BB
Set to 1 if Protek joystick is installed
96 188 60BC
Score to award (in hundreds)
96 189 60BD
Chasing knight Y co-ordinate
96 190 60BE
Chasing knight UDG ID (climbing)
96 191 60BF
Set to 1 if Quasimodo is on the rope
96 192 60C0
Set to 1 if Quasimodo died while on the rope
96 193 60C1
Game status buffer entry at 60C1
96 194 60C2
Time before the chasing knight should move
96 195 60C3
Game status buffer entry at 60C3
96 196 60C4
Set to 1 to put in a row of bells
96 197 60C5
Set to 1 if Quasimodo has grabbed a bell on the pit
96 198 60C6
Set to 1 if all objects should be updated
96 199 60C7
Animation state of the "HELP" message on the last level
96 200 60C8
Game status buffer entry at 60C8
96 201 60C9
Chasing knight Y co-ordinate
96 202 60CA
Chasing knight X co-ordinate
96 203 60CB
Chasing knight sprite ID (chasing)
96 204 60CC
Time before chasing knight sprite ID moves forward
96 205 60CD
Set to 1 if the chasking knight has climbed the wall
96 206 60CE
Game status buffer entry at 60CE
96 207 60CF
Position on the level display
96 208 60D0
Set to 1 if awarding extra life
96 209 60D1
Set to 1 if Quasimodo has fallen off a ledge
96 210 60D2
Main entry point 2
97 32 6120
Start the game
97 39 6127
Run the demo
97 154 619A
Reset to level 1
97 166 61A6
Set up the playing field
97 196 61C4
Set up level 2
97 203 61CB
Set up level 3
97 222 61DE
Set up level 4
97 246 61F6
Set up level 5
98 9 6209
Set up level 6
98 20 6214
Set up level 7
98 50 6232
Set up level 8
98 64 6240
Set up level 9
98 101 6265
Set up level A
98 116 6274
Set up level B
98 149 6295
Set up level C
98 164 62A4
Set up level D
98 170 62AA
Set up level E
98 200 62C8
Set up level F
98 240 62F0
Reset back to level 1 and run it
98 253 62FD
Draw the game stats
99 59 633B
Start a game
99 140 638C
Main loop (1)
100 29 641D
Redraw Quasimodo while jumping
100 106 646A
Copy player's co-ordinates to a test buffer
100 125 647D
Copy player's co-ordinates from a test buffer
100 144 6490
Main loop (2) - Update all objects on screen
101 186 65BA
Check for moving right
101 241 65F1
Move right
102 32 6620
Handle state wrap-around moving right
102 43 662B
Check for moving left
102 82 6652
Move left
102 129 6681
Handle state wrap-around moving left
102 145 6691
Check for jumping
102 195 66C3
Jump
102 245 66F5
Fall after jumping
103 6 6706
Reset the jump flag
103 12 670C
Pause
103 21 6715
Move fireball or arrow R - L
103 122 677A
Draw a row of bells
103 186 67BA
Check if there is an object colliding with Quasimodo on the floor
103 204 67CC
Check if there is an object colliding with Quasimodo while jumping
103 222 67DE
Check for an object colliding with Quasimodo on the floor
103 250 67FA
Check for an object colliding with Quasimodo on the floor
104 26 681A
Mark a collision
104 32 6820
Get an attribute from screen
104 49 6831
Throw Quasimodo off the wall as he's died
104 229 68E5
Reset the level after dying
105 93 695D
Tidy up after losing a life
105 110 696E
Reset all the level flags to default
106 81 6A51
Level completed
106 201 6AC9
Draw the main paying area
106 209 6AD1
Print the score
106 235 6AEB
Display the bonus bells
107 8 6B08
Award the super bonus
107 117 6B75
Lower the soldiers' spears
107 142 6B8E
Draw the soldiers attributes (raised)
107 175 6BAF
Draw the soldiers attributes (normal)
107 196 6BC4
Move fireball or arrow L - R
108 60 6C3C
Move high fireball or arrow R - L
108 161 6CA1
Move high fireball or arrow L - R
109 27 6D1B
Draw the remaining lives
109 60 6D3C
Adjust the score for decimal arithmetic (?)
109 91 6D5B
Move the chasing knight
109 186 6DBA
Move the chasing knight towards Quasimodo
109 222 6DDE
Adjust level bonus for decimal arithmetic (?)
109 253 6DFD
Draw the level bonus
110 22 6E16
Adjust Quasimodo after grabbing a bell
110 69 6E45
Draw Quasimodo
110 115 6E73
Draw Quaismodo (alt graphic)
110 169 6EA9
Draw the "HELP" message on the last level
110 215 6ED7
Draw the chasing knight if it has climbed the wall
111 10 6F0A
Draw the chasing knight
111 139 6F8B
Move Quasimodo along the rope
111 232 6FE8
Quasimodo has died while on a rope
112 33 7021
Draw the attributes for the playing area
112 124 707C
Swap Quasimodo's sprite between the main and working copy
112 149 7095
Swap memory
112 163 70A3
See if the room has a pit or rampart, and if so, call the logic for that
112 202 70CA
Check for collision on a room with bells
113 33 7121
Update sub-frame of current object
113 40 7128
Get the current's object sub-frame
113 45 712D
Display the current level
113 86 7156
See if Quasimodo has fallen off a ledge
113 116 7174
See if Quasimodo has fallen off a rampart
113 161 71A1
Mark Quasimodo as fallen if the sub-frame is not 1
113 170 71AA
Check the X co-ordinate to see if Quasimodo has fallen
113 247 71F7
Mark Quasimodo as fallen if the sub-frame is 1
114 0 7200
Mark Quasimodo as fallen if the sub-frame is not 1
114 9 7209
Award an extra life every 10,000 points
114 26 721A
Mark falling off a ledge
114 34 7222
Draw a magenta stripe on the right of the screen
114 49 7231
Unused (?)
114 56 7238
Unused
120 132 7884
Unused
120 156 789C
Unused
121 24 7918
Copy of Quasimodo R
122 142 7A8E
Unused
128 232 80E8
Play the tune
129 18 8112
Unused
129 36 8124
Unused
129 76 814C
Play a note in the tune
129 130 8182
Unused
129 176 81B0
Number of notes in the tune
129 177 81B1
Tune data
129 241 81F1
Unused
130 20 8214
Unused
130 220 82DC
Print the current level as a dot on screen
131 9 8309
Current level graphic data
131 17 8311
Unused
131 24 8318
Unused
131 108 836C
Unused
134 196 86C4
See if Quasimodo has collided with something
135 150 8796
Check if Quasimodo is close enough to have collided
136 7 8807
Unused
136 22 8816
Collision : Get a buffer to a sprite given its index
136 34 8822
Unused
136 38 8826
Collision : Get the screen address from a co-ordinate
136 82 8852
Unused
136 84 8854
Set the flag that Quasimodo collided with an object
136 90 885A
Set to 1 if Quasimodo collided with an object
136 91 885B
Unused
136 184 88B8
Full wall graphics
137 24 8918
Pit wall graphics
137 120 8978
Rampart wall graphics
137 216 89D8
Rampart with soldiers wall graphics
138 56 8A38
Unused
138 72 8A48
End the game after all lives have been lost
138 113 8A71
Put the score on the high score table if necessary
139 12 8B0C
Find the right slot for the high score
139 43 8B2B
Holds the slot the new score should be put in on the table
139 44 8B2C
Compare the current score with an existing one
139 79 8B4F
Display the high score table
139 95 8B5F
Input a new entry in the high score table
139 196 8BC4
Display an entry in the high score table
139 241 8BF1
Display a character in the high score table
139 252 8BFC
Convert a Y co-ordinate to a screen address
140 19 8C13
Enter a character for the new high score name
140 56 8C38
Move the high score entry cursor right
140 69 8C45
Move the high score entry cursor left
140 82 8C52
High score 00 - text : A-Z
140 113 8C71
High score 01 - name 1
140 128 8C80
High score 02 - name 2
140 143 8C8F
High score 03 - name 3
140 158 8C9E
High score 04 - name 4
140 173 8CAD
High score 05 - name 5
140 188 8CBC
High score 06 - value 1
140 198 8CC6
High score 07 - value 2
140 208 8CD0
High score 08 - value 3
140 218 8CDA
High score 09 - value 4
140 228 8CE4
High score 0A - value 5
140 238 8CEE
High score 0B - "HIGH SCORE"
140 251 8CFB
High score 0C - "1"
140 255 8CFF
High score 0D - "2"
141 3 8D03
High score 0E - "3"
141 7 8D07
High score 0F - "4"
141 11 8D0B
High score 10 - "5"
141 15 8D0F
High score 11 - "Q-LEFT"
141 24 8D18
High score 12 - "W-RIGHT"
141 34 8D22
High score 13 - "0-DELETE"
141 45 8D2D
High score 14 - "ENTER-END"
141 57 8D39
High score 15 - "S SHIFT-SELCT"
141 73 8D49
High score 16 - Numbers
141 88 8D58
Unused
141 89 8D59
Unused
141 90 8D5A
Score text
141 97 8D61
Clear the screen blue (for high score display)
141 120 8D78
Clear the screen
141 128 8D80
Unused
141 204 8DCC
Display the high score table in demo mode
141 237 8DED
Unused
144 136 9088
Graphics : Main playing area
146 89 9259
Graphics : Ramparts (short) left edge
146 126 927E
Graphics : Pit left edge
146 163 92A3
Graphics : Ramparts (long) left edge
146 212 92D4
Graphics : Blank bell area
147 37 9325
Graphics : Rampart soldiers
147 158 939E
Graphics : Rampart soldiers raised spears
147 195 93C3
Graphics : Rampart soldiers raised foot
147 220 93DC
Graphics : Rampart soldiers lowered spears
148 1 9401
Graphics : Rampart soldiers lowered foot
148 26 941A
Graphics : End of level score box
148 139 948B
Graphics : Start of game options
150 176 96B0
Graphics : SCORE
150 197 96C5
Graphics : Row of bells
151 86 9756
Graphics : Esmerelda
151 223 97DF
Graphics : HELP
151 240 97F0
Graphics : Heart
152 1 9801
Unused
152 88 9858
Copy of Quasimodo L
153 216 99D8
Unused
154 76 9A4C
Print the main wall
154 115 9A73
Convert Y co-ordinate to a screen address
154 144 9A90
Print a graphic on screen
154 174 9AAE
Convert a graphic ID to an address in memory
154 186 9ABA
Convert a screen address to attribute
154 202 9ACA
Print a group of graphics
154 235 9AEB
Erase a group of graphics
155 12 9B0C
Erase a graphic on screen
155 43 9B2B
Game status buffer entry at 9B2B
155 44 9B2C
Unused
155 67 9B43
Unused
155 74 9B4A
Unused
156 64 9C40
Title screen
183 64 B740
Unused
183 152 B798
Draw a sprite
184 234 B8EA
Get a buffer to a sprite given its ID
184 246 B8F6
Unused
184 250 B8FA
Convert a Y co-ordinate to a screen address
185 38 B926
Unused
185 40 B928
Convert a screen address into an attribute
185 57 B939
Unused
185 58 B93A
Unused
185 140 B98C
Update the rope
185 206 B9CE
Update the rope and redraw it
185 247 B9F7
Update the rope angle (?)
185 253 B9FD
Update the rope position
186 3 BA03
Rope X position
186 4 BA04
Rope angle (?)
186 5 BA05
Draw the rope
186 51 BA33
Rope graphics buffer
187 14 BB0E
Unused
191 104 BF68
Number of notes in the level completed tune
191 105 BF69
Level completed note data
191 113 BF71
Unused
191 114 BF72
Number of notes ??
191 115 BF73
Note data
191 119 BF77
Number of notes in the jump tune
191 120 BF78
Jump tune note data
191 124 BF7C
Number of notes in the lost a life tune
191 125 BF7D
Lost a life note data
191 149 BF95
Unused
191 164 BFA4
Number of notes in the ???
191 165 BFA5
Note data
191 169 BFA9
Unused
192 48 C030
Animate the fiery pit
192 96 C060
Set the attributes for the fiery pit
192 107 C06B
Current frame for the fiery pit flames
192 108 C06C
Fiery pit graphics
192 172 C0AC
Unused
192 198 C0C6
Refresh the rope and pit
192 205 C0CD
Unused
192 248 C0F8
Beep during the super bonus award
193 46 C12E
Flash the bells in the super bonus award
193 76 C14C
Time remaining on the super bonus beep
193 92 C15C
Play a sound effect
193 130 C182
Play a note in the sound data
193 184 C1B8
Unused
195 80 C350
Sprite 00 - 07 : Quasimodo right
196 208 C4D0
Sprite 08 - 0F : Quasimodo left
198 80 C650
Sprite 10 - 13 : Arrow left
199 16 C710
Sprite 14 - 17 : Fireball left
199 208 C7D0
Sprite 18 - 1B : Arrow right
200 144 C890
Sprite 1C - 1F : Fireball right
201 80 C950
Sprite 20 - 27 : Quasimodo on rope
202 208 CAD0
Sprite 28 - 2B : Chasing knight
203 144 CB90
Unused
205 12 CD0C
UDGs
210 164 D2A4
Unused
213 172 D5AC
Unused
230 13 E60D
Unused
230 79 E64F
Unused
230 80 E650
Unused
230 175 E6AF
Unused
230 176 E6B0
Unused
230 192 E6C0
Unused
230 193 E6C1
Unused
230 201 E6C9
Unused
230 236 E6EC
Unused
234 29 EA1D
Unused
234 96 EA60
Update state if Quasimodo is near a rope
234 168 EAA8
Unused
234 170 EAAA
Unused
234 176 EAB0
Unused
234 196 EAC4
Flash the wall after dying
234 241 EAF1
Fill the wall with an attribute
235 6 EB06
Check for "right" on Interface 2
235 18 EB12
Jump to EB3A
235 20 EB14
Unused
235 26 EB1A
Jump to EB46
235 28 EB1C
Unused
235 32 EB20
Check for "right" on Protek Interface
235 44 EB2C
Check for "left" on Protek Interface
235 56 EB38
Jump to EB50
235 58 EB3A
Check for "left" on Interface 2
235 70 EB46
Check for "jump" on Interface 2
235 80 EB50
Check for "jump" on Protek Interface
235 129 EB81
Unused
237 234 EDEA
Unused
238 69 EE45
Unused