1 /3 TD8E SYSTEM RESIDENT (12K) 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 *0 46 47 000000 7775 -3 48 000001 2404 DEVICE TD8E;DEVICE SYS;4211;6007;0;1341 000002 7005 000003 2331 000004 2300 000005 4211 000006 6007 000007 0000 000010 1341 49 000011 2404 DEVICE TD8E;DEVICE DTA0;4211;5007;0;1341 000012 7005 000013 0424 000014 0160 000015 4211 000016 5007 000017 0000 000020 1341 50 000021 2404 DEVICE TD8E;DEVICE DTA1;4211;SDTA1&177+5000;0;1341 000022 7005 000023 0424 000024 0161 000025 4211 000026 5014 000027 0000 000030 1341 51 000031 7675 TDBEGN-TD77-1 52 53 RELOC 7360 54 55 /THE BINARY GETS LOADED INTO 27220 INITIALY, AND 56 /WRITTEN OUT AS PART OF RECORD 0. WHEN THE 30 WORD 57 /BOOTSTRAP IS USED, THIS CODE GETS READ INTO 7400. 58 59 60 61 SDSS=6771 62 SDST=6772 63 SDSQ=6773 64 SDLC=6774 65 SDLD=6775 66 SDRC=6776 67 SDRD=6777 68 69 007360* 0000 TDBEGN, ZBLOCK 20 007361* 0000 007362* 0000 007363* 0000 007364* 0000 007365* 0000 007366* 0000 007367* 0000 007370* 0000 007371* 0000 007372* 0000 007373* 0000 007374* 0000 007375* 0000 007376* 0000 007377* 0000 70 007400* 1254 TDBOOT, TAD K7600 /128 WORDS PER PAGE 71 007401* 3246 DCA TDWCT 72 007402* 6771 SDSS /WAIT FOR A BLOCK MARK (TAPE IS 73 007403* 5202 JMP .-1 /STILL MOVING) 74 007404* 6776 SDRC 75 007405* 0262 AND TD77 76 007406* 1255 TAD KM26 /IS IT A BLOCK MARK? 77 007407* 7640 SZA CLA 78 007410* 5202 JMP TDBOOT+2 /NO..WAIT A WHILE LONGER 79 007411* 6777 SDRD /GET THE BLOCK NO. 80 007412* 1244 TDBKNO, TAD TDM14 /NEED DECTAPE BLOCKS 154 & 155 (REC. 66) 81 007413* 7640 SZA CLA 82 007414* 5202 JMP TDBOOT+2 /NOT YET, BUSTER 83 007415* 6771 TDRGRD, SDSS 84 007416* 5215 JMP .-1 /NOW LET'S LOOK FOR A REVERSE GUARD WORD 85 007417* 6776 SDRC 86 007420* 0262 AND TD77 87 007421* 1256 TAD KM32 88 007422* 7640 SZA CLA 89 007423* 5215 JMP TDRGRD /KEEP LOOKING FOR IT 90 007424* 4247 JMS TDRQD 91 007425* 4247 JMS TDRQD 92 007426* 4247 JMS TDRQD /SKIP CONTROL WORDS 93 007427* 6211 CDF 10 /LOAD UP FIELD 1 94 007430* 4247 TDREAD, JMS TDRQD /GET A DATA WORD 95 007431* 3646 DCA I TDPTR 96 007432* 2246 ISZ TDPTR /ARE WE DONE? 97 007433* 5230 JMP TDREAD /NOT YET 98 007434* 2212 ISZ TDBKNO /YES..LOOK AT BLOCK 15 99 007435* 1257 TAD KCDF20 100 007436* 3227 DCA TDREAD-1 /LOAD UP FIELD 2 101 007437* 2260 ISZ M2 /DONE THIS JUNK? 102 007440* 5200 JMP TDBOOT /GO DO FIELD 2 103 007441* 6774 SDLC /STOP THE TAPE 104 007442* 6203 CIF CDF 0 105 007443* 5661 JMP I K7605 106 007444* 7624 TDM14, -154 107 007445* 7623 -155 /USE RECORD 66 108 TDPTR, 109 007446* 7600 TDWCT, 7600 110 007447* 0000 TDRQD, 0 111 007450* 6773 SDSQ 112 007451* 5250 JMP .-1 113 007452* 6777 SDRD 114 007453* 5647 JMP I TDRQD 115 116 007454* 7600 K7600, 7600 117 007455* 7752 KM26, -26 118 007456* 7746 KM32, -32 119 007457* 6221 KCDF20, CDF 20 120 007460* 7776 M2, -2 121 007461* 7605 K7605, 7605 122 007462* 0077 TD77, 77 123 124 / THIS BOOTSTRAP RESIDES IN BLOCK 0 125 / BLOCK 1/2 CONTAINS THE USUAL IMAGE OF 07600 126 / BLOCK 66 CONTAINS THE IMAGE OF 17600 127 / BLOCK 66 1/2 CONTAINS THE IMAGE OF 27600 128 RELOC 129 *200 130 131 /TD8E DECTAPE SYSTEM HANDLER 132 /THIS HANDLER CAN DRIVE UNITS 0&1, AND IS PERMANENTLY 133 /RESIDENT IN FIELDS 0&2. 134 135 RELOC 7600 136 137 VERSION="B&77 138 139 007600* 0000 ZBLOCK 7 007601* 0000 007602* 0000 007603* 0000 007604* 0000 007605* 0000 007606* 0000 140 007607* 0002 SHNDLR, VERSION /UNIT 0 ENTRY POINT 141 007610* 7300 CLA CLL 142 007611* 5220 JMP SHND2 143 007612* 0003 C3, 3 /MUST BE HERE FOR BUILD 144 007613* 0070 S70, 70 145 007614* 0002 SDTA1, VERSION /UNIT 1 ENTRY 146 007615* 7320 CLA CLL CML 147 007616* 1214 SC1000, TAD SDTA1 /DOUBLES AS CONSTANT 1000 148 007617* 3207 DCA SHNDLR /GET ARGS AT SHNDLR 149 007620* 7010 SHND2, RAR /UNIT # 150 007621* 3214 DCA SUNIT 151 007622* 6214 RDF /SETUP FOR EXIT 152 007623* 1337 TAD S6203 153 007624* 3335 DCA EFLD 154 007625* 1607 TAD I SHNDLR /FUNCTION WORD 155 007626* 6775 SDLD /PUT IT IN DATA EGISTER 156 007627* 0213 AND S70 /SDLD DOES NOT 0 AC..GET FIELD 157 007630* 1337 TAD S6203 /CIF CDF N FOR TRANSFER FIELD 158 007631* 3326 DCA TFLD 159 007632* 2207 ISZ SHNDLR 160 007633* 1607 TAD I SHNDLR /BUFFER ADDRESS 161 007634* 3355 DCA BPTR 162 007635* 2207 ISZ SHNDLR 163 007636* 1607 TAD I SHNDLR /BLOCK #. TIMES 2 FOR REAL # 164 007637* 7104 CLL RAL 165 007640* 3354 DCA BLOCK 166 007641* 2207 ISZ SHNDLR /POINT TO ERROR EXIT 167 007642* 6223 CIF CDF 20 /PUT UNIT # INTO FIELD 2 168 007643* 1214 TAD SUNIT 169 007644* 3743 DCA I SUNIT2 170 007645* 5201 JMP F2SET /TO FIELD 2 FOR INIT. 171 172 007646* 6777 F1GO, SDRD /INITIAL DIRECTION TO LINK 173 007647* 7010 RAR 174 007650* 5256 JMP RGO 175 007651* 1355 RENTER, TAD BPTR /DONE THIS BLOCK..NEXT ADDRESS 176 007652* 1340 TAD SC200 177 007653* 3355 DCA BPTR 178 007654* 2354 ISZ BLOCK /NEXT TAPE BLOCK..CAN'T SKIP 179 007655* 7120 CLL CML /FORCE FORWARD MOTION 180 007656* 7232 RGO, CLA CML RTR /LINK TO MOTION BIT 181 007657* 1216 TAD SC1000 182 007660* 1214 TAD SUNIT 183 007661* 6774 SDLC /MOVE THE TAPE 184 007662* 6773 SDSQ 185 007663* 5262 JMP .-1 186 007664* 6777 SDRD /KNOCK DOWN QUAD FLAG 187 007665* 6773 SDSQ 188 007666* 5265 JMP .-1 189 007667* 6777 SDRD /THIS IS NEEDED, ELSE TIME ERROR!!! 190 191 007670* 6771 SRCH, SDSS /WAIT FOR A BLOCK MARK 192 007671* 5270 JMP .-1 193 007672* 6776 SDRC /GET MARK TRACK BITS 194 007673* 7106 CLL RTL /DIRECTION TO LINK 195 007674* 0341 AND SC374 196 007675* 1313 TAD SM110 /IS IT A N END ZONE? 197 007676* 7450 SNA 198 007677* 5315 JMP SENDZ /YES 199 007700* 1342 TAD SM20 /MAYBE A BLOCK MARK? 200 007701* 7640 SZA CLA 201 007702* 5270 JMP SRCH /NEITHER..KEEP GOING 202 007703* 6777 SDRD /READ THE BLOCK # 203 007704* 7430 SZL /IF REVERSE, LOOK 3 AHEAD OF TARGET 204 007705* 1212 TAD C3 205 007706* 7040 CMA 206 007707* 1354 TAD BLOCK 207 007710* 7040 CMA 208 007711* 7450 SNA /IS IT THE RIGHT ONE? 209 007712* 5323 JMP FOUND /YES 210 007713* 7670 SM110, CLA SNA SZL /SNA SUPERFLUOUS..ONLY SZL VALID 211 007714* 5270 JMP SRCH /HEADED FOR IT..KEEP GOING 212 007715* 6776 SENDZ, SDRC 213 007716* 7106 CLL RTL 214 007717* 7630 SZL CLA /IF IN END ZONE FORWARD, GIVE ERROR 215 007720* 5256 JMP RGO 216 007721* 6222 CIF 20 /IF IT IS REALL END ZONE, AN ERROR 217 007722* 5320 JMP ERROR 218 219 007723* 7630 FOUND, SZL CLA /RIGHT BLOCK..HOW ABOUT DIRECTION? 220 007724* 5256 JMP RGO /WRONG..EXECUTE TURNAROUND 221 007725* 1355 TAD BPTR 222 007726* 7402 TFLD, HLT /GETS CIF CDF N 223 007727* 6222 CIF 20 224 007730* 5215 JMP RDWT /LET'S TRANSFER DATA 225 226 007731* 2207 SEXIT, ISZ SHNDLR /NORMAL RETURN 227 007732* 1214 SEREX, TAD SUNIT /STOP THE TAPE 228 007733* 6774 SDLC 229 007734* 7230 CML CLA RAR /EITHER 0 OR 4000 IN AC ON RETURN 230 007735* 7402 EFLD, HLT 231 007736* 5607 JMP I SHNDLR 232 233 BPTR=7755 234 BLOCK=7754 235 SUNIT=SDTA1 236 237 007737* 6203 S6203, 6203 238 007740* 0200 SC200, 200 239 007741* 0374 SC374, 374 240 007742* 7760 SM20, -20 241 007743* 7764 SUNIT2, SXUNIT 242 RELOC 243 *400 244 245 RELOC 7600 /RUNS IN 27600 246 247 007600* 0000 XPTR, 0 /BUFFER POINTER 248 007601* 7346 F2SET, CLA CLL CMA RTL /3 ERROR TRIES 249 007602* 3367 DCA TRYCNT 250 007603* 1364 TAD SXUNIT /MAKE SURE TAPE IS STOPPED 251 007604* 6774 SDLC 252 007605* 6203 F26203, CIF CDF 0 253 007606* 6777 SDRD /FUNCTION WORD 254 007607* 7104 CLL RAL 255 007610* 0237 AND CX7600 /PAGE COUNT 256 007611* 3365 DCA XPGCT 257 007612* 6777 SDRD 258 007613* 3366 DCA SXFUN /SAVE THE FUNCTION WORD 259 007614* 5246 JMP F1GO 260 261 007615* 3200 RDWT, DCA XPTR /SAVE NEW BUFFER ADDRESS 262 007616* 1237 TAD CX7600 263 007617* 3370 DCA XWCNT /128 WORDS PER BLOCK 264 007620* 6771 REVGRD, SDSS /WAIT FOR REVERSE GUARD WORD 265 007621* 5220 JMP .-1 266 007622* 6776 SDRC 267 007623* 0252 AND X77 268 007624* 1371 TAD XM32 /IS IT REVERSE GUARD? 269 007625* 7640 SZA CLA 270 007626* 5220 JMP REVGRD /NO 271 007627* 1366 TAD SXFUN 272 007630* 7700 SK7700, SMA CLA /READ OR WRITE? 273 007631* 5273 JMP READ /READ 274 007632* 6776 SDRC 275 007633* 0306 AND C300 /ERRORS ON WRITE LOCKOUT AND TIME 276 007634* 7640 SZA CLA 277 007635* 5320 JMP ERROR 278 007636* 4333 JMS RDQUAD /SKIP A WORD 279 007637* 7600 CX7600, 7600 280 007640* 1247 TAD WRLP 281 007641* 1364 TAD SXUNIT 282 007642* 6774 SDLC /TURN ON THE WRITE 283 007643* 7240 CLA CMA 284 007644* 4325 JMS WRQUAD /WRITE 7777 IN REV. CHECKSUM 285 007645* 7240 CLA CMA 286 007646* 3372 DCA SCKSUM /AND ALSO IN COMPUTE CHECKSUM 287 007647* 1600 WRLP, TAD I XPTR 288 007650* 4325 JMS WRQUAD /WRITE THE DATA 289 007651* 2200 ISZ XPTR 290 007652* 0077 X77, 77 /JUST IN CASE 291 007653* 2370 ISZ XWCNT /DONE 128? 292 007654* 5247 JMP WRLP 293 007655* 4325 JMS WRQUAD /WRITE AND CHECKSUM A WORD OF 0 294 007656* 4353 JMS GETCHK /GET CHECKSUM 295 007657* 4325 JMS WRQUAD 296 007660* 4325 JMS WRQUAD /LET CHECKSUM GET WRITTEN 297 298 007661* 6772 RWCOM, SDST /CHECK FOR TIME AND CHECKSUM ERRORS 299 007662* 7640 SZA CLA 300 007663* 5320 JMP ERROR /NOTE THAT LINK IS OFF AT RWCOM 301 007664* 6203 CIF CDF 0 302 007665* 1365 TAD XPGCT /FINISHED TRANSFER? 303 007666* 1237 TAD CX7600 /LINK GOES ON HERE 304 007667* 7450 SNA 305 007670* 5331 JMP SEXIT /YES..GETOUT 306 007671* 3365 DCA XPGCT 307 007672* 5251 JMP RENTER 308 309 007673* 4333 READ, JMS RDQUAD /SKIP CONTROL WORDS 310 007674* 4333 JMS RDQUAD 311 007675* 4333 JMS RDQUAD /GET CHECKSUM 312 007676* 0252 AND X77 313 007677* 1230 TAD SK7700 314 007700* 3372 DCA SCKSUM 315 007701* 4333 SRDLP, JMS RDQUAD 316 007702* 3600 DCA I XPTR 317 007703* 1600 TAD I XPTR 318 007704* 4340 JMS EQUFUN 319 007705* 2200 ISZ XPTR 320 007706* 0300 C300, 300 321 007707* 2370 ISZ XWCNT /DONE ALL? 322 007710* 5301 JMP SRDLP /NO 323 007711* 4333 JMS RDQUAD /READ AND CHECKSUM LAST WORD 324 007712* 4340 JMS EQUFUN 325 007713* 4333 JMS RDQUAD /GET CHECKSUM 326 007714* 0230 AND SK7700 327 007715* 4340 JMS EQUFUN 328 007716* 4353 JMS GETCHK 329 007717* 5261 JMP RWCOM 330 331 007720* 7300 ERROR, CLA CLL /THIS CAUSES SEARCH REVERSE AT RGO 332 007721* 6203 CIF CDF 0 333 007722* 2367 ISZ TRYCNT /EXHAUSTED ERROR TRIES? 334 007723* 5256 JMP RGO 335 007724* 5332 JMP SEREX /YES..FATAL EXIT 336 337 007725* 0000 WRQUAD, 0 /WRITE A 12 BIT WORD 338 007726* 6773 SDSQ 339 007727* 5326 JMP .-1 340 007730* 6775 SDLD 341 007731* 4340 JMS EQUFUN /SDLD LEAVES AC ALONE 342 007732* 5725 JMP I WRQUAD 343 344 007733* 0000 RDQUAD, 0 /READ A 12 BIT WORD 345 007734* 6773 SDSQ 346 007735* 5334 JMP .-1 347 007736* 6777 SDRD 348 007737* 5733 JMP I RDQUAD 349 007740* 0000 EQUFUN, 0 /EQUIVALENCE CHECKSUM 350 007741* 7040 CMA 351 007742* 3373 DCA EQUTMP 352 007743* 1373 TAD EQUTMP 353 007744* 0372 AND SCKSUM 354 007745* 7041 CIA 355 007746* 7104 CLL RAL 356 007747* 1373 TAD EQUTMP 357 007750* 1372 TAD SCKSUM 358 007751* 3372 DCA SCKSUM 359 007752* 5740 JMP I EQUFUN 360 361 007753* 0000 GETCHK, 0 362 007754* 1372 TAD SCKSUM 363 007755* 7146 CLL CMA RTL 364 007756* 7006 RTL 365 007757* 7006 RTL 366 007760* 4340 JMS EQUFUN 367 007761* 1372 TAD SCKSUM 368 007762* 0230 AND SK7700 369 007763* 5753 JMP I GETCHK 370 371 007764* 0000 SXUNIT, 0 372 007765* 0000 XPGCT, 0 373 007766* 0000 SXFUN, 0 374 007767* 0000 TRYCNT, 0 375 007770* 0000 XWCNT, 0 376 007771* 7746 XM32, -32 377 007772* 0000 SCKSUM, 0 378 007773* 0000 EQUTMP, 0 379 380 /THE LAST 4 LOCS. ARE FREE FOR USE BY BATCH 381 007774* 0000 ZBLOCK 4 007775* 0000 007776* 0000 007777* 0000 382 RELOC 383 $ BLOCK 7754 BPTR 7755 C3 7612 C300 7706 CX7600 7637 EFLD 7735 EQUFUN 7740 EQUTMP 7773 ERROR 7720 F1GO 7646 F26203 7605 unreferenced F2SET 7601 FOUND 7723 GETCHK 7753 K7600 7454 K7605 7461 KCDF20 7457 KM26 7455 KM32 7456 M2 7460 RDQUAD 7733 RDWT 7615 READ 7673 RENTER 7651 REVGRD 7620 RGO 7656 RWCOM 7661 S6203 7737 S70 7613 SC1000 7616 SC200 7740 SC374 7741 SCKSUM 7772 SDLC 6774 SDLD 6775 SDRC 6776 SDRD 6777 SDSQ 6773 SDSS 6771 SDST 6772 SDTA1 7614 SENDZ 7715 SEREX 7732 SEXIT 7731 SHND2 7620 SHNDLR 7607 SK7700 7630 SM110 7713 SM20 7742 SRCH 7670 SRDLP 7701 SUNIT 7614 SUNIT2 7743 SXFUN 7766 SXUNIT 7764 TD77 7462 TDBEGN 7360 TDBKNO 7412 TDBOOT 7400 TDM14 7444 TDPTR 7446 TDREAD 7430 TDRGRD 7415 TDRQD 7447 TDWCT 7446 TFLD 7726 TRYCNT 7767 VERSIO 0002 WRLP 7647 WRQUAD 7725 X77 7652 XM32 7771 XPGCT 7765 XPTR 7600 XWCNT 7770