As per Relevance of the word position, we have this rfc below:
John Day Data Entry Terminal
June 27,1977 NIC 40652
RFC 731
Telnet Data Entry Terminal
1. Command Name and code
DET 20
2. Command
IAC WILL
The sender of this command REQUESTS or AGREES to send
receive subcommands to control the Data Entry Terminal
IAC WONT
The sender of this command REFUSES to send and
subcommands to control the Data Entry Terminal
IAC DO
The sender of this command REQUESTS or AGREES to send
receive subcommands to control the Data Entry Terminal
IAC DONT
The sender of this command REFUSES to send and
subcommands to control the Data Entry Terminal
The DET option uses five classes of subcommands 1)
establish the requirements and capabilities of
application and the terminal, 2) to format the screen,
to control the 3) edit, 4) erasure, and 5)
functions. The subcommands that perform these functions
described below
T__h_e_N__e_t_w_o_r_k_V__i_r_t_u_a_l_D__a_t_a_E__n_t_r_y_T__e_r_m_i_n_a_l(NVDET
The NVDET consists of a keyboard and a
display. The keyboard is capable of generating all
the characters of the ASCII character set. In addition
the keyboard may possess a number of function keys
when pressed cause a FN subcommand to be sent. (
most DET's will support one or more peripheral
such as a paper tape reader or a printer, this
1
John Day Data Entry Terminal
June 27,1977 NIC 40652
RFC 731
does not consider their support. Support of
devices should be treated by a separate option.)
The screen of the data entry terminal is a rectangle
characters by N lines. The values of M and N are set
negotiating the Output Line Width and Output Page
options, respectively. The next writing position (x,y
on the screen (where x is the character position and y
the position of the line on the screen) is indicated by
special display character called the cursor. The
may be moved to any position on the screen
disturbing any characters already on the screen.
addressing in existing terminals utilizes
topologies and addressing methods. In order to make
burden of implementaton as easy as possible this
supports two topologies (the finite plane and the
torus) and three addressing methods ((x,y); x and y,
relative increments). Since the finite plane
absolute addressing is the least ambiguous and
easiest to translate to and from the others, it is
default scheme used by the NVDET. The torodial form
either relative or absolute addressing is provided
convience
Also the NVDET provides a mechanism for defining on
screen fields with special attributes. For example
characters entered into these fields may be
with brighter intensity, highlighted by reverse video
blinking, or protected from modification by the user
This latter feature is one of the most heavily used
applications where the DET displays a form to be
out by the user
The definition of the NVDET uses Telnet
subnegotiations to accomplish all of its functions
Since none of the ASCII characters sent in the
stream have been used to define these functions, the
option can be used in a "raw" or even "rare" mode.
circumstances where the application program knows
kind of terminal is on the other end, it can send
ASCII characters required to control functions
supported by the option or an implementation. In
keeping all NVDET functions out of the data
provides better flexibility
F__a_c_i_l_i_t_y_F__u_n_c_t_i_o_n_s (for detailed semantics see Section 5.)
IAC SB DET facility subcommand><facility map> IAC
where facility subcommand> is one 8-bit
2
John Day Data Entry Terminal
June 27,1977 NIC 40652
RFC 731
indicating the class of the facilities to be described
and <facility map> is a field of one or two 8-bit
containing flags describing the facilities required
desired by the sender. The bits of the facility maps
numbered from the right starting at zero. Thus, if bit 2
is set the field will have a decimal value of 4.
values of the field are as follows
facility cmd: EDIT FACILITIES subcommand code: 1
facility map: bit
Toroidal Cursor Addressing 6
Incremental Cursor Addressing 5
Read Cursor Address 4
Line Insert/Delete 3
Char Insert/Delete 2
Back Tab 1
Positive Addressing only 0
where
If the Toroidal Cursor Addressing bit is set, the
requests or provides that the SKIP TO LINE and SKIP
CHAR subcommands be supported
If the Incremental Cursor Addressing bit is set,
sender requests or provides that the UP, DOWN, LEFT,
RIGHT subcommands be supported
If the Read Cursor bit is set, the sender requests
provides the READ CURSOR subcommand
If the Line Insert/Delete bit is set, the sender
or provides that the LINE INSERT and LINE
subcommands be supported
If the Char Insert/Delete bit is set, the sender
or provides that the CHAR INSERT and CHAR
subcommands be supported
If the Back Tab bit is set, the sender requests
provides that the BACK TAB subcommand be supported
If the Positive Addressing bit is set, then the sender
informing the receiver that it can only move the
in the positive direction. (Note: Terminals that
this property also have a Home function to get back
the beginning.)
facility cmd: ERASE FACILITIES subcommand code: 2
facility map: bit
3
John Day Data Entry Terminal
June 27,1977 NIC 40652
RFC 731
Erase Field 4
Erase Line 3
Erase Rest of Screen 2
Erase Rest of Line 1
Erase Rest of Field 0
where
If a bit of the facility map for this facility command
set, the sender requests or provides the
indicated by the bit. For a more complete description
each of these functions see the Erase Functions
below
facility cmd: TRANSMIT FACILITIES subcommand code: 3
facility map: bit
Data Transmit 5
Transmit Line 4
Transmit Field 3
Transmit Rest of Screen 2
Transmit Rest of Line 1
Transmit Rest of Field 0
where
If a bit of the facility map for this facility command
set, the sender requests or provides the
indicated by the bit. For a more complete description
each of these functions see the Transmit
section below
facility cmd: FORMAT FACILITIES subcommand code: 4
facility map: bit
byte 0
Repeat 4
Blinking 3
Reverse Video 2
Right Justification 1
Overstrike 0
byte 1
Protection On/Off 6
Protection 5
Alphabetic-only Protection 4
Numeric-only Protection 3
Intensity 0-2
where
If the Repeat bit is set the sender requests or
4
John Day Data Entry Terminal
June 27,1977 NIC 40652
RFC 731
the REPEAT subcommand
If the Blinking bit is set, the sender requests
provides the ability to highlight a string of
by causing them to blink
If the Reverse Video bit is set, the sender requests
provides the ability to highlight a string of
by "reversing the video image," i.e., if the
are normally displayed as black characters on a
background, this is reversed to be white characters on
black background, or vice versa
If the Right Justification bit is set, the
requests or provides the ability to cause entries of
to be right justified in the field
If the Overstrike bit is set, the sender requests
provides the ability to superimpose one character
another on the screen much like a hard copy
would do if the print mechanism struck the same
on the paper with different characters
If the Protection On/Off bit is set, the sender
or provides the ability to turn on and off
protection
If the Protection bit is set, the sender requests
provides the ability to protect certain strings
characters displayed on the screen from being altered
the user of the terminal. Setting this bit also
that ERASE UNPROTECTED and TRANSMIT
subcommands (see below) are supported
If the Alphabetic-only Protection bit is set, the
requests or provides the ability to constrain the user
the terminal such that he may only enter alphabetic
into certain areas of the screen
If the Numeric-only Protection bit is set, the
requests or provides the ability to constrain the user
the terminal such that he may only enter numerical
into certain areas of the screen
The three bits of the Intensity field will contain
positive binary integer indicating the number of
of intensity that the sender requests or provides
displaying the data. The value of the 3 bit field
be interpreted in the following way
5
John Day Data Entry Terminal
June 27,1977 NIC 40652
RFC 731
1 one visible
2 two intensities; normal and
3 three intensities; off, normal, and
>3 >3 intensities; off, and the remaining
proportioned from dimmest to brightest intensity
For the all of the above commands, if the appropriate
in <facility map> is not set, then the sender does
request or provide that facility
E__d_i_t_i_n_g_F__u_n_c_t_i_o_n_
IAC SB DET MOVE CURSOR IAC SE subcommand code: 5
where is an 8-bit byte containing a positive
integer representing the character position of
cursor, is an 8-bit byte containing a positive
integer representing the line position of the cursor
This subcommand moves the cursor to the absolute
address (x,y) with the following boundary conditions
if x>M-1, set x=M-1 and send an ERROR
if y>N-1, set y=N-1 and send an ERROR
This describes a finite plane topology on the screen
IAC SB DET SKIP TO LINE IAC SE subcommand code: 6
where is a positive 8-bit binary number
This subcommand moves the cursor to the absolute
line y. x remains constant. For values of y>N-1
y = y mod N
IAC SB DET SKIP TO CHAR IAC SE subcommand code: 7
where is a positive 8-bit binary number
This subcommand moves the cursor to the
character position x. y remains constant, unless x>M-1
in which case
x' = (x mod M
y' = (y+(x DIV N))
where x' and y' are the new values of the cursor
These last two subcommands define a toroidal topology
the screen
6
John Day Data Entry Terminal
June 27,1977 NIC 40652
RFC 731
IAC SB DET UP IAC SE subcommand code: 8
IAC SB DET DOWN IAC SE subcommand code: 9
IAC SB DET LEFT IAC SE subcommand code: 10
IAC SB DET RIGHT IAC SE subcommand code: 11
These subcommands are provided as a convenience for
terminals. The commands UP, DOWN, LEFT, and RIGHT
defined
UP: (x,y)=(x, y-1 mod N
DOWN: (x,y)=(x, y+1 mod N
LEFT: (x,y)=(x-1, y); if x=0 then x-1 = 0
RIGHT: (x,y)=(x+1 mod M, y) and y = y+1 if x+1>M-1
Note: DOWN, LEFT, and RIGHT cannot always be replaced
the ASCII codes for linefeed, backspace, and
respectively. The latter are format effectors while
former are cursor controls
IAC SB DET HOME IAC SE subcommand code: 12
This subcommand positions the cursor to (0,0). This
equivalent to a MOVE CURSOR 0,0 or the sequence SKIP
LINE 0, SKIP TO CHAR 0. This subcommand is provided
convenience, since most terminals haveÆ it as a
control
IAC SB DET LINE INSERT IAC SE subcommand code: 13
This subcommand inserts a line of spaces between lines
(the current line, determined by the position of
cursor) and line y-1. Lines y through N-2 move down
line, i.e. line y becomes line y+1; y+1 becomes y+2,
...; N-2 becomes N-1. Line N-1 is lost off the bottom
the screen. The position of the cursor
unchanged
IAC SB DET LINE DELETE IAC SE subcommand code: 14
This subcommand deletes line y where y is the
line position of the cursor. Lines y+1 through N-1
up one line, i.e. line y+1 becomes line y; y+2
y+1; ...; N-1 becomes N-2. The N-1st line position
set to all spaces. The cursor position
unchanged
IAC SB DET CHAR INSERT IAC SE subcommand code: 15
This subcommand inserts the next character in the
stream between the xth and x-1st characters, where x
7
John Day Data Entry Terminal
June 27,1977 NIC 40652
RFC 731
the current character position of the cursor. The
through M-2nd characters on the line are shifted
character positon to the right. The new character
inserted at the vacated xth position. The M-1
character is lost. The position of the cursor
unchanged
IAC SB DET CHAR DELETE IAC SE subcommand code: 16
This subcommand deletes the character on the screen
the x-th position. The x-th character is removed and
characters x+1 through M-1 are shifted one
position to the left to become the x-th through M-2
characters. The M-1st character position is left empty
(For most terminals it will be set to a NUL or space.)
The cursor position remains unchanged
IAC SB DET READ CURSOR IAC SE subcommand code: 17
This subcommand requests the receiver to send the
position of the cursor to the sender
IAC SB DET CURSOR POSITION IAC
subcommand code: 18
where and are positive 8-bit binary integers
This subcommand is sent by a Telnet implementation
response to a READ CURSOR subcommand to convey
coordinates of the cursor to the other side. Note: x
less than M and y is less than N
IAC SB DET REVERSE TAB IAC SE subcommand code: 19
This subcommand causes the cursor to move to the
tab position. If none exists on the present line,
cursor moves to the previous line and so on until a
is found or the address (0,0) is encountered. When
protection is in effect the cursor moves to the
of the preceding unprotected field
T__r_a_n_s_m_i_t_F__u_n_c_t_i_o_n_s (For detailed semantics see Section 5.)
IAC SB DET TRANSMIT SCREEN IAC SE subcommand code: 20
This subcommand causes the terminal to transmit
characters on the screen from position (0,0)
(M-1,N-1). The cursor will be at (0,0) after
operation is complete
8
John Day Data Entry Terminal
June 27,1977 NIC 40652
RFC 731
IAC SB DET TRANSMIT UNPROTECTED IAC
subcommand code: 21
This subcommand causes the terminal to transmit
characters in unprotected fields from position (0,0)
(M-1,N-1). The unprotected fields are separated by
field separator subcommand. The cursor will be at (0,0)
or at the beginning of the first unprotected field
the operation is complete
IAC SB DET TRANSMIT LINE IAC SE subcommand code: 22
This subcommand causes the terminal to transmit all
on the yth line where y is determined by the
position of the cursor. Data is sent from
position (0,y) to the end-of-line or position (M-1,y
whichever comes first. The cursor position after
transmission is one character position after the end
line condition or the beginning of the next line
(0,y+1).
IAC SB DET TRANSMIT FIELD IAC SE subcommand code: 23
This subcommand causes the terminal to transmit all
in the field presently occupied by the cursor.
cursor position after the operation is complete is
character position after the end of the field or, if
position is protected, at the beginning of the
unprotected field
IAC SB DET TRANSMIT REST OF SCREEN IAC
subcommand code: 24
This subcommand causes the terminal to transmit
characters on the screen from position (x,y) to (M-1,N-1)
or until the end of text. (x,y) is the current
position. The cursor position after the operation is
character position after the last text character,
(0,0) if the last filled character position is (M-1,N-1).
IAC SB DET TRANSMIT REST OF LINE IAC
subcommand code: 25
This subcommand causes the terminal to transmit
characters on the yth line from position (x,y) to the
of line or (M-1,y) whichever comes first. (x,y) is
current cursor position. The cursor position after
operation is one character position after the
character of the line or the first character of the
line
9
John Day Data Entry Terminal
June 27,1977 NIC 40652
RFC 731
IAC SB DET TRANSMIT REST OF FIELD IAC
subcommand code: 26
This subcommand causes the receiver to transmit the
of the characters in the field currently occupied by
cursor. The cursor position after the operation is
the beginning of the next field
IAC SB DET DATA TRANSMIT IAC
subcommand code: 27
This subcommand is used to preface data sent from
terminal in response to a user action or a
command. The parameters and indicate the
position of the cursor. See the Transmit
subsection in Section 5 for more details
E__r_a_s_e_F__u_n_c_t_i_o_n_
IAC SB DET ERASE SCREEN IAC SE subcommand code: 28
This subcommand causes all characters to be removed
the screen. All fields regardless of their
are deleted. The cursor position after the
will be (0,0). Most terminals set the erased
to either NUL or space characters
IAC SB DET ERASE LINE IAC SE subcommand code: 29
This subcommand causes all characters on the yth line
be removed from the screen, where y is the line of
current cursor position. All fields regardless of
attributes are deleted. The cursor position after
operation will be (0,y). Note: This operation can
easily simulated by the sequence: LINE DELETE,
INSERT. However, the order is important to insure
no data is lost off the bottom of the screen
IAC SB DET ERASE FIELD IAC SE subcommand code: 30
This subcommand causes all characters in the
occupied by the cursor to be removed. The
position after the operation is at the beginning of
field
IAC SB DET ERASE REST OF SCREEN IAC
subcommand code: 31
10
John Day Data Entry Terminal
June 27,1977 NIC 40652
RFC 731
This subcommand causes all characters from position (x,y
to (M-1,N-1) to be removed from the screen. All
regardless of their attributes are deleted. The
position after the operation is unchanged. This
equivalent to doing an ERASE REST OF LINE plus a
DELETE for lines greater than y
IAC SB DET ERASE REST OF LINE IAC
subcommand code: 32
This subcommand causes all characters from position (x,y
to (M-1,y) to be removed from the screen All
regardless of their attributes are deleted. The
position after the operation is unchanged
IAC SB DET ERASE REST OF FIELD IAC
subcommand code: 33
This subcommand causes all characters from position (x,y
to the end of the current field to be removed from
screen. The cursor position after the operation
unchanged
IAC SB DET ERASE UNPROTECTED IAC
subcommand code: 34
This subcommand causes all characters on the screen
unprotected fields to be removed from the screen.
cursor position after the operation is at (0,0) or,
that position is protected, at the beginning of the
unprotected field
F__o_r_m_a_t_F__u_n_c_t_i_o_n_
IAC SB DET FORMAT DATA IAC
subcommand code: 35
where is an 8-bit byte containing
following flags
Blinking 7
Reverse Video 6
Right Justification 5
Protection 3-4
Intensity 0-2
where
If the Blinking bit is set, the following field
characters should have the Blinking
11
John Day Data Entry Terminal
June 27,1977 NIC 40652
RFC 731
applied to it by the receiver
If the Reverse Video bit is set, the following field
characters should be displayed by the
with video reversed
If the Right Justification bit is set, the input
into the field of characters should be
justified
The Protection field is two bits wide and may take on
following values
0 no
1
2 alphabetic
3 numeric
The protection attribute specifies that the other
may modify any character (no protection), modify
characters (protected), enter only
characters (A-Z, and a-z) (alphabetic only), or
only numerical characters (0-9,+,.,and -) (numeric only
in the following field of bytes
The Intensity field is 3 bits wide and should
interpreted in the following way
The values 0-6 should be used as an indication of
relative brightness to be used when displaying
characters in or entered into the following field
characters wide. The number of levels of
available should have been obtained previously by
Format Facility subcommand. The exact algorithm
mapping these values to the available levels of
is left to the implementors. A value of 7 in
intensity field indicates that the brightness should
off, and any characters in or entered into the
should not be displayed
is 2 bytes that should be interpreted as
positive 16-bit binary integer representing the number
characters following this command which are affected
it
Data sent to the terminal or the Using Host for
areas of the screen not in the scope of the count
be displayed with the default values of the format map
The default values are No Blinking, Normal Video,
Justification, No Protection and Normal Intensity
12
John Day Data Entry Terminal
June 27,1977 NIC 40652
RFC 731
This subcommand is used to format data to be displayed
the screen of the terminal. The
the attributes that the field bytes wide
have. This field is to start at the position of
cursor when the command is acted upon. The next
displayable characters in the data stream are used
fill the field. Subsequent REPEAT subcommands may
used to specify the contents of this field. If
sender specifies attributes that have not been
upon by the use of the Format Facility subcommand,
Telnet process should send an Error Subcommand to
sender, but format the screen as if the bit had not
set
IAC SB DET REPEAT IAC
subcommand code: 36
where is a positive 8-bit binary integer
is an 8-bit byte containing an ASCII character
This subcommand is used to perform data compression
data being transferred to the terminal by
strings of identical characters as the character and
count. The repeated characters may be part of a
specifiedÆÆ
IAC SB DET SUPPRESS PROTECTION <negotiation> IAC
subcommand code: 37
where <negotiation> may have the values of the
option negotiation
251
252
253
254
This subcommand is used to suppress the field
in a non-destructive manner. Many data entry
provide the means by which protection may be turned
and off without modifying the contents of the screen
the terminal's memory. Thus, the protection may
turned off and back on without retransmitting the form
The default setting of the option is that protection
on, in other
IAC SB DET SUPPRESS PROTECTION WONT IAC
IAC SB DET SUPPRESS PROTECTION DONT IAC
13
John Day Data Entry Terminal
June 27,1977 NIC 40652
RFC 731
Negotiation of this subcommand follows the same rules
negotiations of the Telnet options
IAC SB DET FIELD SEPARATOR IAC SE subcommand code: 38
It is necessary when transmitting only the
portion of the screen to provide a means for
the fields. Existing DET's use a variety of
characters such as Tab, Group Separator, Unit Separator
etc. In order to maintain transparency of the NVDET
subcommand is used to separate the fields. Clearly,
incurs rather high overhead. This overhead can
avoided by using the Byte Macro Option (see Appendix 3).
M__i_s_c_e_l_l_a_n_e_o_u_s_C__o_m_m_a_n_d_
IAC SB DET FN IAC SE subcommand code: 39
where: is one byte
Many data-entry terminals provide a set of "function
keys which when pressed send a one-character command
the server. This subcommand describes such a facility
The values of the field are defined by the
and server. The option merely provides the means
transfer the information
IAC SB DET ERROR IAC
subcommand code: 40
where
is a byte containing the subcommand code
the subcommand in error
is a byte containing an error code
(For a list of the defined error codes see Appendix 2.)
This subcommand is provided to allow DET
implementations to report errors they detect to
corresponding Telnet process. At this point it is
reiterating that the philosophy of this option is
when an error is detected it should be reported; however
the implementation should attempt its best effort
carry out the intent of the subcommand or data in error
14
John Day Data Entry Terminal
June 27,1977 NIC 40652
RFC 731
3. Default and Minimal Implementation
D__e_f_a_u_l_
WON'T DET -- DON'T
Neither host wishes to use the Data Entry Terminal option
M__i_n_i_m_a_l_I__m_p_l_e_m_e_n_t_a_t_i_o_
DET EDIT
DET ERASE
DET TRANSMIT
DET FORMAT
DET MOVE CURSOR
DET
DET ERASE
DET TRANSMIT
DET FORMAT
DET ERROR
In the case of formatting the data, the
implementation should be able to support a low and
level of intensity and protection for all or
characters in a field. These functions, however, are
required
The minimal implementation also requires that the
Line Width and Output Page Size Telnet options
supported
15
John Day Data Entry Terminal
June 27,1977 NIC 40652
RFC 731
4.
The Telnet protocol was originally designed to provide
means for scroll-mode terminals, such as the
teletype, to communicate with processes through the network
This was suitable for the vast majority of terminals
users at that time. However, as use of the network
increased into other areas, especially areas where
network is considered to provide a production
for other work, the desires and requirements of the
community have changed. Therefore, it is necessary
consider supporting facilities that were not
supported. This Telnet option attempts to do that
applications that require data entry terminals
This option in effect defines the Network Virtual Data
Terminal. Although the description of this option is
long, this does not imply that the Telnet protocol is a
vehicle for this facility. Data Entry Terminals are
complex and varied in their abilities. This option
to support both the minimal set of useful functions that
either common to all or can be easily simulated and the
sophisticated functions supplied in some terminals
Unlike most real data entry terminals where the
functions are encoded into one or more characters of
native character set, this option performs all such
within the Telnet subnegotiation mechanism. This
programs that are intimately familiar with the kind
terminal they are communicating with to send commands
may not be supported by either the option or
implementation. In other words, it is possible to
in a "raw" or at least "rare" mode using as much of
option as necessary
Although many data entry terminals support a variety
peripheral devices such as printers, cassettes, etc. it
beyond the scope of this option to entertain
considerations. A separate option should be defined
handle this aspect of these devices
16
John Day Data Entry Terminal
June 27,1977 NIC 40652
RFC 731
5.
G__e_n_e_r_a_l_N__o_t_e_
All implementations of this option are required to support
certain minimal set of the subcommands for this option
Section 3 contains a complete list of the subcommands
this minimal set. In keeping with the Telnet
philosophy that an implementation should not have to be
to parse commands it does not implement, every subcommand
this option is either in the minimal set or is covered
one of the facility subcommands. An implementation
"negotiate" with its correspondent for permission to
subcommands not in the minimal set before using them.
details of this negotiation process see the section below
facility subcommands
Most data entry terminals are used in a half duplex mode
(Although most DET's on the market can be used either
data entry terminals or as standard interactive terminals
we are only concerned here with their use as DET's.)
this option is used, it is suggested that the
Telnet options be refused: Echo, Remote
Transmission and Echoing, and Suppress Go-Ahead. However
this option could be used to support a simple full
CRT based application using the basic cursor
functions provided here. For these cases, one or more
the above list of options might be required. (Support
sophisticated interactive calligraphic applications
beyond the scope of this option and should be done
another option or the Network Graphics Protocol.)
In RFC 728, it was noted that a synch sequence can
undesired interactions between Telnet Control functions
the data stream. A synch sequence causes data but
control functions to be flushed. If a control
which has an effect on the data immediately following it
present in the data stream when a synch sequence occurs,
control function will have its effect not on the
data but on the data immediately following the Data Mark
The following DET subcommands are susceptible to
pitfall
CHAR
DATA
FORMAT
The undesired interactions are best avoided by the
17
John Day Data Entry Terminal
June 27,1977 NIC 40652
RFC 731
of the synch sequence deleting these subcommandsÆ and
data associated with them before continuing to process
control functions. This implies that the Data Mark
not occur in the middle of the data associated with
subcommands
F__a_c_i_l_i_t_y_S__u_b_c_o_m_m_a_n_d_
These four subcommands are used by the User and
implementations to negotiate the subcommands and
of the terminal that may be utilized. This negotiation
be viewed as the terminal (User Host) indicating
facilities are provided and the Server Host (or
program) indicating what facilities are desired
W__h_e_n_S__e_n_t:_ A Server Telnet implementation using the
option must send a facility subcommand requesting the use
a particular subcommand or terminal attribute not in
minimal implementation before the first use of
subcommand or attribute. The User Telnet
should respond as quickly as possible with its reply
Neither the User nor Server are required to negotiate
subcommand at a time. Also, a Telnet
responding to a facility subcommand is not required to
permission only for that subcommand. It may send a
map indicating all facilities of that class which
supports. However, a Telnet implementation
facilities must send a facility subcommand before its
use of the subcommand regardless of whether
negotiations have indicated the facility is provided.
facility cannot be used until a corresponding
subcommand has been received. There are no
constraints on when the facility subcommands may be sent
In particular, it is not necessary for an application
know at the beginning of a session all facilities that
will use
A__c_t_i_o_n_W__h_e_n_R__e_c_i_e_v_e_d:_ There are two possible actions
may be taken when a facility subcommand is
depending on whether the receiver is a requestor or
provider (User).
Requestor: When a facility subcommand is received by
requestor and it is in the state of Waiting for a Reply,
should go into the state of Not Waiting. It should
take the facility map it had sent and form the
intersection with the facility map received. (For
Intensity attribute, one should take the minimum of
number received and the number requested.) The
indicates the facilities successfully negotiated. Note:
18
John Day Data Entry Terminal
June 27,1977 NIC 40652
RFC 731
the receiver is not in the Waiting for Reply state,
this is the provider case described next
Provider: When a facility subcommand is received,
should send a facility subcommand with a facility map of
facilities it provides as soon as possible. It should
determine what new facilities it is providing for
Requestor by forming the logical intersection of
facility map received and the one sent
Note: Although in most cases the requestor will be
Server Host and the provider will be the User
supporting the terminal, this distinction may not always
true
T__r_a_n_s_m_i_t_S__u_b_c_o_m_m_a_n_d_
There are two kinds of transmit subcommands: those used
request that data be sent to the requestor, and one
preface data sent to the requestor. The first kind
the requestor to control when, from where and to some
how much data is transmitted from the terminal.
explanation is straightforward and may be found in
2.
Data may be sent from the terminal as a result of
events: the user of the terminal caused the transmission
in response to a transmit subcommand. Some programs
wish to know from where on the screen the
began. (This is reasonable, since the terminal user
move the cursor around considerably before transmitting.)
Other programs may not need such information. The
TRANSMIT subcommand is provided in case this function
needed. When used this subcommand prefaces data coming
the terminal. The parameters and give the
coordinates of the beginning of the transmission.
be less than or equal to M-1 and must be less than
equal to N-1. It is assumed that all data between this
TRANSMIT and the next one starts at the coordinates
by the first subcommand and continues filling each
thereafter according to the constraints of the screen
the format effectors in the data. Thus an intelligent
sloppy user-host DET implementation (depending on your
of view) need only include a DATA TRANSMIT subcommand
the new starting point is different from the last
point
6. Sample
19
John Day Data Entry Terminal
June 27,1977 NIC 40652
RFC 731
The nomenclature of RFC 726 will be used to describe this example.
quote that RFC
"S:" is sent from serving host to using host
"U:" is sent from using host to serving host
"T:" is entered by the terminal user
"P:" is printed on the terminal
Text surrounded by square brackets([]) is commentary.
surrounded by angle brackets (<>) is to be taken as a single unit
E.g, carriage return is , and the decimal value 27
represented <27>.
We assume that the user has established the Telnet connection
logged on, and an application program has just been started
by the user directly or through a canned start up procedure.
presentation on the page is meant to merely group entities
and does not imply the position of message boundaries. One
assume that any part of the dialogue may be sent as one or
messages. The first action of the program or Telnet is
negotiate the DET option
S:
U:
S: