File: CREFLS.TM of Disk: Disks/Build-2007/Build-11-03-07
(Source file text)
/3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 PAGE 1 /3 PIP V40 FOR OS/8 MONITOR V40 / / / / / / / / / /COPYRIGHT (C) 1977 BY DIGITAL EQUIPMENT CORPORATION / AND 1979, 1980 BY DATAPLAN GMBH / / / / / / / / / /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. / / / / / / / / / / /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 PAGE 2 / 1-JUL-79 FILE: PIP.PA OS/8 VERSION 40A /RL/EF/ET.AL./S.R./E.S. /JVZ/WVDM/DEVEXT VERSION 40A /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 0001 GERMAN=1 /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 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, PIP+1- MAIN ENTRANCES TO PIP. THE CODE ON THIS PAGE / INSPECTS CD OPTION WORDS AND BRANCHES TO PROPER / ROUTINES. /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 PAGE 3-1 /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. /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 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 /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 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 0000 OS78=0 IFNDEF OS78 <OS78=1> / .PAL PIP12B / .LOAD PIP12B=13000 / .SA SYS PIP=6403 /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 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. /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 PAGE 7 0000 INFLD=INCTL&70 /GET FIELD OF INPUT BUFFER 0000 OUFLD=OUCTL&70 /DITTO OUTPUT BUFFER 2000 *2000 12000 7400 IN7400, 7400 12001 0000 IOPEN, 0 12002 7240 CLA CMA 12003 3335 DCA INCHCT /SET INCHCT TO FORCE A READ 12004 2023 ISZ INEOF /SET END-OF-FILE FLAG TO FORCE A NEW FILE 12005 1377 TAD (7617 12006 3022 DCA INFPTR /RESET FILE POINTER 12007 6214 RDF 12010 1246 TAD INCDIF 12011 3212 DCA .+1 12012 7402 INPTR, HLT /RESTORE CALLING FIELDS 12013 5601 JMP I IOPEN 12014 0000 ICHAR, 0 12015 7600 IN7600, 7600 12016 6214 RDF 12017 1246 TAD INCDIF 12020 3333 DCA INRTRN /SAVE CALLING FIELDS 12021 6201 INCHAR, CDF INFLD 12022 2302 ISZ INJMP /BUMP THREE-WAY UNPACK SWITCH 12023 2335 ISZ INCHCT 12024 5302 INJMPP, JMP INJMP 12025 1023 TAD INEOF 12026 7650 SNA CLA /DID LAST READ YIELD END-OF-FILE? 12027 5232 JMP INGBUF /NO - DO ANOTHER 12030 4335 GETNEW, JMS INNEWF /OPEN A NEW INPUT FILE 12031 5301 JMP EOFERR /NO FILE TO OPEN 12032 1201 INGBUF, TAD INCTR 12033 7100 CLL 12034 1376 TAD (INRECS 12035 7420 SNL 12036 3201 DCA INCTR /RESTORE INCTR IF IT HASN'T OVERFLOWED 12037 7430 SZL /IS THIS THE LAST READ? 12040 2023 ISZ INEOF /YES - SET END-OF-FILE FLAG /NOT END-OF-FILE IF INPUT DEVICE /IS NON-FILE STRUCTURED! 12041 7172 CLL CML CMA RTR /CONSTRUCT A CONTROL WORD FOR THE READ 12042 7012 RTR /FROM THE AMOUNT OF THE OVERFLOW 12043 7012 RTR /(IF ANY) AND THE STANDARD CONTROL WORD 12044 1375 TAD (INCTL+1 12045 3251 DCA INCTLW 12046 6203 INCDIF, CDF CIF 0 12047 6211 CDF 10 12050 4746 JMS I INHNDL /CALL THE DEVICE HANDLER 12051 0000 INCTLW, 0 12052 3000 INBUFP, INBUF 12053 0000 INREC, 0 12054 4774 JMS I (SLASHG /A HANDLER ERROR - SHOULD WE IGNORE? 12055 0020 INERRX-. /ADDRESS IF NOT 12056 1253 INBREC, TAD INREC /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 PAGE 7-1 12057 1376 TAD (INRECS 12060 3253 DCA INREC /UPDATE THE RECORD NUMBER 12061 1251 TAD INCTLW 12062 0215 AND IN7600 12063 7104 CLL RAL 12064 1251 TAD INCTLW 12065 0215 AND IN7600 12066 7040 CMA 12067 3335 DCA INCHCT /COMPUTE THE NEW CHARACTER COUNT 12070 1224 TAD INJMPP 12071 3302 DCA INJMP /RESET THE CHARACTER SWITCH 12072 1252 TAD INBUFP 12073 3212 DCA INPTR /AND THE WORD POINTER 12074 5221 JMP INCHAR /GO BACK AND MAKE BELIEVE THIS NEVER HAPPENED 12075 2023 INERRX, ISZ INEOF /EITHER AN END-OF-FILE OR A BADDIE 12076 7700 SMA CLA /WHICH TYPE WAS IT? 12077 5256 JMP INBREC /END OF FILE - RESUME THY PROCESSING 12100 7330 INERR, CLA CLL CML RAR /BADDIE - GIVE ERROR RETURN WITH NEGATIVE AC 12101 5333 EOFERR, JMP INRTRN 12102 7402 INJMP, HLT /THIS IS THE THREE - WAY CHARACTER SWITCH 12103 5324 JMP ICHAR1 12104 5320 JMP ICHAR2 12105 1224 ICHAR3, TAD INJMPP 12106 3302 DCA INJMP 12107 1612 TAD I INPTR 12110 0200 IN200, AND IN7400 12111 7112 CLL RTR 12112 7012 RTR /COMBINE THE HIGH-ORDER FOUR BITS OF 12113 1251 TAD INCTLW 12114 7012 RTR /THE TWO WORD TO FORM THE THIRD CHARACTER 12115 7012 RTR 12116 2212 ISZ INPTR 12117 5325 JMP INCOMN 12120 1612 ICHAR2, TAD I INPTR 12121 0200 AND IN7400 12122 3251 DCA INCTLW /SAVE THE HIGH-ORDER BITS FOR THE THIRD CHAR 12123 2212 ISZ INPTR /BUMP THE WORD POINTER 12124 1612 ICHAR1, TAD I INPTR 12125 0373 INCOMN, AND (377 12126 1372 TAD (-232 12127 7450 INCTZF, SNA /IS THE CHARACTER A ^Z? 12130 5230 JMP GETNEW /YES - GET A NEW FILE 12131 1371 TAD (232 /RESTORE THE CHARACTER 12132 2214 ISZ ICHAR /BUMP RETURN TO NORMAL RETURN 12133 0000 INRTRN, 0 /RESTORE CALLING FIELDS 12134 5614 JMP I ICHAR /AND RETURN /IOPEN IS UNNECESSARY. /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 PAGE 8 12135 7777 INNEWF, -1 /ROUTINE TO OPEN NEW INPUT FILE 2135 INCHCT=INNEWF 12136 6211 CDF 10 12137 1370 TAD (INDEVH+1 12140 3346 DCA INHNDL /INITIALIZE HANDLER ADDRESS 12141 1422 TAD I INFPTR /GET NEXT CD INPUT FILE ENTRY 12142 7450 SNA /ANY MORE? 12143 5735 JMP I INNEWF /NO - OUT OF INPUT 12144 4710 JMS I IN200 12145 0001 1 /ASSIGN, FETCH HANDLER 12146 0000 INHNDL, 0 12147 7402 HLT /HUH? 12150 1422 TAD I INFPTR 12151 0367 AND (7760 /GET LENGTH PART OF WORD 12152 7440 SZA /LENGTH OF 0 MEANS LENGTH >=256 12153 1366 TAD (17 /ADD HIGH-ORDER BITS 12154 7132 CLL CML RTR 12155 7012 RTR 12156 3201 DCA INCTR /STORE LENGTH OF FILE 12157 2022 ISZ INFPTR 12160 1422 TAD I INFPTR 12161 3253 DCA INREC /STORE STARTING RECORD NUMBER OF FILE 12162 2022 ISZ INFPTR 12163 3023 DCA INEOF /ZERO END-OF-FILE FLAG 12164 2335 ISZ INNEWF 12165 5735 JMP I INNEWF 2001 INCTR=IOPEN 12166 0017 12167 7760 12170 6601 12171 0232 12172 7546 12173 0377 12174 2520 12175 1601 12176 0007 12177 7617 2200 PAGE /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 PAGE 9 12200 0000 OOPEN, 0 /OPEN OUTPUT FILE 12201 7600 OU7600, 7600 / RDF / TAD OUCDIF / DCA OORETN 12202 1351 TAD OU7601 12203 3222 DCA OUBLK 12204 1377 TAD (OUDEVH+1 12205 3215 DCA OUHNDL 12206 6211 CDF 10 12207 1601 TAD I OU7600 /GET DEVICE NUMBER WORD OF OUTPUT FILE ENTRY 12210 0376 AND (17 /STRIP OFF ANY LENGTH INFO 12211 7450 SNA /IS THERE AN OUTPUT DEVICE? 12212 5245 JMP ONOFIL /NO - INHIBIT OUTPUT 12213 4775 JMS I (200 12214 0001 1 /ASSIGN, FETCH HANDLER 12215 0000 OUHNDL, 0 /OUTPUT DEVICE HANDLER ENTRY 12216 7402 HLT /HUH? 12217 1601 OUENTR, TAD I OU7600 12220 4775 JMS I (200 12221 0003 3 /ENTER OUTPUT FILE 12222 7601 OUBLK, 7601 /REPLACED WITH STARTING BLOCK 12223 0000 OUELEN, 0 /REPLACED WITH LENGTH OF HOLE 12224 5233 JMP OEFAIL /FAILED - MAYBE WE ASKED TOO MUCH 12225 3352 DCA OUCCNT 12226 3774 DCA I (OUTINH /ZERO OUTPUT INHIBIT FLAG 12227 4773 JMS I (OUSETP 12230 2200 ISZ OOPEN 12231 6213 OORETN, CDF CIF 10 /RESTORE CALLING FIELDS 12232 5600 JMP I OOPEN 12233 1601 OEFAIL, TAD I OU7600 12234 0372 AND (7760 /GET REQUESTED LENGTH 12235 7650 SNA CLA /WAS IT AN INDEFINITE REQUEST 12236 5243 JMP ONTERR /YES - CANNOT ENTER THE FILE 12237 1601 TAD I OU7600 12240 0376 AND (17 /MAKE THE REQUESTED LENGTH ZERO 12241 3601 DCA I OU7600 12242 5217 JMP OUENTR /TRY, TRY AGAIN 12243 7330 ONTERR, CLA CLL CML RAR 12244 5231 JMP OORETN /TAKE THE ERROR RETURN WITH AC<0 12245 2774 ONOFIL, ISZ I (OUTINH 12246 5231 JMP OORETN /TAKE THE ERROR RETURN WITH AC=0 /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 PAGE 10 12247 0000 OUTDMP, 0 12250 3301 DCA OUCTLW /STORE THE CONTROL WORD 12251 6211 CDF 10 12252 1774 TAD I (OUTINH 12253 7640 SZA CLA 12254 5306 JMP OUNOWR 12255 1352 TAD OUCCNT 12256 7450 SNA 12257 2301 ISZ OUCTLW 12260 1222 TAD OUBLK 12261 3303 DCA OUREC /COMPUTE THE STARTING BLOCK NUMBER OF THIS TRANSFER 12262 1301 TAD OUCTLW 12263 7106 CLL RTL 12264 7006 RTL 12265 7006 RTL 12266 0376 AND (17 /COMPUTE THE NUMBER OF RECORDS 12267 1352 TAD OUCCNT /UPDATE THE NUMBER OF BLOCKS IN THE FILE 12270 3352 DCA OUCCNT 12271 1352 TAD OUCCNT 12272 7120 CLL CML 12273 1223 TAD OUELEN 12274 7660 SNL SZA CLA /DOES THE LENGTH EXCEED THE GIVEN LENGTH? 12275 5647 JMP I OUTDMP /YES - SIGNAL OUTPUT ERROR 12276 6203 OUCDIF, CDF CIF 0 12277 6211 CDF 10 12300 4615 JMS I OUHNDL 12301 0000 OUCTLW, 0 12302 0000 OUBUF 12303 0000 OUREC, 0 12304 4771 JMS I (SLASHG 12305 0002 .+2-. 12306 2247 OUNOWR, ISZ OUTDMP /BUMP OUTDMP TO NORMAL RETURN 12307 5647 JMP I OUTDMP /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 PAGE 11 12310 0000 OCLOSE, 0 12311 6211 CDF 10 12312 1774 TAD I (OUTINH 12313 7640 SZA CLA /IS OUTPUT INHIBITED? 12314 5354 JMP OCISZ /YES - CLOSE IS A NOP 12315 4770 JMS I (OTYPE 12316 0367 AND (770 12317 1372 TAD (-PTP /CHECK FOR PAPER TAPE PUNCH OUTPUT 12320 7640 SZA CLA /AND SKIP ^Z OUTPUT IF TRUE 12321 1366 TAD (232 /OUTPUT A ^Z 12322 4765 JMS I (OCHAR 12323 5355 JMP OCRET 12324 4765 JMS I (OCHAR 12325 5355 JMP OCRET 12326 4765 FILLLP, JMS I (OCHAR 12327 5355 JMP OCRET 12330 4770 JMS I (OTYPE /GET TYPE OF OUTPUT DEVICE 12331 7710 SPA CLA 12332 1364 TAD (100 /IF ITS A DIRECTORY DEVICE FORCE A RECORD 12333 1363 TAD (77 /BOUNDARY - OTHERWISE A HALF-RECORD 12334 0762 AND I (OUDWCT 12335 7640 SZA CLA /UP TO THE BOUNDARY YET? 12336 5326 JMP FILLLP /NO - FILL WITH ZEROS 12337 1762 TAD I (OUDWCT /GET DOUBLEWORD COUNT LEFT 12340 1361 TAD (OUCTL&3700 12341 7450 SNA /A FULL WRITE LEFT? 12342 5346 JMP NODUMP /YES - DON'T DO IT - THE ^Z IS ALREADY OUT 12343 1360 TAD (4000+OUFLD /PUT IN THE FIELD BITS AND THE WRITE BIT 12344 4247 JMS OUTDMP 12345 5355 JMP OCRET /AN ERROR OCCURRED WHILE DUMPING THE BUFFER 12346 1601 NODUMP, TAD I OU7600 /GET THE DEVICE NUMBER 12347 4775 JMS I (200 12350 0004 4 /CLOSE THE OUTPUT FILE 12351 7601 OU7601, 7601 /POINTER TO THE OUTPUT FILE NAME 12352 0000 OUCCNT, 0 12353 7410 SKP /ERROR WHILE CLOSING THE FILE - BAD! 12354 2310 OCISZ, ISZ OCLOSE 12355 6213 OCRET, CDF CIF 10 /RESTORE CALLING FIELDS 12356 5710 JMP I OCLOSE 12360 4000 12361 1400 12362 2471 12363 0077 12364 0100 12365 2410 12366 0232 12367 0770 12370 2473 12371 2520 12372 7760 12373 2400 12374 2472 12375 0200 12376 0017 12377 7201 /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 PAGE 11-1 2400 PAGE /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 PAGE 12 12400 0000 OUSETP, 0 /ROUTINE TO INITIALIZE CHARACTER POINTERS 12401 1377 TAD (OUCTL&3700 /GET SIZE OF BUFFER IN DOUBLEWORDS 12402 7041 CIA /PAL10 IS DEFINITELY NOT NICE 12403 3271 DCA OUDWCT / TAD (OUBUF IFNZRO OUBUF <ERROR!> /V3 12404 3267 DCA OUPTR /INITIALIZE WORD POINTER 12405 1270 TAD OUJMPE 12406 3223 DCA OUJMP /INITIALIZE THREE-WAY CHARACTER SWITCH 12407 5600 JMP I OUSETP 12410 0000 OCHAR, 0 12411 0376 AND (377 12412 3265 DCA OUTEMP 12413 6214 RDF 12414 1375 TAD (CDF CIF 0 12415 3263 DCA OUCRET 12416 1272 TAD OUTINH 12417 7640 SZA CLA /IS THERE AN OUTPUT FILE? 12420 5262 JMP OUCOMN /NO - EXIT 12421 6201 OUCHAR, CDF OUFLD /SET DATA FIELD TO BUFFER'S FIELD 12422 2223 ISZ OUJMP /BUMP THE CHARACTER SWITCH 12423 7402 OUJMP, HLT /THREE WAY CHARACTER SWITCH 12424 5260 JMP OCHAR1 12425 5255 JMP OCHAR2 12426 1265 OCHAR3, TAD OUTEMP 12427 7106 CLL RTL 12430 7006 RTL 12431 0374 AND (7400 12432 1666 TAD I OUPOLD 12433 3666 DCA I OUPOLD /UPDATE FIRST WORD OF TWO WITH HIGH /ORDER 4 BITS OF THIRD CHAR 12434 1265 TAD OUTEMP 12435 7112 CLL RTR 12436 7012 RTR 12437 7010 RAR 12440 0374 AND (7400 12441 1667 TAD I OUPTR 12442 3667 DCA I OUPTR /UPDATE SECOND WORD FROM LOW ORDER 4 BITS 12443 1270 TAD OUJMPE 12444 3223 DCA OUJMP /RESET SWITCH 12445 2267 ISZ OUPTR 12446 2271 ISZ OUDWCT /BUMP DOUBLEWORD COUNTER EVERY 3 CHARS 12447 5262 JMP OUCOMN 12450 1373 TAD (OUCTL /LOAD CONTROL WORD FOR A FULL WRITE 12451 4772 JMS I (OUTDMP /DUMP THE BUFFER 12452 5263 JMP OUCRET /OUTPUT ERROR - GIVE ERROR RETURN 12453 4200 JMS OUSETP /RE-INITIALIZE THE POINTERS 12454 5262 JMP OUCOMN 12455 1267 OCHAR2, TAD OUPTR 12456 3266 DCA OUPOLD /SAVE POINTER TO FIRST WORD OF TWO 12457 2267 ISZ OUPTR /BUMP WORD POINTER TO SECOND WORD 12460 1265 OCHAR1, TAD OUTEMP 12461 3667 DCA I OUPTR 12462 2210 OUCOMN, ISZ OCHAR /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 PAGE 12-1 12463 7402 OUCRET, HLT /RESTORE CALLING FIELDS 12464 5610 JMP I OCHAR 12465 0000 OUTEMP, 0 12466 0000 OUPOLD, 0 12467 0000 OUPTR, 0 12470 5223 OUJMPE, JMP OUJMP 12471 0000 OUDWCT, 0 12472 0000 OUTINH, 0 /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 PAGE 13 12473 0000 OTYPE, 0 12474 6214 RDF 12475 1375 TAD (CDF CIF 0 12476 3305 DCA OTRTN 12477 6211 CDF 10 12500 1771 TAD I (7600 12501 0370 AND (17 12502 1367 TAD (DCB-1 12503 3265 DCA OUTEMP 12504 1665 TAD I OUTEMP 12505 7402 OTRTN, HLT 12506 5673 JMP I OTYPE 12507 0000 CTCTST, 0 12510 1366 TAD (200 /V3 12511 6034 KRS 12512 1365 TAD (-203 12513 7650 SNA CLA /IS THE TELETYPE BUFFER A ^C 12514 6031 KSF /WITH THE TELETYPE FLAG ON? 12515 5707 JMP I CTCTST /NO 12516 6203 LEAVE, CDF CIF 0 /YES - GO TO MONITOR 12517 5771 JMP I (7600 /THROUGH THE "SAVE CORE" RETURN 12520 0000 SLASHG, 0 12521 3307 DCA CTCTST 12522 1026 TAD SQFLAG 12523 7640 SZA CLA /ARE WE SQUISHING? 12524 5764 JMP I (SQIOER /YES 12525 1307 TAD CTCTST 12526 7710 SPA CLA /ONLY IGNORE HARD ERRORS 12527 1763 TAD I (MPARAM 12530 0362 AND (40 12531 7640 SZA CLA / "G" SWITCH 12532 5720 SLGRET, JMP I SLASHG /IGNORED! 12533 1720 TAD I SLASHG 12534 1320 TAD SLASHG 12535 3320 DCA SLASHG /SET UP NON-IGNORE ADDRESS 12536 1307 TAD CTCTST 12537 5720 JMP I SLASHG /RETURN WITH AC RESTORED /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 PAGE 14 IFZERO OS78 < 12540 3027 DIR, DCA DTYPE /SAVE TYPE OF REQUEST 12541 1771 TAD I (7600 12542 7640 SZA CLA /IS THERE AN OUTPUT FILE? 12543 5761 JMP I (DIRPRE /YES 12544 3350 DCA TTYDEV+1 12545 4766 JMS I (200 12546 0012 12 /ASSIGN WITHOUT FETCH 12547 5524 TTYDEV, 5524 /COMPRESSED CODE FOR "TTY" 12550 0000 0 12551 0000 0 12552 5760 JMP I (PIP /V3 WHAT - NO TELETYPE! 12553 1350 TAD TTYDEV+1 12554 3771 DCA I (7600 12555 5761 JMP I (DIRPRE > IFNZRO OS78 < DIR, JMS I (PIPERR /TYPE OUT MESSAGE 14 DIRMSG, TEXT "USE DIRECT" > 12560 3023 12561 4000 12562 0040 12563 7643 12564 5645 12565 7575 12566 0200 12567 7757 12570 0017 12571 7600 12572 2247 12573 5400 12574 7400 12575 6203 12576 0377 12577 1400 2600 PAGE /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 PAGE 15 /PIP PROPER BEGINS HERE /********************** /IMAGE MODE PROCESSOR FOR PIP 12600 7600 IM7600, 7600 /KEEP AT BEGINNING OF PAGE 12601 4777 IMAGE, JMS I (FIXLEN 12602 4776 JMS I (OUTOPN 12603 4256 JMS IMTRA 12604 1775 IMCLOS, TAD I (OUTINH 12605 7640 SZA CLA /WAS THERE AN OUTPUT FILE? 12606 5774 JMP I (PIPCLR /NO - DON'T CLOSE IT 12607 4773 JMS I (OUK /GET THE LENGTH OF THE OUTPUT FILE 12610 3215 DCA IMCCNT 12611 1600 TAD I IM7600 12612 4747 JMS I IM200 12613 0004 4 /CLOSE 12614 7601 7601 /FILE NAME 12615 0000 IMCCNT, 0 12616 5772 JMP I (AOUERR 12617 5774 JMP I (PIPCLR 12620 0000 ENDFUJ, 0 /PART OF DIRECTORY PRINTING ROUTINE 12621 4771 JMS I (PRNUM 12622 1370 TAD (-7 12623 4767 JMS I (PRWD /PRINT SEVEN WORDS IFNDEF GERMAN < TEXT \ FREE BLOCKS \> 12624 4006 IFDEF GERMAN < TEXT \ FREIE BLOECKE\> 12625 2205 12626 1105 12627 4002 12630 1417 12631 0503 12632 1305 12633 0000 2633 *.-1 12633 4766 JMS I (PCRLF 12634 4766 JMS I (PCRLF /LEAVE A SPACE BETWEEN DIRECTORIES 12635 2023 ISZ INEOF /SIMULATE "END OF FILE" FOR INPUT ROUTINE 12636 7240 CLA CMA 12637 3765 DCA I (INCHCT /AS WELL AS "END OF BUFFER" 12640 5620 JMP I ENDFUJ /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 PAGE 16 IMHNDL, /V3 12641 0000 SQTRA, 0 12642 1241 TAD SQTRA 12643 3256 DCA IMTRA /FAKE A CALL TO "IMTRA" 12644 1034 TAD RECCNT /SETTING UP THE ARGS TO DO THE SQUISHING FOR US 12645 3764 DCA I (INCTR 12646 1024 TAD IHNDLR 12647 3241 DCA IMHNDL 12650 1033 TAD INBLK 12651 3312 DCA IMREC 12652 1030 TAD OUTBLK 12653 3763 DCA I (OUCCNT 12654 3023 DCA INEOF 12655 5271 JMP IMRCLP 12656 0000 IMTRA, 0 12657 4764 JMS I (IOPEN /INITIALIZE INPUT ROUTINE 12660 1023 AGAIN, TAD INEOF /IOPEN ALWAYS SETS INEOF 12661 7650 SNA CLA /KEEP READING? 12662 5271 JMP IMRCLP /YES /NO, OPEN NEXT FILE 12663 4765 IMFILP, JMS I (INNEWF /SET UP PARAMS FOR NEXT FILE 12664 5656 JMP I IMTRA /NO NEXT FILE 12665 1762 TAD I (INHNDL 12666 3241 DCA IMHNDL /GET DEVICE HANDLER ENTRY 12667 1761 TAD I (INREC 12670 3312 DCA IMREC /AND STARTING BLOCK NUMBER 12671 1764 IMRCLP, TAD I (INCTR 12672 7100 CLL 12673 1360 TAD (15 12674 7420 SNL /IF LINK IS ON, THERE ARE LESS THAN 16 BLOCKS LEFT 12675 3764 DCA I (INCTR 12676 7430 SZL 12677 2023 ISZ INEOF 12700 7172 CLL CML CMA RTR 12701 7012 RTR 12702 7012 RTR 12703 1357 TAD (3201 /FORM A FULL OR PARTIAL READ CONTROL WORD 12704 3310 DCA IMCTLW 12705 4756 JMS I (CTCTST /CHECK FOR ^C 12706 6202 CIF 0 12707 4641 JMS I IMHNDL 12710 0000 IMCTLW, 0 12711 0000 OUBUF 12712 0000 IMREC, 0 12713 4755 JMS I (SLASHG 12714 0011 IMERRX-. 12715 1312 TAD IMREC 12716 1360 TAD (15 12717 3312 DCA IMREC /UPDATE BLOCK NUMBER 12720 7330 CLA CLL CML RAR 12721 1310 TAD IMCTLW 12722 4754 IMOUT, JMS I (OUTDMP /WRITE OUT WHAT WE JUST READ IN 12723 5772 JMP I (AOUERR /WRITE ERROR - BAD! 12724 5260 JMP AGAIN /V3 /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 PAGE 17 12725 2023 IMERRX, ISZ INEOF /SIGNAL EOF OR WORSE 12726 7710 SPA CLA /WHICH ONE IS IT? 12727 5342 JMP IMERR4 12730 1353 TAD (6377 /MARCH DOWN THROUGH CORE 12731 3021 IMEFLP, DCA CHAR /LOOKING FOR THE FIRST NON-ZERO WORD 12732 6201 CDF 0 12733 1421 TAD I CHAR 12734 7640 SZA CLA 12735 5344 JMP IMNZRO 12736 7340 CLA CMA CLL 12737 1021 TAD CHAR 12740 7430 SZL /IF WE GO THROUGH THE BUFFER WITHOUT A NON-ZERO WORD 12741 5331 JMP IMEFLP 12742 4752 IMERR4, JMS I (PIPERR /SOMETHING IS WRONG (HANDLER SHOULD HAVE INSERTED 12743 0004 4 /A ^Z AT LEAST) 12744 6211 IMNZRO, CDF 10 12745 1021 TAD CHAR 12746 7130 CLL CML RAR 12747 0200 IM200, AND IM7600 12750 1347 TAD IM200 /GET THE LENGTH OF THE USEFUL PART OF THE BUFFER 12751 5322 JMP IMOUT /AS AN OUTPUT CONTROL WORD AND GO OUTPUT IT 12752 3521 12753 6377 12754 2247 12755 2520 12756 2507 12757 3201 12760 0015 12761 2053 12762 2146 12763 2352 12764 2001 12765 2135 12766 4142 12767 4050 12770 7771 12771 4101 12772 6531 12773 5323 12774 6126 12775 2472 12776 3343 12777 3700 3000 PAGE /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 PAGE 18 /** PIP STARTS HERE (OR HERE+1 IF CHAINED TO) ** 13000 5230 PIPSA, JMP PIPCD /NORMAL ENTRY/RE-ENTRY - CALL CD 13001 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 13002 1021 LFEED, TAD CHAR 13003 3410 DCA I XR /PUT THE LINE FEED IN THE LINE BUFFER 13004 3410 EOL, DCA I XR /MARK THE END OF USEFUL INFO 13005 4777 JMS I (CTCTST 13006 1376 TAD (ABUF-1 13007 3010 DCA XR /RESET BUFFER POINTER 13010 1410 EOLLP, TAD I XR /GET A CHARACTER FROM THE LINE BUFFER 13011 7450 PIPSNA, SNA /ZERO MEANS NO MORE CHARS 13012 5216 JMP EOFTST 13013 4775 JMS I (OCHAR /OUTPUT THE CHARACTER 13014 5774 JMP I (AOUERR 13015 5210 JMP EOLLP 13016 1314 EOFTST, TAD AEOFFG 13017 7650 SNA CLA /END OF INPUT ENCOUNTERED? 13020 5773 JMP I (ASCIGO /NO - GET NEXT LINE 13021 4772 ACLOSE, JMS I (OCLOSE /YES - CLOSE THE OUTPUT FILE 13022 5774 JMP I (AOUERR /ERROR ON CLOSE 13023 1771 PIP, TAD I (MPARAM-1 /V3 13024 7700 SMA CLA /ALTMODE TERMINATE LAST COMMAND STRING? 13025 5230 JMP PIPCD /NO 13026 6203 CDF CIF 0 /YES 13027 5770 JMP I (7605 /EXIT TO OS/8 WITHOUT SAVING CORE 13030 4767 PIPCD, JMS I (200 /OF COURSE THE MONITOR IS IN CORE! 13031 0005 5 /COMMAND DECODE 13032 0000 0 /NO ASSUMED EXTENSIONS ON INPUT L20, /V3 13033 4776 NOPCD, JMS I (ONCE /REPLACED BY '20' BY ONCE-ONLY CODE 13034 4766 JMS I (SRSTOR /CLEAR /S OR /Y;READ MONITOR 13035 3026 DCA SQFLAG /CLEAR /S INDICATOR 13036 1211 TAD PIPSNA 13037 3765 DCA I (INCTZF /RESET INPUT SWITCH TO DETECT "^Z"'S 13040 1764 TAD I (MPARAM+1 13041 0363 AND (40 /"S" SWITCH 13042 7640 SZA CLA 13043 5762 JMP I (SQUISH /IT WAS ON - COMPRESS THE INDICATED DEVICES 13044 1761 TAD I (MPARAM+2 13045 7006 RTL 13046 7630 SZL CLA /"Z" SWITCH IN THE LINK 13047 4760 JMS I (DZERO /ZERO DIRECTORY BEFORE PROCEEDING 13050 1757 TAD I (MPARAM 13051 0356 AND (400 /"D" SWITCH 13052 7640 SZA CLA 13053 4755 JMS I (DELETE /DELETE OUTPUT FILE 13054 1761 TAD I (MPARAM+2 /IS /Y ON? 13055 7710 SPA CLA 13056 5754 JMP I (SYSCOP /YEP..TRANSFER SYSTEM HEAD 13057 1757 TAD I (MPARAM 13060 0353 AND (301 /"E","F" AND "L" SWITCHES 13061 7440 SZA /ANY ONE OF THEM ON? /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 PAGE 18-1 13062 5752 JMP I (DIR /YES - LIST A DIRECTORY 13063 1757 TAD I (MPARAM 13064 7006 RTL 13065 0363 AND (40 /"I" SWITCH ROTATED TWO LEFT 13066 7640 SZA CLA 13067 5751 JMP I (IMAGE /IMAGE MODE TRANSFER 13070 1750 TAD I (7617 /MUST PRESERVE THE LINK 13071 7650 SNA CLA /V3 IMAGE MODE ALLOWS NO INPUT FILE 13072 5223 JMP PIP /TERMINATE HERE IF NO INPUT SIDE 13073 7630 SZL CLA /"B" SWITCH IN LINK 13074 5747 JMP I (BINARY /BINARY MODE TRANSFER /DEFAULT MODE OF TRANSFER IS ASCII 13075 1764 ASCII, TAD I (MPARAM+1 13076 0233 AND L20 13077 3333 DCA COPTSW 13100 1333 TAD COPTSW 13101 4746 JMS I (ASCI2 /TEST FOR OUTPUT DEVICE 13102 4745 JMS I (OUTOPN 13103 4744 JMS I (IOPEN /OPEN THE INPUT FILES 13104 3314 DCA AEOFFG /ZERO THE END-OF-FILE FLAG 13105 4743 JMS I (LEADER 13106 5773 JMP I (ASCIGO /ENTRY ON END OF INPUT 13107 7710 ASCEOF, SPA CLA /WAS IT END OF INPUT OR AN INPUT ERROR? 13110 4742 PER4, JMS I (PIPERR 13111 0004 4 13112 2314 ISZ AEOFFG /SET END-OF-INPUT FLAG 13113 5204 JMP EOL /PROCESS LAST LINE (IF ANY) 13114 0000 AEOFFG, 0 /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 PAGE 19 /SUBROUTINE TO OUTPUT RUBOUTS AFTER FORM CONTROL CHARACTERS 13115 0000 RUBOUT, 0 /UNLESS OUTPUT IS TO A DIRECTORY DEVICE 13116 3020 DCA TEMP /STORE COUNT 13117 4741 JMS I (OTYPE /GET TYPE OF OUTPUT DEVICE 13120 7710 SPA CLA 13121 5715 JMP I RUBOUT /DIRECTORY DEVICE - DON'T BOTHER 13122 1021 RBTLP, TAD CHAR 13123 1340 TAD (-214 13124 7640 SZA CLA /IS THE FORM CONTROL CHAR A FORM-FEED? 13125 7240 STA /NO - RUBOUT 13126 1356 TAD (400 /YES - OUTPUT BLANK TAPE INSTEAD 13127 3410 DCA I XR /PUT IN BUFFER 13130 2020 ISZ TEMP 13131 5322 JMP RBTLP /LOOP FOR THE REQUISITE COUNT 13132 5715 JMP I RUBOUT 13133 0000 COPTSW, 0 13134 7710 DEND, SPA CLA 13135 5310 JMP PER4 13136 5221 JMP ACLOSE 13140 7564 13141 2473 13142 3521 13143 3533 13144 2001 13145 3343 13146 6466 13147 4401 13150 7617 13151 2601 13152 2540 13153 0301 13154 6001 13155 3401 13156 0400 13157 7643 13160 3435 13161 7645 13162 5200 13163 0040 13164 7644 13165 2127 13166 5664 13167 0200 13170 7605 13171 7642 13172 2310 13173 3200 13174 6531 13175 2410 13176 6600 13177 2507 3200 PAGE /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 PAGE 20 3200 *3200 /ASCII PROCESSOR CONTINUED 13200 1377 ASCIGO, TAD (ABUF-2 13201 3010 DCA XR 13202 3410 DCA I XR /PROTECT AGAINST NULL LINE WITH "T" OPTION 13203 3342 DCA COLCT /ZERO COLUMN COUNTER FOR TAB CONVERSION 13204 4776 ACHLP, JMS I (ICHAR /GET A CHARACTER 13205 5775 JMP I (ASCEOF /END OF INPUT OR WORSE 13206 0374 AND (177 /MASK OUT PARITY BIT 13207 7440 SZA /IGNORE BLANK TAPE AND LEADER/TRAILER 13210 1373 TAD (-177 13211 7450 SNA 13212 5204 JMP ACHLP /DITTO RUBOUTS 13213 1372 TAD (177-32 /V3C 13214 7450 SNA 13215 5771 JMP I (ASCPTCH /7-BIT ^Z CHECK 13216 1370 TAD (232 /FORCE COLUMN 8 ON 13217 3021 DCA CHAR 13220 1021 TAD CHAR 13221 1367 TAD (-216 13222 7100 CLL 13223 1350 TAD ASCI5 13224 7420 SNL /IS THE CHARACTER A FORM CONTROL CHARACTER? 13225 5237 JMP CINSRT /NO 13226 1231 TAD ASCJMP /YES - GO TO APPROPRIATE ROUTINE 13227 3230 DCA .+1 13230 7402 HLT 13231 5632 ASCJMP, JMP I .+1 13232 3251 TAB 13233 3002 LFEED 13234 3271 VTAB 13235 3311 FFEED 13236 3321 CARRET 13237 7600 CINSRT, 7600 /GRP 2 CLA 13240 1021 TAD CHAR 13241 3410 ADCAXR, DCA I XR /STORE THE CHARACTER IN THE LINE BUFFER 13242 2342 ISZ COLCT /ALWAYS BUMP THE COLUMN POINTER 13243 1010 TESTXR, TAD XR 13244 1366 TAD (-ABUF-226 13245 7710 SPA CLA /HAS THE BUFFER OVERFLOWED? 13246 5204 JMP ACHLP /NO - GET NEXT CHARACTER 13247 4765 JMS I (PIPERR 13250 0001 1 /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 PAGE 21 13251 1764 TAB, TAD I (COPTSW 13252 7650 SNA CLA /DO WE WANT TO CONVERT? 13253 5264 JMP TABRBT /NO 13254 1363 TABLP, TAD (240 13255 3410 DCA I XR /OUTPUT A SPACE 13256 2342 ISZ COLCT 13257 1342 TAD COLCT 13260 0362 AND (7 13261 7640 SZA CLA /IS THE COLUMN COUNTER A MULTIPLE OF 8? 13262 5254 JMP TABLP /NOT YET 13263 5243 JMP TESTXR /YES - CHECK BUFFER OVERFLOW 13264 1021 TABRBT, TAD CHAR 13265 3410 DCA I XR 13266 7240 CLA CMA 13267 4761 JMS I (RUBOUT /TWO RUBOUTS FOLLOW A TAB 13270 5243 JMP TESTXR /CHECK FOR BUFFER OVERFLOW 13271 1764 VTAB, TAD I (COPTSW 13272 7640 SZA CLA /SHOULD WE CONVERT? 13273 5302 JMP VTLF /YES 13274 1021 TAD CHAR 13275 3410 DCA I XR 13276 1360 TAD (-4 13277 4761 JMS I (RUBOUT /FOUR RUBOUTS AFTER A VERTICAL TAB 13300 5757 JMP I (EOL 13301 1360 FFLF, TAD (-4 /NINE LINE FEED SIMULATE A FORM FEED 13302 1356 VTLF, TAD (-5 /FIVE LINE FEEDS SIMULATE A VERTICAL TAB 13303 3020 DCA TEMP 13304 1355 TAD (212 13305 3410 DCA I XR 13306 2020 ISZ TEMP 13307 5304 JMP .-3 13310 5757 JMP I (EOL /FORM FEED AND VERTICAL TAB ARE LINE ENDERS /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 PAGE 22 13311 1764 FFEED, TAD I (COPTSW 13312 7640 SZA CLA /SHOULD WE CONVERT? 13313 5301 JMP FFLF /YES 13314 1021 TAD CHAR 13315 3410 DCA I XR 13316 1354 TAD (-11 /NINE RUBOUTS AFTER A FORM FEED 13317 4761 JMS I (RUBOUT 13320 5757 JMP I (EOL 13321 1753 CARRET, TAD I (MPARAM 13322 7006 RTL 13323 7700 SMA CLA /"C" SWITCH MEANS DELETE TRAILING BLANKS FROM CARDS 13324 5337 JMP NOTOPT /IT WASN'T ON 13325 1010 TOPT, TAD XR 13326 3020 DCA TEMP 13327 1420 TAD I TEMP 13330 1352 TAD (-240 13331 7640 SZA CLA /WAS THE LAST CHAR ON THE LINE A SPACE? 13332 5337 JMP NOTOPT /NO 13333 7240 CLA CMA 13334 1010 TAD XR /YES - BACK UP THE LINE POINTER 13335 3010 DCA XR 13336 5325 JMP TOPT 13337 1021 NOTOPT, TAD CHAR 13340 3410 DCA I XR /STORE THE CARRIAGE RETURN IN THE BUFFER 13341 5243 JMP TESTXR /CARRIAGE RETURN IS NOT A LINE TERMINATOR 13342 0000 COLCT, 0 13343 0000 OUTOPN, 0 13344 4751 JMS I (OOPEN 13345 7700 SMA CLA 13346 5743 JMP I OUTOPN 13347 4765 JMS I (PIPERR 13350 0005 ASCI5, 5 13351 2200 13352 7540 13353 7643 13354 7767 13355 0212 13356 7773 13357 3004 13360 7774 13361 3115 13362 0007 13363 0240 13364 3133 13365 3521 13366 0751 13367 7562 13370 0232 13371 6536 13372 0145 13373 7601 13374 0177 13375 3107 13376 2014 /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 PAGE 22-1 13377 6577 3400 PAGE /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 PAGE 23 /SUBROUTINES CALLED BY THE REST OF PIP 13400 0770 K770, 770 /** DON'T MOVE THIS CONSTANT 13401 0000 DELETE, 0 13402 1322 TAD P7600 13403 3223 DCA DPFILE 13404 7346 CLA CLL CMA RTL 13405 3021 DCA CHAR /MAXIMUM OF THREE OUTPUT FILES 13406 1377 DELOOP, TAD (7201 13407 3215 DCA DLHNDL 13410 1623 TAD I DPFILE 13411 7450 SNA /DOES THIS FILE EXIST? 13412 5601 JMP I DELETE /THAT'S ALL 13413 4735 JMS I C200 13414 0001 1 /ASSIGN HANDLER FOR THE DELETION 13415 0000 DLHNDL, 0 13416 7402 HLT 13417 1623 TAD I DPFILE /RELOAD DEVICE NUMBER FOR DELETE 13420 2223 ISZ DPFILE /BUMP DPFILE TO POINT TO THE FILE NAME 13421 4735 JMS I C200 /DEVICE NUMBER IN AC 13422 0004 DP4, 4 /CLOSE - USED AS DELETE IN THIS CASE 13423 0000 DPFILE, 0 /POINTER TO FILE NAME 13424 0000 0 /ZERO LENGTH FOR DELETE 13425 4776 JMS I (PIPERR /FILE WASN'T THERE TO BE DELETED 13426 0003 3 13427 1223 TAD DPFILE 13430 1222 TAD DP4 13431 3223 DCA DPFILE 13432 2021 ISZ CHAR 13433 5206 JMP DELOOP /DELETE AS MANY FILES AS HE LISTED(UP TO 3) 13434 5601 JMP I DELETE /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 PAGE 24 13435 0000 DZERO, 0 /SUBROUTINE TO ZERO THE DIRECTORY OF THE /FIRST OUTPUT DEVICE 13436 4775 JMS I (OTYPE 13437 7106 CLL RTL 13440 7430 SZL /IS DEVICE READ-ONLY? 13441 5314 JMP OZERR /YES - ERROR 13442 7012 RTR 13443 7500 SMA /FILE STRUCTURED HAVE 4000 BIT ON 13444 5317 JMP NONDIR /NON DIRECTORY DEVICE 13445 0200 AND K770 /MASK OUT DEVICE TYPE 13446 7112 CLL RTR 13447 7010 RAR 13450 1374 TAD (DEVLEN /USE IT TO INDEX A TABLE OF DEVICE LENGTHS 13451 3321 DCA PIPERR 13452 1377 TAD (OUDEVH+1 13453 3257 DCA OZHNDL 13454 1722 TAD I P7600 13455 4735 JMS I C200 13456 0001 1 /ASSIGN DEVICE, FETCH HANDLER 13457 0000 OZHNDL, 0 13460 7402 HLT 13461 1721 TAD I PIPERR 13462 7450 SNA /IS THE LENGTH ZERO? 13463 4773 JMS I (DVREDE /IF LENGTH ZERO GO "READ LENGTH" 13464 3321 DCA PIPERR /STORE LENGTH 13465 4772 JMS I (CONFRM /ASK IF HE'S SURE 13466 5534 SURE /V3 13467 1771 TAD I (MPARAM+2 /IF /Y ON, DO SYSTEM ZERO 13470 7710 SPA CLA 13471 5275 JMP ZRO70 13472 1257 TAD OZHNDL /BUT IF NOT, CHECK FOR SYSTEM ZERO 13473 1370 TAD (-7607 13474 7650 SNA CLA 13475 1367 ZRO70, TAD (61 13476 1366 TAD (7 /NOT SYSTEM FILES BEGIN AT 7 13477 3765 DCA I (DFORG 13500 3764 DCA I (SQFLAG /AND CLEAR OUT SQUISHES 13501 1321 TAD PIPERR 13502 1765 TAD I (DFORG 13503 3763 DCA I (DLENGT 13504 4762 JMS I (GETEQ 13505 3761 DCA I (DWASTE /DEFINE # OF WASTE WORDS 13506 3760 DCA I (MPARAM+3 /KILL = OPTION FOR FUTURE /I TRANSFERS 13507 6202 CIF 0 13510 4657 JMS I OZHNDL 13511 5410 5410 /V3 OUTPUT 6 BLOCKS FROM FIELD 1 13512 6200 DIRECT 13513 0001 1 /ALL DIRECTORIES ARE IN RECORD 1 13514 4776 OZERR, JMS I (PIPERR /ERROR WHILE ZEROING DIRECTORY 13515 0002 2 13516 3007 DCA OLDDIR /ZERO DIRECTORY POINTER TO FORCE A NEW READ 13517 7200 NONDIR, CLA /NON DIRECTORY RETURN 13520 5635 JMP I DZERO /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 PAGE 25 13521 0000 PIPERR, 0 13522 7600 P7600, 7600 /V3 CLA 13523 4757 JMS I (SRSTOR /RESET 07600! 13524 6211 CDF 10 /JUST IN CASE 13525 1721 TAD I PIPERR /GET ARG 13526 1356 TAD (ERRTBL 13527 3020 DCA TEMP 13530 1420 TAD I TEMP 13531 4755 JMS I (ERPRNT 13532 5754 JMP I (PIP /RESTART PIP 13533 0000 LEADER, 0 13534 4775 JMS I (OTYPE 13535 0200 C200, AND K770 /GET THE TYPE OF THE OUTPUT DEVICE 13536 1353 TAD (-PTP /IS IT A PAPER TAPE PUNCH? 13537 7640 SZA CLA 13540 5733 JMP I LEADER /NO 13541 1322 TAD P7600 13542 3020 DCA TEMP 13543 4752 JMS I (OCHAR /PUT OUT SOME LEADER 13544 5751 JMP I (AOUERR 13545 2020 ISZ TEMP 13546 5343 JMP .-3 13547 5733 JMP I LEADER 13551 6531 13552 2410 13553 7760 13554 3023 13555 4600 13556 4737 13557 5664 13560 7646 13561 6204 13562 6332 13563 6206 13564 0026 13565 6201 13566 0007 13567 0061 13570 0171 13571 7645 13572 3730 13573 6341 13574 3600 13575 2473 13576 3521 13577 7201 3600 PAGE /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 PAGE 26 /TABLE OF DEVICE LENGTHS FOR /Z OPTION /I.E. THE ONE THAT IS IN 'PIP' AT 13600 /LAST UPDATE 1-JAN-1980 13600 0000 DEVLEN, 0000 /0:TTY 13601 0000 0000 /1:PTR 13602 0000 0000 /2:PTP 13603 0000 0000 /3:CDR 13604 0000 0000 /4:LPT 13605 1520 1520 /5:RK08 (1520= - DECIMAL 3248) 13606 6001 6001 /6: RF08 IN VARIOUS SIZES 13607 4001 4001 /7: " 13610 2001 2001 /10:" 13611 0001 0001 /11:"(CHEATS A BLOCK ON LARGEST TO KEEP IT NON-ZERO) 13612 7601 7601 /12: DF32 IN VARIOUS SIZES 13613 7401 7401 /13:" 13614 7201 7201 /14:" 13615 7001 7001 /15:"(CHEATS A BLOCK TO AVOID HARDWARE TROUBLE) 13616 6437 6437 /16:TC08 DECTAPE 13617 6437 6437 /17:LINCTAPE 13620 0000 0000 /20: MAGTAPE 13621 6437 6437 /21: TD8E 13622 0000 0000 /22: BAT: BATCH HANDLER 13623 1520 1520 /23: 1/2 OF AN RK8E 13624 0000 0000 /24: NULL: NULL HANDLER 13625 7022 7022 /25: RX01 FLOPPY DISK 13626 0017 0017 /26: RL01 A,B BIG 13627 0000 0000 /27: TA8E CASSETTE 13630 0000 0000 /30: PDP-12 SCOPE AND TEK DISPLAY 13631 4027 4027 /31: RL01 C SMALL 13632 0000 0000 /32: NEW RX MUST BE ZERO TO EXAMINE MEDIA 13633 7600 7600 /33: VX EXT.MEM. PLATTER #1 13634 7400 7400 /34: VX EXT.MEM. PLATTER #1,2 13635 7200 7200 /35: VX EXT.MEM. PLATTER #1,2,3 13636 0000 0000 /36: DUMP 13637 7000 7000 /37: TU58 DECTAPE II (6-BIT BYTES) 13640 1520 1520 /40: SYS. IND. MOD43 DISK 13641 6556 6556 /41: RB01 1.5 DENSITY FLOPPY - INTERLEAVE 2 13642 6556 6556 /42: RB07 1.5 DENSITY FLOPPY - INTERLEAVE 4 13643 0000 ZBLOCK 5 /USER DEVICES 13650 0000 0 /50: MULTI8 VIRTUAL DEV 13651 0000 0 /51: " 13652 0000 0 /52: " 13653 0000 0 /53: " 13654 0000 0 /54: " 13655 0000 0 /55: " 13656 0000 0 /56: " 13657 0000 0 /57: " 13660 0000 0000 /60: ASYNCHRONOUS COMMUNICATION 13661 0000 ZBLOCK 17 /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 PAGE 27 13700 0000 FIXLEN, 0 /ROUTINE TO ESTIMATE OUTPUT FILE LENGTH 13701 1777 TAD I (7600 13702 0376 AND (7760 13703 7640 SZA CLA /DID THE USER PROVIDE AN ESTIMATE? 13704 5700 JMP I FIXLEN /YES - USE IT 13705 3021 DCA CHAR 13706 1375 TAD (7617 13707 3020 DCA TEMP 13710 1420 FIXLP, TAD I TEMP /GET NEXT INPUT FILE 13711 7450 SNA 13712 5324 JMP FIXOVR /NO MORE INPUT FILES 13713 0376 AND (7760 13714 7141 CIA CLL /GET LENGTH AS A POSITIVE NUMBER /(LENGTH OF ZERO TURNS LINK ON) 13715 1021 TAD CHAR 13716 3021 DCA CHAR /UPDATE CUMULATIVE LENGTH 13717 7630 SZL CLA /DID CUMULATIVE LENGTH OVERFLOW 256 BLOCKS? 13720 5700 JMP I FIXLEN /YES - CAN'T ESTIMATE IT 13721 2020 ISZ TEMP 13722 2020 ISZ TEMP 13723 5310 JMP FIXLP 13724 1021 FIXOVR, TAD CHAR 13725 1777 TAD I (7600 13726 3777 DCA I (7600 /STICK LENGTH IN OUTPUT FILE DESCRIPTOR 13727 5700 JMP I FIXLEN /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 PAGE 28 13730 0000 CONFRM, 0 13731 1774 TAD I (MPARAM+1 13732 7006 RTL /'O' BIT TO SIGN 13733 7710 SPA CLA 13734 5354 JMP GOTCON /V3 'O' MEANS OK, ASSUME 'YES' 13735 1730 TAD I CONFRM /V3 13736 4773 JMS I (ERPRNT 13737 6031 KSF 13740 5337 JMP .-1 13741 4772 JMS I (CTCTST 13742 6036 KRB /LOOK AT HIS REPLY 13743 3300 DCA FIXLEN 13744 1300 TAD FIXLEN 13745 4771 JMS I (TTYOUT /ECHO IT 13746 1300 TAD FIXLEN 13747 0370 AND (137 /ALLOW LOWER CASE 13750 1367 TAD (-"Y!7600 13751 7440 SZA /IS IT YES? 13752 1366 TAD ("Y-"J 13753 7650 SNA CLA /ODER IST ES JA? 13754 2026 GOTCON, ISZ SQFLAG /YES: SET SQFLAG TO 1 (NEEDED 1 LATER) 13755 1026 TAD SQFLAG 13756 7650 SNA CLA 13757 5765 JMP I (PIP 13760 2330 ISZ CONFRM 13761 5730 JMP I CONFRM 13765 3023 13766 0017 13767 7647 13770 0137 13771 5000 13772 2507 13773 4600 13774 7644 13775 7617 13776 7760 13777 7600 4000 PAGE /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 PAGE 29 /DIRECTORY PRINTER FOR PIP 14000 4777 DIRPRE, JMS I (OUTOPN /OPEN THE OUTPUT FILE 14001 1376 TAD (ABUF 14002 3021 DCA CHAR /ABUF WILL BE A TEMPORARY ARRAY OF STARTING FILES 14003 1375 TAD (7617 14004 3020 DCA TEMP 14005 1775 TAD I (7617 14006 7450 SNA 14007 4774 JMS I (DSKNUM 14010 3775 DCA I (7617 /DEFAULT DIRECTORY IS DSK: 14011 1420 DFUJLP, TAD I TEMP 14012 7450 SNA /ARE WE THROUGH WITH THE INPUT DEVICES? 14013 5240 JMP GETDIR /YES 14014 0373 AND (17 14015 3420 DCA I TEMP /ONLY THE DEVICE NUMBER IS IMPORTANT 14016 1420 TAD I TEMP 14017 1372 TAD (DCB-1 14020 3250 DCA PRWD 14021 7326 CLA CLL CML RTL 14022 1020 TAD TEMP 14023 3022 DCA INFPTR /THIS SERVES NO FUNCTION EXCEPT IMPROVING ERROR MESSAGES 14024 1650 TAD I PRWD 14025 7700 SMA CLA /IS THE DEVICE A DIRECTORY DEVICE? 14026 4771 JMS I (PIPERR /NO 14027 0006 6 14030 2020 ISZ TEMP 14031 1420 TAD I TEMP 14032 3421 DCA I CHAR /SAVE THE STARTING BLOCK NUMBER 14033 7201 CLA IAC 14034 3420 DCA I TEMP /READ FROM THE DIRECTORY 14035 2020 ISZ TEMP 14036 2021 ISZ CHAR 14037 5211 JMP DFUJLP 14040 1376 GETDIR, TAD (ABUF 14041 3021 DCA CHAR 14042 4342 JMS PCRLF 14043 1770 TAD I (MDATE 14044 4767 JMS I (PDATE 14045 4342 JMS PCRLF 14046 4766 JMS I (IOPEN /RESET POINTERS - WERE GONNA FAKE OUT THOSE "GENERAL" /ROUTINES 14047 5765 JMP I (NXTDIR /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 PAGE 30 14050 0000 PRWD, 0 /ROUTINE TO PRINT SIXBIT TEXT 14051 7450 SNA /IS COUNT ZERO? 14052 7040 CMA /MAKE IT ONE 14053 3267 DCA PRCT /STORE COUNT 14054 1650 PRWDLP, TAD I PRWD 14055 7012 PR212, RTR 14056 7012 RTR 14057 7012 RTR 14060 4270 JMS PR6BIT 14061 1650 TAD I PRWD 14062 4270 JMS PR6BIT 14063 2250 ISZ PRWD 14064 2267 ISZ PRCT 14065 5254 JMP PRWDLP 14066 5650 JMP I PRWD 14067 0000 PRCT, 0 14070 0000 PR6BIT, 0 14071 0364 AND (77 14072 7440 SZA 14073 1363 TAD (240 /V3 14074 0364 AND (77 /V3 14075 1363 TAD (240 /V3 14076 4762 JMS I (OCHAR 14077 5761 JMP I (AOUERR 14100 5670 JMP I PR6BIT /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 PAGE 31 14101 0000 PRNUM, 0 /REDO THIS FOR BETTER RESULTS 14102 3342 DCA PCRLF /SAVE VALUE 14103 1701 TAD I PRNUM 14104 7041 CIA 14105 3250 DCA PRWD /SAVE BLANK COUNT (OPTIONAL) 14106 1360 TAD (TAD PWRTEN 14107 3312 DCA PRNMLP /INITIALIZE 14110 3270 DCA PR6BIT /CLEAR PRINT FLAG 14111 3356 DCA DIGIT /CLEAR QUOTIENT 14112 1352 PRNMLP, TAD PWRTEN /**INCREMENTED** 14113 7450 SNA 14114 5701 JMP I PRNUM /DONE 14115 7100 CLL 14116 1342 TAD PCRLF 14117 7420 SNL 14120 5324 JMP PRXX60 /TOO MUCH 14121 3342 DCA PCRLF 14122 2356 ISZ DIGIT /FORM QUOTIENT 14123 5312 JMP PRNMLP 14124 7360 PRXX60, STA STL /THIS INSTRUCTION ENDS IN '60' 14125 0356 AND DIGIT 14126 2312 ISZ PRNMLP /ADJUST DIVISOR 14127 2270 ISZ PR6BIT /TEST PRINT FLAG 14130 7440 SZA 14131 5334 JMP .+3 /PRINT THE RESULT 14132 2250 ISZ PRWD /TEST BLANK COUNT 14133 5340 JMP PRBLNK 14134 1324 TAD PRXX60 /CONVERT TO ASCII 14135 4270 JMS PR6BIT 14136 7040 CMA 14137 5310 JMP PRNMLP-2 /REPEAT 14140 4270 PRBLNK, JMS PR6BIT /CLEARED BY PDATE 14141 5310 JMP PRNMLP-2 /TO SUPPRESS BLANKS /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 PAGE 32 14142 0000 PCRLF, 0 14143 1357 TAD (215 14144 4762 JMS I (OCHAR 14145 5761 JMP I (AOUERR 14146 1255 TAD PR212 14147 4762 JMS I (OCHAR 14150 5761 JMP I (AOUERR 14151 5742 JMP I PCRLF 14152 6030 PWRTEN, -1750;-144;-12;-1 /V3 14153 7634 14154 7766 14155 7777 14156 0000 DIGIT, 0 4270 JMSPR6=JMS PR6BIT /USEFUL LATER ON 14157 0215 14160 1352 14161 6531 14162 2410 14163 0240 14164 0077 14165 4200 14166 2001 14167 4650 14170 7666 14171 3521 14172 7757 14173 0017 14174 4705 14175 7617 14176 6601 14177 3343 4200 PAGE /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 PAGE 33 /MAIN DIRECTORY PRINTING LOOP 14200 4777 NXTDIR, JMS I (ICHAR /FAKE, FAKE 14201 5776 JMP I (DEND 14202 7200 CLA /WE DON'T WANT THE CHARACTER 14203 3035 DCA ECOUNT 14204 1375 TAD (INBUF-1 /WE WANT THE BUFFER! 14205 3010 NEWSEG, DCA XR 14206 6201 CDF 0 14207 1410 TAD I XR 14210 3030 DCA DCOUNT /NUMBER OF ENTRIES 14211 1030 TAD DCOUNT 14212 7100 CLL 14213 1374 TAD (100 14214 7620 SNL CLA 14215 4773 JMS I (PIPERR 14216 0011 11 14217 1410 TAD I XR 14220 3025 DCA BLOKNO /FIRST BLOCK OF FILE STORAGE 14221 1410 TAD I XR 14222 3031 DCA DLINK /LINK TO NEXT SEGMENT 14223 2010 ISZ XR /BUMP XR PAST FLAG WORD 14224 1410 TAD I XR 14225 3032 DCA WASTE 14226 6201 NAMELP, CDF 0 14227 1410 TAD I XR 14230 7450 SNA /WHAT TYPE OF ENTRY IS IT? 14231 5325 JMP DEMPTY /A FREE FILE 14232 3264 DCA NAME1 /A PERMENANT OR TENTATIVE FILE 14233 1410 TAD I XR 14234 3265 DCA NAME2 14235 1410 TAD I XR 14236 3266 DCA NAME3 14237 1410 TAD I XR 14240 3275 DCA NAME4 14241 1410 TAD I XR 14242 3033 DCA DDATE 14243 1032 TAD WASTE /COMPENSATE FOR THE DATE INCREMENT 14244 7040 CMA /AND THE WASTE WORDS 14245 1010 TAD XR 14246 3010 DCA XR 14247 1410 TAD I XR 14250 7450 SNA /IS IT A TENTATIVE FILE? 14251 5312 JMP ADDLEN+1 /YES - TENTATIVE FILES ARE ALWAYS IGNORED 14252 7041 CIA 14253 3024 DCA FLENGT /NO - STORE THE LENGTH 14254 6211 CDF 10 14255 1421 TAD I CHAR /GET THE STARTING FILE FOR THIS LISTING 14256 7141 CIA CLL 14257 1025 TAD BLOKNO 14260 7620 SNL CLA /ARE WE THERE YET? 14261 5311 JMP ADDLEN /NO - KEEP GOING 14262 7346 CLA CLL CMA RTL 14263 4772 JMS I (PRWD /PRINT THREE WORDS 14264 0000 NAME1, 0 /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 PAGE 33-1 14265 0000 NAME2, 0 14266 0000 NAME3, 0 14267 1275 TAD NAME4 14270 7650 SNA CLA /IS THERE AN EXTENSION? 14271 1371 TAD (-16 /NO - PRINT A BLANK 14272 1370 TAD (56 /YES - PRINT A PERIOD 14273 4767 JMS I (PR6BIT 14274 4772 JMS I (PRWD 14275 0000 NAME4, 0 /ZERO PRINTS AS TWO MORE BLANKS 14276 1027 PRLNGT, TAD DTYPE 14277 0374 AND (100 14300 7640 SZA CLA /WAS THE LISTING SWITCH /F? 14301 5310 JMP PRTCRL /YES - DON'T PRINT LENGTH 14302 1024 TAD FLENGT 14303 4766 JMS I (PRNUM 14304 1032 TAD WASTE 14305 7640 SZA CLA 14306 1033 TAD DDATE 14307 4765 JMS I (PDATE /PRINT THE CREATION DATE OF THE FILE 14310 4764 PRTCRL, JMS I (PCRLF 14311 1024 ADDLEN, TAD FLENGT 14312 1025 TAD BLOKNO 14313 3025 DCA BLOKNO /UPDATE BLOCK NUMBER 14314 2030 ISZ DCOUNT 14315 5226 JMP NAMELP /LOOP UNTIL ALL FILES ARE PROCESSED 14316 1031 TAD DLINK 14317 7650 SNA CLA /MULTI-SEGMENT DIRECTORY? 14320 5352 JMP ENDDIR /NO - FINISH UP 14321 1010 TAD XR 14322 0363 AND (7400 14323 1362 TAD (377 /BUMP XR TO NEXT BLOCK 14324 5205 JMP NEWSEG /PROCESS NEXT LINK /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 PAGE 34 14325 1410 DEMPTY, TAD I XR 14326 7041 CIA 14327 3024 DCA FLENGT /STORE LENGTH OF FREE ENTRY 14330 6211 CDF 10 14331 1024 TAD FLENGT 14332 1035 TAD ECOUNT 14333 3035 DCA ECOUNT /BUMP COUNT OF FREE BLOCKS 14334 1027 TAD DTYPE 14335 0361 AND (200 14336 7650 SNA CLA /IS THE /E SWITCH ON? 14337 5311 JMP ADDLEN /NO - DON'T LIST FREE FILES 14340 1360 TAD (-4 14341 4772 JMS I (PRWD IFNDEF GERMAN < TEXT /<EMPTY>/> 14342 7406 IFDEF GERMAN < TEXT /<FREI> /> 14343 2205 14344 1176 14345 4000 14346 4767 JMS I (PR6BIT 14347 1024 TAD FLENGT 14350 4766 JMS I (PRNUM 14351 5310 JMP PRTCRL 14352 2021 ENDDIR, ISZ CHAR /BUMP TEMP ARRAY TO NEXT ENTRY 14353 1035 TAD ECOUNT 14354 4757 JMS I (ENDFUJ 14355 5200 JMP NXTDIR 14357 2620 14360 7774 14361 0200 14362 0377 14363 7400 14364 4142 14365 4650 14366 4101 14367 4070 14370 0056 14371 7762 14372 4050 14373 3521 14374 0100 14375 2777 14376 3134 14377 2014 4400 PAGE /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 PAGE 35 /BINARY MODE PROCESSOR FOR PIP 14400 0360 BIN360, 360 14401 4777 BINARY, JMS I (FIXLEN 14402 4776 JMS I (OUTOPN 14403 4775 JMS I (IOPEN 14404 4774 JMS I (LEADER /PUT OUT BLANK TAPE IF HS PUNCH OUTPUT 14405 4251 JMS LTCODE 14406 4773 NEWTAP, JMS I (ICHAR 14407 5317 JMP BEOF /END OF FILE ON INPUT 14410 7450 SNA 14411 5206 JMP NEWTAP /BLANK TAPE - KEEP GOING 14412 1307 TAD BN7600 14413 7640 SZA CLA 14414 5206 JMP NEWTAP 14415 4773 JMS I (ICHAR 14416 5317 JMP BEOF 14417 1307 TAD BN7600 14420 7450 SNA 14421 5215 JMP .-4 14422 1225 TAD BIN200 14423 3021 DCA CHAR 14424 1021 TAD CHAR 14425 0200 BIN200, AND BIN360 14426 1372 TAD (-240 /CHECK TYPE OF TAPE 14427 7450 SNA /IS IT RELOCATABLE? 14430 5266 JMP RELBIN /YES 14431 1371 TAD (-40 /IF A FIELD SETTING, IT'S ABSOLUTE 14432 0370 AND (7700 14433 7450 SNA 14434 5240 JMP ABSLUT 14435 1225 TAD BIN200 /CHECK FOR ORIGIN ALSO 14436 7640 SZA CLA 14437 5206 JMP NEWTAP /NOTHING..NEXT FRAME 14440 7240 ABSLUT, CLA CMA 14441 4251 JMS LTCODE 14442 4323 ABSBIN, JMS RCOPY1 /COPY THIS FRAME AND READ NEXT 14443 1307 TAD BN7600 14444 7640 BNM140, SZA CLA /IS IT TRAILER? 14445 5242 JMP ABSBIN /NO - KEEP GOING 14446 7240 BEOT, CLA CMA /END OF TAPE 14447 4251 JMS LTCODE /PUT OUT SHORT LEADER/TRAILER 14450 5206 JMP NEWTAP /GET NEXT TAPE /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 PAGE 36 14451 0000 LTCODE, 0 /SUBROUTINE TO PUNCH 200 CODE 14452 7500 SMA /SHORT LEADER/TRAILER? 14453 4767 JMS I (OTYPE 14454 7710 SPA CLA /DIRECTORY DEVICE? 14455 1366 TAD (70 /YES 14456 1370 TAD (-100 14457 3020 DCA TEMP 14460 1225 LTLOOP, TAD BIN200 14461 4765 JMS I (OCHAR /OUTPUT 64 OR 8 FRAMES OF L/T CODE 14462 5764 JMP I (AOUERR 14463 2020 ISZ TEMP 14464 5260 JMP LTLOOP 14465 5651 JMP I LTCODE 14466 1363 RELBIN, TAD (SKP 14467 3762 DCA I (INCTZF /DISABLE CONTROL-Z CHECKING ON INPUT 14470 7240 CLA CMA 14471 4251 JMS LTCODE /PUT OUT SHORT LEADER/TRAILER 14472 1021 RELLP, TAD CHAR 14473 7012 RTR 14474 7012 RTR 14475 0361 AND (17 14476 1360 TAD (RELTBL 14477 3020 DCA TEMP 14500 1420 TAD I TEMP /GET DATA WORD FOR THIS FRAME 14501 7540 SMA SZA /POSITIVE MEANS SPECIAL OR ERROR 14502 5341 JMP RELERR 14503 7450 RELSNA, SNA 14504 5313 JMP RELEND /ZERO MEANS CHECKSUM FRAME 14505 3020 DCA TEMP /NEGATIVE MEANS COUNT OF NUMBER OF SLAVE FRAMES 14506 4323 JMS RCOPY1 14507 7600 BN7600, 7600 14510 2020 ISZ TEMP 14511 5306 JMP .-3 /COPY THIS FRAME AND ALL SLAVE FRAMES 14512 5272 JMP RELLP /GET NEXT CONTROL FRAME 14513 4323 RELEND, JMS RCOPY1 /COPY THE FIRST FRAME OF THE CHECKSUM 14514 4765 JMS I (OCHAR 14515 5764 JMP I (AOUERR /OUTPUT THE SECOND FRAME 14516 5246 JMP BEOT /END TAPE - START NEXT ONE 14517 4251 BEOF, JMS LTCODE 14520 4757 JMS I (OCLOSE 14521 5764 JMP I (AOUERR 14522 5756 JMP I (PIP /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 PAGE 37 14523 0000 RCOPY1, 0 /ROUTINE TO ADVANCE "CHAR" TO NEXT INPUT CHARACTER 14524 1021 TAD CHAR 14525 4765 JMS I (OCHAR 14526 5764 JMP I (AOUERR 14527 4773 JMS I (ICHAR 14530 5334 JMP INEFER 14531 3021 DCA CHAR 14532 1021 TAD CHAR 14533 5723 JMP I RCOPY1 14534 7700 INEFER, SMA CLA /DETECT FATALITIES 14535 4755 JMS I (PIPERR 14536 0007 7 14537 4755 JMS I (PIPERR /A REAL BAD READ 14540 0004 4 14541 7110 RELERR, CLL RAR 14542 7640 SZA CLA /CODE OF 1 MEANS SPECIAL 14543 4755 JMS I (PIPERR /ILLEGAL RELOCATABLE INPUT 14544 0010 10 14545 4323 JMS RCOPY1 14546 7166 CLL CML CMA RTL /MULTIPLY NAME COUNT BY -6 (APPROXIMATELY) 14547 1021 TAD CHAR 14550 7124 CLL CML RAL /(ACTUALLY THIS PRODUCES -6X-1 WHICH IS WHAT WE WANT) 14551 5303 JMP RELSNA 14555 3521 14556 3023 14557 2310 14560 4717 14561 0017 14562 2127 14563 7410 14564 6531 14565 2410 14566 0070 14567 2473 14570 7700 14571 7740 14572 7540 14573 2014 14574 3533 14575 2001 14576 3343 14577 3700 4600 PAGE /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 PAGE 38 14600 0000 ERPRNT, 0 /ERROR MESSAGE PRINTOUT ROUTINE 14601 3020 DCA TEMP 14602 1420 ERLP, TAD I TEMP 14603 7012 RTR 14604 7012 RTR 14605 7012 RTR 14606 4213 JMS ERPCH /PRINT HIGH-ORDER CHARACTER 14607 1420 TAD I TEMP 14610 4213 JMS ERPCH /PRINT LOW-ORDER CHARACTER 14611 2020 ISZ TEMP 14612 5202 JMP ERLP 14613 0000 ERPCH, 0 14614 0377 AND (77 14615 7450 SNA 14616 5243 JMP ERCRLF /0 CHARACTER TERMINATES 14617 4227 JMS CHPRNT 14620 5613 JMP I ERPCH 14621 1376 FILENR, TAD ("# 14622 4775 JMS I (TTYOUT 14623 1022 TAD INFPTR /GET PTR TO CURRENT INPUT FILE 14624 1374 TAD (321 /MAGIC NUMBER 14625 7110 CLL RAR 14626 5217 JMP FILENR-2 14627 0000 CHPRNT, 0 14630 1373 TAD (-37 /IS IT A _? 14631 7450 SNA 14632 5221 JMP FILENR /YES..PRINT FILE NUMBER 14633 7001 IAC 14634 7450 SNA /MAYBE ^? 14635 5772 JMP I (SQFILE /YEP..PRINT FILE NAME 14636 7510 SPA 14637 1371 TAD (100 14640 1370 TAD (236 14641 4775 JMS I (TTYOUT 14642 5627 JMP I CHPRNT 14643 1367 ERCRLF, TAD (215 14644 4775 JMS I (TTYOUT 14645 1366 TAD (212 14646 4775 JMS I (TTYOUT 14647 5600 JMP I ERPRNT /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 PAGE 39 14650 0000 PDATE, 0 /V3D CHANGES 14651 7450 SNA 14652 5650 JMP I PDATE 14653 3020 DCA TEMP /SAVE DATE 14654 1765 TAD I (MDATE /CHECK SYSTEM DATE 14655 7650 SNA CLA /NEED IT TO INTERPRET OTHERS 14656 5650 JMP I PDATE 14657 3764 DCA I (PRBLNK /SUPPRESS LEADING BLANKS 14660 4763 JMS I (PRDAMO /PRINT THE MONTH, DAY 14661 1020 TAD TEMP 14662 0362 AND (7 /MASK THE YEAR 14663 3020 DCA TEMP 14664 1765 TAD I (MDATE /CURRENT DATE 14665 0362 AND (7 14666 7041 CIA 14667 1020 TAD TEMP /COMPARE YEARS 14670 7740 SMA SZA CLA 14671 1361 TAD (-10 /-10 14672 1360 TAD (106 /106 = 1970 14673 1020 TAD TEMP 14674 3020 DCA TEMP /SAVE THIS MUCH 14675 6201 CDF 0 14676 1757 TAD I (BIPCCL /GET EXTENSION BITS 14677 6211 CDF 10 14700 4756 JMS I (PRYEAR /PUT IT ALL TOGETHER 14701 1304 TAD JMSPR 14702 3764 DCA I (PRBLNK /RESTORE BLANKS 14703 5650 JMP I PDATE 14704 4270 JMSPR, JMSPR6 14705 0000 DSKNUM, 0 14706 3312 DCA DSKNAM+1 14707 4755 JMS I (200 14710 0012 12 14711 5723 DSKNAM, 5723 14712 0000 0 14713 0000 0 14714 7402 HLT 14715 1312 TAD DSKNAM+1 14716 5705 JMP I DSKNUM /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 PAGE 40 14717 7776 RELTBL, -2;-2;2;-10;-2;-2;-2;2;0;2;-2;2;2;2;2;1 14720 7776 14721 0002 14722 7770 14723 7776 14724 7776 14725 7776 14726 0002 14727 0000 14730 0002 14731 7776 14732 0002 14733 0002 14734 0002 14735 0002 14736 0001 14737 5006 ERRTBL, ERR0 14740 5022 ERR1 14741 6251 ERR2 14742 5036 ERR3 14743 5045 ERR4 14744 5057 ERR5 14745 5074 ERR6 14746 5111 ERR7 14747 5126 ERR8 14750 5144 ERR9 14751 5162 ERR10 14752 6207 ERR11 IFNZRO OS78 <DIRMSG> 14755 0200 14756 7111 14757 7777 14760 0106 14761 7770 14762 0007 14763 7046 14764 4140 14765 7666 14766 0212 14767 0215 14770 0236 14771 0100 14772 6261 14773 7741 14774 0321 14775 5000 14776 0243 14777 0077 5000 PAGE /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 PAGE 41 15000 0000 TTYOUT, 0 15001 6046 TLS 15002 6041 TSF 15003 5202 JMP .-1 15004 7200 CLA 15005 5600 JMP I TTYOUT /ERROR MESSAGE TEXT GOES HERE IFNDEF GERMAN < ERR0, TEXT /NO ROOM FOR OUTPUT FILE/ ERR1, TEXT /LINE TOO LONG IN FILE_/ ERR3, TEXT /ERROR DELETING FILE/ ERR4, TEXT /INPUT ERROR, FILE_/ ERR5, TEXT /CAN'T OPEN OUTPUT FILE/ ERR6, TEXT /DEVICE_ NOT A DIRECTORY DEVICE/ ERR7, TEXT /PREMATURE END OF FILE, FILE_/ ERR8, TEXT /ILLEGAL BINARY INPUT, FILE_/ ERR9, TEXT /BAD DIRECTORY ON DEVICE_/ ERR10, TEXT /DIRECTORY ERROR/ > IFDEF GERMAN < 15006 0401 ERR0, TEXT /DATEI HAT KEINEN PLATZ/ 15007 2405 15010 1140 15011 1001 15012 2440 15013 1305 15014 1116 15015 0516 15016 4020 15017 1401 15020 2432 15021 0000 15022 3205 ERR1, TEXT /ZEILE ZU LANG IN DATEI_/ 15023 1114 15024 0540 15025 3225 15026 4014 15027 0116 15030 0740 15031 1116 15032 4004 15033 0124 15034 0511 15035 3700 15036 1417 ERR3, TEXT /LOESCH-FEHLER/ 15037 0523 15040 0310 15041 5506 15042 0510 15043 1405 15044 2200 15045 1405 ERR4, TEXT /LESEFEHLER, DATEI_/ 15046 2305 /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 PAGE 41-1 15047 0605 15050 1014 15051 0522 15052 5440 15053 0401 15054 2405 15055 1137 15056 0000 15057 1301 ERR5, TEXT /KANN DATEI NICHT OEFFNEN/ 15060 1616 15061 4004 15062 0124 15063 0511 15064 4016 15065 1103 15066 1024 15067 4017 15070 0506 15071 0616 15072 0516 15073 0000 15074 0705 ERR6, TEXT /GERAET_ OHNE VERZEICHNIS/ 15075 2201 15076 0524 15077 3740 15100 1710 15101 1605 15102 4026 15103 0522 15104 3205 15105 1103 15106 1016 15107 1123 15110 0000 15111 2605 ERR7, TEXT /VERFRUEHTES ENDE, DATEI_/ 15112 2206 15113 2225 15114 0510 15115 2405 15116 2340 15117 0516 15120 0405 15121 5440 15122 0401 15123 2405 15124 1137 15125 0000 15126 1305 ERR8, TEXT /KEIN BINAER FORMAT, DATEI_/ 15127 1116 15130 4002 15131 1116 15132 0105 15133 2240 15134 0617 15135 2215 /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 PAGE 41-2 15136 0124 15137 5440 15140 0401 15141 2405 15142 1137 15143 0000 15144 2605 ERR9, TEXT /VERZEICHNIS KAPUTT, GERAET_/ 15145 2232 15146 0511 15147 0310 15150 1611 15151 2340 15152 1301 15153 2025 15154 2424 15155 5440 15156 0705 15157 2201 15160 0524 15161 3700 15162 2605 ERR10, TEXT \VERZEICHNIS L/S-FEHLER\ 15163 2232 15164 0511 15165 0310 15166 1611 15167 2340 15170 1457 15171 2355 15172 0605 15173 1014 15174 0522 15175 0000 > 5200 PAGE /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 PAGE 42 /SQUISH PROCESSOR 15200 4777 SQUISH, JMS I (CONFRM 15201 5534 SURE /V3 15202 3776 SQUISX, DCA I (OUELEN /INITIALIZE PARAMS TO FAKE OUT "IMTRA" 15203 3775 DCA I (OUBLK 15204 3774 DCA I (7621 /ZERO SECOND FILE FOR "INNEWF" 15205 3773 DCA I (CTCFLG 15206 4772 JMS I (IOPEN 15207 4771 JMS I (INNEWF 15210 5770 JMP I (PIP /NO INPUT 15211 1367 TAD (OUDEVH+1 15212 3220 DCA SOHND 15213 1730 TAD I SQ7600 15214 7450 SNA 15215 5770 JMP I (PIP /NO OUTPUTEE, NO SQUISHEE 15216 4766 JMS I (200 15217 0001 1 15220 0000 SOHND, 0 15221 7402 HLT 15222 4277 JMS INTEST 15223 4765 JMS I (OTYPE 15224 7112 CLL RTR 15225 7010 RAR 15226 0364 AND (77 15227 1363 TAD (DEVLEN 15230 3020 DCA TEMP 15231 1220 TAD SOHND /SET UP OZHNDL 15232 3762 DCA I (OZHNDL /IN CASE OF JMP TO 'DVREDE' 15233 1420 TAD I TEMP /GET ENTRY FROM DEVICE LENGTH TABLE 15234 7450 SNA /IS THE DEVICE LENGTH ZERO? 15235 4761 JMS I (DVREDE /IF SO, READ LENGTH 15236 3031 DCA OUDLEN /SAVE OUTPUT DEVICE LENGTH 15237 4760 JMS I (GETEQ 15240 3027 DCA OUWAST 15241 1220 TAD SOHND 15242 3025 DCA OHNDLR 15243 1025 TAD OHNDLR 15244 3757 DCA I (OUHNDL 15245 1756 TAD I (INHNDL 15246 3024 DCA IHNDLR 15247 4311 JMS SETCTC 15250 4773 JMS I (CTCFLG 15251 6202 CIF 0 15252 4424 JMS I IHNDLR 15253 1400 1400 15254 0000 0 15255 0001 1 15256 5755 JMP I (SQIDER+1 15257 6202 CIF 0 15260 4754 JMS I (7607 15261 5400 5400 15262 0000 0 15263 0027 MTEMP /MOVE THE INPUT DIRECTORY TO SYS: 15264 5755 JMP I (SQIDER+1 /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 PAGE 42-1 15265 7201 CLA IAC 15266 3753 DCA I (SQBUF2+2 15267 3773 DCA I (CTCFLG 15270 1220 TAD SOHND /SETUP DIRECTORY START 15271 4752 JMS I (SQDTST 15272 4751 JMS I (SETSAM /IF IHNDLR=OHNDLR, SAME=1 15273 7240 CLA CMA 15274 3750 DCA I (SQBUF2 15275 3747 DCA I (OUTSEG 15276 5746 JMP I (NEWOUT 15277 0000 INTEST, 0 /TEST IF INPUT IS DIRECTORY 15300 1745 TAD I (7617 15301 0344 AND (17 15302 1343 TAD (DCB-1 15303 3020 DCA TEMP 15304 1420 TAD I TEMP 15305 7700 SMA CLA 15306 4742 JMS I (PIPERR 15307 0006 6 15310 5677 JMP I INTEST 15311 0000 SETCTC, 0 /MODIFY 07600 TO RETURN TO SQCTLC 15312 1321 TAD CDIF10 15313 6201 CDF 0 15314 3730 DCA I SQ7600 15315 1341 TAD (5602 /JMP I .+1 15316 3740 DCA I (7601 15317 1337 TAD (SQCTLC 15320 3736 DCA I (7602 15321 6213 CDIF10, CIF CDF 10 15322 5711 JMP I SETCTC /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 PAGE 43 15323 0000 OUK, 0 /V3 ON IMAGE MODE TRANSFER /CLOSE OUT FILE WITH = OPTION /IF NOT TOO SMALL 15324 1735 TAD I (OUCCNT 15325 7141 CLL CIA 15326 1734 TAD I (MPARAM+3 15327 7420 SNL /IS = OPTION LARGER? 15330 7600 SQ7600, 7600 /RETURN OUCCNT IF IT'S LARGER 15331 1735 TAD I (OUCCNT /RETURN LOW ORDER = OPTION IF IT'S LARGER 15332 5723 JMP I OUK 15334 7646 15335 2352 15336 7602 15337 5650 15340 7601 15341 5602 15342 3521 15343 7757 15344 0017 15345 7617 15346 5503 15347 5641 15350 7200 15351 5543 15352 6477 15353 7202 15354 7607 15355 5626 15356 2146 15357 2215 15360 6332 15361 6341 15362 3457 15363 3600 15364 0077 15365 2473 15366 0200 15367 7201 15370 3023 15371 2135 15372 2001 15373 5700 15374 7621 15375 2222 15376 2223 15377 3730 5400 PAGE /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 PAGE 44 15400 1377 NEWIN, TAD (MTEMP-1 15401 3207 DCA INSEG 15402 4776 JMS I (CTCFLG 15403 6202 CIF 0 15404 4775 JMS I (7607 15405 0210 0210 15406 7200 S7200, SQBUF2 15407 0000 INSEG, 0 15410 5774 JMP I (SQIDER 15411 3776 DCA I (CTCFLG 15412 1773 TAD I (SQBUF2+1 15413 3033 DCA INBLK 15414 1372 TAD (SQBUF2+4 15415 3011 DCA INXR 15416 1411 SGETIN, TAD I INXR 15417 7450 SNA 15420 5331 JMP SEMPTY 15421 3410 DCA I OUTXR 15422 1010 TAD OUTXR 15423 3333 DCA OUSAVE 15424 4771 JMS I (CYWAST /COPY WASTE WORDS 15425 1411 TAD I INXR 15426 3034 DCA RECCNT 15427 1034 TAD RECCNT 15430 7450 SNA 15431 5325 JMP SNULL 15432 7140 CMA CLL /V3 15433 1030 TAD OUTBLK 15434 1031 TAD OUDLEN 15435 7630 SZL CLA 15436 5323 JMP SNULER 15437 1034 TAD RECCNT 15440 3410 DCA I OUTXR 15441 7240 CLA CMA 15442 1770 TAD I (SQBUF1 15443 3770 DCA I (SQBUF1 15444 1033 TAD INBLK 15445 7041 CIA 15446 1030 TAD OUTBLK 15447 7650 SNA CLA 15450 1032 TAD SAME 15451 7650 SNA CLA 15452 4767 MOVFIL, JMS I (SQTRA /MOVE THE FILE DOWN 15453 1034 TAD RECCNT 15454 7041 CIA 15455 1030 TAD OUTBLK 15456 3030 DCA OUTBLK 15457 1034 TAD RECCNT 15460 7041 DMTX, CIA 15461 1033 TAD INBLK 15462 3033 DCA INBLK 15463 1010 TAD OUTXR 15464 7041 CIA 15465 1027 TAD OUWAST 15466 1027 TAD OUWAST /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 PAGE 44-1 15467 1366 TAD (SQBUF1+365 15470 7700 SMA CLA /DO WE HAVE ROOM FOR TWO MORE ENTRIES? 15471 5315 JMP NEXTIN /DIRECTORY SEGMENT OVERFLOW ON OUTPUT... 15472 2765 ISZ I (OUTSEG 15473 1765 TAD I (OUTSEG 15474 7001 IAC 15475 3764 DCA I (SQBUF1+2 /STORE LINK TO NEXT SEGMENT 15476 1764 TAD I (SQBUF1+2 15477 1363 TAD (-7 15500 7700 SMA CLA 15501 5762 JMP I (SQIDER-1 /TOO MANY SEGMENTS 15502 4761 JMS I (OUTDIR /OUTPUT THIS SEGMENT 15503 1360 NEWOUT, TAD (SQBUF1-1 15504 3010 DCA OUTXR /INITIALIZE XR FOR NEXT OUTPUT SEGMENT 15505 3757 DCA I (OUTINH /ZAP ANY OLD OUTPUT INHIBIT FLAG 15506 3410 DCA I OUTXR 15507 1030 TAD OUTBLK 15510 3410 DCA I OUTXR 15511 3410 DCA I OUTXR 15512 3410 DCA I OUTXR 15513 1027 TAD OUWAST 15514 3410 DCA I OUTXR 15515 2606 NEXTIN, ISZ I S7200 15516 5216 JMP SGETIN 15517 1756 TAD I (SQBUF2+2 15520 7450 SNA /ANY MORE INPUT SEGMENTS? 15521 5755 JMP I (SQOVER 15522 5200 JMP NEWIN 15523 1354 SNULER, TAD (NOROOM 15524 4753 JMS I (ERPRNT 15525 7240 SNULL, CLA CMA 15526 1333 TAD OUSAVE 15527 3010 DCA OUTXR 15530 5257 JMP DMTX-1 15531 1411 SEMPTY, TAD I INXR 15532 5260 JMP DMTX 15533 0000 OUSAVE, 0 /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 PAGE 45 SURE, IFNDEF GERMAN < TEXT /ARE YOU SURE?/> 15534 0701 IFDEF GERMAN < TEXT /GANZ SICHER? /> 15535 1632 15536 4023 15537 1103 15540 1005 15541 2277 15542 4000 15543 0000 SETSAM, 0 15544 1024 TAD IHNDLR 15545 7041 CIA 15546 1025 TAD OHNDLR 15547 7650 SNA CLA 15550 7001 IAC 15551 3032 DCA SAME 15552 5743 JMP I SETSAM 15553 4600 15554 5735 15555 5600 15556 7202 15557 2472 15560 1377 15561 5631 15562 5624 15563 7771 15564 1402 15565 5641 15566 1765 15567 2641 15570 1400 15571 6413 15572 7204 15573 7201 15574 5625 15575 7607 15576 5700 15577 0026 5600 PAGE /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 PAGE 46 15600 3410 SQOVER, DCA I OUTXR 15601 1031 TAD OUDLEN 15602 1030 TAD OUTBLK 15603 7450 SNA 15604 5211 JMP CKZERO 15605 3410 DCA I OUTXR 15606 7240 CLA CMA 15607 1777 TAD I (SQBUF1 15610 3777 DCA I (SQBUF1 15611 1777 CKZERO, TAD I (SQBUF1 15612 7640 SZA CLA 15613 5220 JMP ZEROK 15614 7330 CLA CLL CML RAR 15615 4231 JMS OUTDIR /READ IN LAST DIRECTORY 15616 3776 DCA I (SQBUF1+2 /ZERO OUT LINK WORD 15617 7410 SKP 15620 2241 ZEROK, ISZ OUTSEG 15621 4231 JMS OUTDIR 15622 4264 ZEROKS, JMS SRSTOR 15623 5775 JMP I (PIP 15624 3776 DCA I (SQBUF1+2 15625 4231 SQIDER, JMS OUTDIR 15626 4264 JMS SRSTOR 15627 4774 JMS I (PIPERR 15630 0012 12 15631 0000 OUTDIR, 0 15632 1373 TAD (4210 15633 3237 DCA .+4 15634 4300 JMS CTCFLG 15635 6202 CIF 0 15636 4425 JMS I OHNDLR 15637 0000 0 15640 1400 SQBUF1 15641 0000 OUTSEG, 0 15642 5226 JMP SQIDER+1 15643 3300 DCA CTCFLG 15644 5631 JMP I OUTDIR 15645 1372 SQIOER, TAD (IOMSG 15646 4771 JMS I (ERPRNT 15647 5770 JMP I (SLGRET /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 PAGE 47 15650 6032 SQCTLC, KCC /JUMPED TO BY CODE AT 07600 15651 4767 JMS I (TSTSAM /TEST IF OPERATION IS TO ITSELF 15652 1366 TAD (CTCMSG 15653 4771 JMS I (ERPRNT 15654 1300 TAD CTCFLG 15655 7640 SZA CLA 15656 5700 JMP I CTCFLG 15657 1765 TAD I (MPARAM+1 /IS IT /S? 15660 0364 AND (40 15661 7650 SNA CLA 15662 5763 JMP I (SYSCPY /NO../Y 15663 5762 JMP I (MOVFIL 15664 0000 SRSTOR, 0 15665 4761 JMS I (7700 /MAKE SURE MONITOR IS IN CORE 15666 0010 10 15667 3265 DCA .-2 /AND WIPE THE CALL AWAY 15670 1360 TAD (4207 15671 6201 CDF 0 15672 3757 DCA I (7600 15673 1356 TAD (5000 15674 3755 DCA I (7601 15675 3754 DCA I (7602 15676 6211 CDF 10 15677 5664 JMP I SRSTOR 15700 0000 CTCFLG, 0 15701 5700 JMP I CTCFLG /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 PAGE 48 IFNDEF GERMAN < CTCMSG, TEXT \SORRY - NO INTERRUPTIONS\ IOMSG, TEXT \I-O ERROR IN ^ - CONTINUING\ NOROOM, TEXT \NO ROOM FOR ^ - CONTINUING\ > IFDEF GERMAN < 15702 1305 CTCMSG, TEXT \KEINE UNTERBRECHUNGEN!\ 15703 1116 15704 0540 15705 2516 15706 2405 15707 2202 15710 2205 15711 0310 15712 2516 15713 0705 15714 1641 15715 0000 15716 1457 IOMSG, TEXT \L/S-FEHLER BEI ^ - KEIN HALT\ 15717 2355 15720 0605 15721 1014 15722 0522 15723 4002 15724 0511 15725 4036 15726 4055 15727 4013 15730 0511 15731 1640 15732 1001 15733 1424 15734 0000 15735 1305 NOROOM, TEXT \KEIN PLATZ FUER ^ - KEIN HALT\ 15736 1116 15737 4020 15740 1401 15741 2432 15742 4006 15743 2505 15744 2240 15745 3640 15746 5540 15747 1305 15750 1116 15751 4010 15752 0114 15753 2400 > 15754 7602 15755 7601 15756 5000 15757 7600 15760 4207 15761 7700 /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 PAGE 48-1 15762 5452 15763 6004 15764 0040 15765 7644 15766 5702 15767 6244 15770 2532 15771 4600 15772 5716 15773 4210 15774 3521 15775 3023 15776 1402 15777 1400 6000 PAGE /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 PAGE 49 16000 7760 K7760, 7760 16001 1222 SYSCOP, TAD K7622 /SET INFPTR IN CASE OF /Y ERROR 16002 3022 DCA INFPTR /WILL FILE #1 16003 4777 JMS I (SETCTC /KLUDGE UP 07600 16004 1376 SYSCPY, TAD (INDEVH+1 16005 3221 DCA YIHAND /SET TO ASSIGN INPUT HANDLER IFNZRO OUDEVH-7200 <ERR,___>/ TAD (OUDEVH+1 16006 1210 TAD .+2 16007 3263 DCA YOHAND 16010 7201 CLA IAC /BOOTSTRAP OFFSET 16011 3342 DCA OFSET 16012 1745 TAD I K7617 16013 7650 SNA CLA /IS THERE AN INPUT DEVICE? 16014 2745 ISZ I K7617 /MAKE INPUT =SYS 16015 4775 JMS I (INTEST /SEE IF OPERATIONS ARE TO SAME DEVICE 16016 1745 TAD I K7617 16017 4624 JMS I K200 /ASSIGN HANDLER 16020 0001 1 16021 0000 YIHAND, 0 16022 7622 K7622, 7622 /THINLY DISGUISED HALT 16023 1745 TAD I K7617 16024 0200 K200, AND K7760 /CHECK INPUT FILE LENGTH 16025 7450 SNA /IF BLANK,INPUT SYSTEM HEAD 16026 5334 JMP YSOUT 16027 1374 TAD (-6340 /CHECK FOR PROPER LENGTH 16030 7640 SZA CLA 16031 5343 JMP PER13 /ERROR..NOT SYSTEM HEAD 16032 1773 TAD I (7601 /IS THERE OUTPUT DEVICE? 16033 7640 SZA CLA /IF YES..WE CAN DO IMAGE XFER 16034 5330 JMP IMGOUT 16035 1772 TAD I (7620 16036 3243 YOUSYS, DCA YINREC /PICK UP STARTING RECORD 16037 6202 CIF 0 16040 4621 JMS I YIHAND /READ IN FIRST INPUT RECORDS 16041 2000 2000 /(0-15 IF SYSTEM HEAD,0-7 IF FILE) 16042 0000 OUBUF 16043 0000 YINREC, 0 16044 5771 JMP I (PER4 /INPUT ERROR 16045 1772 TAD I (7620 /IF INPUT FROM A FILE, 16046 7650 SNA CLA /TEST LOC 605 16047 1370 TAD (3000 /IF FROM HEAD, TEST 3605 16050 1367 TAD (605 16051 3766 DCA I (HDTST 16052 4765 JMS I (TSTHED /TEST FOR VALID SYSTEM HEAD 16053 1243 TAD YINREC 16054 1342 TAD OFSET /BUMP TO NEXT RECORD 16055 3314 DCA NXTRD 16056 1764 TAD I (7600 /IF NO OUTPUT, FORGET IT 16057 7450 SNA 16060 5326 JMP PIPCLR /RESET AND GO TO PIP 16061 4624 JMS I K200 16062 0001 1 16063 0000 YOHAND, 0 16064 7402 HLT /V3 16065 4763 JMS I (FAKE /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 PAGE 49-1 16066 4762 JMS I (SETSAM /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 PAGE 50 16067 4761 JMS I (TSTIO /TEST OUTPUT. SEE IF DIRECT. DEV. 16070 6202 CIF 0 16071 4663 JMS I YOHAND /READ OUTPUT DIRECTORY INTO PLACE 16072 1400 1400 16073 0400 400 16074 0001 1 16075 5771 JMP I (PER4 16076 6201 CDF 0 16077 1760 TAD I (401 /NOW TEST FOR VALID OUTPUT DEVICE 16100 6211 CDF 10 16101 1357 TAD (-10 /IF LESS THAN 10, DON'T XFER 16102 7710 SPA CLA 16103 4756 JMS I (PIPERR 16104 0011 11 16105 1357 TAD (-10 /8*7=56 BLKS - DIR= 50 BLKS 16106 3243 DCA YINREC /XFER COUNTER 16107 5321 JMP YDUMP 16110 6202 YLOOP, CIF 0 16111 4621 JMS I YIHAND /READ NEXT 16112 1600 1600 /READ 7 BLKS 16113 0000 OUBUF 16114 0000 NXTRD, 0 16115 5771 JMP I (PER4 16116 1314 TAD NXTRD 16117 1355 TAD (7 16120 3314 DCA NXTRD 16121 1354 YDUMP, TAD (5600 16122 4753 JMS I (OUTDMP /WRITE BUFFER 16123 5752 JMP I (AOUERR 16124 2243 ISZ YINREC /DONE YET? 16125 5310 JMP YLOOP /NOT YET..LOOP 16126 4751 PIPCLR, JMS I (SRSTOR /CLEAR OUT 07600 16127 5750 JMP I (PIP 16130 3032 IMGOUT, DCA SAME 16131 1221 TAD YIHAND 16132 3024 DCA IHNDLR 16133 5747 JMP I (IMAGE /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 PAGE 51 16134 1773 YSOUT, TAD I (7601 /HERE IF INPUT FROM SYSTEM HEAD 16135 7640 SZA CLA /IS THERE AN OUTPUT FILE? 16136 5746 JMP I (YTSOUT /YES, SET UP FOR IMAGE MODE 16137 1355 YNOOUT, TAD (7 /RESTART READ AT RECORD 7 16140 3342 DCA OFSET 16141 5236 JMP YOUSYS 16142 0000 OFSET, 0 16143 4756 PER13, JMS I (PIPERR 16144 0013 13 16145 7617 K7617, 7617 /V3 16146 6220 16147 2601 16150 3023 16151 5664 16152 6531 16153 2247 16154 5600 16155 0007 16156 3521 16157 7770 16160 0401 16161 6454 16162 5543 16163 6400 16164 7600 16165 6443 16166 6453 16167 0605 16170 3000 16171 3110 16172 7620 16173 7601 16174 1440 16175 5277 16176 6601 16177 5311 6200 PAGE /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 PAGE 52 16200 7777 DIRECT, -1 16201 0000 DFORG, 0 /FILE STORAGE 16202 0000 0 16203 0000 0 16204 0000 DWASTE, 0 /#WASTE WORDS 16205 0000 0 16206 0000 DLENGT, 0 ERR11, IFNDEF GERMAN < TEXT \BAD SYSTEM HEAD \> 16207 1305 IFDEF GERMAN < TEXT \KEIN SYSTEM-KOPF\> 16210 1116 16211 4023 16212 3123 16213 2405 16214 1555 16215 1317 16216 2006 16217 0000 16220 1777 YTSOUT, TAD I (7617 /O.K. SETUP CD AREA FOR IMAGE XFER 16221 1376 TAD (7760 /FROM SYSTEM AREA OF INPUT DEVICE 16222 3777 DCA I (7617 /1 BLK 16223 1777 TAD I (7617 16224 0375 AND (17 /7620=0: BLK 0 16225 1374 TAD (6360 16226 3773 DCA I (7621 /61 BLKS 16227 1240 TAD K7 16230 3772 DCA I (7622 /FROM BLK 7 16231 3032 DCA SAME /ALLOW ^C IF TO OUTPUT FILE 16232 1771 TAD I (YIHAND /TEST FOT VALID SYSTEM 16233 3024 DCA IHNDLR 16234 6202 CIF 0 16235 4424 JMS I IHNDLR 16236 0200 0200 16237 3400 3400 16240 0007 K7, 7 16241 5770 JMP I (PER4 16242 4767 JMS I (TSTHED 16243 5766 JMP I (IMAGE /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 PAGE 53 16244 0000 TSTSAM, 0 16245 1032 TAD SAME /IF /Y IS TO SAME DEVICE AS INPUT (SYS) 16246 7650 SNA CLA /^C GIVES MESSAGE AND RETRIES OPERATION 16247 5765 JMP I (ZEROKS 16250 5644 JMP I TSTSAM ERR2, IFNDEF GERMAN < TEXT \OUTPUT ERROR \> 16251 2303 IFDEF GERMAN < TEXT \SCHREIB-FEHLER\> 16252 1022 16253 0511 16254 0255 16255 0605 16256 1014 16257 0522 16260 0000 16261 3323 SQFILE, DCA MWAST 16262 1764 TAD I (OUSAVE 16263 3244 DCA TSTSAM /IF ERROR DURING /S 16264 3204 DCA DWASTE 16265 7346 CLA CLL CMA RTL 16266 3322 DCA MOVCNT /-3 FOR FILE NAME 16267 1644 SQFIL3, TAD I TSTSAM /FIRST 2 CHARS. IN NAME 16270 7112 CLL RTR 16271 7012 RTR 16272 7012 RTR 16273 0363 SQFIL5, AND (77 16274 7440 SZA /IF ZERO, DON'T BOTHER 16275 4762 JMS I (CHPRNT 16276 2204 ISZ DWASTE /RIGHT HALF OR NEW WORD? 16277 5316 JMP SQFIL4 /RIGHT HALF 16300 2244 ISZ TSTSAM 16301 2322 ISZ MOVCNT /EXHAUSTED ALL? 16302 5267 JMP SQFIL3 /NOPE 16303 1323 TAD MWAST /DONE WITH IT YET? 16304 7640 SZA CLA 16305 5761 JMP I (FILENR-1 /YES 16306 1644 TAD I TSTSAM /IS THERE AN EXTENSION? 16307 7650 SNA CLA 16310 5761 JMP I (FILENR-1 /NO..CONTINUE ORIGINAL MSG 16311 1360 TAD (256 16312 4757 JMS I (TTYOUT 16313 2323 ISZ MWAST /SIGNAL END 16314 7240 CLA CMA 16315 5266 JMP SQFIL3-1 16316 7240 SQFIL4, CLA CMA 16317 3204 DCA DWASTE 16320 1644 TAD I TSTSAM /GET RIGHT HALF 16321 5273 JMP SQFIL5 /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 PAGE 54 16322 0000 MOVCNT, 0 16323 0000 MWAST, 0 16324 3020 DCA TEMP 16325 1411 TAD I INXR 16326 3410 DCA I OUTXR /ROUTINE TO COPY WASTE WORDS 16327 2020 ISZ TEMP 16330 5325 JMP .-3 16331 5723 JMP I MWAST 16332 0000 GETEQ, 0 /V3 16333 1756 TAD I (MPARAM+3 16334 7450 SNA 16335 7001 IAC 16336 0363 AND (77 /CONVERT 0 TO 1 AND 100 TO 0 16337 7041 CIA 16340 5732 JMP I GETEQ 16341 0000 DVREDE, 0 /READ DEVICE FROM BAD BLOCK 16342 1755 TAD I (OZHNDL /GET DEVICE ENTRY POINT 16343 3332 DCA GETEQ 16344 6202 CIF 0 16345 4732 JMS I GETEQ 16346 0011 0011 16347 0000 0000 16350 7667 -111 /NEGATIVE BLOCK - RETURNS MINUS LENGTH 16351 6212 CIF 10 16352 5741 JMP I DVREDE /ERROR RETURN FOR READ YIELDS RESULT 16355 3457 16356 7646 16357 5000 16360 0256 16361 4620 16362 4627 16363 0077 16364 5533 16365 5622 16366 2601 16367 6443 16370 3110 16371 6021 16372 7622 16373 7621 16374 6360 16375 0017 16376 7760 16377 7617 6400 PAGE /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 PAGE 55 16400 0000 FAKE, 0 16401 1777 TAD I (YIHAND 16402 3024 DCA IHNDLR 16403 1776 TAD I (YOHAND 16404 3025 DCA OHNDLR 16405 3775 DCA I (OUCCNT 16406 3774 DCA I (OUBLK 16407 3773 DCA I (OUELEN 16410 1776 TAD I (YOHAND 16411 3772 DCA I (OUHNDL 16412 5600 JMP I FAKE 16413 0000 CYWAST, 0 /ROUTINE TO COPY WASTE WORDS 16414 7346 CLA CLL CMA RTL /THREE MORE FOR FILE NAME 16415 4771 JMS I (MWAST /COPY THEM 16416 1770 TAD I (SQBUF2+4 /NOW ADJUST I/O WASTE WORDS 16417 7041 CIA 16420 1027 TAD OUWAST /DIFF. BETWEEN OUT AND IN WORDS 16421 7500 SMA /IF <0, MORE OUT THAN IN 16422 5233 JMP CGEWST /POS. MORE IN THAN OUT (OR SAME) 16423 3012 DCA TEMP1 16424 1770 TAD I (SQBUF2+4 16425 7440 SZA 16426 4771 JMS I (MWAST /COPY ALL INPUT WORDS 16427 3410 DCA I OUTXR /AND 0 ALL EXTRA OUTPUT WORDS 16430 2012 ISZ TEMP1 16431 5227 JMP .-2 16432 5613 JMP I CYWAST 16433 3012 CGEWST, DCA TEMP1 16434 1027 TAD OUWAST /XFER ONLY ENOUGH OUTPUT WDS. 16435 7440 SZA 16436 4771 JMS I (MWAST 16437 1011 TAD INXR 16440 1012 TAD TEMP1 /POINT INPUT TO NEXT FILE 16441 3011 DCA INXR 16442 5613 JMP I CYWAST 16443 0000 TSTHED, 0 /TESTS FOR KEYBOARD MONITOR 16444 6201 CDF 0 16445 1653 TAD I HDTST 16446 6211 CDF 10 16447 1367 TAD (-7200 16450 7640 SZA CLA 16451 5766 JMP I (PER13 /IF NOT CLA, NOT VALID 16452 5643 JMP I TSTHED 16453 3605 HDTST, 3605 /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 PAGE 56 16454 0000 TSTIO, 0 /SEE IF OUTPUT IS DIRECTORY DEVICE 16455 4765 JMS I (OTYPE /GET DCB WORD FOR OUTPUT 16456 7700 SMA CLA /IF NOT NEG., NOT DIRECT DEVICE 16457 4764 JMS I (PIPERR 16460 0005 5 16461 1025 TAD OHNDLR /IF OUTPUT=SYS, SET NO INTERRUPT 16462 1363 TAD (171 16463 7650 SNA CLA 16464 2032 ISZ SAME 16465 5654 JMP I TSTIO 16466 0000 ASCI2, 0 /SEE IF VALID ASCII OUTPUT 16467 3254 DCA TSTIO 16470 1762 TAD I (7600 16471 7650 SNA CLA 16472 5761 JMP I (PIP /NO..BACK TO PIP 16473 1254 TAD TSTIO /SEE IF /C IS ON 16474 7650 SNA CLA 16475 4760 JMS I (FIXLEN /NO..TRY TO ESTIMATE OUTPUT 16476 5666 JMP I ASCI2 16477 0000 SQDTST, 0 /ROUTINE TO CHECK /S DIRECTORIES 16500 3200 DCA NOHND /PRESERVE POSSIBLE SYS ON OUTPUT 16501 1357 TAD (7 /DEFAULT TO BLOCK 7 16502 3030 DCA OUTBLK /INITIAL GUESS 16503 6211 CDF 10 /NOW TRY TO READ DIRECTORY OF OUTPUT 16504 4765 JMS I (OTYPE /IF NON-FILE, DON'T READ IT 16505 7700 SMA CLA 16506 5315 JMP P1A 16507 6202 CIF 0 /COULD BE NON-FILE, HOWEVER. 16510 4600 JMS I NOHND 16511 0210 0210 16512 1400 1400 16513 0001 P1, 1 16514 5756 JMP I (SQIDER+1 /ERROR IN READ 16515 3007 P1A, DCA OLDDIR /WIPES ANY DIRECT. SEGMENT 16516 1200 TAD NOHND /IS OUTPUT THE SYSTEM DEVICE? 16517 1363 TAD (171 16520 7650 SNA CLA 16521 5326 JMP SYSDIR 16522 1755 TAD I (1401 16523 1354 TAD (-70 /IS OUTPUT A SYS DEVICE? 16524 7640 SZA CLA 16525 5677 JMP I SQDTST 16526 1353 SYSDIR, TAD (70 16527 3030 DCA OUTBLK 16530 5677 JMP I SQDTST 6400 NOHND=FAKE /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 PAGE 57 16531 7700 AOUERR, SMA CLA /WAS IT A DEVICE ERROR OR ARE WE OUT OF SPACE? 16532 4764 BOUERR, JMS I (PIPERR /OUT OF SPACE 16533 0000 0 16534 4764 PER2, JMS I (PIPERR 16535 0002 2 16536 1352 ASCPTCH,TAD (ACHLP+1 /V3C FAKE OUT ICHAR 16537 3751 DCA I (ICHAR /SIMULATE CALL TO ICHAR FROM 'ACHLP' 16540 5750 JMP I (GETNEW /V3C SIMULATE OCCURRENCE OF 8-BIT ^Z IN ICHAR 16550 2030 16551 2014 16552 3205 16553 0070 16554 7710 16555 1401 16556 5626 16557 0007 16560 3700 16561 3023 16562 7600 16563 0171 16564 3521 16565 2473 16566 6143 16567 0600 16570 7204 16571 6323 16572 2215 16573 2223 16574 2222 16575 2352 16576 6063 16577 6021 6600 PAGE /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 PAGE 58 /THIS IS ONCE-ONLY CODE 16600 0000 ONCE, 0 16601 7240 STA 16602 1200 TAD ONCE 16603 3224 DCA ONCENF 16604 1377 TAD (20 16605 3624 DCA I ONCENF /RESTORE L20, DON'T ALLOW REENTRY 16606 1776 TAD I (MPARAM+1 16607 0375 AND (7 16610 7650 SNA CLA /IS /V SET? 16611 5225 JMP SUMMOR /NO, RETURN 16612 1374 TAD (VER /YES 16613 4773 JMS I (ERPRNT /PRINT VERSION NUMBER 16614 5225 JMP SUMMOR /RETURN 16615 1723 VER, TEXT \OS/8 PIP V40B\ 16616 5770 16617 4020 16620 1120 16621 4026 16622 6460 16623 0200 16624 0000 ONCENF, 0 16625 1234 SUMMOR, TAD RELPTR 16626 7450 SNA 16627 5600 JMP I ONCE 16630 3634 DCA I RELPTR 16631 2234 ISZ RELPTR 16632 2225 ISZ SUMMOR 16633 5225 JMP SUMMOR 6634 RELPTR=. 16773 4600 16774 6615 16775 0007 16776 7644 16777 0020 7046 RELOC 7046 /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 PAGE 59 /WE'VE ADDED A NEW SWITCH: /N = NUMERIC DATES 17046* 7046 PRDAMO, . /DA-MON-YR OR MM/DD/YY 17047* 4743 JMS I LPR6BT /START WITH A SPACE 17050* 7132 STL RTR 17051* 0744 AND I L17644 /TEST THE /N SWITCH 17052* 7650 SNA CLA 17053* 5261 JMP ALPHA /NEW STYLE DATES 17054* 4326 JMS MONTH 17055* 4742 JMS I LPRNUM 17056* 0003 3 /BLANK COUNT 17057* 1340 TAD LSLASH 17060* 4743 JMS I LPR6BT 17061* 1020 ALPHA, TAD TEMP /PRINT THE DAY 17062* 7010 RAR 17063* 7012 RTR 17064* 0336 AND L37 17065* 4742 JMS I LPRNUM 17066* 0003 3 17067* 7132 STL RTR 17070* 0744 AND I L17644 /CHECK /N AGAIN 17071* 7640 SZA CLA 17072* 5306 JMP NUMERC /OLD STYLE DATES 17073* 4326 JMS MONTH 17074* 1337 TAD LM15 /.GT. DEC? 17075* 7710 SPA CLA 17076* 4326 JMS MONTH 17077* 7104 CLL RAL /X2 17100* 1345 TAD DATTAB 17101* 3326 DCA MONTH 17102* 4320 JMS PRMON /PRINT THE MONTH 17103* 2326 ISZ MONTH 17104* 4320 JMS PRMON 17105* 7144 CMA CLL RAL /TURN SLASH INTO DASH 17106* 1340 NUMERC, TAD LSLASH 17107* 4743 JMS I LPR6BT 17110* 5646 JMP I PRDAMO /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 PAGE 60 17111* 7111 PRYEAR, . /PRINT THE YEAR 17112* 7012 RTR 17113* 7012 RTR /AC = BIPCCL WORD 17114* 0335 AND L30 17115* 1020 TAD TEMP /MERGE 17116* 4742 JMS I LPRNUM 17117* 5711 JMP I PRYEAR 17120* 7120 PRMON, . /PRINT ALPHA MONTH 17121* 1726 TAD I MONTH 17122* 3324 DCA .+2 17123* 4741 JMS I LPRWD 17124* 7145 DATTAB 17125* 5720 JMP I PRMON 17126* 7126 MONTH, . /EXTRACT MONTH BITS 17127* 1020 TAD TEMP 17130* 7104 CLL RAL 17131* 7006 RTL 17132* 7006 RTL 17133* 0336 AND L37 17134* 5726 JMP I MONTH 17135* 0030 L30, 30 17136* 0037 L37, 37 17137* 7763 LM15, -15 17140* 0257 LSLASH, "/ 17141* 4050 LPRWD, PRWD 17142* 4101 LPRNUM, PRNUM 17143* 4070 LPR6BT, PR6BIT 17144* 7644 L17644, MPARAM+1 /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 PAGE 61 17145* 7146 DATTAB, .+1 IFNDEF GERMAN < TEXT /-BAD-JAN-FEB-MAR-APR-MAY-JUN-JUL-AUG-SEP-OCT-NOV-DEC/> 17146* 5577 IFDEF GERMAN < TEXT /-???-JAN-FEB-MAR-APR-MAI-JUN-JUL-AUG-SEP-OKT-NOV-DEZ/> 17147* 7777 17150* 5512 17151* 0116 17152* 5506 17153* 0502 17154* 5515 17155* 0122 17156* 5501 17157* 2022 17160* 5515 17161* 0111 17162* 5512 17163* 2516 17164* 5512 17165* 2514 17166* 5501 17167* 2507 17170* 5523 17171* 0520 17172* 5517 17173* 1324 17174* 5516 17175* 1726 17176* 5504 17177* 0532 17200* 0000 6767 RELOC 7000 PAGE 0001 FIELD 1 3000 *3000 $ /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 PAGE 62 ABSBIN 4442 DIR 2540 ICHAR1 2124 IOMSG 5716 ABSLUT 4440 DIRECT 6200 ICHAR2 2120 IOPEN 2001 ABUF 6601 DIRPRE 4000 ICHAR3 2105 JMSPR 4704 ACHLP 3204 DLENGT 6206 IHNDLR 0024 JMSPR6 4270 ACLOSE 3021 DLHNDL 3415 IMAGE 2601 K200 6024 ADCAXR 3241 DLINK 0031 IMCCNT 2615 K7 6240 ADDLEN 4311 DMTX 5460 IMCLOS 2604 K7617 6145 AEOFFG 3114 DPFILE 3423 IMCTLW 2710 K7622 6022 AGAIN 2660 DP4 3422 IMEFLP 2731 K770 3400 ALPHA 7061 DSKNAM 4711 IMERRX 2725 K7760 6000 AOUERR 6531 DSKNUM 4705 IMERR4 2742 LEADER 3533 ASCEOF 3107 DTYPE 0027 IMFILP 2663 LEAVE 2516 ASCIGO 3200 DVREDE 6341 IMGOUT 6130 LFEED 3002 ASCII 3075 DWASTE 6204 IMHNDL 2641 LM15 7137 ASCI2 6466 DZERO 3435 IMNZRO 2744 LPRNUM 7142 ASCI5 3350 ECOUNT 0035 IMOUT 2722 LPRWD 7141 ASCJMP 3231 ENDDIR 4352 IMRCLP 2671 LPR6BT 7143 ASCPTC 6536 ENDFUJ 2620 IMREC 2712 LSLASH 7140 BEOF 4517 EOFERR 2101 IMTRA 2656 LTCODE 4451 BEOT 4446 EOFTST 3016 IM200 2747 LTLOOP 4460 BINARY 4401 EOL 3004 IM7600 2600 L17644 7144 BIN200 4425 EOLLP 3010 INBLK 0033 L20 3033 BIN360 4400 ERCRLF 4643 INBREC 2056 L30 7135 BIPCCL 7777 ERLP 4602 INBUF 3000 L37 7136 BLOKNO 0025 ERPCH 4613 INBUFP 2052 MDATE 7666 BNM140 4444 ERPRNT 4600 INCDIF 2046 MONTH 7126 BN7600 4507 ERRTBL 4737 INCHAR 2021 MOVCNT 6322 BOUERR 6532 ERR0 5006 INCHCT 2135 MOVFIL 5452 CARRET 3321 ERR1 5022 INCOMN 2125 MPARAM 7643 CDIF10 5321 ERR10 5162 INCTL 1600 MTEMP 0027 CGEWST 6433 ERR11 6207 INCTLW 2051 MWAST 6323 CHAR 0021 ERR2 6251 INCTR 2001 NAMELP 4226 CHPRNT 4627 ERR3 5036 INCTZF 2127 NAME1 4264 CINSRT 3237 ERR4 5045 INDEVH 6600 NAME2 4265 CKZERO 5611 ERR5 5057 INEFER 4534 NAME3 4266 COLCT 3342 ERR6 5074 INEOF 0023 NAME4 4275 CONFRM 3730 ERR7 5111 INERR 2100 NEWIN 5400 COPTSW 3133 ERR8 5126 INERRX 2075 NEWOUT 5503 CTCFLG 5700 ERR9 5144 INFLD 0000 NEWSEG 4205 CTCMSG 5702 FAKE 6400 INFPTR 0022 NEWTAP 4406 CTCTST 2507 FFEED 3311 INGBUF 2032 NEXTIN 5515 CYWAST 6413 FFLF 3301 INHNDL 2146 NODUMP 2346 C200 3535 FILENR 4621 INJMP 2102 NOHND 6400 DATTAB 7145 FILLLP 2326 INJMPP 2024 NONDIR 3517 DCB 7760 FIXLEN 3700 INNEWF 2135 NOPCD 3033 DCOUNT 0030 FIXLP 3710 INPTR 2012 NOROOM 5735 DDATE 0033 FIXOVR 3724 INREC 2053 NOTOPT 3337 DELETE 3401 FLENGT 0024 INRECS 0007 NUMERC 7106 DELOOP 3406 GERMAN 0001 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 /3 PIP V40 FOR OS/8 MONITOR V40 PAL8-V10A 28-FEB-84 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 0000 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 TTYDEV 2547 OUENTR 2217 RBTLP 3122 TTYOUT 5000 OUFLD 0000 RCOPY1 4523 VER 6615 OUHNDL 2215 RECCNT 0034 VTAB 3271 OUJMP 2423 RELBIN 4466 VTLF 3302 OUJMPE 2470 RELEND 4513 WASTE 0032 OUK 5323 RELERR 4541 XR 0010 OUNOWR 2306 RELLP 4472 YDUMP 6121 OUPOLD 2466 RELPTR 6634 YIHAND 6021 OUPTR 2467 RELSNA 4503 YINREC 6043 OUREC 2303 RELTBL 4717 YLOOP 6110 OUSAVE 5533 RUBOUT 3115 YNOOUT 6137 OUSETP 2400 SAME 0032 YOHAND 6063 OUTBLK 0030 SEMPTY 5531 YOUSYS 6036 OUTDIR 5631 SETCTC 5311 YSOUT 6134 OUTDMP 2247 SETSAM 5543 YTSOUT 6220 OUTEMP 2465 SGETIN 5416 ZEROK 5620 OUTINH 2472 SLASHG 2520 ZEROKS 5622 OUTOPN 3343 SLGRET 2532 ZRO70 3475 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