From Computer History Wiki
Revision as of 22:47, 1 April 2024 by Jnc (talk | contribs) (It was built out of vacuum tubes)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

The LGP-30 (the 'LGP' was the acronym of 'Librascope General Purpose', later 'Librascope General Precision') was an early low-cost (and thus low-performance) computer, produced by Librascope (later part of Royal McBee). It based on a design done at Caltech by Stanly Frankel, and implemented there in a prototype called MINAC, in 1954. It was first delivered in September, 1956. Around 500 were sold.

It was a serial machine which used a drum for its main memory, each track (of 64 tracks) holding 64 words, each 32 bits long. (For arithmetical operations, there was a sign bit, only 30 bits in single-precision math, and a spacer bit, always zero in memory, though.) The logic was built out of vacuum tubes, and it contained only 113 tubes and 1,450 diodes; it could perform 500 additions per second.

Input/output used a Flexowriter, which had a paper tape reader attachment (a higher speed reader/punch was available as an option).

It appears to have been an influence on the later Packard Bell PB 250, no doubt via Stanly Frankel, who consulted on the latter machine.


The drum also held three 'circulating register' tracks, each used for an internal register (the Program Counter, the Instruction Register, and the accumulator); they were replicated around the track, with multiple read heads, so as to reduce their access time.

The entire machine contained only fifteen flip-flops!

Flop Function
F, G, H Phase of instruction execution
K Drum sector search during fetch
L Carry
Q1-Q4 Operation code of current instruction
P1-P6 Track selection

K, Q2, and P1-P6 were used for other purposes during times in which they were not needed for their primary purpose.

Instructions contained a 12-bit address (6 each track and sector), and 4-bit opcode (in octal; ones marked with '!' do not use the 'address' field for an address):

  • 0! - Stop
  • 1 - Load
  • 2 - Store address only
  • 3 - Save return address
  • 4! - Input
  • 5 - Divide
  • 6 - Truncated multiply (low order part of result)
  • 7 - Short multiply (high order part of result)
  • 10! - Output
  • 11 - And
  • 12 - Jump
  • 13 - Jump if negative
  • 14 - Store
  • 15 - Store and clear
  • 16 - Add
  • 17 - subtract

The high order half of the word was unused by instructions. Since there was no 'next instruction field, optimum programming was not possible; words on the drum were interleaved so that waiting was usually minimized.

Further reading

External links