Add README.md
[pdp8.git] / sw / os8 / v3d / sources / system / dectapes / dectape1 / RK08SY.PA
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
110 BOOT, 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
120 BOOTX1, 200
121 BOOTX2, 7577
122 BOOTX3, 47
123 BOOTX4, 7646
124 BGETUT, DRDC
125 RAR
126 AND BOOT3
127 DCA I BOOTUT
128 JMP I B7605
129 BOOT3, 3
130 BOOTUT, DEFUNIT
131 ZBLOCK 27-.
132 B7605, 7605
133 DSKD /MUST LOAD OVER LOC. 30
134 JMP .-1 /MUST LOAD OVER 31
135 ENDB, 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
158 RK8, RKVERSION
159 CLA
160 TAD DEFUNIT /USE DEFAULT UNIT FOR SYSTEM HANDLER
161 JMP COMN
162 DEFUNIT,0
163 RKBAD, STL CLA RAR /4000
164 SKP
165 RKOVER, ISZ RK8 /POINT TO GOOD RETURN
166 SFIELD, HLT /CONTAINS CIF CDF TO USER'S FIELD
167 JMP I RK8 /RETURN
168 IFNZRO .&177-21 <BADLOC,XXXX>
169 RKA1, RKVERSION
170 CLA
171 TAD RKA1
172 DCA RK8
173 CLA IAC
174 COMN, 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
180 RKRETRY,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
201 L7760, 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
208 RKINST, 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
216 L70, 70
217 L20, 20
218 L7600, 7600
219 L4, 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
230 RKOK, 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
238 RKBACK, CLL STA RTL /-3
239 TAD RK8
240 DCA RK8 /POINT BACK TO FUNCTION WORD
241 JMP RKRETRY /GO TRY AGAIN
242
243 RKTKOV, 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
248 LCIFCDF,CIF CDF 0
249 LDLDR, DLDR
250 L40, 40
251 RKCNT, 0
252 RKANO, 0
253 / MUST NOT GO INTO LOCATION 7744
254 IFZERO .&177-145&4000 <TOOBIG,XXXX>
255 $