http://invisible-island.net/personal/
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):
@ADD
statement@ADD
control 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 @DATA
statement,
the @FILE
statement, the @ELT
statement or a user program. The images in the file being
added need not exist until the @ADD
command 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 @ADD
control statement is encountered in a control stream, the
first image of the added file replaces the @ADD
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
statement.
@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
statementThe @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
follow the @ELT
statement in the control
stream.
Rather than carry around a large deck of punchcards, I used
the @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
elements.
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 @ELT
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 @ADD
and
added-elements.
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.