home *** CD-ROM | disk | FTP | other *** search
/ Handbook of Infosec Terms 2.0 / Handbook_of_Infosec_Terms_Version_2.0_ISSO.iso / text / rfcs / rfc1043.txt < prev    next >
Text File  |  1996-05-07  |  59KB  |  754 lines

  1. Network Working Group                                          A. Yasuda Request for Comments: 1043                                   T. Thompson                                              Defense Intelligence Agency Updates: RFC 732                                           February 1988 
  2.  
  3.                     TELNET Data Entry Terminal Option                          DODIIS Implementation 
  4.  
  5. Status of this Memo 
  6.  
  7.    This RFC suggests a proposed protocol on the TELNET Data Entry    Terminal (DET) Option - DODIIS Implementation for the Internet    community.  It is intended that this specification be compatible with    the specification of DET Option in RFC-732.  Discussion and    suggestions for improvements are encouraged.  Distribution of this    memo is unlimited. 
  8.  
  9. Introduction 
  10.  
  11.    In the early 1980s, the Defense Intelligence Agency (DIA) undertook    the tasks of developing a TELNET capability to access full screen    applications across a packet switching network.  This effort was    successful by implementing Data Entry Terminal (DET) options within    the TELNET protocol based on RFC 732.  These DET options have been    implemented on IAS, MVS, OS86 and UNIX operating systems.  DET    options are being developed for VM and VMS operating systems. 
  12.  
  13.    The Department of Defense Intelligence Information System (DODIIS) is    a confederation of heterogeneous computer systems and remote    terminals utilizing the Defense Data Network (DDN) as the    communications backbone (namely the SCINET/DSNET-3). 
  14.  
  15.    Although the reason for implementing a DET option specification was    based upon data base application interfaces, the use of a full screen    TELNET provides a method to achieve higher efficiency on the network.    Most terminal to host applications on the ARPANET are character echo    TELNETs.  This is both costly in time and network utilization, since    one character pressed on the keyboard generates a datagram composed    of TCP/IP headers plus the character sent to the host and the host    echoes back a similar datagram.  In the DODIIS community, programmers    are highly encouraged to implement full screen applications; line at    a time is acceptable; and character remote echo mode is discouraged. 
  16.  
  17.    This RFC in its final form will be implemented on SCINET.  During the    interim period, the "DODIIS TELNET Network Virtual Data Entry    Terminal (NVDET) Option Specification", DIA, April 1983, will be    implemented. 
  18.  
  19.  
  20.  
  21. Yasuda & Thompson                                               [Page 1] 
  22.  RFC 1043              Data Entry Terminal - DODIIS         February 1988 
  23.  
  24.                               TABLE OF CONTENTS                                                                 Page No.                                                                 -------- 
  25.  
  26.    SECTION 1   COMMAND NAME AND OPTION CODE                          4 
  27.  
  28.    SECTION 2   COMMAND MEANINGS                                      4                  Facilities Subcommands                              4                  Edit Subcommands                                    8                  Transmit Subcommands                                8                  Erase Subcommands                                  10                  Format Subcommands                                 10                  Miscellaneous Subcommands                          13 
  29.  
  30.    SECTION 3   DEFAULT AND MINIMAL IMPLEMENTATION                   15 
  31.  
  32.    SECTION 4   MOTIVATION FOR THE OPTION                            17 
  33.  
  34.    SECTION 5   DESCRIPTION AND IMPLEMENTATION RULES                 17                  The DODIIS DET Model                               17                  Negotiating the DET Option                         18                  DET Facilities Negotiation                         18                  General DET Interaction                            19                  Form Construction                                  20                  Form response                                      21                  Function Keys                                      22                  Field Selection                                    22                  Out-Of-Context Data                                23                  Line Discipline                                    23                  Standard TELNET Control Functions                  24                  Other Implementation Notes                         24 
  35.  
  36.    APPENDIX 1  DET OPCODES AND SUBCOMMAND SYNTAX                    25 
  37.  
  38.    APPENDIX 2  DET ERROR CODES                                      26 
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  Yasuda & Thompson                                               [Page 2] 
  55.  RFC 1043              Data Entry Terminal - DODIIS         February 1988 
  56.  
  57.     The convention in the documentation of the TELNET NVDET Protocol is    to express numbers in decimal.  Data fields are described left to    right, with the most significant octet on the left and the least    significant octet on the right. 
  58.  
  59.    The order of transmission of the data described in this document is    resolved to the octet level.  Whenever a diagram shows a group of    octets, the order of transmission of those octets is the normal order    in which they are read in English.  For example, in the following    diagram the octets are transmitted in the order they are numbered. 
  60.  
  61.        0                   1                   2                   3        0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+       |       1       |       2       |       3       |       4       |       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+       |       5       |       6       |       7       |       8       |       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+       |       9       |      10       |      11       |      12       |       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
  62.  
  63.                         Transmission Order of Bytes 
  64.  
  65.    Whenever an octet represents a numeric quantity, the left most bit in    the diagram is the high order or most significant bit.  That is, the    bit labeled 0 is the most significant bit.  For example, the    following diagram represents the value 170 (decimal). 
  66.  
  67.                               0 1 2 3 4 5 6 7                              +-+-+-+-+-+-+-+-+                              |1 0 1 0 1 0 1 0|                              +-+-+-+-+-+-+-+-+ 
  68.  
  69.                            Significance of Bits 
  70.  
  71.    Similarly, whenever a multi-octet field represents a numeric    quantity, the left most bit of the whole field is the most    significant bit.  When a multi-octet quantity is transmitted the most    significant octet is transmitted first. 
  72.  
  73.  
  74.  
  75.  
  76.  
  77.  
  78.  
  79.  
  80.  
  81.  
  82.  
  83.  Yasuda & Thompson                                               [Page 3] 
  84.  RFC 1043              Data Entry Terminal - DODIIS         February 1988 
  85.  
  86.     1. Command Name and Option Code 
  87.  
  88.       DET         20 
  89.  
  90.    2. Command Meanings 
  91.  
  92.       IAC WILL DET 
  93.  
  94.          The sender of this command REQUESTS permission to begin, or          AGREES that it will begin, sending and receiving Data Entry          Terminal (DET) subcommands to control session interactions. 
  95.  
  96.       IAC WONT DET 
  97.  
  98.          If the connection is already operating in DET mode, the sender          of this command DEMANDS that the connection stop operating in          DET mode and begin operating in TELNET NVT mode.  If the          connection is not operating in DET mode, the sender REFUSES to          begin operating in DET mode.  A connection is operating in          TELNET NVT mode when both parties are interpreting data as          described by the TELNET SPECIFICATION, MIL-STD-1782. 
  99.  
  100.       IAC DO DET 
  101.  
  102.          The sender of this command REQUESTS permission to begin, or          AGREES that it will begin, sending and receiving Data Entry          Terminal (DET) subcommands to control session interactions. 
  103.  
  104.       IAC DONT DET 
  105.  
  106.          If the connection is already operating in DET mode, the sender          of this command DEMANDS that the connection stop operating in          DET mode and begin operating in TELNET NVT mode.  If the          connection is not operating in DET mode, the sender REFUSES  to          begin  operating in DET mode.    A connection is operating in          TELNET NVT mode when both parties are interpreting data as          described by the TELNET SPECIFICATION, MIL-STD-1782. 
  107.  
  108.       DODIIS implementations of the DET option use the subcommands       described in the remainder of Section 2.  A description of the       DODIIS DET model and DET subcommand usage is contained in Section       5. 
  109.  
  110.    FACILITIES SUBCOMMANDS.  Facilities subcommands are used to negotiate    DET facilities (subcommands and attributes).  The facility    subcommands indicate the DET facilities the sender supports.    Facility negotiation may be viewed as the terminal indicating the    facilities it provides and the application indicating the facilities 
  111.  
  112.  
  113.  
  114. Yasuda & Thompson                                               [Page 4] 
  115.  RFC 1043              Data Entry Terminal - DODIIS         February 1988 
  116.  
  117.     it desires.  The bits of the facility maps are numbered from the    right starting at zero.  Thus, if bit 2 is set, the field will have a    decimal value of 4. 
  118.  
  119.       IAC SB DET EDIT-FACILITIES <facility map> IAC SE 
  120.  
  121.          subcommand code:  1 
  122.  
  123.          This subcommand indicates the edit facilities the sender          supports.  The <facility map> parameter is one eight bit byte          containing the following flags: 
  124.  
  125.              Bits 5-7        Reserved              Bit  4          Read Cursor              Bits 0-3        Reserved 
  126.  
  127.          where: 
  128.  
  129.              If the Read-Cursor bit is set, the sender supports the              READ-CURSOR and CURSOR-POSITION subcommands. 
  130.  
  131.              Reserved bits represent edit facilities that are not              defined for DODIIS implementations;  therefore, no              descriptions are provided.  Reserved bits must be zeroed              to indicate non support of the associated edit facilities. 
  132.  
  133.       IAC SB DET ERASE-FACILITIES <facility map> IAC SE 
  134.  
  135.          subcommand code:  2 
  136.  
  137.          This subcommand indicates the erase facilities the sender          supports.  The <facility map> parameter is one eight bit          byte containing flags.  Since no erase facilities are          defined for DODIIS implementations, no descriptions are          provided.  The ERASE-FACILITIES subcommand is part of the          minimal DET implementation and is included for that reason.          DODISI implementors must declare non support of erase          facilities by sending this subcommand with a zeroed facility          map. 
  138.  
  139.       IAC SB DET TRANSMIT-FACILITIES <facility map> IAC SE 
  140.  
  141.          subcommand code:  3 
  142.  
  143.          This subcommand indicates the transmit facilities the sender          supports.  The <facility map> parameter is one eight bit byte          containing the following flags: 
  144.  
  145.  
  146.  
  147.  Yasuda & Thompson                                               [Page 5] 
  148.  RFC 1043              Data Entry Terminal - DODIIS         February 1988 
  149.  
  150.               Bits 6-7        Reserved              Bit  5          Data Transmit              Bits 0-4        Reserved 
  151.  
  152.          where: 
  153.  
  154.              If the Data-Transmit bit is set, the sender supports the              DATA-TRANSMIT subcommand. 
  155.  
  156.              Reserved bits represent transmit facilities that are not              defined for DODIIS implementations; therefore, no              descriptions are provided.  Reserved bits must be zeroed              to indicate non support of the associated transmit              facilities. 
  157.  
  158.       IAC SB DET FORMAT-FACILITIES <facility map> IAC SE 
  159.  
  160.          subcommand code:  4 
  161.  
  162.          This subcommand indicates the format facilities the sender          supports.  The <facility map> parameter is two eight bit bytes          containing the following: 
  163.  
  164.              Byte 0                 Bit  7       Function Key                 Bit  6       Modified                 Bit  5       Field Selection                 Bit  4       Repeat                 Bit  3       Blinking                 Bit  2       Reverse Video                 Bit  1       Right Justification                 Bit  0       Reserved 
  165.  
  166.              Byte 1                 Bit  7       Reserved for color                 Bit  6       Reserved                 Bit  5       Protection                 Bit  4       Alphabetic-Only                 Bit  3       Numeric-Only                 Bits 0-2     Intensity 
  167.  
  168.              where: 
  169.  
  170.                 If the Function-Key bit is set, the sender supports the                 FUNCTION-KEY and ENABLE-FUNCTION-KEY subcommands. 
  171.  
  172.                 If the Modified bit is set, the sender supports the                 FORMAT-DATA subcommand's Modified attribute and the 
  173.  
  174.  
  175.  
  176. Yasuda & Thompson                                               [Page 6] 
  177.  RFC 1043              Data Entry Terminal - DODIIS         February 1988 
  178.  
  179.                  TRANSMIT-MODIFIED subcommand. 
  180.  
  181.                 If the Field-Selection bit is set, the sender supports                 the FORMAT-DATA subcommand's Selectable attribute and                 the SELECTED-FIELD subcommand. 
  182.  
  183.                 If the Repeat bit is set the sender supports the REPEAT                 subcommand. 
  184.  
  185.                 If the Blinking bit is set, the sender requests or                 provides the ability to emphasize a string of characters                 by causing them to blink when displayed.  (See the                 FORMAT-DATA subcommand.) 
  186.  
  187.                 If the Reverse-Video bit is set, the sender requests or                 provides the ability to emphasize a string of characters                 by "reversing their video image".  If characters are                 normally displayed as dark characters on a light                 background, they are reversed and displayed as light                 characters on a dark background, or                 vice versa.  (See the FORMAT-DATA subcommand.) 
  188.  
  189.                 If the Right-Justification bit is set, the sender                 requests or provides the ability to cause data entered                 in a field to be right justified within the field.  (See                 the FORMAT-DATA subcommand.) 
  190.  
  191.                 If the Protection bit is set, the sender requests or                 provides the ability to protect certain fields displayed                 on the DET screen from being altered by the user and                 supports the ERASE-UNPROTECTED, FIELD-SEPARATOR, and                 TRANSMIT-UNPROTECTED subcommands.  (See the FORMAT-DATA                 subcommand.) 
  192.  
  193.                 If the Alphabetic-Only bit is set, the sender requests                 or provides the ability to constrain the user of the DET                 such that only alphabetic data may be entered into                 certain fields.  (See the FORMAT-DATA subcommand.) 
  194.  
  195.                 If the Numeric-Only bit is set, the sender requests or                 provides the ability to constrain the user of the DET                 such that only numeric data may be entered into certain                 fields.  (See the FORMAT-DATA subcommand.) 
  196.  
  197.                 The Intensity parameter is three bits wide and is                 interpreted as a positive binary integer indicating the                 number of visible levels of intensity that the sender                 requests or provides for displaying data.  (See the 
  198.  
  199.  
  200.  
  201. Yasuda & Thompson                                               [Page 7] 
  202.  RFC 1043              Data Entry Terminal - DODIIS         February 1988 
  203.  
  204.                  FORMAT-DATA subcommand.) 
  205.  
  206.                 Reserved bits represent format facilities that are not                 defined for DODIIS implementations; therefore, no                 descriptions are provided.   Reserved bits must be                 zeroed to indicate non support of the associated format                 facilities. 
  207.  
  208.    EDIT SUBCOMMANDS.  Edit subcommands are sent by the application to    position the cursor on the DET screen. 
  209.  
  210.       IAC SB DET MOVE-CURSOR <x><y> IAC SE 
  211.  
  212.          subcommand code:  5 
  213.  
  214.          This subcommand positions the DET cursor at screen location          (x,y).  the <x> and <y> parameters are positive eight bit          binary integers representing the character and line positions,          respectively, of a DET screen location.  Values of x range          from zero (0) through M-1, where M is the DET screen width in          characters.  Values of y range from zero (0) through N-1,          where N is the DET screen length in lines. 
  215.  
  216.       IAC SB DET HOME-CURSOR IAC SE 
  217.  
  218.          subcommand code: 12 
  219.  
  220.          This subcommand positions the cursor at DET screen address          (0,0).  It is equivalent to the MOVE-CURSOR subcommand, where          x=0 and y=0. 
  221.  
  222.    TRANSMIT SUBCOMMANDS.  Transmit subcommands are sent by the    application to request data from the DET or by the terminal to    identify data returned from the DET. 
  223.  
  224.       IAC SB DET READ-CURSOR IAC SE 
  225.  
  226.          subcommand code: 17 
  227.  
  228.          This subcommand requests return of the DET cursor position.          Use of this subcommand requires facility negotiation; see the          EDITFACILITIES subcommand, Read-Cursor bit. 
  229.  
  230.       IAC SB DET CURSOR-POSITION <x><y> IAC SE 
  231.  
  232.          subcommand code: 18 
  233.  
  234.          This subcommand returns cursor position in response to a 
  235.  
  236.  
  237.  
  238. Yasuda & Thompson                                               [Page 8] 
  239.  RFC 1043              Data Entry Terminal - DODIIS         February 1988 
  240.  
  241.           READCURSOR subcommand.  The <x> and <y> parameters are          eight bit binary integers representing the cursor's position.          The <x> and <y> parameters are positive eight bit binary          integers representing the character and line positions,          respectively, of a DET screen location.  Values of x range          from zero (0) through M-1, where M is the DET screen width in          characters.  Values of y range from zero (0) through N-1,          where N is the DET screen length in lines.  Use of this          subcommand requires facility negotiation; see the          EDIT-FACILITIES subcommand, Read-Cursor bit. 
  242.  
  243.       IAC SB DET TRANSMIT-SCREEN IAC SE 
  244.  
  245.          subcommand code: 20 
  246.  
  247.          This subcommand requests return of all characters on the DET          screen beginning at cursor position (0,0).  M x N characters,          where M is the DET screen width in characters and where N is          the DET screen length in lines, are returned with a SPACE          character returned for each character in the unwritten areas          (the areas between defined fields).  FIELD-SEPARATOR and          DATA-TRANSMIT subcommands are not required to delimit or          identify fields. 
  248.  
  249.       IAC SB DET TRANSMIT-UNPROTECTED IAC SE 
  250.  
  251.          subcommand code: 21 
  252.  
  253.          This subcommand requests return of all characters in          unprotected fields.  Use of this subcommand requires facility          negotiation; see the FORMAT-FACILITIES subcommand, Protection          bit. 
  254.  
  255.       IAC SB DET TRANSMIT-MODIFIED IAC SE 
  256.  
  257.          subcommand code: 27 
  258.  
  259.          This subcommand requests return of all characters in modified          fields.  Modified fields are fields that have the Modified          attribute set (see FORMAT-DATA subcommand) as well as fields          actually modified by the user.  Use of this subcommand          requires facility negotiation; see the FORMAT-FACILITIES          subcommand, Modified bit. 
  260.  
  261.       IAC SB DET DATA-TRANSMIT <x><y> IAC SE 
  262.  
  263.          subcommand code: 28 
  264.  
  265.  
  266.  
  267.  Yasuda & Thompson                                               [Page 9] 
  268.  RFC 1043              Data Entry Terminal - DODIIS         February 1988 
  269.  
  270.           This subcommand identifies a field returned in response to          a TRANSMIT-MODIFIED subcommand.  The <x> and <y> parameters          are positive eight bit binary integers indicating the cursor          position of the field that follows the DATA-TRANSMIT          subcommand.  This subcommand may precede the first field of          a transmission with subsequent fields separated by the          FIELD-SEPARATOR subcommand or it may precede each field.          Use of this subcommand requires facility negotiation; see          the TRANSMIT-FACILITIES subcommand, Data-Transmit bit. 
  271.  
  272.    ERASE SUBCOMMANDS.  Erase subcommands are used by the application to    erase the DET screen or selected DET screen areas.  In performing    erase operations, the erased characters are replaced with SPACE    characters. 
  273.  
  274.       IAC SB DET ERASE-SCREEN IAC SE 
  275.  
  276.          subcommand code: 29 
  277.  
  278.          This subcommand erases all characters from the DET screen.          All fields regardless of their attributes are deleted.  The          cursor position after the operation is at (0,0).  If the          protection attribute has been negotiated, the erased screen          contains protected SPACE characters. 
  279.  
  280.       IAC SB DET ERASE-UNPROTECTED IAC SE 
  281.  
  282.          subcommand code: 35 
  283.  
  284.          This subcommand erases all characters in the unprotected fields          of the DET screen.  This subcommand replaces field contents          with SPACE characters; field attributes and sizes are not          changed.  The cursor position after the operation is at the          beginning of the first unprotected field or, if there is no          unprotected field, at (0,0).  Use of this subcommand requires          facility negotiation; see the FORMAT-FACILITIES subcommand,          Protection bit. 
  285.  
  286.    FORMAT SUBCOMMANDS.  The format subcommands are used by the    application to define the fields of a form and by the terminal to    delimit fields sent from the DET. 
  287.  
  288.       IAC SB DET FORMAT-DATA <format map><count> IAC SE 
  289.  
  290.          subcommand code: 36 
  291.  
  292.          This subcommand defines the attributes and size of a DET field.          The <format map> parameter defines the field attributes and the 
  293.  
  294.  
  295.  
  296. Yasuda & Thompson                                              [Page 10] 
  297.  RFC 1043              Data Entry Terminal - DODIIS         February 1988 
  298.  
  299.           <count> parameter defines the field size.  The field starts at          the position of the cursor when the subcommand is acted upon.          The next <count> data characters in the data stream fill the          field. 
  300.  
  301.          The <format map> parameter is two eight bit bytes and contains          the following: 
  302.  
  303.              Byte 0                 Bit  7             Blinking                 Bit  6             Reverse Video                 Bit  5             Right Justification                 Bits 3-4           Protection                 Bits 0-2           Intensity 
  304.  
  305.              Byte 1                 Bits 5-7           Reserved                 Bits 2-4           Reserved for color                 Bit  1             Modified                 Bit  0             Selectable 
  306.  
  307.              where: 
  308.  
  309.                 If the Blinking bit is set, the following field of                  <count> characters should have the Blinking attribute                 applied to it by the receiver. 
  310.  
  311.                 If the Reverse Video bit is set, the following field of                 <count> characters should be displayed by the receiver                 with video reversed. 
  312.  
  313.                 If the Right Justification bit is set, characters                 entered into the field by the user should be right                 justified. 
  314.  
  315.                 The Protection attribute is two bits wide and may take                 on the following values: 
  316.  
  317.                   0  No protection.  Any valid DET data character may                      be entered in the field. 
  318.  
  319.                   1  Protected.  No data may be entered in the field. 
  320.  
  321.                   2  Alphabetic-only.  Only the alphabetic characters                      (A-Z and a-z) or the space character may be                      entered in the field. 
  322.  
  323.                   3  Numeric-only.  Only the numeric characters (0-9), 
  324.  
  325.  
  326.  
  327. Yasuda & Thompson                                              [Page 11] 
  328.  RFC 1043              Data Entry Terminal - DODIIS         February 1988 
  329.  
  330.                       the plus sign (+), the minus sign (-), the decimal                      point (.) or the space character may be entered in                      the field. 
  331.  
  332.                 The Intensity attribute is three bits wide and indicates                 the brightness to be used when displaying the characters                 in or entered into the field <count> characters wide.                 The available number of visible intensity levels should                 have been negotiated using the FORMAT-FACILITY                 subcommand. A value of zero (0) indicates that                 brightness should be OFF; that is, characters in or                 entered into the field should not be displayed.  The                 values 1-7 indicate relative brightness; the exact                 algorithm for mapping these values to the available                 levels of intensity is left to the implementors. 
  333.  
  334.                 If the Modified bit is set, the field is considered to                 have been modified and will be returned, along with any                 user modified fields. 
  335.  
  336.                 If the Selectable bit is set, the field is a candidate                 for field selection using the DET field selection                 device. 
  337.  
  338.       The <count> parameter is two bytes and should be interpreted as a       positive 16-bit binary integer that defines the field size.  The       high order bit is transmitted first.  Data, not in the scope of       the count of a FORMAT-DATA subcommand, should be displayed with       the default field attributes (no blinking, no reverse video, no       justification, no protection, not modified, not selectable, and a       visible intensity).  Minimum field size is one (1) character.       Maximum field size is determined by a field's starting location       and the end of the screen or the start of the next field. 
  339.  
  340.       Use of field attributes requires facility negotiation; see the       FORMAT-FACILITIES subcommand. 
  341.  
  342.    IAC SB DET REPEAT <count><char> IAC SE 
  343.  
  344.          subcommand code: 37 
  345.  
  346.          This subcommand permits compression of DET data by encoding          strings of identical characters as the character and a repeat          count.  The <count> parameter is a positive 8-bit binary          integer.  The <char> parameter is a valid DET data character.          Use of this subcommand requires facility negotiation; see          the FORMAT-FACILITIES subcommand, Repeat bit. 
  347.  
  348.  
  349.  
  350.  Yasuda & Thompson                                              [Page 12] 
  351.  RFC 1043              Data Entry Terminal - DODIIS         February 1988  
  352.  
  353.       IAC SB DET FIELD-SEPARATOR IAC SE 
  354.  
  355.          subcommand code: 39 
  356.  
  357.          This subcommand separates fields returned by the DET in          response to TRANSMIT-MODIFIED or TRANSMIT-UNPROTECTED          subcommands.  Use of this subcommand requires facility          negotiation; see the FORMAT-FACILITIES subcommand,          Protection bit. 
  358.  
  359. MISCELLANEOUS SUBCOMMANDS 
  360.  
  361.       IAC SB DET FUNCTION-KEY <code> IAC SE 
  362.  
  363.          subcommand code: 40 
  364.  
  365.          This subcommand transmits a user entered function key code.          The <code> parameter is one byte that identifies the virtual          function key entered.  Function key <code> values range from          0 to 255.  This subcommand is used in conjunction with the          ENABLE-FUNCTION-KEY subcommand.  Use of this subcommand          requires facility negotiation; see the FORMAT-FACILITIES          subcommand, Function-Key bit. 
  366.  
  367.       IAC SB DET ERROR <cmd><error code> IAC SE 
  368.  
  369.          subcommand code: 41 
  370.  
  371.          This subcommand allows a DET option implementation to report          errors it detects to the corresponding TELNET process.  The          <cmd> parameter is one byte containing the subcommand code          of the subcommand causing the error.  The <error code>          parameter is one byte containing a DET error code.  (See          Appendix 2 for DET error codes.) 
  372.  
  373.          Errors should be reported when detected.  However, the          implementation should attempt to carry out the intent of          the subcommand or data in error. 
  374.  
  375.       IAC SB DET START-OUT-OF-CONTEXT-DATA IAC SE 
  376.  
  377.          subcommand code: 42 
  378.  
  379.          This subcommand precedes out-of-context data.  The data          following this subcommand and prior to the          END-OUT-OF-CONTEXT-DATA subcommand is NOT part of the current          form.  The out-out-of-context data should be interpreted as          NVT mode data (i.e., it may contain carriage return and line 
  380.  
  381.  
  382.  
  383. Yasuda & Thompson                                              [Page 13] 
  384.  RFC 1043              Data Entry Terminal - DODIIS         February 1988 
  385.  
  386.           feed characters) and should be displayed in a timely and          non-destructive fashion. 
  387.  
  388.       IAC SB DET END-OUT-OF-CONTEXT-DATA IAC SE 
  389.  
  390.          subcommand code: 43 
  391.  
  392.          This subcommand indicates the end of the out-of-context data. 
  393.  
  394.       IAC SB DET ENABLE-FUNCTION-KEYS <key-map>IAC SE 
  395.  
  396.          subcommand code: 44 
  397.  
  398.          This subcommand enables (or disables) virtual function keys and          indicates the application's data requirements on function key          selection.  The <key-map> parameter is a variable length byte          string.  Each byte contains four bit-pairs and each bit-pair          represents a single function key.  The first byte represents          function keys zero (0) through three (3); the second byte,          function keys four (4) through seven (7); and so on.  Bit-pair          values and there meanings are as follows: 
  399.  
  400.              0  The virtual function key is disabled (i.e., locked). 
  401.  
  402.              1  The virtual function key is enabled.  Only the FUNCTION-                 KEY subcommand is returned on function key selection. 
  403.  
  404.              2  The  virtual  function  key  is  enabled.  All requested                 screen data and/or cursor position, as well as, the                 FUNCTION-KEY subcommand are returned on function key                 selection. 
  405.  
  406.              3  Undefined. 
  407.  
  408.          Function keys not explicitly represented in the bitmap are          disabled (i.e., they are assumed to have a bit-pair value of          zero (0)). 
  409.  
  410.          Use of this subcommand requires facility negotiation; see the          FORMAT-FACILITIES subcommand; Function-Key bit. 
  411.  
  412.       IAC SB DET SELECTED-FIELD <x><y> IAC SE 
  413.  
  414.          subcommand code: 45 
  415.  
  416.          This subcommand identifies a user selected field.  The <x> and          <y> parameters are the cursor position of the character          selected from within a selectable field (see the FORMAT-DATA 
  417.  
  418.  
  419.  
  420. Yasuda & Thompson                                              [Page 14] 
  421.  RFC 1043              Data Entry Terminal - DODIIS         February 1988 
  422.  
  423.           subcommand, Selectable attribute.)  Use of this subcommand          requires negotiation; see the FORMAT-FACILITIES subcommand,          Field-Selection bit. 
  424.  
  425. 3. Default and Minimal Implementation 
  426.  
  427.        Default. 
  428.  
  429.          WONT DET -- DONT DET 
  430.  
  431.          If the DET option cannot be negotiated, the connection is          not operated in DET mode. 
  432.  
  433.       Minimal DET Implementation. 
  434.  
  435.          The minimal DET implementation consists of all DET subcommands          that may be used without prior negotiation.  These subcommands          are as follows: 
  436.  
  437.              EDIT-FACILITIES              ERASE-FACILITIES              TRANSMIT-FACILITIES              FORMAT-FACILITIES              MOVE-CURSOR              HOME-CURSOR              ERASE-SCREEN              TRANSMIT-SCREEN              FORMAT-DATA              ERROR              START-OUT-OF-CONTEXT-DATA              END-OUT-OF-CONTEXT-DATA 
  438.  
  439.       DODIIS DET implementation requirements. 
  440.  
  441.          The minimal DET implementation set of subcommands is not broad          enough to support forms interactions between DODIIS terminals          and DODIIS applications.  Therefore, DODIIS implementations of          the DET option must support additional DET subcommands. 
  442.  
  443.          DODIIS terminal (User Host) implementations must implement and          support all of the DET subcommands contained in Section 2, as          well as those DET attributes supported by the terminal hardware          and any DET attributes easily emulated in software.  DODIIS          application (Server Host) implementations must implement and          support those DET subcommands and attributes required by its          applications. 
  444.  
  445.  
  446.  
  447.  Yasuda & Thompson                                              [Page 15] 
  448.  RFC 1043              Data Entry Terminal - DODIIS         February 1988 
  449.  
  450.           DODIIS implementation recommendations are contained in the          table that follows.  DODIIS implementors are cautioned that          failure to provide recommended support may limit          interoperability. 
  451.  
  452.          Recommended DET support levels for DODIIS implementations 
  453.  
  454.                                       USER HOST           SERVER HOST       DET SUBCOMMANDS                 SUPPORT LEVEL       SUPPORT LEVEL       ---------------                 -------------       -------------       EDIT-FACILITIES                 send & receive      send & receive       ERASE-FACILITIES                send & receive      send & receive       TRANSMIT-FACILITIES             send & receive      send & receive       FORMAT-FACILITIES               send & receive      send & receive       REPEAT                          send & receive      send & receive       ERROR                           send & receive      send & receive       MOVE-CURSOR                     receive only        send only       HOME-CURSOR                     receive only        send only       READ-CURSOR                     receive only        send only       TRANSMIT-SCREEN                 receive only        send only       TRANSMIT-UNPROTECTED            receive only        send only       TRANSMIT-MODIFIED               receive only        send only       ERASE-SCREEN                    receive only        send only       ERASE-UNPROTECTED               receive only        send only       FORMAT-DATA                     receive only        send only       START-OUT-OF-CONTEXT-DATA       receive only        send only       END-OUT-OF-CONTEXT-DATA         receive only        send only       ENABLE-FUNCTION-KEYS            receive only        send only       CURSOR-POSITION                 send only           receive only       DATA-TRANSMIT                   send only           receive only       FIELD-SEPARATOR                 send only           receive only       FUNCTION-KEY                    send only           receive only       SELECTED-FIELD                  send only           receive only 
  455.  
  456.       DET ATTRIBUTES       --------------       Blinking                        (1)                 (2)       Reverse video                   (1)                 (2)       Right justification             (1)                 (2)       Protection                      required            (2)       Alphabetic-only protection      (1)                 (2)       Numeric-only protection         (1)                 (2)       Intensity level > 1             (1)                 (2) 
  457.  
  458.       OTHER       -----       Page size (lines)               24-48       Line size (characters)          80 
  459.  
  460.  
  461.  
  462. Yasuda & Thompson                                              [Page 16] 
  463.  RFC 1043              Data Entry Terminal - DODIIS         February 1988 
  464.  
  465.        Function keys (number)          64 
  466.  
  467.           (1)   Implement if supported by terminal hardware.          (2)   Implement if required by the application. 
  468.  
  469. 4.  Motivation for the option 
  470.  
  471.    In 1981, the TELNET DET option (RFC 732) was selected as the protocol    to support interactions between DODIIS forms applications and DODIIS    forms terminals.  The intent was to foster a high degree of    interoperability between DODIIS hosts with forms applications and    terminals.  Since that time, the DET option has been and is being    implemented by several independent organizations within the DODIIS    community. 
  472.  
  473.    Motivated by concern that the independently developed implementations    of the DET option may not interoperate with one another, DODIIS    implementors met to identify DODIIS implementation requirements and    to resolve implementation issues that affect interoperability. 
  474.  
  475.    This document attempts to present the agreements and recommendations    of the DODIIS implementors. 
  476.  
  477. 5.  Description and Implementation Rules 
  478.  
  479.    The DODIIS DET model. 
  480.  
  481.    The conceptual model of the DODIIS DET is that of a half-duplex,    forms oriented device with the following: 
  482.  
  483.       a.  A rectangular screen for displaying protected and unprotected          data (a form) and optional capability to support blinking,          reverse video, and up to seven display intensity levels. 
  484.  
  485.       b.  A keyboard and onboard mechanisms for editing unprotected          fields of a form and returning the modified fields. 
  486.  
  487.       c.  Function keys that may be enabled and disabled on a key-by-key          basis by the application. 
  488.  
  489.       d.  A field selection device, similar to a light pen, that permits          user selection of characters within appropriately identified          "selectable" fields. 
  490.  
  491.    The DODIIS DET screen has default sizes of 80 characters and 24    lines.  These defaults may be changed through negotiation using the    Output Line Width and the Output Page Size options.  When the parties 
  492.  
  493.  
  494.  
  495. Yasuda & Thompson                                              [Page 17] 
  496.  RFC 1043              Data Entry Terminal - DODIIS         February 1988 
  497.  
  498.     cannot agree on screen size through negotiation, the default values    will be used.  By agreement, DODIIS terminal (User Host)    implementations of DET will support page sizes of 24 to 48 lines. 
  499.  
  500.    The next writing position (x,y) on the DET screen is indicated by a    special display character called the cursor, where x is the position    of a character on a line and y is the line position on the DET    screen.  Values of x range from 0 (the left most character position    on the line) to M-1, where M is the line length.  Values of y range    from 0 (the top most line on the screen) to N-1, where N is the page    length.  The cursor may be moved to any position on the DET screen    without disturbing the characters already displayed. 
  501.  
  502.    Valid field data for DET forms are the displayable ASCII character    codes in the range 32 through 126 decimal and character 7 "BELL". 
  503.  
  504.    Negotiating the DET option 
  505.  
  506.       The DET option is negotiated when either party REQUESTS use of the       DET option and the other party AGREES to its use.  The DET option       is requested by sending a DO DET and WILL DET and is accepted by       sending a WILL DET and DO DET.  (In the spirit of TELNET       negotiation, the DET option must be negotiated for both directions       on the connection.) 
  507.  
  508.       Several TELNET options conflict with the DET option.  Therefore,       when the DET option is negotiated, the following TELNET options       should be refused (or explicitly terminated):  Echo, Suppress Go-       Ahead, and Binary.  (The Suppress Go-Ahead is the default state of       DODIIS TELNET connections when they are first established.) 
  509.  
  510.    DET facilities negotiation 
  511.  
  512.       All implementations of the DET option are required to support the       minimal DET implementation described in Section 3.  In addition,       DODIIS implementations are required to support subcommands and       attributes that are consistent with DODIIS implementation       requirements.  Before any of these additional DET facilities may       be used, an implementation must negotiate with its correspondent       for permission to use them. 
  513.  
  514.       The four facility subcommands (EDIT-FACILITIES, ERASE-FACILITIES,       TRANSMIT-FACILITIES, and FORMAT-FACILITIES) are used to negotiate       DET subcommands and attributes.  This negotiation consists of an       exchange of facility subcommands and may be viewed as the terminal       (User Host) indicating the facilities it provides and the       application program (Server Host) indicating the facilities it       desires.  The facilities that are jointly supported (and may be 
  515.  
  516.  
  517.  
  518. Yasuda & Thompson                                              [Page 18] 
  519.  RFC 1043              Data Entry Terminal - DODIIS         February 1988 
  520.  
  521.        used) are arrived at by forming the logical intersection of the       facility map that was sent with the facility map that was       received.  (For the intensity attribute, the lesser of the number       of intensity levels sent and the number of intensity levels       received will be used.)  An implementation must record the       currently agreed upon set of subcommands and attributes.  Only       subcommands and attributes reflected in that set may be used       without further exchange of facility subcommands. 
  522.  
  523.       Either party or both parties may initiate facilities negotiation       without confusion as long as care is taken to avoid non-       terminating negotiation loops.  In particular, if you initiate       negotiation by sending a facility subcommand, you must remember       that you did initiate the negotiation.  On receipt of a facility       subcommand; if you initiated the negotiation, no response is       required and the negotiation is complete; if you did not initiate       the negotiation, you must respond by sending the appropriate       facility subcommand to the requester.  (Note that there is no       requirement to negotiate facilities one class at a time and that       the awareness of who initiated the negotiation must be maintained       for each of the facility subcommands.) 
  524.  
  525.       A TELNET implementation responding to a facility subcommand is not       required to compute the logical intersection of the maps before       responding.  It should respond as quickly as possible with a       facility map indicating all facilities of that class that it       supports.  There is no confusion since both parties compute the       set of supported subcommands and attributes in the same fashion.       Note that while both parties must agree to the use of the optional       subcommands and attributes, either party may disable use at any       time by merely sending the appropriate facility subcommand.       Further, there are no restrictions on when facilities may be sent. 
  526.  
  527.                                    CAUTION: 
  528.  
  529.                  All facilities maps contain reserved bits.                  These reserved bits must be zeroed when                  facility maps are sent to indicate non                  support and/or ignorance of the associated                  facility.  The reserved bits may be defined                  in the future. 
  530.  
  531.    General DET Interaction 
  532.  
  533.       In the general interaction, the application implementation       constructs a form, negotiates the desired options, indicates the       required responses, and sends the TELNET GO-AHEAD.  The GO-AHEAD       signals that the form construction is complete and that the DET 
  534.  
  535.  
  536.  
  537. Yasuda & Thompson                                              [Page 19] 
  538.  RFC 1043              Data Entry Terminal - DODIIS         February 1988 
  539.  
  540.        keyboard may be unlocked to permit a user response. 
  541.  
  542.       The user normally responds by editing the unprotected areas of the       form and signaling "form-complete", entering a function key,       electing a field, or performing a combination of the preceding.       In each case, the terminal implementation sends the DET       subcommands indicating the user's response and returns the GO-       AHEAD.  The GO-AHEAD signals the end of the user response. 
  543.  
  544.       The form, as edited by the user, remains on the virtual screen so       the application may continue the interaction by altering the form. 
  545.  
  546.    Form construction 
  547.  
  548.       The application implementation constructs a form on an erased       screen by defining each of the fields in the form.  The DET fields       are defined by their starting cursor position, size, attributes,       and contents (data). 
  549.  
  550.       A field's starting cursor position is the cursor position of the       first character in the field.  The cursor may be positioned       explicitly by the MOVE-CURSOR subcommand or it may be positioned       implicitly by field data or other DET subcommands (e.g.,       ERASESCREEN and ERASE-UNPROTECTED). 
  551.  
  552.       Field size, attributes, and contents may be defined using the       FORMAT-DATA subcommand followed by field data.  Alternatively, a       field with default attributes may be defined using only the field       data.  In this case, field size is the data string length.  The       data string is terminated by the GO-AHEAD or any DET subcommand,       except the REPEAT subcommand. 
  553.  
  554.       There are no restrictions on attribute combinations that might be       applied to a field even though some combinations may not be       supported by terminal hardware.  The terminal implementation       should display the field with a "reasonable" combination of       attributes.  There is an error code that might be returned when an       "unsupported combination of format attributes" is detected.  It is       not clear what the application should do about the error.  In any       event, this condition should not provoke session termination. 
  555.  
  556.       Field contents (data) are restricted to printable ASCII characters       and "BELL" (codes 32 through 126 and 7 decimal).  It is the       responsibility of the application implementation to properly       translate carriage returns, line feeds, tabs, etc.  to the       appropriate DET subcommands. 
  557.  
  558.       The maximum number of fields a screen might contain is the screen 
  559.  
  560.  
  561.  
  562. Yasuda & Thompson                                              [Page 20] 
  563.  RFC 1043              Data Entry Terminal - DODIIS         February 1988 
  564.  
  565.        size in characters (the product of characters per line and lines       per screen). 
  566.  
  567.       Fields may not overlap.  That is, a new field may not start or end       within a previously defined field.  However, overwriting of a       field to change its attributes or contents is permitted. 
  568.  
  569.       There are no restrictions on the order in which a form is built       (e.g., left-to-right and top-to-bottom); the terminal       implementation must be prepared to handle any order.  Terminal       implementations are encouraged to display data as it arrives to       accommodate applications that persist in displaying status updates       on the task(s) they are performing. 
  570.  
  571.       If an application elects to modify a user edited form, it must       properly position the cursor making no assumptions about where the       user might have left the cursor.  Further it must exactly       overwrite the existing fields. 
  572.  
  573.       When form construction is complete, the application indicates its       response requirements by sending the appropriate transmit       subcommand.  It may send TRANSMIT-SCREEN, TRANSMIT-UNPROTECTED, or       TRANSMIT-MODIFIED to request data and/or it may send READ-CURSOR       to request cursor position.  TRANSMIT-MODIFIED should be used       whenever possible to minimize the volume of data transmitted       between user and server hosts. 
  574.  
  575.    Form response 
  576.  
  577.       A form response is generated by the terminal implementation when       the user signals "form-complete" or enters an enabled function       key.  The data returned are determined by the application through       the transmit subcommands.  If no transmit subcommand was sent the       Modified and Protection attributes are used to determine an       implied transmit subcommand.  If the Modified attribute has been       negotiated, assume TRANSMIT-MODIFIED.  If the Protection attribute       has been negotiated but the Modified has not, assume       TRANSMITUNPROTECTED.  If neither has been negotiated, assume       TRANSMITSCREEN.  (The intent is to achieve transmission efficiency       by returning the smallest amount of data permitted by the in-force       DET attributes.) 
  578.  
  579.                                    CAUTION: 
  580.  
  581.               With TRANSMIT-MODIFIED the terminal implementation               must return all fields marked with the Modified               attribute in addition to fields actually modified by               the terminal user. 
  582.  
  583.  
  584.  
  585. Yasuda & Thompson                                              [Page 21] 
  586.  RFC 1043              Data Entry Terminal - DODIIS         February 1988 
  587.  
  588.        Returned fields are identified and delimited using the       DATATRANSMIT and/or FIELD-SEPARATOR subcommands.  The DATA-       TRANSMIT subcommand indicates the cursor address of the field that       follows it and there are no restrictions on the order in which       fields are returned.  The FIELD-SEPARATOR subcommand conveys       left-to-right and top-to-bottom field ordering.  Data not preceded       by one of these subcommands is assumed to be the first unprotected       field in the form.  A FIELD-SEPARATOR followed by FIELD-SEPARATOR       indicates a field was unchanged and not returned. 
  589.  
  590.       Unless otherwise restricted by Numeric-only or Alphabetic-only       attributes, data entered into unprotected fields is restricted to       the printable ASCII characters and "BELL" (codes 32 through 126       and 7 decimal); no other characters are permitted. 
  591.  
  592.    Function keys 
  593.  
  594.       By general agreement, DODIIS terminal implementations will support       64 function keys (key values 0 through 63).  Information on       mapping function keys to application functions is the       responsibility of the application and should be provided to the       terminal user in the form of user documentation. 
  595.  
  596.       The application enables and disables the function keys and       indicates its form response requirements by sending the       ENABLEFUNCTION-KEY subcommand.  The terminal implementation       validates function key selections based on information received in       the ENABLE-FUNCTION-KEY bitmap.  When an enabled function key is       entered, the terminal returns a form response (if indicated in the       bitmap), a FUNCTION-KEY subcommand, and the GO-AHEAD. 
  597.  
  598.       Virtual function keys are part of the DET's virtual keyboard and       are "locked" when the application has the GO-AHEAD.  Since the       terminal sends the GO-AHEAD when a function key is entered,       entering a function key "re-locks" all function keys until the       GO-AHEAD is returned. 
  599.  
  600.    Field selection 
  601.  
  602.       Any character within a field having the Selectable attribute is a       candidate for selection.  When selection is made, the terminal       returns a SELECTED-FIELD subcommand identifying the character       position selected.  Multiple selections are permitted; however,       the ordering of the selections need not be preserved.  Field       selection does not cause the GO-AHEAD to be sent.  The GO-AHEAD       must be sent as a result of another user action such as a function       key entry or "form-complete" indication.  Field selection is       disabled when the application has the GO-AHEAD. 
  603.  
  604.  
  605.  
  606. Yasuda & Thompson                                              [Page 22] 
  607.  RFC 1043              Data Entry Terminal - DODIIS         February 1988 
  608.  
  609.     Out-of-context data 
  610.  
  611.       The out-of-context-data subcommands identify data that is clearly       not in the context of the form interaction.  It is a convenient       not in the mechanism for sending ARE-YOU-THERE responses or host       advisory messages to the user without disturbing the DET's virtual       screen or altering the context of the form interaction. 
  612.  
  613.       The application may send out-of-context data at anytime.  The data       must be preceded by the START-OUT-OF-CONTEXT-DATA subcommand and       followed immediately by the END-OUT-OF-CONTEXT-DATA subcommand.       The out-of-context data should contain carriage returns and line       feeds to facilitate formatting.  The sender should limit the       amount of data sent, since most terminal implementations must       buffer the data prior to displaying it.  The terminal       implementation should display the data to the user in a timely       fashion.  The data is for display only, no user response is       required, and there is no mechanism for user response. 
  614.  
  615.    Line Discipline 
  616.  
  617.       The subject of DET and line discipline (controlling the connection       using the GO-AHEAD) causes a bit of confusion.  The following       rules apply to GO-AHEAD and the DET option: 
  618.  
  619.          When DET is negotiated, the application assumes the GO-AHEAD.          GO-AHEAD is never passed implicitly; it is always passed          explicitly. 
  620.  
  621.          When the application has the GO-AHEAD, the terminal          implementation may send TELNET commands (INTERRUPT-PROCESS,          ABORT-OUTPUT, BREAK, and ARE-YOU-THERE).  Nothing else is          valid. 
  622.  
  623.          When the terminal has the GO-AHEAD, the application may send          out-of-context data or MOVE-CURSOR and FORMAT-DATA subcommands          to update protected fields.  Nothing else is valid.  (The          terminal implementation must display the out-of-context data          and the field updates as soon as convenient.) 
  624.  
  625.          The terminal implementation sends the GO-AHEAD, without further          action on the part of the terminal user, when an enabled          function key or a "form-complete" is entered. 
  626.  
  627.       Since the terminal user must take explicit action to return the       GO-AHEAD to the application, instances will occur when the user       has the GO-AHEAD but the application needs it to display a new       form.  (This is most likely to occur when the user enters an 
  628.  
  629.  
  630.  
  631. Yasuda & Thompson                                              [Page 23] 
  632.  RFC 1043              Data Entry Terminal - DODIIS         February 1988 
  633.  
  634.        INTERRUPT PROCESS.)  When it does occur, the application should       send an out-of-context-context message requesting the user to       enter a "form-complete".  If the user cooperates, the application       can ignore any associated form response and regain control of the       connection to display its form. 
  635.  
  636.       The line discipline described here is more rigorous than that       described for NVT in MIL-STD-1782.  These rules apply only when       operating in DET mode.  At other times, the descriptions contained       in MIL-STD-1782 apply.  This distinction is necessary to ensure       interoperability with non-DET implementations of TELNET. 
  637.  
  638.    Standard TELNET control functions 
  639.  
  640.       The TELNET control functions, ERASE CHARACTER and ERASE LINE, are       NOT required and should not be sent in DET mode. 
  641.  
  642.    Other implementation notes 
  643.  
  644.       a. The DODIIS DET conceptual model does not support character          editors or basic scrolling applications. 
  645.  
  646.       b. Implementors are cautioned that DET subcommand parameters          (e.g., facilities maps) may take on the value of the IAC          character and must be replicated if they are to be properly          interpreted. 
  647.  
  648.       c. Principle of Robustness:  "Be conservative in what you send; be          liberal in what you accept from others." 
  649.  
  650.  
  651.  
  652.  
  653.  
  654.  
  655.  
  656.  
  657.  
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664.  
  665.  
  666.  
  667.  
  668.  
  669.  
  670.  Yasuda & Thompson                                              [Page 24] 
  671.  RFC 1043              Data Entry Terminal - DODIIS         February 1988 
  672.  
  673.  APPENDIX 1 - DET OPCODES AND SUBCOMMAND SYNTAX. 
  674.  
  675.              OPCODE    SUBCOMMAND SYNTAX              ------    ----------------- 
  676.  
  677.               1     EDIT-FACILITIES <facility map>               2     ERASE-FACILITIES <facility map>               3     TRANSMIT-FACILITIES <facility map>               4     FORMAT-FACILITIES <facility map 1><facility map 2>               5     MOVE-CURSOR <x><y>              12     HOME-CURSOR              17     READ-CURSOR              18     CURSOR-POSITION <x><y>              20     TRANSMIT-SCREEN              21     TRANSMIT-UNPROTECTED              27     TRANSMIT-MODIFIED              28     DATA-TRANSMIT <x><y>              29     ERASE-SCREEN              35     ERASE-UNPROTECTED              36     FORMAT-DATA <format map><count>              37     REPEAT <count><character>              39     FIELD-SEPARATOR              40     FUNCTION-KEY <code>              41     ERROR <cmd><error code>              42     START-OUT-OF-CONTEXT-DATA              43     END-OUT-OF-CONTEXT-DATA              44     ENABLE-FUNCTION-KEYS <key-map>              45     SELECTED-FIELD <x><y> 
  678.  
  679.  
  680.  
  681.  
  682.  
  683.  
  684.  
  685.  
  686.  
  687.  
  688.  
  689.  
  690.  
  691.   
  692.  
  693.  
  694.  
  695.  
  696.  
  697.  
  698.  
  699.  Yasuda & Thompson                                              [Page 25] 
  700.  RFC 1043              Data Entry Terminal - DODIIS         February 1988 
  701.  
  702.  APPENDIX 2 - DET ERROR CODES 
  703.  
  704.               1        Facility not previously negotiated. 
  705.  
  706.               2        Illegal subcommand code. 
  707.  
  708.               3        Cursor Address Out of Bounds. 
  709.  
  710.               4        Undefined FUNCTION-KEY value. 
  711.  
  712.               5        Can't negotiate acceptable line width. 
  713.  
  714.               6        Can't negotiate acceptable page length. 
  715.  
  716.               7        Illegal parameter in subcommand. 
  717.  
  718.               8        Syntax error in parsing subcommand. 
  719.  
  720.               9        Too many parameters in subcommand. 
  721.  
  722.              10        Too few parameters in subcommand. 
  723.  
  724.              11        Undefined parameter value. 
  725.  
  726.              12        Unsupported combination of Format Attributes. 
  727.  
  728.              13        Invalid field - overlap detected. 
  729.  
  730.  
  731.  
  732.  
  733.  
  734.  
  735.  
  736.  
  737.  
  738.  
  739.  
  740.  
  741.  
  742.  
  743.  
  744.  
  745.  
  746.  
  747.  
  748.  
  749.  
  750.  
  751.  
  752.  Yasuda & Thompson                                              [Page 26] 
  753.  
  754.