| Routines

25026: Scroll the screen left 8 columns

Used by the routines at 28160 and 62910.
25026 | LD B,8 | 8 columns will be scrolled on
25028 | PUSH BC | Save the column counter
25029 | LD HL,22529 | First shift the attributes one place to the left
25032 | LD DE,22528
25035 | LD BC,671
25038 | LDIR
25040 | CALL 63553 | Scroll the display file one character square to the left
25043 | INC A | Adjust the leftmost column of the play area now on screen (held at 32767)
25044 | LD (32767),A
25047 | LD HL,5151 | H=20 (bottom row of the screen), L=31 (column at the far right)
25050 | PUSH HL |
25051 | CALL 24684 | Print the play area character square at row H, column L=31
25054 | POP HL |
25055 | DEC H | Next row up
25056 | JP P,25050 | Jump back until all 21 squares in the column have been printed
25059 | POP BC | Restore the column counter to B
25060 | DJNZ 25028 | Jump back until 8 columns have been scrolled on
The screen has been scrolled left 8 columns. Check whether any of the minor characters may be teleported without us noticing.
25062 | LD A,(32767) | A=leftmost column of the play area on screen
25065 | LD B,5 | 5 little boys, starting with 193=little boy no. 4
25067 | LD H,193
25069 | CP 120 | Is the skool gate in the middle of the screen?
25071 | JR Z,25134 | Jump if so (to consider teleporting little boys 4-8)
25073 | CP 80 | Is the boys' skool door in the middle of the screen?
25075 | RET NZ | Return if not
25076 | LD H,190 | 190=little boy no. 1
25078 | JR 25132 | Consider teleporting little boys 1-3