Prev: $1F4C Up: Map Next: $1F77
$1F4D: Control EINSTEIN during class
This corresponds to $79BA in the ZX Spectrum version.
Used by command lists $90, $98, $A0 and $A8.
$1F4D LDA #$03 Event $03: EINSTEIN is speaking.
$1F4F JSR $31D2 Is EINSTEIN still speaking?
$1F52 BCC $1F6E Branch if not.
$1F54 LDA $3F Reset bit 3 (EINSTEIN is not waiting to answer a question) and set bit 2 (EINSTEIN is speaking) and bit 6 (always move EINSTEIN on his turn in the routine at $3B5E) in the flags byte at $3F.
$1F56 AND #$80
$1F58 ORA #$44
$1F5A STA $3F
$1F5C JSR $1F77 Place the address of the interruptible subcommand routine at $2387 into EINSTEIN's buffer and jump to it.
$1F5F .WORD $2387
$1F61 LDA #$03 Event $03: EINSTEIN is speaking.
$1F63 JSR $31C4 Lower the signal for this event.
$1F66 LDA #$4D Place the address of this routine into EINSTEIN's buffer as the primary command routine address.
$1F68 STA $29
$1F6A LDA #$1F
$1F6C STA $2A
$1F6E LDA $3F Reset bit 2 (EINSTEIN is not speaking) and set bits 3 (EINSTEIN is waiting to answer a question) and 6 (always move EINSTEIN on his turn in the routine at $3B5E) in the flags byte at $3F.
$1F70 AND #$80
$1F72 ORA #$48
$1F74 STA $3F
$1F76 RTS
Prev: $1F4C Up: Map Next: $1F77