Page Byte Address Length Description
107 8 6B08 2
Title screen countdown timer
Used by the routine at 6000. Decremented until it reaches zero, after which demo mode begins.
107 10 6B0A 1
Active guard counter
Initialised by the routine at 6000, and used by the routines at 696C, 69A4 and 6A22. Holds the number of active guards minus one.
107 11 6B0B 1
Game mode indicator
Used by the routines at 6000, 624F, 673A and 6B48. Holds 0 in demo mode, or 1 in game mode.
109 166 6DA6 8
Guard countdown timers
Initialised by the routine at 6A22, and used by the routines at 6337, 651E, 6622, 66A4, 673A, 6907 and 696C. When a guard's countdown timer reaches 0, the guard is brought into play.
109 174 6DAE 2
Guard panic timer
Initialised by the routine at 6000, and used by the routines at 63DA, 663D, 66A4 and 686A. Holds a non-zero value when the guards are panicking.
109 176 6DB0 2
Temporary store for a guard's screen x- and y-coordinates
Used by the routine at 63DA.
109 178 6DB2 4
Temporary store for direction probability parameters
Used by the routine at 624F (when moving Horace in demo mode) and 63DA (when moving a guard).
109 182 6DB6 2
Buffer address of the guard currently being handled
Used by the routines at 6A3F and 6A6A.
109 184 6DB8 43
Temporary guard buffer
The contents of a guard's buffer (see 6DE3) are copied here by the routine at 6A3F whenever the guard needs to be moved, drawn or otherwise examined. After that, the updated contents are copied back to the original location by the routine at 6A6A.
109 227 6DE3 172
Guard buffers
Used by the routines at 6A3F and 6A6A. See 6DB8 for a description of the contents of a guard's buffer.
111 207 6FCF 8
Tunnel offset and bell, initial guard and entrance locations for the current maze
Used by the routines at 6000, 6337, 63DA, 66A4, 686A and 6A9E. The values here are copied from 6FD7, 6FDF, 6FE7 or 6FEF.
124 97 7C61 1
Sprite movement timer
Initialised by the routine at 6000, and used by the routine at 6337. Decremented on each pass through the main loop; when it reaches zero, Horace and the guards are moved.
124 98 7C62 1
Game speed parameter (1-8)
Initialised by the routine at 6000, and used by the routines at 6337, 63DA, 686A, 69A4 and 6A22. The value here determines the speed at which the game runs.
124 99 7C63 1
Current maze number
Initialised to 255 by the routine at 6000 just before a game starts. Holds 0, 1, 2 or 3 while a game is in progress.
124 100 7C64 1
Redundant temporary variable
Used by the routine at 63DA.
124 101 7C65 2
Lunch-drop countdown timer
Initialised by the routine at 6000, and used by the routine at 6922. When this timer reaches zero, one of the guards will drop his lunch.
124 103 7C67 2
Address of the next pseudo-random number
Initialised by the routine at 6000, and used by the routine at 6B12.
124 105 7C69 1
Sound on/off indicator
Initialised by the routine at 6000, and used by the routines at 6337, 65A1, 66A4, 673A, 698E, 69A4 and 6A77. Holds 00011111 binary if the sound is on, or 00000111 binary otherwise.
124 106 7C6A 1
'T' pressed indicator
Initialised by the routine at 6000, and used by the routine at 698E. Holds 0 if 'T' was being pressed the last time it was checked, or 16 otherwise.
124 107 7C6B 2
Horace's current location
Initialised by the routine at 6000, and used by the routines at 624F, 6337, 63DA, 651E, 673A, 6821 and 686A. Holds the display file address minus 0x4000.
124 109 7C6D 2
Horace's new location
Initialised by the routine at 6000, and used by the routines at 6337, 651E, 65A1, 66A4 and 6821. Holds the display file address minus 0x4000.
124 111 7C6F 1
Temporary store for direction keypress
Used by the routine at 624F.
124 112 7C70 1
Horace's animation frame (0-3)
Initialised by the routine at 6000, and used by the routines at 624F, 6337 and 6821.
124 113 7C71 1
Horace's attribute byte
Initialised by the routine at 6000, and used by the routines at 673A and 6821.
124 114 7C72 1
Horace's walking animation timer
Used by the routine at 6821. Incremented whenever Horace is drawn; bit 4 determines which set of animation frames (see 7CC7) is used: 0-3 if it's set, or 4-7 otherwise.
124 115 7C73 2
Score
Initialised by the routine at 6000, and used by the routines at 65A1, 66A4, 673A and 686A.
124 117 7C75 2
High score
Used by the routines at 6000 and 673A.
124 119 7C77 1
Extra life indicator
Initialised by the routine at 6000, and used by the routine at 65A1. Holds INT(S/10000)+2, where 'S' is the current score. When this value changes, Horace gets a new life.
124 120 7C78 1
Number of lives remaining
Initialised by the routine at 6000, and used by the routines at 65A1 and 673A.
124 121 7C79 1
Tunnel timer
Used by the routines at 624F, 6337, 65A1, 673A and 6821. Holds a non-zero value when Horace is in a tunnel.
124 122 7C7A 2
Temporary store for Horace's screen x- and y-coordinates
Used by the routine at 63DA.
124 196 7CC4 2
Bell location
Initialised by the routine at 6000, and used by the routines at 686A and 69A4. Holds the location of the bell in the current maze, or zero if Horace has sounded the alarm.
124 198 7CC6 1
Bell animation frame counter
Used by the routines at 686A and 69A4. Incremented on each pass through the main loop; its value determines which bell animation frame is used (see 7F07), and also the bell sound effect.