3. DISPLAY-MODE CHANNELS. ^P-CODES. It would be impossible to output a display command using a channel which simply printed any character sent out on it. If it is desired to make use of display commands, a channel may be opened in display mode. That causes the character "^P" to be an escape character when output on that channel. When a "^P" is output on a display-mode channel, it has no effect except for setting bits causing the next character output on that channel to be interpreted as a display code. The display codes are: A Advance to a fresh line. If at beginning of line do nothing, else act like a CRLF. B move Backward. Decrements the horizontal position. If the horizontal position is 0, it is set to the horizontal screen size minus two, and the vertical position is decreased by one. Thus, it moves back over one character position even if there was a line continuation in the way. C Clear screen. The cursor goes to the upper left corner and the whole screen is cleared. On a printing tty (%TOMVU is 0) a CRLF is output, since "clearing the screen" is undefined. If "^PC" is output to the echo area, only the echo area is cleared, and only the echo area cursor is moved. D move Down. The vertical position is incremented. If it becomes equal to the vertical screen size, it is set to 0. E clear to Eof. The remainder of the current line, and all lower lines, are erased. The cursor doesn't move. F move Forward. The horizontal position is incremented. At the end of the line it wraps around to the beginning of the same line. H set Horizontal position. Takes one argument: the following character should be the desired horizontal position setting plus 8. The vertical position is not changed. An attempt to set the position beyond a margin will position it at the margin. K Kill (erase) the character the cursor points at. The cursor does not move. The position erased is the one that would be written in next by ordinary output. L clear Line. The current line, starting with the position that the cursor points at, is erased. The cursor does not move. M (More) hang up until a character is read in. See F.3. N (No home-up) similar, but don't home up after the character is read. P output "^P". Useful if it is desired to output "^P" in image mode with a display-mode channel, or if the terminal handles the SAIL character set. Q output "^C". Similar to "^PP". This is needed only for block mode IOT's. With SIOT, it is not needed since "^C" isn't special. R Restore cursor position. The cursor is set to the most recently saved value. S Save cursor position. Remembers the current cursor position for use with "^PR". There is no stack for saved cursor positions; only the most recent saved position is remembered. T go to Top of screen (home up). The cursor is positioned at the upper left corner of the screen. U move Up. The vertical position is decremented. If it was 0, it becomes equal to the vertical size minus one. V set Vertical position. Takes the following character as an argument - it should be 8 plus the desired vertical position. An attempt to set the cursor beyond the top or bottom margin will position it as far as allowed in the desired direction. Similarly, "^PV" will not move the echo area cursor outside the echo area. Note that vertical positions in the echo area are to be specified relative to the top of the echo area. X backspace and erase one character ("^PB" followed by "^PK"). If done at column zero, it clears the last TWO characters on the previous line (assuming that one of them was the character you intended to erase, and the other was an "!" indicating a continuation). Z home down. The cursor is positioned at the lower left corner. [ insert line. The current line and all lines below it are pushed down one slot. A blank line appears at the current position. The cursor does not move. Works only on terminals which have %TOLID set (^P\ also). \ delete line. The current line disappears, and all teh lines below it move up by one position. The bottom line becomes blank. The cursor does not move. ] obsolete - same as "^PL". ^ insert character. All the characters after the cursor move right one position. The last one moves off the right margin and disappears. A space appears at the cursor, which does not move. Works only on terminals which have %TOCID set. _ delete character. The character at the cursor disappears, and all the rest of the characters on the line move left one position. A space appears at the end of the line. The cursor does not move.