Add README.md
[pdp8.git] / sw / os8 / v3d / sources / system / dectapes / dectape3 / TD8ESY.PA
CommitLineData
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
69TDBEGN, ZBLOCK 20
70TDBOOT, 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.
80TDBKNO, TAD TDM14 /NEED DECTAPE BLOCKS 154 & 155 (REC. 66)
81 SZA CLA
82 JMP TDBOOT+2 /NOT YET, BUSTER
83TDRGRD, 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
94TDREAD, 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
108TDPTR,
109TDWCT, 7600
110TDRQD, 0
111 SDSQ
112 JMP .-1
113 SDRD
114 JMP I TDRQD
115
116K7600, 7600
117KM26, -26
118KM32, -32
119KCDF20, CDF 20
120M2, -2
121K7605, 7605
122TD77, 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
140SHNDLR, VERSION /UNIT 0 ENTRY POINT
141 CLA CLL
142 JMP SHND2
143C3, 3 /MUST BE HERE FOR BUILD
144S70, 70
145SDTA1, VERSION /UNIT 1 ENTRY
146 CLA CLL CML
147SC1000, TAD SDTA1 /DOUBLES AS CONSTANT 1000
148 DCA SHNDLR /GET ARGS AT SHNDLR
149SHND2, 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
172F1GO, 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
180RGO, 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
191SRCH, 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
210SM110, CLA SNA SZL /SNA SUPERFLUOUS..ONLY SZL VALID
211 JMP SRCH /HEADED FOR IT..KEEP GOING
212SENDZ, 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
219FOUND, SZL CLA /RIGHT BLOCK..HOW ABOUT DIRECTION?
220 JMP RGO /WRONG..EXECUTE TURNAROUND
221 TAD BPTR
222TFLD, HLT /GETS CIF CDF N
223 CIF 20
224 JMP RDWT /LET'S TRANSFER DATA
225
226SEXIT, ISZ SHNDLR /NORMAL RETURN
227SEREX, TAD SUNIT /STOP THE TAPE
228 SDLC
229 CML CLA RAR /EITHER 0 OR 4000 IN AC ON RETURN
230EFLD, HLT
231 JMP I SHNDLR
232
233 BPTR=7755
234 BLOCK=7754
235 SUNIT=SDTA1
236
237S6203, 6203
238SC200, 200
239SC374, 374
240SM20, -20
241SUNIT2, SXUNIT
242 RELOC
243\f *400
244
245 RELOC 7600 /RUNS IN 27600
246
247XPTR, 0 /BUFFER POINTER
248F2SET, CLA CLL CMA RTL /3 ERROR TRIES
249 DCA TRYCNT
250 TAD SXUNIT /MAKE SURE TAPE IS STOPPED
251 SDLC
252F26203, 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
261RDWT, DCA XPTR /SAVE NEW BUFFER ADDRESS
262 TAD CX7600
263 DCA XWCNT /128 WORDS PER BLOCK
264REVGRD, 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
272SK7700, 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
279CX7600, 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
287WRLP, TAD I XPTR
288 JMS WRQUAD /WRITE THE DATA
289 ISZ XPTR
290X77, 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
298RWCOM, 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
309READ, JMS RDQUAD /SKIP CONTROL WORDS
310 JMS RDQUAD
311 JMS RDQUAD /GET CHECKSUM
312 AND X77
313 TAD SK7700
314 DCA SCKSUM
315SRDLP, JMS RDQUAD
316 DCA I XPTR
317 TAD I XPTR
318 JMS EQUFUN
319 ISZ XPTR
320C300, 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
331ERROR, 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
337WRQUAD, 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
344RDQUAD, 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
361GETCHK, 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
371SXUNIT, 0
372XPGCT, 0
373SXFUN, 0
374TRYCNT, 0
375XWCNT, 0
376XM32, -32
377SCKSUM, 0
378EQUTMP, 0
379
380/THE LAST 4 LOCS. ARE FREE FOR USE BY BATCH
381 ZBLOCK 4
382 RELOC
383 $
384\f