![]() |
Routines |
| Prev: $1468 | Up: Map | Next: $15B3 |
| $149F | LDA $60 | Pick up the current character number from $60. | ||
| $14A1 | PHA | Save it temporarily. | ||
| $14A2 | LDA #$14 | Set the current character number at $60 to $14 (ERIC). | ||
| $14A4 | STA $60 | |||
| $14A6 | JSR $3279 | Copy ERIC's character buffer into page 0. | ||
| $14A9 | DEC $C6 | Decrement the lines-giving delay counter at $C6. | ||
| $14AB | LDA $C6 | Pick up the lines-giving delay counter from $C6. | ||
| $14AD | AND #$0F | Is the low nibble zero? | ||
| $14AF | BEQ $14B4 | Branch if so. | ||
| $14B1 | JMP $15AC | Otherwise there's nothing to do. | ||
| $14B4 | LDA $C6 | Pick up the lines-giving delay counter from $C6. | ||
| $14B6 | AND #$F0 | Clear bits 0-3. | ||
| $14B8 | CMP #$51 | Is the high nibble 5 or less? | ||
| $14BA | BCC $14BF | Branch if so. | ||
| $14BC | JMP $15AC | Otherwise there's nothing to do. | ||
| $14BF | LDA $C6 | Pick up the lines-giving delay counter from $C6. | ||
| $14C1 | AND #$F0 | Is the high nibble zero? | ||
| $14C3 | BNE $14C7 | Branch if not. | ||
| $14C5 | LDA #$10 | Prepare to reset the lines-giving delay counter to $10. | ||
| $14C7 | STA $C6 | Update the lines-giving delay counter at $C6 (the low nibble is now zero). | ||
| $14C9 | JSR $1EC2 | Get ERIC's coordinates in X and Y. | ||
| $14CC | CPY #$03 | Is ERIC on the top floor? | ||
| $14CE | BEQ $14E1 | Branch if so. | ||
| $14D0 | CPY #$0A | Is ERIC on the middle floor? | ||
| $14D2 | BEQ $14E1 | Branch if so. | ||
| $14D4 | CPY #$11 | Is ERIC on the bottom floor? | ||
| $14D6 | BEQ $14E1 | Branch if so. | ||
| $14D8 | LDA $14 | Pick up ERIC's posture indicator from $14. | ||
| $14DA | BNE $14E1 | Branch unless ERIC is sitting on a staircase. | ||
| $14DC | LDA #$00 | Lines reprimand $00: DON'T SIT ON THE STAIRS. | ||
| $14DE | JMP $1538 | Make any nearby teacher give lines to ERIC. | ||
| $14E1 | JSR $0D91 | Is ERIC in the classroom he should be in? | ||
| $14E4 | BNE $14EB | Branch if not. | ||
| $14E6 | LDA #$00 | A=$00: ERIC's where he should be. | ||
| $14E8 | JMP $14ED | Jump forward. | ||
| $14EB | LDA #$FF | A=$FF: ERIC's not where he should be. | ||
| $14ED | STA $EC | Store this indicator at $EC. | ||
| $14EF | LDA $C7 | Pick up the region identifier (0-7) for ERIC's location. | ||
| $14F1 | BNE $14F8 | Branch unless ERIC's in the head's study or the staff room. | ||
| $14F3 | LDA #$01 | Lines reprimand $01: THE ROOM IS PRIVATE. | ||
| $14F5 | JMP $1538 | Make any nearby teacher give lines to ERIC. | ||
| $14F8 | LDA #$01 | Event $01: ERIC should be in class or the dinner hall now. | ||
| $14FA | JSR $31D2 | Has the signal for this event been raised? | ||
| $14FD | BCS $151F | Branch if so. | ||
| $14FF | LDA $C7 | Pick up the region identifier (0-7) for ERIC's location. | ||
| $1501 | CMP #$05 | Is ERIC in a classroom? | ||
| $1503 | BCC $1519 | Branch if so. | ||
| $1505 | LDA $26 | Pick up ERIC's animatory state from $26. | ||
| $1507 | AND #$07 | Keep only bits 0-2. | ||
| $1509 | CMP #$06 | Is ERIC sitting on the floor? | ||
| $150B | BEQ $1514 | Branch if so. | ||
| $150D | CMP #$07 | Is ERIC lying on his back? | ||
| $150F | BEQ $1514 | Branch if so. | ||
| $1511 | JMP $15AC | Otherwise jump forward. | ||
| $1514 | LDA #$04 | Lines reprimand $04: GET OFF THE FLOOR. | ||
| $1516 | JMP $1538 | Make any nearby teacher give lines to ERIC. | ||
| $1519 | LDA $40 | Pick up the MSB of the lesson clock from $40. | ||
| $151B | CMP #$08 | Is it 8 or more? | ||
| $151D | BCS $1505 | Branch if so. | ||
| $151F | LDA $EC | Is ERIC where he should be? | ||
| $1521 | BEQ $1528 | Branch if so. | ||
| $1523 | LDA #$02 | Lines reprimand $02: GET TO WHERE YOU SHOULD BE. | ||
| $1525 | JMP $1538 | Make any nearby teacher give lines to ERIC. | ||
| $1528 | LDA #$02 | Event $02: ERIC's lesson has started. | ||
| $152A | JSR $31D2 | Has the signal for this event been raised? | ||
| $152D | BCC $1505 | Branch if not. | ||
| $152F | LDA $14 | Pick up ERIC's posture indicator from $14. | ||
| $1531 | BNE $1536 | Branch if ERIC is standing up. | ||
| $1533 | JMP $15AC | Otherwise jump forward. | ||
| $1536 | LDA #$03 | Lines reprimand $03: NOW FIND A SEAT. | ||
| $1538 | STA $D8 | Store the lines reprimand identifier at $D8. | ||
| $153A | LDA $C6 | Pick up the lines giving delay counter from $C6. | ||
| $153C | CMP #$10 | Is the high nibble equal to 1? | ||
| $153E | BEQ $1548 | Branch if so. | ||
| $1540 | LDA $71 | Pick up the character number of the teacher who last gave ERIC lines from $71. | ||
| $1542 | JSR $0E5B | Check whether ERIC can be seen by any other teacher. | ||
| $1545 | JMP $154B | Jump forward. | ||
| $1548 | JSR $0E59 | Can ERIC be seen by a teacher? | ||
| $154B | BCS $1550 | Branch if so. | ||
| $154D | JMP $15AC | Otherwise jump forward. | ||
|
ERIC has been spotted by a teacher doing something he shouldn't be doing.
|
||||
| $1550 | STA $71 | Store the character number of the teacher who can see ERIC at $71. | ||
| $1552 | LDA #$A0 | Reset the high and low nibbles of the lines-giving delay counter at $C6 to 10 and 0 respectively. | ||
| $1554 | STA $C6 | |||
| $1556 | LDA $D8 | Pick up the lines reprimand identifier from $D8. | ||
| $1558 | CMP #$02 | Is it $02 (GET TO WHERE YOU SHOULD BE)? | ||
| $155A | BNE $159E | Branch if not. | ||
| $155C | LDA $70 | Pick up the current lesson descriptor from $70. | ||
| $155E | AND #$F0 | Keep only the teacher bits (4-7). | ||
| $1560 | TAY | Transfer them to Y. | ||
| $1561 | CPY #$00 | Is ERIC's teacher for this lesson MR WACKER? | ||
| $1563 | BNE $156A | Branch if not. | ||
| $1565 | LDA #$0B | $0B is MR WACKER's character number. | ||
| $1567 | JMP $1587 | Jump forward. | ||
| $156A | CPY #$10 | Is ERIC's teacher for this lesson MR ROCKITT? | ||
| $156C | BNE $1573 | Branch if not. | ||
| $156E | LDA #$0C | $0C is MR ROCKITT's character number. | ||
| $1570 | JMP $1587 | Jump forward. | ||
| $1573 | CPY #$20 | Is ERIC's teacher for this lesson MR WITHIT? | ||
| $1575 | BNE $157C | Branch if not. | ||
| $1577 | LDA #$0D | $0D is MR WITHIT's character number. | ||
| $1579 | JMP $1587 | Jump forward. | ||
| $157C | CPY #$30 | Is ERIC's teacher for this lesson MR CREAK? | ||
| $157E | BNE $1585 | Branch if not. | ||
| $1580 | LDA #$0E | $0E is MR CREAK's character number. | ||
| $1582 | JMP $1587 | Jump forward. | ||
| $1585 | LDA #$FF | Set A to $FF, indicating that ERIC has no teacher for this period. | ||
| $1587 | CMP $71 | Was ERIC seen by his teacher for this lesson? | ||
| $1589 | BNE $159E | Branch if not. | ||
|
The truant ERIC has been spotted by his teacher for this period.
|
||||
| $158B | LDA #$05 | Lines reprimand $05: COME ALONG WITH ME BOY. | ||
| $158D | STA $D8 | Store this lines reprimand identifier at $D8. | ||
| $158F | INC $C8 | Increment the identifier of the lines reprimand message at $C8 and pick up its new value. | ||
| $1591 | LDA $C8 | |||
| $1593 | CMP #$01 | Has the teacher just found ERIC? | ||
| $1595 | BEQ $159E | Branch if so. | ||
| $1597 | AND #$01 | Now A is either $06 (HURRY UP YOU HORROR) or $07 (DON'T TRY MY PATIENCE BOY). | ||
| $1599 | CLC | |||
| $159A | ADC #$06 | |||
| $159C | STA $D8 | Store this lines reprimand identifier at $D8. | ||
| $159E | LDA #$14 | Character number $14 is ERIC. | ||
| $15A0 | STA $72 | Store this lines recipient identifier at $72. | ||
| $15A2 | LDA $71 | Pick up the character number of the teacher who saw ERIC. | ||
| $15A4 | STA $60 | Update the current character number at $60. | ||
| $15A6 | JSR $3279 | Copy this teacher's buffer to page 0. | ||
| $15A9 | JSR $1DB7 | Make the teacher give lines to ERIC. | ||
| $15AC | PLA | Restore the current character number to $60. | ||
| $15AD | STA $60 | |||
| $15AF | JSR $3279 | Copy the current character's buffer to page 0. | ||
| $15B2 | RTS | |||
| Prev: $1468 | Up: Map | Next: $15B3 |