| Routines

7CAF: Make EINSTEIN speak

Used by the routine at F300. Copies the message address into bytes 0x6B and 0x6C of EINSTEIN's buffer, and then signals that it's his turn to speak.
Input
BC | Message address
H | Teacher's character number (0xA3-0xA6)
7CAF | LD DE,$A96B | Point HL at byte 0x6B of EINSTEIN's buffer
7CB2 | EX DE,HL
7CB3 | LD (HL),C | Copy the message address in BC into bytes 0x6B and 0x6C of EINSTEIN's buffer
7CB4 | INC L
7CB5 | LD (HL),B
This entry point is used by the routine at F400.
7CB6 | LD HL,$7FC9 | 7FC9 holds the lesson signal flags
7CB9 | SET 7,(HL) | Signal (to the routine at 79BA) that it's EINSTEIN's turn to speak
7CBB | EX DE,HL |
7CBC | LD L,$6A | Place the address of the interruptible subcommand routine at 7CC8 into bytes 0x69 and 0x6A of the teacher's buffer
7CBE | LD (HL),$7C
7CC0 | DEC L
7CC1 | LD (HL),$C8
7CC3 | POP DE | Collect the return address in DE and copy it to bytes 0x63 and 0x64 of the teacher's buffer (so that control will resume there when 7CC8 relinquishes it)
7CC4 | LD L,$63
7CC6 | LD (HL),E
7CC7 | RET | Return to the main loop