![]() |
Routines |
| Prev: $3072 | Up: Map | Next: $31B6 |
| $3113 | SEI | Disable interrupts. | ||
| $3114 | LDA $59 | Pick up the x-coordinate of the leftmost column of the skool off screen. | ||
| $3116 | CMP #$59 | Is it less than 89? | ||
| $3118 | BCC $311D | Branch if so. | ||
| $311A | JMP $31B4 | Otherwise return now. | ||
| $311D | LDA #$08 | Set the source colour information index at $54 to 8. | ||
| $311F | STA $54 | |||
| $3121 | LDA #$00 | Set the destination colour information index at $55 to 0. | ||
| $3123 | STA $55 | |||
| $3125 | LDA #$00 | Store $E000 at $5A. This screen bitmap address corresponds to the tile at the top left of the screen. | ||
| $3127 | STA $5A | |||
| $3129 | LDA #$E0 | |||
| $312B | STA $5B | |||
| $312D | LDA #$00 | Store $CC00 at $5C. This colour information address corresponds to the tile at the top left of the screen. | ||
| $312F | STA $5C | |||
| $3131 | LDA #$CC | |||
| $3133 | STA $5D | |||
| $3135 | LDX #$00 | Initialise the column counter in X. | ||
| $3137 | INX | Increment the column counter in X. | ||
| $3138 | TXA | Save the column counter on the stack temporarily. | ||
| $3139 | PHA | |||
| $313A | LDA $5A | Copy the screen bitmap address from $5A to $52. This will be the destination address. | ||
| $313C | STA $52 | |||
| $313E | LDA $5B | |||
| $3140 | STA $53 | |||
| $3142 | LDA $5C | Copy the colour information address from $5C to $50. This will be the source address. | ||
| $3144 | STA $50 | |||
| $3146 | LDA $5D | |||
| $3148 | STA $51 | |||
| $314A | LDA $52 | Copy the screen bitmap address from $52 to $4E. | ||
| $314C | STA $4E | |||
| $314E | LDA $53 | |||
| $3150 | STA $4F | |||
| $3152 | LDA $4E | Add 64 to the screen bitmap address at $4E. This corresponds to the tile that is 8 cells to the right in the same row, and will be the source address. | ||
| $3154 | CLC | |||
| $3155 | ADC #$40 | |||
| $3157 | BCC $315B | |||
| $3159 | INC $4F | |||
| $315B | STA $4E | |||
| $315D | JSR $2FB6 | Move a column of screen tiles left. | ||
| $3160 | LDA $5A | Add 8 to the destination screen bitmap address at $5A. This corresponds to the next tile to the right in the top row of the screen. | ||
| $3162 | CLC | |||
| $3163 | ADC #$08 | |||
| $3165 | BNE $3169 | |||
| $3167 | INC $5B | |||
| $3169 | STA $5A | |||
| $316B | INC $5C | Increment the colour information address at $5C. This corresponds to the next tile to the right in the top row of the screen. | ||
| $316D | PLA | Restore the column counter to X. | ||
| $316E | TAX | |||
| $316F | CPX #$20 | Have we moved 32 columns of screen tiles yet? | ||
| $3171 | BNE $3137 | Branch back if not. | ||
|
The 32 rightmost columns of the skool on screen have been shifted left. Time to draw the rightmost 8 columns of the skool.
|
||||
| $3173 | LDA #$00 | Store $E100 at $5A. This screen bitmap address corresponds to the 33rd tile from the left in the top row. | ||
| $3175 | STA $5A | |||
| $3177 | LDA #$E1 | |||
| $3179 | STA $5B | |||
| $317B | LDA #$20 | Store $CC20 at $5C. This colour information address corresponds to the 33rd tile from the left in the top row. | ||
| $317D | STA $5C | |||
| $317F | NOP | |||
| $3180 | JSR $98E8 | Move sprites #0-#6 left by 64 pixels. | ||
| $3183 | LDX #$08 | There are 8 new play area columns to draw in the gap left by the shifting window. | ||
| $3185 | TXA | Save this column counter temporarily. | ||
| $3186 | PHA | |||
| $3187 | INC $58 | Increment the x-coordinates of the leftmost column of the skool on screen and off. | ||
| $3189 | INC $59 | |||
| $318B | LDY $59 | Pick up the x-coordinate of the leftmost column of the skool off screen. | ||
| $318D | DEY | Now Y holds the x-coordinate of the rightmost column of the skool on screen. | ||
| $318E | LDA $5A | Save the screen bitmap address on the stack. | ||
| $3190 | PHA | |||
| $3191 | LDA $5B | |||
| $3193 | PHA | |||
| $3194 | LDA $5C | Save the colour information address on the stack. | ||
| $3196 | PHA | |||
| $3197 | LDA $5D | |||
| $3199 | PHA | |||
| $319A | JSR $2F8C | Print the play area tiles in a single column of the screen. | ||
| $319D | PLA | Restore the saved colour information address to $5C. | ||
| $319E | STA $5D | |||
| $31A0 | PLA | |||
| $31A1 | STA $5C | |||
| $31A3 | PLA | Restore the saved screen bitmap address to $5A and add 8 to it. This points at the next tile to the right in the top row of the screen. | ||
| $31A4 | STA $5B | |||
| $31A6 | PLA | |||
| $31A7 | DEX | |||
| $31A8 | CLC | |||
| $31A9 | ADC #$08 | |||
| $31AB | STA $5A | |||
| $31AD | INC $5C | Add 1 to the colour information address at $5C. This points at the next tile to the right in the top row of the screen. | ||
| $31AF | PLA | Restore the column counter to X. | ||
| $31B0 | TAX | |||
| $31B1 | DEX | Decrement the column counter. | ||
| $31B2 | BNE $3185 | Branch back to deal with the remaining columns. | ||
| $31B4 | CLI | Re-enable interrupts. | ||
| $31B5 | RTS | |||
| Prev: $3072 | Up: Map | Next: $31B6 |