software: Added more and more
[pdp8.git] / sw / os8 / v3d / sources / system / dectapes / dectape2 / RK8ESY.PA
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
84 BOOT, 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
94 BOOTX1, 177
95 BOOTX2, 7577
96 BOOTX3, 46
97 BOOTX4, 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
107 RK6, 6
108 RKUNIT, SYSUNT+400 /CHANGED BEFORE IT IS MOVED
109 B7605, 7605
110 BLAST, 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
132 SHNDLR, 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
139 S6260, 6260 /SIZE OF ONE LOGICAL DISK
140 S4070, 4070 /USED TO GET READ/WRITE AND DF BITS
141 S3700, 3700 / " TO GET PAGE COUNT
142 SCIF, CIF 0 / " TO RESTORE USERS FIELD
143 S37, 37 /USED TO CHECK FOR CYLINDER CHANGE
144
145 IFNZRO .-7621 <ERROR1, BARF>
146
147 SHNDL1, VERSION /2ND E.P. FOR RKB0 AND TEMPORARY
148 CLA /GUARD AGAINST NON-ZERO AC
149 TAD S6260 /RKB1 IS SECOND HALF OF PACK
150 SHNDC, 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
156 RETRY, 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
176 OVRFLO, ISZ RKECMD /TURN ON EXTENDED BIT IF OVERFLOWED
177 RELOOP, 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
215 SERROR, 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
228 RKDONE, ISZ SHNDL1 /NORMAL RETURN
229 S7600, 7600 /GROUP 2 CLA
230 ISZ SHNDL1 /IF JUMPED TO HERE- ERROR RETURN
231 SFIELD, HLT /RESET USERS INST FIELD- WE NEVER TOUCHED DF
232 JMP I SHNDL1 /EXIT
233
234 S400, 400 / " FOR 128 WORD TRANSFER MODE(RTR'D IN CODE)
235 SYSUNT, 0 /SYSTEM DEV UNIT # (SET BY BOOTSTRAP)
236 RELOC
237 $