| Routines

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'.