File: FOTP50.LS of Disk: V50/Source/Source-Listing-PAL-1
(Source file text)
/FOTP V50 FOR OS/8 V50 PAL8-V50X 01-JUN-87 PAGE 1 /FOTP V50 FOR OS/8 V50 / / / / / / / / / /COPYRIGHT (C) 1974,1975 BY DIGITAL EQUIPMENT CORPORATION / AND 1979,1980 BY DATAPLAN GMBH / AND 2015 W. VAN DER MARK / / / / / / / / / /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. / / / / / / / / / / / FOTP (FILE ORIENTED TRANSFER PROGRAM) H.J. /CORE MAP /FROM TOP OF CORE / FIELD 2 GETS CONDITIONALLY USED AS BUFFER / FIELD 1 /FOTP V50 FOR OS/8 V50 PAL8-V50X 01-JUN-87 PAGE 1-1 / 7777-7600 MONITOR / 7577-4600 INCORE OUTPUT DIRECTORY / 4577-2000 FOTP CODE / 1777-0 RESIDENT USR / / FIELD 0 / 7777-7600 MONITOR / 7577-7200 ERROR MESSAGES / 7177-0 WORK AREA AS: / / AT TOP- OUTPUT HANDLER IF NEEDED / 1 OR 2 PAGES / INPUT HANDLER IF NEEDED / 1 OR 2 PAGES / INPUT DEVICES DIRECTORY / (ONLY USED PORTION) / THE TRANSFER BUFFER IN 8K / IS WHAT EVER REMAINS. /FIXES FOR MAINTENANCE RELEASE: (S.R. 5-AUG-75) /1. CHANGED COPYRIGHT DATE /2. INCORPORATED SEQ #1 PATCH (DSN MARCH 1975) / PERMITS FOTP TO RECOVER FROM A MONITOR ERROR 6 / BY UNFAKING THE SYSTEM HANDLER /3. UPDATED FOTP VERSION NUMBER TO V8 /4. ADDED SPACE FOR A PATCH LEVEL /5. ALLOWED /T SWITCH TO WORK IN CONJUNCTION WITH /R /6. PERMITS RENAMING A FILE TO IT'S OWN NAME /7. IF NO OUTPUT DEVICE IS SPECIFIED WITH /R, / ASSUME OUT DEV=INPUT DEVICE. /8. FIXED BUG RE ADDITIONAL INFO WORDS /FOTP V50 FOR OS/8 V50 PAL8-V50X 01-JUN-87 PAGE 2 /PAGE 0 LOCATIONS OS/8 USR WON'T MANGLE 0020 PTR=20 0021 CNT=21 0022 INFPTR=22 0023 OUHAND=23 0024 INHAND=24 0025 FPAGE=25 0026 EPTR=26 0027 INSCNT=27 0030 TEMP=30 0031 OKFLAG=31 0032 IFCNT=32 0033 BUFSIZ=33 0034 INFWDS=34 0035 BDPTR=35 0036 GPTR1=36 0037 INEOF=37 /AUTO INDEX REGISTERS USR WILL ALLOW ME TO USE TEMPORARILY 0010 XR=10 0011 XR1=11 0012 XR2=12 /VARIOUS CONSTANTS THAT CAN BE GENERATED 7326 AC2=CLA CLL CML RTL 7330 AC4000=CLA CLL CML RAR 7344 ACM2=CLA CLL CMA RAL 7346 ACM3=CLA CLL CMA RTL / LOCATIONS REFERENCED IN OS/8 7642 ALTOPT=7642 7643 OPT1=7643 7644 OPT2=7644 7666 DATE=7666 0007 DIRKEY=7 /"DIRECTORY SEGMENT IN CORE" KEY /SYMBOLIC FOTP LOCATIONS: 4600 OUBUFR= 4600 /OUTPUT BUFFER - IN FIELD 1 0000 INBUFR= 0 /INPUT BUFFER - IN FIELD 0 7000 LSTFPG= 7000 /FIRST LOC OF LAST FREE PAGE IN FIELD 0 0200 FAKHND= 200 /LOCATION OF OS/8 FAKEOUT HANDLER DECIMAL 0062 VERSION=50 /VERSION NUMBER 0330 SUBVER="X /SUB VERSION (PATCH LEVEL) OCTAL /GERMAN=1 /NOT ANYMORE /FOTP V50 FOR OS/8 V50 PAL8-V50X 01-JUN-87 PAGE 3 /STARTS AT 4600 IN FIELD 1 (ONCE ONLY CODE) /SAVE INFO: / .LOAD FOTP(89P) / .SAVE SYS FOTP;14600 0001 FIELD 1 2000 *2000 012000 4777 CDCALL, JMS I (200 /SEE WHAT THE PERSON WANTS 012001 0005 FIVE, 5 012002 5200 STAR, 5200 /IN SPECIAL MODE 012003 4776 BYPSCD, JMS I (INTERC /CATCH CALLS TO 7600 012004 1775 TAD I (7600 /SAVE USER OUTPUT DEVICE 012005 3774 DCA I (USEROD /-FOR LATER /FOTP V50 FOR OS/8 V50 PAL8-V50X 01-JUN-87 PAGE 4 / CHECK FOR ? IN OUTPUT SPECIFICATION 012006 1373 TAD (-10 /8CHARACTERS TO LOOK AT 012007 3021 DCA CNT /CNT HAVING -10 PUTS US AT FIRST CHAR 012010 1372 S1C, TAD (7605 012011 4771 JMS I (GTSXBT /GET A CHAR 012012 1370 TAD (-"?!7700 /CHECK FOR ? 012013 7650 SNA CLA 012014 5337 JMP QINO /? IN OUTPUT NOT ALLOWED 012015 2021 ISZ CNT 012016 5210 JMP S1C / CHECK FOR EMBEDDED * IN ANY SPECIFICATION 012017 1372 TAD (7605 012020 3020 S4L, DCA PTR 012021 1373 TAD (-10 012022 3021 DCA CNT 012023 1020 ACK, TAD PTR 012024 4771 JMS I (GTSXBT 012025 1367 TAD (-"*!7700 /CHECK TO SEE IF CHARACTER * 012026 7640 SZA CLA /SKIP IF IT IS 012027 5242 JMP CNTUP /GO LOOK AT NEXT 012030 7326 AC2 012031 1021 TAD CNT /ARE WE AT EXTENSION 012032 7440 SZA /SKIP IF YES 012033 1366 TAD (6 /ARE WE AT START OF FILENAME? 012034 7650 SNA CLA /SKIP IF NOT 012035 2021 ISZ CNT /BUMP COUNT ONLY IF OK 012036 1020 TAD PTR /LOOK AT NEXT CHAR 012037 4771 JMS I (GTSXBT 012040 7640 SZA CLA /SKIP IF ITS NULL - OK 012041 5335 JMP AINO /ERROR 012042 2021 CNTUP, ISZ CNT /BUMP TO NEXT CHAR 012043 5223 JMP ACK /CONTINUE CHECKING 012044 1420 TAD I PTR /ANY MORE INPUT 012045 7650 SNA CLA /SKIP IF THERE IS 012046 5252 JMP NULLCK 012047 1201 TAD FIVE /BUMP TO NEXT ENTRY 012050 1020 TAD PTR 012051 5220 JMP S4L / CHECK FOR NULL OUTPUT SPECIFICATION AND MAKE *.* 012052 1765 NULLCK, TAD I (7601 /WAS OUTPUT FILENAME GIVEN? 012053 7640 SZA CLA /SKIP IF NONE 012054 5261 JMP DIDEML 012055 1202 TAD STAR /PUT AN ASTERISK IN 012056 3765 DCA I (7601 /FILENAME 012057 1202 TAD STAR 012060 3764 DCA I (7604 /AND EXTENSION /FOTP V50 FOR OS/8 V50 PAL8-V50X 01-JUN-87 PAGE 5 /THIS CODE SETS A DEFAULT OUTPUT DEVICE ON DELETE 012061 1775 DIDEML, TAD I (7600 /IS AN OUTPUT DEVICE SPECIFIED? 012062 7440 SZA /SKIP IF NOT 012063 5271 JMP ODSPEC /NOTE DEVICE NUMBER IN AC 012064 4314 JMS SETSDR /SET SD AND R FLAG 012065 1327 TAD SDFLG 012066 1330 TAD RFLG 012067 7640 SZA CLA /IF /D OR /R 012070 1772 MOV, TAD I (7605 /WE'LL SUBSTITUTE FIRST INPUT DEVICE FOR USER 012071 0363 ODSPEC, AND (17 /CLEAR USER SPECIFIED LENGTH 012072 3775 DCA I (7600 /WE KNOW BETTER /THE FOLLOWING BRINGS IN THE OUTPUT DEVICE HANDLER, /READS THE DIRECTORY INTO CORE AND VERIFIES IT. 012073 1362 TAD (LSTFPG /SET THE FREE SPACE POINTER 012074 3025 DCA FPAGE /TO THE LAST FREE PAGE IN FIELD 0 012075 1775 TAD I (7600 /IS THERE AN OUTPUT DEVICE? 012076 7440 SZA /IF NO OUTPUT, DON'T FETCH HANDLER 012077 4761 JMS I (ASSIGN /GET THE HANDLER AND ALLOCATE ITS SPACE 012100 3023 DCA OUHAND /AC RETURNS HANDLER ENTRY POINT 012101 4760 JMS I (ODIRIN /READ IN THE OUTPUT DIRECTORY 012102 1372 TAD (7605 /INGIALIZE INPUT POINTER /THIS IS THE BEGINING OF THE INPUT FILE LOOP 012103 3022 DOMOIN, DCA INFPTR /POINTER TO CURRENT INPUT 012104 1422 TAD I INFPTR /WHEN 0 NO MORE INPUT 012105 7450 SNA /SKIP IF MORE TO DO 012106 5757 JMP I (ENDCHK /DO END PROCESSING 012107 4761 JMS I (ASSIGN /ASSIGN AND ALLOCATE SPACE FOR INPUT HANDLER 012110 3024 DCA INHAND /AND SAVE ITS ENTRY ADDRESS /THE FOLLOWING 2 INSTRUCTIONS HELP AVOID ALL KINDS OF /PROBLEMS WITH THE MONITOR. IF A HANDLER GETS LOADED, THE /MONITOR MAKES IT RESIDENT FOR OTHER PEOPLE AND DOESN'T DELETE /ITS RESIDENT STATUS IF A REQUEST IS MADE FOR A NEW HANDLER /TO BE LOADED OVER IT IF THE NEW HANDLER IS ALREADY RESIDENT 012111 1025 TAD FPAGE /SAVE FREE SPACE POINTER HERE 012112 3326 DCA SFUDG 012113 5756 JMP I (PG1 /LINK TO NEXT SECTION /FOTP V50 FOR OS/8 V50 PAL8-V50X 01-JUN-87 PAGE 6 012114 0000 SETSDR, 0 012115 1755 TAD I (OPT1 012116 0354 AND (400 012117 7106 CLL RTL /PUT /D BIT INTO AC 0 012120 7004 RAL 012121 3327 DCA SDFLG 012122 1753 TAD I (OPT2 012123 0352 AND (100 012124 3330 DCA RFLG /SET RENAME FLAG 012125 5714 JMP I SETSDR 012126 0000 SFUDG, 0 012127 0000 SDFLG, 0 012130 0000 RFLG, 0 012131 4751 RDOERR, JMS I (ERROR 012132 7604 ERRRDO+40 /READ-ONLY DEVICE 012133 4751 ONDERR, JMS I (ERROR 012134 7320 ODRERR+40 /ERROR READING OUT DIR 012135 4751 AINO, JMS I (ERROR 012136 7246 ILLA+40 /ILLEGAL * 012137 4751 QINO, JMS I (ERROR 012140 7240 ILLQ+40 /ILLEGAL ? 012151 3710 012152 0100 012153 7644 012154 0400 012155 7643 012156 2200 012157 3506 012160 4304 012161 3200 012162 7000 012163 0017 012164 7604 012165 7601 012166 0006 012167 7726 012170 7701 012171 3230 012172 7605 012173 7770 012174 4122 012175 7600 012176 3640 012177 0200 2200 PAGE /FOTP V50 FOR OS/8 V50 PAL8-V50X 01-JUN-87 PAGE 7 /CHECK FOR NON FILE STRUCTURED INPUT /WE CAN'T HANDLE IT 012200 1422 PG1, TAD I INFPTR 012201 1377 TAD (7757 012202 3030 DCA TEMP 012203 1430 TAD I TEMP /IS FILE STRUCTURED BIT ON 012204 7700 SMA CLA /SKIP IF IT IS 012205 5343 JMP NFIN /ERROR 012206 6202 CIF 0 012207 4424 JMS I INHAND /READ INPUT DEVICES DIRECTORY 012210 1400 1400 012211 0000 IDBUF, INBUFR 012212 0001 1 012213 5345 JMP INDERR /ERROR 012214 6201 CDF 0 012215 1611 TAD I IDBUF /MAKE SURE THAT THE 012216 7140 CMA CLL /DIRECTORY OF 012217 1776 TAD I (INBUFR+2 /THE DEVICE IS 012220 6211 CDF 10 /GOOD 012221 7420 SNL 012222 1375 TAD (-120 /(SEE COMMENT ON TEST IN ROUTINE "ODIRIN") 012223 7630 SZL CLA /SKIP IF ITS GOOD 012224 5347 JMP BIDIR /ERROR /FIND LAST BLOCK OF DIRECTORY 012225 7326 AC2 /LINK TO NEXT SGMENT NUMBER 012226 3020 FNDLST, DCA PTR /SAVE IT 012227 6201 CDF 0 012230 1420 TAD I PTR /IS THERE ANOTHER SEGMENT? 012231 7650 SNA CLA /SKIP IF YES 012232 5236 JMP ATIT /NO...WE ARE POINTING TO LAST 012233 1020 TAD PTR /BUMP TO NEXT SEGMENT 012234 1374 TAD (400 012235 5226 JMP FNDLST /LOOK AGAIN 012236 7346 ATIT, ACM3 /AC=7775 012237 0020 AND PTR /AND OUT 2'S BIT 012240 1374 TAD (400 /TOTAL SIZE OF IN CORE DIRECTRY 012241 7041 CIA /NEGATE FOR ISZ 012242 3021 DCA CNT 012243 1025 TAD FPAGE /WE ARE GOING TO PACK DIRECTORY 012244 1373 TAD (200 /RIGHT UP TO INPUT HANDLER SO 012245 1021 TAD CNT /WE GET MAX SIZE TRANSFER BUFFER 012246 3025 DCA FPAGE /ADJUSTED FREE CORE POINTER 012247 7040 CMA 012250 1025 TAD FPAGE 012251 3011 DCA XR1 /SET UP PLACE TO MOVE TO 012252 7040 CMA 012253 3012 DCA XR2 /ALWAYS COMES FROM 0 012254 1412 TAD I XR2 /MOVE 012255 3411 DCA I XR1 /IT 012256 2021 ISZ CNT 012257 5254 JMP .-3 /FOTP V50 FOR OS/8 V50 PAL8-V50X 01-JUN-87 PAGE 8 /SET SAME DEVICE FLAG FLAG 4000 IF /D /AND SET RENAME FLAG 012260 6211 CDF 10 012261 4772 JMS I (SETSDR / COUNT NUMBER OF INPUTS FROM SAME DEVICE /ALSO MAKE NULL INPUT FILENAMES *.* /BUT ONLY IF NOT /D 012262 1022 TAD INFPTR /OK LETS GO THROUGH 012263 3020 DCA PTR /THE INPUT SPECIFICATIONS 012264 2020 GETCNT, ISZ PTR /POINT TO FILENAME WORD 012265 1371 TAD (3 /SET TEMP TO POINT TO EXTENSION 012266 1020 TAD PTR 012267 3030 DCA TEMP 012270 1770 TAD I (SDFLG /ARE WE DOING /D 012271 7450 K7450, SNA /SKIP IF YES - AC NON 0 012272 1420 TAD I PTR /NO /D - LOOK AT FILENAME 012273 7640 SZA CLA /ITS NULL PUT IN *.* 012274 5301 JMP NOSUB /DONT CHANGE IT 012275 1367 TAD (5200 /MAKE IT * 012276 3420 DCA I PTR 012277 1367 TAD (5200 /.* 012300 3430 DCA I TEMP 012301 7201 NOSUB, CLA IAC /TEMP+1 POINTS TO NEW INPUT 012302 1030 TAD TEMP 012303 3020 DCA PTR /NOTE CNT WAS SET BY ISZ'ING TO ZERO 012304 2021 ISZ CNT /KEEP COUNT OF DEVICES IN GROUP 012305 1766 TAD I (OPT2 /CHECK FOR /U (UGLY SWITCH) 012306 0365 AND (10 012307 7640 SZA CLA /SKIP IN NO /U 012310 5316 JMP NOPTIM /WERE FORCED TO DO ONE AT A TIME 012311 1420 TAD I PTR /COMPARE DEVICE NUMBERS 012312 7041 CIA /IN A GROUPING 012313 1422 TAD I INFPTR 012314 7650 SNA CLA /SKIP IF NEW GROUP 012315 5264 JMP GETCNT /WE'LL DO ALL THE SAME AT ONCE 012316 1021 NOPTIM, TAD CNT 012317 7041 CIA /NEGATE COUNT 012320 3027 DCA INSCNT /AS NUMBER OF INPUTS TO DO AT ONCE 012321 1020 TAD PTR /SAVE WHERE TO CONTINUE FOR REST 012322 3764 DCA I (MOIN /FOTP V50 FOR OS/8 V50 PAL8-V50X 01-JUN-87 PAGE 9 /THE FOLLOWING CHECKS TO SEE IF A OPERATION /IS BEING DONE FROM A DEVICE TO ITSELF 012323 1763 TAD I (7600 /GET DEVICE NUMBER 012324 1362 TAD (7646 /HANDLER ENTRY POINT TABLE 012325 3030 DCA TEMP 012326 1422 TAD I INFPTR /GET INPUT ENTRY POINT 012327 1362 TAD (7646 012330 3020 DCA PTR 012331 1420 TAD I PTR /CHECK INPUT ENTRY POINT AGAINST 012332 7041 CIA 012333 1430 TAD I TEMP /OUTPUT ENRTY POINT 012334 7650 SNA CLA /SKIP IF THEY ARE DIFFERENT 012335 2770 ISZ I (SDFLG /SET SAME DEVICE FLAG, AC11 012336 1025 TAD FPAGE /SET POINTER TO 012337 3035 DCA BDPTR /START OF DIRECTORY 012340 3342 DCA TYPFND /CLEAR FOUND FILE FLAG 012341 5761 JMP I (NBLOCK /LINK TO SOME MORE 012342 0000 TYPFND, 0 012343 4760 NFIN, JMS I (ERROR 012344 7433 NFLEIN+40 /NON FILE STRUCTED INPUT 012345 4760 INDERR, JMS I (ERROR 012346 7300 BADIRD+40 /ERROR READING INPUT DIR 012347 4760 BIDIR, JMS I (ERROR 012350 7472 BIDIRM+40 /NOT A GOOD DIRECTORY 012360 3710 012361 2400 012362 7646 012363 7600 012364 4123 012365 0010 012366 7644 012367 5200 012370 2127 012371 0003 012372 2114 012373 0200 012374 0400 012375 7660 012376 0002 012377 7757 2400 PAGE /FOTP V50 FOR OS/8 V50 PAL8-V50X 01-JUN-87 PAGE 10 /THIS IS THE SUPERQUASIFACETED DIRECTORY PATTERN MATCHING ROUTINE /THE INPUT DIRECTORY IS SEARCHED HERE, IF A MATCH /IS FOUND USING THE INPUT GROUPING /GOT1 GETS CONTROL WITH -BLOCKS IN THE AC 012400 7240 NBLOCK, STA 012401 1035 TAD BDPTR /POINTER TO START OF DIR BLOCK 012402 3010 DCA XR 012403 6201 CDF 0 012404 1410 TAD I XR /GET COUNT OF NUMBER OF ENTRIES 012405 3352 DCA ENTCNT /SAVE LOCALLY TO AVOID HERB'S BUG 012406 1410 TAD I XR /GET BLOCK NUMBER FIRST FILE 012407 3350 DCA BLOCK 012410 1410 TAD I XR /NEXT SEGMENT NUMBER 012411 3346 DCA LFLAG /IF IT 0 WE AT END 012412 2010 ISZ XR /SKIP TENTATIVE FILE WORD 012413 1410 TAD I XR /GET -NUMBER OF INFO WORDS 012414 7041 CIA /MAKE POSITVE 012415 3034 DCA INFWDS 012416 1010 TAD XR /POINT TO FIRST 012417 7001 IAC /ENTRY 012420 3026 DCA EPTR 012421 1426 BLOOP, TAD I EPTR /GET FILENAME WORD 012422 6211 CDF 10 012423 7650 SNA CLA /SKIP IF FILE HERE 012424 5313 JMP EMPTY /NO... ITS REALLY AN EMPTY 012425 1027 TAD INSCNT /SET NUMBER OF INPUT TO LOOK 012426 3347 DCA NCNT /AT ALL AT ONCE 012427 3351 DCA MATFLG /CLEAR MATCH FLAG 012430 1022 TAD INFPTR /ADDRESS OF FIRST INPUT 012431 7410 SKP 012432 1345 MN1, TAD GPTR2 /ADDRESS OF CURRENT INPUT 012433 1377 TAD (5 /GTSXBT SUBR REQUIRES US TO 012434 3345 DCA GPTR2 /POINT TO END OF FIELD 012435 1026 TAD EPTR /POINT DIRECTORY POINTER TO 012436 1376 TAD (4 /END OF ENTRY FOR SAME REASON 012437 3036 DCA GPTR1 012440 1036 TAD GPTR1 /SET EPNEXT TO POINT TO 012441 1034 TAD INFWDS /MINUS NUMBER OF BLOCKS IN 012442 3344 DCA EPNEXT /FILE WORD 012443 1375 TAD (-10 /NUMBER OF CHARS TO LOOK AT 012444 3021 WILDNM, DCA CNT /FOTP V50 FOR OS/8 V50 PAL8-V50X 01-JUN-87 PAGE 11 012445 1345 MLP, TAD GPTR2 /OK - GET A CHARACTER FROM 012446 4774 JMS I (GTSXBT /STRING 012447 1373 TAD (-"*!7700 /IS IT AN * 012450 7450 SNA /SKIP IF NOT * 012451 5336 JMP WILDA /YEP... ITS A WILD CARD 012452 1372 TAD ("*-"? /IS IT A ? 012453 7450 SNA /SKIP IF NOT 012454 5267 JMP WILD /YES... FORCE MATCH ON THIS CHAR 012455 1371 TAD ("?&77 /RESTORE VALUE 012456 7041 CIA /NEGATE 012457 3343 DCA CHAR /AND SAVE 012460 1036 TAD GPTR1 /NOW GET CHAR FROM DIRECTORY 012461 6201 CDF 0 012462 4774 JMS I (GTSXBT 012463 6211 CDF 10 012464 1343 TAD CHAR /DO CHARS MATCH 012465 7640 SZA CLA /SKIP IF THEY DO 012466 5272 JMP NM1 /NO MATCH ON THIS INPUT 012467 2021 WILD, ISZ CNT /BUMP COUNT OF CHARS & POINTER 012470 5245 JMP MLP /COMPARE ALL 8 012471 2351 MEXT, ISZ MATFLG /A MATCH!!!!!!! 012472 7200 NM1, CLA /WILD CARD COMES HERE WITH ICHY AC 012473 2347 ISZ NCNT /HAVE WE CHECKED GROUP OF INPUTS 012474 5232 JMP MN1 /NO CHECK WHOLE GROUP 012475 1351 TAD MATFLG /HAVE THERE BEEN ANY MATCHES 012476 7640 SZA CLA /SKIP IF NOT 012477 1376 TAD (4 /WILL INVERT /V SWITCH 012500 1770 TAD I (OPT2 /ADD SWITCH 012501 0376 AND (4 /ISOLATE IT 012502 6201 CDF 0 /FOTP V50 FOR OS/8 V50 PAL8-V50X 01-JUN-87 PAGE 12 /SKIPS IF INPUT DIRECTORY ENTRY IS NOT CANDIDATE /THAT IS - IF A MATCH WAS NOT FOUND BETWEEN ANY /OF THE INPUTS AND /V WAS NOT SPECIFIED OR /A MATCH WAS FOUND AND /V WAS SPECIFIED /THIS ALLOWS /V TO MEAN EVERYTHING BUT... 012503 7640 SZA CLA 012504 1744 TAD I EPNEXT /GET -NUMBER OF BLOCKS 012505 6211 CDF 10 012506 7440 SZA /SKIPS IF TENTATIVE OR NOT CANDIDATE 012507 5767 JMP I (GOT1 /PROCESS FILE 012510 1344 NENT, TAD EPNEXT /POINT EPTR TO BLOCK 012511 3026 DCA EPTR /COUNT OF FILE 012512 7410 SKP 012513 2026 EMPTY, ISZ EPTR /ON EMPTY MAKE EPTR POINT TO BLOCK COUNT 012514 6201 CDF 0 012515 1426 TAD I EPTR /GET BLOCK COUNT 012516 7041 CIA /MAKE POSITIVE 012517 1350 TAD BLOCK 012520 3350 DCA BLOCK /KEEP SUM 012521 2026 ISZ EPTR /POINT TO NEXT ENTRY 012522 2352 ISZ ENTCNT /BUMP THE NUMBER OF ENTRIES 012523 5221 JMP BLOOP /NOT DONE WITH SEGMENT 012524 6211 CDF 10 012525 1366 TAD (400 /BUMP TO NEXT SEGMENT 012526 1035 TAD BDPTR 012527 3035 DCA BDPTR 012530 1346 TAD LFLAG /DID WE PROCESS LAST SEGMENT 012531 7640 SZA CLA /SKIP IF WE DID 012532 5200 JMP NBLOCK /PROCESS NEW SEGNENT 012533 1765 TAD I (SFUDG /RESET FREE CORE POINTER 012534 3025 DCA FPAGE /TO PRESERVE INPUT HANDLER IF PRESENT 012535 5764 JMP I (SAYNON /FOTP V50 FOR OS/8 V50 PAL8-V50X 01-JUN-87 PAGE 13 /HANDLE WILD CARDS 012536 1021 WILDA, TAD CNT /GET CURRENT CHAR POSITION 012537 1363 TAD (6 /ADD SIZE OF FILENAME 012540 7510 SPA /SKIP IF IN EXTENSION FIELD 012541 5244 JMP WILDNM /THIS BUMPS TO EXTENSION 012542 5271 JMP MEXT /THIS MEANS IT HAS TO BE A MATCH 012543 0000 CHAR, 0 012544 0000 EPNEXT, 0 012545 0000 GPTR2, 0 012546 0000 LFLAG, 0 012547 0000 NCNT, 0 012550 0000 BLOCK, 0 012551 0000 MATFLG, 0 012552 0000 ENTCNT, 0 012563 0006 012564 4043 012565 2126 012566 0400 012567 2600 012570 7644 012571 0077 012572 7753 012573 7726 012574 3230 012575 7770 012576 0004 012577 0005 2600 PAGE /FOTP V50 FOR OS/8 V50 PAL8-V50X 01-JUN-87 PAGE 14 012600 3032 GOT1, DCA IFCNT /-# OF BLOCKS IN AC 012601 4777 JMS I (DATCHK /VERIFY IF /C OR /O ALSO MATCH 012602 2776 ISZ I (TYPFND /COMES BACK IF THEY DO - /TURN OFF NO FILES MSG FOR THIS INPUT GROUP 012603 1775 TAD I (OPT2 /CHECK FOR /T 012604 0374 AND (20 012605 7650 SNA CLA /SKIP IF /T 012606 1034 TAD INFWDS /SEE IF DATE PRESENT 012607 6201 CDF 0 012610 7640 SZA CLA /SKIP IF NO DATE OR /T 012611 1436 TAD I GPTR1 012612 6211 CDF 10 012613 7440 SZA /SKIP IF NO DATE OR /T 012614 3773 DCA I (DATE /GIVE MONITOR FILES DATE 012615 1372 TAD (-4 /MAKE 2 COPIES 012616 3021 DCA CNT /OF THE INPUT 012617 7040 CMA /FILE NAME IN 012620 1026 TAD EPTR /FIELD 1 TO 012621 3010 DCA XR /WORK WITH THEM 012622 1371 TAD (SPOT-1 /MAKE THEM AT SPOT 012623 3011 DCA XR1 /AND SPOT1 012624 1370 TAD (SPOT1 /SPOT1 WILL ALWAYS 012625 3020 DCA PTR /CONTAIN THE ORIGINAL 012626 6201 MOVENT, CDF 0 /AND SPOT WILL 012627 1410 TAD I XR /CONTAIN THE 012630 6211 CDF 10 /UPDATED VERSION AS 012631 3420 DCA I PTR /REFLECTED FROM 012632 1420 TAD I PTR /THE OUTPUT SPECIFICATION 012633 2020 ISZ PTR /- 012634 3411 DCA I XR1 /- 012635 2021 ISZ CNT /- 012636 5226 JMP MOVENT /- 012637 1731 TAD I CL7601 /GET OUTPUT FILENAME 012640 1367 TAD (-5200 /WAS IT * 012641 7650 SNA CLA /SKIP IF NOT 012642 5251 JMP TSTEXT /YES... LEAVE FILENAME ALONE 012643 1731 TAD I CL7601 /REPLACE INPUT NAME 012644 3766 DCA I (SPOT /WITH GIVEN 012645 1765 TAD I (7602 /OUTPUT 012646 3764 DCA I (SPOT+1 /SPECIFICATION 012647 1763 TAD I (7603 012650 3762 DCA I (SPOT+2 /- /FOTP V50 FOR OS/8 V50 PAL8-V50X 01-JUN-87 PAGE 15 012651 1761 TSTEXT, TAD I (7604 /SEE IF EXTENSION 012652 1367 TAD (-5200 /WAS * 012653 7650 SNA CLA /SKIP IF IT WASNT 012654 5257 JMP .+3 /LEAVE INPUT DEFAULT ALONE 012655 1761 TAD I (7604 /REPLACE EXTENSION 012656 3760 DCA I (SPOT+3 /WITH GIVEN EXTENSION 012657 3337 DCA TRFLG /CLEAR THE TRANSFER FLAG 012660 1757 TAD I (RFLG /IS /R ON? 012661 1756 TAD I (SDFLG /OR /D OR INPUT DEV=OUTPUT DEV? 012662 7450 SNA /SKIP IF ANY 012663 5301 JMP SETGD /WE ARE DEFINITELY OK 012664 7700 SMA CLA /IF /D THEN CHECK OUTPUT 012665 1355 TAD (SPOT1-SPOT /OTHERWISE INPUT 012666 4754 JMS I (LOOKUP 012667 5302 JMP NSETGD /NO OUTPUT FILE GIVEN 012670 7450 SNA /AC=BLOCK NO OF FILE OR 0 IF NONE 012671 5302 JMP NSETGD /NO FILE - DO NOTHING *WM (WELL, ALMOST) 012672 3030 DCA TEMP /SAVE - WE MIGHT NEED IT 012673 1756 TAD I (SDFLG /IF OPERATION IS TRANSFER THEN /TRFLG IS SET IF FILE HAS NOT /MOVED; IF /D TRFLG MUST NOT BE /SET ; WE DONT CARE ABOUT /RENAME - ITS IRRELEVANT. 012674 7700 SMA CLA /SKIP IF /D- WILL CAUSE TRFLG=0 012675 1030 TAD TEMP /GET THE BLOCK FILE IS NOW AT 012676 7041 CIA /CHECK AGAINST ORIGINAL 012677 1753 TAD I (BLOCK /LOCATION 012700 7650 SNA CLA /SKIP IF IT MOVED - NOTE THAT /IF THIS SKIPS THE USER IS DOING /A PLAY WITH DEATH OPERATION 012701 2337 SETGD, ISZ TRFLG /ENABLE TRANSFERING OF THE FILE 012702 1757 NSETGD, TAD I (RFLG /GET RENAME FLAG 012703 7650 SNA CLA /PRINT INPUT NAME ON /D AND /R 012704 1756 TAD I (SDFLG /SET UP TO PROMPT OR LIST 012705 7710 SPA CLA /SKIP IF NOT /D 012706 1372 TAD (SPOT-SPOT1 /USE OUTPUT NAME 012707 1352 TAD (SPOT1+4 /USE INPUT NAME 012710 4751 JMS I (PRINTE /SEE IF HE WANTS TO BE PROMPTED /FOTP V50 FOR OS/8 V50 PAL8-V50X 01-JUN-87 PAGE 16 012711 1775 FLSRSM, TAD I (OPT2 012712 7006 RTL /PUT /N INTO LINK 012713 7600 CL7600, 7600 /GROUP 2 CLA 012714 1756 TAD I (SDFLG /CHECK FOR NO /D AND SAME DEV 012715 7750 SPA SNA CLA /SKIP IF NO /D AND SAME DEV 012716 1713 TAD I CL7600 /IS THERE AN OUTPUT? 012717 7470 SNA SZL /SKIP IF NO /N AND OUTPUT DEV /DIDNT SKIP IF NO /D AND SAME DEVICE 012720 5331 JMP NODEL /DONT DELETE 012721 4750 JMS I (FAKUSR /FAKE USR HANDLER CALLS 012722 4747 JMS I (200 /CALL USR 012723 0004 4 /CLOSE 012724 4256 SPOT /OUTPUT FILE NAME 012725 0000 0 012726 7610 CLA SKP /O.K. TO GET CLOSE ERROR NOW 012727 2746 ISZ I (WRTDIR /SIGNAL CHANGE MADE TO DIRECTRY 012730 4745 JMS I (UNFAK /FIXUP HANDLER ADDRESS AGAIN NODEL, 012731 7601 CL7601, 7601 /GROUP 3 CLA 012732 1757 TAD I (RFLG 012733 7640 SZA CLA /SKIP IF NOT /R 012734 5744 JMP I (RENAME /GO TO RENAME CODE 012735 1337 TAD TRFLG /SET AC NOT 0 IF TRANSFER GO AHEAD 012736 5743 JMP I (NPG /LINK TO SOME MORE 012737 0000 TRFLG, 0 012743 3000 012744 4420 012745 3461 012746 3531 012747 0200 012750 3433 012751 4200 012752 4266 012753 2550 012754 4400 012755 0004 012756 2127 012757 2130 012760 4261 012761 7604 012762 4260 012763 7603 012764 4257 012765 7602 012766 4256 012767 2600 012770 4262 012771 4255 012772 7774 012773 7666 012774 0020 012775 7644 012776 2342 012777 3324 /FOTP V50 FOR OS/8 V50 PAL8-V50X 01-JUN-87 PAGE 16-1 3000 PAGE /FOTP V50 FOR OS/8 V50 PAL8-V50X 01-JUN-87 PAGE 17 /THIS PAGE OF CODE PERFORMS FILE MOVES FROM /INPUT TO OUTPUT 013000 7650 NPG, SNA CLA /SKIP IF WE CAN DO TRANSFER 013001 5350 JMP NFUNCT /GO PROCESS NEXT ENTRY /THE FOLLOWING SMALL STRANGE PIECE OF CODE /DYNAMICALLY ALLOCATES THE BUFFER ACCORDING /TO THE FREE SPACE IN FIELD 0 (INCLUDING /DIRECTORY SHRINKING) OR ALLOCATES 15 BLOCKS /IN FIELD 2 IF ITS AVAILABLE. 013002 1377 F2C1, TAD (7400 /BECOMES TAD EPTR IF ONLY 8K 013003 0377 AND (7400 /CALCULATE FREE SPACE 013004 7104 RAL CLL /SIZE 013005 7006 RTL /AND SAVE 013006 7006 RTL /IT 013007 3033 DCA BUFSIZ 013010 1032 TAD IFCNT /SET THE OUTPUT 013011 7041 CIA /FILE COUNT 013012 3344 DCA OFCNT /AS POSITIVE NIMBER OF BLOCKS 013013 1344 TAD OFCNT /SET THE NUMBER 013014 0377 AND (7400 /OF BLOCKS 013015 7650 SNA CLA /UP FOR ENTER 013016 1344 TAD OFCNT /IF IT IS LESS 013017 7106 RTL CLL /THAN 256 OR 013020 7006 RTL /SET IT TO 0 013021 3030 DCA TEMP /FOR FILES GREATER THAN 256 013022 1376 TAD (SPOT /SET THE ADDRESS OF THE 013023 3241 DCA SBLKN /OUTPUT NAME 013024 1775 TAD I (7600 /IS THERE AN OUTPUT FILE? 013025 7450 SNA /SKIP IF THERE IS 013026 5350 JMP NFUNCT /DO NO TRANSFER 013027 1374 TAD (7757 /INDEX INTO TENTATIVE FILE 013030 3242 DCA MSIZE /TABLE IN ORDER TO 013031 1642 TAD I MSIZE /CLEAR OUT ANY 013032 0373 AND (7770 /TENTATIVE WE DONT WANT 013033 3642 DCA I MSIZE /THIS COMES IF AN I/O ERROR HIT 013034 1775 TAD I (7600 /DO THE ENTER 013035 4772 JMS I (FAKUSR /MAKE USR USE IN CORE HANDLER 013036 1030 TAD TEMP /ADD IN BLOCK COUNT 013037 4771 JMS I (200 013040 0003 3 /ENTER 013041 4256 SBLKN, SPOT 013042 0000 MSIZE, 0 013043 5770 JMP I (NOROOM /ENTER FAILED /FOTP V50 FOR OS/8 V50 PAL8-V50X 01-JUN-87 PAGE 18 013044 1767 TAD I (SVDATE /RESTORE REAL DATE TO MONITOR 013045 3766 DCA I (DATE 013046 4765 JMS I (UNFAK /REMOVE OUR FAKE HANDLER 013047 4764 JMS I (ADDINF /COPY ADDITIONAL INFO WORDS 013050 1032 TAD IFCNT /SEE IF ENTER SIZE 013051 7161 STL CIA /GIVEN BACK IS 013052 1242 TAD MSIZE /ENOUGH - HANDLES >255 AND 013053 7660 SNL SZA CLA /NON FILE STRUCTURED 013054 5770 JMP I (NOROOM /LENGTHS. NOT ENOUGH 013055 3037 DCA INEOF /CLEAR INPUT END OF FILE 013056 1241 TAD SBLKN /SET THE OUTPUT BLOCK NUMBER 013057 3327 DCA OBLCKN 013060 1763 TAD I (BLOCK /SET THE INPUT BLOCK NUMBER 013061 3307 DCA BLOCKN /FOTP V50 FOR OS/8 V50 PAL8-V50X 01-JUN-87 PAGE 19 /THE FOLLOWING PIECE OF CODE IS A TRICKY PIECE /THAT CALCULATES THE NUMBER OF BLOCKS TO READ 013062 1032 MOVEIT, TAD IFCNT /GET THE NUMBER OF BLOCKS 013063 7100 CLL /ITS NEGATIVE 013064 1033 TAD BUFSIZ /ADD ON BUFFER SIZE 013065 7420 SNL /SKIP IF MORE ROOM AVAILABLE THAN NEEDED 013066 3032 DCA IFCNT /OTHERWISE RESAVE NEW COUNT 013067 7430 SZL /SKIP IF NOT AT END OF FILE 013070 2037 ISZ INEOF /SET END OF FILE INDICATOR 013071 7041 CIA /MAKES -BUFSIZ+COUNT 013072 1033 TAD BUFSIZ /MAKES COUNT OF NUMBER OF BLOCK 013073 7112 RTR CLL /BUILD THE 013074 7012 RTR /INPUT CONTROL 013075 7012 RTR /WORD 013076 1362 F2C2, TAD (20 /BECOMES NOP IF ONLY 8K 013077 3305 DCA INCTLW /SET INPUT CONTROL WORD 013100 4761 JMS I (CINTER /CHECK FOR ^C 013101 7410 SKP /SKIP IF NOT 013102 5760 JMP I (CTCDE /ABORT OPERATION 013103 6202 CIF 0 013104 4424 JMS I INHAND /READ INPUT HUNK 013105 0000 INCTLW, 0 013106 0000 0 013107 0000 BLOCKN, 0 013110 5757 JMP I (RDERR /WELL- SCRATCH THAT FILE 013111 1307 TAD BLOCKN /UPDATE BLOCK COUNT 013112 1033 TAD BUFSIZ 013113 3307 DCA BLOCKN 013114 7330 AC4000 /SET THE OUTPUT 013115 1305 TAD INCTLW /CONTROL WORD 013116 3325 DCA OUCTLW 013117 4761 JMS I (CINTER /CHECK FOR ^C 013120 7410 SKP /SKIP IF NOT 013121 5760 JMP I (CTCDE /ABORT OPERATION 013122 2756 ISZ I (MUSTWT /SIGNAL REAL OUTPUT DONE 013123 6202 CIF 0 013124 4423 JMS I OUHAND /WRITE A HUNK OF FILE 013125 0000 OUCTLW, 0 013126 0000 0 013127 0000 OBLCKN, 0 013130 5755 JMP I (WRTERR /WHAT A CRUMBY OUTPUT DEVICE 013131 1327 TAD OBLCKN /UPDATE THE 013132 1033 TAD BUFSIZ /OUTPUT FILE 013133 3327 DCA OBLCKN /BLOCK NUMBER 013134 1037 TAD INEOF /SEE IF THATS ALL FOLKS 013135 7650 SNA CLA /SKIP IF WE TRANSFERED FILE 013136 5262 JMP MOVEIT /DO SOME MORE 013137 1775 TAD I (7600 /OK - LETS MAKE IT PERMANENT 013140 4772 JMS I (FAKUSR /TELL USR TO USE INCORE HANDLER 013141 4771 JMS I (200 013142 0004 4 /CLOSE 013143 4256 SPOT 013144 0000 OFCNT, 0 /FOTP V50 FOR OS/8 V50 PAL8-V50X 01-JUN-87 PAGE 19-1 013145 5754 JMP I (CLOERR /THIS IS IMPOSSIBLE (I HOPE) 013146 4765 JMS I (UNFAK /ENABLE SYSTEM USE OF REAL HANDLER 013147 2753 ISZ I (WRTDIR /SET WE CHANGED DIRECTORY FLAG 013150 5752 NFUNCT, JMP I (NENT /I KNOW ITS INEFFICIENT TO JUMP HERE /BUT- IT'S CLEAN... 013152 2510 013153 3531 013154 4252 013155 4034 013156 3527 013157 4023 013160 3476 013161 3623 013162 0020 013163 2550 013164 4502 013165 3461 013166 7666 013167 3530 013170 4266 013171 0200 013172 3433 013173 7770 013174 7757 013175 7600 013176 4256 013177 7400 3200 PAGE /FOTP V50 FOR OS/8 V50 PAL8-V50X 01-JUN-87 PAGE 20 /HERE COMES GOBBS AND GOBBS OF GOODY LITTLE ROUTINES /FIRST WE HAVE A NICE LITTLE ROUTINE WHICH WILL DO /HANDY LITTLE THINGS LIKE FETCH A HANDLER /AND IN ADDITION ALLOCATE THE SPACE FOR IT. /JUST IMAGINE THIS CAN BE YOURS FOR THE LOW LOW PRICE /OF 23 INSTRUCTIONS 013200 0000 ASSIGN, 0 013201 3030 DCA TEMP /SAVE DEVICE NUMBER 013202 1030 TAD TEMP 013203 4777 JMS I (200 013204 0012 12 /INQUIRE ABOUT HANDLER 013205 0000 HADDR1, 0 013206 5776 JMP I (CLOERR /CANT HAPPEN (I HOPE) 013207 1205 TAD HADDR1 /DID WE GET BACK ADDRESS 013210 7440 SZA /SKIP IF NOT- NON-RESIDENT 013211 5600 JMP I ASSIGN /YES... RETURN ITS ENTRY POINT 013212 7410 SKP 013213 7001 TWOPAG, IAC /TURN ON 2-PAGE BIT 013214 1025 TAD FPAGE /GET FREE SPACE POINTER 013215 3224 DCA HADDR2 /SET FOR FETCH 013216 1025 TAD FPAGE /TAKE AWAY 013217 1375 TAD (-200 /PAGE FROM 013220 3025 DCA FPAGE /FREE SPACE 013221 1030 TAD TEMP /GET DEVICE NUMBER 013222 4777 JMS I (200 013223 0001 1 /FETCH 013224 0000 HADDR2, 0 013225 5213 JMP TWOPAG /FAILED- MUST BE 2-PAGER 013226 1224 TAD HADDR2 /RETURN ENTRY POINT ADDRESS 013227 5600 JMP I ASSIGN /FOTP V50 FOR OS/8 V50 PAL8-V50X 01-JUN-87 PAGE 21 /THIS UTILITY ROUTINE RETURNS A SIS BIT /CHARACTER FROM ANY FIELD (SET ON ENTRY) /FROM ADDRESS IN AC-COUNT(IN HALF WORDS) 013230 7402 GTSXBT, HLT 013231 7104 CLL RAL /DOUBLE POINTER ADDRESS 013232 1021 TAD CNT /ADD NEGATIVE DISPLACEMENT 013233 7030 CML RAR /GET WORD ADDRESS AGAIN 013234 3030 DCA TEMP /SAVE IT 013235 1430 TAD I TEMP /GET WORD 013236 7420 SNL /SKIP IF WE WANT RIGHT HALF 013237 4242 JMS ROTR6 /MAKE LEFT HALF RIGHT HALF 013240 0374 AND (77 /GET LOW SIX BITS 013241 5630 JMP I GTSXBT 013242 0000 ROTR6, 0 013243 7012 RTR 013244 7012 RTR 013245 7012 RTR 013246 5642 JMP I ROTR6 /THIS TAKES A SIX BIT CHAR IN AC AND CONVERTS /IT TO ASCII TO TYPE IT 013247 7402 CONVTP, HLT 013250 7440 SZA /CONVERT 0 TO BLANKS 013251 1373 TAD (40 013252 0374 AND (77 013253 1373 TAD (40 013254 4772 JMS I (TYPE /TYPE IT 013255 5647 JMP I CONVTP /FOTP V50 FOR OS/8 V50 PAL8-V50X 01-JUN-87 PAGE 22 /TYPE TAKES A CHARACTER IN THE AC AND CALLS /TTY TO TYPE IT IF ^O IS NOT IN AFFECT /ALSO CHECKS FOR ^C AND ^P 013256 7402 TYPE, HLT 013257 3313 DCA READKB /SAVE CHARACTER 013260 4771 JMS I (CINTER /SEE IF ^C 013261 7410 SKP /NO 013262 5770 JMP I (CTCDE /ABORT OPERATION IF ^C OR ^P 013263 1367 TAD (17 /^O 013264 4766 JMS I (CTYPE /SEE IF TYPED 013265 7410 SKP /SKIP IF NOT 013266 3353 DCA ECHO /CLEAR ECHO SWITCH 013267 1353 TAD ECHO /IS ECHO IN EFFECT 013270 7650 SNA CLA /SKIP IF YES 013271 5656 JMP I TYPE /IGNORE CHARACTER IF ^O 013272 1313 TAD READKB /TYPE CHAR 013273 4275 JMS TTY 013274 5656 JMP I TYPE 013275 0000 TTY, 0 013276 3312 DCA TCHAR /SAVE CHAR 013277 1312 TAD TCHAR /GET CHAR BACK /** NEXT 4 LOCATIONS REPLACED IF BATCH ACTIVE BY: 013300 6046 TTYOUT, TLS /** SKP 013301 6041 TSF /** 7400 /ADDRESS OF BATCH OUTPUT ROUTINE 013302 5301 JMP .-1 /** CIF TOPFIELD 013303 7200 CLA /** JMS I .-2 013304 1312 TAD TCHAR /GET CHAR AGAIN 013305 1365 TAD (-15 /IF WE JUST TYPED A C.R. TYPE 013306 7640 SZA CLA /A L.F. 013307 5675 JMP I TTY 013310 1364 TAD (12 013311 5276 JMP TTY+1 013312 0000 TCHAR, 0 /GET A CHARACTER FROM KEYBOARD AND /CHECK FOR ^C AND ^P 013313 7402 READKB, HLT 013314 6031 KSF 013315 5314 JMP .-1 013316 4771 JMS I (CINTER /IS IT ^C 013317 7410 SKP /SKIP IF NOT 013320 5770 JMP I (CTCDE /YES 013321 6036 KRB /READ IT 013322 0363 AND (177 /AND GET RID OF PARITY 013323 5713 JMP I READKB /FOTP V50 FOR OS/8 V50 PAL8-V50X 01-JUN-87 PAGE 23 /ROUTINE TO MAKE SURE USER SPECIFIED //C AND /O SWITCHES CAUSE CORRECT MATCH WITH DATE 013324 0000 DATCHK, 0 013325 1762 TAD I (OPT1 /CHECK /C 013326 4340 JMS MDATE 013327 7000 NOP /RETURN HERE WITH AC=0 IF NO /C 013330 7640 SZA CLA /RETURN HERE WITH AC=0 IF DATES MATCH 013331 5761 JMP I (NENT /DATES DONT MATCH AND /C GIVEN 013332 1760 TAD I (OPT2 /CHECK /V 013333 4340 JMS MDATE 013334 7240 CMA CLA /SET AC=-1 IF NO /V 013335 7650 SNA CLA /RETURN HERE AC=0 IF DATES SAME 013336 5761 JMP I (NENT /DATES SAME WITH /V-IGNORE FILE 013337 5724 JMP I DATCHK /CONTINUE 013340 0000 MDATE, 0 //O AND /V ARE AC2 013341 7006 RTL /IS IT OPTION ON? 013342 7700 SMA CLA /SKIP IF IT IS 013343 5740 JMP I MDATE /NO- RETURN WITH 0 AC 013344 2340 ISZ MDATE /SKIP RETURN 013345 6201 CDF 0 013346 1436 TAD I GPTR1 /GET DATE WORD 013347 7041 CIA 013350 6211 CDF 10 013351 1757 TAD I (SVDATE /COMPARE WITH MONITORS, 0 IF = 013352 5740 JMP I MDATE 013353 0001 ECHO, 1 013357 3530 013360 7644 013361 2510 013362 7643 013363 0177 013364 0012 013365 7763 013366 3600 013367 0017 013370 3476 013371 3623 013372 3256 013373 0040 013374 0077 013375 7600 013376 4252 013377 0200 3400 PAGE /FOTP V50 FOR OS/8 V50 PAL8-V50X 01-JUN-87 PAGE 24 /THIS IS THE CORE DEVICE HANDLER /THE USR IS MADE TO COME HERE BY A CALL TO FAKUSR. /THIS HANDLER SWAPS THE DESIRED BLOCK INTO /THE USR AREA AND WRITES THE BLOCK BACK INTO THE /INCORE DIRECTORY. /THE CODE SET UP IN FIELD 0 TO CALL THE HANDLER IS: / *FAKHND / 0 /ENTRY POINT / TAD FAKHND /GET RETURN ADDRESS / CIF CDF 10 / JMP I .+1 /PLOP UP TO BODY OF HANDLER IN FIELD 1 / FAKBDY 013400 3270 FAKBDY, DCA RETLOC /SAVE ARGUMENT ADDRESS 013401 1670 TAD I RETLOC /GET CONTROL WORD 013402 7004 RAL /R/W BIT INTO LINK 013403 7204 CLA RAL /R/W BIT INTO AC11 013404 1217 TAD DCAXR1 /IF WRITE MAKE DCA XR2 ELSE XR1 013405 3223 DCA DCASPT /SAVE WHERE WE NEED IT 013406 2270 ISZ RETLOC /BUMP TO LOCATION (ALWAYS 1400 FROM USR) 013407 2270 ISZ RETLOC /BUMP TO BLOCK NUMBER 013410 1670 TAD I RETLOC /GET IT 013411 2270 ISZ RETLOC /BUMP TO ERROR RETURN 013412 2270 ISZ RETLOC /NOW TO GOOD RETURN (WE WONT FAIL) 013413 7112 CLL RTR /MULTIPLY BY 400(8) 013414 7012 RTR 013415 7010 RAR 013416 1377 TAD (4177 /ADD ON TO BEGINING OF DIRECTRY 013417 3011 DCAXR1, DCA XR1 /SAVE IN BOTH XR1 013420 1011 TAD XR1 013421 3012 DCA XR2 /AND XR2 013422 1376 TAD (1377 /NOW SAVE USR BLOCK AREA 013423 7402 DCASPT, HLT /IN EITHER XR1 OR XR2 (R OR W) 013424 1375 TAD (-400 /SET WORD TRANSFER COUNT 013425 3021 DCA CNT 013426 1412 TAD I XR2 /GET A WORD 013427 3411 DCA I XR1 /PUT A WORD 013430 2021 ISZ CNT 013431 5226 JMP .-3 013432 5670 JMP I RETLOC /GO BACK TO USR /FOTP V50 FOR OS/8 V50 PAL8-V50X 01-JUN-87 PAGE 25 /THIS ROUTINE DOES THE SETUP OF THE INCORE /DIRECTORY HANDLER AND CHANGES THE REAL /HANDLERS ENTRY POINT IN THE MONITOR SO THAT /THE USR WILL CALL IT. 013433 0000 FAKUSR, 0 013434 3261 DCA UNFAK /SAVE DEVICE NUMBER 013435 1261 TAD UNFAK /INDEX INTO MONITORS RESIDENCY 013436 1374 TAD (7646 /TABLE 013437 3267 DCA TABAD 013440 1331 TAD WRTDIR /SEE IF DEVICE HAS DIRECTORY 013441 7710 SPA CLA /SKIP IF IT DOES 013442 5245 JMP NOSUBST /!!!DONT CHANGE IF NON-FILE DEV 013443 1373 TAD (FAKHND /PUT OUR HANDLERS ADDRESS IN 013444 3667 DCA I TABAD /MONITORS TABLE 013445 6201 NOSUBST,CDF 0 013446 1372 TAD (1200 /PUT IN HANDLER INTERFACE CODE 013447 3771 DCA I (FAKHND+1 /INTO FIELD 0 AS GIVEN ABOVE 013450 1370 TAD (CIF CDF 10 013451 3767 DCA I (FAKHND+2 013452 1366 TAD (5604 013453 3765 DCA I (FAKHND+3 013454 1364 TAD (FAKBDY 013455 3763 DCA I (FAKHND+4 013456 6211 CDF 10 013457 1261 TAD UNFAK /RETURN WITH DEVICE NUMBER IN AC 013460 5633 JMP I FAKUSR 013461 0000 UNFAK, 0 013462 7200 CLA /V3C 013463 1023 TAD OUHAND /RESET MONITORS TABLE TO 013464 3667 DCA I TABAD /POINT TO REAL HANDLER 013465 3267 DCA TABAD /V3C 013466 5661 JMP I UNFAK 013467 0000 TABAD, 0 013470 0000 RETLOC, 0 /FOTP V50 FOR OS/8 V50 PAL8-V50X 01-JUN-87 PAGE 26 /ENTER HERE IF A BRANCH TO 7600 OR 7605 OCCURS 013471 4261 FIXDIR, JMS UNFAK /JUST IN CASE 013472 4762 JMS I (CINTER /CHECK FOR ^C 013473 7000 NOP 013474 7330 AC4000 /EITHER WAY GO BACK TO 013475 3761 DCA I (ALTOPT /MONITOR BUT AFTER WE HANDLE DIRECTORY 013476 1327 CTCDE, TAD MUSTWT /IS MUST WRITE SET? 013477 7650 SNA CLA /SKIP IF /Q OR MUST WRITE 013500 1331 TAD WRTDIR /CHECK TO SEE IF WE HAVE TO 013501 7750 SPA SNA CLA /WRITE THE DIRECTORY 013502 5306 JMP ENDCHK /CONTINUE 013503 3331 DCA WRTDIR /KEEP OLD DIRECTORY 013504 4760 JMS I (ERROR /TELL HIM 013505 7550 DSVED+40 013506 2757 ENDCHK, ISZ I (ECHO /TURN ON ECHO 013507 4332 JMS DIROUT /WRITE OUT THE OUTPUT DIRECTORY 013510 4756 JMS I (RESTORE /RESTORE 7600 IN FIELD 0 013511 1755 TAD I (OPT2 /GET OPTION /W 013512 7012 RTR 013513 7620 SNL CLA /SKIP FOR VESION NUMBER 013514 5322 JMP NOVER 013515 3755 DCA I (OPT2 /STOPS RECUSION WITH ^P 013516 4760 JMS I (ERROR /PRINT VERSION NUMBER 013517 7273 VERNO+40 013520 1354 TAD (15 013521 4753 JMS I (TYPE 013522 1761 NOVER, TAD I (ALTOPT /GO BACK TO MONITOR? 013523 7700 SMA CLA /SKIP IF YES 013524 5752 JMP I (CDCALL /CALL THE CD AGAIN 013525 6203 CIF CDF 0 /RETURN TO MONITOR 013526 5751 JMP I (7605 013527 0000 MUSTWT, 0 013530 0000 SVDATE, 0 013531 0000 WRTDIR, 0 /FOTP V50 FOR OS/8 V50 PAL8-V50X 01-JUN-87 PAGE 27 013532 0000 DIROUT, 0 /ROUTINE TO WRITE THE OUTPUT DIRECTORY 013533 1331 TAD WRTDIR /AC>0 IF WE HAVE TO WRITE IT 013534 7750 SPA SNA CLA /SKIP TO WRITE DIRECTORY 013535 5732 JMP I DIROUT 013536 6202 CIF 0 013537 4423 JMS I OUHAND /WRITE DIRECTORY BACK ONTO DEVICE 013540 5410 5410 013541 4600 4600 013542 0001 1 013543 5750 JMP I (ODERR /IS HE IN TROUBLE... 013544 3331 DCA WRTDIR /CLEAR WRITE DIRECTORY FLAG 013545 5732 JMP I DIROUT /RETURN 013550 4244 013551 7605 013552 2000 013553 3256 013554 0015 013555 7644 013556 3666 013557 3353 013560 3710 013561 7642 013562 3623 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 3600 PAGE /FOTP V50 FOR OS/8 V50 PAL8-V50X 01-JUN-87 PAGE 28 /ROUTINE WHICH ECHOES ^(CHAR) AND SKIP RETURNS IF /ONE WE WANTED 013600 0000 CTYPE, 0 013601 3266 DCA RESTORE /SAVE CHARACTER 013602 6034 KRS /SEE WHATS IN BUFFER 013603 0377 AND (177 /GET RID OF PARITY 013604 7041 CIA 013605 1266 TAD RESTORE /COMPARE AGAINST DESIRED ONE 013606 7650 SNA CLA /SKIP IF NOT ONE 013607 6031 KSF /IS FLAG UP? 013610 5600 JMP I CTYPE /NO... JUST RETURN 013611 6032 KCC /CLEAR CHARACTER 013612 1376 TAD ("^&177 /OUTPUT ^ 013613 4775 JMS I (TTY 013614 1266 TAD RESTORE 013615 1374 TAD (100 /CHAR 013616 4775 JMS I (TTY 013617 1373 TAD (15 013620 4775 JMS I (TTY 013621 2200 ISZ CTYPE /SKIP RETURN 013622 5600 JMP I CTYPE /ROUTINE USED TO DETERMINE IF ^C OR ^P TYPED 013623 0000 CINTER, 0 013624 7325 CLA STL IAC RAL /CHECK FOR ^C 013625 4200 JMS CTYPE 013626 5230 JMP UPPCK /NO CHECK FOR ^P 013627 5234 JMP SPURGE /YES SET ALTMODE BIT 013630 1372 UPPCK, TAD (20 013631 4200 JMS CTYPE 013632 5623 JMP I CINTER /NOT EITHER ^P OR ^C 013633 7410 SKP /IF ^P CLEAR ALTMODE BIT 013634 7040 SPURGE, CMA /SET BIT 013635 3771 DCA I (ALTOPT 013636 2223 ISZ CINTER /SKIP RETURN 013637 5623 JMP I CINTER /FOTP V50 FOR OS/8 V50 PAL8-V50X 01-JUN-87 PAGE 29 /THIS ROUTINE MODIFIES THE THE MONITOR RETURN /LOCATIONS TO COME BACK TO FOTP AND SAVES WHAT /WAS THERE SO RESTORE CAN RESTORE THEM 013640 0000 INTERC, 0 013641 1770 TAD I (DATE 013642 3767 DCA I (SVDATE /SAVE MONITOR DATE 013643 6201 CDF 0 013644 1711 TAD I S7600 /SAVE 7600,7601,7602,7605 013645 3304 DCA SCODE /AND REPLACE WITH 013646 1264 TAD SCIFC /CIF CDF 10 013647 3711 DCA I S7600 /JMP I .+1 013650 1766 TAD I (7601 /FIXDIR 013651 3305 DCA SCODE+1 /7605 GETS JMP 7600 013652 1365 TAD (5602 /THIS ENABLES FOTP TO WRITE 013653 3766 DCA I (7601 /OUT DIRECTORY AN MANUAL ABORT 013654 1764 TAD I (7602 /OR IF HANDLER PICKS UP ^C 013655 3306 DCA SCODE+2 /AND TRIES TO GO TO MONITOR 013656 1363 TAD (FIXDIR 013657 3764 DCA I (7602 013660 1762 TAD I (7605 013661 3307 DCA SCODE+3 013662 1361 TAD (5200 013663 3762 DCA I (7605 013664 6213 SCIFC, CIF CDF 10 013665 5640 JMP I INTERC /THIS ROUTINE SIMPLY RESTORES THE MONITOR /LOCATIONS TO THEIR ORIGINAL VALUE 013666 0000 RESTORE,0 013667 1767 TAD I (SVDATE /RESTORE DATE 013670 3770 DCA I (DATE 013671 6201 CDF 0 013672 1304 TAD SCODE 013673 3711 DCA I S7600 /RESTORE LOCATIONS 013674 1305 TAD SCODE+1 013675 3766 DCA I (7601 013676 1306 TAD SCODE+2 013677 3764 DCA I (7602 013700 1307 TAD SCODE+3 013701 3762 DCA I (7605 013702 6211 CDF 10 013703 5666 JMP I RESTORE 013704 0000 SCODE, 0;0;0;0 013705 0000 013706 0000 013707 0000 /FOTP V50 FOR OS/8 V50 PAL8-V50X 01-JUN-87 PAGE 30 /THIS IS THE MAGIC MESSAGE PRINTER /IT IS ACTUALLY USED MORE THAN JUST FOR ERROR MESSAGES /IF THE MESSAGE ENDS WITH A % THEN THE OPERATION /IS ABORTED OTHERWISE CONTROL IS RETURNED /TO THE CALLER AND NO CRLF IS GIVEN /ALL MESSAGES COMMING THROUGH HERE ARE ECHOED 013710 0000 ERROR, 0 013711 7600 S7600, 7600 /CLA: JUNK MIGHT BE IN AC 013712 6211 CDF 10 /AND DF MIGHT BE WRONG 013713 1760 TAD I (ECHO /SAVE ECHO STATUS SO WE CAN 013714 3757 DCA I (ECTMP /RESTORE IT AFTER MESSAGE 013715 2760 ISZ I (ECHO /TURN ON ECHO 013716 1356 TAD (-100 /USED SO WE CAN USE GTSXBT TO 013717 3021 DCA CNT /UNPACK THE MESSAGES 013720 1710 PLOOP, TAD I ERROR /CONTAINS ADDRESS OF MESSAGE 013721 7510 SPA /NEGATIVE ERRORS ARE 013722 6201 CDF 0 /IN FIELD 0 013723 4755 JMS I (GTSXBT /GET CHARACTER 013724 6211 CDF 10 013725 1354 TAD (-45 /IS IT % 013726 7450 SNA /SKIP IF NOT 013727 5342 JMP CRLF /WE HIT EOM AND CALLER NO WANT CONTROL 013730 1353 TAD ("%&77 /RESTORE CHARACTER 013731 3345 DCA DFLAG /SAVE IT FOR LATER 013732 1345 TAD DFLAG /PRINT IT, 0 PRINTS AS BLANK 013733 4752 JMS I (CONVTP 013734 2021 ISZ CNT /BUMP TO NEXT CHAR IN MESSAGE 013735 1345 TAD DFLAG /ARE WE AT END 013736 7640 SZA CLA /SKIP IF WE ARE 013737 5320 JMP PLOOP /DO ANOTHER CHARACTER 013740 2310 ISZ ERROR /SKIP ADDRESS OF MESSAGE 013741 5710 JMP I ERROR /RETURN 013742 1373 CRLF, TAD (15 /PRINT CR 013743 4751 JMS I (TYPE /LF 013744 5750 JMP I (ENDCHK /FINISH PROCESSING /FOTP V50 FOR OS/8 V50 PAL8-V50X 01-JUN-87 PAGE 31 013745 0000 DFLAG, 0 013750 3506 013751 3256 013752 3247 013753 0045 013754 7733 013755 3230 013756 7700 013757 4022 013760 3353 013761 5200 013762 7605 013763 3471 013764 7602 013765 5602 013766 7601 013767 3530 013770 7666 013771 7642 013772 0020 013773 0015 013774 0100 013775 3275 013776 0136 013777 0177 4000 PAGE /FOTP V50 FOR OS/8 V50 PAL8-V50X 01-JUN-87 PAGE 32 /THIS ROUTINE PRINTS A FILENAME.EXTENSION 014000 0000 PNMSUB, 0 014001 3221 DCA NMEPLC /SAVE ADDRESS OF NAME 014002 1377 TAD (-10 /SET CHAR COUNT 014003 3021 DCA CNT 014004 1221 PNLOOP, TAD NMEPLC /GET THE SIXBIT CHAR 014005 4776 JMS I (GTSXBT 014006 7440 SZA /SKIP IF NULL CHAR 014007 4775 JMS I (CONVTP /PRINT CHAR 014010 1374 TAD (3 /SEE IF AT START OF 014011 1021 TAD CNT /EXTENSION 014012 7640 SZA CLA /SKIP IF SO 014013 5216 JMP .+3 014014 1373 TAD (".&177 /PRINT THE DOT 014015 4772 JMS I (TYPE 014016 2021 ISZ CNT 014017 5204 JMP PNLOOP /KEEP GOING 014020 5600 JMP I PNMSUB 014021 0000 NMEPLC, 0 014022 0000 ECTMP, 0 014023 4771 RDERR, JMS I (ERROR 014024 7372 INERR+40 /ERROR READING FILE 014025 1370 DYSTF1, TAD (SPOT1+4 /PRINT INPUT FILE NAME 014026 4767 DYSTUF, JMS I (PNMSUB 014027 1366 TAD (15 014030 4772 JMS I (TYPE 014031 1222 TAD ECTMP /RESTORE ECHO FLAG AS 014032 3765 DCA I (ECHO /SAVED ON ENTRY TO ERROR 014033 5764 JMP I (NENT /GO TO NEXT FILE 014034 4771 WRTERR, JMS I (ERROR 014035 7412 OUERR+40 /ERROR WRITING FILE 014036 1363 POUTNM, TAD (SPOT+4 /PRINT OUTPUT FILE NAME 014037 5226 JMP DYSTUF 014040 4771 NORUMX, JMS I (ERROR /NOT ENOUGH ROOM FOR 014041 7360 SPRBLM+40 /FILE ON OUTPUT DEVICE 014042 5225 JMP DYSTF1 /FOTP V50 FOR OS/8 V50 PAL8-V50X 01-JUN-87 PAGE 33 /ROUTINE WHICH PRINTS NO FILES MSG IF NECESSARY /IT WONT PRINT MESSAGE IF ANY FILE IN A SO CALLED /INPUT GROUP MATCHES(A BUG?) 014043 1762 SAYNON, TAD I (TYPFND /GET INPUT MATCH FLAG 014044 7640 SZA CLA /SKIP IF NOTHING MATCHED 014045 5307 JMP GOBCK /DONT DO MESSAGE 014046 1727 TAD I POPT1 014047 0361 AND (20 /WAS HUSH OPTION SET? 014050 7640 SZA CLA 014051 5307 JMP GOBCK /BE QUIET 014052 4771 TLP, JMS I (ERROR /PRINT MESSAGE 014053 7457 NOFILE+40 014054 1022 TAD INFPTR /POINT TO END OF INPUT ENTRY 014055 1360 TAD (5 /TO MAKE GTSXBT WORK CORRECTLY 014056 3022 DCA INFPTR 014057 1022 TAD INFPTR /PRINT THE FILE NAME 014060 4767 JMS I (PNMSUB 014061 1357 TAD (OTAB-2 /NOW PRINT /V,/C,/O IF 014062 3012 DCA XR2 /ANY OF THEM SPECIFIED 014063 2012 NOPT1, ISZ XR2 /FIX POINTER WHEN SWITCH NOT ON 014064 1412 NOPT, TAD I XR2 /GET ADDRESS OF OPTION 014065 7450 SNA /SKIP IF NOT AT END 014066 5301 JMP CRIT /WE ARE AT END 014067 3030 DCA TEMP 014070 1430 TAD I TEMP /GET OPTION WORD 014071 0412 AND I XR2 /AND WITH OPTION BIT 014072 7650 SNA CLA /SKIP IF OPTION GIVEN 014073 5263 JMP NOPT1 /DO ANOTHER 014074 1356 TAD ("/&177 /PRINT / 014075 4772 JMS I (TYPE 014076 1412 TAD I XR2 /OPTION 014077 4772 JMS I (TYPE 014100 5264 JMP NOPT /DO ANOTHER 014101 1366 CRIT, TAD (15 /END WITH A CRLF 014102 4772 JMS I (TYPE 014103 1222 TAD ECTMP /RESTORE ECHO FLAG THAT ERROR 014104 3765 DCA I (ECHO /SAVED 014105 2027 ISZ INSCNT /PRINT MESSAGE FOR ALL FILES 014106 5252 JMP TLP /IN GROUP 014107 1757 GOBCK, TAD I (USEROD /GET USER SPECIFIED DEVICE 014110 7650 SNA CLA /SKIP IF HE GAVE ONE 014111 1755 TAD I (SDFLG /IF HE DIDNT WE CANT HANDLE /D 014112 7710 SPA CLA /SKIP IF NO /D 014113 1723 TAD I MOIN /YEP. /D BETTER NOT BE ANY MORE INPUT 014114 7640 SZA CLA /THERE WASN'T - O.K. 014115 5320 JMP DELERR /WARN HIM OF THE SHORTCOMING 014116 1323 TAD MOIN /GET SAVED INPUT POINTER 014117 5754 JMP I (DOMOIN /AND DO SOME MORE INPUTS /FOTP V50 FOR OS/8 V50 PAL8-V50X 01-JUN-87 PAGE 34 014120 4771 DELERR, JMS I (ERROR 014121 7520 CNTDEL+40 /MULTIPLE DEVICE DELETE 014122 0000 USEROD, 0 014123 0000 MOIN, 0 /TABLE OF SWITCHES FOR "NO FILES" MESSAGE 014124 7644 OTAB, OPT2 014125 0004 4 014126 0126 "V&177 014127 7643 POPT1, OPT1 014130 1000 1000 014131 0103 "C&177 014132 7644 OPT2 014133 1000 1000 014134 0117 "O&177 014135 0000 0 014154 2103 014155 2127 014156 0057 014157 4122 014160 0005 014161 0020 014162 2342 014163 4262 014164 2510 014165 3353 014166 0015 014167 4000 014170 4266 014171 3710 014172 3256 014173 0056 014174 0003 014175 3247 014176 3230 014177 7770 4200 PAGE /FOTP V50 FOR OS/8 V50 PAL8-V50X 01-JUN-87 PAGE 35 /THIS ROUTINE HANDLES THE /L AND /Q OPTIONS /IF EITHER IS ON IT PRINTS THE NAME /THEN IF ITS /Q IT PRINTS A ? AND WAITS FOR /A RESPONSE. IF Y IT RETURNS, ANYTHING ELSE /AND IT GOES TO PROCESS THE NEXT DIRECTORY ENTRY 014200 0000 PRINTE, 0 014201 3777 DCA I (NMEPLC /SAVE ADDRESS OF NAME 014202 1776 TAD I (OPT1 /CHECK /L 014203 7010 RAR 014204 7630 SZL CLA /SKIP IF NO /L 014205 5213 JMP PIT /PRINT NAME 014206 1775 TAD I (OPT2 /CHECK /Q 014207 0374 AND (200 014210 7650 SNA CLA /SKIP IF /Q 014211 5600 JMP I PRINTE /RETURN 014212 2773 ISZ I (ECHO /IF /Q FORCE ECHO ON 014213 1777 PIT, TAD I (NMEPLC /NOW PRINT FILENAME 014214 4772 JMS I (PNMSUB 014215 3031 DCA OKFLAG /CLEAR OKFLAG 014216 1775 TAD I (OPT2 /WAS IT /Q? 014217 0374 AND (200 014220 7650 SNA CLA /SKIP IF /Q 014221 5236 JMP FUNCT2 /JUST PRINT CRLF 014222 1371 TAD ("?&177 /PRINT ? 014223 4770 JMS I (TYPE 014224 4767 JMS I (READKB /GET A CHAR 014225 3304 DCA ODIRIN 014226 1304 TAD ODIRIN 014227 0366 AND (137 /ALLOW LC 014230 1365 TAD (-131 /IS IT Y? 014231 7440 SZA 014232 1364 TAD (131-112 /OR 'JA'? 014233 3031 DCA OKFLAG /IF RESULT = 0 IT IS OK 014234 1304 TAD ODIRIN 014235 4770 JMS I (TYPE /ECHO IT 014236 1363 FUNCT2, TAD (15 /PRINT CRLF 014237 4770 JMS I (TYPE 014240 1031 TAD OKFLAG /OKFLG=0 MEANS YES 014241 7640 SZA CLA /SKIP IF TO PROCESS FILE 014242 5762 JMP I (NFUNCT /SKIP THIS FILE 014243 5600 JMP I PRINTE /RETURN 014244 7200 ODERR, CLA 014245 3761 DCA I (WRTDIR /FIX RECURSION 014246 4760 JMS I (ERROR 014247 7340 ODIERR+40 /ERROR WRITING DIRECTORY 014250 4760 BODIR, JMS I (ERROR 014251 7505 BODORM+40 /BAD OUTPUT DIRECTORY 014252 4760 CLOERR, JMS I (ERROR 014253 7254 SERR+40 /SYSTEM ERROR 014254 7402 HLT /DONT LET HIM CONTINUE 014255 5254 JMP .-1 /IT CAN ONLY GET WORSE /FOTP V50 FOR OS/8 V50 PAL8-V50X 01-JUN-87 PAGE 35-1 014256 0000 SPOT, ZBLOCK 4 /ROOM FOR OUTPUT FILE NAME 014262 0000 SPOT1, ZBLOCK 4 /ROOM FOR INPUT FILE NAME /FOTP V50 FOR OS/8 V50 PAL8-V50X 01-JUN-87 PAGE 36 /CODE TO HANDLE OUT OF ROOM CONDITION ON OUTPUT DEVICE 014266 4757 NOROOM, JMS I (UNFAK /RESTORE THE REAL OUTPUT HANDLER 014267 1776 TAD I (OPT1 014270 0356 AND (100 /CHECK FOR THE /F OPTION SPECIFIED 014271 7650 SNA CLA 014272 5755 JMP I (NORUMX /NO - GIVE AN ERROR MESSAGE 014273 4754 JMS I (DIROUT /FAILSAFING - WRITE OUT THE OUTPUT DIRECTORY 014274 4760 JMS I (ERROR /PRINT THE MESSAGE 014275 7567 FLSFMS+40 /"MOUNT NEXT OUTPUT VOLUME" 014276 4767 JMS I (READKB /GET AN ANSWER 014277 7200 CLA /ANY CHAR EXCEPT ^C OR ^P IS YES 014300 1363 TAD (15 014301 4770 JMS I (TYPE /PRINT CRLF 014302 4304 JMS ODIRIN /READ IN THE NEW OUTPUT DIRECTORY 014303 5753 JMP I (FLSRSM /RECOMPUTE THE PENDING TRANSFER. 014304 0000 ODIRIN, 0 /SUBROUTINE TO READ IN THE OUTPUT DIRECTORY 014305 1752 TAD I (7600 /GET OUTPUT DEVICE NUMBER 014306 7450 SNA /IS IT PRESENT? 014307 5336 JMP NOUTFL /NO - DON'T READ OUTPUT DIRECTORY 014310 1351 TAD (7757 /ADD ADDRESS OF MONITOR TABLE 014311 3030 DCA TEMP /TO INDEX INTO IT 014312 1430 TAD I TEMP /FILE STRUCTURED BIT IS 0, READ-ONLY 1 014313 7104 CLL RAL 014314 7510 SPA /IF READ-ONLY ERROR 014315 5750 JMP I (RDOERR 014316 7620 SNL CLA /SKIP IF DIRECTORY DEVICE 014317 5336 JMP NOUTFL /WE DONT WANT TO READ OR WRITE DIRECTORY 014320 6202 CIF 0 014321 4423 JMS I OUHAND /READ DIRECTORY 014322 1410 1410 014323 4600 ODBUF, OUBUFR 014324 0001 1 014325 5747 JMP I (ONDERR /ERROR 014326 1723 TAD I ODBUF 014327 7140 CMA CLL /CHECK FOR LEGAL OUTPUT DIRECTORY - FIRST 014330 1746 TAD I (OUBUFR+2 /WORD OF AN OS/8 DIRECTORY IS .LT. 50 014331 7420 SNL /AND THE THIRD WORD MUST BE .LT. 7, 014332 1345 TAD (-120 /SO WE CAN CHECK FOR THE SUM OF THOSE 014333 7630 SZL CLA /WORDS BEING .LT. 80 014334 5744 JMP I (BODIR /ERROR - CANT BE DIRECTORY 014335 7410 SKP 014336 7330 NOUTFL, AC4000 /WRTDIR MINUS MEANS DONT WRITE 014337 3761 DCA I (WRTDIR /DIRECTORY 014340 3743 DCA I (MUSTWT /CLEAR THE MUST WRITE FLAG 014341 3007 DCA DIRKEY /CLEAR THE OS/8 DIRECTORY KEY 014342 5704 JMP I ODIRIN /RETURN /FOTP V50 FOR OS/8 V50 PAL8-V50X 01-JUN-87 PAGE 37 014343 3527 014344 4250 014345 7660 014346 4602 014347 2133 014350 2131 014351 7757 014352 7600 014353 2711 014354 3532 014355 4040 014356 0100 014357 3461 014360 3710 014361 3531 014362 3150 014363 0015 014364 0017 014365 7647 014366 0137 014367 3313 014370 3256 014371 0077 014372 4000 014373 3353 014374 0200 014375 7644 014376 7643 014377 4021 4400 PAGE /FOTP V50 FOR OS/8 V50 PAL8-V50X 01-JUN-87 PAGE 38 /SUBROUTINE TO DO LOOKUPS ON OUTPUT DEVICE /DOES IMMEDIATE RETURN IF NO OUTPUT DEVICE /OTHERWISE RETURNS WITH BLOCK OF FILE IN AC OR /0 IN AC MEANING NOT FOUND OR NON-FILE STRUCTURED DEVICE 014400 0000 LOOKUP, 0 014401 1377 TAD (SPOT /ADDRESS OF FILE NAME 014402 3211 DCA PLACE 014403 1776 TAD I (7600 /GET OUTPUT DEVICE 014404 7450 SNA /SKIP IF PRESENT 014405 5600 JMP I LOOKUP /NO OUTPUT DEVICE 014406 4775 JMS I (FAKUSR /FAKE OUT THE USR 014407 4774 JMS I (200 014410 0002 2 /LOOKUP 014411 4256 PLACE, SPOT 014412 0000 0 014413 3211 DCA PLACE /NOT FOUND, 0 PLACE 014414 4773 JMS I (UNFAK /RESTORE RESIDENT HANDLER 014415 2200 ISZ LOOKUP /SKIP RETURN 014416 1211 TAD PLACE /WITH BLOCK IN AC 014417 5600 JMP I LOOKUP /FOTP V50 FOR OS/8 V50 PAL8-V50X 01-JUN-87 PAGE 39 /HERE IS WHAT WE HAVE ALL BEEN WAITING FOR ////////////////////////////////////// / / / RENAME / / / ////////////////////////////////////// 014420 4200 RENAME, JMS LOOKUP 014421 5772 JMP I (CLOERR /SUPER SYSTEM DISASTER 014422 3301 DCA OBLOCK /V3C SAVE BLOCK OF NEW NAME (IF ANY) 014423 1371 TAD (SPOT1-SPOT /LOOKUP INPUT FILE 014424 4200 JMS LOOKUP 014425 5772 JMP I (CLOERR /SUPER SYSTEM DISASTER 014426 7041 CIA /LOOKUP INPUT NAME ON OUTPUT DEVICE 014427 1301 TAD OBLOCK /IS IT SAME SPOT AS NEW NAME ON OUTPUT DEVICE? 014430 7640 SZA CLA /V3C 014431 4272 JMS EXERR /NO, MAYBE ALREADY EXISTS 014432 1770 TAD I (1404 /GET ADDRESS OF FILE 014433 1017 TAD 17 /FROM MONITOR BY THE 014434 1367 TAD (-4 /DOCUMENTED METHOD 014435 3030 DCA TEMP 014436 1366 TAD (SPOT-1 /GET NEW OUTPUT NAME 014437 3011 DCA XR1 014440 1367 TAD (-4 /SET UP COUNT OF WORDS TO MOVE 014441 3021 DCA CNT 014442 1411 RNAM, TAD I XR1 /MOVE THEM 014443 3430 DCA I TEMP 014444 2030 ISZ TEMP 014445 2021 ISZ CNT 014446 5242 JMP RNAM /CONTINUE TILL DONE 014447 1770 TAD I (1404 /V3C 014450 7650 SNA CLA /BUT IS THERE ROOM FOR DATE? 014451 5254 JMP NONUDA /NO, NO ADDITIONAL INFO WORDS 014452 1765 TAD I (DATE /YES, MOVE DATE 014453 3430 DCA I TEMP /INTO NEW FILENAME ENTRY 014454 4257 NONUDA, JMS WRKEY /V3C 014455 2764 ISZ I (WRTDIR /INDICATE DIRECTORY CHANGED 014456 5763 JMP I (NFUNCT /DO NEXT FILE 014457 0000 WRKEY, 0 /V9 014460 1007 TAD DIRKEY /GET "SEGMENT IN CORE" KEY 014461 0362 AND (7 /ISOLATE SEGMENT NUMBER 014462 3267 DCA SEGNO /NUMBER FOR WRITE 014463 6202 CIF 0 014464 4451 JMS I 51 /CALL HANDLER USR USED TO DO 014465 4210 4210 /LOOKUP, THIS POINTS TO FOTPS 014466 1400 1400 /INCORE DIRECTORY HANDLER 014467 0000 SEGNO, 0 /REWRITE UPDATED DIRECTORY BLOCK 014470 5772 JMP I (CLOERR /SYSTEM ERROR 014471 5657 JMP I WRKEY /FOTP V50 FOR OS/8 V50 PAL8-V50X 01-JUN-87 PAGE 40 014472 0000 EXERR, 0 /BLOCK NUMBERS DIFFERENT 014473 1301 TAD OBLOCK /LOOK AT BLOCK NUMBER OF EXISTING FILE 014474 7650 SNA CLA /DID IT REALLY EXIST? 014475 5672 JMP I EXERR /NO, OK TO RENAME TO THIS NAME 014476 4761 JMS I (ERROR /YES, TRYING TO RENAME TO EXISTING NAME 014477 7263 RENERR+40 /FILE ALREADY EXISTS 014500 5760 JMP I (POUTNM 014501 0000 OBLOCK, 0 /TEMPORARY, HOLDS BLOCK NUMBER OF ALREADY /EXISTING FILE WITH SAME NAME AS PROPOSED NEW NAME /ON OUT PUT DEVICE (OR 0 IF NONE) /FOTP V50 FOR OS/8 V50 PAL8-V50X 01-JUN-87 PAGE 41 /THIS ROUTINE TRANSFERS THE ADDITIONAL /INFORMATION WORDS OF THE INPUT FILE WHEN COPYING /IT IF THERE ARE ANY 014502 0000 ADDINF, 0 014503 7201 CLA IAC /AC=1 014504 1770 TAD I (1404 /GET NUMBER OF WORDS FROM OUTPUT DIRECTORY 014505 7500 SMA /SKIP IF 2 OR MORE 014506 5332 JMP NOTRAN /WE DONT TOUCH IT 014507 3200 DCA LOOKUP /SAVE NEGATIVE NUMBER TO MOVE 014510 1200 TAD LOOKUP /ADD NUMBER TO LOC 17 014511 1017 TAD 17 /TO FIND ADDR(SECOND) 014512 3341 DCA PPTR1 /USE 17 014513 1034 TAD INFWDS /GET NUMBER OF AIW IN INPUT 014514 7041 CIA /NEGATE 014515 7001 IAC /ADD 1 014516 7500 SMA /SKIP IF MORE THAN 1 AIW 014517 5336 JMP ZEROUT /ZERO OUTPUT AIW 014520 3030 DCA TEMP /SAVE COUNT 014521 2036 MOVEM, ISZ GPTR1 /BUMP PTR (1ST TIME PAST DATE) 014522 6201 CDF 0 014523 1436 TAD I GPTR1 /GET WORD 014524 6211 ZLOOP, CDF 10 014525 3741 DCA I PPTR1 /PUT IT INTO OUTPUT DIRECTORY 014526 2341 ISZ PPTR1 014527 2200 ISZ LOOKUP /HAS OUTPUT COUNT OVERFLOWED? 014530 5334 JMP MORE /MORE OUTPUT TO DO 014531 4257 JMS WRKEY /V9 014532 7200 NOTRAN, CLA /EXIT 014533 5702 JMP I ADDINF /WERE DONE 014534 2030 MORE, ISZ TEMP /BUMP INPUT COUNT 014535 5321 JMP MOVEM /IT HASNT OVERFLOWED 014536 7240 ZEROUT, CLA CMA /NO MORE INPUT WORDS- 014537 3030 DCA TEMP /SO FIX UP TO ZERO REST OF OUTPUT WORDS 014540 5324 JMP ZLOOP /DO ALL THE OUTPUTS 014541 0000 PPTR1, 0 014560 4036 014561 3710 014562 0007 014563 3150 014564 3531 014565 7666 014566 4255 014567 7774 014570 1404 014571 0004 014572 4252 014573 3461 014574 0200 014575 3433 014576 7600 014577 4256 4600 PAGE /FOTP V50 FOR OS/8 V50 PAL8-V50X 01-JUN-87 PAGE 42 /** THIS IS THE STARTING ADDRESS OF FOTP!!! 014600 4204 FOTP, JMS INIT /REGULAR ENTRY POINT 014601 4204 JMS INIT /CHAIN ENTRY POINT 014602 5777 JMP I (CDCALL /CALL COMMAND DECODER 014603 5776 JMP I (BYPSCD /DONT CALL COMMAND DECODER 014604 0000 INIT, 0 014605 2204 ISZ INIT /DO SKIP RETURN 014606 7300 CLA CLL 014607 6201 CDF 0 014610 1775 TAD I (7777 /GET BATCH CONTROL WORD 014611 0374 AND (70 014612 1254 TAD FCIF0 /FORM CIF TO BATCH FIELD 014613 3300 DCA BATCIF 014614 1775 TAD I (7777 014615 6211 CDF 10 014616 7006 RTL 014617 7620 SNL CLA /BATCH RUNNING? 014620 5230 JMP NOBTCH /NO 014621 1276 BMOVLP, TAD BATOUT 014622 3675 DCA I TTOUTP /MOVE IN SUBSTITUTE TTY OUTPUT CODE 014623 2221 ISZ BMOVLP 014624 2275 ISZ TTOUTP 014625 2274 ISZ TTCNT4 014626 5221 JMP .-5 014627 7240 STA 014630 3273 NOBTCH, DCA CORFUJ / =0 IF NO BATCH, -1 IF BATCH 014631 1670 MOVMSG, TAD I ONCE /MOVE MSGS TO LOWER FIELD 014632 6201 CDF 0 014633 3671 DCA I ONLY 014634 6211 CDF 10 014635 1667 TAD I M1 014636 6201 CDF 0 /MOVE CORE DETERMINER 014637 3667 DCA I M1 /INTO FIELD 0 ALSO 014640 6211 CDF 10 014641 2267 ISZ M1 014642 2270 ISZ ONCE 014643 2271 ISZ ONLY 014644 2272 ISZ CODE 014645 5231 JMP MOVMSG 014646 1377 TAD (2000 /SET RESTART LOCATION 014647 6201 CDF 0 014650 3773 DCA I (7745 014651 1372 TAD (6403 /SET JSW 014652 3771 DCA I (7746 014653 6211 CDF 10 /FOTP V50 FOR OS/8 V50 PAL8-V50X 01-JUN-87 PAGE 43 014654 6202 FCIF0, CIF 0 014655 4770 JMS I (CORE 014656 1273 TAD CORFUJ /COMPUTE AMOUNT OF CORE EXCLUDING BATCH FIELD 014657 1375 TAD (-1 014660 7640 SZA CLA /SKIP IF WE HAVE ONLY 8K (OR 12K AND BATCH) 014661 5604 JMP I INIT 014662 1367 TAD (TAD EPTR /PATCH LOCATIONS IN FOTP 014663 3766 DCA I (F2C1 /TO WORK WITH ONLY 8K 014664 1365 TAD (NOP 014665 3764 DCA I (F2C2 014666 5604 JMP I INIT /START 014667 4600 M1, .&7600 014670 5000 ONCE, MSGS 014671 7200 ONLY, LSTFPG+200 014672 7400 CODE, 7400 014673 0000 CORFUJ, 0 014674 7774 TTCNT4, -4 014675 3300 TTOUTP, TTYOUT 014676 7410 BATOUT, SKP /OUTPUT TO BATCH LOG 014677 7400 7400 014700 7402 BATCIF, HLT 014701 4701 TTYOUT+1&177+4600 /JMS I .-2 /FOTP V50 FOR OS/8 V50 PAL8-V50X 01-JUN-87 PAGE 44 /SUBR TO DETERMINE MACHINE SIZE - RETURNS NUMBER OF /BANKS IN AC. /MUST RUN IN FIELD 0. 014702 0000 CORE, 0 014703 1355 TAD C6203 014704 6214 RDF 014705 3350 DCA CORRTN 014706 6201 CDF 0 014707 1775 TAD I (7777 014710 0374 AND (70 014711 7450 SNA /DOES LOCATION 7777 SPECIFY CORE SIZE? 014712 5316 JMP CORELP /NO 014713 7112 CLL RTR /YES - BELIEVE IT. 014714 7010 RAR 014715 5350 JMP CORRTN 014716 6201 CORELP, CDF 0 /NEEDED FOR PDP-8L 014717 1354 TAD TRYFLD /GET FLD TO TST 014720 7106 CLL RTL 014721 7004 RAL 014722 0333 AND COR70 /MASK USEFUL BITS 014723 1316 TAD CORELP 014724 3325 DCA .+1 /SET UP CDF TO FLD 014725 0000 COR706, 0 014726 1752 TAD I CORLOC /SAV CURRENT CONTENTS 014727 7000 NOP /HACK FOR PDP-8 014730 3325 DCA .-3 014731 1327 TAD .-2 /7000 IS A GOOD PATTERN 014732 3752 DCA I CORLOC 014733 0070 COR70, 70 /HACK FOR PDP-8.,NO-OP 014734 1752 TAD I CORLOC /TRY TO READ BK 7000 014735 7400 7400 /HACK FOR PDP-8,.NO-OP 014736 1335 TAD .-1 /GUARD AGAINST WRAP AROUND 014737 1353 TAD CORLOC+1 /TAD 1400 014740 7640 SZA CLA 014741 5346 JMP .+5 /NON EXISTENT FLD EXIT 014742 1325 TAD COR706 /RESTORE CONTENS DESTROYED 014743 3752 DCA I CORLOC 014744 2354 ISZ TRYFLD /TRY NXT HIGHER FLD 014745 5316 JMP CORELP 014746 7240 STA 014747 1354 TAD TRYFLD 014750 0000 CORRTN, 0 014751 5702 JMP I CORE 014752 4735 CORLOC, COR70+2 /ADR TO TST IN EACH FLD 014753 1400 1400 /7000+7400+1400=0 014754 0001 TRYFLD, 1 /CURRENT FLD TO TST 014755 6203 C6203, 6203 /FOTP V50 FOR OS/8 V50 PAL8-V50X 01-JUN-87 PAGE 45 014764 3076 014765 7000 014766 3002 014767 1026 014770 4702 014771 7746 014772 6403 014773 7745 014774 0070 014775 7777 014776 2003 014777 2000 5000 PAGE /FOTP V50 FOR OS/8 V50 PAL8-V50X 01-JUN-87 PAGE 46 /FOTP'S ERROR MESSAGES /THESE RESIDE IN FIELD 0 LOCATIONS 7200-7577 0005 VV1=VERSION%12 0062 VV2=VV1^12 7200 MSGS, RELOC LSTFPG+200 IFNDEF GERMAN < 017200* 1114 ILLQ, TEXT /ILLEGAL ?%/ 017201* 1405 017202* 0701 017203* 1440 017204* 7745 017205* 0000 017206* 1114 ILLA, TEXT /ILLEGAL *%/ 017207* 1405 017210* 0701 017211* 1440 017212* 5245 017213* 0000 017214* 2331 SERR, TEXT /SYSTEM ERROR/ 017215* 2324 017216* 0515 017217* 4005 017220* 2222 017221* 1722 017222* 0000 017223* 0114 RENERR, TEXT /ALREADY EXISTS-/ 017224* 2205 017225* 0104 017226* 3140 017227* 0530 017230* 1123 017231* 2423 017232* 5500 017233* 0617 VERNO, TEXT /FOTP V/ 017234* 2420 017235* 4026 017236* 0000 7236 *.-1 017236* 6560 VERLOC, VV1+60^100+VERSION-VV2+60 /TWO-DIGIT VERSION NUMBER 017237* 3000 SUBVER&77^100 /AND 1 CHAR PATCH LEVEL 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 /FOTP V50 FOR OS/8 V50 PAL8-V50X 01-JUN-87 PAGE 46-1 017256* 3145 017257* 0000 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 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 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 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 /FOTP V50 FOR OS/8 V50 PAL8-V50X 01-JUN-87 PAGE 46-2 017345* 2313 017346* 1120 017347* 2011 017350* 1607 017351* 5500 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 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 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 017432* 0201 BIDIRM, TEXT /BAD INPUT DIRECTORY%/ 017433* 0440 /FOTP V50 FOR OS/8 V50 PAL8-V50X 01-JUN-87 PAGE 46-3 017434* 1116 017435* 2025 017436* 2440 017437* 0411 017440* 2205 017441* 0324 017442* 1722 017443* 3145 017444* 0000 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 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* 4500 017510* 1722 DSVED, TEXT /ORIGINAL DIRECTORY PRESERVED%/ 017511* 1107 017512* 1116 017513* 0114 017514* 4004 017515* 1122 017516* 0503 017517* 2417 017520* 2231 017521* 4020 017522* 2205 /FOTP V50 FOR OS/8 V50 PAL8-V50X 01-JUN-87 PAGE 46-4 017523* 2305 017524* 2226 017525* 0504 017526* 4500 017527* 1517 FLSFMS, TEXT /MOUNT NEXT OUTPUT VOLUME:/ 017530* 2516 017531* 2440 017532* 1605 017533* 3024 017534* 4017 017535* 2524 017536* 2025 017537* 2440 017540* 2617 017541* 1425 017542* 1505 017543* 7200 017544* 1725 ERRRDO, TEXT /OUTPUT DEVICE IS READ-ONLY%/ 017545* 2420 017546* 2524 017547* 4004 017550* 0526 017551* 1103 017552* 0540 017553* 1123 017554* 4022 017555* 0501 017556* 0455 017557* 1716 017560* 1431 017561* 4500 > /FOTP V50 FOR OS/8 V50 PAL8-V50X 01-JUN-87 PAGE 47 IFDEF GERMAN < ILLQ, TEXT /FALSCHES ?%/ ILLA, TEXT /FALSCHER *%/ SERR, TEXT /SYSTEM-FEHLER/ RENERR, TEXT /GIBT ES SCHON: / VERNO, TEXT /FOTP V/ *.-1 VERLOC, VV1+60^100+VERSION-VV2+60 /TWO-DIGIT VERSION NUMBER SUBVER&77^100 /AND 1 CHAR PATCH LEVEL BADIRD, TEXT /EIN-VERZEICHNIS LESE-FEHLER%/ ODRERR, TEXT /AUS-VERZEICHNIS LESE-FEHLER%/ ODIERR, TEXT /AUS-VERZEICHNIS SCHREIB-FEHLER%/ SPRBLM, TEXT /KEIN PLATZ FUER: / INERR, TEXT /LESE-FEHLER BEI: / OUERR, TEXT /SCHREIB-FEHLER BEI: / NFLEIN, TEXT /BENUETZE 'PIP' ZUM LESEN VON NICHT-DATEIEN%/ NOFILE, TEXT /KEINE DATEIEN DER FORM: / BIDIRM, TEXT /EIN-VERZEICHNIS KAPUTT%/ BODORM, TEXT /AUS-VERZEICHNIS KAPUTT%/ CNTDEL, TEXT /NUR ERSTE EIN-ANGABE WURDE ZUM LOESCHEN BENUTZT%/ DSVED, TEXT /URSPRUENGLICHES VERZEICHNIS INTAKT%/ FLSFMS, TEXT /BITTE NAECHSTEN DATENTRAEGER! / ERRRDO, TEXT /AUS-GERAET KANN NUR LESEN%/ > /FOTP V50 FOR OS/8 V50 PAL8-V50X 01-JUN-87 PAGE 48 5362 RELOC 5400 PAGE 0001 FIELD 1 /SELF-STARTING BINARY LOADER STUFF FOR ABSLDR 4600 *FOTP $ /FOTP V50 FOR OS/8 V50 PAL8-V50X 01-JUN-87 PAGE 49 ACK 2023 DIROUT 3532 LSTFPG 7000 OPT1 7643 ACM2 7344 DOMOIN 2103 MATFLG 2551 OPT2 7644 ACM3 7346 DSVED 7510 MDATE 3340 OTAB 4124 AC2 7326 DYSTF1 4025 MEXT 2471 OUBUFR 4600 AC4000 7330 DYSTUF 4026 MLP 2445 OUCTLW 3125 ADDINF 4502 ECHO 3353 MN1 2432 OUERR 7352 AINO 2135 ECTMP 4022 MOIN 4123 OUHAND 0023 ALTOPT 7642 EMPTY 2513 MORE 4534 PG1 2200 ASSIGN 3200 ENDCHK 3506 MOV 2070 PIT 4213 ATIT 2236 ENTCNT 2552 MOVEIT 3062 PLACE 4411 BADIRD 7240 EPNEXT 2544 MOVEM 4521 PLOOP 3720 BATCIF 4700 EPTR 0026 MOVENT 2626 PNLOOP 4004 BATOUT 4676 ERROR 3710 MOVMSG 4631 PNMSUB 4000 BDPTR 0035 ERRRDO 7544 MSGS 5000 POPT1 4127 BIDIR 2347 EXERR 4472 MSIZE 3042 POUTNM 4036 BIDIRM 7432 FAKBDY 3400 MUSTWT 3527 PPTR1 4541 BLOCK 2550 FAKHND 0200 M1 4667 PRINTE 4200 BLOCKN 3107 FAKUSR 3433 NBLOCK 2400 PTR 0020 BLOOP 2421 FCIF0 4654 NCNT 2547 QINO 2137 BMOVLP 4621 FIVE 2001 NENT 2510 RDERR 4023 BODIR 4250 FIXDIR 3471 NFIN 2343 RDOERR 2131 BODORM 7445 FLSFMS 7527 NFLEIN 7373 READKB 3313 BUFSIZ 0033 FLSRSM 2711 NFUNCT 3150 RENAME 4420 BYPSCD 2003 FNDLST 2226 NMEPLC 4021 RENERR 7223 CDCALL 2000 FOTP 4600 NM1 2472 RESTOR 3666 CHAR 2543 FPAGE 0025 NOBTCH 4630 RETLOC 3470 CINTER 3623 FUNCT2 4236 NODEL 2731 RFLG 2130 CLOERR 4252 F2C1 3002 NOFILE 7417 RNAM 4442 CL7600 2713 F2C2 3076 NONUDA 4454 ROTR6 3242 CL7601 2731 GETCNT 2264 NOPT 4064 SAYNON 4043 CNT 0021 GOBCK 4107 NOPTIM 2316 SBLKN 3041 CNTDEL 7460 GOT1 2600 NOPT1 4063 SCIFC 3664 CNTUP 2042 GPTR1 0036 NOROOM 4266 SCODE 3704 CODE 4672 GPTR2 2545 NORUMX 4040 SDFLG 2127 CONVTP 3247 GTSXBT 3230 NOSUB 2301 SEGNO 4467 CORE 4702 HADDR1 3205 NOSUBS 3445 SERR 7214 CORELP 4716 HADDR2 3224 NOTRAN 4532 SETGD 2701 CORFUJ 4673 IDBUF 2211 NOUTFL 4336 SETSDR 2114 CORLOC 4752 IFCNT 0032 NOVER 3522 SFUDG 2126 CORRTN 4750 ILLA 7206 NPG 3000 SPOT 4256 COR70 4733 ILLQ 7200 NSETGD 2702 SPOT1 4262 COR706 4725 INBUFR 0000 NULLCK 2052 SPRBLM 7320 CRIT 4101 INCTLW 3105 OBLCKN 3127 SPURGE 3634 CRLF 3742 INDERR 2345 OBLOCK 4501 STAR 2002 CTCDE 3476 INEOF 0037 ODBUF 4323 SUBVER 0330 CTYPE 3600 INERR 7332 ODERR 4244 SVDATE 3530 C6203 4755 INFPTR 0022 ODIERR 7300 S1C 2010 DATCHK 3324 INFWDS 0034 ODIRIN 4304 S4L 2020 DATE 7666 INHAND 0024 ODRERR 7260 S7600 3711 DCASPT 3423 INIT 4604 ODSPEC 2071 TABAD 3467 DCAXR1 3417 INSCNT 0027 OFCNT 3144 TCHAR 3312 DELERR 4120 INTERC 3640 OKFLAG 0031 TEMP 0030 DFLAG 3745 K7450 2271 ONCE 4670 TLP 4052 DIDEML 2061 LFLAG 2546 ONDERR 2133 TRFLG 2737 DIRKEY 0007 LOOKUP 4400 ONLY 4671 TRYFLD 4754 /FOTP V50 FOR OS/8 V50 PAL8-V50X 01-JUN-87 PAGE 49-1 TSTEXT 2651 TTCNT4 4674 TTOUTP 4675 TTY 3275 TTYOUT 3300 TWOPAG 3213 TYPE 3256 TYPFND 2342 UNFAK 3461 UPPCK 3630 USEROD 4122 VERLOC 7236 VERNO 7233 VERSIO 0062 VV1 0005 VV2 0062 WILD 2467 WILDA 2536 WILDNM 2444 WRKEY 4457 WRTDIR 3531 WRTERR 4034 XR 0010 XR1 0011 XR2 0012 ZEROUT 4536 ZLOOP 4524 ERRORS DETECTED: 0 LINKS GENERATED: 0