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