1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
|
Network Working Group J. Winett
Request for Comments: 109 MIT Lincoln Laboratory
NIC: 5805 24 March 1971
Level III Server Protocol for the Lincoln Laboratory
360/67 Host
Disclaimer
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.
Introduction
The Lincoln Laboratory IBM 360/67 is connected to the ARPA network
and acts as a serving host providing access to the CP-67 virtual
machine operating system. Upon completion of the Login procedure,
users have control of a 360 virtual machine through a virtual 1052
online console. Attached to the virtual machine is a virtual card
reader, card punch and line printer, and a number of disk storage
devices. The 360 virtual machine can be either a virtual 360/67 with
dynamic address translation hardware or a standard System/360. Most
users run a standard 360 with 256K bytes of virtual memory and
operate the CMS conversational monitor system. CMS provides
facilities for file creation, maintenance and manipulation, program
development, debugging and execution, and a number of other useful
utility functions. The section in the Network Notebook on the
Lincoln Laboratory 360/67 more fully describes the facilities
available.
Network Control Program
All communication with the 360/67 through the IMP are processed by a
Network Control Program (NCP). The NCP operates with the Host-Host
Protocol described in the Network Working Group Document No. 1 dated
3 August 1970.
Initial Connection Protocol
To create a virtual machine from the network, a pair of connections
must be made with the LOGGER. The sockets to be used are assigned
following the Initial Connection Protocol (ICP). The LOGGER is
enabled and waiting for an RTS control command for socket X'0A 0000
01'. This ICP socket corresponds to home X'0A', user X'0000', and
tag X'01' (send gender). Requests for connection on the ICP socket
are stacked until it becomes free. If the LOGGER is willing to
Winett [Page 1]
^L
RFC 109 Level II Server Protocol 24 March 1971
service another network user, a 32 bit socket ID of a receive socket
will be sent over this initial connection and the ICP socket will
then be closed. If the LOGGER is not willing to service another
network user, it will not complete the initial connection for the ICP
socket and will refuse the request by closing the connection without
completing it.
LOGGER Protocol
Once a pair of user sockets have been assigned, the connection
protocol should be completed on these sockets. The LOGGER then
expects to receive (on the receive socket) one 8-bit byte indicating
the data type which characterizes the transmission code used to
communicate with the network user over this pair of sockets. A code
of X'01' implies 7 bit ASCII code in 8-bit bytes with the leading bit
zero. A code of X'02' implies 8-bit EBCDIC code. When the data type
code is received, the LOGGER will echo back the data type code over
the send socket followed by the message:
LINCOLN LABORATORY CP-67 ONLINE NL
in the appropriate code. (In ASCII, NL is transmitted as CR LF).
The procedure continues according to the normal CP-67 login protocol
with the LOGGER performing an additional function of mapping network
userids and passwords into valid CP-67 userids and passwords. This
mapping is specified by entries in a file (the LOGGER FILE) which the
LOGGER accesses. If a network userid does not match an entry in the
file or if the password given does not match the corresponding
network password, the usual CP responses will be sent to the users.
Thus network access to the Lincoln Laboratory system is restricted to
those accounts for which an appropriate entry has been made in the
LOGGER FILE.
It should be noted that CP transmits a BYP code (Bypass) to suspend
the printing of characters keyed while a password is being entered.
After the password has been entered, CP transmits a RES code
(Restore) to resume the printing when characters are keyed. When
communicating in ASCII, these character codes are converted to X'FF'
since no corresponding ASCII code is defined. Refer to the Network
Resource Notebook for more details on CP-67 and on CMS.
The NET Account
Lincoln Laboratory is providing one account which can be used by
network users to familiarize themselves with our time-sharing system.
The userid of this account is NET and the password is ARPA. This
account has 900 records of storage, which can store approximately
Winett [Page 2]
^L
RFC 109 Level II Server Protocol 24 March 1971
720,000 characters. NET users are free to ERASE any file on this
account since many different people may use this account.
The SERVER Protocol
CP-67 operates on a line at a time, i.e., a group of characters are
processed as a line and not as a sequence of individual characters.
Also, the system does normally buffer input lines, that is, input is
not normally entered until requested by a read from the system. With
IBM 2741 or 1052 terminals, the keyboard is locked until a read is
requested. The virtual terminals through which network users have
access to the CP-67 system have been designed to support either a
line oriented terminal or a character oriented terminal. When CP
requests a line of input, the SERVER transmits a prompting code
X'80'. This character can be used to signal a user process to change
transmission modes and to transmit an input line. Characters
received by the SERVER are buffered until a NL character is received.
Lines received can then be used to satisfy CP requests for an input
line.
CP may send out lines which may or may not end with a NL character.
If a line does not end with a NL character, the prompting character
will naturally be sent following the output line to request input to
a CP process.
When a user wishes to interrupt a CP process, i.e., to change modes,
an interrupt code X'80' should be sent to the SERVER. This code will
result in an asynchronous interrupt being sent to the running
process, stimulating the pressing of the 'attention' button on a 2741
terminal. Together with the transmission of the interrupt code, the
user should cause an INS to be sent over the send link. This signal
will be synchronized with the interrupt code. If the interrupt code
has not yet been received and processed, all characters buffered and
those received before the receipt of the interrupt code will be
flushed, i.e., deleted. When the interrupt code is received, it will
be paired with the previously received INS. If an INS is received
after an interrupt code has been received and processed, the INS will
be paired with this previously received interrupt code.
If CP has a line to send to a user after it has requested an input
line but before it has received any input, the SERVER will transmit
an INS on the user's receive link to notify the user that previously
sent prompting character should be retracted and that a line has been
or will be sent to the user. This message line is called a
"warning".
Winett [Page 3]
^L
RFC 109 Level II Server Protocol 24 March 1971
Graphic and Control Codes
Figure 1 gives the 8-bit codes for the EBCDIC graphics and controls.
Figure 2 gives the 7-bit codes for the ASCII graphics and controls.
The controls are tabulated and compared in Figure 3. The standard
interpretation of the ASCII controls are given in Figure 4.
There are 4 ASCII codes which do not have a corresponding graphic or
control in the EBCDIC code. The EBCDIC codes given to these codes
are as follows:
| Hex Code
ASCII |-------+--------
Symbol | ASCII | EBCDIC
-------+-------+--------
DC3 | 13 | 3A
| |
` | 60 | 70
| |
\ | 5C | 71
| |
^ | 5E | 72
There are 29 EBCDIC graphics codes and 19 EBCDIC control codes which
do not have a corresponding graphic or control in the ASCII code. In
addition, there are 84 other EBCDIC codes whose interpretation is
unspecified. Four of these codes have been chosen to correspond to
the ASCII control and ASCII graphics which do not have a
corresponding EBCDIC code. When converting EBCDIC codes to ASCII
codes, the remaining 80 codes plus the 29 EBCDIC graphics and 18
EBCDIC controls (not counting NL) are converted into the code X'FF'.
The NL character is treated specially. The NL character, EBCDIC code
X'15', is converted into the two character sequence CR LF, i.e.,
ASCII X'0D 0A'. As stated above, the code X'80' is transmitted as a
prompting character whenever CP requests an input line.
On converting from ASCII to EBCDIC, if any code other than the 128
ASCII codes, or the interrupt codem X'80', is received, it is
converted to the code X'FF'. In addition , whenever the two ASCII
characters CR LF are found sequentially in the input stream, they are
converted into the single EBCDIC character NL.
[In Figure 1, positions shown as "[?]" cannot be printed in ASCII.]
Winett [Page 4]
^L
RFC 109 Level II Server Protocol 24 March 1971
0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
2 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
3 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
4567+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
0000|NUL|DLE|DS | |SP | & | - | | | |[?]|[?]| | | | 0 |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
0001|SOH|DC1|SOS| | | | / | | a | j |[?]|[?]| A | J | | 1 |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
0010|STX|DC2|FS |SYN| | | | | b | k | s |[?]| B | K | S | 2 |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
0011|ETX|TM | | | | | | | c | l | t |[?]| C | L | T | 3 |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
0100|PF |RES|BYP|PN | | | | | d | m | u |[?]| D | M | U | 4 |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
0101|HT |NL |LF |RS | | | | | e | n | v |[?]| E | N | V | 5 |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
0110|LC |BS |ETB|UC | | | | | f | o | w |[?]| F | O | W | 6 |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
0111|DEL|IL |ESC|EOT| | | | | g | p | x |[?]| G | P | X | 7 |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
1000| |CAN| | | | | | | h | q | y |[?]| H | Q | Y | 8 |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
1001| |EM | | | | | | | i | r | z |[?]| I | R | Z | 9 |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
1010|SMM|CC |SM | |[1]| ! | | : | | | | | | | | |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
1011|VT |CU1|CU2|CU3| . | $ | , | # | { | } |[?]|[?]| | | | |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
1100|FF |IFS| |DC4| < | * | % | @ |[?]|[?]|[?]|[?]| | | | |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
1101|CR |IGS|ENQ|NAK| ( | ) | _ | ' |[?]|[?]| [ | ] | | | | |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
1110|SO |IRS|ACK| | + | ; | > | = |[?]|[?]|[?]|[?]| | | | |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
1111|SI |IUS|BEL|SUB| | |[2]| ? | " |[?]|[?]|[?]|[?]| | | | |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
+---+---+---+---+---+---+---+---+
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
+---+---+---+---+---+---+---+---+
Code Structure
Figure 1.
Extended Binary-Coded Decimal Interchange Code (EBCDIC)
Winett [Page 5]
^L
RFC 109 Level II Server Protocol 24 March 1971
8 0 0 0 0 0 0 0 0
7 0 0 0 0 1 1 1 1
6 0 0 1 1 0 0 1 1
5 0 1 0 1 0 1 0 1
4321+---+---+---+---+---+---+---+---+
0000|NUL|DLE|SP | 0 | @ | P | ` | p |
+---+---+---+---+---+---+---+---+
0001|SOH|DC1| ! | 1 | A | Q | a | q |
+---+---+---+---+---+---+---+---+
0010|STX|DC2| " | 2 | B | R | b | r |
+---+---+---+---+---+---+---+---+
0011|ETX|DC3| # | 3 | C | S | c | s |
+---+---+---+---+---+---+---+---+
0100|EOT|DC4| $ | 4 | D | T | d | t |
+---+---+---+---+---+---+---+---+
0101|ENQ|NAK| % | 5 | E | U | e | u |
+---+---+---+---+---+---+---+---+
0110|ACK|SYN| & | 6 | F | V | f | v |
+---+---+---+---+---+---+---+---+
0111|BEL|ETB| ' | 7 | G | W | g | w |
+---+---+---+---+---+---+---+---+
1000|BS |CAN| ( | 8 | H | X | h | x |
+---+---+---+---+---+---+---+---+
1001|HT |EM | ) | 9 | I | Y | i | y |
+---+---+---+---+---+---+---+---+
1010|LF |SUB| * | : | J | Z | j | z |
+---+---+---+---+---+---+---+---+
1011|VT |ESC| + | ; | K | [ | k | { |
+---+---+---+---+---+---+---+---+
1100|FF |FS | , | < | L | \ | l | | |
+---+---+---+---+---+---+---+---+
1101|CR |GS | - | = | M | ] | m | } |
+---+---+---+---+---+---+---+---+
1110|SO |RS | . | > | N | ^ | n | ~ |
+---+---+---+---+---+---+---+---+
1111|SI |SU | / | ? | O | _ | o |DEL|
+---+---+---+---+---+---+---+---+
+---+---+---+---+---+---+---+---+---+---+---+---+
| 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 |
+---+---+---+---+---+---+---+---+
Code Structure
Figure 2.
USA Standard Code for Information Interchange (USASCII)
Winett [Page 6]
^L
RFC 109 Level II Server Protocol 24 March 1971
CAT EBCDIC ASCII TTY PTTC FUNCTION
NUL NUL NULL Null
CC SOH SOH SOM Start of Heading
CC STX STX EOA EOA (D) Start of Text
CC ETX ETX EOM End of Text
DC PF PF Punch Off
FE HT HT H.TAB TAB Horizontal Tab
GR LC LC Lower Case
DEL DEL RUBOUT DEL Delete
SMM Start of Manual Message
FE VT VT V.TAB Vertical Tab
FE FF FF FORM Form Feed
FE CR CR RETURN Carriage Return
GR SO SO SO Shift Out
GR SI SI SI Shift In
CC DLE DLE DC0 Data Link Escape
DC DC1 DC1 X-ON Device Control 1
DC DC2 DC2 TAPE ON Device Control 2
TM Tape Mark
DC RES RES Restore
FE NL NL New Line
FE BS BS BS Backspace
IL IL Idle
CAN CAN FE0 CAN Cancel
EM EM S1 End of Medium
CC Cursor Control
CU CU1 Customer Use 1
IS IFS FS S4 Info. Field Separator
IS IGS GS S5 Info. Group Separator
IS IRS RS S6 Info. Record Separator
IS IUS US S7 Info Unit Separator
ED DS Digit Select
ED SOS Start of Significance
ED FS Field Separator
DC BYP BYP Bypass
FE LF LF LF LF Line Feed
CC ETB ETB LEM EOB (B) End of Text Block
ESC ESC S3 PRE Escape
SM Set Mode
CU CU2 Customer Use 2
CC ENQ ENQ WRU Enquiry
CC ACK ACK RU (Y) Acknowledge
BEL BEL BELL Bell
CC SYN SYN SYNC Synchronous Idle
DC PN PN Punch On
DC RS RS Reader Stop
GR UC UC Upper Case
Winett [Page 7]
^L
RFC 109 Level II Server Protocol 24 March 1971
CC EOT EOT EOT EOT (C) End of Transmission
CU CU3 Customer Use 3
DC DC4 DC4 TAPE OFF Device Control 4
CC NAK NAK ERROR (N) Negative Acknowledge
SUB SUB S2 Substitute
DC DC3 X-OFF Device Control 3
Figure 3
Control Functions Compared
CC (Communication Control). A functional character intended to
control or facilitate transmission of information over
communication networks.
FE (Format Effector). A functional character which controls the
layout or positioning of information in printing or display
devices.
IS (Information Separator). A character which is used to separate
and qualify information in a logical sense. There is a group
of four such characters, which are to be used in a hierarchical
order.
DC (Device Control). A functional character used for the control
of ancillary devices associated with data processing of
telecommunication systems, more especially switching devices
"on" and "off".
ED (Edit and Mark). A control character used by the System/360
Edit and Mark (EDMK) instruction for the formatting of
alphanumeric fields.
GB (Graphic Control). A control character indicating that the code
combinations which follow are to be interpreted in a particular
code table, depending upon the particular control character.
CU (Customer Use). A character excluded from future assignment by
IBM. These "protected" codes are intended for use by customer
systems so that their use will not conflict with a possible
future IBM use.
Figure 3 (Continued)
Categories of Control Functions
Winett [Page 8]
^L
RFC 109 Level II Server Protocol 24 March 1971
NUL (Null). The all-zeros character which may serve to accomplish
time fill and media fill.
SOH (Start of Heading). A communication control character used at
the beginning of a sequence of characters which constitute a
machine-sensible address or routing information. Such a
sequence is referred to as the _heading_. An STX character has
the effect of terminating a heading.
STX (Start of Text). A communication control character which
precedes a sequence of characters that is to be treated as an
entity and transmitted through to the ultimate destination.
Such a sequence is referred to as _text_. SIX may be used to
terminate a sequence of characters started by SOH.
ETX (End of Text). A communication control character used to
terminate a sequence of characters started with STX and
transmitted as an entity.
EOT (End of Transmission). A communication control character used
to indicate the conclusion of a transmission, which may have
contained one or more texts and any associated headings.
ENQ (Enquiry). A communication control character used in data
communication systems as a request for a response from a remote
station. It may be used as a "Who Are You" (WRU) to obtain
identification, or may be used to obtain station status, or
both.
ACK (Acknowledge). A communication control character transmitted by
a receiver as an affirmative response to a sender.
BEL (Bell). A character for use when these is a need to call for
human attention. It may control alarm or attention devices.
BS (Backspace). A format effector which controls the movement of
the printing position one printing space backward on the same
printing line (applicable also to display devices).
HT (Horizontal Tabulation). A format effector which controls the
movement of the printing position to the next in a series of
predetermined positions along the printing line (applicable
also to display devices and the skip function on punched
cards.)
LF (Line Feed). A format effector which controls the movement of
the printing position to the next printing line (also
applicable to display devices).
Winett [Page 9]
^L
RFC 109 Level II Server Protocol 24 March 1971
VT (Vertical Tabulation). A format effector which controls the
movement of the printing position to the next in a series of
predetermined printing lines (also applicable to display
devices).
FF (Form Feed). A format effector which controls the movement of
the printing position to the first predetermined printing line
on the next form or page (also applicable to display devices).
CR (Carriage Return). A format effector which controls the
movement of the printing position to the first printing
position on the same printing line (also applicable to display
devices).
SO (Shift Out). A control character indicating that the code
combinations which follow shall be interpreted as outside of
the character set of the standard code table until a Shift In
Character is reached.
SI (Shift In). A control character indicating that the code
combinations which follow shall be interpreted according to the
standard code table.
DLE (Data Link Escape). A communication control character which
will change the meaning of a limited number of contiguously
following characters. It is used exclusively to provide
supplementary controls in data communication networks.
DC1, DC2, DC3, DC4 (Device Controls). Characters for the control of
ancillary devices associated with data processing or
telecommunication systems, more especially switching devices
"on" and "off". (If a single "stop" control is required to
interrupt of turn off ancillary devices, DC4 is the preferred
assignment.)
NAK (Negative Acknowledge). A communication control character
transmitted by a receiver as a negative response to a sender.
SYN (Synchronous Idle). A communication control character used by
a synchronous transmission system in the absence of any other
character to provide a signal from which synchronism may be
achieved or retained.
Winett [Page 10]
^L
RFC 109 Level II Server Protocol 24 March 1971
ETB (End of Transmission Block). A communication control character
used to indicate the end of a block of data for communication
purposes. ETB is used for blocking data where the block
structure is not necessarily related to the processing format.
CAN (Cancel). A control character used to indicate that the data
with which it is sent is in error or is to be disregarded.
EM (End of Medium). A control character associated with the sent
data which may be used to identify the physical end of the
medium, or the end of the used, or wanted, portion of
information recorded on a medium. (The position of this
character does not necessarily correspond to the physical end
of the medium.
SS (Start of Special Sequence). A control character used to
indicate the start of a variable length sequence of characters
which have special significance or which are to have special
handling.
ESC (Escape). A control character intended to provide code
extension (supplementary characters) in general information
interchange. The Escape character itself is a prefix affecting
the interpretation of a limited number of contiguously
following characters.
FS (File Separator), GS (Group Separator), RS (Record Separator)
and US (Unit Separator). These information separators may be
used within data in optional fashion, except that the
hierarchical relationship shall be : FS is the must inclusive,
then GS, then RS, and US is least inclusive. (The content and
length of a File, Group, Record, or Unit are not specified.)
DEL (Delete). This character is used primarily to "erase" or
"obliterate" erroneous or unwanted characters in perforated
tape. (In the strict sense, DEL is not a control character.)
Figure 4
ASCII Control Functions
Winett [Page 11]
^L
RFC 109 Level II Server Protocol 24 March 1971
Endnotes
[1] - Cent sign
[2] - Logical not ("bent bar")
[?] - Graphics not in ASCII. See Postscript or PDF version of
this document.
[This RFC was put into machine readable form for entry]
[into the online RFC archives by Lorrie Shiota, 10/02]
Winett [Page 12]
^L
|