Skool Daze Character buffers

The character buffers occupy bytes 96-127 in pages 152-172. Each page corresponds to a different character.

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 routine address from command list (see 25172)
ERIC's post-midstride animatory state (see 25856, 25916)
100 MSB of routine address from command list (see 25172)
ERIC's post-midstride y-coordinate (see 25856, 25916)
101 Destination y-coordinate (see 27090)
Signal byte determining when character should stop moving about (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 Routine address (see 25172)
107 LSB of address of next character in message being spoken (see 63488) or written on blackboard (see 29284)
Walkabout destination x-coordinate (see 27442)
x-coordinate increment to use when looking for another character (see 31768)
Number of movements remaining in board-wiping task (see 29160)
108 MSB of address of next character in message being spoken (see 63488) or written on blackboard (see 29284)
y-coordinate increment to use when looking for another character (see 31768)
x-coordinate of the next column of the board to wipe (see 29160)
Counter that limits how long a character remains under control of the routine at 25404
109 LSB of address of next character in submessage being spoken (see 28882, 31110)
y-coordinate of the top row of the blackboard being wiped (see 29160)
110 MSB of address of next character in submessage being spoken (see 28882, 31110)
111,112 Routine address (see 25126)
113 Counter determining how much long character will stay down after being hit (see 28569), knocked out of chair (see 27733), or knocked over by stampeding kid (see 27126)
Distance left to travel for catapult pellet (see 27932)
ANGELFACE's pre-punch animatory state (see 28446, 28642)
BOY WANDER's pre-fire animatory state (see 28716, 28786)
114 Character's pre-decked animatory state (see 27206)
115,116 Unused
117,118 Address reached in command list
119,120 Start address of command list
121 Unused (always 0, but checked by 25172)
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 command list at next opportunity if bit 1 is reset (see 25172)
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 Routine address (see 25126); 25247 (RET) is placed here initially by 26880
126,127 Unused