Address Description
6000
The game has just loaded
6229
Main loop
624F
Read the keyboard and update Horace's sprite accordingly
6337
Move Horace and the guards
63DA
Move a guard
651E
Redraw the tiles behind Horace and the guards if they've moved
655B
Redraw the tiles behind a guard after he's moved
65A1
Add to the score if Horace has eaten something
6622
Draw the guards
663D
Draw a guard
66A4
Check whether Horace has run into a guard
673A
Lose a life
6821
Draw Horace
686A
Draw the bell and check whether Horace has sounded the alarm
6907
Check whether a guard should drop his lunch
6922
Make a guard drop his lunch if necessary
696C
Decrement the guard countdown timers
698E
Toggle the sound on/off if 'T' is pressed
69A4
Ring the bell if necessary
6A1E
Enter the next maze
6A22
Initialise the guard countdown timers
6A3F
Copy a guard buffer into the temporary location
6A6A
Copy the temporary guard buffer back into place
6A77
Make the title screen or game over sound effect
6A9E
Get the tunnel offset and bell, initial guard and entrance locations for the current maze
6B0C
Wait for 26*BC+5 T states
6B12
Collect a pseudo-random number (from the ROM)
6B21
Print the score or high score
6B48
Compute and print a digit
6B75
Draw the current maze
6BD6
Draw a sprite
6BFA
Print a tile or font character
6C0F
Convert a sprite location or display file address into an attribute file address
6C20
Check the attribute bytes at a sprite's location
6C46
Check the attribute byte at a sprite tile location
6C68
Copy maze background tiles into a guard's buffer
6C95
Copy a maze background tile into a guard's buffer
6CC2
Check the tiles next to Horace or a guard
6CFA
Identify a tile in front of a sprite
6D17
Get the location of the tile in front of a sprite
6D4E
Print 'HUNGRY' or 'HORACE' on the title screen