--- /dev/null
+/1 BATCH INPUT STREAM HANDLER
+/
+/
+/
+/
+/
+/
+/
+/
+/
+/COPYRIGHT (C) 1974,1975 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
+ -1 /NUMBER OF DEVICES
+ DEVICE BAT /DEVICE TYPE NAME
+ DEVICE BAT /DEVICE NAME
+ 2220 /READ ONLY, CODE=22
+ 0 /ONE PAGE
+ ZBLOCK 2
+
+BATIN= 5400
+\f BATVERSION="B&77
+
+
+ *200
+BAT, BATVERSION
+ CLA /PROTECTION
+ RDF /GET USER'S FIELD
+ TAD BATCDF /MAKE CDF CIF
+ DCA BATXIT /SAVE FOR EXIT
+ TAD BATISZ /RESET SUCCESS ISZ
+ DCA BATXIT-1
+ TAD I BAT
+ AND BA7700
+ CIA
+ DCA BATWC /SAVE WORD COUNT (DIVIDED BY 2)
+ TAD I BAT
+ AND BA0070
+ TAD BATCDF /CREATE CDF TO BUFFER FIELD
+ TAD (-2
+ DCA BATBUF
+BATISZ, ISZ BAT
+ TAD I BAT
+ DCA BATCA /GET ADDRESS OF BUFFER
+ ISZ BAT
+ ISZ BAT /IGNORE BLOCK NUMBER
+ TAD BATWC /WAS COMMAND WRITE OR BUFFER LENGTH ZERO?
+BA7700, SMA CLA
+ JMP BATER1 /YES - ERROR
+BATCDF, CDF CIF 0
+ TAD I BA7777 /IS BATCH RUNNING?
+ RAL
+ SMA CLA
+ JMP BATER2 /NO - ERROR
+ TAD I BA7777
+ AND BA0070
+ TAD BATCDF /CREATE CDF TO BATCH FIELD
+ DCA BATCAL /CREATE CDF CIF TO BATCH FIELD
+
+
+
+BATLP, JMS BATGET /GET CHAR
+ DCA I BATCA /SAVE IN BUFFER
+ JMS BATGET /GET NEXT CHAR
+ DCA BATTMP /SAVE IT FOR PACKING
+ JMS BATGET /GET NEXT CHAR
+ RTL
+ RTL
+ DCA BATTM2 /SAVE IT
+ TAD BATTM2
+ AND BA7400 /ADD FIRST HALF
+ TAD I BATCA /TO FIRST CHAR
+ DCA I BATCA /SAVE THEM IN BUFFER
+ ISZ BATCA /UPDATE POINTER
+BA7400, 7400 /PROTECT THE ISZ
+ TAD BATTM2 /GET SECOND HALF OF CHAR
+ RTL
+ RTL
+ AND BA7400
+ TAD BATTMP /ADD TO SECOND CHAR
+ DCA I BATCA /SAVE IN BUFFER
+ ISZ BATCA /UPDATE POINTER
+BA0070, 0070 /PROTECT THE ISZ
+ ISZ BATWC /DONE?
+ JMP BATLP /NO - LOOP
+
+ ISZ BAT /SUCCESS RETURN (ON EOF THIS BECOMES CLA IAC)
+BATXIT, HLT /CDF CIF TO USER FIELD
+ JMP I BAT /RETURN
+
+BATWC, 0 /WORD COUNT (DIVIDED BY 2)
+BATCA, 0 /POINTER INTO BUFFER
+BATTM2,
+BATCHR, 0 /CHAR RETURNED BY BATGET
+BATTMP, 0
+BA7777, 7777
+
+
+BATER1,
+BATER2, CLA STL RAR
+ JMP BATXIT
+\f/THIS ROUTINE GETS THE NEXT CHARACTER TO BE PUT INTO THE BUFFER
+BATGET, 0
+ 0 /IF LAST CHAR WAS <CR> THIS IS "JMP BATLF"
+BATCAL, HLT /CIF CDF BATCH FIELD (ON EOF THIS IS "JMP BATBUF")
+ TAD I BATVFY
+ TAD (-2214 /VERIFY MAGIC LOCATION IN BATCH
+ SZA /AGAINST EQUALLY MAGIC CONTENTS
+ CDF CIF 0
+ SZA CLA
+ JMP BATER2 /BATCH IS DESTROYED!
+ CDF /WE ARE IN FIELD ZERO
+ JMS I BATINN /CALL THE BATCH INPUT ROUTINE
+ JMP BATEOF /NO SKIP = END OF FILE
+ DCA BATCHR /SAVE CHARACTER RETURNED
+ TAD BATCHR
+ TAD BMCR /CARRIAGE RETURN?
+ SNA
+ JMP BATCR /YES
+ TAD BCRMLF /LINE FEED?
+ SNA
+ JMP BATCAL /YES - IGNORE IT
+ TAD BLFMDO /DOLLAR SIGN?
+ SNA CLA
+ JMP BATDO /YES
+BATGEX, DCA BCRFLG /NO SPECIAL CHAR
+ TAD BATCHR /RETURN WITH CHAR IN AC
+BATBUF, HLT /CDF USER BUFFER
+ JMP I BATGET /RETURN
+
+BLFJMP, JMP BATLF
+BATCR, TAD BLFJMP /SET NEXT CALL TO RETURN <LF>
+ DCA BATGET+1
+ CLA CMA /SET TO INDICATE <CR>
+ JMP BATGEX
+
+BATLF, DCA BATGET+1 /ZAP THE JMP TO HERE
+ TAD BLF /RETURN <LF>
+BATGEJ, JMP BATBUF
+
+BATDO, TAD BCRFLG /IS THE "$" FIRST ON THIS LINE?
+ SNA CLA
+ JMP BATGEX /NO - NOTHING SPECIAL
+ TAD I BA7777 /YES - SET FLAG SO THAT
+ RTR /THE BATCH INPUT ROUTINE
+ STL RTL /WILL PUT THE DOLLAR-SIGN BACK
+ DCA I BA7777
+ /RETURN CURRENT CHARACTER AGAIN
+BATEOF, TAD BATCTZ /RETURN CTRL-Z THIS TIME
+ DCA BATCHR
+ DCA BATXIT-1 /SET HANDLER TO RETURN TO ERROR RETURN
+ TAD BATGEJ /SET BATGET TO RETURN ZEROES
+ DCA BATCAL
+ JMP BATCR+2 /AND FLAG NEW LINE FOR NEXT CALL
+
+BATINN, BATIN /ENTRY ADDRESS OF BATCH INPUT ROUTINE
+BATVFY, BATIN+200
+BLF, 212
+BMCR, -215
+BCRMLF, 215-212
+BLFMDO, 212-"$
+BCRFLG, -1
+BATCTZ, 32 /CTRL-Z
+
+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
+\f