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
