| Routines

0A23: THE 'CURSOR LEFT' SUBROUTINE

The address of this routine is derived from an offset found in the control character table.
Input
B | Current line number
C | Current column number
PO_BACK_1 | 0A23 | INC C | Move leftwards by one column.
| 0A24 | LD A,$22 | Accept the change unless up against the lefthand side.
| 0A26 | CP C
| 0A27 | JR NZ,PO_BACK_3
| 0A29 | BIT 1,(IY+$01) | If dealing with the printer (bit 1 of FLAGS set) jump forward.
| 0A2D | JR NZ,PO_BACK_2
| 0A2F | INC B | Go up one line.
| 0A30 | LD C,$02 | Set column value.
| 0A32 | LD A,$18 | Test against top line. Note: this ought to be +19.
| 0A34 | CP B
| 0A35 | JR NZ,PO_BACK_3 | Accept the change unless at the top of the screen.
| 0A37 | DEC B | Unacceptable so down a line.
PO_BACK_2 | 0A38 | LD C,$21 | Set to lefthand column.
PO_BACK_3 | 0A3A | JP CL_SET | Make an indirect return via CL_SET and PO_STORE.