More README updates, particularly in regard to DEC's Absolute Loader
This commit is contained in:
parent
ded8c1841d
commit
5d5629c27b
12 changed files with 97 additions and 52 deletions
|
|
@ -7,8 +7,8 @@ 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, such as **[BASIC (Single User)](/apps/pdp11/tabes/basic/)**.
|
||||
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, such as [BASIC (Single User)](/apps/pdp11/tabes/basic/).
|
||||
|
||||
Here's what the **Bootstrap Loader** looks like:
|
||||
|
||||
|
|
|
|||
|
|
@ -15,14 +15,5 @@ We have archived the following DEC PDP-11 Tapes:
|
|||
along with a copy of the [DEC PDP-11 Bootstrap Loader](/apps/pdp11/boot/bootstrap/), which is required if you actually want
|
||||
to load any of the above tapes into memory using the [PC11 High-Speed Paper Tape Reader/Punch](/devices/pdp11/pc11/).
|
||||
|
||||
To make it easy for PDPjs machines to load these tapes, we created the following High-Speed
|
||||
Paper Tape Reader (PC11) configurations:
|
||||
|
||||
- [demo.xml](/devices/pdp11/pc11/demo.xml)
|
||||
|
||||
which is typically instantiated by a Machine XML file using:
|
||||
|
||||
<device ref="/devices/pdp11/pc11/demo.xml"/>
|
||||
|
||||
These configuration files create UI controls that allow you to choose from a set of tapes that are automatically sent
|
||||
to the machine's PC11 device.
|
||||
For the most part, the tapes we have archived are in the DEC Absolute Loader format. More information about that format
|
||||
is on the [Absolute Loader](absloader/) page.
|
||||
|
|
|
|||
|
|
@ -8,10 +8,48 @@ DEC PDP-11 Absolute Loader
|
|||
--------------------------
|
||||
|
||||
The Absolute Loader is a special tape image that must be loaded in order to load *other* tapes
|
||||
which use the Absolute Loader format. To see the Absolute Loader in action, start with the
|
||||
[Bootstrap Loader Demo](/devices/pdp11/machine/1120/bootstrap/debugger/).
|
||||
that use what we'll call the "Absolute Format." To see the Absolute Loader in action, start with the
|
||||
[PDP-11/20 Bootstrap Loader Demo](/devices/pdp11/machine/1120/bootstrap/debugger/).
|
||||
|
||||
PCjs has archived the following DEC resources:
|
||||
The *loadImage()* interface of the [PDPjs RAM Component](/modules/pdp11/lib/ram.js) explains what
|
||||
we know about the "Absolute Format":
|
||||
|
||||
Data on tapes in the "Absolute Format" is organized into blocks; each block begins with
|
||||
a 6-byte header:
|
||||
|
||||
2-byte signature (0x0001)
|
||||
2-byte block length (N + 6, because it includes the 6-byte header)
|
||||
2-byte load address
|
||||
|
||||
followed by N data bytes. If N is zero, then the 2-byte load address is the exec address,
|
||||
unless the address is odd (usually 1). DEC's Absolute Loader jumps to the exec address
|
||||
in former case, halts in the latter.
|
||||
|
||||
All values are stored "little endian" (low byte followed by high byte), just like the
|
||||
PDP-11's memory architecture.
|
||||
|
||||
After the data bytes, there is a single checksum byte. The 8-bit sum of all the bytes in
|
||||
the block (including the header bytes and checksum byte) should be zero.
|
||||
|
||||
ANOMALIES: Tape files don't always begin with a signature word, so I allow any number of
|
||||
leading zeros before the first signature. Tape files don't always end cleanly either, so as
|
||||
soon as I see an invalid signature, I break out of the loop without signalling an error, as
|
||||
long as at least ONE block was successfully processed. In fact, it's possible that as
|
||||
soon as a block with ZERO data bytes is encountered, processing is supposed to stop, but
|
||||
I haven't examined enough tapes (or the Absolute Loader code) to know for sure.
|
||||
|
||||
[Other sites](http://www.retrocmp.com/stories/dec-pc05-papertape/242-dec-pc05-working-with-paper-tapes)
|
||||
have referred to this tape format as the "Standard Absolute" format, but I've not found confirmation of
|
||||
that terminology in any DEC publication. In fact, I think that term may have been a misreading of instructions
|
||||
found in DEC manuals like the ["MEM EXER 16K" Diagnostics Manual](http://archive.pcjs.org/pubs/dec/pdp11/other/AC-9045F-MC_CZQMCF0-0-124K-Mem-Exer-16k_Feb78.pdf):
|
||||
|
||||
Load the program using any standard absolute loader.
|
||||
|
||||
The most notable feature of the "Absolute Format" is that it contains no relocation information; it is
|
||||
designed for code that has been linked to run at a fixed ("absolute") address, or position-independent code
|
||||
for which a specific address has been selected, based on the amount of RAM present in the target machine.
|
||||
|
||||
PCjs has archived the following Absolute Loader resources:
|
||||
|
||||
- [Absolute Loader](DEC-11-L2PC-PO.json)
|
||||
- [LISTING OF PDP-11 ABSOLUTE LOADER (June 1975)](http://archive.pcjs.org/pubs/dec/pdp11/other/DEC-11-UABLA-A-LA_PDP-11AbsoluteLoaderListing_Jun75.pdf)
|
||||
|
|
|
|||
|
|
@ -13,12 +13,12 @@ machines:
|
|||
DEC PDP-11 BASIC
|
||||
----------------
|
||||
|
||||
The first PCjs machine to run DEC PDP-11 BASIC was this [PDP-11/20](/devices/pdp11/machine/1120/basic/debugger/),
|
||||
The first PDPjs machine to run DEC PDP-11 BASIC was this [PDP-11/20](/devices/pdp11/machine/1120/basic/debugger/),
|
||||
shown below.
|
||||
|
||||
{% include machine.html id="test1120" %}
|
||||
|
||||
PCjs has archived these DEC PDP-11 BASIC resources:
|
||||
PCjs has archived the following DEC PDP-11 BASIC resources:
|
||||
|
||||
- [BASIC (Single User) Tape Image](DEC-11-AJPB-PB.json)
|
||||
- [LISTING OF BASIC/PTS (March 1974)](http://archive.pcjs.org/pubs/dec/pdp11/basic/AB-2045B-SC_BASIC_PTS_Listing_Mar77.pdf)
|
||||
|
|
|
|||
Loading…
Reference in a new issue