Commit | Line | Data |
---|---|---|
7af5ad59 PH |
1 | /3 TD8E SYSTEM RESIDENT (12K) |
2 | / | |
3 | / | |
4 | / | |
5 | / | |
6 | / | |
7 | / | |
8 | / | |
9 | / | |
10 | / | |
11 | /COPYRIGHT (C) 1974,1975 BY DIGITAL EQUIPMENT CORPORATION | |
12 | / | |
13 | / | |
14 | / | |
15 | / | |
16 | / | |
17 | / | |
18 | / | |
19 | / | |
20 | / | |
21 | / | |
22 | /THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE | |
23 | /AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT | |
24 | /CORPORATION. DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY | |
25 | /FOR ANY ERRORS THAT MAY APPEAR IN THIS DOCUMENT. | |
26 | / | |
27 | /THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FURNISHED TO THE PURCHASER | |
28 | /UNDER A LICENSE FOR USE ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED | |
29 | /(WITH INCLUSION OF DIGITAL'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH | |
30 | /SYSTEM, EXCEPT AS MAY OTHERWISE BE PROVIDED IN WRITING BY DIGITAL. | |
31 | / | |
32 | /DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR THE USE | |
33 | /OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY | |
34 | /DIGITAL. | |
35 | / | |
36 | / | |
37 | / | |
38 | / | |
39 | / | |
40 | / | |
41 | / | |
42 | / | |
43 | / | |
44 | / | |
45 | \f *0 | |
46 | ||
47 | -3 | |
48 | DEVICE TD8E;DEVICE SYS;4211;6007;0;1341 | |
49 | DEVICE TD8E;DEVICE DTA0;4211;5007;0;1341 | |
50 | DEVICE TD8E;DEVICE DTA1;4211;SDTA1&177+5000;0;1341 | |
51 | \f TDBEGN-TD77-1 | |
52 | ||
53 | RELOC 7360 | |
54 | ||
55 | /THE BINARY GETS LOADED INTO 27220 INITIALY, AND | |
56 | /WRITTEN OUT AS PART OF RECORD 0. WHEN THE 30 WORD | |
57 | /BOOTSTRAP IS USED, THIS CODE GETS READ INTO 7400. | |
58 | ||
59 | ||
60 | ||
61 | SDSS=6771 | |
62 | SDST=6772 | |
63 | SDSQ=6773 | |
64 | SDLC=6774 | |
65 | SDLD=6775 | |
66 | SDRC=6776 | |
67 | SDRD=6777 | |
68 | ||
69 | TDBEGN, ZBLOCK 20 | |
70 | TDBOOT, TAD K7600 /128 WORDS PER PAGE | |
71 | DCA TDWCT | |
72 | SDSS /WAIT FOR A BLOCK MARK (TAPE IS | |
73 | JMP .-1 /STILL MOVING) | |
74 | SDRC | |
75 | AND TD77 | |
76 | TAD KM26 /IS IT A BLOCK MARK? | |
77 | SZA CLA | |
78 | JMP TDBOOT+2 /NO..WAIT A WHILE LONGER | |
79 | SDRD /GET THE BLOCK NO. | |
80 | TDBKNO, TAD TDM14 /NEED DECTAPE BLOCKS 154 & 155 (REC. 66) | |
81 | SZA CLA | |
82 | JMP TDBOOT+2 /NOT YET, BUSTER | |
83 | TDRGRD, SDSS | |
84 | JMP .-1 /NOW LET'S LOOK FOR A REVERSE GUARD WORD | |
85 | SDRC | |
86 | AND TD77 | |
87 | TAD KM32 | |
88 | SZA CLA | |
89 | JMP TDRGRD /KEEP LOOKING FOR IT | |
90 | JMS TDRQD | |
91 | JMS TDRQD | |
92 | JMS TDRQD /SKIP CONTROL WORDS | |
93 | CDF 10 /LOAD UP FIELD 1 | |
94 | TDREAD, JMS TDRQD /GET A DATA WORD | |
95 | DCA I TDPTR | |
96 | ISZ TDPTR /ARE WE DONE? | |
97 | JMP TDREAD /NOT YET | |
98 | ISZ TDBKNO /YES..LOOK AT BLOCK 15 | |
99 | TAD KCDF20 | |
100 | DCA TDREAD-1 /LOAD UP FIELD 2 | |
101 | ISZ M2 /DONE THIS JUNK? | |
102 | JMP TDBOOT /GO DO FIELD 2 | |
103 | SDLC /STOP THE TAPE | |
104 | CIF CDF 0 | |
105 | JMP I K7605 | |
106 | \fTDM14, -154 | |
107 | -155 /USE RECORD 66 | |
108 | TDPTR, | |
109 | TDWCT, 7600 | |
110 | TDRQD, 0 | |
111 | SDSQ | |
112 | JMP .-1 | |
113 | SDRD | |
114 | JMP I TDRQD | |
115 | ||
116 | K7600, 7600 | |
117 | KM26, -26 | |
118 | KM32, -32 | |
119 | KCDF20, CDF 20 | |
120 | M2, -2 | |
121 | K7605, 7605 | |
122 | TD77, 77 | |
123 | ||
124 | / THIS BOOTSTRAP RESIDES IN BLOCK 0 | |
125 | / BLOCK 1/2 CONTAINS THE USUAL IMAGE OF 07600 | |
126 | / BLOCK 66 CONTAINS THE IMAGE OF 17600 | |
127 | / BLOCK 66 1/2 CONTAINS THE IMAGE OF 27600 | |
128 | RELOC | |
129 | \f *200 | |
130 | ||
131 | /TD8E DECTAPE SYSTEM HANDLER | |
132 | /THIS HANDLER CAN DRIVE UNITS 0&1, AND IS PERMANENTLY | |
133 | /RESIDENT IN FIELDS 0&2. | |
134 | ||
135 | RELOC 7600 | |
136 | ||
137 | VERSION="B&77 | |
138 | ||
139 | ZBLOCK 7 | |
140 | SHNDLR, VERSION /UNIT 0 ENTRY POINT | |
141 | CLA CLL | |
142 | JMP SHND2 | |
143 | C3, 3 /MUST BE HERE FOR BUILD | |
144 | S70, 70 | |
145 | SDTA1, VERSION /UNIT 1 ENTRY | |
146 | CLA CLL CML | |
147 | SC1000, TAD SDTA1 /DOUBLES AS CONSTANT 1000 | |
148 | DCA SHNDLR /GET ARGS AT SHNDLR | |
149 | SHND2, RAR /UNIT # | |
150 | DCA SUNIT | |
151 | RDF /SETUP FOR EXIT | |
152 | TAD S6203 | |
153 | DCA EFLD | |
154 | TAD I SHNDLR /FUNCTION WORD | |
155 | SDLD /PUT IT IN DATA EGISTER | |
156 | AND S70 /SDLD DOES NOT 0 AC..GET FIELD | |
157 | TAD S6203 /CIF CDF N FOR TRANSFER FIELD | |
158 | DCA TFLD | |
159 | ISZ SHNDLR | |
160 | TAD I SHNDLR /BUFFER ADDRESS | |
161 | DCA BPTR | |
162 | ISZ SHNDLR | |
163 | TAD I SHNDLR /BLOCK #. TIMES 2 FOR REAL # | |
164 | CLL RAL | |
165 | DCA BLOCK | |
166 | ISZ SHNDLR /POINT TO ERROR EXIT | |
167 | CIF CDF 20 /PUT UNIT # INTO FIELD 2 | |
168 | TAD SUNIT | |
169 | DCA I SUNIT2 | |
170 | JMP F2SET /TO FIELD 2 FOR INIT. | |
171 | ||
172 | F1GO, SDRD /INITIAL DIRECTION TO LINK | |
173 | RAR | |
174 | JMP RGO | |
175 | \fRENTER, TAD BPTR /DONE THIS BLOCK..NEXT ADDRESS | |
176 | TAD SC200 | |
177 | DCA BPTR | |
178 | ISZ BLOCK /NEXT TAPE BLOCK..CAN'T SKIP | |
179 | CLL CML /FORCE FORWARD MOTION | |
180 | RGO, CLA CML RTR /LINK TO MOTION BIT | |
181 | TAD SC1000 | |
182 | TAD SUNIT | |
183 | SDLC /MOVE THE TAPE | |
184 | SDSQ | |
185 | JMP .-1 | |
186 | SDRD /KNOCK DOWN QUAD FLAG | |
187 | SDSQ | |
188 | JMP .-1 | |
189 | SDRD /THIS IS NEEDED, ELSE TIME ERROR!!! | |
190 | \f | |
191 | SRCH, SDSS /WAIT FOR A BLOCK MARK | |
192 | JMP .-1 | |
193 | SDRC /GET MARK TRACK BITS | |
194 | CLL RTL /DIRECTION TO LINK | |
195 | AND SC374 | |
196 | TAD SM110 /IS IT A N END ZONE? | |
197 | SNA | |
198 | JMP SENDZ /YES | |
199 | TAD SM20 /MAYBE A BLOCK MARK? | |
200 | SZA CLA | |
201 | JMP SRCH /NEITHER..KEEP GOING | |
202 | SDRD /READ THE BLOCK # | |
203 | SZL /IF REVERSE, LOOK 3 AHEAD OF TARGET | |
204 | TAD C3 | |
205 | CMA | |
206 | TAD BLOCK | |
207 | CMA | |
208 | SNA /IS IT THE RIGHT ONE? | |
209 | JMP FOUND /YES | |
210 | SM110, CLA SNA SZL /SNA SUPERFLUOUS..ONLY SZL VALID | |
211 | JMP SRCH /HEADED FOR IT..KEEP GOING | |
212 | SENDZ, SDRC | |
213 | CLL RTL | |
214 | SZL CLA /IF IN END ZONE FORWARD, GIVE ERROR | |
215 | JMP RGO | |
216 | CIF 20 /IF IT IS REALL END ZONE, AN ERROR | |
217 | JMP ERROR | |
218 | ||
219 | FOUND, SZL CLA /RIGHT BLOCK..HOW ABOUT DIRECTION? | |
220 | JMP RGO /WRONG..EXECUTE TURNAROUND | |
221 | TAD BPTR | |
222 | TFLD, HLT /GETS CIF CDF N | |
223 | CIF 20 | |
224 | JMP RDWT /LET'S TRANSFER DATA | |
225 | ||
226 | SEXIT, ISZ SHNDLR /NORMAL RETURN | |
227 | SEREX, TAD SUNIT /STOP THE TAPE | |
228 | SDLC | |
229 | CML CLA RAR /EITHER 0 OR 4000 IN AC ON RETURN | |
230 | EFLD, HLT | |
231 | JMP I SHNDLR | |
232 | ||
233 | BPTR=7755 | |
234 | BLOCK=7754 | |
235 | SUNIT=SDTA1 | |
236 | ||
237 | S6203, 6203 | |
238 | SC200, 200 | |
239 | SC374, 374 | |
240 | SM20, -20 | |
241 | SUNIT2, SXUNIT | |
242 | RELOC | |
243 | \f *400 | |
244 | ||
245 | RELOC 7600 /RUNS IN 27600 | |
246 | ||
247 | XPTR, 0 /BUFFER POINTER | |
248 | F2SET, CLA CLL CMA RTL /3 ERROR TRIES | |
249 | DCA TRYCNT | |
250 | TAD SXUNIT /MAKE SURE TAPE IS STOPPED | |
251 | SDLC | |
252 | F26203, CIF CDF 0 | |
253 | SDRD /FUNCTION WORD | |
254 | CLL RAL | |
255 | AND CX7600 /PAGE COUNT | |
256 | DCA XPGCT | |
257 | SDRD | |
258 | DCA SXFUN /SAVE THE FUNCTION WORD | |
259 | JMP F1GO | |
260 | ||
261 | RDWT, DCA XPTR /SAVE NEW BUFFER ADDRESS | |
262 | TAD CX7600 | |
263 | DCA XWCNT /128 WORDS PER BLOCK | |
264 | REVGRD, SDSS /WAIT FOR REVERSE GUARD WORD | |
265 | JMP .-1 | |
266 | SDRC | |
267 | AND X77 | |
268 | TAD XM32 /IS IT REVERSE GUARD? | |
269 | SZA CLA | |
270 | JMP REVGRD /NO | |
271 | TAD SXFUN | |
272 | SK7700, SMA CLA /READ OR WRITE? | |
273 | JMP READ /READ | |
274 | SDRC | |
275 | AND C300 /ERRORS ON WRITE LOCKOUT AND TIME | |
276 | SZA CLA | |
277 | JMP ERROR | |
278 | JMS RDQUAD /SKIP A WORD | |
279 | CX7600, 7600 | |
280 | TAD WRLP | |
281 | TAD SXUNIT | |
282 | SDLC /TURN ON THE WRITE | |
283 | CLA CMA | |
284 | JMS WRQUAD /WRITE 7777 IN REV. CHECKSUM | |
285 | CLA CMA | |
286 | DCA SCKSUM /AND ALSO IN COMPUTE CHECKSUM | |
287 | WRLP, TAD I XPTR | |
288 | JMS WRQUAD /WRITE THE DATA | |
289 | ISZ XPTR | |
290 | X77, 77 /JUST IN CASE | |
291 | ISZ XWCNT /DONE 128? | |
292 | JMP WRLP | |
293 | JMS WRQUAD /WRITE AND CHECKSUM A WORD OF 0 | |
294 | JMS GETCHK /GET CHECKSUM | |
295 | JMS WRQUAD | |
296 | JMS WRQUAD /LET CHECKSUM GET WRITTEN | |
297 | \f | |
298 | RWCOM, SDST /CHECK FOR TIME AND CHECKSUM ERRORS | |
299 | SZA CLA | |
300 | JMP ERROR /NOTE THAT LINK IS OFF AT RWCOM | |
301 | CIF CDF 0 | |
302 | TAD XPGCT /FINISHED TRANSFER? | |
303 | TAD CX7600 /LINK GOES ON HERE | |
304 | SNA | |
305 | JMP SEXIT /YES..GETOUT | |
306 | DCA XPGCT | |
307 | JMP RENTER | |
308 | ||
309 | READ, JMS RDQUAD /SKIP CONTROL WORDS | |
310 | JMS RDQUAD | |
311 | JMS RDQUAD /GET CHECKSUM | |
312 | AND X77 | |
313 | TAD SK7700 | |
314 | DCA SCKSUM | |
315 | SRDLP, JMS RDQUAD | |
316 | DCA I XPTR | |
317 | TAD I XPTR | |
318 | JMS EQUFUN | |
319 | ISZ XPTR | |
320 | C300, 300 | |
321 | ISZ XWCNT /DONE ALL? | |
322 | JMP SRDLP /NO | |
323 | JMS RDQUAD /READ AND CHECKSUM LAST WORD | |
324 | JMS EQUFUN | |
325 | JMS RDQUAD /GET CHECKSUM | |
326 | AND SK7700 | |
327 | JMS EQUFUN | |
328 | JMS GETCHK | |
329 | JMP RWCOM | |
330 | ||
331 | ERROR, CLA CLL /THIS CAUSES SEARCH REVERSE AT RGO | |
332 | CIF CDF 0 | |
333 | ISZ TRYCNT /EXHAUSTED ERROR TRIES? | |
334 | JMP RGO | |
335 | JMP SEREX /YES..FATAL EXIT | |
336 | ||
337 | WRQUAD, 0 /WRITE A 12 BIT WORD | |
338 | SDSQ | |
339 | JMP .-1 | |
340 | SDLD | |
341 | JMS EQUFUN /SDLD LEAVES AC ALONE | |
342 | JMP I WRQUAD | |
343 | ||
344 | RDQUAD, 0 /READ A 12 BIT WORD | |
345 | SDSQ | |
346 | JMP .-1 | |
347 | SDRD | |
348 | JMP I RDQUAD | |
349 | \fEQUFUN, 0 /EQUIVALENCE CHECKSUM | |
350 | CMA | |
351 | DCA EQUTMP | |
352 | TAD EQUTMP | |
353 | AND SCKSUM | |
354 | CIA | |
355 | CLL RAL | |
356 | TAD EQUTMP | |
357 | TAD SCKSUM | |
358 | DCA SCKSUM | |
359 | JMP I EQUFUN | |
360 | ||
361 | GETCHK, 0 | |
362 | TAD SCKSUM | |
363 | CLL CMA RTL | |
364 | RTL | |
365 | RTL | |
366 | JMS EQUFUN | |
367 | TAD SCKSUM | |
368 | AND SK7700 | |
369 | JMP I GETCHK | |
370 | ||
371 | SXUNIT, 0 | |
372 | XPGCT, 0 | |
373 | SXFUN, 0 | |
374 | TRYCNT, 0 | |
375 | XWCNT, 0 | |
376 | XM32, -32 | |
377 | SCKSUM, 0 | |
378 | EQUTMP, 0 | |
379 | ||
380 | /THE LAST 4 LOCS. ARE FREE FOR USE BY BATCH | |
381 | ZBLOCK 4 | |
382 | RELOC | |
383 | $ | |
384 | \f |