Network Working Group
Request for Comments: 452
NIC: 14136
J. Winett
JMW
8 February 1973

TELNET Command at Host LL

The attached writeup documents the use of the TELNET command at Host LL for uses under the CP/CMS time-sharing system. This command provides for use in a HALF DUPLEX or FULL DUPLEX mode and can be used with ASCII codes or with EBCDIC codes (i.e., transparent mode). The keyboard conventions allow for entering all ASCII codes using a CONTROL character followed by another character for the codes not present on an IBM 2741 terminal. In addition a number of local TELNET control commands have been defined which allows the mode of operation to be changed, the redefinition of special characters, the sending of TELNET control codes, as well as for obtaining input from a file instead of from the terminal. These later features provide for a rudimentary file transfer facility.

This material has not been reviewed for public release and is intended only for use with the ARPA network. It should not be quoted or cited in any publication not related to the ARPA network.

   TELNET

Purpose:

To access another terminal oriented system on the ARPA network.

Format:

      TELNET host <tag> RESUME     EBCDIC      HALFDUP
                    1    OPEN       ASCII      FULLDUP

host - either the hexadecimal code for a foreign network service

site or a standard mnemonic for a foreign site. See Figure 1.

tag - the identifier for the local connections to the network.

The tag is used together with the address of the virtual machine descriptor table (UTABLE) to form local socket numbers which are used in the network protocol.

RESUME - used to reactivate communications with a foreign site

after having previously left the TELNET command leaving the connections open.

EBCDIC - to communicate with EBCDIC codes. The default is network

ASCII.

HALFDUP - to operate under a half duplex protocol, i.e. with a

locked keyboard.

The EBCDIC HALFDUP the protocol assumes that the TELNET break code (circle C) will be received to indicate when the keyboard should be locked for input.

In ASCII HALFDUP the keyboard will lock after a line of input and will unlock after one or more lines have been received for output. An external interrupt will also unlock a locked keyboard.

The default is full duplex where the keyboard is always unlocked for input. A null line is required to temporarily lock the keyboard in order to receive output.

Usage:

A number of hosts on the ARPA network provide TELNET service. A Network Virtual Terminal (NVT) has been specified so that using sites can write one TELNET program which maps a local terminal into the NVT to access any serving site on the network. Once communication has been established between a using site and a serving site, keyed input is sent to the serving system and output from the serving site, when received, is typed on the local terminal.

The NVT protocol requires that the keyboard be capable of entering all of the 128 ASCII codes together with a number of the TELNET control codes. To support an NVT with an IBM 2741 terminal, it is necessary to adapt a control convention for entering codes which are not associated with single keys on the keyboard. In addition, since CP/CMS processes input from a 2741 on a line at a time terminated with a newline, a means must be establish for entering a sequence of characters for transmission which is not terminated with a newline code.

When TELNET is initiated the message

                           ENTER CONTROL CHARACTER

is typed. A non-blank character should then be entered which defines the character which, in combination with another character, will be used to enter codes not associated with single keys. The control character is also used for other special control functions as described below.

Codes:

The NVT usually requires that characters be transmitted in an eight bit ASCII code. Since the TELNET command is written to process EBCDIC codes ASCII codes received are translated into ASCII before being sent to a serving site. Figure 2 gives the complete definition of EBCDIC indicating the EBCDIC controls and EBCDIC graphics. Figure 3 gives the codes for the ASCII controls and graphics. The complete mapping between 8-bit EBCDIC codes and 8-bit network ASCII codes is shown in Figure 4. The EBCDIC newline code (NL) is mapped into the ASCII codes for the pair of characters CR-IF.

The following ASCII/EBCDIC mapping is used for the non-EBCDIC graphics:

                        ASCII   EBCDIC
           
                   TILDE (7E) = (A1) NOT
                     BAR (7C) = (6A) OR
              BACK SLASH (5C) = (EO)
                   CARAT (5E) = (71)
                   GRAVE (6O) = (79)
              LEFT BRACE (7B) = (8B)
             RIGHT BRACE (7D) = (9B)
            LEFT BRACKET (5B) = (AD)
           RIGHT BRACKET (5D) = (BD)

The ASCII control DC3 (X' 13') maps to the EBCDIC control TM (X'13'). The ASCII control NUL (X' oo') is sent to the terminal as the EBCDIC code for NULL (X' oo') and is not mapped into an IDLE (X'17').

The TELNET control hide-your-input is mapped into the EBCDIC code for bypass (print suppress) and the TELNET control noecho is mapped into the EBCDIC code for restore (print restore). If the TELNET control for echo is received, a message is printed and it is mapped into an IDLE. Similarly, if the TELNET control for break is received, a message is printed and it is mapped into an IDLE unless operation is in EBCDIC HALFDUP mode in which case the break is used to indicate that any received characters should be printed and the keyboard unlocked for input. If a data mark or an interrupt is received, no action is taken except to print a message to notify the user of this occurrence.

Input:

When the control character is entered, the following character is mapped into a different code than that which it is normally mapped into, except when the following character is a space or a character not defined to have a meaning when preceded by the control character. Figure 5 gives the mapping of the characters on a 2741 keyboard when preceded by a control character. The following 2741 keyboard characters do not have a different meaning when preceded by the control character.

      $ # * % &
      + - = _
      . , : ;
      ! | ? (cent sign)
      SPACE
      BACKSPACE
      TAB

When a character is mapped into its control code, the control character is mapped into the code for IDLE. If the control character is entered as the last character before the newline key is entered, the sequence of characters entered is transmitted without the newline code. That is, the newline code is not transmitted when it is preceded by the control character.

When the 2741 keyboard is unlocked for input, characters received cannot be typed until the keyboard is locked again. After a line is entered, received characters can then be typed. When operating in full duplex or ASCII half duplex, a null line entered will allow received characters to be typed but will not cause the new line code to be transmitted. To cause a null line, i.e., just the new line code to be transmitted, the control character should be entered as the only character in the input line. In EBCDIC HALFDUP a null line entered will cause a null line to be transmitted.

Output:

ASCII output received from the NVT is converted into EBCDIC with the sequences CR-LF converted into IDLE-NL. The EBCDIC characters are then sent to the terminal. Note that not all 128 ASCII codes when converted to EBCDIC will print on a 2741. Of the 95 ASCII graphics and the 8 ASCII controls which are defined for the NVT printer, the following are not visible or audible:

CARAT
GRAVE
BACK SLASH
LEFT BRACE
RIGHT BRACE
LEFT BRACKET
RIGHT BRACKET
ASCII CONTROL BELL (BEL)
ASCII CONTROL VERTICAL TAB (HT)
ASCII CONTROL FORM FEED (FF)
ASCII CONTROL CARRIAGE RETURN (CR)

Figure 6 shows how the EBCDIC codes from X' 40' through X' FF' will appear on a 2741 terminal. Figure 7 shows how the EBCDIC codes will appear when printed with a PN train on the offline printer and Figure 8 shows how these codes appear when printed with a TN train.

Controls:

If the first character in an input line is the control character and the next character is a space, the rest of the line is interpreted as a TELNET control command. A control command consists of a control word and parameters separated by spaces. Controls are defined which permit TELNET controls to be transmitted to the serving site, allow input to come from a file or output to go to a file, allow CMS functions or transient commands to be issued, redefine the control character or TELNET mode, close connections or leave the TELNET command with connections still open, as well as controls to support a reader, punch, and printer with RJS operation. The controls are described below.

   CONTROL x

Where x is the new control character

   CLOSE

To close all connections and quit

   QUIT
   
      To leave TELNET
   
   EBCDIC
   
      To go into transparent mode, i.e., no translation
   
   ASCII

To translate input and output to network ASCII

   Break

To send the TELNET break code

   SYNC

To send the TELNET data mark code and an interrupt

   AATN

To send a TELNET break and a SYNC

   HIDE-YOUR-INPUT

To send the TELNET hide you input code

   NOECHO

To send the TELNET noecho code

   ECHO

To send the TELNET echo code

   CMS command arg1...argN

To issue CMS core resident function or transient command.

INPUT fn ft

* TERMIN
* *

To get input from a file If fn is defaulted, input is reset to come from the terminal. If fn is * file input resumes after the last line read. After an EOF, the next line read will be the first line of the file.

An external interrupt while input is coming from a file will cause the line number of the next line to be read from the file to be typed and input to be reset to come from the terminal.

   OUTPUT fn OFF TERM    INPUT    INOUT
          *  ON  NOTERM  NOINPUT  OUTPUT

To write output to the file "fn TERMOUT". If fn is defaulted, output is reset to go to the terminal. If fn is *, file OUTPUT is resumed with the same options as were last used.

For Output to the Terminal:

If the last character is a CR, a line with just the control character is typed on the next line (with a NL)

If the last character is not a NL or a CR, the line is typed without a NL (i.e., with TYPE).

For Output to a File:

If just a NL is in the line, just the control character is sent to the file.

If the last CHAR is not NL or CR, the control character is added after the last character, except if 130 characters must be sent to the file.

If the last CHAR is a CR, it is included in the file.

OFF causes all output to be discarded.

ON is the default, and causes output to the terminal.

TERM causes output to also go to the terminal.

NOTERM is the default, and causes output to go the file but not to the terminal.

OUTPUT is the default and causes just terminal output to be put to the file "FN termout".

INPUT causes both terminal input but not output to be put to the output file.

NOINPUT is defaulted and causes input to not go to the file.

   PURGE
   
      To purge all output currently received by the NCP.
      *****NOT YET IMPLEMENTED*****

READER fn ft

  • READER

To send a job to the RJS system at UCLA's CCN.

If fn and ft are defaulted, input will come from the card reader.

PRINTER fn ft

  • PRINTER

To receive printer output from the RJS system at UCLA's CCN.

To receive punch output from the RJS system at UCLA's CCN.

If fn and ft are defaulted, output goes to the printer.

PUNCH fn ft

  • PUNCH

If fn and ft are defaulted, output goes to the punch.

   HOST      SITE      MACHINE   SYSTEM      HOST NUMBER
                                           DEC   OCT   HEX
   
   NMC       UCLA      SIGNA-7   SEX         1     1    01
   ARC       SRI       PDP-10    NIC         2     2    02
   UCSB      UCSB      360/75    OS/MVT      3     3    03
   UTAH      UTAH      PDP-10    TENEX       4     4    04
   MULTICS   MIT       H-645     MULTICS     6     6    06
   SDC       SDC       370/155   ADEPT       8    10    08
   HARV      HARVARD   PDP-10    4S72        9    11    09
   LL        LL        360/67    CP/CMS     10    12    0A
   CASE      CASE      PDP-10    10/50      13    15    0D
   CMU       CMU       PDP-10    TOPS-10    14    16    0E
   ILLIAC    AMES      360/67    TTS/360    16    18    10
   AMES      AMES      B-6500    ?          15    17    0F
   CCN       UCLA      360/91    OS/MVT     65   101    41
   SRI       SRI-AI    PDP-10    TENEX      66   102    42
   BBNA      BBN       PDP-10    TENEX      69   105    45
   DMCG      MIT       PDP-10    ITS        70   106    46
   RAND      RAND-RCC  PDP-10    TENEX      71   107    47
   TX2       LL        TX-2      APEX       74   112    4A
   BBNB      BBN       PDP-10    TENEX     133   205    85
   MIATI     MIT       PDP-10    ITS       134   206    86

Serving Hosts on the APRA Network

Figure 1

[[See Figure 2 in PDF file.]]

Extended Binary-Coded Decimal Interchange Code (EBCDIC)

FIGURE 2

   and

[[See Figure 3 in PDF file.]]

USA Standard Code for Information Interchange (USASCII)

FIGURE 3

   ASCII    ASCII    ASCII    SYMBOLS    EBCDIC    EBCDIC
   DEC      OCT      HEX                 HEX       DEC
   
     0        0      (00)      NUL       (00)      00
     1        1      (01)      SOH       (01)      01
     2        2      (02)      STX       (02)      02
     3        3      (03)      ETX       (03)      03
     4        4      (04)      EOT       (37)      55
     5        5      (05)      ENQ       (2D)      45
     6        6      (06)      ACK       (2E)      46
     7        7      (07)      BEL       (2F)      47
     8       10      (08)      BS        (16)      22
     9       11      (09)      HT        (05)      05
    10       12      (0A)      LF        (25)      37
    11       13      (0B)      VT        (0B)      11
    12       14      (0C)      FF        (0C)      12
    13       15      (0D)      CR        (0D)      13
    14       16      (0E)      SO        (0E)      14
    15       17      (0F)      SI        (0F)      15
    16       20      (10)      DLE       (10)      16
    17       21      (11)      DC1       (11)      17
    18       22      (12)      DC2       (12)      18
    19       23      (13)      DC3       (13)      19
    20       24      (14)      DC4       (3C)      60
    21       25      (15)      NAK       (3D)      61
    22       26      (16)      SYN       (32)      50
    23       27      (17)      ETB       (26)      38
    24       30      (18)      CAN       (18)      24
    25       31      (19)      EM        (19)      25
    26       32      (1A)      SUB       (3F)      63
    27       33      (1B)      CTL       (27)      39
    28       34      (1C)      FS        (1C)      28
    29       35      (1D)      GS        (1D)      29
    30       36      (1E)      RS        (1E)      30
    31       37      (1F)      US        (1F)      31
    32       40      (20)      SP        (40)      64
    33       41      (21)      !         (5A)      90
    34       42      (22)      "         (7F)     127
    35       43      (23)      #         (7B)     123
    36       44      (24)      $         (5B)      91
    37       45      (25)      %         (6C)     108
    38       46      (26)      &         (50)      80
    39       47      (27)      '        (7D)     124
    40       50      (28)      (         (4D)      77
    41       51      (29)      )         (5D)      93
    42       52      (2A)      *         (5C)      92
    43       53      (2B)      +         (4E)      78
    44       54      (2C)      ,         (6D)     109
    45       55      (2D)      -         (60)      96
    46       56      (2E)      .         (4B)      75
    47       57      (2F)      /         (61)      97
    48       60      (30)      0         (F0)     240
    49       61      (31)      1         (F1)     241
    50       62      (32)      2         (F2)     242
    51       63      (33)      3         (F3)     243
    52       64      (34)      4         (F4)     244
    53       65      (35)      5         (F5)     245
    54       66      (36)      6         (F6)     246
    55       67      (37)      7         (F7)     247
    56       70      (38)      8         (F8)     248
    57       71      (39)      9         (F9)     249
    58       72      (3A)      :         (7A)     122
    59       73      (3B)      ;         (5E)      94
    60       74      (3C)      <         (4C)      76
    61       75      (3D)      =         (7E)     126
    62       76      (3E)      >         (6E)     110
    63       77      (3F)      ?         (6F)     111
    64      100      (40)      @         (7C)     124
    65      101      (41)      A         (C1)     193
    66      102      (42)      B         (C2)     194
    67      103      (43)      C         (C3)     195
    68      104      (44)      D         (C4)     196
    69      105      (45)      E         (C5)     197
    70      106      (46)      F         (C6)     198
    71      107      (47)      G         (C7)     199
    72      110      (48)      H         (C8)     200
    73      111      (49)      I         (C9)     201
    74      112      (4A)      J         (D1)     209
    75      113      (4B)      K         (D2)     210
    76      114      (4C)      L         (D3)     211
    77      115      (4D)      M         (D4)     212
    78      116      (4E)      N         (D5)     213
    79      117      (4F)      O         (D6)     214
    80      120      (50)      P         (D7)     215
    81      121      (51)      Q         (D8)     216
   
    82      122      (52)      R         (D9)     217
    83      123      (53)      S         (E2)     226
    84      124      (54)      T         (E3)     227
    85      125      (55)      U         (E4)     228
    86      126      (56)      V         (E5)     229
    87      127      (57)      W         (E6)     230
    88      130      (58)      8         (E7)     231
    89      131      (59)      Y         (E8)     232
    90      132      (5A)      Z         (E9)     233
    91      133      (5B)      [         (AD)     173
    92      134      (5C) (cent sign)    (4A)      74  (BACK-SLASH)
    93      135      (5D)      ]         (BD)     189
    94      136      (5E)                (71)     113  (CARAT)
    95      137      (5F)      _         (6D)     109
    96      140      (60)                (79)     121  (GRAVE)
    97      141      (61)      a         (81)     129
    98      142      (62)      b         (82)     130
    99      143      (63)      c         (83)     131
   100      144      (64)      d         (84)     132
   101      145      (65)      e         (85)     133
   102      146      (66)      f         (86)     134
   103      147      (67)      g         (87)     135
   104      150      (68)      h         (88)     136
   105      151      (69)      i         (89)     137
   106      152      (6A)      j         (91)     145
   107      153      (6B)      k         (92)     146
   108      154      (6C)      l         (93)     147
   109      155      (6D)      m         (94)     148
   110      156      (6E)      n         (95)     149
   111      157      (6F)      o         (96)     150
   112      160      (70)      p         (97)     151
   113      161      (71)      q         (98)     152
   114      162      (72)      r         (99)     153
   115      163      (73)      s         (A2)     162
   116      164      (74)      t         (A3)     163
   117      165      (75)      u         (A4)     164
   118      166      (76)      v         (A5)     165
   119      167      (77)      w         (A6)     166
   120      170      (78)      x         (A7)     167
   121      171      (79)      y         (A8)     168
   122      172      (7A)      z         (A9)     169
   123      173      (7B)      {         (8B)     139
   124      174      (7C)      |         (4F)      79  (BAR/OR)
   125      175      (7D)      }         (9B)     155
   126      176      (7E) (broken bar)   (5F)      95  (TILDE/NOT)
   127      177      (7F)      DEL       (07)       7
   ASCII   ASCII   ASCII    TELNET         EBCDIC     EBCDIC
   DEC     OCT     HEX     CONTROLS        HEX        DEC
   
   128     100     (80)   DATA-MARK        (80)       128
   129     101     (81)   BREAK            (38)        56
   130     102     (82)   NOP              (17)        23  IDLE
   131     103     (83)   NOECHO           (14)        20  RESTORE
   132     104     (84)   ECHO             (23)        35
   133     105     (85)   HIDE-YOUR INPUT  (24)        36  BYPASS

ASCII/EBCDIC Code Mappings

FIGURE 4

   EBCDIC                  EBCDIC ASCII
   
   CENT    (4A) = ESC             (27)   (1B)
   
   CTL <   (4C) = LEFT BRACKET    (AD)   (5B)
   CTL >   (6E) = RIGHT BRACKET   (BD)   (5D)
   CTL (   (4D) = LEFT BRACE      (8B)   (7B)
   CTL )   (5D) = RIGHT BRACE     (9B)   (7D)
   CTL /   (61) = BACK SLASH      (4A)   (5C)
   CTL "   (7F) = CARAT           (71)   (5E)
   CTL '  (7D) = GRAVE            (79)   (60)
   
   CTL 6   (F6) = FS              (1C)   (1C)
   CTL 7   (F7) = GS              (1D)   (1D)
   CTL 8   (F8) = RS              (1E)   (1E)
   CTL 9   (F9) = US              (1F)   (1F)
   CTL _   (6D) = US              (1F)   (1F)
   
   CTL (broken bar) (5F) = DEL             (07)   (7F)
   
   CTL @   (7C) = NUL             (00)   (00)
   CTL A   (C1) = SOH             (01)   (01)
   CTL B   (C2) = STX             (02)   (02)
   CTL C   (C3) = ETX             (03)   (03)
   CTL D   (C4) = EOT             (37)   (04)
   CTL E   (C5) = ENQ             (2D)   (05)
   CTL F   (C6) = ACK             (2E)   (06)
   CTL G   (C7) = BEL             (2F)   (07)
   CTL H   (C8) = BS              (16)   (08)
   CTL I   (C9) = HT              (05)   (09)
   CTL J   (D1) = LF              (25)   (0A)
   CTL K   (D2) = VT              (0B)   (0B)
   CTL L   (D3) = FF              (0C)   (0C)
   CTL M   (D4) = CR              (0D)   (0D)
   CTL N   (D5) = SO              (0E)   (0E)
   CTL O   (D6) = SI              (0F)   (0F)
   
   CTL P   (D7) = DLE             (10)   (10)
   CTL Q   (D8) = DC1             (11)   (11)
   CTL R   (D9) = DC2             (12)   (12)
   CTL S   (E2) = DC3             (13)   (13)
   CTL T   (E3) = DC4             (3C)   (14)
   CTL U   (E4) = NAK             (3D)   (15)
   CTL V   (E5) = SYN             (32)   (16)
   CTL W   (E6) = ETB             (26)   (17)
   CTL X   (E7) = CAN             (18)   (18)
   CTL Y   (E8) = EM              (19)   (19)
   CTL Z   (E9) = SUB             (3F)   (1A)
   
        EBCDIC                   EBCDIC ASCII
   
   CTL 1 (F1) = BREAK          (38)  (81) - CIRCLE C
   CTL 2 (F2) = NOP            (17)  (82) - IDLE
   CTL 3 (F3) = NO ECHO        (14)  (83) - RESTORE
   CTL 4 (F4) = ECHO           (23)  (84)
   CTL 5 (F5) = HIDE YOU INPUT (24)  (85) - BYPASS

DATA MARK (80) CANNOT BE ENTERED FROM THE KEYBOARD

THE FOLLOWING 2741 KEYBOARD CHARACTERS DO NOT
HAVE A MEANING AS A CONTROL:

         $ # * % &
         + - = _
         . , :
         ! | ? (cent sign)
         SPACE
         BACKSPACE
         TAB

Keyboard Control Character Mappings

FIGURE 5 (CONTINUED)

[[See Figure in PDF file.]]
Hex Code X'xy' for Characters on a 2741 Terminal

   [[See Figure in PDF file.]]
   Decimal Code D 'xxy" for Characters on a 2741 terminal
   
   HT  X'05' = D'005' Horizontal Tab
   LC  X'06' = D'006' Lower Case
   RES X'14' = D'020' Print Restore
   NL  X'15' = D'021' New Line
   BS  X'16' = D'022' Back Space
   IL  X'17' = D'023' Idle
   BYP X'24' = D'036' Print Bypass
   LF  X'25' = D'037' Line Feed
   UC  X'36' = D'054' Upper Case

Hex Code X'xy' and Decimal Code D'xxy' for 2741 Control Codes

[[See Figure in PDF file.]]
Hex Code X'xy' for Characters on the PN train

[[See Figure in PDF file.]]
Decimal Code D'xxy' for characters on the PN train

[[See Figure in PDF file.]]
Hex Code X'xy' for Characters on th TN train

[[See Figure in PDF file.]]
Decimal Code D'xxy' for Characters on the TN train

          [This RFC was put into machine readable form for entry]
     [into the online RFC archives by Helene Morin, Via Genie,12/1999]