ROM BOOT(8) — UNIX 3.0
NAME
romboot − special ROM bootstrap loaders
DESCRIPTION
To bootstrap programs from various storage media, standard DEC ROM bootstrap loaders are often used. However, such standard loaders may not be compatible with UNIX bootstrap programs or may not exist on a particular system. Thus, special bootstrap loaders were designed that may be cut into a programmable ROM (M792 read-only-memory) or manually toggled into memory.
Each program is position-independent, that is, it may be located anywhere in memory. Normally, it is loaded into high core to avoid being overwritten. Each reads one block from drive 0 into memory starting at address 0 and then jumps to address 0. To minimize the size, each assumes that a system INIT was generated prior to execution. Also, the address of one of the device registers is used to set the byte count register or word count register. In each case, this will read in at least 256 words, which is the maximum size of bootstrap programs.
On disk devices, block 0 is read; on tape devices, one block from the current position. Thus, the tape should be positioned at the load point (endzone if DECtape) prior to booting. Also, the standard DEC bootstrap loader for magnetic tape may be emulated by positioning the tape at the load point and executing the bootstrap loader twice.
By convention, on PDP 11/45 systems, address 773 000 is the start of a tape bootstrap loader, and 773 020 the start of a disk bootstrap loader. The actual loaders used depend on the particular hardware configuration.
SEE ALSO
CODE
TC11 − DECtape
012700mov$tcba,r0
177346
010040movr0,−(r0)/use tc addr for wc
012740mov$3,−(r0)/read bn forward
000003
1057101:tstb(r0)/wait for ready
002376bge1b
112710movb$5,(r0)/read forward
000005
1057101:tstb(r0)/wait for ready
002376bge1b
005007clrpc/transfer to zero
TU10 − Magnetic Tape
012700mov$mtcma,r0
172526
010040movr0,−(r0)/use mt addr for bc
012740mov$60003,−(r0)/read, 800 bpi, 9 track
060003
1057101:tstb(r0)/wait for ready
002376bge1b
005007clrpc/transfer to zero
TU16 − Magnetic Tape
012700mov$mtwc,r0
172442
012760mov$1300,30(r0)/set 800 bpi, PDP format
001300
000030
010010movr0,(r0)/use mt addr for wc
012740mov$71,−(r0)/read
000071
1057101:tstb(r0)/wait for ready
002376bge1b
005007clrpc/transfer to zero
RK05 − Disk Pack
012700mov$rkda,r0
177412
005040clr−(r0)
010040movr0,−(r0)/use rk addr for wc
012740mov$5,−(r0)/read
000005
1057101:tstb(r0)/wait for ready
002376bge1b
005007clrpc/transfer to zero
RP03 − Disk Pack
012700mov$rpmr,r0
176726
005040clr−(r0)
005040clr−(r0)
005040clr−(r0)
010040movr0,−(r0)/use rp addr for wc
012740mov$5,−(r0)/read
000005
1057101:tstb(r0)/wait for ready
002376bge1b
005007clrpc/transfer to zero
RP04 − Disk Pack
012700mov$rpcs1,r0
176700
012720mov$21,(r0)+/read−in preset
000021
012760mov$10000,30(r0)/set to 16−bits/word
010000
000030
010010movr0,(r0)/use rp addr for wc
012740mov$71,−(r0)/read
000071
1057101:tstb(r0)/wait for ready
002376bge1b
005007clrpc/transfer to zero
May 16, 1980 — PDP-11 only