Address Length Description
6B08 2
Title screen countdown timer
Used by the routine at 6000. Decremented from 140 until it reaches zero, after which demo mode begins.
6B0A 1
Active guard counter
Initialised by the routine at 6000, and used by the routines at 696C, 69A4 and 6A22. Supposed to hold the number of active guards minus one, but may not because of a bug.
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.
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.
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.
6DB0 2
Temporary store for a guard's screen x- and y-coordinates
Used by the routine at 63DA.
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).
6DB6 2
Buffer address of the guard currently being handled
Used by the routines at 6A3F and 6A6A.
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.
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.
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.
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.
7C62 1
Game speed parameter (1-8)
Initialised to 8 by the routine at 6000 and decremented every time Horace returns to maze 1 via maze 4. Also used by the routines at 6337, 63DA, 686A, 69A4 and 6A22. The value here determines the speed at which the game runs.
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.
7C64 1
Redundant temporary variable
Used by the routine at 63DA.
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.
7C67 2
Address of the next pseudo-random number
Initialised by the routine at 6000, and used by the routine at 6B12. Always holds a value between 0 and 0x1FFF.
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.
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.
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.
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.
7C6F 1
Temporary store for direction keypress
Used by the routine at 624F.
7C70 1
Horace's animation frame (0-3)
Initialised by the routine at 6000, and used by the routines at 624F, 6337 and 6821.
7C71 1
Horace's attribute byte
Initialised by the routine at 6000, and used by the routines at 673A and 6821.
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.
7C73 2
Score
Initialised by the routine at 6000, and used by the routines at 65A1, 66A4, 673A and 686A.
7C75 2
High score
Used by the routines at 6000 and 673A.
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.
7C78 1
Number of lives remaining
Initialised by the routine at 6000, and used by the routines at 65A1 and 673A.
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.
7C7A 2
Temporary store for Horace's screen x- and y-coordinates
Used by the routine at 63DA.
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.
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.