home *** CD-ROM | disk | FTP | other *** search
/ minnie.tuhs.org / unixen.tar / unixen / PDP-11 / Trees / V6 / usr / man / man8 / bproc.8 < prev    next >
Encoding:
Text File  |  1975-06-26  |  6.1 KB  |  259 lines

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