← Back to context

Comment by somat

18 days ago

Articles like this always paint a rosy picture of the 3270 but consider the limitations. Async style updates as commonly found on a VT designed program were tricky.

Now admittedly my own experience with the 3270 was through about three layers of obtuse IBM operating systems. Perhaps if I sat down with a 3270 and a bare OS I would consider them differently, but I always found them terribly limiting compared to a VT. More efficient sure, but much harder/impossible to do cool stuff on.

source: I was a night shift tape monkey for a IBM place for a few years. A fair amount of down time, access to a full set of manuals and an understanding boss meant I was doing more hacking on production mainframes than I probably should have been.

They optimized for different things. The instant responsiveness of the 3270 vs. the VT at Xbps for local editing was nice. You could do async updates and even async input (via polling) as well though there was this annoying thing where the input could clash with the output and you'd get this weird icon that you had to clear (my brain is iffy on the details) e.g. when you hit a PF key while the display is updating. I think there was some workaround. I wrote some games that ran on the 3279 in an async mode (using some utilities a friend of mine built for that).

  • My finest work on the 3270 was an analog clock screensaver.

    It was simultaneously the hardest and most pointless thing I have ever written.

    Our interface to the mainframe was CMS/VSE on Z-OS. We never touched Z-OS and I was a little afraid to try, but on CMS there was REXX installed as a scripting language and I built an immediate mode character update library for it, mainly so I could sort of treat it like a VT instead of abusing the text editor(XEDIT if I remember correctly) as a ui toolkit like every other script there did, I never did figure out async keyboard reads, so probably had to poll like you said) and promptly did the first thing you do when you have access to an immediate mode text screen in the early 2000's, made a matrix screen saver. (no games because of the lack of async keyboard reads, so screen savers it was)

    Anyhow the hard part, CMS REXX had no trig library, how was I going to do the hands on my analog clock without a trig library? So I smuggled in some printouts from the nist algorithm database(what an amazing website) on how to calculate sin, only to discover that REXX also had no exponent function, so the next night I smuggled in some printouts of how to calculate that. and some days later was the proud owner of an analog clock screen saver and perhaps the slowest most inefficient exponential and trig libraries to be found on CMS/REXX

    I wish I could have saved the source, but... it was on a mainframe and really, I was just there to shuffle the tapes around, when my boss tried to warn me off of writing scripts I convinced him it was to help make our tape duties more productive, and for the most part it was.

I'll give you props for studying the systems manuals and not the handmade Adventure maps drawn on green-bar paper and hidden behind the back of the last 3270 at the far end of the row of tape request consoles.

I was on the DEC side with an amber VT220 and always thought it was cool that the 3270 could scream "mount me now dammit!" in flashing red block letters while the operators weren't sure if they should drop the keys or pick up the lantern.

What sort of data were you work with back then? Bank stuff?

  • It was a mid sized mail order company, they had invested early with computers, and not changed much since. It was a very strange mix of odd old computer systems. An IBM mainframe batch processing backend with sco unix on the front end using pick databases as a sort of vertically integrated database and terminal ui.

    When hired I had just missed the retirement of some sort of lockheed minicomputer they had used in the call center, which I would have loved to see. It was a very odd environment.