The Tektronix 4081 minicomputer at Argonne National Laboratory in the summers of 1977 and '78 played an important role in the early development of MATLAB.
Tektronix, Inc., is a company founded in Portland, Oregon in 1946 that was best known for its oscilloscopes. In 1976 Tektronix temporarily entered the computer business. They marketed a sophisticated display together with one of the first 32-bit minicomputers, the model 7/32 from Interdata, and their own operating system. The result was their model 4081.
The marketing material emphasized the display. It incorporated traditional storage tube graphics, where the tube phosphor provides the memory and which Tektronix had been using for years in its oscilloscopes, and the new refresh graphics, where digital memory drives the display. In this view of the system, the computer is simply the graphics controller. The Tektronix software was known as GOS, for Graphics Operating System.
Here is a screen shot of a lunar lander game on the machine. The background was generated by the storage tube graphics and remained fixed. The lander and the text at the bottom were raster graphics. The lander's rockets were controlled by arrow keys on the keyboard. Remember, this was 1976. Any computer with an interactive display being marketed at the time had to have a lunar lander. This one was fancier than most of the competition. Here is a link to a demo reel made at the time that shows the lander in action, and several other applications on the 4081.
I visited the Mathematics and Computer Science Division at Argonne National Laboratory, just west of Chicago, every summer in the late 1970s to work on Linpack with Jack Dongarra, Pete Stewart and Jim Bunch. We did most of our work on Argonne's central main frame computer, the IBM 370/195. This was a batch oriented system. We submitted jobs and got the output back some time later. The time lapse could be a few minutes or a few hours, depending upon how many other jobs there were. It was quicker at night and on weekends.
The jobs would be punched on IBM cards and the output printed on fan folded paper returned in bins at the computer center. Or, somewhat more conveniently, we would work at terminals, preparing files containing images of card decks, and have output returned in files viewable at the terminal.
One important goal of my first MATLAB was to make matrix computation interactive. I wanted to enter an expression involving matrices in a natural mathematical notation and have the result evaluated immediately. The first MATLAB was a Fortran program that used about a dozen subroutines from Linpack and Eispack to create a simple matrix calculator. The TSO time sharing facility on another IBM main frame, the 360/75, was reasonably interactive. As I remember it, if there were not too many other users on TSO, the response time was pretty good.
The MCS Division at Argonne acquired a Tektronix 4081 sometime before I arrived for my 1977 summer visit. I was excited. This was my first personal computer. There was a Fortran compiler and I could run the MATLAB that I was developing. There was just one difficulty. The 7/32 had only a 16-bit address space and was limited to 64K of memory -- that's 64 kilobytes. The designers of GOS knew that 64K was a problem and so had provided a swap feature. Fortran designates a section of global memory as COMMON. It was possible to retain the COMMON memory, swap all the executable code in the remainder of the memory, and keep the program running.
So, my MATLAB consisted of five or six blocks of code. The parser was one or two blocks, LU and QR were a block, SVD was a block, and so on. The matrices were kept in common and the various blocks swapped in and out as needed. The memory limitation turned out to be a blessing after all. This blocked structure of the software forced a valuable clarity of organization.
The 4081 was in a small office. I loved the feel of having the machine all to myself. It was the size of a desk, but there is not much difference between using a computer that is a desk and using a computer that is on a desk. The response time was good, and it was predictable and consistent. It would be four or five years before we would have the IBM PC and the Sun workstation, but this experience gave me a taste for what personal computing would be like.
Argonne's 4081 was connected to the ARPA-net, the predecessor of today's Internet. Jim Pool had been head of the MCS Division at Argonne and had been involved in the acquisition of the 4081, but had moved to the Department of Energy in Washington, DC before the machine was delivered. Jim was also on the ARPA-net. I sent my first ever email to Jim from the 4081. I told him that I was using the machine, I was working on this new program that I called MATLAB, and I included the entire text supporting the help command. The entire email was less than 700 lines.
Ned Thanhouser was Software Manager in charge of the Graphics Operating System at Tektronix. He came to visit Argonne one day to see what we were doing with the machine. Jack Dongarra got hold of me and the three of us ended up ordering pizza and staying far into the night. Ned had a briefcase full of cassette tapes and floppy discs with demos, games, and other goodies. They were 8-inch floppies in those days. The cassette tape reader could be troublesome because the tape alignment was delicate, but there was a thick Chicago telephone book on top of the unit and if you hit the reader with the phone book, it would relax its tolerances.
Ned later moved from Tektronix to Intel, where he spent most of his career. Ned's grandfather was a famous motion picture industry pioneer, and so after retiring from Intel, Ned has been involved with the preservation of early silent motion pictures, at Thanhouser Company Film Preservation.
Ned wrote the lunar lander and made the demo reel that I mentioned above. While preparing this blog, Ned and I had a couple of very pleasant phone conversations and email exchanges, remembering old times. He sent me this recollection by his colleague, Sam Malicot.
Tektronix 4081 System Handles Both Refresh, Storage Graphics, Computer World, May 17,1976, page 29.
Ned Thanhouser, Intermixing Refresh and Direct View Storage Graphics, SigGraph, 1976.
Get the MATLAB code
Published with MATLAB® R2014a
Comments are closed.