home *** CD-ROM | disk | FTP | other *** search
/ ftp.update.uu.se / ftp.update.uu.se.2014.03.zip / ftp.update.uu.se / pub / pdp8 / os278-src.tar.Z / os278-src.tar / cclat.ma < prev    next >
Text File  |  1992-09-18  |  3KB  |  229 lines

  1. /CCLAT  INDIRECT COMMAND (@) PROCESSOR
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17. /
  18. /
  19. /
  20. /COPYRIGHT  (C)  1979 BY DIGITAL EQUIPMENT CORPORATION
  21. /
  22. /
  23. /
  24. /THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE
  25. /AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
  26. /CORPORATION.  DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY
  27. /FOR ANY ERRORS THAT MAY APPEAR IN THIS DOCUMENT.
  28. /
  29. /THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FURNISHED TO THE PURCHASER
  30. /UNDER A LICENSE FOR USE ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED
  31. /(WITH INCLUSION OF DIGITAL'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH
  32. /SYSTEM, EXCEPT AS MAY OTHERWISE BE PROVIDED IN WRITING BY DIGITAL.
  33. /
  34. /DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR THE USE
  35. /OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY
  36. /DIGITAL.
  37. /
  38. /
  39. /
  40.  
  41.  
  42. /VERSION=V3A (D.H.)
  43. /2    CCL INDIRECT COMMAND FILE PROCESSOR
  44.  
  45.     .GLOBAL AT,FUDG,DONB
  46.  
  47.     .EXTERNAL BEGLN,GETSPC,ASSIGN,SETEXT,EXTCM
  48.     .GLOBAL SAVL
  49.     .EXTERNAL DEFALT,LOOKUP,ASADR,LNAME
  50.     .EXTERNAL PRMESG,MOVE
  51.     .EXTERNAL OUTSW,OUTLIM
  52.  
  53.     XR=16
  54.     CLXR=35
  55.     T=20
  56.     LXR=34
  57.     BFR=3000
  58.  
  59.     .RSECT AT1
  60.     FIELD 1
  61.  
  62. AT,    0
  63. ATMORE,    TAD (BEGLN-1
  64.     DCA LXR
  65. ATLOOP,    JMS I (GLXR
  66.     SNA
  67.     JMP I AT
  68.     TAD (-300
  69.     SZA CLA
  70.     JMP ATLOOP
  71.     TAD LXR
  72.     DCA I (SAVL
  73.     JMS FUDG
  74.     JMS I (GETSPC
  75.     JMS I (ASSIGN
  76.     DCA I (SETEXT
  77.     TAD (EXTCM
  78.     DCA I (DEFALT
  79.     JMS I (LOOKUP
  80.     SZA CLA        /V3C
  81.     TAD I (ASADR
  82.     SNA
  83.     JMP I (ATERR    /IF NO FILESPEC AFTER @, ERROR
  84.     DCA T
  85.     TAD I (LNAME    /GET BLOCK NUMBER
  86.     DCA BLN
  87.     CIF 0
  88.     JMS I T
  89.     200        /READ 2 PAGES
  90. NWB,    BFR+200        /INTO BUFFER
  91. COUNT,
  92. BLN,    0        /FROM THIS BLOCK
  93.     JMP I (ATERR    / I/O ERROR
  94.     TAD (-200
  95.     DCA COUNT
  96.     TAD (BFR-1
  97.     DCA XR
  98.     TAD NWB
  99.     DCA T
  100.     CDF 0
  101. L$:    TAD I T
  102.     JMS I (P
  103.     CLL RTR
  104.     RTR
  105.     DCA TEMP$
  106.     ISZ T
  107.     TAD I T
  108.     JMS I (P
  109.     CLL RTL
  110.     RTL
  111.     RAL
  112.     TAD TEMP$
  113.     JMS I (P
  114.     CLA
  115.     ISZ T
  116.     ISZ COUNT
  117.     JMP L$
  118.     JMP I (ATOVER
  119.  
  120. TEMP$:    0
  121.  
  122. /ATFIN,    TAD LXR
  123. /    TAD (-BEGLN
  124. /    SZA CLA
  125. /    JMP I AT    /LEAVE
  126. /    JMP I (LEAVE    /LEAVE BECAUSE LINE NOW EMPTY
  127. FUDG,    0
  128.     DCA I (OUTSW    /LOAD HANDLER
  129.     TAD I (OUTLIM
  130.     CIA
  131.     DCA CLXR
  132.     JMP I FUDG
  133.  
  134. GLXR,    0
  135.     CDF 0
  136.     ISZ LXR
  137.     TAD I LXR
  138.     CDF 10
  139.     JMP I GLXR
  140.  
  141. DONB,    0        /USED AS A FLAG
  142.     JMP I DONB
  143.     PAGE
  144. P,    0
  145.     AND (177
  146.     SNA
  147.     JMP CTZ        /END AT 0 OR ^Z
  148.     TAD (-32
  149.     SNA
  150.     JMP CTZ
  151.     TAD (32-16    /IGNORE CR,LF,FF,VT
  152.     CLL
  153.     TAD (16-12
  154.     SZL
  155.     JMP 1$
  156.     TAD (212    /FORCE 8-BIT
  157.     DCA I XR
  158. 1$:    CLA
  159.     TAD I T
  160.     AND (7400
  161.     JMP I P
  162. CTZ,    CDF 10
  163.     TAD LXR
  164.     DCA ATEND
  165.     STA
  166.     TAD LXR
  167.     DCA LXR        /INCASE @ GOES TO EOL
  168.     JMS I (GLXR    /SEARCH FOR EOL
  169.     SZA CLA
  170.     JMP .-2
  171.     TAD LXR
  172.     CMA
  173.     TAD ATEND
  174.     DCA ENDLEN
  175.     TAD XR
  176.     CMA
  177.     TAD (BFR    /GET LENGTH OF INSERTED STUFF
  178.     DCA NEWLEN
  179.     CDF 0
  180.     TAD I ATEND    /GET NEXT CHAR AFTER FILESPEC
  181.     CDF 10        /V3C
  182.     TAD (-"'
  183.     SZA CLA        /IS IT AN APOSTROPHE?
  184.     JMP .+3        /NO
  185.     ISZ ENDLEN    /YES
  186.     ISZ ATEND    /MAKE IT GO AWAY
  187.     TAD ENDLEN
  188.     JMS I (MOVE    /MOVE REST OF LINE UP
  189.     CDF 0
  190. ATEND,    0        /FIRST CHAR POSITION AFTER @ SPEC
  191.     CDF 0
  192.     BEGLN+1000
  193.     TAD NEWLEN    /IF 0, 'MOVE' WILL IGNORE IT
  194.     JMS I (MOVE    /MOVE IN NEW STUFF
  195.     CDF 0
  196.     BFR
  197.     CDF 0
  198. SAVL,    0        /POINTS TO @
  199.     TAD NEWLEN
  200.     CIA
  201.     TAD SAVL
  202.     DCA NEWEND
  203.     CLL
  204.     TAD NEWEND
  205.     TAD MB
  206.     SZL CLA
  207.     JMP ATOVER
  208.     TAD ENDLEN
  209.     JMS I (MOVE    /MOVE BACK END
  210.     CDF 0
  211.     BEGLN+1000
  212.     CDF 0
  213. NEWEND,    0        /FIRST POSITION AFTER NEW STUFF
  214.     JMP I (ATMORE    /LOOK FOR MORE
  215.  
  216. MB,    -BEGLN-1000
  217. ATOVER,    JMS I (PRMESG
  218.     OVFLOW
  219. ENDLEN,    0        /- NO. OF CHARS AT END INCLUDING 0
  220. NEWLEN,    0        /- NO. OF CHARS BEING INSERTED
  221.  
  222. ATERR,    CDF 10
  223.     CLA
  224.     JMS I (PRMESG
  225.     ATIO
  226. ATIO,    TEXT    /#BAD FILENAME OR ERROR READING INDIRECT FILE/
  227. OVFLOW,    TEXT    /#COMMAND LINE OVERFLOW/
  228.     PAGE
  229.