File: PIP50.LS of Disk: V50/Source/Source-Listing-PAL-1
(Source file text)
/PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 1 /PIP V50 FOR OS/8 MONITOR V50 / / / / / / / / / /COPYRIGHT (C) 1977 BY DIGITAL EQUIPMENT CORPORATION / 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. / / / / / / / / / / /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 2 / 16-JUL-20 FILE: PIP50.PA OS/8 VERSION 50B /RL/EF/ET.AL./S.R./E.S. /JVZ/WVDM/DEVEXT VERSION 40A /WVDM/VERSION 50B /ABSTRACT---- /PIP (PERIPHERAL INTERCHANGE PROGRAM) IS A GENERAL FILE /MANIPULATION PROGRAM FOR THE OS/8 PROGRAMMING SYSTEM. /PIP ACCOMPLISHES DATA TRANSFERS BETWEEN ANY DEVICES IN THE OS/8 /CONFIGURATION. /VERSION 3 MODS: /FIXED PROBLEM WITH ONE-PAGE WRITE /IN /S OR /Z, =OPTION IS TAKEN MODULO 100 (OCTAL) / WITH 100, 200, ETC. MEANING USE 0 ADDITIONAL WDS. /DATES STILL DON'T LINE UP /'0 FREE BLOCKS' /ALLOW FILLING UP DEVICE TO VERY LAST BLOCK /ALLOW 7-BIT ^C /ALTMODE ON CD LINE RETURNS TO MONITOR WHEN DONE /NO HALT ON /L IF NO TTY HANDLER (ACTS AS NOP) / /V PRINTS VERSION NUMBER FIRST TIME CALLED / /O AFFIRMS 'YES' ON 'ARE YOU SURE' /=NNNN ON /I OPTION SPECIFIES LENGTH TO CLOSE FILE /MAINTENANCE RELEASE CHANGES: /1. FIXED LENGTH OF ALL VARIETIES OF RF08 /2. ADDED RX01 TO INTERNAL LENGTH TABLES /3. CHANGED VERSION NUMBER TO V10 /4. ADDED CHECK FOR 7-BIT CTRL/Z TO ASCII HANDLER /E.S. DISABLED /E,/F,/L /E.S. FIXED /Y OPTION PER SPR /WVDM ENABLED EFL / FIXED /Y IN SOURCE / ADDED NEW DATE FORMAT /DEVEXT ADDED RX02 SUPPORT / /Y OPTION FOR NEW MONITOR / GERMAN MESSAGES /GERMAN=1 /NOT ANYMORE /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 3 /DETAILS OF PIP: /PIP RUNS WITH THE USR (USER SERVICE ROUTINES) ALWAYS IN CORE. /THIS ELIMINATES SWAPPING THE MONITOR. IF ANY CHANGES ARE MADE /TO PIP, CARE SHOULD BE TAKEN IN USING PAGE ZERO LOCATIONS, AS /THEY MUST NOT DESTROY ANY MONITOR LOCATIONS. /CORE USED: /FIELD 0 /00000-02777- OUTPUT BUFFER /03000-06377- INPUT BUFFER /06400-06577- USED FOR NOTHING /06600-07177- INPUT HANDLER /07200-07577- OUTPUT HANDLER /FIELD 1 /10000-11777- OS/8 I/O MONITOR /12000-16577- EXECUTABLE CODE /16600-17177- HOLDS NEW DIRECTORY SEGMENT FOR /S OPTION /17200-17577- HOLDS OLD DIRECTORY SEGMENT IN /S OPTION /MAJOR PIECES OF CODE AND THEIR FUNCTION (BRIEFLY). /THIS IS A LIST OF ROUTINES AS THEY APPEAR PHYSICALLY, AND /NOT AS THEY ARE LOGICALLY CONNECTED. /ICHAR- GENERAL CHARACTER INPUT ROUTINE. ASSIGNS NEW / DEVICE HANDLERS AS NEEDED. /OOPEN- ENTERS A FILE ON A SPECIFIED DEVICE. /OUTDMP- WRITES OUTPUT BUFFER TO OUTPUT DEVICE. /OCLOSE- CLOSES FILE CREATED BY OOPEN /OCHAR- CHARACTER OUTPUT ROUTINE. WRITES CHARACTERS / TO OUTPUT BUFFER, CALLING OUTDMP WHEN FULL. /OTYPE- USES DEVICE NUMBER IN OUTPUT AREA OF CD TO / INSPECT THE DEVICE CONTROL BLOCK WORD. THIS / GIVES A CODE FOR THE TYPE OF DEVICE. /SLASHG- HANDLES I/O ERRORS. IF /G IS SET, HARD I/O / ERRORS ARE IGNORED. IF /S AND /G ARE ON, A / SPECIAL RETURN IS TAKEN. /IMAGE- IMAGE MODE PROCESSOR FOR PIP. /SQTRA- MAIN SUBROUTINE OF IMAGE MODE, AND /S OPTION. /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 3-1 /PIP, PIP+1- MAIN ENTRANCES TO PIP. THE CODE ON THIS PAGE / INSPECTS CD OPTION WORDS AND BRANCHES TO PROPER / ROUTINES. /ASCII- THE DEFAULT TRANSFER MODE IN PIP IS ASCII. /DELETE- DELETES FILES ON OUTPUT SIDE OF CD LIST. /DZERO- ZEROES DIRECTORY OF FIRST OUTPUT DEVICE. /PIPERR- ERROR ROUTINR FOR PIP. /DIRPRE- DIRECTORY PRINTING ROUTINE. /BINARY- BINARY MODE PROCESSOR. HANDLES ABSOLUTE AND / RELOCATABLE BINARY FILES. /ERPRNT- ERROR PRINTOUT. /SQUISH- FILE COMPRESSION PROCESSOR. ELIMINATES 'HOLES' / IN DIRECTORY OF INPUT DEVICE. /SYSCOP- SYSTEM COPY PROCESSOR. ALLOWS TRANSFER OF THE / OS/8 SYSTEM AREA. /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 4 /OPTIONS AVAILABLE IN PIP: /A- ASCII TRANSFER; DEFAULT MODE /B- BINARY MODE TANSFER /C- DELETE TRAILING BLANKS. (ASCII MODE) /D- DELETE FIRST OUTPUT FILE BEFORE PROCEEDING /E- LIST INPUT DIRECTORY INCLUDING EMPTY FILES /F- LIST INPUT DIRECTORY; ONLY FILE NAMES /G- IGNORE ERRORS WHILE TRANSFERING /I- IMAGE MODE TRANSFER /L- LIST INPUT DIRECTORY; EXCLUDE EMPTY FILES /N- NUMERIC DATES /O- OK TO PERFORM A SQUISH OR ZERO WITHOUT ASKING /S- COMPRESS INPUT DEVICE ONTO OUTPUT DEVICE. ELIMINATES / 'HOLES' ON INPUT DEVICE. /T- PROVIDE SIMPLE TTY FORMATTING. (ASCII ONLY) /Y- COPY OS/8 SYSTEM AREA /Z- ZERO OUTPUT DEVICE DIRECTORY BEFORE PROCEEDING /=N- LEAVE N WORDS EXTRA PER DIRECTORY ENTR. VALID / ONLY WITH /S OR /Z. /=N- WITH /I OPTION CLOSES OUTPUT FILE WITH THIS LENGTH /V PRINTS VERSION # (FIRST TIME ONLY) /COMMENTS ON THE PROGRAM: /SINCE PIP RUNS WITH USR IN CORE, NO PAGE ZERO LITERALS /CAN BE USED. THE LOCATIONS CURRENTLY USED IN /FIELD 1 ON PAGE ZERO ARE: 0010 OUTXR=10 0011 INXR=11 0012 TEMP1=12 0024 IHNDLR=24 /HOLDS INPUT HANDLER ADDRESS 0025 OHNDLR=25 /OUTPUT HANDLER ADDRESS 0026 SQFLAG=26 /'SQUISH INDICATOR 0027 OUWAST=27 /# WASTE WORDS ON OUTPUT 0030 OUTBLK=30 0031 OUDLEN=31 0032 SAME=32 0033 INBLK=33 0034 RECCNT=34 /CONSTANTS USED BY THE DIRECTORY PRINTOUT ROUTINE (OVERLAPPING) ARE: 0024 FLENGT=24 0025 BLOKNO=25 0027 DTYPE=27 0030 DCOUNT=30 0031 DLINK=31 0032 WASTE=32 0033 DDATE=33 0035 ECOUNT=35 /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 5 /PIP FOR OS/8 MONITOR /EQUIVALENCES FOR GENERAL CHARACTER I/O ROUTINES 0000 OUBUF=0 /MUST BE LOWER THAN INBUF 5400 OUCTL=5400 /OUTPUT BUFFER OF 3000 WORDS 7200 OUDEVH=7200 /PROVIDE ROOM FOR TWO-PAGE HANDLERS 3000 INBUF=3000 1600 INCTL=1600 /INPUT BUFFER OF 3400 WORDS 0007 INRECS=7 6600 INDEVH=6600 /PAGE 6400 IS FREE, EXCEPT DURING /Y COMMAND /EQUIVALENCES NECESSARY TO INTERFACE WITH MONITOR 7760 DCB=7760 7643 MPARAM=7643 /CD PARAMETER AREA 7666 MDATE=7666 /MONITOR DATE 7777 BIPCCL=7777 /BATCH,CCL,CORE,EX DATE 0007 OLDDIR=7 /POINTER TO MONITOR VARIABLE "OLDT9" 0027 MTEMP=27 /MONITOR SCRATCH AREA ON "SYS" - ***VOLATILE*** 0020 PTP=20 /INTERNAL TYPE CODE FOR PAPER TAPE PUNCH 0010 XR=10 0020 TEMP=20 0021 CHAR=21 0022 INFPTR=22 0023 INEOF=23 6601 ABUF=6601 /LINE BUFFER - 150 CHARACTERS LONG 1400 SQBUF1=1400 /DIRECTORY BUFFER FOR "SQUISH" OPTION 7200 SQBUF2=7200 /"" 0001 FIELD 1 /TO ENABLE /E,/F,/L SET 0001 OS78=1 /DO NOT USE DIRECTORY SERVIES, DIRECT DOES IT IFNDEF OS78 <OS78=1> / .PAL PIP12B / .LOAD PIP12B=13000 / .SA SYS PIP=6403 /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 6 /GENERAL CHARACTER I/O ROUTINES FOR BLEEP /CALLED AS FOLLOWS: /JMS I (IOPEN INITIALIZES THE INPUT ROUTINE /JMS I (ICHAR READS A CHARACTER /ERROR RETURN /AC>0 IF END OF FILE, AC<0 IF READ ERROR /JMS I (OOPEN INITIALIZES THE OUTPUT ROUTINE /ERROR RETURN AC>0 IF NO OUTPUT DEVICE/FILE, AC<0 IF ERROR /JMS I (OCHAR OUTPUTS A CHARACTER /ERROR RETURN OUTPUT ERROR OR TOO MUCH OUTPUT /JMS I (OCLOSE CLOSES THE OUTPUT FILE /ERROR RETURN FILE TOO LARGE TO BE CLOSED OR OUTPUT ERROR /JMS I (OTYPE RETURNS DCB WORD OF OUTPUT DEVICE IN AC /PARAMETERS NEEDED: /INBUF= ADDRESS OF INPUT BUFFER /INCTL= INPUT BUFFER CONTROL WORD /OUBUF= ADDRESS OF OUTPUT BUFFER /OUCTL= OUTPUT BUFFER CONTROL WORD (MUST BE NEGATIVE) /INRECS= [INCTL/256] /INDEVH= ADDRESS OF PAGE FOR INPUT HANDLER /OUDEVH= ADDRESS OF PAGE FOR OUTPUT HANDLER /ASSUMES I/O MONITOR IS RESIDENT IN CORE. /CAN BE CALLED FROM ANY FIELD WITH BUFFERS IN ANY FIELD. /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 7 0000 INFLD=INCTL&70 /GET FIELD OF INPUT BUFFER 0000 OUFLD=OUCTL&70 /DITTO OUTPUT BUFFER 2000 *2000 012000 7400 IN7400, 7400 012001 0000 IOPEN, 0 012002 7240 CLA CMA 012003 3335 DCA INCHCT /SET INCHCT TO FORCE A READ 012004 2023 ISZ INEOF /SET END-OF-FILE FLAG TO FORCE A NEW FILE 012005 1377 TAD (7617 012006 3022 DCA INFPTR /RESET FILE POINTER 012007 6214 RDF 012010 1246 TAD INCDIF 012011 3212 DCA .+1 012012 7402 INPTR, HLT /RESTORE CALLING FIELDS 012013 5601 JMP I IOPEN 012014 0000 ICHAR, 0 012015 7600 IN7600, 7600 012016 6214 RDF 012017 1246 TAD INCDIF 012020 3333 DCA INRTRN /SAVE CALLING FIELDS 012021 6201 INCHAR, CDF INFLD 012022 2302 ISZ INJMP /BUMP THREE-WAY UNPACK SWITCH 012023 2335 ISZ INCHCT 012024 5302 INJMPP, JMP INJMP 012025 1023 TAD INEOF 012026 7650 SNA CLA /DID LAST READ YIELD END-OF-FILE? 012027 5232 JMP INGBUF /NO - DO ANOTHER 012030 4335 GETNEW, JMS INNEWF /OPEN A NEW INPUT FILE 012031 5301 JMP EOFERR /NO FILE TO OPEN 012032 1201 INGBUF, TAD INCTR 012033 7100 CLL 012034 1376 TAD (INRECS 012035 7420 SNL 012036 3201 DCA INCTR /RESTORE INCTR IF IT HASN'T OVERFLOWED 012037 7430 SZL /IS THIS THE LAST READ? 012040 2023 ISZ INEOF /YES - SET END-OF-FILE FLAG /NOT END-OF-FILE IF INPUT DEVICE /IS NON-FILE STRUCTURED! 012041 7172 CLL CML CMA RTR /CONSTRUCT A CONTROL WORD FOR THE READ 012042 7012 RTR /FROM THE AMOUNT OF THE OVERFLOW 012043 7012 RTR /(IF ANY) AND THE STANDARD CONTROL WORD 012044 1375 TAD (INCTL+1 012045 3251 DCA INCTLW 012046 6203 INCDIF, CDF CIF 0 012047 6211 CDF 10 012050 4746 JMS I INHNDL /CALL THE DEVICE HANDLER 012051 0000 INCTLW, 0 012052 3000 INBUFP, INBUF 012053 0000 INREC, 0 /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 7-1 012054 4774 JMS I (SLASHG /A HANDLER ERROR - SHOULD WE IGNORE? 012055 0020 INERRX-. /ADDRESS IF NOT 012056 1253 INBREC, TAD INREC 012057 1376 TAD (INRECS 012060 3253 DCA INREC /UPDATE THE RECORD NUMBER 012061 1251 TAD INCTLW 012062 0215 AND IN7600 012063 7104 CLL RAL 012064 1251 TAD INCTLW 012065 0215 AND IN7600 012066 7040 CMA 012067 3335 DCA INCHCT /COMPUTE THE NEW CHARACTER COUNT 012070 1224 TAD INJMPP 012071 3302 DCA INJMP /RESET THE CHARACTER SWITCH 012072 1252 TAD INBUFP 012073 3212 DCA INPTR /AND THE WORD POINTER 012074 5221 JMP INCHAR /GO BACK AND MAKE BELIEVE THIS NEVER HAPPENED 012075 2023 INERRX, ISZ INEOF /EITHER AN END-OF-FILE OR A BADDIE 012076 7700 SMA CLA /WHICH TYPE WAS IT? 012077 5256 JMP INBREC /END OF FILE - RESUME THY PROCESSING 012100 7330 INERR, CLA CLL CML RAR /BADDIE - GIVE ERROR RETURN WITH NEGATIVE AC 012101 5333 EOFERR, JMP INRTRN 012102 7402 INJMP, HLT /THIS IS THE THREE - WAY CHARACTER SWITCH 012103 5324 JMP ICHAR1 012104 5320 JMP ICHAR2 012105 1224 ICHAR3, TAD INJMPP 012106 3302 DCA INJMP 012107 1612 TAD I INPTR 012110 0200 IN200, AND IN7400 012111 7112 CLL RTR 012112 7012 RTR /COMBINE THE HIGH-ORDER FOUR BITS OF 012113 1251 TAD INCTLW 012114 7012 RTR /THE TWO WORD TO FORM THE THIRD CHARACTER 012115 7012 RTR 012116 2212 ISZ INPTR 012117 5325 JMP INCOMN 012120 1612 ICHAR2, TAD I INPTR 012121 0200 AND IN7400 012122 3251 DCA INCTLW /SAVE THE HIGH-ORDER BITS FOR THE THIRD CHAR 012123 2212 ISZ INPTR /BUMP THE WORD POINTER 012124 1612 ICHAR1, TAD I INPTR 012125 0373 INCOMN, AND (377 012126 1372 TAD (-232 012127 7450 INCTZF, SNA /IS THE CHARACTER A ^Z? 012130 5230 JMP GETNEW /YES - GET A NEW FILE 012131 1371 TAD (232 /RESTORE THE CHARACTER 012132 2214 ISZ ICHAR /BUMP RETURN TO NORMAL RETURN 012133 0000 INRTRN, 0 /RESTORE CALLING FIELDS 012134 5614 JMP I ICHAR /AND RETURN /IOPEN IS UNNECESSARY. /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 8 012135 7777 INNEWF, -1 /ROUTINE TO OPEN NEW INPUT FILE 2135 INCHCT=INNEWF 012136 6211 CDF 10 012137 1370 TAD (INDEVH+1 012140 3346 DCA INHNDL /INITIALIZE HANDLER ADDRESS 012141 1422 TAD I INFPTR /GET NEXT CD INPUT FILE ENTRY 012142 7450 SNA /ANY MORE? 012143 5735 JMP I INNEWF /NO - OUT OF INPUT 012144 4710 JMS I IN200 012145 0001 1 /ASSIGN, FETCH HANDLER 012146 0000 INHNDL, 0 012147 7402 HLT /HUH? 012150 1422 TAD I INFPTR 012151 0367 AND (7760 /GET LENGTH PART OF WORD 012152 7440 SZA /LENGTH OF 0 MEANS LENGTH >=256 012153 1366 TAD (17 /ADD HIGH-ORDER BITS 012154 7132 CLL CML RTR 012155 7012 RTR 012156 3201 DCA INCTR /STORE LENGTH OF FILE 012157 2022 ISZ INFPTR 012160 1422 TAD I INFPTR 012161 3253 DCA INREC /STORE STARTING RECORD NUMBER OF FILE 012162 2022 ISZ INFPTR 012163 3023 DCA INEOF /ZERO END-OF-FILE FLAG 012164 2335 ISZ INNEWF 012165 5735 JMP I INNEWF 2001 INCTR=IOPEN 012166 0017 012167 7760 012170 6601 012171 0232 012172 7546 012173 0377 012174 2520 012175 1601 012176 0007 012177 7617 2200 PAGE /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 9 012200 0000 OOPEN, 0 /OPEN OUTPUT FILE 012201 7600 OU7600, 7600 / RDF / TAD OUCDIF / DCA OORETN 012202 1351 TAD OU7601 012203 3222 DCA OUBLK 012204 1377 TAD (OUDEVH+1 012205 3215 DCA OUHNDL 012206 6211 CDF 10 012207 1601 TAD I OU7600 /GET DEVICE NUMBER WORD OF OUTPUT FILE ENTRY 012210 0376 AND (17 /STRIP OFF ANY LENGTH INFO 012211 7450 SNA /IS THERE AN OUTPUT DEVICE? 012212 5245 JMP ONOFIL /NO - INHIBIT OUTPUT 012213 4775 JMS I (200 012214 0001 1 /ASSIGN, FETCH HANDLER 012215 0000 OUHNDL, 0 /OUTPUT DEVICE HANDLER ENTRY 012216 7402 HLT /HUH? 012217 1601 OUENTR, TAD I OU7600 012220 4775 JMS I (200 012221 0003 3 /ENTER OUTPUT FILE 012222 7601 OUBLK, 7601 /REPLACED WITH STARTING BLOCK 012223 0000 OUELEN, 0 /REPLACED WITH LENGTH OF HOLE 012224 5233 JMP OEFAIL /FAILED - MAYBE WE ASKED TOO MUCH 012225 3352 DCA OUCCNT 012226 3774 DCA I (OUTINH /ZERO OUTPUT INHIBIT FLAG 012227 4773 JMS I (OUSETP 012230 2200 ISZ OOPEN 012231 6213 OORETN, CDF CIF 10 /RESTORE CALLING FIELDS 012232 5600 JMP I OOPEN 012233 1601 OEFAIL, TAD I OU7600 012234 0372 AND (7760 /GET REQUESTED LENGTH 012235 7650 SNA CLA /WAS IT AN INDEFINITE REQUEST 012236 5243 JMP ONTERR /YES - CANNOT ENTER THE FILE 012237 1601 TAD I OU7600 012240 0376 AND (17 /MAKE THE REQUESTED LENGTH ZERO 012241 3601 DCA I OU7600 012242 5217 JMP OUENTR /TRY, TRY AGAIN 012243 7330 ONTERR, CLA CLL CML RAR 012244 5231 JMP OORETN /TAKE THE ERROR RETURN WITH AC<0 012245 2774 ONOFIL, ISZ I (OUTINH 012246 5231 JMP OORETN /TAKE THE ERROR RETURN WITH AC=0 /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 10 012247 0000 OUTDMP, 0 012250 3301 DCA OUCTLW /STORE THE CONTROL WORD 012251 6211 CDF 10 012252 1774 TAD I (OUTINH 012253 7640 SZA CLA 012254 5306 JMP OUNOWR 012255 1352 TAD OUCCNT 012256 7450 SNA 012257 2301 ISZ OUCTLW 012260 1222 TAD OUBLK 012261 3303 DCA OUREC /COMPUTE THE STARTING BLOCK NUMBER OF THIS TRANSFER 012262 1301 TAD OUCTLW 012263 7106 CLL RTL 012264 7006 RTL 012265 7006 RTL 012266 0376 AND (17 /COMPUTE THE NUMBER OF RECORDS 012267 1352 TAD OUCCNT /UPDATE THE NUMBER OF BLOCKS IN THE FILE 012270 3352 DCA OUCCNT 012271 1352 TAD OUCCNT 012272 7120 CLL CML 012273 1223 TAD OUELEN 012274 7660 SNL SZA CLA /DOES THE LENGTH EXCEED THE GIVEN LENGTH? 012275 5647 JMP I OUTDMP /YES - SIGNAL OUTPUT ERROR 012276 6203 OUCDIF, CDF CIF 0 012277 6211 CDF 10 012300 4615 JMS I OUHNDL 012301 0000 OUCTLW, 0 012302 0000 OUBUF 012303 0000 OUREC, 0 012304 4771 JMS I (SLASHG 012305 0002 .+2-. 012306 2247 OUNOWR, ISZ OUTDMP /BUMP OUTDMP TO NORMAL RETURN 012307 5647 JMP I OUTDMP /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 11 012310 0000 OCLOSE, 0 012311 6211 CDF 10 012312 1774 TAD I (OUTINH 012313 7640 SZA CLA /IS OUTPUT INHIBITED? 012314 5354 JMP OCISZ /YES - CLOSE IS A NOP 012315 4770 JMS I (OTYPE 012316 0367 AND (770 012317 1372 TAD (-PTP /CHECK FOR PAPER TAPE PUNCH OUTPUT 012320 7640 SZA CLA /AND SKIP ^Z OUTPUT IF TRUE 012321 1366 TAD (232 /OUTPUT A ^Z 012322 4765 JMS I (OCHAR 012323 5355 JMP OCRET 012324 4765 JMS I (OCHAR 012325 5355 JMP OCRET 012326 4765 FILLLP, JMS I (OCHAR 012327 5355 JMP OCRET 012330 4770 JMS I (OTYPE /GET TYPE OF OUTPUT DEVICE 012331 7710 SPA CLA 012332 1364 TAD (100 /IF ITS A DIRECTORY DEVICE FORCE A RECORD 012333 1363 TAD (77 /BOUNDARY - OTHERWISE A HALF-RECORD 012334 0762 AND I (OUDWCT 012335 7640 SZA CLA /UP TO THE BOUNDARY YET? 012336 5326 JMP FILLLP /NO - FILL WITH ZEROS 012337 1762 TAD I (OUDWCT /GET DOUBLEWORD COUNT LEFT 012340 1361 TAD (OUCTL&3700 012341 7450 SNA /A FULL WRITE LEFT? 012342 5346 JMP NODUMP /YES - DON'T DO IT - THE ^Z IS ALREADY OUT 012343 1360 TAD (4000+OUFLD /PUT IN THE FIELD BITS AND THE WRITE BIT 012344 4247 JMS OUTDMP 012345 5355 JMP OCRET /AN ERROR OCCURRED WHILE DUMPING THE BUFFER 012346 1601 NODUMP, TAD I OU7600 /GET THE DEVICE NUMBER 012347 4775 JMS I (200 012350 0004 4 /CLOSE THE OUTPUT FILE 012351 7601 OU7601, 7601 /POINTER TO THE OUTPUT FILE NAME 012352 0000 OUCCNT, 0 012353 7410 SKP /ERROR WHILE CLOSING THE FILE - BAD! 012354 2310 OCISZ, ISZ OCLOSE 012355 6213 OCRET, CDF CIF 10 /RESTORE CALLING FIELDS 012356 5710 JMP I OCLOSE 012360 4000 012361 1400 012362 2471 012363 0077 012364 0100 012365 2410 012366 0232 012367 0770 012370 2473 012371 2520 012372 7760 012373 2400 012374 2472 /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 11-1 012375 0200 012376 0017 012377 7201 2400 PAGE /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 12 012400 0000 OUSETP, 0 /ROUTINE TO INITIALIZE CHARACTER POINTERS 012401 1377 TAD (OUCTL&3700 /GET SIZE OF BUFFER IN DOUBLEWORDS 012402 7041 CIA /PAL10 IS DEFINITELY NOT NICE 012403 3271 DCA OUDWCT / TAD (OUBUF IFNZRO OUBUF <ERROR!> /V3 012404 3267 DCA OUPTR /INITIALIZE WORD POINTER 012405 1270 TAD OUJMPE 012406 3223 DCA OUJMP /INITIALIZE THREE-WAY CHARACTER SWITCH 012407 5600 JMP I OUSETP 012410 0000 OCHAR, 0 012411 0376 AND (377 012412 3265 DCA OUTEMP 012413 6214 RDF 012414 1375 TAD (CDF CIF 0 012415 3263 DCA OUCRET 012416 1272 TAD OUTINH 012417 7640 SZA CLA /IS THERE AN OUTPUT FILE? 012420 5262 JMP OUCOMN /NO - EXIT 012421 6201 OUCHAR, CDF OUFLD /SET DATA FIELD TO BUFFER'S FIELD 012422 2223 ISZ OUJMP /BUMP THE CHARACTER SWITCH 012423 7402 OUJMP, HLT /THREE WAY CHARACTER SWITCH 012424 5260 JMP OCHAR1 012425 5255 JMP OCHAR2 012426 1265 OCHAR3, TAD OUTEMP 012427 7106 CLL RTL 012430 7006 RTL 012431 0374 AND (7400 012432 1666 TAD I OUPOLD 012433 3666 DCA I OUPOLD /UPDATE FIRST WORD OF TWO WITH HIGH /ORDER 4 BITS OF THIRD CHAR 012434 1265 TAD OUTEMP 012435 7112 CLL RTR 012436 7012 RTR 012437 7010 RAR 012440 0374 AND (7400 012441 1667 TAD I OUPTR 012442 3667 DCA I OUPTR /UPDATE SECOND WORD FROM LOW ORDER 4 BITS 012443 1270 TAD OUJMPE 012444 3223 DCA OUJMP /RESET SWITCH 012445 2267 ISZ OUPTR 012446 2271 ISZ OUDWCT /BUMP DOUBLEWORD COUNTER EVERY 3 CHARS 012447 5262 JMP OUCOMN 012450 1373 TAD (OUCTL /LOAD CONTROL WORD FOR A FULL WRITE 012451 4772 JMS I (OUTDMP /DUMP THE BUFFER 012452 5263 JMP OUCRET /OUTPUT ERROR - GIVE ERROR RETURN 012453 4200 JMS OUSETP /RE-INITIALIZE THE POINTERS 012454 5262 JMP OUCOMN 012455 1267 OCHAR2, TAD OUPTR 012456 3266 DCA OUPOLD /SAVE POINTER TO FIRST WORD OF TWO 012457 2267 ISZ OUPTR /BUMP WORD POINTER TO SECOND WORD /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 12-1 012460 1265 OCHAR1, TAD OUTEMP 012461 3667 DCA I OUPTR 012462 2210 OUCOMN, ISZ OCHAR 012463 7402 OUCRET, HLT /RESTORE CALLING FIELDS 012464 5610 JMP I OCHAR 012465 0000 OUTEMP, 0 012466 0000 OUPOLD, 0 012467 0000 OUPTR, 0 012470 5223 OUJMPE, JMP OUJMP 012471 0000 OUDWCT, 0 012472 0000 OUTINH, 0 /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 13 012473 0000 OTYPE, 0 012474 6214 RDF 012475 1375 TAD (CDF CIF 0 012476 3305 DCA OTRTN 012477 6211 CDF 10 012500 1771 TAD I (7600 012501 0370 AND (17 012502 1367 TAD (DCB-1 012503 3265 DCA OUTEMP 012504 1665 TAD I OUTEMP 012505 7402 OTRTN, HLT 012506 5673 JMP I OTYPE 012507 0000 CTCTST, 0 012510 1366 TAD (200 /V3 012511 6034 KRS 012512 1365 TAD (-203 012513 7650 SNA CLA /IS THE TELETYPE BUFFER A ^C 012514 6031 KSF /WITH THE TELETYPE FLAG ON? 012515 5707 JMP I CTCTST /NO 012516 6203 LEAVE, CDF CIF 0 /YES - GO TO MONITOR 012517 5771 JMP I (7600 /THROUGH THE "SAVE CORE" RETURN 012520 0000 SLASHG, 0 012521 3307 DCA CTCTST 012522 1026 TAD SQFLAG 012523 7640 SZA CLA /ARE WE SQUISHING? 012524 5764 JMP I (SQIOER /YES 012525 1307 TAD CTCTST 012526 7710 SPA CLA /ONLY IGNORE HARD ERRORS 012527 1763 TAD I (MPARAM 012530 0362 AND (40 012531 7640 SZA CLA / "G" SWITCH 012532 5720 SLGRET, JMP I SLASHG /IGNORED! 012533 1720 TAD I SLASHG 012534 1320 TAD SLASHG 012535 3320 DCA SLASHG /SET UP NON-IGNORE ADDRESS 012536 1307 TAD CTCTST 012537 5720 JMP I SLASHG /RETURN WITH AC RESTORED /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 14 IFZERO OS78 < DIR, DCA DTYPE /SAVE TYPE OF REQUEST TAD I (7600 SZA CLA /IS THERE AN OUTPUT FILE? JMP I (DIRPRE /YES DCA TTYDEV+1 JMS I (200 12 /ASSIGN WITHOUT FETCH TTYDEV, 5524 /COMPRESSED CODE FOR "TTY" 0 0 JMP I (PIP /V3 WHAT - NO TELETYPE! TAD TTYDEV+1 DCA I (7600 JMP I (DIRPRE > IFNZRO OS78 < 012540 4761 DIR, JMS I (PIPERR /TYPE OUT MESSAGE 012541 0014 14 012542 2523 DIRMSG, TEXT "USE DIRECT" 012543 0540 012544 0411 012545 2205 012546 0324 012547 0000 > 012561 3521 012562 0040 012563 7643 012564 5645 012565 7575 012566 0200 012567 7757 012570 0017 012571 7600 012572 2247 012573 5400 012574 7400 012575 6203 012576 0377 012577 1400 2600 PAGE /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 15 /PIP PROPER BEGINS HERE /********************** /IMAGE MODE PROCESSOR FOR PIP 012600 7600 IM7600, 7600 /KEEP AT BEGINNING OF PAGE 012601 4777 IMAGE, JMS I (FIXLEN 012602 4776 JMS I (OUTOPN 012603 4256 JMS IMTRA 012604 1775 IMCLOS, TAD I (OUTINH 012605 7640 SZA CLA /WAS THERE AN OUTPUT FILE? 012606 5774 JMP I (PIPCLR /NO - DON'T CLOSE IT 012607 4773 JMS I (OUK /GET THE LENGTH OF THE OUTPUT FILE 012610 3215 DCA IMCCNT 012611 1600 TAD I IM7600 012612 4747 JMS I IM200 012613 0004 4 /CLOSE 012614 7601 7601 /FILE NAME 012615 0000 IMCCNT, 0 012616 5772 JMP I (AOUERR 012617 5774 JMP I (PIPCLR 012620 0000 ENDFUJ, 0 /PART OF DIRECTORY PRINTING ROUTINE 012621 4771 JMS I (PRNUM 012622 1370 TAD (-7 012623 4767 JMS I (PRWD /PRINT SEVEN WORDS 012624 4006 IFNDEF GERMAN < TEXT \ FREE BLOCKS \> 012625 2205 012626 0540 012627 0214 012630 1703 012631 1323 012632 4040 012633 0000 IFDEF GERMAN < TEXT \ FREIE BLOECKE\> 2633 *.-1 012633 4766 JMS I (PCRLF 012634 4766 JMS I (PCRLF /LEAVE A SPACE BETWEEN DIRECTORIES 012635 2023 ISZ INEOF /SIMULATE "END OF FILE" FOR INPUT ROUTINE 012636 7240 CLA CMA 012637 3765 DCA I (INCHCT /AS WELL AS "END OF BUFFER" 012640 5620 JMP I ENDFUJ /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 16 IMHNDL, /V3 012641 0000 SQTRA, 0 012642 1241 TAD SQTRA 012643 3256 DCA IMTRA /FAKE A CALL TO "IMTRA" 012644 1034 TAD RECCNT /SETTING UP THE ARGS TO DO THE SQUISHING FOR US 012645 3764 DCA I (INCTR 012646 1024 TAD IHNDLR 012647 3241 DCA IMHNDL 012650 1033 TAD INBLK 012651 3312 DCA IMREC 012652 1030 TAD OUTBLK 012653 3763 DCA I (OUCCNT 012654 3023 DCA INEOF 012655 5271 JMP IMRCLP 012656 0000 IMTRA, 0 012657 4764 JMS I (IOPEN /INITIALIZE INPUT ROUTINE 012660 1023 AGAIN, TAD INEOF /IOPEN ALWAYS SETS INEOF 012661 7650 SNA CLA /KEEP READING? 012662 5271 JMP IMRCLP /YES /NO, OPEN NEXT FILE 012663 4765 IMFILP, JMS I (INNEWF /SET UP PARAMS FOR NEXT FILE 012664 5656 JMP I IMTRA /NO NEXT FILE 012665 1762 TAD I (INHNDL 012666 3241 DCA IMHNDL /GET DEVICE HANDLER ENTRY 012667 1761 TAD I (INREC 012670 3312 DCA IMREC /AND STARTING BLOCK NUMBER 012671 1764 IMRCLP, TAD I (INCTR 012672 7100 CLL 012673 1360 TAD (15 012674 7420 SNL /IF LINK IS ON, THERE ARE LESS THAN 16 BLOCKS LEFT 012675 3764 DCA I (INCTR 012676 7430 SZL 012677 2023 ISZ INEOF 012700 7172 CLL CML CMA RTR 012701 7012 RTR 012702 7012 RTR 012703 1357 TAD (3201 /FORM A FULL OR PARTIAL READ CONTROL WORD 012704 3310 DCA IMCTLW 012705 4756 JMS I (CTCTST /CHECK FOR ^C 012706 6202 CIF 0 012707 4641 JMS I IMHNDL 012710 0000 IMCTLW, 0 012711 0000 OUBUF 012712 0000 IMREC, 0 012713 4755 JMS I (SLASHG 012714 0011 IMERRX-. 012715 1312 TAD IMREC 012716 1360 TAD (15 012717 3312 DCA IMREC /UPDATE BLOCK NUMBER 012720 7330 CLA CLL CML RAR 012721 1310 TAD IMCTLW /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 16-1 012722 4754 IMOUT, JMS I (OUTDMP /WRITE OUT WHAT WE JUST READ IN 012723 5772 JMP I (AOUERR /WRITE ERROR - BAD! 012724 5260 JMP AGAIN /V3 /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 17 012725 2023 IMERRX, ISZ INEOF /SIGNAL EOF OR WORSE 012726 7710 SPA CLA /WHICH ONE IS IT? 012727 5342 JMP IMERR4 012730 1353 TAD (6377 /MARCH DOWN THROUGH CORE 012731 3021 IMEFLP, DCA CHAR /LOOKING FOR THE FIRST NON-ZERO WORD 012732 6201 CDF 0 012733 1421 TAD I CHAR 012734 7640 SZA CLA 012735 5344 JMP IMNZRO 012736 7340 CLA CMA CLL 012737 1021 TAD CHAR 012740 7430 SZL /IF WE GO THROUGH THE BUFFER WITHOUT A NON-ZERO WORD 012741 5331 JMP IMEFLP 012742 4752 IMERR4, JMS I (PIPERR /SOMETHING IS WRONG (HANDLER SHOULD HAVE INSERTED 012743 0004 4 /A ^Z AT LEAST) 012744 6211 IMNZRO, CDF 10 012745 1021 TAD CHAR 012746 7130 CLL CML RAR 012747 0200 IM200, AND IM7600 012750 1347 TAD IM200 /GET THE LENGTH OF THE USEFUL PART OF THE BUFFER 012751 5322 JMP IMOUT /AS AN OUTPUT CONTROL WORD AND GO OUTPUT IT 012752 3521 012753 6377 012754 2247 012755 2520 012756 2507 012757 3201 012760 0015 012761 2053 012762 2146 012763 2352 012764 2001 012765 2135 012766 4142 012767 4050 012770 7771 012771 4101 012772 6531 012773 5323 012774 6126 012775 2472 012776 3343 012777 3700 3000 PAGE /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 18 /** PIP STARTS HERE (OR HERE+1 IF CHAINED TO) ** 013000 5230 PIPSA, JMP PIPCD /NORMAL ENTRY/RE-ENTRY - CALL CD 013001 5233 JMP NOPCD /ENTRY FROM CHAIN COMMAND - ASSUME CD AREA SET UP /PART OF ASCII PROCESSOR - CLEAN UP AT END OF LINE AND END OF FILE 013002 1021 LFEED, TAD CHAR 013003 3410 DCA I XR /PUT THE LINE FEED IN THE LINE BUFFER 013004 3410 EOL, DCA I XR /MARK THE END OF USEFUL INFO 013005 4777 JMS I (CTCTST 013006 1376 TAD (ABUF-1 013007 3010 DCA XR /RESET BUFFER POINTER 013010 1410 EOLLP, TAD I XR /GET A CHARACTER FROM THE LINE BUFFER 013011 7450 PIPSNA, SNA /ZERO MEANS NO MORE CHARS 013012 5216 JMP EOFTST 013013 4775 JMS I (OCHAR /OUTPUT THE CHARACTER 013014 5774 JMP I (AOUERR 013015 5210 JMP EOLLP 013016 1314 EOFTST, TAD AEOFFG 013017 7650 SNA CLA /END OF INPUT ENCOUNTERED? 013020 5773 JMP I (ASCIGO /NO - GET NEXT LINE 013021 4772 ACLOSE, JMS I (OCLOSE /YES - CLOSE THE OUTPUT FILE 013022 5774 JMP I (AOUERR /ERROR ON CLOSE 013023 1771 PIP, TAD I (MPARAM-1 /V3 013024 7700 SMA CLA /ALTMODE TERMINATE LAST COMMAND STRING? 013025 5230 JMP PIPCD /NO 013026 6203 CDF CIF 0 /YES 013027 5770 JMP I (7605 /EXIT TO OS/8 WITHOUT SAVING CORE 013030 4767 PIPCD, JMS I (200 /OF COURSE THE MONITOR IS IN CORE! 013031 0005 5 /COMMAND DECODE 013032 0000 0 /NO ASSUMED EXTENSIONS ON INPUT L20, /V3 013033 4776 NOPCD, JMS I (ONCE /REPLACED BY '20' BY ONCE-ONLY CODE 013034 4766 JMS I (SRSTOR /CLEAR /S OR /Y;READ MONITOR 013035 3026 DCA SQFLAG /CLEAR /S INDICATOR 013036 1211 TAD PIPSNA 013037 3765 DCA I (INCTZF /RESET INPUT SWITCH TO DETECT "^Z"'S 013040 1764 TAD I (MPARAM+1 013041 0363 AND (40 /"S" SWITCH 013042 7640 SZA CLA 013043 5762 JMP I (SQUISH /IT WAS ON - COMPRESS THE INDICATED DEVICES 013044 1761 TAD I (MPARAM+2 013045 7006 RTL 013046 7630 SZL CLA /"Z" SWITCH IN THE LINK 013047 4760 JMS I (DZERO /ZERO DIRECTORY BEFORE PROCEEDING 013050 1757 TAD I (MPARAM 013051 0356 AND (400 /"D" SWITCH 013052 7640 SZA CLA 013053 4755 JMS I (DELETE /DELETE OUTPUT FILE 013054 1761 TAD I (MPARAM+2 /IS /Y ON? 013055 7710 SPA CLA 013056 5754 JMP I (SYSCOP /YEP..TRANSFER SYSTEM HEAD /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 18-1 013057 1757 TAD I (MPARAM 013060 0353 AND (301 /"E","F" AND "L" SWITCHES 013061 7440 SZA /ANY ONE OF THEM ON? 013062 5752 JMP I (DIR /YES - LIST A DIRECTORY 013063 1757 TAD I (MPARAM 013064 7006 RTL 013065 0363 AND (40 /"I" SWITCH ROTATED TWO LEFT 013066 7640 SZA CLA 013067 5751 JMP I (IMAGE /IMAGE MODE TRANSFER 013070 1750 TAD I (7617 /MUST PRESERVE THE LINK 013071 7650 SNA CLA /V3 IMAGE MODE ALLOWS NO INPUT FILE 013072 5223 JMP PIP /TERMINATE HERE IF NO INPUT SIDE 013073 7630 SZL CLA /"B" SWITCH IN LINK 013074 5747 JMP I (BINARY /BINARY MODE TRANSFER /DEFAULT MODE OF TRANSFER IS ASCII 013075 1764 ASCII, TAD I (MPARAM+1 013076 0233 AND L20 013077 3333 DCA COPTSW 013100 1333 TAD COPTSW 013101 4746 JMS I (ASCI2 /TEST FOR OUTPUT DEVICE 013102 4745 JMS I (OUTOPN 013103 4744 JMS I (IOPEN /OPEN THE INPUT FILES 013104 3314 DCA AEOFFG /ZERO THE END-OF-FILE FLAG 013105 4743 JMS I (LEADER 013106 5773 JMP I (ASCIGO /ENTRY ON END OF INPUT 013107 7710 ASCEOF, SPA CLA /WAS IT END OF INPUT OR AN INPUT ERROR? 013110 4742 PER4, JMS I (PIPERR 013111 0004 4 013112 2314 ISZ AEOFFG /SET END-OF-INPUT FLAG 013113 5204 JMP EOL /PROCESS LAST LINE (IF ANY) 013114 0000 AEOFFG, 0 /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 19 /SUBROUTINE TO OUTPUT RUBOUTS AFTER FORM CONTROL CHARACTERS 013115 0000 RUBOUT, 0 /UNLESS OUTPUT IS TO A DIRECTORY DEVICE 013116 3020 DCA TEMP /STORE COUNT 013117 4741 JMS I (OTYPE /GET TYPE OF OUTPUT DEVICE 013120 7710 SPA CLA 013121 5715 JMP I RUBOUT /DIRECTORY DEVICE - DON'T BOTHER 013122 1021 RBTLP, TAD CHAR 013123 1340 TAD (-214 013124 7640 SZA CLA /IS THE FORM CONTROL CHAR A FORM-FEED? 013125 7240 STA /NO - RUBOUT 013126 1356 TAD (400 /YES - OUTPUT BLANK TAPE INSTEAD 013127 3410 DCA I XR /PUT IN BUFFER 013130 2020 ISZ TEMP 013131 5322 JMP RBTLP /LOOP FOR THE REQUISITE COUNT 013132 5715 JMP I RUBOUT 013133 0000 COPTSW, 0 013134 7710 DEND, SPA CLA 013135 5310 JMP PER4 013136 5221 JMP ACLOSE 013140 7564 013141 2473 013142 3521 013143 3533 013144 2001 013145 3343 013146 6466 013147 4401 013150 7617 013151 2601 013152 2540 013153 0301 013154 6001 013155 3401 013156 0400 013157 7643 013160 3435 013161 7645 013162 5200 013163 0040 013164 7644 013165 2127 013166 5664 013167 0200 013170 7605 013171 7642 013172 2310 013173 3200 013174 6531 013175 2410 013176 6600 013177 2507 /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 19-1 3200 PAGE /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 20 3200 *3200 /ASCII PROCESSOR CONTINUED 013200 1377 ASCIGO, TAD (ABUF-2 013201 3010 DCA XR 013202 3410 DCA I XR /PROTECT AGAINST NULL LINE WITH "T" OPTION 013203 3342 DCA COLCT /ZERO COLUMN COUNTER FOR TAB CONVERSION 013204 4776 ACHLP, JMS I (ICHAR /GET A CHARACTER 013205 5775 JMP I (ASCEOF /END OF INPUT OR WORSE 013206 0374 AND (177 /MASK OUT PARITY BIT 013207 7440 SZA /IGNORE BLANK TAPE AND LEADER/TRAILER 013210 1373 TAD (-177 013211 7450 SNA 013212 5204 JMP ACHLP /DITTO RUBOUTS 013213 1372 TAD (177-32 /V3C 013214 7450 SNA 013215 5771 JMP I (ASCPTCH /7-BIT ^Z CHECK 013216 1370 TAD (232 /FORCE COLUMN 8 ON 013217 3021 DCA CHAR 013220 1021 TAD CHAR 013221 1367 TAD (-216 013222 7100 CLL 013223 1350 TAD ASCI5 013224 7420 SNL /IS THE CHARACTER A FORM CONTROL CHARACTER? 013225 5237 JMP CINSRT /NO 013226 1231 TAD ASCJMP /YES - GO TO APPROPRIATE ROUTINE 013227 3230 DCA .+1 013230 7402 HLT 013231 5632 ASCJMP, JMP I .+1 013232 3251 TAB 013233 3002 LFEED 013234 3271 VTAB 013235 3311 FFEED 013236 3321 CARRET 013237 7600 CINSRT, 7600 /GRP 2 CLA 013240 1021 TAD CHAR 013241 3410 ADCAXR, DCA I XR /STORE THE CHARACTER IN THE LINE BUFFER 013242 2342 ISZ COLCT /ALWAYS BUMP THE COLUMN POINTER 013243 1010 TESTXR, TAD XR 013244 1366 TAD (-ABUF-226 013245 7710 SPA CLA /HAS THE BUFFER OVERFLOWED? 013246 5204 JMP ACHLP /NO - GET NEXT CHARACTER 013247 4765 JMS I (PIPERR 013250 0001 1 /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 21 013251 1764 TAB, TAD I (COPTSW 013252 7650 SNA CLA /DO WE WANT TO CONVERT? 013253 5264 JMP TABRBT /NO 013254 1363 TABLP, TAD (240 013255 3410 DCA I XR /OUTPUT A SPACE 013256 2342 ISZ COLCT 013257 1342 TAD COLCT 013260 0362 AND (7 013261 7640 SZA CLA /IS THE COLUMN COUNTER A MULTIPLE OF 8? 013262 5254 JMP TABLP /NOT YET 013263 5243 JMP TESTXR /YES - CHECK BUFFER OVERFLOW 013264 1021 TABRBT, TAD CHAR 013265 3410 DCA I XR 013266 7240 CLA CMA 013267 4761 JMS I (RUBOUT /TWO RUBOUTS FOLLOW A TAB 013270 5243 JMP TESTXR /CHECK FOR BUFFER OVERFLOW 013271 1764 VTAB, TAD I (COPTSW 013272 7640 SZA CLA /SHOULD WE CONVERT? 013273 5302 JMP VTLF /YES 013274 1021 TAD CHAR 013275 3410 DCA I XR 013276 1360 TAD (-4 013277 4761 JMS I (RUBOUT /FOUR RUBOUTS AFTER A VERTICAL TAB 013300 5757 JMP I (EOL 013301 1360 FFLF, TAD (-4 /NINE LINE FEED SIMULATE A FORM FEED 013302 1356 VTLF, TAD (-5 /FIVE LINE FEEDS SIMULATE A VERTICAL TAB 013303 3020 DCA TEMP 013304 1355 TAD (212 013305 3410 DCA I XR 013306 2020 ISZ TEMP 013307 5304 JMP .-3 013310 5757 JMP I (EOL /FORM FEED AND VERTICAL TAB ARE LINE ENDERS /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 22 013311 1764 FFEED, TAD I (COPTSW 013312 7640 SZA CLA /SHOULD WE CONVERT? 013313 5301 JMP FFLF /YES 013314 1021 TAD CHAR 013315 3410 DCA I XR 013316 1354 TAD (-11 /NINE RUBOUTS AFTER A FORM FEED 013317 4761 JMS I (RUBOUT 013320 5757 JMP I (EOL 013321 1753 CARRET, TAD I (MPARAM 013322 7006 RTL 013323 7700 SMA CLA /"C" SWITCH MEANS DELETE TRAILING BLANKS FROM CARDS 013324 5337 JMP NOTOPT /IT WASN'T ON 013325 1010 TOPT, TAD XR 013326 3020 DCA TEMP 013327 1420 TAD I TEMP 013330 1352 TAD (-240 013331 7640 SZA CLA /WAS THE LAST CHAR ON THE LINE A SPACE? 013332 5337 JMP NOTOPT /NO 013333 7240 CLA CMA 013334 1010 TAD XR /YES - BACK UP THE LINE POINTER 013335 3010 DCA XR 013336 5325 JMP TOPT 013337 1021 NOTOPT, TAD CHAR 013340 3410 DCA I XR /STORE THE CARRIAGE RETURN IN THE BUFFER 013341 5243 JMP TESTXR /CARRIAGE RETURN IS NOT A LINE TERMINATOR 013342 0000 COLCT, 0 013343 0000 OUTOPN, 0 013344 4751 JMS I (OOPEN 013345 7700 SMA CLA 013346 5743 JMP I OUTOPN 013347 4765 JMS I (PIPERR 013350 0005 ASCI5, 5 013351 2200 013352 7540 013353 7643 013354 7767 013355 0212 013356 7773 013357 3004 013360 7774 013361 3115 013362 0007 013363 0240 013364 3133 013365 3521 013366 0751 013367 7562 013370 0232 013371 6536 013372 0145 013373 7601 /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 22-1 013374 0177 013375 3107 013376 2014 013377 6577 3400 PAGE /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 23 /SUBROUTINES CALLED BY THE REST OF PIP 013400 0770 K770, 770 /** DON'T MOVE THIS CONSTANT 013401 0000 DELETE, 0 013402 1322 TAD P7600 013403 3223 DCA DPFILE 013404 7346 CLA CLL CMA RTL 013405 3021 DCA CHAR /MAXIMUM OF THREE OUTPUT FILES 013406 1377 DELOOP, TAD (7201 013407 3215 DCA DLHNDL 013410 1623 TAD I DPFILE 013411 7450 SNA /DOES THIS FILE EXIST? 013412 5601 JMP I DELETE /THAT'S ALL 013413 4735 JMS I C200 013414 0001 1 /ASSIGN HANDLER FOR THE DELETION 013415 0000 DLHNDL, 0 013416 7402 HLT 013417 1623 TAD I DPFILE /RELOAD DEVICE NUMBER FOR DELETE 013420 2223 ISZ DPFILE /BUMP DPFILE TO POINT TO THE FILE NAME 013421 4735 JMS I C200 /DEVICE NUMBER IN AC 013422 0004 DP4, 4 /CLOSE - USED AS DELETE IN THIS CASE 013423 0000 DPFILE, 0 /POINTER TO FILE NAME 013424 0000 0 /ZERO LENGTH FOR DELETE 013425 4776 JMS I (PIPERR /FILE WASN'T THERE TO BE DELETED 013426 0003 3 013427 1223 TAD DPFILE 013430 1222 TAD DP4 013431 3223 DCA DPFILE 013432 2021 ISZ CHAR 013433 5206 JMP DELOOP /DELETE AS MANY FILES AS HE LISTED(UP TO 3) 013434 5601 JMP I DELETE /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 24 013435 0000 DZERO, 0 /SUBROUTINE TO ZERO THE DIRECTORY OF THE /FIRST OUTPUT DEVICE 013436 4775 JMS I (OTYPE 013437 7106 CLL RTL 013440 7430 SZL /IS DEVICE READ-ONLY? 013441 5314 JMP OZERR /YES - ERROR 013442 7012 RTR 013443 7500 SMA /FILE STRUCTURED HAVE 4000 BIT ON 013444 5317 JMP NONDIR /NON DIRECTORY DEVICE 013445 0200 AND K770 /MASK OUT DEVICE TYPE 013446 7112 CLL RTR 013447 7010 RAR 013450 1374 TAD (DEVLEN /USE IT TO INDEX A TABLE OF DEVICE LENGTHS 013451 3321 DCA PIPERR 013452 1377 TAD (OUDEVH+1 013453 3257 DCA OZHNDL 013454 1722 TAD I P7600 013455 4735 JMS I C200 013456 0001 1 /ASSIGN DEVICE, FETCH HANDLER 013457 0000 OZHNDL, 0 013460 7402 HLT 013461 1721 TAD I PIPERR 013462 7450 SNA /IS THE LENGTH ZERO? 013463 4773 JMS I (DVREDE /IF LENGTH ZERO GO "READ LENGTH" 013464 3321 DCA PIPERR /STORE LENGTH 013465 4772 JMS I (CONFRM /ASK IF HE'S SURE 013466 5534 SURE /V3 013467 1771 TAD I (MPARAM+2 /IF /Y ON, DO SYSTEM ZERO 013470 7710 SPA CLA 013471 5275 JMP ZRO70 013472 1257 TAD OZHNDL /BUT IF NOT, CHECK FOR SYSTEM ZERO 013473 1370 TAD (-7607 013474 7650 SNA CLA 013475 1367 ZRO70, TAD (61 013476 1366 TAD (7 /NOT SYSTEM FILES BEGIN AT 7 013477 3765 DCA I (DFORG 013500 3764 DCA I (SQFLAG /AND CLEAR OUT SQUISHES 013501 1321 TAD PIPERR 013502 1765 TAD I (DFORG 013503 3763 DCA I (DLENGT 013504 4762 JMS I (GETEQ 013505 3761 DCA I (DWASTE /DEFINE # OF WASTE WORDS 013506 3760 DCA I (MPARAM+3 /KILL = OPTION FOR FUTURE /I TRANSFERS 013507 6202 CIF 0 013510 4657 JMS I OZHNDL 013511 5410 5410 /V3 OUTPUT 6 BLOCKS FROM FIELD 1 013512 6200 DIRECT 013513 0001 1 /ALL DIRECTORIES ARE IN RECORD 1 013514 4776 OZERR, JMS I (PIPERR /ERROR WHILE ZEROING DIRECTORY 013515 0002 2 013516 3007 DCA OLDDIR /ZERO DIRECTORY POINTER TO FORCE A NEW READ 013517 7200 NONDIR, CLA /NON DIRECTORY RETURN /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 24-1 013520 5635 JMP I DZERO /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 25 013521 0000 PIPERR, 0 013522 7600 P7600, 7600 /V3 CLA 013523 4757 JMS I (SRSTOR /RESET 07600! 013524 6211 CDF 10 /JUST IN CASE 013525 1721 TAD I PIPERR /GET ARG 013526 1356 TAD (ERRTBL 013527 3020 DCA TEMP 013530 1420 TAD I TEMP 013531 4755 JMS I (ERPRNT 013532 5754 JMP I (PIP /RESTART PIP 013533 0000 LEADER, 0 013534 4775 JMS I (OTYPE 013535 0200 C200, AND K770 /GET THE TYPE OF THE OUTPUT DEVICE 013536 1353 TAD (-PTP /IS IT A PAPER TAPE PUNCH? 013537 7640 SZA CLA 013540 5733 JMP I LEADER /NO 013541 1322 TAD P7600 013542 3020 DCA TEMP 013543 4752 JMS I (OCHAR /PUT OUT SOME LEADER 013544 5751 JMP I (AOUERR 013545 2020 ISZ TEMP 013546 5343 JMP .-3 013547 5733 JMP I LEADER 013551 6531 013552 2410 013553 7760 013554 3023 013555 4600 013556 4737 013557 5664 013560 7646 013561 6204 013562 6332 013563 6206 013564 0026 013565 6201 013566 0007 013567 0061 013570 0171 013571 7645 013572 3730 013573 6341 013574 3600 013575 2473 013576 3521 013577 7201 3600 PAGE /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 26 /TABLE OF DEVICE LENGTHS FOR /Z OPTION /I.E. THE ONE THAT IS IN 'PIP' AT 13600 /LAST UPDATE 1-JAN-1980 013600 0000 DEVLEN, 0000 /0: TTY 013601 0000 0000 /1: PTR 013602 0000 0000 /2: PTP 013603 0000 0000 /3: CDR 013604 0000 0000 /4: LPT 013605 1520 1520 /5: RK08 (1520= - DECIMAL 3248) 013606 6001 6001 /6: RF08 IN VARIOUS SIZES 013607 4001 4001 /7: " 013610 2001 2001 /10: " 013611 0001 0001 /11: "(CHEATS A BLOCK ON LARGEST TO KEEP IT NON-ZERO) 013612 7601 7601 /12: DF32 IN VARIOUS SIZES 013613 7401 7401 /13: " 013614 7201 7201 /14: " 013615 7001 7001 /15: "(CHEATS A BLOCK TO AVOID HARDWARE TROUBLE) 013616 6437 6437 /16: TC08 DECTAPE 013617 6437 6437 /17: LINCTAPE 013620 0000 0000 /20: MAGTAPE 013621 6437 6437 /21: TD8E 013622 0000 0000 /22: BAT: BATCH HANDLER 013623 1520 1520 /23: 1/2 OF AN RK8E 013624 0000 0000 /24: NULL: NULL HANDLER 013625 7022 7022 /25: RX01 FLOPPY DISK 013626 0017 0017 /26: RL01 A,B BIG 013627 0000 0000 /27: TA8E CASSETTE 013630 0000 0000 /30: PDP-12 SCOPE AND TEK DISPLAY 013631 4027 4027 /31: RL01 C SMALL 013632 0000 0000 /32: NEW RX MUST BE ZERO TO EXAMINE MEDIA 013633 7600 7600 /33: VX EXT.MEM. PLATTER #1 013634 7400 7400 /34: VX EXT.MEM. PLATTER #1,2 013635 7200 7200 /35: VX EXT.MEM. PLATTER #1,2,3 013636 0000 0000 /36: DUMP 013637 7000 7000 /37: TU58 DECTAPE II (6-BIT BYTES) 013640 1520 1520 /40: SYS. IND. MOD43 DISK 013641 6556 6556 /41: RB01 1.5 DENSITY FLOPPY - INTERLEAVE 2 013642 6556 6556 /42: RB07 1.5 DENSITY FLOPPY - INTERLEAVE 4 013643 0000 0000 /43: EDOU 013644 0000 0000 /44: EDIN 013645 0000 ZBLOCK 3 /USER DEVICES 013650 0000 0 /50: MULTI8 VIRTUAL DEV 013651 0000 0 /51: " 013652 0000 0 /52: " 013653 0000 0 /53: " 013654 0000 0 /54: " 013655 0000 0 /55: " 013656 0000 0 /56: " 013657 0000 0 /57: " 013660 0000 0000 /60: ASYNCHRONOUS COMMUNICATION 013661 0000 ZBLOCK 17 /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 27 013700 0000 FIXLEN, 0 /ROUTINE TO ESTIMATE OUTPUT FILE LENGTH 013701 1777 TAD I (7600 013702 0376 AND (7760 013703 7640 SZA CLA /DID THE USER PROVIDE AN ESTIMATE? 013704 5700 JMP I FIXLEN /YES - USE IT 013705 3021 DCA CHAR 013706 1375 TAD (7617 013707 3020 DCA TEMP 013710 1420 FIXLP, TAD I TEMP /GET NEXT INPUT FILE 013711 7450 SNA 013712 5324 JMP FIXOVR /NO MORE INPUT FILES 013713 0376 AND (7760 013714 7141 CIA CLL /GET LENGTH AS A POSITIVE NUMBER /(LENGTH OF ZERO TURNS LINK ON) 013715 1021 TAD CHAR 013716 3021 DCA CHAR /UPDATE CUMULATIVE LENGTH 013717 7630 SZL CLA /DID CUMULATIVE LENGTH OVERFLOW 256 BLOCKS? 013720 5700 JMP I FIXLEN /YES - CAN'T ESTIMATE IT 013721 2020 ISZ TEMP 013722 2020 ISZ TEMP 013723 5310 JMP FIXLP 013724 1021 FIXOVR, TAD CHAR 013725 1777 TAD I (7600 013726 3777 DCA I (7600 /STICK LENGTH IN OUTPUT FILE DESCRIPTOR 013727 5700 JMP I FIXLEN /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 28 013730 0000 CONFRM, 0 013731 1774 TAD I (MPARAM+1 013732 7006 RTL /'O' BIT TO SIGN 013733 7710 SPA CLA 013734 5354 JMP GOTCON /V3 'O' MEANS OK, ASSUME 'YES' 013735 1730 TAD I CONFRM /V3 013736 4773 JMS I (ERPRNT 013737 6031 KSF 013740 5337 JMP .-1 013741 4772 JMS I (CTCTST 013742 6036 KRB /LOOK AT HIS REPLY 013743 3300 DCA FIXLEN 013744 1300 TAD FIXLEN 013745 4771 JMS I (TTYOUT /ECHO IT 013746 1300 TAD FIXLEN 013747 0370 AND (137 /ALLOW LOWER CASE 013750 1367 TAD (-"Y!7600 013751 7440 SZA /IS IT YES? 013752 1366 TAD ("Y-"J 013753 7650 SNA CLA /ODER IST ES JA? 013754 2026 GOTCON, ISZ SQFLAG /YES: SET SQFLAG TO 1 (NEEDED 1 LATER) 013755 1026 TAD SQFLAG 013756 7650 SNA CLA 013757 5765 JMP I (PIP 013760 2330 ISZ CONFRM 013761 5730 JMP I CONFRM 013765 3023 013766 0017 013767 7647 013770 0137 013771 5000 013772 2507 013773 4600 013774 7644 013775 7617 013776 7760 013777 7600 4000 PAGE /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 29 /DIRECTORY PRINTER FOR PIP 014000 4777 DIRPRE, JMS I (OUTOPN /OPEN THE OUTPUT FILE 014001 1376 TAD (ABUF 014002 3021 DCA CHAR /ABUF WILL BE A TEMPORARY ARRAY OF STARTING FILES 014003 1375 TAD (7617 014004 3020 DCA TEMP 014005 1775 TAD I (7617 014006 7450 SNA 014007 4774 JMS I (DSKNUM 014010 3775 DCA I (7617 /DEFAULT DIRECTORY IS DSK: 014011 1420 DFUJLP, TAD I TEMP 014012 7450 SNA /ARE WE THROUGH WITH THE INPUT DEVICES? 014013 5240 JMP GETDIR /YES 014014 0373 AND (17 014015 3420 DCA I TEMP /ONLY THE DEVICE NUMBER IS IMPORTANT 014016 1420 TAD I TEMP 014017 1372 TAD (DCB-1 014020 3250 DCA PRWD 014021 7326 CLA CLL CML RTL 014022 1020 TAD TEMP 014023 3022 DCA INFPTR /THIS SERVES NO FUNCTION EXCEPT IMPROVING ERROR MESSAGES 014024 1650 TAD I PRWD 014025 7700 SMA CLA /IS THE DEVICE A DIRECTORY DEVICE? 014026 4771 JMS I (PIPERR /NO 014027 0006 6 014030 2020 ISZ TEMP 014031 1420 TAD I TEMP 014032 3421 DCA I CHAR /SAVE THE STARTING BLOCK NUMBER 014033 7201 CLA IAC 014034 3420 DCA I TEMP /READ FROM THE DIRECTORY 014035 2020 ISZ TEMP 014036 2021 ISZ CHAR 014037 5211 JMP DFUJLP 014040 1376 GETDIR, TAD (ABUF 014041 3021 DCA CHAR 014042 4342 JMS PCRLF 014043 1770 TAD I (MDATE 014044 4767 JMS I (PDATE 014045 4342 JMS PCRLF 014046 4766 JMS I (IOPEN /RESET POINTERS - WERE GONNA FAKE OUT THOSE "GENERAL" /ROUTINES 014047 5765 JMP I (NXTDIR /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 30 014050 0000 PRWD, 0 /ROUTINE TO PRINT SIXBIT TEXT 014051 7450 SNA /IS COUNT ZERO? 014052 7040 CMA /MAKE IT ONE 014053 3267 DCA PRCT /STORE COUNT 014054 1650 PRWDLP, TAD I PRWD 014055 7012 PR212, RTR 014056 7012 RTR 014057 7012 RTR 014060 4270 JMS PR6BIT 014061 1650 TAD I PRWD 014062 4270 JMS PR6BIT 014063 2250 ISZ PRWD 014064 2267 ISZ PRCT 014065 5254 JMP PRWDLP 014066 5650 JMP I PRWD 014067 0000 PRCT, 0 014070 0000 PR6BIT, 0 014071 0364 AND (77 014072 7440 SZA 014073 1363 TAD (240 /V3 014074 0364 AND (77 /V3 014075 1363 TAD (240 /V3 014076 4762 JMS I (OCHAR 014077 5761 JMP I (AOUERR 014100 5670 JMP I PR6BIT /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 31 014101 0000 PRNUM, 0 /REDO THIS FOR BETTER RESULTS 014102 3342 DCA PCRLF /SAVE VALUE 014103 1701 TAD I PRNUM 014104 7041 CIA 014105 3250 DCA PRWD /SAVE BLANK COUNT (OPTIONAL) 014106 1360 TAD (TAD PWRTEN 014107 3312 DCA PRNMLP /INITIALIZE 014110 3270 DCA PR6BIT /CLEAR PRINT FLAG 014111 3356 DCA DIGIT /CLEAR QUOTIENT 014112 1352 PRNMLP, TAD PWRTEN /**INCREMENTED** 014113 7450 SNA 014114 5701 JMP I PRNUM /DONE 014115 7100 CLL 014116 1342 TAD PCRLF 014117 7420 SNL 014120 5324 JMP PRXX60 /TOO MUCH 014121 3342 DCA PCRLF 014122 2356 ISZ DIGIT /FORM QUOTIENT 014123 5312 JMP PRNMLP 014124 7360 PRXX60, STA STL /THIS INSTRUCTION ENDS IN '60' 014125 0356 AND DIGIT 014126 2312 ISZ PRNMLP /ADJUST DIVISOR 014127 2270 ISZ PR6BIT /TEST PRINT FLAG 014130 7440 SZA 014131 5334 JMP .+3 /PRINT THE RESULT 014132 2250 ISZ PRWD /TEST BLANK COUNT 014133 5340 JMP PRBLNK 014134 1324 TAD PRXX60 /CONVERT TO ASCII 014135 4270 JMS PR6BIT 014136 7040 CMA 014137 5310 JMP PRNMLP-2 /REPEAT 014140 4270 PRBLNK, JMS PR6BIT /CLEARED BY PDATE 014141 5310 JMP PRNMLP-2 /TO SUPPRESS BLANKS /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 32 014142 0000 PCRLF, 0 014143 1357 TAD (215 014144 4762 JMS I (OCHAR 014145 5761 JMP I (AOUERR 014146 1255 TAD PR212 014147 4762 JMS I (OCHAR 014150 5761 JMP I (AOUERR 014151 5742 JMP I PCRLF 014152 6030 PWRTEN, -1750;-144;-12;-1 /V3 014153 7634 014154 7766 014155 7777 014156 0000 DIGIT, 0 4270 JMSPR6=JMS PR6BIT /USEFUL LATER ON 014157 0215 014160 1352 014161 6531 014162 2410 014163 0240 014164 0077 014165 4200 014166 2001 014167 4650 014170 7666 014171 3521 014172 7757 014173 0017 014174 4705 014175 7617 014176 6601 014177 3343 4200 PAGE /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 33 /MAIN DIRECTORY PRINTING LOOP 014200 4777 NXTDIR, JMS I (ICHAR /FAKE, FAKE 014201 5776 JMP I (DEND 014202 7200 CLA /WE DON'T WANT THE CHARACTER 014203 3035 DCA ECOUNT 014204 1375 TAD (INBUF-1 /WE WANT THE BUFFER! 014205 3010 NEWSEG, DCA XR 014206 6201 CDF 0 014207 1410 TAD I XR 014210 3030 DCA DCOUNT /NUMBER OF ENTRIES 014211 1030 TAD DCOUNT 014212 7100 CLL 014213 1374 TAD (100 014214 7620 SNL CLA 014215 4773 JMS I (PIPERR 014216 0011 11 014217 1410 TAD I XR 014220 3025 DCA BLOKNO /FIRST BLOCK OF FILE STORAGE 014221 1410 TAD I XR 014222 3031 DCA DLINK /LINK TO NEXT SEGMENT 014223 2010 ISZ XR /BUMP XR PAST FLAG WORD 014224 1410 TAD I XR 014225 3032 DCA WASTE 014226 6201 NAMELP, CDF 0 014227 1410 TAD I XR 014230 7450 SNA /WHAT TYPE OF ENTRY IS IT? 014231 5325 JMP DEMPTY /A FREE FILE 014232 3264 DCA NAME1 /A PERMENANT OR TENTATIVE FILE 014233 1410 TAD I XR 014234 3265 DCA NAME2 014235 1410 TAD I XR 014236 3266 DCA NAME3 014237 1410 TAD I XR 014240 3275 DCA NAME4 014241 1410 TAD I XR 014242 3033 DCA DDATE 014243 1032 TAD WASTE /COMPENSATE FOR THE DATE INCREMENT 014244 7040 CMA /AND THE WASTE WORDS 014245 1010 TAD XR 014246 3010 DCA XR 014247 1410 TAD I XR 014250 7450 SNA /IS IT A TENTATIVE FILE? 014251 5312 JMP ADDLEN+1 /YES - TENTATIVE FILES ARE ALWAYS IGNORED 014252 7041 CIA 014253 3024 DCA FLENGT /NO - STORE THE LENGTH 014254 6211 CDF 10 014255 1421 TAD I CHAR /GET THE STARTING FILE FOR THIS LISTING 014256 7141 CIA CLL 014257 1025 TAD BLOKNO 014260 7620 SNL CLA /ARE WE THERE YET? 014261 5311 JMP ADDLEN /NO - KEEP GOING /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 33-1 014262 7346 CLA CLL CMA RTL 014263 4772 JMS I (PRWD /PRINT THREE WORDS 014264 0000 NAME1, 0 014265 0000 NAME2, 0 014266 0000 NAME3, 0 014267 1275 TAD NAME4 014270 7650 SNA CLA /IS THERE AN EXTENSION? 014271 1371 TAD (-16 /NO - PRINT A BLANK 014272 1370 TAD (56 /YES - PRINT A PERIOD 014273 4767 JMS I (PR6BIT 014274 4772 JMS I (PRWD 014275 0000 NAME4, 0 /ZERO PRINTS AS TWO MORE BLANKS 014276 1027 PRLNGT, TAD DTYPE 014277 0374 AND (100 014300 7640 SZA CLA /WAS THE LISTING SWITCH /F? 014301 5310 JMP PRTCRL /YES - DON'T PRINT LENGTH 014302 1024 TAD FLENGT 014303 4766 JMS I (PRNUM 014304 1032 TAD WASTE 014305 7640 SZA CLA 014306 1033 TAD DDATE 014307 4765 JMS I (PDATE /PRINT THE CREATION DATE OF THE FILE 014310 4764 PRTCRL, JMS I (PCRLF 014311 1024 ADDLEN, TAD FLENGT 014312 1025 TAD BLOKNO 014313 3025 DCA BLOKNO /UPDATE BLOCK NUMBER 014314 2030 ISZ DCOUNT 014315 5226 JMP NAMELP /LOOP UNTIL ALL FILES ARE PROCESSED 014316 1031 TAD DLINK 014317 7650 SNA CLA /MULTI-SEGMENT DIRECTORY? 014320 5352 JMP ENDDIR /NO - FINISH UP 014321 1010 TAD XR 014322 0363 AND (7400 014323 1362 TAD (377 /BUMP XR TO NEXT BLOCK 014324 5205 JMP NEWSEG /PROCESS NEXT LINK /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 34 014325 1410 DEMPTY, TAD I XR 014326 7041 CIA 014327 3024 DCA FLENGT /STORE LENGTH OF FREE ENTRY 014330 6211 CDF 10 014331 1024 TAD FLENGT 014332 1035 TAD ECOUNT 014333 3035 DCA ECOUNT /BUMP COUNT OF FREE BLOCKS 014334 1027 TAD DTYPE 014335 0361 AND (200 014336 7650 SNA CLA /IS THE /E SWITCH ON? 014337 5311 JMP ADDLEN /NO - DON'T LIST FREE FILES 014340 1360 TAD (-4 014341 4772 JMS I (PRWD 014342 7405 IFNDEF GERMAN < TEXT /<EMPTY>/> 014343 1520 014344 2431 014345 7600 IFDEF GERMAN < TEXT /<FREI> /> 014346 4767 JMS I (PR6BIT 014347 1024 TAD FLENGT 014350 4766 JMS I (PRNUM 014351 5310 JMP PRTCRL 014352 2021 ENDDIR, ISZ CHAR /BUMP TEMP ARRAY TO NEXT ENTRY 014353 1035 TAD ECOUNT 014354 4757 JMS I (ENDFUJ 014355 5200 JMP NXTDIR 014357 2620 014360 7774 014361 0200 014362 0377 014363 7400 014364 4142 014365 4650 014366 4101 014367 4070 014370 0056 014371 7762 014372 4050 014373 3521 014374 0100 014375 2777 014376 3134 014377 2014 4400 PAGE /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 35 /BINARY MODE PROCESSOR FOR PIP 014400 0360 BIN360, 360 014401 4777 BINARY, JMS I (FIXLEN 014402 4776 JMS I (OUTOPN 014403 4775 JMS I (IOPEN 014404 4774 JMS I (LEADER /PUT OUT BLANK TAPE IF HS PUNCH OUTPUT 014405 4251 JMS LTCODE 014406 4773 NEWTAP, JMS I (ICHAR 014407 5317 JMP BEOF /END OF FILE ON INPUT 014410 7450 SNA 014411 5206 JMP NEWTAP /BLANK TAPE - KEEP GOING 014412 1307 TAD BN7600 014413 7640 SZA CLA 014414 5206 JMP NEWTAP 014415 4773 JMS I (ICHAR 014416 5317 JMP BEOF 014417 1307 TAD BN7600 014420 7450 SNA 014421 5215 JMP .-4 014422 1225 TAD BIN200 014423 3021 DCA CHAR 014424 1021 TAD CHAR 014425 0200 BIN200, AND BIN360 014426 1372 TAD (-240 /CHECK TYPE OF TAPE 014427 7450 SNA /IS IT RELOCATABLE? 014430 5266 JMP RELBIN /YES 014431 1371 TAD (-40 /IF A FIELD SETTING, IT'S ABSOLUTE 014432 0370 AND (7700 014433 7450 SNA 014434 5240 JMP ABSLUT 014435 1225 TAD BIN200 /CHECK FOR ORIGIN ALSO 014436 7640 SZA CLA 014437 5206 JMP NEWTAP /NOTHING..NEXT FRAME 014440 7240 ABSLUT, CLA CMA 014441 4251 JMS LTCODE 014442 4323 ABSBIN, JMS RCOPY1 /COPY THIS FRAME AND READ NEXT 014443 1307 TAD BN7600 014444 7640 BNM140, SZA CLA /IS IT TRAILER? 014445 5242 JMP ABSBIN /NO - KEEP GOING 014446 7240 BEOT, CLA CMA /END OF TAPE 014447 4251 JMS LTCODE /PUT OUT SHORT LEADER/TRAILER 014450 5206 JMP NEWTAP /GET NEXT TAPE /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 36 014451 0000 LTCODE, 0 /SUBROUTINE TO PUNCH 200 CODE 014452 7500 SMA /SHORT LEADER/TRAILER? 014453 4767 JMS I (OTYPE 014454 7710 SPA CLA /DIRECTORY DEVICE? 014455 1366 TAD (70 /YES 014456 1370 TAD (-100 014457 3020 DCA TEMP 014460 1225 LTLOOP, TAD BIN200 014461 4765 JMS I (OCHAR /OUTPUT 64 OR 8 FRAMES OF L/T CODE 014462 5764 JMP I (AOUERR 014463 2020 ISZ TEMP 014464 5260 JMP LTLOOP 014465 5651 JMP I LTCODE 014466 1363 RELBIN, TAD (SKP 014467 3762 DCA I (INCTZF /DISABLE CONTROL-Z CHECKING ON INPUT 014470 7240 CLA CMA 014471 4251 JMS LTCODE /PUT OUT SHORT LEADER/TRAILER 014472 1021 RELLP, TAD CHAR 014473 7012 RTR 014474 7012 RTR 014475 0361 AND (17 014476 1360 TAD (RELTBL 014477 3020 DCA TEMP 014500 1420 TAD I TEMP /GET DATA WORD FOR THIS FRAME 014501 7540 SMA SZA /POSITIVE MEANS SPECIAL OR ERROR 014502 5341 JMP RELERR 014503 7450 RELSNA, SNA 014504 5313 JMP RELEND /ZERO MEANS CHECKSUM FRAME 014505 3020 DCA TEMP /NEGATIVE MEANS COUNT OF NUMBER OF SLAVE FRAMES 014506 4323 JMS RCOPY1 014507 7600 BN7600, 7600 014510 2020 ISZ TEMP 014511 5306 JMP .-3 /COPY THIS FRAME AND ALL SLAVE FRAMES 014512 5272 JMP RELLP /GET NEXT CONTROL FRAME 014513 4323 RELEND, JMS RCOPY1 /COPY THE FIRST FRAME OF THE CHECKSUM 014514 4765 JMS I (OCHAR 014515 5764 JMP I (AOUERR /OUTPUT THE SECOND FRAME 014516 5246 JMP BEOT /END TAPE - START NEXT ONE 014517 4251 BEOF, JMS LTCODE 014520 4757 JMS I (OCLOSE 014521 5764 JMP I (AOUERR 014522 5756 JMP I (PIP /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 37 014523 0000 RCOPY1, 0 /ROUTINE TO ADVANCE "CHAR" TO NEXT INPUT CHARACTER 014524 1021 TAD CHAR 014525 4765 JMS I (OCHAR 014526 5764 JMP I (AOUERR 014527 4773 JMS I (ICHAR 014530 5334 JMP INEFER 014531 3021 DCA CHAR 014532 1021 TAD CHAR 014533 5723 JMP I RCOPY1 014534 7700 INEFER, SMA CLA /DETECT FATALITIES 014535 4755 JMS I (PIPERR 014536 0007 7 014537 4755 JMS I (PIPERR /A REAL BAD READ 014540 0004 4 014541 7110 RELERR, CLL RAR 014542 7640 SZA CLA /CODE OF 1 MEANS SPECIAL 014543 4755 JMS I (PIPERR /ILLEGAL RELOCATABLE INPUT 014544 0010 10 014545 4323 JMS RCOPY1 014546 7166 CLL CML CMA RTL /MULTIPLY NAME COUNT BY -6 (APPROXIMATELY) 014547 1021 TAD CHAR 014550 7124 CLL CML RAL /(ACTUALLY THIS PRODUCES -6X-1 WHICH IS WHAT WE WANT) 014551 5303 JMP RELSNA 014555 3521 014556 3023 014557 2310 014560 4717 014561 0017 014562 2127 014563 7410 014564 6531 014565 2410 014566 0070 014567 2473 014570 7700 014571 7740 014572 7540 014573 2014 014574 3533 014575 2001 014576 3343 014577 3700 4600 PAGE /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 38 014600 0000 ERPRNT, 0 /ERROR MESSAGE PRINTOUT ROUTINE 014601 3020 DCA TEMP 014602 1420 ERLP, TAD I TEMP 014603 7012 RTR 014604 7012 RTR 014605 7012 RTR 014606 4213 JMS ERPCH /PRINT HIGH-ORDER CHARACTER 014607 1420 TAD I TEMP 014610 4213 JMS ERPCH /PRINT LOW-ORDER CHARACTER 014611 2020 ISZ TEMP 014612 5202 JMP ERLP 014613 0000 ERPCH, 0 014614 0377 AND (77 014615 7450 SNA 014616 5243 JMP ERCRLF /0 CHARACTER TERMINATES 014617 4227 JMS CHPRNT 014620 5613 JMP I ERPCH 014621 1376 FILENR, TAD ("# 014622 4775 JMS I (TTYOUT 014623 1022 TAD INFPTR /GET PTR TO CURRENT INPUT FILE 014624 1374 TAD (321 /MAGIC NUMBER 014625 7110 CLL RAR 014626 5217 JMP FILENR-2 014627 0000 CHPRNT, 0 014630 1373 TAD (-37 /IS IT A _? 014631 7450 SNA 014632 5221 JMP FILENR /YES..PRINT FILE NUMBER 014633 7001 IAC 014634 7450 SNA /MAYBE ^? 014635 5772 JMP I (SQFILE /YEP..PRINT FILE NAME 014636 7510 SPA 014637 1371 TAD (100 014640 1370 TAD (236 014641 4775 JMS I (TTYOUT 014642 5627 JMP I CHPRNT 014643 1367 ERCRLF, TAD (215 014644 4775 JMS I (TTYOUT 014645 1366 TAD (212 014646 4775 JMS I (TTYOUT 014647 5600 JMP I ERPRNT /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 39 014650 0000 PDATE, 0 /V3D CHANGES 014651 7450 SNA 014652 5650 JMP I PDATE 014653 3020 DCA TEMP /SAVE DATE 014654 1765 TAD I (MDATE /CHECK SYSTEM DATE 014655 7650 SNA CLA /NEED IT TO INTERPRET OTHERS 014656 5650 JMP I PDATE 014657 3764 DCA I (PRBLNK /SUPPRESS LEADING BLANKS 014660 4763 JMS I (PRDAMO /PRINT THE MONTH, DAY 014661 1020 TAD TEMP 014662 0362 AND (7 /MASK THE YEAR 014663 3020 DCA TEMP 014664 1765 TAD I (MDATE /CURRENT DATE 014665 0362 AND (7 014666 7041 CIA 014667 1020 TAD TEMP /COMPARE YEARS 014670 7740 SMA SZA CLA 014671 1361 TAD (-10 /-10 014672 1360 TAD (106 /106 = 1970 014673 1020 TAD TEMP 014674 3020 DCA TEMP /SAVE THIS MUCH 014675 6201 CDF 0 014676 1757 TAD I (BIPCCL /GET EXTENSION BITS 014677 6211 CDF 10 014700 4756 JMS I (PRYEAR /PUT IT ALL TOGETHER 014701 1304 TAD JMSPR 014702 3764 DCA I (PRBLNK /RESTORE BLANKS 014703 5650 JMP I PDATE 014704 4270 JMSPR, JMSPR6 014705 0000 DSKNUM, 0 014706 3312 DCA DSKNAM+1 014707 4755 JMS I (200 014710 0012 12 014711 5723 DSKNAM, 5723 014712 0000 0 014713 0000 0 014714 7402 HLT 014715 1312 TAD DSKNAM+1 014716 5705 JMP I DSKNUM /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 40 014717 7776 RELTBL, -2;-2;2;-10;-2;-2;-2;2;0;2;-2;2;2;2;2;1 014720 7776 014721 0002 014722 7770 014723 7776 014724 7776 014725 7776 014726 0002 014727 0000 014730 0002 014731 7776 014732 0002 014733 0002 014734 0002 014735 0002 014736 0001 014737 5006 ERRTBL, ERR0 014740 5022 ERR1 014741 6251 ERR2 014742 5036 ERR3 014743 5050 ERR4 014744 5062 ERR5 014745 5076 ERR6 014746 5116 ERR7 014747 5135 ERR8 014750 5153 ERR9 014751 5170 ERR10 014752 6207 ERR11 014753 2542 IFNZRO OS78 <DIRMSG> 014755 0200 014756 7111 014757 7777 014760 0106 014761 7770 014762 0007 014763 7046 014764 4140 014765 7666 014766 0212 014767 0215 014770 0236 014771 0100 014772 6261 014773 7741 014774 0321 014775 5000 014776 0243 014777 0077 5000 PAGE /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 41 015000 0000 TTYOUT, 0 015001 6046 TLS 015002 6041 TSF 015003 5202 JMP .-1 015004 7200 CLA 015005 5600 JMP I TTYOUT /ERROR MESSAGE TEXT GOES HERE IFNDEF GERMAN < 015006 1617 ERR0, TEXT /NO ROOM FOR OUTPUT FILE/ 015007 4022 015010 1717 015011 1540 015012 0617 015013 2240 015014 1725 015015 2420 015016 2524 015017 4006 015020 1114 015021 0500 015022 1411 ERR1, TEXT /LINE TOO LONG IN FILE_/ 015023 1605 015024 4024 015025 1717 015026 4014 015027 1716 015030 0740 015031 1116 015032 4006 015033 1114 015034 0537 015035 0000 015036 0522 ERR3, TEXT /ERROR DELETING FILE/ 015037 2217 015040 2240 015041 0405 015042 1405 015043 2411 015044 1607 015045 4006 015046 1114 015047 0500 015050 1116 ERR4, TEXT /INPUT ERROR, FILE_/ 015051 2025 015052 2440 015053 0522 015054 2217 015055 2254 015056 4006 015057 1114 /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 41-1 015060 0537 015061 0000 015062 0301 ERR5, TEXT /CAN'T OPEN OUTPUT FILE/ 015063 1647 015064 2440 015065 1720 015066 0516 015067 4017 015070 2524 015071 2025 015072 2440 015073 0611 015074 1405 015075 0000 015076 0405 ERR6, TEXT /DEVICE_ NOT A DIRECTORY DEVICE/ 015077 2611 015100 0305 015101 3740 015102 1617 015103 2440 015104 0140 015105 0411 015106 2205 015107 0324 015110 1722 015111 3140 015112 0405 015113 2611 015114 0305 015115 0000 015116 2022 ERR7, TEXT /PREMATURE END OF FILE, FILE_/ 015117 0515 015120 0124 015121 2522 015122 0540 015123 0516 015124 0440 015125 1706 015126 4006 015127 1114 015130 0554 015131 4006 015132 1114 015133 0537 015134 0000 015135 1114 ERR8, TEXT /ILLEGAL BINARY INPUT, FILE_/ 015136 1405 015137 0701 015140 1440 015141 0211 015142 1601 015143 2231 015144 4011 015145 1620 015146 2524 /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 41-2 015147 5440 015150 0611 015151 1405 015152 3700 015153 0201 ERR9, TEXT /BAD DIRECTORY ON DEVICE_/ 015154 0440 015155 0411 015156 2205 015157 0324 015160 1722 015161 3140 015162 1716 015163 4004 015164 0526 015165 1103 015166 0537 015167 0000 015170 0411 ERR10, TEXT /DIRECTORY ERROR/ 015171 2205 015172 0324 015173 1722 015174 3140 015175 0522 015176 2217 015177 2200 > IFDEF GERMAN < ERR0, TEXT /DATEI HAT KEINEN PLATZ/ ERR1, TEXT /ZEILE ZU LANG IN DATEI_/ ERR3, TEXT /LOESCH-FEHLER/ ERR4, TEXT /LESEFEHLER, DATEI_/ ERR5, TEXT /KANN DATEI NICHT OEFFNEN/ ERR6, TEXT /GERAET_ OHNE VERZEICHNIS/ ERR7, TEXT /VERFRUEHTES ENDE, DATEI_/ ERR8, TEXT /KEIN BINAER FORMAT, DATEI_/ ERR9, TEXT /VERZEICHNIS KAPUTT, GERAET_/ ERR10, TEXT \VERZEICHNIS L/S-FEHLER\ > 5200 PAGE /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 42 /SQUISH PROCESSOR 015200 4777 SQUISH, JMS I (CONFRM 015201 5534 SURE /V3 015202 3776 SQUISX, DCA I (OUELEN /INITIALIZE PARAMS TO FAKE OUT "IMTRA" 015203 3775 DCA I (OUBLK 015204 3774 DCA I (7621 /ZERO SECOND FILE FOR "INNEWF" 015205 3773 DCA I (CTCFLG 015206 4772 JMS I (IOPEN 015207 4771 JMS I (INNEWF 015210 5770 JMP I (PIP /NO INPUT 015211 1367 TAD (OUDEVH+1 015212 3220 DCA SOHND 015213 1730 TAD I SQ7600 015214 7450 SNA 015215 5770 JMP I (PIP /NO OUTPUTEE, NO SQUISHEE 015216 4766 JMS I (200 015217 0001 1 015220 0000 SOHND, 0 015221 7402 HLT 015222 4277 JMS INTEST 015223 4765 JMS I (OTYPE 015224 7112 CLL RTR 015225 7010 RAR 015226 0364 AND (77 015227 1363 TAD (DEVLEN 015230 3020 DCA TEMP 015231 1220 TAD SOHND /SET UP OZHNDL 015232 3762 DCA I (OZHNDL /IN CASE OF JMP TO 'DVREDE' 015233 1420 TAD I TEMP /GET ENTRY FROM DEVICE LENGTH TABLE 015234 7450 SNA /IS THE DEVICE LENGTH ZERO? 015235 4761 JMS I (DVREDE /IF SO, READ LENGTH 015236 3031 DCA OUDLEN /SAVE OUTPUT DEVICE LENGTH 015237 4760 JMS I (GETEQ 015240 3027 DCA OUWAST 015241 1220 TAD SOHND 015242 3025 DCA OHNDLR 015243 1025 TAD OHNDLR 015244 3757 DCA I (OUHNDL 015245 1756 TAD I (INHNDL 015246 3024 DCA IHNDLR 015247 4311 JMS SETCTC 015250 4773 JMS I (CTCFLG 015251 6202 CIF 0 015252 4424 JMS I IHNDLR 015253 1400 1400 015254 0000 0 015255 0001 1 015256 5755 JMP I (SQIDER+1 015257 6202 CIF 0 015260 4754 JMS I (7607 015261 5400 5400 /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 42-1 015262 0000 0 015263 0027 MTEMP /MOVE THE INPUT DIRECTORY TO SYS: 015264 5755 JMP I (SQIDER+1 015265 7201 CLA IAC 015266 3753 DCA I (SQBUF2+2 015267 3773 DCA I (CTCFLG 015270 1220 TAD SOHND /SETUP DIRECTORY START 015271 4752 JMS I (SQDTST 015272 4751 JMS I (SETSAM /IF IHNDLR=OHNDLR, SAME=1 015273 7240 CLA CMA 015274 3750 DCA I (SQBUF2 015275 3747 DCA I (OUTSEG 015276 5746 JMP I (NEWOUT 015277 0000 INTEST, 0 /TEST IF INPUT IS DIRECTORY 015300 1745 TAD I (7617 015301 0344 AND (17 015302 1343 TAD (DCB-1 015303 3020 DCA TEMP 015304 1420 TAD I TEMP 015305 7700 SMA CLA 015306 4742 JMS I (PIPERR 015307 0006 6 015310 5677 JMP I INTEST 015311 0000 SETCTC, 0 /MODIFY 07600 TO RETURN TO SQCTLC 015312 1321 TAD CDIF10 015313 6201 CDF 0 015314 3730 DCA I SQ7600 015315 1341 TAD (5602 /JMP I .+1 015316 3740 DCA I (7601 015317 1337 TAD (SQCTLC 015320 3736 DCA I (7602 015321 6213 CDIF10, CIF CDF 10 015322 5711 JMP I SETCTC /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 43 015323 0000 OUK, 0 /V3 ON IMAGE MODE TRANSFER /CLOSE OUT FILE WITH = OPTION /IF NOT TOO SMALL 015324 1735 TAD I (OUCCNT 015325 7141 CLL CIA 015326 1734 TAD I (MPARAM+3 015327 7420 SNL /IS = OPTION LARGER? 015330 7600 SQ7600, 7600 /RETURN OUCCNT IF IT'S LARGER 015331 1735 TAD I (OUCCNT /RETURN LOW ORDER = OPTION IF IT'S LARGER 015332 5723 JMP I OUK 015334 7646 015335 2352 015336 7602 015337 5650 015340 7601 015341 5602 015342 3521 015343 7757 015344 0017 015345 7617 015346 5503 015347 5641 015350 7200 015351 5543 015352 6477 015353 7202 015354 7607 015355 5626 015356 2146 015357 2215 015360 6332 015361 6341 015362 3457 015363 3600 015364 0077 015365 2473 015366 0200 015367 7201 015370 3023 015371 2135 015372 2001 015373 5700 015374 7621 015375 2222 015376 2223 015377 3730 5400 PAGE /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 44 015400 1377 NEWIN, TAD (MTEMP-1 015401 3207 DCA INSEG 015402 4776 JMS I (CTCFLG 015403 6202 CIF 0 015404 4775 JMS I (7607 015405 0210 0210 015406 7200 S7200, SQBUF2 015407 0000 INSEG, 0 015410 5774 JMP I (SQIDER 015411 3776 DCA I (CTCFLG 015412 1773 TAD I (SQBUF2+1 015413 3033 DCA INBLK 015414 1372 TAD (SQBUF2+4 015415 3011 DCA INXR 015416 1411 SGETIN, TAD I INXR 015417 7450 SNA 015420 5331 JMP SEMPTY 015421 3410 DCA I OUTXR 015422 1010 TAD OUTXR 015423 3333 DCA OUSAVE 015424 4771 JMS I (CYWAST /COPY WASTE WORDS 015425 1411 TAD I INXR 015426 3034 DCA RECCNT 015427 1034 TAD RECCNT 015430 7450 SNA 015431 5325 JMP SNULL 015432 7140 CMA CLL /V3 015433 1030 TAD OUTBLK 015434 1031 TAD OUDLEN 015435 7630 SZL CLA 015436 5323 JMP SNULER 015437 1034 TAD RECCNT 015440 3410 DCA I OUTXR 015441 7240 CLA CMA 015442 1770 TAD I (SQBUF1 015443 3770 DCA I (SQBUF1 015444 1033 TAD INBLK 015445 7041 CIA 015446 1030 TAD OUTBLK 015447 7650 SNA CLA 015450 1032 TAD SAME 015451 7650 SNA CLA 015452 4767 MOVFIL, JMS I (SQTRA /MOVE THE FILE DOWN 015453 1034 TAD RECCNT 015454 7041 CIA 015455 1030 TAD OUTBLK 015456 3030 DCA OUTBLK 015457 1034 TAD RECCNT 015460 7041 DMTX, CIA 015461 1033 TAD INBLK 015462 3033 DCA INBLK 015463 1010 TAD OUTXR /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 44-1 015464 7041 CIA 015465 1027 TAD OUWAST 015466 1027 TAD OUWAST 015467 1366 TAD (SQBUF1+365 015470 7700 SMA CLA /DO WE HAVE ROOM FOR TWO MORE ENTRIES? 015471 5315 JMP NEXTIN /DIRECTORY SEGMENT OVERFLOW ON OUTPUT... 015472 2765 ISZ I (OUTSEG 015473 1765 TAD I (OUTSEG 015474 7001 IAC 015475 3764 DCA I (SQBUF1+2 /STORE LINK TO NEXT SEGMENT 015476 1764 TAD I (SQBUF1+2 015477 1363 TAD (-7 015500 7700 SMA CLA 015501 5762 JMP I (SQIDER-1 /TOO MANY SEGMENTS 015502 4761 JMS I (OUTDIR /OUTPUT THIS SEGMENT 015503 1360 NEWOUT, TAD (SQBUF1-1 015504 3010 DCA OUTXR /INITIALIZE XR FOR NEXT OUTPUT SEGMENT 015505 3757 DCA I (OUTINH /ZAP ANY OLD OUTPUT INHIBIT FLAG 015506 3410 DCA I OUTXR 015507 1030 TAD OUTBLK 015510 3410 DCA I OUTXR 015511 3410 DCA I OUTXR 015512 3410 DCA I OUTXR 015513 1027 TAD OUWAST 015514 3410 DCA I OUTXR 015515 2606 NEXTIN, ISZ I S7200 015516 5216 JMP SGETIN 015517 1756 TAD I (SQBUF2+2 015520 7450 SNA /ANY MORE INPUT SEGMENTS? 015521 5755 JMP I (SQOVER 015522 5200 JMP NEWIN 015523 1354 SNULER, TAD (NOROOM 015524 4753 JMS I (ERPRNT 015525 7240 SNULL, CLA CMA 015526 1333 TAD OUSAVE 015527 3010 DCA OUTXR 015530 5257 JMP DMTX-1 015531 1411 SEMPTY, TAD I INXR 015532 5260 JMP DMTX 015533 0000 OUSAVE, 0 /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 45 SURE, 015534 0122 IFNDEF GERMAN < TEXT /ARE YOU SURE?/> 015535 0540 015536 3117 015537 2540 015540 2325 015541 2205 015542 7700 IFDEF GERMAN < TEXT /GANZ SICHER? /> 015543 0000 SETSAM, 0 015544 1024 TAD IHNDLR 015545 7041 CIA 015546 1025 TAD OHNDLR 015547 7650 SNA CLA 015550 7001 IAC 015551 3032 DCA SAME 015552 5743 JMP I SETSAM 015553 4600 015554 5735 015555 5600 015556 7202 015557 2472 015560 1377 015561 5631 015562 5624 015563 7771 015564 1402 015565 5641 015566 1765 015567 2641 015570 1400 015571 6413 015572 7204 015573 7201 015574 5625 015575 7607 015576 5700 015577 0026 5600 PAGE /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 46 015600 3410 SQOVER, DCA I OUTXR 015601 1031 TAD OUDLEN 015602 1030 TAD OUTBLK 015603 7450 SNA 015604 5211 JMP CKZERO 015605 3410 DCA I OUTXR 015606 7240 CLA CMA 015607 1777 TAD I (SQBUF1 015610 3777 DCA I (SQBUF1 015611 1777 CKZERO, TAD I (SQBUF1 015612 7640 SZA CLA 015613 5220 JMP ZEROK 015614 7330 CLA CLL CML RAR 015615 4231 JMS OUTDIR /READ IN LAST DIRECTORY 015616 3776 DCA I (SQBUF1+2 /ZERO OUT LINK WORD 015617 7410 SKP 015620 2241 ZEROK, ISZ OUTSEG 015621 4231 JMS OUTDIR 015622 4264 ZEROKS, JMS SRSTOR 015623 5775 JMP I (PIP 015624 3776 DCA I (SQBUF1+2 015625 4231 SQIDER, JMS OUTDIR 015626 4264 JMS SRSTOR 015627 4774 JMS I (PIPERR 015630 0012 12 015631 0000 OUTDIR, 0 015632 1373 TAD (4210 015633 3237 DCA .+4 015634 4300 JMS CTCFLG 015635 6202 CIF 0 015636 4425 JMS I OHNDLR 015637 0000 0 015640 1400 SQBUF1 015641 0000 OUTSEG, 0 015642 5226 JMP SQIDER+1 015643 3300 DCA CTCFLG 015644 5631 JMP I OUTDIR 015645 1372 SQIOER, TAD (IOMSG 015646 4771 JMS I (ERPRNT 015647 5770 JMP I (SLGRET /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 47 015650 6032 SQCTLC, KCC /JUMPED TO BY CODE AT 07600 015651 4767 JMS I (TSTSAM /TEST IF OPERATION IS TO ITSELF 015652 1366 TAD (CTCMSG 015653 4771 JMS I (ERPRNT 015654 1300 TAD CTCFLG 015655 7640 SZA CLA 015656 5700 JMP I CTCFLG 015657 1765 TAD I (MPARAM+1 /IS IT /S? 015660 0364 AND (40 015661 7650 SNA CLA 015662 5763 JMP I (SYSCPY /NO../Y 015663 5762 JMP I (MOVFIL 015664 0000 SRSTOR, 0 015665 4761 JMS I (7700 /MAKE SURE MONITOR IS IN CORE 015666 0010 10 015667 3265 DCA .-2 /AND WIPE THE CALL AWAY 015670 1360 TAD (4207 015671 6201 CDF 0 015672 3757 DCA I (7600 015673 1356 TAD (5000 015674 3755 DCA I (7601 015675 3754 DCA I (7602 015676 6211 CDF 10 015677 5664 JMP I SRSTOR 015700 0000 CTCFLG, 0 015701 5700 JMP I CTCFLG /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 48 IFNDEF GERMAN < 015702 2317 CTCMSG, TEXT \SORRY - NO INTERRUPTIONS\ 015703 2222 015704 3140 015705 5540 015706 1617 015707 4011 015710 1624 015711 0522 015712 2225 015713 2024 015714 1117 015715 1623 015716 0000 015717 1155 IOMSG, TEXT \I-O ERROR IN ^ - CONTINUING\ 015720 1740 015721 0522 015722 2217 015723 2240 015724 1116 015725 4036 015726 4055 015727 4003 015730 1716 015731 2411 015732 1625 015733 1116 015734 0700 015735 1617 NOROOM, TEXT \NO ROOM FOR ^ - CONTINUING\ 015736 4022 015737 1717 015740 1540 015741 0617 015742 2240 015743 3640 015744 5540 015745 0317 015746 1624 015747 1116 015750 2511 015751 1607 015752 0000 > IFDEF GERMAN < CTCMSG, TEXT \KEINE UNTERBRECHUNGEN!\ IOMSG, TEXT \L/S-FEHLER BEI ^ - KEIN HALT\ NOROOM, TEXT \KEIN PLATZ FUER ^ - KEIN HALT\ > 015754 7602 015755 7601 015756 5000 015757 7600 /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 48-1 015760 4207 015761 7700 015762 5452 015763 6004 015764 0040 015765 7644 015766 5702 015767 6244 015770 2532 015771 4600 015772 5717 015773 4210 015774 3521 015775 3023 015776 1402 015777 1400 6000 PAGE /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 49 016000 7760 K7760, 7760 016001 1222 SYSCOP, TAD K7622 /SET INFPTR IN CASE OF /Y ERROR 016002 3022 DCA INFPTR /WILL FILE #1 016003 4777 JMS I (SETCTC /KLUDGE UP 07600 016004 1376 SYSCPY, TAD (INDEVH+1 016005 3221 DCA YIHAND /SET TO ASSIGN INPUT HANDLER IFNZRO OUDEVH-7200 <ERR,___>/ TAD (OUDEVH+1 016006 1210 TAD .+2 016007 3263 DCA YOHAND 016010 7201 CLA IAC /BOOTSTRAP OFFSET 016011 3342 DCA OFSET 016012 1745 TAD I K7617 016013 7650 SNA CLA /IS THERE AN INPUT DEVICE? 016014 2745 ISZ I K7617 /MAKE INPUT =SYS 016015 4775 JMS I (INTEST /SEE IF OPERATIONS ARE TO SAME DEVICE 016016 1745 TAD I K7617 016017 4624 JMS I K200 /ASSIGN HANDLER 016020 0001 1 016021 0000 YIHAND, 0 016022 7622 K7622, 7622 /THINLY DISGUISED HALT 016023 1745 TAD I K7617 016024 0200 K200, AND K7760 /CHECK INPUT FILE LENGTH 016025 7450 SNA /IF BLANK,INPUT SYSTEM HEAD 016026 5334 JMP YSOUT 016027 1374 TAD (-6340 /CHECK FOR PROPER LENGTH 016030 7640 SZA CLA 016031 5343 JMP PER13 /ERROR..NOT SYSTEM HEAD 016032 1773 TAD I (7601 /IS THERE OUTPUT DEVICE? 016033 7640 SZA CLA /IF YES..WE CAN DO IMAGE XFER 016034 5330 JMP IMGOUT 016035 1772 TAD I (7620 016036 3243 YOUSYS, DCA YINREC /PICK UP STARTING RECORD 016037 6202 CIF 0 016040 4621 JMS I YIHAND /READ IN FIRST INPUT RECORDS 016041 2000 2000 /(0-15 IF SYSTEM HEAD,0-7 IF FILE) 016042 0000 OUBUF 016043 0000 YINREC, 0 016044 5771 JMP I (PER4 /INPUT ERROR 016045 1772 TAD I (7620 /IF INPUT FROM A FILE, 016046 7650 SNA CLA /TEST LOC 605 016047 1370 TAD (3000 /IF FROM HEAD, TEST 3605 016050 1367 TAD (605 016051 3766 DCA I (HDTST 016052 4765 JMS I (TSTHED /TEST FOR VALID SYSTEM HEAD 016053 1243 TAD YINREC 016054 1342 TAD OFSET /BUMP TO NEXT RECORD 016055 3314 DCA NXTRD 016056 1764 TAD I (7600 /IF NO OUTPUT, FORGET IT 016057 7450 SNA 016060 5326 JMP PIPCLR /RESET AND GO TO PIP 016061 4624 JMS I K200 016062 0001 1 /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 49-1 016063 0000 YOHAND, 0 016064 7402 HLT /V3 016065 4763 JMS I (FAKE 016066 4762 JMS I (SETSAM /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 50 016067 4761 JMS I (TSTIO /TEST OUTPUT. SEE IF DIRECT. DEV. 016070 6202 CIF 0 016071 4663 JMS I YOHAND /READ OUTPUT DIRECTORY INTO PLACE 016072 1400 1400 016073 0400 400 016074 0001 1 016075 5771 JMP I (PER4 016076 6201 CDF 0 016077 1760 TAD I (401 /NOW TEST FOR VALID OUTPUT DEVICE 016100 6211 CDF 10 016101 1357 TAD (-10 /IF LESS THAN 10, DON'T XFER 016102 7710 SPA CLA 016103 4756 JMS I (PIPERR 016104 0011 11 016105 1357 TAD (-10 /8*7=56 BLKS - DIR= 50 BLKS 016106 3243 DCA YINREC /XFER COUNTER 016107 5321 JMP YDUMP 016110 6202 YLOOP, CIF 0 016111 4621 JMS I YIHAND /READ NEXT 016112 1600 1600 /READ 7 BLKS 016113 0000 OUBUF 016114 0000 NXTRD, 0 016115 5771 JMP I (PER4 016116 1314 TAD NXTRD 016117 1355 TAD (7 016120 3314 DCA NXTRD 016121 1354 YDUMP, TAD (5600 016122 4753 JMS I (OUTDMP /WRITE BUFFER 016123 5752 JMP I (AOUERR 016124 2243 ISZ YINREC /DONE YET? 016125 5310 JMP YLOOP /NOT YET..LOOP 016126 4751 PIPCLR, JMS I (SRSTOR /CLEAR OUT 07600 016127 5750 JMP I (PIP 016130 3032 IMGOUT, DCA SAME 016131 1221 TAD YIHAND 016132 3024 DCA IHNDLR 016133 5747 JMP I (IMAGE /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 51 016134 1773 YSOUT, TAD I (7601 /HERE IF INPUT FROM SYSTEM HEAD 016135 7640 SZA CLA /IS THERE AN OUTPUT FILE? 016136 5746 JMP I (YTSOUT /YES, SET UP FOR IMAGE MODE 016137 1355 YNOOUT, TAD (7 /RESTART READ AT RECORD 7 016140 3342 DCA OFSET 016141 5236 JMP YOUSYS 016142 0000 OFSET, 0 016143 4756 PER13, JMS I (PIPERR 016144 0013 13 016145 7617 K7617, 7617 /V3 016146 6220 016147 2601 016150 3023 016151 5664 016152 6531 016153 2247 016154 5600 016155 0007 016156 3521 016157 7770 016160 0401 016161 6454 016162 5543 016163 6400 016164 7600 016165 6443 016166 6453 016167 0605 016170 3000 016171 3110 016172 7620 016173 7601 016174 1440 016175 5277 016176 6601 016177 5311 6200 PAGE /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 52 016200 7777 DIRECT, -1 016201 0000 DFORG, 0 /FILE STORAGE 016202 0000 0 016203 0000 0 016204 0000 DWASTE, 0 /#WASTE WORDS 016205 0000 0 016206 0000 DLENGT, 0 ERR11, 016207 0201 IFNDEF GERMAN < TEXT \BAD SYSTEM HEAD \> 016210 0440 016211 2331 016212 2324 016213 0515 016214 4010 016215 0501 016216 0440 016217 0000 IFDEF GERMAN < TEXT \KEIN SYSTEM-KOPF\> 016220 1777 YTSOUT, TAD I (7617 /O.K. SETUP CD AREA FOR IMAGE XFER 016221 1376 TAD (7760 /FROM SYSTEM AREA OF INPUT DEVICE 016222 3777 DCA I (7617 /1 BLK 016223 1777 TAD I (7617 016224 0375 AND (17 /7620=0: BLK 0 016225 1374 TAD (6360 016226 3773 DCA I (7621 /61 BLKS 016227 1240 TAD K7 016230 3772 DCA I (7622 /FROM BLK 7 016231 3032 DCA SAME /ALLOW ^C IF TO OUTPUT FILE 016232 1771 TAD I (YIHAND /TEST FOT VALID SYSTEM 016233 3024 DCA IHNDLR 016234 6202 CIF 0 016235 4424 JMS I IHNDLR 016236 0200 0200 016237 3400 3400 016240 0007 K7, 7 016241 5770 JMP I (PER4 016242 4767 JMS I (TSTHED 016243 5766 JMP I (IMAGE /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 53 016244 0000 TSTSAM, 0 016245 1032 TAD SAME /IF /Y IS TO SAME DEVICE AS INPUT (SYS) 016246 7650 SNA CLA /^C GIVES MESSAGE AND RETRIES OPERATION 016247 5765 JMP I (ZEROKS 016250 5644 JMP I TSTSAM ERR2, 016251 1725 IFNDEF GERMAN < TEXT \OUTPUT ERROR \> 016252 2420 016253 2524 016254 4005 016255 2222 016256 1722 016257 4040 016260 0000 IFDEF GERMAN < TEXT \SCHREIB-FEHLER\> 016261 3323 SQFILE, DCA MWAST 016262 1764 TAD I (OUSAVE 016263 3244 DCA TSTSAM /IF ERROR DURING /S 016264 3204 DCA DWASTE 016265 7346 CLA CLL CMA RTL 016266 3322 DCA MOVCNT /-3 FOR FILE NAME 016267 1644 SQFIL3, TAD I TSTSAM /FIRST 2 CHARS. IN NAME 016270 7112 CLL RTR 016271 7012 RTR 016272 7012 RTR 016273 0363 SQFIL5, AND (77 016274 7440 SZA /IF ZERO, DON'T BOTHER 016275 4762 JMS I (CHPRNT 016276 2204 ISZ DWASTE /RIGHT HALF OR NEW WORD? 016277 5316 JMP SQFIL4 /RIGHT HALF 016300 2244 ISZ TSTSAM 016301 2322 ISZ MOVCNT /EXHAUSTED ALL? 016302 5267 JMP SQFIL3 /NOPE 016303 1323 TAD MWAST /DONE WITH IT YET? 016304 7640 SZA CLA 016305 5761 JMP I (FILENR-1 /YES 016306 1644 TAD I TSTSAM /IS THERE AN EXTENSION? 016307 7650 SNA CLA 016310 5761 JMP I (FILENR-1 /NO..CONTINUE ORIGINAL MSG 016311 1360 TAD (256 016312 4757 JMS I (TTYOUT 016313 2323 ISZ MWAST /SIGNAL END 016314 7240 CLA CMA 016315 5266 JMP SQFIL3-1 016316 7240 SQFIL4, CLA CMA 016317 3204 DCA DWASTE 016320 1644 TAD I TSTSAM /GET RIGHT HALF 016321 5273 JMP SQFIL5 /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 54 016322 0000 MOVCNT, 0 016323 0000 MWAST, 0 016324 3020 DCA TEMP 016325 1411 TAD I INXR 016326 3410 DCA I OUTXR /ROUTINE TO COPY WASTE WORDS 016327 2020 ISZ TEMP 016330 5325 JMP .-3 016331 5723 JMP I MWAST 016332 0000 GETEQ, 0 /V3 016333 1756 TAD I (MPARAM+3 016334 7450 SNA 016335 7001 IAC 016336 0363 AND (77 /CONVERT 0 TO 1 AND 100 TO 0 016337 7041 CIA 016340 5732 JMP I GETEQ 016341 0000 DVREDE, 0 /READ DEVICE FROM BAD BLOCK 016342 1755 TAD I (OZHNDL /GET DEVICE ENTRY POINT 016343 3332 DCA GETEQ 016344 6202 CIF 0 016345 4732 JMS I GETEQ 016346 0011 0011 016347 0000 0000 016350 7667 -111 /NEGATIVE BLOCK - RETURNS MINUS LENGTH 016351 6212 CIF 10 016352 5741 JMP I DVREDE /ERROR RETURN FOR READ YIELDS RESULT 016355 3457 016356 7646 016357 5000 016360 0256 016361 4620 016362 4627 016363 0077 016364 5533 016365 5622 016366 2601 016367 6443 016370 3110 016371 6021 016372 7622 016373 7621 016374 6360 016375 0017 016376 7760 016377 7617 6400 PAGE /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 55 016400 0000 FAKE, 0 016401 1777 TAD I (YIHAND 016402 3024 DCA IHNDLR 016403 1776 TAD I (YOHAND 016404 3025 DCA OHNDLR 016405 3775 DCA I (OUCCNT 016406 3774 DCA I (OUBLK 016407 3773 DCA I (OUELEN 016410 1776 TAD I (YOHAND 016411 3772 DCA I (OUHNDL 016412 5600 JMP I FAKE 016413 0000 CYWAST, 0 /ROUTINE TO COPY WASTE WORDS 016414 7346 CLA CLL CMA RTL /THREE MORE FOR FILE NAME 016415 4771 JMS I (MWAST /COPY THEM 016416 1770 TAD I (SQBUF2+4 /NOW ADJUST I/O WASTE WORDS 016417 7041 CIA 016420 1027 TAD OUWAST /DIFF. BETWEEN OUT AND IN WORDS 016421 7500 SMA /IF <0, MORE OUT THAN IN 016422 5233 JMP CGEWST /POS. MORE IN THAN OUT (OR SAME) 016423 3012 DCA TEMP1 016424 1770 TAD I (SQBUF2+4 016425 7440 SZA 016426 4771 JMS I (MWAST /COPY ALL INPUT WORDS 016427 3410 DCA I OUTXR /AND 0 ALL EXTRA OUTPUT WORDS 016430 2012 ISZ TEMP1 016431 5227 JMP .-2 016432 5613 JMP I CYWAST 016433 3012 CGEWST, DCA TEMP1 016434 1027 TAD OUWAST /XFER ONLY ENOUGH OUTPUT WDS. 016435 7440 SZA 016436 4771 JMS I (MWAST 016437 1011 TAD INXR 016440 1012 TAD TEMP1 /POINT INPUT TO NEXT FILE 016441 3011 DCA INXR 016442 5613 JMP I CYWAST 016443 0000 TSTHED, 0 /TESTS FOR KEYBOARD MONITOR 016444 6201 CDF 0 016445 1653 TAD I HDTST 016446 6211 CDF 10 016447 1367 TAD (-7200 016450 7640 SZA CLA 016451 5766 JMP I (PER13 /IF NOT CLA, NOT VALID 016452 5643 JMP I TSTHED 016453 3605 HDTST, 3605 /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 56 016454 0000 TSTIO, 0 /SEE IF OUTPUT IS DIRECTORY DEVICE 016455 4765 JMS I (OTYPE /GET DCB WORD FOR OUTPUT 016456 7700 SMA CLA /IF NOT NEG., NOT DIRECT DEVICE 016457 4764 JMS I (PIPERR 016460 0005 5 016461 1025 TAD OHNDLR /IF OUTPUT=SYS, SET NO INTERRUPT 016462 1363 TAD (171 016463 7650 SNA CLA 016464 2032 ISZ SAME 016465 5654 JMP I TSTIO 016466 0000 ASCI2, 0 /SEE IF VALID ASCII OUTPUT 016467 3254 DCA TSTIO 016470 1762 TAD I (7600 016471 7650 SNA CLA 016472 5761 JMP I (PIP /NO..BACK TO PIP 016473 1254 TAD TSTIO /SEE IF /C IS ON 016474 7650 SNA CLA 016475 4760 JMS I (FIXLEN /NO..TRY TO ESTIMATE OUTPUT 016476 5666 JMP I ASCI2 016477 0000 SQDTST, 0 /ROUTINE TO CHECK /S DIRECTORIES 016500 3200 DCA NOHND /PRESERVE POSSIBLE SYS ON OUTPUT 016501 1357 TAD (7 /DEFAULT TO BLOCK 7 016502 3030 DCA OUTBLK /INITIAL GUESS 016503 6211 CDF 10 /NOW TRY TO READ DIRECTORY OF OUTPUT 016504 4765 JMS I (OTYPE /IF NON-FILE, DON'T READ IT 016505 7700 SMA CLA 016506 5315 JMP P1A 016507 6202 CIF 0 /COULD BE NON-FILE, HOWEVER. 016510 4600 JMS I NOHND 016511 0210 0210 016512 1400 1400 016513 0001 P1, 1 016514 5756 JMP I (SQIDER+1 /ERROR IN READ 016515 3007 P1A, DCA OLDDIR /WIPES ANY DIRECT. SEGMENT 016516 1200 TAD NOHND /IS OUTPUT THE SYSTEM DEVICE? 016517 1363 TAD (171 016520 7650 SNA CLA 016521 5326 JMP SYSDIR 016522 1755 TAD I (1401 016523 1354 TAD (-70 /IS OUTPUT A SYS DEVICE? 016524 7640 SZA CLA 016525 5677 JMP I SQDTST 016526 1353 SYSDIR, TAD (70 016527 3030 DCA OUTBLK 016530 5677 JMP I SQDTST 6400 NOHND=FAKE /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 57 016531 7700 AOUERR, SMA CLA /WAS IT A DEVICE ERROR OR ARE WE OUT OF SPACE? 016532 4764 BOUERR, JMS I (PIPERR /OUT OF SPACE 016533 0000 0 016534 4764 PER2, JMS I (PIPERR 016535 0002 2 016536 1352 ASCPTCH,TAD (ACHLP+1 /V3C FAKE OUT ICHAR 016537 3751 DCA I (ICHAR /SIMULATE CALL TO ICHAR FROM 'ACHLP' 016540 5750 JMP I (GETNEW /V3C SIMULATE OCCURRENCE OF 8-BIT ^Z IN ICHAR 016550 2030 016551 2014 016552 3205 016553 0070 016554 7710 016555 1401 016556 5626 016557 0007 016560 3700 016561 3023 016562 7600 016563 0171 016564 3521 016565 2473 016566 6143 016567 0600 016570 7204 016571 6323 016572 2215 016573 2223 016574 2222 016575 2352 016576 6063 016577 6021 6600 PAGE /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 58 /THIS IS ONCE-ONLY CODE 016600 0000 ONCE, 0 016601 7240 STA 016602 1200 TAD ONCE 016603 3224 DCA ONCENF 016604 1377 TAD (20 016605 3624 DCA I ONCENF /RESTORE L20, DON'T ALLOW REENTRY 016606 1776 TAD I (MPARAM+1 016607 0375 AND (7 016610 7650 SNA CLA /IS /V SET? 016611 5225 JMP SUMMOR /NO, RETURN 016612 1374 TAD (VER /YES 016613 4773 JMS I (ERPRNT /PRINT VERSION NUMBER 016614 5225 JMP SUMMOR /RETURN 016615 1723 VER, TEXT \OS/8 PIP V50B\ 016616 5770 016617 4020 016620 1120 016621 4026 016622 6560 016623 0200 016624 0000 ONCENF, 0 016625 1234 SUMMOR, TAD RELPTR 016626 7450 SNA 016627 5600 JMP I ONCE 016630 3634 DCA I RELPTR 016631 2234 ISZ RELPTR 016632 2225 ISZ SUMMOR 016633 5225 JMP SUMMOR 6634 RELPTR=. 016773 4600 016774 6615 016775 0007 016776 7644 016777 0020 7046 RELOC 7046 /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 59 /WE'VE ADDED A NEW SWITCH: /N = NUMERIC DATES 017046* 7046 PRDAMO, . /DA-MON-YR OR MM/DD/YY 017047* 4743 JMS I LPR6BT /START WITH A SPACE 017050* 7132 STL RTR 017051* 0744 AND I L17644 /TEST THE /N SWITCH 017052* 7650 SNA CLA 017053* 5261 JMP ALPHA /NEW STYLE DATES 017054* 4326 JMS MONTH 017055* 4742 JMS I LPRNUM 017056* 0003 3 /BLANK COUNT 017057* 1340 TAD LSLASH 017060* 4743 JMS I LPR6BT 017061* 1020 ALPHA, TAD TEMP /PRINT THE DAY 017062* 7010 RAR 017063* 7012 RTR 017064* 0336 AND L37 017065* 4742 JMS I LPRNUM 017066* 0003 3 017067* 7132 STL RTR 017070* 0744 AND I L17644 /CHECK /N AGAIN 017071* 7640 SZA CLA 017072* 5306 JMP NUMERC /OLD STYLE DATES 017073* 4326 JMS MONTH 017074* 1337 TAD LM15 /.GT. DEC? 017075* 7710 SPA CLA 017076* 4326 JMS MONTH 017077* 7104 CLL RAL /X2 017100* 1345 TAD DATTAB 017101* 3326 DCA MONTH 017102* 4320 JMS PRMON /PRINT THE MONTH 017103* 2326 ISZ MONTH 017104* 4320 JMS PRMON 017105* 7144 CMA CLL RAL /TURN SLASH INTO DASH 017106* 1340 NUMERC, TAD LSLASH 017107* 4743 JMS I LPR6BT 017110* 5646 JMP I PRDAMO /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 60 017111* 7111 PRYEAR, . /PRINT THE YEAR 017112* 7012 RTR 017113* 7012 RTR /AC = BIPCCL WORD 017114* 0335 AND L30 017115* 1020 TAD TEMP /MERGE 017116* 4742 JMS I LPRNUM 017117* 5711 JMP I PRYEAR 017120* 7120 PRMON, . /PRINT ALPHA MONTH 017121* 1726 TAD I MONTH 017122* 3324 DCA .+2 017123* 4741 JMS I LPRWD 017124* 7145 DATTAB 017125* 5720 JMP I PRMON 017126* 7126 MONTH, . /EXTRACT MONTH BITS 017127* 1020 TAD TEMP 017130* 7104 CLL RAL 017131* 7006 RTL 017132* 7006 RTL 017133* 0336 AND L37 017134* 5726 JMP I MONTH 017135* 0030 L30, 30 017136* 0037 L37, 37 017137* 7763 LM15, -15 017140* 0257 LSLASH, "/ 017141* 4050 LPRWD, PRWD 017142* 4101 LPRNUM, PRNUM 017143* 4070 LPR6BT, PR6BIT 017144* 7644 L17644, MPARAM+1 /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 61 017145* 7146 DATTAB, .+1 017146* 5502 IFNDEF GERMAN < TEXT /-BAD-JAN-FEB-MAR-APR-MAY-JUN-JUL-AUG-SEP-OCT-NOV-DEC/> 017147* 0104 017150* 5512 017151* 0116 017152* 5506 017153* 0502 017154* 5515 017155* 0122 017156* 5501 017157* 2022 017160* 5515 017161* 0131 017162* 5512 017163* 2516 017164* 5512 017165* 2514 017166* 5501 017167* 2507 017170* 5523 017171* 0520 017172* 5517 017173* 0324 017174* 5516 017175* 1726 017176* 5504 017177* 0503 017200* 0000 IFDEF GERMAN < TEXT /-???-JAN-FEB-MAR-APR-MAI-JUN-JUL-AUG-SEP-OKT-NOV-DEZ/> 6767 RELOC 7000 PAGE 0001 FIELD 1 3000 *3000 $ /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 62 ABSBIN 4442 DIR 2540 ICHAR1 2124 IOMSG 5717 ABSLUT 4440 DIRECT 6200 ICHAR2 2120 IOPEN 2001 ABUF 6601 DIRMSG 2542 ICHAR3 2105 JMSPR 4704 ACHLP 3204 DIRPRE 4000 IHNDLR 0024 JMSPR6 4270 ACLOSE 3021 DLENGT 6206 IMAGE 2601 K200 6024 ADCAXR 3241 DLHNDL 3415 IMCCNT 2615 K7 6240 ADDLEN 4311 DLINK 0031 IMCLOS 2604 K7617 6145 AEOFFG 3114 DMTX 5460 IMCTLW 2710 K7622 6022 AGAIN 2660 DPFILE 3423 IMEFLP 2731 K770 3400 ALPHA 7061 DP4 3422 IMERRX 2725 K7760 6000 AOUERR 6531 DSKNAM 4711 IMERR4 2742 LEADER 3533 ASCEOF 3107 DSKNUM 4705 IMFILP 2663 LEAVE 2516 ASCIGO 3200 DTYPE 0027 IMGOUT 6130 LFEED 3002 ASCII 3075 DVREDE 6341 IMHNDL 2641 LM15 7137 ASCI2 6466 DWASTE 6204 IMNZRO 2744 LPRNUM 7142 ASCI5 3350 DZERO 3435 IMOUT 2722 LPRWD 7141 ASCJMP 3231 ECOUNT 0035 IMRCLP 2671 LPR6BT 7143 ASCPTC 6536 ENDDIR 4352 IMREC 2712 LSLASH 7140 BEOF 4517 ENDFUJ 2620 IMTRA 2656 LTCODE 4451 BEOT 4446 EOFERR 2101 IM200 2747 LTLOOP 4460 BINARY 4401 EOFTST 3016 IM7600 2600 L17644 7144 BIN200 4425 EOL 3004 INBLK 0033 L20 3033 BIN360 4400 EOLLP 3010 INBREC 2056 L30 7135 BIPCCL 7777 ERCRLF 4643 INBUF 3000 L37 7136 BLOKNO 0025 ERLP 4602 INBUFP 2052 MDATE 7666 BNM140 4444 ERPCH 4613 INCDIF 2046 MONTH 7126 BN7600 4507 ERPRNT 4600 INCHAR 2021 MOVCNT 6322 BOUERR 6532 ERRTBL 4737 INCHCT 2135 MOVFIL 5452 CARRET 3321 ERR0 5006 INCOMN 2125 MPARAM 7643 CDIF10 5321 ERR1 5022 INCTL 1600 MTEMP 0027 CGEWST 6433 ERR10 5170 INCTLW 2051 MWAST 6323 CHAR 0021 ERR11 6207 INCTR 2001 NAMELP 4226 CHPRNT 4627 ERR2 6251 INCTZF 2127 NAME1 4264 CINSRT 3237 ERR3 5036 INDEVH 6600 NAME2 4265 CKZERO 5611 ERR4 5050 INEFER 4534 NAME3 4266 COLCT 3342 ERR5 5062 INEOF 0023 NAME4 4275 CONFRM 3730 ERR6 5076 INERR 2100 NEWIN 5400 COPTSW 3133 ERR7 5116 INERRX 2075 NEWOUT 5503 CTCFLG 5700 ERR8 5135 INFLD 0000 NEWSEG 4205 CTCMSG 5702 ERR9 5153 INFPTR 0022 NEWTAP 4406 CTCTST 2507 FAKE 6400 INGBUF 2032 NEXTIN 5515 CYWAST 6413 FFEED 3311 INHNDL 2146 NODUMP 2346 C200 3535 FFLF 3301 INJMP 2102 NOHND 6400 DATTAB 7145 FILENR 4621 INJMPP 2024 NONDIR 3517 DCB 7760 FILLLP 2326 INNEWF 2135 NOPCD 3033 DCOUNT 0030 FIXLEN 3700 INPTR 2012 NOROOM 5735 DDATE 0033 FIXLP 3710 INREC 2053 NOTOPT 3337 DELETE 3401 FIXOVR 3724 INRECS 0007 NUMERC 7106 DELOOP 3406 FLENGT 0024 INRTRN 2133 NXTDIR 4200 DEMPTY 4325 GETDIR 4040 INSEG 5407 NXTRD 6114 DEND 3134 GETEQ 6332 INTEST 5277 OCHAR 2410 DEVLEN 3600 GETNEW 2030 INXR 0011 OCHAR1 2460 DFORG 6201 GOTCON 3754 IN200 2110 OCHAR2 2455 DFUJLP 4011 HDTST 6453 IN7400 2000 OCHAR3 2426 DIGIT 4156 ICHAR 2014 IN7600 2015 OCISZ 2354 /PIP V50 FOR OS/8 MONITOR V50 PAL8-V50Y 03-MAR-23 PAGE 62-1 OCLOSE 2310 PER13 6143 SQFIL4 6316 OCRET 2355 PER2 6534 SQFIL5 6273 OEFAIL 2233 PER4 3110 SQFLAG 0026 OFSET 6142 PIP 3023 SQIDER 5625 OHNDLR 0025 PIPCD 3030 SQIOER 5645 OLDDIR 0007 PIPCLR 6126 SQOVER 5600 ONCE 6600 PIPERR 3521 SQTRA 2641 ONCENF 6624 PIPSA 3000 SQUISH 5200 ONOFIL 2245 PIPSNA 3011 SQUISX 5202 ONTERR 2243 PRBLNK 4140 SQ7600 5330 OOPEN 2200 PRCT 4067 SRSTOR 5664 OORETN 2231 PRDAMO 7046 SUMMOR 6625 OS78 0001 PRLNGT 4276 SURE 5534 OTRTN 2505 PRMON 7120 SYSCOP 6001 OTYPE 2473 PRNMLP 4112 SYSCPY 6004 OUBLK 2222 PRNUM 4101 SYSDIR 6526 OUBUF 0000 PRTCRL 4310 S7200 5406 OUCCNT 2352 PRWD 4050 TAB 3251 OUCDIF 2276 PRWDLP 4054 TABLP 3254 OUCHAR 2421 PRXX60 4124 TABRBT 3264 OUCOMN 2462 PRYEAR 7111 TEMP 0020 OUCRET 2463 PR212 4055 TEMP1 0012 OUCTL 5400 PR6BIT 4070 TESTXR 3243 OUCTLW 2301 PTP 0020 TOPT 3325 OUDEVH 7200 PWRTEN 4152 TSTHED 6443 OUDLEN 0031 P1 6513 TSTIO 6454 OUDWCT 2471 P1A 6515 TSTSAM 6244 OUELEN 2223 P7600 3522 TTYOUT 5000 OUENTR 2217 RBTLP 3122 VER 6615 OUFLD 0000 RCOPY1 4523 VTAB 3271 OUHNDL 2215 RECCNT 0034 VTLF 3302 OUJMP 2423 RELBIN 4466 WASTE 0032 OUJMPE 2470 RELEND 4513 XR 0010 OUK 5323 RELERR 4541 YDUMP 6121 OUNOWR 2306 RELLP 4472 YIHAND 6021 OUPOLD 2466 RELPTR 6634 YINREC 6043 OUPTR 2467 RELSNA 4503 YLOOP 6110 OUREC 2303 RELTBL 4717 YNOOUT 6137 OUSAVE 5533 RUBOUT 3115 YOHAND 6063 OUSETP 2400 SAME 0032 YOUSYS 6036 OUTBLK 0030 SEMPTY 5531 YSOUT 6134 OUTDIR 5631 SETCTC 5311 YTSOUT 6220 OUTDMP 2247 SETSAM 5543 ZEROK 5620 OUTEMP 2465 SGETIN 5416 ZEROKS 5622 OUTINH 2472 SLASHG 2520 ZRO70 3475 OUTOPN 3343 SLGRET 2532 OUTSEG 5641 SNULER 5523 OUTXR 0010 SNULL 5525 OUWAST 0027 SOHND 5220 OU7600 2201 SQBUF1 1400 OU7601 2351 SQBUF2 7200 OZERR 3514 SQCTLC 5650 OZHNDL 3457 SQDTST 6477 PCRLF 4142 SQFILE 6261 PDATE 4650 SQFIL3 6267 ERRORS DETECTED: 0 LINKS GENERATED: 0