| Character buffers

The character buffers occupy bytes 0x00-0x24 in pages 0xB7-0xD6. The buffers in pages 0xC6, 0xC7, 0xCE, 0xCF and 0xD0 may be used by mice released by ERIC.

Page | Address | Character |  | Page | Address | Character |  | Page | Address | Character
0xB7 | B700 | Little girl no. 1 |  | 0xC2 | C200 | Little boy no. 5 |  | 0xCD | CD00 | ALBERT
0xB8 | B800 | Little girl no. 2 |  | 0xC3 | C300 | Little boy no. 6 |  | 0xCE | CE00 | BOY WANDER
0xB9 | B900 | Little girl no. 3 |  | 0xC4 | C400 | Little boy no. 7 |  | 0xCF | CF00 | ANGELFACE
0xBA | BA00 | Little girl no. 4 |  | 0xC5 | C500 | Little boy no. 8 |  | 0xD0 | D000 | EINSTEIN
0xBB | BB00 | Little girl no. 5 |  | 0xC6 | C600 | Little boy no. 9 |  | 0xD1 | D100 | HAYLEY
0xBC | BC00 | Little girl no. 6 |  | 0xC7 | C700 | Little boy no. 10 |  | 0xD2 | D200 | ERIC
0xBD | BD00 | Little girl no. 7 |  | 0xC8 | C800 | MR WACKER |  | 0xD3 | D300 | Bike
0xBE | BE00 | Little boy no. 1 |  | 0xC9 | C900 | MR WITHIT |  | 0xD4 | D400 | Frog; mouse
0xBF | BF00 | Little boy no. 2 |  | 0xCA | CA00 | MR ROCKITT |  | 0xD5 | D500 | BOY WANDER's pellet; stinkbomb cloud
0xC0 | C000 | Little boy no. 3 |  | 0xCB | CB00 | MR CREAK |  | 0xD6 | D600 | ERIC's pellet; water/sherry; plant; conker; desk lid
0xC1 | C100 | Little boy no. 4 |  | 0xCC | CC00 | MISS TAKE

The bytes in each character buffer are used as follows:

Byte(s) | Contents
--- | ---
0x00 | Animatory state
0x01,0x02 | Location (x, y)
0x03 | LSB of the primary command routine address (see 62D0)
ERIC's post-midstride animatory state (see 6DD2, 6E00)
0x04 | MSB of the primary command routine address (see 62D0)
ERIC's post-midstride x-coordinate (see 6DD2, 6E00)
0x05 | Destination x-coordinate (see 6464)
ERIC's post-midstride y-coordinate (see 6DD2, 6E00)
0x06 | Destination y-coordinate (see 6464)
Walkabout event identifier (see 7CE1)
0x07 | Number of mini-walkabouts remaining (see 7CE1)
0x08 | Unused
0x09,0x0A | Interruptible subcommand routine address (see 62D0)
0x0B | LSB of the address of the next character in the message being written into a graphic buffer (buffer 0xD6 only; see 6B1B)
LSB of the address of the next character in the message being written on a blackboard or spoken (see 66CE)
Number of steps left to be ascended (see 6438) or descended (see 644D)
Number of movements remaining to wipe the blackboard (see 680F)
Intermediate destination x-coordinate (see 63ED)
0x0C | MSB of the address of the next character in the message being written into a graphic buffer (buffer 0xD6 only; see 6B1B)
MSB of the address of the next character in the message being written on a blackboard or spoken (see 66CE)
Number of paces remaining until the next command list restart request check (see 63ED)
x-coordinate of the column of the blackboard being wiped (see 680F)
0x0D | LSB of the address of the next character in the submessage being written on a blackboard or spoken (see 66CE)
y-coordinate of the top row of the blackboard being wiped (see 680F)
0x0E | MSB of the address of the next character in the submessage being written on a blackboard or spoken (see 66CE)
Identifier of the blackboard being wiped (see 680F)
0x0F | LSB of the address of the next character in the sub-submessage being written on a blackboard or spoken (see 66CE)
Animatory state of the character whose buffer is being borrowed by a mouse (see 7A16, 7B0E)
Post-midstride y-coordinate increment to use while chasing ERIC (see 6558)
0x10 | MSB of the address of the next character in the sub-submessage being written on a blackboard or spoken (see 66CE)
Counter determining the lifespan of a mouse released by ERIC (see 7A16, 7B0E)
0x11,0x12 | Uninterruptible subcommand routine address (see 62D0)
0x13 | Identifier of the door or window being opened or closed (see 717C)
MR WACKER's x-coordinate before he goes to open a window (see F862)
HAYLEY's pre-kiss x-coordinate (see 5F08, 5F1C)
Distance remaining for the mouse to travel before hiding or considering a change of direction (see 7A16)
Counter determining how much longer the character will stay down after being knocked over (see 7596) or knocked out of a chair (see 6670)
Distance remaining for the pellet to travel (see 76AC)
Counter determining how much longer the female character should continue jumping up and down (see 7966)
Counter determining how much longer the desk lid should stay up (see F2E2)
Counter determining how much longer the stinkbomb cloud will stick around (see F862)
Water/sherry animation phase identifier (see F9AB)
Counter determining the phases of growth of a watered plant (see FA4D)
0x14 | Open/close parameter for the door or window being opened or closed (see 717C)
MR WACKER's animatory state before he goes to open a window (see F862)
HAYLEY's pre-kiss animatory state (see 5F08, 5F1C)
Counter determining when the mouse should hide (see 7A16)
Pre-knockout animatory state (see 7596)
ANGELFACE's pre-punch animatory state (see 7813)
BOY WANDER's pre-fire animatory state (see 775B)
x-coordinate at which the plant will appear when it starts growing (see FA4D)
0x15 | Counter determining when the mouse should come out of hiding (see 7A16, 7B0E)
0 if the frightened female is jumping up and down, or 1 if she's standing on a chair (see 7974)
x-coordinate of the window MR WACKER will open after smelling a stinkbomb (see F862, F939)
0x16 | x-coordinate of the mouse when it last hid (see 7A16, 7B0E)
Identifier of the window MR WACKER will open after smelling a stinkbomb (see F862, F939)
0x17,0x18 | Continual subcommand routine address (see 62D0)
0x19,0x1A | Address reached in the command list
0x1B,0x1C | Start address of the command list
0x1D | Various flags; initially populated by F5BE with a copy of byte 0x23 of the character's buffer:
Bit(s) | Meaning if set
--- | ---
0 | Restart the command list at the next opportunity (see 62D0)
1-2 | Unused
3 | Character is a candidate for immediate transportation to his destination (set by F74D; checked and reset by 622E; also reset by 62D0)
4 | Unused (always reset, but checked by 62D0; if set, it would make the character run until the current primary command has terminated)
5 | Character is an adult (see 62D0)
6 | Character is not human (see 62D0)
7 | Character is running (see 62D0)
0x1E | Walking speed change delay counter (see 62D0); initialised to bits 0-3 of the character number (see F5BE)
0x1F | Unused
0x20 | Initial animatory state (see F5BE)
0x21,0x22 | Initial location (see F5BE)
0x23 | Initial flags for byte 0x1D (see F5BE)
0x24 | Random location table identifier (see 64D7)