Computers
were usually show pieces of the company and were in an air-conditioned room
with a glass wall so people could look in and be impressed by them. Since there
were no online terminals, the primary input was in the form of punched cards
and the primary output was printer paper (usually green-and-white fan-fold
paper unless one was printing a special form like invoices, paychecks, etc.)
Card sequencing
While
cards with transactions such as timecards or sales orders could be sorted by
employee number or customer number as needed, the cards that programmers
punched their programs into could not. COBOL had allowed for the first six
columns of the card to be a page/line number of the coding sheet, but as
programs were changed it was difficult to maintain that sequence. So most
people after preparing a program deck would fairly soon run a listing of the
program so in the event that the deck was dropped it could be reassembled. One
afternoon, when leaving the computer center at MSU I saw a rather unfortunate individual
who had not done so. He had a large box of cards (perhaps 1500 of them) under
his arm along with his text books, and had inadvertently dropped the box while
crossing the bridge across the Red Cedar River right behind the data center.
Several hundred of the cards had fallen under the railing and were floating down
the river below. He was so disgusted that he was in the process of kicking all
the rest of them under the railing as well to join those which were drifting
down the river. I have no idea how many hours of work that represented, but I
wasn’t about to ask him.
Tape-to-printer
While
most systems had some sort of card input and several different reports for
output, if you declared in your program that you were using them, then the
physical card reader or line printer would be assigned to your program and your
program could run no faster than the physical device could read/print. Since
these mechanical devices were considerably slower than the computers could run
the programs may people used ways to speed things up. One that was available on
the IBM-360 line of computers was a program called PUPPIT (short for Processing
Utility for Print and/or Punch Image Tapes). This program could run in a small
dedicated amount of memory (see topic of Foreground Partition in the section on
Processors) at the same time as another program was running in the Background
Partition. So people would write their programs to write report line images to a
tape. Then the tape-to-printer PUPPIT program could run independently later.
This
also had other advantages in that one had a backup of the report if the
original was lost or some needed another copy. It also meant that something
like paper tearing in the printer would not mean that you had to restart the
program. Finally, a program could print multiple reports without having to have
multiple printers physically assigned to it.
Printer loops
The
IBM 1403 printer (and others like it) were controlled by a loop of heavy paper
tape. This tape had holes in it where the various “channels” were supposed to
be. For example, by convention, the topmost printed line would be channel-1, the
bottom of the page would be marked by channel-12, and for something like an
invoice the beginning of the invoice details would be channel-2 and the page
total would be marked by channel 3. That way a print program would start the address
at channel-1, would then skip to channel-2 and print the details, then skip to
channel-3 to print the totals. The paper tape would usually be as long as a
couple of pages (say 33” for three 11x17 pages) with the channels repeated
three times, the tape would then be taped into a loop and inserted in the
printer. Each special form would have its own special paper tape loop.
There
were two incidents I can remember where this caused a problem. The first was
when someone prepared a new paper tape loop and the three instances were not
identical. One of the channel punches was supposed to be at a certain position
on the page, but one of the punches was off by one line. So when the forms were
printed every third page would have its total line not printing in the proper
box on the page. This was a pretty frustrating problem to resolve, especially
since there were a couple of copies of the paper tape loop and all but one of
them were fine.
The
second instance was a pretty exciting one. As part of my initial training at
Uniroyal I got to work in the computer room for a few weeks (see more below in
the People stories). I had just loaded up the printer with a new box of forms
and put the appropriate paper tape loop in the printer. I pressed start and was
starting to the other end of the room for another task, but I had not yet
closed the printer cover (they had sound proofing in the cover to keep the
printer noise level down but we did not always close it for short print jobs).
Unbeknownst to us, the programmer had changed the program to use a new channel
number but he had not given us the instructions to prepare a new paper tape
loop. About half way down the first page, the program gave an instruction to
jump to the new channel but there were no punches in the column on the paper
tape. So the printer just began slewing paper at top speed looking for that
channel punch. At that slew speed the paper just shot straight up out of the
printer, hit the ceiling above the printer, and then started creating a pile of
paper in the area. By the time one of us got back to the printer and hit the
stop button, there was a half-box of paper in a huge pile on the floor in front
of the printer. We had no choice but to gather it up in armloads and carry it
out to the dumpster. Besides the programmer getting scolded for not giving us
the new instructions, we began a policy of putting hole in every channel at the
bottom of each page to prevent future occurrences.
Printing Pictures
These
were all “line printers” that were only capable of printing individual
characters at fixed locations on a line. However, one of the lesser used
features was to instruct the printer to print a second set of characters
without advancing to the next line. This “over printing” was done by using a “+”
as the line-feed character (blank was a standard single-space, “0” was a double
space, “-“ was a triple space, and another number like “1” or “2” was an
advance to channel “1”, “2”, etc.) Some enterprising people designed the set of
darkness characters for several shades and by printing multiple times on each
line you could create pictures with multiple shades of darkness (all in black
on white obviously). Pictures of Snoopy, or one of a cat in 15 shades were
common. Of course these were always done off hours and without management
knowing what the printers were being used for!
Things had advanced by the time I was in university. I took one class in Fortran for which the instructor required submit punched cards.
ReplyDeleteI am a very bad typist. I could probably spend a semester just trying to get a complete set of cards with no errors.
Our instructor was a bit behind the times in the computer world--I think she only had the job because she was the wife of the department head (this was a special course for Natural Resources majors). Fortunately, by this point one could write the program on a text editor and then submit it to the Fortran batch processor to run. One could then submit a command to the computer center to punch the cards for the program from the stored version on the computer.
The cards the computer punched for you, though, had no printing. So I had to take the cards to one of the special keypunch machines that could "interpret" them--read the cards and enter the text. I never told the instructor how I did this.
My main challenge was that the instructor required we use Fortran IV, but I was already playing with a version 10 on the computer, which had more capabilities.