|  | Routines | 
| Prev: $1DB6 | Up: Map | Next: $1EC2 | 
| 
This corresponds to $7700 in the ZX Spectrum version.
 
 | ||||||||||
| $1DB7 | LDA $D015 | Pick up the current value of the sprite enable register and store a copy at $F6. | ||||||||
| $1DBA | STA $F6 | |||||||||
| $1DBC | BEQ $1DC1 | Branch if no sprites are enabled at the moment. | ||||||||
| $1DBE | JSR $38AC | Back up existing sprite information. | ||||||||
| $1DC1 | LDA #$46 | Store the address of the first line of the lines message ($46C0) at $86. | ||||||||
| $1DC3 | STA $87 | |||||||||
| $1DC5 | LDA #$C0 | |||||||||
| $1DC7 | STA $86 | |||||||||
| $1DC9 | LDA #$46 | Store the address $46D0 (where the message number of the lines recipient's name will be placed) at $88. | ||||||||
| $1DCB | STA $89 | |||||||||
| $1DCD | LDA #$D0 | |||||||||
| $1DCF | STA $88 | |||||||||
| $1DD1 | LDA $72 | Pick up the character number of the lines recipient from $72. | ||||||||
| $1DD3 | CMP #$14 | Is ERIC the lines recipient? | ||||||||
| $1DD5 | BNE $1DDC | Branch if not. | ||||||||
| $1DD7 | LDA #$03 | The background colour of the lines message box for ERIC is cyan. | ||||||||
| $1DD9 | JMP $1DE7 | Jump forward. | ||||||||
| $1DDC | CMP #$10 | Is BOY WONDER the lines recipient? | ||||||||
| $1DDE | BNE $1DE5 | Branch if not. | ||||||||
| $1DE0 | LDA #$05 | The background colour of the lines message box for BOY WONDER is green. | ||||||||
| $1DE2 | JMP $1DE7 | Jump forward. | ||||||||
| $1DE5 | LDA #$07 | The background colour of the lines message box for ANGELFACE and EINSTEIN is yellow. | ||||||||
| $1DE7 | STA $84 | Store the lines message box colour information at $84. | ||||||||
| $1DE9 | LDA $D41B | Generate a random value between 0 and 15. | ||||||||
| $1DEC | AND #$0F | |||||||||
| $1DEE | CLC | Add 3 to get 3-18 and store the result at $57. | ||||||||
| $1DEF | ADC #$03 | |||||||||
| $1DF1 | STA $57 | |||||||||
| $1DF3 | ASL A | Now multiply by 5 and store the result at $85. This will be the number of lines to give (divided by 10): 15, 20, 25...80, 85 or 90. | ||||||||
| $1DF4 | ASL A | |||||||||
| $1DF5 | CLC | |||||||||
| $1DF6 | ADC $57 | |||||||||
| $1DF8 | STA $85 | |||||||||
| $1DFA | LDA $72 | Pick up the character number of the lines recipient from $72. | ||||||||
| $1DFC | CMP #$14 | Is ERIC the lines recipient? | ||||||||
| $1DFE | BNE $1E05 | Branch if not. | ||||||||
| $1E00 | LDA #$10 | Message number $10: ERIC. | ||||||||
| $1E02 | JMP $1E19 | Jump forward. | ||||||||
| $1E05 | CMP #$11 | Is EINSTEIN the lines recipient? | ||||||||
| $1E07 | BNE $1E0E | Branch if not. | ||||||||
| $1E09 | LDA #$13 | Message number $13: EINSTEIN. | ||||||||
| $1E0B | JMP $1E19 | Jump forward. | ||||||||
| $1E0E | CMP #$10 | Is BOY WONDER the lines recipient? | ||||||||
| $1E10 | BNE $1E17 | Branch if not. | ||||||||
| $1E12 | LDA #$11 | Message number $11: BOY WONDER. | ||||||||
| $1E14 | JMP $1E19 | Jump forward. | ||||||||
| $1E17 | LDA #$12 | Message number $12: ANGELFACE. | ||||||||
| $1E19 | STA $D0 | Store the message number of the lines recipient's name at $D0, where it will never be used. | ||||||||
| $1E1B | LDY #$00 | Place the message number of the lines recipient's name at $46D0. | ||||||||
| $1E1D | STA ($88),Y | |||||||||
| $1E1F | LDA $85 | Copy the number of lines to give (divided by 10) from $85 to $A3. | ||||||||
| $1E21 | STA $A3 | |||||||||
| $1E23 | JSR $221C | Generate the character codes of the first two digits of the lines amount. | ||||||||
| $1E26 | LDY #$00 | Copy the character codes of the first two digits of the lines amount to $46C0. | ||||||||
| $1E28 | LDA $8D | |||||||||
| $1E2A | STA ($86),Y | |||||||||
| $1E2C | INY | |||||||||
| $1E2D | LDA $8E | |||||||||
| $1E2F | STA ($86),Y | |||||||||
| $1E31 | LDA $72 | Pick up the character number of the lines recipient from $72. | ||||||||
| $1E33 | CMP #$10 | Is BOY WONDER the lines recipient? | ||||||||
| $1E35 | BEQ $1E48 | Branch if so. | ||||||||
| $1E37 | CMP #$14 | Is ERIC the lines recipient? | ||||||||
| $1E39 | BEQ $1E43 | Branch if so. | ||||||||
| $1E3B | LDA $85 | Pick up the number of lines to give from $85. | ||||||||
| $1E3D | JSR $1D37 | Add this value to the score and print it. | ||||||||
| $1E40 | JMP $1E48 | Jump forward. | ||||||||
| $1E43 | LDA $85 | Pick up the number of lines to give from $85. | ||||||||
| $1E45 | JSR $1D4A | Add them to ERIC's lines total. | ||||||||
| $1E48 | LDA #$00 | Set voice #1 attack length to 2ms and and decay length to 6ms. | ||||||||
| $1E4A | STA $D405 | |||||||||
| $1E4D | STA $D400 | Set the LSB of voice #1's frequency to 0. | ||||||||
| $1E50 | LDA #$F8 | Set voice #1 sustain volume to $0F and release length to 300ms. | ||||||||
| $1E52 | STA $D406 | |||||||||
| $1E55 | LDA #$31 | Set voice #1 frequency to $3100. | ||||||||
| $1E57 | STA $D401 | |||||||||
| $1E5A | LDA #$21 | Set voice #1 control register: voice on, attack-decay-sustain cycle; saw waveform enabled. | ||||||||
| $1E5C | STA $D404 | |||||||||
| $1E5F | JSR $2043 | Print the lines message above the teacher's head. | ||||||||
| $1E62 | LDA #$49 | Change the address at $86 to $4980 (the address of the first line of the first lines reprimand message) and the address at $88 to $4990 (the address of the second line of the first lines reprimand message. | ||||||||
| $1E64 | STA $87 | |||||||||
| $1E66 | STA $89 | |||||||||
| $1E68 | LDA #$80 | |||||||||
| $1E6A | STA $86 | |||||||||
| $1E6C | LDA #$90 | |||||||||
| $1E6E | STA $88 | |||||||||
| $1E70 | LDA $D8 | Pick up the lines reprimand identifier from $D8. | ||||||||
| $1E72 | AND #$0C | Add 0, 1, 2 or 3 to the MSBs of the lines reprimand message addresses at $86 and $88 depending on whether bits 3 and 2 of A are 00, 01, 10 or 11. | ||||||||
| $1E74 | ASL A | |||||||||
| $1E75 | ASL A | |||||||||
| $1E76 | ASL A | |||||||||
| $1E77 | ASL A | |||||||||
| $1E78 | ASL A | |||||||||
| $1E79 | BCC $1E83 | |||||||||
| $1E7B | INC $87 | |||||||||
| $1E7D | INC $87 | |||||||||
| $1E7F | INC $89 | |||||||||
| $1E81 | INC $89 | |||||||||
| $1E83 | ASL A | |||||||||
| $1E84 | BCC $1E8A | |||||||||
| $1E86 | INC $87 | |||||||||
| $1E88 | INC $89 | |||||||||
| $1E8A | LDA $D8 | Pick up the lines reprimand identifier from $D8. | ||||||||
| $1E8C | LSR A | Add $00, $20, $40 or $60 to the LSBs of the lines reprimand message addresses at $86 and $88 depending on whether bits 1 and 0 of A are 00, 01, 10 or 11. | ||||||||
| $1E8D | LSR A | |||||||||
| $1E8E | BCC $1E9C | |||||||||
| $1E90 | LDA #$40 | |||||||||
| $1E92 | CLC | |||||||||
| $1E93 | ADC $86 | |||||||||
| $1E95 | STA $86 | |||||||||
| $1E97 | CLC | |||||||||
| $1E98 | ADC #$10 | |||||||||
| $1E9A | STA $88 | |||||||||
| $1E9C | LDA $D8 | |||||||||
| $1E9E | LSR A | |||||||||
| $1E9F | BCC $1EAD | |||||||||
| $1EA1 | LDA #$20 | |||||||||
| $1EA3 | CLC | |||||||||
| $1EA4 | ADC $86 | |||||||||
| $1EA6 | STA $86 | |||||||||
| $1EA8 | CLC | |||||||||
| $1EA9 | ADC #$10 | |||||||||
| $1EAB | STA $88 | |||||||||
| $1EAD | LDA #$29 | Set voice #1 frequency to $2900. | ||||||||
| $1EAF | STA $D401 | |||||||||
| $1EB2 | JSR $2043 | Print the lines reprimand message above the teacher's head. | ||||||||
| $1EB5 | LDA #$20 | Set voice #1 control register: voice off, release cycle; saw waveform enabled. | ||||||||
| $1EB7 | STA $D404 | |||||||||
| $1EBA | LDA $F6 | Were any sprites enabled before this routine was called? | ||||||||
| $1EBC | BEQ $1EC1 | Return if not. | ||||||||
| $1EBE | JSR $38EF | Otherwise restore the previous sprite information. | ||||||||
| $1EC1 | RTS | |||||||||
| Prev: $1DB6 | Up: Map | Next: $1EC2 |