software: Added more and more
[pdp8.git] / sw / os8 / v3d / sources / system / dectapes / dectape1 / RK08NS.PA
diff --git a/sw/os8/v3d/sources/system/dectapes/dectape1/RK08NS.PA b/sw/os8/v3d/sources/system/dectapes/dectape1/RK08NS.PA
new file mode 100644 (file)
index 0000000..e8d82fb
--- /dev/null
@@ -0,0 +1,197 @@
+/3 RK8 NON SYSTEM HANDLER
+/
+/
+/
+/
+/
+/
+/
+/
+/
+/COPYRIGHT  (C)  1974,1975,1977 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
+       -4
+
+DEVICE RK01;DEVICE RKA0;4050;20;ZBLOCK 2
+DEVICE RK01;DEVICE RKA1;4050;21;ZBLOCK 2
+DEVICE RK01;DEVICE RKA2;4050;22;ZBLOCK 2
+DEVICE RK01;DEVICE RKA3;4050;23;ZBLOCK 2
+
+       DLDC=6732
+       DCLS=6742
+       DRDS=6741
+       DSKD=6745
+       DSKE=6747
+       DCLA=6751
+       DLWC=6753
+       DLCA=6755
+       DLDR=6733
+
+       RKVERSION="A&77
+
+/V3 CHANGES:
+
+/1.    VERSION # IS NOW 1
+/2.    A FULL 4K READ OR WRITE IS NOW LEGAL
+
+       *200
+/THE ENTRY POINTS FOR RK8 ARE SET AT 20-23. VITAL!!
+
+RLOC,  0               /FOR BUFFER ADDRESS
+RREC,  0               /HOLDS RECORD NO.
+R76,   76
+RDLDR, DLDR
+RKANO, 0
+RKAISZ,        ISZ RKANO
+RBLKCT,        0               /HOLDS TOTAL WORD COUNT
+RERRCT,        0               /# ERROR TRIES
+R177,  177
+R40,   40
+RM3,   -3
+R400,  400
+R7400, 7400
+RKA,   0               /HOLDS ARGUMENT ADDRESS
+R34,   34
+RZERO, RKVERSION
+       IFNZRO .-220 <ADRERR,QQQ>
+RKA0,  ISZ RKANO
+RKA1,  ISZ RKANO
+RKA2,  ISZ RKANO
+RKA3,  ISZ RKANO
+R7600, 7600
+       TAD RM3
+       DCA RERRCT      /3 TRIES ON ERROR
+       TAD RKANO       /THIS CODE RESTORES THE ISZ RKANO
+       CMA             /WHICH WAS DESTROYED IN THE CALL
+       TAD RKATAD
+       DCA RFUNCT
+       CLA CLL CML RTR
+       TAD RFUNCT      /FORM DCA RKAN,WHERE RKAN WAS CALLED
+       DCA RKADCA
+       RDF
+       TAD RCDIF       /RESTORE TO PROPER FIELD
+       DCA REXIT
+RFUNCT,        HLT             /CONTAINS TAD RKAN WHEN EXECUTED
+       DCA RKA         /SO WE SAVE ADDRESS OF ARGUMENTS
+       TAD RKAISZ      /AND NOW RESTORE THE ISZ RKANO
+RKADCA,        HLT
+       TAD I RKA       /FUNCTION WORD
+       DCA RFUNCT
+       ISZ RKA
+       CLA CMA         /BUFFER ADDRESS -1
+       TAD I RKA
+       DCA RLOC
+       ISZ RKA
+       TAD I RKA       /RECORD NUMBER
+       DCA RREC
+       TAD RFUNCT      /NOW FORM RK8 IOT FROM FUNCTION.
+       CLL RAL         /READ/WRITE TO LINK
+       AND R7600       /ISOLATE WORD COUNT
+       DCA RBLKCT
+       RTL             /READ=6733,WRITE=6735
+       TAD RDLDR
+       DCA RINST
+\fRLOOP,        TAD RLOC        /LOAD CURRENT ADDRESS
+       DLCA
+       TAD RBLKCT      /TEST WORD COUNT FOR SIZE.
+RKATAD,        TAD R7600       /FULL=256, HALF=128
+       SZA CLA
+       TAD R7600
+       TAD R7600
+       DLWC            /LOAD WORD COUNT
+       TAD RFUNCT      /LOADING COMMAND WORD WITH FIELD
+       CMA RAR         /AND DISK SELECTION
+       AND R34
+       TAD RKANO
+       CMA RAL
+       AND R76
+       DLDC
+       DCLS            /CLEARS SELECT ERROR IF STILL UP
+       TAD RREC
+RINST, HLT             /GETS DISK IOT
+       DSKD            /TEST COMPLETION FLAG
+       SKP CLA         /NOT DONE YET
+       JMP RCTLC       /DONE. CHECK FOR ^C
+       DSKE            /IS ERROR UP?
+       JMP .-4
+RERROR,        ISZ RERRCT      /ERROR BUMP COUNT
+       JMP .+4
+       DCA RKANO       /IT'S ALL OVER. CLEAR FOR RECALL
+       CLA CLL CML RAR
+       JMP RETRN+1     /FATAL ERROR
+       DRDS            /LOOK AT STSTUS
+       AND R40         /TRACK NOT FOUND BIT
+       ISZ RZERO       /CARRY OVER FROM SYSTEM HANDLER
+       JMP .-1
+       SNA CLA
+       JMP RLOOP       /TRY AGAIN
+       DCLA            /RECALIBRATE
+       DSKD
+       JMP .-1
+       JMP RLOOP       /AND TRY AGAIN
+\fRNEXT,        DSKE            /TRANSFER DONE. IS ERROR UP?
+       SKP
+       JMP RERROR      /YEP.TOUGH LUCK
+       ISZ RREC        /BUMP RECORD NUMBER
+       TAD RLOC
+       TAD R400        /BUMP CURRENT ADDRESS
+       DCA RLOC
+       TAD RBLKCT      /DONE WITH ALL TRANSFERS?
+       SNA
+       JMP RDONE       /V3  0 OK HERE
+       CLL CML
+       TAD R7400
+       SZL SNA
+       JMP RDONE
+       DCA RBLKCT      /NO..UPDATE TOTAL WORD COUNT
+       JMP RLOOP       /AND DO THE TRANSFER
+RDONE, CLA
+       DCA RKANO       /CLEAR FOR RECALL
+RETRN, ISZ RKA
+       ISZ RKA
+REXIT, HLT
+       JMP I RKA
+
+RCTLC, KRS             /TEST FOR ^C IN KEYBOARD BUFFER
+       AND R177        /WITH THE FLAG UP
+       TAD RM3
+       SNA CLA
+       KSF
+       JMP RNEXT       /NO ^C, KEEP GOING
+RCDIF, CIF CDF 0
+       JMP I R7600
+       $
+\f