This proposal is somewhat different from what was implemented. See “External Reference Specifications: Series/1 Front-End Processor for KeyKOS”, KL115-02 for what is implemented for the Series 1. See (s1x25) for some comments about the implemented interface.
Desiderata
We should take into consideration whatever ideas we can concerning SNA functions that might conveniently fall to the S1.
Between the S1 and the 370 channel is an interface with a single 370 I/O address.
Experience indicates that some form of error control is frequently useful. It is useful in detecting not only real hardware errors, but also program bugs and misunderstandings of hardware and protocol specifications. This feature should be negotiated at reset time and be in effect only with the consent of both sides of the interface.
The checksum is omitted unless both sides agree in the reset sequence.
An XOR may be nearly as good here. But I still remember an error 26 years ago on an IBM 727 tape drive where two adjacent tape characters consisting of a single bit were dropped. It cost me several days to track down the error. A sum with carries would have caught that error.
Discriminants X'00FF' and X'FF00' (a diagnostic tool) require no checksum.
The body consists of:
A two byte counter, SC, of packet transmissions in the particular direction and a two byte value, RC, which is the SC value from the most recent transmission in the opposite direction, followed by
A sequence of self delimiting super packets, one for each X.25 DTE/DCE interface with traffic. It is polite but not necessary that one interface have no more than one super packet within a transmission. A super packet consists of:
A two byte X.25 interface index and a sequence of packets each preceded by a two byte packet length indication. A super packet is terminated by a zero length packet.
Thus if M=2 then each packet's size field will be at an even address within a transmission. This restriction may allow a more efficient implementation on some machines.
Following the discriminant is a four byte transmission buffer size. The recipient must not send a longer transmission (until another reset).
Following the buffer size of an inbound reset command or response is the two byte offset modulus M.
Following the modulus is a two byte field of bits. Bit 0 of this field is an indication of desire and ability to generate and check checksums. Checksums are in effect just if this bit is 1 in both a reset and the reset response.
I do not think that this reset sequence from the 370 should cause the S1 to issue a “Restart request” to the DCE; the 370 will presumably do that.
{Echoed string} X'FF00' followed by the echoed string.
Is this useful?
When the 370 gets an attention interrupt it reads the interface.
The S1 transmits any ready inbound packets to the 370.
I still think two addresses would be better.
In support of this we should devise a transmission from the 370 to the S1 selecting a delay or similar parameter to encourage the batching of input. Presumably this parameter could be changed at any time, perhaps to reflect observed system load.
Perhaps the S1 would like to employ similar control over batching of outbound packets.