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 / cclrem.ma < prev    next >
Text File  |  1992-09-18  |  5KB  |  286 lines

  1. /CCLREM   CCL REMEMBERING ROUTINES
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16. /
  17. /
  18. /
  19. /COPYRIGHT  (C)  1979 BY DIGITAL EQUIPMENT CORPORATION
  20. /
  21. /
  22. /
  23. /THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE
  24. /AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
  25. /CORPORATION.  DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY
  26. /FOR ANY ERRORS THAT MAY APPEAR IN THIS DOCUMENT.
  27. /
  28. /THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FURNISHED TO THE PURCHASER
  29. /UNDER A LICENSE FOR USE ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED
  30. /(WITH INCLUSION OF DIGITAL'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH
  31. /SYSTEM, EXCEPT AS MAY OTHERWISE BE PROVIDED IN WRITING BY DIGITAL.
  32. /
  33. /DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR THE USE
  34. /OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY
  35. /DIGITAL.
  36. /
  37. /
  38. /
  39.  
  40.  
  41. /VERSION=V3A (D.H.)
  42. /1    CCL RECOLLECTION ROUTINES
  43.  
  44.     .EXTERNAL REMD,SCAN,LBEGIN,BEGLN,PRMESG,PRINT
  45.  
  46.     DATWD=7666
  47.     CLXR=35
  48.     XR=16
  49.  
  50.     .ENTRY REMEM,FOREVER,RECALL
  51.     .RSECT CCLREM
  52.     FIELD 1
  53.  
  54. /CCL REMEMBERS UP TO 8 COMMAND LINES (EACH UP TO 55 DECIMAL
  55. /SIXBIT CHARACTERS LONG) IN BLOCK 65 ON THE SYSTEM DEVICE.
  56. /THIS BLOCK WHEN READ INTO 04000-04377 HAS THE FOLLOWING FORMAT:
  57.  
  58. /4000-4037    REM-LINE 0
  59. /4040-4177    REM-LINE 1
  60. /4100-4137    REM-LINE 2
  61. /4140-4177    REM-LINE 3
  62. /4200-4237    REM-LINE 4
  63. /4240-4277    REM-LINE 5
  64. /4300-4337    REM-LINE 6
  65. /4340-4377    REM-LINE 7
  66.  
  67. /EACH REM-LINE HAS THE FOLLOWING FORMAT:
  68.  
  69. /WORD 0:    IN-USE FLAG, MUST BE '1234' TO INDICATE LINE WAS REMEMBERED HERE
  70. /WORD 1:    DATE LINE WAS REMEMBERED
  71. /WORD 2:    COMMAND DEPENDENT INFORMATION
  72. /WORD 3:    RESERVED FOR FUTURE EXPANSION
  73. /WORDS 4-37    COMMAND LINE NOT INCLUDING KEYWORD OR FOLLOWING SPACES
  74. /        PACKED IN 6-BIT AND TERMINATED BY A 6-BIT 0.
  75.  
  76. /ROUTINES:
  77.  
  78. /    TAD (DEP
  79. /    JMS REMEM
  80. /    N
  81.  
  82. /REMEMBERS CURRENT LINE IN REM-LINE N.  AC IS LINE DEPENDENT INFORMATION.
  83. /IF LINE IS TOO BIG, THIS PRINTS A WARNING MESSAGE AND RETURNS AS IF OK.
  84.  
  85. /    JMS RECALL
  86. /    N
  87.  
  88. /RECALLS REM-LINE N INTO BUFFER
  89. /IF NOTHING THERE, PRINTS A BAD SYNTAX MESSAGE AND RETURNS TO OS/8.
  90. /UPON RETURN, LINE-DEPENDENT INFO IS IN AC.
  91. /IF DATES DON'T MATCH, IT'S NOT THERE UNLESS DATE = -1
  92.  
  93. /0    USED BY TECO, MAKE COMMANDS
  94. /1    USED BY EDIT, CREATE COMMANDS
  95. /2    USED BY COMPILE, EXECUTE COMMANDS & PAL.
  96. /    DEPENDENT WORD IS PTR TO FIRST ENTRY IN MAIN TABLE
  97.  
  98. /3    USED BY 'UA' COMMAND
  99. /4    USED BY UB
  100. /5    USED BY UC
  101.  
  102. /    JMS FOREVER
  103.  
  104. /CAUSES NEXT CALL TO REMEM TO INSERT -1 AS DATE
  105.     REMSPACE=4000
  106.     REMBLOCK=65
  107.  
  108. REMEM,    0
  109.     DCA DEP
  110.     TAD I (REMD
  111.     SMA CLA
  112.     JMP I REMEM    /DON'T REMEMBER IF JUST RECALLED
  113.     JMS I (RDREM
  114.     JMP I (MEMBIG
  115.     TAD I REMEM
  116.     ISZ REMEM
  117.     CLL RTL
  118.     RTL
  119.     RAL        /MULTIPLY BY 40
  120.     TAD (REMSPACE
  121.     DCA LPTR
  122.     TAD (1234
  123.     CDF 0
  124.     DCA I LPTR
  125.     CDF 10
  126.     ISZ LPTR
  127. FORVR,    TAD I (DATWD    /REPLACED BY CMA IF WANT NO DATE
  128.     JMS LPUT    /STORE DATE
  129.     TAD DEP
  130.     JMS LPUT    /STORE DEPENDENT INFO
  131.     JMS LPUT    /RESERVED
  132.     JMS I (SCAN    /GO PAST KEYWORD AND BLANKS
  133.     TAD I (LBEGIN
  134.     DCA XR
  135. L$:    JMS I (GETF
  136.     JMP 3$
  137.     JMS I (ROTL
  138.     DCA TML
  139.     JMS I (GETF
  140.     JMP 2$
  141.     TAD TML
  142.     JMS LPUT
  143.     JMP L$
  144. 2$:    TAD TML
  145. 3$:    JMS LPUT
  146.     JMS I (WRREM
  147.     JMP I (MEMBIG
  148. REMGO,    JMP I REMEM
  149. DEP,    0
  150. LPTR,    0        /PTS TO REM-LINE
  151. TML,    0        /TEMP
  152.  
  153. /PUT INTO REM-LINE
  154.  
  155. LPUT,    0
  156.     DCA TML
  157.     TAD LPTR
  158.     AND (37
  159.     SNA CLA
  160.     JMP I (MEMBIG
  161.     TAD TML
  162.     CDF 0
  163.     DCA I LPTR
  164.     CDF 10
  165.     ISZ LPTR
  166.     JMP I LPUT
  167.  
  168. FOREVER,0
  169.     TAD LCMA
  170.     DCA FORVR
  171.     JMP I FOREVER    /NON-ZERO MEANS SET DATE TO -1
  172. RECALL,    0
  173.     JMS I (RDREM
  174.     JMP I (REMERR
  175.     TAD I RECALL
  176.     ISZ RECALL
  177.     JMS I (ROTL
  178.     RAR
  179.     TAD (REMSPACE
  180.     DCA LPTR
  181.     JMS LGET
  182.     TAD (-1234
  183.     SZA CLA
  184.     JMP I (REMER2
  185.     JMS LGET
  186.     SNA
  187.     JMP I (REMER2
  188. LCMA,    CMA
  189.     SNA
  190.     JMP 1$
  191.     IAC
  192.     TAD I (DATWD    /SAME DAY?
  193.     SZA CLA
  194.     JMP I (REMER2
  195. 1$:    JMS LGET
  196.     DCA DEP
  197.     JMS LGET    /IGNORE RESERVED WORD
  198.     CLA
  199.     TAD (BEGLN-1
  200.     DCA XR
  201.     TAD (BEGLN-1
  202.     DCA I (LBEGIN
  203. L$:    JMS LGET
  204.     DCA TML
  205.     TAD TML
  206.     JMS I (ROTL
  207.     RAL
  208.     JMS I (PUTF
  209.     JMP LV$
  210.     TAD TML
  211.     JMS I (PUTF
  212.     JMP LV$
  213.     JMP L$
  214.  
  215. LV$:    TAD DEP
  216.     JMP I RECALL
  217. LGET,    0
  218.     CDF 0
  219.     TAD I LPTR
  220.     CDF 10
  221.     ISZ LPTR
  222.     JMP I LGET
  223.     PAGE
  224. PUTF,    0
  225.     AND (77
  226.     SNA
  227.     JMP PUTZ
  228.     ISZ PUTF
  229.     TAD (240
  230.     AND (77
  231.     TAD (240
  232. PUTZ,    CDF 0
  233.     DCA I XR
  234.     CDF 10
  235.     JMP I PUTF
  236.  
  237. REMERR,    JMS I (PRMESG
  238.     REMBAD
  239. REMER2,    JMS I (PRMESG
  240.     BADREM
  241. MEMBIG,    CLA
  242.     JMS I (PRINT
  243.     MEMWARN
  244.     JMP I (REMGO
  245.  
  246. RDREM,    0
  247.     CIF 0
  248.     JMS I (7607
  249.     200        /READ 2 PAGES INTO FIELD 0
  250.     4000        /LOCATION 4000
  251.     REMBLOCK
  252.     SKP CLA
  253.     ISZ RDREM
  254.     JMP I RDREM
  255.  
  256. WRREM,    0
  257.     CIF 0
  258.     JMS I (7607
  259.     4200        /WRITE 2 PAGES FROM FIELD 0
  260.     4000        /LOCATION 4000
  261.     REMBLOCK
  262.     SKP CLA
  263.     ISZ WRREM
  264.     JMP I WRREM
  265. /GET FROM INPUT LINE VIA XR
  266.  
  267. GETF,    0
  268.     CDF 0
  269.     TAD I XR
  270.     CDF 10
  271.     SZA
  272.     ISZ GETF
  273.     AND (77
  274.     JMP I GETF
  275. ROTL,    0
  276.     CLL RTL
  277.     RTL
  278.     RTL
  279.     JMP I ROTL
  280.  
  281. MEMWARN,TEXT    /%CAN'T REMEMBER/
  282. REMBAD,    TEXT    \#I/O ERROR TRYING TO RECALL\
  283. BADREM,    TEXT    /#BAD RECOLLECTION/
  284.     PAGE
  285.  
  286.