📄 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 screen
Yasuda & 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 an
Yasuda & 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 1988
APPENDIX 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 1988
APPENDIX 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 + -