Details on BOOTSTRAP implementation

The BOOTSTRAP button executes a PDT instruction with RWC (c1) set to 11, Peripheral Control Designation (c2) set from the Contents register, and SR, AAR, and BAR set from Address register. The console 'B' command performs the same action but first sets the Contents register from the first parameter and the Address register from the second. Basically, the Contents register provides the peripheral device address and the Address register provides the memory location where the record is loaded. Note that BOOTSTRAP is intended only for input devices, but there is nothing to prevent the operator from entering an output device address. Such operations do not generally end well, especially when there are no record marks in memory. One could even corrupt a tape, punch card, or disk pack by such a mistake.

The length of the "record" is determined by the periphal device and media.

Note that the computer does not automatically run the loaded record. The operator must press Run, possibly after performing additional preparation.

The contents of the bootstrap record is entirely up to the operator/programmer. It may be a stand-alone program or the first in a series of loaders eventually running a program, monitor, or operating system. Depending on the contents of the bootstrap record, additional manual steps may be required to complete the boot process. The load/run address must be known and entered before BOOTSTRAP, although typically that is 0000000.

Because peripherals do not transfer puncuation, some other method must be used to restore the punctuation to the code before running it. One method is to prepend the code with SW (and SI) instructions - which do not require punctuation when used in "format a". If the bootstrap record contains more sophisticated code, subsequent loads mey use something like BRT (Binary Run Tape) formats to restore code and punctuation (and other artifacts).

A real-life (movie) example

In the movie "Billion dollar Brain" (1967), Karl Malden operates an H200. It's not known exactly what he runs there, as the only "output" seems to be some "orders" printed on the line printer (which could come from either the deck of punch cards he loads, or the mag tape reel he mounts). But he does actually operate the H200 correctly and it seems that the print-out is actually the result of his actions on the H200. The actions he performs are:

  1. Walks into the machine room with a mag tape and box of punch cards.
  2. Mounts the mag tape on a drive.
  3. Puts the deck of punch cards in the input hopper and presses START.
  4. Enters "41" into the Contents register on the front panel (the device address for the card reader). The Address register is already 00000 (system already Initialized or at least FP was cleared).
  5. Presses the BOOTSTRAP button.
  6. Presses the RUN button.
  7. Presses the CONTENTS ENTER button (should be non-functional after pressing RUN).

After this, the line printer starts printing. So, the BOOTSTRAP should have caused the first punch card to be loaded into address 00000. RUN would have started executing the bootstrap code. The bootstrap code either loads another program, or possibly is itself the code that prints information on the line printer. We don't know if that information comes from subsequent punch cards or from the mag tape he mounted.

In the story, it is likely that the mag tape was meant to contain encrypted data and so perhaps there was a decryption program on punch cards that processed the data. Of course, no where does he enter a decryption key so the data was not really very secure - but one required both the tape and the deck of cards in order to decrypt it.

A clip of this scene is on YouTube here.

In the full movie scene, his actions continue:

  1. Does something to the tape drive, perhaps as a distraction.
  2. Removes several cards from the output hopper, presumably representing the orders just printed. He folds the cards and slips them into his pocket, effectivly destroying them ("DO NOT FOLD, SPINDLE OR MUTILATE").
  3. Takes different cards from his other pocket and inserts them in the input hopper.
  4. Presses the START button on the card reader.
  5. Goes to the line printer to see altered orders.
  6. Removes a couple pages of printer output, presumably the original orders.

Obviously, the story is that he is clandestinely changing the official orders. But, this would imply that the orders exist on the punch cards - which raises questions about why there is a mag tape. Also, the pages he removes from the printer do not contain the first orders, but are full of some other text likely not related. Certainly, the scene was never intended to be scrutinized closely by computer professionals. But, it does contain a surprisingly accurate procedure.