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 on.
This was done by a bootsrapping process, involving maually switched in machine commands. You switched some of the toggle switches upwards (=1), three adjacent up 111 was a 7.
You had to switch in just eleven or twelve instructions into memory, starting at location 100 (or elsewhere, so as to not overwrite yourself when booting?). My friend Enrico found a document page labeled “A017, Loaders” from August 1972, “hp 21xx 5950-9226 Hewlett-Packard Program Catalog Aug72”, here on page 1-24:
22009B, BOOTSTRAP LOADER GENERATOR This program produces a punched tape containing com- puter instructions constituting either a basic binary loader or a basic binary disc loader. Also furnished by the program is a typed set of instructions for using the tape produced. By employing a bootstrap bootstrap, consisting of 11 instructions entered through the switch register, the boot- strap loader tape can be read into the required positions of core storage. Bootstrap loader tapes can be produced for any core storage capacity used in HP computers. Assembly language, absolute. Contributed. 22223C, LOADER BOOTSTRAP This program provides a simple method of entering a basic binary loader or a basic binary disc loader. First, twelve instructions are entered into the switch register. These instructions indicate the configuration of the computer system, and also serve as a driver for acquiring the boot- strap tape. After the tape has been read, the basic binary loader or basic binary disc loader is ready for use in memory. The program includes preparation of a check sum to detect tape reader errors. A test of the loader protect switch is also made. Assembly language, absolute. Contributed: Fritz Joern HP, Germany /Frankfurt
The full catalogue is to be seen here. Incidentally there you also find many other little programs by myself and by members of my group like Enrico Mariani with for example a fast sort program, Bjoern Lindbergh, Paul Gavarini’s Snobol Compiler and other software like a Tic-Tac-Toe game. Sorry, if I forget someone, look for yourself.
There were quite a number of bootstrap loaders, see this index.
The instruction keyed in initially included read in a tape character, skip if flag set (SFS: i.e. wait in a loop until reader responds with one character), store content to location (somewhere higher up), increase location where program is stored, and repeat. IF SOMEONE KNOWS THE SEQUENCE, please let us know (Fritz@Joern.De). First tape read was a bootstrap paper – or rather sturdier Mylar – tape with the program you wanted to be executed first, I guess the 64 (see below) of the BBL, the basic binary loader, see below.
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: http://j.mp/2Ikh6Tm =
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
See the HP2116A in operation at https://youtu.be/Kko526UpHsM. Unfortunately David Collins does not show the bootstrapping.
1 Kommentar:
thank u for sharing this post
HP Switches
Meraki Switches
Kommentar veröffentlichen