--- layout: page title: DEC PDP-11 Bootstrap Loader permalink: /apps/pdp11/boot/bootstrap/ --- DEC PDP-11 Bootstrap Loader --------------------------- The **Bootstrap Loader** is a small program that loads the [Absolute Loader](/apps/pdp11/tapes/absloader/), which is then used to load other PDP-11 tapes in the "Absolute Format," such as [BASIC (Single User)](/apps/pdp11/tapes/basic/). Here's what the **Bootstrap Loader** looks like: Location Instruction 037744 016701 037746 000026 037750 012702 037752 000352 037754 005211 037756 105711 037760 100376 037762 116162 037764 000002 037766 037400 037770 005267 037772 177756 037774 000765 037776 177550 Using any [PDPjs](/modules/pdp11/) machine with the built-in Debugger, such as this [PDP-11/20 Boot Monitor](/devices/pdp11/machine/1120/monitor/debugger/), the **Bootstrap Loader** is easily entered with a single Debugger EDIT ("e") command: e 037744 016701 000026 012702 000352 005211 105711 100376 116162 000002 037400 005267 177756 000765 177550 You can immediately disassemble the code using the Debugger's UNASSEMBLE ("u") command `u 037744 040000`: 037744: 016701 000026 MOV 037776,R1 037750: 012702 000352 MOV #352,R2 037754: 005211 INC @R1 037756: 105711 TSTB @R1 037760: 100376 BPL 037756 037762: 116162 000002 037400 MOVB 2(R1),37400(R2) 037770: 005267 177756 INC 037752 037774: 000765 BR 037750 037776: 177550 .WORD 177550 To run the above code, set the PC to 037744 and start the machine: r pc=037744 g Pre-loading DEC's Bootstrap Loader ---------------------------------- I pasted the disassembled code (above) into a listing file, [BOOTSTRAP-16KB.txt](BOOTSTRAP-16KB.txt), and then ran [FileDump](/modules/filedump) to produce a [BOOTSTRAP-16KB.json](BOOTSTRAP-16KB.json) that can be automatically pre-loaded into any machine: filedump --file=BOOTSTRAP-16KB.txt --format=octal --output=BOOTSTRAP-16KB.json For example, this [PDP-11/20 Bootstrap Loader Demo](/devices/pdp11/machine/1120/bootstrap/debugger/) pre-loads the **Bootstrap Loader** using the `` component's optional *file* attribute: I also edited [BOOTSTRAP-16KB.json](BOOTSTRAP-16KB.json) to include the following properties: "load": 0x3FE4, "exec": 0x3FE4, so that the `` component knows exactly where to load and execute the file. However, the `` component can also specify those value(s) itself, if needed: Finally, if you prefer octal *and* you're sure everyone will be using an ES6-capable browser, you can do this: All PCjs configuration files use hex and/or decimal exclusively, since those number formats have always been supported, but as time goes by, the new octal and binary formats will be almost as universal.