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.
Input
Output
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