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:

For each operation below, if the base identified by this TLBA key is not configured in the kernel, the return code is 5.

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"

TLBA(1, (8, rtod), (ldata, data); ==> c, string;) "Start write"

TLBA(2, (8, rtod); ==> c, string;) "Start read sense"

TLBA(3, (8, rtod); ==> c, string;) "Start write sense"

TLBA(4, (8, rtod); ==> c, string;) "Halt read"

TLBA(5, (8, rtod); ==> c, string;) "Halt write"

TLBA(6, (8, rtod); ==> c, string;) "Wait"

TLBA(7, (8, rtod), (1, startseq); ==> c, string;) "Start poll"

TLBA(8, (8, rtod); ==> c, string;) "Abort poll"

TLBA(9, (8, rtod); ==> c, string;) "Abort wait"

Summary of return codes: