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 / bat.pa < prev    next >
Text File  |  1992-09-18  |  4KB  |  202 lines

  1. /BATV4  OS78 V4 BATCH HANDLER
  2. /ADAPTED FROM:
  3.  
  4. /1 BATCH INPUT STREAM HANDLER
  5. /
  6. /
  7. /
  8. /
  9. /
  10. /
  11. /
  12. /
  13. /
  14. /COPYRIGHT  (C)  1974,1975 BY DIGITAL EQUIPMENT CORPORATION
  15. /
  16. /
  17. /
  18. /
  19. /
  20. /
  21. /
  22. /
  23. /
  24. /
  25. /THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE
  26. /AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
  27. /CORPORATION.  DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY
  28. /FOR ANY ERRORS THAT MAY APPEAR IN THIS DOCUMENT.
  29. /
  30. /THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FURNISHED TO THE PURCHASER
  31. /UNDER A LICENSE FOR USE ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED
  32. /(WITH INCLUSION OF DIGITAL'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH
  33. /SYSTEM, EXCEPT AS MAY OTHERWISE BE PROVIDED IN WRITING BY DIGITAL.
  34. /
  35. /DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR THE USE
  36. /OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY
  37. /DIGITAL.
  38. /
  39. /
  40. /
  41. /
  42. /
  43. /
  44. /
  45. /
  46. /
  47. /
  48.     *0
  49.     -1        /NUMBER OF DEVICES
  50.     DEVICE    BAT    /DEVICE TYPE NAME
  51.     DEVICE    BAT    /DEVICE NAME
  52.     2220        /READ ONLY, CODE=22
  53.     4000        /TWO PAGES RESERVED WHEN USING WITH OS78
  54.     ZBLOCK 2
  55.  
  56. BATIN=    5400
  57.     BATVERSION="B&77
  58.  
  59.  
  60.     *200
  61. BAT,    BATVERSION
  62.     CLA        /PROTECTION
  63.     RDF        /GET USER'S FIELD
  64.     TAD BATCDF    /MAKE CDF CIF
  65.     DCA BATXIT    /SAVE FOR EXIT
  66.     TAD BATISZ    /RESET SUCCESS ISZ
  67.     DCA BATXIT-1
  68.     TAD I BAT
  69.     AND BA7700
  70.     CIA
  71.     DCA BATWC    /SAVE WORD COUNT (DIVIDED BY 2)
  72.     TAD I BAT
  73.     AND BA0070
  74.     TAD BATCDF    /CREATE CDF TO BUFFER FIELD
  75.     TAD (-2
  76.     DCA BATBUF
  77. BATISZ,    ISZ BAT
  78.     TAD I BAT
  79.     DCA BATCA    /GET ADDRESS OF BUFFER
  80.     ISZ BAT
  81.     ISZ BAT        /IGNORE BLOCK NUMBER
  82.     TAD BATWC    /WAS COMMAND WRITE OR BUFFER LENGTH ZERO?
  83. BA7700,    SMA CLA
  84.     JMP BATER1    /YES - ERROR
  85. BATCDF,    CDF CIF 0
  86.     TAD I BA7777    /IS BATCH RUNNING?
  87.     RAL
  88.     SMA CLA
  89.     JMP BATER2    /NO - ERROR
  90.     TAD I BA7777
  91.     AND BA0070
  92.     TAD BATCDF    /CREATE CDF TO BATCH FIELD
  93.     DCA BATCAL    /CREATE CDF CIF TO BATCH FIELD
  94.  
  95.  
  96.  
  97. BATLP,    JMS BATGET    /GET CHAR
  98.     DCA I BATCA    /SAVE IN BUFFER
  99.     JMS BATGET    /GET NEXT CHAR
  100.     DCA BATTMP    /SAVE IT FOR PACKING
  101.     JMS BATGET    /GET NEXT CHAR
  102.     RTL
  103.     RTL
  104.     DCA BATTM2    /SAVE IT
  105.     TAD BATTM2
  106.     AND BA7400    /ADD FIRST HALF
  107.     TAD I BATCA    /TO FIRST CHAR
  108.     DCA I BATCA    /SAVE THEM IN BUFFER
  109.     ISZ BATCA    /UPDATE POINTER
  110. BA7400,    7400        /PROTECT THE ISZ
  111.     TAD BATTM2    /GET SECOND HALF OF CHAR
  112.     RTL
  113.     RTL
  114.     AND BA7400
  115.     TAD BATTMP    /ADD TO SECOND CHAR
  116.     DCA I BATCA    /SAVE IN BUFFER
  117.     ISZ BATCA    /UPDATE POINTER
  118. BA0070,    0070        /PROTECT THE ISZ
  119.     ISZ BATWC    /DONE?
  120.     JMP BATLP    /NO - LOOP
  121.  
  122.     ISZ BAT        /SUCCESS RETURN (ON EOF THIS BECOMES CLA IAC)
  123. BATXIT,    HLT        /CDF CIF TO USER FIELD
  124.     JMP I BAT    /RETURN
  125.  
  126. BATWC,    0        /WORD COUNT (DIVIDED BY 2)
  127. BATCA,    0        /POINTER INTO BUFFER
  128. BATTM2,
  129. BATCHR,    0        /CHAR RETURNED BY BATGET
  130. BATTMP,    0
  131. BA7777,    7777
  132.  
  133.  
  134. BATER1,
  135. BATER2,    CLA STL RAR
  136.     JMP BATXIT
  137. /THIS ROUTINE GETS THE NEXT CHARACTER TO BE PUT INTO THE BUFFER
  138. BATGET,    0
  139.     0        /IF LAST CHAR WAS <CR> THIS IS "JMP BATLF"
  140. BATCAL,    HLT        /CIF CDF BATCH FIELD (ON EOF THIS IS "JMP BATBUF")
  141.     TAD I BATVFY
  142.     TAD (-2214    /VERIFY MAGIC LOCATION IN BATCH
  143.     SZA        /AGAINST EQUALLY MAGIC CONTENTS
  144.     CDF CIF 0
  145.     SZA CLA
  146.     JMP BATER2    /BATCH IS DESTROYED!
  147.     CDF        /WE ARE IN FIELD ZERO
  148.     JMS I BATINN    /CALL THE BATCH INPUT ROUTINE
  149.     JMP BATEOF    /NO SKIP = END OF FILE
  150.     DCA BATCHR    /SAVE CHARACTER RETURNED
  151.     TAD BATCHR
  152.     TAD BMCR    /CARRIAGE RETURN?
  153.     SNA
  154.     JMP BATCR    /YES
  155.     TAD BCRMLF    /LINE FEED?
  156.     SNA
  157.     JMP BATCAL    /YES - IGNORE IT
  158.     TAD BLFMDO    /DOLLAR SIGN?
  159.     SNA CLA
  160.     JMP BATDO    /YES
  161. BATGEX,    DCA BCRFLG    /NO SPECIAL CHAR
  162.     TAD BATCHR    /RETURN WITH CHAR IN AC
  163. BATBUF,    HLT        /CDF USER BUFFER
  164.     JMP I BATGET    /RETURN
  165.  
  166. BLFJMP,    JMP BATLF
  167. BATCR,    TAD BLFJMP    /SET NEXT CALL TO RETURN <LF>
  168.     DCA BATGET+1
  169.     CLA CMA        /SET TO INDICATE <CR>
  170.     JMP BATGEX
  171.  
  172. BATLF,    DCA BATGET+1    /ZAP THE JMP TO HERE
  173.     TAD BLF        /RETURN <LF>
  174. BATGEJ,    JMP BATBUF
  175.  
  176. BATDO,    TAD BCRFLG    /IS THE "$" FIRST ON THIS LINE?
  177.     SNA CLA
  178.     JMP BATGEX    /NO - NOTHING SPECIAL
  179.     TAD I BA7777    /YES - SET FLAG SO THAT
  180.     RTR        /THE BATCH INPUT ROUTINE
  181.     STL RTL        /WILL PUT THE DOLLAR-SIGN BACK
  182.     DCA I BA7777
  183.             /RETURN CURRENT CHARACTER AGAIN
  184. BATEOF,    TAD BATCTZ    /RETURN CTRL-Z THIS TIME
  185.     DCA BATCHR
  186.     DCA BATXIT-1    /SET HANDLER TO RETURN TO ERROR RETURN
  187.     TAD BATGEJ    /SET BATGET TO RETURN ZEROES
  188.     DCA BATCAL
  189.     JMP BATCR+2    /AND FLAG NEW LINE FOR NEXT CALL
  190.  
  191. BATINN,    BATIN        /ENTRY ADDRESS OF BATCH INPUT ROUTINE
  192. BATVFY,    BATIN+200
  193. BLF,    212
  194. BMCR,    -215
  195. BCRMLF,    215-212
  196. BLFMDO,    212-"$
  197. BCRFLG,    -1
  198. BATCTZ,    32        /CTRL-Z
  199.  
  200. $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  201.  
  202.