![]() |
Routines |
| Prev: $0A57 | Up: Map | Next: $0B3A |
| $0A58 | JSR $0B3B | Wait for EINSTEIN to sit down and ERIC to show up. | ||
|
This entry point is used by the routine at $0B3B.
|
||||
| $0A5B | LDA #$01 | Event $01: ERIC should be in class now. | ||
| $0A5D | JSR $31B6 | Raise the signal for this event. | ||
| $0A60 | LDA #$02 | Event $02: ERIC's lesson has started. | ||
| $0A62 | JSR $31B6 | Raise the signal for this event. | ||
| $0A65 | JSR $0B3B | Check whether ERIC is in class. | ||
| $0A68 | LDA $D41B | Generate a random value in A. | ||
| $0A6B | CMP #$E3 | Should EINSTEIN tell the teacher that ERIC hit him? | ||
| $0A6D | BCC $0A80 | Branch if not. | ||
| $0A6F | LDX #$F9 | Set YX to $5AF9: Please Sir I cannot tell a lie . . ERIC hit me. | ||
| $0A71 | LDY #$5A | |||
| $0A73 | JSR $1EE3 | Make EINSTEIN tell the teacher that ERIC hit him. | ||
| $0A76 | LDA #$14 | Character number $14 is ERIC. | ||
| $0A78 | LDY #$08 | Lines reprimand $08: NOW DON'T DO IT AGAIN. | ||
| $0A7A | JSR $2552 | Make the teacher give lines to EINSTEIN or ERIC. | ||
| $0A7D | JSR $0B3B | Check whether ERIC is in class. | ||
| $0A80 | LDA $FB | Pick up the teacher's y-coordinate from $FB. | ||
| $0A82 | CMP #$03 | Is the teacher on the top floor? | ||
| $0A84 | BNE $0A8F | Branch if not. | ||
| $0A86 | LDA $FC | Pick up the teacher's x-coordinate from $FC. | ||
| $0A88 | CMP #$3B | Is the teacher in the Map Room? | ||
| $0A8A | BCC $0A8F | Branch if not. | ||
| $0A8C | JMP $0B1C | Jump forward (there's no blackboard in the Map Room). | ||
| $0A8F | JSR $1468 | Get the identifier and coordinates of the blackboard next to the teacher. | ||
| $0A92 | LDA $1A | Pick up the second byte of the blackboard's buffer from $1A. | ||
| $0A94 | CMP #$14 | Was ERIC the last person to write on this blackboard? | ||
| $0A96 | BEQ $0AAB | Branch if so. | ||
| $0A98 | CMP #$10 | Was BOY WONDER the last person to write on this blackboard? | ||
| $0A9A | BEQ $0A9F | Branch if so. | ||
| $0A9C | JMP $0AD6 | Jump forward. | ||
| $0A9F | LDA $D41B | Generate a random value in A. | ||
| $0AA2 | CMP #$C9 | Is this random value $C9 or more? | ||
| $0AA4 | BCS $0AAB | Branch if so. | ||
| $0AA6 | LDA #$10 | Character number $10 is BOY WONDER. | ||
| $0AA8 | JMP $0AAD | Jump forward. | ||
| $0AAB | LDA #$14 | Character number $14 is ERIC. | ||
| $0AAD | PHA | Save the character number temporarily. | ||
| $0AAE | LDA #$5B | Store $5B12 (Please Sir I cannot tell a lie . . ERIC wrote on the blackboard) at $86. | ||
| $0AB0 | STA $87 | |||
| $0AB2 | LDA #$12 | |||
| $0AB4 | STA $86 | |||
| $0AB6 | LDY #$01 | Y will point at the character name identifier in this message. | ||
| $0AB8 | PLA | Restore the character number of the boy that EINSTEIN will blame for writing on the blackboard and store it at $C0. | ||
| $0AB9 | STA $C0 | |||
| $0ABB | CMP #$10 | Is EINSTEIN going to blame BOY WONDER? | ||
| $0ABD | BEQ $0AC4 | Branch if so. | ||
| $0ABF | LDA #$10 | Character name identifier $10: ERIC. | ||
| $0AC1 | JMP $0AC6 | Jump forward. | ||
| $0AC4 | LDA #$11 | Character name identifier $11: BOY WONDER. | ||
| $0AC6 | STA ($86),Y | Place the character name identifier of the boy that EINSTEIN will blame into the message at $5B12. | ||
| $0AC8 | LDX $86 | YX=$5B12: Please Sir I cannot tell a lie . . ERIC/BOY WONDER wrote on the blackboard. | ||
| $0ACA | LDY $87 | |||
| $0ACC | JSR $1EE3 | Make EINSTEIN tell the teacher that ERIC or BOY WONDER wrote on the blackboard. | ||
| $0ACF | LDA $C0 | Pick up the character number of the boy that EINSTEIN blamed for writing on the blackboard. | ||
| $0AD1 | LDY #$0C | Lines reprimand $0C: DON'T TOUCH BLACKBOARDS. | ||
| $0AD3 | JSR $2552 | Make the teacher give lines to ERIC, BOY WONDER or EINSTEIN. | ||
| $0AD6 | JSR $1F77 | Place the address of the interruptible subcommand routine at $16E9 into the teacher's buffer and jump to it. This makes the teacher wipe the blackboard and return here when he's done. | ||
| $0AD9 | .WORD $16E9 | |||
| $0ADB | LDA $FC | Pick up the teacher's x-coordinate from $FC. | ||
| $0ADD | CLC | Add 3 to this x-coordinate and store the result in the the teacher's buffer at $AC and $AD. | ||
| $0ADE | ADC #$03 | |||
| $0AE0 | STA $AC | |||
| $0AE2 | STA $AD | |||
| $0AE4 | JSR $1F77 | Place the address of the interruptible subcommand routine at $136F into the teacher's buffer and jump to it. This makes the teacher walk to the middle of the blackboard before returning here. | ||
| $0AE7 | .WORD $136F | |||
| $0AE9 | LDA $D41B | Generate a random value in A. | ||
| $0AEC | CMP #$B5 | Should the teacher write on the blackboard? | ||
| $0AEE | BCC $0B1C | Branch if not. | ||
| $0AF0 | JSR $1F77 | Place the address of the interruptible subcommand routine at $1129 into the teacher's buffer and jump to it. This makes him write on the blackboard and return here when he's done. | ||
| $0AF3 | .WORD $1129 | |||
| $0AF5 | LDA $D41B | Generate a random value in A. | ||
| $0AF8 | CMP #$A1 | Should the teacher tell the kids to write an essay? | ||
| $0AFA | BCC $0B1C | Branch if not. | ||
| $0AFC | LDA #$D6 | Store $5CD6 (WRITE AN ESSAY WITH THIS TITLE) at $AC. | ||
| $0AFE | STA $AC | |||
| $0B00 | LDA #$5C | |||
| $0B02 | STA $AD | |||
| $0B04 | JSR $1F77 | Place the address of the interruptible subcommand routine at $2387 into the teacher's buffer and jump to it. This makes him tell the kids to write an essay or read their books, and then return here. | ||
| $0B07 | .WORD $2387 | |||
| $0B09 | JSR $0B3B | Check whether ERIC is in class. | ||
| $0B0C | LDA $FC | Pick up the teacher's x-coordinate from $FC. | ||
| $0B0E | EOR #$03 | Flip bits 0 and 1 of this x-coordinate and store the result in the teacher's buffer at $AC and $AD. | ||
| $0B10 | STA $AC | |||
| $0B12 | STA $AD | |||
| $0B14 | JSR $1F77 | Place the address of the interruptible subcommand routine at $136F into the teacher's buffer and jump to it. This makes him turn round, walk a few paces and then return here. | ||
| $0B17 | .WORD $136F | |||
| $0B19 | JMP $0B09 | Jump back to make the teacher turn round and walk another few paces. | ||
| $0B1C | LDA $D41B | Generate a random value in A. | ||
| $0B1F | CMP #$E1 | Is this going to be a questions-and-answers lesson? | ||
| $0B21 | BCC $0B29 | Branch if so. | ||
| $0B23 | JSR $2500 | Prepare a message telling the kids to go to a certain page in their books. | ||
| $0B26 | JMP $0B04 | Jump back to make the teacher deliver this message. | ||
|
This will be a questions-and-answers lesson.
|
||||
| $0B29 | JSR $0B3B | Check whether ERIC is in class. | ||
| $0B2C | JSR $2241 | Prepare a question and answer. | ||
| $0B2F | 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 ask a question and then return here. | ||
| $0B32 | .WORD $2387 | |||
| $0B34 | JSR $1F05 | Wait until EINSTEIN has answered the question. | ||
| $0B37 | JMP $0B29 | Jump back for another question and answer. | ||
| Prev: $0A57 | Up: Map | Next: $0B3A |