| 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 | $ |