Network Working Group                                          J. Winett
Request for Comments: 452                                            JMW
NIC: 14136                                               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.




Winett                                                          [Page 1]

RFC 452                TELNET Command at Host LL           February 1973


     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




Winett                                                          [Page 2]

RFC 452                TELNET Command at Host LL           February 1973


     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.




Winett                                                          [Page 3]

RFC 452                TELNET Command at Host LL           February 1973


  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:






Winett                                                          [Page 4]

RFC 452                TELNET Command at Host LL           February 1973


           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



Winett                                                          [Page 5]

RFC 452                TELNET Command at Host LL           February 1973


  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.







Winett                                                          [Page 6]

RFC 452                TELNET Command at Host LL           February 1973


  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*****



Winett                                                          [Page 7]

RFC 452                TELNET Command at Host LL           February 1973


  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




Winett                                                          [Page 8]

RFC 452                TELNET Command at Host LL           February 1973


                      [[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



Winett                                                          [Page 9]

RFC 452                TELNET Command at Host LL           February 1973


   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



Winett                                                         [Page 10]

RFC 452                TELNET Command at Host LL           February 1973


   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





Winett                                                         [Page 11]

RFC 452                TELNET Command at Host LL           February 1973


  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)




Winett                                                         [Page 12]

RFC 452                TELNET Command at Host LL           February 1973


  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)













Winett                                                         [Page 13]

RFC 452                TELNET Command at Host LL           February 1973


  [[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]



















Winett                                                         [Page 14]