File: PIP50.LS of Disk: V50/Source/Source-Listing-PAL-1
(Source file text) 


/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 1

		/PIP V50 FOR OS/8 MONITOR V50
		/
		/
		/
		/
		/
		/
		/
		/
		/
		/COPYRIGHT  (C)  1977 BY DIGITAL EQUIPMENT CORPORATION
		/		 AND 2015 W. VAN DER MARK
		/
		/
		/
		/
		/
		/
		/
		/
		/
		/THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE
		/AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
		/CORPORATION.  DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY
		/FOR ANY ERRORS THAT MAY APPEAR IN THIS DOCUMENT.
		/
		/THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FURNISHED TO THE PURCHASER
		/UNDER A LICENSE FOR USE ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED
		/(WITH INCLUSION OF DIGITAL'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH
		/SYSTEM, EXCEPT AS MAY OTHERWISE BE PROVIDED IN WRITING BY DIGITAL.
		/
		/DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR THE USE
		/OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY
		/DIGITAL.
		/
		/
		/
		/
		/
		/
		/
		/
		/
		/

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 2




		/	16-JUL-20 FILE: PIP50.PA	OS/8 VERSION 50B
		/RL/EF/ET.AL./S.R./E.S.
		/JVZ/WVDM/DEVEXT VERSION 40A
		/WVDM/VERSION 50B



		/ABSTRACT----
		/PIP (PERIPHERAL INTERCHANGE PROGRAM) IS A GENERAL FILE
		/MANIPULATION PROGRAM FOR THE OS/8 PROGRAMMING SYSTEM.
		/PIP ACCOMPLISHES DATA TRANSFERS BETWEEN ANY DEVICES IN THE OS/8
		/CONFIGURATION.


		/VERSION 3 MODS:

		/FIXED PROBLEM WITH ONE-PAGE WRITE
		/IN /S OR /Z, =OPTION IS TAKEN MODULO 100 (OCTAL)
		/	WITH 100, 200, ETC. MEANING USE 0 ADDITIONAL WDS.
		/DATES STILL DON'T LINE UP
		/'0 FREE BLOCKS'
		/ALLOW FILLING UP DEVICE TO VERY LAST BLOCK
		/ALLOW 7-BIT ^C
		/ALTMODE ON CD LINE RETURNS TO MONITOR WHEN DONE
		/NO HALT ON /L IF NO TTY HANDLER (ACTS AS NOP)
		/ /V PRINTS VERSION NUMBER FIRST TIME CALLED
		/ /O AFFIRMS 'YES' ON 'ARE YOU SURE'
		/=NNNN ON /I OPTION SPECIFIES LENGTH TO CLOSE FILE


		/MAINTENANCE RELEASE CHANGES:

		/1.	FIXED LENGTH OF ALL VARIETIES OF RF08
		/2.	ADDED RX01 TO INTERNAL LENGTH TABLES
		/3.	CHANGED VERSION NUMBER TO V10
		/4.	ADDED CHECK FOR 7-BIT CTRL/Z TO ASCII HANDLER

		/E.S.	DISABLED /E,/F,/L
		/E.S.	FIXED /Y OPTION PER SPR
		/WVDM	ENABLED EFL
		/	FIXED /Y IN SOURCE
		/	ADDED NEW DATE FORMAT
		/DEVEXT	ADDED RX02 SUPPORT
		/	/Y OPTION FOR NEW MONITOR
		/	GERMAN MESSAGES

			/GERMAN=1	/NOT ANYMORE

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 3




		/DETAILS OF PIP:

		/PIP RUNS WITH THE USR (USER SERVICE ROUTINES) ALWAYS IN CORE.
		/THIS ELIMINATES SWAPPING THE MONITOR. IF ANY CHANGES ARE MADE
		/TO PIP, CARE SHOULD BE TAKEN IN USING PAGE ZERO LOCATIONS, AS
		/THEY MUST NOT DESTROY ANY MONITOR LOCATIONS.

		/CORE USED:
		/FIELD 0

		/00000-02777-	OUTPUT BUFFER
		/03000-06377-	INPUT BUFFER
		/06400-06577-	USED FOR NOTHING
		/06600-07177-	INPUT HANDLER
		/07200-07577-	OUTPUT HANDLER

		/FIELD 1

		/10000-11777-	OS/8 I/O MONITOR
		/12000-16577-	EXECUTABLE CODE
		/16600-17177-	HOLDS NEW DIRECTORY SEGMENT FOR /S OPTION
		/17200-17577-	HOLDS OLD DIRECTORY SEGMENT IN /S OPTION


		/MAJOR PIECES OF CODE AND THEIR FUNCTION (BRIEFLY).
		/THIS IS A LIST OF ROUTINES AS THEY APPEAR PHYSICALLY, AND
		/NOT AS THEY ARE LOGICALLY CONNECTED.

		/ICHAR-		GENERAL CHARACTER INPUT ROUTINE. ASSIGNS NEW
		/		DEVICE HANDLERS AS NEEDED.

		/OOPEN-		ENTERS A FILE ON A SPECIFIED DEVICE.

		/OUTDMP-	WRITES OUTPUT BUFFER TO OUTPUT DEVICE.

		/OCLOSE-	CLOSES FILE CREATED BY OOPEN

		/OCHAR-		CHARACTER OUTPUT ROUTINE. WRITES CHARACTERS
		/		TO OUTPUT BUFFER, CALLING OUTDMP WHEN FULL.

		/OTYPE-	USES DEVICE NUMBER IN OUTPUT AREA OF CD TO
		/		INSPECT THE DEVICE CONTROL BLOCK WORD. THIS
		/		GIVES A CODE FOR THE TYPE OF DEVICE.

		/SLASHG-	HANDLES I/O ERRORS. IF /G IS SET, HARD I/O
		/		ERRORS ARE IGNORED. IF /S AND /G ARE ON, A
		/		SPECIAL RETURN IS TAKEN.

		/IMAGE-		IMAGE MODE PROCESSOR FOR PIP.

		/SQTRA-		MAIN SUBROUTINE OF IMAGE MODE, AND /S OPTION.


/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 3-1

		/PIP, PIP+1-	MAIN ENTRANCES TO PIP. THE CODE ON THIS PAGE
		/		INSPECTS CD OPTION WORDS AND BRANCHES TO PROPER
		/		ROUTINES.

		/ASCII-		THE DEFAULT TRANSFER MODE IN PIP IS ASCII.

		/DELETE-	DELETES FILES ON OUTPUT SIDE OF CD LIST.

		/DZERO-		ZEROES DIRECTORY OF FIRST OUTPUT DEVICE.

		/PIPERR-	ERROR ROUTINR FOR PIP.

		/DIRPRE-	DIRECTORY PRINTING ROUTINE.

		/BINARY-	BINARY MODE PROCESSOR. HANDLES ABSOLUTE AND
		/		RELOCATABLE BINARY FILES.

		/ERPRNT-	ERROR PRINTOUT.

		/SQUISH-	FILE COMPRESSION PROCESSOR. ELIMINATES 'HOLES'
		/		IN DIRECTORY OF INPUT DEVICE.

		/SYSCOP-	SYSTEM COPY PROCESSOR. ALLOWS TRANSFER OF THE
		/		OS/8 SYSTEM AREA.

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 4




		/OPTIONS AVAILABLE IN PIP:

		/A-	ASCII TRANSFER; DEFAULT MODE
		/B-	BINARY MODE TANSFER
		/C-	DELETE TRAILING BLANKS. (ASCII MODE)
		/D-	DELETE FIRST OUTPUT FILE BEFORE PROCEEDING
		/E-	LIST INPUT DIRECTORY INCLUDING EMPTY FILES
		/F-	LIST INPUT DIRECTORY; ONLY FILE NAMES
		/G-	IGNORE ERRORS WHILE TRANSFERING
		/I-	IMAGE MODE TRANSFER
		/L-	LIST INPUT DIRECTORY; EXCLUDE EMPTY FILES
		/N-	NUMERIC DATES
		/O-	OK TO PERFORM A SQUISH OR ZERO WITHOUT ASKING
		/S-	COMPRESS INPUT DEVICE ONTO OUTPUT DEVICE. ELIMINATES
		/	'HOLES' ON INPUT DEVICE.
		/T-	PROVIDE SIMPLE TTY FORMATTING. (ASCII ONLY)
		/Y-	COPY OS/8 SYSTEM AREA
		/Z-	ZERO OUTPUT DEVICE DIRECTORY BEFORE PROCEEDING
		/=N-	LEAVE N WORDS EXTRA PER DIRECTORY ENTR. VALID
		/	ONLY WITH /S OR /Z.
		/=N-	WITH /I OPTION CLOSES OUTPUT FILE WITH THIS LENGTH
		/V	PRINTS VERSION # (FIRST TIME ONLY)

		/COMMENTS ON THE PROGRAM:

			/SINCE PIP RUNS WITH USR IN CORE, NO PAGE ZERO LITERALS
			/CAN BE USED. THE LOCATIONS CURRENTLY USED IN
			/FIELD 1 ON PAGE ZERO ARE:

	0010		OUTXR=10
	0011		INXR=11
	0012		TEMP1=12
	0024		IHNDLR=24	/HOLDS INPUT HANDLER ADDRESS
	0025		OHNDLR=25	/OUTPUT HANDLER ADDRESS
	0026		SQFLAG=26	/'SQUISH INDICATOR
	0027		OUWAST=27	/# WASTE WORDS ON OUTPUT
	0030		OUTBLK=30
	0031		OUDLEN=31
	0032		SAME=32
	0033		INBLK=33
	0034		RECCNT=34

		/CONSTANTS USED BY THE DIRECTORY PRINTOUT ROUTINE (OVERLAPPING) ARE:

	0024		FLENGT=24
	0025		BLOKNO=25
	0027		DTYPE=27
	0030		DCOUNT=30
	0031		DLINK=31
	0032		WASTE=32
	0033		DDATE=33
	0035		ECOUNT=35

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 5




			/PIP FOR OS/8 MONITOR
			/EQUIVALENCES FOR GENERAL CHARACTER I/O ROUTINES

	0000		OUBUF=0		/MUST BE LOWER THAN INBUF
	5400		OUCTL=5400	/OUTPUT BUFFER OF 3000 WORDS
	7200		OUDEVH=7200	/PROVIDE ROOM FOR TWO-PAGE HANDLERS
	3000		INBUF=3000
	1600		INCTL=1600	/INPUT BUFFER OF 3400 WORDS
	0007		INRECS=7
	6600		INDEVH=6600

					/PAGE 6400 IS FREE, EXCEPT DURING /Y COMMAND

			/EQUIVALENCES NECESSARY TO INTERFACE WITH MONITOR
	7760		DCB=7760
	7643		MPARAM=7643	/CD PARAMETER AREA
	7666		MDATE=7666	/MONITOR DATE
	7777		BIPCCL=7777	/BATCH,CCL,CORE,EX DATE
	0007		OLDDIR=7	/POINTER TO MONITOR VARIABLE "OLDT9"
	0027		MTEMP=27	/MONITOR SCRATCH AREA ON "SYS" - ***VOLATILE***
	0020		PTP=20		/INTERNAL TYPE CODE FOR PAPER TAPE PUNCH
	0010		XR=10
	0020		TEMP=20
	0021		CHAR=21
	0022		INFPTR=22
	0023		INEOF=23

	6601		ABUF=6601	/LINE BUFFER - 150 CHARACTERS LONG
	1400		SQBUF1=1400	/DIRECTORY BUFFER FOR "SQUISH" OPTION
	7200		SQBUF2=7200	/""

	0001		FIELD 1		/TO ENABLE /E,/F,/L SET
	0001		OS78=1		/DO NOT USE DIRECTORY SERVIES, DIRECT DOES IT
			IFNDEF OS78 <OS78=1>

		/	.PAL PIP12B
		/	.LOAD PIP12B=13000
		/	.SA SYS PIP=6403

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 6




			/GENERAL CHARACTER I/O ROUTINES FOR BLEEP
			/CALLED AS FOLLOWS:

			/JMS I (IOPEN		INITIALIZES THE INPUT ROUTINE

			/JMS I (ICHAR		READS A CHARACTER
			/ERROR RETURN		/AC>0 IF END OF FILE, AC<0 IF READ ERROR

			/JMS I (OOPEN		INITIALIZES THE OUTPUT ROUTINE
			/ERROR RETURN		AC>0 IF NO OUTPUT DEVICE/FILE, AC<0 IF ERROR

			/JMS I (OCHAR		OUTPUTS A CHARACTER
			/ERROR RETURN		OUTPUT ERROR OR TOO MUCH OUTPUT

			/JMS I (OCLOSE		CLOSES THE OUTPUT FILE
			/ERROR RETURN		FILE TOO LARGE TO BE CLOSED OR OUTPUT ERROR

			/JMS I (OTYPE		RETURNS DCB WORD OF OUTPUT DEVICE IN AC



			/PARAMETERS NEEDED:

			/INBUF=		ADDRESS OF INPUT BUFFER
			/INCTL=		INPUT BUFFER CONTROL WORD
			/OUBUF=		ADDRESS OF OUTPUT BUFFER
			/OUCTL=		OUTPUT BUFFER CONTROL WORD (MUST BE NEGATIVE)
			/INRECS=	[INCTL/256]
			/INDEVH=	ADDRESS OF PAGE FOR INPUT HANDLER
			/OUDEVH=	ADDRESS OF PAGE FOR OUTPUT HANDLER

			/ASSUMES I/O MONITOR IS RESIDENT IN CORE.
			/CAN BE CALLED FROM ANY FIELD WITH BUFFERS IN ANY FIELD.

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 7




	0000		INFLD=INCTL&70	/GET FIELD OF INPUT BUFFER
	0000		OUFLD=OUCTL&70	/DITTO OUTPUT BUFFER

	2000		*2000

012000  7400	IN7400,	7400
012001  0000	IOPEN,	0
012002  7240		CLA CMA
012003  3335		DCA INCHCT	/SET INCHCT TO FORCE A READ
012004  2023		ISZ INEOF	/SET END-OF-FILE FLAG TO FORCE A NEW FILE
012005  1377		TAD (7617
012006  3022		DCA INFPTR	/RESET FILE POINTER
012007  6214		RDF
012010  1246		TAD INCDIF
012011  3212		DCA .+1
012012  7402	INPTR,	HLT		/RESTORE CALLING FIELDS
012013  5601		JMP I IOPEN

012014  0000	ICHAR,	0
012015  7600	IN7600,	7600
012016  6214		RDF
012017  1246		TAD INCDIF
012020  3333		DCA INRTRN	/SAVE CALLING FIELDS
012021  6201	INCHAR,	CDF INFLD
012022  2302		ISZ INJMP	/BUMP THREE-WAY UNPACK SWITCH
012023  2335		ISZ INCHCT
012024  5302	INJMPP,	JMP INJMP
012025  1023		TAD INEOF
012026  7650		SNA CLA		/DID LAST READ YIELD END-OF-FILE?
012027  5232		JMP INGBUF	/NO - DO ANOTHER
012030  4335	GETNEW,	JMS INNEWF	/OPEN A NEW INPUT FILE
012031  5301		JMP EOFERR	/NO FILE TO OPEN
012032  1201	INGBUF,	TAD INCTR
012033  7100		CLL
012034  1376		TAD (INRECS
012035  7420		SNL
012036  3201		DCA INCTR	/RESTORE INCTR IF IT HASN'T OVERFLOWED
012037  7430		SZL		/IS THIS THE LAST READ?
012040  2023		ISZ INEOF	/YES - SET END-OF-FILE FLAG
					/NOT END-OF-FILE IF INPUT DEVICE
					/IS NON-FILE STRUCTURED!
012041  7172		CLL CML CMA RTR	/CONSTRUCT A CONTROL WORD FOR THE READ
012042  7012		RTR		/FROM THE AMOUNT OF THE OVERFLOW
012043  7012		RTR		/(IF ANY) AND THE STANDARD CONTROL WORD
012044  1375		TAD (INCTL+1
012045  3251		DCA INCTLW
012046  6203	INCDIF,	CDF CIF 0
012047  6211		CDF 10
012050  4746		JMS I INHNDL	/CALL THE DEVICE HANDLER
012051  0000	INCTLW,	0
012052  3000	INBUFP,	INBUF
012053  0000	INREC,	0

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 7-1

012054  4774		JMS I (SLASHG	/A HANDLER ERROR - SHOULD WE IGNORE?
012055  0020		INERRX-.	/ADDRESS IF NOT
012056  1253	INBREC,	TAD INREC
012057  1376		TAD (INRECS
012060  3253		DCA INREC	/UPDATE THE RECORD NUMBER
012061  1251		TAD INCTLW
012062  0215		AND IN7600
012063  7104		CLL RAL
012064  1251		TAD INCTLW
012065  0215		AND IN7600
012066  7040		CMA
012067  3335		DCA INCHCT	/COMPUTE THE NEW CHARACTER COUNT
012070  1224		TAD INJMPP
012071  3302		DCA INJMP	/RESET THE CHARACTER SWITCH
012072  1252		TAD INBUFP
012073  3212		DCA INPTR	/AND THE WORD POINTER
012074  5221		JMP INCHAR	/GO BACK AND MAKE BELIEVE THIS NEVER HAPPENED
012075  2023	INERRX,	ISZ INEOF	/EITHER AN END-OF-FILE OR A BADDIE
012076  7700		SMA CLA		/WHICH TYPE WAS IT?
012077  5256		JMP INBREC	/END OF FILE - RESUME THY PROCESSING
012100  7330	INERR,	CLA CLL CML RAR	/BADDIE - GIVE ERROR RETURN WITH NEGATIVE AC
012101  5333	EOFERR,	JMP INRTRN
012102  7402	INJMP,	HLT		/THIS IS THE THREE - WAY CHARACTER SWITCH
012103  5324		JMP ICHAR1
012104  5320		JMP ICHAR2
012105  1224	ICHAR3,	TAD INJMPP
012106  3302		DCA INJMP
012107  1612		TAD I INPTR
012110  0200	IN200,	AND IN7400
012111  7112		CLL RTR
012112  7012		RTR		/COMBINE THE HIGH-ORDER FOUR BITS OF
012113  1251		TAD INCTLW
012114  7012		RTR		/THE TWO WORD TO FORM THE THIRD CHARACTER
012115  7012		RTR
012116  2212		ISZ INPTR
012117  5325		JMP INCOMN
012120  1612	ICHAR2,	TAD I INPTR
012121  0200		AND IN7400
012122  3251		DCA INCTLW	/SAVE THE HIGH-ORDER BITS FOR THE THIRD CHAR
012123  2212		ISZ INPTR	/BUMP THE WORD POINTER
012124  1612	ICHAR1,	TAD I INPTR
012125  0373	INCOMN,	AND (377
012126  1372		TAD (-232
012127  7450	INCTZF,	SNA		/IS THE CHARACTER A ^Z?
012130  5230		JMP GETNEW	/YES - GET A NEW FILE
012131  1371		TAD (232	/RESTORE THE CHARACTER
012132  2214		ISZ ICHAR	/BUMP RETURN TO NORMAL RETURN
012133  0000	INRTRN,	0		/RESTORE CALLING FIELDS
012134  5614		JMP I ICHAR	/AND RETURN
					/IOPEN IS UNNECESSARY.

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 8




012135  7777	INNEWF,	-1		/ROUTINE TO OPEN NEW INPUT FILE
	2135		INCHCT=INNEWF
012136  6211		CDF 10
012137  1370		TAD (INDEVH+1
012140  3346		DCA INHNDL	/INITIALIZE HANDLER ADDRESS
012141  1422		TAD I INFPTR	/GET NEXT CD INPUT FILE ENTRY
012142  7450		SNA		/ANY MORE?
012143  5735		JMP I INNEWF	/NO - OUT OF INPUT
012144  4710		JMS I IN200
012145  0001		1		/ASSIGN, FETCH HANDLER
012146  0000	INHNDL,	0
012147  7402		HLT		/HUH?
012150  1422		TAD I INFPTR
012151  0367		AND (7760	/GET LENGTH PART OF WORD
012152  7440		SZA		/LENGTH OF 0 MEANS LENGTH >=256
012153  1366		TAD (17		/ADD HIGH-ORDER BITS
012154  7132		CLL CML RTR
012155  7012		RTR
012156  3201		DCA INCTR	/STORE LENGTH OF FILE
012157  2022		ISZ INFPTR
012160  1422		TAD I INFPTR
012161  3253		DCA INREC	/STORE STARTING RECORD NUMBER OF FILE
012162  2022		ISZ INFPTR
012163  3023		DCA INEOF	/ZERO END-OF-FILE FLAG
012164  2335		ISZ INNEWF
012165  5735		JMP I INNEWF
	2001		INCTR=IOPEN
012166  0017
012167  7760
012170  6601
012171  0232
012172  7546
012173  0377
012174  2520
012175  1601
012176  0007
012177  7617
	2200		PAGE

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 9




012200  0000	OOPEN,	0		/OPEN OUTPUT FILE
012201  7600	OU7600,	7600
		/	RDF
		/	TAD OUCDIF
		/	DCA OORETN
012202  1351		TAD OU7601
012203  3222		DCA OUBLK
012204  1377		TAD (OUDEVH+1
012205  3215		DCA OUHNDL
012206  6211		CDF 10
012207  1601		TAD I OU7600	/GET DEVICE NUMBER WORD OF OUTPUT FILE ENTRY
012210  0376		AND (17		/STRIP OFF ANY LENGTH INFO
012211  7450		SNA		/IS THERE AN OUTPUT DEVICE?
012212  5245		JMP ONOFIL	/NO - INHIBIT OUTPUT
012213  4775		JMS I (200
012214  0001		1		/ASSIGN, FETCH HANDLER
012215  0000	OUHNDL,	0		/OUTPUT DEVICE HANDLER ENTRY
012216  7402		HLT		/HUH?
012217  1601	OUENTR,	TAD I OU7600
012220  4775		JMS I (200
012221  0003		3		/ENTER OUTPUT FILE
012222  7601	OUBLK,	7601		/REPLACED WITH STARTING BLOCK
012223  0000	OUELEN,	0		/REPLACED WITH LENGTH OF HOLE
012224  5233		JMP OEFAIL	/FAILED - MAYBE WE ASKED TOO MUCH
012225  3352		DCA OUCCNT
012226  3774		DCA I (OUTINH	/ZERO OUTPUT INHIBIT FLAG
012227  4773		JMS I (OUSETP
012230  2200		ISZ OOPEN
012231  6213	OORETN,	CDF CIF 10	/RESTORE CALLING FIELDS
012232  5600		JMP I OOPEN
012233  1601	OEFAIL,	TAD I OU7600
012234  0372		AND (7760	/GET REQUESTED LENGTH
012235  7650		SNA CLA		/WAS IT AN INDEFINITE REQUEST
012236  5243		JMP ONTERR	/YES - CANNOT ENTER THE FILE
012237  1601		TAD I OU7600
012240  0376		AND (17		/MAKE THE REQUESTED LENGTH ZERO
012241  3601		DCA I OU7600
012242  5217		JMP OUENTR	/TRY, TRY AGAIN
012243  7330	ONTERR,	CLA CLL CML RAR
012244  5231		JMP OORETN	/TAKE THE ERROR RETURN WITH AC<0
012245  2774	ONOFIL,	ISZ I (OUTINH
012246  5231		JMP OORETN	/TAKE THE ERROR RETURN WITH AC=0

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 10




012247  0000	OUTDMP,	0
012250  3301		DCA OUCTLW	/STORE THE CONTROL WORD
012251  6211		CDF 10
012252  1774		TAD I (OUTINH
012253  7640		SZA CLA
012254  5306		JMP OUNOWR
012255  1352		TAD OUCCNT
012256  7450		SNA
012257  2301		ISZ OUCTLW
012260  1222		TAD OUBLK
012261  3303		DCA OUREC	/COMPUTE THE STARTING BLOCK NUMBER OF THIS TRANSFER
012262  1301		TAD OUCTLW
012263  7106		CLL RTL
012264  7006		RTL
012265  7006		RTL
012266  0376		AND (17		/COMPUTE THE NUMBER OF RECORDS
012267  1352		TAD OUCCNT	/UPDATE THE NUMBER OF BLOCKS IN THE FILE
012270  3352		DCA OUCCNT
012271  1352		TAD OUCCNT
012272  7120		CLL CML
012273  1223		TAD OUELEN
012274  7660		SNL SZA CLA	/DOES THE LENGTH EXCEED THE GIVEN LENGTH?
012275  5647		JMP I OUTDMP	/YES - SIGNAL OUTPUT ERROR
012276  6203	OUCDIF,	CDF CIF 0
012277  6211		CDF 10
012300  4615		JMS I OUHNDL
012301  0000	OUCTLW,	0
012302  0000		OUBUF
012303  0000	OUREC,	0
012304  4771		JMS I (SLASHG
012305  0002		.+2-.
012306  2247	OUNOWR,	ISZ OUTDMP	/BUMP OUTDMP TO NORMAL RETURN
012307  5647		JMP I OUTDMP

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 11




012310  0000	OCLOSE,	0
012311  6211		CDF 10
012312  1774		TAD I (OUTINH
012313  7640		SZA CLA		/IS OUTPUT INHIBITED?
012314  5354		JMP OCISZ	/YES - CLOSE IS A NOP
012315  4770		JMS I (OTYPE
012316  0367		AND (770
012317  1372		TAD (-PTP	/CHECK FOR PAPER TAPE PUNCH OUTPUT
012320  7640		SZA CLA		/AND SKIP ^Z OUTPUT IF TRUE
012321  1366		TAD (232	/OUTPUT A ^Z
012322  4765		JMS I (OCHAR
012323  5355		JMP OCRET
012324  4765		JMS I (OCHAR
012325  5355		JMP OCRET
012326  4765	FILLLP,	JMS I (OCHAR
012327  5355		JMP OCRET
012330  4770		JMS I (OTYPE	/GET TYPE OF OUTPUT DEVICE
012331  7710		SPA CLA
012332  1364		TAD (100	/IF ITS A DIRECTORY DEVICE FORCE A RECORD
012333  1363		TAD (77		/BOUNDARY - OTHERWISE A HALF-RECORD
012334  0762		AND I (OUDWCT
012335  7640		SZA CLA		/UP TO THE BOUNDARY YET?
012336  5326		JMP FILLLP	/NO - FILL WITH ZEROS
012337  1762		TAD I (OUDWCT	/GET DOUBLEWORD COUNT LEFT
012340  1361		TAD (OUCTL&3700
012341  7450		SNA		/A FULL WRITE LEFT?
012342  5346		JMP NODUMP	/YES - DON'T DO IT - THE ^Z IS ALREADY OUT
012343  1360		TAD (4000+OUFLD	/PUT IN THE FIELD BITS AND THE WRITE BIT
012344  4247		JMS OUTDMP
012345  5355		JMP OCRET	/AN ERROR OCCURRED WHILE DUMPING THE BUFFER
012346  1601	NODUMP,	TAD I OU7600	/GET THE DEVICE NUMBER
012347  4775		JMS I (200
012350  0004		4		/CLOSE THE OUTPUT FILE
012351  7601	OU7601,	7601		/POINTER TO THE OUTPUT FILE NAME
012352  0000	OUCCNT,	0
012353  7410		SKP		/ERROR WHILE CLOSING THE FILE - BAD!
012354  2310	OCISZ,	ISZ OCLOSE
012355  6213	OCRET,	CDF CIF 10	/RESTORE CALLING FIELDS
012356  5710		JMP I OCLOSE
012360  4000
012361  1400
012362  2471
012363  0077
012364  0100
012365  2410
012366  0232
012367  0770
012370  2473
012371  2520
012372  7760
012373  2400
012374  2472

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 11-1

012375  0200
012376  0017
012377  7201
	2400		PAGE

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 12




012400  0000	OUSETP,	0		/ROUTINE TO INITIALIZE CHARACTER POINTERS
012401  1377		TAD (OUCTL&3700	/GET SIZE OF BUFFER IN DOUBLEWORDS
012402  7041		CIA		/PAL10 IS DEFINITELY NOT NICE
012403  3271		DCA OUDWCT
		/	TAD (OUBUF
			IFNZRO OUBUF <ERROR!>	/V3
012404  3267		DCA OUPTR	/INITIALIZE WORD POINTER
012405  1270		TAD OUJMPE
012406  3223		DCA OUJMP	/INITIALIZE THREE-WAY CHARACTER SWITCH
012407  5600		JMP I OUSETP

012410  0000	OCHAR,	0
012411  0376		AND (377
012412  3265		DCA OUTEMP
012413  6214		RDF
012414  1375		TAD (CDF CIF 0
012415  3263		DCA OUCRET
012416  1272		TAD OUTINH
012417  7640		SZA CLA		/IS THERE AN OUTPUT FILE?
012420  5262		JMP OUCOMN	/NO - EXIT
012421  6201	OUCHAR,	CDF OUFLD	/SET DATA FIELD TO BUFFER'S FIELD
012422  2223		ISZ OUJMP	/BUMP THE CHARACTER SWITCH
012423  7402	OUJMP,	HLT		/THREE WAY CHARACTER SWITCH
012424  5260		JMP OCHAR1
012425  5255		JMP OCHAR2
012426  1265	OCHAR3,	TAD OUTEMP
012427  7106		CLL RTL
012430  7006		RTL
012431  0374		AND (7400
012432  1666		TAD I OUPOLD
012433  3666		DCA I OUPOLD	/UPDATE FIRST WORD OF TWO WITH HIGH
					/ORDER 4 BITS OF THIRD CHAR
012434  1265		TAD OUTEMP
012435  7112		CLL RTR
012436  7012		RTR
012437  7010		RAR
012440  0374		AND (7400
012441  1667		TAD I OUPTR
012442  3667		DCA I OUPTR	/UPDATE SECOND WORD FROM LOW ORDER 4 BITS
012443  1270		TAD OUJMPE
012444  3223		DCA OUJMP	/RESET SWITCH
012445  2267		ISZ OUPTR
012446  2271		ISZ OUDWCT	/BUMP DOUBLEWORD COUNTER EVERY 3 CHARS
012447  5262		JMP OUCOMN
012450  1373		TAD (OUCTL	/LOAD CONTROL WORD FOR A FULL WRITE
012451  4772		JMS I (OUTDMP	/DUMP THE BUFFER
012452  5263		JMP OUCRET	/OUTPUT ERROR - GIVE ERROR RETURN
012453  4200		JMS OUSETP	/RE-INITIALIZE THE POINTERS
012454  5262		JMP OUCOMN
012455  1267	OCHAR2,	TAD OUPTR
012456  3266		DCA OUPOLD	/SAVE POINTER TO FIRST WORD OF TWO
012457  2267		ISZ OUPTR	/BUMP WORD POINTER TO SECOND WORD

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 12-1

012460  1265	OCHAR1,	TAD OUTEMP
012461  3667		DCA I OUPTR
012462  2210	OUCOMN,	ISZ OCHAR
012463  7402	OUCRET,	HLT		/RESTORE CALLING FIELDS
012464  5610		JMP I OCHAR
012465  0000	OUTEMP,	0
012466  0000	OUPOLD,	0
012467  0000	OUPTR,	0
012470  5223	OUJMPE,	JMP OUJMP
012471  0000	OUDWCT,	0
012472  0000	OUTINH,	0

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 13




012473  0000	OTYPE,	0
012474  6214		RDF
012475  1375		TAD (CDF CIF 0
012476  3305		DCA OTRTN
012477  6211		CDF 10
012500  1771		TAD I (7600
012501  0370		AND (17
012502  1367		TAD (DCB-1
012503  3265		DCA OUTEMP
012504  1665		TAD I OUTEMP
012505  7402	OTRTN,	HLT
012506  5673		JMP I OTYPE
012507  0000	CTCTST,	0
012510  1366		TAD (200	/V3
012511  6034		KRS
012512  1365		TAD (-203
012513  7650		SNA CLA		/IS THE TELETYPE BUFFER A ^C
012514  6031		KSF		/WITH THE TELETYPE FLAG ON?
012515  5707		JMP I CTCTST	/NO
012516  6203	LEAVE,	CDF CIF 0	/YES - GO TO MONITOR
012517  5771		JMP I (7600	/THROUGH THE "SAVE CORE" RETURN

012520  0000	SLASHG,	0
012521  3307		DCA CTCTST
012522  1026		TAD SQFLAG
012523  7640		SZA CLA		/ARE WE SQUISHING?
012524  5764		JMP I (SQIOER	/YES
012525  1307		TAD CTCTST
012526  7710		SPA CLA		/ONLY IGNORE HARD ERRORS
012527  1763		TAD I (MPARAM
012530  0362		AND (40
012531  7640		SZA CLA		/ "G" SWITCH
012532  5720	SLGRET,	JMP I SLASHG	/IGNORED!
012533  1720		TAD I SLASHG
012534  1320		TAD SLASHG
012535  3320		DCA SLASHG	/SET UP NON-IGNORE ADDRESS
012536  1307		TAD CTCTST
012537  5720		JMP I SLASHG	/RETURN WITH AC RESTORED


/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 14





			IFZERO OS78 <
		DIR,	DCA DTYPE	/SAVE TYPE OF REQUEST
			TAD I (7600
			SZA CLA		/IS THERE AN OUTPUT FILE?
			JMP I (DIRPRE	/YES
			DCA TTYDEV+1
			JMS I (200
			12		/ASSIGN WITHOUT FETCH
		TTYDEV,	5524		/COMPRESSED CODE FOR "TTY"
			0
			0
			JMP I (PIP	/V3 WHAT - NO TELETYPE!
			TAD TTYDEV+1
			DCA I (7600
			JMP I (DIRPRE
			>

			IFNZRO OS78 <
012540  4761	DIR,	JMS I	(PIPERR	/TYPE OUT MESSAGE
012541  0014		14
012542  2523	DIRMSG,	TEXT	"USE DIRECT"
012543  0540
012544  0411
012545  2205
012546  0324
012547  0000
			>

012561  3521
012562  0040
012563  7643
012564  5645
012565  7575
012566  0200
012567  7757
012570  0017
012571  7600
012572  2247
012573  5400
012574  7400
012575  6203
012576  0377
012577  1400
	2600		PAGE

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 15




			/PIP PROPER BEGINS HERE
			/**********************

			/IMAGE MODE PROCESSOR FOR PIP

012600  7600	IM7600,	7600		/KEEP AT BEGINNING OF PAGE
012601  4777	IMAGE,	JMS I (FIXLEN
012602  4776		JMS I (OUTOPN
012603  4256		JMS IMTRA
012604  1775	IMCLOS,	TAD I (OUTINH
012605  7640		SZA CLA		/WAS THERE AN OUTPUT FILE?
012606  5774		JMP I (PIPCLR	/NO - DON'T CLOSE IT
012607  4773		JMS I (OUK	/GET THE LENGTH OF THE OUTPUT FILE
012610  3215		DCA IMCCNT
012611  1600		TAD I IM7600
012612  4747		JMS I IM200
012613  0004		4		/CLOSE
012614  7601		7601		/FILE NAME
012615  0000	IMCCNT,	0
012616  5772		JMP I (AOUERR
012617  5774		JMP I (PIPCLR

012620  0000	ENDFUJ,	0		/PART OF DIRECTORY PRINTING ROUTINE
012621  4771		JMS I (PRNUM
012622  1370		TAD (-7
012623  4767		JMS I (PRWD	/PRINT SEVEN WORDS
012624  4006	IFNDEF GERMAN < TEXT \ FREE BLOCKS  \>
012625  2205
012626  0540
012627  0214
012630  1703
012631  1323
012632  4040
012633  0000
		IFDEF  GERMAN < TEXT \ FREIE BLOECKE\>
	2633		*.-1
012633  4766		JMS I (PCRLF
012634  4766		JMS I (PCRLF	/LEAVE A SPACE BETWEEN DIRECTORIES
012635  2023		ISZ INEOF	/SIMULATE "END OF FILE" FOR INPUT ROUTINE
012636  7240		CLA CMA
012637  3765		DCA I (INCHCT	/AS WELL AS "END OF BUFFER"
012640  5620		JMP I ENDFUJ

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 16




		IMHNDL,			/V3
012641  0000	SQTRA,	0
012642  1241		TAD SQTRA
012643  3256		DCA IMTRA	/FAKE A CALL TO "IMTRA"
012644  1034		TAD RECCNT	/SETTING UP THE ARGS TO DO THE SQUISHING FOR US
012645  3764		DCA I (INCTR
012646  1024		TAD IHNDLR
012647  3241		DCA IMHNDL
012650  1033		TAD INBLK
012651  3312		DCA IMREC
012652  1030		TAD OUTBLK
012653  3763		DCA I (OUCCNT
012654  3023		DCA INEOF
012655  5271		JMP IMRCLP

012656  0000	IMTRA,	0
012657  4764		JMS I (IOPEN	/INITIALIZE INPUT ROUTINE
012660  1023	AGAIN,	TAD INEOF	/IOPEN ALWAYS SETS INEOF
012661  7650		SNA CLA		/KEEP READING?
012662  5271		JMP IMRCLP	/YES
					/NO, OPEN NEXT FILE
012663  4765	IMFILP,	JMS I (INNEWF	/SET UP PARAMS FOR NEXT FILE
012664  5656		JMP I IMTRA	/NO NEXT FILE
012665  1762		TAD I (INHNDL
012666  3241		DCA IMHNDL	/GET DEVICE HANDLER ENTRY
012667  1761		TAD I (INREC
012670  3312		DCA IMREC	/AND STARTING BLOCK NUMBER
012671  1764	IMRCLP,	TAD I (INCTR
012672  7100		CLL
012673  1360		TAD (15
012674  7420		SNL		/IF LINK IS ON, THERE ARE LESS THAN 16 BLOCKS LEFT
012675  3764		DCA I (INCTR
012676  7430		SZL
012677  2023		ISZ INEOF
012700  7172		CLL CML CMA RTR
012701  7012		RTR
012702  7012		RTR
012703  1357		TAD (3201	/FORM A FULL OR PARTIAL READ CONTROL WORD
012704  3310		DCA IMCTLW
012705  4756		JMS I (CTCTST	/CHECK FOR ^C
012706  6202		CIF 0
012707  4641		JMS I IMHNDL
012710  0000	IMCTLW,	0
012711  0000		OUBUF
012712  0000	IMREC,	0
012713  4755		JMS I (SLASHG
012714  0011		IMERRX-.
012715  1312		TAD IMREC
012716  1360		TAD (15
012717  3312		DCA IMREC	/UPDATE BLOCK NUMBER
012720  7330		CLA CLL CML RAR
012721  1310		TAD IMCTLW

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 16-1

012722  4754	IMOUT,	JMS I (OUTDMP	/WRITE OUT WHAT WE JUST READ IN
012723  5772		JMP I (AOUERR	/WRITE ERROR - BAD!
012724  5260		JMP AGAIN	/V3

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 17




012725  2023	IMERRX,	ISZ INEOF	/SIGNAL EOF OR WORSE
012726  7710		SPA CLA		/WHICH ONE IS IT?
012727  5342		JMP IMERR4
012730  1353		TAD (6377	/MARCH DOWN THROUGH CORE
012731  3021	IMEFLP,	DCA CHAR	/LOOKING FOR THE FIRST NON-ZERO WORD
012732  6201		CDF 0
012733  1421		TAD I CHAR
012734  7640		SZA CLA
012735  5344		JMP IMNZRO
012736  7340		CLA CMA CLL
012737  1021		TAD CHAR
012740  7430		SZL		/IF WE GO THROUGH THE BUFFER WITHOUT A NON-ZERO WORD
012741  5331		JMP IMEFLP
012742  4752	IMERR4,	JMS I (PIPERR	/SOMETHING IS WRONG (HANDLER SHOULD HAVE INSERTED
012743  0004		4		/A ^Z AT LEAST)
012744  6211	IMNZRO,	CDF 10
012745  1021		TAD CHAR
012746  7130		CLL CML RAR
012747  0200	IM200,	AND IM7600
012750  1347		TAD IM200	/GET THE LENGTH OF THE USEFUL PART OF THE BUFFER
012751  5322		JMP IMOUT	/AS AN OUTPUT CONTROL WORD AND GO OUTPUT IT
012752  3521
012753  6377
012754  2247
012755  2520
012756  2507
012757  3201
012760  0015
012761  2053
012762  2146
012763  2352
012764  2001
012765  2135
012766  4142
012767  4050
012770  7771
012771  4101
012772  6531
012773  5323
012774  6126
012775  2472
012776  3343
012777  3700
	3000		PAGE

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 18




		/** PIP STARTS HERE (OR HERE+1 IF CHAINED TO) **

013000  5230	PIPSA,	JMP PIPCD	/NORMAL ENTRY/RE-ENTRY - CALL CD
013001  5233		JMP NOPCD	/ENTRY FROM CHAIN COMMAND - ASSUME CD AREA SET UP
			/PART OF ASCII PROCESSOR - CLEAN UP AT END OF LINE AND END OF FILE

013002  1021	LFEED,	TAD CHAR
013003  3410		DCA I XR	/PUT THE LINE FEED IN THE LINE BUFFER
013004  3410	EOL,	DCA I XR	/MARK THE END OF USEFUL INFO
013005  4777		JMS I (CTCTST
013006  1376		TAD (ABUF-1
013007  3010		DCA XR		/RESET BUFFER POINTER
013010  1410	EOLLP,	TAD I XR	/GET A CHARACTER FROM THE LINE BUFFER
013011  7450	PIPSNA,	SNA		/ZERO MEANS NO MORE CHARS
013012  5216		JMP EOFTST
013013  4775		JMS I (OCHAR	/OUTPUT THE CHARACTER
013014  5774		JMP I (AOUERR
013015  5210		JMP EOLLP
013016  1314	EOFTST,	TAD AEOFFG
013017  7650		SNA CLA		/END OF INPUT ENCOUNTERED?
013020  5773		JMP I (ASCIGO	/NO - GET NEXT LINE
013021  4772	ACLOSE,	JMS I (OCLOSE	/YES - CLOSE THE OUTPUT FILE
013022  5774		JMP I (AOUERR	/ERROR ON CLOSE
013023  1771	PIP,	TAD I (MPARAM-1	/V3
013024  7700		SMA CLA		/ALTMODE TERMINATE LAST COMMAND STRING?
013025  5230		JMP PIPCD	/NO
013026  6203		CDF CIF 0	/YES
013027  5770		JMP I (7605	/EXIT TO OS/8 WITHOUT SAVING CORE
013030  4767	PIPCD,	JMS I (200	/OF COURSE THE MONITOR IS IN CORE!
013031  0005		5		/COMMAND DECODE
013032  0000		0		/NO ASSUMED EXTENSIONS ON INPUT
		L20,			/V3
013033  4776	NOPCD,	JMS I (ONCE	/REPLACED BY '20' BY ONCE-ONLY CODE
013034  4766		JMS I (SRSTOR	/CLEAR /S OR /Y;READ MONITOR
013035  3026		DCA SQFLAG	/CLEAR /S INDICATOR
013036  1211		TAD PIPSNA
013037  3765		DCA I (INCTZF	/RESET INPUT SWITCH TO DETECT "^Z"'S
013040  1764		TAD I (MPARAM+1
013041  0363		AND (40		/"S" SWITCH
013042  7640		SZA CLA
013043  5762		JMP I (SQUISH	/IT WAS ON - COMPRESS THE INDICATED DEVICES
013044  1761		TAD I (MPARAM+2
013045  7006		RTL
013046  7630		SZL CLA		/"Z" SWITCH IN THE LINK
013047  4760		JMS I (DZERO	/ZERO DIRECTORY BEFORE PROCEEDING
013050  1757		TAD I (MPARAM
013051  0356		AND (400	/"D" SWITCH
013052  7640		SZA CLA
013053  4755		JMS I (DELETE	/DELETE OUTPUT FILE
013054  1761		TAD I (MPARAM+2	/IS /Y ON?
013055  7710		SPA CLA
013056  5754		JMP I (SYSCOP	/YEP..TRANSFER SYSTEM HEAD

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 18-1

013057  1757		TAD I (MPARAM
013060  0353		AND (301	/"E","F" AND "L" SWITCHES
013061  7440		SZA		/ANY ONE OF THEM ON?
013062  5752		JMP I (DIR	/YES - LIST A DIRECTORY
013063  1757		TAD I (MPARAM
013064  7006		RTL
013065  0363		AND (40		/"I" SWITCH ROTATED TWO LEFT
013066  7640		SZA CLA
013067  5751		JMP I (IMAGE	/IMAGE MODE TRANSFER
013070  1750		TAD I (7617	/MUST PRESERVE THE LINK
013071  7650		SNA CLA		/V3 IMAGE MODE ALLOWS NO INPUT FILE
013072  5223		JMP PIP		/TERMINATE HERE IF NO INPUT SIDE
013073  7630		SZL CLA		/"B" SWITCH IN LINK
013074  5747		JMP I (BINARY	/BINARY MODE TRANSFER

			/DEFAULT MODE OF TRANSFER IS ASCII

013075  1764	ASCII,	TAD I (MPARAM+1
013076  0233		AND L20
013077  3333		DCA COPTSW
013100  1333		TAD COPTSW
013101  4746		JMS I (ASCI2	/TEST FOR OUTPUT DEVICE
013102  4745		JMS I (OUTOPN
013103  4744		JMS I (IOPEN	/OPEN THE INPUT FILES
013104  3314		DCA AEOFFG	/ZERO THE END-OF-FILE FLAG
013105  4743		JMS I (LEADER
013106  5773		JMP I (ASCIGO

			/ENTRY ON END OF INPUT
013107  7710	ASCEOF,	SPA CLA		/WAS IT END OF INPUT OR AN INPUT ERROR?
013110  4742	PER4,	JMS I (PIPERR
013111  0004		4
013112  2314		ISZ AEOFFG	/SET END-OF-INPUT FLAG
013113  5204		JMP EOL		/PROCESS LAST LINE (IF ANY)
013114  0000	AEOFFG,	0

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 19




			/SUBROUTINE TO OUTPUT RUBOUTS AFTER FORM CONTROL CHARACTERS
013115  0000	RUBOUT,	0		/UNLESS OUTPUT IS TO A DIRECTORY DEVICE
013116  3020		DCA TEMP	/STORE COUNT
013117  4741		JMS I (OTYPE	/GET TYPE OF OUTPUT DEVICE
013120  7710		SPA CLA
013121  5715		JMP I RUBOUT	/DIRECTORY DEVICE - DON'T BOTHER
013122  1021	RBTLP,	TAD CHAR
013123  1340		TAD (-214
013124  7640		SZA CLA		/IS THE FORM CONTROL CHAR A FORM-FEED?
013125  7240		STA		/NO - RUBOUT
013126  1356		TAD (400	/YES - OUTPUT BLANK TAPE INSTEAD
013127  3410		DCA I XR	/PUT IN BUFFER
013130  2020		ISZ TEMP
013131  5322		JMP RBTLP		/LOOP FOR THE REQUISITE COUNT
013132  5715		JMP I RUBOUT
013133  0000	COPTSW,	0

013134  7710	DEND,	SPA CLA
013135  5310		JMP PER4
013136  5221		JMP ACLOSE
013140  7564
013141  2473
013142  3521
013143  3533
013144  2001
013145  3343
013146  6466
013147  4401
013150  7617
013151  2601
013152  2540
013153  0301
013154  6001
013155  3401
013156  0400
013157  7643
013160  3435
013161  7645
013162  5200
013163  0040
013164  7644
013165  2127
013166  5664
013167  0200
013170  7605
013171  7642
013172  2310
013173  3200
013174  6531
013175  2410
013176  6600
013177  2507

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 19-1

	3200		PAGE

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 20




	3200		*3200
			/ASCII PROCESSOR CONTINUED

013200  1377	ASCIGO,	TAD (ABUF-2
013201  3010		DCA XR
013202  3410		DCA I XR	/PROTECT AGAINST NULL LINE WITH "T" OPTION
013203  3342		DCA COLCT	/ZERO COLUMN COUNTER FOR TAB CONVERSION
013204  4776	ACHLP,	JMS I (ICHAR	/GET A CHARACTER
013205  5775		JMP I (ASCEOF	/END OF INPUT OR WORSE
013206  0374		AND (177	/MASK OUT PARITY BIT
013207  7440		SZA		/IGNORE BLANK TAPE AND LEADER/TRAILER
013210  1373		TAD (-177
013211  7450		SNA
013212  5204		JMP ACHLP	/DITTO RUBOUTS
013213  1372		TAD (177-32	/V3C
013214  7450		SNA
013215  5771		JMP I (ASCPTCH	/7-BIT ^Z CHECK
013216  1370		TAD (232	/FORCE COLUMN 8 ON
013217  3021		DCA CHAR
013220  1021		TAD CHAR
013221  1367		TAD (-216
013222  7100		CLL
013223  1350		TAD ASCI5
013224  7420		SNL		/IS THE CHARACTER A FORM CONTROL CHARACTER?
013225  5237		JMP CINSRT	/NO
013226  1231		TAD ASCJMP	/YES - GO TO APPROPRIATE ROUTINE
013227  3230		DCA .+1
013230  7402		HLT
013231  5632	ASCJMP,	JMP I .+1
013232  3251		TAB
013233  3002		LFEED
013234  3271		VTAB
013235  3311		FFEED
013236  3321		CARRET
013237  7600	CINSRT,	7600		/GRP 2 CLA
013240  1021		TAD CHAR
013241  3410	ADCAXR,	DCA I XR	/STORE THE CHARACTER IN THE LINE BUFFER
013242  2342		ISZ COLCT	/ALWAYS BUMP THE COLUMN POINTER
013243  1010	TESTXR,	TAD XR
013244  1366		TAD (-ABUF-226
013245  7710		SPA CLA		/HAS THE BUFFER OVERFLOWED?
013246  5204		JMP ACHLP	/NO - GET NEXT CHARACTER
013247  4765		JMS I (PIPERR
013250  0001		1

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 21




013251  1764	TAB,	TAD I (COPTSW
013252  7650		SNA CLA		/DO WE WANT TO CONVERT?
013253  5264		JMP TABRBT	/NO
013254  1363	TABLP,	TAD (240
013255  3410		DCA I XR	/OUTPUT A SPACE
013256  2342		ISZ COLCT
013257  1342		TAD COLCT
013260  0362		AND (7
013261  7640		SZA CLA		/IS THE COLUMN COUNTER A MULTIPLE OF 8?
013262  5254		JMP TABLP	/NOT YET
013263  5243		JMP TESTXR	/YES - CHECK BUFFER OVERFLOW
013264  1021	TABRBT,	TAD CHAR
013265  3410		DCA I XR
013266  7240		CLA CMA
013267  4761		JMS I (RUBOUT	/TWO RUBOUTS FOLLOW A TAB
013270  5243		JMP TESTXR	/CHECK FOR BUFFER OVERFLOW
013271  1764	VTAB,	TAD I (COPTSW
013272  7640		SZA CLA		/SHOULD WE CONVERT?
013273  5302		JMP VTLF	/YES
013274  1021		TAD CHAR
013275  3410		DCA I XR
013276  1360		TAD (-4
013277  4761		JMS I (RUBOUT	/FOUR RUBOUTS AFTER A VERTICAL TAB
013300  5757		JMP I (EOL
013301  1360	FFLF,	TAD (-4		/NINE LINE FEED SIMULATE A FORM FEED
013302  1356	VTLF,	TAD (-5		/FIVE LINE FEEDS SIMULATE A VERTICAL TAB
013303  3020		DCA TEMP
013304  1355		TAD (212
013305  3410		DCA I XR
013306  2020		ISZ TEMP
013307  5304		JMP .-3
013310  5757		JMP I (EOL	/FORM FEED AND VERTICAL TAB ARE LINE ENDERS

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 22




013311  1764	FFEED,	TAD I (COPTSW
013312  7640		SZA CLA		/SHOULD WE CONVERT?
013313  5301		JMP FFLF	/YES
013314  1021		TAD CHAR
013315  3410		DCA I XR
013316  1354		TAD (-11	/NINE RUBOUTS AFTER A FORM FEED
013317  4761		JMS I (RUBOUT
013320  5757		JMP I (EOL
013321  1753	CARRET,	TAD I (MPARAM
013322  7006		RTL
013323  7700		SMA CLA		/"C" SWITCH MEANS DELETE TRAILING BLANKS FROM CARDS
013324  5337		JMP NOTOPT	/IT WASN'T ON
013325  1010	TOPT,	TAD XR
013326  3020		DCA TEMP
013327  1420		TAD I TEMP
013330  1352		TAD (-240
013331  7640		SZA CLA		/WAS THE LAST CHAR ON THE LINE A SPACE?
013332  5337		JMP NOTOPT	/NO
013333  7240		CLA CMA
013334  1010		TAD XR		/YES - BACK UP THE LINE POINTER
013335  3010		DCA XR
013336  5325		JMP TOPT
013337  1021	NOTOPT,	TAD CHAR
013340  3410		DCA I XR	/STORE THE CARRIAGE RETURN IN THE BUFFER
013341  5243		JMP TESTXR	/CARRIAGE RETURN IS NOT A LINE TERMINATOR
013342  0000	COLCT,	0

013343  0000	OUTOPN,	0
013344  4751		JMS I (OOPEN
013345  7700		SMA CLA
013346  5743		JMP I OUTOPN
013347  4765		JMS I (PIPERR
013350  0005	ASCI5,	5
013351  2200
013352  7540
013353  7643
013354  7767
013355  0212
013356  7773
013357  3004
013360  7774
013361  3115
013362  0007
013363  0240
013364  3133
013365  3521
013366  0751
013367  7562
013370  0232
013371  6536
013372  0145
013373  7601

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 22-1

013374  0177
013375  3107
013376  2014
013377  6577
	3400		PAGE

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 23




			/SUBROUTINES CALLED BY THE REST OF PIP

013400  0770	K770,	770		/** DON'T MOVE THIS CONSTANT
013401  0000	DELETE,	0
013402  1322		TAD P7600
013403  3223		DCA DPFILE
013404  7346		CLA CLL CMA RTL
013405  3021		DCA CHAR	/MAXIMUM OF THREE OUTPUT FILES
013406  1377	DELOOP,	TAD (7201
013407  3215		DCA DLHNDL
013410  1623		TAD I DPFILE
013411  7450		SNA		/DOES THIS FILE EXIST?
013412  5601		JMP I DELETE	/THAT'S ALL
013413  4735		JMS I C200
013414  0001		1		/ASSIGN HANDLER FOR THE DELETION
013415  0000	DLHNDL,	0
013416  7402		HLT
013417  1623		TAD I DPFILE	/RELOAD DEVICE NUMBER FOR DELETE
013420  2223		ISZ DPFILE	/BUMP DPFILE TO POINT TO THE FILE NAME
013421  4735		JMS I C200	/DEVICE NUMBER IN AC
013422  0004	DP4,	4		/CLOSE - USED AS DELETE IN THIS CASE
013423  0000	DPFILE,	0		/POINTER TO FILE NAME
013424  0000		0		/ZERO LENGTH FOR DELETE
013425  4776		JMS I (PIPERR	/FILE WASN'T THERE TO BE DELETED
013426  0003		3
013427  1223		TAD DPFILE
013430  1222		TAD DP4
013431  3223		DCA DPFILE
013432  2021		ISZ CHAR
013433  5206		JMP DELOOP	/DELETE AS MANY FILES AS HE LISTED(UP TO 3)
013434  5601		JMP I DELETE

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 24




013435  0000	DZERO,	0		/SUBROUTINE TO ZERO THE DIRECTORY OF THE
					/FIRST OUTPUT DEVICE
013436  4775		JMS I (OTYPE
013437  7106		CLL RTL
013440  7430		SZL		/IS DEVICE READ-ONLY?
013441  5314		JMP OZERR	/YES - ERROR
013442  7012		RTR
013443  7500		SMA		/FILE STRUCTURED HAVE 4000 BIT ON
013444  5317		JMP	NONDIR	/NON DIRECTORY DEVICE
013445  0200		AND K770	/MASK OUT DEVICE TYPE
013446  7112		CLL RTR
013447  7010		RAR
013450  1374		TAD (DEVLEN	/USE IT TO INDEX A TABLE OF DEVICE LENGTHS
013451  3321		DCA PIPERR
013452  1377		TAD (OUDEVH+1
013453  3257		DCA OZHNDL
013454  1722		TAD I P7600
013455  4735		JMS I C200
013456  0001		1		/ASSIGN DEVICE, FETCH HANDLER
013457  0000	OZHNDL,	0
013460  7402		HLT
013461  1721		TAD I PIPERR
013462  7450		SNA		/IS THE LENGTH ZERO?
013463  4773		JMS I (DVREDE	/IF LENGTH ZERO GO "READ LENGTH"
013464  3321		DCA PIPERR	/STORE LENGTH
013465  4772		JMS I (CONFRM	/ASK IF HE'S SURE
013466  5534		SURE		/V3
013467  1771		TAD I (MPARAM+2	/IF /Y ON, DO SYSTEM ZERO
013470  7710		SPA CLA
013471  5275		JMP ZRO70
013472  1257		TAD OZHNDL	/BUT IF NOT, CHECK FOR SYSTEM ZERO
013473  1370		TAD (-7607
013474  7650		SNA CLA
013475  1367	ZRO70,	TAD (61
013476  1366		TAD (7		/NOT SYSTEM FILES BEGIN AT 7
013477  3765		DCA I (DFORG
013500  3764		DCA I (SQFLAG	/AND CLEAR OUT SQUISHES
013501  1321		TAD PIPERR
013502  1765		TAD I (DFORG
013503  3763		DCA I (DLENGT
013504  4762		JMS I (GETEQ
013505  3761		DCA I (DWASTE	/DEFINE # OF WASTE WORDS
013506  3760		DCA I (MPARAM+3	/KILL = OPTION FOR FUTURE /I TRANSFERS
013507  6202		CIF 0
013510  4657		JMS I OZHNDL
013511  5410		5410		/V3 OUTPUT 6 BLOCKS FROM FIELD 1
013512  6200		DIRECT
013513  0001		1		/ALL DIRECTORIES ARE IN RECORD 1
013514  4776	OZERR,	JMS I (PIPERR	/ERROR WHILE ZEROING DIRECTORY
013515  0002		2
013516  3007		DCA OLDDIR	/ZERO DIRECTORY POINTER TO FORCE A NEW READ
013517  7200	NONDIR,	CLA		/NON DIRECTORY RETURN

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 24-1

013520  5635		JMP I DZERO

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 25




013521  0000	PIPERR,	0
013522  7600	P7600,	7600		/V3 CLA
013523  4757		JMS I (SRSTOR	/RESET 07600!
013524  6211		CDF 10		/JUST IN CASE
013525  1721		TAD I PIPERR	/GET ARG
013526  1356		TAD (ERRTBL
013527  3020		DCA TEMP
013530  1420		TAD I TEMP
013531  4755		JMS I (ERPRNT
013532  5754		JMP I (PIP	/RESTART PIP

013533  0000	LEADER,	0
013534  4775		JMS I (OTYPE
013535  0200	C200,	AND K770	/GET THE TYPE OF THE OUTPUT DEVICE
013536  1353		TAD (-PTP	/IS IT A PAPER TAPE PUNCH?
013537  7640		SZA CLA
013540  5733		JMP I LEADER	/NO
013541  1322		TAD P7600
013542  3020		DCA TEMP
013543  4752		JMS I (OCHAR	/PUT OUT SOME LEADER
013544  5751		JMP I (AOUERR
013545  2020		ISZ TEMP
013546  5343		JMP .-3
013547  5733		JMP I LEADER
013551  6531
013552  2410
013553  7760
013554  3023
013555  4600
013556  4737
013557  5664
013560  7646
013561  6204
013562  6332
013563  6206
013564  0026
013565  6201
013566  0007
013567  0061
013570  0171
013571  7645
013572  3730
013573  6341
013574  3600
013575  2473
013576  3521
013577  7201
	3600		PAGE

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 26




			/TABLE OF DEVICE LENGTHS FOR /Z OPTION
			/I.E. THE ONE THAT IS IN 'PIP' AT 13600
			/LAST UPDATE 1-JAN-1980
013600  0000	DEVLEN,	0000		/0:  TTY
013601  0000		0000		/1:  PTR
013602  0000		0000		/2:  PTP
013603  0000		0000		/3:  CDR
013604  0000		0000		/4:  LPT
013605  1520		1520		/5:  RK08 (1520= - DECIMAL 3248)
013606  6001		6001		/6:  RF08 IN VARIOUS SIZES
013607  4001		4001		/7:  "
013610  2001		2001		/10: "
013611  0001		0001		/11: "(CHEATS A BLOCK ON LARGEST TO KEEP IT NON-ZERO)
013612  7601		7601		/12: DF32 IN VARIOUS SIZES
013613  7401		7401		/13: "
013614  7201		7201		/14: "
013615  7001		7001		/15: "(CHEATS A BLOCK TO AVOID HARDWARE TROUBLE)
013616  6437		6437		/16: TC08 DECTAPE
013617  6437		6437		/17: LINCTAPE
013620  0000		0000		/20: MAGTAPE
013621  6437		6437		/21: TD8E
013622  0000		0000		/22: BAT: BATCH HANDLER
013623  1520		1520		/23: 1/2 OF AN RK8E
013624  0000		0000		/24: NULL: NULL HANDLER
013625  7022		7022		/25: RX01 FLOPPY DISK
013626  0017		0017		/26: RL01 A,B BIG
013627  0000		0000		/27: TA8E CASSETTE
013630  0000		0000		/30: PDP-12 SCOPE AND TEK DISPLAY
013631  4027		4027		/31: RL01 C SMALL
013632  0000		0000		/32: NEW RX MUST BE ZERO TO EXAMINE MEDIA
013633  7600		7600		/33: VX EXT.MEM.	PLATTER #1
013634  7400		7400		/34: VX EXT.MEM.	PLATTER #1,2
013635  7200		7200		/35: VX EXT.MEM.	PLATTER #1,2,3
013636  0000		0000		/36: DUMP
013637  7000		7000		/37: TU58 DECTAPE II (6-BIT BYTES)
013640  1520		1520		/40: SYS. IND. MOD43 DISK
013641  6556		6556		/41: RB01 1.5 DENSITY FLOPPY - INTERLEAVE 2
013642  6556		6556		/42: RB07 1.5 DENSITY FLOPPY - INTERLEAVE 4
013643  0000		0000		/43: EDOU
013644  0000		0000		/44: EDIN
013645  0000		ZBLOCK 3	/USER DEVICES
013650  0000		0		/50: MULTI8 VIRTUAL DEV
013651  0000		0		/51: "
013652  0000		0		/52: "
013653  0000		0		/53: "
013654  0000		0		/54: "
013655  0000		0		/55: "
013656  0000		0		/56: "
013657  0000		0		/57: "
013660  0000		0000		/60: ASYNCHRONOUS COMMUNICATION
013661  0000		ZBLOCK 17

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 27




013700  0000	FIXLEN,	0		/ROUTINE TO ESTIMATE OUTPUT FILE LENGTH
013701  1777		TAD I (7600
013702  0376		AND (7760
013703  7640		SZA CLA		/DID THE USER PROVIDE AN ESTIMATE?
013704  5700		JMP I FIXLEN	/YES - USE IT
013705  3021		DCA CHAR
013706  1375		TAD (7617
013707  3020		DCA TEMP
013710  1420	FIXLP,	TAD I TEMP	/GET NEXT INPUT FILE
013711  7450		SNA
013712  5324		JMP FIXOVR	/NO MORE INPUT FILES
013713  0376		AND (7760
013714  7141		CIA CLL		/GET LENGTH AS A POSITIVE NUMBER
					/(LENGTH OF ZERO TURNS LINK ON)
013715  1021		TAD CHAR
013716  3021		DCA CHAR	/UPDATE CUMULATIVE LENGTH
013717  7630		SZL CLA		/DID CUMULATIVE LENGTH OVERFLOW 256 BLOCKS?
013720  5700		JMP I FIXLEN	/YES - CAN'T ESTIMATE IT
013721  2020		ISZ TEMP
013722  2020		ISZ TEMP
013723  5310		JMP FIXLP
013724  1021	FIXOVR,	TAD CHAR
013725  1777		TAD I (7600
013726  3777		DCA I (7600	/STICK LENGTH IN OUTPUT FILE DESCRIPTOR
013727  5700		JMP I FIXLEN

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 28




013730  0000	CONFRM,	0
013731  1774		TAD I	(MPARAM+1
013732  7006		RTL		/'O' BIT TO SIGN
013733  7710		SPA CLA
013734  5354		JMP	GOTCON	/V3 'O' MEANS OK, ASSUME 'YES'
013735  1730		TAD I	CONFRM	/V3
013736  4773		JMS I	(ERPRNT
013737  6031		KSF
013740  5337		JMP	.-1
013741  4772		JMS I	(CTCTST
013742  6036		KRB		/LOOK AT HIS REPLY
013743  3300		DCA	FIXLEN
013744  1300		TAD	FIXLEN
013745  4771		JMS I	(TTYOUT	/ECHO IT
013746  1300		TAD	FIXLEN
013747  0370		AND	(137	/ALLOW LOWER CASE
013750  1367		TAD	(-"Y!7600
013751  7440		SZA		/IS IT YES?
013752  1366		TAD	("Y-"J
013753  7650		SNA CLA		/ODER IST ES JA?
013754  2026	GOTCON,	ISZ	SQFLAG	/YES: SET SQFLAG TO 1 (NEEDED 1 LATER)
013755  1026		TAD	SQFLAG
013756  7650		SNA CLA
013757  5765		JMP I	(PIP
013760  2330		ISZ	CONFRM
013761  5730		JMP I	CONFRM

013765  3023
013766  0017
013767  7647
013770  0137
013771  5000
013772  2507
013773  4600
013774  7644
013775  7617
013776  7760
013777  7600
	4000		PAGE

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 29




			/DIRECTORY PRINTER FOR PIP

014000  4777	DIRPRE,	JMS I (OUTOPN	/OPEN THE OUTPUT FILE
014001  1376		TAD (ABUF
014002  3021		DCA CHAR	/ABUF WILL BE A TEMPORARY ARRAY OF STARTING FILES
014003  1375		TAD (7617
014004  3020		DCA TEMP
014005  1775		TAD I (7617
014006  7450		SNA
014007  4774		JMS I (DSKNUM
014010  3775		DCA I (7617	/DEFAULT DIRECTORY IS DSK:
014011  1420	DFUJLP,	TAD I TEMP
014012  7450		SNA		/ARE WE THROUGH WITH THE INPUT DEVICES?
014013  5240		JMP GETDIR	/YES
014014  0373		AND (17
014015  3420		DCA I TEMP	/ONLY THE DEVICE NUMBER IS IMPORTANT
014016  1420		TAD I TEMP
014017  1372		TAD (DCB-1
014020  3250		DCA PRWD
014021  7326		CLA CLL CML RTL
014022  1020		TAD TEMP
014023  3022		DCA INFPTR	/THIS SERVES NO FUNCTION EXCEPT IMPROVING ERROR MESSAGES
014024  1650		TAD I PRWD
014025  7700		SMA CLA		/IS THE DEVICE A DIRECTORY DEVICE?
014026  4771		JMS I (PIPERR	/NO
014027  0006		6
014030  2020		ISZ TEMP
014031  1420		TAD I TEMP
014032  3421		DCA I CHAR	/SAVE THE STARTING BLOCK NUMBER
014033  7201		CLA IAC
014034  3420		DCA I TEMP	/READ FROM THE DIRECTORY
014035  2020		ISZ TEMP
014036  2021		ISZ CHAR
014037  5211		JMP DFUJLP
014040  1376	GETDIR,	TAD (ABUF
014041  3021		DCA CHAR
014042  4342		JMS PCRLF
014043  1770		TAD I (MDATE
014044  4767		JMS I (PDATE
014045  4342		JMS PCRLF
014046  4766		JMS I (IOPEN	/RESET POINTERS - WERE GONNA FAKE OUT THOSE "GENERAL"
					/ROUTINES
014047  5765		JMP I (NXTDIR

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 30




014050  0000	PRWD,	0		/ROUTINE TO PRINT SIXBIT TEXT
014051  7450		SNA		/IS COUNT ZERO?
014052  7040		CMA		/MAKE IT ONE
014053  3267		DCA PRCT	/STORE COUNT
014054  1650	PRWDLP,	TAD I PRWD
014055  7012	PR212,	RTR
014056  7012		RTR
014057  7012		RTR
014060  4270		JMS PR6BIT
014061  1650		TAD I PRWD
014062  4270		JMS PR6BIT
014063  2250		ISZ PRWD
014064  2267		ISZ PRCT
014065  5254		JMP PRWDLP
014066  5650		JMP I PRWD
014067  0000	PRCT,	0
014070  0000	PR6BIT,	0
014071  0364		AND (77
014072  7440		SZA
014073  1363		TAD (240	/V3
014074  0364		AND (77		/V3
014075  1363		TAD (240	/V3
014076  4762		JMS I (OCHAR
014077  5761		JMP I (AOUERR
014100  5670		JMP I PR6BIT

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 31




014101  0000	PRNUM,	0		/REDO THIS FOR BETTER RESULTS
014102  3342		DCA PCRLF	/SAVE VALUE
014103  1701		TAD I PRNUM
014104  7041		CIA
014105  3250		DCA PRWD	/SAVE BLANK COUNT (OPTIONAL)
014106  1360		TAD 	(TAD	PWRTEN
014107  3312		DCA PRNMLP	/INITIALIZE

014110  3270		DCA PR6BIT	/CLEAR PRINT FLAG
014111  3356		DCA DIGIT	/CLEAR QUOTIENT
014112  1352	PRNMLP,	TAD PWRTEN	/**INCREMENTED**
014113  7450		SNA
014114  5701		JMP I PRNUM	/DONE
014115  7100		CLL
014116  1342		TAD PCRLF
014117  7420		SNL
014120  5324		JMP PRXX60	/TOO MUCH
014121  3342		DCA PCRLF
014122  2356		ISZ DIGIT	/FORM QUOTIENT
014123  5312		JMP PRNMLP

014124  7360	PRXX60,	STA STL		/THIS INSTRUCTION ENDS IN '60'
014125  0356		AND DIGIT
014126  2312		ISZ PRNMLP	/ADJUST DIVISOR
014127  2270		ISZ PR6BIT	/TEST PRINT FLAG
014130  7440		SZA
014131  5334		JMP .+3		/PRINT THE RESULT
014132  2250		ISZ PRWD	/TEST BLANK COUNT
014133  5340		JMP PRBLNK
014134  1324		TAD PRXX60	/CONVERT TO ASCII
014135  4270		JMS PR6BIT
014136  7040		CMA
014137  5310		JMP PRNMLP-2	/REPEAT
014140  4270	PRBLNK,	JMS PR6BIT	/CLEARED BY PDATE
014141  5310		JMP PRNMLP-2	/TO SUPPRESS BLANKS

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 32




014142  0000	PCRLF,	0
014143  1357		TAD (215
014144  4762		JMS I (OCHAR
014145  5761		JMP I (AOUERR
014146  1255		TAD PR212
014147  4762		JMS I (OCHAR
014150  5761		JMP I (AOUERR
014151  5742		JMP I PCRLF

014152  6030	PWRTEN,	-1750;-144;-12;-1	/V3
014153  7634
014154  7766
014155  7777
014156  0000	DIGIT,	0
	4270	JMSPR6=JMS	PR6BIT	/USEFUL LATER ON
014157  0215
014160  1352
014161  6531
014162  2410
014163  0240
014164  0077
014165  4200
014166  2001
014167  4650
014170  7666
014171  3521
014172  7757
014173  0017
014174  4705
014175  7617
014176  6601
014177  3343
	4200		PAGE

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 33




			/MAIN DIRECTORY PRINTING LOOP

014200  4777	NXTDIR,	JMS I (ICHAR	/FAKE, FAKE
014201  5776		JMP I (DEND
014202  7200		CLA		/WE DON'T WANT THE CHARACTER
014203  3035		DCA ECOUNT
014204  1375		TAD (INBUF-1	/WE WANT THE BUFFER!
014205  3010	NEWSEG,	DCA XR
014206  6201		CDF 0
014207  1410		TAD I XR
014210  3030		DCA DCOUNT	/NUMBER OF ENTRIES
014211  1030		TAD DCOUNT
014212  7100		CLL
014213  1374		TAD (100
014214  7620		SNL CLA
014215  4773		JMS I (PIPERR
014216  0011		11
014217  1410		TAD I XR
014220  3025		DCA BLOKNO	/FIRST BLOCK OF FILE STORAGE
014221  1410		TAD I XR
014222  3031		DCA DLINK	/LINK TO NEXT SEGMENT
014223  2010		ISZ XR		/BUMP XR PAST FLAG WORD
014224  1410		TAD I XR
014225  3032		DCA WASTE
014226  6201	NAMELP,	CDF 0
014227  1410		TAD I XR
014230  7450		SNA		/WHAT TYPE OF ENTRY IS IT?
014231  5325		JMP DEMPTY	/A FREE FILE
014232  3264		DCA NAME1	/A PERMENANT OR TENTATIVE FILE
014233  1410		TAD I XR
014234  3265		DCA NAME2
014235  1410		TAD I XR
014236  3266		DCA NAME3
014237  1410		TAD I XR
014240  3275		DCA NAME4
014241  1410		TAD I XR
014242  3033		DCA DDATE
014243  1032		TAD WASTE	/COMPENSATE FOR THE DATE INCREMENT
014244  7040		CMA		/AND THE WASTE WORDS
014245  1010		TAD XR
014246  3010		DCA XR
014247  1410		TAD I XR
014250  7450		SNA		/IS IT A TENTATIVE FILE?
014251  5312		JMP ADDLEN+1	/YES - TENTATIVE FILES ARE ALWAYS IGNORED
014252  7041		CIA
014253  3024		DCA FLENGT	/NO - STORE THE LENGTH
014254  6211		CDF 10
014255  1421		TAD I CHAR	/GET THE STARTING FILE FOR THIS LISTING
014256  7141		CIA CLL
014257  1025		TAD BLOKNO
014260  7620		SNL CLA		/ARE WE THERE YET?
014261  5311		JMP ADDLEN	/NO - KEEP GOING

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 33-1

014262  7346		CLA CLL CMA RTL
014263  4772		JMS I (PRWD	/PRINT THREE WORDS
014264  0000	NAME1,	0
014265  0000	NAME2,	0
014266  0000	NAME3,	0
014267  1275		TAD NAME4
014270  7650		SNA CLA		/IS THERE AN EXTENSION?
014271  1371		TAD (-16	/NO - PRINT A BLANK
014272  1370		TAD (56		/YES - PRINT A PERIOD
014273  4767		JMS I (PR6BIT
014274  4772		JMS I (PRWD
014275  0000	NAME4,	0		/ZERO PRINTS AS TWO MORE BLANKS
014276  1027	PRLNGT,	TAD DTYPE
014277  0374		AND (100
014300  7640		SZA CLA		/WAS THE LISTING SWITCH /F?
014301  5310		JMP PRTCRL	/YES - DON'T PRINT LENGTH
014302  1024		TAD FLENGT
014303  4766		JMS I (PRNUM
014304  1032		TAD WASTE
014305  7640		SZA CLA
014306  1033		TAD DDATE
014307  4765		JMS I (PDATE	/PRINT THE CREATION DATE OF THE FILE
014310  4764	PRTCRL,	JMS I (PCRLF
014311  1024	ADDLEN,	TAD FLENGT
014312  1025		TAD BLOKNO
014313  3025		DCA BLOKNO	/UPDATE BLOCK NUMBER
014314  2030		ISZ DCOUNT
014315  5226		JMP NAMELP	/LOOP UNTIL ALL FILES ARE PROCESSED
014316  1031		TAD DLINK
014317  7650		SNA CLA		/MULTI-SEGMENT DIRECTORY?
014320  5352		JMP ENDDIR	/NO - FINISH UP
014321  1010		TAD XR
014322  0363		AND (7400
014323  1362		TAD (377	/BUMP XR TO NEXT BLOCK
014324  5205		JMP NEWSEG	/PROCESS NEXT LINK

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 34




014325  1410	DEMPTY,	TAD I XR
014326  7041		CIA
014327  3024		DCA FLENGT	/STORE LENGTH OF FREE ENTRY
014330  6211		CDF 10
014331  1024		TAD FLENGT
014332  1035		TAD ECOUNT
014333  3035		DCA ECOUNT	/BUMP COUNT OF FREE BLOCKS
014334  1027		TAD DTYPE
014335  0361		AND (200
014336  7650		SNA CLA		/IS THE /E SWITCH ON?
014337  5311		JMP ADDLEN	/NO - DON'T LIST FREE FILES
014340  1360		TAD (-4
014341  4772		JMS I (PRWD
014342  7405	IFNDEF GERMAN <	TEXT	/<EMPTY>/>
014343  1520
014344  2431
014345  7600
		IFDEF  GERMAN < TEXT	/<FREI> />
014346  4767		JMS I (PR6BIT
014347  1024		TAD FLENGT
014350  4766		JMS I (PRNUM
014351  5310		JMP PRTCRL
014352  2021	ENDDIR,	ISZ CHAR	/BUMP TEMP ARRAY TO NEXT ENTRY
014353  1035		TAD ECOUNT
014354  4757		JMS I (ENDFUJ
014355  5200		JMP NXTDIR
014357  2620
014360  7774
014361  0200
014362  0377
014363  7400
014364  4142
014365  4650
014366  4101
014367  4070
014370  0056
014371  7762
014372  4050
014373  3521
014374  0100
014375  2777
014376  3134
014377  2014
	4400		PAGE

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 35




		/BINARY MODE PROCESSOR FOR PIP

014400  0360	BIN360,	360
014401  4777	BINARY,	JMS I (FIXLEN
014402  4776		JMS I (OUTOPN
014403  4775		JMS I (IOPEN
014404  4774		JMS I (LEADER	/PUT OUT BLANK TAPE IF HS PUNCH OUTPUT
014405  4251		JMS LTCODE
014406  4773	NEWTAP,	JMS I (ICHAR
014407  5317		JMP BEOF		/END OF FILE ON INPUT
014410  7450		SNA
014411  5206		JMP NEWTAP	/BLANK TAPE - KEEP GOING
014412  1307		TAD BN7600
014413  7640		SZA CLA
014414  5206		JMP NEWTAP
014415  4773		JMS I (ICHAR
014416  5317		JMP BEOF
014417  1307		TAD BN7600
014420  7450		SNA
014421  5215		JMP .-4
014422  1225		TAD BIN200
014423  3021		DCA CHAR
014424  1021		TAD CHAR
014425  0200	BIN200,	AND BIN360
014426  1372		TAD (-240	/CHECK TYPE OF TAPE
014427  7450		SNA		/IS IT RELOCATABLE?
014430  5266		JMP RELBIN	/YES
014431  1371		TAD (-40	/IF A FIELD SETTING, IT'S ABSOLUTE
014432  0370		AND (7700
014433  7450		SNA
014434  5240		JMP ABSLUT
014435  1225		TAD BIN200	/CHECK FOR ORIGIN ALSO
014436  7640		SZA CLA
014437  5206		JMP NEWTAP	/NOTHING..NEXT FRAME
014440  7240	ABSLUT,	CLA CMA
014441  4251		JMS LTCODE
014442  4323	ABSBIN,	JMS RCOPY1	/COPY THIS FRAME AND READ NEXT
014443  1307		TAD BN7600
014444  7640	BNM140,	SZA CLA		/IS IT TRAILER?
014445  5242		JMP ABSBIN	/NO - KEEP GOING
014446  7240	BEOT,	CLA CMA		/END OF TAPE
014447  4251		JMS LTCODE	/PUT OUT SHORT LEADER/TRAILER
014450  5206		JMP NEWTAP	/GET NEXT TAPE

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 36




014451  0000	LTCODE,	0		/SUBROUTINE TO PUNCH 200 CODE
014452  7500		SMA		/SHORT LEADER/TRAILER?
014453  4767		JMS I (OTYPE
014454  7710		SPA CLA		/DIRECTORY DEVICE?
014455  1366		TAD (70	/YES
014456  1370		TAD (-100
014457  3020		DCA TEMP
014460  1225	LTLOOP,	TAD BIN200
014461  4765		JMS I (OCHAR	/OUTPUT 64 OR 8 FRAMES OF L/T CODE
014462  5764		JMP I (AOUERR
014463  2020		ISZ TEMP
014464  5260		JMP LTLOOP
014465  5651		JMP I LTCODE

014466  1363	RELBIN,	TAD (SKP
014467  3762		DCA I (INCTZF	/DISABLE CONTROL-Z CHECKING ON INPUT
014470  7240		CLA CMA
014471  4251		JMS LTCODE	/PUT OUT SHORT LEADER/TRAILER
014472  1021	RELLP,	TAD CHAR
014473  7012		RTR
014474  7012		RTR
014475  0361		AND (17
014476  1360		TAD (RELTBL
014477  3020		DCA TEMP
014500  1420		TAD I TEMP	/GET DATA WORD FOR THIS FRAME
014501  7540		SMA SZA		/POSITIVE MEANS SPECIAL OR ERROR
014502  5341		JMP RELERR
014503  7450	RELSNA,	SNA
014504  5313		JMP RELEND	/ZERO MEANS CHECKSUM FRAME
014505  3020		DCA TEMP	/NEGATIVE MEANS COUNT OF NUMBER OF SLAVE FRAMES
014506  4323		JMS RCOPY1
014507  7600	BN7600,	7600
014510  2020		ISZ TEMP
014511  5306		JMP .-3	/COPY THIS FRAME AND ALL SLAVE FRAMES
014512  5272		JMP RELLP	/GET NEXT CONTROL FRAME
014513  4323	RELEND,	JMS RCOPY1	/COPY THE FIRST FRAME OF THE CHECKSUM
014514  4765		JMS I (OCHAR
014515  5764		JMP I (AOUERR	/OUTPUT THE SECOND FRAME
014516  5246		JMP BEOT	/END TAPE - START NEXT ONE
014517  4251	BEOF,	JMS LTCODE
014520  4757		JMS I (OCLOSE
014521  5764		JMP I (AOUERR
014522  5756		JMP I (PIP

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 37




014523  0000	RCOPY1,	0		/ROUTINE TO ADVANCE "CHAR" TO NEXT INPUT CHARACTER
014524  1021		TAD CHAR
014525  4765		JMS I (OCHAR
014526  5764		JMP I (AOUERR
014527  4773		JMS I (ICHAR
014530  5334		JMP INEFER
014531  3021		DCA CHAR
014532  1021		TAD CHAR
014533  5723		JMP I RCOPY1
014534  7700	INEFER,	SMA CLA		/DETECT FATALITIES
014535  4755		JMS I (PIPERR
014536  0007		7
014537  4755		JMS I (PIPERR		/A REAL BAD READ
014540  0004		4

014541  7110	RELERR,	CLL RAR
014542  7640		SZA CLA		/CODE OF 1 MEANS SPECIAL
014543  4755		JMS I (PIPERR	/ILLEGAL RELOCATABLE INPUT
014544  0010		10
014545  4323		JMS RCOPY1
014546  7166		CLL CML CMA RTL	/MULTIPLY NAME COUNT BY -6 (APPROXIMATELY)
014547  1021		TAD CHAR
014550  7124		CLL CML RAL	/(ACTUALLY THIS PRODUCES -6X-1 WHICH IS WHAT WE WANT)
014551  5303		JMP RELSNA
014555  3521
014556  3023
014557  2310
014560  4717
014561  0017
014562  2127
014563  7410
014564  6531
014565  2410
014566  0070
014567  2473
014570  7700
014571  7740
014572  7540
014573  2014
014574  3533
014575  2001
014576  3343
014577  3700
	4600		PAGE

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 38




014600  0000	ERPRNT,	0		/ERROR MESSAGE PRINTOUT ROUTINE
014601  3020		DCA TEMP
014602  1420	ERLP,	TAD I TEMP
014603  7012		RTR
014604  7012		RTR
014605  7012		RTR
014606  4213		JMS ERPCH	/PRINT HIGH-ORDER CHARACTER
014607  1420		TAD I TEMP
014610  4213		JMS ERPCH	/PRINT LOW-ORDER CHARACTER
014611  2020		ISZ TEMP
014612  5202		JMP ERLP

014613  0000	ERPCH,	0
014614  0377		AND (77
014615  7450		SNA
014616  5243		JMP ERCRLF	/0 CHARACTER TERMINATES
014617  4227		JMS CHPRNT
014620  5613		JMP I ERPCH
014621  1376	FILENR,	TAD ("#
014622  4775		JMS I (TTYOUT
014623  1022		TAD INFPTR	/GET PTR TO CURRENT INPUT FILE
014624  1374		TAD (321	/MAGIC NUMBER
014625  7110		CLL RAR
014626  5217		JMP FILENR-2

014627  0000	CHPRNT,	0
014630  1373		TAD (-37	/IS IT A _?
014631  7450		SNA
014632  5221		JMP FILENR	/YES..PRINT FILE NUMBER
014633  7001		IAC
014634  7450		SNA 		/MAYBE ^?
014635  5772		JMP I (SQFILE	/YEP..PRINT FILE NAME
014636  7510		SPA
014637  1371		TAD (100
014640  1370		TAD (236
014641  4775		JMS I (TTYOUT
014642  5627		JMP I CHPRNT

014643  1367	ERCRLF,	TAD (215
014644  4775		JMS I (TTYOUT
014645  1366		TAD (212
014646  4775		JMS I (TTYOUT
014647  5600		JMP I ERPRNT

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 39




014650  0000	PDATE,	0		/V3D CHANGES
014651  7450		SNA
014652  5650		JMP I PDATE
014653  3020		DCA TEMP	/SAVE DATE
014654  1765		TAD I (MDATE	/CHECK SYSTEM DATE
014655  7650		SNA CLA		/NEED IT TO INTERPRET OTHERS
014656  5650		JMP I PDATE
014657  3764		DCA I (PRBLNK	/SUPPRESS LEADING BLANKS
014660  4763		JMS I (PRDAMO	/PRINT THE MONTH, DAY
014661  1020		TAD TEMP
014662  0362		AND (7		/MASK THE YEAR
014663  3020		DCA TEMP
014664  1765		TAD I (MDATE	/CURRENT DATE
014665  0362		AND (7	
014666  7041		CIA
014667  1020		TAD TEMP	/COMPARE YEARS
014670  7740		SMA SZA CLA
014671  1361		TAD (-10	/-10
014672  1360		TAD (106	/106 = 1970
014673  1020		TAD TEMP
014674  3020		DCA TEMP	/SAVE THIS MUCH
014675  6201		CDF 0
014676  1757		TAD I (BIPCCL	/GET EXTENSION BITS
014677  6211		CDF 10
014700  4756		JMS I (PRYEAR	/PUT IT ALL TOGETHER
014701  1304		TAD JMSPR
014702  3764		DCA I (PRBLNK	/RESTORE BLANKS
014703  5650		JMP I PDATE
014704  4270	JMSPR,	JMSPR6

014705  0000	DSKNUM,	0
014706  3312		DCA DSKNAM+1
014707  4755		JMS I (200
014710  0012		12
014711  5723	DSKNAM,	5723
014712  0000		0
014713  0000		0
014714  7402		HLT
014715  1312		TAD DSKNAM+1
014716  5705		JMP I DSKNUM

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 40




014717  7776	RELTBL,	-2;-2;2;-10;-2;-2;-2;2;0;2;-2;2;2;2;2;1
014720  7776
014721  0002
014722  7770
014723  7776
014724  7776
014725  7776
014726  0002
014727  0000
014730  0002
014731  7776
014732  0002
014733  0002
014734  0002
014735  0002
014736  0001

014737  5006	ERRTBL,	ERR0
014740  5022		ERR1
014741  6251		ERR2
014742  5036		ERR3
014743  5050		ERR4
014744  5062		ERR5
014745  5076		ERR6
014746  5116		ERR7
014747  5135		ERR8
014750  5153		ERR9
014751  5170		ERR10
014752  6207		ERR11
014753  2542		IFNZRO OS78 <DIRMSG>

014755  0200
014756  7111
014757  7777
014760  0106
014761  7770
014762  0007
014763  7046
014764  4140
014765  7666
014766  0212
014767  0215
014770  0236
014771  0100
014772  6261
014773  7741
014774  0321
014775  5000
014776  0243
014777  0077
	5000		PAGE

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 41




015000  0000	TTYOUT,	0
015001  6046		TLS
015002  6041		TSF
015003  5202		JMP .-1
015004  7200		CLA
015005  5600		JMP I TTYOUT

		/ERROR MESSAGE TEXT GOES HERE

		IFNDEF GERMAN <
015006  1617	ERR0,	TEXT	/NO ROOM FOR OUTPUT FILE/
015007  4022
015010  1717
015011  1540
015012  0617
015013  2240
015014  1725
015015  2420
015016  2524
015017  4006
015020  1114
015021  0500
015022  1411	ERR1,	TEXT	/LINE TOO LONG IN FILE_/
015023  1605
015024  4024
015025  1717
015026  4014
015027  1716
015030  0740
015031  1116
015032  4006
015033  1114
015034  0537
015035  0000
015036  0522	ERR3,	TEXT	/ERROR DELETING FILE/
015037  2217
015040  2240
015041  0405
015042  1405
015043  2411
015044  1607
015045  4006
015046  1114
015047  0500
015050  1116	ERR4,	TEXT	/INPUT ERROR, FILE_/
015051  2025
015052  2440
015053  0522
015054  2217
015055  2254
015056  4006
015057  1114

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 41-1

015060  0537
015061  0000
015062  0301	ERR5,	TEXT	/CAN'T OPEN OUTPUT FILE/
015063  1647
015064  2440
015065  1720
015066  0516
015067  4017
015070  2524
015071  2025
015072  2440
015073  0611
015074  1405
015075  0000
015076  0405	ERR6,	TEXT	/DEVICE_ NOT A DIRECTORY DEVICE/
015077  2611
015100  0305
015101  3740
015102  1617
015103  2440
015104  0140
015105  0411
015106  2205
015107  0324
015110  1722
015111  3140
015112  0405
015113  2611
015114  0305
015115  0000
015116  2022	ERR7,	TEXT	/PREMATURE END OF FILE, FILE_/
015117  0515
015120  0124
015121  2522
015122  0540
015123  0516
015124  0440
015125  1706
015126  4006
015127  1114
015130  0554
015131  4006
015132  1114
015133  0537
015134  0000
015135  1114	ERR8,	TEXT	/ILLEGAL BINARY INPUT, FILE_/
015136  1405
015137  0701
015140  1440
015141  0211
015142  1601
015143  2231
015144  4011
015145  1620
015146  2524

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 41-2

015147  5440
015150  0611
015151  1405
015152  3700
015153  0201	ERR9,	TEXT	/BAD DIRECTORY ON DEVICE_/
015154  0440
015155  0411
015156  2205
015157  0324
015160  1722
015161  3140
015162  1716
015163  4004
015164  0526
015165  1103
015166  0537
015167  0000
015170  0411	ERR10,	TEXT	/DIRECTORY ERROR/
015171  2205
015172  0324
015173  1722
015174  3140
015175  0522
015176  2217
015177  2200
			>
		IFDEF GERMAN <
		ERR0,	TEXT	/DATEI HAT KEINEN PLATZ/
		ERR1,	TEXT	/ZEILE ZU LANG IN DATEI_/
		ERR3,	TEXT	/LOESCH-FEHLER/
		ERR4,	TEXT	/LESEFEHLER, DATEI_/
		ERR5,	TEXT	/KANN DATEI NICHT OEFFNEN/
		ERR6,	TEXT	/GERAET_ OHNE VERZEICHNIS/
		ERR7,	TEXT	/VERFRUEHTES ENDE, DATEI_/
		ERR8,	TEXT	/KEIN BINAER FORMAT, DATEI_/
		ERR9,	TEXT	/VERZEICHNIS KAPUTT, GERAET_/
		ERR10,	TEXT	\VERZEICHNIS L/S-FEHLER\
			>

	5200		PAGE

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 42




		/SQUISH PROCESSOR

015200  4777	SQUISH,	JMS I (CONFRM
015201  5534		SURE		/V3
015202  3776	SQUISX,	DCA I (OUELEN	/INITIALIZE PARAMS TO FAKE OUT "IMTRA"
015203  3775		DCA I (OUBLK
015204  3774		DCA I (7621	/ZERO SECOND FILE FOR "INNEWF"
015205  3773		DCA I (CTCFLG
015206  4772		JMS I (IOPEN
015207  4771		JMS I (INNEWF
015210  5770		JMP I (PIP	/NO INPUT
015211  1367		TAD (OUDEVH+1
015212  3220		DCA SOHND
015213  1730		TAD I SQ7600
015214  7450		SNA
015215  5770		JMP I (PIP	/NO OUTPUTEE, NO SQUISHEE
015216  4766		JMS I (200
015217  0001		1
015220  0000	SOHND,	0
015221  7402		HLT
015222  4277		JMS INTEST
015223  4765		JMS I (OTYPE
015224  7112		CLL RTR
015225  7010		RAR
015226  0364		AND (77
015227  1363		TAD (DEVLEN
015230  3020		DCA TEMP
015231  1220		TAD SOHND	/SET UP OZHNDL
015232  3762		DCA I (OZHNDL	/IN CASE OF JMP TO 'DVREDE'
015233  1420		TAD I TEMP	/GET ENTRY FROM DEVICE LENGTH TABLE
015234  7450		SNA		/IS THE DEVICE LENGTH ZERO?
015235  4761		JMS I (DVREDE	/IF SO, READ LENGTH
015236  3031		DCA OUDLEN	/SAVE OUTPUT DEVICE LENGTH
015237  4760		JMS I (GETEQ
015240  3027		DCA OUWAST
015241  1220		TAD SOHND
015242  3025		DCA OHNDLR
015243  1025		TAD OHNDLR
015244  3757		DCA I (OUHNDL
015245  1756		TAD I (INHNDL
015246  3024		DCA IHNDLR
015247  4311		JMS SETCTC
015250  4773		JMS I (CTCFLG
015251  6202		CIF 0
015252  4424		JMS I IHNDLR
015253  1400		1400
015254  0000		0
015255  0001		1
015256  5755		JMP I (SQIDER+1
015257  6202		CIF 0
015260  4754		JMS I (7607
015261  5400		5400

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 42-1

015262  0000		0
015263  0027		MTEMP		/MOVE THE INPUT DIRECTORY TO SYS:
015264  5755		JMP I (SQIDER+1
015265  7201		CLA IAC
015266  3753		DCA I (SQBUF2+2
015267  3773		DCA I (CTCFLG
015270  1220		TAD SOHND	/SETUP DIRECTORY START
015271  4752		JMS I (SQDTST
015272  4751		JMS I (SETSAM	/IF IHNDLR=OHNDLR, SAME=1
015273  7240		CLA CMA
015274  3750		DCA I (SQBUF2
015275  3747		DCA I (OUTSEG
015276  5746		JMP I (NEWOUT

015277  0000	INTEST,	0		/TEST IF INPUT IS DIRECTORY
015300  1745		TAD I (7617
015301  0344		AND (17
015302  1343		TAD (DCB-1
015303  3020		DCA TEMP
015304  1420		TAD I TEMP
015305  7700		SMA CLA
015306  4742		JMS I (PIPERR
015307  0006		6
015310  5677		JMP I INTEST

015311  0000	SETCTC,	0		/MODIFY 07600 TO RETURN TO SQCTLC
015312  1321		TAD CDIF10
015313  6201		CDF 0
015314  3730		DCA I SQ7600
015315  1341		TAD (5602	/JMP I .+1
015316  3740		DCA I (7601
015317  1337		TAD (SQCTLC
015320  3736		DCA I (7602
015321  6213	CDIF10,	CIF CDF 10
015322  5711		JMP I SETCTC

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 43




015323  0000	OUK,	0		/V3 ON IMAGE MODE TRANSFER
					/CLOSE OUT FILE WITH = OPTION
					/IF NOT TOO SMALL
015324  1735		TAD I (OUCCNT
015325  7141		CLL CIA
015326  1734		TAD I (MPARAM+3
015327  7420		SNL		/IS = OPTION LARGER?
015330  7600	SQ7600,	7600		/RETURN OUCCNT IF IT'S LARGER
015331  1735		TAD I (OUCCNT	/RETURN LOW ORDER = OPTION IF IT'S LARGER
015332  5723		JMP I OUK
015334  7646
015335  2352
015336  7602
015337  5650
015340  7601
015341  5602
015342  3521
015343  7757
015344  0017
015345  7617
015346  5503
015347  5641
015350  7200
015351  5543
015352  6477
015353  7202
015354  7607
015355  5626
015356  2146
015357  2215
015360  6332
015361  6341
015362  3457
015363  3600
015364  0077
015365  2473
015366  0200
015367  7201
015370  3023
015371  2135
015372  2001
015373  5700
015374  7621
015375  2222
015376  2223
015377  3730
	5400		PAGE

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 44




015400  1377	NEWIN,	TAD (MTEMP-1
015401  3207		DCA INSEG
015402  4776		JMS I (CTCFLG
015403  6202		CIF 0
015404  4775		JMS I (7607
015405  0210		0210
015406  7200	S7200,	SQBUF2
015407  0000	INSEG,	0
015410  5774		JMP I (SQIDER
015411  3776		DCA I (CTCFLG
015412  1773		TAD I (SQBUF2+1
015413  3033		DCA INBLK
015414  1372		TAD (SQBUF2+4
015415  3011		DCA INXR
015416  1411	SGETIN,	TAD I INXR
015417  7450		SNA
015420  5331		JMP SEMPTY
015421  3410		DCA I OUTXR
015422  1010		TAD OUTXR
015423  3333		DCA OUSAVE
015424  4771		JMS I (CYWAST	/COPY WASTE WORDS
015425  1411		TAD I INXR
015426  3034		DCA RECCNT
015427  1034		TAD RECCNT
015430  7450		SNA
015431  5325		JMP SNULL
015432  7140		CMA CLL		/V3
015433  1030		TAD OUTBLK
015434  1031		TAD OUDLEN
015435  7630		SZL CLA
015436  5323		JMP SNULER
015437  1034		TAD RECCNT
015440  3410		DCA I OUTXR
015441  7240		CLA CMA
015442  1770		TAD I (SQBUF1
015443  3770		DCA I (SQBUF1
015444  1033		TAD INBLK
015445  7041		CIA
015446  1030		TAD OUTBLK
015447  7650		SNA CLA
015450  1032		TAD SAME
015451  7650		SNA CLA
015452  4767	MOVFIL,	JMS I (SQTRA	/MOVE THE FILE DOWN
015453  1034		TAD RECCNT
015454  7041		CIA
015455  1030		TAD OUTBLK
015456  3030		DCA OUTBLK
015457  1034		TAD RECCNT
015460  7041	DMTX,	CIA
015461  1033		TAD INBLK
015462  3033		DCA INBLK
015463  1010		TAD OUTXR

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 44-1

015464  7041		CIA
015465  1027		TAD OUWAST
015466  1027		TAD OUWAST
015467  1366		TAD (SQBUF1+365
015470  7700		SMA CLA		/DO WE HAVE ROOM FOR TWO MORE ENTRIES?
015471  5315		JMP NEXTIN

			/DIRECTORY SEGMENT OVERFLOW ON OUTPUT...

015472  2765		ISZ I (OUTSEG
015473  1765		TAD I (OUTSEG
015474  7001		IAC
015475  3764		DCA I (SQBUF1+2	/STORE LINK TO NEXT SEGMENT
015476  1764		TAD I (SQBUF1+2
015477  1363		TAD (-7
015500  7700		SMA CLA
015501  5762		JMP I (SQIDER-1	/TOO MANY SEGMENTS
015502  4761		JMS I (OUTDIR	/OUTPUT THIS SEGMENT
015503  1360	NEWOUT,	TAD (SQBUF1-1
015504  3010		DCA OUTXR	/INITIALIZE XR FOR NEXT OUTPUT SEGMENT
015505  3757		DCA I (OUTINH	/ZAP ANY OLD OUTPUT INHIBIT FLAG
015506  3410		DCA I OUTXR
015507  1030		TAD OUTBLK
015510  3410		DCA I OUTXR
015511  3410		DCA I OUTXR
015512  3410		DCA I OUTXR
015513  1027		TAD OUWAST
015514  3410		DCA I OUTXR
015515  2606	NEXTIN,	ISZ I S7200
015516  5216		JMP SGETIN
015517  1756		TAD I (SQBUF2+2
015520  7450		SNA		/ANY MORE INPUT SEGMENTS?
015521  5755		JMP I (SQOVER
015522  5200		JMP NEWIN
015523  1354	SNULER,	TAD (NOROOM
015524  4753		JMS I (ERPRNT
015525  7240	SNULL,	CLA CMA
015526  1333		TAD OUSAVE
015527  3010		DCA OUTXR
015530  5257		JMP DMTX-1
015531  1411	SEMPTY,	TAD I INXR
015532  5260		JMP DMTX
015533  0000	OUSAVE,	0

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 45




		SURE,	
015534  0122	IFNDEF GERMAN < TEXT	/ARE YOU SURE?/>
015535  0540
015536  3117
015537  2540
015540  2325
015541  2205
015542  7700
		IFDEF  GERMAN < TEXT	/GANZ SICHER? />
015543  0000	SETSAM,	0
015544  1024		TAD IHNDLR
015545  7041		CIA
015546  1025		TAD OHNDLR
015547  7650		SNA CLA
015550  7001		IAC
015551  3032		DCA SAME
015552  5743		JMP I SETSAM
015553  4600
015554  5735
015555  5600
015556  7202
015557  2472
015560  1377
015561  5631
015562  5624
015563  7771
015564  1402
015565  5641
015566  1765
015567  2641
015570  1400
015571  6413
015572  7204
015573  7201
015574  5625
015575  7607
015576  5700
015577  0026
	5600		PAGE

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 46




015600  3410	SQOVER,	DCA I OUTXR
015601  1031		TAD OUDLEN
015602  1030		TAD OUTBLK
015603  7450		SNA
015604  5211		JMP CKZERO
015605  3410		DCA I OUTXR
015606  7240		CLA CMA
015607  1777		TAD I (SQBUF1
015610  3777		DCA I (SQBUF1
015611  1777	CKZERO,	TAD I (SQBUF1
015612  7640		SZA CLA
015613  5220		JMP ZEROK
015614  7330		CLA CLL CML RAR
015615  4231		JMS OUTDIR	/READ IN LAST DIRECTORY
015616  3776		DCA I (SQBUF1+2	/ZERO OUT LINK WORD
015617  7410		SKP
015620  2241	ZEROK,	ISZ OUTSEG
015621  4231		JMS OUTDIR
015622  4264	ZEROKS,	JMS SRSTOR
015623  5775		JMP I (PIP

015624  3776		DCA I (SQBUF1+2
015625  4231	SQIDER,	JMS OUTDIR
015626  4264		JMS SRSTOR
015627  4774		JMS I (PIPERR
015630  0012		12
015631  0000	OUTDIR,	0
015632  1373		TAD (4210
015633  3237		DCA .+4
015634  4300		JMS CTCFLG
015635  6202		CIF 0
015636  4425		JMS I OHNDLR
015637  0000		0
015640  1400		SQBUF1
015641  0000	OUTSEG,	0
015642  5226		JMP SQIDER+1
015643  3300		DCA CTCFLG
015644  5631		JMP I OUTDIR

015645  1372	SQIOER,	TAD (IOMSG
015646  4771		JMS I (ERPRNT
015647  5770		JMP I (SLGRET

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 47




015650  6032	SQCTLC,	KCC		/JUMPED TO BY CODE AT 07600
015651  4767		JMS I (TSTSAM	/TEST IF OPERATION IS TO ITSELF 
015652  1366		TAD (CTCMSG
015653  4771		JMS I (ERPRNT
015654  1300		TAD CTCFLG
015655  7640		SZA CLA
015656  5700		JMP I CTCFLG
015657  1765		TAD I (MPARAM+1	/IS IT /S?
015660  0364		AND (40
015661  7650		SNA CLA
015662  5763		JMP I (SYSCPY	/NO../Y
015663  5762		JMP I (MOVFIL

015664  0000	SRSTOR,	0
015665  4761		JMS I (7700	/MAKE SURE MONITOR IS IN CORE
015666  0010		10
015667  3265		DCA .-2		/AND WIPE THE CALL AWAY
015670  1360		TAD (4207
015671  6201		CDF 0
015672  3757		DCA I (7600
015673  1356		TAD (5000
015674  3755		DCA I (7601
015675  3754		DCA I (7602
015676  6211		CDF 10
015677  5664		JMP I SRSTOR

015700  0000	CTCFLG,	0
015701  5700		JMP I CTCFLG

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 48




		IFNDEF GERMAN <
015702  2317	CTCMSG,	TEXT	\SORRY - NO INTERRUPTIONS\
015703  2222
015704  3140
015705  5540
015706  1617
015707  4011
015710  1624
015711  0522
015712  2225
015713  2024
015714  1117
015715  1623
015716  0000
015717  1155	IOMSG,	TEXT	\I-O ERROR IN ^ - CONTINUING\
015720  1740
015721  0522
015722  2217
015723  2240
015724  1116
015725  4036
015726  4055
015727  4003
015730  1716
015731  2411
015732  1625
015733  1116
015734  0700
015735  1617	NOROOM,	TEXT	\NO ROOM FOR ^ - CONTINUING\
015736  4022
015737  1717
015740  1540
015741  0617
015742  2240
015743  3640
015744  5540
015745  0317
015746  1624
015747  1116
015750  2511
015751  1607
015752  0000
			>
		IFDEF GERMAN <
		CTCMSG,	TEXT	\KEINE UNTERBRECHUNGEN!\
		IOMSG,	TEXT	\L/S-FEHLER BEI ^ - KEIN HALT\
		NOROOM,	TEXT	\KEIN PLATZ FUER ^ - KEIN HALT\
			>
015754  7602
015755  7601
015756  5000
015757  7600

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 48-1

015760  4207
015761  7700
015762  5452
015763  6004
015764  0040
015765  7644
015766  5702
015767  6244
015770  2532
015771  4600
015772  5717
015773  4210
015774  3521
015775  3023
015776  1402
015777  1400
	6000		PAGE

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 49




016000  7760	K7760,	7760
016001  1222	SYSCOP,	TAD K7622		/SET INFPTR IN CASE OF /Y ERROR
016002  3022		DCA INFPTR	/WILL FILE #1
016003  4777		JMS I (SETCTC	/KLUDGE UP 07600
016004  1376	SYSCPY,	TAD (INDEVH+1
016005  3221		DCA YIHAND	/SET TO ASSIGN INPUT HANDLER
			IFNZRO OUDEVH-7200 <ERR,___>/	TAD (OUDEVH+1
016006  1210		TAD .+2
016007  3263		DCA YOHAND
016010  7201		CLA IAC		/BOOTSTRAP OFFSET
016011  3342		DCA OFSET
016012  1745		TAD I K7617
016013  7650		SNA CLA		/IS THERE AN INPUT DEVICE?
016014  2745		ISZ I K7617	/MAKE INPUT =SYS
016015  4775		JMS I (INTEST	/SEE IF OPERATIONS ARE TO SAME DEVICE
016016  1745		TAD I K7617
016017  4624		JMS I K200	/ASSIGN HANDLER
016020  0001		1
016021  0000	YIHAND,	0
016022  7622	K7622,	7622		/THINLY DISGUISED HALT
016023  1745		TAD I K7617
016024  0200	K200,	AND K7760	/CHECK INPUT FILE LENGTH
016025  7450		SNA		/IF BLANK,INPUT SYSTEM HEAD
016026  5334		JMP	YSOUT
016027  1374		TAD (-6340	/CHECK FOR PROPER LENGTH
016030  7640		SZA CLA
016031  5343		JMP PER13	/ERROR..NOT SYSTEM HEAD
016032  1773		TAD I (7601	/IS THERE OUTPUT DEVICE?
016033  7640		SZA CLA		/IF YES..WE CAN DO IMAGE XFER
016034  5330		JMP IMGOUT
016035  1772		TAD I (7620
016036  3243	YOUSYS,	DCA YINREC	/PICK UP STARTING RECORD
016037  6202		CIF 0
016040  4621		JMS I YIHAND	/READ IN FIRST INPUT RECORDS
016041  2000		2000		/(0-15 IF SYSTEM HEAD,0-7 IF FILE)
016042  0000		OUBUF
016043  0000	YINREC,	0
016044  5771		JMP I (PER4	/INPUT ERROR
016045  1772		TAD I (7620	/IF INPUT FROM A FILE,
016046  7650		SNA CLA		/TEST LOC 605
016047  1370		TAD (3000	/IF FROM HEAD, TEST 3605
016050  1367		TAD (605
016051  3766		DCA I (HDTST
016052  4765		JMS I (TSTHED	/TEST FOR VALID SYSTEM HEAD
016053  1243		TAD YINREC
016054  1342		TAD OFSET	/BUMP TO NEXT RECORD
016055  3314		DCA NXTRD
016056  1764		TAD I (7600	/IF NO OUTPUT, FORGET IT
016057  7450		SNA
016060  5326		JMP PIPCLR	/RESET AND GO TO PIP
016061  4624		JMS I K200
016062  0001		1

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 49-1

016063  0000	YOHAND,	0
016064  7402		HLT		/V3
016065  4763		JMS I (FAKE
016066  4762		JMS I (SETSAM

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 50




016067  4761		JMS I (TSTIO	/TEST OUTPUT. SEE IF DIRECT. DEV.
016070  6202		CIF 0
016071  4663		JMS I YOHAND	/READ OUTPUT DIRECTORY INTO PLACE
016072  1400		1400
016073  0400		400
016074  0001		1
016075  5771		JMP I (PER4
016076  6201		CDF 0
016077  1760		TAD I (401	/NOW TEST FOR VALID OUTPUT DEVICE
016100  6211		CDF 10
016101  1357		TAD (-10	/IF LESS THAN 10, DON'T XFER
016102  7710		SPA CLA
016103  4756		JMS I (PIPERR
016104  0011		11
016105  1357		TAD (-10	/8*7=56 BLKS - DIR= 50 BLKS
016106  3243		DCA YINREC	/XFER COUNTER

016107  5321		JMP	YDUMP
016110  6202	YLOOP,	CIF 0
016111  4621		JMS I YIHAND	/READ NEXT
016112  1600		1600		/READ 7 BLKS
016113  0000		OUBUF
016114  0000	NXTRD,	0
016115  5771		JMP I (PER4
016116  1314		TAD NXTRD
016117  1355		TAD (7
016120  3314		DCA NXTRD
016121  1354	YDUMP,	TAD (5600
016122  4753		JMS I (OUTDMP	/WRITE BUFFER
016123  5752		JMP I (AOUERR
016124  2243		ISZ YINREC	/DONE YET?
016125  5310		JMP YLOOP	/NOT YET..LOOP
016126  4751	PIPCLR,	JMS I (SRSTOR	/CLEAR OUT 07600
016127  5750		JMP I (PIP

016130  3032	IMGOUT,	DCA	SAME
016131  1221		TAD	YIHAND
016132  3024		DCA	IHNDLR
016133  5747		JMP I	(IMAGE

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 51




016134  1773	YSOUT,	TAD I	(7601	/HERE IF INPUT FROM SYSTEM HEAD
016135  7640		SZA CLA		/IS THERE AN OUTPUT FILE?
016136  5746		JMP I	(YTSOUT	/YES, SET UP FOR IMAGE MODE
016137  1355	YNOOUT,	TAD (7		/RESTART READ AT RECORD 7
016140  3342		DCA OFSET
016141  5236		JMP YOUSYS
016142  0000	OFSET,	0

016143  4756	PER13,	JMS I (PIPERR
016144  0013		13
016145  7617	K7617,	7617		/V3
016146  6220
016147  2601
016150  3023
016151  5664
016152  6531
016153  2247
016154  5600
016155  0007
016156  3521
016157  7770
016160  0401
016161  6454
016162  5543
016163  6400
016164  7600
016165  6443
016166  6453
016167  0605
016170  3000
016171  3110
016172  7620
016173  7601
016174  1440
016175  5277
016176  6601
016177  5311
	6200		PAGE

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 52




016200  7777	DIRECT,	-1
016201  0000	DFORG,	0		/FILE STORAGE
016202  0000		0
016203  0000		0
016204  0000	DWASTE,	0		/#WASTE WORDS
016205  0000		0
016206  0000	DLENGT,	0


		ERR11,
016207  0201	IFNDEF GERMAN <	TEXT	\BAD SYSTEM HEAD \>
016210  0440
016211  2331
016212  2324
016213  0515
016214  4010
016215  0501
016216  0440
016217  0000
		IFDEF  GERMAN < TEXT	\KEIN SYSTEM-KOPF\>
016220  1777	YTSOUT,	TAD I (7617	/O.K. SETUP CD AREA FOR IMAGE XFER
016221  1376		TAD (7760	/FROM SYSTEM AREA OF INPUT DEVICE
016222  3777		DCA I (7617	/1 BLK
016223  1777		TAD I (7617
016224  0375		AND (17		/7620=0: BLK 0
016225  1374		TAD (6360
016226  3773		DCA I (7621	/61 BLKS
016227  1240		TAD K7
016230  3772		DCA I (7622	/FROM BLK 7
016231  3032		DCA SAME	/ALLOW ^C IF TO OUTPUT FILE
016232  1771		TAD I (YIHAND	/TEST FOT VALID SYSTEM
016233  3024		DCA IHNDLR
016234  6202		CIF 0
016235  4424		JMS I IHNDLR
016236  0200		0200
016237  3400		3400
016240  0007	K7,	7
016241  5770		JMP I (PER4
016242  4767		JMS I (TSTHED
016243  5766		JMP I (IMAGE

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 53




016244  0000	TSTSAM,	0
016245  1032		TAD SAME	/IF /Y IS TO SAME DEVICE AS INPUT (SYS)
016246  7650		SNA CLA		/^C GIVES MESSAGE AND RETRIES OPERATION
016247  5765		JMP I (ZEROKS
016250  5644		JMP I TSTSAM

		ERR2,
016251  1725	IFNDEF GERMAN <	TEXT	\OUTPUT ERROR  \>
016252  2420
016253  2524
016254  4005
016255  2222
016256  1722
016257  4040
016260  0000
		IFDEF  GERMAN < TEXT	\SCHREIB-FEHLER\>
016261  3323	SQFILE,	DCA MWAST
016262  1764		TAD I (OUSAVE
016263  3244		DCA TSTSAM	/IF ERROR DURING /S
016264  3204		DCA DWASTE
016265  7346		CLA CLL CMA RTL
016266  3322		DCA MOVCNT	/-3 FOR FILE NAME
016267  1644	SQFIL3,	TAD I TSTSAM	/FIRST 2 CHARS. IN NAME
016270  7112		CLL RTR
016271  7012		RTR
016272  7012		RTR
016273  0363	SQFIL5,	AND (77
016274  7440		SZA		/IF ZERO, DON'T BOTHER
016275  4762		JMS I (CHPRNT
016276  2204		ISZ DWASTE	/RIGHT HALF OR NEW WORD?
016277  5316		JMP SQFIL4	/RIGHT HALF
016300  2244		ISZ TSTSAM
016301  2322		ISZ MOVCNT	/EXHAUSTED ALL?
016302  5267		JMP SQFIL3	/NOPE
016303  1323		TAD MWAST	/DONE WITH IT YET?
016304  7640		SZA CLA
016305  5761		JMP I (FILENR-1	/YES
016306  1644		TAD I TSTSAM	/IS THERE AN EXTENSION?
016307  7650		SNA CLA
016310  5761		JMP I (FILENR-1	/NO..CONTINUE ORIGINAL MSG
016311  1360		TAD (256
016312  4757		JMS I (TTYOUT
016313  2323		ISZ MWAST	/SIGNAL END
016314  7240		CLA CMA
016315  5266		JMP SQFIL3-1
016316  7240	SQFIL4,	CLA CMA
016317  3204		DCA DWASTE
016320  1644		TAD I TSTSAM	/GET RIGHT HALF
016321  5273		JMP SQFIL5

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 54




016322  0000	MOVCNT,	0
016323  0000	MWAST,	0
016324  3020		DCA TEMP
016325  1411		TAD I INXR
016326  3410		DCA I OUTXR	/ROUTINE TO COPY WASTE WORDS
016327  2020		ISZ TEMP
016330  5325		JMP .-3
016331  5723		JMP I MWAST

016332  0000	GETEQ,	0		/V3
016333  1756		TAD I (MPARAM+3
016334  7450		SNA
016335  7001		IAC
016336  0363		AND (77		/CONVERT 0 TO 1 AND 100 TO 0
016337  7041		CIA
016340  5732		JMP I GETEQ

016341  0000	DVREDE,	0		/READ DEVICE FROM BAD BLOCK
016342  1755		TAD I (OZHNDL	/GET DEVICE ENTRY POINT
016343  3332		DCA GETEQ
016344  6202		CIF 0
016345  4732		JMS I GETEQ
016346  0011		0011
016347  0000		0000
016350  7667		-111		/NEGATIVE BLOCK - RETURNS MINUS LENGTH
016351  6212		CIF 10
016352  5741		JMP I DVREDE	/ERROR RETURN FOR READ  YIELDS RESULT
016355  3457
016356  7646
016357  5000
016360  0256
016361  4620
016362  4627
016363  0077
016364  5533
016365  5622
016366  2601
016367  6443
016370  3110
016371  6021
016372  7622
016373  7621
016374  6360
016375  0017
016376  7760
016377  7617
	6400		PAGE

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 55




016400  0000	FAKE,	0
016401  1777		TAD I (YIHAND
016402  3024		DCA IHNDLR
016403  1776		TAD I (YOHAND
016404  3025		DCA OHNDLR
016405  3775		DCA I (OUCCNT
016406  3774		DCA I (OUBLK
016407  3773		DCA I (OUELEN
016410  1776		TAD I (YOHAND
016411  3772		DCA I (OUHNDL
016412  5600		JMP I FAKE

016413  0000	CYWAST,	0		/ROUTINE TO COPY WASTE WORDS
016414  7346		CLA CLL CMA RTL	/THREE MORE FOR FILE NAME
016415  4771		JMS I (MWAST	/COPY THEM
016416  1770		TAD I (SQBUF2+4	/NOW ADJUST I/O WASTE WORDS
016417  7041		CIA
016420  1027		TAD OUWAST	/DIFF. BETWEEN OUT AND IN WORDS
016421  7500		SMA		/IF <0, MORE OUT THAN IN
016422  5233		JMP CGEWST	/POS. MORE IN THAN OUT (OR SAME)
016423  3012		DCA TEMP1
016424  1770		TAD I (SQBUF2+4
016425  7440		SZA
016426  4771		JMS I (MWAST	/COPY ALL INPUT WORDS
016427  3410		DCA I OUTXR	/AND 0 ALL EXTRA OUTPUT WORDS
016430  2012		ISZ TEMP1
016431  5227		JMP .-2
016432  5613		JMP I CYWAST
016433  3012	CGEWST,	DCA TEMP1
016434  1027		TAD OUWAST	/XFER ONLY ENOUGH OUTPUT WDS.
016435  7440		SZA
016436  4771		JMS I (MWAST
016437  1011		TAD INXR
016440  1012		TAD TEMP1	/POINT INPUT TO NEXT FILE
016441  3011		DCA INXR
016442  5613		JMP I CYWAST

016443  0000	TSTHED,	0		/TESTS FOR KEYBOARD MONITOR
016444  6201		CDF 0
016445  1653		TAD I HDTST
016446  6211		CDF 10
016447  1367		TAD (-7200
016450  7640		SZA CLA
016451  5766		JMP I (PER13	/IF NOT CLA, NOT VALID
016452  5643		JMP I TSTHED
016453  3605	HDTST,	3605

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 56




016454  0000	TSTIO,	0		/SEE IF OUTPUT IS DIRECTORY DEVICE
016455  4765		JMS I (OTYPE	/GET DCB WORD FOR OUTPUT
016456  7700		SMA CLA		/IF NOT NEG., NOT DIRECT DEVICE
016457  4764		JMS I (PIPERR
016460  0005		5
016461  1025		TAD OHNDLR	/IF OUTPUT=SYS, SET NO INTERRUPT
016462  1363		TAD (171
016463  7650		SNA CLA
016464  2032		ISZ SAME
016465  5654		JMP I TSTIO

016466  0000	ASCI2,	0		/SEE IF VALID ASCII OUTPUT
016467  3254		DCA TSTIO
016470  1762		TAD I (7600
016471  7650		SNA CLA
016472  5761		JMP I (PIP	/NO..BACK TO PIP
016473  1254		TAD TSTIO	/SEE IF /C IS ON
016474  7650		SNA CLA
016475  4760		JMS I (FIXLEN	/NO..TRY TO ESTIMATE OUTPUT
016476  5666		JMP I ASCI2

016477  0000	SQDTST,	0		/ROUTINE TO CHECK /S DIRECTORIES
016500  3200		DCA NOHND	/PRESERVE POSSIBLE SYS ON OUTPUT
016501  1357		TAD (7		/DEFAULT TO BLOCK 7
016502  3030		DCA OUTBLK	/INITIAL GUESS
016503  6211		CDF 10		/NOW TRY TO READ DIRECTORY OF OUTPUT
016504  4765		JMS I (OTYPE	/IF NON-FILE, DON'T READ IT
016505  7700		SMA CLA
016506  5315		JMP P1A
016507  6202		CIF 0		/COULD BE NON-FILE, HOWEVER.
016510  4600		JMS I NOHND
016511  0210		0210
016512  1400		1400
016513  0001	P1,	1
016514  5756		JMP I (SQIDER+1	/ERROR IN READ
016515  3007	P1A,	DCA OLDDIR	/WIPES ANY DIRECT. SEGMENT
016516  1200		TAD NOHND	/IS OUTPUT THE SYSTEM DEVICE?
016517  1363		TAD (171
016520  7650		SNA CLA
016521  5326		JMP SYSDIR
016522  1755		TAD I (1401
016523  1354		TAD (-70	/IS OUTPUT A SYS DEVICE?
016524  7640		SZA CLA
016525  5677		JMP I SQDTST
016526  1353	SYSDIR,	TAD (70
016527  3030		DCA OUTBLK
016530  5677		JMP I SQDTST

	6400	NOHND=FAKE


/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 57




016531  7700	AOUERR,	SMA CLA		/WAS IT A DEVICE ERROR OR ARE WE OUT OF SPACE?
016532  4764	BOUERR,	JMS I (PIPERR	/OUT OF SPACE
016533  0000		0
016534  4764	PER2,	JMS I (PIPERR
016535  0002		2

016536  1352	ASCPTCH,TAD (ACHLP+1	/V3C FAKE OUT ICHAR
016537  3751		DCA I (ICHAR	/SIMULATE CALL TO ICHAR FROM 'ACHLP'
016540  5750		JMP I (GETNEW	/V3C SIMULATE OCCURRENCE OF 8-BIT ^Z IN ICHAR
016550  2030
016551  2014
016552  3205
016553  0070
016554  7710
016555  1401
016556  5626
016557  0007
016560  3700
016561  3023
016562  7600
016563  0171
016564  3521
016565  2473
016566  6143
016567  0600
016570  7204
016571  6323
016572  2215
016573  2223
016574  2222
016575  2352
016576  6063
016577  6021
	6600		PAGE

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 58




		/THIS IS ONCE-ONLY CODE

016600  0000	ONCE,	0
016601  7240		STA
016602  1200		TAD ONCE
016603  3224		DCA ONCENF
016604  1377		TAD (20
016605  3624		DCA I ONCENF	/RESTORE L20, DON'T ALLOW REENTRY
016606  1776		TAD I (MPARAM+1
016607  0375		AND (7
016610  7650		SNA CLA		/IS /V SET?
016611  5225		JMP SUMMOR	/NO, RETURN
016612  1374		TAD (VER	/YES
016613  4773		JMS I (ERPRNT	/PRINT VERSION NUMBER
016614  5225		JMP	SUMMOR	/RETURN

016615  1723	VER,	TEXT	\OS/8 PIP V50B\
016616  5770
016617  4020
016620  1120
016621  4026
016622  6560
016623  0200
016624  0000	ONCENF,	0
016625  1234	SUMMOR,	TAD	RELPTR
016626  7450		SNA
016627  5600		JMP I	ONCE
016630  3634		DCA I	RELPTR
016631  2234		ISZ	RELPTR
016632  2225		ISZ	SUMMOR
016633  5225		JMP	SUMMOR
	6634	RELPTR=.
016773  4600
016774  6615
016775  0007
016776  7644
016777  0020
	7046	RELOC	7046

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 59




		/WE'VE ADDED A NEW SWITCH:    /N = NUMERIC DATES

017046* 7046	PRDAMO,	.		/DA-MON-YR  OR  MM/DD/YY
017047* 4743		JMS I LPR6BT	/START WITH A SPACE
017050* 7132		STL RTR
017051* 0744		AND I L17644	/TEST THE /N SWITCH
017052* 7650		SNA CLA
017053* 5261		JMP ALPHA	/NEW STYLE DATES
017054* 4326		JMS MONTH
017055* 4742		JMS I LPRNUM
017056* 0003		3		/BLANK COUNT
017057* 1340		TAD LSLASH
017060* 4743		JMS I LPR6BT

017061* 1020	ALPHA,	TAD TEMP	/PRINT THE DAY
017062* 7010		RAR
017063* 7012		RTR
017064* 0336		AND L37
017065* 4742		JMS I LPRNUM
017066* 0003		3
017067* 7132		STL RTR
017070* 0744		AND I L17644	/CHECK /N AGAIN
017071* 7640		SZA CLA
017072* 5306		JMP NUMERC	/OLD STYLE DATES
017073* 4326		JMS MONTH
017074* 1337		TAD LM15	/.GT. DEC?
017075* 7710		SPA CLA
017076* 4326		JMS MONTH
017077* 7104		CLL RAL		/X2
017100* 1345		TAD DATTAB
017101* 3326		DCA MONTH
017102* 4320		JMS PRMON	/PRINT THE MONTH
017103* 2326		ISZ MONTH
017104* 4320		JMS PRMON
017105* 7144		CMA CLL RAL	/TURN SLASH INTO DASH

017106* 1340	NUMERC,	TAD LSLASH
017107* 4743		JMS I LPR6BT
017110* 5646		JMP I PRDAMO

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 60




017111* 7111	PRYEAR,	.		/PRINT THE YEAR
017112* 7012		RTR
017113* 7012		RTR		/AC = BIPCCL WORD
017114* 0335		AND L30
017115* 1020		TAD TEMP	/MERGE
017116* 4742		JMS I LPRNUM
017117* 5711		JMP I PRYEAR

017120* 7120	PRMON,	.		/PRINT ALPHA MONTH
017121* 1726		TAD I MONTH
017122* 3324		DCA .+2
017123* 4741		JMS I LPRWD
017124* 7145		DATTAB
017125* 5720		JMP I PRMON

017126* 7126	MONTH,	.		/EXTRACT MONTH BITS
017127* 1020		TAD TEMP
017130* 7104		CLL RAL
017131* 7006		RTL
017132* 7006		RTL
017133* 0336		AND L37
017134* 5726		JMP I MONTH

017135* 0030	L30,	30
017136* 0037	L37,	37
017137* 7763	LM15,	-15
017140* 0257	LSLASH,	"/
017141* 4050	LPRWD,	PRWD
017142* 4101	LPRNUM,	PRNUM
017143* 4070	LPR6BT,	PR6BIT
017144* 7644	L17644,	MPARAM+1

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 61




017145* 7146	DATTAB,	.+1
017146* 5502	IFNDEF GERMAN < TEXT /-BAD-JAN-FEB-MAR-APR-MAY-JUN-JUL-AUG-SEP-OCT-NOV-DEC/>
017147* 0104
017150* 5512
017151* 0116
017152* 5506
017153* 0502
017154* 5515
017155* 0122
017156* 5501
017157* 2022
017160* 5515
017161* 0131
017162* 5512
017163* 2516
017164* 5512
017165* 2514
017166* 5501
017167* 2507
017170* 5523
017171* 0520
017172* 5517
017173* 0324
017174* 5516
017175* 1726
017176* 5504
017177* 0503
017200* 0000
		IFDEF  GERMAN < TEXT /-???-JAN-FEB-MAR-APR-MAI-JUN-JUL-AUG-SEP-OKT-NOV-DEZ/>
	6767		RELOC
	7000		PAGE
	0001		FIELD 1
	3000		*3000
			$

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 62

ABSBIN 4442      DIR    2540      ICHAR1 2124      IOMSG  5717
ABSLUT 4440      DIRECT 6200      ICHAR2 2120      IOPEN  2001
ABUF   6601      DIRMSG 2542      ICHAR3 2105      JMSPR  4704
ACHLP  3204      DIRPRE 4000      IHNDLR 0024      JMSPR6 4270
ACLOSE 3021      DLENGT 6206      IMAGE  2601      K200   6024
ADCAXR 3241      DLHNDL 3415      IMCCNT 2615      K7     6240
ADDLEN 4311      DLINK  0031      IMCLOS 2604      K7617  6145
AEOFFG 3114      DMTX   5460      IMCTLW 2710      K7622  6022
AGAIN  2660      DPFILE 3423      IMEFLP 2731      K770   3400
ALPHA  7061      DP4    3422      IMERRX 2725      K7760  6000
AOUERR 6531      DSKNAM 4711      IMERR4 2742      LEADER 3533
ASCEOF 3107      DSKNUM 4705      IMFILP 2663      LEAVE  2516
ASCIGO 3200      DTYPE  0027      IMGOUT 6130      LFEED  3002
ASCII  3075      DVREDE 6341      IMHNDL 2641      LM15   7137
ASCI2  6466      DWASTE 6204      IMNZRO 2744      LPRNUM 7142
ASCI5  3350      DZERO  3435      IMOUT  2722      LPRWD  7141
ASCJMP 3231      ECOUNT 0035      IMRCLP 2671      LPR6BT 7143
ASCPTC 6536      ENDDIR 4352      IMREC  2712      LSLASH 7140
BEOF   4517      ENDFUJ 2620      IMTRA  2656      LTCODE 4451
BEOT   4446      EOFERR 2101      IM200  2747      LTLOOP 4460
BINARY 4401      EOFTST 3016      IM7600 2600      L17644 7144
BIN200 4425      EOL    3004      INBLK  0033      L20    3033
BIN360 4400      EOLLP  3010      INBREC 2056      L30    7135
BIPCCL 7777      ERCRLF 4643      INBUF  3000      L37    7136
BLOKNO 0025      ERLP   4602      INBUFP 2052      MDATE  7666
BNM140 4444      ERPCH  4613      INCDIF 2046      MONTH  7126
BN7600 4507      ERPRNT 4600      INCHAR 2021      MOVCNT 6322
BOUERR 6532      ERRTBL 4737      INCHCT 2135      MOVFIL 5452
CARRET 3321      ERR0   5006      INCOMN 2125      MPARAM 7643
CDIF10 5321      ERR1   5022      INCTL  1600      MTEMP  0027
CGEWST 6433      ERR10  5170      INCTLW 2051      MWAST  6323
CHAR   0021      ERR11  6207      INCTR  2001      NAMELP 4226
CHPRNT 4627      ERR2   6251      INCTZF 2127      NAME1  4264
CINSRT 3237      ERR3   5036      INDEVH 6600      NAME2  4265
CKZERO 5611      ERR4   5050      INEFER 4534      NAME3  4266
COLCT  3342      ERR5   5062      INEOF  0023      NAME4  4275
CONFRM 3730      ERR6   5076      INERR  2100      NEWIN  5400
COPTSW 3133      ERR7   5116      INERRX 2075      NEWOUT 5503
CTCFLG 5700      ERR8   5135      INFLD  0000      NEWSEG 4205
CTCMSG 5702      ERR9   5153      INFPTR 0022      NEWTAP 4406
CTCTST 2507      FAKE   6400      INGBUF 2032      NEXTIN 5515
CYWAST 6413      FFEED  3311      INHNDL 2146      NODUMP 2346
C200   3535      FFLF   3301      INJMP  2102      NOHND  6400
DATTAB 7145      FILENR 4621      INJMPP 2024      NONDIR 3517
DCB    7760      FILLLP 2326      INNEWF 2135      NOPCD  3033
DCOUNT 0030      FIXLEN 3700      INPTR  2012      NOROOM 5735
DDATE  0033      FIXLP  3710      INREC  2053      NOTOPT 3337
DELETE 3401      FIXOVR 3724      INRECS 0007      NUMERC 7106
DELOOP 3406      FLENGT 0024      INRTRN 2133      NXTDIR 4200
DEMPTY 4325      GETDIR 4040      INSEG  5407      NXTRD  6114
DEND   3134      GETEQ  6332      INTEST 5277      OCHAR  2410
DEVLEN 3600      GETNEW 2030      INXR   0011      OCHAR1 2460
DFORG  6201      GOTCON 3754      IN200  2110      OCHAR2 2455
DFUJLP 4011      HDTST  6453      IN7400 2000      OCHAR3 2426
DIGIT  4156      ICHAR  2014      IN7600 2015      OCISZ  2354

/PIP V50 FOR OS/8 MONITOR V50		  PAL8-V50Y 03-MAR-23 PAGE 62-1

OCLOSE 2310      PER13  6143      SQFIL4 6316      
OCRET  2355      PER2   6534      SQFIL5 6273      
OEFAIL 2233      PER4   3110      SQFLAG 0026      
OFSET  6142      PIP    3023      SQIDER 5625      
OHNDLR 0025      PIPCD  3030      SQIOER 5645      
OLDDIR 0007      PIPCLR 6126      SQOVER 5600      
ONCE   6600      PIPERR 3521      SQTRA  2641      
ONCENF 6624      PIPSA  3000      SQUISH 5200      
ONOFIL 2245      PIPSNA 3011      SQUISX 5202      
ONTERR 2243      PRBLNK 4140      SQ7600 5330      
OOPEN  2200      PRCT   4067      SRSTOR 5664      
OORETN 2231      PRDAMO 7046      SUMMOR 6625      
OS78   0001      PRLNGT 4276      SURE   5534      
OTRTN  2505      PRMON  7120      SYSCOP 6001      
OTYPE  2473      PRNMLP 4112      SYSCPY 6004      
OUBLK  2222      PRNUM  4101      SYSDIR 6526      
OUBUF  0000      PRTCRL 4310      S7200  5406      
OUCCNT 2352      PRWD   4050      TAB    3251      
OUCDIF 2276      PRWDLP 4054      TABLP  3254      
OUCHAR 2421      PRXX60 4124      TABRBT 3264      
OUCOMN 2462      PRYEAR 7111      TEMP   0020      
OUCRET 2463      PR212  4055      TEMP1  0012      
OUCTL  5400      PR6BIT 4070      TESTXR 3243      
OUCTLW 2301      PTP    0020      TOPT   3325      
OUDEVH 7200      PWRTEN 4152      TSTHED 6443      
OUDLEN 0031      P1     6513      TSTIO  6454      
OUDWCT 2471      P1A    6515      TSTSAM 6244      
OUELEN 2223      P7600  3522      TTYOUT 5000      
OUENTR 2217      RBTLP  3122      VER    6615      
OUFLD  0000      RCOPY1 4523      VTAB   3271      
OUHNDL 2215      RECCNT 0034      VTLF   3302      
OUJMP  2423      RELBIN 4466      WASTE  0032      
OUJMPE 2470      RELEND 4513      XR     0010      
OUK    5323      RELERR 4541      YDUMP  6121      
OUNOWR 2306      RELLP  4472      YIHAND 6021      
OUPOLD 2466      RELPTR 6634      YINREC 6043      
OUPTR  2467      RELSNA 4503      YLOOP  6110      
OUREC  2303      RELTBL 4717      YNOOUT 6137      
OUSAVE 5533      RUBOUT 3115      YOHAND 6063      
OUSETP 2400      SAME   0032      YOUSYS 6036      
OUTBLK 0030      SEMPTY 5531      YSOUT  6134      
OUTDIR 5631      SETCTC 5311      YTSOUT 6220      
OUTDMP 2247      SETSAM 5543      ZEROK  5620      
OUTEMP 2465      SGETIN 5416      ZEROKS 5622      
OUTINH 2472      SLASHG 2520      ZRO70  3475      
OUTOPN 3343      SLGRET 2532      
OUTSEG 5641      SNULER 5523      
OUTXR  0010      SNULL  5525      
OUWAST 0027      SOHND  5220      
OU7600 2201      SQBUF1 1400      
OU7601 2351      SQBUF2 7200      
OZERR  3514      SQCTLC 5650      
OZHNDL 3457      SQDTST 6477      
PCRLF  4142      SQFILE 6261      
PDATE  4650      SQFIL3 6267      



ERRORS DETECTED: 0
LINKS GENERATED: 0