Prev: 7CA0 Up: Map Next: 7CC8
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
Prev: 7CA0 Up: Map Next: 7CC8