X-Git-Url: http://gitweb.hachti.de/?a=blobdiff_plain;f=sw%2Fos8%2Fv3d%2Fsources%2Fsystem%2Fdectapes%2Fdectape3%2FTD8ESY.PA;fp=sw%2Fos8%2Fv3d%2Fsources%2Fsystem%2Fdectapes%2Fdectape3%2FTD8ESY.PA;h=91f79c33214bc898764cc5c7e4e994105eacbfb4;hb=7af5ad59491ddf2066641aef1e0025a337c0f247;hp=0000000000000000000000000000000000000000;hpb=919757fd611e482003ce51f366f6783cab73dea3;p=pdp8.git diff --git a/sw/os8/v3d/sources/system/dectapes/dectape3/TD8ESY.PA b/sw/os8/v3d/sources/system/dectapes/dectape3/TD8ESY.PA new file mode 100644 index 0000000..91f79c3 --- /dev/null +++ b/sw/os8/v3d/sources/system/dectapes/dectape3/TD8ESY.PA @@ -0,0 +1,384 @@ +/3 TD8E SYSTEM RESIDENT (12K) +/ +/ +/ +/ +/ +/ +/ +/ +/ +/COPYRIGHT (C) 1974,1975 BY DIGITAL EQUIPMENT CORPORATION +/ +/ +/ +/ +/ +/ +/ +/ +/ +/ +/THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE +/AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT +/CORPORATION. DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY +/FOR ANY ERRORS THAT MAY APPEAR IN THIS DOCUMENT. +/ +/THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FURNISHED TO THE PURCHASER +/UNDER A LICENSE FOR USE ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED +/(WITH INCLUSION OF DIGITAL'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH +/SYSTEM, EXCEPT AS MAY OTHERWISE BE PROVIDED IN WRITING BY DIGITAL. +/ +/DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR THE USE +/OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY +/DIGITAL. +/ +/ +/ +/ +/ +/ +/ +/ +/ +/ + *0 + + -3 + DEVICE TD8E;DEVICE SYS;4211;6007;0;1341 + DEVICE TD8E;DEVICE DTA0;4211;5007;0;1341 + DEVICE TD8E;DEVICE DTA1;4211;SDTA1&177+5000;0;1341 + TDBEGN-TD77-1 + + RELOC 7360 + +/THE BINARY GETS LOADED INTO 27220 INITIALY, AND +/WRITTEN OUT AS PART OF RECORD 0. WHEN THE 30 WORD +/BOOTSTRAP IS USED, THIS CODE GETS READ INTO 7400. + + + + SDSS=6771 + SDST=6772 + SDSQ=6773 + SDLC=6774 + SDLD=6775 + SDRC=6776 + SDRD=6777 + +TDBEGN, ZBLOCK 20 +TDBOOT, TAD K7600 /128 WORDS PER PAGE + DCA TDWCT + SDSS /WAIT FOR A BLOCK MARK (TAPE IS + JMP .-1 /STILL MOVING) + SDRC + AND TD77 + TAD KM26 /IS IT A BLOCK MARK? + SZA CLA + JMP TDBOOT+2 /NO..WAIT A WHILE LONGER + SDRD /GET THE BLOCK NO. +TDBKNO, TAD TDM14 /NEED DECTAPE BLOCKS 154 & 155 (REC. 66) + SZA CLA + JMP TDBOOT+2 /NOT YET, BUSTER +TDRGRD, SDSS + JMP .-1 /NOW LET'S LOOK FOR A REVERSE GUARD WORD + SDRC + AND TD77 + TAD KM32 + SZA CLA + JMP TDRGRD /KEEP LOOKING FOR IT + JMS TDRQD + JMS TDRQD + JMS TDRQD /SKIP CONTROL WORDS + CDF 10 /LOAD UP FIELD 1 +TDREAD, JMS TDRQD /GET A DATA WORD + DCA I TDPTR + ISZ TDPTR /ARE WE DONE? + JMP TDREAD /NOT YET + ISZ TDBKNO /YES..LOOK AT BLOCK 15 + TAD KCDF20 + DCA TDREAD-1 /LOAD UP FIELD 2 + ISZ M2 /DONE THIS JUNK? + JMP TDBOOT /GO DO FIELD 2 + SDLC /STOP THE TAPE + CIF CDF 0 + JMP I K7605 + TDM14, -154 + -155 /USE RECORD 66 +TDPTR, +TDWCT, 7600 +TDRQD, 0 + SDSQ + JMP .-1 + SDRD + JMP I TDRQD + +K7600, 7600 +KM26, -26 +KM32, -32 +KCDF20, CDF 20 +M2, -2 +K7605, 7605 +TD77, 77 + +/ THIS BOOTSTRAP RESIDES IN BLOCK 0 +/ BLOCK 1/2 CONTAINS THE USUAL IMAGE OF 07600 +/ BLOCK 66 CONTAINS THE IMAGE OF 17600 +/ BLOCK 66 1/2 CONTAINS THE IMAGE OF 27600 + RELOC + *200 + +/TD8E DECTAPE SYSTEM HANDLER +/THIS HANDLER CAN DRIVE UNITS 0&1, AND IS PERMANENTLY +/RESIDENT IN FIELDS 0&2. + + RELOC 7600 + + VERSION="B&77 + + ZBLOCK 7 +SHNDLR, VERSION /UNIT 0 ENTRY POINT + CLA CLL + JMP SHND2 +C3, 3 /MUST BE HERE FOR BUILD +S70, 70 +SDTA1, VERSION /UNIT 1 ENTRY + CLA CLL CML +SC1000, TAD SDTA1 /DOUBLES AS CONSTANT 1000 + DCA SHNDLR /GET ARGS AT SHNDLR +SHND2, RAR /UNIT # + DCA SUNIT + RDF /SETUP FOR EXIT + TAD S6203 + DCA EFLD + TAD I SHNDLR /FUNCTION WORD + SDLD /PUT IT IN DATA EGISTER + AND S70 /SDLD DOES NOT 0 AC..GET FIELD + TAD S6203 /CIF CDF N FOR TRANSFER FIELD + DCA TFLD + ISZ SHNDLR + TAD I SHNDLR /BUFFER ADDRESS + DCA BPTR + ISZ SHNDLR + TAD I SHNDLR /BLOCK #. TIMES 2 FOR REAL # + CLL RAL + DCA BLOCK + ISZ SHNDLR /POINT TO ERROR EXIT + CIF CDF 20 /PUT UNIT # INTO FIELD 2 + TAD SUNIT + DCA I SUNIT2 + JMP F2SET /TO FIELD 2 FOR INIT. + +F1GO, SDRD /INITIAL DIRECTION TO LINK + RAR + JMP RGO + RENTER, TAD BPTR /DONE THIS BLOCK..NEXT ADDRESS + TAD SC200 + DCA BPTR + ISZ BLOCK /NEXT TAPE BLOCK..CAN'T SKIP + CLL CML /FORCE FORWARD MOTION +RGO, CLA CML RTR /LINK TO MOTION BIT + TAD SC1000 + TAD SUNIT + SDLC /MOVE THE TAPE + SDSQ + JMP .-1 + SDRD /KNOCK DOWN QUAD FLAG + SDSQ + JMP .-1 + SDRD /THIS IS NEEDED, ELSE TIME ERROR!!! + +SRCH, SDSS /WAIT FOR A BLOCK MARK + JMP .-1 + SDRC /GET MARK TRACK BITS + CLL RTL /DIRECTION TO LINK + AND SC374 + TAD SM110 /IS IT A N END ZONE? + SNA + JMP SENDZ /YES + TAD SM20 /MAYBE A BLOCK MARK? + SZA CLA + JMP SRCH /NEITHER..KEEP GOING + SDRD /READ THE BLOCK # + SZL /IF REVERSE, LOOK 3 AHEAD OF TARGET + TAD C3 + CMA + TAD BLOCK + CMA + SNA /IS IT THE RIGHT ONE? + JMP FOUND /YES +SM110, CLA SNA SZL /SNA SUPERFLUOUS..ONLY SZL VALID + JMP SRCH /HEADED FOR IT..KEEP GOING +SENDZ, SDRC + CLL RTL + SZL CLA /IF IN END ZONE FORWARD, GIVE ERROR + JMP RGO + CIF 20 /IF IT IS REALL END ZONE, AN ERROR + JMP ERROR + +FOUND, SZL CLA /RIGHT BLOCK..HOW ABOUT DIRECTION? + JMP RGO /WRONG..EXECUTE TURNAROUND + TAD BPTR +TFLD, HLT /GETS CIF CDF N + CIF 20 + JMP RDWT /LET'S TRANSFER DATA + +SEXIT, ISZ SHNDLR /NORMAL RETURN +SEREX, TAD SUNIT /STOP THE TAPE + SDLC + CML CLA RAR /EITHER 0 OR 4000 IN AC ON RETURN +EFLD, HLT + JMP I SHNDLR + + BPTR=7755 + BLOCK=7754 + SUNIT=SDTA1 + +S6203, 6203 +SC200, 200 +SC374, 374 +SM20, -20 +SUNIT2, SXUNIT + RELOC + *400 + + RELOC 7600 /RUNS IN 27600 + +XPTR, 0 /BUFFER POINTER +F2SET, CLA CLL CMA RTL /3 ERROR TRIES + DCA TRYCNT + TAD SXUNIT /MAKE SURE TAPE IS STOPPED + SDLC +F26203, CIF CDF 0 + SDRD /FUNCTION WORD + CLL RAL + AND CX7600 /PAGE COUNT + DCA XPGCT + SDRD + DCA SXFUN /SAVE THE FUNCTION WORD + JMP F1GO + +RDWT, DCA XPTR /SAVE NEW BUFFER ADDRESS + TAD CX7600 + DCA XWCNT /128 WORDS PER BLOCK +REVGRD, SDSS /WAIT FOR REVERSE GUARD WORD + JMP .-1 + SDRC + AND X77 + TAD XM32 /IS IT REVERSE GUARD? + SZA CLA + JMP REVGRD /NO + TAD SXFUN +SK7700, SMA CLA /READ OR WRITE? + JMP READ /READ + SDRC + AND C300 /ERRORS ON WRITE LOCKOUT AND TIME + SZA CLA + JMP ERROR + JMS RDQUAD /SKIP A WORD +CX7600, 7600 + TAD WRLP + TAD SXUNIT + SDLC /TURN ON THE WRITE + CLA CMA + JMS WRQUAD /WRITE 7777 IN REV. CHECKSUM + CLA CMA + DCA SCKSUM /AND ALSO IN COMPUTE CHECKSUM +WRLP, TAD I XPTR + JMS WRQUAD /WRITE THE DATA + ISZ XPTR +X77, 77 /JUST IN CASE + ISZ XWCNT /DONE 128? + JMP WRLP + JMS WRQUAD /WRITE AND CHECKSUM A WORD OF 0 + JMS GETCHK /GET CHECKSUM + JMS WRQUAD + JMS WRQUAD /LET CHECKSUM GET WRITTEN + +RWCOM, SDST /CHECK FOR TIME AND CHECKSUM ERRORS + SZA CLA + JMP ERROR /NOTE THAT LINK IS OFF AT RWCOM + CIF CDF 0 + TAD XPGCT /FINISHED TRANSFER? + TAD CX7600 /LINK GOES ON HERE + SNA + JMP SEXIT /YES..GETOUT + DCA XPGCT + JMP RENTER + +READ, JMS RDQUAD /SKIP CONTROL WORDS + JMS RDQUAD + JMS RDQUAD /GET CHECKSUM + AND X77 + TAD SK7700 + DCA SCKSUM +SRDLP, JMS RDQUAD + DCA I XPTR + TAD I XPTR + JMS EQUFUN + ISZ XPTR +C300, 300 + ISZ XWCNT /DONE ALL? + JMP SRDLP /NO + JMS RDQUAD /READ AND CHECKSUM LAST WORD + JMS EQUFUN + JMS RDQUAD /GET CHECKSUM + AND SK7700 + JMS EQUFUN + JMS GETCHK + JMP RWCOM + +ERROR, CLA CLL /THIS CAUSES SEARCH REVERSE AT RGO + CIF CDF 0 + ISZ TRYCNT /EXHAUSTED ERROR TRIES? + JMP RGO + JMP SEREX /YES..FATAL EXIT + +WRQUAD, 0 /WRITE A 12 BIT WORD + SDSQ + JMP .-1 + SDLD + JMS EQUFUN /SDLD LEAVES AC ALONE + JMP I WRQUAD + +RDQUAD, 0 /READ A 12 BIT WORD + SDSQ + JMP .-1 + SDRD + JMP I RDQUAD + EQUFUN, 0 /EQUIVALENCE CHECKSUM + CMA + DCA EQUTMP + TAD EQUTMP + AND SCKSUM + CIA + CLL RAL + TAD EQUTMP + TAD SCKSUM + DCA SCKSUM + JMP I EQUFUN + +GETCHK, 0 + TAD SCKSUM + CLL CMA RTL + RTL + RTL + JMS EQUFUN + TAD SCKSUM + AND SK7700 + JMP I GETCHK + +SXUNIT, 0 +XPGCT, 0 +SXFUN, 0 +TRYCNT, 0 +XWCNT, 0 +XM32, -32 +SCKSUM, 0 +EQUTMP, 0 + +/THE LAST 4 LOCS. ARE FREE FOR USE BY BATCH + ZBLOCK 4 + RELOC + $ +