[HECnet] Humour value alternative to DCL - a port OS/390 ISPF to VMS :)

Jordi Guillaumes i Pons jg at jordi.guillaumes.name
Sun Sep 29 20:20:49 PDT 2013


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



More information about the Hecnet-list mailing list