Prev: 10A8 Up: Map Next: 1190
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
Prev: 10A8 Up: Map Next: 1190