| 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 | \f *0 |
| 46 | |
| 47 | -3 |
| 48 | DEVICE TD8E;DEVICE SYS;4211;6007;0;1341 |
| 49 | DEVICE TD8E;DEVICE DTA0;4211;5007;0;1341 |
| 50 | DEVICE TD8E;DEVICE DTA1;4211;SDTA1&177+5000;0;1341 |
| 51 | \f 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 | TDBEGN, ZBLOCK 20 |
| 70 | TDBOOT, TAD K7600 /128 WORDS PER PAGE |
| 71 | DCA TDWCT |
| 72 | SDSS /WAIT FOR A BLOCK MARK (TAPE IS |
| 73 | JMP .-1 /STILL MOVING) |
| 74 | SDRC |
| 75 | AND TD77 |
| 76 | TAD KM26 /IS IT A BLOCK MARK? |
| 77 | SZA CLA |
| 78 | JMP TDBOOT+2 /NO..WAIT A WHILE LONGER |
| 79 | SDRD /GET THE BLOCK NO. |
| 80 | TDBKNO, TAD TDM14 /NEED DECTAPE BLOCKS 154 & 155 (REC. 66) |
| 81 | SZA CLA |
| 82 | JMP TDBOOT+2 /NOT YET, BUSTER |
| 83 | TDRGRD, SDSS |
| 84 | JMP .-1 /NOW LET'S LOOK FOR A REVERSE GUARD WORD |
| 85 | SDRC |
| 86 | AND TD77 |
| 87 | TAD KM32 |
| 88 | SZA CLA |
| 89 | JMP TDRGRD /KEEP LOOKING FOR IT |
| 90 | JMS TDRQD |
| 91 | JMS TDRQD |
| 92 | JMS TDRQD /SKIP CONTROL WORDS |
| 93 | CDF 10 /LOAD UP FIELD 1 |
| 94 | TDREAD, JMS TDRQD /GET A DATA WORD |
| 95 | DCA I TDPTR |
| 96 | ISZ TDPTR /ARE WE DONE? |
| 97 | JMP TDREAD /NOT YET |
| 98 | ISZ TDBKNO /YES..LOOK AT BLOCK 15 |
| 99 | TAD KCDF20 |
| 100 | DCA TDREAD-1 /LOAD UP FIELD 2 |
| 101 | ISZ M2 /DONE THIS JUNK? |
| 102 | JMP TDBOOT /GO DO FIELD 2 |
| 103 | SDLC /STOP THE TAPE |
| 104 | CIF CDF 0 |
| 105 | JMP I K7605 |
| 106 | \fTDM14, -154 |
| 107 | -155 /USE RECORD 66 |
| 108 | TDPTR, |
| 109 | TDWCT, 7600 |
| 110 | TDRQD, 0 |
| 111 | SDSQ |
| 112 | JMP .-1 |
| 113 | SDRD |
| 114 | JMP I TDRQD |
| 115 | |
| 116 | K7600, 7600 |
| 117 | KM26, -26 |
| 118 | KM32, -32 |
| 119 | KCDF20, CDF 20 |
| 120 | M2, -2 |
| 121 | K7605, 7605 |
| 122 | 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 | \f *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 | ZBLOCK 7 |
| 140 | SHNDLR, VERSION /UNIT 0 ENTRY POINT |
| 141 | CLA CLL |
| 142 | JMP SHND2 |
| 143 | C3, 3 /MUST BE HERE FOR BUILD |
| 144 | S70, 70 |
| 145 | SDTA1, VERSION /UNIT 1 ENTRY |
| 146 | CLA CLL CML |
| 147 | SC1000, TAD SDTA1 /DOUBLES AS CONSTANT 1000 |
| 148 | DCA SHNDLR /GET ARGS AT SHNDLR |
| 149 | SHND2, RAR /UNIT # |
| 150 | DCA SUNIT |
| 151 | RDF /SETUP FOR EXIT |
| 152 | TAD S6203 |
| 153 | DCA EFLD |
| 154 | TAD I SHNDLR /FUNCTION WORD |
| 155 | SDLD /PUT IT IN DATA EGISTER |
| 156 | AND S70 /SDLD DOES NOT 0 AC..GET FIELD |
| 157 | TAD S6203 /CIF CDF N FOR TRANSFER FIELD |
| 158 | DCA TFLD |
| 159 | ISZ SHNDLR |
| 160 | TAD I SHNDLR /BUFFER ADDRESS |
| 161 | DCA BPTR |
| 162 | ISZ SHNDLR |
| 163 | TAD I SHNDLR /BLOCK #. TIMES 2 FOR REAL # |
| 164 | CLL RAL |
| 165 | DCA BLOCK |
| 166 | ISZ SHNDLR /POINT TO ERROR EXIT |
| 167 | CIF CDF 20 /PUT UNIT # INTO FIELD 2 |
| 168 | TAD SUNIT |
| 169 | DCA I SUNIT2 |
| 170 | JMP F2SET /TO FIELD 2 FOR INIT. |
| 171 | |
| 172 | F1GO, SDRD /INITIAL DIRECTION TO LINK |
| 173 | RAR |
| 174 | JMP RGO |
| 175 | \fRENTER, TAD BPTR /DONE THIS BLOCK..NEXT ADDRESS |
| 176 | TAD SC200 |
| 177 | DCA BPTR |
| 178 | ISZ BLOCK /NEXT TAPE BLOCK..CAN'T SKIP |
| 179 | CLL CML /FORCE FORWARD MOTION |
| 180 | RGO, CLA CML RTR /LINK TO MOTION BIT |
| 181 | TAD SC1000 |
| 182 | TAD SUNIT |
| 183 | SDLC /MOVE THE TAPE |
| 184 | SDSQ |
| 185 | JMP .-1 |
| 186 | SDRD /KNOCK DOWN QUAD FLAG |
| 187 | SDSQ |
| 188 | JMP .-1 |
| 189 | SDRD /THIS IS NEEDED, ELSE TIME ERROR!!! |
| 190 | \f |
| 191 | SRCH, SDSS /WAIT FOR A BLOCK MARK |
| 192 | JMP .-1 |
| 193 | SDRC /GET MARK TRACK BITS |
| 194 | CLL RTL /DIRECTION TO LINK |
| 195 | AND SC374 |
| 196 | TAD SM110 /IS IT A N END ZONE? |
| 197 | SNA |
| 198 | JMP SENDZ /YES |
| 199 | TAD SM20 /MAYBE A BLOCK MARK? |
| 200 | SZA CLA |
| 201 | JMP SRCH /NEITHER..KEEP GOING |
| 202 | SDRD /READ THE BLOCK # |
| 203 | SZL /IF REVERSE, LOOK 3 AHEAD OF TARGET |
| 204 | TAD C3 |
| 205 | CMA |
| 206 | TAD BLOCK |
| 207 | CMA |
| 208 | SNA /IS IT THE RIGHT ONE? |
| 209 | JMP FOUND /YES |
| 210 | SM110, CLA SNA SZL /SNA SUPERFLUOUS..ONLY SZL VALID |
| 211 | JMP SRCH /HEADED FOR IT..KEEP GOING |
| 212 | SENDZ, SDRC |
| 213 | CLL RTL |
| 214 | SZL CLA /IF IN END ZONE FORWARD, GIVE ERROR |
| 215 | JMP RGO |
| 216 | CIF 20 /IF IT IS REALL END ZONE, AN ERROR |
| 217 | JMP ERROR |
| 218 | |
| 219 | FOUND, SZL CLA /RIGHT BLOCK..HOW ABOUT DIRECTION? |
| 220 | JMP RGO /WRONG..EXECUTE TURNAROUND |
| 221 | TAD BPTR |
| 222 | TFLD, HLT /GETS CIF CDF N |
| 223 | CIF 20 |
| 224 | JMP RDWT /LET'S TRANSFER DATA |
| 225 | |
| 226 | SEXIT, ISZ SHNDLR /NORMAL RETURN |
| 227 | SEREX, TAD SUNIT /STOP THE TAPE |
| 228 | SDLC |
| 229 | CML CLA RAR /EITHER 0 OR 4000 IN AC ON RETURN |
| 230 | EFLD, HLT |
| 231 | JMP I SHNDLR |
| 232 | |
| 233 | BPTR=7755 |
| 234 | BLOCK=7754 |
| 235 | SUNIT=SDTA1 |
| 236 | |
| 237 | S6203, 6203 |
| 238 | SC200, 200 |
| 239 | SC374, 374 |
| 240 | SM20, -20 |
| 241 | SUNIT2, SXUNIT |
| 242 | RELOC |
| 243 | \f *400 |
| 244 | |
| 245 | RELOC 7600 /RUNS IN 27600 |
| 246 | |
| 247 | XPTR, 0 /BUFFER POINTER |
| 248 | F2SET, CLA CLL CMA RTL /3 ERROR TRIES |
| 249 | DCA TRYCNT |
| 250 | TAD SXUNIT /MAKE SURE TAPE IS STOPPED |
| 251 | SDLC |
| 252 | F26203, CIF CDF 0 |
| 253 | SDRD /FUNCTION WORD |
| 254 | CLL RAL |
| 255 | AND CX7600 /PAGE COUNT |
| 256 | DCA XPGCT |
| 257 | SDRD |
| 258 | DCA SXFUN /SAVE THE FUNCTION WORD |
| 259 | JMP F1GO |
| 260 | |
| 261 | RDWT, DCA XPTR /SAVE NEW BUFFER ADDRESS |
| 262 | TAD CX7600 |
| 263 | DCA XWCNT /128 WORDS PER BLOCK |
| 264 | REVGRD, SDSS /WAIT FOR REVERSE GUARD WORD |
| 265 | JMP .-1 |
| 266 | SDRC |
| 267 | AND X77 |
| 268 | TAD XM32 /IS IT REVERSE GUARD? |
| 269 | SZA CLA |
| 270 | JMP REVGRD /NO |
| 271 | TAD SXFUN |
| 272 | SK7700, SMA CLA /READ OR WRITE? |
| 273 | JMP READ /READ |
| 274 | SDRC |
| 275 | AND C300 /ERRORS ON WRITE LOCKOUT AND TIME |
| 276 | SZA CLA |
| 277 | JMP ERROR |
| 278 | JMS RDQUAD /SKIP A WORD |
| 279 | CX7600, 7600 |
| 280 | TAD WRLP |
| 281 | TAD SXUNIT |
| 282 | SDLC /TURN ON THE WRITE |
| 283 | CLA CMA |
| 284 | JMS WRQUAD /WRITE 7777 IN REV. CHECKSUM |
| 285 | CLA CMA |
| 286 | DCA SCKSUM /AND ALSO IN COMPUTE CHECKSUM |
| 287 | WRLP, TAD I XPTR |
| 288 | JMS WRQUAD /WRITE THE DATA |
| 289 | ISZ XPTR |
| 290 | X77, 77 /JUST IN CASE |
| 291 | ISZ XWCNT /DONE 128? |
| 292 | JMP WRLP |
| 293 | JMS WRQUAD /WRITE AND CHECKSUM A WORD OF 0 |
| 294 | JMS GETCHK /GET CHECKSUM |
| 295 | JMS WRQUAD |
| 296 | JMS WRQUAD /LET CHECKSUM GET WRITTEN |
| 297 | \f |
| 298 | RWCOM, SDST /CHECK FOR TIME AND CHECKSUM ERRORS |
| 299 | SZA CLA |
| 300 | JMP ERROR /NOTE THAT LINK IS OFF AT RWCOM |
| 301 | CIF CDF 0 |
| 302 | TAD XPGCT /FINISHED TRANSFER? |
| 303 | TAD CX7600 /LINK GOES ON HERE |
| 304 | SNA |
| 305 | JMP SEXIT /YES..GETOUT |
| 306 | DCA XPGCT |
| 307 | JMP RENTER |
| 308 | |
| 309 | READ, JMS RDQUAD /SKIP CONTROL WORDS |
| 310 | JMS RDQUAD |
| 311 | JMS RDQUAD /GET CHECKSUM |
| 312 | AND X77 |
| 313 | TAD SK7700 |
| 314 | DCA SCKSUM |
| 315 | SRDLP, JMS RDQUAD |
| 316 | DCA I XPTR |
| 317 | TAD I XPTR |
| 318 | JMS EQUFUN |
| 319 | ISZ XPTR |
| 320 | C300, 300 |
| 321 | ISZ XWCNT /DONE ALL? |
| 322 | JMP SRDLP /NO |
| 323 | JMS RDQUAD /READ AND CHECKSUM LAST WORD |
| 324 | JMS EQUFUN |
| 325 | JMS RDQUAD /GET CHECKSUM |
| 326 | AND SK7700 |
| 327 | JMS EQUFUN |
| 328 | JMS GETCHK |
| 329 | JMP RWCOM |
| 330 | |
| 331 | ERROR, CLA CLL /THIS CAUSES SEARCH REVERSE AT RGO |
| 332 | CIF CDF 0 |
| 333 | ISZ TRYCNT /EXHAUSTED ERROR TRIES? |
| 334 | JMP RGO |
| 335 | JMP SEREX /YES..FATAL EXIT |
| 336 | |
| 337 | WRQUAD, 0 /WRITE A 12 BIT WORD |
| 338 | SDSQ |
| 339 | JMP .-1 |
| 340 | SDLD |
| 341 | JMS EQUFUN /SDLD LEAVES AC ALONE |
| 342 | JMP I WRQUAD |
| 343 | |
| 344 | RDQUAD, 0 /READ A 12 BIT WORD |
| 345 | SDSQ |
| 346 | JMP .-1 |
| 347 | SDRD |
| 348 | JMP I RDQUAD |
| 349 | \fEQUFUN, 0 /EQUIVALENCE CHECKSUM |
| 350 | CMA |
| 351 | DCA EQUTMP |
| 352 | TAD EQUTMP |
| 353 | AND SCKSUM |
| 354 | CIA |
| 355 | CLL RAL |
| 356 | TAD EQUTMP |
| 357 | TAD SCKSUM |
| 358 | DCA SCKSUM |
| 359 | JMP I EQUFUN |
| 360 | |
| 361 | GETCHK, 0 |
| 362 | TAD SCKSUM |
| 363 | CLL CMA RTL |
| 364 | RTL |
| 365 | RTL |
| 366 | JMS EQUFUN |
| 367 | TAD SCKSUM |
| 368 | AND SK7700 |
| 369 | JMP I GETCHK |
| 370 | |
| 371 | SXUNIT, 0 |
| 372 | XPGCT, 0 |
| 373 | SXFUN, 0 |
| 374 | TRYCNT, 0 |
| 375 | XWCNT, 0 |
| 376 | XM32, -32 |
| 377 | SCKSUM, 0 |
| 378 | EQUTMP, 0 |
| 379 | |
| 380 | /THE LAST 4 LOCS. ARE FREE FOR USE BY BATCH |
| 381 | ZBLOCK 4 |
| 382 | RELOC |
| 383 | $ |
| 384 | \f |