LGP-30

The LGP-30, standing for Librascope General Purpose and then Librascope General Precision, was an early off-the-shelf computer. It was manufactured by the Librascope company of Glendale, California (a division of General Precision Inc.), and sold and serviced by the Royal Precision Electronic Computer Company, a joint venture with the Royal McBee division of the Royal Typewriter Company. The LGP-30 was first manufactured in 1956, at a retail price of $47,000, .
The LGP-30 was commonly referred to as a desk computer. Its height, width, and depth, excluding the typewriter shelf, was . It weighed about , and was mounted on sturdy casters which facilitated moving the unit.
Design.
The primary design consultant for the Librascope computer was Stan Frankel, a Manhattan Project veteran and one of the first programmers of ENIAC. He designed a usable computer with a minimal amount of hardware. The single address instruction set had only 16 commands. Magnetic drum memory held the main memory, and the central processing unit (CPU) processor registers, timing information, and the master bit clock, each on a dedicated track. The number of vacuum tubes was kept to a minimum by using solid-state diode logic, a bit-serial architecture and multiple use of each of the 15 flip-flops.
It was a binary, 31-bit word computer with a 4096-word drum memory. Standard inputs were the Flexowriter keyboard and paper tape (ten six-bit characters/second). The only printing output was the Flexowriter printer (typewriter, working at 10 characters/second). An optional higher-speed paper tape reader and punch was available as a separate peripheral.
 The computer contained 113 electronic tubes and 1450 diodes. The 113 electronic tubes were mounted on 34 etched circuit pluggable cards which also contain associated components. Although 34 pluggable cards were used, there were only 12 different types of such cards. Card-extenders were available to permit dynamic testing of all machine functions. 680 of the 1450 diodes were mounted on one pluggable logic board.
The LGP-30 required 1500 watts when operating under full load. The power inlet cord was plugged into any standard 115 volt 60-cycle single-phase line. The computer contained internal voltage regulation against power-line variations of voltages from 95 to 130 volts. In addition to regulation of power-line variations, the computer also contained the circuitry required to permit a warm-up stage. This warm-up stage minimized thermal shock to tubes to ensure long component life. The computer contained its own blower unit and directed filtered air, through ducts, to tubes and diodes, in order to ensure component life and proper operation. No expensive air conditioning needed to be installed if operated within a reasonable temperature range.
There were 32 bit locations per drum word, but only 31 were used, permitting a "restoration of magnetic flux in the head" at the 32nd bit time. Since there was only one address per instruction, a method was needed to optimize allocation of operands. Otherwise, each instruction would wait a complete drum (or disk) revolution each time a data reference was made. The LGP-30 provided for operand-location optimization by interleaving the logical addresses on the drum so that two adjacent addresses (e.g., 00 and 01) were separated by nine physical locations. These spaces allowed for operands to be located next to the instructions which use them. There were 64 tracks, each with 64 words (sectors). The time between two adjacent physical words was about 0.260 millisecond (ms), and the time between two adjacent addresses was 9 x 0.260 or 2.340 ms. The worst-case access time was 16.66 ms.
Half of the instruction (15 bits) was unused. The unused half could have been used for extra instructions, indexing, indirect addressing, or a second (+1) address to locate the next instruction, each of which would have increased program performance. None of these features were implemented in the LGP-30, but some were realized in its 1960 successor, the RPC-4000.
A truly unique feature of the LGP-30 was the way it handled multiplication. Despite the LGP-30 being inexpensive, it had built-in multiplication. Since this was a drum computer and bits needed to be acted on serially as they were read from the drum, as it did each of the additions involved in the multiplication, it effectively shifted the operand right, acting as if the binary point were on the left side of the word, as opposed to the right side as most other computers assume. The divide operation worked similarly. It also had an integer multiplication but, because the accumulator had 32 bits while memory words had only 31 bits, only even integers could be thus represented.
To further reduce costs, the traditional front panel lights showing internal registers were absent. Instead, Librascope mounted a small oscilloscope on the front panel. It displayed the output from the three register read heads, one above the other, allowing the operator to "see" and actually read the bits. Horizontal and vertical size controls let the operator adjust the display to match a plastic overlay engraved with the bit numbers.
To read bits the operator counted the up- and down-transitions of the oscilloscope trace.
Unlike other machines of its day, internal data was represented in hexadecimal as opposed to octal, but being a very inexpensive machine it used the physical typewriter keys that correspond to positions 10 to 15 in the type basket for the six non-decimal characters (as opposed to the current practice of A – F) to represent those values, resulting in 0 – 9 f g j k q w, which was remembered using the phrase "FiberGlass Javelins Kill Quite Well".
ACT-III programming language.
The LGP-30 had a high-level language called ACT-III. Every token had to be delimited by an apostrophe, making it hard to read and even harder to prepare tapes:
ALGOL 30.
Dartmouth College developed two implementations of ALGOL 60 for the LGP-30. Dartmouth ALGOL 30 was a three-pass system (compiler, loader, and interpreter) that provided almost all features of ALGOL except those requiring run-time storage allocation. SCALP, a Self Contained Algol Processor, was a one-pass system for a small subset of ALGOL (no blocks other than the entire program), no procedure declarations, conditional statements but no conditional expressions, no constructs other than codice_1 in a codice_2 statement, no nested codice_3 declarations (nested calls are permitted), and no boolean variables and operators. As in ACT-III, every token had to be separated by an apostrophe.
Starting the machine.
The procedure for starting, or "booting" the LGP-30 was one of the most complicated ever devised. First, the bootstrap paper tape was snapped into the console typewriter, a Friden Flexowriter. The operator pressed a lever on the Flexowriter to read an address field and pressed a button on the front panel to transfer the address into a computer register. Then the lever on the Flexowriter was pressed to read the data field and three more buttons were pressed on the front panel to store it at the specified address. This process was repeated, maybe six to eight times, and a rhythm was developed:
 burrrp, clunk, 
 burrrp, clunk, clunk, clunk, 
 burrrp, clunk, 
 burrrp, clunk, clunk, clunk,
 burrrp, clunk, 
 burrrp, clunk, clunk, clunk, 
 burrrp, clunk, 
 burrrp, clunk, clunk, clunk, 
 burrrp, clunk, 
 burrrp, clunk, clunk, clunk, 
 burrrp, clunk, 
 burrrp, clunk, clunk, clunk.
The operator then removed the bootstrap tape, snapped in the tape containing the regular loader, carefully arranging it so it would not jam, and pressed a few more buttons to start up the bootstrap program. Once the regular loader was in, the computer was ready to read in a program tape. The regular loader read a more compact format tape than the bootstrap loader. Each block began with a starting address so the tape could be rewound and retried if an error occurred. If any mistakes were made in the process, or if the program crashed and damaged the loader program, the process had to be restarted from the beginning.
LGP-21.
In 1963, Librascope produced a transistorized update to the LGP-30 named the LGP-21. The new computer had about 460 transistors and about 375 diodes. It cost only $16,250, one-third the price of its predecessor. Unfortunately it was also about one-third as fast as the earlier computer.
The central computer weighed about , the basic system (including printer and stands) about .
RPC 4000.
Another, more-powerful successor machine, was the General Precision RPC 4000, announced in 1960. Similar to the LGP-30, but transistorized, it featured 8,008 32-bit words of memory drum storage. It had 500 transistors and 4,500 diodes and sold for $87,500. Weighed .
Notable uses.
Today, the RPC-4000 (along with LGP-30) is remembered as the computer on which Mel Kaye performed a legendary programming task in machine code, retold by Ed Nather in the hacker epic "The Story of Mel". The LGP-30 was also used by Edward Lorenz in his attempt to model changing weather patterns. His discovery that massive differences in forecast could derive from tiny differences in initial data led to him coining the terms "strange attractor" and "butterfly effect", core concepts in chaos theory.