Routines |
Prev: 03503 | Up: Map | Next: 03582 |
The routine at CL_ALL continues here.
This subroutine is entered with the BC register pair holding the line and column numbers of a character area, or the C register holding the column number within the printer buffer. The appropriate address of the first character bit is then found. The subroutine returns via PO_STORE so as to store all the values in the required system variables.
|
||||||||||
CL_SET | 03545 | LD HL,23296 | The start of the printer buffer. | |||||||
03548 | BIT 1,(IY+1) | Jump forward if handling the printer buffer (bit 1 of FLAGS set). | ||||||||
03552 | JR NZ,CL_SET_2 | |||||||||
03554 | LD A,B | Transfer the line number. | ||||||||
03555 | BIT 0,(IY+2) | Jump forward if handling the main part of the display (bit 0 of TV-FLAG reset). | ||||||||
03559 | JR Z,CL_SET_1 | |||||||||
03561 | ADD A,(IY+49) | The top line of the lower part of the display is called 'line 24' and this has to be converted (see DF-SZ). | ||||||||
03564 | SUB 24 | |||||||||
CL_SET_1 | 03566 | PUSH BC | The line and column numbers are saved. | |||||||
03567 | LD B,A | The line number is moved. | ||||||||
03568 | CALL CL_ADDR | The address for the start of the line is formed in HL. | ||||||||
03571 | POP BC | The line and column numbers are fetched back. | ||||||||
CL_SET_2 | 03572 | LD A,33 | The column number is now reversed and transferred to the DE register pair. | |||||||
03574 | SUB C | |||||||||
03575 | LD E,A | |||||||||
03576 | LD D,0 | |||||||||
03578 | ADD HL,DE | The required address is now formed, and the address and the line and column numbers are stored by jumping to PO_STORE. | ||||||||
03579 | JP PO_STORE |
Prev: 03503 | Up: Map | Next: 03582 |