Very Old Program


I was doing some spring cleaning and came across a computer printout of a program I wrote in August 1974, or about 31 years ago! That brings back a lot of memories. Coincidentally, a couple coworkers were discussing the CaSing of computer languages. What languages were in UPPER case, lower case, MiXed case, etc. This particular document was all upper case.


At the time, I was a Candy-Striper: a term for a volunteer at the Yale-New Haven hospital. I think the term refers to the red and white pin-striped frocks that were worn by the female volunteers. The prior summer I was a Candy-Striper in the Respiratory Therapy department, where I had to deal with IPPBs: Intermittent Positive Pressure Breathing machines. I wheeled them around the hospital and wash/sterilize them after each use. They were essentially breathing assistants: if they sensed that the patient started a breath, then more air would be forced into the lungs. 


I figured I’d do something different in the summer before 11th grade, so I worked with a population geneticist at Yale (in the same department where my dad worked as a geneticist). He basically wrote programs in PL/1 to analyze statistics to find patterns in genetic traits of people. But what was really great about working with him was that he had a terminal and an acoustic coupler (a 110 baud modem) with which we connected to the Yale Computer Center! It was an IBM Selectric terminal that had a type ball that would bounce up and down as it printed: it was fascinating to watch, and quite loud.


To use the modem, I’d pick up the handset, use the rotary dial to dial the number, wait for the high pitched screech, insert the handset into an acoustic coupler (basically a device that listened/output to the microphone/earphone of the handset), and wait for the handshaking process to finish indicated by “Enter Logon” from the type ball.


As part of the summer job, I got to go visit Yale Computer Center and use their IBM 370 which had a whopping 512 K of RAM. That’s half a megabyte!


In the computer center, there was a PDP-11 computer with a DPU (Display Processing Unit) that allowed fast calculation of vector graphics. I used to go there, insert the huge RK05 10 megabyte disk in the drive, and play a lunar lander game. There was a light pen for the monochromatic display with which you could control the rocket’s thrust and side rockets to try to guide the LEM (Lunar Excursion Module) to a safe landing site before running out of fuel. If you succeeded, a little man would walk out of the LEM over to the 2 golden arches and the screen would display “Two Cheeseburgers Please” (This was before the popularity of the Big Mac). Along the way you could see LEM carcasses of failed prior missions.


I had a lot of fun writing programs on that computer too. The program listed was written in PDP-11 Assembly language (called Macro-11). It was a terminal emulator program, which would allow the PDP-11 keyboard to be a front end for the IBM 370 TSO system (I think TSO stands for Time Sharing something). It had special escape key sequences that provided options to send files, talk to the modem, capture data to a file, etc. It was written in Macro-11: PDP-11 assembly language.


That reminds me: if you open up a command prompt (CMD.EXE) in Windows XP and do something that streams a lot of output to the window (like DIR \*.* /s) then you can hit Ctrl-S to suspend the stream so you can read it, and Ctrl-Q to continue. These keystrokes are at least 31 years old!




I suspect that my terminal emulator program worked because it was a PDP-11 program that was printed on the huge IBM line printer of the 370. The only way it could have been printed was if I was able to use the PDP-11 as a terminal of the 370.



Here’s a link to an image of the original document. I scanned just the first couple pages.







Comments (9)
  1. Steve Hall says:

    Curiously, I wound up writing pretty much the same terminal emulator as you did! It was a Macro-11 app to interface to a S/370-168 running MVS, for Diamond-Shamrock, one of the world’s largest engineering firms in Cleveland. They had about a dozen terminals hooked up to the PDP-11/60 they had in an attempt to reduce costs, since a 3270 at that time cost ten times more than any DEC terminal.

    Oh, TSO meant "Time Sharing Option", with the "Option" meaning "optional" because it wasn’t part of OS/360 on day 1 of it’s release in 1965…and some idiots in IBM Marketing thought that "no one would want terminals and time sharing!", and thus wasn’t developed until the batch portions of OS/360 were completely debugged. (Don’t ya know: hollerith keypunch cards are the FUTURE!)

    System Programmers like me also referred to it as "Time Sharing Offal" and "TS Obstinate" and "TS Oops!" (or when it crashed. "TS Off")…since it was pretty unstable/crappy for the first 5-6 years (until about 1978, MVS 3.7 time-frame). Most TSO shops heavily modified it, like replacing the logon module, added system accounting, added some sort of security subsystem (rather than the crappy old "Password" file, and well ahead of RACF being released with "generic resource ACLs").

    At the university I worked at, we avoided the whole MVS and TSO mess by staying on OS/VS1 (SVS) and wrote our own TSO rip-off. It was not only stable, but ran 5-10 times faster. (We were also trying MUSIC time-sharing system from McGill U. under VM/370, but that was far worse than TSO…a lot of it due to it running under VM. But we had a whopping 768K of memory! When the VM support team found out, they told us were crazy, as VM wasn’t supposed to be used on anything less than 2MB…)

    Just remember: the crappiness of TSO was the direct cause and catalyst for Unix being developed. At the first Unix User’s Group conference in 1976 at Columbia U., Thompson and Ritchie had choice words for TSO. Ken Thompson’s keynote speech was a single slide that said "TSO is like kicking a dead whale along the beach!"…to which he got a standing ovation. Thus, at least in that light, many should be thankful TSO was developed, and developed crappy!).

  2. Markus says:

    Hey, I was like 5 days old when you wrote that program 😉

  3. College Loan says:

    Very good details and new. keep it posted.

  4. thoughts from a professional developer

    I do not agree. Go to

Comments are closed.

Skip to main content