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).