1 /3.1 OS/8 V3 FOTP 5-AUGUST-1975 (NOT HALLOWEEN) 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 /WITH FAILSAFE CHANGES NOV 17, 1973 R.L. 46 47 48 / FOTP (FILE ORIENTED TRANSFER PROGRAM) H.J. 49 50 51 /CORE MAP 52 53 /FROM TOP OF CORE 54 55 / FIELD 2 GETS CONDITIONALLY USED AS BUFFER 56 57 / FIELD 1 58 / 7777-7600 MONITOR 59 / 7577-4600 INCORE OUTPUT DIRECTORY 60 / 4577-2000 FOTP CODE 61 / 1777-0 RESIDENT USR 62 / 63 / FIELD 0 64 / 7777-7600 MONITOR 65 / 7577-7200 ERROR MESSAGES 66 / 7177-0 WORK AREA AS: 67 / 68 / AT TOP- OUTPUT HANDLER IF NEEDED 69 / 1 OR 2 PAGES 70 71 / INPUT HANDLER IF NEEDED 72 / 1 OR 2 PAGES 73 74 / INPUT DEVICES DIRECTORY 75 / (ONLY USED PORTION) 76 77 / THE TRANSFER BUFFER IN 8K 78 / IS WHAT EVER REMAINS. 79 80 /FIXES FOR MAINTENANCE RELEASE: (S.R. 5-AUG-75) 81 82 /1. CHANGED COPYRIGHT DATE 83 /2. INCORPORATED SEQ #1 PATCH (DSN MARCH 1975) 84 / PERMITS FOTP TO RECOVER FROM A MONITOR ERROR 6 85 / BY UNFAKING THE SYSTEM HANDLER 86 /3. UPDATED FOTP VERSION NUMBER TO V8 87 /4. ADDED SPACE FOR A PATCH LEVEL 88 /5. ALLOWED /T SWITCH TO WORK IN CONJUNCTION WITH /R 89 /6. PERMITS RENAMING A FILE TO IT'S OWN NAME 90 /7. IF NO OUTPUT DEVICE IS SPECIFIED WITH /R, 91 / ASSUME OUT DEV=INPUT DEVICE. 92 93 /8. FIXED BUG RE ADDITIONAL INFO WORDS 94 /PAGE 0 LOCATIONS OS/8 USR WON'T MANGLE 95 96 PTR=20 97 CNT=21 98 INFPTR=22 99 OUHAND=23 100 INHAND=24 101 FPAGE=25 102 EPTR=26 103 INSCNT=27 104 TEMP=30 105 OKFLAG=31 106 IFCNT=32 107 BUFSIZ=33 108 INFWDS=34 109 BDPTR=35 110 GPTR1=36 111 INEOF=37 112 113 /AUTO INDEX REGISTERS USR WILL ALLOW ME TO USE TEMPORARILY 114 115 XR=10 116 XR1=11 117 XR2=12 118 119 120 /VARIOUS CONSTANTS THAT CAN BE GENERATED 121 122 AC2=CLA CLL CML RTL 123 AC4000=CLA CLL CML RAR 124 ACM2=CLA CLL CMA RAL 125 ACM3=CLA CLL CMA RTL 126 127 / LOCATIONS REFERENCED IN OS/8 128 129 ALTOPT=7642 130 OPT1=7643 131 OPT2=7644 132 DATE=7666 133 DIRKEY=7 /"DIRECTORY SEGMENT IN CORE" KEY 134 135 /SYMBOLIC FOTP LOCATIONS: 136 137 OUBUFR= 4600 /OUTPUT BUFFER - IN FIELD 1 138 INBUFR= 0 /INPUT BUFFER - IN FIELD 0 139 LSTFPG= 7000 /FIRST LOC OF LAST FREE PAGE IN FIELD 0 140 FAKHND= 200 /LOCATION OF OS/8 FAKEOUT HANDLER 141 VERSION= 11 /VERSION NUMBER 142 SUBVER= 01 /SUB VERSION (PATCH LEVEL) 143 /LOCATED AT "VERLOC" AS 60+VERSION^100+SUBVER 144 /STARTS AT 4600 IN FIELD 1 (ONCE ONLY CODE) 145 146 /SAVE INFO: 147 148 / .LOAD FOTP(89P) 149 / .SAVE SYS FOTP;14600 150 151 FIELD 1 152 *2000 153 154 012000 4777 CDCALL, JMS I (200 /SEE WHAT THE PERSON WANTS 155 012001 0005 FIVE, 5 156 012002 5200 STAR, 5200 /IN SPECIAL MODE 157 158 012003 4776 BYPSCD, JMS I (INTERC /CATCH CALLS TO 7600 159 160 012004 1775 TAD I (7600 /SAVE USER OUTPUT DEVICE 161 012005 3774 DCA I (USEROD /-FOR LATER 162 163 164 / CHECK FOR ? IN OUTPUT SPECIFICATION 165 012006 1373 TAD (-10 /8CHARACTERS TO LOOK AT 166 012007 3021 DCA CNT /CNT HAVING -10 PUTS US AT FIRST CHAR 167 012010 1372 S1C, TAD (7605 168 012011 4771 JMS I (GTSXBT /GET A CHAR 169 012012 1370 TAD (-"?!7700 /CHECK FOR ? 170 012013 7650 SNA CLA 171 012014 5324 JMP QINO /? IN OUTPUT NOT ALLOWED 172 012015 2021 ISZ CNT 173 012016 5210 JMP S1C 174 175 / CHECK FOR EMBEDDED * IN ANY SPECIFICATION 176 177 012017 1372 TAD (7605 178 012020 3020 S4L, DCA PTR 179 012021 1373 TAD (-10 180 012022 3021 DCA CNT 181 012023 1020 ACK, TAD PTR 182 012024 4771 JMS I (GTSXBT 183 012025 1367 TAD (-"*!7700 /CHECK TO SEE IF CHARACTER * 184 012026 7640 SZA CLA /SKIP IF IT IS 185 012027 5242 JMP CNTUP /GO LOOK AT NEXT 186 012030 7326 AC2 187 012031 1021 TAD CNT /ARE WE AT EXTENSION 188 012032 7440 SZA /SKIP IF YES 189 012033 1366 TAD (6 /ARE WE AT START OF FILENAME? 190 012034 7650 SNA CLA /SKIP IF NOT 191 012035 2021 ISZ CNT /BUMP COUNT ONLY IF OK 192 012036 1020 TAD PTR /LOOK AT NEXT CHAR 193 012037 4771 JMS I (GTSXBT 194 012040 7640 SZA CLA /SKIP IF ITS NULL - OK 195 012041 5322 JMP AINO /ERROR 196 012042 2021 CNTUP, ISZ CNT /BUMP TO NEXT CHAR 197 012043 5223 JMP ACK /CONTINUE CHECKING 198 012044 1420 TAD I PTR /ANY MORE INPUT 199 012045 7650 SNA CLA /SKIP IF THERE IS 200 012046 5252 JMP NULLCK 201 012047 1201 TAD FIVE /BUMP TO NEXT ENTRY 202 012050 1020 TAD PTR 203 012051 5220 JMP S4L 204 / CHECK FOR NULL OUTPUT SPECIFICATION AND MAKE *.* 205 206 012052 1765 NULLCK, TAD I (7601 /WAS OUTPUT FILENAME GIVEN? 207 012053 7640 SZA CLA /SKIP IF NONE 208 012054 5261 JMP DIDEML 209 012055 1202 TAD STAR /PUT AN ASTERISK IN 210 012056 3765 DCA I (7601 /FILENAME 211 012057 1202 TAD STAR 212 012060 3764 DCA I (7604 /AND EXTENSION 213 214 /THIS CODE SETS A DEFAULT OUTPUT DEVICE ON DELETE 215 216 012061 1775 DIDEML, TAD I (7600 /IS AN OUTPUT DEVICE SPECIFIED? 217 012062 7440 SZA /SKIP IF NOT 218 012063 5274 JMP ODSPEC /NOTE DEVICE NUMBER IN AC 219 012064 1763 TAD I (OPT1 /CHECK FOR /D 220 012065 0362 AND (400 221 012066 7640 SZA CLA /SKIP IF NOT /D 222 012067 5273 JMP MOV /OUTPUT=INPUT 223 012070 1761 TAD I (OPT2 /V3C 224 012071 0360 AND (100 /CHECK FOR /R 225 012072 7640 SZA CLA /V3C 226 012073 1772 MOV, TAD I (7605 /WE'LL SUBSTITUTE FIRST INPUT DEVICE FOR USER 227 012074 0357 ODSPEC, AND (17 /CLEAR USER SPECIFIED LENGTH 228 012075 3775 DCA I (7600 /WE KNOW BETTER 229 230 /THE FOLLOWING BRINGS IN THE OUTPUT DEVICE HANDLER, 231 /READS THE DIRECTORY INTO CORE AND VERIFIES IT. 232 233 012076 1356 TAD (LSTFPG /SET THE FREE SPACE POINTER 234 012077 3025 DCA FPAGE /TO THE LAST FREE PAGE IN FIELD 0 235 012100 1775 TAD I (7600 /IS THERE AN OUTPUT DEVICE? 236 012101 7440 SZA /IF NO OUTPUT, DON'T FETCH HANDLER 237 012102 4755 JMS I (ASSIGN /GET THE HANDLER AND ALLOCATE ITS SPACE 238 012103 3023 DCA OUHAND /AC RETURNS HANDLER ENTRY POINT 239 012104 4754 JMS I (ODIRIN /READ IN THE OUTPUT DIRECTORY 240 012105 1372 TAD (7605 /INGIALIZE INPUT POINTER 241 242 /THIS IS THE BEGINING OF THE INPUT FILE LOOP 243 244 012106 3022 DOMOIN, DCA INFPTR /POINTER TO CURRENT INPUT 245 012107 1422 TAD I INFPTR /WHEN 0 NO MORE INPUT 246 012110 7450 SNA /SKIP IF MORE TO DO 247 012111 5753 JMP I (ENDCHK /DO END PROCESSING 248 012112 4755 JMS I (ASSIGN /ASSIGN AND ALLOCATE SPACE FOR INPUT HANDLER 249 012113 3024 DCA INHAND /AND SAVE ITS ENTRY ADDRESS 250 251 /THE FOLLOWING 2 INSTRUCTIONS HELP AVOID ALL KINDS OF 252 /PROBLEMS WITH THE MONITOR. IF A HANDLER GETS LOADED, THE 253 /MONITOR MAKES IT RESIDENT FOR OTHER PEOPLE AND DOESN'T DELETE 254 /ITS RESIDENT STATUS IF A REQUEST IS MADE FOR A NEW HANDLER 255 /TO BE LOADED OVER IT IF THE NEW HANDLER IS ALREADY RESIDENT 256 257 012114 1025 TAD FPAGE /SAVE FREE SPACE POINTER HERE 258 012115 3317 DCA SFUDG 259 012116 5752 JMP I (PG1 /LINK TO NEXT SECTION 260 261 012117 0000 SFUDG, 0 262 012120 4751 ONDERR, JMS I (ERROR 263 012121 7320 ODRERR+40 /ERROR READING OUT DIR 264 012122 4751 AINO, JMS I (ERROR 265 012123 7246 ILLA+40 /ILLEGAL * 266 012124 4751 QINO, JMS I (ERROR 267 012125 7240 ILLQ+40 /ILLEGAL ? 268 269 012151 3711 PAGE 012152 2200 012153 3506 012154 4303 012155 3200 012156 7000 012157 0017 012160 0100 012161 7644 012162 0400 012163 7643 012164 7604 012165 7601 012166 0006 012167 7726 012170 7701 012171 3230 012172 7605 012173 7770 012174 4122 012175 7600 012176 3641 012177 0200 270 /CHECK FOR NON FILE STRUCTURED INPUT 271 /WE CAN'T HANDLE IT 272 273 012200 1422 PG1, TAD I INFPTR 274 012201 1377 TAD (7757 275 012202 3030 DCA TEMP 276 012203 1430 TAD I TEMP /IS FILE STRUCTURED BIT ON 277 012204 7700 SMA CLA /SKIP IF IT IS 278 012205 5350 JMP NFIN /ERROR 279 012206 6202 CIF 0 280 012207 4424 JMS I INHAND /READ INPUT DEVICES DIRECTORY 281 012210 1400 1400 282 012211 0000 IDBUF, INBUFR 283 012212 0001 1 284 012213 5352 JMP INDERR /ERROR 285 012214 6201 CDF 0 286 012215 1611 TAD I IDBUF /MAKE SURE THAT THE 287 012216 7140 CMA CLL /DIRECTORY OF 288 012217 1776 TAD I (INBUFR+2 /THE DEVICE IS 289 012220 6211 CDF 10 /GOOD 290 012221 7420 SNL 291 012222 1375 TAD (7700 /(SEE COMMENT ON TEST IN ROUTINE "ODIRIN") 292 012223 7630 SZL CLA /SKIP IF ITS GOOD 293 012224 5354 JMP BIDIR /ERROR 294 295 /FIND LAST BLOCK OF DIRECTORY 296 297 012225 7326 AC2 /LINK TO NEXT SGMENT NUMBER 298 012226 3020 FNDLST, DCA PTR /SAVE IT 299 012227 6201 CDF 0 300 012230 1420 TAD I PTR /IS THERE ANOTHER SEGMENT? 301 012231 7650 SNA CLA /SKIP IF YES 302 012232 5236 JMP ATIT /NO...WE ARE POINTING TO LAST 303 012233 1020 TAD PTR /BUMP TO NEXT SEGMENT 304 012234 1374 TAD (400 305 012235 5226 JMP FNDLST /LOOK AGAIN 306 012236 7346 ATIT, ACM3 /AC=7775 307 012237 0020 AND PTR /AND OUT 2'S BIT 308 012240 1374 TAD (400 /TOTAL SIZE OF IN CORE DIRECTRY 309 012241 7041 CIA /NEGATE FOR ISZ 310 012242 3021 DCA CNT 311 012243 1025 TAD FPAGE /WE ARE GOING TO PACK DIRECTORY 312 012244 1373 TAD (200 /RIGHT UP TO INPUT HANDLER SO 313 012245 1021 TAD CNT /WE GET MAX SIZE TRANSFER BUFFER 314 012246 3025 DCA FPAGE /ADJUSTED FREE CORE POINTER 315 012247 7040 CMA 316 012250 1025 TAD FPAGE 317 012251 3011 DCA XR1 /SET UP PLACE TO MOVE TO 318 012252 7040 CMA 319 012253 3012 DCA XR2 /ALWAYS COMES FROM 0 320 012254 1412 TAD I XR2 /MOVE 321 012255 3411 DCA I XR1 /IT 322 012256 2021 ISZ CNT 323 012257 5254 JMP .-3 324 /SET SAME DEVICE FLAG FLAG 4000 IF /D 325 326 012260 6211 CDF 10 327 012261 1772 TAD I (OPT1 328 012262 0374 AND (400 329 012263 7106 RTL CLL /PUT /D BIT INTO AC 0 330 012264 7004 RAL 331 012265 3347 DCA SDFLG 332 333 334 / COUNT NUMBER OF INPUTS FROM SAME DEVICE 335 /ALSO MAKE NULL INPUT FILENAMES *.* 336 /BUT ONLY IF NOT /D 337 338 012266 1022 TAD INFPTR /OK LETS GO THROUGH 339 012267 3020 DCA PTR /THE INPUT SPECIFICATIONS 340 012270 2020 GETCNT, ISZ PTR /POINT TO FILENAME WORD 341 012271 1371 TAD (3 /SET TEMP TO POINT TO EXTENSION 342 012272 1020 TAD PTR 343 012273 3030 DCA TEMP 344 012274 1347 TAD SDFLG /ARE WE DOING /D 345 012275 7450 K7450, SNA /SKIP IF YES - AC NON 0 346 012276 1420 TAD I PTR /NO /D - LOOK AT FILENAME 347 012277 7640 SZA CLA /ITS NULL PUT IN *.* 348 012300 5305 JMP NOSUB /DONT CHANGE IT 349 012301 1370 TAD (5200 /MAKE IT * 350 012302 3420 DCA I PTR 351 012303 1370 TAD (5200 /.* 352 012304 3430 DCA I TEMP 353 012305 7201 NOSUB, CLA IAC /TEMP+1 POINTS TO NEW INPUT 354 012306 1030 TAD TEMP 355 012307 3020 DCA PTR 356 /NOTE CNT WAS SET BY ISZ'ING TO ZERO 357 012310 2021 ISZ CNT /KEEP COUNT OF DEVICES IN GROUP 358 012311 1767 TAD I (OPT2 /CHECK FOR /U (UGLY SWITCH) 359 012312 0366 AND (10 360 012313 7640 SZA CLA /SKIP IN NO /U 361 012314 5322 JMP NOPTIM /WERE FORCED TO DO ONE AT A TIME 362 012315 1420 TAD I PTR /COMPARE DEVICE NUMBERS 363 012316 7041 CIA /IN A GROUPING 364 012317 1422 TAD I INFPTR 365 012320 7650 SNA CLA /SKIP IF NEW GROUP 366 012321 5270 JMP GETCNT /WE'LL DO ALL THE SAME AT ONCE 367 012322 1021 NOPTIM, TAD CNT 368 012323 7041 CIA /NEGATE COUNT 369 012324 3027 DCA INSCNT /AS NUMBER OF INPUTS TO DO AT ONCE 370 012325 1020 TAD PTR /SAVE WHERE TO CONTINUE FOR REST 371 012326 3765 DCA I (MOIN 372 /THE FOLLOWING CHECKS TO SEE IF A OPERATION 373 /IS BEING DONE FROM A DEVICE TO ITSELF 374 375 012327 1764 TAD I (7600 /GET DEVICE NUMBER 376 012330 1363 TAD (7646 /HANDLER ENTRY POINT TABLE 377 012331 3030 DCA TEMP 378 012332 1422 TAD I INFPTR /GET INPUT ENTRY POINT 379 012333 1363 TAD (7646 380 012334 3020 DCA PTR 381 012335 1420 TAD I PTR /CHECK INPUT ENTRY POINT AGAINST 382 012336 7041 CIA 383 012337 1430 TAD I TEMP /OUTPUT ENRTY POINT 384 012340 7650 SNA CLA /SKIP IF THEY ARE DIFFERENT 385 012341 2347 ISZ SDFLG /SET SAME DEVICE FLAG, AC11 386 012342 1025 TAD FPAGE /SET POINTER TO 387 012343 3035 DCA BDPTR /START OF DIRECTORY 388 012344 3346 DCA TYPFND /CLEAR FOUND FILE FLAG 389 012345 5762 JMP I (NBLOCK /LINK TO SOME MORE 390 391 012346 0000 TYPFND, 0 392 012347 0000 SDFLG, 0 /NEGATIVE MEANS /D, ODD MEANS OUTPUT DEV=INPUT DEV 393 394 012350 4761 NFIN, JMS I (ERROR 395 012351 7433 NFLEIN+40 /NON FILE STRUCTED INPUT 396 012352 4761 INDERR, JMS I (ERROR 397 012353 7300 BADIRD+40 /ERROR READING INPUT DIR 398 012354 4761 BIDIR, JMS I (ERROR 399 012355 7472 BIDIRM+40 /NOT A GOOD DIRECTORY 400 401 012361 3711 PAGE 012362 2400 012363 7646 012364 7600 012365 4123 012366 0010 012367 7644 012370 5200 012371 0003 012372 7643 012373 0200 012374 0400 012375 7700 012376 0002 012377 7757 402 /THIS IS THE SUPERQUASIFACETED DIRECTORY PATTERN MATCHING ROUTINE 403 404 /THE INPUT DIRECTORY IS SEARCHED HERE, IF A MATCH 405 /IS FOUND USING THE INPUT GROUPING 406 /GOT1 GETS CONTROL WITH -BLOCKS IN THE AC 407 408 012400 7240 NBLOCK, STA 409 012401 1035 TAD BDPTR /POINTER TO START OF DIR BLOCK 410 012402 3010 DCA XR 411 012403 6201 CDF 0 412 012404 1410 TAD I XR /GET COUNT OF NUMBER OF ENTRIES 413 012405 3352 DCA ENTCNT /SAVE LOCALLY TO AVOID HERB'S BUG 414 012406 1410 TAD I XR /GET BLOCK NUMBER FIRST FILE 415 012407 3350 DCA BLOCK 416 012410 1410 TAD I XR /NEXT SEGMENT NUMBER 417 012411 3346 DCA LFLAG /IF IT 0 WE AT END 418 012412 2010 ISZ XR /SKIP TENTATIVE FILE WORD 419 012413 1410 TAD I XR /GET -NUMBER OF INFO WORDS 420 012414 7041 CIA /MAKE POSITVE 421 012415 3034 DCA INFWDS 422 012416 1010 TAD XR /POINT TO FIRST 423 012417 7001 IAC /ENTRY 424 012420 3026 DCA EPTR 425 426 012421 1426 BLOOP, TAD I EPTR /GET FILENAME WORD 427 012422 6211 CDF 10 428 012423 7650 SNA CLA /SKIP IF FILE HERE 429 012424 5313 JMP EMPTY /NO... ITS REALLY AN EMPTY 430 012425 1027 TAD INSCNT /SET NUMBER OF INPUT TO LOOK 431 012426 3347 DCA NCNT /AT ALL AT ONCE 432 012427 3351 DCA MATFLG /CLEAR MATCH FLAG 433 012430 1022 TAD INFPTR /ADDRESS OF FIRST INPUT 434 012431 7410 SKP 435 012432 1345 MN1, TAD GPTR2 /ADDRESS OF CURRENT INPUT 436 012433 1377 TAD (5 /GTSXBT SUBR REQUIRES US TO 437 012434 3345 DCA GPTR2 /POINT TO END OF FIELD 438 012435 1026 TAD EPTR /POINT DIRECTORY POINTER TO 439 012436 1376 TAD (4 /END OF ENTRY FOR SAME REASON 440 012437 3036 DCA GPTR1 441 012440 1036 TAD GPTR1 /SET EPNEXT TO POINT TO 442 012441 1034 TAD INFWDS /MINUS NUMBER OF BLOCKS IN 443 012442 3344 DCA EPNEXT /FILE WORD 444 012443 1375 TAD (-10 /NUMBER OF CHARS TO LOOK AT 445 012444 3021 WILDNM, DCA CNT 446 012445 1345 MLP, TAD GPTR2 /OK - GET A CHARACTER FROM 447 012446 4774 JMS I (GTSXBT /STRING 448 012447 1373 TAD (-"*!7700 /IS IT AN * 449 012450 7450 SNA /SKIP IF NOT * 450 012451 5336 JMP WILDA /YEP... ITS A WILD CARD 451 012452 1372 TAD ("*-"? /IS IT A ? 452 012453 7450 SNA /SKIP IF NOT 453 012454 5267 JMP WILD /YES... FORCE MATCH ON THIS CHAR 454 012455 1371 TAD ("?&77 /RESTORE VALUE 455 012456 7041 CIA /NEGATE 456 012457 3343 DCA CHAR /AND SAVE 457 012460 1036 TAD GPTR1 /NOW GET CHAR FROM DIRECTORY 458 012461 6201 CDF 0 459 012462 4774 JMS I (GTSXBT 460 012463 6211 CDF 10 461 012464 1343 TAD CHAR /DO CHARS MATCH 462 012465 7640 SZA CLA /SKIP IF THEY DO 463 012466 5272 JMP NM1 /NO MATCH ON THIS INPUT 464 012467 2021 WILD, ISZ CNT /BUMP COUNT OF CHARS & POINTER 465 012470 5245 JMP MLP /COMPARE ALL 8 466 012471 2351 MEXT, ISZ MATFLG /A MATCH!!!!!!! 467 012472 7200 NM1, CLA /WILD CARD COMES HERE WITH ICHY AC 468 012473 2347 ISZ NCNT /HAVE WE CHECKED GROUP OF INPUTS 469 012474 5232 JMP MN1 /NO CHECK WHOLE GROUP 470 012475 1351 TAD MATFLG /HAVE THERE BEEN ANY MATCHES 471 012476 7640 SZA CLA /SKIP IF NOT 472 012477 1376 TAD (4 /WILL INVERT /V SWITCH 473 012500 1770 TAD I (OPT2 /ADD SWITCH 474 012501 0376 AND (4 /ISOLATE IT 475 012502 6201 CDF 0 476 /SKIPS IF INPUT DIRECTORY ENTRY IS NOT CANDIDATE 477 /THAT IS - IF A MATCH WAS NOT FOUND BETWEEN ANY 478 /OF THE INPUTS AND /V WAS NOT SPECIFIED OR 479 /A MATCH WAS FOUND AND /V WAS SPECIFIED 480 481 /THIS ALLOWS /V TO MEAN EVERYTHING BUT... 482 483 012503 7640 SZA CLA 484 012504 1744 TAD I EPNEXT /GET -NUMBER OF BLOCKS 485 012505 6211 CDF 10 486 012506 7440 SZA /SKIPS IF TENTATIVE OR NOT CANDIDATE 487 012507 5767 JMP I (GOT1 /PROCESS FILE 488 012510 1344 NENT, TAD EPNEXT /POINT EPTR TO BLOCK 489 012511 3026 DCA EPTR /COUNT OF FILE 490 012512 7410 SKP 491 012513 2026 EMPTY, ISZ EPTR /ON EMPTY MAKE EPTR POINT TO BLOCK COUNT 492 012514 6201 CDF 0 493 012515 1426 TAD I EPTR /GET BLOCK COUNT 494 012516 7041 CIA /MAKE POSITIVE 495 012517 1350 TAD BLOCK 496 012520 3350 DCA BLOCK /KEEP SUM 497 012521 2026 ISZ EPTR /POINT TO NEXT ENTRY 498 012522 2352 ISZ ENTCNT /BUMP THE NUMBER OF ENTRIES 499 012523 5221 JMP BLOOP /NOT DONE WITH SEGMENT 500 012524 6211 CDF 10 501 012525 1366 TAD (400 /BUMP TO NEXT SEGMENT 502 012526 1035 TAD BDPTR 503 012527 3035 DCA BDPTR 504 012530 1346 TAD LFLAG /DID WE PROCESS LAST SEGMENT 505 012531 7640 SZA CLA /SKIP IF WE DID 506 012532 5200 JMP NBLOCK /PROCESS NEW SEGNENT 507 012533 1765 TAD I (SFUDG /RESET FREE CORE POINTER 508 012534 3025 DCA FPAGE /TO PRESERVE INPUT HANDLER IF PRESENT 509 012535 5764 JMP I (SAYNON 510 511 /HANDLE WILD CARDS 512 513 012536 1021 WILDA, TAD CNT /GET CURRENT CHAR POSITION 514 012537 1363 TAD (6 /ADD SIZE OF FILENAME 515 012540 7510 SPA /SKIP IF IN EXTENSION FIELD 516 012541 5244 JMP WILDNM /THIS BUMPS TO EXTENSION 517 012542 5271 JMP MEXT /THIS MEANS IT HAS TO BE A MATCH 518 519 520 012543 0000 CHAR, 0 521 012544 0000 EPNEXT, 0 522 012545 0000 GPTR2, 0 523 012546 0000 LFLAG, 0 524 012547 0000 NCNT, 0 525 012550 0000 BLOCK, 0 526 012551 0000 MATFLG, 0 527 012552 0000 ENTCNT, 0 528 529 530 012563 0006 PAGE 012564 4043 012565 2117 012566 0400 012567 2600 012570 7644 012571 0077 012572 7753 012573 7726 012574 3230 012575 7770 012576 0004 012577 0005 531 012600 3032 GOT1, DCA IFCNT /-# OF BLOCKS IN AC 532 012601 4777 JMS I (DATCHK /VERIFY IF /C OR /O ALSO MATCH 533 012602 2776 ISZ I (TYPFND /COMES BACK IF THEY DO - 534 /TURN OFF NO FILES MSG FOR THIS INPUT GROUP 535 012603 1775 TAD I (OPT2 /CHECK FOR /T 536 012604 0374 AND (20 537 012605 7650 SNA CLA /SKIP IF /T 538 012606 1034 TAD INFWDS /SEE IF DATE PRESENT 539 012607 6201 CDF 0 540 012610 7640 SZA CLA /SKIP IF NO DATE OR /T 541 012611 1436 TAD I GPTR1 542 012612 6211 CDF 10 543 012613 7440 SZA /SKIP IF NO DATE OR /T 544 012614 3773 DCA I (DATE /GIVE MONITOR FILES DATE 545 012615 1372 TAD (-4 /MAKE 2 COPIES 546 012616 3021 DCA CNT /OF THE INPUT 547 012617 7040 CMA /FILE NAME IN 548 012620 1026 TAD EPTR /FIELD 1 TO 549 012621 3010 DCA XR /WORK WITH THEM 550 012622 1371 TAD (SPOT-1 /MAKE THEM AT SPOT 551 012623 3011 DCA XR1 /AND SPOT1 552 012624 1370 TAD (SPOT1 /SPOT1 WILL ALWAYS 553 012625 3020 DCA PTR /CONTAIN THE ORIGINAL 554 012626 6201 MOVENT, CDF 0 /AND SPOT WILL 555 012627 1410 TAD I XR /CONTAIN THE 556 012630 6211 CDF 10 /UPDATED VERSION AS 557 012631 3420 DCA I PTR /REFLECTED FROM 558 012632 1420 TAD I PTR /THE OUTPUT SPECIFICATION 559 012633 2020 ISZ PTR /- 560 012634 3411 DCA I XR1 /- 561 012635 2021 ISZ CNT /- 562 012636 5226 JMP MOVENT /- 563 012637 1767 TAD I (7601 /GET OUTPUT FILENAME 564 012640 1366 TAD (-5200 /WAS IT * 565 012641 7650 SNA CLA /SKIP IF NOT 566 012642 5251 JMP TSTEXT /YES... LEAVE FILENAME ALONE 567 012643 1767 TAD I (7601 /REPLACE INPUT NAME 568 012644 3765 DCA I (SPOT /WITH GIVEN 569 012645 1764 TAD I (7602 /OUTPUT 570 012646 3763 DCA I (SPOT+1 /SPECIFICATION 571 012647 1762 TAD I (7603 572 012650 3761 DCA I (SPOT+2 /- 573 012651 1760 TSTEXT, TAD I (7604 /SEE IF EXTENSION 574 012652 1366 TAD (-5200 /WAS * 575 012653 7650 SNA CLA /SKIP IF IT WASNT 576 012654 5257 JMP .+3 /LEAVE INPUT DEFAULT ALONE 577 012655 1760 TAD I (7604 /REPLCE EXTENSION 578 012656 3757 DCA I (SPOT+3 /WITH GIVEN EXTENSION 579 012657 3335 DCA TRFLG /CLEAR THE TRANSFER FLAG 580 012660 1775 TAD I (OPT2 /IS /R ON? 581 012661 0356 AND (100 582 012662 1755 TAD I (SDFLG /OR /D OR INPUT DEV=OUTPUT DEV? 583 012663 7450 SNA /SKIP IF ANY 584 012664 5302 JMP SETGD /WE ARE DEFINITELY OK 585 012665 7700 SMA CLA /IF /D THEN CHECK OUTPUT 586 012666 1354 TAD (SPOT1-SPOT /OTHERWISE INPUT 587 012667 4753 JMS I (LOOKUP 588 012670 5303 JMP NSETGD /NO OUTPUT FILE GIVEN 589 012671 7450 SNA /AC=BLOCK NO OF FILE OR 0 IF NONE 590 012672 5752 JMP I (NENT /NO FILE - DO NOTHING 591 012673 3030 DCA TEMP /SAVE - WE MIGHT NEED IT 592 012674 1755 TAD I (SDFLG /IF OPERATION IS TRANSFER THEN 593 /TRFLG IS SET IF FILE HAS NOT 594 /MOVED; IF /D TRFLG MUST NOT BE 595 /SET ; WE DONT CARE ABOUT 596 /RENAME - ITS IRRELEVANT. 597 012675 7700 SMA CLA /SKIP IF /D- WILL CAUSE TRFLG=0 598 012676 1030 TAD TEMP /GET THE BLOCK FILE IS NOW AT 599 012677 7041 CIA /CHECK AGAINST ORIGINAL 600 012700 1751 TAD I (BLOCK /LOCATION 601 012701 7650 SNA CLA /SKIP IF IT MOVED - NOTE THAT 602 /IF THIS SKIPS THE USER IS DOING 603 /A PLAY WITH DEATH OPERATION 604 012702 2335 SETGD, ISZ TRFLG /ENABLE TRANSFERING OF THE FILE 605 012703 1755 NSETGD, TAD I (SDFLG /SET UP TO PROMPT OR LIST 606 012704 7710 SPA CLA /SKIP IF NOT /D 607 012705 1372 TAD (SPOT-SPOT1 /USE OUTPUT NAME 608 012706 1350 TAD (SPOT1+4 /USE INPUT NAME 609 012707 4747 JMS I (PRINTE /SEE IF HE WANTS TO BE PROMPTED 610 012710 1775 FLSRSM, TAD I (OPT2 611 012711 7006 RTL /PUT /N INTO LINK 612 012712 0346 AND (400 /ISOLATE /R OPTION 613 012713 7640 SZA CLA /SKIP IF NOT /R 614 012714 5745 JMP I (RENAME /GO TO RENAME CODE 615 012715 1755 TAD I (SDFLG /CHECK FOR NO /D AND SAME DEV 616 012716 7750 SPA SNA CLA /SKIP IF NO /D AND SANE DEV 617 012717 1744 TAD I (7600 /IS THERE AN OUTPUT? 618 012720 7470 SNA SZL /SKIP IF NO /N AND OUTPUT DEV 619 /DIDNT SKIP IF NO /D AND SAME DEVICE 620 012721 5332 JMP NODEL /DONT DELETE 621 012722 4743 JMS I (FAKUSR /FAKE USR HANDLER CALLS 622 012723 4742 JMS I (200 /CALL USR 623 012724 0004 4 /CLOSE 624 012725 4255 SPOT /OUTPUT FILE NAME 625 012726 0000 0 626 012727 7610 CLA SKP /O.K. TO GET CLOSE ERROR NOW 627 012730 2741 ISZ I (WRTDIR /SIGNAL CHANGE MADE TO DIRECTRY 628 012731 4740 JMS I (UNFAK /FIXUP HANDLER ADDRESS AGAIN 629 012732 7200 NODEL, CLA 630 012733 1335 TAD TRFLG /SET AC NOT 0 IF TRANSFER GO AHEAD 631 012734 5737 JMP I (NPG /LINK TO SOME MORE 632 633 012735 0000 TRFLG, 0 634 635 636 012737 3000 PAGE 012740 3461 012741 3531 012742 0200 012743 3433 012744 7600 012745 4420 012746 0400 012747 4200 012750 4265 012751 2550 012752 2510 012753 4400 012754 0004 012755 2347 012756 0100 012757 4260 012760 7604 012761 4257 012762 7603 012763 4256 012764 7602 012765 4255 012766 2600 012767 7601 012770 4261 012771 4254 012772 7774 012773 7666 012774 0020 012775 7644 012776 2346 012777 3325 637 /THIS PAGE OF CODE PERFORMS FILE MOVES FROM 638 /INPUT TO OUTPUT 639 640 013000 7650 NPG, SNA CLA /SKIP IF WE CAN DO TRANSFER 641 013001 5350 JMP NFUNCT /GO PROCESS NEXT ENTRY 642 643 /THE FOLLOWING SMALL STRANGE PIECE OF CODE 644 /DYNAMICALLY ALLOCATES THE BUFFER ACCORDING 645 /TO THE FREE SPACE IN FIELD 0 (INCLUDING 646 /DIRECTORY SHRINKING) OR ALLOCATES 15 BLOCKS 647 /IN FIELD 2 IF ITS AVAILABLE. 648 649 013002 1377 F2C1, TAD (7400 /BECOMES TAD EPTR IF ONLY 8K 650 013003 0377 AND (7400 /CALCULATE FREE SPACE 651 013004 7104 RAL CLL /SIZE 652 013005 7006 RTL /AND SAVE 653 013006 7006 RTL /IT 654 013007 3033 DCA BUFSIZ 655 013010 1032 TAD IFCNT /SET THE OUTPUT 656 013011 7041 CIA /FILE COUNT 657 013012 3344 DCA OFCNT /AS POSITIVE NIMBER OF BLOCKS 658 013013 1344 TAD OFCNT /SET THE NUMBER 659 013014 0377 AND (7400 /OF BLOCKS 660 013015 7650 SNA CLA /UP FOR ENTER 661 013016 1344 TAD OFCNT /IF IT IS LESS 662 013017 7106 RTL CLL /THAN 256 OR 663 013020 7006 RTL /SET IT TO 0 664 013021 3030 DCA TEMP /FOR FILES GREATER THAN 256 665 013022 1376 TAD (SPOT /SET THE ADDRESS OF THE 666 013023 3241 DCA SBLKN /OUTPUT NAME 667 013024 1775 TAD I (7600 /IS THERE AN OUTPUT FILE? 668 013025 7450 SNA /SKIP IF THERE IS 669 013026 5350 JMP NFUNCT /DO NO TRANSFER 670 013027 1374 TAD (7757 /INDEX INTO TENTATIVE FILE 671 013030 3242 DCA MSIZE /TABLE IN ORDER TO 672 013031 1642 TAD I MSIZE /CLEAR OUT ANY 673 013032 0373 AND (7770 /TENTATIVE WE DONT WANT 674 013033 3642 DCA I MSIZE /THIS COMES IF AN I/O ERROR HIT 675 013034 1775 TAD I (7600 /DO THE ENTER 676 013035 4772 JMS I (FAKUSR /MAKE USR USE IN CORE HANDLER 677 013036 1030 TAD TEMP /ADD IN BLOCK COUNT 678 013037 4771 JMS I (200 679 013040 0003 3 /ENTER 680 013041 4255 SBLKN, SPOT 681 013042 0000 MSIZE, 0 682 013043 5770 JMP I (NOROOM /ENTER FAILED 683 013044 1767 TAD I (SVDATE /RESTORE REAL DATE TO MONITOR 684 013045 3766 DCA I (DATE 685 013046 4765 JMS I (UNFAK /REMOVE OUR FAKE HANDLER 686 013047 4764 JMS I (ADDINF /COPY ADDITIONAL INFO WORDS 687 013050 1032 TAD IFCNT /SEE IF ENTER SIZE 688 013051 7161 STL CIA /GIVEN BACK IS 689 013052 1242 TAD MSIZE /ENOUGH - HANDLES >255 AND 690 013053 7660 SNL SZA CLA /NON FILE STRUCTURED 691 013054 5770 JMP I (NOROOM /LENGTHS. NOT ENOUGH 692 013055 3037 DCA INEOF /CLEAR INPUT END OF FILE 693 013056 1241 TAD SBLKN /SET THE OUTPUT BLOCK NUMBER 694 013057 3327 DCA OBLCKN 695 013060 1763 TAD I (BLOCK /SET THE INPUT BLOCK NUMBER 696 013061 3307 DCA BLOCKN 697 698 /THE FOLLOWING PIECE OF CODE IS A TRICKY PIECE 699 /THAT CALCULATES THE NUMBER OF BLOCKS TO READ 700 701 013062 1032 MOVEIT, TAD IFCNT /GET THE NUMBER OF BLOCKS 702 013063 7100 CLL /ITS NEGATIVE 703 013064 1033 TAD BUFSIZ /ADD ON BUFFER SIZE 704 013065 7420 SNL /SKIP IF MORE ROOM AVAILABLE THAN NEEDED 705 013066 3032 DCA IFCNT /OTHERWISE RESAVE NEW COUNT 706 013067 7430 SZL /SKIP IF NOT AT END OF FILE 707 013070 2037 ISZ INEOF /SET END OF FILE INDICATOR 708 013071 7041 CIA /MAKES -BUFSIZ+COUNT 709 013072 1033 TAD BUFSIZ /MAKES COUNT OF NUMBER OF BLOCK 710 013073 7112 RTR CLL /BUILD THE 711 013074 7012 RTR /INPUT CONTROL 712 013075 7012 RTR /WORD 713 013076 1362 F2C2, TAD (20 /BECOMES NOP IF ONLY 8K 714 013077 3305 DCA INCTLW /SET INPUT CONTROL WORD 715 013100 4761 JMS I (CINTER /CHECK FOR ^C 716 013101 7410 SKP /SKIP IF NOT 717 013102 5760 JMP I (CTCDE /ABORT OPERATION 718 013103 6202 CIF 0 719 013104 4424 JMS I INHAND /READ INPUT HUNK 720 013105 0000 INCTLW, 0 721 013106 0000 0 722 013107 0000 BLOCKN, 0 723 013110 5757 JMP I (RDERR /WELL- SCRATCH THAT FILE 724 013111 1307 TAD BLOCKN /UPDATE BLOCK COUNT 725 013112 1033 TAD BUFSIZ 726 013113 3307 DCA BLOCKN 727 013114 7330 AC4000 /SET THE OUTPUT 728 013115 1305 TAD INCTLW /CONTROL WORD 729 013116 3325 DCA OUCTLW 730 013117 4761 JMS I (CINTER /CHECK FOR ^C 731 013120 7410 SKP /SKIP IF NOT 732 013121 5760 JMP I (CTCDE /ABORT OPERATION 733 013122 2756 ISZ I (MUSTWT /SIGNAL REAL OUTPUT DONE 734 013123 6202 CIF 0 735 013124 4423 JMS I OUHAND /WRITE A HUNK OF FILE 736 013125 0000 OUCTLW, 0 737 013126 0000 0 738 013127 0000 OBLCKN, 0 739 013130 5755 JMP I (WRTERR /WHAT A CRUMBY OUTPUT DEVICE 740 013131 1327 TAD OBLCKN /UPDATE THE 741 013132 1033 TAD BUFSIZ /OUTPUT FILE 742 013133 3327 DCA OBLCKN /BLOCK NUMBER 743 013134 1037 TAD INEOF /SEE IF THATS ALL FOLKS 744 013135 7650 SNA CLA /SKIP IF WE TRANSFERED FILE 745 013136 5262 JMP MOVEIT /DO SOME MORE 746 013137 1775 TAD I (7600 /OK - LETS MAKE IT PERMANENT 747 013140 4772 JMS I (FAKUSR /TELL USR TO USE INCORE HANDLER 748 013141 4771 JMS I (200 749 013142 0004 4 /CLOSE 750 013143 4255 SPOT 751 013144 0000 OFCNT, 0 752 013145 5754 JMP I (CLOERR /THIS IS IMPOSSIBLE (I HOPE) 753 013146 4765 JMS I (UNFAK /ENABLE SYSTEM USE OF REAL HANDLER 754 013147 2753 ISZ I (WRTDIR /SET WE CHANGED DIRECTORY FLAG 755 013150 5752 NFUNCT, JMP I (NENT /I KNOW ITS INEFFICIENT TO JUMP HERE 756 /BUT- IT'S CLEAN... 757 013152 2510 PAGE 013153 3531 013154 4251 013155 4034 013156 3527 013157 4023 013160 3476 013161 3624 013162 0020 013163 2550 013164 4502 013165 3461 013166 7666 013167 3530 013170 4265 013171 0200 013172 3433 013173 7770 013174 7757 013175 7600 013176 4255 013177 7400 758 /HERE COMES GOBBS AND GOBBS OF GOODY LITTLE ROUTINES 759 760 /FIRST WE HAVE A NICE LITTLE ROUTINE WHICH WILL DO 761 /HANDY LITTLE THINGS LIKE FETCH A HANDLER 762 /AND IN ADDITION ALLOCATE THE SPACE FOR IT. 763 /JUST IMAGINE THIS CAN BE YOURS FOR THE LOW LOW PRICE 764 /OF 23 INSTRUCTIONS 765 766 013200 0000 ASSIGN, 0 767 013201 3030 DCA TEMP /SAVE DEVICE NUMBER 768 013202 1030 TAD TEMP 769 013203 4777 JMS I (200 770 013204 0012 12 /INQUIRE ABOUT HANDLER 771 013205 0000 HADDR1, 0 772 013206 5776 JMP I (CLOERR /CANT HAPPEN (I HOPE) 773 013207 1205 TAD HADDR1 /DID WE GET BACK ADDRESS 774 013210 7440 SZA /SKIP IF NOT- NON-RESIDENT 775 013211 5600 JMP I ASSIGN /YES... RETURN ITS ENTRY POINT 776 013212 7410 SKP 777 013213 7001 TWOPAG, IAC /TURN ON 2-PAGE BIT 778 013214 1025 TAD FPAGE /GET FREE SPACE POINTER 779 013215 3224 DCA HADDR2 /SET FOR FETCH 780 013216 1025 TAD FPAGE /TAKE AWAY 781 013217 1375 TAD (-200 /PAGE FROM 782 013220 3025 DCA FPAGE /FREE SPACE 783 013221 1030 TAD TEMP /GET DEVICE NUMBER 784 013222 4777 JMS I (200 785 013223 0001 1 /FETCH 786 013224 0000 HADDR2, 0 787 013225 5213 JMP TWOPAG /FAILED- MUST BE 2-PAGER 788 013226 1224 TAD HADDR2 /RETURN ENTRY POINT ADDRESS 789 013227 5600 JMP I ASSIGN 790 /THIS UTILITY ROUTINE RETURNS A SIS BIT 791 /CHARACTER FROM ANY FIELD (SET ON ENTRY) 792 /FROM ADDRESS IN AC-COUNT(IN HALF WORDS) 793 794 013230 7402 GTSXBT, HLT 795 013231 7104 CLL RAL /DOUBLE POINTER ADDRESS 796 013232 1021 TAD CNT /ADD NEGATIVE DISPLACEMENT 797 013233 7030 CML RAR /GET WORD ADDRESS AGAIN 798 013234 3030 DCA TEMP /SAVE IT 799 013235 1430 TAD I TEMP /GET WORD 800 013236 7420 SNL /SKIP IF WE WANT RIGHT HALF 801 013237 4242 JMS ROTR6 /MAKE LEFT HALF RIGHT HALF 802 013240 0374 AND (77 /GET LOW SIX BITS 803 013241 5630 JMP I GTSXBT 804 805 806 013242 0000 ROTR6, 0 807 013243 7012 RTR 808 013244 7012 RTR 809 013245 7012 RTR 810 013246 5642 JMP I ROTR6 811 812 /THIS TAKES A SIX BIT CHAR IN AC AND CONVERTS 813 /IT TO ASCII TO TYPE IT 814 815 013247 7402 CONVTP, HLT 816 013250 7440 SZA /CONVERT 0 TO BLANKS 817 013251 1373 TAD (240 818 013252 0374 AND (77 819 013253 1373 TAD (240 820 013254 4772 JMS I (TYPE /TYPE IT 821 013255 5647 JMP I CONVTP 822 /TYPE TAKES A CHARACTER IN THE AC AND CALLS 823 /TTY TO TYPE IT IF ^O IS NOT IN AFFECT 824 /ALSO CHECKS FOR ^C AND ^P 825 826 013256 7402 TYPE, HLT 827 013257 3313 DCA READKB /SAVE CHARACTER 828 013260 4771 JMS I (CINTER /SEE IF ^C 829 013261 7410 SKP /NO 830 013262 5770 JMP I (CTCDE /ABORT OPERATION IF ^C OR ^P 831 013263 1367 TAD (217 /^O 832 013264 4766 JMS I (CTYPE /SEE IF TYPED 833 013265 7410 SKP /SKIP IF NOT 834 013266 3354 DCA ECHO /CLEAR ECHO SWITCH 835 013267 1354 TAD ECHO /IS ECHO IN EFFECT 836 013270 7650 SNA CLA /SKIP IF YES 837 013271 5656 JMP I TYPE /IGNORE CHARACTER IF ^O 838 013272 1313 TAD READKB /TYPE CHAR 839 013273 4275 JMS TTY 840 013274 5656 JMP I TYPE 841 842 013275 0000 TTY, 0 843 013276 3312 DCA TCHAR /SAVE CHAR 844 013277 1312 TAD TCHAR /GET CHAR BACK 845 /** NEXT 4 LOCATIONS REPLACED IF BATCH ACTIVE BY: 846 013300 6046 TTYOUT, TLS /** SKP 847 013301 6041 TSF /** 7400 /ADDRESS OF BATCH OUTPUT ROUTINE 848 013302 5301 JMP .-1 /** CIF TOPFIELD 849 013303 7200 CLA /** JMS I .-2 850 013304 1312 TAD TCHAR /GET CHAR AGAIN 851 013305 1365 TAD (-215 /IF WE JUST TYPED A C.R. TYPE 852 013306 7640 SZA CLA /A L.F. 853 013307 5675 JMP I TTY 854 013310 1364 TAD (12 855 013311 5276 JMP TTY+1 856 013312 0000 TCHAR, 0 857 858 /GET A CHARACTER FROM KEYBOARD AND 859 /CHECK FOR ^C AND ^P 860 861 013313 7402 READKB, HLT 862 013314 6031 KSF 863 013315 5314 JMP .-1 864 013316 4771 JMS I (CINTER /IS IT ^C 865 013317 7410 SKP /SKIP IF NOT 866 013320 5770 JMP I (CTCDE /YES 867 013321 6036 KRB /READ IT 868 013322 0363 AND (177 /AND GET RID OF 869 013323 1377 TAD (200 /PARITY 870 013324 5713 JMP I READKB 871 /ROUTINE TO MAKE SURE USER SPECIFIED 872 //C AND /O SWITCHES CAUSE CORRECT MATCH WITH DATE 873 874 013325 0000 DATCHK, 0 875 013326 1762 TAD I (OPT1 /CHECK /C 876 013327 4341 JMS MDATE 877 013330 7000 NOP /RETURN HERE WITH AC=0 IF NO /C 878 013331 7640 SZA CLA /RETURN HERE WITH AC=0 IF DATES MATCH 879 013332 5761 JMP I (NENT /DATES DONT MATCH AND /C GIVEN 880 013333 1760 TAD I (OPT2 /CHECK /V 881 013334 4341 JMS MDATE 882 013335 7240 CMA CLA /SET AC=-1 IF NO /V 883 013336 7650 SNA CLA /RETURN HERE AC=0 IF DATES SAME 884 013337 5761 JMP I (NENT /DATES SAME WITH /V-IGNORE FILE 885 013340 5725 JMP I DATCHK /CONTINUE 886 887 013341 0000 MDATE, 0 //O AND /V ARE AC2 888 013342 7006 RTL /IS IT OPTION ON? 889 013343 7700 SMA CLA /SKIP IF IT IS 890 013344 5741 JMP I MDATE /NO- RETURN WITH 0 AC 891 013345 2341 ISZ MDATE /SKIP RETURN 892 013346 6201 CDF 0 893 013347 1436 TAD I GPTR1 /GET DATE WORD 894 013350 7041 CIA 895 013351 6211 CDF 10 896 013352 1757 TAD I (SVDATE /COMPARE WITH MONITORS, 0 IF = 897 013353 5741 JMP I MDATE 898 899 013354 0001 ECHO, 1 900 901 902 013357 3530 PAGE 013360 7644 013361 2510 013362 7643 013363 0177 013364 0012 013365 7563 013366 3600 013367 0217 013370 3476 013371 3624 013372 3256 013373 0240 013374 0077 013375 7600 013376 4251 013377 0200 903 /THIS IS THE CORE DEVICE HANDLER 904 /THE USR IS MADE TO COME HERE BY A CALL TO FAKUSR. 905 /THIS HANDLER SWAPS THE DESIRED BLOCK INTO 906 /THE USR AREA AND WRITES THE BLOCK BACK INTO THE 907 /INCORE DIRECTORY. 908 909 /THE CODE SET UP IN FIELD 0 TO CALL THE HANDLER IS: 910 / *FAKHND 911 / 0 /ENTRY POINT 912 / TAD FAKHND /GET RETURN ADDRESS 913 / CIF CDF 10 914 / JMP I .+1 /PLOP UP TO BODY OF HANDLER IN FIELD 1 915 / FAKBDY 916 917 918 013400 3270 FAKBDY, DCA RETLOC /SAVE ARGUMENT ADDRESS 919 013401 1670 TAD I RETLOC /GET CONTROL WORD 920 013402 7004 RAL /R/W BIT INTO LINK 921 013403 7204 CLA RAL /R/W BIT INTO AC11 922 013404 1217 TAD DCAXR1 /IF WRITE MAKE DCA XR2 ELSE XR1 923 013405 3223 DCA DCASPT /SAVE WHERE WE NEED IT 924 013406 2270 ISZ RETLOC /BUMP TO LOCATION (ALWAYS 1400 FROM USR) 925 013407 2270 ISZ RETLOC /BUMP TO BLOCK NUMBER 926 013410 1670 TAD I RETLOC /GET IT 927 013411 2270 ISZ RETLOC /BUMP TO ERROR RETURN 928 013412 2270 ISZ RETLOC /NOW TO GOOD RETURN (WE WONT FAIL) 929 013413 7112 CLL RTR /MULTIPLY BY 400(8) 930 013414 7012 RTR 931 013415 7010 RAR 932 013416 1377 TAD (4177 /ADD ON TO BEGINING OF DIRECTRY 933 013417 3011 DCAXR1, DCA XR1 /SAVE IN BOTH XR1 934 013420 1011 TAD XR1 935 013421 3012 DCA XR2 /AND XR2 936 013422 1376 TAD (1377 /NOW SAVE USR BLOCK AREA 937 013423 7402 DCASPT, HLT /IN EITHER XR1 OR XR2 (R OR W) 938 013424 1375 TAD (-400 /SET WORD TRANSFER COUNT 939 013425 3021 DCA CNT 940 013426 1412 TAD I XR2 /GET A WORD 941 013427 3411 DCA I XR1 /PUT A WORD 942 013430 2021 ISZ CNT 943 013431 5226 JMP .-3 944 013432 5670 JMP I RETLOC /GO BACK TO USR 945 /THIS ROUTINE DOES THE SETUP OF THE INCORE 946 /DIRECTORY HANDLER AND CHANGES THE REAL 947 /HANDLERS ENTRY POINT IN THE MONITOR SO THAT 948 /THE USR WILL CALL IT. 949 950 013433 0000 FAKUSR, 0 951 013434 3261 DCA UNFAK /SAVE DEVICE NUMBER 952 013435 1261 TAD UNFAK /INDEX INTO MONITORS RESIDENCY 953 013436 1374 TAD (7646 /TABLE 954 013437 3267 DCA TABAD 955 013440 1331 TAD WRTDIR /SEE IF DEVICE HAS DIRECTORY 956 013441 7710 SPA CLA /SKIP IF IT DOES 957 013442 5245 JMP NOSUBST /!!!DONT CHANGE IF NON-FILE DEV 958 013443 1373 TAD (FAKHND /PUT OUR HANDLERS ADDRESS IN 959 013444 3667 DCA I TABAD /MONITORS TABLE 960 013445 6201 NOSUBST,CDF 0 961 013446 1372 TAD (1200 /PUT IN HANDLER INTERFACE CODE 962 013447 3771 DCA I (FAKHND+1 /INTO FIELD 0 AS GIVEN ABOVE 963 013450 1370 TAD (CIF CDF 10 964 013451 3767 DCA I (FAKHND+2 965 013452 1366 TAD (5604 966 013453 3765 DCA I (FAKHND+3 967 013454 1364 TAD (FAKBDY 968 013455 3763 DCA I (FAKHND+4 969 013456 6211 CDF 10 970 013457 1261 TAD UNFAK /RETURN WITH DEVICE NUMBER IN AC 971 013460 5633 JMP I FAKUSR 972 973 013461 0000 UNFAK, 0 974 013462 7200 CLA /V3C 975 013463 1023 TAD OUHAND /RESET MONITORS TABLE TO 976 013464 3667 DCA I TABAD /POINT TO REAL HANDLER 977 013465 3267 DCA TABAD /V3C 978 013466 5661 JMP I UNFAK 979 980 013467 0000 TABAD, 0 981 013470 0000 RETLOC, 0 982 /ENTER HERE IF A BRANCH TO 7600 OR 7605 OCCURS 983 984 013471 4261 FIXDIR, JMS UNFAK /JUST IN CASE 985 013472 4762 JMS I (CINTER /CHECK FOR ^C 986 013473 7000 NOP 987 013474 7330 AC4000 /EITHER WAY GO BACK TO 988 013475 3761 DCA I (ALTOPT /MONITOR BUT AFTER WE HANDLE DIRECTORY 989 013476 1327 CTCDE, TAD MUSTWT /IS MUST WRITE SET? 990 013477 7650 SNA CLA /SKIP IF /Q OR MUST WRITE 991 013500 1331 TAD WRTDIR /CHECK TO SEE IF WE HAVE TO 992 013501 7750 SPA SNA CLA /WRITE THE DIRECTORY 993 013502 5306 JMP ENDCHK /CONTINUE 994 013503 3331 DCA WRTDIR /KEEP OLD DIRECTORY 995 013504 4760 JMS I (ERROR /TELL HIM 996 013505 7573 DSVED+40 997 998 013506 2757 ENDCHK, ISZ I (ECHO /TURN ON ECHO 999 013507 4332 JMS DIROUT /WRITE OUT THE OUTPUT DIRECTORY 1000 013510 4756 JMS I (RESTORE /RESTORE 7600 IN FIELD 0 1001 013511 1755 TAD I (OPT2 /GET OPTION /W 1002 013512 7012 RTR 1003 013513 7620 SNL CLA /SKIP FOR VESION NUMBER 1004 013514 5322 JMP NOVER 1005 013515 3755 DCA I (OPT2 /STOPS RECUSION WITH ^P 1006 013516 4760 JMS I (ERROR /PRINT VERSION NUMBER 1007 013517 7273 VERNO+40 1008 013520 1354 TAD (215 1009 013521 4753 JMS I (TYPE 1010 013522 1761 NOVER, TAD I (ALTOPT /GO BACK TO MONITOR? 1011 013523 7700 SMA CLA /SKIP IF YES 1012 013524 5752 JMP I (CDCALL /CALL THE CD AGAIN 1013 013525 6203 CIF CDF 0 /RETURN TO MONITOR 1014 013526 5751 JMP I (7605 1015 1016 1017 013527 0000 MUSTWT, 0 1018 013530 0000 SVDATE, 0 1019 013531 0000 WRTDIR, 0 1020 013532 0000 DIROUT, 0 /ROUTINE TO WRITE THE OUTPUT DIRECTORY 1021 013533 1331 TAD WRTDIR /AC>0 IF WE HAVE TO WRITE IT 1022 013534 7750 SPA SNA CLA /SKIP TO WRITE DIRECTORY 1023 013535 5732 JMP I DIROUT 1024 013536 6202 CIF 0 1025 013537 4423 JMS I OUHAND /WRITE DIRECTORY BACK ONTO DEVICE 1026 013540 5410 5410 1027 013541 4600 4600 1028 013542 0001 1 1029 013543 5750 JMP I (ODERR /IS HE IN TROUBLE... 1030 013544 3331 DCA WRTDIR /CLEAR WRITE DIRECTORY FLAG 1031 013545 5732 JMP I DIROUT /RETURN 1032 013550 4243 PAGE 013551 7605 013552 2000 013553 3256 013554 0215 013555 7644 013556 3667 013557 3354 013560 3711 013561 7642 013562 3624 013563 0204 013564 3400 013565 0203 013566 5604 013567 0202 013570 6213 013571 0201 013572 1200 013573 0200 013574 7646 013575 7400 013576 1377 013577 4177 1033 /ROUTINE WHICH ECHOES ^(CHAR) AND SKIP RETURNS IF 1034 /ONE WE WANTED 1035 1036 013600 0000 CTYPE, 0 1037 013601 3223 DCA T2 /SAVE CHARACTER 1038 013602 1377 TAD (200 /GT RID OF PARITY 1039 013603 6034 KRS /SEE WHATS IN BUFFER 1040 013604 7041 CIA 1041 013605 1223 TAD T2 /COMPARE AGAINST DESIRED ONE 1042 013606 7650 SNA CLA /SKIP IF NOT ONE 1043 013607 6031 KSF /IS FLAG UP? 1044 013610 5600 JMP I CTYPE /NO... JUST RETURN 1045 013611 6032 KCC /CLEAR CHARACTER 1046 013612 1376 TAD ("^ /OUTPUT ^ 1047 013613 4775 JMS I (TTY 1048 013614 1223 TAD T2 1049 013615 1374 TAD (100 /CHAR 1050 013616 4775 JMS I (TTY 1051 013617 1373 TAD (215 1052 013620 4775 JMS I (TTY 1053 013621 2200 ISZ CTYPE /SKIP RETURN 1054 013622 5600 JMP I CTYPE 1055 1056 013623 0000 T2, 0 1057 1058 /ROUTINE USED TO DETERMINE IF ^C OR ^P TYPED 1059 1060 013624 0000 CINTER, 0 1061 013625 1372 TAD (203 /CHECK FOR ^C 1062 013626 4200 JMS CTYPE 1063 013627 5231 JMP UPPCK /NO CHECK FOR ^P 1064 013630 5235 JMP SPURGE /YES SET ALTMODE BIT 1065 013631 1371 UPPCK, TAD (220 1066 013632 4200 JMS CTYPE 1067 013633 5624 JMP I CINTER /NOT EITHER ^P OR ^C 1068 013634 7410 SKP /IF ^P CLEAR ALTMODE BIT 1069 013635 7040 SPURGE, CMA /SET BIT 1070 013636 3770 DCA I (ALTOPT 1071 013637 2224 ISZ CINTER /SKIP RETURN 1072 013640 5624 JMP I CINTER 1073 /THIS ROUTINE MODIFIES THE THE MONITOR RETURN 1074 /LOCATIONS TO COME BACK TO FOTP AND SAVES WHAT 1075 /WAS THERE SO RESTORE CAN RESTORE THEM 1076 1077 013641 0000 INTERC, 0 1078 013642 1767 TAD I (DATE 1079 013643 3766 DCA I (SVDATE /SAVE MONITOR DATE 1080 013644 6201 CDF 0 1081 013645 1765 TAD I (7600 /SAVE 7600,7601,7602,7605 1082 013646 3305 DCA SCODE /AND REPLACE WITH 1083 013647 1364 TAD (CIF CDF 10 /CIF CDF 10 1084 013650 3765 DCA I (7600 /JMP I .+1 1085 013651 1763 TAD I (7601 /FIXDIR 1086 013652 3306 DCA SCODE+1 /7605 GETS JMP 7600 1087 013653 1362 TAD (5602 /THIS ENABLES FOTP TO WRITE 1088 013654 3763 DCA I (7601 /OUT DIRECTORY AN MANUAL ABORT 1089 013655 1761 TAD I (7602 /OR IF HANDLER PICKS UP ^C 1090 013656 3307 DCA SCODE+2 /AND TRIES TO GO TO MONITOR 1091 013657 1360 TAD (FIXDIR 1092 013660 3761 DCA I (7602 1093 013661 1757 TAD I (7605 1094 013662 3310 DCA SCODE+3 1095 013663 1356 TAD (5200 1096 013664 3757 DCA I (7605 1097 013665 6211 CDF 10 1098 013666 5641 JMP I INTERC 1099 1100 /THIS ROUTINE SIMPLY RESTORES THE MONITOR 1101 /LOCATIONS TO THEIR ORIGINAL VALUE 1102 1103 013667 0000 RESTORE,0 1104 013670 1766 TAD I (SVDATE /RESTORE DATE 1105 013671 3767 DCA I (DATE 1106 013672 6201 CDF 0 1107 013673 1305 TAD SCODE 1108 013674 3765 DCA I (7600 /RESTORE LOCATIONS 1109 013675 1306 TAD SCODE+1 1110 013676 3763 DCA I (7601 1111 013677 1307 TAD SCODE+2 1112 013700 3761 DCA I (7602 1113 013701 1310 TAD SCODE+3 1114 013702 3757 DCA I (7605 1115 013703 6211 CDF 10 1116 013704 5667 JMP I RESTORE 1117 1118 013705 0000 SCODE, 0;0;0;0 013706 0000 013707 0000 013710 0000 1119 /THIS IS THE MAGIC MESSAGE PRINTER 1120 /IT IS ACTUALLY USED MORE THAN JUST FOR ERROR MESSAGES 1121 /IF THE MESSAGE ENDS WITH A % THEN THE OPERATION 1122 /IS ABORTED OTHERWISE CONTROL IS RETURNED 1123 /TO THE CALLER AND NO CRLF IS GIVEN 1124 /ALL MESSAGES COMMING THROUGH HERE ARE ECHOED 1125 1126 013711 0000 ERROR, 0 1127 013712 7300 CLA CLL /JUNK MIGHT BE IN AC 1128 013713 1755 TAD I (ECHO /SAVE ECHO STATUS SO WE CAN 1129 013714 3754 DCA I (ECTMP /RESTORE IT AFTER MESSAGE 1130 013715 2755 ISZ I (ECHO /TURN ON ECHO 1131 013716 1353 TAD (-100 /USED SO WE CAN USE GTSXBT TO 1132 013717 3021 DCA CNT /UNPACK THE MESSAGES 1133 013720 1711 PLOOP, TAD I ERROR /CONTAINS ADDRESS OF MESSAGE 1134 013721 6201 CDF 0 /IN FIELD 0 1135 013722 4752 JMS I (GTSXBT /GET CHARACTER 1136 013723 6211 CDF 10 1137 013724 1351 TAD (-45 /IS IT % 1138 013725 7450 SNA /SKIP IF NOT 1139 013726 5341 JMP CRLF /WE HIT EOM AND CALLER NO WANT CONTROL 1140 013727 1350 TAD ("%&77 /RESTORE CHARACTER 1141 013730 3344 DCA DFLAG /SAVE IT FOR LATER 1142 013731 1344 TAD DFLAG /PRINT IT, 0 PRINTS AS BLANK 1143 013732 4747 JMS I (CONVTP 1144 013733 2021 ISZ CNT /BUMP TO NEXT CHAR IN MESSAGE 1145 013734 1344 TAD DFLAG /ARE WE AT END 1146 013735 7640 SZA CLA /SKIP IF WE ARE 1147 013736 5320 JMP PLOOP /DO ANOTHER CHARACTER 1148 013737 2311 ISZ ERROR /SKIP ADDRESS OF MESSAGE 1149 013740 5711 JMP I ERROR /RETURN 1150 013741 1373 CRLF, TAD (215 /PRINT CR 1151 013742 4746 JMS I (TYPE /LF 1152 013743 5745 JMP I (ENDCHK /FINISH PROCESSING 1153 1154 013744 0000 DFLAG, 0 1155 013745 3506 PAGE 013746 3256 013747 3247 013750 0045 013751 7733 013752 3230 013753 7700 013754 4022 013755 3354 013756 5200 013757 7605 013760 3471 013761 7602 013762 5602 013763 7601 013764 6213 013765 7600 013766 3530 013767 7666 013770 7642 013771 0220 013772 0203 013773 0215 013774 0100 013775 3275 013776 0336 013777 0200 1156 /THIS ROUTINE PRINTS A FILENAME.EXTENSION 1157 1158 014000 0000 PNMSUB, 0 1159 014001 3221 DCA NMEPLC /SAVE ADDRESS OF NAME 1160 014002 1377 TAD (-10 /SET CHAR COUNT 1161 014003 3021 DCA CNT 1162 014004 1221 PNLOOP, TAD NMEPLC /GET THE SIXBIT CHAR 1163 014005 4776 JMS I (GTSXBT 1164 014006 7440 SZA /SKIP IF NULL CHAR 1165 014007 4775 JMS I (CONVTP /PRINT CHAR 1166 014010 1374 TAD (3 /SEE IF AT START OF 1167 014011 1021 TAD CNT /EXTENSION 1168 014012 7640 SZA CLA /SKIP IF SO 1169 014013 5216 JMP .+3 1170 014014 1373 TAD (". /PRINT THE DOT 1171 014015 4772 JMS I (TYPE 1172 014016 2021 ISZ CNT 1173 014017 5204 JMP PNLOOP /KEEP GOING 1174 014020 5600 JMP I PNMSUB 1175 1176 014021 0000 NMEPLC, 0 1177 014022 0000 ECTMP, 0 1178 1179 014023 4771 RDERR, JMS I (ERROR 1180 014024 7372 INERR+40 /ERROR READING FILE 1181 014025 1370 DYSTF1, TAD (SPOT1+4 /PRINT INPUT FILE NAME 1182 014026 4767 DYSTUF, JMS I (PNMSUB 1183 014027 1366 TAD (215 1184 014030 4772 JMS I (TYPE 1185 014031 1222 TAD ECTMP /RESTORE ECHO FLAG AS 1186 014032 3765 DCA I (ECHO /SAVED ON ENTRY TO ERROR 1187 014033 5764 JMP I (NENT /GO TO NEXT FILE 1188 014034 4771 WRTERR, JMS I (ERROR 1189 014035 7412 OUERR+40 /ERROR WRITING FILE 1190 014036 1363 POUTNM, TAD (SPOT+4 /PRINT OUTPUT FILE NAME 1191 014037 5226 JMP DYSTUF 1192 014040 4771 NORUMX, JMS I (ERROR /NOT ENOUGH ROOM FOR 1193 014041 7360 SPRBLM+40 /FILE ON OUTPUT DEVICE 1194 014042 5225 JMP DYSTF1 1195 /ROUTINE WHICH PRINTS NO FILES MSG IF NECESSARY 1196 /IT WONT PRINT MESSAGE IF ANY FILE IN A SO CALLED 1197 /INPUT GROUP MATCHES(A BUG?) 1198 1199 014043 1762 SAYNON, TAD I (TYPFND /GET INPUT MATCH FLAG 1200 014044 7640 SZA CLA /SKIP IF NOTHING MATCHED 1201 014045 5303 JMP GOBCK /DONT DO MESSAGE 1202 014046 4771 TLP, JMS I (ERROR /PRINT MESSAGE 1203 014047 7457 NOFILE+40 1204 014050 1022 TAD INFPTR /POINT TO END OF INPUT ENTRY 1205 014051 1361 TAD (5 /TO MAKE GTSXBT WORK CORRECTLY 1206 014052 3022 DCA INFPTR 1207 014053 1022 TAD INFPTR /PRINT THE FILE NAME 1208 014054 4767 JMS I (PNMSUB 1209 014055 1360 TAD (OTAB-2 /NOW PRINT /V,/C,/O IF 1210 014056 3012 DCA XR2 /ANY OF THEM SPECIFIED 1211 014057 2012 NOPT1, ISZ XR2 /FIX POINTER WHEN SWITCH NOT ON 1212 014060 1412 NOPT, TAD I XR2 /GET ADDRESS OF OPTION 1213 014061 7450 SNA /SKIP IF NOT AT END 1214 014062 5275 JMP CRIT /WE ARE AT END 1215 014063 3030 DCA TEMP 1216 014064 1430 TAD I TEMP /GET OPTION WORD 1217 014065 0412 AND I XR2 /AND WITH OPTION BIT 1218 014066 7650 SNA CLA /SKIP IF OPTION GIVEN 1219 014067 5257 JMP NOPT1 /DO ANOTHER 1220 014070 1357 TAD ("/ /PRINT / 1221 014071 4772 JMS I (TYPE 1222 014072 1412 TAD I XR2 /OPTION 1223 014073 4772 JMS I (TYPE 1224 014074 5260 JMP NOPT /DO ANOTHER 1225 014075 1366 CRIT, TAD (215 /END WITH A CRLF 1226 014076 4772 JMS I (TYPE 1227 014077 1222 TAD ECTMP /RESTORE ECHO FLAG THAT ERROR 1228 014100 3765 DCA I (ECHO /SAVED 1229 014101 2027 ISZ INSCNT /PRINT MESSAGE FOR ALL FILES 1230 014102 5246 JMP TLP /IN GROUP 1231 014103 1760 GOBCK, TAD I (USEROD /GET USER SPECIFIED DEVICE 1232 014104 7650 SNA CLA /SKIP IF HE GAVE ONE 1233 014105 1756 TAD I (SDFLG /IF HE DIDNT WE CANT HANDLE /D 1234 014106 7710 SPA CLA /SKIP IF NO /D 1235 014107 1723 TAD I MOIN /YEP. /D BETTER NOT BE ANY MORE INPUT 1236 014110 7640 SZA CLA /THERE WASN'T - O.K. 1237 014111 5314 JMP DELERR /WARN HIM OF THE SHORTCOMING 1238 014112 1323 TAD MOIN /GET SAVED INPUT POINTER 1239 014113 5755 JMP I (DOMOIN /AND DO SOME MORE INPUTS 1240 1241 014114 4771 DELERR, JMS I (ERROR 1242 014115 7520 CNTDEL+40 /MULTIPLE DEVICE DELETE 1243 014116 1366 TAD (215 1244 014117 4772 JMS I (TYPE 1245 014120 4771 JMS I (ERROR 1246 014121 7550 CNTDE2+40 1247 1248 014122 0000 USEROD, 0 1249 014123 0000 MOIN, 0 1250 /TABLE OF SWITCHES FOR "NO FILES" MESSAGE 1251 1252 014124 7644 OTAB, OPT2 1253 014125 0004 4 1254 014126 0326 "V 1255 014127 7643 OPT1 1256 014130 1000 1000 1257 014131 0303 "C 1258 014132 7644 OPT2 1259 014133 1000 1000 1260 014134 0317 "O 1261 014135 0000 0 1262 1263 014155 2106 PAGE 014156 2347 014157 0257 014160 4122 014161 0005 014162 2346 014163 4261 014164 2510 014165 3354 014166 0215 014167 4000 014170 4265 014171 3711 014172 3256 014173 0256 014174 0003 014175 3247 014176 3230 014177 7770 1264 /THIS ROUTINE HANDLES THE /L AND /Q OPTIONS 1265 /IF EITHER IS ON IT PRINTS THE NAME 1266 /THEN IF ITS /Q IT PRINTS A ? AND WAITS FOR 1267 /A RESPONSE. IF Y IT RETURNS, ANYTHING ELSE 1268 /AND IT GOES TO PROCESS THE NEXT DIRECTORY ENTRY 1269 1270 014200 0000 PRINTE, 0 1271 014201 3777 DCA I (NMEPLC /SAVE ADDRESS OF NAME 1272 014202 1776 TAD I (OPT1 /CHECK /L 1273 014203 7010 RAR 1274 014204 7630 SZL CLA /SKIP IF NO /L 1275 014205 5213 JMP PIT /PRINT NAME 1276 014206 1775 TAD I (OPT2 /CHECK /Q 1277 014207 0374 AND (200 1278 014210 7650 SNA CLA /SKIP IF /Q 1279 014211 5600 JMP I PRINTE /RETURN 1280 014212 2773 ISZ I (ECHO /IF /Q FORCE ECHO ON 1281 014213 1777 PIT, TAD I (NMEPLC /NOW PRINT FILENAME 1282 014214 4772 JMS I (PNMSUB 1283 014215 3031 DCA OKFLAG /CLEAR OKFLAG 1284 014216 1775 TAD I (OPT2 /WAS IT /Q? 1285 014217 0374 AND (200 1286 014220 7650 SNA CLA /SKIP IF /Q 1287 014221 5235 JMP FUNCT2 /JUST PRINT CRLF 1288 014222 1371 TAD ("? /PRINT ? 1289 014223 4770 JMS I (TYPE 1290 014224 7040 CMA /SET OKFLAG NO GOOD 1291 014225 3031 DCA OKFLAG 1292 014226 4767 JMS I (READKB /GET A CHAR 1293 014227 1366 TAD (-"Y /IS IT Y? 1294 014230 7650 SNA CLA /SKIP ON NO 1295 014231 2031 ISZ OKFLAG /IT WAS Y, SET OK AND SKIP 1296 014232 1365 TAD ("N-"Y /GET N 1297 014233 1364 TAD ("Y /GET Y 1298 014234 4770 JMS I (TYPE /ECHO IT 1299 014235 1363 FUNCT2, TAD (215 /PRINT CRLF 1300 014236 4770 JMS I (TYPE 1301 014237 1031 TAD OKFLAG /OKFLG=0 MEANS YES 1302 014240 7640 SZA CLA /SKIP IF TO PROCESS FILE 1303 014241 5762 JMP I (NFUNCT /SKIP THIS FILE 1304 014242 5600 JMP I PRINTE /RETURN 1305 1306 014243 7200 ODERR, CLA 1307 014244 3761 DCA I (WRTDIR /FIX RECURSION 1308 014245 4760 JMS I (ERROR 1309 014246 7340 ODIERR+40 /ERROR WRITING DIRECTORY 1310 014247 4760 BODIR, JMS I (ERROR 1311 014250 7505 BODORM+40 /BAD OUTPUT DIRECTORY 1312 014251 4760 CLOERR, JMS I (ERROR 1313 014252 7254 SERR+40 /SYSTEM ERROR 1314 014253 7402 HLT /DONT LET HIM CONTINUE 1315 014254 5253 JMP .-1 /IT CAN ONLY GET WORSE 1316 1317 014255 0000 SPOT, ZBLOCK 4 /ROOM FOR OUTPUT FILE NAME 014256 0000 014257 0000 014260 0000 1318 014261 0000 SPOT1, ZBLOCK 4 /ROOM FOR INPUT FILE NAME 014262 0000 014263 0000 014264 0000 1319 /CODE TO HANDLE OUT OF ROOM CONDITION ON OUTPUT DEVICE 1320 1321 014265 4757 NOROOM, JMS I (UNFAK /RESTORE THE REAL OUTPUT HANDLER 1322 014266 1776 TAD I (OPT1 1323 014267 0356 AND (100 /CHECK FOR THE /F OPTION SPECIFIED 1324 014270 7650 SNA CLA 1325 014271 5755 JMP I (NORUMX /NO - GIVE AN ERROR MESSAGE 1326 014272 4754 JMS I (DIROUT /FAILSAFING - WRITE OUT THE OUTPUT DIRECTORY 1327 014273 4760 JMS I (ERROR /PRINT THE MESSAGE 1328 014274 7612 FLSFMS+40 /"MOUNT NEXT OUTPUT VOLUME" 1329 014275 4767 JMS I (READKB /GET AN ANSWER 1330 014276 7200 CLA /ANY CHAR EXCEPT ^C OR ^P IS YES 1331 014277 1363 TAD (215 1332 014300 4770 JMS I (TYPE /PRINT CRLF 1333 014301 4303 JMS ODIRIN /READ IN THE NEW OUTPUT DIRECTORY 1334 014302 5753 JMP I (FLSRSM /RECOMPUTE THE PENDING TRANSFER. 1335 1336 014303 0000 ODIRIN, 0 /SUBROUTINE TO READ IN THE OUTPUT DIRECTORY 1337 014304 1752 TAD I (7600 /GET OUTPUT DEVICE NUMBER 1338 014305 7450 SNA /IS IT PRESENT? 1339 014306 5332 JMP NOUTFL /NO - DON'T READ OUTPUT DIRECTORY 1340 014307 1351 TAD (7757 /ADD ADDRESS OF MONITOR TABLE 1341 014310 3030 DCA TEMP /TO INDEX INTO IT 1342 014311 1430 TAD I TEMP /FILE STRUCTURED BIT IS 0 1343 014312 7700 SMA CLA /SKIP IF DIRECTORY DEVICE 1344 014313 5332 JMP NOUTFL /WE DONT WANT TO READ OR WRITE DIRECTORY 1345 014314 6202 CIF 0 1346 014315 4423 JMS I OUHAND /READ DIRECTORY 1347 014316 1410 1410 1348 014317 4600 ODBUF, OUBUFR 1349 014320 0001 1 1350 014321 5750 JMP I (ONDERR /ERROR 1351 014322 1717 TAD I ODBUF 1352 014323 7140 CMA CLL /CHECK FOR LEGAL OUTPUT DIRECTORY - FIRST 1353 014324 1747 TAD I (OUBUFR+2 /WORD OF AN OS/8 DIRECTORY IS .LT. 50 1354 014325 7420 SNL /AND THE THIRD WORD MUST BE .LT. 7, 1355 014326 1346 TAD (7700 /SO WE CAN CHECK FOR THE SUM OF THOSE 1356 014327 7630 SZL CLA /WORDS BEING .LT. 64 1357 014330 5745 JMP I (BODIR /ERROR - CANT BE DIRECTORY 1358 014331 7410 SKP 1359 014332 7330 NOUTFL, AC4000 /WRTDIR MINUS MEANS DONT WRITE 1360 014333 3761 DCA I (WRTDIR /DIRECTORY 1361 014334 3744 DCA I (MUSTWT /CLEAR THE MUST WRITE FLAG 1362 014335 3007 DCA DIRKEY /CLEAR THE OS/8 DIRECTORY KEY 1363 014336 5703 JMP I ODIRIN /RETURN 1364 014344 3527 PAGE 014345 4247 014346 7700 014347 4602 014350 2120 014351 7757 014352 7600 014353 2710 014354 3532 014355 4040 014356 0100 014357 3461 014360 3711 014361 3531 014362 3150 014363 0215 014364 0331 014365 7765 014366 7447 014367 3313 014370 3256 014371 0277 014372 4000 014373 3354 014374 0200 014375 7644 014376 7643 014377 4021 1365 /SUBROUTINE TO DO LOOKUPS ON OUTPUT DEVICE 1366 /DOES IMMEDIATE RETURN IF NO OUTPUT DEVICE 1367 /OTHERWISE RETURNS WITH BLOCK OF FILE IN AC OR 1368 /0 IN AC MEANING NOT FOUND OR NON-FILE STRUCTURED DEVICE 1369 014400 0000 LOOKUP, 0 1370 014401 1377 TAD (SPOT /ADDRESS OF FILE NAME 1371 014402 3211 DCA PLACE 1372 014403 1776 TAD I (7600 /GET OUTPUT DEVICE 1373 014404 7450 SNA /SKIP IF PRESENT 1374 014405 5600 JMP I LOOKUP /NO OUTPUT DEVICE 1375 014406 4775 JMS I (FAKUSR /FAKE OUT THE USR 1376 014407 4774 JMS I (200 1377 014410 0002 2 /LOOKUP 1378 014411 4255 PLACE, SPOT 1379 014412 0000 0 1380 014413 3211 DCA PLACE /NOT FOUND, 0 PLACE 1381 014414 4773 JMS I (UNFAK /RESTORE RESIDENT HANDLER 1382 014415 2200 ISZ LOOKUP /SKIP RETURN 1383 014416 1211 TAD PLACE /WITH BLOCK IN AC 1384 014417 5600 JMP I LOOKUP 1385 /HERE IS WHAT WE HAVE ALL BEEN WAITING FOR 1386 1387 ////////////////////////////////////// 1388 / / 1389 / RENAME / 1390 / / 1391 ////////////////////////////////////// 1392 1393 014420 4200 RENAME, JMS LOOKUP 1394 014421 5772 JMP I (CLOERR /SUPER SYSTEM DISASTER 1395 014422 3301 DCA OBLOCK /V3C SAVE BLOCK OF NEW NAME (IF ANY) 1396 014423 1371 TAD (SPOT1-SPOT /LOOKUP INPUT FILE 1397 014424 4200 JMS LOOKUP 1398 014425 5772 JMP I (CLOERR /SUPER SYSTEM DISASTER 1399 014426 7041 CIA /LOOKUP INPUT NAME ON OUTPUT DEVICE 1400 014427 1301 TAD OBLOCK /IS IT SAME SPOT AS NEW NAME ON OUTPUT DEVICE? 1401 014430 7640 SZA CLA /V3C 1402 014431 4272 JMS EXERR /NO, MAYBE ALREADY EXISTS 1403 014432 1770 TAD I (1404 /GET ADDRESS OF FILE 1404 014433 1017 TAD 17 /FROM MONITOR BY THE 1405 014434 1367 TAD (-4 /DOCUMENTED METHOD 1406 014435 3030 DCA TEMP 1407 014436 1366 TAD (SPOT-1 /GET NEW OUTPUT NAME 1408 014437 3011 DCA XR1 1409 014440 1367 TAD (-4 /SET UP COUNT OF WORDS TO MOVE 1410 014441 3021 DCA CNT 1411 014442 1411 RNAM, TAD I XR1 /MOVE THEM 1412 014443 3430 DCA I TEMP 1413 014444 2030 ISZ TEMP 1414 014445 2021 ISZ CNT 1415 014446 5242 JMP RNAM /CONTINUE TILL DONE 1416 014447 1770 TAD I (1404 /V3C 1417 014450 7650 SNA CLA /BUT IS THERE ROOM FOR DATE? 1418 014451 5254 JMP NONUDA /NO, NO ADDITIONAL INFO WORDS 1419 014452 1765 TAD I (DATE /YES, MOVE DATE 1420 014453 3430 DCA I TEMP /INTO NEW FILENAME ENTRY 1421 014454 4257 NONUDA, JMS WRKEY /V3C 1422 014455 2764 ISZ I (WRTDIR /INDICATE DIRECTORY CHANGED 1423 014456 5763 JMP I (NFUNCT /DO NEXT FILE 1424 1425 014457 0000 WRKEY, 0 /V9 1426 014460 1007 TAD DIRKEY /GET "SEGMENT IN CORE" KEY 1427 014461 0362 AND (7 /ISOLATE SEGMENT NUMBER 1428 014462 3267 DCA SEGNO /NUMBER FOR WRITE 1429 014463 6202 CIF 0 1430 014464 4451 JMS I 51 /CALL HANDLER USR USED TO DO 1431 014465 4210 4210 /LOOKUP, THIS POINTS TO FOTPS 1432 014466 1400 1400 /INCORE DIRECTORY HANDLER 1433 014467 0000 SEGNO, 0 /REWRITE UPDATED DIRECTORY BLOCK 1434 014470 5772 JMP I (CLOERR /SYSTEM ERROR 1435 014471 5657 JMP I WRKEY 1436 014472 0000 EXERR, 0 /BLOCK NUMBERS DIFFERENT 1437 014473 1301 TAD OBLOCK /LOOK AT BLOCK NUMBER OF EXISTING FILE 1438 014474 7650 SNA CLA /DID IT REALLY EXIST? 1439 014475 5672 JMP I EXERR /NO, OK TO RENAME TO THIS NAME 1440 014476 4761 JMS I (ERROR /YES, TRYING TO RENAME TO EXISTING NAME 1441 014477 7263 RENERR+40 /FILE ALREADY EXISTS 1442 014500 5760 JMP I (POUTNM 1443 1444 014501 0000 OBLOCK, 0 /TEMPORARY, HOLDS BLOCK NUMBER OF ALREADY 1445 /EXISTING FILE WITH SAME NAME AS PROPOSED NEW NAME 1446 /ON OUT PUT DEVICE (OR 0 IF NONE) 1447 /THIS ROUTINE TRANSFERS THE ADDITIONAL 1448 /INFORMATION WORDS OF THE INPUT FILE WHEN COPYING 1449 /IT IF THERE ARE ANY 1450 1451 014502 0000 ADDINF, 0 1452 014503 7201 CLA IAC /AC=1 1453 014504 1770 TAD I (1404 /GET NUMBER OF WORDS FROM OUTPUT DIRECTORY 1454 014505 7500 SMA /SKIP IF 2 OR MORE 1455 014506 5332 JMP NOTRAN /WE DONT TOUCH IT 1456 014507 3200 DCA LOOKUP /SAVE NEGATIVE NUMBER TO MOVE 1457 014510 1200 TAD LOOKUP /ADD NUMBER TO LOC 17 1458 014511 1017 TAD 17 /TO FIND ADDR(SECOND) 1459 014512 3341 DCA PPTR1 /USE 17 1460 014513 1034 TAD INFWDS /GET NUMBER OF AIW IN INPUT 1461 014514 7041 CIA /NEGATE 1462 014515 7001 IAC /ADD 1 1463 014516 7500 SMA /SKIP IF MORE THAN 1 AIW 1464 014517 5336 JMP ZEROUT /ZERO OUTPUT AIW 1465 014520 3030 DCA TEMP /SAVE COUNT 1466 014521 2036 MOVEM, ISZ GPTR1 /BUMP PTR (1ST TIME PAST DATE) 1467 014522 6201 CDF 0 1468 014523 1436 TAD I GPTR1 /GET WORD 1469 014524 6211 ZLOOP, CDF 10 1470 014525 3741 DCA I PPTR1 /PUT IT INTO OUTPUT DIRECTORY 1471 014526 2341 ISZ PPTR1 1472 014527 2200 ISZ LOOKUP /HAS OUTPUT COUNT OVERFLOWED? 1473 014530 5334 JMP MORE /MORE OUTPUT TO DO 1474 014531 4257 JMS WRKEY /V9 1475 014532 7200 NOTRAN, CLA /EXIT 1476 014533 5702 JMP I ADDINF /WERE DONE 1477 014534 2030 MORE, ISZ TEMP /BUMP INPUT COUNT 1478 014535 5321 JMP MOVEM /IT HASNT OVERFLOWED 1479 014536 7240 ZEROUT, CLA CMA /NO MORE INPUT WORDS- 1480 014537 3030 DCA TEMP /SO FIX UP TO ZERO REST OF OUTPUT WORDS 1481 014540 5324 JMP ZLOOP /DO ALL THE OUTPUTS 1482 1483 014541 0000 PPTR1, 0 1484 014560 4036 PAGE 014561 3711 014562 0007 014563 3150 014564 3531 014565 7666 014566 4254 014567 7774 014570 1404 014571 0004 014572 4251 014573 3461 014574 0200 014575 3433 014576 7600 014577 4255 1485 /** THIS IS THE STARTING ADDRESS OF FOTP!!! 1486 1487 014600 4204 FOTP, JMS INIT /REGULAR ENTRY POINT 1488 014601 4204 JMS INIT /CHAIN ENTRY POINT 1489 014602 5777 JMP I (CDCALL /CALL COMMAND DECODER 1490 014603 5776 JMP I (BYPSCD /DONT CALL COMMAND DECODER 1491 014604 0000 INIT, 0 1492 014605 2204 ISZ INIT /DO SKIP RETURN 1493 014606 7300 CLA CLL 1494 014607 6201 CDF 0 1495 014610 1775 TAD I (7777 /GET BATCH CONTROL WORD 1496 014611 0374 AND (70 1497 014612 1254 TAD FCIF0 /FORM CIF TO BATCH FIELD 1498 014613 3300 DCA BATCIF 1499 014614 1775 TAD I (7777 1500 014615 6211 CDF 10 1501 014616 7006 RTL 1502 014617 7620 SNL CLA /BATCH RUNNING? 1503 014620 5230 JMP NOBTCH /NO 1504 014621 1276 BMOVLP, TAD BATOUT 1505 014622 3675 DCA I TTOUTP /MOVE IN SUBSTITUTE TTY OUTPUT CODE 1506 014623 2221 ISZ BMOVLP 1507 014624 2275 ISZ TTOUTP 1508 014625 2274 ISZ TTCNT4 1509 014626 5221 JMP .-5 1510 014627 7240 STA 1511 014630 3273 NOBTCH, DCA CORFUJ / =0 IF NO BATCH, -1 IF BATCH 1512 014631 1670 MOVMSG, TAD I ONCE /MOVE MSGS TO LOWER FIELD 1513 014632 6201 CDF 0 1514 014633 3671 DCA I ONLY 1515 014634 6211 CDF 10 1516 014635 1667 TAD I M1 1517 014636 6201 CDF 0 /MOVE CORE DETERMINER 1518 014637 3667 DCA I M1 /INTO FIELD 0 ALSO 1519 014640 6211 CDF 10 1520 014641 2267 ISZ M1 1521 014642 2270 ISZ ONCE 1522 014643 2271 ISZ ONLY 1523 014644 2272 ISZ CODE 1524 014645 5231 JMP MOVMSG 1525 014646 1377 TAD (2000 /SET RESTART LOCATION 1526 014647 6201 CDF 0 1527 014650 3773 DCA I (7745 1528 014651 1372 TAD (6403 /SET JSW 1529 014652 3771 DCA I (7746 1530 014653 6211 CDF 10 1531 014654 6202 FCIF0, CIF 0 1532 014655 4770 JMS I (CORE 1533 014656 1273 TAD CORFUJ /COMPUTE AMOUNT OF CORE EXCLUDING BATCH FIELD 1534 014657 1375 TAD (-1 1535 014660 7640 SZA CLA /SKIP IF WE HAVE ONLY 8K (OR 12K AND BATCH) 1536 014661 5604 JMP I INIT 1537 014662 1367 TAD (TAD EPTR /PATCH LOCATIONS IN FOTP 1538 014663 3766 DCA I (F2C1 /TO WORK WITH ONLY 8K 1539 014664 1365 TAD (NOP 1540 014665 3764 DCA I (F2C2 1541 014666 5604 JMP I INIT /START 1542 1543 014667 4600 M1, .&7600 1544 014670 5000 ONCE, MSGS 1545 014671 7200 ONLY, LSTFPG+200 1546 014672 7400 CODE, 7400 1547 1548 014673 0000 CORFUJ, 0 1549 014674 7774 TTCNT4, -4 1550 014675 3300 TTOUTP, TTYOUT 1551 014676 7410 BATOUT, SKP /OUTPUT TO BATCH LOG 1552 014677 7400 7400 1553 014700 7402 BATCIF, HLT 1554 014701 4701 TTYOUT+1&177+4600 /JMS I .-2 1555 /SUBR TO DETERMINE MACHINE SIZE - RETURNS NUMBER OF 1556 /BANKS IN AC. 1557 /MUST RUN IN FIELD 0. 1558 1559 014702 0000 CORE, 0 1560 014703 1355 TAD C6203 1561 014704 6214 RDF 1562 014705 3350 DCA CORRTN 1563 014706 6201 CDF 0 1564 014707 1775 TAD I (7777 1565 014710 0374 AND (70 1566 014711 7450 SNA /DOES LOCATION 7777 SPECIFY CORE SIZE? 1567 014712 5316 JMP CORELP /NO 1568 014713 7112 CLL RTR /YES - BELIEVE IT. 1569 014714 7010 RAR 1570 014715 5350 JMP CORRTN 1571 014716 6201 CORELP, CDF 0 /NEEDED FOR PDP-8L 1572 014717 1354 TAD TRYFLD /GET FLD TO TST 1573 014720 7106 CLL RTL 1574 014721 7004 RAL 1575 014722 0333 AND COR70 /MASK USEFUL BITS 1576 014723 1316 TAD CORELP 1577 014724 3325 DCA .+1 /SET UP CDF TO FLD 1578 014725 0000 COR706, 0 1579 014726 1752 TAD I CORLOC /SAV CURRENT CONTENTS 1580 014727 7000 NOP /HACK FOR PDP-8 1581 014730 3325 DCA .-3 1582 014731 1327 TAD .-2 /7000 IS A GOOD PATTERN 1583 014732 3752 DCA I CORLOC 1584 014733 0070 COR70, 70 /HACK FOR PDP-8.,NO-OP 1585 014734 1752 TAD I CORLOC /TRY TO READ BK 7000 1586 014735 7400 7400 /HACK FOR PDP-8,.NO-OP 1587 014736 1335 TAD .-1 /GUARD AGAINST WRAP AROUND 1588 014737 1353 TAD CORLOC+1 /TAD 1400 1589 014740 7640 SZA CLA 1590 014741 5346 JMP .+5 /NON EXISTENT FLD EXIT 1591 014742 1325 TAD COR706 /RESTORE CONTENS DESTROYED 1592 014743 3752 DCA I CORLOC 1593 014744 2354 ISZ TRYFLD /TRY NXT HIGHER FLD 1594 014745 5316 JMP CORELP 1595 014746 7240 STA 1596 014747 1354 TAD TRYFLD 1597 014750 0000 CORRTN, 0 1598 014751 5702 JMP I CORE 1599 014752 4735 CORLOC, COR70+2 /ADR TO TST IN EACH FLD 1600 014753 1400 1400 /7000+7400+1400=0 1601 014754 0001 TRYFLD, 1 /CURRENT FLD TO TST 1602 014755 6203 C6203, 6203 1603 1604 014764 3076 PAGE 014765 7000 014766 3002 014767 1026 014770 4702 014771 7746 014772 6403 014773 7745 014774 0070 014775 7777 014776 2003 014777 2000 1605 /FOTP'S ERROR MESSAGES 1606 /THESE RESIDE IN FIELD 0 LOCATIONS 7200-7577 1607 1608 MSGS, 1609 1610 NOPUNCH 1611 *LSTFPG+200 1612 ENPUNCH 1613 1614 017200 1114 ILLQ, TEXT /ILLEGAL ?%/ 017201 1405 017202 0701 017203 1440 017204 7745 017205 0000 1615 017206 1114 ILLA, TEXT /ILLEGAL *%/ 017207 1405 017210 0701 017211 1440 017212 5245 017213 0000 1616 017214 2331 SERR, TEXT /SYSTEM ERROR/ 017215 2324 017216 0515 017217 4005 017220 2222 017221 1722 017222 0000 1617 017223 0114 RENERR, TEXT /ALREADY EXISTS-/ 017224 2205 017225 0104 017226 3140 017227 0530 017230 1123 017231 2423 017232 5500 1618 017233 0617 VERNO, 0617;2420;4026 /FOTP V 017234 2420 017235 4026 1619 017236 7101 VERLOC, VERSION+60^100+SUBVER /ONE-DIGIT VERSION NUMBER AND 1 CHAR PATCH LEVEL 1620 017237 0000 0 1621 017240 0522 BADIRD, TEXT /ERROR READING INPUT DIRECTORY%/ 017241 2217 017242 2240 017243 2205 017244 0104 017245 1116 017246 0740 017247 1116 017250 2025 017251 2440 017252 0411 017253 2205 017254 0324 017255 1722 017256 3145 017257 0000 1622 017260 0522 ODRERR, TEXT /ERROR READING OUTPUT DIRECTORY%/ 017261 2217 017262 2240 017263 2205 017264 0104 017265 1116 017266 0740 017267 1725 017270 2420 017271 2524 017272 4004 017273 1122 017274 0503 017275 2417 017276 2231 017277 4500 1623 017300 0522 ODIERR, TEXT /ERROR WRITING OUTPUT DIRECTORY%/ 017301 2217 017302 2240 017303 2722 017304 1124 017305 1116 017306 0740 017307 1725 017310 2420 017311 2524 017312 4004 017313 1122 017314 0503 017315 2417 017316 2231 017317 4500 1624 017320 1617 SPRBLM, TEXT /NO ROOM, SKIPPING-/ 017321 4022 017322 1717 017323 1554 017324 4023 017325 1311 017326 2020 017327 1116 017330 0755 017331 0000 1625 017332 0522 INERR, TEXT /ERROR ON INPUT DEVICE-SKIPPING-/ 017333 2217 017334 2240 017335 1716 017336 4011 017337 1620 017340 2524 017341 4004 017342 0526 017343 1103 017344 0555 017345 2313 017346 1120 017347 2011 017350 1607 017351 5500 1626 017352 0522 OUERR, TEXT /ERROR ON OUTPUT DEVICE-SKIPPING-/ 017353 2217 017354 2240 017355 1716 017356 4017 017357 2524 017360 2025 017361 2440 017362 0405 017363 2611 017364 0305 017365 5523 017366 1311 017367 2020 017370 1116 017371 0755 017372 0000 1627 017373 2523 NFLEIN, TEXT /USE PIP FOR NON-FILE STRUCTURED INPUT%/ 017374 0540 017375 2011 017376 2040 017377 0617 017400 2240 017401 1617 017402 1655 017403 0611 017404 1405 017405 4023 017406 2422 017407 2503 017410 2425 017411 2205 017412 0440 017413 1116 017414 2025 017415 2445 017416 0000 1628 017417 1617 NOFILE, TEXT /NO FILES OF THE FORM:/ 017420 4006 017421 1114 017422 0523 017423 4017 017424 0640 017425 2410 017426 0540 017427 0617 017430 2215 017431 7200 1629 017432 0201 BIDIRM, TEXT /BAD INPUT DIRECTORY%/ 017433 0440 017434 1116 017435 2025 017436 2440 017437 0411 017440 2205 017441 0324 017442 1722 017443 3145 017444 0000 1630 017445 0201 BODORM, TEXT /BAD OUTPUT DIRECTORY%/ 017446 0440 017447 1725 017450 2420 017451 2524 017452 4004 017453 1122 017454 0503 017455 2417 017456 2231 017457 4500 1631 017460 0405 CNTDEL, TEXT /DELETES PERFORMED ONLY ON INPUT DEVICE GROUP 1/ 017461 1405 017462 2405 017463 2340 017464 2005 017465 2206 017466 1722 017467 1505 017470 0440 017471 1716 017472 1431 017473 4017 017474 1640 017475 1116 017476 2025 017477 2440 017500 0405 017501 2611 017502 0305 017503 4007 017504 2217 017505 2520 017506 4061 017507 0000 1632 017510 0301 CNTDE2, TEXT /CAN'T HANDLE MULTIPLE DEVICE DELETES%/ 017511 1647 017512 2440 017513 1001 017514 1604 017515 1405 017516 4015 017517 2514 017520 2411 017521 2014 017522 0540 017523 0405 017524 2611 017525 0305 017526 4004 017527 0514 017530 0524 017531 0523 017532 4500 1633 017533 1722 DSVED, TEXT /ORIGINAL DIRECTORY PRESERVED%/ 017534 1107 017535 1116 017536 0114 017537 4004 017540 1122 017541 0503 017542 2417 017543 2231 017544 4020 017545 2205 017546 2305 017547 2226 017550 0504 017551 4500 1634 017552 1517 FLSFMS, TEXT /MOUNT NEXT OUTPUT VOLUME:/ 017553 2516 017554 2440 017555 1605 017556 3024 017557 4017 017560 2524 017561 2025 017562 2440 017563 2617 017564 1425 017565 1505 017566 7200 1635 1636 FIELD 1 /SELF-STARTING BINARY LOADER STUFF FOR ABSLDR 1637 *FOTP 1638 $ AC2 7326 AC4000 7330 ACK 2023 ACM2 7344 unreferenced ACM3 7346 ADDINF 4502 AINO 2122 ALTOPT 7642 ASSIGN 3200 ATIT 2236 BADIRD 7240 BATCIF 4700 BATOUT 4676 BDPTR 0035 BIDIR 2354 BIDIRM 7432 BLOCK 2550 BLOCKN 3107 BLOOP 2421 BMOVLP 4621 BODIR 4247 BODORM 7445 BUFSIZ 0033 BYPSCD 2003 C6203 4755 CDCALL 2000 CHAR 2543 CINTER 3624 CLOERR 4251 CNT 0021 CNTDE2 7510 CNTDEL 7460 CNTUP 2042 CODE 4672 CONVTP 3247 COR70 4733 COR706 4725 CORE 4702 CORELP 4716 CORFUJ 4673 CORLOC 4752 CORRTN 4750 CRIT 4075 CRLF 3741 CTCDE 3476 CTYPE 3600 DATCHK 3325 DATE 7666 DCASPT 3423 DCAXR1 3417 DELERR 4114 DFLAG 3744 DIDEML 2061 DIRKEY 0007 DIROUT 3532 DOMOIN 2106 DSVED 7533 DYSTF1 4025 DYSTUF 4026 ECHO 3354 ECTMP 4022 EMPTY 2513 ENDCHK 3506 ENTCNT 2552 EPNEXT 2544 EPTR 0026 ERROR 3711 EXERR 4472 F2C1 3002 F2C2 3076 FAKBDY 3400 FAKHND 0200 FAKUSR 3433 FCIF0 4654 FIVE 2001 FIXDIR 3471 FLSFMS 7552 FLSRSM 2710 FNDLST 2226 FOTP 4600 FPAGE 0025 FUNCT2 4235 GETCNT 2270 GOBCK 4103 GOT1 2600 GPTR1 0036 GPTR2 2545 GTSXBT 3230 HADDR1 3205 HADDR2 3224 IDBUF 2211 IFCNT 0032 ILLA 7206 ILLQ 7200 INBUFR 0000 INCTLW 3105 INDERR 2352 INEOF 0037 INERR 7332 INFPTR 0022 INFWDS 0034 INHAND 0024 INIT 4604 INSCNT 0027 INTERC 3641 K7450 2275 unreferenced LFLAG 2546 LOOKUP 4400 LSTFPG 7000 M1 4667 MATFLG 2551 MDATE 3341 MEXT 2471 MLP 2445 MN1 2432 MOIN 4123 MORE 4534 MOV 2073 MOVEIT 3062 MOVEM 4521 MOVENT 2626 MOVMSG 4631 MSGS 5000 MSIZE 3042 MUSTWT 3527 NBLOCK 2400 NCNT 2547 NENT 2510 NFIN 2350 NFLEIN 7373 NFUNCT 3150 NM1 2472 NMEPLC 4021 NOBTCH 4630 NODEL 2732 NOFILE 7417 NONUDA 4454 NOPT 4060 NOPT1 4057 NOPTIM 2322 NOROOM 4265 NORUMX 4040 NOSUB 2305 NOSUBS 3445 NOTRAN 4532 NOUTFL 4332 NOVER 3522 NPG 3000 NSETGD 2703 NULLCK 2052 OBLCKN 3127 OBLOCK 4501 ODBUF 4317 ODERR 4243 ODIERR 7300 ODIRIN 4303 ODRERR 7260 ODSPEC 2074 OFCNT 3144 OKFLAG 0031 ONCE 4670 ONDERR 2120 ONLY 4671 OPT1 7643 OPT2 7644 OTAB 4124 OUBUFR 4600 OUCTLW 3125 OUERR 7352 OUHAND 0023 PG1 2200 PIT 4213 PLACE 4411 PLOOP 3720 PNLOOP 4004 PNMSUB 4000 POUTNM 4036 PPTR1 4541 PRINTE 4200 PTR 0020 QINO 2124 RDERR 4023 READKB 3313 RENAME 4420 RENERR 7223 RESTOR 3667 RETLOC 3470 RNAM 4442 ROTR6 3242 S1C 2010 S4L 2020 SAYNON 4043 SBLKN 3041 SCODE 3705 SDFLG 2347 SEGNO 4467 SERR 7214 SETGD 2702 SFUDG 2117 SPOT 4255 SPOT1 4261 SPRBLM 7320 SPURGE 3635 STAR 2002 SUBVER 0001 SVDATE 3530 T2 3623 TABAD 3467 TCHAR 3312 TEMP 0030 TLP 4046 TRFLG 2735 TRYFLD 4754 TSTEXT 2651 TTCNT4 4674 TTOUTP 4675 TTY 3275 TTYOUT 3300 TWOPAG 3213 TYPE 3256 TYPFND 2346 UNFAK 3461 UPPCK 3631 USEROD 4122 VERLOC 7236 unreferenced VERNO 7233 VERSIO 0011 WILD 2467 WILDA 2536 WILDNM 2444 WRKEY 4457 WRTDIR 3531 WRTERR 4034 XR 0010 XR1 0011 XR2 0012 ZEROUT 4536 ZLOOP 4524