| Routines

61463: Make EINSTEIN speak

The address of this interruptible subcommand routine is placed into bytes 9 and 10 of the buffer of the teacher who is taking ERIC's class by the routine at 61696. It is used to make EINSTEIN tell a tale.
Input
E | Message number
H | Teacher's character number (201-203)
61463 | LD A,E | A=message number for EINSTEIN
61464 | LD (53259),A | Place this in byte 11 of EINSTEIN's buffer
The address of this entry point is placed into bytes 9 and 10 of the buffer of the teacher who is taking ERIC's class by the routine at 61696. It is used to make EINSTEIN answer the teacher's question.
61467 | EX DE,HL |
61468 | LD HL,32640 | Set bit 3 at 32640 to indicate that it's EINSTEIN's turn to speak
61471 | SET 3,(HL)
61473 | EX DE,HL |
61474 | LD L,9 | Replace the address of this routine in bytes 9 and 10 of the teacher's buffer with 61478 (below)
61476 | LD (HL),38
This entry point is used while the teacher is waiting for EINSTEIN to finish speaking.
61478 | LD A,(32640) | Has EINSTEIN finished speaking yet?
61481 | BIT 3,A
61483 | RET NZ | Return if not
61484 | JP 25488 | Otherwise terminate this interruptible subcommand, thus restoring control to the main routine at 61696