Home | EMS | CMP | Photos | Admissions | Resources  

ILLIAC I

by James Bohn

The history of Computer Music at the University of Illinois begins in 1955, with Lejaren Hiller and a machine called the ILLIAC I. Hiller, with help from Leonard Isaacson, used this machine to compose the "Illiac Suite," which was one of the first pieces of music to be written with the aid of a computer. Hiller also used the ILLIAC I as a means of editing scores that were typed with a music-typewriter called the "Musicwriter." The ILLIAC I also served in the composition of Hiller's "Seven Electronic Studies." The preliminary work for the composition "Computer Cantata," which lead to the developement of MUSICOMP, one of the first computer languages for computer-assisted composition, was done on the ILLIAC I, by Lejaren A. Hiller and Robert A. Baker.

The history of the ILLIAC I goes back to January 1948, when the University of Illinois Board of trustees appropriated $150,000 for the construction of a computer by New York's Reeves instrument Company. As the project began to fall behind schedule, John Von Neumann of the Institute for Advanced Study (IAS) at Princeton University suggested that the University of Illinois construct its own computer. The contract with Reeve's was canceled, and permission was obtained for the construction of a computer based upon the design of the one being built for IAS from J. Robert Oppenheimer, the Director of IAS. Cost for the project was reduced by an order for an identical computer for the Aberdeen Proving Ground in Maryland. This machine, the ORDVAC, was the first of the two computers completed, passing its acceptance tests in February of 1952. ILLIAC I, the University's computer was available for use on September 22, 1952. Originally, it was only available for use eight hours a day, but it gradually became available for use twenty-four hours a day, six days a week. The ILLIAC I used 2,800 vacuum tubes, and measured ten feet high, two feet wide, and eight and a half feet tall. The total weight of the machine was five tons. It was in service for ten years, being dismantled in 1962.

The ILLIAC I was an impressive machine for its time. In 1956, the ILLIAC I had more computational ability than all of Bell Labs. It could store 1024 40-bit words in memory at any given moment (5.12 K). The magnetic drum storage unit could hold 12,800 40-bit words (64K). While most of today's computers have far greater memory capabilities, it is not hard to think back to the days of the TI-99, which had less memory than the ILLIAC I. However, the ILLIAC I had fewer components than many of today's watches.

One major problem with the ILLIAC I was the limitations of input and output. Originally, input was only possible through five holed paper tape (100 characters / second), while output was possible on either five holed paper tape (60 characters / second) or by a Cathode Ray Tube Display (either visually or onto film). In the fifties, the five holed tape readers and punches were replaced by eight holed readers and punchers, and the option of I.B.M. cards as input / output devises was added.

Since the ILLIAC I was the only computer of its kind on campus, access time was limited. The limitations of input and output meant that actual computer time was limited to computation time, plus input and output time. The actual writing of the program occurred in the tape preparation room. Equipment in this room consisted of a keyboard perforator unit, a page printer unit, a reperforator unit, and a combination unit, and a tape comparer unit. A keyboard perforator unit was used to type out a program onto paper tape. A page printer unit could be used to either print out a program, or print out the computer's output. A reperforator unit was used to duplicate tapes, often in order to add subroutines to a program from a program library. A tape comparer unit is used to check two tapes to see if they are identical, for proofreading purposes.

Once a program was written, it was tested for errors. Each programmer was allowed two five minute time slots per day, Monday through Friday, in order to check their program, once in the morning, and once in the afternoon. If the program worked, it could then be submitted for "batch." If it didn't work, the memory of the computer was dumped onto tape, which could be printed out and proofread for errors.

"Batch" submissions not only included the program itself, but information on how it should take the program to run, so that the job could be killed if it took too long, indicating a possible programming error. Also, since the lights on the accumulator lit up both when there was a hang up and when the ILLIAC I was making thousands of rapid calculations, an estimate of calculation time was also included, so the operator would have a good idea whether the machine was "hung up," or whether it was simply making lots of calculations. Programs selected for "batch" were run during weeknights, by an operator. Saturdays and Sundays were open times for "experienced" users who could run the ILLIAC I without the help of an operator.

Since input for the ILLIAC I was originally done solely through five-holed paper tape, the possibilities for input characters were limited to 32 characters. Five-holed tape actually had six holes, though this sixth hole, approximately in the middle, was always punched, and was smaller than the rest of the holes, functioning as a feed hole. This number of programming characters was limited further, as the designers wanted to allow for characters that would be printed out, but not read by the computer. The only characters that were read into the ILLIAC I were characters that lacked a hole in the fifth position. However, characters that had a hole in the fifth possition could be read into memory through a special input order. The general limit of only four holes per character, restrained input to sixteen possibilities, called "sexadecimal" characters (0-9 and K,S,N,J,F,L). Some of the common "fifth hole" characters used on a program tape included, "tab," "space," "carriage return and line feed," and "delay." The use of the "delay" character was necessary after both the "tab" and "carriage return and line feed" characters, as a delay was necessary in order to allow the carriage enough time to move.

Programming the ILLIAC I was done through orders. Orders were stored in pairs, so that two orders occupied the space of one 40-bit word. The order itself takes up eight bits, and is expressed by two sexadecimal characters, each of which occupies 4 bits of space. The remaining twelve bits contained a memory address to act upon. One of the most difficult problems with programming the ILLIAC I was that there were no such things as variables, so that the programmer had to keep track of each individual memory address.

Everytime a program was run the control counter had to be set to zero, and the order register had to be set to 80 40F 40 F (80028 40000). This allowed the "Bootstap Input Routine" to be entered from paper tape. This "Bootstrap Input Routine" was essentially an operating system written by David Wheeler for the ORDVAC. It occupied the last 25 memory locations, and controlled the loading of programs into memory from paper tape.

The ILLIAC I was the first computer available at the University of Illinois. Work done on this machine was considered to be "cutting edge," because of the rarity of computers, and the quality of the machine. The experimental spirit, which is allied with the concept of "cutting edge" technology, contiues to set the tone for much of the work done in computer music at the University of Illinois.


  Home | EMS | CMP | Photos | Admissions | Resources