A large commit.
[pdp8.git] / sw / os8 / v3d / sources / devext / dectapes / dectape1 / cclat.ma
diff --git a/sw/os8/v3d/sources/devext/dectapes/dectape1/cclat.ma b/sw/os8/v3d/sources/devext/dectapes/dectape1/cclat.ma
new file mode 100644 (file)
index 0000000..e644fc8
--- /dev/null
@@ -0,0 +1,212 @@
+/
+/
+/
+/COPYRIGHT  (C)  1979 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
+/VERSION=V3A (D.H.)
+\f/2    CCL INDIRECT COMMAND FILE PROCESSOR
+
+       .GLOBAL AT,FUDG,DONB
+
+       .EXTERNAL BEGLN,GETSPC,ASSIGN,SETEXT,EXTCM
+       .GLOBAL SAVL
+       .EXTERNAL DEFALT,LOOKUP,ASADR,LNAME
+       .EXTERNAL PRMESG,MOVE
+       .EXTERNAL OUTSW,OUTLIM
+
+       XR=16
+       CLXR=35
+       T=20
+       LXR=34
+       BFR=3000
+
+       .RSECT AT1
+       FIELD 1
+
+AT,    0
+ATMORE,        TAD (BEGLN-1
+       DCA LXR
+ATLOOP,        JMS I (GLXR
+       SNA
+       JMP I AT
+       TAD (-300
+       SZA CLA
+       JMP ATLOOP
+       TAD LXR
+       DCA I (SAVL
+       JMS FUDG
+       JMS I (GETSPC
+       JMS I (ASSIGN
+       DCA I (SETEXT
+       TAD (EXTCM
+       DCA I (DEFALT
+       JMS I (LOOKUP
+       SZA CLA         /V3C
+       TAD I (ASADR
+       SNA
+       JMP I (ATERR    /IF NO FILESPEC AFTER @, ERROR
+       DCA T
+       TAD I (LNAME    /GET BLOCK NUMBER
+       DCA BLN
+       CIF 0
+       JMS I T
+       200             /READ 2 PAGES
+NWB,   BFR+200         /INTO BUFFER
+COUNT,
+BLN,   0               /FROM THIS BLOCK
+       JMP I (ATERR    / I/O ERROR
+       TAD (-200
+       DCA COUNT
+       TAD (BFR-1
+       DCA XR
+       TAD NWB
+       DCA T
+       CDF 0
+L$:    TAD I T
+       JMS I (P
+       CLL RTR
+       RTR
+       DCA TEMP$
+       ISZ T
+       TAD I T
+       JMS I (P
+       CLL RTL
+       RTL
+       RAL
+       TAD TEMP$
+       JMS I (P
+       CLA
+       ISZ T
+       ISZ COUNT
+       JMP L$
+       JMP I (ATOVER
+
+TEMP$: 0
+
+/ATFIN,        TAD LXR
+/      TAD (-BEGLN
+/      SZA CLA
+/      JMP I AT        /LEAVE
+/      JMP I (LEAVE    /LEAVE BECAUSE LINE NOW EMPTY
+\fFUDG, 0
+       DCA I (OUTSW    /LOAD HANDLER
+       TAD I (OUTLIM
+       CIA
+       DCA CLXR
+       JMP I FUDG
+
+GLXR,  0
+       CDF 0
+       ISZ LXR
+       TAD I LXR
+       CDF 10
+       JMP I GLXR
+
+DONB,  0               /USED AS A FLAG
+       JMP I DONB
+       PAGE
+\fP,    0
+       AND (177
+       SNA
+       JMP CTZ         /END AT 0 OR ^Z
+       TAD (-32
+       SNA
+       JMP CTZ
+       TAD (32-16      /IGNORE CR,LF,FF,VT
+       CLL
+       TAD (16-12
+       SZL
+       JMP 1$
+       TAD (212        /FORCE 8-BIT
+       DCA I XR
+1$:    CLA
+       TAD I T
+       AND (7400
+       JMP I P
+\fCTZ,  CDF 10
+       TAD LXR
+       DCA ATEND
+       STA
+       TAD LXR
+       DCA LXR         /INCASE @ GOES TO EOL
+       JMS I (GLXR     /SEARCH FOR EOL
+       SZA CLA
+       JMP .-2
+       TAD LXR
+       CMA
+       TAD ATEND
+       DCA ENDLEN
+       TAD XR
+       CMA
+       TAD (BFR        /GET LENGTH OF INSERTED STUFF
+       DCA NEWLEN
+       CDF 0
+       TAD I ATEND     /GET NEXT CHAR AFTER FILESPEC
+       CDF 10          /V3C
+       TAD (-"'
+       SZA CLA         /IS IT AN APOSTROPHE?
+       JMP .+3         /NO
+       ISZ ENDLEN      /YES
+       ISZ ATEND       /MAKE IT GO AWAY
+       TAD ENDLEN
+       JMS I (MOVE     /MOVE REST OF LINE UP
+       CDF 0
+ATEND, 0               /FIRST CHAR POSITION AFTER @ SPEC
+       CDF 0
+       BEGLN+1000
+       TAD NEWLEN      /IF 0, 'MOVE' WILL IGNORE IT
+       JMS I (MOVE     /MOVE IN NEW STUFF
+       CDF 0
+       BFR
+       CDF 0
+SAVL,  0               /POINTS TO @
+       TAD NEWLEN
+       CIA
+       TAD SAVL
+       DCA NEWEND
+       CLL
+       TAD NEWEND
+       TAD MB
+       SZL CLA
+       JMP ATOVER
+       TAD ENDLEN
+       JMS I (MOVE     /MOVE BACK END
+       CDF 0
+       BEGLN+1000
+       CDF 0
+NEWEND,        0               /FIRST POSITION AFTER NEW STUFF
+       JMP I (ATMORE   /LOOK FOR MORE
+
+MB,    -BEGLN-1000
+\fATOVER,       JMS I (PRMESG
+       OVFLOW
+ENDLEN,        0               /- NO. OF CHARS AT END INCLUDING 0
+NEWLEN,        0               /- NO. OF CHARS BEING INSERTED
+
+ATERR, CDF 10
+       CLA
+       JMS I (PRMESG
+       ATIO
+\fATIO, TEXT    /#BAD FILENAME OR ERROR READING INDIRECT FILE/
+OVFLOW,        TEXT    /#COMMAND LINE OVERFLOW/
+       PAGE