Difference between revisions of "PDP-11 Absolute Loader"
(An OK start) |
(No difference)
|
Revision as of 14:14, 13 August 2019
The PDP-11 Absolute Loader is a short program designed to be loaded into the main memory of a PDP-11 by the PDP-11 Bootstrap Loader (most binary copies of the absolute loader are in the format expected by the bootstrap loader); it in turn is then run to load some other program into the machine.
The bootstrap loader is designed to be absolutely as short as possible (since it is manually toggled in via the switch register), and therefore has limitations, including how long a program can be loaded using it, and where in memory that program can be placed; the absolute loader relaxes both of those limitations.
The initial version of the absolute loader had three different operating modes, controller by the contents of the switch register. If '0', it operates 'normally'. If '1', each block is loaded immediately following the previous block (i.e. the address in the block header is ignored). If 'xxxxx1' (in binary), the block is loaded at the address given in the high bits. For later PDP-11's, which did not have a switch register, a modified version is reequired.
Absolute Loader format
The format of absolute loader input is that it consists of an arbitrary number of blocks, each of which has the following format:
- Leader (all bytes 0)
- Start marker (1 byte, value '1')
- Pad (1 byte, value '0')
- Low byte count (1 byte)
- High byte count (1 byte)
- Low load address (1 byte)
- High load address (1 byte)
- Program to be loaded
- Checksum (1 byte)
The optional leader is because the absolute loader was originally for loading programs held on paper tape. The byte count includes the header starting with the 'start marker' (i.e. 6 bytes), but does not include the checksum byte.
The checksum is the low-order byte of the negation of the sum of all the bytes in a block; when all the bytes of a block, including the checksum, are added together, the low-order byte of the result should be zero (if the block has been read correctly).
A block of length 6 (i.e. only the header) marks the end of the input. If the address is odd, the absolute loader halts; if even, it jumps to the address given in the last block.
Further reading
The Absolute Loader is documented in some detail in the "paper tape software programming handbook" (DEC-11-GGPB-D), pp. 6-8 to 6-12.
v • d • e PDP-11 Computers and Peripherals |
---|
UNIBUS PDP-11s - PDP-11/20 • PDP-11/15 • PDP-11/35 • PDP-11/40 • PDP-11/45 • PDP-11/50 • PDP-11/55 • PDP-11/70 PDP-11/05 • PDP-11/10 • PDP-11/04 • PDP-11/34 • PDP-11/60 • PDP-11/44 • PDP-11/24 • PDP-11/84 • PDP-11/94 QBUS PDP-11s - PDP-11/03 • PDP-11/23 • PDP-11/23+ • MicroPDP-11/73 • MicroPDP-11/53 • MicroPDP-11/83 • MicroPDP-11/93 QBUS CPUs: LSI-11 • LSI-11/2 • KDF11-A • KDF11-B • KDJ11-A • KDJ11-B • KDJ11-D • KDJ11-E Buses: UNIBUS • UNIBUS map • SPC • MUD • EUB • QBUS • CD interconnect • PMI Also: PDP-11 architecture • PDP-11 Extended Instruction Set • FP11 floating point • PDP-11 Memory Management |
UNIBUS CPUs: KA11 • KC11 • KB11-A • KB11-B • KB11-C • KB11-D • KD11-A • KD11-B • KD11-D • KD11-E • KD11-EA • KD11-K • KD11-Z • KDF11-U
Co-processors: FP11-A • FP11-B • FP11-C • FP11-E • FP11-F • KE44-A • FPF11 Chips: LSI-11 • KEV11-A • KEV11-B • KEV11-C • F-11 • KEF11-A • KTF11-A • T-11 • J-11 • FPJ11 CPU options: KE11-E • KE11-F • KJ11-A • KT11-C • KT11-D • KK11-A • KK11-B • KT24 • KTJ11-B Rare CPU options: KS11 Memory Protection and Relocation option • KT11-B Paging Option • KUV11 Writeable Control Store Front panels: KY11-A • KY11-D • KY11-J • KY11-LA • KY11-LB • KY11-P More on buses: UNIBUS and QBUS termination • Bus Arbitration on the Unibus and QBUS • CTI BUS PDT-11s - PDT-11/110 • PDT-11/130 • PDT-11/150 CTI PDP-11s - PRO-325 • PRO-350 • PRO-380 Other: FIS floating point • PDP-11 Commercial Instruction Set • PDP-11 stacks • PDP-11 family differences |