📄 rfc1043.txt
字号:
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. 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. 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. The maximum number of fields a screen might contain is the screenYasuda & Thompson [Page 20]RFC 1043 Data Entry Terminal - DODIIS February 1988 size in characters (the product of characters per line and lines per screen). 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. 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. 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. 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. Form response 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.) CAUTION: 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.Yasuda & Thompson [Page 21]RFC 1043 Data Entry Terminal - DODIIS February 1988 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. 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. Function keys 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. 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. 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. Field selection 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.Yasuda & Thompson [Page 22]RFC 1043 Data Entry Terminal - DODIIS February 1988 Out-of-context data 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. 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. Line Discipline 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: When DET is negotiated, the application assumes the GO-AHEAD. GO-AHEAD is never passed implicitly; it is always passed explicitly. 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. 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.) 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. 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 anYasuda & Thompson [Page 23]RFC 1043 Data Entry Terminal - DODIIS February 1988 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. 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. Standard TELNET control functions The TELNET control functions, ERASE CHARACTER and ERASE LINE, are NOT required and should not be sent in DET mode. Other implementation notes a. The DODIIS DET conceptual model does not support character editors or basic scrolling applications. 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. c. Principle of Robustness: "Be conservative in what you send; be liberal in what you accept from others."Yasuda & Thompson [Page 24]RFC 1043 Data Entry Terminal - DODIIS February 1988APPENDIX 1 - DET OPCODES AND SUBCOMMAND SYNTAX. OPCODE SUBCOMMAND SYNTAX ------ ----------------- 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>Yasuda & Thompson [Page 25]RFC 1043 Data Entry Terminal - DODIIS February 1988APPENDIX 2 - DET ERROR CODES 1 Facility not previously negotiated. 2 Illegal subcommand code. 3 Cursor Address Out of Bounds. 4 Undefined FUNCTION-KEY value. 5 Can't negotiate acceptable line width. 6 Can't negotiate acceptable page length. 7 Illegal parameter in subcommand. 8 Syntax error in parsing subcommand. 9 Too many parameters in subcommand. 10 Too few parameters in subcommand. 11 Undefined parameter value. 12 Unsupported combination of Format Attributes. 13 Invalid field - overlap detected.Yasuda & Thompson [Page 26]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -