See (p2,gtt) for Tymnet access via VM's Tymnet base. See (p2,tymnet) for a description of the only program that we now expect to use the TLBA key.
This key provides access to a read device and a write device connected to a "Lemcom" Tymnet base.
Each device is either (_working) or not. {It is an exercise for the student to determine the relationship of this definition to IBM subchannel terminology.} The device becomes working when an I/O operation for that device begins. The device becomes not working when the device signals the completion of the operation.
A flag called "wait end" is initially off. It is turned on by an "interesting event" and by the "abort wait" operation. It is turned off when a wait completes with return code 0 or 2.
A flag called "polling" is initially off. It is turned on by the "start poll" operation and is turned off by the "abort poll" operation and by an "interesting event".
An "interesting event" is one of the following:
An "interesting termination" of the read device;
An "abort poll" operation is done while both devices are not working {i.e., during the 0.2 second delay of the polling cycle}.
An "interesting termination" of a device is one of the following:
The device becomes not working {i.e., interrupts} and there is an error. There is an error on the write device if any status bits are on besides channel end and device end. There is an error on the read device if any status bits are on except channel end, device end, and the datacount.
The device becomes not working {i.e., interrupts} and the other device is also not working and:
the read data is not the six bytes 0, 255, seq, 2, seq, 2.
For each operation below, if rtod is not equal to restart-tod, c=1 and the string (8, restart-tod), (8, cpuid) is returned. Restart-tod is the time-of-day {in STCK format} when Gnosis was restarted. {Actually, it would be the time after which nothing that was done has been undone.}
TLBA(0, (8, rtod); ==> c, string;) "Start read"
Seq is described under polling, below. It is significant only if polling was on.
Write-status is:
If the write device is not working because the 0.2 second delay of a polling cycle is in progress: (1, 4) (4, not applicable)
If the write device is not working because the last SIOF returned condition code 3:
.(4, 0)
.(1, unit status) (will have channel end and device end bits on)
.(1, channel status)
.(2, residual count)
If the read device is not working because the last SIOF returned condition code 3:
.(4, 0)
.(1, unit status) (will have channel end and device end bits on)
.(1, channel status)
.(2, datacount)
.(datacount, data from last read or read sense operation)
A polling cycle is:
A start read.
A start write, sending the six bytes 0, 255, seq, 3, seq, 3.
When both devices are no longer working, if there was no error and the read data is the six bytes 0, 255, seq, 2, seq, 2, and the polling flag is still on, then seq is incremented mod 256 and another polling cycle is begun {else the endwait flag is set}.
1 rtod incorrect
2 device already working
3 operation already in progress
4 too much data
5 base not configured