1 /1 BATCH INPUT STREAM HANDLER 2 / 3 / 4 / 5 / 6 / 7 / 8 / 9 / 10 / 11 /COPYRIGHT (C) 1974,1975 BY DIGITAL EQUIPMENT CORPORATION 12 / 13 / 14 / 15 / 16 / 17 / 18 / 19 / 20 / 21 / 22 /THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE 23 /AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT 24 /CORPORATION. DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY 25 /FOR ANY ERRORS THAT MAY APPEAR IN THIS DOCUMENT. 26 / 27 /THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FURNISHED TO THE PURCHASER 28 /UNDER A LICENSE FOR USE ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED 29 /(WITH INCLUSION OF DIGITAL'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH 30 /SYSTEM, EXCEPT AS MAY OTHERWISE BE PROVIDED IN WRITING BY DIGITAL. 31 / 32 /DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR THE USE 33 /OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY 34 /DIGITAL. 35 / 36 / 37 / 38 / 39 / 40 / 41 / 42 / 43 / 44 / 45 *0 46 000000 7777 -1 /NUMBER OF DEVICES 47 000001 0201 DEVICE BAT /DEVICE TYPE NAME 000002 2400 48 000003 0201 DEVICE BAT /DEVICE NAME 000004 2400 49 000005 2220 2220 /READ ONLY, CODE=22 50 000006 0000 0 /ONE PAGE 51 000007 0000 ZBLOCK 2 000010 0000 52 53 BATIN= 5400 54 BATVERSION="B&77 55 56 57 *200 58 000200 0002 BAT, BATVERSION 59 000201 7200 CLA /PROTECTION 60 000202 6214 RDF /GET USER'S FIELD 61 000203 1230 TAD BATCDF /MAKE CDF CIF 62 000204 3272 DCA BATXIT /SAVE FOR EXIT 63 000205 1220 TAD BATISZ /RESET SUCCESS ISZ 64 000206 3271 DCA BATXIT-1 65 000207 1600 TAD I BAT 66 000210 0226 AND BA7700 67 000211 7041 CIA 68 000212 3274 DCA BATWC /SAVE WORD COUNT (DIVIDED BY 2) 69 000213 1600 TAD I BAT 70 000214 0266 AND BA0070 71 000215 1230 TAD BATCDF /CREATE CDF TO BUFFER FIELD 72 000216 1377 TAD (-2 73 000217 3334 DCA BATBUF 74 000220 2200 BATISZ, ISZ BAT 75 000221 1600 TAD I BAT 76 000222 3275 DCA BATCA /GET ADDRESS OF BUFFER 77 000223 2200 ISZ BAT 78 000224 2200 ISZ BAT /IGNORE BLOCK NUMBER 79 000225 1274 TAD BATWC /WAS COMMAND WRITE OR BUFFER LENGTH ZERO? 80 000226 7700 BA7700, SMA CLA 81 000227 5301 JMP BATER1 /YES - ERROR 82 000230 6203 BATCDF, CDF CIF 0 83 000231 1700 TAD I BA7777 /IS BATCH RUNNING? 84 000232 7004 RAL 85 000233 7700 SMA CLA 86 000234 5301 JMP BATER2 /NO - ERROR 87 000235 1700 TAD I BA7777 88 000236 0266 AND BA0070 89 000237 1230 TAD BATCDF /CREATE CDF TO BATCH FIELD 90 000240 3305 DCA BATCAL /CREATE CDF CIF TO BATCH FIELD 91 92 93 94 000241 4303 BATLP, JMS BATGET /GET CHAR 95 000242 3675 DCA I BATCA /SAVE IN BUFFER 96 000243 4303 JMS BATGET /GET NEXT CHAR 97 000244 3277 DCA BATTMP /SAVE IT FOR PACKING 98 000245 4303 JMS BATGET /GET NEXT CHAR 99 000246 7006 RTL 100 000247 7006 RTL 101 000250 3276 DCA BATTM2 /SAVE IT 102 000251 1276 TAD BATTM2 103 000252 0256 AND BA7400 /ADD FIRST HALF 104 000253 1675 TAD I BATCA /TO FIRST CHAR 105 000254 3675 DCA I BATCA /SAVE THEM IN BUFFER 106 000255 2275 ISZ BATCA /UPDATE POINTER 107 000256 7400 BA7400, 7400 /PROTECT THE ISZ 108 000257 1276 TAD BATTM2 /GET SECOND HALF OF CHAR 109 000260 7006 RTL 110 000261 7006 RTL 111 000262 0256 AND BA7400 112 000263 1277 TAD BATTMP /ADD TO SECOND CHAR 113 000264 3675 DCA I BATCA /SAVE IN BUFFER 114 000265 2275 ISZ BATCA /UPDATE POINTER 115 000266 0070 BA0070, 0070 /PROTECT THE ISZ 116 000267 2274 ISZ BATWC /DONE? 117 000270 5241 JMP BATLP /NO - LOOP 118 119 000271 2200 ISZ BAT /SUCCESS RETURN (ON EOF THIS BECOMES CLA IAC) 120 000272 7402 BATXIT, HLT /CDF CIF TO USER FIELD 121 000273 5600 JMP I BAT /RETURN 122 123 000274 0000 BATWC, 0 /WORD COUNT (DIVIDED BY 2) 124 000275 0000 BATCA, 0 /POINTER INTO BUFFER 125 BATTM2, 126 000276 0000 BATCHR, 0 /CHAR RETURNED BY BATGET 127 000277 0000 BATTMP, 0 128 000300 7777 BA7777, 7777 129 130 131 BATER1, 132 000301 7330 BATER2, CLA STL RAR 133 000302 5272 JMP BATXIT 134 /THIS ROUTINE GETS THE NEXT CHARACTER TO BE PUT INTO THE BUFFER 135 000303 0000 BATGET, 0 136 000304 0000 0 /IF LAST CHAR WAS THIS IS "JMP BATLF" 137 000305 7402 BATCAL, HLT /CIF CDF BATCH FIELD (ON EOF THIS IS "JMP BATBUF") 138 000306 1764 TAD I BATVFY 139 000307 1376 TAD (-2214 /VERIFY MAGIC LOCATION IN BATCH 140 000310 7440 SZA /AGAINST EQUALLY MAGIC CONTENTS 141 000311 6203 CDF CIF 0 142 000312 7640 SZA CLA 143 000313 5301 JMP BATER2 /BATCH IS DESTROYED! 144 000314 6201 CDF /WE ARE IN FIELD ZERO 145 000315 4763 JMS I BATINN /CALL THE BATCH INPUT ROUTINE 146 000316 5355 JMP BATEOF /NO SKIP = END OF FILE 147 000317 3276 DCA BATCHR /SAVE CHARACTER RETURNED 148 000320 1276 TAD BATCHR 149 000321 1366 TAD BMCR /CARRIAGE RETURN? 150 000322 7450 SNA 151 000323 5337 JMP BATCR /YES 152 000324 1367 TAD BCRMLF /LINE FEED? 153 000325 7450 SNA 154 000326 5305 JMP BATCAL /YES - IGNORE IT 155 000327 1370 TAD BLFMDO /DOLLAR SIGN? 156 000330 7650 SNA CLA 157 000331 5346 JMP BATDO /YES 158 000332 3371 BATGEX, DCA BCRFLG /NO SPECIAL CHAR 159 000333 1276 TAD BATCHR /RETURN WITH CHAR IN AC 160 000334 7402 BATBUF, HLT /CDF USER BUFFER 161 000335 5703 JMP I BATGET /RETURN 162 163 000336 5343 BLFJMP, JMP BATLF 164 000337 1336 BATCR, TAD BLFJMP /SET NEXT CALL TO RETURN 165 000340 3304 DCA BATGET+1 166 000341 7240 CLA CMA /SET TO INDICATE 167 000342 5332 JMP BATGEX 168 169 000343 3304 BATLF, DCA BATGET+1 /ZAP THE JMP TO HERE 170 000344 1365 TAD BLF /RETURN 171 000345 5334 BATGEJ, JMP BATBUF 172 173 000346 1371 BATDO, TAD BCRFLG /IS THE "$" FIRST ON THIS LINE? 174 000347 7650 SNA CLA 175 000350 5332 JMP BATGEX /NO - NOTHING SPECIAL 176 000351 1700 TAD I BA7777 /YES - SET FLAG SO THAT 177 000352 7012 RTR /THE BATCH INPUT ROUTINE 178 000353 7126 STL RTL /WILL PUT THE DOLLAR-SIGN BACK 179 000354 3700 DCA I BA7777 180 /RETURN CURRENT CHARACTER AGAIN 181 000355 1372 BATEOF, TAD BATCTZ /RETURN CTRL-Z THIS TIME 182 000356 3276 DCA BATCHR 183 000357 3271 DCA BATXIT-1 /SET HANDLER TO RETURN TO ERROR RETURN 184 000360 1345 TAD BATGEJ /SET BATGET TO RETURN ZEROES 185 000361 3305 DCA BATCAL 186 000362 5341 JMP BATCR+2 /AND FLAG NEW LINE FOR NEXT CALL 187 188 000363 5400 BATINN, BATIN /ENTRY ADDRESS OF BATCH INPUT ROUTINE 189 000364 5600 BATVFY, BATIN+200 190 000365 0212 BLF, 212 191 000366 7563 BMCR, -215 192 000367 0003 BCRMLF, 215-212 193 000370 7746 BLFMDO, 212-"$ 194 000371 7777 BCRFLG, -1 195 000372 0032 BATCTZ, 32 /CTRL-Z 196 197 000376 5564 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ 000377 7776 BA0070 0266 BA7400 0256 BA7700 0226 BA7777 0300 BAT 0200 BATBUF 0334 BATCA 0275 BATCAL 0305 BATCDF 0230 BATCHR 0276 BATCR 0337 BATCTZ 0372 BATDO 0346 BATEOF 0355 BATER1 0301 BATER2 0301 BATGEJ 0345 BATGET 0303 BATGEX 0332 BATIN 5400 BATINN 0363 BATISZ 0220 BATLF 0343 BATLP 0241 BATTM2 0276 BATTMP 0277 BATVER 0002 BATVFY 0364 BATWC 0274 BATXIT 0272 BCRFLG 0371 BCRMLF 0367 BLF 0365 BLFJMP 0336 BLFMDO 0370 BMCR 0366