The files here were provided by Bob Lilley, to whom we're all indebted for the foresight in preserving them then and effort of scanning them now.
This document calls itself the Subroutine Manual. It contains the standard programs and subroutines delivered with the LGP-30 computer, which were contributed by customers as well as the Royal McBee Corporation, as well as definitions, the bootstrap procedure and other critical information.
The programs and subroutines are presented as coding forms (eg. not machine readable). Programs and subroutines are numbered, not named (eg. the standard bootstrap is program 9.0), and refered to as such in all LGP documentation. As far as I know, these are the only copies of the LGP software available electronically. Eventually I will make tape images of some of these.
Note that these coding forms are more or less analogous to computer program source code, but not quite the same thing. In "modern" machines, program description, aka "source code", is highly abstracted and formal, and usually represented by strings of characters from previously agreed-upon character sets, like ASCII. This isn't exactly the case for machines of this vintage. The codes you see in the coding forms here are the actual characters punched onto the tape, from the specially-encoded Friden Flexowriter attached to the machine. Please understand that it was arranged by the factory that the letter "B", when pressed on the keyboard, was stored within the machine under hardware, not software control, and is the exact internal representation for the "BRING" command (load memory into the accumulator), for example. The character code used was peculiar to the LGP machines, arranged for the convenience of the hardware designers.
Additional abstractions on the coding form indicated when you were to type the STOP CODE, which was the same as the apostrophe key. STOP CODE told the Friden Flexowrter interface card to continue machine execution.
Complications like this make it hard to store and present computer programs of historic interest; they were often not "computer files" in our today ordinary sense.
Machines of this vintage are sometimes quite alien to those of us that grew up with third-generation machines (minicomputers) or later, where things we largely take for granted (standardized character codes, etc) were mostly worked out, and computers were addressed in largely symbolic manner from conveniently pure-symbolic things like CRT serial terminals or teletypes. In the case of the LGP-30 and LGP-21, the Flexowriter is wired directly into the hardware. It's not a "peripheral" as in later machines, but an integral part of machine operation.
The spirit of open-source software was present from
the beginning and clearly alive in this manual:
"This subroutine manual was compiled by the Royal McBee Computing Section to facilitate coding problems for the LGP-30. The programming was done by the Royal McBee Computing Section and various LGP-30 users. As other subroutines are developed they will be added to the manual and distributed to LGP-30 users. ... "It is hoped that as LGP-30 users develop other useful subroutines they will submit the routines to the Royal McBee Computing Section for inclusion in this manual. This will facilitate prompt and complete distribution of generalized routines and prevent unnecessary duplication [of effort]."
|PROGRAMS-9.0-11.0r||Standard programs and subroutines. This section contains a lot of critical knowledge regarding conventions used throughout the LGP system, and contains the detailed bootstrap process.|
|PROGRAMS-11.2-20.0||Standard programs and subroutines|
|PROGRAMS-21.0-37.0||Standard programs and subroutines|