| Routines

111D: THE 'LOWER SCREEN COPYING' SUBROUTINE

Used by the routines at KEY_INPUT and INPUT. This subroutine is called whenever the line in the editing area or the INPUT area is to be printed in the lower part of the screen.
ED_COPY | 111D | CALL TEMPS | Use the permanent colours.
| 1120 | RES 3,(IY+$02) | Signal that the 'mode is to be considered unchanged' (reset bit 3 of TV-FLAG) and the 'lower screen does not need clearing' (reset bit 5).
| 1124 | RES 5,(IY+$02)
| 1128 | LD HL,($5C8A) | Save the current value of S-POSNL.
| 112B | PUSH HL
| 112C | LD HL,($5C3D) | Keep the current value of ERR-SP.
| 112F | PUSH HL
| 1130 | LD HL,$1167 | This is ED_FULL.
| 1133 | PUSH HL | Push this address on to the machine stack to make ED_FULL the entry point following an error (see ERR-SP).
| 1134 | LD ($5C3D),SP
| 1138 | LD HL,($5C82) | Push the value of ECHO-E on to the stack.
| 113B | PUSH HL
| 113C | SCF | Make HL point to the start of the space and DE the end.
| 113D | CALL SET_DE
| 1140 | EX DE,HL
| 1141 | CALL OUT_LINE2 | Now print the line.
| 1144 | EX DE,HL | Exchange the pointers and print the cursor.
| 1145 | CALL OUT_CURS
| 1148 | LD HL,($5C8A) | Next fetch the current value of S-POSNL and exchange it with ECHO-E.
| 114B | EX (SP),HL
| 114C | EX DE,HL | Pass ECHO-E to DE.
| 114D | CALL TEMPS | Again fetch the permanent colours.
The remainder of any line that has been started is now completed with spaces printed with the 'permanent' PAPER colour.
ED_BLANK | 1150 | LD A,($5C8B) | Fetch the current line number from S-POSNL and subtract the old line number.
| 1153 | SUB D
| 1154 | JR C,ED_C_DONE | Jump forward if no 'blanking' of lines required.
| 1156 | JR NZ,ED_SPACES | Jump forward if not on the same line.
| 1158 | LD A,E | Fetch the old column number and subtract the new column number (at S-POSNL).
| 1159 | SUB (IY+$50)
| 115C | JR NC,ED_C_DONE | Jump if no spaces required.
ED_SPACES | 115E | LD A," " | A 'space'.
| 1160 | PUSH DE | Save the old values.
| 1161 | CALL PRINT_OUT | Print it.
| 1164 | POP DE | Fetch the old values.
| 1165 | JR ED_BLANK | Back again.
New deal with any errors.
ED_FULL | 1167 | LD D,$00 | Give out a 'rasp' (see RASP).
| 1169 | LD E,(IY-$02)
| 116C | LD HL,$1A90
| 116F | CALL BEEPER
| 1172 | LD (IY+$00),$FF | Cancel the error number (ERR-NR).
| 1176 | LD DE,($5C8A) | Fetch the current value of S-POSNL and jump forward.
| 117A | JR ED_C_END
The normal exit upon completion of the copying over of the edit or the INPUT line.
ED_C_DONE | 117C | POP DE | The new position value.
| 117D | POP HL | The 'error address'.
But come here after an error.
ED_C_END | 117E | POP HL | The old value of ERR-SP is restored.
| 117F | LD ($5C3D),HL
| 1182 | POP BC | Fetch the old value of S-POSNL.
| 1183 | PUSH DE | Save the new position values.
| 1184 | CALL CL_SET | Set the system variables.
| 1187 | POP HL | The old value of S-POSNL goes into ECHO-E.
| 1188 | LD ($5C82),HL
| 118B | LD (IY+$26),$00 | X-PTR is cleared in a suitable manner and the return made.
| 118F | RET