Dave Clark writes:
> In my case, I am using a channel appendage routine to synchronize
> native 3270 I/O.  Basically, after writing to the 3270 device, I can't read
> immediately and must wait for an attention interrupt to tell me when the
> 3270 device has data to be received.

I implemented local 3270 support for Altergo Software's
transaction processing system Shadow II on OS/VS in the 1970s
using similar tricks, but I think it also used a start-I/O
appendage.

To keep track of attention, it marked the UCB as still busy on
completion of any request, and queued a NOP to wait if a read
was issued.  When Attention came in, the I/O supervisor marked
the UCB as available and executed any queued request.

The trickiest bit was cancelling the wait for attention if
another Write was issued.  I don't remember the details (this
was nearly 50 years ago) but I think it involved marking the
next request as related so that the start-I/O appendage would
run immediately rather than waiting for the previous request,
then clearing the UCB busy bit from the start-I/O appendage.
I think we also marked the queued request so it would be
cancelled (and marked as purged) rather than executed.

It still worked on MVS (although I think there may have been
some small changes) but was obviously somewhat risky and
required authorized code.  For local terminals we therefore also
supported the use of BTAM, although the BTAM interface was very
awkward and had performance problems because it was mainly aimed
at remote bisync terminals, and imposed completely unnecessary
restrictions on working with local devices (in particular, only
being able to handle I/O to one device at a time).  We later
added VTAM support.

I also later implemented an emergency stand-alone 3270 editor
(on a 4331 console) as a way to prepare stand-alone dump control
input on tape because we didn't have a card reader.  However,
rather than implementing interrupt support I simply used a TIO
loop to wait for I/O completion.  And stand-alone dump soon
gained the capability to read control input from the console,
eliminating the need for my stand-alone editor.

Jonathan Scott, HLASM
IBM Hursley, UK

Reply via email to