| Routines

F000: Control EINSTEIN during class

Used by command lists 0x52, 0x54 and 0x56. Controls EINSTEIN from the moment after he sits down until the lesson ends.
Input
H | 0xD0 (EINSTEIN)
F000 | LD A,($7F80) | Bit 3 of 7F80 is set by the routine at F017 when it's EINSTEIN's turn to speak in class; is it his turn now?
F003 | BIT 3,A
F005 | RET Z | Return if not
F006 | LD BC,$6A0B | Direct control of EINSTEIN to the routine at 6A0B (make character speak) and then return to F00C (below)
F009 | CALL $639F
F00C | LD L,$03 | Reset the address of the primary command routine in bytes 0x03 and 0x04 of EINSTEIN's buffer from F00C to F000
F00E | LD (HL),$00
F010 | LD HL,$7F80 | Signal: EINSTEIN has finished speaking
F013 | RES 3,(HL)
F015 | RET |