| Game status buffer

Address | Length | Description
--- | --- | ---
32512 | 84 | Screen refresh buffer (SRB) Used by the routines at 24880, 25248, 26380, 26849 and 26910. Each byte of the SRB corresponds to a segment of 8 character squares on the screen, the leftmost of which will be at x=0, x=8, x=16 or x=24. Each bit set in an SRB byte corresponds to a character square in the segment that needs refreshing. Bit 7 corresponds to the leftmost character square in the segment, bit 0 to the rightmost character square.
32596 | 6 | Buffer for the Blue Room blackboard Used by the routines at 24133, 24175, 26513, 26639 and 26752.
32602 | 6 | Buffer for the Yellow Room blackboard Used by the routines at 24133, 24175, 26513, 26639 and 26752.
32608 | 6 | Buffer for the blackboard in the top-floor classroom of the girls' skool Used by the routines at 24133, 24175, 26513, 26639 and 26752.
32614 | 6 | Buffer for the Science Lab blackboard Used by the routines at 24133, 24175, 26513, 26639 and 26752.
32620 | 6 | Buffer for the blackboard in the middle-floor classroom of the girls' skool Used by the routines at 24133, 24175, 26513, 26639 and 26752.
32626 | 14 | Unused
32640 | 1 | Various flags Various status flags for the current lesson.
Bit | Meaning if set
--- | ---
0 | End of lesson/playtime (always reset)
1 | MR WACKER is looking for ERIC to expel him (see 62770)
2 | MR WACKER is looking for the truant ERIC (see 62668)
3 | EINSTEIN is talking (set and checked by 61463; reset and checked by 61440)
4 | Lines reprimand toggle for the teacher fetching ERIC (see 32062)
5 | MISS TAKE is chasing ERIC (see 32062)
6 | ERIC should be in class (set by 61696), dinner (set by 61631) or assembly (set by 61658) (checked by 32062)
7 | Kids should be sitting in the assembly hall (set by 61658; reset by 62032; checked by 27904 and 32062, and by command lists 20, 40 and 88)
ERIC's teacher's next absence reprimand should be STAY TILL I DISMISS YOU instead of DON'T BE LATE AGAIN (set and checked by 61696)
ERIC should be sitting down in class (set by 61696; checked by 32062)
32641 | 1 | Lesson signal flags Used by the classroom-based command lists to indicate that or check whether a teacher has arrived at the classroom door to start the lesson.
Bit(s) | Meaning if set
--- | ---
0 | Teacher has arrived at the top-floor classroom in the girls' skool
1 | Teacher has arrived at the middle-floor classroom in the girls' skool
2 | Teacher has arrived at the Blue Room
3 | Teacher has arrived at the Yellow Room
4 | Teacher has arrived at the Science Lab
5-7 | Unused
32642 | 6 | Unused
32648 | 2 | Message 6: '{teacher}' Used by the routine at 32433 when printing the top line of text in the lesson box; it is a submessage of message 16.
32650 | 2 | Message 5: '{lines recipient}/combination number or letter/{room}' Used by the routines at 29716 (as a submessage of message 13), 29896 (as a submessage of message 14) and 32433 (as a submessage of message 16).
32652 | 2 | Message 10: '{mountain}/{king}/{animal}/{verb}' Used by the routines at 61696 and 62032; it is a submessage of messages 74, 75, 78, 79, 82, 83 and 96.
32654 | 2 | Message 11: '{country}/{year}/{habitat}/{noun}' Used by the routines at 61696 and 62032; it is a submessage of messages 73, 76, 77, 80, 81, 84 and 96.
32656 | 2 | Message 7: '{grassee}' Used by the routine at 61696 to hold the character number of whoever is being grassed up by EINSTEIN for writing on the board (206=BOY WANDER, or 210=ERIC); it is a submessage of message 88. Note that storing the character number (206 or 210) here is a mistake; it should be the message number of the character's name (27 or 31) instead. In any case, this message (along with parent message 88) is never used, because of a bug in the section of code at 61852.
32658 | 10 | Unused
32668 | 8 | Bike and Science Lab storeroom combinations Used by the routines at 24028 and 62910.
32676 | 8 | Copy of the bike and Science Lab storeroom combinations Used by the routine at 30034. The digits or letters discovered by ERIC have bit 7 set (to indicate that he has already scored points for doing so).
32684 | 43 | Unused
32727 | 1 | Various ERIC-related data (1) Used in conjunction with the contents of 32728. Holds the ASCII code of the last key pressed while writing on a blackboard (see 24175), or the descent table identifier (252-255; see 64460), or the LSB of the address of a routine (or an entry point to a routine) for dealing either with ERIC or with the result of an action by ERIC (see 57669):
Address | Purpose | Placed here by
--- | --- | ---
23877 | Remove the water pistol from the inventory | 23863
24272 | Deal with ERIC when he's raising his fist | 24263
24290 | Deal with ERIC when he's lowering his fist
24304 | Deal with ERIC when he's raising the catapult | 24296
24314 | Launch a pellet from ERIC's catapult
24324 | Deal with ERIC after he's launched a catapult pellet
24458 | Deal with ERIC when he's kissing HAYLEY | 24348
31462 | Release some mice | 57893
31573 | Make ERIC catch a mouse or frog (if present) | 57637
63586 | Deal with a dropped stinkbomb | 28992
63915 | Control water fired from the pistol | 63898
32728 | 1 | Various ERIC-related data (2) Used in conjunction with the contents of 32727. Holds the identifier of the blackboard ERIC wrote on (see 24133), or the descent table entry pointer (160-180; see 64460), or the MSB of the address of a routine (or an entry point to a routine) for dealing either with ERIC or with the result of an action by ERIC (see 57669, and 32727 for a list of the routine and entry point addresses).
32729 | 1 | Last value seen in the system variable FRAMES Stores the value of the LSB of the system variable FRAMES as it stood at the end of the last pass through the main loop (see 63210).
32730 | 1 | ID of the desk containing the water pistol Used by the routine at 62178.
32731 | 1 | ID of the desk containing the stinkbombs Used by the routine at 62178.
32732 | 1 | ERIC's stand-up delay counter Used by the routine at 62178 while in demo mode.
32733 | 1 | ERIC's knockout delay counter Used by the routine at 62094.
32734 | 1 | Game mode indicator Used by the routines at 23907, 32433, 62178 and 63189. Holds 255 if in demo mode, 0 if a game is in progress, or 1 if ERIC has just opened the safe.
32735 | 1 | Current lesson number Used by the routine at 63309. Holds the index (192-255) into the main timetable. Adjusted by the routine at 62910 before starting a new game.
32736 | 1 | Lesson descriptor Used by the routines at 32021, 32062, 32433, 61696 and 63309. The room ID is stored in bits 0-3, and the teacher ID in bits 4-7. See the list of lesson descriptors at 53797.
32737 | 1 | Number of mice caught Used by the routines at 31462, 31502 and 31573.
32738 | 1 | Kiss counter Used by the routines at 24348 (which decreases the counter by 7 whenever ERIC kisses HAYLEY) and 30102 (which decreases the counter by 1 whenever HAYLEY is knocked over). Initialised to 40 by the routine at 62910.
32739 | 2 | Lesson clock Decremented in the main loop at 63210. When it reaches 0, it is reset to 4096 by the routine at 63309. It is also checked by the routines at 30102, 32062, 61555, 61631 and 61658, and modified by the routines at 30102, 62032, 62770, 62815 and 62910.
32741 | 2 | Score Used by the routine at 29621.
32743 | 2 | Lines total Used by the routines at 24348 and 29643.
32745 | 2 | Hi-score Used by the routine at 62815.
32747 | 1 | Inventory flags Used by the routine at 31746. Bit set=got, bit reset=haven't.
Bit | Item | Set | Reset | Checked
--- | --- | --- | --- | ---
0 | Safe key | 30804 |  | 23907, 30804
1 | Science Lab storeroom key | 24028 |  | 24028, 29681, 30229, 31254
2 | Frog | 31733 | 29462 | 29462
3 | Water pistol (with water if bit 4 reset) | 62178 | 23863 | 23863, 23907, 63898
4 | Water pistol with sherry | 23907 | 23863 | 23863, 23907, 63898, 64077
5 | 3 stinkbombs | 62178 | 63586 |
6 | 2 stinkbombs | 62178 | 63586 |
7 | 1 stinkbomb | 62178 | 63586 | 28992
32748 | 1 | Input device indicator Set by the routine at 21664, and checked by the routine at 29118. Holds 0 if the keyboard is being used, or 1 if the Kempston joystick is being used.
32749 | 1 | ERIC's secondary status flags Used by the routine at 63405 to decide how to deal with ERIC when bit 1 is set at 32763.
Bit | Meaning if set | Routine
--- | --- | ---
0 | ERIC is riding the bike | 29278
1 | ERIC is standing on a plant or plant pot | 64316
2 | ERIC is stepping off a plant, a plant pot, or the stage | 64259
3 | ERIC is falling and will land on his feet | 64416
4 | ERIC is falling and will not land on his feet | 64460
5 | ERIC has stepped out of the top-floor window | 23859
6 | ERIC is falling from the saddle of the bike | 23843
7 | ERIC is standing on the saddle of the bike | 29462
32750 | 1 | Last key pressed while riding the bike Used by the routine at 29278. Holds the value from the keypress offset table corresponding to the last key pressed while riding the bike.
32751 | 1 | Counter that determines the bike's speed while ERIC's on it Used by the routine at 29278.
32752 | 1 | Bike's momentum Used by the routine at 29278.
32753 | 1 | Last key pressed Set by the routine at 63210; checked by the routines at 28114 and 28216. Holds the value from the keypress offset table corresponding to the last key pressed.
32754 | 1 | ERIC's midstride/mid-action timer Zero unless ERIC is midstride (see 28114) or mid-action (see 57669); if non-zero, the value is copied to the main action timer at 32755 after ERIC has been moved from the midstride or mid-action position (see 63210).
32755 | 1 | ERIC's main action timer Decremented by the main loop at 63210; when it becomes zero, the keyboard is checked and ERIC is moved accordingly. Also used by many routines that deal with ERIC to decide when to change ERIC's animatory state or location, or when to check the keyboard.
32756 | 1 | Door/window status flags Used by the routine at 28736. Bit set=open, bit reset=closed.
Bit | Door/window
--- | ---
0 | Left study door
1 | Right study door
2 | Science Lab storeroom door
3 | Boys' skool door
4 | Skool gate
5 | Drinks cabinet door
6 | Top-floor window
7 | Middle-floor window
32757 | 1 | Character number of the teacher who last gave ERIC lines Used by the routine at 32062.
32758 | 1 | LSB of the lines-giving delay counter Used by the routine at 32032. Also used by the routine at 28877 when timing the closing of the left study, right study and Science Lab storeroom doors.
32759 | 1 | MSB of the lines-giving delay counter Used by the routines at 32032 and 32062.
32760 | 1 | LSB of the address of the SRB byte corresponding to the lip of the speech bubble Used by the routine at 26958. Holds 0 if no one's speaking.
32761 | 1 | Speech bubble lip SRB bit The bit set at this byte indicates the bit of the SRB byte (referred to by 32760) that corresponds to the lip of the speech bubble (see 26958).
32762 | 1 | Leftmost column of the play area on screen the last time the SRB was updated for the speech bubble Holds the column of the play area that was at the far left of the screen the last time the routine at 26849 (update the SRB for the speech bubble) was called.
32763 | 1 | ERIC's primary status flags Used by the routine at 63405 to decide how to deal with ERIC.
Bit | Meaning if set | Routine
--- | --- | ---
0 | ERIC is jumping | 23907
1 | Examine the secondary status flags at 32749 |
2 | ERIC is sitting or lying down | 62178
3 | ERIC is bending over | 57669
ERIC is dropping a stinkbomb
ERIC is firing the water pistol
ERIC is moving forward as if to kiss (but will miss)
4 | ERIC is writing on a blackboard | 24175
5 | ERIC is firing the catapult | 24237
ERIC is hitting
ERIC is kissing HAYLEY
6 | MR WACKER is expelling ERIC |
7 | ERIC has been knocked over | 62094
32764 | 1 | Number of the character just moved (183-214) Used by the routine at 25296.
32765 | 2 | Random number seed Used by the routine at 25233.
32767 | 1 | x-coordinate of the leftmost column of the play area on screen Modified by the routines at 25026 and 25080.