page_title: LGP-30
section_title: Design
hierarchical_section_title: LGP-30 / Design
caption_attribution_description: English: LGP-30 computer at the Computer History Museum. Note this image shows only the keyboard of the console (Flexowriter).
context_page_description: 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, 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, equivalent to $440,000 in 2019.
  The LGP-30 was commonly referred to as a desk computer. Its height, width, and depth, excluding the typewriter shelf, was 33 by 44 by 26 inches. It weighed about 800 pounds, and was mounted on sturdy casters which facilitated moving the unit.
context_section_description: 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 were 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 
caption: Console typewriter of an LGP-30 at the Computer History Museum.  Note that, as was common in typewriters of the time, there is no key for the number 1 (lower case L was used instead).
exif: {"Image Make": "Canon", "Image Model": "Canon EOS DIGITAL REBEL XTi", "Image Orientation": "Horizontal (normal)", "Image XResolution": "72", "Image YResolution": "72", "Image ResolutionUnit": "Pixels/Inch", "Image DateTime": "2008:03:22 11:39:32", "Image ExifOffset": "180", "EXIF ExposureTime": "1/50", "EXIF FNumber": "14/5", "EXIF ExposureProgram": "Manual", "EXIF ISOSpeedRatings": "800", "EXIF ExifVersion": "0221", "EXIF DateTimeOriginal": "2008:03:22 11:39:32", "EXIF DateTimeDigitized": "2008:03:22 11:39:32", "EXIF ShutterSpeedValue": "3217/570", "EXIF ApertureValue": "12742/4289", "EXIF ExposureBiasValue": "0", "EXIF MeteringMode": "Pattern", "EXIF Flash": "Flash did not fire, compulsory flash mode", "EXIF FocalLength": "60", "EXIF FlashPixVersion": "0100", "EXIF ColorSpace": "sRGB", "EXIF ExifImageWidth": "3731", "EXIF ExifImageLength": "2485", "EXIF FocalPlaneXResolution": "195065/44", "EXIF FocalPlaneYResolution": "102433/23", "EXIF FocalPlaneResolutionUnit": "2", "EXIF CustomRendered": "Normal", "EXIF ExposureMode": "Manual Exposure", "EXIF WhiteBalance": "Auto", "EXIF SceneCaptureType": "Standard"}