Prev: $0B3A Up: Map Next: $0BAC
$0B3B: Check whether ERIC and EINSTEIN are in class
This corresponds to $7CD0 in the ZX Spectrum version.
Used by the routine at $0A58.
$0B3B LDA #$89 Store the base address of EINSTEIN's character buffer ($8960) at $4E.
$0B3D STA $4F
$0B3F LDA #$60
$0B41 STA $4E
$0B43 LDY #$00 Pick up EINSTEIN's animatory state.
$0B45 LDA ($4E),Y
$0B47 CMP #$15 Is EINSTEIN sitting on a chair?
$0B49 BEQ $0B5F Branch if so.
$0B4B PLA Pull the return address from the stack and place it at $29.
$0B4C STA $29
$0B4E PLA
$0B4F STA $2A
$0B51 LDA $29 Subtract two from the address, making it point at the JSR instruction that called this routine. This address is now the teacher's primary command routine address.
$0B53 SEC
$0B54 SBC #$02
$0B56 BCS $0B5A
$0B58 DEC $2A
$0B5A STA $29
$0B5C JMP $0BAB Return to the character-moving routine at $3B5E.
EINSTEIN is sitting on a chair. Now where's ERIC?
$0B5F JSR $0D91 Is ERIC in class?
$0B62 BEQ $0BAB Return if so.
$0B64 PLA Drop the return address from the stack.
$0B65 PLA
$0B66 LDY #$5B YX=$5B03: Please Sir I cannot tell a lie . . ERIC is not here.
$0B68 LDX #$03
$0B6A JSR $1EE3 Make EINSTEIN tell the teacher that ERIC is not here.
$0B6D LDA #$11 Character number $11 is EINSTEIN.
$0B6F JSR $2552 Make the teacher give EINSTEIN lines if he's in the mood.
$0B72 JSR $2500 Prepare a message telling the kids to go to a certain page in their books.
$0B75 JSR $1F77 Place the address of the interruptible subcommand routine at $2387 into the teacher's buffer and jump to it. This makes the teacher tell the kids to read their books and then return here.
$0B78 .WORD $2387
$0B7A JSR $0D91 Is ERIC in class?
$0B7D BEQ $0B91 Branch if so.
$0B7F LDA #$01 Event $01: ERIC should be in class now.
$0B81 JSR $31B6 Raise the signal for this event.
This entry point is used by the routine at $0E35.
$0B84 LDA #$27 Store the address of the routine at $2745 at $AE. This routine handles the teacher when he has found the truant ERIC.
$0B86 STA $AF
$0B88 LDA #$45
$0B8A STA $AE
$0B8C JSR $1F77 Place the address of the interruptible subcommand routine at $0C3F into the teacher's buffer and jump to it. This makes the teacher find ERIC and bring him to the classroom, and then restarts the teacher's command list.
$0B8F .WORD $0C3F
ERIC has shown up in class while the teacher was telling the kids to read their books.
$0B91 LDA #$01 Event $01: ERIC should be in class now.
$0B93 JSR $31D2 Has the signal already been raised for this event?
$0B96 BCC $0B9D Branch if not.
$0B98 LDA #$0B Lines reprimand $0B: AND STAY THIS TIME.
$0B9A JMP $0B9F Jump forward.
$0B9D LDA #$0A Lines reprimand $0A: NEVER BE LATE AGAIN.
$0B9F STA $D8 Store this lines reprimand identifier at $D8.
$0BA1 LDA #$14 Character number $14 is ERIC.
$0BA3 STA $72 Store this at $72.
$0BA5 JSR $1DB7 Make the teacher give lines to ERIC.
$0BA8 JMP $0A5B Start or resume the lesson now that ERIC is present.
$0BAB RTS
Prev: $0B3A Up: Map Next: $0BAC