El 29/09/2013, a les 20:36, Sampsa Laine <sampsa at mac.com> va escriure:
Not sure how many of you guys know about the "simple" user interface that IBM
developed for using TSO ("time sharing option", the interactive bit of MVS /
OS/390 / z/OS) and it's called ISPF.
It's basically a set of screens that invoke TSO commands on behalf of the user (mostly
to compile / link programs, which is insanely complex on IBM systems for some reason).
Anyway, I thought it might be amusing to write an ISPF clone and deploy it on CHIMPY -
because I'm lazy I'm going to do it in Python (so it prob will never run on a
VAX), but I'll let you guys know when it's finished.
Basically I think I'll just define a "Panel Language" that is used to
describe the menu and what DCL command to run if that option is chosen. If I feel
particularly ambitious I might include 3270-like cursor key navigation of the panels as
well :)
NOTE: This is not a serious endeavour, more of a "wouldn't it be funny if this
looked like a mainframe" type idea..
This is a little bit unfair for the blue guys :)
ISPF is far more than a set of screens to invoke TSO commands. The panels (that's how
ISPF screens are called) are just a part of the whole thing. ISPF integrates with TSO, so
we are talking about:
- The TSO command language (CLIST language) and also the REXX language.
- The panel facility.
- The skeleton facility.
To follow an example, the "background" option in the ISPF main menu takes the
user to another menu where he chooses the language he wants to use. When the user chooses
an option, a CLIST (a TSO command procedure) is fired, which loads and displays an ISPF
panel. The fields of that pannel are bound to variables in the CLIST, which _could_ also
be bound to the user profile (so the values of those variables are persistent). The user
fills the pannel (with the source location, the output dataset and the compiler options)
and then some magic begins. ISPF loads what is called a "skeleton", which is a
file with placeholders. That skeleton is a JCL deck which contains all the
"cards" neede to compile and link the program. ISPF replaces the placeholders
with the variable values and then submits the JCL deck for batch execution.
It is quite easy to "simulate" the ISPF panels (you just need DCL to do it, I
did it when I worked with DEC machines in a mostly IBM-centric company), but that would be
just the user interface. The APIs provided with ISPF are way beyond that...
Jordi Guillaumes i Pons
jg at jordi.guillaumes.name
HECnet: BITXOV::JGUILLAUMES