|
|
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)
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.