LGP-30#RPC 4000
{{Short description|Librascope General Purpose computer (1956)}}
File:LGP-30 Manhattan College.rjf.jpg in 1965]]
File:LGP30.agr.jpg with cover removed. Control panel is at top center, to the left of the memory drum.]]
The LGP-30, standing for Librascope General Purpose and then Librascope General Precision, is 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,{{Cite web|url=http://www.librascopememories.com/Librascope_Memories/1950_-_1959.html|title=1950-1959 Librazettes|date=1956|website=www.librascopememories.com|language=en|others=Librazette: July, 1956 – Royal Precision Plans – LGP-30 Promotion; November, 1956 – LGP-30, Flow Computer Spearhead – Commercial Sales and Production – They're In Production and Paul Coates Will Feature LGP-30 on Dec. TVshows|access-date=2018-03-19}}{{Cite book|url=https://books.google.com/books?id=WqrJkVLxonkC&q=%22lgp-30%22+1956+first&pg=PA66|title=Creating the Computer: Government, Industry and High Technology|last=Flamm|first=Kenneth|date=2010-12-01|publisher=Brookings Institution Press|others=Abstract of Computer Oral History Collection, 1969-1973, 1977, p. 75|isbn=978-0815707219|pages=66|language=en}}{{Cite news|url=https://law.justia.com/cases/federal/district-courts/FSupp/197/743/1419429/|title=Strand v. Librascope, Incorporated, 197 F. Supp. 743 (E.D. Mich. 1961)|work=Justia Law|access-date=2018-03-20|language=en|quote=In November, 1955, (...) two important events occurred. The LGP-30 computer, containing seven MH-10R heads, failed to function correctly at the International Automation Exhibition in Chicago on November 15, 1955. In fact, an LGP-30 computer did not work satisfactorily until March, 1956, and the computer was not offered for sale to the general public until the fall of 1956.}} at a retail price of $47,000, {{Inflation|US|47000|1956|r=-4|fmt=eq}}.{{Inflation/fn|US}}
The LGP-30 was commonly referred to as a desk computer. Its height, width, and depth, excluding the typewriter shelf, was {{convert|33|by|44|by|26|in|cm}}. It weighed about {{convert|800|lb|kg}},{{Cite web|url=http://www.ed-thelen.org/comp-hist/BRL64-l.html#LGP-30|title=LGP 30|last=Weik|first=Martin H.|date=January 1964|website=ed-thelen.org|series=A Fourth Survey of Domestic Electronic Digital Computing Systems}} and was mounted on sturdy casters which facilitated moving the unit.
Design
File:LGP-30 German control panel.jpg
The primary design consultant for the Librascope computer was Stan Frankel, a Manhattan Project veteran and one of the first programmers of ENIAC, assisted by James Cass, at the time a graduate student at Caltech.{{Cite web |date=2023-05-15 |title=Origins of: The Personal Computer |url=https://magazine.caltech.edu/post/lgp-30-personal-computer |access-date=2025-05-07 |website=Caltech Magazine |language=en-US}} They 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 (113) was minimized 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 standard 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.
File:LGP-30.jpg. Note that, as was common in typewriters of the time, there is no key for the number 1 (lower case L was used instead).]] The computer contained 113 electronic tubes and 1450 diodes. The tubes were mounted on 34 etched circuit pluggable cards which also contain associated components. The 34 cards were of only 12 different types. 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 operating under full load. The power inlet cord could plug into any standard 115 volt 60-cycle single-phase line. The computer incorporated voltage regulation suitable for powerline variation of 95 to 130 volts. In addition to power regulation, the computer also contained circuitry for a warm-up stage, which minimized thermal shock to the tubes to ensure longer life. The computer contained a cooling fan which directed filtered air through ducts to the tubes and diodes, to extend component life and ensure proper operation. No expensive air conditioning was necessary if the LGP-30 was operated at reasonable temperatures.
Al Barr, professor of Computer Science at Caltech, noted in 2023 the power saving features of the design. "Much of the computer hardware before the LGP-30 used far too many vacuum tubes. Vacuum tubes used a great deal of electrical power, produced a lot of heat, and were fairly unreliable since they frequently burned out like incandescent light bulbs. The LGP-30 used a goodly amount of solid-state diode logic to reduce the number of vacuum tubes, increasing its reliability and decreasing its power use. The hardware design was one of the stepping stones that opened the door to the modern computer revolution."
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.
File:Counter instruction accumulator.jpg
A unique feature of the LGP-30 was its built-in multiplication, despite being an inexpensive computer. Since this was a drum computer, bits were processed serially as they were read from the drum. As it did each of the additions associated with 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 on most other computers. The divide operation worked similarly.
To further reduce costs, the traditional front panel lights showing internal registers were absent. Instead, Librascope mounted a small oscilloscope on the front panel that displayed the output from the three register read heads, one above the other, allowing the operator to see and 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 computers of its day, internal data was represented in hexadecimal instead of 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 now normal A – F) to represent those values, resulting in 0 – 9 f g j k q w, which was remembered using the mnemonic "Fiber-Glass Javelins Kill Quite Well".
Specifications
File:LGP-30 inside.jpg. Drum memory is on the left, CPU on the right.]]
- Word length: 31 bits, including a sign bit, but no blank spacer bit
- Memory size: 4096 words
- Speed: 0.260 milliseconds access time between two adjacent physical words; access times between two adjacent addresses 2.340 milliseconds.
- Addition time: 0.26 ms excluding access time
- Multiplication or division time: 17 ms excluding access time
- Clock rate: 120 kHz
- Power consumption: 1500 Watts
- Heat dissipation: {{convert|5000|BTU/h|W|abbr=on}}
- Arithmetic element: three working registers: C the counter register, R the instruction register and A the accumulator register.
- Instruction format: Sixteen instructions using half-word format
- Technology: 113 vacuum tubes and 1350 diodes.
- Number produced; 320~493
- First delivery: September 1956
- Price: $47,000
- Successor: LGP-21
- Achievements: The LGP-30 was one of the first desk-sized computers offering small-scale scientific computing. The LGP-30 was fairly popular with "half a thousand" units sold, including one to Dartmouth College where students implemented Dartmouth ALGOL 30 and DOPE (Dartmouth Oversimplified Programming Experiment) on the machine.
Programming
=Instruction set=
The LGP-30 has 16 instructions. Each instruction occupies a 31-bit word though about half the bits are unused and set to zero. An instruction consists of an "order" such as the letter b for "bring from memory" and an address part such as the number 2000 to designate a memory location. All instructions have a similar appearance in an LGP-30 word. The order bits occupy positions 12 through 15 of the word and the address bits occupy positions 18 through 29 of the word. The address bits are further divided by track and sector. Although all instructions have an address, some do not use the address. It is customary to enter an address of 0000 in these instructions.{{cite book |title=Royal Precision Electronic Computer LGP - 30 Programming Manual |date=April 1957 |publisher=Royal Precision |location=Port Chester, New York |url=https://ed-thelen.org/comp-hist/lgp-30-man.html |access-date=19 November 2023}} {{PD-notice}}
style="text-align:center;"
|style="width:15px;"|00 |style="width:15px;"| |style="width:15px;"| |style="width:15px;"| |style="width:15px;"| |style="width:15px;"| |style="width:15px;"| |style="width:15px;"| |style="width:15px;"| |style="width:15px;"| |style="width:15px;"| |style="width:15px;"|11 |style="width:15px;"|12 |style="width:15px;"| |style="width:15px;"| |style="width:15px;"|15 |style="width:15px;"|16 |style="width:15px;"|17 |style="width:15px;"|18 |style="width:15px;"| |style="width:15px;"| |style="width:15px;"| |style="width:15px;"| |style="width:15px;"|23 |style="width:15px;"|24 |style="width:15px;"| |style="width:15px;"| |style="width:15px;"| |style="width:15px;"| |style="width:15px;"|29 |style="width:15px;"|30 |
colspan="12" style="background-color:#CCC;"|000000000000
|colspan="4" style="background-color:#99F;"|Order |colspan="2" style="background-color:#CCC;"|00 |colspan="6" style="background-color:#9F9;"|Track |colspan="6" style="background-color:#9C9;"|Sector |colspan="1" style="background-color:#CCC;"|0 |
class="wikitable"
!Example | Order | Operation |
b 2000
|0001 || | ||
---|---|---|
h 2000
|1100 || | ||
c 2000
|1101 || | ||
y 2000
|0010 || | ||
u 2000
|1010 || | ||
r 2000
|0011 || | ||
t 2000
|1011 || | ||
z 0000
|0000 || | ||
p 2000
|1000 || | ||
i 0000
|0100 || | ||
a 2000
|1110 || | ||
s 2000
|1111 || | ||
m 2000
|0111 || | ||
n 2000
|0110 || | ||
d 2000
|0101 || | ||
e 2000
|1001 || |
===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::File:ACT III program.agr.jpg
s1'dim'a'500'm'500'q'500''
index'j'j+1'j-1''
daprt'e'n't'e'r' 'd'a't'acr
rdxit's35''
s2'iread'm'1iread'q'1iread'diread'n
1';'j''
0'flo'd';'d.''
s3'sqrt'd.';'sqrd.''
1'unflo'sqrd.'i/'10';'sqrd''
2010'print'sqrd.2000'iprt'sqrdcrcr
...
=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 while
in a for
statement, no nested switch
declarations (nested calls are permitted), and no boolean variables and operators. As in ACT-III, every token had to be separated by an apostrophe.{{cite book |last1=Stephen J. Garland, Robert F. Hargaraves, Anthony W. Knapp, Jorge Llacer |title=Algol for the LGP-30 |date=15 February 1962 |publisher=Computation Center, Dartmouth College |url=https://people.csail.mit.edu/garland/publications/Reprints/1962-Algol_30_Comparison.pdf |access-date=5 February 2024}}
=DICTATOR=
DICTATOR is a painful acronym for DODCO Interpretive Code for Three Address with Technical Optimum Range. DICTATOR, introduced in 1959, is an interpreter designed to hide the LGP-30 machine details from the programmer. The programming language resembles three-operand assembly code with two source operands and one destination operand. All numbers are in floating point with an eight digit mantissa and two digit exponent. Natural logs and exponents are supported along with sin, cos, and arctan. Up to four nested loops are supported. Table look-up and block memory move operations are implemented. A bit more than half the total LGP-30 memory is used by the interpreter; it takes about 30 minutes to load the paper tape via the Flexowriter. Floating point add, subtract, multiply, and divide take less than 455 milliseconds each. Cosine is calculated in 740 milliseconds.{{cite book |last1=Laudeman |first1=Charles |title=DODCO Interpretive Code for Three Address with Technical Optimum Range. |date=October 6, 1959 |publisher=LGP-30 Users' Organization-Pool |url=http://bitsavers.trailing-edge.com/pdf/royalPrecision/LGP-30/en/H1-124_Oct1959.pdf |access-date=20 November 2023}}
Starting the machine
The procedure for starting, or "booting" the LGP-30 was complicated. 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,{{cite web |title=1960-1969 Librazettes |url=https://www.librascopememories.com/Librascope_Memories/1960_-_1969.html |website=www.librascopememories.com |language=en|at=May, 1963 Librazette: LGP-21 Is Selling Well – p. 4, See Page Eight ad – pp. 7-8}} Librascope produced a transistorized update to the LGP-30 named the LGP-21.Picture with description of computer parts:
{{cite journal|title=1963 Pictorial Report on the Computer Field: Digital Computers – LGP-21|journal=Computers and Automation|date=Dec 1963|volume=XII|issue=12|page=29|url=http://www.bitsavers.org/magazines/Computers_And_Automation/196312.pdf|access-date=2020-09-05}}{{cite journal |title=Across the Editor's Desk: Computing and Data Processing Newsletter – "Doorstep" Era in Computer Marketing Heralded |journal=Computers and Automation |date=May 1964 |page=62 |url=https://archive.org/details/bitsavers_computersA_10530837/page/n65}} The new computer had about 460 transistors and about 375 diodes. It cost only $16,250, one-third the price of its predecessor. However, it was also about one-third as fast as the earlier computer.
The central computer weighed about {{convert|90|lb|kg}},{{Cite web|url=http://www.ed-thelen.org/comp-hist/BRL64-l.html#LGP-21|title=LGP 21|last=Weik|first=Martin H.|date=Jan 1964|website=ed-thelen.org|series=A Fourth Survey of Domestic Electronic Digital Computing Systems}} the basic system (including printer and stands) about {{convert|155|lb|kg}}.{{cite web |title=WPS:LGP 21:Documentation |url=http://sr-ix.com/ARCHIVE/LGP-21/Documentation/index.html |website=sr-ix.com|at=LGP-21 Sales Brochure (G3-3101): p. 7}}
RPC 4000
Another, more-powerful successor machine, was the General Precision RPC 4000, announced in 1960.{{cite web |title=The LGP-30's big brother · e-basteln |url=http://www.e-basteln.de/computing/rpc4000/rpc4000/ |website=www.e-basteln.de |language=en-en}} 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, sold for $87,500 and weighed {{convert|500|lb|kg}}.{{convert|900|lb|kg}} according to
- {{cite journal |title=Amateur Computer Society Newsletter {{!}} 102654910 {{!}} Computer History Museum |journal=Amateur Computer Society Newsletter |date=Oct 1966 |issue=2 |page=4 (10) |url=http://www.computerhistory.org/collections/catalog/102654910 |language=en|quote=The size of two desks, it weighs 900 lbs}}{{cite journal |title=RPC-4000 Electronic Computing System |journal=Computers and Automation |date=May 1960 |page=4B (20) |url=https://archive.org/details/bitsavers_computersA_7019455/page/n19}}
Notable uses
Edward Lorenz used the LGP-30 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. The RPC-4000 (successor to the LGP-30) is also 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.
Simulation
A software simulation of the LGP-30 and LGP-21 are supported by SIMH, a free and open source, multi-platform multi-system emulator.
See also
Further reading
- {{cite book |last=Kaisler |first=Stephen H. |title=Birthing the Computer: From Drums to Cores |date=2017 |publisher=Cambridge Scholars Publishing |at=LGP-30: pp. 25-34, LGP-21: pp. 34-43|isbn=9781443896252 |chapter-url=https://books.google.com/books?id=P10pDwAAQBAJ&q=%22LGP-21%22+%22LGP-30%22&pg=PR8 |language=en |chapter=Chapter Two – Royal McBee/Librascope Machines}}
- {{cite journal |title=RPC 4000, LGP 30 |journal=AUERBACH Standard EDP Reports |volume=3 |at=RPC-4000: pp. 570-649; LGP-30: pp. 651-741 |url=http://www.bitsavers.org/pdf/auerbach/Auerbach_Standard_EDP_Reports_196609_Volume_3_GE-General_Precision.pdf}}
References
{{reflist|refs=
{{cite book |last=Miller |first=Raymond E. |title=Switching Theory – Volume 1: Combinational Circuits |date=1965 |edition=Second printing, March 1966, of 1st |lccn=65-14249 |volume=1 |publisher=John Wiley & Sons, Inc. |pages=44–47}}
{{cite web |url=http://www.catb.org/~esr/jargon/html/story-of-mel.html |title=Story of Mel}}
{{cite book |url=http://ed-thelen.org/comp-hist/BRL64-r.html |title=BRL Report |date=1964}}
}}
External links
- [http://computermuseum.informatik.uni-stuttgart.de/dev_en/lgp30/lgp30.html Working LGP-30 on display in Stuttgart, Germany]
- [http://www.cs.ualberta.ca/~smillie/ComputerAndMe/Part19.html LGP-30 description]
- [https://web.archive.org/web/20140821111427/http://worldpowersystems.com/projects/LGP-21/ LGP-21 description]
- [https://www.science.org/toc/science/137/3523 1962 advertisement showing both the LGP-30 and RPC-4000]
- [http://www.hp9825.com/html/stan_frankel.html Story of Stan P. Frankel, designer of the LGP-30, with photos.]
- [http://ed-thelen.org/comp-hist/lgp-30-man.html Programming manual]
- [https://www.youtube.com/watch?v=7WaYYNUCWMY Warming up the LGP-30] on YouTube
- [http://www.technikum29.de/en/computer/lgp30 technikum 29: LGP 30]
- [http://www.librascopememories.com/Librascope_Memories/1950_-_1959.html 1950-1959 Librazettes] – company newsletters on LGP-30:
{{Flatlist|indent=2|
- November, 1955 Librascope’s Amazing New General Purpose Computer Put On Market
- December, 1955 LGP-30 Wins Wide Acclaim At Chicago Automation Show
- July, 1956 Royal Precision Plans – LGP-30 Promotion
- March, 1957 Librascope's Commercial Division Does Outstanding Job on LGP-30 Production
}}
- {{cite web |title=LGP-21 documents |url=http://www.bitsavers.org/pdf/generalPrecision/LGP-21/ |website=www.bitsavers.org}}
- {{cite web |title=LGP-30, RPC-4000 and RPC-9000 documents |url=http://www.bitsavers.org/pdf/royalPrecision/ |website=www.bitsavers.org}}
{{commons category}}