I have my history in csh set to emacs mode, so I just to CTL-P to go up. Very fast, especially when you have a window for each thing you are doing. You can also edit the command line which definitely helps doing repetitive stuff.
OMG I had that same book.
Programmin’ the big iron for Big Blue. I came out of the Computer Science program at Cal, which turned up its nose at things like business applications and COBOL. So I learned assembler and LISP and Pascal and Fortran and how to write an O/S, but never actually got my hands on a 360.
Someone pointed out that the /360 supported terminals which of course it did, the 3270 being the classic, but that wasn’t timesharing – it was transaction processing. The 360/67 was the one model specially designed for timesharing but I don’t know of any decent timesharing OS that was ever developed for it. TSS and the like (not sure of all the variants offhand) existed for most models, but it was an awful abomination that seemed like a thin rehash of the batch system – in the only version I ever used, a command line error would come back to you as “card error”.
Real timesharing was first developed at MIT’s Project MAC on a modified IBM 7094. MIT also collaborated with Digital Equipment on a timesharing OS for the PDP-6, a 36-bit computer that was the largest DEC had yet produced, and that OS was released commercially. But AFAIK the first really capable commercial timesharing system came, not from IBM which continued to focus on business batch and transaction processing, but from Digital Equipment Corporation when they released the PDP-10, a successor to the PDP-6. It was widely used in universities and research institutions and several commercial timesharing bureaus, and eventually was rechristened the DECsystem-10 and two further major processor refinements were introduced with the same architecture. It became probably the foremost timesharing system in the world, while the System/360 family became the centerpiece of business computing with its strength in batch and transaction processing.
Abomination? Good description. Don’t know whether it was the specific installation I got to use or whether it was in all installations, but I still “fondly” remember “ABORT=80 BULKIO” that was printed out instead of your printer listing if you changed (maybe just deleted; I don’t remember) a file that you had submitted for printing before it actually printed out.
I remember the IBM 360s and 370s well. While I was in college in the early 1980s, I worked nights at the Social Security Administration headquarters, where they still used both mainframes. I remember the punch cards they used to feed jobs into the queues, and how some hapless programmer would occasionally drop a tray full of cards and helplessly watch as they skittered across the floor. The funniest thing would be to watch boxes of paper run through the line printers when a job ABENDed. The programmer would come down to the print area, riffle through the stack for a few seconds, and then pick up the 3 or 4 pound stack of paper and throw it into the trash without a further glance.
COBOL. The language that made several generations of men appreciate the agony that is periods.
I’m not convinced that wasn’t deliberate considering the creator of its predecessor was a woman, Grace Hopper
Also, the foundation for one of my favorite practical jokes in college…
Final project time and one of my friends left his program up on a terminal while I was around. I changed the //Exec COBOL line to //Exec RPG when he was down to about six compile time errors. The look on his face when page after page of errors started pouring out of the line printer was priceless. Then there was the realization, “Wait a minute! Those are RPG errors!! … PROJAMMER!!!”
I miss those days.
Wow, this is a fascinating thread (and trip down memory lane).
I think I’ll branch to another thread and come back later.
BALR 14, 15
Anyone toss punch card confetti in someone’s bed in residence, for “fun”?
Personally this year is my 30th working on IBM mainframes. In 1984 I got a job at the I/O counter logging in programmers card decks and retrieving their fan-fold green bar output from the printers. One week later a woman in operations who was pregnant took maternity leave which created an opening in operations and I got offered her job. It was shift work and there was no pay increase but the boss told me I would learn lots of stuff that would pay off later. So I accepted.
Best decision I ever made… 30 years later I am now a sr. systems programmer and have worked at places like the Dept of Justice, Dept of Commerce, Dept of Transportation, NASA, NIH, and the Pentagon. It is too bad they don’t teach mainframes in colleges these days because there are many shortages of programmers who can speak COBOL and Fortran, PL/I, assembler, etc. You would not have any trouble finding a job in these areas and a really good paying job at that.
I’m not old enough–or at least I didn’t start programming early enough–to work on the 360, but Fortran (as it was styled in the manual for the earlier 704 machine) was my first programming language. With a little more text processing, perhaps, I don’t see why Fortran couldn’t have obviated the need for anything like COBOL. Fortran was easy to get started in, and you could go as far as you needed to. With regard to COBOL, which I spent many more years working in than I did Fortran, I never did get the point of all that verbosity. Supposedly it was to make programs comprehensible to business people, but did they really anticipate that we’d be doing code walkthroughs with the CFO or something?
You can look at the earliest Fortran manual here (PDF).
I did work on an IBM machine very briefly for a spell, working at Lorimar Telepictures just after the acquisition by Warner Brothers. The latter’s systems were on IBM machines, while ours was on VAX, so we had to set up some scripts and other code to transfer our data to their system. I did a little JCL scripting and that was about it as far as the IBM was concerned.
That huge printout was a core dump. What you were supposed to do with it was track down the instruction sequence that caused the abend, and figure out what coding or data error would have caused that to happen. It was all there in the hexadecimal; a knowledge of assembler language was helpful.
No, no-one was doing code walkthroughs with non-tech types. The point of all that “verbosity” was supposed to make the code “self-documenting” – you could tell what it was supposed to be doing, especially if you used decently descriptive field, record, and file names. That would make maintaining the code easier.
We did specs, write-ups, flowcharts, etc, anyway, and it saved me lots of work time and angst when I got an application back with a request for, say, a change in payroll processing to meet some new regulation.
I used them in college in the early 70s. The first one I used (I don’t remember the details except it was a 360) was batch only. When I transferred to a different school, that 360 was interactive. It used IBM selectric typewriters as terminals. The terminal room got noisy in the late afternoon!
The thing that bugged me about COBOL was that it was widely used as a way to teach structured programming–and I don’t deny the desirability of that–but when the structural elements were merely paragraphs, there was nothing there to enforce it, the way OOLs do. I understand there’s OO COBOL now, but I’ve never looked into it.
From memory: Why did IBM marketing choose “360”? The computer was designed to cover “all the angles”.
Object Oriented COBOL - it’s called “Post Increment COBOL By One.”
A play on the name of the OO version of C, which is C++ Adding the “++” operand to a variable in C increments that variable, after the rest of the statement has been executed, called a “post increment”. Because the C++ language was the next thing after the C programming language. A nice short name, as opposed to the notoriously wordy COBOL … Now, class, we will use the Twain programming language to set LAUGHS to “nobody” and FROG to “dead”.
I laughed for a solid half hour when I first heard that joke. Made the traffic jam we were in almost worth it.
We had two tricks - fill a balloon with the chaff and rig it to pop when they entered the room, or pour some into the air vent intake of their car so that it came blowing out when they turned on the fan.
I started on the big iron at university - University of Missouri Rolla (now Missouri University of Science and Technology) in 1980. First language was Fortran, then PL/I, then assembler and finally COBOL. First and 2nd year students had to use the card punch, later we got to use the 3270s. I worked on mainframes until switching to *nix and Windows in around 2000. I still have a ‘yellow card’, the “IBM System/370 Reference Summary”, eighth edition published in 1989. The definitive book on JCL was known as the Blue Brown book, and I see you can still get it
COBOL also does SECTIONS. Working Storage, where all variables are defined, is always a SECTION.
A GO TO in a SECTION cannot specify a point outside the SECTION. nor can a PERFORM (branch and return) access code outside the SECTION.
The only Procedure Division statement REQUIRING section was the SORT verb, if you used the INPUT PROCEDURE IS (SECTION Name) and/or OUTPUT PROCEDURE IS (SECTION Name). Those clauses had to specify SECTIONs or you would get a compile-level cc 8 (critical failure) your JCL would not attempt to LINK the result of the Compile.
Just had to use all caps for COBOL - and no, the 3270 terminal would send lower case - VTAM (which runs the terminals) would do the shift.
Kids: Why did mainframes use all caps? Because, until laser printers, using all caps doubled print speed - the type was on a chain which spun over 133 print positions, each with a solenoid “thumper” to slam a type piece against the paper. The print chain had two complete sets of letters, and were available with either one set UC and one LC or with both UC - everybody decided upper case was tolerable for the speed increase.
A trick to play with the impact printer was to advance to the middle of a page then overprint print a row of “-” or “_”* several times then advance a full page. The paper would rip at the printed perforation and royally piss off the operators.
- (could you do _ on a card punch? I can’t remember)