19. Oktober 2017

Bootstrapping the HP 2116

   HP 2116 front panel (picture from Auckland University, slightly more focussed). – From top to bottom:
037033 T-Register, Memory Data
003023 P-Register, Program Counter
003030 M-Register, Memory Address
000006 A-Register, Accumulator
177775 B-Register, Accumulator
Loader Protect toggle switch down from “Loader Enabled” at “Protection”, “Preset” buttom light on, all others off  (Run, Halt, Load Memory, Load A, Load B, Load Address, Display Memory, Single Cycle; Power)
toggle switches standing at 000007

The 16 bit minicomputer HP 2116 could not hold memory without power. Its core memory could, though, for a while, I guess. In any case we had to fill memory with a program, when we turned it an.
   This was done by a bootsrapping process, involving maually switched in machine commands.
At HP’s computer museum I found a manual “2116A/2115A Computer Operating Manual
 http://www.hpmuseum.net/document.php?hwfile=1114 . Note that the document has not been OCRd, so you might want to that if you want to find something elctronically.

On page 1-1 the “Basic Binary Loader” is explained:
The manual goes on and explains how to start the reading process, once the bootstrap program is in, and its error halts. Further down the similar loading program for magnetic tape is given. Loading in the Basic Control System BCS functioning as “relocating loader” was already a secondary process, but is explained as well, as that was the “operating system” of the time before RTS and others. Even Algol is mentioned as compiler!
   So here is the paper tape loading program to key in, the “Basic Binary Loader” for paper tape:
In practice we used the version for the fast optical paper tape reader. It is slightly different, also to be found in the manual, but starts with 107700 as well.
   To explain the figures you must know that the 2116 had 16 bit memory words, containing data or one machine instruction each. We did not write those 2 bytes in hexadecimal form, but in octal. First thing you learned that three toggle switches (see them grouped in three in the front foto!) were memorized as one number from 0 to 7. 0 was all switches down, 1 was the rightmost switch up to give 001, octal 2 was binary 010 and so on till 111 for 7. The advantage was that you had not to go to ugly 10 decimal = hexadecimal A, 11 B, 12 C, 13 D, 14 E and 15 F. That’s IBM stuff.
   The disadvantage was that 16 didn’t divide by 3, so we had this one leading lonely dwarf bit to start with. The first digit was for one bit, so it could be only 0 or 1, followed 15 bits = 5 octal numbers for 3 bits each (23=8).
   The loader listing above thus shows only numers from 0 to 7, 6 octal digits per word. To key them in, the 2116 had 16 chrome shining toggle switches (2115: illuminated buttons).
   The meaning of the instructions can be decoded from the last page of the manual, the Consolidated Coding Sheet.

Note that here the instructions are given in pure binary, not in octal code! So 107700 oct. is 001 000 111 111 000 000 bin. which would relate to a AND command, I guess … – but it’s night, and I’ll stop here.
   Correspondence to Fritz@Joern.De please.

Permalink: https://blogabissl.blogspot.com/2017/10/bootstrapping-hp-2116.html

More stories: https://blogabissl.blogspot.com/2017/10/old-computer-stories-hp-2116-et-al.html

Keine Kommentare: