| Character buffers

The character buffers occupy bytes 96-127 in pages 152-172.

Page | Address | Character |  | Page | Address | Character |  | Page | Address | Character
152 | 39008 | Little boy no. 1 |  | 159 | 40800 | Little boy no. 8 |  | 166 | 42592 | MR CREAK
153 | 39264 | Little boy no. 2 |  | 160 | 41056 | Little boy no. 9 |  | 167 | 42848 | BOY WANDER
154 | 39520 | Little boy no. 3 |  | 161 | 41312 | Little boy no. 10 |  | 168 | 43104 | ANGELFACE
155 | 39776 | Little boy no. 4 |  | 162 | 41568 | Little boy no. 11 |  | 169 | 43360 | EINSTEIN
156 | 40032 | Little boy no. 5 |  | 163 | 41824 | MR WACKER |  | 170 | 43616 | BOY WANDER's pellet
157 | 40288 | Little boy no. 6 |  | 164 | 42080 | MR ROCKITT |  | 171 | 43872 | ERIC's pellet
158 | 40544 | Little boy no. 7 |  | 165 | 42336 | MR WITHIT |  | 172 | 44128 | ERIC

The bytes in each character buffer are used as follows:

Byte(s) | Contents
--- | ---
96 | Animatory state
97,98 | Location (y,x)
99 | LSB of the primary command routine address (see 25126)
ERIC's post-midstride animatory state (see 25856, 25916)
100 | MSB of the primary command routine address (see 25126)
ERIC's post-midstride y-coordinate (see 25856, 25916)
101 | Destination y-coordinate (see 27090)
Walkabout event identifier (see 25303)
ERIC's post-midstride x-coordinate (see 25856, 25916)
102 | Destination x-coordinate (see 27090)
ERIC's animatory state before he started firing the catapult, hitting, or jumping (see 62574)
103 | Number of mini-walkabouts remaining (see 27453)
104 | Message repetition delay counter (see 63488)
105,106 | Interruptible subcommand routine address (see 25126)
107 | LSB of the address of the next character in the message being written on a blackboard or spoken (see 28882)
Walkabout destination x-coordinate (see 27442)
x-coordinate increment to use while chasing ERIC (see 31739, 31768)
Number of movements remaining to ascend or descend the staircase (see 25488, 25534)
Number of movements remaining to wipe the blackboard (see 29160)
Intermediate destination x-coordinate (see 25404)
108 | MSB of the address of the next character in the message being written on a blackboard or spoken (see 28882)
y-coordinate increment to use while chasing ERIC (see 31739, 31768)
x-coordinate of the next column of the board to wipe (see 29160)
Number of paces remaining until the interruptible subcommand is terminated (see 25404)
109 | LSB of the address of the next character in the submessage being written on a blackboard or spoken (see 28882)
y-coordinate of the top row of the blackboard being wiped (see 29160)
110 | MSB of the address of the next character in the submessage being written on a blackboard or spoken (see 28882)
111,112 | Uninterruptible subcommand routine address (see 25126)
113 | Counter determining how much longer the character will stay down after being punched (see 28569), hit by a catapult pellet (see 27932), knocked out of a chair (see 27733), or tripped up by a stampeding kid (see 27126)
Distance remaining for the pellet to travel (see 27932)
ANGELFACE's pre-punch animatory state (see 28446, 28642)
BOY WANDER's pre-fire animatory state (see 28716, 28786)
114 | Pre-knockout animatory state (see 27206)
115,116 | Unused
117,118 | Address reached in the command list
119,120 | Start address of the command list
121 | Unused (always 0, but checked by 25126)
122 | Various flags; initially populated by 26880 with 0 for kids, 16 (bit 4 set) for teachers, and 32 (bit 5 set) for catapult pellets:
Bit(s) | Meaning if set
--- | ---
0 | Restart the command list at the next opportunity if bit 1 is reset (see 25126)
1 | Always reset
2-3 | Unused
4 | Character is a teacher (checked by 25367)
5 | Character is walking fast continuously (set for pellets and stampeding boys; see 27246)
6 | Character is walking slowly continuously (always reset, but checked by 25367)
7 | Character is walking slowly (see 25266)
123 | Walking speed change delay counter (see 25266, 32234, 32242, 64016)
124,125 | Continual subcommand routine address (see 25126); set to 25247 initially by 26880
126,127 | Unused