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