Some of you old timers should get a kick out of this.

A little history. I started a new job 1 year ago. Same stuff I've been doing, about half mainframe, half PC. One of the things I had to do was learn RPG. I've been hanging around IBM boxes for 35 years, and RPG has always been there. No problem, it's a pretty easy language. I just never got around to using it, never needed to. I did some Fortran for a while, a couple years of heavy Cobol, then got hooked on assembly language, and never left. :)

Back in 1976 I started to program for IBM 3270 terminals. They're the big old "green screen" terminals you see in places like banks, airlines, insurance companies, the IRS... After my first couple of programs it became clear that this was a perfect application to "macroize". After all, terminal programs are all pretty much the same, you read a record and display the fields on the screen. Then maybe read back stuff the terminal operator keyed, and update or add a record. Throw in a few functions like next/previous record, delete a record, and you've got about 90% of all "terminal programs" covered.

The operating system has "extensions" to make some things easier. They provide the actual terminal IO routines, quick database access, scheduling of other transactions, etc. But you've still got to write a pretty detailed program. You've got to read the record, map the fields, send it, wait for a reply, do some editing, figure out what function to do next, etc. There must be a better way...

I wrote a macro to describe each field on the screen. It contained the "name" of the field to display, a pointer to the data (in a record), alpha or numeric, required or optional field, and an override screen location. If the field was binary or packed, it was converted back and forth to display. It also had an optional "exit" that could be used to further validate the field (like only Y or N for example), or do other calculations on the field.

A couple other macros contained all the guts to do the data base IO, terminal maping, the actual editing and error message processing, and figure out what to do (add, change, delete, etc). A "whole program" consisted of a record layout, a 1 line macro for each display field, a couple macros of overhead, and maybe some exit code. Instant on-line file maintenance program. I was quite happy with the results. :cool:

I first developed the system under an "extension" called SWIFT (System Which Interfaces Files and Terminals). Haven't heard anything about them in about 25 years, they were a small company... A few years later I converted it to run under Sperry VS/9, and a few years after that I did version 3 under CICS. You may have heard of CICS, it's IBM's current top of the line mainframe transaction processing system. I was a CICS systems programmer / administrator for 12 years.

I haven't worked with the system in about 5 years. Yesterday I'm talking to my boss. He's an old time RPG programmer. Problem is that's all he knows. We're a "batch" shop. He's got a file that he wants to put "on line". He asks me if I know anything about CICS... :grin:

My problem? I've got listings of Version 1, under SWIFT. I even dug up a tape of Version 2, under VS/9, that I loaded today. But I can't find a trace of Version 3, the CICS version, the one I need. I'm going to have to convert the sucker again! :rolleyes:
Posted on 2004-01-14 22:24:32 by S/390
Hi S/390,

13 years ago I once was able to code CICS application programs, but all I can remember now is


I even didnt know that this stuff still exists and is alive
Posted on 2004-01-15 00:33:38 by japheth

You have great experience. What are your feelings to be the whitness of the evolution of computers in so long years?
Posted on 2004-01-15 05:18:05 by Vortex

I thought at first that you wanted to find one of the old toys you had written so you could convert it to PC assembler and make some go fast stuff.

Somewhere along the line I get the idea that mainframes in this generation would be real fun, no kiddie level code when you have big iron to play with. :alright:

Posted on 2004-01-15 05:48:00 by hutch--