Annotation of researchv10dc/dist/man/v4/man8/bproc.8, revision 1.1.1.1

1.1       root        1: .tr |
                      2: .th "BOOT PROCEDURES" VIII 11/1/73
                      3: .sh NAME
                      4: boot procedures \*- UNIX startup
                      5: .sh DESCRIPTION
                      6: The advent of the new system has
                      7: changed the boot procedures.
                      8: .it "These procedures apply only to C-language systems."
                      9: .s3
                     10: .it "How to start UNIX.||"
                     11: UNIX is started by placing it in core
                     12: starting at location zero and transferring to zero.
                     13: There are various ways to do this.
                     14: If
                     15: UNIX is still intact after it has been running,
                     16: the most obvious method is
                     17: simply to transfer to zero.
                     18: .s3
                     19: The
                     20: .it tp
                     21: command places a bootstrap program
                     22: on the
                     23: otherwise unused block zero of the tape.
                     24: The DECtape version of this program is
                     25: called
                     26: .it tboot,
                     27: the magtape version
                     28: .it mboot.
                     29: If
                     30: .it tboot
                     31: or
                     32: .it mboot
                     33: is read into location zero and
                     34: executed there,
                     35: it will type `=' on the console,
                     36: read in a
                     37: .it tp
                     38: entry name,
                     39: load that entry into core,
                     40: and transfer to zero.
                     41: Thus the next easiest way to run UNIX
                     42: is to maintain the UNIX code on a tape using
                     43: .it tp.
                     44: Then when a boot is required,
                     45: execute (somehow) a program
                     46: which reads in and jumps to
                     47: the first block of the tape.
                     48: In response to the `='
                     49: prompt,
                     50: type the entry name of the system on the tape
                     51: (we use plain `unix').
                     52: It is strongly recommended that a current version of
                     53: the system be maintained in this way,
                     54: even if the first or third methods of booting the
                     55: system are usually used.
                     56: .s3
                     57: The standard
                     58: DEC ROM which loads DECtape is sufficient to
                     59: read in
                     60: .it tboot,
                     61: but the
                     62: magtape ROM loads block one, not zero.
                     63: If no suitable ROM is available,
                     64: magtape and DECtape programs are presented below which may be
                     65: manually placed in core and executed.
                     66: .s3
                     67: A third method of rebooting the system involves the otherwise unused
                     68: block zero of each UNIX file system.
                     69: The single-block program
                     70: .it uboot
                     71: will read a UNIX pathname from the console,
                     72: find the corresponding file on a device,
                     73: load that file into core location zero,
                     74: and transfer to it.
                     75: The current version of this boot program
                     76: reads a single character (either
                     77: .bd p
                     78: or
                     79: .bd k
                     80: for RP or RK, both drive 0)
                     81: to specify which device is to be
                     82: searched.
                     83: .it Uboot
                     84: operates under very
                     85: severe space constraints.
                     86: It supplies no prompts, except that it
                     87: echos a carriage return and line feed after the
                     88: .bd p
                     89: or
                     90: .bd k.
                     91: No diagnostic is provided if the indicated file cannot be found,
                     92: nor is there any means of correcting typographical errors in the
                     93: file name except to start the program over.
                     94: .it Uboot
                     95: can reside on any of the standard
                     96: file systems or may be loaded from a
                     97: .it tp
                     98: tape as described above.
                     99: .s3
                    100: The standard DEC disk ROMs will load and execute
                    101: .it uboot
                    102: from block zero.
                    103: .s3
                    104: .it "The switches.||"
                    105: The console switches play an important role in the
                    106: use and especially the booting of UNIX.
                    107: During operation,
                    108: the console switches are
                    109: examined 60 times per second,
                    110: and the contents of the address specified by the switches
                    111: are displayed in the display register.
                    112: (This is not true on the 11/40
                    113: since there is no display register on that machine.)
                    114: If the switch address is even,
                    115: the address is interpreted in kernel (system)
                    116: space;
                    117: if odd,
                    118: the rounded-down address is interpreted in
                    119: the current user space.
                    120: .s3
                    121: If any diagnostics are produced by the system,
                    122: they are printed on the console only if
                    123: the switches are non-zero.
                    124: Thus it is wise to have a non-zero value in the
                    125: switches at all times.
                    126: .s3
                    127: During the startup of the
                    128: system,
                    129: the
                    130: .it init
                    131: program (VIII)
                    132: reads the switches and
                    133: will come up single-user
                    134: if the switches are set to 173030.
                    135: .s3
                    136: It is unwise to have a non-existent address in the
                    137: switches.
                    138: This causes a bus error in the system
                    139: (displayed as 177777)
                    140: at the rate of 60 times per second.
                    141: If there is a transfer of more than
                    142: 16ms duration on a device with a data rate
                    143: faster than the bus error timeout
                    144: (approx 10\*us)
                    145: then a permanent disk non-existent-memory error will occur.
                    146: .s3
                    147: .it "ROM programs.||"
                    148: Here are some programs which are suitable for
                    149: installing in read-only memories,
                    150: or for manual keying into core
                    151: if no ROM is present.
                    152: Each program is position-independent
                    153: but should be placed well above location 0
                    154: so it will not be overwritten.
                    155: Each reads a block from the
                    156: beginning of a device into core location
                    157: zero.
                    158: The octal words constituting the program are
                    159: listed on the left.
                    160: .s3
                    161: .ne 5
                    162: .nf
                    163: DECtape (drive 0) from endzone:
                    164: .if n .ta 3 11 15 23 38
                    165: .if t .ta .3i 1i 1.4i 2i 3.5i
                    166:        012700          mov     $tcba,r0
                    167:        177346
                    168:        010040          mov     r0,-(r0)        / use tc addr for wc
                    169:        012710          mov     $3,(r0) / read bn forward
                    170:        000003
                    171:        105710  1:      tstb    (r0)    / wait for ready
                    172:        002376          bge     1b
                    173:        112710          movb    $5,(r0) / read (forward)
                    174:        000005
                    175:        000777          br      .       / loop; now halt and start at 0
                    176: .s3
                    177: DECtape (drive 0) with search:
                    178:        012700  1:      mov     $tcba,r0
                    179:        177346
                    180:        010040          mov     r0,-(r0)        / use tc addr for wc
                    181:        012740          mov     $4003,-(r0)     / read bn reverse
                    182:        004003
                    183:        005710  2:      tst     (r0)
                    184:        002376          bge     2b      / wait for error
                    185:        005760          tst     -2(r0)  / loop if not end zone
                    186:        177776
                    187:        002365          bge     1b
                    188:        012710          mov     $3,(r0) / read bn forward
                    189:        000003
                    190:        105710  2:      tstb    (r0)    / wait for ready
                    191:        002376          bge     2b
                    192:        112710          movb    $5,(r0) / read (forward)
                    193:        000005
                    194:        105710  2:      tstb    (r0)    / wait for ready
                    195:        002376          bge     2b
                    196:        005007          clr     pc      / transfer to zero
                    197: .s3
                    198: .fi
                    199: Caution: both of these DECtape programs will (literally) blow a fuse
                    200: if 2 drives are dialed to zero.
                    201: .s3
                    202: .nf
                    203: Magtape from load point:
                    204:        012700          mov     $mtcma,r0
                    205:        172526
                    206:        010040          mov     r0,-(r0)        / usr mt addr for wc
                    207:        012740          mov     $60003,-(r0)    / read 9-track
                    208:        060003
                    209:        000777          br      .       / loop; now halt and start at 0
                    210: .s3
                    211: RK (drive 0):
                    212:        012700          mov     $rkmr,r0
                    213:        177414
                    214:        005040          clr     -(r0)
                    215:        005040          clr     -(r0)
                    216:        010040          mov     r0,-(r0)
                    217:        012740          mov     $5,-(r0)
                    218:        000005
                    219:        105710  1:      tstb    (r0)
                    220:        002376          bge     1b
                    221:        005007          clr     pc
                    222: .s3
                    223: RP (drive 0)
                    224:        012700          mov     $rpmr,r0
                    225:        176726
                    226:        005040          clr     -(r0)
                    227:        005040          clr     -(r0)
                    228:        005040          clr     -(r0)
                    229:        010040          mov     r0,-(r0)
                    230:        012740          mov     $5,-(r0)
                    231:        000005
                    232:        105710  1:      tstb    (r0)
                    233:        002376          bge     1b
                    234:        005007          clr     pc
                    235: .dt
                    236: .sh FILES
                    237: /usr/sys/unix \*- UNIX code
                    238: .br
                    239: /usr/mdec/mboot \*- \fItp\fR magtape bootstrap
                    240: .br
                    241: /usr/mdec/tboot \*- \fItp\fR DECtape bootstrap
                    242: .br
                    243: /usr/mdec/uboot \*- file system bootstrap
                    244: .sh "SEE ALSO"
                    245: tp(I), init(VII)

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.