software: Added more and more
[pdp8.git] / sw / os8 / v3d / sources / system / dectapes / dectape3 / ROMMSY.PA
diff --git a/sw/os8/v3d/sources/system/dectapes/dectape3/ROMMSY.PA b/sw/os8/v3d/sources/system/dectapes/dectape3/ROMMSY.PA
new file mode 100644 (file)
index 0000000..47e521a
--- /dev/null
@@ -0,0 +1,199 @@
+/2 ROM-TD8E HANDLER
+/
+/
+/
+/
+/
+/
+/
+/
+/
+/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.
+/
+/
+/
+/
+/
+/
+/
+/
+/
+/
+\f      ROMFLD=70
+       VERSION="A&77
+/THESE ARE ASSEMBLY REFERENCES TO LOCATIONS IN THE ROM:
+
+       RGO=7405
+       F2SET=7552
+/      TD8E MNEMONICS:
+       SDSS=6771
+       SDST=6772
+       SDSQ=6773
+       SDLC=6774
+       SDLD=6775
+       SDRC=6776
+       SDRD=6777
+       *0
+
+       -3
+       DEVICE ROM;DEVICE SYS;4211;2007;0;1341
+       DEVICE ROM;DEVICE DTA0;4211;1007;0;1341
+       DEVICE ROM;DEVICE DTA1;4211;SDTA1&177+1000;0;1341
+\f      STARTB-ROMCT-1
+
+       NOPUNCH
+       *7360           /ROOM FOR DECTAPE HEADER WORDS
+       ENPUNCH
+
+STARTB,        ZBLOCK 20
+       CDF 0           /BOOTSTRAP TO MOVE FIELD 1
+       TAD I ROM1      /CODE UP TO FIELD 1
+       CDF 10
+       DCA I ROM2
+       ISZ ROM1
+       NOP
+       ISZ ROM2
+       NOP
+       ISZ ROMCT
+       JMP 7400
+       CIF CDF 0       /DONE
+       SDLC            /STOP THE TAPE
+       JMP I .+1
+       7605            /START HER UP
+ROM1,  7427            /FIELD 1 CODE GETS LOADED HERE
+ROM2,  7647            /AND GOES UP HERE
+ROMCT, -130
+\f      *200
+
+       NOPUNCH
+       *7600
+       ENPUNCH
+
+       ZBLOCK 7
+SHNDLR,        VERSION         /UNIT 0 ENTRY
+       CLA CLL
+       JMP SHND2
+S70,   70
+S6201, 6201
+SDTA1, VERSION         /UNIT 1 ENTRY POINT
+       CLA CLL CML
+       TAD SDTA1       /GET ARGS AT SHNDLR
+       DCA SHNDLR
+SHND2, RAR             /UNIT BIT IS IN LINC
+       DCA SUNIT
+       RDF
+       TAD S6203       /SETUP RETURN FIELD
+       DCA EFLD
+       TAD I SHNDLR
+       SDLD            /STORE FUNCTION WORD IN DATA REG.
+       AND S70         /SDLD DOESN'T CLEAR AC
+       TAD S6201       /ISOLATE FIELD OF XFER
+       DCA TFLD
+       TAD TFLD
+       DCA TFLD2
+       ISZ SHNDLR
+       TAD I SHNDLR    /BUFFER ADDRESS
+       DCA BPTR
+       ISZ SHNDLR
+       TAD I SHNDLR    /PS/8 RECORD #
+       CLL RAL         /TIMES 2 FOR ABSOLUTE BLOCK
+       DCA BLOCK
+       ISZ SHNDLR
+       CDF 0
+       CIF ROMFLD      /ROM IS IN FIELD 7
+       JMP I XF2SET    /INITIALIZE.
+\fGET,  0
+TFLD,  HLT             /ROUTINE TO LOAD DATA FROM BUFFER
+       TAD I XPTR
+       CIF ROMFLD
+       JMP I GET
+
+PUT,   0               /PUT DATA INTO BUFFER
+TFLD2, HLT
+       DCA I XPTR
+       CIF ROMFLD
+       JMP I PUT
+
+ERROR, CLA CLL         /FORCE TURNAROUND AT RGO
+       CIF ROMFLD
+       ISZ TRYCNT      /TRIED 3 TIMES?
+       JMP I XRGO
+S6203, CIF CDF 0
+       JMP SEREX       /YES..FATAL EXIT
+
+XRGO,  RGO
+XF2SET,        F2SET
+\f/EQUIVALENCES FOR HANDLER
+
+       EQUTMP=7750
+       BPTR=7751
+       XPGCT=7752
+       XPTR=7753
+       XWCNT=7754
+       WRQ=7724
+WRQUAD,        0               /WRITE A 12 BIT TAPE WORD
+       CIF ROMFLD
+       JMP WRQ
+CIFR,  CIF ROMFLD
+       JMP I WRQUAD
+
+RDQUAD,        0               /READ A 12 BIT DATA WORD
+       SDSQ
+       JMP .-1
+       SDRD
+       CIF ROMFLD
+       JMP I RDQUAD
+
+EQUFUN,        0               /EQUIVALENCE CHECKSUM
+       CMA
+       DCA EQUTMP
+       TAD EQUTMP
+       AND SCKSUM
+       CIA
+       CLL RAL
+       TAD EQUTMP
+       TAD SCKSUM
+       DCA SCKSUM
+       TAD EQUTMP
+       CLL CMA
+       CIF ROMFLD
+       JMP I EQUFUN
+
+SEXIT, ISZ SHNDLR      /NORMAL EXIT
+SEREX, TAD SUNIT       /STOP THE DRIVE
+       SDLC
+       CLA CML RAR     /EXIT CONDITION IN BIT 0
+EFLD,  HLT
+       JMP I SHNDLR
+
+TRYCNT,        0
+SXUNIT,        0
+SXFUN, 0
+SCKSUM,        0
+BLOCK, 0
+SUNIT, 0
+       $
+\f