software: Added more and more
[pdp8.git] / sw / os8 / v3d / sources / system / dectapes / dectape1 / RK08SY.PA
CommitLineData
7af5ad59
PH
1/10 OS/8 RK8 SYSTEM HANDLER V3D
2/
3/
4/
5/
6/
7/
8/
9/
10/
11/COPYRIGHT (C) 1974,1975,1977 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/SYSTEM HANDLER ALSO HAS RESIDENT THE NONSYSTEM HANDLER RKA1:
46
47/ SOFSET=7747
48
49 RKVERSION="D&77
50
51 DLDA=6731 /LOAD DISK ADDRESS (MAINT ONLY)
52 DLDC=6732 /LOAD COMMAND REGISTER
53 /0: ENABLE CHANGE IN INTERRUPT STATUS
54 /1: ENABLE PROGRAM INTERRUPT ON TRANSFER DONE
55 /2: ENABLE INTERRUPT ON ERROR
56 /3: UNUSED
57 /4: SEEK TRACK AND SURFACE ONLY
58 /5: ENABLE READ/WRITE OF 2 HEADER WORDS
59 /6-8: EXTENDED MEMORY ADDRESS
60 /9-10: DISK FILE NUMBER
61 /11: UNUSED
62 DLDR=6733 /LOAD DISK ADDRESS AND READ, THEN CLEAR AC
63 /0-7: TRACK ADDRESS
64 /8: SURFACE BIT
65 /9-11: SECTOR ADDRESS
66 DRDA=6734 /READ DISK ADDRESS
67 DLDW=6735 /LOAD DISK ADDRESS AND WRITE, THEN CLEAR AC
68 DRDC=6736 /READ DISK COMMAND REGISTER
69 DCHP=6737 /LOAD DISK ADDRESS AND CHECK PARITY
70 DRDS=6741 /READ DISK STATUS REGISTER
71 /0: ERROR
72 /1: TRANSFER DONE
73 /2: CONTROL BUSY ERROR
74 /3: TIME OUT ERROR
75 /4: PARITY OR TIMING ERROR
76 /5: DATA RATE ERROR
77 /6: TRACK ADDRESS ERROR
78 /7: SECTOR NO GOOD ERROR
79 /8: WRITE LOCK ERROR
80 /9: TRACK CAPACITY EXCEEDED ERROR
81 /10: SELECT ERROR
82 /11: BUSY
83 DCLS=6742 /CLEAR STATUS REGISTER
84 DMNT=6743 /LOAD MAINTENANCE REGISTER
85 /SEE PAGE 7-145 IN 1972 SMALL COMPUTER HANDBOOK
86 DSKD=6745 /SKIP ON DISK DONE
87 DSKE=6747 /SKIP ON DISK ERROR
88 DCLA=6751 /CLEAR ALL
89 DRWC=6752 /READ WORD COUNT REGISTER
90 DLWC=6753 /LOAD WORD COUNT REGISTER
91 DLCA=6755 /LOAD CURRENT ADDRESS REGISTER
92 DRCA=6757 /READ CURRENT ADDRESS REGISTER
93\f *0
94
95 -3
96 DEVICE RK8;DEVICE SYS;4051;2007;0;6260
97 DEVICE RK8;DEVICE RKA0;4051;1007;0;6260
98 DEVICE RK8;DEVICE RKA1;4051;RKA1&177+1000;0;6260
99
100/V3D CHANGES:
101
102/FIXED BUG CONCERNING RETRY COUNT IF LINK SET ON CALL
103/REMOVED 'SOFSET'
104\f BOOT-ENDB-1
105
106 NOPUNC
107 *1
108 ENPUNC
109
110BOOT, TAD I BOOTX1
111 DCA I BOOTX2
112 TAD I BOOTX3
113 CDF 10
114 DCA I BOOTX4
115 CDF 0
116 TAD BOOTX2
117 SZA CLA
118 JMP BOOT
119 JMP BGETUT
120BOOTX1, 200
121BOOTX2, 7577
122BOOTX3, 47
123BOOTX4, 7646
124BGETUT, DRDC
125 RAR
126 AND BOOT3
127 DCA I BOOTUT
128 JMP I B7605
129BOOT3, 3
130BOOTUT, DEFUNIT
131 ZBLOCK 27-.
132B7605, 7605
133 DSKD /MUST LOAD OVER LOC. 30
134 JMP .-1 /MUST LOAD OVER 31
135ENDB, JMP BOOT
136\f /THE BOOTSTRAP FOR THE RK8 IS AS FOLLOWS: (UNIT 0)
137
138 / LOCATION CONTENTS
139 / 30 6733
140 / 31 5031
141
142 /LOAD ADDRESS 30 AND START
143
144/THE BOOTSTRAP FOR OTHER UNITS IS AS FOLLOWS:
145
146/ 26 7604
147/ 27 6732
148/ 30 6733
149/ 31 5031
150
151/LOAD ADDRESS 26, PUT UNIT NUMBER IN SWITCH REGISTER BITS 9-10,
152/CLEAR, CONTINUE
153\f *200
154
155 NOPUNCH;*7600;ENPUNCH
156
157 ZBLOCK 7
158RK8, RKVERSION
159 CLA
160 TAD DEFUNIT /USE DEFAULT UNIT FOR SYSTEM HANDLER
161 JMP COMN
162DEFUNIT,0
163RKBAD, STL CLA RAR /4000
164 SKP
165RKOVER, ISZ RK8 /POINT TO GOOD RETURN
166SFIELD, HLT /CONTAINS CIF CDF TO USER'S FIELD
167 JMP I RK8 /RETURN
168 IFNZRO .&177-21 <BADLOC,XXXX>
169RKA1, RKVERSION
170 CLA
171 TAD RKA1
172 DCA RK8
173 CLA IAC
174COMN, DCA RKANO
175 CLL STA RTL /V3D
176 DCA RKCNT /SET # OF RETRIES ON AN ERROR TO 3
177 RDF
178 TAD LCIFCDF /CALLING FIELD FOR RETURN
179 DCA SFIELD
180RKRETRY,TAD I RK8 /GET FN WORD
181 AND L70 /ISOLATE FIELD OF BUFFER
182 TAD RKANO
183 TAD RKANO /INCLUDE UNIT # (TIMES 2)
184 DLDC /SET FIELD
185 TAD I RK8 /GET FN WORD BACK
186 RAL /MOVE R/W BIT TO LINK
187 AND L7600 /ISOLATE # OF WORDS TO READ
188 SZA
189 CIA /NEGATE
190 DLWC /LOAD WORD COUNT THEN CLEAR AC
191 RTL /MOVE R/W BIT TO AC 10
192 TAD LDLDR
193 DCA RKINST /CREATE READ (6733) OR WRITE (6735)
194 ISZ RK8 /POINT TO BUFFER ADDRESS
195 STA
196 TAD I RK8 /GET CURRENT ADDRESS-1
197 DLCA /LOAD CURENT ADDRESS AND CLEAR AC
198 ISZ RK8 /POINT TO BLOCK #
199 DCLS /CLEAR STATUS REGISTER
200 DSKE /CHECK FOR NON-EXISTENT DISK ERROR
201L7760, SMA SZA SNL CLA /OK, BUT SKIP ALWAYS
202 JMP RKBAD /IT'S BAD
203/V3D TAD RKANO /! CAN'T HAVE OFFSETS ON OTHER UNITS THAN 0
204/V3D SNA CLA
205/V3D TAD SOFSET
206 TAD I RK8 /GET BACK #
207 ISZ RK8 /POINT TO ERROR RETURN
208RKINST, HLT /GO (EITHER 6733 OR 6735)
209 SZA CLA /CHECK FOR NO DISK AT ALL
210 JMP RKBAD /IOT DIDN'T CLEAR AC
211/THE ABOVE TWO LINES ARE USELESS. HOW DID HE BOOTSTRAP IF DISK WASN'T THERE?
212 DSKD /WAIT FOR DONE
213 JMP .-1
214 DSKE
215 JMP RKOVER /NO ERROR
216L70, 70
217L20, 20
218L7600, 7600
219L4, 4
220 SKP CLA
221 IFNZRO .-7701 <NZERR,XXX>
222 HLT /SAFETY HALT AT 7701
223 DRDS /READ STATUS REGISTER
224 AND L4 /CHECK FOR TRACK OVERFLOW
225 SZA CLA
226 JMP RKTKOV
227 ISZ RKCNT /SOME OTHER ERROR - BADNESS [SIC]
228 JMP RKOK /TRY AGAIN
229 JMP RKBAD /3 TRIES IS ENOUGH
230RKOK, DRDS /READ STATUS REGISTER
231 AND L40 /TRACK SEEK ERROR?
232 DCLS /CLEAR STATUS REGISTER
233 SNA CLA
234 JMP RKBACK
235 DCLA /YES - RECALIBRATE
236 DSKD /WAIT 'TILL DONE
237 JMP .-1
238RKBACK, CLL STA RTL /-3
239 TAD RK8
240 DCA RK8 /POINT BACK TO FUNCTION WORD
241 JMP RKRETRY /GO TRY AGAIN
242
243RKTKOV, DCLS /CLEAR STATUS REGISTER
244 DRDA /READ TRACK ADDRESS STUFF
245 AND L7760 /ISOLATE JUST TRACK (NEEDED ??)
246 TAD L20 /BUMP TRACK NUMBER BY 1
247 JMP RKINST /GO BACK AND CONTINUE TRANSFER
248LCIFCDF,CIF CDF 0
249LDLDR, DLDR
250L40, 40
251RKCNT, 0
252RKANO, 0
253/ MUST NOT GO INTO LOCATION 7744
254 IFZERO .&177-145&4000 <TOOBIG,XXXX>
255 $