Prev: 06337 Up: Map Next: 06415
06369: THE 'PRINT THE CURSOR' SUBROUTINE
Used by the routines at ED_COPY and OUT_LINE.
A return is made if it is not the correct place to print the cursor but if it is then 'C', 'E', 'G', 'K' or 'L' will be printed.
Input
DE Address of the current position in the edit line or INPUT line
OUT_CURS 06369 LD HL,(23643) Fetch the address of the cursor (K-CUR) but return if the correct place is not being considered.
06372 AND A
06373 SBC HL,DE
06375 RET NZ
06376 LD A,(23617) The current value of MODE is fetched and doubled.
06379 RLC A
06381 JR Z,OUT_C_1 Jump forward unless dealing with Extended mode or Graphics.
06383 ADD A,67 Add the appropriate offset to give 'E' or 'G'.
06385 JR OUT_C_2 Jump forward to print it.
OUT_C_1 06387 LD HL,23611 This is FLAGS.
06390 RES 3,(HL) Signal 'K-mode'.
06392 LD A,"K" The character 'K'.
06394 BIT 2,(HL) Jump forward to print 'K' if 'the printing is to be in K-mode'.
06396 JR Z,OUT_C_2
06398 SET 3,(HL) The 'printing is to be in L-mode' so signal 'L-MODE'.
06400 INC A Form the character 'L'.
06401 BIT 3,(IY+48) Jump forward if not in 'C-mode' (bit 3 of FLAGS2 reset).
06405 JR Z,OUT_C_2
06407 LD A,"C" The character 'C'.
OUT_C_2 06409 PUSH DE Save the DE register pair whilst the cursor is printed - FLASHing.
06410 CALL OUT_FLASH
06413 POP DE
06414 RET Return once it has been done.
Note: it is the action of considering which cursor-letter is to be printed that determines the mode - 'K', 'L' or 'C'.
Prev: 06337 Up: Map Next: 06415