software: Added more and more
[pdp8.git] / sw / os8 / v3d / sources / system / dectapes / dectape2 / RK8ESY.PA
CommitLineData
7af5ad59
PH
1/3 RK8E SYSTEM HANDLER FOR OS/8 BUILD
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 VERSION="C&77
46
47 *0
48
49 DECIMAL;RKLEN=3248;OCTAL
50
51 -3
52 DEVICE RK8E;DEVICE SYS;4231;2007;0;RKLEN
53 DEVICE RK8E;DEVICE RKA0;4231;1007;0;RKLEN
54 DEVICE RK8E;DEVICE RKB0;4231;SHNDL1&177+1000;0;RKLEN
55/ONE RK8E IS TREATED AS TWO LOGICAL DISKS
56/EACH OF 3248 OS/8 BLOCKS.
57
58/THIS HANDLER CONTAINS ENTRY POINTS FOR THE SYSTEM DEVICE
59/AND RKA1.
60/THIS HANDLER ALLOWS BOOTING OFF OF ANY UNIT
61
62 DCLR=6742
63 DLAG=6743
64 DLDC=6746
65 DRST=6745
66 DSKP=6741
67 DLCA=6744
68 DMAN=6747
69
70 RKEBLK=7750 /12 BITS OF BLOCK NUMBER
71 SERRCT=7751 /HOLDS RETRY COUNT
72 PAGCNT=7752 /PAGE COUNT
73 RKECMD=7753 /BASE OF DLDC COMMAND
74 CHKHED=7754 /CHECK HEADER FLAG
75
76/MAINTENANCE RELEASE CHANGES:
77
78/1. FIXED BUG RE INTERACTION WITH NON-SYSTEM HANDLER
79/ [APRIL DSN]
80\f BOOT-BLAST
81
82 RELOC 0
83
84BOOT, TAD I BOOTX1
85 DCA I BOOTX2
86 TAD I BOOTX3
87 CDF 10
88 DCA I BOOTX4
89 CDF 0
90 TAD BOOTX2
91 SZA CLA
92 JMP BOOT
93 JMP I B7605
94BOOTX1, 177
95BOOTX2, 7577
96BOOTX3, 46
97BOOTX4, 7646
98
99 ZBLOCK 30-. /DSKP GOES OVER 30
100
101 DSKP
102 JMP .-1
103 AND RK6
104 DCA I RKUNIT
105 JMP BOOT
106
107RK6, 6
108RKUNIT, SYSUNT+400 /CHANGED BEFORE IT IS MOVED
109B7605, 7605
110BLAST, RELOC
111\f /THE BOOTSTRAP IS RK8E ONLY
112 /30 6743
113 /31 5031
114
115 /LOAD ADDRESS 30 AND START
116
117/BOOTSTRAP FOR OTHER UNITS:
118
119/ 25 7604
120/ 26 6746
121/ 27 6743
122/ 30 7604
123/ 31 5031
124
125/LOAD ADDRESS 25, PUT UNIT # IN BITS 9&10 OF SWITCH REGISTER,
126/CLEAR CONTINUE.
127\f *200
128
129 RELOC 7600
130
131 ZBLOCK 7
132SHNDLR, VERSION /SYSTEM HANDLER ENTRY POINT
133 CLA CLL /GUARD AGAINST RANDOM AC
134 TAD SHNDLR
135 DCA SHNDL1 /SETUP COMMON EXIT AND PARM ADDR'S
136 JMP SHNDC /JUMP TO COMMON CODE
137
138/VARIOUS CONSTANTS TO PAD E.P. FOR RKA1 TO 7621
139S6260, 6260 /SIZE OF ONE LOGICAL DISK
140S4070, 4070 /USED TO GET READ/WRITE AND DF BITS
141S3700, 3700 / " TO GET PAGE COUNT
142SCIF, CIF 0 / " TO RESTORE USERS FIELD
143S37, 37 /USED TO CHECK FOR CYLINDER CHANGE
144
145 IFNZRO .-7621 <ERROR1, BARF>
146
147SHNDL1, VERSION /2ND E.P. FOR RKB0 AND TEMPORARY
148 CLA /GUARD AGAINST NON-ZERO AC
149 TAD S6260 /RKB1 IS SECOND HALF OF PACK
150SHNDC, DCA SHNDLR /SET BLOCK DISPLACEMENT ACCORDING TO SYS OR RKB0
151 CLA CLL CMA RTL /AC=-3
152 DCA SERRCT /RETRY COUNT
153 RDF
154 TAD SCIF
155 DCA SFIELD /RESET USER INST FIELD FOR EXIT
156RETRY, TAD SHNDL1 /AC=-2 IF ERROR ENRTY
157 DCA SHNDL1
158 TAD I SHNDL1 /GET ARG1
159 AND S4070 /GET R/W AND DF BITS
160 TAD SYSUNT
161 DCA RKECMD /BASE COMMAND TO RK8E(DLDC)
162 TAD I SHNDL1 /GET ARG1 AGAIN
163 ISZ SHNDL1 /POINT TO ARG2
164 AND S3700
165 SNA
166 STL CLA RAR /4000
167 DCA PAGCNT /SAVE PAGE COUNT
168 TAD I SHNDL1 /GET ARG2
169 ISZ SHNDL1 /POINT TO ARG3
170 DLCA /LOAD CURRENT ADDRESS REGISTER
171 TAD I SHNDL1 /GET ARG3
172 CLL
173 TAD SHNDLR /SYS OR RKB0 DISPLACMENT
174 DCA RKEBLK /LOW PART OF RK8E BLOCK NUMBER
175 SZL /STILL OFF IF BELOW BLOCK 10000
176OVRFLO, ISZ RKECMD /TURN ON EXTENDED BIT IF OVERFLOWED
177RELOOP, DCA CHKHED /SET CHECK HEADER FLAG TO EITHER
178 /0 OR 4000(WHICH GETS RTR'D BEFORE USED)
179 /AND CAUSES EITHER A "DATA" OR "ALL"
180 /TRANSFER
181 TAD PAGCNT /TEST TO SEE IF ONLY 1 PAGE WANTED
182 AND S7600
183 SNA CLA
184 TAD S400 /100 WAS IN PAGCNT
185 TAD CHKHED /ADD IN CHECK HEADER FLAG
186 CLL RTR /SHIFT TO CORRECT BITS
187 TAD RKECMD /ADD IN BASE COMMAND
188 DLDC /LOAD COMMAND REGISTER
189 TAD RKEBLK
190 DLAG /LOAD BLOCK REGISTER AND GO
191 DSKP /WAIT ON FLAG
192 JMP .-1
193 DRST /READ COMPLETION REGISTER
194 CLL RAL /GET RID OF SUCCESS BIT
195 SZA CLA /AND SEE IF ANYTHING LEFT
196 JMP SERROR /AN ERROR
197 IFNZRO .-7700 <ERROR2, DOUBLE BARF>
198 SKP /PROTECTION AGAINST JMS I 7700 FIELD 0
199 HLT /HE'S HAD IT
200 TAD PAGCNT
201 TAD S7600
202 SPA SNA
203 JMP RKDONE
204 DCA PAGCNT
205 TAD RKEBLK
206 CMA
207 AND S37 /IF BLOCK IS AT A 37 MAKE
208 /NEXT OPERATION DO A CHECK HEADER
209 SZA CLA
210 STL RAR /SET AC TO "ALL" FLAG
211 ISZ RKEBLK /BUMP BLOCK NUMBER
212 JMP RELOOP /TRANSFER SOME MORE
213 JMP OVRFLO /PAST BLOCK 7777-SET EXTENDED BIT
214\f /RECALIBRATE ON ALL ERRORS
215SERROR, DCLR /CLEAR STATUS REGISTER
216 STL RTL /AC=2
217 DCLR /RECALIBRATE DRIVE
218 DSKP /WAIT ON FLAG
219 JMP .-1
220 DCLR /CLEAR STATUS REGISTER
221 DRST /WAIT FOR STATUS TO CLEAR
222 SZA CLA
223 JMP .-3 /V3C STILL DOING RECALIBRATE
224 CLA CLL CMA RAL /AC=-2
225 ISZ SERRCT /SKIP IF WE TRIED 3 TIMES
226 JMP RETRY /TRY AGAIN
227 JMP .+3 /ERROR EXIT
228RKDONE, ISZ SHNDL1 /NORMAL RETURN
229S7600, 7600 /GROUP 2 CLA
230 ISZ SHNDL1 /IF JUMPED TO HERE- ERROR RETURN
231SFIELD, HLT /RESET USERS INST FIELD- WE NEVER TOUCHED DF
232 JMP I SHNDL1 /EXIT
233
234S400, 400 / " FOR 128 WORD TRANSFER MODE(RTR'D IN CODE)
235SYSUNT, 0 /SYSTEM DEV UNIT # (SET BY BOOTSTRAP)
236 RELOC
237 $