Commit | Line | Data |
---|---|---|
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 | ||
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 | $ |