| Routines

61C2: Scroll the screen left 8 columns

Used by the routines at 6E00 and F5BE.
61C2 | LD B,$08 | 8 columns will be scrolled on
61C4 | PUSH BC | Save the column counter
61C5 | LD HL,$5801 | First shift the attributes one place to the left
61C8 | LD DE,$5800
61CB | LD BC,$029F
61CE | LDIR
61D0 | CALL $F841 | Scroll the display file one character square to the left
61D3 | INC A | Adjust the leftmost column of the play area now on screen (held at 7FFF)
61D4 | LD ($7FFF),A
61D7 | LD HL,$141F | H=20 (bottom row of the screen), L=31 (column at the far right)
61DA | PUSH HL |
61DB | CALL $606C | Print the play area character square at row H, column L=31
61DE | POP HL |
61DF | DEC H | Next row up
61E0 | JP P,$61DA | Jump back until all 21 squares in the column have been printed
61E3 | POP BC | Restore the column counter to B
61E4 | DJNZ $61C4 | 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.
61E6 | LD A,($7FFF) | A=leftmost column of the play area on screen
61E9 | LD B,$05 | 5 little boys, starting with 0xC1=little boy no. 4
61EB | LD H,$C1
61ED | CP $78 | Is the skool gate in the middle of the screen?
61EF | JR Z,$622E | Jump if so (to consider teleporting little boys 4-8)
61F1 | CP $50 | Is the boys' skool door in the middle of the screen?
61F3 | RET NZ | Return if not
61F4 | LD H,$BE | 0xBE=little boy no. 1
61F6 | JR $622C | Consider teleporting little boys 1-3