Copyright Digital Equipment Corp. All rights reserved.

XABTRM

   The terminal XAB (XABTRM) allows extended terminal read
   operations to occur when a Get service is used for a terminal
   device. Unlike most other XABs, the XABTRM is associated with
   a RAB (record stream). The XABTRM provides information that the
   terminal driver uses to process a user-defined item list that
   defines the terminal read operation.

   The following table lists the symbolic offset, the size in bytes,
   and a brief description of each field.

   Offset           Size    Description

   XAB$B_BLN        1       Block length
   XAB$B_COD        1       Type code
   XAB$L_ITMLST     4       Item list address
   XAB$W_ITMLST_    2       Item list length
   LEN
   XAB$L_NXT        4       Next XAB address

   To perform the extended terminal read operation, the following
   information is required:

   o  In the RAB, the RAB$L_ROP field RAB$V_ETO option must be
      specified (set).

   o  In the RAB, the RAB$L_XAB field must contain the address of
      the XABTRM.

   o  In the XABTRM, the XAB$L_ITMLST and XAB$W_ITMLST_LEN fields
      must contain the starting address and length of a valid
      terminal driver read function item list.

   o  The item list must be supplied according to the conventions
      described for creating an item list for the terminal driver in
      the OpenVMS I/O User's Reference Manual.

   An item list consists of one or more item list entries, where
   each item defines an attribute of the terminal read operation.
   Instead of defining terminal read arguments in the RAB, all such
   arguments (including certain arguments only available with the
   item list method) are defined in the item list. The following
   list shows the RAB$L_ROP options related to a terminal read
   operation and the equivalent item codes:

   Option        Item Code

   RAB$V_CVT     TRM$_MODIFIERS, bit TRM$M_TM_CVTLOW
   RAB$V_PMT     TRM$_PROMPT
   RAB$V_PTA     TRM$_MODIFIERS, bit TRM$M_TM_PURGE
   RAB$V_RNE     TRM$_MODIFIERS, bit TRM$M_TM_NOECHO
   RAB$V_RNF     TRM$_MODIFIERS, bit TRM$M_TM_NOFILTR
   RAB$V_TMO     TRM$_TIMEOUT