Programs for the LGP-30 were written using coding sheets, where comments could be added. Unfortunately, the library of subroutines is available only as tape images and documentation on paper. The tape images, althogh plain text, are practically incomprehensible without entering them into coding sheets, or applying similar techniques. Using legacy coding sheets seems unefficient, and there should be a better way to write down LGP-30 progammes.

A relatively simple format

  • writes one data word per line
  • allows and uses comments

The latter is possible, because only the last 8 characters before a tick sign (“conditional stop”) are available to the LGP input routine; this is a hardware feature. Thus, arbitrary text can be added, if all instructions start with 3 (or two if not relocated) zero effecting characters. Characters that produce a zero are:

  • character 0 (zero digit)
  • character z (either case)
  • Blank space

Carriage returns are echoed, but dropped by the hardware.

Adding comments to loader input increases loading times, but compensated by increased productivity. Of course, a filter program could be used to stip again the redundant parts and provide a compact code.

The following layout is proposed:

  • commands (',', ';', '/' and '.') start in column 1
  • instructions are left filled with blank space, i.e. 3 or 4 spaces
  • there is only one tick in a line; comments are added behind
  • comments may be in a line itself; no tick used
  • lines with instructions start with a (decimal) two or four digit sector number, or same number of spaces
  • data words are always preceeded by a two or four digit sector number, followed by a blank for readability
  • data words may have leading spaces or z characters for readabiliby

A small example:

halt on overflow
00   b0016'	get start
01   a0017'	stops on overflow
     u0001'	loop
16 7ww00000' start
17 00002000' increment
start here:

Inserting code is fairly easy in an editor that shows line numbers, as not all instruction lines have sector numbers, and the current sector number can often be easily calculated by subtracting an offset mentally.

A filter is prepared that:

  • can output stripped loader sequences
  • will check the given sector and track numbers
  • can use the sector numbers as labels and update all relocatable instructions accordingly
  • will output only those sector numbers that are used in the (relocatable) instructions.

File Extensions used:

.drum	LittleGP-30 drum image
.ddi	decoded drum image
.104	program formatted for 10.4 loader
.txt	kept for original tapes in 10.4 format

Log In