Whenever a character's state needs to be examined or updated, his character buffer is copied to the addresses in page 0 shown below by the routine at $3279. Afterwards, the character's buffer is restored from page 0 by the routine at $33BF.
Address Length Description
$0026 $01
Animatory state
$0029 $02
Primary command routine address
Used by the routines at $0B3B, $12B5, $1A04, $1D16, $1D2D, $1EE3, $1F4D, $1F77, $1FA0, $27AB, $2E13 and $3B5E.
$0039 $02
Continual subcommand routine address
Used by the routines at $2797, $2865, $2885, $2E13 and $3B5E.
$003B $02
Address reached in the command list
Used by the routines at $2E13, $3B5E and $3BE7.
$003D $02
Command list start address
Used by the routines at $1D4A, $2E13, $3AD5 and $3B5E.
$003F $01
Various flags
This byte holds various flags. These flags are checked by the character-moving routine at $3B5E.
Bit(s) Description
0 Unused; always reset for every character.
1 Character is running continuously; reset for everyone initially; reset by the routines at $12B5, $1A04 and $27AB; set for a stampeding boy by the routines at $2797 and $2885; set for MR WACKER by the routine at $284F when he's looking for the pea-shooter.
2 Always set for teachers; set for EINSTEIN by the routine at $1F4D when he's answering a question.
3 Set for EINSTEIN by the routine at $1F4D when he's waiting to answer a question.
4, 5 Unused; always reset for every character.
6 Character is running or otherwise moving quickly; set by the routines at $0C3F and $1F4D; may be reset by the routine at $3B5E on a movement speed change.
7 If set, the routine at $3B5E restarts the command list (and then resets the flag); set by the routines at $0EB4, $1D4A and $3AD5; additionally checked by the routine at $2745.
$00A6 $02
Destination coordinates or walkabout parameters
Used by the routines at $105B, $12B5, $1A04, $27AB, $284F, $28BC and $2E13.
$00A8 $01
Number of mini-walkabouts remaining
Used by the routines at $12B5, $27AB and $2E13.
$00A9 $01
Message repetition delay counter
Used by the routines at $28BC and $2E13.
$00AA $02
Interruptible subcommand routine address
Used by the routines at $0C3F, $0EB4, $1129, $12B5, $136F, $16E9, $1A04, $1D28, $1EE3, $1F77, $1FA0, $2241, $2387, $2E13 and $3B5E.
$00AC $02
Bytes $6B and and $6C of the character's buffer
Holds one of the following:
  • address of the next character in the message being written on a blackboard or spoken
  • coordinates of the next location to move to in pursuit of ERIC
  • number of movements remaining to navigate a staircase ($AC)
  • walkabout or intermediate destination x-coordinate ($AC)
  • walkabout or intermediate destination pace counter ($AD)
  • number of movements remaining to wipe the blackboard ($AC)
  • x-coordinate of the next column of the blackboard to wipe ($AD)
Used by the routines at $09E9, $0A58, $0C3F, $0E35, $108B, $1129, $12B5, $136F, $13F3, $16E9, $1A04, $1EE3, $1FA0, $2241, $246B, $2500, $2757, $277D, $28BC, $2E13 and $BE09.
$00AE $02
Bytes $6D and and $6E of the character's buffer
Holds one of the following:
  • address of the next character in the submessage being written on a blackboard or spoken
  • address of the routine to call after the character has found ERIC
  • y-coordinate of the top row of the blackboard being wiped ($AE)
Used by the routines at $0B3B, $108B, $1129, $16E9, $2387, $2A99 and $2E13.
$00B0 $02
Uninterruptible subcommand routine address
Used by the routines at $0FBA, $1CB4, $1CCB, $1D16, $1D32, $267A, $2696, $26E0, $270D, $27D2, $29C8, $2B21, $2B3F, $2B52, $2B9F, $2CA5, $2E13 and $3B5E.
$00B2 $01
Knockout delay or pellet distance counter
Holds one of the following:
  • counter determining how much longer the character will stay down after being punched, hit by a catapult pellet, knocked out of a chair, or tripped up by a stampeding kid
  • distance remaining for a catapult pellet to travel
Used by the routines at $0FBA, $1042, $29C8, $2A43, $2B52, $2BB0 and $2E13.
$00B3 $01
Pre-action animatory state
Holds a character's animatory state as it was before he is knocked over, throws a punch (ANGELFACE), or fires a catapult (BOY WONDER).
Used by the routines at $267A, $26E0, $2A43, $2B21 and $2E13.
$00B4 $01
Unused variable
Initialised to zero by the routine at $2E13, but never used.
$00B5 $01
Dethroning delay counter
Used by the routines at $1CB4, $1CCB and $2E13.
$00FB $02
Character's (y,x) coordinates
$00FF $01
Movement speed change delay counter
Used by the character-moving routine at $3B5E.