Key tracking
As a character is received from the attached device, either from the terminal
operator pressing keys at the keyboard or from a personal computer program
executing, it is placed in the port's receive queue.
It
has an accompanying status
that indicates if the character was correctly received or had a parity or framing error.
Also, if the device causes a Break condition to be detected by the 3708, a character is
placed in the queue with status indicating the Break. The 3708 then performs the
key tracking function, which interprets the character and its status to determine what
keyboard service to perform.
For each of the received characters, one of the following applies:
• If the character is associated with a Break, the 3708 causes an update to the
status line indicating an unsupported keystroke (X
? +),
and places the device in
a reset-required state. Remaining characters in the queue are discarded.
• If the character was received with incorrect framing or parity, the 3708 causes an
update to the status line indicating the error (X FRAME or X PARITY), and
places the device in a reset-required state. Remaining characters in the queue
are discarded.
• If the previous character processed caused the 3708 to access a function number
in the terminal table which had the high order bit set to I, the current character
is ignored.
• If the character (after the parity bit is removed) is an ASCII control character
(X'OO' to X'IF') and the previous character processed was not an ESC,
Alternate Control Sequence Character, or Intermediate Control Sequence
Character, the character itself is used as an index into the control code part of
the keyboard mapping definition section of the terminal table being used. The
I-byte function number found at that location in the table is then used to
determine the keyboard service to perform.
• If the character (after the parity bit is removed) is an ASCII character (X '00' to
X' 7F ') and the previous character processed was an ESC, Alternate Control
Sequence Character, or Intermediate Control Sequence Character, the character
itself is used as an index into the escape sequence part of the keyboard mapping
definition section of the terminal table being used. The I-byte function number
found at that location in the table is then used to determine the keyboard service
to perform.
• If the character (after the parity bit is removed) is an ESC or Alternate Control
Sequence Character, the 3708 remembers that the escape-sequence introducer
character has been received.
• If the character (after the parity bit is removed) is the Intermediate Control
Sequence Character, and the escape-sequence introducer character has been
received, (either an ESC or the Alternate Control Sequence Character), the 3708
ignores the Intermediate Control Sequence Character.
• If the character (after the parity bit is removed) is a left bracket (X' 5B'), and
the terminal table indicates that the terminal is ANSI compatible (the flags in
byte I of the table contain this indication) and the escape-sequence introducer
character has been received, (either an ESC or the ASCS), the 3708 ignores the
left bracket.
• If the character (after the parity bit is removed) is the DEL character (X' 7F'),
and an escape-sequence introducer character has not been received, the delete
function is performed.
Chapter 4. Protocol Conversion Mode
4-77