Bugs
Free extra life
Horace is given three lives before a game starts (see 24787), but not long after the game has started he's awarded an extra life, which is not supposed to happen until the score hits 10,000. This is caused by the section of code at 26067, which miscalculates the 10,000s digit of the current score.
POKE 26079,61
Broken guard counter
The counter at 27402 is supposed to hold the number of guards in play minus one, and is used by the routine at 27044 to produce a timing delay in place of a bell sound. However, because of a bug in the routine at 26988, the counter is unlikely to be accurate.
POKE 27007,179
Game slowdown
When Horace reaches the 29th maze, the game might slow down significantly, making it barely playable.
This can happen because the routine at 27044 produces a timing delay (D) of 26*(350+30*S-128*G)+5 T states, where 'S' is the value of the game speed parameter at 31842 (1-8), and 'G' is the value of the active guard counter at 27402 (0-3). When S>1, 681<=D<=15345; but when S=1 and G=3, D=65437 (mod 65536).
However, one reason the slowdown might not happen is that the active guard counter is broken, and so 'G' might not be 3 even when all four guards are in play.
How many lives?
If Horace does well enough to get 10 lives remaining, that number is printed as ':' (which follows '9' in the character set) instead of '10'. This is because the section of code at 26104 cannot handle a number with two or more digits.
Who ate my lunch?
In some situations, a guard will eat the flowers or even another guard's lunch if Horace hasn't already.
This can happen because the routine at 27797 clears a maze background tile in a guard's buffer if there is a guard sprite tile at the corresponding location in the maze; so if two guards are close together and moving in the same direction, the one following effectively mops up the items that are obscured by the one in front.