| Game status buffer

Address | Length | Description
--- | --- | ---
7F00 | 1 | x-coordinate of the leftmost column of the skool on screen Modified by the routines at 6000 and 609B.
7F01 | 8 | UDG back buffer Used by the routine at 610B.
7F09 | 1 | Number of on-screen character squares that need refreshing (unused) Used by the (unused) routine at 64E6.
7F0A | 2 | Unused
7F0C | 84 | Screen refresh buffer (SRB) Used by the routines at 6980, 6992, 7087, 72D2 and 7427. 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 0 corresponds to the leftmost character square in the segment, bit 7 to the rightmost character square.
7F60 | 4 | Unused
7F64 | 2 | Speech bubble lip coordinates Used by the routines at 734E and 7432.
7F66 | 34 | UDG references and attribute bytes of the part of the skool overwritten by the speech bubble and lip Used by the routines at 734E and 7432.
7F88 | 4 | Unused
7F8C | 8 | Workspace used to find the main kid closest to a teacher Used by the routine at 78AA.
7F94 | 2 | Unused
7F96 | 2 | Safe combination letter message Used by the routine at F955.
7F98 | 2 | Unused
7F9A | 1 | Identifier for CREAK's birth year battle Used by the routines at F855 and F923.
7F9B | 4 | CREAK's year of birth Used by the routines at F6D7 and F855. Holds a copy of the battle-year message corresponding to CREAK's birth.
7F9F | 4 | Safe combination code Used by the routines at F726 and F855. Holds the ASCII codes of the letters in the safe combination (in the right order). The teachers' safe combination letters are stored at 7FA3.
7FA3 | 4 | Teachers' safe combination letters Used by the routines at F855 and F955. Holds the ASCII codes of the teachers' safe combination letters. The safe combination itself is stored at 7F9F.
7FA7 | 1 | Unused
7FA8 | 5 | Reading Room blackboard contents buffer Used by the routine at F726.
7FAD | 1 | Unused
7FAE | 5 | White Room blackboard contents buffer Used by the routine at F726.
7FB3 | 1 | Unused
7FB4 | 5 | Exam Room blackboard contents buffer Used by the routine at F726.
7FB9 | 8 | Unused
7FC1 | 1 | ERIC's stand-up delay counter Used by the routine at F5DA while in demo mode.
7FC2 | 2 | Hi-score Used by the routines at 6B0E and 7ED6.
7FC4 | 2 | Score Used by the routine at 6AFB.
7FC6 | 2 | Lines total Used by the routines at 7700 and F9BB.
7FC8 | 1 | Lesson status flags Various status flags for the current lesson.
Bit(s) | Meaning
--- | ---
0 | End of lesson/playtime (always reset)
1-3 | Unused
4 | Next lines reprimand for the teacher fetching the truant ERIC (toggled by 77AC)
5 | Set after a teacher has found the truant ERIC (see 77AC)
6 | Set after a classroom lesson has started with ERIC present (see F300) (checked by 77AC; reset by 66E6)
7 | Set after EINSTEIN has had a chance to grass on the absent ERIC (see F300), or after dinner has started (see 7C6E) (checked by 77AC; reset by 66E6)
7FC9 | 1 | Lesson signal flags Bits 0-3 are 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 Map Room
1 | Teacher has arrived at the Reading Room
2 | Teacher has arrived at the Exam Room
3 | Teacher has arrived at the White Room
4-6 | Unused
7 | EINSTEIN is speaking (set by 7CAF; checked by 79BA and 7CC8; reset by 79CA)
7FCA | 1 | Stampede signal flags These flags are set and reset by command list 0xCC, and checked by command list 0xCE.
Bit(s) | Meaning if set
--- | ---
0 | Little boy no. 1 is ready to stampede
1 | Little boy no. 1 is ready to stampede again
2-7 | Unused
7FCB | 1 | Special playtime signal flags These flags are used during the special playtimes (when EINSTEIN is going to tell MR WACKER what ERIC's up to, BOY WANDER has hidden a pea-shooter on the fire escape, or ANGELFACE has mumps).
Bit(s) | Meaning if set
--- | ---
0 | Little boy no. 10 is waiting for ERIC to respond to the message just delivered (set and reset by F800; checked by F778)
1 | Unused
2 | EINSTEIN is ready (set by command list 0xD4; checked by command list 0xD0)
BOY WANDER is ready (set and reset by command list 0xD8; checked by command lists 0xD0 and 0xDA)
3 | MR WACKER is ready (set by command lists 0xD6 and 0xDA; checked by command list 0xD0)
4 | Little boy no. 10 has told ERIC about EINSTEIN (set by command list 0xD0; checked by command list 0xD4)
Little boy no. 10 has told ERIC about BOY WANDER (set by command list 0xD0; checked by command list 0xD8)
Little boy no. 10 has told ERIC about ANGELFACE (set by command list 0xD2; checked by command list 0xDC)
5 | EINSTEIN has grassed on ERIC (set by command list 0xD4; checked by command list 0xD6)
ERIC has mumps (set by FA2A; checked by command list 0xDE)
6-7 | Unused
7FCC | 14 | Unused
7FDA | 1 | Birth year question indicator Used by the routine at F923, and reset at the start of each lesson by the routine at 66E6. Holds 0 if MR CREAK has not yet asked the birth year question during the current lesson, or 1 otherwise.
7FDB | 13 | Unused
7FE8 | 1 | ERIC's main action timer Decremented by the main loop at 6767; when it becomes zero, the keyboard is checked and ERIC is moved accordingly (see also 6500, 653C, 656A and 6900).
7FE9 | 1 | ERIC's midstride/mid-action timer Zero unless ERIC is midstride or has his arm raised while writing on a board (see 653C); if non-zero, the value is copied to the main action timer at 7FE8 after ERIC has lowered his arm or moved from the midstride position (see 6500).
7FEA | 1 | Game mode indicator Used by the routine at 6DEF.
Value | Meaning
--- | ---
0 | Demo mode
1 | Shields need to be flashed
2 | All shields flashing; ERIC needs to find the safe combination
3 | Shields need to be unflashed
7FEB | 1 | Shield counter Used by the routine at 6DEF.
7FEC | 1 | Next clean pixel column on the Reading Room blackboard Used by the routines at 7142, 71E8 and F726.
7FED | 1 | Number of the character who last wrote on the Reading Room blackboard Used by the routines at 71E8, 7264, F650 and FA10. Holds 0 if the board is clean.
7FEE | 1 | Next clean pixel column on the White Room blackboard Used by the routines at 7142, 71E8 and F726.
7FEF | 1 | Number of the character who last wrote on the White Room blackboard Used by the routines at 71E8, 7264, F650 and FA10. Holds 0 if the board is clean.
7FF0 | 1 | Next clean pixel column on the Exam Room blackboard Used by the routines at 7142, 71E8 and F726.
7FF1 | 1 | Number of the character who last wrote on the Exam Room blackboard Used by the routines at 71E8, 7264 and F650. Holds 0 if the board is clean.
7FF2 | 1 | Lines-giving delay counter Used by the routine at 77AC.
7FF3 | 1 | Character number of the teacher who last gave ERIC lines Used by the routine at 77AC.
7FF4 | 1 | Lesson descriptor Used by the routines at 66E6, 77AC, 7940, 79D4 and 7DB2. The room ID is stored in bits 0-3, and the teacher ID in bits 4-7. See the list of lesson descriptors at ACE0.
7FF5 | 1 | ERIC's knockout delay counter Used by the routine at 6AA7.
7FF6 | 1 | Action timer for ERIC Used by the routines at F41F, F4A4 and F533 to coordinate ERIC's movements while firing his catapult, hitting, or jumping.
7FF7 | 2 | Lesson clock Decremented in the main loop at 6767. When it reaches 0, it is reset to 1500 by the routine at 66E6. It is also checked by the routines at 77AC and 7C3F, and modified by the routines at 6900, F7E0, F800, F8B4, F9BB and FA04.
7FF9 | 1 | Current lesson number Used by the routines at 66E6 and 7C47. Holds the index (0x00-0x3F) into the main timetable. It is adjusted by the routine at 6900 before starting a new game.
7FFA | 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 6767).
7FFB | 1 | ERIC's status flags If ERIC is doing anything other than walking or standing still, one of the bits here will be set.
Bit | Meaning if set | Handler | Checked by
--- | --- | --- | ---
0 | ERIC is firing the catapult | F41F | 6AD9
1 | ERIC is hitting | F4A4 | 6AD9
2 | ERIC is jumping | F533 | 6AD9, 77AC, 78AA, 79FD
3 | ERIC is being spoken to by little boy no. 10 | F778 | 6AD9
4 | ERIC has just been knocked down or unseated | 6AA7 | 6AD9
5 | ERIC is writing on a blackboard | F6AA | 6767
6 | Unused (always reset) |  | 657F, 65E4, 6652
7 | ERIC is sitting or lying down (set by 6AA7 or 6CAF) |  | 6564, F46E, F5DA, F650
7FFC | 1 | Last key pressed Holds the ASCII code of the last key pressed. Set by the routines at 6767 and F650; checked by the routines at 653C and 6652.
7FFD | 1 | Number of the character just moved (0x98-0xAB) Used by the routine at 6226.
7FFE | 2 | Random number seed Used by the routine at 61A1.