Copyright © 2014,2019 by Thomas E. Dickey
Henry Bowlden was the computing expert in the research center where I worked for several years in the late 1970s/early 1980s.
My initial contact in the computer center, Jim Koos, suggested to some question of mine that Henry should know the answer. Henry usually did know the answer, providing helpful insights:
Not all of our interaction was question/answer. His comments about a directory editor on the University of Maryland tape, and DPS were just shop talk.
I can easily find references to him:
We did not eat lunch together (unlike Jim Vine). Henry ate at his desk.
Henry did not always know the answer. I found an interesting problem which snared both of us.
The Univac 1108 Programmer's Reference in chapter 5 describes these interesting job-control features (actually the original is all UPPERCASE, but hard to read):
@ADDcontrol statement provides a means of inserting images into the control stream from any file in the system data format. These files may contain data or any control cards allowed in a run stream. The file being added may have been created by the
@ELTstatement or a user program. The images in the file being added need not exist until the
@ADDcommand is executed, This means that the user is free to have worker programs in the first part of a run generate files to be added later in the run.
The format of the @ADD control statement is
@ADD FILENAME . COMMENTS
where 'FILENAME' may be the external name of the
file if an entire file is to be added, or it may be replaced
by the standard reference to an element 'program file,
element/version(cycle)'. When the
control statement is encountered in a control stream, the
first image of the added file replaces the
control image. All subsequent control stream images will be
taken from the added file until the end of file or if an
element is being added, until the end of the element is
encountered, following the end of the added file, the control
stream is automatically resumed at the image following the
@ADD statements may be nested to any
level provided there is no attempt to add a given file (or
element) twice in the same nest. When this occurs,
or when a non-existent file is specified, the run is placed
in the error mode and processing continues.
@ELT control statement introduces an
element into a particular program-file from the control
stream. It may also be used to make corrections to a source
element in a program-file. The element or the corrections
@ELT statement in the control
Rather than carry around a large deck of punchcards, I used
@ELT job control feature for creating and
modifying sets of data on the Univac's disk, and
@ADD for inserting those into the job which I
submitted on a few punchcards. In some cases, I built up sets of
data by using
@ADD in the data
Usually that worked well, except for one day when I got back my batch printout after an unusual delay, with a frown from Bill the operator. The printout was missing the information I was expecting.
I went down the hall to talk about it with Henry. At some
point, I realized the problem: in my set of
elements, I had an
@ADD which added one of the outer
levels of the nest. I mentioned this to Henry, showing
that the documentation said it was supposed to reject the run at
that point, and that (apparently) the check did not work if there
was more than one level between the
Henry did not think that was correct, so we went back to the batch room to enter a new job to prove whether that was correct.
After another lengthy delay, we got back the results, Bill frowning even more. The result of the failed jobs was that the Univac did nothing else for a while except run in an infinite loop, until Bill stopped it. Around that time, the computer center manager came in, asking what was going on. It was a little awkward, but Henry explained it better than I would.