Google
 

Trailing-Edge - PDP-10 Archives - tops10_tools_bb-fp64b-sb - 10,7/rsx20f/rsxtol/pip.lst
There are 2 other files named pip.lst in the archive. Click here to see a list.
CDDMG M0003, CONVERT DBL PRECIS	MACRO M1113  27-FEB-85 12:29
TABLE OF CONTENTS

     7-    1	**** CDDMG VERSION M0003 ****
PIPMAC - MACROS FOR PIP, ETC.	MACRO M1113  27-FEB-85 12:29  PAGE 6


    397
CDDMG M0003, CONVERT DBL PRECIS	MACRO M1113  27-FEB-85 12:29  PAGE 7


      1						.TITLE	CDDMG M0003, CONVERT DBL PRECISION TO DECIMAL MAGNITIUDE
						.SBTTL	**** CDDMG VERSION M0003 ****
						.IDENT	/M0003/
      2					; ALTERED TUESDAY 16-APR-74 13:30
      3					;
      4					; COPYRIGHT 1975, DIGITAL EQUIPMENT CORP., MAYNARD MASS.
      5					; COPYRIGHT 1974, DIGITAL EQUIPMENT CORP., MAYNARD MASS.
      6
      7					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
      8					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
      9					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
     10					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
     11
     12					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
     13					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
     14					; EQUIPMENT CORPORATION.
     15
     16					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY
     17					; OF ITS SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
     18					;
     19					; PETER H. LIPMAN 19-NOV-73
     20					;
     21						.MCALL	CALL,RETURN
     22					;+
     23					; CONVERT DOUBLE PRECISION BINARY NUMBER TO MAGNITUDE DECIMAL
     24					; CALLING SEQUENCE:
     25					;	CALL	$CDDMG
     26					; INPUTS:
     27					;	R0=STRING ADDRESS
     28					;	R1=ADDRESS OF DOUBLE PRECISION NUMBER
     29					;	R2=0 IF SUPPRESSING LEAD ZERO'S, NON ZERO IF NOT
     30					; OUTPUTS:
     31					;	R0=UPDATED STRING POINTER
     32					;	R1,R2 ALTERED, R3-R5 PRESERVED
     33					;-
     34	000000	004567 	000000G		$CDDMG::JSR	R5,$SAVRG
     35
     36						.IF	EQ,R$$EIS
     37	000004	010246 				MOV	R2,-(SP)
     38	000006	010046 				MOV	R0,-(SP)
     39	000010	016102 	000002 			MOV	2(R1),R2	;R2=LOW ORDER VALUE TO BE CONVERTED
     40	000014	011101 				MOV	(R1),R1		;R1=HIGH ORDER VALUE
     41	000016	002432 				BLT	40$		;ONLY 31 BITS ALLOWED
     42	000020	012700 	023420 			MOV	#10000.,R0
     43	000024					CALL	$DDIV		;R1,R2 = QUOTIENT, R0=REMAINDER
     44	000030	005701 				TST	R1		;IF DBL PRECISION QUOTIENT, OVERFLOW
     45	000032	001024 				BNE	40$
     46	000034	010005 				MOV	R0,R5		;REMAINDER TO R5
     47	000036	010204 				MOV	R2,R4		;QUOTIENT TO R4
     48	000040	012600 				MOV	(SP)+,R0	;RESTORE SAVED REGISTERS
     49	000042	012602 				MOV	(SP)+,R2
     50
     51						.IFF
     52						MOV	(R1)+,R4
     53						BLT	40$		;IF HIGH ORDER IS NEG, THEN OVERFLOW
     54						MOV	@R1,R5
     55						DIV	#10000.,R4
CDDMG M0003, CONVERT DBL PRECIS	MACRO M1113  27-FEB-85 12:29  PAGE 7-1
**** CDDMG VERSION M0003 ****

     56						BVS	40$		;BRANCH IF OVERFLOW
     57						.ENDC
     58
     59	000044	010401 				MOV	R4,R1		;PRINT HIGH ORDER DECIMAL DIGITS
     60	000046	001004 				BNE	20$		;BRANCH IF DOUBLE PRECISION
     61	000050	010501 				MOV	R5,R1		;FORMAT SINGLE PRECISION
     62	000052					CALL	$CBDMG		;CONVERT BINARY TO DECIMAL MAGNITUDE
     63	000056					RETURN
     64	000060				20$:	CALL	$CBDMG		;CONVERT THE HIGH ORDER PORTION
     65	000064	114046 				MOVB	-(R0),-(SP)	;SAVE LAST BYTE, WILL BE OVER WRITTEN
     66	000066	010004 				MOV	R0,R4		;AND SAVE ADDRESS TO RESTORE IT
     67	000070	010702 				MOV	PC,R2		;NON ZERO TO ZERO FILL 2ND PART
     68	000072	010501 				MOV	R5,R1
     69					; THE FOLLOWING PRODUCES 5 DIGITS AND I ONLY WANT 4
     70					; THAT IS WHY THE POINTER WAS BACKED UP ONE
     71	000074					CALL	$CBDMG		;CONVERT LOW ORDER DIGITS
     72	000100	112614 				MOVB	(SP)+,@R4	;RESTORE SAVED BYTE
     73	000102					RETURN
     74					;
     75					; NUMBER IS TOO BIG TOO PRINT, OUTPUT 5 "*"
     76	000104				40$:
     77						.IF	EQ,R$$EIS
     78	000104	012600 				MOV	(SP)+,R0
     79	000106	012602 				MOV	(SP)+,R2
     80						.ENDC
     81
     82	000110	012705 	000005 			MOV	#5,R5
     83	000114	112720 	000052 		50$:	MOVB	#'*,(R0)+
     84	000120					SOB	R5,50$
     85	000124					RETURN
     86					;
     87					;
     88					;
     89		000001 				.END
CDDMG M0003, CONVERT DBL PRECIS	MACRO M1113  27-FEB-85 12:29  PAGE 7-2
SYMBOL TABLE

R$$DPB= 000001   	R$$EIS= 000000   	$CBDMG= ****** GX	$DDIV = ****** GX	$$    = 000067
R$$DYM= 000001   	R$$11M= 000001   	$CDDMG  000000RG 	$SAVRG= ****** GX

. ABS.	000000	   000
      	000126	   001
ERRORS DETECTED:  0

VIRTUAL MEMORY USED:  2520 WORDS  ( 10 PAGES)
DYNAMIC MEMORY:  3566 WORDS  ( 13 PAGES)
ELAPSED TIME:  00:00:10
[43,10]CDDMG,[43,20]CDDMG/-SP/CR=[43,30]PIPMAC,CDDMG
CDDMG      CREATED BY  MACRO  ON 27-FEB-85 AT 12:29	PAGE 1

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

R$$DPB	= 000001	#1-27      
R$$DYM	= 000001	#1-29      
R$$EIS	= 000000	#1-28       1-38       7-36       7-77      
R$$11M	= 000001	#1-25       1-26       7-1       
SYS40$	= ******	 1-67      
$CBDMG	= ******  GX	 7-62       7-62       7-64       7-64       7-71       7-71      
$CDDMG	  000000 RG	#7-34      
$DDIV 	= ******  GX	 7-43       7-43      
$SAVRG	= ******  GX	 7-34      
$$    	= 000067	#7-43       7-43      #7-62       7-62      #7-64       7-64      #7-71       7-71      
CDDMG      CREATED BY  MACRO  ON 27-FEB-85 AT 12:29	PAGE 2

MACRO CROSS REFERENCE                                   CREF         

MACRO NAME	REFERENCES

ASH   		#1-64      
ASHC  		#1-64      
CALL  		#7-21      #7-43      #7-62      #7-64      #7-71      
DIV   		#1-64      
ERRINI		#4-307     
ERROUT		#3-215     
ERROUX		#3-222     
ERROU1		#3-225     
ERRP  		#3-247     
ERRPX 		#3-253     
ERRP1 		#3-256     
ERR1  		#3-273     
FLDSOF		#5-382     
IDENT 		#5-339     #7-1       
IDENT1		#5-347      7-1       
IDTITL		#5-356     
ILLOP 		#1-52      #1-64       1-64      
IMPURE		#1-75      
MARK  		#1-64      
MSG   		#2-124     
MSGZ  		#2-129     
MSG1  		#2-133     
MUL   		#1-64      
NOEIS$		#1-39       1-64      
PURE. 		#1-84      
PURE.D		#1-102     
PURE.I		#1-98      
RETURN		#7-21      #7-63      #7-73      #7-85      
RTT   		#1-64      
SOB   		#1-64      #7-84      
SXT   		#1-64      
XOR   		#1-64      
DFLTNM M0101, PROPAGATE DEFAULT	MACRO M1113  27-FEB-85 12:29
TABLE OF CONTENTS

     7-    1	**** DFLTNM VERSION M0101 ****
PIPMAC - MACROS FOR PIP, ETC.	MACRO M1113  27-FEB-85 12:29  PAGE 6


    397
DFLTNM M0101, PROPAGATE DEFAULT	MACRO M1113  27-FEB-85 12:29  PAGE 7


      1						.TITLE	DFLTNM M0101, PROPAGATE DEFAULT NAME AND TYPE
						.SBTTL	**** DFLTNM VERSION M0101 ****
						.IDENT	/M0101/
      2					; ALTERED THURSDAY 21-JUNE-73 10:05
      3					;
      4					; COPYRIGHT 1975, 1985, DIGITAL EQUIPMENT CORP., MAYNARD MASS.
      5					; COPYRIGHT 1974, DIGITAL EQUIPMENT CORP., MAYNARD MASS.
      6					;
      7					;			ALL RIGHTS RESERVED
      8					;
      9					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
     10					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
     11					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
     12					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
     13
     14					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
     15					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
     16					; EQUIPMENT CORPORATION.
     17
     18					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY
     19					; OF ITS SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
     20					;
     21					; PETER H. LIPMAN 21-JUNE-73
     22					;
     23						.MCALL	FDOF$L,FCSBT$,RETURN
     24	000000					FDOF$L			;DEFINE THE FDB OFFSETS LOCALLY
     25	000000					FCSBT$			;DEFINE THE FDB BITS AND VALUES LOCALLY
     26					;
     27	000000					PURE.I
     28					;+
     29					; SET UP DEFAULT FILE NAME AND TYPE USING PREVIOUS FILE NAME AND TYPE
     30					; AS WELL AS THE STATUS BITS WHICH TELL WHAT WAS EXPLICIT
     31					; IN THE PREVIOUS FILE NAME AND TYPE
     32					; CALLING SEQUENCE:
     33					;	CALL	.DFLTN
     34					; INPUTS:
     35					;	R0 = FDB ADDRESS
     36					; OUTPUTS:
     37					;	ALL REGISTERS PRESERVED
     38					; OPERATION:
     39					;	IN AN ANALOGOUS FASHION TO THE WAY CSI$2 CARRIES THE
     40					; CURRENT DEVICE AND DIRECTORY NAMES FORWARD TO SUCCEEDING SPECS
     41					; THIS ROUTINE IMPLEMENTS CARRING THE FILE NAME AND TYPE FORWARD.
     42					; IF THE NAME/TYPE WAS EXPLICIT AND NOT WILD IN THE PREVIOUS SPEC,
     43					; THEN IT IS CARRIED FORWARD.  IF NO FILE NAME OR TYPE WAS SPECIFIED
     44					; THIS TIME, THEN THE DEFAULT IS LEFT AS IT WAS (CARRIED FORWARD).
     45					; FINALLY IF THE PREVIOUS SPEC WAS A WILD CARD, THEN
     46					; THE DEFAULT IS RESET TO NULL.
     47					;-
     48	000000	004567 	000000G		.DFLTN::JSR	R5,.SAVR1
     49	000004	016002 	000122 			MOV	F.FNB+N.STAT(R0),R2 ;R2=STATUS BITS
     50	000010	032702 	000004 			BIT	#NB.NAM,R2
     51	000014	001421 				BEQ	20$		;BRANCH IF FILE NAME NOT EXPLICIT
     52	000016	016001 	000046 			MOV	F.DFNB(R0),R1
     53	000022	062701 	000006 			ADD	#N.FNAM,R1
     54	000026	032702 	000040 			BIT	#NB.SNM,R2
     55	000032	001007 				BNE	10$		;BRANCH IF FILE NAME WAS "*"
DFLTNM M0101, PROPAGATE DEFAULT	MACRO M1113  27-FEB-85 12:29  PAGE 7-1
**** DFLTNM VERSION M0101 ****

     56	000034	016021 	000110 			MOV	F.FNAM(R0),(R1)+ ;USE THIS FILE NAME FOR NEXT DEFAULT
     57	000040	016021 	000112 			MOV	F.FNAM+2(R0),(R1)+
     58	000044	016021 	000114 			MOV	F.FNAM+4(R0),(R1)+
     59	000050	000403 				BR	20$
     60					;
     61					; WILD CARD FILE NAME INDICATES NULL DEFAULT
     62	000052	005021 			10$:	CLR	(R1)+
     63	000054	005021 				CLR	(R1)+
     64	000056	005021 				CLR	(R1)+
     65	000060	032702 	000002 		20$:	BIT	#NB.TYP,R2
     66	000064	001412 				BEQ	30$		;BRANCH IF FILE TYPE NOT EXPLICIT
     67	000066	016001 	000046 			MOV	F.DFNB(R0),R1
     68	000072	005061 	000014 			CLR	N.FTYP(R1)	;ASSUME NULL DEFAULT FILE TYPE
     69	000076	032702 	000020 			BIT	#NB.STP,R2
     70	000102	001003 				BNE	30$		;BRANCH IF FILE TYPE WAS "*"
     71	000104	016061 	000116 	000014 		MOV	F.FTYP(R0),N.FTYP(R1) ;USE THIS FILE TYPE AS DEFAULT
     72	000112				30$:	RETURN
     73					;
     74					;
     75		000001 				.END
DFLTNM M0101, PROPAGATE DEFAULT	MACRO M1113  27-FEB-85 12:29  PAGE 7-2
SYMBOL TABLE

FA.APD= 000100   	FD.WBH= 000002   	F.EOBB= 000032   	F.STBK= 000036   	N.NEXT= 000022
FA.CRE= 000010   	FO.APD= 000106   	F.ERR = 000052   	F.UNIT= 000136   	N.STAT= 000020
FA.EXT= 000004   	FO.MFY= 000002   	F.FACC= 000043   	F.URBD= 000020   	N.UNIT= 000034
FA.NSP= 000100   	FO.RD = 000001   	F.FFBY= 000014   	F.VBN = 000064   	R$$DPB= 000001
FA.RD = 000001   	FO.UPD= 000006   	F.FNAM= 000110   	F.VBSZ= 000060   	R$$DYM= 000001
FA.SHR= 000040   	FO.WRT= 000016   	F.FNB = 000102   	NB.DEV= 000200   	R$$EIS= 000000
FA.TMP= 000020   	F.ALOC= 000040   	F.FTYP= 000116   	NB.DIR= 000100   	R$$11M= 000001
FA.WRT= 000002   	F.BBFS= 000062   	F.FVER= 000120   	NB.NAM= 000004   	R.FIX = 000001
FD.BLK= 000010   	F.BDB = 000070   	F.HIBK= 000004   	NB.SD1= 000400   	R.VAR = 000002
FD.CCL= 000002   	F.BGBC= 000057   	F.LUN = 000042   	NB.SD2= 001000   	S.FATT= 000016
FD.CR = 000002   	F.BKDN= 000026   	F.MBCT= 000054   	NB.SNM= 000040   	S.FDB = 000140
FD.DIR= 000010   	F.BKDS= 000020   	F.MBC1= 000055   	NB.STP= 000020   	S.FNAM= 000006
FD.FTN= 000001   	F.BKEF= 000050   	F.MBFG= 000056   	NB.SVR= 000010   	S.FNB = 000036
FD.INS= 000010   	F.BKP1= 000051   	F.NRBD= 000024   	NB.TYP= 000002   	S.FNBW= 000017
FD.PLC= 000004   	F.BKST= 000024   	F.NREC= 000030   	NB.VER= 000001   	S.FNTY= 000004
FD.RAH= 000001   	F.BKVB= 000064   	F.OVBS= 000030   	N.DID = 000024   	S.FTYP= 000002
FD.RAN= 000002   	F.CNTG= 000034   	F.RACC= 000016   	N.DVNM= 000032   	S.NFEN= 000020
FD.REC= 000001   	F.DFNB= 000046   	F.RATT= 000001   	N.FID = 000000   	.DFLTN  000000RG    002
FD.RWM= 000001   	F.DSPT= 000044   	F.RCNM= 000034   	N.FNAM= 000006   	.SAVR1= ****** GX
FD.SDI= 000020   	F.DVNM= 000134   	F.RCTL= 000017   	N.FTYP= 000014   	...GBL= 000000
FD.SQD= 000040   	F.EFBK= 000010   	F.RSIZ= 000002   	N.FVER= 000016   	...TPC= 000140
FD.TTY= 000004   	F.EFN = 000050   	F.RTYP= 000000

. ABS.	000000	   000
      	000000	   001
PURE$I	000114	   002
ERRORS DETECTED:  0

VIRTUAL MEMORY USED:  4187 WORDS  ( 17 PAGES)
DYNAMIC MEMORY:  5678 WORDS  ( 21 PAGES)
ELAPSED TIME:  00:00:11
[43,10]DFLTNM,[43,20]DFLTNM/-SP/CR=[43,30]PIPMAC,DFLTNM
DFLTNM     CREATED BY  MACRO  ON 27-FEB-85 AT 12:30	PAGE 1

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

F.DFNB	= 000046	 7-52       7-67      
F.FNAM	= 000110	 7-56       7-57       7-58      
F.FNB 	= 000102	 7-49      
F.FTYP	= 000116	 7-71      
NB.NAM	= 000004	 7-50      
NB.SNM	= 000040	 7-54      
NB.STP	= 000020	 7-69      
NB.TYP	= 000002	 7-65      
N.FNAM	= 000006	 7-53      
N.FTYP	= 000014	*7-68      *7-71      
N.STAT	= 000020	 7-49      
RONLY$	= ******	 7-27       7-27      
R$$DPB	= 000001	#1-27      
R$$DYM	= 000001	#1-29      
R$$EIS	= 000000	#1-28       1-38      
R$$11M	= 000001	#1-25       1-26       7-1       
SYS40$	= ******	 1-67       7-27       7-27      
.DFLTN	  000000 RG	#7-48      
.SAVR1	= ******  GX	 7-48      
DFLTNM     CREATED BY  MACRO  ON 27-FEB-85 AT 12:30	PAGE 2

MACRO CROSS REFERENCE                                   CREF         

MACRO NAME	REFERENCES

ASH   		#1-64      
ASHC  		#1-64      
DIV   		#1-64      
ERRINI		#4-307     
ERROUT		#3-215     
ERROUX		#3-222     
ERROU1		#3-225     
ERRP  		#3-247     
ERRPX 		#3-253     
ERRP1 		#3-256     
ERR1  		#3-273     
FCSBT$		#7-23       7-25      
FDOFF$		#7-24       7-24      
FDOF$L		#7-23      #7-24      
FLDSOF		#5-382     
IDENT 		#5-339     #7-1       
IDENT1		#5-347      7-1       
IDTITL		#5-356     
ILLOP 		#1-52      #1-64       1-64      
IMPURE		#1-75      
MARK  		#1-64      
MSG   		#2-124     
MSGZ  		#2-129     
MSG1  		#2-133     
MUL   		#1-64      
NOEIS$		#1-39       1-64      
PURE. 		#1-84       7-27      
PURE.D		#1-102     
PURE.I		#1-98       7-27      
RETURN		#7-23      #7-72      
RTT   		#1-64      
SOB   		#1-64      
SXT   		#1-64      
XOR   		#1-64      
ERRPRG M0107, ERROR PRINT OUT (	MACRO M1113  27-FEB-85 12:30
TABLE OF CONTENTS

     7-    1	**** ERRPRG VERSION M0107 ****
PIPMAC - MACROS FOR PIP, ETC.	MACRO M1113  27-FEB-85 12:30  PAGE 6


    397
ERRPRG M0107, ERROR PRINT OUT (	MACRO M1113  27-FEB-85 12:30  PAGE 7


      1						.TITLE	ERRPRG M0107, ERROR PRINT OUT (GCML)
						.SBTTL	**** ERRPRG VERSION M0107 ****
						.IDENT	/M0107/
      2					; ALTERED FRIDAY 10-MAY-74 14:05
      3					;
      4					; COPYRIGHT 1975,1985, DIGITAL EQUIPMENT CORP., MAYNARD MASS.
      5					; COPYRIGHT 1974, DIGITAL EQUIPMENT CORP., MAYNARD MASS.
      6					;
      7					;			ALL RIGHTS RESERVED
      8					;
      9					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
     10					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
     11					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
     12					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
     13
     14					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
     15					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
     16					; EQUIPMENT CORPORATION.
     17
     18					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY
     19					; OF ITS SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
     20					;
     21					; PETER H. LIPMAN 4-MAY-73
     22					;
     23						.MCALL	CALL,RETURN
     24					;
     25	000000					PURE.I
     26					;+
     27					; ERROR PRINTOUT ROUTINE FOR PROGRAMS WITH GET COMMAND LINE
     28					;	CHECKS FOR @ FILE AND PRINTS COMMAND LINE IF NOT TTY
     29					;	THEN IT CALL ERRPRT.
     30					; CALLING SEQUENCE:
     31					;	CALL	ERRPRG
     32					; INPUTS:
     33					;	R0=FDB ADDRESS FOR PRINTING FILE NAME
     34					;		IF =0, DON'T PRINT FILE NAME
     35					;		IF EVEN, PRINT FILE NAME FROM FILE NAME BLOCK
     36					;		IF ODD, PRINT FILE NAME FROM F.DSPT
     37					;	IF R2 .GE. 0 R2=SIZE OF ERROR STRING
     38					;		TO PRINT AND R3=ADDRESS
     39					;	IF R2 .LT. 0, R2=NEGATIVE RECORD NUMBER
     40					;		OF ERROR MESSAGE, R3=FNB OF ERROR MESSAGE FILE
     41					;	R4=ERROR CODE TO PRINT, IF =0 DON'T PRINT, OTHERWISE ASSUME
     42					;		IT'S A QIOSYM ERROR CODE, AND PRINT IT
     43					;		NOTE: IF R4 IS LOADED FROM THE BYTE F.ERR IN THE FDB
     44					;	AND IFTHE BYTE F.ERR+1 IS NEGATIVE, SUBTRACT 128.
     45					;	FROM R4 BEFORE CALLING ERRPRG.
     46					; OUTPUTS:
     47					;	C=0 IF NO ERRORS
     48					;	C=1 IF FAILED TO PRINT THE ERROR MESSAGE (MO ERROR)
     49					;	R2,R3 PRESERVED
     50					;	R0,R1,R4,R5 ALTERED
     51					;-
     52	000000				ERRPRG::
     53	000000	012701 	000000G			MOV	#GCMLCB,R1	;R1=GET COMMAND LINE CONTROL BLOCK
     54	000004					CALL	.ERPRT
     55	000010					RETURN
ERRPRG M0107, ERROR PRINT OUT (	MACRO M1113  27-FEB-85 12:30  PAGE 7-1
**** ERRPRG VERSION M0107 ****

     56					;
     57		000001 				.END
ERRPRG M0107, ERROR PRINT OUT (	MACRO M1113  27-FEB-85 12:30  PAGE 7-2
SYMBOL TABLE

ERRPRG  000000RG    002	R$$DPB= 000001   	R$$EIS= 000000   	$$    = 000067   	.ERPRT= ****** GX
GCMLCB= ****** GX	R$$DYM= 000001   	R$$11M= 000001

. ABS.	000000	   000
      	000000	   001
PURE$I	000012	   002
ERRORS DETECTED:  0

VIRTUAL MEMORY USED:  2506 WORDS  ( 10 PAGES)
DYNAMIC MEMORY:  3566 WORDS  ( 13 PAGES)
ELAPSED TIME:  00:00:07
[43,10]ERRPRG,[43,20]ERRPRG/-SP/CR=[43,30]PIPMAC,ERRPRG
ERRPRG     CREATED BY  MACRO  ON 27-FEB-85 AT 12:30	PAGE 1

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

ERRPRG	  000000 RG	#7-52      
GCMLCB	= ******  GX	 7-53      
RONLY$	= ******	 7-25       7-25      
R$$DPB	= 000001	#1-27      
R$$DYM	= 000001	#1-29      
R$$EIS	= 000000	#1-28       1-38      
R$$11M	= 000001	#1-25       1-26       7-1       
SYS40$	= ******	 1-67       7-25       7-25      
$$    	= 000067	#7-54       7-54      
.ERPRT	= ******  GX	 7-54       7-54      
ERRPRG     CREATED BY  MACRO  ON 27-FEB-85 AT 12:30	PAGE 2

MACRO CROSS REFERENCE                                   CREF         

MACRO NAME	REFERENCES

ASH   		#1-64      
ASHC  		#1-64      
CALL  		#7-23      #7-54      
DIV   		#1-64      
ERRINI		#4-307     
ERROUT		#3-215     
ERROUX		#3-222     
ERROU1		#3-225     
ERRP  		#3-247     
ERRPX 		#3-253     
ERRP1 		#3-256     
ERR1  		#3-273     
FLDSOF		#5-382     
IDENT 		#5-339     #7-1       
IDENT1		#5-347      7-1       
IDTITL		#5-356     
ILLOP 		#1-52      #1-64       1-64      
IMPURE		#1-75      
MARK  		#1-64      
MSG   		#2-124     
MSGZ  		#2-129     
MSG1  		#2-133     
MUL   		#1-64      
NOEIS$		#1-39       1-64      
PURE. 		#1-84       7-25      
PURE.D		#1-102     
PURE.I		#1-98       7-25      
RETURN		#7-23      #7-55      
RTT   		#1-64      
SOB   		#1-64      
SXT   		#1-64      
XOR   		#1-64      
ERRPRT M0216, ERROR PRINT OUT R	MACRO M1113  27-FEB-85 12:30
TABLE OF CONTENTS

     7-    1	**** ERRPRT VERSION M0216 ****
PIPMAC - MACROS FOR PIP, ETC.	MACRO M1113  27-FEB-85 12:30  PAGE 6


    397
ERRPRT M0216, ERROR PRINT OUT R	MACRO M1113  27-FEB-85 12:30  PAGE 7


      1						.TITLE	ERRPRT M0216, ERROR PRINT OUT ROUTINE
						.SBTTL	**** ERRPRT VERSION M0216 ****
						.IDENT	/M0216/
      2					; ALTERED FRIDAY 4-OCT-74 12:50
      3					;
      4					; COPYRIGHT 1975,1985, DIGITAL EQUIPMENT CORP., MAYNARD MASS.
      5					; COPYRIGHT 1974, DIGITAL EQUIPMENT CORP., MAYNARD MASS.
      6
      7					;		ALL RIGHTS RESERVED
      8					;
      9					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
     10					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
     11					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
     12					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
     13
     14					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
     15					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
     16					; EQUIPMENT CORPORATION.
     17
     18					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY
     19					; OF ITS SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
     20					;
     21					; PETER H. LIPMAN 4-MAY-73
     22					;
     23
     24						.MCALL	FDOF$L,FCSBT$,FILIO$,GCMLD$,CSI$
     25	000000					FDOF$L			;DEFINE THE FDB OFFSETS LOCALLY
     26	000000					FCSBT$			;DEFINE THE FCS BITS AND VALUES LOCALLY
     27	000000					FILIO$			;DEFINE THE I/O FUNCTION CODES LOCALLY
     28	000000					GCMLD$			;DEFINE THE GET COMMAND LINE OFFSETS
     29	000000					CSI$			;DEFINE THE CSI BLOCK OFFSETS LOCALLY
     30					;
     31						.MCALL	CALL,RETURN,QIO$S,WTSE$S
     32
     33	000000					IMPURE
     34
     35	000000				.MOPRM::.BLKW	19.
     36	000046				.MOFMT::.BLKW	1
     37	000050				MOSTR1:	.BLKB	64.
     38	000150				MOSTR2:	.BLKB	68.
     39
     40	000000					.PSECT
     41
     42	000000					MSGZ	NULL,<>
     43	000000					MSG	SYDV,<SY>
     44	000000					MSG	EP00,<%N%VA%VA>
     45	000000					MSGZ	EP01,<%N%VA%VA%N%VA>
     46		000026 				EP00SZ=EP00SZ+EP01SZ
     47	000000					MSG	EP02,<%N%VA%VA>
     48	000000					MSGZ	EP03,<%N%VA%VA%N%VA:%VA%VA%VA>
     49		000040 				EP02SZ=EP02SZ+EP03SZ
     50	000000					MSG	EP04,<%N%VA%VA>
     51	000000					MSGZ	EP05,<%N%VA%VA%N%2A%O:%VA%X%VA>
     52		000041 				EP04SZ=EP04SZ+EP05SZ
     53
     54
     55	000000					PURE.D
ERRPRT M0216, ERROR PRINT OUT R	MACRO M1113  27-FEB-85 12:30  PAGE 7-1
**** ERRPRT VERSION M0216 ****

     56	000000	000013'	000003'		MOTBL:	.WORD	EP01MG,EP00MG
     57	000004	000041'	000031'			.WORD	EP03MG,EP02MG
     58	000010	000101'	000071'			.WORD	EP05MG,EP04MG
     59	000014	000002 			.ERLUN::.WORD	2		;LUN TO OUTPUT ERROR MESSAGE
     60	000016	000040 			.EREFN::.WORD	32.		;EFN TO USE FOR ERROR MESSAGE
     61					;
     62					;+
     63					; PRINT ERROR MESSAGE
     64					; CALLING SEQUENCE
     65					;	CALL	.ERPRT
     66					; INPUTS:
     67					;	R0=FDB ADDRESS FOR PRINTING FILE NAME
     68					;		IF =0, DON'T PRINT FILE NAME
     69					;		IF EVEN, PRINT FILE NAME FROM FILE NAME BLOCK
     70					;		IF ODD, PRINT FILE NAME FROM F.DSPT
     71					;	R1=GET COMMAND LINE CONTROL BLOCK OR 0
     72					;		IF NON ZERO, SEE IF COMMAND WAS FROM @FILE,
     73					;		IF IT WAS, ECHO THE COMMAND LINE AS WELL
     74					;	IF R2 .GE. 0, R2=SIZE OF ERROR STRING
     75					;		TO PRINT AND R3=ADDRESS
     76					;	IF R2 .LT. 0, R2=NEGATIVE RECORD NUMBER
     77					;		OF ERROR MESSAGE, R3=FNB OF ERROR MESSAGE FILE
     78					;	R4=ERROR CODE TO PRINT, IF =0 DON'T PRINT, OTHERWISE ASSUME
     79					;		IT'S A QIOSYM ERROR CODE, AND PRINT IT
     80					;		NOTE: IF R4 WAS LOADED FROM TE BYTE F.ERR
     81					;		IN THE FDB AND F.ERR+1 IS NEGATIVE, THEN SUBTRACT
     82					;		128. FROM R4 BEFORE CALLING ERRPRT.
     83					; OUTPUTS:
     84					;	C=0 IF NO ERRORS
     85					;	C=1 IF FAILED TO PRINT THE ERROR MESSAGE (MO ERROR)
     86					;	R2,R3 PRESERVED
     87					;	R0,R1,R4,R5 ALTERED
     88					;-
     89	000020					PURE.I
     90	000000	005001 			ERRPRT::CLR	R1		;NO GET COMMAND LINE CONTROL BLOCK
     91	000002				.ERPRT::
     92	000002	012705 	000000'			MOV	#.MOPRM,R5	;R5=PARAMETER CONTROL BLOCK FOR EDMSG
     93	000006	005067 	000046'			CLR	.MOFMT		;ASSUME NO COMMAND LINE ECHO
     94	000012	005701 				TST	R1		;IS THERE A COMMAND FILE
     95	000014	001416 				BEQ	5$		;BRANCH IF NO
     96	000016	132761 	000004 	000017 		BITB	#FD.TTY,F.RCTL(R1) ;ARE COMMANDS FROM TTY
     97	000024	001012 				BNE	5$		;BRANCH IF YES
     98	000026	005267 	000046'			INC	.MOFMT		;USING LONG FORM FORMAT MESSAGE
     99	000032	012725 	000000G			MOV	#MOIDSZ,(R5)+	;SET DESCRIPTOR FOR PROG ID
    100	000036	012725 	000000G			MOV	#MOIDMG,(R5)+
    101	000042	016125 	000146 			MOV	G.CMLD(R1),(R5)+	;DESCRIPTOR FOR COMMAND LINE
    102	000046	016125 	000150 			MOV	G.CMLD+2(R1),(R5)+
    103	000052	012725 	000000G		5$:	MOV	#MOIDSZ,(R5)+	;DESCRIPTOR FOR PROGRAM ID
    104	000056	012725 	000000G			MOV	#MOIDMG,(R5)+
    105	000062	010246 				MOV	R2,-(SP)	;SAVE ERROR MESSAGE PARAMETERS
    106	000064	010346 				MOV	R3,-(SP)
    107	000066	010446 				MOV	R4,-(SP)	;SAVE FCS ERROR CODE
    108	000070	010046 				MOV	R0,-(SP)
    109	000072	005702 				TST	R2		;
    110	000074	002024 				BGE	20$		;BRANCH IF MESSAGE STRING SPECIFIED
    111	000076	012700 	000050'			MOV	#MOSTR1,R0	;R0=STRING ADDRESS TO STORE MESSAGE
    112	000102	005402 				NEG	R2		;MAKE MESSAGE NUMBER POSITIVE
ERRPRT M0216, ERROR PRINT OUT R	MACRO M1113  27-FEB-85 12:30  PAGE 7-2
**** ERRPRT VERSION M0216 ****

    113	000104	010301 				MOV	R3,R1		;R1=MESSAGE FILE FNB
    114	000106					CALL	.GERRM		;READ THE ERROR MESSAGE FROM THE FILE
    115	000112	103012 				BCC	10$		;BRANCH IF SUCCESSFUL
    116					;
    117					; FAILED TO GET THE ERROR STRING, SAY "ERROR CODE N"
    118					;
    119	000114	010246 				MOV	R2,-(SP)	;STORE ERROR CODE
    120	000116	010602 				MOV	SP,R2		;AND POINT R2 AT IT
    121	000120	012701 	000000G			MOV	#FC03MG,R1	;"ERROR RODE %D."
    122	000124					CALL	$EDMSG		;FORM THIS STRING INSTEAD
    123	000130	010001 				MOV	R0,R1		;
    124	000132	005726 				TST	(SP)+		;POP THE ERROR CODE
    125	000134	162701 	000050'			SUB	#MOSTR1,R1	;R1=SIZE OF STRING
    126	000140	010102 			10$:	MOV	R1,R2		;R2=SIZE
    127	000142	012703 	000050'			MOV	#MOSTR1,R3	;R3=ADDRESS OF STRING
    128	000146	010225 			20$:	MOV	R2,(R5)+	;SIZE OF STRING
    129	000150	001002 				BNE	30$		;
    130	000152	012703 	000000'			MOV	#NULLMG,R3	;USE NULL STRING IF SIZE=0
    131	000156	010325 			30$:	MOV	R3,(R5)+	;ADDRESS OF STRING
    132	000160	012600 				MOV	(SP)+,R0	;RESTORE FDB ADDRESS
    133	000162	001467 				BEQ	ERRCOD		;BRANCH IF NO FILENAME OUTPUT
    134	000164	062767 	000002 	000046'		ADD	#2,.MOFMT	;FORMAT NO. 2,3 IF USING F.DSPT
    135	000172	032700 	000001 			BIT	#1,R0		;
    136	000176	001433 				BEQ	60$		;BRANCH IF TAKING FILENAME FROM FNB
    137					;
    138					; OUTPUT FILENAME BLOCK FROM F.DSPT
    139					;
    140	000200	042700 	000001 			BIC	#1,R0		;RESET THE LOW ORDER BIT
    141	000204	016004 	000044 			MOV	F.DSPT(R0),R4	;GET THE STRING DESCRIPTOR
    142	000210	001403 				BEQ	35$		;BRANCH IF IT'S NULL
    143	000212	005714 				TST	(R4)		;NULL DEVICE STRING?
    144	000214	001006 				BNE	40$		;BRANCH IF NO
    145	000216	022424 				CMP	(R4)+,(R4)+
    146	000220	012725 	000002 		35$:	MOV	#SYDVSZ,(R5)+	;USE SYSTEM DEVICE
    147	000224	012725 	000001'			MOV	#SYDVMG,(R5)+
    148	000230	000402 				BR	50$
    149	000232	012425 			40$:	MOV	(R4)+,(R5)+	;MOVE USER SPECIFIED SIZE
    150	000234	012425 				MOV	(R4)+,(R5)+	;AND ADDRESS OF DEVICE STRING
    151	000236				50$:	CALL	GTDRNM		;NOW GET DIRECTORY STRING
    152	000242	005704 				TST	R4		;IS DESCRIPTOR POINTER NULL
    153	000244	001404 				BEQ	52$		;BRANCH IF YES
    154	000246	012425 				MOV	(R4)+,(R5)+	;IS FILE NAME STRING NULL?
    155	000250	001403 				BEQ	55$		;BRANCH IF YES
    156	000252	011425 				MOV	(R4),(R5)+	;NO, USE THE STRING ADDRESS
    157	000254	000432 				BR	ERRCOD		;
    158	000256	005025 			52$:	CLR	(R5)+
    159	000260	012725 	000000'		55$:	MOV	#NULLMG,(R5)+	;YES, POINT AT A NULL BYTE
    160	000264	000426 				BR	ERRCOD		;
    161					;
    162					; PRINT FILE NAME FROM FNB
    163					;
    164	000266	062767 	000002 	000046'	60$:	ADD	#2,.MOFMT	;FORMAT NO. 4,5 FOR FNB
    165	000274	010015 				MOV	R0,(R5)
    166	000276	062725 	000134 			ADD	#F.DVNM,(R5)+	;POINTER TO 2 CHAR DEVICE NAME
    167	000302	016025 	000136 			MOV	F.UNIT(R0),(R5)+ ;UNIT NUMBER
    168	000306	016004 	000044 			MOV	F.DSPT(R0),R4	;
    169	000312	001401 				BEQ	65$		;BRANCH IF DESCRIPTOR POINTER IS NULL
ERRPRT M0216, ERROR PRINT OUT R	MACRO M1113  27-FEB-85 12:30  PAGE 7-3
**** ERRPRT VERSION M0216 ****

    170	000314	022424 				CMP	(R4)+,(R4)+	;R4=DIRECTORY STRING DESCRIPTOR
    171	000316				65$:	CALL	GTDRNM		;GET DIRECTORY STRING
    172	000322	010004 				MOV	R0,R4		;
    173	000324	062704 	000110 			ADD	#F.FNB+N.FNAM,R4 ;R4=FNB ADDRESS
    174	000330	012703 	000005 			MOV	#S.FNTY+1,R3	;NO. OF WORDS IN FILE NAME TYPE, VER
    175	000334	012425 			70$:	MOV	(R4)+,(R5)+	;MOVE NAME, TYPE, VERSION
    176	000336					SOB	R3,70$
    177	000342				ERRCOD:
    178	000342	012601 				MOV	(SP)+,R1	;R1=FCS ERROR CODE
    179	000344	001416 				BEQ	10$		;BRANCH IF NOT PRINTING ERR CODE
    180	000346	012700 	000150'			MOV	#MOSTR2,R0
    181	000352	012720 	026440 			MOV	#" -,(R0)+	;PUT "--" IN STRING
    182	000356	012720 	020055 			MOV	#"- ,(R0)+
    183	000362					CALL	.FCSER		;GET FCS ERROR MESSAGE
    184	000366	162700 	000150'			SUB	#MOSTR2,R0	;R0=SIZE OF STRING
    185	000372	010025 				MOV	R0,(R5)+	;STORE SIZE
    186	000374	012725 	000150'			MOV	#MOSTR2,(R5)+	;AND ADDRESS OF FCS ERR MSG
    187	000400	000403 				BR	20$		;
    188	000402	005025 			10$:	CLR	(R5)+		;NULL ERR MESSAGE
    189	000404	012725 	000000'			MOV	#NULLMG,(R5)+
    190					;
    191					; NOW FORM AND OUTPUT THE FULL MESSAGE
    192					;
    193	000410	012700 	000000G		20$:	MOV	#.ERRBF,R0	;R0=BUFFER ADDRESS
    194	000414	012702 	000000'			MOV	#.MOPRM,R2	;R2=PARAMETER BLOCK
    195	000420	016701 	000046'			MOV	.MOFMT,R1	;R1=FORMAT STRING NUMBER
    196	000424	006301 				ASL	R1		;FORM INDEX INTO FORMAT TABLE
    197	000426	016101 	000000'			MOV	MOTBL(R1),R1	;R1=FORMAT STRING
    198	000432					CALL	$EDMSG		;FORM THE MESSAGE STRING
    199	000436					QIO$S	#IO.WVB,.ERLUN,.EREFN,,,,<#.ERRBF,R1>
    200	000474	103405 				BCS	30$
    201	000476					WTSE$S	.EREFN
    202	000510	012603 			30$:	MOV	(SP)+,R3
    203	000512	012602 				MOV	(SP)+,R2
    204	000514					RETURN
ERRPRT M0216, ERROR PRINT OUT R	MACRO M1113  27-FEB-85 12:30  PAGE 8
**** ERRPRT VERSION M0216 ****

    206
    207					;+
    208					; GET DIRECTORY STRING
    209					;
    210					; CALLING SEQUENCE:
    211					;
    212					;	CALL	GTDRNM
    213					;
    214					; INPUTS:
    215					;
    216					;	R4=STRING DESCRIPTOR OF USER SPECIFIED DIRECTORY STRING OR 0
    217					;	R5=PARAMETER BLOCK ADDRESS
    218					;
    219					; OUTPUTS:
    220					;
    221					;	R1,R2 ALTERED
    222					;	IF INPUT R4 WAS NON ZERO, R4=INPUT R4+4, OTHERWISE R4=0
    223					;	(R5)=SIZE OF DIRECTORY STRING
    224					;	2(R5)=ADDRESS OF DIRECTORY STRING
    225					;	R5=INPUT R5+4
    226					;
    227					; OPERATION:
    228					;
    229					; IF THE STRING DESCRIPTOR ADDRESSED BY R4 IS NOT NULL THEN THIS STRING
    230					; IS USED.
    231					; IF IT IS NULL, THEN THE DEFAULT DIRECTORY STRING IS USED.
    232					;-
    233	000516				.GDRNM::
    234	000516				GTDRNM:
    235	000516	005704 				TST	R4		;IS DIRECTORY STRING DESCRIPTOR NULL?
    236	000520	001406 				BEQ	15$		;BRANCH IF YES
    237	000522	005714 				TST	(R4)		;IS DIRECTORY STRING DESCRIPTOR NULL?
    238	000524	001403 				BEQ	10$		;BRANCH IF YES
    239	000526	012425 				MOV	(R4)+,(R5)+	;NO, USE IT
    240	000530	012425 				MOV	(R4)+,(R5)+
    241	000532					RETURN
    242	000534	022424 			10$:	CMP	(R4)+,(R4)+	;RETURN R4 POINTING TO NEXT STRING
    243	000536				15$:	CALL	.RDFDR		;GET DEFAULT DIRECTORY STRING
    244	000542	010125 				MOV	R1,(R5)+	;STORE SIZE
    245	000544	001002 				BNE	20$		;BRANCH IF NOT NULL
    246	000546	012702 	000000'			MOV	#NULLMG,R2	;POINT TO NULL MESSAGE
    247	000552	010225 			20$:	MOV	R2,(R5)+	;STORE ADDRESS
    248
    249	000554					RETURN
    250
    251	000000					.PSECT
    252	000000					MSGZ	SYNT,<COMMAND SYNTAX ERROR%N%VA>
    253
    254	000000					PURE.I
    255
    256					;+
    257					; PRINT OUT CSI$1 COMMAND SYNTAX ERROR
    258					;
    259					; CALLING SEQUENCE:
    260					;
    261					;	CALL	.SYNER
    262					;
ERRPRT M0216, ERROR PRINT OUT R	MACRO M1113  27-FEB-85 12:30  PAGE 8-1
**** ERRPRT VERSION M0216 ****

    263					; INPUTS:
    264					;
    265					;	R0=CSI CONTROL BLOCK ADDRESS
    266					;
    267					; OUTPUTS:
    268					;
    269					;	THIS ROUTINE DOES NOT RETURN, IT EXITS VIA ERROUX
    270					;-
    271	000556				.SYNER::
    272	000556	012702 	000000'			MOV	#.MOPRM,R2	;R2=EDMSG PARAMETER CONTROL BLOCK
    273	000562	016012 	000016 			MOV	C.FILD(R0),(R2)	;DESCRIPTOR OF CSI ERROR STRING
    274	000566	016062 	000020 	000002 		MOV	C.FILD+2(R0),2(R2)
    275	000574	012700 	000050'			MOV	#MOSTR1,R0
    276	000600	012701 	000132'			MOV	#SYNTMG,R1
    277	000604					CALL	$EDMSG		;FORM SYNTAX ERROR MESSAGE
    278	000610	010102 				MOV	R1,R2		;SIZE OF MESSAGE IN R2
    279	000612	012703 	000050'			MOV	#MOSTR1,R3	;ADDRESS IN R3
    280	000616					ERROUX			;PRINT ERROR AND EXIT
	000616	104403 				TRAP	X
	000620	000000 	000000 			.WORD	0,0
    281
    282					;
    283					;
    284		000001 				.END
ERRPRT M0216, ERROR PRINT OUT R	MACRO M1113  27-FEB-85 12:30  PAGE 8-2
SYMBOL TABLE

CS.DIF= 000002   	FD.CCL= 000002   	F.HIBK= 000004   	IO.DAC= 010000   	N.FTYP= 000014
CS.DVF= 000004   	FD.CR = 000002   	F.LUN = 000042   	IO.DEL= 012400   	N.FVER= 000016
CS.EQU= 000040   	FD.DIR= 000010   	F.MBCT= 000054   	IO.DET= 002000   	N.NEXT= 000022
CS.INP= 000001   	FD.FTN= 000001   	F.MBC1= 000055   	IO.ENA= 006000   	N.STAT= 000020
CS.MOR= 000020   	FD.INS= 000010   	F.MBFG= 000056   	IO.EXT= 011400   	N.UNIT= 000034
CS.NMF= 000001   	FD.PLC= 000004   	F.NRBD= 000024   	IO.FNA= 004400   	R$$DPB= 000001
CS.OUT= 000002   	FD.RAH= 000001   	F.NREC= 000030   	IO.KIL= 000012   	R$$DYM= 000001
CS.WLD= 000010   	FD.RAN= 000002   	F.OVBS= 000030   	IO.LOV= 001010   	R$$EIS= 000000
C.CMLD= 000002   	FD.REC= 000001   	F.RACC= 000016   	IO.LTK= 000050   	R$$MSG= 000000
C.DEVD= 000006   	FD.RWM= 000001   	F.RATT= 000001   	IO.RAT= 013000   	R$$11M= 000001
C.DIRD= 000012   	FD.SDI= 000020   	F.RCNM= 000034   	IO.RDN= 000022   	R.FIX = 000001
C.DSDS= 000006   	FD.SQD= 000040   	F.RCTL= 000017   	IO.RLB= 001000   	R.VAR = 000002
C.FILD= 000016   	FD.TTY= 000004   	F.RSIZ= 000002   	IO.RNA= 005400   	SYDVMG= 000001R     003
C.MKW1= 000024   	FD.WBH= 000002   	F.RTYP= 000000   	IO.RTK= 000060   	SYDVSZ= 000002
C.MKW2= 000026   	FO.APD= 000106   	F.STBK= 000036   	IO.RVB= 010400   	SYNTMG= 000132R     003
C.SIZE= 000054   	FO.MFY= 000002   	F.UNIT= 000136   	IO.UNL= 000042   	SYNTSZ= 000032
C.STAT= 000001   	FO.RD = 000001   	F.URBD= 000020   	IO.WAT= 013400   	S.FATT= 000016
C.SWAD= 000022   	FO.UPD= 000006   	F.VBN = 000064   	IO.WLB= 000400   	S.FDB = 000140
C.TYPR= 000000   	FO.WRT= 000016   	F.VBSZ= 000060   	IO.WVB= 011000   	S.FNAM= 000006
EP00MG= 000003R     003	F.ALOC= 000040   	GE.BIF= 177775   	IQ.Q  = 000002   	S.FNB = 000036
EP00SZ= 000026   	F.BBFS= 000062   	GE.CLO= 000004   	IQ.X  = 000001   	S.FNBW= 000017
EP01MG= 000013R     003	F.BDB = 000070   	GE.COM= 000001   	MOIDMG= ****** GX	S.FNTY= 000004
EP01SZ= 000016   	F.BGBC= 000057   	GE.EOF= 177766   	MOIDSZ= ****** GX	S.FTYP= 000002
EP02MG= 000031R     003	F.BKDN= 000026   	GE.IND= 000002   	MOSTR1  000050R     002	S.NFEN= 000020
EP02SZ= 000040   	F.BKDS= 000020   	GE.IOR= 177777   	MOSTR2  000150R     002	X     = 000003
EP03MG= 000041R     003	F.BKEF= 000050   	GE.LC = 000010   	MOTBL   000000R     004	$EDMSG= ****** GX
EP03SZ= 000030   	F.BKP1= 000051   	GE.MDE= 177774   	NB.DEV= 000200   	$$    = 000067
EP04MG= 000071R     003	F.BKST= 000024   	GE.OPR= 177776   	NB.DIR= 000100   	$$$ARG= 000002
EP04SZ= 000041   	F.BKVB= 000064   	GTDRNM  000516R     005	NB.NAM= 000004   	$$$T1 = 000010
EP05MG= 000101R     003	F.CNTG= 000034   	G.CMLD= 000146   	NB.SD1= 000400   	.EREFN  000016RG    004
EP05SZ= 000031   	F.DFNB= 000046   	G.DPRM= 000160   	NB.SD2= 001000   	.ERLUN  000014RG    004
ERRCOD  000342R     005	F.DSPT= 000044   	G.ERR = 000140   	NB.SNM= 000040   	.ERPRT  000002RG    005
ERRPRT  000000RG    005	F.DVNM= 000134   	G.ISIZ= 000020   	NB.STP= 000020   	.ERRBF= ****** GX
FA.APD= 000100   	F.EFBK= 000010   	G.MODE= 000141   	NB.SVR= 000010   	.FCSER= ****** GX
FA.CRE= 000010   	F.EFN = 000050   	G.PSDS= 000142   	NB.TYP= 000002   	.GDRNM  000516RG    005
FA.EXT= 000004   	F.EOBB= 000032   	IO.ACE= 007400   	NB.VER= 000001   	.GERRM= ****** GX
FA.NSP= 000100   	F.ERR = 000052   	IO.ACR= 006400   	NULLMG= 000000R     003	.MOFMT  000046RG    002
FA.RD = 000001   	F.FACC= 000043   	IO.ACW= 007000   	NULLSZ= 000001   	.MOPRM  000000RG    002
FA.SHR= 000040   	F.FFBY= 000014   	IO.APC= 014000   	N.DID = 000024   	.RDFDR= ****** GX
FA.TMP= 000020   	F.FNAM= 000110   	IO.APV= 014010   	N.DVNM= 000032   	.SYNER  000556RG    005
FA.WRT= 000002   	F.FNB = 000102   	IO.ATT= 001400   	N.FID = 000000   	...GBL= 000000
FC03MG= ****** GX	F.FTYP= 000116   	IO.CLN= 003400   	N.FNAM= 000006   	...TPC= 000140
FD.BLK= 000010   	F.FVER= 000120   	IO.CRE= 012000

. ABS.	000000	   000
      	000000	   001
IMPURE	000254	   002
MSGSTR	000164	   003
PURE$D	000020	   004
PURE$I	000624	   005
ERRORS DETECTED:  0

VIRTUAL MEMORY USED:  5717 WORDS  ( 23 PAGES)
DYNAMIC MEMORY:  6734 WORDS  ( 25 PAGES)
ELAPSED TIME:  00:00:22
[43,10]ERRPRT,[43,20]ERRPRT/-SP/CR=[43,30]PIPMAC,ERRPRT
ERRPRT     CREATED BY  MACRO  ON 27-FEB-85 AT 12:30	PAGE 1

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

C.FILD	= 000016	 8-273      8-274     
EP00MG	= 000003 R	#7-44       7-44       7-56      
EP00SZ	= 000026	#7-44       7-46      #7-46      
EP01MG	= 000013 R	#7-45       7-45       7-56      
EP01SZ	= 000016	#7-45       7-46      
EP02MG	= 000031 R	#7-47       7-47       7-57      
EP02SZ	= 000040	#7-47       7-49      #7-49      
EP03MG	= 000041 R	#7-48       7-48       7-57      
EP03SZ	= 000030	#7-48       7-49      
EP04MG	= 000071 R	#7-50       7-50       7-58      
EP04SZ	= 000041	#7-50       7-52      #7-52      
EP05MG	= 000101 R	#7-51       7-51       7-58      
EP05SZ	= 000031	#7-51       7-52      
ERRCOD	  000342 R	 7-133      7-157      7-160     #7-177     
ERRPRT	  000000 RG	#7-90      
FC03MG	= ******  GX	 7-121     
FD.TTY	= 000004	 7-96      
F.DSPT	= 000044	 7-141      7-168     
F.DVNM	= 000134	 7-166     
F.FNB 	= 000102	 7-173     
F.RCTL	= 000017	 7-96      
F.UNIT	= 000136	 7-167     
GTDRNM	  000516 R	 7-151      7-151      7-171      7-171     #8-234     
G.CMLD	= 000146	 7-101      7-102     
IO.WVB	= 011000	 7-199     
MOIDMG	= ******  GX	 7-100      7-104     
MOIDSZ	= ******  GX	 7-99       7-103     
MOSTR1	  000050 R	#7-37       7-111      7-125      7-127      8-275      8-279     
MOSTR2	  000150 R	#7-38       7-180      7-184      7-186     
MOTBL 	  000000 R	#7-56       7-197     
MSGBL.	= ******	 7-42       7-43       7-44       7-45       7-47       7-48       7-50       7-51       8-252     
NULLMG	= 000000 R	#7-42       7-42       7-130      7-159      7-189      8-246     
NULLSZ	= 000001	#7-42      
N.FNAM	= 000006	 7-173     
RONLY$	= ******	 7-42       7-42       7-43       7-43       7-44       7-44       7-45       7-45       7-47      
                         7-47       7-48       7-48       7-50       7-50       7-51       7-51       7-55       7-55      
                         7-89       7-89       8-252      8-252      8-254      8-254     
R$$DPB	= 000001	#1-27      
R$$DYM	= 000001	#1-29      
R$$EIS	= 000000	#1-28       1-38      
R$$MSG	= 000000	 7-42       7-42       7-43       7-43       7-44       7-44       7-45       7-45       7-47      
                         7-47       7-48       7-48       7-50       7-50       7-51       7-51       8-252      8-252     
R$$11M	= 000001	#1-25       1-26       7-1       
SYDVMG	= 000001 R	#7-43       7-43       7-147     
SYDVSZ	= 000002	#7-43       7-146     
SYNTMG	= 000132 R	#8-252      8-252      8-276     
SYNTSZ	= 000032	#8-252     
SYS40$	= ******	 1-67       7-33       7-33       7-42       7-42       7-43       7-43       7-44       7-44      
                         7-45       7-45       7-47       7-47       7-48       7-48       7-50       7-50       7-51      
                         7-51       7-55       7-55       7-89       7-89       8-252      8-252      8-254      8-254     
S.FNTY	= 000004	 7-174     
X     	= 000003	#8-280      8-280     
ERRPRT     CREATED BY  MACRO  ON 27-FEB-85 AT 12:30	PAGE 2

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

$EDMSG	= ******  GX	 7-122      7-122      7-198      7-198      8-277      8-277     
$$    	= 000067	#7-114      7-114     #7-122      7-122     #7-151      7-151     #7-171      7-171     #7-183     
                         7-183     #7-198      7-198     #8-243      8-243     #8-277      8-277     
$$$ARG	= 000002	#7-199      7-199      7-199      7-199      7-199      7-199      7-199      7-199      7-199     
                         7-199      7-199      7-199     
$$$T1 	= 000010	#7-199      7-199     
.EREFN	  000016 RG	#7-60       7-199      7-201     
.ERLUN	  000014 RG	#7-59       7-199     
.ERPRT	  000002 RG	#7-91      
.ERRBF	= ******  GX	 7-193      7-199     
.FCSER	= ******  GX	 7-183      7-183     
.GDRNM	  000516 RG	#8-233     
.GERRM	= ******  GX	 7-114      7-114     
.MOFMT	  000046 RG	#7-36      *7-93      *7-98      *7-134     *7-164      7-195     
.MOPRM	  000000 RG	#7-35       7-92       7-194      8-272     
.RDFDR	= ******  GX	 8-243      8-243     
.SYNER	  000556 RG	#8-271     
ERRPRT     CREATED BY  MACRO  ON 27-FEB-85 AT 12:30	PAGE 3

MACRO CROSS REFERENCE                                   CREF         

MACRO NAME	REFERENCES

ASH   		#1-64      
ASHC  		#1-64      
CALL  		#7-31      #7-114     #7-122     #7-151     #7-171     #7-183     #7-198     #8-243     #8-277     
CSI$  		#7-24      #7-29      
DIR$  		#7-199      7-199     #7-201      7-201     
DIV   		#1-64      
ERRINI		#4-307     
ERROUT		#3-215     
ERROUX		#3-222      8-280     
ERROU1		#3-225     #8-280     
ERRP  		#3-247     
ERRPX 		#3-253     
ERRP1 		#3-256     
ERR$  		#7-199     #7-201     
ERR1  		#3-273     #8-280     
FCSBT$		#7-24       7-26      
FDOFF$		#7-25       7-25      
FDOF$L		#7-24      #7-25      
FILIO$		#7-24       7-27      
FLDSOF		#5-382     
GCMLD$		#7-24      #7-28      
IDENT 		#5-339     #7-1       
IDENT1		#5-347      7-1       
IDTITL		#5-356     
ILLOP 		#1-52      #1-64       1-64      
IMPURE		#1-75      #7-33      
MARK  		#1-64      
MOV$  		#7-199     #7-199      7-199      7-199      7-199      7-199      7-199      7-199     #7-201      7-201     
MSG   		#2-124     #7-43      #7-44      #7-47      #7-50      
MSGZ  		#2-129     #7-42      #7-45      #7-48      #7-51      #8-252     
MSG1  		#2-133     #7-42      #7-43      #7-44      #7-45      #7-47      #7-48      #7-50      #7-51      #8-252     
MUL   		#1-64      
MVB$  		#7-199     #7-199     
NOEIS$		#1-39       1-64      
PURE. 		#1-84       7-42       7-43       7-44       7-45       7-47       7-48       7-50       7-51       7-55      
                 7-89       8-252      8-254     
PURE.D		#1-102      7-55      
PURE.I		#1-98       7-89       8-254     
QDPB$S		#7-199     #7-199     
QIO$S 		#7-31      #7-199     
RETURN		#7-31       7-204      8-241      8-249     
RTT   		#1-64      
RVP$  		#7-199      7-199     
SOB   		#1-64      #7-176     
SXT   		#1-64      
WTSE$S		#7-31       7-201     
XOR   		#1-64      
ERRTRP M0005, ERROR TRAP HANDLE	MACRO M1113  27-FEB-85 12:30
TABLE OF CONTENTS

     7-    1	**** ERRTRP VERSION M0005 ****
PIPMAC - MACROS FOR PIP, ETC.	MACRO M1113  27-FEB-85 12:30  PAGE 6


    397
ERRTRP M0005, ERROR TRAP HANDLE	MACRO M1113  27-FEB-85 12:30  PAGE 7


      1						.TITLE	ERRTRP M0005, ERROR TRAP HANDLER
						.SBTTL	**** ERRTRP VERSION M0005 ****
						.IDENT	/M0005/
      2
      3					;
      4					; COPYRIGHT   1975, 1985,  DIGITAL  EQUIPMENT  CORP.,  MAYNARD,   MASS.
      5					; COPYRIGHT   1974,  DIGITAL  EQUIPMENT  CORP.,  MAYNARD,   MASS.
      6					;
      7					;			ALL RIGHTS RESERVED
      8					;
      9					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
     10					; ON A  SINGLE COMPUTER SYSTEM AND CAN BE  COPIED (WITH INCLUSION
     11					; OF DEC'S COPYRIGHT  NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
     12					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
     13					;
     14					; THE  INFORMATION  IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
     15					; NOTICE  AND  SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
     16					; EQUIPMENT CORPORATION.
     17					;
     18					; DEC  ASSUMES NO  RESPONSIBILITY  FOR  THE  USE  OR  RELIABILITY
     19					; OF  ITS  SOFTWARE ON  EQUIPMENT WHICH  IS  NOT SUPPLIED BY DEC.
     20					;
     21					; PETER H. LIPMAN	2-MAY-74
     22
     23
     24						.MCALL	FDOF$L
     25	000000					FDOF$L			;DEFINE THE FDB OFFSETS LOCALLY
     26					;
     27						.MCALL	CALL,RETURN
     28
     29	000000					PURE.I
     30
     31					;+
     32					; THE FOLLOWING TRAP INSTRUCTION IS GENERATED BY THE ERROUT, ERROUX
     33					; ERRP, ERRPX MACROS AND INTERPRETED BY THE ROUTINE .ERTRP.
     34					;
     35					;	TRAP	X
     36					;
     37					; WHERE THE FOLLOWING LOW ORDER BITS ARE DEFINED
     38					;
     39					;	BIT 0 - SET IF JMP @.ABORT WHEN ERROR PRINTED OUT
     40					;	        IS COMPLETE
     41					;	      - RESET IF RETURN TO INSTRUCTION FOLLOWING THE TRAP INSTRUCTION
     42					;	BIT 1 - SET IF SIZE AND ADDRESS OF ERROR STRING FOLLOWS (2 WORDS)
     43					;	      - RESET IF ERROR NUMBER FOLLOWS (1 WORD)
     44					;
     45					;	BITS 2=0. 3=0 - DO DOT PRINT FILE NAME
     46					;	BITS 2=1, 3=0 - PRINT FILE NAME FROM FILE NAME BLOCK
     47					;	BITS 2=0, 3=1 - PRINT FILE FROM FILE DESCRIPTOR POINTER
     48					;	BITS 4=0, 5=0 - DON'T PRINT ERROR CODE
     49					;	BITS 4=1, 5=0 - PRINT ERROR CODE FROM F.ERR(R0)
     50					;	BITS 4=0, 5=1 - PRINT ERROR CODE IN R4
     51					;
     52					; IF THE SIZE AND ADDRESS OF AN ERROR STRING FOLLOWS THE TRAP
     53					; INSTRUCTION, AND THE ADDRESS IS ZERO, THEN R2 IS ASSUMED TO CONTAIN
     54					; THE SIZE AND R3 CONTAINS THE ADDRESS. LIKEWISE IF A POSITIVE ERROR
     55					; NUMBER FOLLOWS THE TRAP INSTRUCTION, 0 INDICATES THAT R2 ALREADY CONTAINS
ERRTRP M0005, ERROR TRAP HANDLE	MACRO M1113  27-FEB-85 12:30  PAGE 7-1
**** ERRTRP VERSION M0005 ****

     56					; THE ERROR NUMBER.
     57					;-
     58	000000				.ERTRP::
     59	000000	006216 				ASR	(SP)		;SHIFT TRAP PARAMETER BACK
     60	000002	032716 	000040 			BIT	#40,(SP)	;R4 ALREADY LOADED?
     61	000006	001013 				BNE	10$		;BRANCH IF YES
     62	000010	005004 				CLR	R4		;ASSUME NO ERROR CODE
     63	000012	032716 	000020 			BIT	#20,(SP)	;IS ERROR CODE DESIRED?
     64	000016	001407 				BEQ	10$		;BRANCH IF NO
     65	000020	116004 	000052 			MOVB	F.ERR(R0),R4	;YES USE F.ERR
     66	000024	105760 	000053 			TSTB	F.ERR+1(R0)	;IS IT A QI/O ERROR?
     67	000030	100002 				BPL	10$		;BRANCH IF NOT
     68	000032	162704 	000200 			SUB	#128.,R4	;QI/O ERRORS ALL SET 128.
     69	000036	032716 	000004 		10$:	BIT	#4,(SP)		;OUTPUT FILENAME FROM FNB?
     70	000042	001006 				BNE	20$		;BRANCH IF YES
     71	000044	052700 	000001 			BIS	#1,R0		;ASSUME USING FDSPT
     72	000050	032716 	000010 			BIT	#10,(SP)
     73	000054	001001 				BNE	20$		;BRANCH IF USING F.DSPT
     74	000056	005000 				CLR	R0		;NO FILE NAME OUTPUT
     75	000060	016605 	000002 		20$:	MOV	2(SP),R5	;
     76	000064	032716 	000002 			BIT	#2,(SP)
     77	000070	001414 				BEQ	30$		;BRANCH IF RECORD NUMBER
     78	000072	005765 	000002 			TST	2(R5)		;ZERO ADDRESS
     79	000076	001004 				BNE	22$
     80	000100	005715 				TST	(R5)		;AND ZERO SIZE
     81	000102	001405 				BEQ	25$		;INDICATES THAT R2, R3 ALL SET UP
     82	000104	012502 				MOV	(R5)+,R2	;ZERO ADDRESS AND NON ZERO LENGTH
     83	000106	000410 				BR	35$		;THEN LENGTH IS A RECORD NUMBER
     84	000110	011502 			22$:	MOV	(R5),R2		;R2=SIZE OF STRING
     85	000112	016503 	000002 			MOV	2(R5),R3	;R3=ADDRESS OF STRING
     86	000116	022525 			25$:	CMP	(R5)+,(R5)+	;POINT BEYOND PARAMETERS
     87	000120	000407 				BR	40$
     88	000122	005715 			30$:	TST	(R5)		;ZERO MESSAGE NO. MEANS R2 IS SET
     89	000124	001401 				BEQ	35$
     90	000126	011502 				MOV	(R5),R2		;R2=MESSAGE NUMBER
     91	000130	005725 			35$:	TST	(R5)+		;POINT BEYOND PARAMETER
     92	000132	005402 				NEG	R2		;MAKE RECORN NUMBER NEGATIVE
     93	000134	012703 	000000G			MOV	#.MSGFN,R3	;R3=FNB FOR MESSAGE FILE
     94	000140	010566 	000002 		40$:	MOV	R5,2(SP)	;RESTORE PC BEYOND PARAMETERS
     95	000144	012701 	000000G			MOV	#GCMLCB,R1
     96	000150					CALL	.ERPRT
     97	000154	032726 	000001 			BIT	#1,(SP)+	;EXIT OR RETURN?
     98	000160	001001 				BNE	50$		;
     99	000162	000002 				RTI			;RETURN IN LINE
    100	000164	000177 	000000G		50$:	JMP	@.ABORT		;EXIT
    101
    102					;
    103					;
    104		000001 				.END
ERRTRP M0005, ERROR TRAP HANDLE	MACRO M1113  27-FEB-85 12:30  PAGE 7-2
SYMBOL TABLE

F.ALOC= 000040   	F.EFN = 000050   	F.NRBD= 000024   	GCMLCB= ****** GX	S.FATT= 000016
F.BBFS= 000062   	F.EOBB= 000032   	F.NREC= 000030   	N.DID = 000024   	S.FDB = 000140
F.BDB = 000070   	F.ERR = 000052   	F.OVBS= 000030   	N.DVNM= 000032   	S.FNAM= 000006
F.BGBC= 000057   	F.FACC= 000043   	F.RACC= 000016   	N.FID = 000000   	S.FNB = 000036
F.BKDN= 000026   	F.FFBY= 000014   	F.RATT= 000001   	N.FNAM= 000006   	S.FNBW= 000017
F.BKDS= 000020   	F.FNAM= 000110   	F.RCNM= 000034   	N.FTYP= 000014   	S.FNTY= 000004
F.BKEF= 000050   	F.FNB = 000102   	F.RCTL= 000017   	N.FVER= 000016   	S.FTYP= 000002
F.BKP1= 000051   	F.FTYP= 000116   	F.RSIZ= 000002   	N.NEXT= 000022   	S.NFEN= 000020
F.BKST= 000024   	F.FVER= 000120   	F.RTYP= 000000   	N.STAT= 000020   	$$    = 000067
F.BKVB= 000064   	F.HIBK= 000004   	F.STBK= 000036   	N.UNIT= 000034   	.ABORT= ****** GX
F.CNTG= 000034   	F.LUN = 000042   	F.UNIT= 000136   	R$$DPB= 000001   	.ERPRT= ****** GX
F.DFNB= 000046   	F.MBCT= 000054   	F.URBD= 000020   	R$$DYM= 000001   	.ERTRP  000000RG    002
F.DSPT= 000044   	F.MBC1= 000055   	F.VBN = 000064   	R$$EIS= 000000   	.MSGFN= ****** GX
F.DVNM= 000134   	F.MBFG= 000056   	F.VBSZ= 000060   	R$$11M= 000001   	...TPC= 000140
F.EFBK= 000010

. ABS.	000000	   000
      	000000	   001
PURE$I	000170	   002
ERRORS DETECTED:  0

VIRTUAL MEMORY USED:  3487 WORDS  ( 14 PAGES)
DYNAMIC MEMORY:  4622 WORDS  ( 17 PAGES)
ELAPSED TIME:  00:00:11
[43,10]ERRTRP,[43,20]ERRTRP/-SP/CR=[43,30]PIPMAC,ERRTRP
ERRTRP     CREATED BY  MACRO  ON 27-FEB-85 AT 12:30	PAGE 1

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

F.ERR 	= 000052	 7-65       7-66      
GCMLCB	= ******  GX	 7-95      
RONLY$	= ******	 7-29       7-29      
R$$DPB	= 000001	#1-27      
R$$DYM	= 000001	#1-29      
R$$EIS	= 000000	#1-28       1-38      
R$$11M	= 000001	#1-25       1-26       7-1       
SYS40$	= ******	 1-67       7-29       7-29      
$$    	= 000067	#7-96       7-96      
.ABORT	= ******  GX	 7-100     
.ERPRT	= ******  GX	 7-96       7-96      
.ERTRP	  000000 RG	#7-58      
.MSGFN	= ******  GX	 7-93      
ERRTRP     CREATED BY  MACRO  ON 27-FEB-85 AT 12:30	PAGE 2

MACRO CROSS REFERENCE                                   CREF         

MACRO NAME	REFERENCES

ASH   		#1-64      
ASHC  		#1-64      
CALL  		#7-27       7-96      
DIV   		#1-64      
ERRINI		#4-307     
ERROUT		#3-215     
ERROUX		#3-222     
ERROU1		#3-225     
ERRP  		#3-247     
ERRPX 		#3-253     
ERRP1 		#3-256     
ERR1  		#3-273     
FDOFF$		#7-25      #7-25      
FDOF$L		#7-24      #7-25      
FLDSOF		#5-382     
IDENT 		#5-339     #7-1       
IDENT1		#5-347      7-1       
IDTITL		#5-356     
ILLOP 		#1-52      #1-64       1-64      
IMPURE		#1-75      
MARK  		#1-64      
MSG   		#2-124     
MSGZ  		#2-129     
MSG1  		#2-133     
MUL   		#1-64      
NOEIS$		#1-39       1-64      
PURE. 		#1-84       7-29      
PURE.D		#1-102     
PURE.I		#1-98       7-29      
RETURN		#7-27      
RTT   		#1-64      
SOB   		#1-64      
SXT   		#1-64      
XOR   		#1-64      
FCSERR M0003, CONVERT FCS ERROR	MACRO M1113  27-FEB-85 12:31
TABLE OF CONTENTS

     7-    1	**** FCSERR VERSION M0003 ****
PIPMAC - MACROS FOR PIP, ETC.	MACRO M1113  27-FEB-85 12:31  PAGE 6


    397
FCSERR M0003, CONVERT FCS ERROR	MACRO M1113  27-FEB-85 12:31  PAGE 7


      1						.TITLE	FCSERR M0003, CONVERT FCS ERROR CODE TO STRING
						.SBTTL	**** FCSERR VERSION M0003 ****
						.IDENT	/M0003/
      2
      3					;
      4					; COPYRIGHT   1975, 1985, DIGITAL  EQUIPMENT  CORP.,  MAYNARD,   MASS.
      5					; COPYRIGHT   1974,  DIGITAL  EQUIPMENT  CORP.,  MAYNARD,   MASS.
      6					;
      7					;			ALL RIGHTS RESERVED
      8					;
      9					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
     10					; ON A  SINGLE COMPUTER SYSTEM AND CAN BE  COPIED (WITH INCLUSION
     11					; OF DEC'S COPYRIGHT  NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
     12					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
     13					;
     14					; THE  INFORMATION  IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
     15					; NOTICE  AND  SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
     16					; EQUIPMENT CORPORATION.
     17					;
     18					; DEC  ASSUMES NO  RESPONSIBILITY  FOR  THE  USE  OR  RELIABILITY
     19					; OF  ITS  SOFTWARE ON  EQUIPMENT WHICH  IS  NOT SUPPLIED BY DEC.
     20					;
     21					; PETER H. LIPMAN
     22					;
     23						.MCALL	NMBLK$,CALL,RETURN
     24
     25	000000					.PSECT
     26	000000					MSGZ	FC01,<HANDLER ERROR CODE %D.>
     27	000000					MSG	FC02,<QI/O >
     28	000000					MSGZ	FC03,<ERROR CODE %D.>
     29		000024 				FC02SZ=FC02SZ+FC03SZ
     30						.GLOBL	FC03MG
     31
     32						.IF	EQ,R$$11M
     33						MSG	FC04,<SY:[1,2]QIOSYM.MSG>
     34
     35						PURE.D
     36					QIOMSG:	.WORD	FC04SZ,FC04MG
     37
     38					.IFF
     39	000000					PURE.D
     40	000000				QIOMSG:	NMBLK$	QIOSYM,MSG,,SY,0
     41						.ENDC
     42					;+
     43					;
     44					; CONVERT FCS ERROR CODE TO STRING
     45					;
     46					; CALLING SEQUENCE:
     47					;
     48					;	CALL	.FCSER
     49					;
     50					; INPUTS:
     51					;
     52					;	R0=STRING ADDRESS TO STORE MESSAGE
     53					;	R1=FCS ERROR CODE (NEGATIVE VALUE)
     54					;		NOTE: NORMALLY R1 IS THE BYTE FROM F.ERR IN THE FDB, BUT IF
     55					;		F.ERR+1 IS NEGATIVE, SUBTRACT 128. FROM R1 BEFORE CALING .FCSER.
FCSERR M0003, CONVERT FCS ERROR	MACRO M1113  27-FEB-85 12:31  PAGE 7-1
**** FCSERR VERSION M0003 ****

     56					;
     57					; OUTPUTS:
     58					;
     59					;	R0=UPDATED STRING POINTER
     60					;	R1=SIZE OF STRING
     61					;	R2-R5 PRESERVED
     62					;
     63					; OPERATION:
     64					;
     65					;	THIS ROUTINE EXPECTS TO SEE THE MESSAGE FILE (64. BYTE FIXED LENGTH
     66					; RECORDS) QIOSYM.MSG UNDER [1,2] ON SY0:
     67					;-
     68	000036					PURE.I
     69	000000				.FCSER::
     70	000000				FCSERR::
     71	000000	010246 				MOV	R2,-(SP)
     72	000002	010102 				MOV	R1,R2
     73	000004	005402 				NEG	R2		;MAKE ERROR CODE POSITIVE RECORD NUMBER
     74	000006	012701 	000000'			MOV	#QIOMSG,R1	;R1=FNB FOR QIOSYM.MSG FILE
     75	000012					CALL	.GERRM		;GET THE RECORD FROM THE FILE
     76	000016	103022 				BCC	20$
     77					;
     78					; FAILED TO GET ERROR MESSAGE RECORD, PUT OUT ERROR CODE INSTEAD
     79					;
     80	000020	010046 				MOV	R0,-(SP)
     81	000022	012701 	000000'			MOV	#FC01MG,R1	;HANDLER ERROR CODE
     82	000026	020227 	000200 			CMP	R2,#128.
     83	000032	003404 				BLE	10$		;BRANCH IF HANDLER ERROR CODE
     84	000034	162702 	000200 			SUB	#128.,R2	;NORMALIZE THE QI/O ERROR CODE
     85	000040	012701 	000027'			MOV	#FC02MG,R1		;QI/O ERROR CODE
     86	000044	005402 			10$:	NEG	R2		;PRINT A NEGATIVE ERROR NUMBER
     87	000046	010246 				MOV	R2,-(SP)
     88	000050	010602 				MOV	SP,R2
     89	000052					CALL	$EDMSG		;FORM THE ERROR CODE STRING
     90	000056	005726 				TST	(SP)+
     91	000060	010001 				MOV	R0,R1
     92	000062	162601 				SUB	(SP)+,R1	;R1=SIZE OF STRING
     93	000064	012602 			20$:	MOV	(SP)+,R2
     94	000066					RETURN
     95
     96					;
     97					;
     98		000001 				.END
FCSERR M0003, CONVERT FCS ERROR	MACRO M1113  27-FEB-85 12:31  PAGE 7-2
SYMBOL TABLE

FCSERR  000000RG    004	N.DVNM= 000032   	N.UNIT= 000034   	S.FNAM= 000006   	$$    = 000067
FC01MG= 000000R     002	N.FID = 000000   	QIOMSG  000000R     003	S.FNB = 000036   	.FCSER  000000RG    004
FC01SZ= 000027   	N.FNAM= 000006   	R$$DPB= 000001   	S.FNBW= 000017   	.GERRM= ****** GX
FC02MG= 000027R     002	N.FTYP= 000014   	R$$DYM= 000001   	S.FNTY= 000004   	...PC1= 000000
FC02SZ= 000024   	N.FVER= 000016   	R$$EIS= 000000   	S.FTYP= 000002   	...PC2= 000034R     003
FC03MG= 000034RG    002	N.NEXT= 000022   	R$$MSG= 000000   	S.NFEN= 000020   	...PC3= 000000
FC03SZ= 000017   	N.STAT= 000020   	R$$11M= 000001   	$EDMSG= ****** GX	...TPC= 000036
N.DID = 000024

. ABS.	000000	   000
      	000000	   001
MSGSTR	000053	   002
PURE$D	000036	   003
PURE$I	000070	   004
ERRORS DETECTED:  0

VIRTUAL MEMORY USED:  3338 WORDS  ( 14 PAGES)
DYNAMIC MEMORY:  4622 WORDS  ( 17 PAGES)
ELAPSED TIME:  00:00:10
[43,10]FCSERR,[43,20]FCSERR/-SP/CR=[43,30]PIPMAC,FCSERR
FCSERR     CREATED BY  MACRO  ON 27-FEB-85 AT 12:31	PAGE 1

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

FCSERR	  000000 RG	#7-70      
FC01MG	= 000000 R	#7-26       7-26       7-81      
FC01SZ	= 000027	#7-26      
FC02MG	= 000027 R	#7-27       7-27       7-85      
FC02SZ	= 000024	#7-27       7-29      #7-29      
FC03MG	= 000034 RG	#7-28       7-28       7-30      
FC03SZ	= 000017	#7-28       7-29      
MSGBL.	= ******	 7-26       7-27       7-28      
N.DVNM	= 000032	 7-40      
N.FNAM	= 000006	 7-40      
N.FTYP	= 000014	 7-40      
N.UNIT	= 000034	 7-40      
QIOMSG	  000000 R	#7-40       7-74      
RONLY$	= ******	 7-26       7-26       7-27       7-27       7-28       7-28       7-39       7-39       7-68      
                         7-68      
R$$DPB	= 000001	#1-27      
R$$DYM	= 000001	#1-29      
R$$EIS	= 000000	#1-28       1-38      
R$$MSG	= 000000	 7-26       7-26       7-27       7-27       7-28       7-28      
R$$11M	= 000001	#1-25       1-26       7-1        7-32      
SYS40$	= ******	 1-67       7-26       7-26       7-27       7-27       7-28       7-28       7-39       7-39      
                         7-68       7-68      
S.FNAM	= 000006	 7-40       7-40      
S.FNB 	= 000036	 7-40      
S.FTYP	= 000002	 7-40       7-40      
$EDMSG	= ******  GX	 7-89       7-89      
$$    	= 000067	#7-75       7-75      #7-89       7-89      
.FCSER	  000000 RG	#7-69      
.GERRM	= ******  GX	 7-75       7-75      
...PC1	= 000000 R	 7-40       7-40      #7-40       7-40       7-40       7-40       7-40       7-40      #7-40      
...PC2	= 000034 R	#7-40       7-40       7-40      #7-40       7-40       7-40      #7-40       7-40      
...PC3	= 000000	#7-40       7-40      
FCSERR     CREATED BY  MACRO  ON 27-FEB-85 AT 12:31	PAGE 2

MACRO CROSS REFERENCE                                   CREF         

MACRO NAME	REFERENCES

ASH   		#1-64      
ASHC  		#1-64      
CALL  		#7-23      #7-75      #7-89      
CWORD$		#7-40       7-40       7-40      
DIV   		#1-64      
ERRINI		#4-307     
ERROUT		#3-215     
ERROUX		#3-222     
ERROU1		#3-225     
ERRP  		#3-247     
ERRPX 		#3-253     
ERRP1 		#3-256     
ERR1  		#3-273     
FLDSOF		#5-382     
IDENT 		#5-339     #7-1       
IDENT1		#5-347      7-1       
IDTITL		#5-356     
ILLOP 		#1-52      #1-64       1-64      
IMPURE		#1-75      
MARK  		#1-64      
MSG   		#2-124     #7-27      
MSGZ  		#2-129     #7-26      #7-28      
MSG1  		#2-133     #7-26      #7-27      #7-28      
MUL   		#1-64      
NBOFF$		#7-40       7-40      
NMBLK$		#7-23      #7-40      
NOEIS$		#1-39       1-64      
PURE. 		#1-84       7-26       7-27       7-28       7-39       7-68      
PURE.D		#1-102      7-39      
PURE.I		#1-98       7-68      
RAD50$		#7-40      #7-40      #7-40      
RETURN		#7-23      #7-94      
RTT   		#1-64      
SOB   		#1-64      
SXT   		#1-64      
XOR   		#1-64      
GERRM M0007, GET ERROR MESSAGE 	MACRO M1113  27-FEB-85 12:31
TABLE OF CONTENTS

     7-    1	**** GERRM VERSION M0007 ****
PIPMAC - MACROS FOR PIP, ETC.	MACRO M1113  27-FEB-85 12:31  PAGE 6


    397
GERRM M0007, GET ERROR MESSAGE 	MACRO M1113  27-FEB-85 12:31  PAGE 7


      1						.TITLE	GERRM M0007, GET ERROR MESSAGE STRING
						.SBTTL	**** GERRM VERSION M0007 ****
						.IDENT	/M0007/
      2
      3					;
      4					; COPYRIGHT   1975, 1985, DIGITAL  EQUIPMENT  CORP.,  MAYNARD,   MASS.
      5					; COPYRIGHT   1974,  DIGITAL  EQUIPMENT  CORP.,  MAYNARD,   MASS.
      6					;
      7					;			ALL RIGHTS RESERVED
      8					;
      9					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
     10					; ON A  SINGLE COMPUTER SYSTEM AND CAN BE  COPIED (WITH INCLUSION
     11					; OF DEC'S COPYRIGHT  NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
     12					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
     13					;
     14					; THE  INFORMATION  IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
     15					; NOTICE  AND  SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
     16					; EQUIPMENT CORPORATION.
     17					;
     18					; DEC  ASSUMES NO  RESPONSIBILITY  FOR  THE  USE  OR  RELIABILITY
     19					; OF  ITS  SOFTWARE ON  EQUIPMENT WHICH  IS  NOT SUPPLIED BY DEC.
     20					;
     21					; PETER H. LIPMAN	31-APR-74
     22
     23						.IF	GT,R$$11M
     24
     25
     26						.MCALL	FILIO$
     27	000000					FILIO$			;DEFINE THE I/O FUNCTION CODES LOCALLY
     28					;
     29						.MCALL	NMBLK$,QIO$,WTSE$S,DIR$,CALL,RETURN
     30
     31	000000					PURE.D
     32
     33	000000				DIRNMB:	NMBLK$	001002,DIR,,SY,0
     34
     35		000024'				.=DIRNMB+N.DID
     36	000024	177777 	177777 			.WORD	-1,-1
     37		000036'				.=DIRNMB+S.FNB
     38
     39	000036					IMPURE
     40
     41	000000				EOIOST:	.BLKW	2
     42	000004				QIODPB:	QIO$	,,32.,,EOIOST,,<,,,,,>
     43
     44		000010'				.EOLUN==QIODPB+Q.IOLU
     45		000012'				.EOEFN==QIODPB+Q.IOEF
     46
     47	000034				.ERRBF::.BLKW	1000
     48					;+
     49					;
     50					; GET ERROR MESSAGE FROM FILE
     51					;
     52					; CALLING SEQUENCE:
     53					;
     54					;	CALL	.GERRM
     55					;
GERRM M0007, GET ERROR MESSAGE 	MACRO M1113  27-FEB-85 12:31  PAGE 7-1
**** GERRM VERSION M0007 ****

     56					; INPUTS:
     57					;
     58					;	R0=STRING ADDRESS TO RETURN STRING
     59					;	R1=MESSAGE FILE POINTER (FNB FOR 11M, STRING DESCRIPTOR FOR 11D)
     60					;	R2=RECORD NUMBER (64. BYTE FIXED LENGTH RECORDS)
     61					;
     62					; OUTPUTS:
     63					;
     64					;	C=0 IF SUCCESSFUL, C=1 IF FAILED
     65					;	R0=UPDATED STRING ADDRESS
     66					;	R1=NO. OF CHARACTER ADDED
     67					;	R2-R5 PRESERVED
     68					;
     69					;-
     70
     71	002034					PURE.I
     72	000000	004567 	000000G		.GERRM::JSR	R5,$SAVRG
     73	000004	005761 	000024 			TST	N.DID(R1)	;IS DIRECTORY ID SET?
     74	000010	001015 				BNE	20$		;BRANCH IF YES
     75	000012	012704 	000000'			MOV	#DIRNMB,R4
     76	000016	005714 				TST	(R4)
     77	000020	001003 				BNE	10$
     78	000022					CALL	FIND		;FIND THE DIRECTORY ID
     79	000026	103516 				BCS	90$		;BRANCH IF NO MESSAGE FILE
     80	000030	012461 	000024 		10$:	MOV	(R4)+,N.DID(R1) ; SET DIECTORY ID
     81	000034	012461 	000026 			MOV	(R4)+,N.DID+2(R1) ;
     82	000040	012461 	000030 			MOV	(R4)+,N.DID+4(R1)
     83	000044	005711 			20$:	TST	(R1)		;IS FILE ID ALREADY PRESENT
     84	000046	001004 				BNE	30$		;BRANCH IF YES
     85	000050	010104 				MOV	R1,R4		;
     86	000052					CALL	FIND		;FIND THE MESSAGE
     87	000056	103502 				BCS	90$		;BRANCH IF NO MESSAGE FILE
     88	000060				30$:				;
     89	000060	012767 	006400 	000006'		MOV	#IO.ACR,QIODPB+Q.IOFN
     90	000066					CALL	CLRDPB		;SET R5 TO BE WORD PARAM BLOCK
     91	000072	010115 				MOV	R1,(R5)		;FNB
     92
     93						.IF	GT,R$$DPB
     94
     95	000074	012765 	100000 	000010 		MOV	#100000,8.(R5)	;ENABLE ACCESS BIT
     96						.ENDC
     97
     98	000102					CALL	QIOWAT		;ISSUE ACCESS I/O AND WAIT
     99	000106	103466 				BCS	90$		;BRANCH IF FAILED TO ACCESS
    100	000110	010204 				MOV	R2,R4
    101	000112	005304 				DEC	R4
    102	000114	000241 				CLC			;SHIFT R4 3 BITS RIGHT
    103	000116	006004 				ROR	R4
    104	000120	006204 				ASR	R4
    105	000122	006204 				ASR	R4
    106	000124	005204 				INC	R4		;SINCE VBN'S START AT 1
    107	000126	012767 	010400 	000006'		MOV	#IO.RVB,QIODPB+Q.IOFN
    108	000134					CALL	CLRDPB
    109	000140	012725 	000034'			MOV	#.ERRBF,(R5)+	;ADDRESS TO READ INTO
    110	000144	012725 	001000 			MOV	#512.,(R5)+	;SIZE OF TRANSFER
    111	000150	022525 				CMP	(R5)+,(R5)+
    112	000152	010415 				MOV	R4,(R5)		;VBN TO READ
GERRM M0007, GET ERROR MESSAGE 	MACRO M1113  27-FEB-85 12:31  PAGE 7-2
**** GERRM VERSION M0007 ****

    113	000154					CALL	QIOWAT		;ISSUE READ QI/O AND WAIT
    114	000160	006004 				ROR	R4		;SAVE CARRY
    115	000162	012767 	010000 	000006'		MOV	#IO.DAC,QIODPB+Q.IOFN
    116	000170					CALL	CLRDPB
    117	000174	010115 				MOV	R1,(R5)		;FILE TO DEACCESS
    118	000176					CALL	QIOWAT		;ISSUE THE DEACCESS QI/O
    119	000202	103430 				BCS	90$
    120	000204	006104 				ROL	R4		;RESTORE C BIT FROM READ
    121	000206	103426 				BCS	90$		;BRANCH IF READ FAILED
    122	000210	010205 				MOV	R2,R5
    123	000212	005305 				DEC	R5
    124	000214	042705 	177770 			BIC	#177770,R5	;R5=RECORD NO. WITHIN BLOCK
    125	000220	000305 				SWAB	R5		;ASH #6,R5, SHIFT LEFT 6
    126	000222	006205 				ASR	R5
    127	000224	006205 				ASR	R5
    128	000226	062705 	000034'			ADD	#.ERRBF,R5	;FORM R5=ADDRESS OF RECORD
    129	000232	010003 				MOV	R0,R3
    130	000234	012704 	000100 			MOV	#64.,R4
    131	000240	112520 			50$:	MOVB	(R5)+,(R0)+	;MOVE UP TO 64. BYTES ASCIZ
    132	000242	001403 				BEQ	55$
    133	000244					SOB	R4,50$
    134	000250	000401 				BR	60$
    135	000252	005300 			55$:	DEC	R0		;DON'T COUNT THE NULL
    136	000254	010001 			60$:	MOV	R0,R1		;
    137	000256	160301 				SUB	R3,R1		;FORM BYTE COUNT, C=0
    138	000260	001402 				BEQ	95$		;IF NULL RECORD, RETURN ERR
    139	000262					RETURN
    140	000264	005001 			90$:	CLR	R1
    141	000266	000261 			95$:	SEC
    142	000270					RETURN
    143					;+
    144					; ISSUE A FIND QI/O
    145					;
    146					; CALLING SEQUENCE:
    147					;
    148					;	CALL	FIND
    149					;
    150					; INPUTS:
    151					;
    152					;	R4=FNB
    153					;
    154					; OUTPUTS:
    155					;
    156					;	C=0 IF SUCCESSFUL, C=1 IF ERROR
    157					;	R5 ALTERED, R0-R4 PRESERVED
    158					;
    159					;-
    160	000272				FIND:
    161	000272	012767 	004400 	000006'		MOV	#IO.FNA,QIODPB+Q.IOFN
    162	000300					CALL	CLRDPB
    163						.IF	GT,R$$DPB
    164
    165	000304	010465 	000012 			MOV	R4,10.(R5)	;STORE FNB
    166
    167						.IFF
    168
    169						MOV	R4,(R5)
GERRM M0007, GET ERROR MESSAGE 	MACRO M1113  27-FEB-85 12:31  PAGE 7-3
**** GERRM VERSION M0007 ****

    170
    171						.ENDC
    172	000310					CALL	QIOWAT		;ISSUE THE FIND QI/O AND WAIT
    173	000314					RETURN
    174					;+
    175					; CLEAR THE 6 WORD PARAMETER AREA OF THE QIODPB
    176					;
    177					; CALLING SEQUENCE:
    178					;
    179					;	CALL	CLRDPB
    180					;
    181					; INPUTS:
    182					;
    183					;	NONE
    184					;
    185					; OUTPUTS:
    186					;
    187					;	R0-R4 PRESERVED
    188					;	R5 POINTS 1ST WORD OF 6 WORD PARAMETER BLOCK
    189					;
    190					;-
    191	000316				CLRDPB:
    192	000316	012705 	000034'			MOV	#QIODPB+24.,R5	;POINT TO LAST +2 WORD
    193	000322	012746 	000006 			MOV	#6,-(SP)	;CLEAR 6 WORDS
    194	000326	005045 			10$:	CLR	-(R5)		;
    195	000330	005316 				DEC	(SP)
    196	000332	003375 				BGT	10$
    197	000334	005726 				TST	(SP)+
    198	000336					RETURN
    199					;+
    200					;
    201					; ISSUE THE QIO AND WAIT - QIODPB ALL SET UP.
    202					;
    203					; CALLING SEQUENCE:
    204					;
    205					;	CALL	QIOWAT
    206					;
    207					; INPUTS:
    208					;
    209					;	NONE
    210					;
    211					; OUTPUTS:
    212					;
    213					;	C=0 IF SUCCESSFUL, C=1 IF ERROR
    214					;
    215					;-
    216	000340				QIOWAT:
    217	000340					DIR$	#QIODPB
    218	000346	103411 				BCS	10$
    219	000350					WTSE$S	.EOEFN
    220	000362	105767 	000000'			TSTB	EOIOST		;NEGATIVE STATUS IS AN ERROR
    221	000366	003001 				BGT	10$		;BRANCH IF OK, C=0
    222	000370	000261 				SEC
    223	000372				10$:	RETURN
GERRM M0007, GET ERROR MESSAGE 	MACRO M1113  27-FEB-85 12:31  PAGE 8
**** GERRM VERSION M0007 ****

    225						.IFF			;IF THIS IS FOR RSX11D
    226
    227						.MCALL	RETURN,MOUT$S
    228
    229						IMPURE
    230					.ERRBF::.BLKB	3*80.		;ENOUGH SPACE FOR 3 LINES
    231						ERRBFS=.-.ERRBF
    232					EOIOST:	.BLKW	2		;I/O STATUS BLOCK FOR MO CALL
    233					.EOLUN::.BLKW	1		;LUN FOR MO, PATCH AND PREASSIGN TO MO
    234
    235						PURE.I
    236					.GERRM::CLR	-(SP)		;SET UP A ZERO COUNT TO RETURN IF ERROR
    237						MOUT$S	R1,,R2,CONT,USBUF,#.ERRBF,#ERRBFS,#EOIOST,.EOLUN
    238						BCS	20$
    239						SEC
    240						MOVB	EOIOST,R1	;COMPLETED SUCCESSFULLY?
    241						BMI	20$		;BRANCH IF NO
    242						MOV	.ERRBF+2,R1	;LENGTH OF RECORD RETURNED
    243						BEQ	20$		;BRANCH IF EMPTY
    244						MOV	R1,(SP)		;PUT REAL COUNT ON STACK
    245						MOV	R1,-(SP)	;PUSH ANOTHER COPY FOR MOVE LOOP
    246						MOV	#.ERRBF+4,R1
    247					10$:	MOVB	(R1)+,(R0)+	;MOVE THE RECORD TO THE USER STRING
    248						DEC	(SP)
    249						BGT	10$
    250						TST	(SP)+		;POP THE EXPIRED COUNT AND CLEAR CARRY
    251					20$:	MOV	(SP)+,R1	;RECOVER THE SAVED COUNT OR 0 IF ERROR
    252						RETURN
    253
    254						.ENDC
    255					;
    256					;
    257		000001 				.END
GERRM M0007, GET ERROR MESSAGE 	MACRO M1113  27-FEB-85 12:31  PAGE 8-1
SYMBOL TABLE

CLRDPB  000316R     004	IO.ENA= 006000   	IO.WVB= 011000   	Q.IOEF= 000006   	S.NFEN= 000020
DIRNMB  000000R     002	IO.EXT= 011400   	IQ.Q  = 000002   	Q.IOFN= 000002   	$SAVRG= ****** GX
EOIOST  000000R     003	IO.FNA= 004400   	IQ.X  = 000001   	Q.IOLU= 000004   	$$    = 000067
FIND    000272R     004	IO.KIL= 000012   	N.DID = 000024   	Q.IOPL= 000014   	$$$ARG= 000014
IO.ACE= 007400   	IO.LOV= 001010   	N.DVNM= 000032   	Q.IOPR= 000007   	$$$OST= 000014
IO.ACR= 006400   	IO.LTK= 000050   	N.FID = 000000   	Q.IOSB= 000010   	.EOEFN= 000012RG    003
IO.ACW= 007000   	IO.RAT= 013000   	N.FNAM= 000006   	R$$DPB= 000001   	.EOLUN= 000010RG    003
IO.APC= 014000   	IO.RDN= 000022   	N.FTYP= 000014   	R$$DYM= 000001   	.ERRBF  000034RG    003
IO.APV= 014010   	IO.RLB= 001000   	N.FVER= 000016   	R$$EIS= 000000   	.GERRM  000000RG    004
IO.ATT= 001400   	IO.RNA= 005400   	N.NEXT= 000022   	R$$11M= 000001   	...GBL= 000000
IO.CLN= 003400   	IO.RTK= 000060   	N.STAT= 000020   	S.FNAM= 000006   	...PC1= 000000
IO.CRE= 012000   	IO.RVB= 010400   	N.UNIT= 000034   	S.FNB = 000036   	...PC2= 000034R     002
IO.DAC= 010000   	IO.UNL= 000042   	QIODPB  000004R     003	S.FNBW= 000017   	...PC3= 000000
IO.DEL= 012400   	IO.WAT= 013400   	QIOWAT  000340R     004	S.FNTY= 000004   	...TPC= 000036
IO.DET= 002000   	IO.WLB= 000400   	Q.IOAE= 000012   	S.FTYP= 000002

. ABS.	000000	   000
      	000000	   001
PURE$D	000036	   002
IMPURE	002034	   003
PURE$I	000374	   004
ERRORS DETECTED:  0

VIRTUAL MEMORY USED:  4152 WORDS  ( 17 PAGES)
DYNAMIC MEMORY:  5678 WORDS  ( 21 PAGES)
ELAPSED TIME:  00:00:16
[43,10]GERRM,[43,20]GERRM/-SP/CR=[43,30]PIPMAC,GERRM
GERRM      CREATED BY  MACRO  ON 27-FEB-85 AT 12:31	PAGE 1

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

CLRDPB	  000316 R	 7-90       7-90       7-108      7-108      7-116      7-116      7-162      7-162     #7-191     
DIRNMB	  000000 R	#7-33       7-35       7-37       7-75      
EOIOST	  000000 R	#7-41       7-42       7-220     
FIND  	  000272 R	 7-78       7-78       7-86       7-86      #7-160     
IO.ACR	= 006400	 7-89      
IO.DAC	= 010000	 7-115     
IO.FNA	= 004400	 7-161     
IO.RVB	= 010400	 7-107     
N.DID 	= 000024	 7-35       7-73      *7-80      *7-81      *7-82      
N.DVNM	= 000032	 7-33      
N.FNAM	= 000006	 7-33      
N.FTYP	= 000014	 7-33      
N.UNIT	= 000034	 7-33      
QIODPB	  000004 R	#7-42       7-44       7-45      *7-89      *7-107     *7-115     *7-161      7-192      7-217     
QIOWAT	  000340 R	 7-98       7-98       7-113      7-113      7-118      7-118      7-172      7-172     #7-216     
Q.IOAE	= 000012	#7-42      
Q.IOEF	= 000006	#7-42       7-45      
Q.IOFN	= 000002	#7-42      *7-89      *7-107     *7-115     *7-161     
Q.IOLU	= 000004	#7-42       7-44      
Q.IOPL	= 000014	#7-42      
Q.IOPR	= 000007	#7-42      
Q.IOSB	= 000010	#7-42      
RONLY$	= ******	 7-31       7-31       7-71       7-71      
R$$DPB	= 000001	#1-27       7-93       7-163     
R$$DYM	= 000001	#1-29      
R$$EIS	= 000000	#1-28       1-38      
R$$11M	= 000001	#1-25       1-26       7-1        7-23      
SYS40$	= ******	 1-67       7-31       7-31       7-39       7-39       7-71       7-71      
S.FNAM	= 000006	 7-33       7-33      
S.FNB 	= 000036	 7-33       7-37      
S.FTYP	= 000002	 7-33       7-33      
$SAVRG	= ******  GX	 7-72      
$$    	= 000067	#7-78       7-78      #7-86       7-86      #7-90       7-90      #7-98       7-98      #7-108     
                         7-108     #7-113      7-113     #7-116      7-116     #7-118      7-118     #7-162      7-162     
                        #7-172      7-172     
$$$ARG	= 000014	#7-42       7-42      #7-42       7-42      #7-42       7-42      #7-42       7-42      #7-42      
                         7-42      #7-42       7-42      #7-42       7-42      
$$$GLB	= ******	 7-42       7-42       7-42       7-42       7-42       7-42       7-42       7-42      
$$$OST	= 000014	#7-42       7-42       7-42      #7-42       7-42       7-42      #7-42       7-42       7-42      
                        #7-42       7-42       7-42      #7-42       7-42       7-42      #7-42       7-42       7-42      
                        #7-42       7-42      
.EOEFN	= 000012 RG	#7-45       7-219     
.EOLUN	= 000010 RG	#7-44      
.ERRBF	  000034 RG	#7-47       7-109      7-128     
.GERRM	  000000 RG	#7-72      
...PC1	= 000000 R	 7-33       7-33      #7-33       7-33       7-33       7-33       7-33       7-33      #7-33      
...PC2	= 000034 R	#7-33       7-33       7-33      #7-33       7-33       7-33      #7-33       7-33      
...PC3	= 000000	#7-33       7-33      
GERRM      CREATED BY  MACRO  ON 27-FEB-85 AT 12:31	PAGE 2

MACRO CROSS REFERENCE                                   CREF         

MACRO NAME	REFERENCES

ASH   		#1-64      
ASHC  		#1-64      
CALL  		#7-29      #7-78      #7-86      #7-90      #7-98      #7-108     #7-113     #7-116     #7-118     #7-162     
                #7-172     
CWORD$		#7-33      #7-33      #7-33      
DIR$  		#7-29      #7-217     #7-219     #7-219     
DIV   		#1-64      
ERRINI		#4-307     
ERROUT		#3-215     
ERROUX		#3-222     
ERROU1		#3-225     
ERRP  		#3-247     
ERRPX 		#3-253     
ERRP1 		#3-256     
ERR$  		#7-217     #7-219     
ERR1  		#3-273     
FILIO$		#7-26       7-27      
FLDSOF		#5-382     
IDENT 		#5-339     #7-1       
IDENT1		#5-347      7-1       
IDTITL		#5-356     
ILLOP 		#1-52      #1-64       1-64      
IMPURE		#1-75      #7-39      
MARK  		#1-64      
MOV$  		#7-219      7-219     
MSG   		#2-124     
MSGZ  		#2-129     
MSG1  		#2-133     
MUL   		#1-64      
NBOFF$		#7-33      #7-33      
NMBLK$		#7-29       7-33      
NOEIS$		#1-39       1-64      
OFF$  		#7-42       7-42       7-42       7-42       7-42       7-42       7-42       7-42       7-42      
PURE. 		#1-84       7-31       7-71      
PURE.D		#1-102      7-31      
PURE.I		#1-98       7-71      
QDPB$ 		#7-42       7-42      
QIO$  		#7-29      #7-42      
RAD50$		#7-33      #7-33      #7-33      
RETURN		#7-29       7-139      7-142      7-173      7-198      7-223     
RTT   		#1-64      
SOB   		#1-64      #7-133     
SXT   		#1-64      
WTSE$S		#7-29       7-219     
XOR   		#1-64      
GETCML M0103, GET A COMMAND LIN	MACRO M1113  27-FEB-85 12:31
TABLE OF CONTENTS

     7-    1	**** GETCML VERSION M0103 ****
PIPMAC - MACROS FOR PIP, ETC.	MACRO M1113  27-FEB-85 12:31  PAGE 6


    397
GETCML M0103, GET A COMMAND LIN	MACRO M1113  27-FEB-85 12:31  PAGE 7


      1						.TITLE	GETCML M0103, GET A COMMAND LINE
						.SBTTL	**** GETCML VERSION M0103 ****
						.IDENT	/M0103/
      2					; ALTERED THURSDAY 21-NOV-74 9:35
      3					;
      4					; COPYRIGHT 1975, 1985, DIGITAL EQUIPMENT CORP., MAYNARD MASS.
      5					; COPYRIGHT 1974, DIGITAL EQUIPMENT CORP., MAYNARD MASS.
      6
      7					;			ALL RIGHTS RESERVED
      8					;
      9					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
     10					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
     11					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
     12					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
     13
     14					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
     15					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
     16					; EQUIPMENT CORPORATION.
     17
     18					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY
     19					; OF ITS SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
     20					;
     21					; PETER H. LIPMAN 7-MAY-73
     22					;
     23						.MCALL	GCMLD$,GCML$,RCML$,CALL,RETURN,CLOSE$
     24	000000					GCMLD$
     25					;
     26	000000					PURE.I
     27					;
     28					;+
     29					; GET A COMMAND LINE FROM GCMLCB (MUST BE GLOBALLY DEFINED)
     30					; CALLING SEQUENCE:
     31					;	CALL	GETCML
     32					; INPUTS:
     33					;	NONE
     34					; OUTPUTS:
     35					;	C=0 IF COMMAND WAS SUCCESSFULLY RECEIVED
     36					;	C=1 IF EOF OR FATAL FAILURE - PROGRAM IS EXPECTED TO EXIT
     37					;		THE GCML CONTROL BLOCK WILL BE RESET AND CLOSED
     38					;	R0 ALTERED TO CONTAIN ADR OF GCMLCB
     39					;	R1-R5 PRESERVED
     40					; OPERATION:
     41					;	THIS ROUTINE HANDLES BLANK LINES AS NULL INPUT AND JUST GETS
     42					; ANOTHER LINE.  LIKEWISE IT HANDLES ALL RECOVERABLE ERROR
     43					; MESSAGES, AND GIVES AN APPROPRIATE MESSAGE AND TRIES TO
     44					; GET ANOTHER LINE.  THE ONLY TIME THE C BIT IS SET ON RETURN IS IF
     45					; THE EOF CONDITION WAS RETURNED BY GCML OR IF AN I/O ERROR STATUS CODE
     46					; WAS RETURNED.
     47					;-
     48	000000				GETCML::GCML$	#GCMLCB
     49	000014	103404 				BCS	10$
     50	000016	005760 	000146 			TST	G.CMLD(R0)
     51	000022	001766 				BEQ	GETCML		;GET ANOTHER LINE IF THIS ONE IS NULL
     52	000024					RETURN
     53	000026				10$:	CALL	GCMLER
     54	000032	012700 	000000G			MOV	#GCMLCB,R0
     55	000036	103403 				BCS	20$		;BRANCH IF EOF OR FATAL ERROR
GETCML M0103, GET A COMMAND LIN	MACRO M1113  27-FEB-85 12:31  PAGE 7-1
**** GETCML VERSION M0103 ****

     56	000040					RCML$	R0		;RECOVER FROM ERROR
     57	000044	000755 				BR	GETCML		;AND GET ANOTHER LINE
     58					;
     59					; FATAL ERROR FROM GET COMMMAND LINE (OR EOF)
     60	000046				20$:	RCML$	R0		;CLEAN UP GET COMMAND LINE
     61	000052					CLOSE$	R0
     62	000056	000261 				SEC
     63	000060					RETURN
     64					;
     65					;+
     66					; PROCESS ERROR FROM GET COMMAND LINE
     67					; CALLING SEQUENCE
     68					;	CALL	GCMLER
     69					; INPUTS:
     70					;	R0=GET COMMAND LINE CONTROL BLOCK
     71					; OUTPUTS:
     72					;	C=0 IF OK TO REINIT AND RESTART PROGRAM
     73					;	C=1 IF PROGRAM SHOULD CLEAN UP AND EXIT
     74					;	ALL REGISTERS ALTERED
     75					;-
     76	000062	004567 	000000G		GCMLER::JSR	R5,.SAVR1
     77	000066	122760 	177766 	000140 		CMPB	#GE.EOF,G.ERR(R0)
     78	000074	001417 				BEQ	5$		;BRANCH IF EOF
     79	000076	122760 	177774 	000140 		CMPB	#GE.MDE,G.ERR(R0)
     80	000104	001415 				BEQ	10$		;BRANCH IF TOO MANY INDIRECT FILES
     81	000106	122760 	177775 	000140 		CMPB	#GE.BIF,G.ERR(R0)
     82	000114	001415 				BEQ	20$		;BRANCH IF BAD @ FILE NAME
     83	000116	122760 	177776 	000140 		CMPB	#GE.OPR,G.ERR(R0)
     84	000124	001415 				BEQ	30$		;BRANCH IF FAILED TO OPEN @ FILE
     85	000126					ERROUT	GC01		;I/O ERROR
	000126	104402 				TRAP	X
	000130	000034 				.WORD	GC01SZ
	000132	000000'				.WORD	GC01MG
     86	000134	000261 			5$:	SEC			;EXIT TYPE ERROR
     87	000136					RETURN
     88	000140				10$:	ERROUT	GC03		;MAX @ FILE DEPTH EXCEEDED
	000140	104402 				TRAP	X
	000142	000054 				.WORD	GC03SZ
	000144	000076'				.WORD	GC03MG
     89	000146	000407 				BR	40$
     90	000150				20$:	ERROUT	GC02		;BAD @ FILE NAME
	000150	104402 				TRAP	X
	000152	000042 				.WORD	GC02SZ
	000154	000034'				.WORD	GC02MG
     91	000156	000403 				BR	40$
     92	000160				30$:	ERROUT	GC04		;FAILED TO OPEN @ FILE
	000160	104402 				TRAP	X
	000162	000050 				.WORD	GC04SZ
	000164	000152'				.WORD	GC04MG
     93	000166	000241 			40$:	CLC			;RECOVERABLE TYPE FAILURE
     94	000170					RETURN
     95					;
     96	000000					.CSECT
     97					;
     98					; MESSAGES FOR GET COMMAND LINE ERRORS
     99	000000					MSG	GC01,<GET COMMAND LINE - I/O ERROR>
    100	000000					MSG	GC02,<GET COMMAND LINE - BAD @ FILE NAME>
GETCML M0103, GET A COMMAND LIN	MACRO M1113  27-FEB-85 12:31  PAGE 7-2
**** GETCML VERSION M0103 ****

    101	000000					MSG	GC03,<GET COMMAND LINE - MAX @ FILE DEPTH EXCEEDED>
    102	000000					MSG	GC04,<GET COMMAND LINE - FAILED TO OPEN @ FILE>
    103					;
    104					;
    105		000001 				.END
GETCML M0103, GET A COMMAND LIN	MACRO M1113  27-FEB-85 12:31  PAGE 7-3
SYMBOL TABLE

GCMLCB= ****** GX	GETCML  000000RG    002	GE.OPR= 177776   	R$$DYM= 000001   	S.FTYP= 000002
GCMLER  000062RG    002	GE.BIF= 177775   	G.CMLD= 000146   	R$$EIS= 000000   	S.NFEN= 000020
GC01MG= 000000R     003	GE.CLO= 000004   	G.DPRM= 000160   	R$$MSG= 000000   	X     = 000002
GC01SZ= 000034   	GE.COM= 000001   	G.ERR = 000140   	R$$11M= 000001   	$$    = 000067
GC02MG= 000034R     003	GE.EOF= 177766   	G.ISIZ= 000020   	S.FDB = 000140   	.CLOSE= ****** G
GC02SZ= 000042   	GE.IND= 000002   	G.MODE= 000141   	S.FNAM= 000006   	.GCML1= ****** G
GC03MG= 000076R     003	GE.IOR= 177777   	G.PSDS= 000142   	S.FNB = 000036   	.GCML2= ****** G
GC03SZ= 000054   	GE.LC = 000010   	PAR$$$= 000000   	S.FNBW= 000017   	.SAVR1= ****** GX
GC04MG= 000152R     003	GE.MDE= 177774   	R$$DPB= 000001   	S.FNTY= 000004   	...TPC= 000140
GC04SZ= 000050

. ABS.	000000	   000
      	000000	   001
PURE$I	000172	   002
MSGSTR	000222	   003
ERRORS DETECTED:  0

VIRTUAL MEMORY USED:  4267 WORDS  ( 17 PAGES)
DYNAMIC MEMORY:  5678 WORDS  ( 21 PAGES)
ELAPSED TIME:  00:00:16
[43,10]GETCML,[43,20]GETCML/-SP/CR=[43,30]PIPMAC,GETCML
GETCML     CREATED BY  MACRO  ON 27-FEB-85 AT 12:31	PAGE 1

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

GCMLCB	= ******  GX	 7-48       7-48       7-54      
GCMLER	  000062 RG	 7-53       7-53      #7-76      
GC01MG	= 000000 R	 7-85      #7-99       7-99      
GC01SZ	= 000034	 7-85      #7-99      
GC02MG	= 000034 R	 7-90      #7-100      7-100     
GC02SZ	= 000042	 7-90      #7-100     
GC03MG	= 000076 R	 7-88      #7-101      7-101     
GC03SZ	= 000054	 7-88      #7-101     
GC04MG	= 000152 R	 7-92      #7-102      7-102     
GC04SZ	= 000050	 7-92      #7-102     
GETCML	  000000 RG	#7-48       7-51       7-57      
GE.BIF	= 177775	 7-81      
GE.EOF	= 177766	 7-77      
GE.MDE	= 177774	 7-79      
GE.OPR	= 177776	 7-83      
G.CMLD	= 000146	 7-50      
G.ERR 	= 000140	 7-77       7-79       7-81       7-83      
G.PSDS	= 000142	*7-48      
MSGBL.	= ******	 7-99       7-100      7-101      7-102     
PAR$$$	= 000000	#7-48       7-48      #7-56       7-56      #7-60       7-60      #7-61       7-61      
RONLY$	= ******	 7-26       7-26       7-99       7-99       7-100      7-100      7-101      7-101      7-102     
                         7-102     
R$$DPB	= 000001	#1-27      
R$$DYM	= 000001	#1-29      
R$$EIS	= 000000	#1-28       1-38      
R$$MSG	= 000000	 7-99       7-99       7-100      7-100      7-101      7-101      7-102      7-102     
R$$11M	= 000001	#1-25       1-26       7-1       
SYS40$	= ******	 1-67       7-26       7-26       7-99       7-99       7-100      7-100      7-101      7-101     
                         7-102      7-102     
X     	= 000002	#7-85       7-85      #7-88       7-88      #7-90       7-90      #7-92       7-92      
$$    	= 000067	#7-53       7-53      
.CLOSE	= ******  G	 7-61       7-61      
.GCML1	= ******  G	 7-48       7-48      
.GCML2	= ******  G	 7-56       7-56       7-60       7-60      
.SAVR1	= ******  GX	 7-76      
GETCML     CREATED BY  MACRO  ON 27-FEB-85 AT 12:31	PAGE 2

MACRO CROSS REFERENCE                                   CREF         

MACRO NAME	REFERENCES

ASH   		#1-64      
ASHC  		#1-64      
CALL  		#7-23      #7-53      #7-61      
CLOSE$		#7-23      #7-61      
DIV   		#1-64      
ERRINI		#4-307     
ERROUT		#3-215      7-85       7-88       7-90       7-92      
ERROUX		#3-222     
ERROU1		#3-225     #7-85      #7-88      #7-90      #7-92      
ERRP  		#3-247     
ERRPX 		#3-253     
ERRP1 		#3-256     
ERR$  		#7-61      #7-61      
ERR1  		#3-273     #7-85      #7-88      #7-90      #7-92      
FLDSOF		#5-382     
GCMLD$		#7-23      #7-24      #7-48      #7-48      
GCML$ 		#7-23      #7-48      
IDENT 		#5-339     #7-1       
IDENT1		#5-347      7-1       
IDTITL		#5-356     
ILLOP 		#1-52      #1-64       1-64      
IMPURE		#1-75      
LDFDB$		#7-61       7-61      
LDR0$ 		#7-48       7-48      #7-56       7-56      #7-60       7-60      
MARK  		#1-64      
MSG   		#2-124     #7-99      #7-100     #7-101     #7-102     
MSGZ  		#2-129     
MSG1  		#2-133     #7-99      #7-100     #7-101     #7-102     
MUL   		#1-64      
NOEIS$		#1-39       1-64      
PURE. 		#1-84       7-26       7-99       7-100      7-101      7-102     
PURE.D		#1-102     
PURE.I		#1-98       7-26      
RCML$ 		#7-23       7-56       7-60      
RETURN		#7-23       7-52       7-63       7-87       7-94      
RTT   		#1-64      
SOB   		#1-64      
SXT   		#1-64      
XOR   		#1-64      
HDRMG M0114, FILE HEADER TO ASC	MACRO M1113  27-FEB-85 12:31
TABLE OF CONTENTS

     7-    1	**** HDRMG VERSION M0114 ****
PIPMAC - MACROS FOR PIP, ETC.	MACRO M1113  27-FEB-85 12:31  PAGE 6


    397
HDRMG M0114, FILE HEADER TO ASC	MACRO M1113  27-FEB-85 12:31  PAGE 7


      1						.TITLE	HDRMG M0114, FILE HEADER TO ASCII
						.SBTTL	**** HDRMG VERSION M0114 ****
						.IDENT	/M0114/
      2					; ALTERED THURSDAY 21-NOV-74 9:45
      3					;
      4					; COPYRIGHT 1975, 1985, DIGITAL EQUIPMENT CORP., MAYNARD MASS.
      5					; COPYRIGHT 1974, DIGITAL EQUIPMENT CORP., MAYNARD MASS.
      6
      7					;			ALL RIGHTS RESERVED
      8					;
      9					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
     10					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
     11					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
     12					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
     13
     14					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
     15					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
     16					; EQUIPMENT CORPORATION.
     17
     18					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY
     19					; OF ITS SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
     20					;
     21					; PETER H. LIPMAN 5-JUNE-73
     22					;
     23						.MCALL	CALL,RETURN,FDOF$L
     24	000000					FDOF$L
     25					;
     26		000001 				HDFNAM=1		;IF SET IN R3, CONVERT THE FILE NAME
     27		000002 				HDLONG=2		;IF SET IN R3, LONG FORM CONVERSION
     28					;
     29	000000					PURE.D
     30					;
     31					; FIELD DEFINITION TABLES
     32	000000	   024 	   010 	   003 	HDRTB1::.BYTE	20.,8.,3.	;SHORT FORM
     33	000003	   024 	   020 	   016 	HDRTB2:	.BYTE	20.,16.,14.,3.,16.,2,9.,22.,24. ;LONG FORM
	000006	   003 	   020 	   002
	000011	   011 	   026 	   030
     34						.EVEN
HDRMG M0114, FILE HEADER TO ASC	MACRO M1113  27-FEB-85 12:31  PAGE 8
**** HDRMG VERSION M0114 ****

     36					;
     37	000014					PURE.I
     38					;+
     39					; CONVERT FILE HEADER TO STRING
     40					; CALLING SEQUENCE:
     41					;	CALL	HDRMG
     42					; INPUTS
     43					;	R0=STRING ADDRESS TO PUT CHARACTERS IN
     44					;	R1=HEADER ADDRESS
     45					;	R2=STATISTICS BLOCK ADDRESS
     46					;	R3=CONVERT CONTROL BITS (0-7)
     47					;		BIT 0 = 0 SKIP THE FILE NAME, TYPE, AND VERSION
     48					;		BIT 0 = 1 CONVERT THE FILE NAME, TYPE AND VERSION
     49					;		BIT 1 = 0 SHORT FORM CONVERSION
     50					;		BIT 1 = 1 LONG FORM CONVERSION
     51					;	R3 BITS 8-15 - LISTING WIDTH OF LINE, (>=132. FOR LONG 1 LINER)
     52					; OUTPUTS:
     53					;	R0=UPDATED STRING POINTER
     54					;	R1=TOTAL NUMBER OF BYTES CONVERTED
     55					;	R2-R5 PRESERVED
     56					;-
     57	000000	004567 	000000G		HDRMG::	JSR	R5,$SAVRG	;SAVE R3-R5
     58	000004	010046 				MOV	R0,-(SP)
     59	000006	010246 				MOV	R2,-(SP)
     60	000010	010346 				MOV	R3,-(SP)	;TOP OF STACK=CONTROL BITS
     61	000012	010103 				MOV	R1,R3		;R3=ADDRESS OF HEADER
     62	000014	005004 				CLR	R4
     63	000016	156304 	000000G			BISB	HH.IDO(R3),R4
     64	000022	006304 				ASL	R4
     65	000024	060304 				ADD	R3,R4		;R4=BASE OF IDENT AREA IN HEADER
     66	000026	012705 	000000'			MOV	#HDRTB1,R5
     67	000032	032716 	000002 			BIT	#HDLONG,@SP
     68	000036	001402 				BEQ	10$
     69	000040	012705 	000003'			MOV	#HDRTB2,R5	;R5=FIELD CONTROL TABLE
     70	000044	032716 	000001 		10$:	BIT	#HDFNAM,@SP	;CONVERT FILE NAME, TYPE, AND VERSION?
     71	000050	001412 				BEQ	20$		;BRANCH IF NO
     72					;
     73					; CONVERT THE FILE NAME, TYPE, AND VERSION
     74	000052	012701 	000000'			MOV	#HD01MG,R1
     75	000056	010402 				MOV	R4,R2
     76	000060	062702 	000000G			ADD	#HI.NAM,R2	;R2 POINTS AT RAD50 NAME, TYPE VER
     77	000064					CALL	$EDMSG
     78	000070					CALL	HDFILL		;FILL OUT THE FIELD WITH BLANK
     79	000074	000401 				BR	25$
     80	000076	005205 			20$:	INC	R5		;SKIP THE FILENAME FIELD
     81	000100	032716 	000002 		25$:	BIT	#HDLONG,@SP
     82	000104	001425 				BEQ	40$		;BRANCH IF SHORT FORM
     83					;
     84					; CONVERT THE FILE ID
     85	000106	010046 				MOV	R0,-(SP)
     86	000110	112720 	000050 			MOVB	#'(,(R0)+
     87	000114	016301 	000000G			MOV	HH.FNU(R3),R1
     88	000120	005002 				CLR	R2		;SUPPRESS LEADING ZEROS
     89	000122					CALL	$CBOMG		;CONVERT FILE NUMBER
     90	000126	112720 	000054 			MOVB	#',,(R0)+
     91	000132	016301 	000000G			MOV	HH.FSQ(R3),R1
     92	000136	005002 				CLR	R2
HDRMG M0114, FILE HEADER TO ASC	MACRO M1113  27-FEB-85 12:31  PAGE 8-1
**** HDRMG VERSION M0114 ****

     93	000140					CALL	$CBOMG		;CONVERT FILE SEQUENCE NUMBER
     94	000144	112720 	000051 			MOVB	#'),(R0)+
     95	000150	010001 				MOV	R0,R1
     96	000152	162601 				SUB	(SP)+,R1
     97	000154					CALL	HDFILL
     98					; CONVERT THE NO. OF BLOCKS USED.
     99	000160	010301 			40$:	MOV	R3,R1
    100	000162	062701 	000000G			ADD	#HH.UAT,R1
    101	000166	016146 	000010 			MOV	F.EFBK(R1),-(SP) ;SAVE EFBK
    102	000172	016146 	000012 			MOV	F.EFBK+2(R1),-(SP)
    103	000176	011602 				MOV	@SP,R2
    104	000200	056602 	000002 			BIS	2(SP),R2
    105	000204	001011 				BNE	43$
    106					;
    107					; EFBK = 0 INDICATING THAT NO FCS END OF FILE INFO IS PRESENT
    108					; SAY THAT FILE SIZE IS THE ALLOCATED SPACE
    109	000206	016602 	000006 			MOV	6(SP),R2	;R2=STAT BLOCK ADDRESS
    110	000212	016261 	000004 	000010 		MOV	4(R2),F.EFBK(R1) ;USE ALLOCATED SPACE FOR SIZE USED
    111	000220	016261 	000006 	000012 		MOV	6(R2),F.EFBK+2(R1)
    112	000226	000410 				BR	45$
    113	000230	005761 	000014 		43$:	TST	F.FFBY(R1)	;IF FFBY=0
    114	000234	001005 				BNE	45$
    115	000236	162761 	000001 	000012 		SUB	#1,F.EFBK+2(R1)	;THEN EFBK IS 1 TOO BIG
    116	000244	005661 	000010 			SBC	F.EFBK(R1)
    117	000250	062701 	000010 		45$:	ADD	#F.EFBK,R1
    118	000254	005002 				CLR	R2		;ZERO SUPPRESS
    119	000256					CALL	CDDMG		;CONVERT DOUBLE PRECISION TO MAG DECIMAL
    120	000262	012663 	000012G			MOV	(SP)+,HH.UAT+F.EFBK+2(R3) ;RESTORE EFBK
    121	000266	012663 	000010G			MOV	(SP)+,HH.UAT+F.EFBK(R3)
    122	000272	032716 	000002 			BIT	#HDLONG,@SP
    123	000276	001414 				BEQ	60$		;BRANCH IF SHORT MODE
    124					; CONVERT NO. OF BLOCKS ALLOCATED
    125	000300	112720 	000057 			MOVB	#'/,(R0)+	;PUT IN "/"
    126	000304	005201 				INC	R1		;AND COUNT IT
    127	000306	010146 				MOV	R1,-(SP)	;SAVE THE COUNT
    128	000310	016601 	000004 			MOV	4(SP),R1	;R1=STATISTICS BLOCK ADDRESS
    129	000314	062701 	000004 			ADD	#4,R1		;R1=ADDRESS OF ALLOCATED SIZE
    130	000320	005002 				CLR	R2
    131	000322					CALL	CDDMG		;CONVERT DBL PRECISION TO DECIMAL MAGNITUDE
    132	000326	062601 				ADD	(SP)+,R1	;FORM COUNT FOR NNN/MMM
    133	000330				60$:	CALL	HDFILL		;BLANK FILL THE FIELD
    134					; PUT "C" FOR CONTIGUOUS AND "L" FOR LOCKED
    135	000334	112720 	000040 			MOVB	#' ,(R0)+
    136	000340	132763 	000000G	000000G		BITB	#HS.CON,HH.CHU(R3) ;IF CONTIGUOUS
    137	000346	001403 				BEQ	65$
    138	000350	112760 	000103 	177777 		MOVB	#'C,-1(R0)	;PUT A "C" IN STRING
    139	000356	112720 	000040 		65$:	MOVB	#' ,(R0)+
    140	000362	132763 	000000G	000000G		BITB	#HS.PHL,HH.CHU(R3) ;IF LOCKED
    141	000370	001403 				BEQ	70$
    142	000372	112760 	000114 	177777 		MOVB	#'L,-1(R0)	;PUT A "C" IN STRING
    143	000400	012701 	000002 		70$:	MOV	#2,R1		;NO. OF CHARACTERS
    144	000404					CALL	HDFILL
    145					; PUT CREATION DATE AND TIME IN STRING
    146	000410	010401 				MOV	R4,R1
    147	000412	062701 	000000G			ADD	#HI.CDT,R1
    148	000416					CALL	DATIM
    149	000422	032716 	000002 			BIT	#HDLONG,@SP
HDRMG M0114, FILE HEADER TO ASC	MACRO M1113  27-FEB-85 12:31  PAGE 8-2
**** HDRMG VERSION M0114 ****

    150	000426	001574 				BEQ	HDRMGX
    151	000430	122766 	000204 	000001 	HDRMG1:	CMPB	#132.,1(SP)	;DON'T PUT IN ANOTHER LINE IF LONG LINE
    152	000436	101004 				BHI	5$
    153	000440					CALL	HDFILL
    154	000444	005205 				INC	R5		;SKIP INDENT
    155	000446	000410 				BR	10$
    156	000450	112720 	000015 		5$:	MOVB	#15,(R0)+	;NEXT LINE
    157	000454	112720 	000012 			MOVB	#12,(R0)+
    158	000460	005001 				CLR	R1
    159	000462	005205 				INC	R5		;SKIP FILL FIELD FOR CREATION DATE
    160	000464					CALL	HDFILL		;INDENT
    161					; STORE OWNER'S PROJECT PROGRAMMER NUMBER
    162	000470	012701 	000013'		10$:	MOV	#HD03MG,R1
    163	000474	005046 				CLR	-(SP)
    164	000476	116316 	000000G			MOVB	HH.PC(R3),@SP
    165	000502	005046 				CLR	-(SP)
    166	000504	116316 	000000G			MOVB	HH.GC(R3),@SP
    167	000510	010602 				MOV	SP,R2
    168	000512					CALL	$EDMSG
    169	000516	062706 	000004 			ADD	#4,SP
    170	000522					CALL	HDFILL
    171					; PUT PROTECTION CODE IN STRING
    172	000526	010046 				MOV	R0,-(SP)	;SAVE 50 CAN GET COUNT
    173	000530	112720 	000133 			MOVB	#'[,(R0)+
    174	000534	012702 	000004 			MOV	#4,R2
    175	000540	016301 	000000G			MOV	HH.FP(R3),R1
    176	000544	032701 	000000G		18$:	BIT	#HF.RDV,R1
    177	000550	001002 				BNE	20$
    178	000552	112720 	000122 			MOVB	#'R,(R0)+
    179	000556	032701 	000000G		20$:	BIT	#HF.WRV,R1
    180	000562	001002 				BNE	22$
    181	000564	112720 	000127 			MOVB	#'W,(R0)+
    182	000570	032701 	000000G		22$:	BIT	#HF.EXT,R1
    183	000574	001002 				BNE	24$
    184	000576	112720 	000105 			MOVB	#'E,(R0)+
    185	000602	032701 	000000G		24$:	BIT	#HF.DEL,R1
    186	000606	001002 				BNE	26$
    187	000610	112720 	000104 			MOVB	#'D,(R0)+
    188	000614	112720 	000054 		26$:	MOVB	#',,(R0)+
    189
    190						.IF	EQ,R$$EIS
    191		000004 				.REPT	4
    192						ASR	R1		;SHIFT RIGHT 4 BITS
    193						.ENDR
    194
    195						.IFF
    196						ASH	#-4,R1
    197						.ENDC
    198
    199	000630					SOB	R2,18$
    200	000634	112760 	000135 	177777 		MOVB	#'],-1(R0)	;"]" INSTEAD OF TRAILING ","
    201	000642	010001 				MOV	R0,R1
    202	000644	162601 				SUB	(SP)+,R1	;NEW POINTER -OLD=COUNT
    203	000646	105764 	000000G			TSTB	HI.EXP(R4)	;IF NO EXPIRATION DATE
    204	000652	001004 				BNE	30$
    205	000654	022764 	000001 	000000G		CMP	#1,HI.REV(R4)	;AND NO REVISION DATE TO PRINT
    206	000662	103056 				BHIS	HDRMGX		;SKIP TO THE END
HDRMG M0114, FILE HEADER TO ASC	MACRO M1113  27-FEB-85 12:31  PAGE 8-3
**** HDRMG VERSION M0114 ****

    207	000664				30$:	CALL	HDFILL
    208					; REVISION DATE
    209	000670	005001 				CLR	R1
    210	000672	022764 	000001 	000000G		CMP	#1,HI.REV(R4)	;IF REVISION NUMBER IS <=1
    211	000700	103021 				BHIS	40$		;DON'T BOTHER PRINTING THE REVISION INFO
    212	000702	010401 				MOV	R4,R1
    213	000704	062701 	000000G			ADD	#HI.RDT,R1
    214	000710					CALL	DATIM
    215	000714	010146 				MOV	R1,-(SP)
    216					; REVISION NUMBER
    217	000716	010402 				MOV	R4,R2
    218	000720	062702 	000000G			ADD	#HI.REV,R2
    219	000724	012701 	000023'			MOV	#HD04MG,R1
    220	000730					CALL	$EDMSG
    221	000734	062601 				ADD	(SP)+,R1	;ADD SAVED COUNT FROM REVISION DATE
    222	000736	105764 	000000G			TSTB	HI.EXP(R4)	;IF NULL EXPIRATION DATE
    223	000742	001426 				BEQ	HDRMGX		;SKIP TO THE END
    224	000744	122766 	000204 	000001 	40$:	CMPB	#132.,1(SP)	;IF USING LONG LINE FORMAT
    225	000752	101007 				BHI	45$
    226	000754	112720 	000015 			MOVB	#15,(R0)+	;MUST GO TO NEW LINE NOW
    227	000760	112720 	000012 			MOVB	#12,(R0)+
    228	000764	112720 	000011 			MOVB	#11,(R0)+
    229	000770	000402 				BR	50$
    230	000772				45$:	CALL	HDFILL
    231					; EXPIRATION DATE
    232	000776	010401 			50$:	MOV	R4,R1
    233	001000	062701 	000000G			ADD	#HI.EXP,R1
    234	001004					CALL	DATIM
    235	001010	005701 				TST	R1		;ANY EXPIRATION DATE?
    236	001012	001402 				BEQ	HDRMGX		;BRANCH IF NO
    237	001014	162700 	000006 			SUB	#6,R0		;SUBTRACT OFF THE TIME CHARACTERS
    238	001020	012603 			HDRMGX:	MOV	(SP)+,R3
    239	001022	012602 				MOV	(SP)+,R2
    240	001024	010001 				MOV	R0,R1
    241	001026	162601 				SUB	(SP)+,R1
    242	001030	105010 				CLRB	@R0
    243	001032					RETURN
HDRMG M0114, FILE HEADER TO ASC	MACRO M1113  27-FEB-85 12:31  PAGE 9
**** HDRMG VERSION M0114 ****

    245					;+
    246					; FILL IN FIELD WITH BLANKS
    247					; CALLING SEQUENCE:
    248					;	CALL	HDFILL
    249					; INPUTS
    250					;	R0=STRING ADDRESS
    251					;	R1=BYTES USED IN THIS FIELD
    252					;	R5=POINTS TO BYTE WHICH IS NO. OF SPACES TO USE IN THE FIELD
    253					; OUTPUTS:
    254					;	R0=UPDATED STRING POINTER
    255					;	R5=POINTS AT NEXT BYTE IN FIELD DEFINITION TABLE
    256					;	R1 ALTERED
    257					;	R2-R4 PRESERVED
    258					;-
    259	001034	010146 			HDFILL::MOV	R1,-(SP)
    260	001036	112501 				MOVB	(R5)+,R1
    261	001040	162601 				SUB	(SP)+,R1
    262	001042	003404 				BLE	20$
    263	001044	112720 	000040 		10$:	MOVB	#' ,(R0)+
    264	001050					SOB	R1,10$
    265	001054				20$:	RETURN
    266					;
    267					; CONVERT FILE-11 DATE AND TIME FORMAT TO STRING
    268					; INPUTS
    269					;	R0=STRING ADDRES
    270					;	R1=DATE STRING ADDRESS
    271					; OUTPUTS
    272					;	R0 UPDATE
    273					;	R1=NO. OF BYTES
    274	001056	010046 			DATIM:	MOV	R0,-(SP)
    275	001060	105711 				TSTB	@R1
    276	001062	001423 				BEQ	20$
    277	001064	112120 				MOVB	(R1)+,(R0)+	;DATE DD
    278	001066	112120 				MOVB	(R1)+,(R0)+
    279	001070	112720 	000055 			MOVB	#'-,(R0)+
    280	001074	112120 				MOVB	(R1)+,(R0)+	;MONTH MMM
    281	001076	112120 				MOVB	(R1)+,(R0)+
    282	001100	112120 				MOVB	(R1)+,(R0)+
    283	001102	112720 	000055 			MOVB	#'-,(R0)+
    284	001106	112120 				MOVB	(R1)+,(R0)+	;YEAR YY
    285	001110	112120 				MOVB	(R1)+,(R0)+
    286	001112	112720 	000040 			MOVB	#' ,(R0)+
    287	001116	112120 				MOVB	(R1)+,(R0)+	;HOURS HH
    288	001120	112120 				MOVB	(R1)+,(R0)+
    289	001122	112720 	000072 			MOVB	#':,(R0)+
    290	001126	112120 				MOVB	(R1)+,(R0)+	;MINUTES MM
    291	001130	112120 				MOVB	(R1)+,(R0)+
    292	001132	010001 			20$:	MOV	R0,R1
    293	001134	162601 				SUB	(SP)+,R1
    294	001136					RETURN
    295					; CONVERT DOUBLE PRECISION BINARY TO MAGNITIDE DECIMAL
    296					; INPUTS
    297					;	R0=STRING ADDRESS
    298					;	R1=ADDRESS OF DOUBLE PRECISION NUMBER
    299					;	R2=R2 PARAM TO CBDMG
    300					; OUTPUTS
    301					;	R0=UPDATED STRING
HDRMG M0114, FILE HEADER TO ASC	MACRO M1113  27-FEB-85 12:31  PAGE 9-1
**** HDRMG VERSION M0114 ****

    302					;	R1=SIZE
    303					;	R2 ALTERED, R3-R5 PRESERVED
    304	001140	010046 			CDDMG:	MOV	R0,-(SP)
    305	001142					CALL	$CDDMG
    306	001146	112720 	000056 			MOVB	#'.,(R0)+
    307	001152	010001 				MOV	R0,R1
    308	001154	162601 				SUB	(SP)+,R1
    309	001156					RETURN
    310					;
    311	000000					.CSECT
    312					;
    313					; HEADER CONVERSION STRINGS
    314	000000					MSGZ	HD01,<%X>
    315	000000					MSGZ	HD02,<(%P,%P)>
    316	000000					MSGZ	HD03,<[%O,%O]>
    317	000000					MSGZ	HD04,<(%D.)>
    318					;
    319					;
    320					;
    321		000001 				.END
HDRMG M0114, FILE HEADER TO ASC	MACRO M1113  27-FEB-85 12:31  PAGE 9-2
SYMBOL TABLE

CDDMG   001140R     003	F.FNAM= 000110   	F.VBSZ= 000060   	HH.FNU= ****** GX	N.STAT= 000020
DATIM   001056R     003	F.FNB = 000102   	HDFILL  001034RG    003	HH.FP = ****** GX	N.UNIT= 000034
F.ALOC= 000040   	F.FTYP= 000116   	HDFNAM= 000001   	HH.FSQ= ****** GX	R$$DPB= 000001
F.BBFS= 000062   	F.FVER= 000120   	HDLONG= 000002   	HH.GC = ****** GX	R$$DYM= 000001
F.BDB = 000070   	F.HIBK= 000004   	HDRMG   000000RG    003	HH.IDO= ****** GX	R$$EIS= 000000
F.BGBC= 000057   	F.LUN = 000042   	HDRMGX  001020R     003	HH.PC = ****** GX	R$$MSG= 000000
F.BKDN= 000026   	F.MBCT= 000054   	HDRMG1  000430R     003	HH.UAT= ****** GX	R$$11M= 000001
F.BKDS= 000020   	F.MBC1= 000055   	HDRTB1  000000RG    002	HI.CDT= ****** GX	S.FATT= 000016
F.BKEF= 000050   	F.MBFG= 000056   	HDRTB2  000003R     002	HI.EXP= ****** GX	S.FDB = 000140
F.BKP1= 000051   	F.NRBD= 000024   	HD01MG= 000000R     004	HI.NAM= ****** GX	S.FNAM= 000006
F.BKST= 000024   	F.NREC= 000030   	HD01SZ= 000003   	HI.RDT= ****** GX	S.FNB = 000036
F.BKVB= 000064   	F.OVBS= 000030   	HD02MG= 000003R     004	HI.REV= ****** GX	S.FNBW= 000017
F.CNTG= 000034   	F.RACC= 000016   	HD02SZ= 000010   	HS.CON= ****** GX	S.FNTY= 000004
F.DFNB= 000046   	F.RATT= 000001   	HD03MG= 000013R     004	HS.PHL= ****** GX	S.FTYP= 000002
F.DSPT= 000044   	F.RCNM= 000034   	HD03SZ= 000010   	N.DID = 000024   	S.NFEN= 000020
F.DVNM= 000134   	F.RCTL= 000017   	HD04MG= 000023R     004	N.DVNM= 000032   	$CBOMG= ****** GX
F.EFBK= 000010   	F.RSIZ= 000002   	HD04SZ= 000006   	N.FID = 000000   	$CDDMG= ****** GX
F.EFN = 000050   	F.RTYP= 000000   	HF.DEL= ****** GX	N.FNAM= 000006   	$EDMSG= ****** GX
F.EOBB= 000032   	F.STBK= 000036   	HF.EXT= ****** GX	N.FTYP= 000014   	$SAVRG= ****** GX
F.ERR = 000052   	F.UNIT= 000136   	HF.RDV= ****** GX	N.FVER= 000016   	$$    = 000067
F.FACC= 000043   	F.URBD= 000020   	HF.WRV= ****** GX	N.NEXT= 000022   	...TPC= 000140
F.FFBY= 000014   	F.VBN = 000064   	HH.CHU= ****** GX

. ABS.	000000	   000
      	000000	   001
PURE$D	000014	   002
PURE$I	001160	   003
MSGSTR	000031	   004
ERRORS DETECTED:  0

VIRTUAL MEMORY USED:  3865 WORDS  ( 16 PAGES)
DYNAMIC MEMORY:  4622 WORDS  ( 17 PAGES)
ELAPSED TIME:  00:00:16
[43,10]HDRMG,[43,20]HDRMG/-SP/CR=[43,30]PIPMAC,HDRMG
HDRMG      CREATED BY  MACRO  ON 27-FEB-85 AT 12:32	PAGE 1

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

CDDMG 	  001140 R	 8-119      8-119      8-131      8-131     #9-304     
DATIM 	  001056 R	 8-148      8-148      8-214      8-214      8-234      8-234     #9-274     
F.EFBK	= 000010	 8-101      8-102     *8-110     *8-111     *8-115     *8-116      8-117     *8-120     *8-121     
F.FFBY	= 000014	 8-113     
HDFILL	  001034 RG	 8-78       8-78       8-97       8-97       8-133      8-133      8-144      8-144      8-153     
                         8-153      8-160      8-160      8-170      8-170      8-207      8-207      8-230      8-230     
                        #9-259     
HDFNAM	= 000001	#7-26       8-70      
HDLONG	= 000002	#7-27       8-67       8-81       8-122      8-149     
HDRMG 	  000000 RG	#8-57      
HDRMGX	  001020 R	 8-150      8-206      8-223      8-236     #8-238     
HDRMG1	  000430 R	#8-151     
HDRTB1	  000000 RG	#7-32       8-66      
HDRTB2	  000003 R	#7-33       8-69      
HD01MG	= 000000 R	 8-74      #9-314      9-314     
HD01SZ	= 000003	#9-314     
HD02MG	= 000003 R	#9-315      9-315     
HD02SZ	= 000010	#9-315     
HD03MG	= 000013 R	 8-162     #9-316      9-316     
HD03SZ	= 000010	#9-316     
HD04MG	= 000023 R	 8-219     #9-317      9-317     
HD04SZ	= 000006	#9-317     
HF.DEL	= ******  GX	 8-185     
HF.EXT	= ******  GX	 8-182     
HF.RDV	= ******  GX	 8-176     
HF.WRV	= ******  GX	 8-179     
HH.CHU	= ******  GX	 8-136      8-140     
HH.FNU	= ******  GX	 8-87      
HH.FP 	= ******  GX	 8-175     
HH.FSQ	= ******  GX	 8-91      
HH.GC 	= ******  GX	 8-166     
HH.IDO	= ******  GX	 8-63      
HH.PC 	= ******  GX	 8-164     
HH.UAT	= ******  GX	 8-100     *8-120     *8-121     
HI.CDT	= ******  GX	 8-147     
HI.EXP	= ******  GX	 8-203      8-222      8-233     
HI.NAM	= ******  GX	 8-76      
HI.RDT	= ******  GX	 8-213     
HI.REV	= ******  GX	 8-205      8-210      8-218     
HS.CON	= ******  GX	 8-136     
HS.PHL	= ******  GX	 8-140     
MSGBL.	= ******	 9-314      9-315      9-316      9-317     
RONLY$	= ******	 7-29       7-29       8-37       8-37       9-314      9-314      9-315      9-315      9-316     
                         9-316      9-317      9-317     
R$$DPB	= 000001	#1-27      
R$$DYM	= 000001	#1-29      
R$$EIS	= 000000	#1-28       1-38       8-190     
R$$MSG	= 000000	 9-314      9-314      9-315      9-315      9-316      9-316      9-317      9-317     
R$$11M	= 000001	#1-25       1-26       7-1       
SYS40$	= ******	 1-67       7-29       7-29       8-37       8-37       9-314      9-314      9-315      9-315     
                         9-316      9-316      9-317      9-317     
$CBOMG	= ******  GX	 8-89       8-89       8-93       8-93      
HDRMG      CREATED BY  MACRO  ON 27-FEB-85 AT 12:32	PAGE 2

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

$CDDMG	= ******  GX	 9-305      9-305     
$EDMSG	= ******  GX	 8-77       8-77       8-168      8-168      8-220      8-220     
$SAVRG	= ******  GX	 8-57      
$$    	= 000067	#8-77       8-77      #8-78       8-78      #8-89       8-89      #8-93       8-93      #8-97      
                         8-97      #8-119      8-119     #8-131      8-131     #8-133      8-133     #8-144      8-144     
                        #8-148      8-148     #8-153      8-153     #8-160      8-160     #8-168      8-168     #8-170     
                         8-170     #8-207      8-207     #8-214      8-214     #8-220      8-220     #8-230      8-230     
                        #8-234      8-234     #9-305      9-305     
HDRMG      CREATED BY  MACRO  ON 27-FEB-85 AT 12:32	PAGE 3

MACRO CROSS REFERENCE                                   CREF         

MACRO NAME	REFERENCES

ASH   		#1-64      
ASHC  		#1-64      
CALL  		#7-23      #8-77      #8-78      #8-89      #8-93      #8-97      #8-119     #8-131     #8-133     #8-144     
                #8-148     #8-153     #8-160     #8-168     #8-170     #8-207     #8-214     #8-220     #8-230     #8-234     
                #9-305     
DIV   		#1-64      
ERRINI		#4-307     
ERROUT		#3-215     
ERROUX		#3-222     
ERROU1		#3-225     
ERRP  		#3-247     
ERRPX 		#3-253     
ERRP1 		#3-256     
ERR1  		#3-273     
FDOFF$		#7-24       7-24      
FDOF$L		#7-23      #7-24      
FLDSOF		#5-382     
IDENT 		#5-339     #7-1       
IDENT1		#5-347      7-1       
IDTITL		#5-356     
ILLOP 		#1-52      #1-64       1-64      
IMPURE		#1-75      
MARK  		#1-64      
MSG   		#2-124     
MSGZ  		#2-129     #9-314     #9-315     #9-316     #9-317     
MSG1  		#2-133     #9-314     #9-315     #9-316     #9-317     
MUL   		#1-64      
NOEIS$		#1-39       1-64      
PURE. 		#1-84       7-29       8-37       9-314      9-315      9-316      9-317     
PURE.D		#1-102      7-29      
PURE.I		#1-98       8-37      
RETURN		#7-23       8-243      9-265      9-294      9-309     
RTT   		#1-64      
SOB   		#1-64      #8-199     #9-264     
SXT   		#1-64      
XOR   		#1-64      
PIPMAC - MACROS FOR PIP, ETC.	MACRO M1113  27-FEB-85 12:32  PAGE 6


    397
HDRSYM - FILES 11 HEADER SYMBOL	MACRO M1113  27-FEB-85 12:32  PAGE 7


      1						.TITLE	HDRSYM - FILES 11 HEADER SYMBOLLIC OFFSETS
      2						.IDENT	/01/
      3					; ALTERED TUESDAY 18-SEP-73 12:55
      4					;	LAST ALTERED BY P. H. LIPMAN FROM RSX V002A DEFINITION
      5					;
      6					; COPYRIGHT 1975, 1985, DIGITAL EQUIPMENT CORP., MAYNARD MASS.
      7					; COPYRIGHT 1974, DIGITAL EQUIPMENT CORP., MAYNARD MASS.
      8
      9					;			ALL RIGHTS RESERVED
     10					;
     11					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
     12					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
     13					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
     14					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
     15
     16					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
     17					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
     18					; EQUIPMENT CORPORATION.
     19
     20					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY
     21					; OF ITS SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
     22					;
     23
     24					;HEADER AREA, OFFSETS TO THE START OF THE HEADER
     25
     26		000000 			HH.IDO	==0	;1B-IDENT AREA OFFSET, IN WORDS
     27		000001 			HH.MAP	==1	;1B-BLOCK MAP AREA OFFSET, IN WORDS
     28		000002 			HH.FNU	==2	;1W-FILE NUMBER OF THIS FILE
     29		000004 			HH.FSQ	==4	;1W-FILE SEQUENCE NUMBER OF THIS FILE
     30		000006 			HH.LEV	==6	;1W-STRUCTURE LEVEL AND SYSTEM NUMBER
     31		000010 			HH.UI	==10	;1W-FILE OWNER'S "UIC"
     32		000010 			HH.PC	==HH.UI+0	;1B-PROGRAMMER CODE
     33		000011 			HH.GC	==HH.UI+1	;1B-GROUP CODE
     34		000012 			HH.FP	==12	;1W-FILE PROTECTION CODE
     35		000001 				HF.RDV	==01	;READ ACCESS ALLOWED
     36		000002 				HF.WRV	==02	;WRITE ACCESS ALLOWED
     37		000004 				HF.EXT	==04	;EXTEND ALLOWED
     38		000010 				HF.DEL	==10	;DELETE ALLOWED
     39		000001 				HF.RAT	==01	;READ ATTRIBUTES (SAME AS READ ACCESS)
     40		000014 			HH.CH	==14	;1W-FILE CHARACTERISTICS CODE
     41		000014 			HH.CHU	==HH.CH+0	;1B-USER CONTROLLED CHARACTERISTICS
     42		000200 				HS.CON	==200	;FILE IS LOGICALLY CONTIGUOUS
     43		000100 				HS.PHL	==100	;RECORD I/O ATTRIBUTES REQUIRED FOR CLOSE
     44		000040 				HS.TMP	==040	;TEMPORARY UN-NAMED FILE
     45		000015 			HH.CHS	==HH.CH+1	;1B-SYSTEM CONTROLLED CHARACTERISTICS
     46		000200 				HS.MDL	==200	;FILE IS MARKED FOR DELETE
     47		000100 				HS.BAD	==100	;BAD DATA BLOCK IN THE FILE
     48		000016 			HH.UAT	==16	;20W-USER CONTROLLED ATTRIBUTE BLOCK, RECORD I/O
     49		000040 				HH.UAL	==40	;COUNT OF BYTES IN ATTRIBUTE BLOCK
     50
     51					;IDENTIFICATION AREA, OFFSETS TO START OF IDENT AREA
     52
     53		000000 			HI.NAM	==0	;3W-FILE NAME. NINE RADIX-50 CHARACTERS
     54		000002 			HI.NA2	==2	;	LEFT JUSTIFIED AND
     55		000004 			HI.NA3	==4	;	FILLED WITH BLANKS
     56		000006 			HI.TYP	==6	;1W-FILE TYPE, THREE RADIX-50 CHARACTERS
     57		000010 			HI.VER	==10	;1W-FILE VERSION NUMBER, BINARY
HDRSYM - FILES 11 HEADER SYMBOL	MACRO M1113  27-FEB-85 12:32  PAGE 7-1


     58		000012 			HI.REV 	==12	;1W-FILE REVISION NUMBER, BINARY
     59		000014 			HI.RDT	==14	;7B-REVISION DATE, ASCII "DDMMMYY"
     60		000023 			HI.RTM	==23	;6B-REVISION 24HR TIME, ASCII "HHMMSS"
     61		000031 			HI.CDT	==31	;7B-CREATION DATE
     62		000040 			HI.CTM	==40	;6B-CREATION TIME
     63		000046 			HI.EXP	==46	;7B-EXPIRATION DATE OF THE FILE
     64		000007 				HI.DAT	==7	;DATES ARE SEVEN BYTES
     65		000006 				HI.TIM	==6	;TIMES ARE SIX BYTES
     66					;
     67					;MAP AREA, OFFSETS TO START OF THE BLOCK MAP AREA
     68
     69		000000 			HM.ESQ	==0	;1B-FILE EXTENSION SEQUENCE NUMBER
     70		000001 			HM.RVN	==1	;1B-RELATIVE VOLUME CONTAINING EXTENSION FILE
     71		000002 			HM.EFN	==2	;1W-EXTENSION FILE NUMBER
     72		000004 			HM.ESN	==4	;1W-EXTENSION FILE SEQUENCE NUMBER
     73		000006 			HM.CN	==6	;1B-BLOCK COUNT FIELD SIZE FIELD
     74		000007 			HM.BN	==7	;1B-BLOCK NUMBER FIELD SIZE FIELD
     75		000010 			HM.USE	==10	;1B-WORDS IN USE IN THE MAP
     76		000011 			HM.MAX	==11	;1B-TOTAL WORDS AVAILABLE FOR MAP
     77		000012 			HM.PNT	==12	;FILE BLOCK POINTER REGION START
     78
     79					;FORMATS FOR HM.CN,HM.BN:
     80
     81						;C,N == 1,3	.BYTE	HIGH ORDER 8 BITS OF BLOCK #
     82							;	.BYTE	COUNT
     83							;	.WORD	LOW ORDER 16 BITS OF BLOCK #
     84
     85						;C,N ==	2,2	.WORD	COUNT
     86							;	.WORD	BLOCK #
     87
     88						;C,N ==	2,4	.WORD	COUNT
     89							;	.WORD	HIGH ORDER PART OF BLOCK #
     90							;	.WORD	LOW ORDER PART OF BLOCK #
     91
     92					;CHECKSUM AREA, OFFSET TO THE START OF THE HEADER
     93
     94		000776 			HD.SUM	==776	;1W-CHECKSUM SLOT
     95					;
     96					;
     97		000001 				.END
HDRSYM - FILES 11 HEADER SYMBOL	MACRO M1113  27-FEB-85 12:32  PAGE 7-2
SYMBOL TABLE

HD.SUM= 000776 G 	HH.FSQ= 000004 G 	HI.CTM= 000040 G 	HI.TYP= 000006 G 	HM.USE= 000010 G
HF.DEL= 000010 G 	HH.GC = 000011 G 	HI.DAT= 000007 G 	HI.VER= 000010 G 	HS.BAD= 000100 G
HF.EXT= 000004 G 	HH.IDO= 000000 G 	HI.EXP= 000046 G 	HM.BN = 000007 G 	HS.CON= 000200 G
HF.RAT= 000001 G 	HH.LEV= 000006 G 	HI.NAM= 000000 G 	HM.CN = 000006 G 	HS.MDL= 000200 G
HF.RDV= 000001 G 	HH.MAP= 000001 G 	HI.NA2= 000002 G 	HM.EFN= 000002 G 	HS.PHL= 000100 G
HF.WRV= 000002 G 	HH.PC = 000010 G 	HI.NA3= 000004 G 	HM.ESN= 000004 G 	HS.TMP= 000040 G
HH.CH = 000014 G 	HH.UAL= 000040 G 	HI.RDT= 000014 G 	HM.ESQ= 000000 G 	R$$DPB= 000001
HH.CHS= 000015 G 	HH.UAT= 000016 G 	HI.REV= 000012 G 	HM.MAX= 000011 G 	R$$DYM= 000001
HH.CHU= 000014 G 	HH.UI = 000010 G 	HI.RTM= 000023 G 	HM.PNT= 000012 G 	R$$EIS= 000000
HH.FNU= 000002 G 	HI.CDT= 000031 G 	HI.TIM= 000006 G 	HM.RVN= 000001 G 	R$$11M= 000001
HH.FP = 000012 G

. ABS.	000000	   000
      	000000	   001
ERRORS DETECTED:  0

VIRTUAL MEMORY USED:  2632 WORDS  ( 11 PAGES)
DYNAMIC MEMORY:  3566 WORDS  ( 13 PAGES)
ELAPSED TIME:  00:00:08
[43,10]HDRSYM,[43,20]HDRSYM/-SP/CR=[43,30]PIPMAC,HDRSYM
HDRSYM     CREATED BY  MACRO  ON 27-FEB-85 AT 12:32	PAGE 1

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

HD.SUM	= 000776  G	#7-94      
HF.DEL	= 000010  G	#7-38      
HF.EXT	= 000004  G	#7-37      
HF.RAT	= 000001  G	#7-39      
HF.RDV	= 000001  G	#7-35      
HF.WRV	= 000002  G	#7-36      
HH.CH 	= 000014  G	#7-40       7-41       7-45      
HH.CHS	= 000015  G	#7-45      
HH.CHU	= 000014  G	#7-41      
HH.FNU	= 000002  G	#7-28      
HH.FP 	= 000012  G	#7-34      
HH.FSQ	= 000004  G	#7-29      
HH.GC 	= 000011  G	#7-33      
HH.IDO	= 000000  G	#7-26      
HH.LEV	= 000006  G	#7-30      
HH.MAP	= 000001  G	#7-27      
HH.PC 	= 000010  G	#7-32      
HH.UAL	= 000040  G	#7-49      
HH.UAT	= 000016  G	#7-48      
HH.UI 	= 000010  G	#7-31       7-32       7-33      
HI.CDT	= 000031  G	#7-61      
HI.CTM	= 000040  G	#7-62      
HI.DAT	= 000007  G	#7-64      
HI.EXP	= 000046  G	#7-63      
HI.NAM	= 000000  G	#7-53      
HI.NA2	= 000002  G	#7-54      
HI.NA3	= 000004  G	#7-55      
HI.RDT	= 000014  G	#7-59      
HI.REV	= 000012  G	#7-58      
HI.RTM	= 000023  G	#7-60      
HI.TIM	= 000006  G	#7-65      
HI.TYP	= 000006  G	#7-56      
HI.VER	= 000010  G	#7-57      
HM.BN 	= 000007  G	#7-74      
HM.CN 	= 000006  G	#7-73      
HM.EFN	= 000002  G	#7-71      
HM.ESN	= 000004  G	#7-72      
HM.ESQ	= 000000  G	#7-69      
HM.MAX	= 000011  G	#7-76      
HM.PNT	= 000012  G	#7-77      
HM.RVN	= 000001  G	#7-70      
HM.USE	= 000010  G	#7-75      
HS.BAD	= 000100  G	#7-47      
HS.CON	= 000200  G	#7-42      
HS.MDL	= 000200  G	#7-46      
HS.PHL	= 000100  G	#7-43      
HS.TMP	= 000040  G	#7-44      
R$$DPB	= 000001	#1-27      
R$$DYM	= 000001	#1-29      
R$$EIS	= 000000	#1-28       1-38      
R$$11M	= 000001	#1-25       1-26      
SYS40$	= ******	 1-67      
HDRSYM     CREATED BY  MACRO  ON 27-FEB-85 AT 12:32	PAGE 2

MACRO CROSS REFERENCE                                   CREF         

MACRO NAME	REFERENCES

ASH   		#1-64      
ASHC  		#1-64      
DIV   		#1-64      
ERRINI		#4-307     
ERROUT		#3-215     
ERROUX		#3-222     
ERROU1		#3-225     
ERRP  		#3-247     
ERRPX 		#3-253     
ERRP1 		#3-256     
ERR1  		#3-273     
FLDSOF		#5-382     
IDENT 		#5-339     
IDENT1		#5-347     
IDTITL		#5-356     
ILLOP 		#1-52      #1-64       1-64      
IMPURE		#1-75      
MARK  		#1-64      
MSG   		#2-124     
MSGZ  		#2-129     
MSG1  		#2-133     
MUL   		#1-64      
NOEIS$		#1-39       1-64      
PURE. 		#1-84      
PURE.D		#1-102     
PURE.I		#1-98      
RTT   		#1-64      
SOB   		#1-64      
SXT   		#1-64      
XOR   		#1-64      
IOCSI M0201, INVOKE CSI$2	MACRO M1113  27-FEB-85 12:32
TABLE OF CONTENTS

     7-    1	**** IOCSI VERSION M0201 ****
PIPMAC - MACROS FOR PIP, ETC.	MACRO M1113  27-FEB-85 12:32  PAGE 6


    397
IOCSI M0201, INVOKE CSI$2	MACRO M1113  27-FEB-85 12:32  PAGE 7


      1						.TITLE	IOCSI M0201, INVOKE CSI$2
						.SBTTL	**** IOCSI VERSION M0201 ****
						.IDENT	/M0201/
      2					; ALTERED TUESDAY 19-JUNE-73 11:10
      3					;
      4					; COPYRIGHT 1975, 1985, DIGITAL EQUIPMENT CORP., MAYNARD MASS.
      5					; COPYRIGHT 1974, DIGITAL EQUIPMENT CORP., MAYNARD MASS.
      6
      7					;			ALL RIGHTS RESERVED
      8					;
      9					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
     10					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
     11					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
     12					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
     13
     14					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
     15					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
     16					; EQUIPMENT CORPORATION.
     17
     18					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY
     19					; OF ITS SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
     20					;
     21					; PETER H. LIPMAN 7-MAY-73
     22					;
     23						.MCALL	CALL,RETURN,CSI$,CSI$2
     24					;
     25	000000					CSI$
     26	000000					FLDSOF			;DEFINE THE CSI FILE DESCRIPTOR OFFSETS
     27					;
     28		000040 				CS.SWF==40		;CSI STATUS FLAG, SWITCHES FOUND
     29					;
     30	000000					IMPURE
     31	000000				FILID::	.BLKW	3
     32					;
     33	000006					PURE.I
     34					;+
     35					; GET THE NEXT INPUT OR OUTPUT SPECIFIER FROM THE COMMAND STRING
     36					; CALLING SEQUENCE:
     37					;	JSR	PC,OUTCSI	;GET NEXT OUTPUT SPEC
     38					;	JSR	PC,INCSI	;GET NEXT INPUT SPEC
     39					; INPUTS:
     40					;	R1=ADDRESS OF 5 WORD BLOCK TO PUT  FILE AND DEVICE
     41					;		DESIGNATORS AND FLAGS WORD (WORD 5)
     42					; OUTPUTS:
     43					;	C=0 FOR SUCCESS, C=1 FOR FAILURE OF CSI$2
     44					;	ALL REGISTERS PRESERVED
     45					; OPERATION:
     46					;	CALLS CSI$2 AND MOVES THE FILE AND DEVICE DESIGNATOR TO THE
     47					; BLOCK SPECIFIED IN R1 AND THEN MOVES THE FLAGS BYTE TO THE 5TH
     48					; WORD.  AN ADDITIONAL FLAG IS DEFINED AND PUT IN THE FLAGS WORD.
     49					; IT IS THE SWITCH PRESENT FLAG (CS.SWF).  A NULL SPECIFIER IS
     50					; ONE WHICH HAS NO FILE NAME, NO DEVICE NAME, AND NO SWITCHES
     51					;
     52					;-
     53	000000	012746 	000002 		OUTCSI::MOV	#CS.OUT,-(SP)
     54	000004	000402 				BR	IOCSI
     55	000006	012746 	000001 		INCSI::	MOV	#CS.INP,-(SP)
IOCSI M0201, INVOKE CSI$2	MACRO M1113  27-FEB-85 12:32  PAGE 7-1
**** IOCSI VERSION M0201 ****

     56	000012	112667 	000000G		IOCSI:	MOVB	(SP)+,CSIBLK+C.TYPR
     57	000016	010046 				MOV	R0,-(SP)
     58	000020	005067 	000000'			CLR	FILID
     59	000024	005067 	000002'			CLR	FILID+2
     60	000030	005067 	000004'			CLR	FILID+4
     61	000034					CSI$2	#CSIBLK,,#CSISWT
     62	000052	103445 				BCS	10$		;ERROR IF BAD SWITCHES
     63	000054	116061 	000001 	000014 		MOVB	C.STAT(R0),N.SPEC(R1)
     64	000062	005760 	000024 			TST	C.MKW1(R0)	;ANY SWITCHES?
     65	000066	001403 				BEQ	5$
     66	000070	152761 	000040 	000014 		BISB	#CS.SWF,N.SPEC(R1) ;NOTE THAT SWITCHES WERE FOUND
     67	000076	016061 	000016 	000010 	5$:	MOV	C.FILD(R0),N.FNMD(R1)
     68	000104	016061 	000020 	000012 		MOV	C.FILD+2(R0),N.FNMD+2(R1)
     69	000112	016061 	000012 	000004 		MOV	C.DIRD(R0),N.DIRD(R1)
     70	000120	016061 	000014 	000006 		MOV	C.DIRD+2(R0),N.DIRD+2(R1)
     71	000126	016061 	000006 	000000 		MOV	C.DEVD(R0),N.DEVD(R1)
     72	000134	016061 	000010 	000002 		MOV	C.DEVD+2(R0),N.DEVD+2(R1)
     73	000142	016761 	000000'	000016 		MOV	FILID,N.FLID(R1) ;MOVE FILE ID
     74	000150	016761 	000002'	000020 		MOV	FILID+2,N.FLID+2(R1)
     75	000156	016761 	000004'	000022 		MOV	FILID+4,N.FLID+4(R1)
     76	000164	000241 				CLC
     77	000166	012600 			10$:	MOV	(SP)+,R0
     78	000170					RETURN
     79					;
     80					;
     81		000001 				.END
IOCSI M0201, INVOKE CSI$2	MACRO M1113  27-FEB-85 12:32  PAGE 7-2
SYMBOL TABLE

CSIBLK= ****** GX	CS.OUT= 000002   	C.MKW1= 000024   	IOCSI   000012R     003	R$$DPB= 000001
CSISWT= ****** GX	CS.SWF= 000040 G 	C.MKW2= 000026   	N.DEVD= 000000   	R$$DYM= 000001
CS.DIF= 000002   	CS.WLD= 000010   	C.SIZE= 000054   	N.DIRD= 000004   	R$$EIS= 000000
CS.DVF= 000004   	C.CMLD= 000002   	C.STAT= 000001   	N.FLID= 000016   	R$$11M= 000001
CS.EQU= 000040   	C.DEVD= 000006   	C.SWAD= 000022   	N.FNMD= 000010   	S.APPD= 000010
CS.INP= 000001   	C.DIRD= 000012   	C.TYPR= 000000   	N.SPEC= 000014   	S.FIDS= 000014
CS.MOR= 000020   	C.DSDS= 000006   	FILID   000000RG    002	OUTCSI  000000RG    003	.CSI2 = ****** G
CS.NMF= 000001   	C.FILD= 000016   	INCSI   000006RG    003	PAR$$$= 000027

. ABS.	000000	   000
      	000000	   001
IMPURE	000006	   002
PURE$I	000172	   003
ERRORS DETECTED:  0

VIRTUAL MEMORY USED:  3005 WORDS  ( 12 PAGES)
DYNAMIC MEMORY:  3566 WORDS  ( 13 PAGES)
ELAPSED TIME:  00:00:09
[43,10]IOCSI,[43,20]IOCSI/-SP/CR=[43,30]PIPMAC,IOCSI
IOCSI      CREATED BY  MACRO  ON 27-FEB-85 AT 12:32	PAGE 1

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

CSIBLK	= ******  GX	*7-56       7-61       7-61      
CSISWT	= ******  GX	 7-61      
CS.INP	= 000001	 7-55      
CS.OUT	= 000002	 7-53      
CS.SWF	= 000040  G	#7-28       7-66      
C.DEVD	= 000006	 7-71       7-72      
C.DIRD	= 000012	 7-69       7-70      
C.FILD	= 000016	 7-67       7-68      
C.MKW1	= 000024	 7-64      
C.SIZE	= 000054	 7-61      
C.STAT	= 000001	 7-63      
C.SWAD	= 000022	*7-61      
C.TYPR	= 000000	*7-56      
FILID 	  000000 RG	#7-31      *7-58      *7-59      *7-60       7-73       7-74       7-75      
INCSI 	  000006 RG	#7-55      
IOCSI 	  000012 R	 7-54      #7-56      
N.DEVD	= 000000	#7-26      *7-71      *7-72      
N.DIRD	= 000004	#7-26      *7-69      *7-70      
N.FLID	= 000016	#7-26      *7-73      *7-74      *7-75      
N.FNMD	= 000010	#7-26      *7-67      *7-68      
N.SPEC	= 000014	#7-26      *7-63      *7-66      
OUTCSI	  000000 RG	#7-53      
PAR$$$	= 000027	#7-61       7-61      
RONLY$	= ******	 7-33       7-33      
R$$DPB	= 000001	#1-27      
R$$DYM	= 000001	#1-29      
R$$EIS	= 000000	#1-28       1-38      
R$$11M	= 000001	#1-25       1-26       7-1       
SYS40$	= ******	 1-67       7-30       7-30       7-33       7-33      
S.APPD	= 000010	#7-26      
S.FIDS	= 000014	#7-26      
.CSI2 	= ******  G	 7-61       7-61      
IOCSI      CREATED BY  MACRO  ON 27-FEB-85 AT 12:32	PAGE 2

MACRO CROSS REFERENCE                                   CREF         

MACRO NAME	REFERENCES

ASH   		#1-64      
ASHC  		#1-64      
CALL  		#7-23      
CSI$  		#7-23       7-25      #7-61      
CSI$2 		#7-23       7-61      
DIV   		#1-64      
ERRINI		#4-307     
ERROUT		#3-215     
ERROUX		#3-222     
ERROU1		#3-225     
ERRP  		#3-247     
ERRPX 		#3-253     
ERRP1 		#3-256     
ERR1  		#3-273     
FLDSOF		#5-382      7-26      #7-26      
IDENT 		#5-339     #7-1       
IDENT1		#5-347      7-1       
IDTITL		#5-356     
ILLOP 		#1-52      #1-64       1-64      
IMPURE		#1-75      #7-30      
LDR0$ 		#7-61       7-61      
MARK  		#1-64      
MSG   		#2-124     
MSGZ  		#2-129     
MSG1  		#2-133     
MUL   		#1-64      
NOEIS$		#1-39       1-64      
PURE. 		#1-84       7-33      
PURE.D		#1-102     
PURE.I		#1-98       7-33      
RETURN		#7-23      #7-78      
RTT   		#1-64      
SOB   		#1-64      
SXT   		#1-64      
XOR   		#1-64      
MVSTRG M0001, MOVE A STRING	MACRO M1113  27-FEB-85 12:32
TABLE OF CONTENTS

     7-    1	**** MVSTRG VERSION M0001 ****
PIPMAC - MACROS FOR PIP, ETC.	MACRO M1113  27-FEB-85 12:32  PAGE 6


    397
MVSTRG M0001, MOVE A STRING	MACRO M1113  27-FEB-85 12:32  PAGE 7


      1						.TITLE	MVSTRG M0001, MOVE A STRING
						.SBTTL	**** MVSTRG VERSION M0001 ****
						.IDENT	/M0001/
      2					;
      3					; COPYRIGHT 1975, 1985, DIGITAL EQUIPMENT CORP., MAYNARD MASS.
      4					; COPYRIGHT 1974, DIGITAL EQUIPMENT CORP., MAYNARD MASS.
      5
      6					;			ALL RIGHTS RESERVED
      7					;
      8					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
      9					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
     10					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
     11					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
     12
     13					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
     14					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
     15					; EQUIPMENT CORPORATION.
     16
     17					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY
     18					; OF ITS SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
     19					;
     20					; PETER H. LIPMAN	10-MAY-74
     21
     22
     23						.MCALL	RETURN
     24
     25					;+
     26					; MOVE STRING TO RECORD BUFFER
     27					; CALLING SEQUENCE:
     28					;
     29					;	JSR	PC,MVSTRG
     30					;
     31					; INPUTS:
     32					;
     33					;	R1=ADDRESS TO MOVE STRING TO
     34					;	R2=SIZE OF STRING TO MOVE
     35					;	R3=ADDRESS OF SOURCE STRING
     36					;
     37					; OUTPUTS:
     38					;
     39					;	R1 UPDATED
     40					;	R2,R3 ALTERED
     41					;	R0,R4,R5 PRESERVED
     42					;-
     43	000000	005702 			MVSTRG::TST	R2
     44	000002	001403 				BEQ	20$		;BRANCH IF NULL STRING
     45	000004	112321 			10$:	MOVB	(R3)+,(R1)+	;
     46	000006					SOB	R2,10$
     47	000012				20$:	RETURN
     48					;
     49					;
     50		000001 				.END
MVSTRG M0001, MOVE A STRING	MACRO M1113  27-FEB-85 12:32  PAGE 7-1
SYMBOL TABLE

MVSTRG  000000RG 	R$$DPB= 000001   	R$$DYM= 000001   	R$$EIS= 000000   	R$$11M= 000001

. ABS.	000000	   000
      	000014	   001
ERRORS DETECTED:  0

VIRTUAL MEMORY USED:  2439 WORDS  ( 10 PAGES)
DYNAMIC MEMORY:  3566 WORDS  ( 13 PAGES)
ELAPSED TIME:  00:00:07
[43,10]MVSTRG,[43,20]MVSTRG/-SP/CR=[43,30]PIPMAC,MVSTRG
MVSTRG     CREATED BY  MACRO  ON 27-FEB-85 AT 12:32	PAGE 1

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

MVSTRG	  000000 RG	#7-43      
R$$DPB	= 000001	#1-27      
R$$DYM	= 000001	#1-29      
R$$EIS	= 000000	#1-28       1-38      
R$$11M	= 000001	#1-25       1-26       7-1       
SYS40$	= ******	 1-67      
MVSTRG     CREATED BY  MACRO  ON 27-FEB-85 AT 12:32	PAGE 2

MACRO CROSS REFERENCE                                   CREF         

MACRO NAME	REFERENCES

ASH   		#1-64      
ASHC  		#1-64      
DIV   		#1-64      
ERRINI		#4-307     
ERROUT		#3-215     
ERROUX		#3-222     
ERROU1		#3-225     
ERRP  		#3-247     
ERRPX 		#3-253     
ERRP1 		#3-256     
ERR1  		#3-273     
FLDSOF		#5-382     
IDENT 		#5-339     #7-1       
IDENT1		#5-347      7-1       
IDTITL		#5-356     
ILLOP 		#1-52      #1-64       1-64      
IMPURE		#1-75      
MARK  		#1-64      
MSG   		#2-124     
MSGZ  		#2-129     
MSG1  		#2-133     
MUL   		#1-64      
NOEIS$		#1-39       1-64      
PURE. 		#1-84      
PURE.D		#1-102     
PURE.I		#1-98      
RETURN		#7-23      #7-47      
RTT   		#1-64      
SOB   		#1-64      #7-46      
SXT   		#1-64      
XOR   		#1-64      
PIP M1321, RSX FILE UTILITY	MACRO M1113  27-FEB-85 12:23
TABLE OF CONTENTS

     7-    1	**** PIP VERSION M1321 ****
     8-   47	ASSEMBLY PARAMETERS
     9-   91	READ/WRITE DATA AND WORKING STORAGE
    10-  187	READ ONLY TABLES
PIPMAC - MACROS FOR PIP, ETC.	MACRO M1113  27-FEB-85 12:23  PAGE 6


    397
PIP M1321, RSX FILE UTILITY	MACRO M1113  27-FEB-85 12:23  PAGE 7


      1						.TITLE	PIP M1321, RSX FILE UTILITY
						.SBTTL	**** PIP VERSION M1321 ****
						.IDENT	/M1321/
      2					; ALTERED:
      3					; ANDREW C. GOLDSTEIN  17 JUL 75  16:35
      4					;
      5					; COPYRIGHT 1975, 1985, DIGITAL EQUIPMENT CORP., MAYNARD MASS.
      6					; COPYRIGHT 1974, DIGITAL EQUIPMENT CORP., MAYNARD MASS.
      7
      8					;			ALL RIGHTS RESERVED
      9					;
     10					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
     11					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
     12					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
     13					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
     14
     15					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
     16					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
     17					; EQUIPMENT CORPORATION.
     18
     19					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY
     20					; OF ITS SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
     21					;
     22					; PETER H. LIPMAN 4-JAN-73;
     23					;
     24					; MACROS
     25					;
     26					; INVOKE FCS MACROS
     27					;
     28	000000					FLDSOF			;DEFINE THE FILE DESCRIPTOR OFFSETS
     29						.MCALL	FDOFF$,CSI$,GCMLD$,FCSBT$
     30	000000					FDOFF$	DEF$L
     31	000000					CSI$			;DEFINE THE CSI BLOCK OFFSETS
     32	000000					GCMLD$			;DEFINE THE GET COMMAND LINE OFFSETS
     33	000000					FCSBT$	DEF$L
     34					;
     35						.MCALL	CSI$SV,CSI$SW,CSI$ND,GCMLB$
     36						.MCALL	FDAT$A,FDBDF$,FDOP$A,FDRC$A,FSRSZ$,NMBLK$
     37					;
     38					; DEFINE THE COMMAND BITS, THE FIRST ARGUMENT IS THE ROUTINE
     39					; ADDRESS TO JMP OFF TO.  THE SECOND IS THE BIT NAME
     40					; BITVAL IS ASSUMED SET UP TO THE FIRST BIT NUMBER TO BE USED.
     41						.MACRO	CMDBIT	ROUTIN,BITNAM
     42						.WORD	ROUTIN
     43						BITNAM==BITVAL
     44						BITVAL=BITVAL*2
     45						.ENDM	CMDBIT
PIP M1321, RSX FILE UTILITY	MACRO M1113  27-FEB-85 12:23  PAGE 8
ASSEMBLY PARAMETERS

     47						.SBTTL	ASSEMBLY PARAMETERS
     48					;
     49		000003 				INLUN==3		;LUN FOR INPUT FILE
     50		000004 				OUTLUN==4		;LUN FOR OUTPUT FILE
     51		000002 				CMOLUN==2		;LUN FOR COMMAND OUTPUT
     52		000001 				FNAEFN==1		;EVENT FLAG USED FOR FIND IN DIR LIST
     53		000002 				RATEFN==2		;EVENT FLAG USED FOR READ ATTRIBUTES (/LI)
     54		000003 				RWEFN==3		;EVENT FLAG FOR READ WRITE MODE COPY
     55		000011 				DFDRSZ==9.		;SIZE OF LARGEST DEFAULT DIR STRING
     56		000011 				TAB=='I-100		;TAB CHARACTER
     57		054523 				SYDEV=="SY		;SYSTEM DEVICE
     58		000000 				SYUNIT==0		;SYSTEM UNIT NO.
     59		000054 				S.WUIC==S.FNB+14.	;SIZE OF WILD UIC SCRATCH STORAGE
     60		001400 				NB.SDI==NB.SD1!NB.SD2	;WILD CARD DIRECTORY
     61		001470 				NB.SFL==NB.SVR!NB.STP!NB.SNM!NB.SDI ;* IN NAME, TYPE, VERS, DIR
     62		000070 				NB.SFN==NB.SNM!NB.STP!NB.SVR ;* IN NAME, TYPE, VER
     63
     64
     65					;
     66					; COPY CONTROL WORD BITS- LOCAL SWITCHES ON EACH FILE SPECIFIER
     67		000004 				CNTGBT==4		;SET TO FORCE CONTIGUOUS OUTPUT FILE
     68		000010 				MFDBIT==10		;OPERATE ON THE MFD
     69					; ***** THE FOLLOWING FOUR VALUES MUST REMAIN IN THEIR CURRENT ORDER
     70		000020 				WOPROB==20		;WORLD PROTECTION SPECIFIED
     71		000040 				GRPROB==40		;GROUP PROTECTION SPECIFIED
     72		000100 				OWPROB==100		;OWNER PROTECTION SPECIFED
     73		000200 				SYPROB==200		;SYSTEM PROTECTION SPECIFIED
     74					; ***** THE PRECEEDING FOUR VALUES MUST REMAIN IN THEIR CURRENT ORDER
     75		001000 				FIDBIT==1000		;FILE ID MANUALLY SPECIFIED
     76		002000 				BLKBIT==2000		;SIZE OF OUTPUT FILE SPECIFIED TO COPY
     77		004000 				NTCNTG==4000		;NOT CONTIGUOUS CONTROL BIT (COPY)
     78		010000 				NVERBT==10000		;SET IF NOT PRESERVING VERSION ON COPY
     79		020000 				SPSDBT==20000		;SET IF SUPERSEDE FILE ON COPY
     80		040000 				FOWNBT==40000		;SET TO FORCE FILE OWNER TO OUTPUT UIC
     81		100000 				FRSTIM==100000		;FIRST TIME THROUGH A GIVEN OPERATION
     82					;
     83					; DEFINITIONS OF OFFSETS USED IN  FILE HEADER
     84		001001 				HA.UI==2*400+1		;WRITE USER ATTRIBUTES
     85		001002 				HA.FP==2*400+2		;SET FILE PROTECTION ATTRIBUTE CODE
     86		000403 				HA.CHU==1*400+3		;SET FILE CHARACTERISTICS ATTRIBUTE CODE
     87									;FOR WRITING THE USER CHARACTERISTICS
     88		000012 				S.STBK==10.		;SIZE OF STATISTICS BLOCK IN BYTES
     89		004000 				ILCLSW==NTCNTG		;INIT LOCAL SWITCHES TO THIS
PIP M1321, RSX FILE UTILITY	MACRO M1113  27-FEB-85 12:23  PAGE 9
READ/WRITE DATA AND WORKING STORAGE

     91						.SBTTL	READ/WRITE DATA AND WORKING STORAGE
     92	000000					.PSECT
     93	000000					FSRSZ$	0		;FILE STORAGE REGION IS DYNAMICALLY SET UP
     94									;GET CMD LINE NOW CLOSES FILE EACH TIME
     95	000000					IMPURE
     96					;
     97					;
     98	000000				FDBOUT::FDBDF$			;ALLOCATE SPACE FOR THE OUTPUT FDB
     99	000140					FDOP$A	OUTLUN,OFNPT	;LUN, FNPT
    100
    101	000140				FDBIN::	FDBDF$
    102	000300					FDRC$A	FD.PLC		;PARTIAL LOCATE MODE
    103	000300					FDOP$A	INLUN,IFNPT	;LUN, FNPT
    104
    105	000300				STBLK::	.BLKB	S.STBK
    106	000312				IOSTBK::.BLKW	2		;I/O STATUS BLOCK FOR READ/WRITE MD COPY
    107	000316				FNASTS::.BLKW	2		;I/O STATUS BLOCK FOR FIND QI/O (/LI)
    108					;
    109					; ***** DO NOT SEPARATE THE FOLLOWING LINES
    110					;
    111	000322				CODEV::	.BLKW	1		;SAVED CMD OUTPUT DEVICE NAME
    112	000324				COUNIT::.BLKW	1		;CMD OUTPUT UNIT
    113	000326				LINBUF::.BLKB	144.		;LINE BUFFER USED BY DIR LIST
    114									;UP TO 2 TTY LINES LONG
    115		000220 				LINBFS==.-LINBUF
    116					;
    117					; ***** DO NOT SEPARATE THE PRECEEDING LINES
    118					;
    119
    120					; ***** DO NOT SEPARATE THE FOLLOWING LINES
    121	000546				IFNPT::	.BLKB	S.FIDS+S.APPD	;INPUT FILE AND DEVICE DESIGNATORS
    122		000562'				INSPEC==IFNPT+N.SPEC
    123	000572				IWUIC::	.BLKB	S.WUIC		;SCRATCH STORAGE FOR WILD UIC LOGIC
    124	000646				OFNPT::	.BLKB	S.FIDS+S.APPD	;OUTPUT FILE AND DEVICE DESIGNATORS
    125		000662'				OUSPEC==OFNPT+N.SPEC
    126	000672				OWUIC::	.BLKB	S.WUIC
    127					; ***** DO NOT SEPARATE THE PRECEEDING LINES
    128
    129	000746				SYDFLT::NMBLK$			;DEFAULT DEVICE = SYSTEM DEVICE
    130	001004				NAMBLK::NMBLK$			;SCRATCH NAME BLOCK
    131	001042				NMBLK1::NMBLK$
    132					;
    133	001100				GCMLCB::GCMLB$	4,PIP		;CONTROL BLOCK FOR GET COMMAND LINE
    134									;UP TO 4 LEVELS OF INDIRECTION
    135	001566				CSIBLK::.BLKB	C.SIZE		;CONTROL BLK FOR CMD STRING INTERPRETER
    136					;
    137					; OTHER SCRATCH LOCATIONS
    138	001642				CMDWRD::.BLKW	2		;COMMAND BITS ARE HERE
    139	001646				CPYCTL::.BLKW	1		;CONTROLLING BITS ARE HERE
    140	001650				SAVSP::	.BLKW	1		;SAVE THE STACK POINTER
    141	001652				VERSAV::.BLKW	1		;SAVE VERSION NUMBER FROM PARSE
    142	001654				INRACC::.BLKW	1		;F.RACC FOR THE INPUT FDB
    143	001656				OURACC::.BLKW	1		;F.RACC FOR THE OUTPUT FDB
    144	001660				DEFDIR::.BLKB	DFDRSZ		;DEFAULT DIRECTORY STRING STORED HERE
    145						.EVEN
    146					;
    147					; ***** DO NOT SEPARATE OR REORDER THE FOLLOWING
PIP M1321, RSX FILE UTILITY	MACRO M1113  27-FEB-85 12:23  PAGE 9-1
READ/WRITE DATA AND WORKING STORAGE

    148	001672				WORPRO::.BLKB	4
    149	001676				GROPRO::.BLKB	4
    150	001702				OWNPRO::.BLKB	4
    151	001706				SYSPRO::.BLKB	4
    152	001712	177777 			PROWRD::.WORD	-1
    153					; ***** DO NOT SEPARATE OR REORDER THE PRECEEDING LINES
    154					;
    155	001714	000001 			PURGCT::.WORD	1		;NO. OF VERSIONS TO PRESERVE
    156	001716	000120 			LPTLEN::.WORD	80.		;DEFAULT DIRECTORY LISTING WIDTH
    157	001720				BLKCNT::.BLKW	1		;NO. OF BLOCKS TO ALLOCATE TO OUT FILE
    158	001722				.LCLSW::.BLKW	1		;INITIAL VALUE FOR LOCAL SWITCHES
    159	001724				.OULCL::.BLKW	1		;LOCAL SWITCHES ON 1ST OUTPUT SPEC
    160	001726	054523 			.DEFDV::.WORD	SYDEV		;DEFAULT DEVICE
    161	001730	000000 			.DEFUN::.WORD	SYUNIT		;DEFAULT UNIT
    162	001732				.EXTSZ::.BLKW	1		;SIZE OF INPUT FILE (+ CONTIG, - = NOT)
    163	001734				.FOWNR::.BLKW	1		;UIC FOR THE FILE OWNER IF /FO SWITCH
    164	001736	000000 	000000 		.DYBLK::.LIMIT			;BLOCKS OF DYNAMIC MEMORY AVAILABLE
    165		001740'				.TOPAD==.DYBLK+2	;ADDRESS OF DYNAMIC MEMORY BUFFER(S)
    166	001742				.DYSIZ::.BLKW	1		;SIZE IN BYTES OF DYNAMIC MEMORY REGION
    167	001744				.DYBUF::.BLKW	1		;ADDRESS OF DYNAMIC BUFFER IN USE
    168	001746				.DYBYT::.BLKW	1		;SIZE IN BYTES OF DYNAMIC BUFFER IN USE
    169					;
    170					; READ ATTRIBUTE CONTROL BLOCK
    171					;
    172						.IF	GT,R$$DPB	;IF NEW DPB FORMATS
    173	001750	   367 	   012 		RATCTL::.BYTE	-9.,S.STBK	;READ ATTRIBUTES - STATISTICS BLOCK
    174	001752	000300'				.WORD	STBLK
    175	001754	   366 	   000 			.BYTE	-10.,0		;FILE HEADER
    176	001756	000000 			.HDRAD::.WORD	0
    177	001760	000000 				.WORD	0		;END OF ATTRIBUTE LIST
    178						.ENDC
    179
    180						.IF	EQ,R$$DYM	;IF NO DYNAMIC MEMORY FACILITY
    181						.PSECT	$$DYB1,D
    182					DYB1::
    183						.PSECT	$$DYB2,D
    184					DYB2::
    185						.ENDC
PIP M1321, RSX FILE UTILITY	MACRO M1113  27-FEB-85 12:23  PAGE 10
READ ONLY TABLES

    187						.SBTTL	READ ONLY TABLES
    188	001762					PURE.D
    189					;
    190					; READ ONLY TABLES AND CONTROL BLOCKS
    191					; COMMAND TABLE - FORMAT COMMAND,BIT
    192		000001 				BITVAL=1
    193	000036				CMDTBL::
    194	000036					CMDBIT	DIRLST,LSTBIT	;ON IF LISTING DIRECTORY
    195	000040					CMDBIT	DIRLST,SHTLST	;ON IF LISTING DIRECTORY BRIEF MODE
    196	000042					CMDBIT	DIRLST,EVRYBT	;ON IF LISTING DIRECTORY FULL MODE
    197	000044					CMDBIT	DIRLST,TOTLBT	;ON IF LISTING DIRECTORY TOTAL BLOCKS ONLY
    198	000046					CMDBIT	DELETE,DELBIT	;ON IF DELETING THE OUTPUT FILE(S)
    199	000050					CMDBIT	DELETE,PURGBT	;ON IF PURGING FILES
    200	000052					CMDBIT	REMOVE,RMVBIT	;REMOVE A DIRECTORY ENTRY
    201	000054					CMDBIT	PIPID,IDBIT	;TYPE THE PIP IDENTIFIER
    202	000056					CMDBIT	.SETDF,DFLTBT	;CHANGE DEFAULT DEVICE OR UIC
    203	000060					CMDBIT	UNLOCK,UNLKBT	;UNLOCK A LOCKED FILE
    204	000062					CMDBIT	PROTCT,PROTBT	;SET FILE  PROTECTION
    205					;
    206					; TABLE FOR COMMAND BITS IN SECOND WORD
    207					;
    208		000001 				BITVAL=1
    209	000064				CMDTB2::
    210	000064					CMDBIT	SPOOL,SPLBIT	;SPOOL FOR PRINTING AND DELETE
    211	000066					CMDBIT	RENAME,RNMBIT	;RENAME INPUT FILE TO OUTPUT NAME
    212	000070					CMDBIT	ENTER,ENTRBT	;ENTER A DIRECTORY ENTRY
    213	000072					CMDBIT	COPY,MERGBT	;MERGE COMMAND
    214	000074					CMDBIT	COPY,APPDBT	;APPEND FILES
    215	000076					CMDBIT	COPY,UPDTBT	;UPDATE (REWRITE) FILE
    216	000100					CMDBIT	.FREE,FREEBT	;PRINT FREE SPACE ON VOLUME
    217					;
    218					; COMMAND STRING INTERPRETER SWITCH TABLE
    219	000102				CSISWT::CSI$SW	DI,LSTBIT,CMDWRD,SET,,0 ;DIRECTORY LISTING SWITCH
    220	000112					CSI$SW	LI,LSTBIT,CMDWRD,SET,,0 ;SYNONYM FOR DIR LISTING CMD
    221	000122					CSI$SW	BR,SHTLST,CMDWRD,SET,,0 ;SHORT FORM DIRECTORY LISTING
    222	000132					CSI$SW	FU,EVRYBT,CMDWRD,SET,,FULVAL ;FULL DIRECTORY LISTING
    223	000142					CSI$SW	TB,TOTLBT,CMDWRD,SET,,0 ;LIST DIRECTORY TOTALS ONLY
    224	000152					CSI$SW	DE,DELBIT,CMDWRD,SET,,0 ;DELETE SWITCH
    225	000162					CSI$SW	PU,PURGBT,CMDWRD,SET,,PURGVL ;PURGE ALL BUT NEWEST VERSION
    226	000172					CSI$SW	RM,RMVBIT,CMDWRD,SET,,0 ;REMOVE A DIRECTORY ENTRY
    227	000202					CSI$SW	ID,IDBIT,CMDWRD,SET,,0 ;ID SWITCH - TYPE PIP'S IDENT
    228	000212					CSI$SW	DF,DFLTBT,CMDWRD,SET,,0 ;SET DEFAULT DEVICE OR UIC
    229	000222					CSI$SW	UI,DFLTBT,CMDWRD,SET,,0 ;SET DEFAULT UIC
    230	000232					CSI$SW	UN,UNLKBT,CMDWRD,SET,,0 ;UNLOCK A LOCKED FILE
    231	000242					CSI$SW	PR,PROTBT,CMDWRD,SET,,PRVAL ;SET FILE PROTECTION
    232	000252					CSI$SW	SP,SPLBIT,CMDWRD+2,SET,,0 ;SPOOL THE FILES FOR PRINTING
    233	000262					CSI$SW	RE,RNMBIT,CMDWRD+2,SET,,0 ;RENAME SWITCH
    234	000272					CSI$SW	EN,ENTRBT,CMDWRD+2,SET,,0 ;ENTER A DIRECTORY ENTRY
    235	000302					CSI$SW	ME,MERGBT,CMDWRD+2,SET,,0 ;MERGE INPUT FILES
    236	000312					CSI$SW	AP,APPDBT,CMDWRD+2,SET,,0 ;APPEND COMMAND
    237	000322					CSI$SW	UP,UPDTBT,CMDWRD+2,SET,,0 ;UPDATE (REWRITE) CMD
    238	000332					CSI$SW	FR,FREEBT,CMDWRD+2,SET,,0 ;FREE SPACE ON VOLUME
    239					;
    240					; CPYCTL SWITCHES, MODIFY COMMANDS, LOCAL TO THE SPECIFIER
    241	000342					CSI$SW	CO,CNTGBT!NTCNTG,CPYCTL,SET,NEG,0 ;FORCE CONTIGUOUS COPY
    242	000352					CSI$SW	MF,MFDBIT,CPYCTL,SET,,0 ;LIST THE MFD FOR SPECIFIED DEVICE
    243	000362					CSI$SW	WO,WOPROB,CPYCTL,SET,,WOVAL ;WORLD PROTECTION
PIP M1321, RSX FILE UTILITY	MACRO M1113  27-FEB-85 12:23  PAGE 10-1
READ ONLY TABLES

    244	000372					CSI$SW	GR,GRPROB,CPYCTL,SET,,GRVAL ;GROUP PROTECTION
    245	000402					CSI$SW	OW,OWPROB,CPYCTL,SET,,OWVAL ;OWNER PROTECTION
    246	000412					CSI$SW	SY,SYPROB,CPYCTL,SET,,SYVAL ;SYSTEM PROTECTION
    247	000422					CSI$SW	FI,FIDBIT,CPYCTL,SET,,FIDVAL ;FILE ID SPECIFIED
    248	000432					CSI$SW	BL,BLKBIT,CPYCTL,SET,,BLKVAL ;NO OF BLOCKS TO ALLOCATE
    249	000442					CSI$SW	NV,NVERBT,CPYCTL,SET,,0 ;COPY TO NEW VERSION
    250	000452					CSI$SW	SU,SPSDBT,CPYCTL,SET,,0 ;SUPERSEDE EXISTING FILES ON COPY
    251	000462					CSI$SW	FO,FOWNBT,CPYCTL,SET,,0 ;FORCE FILE OWNER TO OUTPUT UIC
    252	000472					CSI$ND			;END OF SWITCHES
    253					; VALUE TABLES FOR PROTECTION CODES
    254	000474				WOVAL::	CSI$SV	ASCII,WORPRO,4
    255	000500					CSI$ND
    256	000502				GRVAL::	CSI$SV	ASCII,GROPRO,4
    257	000506					CSI$ND
    258	000510				OWVAL::	CSI$SV	ASCII,OWNPRO,4
    259	000514					CSI$ND
    260	000516				SYVAL::	CSI$SV	ASCII,SYSPRO,4
    261	000522					CSI$ND
    262	000524				PRVAL::	CSI$SV	NUMERIC,PROWRD,2
    263	000530					CSI$ND
    264					;
    265					; VALUE TABLE FOR PURGE SWITCH, NO OF VERSIONS TO PRESERVE
    266	000532				PURGVL::CSI$SV	NUMERIC,PURGCT,2
    267	000536					CSI$ND
    268					;
    269					; VALUE TABLE FOR FILE ID SWITCH
    270	000540				FIDVAL::CSI$SV	NUMERIC,FILID,2
    271	000544					CSI$SV	NUMERIC,FILID+2,2
    272	000550					CSI$SV	NUMERIC,FILID+4,2
    273	000554					CSI$ND
    274					;
    275					; VALUE TABLE FOR /FULL DIRECTORY LISTING SWITCH (OUTPUT WIDTH)
    276	000556				FULVAL::CSI$SV	NUMERIC,LPTLEN,2
    277	000562					CSI$ND
    278					;
    279					; VALUE TABLE FOR /BLOCK SWITCH TO COPY (SPECIFY OUTPUT FILE SIZE)
    280	000564				BLKVAL::CSI$SV	NUMERIC,BLKCNT,2
    281	000570					CSI$ND
    282
    283	000572	000000 			SSTTAB::.WORD	0		;ODD ADDRESS TRAP
    284	000574	000000 				.WORD	0		;MEMORY PROTECTION VIOLATION
    285	000576	000000 				.WORD	0		;T BIT OR BPT INSTRUCTION
    286	000600	000000 				.WORD	0		;IOT INSTRUCTION
    287	000602	000000 				.WORD	0		;RESERVED INSTRUCTION
    288	000604	000000 				.WORD	0		;NON RSX EMT
    289	000606	000000G				.WORD	.ERTRP		;TRAP INSTRUCTION
    290
    291		000007 				SSTENT=<.-SSTTAB>/2	;NO. OF SST ENTRIES IN TABLE
    292
    293	000610	000000G			.ABORT::.WORD	.RSTAR		;ERRPX AND ERROUX RETURN BY JMP @ .ABORT
    294
    295	000612					PURE.I
    296	000000	000167 	000000G		START::	JMP	.INIT
    297	000004				CLOSX::
    298	000004	000167 	000000G		AGAIN::	JMP	.RSTAR
    299					;
    300					;
PIP M1321, RSX FILE UTILITY	MACRO M1113  27-FEB-85 12:23  PAGE 10-2
READ ONLY TABLES

    301		000000'				.END	START
PIP M1321, RSX FILE UTILITY	MACRO M1113  27-FEB-85 12:23  PAGE 10-3
SYMBOL TABLE

AGAIN   000004RG    006	FD.CCL= 000002   	F.NRBD= 000024   	NB.DIR= 000100   	R.FIX = 000001
APPDBT= 000020 G 	FD.CR = 000002   	F.NREC= 000030   	NB.NAM= 000004   	R.VAR = 000002
BITVAL= 000200   	FD.DIR= 000010   	F.OVBS= 000030   	NB.SDI= 001400 G 	SAVSP   001650RG    005
BLKBIT= 002000 G 	FD.FTN= 000001   	F.RACC= 000016   	NB.SD1= 000400   	SHTLST= 000002 G
BLKCNT  001720RG    005	FD.INS= 000010   	F.RATT= 000001   	NB.SD2= 001000   	SPLBIT= 000001 G
BLKVAL  000564RG    003	FD.PLC= 000004   	F.RCNM= 000034   	NB.SFL= 001470 G 	SPOOL = ****** GX
CLOSX   000004RG    006	FD.RAH= 000001   	F.RCTL= 000017   	NB.SFN= 000070 G 	SPSDBT= 020000 G
CMDTBL  000036RG    003	FD.RAN= 000002   	F.RSIZ= 000002   	NB.SNM= 000040   	SSTENT= 000007
CMDTB2  000064RG    003	FD.REC= 000001   	F.RTYP= 000000   	NB.STP= 000020   	SSTTAB  000572RG    003
CMDWRD  001642RG    005	FD.RWM= 000001   	F.STBK= 000036   	NB.SVR= 000010   	START   000000RG    006
CMOLUN= 000002 G 	FD.SDI= 000020   	F.UNIT= 000136   	NB.TYP= 000002   	STBLK   000300RG    005
CNTGBT= 000004 G 	FD.SQD= 000040   	F.URBD= 000020   	NB.VER= 000001   	SYDEV = 054523 G
CODEV   000322RG    005	FD.TTY= 000004   	F.VBN = 000064   	NMBLK1  001042RG    005	SYDFLT  000746RG    005
COPY  = ****** GX	FD.WBH= 000002   	F.VBSZ= 000060   	NTCNTG= 004000 G 	SYPROB= 000200 G
COUNIT  000324RG    005	FIDBIT= 001000 G 	GCMLCB  001100RG    005	NVERBT= 010000 G 	SYSPRO  001706RG    005
CPYCTL  001646RG    005	FIDVAL  000540RG    003	GE.BIF= 177775   	N.DEVD= 000000   	SYUNIT= 000000 G
CSIBLK  001566RG    005	FILID = ****** GX	GE.CLO= 000004   	N.DID = 000024   	SYVAL   000516RG    003
CSISWT  000102RG    003	FNAEFN= 000001 G 	GE.COM= 000001   	N.DIRD= 000004   	S.APPD= 000010
CS.DIF= 000002   	FNASTS  000316RG    005	GE.EOF= 177766   	N.DVNM= 000032   	S.BFHD= 000020
CS.DVF= 000004   	FOWNBT= 040000 G 	GE.IND= 000002   	N.FID = 000000   	S.FATT= 000016
CS.EQU= 000040   	FO.APD= 000106   	GE.IOR= 177777   	N.FLID= 000016   	S.FDB = 000140
CS.INP= 000001   	FO.MFY= 000002   	GE.LC = 000010   	N.FNAM= 000006   	S.FIDS= 000014
CS.MOR= 000020   	FO.RD = 000001   	GE.MDE= 177774   	N.FNMD= 000010   	S.FNAM= 000006
CS.NMF= 000001   	FO.UPD= 000006   	GE.OPR= 177776   	N.FTYP= 000014   	S.FNB = 000036
CS.OUT= 000002   	FO.WRT= 000016   	GROPRO  001676RG    005	N.FVER= 000016   	S.FNBW= 000017
CS.WLD= 000010   	FREEBT= 000100 G 	GRPROB= 000040 G 	N.NEXT= 000022   	S.FNTY= 000004
C.CMLD= 000002   	FRSTIM= 100000 G 	GRVAL   000502RG    003	N.SPEC= 000014   	S.FTYP= 000002
C.DEVD= 000006   	FULVAL  000556RG    003	G.CMLD= 000146   	N.STAT= 000020   	S.NFEN= 000020
C.DIRD= 000012   	F.ALOC= 000040   	G.DPRM= 000160   	N.UNIT= 000034   	S.STBK= 000012 G
C.DSDS= 000006   	F.BBFS= 000062   	G.ERR = 000140   	OFNPT   000646RG    005	S.WUIC= 000054 G
C.FILD= 000016   	F.BDB = 000070   	G.ISIZ= 000020   	OURACC  001656RG    005	TAB   = 000011 G
C.MKW1= 000024   	F.BGBC= 000057   	G.LPDL= 000120   	OUSPEC= 000662RG    005	TOTLBT= 000010 G
C.MKW2= 000026   	F.BKDN= 000026   	G.MODE= 000141   	OUTLUN= 000004 G 	UNLKBT= 001000 G
C.SIZE= 000054   	F.BKDS= 000020   	G.PSDS= 000142   	OWNPRO  001702RG    005	UNLOCK= ****** GX
C.STAT= 000001   	F.BKEF= 000050   	HA.CHU= 000403 G 	OWPROB= 000100 G 	UPDTBT= 000040 G
C.SWAD= 000022   	F.BKP1= 000051   	HA.FP = 001002 G 	OWUIC   000672RG    005	VERSAV  001652RG    005
C.TYPR= 000000   	F.BKST= 000024   	HA.UI = 001001 G 	OWVAL   000510RG    003	WOPROB= 000020 G
DEFDIR  001660RG    005	F.BKVB= 000064   	IDBIT = 000200 G 	PIPID = ****** GX	WORPRO  001672RG    005
DELBIT= 000020 G 	F.CNTG= 000034   	IDNTMG= 000000RG    002	PROTBT= 002000 G 	WOVAL   000474RG    003
DELETE= ****** GX	F.DFNB= 000046   	IDNTSZ= 000021 G 	PROTCT= ****** GX	$$    = 000000
DFDRSZ= 000011 G 	F.DSPT= 000044   	IFNPT   000546RG    005	PROWRD  001712RG    005	$$$   = 001260R     005
DFLTBT= 000400 G 	F.DVNM= 000134   	ILCLSW= 004000 G 	PRVAL   000524RG    003	.ABORT  000610RG    003
DIRLST= ****** GX	F.EFBK= 000010   	INLUN = 000003 G 	PURGBT= 000040 G 	.DEFDV  001726RG    005
ENTER = ****** GX	F.EFN = 000050   	INRACC  001654RG    005	PURGCT  001714RG    005	.DEFUN  001730RG    005
ENTRBT= 000004 G 	F.EOBB= 000032   	INSPEC= 000562RG    005	PURGVL  000532RG    003	.DYBLK  001736RG    005
EVRYBT= 000004 G 	F.ERR = 000052   	IOSTBK  000312RG    005	RATCTL  001750RG    005	.DYBUF  001744RG    005
FA.APD= 000100   	F.FACC= 000043   	IWUIC   000572RG    005	RATEFN= 000002 G 	.DYBYT  001746RG    005
FA.CRE= 000010   	F.FFBY= 000014   	LINBFS= 000220 G 	REMOVE= ****** GX	.DYSIZ  001742RG    005
FA.EXT= 000004   	F.FNAM= 000110   	LINBUF  000326RG    005	RENAME= ****** GX	.ERTRP= ****** GX
FA.NSP= 000100   	F.FNB = 000102   	LPTLEN  001716RG    005	RMVBIT= 000100 G 	.EXTSZ  001732RG    005
FA.RD = 000001   	F.FTYP= 000116   	LSTBIT= 000001 G 	RNMBIT= 000002 G 	.FOWNR  001734RG    005
FA.SHR= 000040   	F.FVER= 000120   	MERGBT= 000010 G 	RWEFN = 000003 G 	.FREE = ****** GX
FA.TMP= 000020   	F.HIBK= 000004   	MFDBIT= 000010 G 	R$$DPB= 000001   	.FSRCB= ****** G
FA.WRT= 000002   	F.LUN = 000042   	MOIDMG= 000021RG    002	R$$DYM= 000001   	.HDRAD  001756RG    005
FDBIN   000140RG    005	F.MBCT= 000054   	MOIDSZ= 000007 G 	R$$EIS= 000000   	.INIT = ****** GX
FDBOUT  000000RG    005	F.MBC1= 000055   	NAMBLK  001004RG    005	R$$MSG= 000000   	.LCLSW  001722RG    005
FD.BLK= 000010   	F.MBFG= 000056   	NB.DEV= 000200   	R$$11M= 000001   	.MSGFN  000000RG    003
PIP M1321, RSX FILE UTILITY	MACRO M1113  27-FEB-85 12:23  PAGE 10-4
SYMBOL TABLE

.OULCL  001724RG    005	.SETDF= ****** GX	...GBL= 000000   	...PC2= 001302R     005	...TPC= 000020
.RSTAR= ****** GX	.TOPAD= 001740RG    005	...PC1= 001100R     005	...PC3= 001100R     005

. ABS.	000000	   000
      	000000	   001
MSGSTR	000030	   002
PURE$D	000612	   003
$$FSR1	000000	   004
IMPURE	001762	   005
PURE$I	000010	   006
ERRORS DETECTED:  0

VIRTUAL MEMORY USED:  6098 WORDS  ( 24 PAGES)
DYNAMIC MEMORY:  6734 WORDS  ( 25 PAGES)
ELAPSED TIME:  00:00:33
[43,10]PIP,[43,20]PIP/-SP/CR=[43,30]PIPMAC,PIP
PIP        CREATED BY  MACRO  ON 27-FEB-85 AT 12:24	PAGE 1

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

AGAIN 	  000004 RG	#10-298    
APPDBT	= 000020  G	#10-214     10-236    
BITVAL	= 000200	#10-192     10-194     10-194    #10-194     10-195     10-195    #10-195     10-196     10-196    
                        #10-196     10-197     10-197    #10-197     10-198     10-198    #10-198     10-199     10-199    
                        #10-199     10-200     10-200    #10-200     10-201     10-201    #10-201     10-202     10-202    
                        #10-202     10-203     10-203    #10-203     10-204     10-204    #10-204    #10-208     10-210    
                         10-210    #10-210     10-211     10-211    #10-211     10-212     10-212    #10-212     10-213    
                         10-213    #10-213     10-214     10-214    #10-214     10-215     10-215    #10-215     10-216    
                         10-216    #10-216    
BLKBIT	= 002000  G	#8-76       10-248    
BLKCNT	  001720 RG	#9-157      10-280    
BLKVAL	  000564 RG	 10-248    #10-280    
CLOSX 	  000004 RG	#10-297    
CMDTBL	  000036 RG	#10-193    
CMDTB2	  000064 RG	#10-209    
CMDWRD	  001642 RG	#9-138      10-219     10-220     10-221     10-222     10-223     10-224     10-225     10-226    
                         10-227     10-228     10-229     10-230     10-231     10-232     10-233     10-234     10-235    
                         10-236     10-237     10-238    
CMOLUN	= 000002  G	#8-51      
CNTGBT	= 000004  G	#8-67       10-241    
CODEV 	  000322 RG	#9-111     
COPY  	= ******  GX	 10-213     10-214     10-215    
COUNIT	  000324 RG	#9-112     
CPYCTL	  001646 RG	#9-139      10-241     10-242     10-243     10-244     10-245     10-246     10-247     10-248    
                         10-249     10-250     10-251    
CSIBLK	  001566 RG	#9-135     
CSISWT	  000102 RG	#10-219    
C.SIZE	= 000054	 9-135     
DEFDIR	  001660 RG	#9-144     
DELBIT	= 000020  G	#10-198     10-224    
DELETE	= ******  GX	 10-198     10-199    
DFDRSZ	= 000011  G	#8-55       9-144     
DFLTBT	= 000400  G	#10-202     10-228     10-229    
DIRLST	= ******  GX	 10-194     10-195     10-196     10-197    
ENTER 	= ******  GX	 10-212    
ENTRBT	= 000004  G	#10-212     10-234    
EVRYBT	= 000004  G	#10-196     10-222    
FDBIN 	  000140 RG	#9-101     
FDBOUT	  000000 RG	#9-98      
FD.CCL	= 000002	 9-133     
FD.PLC	= 000004	 9-102     
FD.REC	= 000001	 9-133     
FD.TTY	= 000004	 9-133     
FIDBIT	= 001000  G	#8-75       10-247    
FIDVAL	  000540 RG	 10-247    #10-270    
FILID 	= ******  GX	 10-270     10-271     10-272    
FNAEFN	= 000001  G	#8-52      
FNASTS	  000316 RG	#9-107     
FOWNBT	= 040000  G	#8-80       10-251    
FREEBT	= 000100  G	#10-216     10-238    
FRSTIM	= 100000  G	#8-81      
FULVAL	  000556 RG	 10-222    #10-276    
PIP        CREATED BY  MACRO  ON 27-FEB-85 AT 12:24	PAGE 2

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

F.DFNB	= 000046	 9-133     
F.DSPT	= 000044	 9-99       9-103     
F.LUN 	= 000042	 9-99       9-103      9-133     
F.MBCT	= 000054	 9-133     
F.RACC	= 000016	 9-102     
F.RCTL	= 000017	 9-133     
F.RTYP	= 000000	 9-133     
GCMLCB	  001100 RG	#9-133     
GE.CLO	= 000004	 9-133     
GE.COM	= 000001	 9-133     
GE.IND	= 000002	 9-133     
GROPRO	  001676 RG	#9-149      10-256    
GRPROB	= 000040  G	#8-71       10-244    
GRVAL 	  000502 RG	 10-244    #10-256    
G.LPDL	= 000120	#9-133      9-133     
HA.CHU	= 000403  G	#8-86      
HA.FP 	= 001002  G	#8-85      
HA.UI 	= 001001  G	#8-84      
IDBIT 	= 000200  G	#10-201     10-227    
IDNTMG	= 000000 RG	#7-1        7-1        7-1       
IDNTSZ	= 000021  G	#7-1        7-1       
IFNPT 	  000546 RG	 9-103     #9-121      9-122     
ILCLSW	= 004000  G	#8-89      
INLUN 	= 000003  G	#8-49       9-103     
INRACC	  001654 RG	#9-142     
INSPEC	= 000562 RG	#9-122     
IOSTBK	  000312 RG	#9-106     
IWUIC 	  000572 RG	#9-123     
LINBFS	= 000220  G	#9-115     
LINBUF	  000326 RG	#9-113      9-115     
LPTLEN	  001716 RG	#9-156      10-276    
LSTBIT	= 000001  G	#10-194     10-219     10-220    
MERGBT	= 000010  G	#10-213     10-235    
MFDBIT	= 000010  G	#8-68       10-242    
MOIDMG	= 000021 RG	#7-1        7-1        7-1       
MOIDSZ	= 000007  G	#7-1        7-1       
MSGBL.	= ******	 7-1        7-1       
NAMBLK	  001004 RG	#9-130     
NB.SDI	= 001400  G	#8-60       8-61      
NB.SD1	= 000400	 8-60      
NB.SD2	= 001000	 8-60      
NB.SFL	= 001470  G	#8-61      
NB.SFN	= 000070  G	#8-62      
NB.SNM	= 000040	 8-61       8-62      
NB.STP	= 000020	 8-61       8-62      
NB.SVR	= 000010	 8-61       8-62      
NMBLK1	  001042 RG	#9-131     
NTCNTG	= 004000  G	#8-77       8-89       10-241    
NVERBT	= 010000  G	#8-78       10-249    
N.DEVD	= 000000	#7-28      
N.DIRD	= 000004	#7-28      
N.DVNM	= 000032	 7-1       
PIP        CREATED BY  MACRO  ON 27-FEB-85 AT 12:24	PAGE 3

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

N.FLID	= 000016	#7-28      
N.FNAM	= 000006	 7-1        9-129      9-130      9-131      9-133     
N.FNMD	= 000010	#7-28      
N.FTYP	= 000014	 7-1        9-129      9-130      9-131      9-133     
N.SPEC	= 000014	#7-28       9-122      9-125     
N.UNIT	= 000034	 7-1       
OFNPT 	  000646 RG	 9-99      #9-124      9-125     
OURACC	  001656 RG	#9-143     
OUSPEC	= 000662 RG	#9-125     
OUTLUN	= 000004  G	#8-50       9-99      
OWNPRO	  001702 RG	#9-150      10-258    
OWPROB	= 000100  G	#8-72       10-245    
OWUIC 	  000672 RG	#9-126     
OWVAL 	  000510 RG	 10-245    #10-258    
PIPID 	= ******  GX	 10-201    
PROTBT	= 002000  G	#10-204     10-231    
PROTCT	= ******  GX	 10-204    
PROWRD	  001712 RG	#9-152      10-262    
PRVAL 	  000524 RG	 10-231    #10-262    
PURGBT	= 000040  G	#10-199     10-225    
PURGCT	  001714 RG	#9-155      10-266    
PURGVL	  000532 RG	 10-225    #10-266    
RATCTL	  001750 RG	#9-173     
RATEFN	= 000002  G	#8-53      
REMOVE	= ******  GX	 10-200    
RENAME	= ******  GX	 10-211    
RMVBIT	= 000100  G	#10-200     10-226    
RNMBIT	= 000002  G	#10-211     10-233    
RONLY$	= ******	 7-1        7-1        7-1        7-1        7-1        7-1        10-188     10-188     10-295    
                         10-295    
RWEFN 	= 000003  G	#8-54      
R$$DPB	= 000001	#1-27       9-172     
R$$DYM	= 000001	#1-29       9-180     
R$$EIS	= 000000	#1-28       1-38      
R$$MSG	= 000000	 7-1        7-1        7-1        7-1       
R$$11M	= 000001	#1-25       1-26       7-1        7-1        7-1       
SAVSP 	  001650 RG	#9-140     
SHTLST	= 000002  G	#10-195     10-221    
SPLBIT	= 000001  G	#10-210     10-232    
SPOOL 	= ******  GX	 10-210    
SPSDBT	= 020000  G	#8-79       10-250    
SSTENT	= 000007	#10-291    
SSTTAB	  000572 RG	#10-283     10-291    
START 	  000000 RG	#10-296     10-301    
STBLK 	  000300 RG	#9-105      9-174     
SYDEV 	= 054523  G	#8-57       9-160     
SYDFLT	  000746 RG	#9-129     
SYPROB	= 000200  G	#8-73       10-246    
SYSPRO	  001706 RG	#9-151      10-260    
SYS40$	= ******	 1-67       7-1        7-1        7-1        7-1        7-1        7-1        9-95       9-95      
                         10-188     10-188     10-295     10-295    
SYUNIT	= 000000  G	#8-58       9-161     
PIP        CREATED BY  MACRO  ON 27-FEB-85 AT 12:24	PAGE 4

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

SYVAL 	  000516 RG	 10-246    #10-260    
S.APPD	= 000010	#7-28       9-121      9-124     
S.BFHD	= 000020	 9-93       9-93      
S.FDB 	= 000140	 9-98       9-98       9-101      9-101      9-133      9-133     
S.FIDS	= 000014	#7-28       9-121      9-124     
S.FNAM	= 000006	 7-1        7-1        9-129      9-129      9-130      9-130      9-131      9-131      9-133     
                         9-133     
S.FNB 	= 000036	 7-1        8-59       9-129      9-130      9-131      9-133     
S.FTYP	= 000002	 7-1        7-1        9-129      9-129      9-130      9-130      9-131      9-131      9-133     
                         9-133     
S.STBK	= 000012  G	#8-88       9-105      9-173     
S.WUIC	= 000054  G	#8-59       9-123      9-126     
TAB   	= 000011  G	#8-56      
TOTLBT	= 000010  G	#10-197     10-223    
UNLKBT	= 001000  G	#10-203     10-230    
UNLOCK	= ******  GX	 10-203    
UPDTBT	= 000040  G	#10-215     10-237    
VERSAV	  001652 RG	#9-141     
WOPROB	= 000020  G	#8-70       10-243    
WORPRO	  001672 RG	#9-148      10-254    
WOVAL 	  000474 RG	 10-243    #10-254    
$$    	= 000000 R	#10-219     10-219    #10-219     10-219    #10-219     10-219    #10-220     10-220    #10-220    
                         10-220    #10-220     10-220    #10-221     10-221    #10-221     10-221    #10-221     10-221    
                        #10-222     10-222    #10-222     10-222    #10-222     10-222    #10-223     10-223    #10-223    
                         10-223    #10-223     10-223    #10-224     10-224    #10-224     10-224    #10-224     10-224    
                        #10-225     10-225    #10-225     10-225    #10-225     10-225    #10-226     10-226    #10-226    
                         10-226    #10-226     10-226    #10-227     10-227    #10-227     10-227    #10-227     10-227    
                        #10-228     10-228    #10-228     10-228    #10-228     10-228    #10-229     10-229    #10-229    
                         10-229    #10-229     10-229    #10-230     10-230    #10-230     10-230    #10-230     10-230    
                        #10-231     10-231    #10-231     10-231    #10-231     10-231    #10-232     10-232    #10-232    
                         10-232    #10-232     10-232    #10-233     10-233    #10-233     10-233    #10-233     10-233    
                        #10-234     10-234    #10-234     10-234    #10-234     10-234    #10-235     10-235    #10-235    
                         10-235    #10-235     10-235    #10-236     10-236    #10-236     10-236    #10-236     10-236    
                        #10-237     10-237    #10-237     10-237    #10-237     10-237    #10-238     10-238    #10-238    
                         10-238    #10-238     10-238    #10-241     10-241    #10-241     10-241    #10-241    #10-241    
                         10-241    #10-242     10-242    #10-242     10-242    #10-242     10-242    #10-243     10-243    
                        #10-243     10-243    #10-243     10-243    #10-244     10-244    #10-244     10-244    #10-244    
                         10-244    #10-245     10-245    #10-245     10-245    #10-245     10-245    #10-246     10-246    
                        #10-246     10-246    #10-246     10-246    #10-247     10-247    #10-247     10-247    #10-247    
                         10-247    #10-248     10-248    #10-248     10-248    #10-248     10-248    #10-249     10-249    
                        #10-249     10-249    #10-249     10-249    #10-250     10-250    #10-250     10-250    #10-250    
                         10-250    #10-251     10-251    #10-251     10-251    #10-251     10-251    
$$$   	= 001260 R	#9-133      9-133     
.ABORT	  000610 RG	#10-293    
.DEFDV	  001726 RG	#9-160     
.DEFUN	  001730 RG	#9-161     
.DYBLK	  001736 RG	#9-164      9-165     
.DYBUF	  001744 RG	#9-167     
.DYBYT	  001746 RG	#9-168     
.DYSIZ	  001742 RG	#9-166     
.ERTRP	= ******  GX	 10-289    
.EXTSZ	  001732 RG	#9-162     
PIP        CREATED BY  MACRO  ON 27-FEB-85 AT 12:24	PAGE 5

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

.FOWNR	  001734 RG	#9-163     
.FREE 	= ******  GX	 10-216    
.FSRCB	= ******  G	 9-93      
.HDRAD	  001756 RG	#9-176     
.INIT 	= ******  GX	 10-296    
.LCLSW	  001722 RG	#9-158     
.MSGFN	  000000 RG	#7-1       
.OULCL	  001724 RG	#9-159     
.RSTAR	= ******  GX	 10-293     10-298    
.SETDF	= ******  GX	 10-202    
.TOPAD	= 001740 RG	#9-165     
...PC1	= 001100 R	 7-1        7-1       #7-1        7-1        7-1        7-1        7-1        7-1       #7-1       
                        #9-98       9-99       9-99      #9-101      9-102      9-103      9-103      9-129      9-129     
                        #9-129      9-129      9-129      9-129     #9-129      9-130      9-130     #9-130      9-130     
                         9-130      9-130     #9-130      9-131      9-131     #9-131      9-131      9-131      9-131     
                        #9-131     #9-133      9-133      9-133      9-133      9-133      9-133      9-133      9-133     
                        #9-133      9-133      9-133      9-133     #9-133     
...PC2	= 001302 R	#7-1        7-1        7-1       #7-1        7-1        7-1       #7-1        7-1       #9-99      
                         9-99      #9-99       9-99      #9-102      9-102     #9-103      9-103     #9-103      9-103     
                        #9-129      9-129      9-129     #9-129      9-129      9-129     #9-130      9-130      9-130     
                        #9-130      9-130      9-130     #9-131      9-131      9-131     #9-131      9-131      9-131     
                        #9-133      9-133     #9-133      9-133     #9-133      9-133     #9-133      9-133     #9-133     
                         9-133     #9-133      9-133      9-133     #9-133      9-133      9-133     
...PC3	= 001100 R	#7-1        7-1       #9-129      9-129     #9-130      9-130     #9-131      9-131     #9-133     
                         9-133     
PIP        CREATED BY  MACRO  ON 27-FEB-85 AT 12:24	PAGE 6

MACRO CROSS REFERENCE                                   CREF         

MACRO NAME	REFERENCES

ASH   		#1-64      
ASHC  		#1-64      
BDOFF$		#9-93      
CBYTE$		#9-99       9-99       9-99      #9-102      9-102     #9-103      9-103      9-103     #9-133     #9-133     
                 9-133      9-133     #9-133      9-133      9-133     #9-133      9-133      9-133      9-133      9-133     
CMDBIT		#7-41       10-194     10-195     10-196     10-197     10-198     10-199     10-200     10-201     10-202    
                 10-203     10-204     10-210     10-211     10-212     10-213     10-214     10-215     10-216    
CSI$  		#7-29      #7-31      
CSI$ND		#7-35       10-252     10-255     10-257     10-259     10-261     10-263     10-267     10-273     10-277    
                 10-281    
CSI$SV		#7-35       10-254     10-256     10-258     10-260     10-262     10-266     10-270     10-271     10-272    
                 10-276     10-280    
CSI$SW		#7-35      #10-219    #10-220    #10-221    #10-222    #10-223    #10-224    #10-225    #10-226    #10-227    
                #10-228    #10-229    #10-230    #10-231    #10-232    #10-233    #10-234    #10-235    #10-236    #10-237    
                #10-238    #10-241    #10-242    #10-243    #10-244    #10-245    #10-246    #10-247    #10-248    #10-249    
                #10-250    #10-251    
CWORD$		#7-1        7-1        7-1       #9-99       9-99       9-99      #9-102      9-102      9-102     #9-103     
                 9-103      9-103     #9-129      9-129      9-129     #9-130      9-130      9-130     #9-131      9-131     
                 9-131     #9-133      9-133      9-133      9-133     #9-133      9-133      9-133     #9-133      9-133     
                #9-133      9-133      9-133     
DEF$L 		#9-93      
DIV   		#1-64      
ERRINI		#4-307     
ERROUT		#3-215     
ERROUX		#3-222     
ERROU1		#3-225     
ERRP  		#3-247     
ERRPX 		#3-253     
ERRP1 		#3-256     
ERR1  		#3-273     
FCSBT$		#7-29      #7-33      
FDAT$A		#7-36      #9-133     #9-133     
FDBDF$		#7-36       9-98       9-101     #9-133      9-133     
FDBF$A		#9-133      9-133     
FDBSZ$		#9-98      #9-98      #9-101     #9-101     #9-133     #9-133     
FDOFF$		#7-29      #7-30      #9-99      #9-99      #9-102     #9-102     #9-103     #9-103     #9-133     #9-133     
                #9-133     #9-133     #9-133     #9-133     
FDOP$A		#7-36       9-99       9-103     #9-133      9-133     
FDRC$A		#7-36      #9-102     
FLDSOF		#5-382     #7-28      #7-28      
FSRSZ$		#7-36       9-93      
GCMLB$		#7-35      #9-133     
GCMLD$		#7-29       7-32      #9-133      9-133     
IDENT 		#5-339     #7-1       
IDENT1		#5-347      7-1       
IDTITL		#5-356      7-1       
ILLOP 		#1-52      #1-64       1-64      
IMPURE		#1-75      #9-95      
MARK  		#1-64      
MSG   		#2-124     #7-1       #7-1       
MSGZ  		#2-129     
MSG1  		#2-133     #7-1       #7-1       
PIP        CREATED BY  MACRO  ON 27-FEB-85 AT 12:24	PAGE 7

MACRO CROSS REFERENCE                                   CREF         

MACRO NAME	REFERENCES

MUL   		#1-64      
NBOFF$		#7-1        7-1       #9-129      9-129     #9-130      9-130     #9-131      9-131     #9-133      9-133     
NMBLK$		#7-1       #7-1       #7-36      #9-129     #9-130     #9-131     #9-133     #9-133     
NOEIS$		#1-39       1-64      
PURE. 		#1-84       7-1        7-1        7-1        10-188     10-295    
PURE.D		#1-102      7-1        10-188    
PURE.I		#1-98       10-295    
RAD50$		#7-1        7-1        7-1       #9-129      9-129      9-129     #9-130      9-130      9-130     #9-131     
                 9-131      9-131     #9-133      9-133      9-133     
RTT   		#1-64      
SOB   		#1-64      
SXT   		#1-64      
XOR   		#1-64      
PIPDSP M0216, PIP COMMAND RECEI	MACRO M1113  27-FEB-85 12:24
TABLE OF CONTENTS

     7-    1	**** PIPDSP VERSION M0216 ****
     8-   36	COMMAND RECEIVER AND DISPATCHER
PIPMAC - MACROS FOR PIP, ETC.	MACRO M1113  27-FEB-85 12:24  PAGE 6


    397
PIPDSP M0216, PIP COMMAND RECEI	MACRO M1113  27-FEB-85 12:24  PAGE 7


      1						.TITLE	PIPDSP M0216, PIP COMMAND RECEIVER & DISPATCHER
						.SBTTL	**** PIPDSP VERSION M0216 ****
						.IDENT	/M0216/
      2					; ALTERED:
      3					; ANDREW C. GOLDSTEIN  28 JAN 75  22:20
      4					;
      5					; COPYRIGHT 1975, 1985, DIGITAL EQUIPMENT CORP., MAYNARD MASS.
      6					; COPYRIGHT 1974, DIGITAL EQUIPMENT CORP., MAYNARD MASS.
      7
      8					;			ALL RIGHTS RESERVED
      9					;
     10					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
     11					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
     12					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
     13					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
     14
     15					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
     16					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
     17					; EQUIPMENT CORPORATION.
     18
     19					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY
     20					; OF ITS SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
     21					;
     22					; PETER H. LIPMAN 30-JAN-74;
     23					;
     24					; MACROS
     25					;
     26					; INVOKE FCS MACROS
     27					;
     28	000000					FLDSOF			;DEFINE THE FILE DESCRIPTOR OFFSETS
     29						.MCALL	CSI$
     30	000000					CSI$
     31						.MCALL	GCMLD$
     32	000000					GCMLD$
     33						.MCALL	CALL,RETURN,FINIT$,GLUN$S,EXIT$S,CSI$1,CSI$2,SVTK$S
     34						.MCALL	GTSK$S,GPRT$S
PIPDSP M0216, PIP COMMAND RECEI	MACRO M1113  27-FEB-85 12:24  PAGE 8
COMMAND RECEIVER AND DISPATCHER

     36						.SBTTL	COMMAND RECEIVER AND DISPATCHER
     37	000000					PURE.I
     38					;
     39					; INITIAL STARTING POINT
     40
     41						.ENABL	LSB
     42
     43	000000	010667 	000000G		.INIT::	MOV	SP,SAVSP
     44	000004	112767 	000000C	000000C		MOVB	#FD.TTY!FD.REC!FD.CCL,GCMLCB+F.RCTL ;MAKE MCR LEVEL LIKE TTY
     45	000012	152767 	000004 	000141G		BISB	#GE.CLO,GCMLCB+G.MODE ;FORCE GCML TO CLOSE CMD FILE EACH TIME
     46	000020					FINIT$
     47	000024					GLUN$S	#CMOLUN,#CODEV	;GET DEVICE AND UNIT OF COMMAND OUTPUT LUN
     48	000042	105067 	000001G			CLRB	COUNIT+1	;ZERO FLAGS BYTE IN UNIT WORD
     49
     50						.IF	GT,R$$DYM
     51	000046					GPRT$S	,#LINBUF	;GET PARTITION PARAMETERS
     52	000064	013700 	000000G			MOV	@#$DSW,R0	;GET BASE ADDRESS OF THE TASK
     53	000070					GTSK$S	#LINBUF		;GET TASK PARAMETERS
     54	000102	066700 	000032G			ADD	LINBUF+G.TSTS,R0 ;TOP OF AVAILABLE SPACE
     55
     56						.IFF
     57						MOV	#DYB1,.TOPAD
     58						MOV	#DYB2,R0
     59						.ENDC
     60
     61	000106	166700 	000000G			SUB	.TOPAD,R0	;NO. OF BYTES AVAILABLE FOR DYNAMIC MEM
     62	000112	042700 	000003 			BIC	#3,R0		;MULTIPLE OF 4 BYTES IN FILE STORAGE REGION
     63	000116	010067 	000000G			MOV	R0,.DYSIZ	;NO. OF BYTES OF DYNAMIC MEMORY
     64	000122	012767 	000001 	000000G		MOV	#1,.MBFCT	;ASSUME SINGLE BUFFERING
     65	000130	020027 	000000C			CMP	R0,#<4*<1000+S.BFHD>+1000> ;ENOUGH FOR DOUBLE BUFFERING?
     66	000134	103402 				BLO	10$		;BRANCH IF NOT
     67	000136	005267 	000000G			INC	.MBFCT		;YES, DEFAULT TO DOUBLE BUFFERING
     68	000142	016767 	000000G	000000G	10$:	MOV	.TOPAD,.DYBUF	;FAKE AN ALLOCATED BUFFER
     69	000150	010067 	000000G			MOV	R0,.DYBYT	;SO THAT .DYREL WILL RETURN IT TO FSR
     70	000154	042700 	000777 			BIC	#777,R0
     71	000160	000300 				SWAB	R0
     72	000162	006200 				ASR	R0		;NO. OF BLOCKS AVAILABLE
     73	000164	010067 	000000G			MOV	R0,.DYBLK	;STORE THE BLOCK COUNT
     74	000170	001006 				BNE	.RSTAR
     75	000172					ERROUT	DY01		;NOT ENOUGH DYNAMIC MEMORY
	000172	104402 				TRAP	X
	000174	000000G				.WORD	DY01SZ
	000176	000000G				.WORD	DY01MG
     76	000200				EXIT:	EXIT$S
     77					;
     78					; RESTART HERE FOR SUBSEQUENT COMMANDS
     79					;
     80	000206				.RSTAR::
     81	000206	016706 	000000G			MOV	SAVSP,SP
     82	000212					CALL	CLOSE		;CLOSE ANY FILES LEFT OPEN
     83	000216					CALL	.DYREL		;RELEASE ANY BUFFER IN USE TO FSR
     84	000222					CALL	TDRDEL
     85	000226	005067 	000000G			CLR	CMDWRD		;INIT FLAGS WORD
     86	000232	005067 	000002G			CLR	CMDWRD+2
     87	000236	012767 	177777 	000000G		MOV	#-1,PROWRD	;NO PROTECTION VALUE SPECIFIED
     88	000244					CALL	GETCML		;GET THE NEXT COMMAND LINE
     89	000250	103753 				BCS	EXIT
PIPDSP M0216, PIP COMMAND RECEI	MACRO M1113  27-FEB-85 12:24  PAGE 8-1
COMMAND RECEIVER AND DISPATCHER

     90	000252					CSI$1	#CSIBLK,GCMLCB+G.CMLD+2,GCMLCB+G.CMLD ;CHECK CMD SYNTAX
     91	000276	016067 	000002 	000146G		MOV	C.CMLD(R0),GCMLCB+G.CMLD ;FIX STRING SIZE (COMPRESSED)
     92	000304	103552 				BCS	SERR2		;BRANCH IF SYNTAX ERROR
     93
     94					; LOOK AT ALL THE SPECIFIERS TO GET THE GLOBAL FLAG
     95	000306	012700 	000000G			MOV	#CSIBLK,R0
     96	000312				20$:	CSI$2	R0,OUTPUT,#CSISWT
     97	000330	103462 				BCS	40$
     98	000332	132760 	000020 	000001 		BITB	#CS.MOR,C.STAT(R0)
     99	000340	001364 				BNE	20$
    100	000342				30$:	CSI$2	R0,INPUT,#CSISWT
    101	000360	103526 				BCS	SERR3
    102	000362	132760 	000020 	000001 		BITB	#CS.MOR,C.STAT(R0)
    103	000370	001364 				BNE	30$
    104					;
    105					; NOW RESET CSI
    106	000372					CSI$1	R0,GCMLCB+G.CMLD+2,GCMLCB+G.CMLD
    107	000412	103507 				BCS	SERR2
    108	000414	012767 	000000G	000000G		MOV	#ILCLSW,CPYCTL	;INIT THE LOCAL FLAGS REGISTER
    109	000422	012767 	000000G	000000G		MOV	#ILCLSW,.LCLSW	;INITIAL VALUE FOR LOCAL SWITHCES
    110					;
    111					; INIT ALL THE LOCAL SWITCHES SINCE CSI$2 SCAN SET THEM TO
    112					; LAST VALUES ON LAST LOCAL SWITCH IN THE LIST
    113	000430					CALL	INIPRO		;INIT THE PROTECTION SUBSWITCHES
    114	000434	012767 	000001 	000000G		MOV	#1,PURGCT	;INIT THE COUNT OF FILES TO BE PRESERVED
    115	000442	005067 	000000G			CLR	BLKCNT		;INIT BLOCK COUNT (OUTPUT FILE SIZE)
    116					;
    117					; SET UP THE OUTPUT SPEC AND THE 1ST INPUT SPEC
    118	000446	012701 	000000G			MOV	#OFNPT,R1
    119	000452					CALL	OUTCSI		;GET THE FIRST OUTPUT SPEC
    120	000456	103467 				BCS	SERR3		;BRANCH IF ERROR
    121	000460	016767 	000000G	000000G		MOV	CPYCTL,.OULCL	;SAVE LOCAL SWITCHES FROM 1ST OUT SPEC
    122	000466	012701 	000000G			MOV	#IFNPT,R1
    123	000472					CALL	INCSI		;GET THE FIRST INPUT SPEC
    124	000476	103457 			40$:	BCS	SERR3
    125	000500	032767 	000000C	000000G		BIT	#SHTLST!EVRYBT!TOTLBT,CMDWRD ; CHECK FOR LISTING OPTIONS
    126	000506	001403 				BEQ	50$		; BRANCH IF NONE
    127	000510	042767 	000000G	000000G		BIC	#LSTBIT,CMDWRD	; OVERRIDE /LI
    128	000516	016702 	000000G		50$:	MOV	CMDWRD,R2
    129	000522	001022 				BNE	DISPAT
    130	000524	016702 	000002G			MOV	CMDWRD+2,R2	; NOTHING IN FIRST WORD, TRY THE SECOND
    131	000530	001027 				BNE	DISPT2
    132					;
    133					; ALLOW SUBSWITCHES TO SPECIFY COMMAND SWITCH IF NONE SPECIFIED
    134	000532	016703 	000000G			MOV	CPYCTL,R3
    135	000536	032703 	000000G			BIT	#NTCNTG,R3	;/-CO SWITCH SPECIFIED?
    136	000542	001420 				BEQ	60$		;IF ZERO THEN YES, COPY COMMAND
    137	000544	032703 	000000C			BIT	#WOPROB!GRPROB!OWPROB!SYPROB,R3
    138	000550	001415 				BEQ	60$		;COPY IF NO OTHER IMPLIED COMMAND
    139	000552	012702 	000000G			MOV	#PROTBT,R2	;ASSUME /PROTECTION
    140	000556	042703 	000000C			BIC	#WOPROB!GRPROB!OWPROB!SYPROB!FIDBIT!NTCNTG,R3
    141	000562	001030 				BNE	SERR4		; CHECK FOR CONFLICTING SWITCHES
    142	000564	010267 	000000G			MOV	R2,CMDWRD
    143					;
    144					; DISPATCH TO THE REQUESTED FUNCTION
    145					;
    146	000570	005767 	000002G		DISPAT:	TST	CMDWRD+2	;CHECK FOR DUPLICATE COMMANDS
PIPDSP M0216, PIP COMMAND RECEI	MACRO M1113  27-FEB-85 12:24  PAGE 8-2
COMMAND RECEIVER AND DISPATCHER

    147	000574	001023 				BNE	SERR4		; YES - GET OUT
    148	000576	012700 	000000G			MOV	#CMDTBL,R0	; POINT TO COMMAND TABLE #1
    149	000602	000404 				BR	70$
    150
    151	000604	012702 	000000G		60$:	MOV	#MERGBT,R2	;EXECUTE THE COPY COMMAND
    152	000610	012700 	000000G		DISPT2:	MOV	#CMDTB2,R0	; POINT TO COMMAND TABLE #2
    153
    154	000614	006002 			70$:	ROR	R2		; SCAN FOR A COMMAND BIT
    155	000616	103402 				BCS	80$		; BRANCH IF FOUND
    156	000620	005720 				TST	(R0)+		; OTHERWISE BUMP TO NEXT TABLE ENTRY
    157	000622	000774 				BR	70$		; AND TRY AGAIN
    158
    159					; BIT FOUND IN COMMAND WORD - NO MORE SHOULD BE PRESENT
    160	000624	005702 			80$:	TST	R2
    161	000626	001006 				BNE	SERR4
    162	000630	000130 				JMP	@(R0)+		;GO EXECUTE THE COMMAND
    163
    164						.DSABL	LSB
PIPDSP M0216, PIP COMMAND RECEI	MACRO M1113  27-FEB-85 12:24  PAGE 9
COMMAND RECEIVER AND DISPATCHER

    166					;
    167					; SYNTAX ERROR FROM CSI$1
    168					; FORM ONE STRING WITH SYNTAX ERROR MSG AND PIECE OF CMD LINE
    169	000632				SERR2:	CALL	.SYNER
    170					;
    171					; BAD SWITCH OR VALUE FROM CSI$2
    172	000636				SERR3:	ERROUX	CR02
	000636	104403 				TRAP	X
	000640	000000G				.WORD	CR02SZ
	000642	000000G				.WORD	CR02MG
    173					;
    174					;MULTIPLE COMMAND SWITCHES FOUND
    175	000644				SERR4:	ERROUX	CR03
	000644	104403 				TRAP	X
	000646	000000G				.WORD	CR03SZ
	000650	000000G				.WORD	CR03MG
    176					;
    177					; OUTPUT PIP VERSION IDENTIFIER
    178	000652				PIPID::	ERROUX	IDNT
	000652	104403 				TRAP	X
	000654	000000G				.WORD	IDNTSZ
	000656	000000G				.WORD	IDNTMG
    179					;
    180					;
    181		000001 				.END
PIPDSP M0216, PIP COMMAND RECEI	MACRO M1113  27-FEB-85 12:24  PAGE 9-1
SYMBOL TABLE

BLKCNT= ****** GX	C.SIZE= 000054   	G.ISIZ= 000020   	MERGBT= ****** GX	S.FNAM= 000006
CLOSE = ****** GX	C.STAT= 000001   	G.LUCW= 000004   	NTCNTG= ****** GX	S.FNB = 000036
CMDTBL= ****** GX	C.SWAD= 000022   	G.LUFB= 000003   	N.DEVD= 000000   	S.FNBW= 000017
CMDTB2= ****** GX	C.TYPR= 000000   	G.LUNA= 000000   	N.DIRD= 000004   	S.FNTY= 000004
CMDWRD= ****** GX	DISPAT  000570R     002	G.LUNU= 000002   	N.FLID= 000016   	S.FTYP= 000002
CMOLUN= ****** GX	DISPT2  000610R     002	G.MODE= 000141   	N.FNMD= 000010   	S.NFEN= 000020
CODEV = ****** GX	DY01MG= ****** GX	G.PRFW= 000004   	N.SPEC= 000014   	TDRDEL= ****** GX
COUNIT= ****** GX	DY01SZ= ****** GX	G.PRPB= 000000   	OFNPT = ****** GX	TOTLBT= ****** GX
CPYCTL= ****** GX	EVRYBT= ****** GX	G.PRPS= 000002   	OUTCSI= ****** GX	WOPROB= ****** GX
CR02MG= ****** GX	EXIT    000200R     002	G.PSDS= 000142   	OWPROB= ****** GX	X     = 000003
CR02SZ= ****** GX	FD.CCL= ****** GX	G.TSFW= 000024   	PAR$$$= 000000   	$DSW  = ****** GX
CR03MG= ****** GX	FD.REC= ****** GX	G.TSGC= 000017   	PIPID   000652RG    002	$$    = 000067
CR03SZ= ****** GX	FD.TTY= ****** GX	G.TSMT= 000022   	PROTBT= ****** GX	$$$OST= 000034
CSIBLK= ****** GX	FIDBIT= ****** GX	G.TSNL= 000020   	PROWRD= ****** GX	.CSI1 = ****** G
CSISWT= ****** GX	F.RCTL= ****** GX	G.TSPC= 000016   	PURGCT= ****** GX	.CSI2 = ****** G
CS.DIF= 000002   	GCMLCB= ****** GX	G.TSPN= 000004   	R$$DPB= 000001   	.DYBLK= ****** GX
CS.DVF= 000004   	GETCML= ****** GX	G.TSPR= 000014   	R$$DYM= 000001   	.DYBUF= ****** GX
CS.EQU= 000040   	GE.BIF= 177775   	G.TSRN= 000010   	R$$EIS= 000000   	.DYBYT= ****** GX
CS.INP= 000001   	GE.CLO= 000004   	G.TSTN= 000000   	R$$11M= 000001   	.DYREL= ****** GX
CS.MOR= 000020   	GE.COM= 000001   	G.TSTS= 000032   	SAVSP = ****** GX	.DYSIZ= ****** GX
CS.NMF= 000001   	GE.EOF= 177766   	G.TSVA= 000026   	SERR2   000632R     002	.FINIT= ****** G
CS.OUT= 000002   	GE.IND= 000002   	G.TSVL= 000030   	SERR3   000636R     002	.INIT   000000RG    002
CS.WLD= 000010   	GE.IOR= 177777   	IDNTMG= ****** GX	SERR4   000644R     002	.LCLSW= ****** GX
C.CMLD= 000002   	GE.LC = 000010   	IDNTSZ= ****** GX	SHTLST= ****** GX	.MBFCT= ****** GX
C.DEVD= 000006   	GE.MDE= 177774   	IFNPT = ****** GX	SYPROB= ****** GX	.OULCL= ****** GX
C.DIRD= 000012   	GE.OPR= 177776   	ILCLSW= ****** GX	S.APPD= 000010   	.RSTAR  000206RG    002
C.DSDS= 000006   	GRPROB= ****** GX	INCSI = ****** GX	S.BFHD= ****** GX	.SYNER= ****** GX
C.FILD= 000016   	G.CMLD= 000146   	INIPRO= ****** GX	S.FDB = 000140   	.TOPAD= ****** GX
C.MKW1= 000024   	G.DPRM= 000160   	LINBUF= ****** GX	S.FIDS= 000014   	...TPC= 000140
C.MKW2= 000026   	G.ERR = 000140   	LSTBIT= ****** GX

. ABS.	000000	   000
      	000000	   001
PURE$I	000660	   002
ERRORS DETECTED:  0

VIRTUAL MEMORY USED:  5540 WORDS  ( 22 PAGES)
DYNAMIC MEMORY:  6734 WORDS  ( 25 PAGES)
ELAPSED TIME:  00:00:27
[43,10]PIPDSP,[43,20]PIPDSP/-SP/CR=[43,30]PIPMAC,PIPDSP
PIPDSP     CREATED BY  MACRO  ON 27-FEB-85 AT 12:24	PAGE 1

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

BLKCNT	= ******  GX	*8-115     
CLOSE 	= ******  GX	 8-82       8-82      
CMDTBL	= ******  GX	 8-148     
CMDTB2	= ******  GX	 8-152     
CMDWRD	= ******  GX	*8-85      *8-86       8-125     *8-127      8-128      8-130     *8-142      8-146     
CMOLUN	= ******  GX	 8-47      
CODEV 	= ******  GX	 8-47      
COUNIT	= ******  GX	*8-48      
CPYCTL	= ******  GX	*8-108      8-121      8-134     
CR02MG	= ******  GX	 9-172     
CR02SZ	= ******  GX	 9-172     
CR03MG	= ******  GX	 9-175     
CR03SZ	= ******  GX	 9-175     
CSIBLK	= ******  GX	 8-90       8-90       8-95      
CSISWT	= ******  GX	 8-96       8-100     
CS.INP	= 000001	 8-100     
CS.MOR	= 000020	 8-98       8-102     
CS.OUT	= 000002	 8-96      
C.CMLD	= 000002	*8-90      *8-90       8-91      *8-106     *8-106     
C.SIZE	= 000054	 8-90       8-96       8-100      8-106     
C.STAT	= 000001	 8-98       8-102     
C.SWAD	= 000022	*8-96      *8-100     
DISPAT	  000570 R	 8-129     #8-146     
DISPT2	  000610 R	 8-131     #8-152     
DY01MG	= ******  GX	 8-75      
DY01SZ	= ******  GX	 8-75      
EVRYBT	= ******  GX	 8-125     
EXIT  	  000200 R	#8-76       8-89      
FD.CCL	= ******  GX	 8-44      
FD.REC	= ******  GX	 8-44      
FD.TTY	= ******  GX	 8-44      
FIDBIT	= ******  GX	 8-140     
F.RCTL	= ******  GX	*8-44      
GCMLCB	= ******  GX	*8-44      *8-45       8-90       8-90      *8-91       8-106      8-106     
GETCML	= ******  GX	 8-88       8-88      
GE.CLO	= 000004	 8-45      
GRPROB	= ******  GX	 8-137      8-140     
G.CMLD	= 000146	 8-90       8-90      *8-91       8-106      8-106     
G.LUCW	= 000004	#8-47      
G.LUFB	= 000003	#8-47      
G.LUNA	= 000000	#8-47      
G.LUNU	= 000002	#8-47      
G.MODE	= 000141	*8-45      
G.PRFW	= 000004	#8-51      
G.PRPB	= 000000	#8-51      
G.PRPS	= 000002	#8-51      
G.TSFW	= 000024	#8-53      
G.TSGC	= 000017	#8-53      
G.TSMT	= 000022	#8-53      
G.TSNL	= 000020	#8-53      
G.TSPC	= 000016	#8-53      
G.TSPN	= 000004	#8-53      
PIPDSP     CREATED BY  MACRO  ON 27-FEB-85 AT 12:24	PAGE 2

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

G.TSPR	= 000014	#8-53      
G.TSRN	= 000010	#8-53      
G.TSTN	= 000000	#8-53      
G.TSTS	= 000032	#8-53       8-54      
G.TSVA	= 000026	#8-53      
G.TSVL	= 000030	#8-53      
IDNTMG	= ******  GX	 9-178     
IDNTSZ	= ******  GX	 9-178     
IFNPT 	= ******  GX	 8-122     
ILCLSW	= ******  GX	 8-108      8-109     
INCSI 	= ******  GX	 8-123      8-123     
INIPRO	= ******  GX	 8-113      8-113     
LINBUF	= ******  GX	 8-51       8-53       8-54      
LSTBIT	= ******  GX	 8-127     
MERGBT	= ******  GX	 8-151     
NTCNTG	= ******  GX	 8-135      8-140     
N.DEVD	= 000000	#7-28      
N.DIRD	= 000004	#7-28      
N.FLID	= 000016	#7-28      
N.FNMD	= 000010	#7-28      
N.SPEC	= 000014	#7-28      
OFNPT 	= ******  GX	 8-118     
OUTCSI	= ******  GX	 8-119      8-119     
OWPROB	= ******  GX	 8-137      8-140     
PAR$$$	= 000000	#8-90       8-90      #8-96       8-96      #8-100      8-100     #8-106      8-106     
PIPID 	  000652 RG	#9-178     
PROTBT	= ******  GX	 8-139     
PROWRD	= ******  GX	*8-87      
PURGCT	= ******  GX	*8-114     
RONLY$	= ******	 8-37       8-37      
R$$DPB	= 000001	#1-27      
R$$DYM	= 000001	#1-29       8-50      
R$$EIS	= 000000	#1-28       1-38      
R$$11M	= 000001	#1-25       1-26       7-1       
SAVSP 	= ******  GX	*8-43       8-81      
SERR2 	  000632 R	 8-92       8-107     #9-169     
SERR3 	  000636 R	 8-101      8-120      8-124     #9-172     
SERR4 	  000644 R	 8-141      8-147      8-161     #9-175     
SHTLST	= ******  GX	 8-125     
SYPROB	= ******  GX	 8-137      8-140     
SYS40$	= ******	 1-67       8-37       8-37      
S.APPD	= 000010	#7-28      
S.BFHD	= ******  GX	 8-65      
S.FIDS	= 000014	#7-28      
TDRDEL	= ******  GX	 8-84       8-84      
TOTLBT	= ******  GX	 8-125     
WOPROB	= ******  GX	 8-137      8-140     
X     	= 000003	#8-75       8-75      #9-172      9-172     #9-175      9-175     #9-178      9-178     
$DSW  	= ******  GX	 8-52      
$$    	= 000067	#8-82       8-82      #8-83       8-83      #8-84       8-84      #8-88       8-88      #8-113     
                         8-113     #8-119      8-119     #8-123      8-123     #9-169      9-169     
$$$GLB	= ******	 8-47       8-47       8-47       8-47       8-51       8-51       8-51       8-53       8-53      
PIPDSP     CREATED BY  MACRO  ON 27-FEB-85 AT 12:24	PAGE 3

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

                         8-53       8-53       8-53       8-53       8-53       8-53       8-53       8-53       8-53      
                         8-53      
$$$OST	= 000034	#8-47       8-47       8-47      #8-47       8-47       8-47      #8-47       8-47       8-47      
                        #8-47       8-47       8-47      #8-47      #8-51       8-51       8-51      #8-51       8-51      
                         8-51      #8-51       8-51       8-51      #8-51      #8-53       8-53       8-53      #8-53      
                         8-53       8-53      #8-53       8-53       8-53      #8-53       8-53       8-53      #8-53      
                         8-53       8-53      #8-53       8-53       8-53      #8-53       8-53       8-53      #8-53      
                         8-53       8-53      #8-53       8-53       8-53      #8-53       8-53       8-53      #8-53      
                         8-53       8-53      #8-53       8-53       8-53      #8-53      
.CSI1 	= ******  G	 8-90       8-90       8-106      8-106     
.CSI2 	= ******  G	 8-96       8-96       8-100      8-100     
.DYBLK	= ******  GX	*8-73      
.DYBUF	= ******  GX	*8-68      
.DYBYT	= ******  GX	*8-69      
.DYREL	= ******  GX	 8-83       8-83      
.DYSIZ	= ******  GX	*8-63      
.FINIT	= ******  G	 8-46       8-46      
.INIT 	  000000 RG	#8-43      
.LCLSW	= ******  GX	*8-109     
.MBFCT	= ******  GX	*8-64      *8-67      
.OULCL	= ******  GX	*8-121     
.RSTAR	  000206 RG	 8-74      #8-80      
.SYNER	= ******  GX	 9-169      9-169     
.TOPAD	= ******  GX	 8-61       8-68      
PIPDSP     CREATED BY  MACRO  ON 27-FEB-85 AT 12:24	PAGE 4

MACRO CROSS REFERENCE                                   CREF         

MACRO NAME	REFERENCES

ASH   		#1-64      
ASHC  		#1-64      
CALL  		#7-33       8-82       8-83       8-84       8-88       8-113      8-119      8-123      9-169     
CSI$  		#7-29      #7-30      #8-90      #8-96      #8-100     #8-106     
CSI$1 		#7-33       8-90       8-106     
CSI$2 		#7-33      #8-96      #8-100     
DIR$  		#8-47       8-47      #8-51       8-51      #8-53       8-53      #8-76       8-76      
DIV   		#1-64      
ERRINI		#4-307     
ERROUT		#3-215      8-75      
ERROUX		#3-222      9-172      9-175      9-178     
ERROU1		#3-225     #8-75      #9-172     #9-175     #9-178     
ERRP  		#3-247     
ERRPX 		#3-253     
ERRP1 		#3-256     
ERR$  		#8-47      #8-51      #8-53      #8-76      
ERR1  		#3-273     #8-75      #9-172     #9-175     #9-178     
EXIT$S		#7-33      #8-76      
FINIT$		#7-33       8-46      
FLDSOF		#5-382     #7-28      #7-28      
GCMLD$		#7-31       7-32      
GLUN$S		#7-33       8-47      
GPRT$S		#7-34       8-51      
GTSK$S		#7-34       8-53      
IDENT 		#5-339     #7-1       
IDENT1		#5-347      7-1       
IDTITL		#5-356     
ILLOP 		#1-52      #1-64       1-64      
IMPURE		#1-75      
LDR0$ 		#8-90      #8-90      #8-96      #8-96      #8-100     #8-100     #8-106     #8-106     
MARK  		#1-64      
MOV$  		#8-47      #8-47      #8-47      #8-51      #8-51      #8-53      #8-53      
MSG   		#2-124     
MSGZ  		#2-129     
MSG1  		#2-133     
MUL   		#1-64      
NOEIS$		#1-39       1-64      
OFF$  		#8-47      #8-47      #8-47      #8-47      #8-47      #8-51      #8-51      #8-51      #8-51      #8-53      
                #8-53      #8-53      #8-53      #8-53      #8-53      #8-53      #8-53      #8-53      #8-53      #8-53      
                #8-53      #8-53      
PURE. 		#1-84       8-37      
PURE.D		#1-102     
PURE.I		#1-98       8-37      
RETURN		#7-33      
RFA$  		#8-51       8-51      
RTT   		#1-64      
SOB   		#1-64      
SVTK$S		#7-33      
SXT   		#1-64      
XOR   		#1-64      
PIPCPY M0224, COPY COMMAND-PIP	MACRO M1113  27-FEB-85 12:24
TABLE OF CONTENTS

     7-    1	**** PIPCPY VERSION M0224 ****
PIPMAC - MACROS FOR PIP, ETC.	MACRO M1113  27-FEB-85 12:24  PAGE 6


    397
PIPCPY M0224, COPY COMMAND-PIP	MACRO M1113  27-FEB-85 12:24  PAGE 7


      1						.TITLE	PIPCPY M0224, COPY COMMAND-PIP
						.SBTTL	**** PIPCPY VERSION M0224 ****
						.IDENT	/M0224/
      2					; ALTERED:
      3					; ANDREW C. GOLDSTEIN  3 MAR 75  17:01
      4					;
      5					; COPYRIGHT 1975, 1985, DIGITAL EQUIPMENT CORP., MAYNARD MASS.
      6					; COPYRIGHT 1974, DIGITAL EQUIPMENT CORP., MAYNARD MASS.
      7
      8					;			ALL RIGHTS RESERVED
      9					;
     10					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
     11					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
     12					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
     13					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
     14
     15					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
     16					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
     17					; EQUIPMENT CORPORATION.
     18
     19					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY
     20					; OF ITS SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
     21					;
     22					; PETER H. LIPMAN	2-MAY-74
     23					;
     24						.IF	GT,R$$11M
     25						.MACRO	OPEN$	A1,A2,A3,A4,A5,A6,A7,A8,A9
     26						.MCALL	OFNB$
     27						OFNB$	A1,A2,A3,A4,A5,A6,A7,A8,A9
     28						.ENDM	OPEN$
     29					;
     30						.MACRO	GET$	A1,A2,A3,A4
     31						.MCALL	GET$S
     32						GET$S	A1,A2,A3,A4
     33						.ENDM	GET$
     34					;
     35						.MACRO	PUT$	A1,A2,A3,A4
     36						.MCALL	PUT$S
     37						PUT$S	A1,A2,A3,A4
     38						.ENDM	PUT$
     39					;
     40						.ENDC
     41
     42	000000					FLDSOF
     43						.MCALL	CSI$,FDOF$L,FCSBT$,IOERR$
     44	000000					CSI$
     45	000000					FDOF$L			;DEFINE FDB OFFSETS LOCALLY
     46	000000					FCSBT$			;DEFINE FDB BITS AND VALUES LOCALLY
     47	000000					IOERR$			;DEFINE I/O ERROR CODES LOCALLY
     48						.MCALL	CALL,RETURN
     49						.MCALL	FDRC$R,FDAT$R,FDBF$R
     50						.MCALL	OPEN$R,OPEN$U,OPEN$A,OPEN$
     51						.MCALL	PUT$,GET$,QIO$,DIR$,WTSE$S,WSIG$S
     52					;
     53	000000					MSG1	LPHD,<<14>>	;HEADER FOR COPY TO LP:
     54
     55	000000					IMPURE
PIPCPY M0224, COPY COMMAND-PIP	MACRO M1113  27-FEB-85 12:24  PAGE 7-1
**** PIPCPY VERSION M0224 ****

     56
     57	000000				QIODPB:	QIO$	,,RWEFN,,IOSTBK,,<,,,,>
     58		000014 				Q.XFAD=Q.IOPL		;TRANSFER ADDRESS OFFSET
     59		000016 				Q.XFSZ=Q.IOPL+2		;TRANSFER SIZE OFFSET
     60		000022 				Q.XFVB=Q.IOPL+6		;TRANSFER VBN OFFSET
PIPCPY M0224, COPY COMMAND-PIP	MACRO M1113  27-FEB-85 12:24  PAGE 8
**** PIPCPY VERSION M0224 ****

     62	000026					PURE.I
     63
     64					; COPY THE INPUT FILE TO THE OUTPUT FILE
     65	000000				COPY::
     66	000000	016767 	000000G	000000G		MOV	.OULCL,.LCLSW	;LOCAL OUTPUT SWITCHES APPLY
     67									;TO ALL INPUT SPECIFIERS
     68	000006	032767 	000000C	000002G		BIT	#APPDBT!UPDTBT,CMDWRD+2
     69	000014	001403 				BEQ	10$
     70	000016	052767 	000000G	000002G		BIS	#MERGBT,CMDWRD+2	;APPEND OR UPDATE IMPLY MERGE
     71	000024	005767 	000000G		10$:	TST	INSPEC		;ANY INPUT FILE SPEC AT ALL?
     72	000030	001003 				BNE	30$
     73	000032					ERROUX	CP02		;NOTHING TO COPY!
	000032	104403 				TRAP	X
	000034	000000G				.WORD	CP02SZ
	000036	000000G				.WORD	CP02MG
     74					; INITIALIZE THE DEFAULT NAME BLOCKS AND PUT ADDRESSES IN FDB'S
     75	000040	012767 	000000G	000046G	30$:	MOV	#NAMBLK,FDBOUT+F.DFNB
     76	000046	005001 				CLR	R1
     77	000050	005002 				CLR	R2
     78	000052					CALL	STNMBK		;INIT "NAMBLK"
     79	000056	012700 	000000G			MOV	#NMBLK1,R0
     80	000062	010067 	000046G			MOV	R0,FDBIN+F.DFNB
     81					; R1 AND R2 SHOULD STILL CONTAIN 0
     82	000066					CALL	STNBK1		;INIT NAMBLK IN R0
     83	000072	012767 	000000G	000044G		MOV	#IFNPT,FDBIN+F.DSPT ;INIT DESCRIPTOR POINTERS
     84	000100	012767 	000000G	000044G		MOV	#OFNPT,FDBOUT+F.DSPT
     85	000106	012700 	000000G			MOV	#FDBOUT,R0
     86	000112	112760 	000016 	000043 		MOVB	#FO.WRT,F.FACC(R0) ; SET INTENT TO CAUSE SPOOLING
     87	000120					CALL	PARSE		;PARSE THE OUTPUT FILE NAME
     88	000124	103004 				BCC	40$
     89	000126					CALL	PRSERR		;FAILED TO PARSE OUTPUT FILE NAME
     90	000132	000167 	000000G			JMP	CLOSX
     91	000136				40$:	CALL	CWLDUI		;CHECK FOR LEGAL WILD UIC
     92	000142	103003 				BCC	42$		;BRANCH IF OK
     93	000144					ERROUX	CP01		;ONLY [*,*] IS LEGAL FOR OUTPUT
	000144	104403 				TRAP	X
	000146	000000G				.WORD	CP01SZ
	000150	000000G				.WORD	CP01MG
     94	000152	032761 	000000G	000020 	42$:	BIT	#NB.SFN,N.STAT(R1) ;NO WILD CARDS IN NAME?
     95	000160	001431 				BEQ	46$		;BRANCH IF YES
     96	000162	016102 	000020 			MOV	N.STAT(R1),R2
     97	000166	042702 	000000C			BIC	#^C<NB.SFN>,R2
     98	000172	022702 	000000G			CMP	#NB.SFN,R2	;*.*;* ?
     99	000176	001412 				BEQ	44$		;BRANCH IF YES, OK
    100	000200	022702 	000060 			CMP	#NB.SNM!NB.STP,R2 ;*.* ?
    101	000204	001004 				BNE	43$		;BRANCH IF NO, ILLEGAL  USE OF *
    102	000206	032761 	000001 	000020 		BIT	#NB.VER,N.STAT(R1) ;NOT EXPLICIT VERSION
    103	000214	001403 				BEQ	44$		;BRANCH IF YES, OK
    104	000216				43$:	ERROUX	CP04,1		;ILLEGAL * IN OUTPUT NAME
	000216	104413 				TRAP	X
	000220	000000G				.WORD	CP04SZ
	000222	000000G				.WORD	CP04MG
    105	000224	042767 	000001 	000000G	44$:	BIC	#CS.NMF,OUSPEC	;NORMALIZE WILD CARD OUTPUT NAME
    106	000232	005067 	000010G			CLR	OFNPT+N.FNMD
    107	000236	042761 	000000G	000020 		BIC	#NB.SFN,N.STAT(R1)
    108	000244	032767 	000001 	000000G	46$:	BIT	#CS.NMF,OUSPEC	;IF EXPLICIT OUTPUT FILE NAME
    109	000252	001013 				BNE	54$		;BRANCH IF YES
PIPCPY M0224, COPY COMMAND-PIP	MACRO M1113  27-FEB-85 12:24  PAGE 8-1
**** PIPCPY VERSION M0224 ****

    110	000254	032767 	000000G	000002G		BIT	#MERGBT,CMDWRD+2	;MERGE, APPEND, OR UPDATE REQUEST?
    111	000262	001416 				BEQ	60$		;BRANCH IF NO
    112	000264	132760 	000010 	000017 		BITB	#FD.DIR,F.RCTL(R0)
    113	000272	001412 				BEQ	60$		;OK IF NON DIRECTORY DEVICE
    114	000274					ERROUX	CP05,1		;MUST HAVE EXPLICIT OUTPUT FILE NAME
	000274	104413 				TRAP	X
	000276	000000G				.WORD	CP05SZ
	000300	000000G				.WORD	CP05MG
    115	000302	032767 	000030 	000000G	54$:	BIT	#CS.MOR!CS.WLD,INSPEC ;MULTIPLE INPUT FILES?
    116	000310	001403 				BEQ	60$
    117					;
    118					; EXPLICIT OUTPUT FILE NAME AND MULTIPLE INPUT FILES IMPLY A MERGE
    119	000312	052767 	000000G	000002G		BIS	#MERGBT,CMDWRD+2
    120	000320	012700 	000000G		60$:	MOV	#FDBIN,R0
PIPCPY M0224, COPY COMMAND-PIP	MACRO M1113  27-FEB-85 12:24  PAGE 9
**** PIPCPY VERSION M0224 ****

    122
    123	000324				COPY2:	CALL	PARSE		;PARSE THE FILE NAME
    124	000330	103004 				BCC	10$
    125	000332					CALL	PRSERR
    126	000336	000167 	002002 			JMP	CPYNXT
    127	000342	016067 	000120 	000000G	10$:	MOV	F.FVER(R0),VERSAV
    128	000350	052767 	000000G	000000G		BIS	#FRSTIM,CPYCTL	;FIRST FIND OPERATION NOT DONE YET
    129	000356	032767 	000001 	000000G		BIT	#CS.NMF,INSPEC	;ALLOW NULL INPUT FILE NAME TO = *.*;*
    130	000364	001021 				BNE	CPYWLD
    131	000366	005762 	000016 			TST	N.FLID(R2)	;UNLESS FILE ID SPECIFIED
    132	000372	001016 				BNE	CPYWLD
    133	000374	132760 	000010 	000017 		BITB	#FD.DIR,F.RCTL(R0) ;OR UNLESS NON DIRECTORY DEVICE
    134	000402	001412 				BEQ	CPYWLD
    135	000404	052761 	000000G	000020 		BIS	#NB.SFN,N.STAT(R1) ;SINCE WILD CARDS ON INPUT SIDE
    136	000412	032767 	000001 	000000G		BIT	#CS.NMF,OUSPEC	;OUTPUT FILE NAME IMPLIES MERGE
    137	000420	001403 				BEQ	CPYWLD
    138	000422	052767 	000000G	000002G		BIS	#MERGBT,CMDWRD+2
    139	000430	016760 	000000G	000120 	CPYWLD:	MOV	VERSAV,F.FVER(R0)
    140	000436					CALL	FNDNXT
    141	000442	103004 				BCC	COPY1		;BRANCH IF SUCCESSFUL
    142					;
    143					; ERROR FROM LOOKUP
    144	000444					CALL	FNDERR
    145	000450	000167 	001670 			JMP	CPYNXT
    146	000454	005067 	000000G		COPY1:	CLR	OURACC
    147	000460	012767 	000004 	000000G		MOV	#FD.PLC,INRACC
    148	000466	032767 	000001 	000000G		BIT	#CS.NMF,OUSPEC	;IS OUTPUT FILE NAME EXPLICIT
    149	000474	001100 				BNE	40$		;BRANCH IF YES
    150	000476	010002 				MOV	R0,R2
    151	000500	062702 	000110 			ADD	#F.FNAM,R2	;R2=ADR OF FNAME IN NAME BLOCK
    152	000504	005001 				CLR	R1		;R1= DIRECTORY ID FIELD
    153	000506					CALL	STNMBK		;STORE INTO NAMBLK
    154					;
    155					; IF THE OUTPUT DIRECTORY IS WILD CARD, USE THE INPUT DIR ID
    156	000512	032767 	000000G	000020G		BIT	#NB.SDI,OWUIC+N.STAT
    157	000520	001412 				BEQ	10$
    158	000522	016702 	000044G			MOV	FDBOUT+F.DSPT,R2
    159	000526	016703 	000044G			MOV	FDBIN+F.DSPT,R3
    160	000532	016362 	000004 	000004 		MOV	N.DIRD(R3),N.DIRD(R2)
    161	000540	016362 	000006 	000006 		MOV	N.DIRD+2(R3),N.DIRD+2(R2)
    162					;
    163					; DEFAULT FILE VERSION TO THAT OF INPUT FILE UNLESS DEVICE AND
    164					; DIRECTORY ARE THE SAME.
    165	000546	032767 	000000G	000000G	10$:	BIT	#NVERBT,CPYCTL	;FORCING NEW OUTPUT FILE VERSION?
    166	000554	001035 				BNE	30$		;BRANCH IF YES
    167	000556	016767 	000120G	000016G		MOV	FDBIN+F.FVER,NAMBLK+N.FVER
    168	000564	026767 	000134G	000134G		CMP	FDBIN+F.DVNM,FDBOUT+F.DVNM ;SAME DEVICES?
    169	000572	001041 				BNE	40$		;BRANCH IF NO
    170	000574	026767 	000136G	000136G		CMP	FDBIN+F.UNIT,FDBOUT+F.UNIT
    171	000602	001035 				BNE	40$		;BRANCH IF UNITS DIFFERENT
    172	000604	012704 	000003 			MOV	#3,R4		;CHECK 3 DIRECTORY ID WORDS
    173	000610	012702 	000126G			MOV	#FDBIN+F.FNB+N.DID,R2
    174	000614	012703 	000126G			MOV	#FDBOUT+F.FNB+N.DID,R3
    175	000620	022223 			20$:	CMP	(R2)+,(R3)+
    176	000622	001025 				BNE	40$
    177	000624					SOB	R4,20$
    178	000630	032767 	000000G	000122G		BIT	#NB.SFL,FDBIN+F.FNB+N.STAT
PIPCPY M0224, COPY COMMAND-PIP	MACRO M1113  27-FEB-85 12:24  PAGE 9-1
**** PIPCPY VERSION M0224 ****

    179	000636	001415 				BEQ	35$
    180					; WILD CARD COPY TO SAME DEVICE, DIRECTORY IS ILLEGAL
    181	000640					ERROUT	CP03
	000640	104402 				TRAP	X
	000642	000000G				.WORD	CP03SZ
	000644	000000G				.WORD	CP03MG
    182	000646	000407 				BR	32$
    183					;
    184					; PRODUCE NEW VERSION OF FILE, DON'T PRESERVE THE INPUT FILE'S VERSION NUMBER
    185					;
    186	000650	032767 	000010 	000122G	30$:	BIT	#NB.SVR,FDBIN+F.FNB+N.STAT ;IF WILD VERSION SPECIFIED
    187	000656	001405 				BEQ	35$
    188	000660					ERROUT	CP15		;THEN ILLEGAL
	000660	104402 				TRAP	X
	000662	000000G				.WORD	CP15SZ
	000664	000000G				.WORD	CP15MG
    189	000666	000167 	001452 		32$:	JMP	CPYNXT
    190	000672	005067 	000016G		35$:	CLR	NAMBLK+N.FVER	;FORCE DEFAULT (NEW) OUTPUT FILE VERSION
    191					;
    192					; NOW SEE IF CAN COPY IN BLOCK MODE INSTEAD OF RECORD MODE
    193	000676	005767 	000070G		40$:	TST	FDBOUT+F.BDB	;IF OUTPUT FILE IS ALREADY OPEN
    194	000702	001061 				BNE	CPYOPN		;SET UP RECORD ORIENTED INPUT FILE
    195	000704	032767 	000000G	000002G		BIT	#MERGBT,CMDWRD+2	;IF 1ST FILE OF MERGE
    196	000712	001406 				BEQ	50$		;BRANCH IF NOT
    197	000714					FDBF$R	#FDBIN,,#512.	;FORCE STANDARD BUF SIZE, AVOID FRAGMENTING FSR1
    198	000726	000447 				BR	CPYOPN		;AND USE RECORD ORIENTED COPY
    199	000730	026767 	000062G	000062G	50$:	CMP	FDBIN+F.BBFS,FDBOUT+F.BBFS ;BLOCK SIZES THE SAME?
    200	000736	001043 				BNE	CPYOPN		;BRANCH IF NO, RECORD ORIENTED COPY
    201	000740	026727 	000062G	001000 		CMP	FDBIN+F.BBFS,#1000 ;MUST BE 1000 BYTE BLOCKS
    202	000746	001037 				BNE	CPYOPN		;BRANCH IF NOT
    203					;
    204					; BOTH MUST BE BLOCK ORIENTED AND NON SEQUENTIAL
    205	000750	132767 	000041 	000017G		BITB	#FD.REC!FD.SQD,FDBIN+F.RCTL
    206	000756	001033 				BNE	CPYOPN
    207	000760	132767 	000041 	000017G		BITB	#FD.REC!FD.SQD,FDBOUT+F.RCTL
    208	000766	001027 				BNE	CPYOPN
    209					;
    210					; BOTH FILES ARE BLOCK ORIENTED AND THE SAME BLOCK SIZE, USE READ/WRITE
    211					;
    212	000770	026767 	000000G	000000G		CMP	.DYSIZ,.DYBYT	; SEE IF DYNAMIC BUFFER IS ALLOCATED
    213	000776	001412 				BEQ	60$		; BRANCH IF YES
    214					;
    215					; FAKE AN ALLOCATION OF THE ENTIRE DYNAMIC BUFFER REGION. WE CANNOT
    216					; CALL $RQLCB SINCE THE DESIRED SIZE MAY BE OVER 16K AND CAUSE
    217					; SIGN PROBLEMS.
    218					;
    219	001000					CALL	.DYREL		; RELEASE ANYTHING THAT'S ALLOCATED
    220	001004	016767 	000000G	000000G		MOV	.DYSIZ,.DYBYT	; SET ALLOCATED SIZE
    221	001012	013700 	000000G			MOV	@#.FSRPT,R0	; GET FSR2 ADDRESS
    222	001016	011067 	000000G			MOV	(R0),.DYBUF	; SET BUFFER ADDRESS
    223	001022	005010 				CLR	(R0)		; MARK ENTIRE FSR ALLOCATED
    224
    225	001024	012700 	000000G		60$:	MOV	#FDBIN,R0
    226	001030	012767 	000001 	000000G		MOV	#FD.RWM,INRACC
    227	001036	012767 	000001 	000000G		MOV	#FD.RWM,OURACC
    228	001044	000400 				BR	CPYOPN
PIPCPY M0224, COPY COMMAND-PIP	MACRO M1113  27-FEB-85 12:24  PAGE 10
**** PIPCPY VERSION M0224 ****

    230
    231	001046				CPYOPN:
    232	001046	012701 	000000G			MOV	#STBLK,R1	;R1=ADDRESS OF STATISTICS BLOCK
    233	001052	132760 	000040 	000017 		BITB	#FD.SQD,F.RCTL(R0) ;IF SEQUENTIAL DEVICE
    234	001060	001002 				BNE	10$		;DON'T READ THE STATISTICS BLOCK
    235	001062	010160 	000036 			MOV	R1,F.STBK(R0)	;OTHERWISE READ IT AT OPEN TIME
    236	001066	005021 			10$:	CLR	(R1)+		;ZERO THE LBN IN THE STATISTICS BLOCK
    237	001070	005021 				CLR	(R1)+
    238	001072	005021 				CLR	(R1)+		;AND ZERO THE SIZE FIELD
    239	001074	005011 				CLR	(R1)		;LEAVING R1 POINTING AT LOW ORDER SIZE
    240	001076					OPEN$R	R0,,,INRACC	;OPEN THE INPUT FILE
    241	001116	103002 				BCC	20$		;
    242	001120	000167 	001376 			JMP	CERR51		;FAILED TO OPEN INPUT FILE
    243
    244					;
    245					; FIX UP THE STATISTICS BLOCK IF THIS WAS A SEQUENTIAL DEVICE. HIBK+2 WILL
    246					; CONTAIN THE SIZE IF FLE WAS CONTIGUOUS.
    247					;
    248	001124	132760 	000040 	000017 	20$:	BITB	#FD.SQD,F.RCTL(R0) ;IF SEQUENTIAL DEVICE
    249	001132	001405 				BEQ	30$		;
    250	001134	016011 	000006 			MOV	F.HIBK+2(R0),(R1) ;FIX UP FILE SIZE
    251	001140	001402 				BEQ	30$		;BRANCH IF NOT CONTIGUOUS
    252	001142	005261 	177774 			INC	-4(R1)		;MAKE LBN IN STAT BLOCK NON-ZERO
    253					;
    254					; ESTABLISH SIZE AND CONTIGUOUS ATTRIBUTE FOR THE INPUT FILE
    255					;
    256	001146				30$:
    257	001146	005004 			EXTSIZ:	CLR	R4		;ASSUME NON CONTIGUOUS
    258	001150	011105 				MOV	(R1),R5		;R5=SIZE OF FILE SPACE ALLOCATED
    259	001152	005741 				TST	-(R1)
    260	001154	014146 				MOV	-(R1),-(SP)	;IF BOTH LBN WORDS ARE 0
    261	001156	054126 				BIS	-(R1),(SP)+	;THEN FILE IS NON CONTIGUOUS
    262	001160	001404 				BEQ	10$		;BRANCH IF NOT CONTIGUOUS
    263	001162	032767 	000000G	000000G		BIT	#NTCNTG,CPYCTL	;/-CO SWITCH?
    264	001170	001012 				BNE	30$		;BRANCH IF COPYING CONTIGUOUS
    265					;
    266					; USE FILE SIZE FROM RECORD ATTRIBUTE
    267					;
    268	001172	016005 	000012 		10$:	MOV	F.EFBK+2(R0),R5	;R5=VBN OF END OF FILE
    269	001176	005760 	000014 			TST	F.FFBY(R0)	;UNLESS FFBY=0
    270	001202	001001 				BNE	20$		;
    271	001204	005305 				DEC	R5		;IN WHICH CASE IT IS ONE TOO BIG
    272	001206	032767 	000000G	000000G	20$:	BIT	#CNTGBT,CPYCTL	;FORCE CONTIGUOUS?
    273	001214	001401 				BEQ	40$		;BRANCH IF NO
    274	001216	005204 			30$:	INC	R4		;CONTIGUOUS ALLOCATION
    275					;
    276					; SEE IF USER WANTS TO OVERRIDE THE EXTEND SIZE. IF HE SAID /BL:N, THEN
    277					; USE THAN EXTEND SIZE.
    278					;
    279	001220	032767 	000000G	000000G	40$:	BIT	#BLKBIT,CPYCTL	;/BL SWITCH SPECIFIED?
    280	001226	001402 				BEQ	50$		;BRANCH IF NO
    281	001230	016705 	000000G			MOV	BLKCNT,R5	;USE SPECIFIED SIZE
    282	001234	005704 			50$:	TST	R4		;IS EXTEND CONTIGUOUS?
    283	001236	001001 				BNE	60$		;BRANCH IF YES
    284	001240	005405 				NEG	R5		;NEGATIVE FOR NON CONTIGUOUS
    285	001242	010567 	000000G		60$:	MOV	R5,.EXTSZ	;SAVE THE EXTEND INFO
PIPCPY M0224, COPY COMMAND-PIP	MACRO M1113  27-FEB-85 12:24  PAGE 11
**** PIPCPY VERSION M0224 ****

    287
    288					;
    289					; NOW PREPARE TO OPEN THE OUTPUT FILE
    290					;
    291	001246				OUTOPN:
    292	001246	010001 				MOV	R0,R1		;PRESERVE THE INPUT FDB IN R1
    293	001250	012700 	000000G			MOV	#FDBOUT,R0	;OUTPUT FDB
    294	001254	005760 	000070 			TST	F.BDB(R0)	;
    295	001260	001124 				BNE	ISOPEN		;BRANCH IF OUTPUT FILE IS ALEADY OPEN
    296
    297	001262					FDAT$R	R0,F.RTYP(R1),F.RATT(R1),F.RSIZ(R1) ;SET REC ATTRIB.
    298	001304	022760 	050114 	000134 		CMP	#"LP,F.DVNM(R0)	;IF OUTPUT TO LINE PRINTER
    299	001312	001003 				BNE	10$		;
    300	001314					FDBF$R	R0,,#132.	;OVERRIDE BUFFER SIZE
    301	001322				10$:	FDRC$R	R0,OURACC
    302	001330					CALL	PRSREG
    303	001334					CALL	.PARSE
    304	001340	103004 				BCC	15$
    305	001342					CALL	PRSERR
    306	001346	000167 	000000G			JMP	CLOSX
    307	001352				15$:	CALL	.GFOWN		;SET UP FILE OWNER FOR /FO SWITCH
    308	001356	032767 	000000C	000002G		BIT	#APPDBT!UPDTBT,CMDWRD+2
    309	001364	001020 				BNE	OPENAU		;BRANCH IF APPENDING OR UPDATING
    310					;
    311					; CREATING A NEW FILE
    312					;
    313						.IF	GT,R$$DPB	;IF NEW DPB FORMAT
    314	001366					FDAT$R	R0,,,,.EXTSZ	;SET INITIALIZE ALLOCATION
    315
    316
    317						.IFF			;IF OLD DPB FORMAT
    318						MOV	.EXTSZ,R1	;ONLY SET INITIAL SIZE IF CONTIGUOUS
    319						BLT	20$		;BRANCH IF NOT CONTIGUOUS
    320						FDAT$R	R0,,,,R1	;
    321					20$:				;
    322						.ENDC
    323
    324	001374	012705 	000116 			MOV	#FO.WRT!FA.NSP,R5 ;ASSUME NOT SUPERSEDING
    325	001400	032767 	000000G	000000G		BIT	#SPSDBT,CPYCTL	;IS SUPERSEDE DESIRED
    326	001406	001402 				BEQ	30$		;BRANCH IF NO
    327	001410	012705 	000016 			MOV	#FO.WRT,R5	;
    328	001414				30$:	OPEN$	R0,R5		;OPEN A NEW FILE
    329	001424	000437 				BR	OPNCHK
    330
    331					;
    332					; OPEN FOR APPEND OR UPDATE
    333					;
    334	001426				OPENAU:
    335	001426	032767 	000000G	000002G		BIT	#APPDBT,CMDWRD+2
    336	001434	001026 				BNE	20$		;BRANCH IF OPEN FOR APPEND
    337	001436					OPEN$U	R0		;OPEN FOR UPDATE (REWRITE THE FILE)
    338	001450	103425 				BCS	OPNCHK
    339	001452	016702 	000002G			MOV	FDBIN+F.RSIZ,R2	;USE INPUT RECORD SIZE
    340	001456	122767 	000001 	000000G		CMPB	#R.FIX,FDBIN+F.RTYP
    341	001464	001401 				BEQ	10$		;IF FIXED LENGTH RECORDS
    342	001466	005002 				CLR	R2		;OR ZERO IF NOT
    343	001470				10$:	FDAT$R	R0,FDBIN+F.RTYP,FDBIN+F.RATT,R2
PIPCPY M0224, COPY COMMAND-PIP	MACRO M1113  27-FEB-85 12:24  PAGE 11-1
**** PIPCPY VERSION M0224 ****

    344	001510	000560 				BR	COPYGO		;SKIP THE 1ST EXTEND
    345	001512				20$:	OPEN$A	R0		;OPEN FOR APPEND (ADD TO END OF FILE)
    346	001524	103002 			OPNCHK:	BCC	ISOPEN
    347	001526	000167 	000402 			JMP	CERR2
PIPCPY M0224, COPY COMMAND-PIP	MACRO M1113  27-FEB-85 12:24  PAGE 12
**** PIPCPY VERSION M0224 ****

    349					;
    350					; BOTH FILES ARE NOW OPEN. IF RECORD ORIENTED COPY, ALLOCATE REMAINING
    351					; BUFFER SPACE AS A RECORD BUFFER
    352					;
    353	001532	032760 	000001 	000016 	ISOPEN:	BIT	#FD.RWM,F.RACC(R0) ; SEE IF BLOCK COPY IN USE
    354	001540	001040 				BNE	4$		; YES - NO RECORD BUFFER NEEDED
    355	001542					FDRC$R	R0,,#0,#0	;NO USER RECORD BUFFER
    356	001552	005001 				CLR	R1
    357	001554	013702 	000000G			MOV	@#.FSRPT,R2	; GET BUFFER FREE LIST HEAD FROM FSR2
    358	001560	011202 			1$:	MOV	(R2),R2		; CHAIN TO NEXT FREE AREA
    359	001562	001406 				BEQ	2$		; BRANCH IF NO MORE
    360	001564	026201 	000002 			CMP	2(R2),R1	; SEE IF THIS SPACE IS LARGER THAN PREVIOUS
    361	001570	101773 				BLOS	1$		; NO, KEEP LOOKING
    362	001572	016201 	000002 			MOV	2(R2),R1	; YES, CONSIDER THIS SPACE
    363	001576	000770 				BR	1$		; BUT KEEP TRYING
    364
    365	001600	005701 			2$:	TST	R1		; SEE IF WE FOUND ANYTHING
    366	001602	001005 				BNE	3$
    367	001604	012700 	000000G			MOV	#FDBIN,R0
    368	001610					ERROUX	DY01,0		;NOT ENOUGH BUFFER SPACE
	001610	104407 				TRAP	X
	001612	000000G				.WORD	DY01SZ
	001614	000000G				.WORD	DY01MG
    369	001616				3$:	CALL	.DYALC		;ALLOCATE THE EXTRA AS LARGEST POSSIBLE REC BUF
    370	001622					FDRC$R	#FDBIN,,.DYBUF,.DYBYT
    371					;
    372					; OUTPUT FILE IS OPEN - SEE IF EXTEND IS NECESSARY
    373					;
    374	001642	012700 	000000G		4$:	MOV	#FDBOUT,R0
    375	001646	132760 	000041 	000017 		BITB	#FD.REC!FD.SQD,F.RCTL(R0) ;DON'T EXTEND REC OR SEQ DEV
    376	001654	001040 				BNE	30$
    377	001656	016003 	000006 			MOV	F.HIBK+2(R0),R3	;LOW ORDER SIZE OF FILE IN BLOCKS
    378	001662	016002 	000004 			MOV	F.HIBK(R0),R2	;HIGH ORDER SIZE OF FILE
    379	001666	166003 	000012 			SUB	F.EFBK+2(R0),R3	;CALCULATE SPACE AVAILABLE
    380	001672	005602 				SBC	R2
    381	001674	166002 	000010 			SUB	F.EFBK(R0),R2
    382	001700	005760 	000014 			TST	F.FFBY(R0)	;IF FFBY=0
    383	001704	001003 				BNE	10$		;
    384	001706	062703 	000001 			ADD	#1,R3		;SUBTRACTED ONE TOO MANY
    385	001712	005502 				ADC	R2		;
    386	001714	005702 			10$:	TST	R2		;BRANCH IF HIGH ORDER NON-ZERO, (NO EXTEND)
    387	001716	001055 				BNE	40$
    388	001720	016701 	000000G			MOV	.EXTSZ,R1
    389	001724	002001 				BGE	20$
    390	001726	005401 				NEG	R1		;R1=SIZE OF INPUT FILE
    391	001730	160301 			20$:	SUB	R3,R1		;R1=NO. OF ADDITIONAL BLOCKS NEEDED
    392	001732	003447 				BLE	40$		;BRANCH IF EXTEND UNNECESSARY
    393	001734	005002 				CLR	R2		;NON CONTIGUOUS EXTEND
    394	001736					CALL	.EXTND
    395	001742	103043 				BCC	40$
    396					;
    397					; FAILED TO EXTEND-IGNORE FCP STACK OVERFLOW AND DO DEFAULT EXTEND AS
    398					; FILE IS WRITTEN.
    399					;
    400	001744	122760 	177706 	000052 		CMPB	#IE.STK,F.ERR(R0) ;FCP STACK OVERFLOW?
    401	001752	001131 				BNE	CERR52		;BRANCH IF OTHER ERROR
    402	001754	000436 				BR	40$		;
PIPCPY M0224, COPY COMMAND-PIP	MACRO M1113  27-FEB-85 12:24  PAGE 12-1
**** PIPCPY VERSION M0224 ****

    403	001756				30$:	CALL	RECATT		;ATTACH A RECORD DEVICE
    404	001762	103512 				BCS	CERR3
    405	001764	022760 	050114 	000134 		CMP	#"LP,F.DVNM(R0)	;IF OUTPUT TO LP
    406	001772	001027 				BNE	40$
    407	001774					FDAT$R	R0,#R.VAR,#0
    408	002006					PUT$	R0,#LPHDMG,#LPHDSZ ;START WITH A FORM FEED
    409	002026	103532 				BCS	CERR1		;BRANCH IF WRITE ERROR
    410	002030					FDAT$R	R0,FDBIN+F.RTYP,FDBIN+F.RATT,FDBIN+F.RSIZ
    411
    412	002052				40$:
    413	002052	012701 	000000G		COPYGO:	MOV	#FDBIN,R1	;SET R1, R2 TO FDB ADDRESSES
    414	002056	012702 	000000G			MOV	#FDBOUT,R2	;TO GAIN SPEED IN COPY LOOP
    415	002062	132761 	000001 	000016 		BITB	#FD.RWM,F.RACC(R1)
    416	002070	001402 				BEQ	40$
    417	002072	000167 	000452 			JMP	CPYBLK		;BRANCH IF COPYING IN BLOCK MODE
    418					;
    419					; COPY IN RECORD MODE
    420	002076				40$:	GET$	R1
    421	002104	103507 				BCS	CPYEOF		;BRANCH IF ERROR IN READ, EOF?
    422	002106	016767 	000026G	000026G		MOV	FDBIN+F.NRBD+2,FDBOUT+F.NRBD+2 ; SET OUTPUT ADDRESS
    423	002114	016767 	000024G	000024G		MOV	FDBIN+F.NRBD,FDBOUT+F.NRBD ; AND SIZE
    424	002122					PUT$	R2
    425	002130	103362 				BCC	40$		;DO NEXT RECORD IF ALL IS WELL
    426	002132	000470 				BR	CERR1		;WRITE ERROR
PIPCPY M0224, COPY COMMAND-PIP	MACRO M1113  27-FEB-85 12:24  PAGE 13
**** PIPCPY VERSION M0224 ****

    428					;
    429					; FAILED TO OPEN OUTPUT FILE
    430	002134	122760 	177750 	000052 	CERR2:	CMPB	#IE.DFU,F.ERR(R0) ;ALLOCATION FAILURE?
    431	002142	001426 				BEQ	CERR53		;BRANCH IF YES
    432	002144	122760 	177707 	000052 		CMPB	#IE.DUP,F.ERR(R0) ;FILE ALREADY EXISTS?
    433	002152	001404 				BEQ	10$		;BRANCH IF YES
    434	002154					ERROUT	OP02,0,0	;FAILED TO OPEN OUTPUT FILE
	002154	104426 				TRAP	X
	002156	000000G				.WORD	OP02SZ
	002160	000000G				.WORD	OP02MG
    435	002162	000410 				BR	20$
    436	002164				10$:	ERROUT	OP08,0		;OUTPUT FILE ALREADY EXISTS
	002164	104406 				TRAP	X
	002166	000000G				.WORD	OP08SZ
	002170	000000G				.WORD	OP08MG
    437	002172	032767 	000000G	000002G		BIT	#MERGBT,CMDWRD+2	;IF MERGING
    438	002200	001001 				BNE	20$		;THEN CAN'T CONTINUE WITH NEXT FILE
    439	002202	000463 				BR	COPYX		;OTHERWISE GO DO NEXT FILE
    440	002204	000167 	000000G		20$:	JMP	CLOSX
    441					;
    442					; FAILE TO ATTACH THE TTY
    443	002210				CERR3:	ERROUT	DI06,0,0
	002210	104426 				TRAP	X
	002212	000000G				.WORD	DI06SZ
	002214	000000G				.WORD	DI06MG
    444	002216	000455 				BR	COPYX
    445					;
    446					; EXTEND FAILURE AT OPEN TIME
    447					;
    448	002220	012702 	000001 		CERR53:	MOV	#1,R2		;ASSUME IT WAS CONTIGUOUS EXTEND
    449	002224	016701 	000000G			MOV	.EXTSZ,R1
    450	002230	002002 				BGE	CERR52		;BRANCH IF IT WAS CONTIGUOUS
    451	002232	005002 				CLR	R2		;NON-CONTIGUOUS
    452	002234	005401 				NEG	R1
    453					;
    454					; FAILED TO EXTEND THE OUTPUT FILE
    455					; R1 = DESIRED SIZE OF EXTEND, R2=0 FOR NON-CONTIGUOUS EXTEND, 1 FOR
    456					; CONTIGUOUS REQUEST.
    457					;
    458	002236	122760 	177750 	000052 	CERR52:	CMPB	#IE.DFU,F.ERR(R0) ;DEVICE FULL?
    459	002244	001016 				BNE	30$		;BRANCH IF SOME OTHER ERROR
    460	002246	005702 				TST	R2		;ASKING FOR CONTIGUOUS SPACE?
    461	002250	001010 				BNE	20$		;BRANCH IF YES
    462	002252	010146 				MOV	R1,-(SP)	;SAVE EXTEND SIZE
    463	002254					ERROUT	CP11,0		;COULDN'T ALLOCATE ANY SPACE
	002254	104406 				TRAP	X
	002256	000000G				.WORD	CP11SZ
	002260	000000G				.WORD	CP11MG
    464	002262	022627 	000024 			CMP	(SP)+,#20.	;IF RELATIVELY LARGE SPACE WAS NEEDED
    465	002266	101031 				BHI	COPYX		;GO TRY NEXT FILE
    466	002270	000407 				BR	40$		;OTHERWISE STOP THE COPY LOOP NOW
    467	002272				20$:	ERROUT	CP10,0		;FAILED TO FIND CONTIGUOUS SPACE
	002272	104406 				TRAP	X
	002274	000000G				.WORD	CP10SZ
	002276	000000G				.WORD	CP10MG
    468	002300	000424 				BR	COPYX		;GO TRY TO COPY NEXT FILE
    469	002302				30$:	ERROUT	CP12,0,0	;COULDN'T EXTEND - PRINT REASON
PIPCPY M0224, COPY COMMAND-PIP	MACRO M1113  27-FEB-85 12:24  PAGE 13-1
**** PIPCPY VERSION M0224 ****

	002302	104426 				TRAP	X
	002304	000000G				.WORD	CP12SZ
	002306	000000G				.WORD	CP12MG
    470	002310	000167 	000000G		40$:	JMP	CLOSX		;EXIT FROM THE COPY LOOP
    471					;
    472					; WRITE ERROR
    473	002314				CERR1:	ERROUT	CP14,0,0
	002314	104426 				TRAP	X
	002316	000000G				.WORD	CP14SZ
	002320	000000G				.WORD	CP14MG
    474	002322	000413 				BR	COPYX
PIPCPY M0224, COPY COMMAND-PIP	MACRO M1113  27-FEB-85 12:24  PAGE 14
**** PIPCPY VERSION M0224 ****

    476	002324	122760 	177766 	000052 	CPYEOF:	CMPB	#IE.EOF,F.ERR(R0)
    477	002332	001407 				BEQ	COPYX
    478					;
    479					; READ ERROR
    480	002334				CERR6:	ERROUT	CP13,0,0
	002334	104426 				TRAP	X
	002336	000000G				.WORD	CP13SZ
	002340	000000G				.WORD	CP13MG
    481	002342	000403 				BR	COPYX
    482
    483	002344	042767 	000000G	000122G	CPYNXT:	BIC	#NB.SFL,FDBIN+F.FNB+N.STAT
    484	002352				COPYX:	CALL	CLSIN		;CLOSE INPUT FILE
    485	002356					CALL	.DYREL		; RELEASE THE RECORD BUFFER TO KEEP FSR CLEAN
    486	002362	032767 	000000G	000002G		BIT	#MERGBT,CMDWRD+2 ;AND THE OUTPUT FILE UNLESS MERGE MODE
    487	002370	001033 				BNE	10$
    488	002372	005767 	000070G			TST	FDBOUT+F.BDB	;NEED TO CLOSE OUTPUT FILE?
    489	002376	001426 				BEQ	5$		;BRANCH IF ALREADY CLOSED
    490	002400	016746 	000102G			MOV	FDBOUT+F.FNB+N.FID,-(SP) ;SAVE OUTPUT FILE ID
    491	002404					CALL	CLSOUT		;CLOSE THE OUTPUT FILE
    492	002410	012602 				MOV	(SP)+,R2	;R2=SAVED FILE NUMBER
    493	002412	016703 	000000G			MOV	.FOWNR,R3	;IF NO FILE OWNER SPECIFIED
    494	002416	001416 				BEQ	5$		;DON'T WRITE ATTRIBUTES
    495	002420	010260 	000102 			MOV	R2,F.FNB+N.FID(R0) ;OTHERWISE RESTORE THE FILE ID
    496	002424	005046 				CLR	-(SP)		;SET UP ATTRIBUTE LIST
    497	002426	012746 	000000G			MOV	#.FOWNR,-(SP)	;ADDRESS OF FILE OWNER
    498	002432	012746 	000000G			MOV	#HA.UI,-(SP)	;WRITE FILE OWNER ATTRIBUTE
    499	002436	010601 				MOV	SP,R1		;R1=ADDRESS OF ATTRIBUTE LIST
    500	002440					CALL	WRTATT		;ISSUE THE WRITE ATTRIBUTES QI/O AND WAIT
    501	002444	062706 	000006 			ADD	#6,SP		;POP THE ATTRIBUTE LIST
    502	002450	005067 	000102G			CLR	FDBOUT+F.FNB+N.FID ;ZERO THE FILE NUMBER AGAIN
    503	002454	005067 	000000G		5$:	CLR	BLKCNT		;RESET ONLY IF NOT A MERGE OPERATION
    504	002460	012700 	000000G		10$:	MOV	#FDBIN,R0	;R0=INPUT FDB ADDRESS
    505	002464					CALL	NXTFIL		;IS THERE A WILD CARD FILE?
    506	002470	103405 				BCS	CPYNX1		;BRANCH IF NO
    507	002472	042767 	000000G	000000G		BIC	#FRSTIM,CPYCTL	;SAY "NOT THE FIRST TIME"
    508	002500	000167 	175724 			JMP	CPYWLD
    509	002504				CPYNX1:	CALL	NXTIN		;GET THE NEXT INPUT SPECIFIER
    510	002510	103402 				BCS	10$		;BRANCH IF NO MORE SPECS
    511	002512	000167 	175606 			JMP	COPY2
    512	002516	000167 	000000G		10$:	JMP	CLOSX
    513
    514					; FAILED TO OPEN INPUT FILE
    515	002522	122760 	177746 	000052 	CERR51:	CMPB	#IE.NSF,F.ERR(R0)  ;WAS FILE NOT FOUND?
    516	002530	001003 				BNE	CERR13		;BRANCH IF SOME OTHER ERROR
    517	002532					CALL	FNDERR
    518	002536	000705 				BR	COPYX
    519	002540				CERR13:	ERROUT	OP01,0,0
	002540	104426 				TRAP	X
	002542	000000G				.WORD	OP01SZ
	002544	000000G				.WORD	OP01MG
    520	002546	000701 				BR	COPYX
PIPCPY M0224, COPY COMMAND-PIP	MACRO M1113  27-FEB-85 12:24  PAGE 15
**** PIPCPY VERSION M0224 ****

    522					;
    523					; COPY IN BLOCK MODE
    524	002550	016767 	000000G	000014'	CPYBLK:	MOV	.DYBUF,QIODPB+Q.XFAD ;PUT BUFFER ADDRESS IN DPB
    525	002556	016704 	000010G			MOV	FDBIN+F.EFBK,R4
    526	002562	016705 	000012G			MOV	FDBIN+F.EFBK+2,R5 ;R4,R5 = NO.OF BLOCK IN USE
    527	002566	005767 	000014G			TST	FDBIN+F.FFBY	 ;ONE TOO BIG IF FFBY=0
    528	002572	001003 				BNE	10$
    529	002574	162705 	000001 			SUB	#1,R5
    530	002600	005604 				SBC	R4
    531	002602	005067 	000022'		10$:	CLR	QIODPB+Q.XFVB
    532	002606	012767 	000001 	000024'		MOV	#1,QIODPB+Q.XFVB+2 ;START AT VBN 1
    533	002614	016703 	000000G		20$:	MOV	.DYBLK,R3	;R3=NO. OF BLOCKS AVAILABLE IN BUFFER
    534	002620	005704 				TST	R4		;IF MORE THAN 65K BLOCKS LEFT
    535	002622	001004 				BNE	30$		;TRANSFER MAX BUFFER SIZE
    536	002624	020503 				CMP	R5,R3		;OR IF MORE BLOCKS THAN BUFFER SPACE
    537	002626	101002 				BHI	30$		;TRANSFER MAX BUFFER SIZE
    538	002630	010503 				MOV	R5,R3		;OTHERWISE USE WHAT'S LEFT
    539	002632	001434 				BEQ	40$		;BRANCH IF NONE LEFT, ALL DONE
    540	002634	010301 			30$:	MOV	R3,R1
    541	002636	000301 				SWAB	R1
    542	002640	006301 				ASL	R1		;CONVERT BLOCK COUNT TO BYTE COUNT
    543	002642	010167 	000016'			MOV	R1,QIODPB+Q.XFSZ ;AND STORE IT IN THE DPB
    544	002646	012767 	000000G	000002'		MOV	#IO.RVB,QIODPB+Q.IOFN ;I/O FUNCTION CODE FOR READ VIRTUAL
    545	002654	012700 	000000G			MOV	#FDBIN,R0
    546	002660					CALL	RWGO		;PERFORM THE READ
    547	002664	103623 				BCS	CERR6		;BRANCH IF ERROR
    548	002666	012767 	000000G	000002'		MOV	#IO.WVB,QIODPB+Q.IOFN ;I/O FUCNTION CODE FOR WRITE VIRTUAL
    549	002674	012700 	000000G			MOV	#FDBOUT,R0
    550	002700					CALL	RWGO		;WRITE THE BLOCK
    551	002704	103603 				BCS	CERR1
    552	002706	160305 				SUB	R3,R5
    553	002710	005604 				SBC	R4		;R4,R5 = NO. OF BLOCKS LEFT TO TRANSFER
    554	002712	060367 	000024'			ADD	R3,QIODPB+Q.XFVB+2
    555	002716	005567 	000022'			ADC	QIODPB+Q.XFVB	;UPDATE THE NEXT VBN
    556	002722	000734 				BR	20$		;GO DO THE NEXT SET OF VBN'S
    557	002724	016767 	000010G	000010G	40$:	MOV	FDBIN+F.EFBK,FDBOUT+F.EFBK ;SET OUTPUT EOF
    558	002732	016767 	000012G	000012G		MOV	FDBIN+F.EFBK+2,FDBOUT+F.EFBK+2
    559	002740	016767 	000014G	000014G		MOV	FDBIN+F.FFBY,FDBOUT+F.FFBY
    560	002746	000601 				BR	COPYX
    561					;+
    562					; START UP A READ OR WRITE VIRTUAL BLOCK FOR BLOCK MODE COPY
    563					;
    564					; INPUTS:
    565					;
    566					;	R0=FDB ADDRESS
    567					;
    568					; OUTPUTS:
    569					;
    570					;	C=0 IF SUCCESSFUL, C=1 IF ERROR
    571					;	F.ERR(R0) SET TO ERROR CODE IF ERROR
    572					;	ALL REGISTERS PRESERVED
    573					;
    574					;-
    575	002750	116067 	000042 	000004'	RWGO:	MOVB	F.LUN(R0),QIODPB+Q.IOLU
    576	002756	005060 	000052 		10$:	CLR	F.ERR(R0)
    577	002762					DIR$	#QIODPB		;ISSUE THE QI/O
    578	002770	103416 				BCS	20$
PIPCPY M0224, COPY COMMAND-PIP	MACRO M1113  27-FEB-85 12:24  PAGE 15-1
**** PIPCPY VERSION M0224 ****

    579	002772					WTSE$S	#RWEFN		;WAIT FOR COMPLETION
    580	003004	116760 	000000G	000052 		MOVB	IOSTBK,F.ERR(R0) ;SET ERROR IF ANY
    581	003012	002415 				BLT	30$		;BRANCH IF ERROR
    582	003014	026767 	000002G	000016'		CMP	IOSTBK+2,QIODPB+Q.XFSZ ;ALL BYTES TRANSFERRED?
    583	003022	001021 				BNE	50$		;BRANCH IF NO, ERROR
    584	003024					RETURN
    585	003026	013760 	000000G	000052 	20$:	MOV	@#$DSW,F.ERR(R0) ;PICK UP REASON FOR QI/O FAILURE
    586	003034	022760 	000000G	000052 		CMP	#IE.UPN,F.ERR(R0) ;OUT OF DYNAMIC MEMORY?
    587	003042	001405 				BEQ	40$		;YES, WAIT AND TRY AGAIN
    588	003044	000413 				BR	60$
    589	003046	122760 	177751 	000052 	30$:	CMPB	#IE.NOD,F.ERR(R0) ;NO DYNAMIC MEMORY AVAILABLE?
    590	003054	001007 				BNE	60$
    591	003056				40$:	WSIG$S			;YES, WAIT AND TRY AGAIN
    592	003064	000734 				BR	10$
    593	003066	112760 	177761 	000052 	50$:	MOVB	#IE.ABO,F.ERR(R0) ;FAILED TO TRANSFER DESIRED COUNT, ABORT
    594	003074	000261 			60$:	SEC
    595	003076					RETURN
    596
    597					;
    598					;
    599		000001 				.END
PIPCPY M0224, COPY COMMAND-PIP	MACRO M1113  27-FEB-85 12:24  PAGE 15-2
SYMBOL TABLE

APPDBT= ****** GX	CS.WLD= 000010   	F.BKEF= 000050   	IE.DFU= 177750   	ISOPEN  001532R     004
BLKBIT= ****** GX	CWLDUI= ****** GX	F.BKP1= 000051   	IE.DNA= 177771   	IS.BV = 000005
BLKCNT= ****** GX	C.CMLD= 000002   	F.BKST= 000024   	IE.DNR= 177775   	IS.CR = 006401
CERR1   002314R     004	C.DEVD= 000006   	F.BKVB= 000064   	IE.DUN= 177767   	IS.ESC= 015401
CERR13  002540R     004	C.DIRD= 000012   	F.CNTG= 000034   	IE.DUP= 177707   	IS.PND= 000000
CERR2   002134R     004	C.DSDS= 000006   	F.DFNB= 000046   	IE.EBX= 177776   	IS.RDD= 000002
CERR3   002210R     004	C.FILD= 000016   	F.DSPT= 000044   	IE.EOF= 177766   	IS.SUC= 000001
CERR51  002522R     004	C.MKW1= 000024   	F.DVNM= 000134   	IE.EOT= 177702   	LPHDMG= 000000R     002
CERR52  002236R     004	C.MKW2= 000026   	F.EFBK= 000010   	IE.EOV= 177765   	LPHDSZ= 000001
CERR53  002220R     004	C.SIZE= 000054   	F.EFN = 000050   	IE.EXP= 177676   	MERGBT= ****** GX
CERR6   002334R     004	C.STAT= 000001   	F.EOBB= 000032   	IE.FEX= 177717   	NAMBLK= ****** GX
CLOSX = ****** GX	C.SWAD= 000022   	F.ERR = 000052   	IE.FHE= 177705   	NB.DEV= 000200
CLSIN = ****** GX	C.TYPR= 000000   	F.FACC= 000043   	IE.FOP= 177713   	NB.DIR= 000100
CLSOUT= ****** GX	DI06MG= ****** GX	F.FFBY= 000014   	IE.HFU= 177744   	NB.NAM= 000004
CMDWRD= ****** GX	DI06SZ= ****** GX	F.FNAM= 000110   	IE.IFC= 177776   	NB.SDI= ****** GX
CNTGBT= ****** GX	DY01MG= ****** GX	F.FNB = 000102   	IE.IFU= 177747   	NB.SD1= 000400
COPY    000000RG    004	DY01SZ= ****** GX	F.FTYP= 000116   	IE.ILL= 177726   	NB.SD2= 001000
COPYGO  002052R     004	EXTSIZ  001146R     004	F.FVER= 000120   	IE.ISQ= 177703   	NB.SFL= ****** GX
COPYX   002352R     004	FA.APD= 000100   	F.HIBK= 000004   	IE.LCK= 177745   	NB.SFN= ****** GX
COPY1   000454R     004	FA.CRE= 000010   	F.LUN = 000042   	IE.MBK= 177721   	NB.SNM= 000040
COPY2   000324R     004	FA.EXT= 000004   	F.MBCT= 000054   	IE.MOD= 177753   	NB.STP= 000020
CPYBLK  002550R     004	FA.NSP= 000100   	F.MBC1= 000055   	IE.NBF= 177731   	NB.SVR= 000010
CPYCTL= ****** GX	FA.RD = 000001   	F.MBFG= 000056   	IE.NBK= 177727   	NB.TYP= 000002
CPYEOF  002324R     004	FA.SHR= 000040   	F.NRBD= 000024   	IE.NFI= 177704   	NB.VER= 000001
CPYNXT  002344R     004	FA.TMP= 000020   	F.NREC= 000030   	IE.NLN= 177733   	NMBLK1= ****** GX
CPYNX1  002504R     004	FA.WRT= 000002   	F.OVBS= 000030   	IE.NNC= 177674   	NTCNTG= ****** GX
CPYOPN  001046R     004	FDBIN = ****** GX	F.RACC= 000016   	IE.NOD= 177751   	NVERBT= ****** GX
CPYWLD  000430R     004	FDBOUT= ****** GX	F.RATT= 000001   	IE.NSF= 177746   	NXTFIL= ****** GX
CP01MG= ****** GX	FD.BLK= 000010   	F.RCNM= 000034   	IE.OFL= 177677   	NXTIN = ****** GX
CP01SZ= ****** GX	FD.CCL= 000002   	F.RCTL= 000017   	IE.ONP= 177773   	N.DEVD= 000000
CP02MG= ****** GX	FD.CR = 000002   	F.RSIZ= 000002   	IE.OVR= 177756   	N.DID = 000024
CP02SZ= ****** GX	FD.DIR= 000010   	F.RTYP= 000000   	IE.PRI= 177760   	N.DIRD= 000004
CP03MG= ****** GX	FD.FTN= 000001   	F.STBK= 000036   	IE.RAC= 177724   	N.DVNM= 000032
CP03SZ= ****** GX	FD.INS= 000010   	F.UNIT= 000136   	IE.RAT= 177723   	N.FID = 000000
CP04MG= ****** GX	FD.PLC= 000004   	F.URBD= 000020   	IE.RBG= 177730   	N.FLID= 000016
CP04SZ= ****** GX	FD.RAH= 000001   	F.VBN = 000064   	IE.RCN= 177722   	N.FNAM= 000006
CP05MG= ****** GX	FD.RAN= 000002   	F.VBSZ= 000060   	IE.RER= 177740   	N.FNMD= 000010
CP05SZ= ****** GX	FD.REC= 000001   	HA.UI = ****** GX	IE.RNM= 177715   	N.FTYP= 000014
CP10MG= ****** GX	FD.RWM= 000001   	IE.ABO= 177761   	IE.RSU= 177757   	N.FVER= 000016
CP10SZ= ****** GX	FD.SDI= 000020   	IE.ALN= 177736   	IE.SNC= 177735   	N.NEXT= 000022
CP11MG= ****** GX	FD.SQD= 000040   	IE.BAD= 177777   	IE.SPC= 177772   	N.SPEC= 000014
CP11SZ= ****** GX	FD.TTY= 000004   	IE.BBE= 177710   	IE.SQC= 177734   	N.STAT= 000020
CP12MG= ****** GX	FD.WBH= 000002   	IE.BDI= 177714   	IE.SRE= 177762   	N.UNIT= 000034
CP12SZ= ****** GX	FNDERR= ****** GX	IE.BDR= 177716   	IE.STK= 177706   	OFNPT = ****** GX
CP13MG= ****** GX	FNDNXT= ****** GX	IE.BDV= 177711   	IE.UPN= ****** GX	OPENAU  001426R     004
CP13SZ= ****** GX	FO.APD= 000106   	IE.BHD= 177700   	IE.VER= 177774   	OPNCHK  001524R     004
CP14MG= ****** GX	FO.MFY= 000002   	IE.BLK= 177754   	IE.WAC= 177743   	OP01MG= ****** GX
CP14SZ= ****** GX	FO.RD = 000001   	IE.BNM= 177712   	IE.WAT= 177741   	OP01SZ= ****** GX
CP15MG= ****** GX	FO.UPD= 000006   	IE.BTF= 177675   	IE.WER= 177737   	OP02MG= ****** GX
CP15SZ= ****** GX	FO.WRT= 000016   	IE.BTP= 177725   	IE.WLK= 177764   	OP02SZ= ****** GX
CS.DIF= 000002   	FRSTIM= ****** GX	IE.BVR= 177701   	IE.2DV= 177720   	OP08MG= ****** GX
CS.DVF= 000004   	F.ALOC= 000040   	IE.BYT= 177755   	IFNPT = ****** GX	OP08SZ= ****** GX
CS.EQU= 000040   	F.BBFS= 000062   	IE.CKS= 177742   	INRACC= ****** GX	OURACC= ****** GX
CS.INP= 000001   	F.BDB = 000070   	IE.CLO= 177732   	INSPEC= ****** GX	OUSPEC= ****** GX
CS.MOR= 000020   	F.BGBC= 000057   	IE.CON= 177752   	IOSTBK= ****** GX	OUTOPN  001246R     004
CS.NMF= 000001   	F.BKDN= 000026   	IE.DAA= 177770   	IO.RVB= ****** GX	OWUIC = ****** GX
CS.OUT= 000002   	F.BKDS= 000020   	IE.DAO= 177763   	IO.WVB= ****** GX	PARSE = ****** GX
PIPCPY M0224, COPY COMMAND-PIP	MACRO M1113  27-FEB-85 12:24  PAGE 15-3
SYMBOL TABLE

PAR$$$= 000002   	RECATT= ****** GX	STNMBK= ****** GX	WRTATT= ****** GX	.EXTND= ****** GX
PRSERR= ****** GX	RWEFN = ****** GX	S.APPD= 000010   	X     = 000026   	.EXTSZ= ****** GX
PRSREG= ****** GX	RWGO    002750R     004	S.FATT= 000016   	$DSW  = ****** GX	.FOWNR= ****** GX
QIODPB  000000R     003	R$$DPB= 000001   	S.FDB = 000140   	$$    = 000067   	.FSRPT= ****** GX
Q.IOAE= 000012   	R$$DYM= 000001   	S.FIDS= 000014   	$$MSG = 000000   	.GETSQ= ****** G
Q.IOEF= 000006   	R$$EIS= 000000   	S.FNAM= 000006   	$$$ARG= 000013   	.GFOWN= ****** GX
Q.IOFN= 000002   	R$$MSG= 000000   	S.FNB = 000036   	$$$OST= 000014   	.LCLSW= ****** GX
Q.IOLU= 000004   	R$$11M= 000001   	S.FNBW= 000017   	.DYALC= ****** GX	.OPFNB= ****** G
Q.IOPL= 000014   	R.FIX = 000001   	S.FNTY= 000004   	.DYBLK= ****** GX	.OULCL= ****** GX
Q.IOPR= 000007   	R.VAR = 000002   	S.FTYP= 000002   	.DYBUF= ****** GX	.PARSE= ****** GX
Q.IOSB= 000010   	SPSDBT= ****** GX	S.NFEN= 000020   	.DYBYT= ****** GX	.PUTSQ= ****** G
Q.XFAD= 000014   	STBLK = ****** GX	UPDTBT= ****** GX	.DYREL= ****** GX	...GBL= 000000
Q.XFSZ= 000016   	STNBK1= ****** GX	VERSAV= ****** GX	.DYSIZ= ****** GX	...TPC= 000140
Q.XFVB= 000022

. ABS.	000000	   000
      	000000	   001
MSGSTR	000001	   002
IMPURE	000026	   003
PURE$I	003100	   004
ERRORS DETECTED:  0

VIRTUAL MEMORY USED:  7794 WORDS  ( 31 PAGES)
DYNAMIC MEMORY:  8846 WORDS  ( 34 PAGES)
ELAPSED TIME:  00:00:47
[43,10]PIPCPY,[43,20]PIPCPY/-SP/CR=[43,30]PIPMAC,PIPCPY
PIPCPY     CREATED BY  MACRO  ON 27-FEB-85 AT 12:25	PAGE 1

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

APPDBT	= ******  GX	 8-68       11-308     11-335    
BLKBIT	= ******  GX	 10-279    
BLKCNT	= ******  GX	 10-281    *14-503    
CERR1 	  002314 R	 12-409     12-426    #13-473     15-551    
CERR13	  002540 R	 14-516    #14-519    
CERR2 	  002134 R	 11-347    #13-430    
CERR3 	  002210 R	 12-404    #13-443    
CERR51	  002522 R	 10-242    #14-515    
CERR52	  002236 R	 12-401     13-450    #13-458    
CERR53	  002220 R	 13-431    #13-448    
CERR6 	  002334 R	#14-480     15-547    
CLOSX 	= ******  GX	 8-90       11-306     13-440     13-470     14-512    
CLSIN 	= ******  GX	 14-484     14-484    
CLSOUT	= ******  GX	 14-491     14-491    
CMDWRD	= ******  GX	 8-68      *8-70       8-110     *8-119     *9-138      9-195      11-308     11-335     13-437    
                         14-486    
CNTGBT	= ******  GX	 10-272    
COPY  	  000000 RG	#8-65      
COPYGO	  002052 R	 11-344    #12-413    
COPYX 	  002352 R	 13-439     13-444     13-465     13-468     13-474     14-477     14-481    #14-484     14-518    
                         14-520     15-560    
COPY1 	  000454 R	 9-141     #9-146     
COPY2 	  000324 R	#9-123      14-511    
CPYBLK	  002550 R	 12-417    #15-524    
CPYCTL	= ******  GX	*9-128      9-165      10-263     10-272     10-279     11-325    *14-507    
CPYEOF	  002324 R	 12-421    #14-476    
CPYNXT	  002344 R	 9-126      9-145      9-189     #14-483    
CPYNX1	  002504 R	 14-506    #14-509    
CPYOPN	  001046 R	 9-194      9-198      9-200      9-202      9-206      9-208      9-228     #10-231    
CPYWLD	  000430 R	 9-130      9-132      9-134      9-137     #9-139      14-508    
CP01MG	= ******  GX	 8-93      
CP01SZ	= ******  GX	 8-93      
CP02MG	= ******  GX	 8-73      
CP02SZ	= ******  GX	 8-73      
CP03MG	= ******  GX	 9-181     
CP03SZ	= ******  GX	 9-181     
CP04MG	= ******  GX	 8-104     
CP04SZ	= ******  GX	 8-104     
CP05MG	= ******  GX	 8-114     
CP05SZ	= ******  GX	 8-114     
CP10MG	= ******  GX	 13-467    
CP10SZ	= ******  GX	 13-467    
CP11MG	= ******  GX	 13-463    
CP11SZ	= ******  GX	 13-463    
CP12MG	= ******  GX	 13-469    
CP12SZ	= ******  GX	 13-469    
CP13MG	= ******  GX	 14-480    
CP13SZ	= ******  GX	 14-480    
CP14MG	= ******  GX	 13-473    
CP14SZ	= ******  GX	 13-473    
CP15MG	= ******  GX	 9-188     
CP15SZ	= ******  GX	 9-188     
PIPCPY     CREATED BY  MACRO  ON 27-FEB-85 AT 12:25	PAGE 2

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

CS.MOR	= 000020	 8-115     
CS.NMF	= 000001	 8-105      8-108      9-129      9-136      9-148     
CS.WLD	= 000010	 8-115     
CWLDUI	= ******  GX	 8-91       8-91      
DI06MG	= ******  GX	 13-443    
DI06SZ	= ******  GX	 13-443    
DY01MG	= ******  GX	 12-368    
DY01SZ	= ******  GX	 12-368    
EXTSIZ	  001146 R	#10-257    
FA.NSP	= 000100	 11-324    
FDBIN 	= ******  GX	*8-80      *8-83       8-120      9-159      9-167      9-168      9-170      9-173      9-178     
                         9-186      9-197      9-197      9-199      9-201      9-205      9-225      11-339     11-340    
                         11-343     11-343     12-367     12-370     12-370     12-410     12-410     12-410     12-413    
                         12-422     12-423    *14-483     14-504     15-525     15-526     15-527     15-545     15-557    
                         15-558     15-559    
FDBOUT	= ******  GX	*8-75      *8-84       8-85       9-158      9-168      9-170      9-174      9-193      9-199     
                         9-207      11-293     12-374     12-414    *12-422    *12-423     14-488     14-490    *14-502    
                         15-549    *15-557    *15-558    *15-559    
FD.DIR	= 000010	 8-112      9-133     
FD.PLC	= 000004	 9-147     
FD.REC	= 000001	 9-205      9-207      12-375    
FD.RWM	= 000001	 9-226      9-227      12-353     12-415    
FD.SQD	= 000040	 9-205      9-207      10-233     10-248     12-375    
FNDERR	= ******  GX	 9-144      9-144      14-517     14-517    
FNDNXT	= ******  GX	 9-140      9-140     
FO.APD	= 000106	 11-345    
FO.RD 	= 000001	 10-240    
FO.UPD	= 000006	 11-337    
FO.WRT	= 000016	 8-86       11-324     11-327    
FRSTIM	= ******  GX	 9-128      14-507    
F.BBFS	= 000062	 9-199      9-199      9-201     
F.BDB 	= 000070	 9-193      11-294     14-488    
F.CNTG	= 000034	*11-314    
F.DFNB	= 000046	*8-75      *8-80      
F.DSPT	= 000044	*8-83      *8-84       9-158      9-159     
F.DVNM	= 000134	 9-168      9-168      11-298     12-405    
F.EFBK	= 000010	 10-268     12-379     12-381     15-525     15-526     15-557    *15-557     15-558    *15-558    
F.ERR 	= 000052	 12-400     13-430     13-432     13-458     14-476     14-515    *15-576    *15-580    *15-585    
                         15-586     15-589    *15-593    
F.FACC	= 000043	*8-86      *10-240    *11-328    *11-337    *11-345    
F.FFBY	= 000014	 10-269     12-382     15-527     15-559    *15-559    
F.FNAM	= 000110	 9-151     
F.FNB 	= 000102	 9-173      9-174      9-178      9-186     *14-483     14-490    *14-495    *14-502    
F.FVER	= 000120	 9-127     *9-139      9-167     
F.HIBK	= 000004	 10-250     12-377     12-378    
F.LUN 	= 000042	 15-575    
F.NRBD	= 000024	*12-408    *12-408     12-422    *12-422     12-423    *12-423    
F.OVBS	= 000030	*9-197     *11-300    
F.RACC	= 000016	*10-240    *11-301     12-353     12-415    
F.RATT	= 000001	 11-297    *11-297     11-343    *11-343    *12-407     12-410    *12-410    
F.RCTL	= 000017	 8-112      9-133      9-205      9-207      10-233     10-248     12-375    
F.RSIZ	= 000002	 11-297    *11-297     11-339    *11-343     12-410    *12-410    
PIPCPY     CREATED BY  MACRO  ON 27-FEB-85 AT 12:25	PAGE 3

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

F.RTYP	= 000000	 11-297    *11-297     11-340     11-343    *11-343    *12-407     12-410    *12-410    
F.STBK	= 000036	*10-235    
F.UNIT	= 000136	 9-170      9-170     
F.URBD	= 000020	*12-355    *12-355    *12-370    *12-370    
HA.UI 	= ******  GX	 14-498    
IE.ABO	= 177761	 15-593    
IE.DFU	= 177750	 13-430     13-458    
IE.DUP	= 177707	 13-432    
IE.EOF	= 177766	 14-476    
IE.NOD	= 177751	 15-589    
IE.NSF	= 177746	 14-515    
IE.STK	= 177706	 12-400    
IE.UPN	= ******  GX	 15-586    
IFNPT 	= ******  GX	 8-83      
INRACC	= ******  GX	*9-147     *9-226      10-240    
INSPEC	= ******  GX	 8-71       8-115      9-129     
IOSTBK	= ******  GX	 7-57       15-580     15-582    
IO.RVB	= ******  GX	 15-544    
IO.WVB	= ******  GX	 15-548    
ISOPEN	  001532 R	 11-295     11-346    #12-353    
LPHDMG	= 000000 R	#7-53       7-53       12-408    
LPHDSZ	= 000001	#7-53       12-408    
MERGBT	= ******  GX	 8-70       8-110      8-119      9-138      9-195      13-437     14-486    
MSGBL.	= ******	 7-53      
NAMBLK	= ******  GX	 8-75      *9-167     *9-190     
NB.SDI	= ******  GX	 9-156     
NB.SFL	= ******  GX	 9-178      14-483    
NB.SFN	= ******  GX	 8-94       8-97       8-98       8-107      9-135     
NB.SNM	= 000040	 8-100     
NB.STP	= 000020	 8-100     
NB.SVR	= 000010	 9-186     
NB.VER	= 000001	 8-102     
NMBLK1	= ******  GX	 8-79      
NTCNTG	= ******  GX	 10-263    
NVERBT	= ******  GX	 9-165     
NXTFIL	= ******  GX	 14-505     14-505    
NXTIN 	= ******  GX	 14-509     14-509    
N.DEVD	= 000000	#7-42      
N.DID 	= 000024	 9-173      9-174     
N.DIRD	= 000004	#7-42       9-160     *9-160      9-161     *9-161     
N.FID 	= 000000	 14-490    *14-495    *14-502    
N.FLID	= 000016	#7-42       9-131     
N.FNMD	= 000010	#7-42      *8-106     
N.FVER	= 000016	*9-167     *9-190     
N.SPEC	= 000014	#7-42      
N.STAT	= 000020	 8-94       8-96       8-102     *8-107     *9-135      9-156      9-178      9-186     *14-483    
OFNPT 	= ******  GX	 8-84      *8-106     
OPENAU	  001426 R	 11-309    #11-334    
OPNCHK	  001524 R	 11-329     11-338    #11-346    
OP01MG	= ******  GX	 14-519    
OP01SZ	= ******  GX	 14-519    
OP02MG	= ******  GX	 13-434    
PIPCPY     CREATED BY  MACRO  ON 27-FEB-85 AT 12:25	PAGE 4

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

OP02SZ	= ******  GX	 13-434    
OP08MG	= ******  GX	 13-436    
OP08SZ	= ******  GX	 13-436    
OURACC	= ******  GX	*9-146     *9-227      11-301    
OUSPEC	= ******  GX	*8-105      8-108      9-136      9-148     
OUTOPN	  001246 R	#11-291    
OWUIC 	= ******  GX	 9-156     
PARSE 	= ******  GX	 8-87       8-87       9-123      9-123     
PAR$$$	= 000002	#9-197      9-197     #10-240     10-240    #11-297     11-297    #11-300     11-300    #11-301    
                         11-301    #11-314     11-314    #11-328     11-328    #11-337     11-337    #11-343     11-343    
                        #11-345     11-345    #12-355     12-355    #12-370     12-370    #12-407     12-407    #12-408    
                         12-408    #12-410     12-410    #12-420     12-420    #12-424     12-424    
PRSERR	= ******  GX	 8-89       8-89       9-125      9-125      11-305     11-305    
PRSREG	= ******  GX	 11-302     11-302    
QIODPB	  000000 R	#7-57      *15-524    *15-531    *15-532    *15-543    *15-544    *15-548    *15-554    *15-555    
                        *15-575     15-577     15-582    
Q.IOAE	= 000012	#7-57      
Q.IOEF	= 000006	#7-57      
Q.IOFN	= 000002	#7-57      *15-544    *15-548    
Q.IOLU	= 000004	#7-57      *15-575    
Q.IOPL	= 000014	#7-57       7-58       7-59       7-60      
Q.IOPR	= 000007	#7-57      
Q.IOSB	= 000010	#7-57      
Q.XFAD	= 000014	#7-58      *15-524    
Q.XFSZ	= 000016	#7-59      *15-543     15-582    
Q.XFVB	= 000022	#7-60      *15-531    *15-532    *15-554    *15-555    
RECATT	= ******  GX	 12-403     12-403    
RONLY$	= ******	 7-53       7-53       8-62       8-62      
RWEFN 	= ******  GX	 7-57       15-579    
RWGO  	  002750 R	 15-546     15-546     15-550     15-550    #15-575    
R$$DPB	= 000001	#1-27       11-313    
R$$DYM	= 000001	#1-29      
R$$EIS	= 000000	#1-28       1-38      
R$$MSG	= 000000	 7-53       7-53      
R$$11M	= 000001	#1-25       1-26       7-1        7-24      
R.FIX 	= 000001	 11-340    
R.VAR 	= 000002	 12-407    
SPSDBT	= ******  GX	 11-325    
STBLK 	= ******  GX	 10-232    
STNBK1	= ******  GX	 8-82       8-82      
STNMBK	= ******  GX	 8-78       8-78       9-153      9-153     
SYS40$	= ******	 1-67       7-53       7-53       7-55       7-55       8-62       8-62      
S.APPD	= 000010	#7-42      
S.FIDS	= 000014	#7-42      
UPDTBT	= ******  GX	 8-68       11-308    
VERSAV	= ******  GX	*9-127      9-139     
WRTATT	= ******  GX	 14-500     14-500    
X     	= 000026	#8-73       8-73      #8-93       8-93      #8-104      8-104     #8-104      8-104     #8-114     
                         8-114     #8-114      8-114     #9-181      9-181     #9-188      9-188     #12-368     12-368    
                        #12-368     12-368    #13-434     13-434    #13-434     13-434    #13-434     13-434    #13-436    
                         13-436    #13-436     13-436    #13-443     13-443    #13-443     13-443    #13-443     13-443    
                        #13-463     13-463    #13-463     13-463    #13-467     13-467    #13-467     13-467    #13-469    
PIPCPY     CREATED BY  MACRO  ON 27-FEB-85 AT 12:25	PAGE 5

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

                         13-469    #13-469     13-469    #13-469     13-469    #13-473     13-473    #13-473     13-473    
                        #13-473     13-473    #14-480     14-480    #14-480     14-480    #14-480     14-480    #14-519    
                         14-519    #14-519     14-519    #14-519     14-519    
$DSW  	= ******  GX	 15-585    
$$    	= 000067	#8-78       8-78      #8-82       8-82      #8-87       8-87      #8-89       8-89      #8-91      
                         8-91      #9-123      9-123     #9-125      9-125     #9-140      9-140     #9-144      9-144     
                        #9-153      9-153     #9-219      9-219     #11-302     11-302    #11-303     11-303    #11-305    
                         11-305    #11-307     11-307    #12-369     12-369    #12-394     12-394    #12-403     12-403    
                        #14-484     14-484    #14-485     14-485    #14-491     14-491    #14-500     14-500    #14-505    
                         14-505    #14-509     14-509    #14-517     14-517    #15-546     15-546    #15-550     15-550    
$$$ARG	= 000013	#7-57       7-57      #7-57       7-57      #7-57       7-57      #7-57       7-57      #7-57      
                         7-57      #7-57       7-57      
$$$GLB	= ******	 7-57       7-57       7-57       7-57       7-57       7-57       7-57       7-57      
$$$OST	= 000014	#7-57       7-57       7-57      #7-57       7-57       7-57      #7-57       7-57       7-57      
                        #7-57       7-57       7-57      #7-57       7-57       7-57      #7-57       7-57       7-57      
                        #7-57       7-57      
.DYALC	= ******  GX	 12-369     12-369    
.DYBLK	= ******  GX	 15-533    
.DYBUF	= ******  GX	*9-222      12-370     15-524    
.DYBYT	= ******  GX	 9-212     *9-220      12-370    
.DYREL	= ******  GX	 9-219      9-219      14-485     14-485    
.DYSIZ	= ******  GX	 9-212      9-220     
.EXTND	= ******  GX	 12-394     12-394    
.EXTSZ	= ******  GX	*10-285     11-314     12-388     13-449    
.FOWNR	= ******  GX	 14-493     14-497    
.FSRPT	= ******  GX	 9-221      12-357    
.GETSQ	= ******  G	 12-420     12-420    
.GFOWN	= ******  GX	 11-307     11-307    
.LCLSW	= ******  GX	*8-66      
.OPFNB	= ******  G	 10-240     10-240     11-328     11-328     11-337     11-337     11-345     11-345    
.OULCL	= ******  GX	 8-66      
.PARSE	= ******  GX	 11-303     11-303    
.PUTSQ	= ******  G	 12-408     12-408     12-424     12-424    
PIPCPY     CREATED BY  MACRO  ON 27-FEB-85 AT 12:25	PAGE 6

MACRO CROSS REFERENCE                                   CREF         

MACRO NAME	REFERENCES

ASH   		#1-64      
ASHC  		#1-64      
CALL  		#7-48      #8-78      #8-82      #8-87      #8-89      #8-91      #9-123     #9-125     #9-140     #9-144     
                #9-153     #9-219     #10-240    #11-302    #11-303    #11-305    #11-307    #11-328    #11-337    #11-345    
                #12-369    #12-394    #12-403    #12-408    #12-420    #12-424    #14-484    #14-485    #14-491    #14-500    
                #14-505    #14-509    #14-517    #15-546    #15-550    
CMOV$B		#9-197     #9-197     #9-197     #9-197     #10-240    #10-240    #10-240    #10-240    #10-240    #10-240    
                #11-297    #11-297    #11-297    #11-300    #11-300    #11-300    #11-300    #11-301    #11-301    #11-314    
                #11-314    #11-314    #11-328    #11-328    #11-328    #11-328    #11-328    #11-328    #11-337    #11-337    
                #11-337    #11-337    #11-337    #11-337    #11-343    #11-343    #11-343    #11-345    #11-345    #11-345    
                #11-345    #11-345    #11-345    #12-355    #12-355    #12-370    #12-370    #12-407    #12-407    #12-407    
                #12-410    #12-410    #12-410    
CMOV$W		#9-197      9-197     #10-240     10-240     10-240    #10-240     10-240     10-240    #11-297     11-297    
                 11-297     11-297    #11-300     11-300    #11-301     11-301     11-301    #11-314     11-314     11-314    
                 11-314    #11-328     11-328     11-328    #11-328     11-328     11-328    #11-337     11-337     11-337    
                #11-337     11-337     11-337    #11-343     11-343     11-343     11-343    #11-345     11-345     11-345    
                #11-345     11-345     11-345    #12-355     12-355     12-355    #12-370     12-370     12-370    #12-407    
                 12-407     12-407     12-407    #12-408     12-408     12-408    #12-410     12-410     12-410     12-410    
                #12-420     12-420     12-420    #12-424     12-424     12-424    
CSI$  		#7-43       7-44      
DIR$  		#7-51      #15-577    #15-579    #15-579    #15-591    #15-591    
DIV   		#1-64      
ERRINI		#4-307     
ERROUT		#3-215      9-181      9-188      13-434     13-436     13-443     13-463     13-467     13-469     13-473    
                 14-480     14-519    
ERROUX		#3-222      8-73       8-93       8-104      8-114      12-368    
ERROU1		#3-225     #8-73      #8-93      #8-104     #8-114     #9-181     #9-188     #12-368    #13-434    #13-436    
                #13-443    #13-463    #13-467    #13-469    #13-473    #14-480    #14-519    
ERRP  		#3-247     
ERRPX 		#3-253     
ERRP1 		#3-256     
ERR$  		#10-240     10-240    #11-328     11-328    #11-337     11-337    #11-345     11-345    #12-408     12-408    
                #12-420     12-420    #12-424     12-424    #15-577    #15-579    #15-591    
ERR1  		#3-273     #8-73      #8-93      #8-104     #8-114     #9-181     #9-188     #12-368    #13-434    #13-436    
                #13-443    #13-463    #13-467    #13-469    #13-473    #14-480    #14-519    
FCSBT$		#7-43       7-46      
FDAT$R		#7-49       11-297     11-314     11-343     12-407     12-410    
FDBF$R		#7-49      #9-197     #11-300    
FDOFF$		#7-45       7-45      
FDOF$L		#7-43      #7-45      
FDOP$R		#10-240    #10-240    #11-328    #11-328    #11-337    #11-337    #11-345    #11-345    
FDRC$R		#7-49      #10-240    #10-240    #11-301    #11-328    #11-328    #11-337    #11-337    #11-345    #11-345    
                #12-355    #12-370    
FLDSOF		#5-382     #7-42      #7-42      
GET$  		#7-30      #7-51       12-420    
GET$S 		#12-420    #12-420    
IDENT 		#5-339     #7-1       
IDENT1		#5-347      7-1       
IDTITL		#5-356     
ILLOP 		#1-52      #1-64       1-64      
IMPURE		#1-75      #7-55      
IOERR$		#7-43       7-47      
PIPCPY     CREATED BY  MACRO  ON 27-FEB-85 AT 12:25	PAGE 7

MACRO CROSS REFERENCE                                   CREF         

MACRO NAME	REFERENCES

LDFDB$		#9-197      9-197     #10-240     10-240    #10-240     10-240    #11-297     11-297    #11-300     11-300    
                #11-301     11-301    #11-314     11-314    #11-328     11-328    #11-328     11-328    #11-337     11-337    
                #11-337     11-337    #11-343     11-343    #11-345     11-345    #11-345     11-345    #12-355     12-355    
                #12-370     12-370    #12-407     12-407    #12-408     12-408    #12-410     12-410    #12-420     12-420    
                #12-424     12-424    
MARK  		#1-64      
MOV$  		#15-579     15-579    
MSG   		#2-124     
MSGZ  		#2-129     
MSG1  		#2-133     #7-53      
MUL   		#1-64      
NOEIS$		#1-39       1-64      
OFF$  		#7-57      #7-57      #7-57      #7-57      #7-57      #7-57      #7-57      #7-57      #7-57      
OFNB$ 		#10-240    #10-240    #11-328    #11-328    #11-337    #11-337    #11-345    #11-345    
OPEN$ 		#7-25      #7-50      #10-240    #10-240    #11-328    #11-337    #11-337    #11-345    #11-345    
OPEN$A		#7-50       11-345    
OPEN$R		#7-50       10-240    
OPEN$U		#7-50      #11-337    
PURE. 		#1-84       7-53       8-62      
PURE.D		#1-102     
PURE.I		#1-98       8-62      
PUT$  		#7-35      #7-51       12-408     12-424    
PUT$S 		#12-408    #12-408    #12-424    #12-424    
QDPB$ 		#7-57      #7-57      
QIO$  		#7-51       7-57      
RETURN		#7-48       15-584     15-595    
RTT   		#1-64      
SOB   		#1-64      #9-177     
SXT   		#1-64      
WSIG$S		#7-51       15-591    
WTSE$S		#7-51       15-579    
XOR   		#1-64      
PIPDEF M0004, SET DEFAULT COMMA	MACRO M1113  27-FEB-85 12:25
TABLE OF CONTENTS

     7-    1	**** PIPDEF VERSION M0004 ****
PIPMAC - MACROS FOR PIP, ETC.	MACRO M1113  27-FEB-85 12:25  PAGE 6


    397
PIPDEF M0004, SET DEFAULT COMMA	MACRO M1113  27-FEB-85 12:25  PAGE 7


      1						.TITLE	PIPDEF M0004, SET DEFAULT COMMAND-PIP
						.SBTTL	**** PIPDEF VERSION M0004 ****
						.IDENT	/M0004/
      2					;
      3					; COPYRIGHT   1974,  1985,  DIGITAL  EQUIPMENT  CORP.,  MAYNARD,   MASS.
      4					;
      5					;			ALL RIGHTS RESERVED
      6					;
      7					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
      8					; ON A  SINGLE COMPUTER SYSTEM AND CAN BE  COPIED (WITH INCLUSION
      9					; OF DEC'S COPYRIGHT  NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
     10					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
     11					;
     12					; THE  INFORMATION  IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
     13					; NOTICE  AND  SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
     14					; EQUIPMENT CORPORATION.
     15					;
     16					; DEC  ASSUMES NO  RESPONSIBILITY  FOR  THE  USE  OR  RELIABILITY
     17					; OF  ITS  SOFTWARE ON  EQUIPMENT WHICH  IS  NOT SUPPLIED BY DEC.
     18					;
     19					; PETER H. LIPMAN	14-MAY-74
     20					;
     21	000000					FLDSOF
     22						.MCALL	CSI$,FDOF$L,CALL,RETURN
     23	000000					CSI$			;DEFINE CSI OFSETS
     24	000000					FDOF$L			;DEFINE FDB OFFSETS LOCALLY
     25					;
     26					; SET DEFAULT DEVICE OR DIRECTORY
     27					;
     28	000000				.SETDF::
     29	000000	005767 	000000G			TST	INSPEC		;NO INPUT SPECIFIER ALLOWED
     30	000004	001014 				BNE	10$		;BRANCH IF BAD SYNTAX
     31	000006	032767 	000031 	000000G		BIT	#CS.NMF!CS.MOR!CS.WLD,OUSPEC ;ONLY DEV OR UIC ALLOWED
     32	000014	001010 				BNE	10$		;BRANCH IF BAD SYNTAX
     33	000016	032767 	000006 	000000G		BIT	#CS.DVF!CS.DIF,OUSPEC ;EXPLICIT DEV OR DIR?
     34	000024	001007 				BNE	20$		;BRANCH IF YES, OK SYNTAX
     35	000026	032767 	000000G	000000G		BIT	#MFDBIT,CPYCTL	;SET UIC TO THE MFD?
     36	000034	001003 				BNE	20$		;YES, SYNTAX IS OK
     37	000036				10$:	ERROUX	DF01		;BAD SYNTAX FOR /DFAULT SWITCH
	000036	104403 				TRAP	X
	000040	000000G				.WORD	DF01SZ
	000042	000000G				.WORD	DF01MG
     38	000044	032767 	000004 	000000G	20$:	BIT	#CS.DVF,OUSPEC	;IS USER CHANGING THE DEFAULT DEVICE?
     39	000052	001402 				BEQ	30$		;BRANCH IF NO
     40	000054					CALL	SETDEV		;YES, GO SET THE NEW DEFAULT
     41	000060	032767 	000002 	000000G	30$:	BIT	#CS.DIF,OUSPEC	;IS HE CHANGING THE DEFAULT DIRECTORY?
     42	000066	001004 				BNE	40$		;BRANCH IF YES
     43	000070	032767 	000000G	000000G		BIT	#MFDBIT,CPYCTL
     44	000076	001402 				BEQ	50$		;BRANCH IF NO SETTING DEFAULT UIC
     45	000100				40$:	CALL	SETUIC		;CHANGE THE DEFAULT UIC
     46	000104	000167 	000000G		50$:	JMP	CLOSX
PIPDEF M0004, SET DEFAULT COMMA	MACRO M1113  27-FEB-85 12:25  PAGE 8
**** PIPDEF VERSION M0004 ****

     48					;
     49					; SET DEFAULT DEVICE AND UNIT
     50					;
     51	000110	012700 	000000G		SETDEV:	MOV	#FDBOUT,R0
     52	000114	012701 	000000G			MOV	#NMBLK1,R1
     53	000120	012702 	000000G			MOV	#OFNPT,R2
     54	000124	005003 				CLR	R3
     55	000126					CALL	.PRSDV		;PARSE THE DEVICE NAME
     56	000132	103407 				BCS	20$
     57	000134	016167 	000032 	000000G		MOV	N.DVNM(R1),.DEFDV
     58	000142	016167 	000034 	000000G		MOV	N.UNIT(R1),.DEFUN
     59	000150					RETURN
     60	000152				20$:	CALL	PRSERR
     61	000156					RETURN
     62
     63					;
     64					; SET DEFAULT UIC
     65					;
     66	000160	032767 	000002 	000000G	SETUIC:	BIT	#CS.DIF,OUSPEC	;EXPLICIT DIRECTORY SPECIFIED?
     67	000166	001006 				BNE	10$		;BRANCH IF IT IS
     68	000170	032767 	000000G	000000G		BIT	#MFDBIT,CPYCTL	;BETTER BE MFD SWITCH
     69	000176	001424 				BEQ	50$		;BRANCH IF NOT, ERROR
     70	000200	005001 				CLR	R1
     71	000202	000415 				BR	40$		;SET NULL DEFAULT DIRECTORY - GETS MFD
     72	000204	016702 	000004G		10$:	MOV	OFNPT+N.DIRD,R2	;R2=SIZE OF DIRECTORY STRING
     73	000210	016703 	000006G			MOV	OFNPT+N.DIRD+2,R3 ;R3=ADDR OF DIRECTORY STRING
     74	000214	022702 	000000G			CMP	#DFDRSZ,R2	;IS STRING LONGER THAN SPACE ALLOCATED?
     75	000220	002413 				BLT	50$		;BRANCH IF YES
     76	000222	012701 	000000G			MOV	#DEFDIR,R1
     77	000226					CALL	MVSTRG		;MOVE STRING TO DEFAULT DIRECTORY AREA
     78	000232	016701 	000004G			MOV	OFNPT+N.DIRD,R1	;R1=SIZE
     79	000236	012702 	000000G		40$:	MOV	#DEFDIR,R2	;R2=ADR OF DEF DIR STRING
     80	000242					CALL	.WDFDR		;CALL FCS TO SET THE DEFAULT
     81	000246					RETURN
     82	000250				50$:	ERROUX	UI01		;SYNTAX ERROR
	000250	104403 				TRAP	X
	000252	000000G				.WORD	UI01SZ
	000254	000000G				.WORD	UI01MG
     83
     84					;
     85					;
     86		000001 				.END
PIPDEF M0004, SET DEFAULT COMMA	MACRO M1113  27-FEB-85 12:25  PAGE 8-1
SYMBOL TABLE

CLOSX = ****** GX	DF01SZ= ****** GX	F.FNB = 000102   	MFDBIT= ****** GX	R$$11M= 000001
CPYCTL= ****** GX	FDBOUT= ****** GX	F.FTYP= 000116   	MVSTRG= ****** GX	SETDEV  000110R
CS.DIF= 000002   	F.ALOC= 000040   	F.FVER= 000120   	NMBLK1= ****** GX	SETUIC  000160R
CS.DVF= 000004   	F.BBFS= 000062   	F.HIBK= 000004   	N.DEVD= 000000   	S.APPD= 000010
CS.EQU= 000040   	F.BDB = 000070   	F.LUN = 000042   	N.DID = 000024   	S.FATT= 000016
CS.INP= 000001   	F.BGBC= 000057   	F.MBCT= 000054   	N.DIRD= 000004   	S.FDB = 000140
CS.MOR= 000020   	F.BKDN= 000026   	F.MBC1= 000055   	N.DVNM= 000032   	S.FIDS= 000014
CS.NMF= 000001   	F.BKDS= 000020   	F.MBFG= 000056   	N.FID = 000000   	S.FNAM= 000006
CS.OUT= 000002   	F.BKEF= 000050   	F.NRBD= 000024   	N.FLID= 000016   	S.FNB = 000036
CS.WLD= 000010   	F.BKP1= 000051   	F.NREC= 000030   	N.FNAM= 000006   	S.FNBW= 000017
C.CMLD= 000002   	F.BKST= 000024   	F.OVBS= 000030   	N.FNMD= 000010   	S.FNTY= 000004
C.DEVD= 000006   	F.BKVB= 000064   	F.RACC= 000016   	N.FTYP= 000014   	S.FTYP= 000002
C.DIRD= 000012   	F.CNTG= 000034   	F.RATT= 000001   	N.FVER= 000016   	S.NFEN= 000020
C.DSDS= 000006   	F.DFNB= 000046   	F.RCNM= 000034   	N.NEXT= 000022   	UI01MG= ****** GX
C.FILD= 000016   	F.DSPT= 000044   	F.RCTL= 000017   	N.SPEC= 000014   	UI01SZ= ****** GX
C.MKW1= 000024   	F.DVNM= 000134   	F.RSIZ= 000002   	N.STAT= 000020   	X     = 000003
C.MKW2= 000026   	F.EFBK= 000010   	F.RTYP= 000000   	N.UNIT= 000034   	$$    = 000067
C.SIZE= 000054   	F.EFN = 000050   	F.STBK= 000036   	OFNPT = ****** GX	.DEFDV= ****** GX
C.STAT= 000001   	F.EOBB= 000032   	F.UNIT= 000136   	OUSPEC= ****** GX	.DEFUN= ****** GX
C.SWAD= 000022   	F.ERR = 000052   	F.URBD= 000020   	PRSERR= ****** GX	.PRSDV= ****** GX
C.TYPR= 000000   	F.FACC= 000043   	F.VBN = 000064   	R$$DPB= 000001   	.SETDF  000000RG
DEFDIR= ****** GX	F.FFBY= 000014   	F.VBSZ= 000060   	R$$DYM= 000001   	.WDFDR= ****** GX
DFDRSZ= ****** GX	F.FNAM= 000110   	INSPEC= ****** GX	R$$EIS= 000000   	...TPC= 000140
DF01MG= ****** GX

. ABS.	000000	   000
      	000256	   001
ERRORS DETECTED:  0

VIRTUAL MEMORY USED:  3624 WORDS  ( 15 PAGES)
DYNAMIC MEMORY:  4622 WORDS  ( 17 PAGES)
ELAPSED TIME:  00:00:20
[43,10]PIPDEF,[43,20]PIPDEF/-SP/CR=[43,30]PIPMAC,PIPDEF
PIPDEF     CREATED BY  MACRO  ON 27-FEB-85 AT 12:26	PAGE 1

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

CLOSX 	= ******  GX	 7-46      
CPYCTL	= ******  GX	 7-35       7-43       8-68      
CS.DIF	= 000002	 7-33       7-41       8-66      
CS.DVF	= 000004	 7-33       7-38      
CS.MOR	= 000020	 7-31      
CS.NMF	= 000001	 7-31      
CS.WLD	= 000010	 7-31      
DEFDIR	= ******  GX	 8-76       8-79      
DFDRSZ	= ******  GX	 8-74      
DF01MG	= ******  GX	 7-37      
DF01SZ	= ******  GX	 7-37      
FDBOUT	= ******  GX	 8-51      
INSPEC	= ******  GX	 7-29      
MFDBIT	= ******  GX	 7-35       7-43       8-68      
MVSTRG	= ******  GX	 8-77       8-77      
NMBLK1	= ******  GX	 8-52      
N.DEVD	= 000000	#7-21      
N.DIRD	= 000004	#7-21       8-72       8-73       8-78      
N.DVNM	= 000032	 8-57      
N.FLID	= 000016	#7-21      
N.FNMD	= 000010	#7-21      
N.SPEC	= 000014	#7-21      
N.UNIT	= 000034	 8-58      
OFNPT 	= ******  GX	 8-53       8-72       8-73       8-78      
OUSPEC	= ******  GX	 7-31       7-33       7-38       7-41       8-66      
PRSERR	= ******  GX	 8-60       8-60      
R$$DPB	= 000001	#1-27      
R$$DYM	= 000001	#1-29      
R$$EIS	= 000000	#1-28       1-38      
R$$11M	= 000001	#1-25       1-26       7-1       
SETDEV	  000110 R	 7-40       7-40      #8-51      
SETUIC	  000160 R	 7-45       7-45      #8-66      
SYS40$	= ******	 1-67      
S.APPD	= 000010	#7-21      
S.FIDS	= 000014	#7-21      
UI01MG	= ******  GX	 8-82      
UI01SZ	= ******  GX	 8-82      
X     	= 000003	#7-37       7-37      #8-82       8-82      
$$    	= 000067	#7-40       7-40      #7-45       7-45      #8-55       8-55      #8-60       8-60      #8-77      
                         8-77      #8-80       8-80      
.DEFDV	= ******  GX	*8-57      
.DEFUN	= ******  GX	*8-58      
.PRSDV	= ******  GX	 8-55       8-55      
.SETDF	  000000 RG	#7-28      
.WDFDR	= ******  GX	 8-80       8-80      
PIPDEF     CREATED BY  MACRO  ON 27-FEB-85 AT 12:26	PAGE 2

MACRO CROSS REFERENCE                                   CREF         

MACRO NAME	REFERENCES

ASH   		#1-64      
ASHC  		#1-64      
CALL  		#7-22      #7-40      #7-45      #8-55      #8-60      #8-77      #8-80      
CSI$  		#7-22       7-23      
DIV   		#1-64      
ERRINI		#4-307     
ERROUT		#3-215     
ERROUX		#3-222      7-37       8-82      
ERROU1		#3-225     #7-37      #8-82      
ERRP  		#3-247     
ERRPX 		#3-253     
ERRP1 		#3-256     
ERR1  		#3-273     #7-37      #8-82      
FDOFF$		#7-24       7-24      
FDOF$L		#7-22       7-24      
FLDSOF		#5-382     #7-21      #7-21      
IDENT 		#5-339     #7-1       
IDENT1		#5-347      7-1       
IDTITL		#5-356     
ILLOP 		#1-52      #1-64       1-64      
IMPURE		#1-75      
MARK  		#1-64      
MSG   		#2-124     
MSGZ  		#2-129     
MSG1  		#2-133     
MUL   		#1-64      
NOEIS$		#1-39       1-64      
PURE. 		#1-84      
PURE.D		#1-102     
PURE.I		#1-98      
RETURN		#7-22      #8-59      #8-61      #8-81      
RTT   		#1-64      
SOB   		#1-64      
SXT   		#1-64      
XOR   		#1-64      
PIPDEL M0211, DELETE & REMOVE C	MACRO M1113  27-FEB-85 12:26
TABLE OF CONTENTS

     7-    1	**** PIPDEL VERSION M0211 ****
PIPMAC - MACROS FOR PIP, ETC.	MACRO M1113  27-FEB-85 12:26  PAGE 6


    397
PIPDEL M0211, DELETE & REMOVE C	MACRO M1113  27-FEB-85 12:26  PAGE 7


      1						.TITLE	PIPDEL M0211, DELETE & REMOVE COMMANDS-PIP
						.SBTTL	**** PIPDEL VERSION M0211 ****
						.IDENT	/M0211/
      2					; ALTERED:
      3					; ANDREW C. GOLDSTEIN  28 JAN 1975  14:00
      4					;
      5					; COPYRIGHT 1975, 1985, DIGITAL EQUIPMENT CORP., MAYNARD MASS.
      6					; COPYRIGHT 1974, DIGITAL EQUIPMENT CORP., MAYNARD MASS.
      7
      8					;			ALL RIGHTS RESERVED
      9					;
     10					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
     11					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
     12					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
     13					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
     14
     15					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
     16					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
     17					; EQUIPMENT CORPORATION.
     18
     19					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY
     20					; OF ITS SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
     21					;
     22					; PETER H. LIPMAN	2-MAY-74
     23
     24	000000					FLDSOF
     25						.MCALL	CALL,RETURN,DELET$
     26
     27
     28	000000					PURE.I
     29
     30					; DELETE THE SPECIFIED FILES
     31
     32	000000				REMOVE::
     33	000000				DELETE::CALL	FSTOUT
     34	000004	012700 	000000G		DELET1:	MOV	#FDBOUT,R0
     35	000010					CALL	PARSE
     36	000014	103010 				BCC	10$
     37	000016					CALL	PRSERR		;FAILED TO PARSE FILE NAME
     38					;
     39					; PRIVILEGE VIOLATION FROM PARSE PROBABLY MEANS DEVICE NOT MOUNTED
     40					;
     41	000022	122767 	000000G	000000C		CMPB	#IE.PRI,FDBOUT+F.ERR
     42	000030	001150 				BNE	DELNXT
     43	000032	000167 	000000G			JMP	CLOSX		;EXIT FROM DELETE LOOP IF NOT MOUNTED
     44	000036	132760 	000000G	000000G	10$:	BITB	#FD.DIR,F.RCTL(R0) ;MUST BE A DIRECTORY DEVICE
     45	000044	001003 				BNE	15$		;BRANCH IF IT IS
     46	000046					ERROUX	DI08,1		;ERROR
	000046	104413 				TRAP	X
	000050	000000G				.WORD	DI08SZ
	000052	000000G				.WORD	DI08MG
     47	000054	052767 	000000G	000000G	15$:	BIS	#FRSTIM,CPYCTL
     48	000062	032767 	000000G	000000G		BIT	#RMVBIT,CMDWRD	;SKIP EXPLICIT FILE ID CHECK IF REMOVE
     49	000070	001007 				BNE	18$
     50	000072					CALL	USEFID
     51	000076	103404 				BCS	18$		;BRANCH IF NO EXPLICIT FILE ID
     52	000100	042761 	000000G	000000G		BIC	#NB.SFL,N.STAT(R1) ;EXPLICIT FILE ID WAS INPUT
PIPDEL M0211, DELETE & REMOVE C	MACRO M1113  27-FEB-85 12:26  PAGE 7-1
**** PIPDEL VERSION M0211 ****

     53	000106	000431 				BR	22$		;JUST DO THE MARK FOR DELETE
     54	000110	032767 	000000G	000000G	18$:	BIT	#PURGBT,CMDWRD	;PURGE MODE FOR THIS FILE?
     55	000116	001127 				BNE	DELPUR		;BRANCH IF YES
     56	000120					CALL	WLDVER		;DISALLOW WILD CARDS WITH DEFAULT VER
     57	000124	103512 				BCS	DELNXT
     58	000126	032761 	000000C	000000G		BIT	#NB.SVR!NB.VER,N.STAT(R1) ;VERSION MUST BE EXPLICIT
     59	000134	001004 				BNE	20$
     60	000136					ERROUT	DE04,1		;VERSION NO. NOT EXPLICIT OR WILD CARD
	000136	104412 				TRAP	X
	000140	000000G				.WORD	DE04SZ
	000142	000000G				.WORD	DE04MG
     61	000144	000502 				BR	DELNXT
     62	000146				20$:	CALL	RMVNXT		;REMOVE THE FILE FROM THE DIRECTORY
     63	000152	103425 				BCS	30$		;BRANCH IF ERROR
     64	000154	042767 	000000G	000000G		BIC	#FRSTIM,CPYCTL
     65	000162	032767 	000000G	000000G		BIT	#RMVBIT,CMDWRD	;IF REMOVE COMMAND
     66	000170	001012 				BNE	25$		;SKIP THE MARK FOR DELETE
     67	000172	010146 			22$:	MOV	R1,-(SP)
     68	000174	012701 	000000G			MOV	#IO.DEL,R1	;FUNCTION CODE FOR MARK FOR DELETE
     69	000200	012702 	000001 			MOV	#1,R2
     70	000204	010603 				MOV	SP,R3		;1 ADDITIONAL PARAM ON TOP OF STACK
     71	000206					CALL	.XQIO		;ISSUE THE MARK FOR DELETE AND WAIT
     72	000212	012601 				MOV	(SP)+,R1
     73	000214	103423 				BCS	40$
     74	000216				25$:	CALL	NXTFIL		;ANY MORE FILES IN THIS FILE SPEC?
     75	000222	103351 				BCC	20$		;BRANCH IF YES - DELETING A CLASS
     76	000224	000452 				BR	DELNXT		;DONE WITH THIS SPECIFIER
     77					;
     78					; ERROR FROM REMOVE - NO SUCH FILE WOULD INDICATE DONE
     79	000226				30$:	CALL	RMVERR
     80	000232	116705 	000000C			MOVB	FDBOUT+F.ERR,R5	;R5=ERROR CODE
     81	000236	122705 	000000G			CMPB	#IE.NSF,R5	;IF NO SUCH FILE, THEN GO DO NEXT SPEC
     82	000242	001443 				BEQ	DELNXT
     83					;
     84					; FILE PROCESSOR WRITE ERROR FROM REMOVE PROBABLY MEANS THAT
     85					; THE VOLUME IS WRITE LOCKED, STOP TRYING TO DELETE FILES.
     86					;
     87	000244	122705 	000000G			CMPB	#IE.WER,R5
     88	000250	001403 				BEQ	35$		;BRANCH IF WRITE ERROR
     89	000252	122705 	000000G			CMPB	#IE.PRI,R5
     90	000256	001357 				BNE	25$		;BRANCH IF CONTINUING WITH THIS SPEC
     91	000260	000167 	000000G		35$:	JMP	CLOSX		;TERMINATE THE DELETE OPERATION
     92					;
     93					; FAILED TO MARK FILE FOR DELETION
     94	000264				40$:	ERROUT	DE01,0,0
	000264	104426 				TRAP	X
	000266	000000G				.WORD	DE01SZ
	000270	000000G				.WORD	DE01MG
     95					;
     96					; NOW REENTER THE REMOVED DIRECTORY ENTRY TO FIX THINGS UP
     97	000272	012700 	000000G			MOV	#FDBOUT,R0
     98	000276	016002 	000000G			MOV	F.DSPT(R0),R2
     99	000302	005762 	000016 			TST	N.FLID(R2)
    100	000306	001021 				BNE	DELNXT		;IF EXPLICIT FILE ID, SKIP THIS
    101	000310	012701 	000000C			MOV	#FDBOUT+F.FNB,R1
    102	000314	016146 	000000G			MOV	N.NEXT(R1),-(SP) ;SAVE FIND/REMOVE NEXT POINTER
    103	000320					CALL	.ENTER
PIPDEL M0211, DELETE & REMOVE C	MACRO M1113  27-FEB-85 12:26  PAGE 7-2
**** PIPDEL VERSION M0211 ****

    104	000324	012661 	000000G			MOV	(SP)+,N.NEXT(R1)
    105	000330	103332 				BCC	25$		;BRANCH IF REENTER WORKED
    106					;
    107					; NOW WE REALLY HAVE TROUBLE, COULDN'T PUT DIRECTORY ENTRY BACK
    108					; FILE IS LOST, SHOULD AT LEAST TYPE FILE ID - BUT NOT YET DOING SO
    109	000332					ERROUT	DE02,0,0
	000332	104426 				TRAP	X
	000334	000000G				.WORD	DE02SZ
	000336	000000G				.WORD	DE02MG
    110					;
    111					; SET UP TO GO DO THE NEXT FILE
    112	000340	012700 	000000G			MOV	#FDBOUT,R0
    113	000344	012701 	000000C			MOV	#FDBOUT+F.FNB,R1
    114	000350	000722 				BR	25$
    115					; GO GET THE NEXT FILE SPECIFIER IF ANY MORE IN THE LIST
    116	000352	012767 	000001 	000000G	DELNXT:	MOV	#1,PURGCT
    117	000360					CALL	NXTOUT
    118	000364	103402 				BCS	10$
    119	000366	000167 	177412 			JMP	DELET1		;GO DO THE NEXT FILE SPECIFIER
    120	000372	000167 	000000G		10$:	JMP	AGAIN		;NO MORE FILES IN LIST
    121					;
    122					; PURGE MODE FOR THIS FILE SPECIFIER (LOCAL SWITCH)
    123					; DELETE ALL BUT THE MOST RECENT VERSION OF THE SPECIFIED
    124					; FILE(S).  IF THE OPTIONAL VALUE IS SPECIFIED, THEN IF N IS
    125					; THE MOST RECENT VERSION AND M IS THE VALUE, THEN VERSION N-M+1
    126					; THOUGH VERSION N WILL NOT BE DELETED. I.E THE MOST RECENT M
    127					; VERSIONS WILL NOT BE DELETED WHERE THE VERSIONS ARE ASSUMED
    128					; CONSECUTIVELY NUMBERED
    129	000376	052761 	000000G	000000G	DELPUR:	BIS	#NB.SVR,N.STAT(R1) ;USER NEED NOT TYPE WILD VERSION
    130	000404				10$:	CALL	FNDNXT		;FIND THE NEXT FILE IN THE CLASS
    131	000410	103503 				BCS	80$
    132	000412	042767 	000000G	000000G		BIC	#FRSTIM,CPYCTL
    133	000420	016146 	000000G			MOV	N.NEXT(R1),-(SP) ;SAVE FIND NEXT POINTER
    134	000424	016146 	000000G			MOV	N.STAT(R1),-(SP) ;AND STATUS BITS
    135	000430	005061 	000000G			CLR	N.NEXT(R1)	;START AT BEGINNING OF DIRECTORY
    136	000434	005061 	000000G			CLR	N.STAT(R1)	;NO WILD CARDS
    137	000440	005061 	000000G			CLR	N.FVER(R1)	;FIND THE MOST RECENT VERSION NO.
    138	000444					CALL	FINDFL
    139	000450	103466 				BCS	85$
    140	000452	016105 	000000G			MOV	N.FVER(R1),R5	;SAVE THE NEWEST VERSION
    141	000456	166705 	000000G			SUB	PURGCT,R5	;R5=HIGHEST DELETABLE VERSION
    142	000462	003443 				BLE	28$		;BRANCH IF NONE TO DELETE IN THIS CLASS
    143	000464	005061 	000000G			CLR	N.NEXT(R1)
    144	000470	052760 	000000G	000000C	20$:	BIS	#NB.SVR,F.FNB+N.STAT(R0) ;FIND WILD CARD VERSION
    145	000476				25$:	CALL	FINDFL
    146	000502	103436 				BCS	30$
    147	000504	026105 	000000G			CMP	N.FVER(R1),R5
    148	000510	101372 				BHI	25$		;BRANCH IF TOO NEW TO DELETE
    149	000512	016146 	000000G			MOV	N.NEXT(R1),-(SP)
    150	000516	005061 	000000G			CLR	N.NEXT(R1)
    151	000522	005061 	000000G			CLR	N.STAT(R1)
    152	000526					DELET$	R0		;DELETE THIS ONE
    153	000532	012661 	000000G			MOV	(SP)+,N.NEXT(R1)
    154	000536	103354 				BCC	20$		;GO FIND THE NEXT ONE
    155					;
    156					; ERROR FROM DELETE
    157	000540	010046 				MOV	R0,-(SP)
PIPDEL M0211, DELETE & REMOVE C	MACRO M1113  27-FEB-85 12:26  PAGE 7-3
**** PIPDEL VERSION M0211 ****

    158	000542	010546 				MOV	R5,-(SP)
    159	000544					ERROUT	DE09,0,0
	000544	104426 				TRAP	X
	000546	000000G				.WORD	DE09SZ
	000550	000000G				.WORD	DE09MG
    160	000552	012605 				MOV	(SP)+,R5
    161	000554	012600 				MOV	(SP)+,R0
    162					;
    163					; FILE PROCESSOR WRITE ERROR AT THIS POINT PROBABLY MEANS THAT THE
    164					; VOLUME IS WRITE LOCKED, STOP THE DELETE LOOP NOW.
    165					;
    166	000556	122767 	000000G	000000C		CMPB	#IE.WER,FDBOUT+F.ERR
    167	000564	001341 				BNE	20$
    168	000566	000167 	000000G			JMP	CLOSX
    169	000572	112760 	000000G	000000G	28$:	MOVB	#IE.NSF,F.ERR(R0)
    170					;
    171					; DONE PURGING THIS FILE NAME, GO GET ANOTHER
    172	000600	012661 	000000G		30$:	MOV	(SP)+,N.STAT(R1)
    173	000604	012661 	000000G			MOV	(SP)+,N.NEXT(R1)
    174	000610	122760 	000000G	000000G		CMPB	#IE.NSF,F.ERR(R0)
    175	000616	001672 				BEQ	10$
    176					;
    177					; FILE NOT FOUND, PROBABLY ALL DONE
    178	000620				80$:	CALL	FNDERR
    179	000624	000652 				BR	DELNXT
    180	000626	062706 	000004 		85$:	ADD	#4,SP
    181	000632	000772 				BR	80$
    182
    183					;
    184					;
    185		000001 				.END
PIPDEL M0211, DELETE & REMOVE C	MACRO M1113  27-FEB-85 12:26  PAGE 7-4
SYMBOL TABLE

AGAIN = ****** GX	DE09MG= ****** GX	F.RCTL= ****** GX	N.FVER= ****** GX	R$$DPB= 000001
CLOSX = ****** GX	DE09SZ= ****** GX	IE.NSF= ****** GX	N.NEXT= ****** GX	R$$DYM= 000001
CMDWRD= ****** GX	DI08MG= ****** GX	IE.PRI= ****** GX	N.SPEC= 000014   	R$$EIS= 000000
CPYCTL= ****** GX	DI08SZ= ****** GX	IE.WER= ****** GX	N.STAT= ****** GX	R$$11M= 000001
DELETE  000000RG    002	FDBOUT= ****** GX	IO.DEL= ****** GX	PARSE = ****** GX	S.APPD= 000010
DELET1  000004R     002	FD.DIR= ****** GX	NB.SFL= ****** GX	PAR$$$= 000000   	S.FIDS= 000014
DELNXT  000352R     002	FINDFL= ****** GX	NB.SVR= ****** GX	PRSERR= ****** GX	USEFID= ****** GX
DELPUR  000376R     002	FNDERR= ****** GX	NB.VER= ****** GX	PURGBT= ****** GX	WLDVER= ****** GX
DE01MG= ****** GX	FNDNXT= ****** GX	NXTFIL= ****** GX	PURGCT= ****** GX	X     = 000026
DE01SZ= ****** GX	FRSTIM= ****** GX	NXTOUT= ****** GX	REMOVE  000000RG    002	$$    = 000067
DE02MG= ****** GX	FSTOUT= ****** GX	N.DEVD= 000000   	RMVBIT= ****** GX	.DELET= ****** G
DE02SZ= ****** GX	F.DSPT= ****** GX	N.DIRD= 000004   	RMVERR= ****** GX	.ENTER= ****** GX
DE04MG= ****** GX	F.ERR = ****** GX	N.FLID= 000016   	RMVNXT= ****** GX	.XQIO = ****** GX
DE04SZ= ****** GX	F.FNB = ****** GX	N.FNMD= 000010

. ABS.	000000	   000
      	000000	   001
PURE$I	000634	   002
ERRORS DETECTED:  0

VIRTUAL MEMORY USED:  3108 WORDS  ( 13 PAGES)
DYNAMIC MEMORY:  4622 WORDS  ( 17 PAGES)
ELAPSED TIME:  00:00:13
[43,10]PIPDEL,[43,20]PIPDEL/-SP/CR=[43,30]PIPMAC,PIPDEL
PIPDEL     CREATED BY  MACRO  ON 27-FEB-85 AT 12:26	PAGE 1

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

AGAIN 	= ******  GX	 7-120     
CLOSX 	= ******  GX	 7-43       7-91       7-168     
CMDWRD	= ******  GX	 7-48       7-54       7-65      
CPYCTL	= ******  GX	*7-47      *7-64      *7-132     
DELETE	  000000 RG	#7-33      
DELET1	  000004 R	#7-34       7-119     
DELNXT	  000352 R	 7-42       7-57       7-61       7-76       7-82       7-100     #7-116      7-179     
DELPUR	  000376 R	 7-55      #7-129     
DE01MG	= ******  GX	 7-94      
DE01SZ	= ******  GX	 7-94      
DE02MG	= ******  GX	 7-109     
DE02SZ	= ******  GX	 7-109     
DE04MG	= ******  GX	 7-60      
DE04SZ	= ******  GX	 7-60      
DE09MG	= ******  GX	 7-159     
DE09SZ	= ******  GX	 7-159     
DI08MG	= ******  GX	 7-46      
DI08SZ	= ******  GX	 7-46      
FDBOUT	= ******  GX	 7-34       7-41       7-80       7-97       7-101      7-112      7-113      7-166     
FD.DIR	= ******  GX	 7-44      
FINDFL	= ******  GX	 7-138      7-138      7-145      7-145     
FNDERR	= ******  GX	 7-178      7-178     
FNDNXT	= ******  GX	 7-130      7-130     
FRSTIM	= ******  GX	 7-47       7-64       7-132     
FSTOUT	= ******  GX	 7-33       7-33      
F.DSPT	= ******  GX	 7-98      
F.ERR 	= ******  GX	 7-41       7-80       7-166     *7-169      7-174     
F.FNB 	= ******  GX	 7-101      7-113     *7-144     
F.RCTL	= ******  GX	 7-44      
IE.NSF	= ******  GX	 7-81       7-169      7-174     
IE.PRI	= ******  GX	 7-41       7-89      
IE.WER	= ******  GX	 7-87       7-166     
IO.DEL	= ******  GX	 7-68      
NB.SFL	= ******  GX	 7-52      
NB.SVR	= ******  GX	 7-58       7-129      7-144     
NB.VER	= ******  GX	 7-58      
NXTFIL	= ******  GX	 7-74       7-74      
NXTOUT	= ******  GX	 7-117      7-117     
N.DEVD	= 000000	#7-24      
N.DIRD	= 000004	#7-24      
N.FLID	= 000016	#7-24       7-99      
N.FNMD	= 000010	#7-24      
N.FVER	= ******  GX	*7-137      7-140      7-147     
N.NEXT	= ******  GX	 7-102     *7-104      7-133     *7-135     *7-143      7-149     *7-150     *7-153     *7-173     
N.SPEC	= 000014	#7-24      
N.STAT	= ******  GX	*7-52       7-58      *7-129      7-134     *7-136     *7-144     *7-151     *7-172     
PARSE 	= ******  GX	 7-35       7-35      
PAR$$$	= 000000	#7-152      7-152     
PRSERR	= ******  GX	 7-37       7-37      
PURGBT	= ******  GX	 7-54      
PURGCT	= ******  GX	*7-116      7-141     
REMOVE	  000000 RG	#7-32      
PIPDEL     CREATED BY  MACRO  ON 27-FEB-85 AT 12:26	PAGE 2

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

RMVBIT	= ******  GX	 7-48       7-65      
RMVERR	= ******  GX	 7-79       7-79      
RMVNXT	= ******  GX	 7-62       7-62      
RONLY$	= ******	 7-28       7-28      
R$$DPB	= 000001	#1-27      
R$$DYM	= 000001	#1-29      
R$$EIS	= 000000	#1-28       1-38      
R$$11M	= 000001	#1-25       1-26       7-1       
SYS40$	= ******	 1-67       7-28       7-28      
S.APPD	= 000010	#7-24      
S.FIDS	= 000014	#7-24      
USEFID	= ******  GX	 7-50       7-50      
WLDVER	= ******  GX	 7-56       7-56      
X     	= 000026	#7-46       7-46      #7-46       7-46      #7-60       7-60      #7-60       7-60      #7-94      
                         7-94      #7-94       7-94      #7-94       7-94      #7-109      7-109     #7-109      7-109     
                        #7-109      7-109     #7-159      7-159     #7-159      7-159     #7-159      7-159     
$$    	= 000067	#7-33       7-33      #7-35       7-35      #7-37       7-37      #7-50       7-50      #7-56      
                         7-56      #7-62       7-62      #7-71       7-71      #7-74       7-74      #7-79       7-79      
                        #7-103      7-103     #7-117      7-117     #7-130      7-130     #7-138      7-138     #7-145     
                         7-145     #7-178      7-178     
.DELET	= ******  G	 7-152      7-152     
.ENTER	= ******  GX	 7-103      7-103     
.XQIO 	= ******  GX	 7-71       7-71      
PIPDEL     CREATED BY  MACRO  ON 27-FEB-85 AT 12:26	PAGE 3

MACRO CROSS REFERENCE                                   CREF         

MACRO NAME	REFERENCES

ASH   		#1-64      
ASHC  		#1-64      
CALL  		#7-25      #7-33      #7-35      #7-37      #7-50      #7-56      #7-62      #7-71      #7-74      #7-79      
                #7-103     #7-117     #7-130     #7-138     #7-145     #7-152     #7-178     
DELET$		#7-25       7-152     
DIV   		#1-64      
ERRINI		#4-307     
ERROUT		#3-215      7-60       7-94       7-109      7-159     
ERROUX		#3-222      7-46      
ERROU1		#3-225     #7-46      #7-60      #7-94      #7-109     #7-159     
ERRP  		#3-247     
ERRPX 		#3-253     
ERRP1 		#3-256     
ERR$  		#7-152     #7-152     
ERR1  		#3-273     #7-46      #7-60      #7-94      #7-109     #7-159     
FLDSOF		#5-382     #7-24      #7-24      
IDENT 		#5-339     #7-1       
IDENT1		#5-347      7-1       
IDTITL		#5-356     
ILLOP 		#1-52      #1-64       1-64      
IMPURE		#1-75      
LDFDB$		#7-152     #7-152     
MARK  		#1-64      
MSG   		#2-124     
MSGZ  		#2-129     
MSG1  		#2-133     
MUL   		#1-64      
NOEIS$		#1-39       1-64      
PURE. 		#1-84       7-28      
PURE.D		#1-102     
PURE.I		#1-98       7-28      
RETURN		#7-25      
RTT   		#1-64      
SOB   		#1-64      
SXT   		#1-64      
XOR   		#1-64      
PIPDIR M0216, LIST DIRECTORY CO	MACRO M1113  27-FEB-85 12:26
TABLE OF CONTENTS

     7-    1	**** PIPDIR VERSION M0216 ****
PIPMAC - MACROS FOR PIP, ETC.	MACRO M1113  27-FEB-85 12:26  PAGE 6


    397
PIPDIR M0216, LIST DIRECTORY CO	MACRO M1113  27-FEB-85 12:26  PAGE 7


      1						.TITLE	PIPDIR M0216, LIST DIRECTORY COMMAND-PIP
						.SBTTL	**** PIPDIR VERSION M0216 ****
						.IDENT	/M0216/
      2					; ALTERED:
      3					; ANDREW C. GOLDSTEIN  19 FEB 75  14:30
      4					;
      5					; COPYRIGHT 1975, 1985, DIGITAL EQUIPMENT CORP., MAYNARD MASS.
      6					; COPYRIGHT 1974, DIGITAL EQUIPMENT CORP., MAYNARD MASS.
      7
      8					;			ALL RIGHTS RESERVED
      9					;
     10					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
     11					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
     12					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
     13					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
     14
     15					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
     16					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
     17					; EQUIPMENT CORPORATION.
     18
     19					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY
     20					; OF ITS SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
     21					;
     22					; PETER H. LIPMAN	2-MAY-74
     23					;
     24						.IF	GT,R$$11M
     25						.MACRO	PUT$	A1,A2,A3,A4
     26						.MCALL	PUT$S
     27						PUT$S	A1,A2,A3,A4
     28						.ENDM	PUT$
     29						.ENDC
     30	000000					FLDSOF
     31						.MCALL	CSI$
     32	000000					CSI$
     33
     34						.MCALL	CALL,RETURN,QIO$S,WTSE$S
     35						.MCALL	FDBF$R,FDAT$R,OPEN$W,OFNB$W,PUT$,GTIM$S
     36
     37
     38		000014 				FF=14			;FORM FEED CHARACTER
     39					;
     40					; DIRECTORY LISTING  - CONVERSION STRINGS
     41	000000					MSGZ	LI01,< FILE ID %P,%P,%O>
     42	000000					MSGZ	LI02,<%N%X>
     43	000000					MSG	LI03,<READ ATTRIBUTES ERR - >
     44	000000					MSG	TOTH,<STORAGE USED/ALLOCATED FOR >
     45	000000					MSGZ	DIRH,<DIRECTORY %2A%O:>
     46	000000					MSGZ	TIME,<%N%Y %2Z>
     47	000000					MSGZ	TOT1,<%N%N	TOTAL OF >
     48	000000					MSGZ	TOT2,<. BLOCKS IN %D. FILES>
     49	000000					IMPURE
     50
     51					;
     52					; ***** DO NOT SEPARATE THE FOLLOWING
     53					;
     54	000000				FILCNT:	.BLKW	1		;COUNT OF FILES IN THIS DIRECTORY
     55	000002				FILUSD:	.BLKW	2		;COUNT OF BLOCKS USED
PIPDIR M0216, LIST DIRECTORY CO	MACRO M1113  27-FEB-85 12:26  PAGE 7-1
**** PIPDIR VERSION M0216 ****

     56	000006				FILALC:	.BLKW	2		;COUNT OF BLOCKS ALLOCATED
     57					;
     58					; ***** DO NOT SEPARATE THE PRECEEDING
     59					;
     60	000012				USDMSG:	.BLKW	1		;0 IF NO "USED" MESSAGE IS TO BE OUTPUT
     61									;END OF MESSAGE POINTER IF MSG NEEDS TO BE TYPED
     62	000014				DIHDMG:	.BLKW	1		;0 IF NO DIRECTORY HEADER MESSAGE TO TYPE
     63									;END OF MESSAGE PTR IF NEED TO OUTPUT HDR
     64	000016				DIROUT:	.BLKW	1		;0 IF NO OUTPUT DONE YET
     65									;NON ZERO IF ANY OUTPUT HAS BEEN DONE
PIPDIR M0216, LIST DIRECTORY CO	MACRO M1113  27-FEB-85 12:26  PAGE 8
**** PIPDIR VERSION M0216 ****

     67	000020					PURE.I
     68
     69					; LIST THE DIRECTORY TO THE SPECIFIED OUTPUT FILE
     70
     71	000000	012767 	000000G	000000C	DIRLST::MOV	#OFNPT,FDBIN+F.DSPT ;ASSUME NO LISTING FILE SPEC
     72	000006	012767 	000000G	000000C		MOV	#NAMBLK,FDBIN+F.DFNB
     73	000014	012767 	000000G	000000C		MOV	#IFNPT,FDBOUT+F.DSPT	;NULL DSPT IF NO INPUT SPEC
     74	000022	012767 	000000G	000000C		MOV	#SYDFLT,FDBOUT+F.DFNB
     75	000030	016767 	000000G	000000C		MOV	CODEV,SYDFLT+N.DVNM ;DEFAULT OUTPUT TO CO:
     76	000036	016767 	000000G	000000C		MOV	COUNIT,SYDFLT+N.UNIT
     77	000044	012767 	000000G	000000G		MOV	#FD.PLC,INRACC
     78	000052	012767 	000000G	000000G		MOV	#FD.PLC,OURACC
     79	000060	005767 	000000G			TST	INSPEC		;WAS THERE AN INPUT SPEC?
     80	000064	001423 				BEQ	10$		;BRANCH IF NO
     81	000066	016767 	000000G	000000G		MOV	.OULCL,.LCLSW	;LOCAL SWITCHES ON OUTSPEC ARE STICKY
     82	000074	012767 	000000G	000000C		MOV	#IFNPT,FDBIN+F.DSPT ;USE INPUT SPECIFIER FOR DIRECTORY
     83	000102	012767 	000000G	000000C		MOV	#OFNPT,FDBOUT+F.DSPT ;OUTPUT SPEC FOR LISTING
     84	000110	032767 	000003 	000000G		BIT	#CS.DIF!CS.NMF,OUSPEC ;IF OUTPUT FILE NAME SPECIFIED
     85	000116	001406 				BEQ	10$
     86	000120	012767 	000000G	000000C		MOV	#SYDEV,SYDFLT+N.DVNM ;DEFAULT TO SY0:
     87	000126	012767 	000000G	000000C		MOV	#SYUNIT,SYDFLT+N.UNIT
     88					;
     89					; NORMAL DIRECTORY LISTING
     90	000134	005001 			10$:	CLR	R1		;R1 MEANS NO DEFAULT DIRECTORY ID
     91	000136	005002 				CLR	R2		;NO DEFAULT FILE NAME AND TYPE
     92	000140					CALL	STNMBK		;INIT THE NAMBLK
     93	000144	005067 	000012'			CLR	USDMSG		;NO TOTAL LINE TO BE TYPED
     94	000150	005067 	000016'			CLR	DIROUT		;NO OUTPUT DONE YET
     95	000154	012701 	000000C			MOV	#<<<LINBFS+3>&177774>+1000>,R1
     96	000160					CALL	.DYALC		;ALLOCATE A LINE AND HEADER BUFFER
     97	000164	062700 	000000C			ADD	#<<LINBFS+3>&177774>,R0 ;CALCULATE HEADER BUFFER ADDRESS
     98	000170	010067 	000000G			MOV	R0,.HDRAD	;AND SAVE IT
     99					;
    100					; HERE FOR EACH NEW DIRECTORY SPECIFIER
    101					;
    102	000174	012700 	000000G		DIRLS1:	MOV	#FDBIN,R0
    103	000200					CALL	PARSE
    104	000204	103004 				BCC	20$
    105	000206					CALL	PRSERR
    106	000212	000167 	000000G			JMP	CLOSX
    107	000216	016267 	000014 	000000G	20$:	MOV	N.SPEC(R2),INSPEC ;MOV OUSPEC TO INSPEC IF NO LIST FILE
    108	000224	132760 	000000G	000000G		BITB	#FD.DIR,F.RCTL(R0)
    109	000232	001003 				BNE	25$		;BRANCH IF DIRECTORY DEVICE
    110	000234					ERROUX	DI08,1
	000234	104413 				TRAP	X
	000236	000000G				.WORD	DI08SZ
	000240	000000G				.WORD	DI08MG
    111	000242	016067 	000000G	000000G	25$:	MOV	F.FVER(R0),VERSAV
    112	000250	005762 	000016 			TST	N.FLID(R2)	;IF FILE ID WAS SPECIFIED, USE IT
    113	000254	001412 				BEQ	40$
    114	000256	016261 	000016 	000000G		MOV	N.FLID(R2),N.DID(R1) ;PUT FILE ID IN DIRECTORY ID SLOT
    115	000264	016261 	000020 	000002G		MOV	N.FLID+2(R2),N.DID+2(R1)
    116	000272	016261 	000022 	000004G		MOV	N.FLID+4(R2),N.DID+4(R1)
    117	000300	000407 				BR	DIRLS2		;NEW DIRECTORY TO LIST
    118	000302	032767 	000006 	000000G	40$:	BIT	#CS.DIF!CS.DVF,INSPEC ;NEW DIRECTORY?
    119	000310	001003 				BNE	DIRLS2		;BRANCH IF YES
    120	000312	005767 	000000C			TST	FDBOUT+F.BDB	;IF NOT FIRST DIRECTORY (OUT FILE OPEN)
PIPDIR M0216, LIST DIRECTORY CO	MACRO M1113  27-FEB-85 12:26  PAGE 8-1
**** PIPDIR VERSION M0216 ****

    121	000316	001020 				BNE	DIRLS3		;THEN NOT A NEW DIRECTORY
    122	000320	016700 	000012'		DIRLS2:	MOV	USDMSG,R0	;PRINT "M BLOCKS USED IN N FILES"
    123	000324	001404 				BEQ	10$		;BRANCH IF NOTHING TO PRINT
    124	000326	005067 	000012'			CLR	USDMSG		;SO IT WON'T BE DONE AGAIN
    125	000332					CALL	EDTPT1		;OUTPUT THE"TOTAL" MESSAGE
    126	000336	012702 	000005 		10$:	MOV	#5,R2		;NO. OF WORDS OF FILE AND SIZE COUNTING
    127	000342	012701 	000000'			MOV	#FILCNT,R1	;REINIT THE COUNTS FOR THE NEW DIRECTORY
    128	000346	005021 			20$:	CLR	(R1)+
    129	000350					SOB	R2,20$
    130	000354	005267 	000014'			INC	DIHDMG		;FORCE THIS NON ZERO INDICATING NEW DIR
    131	000360	032767 	000001 	000000G	DIRLS3:	BIT	#CS.NMF,INSPEC	;IF NOT LISTING ENTIRE DIRECTORY
    132	000366	001006 				BNE	45$		;BRANCH IF NOT LISTING ENTIRE DIRECTORY
    133					;
    134					; LISTING ENTIRE DIRECTORY
    135	000370	052767 	000001 	000000G		BIS	#CS.NMF,INSPEC	;SAY THAT FILE NAME WAS SPECIFIED
    136	000376	052767 	000000G	000000C		BIS	#NB.SFN,FDBIN+F.FNB+N.STAT ;IT WAS *.*;*
    137	000404	052767 	000000G	000000G	45$:	BIS	#FRSTIM,CPYCTL
    138	000412	012700 	000000G			MOV	#FDBOUT,R0
    139	000416	005760 	000000G			TST	F.BDB(R0)
    140	000422	001044 				BNE	60$		;BRANCH IF LISTING FILE ALREADY OPEN
    141	000424					FDAT$R	R0,#R.VAR,#0	;VARIABLE LENGTH, NO CARRIAGE CONTROL
    142					; OVERIDE DEFAULT BUFFER SIZE FOR LONG PARTIAL LOCATE MODE PUTS
    143	000436					FDBF$R	R0,,#LINBFS,#3 ;FORCE 3 BUFS
    144					;
    145						.IF	EQ,R$$11M
    146						OPEN$W	R0,,,OURACC,#LINBUF,#LINBFS
    147						.IFF
    148	000452					CALL	PARSE
    149	000456	103004 				BCC	58$
    150	000460					CALL	PRSERR		;ERROR FROM PARSE
    151	000464	000167 	000000G			JMP	CLOSX
    152	000470				58$:	OFNB$W	R0,,,OURACC,#LINBUF,#LINBFS
    153						.ENDC
    154					;
    155	000524	103563 				BCS	94$		;BRANCH IF FAILED TO OPEN OUTPUT FILE
    156	000526					CALL	RECATT		;ATTACH DEVICE IF TTY
    157	000532	103551 				BCS	82$		;BRANCH IF FAILED
    158	000534	016700 	000000G		60$:	MOV	.DYBUF,R0
    159	000540	005767 	000016'			TST	DIROUT		;HAS THERE BEEN ANY OUTPUT YET?
    160	000544	001007 				BNE	62$		;BRANCH IF YES
    161	000546	132767 	000000G	000000C		BITB	#FD.TTY,FDBOUT+F.RCTL
    162	000554	001003 				BNE	62$
    163	000556	112720 	000014 			MOVB	#FF,(R0)+	;FORM FEED IF NOT TTY
    164	000562	000407 				BR	65$
    165	000564	112720 	000015 		62$:	MOVB	#15,(R0)+
    166	000570	012701 	000012 			MOV	#12,R1		;A FEW BLANK LINES FOR TTY
    167	000574	110120 				MOVB	R1,(R0)+
    168	000576	110120 				MOVB	R1,(R0)+
    169	000600	110120 				MOVB	R1,(R0)+
    170	000602	010046 			65$:	MOV	R0,-(SP)
    171	000604					CALL	STFIND		;START THE FIRST FIND OPERATION
    172	000610	012600 				MOV	(SP)+,R0
    173	000612	016746 	000000C			MOV	FDBIN+F.UNIT,-(SP)
    174	000616	012746 	000000C			MOV	#FDBIN+F.DVNM,-(SP)
    175	000622	010602 				MOV	SP,R2
    176	000624	012701 	000110'			MOV	#DIRHMG,R1
    177	000630	032767 	000000G	000000G		BIT	#TOTLBT,CMDWRD	;IF JUST LISTING TOTALS
PIPDIR M0216, LIST DIRECTORY CO	MACRO M1113  27-FEB-85 12:26  PAGE 8-2
**** PIPDIR VERSION M0216 ****

    178	000636	001402 				BEQ	66$
    179	000640	012701 	000055'			MOV	#TOTHMG,R1	;USE THE OTHER MESSAGE
    180	000644				66$:	CALL	$EDMSG		;"DIRECTORY DK0:"
    181	000650	022626 				CMP	(SP)+,(SP)+
    182	000652	016702 	000000C			MOV	FDBIN+F.DSPT,R2
    183	000656	005762 	000016 			TST	N.FLID(R2)	;WAS FILE ID OF DIRECTORY FILE GIVEN
    184	000662	001023 				BNE	70$		;BRANCH IF YES
    185					; DIRECTORY NAME
    186	000664	132767 	000000G	000000C		BITB	#FD.SDI,FDBIN+F.RCTL ;IF SINGLE DIRECTORY DEVICE
    187	000672	001025 				BNE	75$		;DON'T PRINT DIRECTORY NAME
    188	000674	016701 	000000C			MOV	FDBIN+F.DSPT,R1
    189	000700	016102 	000006 			MOV	N.DIRD+2(R1),R2	;R2=ADDRESS OF DIRECTORY STRING
    190	000704	016101 	000004 			MOV	N.DIRD(R1),R1	;R1=SIZE OF DIRECTORY STRING
    191	000710	001004 				BNE	67$		;BRANCH IF STRING IS NOT NULL
    192	000712					CALL	.RDFDR		;OTHERWISE USE DEFAULT DIRECTORY
    193	000716	005701 				TST	R1		;IF NULL DEFAULT DIRECTORY
    194	000720	001412 				BEQ	75$		;SKIP PRINTING THE DIRECTORY NAME
    195	000722	112220 			67$:	MOVB	(R2)+,(R0)+	;MOVE THE DIRECTORY STRING
    196	000724					SOB	R1,67$
    197	000730	000406 				BR	75$
    198					; LISTING DIRECTORY BY FILE ID
    199	000732	062702 	000016 		70$:	ADD	#N.FLID,R2
    200	000736	012701 	000000'			MOV	#LI01MG,R1
    201	000742					CALL	$EDMSG		;"FILE ID 401,5743"
    202	000746	032767 	000000G	000000G	75$:	BIT	#SHTLST,CMDWRD	;IF BRIEF DIRECTORY LISTING
    203	000754	001013 				BNE	78$		;SKIP THE DATE AND TIME
    204	000756	016702 	000000G			MOV	.HDRAD,R2
    205	000762					GTIM$S	R2		;READ TIME OF DAY
    206	000772	103434 				BCS	88$
    207	000774	012701 	000131'			MOV	#TIMEMG,R1
    208	001000					CALL	$EDMSG
    209	001004	112720 	000015 		78$:	MOVB	#15,(R0)+
    210	001010	112720 	000012 			MOVB	#12,(R0)+
    211	001014	005767 	000014'			TST	DIHDMG		;ZERO IF ALREADY TYPED HEADER
    212	001020	001415 				BEQ	80$
    213	001022	010067 	000014'			MOV	R0,DIHDMG	;NOTE HEADER MESSAGE TO BE TYPED
    214	001026	016701 	000000C			MOV	FDBIN+F.FNB+N.STAT,R1
    215	001032	042701 	000000C			BIC	#^C<NB.SDI!NB.SNM!NB.STP>,R1
    216	001036	022701 	000000C			CMP	#<NB.SDI!NB.SNM!NB.STP>,R1 ;IF [*,*]*.* (OR [*,*]*.*;*)
    217	001042	001004 				BNE	80$
    218	001044	005067 	000014'			CLR	DIHDMG		;PRINT THE DIRECTORY HEADER
    219	001050					CALL	EDTPT1		;WHETHER OR NOT THE DIRECTORY IS EMPTY
    220	001054	000414 			80$:	BR	GTENT		;OTHERWISE OUTPUT IT LATER
    221					;
    222					; FAILED TO ATTACH THE TTY
    223	001056				82$:	ERROUX	DI06,0,0
	001056	104427 				TRAP	X
	001060	000000G				.WORD	DI06SZ
	001062	000000G				.WORD	DI06MG
    224					;
    225					; FAILED TO GET TIME INFORMATION
    226	001064				88$:	ERROUX	DI07
	001064	104403 				TRAP	X
	001066	000000G				.WORD	DI07SZ
	001070	000000G				.WORD	DI07MG
    227	001072	000403 				BR	98$
    228					;
PIPDIR M0216, LIST DIRECTORY CO	MACRO M1113  27-FEB-85 12:26  PAGE 8-3
**** PIPDIR VERSION M0216 ****

    229					; FAILED TO OPEN LISTING FILE
    230	001074				94$:	ERROUT	OP02,0,0
	001074	104426 				TRAP	X
	001076	000000G				.WORD	OP02SZ
	001100	000000G				.WORD	OP02MG
    231	001102	000167 	000000G		98$:	JMP	CLOSX
PIPDIR M0216, LIST DIRECTORY CO	MACRO M1113  27-FEB-85 12:26  PAGE 9
**** PIPDIR VERSION M0216 ****

    233	001106	032767 	000000G	000000C	GTENT:	BIT	#NB.SFN,FDBIN+F.FNB+N.STAT ;ANY WILD CARDS?
    234	001114	001004 				BNE	10$		;BRANCH IF YES
    235	001116	032767 	000000G	000000G		BIT	#FRSTIM,CPYCTL	;IF FIRST FIND, DO IT
    236	001124	001416 				BEQ	15$		;OTHERWISE STOP NOW
    237	001126	042767 	000000G	000000G	10$:	BIC	#FRSTIM,CPYCTL	;NO LONGER THE FIRST TIME
    238	001134	012700 	000000G			MOV	#FDBIN,R0
    239	001140	012702 	000000G			MOV	#FNAEFN,R2	;R2=EVENT FLAG FOR PENDING FIND QI/O
    240	001144	012701 	000000G			MOV	#FNASTS,R1	;R1 = I/O STATUS BLOCK ADR FOR FIND
    241	001150					CALL	WATQIO		;WAIT FOR THE LAST FIND QI/O TO COMPLETE
    242	001154	103004 				BCC	20$		;BRANCH IF IT WAS SUCCESSFUL
    243	001156					CALL	FNDERR		;NORMAL TERMINATION IF NO SUCH FILE
    244	001162	000167 	000514 		15$:	JMP	LSTNXT
    245	001166	005267 	000000'		20$:	INC	FILCNT		;COUNT THIS FILE
    246	001172	016700 	000014'			MOV	DIHDMG,R0	;SEE IF DIRECTORY HEADER MSG TO OUTPUT
    247	001176	001404 				BEQ	25$		;BRANCH IF NONE
    248	001200	005067 	000014'			CLR	DIHDMG		;ONLY OUTPUT IT ONCE
    249	001204					CALL	EDTPT1
    250	001210	012701 	000000C		25$:	MOV	#FDBIN+F.FNB,R1
    251	001214	012700 	000000G			MOV	#NMBLK1,R0
    252	001220	012702 	000000G			MOV	#S.FNBW,R2	;R2 = SIZE IN WORDS OF FILE NAME BLOCK
    253	001224	012120 			30$:	MOV	(R1)+,(R0)+	;MOVE FDB'S FNB TO NMBLK1
    254	001226					SOB	R2,30$
    255					;
    256					; R0=FILE NAME BLOCK ADDRESS TO LIST DIRECTORY FROM
    257					;
    258	001232	032767 	000000G	000000G		BIT	#SHTLST,CMDWRD	;IF BRIEF MODE LISTING
    259	001240	001031 				BNE	50$		;SKIP THE READ ATTRIBUTES
    260					;
    261					; START UP THE READ ATTRIBUTES, WAIT FOR COMPLETION LATER
    262					;
    263
    264						.IF	EQ,R$$DPB	;IF OLD DPB FORMAT
    265						QIO$S	#IO.RAT,#INLUN,#RATEFN,,#IOSTBK,,<#NMBLK1,#HDBLK,#STBLK>
    266						.IFF			;IF NEW DPB FORMAT
    267	001242					QIO$S	#IO.RAT,#INLUN,#RATEFN,,#IOSTBK,,<#NMBLK1,#RATCTL,,,,>
    268						.ENDC
    269
    270	001314	103003 				BCC	50$		;BRANCH IF QIO WAS OK
    271	001316	113767 	000000G	000000G		MOVB	@#$DSW,IOSTBK	;SET ERROR CODE FOR WAIT TO SEE
    272					;
    273					; START THE NEXT FIND NAME QI/O UNLESS JUST LISTING ONE FILE
    274					;
    275	001324	032767 	000000G	000000C	50$:	BIT	#NB.SFN,FDBIN+F.FNB+N.STAT
    276	001332	001402 				BEQ	60$		;BRANCH IF NO WILD CARDS
    277	001334					CALL	STFIND		;START UP THE NEXT FIND QI/O
    278	001340	012702 	000000G		60$:	MOV	#NMBLK1,R2	;R2=FILE NAME BLOCK ADDRESS
    279	001344	016700 	000000C			MOV	FDBOUT+F.NRBD+2,R0 ;R0=ADDRESS TO STORE STRING TO PUT$
    280	001350	062702 	000000G			ADD	#N.FNAM,R2	;POINT AT FILE NAME FIELD
    281	001354	012701 	000022'			MOV	#LI02MG,R1
    282	001360					CALL	$EDMSG		;CONVERT THE FILE NAME
    283	001364	032767 	000000G	000000G		BIT	#SHTLST,CMDWRD
    284	001372	001116 				BNE	DIRPUT
    285	001374	162701 	000002 			SUB	#2,R1		;DON'T COUNT CR,LF
    286	001400	012705 	000000G			MOV	#HDRTB1,R5
    287	001404					CALL	HDFILL		;ADD BLANKS TO FILL THE FIELD
    288	001410					CALL	EDTPUT		;OUTPUT THE FILE NAME FIELD
    289	001414	012700 	000000G			MOV	#FDBIN,R0
PIPDIR M0216, LIST DIRECTORY CO	MACRO M1113  27-FEB-85 12:26  PAGE 9-1
**** PIPDIR VERSION M0216 ****

    290	001420	012702 	000000G			MOV	#RATEFN,R2	;EVENT FLAG FOR READ ATTRIBUTES
    291	001424	012701 	000000G			MOV	#IOSTBK,R1	;I/O STATUS BLOCK FOR RD ATT
    292	001430					CALL	WATQIO		;WAIT FOR I/O DONE ON THE READ ATTRIB
    293	001434	103501 				BCS	RDATER		;BRANCH IF ERROR
    294					;
    295					; IF SEQUENTIAL DEVICE, THEN EFBK IS WRONG
    296					; PUTTING ZERO IN WILL TELL HDRMG TO PRINT ALLOCATED SPACE
    297	001436	016705 	000000G			MOV	.HDRAD,R5	;R5=ADDRESS OF FILE HEADER
    298	001442	132767 	000000G	000000C		BITB	#FD.SQD,FDBIN+F.RCTL
    299	001450	001402 				BEQ	70$
    300	001452	005065 	000000C			CLR	HH.UAT+F.EFBK+2(R5)
    301	001456	016500 	000000C		70$:	MOV	HH.UAT+F.EFBK(R5),R0 ;R0,R1 = EOF FROM RECORD ATTRIBUTES
    302	001462	016501 	000000C			MOV	HH.UAT+F.EFBK+2(R5),R1
    303	001466	001007 				BNE	72$		;IF BOTH ZERO, THEN USE REAL FILE SIZE
    304	001470	005700 				TST	R0
    305	001472	001005 				BNE	72$
    306	001474	016700 	000004G			MOV	STBLK+4,R0	;R0, R1 = REAL FILE SIZE (ALLOCATED)
    307	001500	016701 	000006G			MOV	STBLK+6,R1
    308	001504	000406 				BR	76$
    309	001506	005765 	000000C		72$:	TST	HH.UAT+F.FFBY(R5) ;IF FFBY = 0 THEN EFBK IS 1 TOO BIG
    310	001512	001003 				BNE	76$
    311	001514	162701 	000001 			SUB	#1,R1		;MAKE IT SMALLER
    312	001520	005600 				SBC	R0
    313	001522	060167 	000004'		76$:	ADD	R1,FILUSD+2	;RECORD THIS FILE'S USED SPACE
    314	001526	005500 				ADC	R0
    315	001530	060067 	000002'			ADD	R0,FILUSD
    316	001534	066767 	000006G	000010'		ADD	STBLK+6,FILALC+2 ;AND RECORD SPACE ALLOCATED
    317	001542	005567 	000006'			ADC	FILALC
    318	001546	066767 	000004G	000006'		ADD	STBLK+4,FILALC
    319	001554	016700 	000000C			MOV	FDBOUT+F.NRBD+2,R0
    320	001560	010501 				MOV	R5,R1		;R1=ADDRESS OF HEADER
    321	001562	012702 	000000G			MOV	#STBLK,R2	;R2=ADDRESS OF STATISTICS BLOCK
    322	001566	005003 				CLR	R3		;NO FILE NAME, NOT LONG FORM
    323	001570	032767 	000000C	000000G		BIT	#EVRYBT!TOTLBT,CMDWRD
    324	001576	001412 				BEQ	80$
    325	001600	012703 	000002 			MOV	#2,R3		;LONG FORM, STILL NO FILE NAME
    326	001604	132767 	000000G	000000C		BITB	#FD.TTY,FDBOUT+F.RCTL
    327	001612	001004 				BNE	80$
    328					; FOR OTHER THAN TTY OUTPUT, SET LENGTH OF LINE IN 2ND BYTE OF R3
    329	001614	000303 				SWAB	R3
    330	001616	056703 	000000G			BIS	LPTLEN,R3
    331	001622	000303 				SWAB	R3
    332	001624				80$:	CALL	HDRMG		;CONVERT THE FILE HEADER INFO
    333	001630				DIRPUT:	CALL	EDTPUT
    334	001634	000167 	177246 			JMP	GTENT
    335					;
    336					;ERROR READING ATTRIBUTES
    337	001640	005367 	000000'		RDATER:	DEC	FILCNT		;DON'T COUNT FILES THAT CAN'T BE LISTED
    338	001644	016701 	000000C			MOV	FDBOUT+F.NRBD+2,R1
    339	001650	012702 	000026 			MOV	#LI03SZ,R2
    340	001654	012703 	000027'			MOV	#LI03MG,R3
    341	001660					CALL	MVSTRG
    342	001664	010100 				MOV	R1,R0
    343	001666	116701 	000000C			MOVB	FDBIN+F.ERR,R1
    344	001672					CALL	FCSERR		;CONVERT FCS ERROR TO MESSAGE
    345	001676	000167 	177726 			JMP	DIRPUT
PIPDIR M0216, LIST DIRECTORY CO	MACRO M1113  27-FEB-85 12:26  PAGE 10
**** PIPDIR VERSION M0216 ****

    347	001702	005067 	000012'		LSTNXT:	CLR	USDMSG		;NO "TOTAL" MESSAGE
    348	001706	032767 	000000G	000000G		BIT	#SHTLST,CMDWRD	;IF BRIEF MODE, DON'T LIST TOTALS
    349	001714	001054 				BNE	10$
    350	001716	005767 	000000'			TST	FILCNT		;IF NO FILES, SKIP THE TOTAL MESSAGE
    351	001722	001003 				BNE	3$
    352	001724	005767 	000014'			TST	DIHDMG		;IF DIRECTORY HEADER WAS PRINTED, ALLOW TOTALS
    353	001730	001046 				BNE	10$
    354	001732	016700 	000000G		3$:	MOV	.DYBUF,R0	;ADDRESS OF BUFFER TO BUILD MESSAGE
    355	001736	012701 	000142'			MOV	#TOT1MG,R1
    356	001742	005002 				CLR	R2
    357	001744					CALL	$EDMSG
    358	001750	012701 	000002'			MOV	#FILUSD,R1	;ADDRESS OF USED COUNT
    359	001754	005002 				CLR	R2		;SUPPRESS LEAD ZEROES
    360	001756					CALL	$CDDMG		;CONVERT TO DOUBLE PRECISION DECIMAL
    361	001762	032767 	000000C	000000G		BIT	#EVRYBT!TOTLBT,CMDWRD	;IF FULL DIRECTORY LISTING
    362	001770	001411 				BEQ	5$
    363	001772	112720 	000056 			MOVB	#'.,(R0)+	;ALSO OUTPUT ALLOCATED SPACE
    364	001776	112720 	000057 			MOVB	#'/,(R0)+
    365	002002	012701 	000006'			MOV	#FILALC,R1	;ADDRESS OF ALLOCATED SPACE
    366	002006	005002 				CLR	R2
    367	002010					CALL	$CDDMG
    368	002014	012701 	000161'		5$:	MOV	#TOT2MG,R1
    369	002020	012702 	000000'			MOV	#FILCNT,R2	;ADDRESS OF FILE COUNT
    370	002024					CALL	$EDMSG
    371	002030	022767 	000001 	000000'		CMP	#1,FILCNT	;IF ONLY 1 FILE
    372	002036	001001 				BNE	8$
    373	002040	005300 				DEC	R0		;STRIP OFF THE S FROM "FILES"
    374	002042	010067 	000012'		8$:	MOV	R0,USDMSG	;SAVE END POINTER OF MESSAGE
    375	002046				10$:	CALL	CLSIN
    376	002052	012700 	000000G			MOV	#FDBIN,R0
    377	002056					CALL	PRSREG
    378	002062					CALL	.NXDIR		;NEXT WILD CARD DIRECTORY IF ANY
    379	002066	103402 				BCS	20$
    380	002070	000167 	176224 			JMP	DIRLS2
    381	002074				20$:	CALL	FNDERR		;ERR MESSAGE IF NOT IE.NSF
    382	002100	012700 	000000G			MOV	#FDBIN,R0
    383	002104	016001 	000000G			MOV	F.DSPT(R0),R1
    384	002110	012702 	000000G			MOV	#INCSI,R2
    385	002114	020127 	000000G			CMP	R1,#IFNPT
    386	002120	001402 				BEQ	30$
    387	002122	012702 	000000G			MOV	#OUTCSI,R2
    388	002126				30$:	CALL	NXINOU		;GET NEXT SPECIFIER IF ANY
    389	002132	103402 				BCS	40$
    390	002134	000167 	176034 			JMP	DIRLS1
    391	002140	016700 	000012'		40$:	MOV	USDMSG,R0	;SEE IF TOTAL MESSAGE TO BE PRINTED
    392	002144	001010 				BNE	45$
    393	002146	005767 	000016'			TST	DIROUT		;IF NO OUTPUT HAS BEEN DONE YET
    394	002152	001003 				BNE	42$
    395	002154					ERROUX	FI03		;SAY NO SUCH FILES
	002154	104403 				TRAP	X
	002156	000000G				.WORD	FI03SZ
	002160	000000G				.WORD	FI03MG
    396	002162	016700 	000000G		42$:	MOV	.DYBUF,R0	;OTHERWISE JUST OUTPUT A FEW LF'S
    397	002166	112720 	000015 		45$:	MOVB	#15,(R0)+	;CR
    398	002172	012701 	000012 			MOV	#12,R1
    399	002176	110120 				MOVB	R1,(R0)+	;LF
    400	002200	132767 	000000G	000000C		BITB	#FD.TTY,FDBOUT+F.RCTL ;IF OUTPUT TO TERMINAL DEVICE
PIPDIR M0216, LIST DIRECTORY CO	MACRO M1113  27-FEB-85 12:26  PAGE 10-1
**** PIPDIR VERSION M0216 ****

    401	002206	001402 				BEQ	50$
    402	002210	110120 				MOVB	R1,(R0)+	;ADD 2 MORE LF'S
    403	002212	110120 				MOVB	R1,(R0)+
    404	002214				50$:	CALL	EDTPT1
    405	002220	000167 	000000G		60$:	JMP	CLOSX
PIPDIR M0216, LIST DIRECTORY CO	MACRO M1113  27-FEB-85 12:26  PAGE 11
**** PIPDIR VERSION M0216 ****

    407					;
    408					; OUTPUT RECORD TO LISTING FILE
    409					; INPUTS:
    410					;	R0=POINTER TO END OF STRING
    411					;	FDBOUT+F.NRBD+2 = ADDRESS OF BEGIN OF STRING
    412					; OUTPUTS:
    413					;	R0 ALTERED, OTHERS PRESERVED
    414					; OPERATION:
    415					;	IF I/O ERROR TO LISTING FILE, GIVES ERROR MESSAGE AND
    416					; TERMINATES.  DOES NOT RETURN IN THIS CASE
    417
    418						.ENABL	LSB
    419
    420					;
    421					; HERE TO PRINT THE DIRECTORY HEADER MESSAGE AND TOTAL MESSAGE
    422					;
    423	002224	010067 	000016'		EDTPT1:	MOV	R0,DIROUT	;NOTE THAT OUTPUT HAS BEEN DONE
    424	002230	010146 				MOV	R1,-(SP)	; SAVE REGISTERS
    425	002232	010246 				MOV	R2,-(SP)
    426	002234	016701 	000000G			MOV	.DYBUF,R1	; ADDRESS OF RECORD TO PUT
    427	002240	016702 	000000C			MOV	FDBOUT+F.NRBD+2,R2 ; GET ADDRESS OF RECORD BUFFER
    428	002244	160100 				SUB	R1,R0		; COMPUTE BYTE COUNT
    429	002246	001426 				BEQ	8$		; EXIT ON NULL RECORD
    430	002250	010067 	000000C			MOV	R0,FDBOUT+F.NRBD ; SET RECORD SIZE IN FDB
    431	002254	112122 			1$:	MOVB	(R1)+,(R2)+	; COPY THE RECORD INTO THE BUFFER
    432	002256					SOB	R0,1$
    433	002262	012602 				MOV	(SP)+,R2	; RESTORE REGISTERS
    434	002264	012601 				MOV	(SP)+,R1
    435	002266	000411 				BR	5$
    436					;
    437					; HERE TO PRINT OUT THE DIRECTORY LISTING TEXT FOR EACH FILE
    438					;
    439	002270	032767 	000000G	000000G	EDTPUT:	BIT	#TOTLBT,CMDWRD	;IF JUST PRINTING TOTALS
    440	002276	001012 				BNE	8$		;DON'T PRINT THE DIRECTORY ENTRIES
    441	002300	010067 	000000C			MOV	R0,FDBOUT+F.NRBD
    442	002304	166767 	000000C	000000C		SUB	FDBOUT+F.NRBD+2,FDBOUT+F.NRBD
    443	002312				5$:	PUT$	#FDBOUT
    444	002322	103401 				BCS	10$
    445	002324				8$:	RETURN
    446	002326				10$:	ERROUX	CP14,0,0
	002326	104427 				TRAP	X
	002330	000000G				.WORD	CP14SZ
	002332	000000G				.WORD	CP14MG
    447
    448						.DSABL	LSB
    449
    450					;
    451					; START UP A FIND QI/O OPERATION
    452					;
    453					; INPUTS:
    454					;	NONE
    455					; OUPTUTS:
    456					;	R0=INPUT FDB ADDRESS
    457					;	R1=(R0)+F.FNB
    458					;	R2=0
    459					;
    460	002334	012700 	000000G		STFIND:	MOV	#FDBIN,R0
PIPDIR M0216, LIST DIRECTORY CO	MACRO M1113  27-FEB-85 12:26  PAGE 11-1
**** PIPDIR VERSION M0216 ****

    461	002340	012701 	000000C			MOV	#FDBIN+F.FNB,R1
    462	002344	005002 				CLR	R2
    463	002346	016761 	000000G	000000G		MOV	VERSAV,N.FVER(R1)
    464	002354					CALL	.WLDVC		;SPECIAL DEFAULT VERSION LOGIC?
    465	002360	103006 				BCC	5$		;BRANCH IF NO
    466	002362					CALL	.FNDNX		;DO THE SPECIAL FIND
    467	002366	116067 	000000G	000000G		MOVB	F.ERR(R0),FNASTS ;SET STATUS SO WAIT WILL WORK
    468	002374					RETURN
    469	002376				5$:
    470						.IF	EQ,R$$DPB	;IF OLD DPB FORMAT
    471						QIO$S	#IO.FNA,#INLUN,#FNAEFN,,#FNASTS,,<R1>
    472						.IFF			;IF NEW DPB FORMAT
    473	002376					QIO$S	#IO.FNA,#INLUN,#FNAEFN,,#FNASTS,,<,,,,,R1>
    474						.ENDC
    475
    476	002444	103003 				BCC	10$
    477	002446	113767 	000000G	000000G		MOVB	@#$DSW,FNASTS	;PUT ERROR BYTE WHERE WAIT WILL FIND IT
    478	002454				10$:	RETURN
    479					;
    480					; WAIT FOR THE COMPLETION OF A PREVIOUSLY ISSUED QI/O
    481					; INPUTS:
    482					;	R0=FDB ADDRESS, SET F.ERR
    483					;	R1=I/O STATUS BLOCK ADDRESS
    484					;	R2=EVENT FLAG NUMBER
    485					; OUTPUT:
    486					;	C=0 IF OPERATION WAS COMPLETED SUCCESSFULLY
    487					;	C=1 IF ERROR, F.ERR(R0) SET TO REASON
    488					;	ALL REGISTERS PRESERVED
    489					;
    490	002456	000241 			WATQIO:	CLC
    491	002460	111160 	000000G			MOVB	(R1),F.ERR(R0)	;SEE IF OPERATION COMPLETE FIRST
    492	002464	001005 				BNE	20$		;BRANCH IF IT IS
    493	002466					WTSE$S	R2		;WAIT FOR SPECIFIED EVENT FLAG
    494	002476	000767 				BR	WATQIO
    495	002500	003001 			20$:	BGT	30$
    496	002502	000261 				SEC
    497	002504				30$:	RETURN
    498
    499					;
    500					;
    501		000001 				.END
PIPDIR M0216, LIST DIRECTORY CO	MACRO M1113  27-FEB-85 12:26  PAGE 11-2
SYMBOL TABLE

CLOSX = ****** GX	DI07SZ= ****** GX	F.RATT= ****** GX	NB.SFN= ****** GX	STNMBK= ****** GX
CLSIN = ****** GX	DI08MG= ****** GX	F.RCTL= ****** GX	NB.SNM= ****** GX	SYDEV = ****** GX
CMDWRD= ****** GX	DI08SZ= ****** GX	F.RTYP= ****** GX	NB.STP= ****** GX	SYDFLT= ****** GX
CODEV = ****** GX	EDTPT1  002224R     004	F.UNIT= ****** GX	NMBLK1= ****** GX	SYUNIT= ****** GX
COUNIT= ****** GX	EDTPUT  002270R     004	F.URBD= ****** GX	NXINOU= ****** GX	S.APPD= 000010
CPYCTL= ****** GX	EVRYBT= ****** GX	GTENT   001106R     004	N.DEVD= 000000   	S.FIDS= 000014
CP14MG= ****** GX	FCSERR= ****** GX	G.TICP= 000016   	N.DID = ****** GX	S.FNBW= ****** GX
CP14SZ= ****** GX	FDBIN = ****** GX	G.TICT= 000014   	N.DIRD= 000004   	TIMEMG= 000131R     002
CS.DIF= 000002   	FDBOUT= ****** GX	G.TIDA= 000004   	N.DVNM= ****** GX	TIMESZ= 000011
CS.DVF= 000004   	FD.DIR= ****** GX	G.TIHR= 000006   	N.FLID= 000016   	TOTHMG= 000055R     002
CS.EQU= 000040   	FD.PLC= ****** GX	G.TIMI= 000010   	N.FNAM= ****** GX	TOTHSZ= 000033
CS.INP= 000001   	FD.SDI= ****** GX	G.TIMO= 000002   	N.FNMD= 000010   	TOTLBT= ****** GX
CS.MOR= 000020   	FD.SQD= ****** GX	G.TISC= 000012   	N.FVER= ****** GX	TOT1MG= 000142R     002
CS.NMF= 000001   	FD.TTY= ****** GX	G.TIYR= 000000   	N.SPEC= 000014   	TOT1SZ= 000017
CS.OUT= 000002   	FF    = 000014   	HDFILL= ****** GX	N.STAT= ****** GX	TOT2MG= 000161R     002
CS.WLD= 000010   	FILALC  000006R     003	HDRMG = ****** GX	N.UNIT= ****** GX	TOT2SZ= 000026
C.CMLD= 000002   	FILCNT  000000R     003	HDRTB1= ****** GX	OFNPT = ****** GX	USDMSG  000012R     003
C.DEVD= 000006   	FILUSD  000002R     003	HH.UAT= ****** GX	OP02MG= ****** GX	VERSAV= ****** GX
C.DIRD= 000012   	FI03MG= ****** GX	IFNPT = ****** GX	OP02SZ= ****** GX	WATQIO  002456R     004
C.DSDS= 000006   	FI03SZ= ****** GX	INCSI = ****** GX	OURACC= ****** GX	X     = 000027
C.FILD= 000016   	FNAEFN= ****** GX	INLUN = ****** GX	OUSPEC= ****** GX	$CDDMG= ****** GX
C.MKW1= 000024   	FNASTS= ****** GX	INRACC= ****** GX	OUTCSI= ****** GX	$DSW  = ****** GX
C.MKW2= 000026   	FNDERR= ****** GX	INSPEC= ****** GX	PARSE = ****** GX	$EDMSG= ****** GX
C.SIZE= 000054   	FO.WRT= ****** GX	IOSTBK= ****** GX	PAR$$$= 000027   	$$    = 000067
C.STAT= 000001   	FRSTIM= ****** GX	IO.FNA= ****** GX	PRSERR= ****** GX	$$$ARG= 000006
C.SWAD= 000022   	F.BDB = ****** GX	IO.RAT= ****** GX	PRSREG= ****** GX	$$$OST= 000020
C.TYPR= 000000   	F.DFNB= ****** GX	LINBFS= ****** GX	RATCTL= ****** GX	$$$T1 = 000014
DIHDMG  000014R     003	F.DSPT= ****** GX	LINBUF= ****** GX	RATEFN= ****** GX	.DYALC= ****** GX
DIRHMG= 000110R     002	F.DVNM= ****** GX	LI01MG= 000000R     002	RDATER  001640R     004	.DYBUF= ****** GX
DIRHSZ= 000021   	F.EFBK= ****** GX	LI01SZ= 000022   	RECATT= ****** GX	.FNDNX= ****** GX
DIRLST  000000RG    004	F.ERR = ****** GX	LI02MG= 000022R     002	R$$DPB= 000001   	.HDRAD= ****** GX
DIRLS1  000174R     004	F.FACC= ****** GX	LI02SZ= 000005   	R$$DYM= 000001   	.LCLSW= ****** GX
DIRLS2  000320R     004	F.FFBY= ****** GX	LI03MG= 000027R     002	R$$EIS= 000000   	.NXDIR= ****** GX
DIRLS3  000360R     004	F.FNB = ****** GX	LI03SZ= 000026   	R$$MSG= 000000   	.OPFNB= ****** G
DIROUT  000016R     003	F.FVER= ****** GX	LPTLEN= ****** GX	R$$11M= 000001   	.OULCL= ****** GX
DIRPUT  001630R     004	F.MBCT= ****** GX	LSTNXT  001702R     004	R.VAR = ****** GX	.PUTSQ= ****** G
DI06MG= ****** GX	F.NRBD= ****** GX	MVSTRG= ****** GX	SHTLST= ****** GX	.RDFDR= ****** GX
DI06SZ= ****** GX	F.OVBS= ****** GX	NAMBLK= ****** GX	STBLK = ****** GX	.WLDVC= ****** GX
DI07MG= ****** GX	F.RACC= ****** GX	NB.SDI= ****** GX	STFIND  002334R     004

. ABS.	000000	   000
      	000000	   001
MSGSTR	000207	   002
IMPURE	000020	   003
PURE$I	002506	   004
ERRORS DETECTED:  0

VIRTUAL MEMORY USED:  5720 WORDS  ( 23 PAGES)
DYNAMIC MEMORY:  6734 WORDS  ( 25 PAGES)
ELAPSED TIME:  00:00:31
[43,10]PIPDIR,[43,20]PIPDIR/-SP/CR=[43,30]PIPMAC,PIPDIR
PIPDIR     CREATED BY  MACRO  ON 27-FEB-85 AT 12:26	PAGE 1

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

CLOSX 	= ******  GX	 8-106      8-151      8-231      10-405    
CLSIN 	= ******  GX	 10-375     10-375    
CMDWRD	= ******  GX	 8-177      8-202      9-258      9-283      9-323      10-348     10-361     11-439    
CODEV 	= ******  GX	 8-75      
COUNIT	= ******  GX	 8-76      
CPYCTL	= ******  GX	*8-137      9-235     *9-237     
CP14MG	= ******  GX	 11-446    
CP14SZ	= ******  GX	 11-446    
CS.DIF	= 000002	 8-84       8-118     
CS.DVF	= 000004	 8-118     
CS.NMF	= 000001	 8-84       8-131      8-135     
DIHDMG	  000014 R	#7-62      *8-130      8-211     *8-213     *8-218      9-246     *9-248      10-352    
DIRHMG	= 000110 R	#7-45       7-45       8-176     
DIRHSZ	= 000021	#7-45      
DIRLST	  000000 RG	#8-71      
DIRLS1	  000174 R	#8-102      10-390    
DIRLS2	  000320 R	 8-117      8-119     #8-122      10-380    
DIRLS3	  000360 R	 8-121     #8-131     
DIROUT	  000016 R	#7-64      *8-94       8-159      10-393    *11-423    
DIRPUT	  001630 R	 9-284     #9-333      9-345     
DI06MG	= ******  GX	 8-223     
DI06SZ	= ******  GX	 8-223     
DI07MG	= ******  GX	 8-226     
DI07SZ	= ******  GX	 8-226     
DI08MG	= ******  GX	 8-110     
DI08SZ	= ******  GX	 8-110     
EDTPT1	  002224 R	 8-125      8-125      8-219      8-219      9-249      9-249      10-404     10-404    #11-423    
EDTPUT	  002270 R	 9-288      9-288      9-333      9-333     #11-439    
EVRYBT	= ******  GX	 9-323      10-361    
FCSERR	= ******  GX	 9-344      9-344     
FDBIN 	= ******  GX	*8-71      *8-72      *8-82       8-102     *8-136      8-173      8-174      8-182      8-186     
                         8-188      8-214      9-233      9-238      9-250      9-275      9-289      9-298      9-343     
                         10-376     10-382     11-460     11-461    
FDBOUT	= ******  GX	*8-73      *8-74      *8-83       8-120      8-138      8-161      9-279      9-319      9-326     
                         9-338      10-400     11-427    *11-430    *11-441     11-442    *11-442     11-443     11-443    
FD.DIR	= ******  GX	 8-108     
FD.PLC	= ******  GX	 8-77       8-78      
FD.SDI	= ******  GX	 8-186     
FD.SQD	= ******  GX	 9-298     
FD.TTY	= ******  GX	 8-161      9-326      10-400    
FF    	= 000014	#7-38       8-163     
FILALC	  000006 R	#7-56      *9-316     *9-317     *9-318      10-365    
FILCNT	  000000 R	#7-54       8-127     *9-245     *9-337      10-350     10-369     10-371    
FILUSD	  000002 R	#7-55      *9-313     *9-315      10-358    
FI03MG	= ******  GX	 10-395    
FI03SZ	= ******  GX	 10-395    
FNAEFN	= ******  GX	 9-239      11-473    
FNASTS	= ******  GX	 9-240     *11-467     11-473    *11-477    
FNDERR	= ******  GX	 9-243      9-243      10-381     10-381    
FO.WRT	= ******  GX	 8-152     
FRSTIM	= ******  GX	 8-137      9-235      9-237     
F.BDB 	= ******  GX	 8-120      8-139     
PIPDIR     CREATED BY  MACRO  ON 27-FEB-85 AT 12:26	PAGE 2

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

F.DFNB	= ******  GX	*8-72      *8-74      
F.DSPT	= ******  GX	*8-71      *8-73      *8-82      *8-83       8-182      8-188      10-383    
F.DVNM	= ******  GX	 8-174     
F.EFBK	= ******  GX	*9-300      9-301      9-302     
F.ERR 	= ******  GX	 9-343      11-467    *11-491    
F.FACC	= ******  GX	*8-152     
F.FFBY	= ******  GX	 9-309     
F.FNB 	= ******  GX	*8-136      8-214      9-233      9-250      9-275      11-461    
F.FVER	= ******  GX	 8-111     
F.MBCT	= ******  GX	*8-143     
F.NRBD	= ******  GX	 9-279      9-319      9-338      11-427    *11-430    *11-441     11-442    *11-442    
F.OVBS	= ******  GX	*8-143     
F.RACC	= ******  GX	*8-152     
F.RATT	= ******  GX	*8-141     
F.RCTL	= ******  GX	 8-108      8-161      8-186      9-298      9-326      10-400    
F.RTYP	= ******  GX	*8-141     
F.UNIT	= ******  GX	 8-173     
F.URBD	= ******  GX	*8-152     *8-152     
GTENT 	  001106 R	 8-220     #9-233      9-334     
G.TICP	= 000016	#8-205     
G.TICT	= 000014	#8-205     
G.TIDA	= 000004	#8-205     
G.TIHR	= 000006	#8-205     
G.TIMI	= 000010	#8-205     
G.TIMO	= 000002	#8-205     
G.TISC	= 000012	#8-205     
G.TIYR	= 000000	#8-205     
HDFILL	= ******  GX	 9-287      9-287     
HDRMG 	= ******  GX	 9-332      9-332     
HDRTB1	= ******  GX	 9-286     
HH.UAT	= ******  GX	*9-300      9-301      9-302      9-309     
IFNPT 	= ******  GX	 8-73       8-82       10-385    
INCSI 	= ******  GX	 10-384    
INLUN 	= ******  GX	 9-267      11-473    
INRACC	= ******  GX	*8-77      
INSPEC	= ******  GX	 8-79      *8-107      8-118      8-131     *8-135     
IOSTBK	= ******  GX	 9-267     *9-271      9-291     
IO.FNA	= ******  GX	 11-473    
IO.RAT	= ******  GX	 9-267     
LINBFS	= ******  GX	 8-95       8-97       8-143      8-152     
LINBUF	= ******  GX	 8-152     
LI01MG	= 000000 R	#7-41       7-41       8-200     
LI01SZ	= 000022	#7-41      
LI02MG	= 000022 R	#7-42       7-42       9-281     
LI02SZ	= 000005	#7-42      
LI03MG	= 000027 R	#7-43       7-43       9-340     
LI03SZ	= 000026	#7-43       9-339     
LPTLEN	= ******  GX	 9-330     
LSTNXT	  001702 R	 9-244     #10-347    
MSGBL.	= ******	 7-41       7-42       7-43       7-44       7-45       7-46       7-47       7-48      
MVSTRG	= ******  GX	 9-341      9-341     
NAMBLK	= ******  GX	 8-72      
PIPDIR     CREATED BY  MACRO  ON 27-FEB-85 AT 12:26	PAGE 3

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

NB.SDI	= ******  GX	 8-215      8-216     
NB.SFN	= ******  GX	 8-136      9-233      9-275     
NB.SNM	= ******  GX	 8-215      8-216     
NB.STP	= ******  GX	 8-215      8-216     
NMBLK1	= ******  GX	 9-251      9-267      9-278     
NXINOU	= ******  GX	 10-388     10-388    
N.DEVD	= 000000	#7-30      
N.DID 	= ******  GX	*8-114     *8-115     *8-116     
N.DIRD	= 000004	#7-30       8-189      8-190     
N.DVNM	= ******  GX	*8-75      *8-86      
N.FLID	= 000016	#7-30       8-112      8-114      8-115      8-116      8-183      8-199     
N.FNAM	= ******  GX	 9-280     
N.FNMD	= 000010	#7-30      
N.FVER	= ******  GX	*11-463    
N.SPEC	= 000014	#7-30       8-107     
N.STAT	= ******  GX	*8-136      8-214      9-233      9-275     
N.UNIT	= ******  GX	*8-76      *8-87      
OFNPT 	= ******  GX	 8-71       8-83      
OP02MG	= ******  GX	 8-230     
OP02SZ	= ******  GX	 8-230     
OURACC	= ******  GX	*8-78       8-152     
OUSPEC	= ******  GX	 8-84      
OUTCSI	= ******  GX	 10-387    
PARSE 	= ******  GX	 8-103      8-103      8-148      8-148     
PAR$$$	= 000027	#8-141      8-141     #8-143      8-143     #8-152      8-152     #11-443     11-443    
PRSERR	= ******  GX	 8-105      8-105      8-150      8-150     
PRSREG	= ******  GX	 10-377     10-377    
RATCTL	= ******  GX	 9-267     
RATEFN	= ******  GX	 9-267      9-290     
RDATER	  001640 R	 9-293     #9-337     
RECATT	= ******  GX	 8-156      8-156     
RONLY$	= ******	 7-41       7-41       7-42       7-42       7-43       7-43       7-44       7-44       7-45      
                         7-45       7-46       7-46       7-47       7-47       7-48       7-48       8-67       8-67      
R$$DPB	= 000001	#1-27       9-264      11-470    
R$$DYM	= 000001	#1-29      
R$$EIS	= 000000	#1-28       1-38      
R$$MSG	= 000000	 7-41       7-41       7-42       7-42       7-43       7-43       7-44       7-44       7-45      
                         7-45       7-46       7-46       7-47       7-47       7-48       7-48      
R$$11M	= 000001	#1-25       1-26       7-1        7-24       8-145     
R.VAR 	= ******  GX	 8-141     
SHTLST	= ******  GX	 8-202      9-258      9-283      10-348    
STBLK 	= ******  GX	 9-306      9-307      9-316      9-318      9-321     
STFIND	  002334 R	 8-171      8-171      9-277      9-277     #11-460    
STNMBK	= ******  GX	 8-92       8-92      
SYDEV 	= ******  GX	 8-86      
SYDFLT	= ******  GX	 8-74      *8-75      *8-76      *8-86      *8-87      
SYS40$	= ******	 1-67       7-41       7-41       7-42       7-42       7-43       7-43       7-44       7-44      
                         7-45       7-45       7-46       7-46       7-47       7-47       7-48       7-48       7-49      
                         7-49       8-67       8-67      
SYUNIT	= ******  GX	 8-87      
S.APPD	= 000010	#7-30      
S.FIDS	= 000014	#7-30      
PIPDIR     CREATED BY  MACRO  ON 27-FEB-85 AT 12:26	PAGE 4

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

S.FNBW	= ******  GX	 9-252     
TIMEMG	= 000131 R	#7-46       7-46       8-207     
TIMESZ	= 000011	#7-46      
TOTHMG	= 000055 R	#7-44       7-44       8-179     
TOTHSZ	= 000033	#7-44      
TOTLBT	= ******  GX	 8-177      9-323      10-361     11-439    
TOT1MG	= 000142 R	#7-47       7-47       10-355    
TOT1SZ	= 000017	#7-47      
TOT2MG	= 000161 R	#7-48       7-48       10-368    
TOT2SZ	= 000026	#7-48      
USDMSG	  000012 R	#7-60      *8-93       8-122     *8-124     *10-347    *10-374     10-391    
VERSAV	= ******  GX	*8-111      11-463    
WATQIO	  002456 R	 9-241      9-241      9-292      9-292     #11-490     11-494    
X     	= 000027	#8-110      8-110     #8-110      8-110     #8-223      8-223     #8-223      8-223     #8-223     
                         8-223     #8-226      8-226     #8-230      8-230     #8-230      8-230     #8-230      8-230     
                        #10-395     10-395    #11-446     11-446    #11-446     11-446    #11-446     11-446    
$CDDMG	= ******  GX	 10-360     10-360     10-367     10-367    
$DSW  	= ******  GX	 9-271      11-477    
$EDMSG	= ******  GX	 8-180      8-180      8-201      8-201      8-208      8-208      9-282      9-282      10-357    
                         10-357     10-370     10-370    
$$    	= 000067	#8-92       8-92      #8-96       8-96      #8-103      8-103     #8-105      8-105     #8-125     
                         8-125     #8-148      8-148     #8-150      8-150     #8-156      8-156     #8-171      8-171     
                        #8-180      8-180     #8-192      8-192     #8-201      8-201     #8-208      8-208     #8-219     
                         8-219     #9-241      9-241     #9-243      9-243     #9-249      9-249     #9-277      9-277     
                        #9-282      9-282     #9-287      9-287     #9-288      9-288     #9-292      9-292     #9-332     
                         9-332     #9-333      9-333     #9-341      9-341     #9-344      9-344     #10-357     10-357    
                        #10-360     10-360    #10-367     10-367    #10-370     10-370    #10-375     10-375    #10-377    
                         10-377    #10-378     10-378    #10-381     10-381    #10-388     10-388    #10-404     10-404    
                        #11-464     11-464    #11-466     11-466    
$$$ARG	= 000006	#9-267      9-267      9-267      9-267      9-267      9-267      9-267      9-267      9-267     
                         9-267      9-267      9-267     #11-473     11-473     11-473     11-473     11-473     11-473    
                         11-473     11-473     11-473     11-473     11-473     11-473    
$$$GLB	= ******	 8-205      8-205      8-205      8-205      8-205      8-205      8-205      8-205     
$$$OST	= 000020	#8-205      8-205      8-205     #8-205      8-205      8-205     #8-205      8-205      8-205     
                        #8-205      8-205      8-205     #8-205      8-205      8-205     #8-205      8-205      8-205     
                        #8-205      8-205      8-205     #8-205      8-205      8-205     #8-205     
$$$T1 	= 000014	#9-267      9-267     #11-473     11-473    
.DYALC	= ******  GX	 8-96       8-96      
.DYBUF	= ******  GX	 8-158      10-354     10-396     11-426    
.FNDNX	= ******  GX	 11-466     11-466    
.HDRAD	= ******  GX	*8-98       8-204      9-297     
.LCLSW	= ******  GX	*8-81      
.NXDIR	= ******  GX	 10-378     10-378    
.OPFNB	= ******  G	 8-152      8-152     
.OULCL	= ******  GX	 8-81      
.PUTSQ	= ******  G	 11-443     11-443    
.RDFDR	= ******  GX	 8-192      8-192     
.WLDVC	= ******  GX	 11-464     11-464    
PIPDIR     CREATED BY  MACRO  ON 27-FEB-85 AT 12:26	PAGE 5

MACRO CROSS REFERENCE                                   CREF         

MACRO NAME	REFERENCES

ASH   		#1-64      
ASHC  		#1-64      
CALL  		#7-34       8-92       8-96       8-103      8-105      8-125      8-148      8-150     #8-152      8-156     
                 8-171      8-180      8-192      8-201      8-208      8-219      9-241      9-243      9-249      9-277     
                 9-282      9-287      9-288      9-292      9-332      9-333      9-341      9-344      10-357     10-360    
                 10-367     10-370     10-375     10-377     10-378     10-381     10-388     10-404    #11-443     11-464    
                 11-466    
CMOV$B		#8-141     #8-141     #8-141     #8-143     #8-143     #8-143     #8-143     #8-152     #8-152     #8-152     
                #8-152     #8-152     #8-152     
CMOV$W		#8-141     #8-141     #8-141     #8-141     #8-143     #8-143     #8-152     #8-152     #8-152     #8-152     
                #8-152     #8-152     #11-443    #11-443    #11-443    
CSI$  		#7-31      #7-32      
DIR$  		#8-205     #8-205     #9-267     #9-267     #11-473    #11-473    #11-493    #11-493    
DIV   		#1-64      
ERRINI		#4-307     
ERROUT		#3-215      8-230     
ERROUX		#3-222      8-110      8-223      8-226      10-395     11-446    
ERROU1		#3-225     #8-110     #8-223     #8-226     #8-230     #10-395    #11-446    
ERRP  		#3-247     
ERRPX 		#3-253     
ERRP1 		#3-256     
ERR$  		#8-152     #8-152     #8-205     #9-267     #11-443    #11-443    #11-473    #11-493    
ERR1  		#3-273     #8-110     #8-223     #8-226     #8-230     #10-395    #11-446    
FDAT$R		#7-35      #8-141     
FDBF$R		#7-35       8-143     
FDOP$R		#8-152     #8-152     
FDRC$R		#8-152     #8-152     
FLDSOF		#5-382      7-30      #7-30      
GTIM$S		#7-35       8-205     
IDENT 		#5-339     #7-1       
IDENT1		#5-347      7-1       
IDTITL		#5-356     
ILLOP 		#1-52      #1-64       1-64      
IMPURE		#1-75      #7-49      
LDFDB$		#8-141      8-141     #8-143      8-143     #8-152      8-152     #8-152      8-152     #11-443     11-443    
MARK  		#1-64      
MOV$  		#8-205      8-205     #9-267     #9-267      9-267      9-267      9-267      9-267      9-267      9-267     
                 9-267      9-267      9-267      9-267     #11-473    #11-473     11-473     11-473     11-473     11-473    
                 11-473     11-473     11-473     11-473     11-473     11-473    #11-493     11-493    
MSG   		#2-124     #7-43      #7-44      
MSGZ  		#2-129     #7-41      #7-42      #7-45      #7-46      #7-47      #7-48      
MSG1  		#2-133     #7-41      #7-42      #7-43      #7-44      #7-45      #7-46      #7-47      #7-48      
MUL   		#1-64      
MVB$  		#9-267     #9-267     #11-473    #11-473    
NOEIS$		#1-39       1-64      
OFF$  		#8-205     #8-205     #8-205     #8-205     #8-205     #8-205     #8-205     #8-205     #8-205     
OFNB$ 		#8-152      8-152     
OFNB$W		#7-35       8-152     
OPEN$W		#7-35      
PURE. 		#1-84       7-41       7-42       7-43       7-44       7-45       7-46       7-47       7-48       8-67      
PURE.D		#1-102     
PURE.I		#1-98       8-67      
PIPDIR     CREATED BY  MACRO  ON 27-FEB-85 AT 12:26	PAGE 6

MACRO CROSS REFERENCE                                   CREF         

MACRO NAME	REFERENCES

PUT$  		#7-25      #7-35      #11-443    
PUT$S 		#11-443     11-443    
QDPB$S		#9-267      9-267     #11-473     11-473    
QIO$S 		#7-34       9-267      11-473    
RETURN		#7-34       11-445     11-468     11-478     11-497    
RTT   		#1-64      
RVP$  		#9-267      9-267     #11-473     11-473    
SOB   		#1-64      #8-129     #8-196     #9-254     #11-432    
SXT   		#1-64      
WTSE$S		#7-34      #11-493    
XOR   		#1-64      
PIPFRE M0105, PIP - PRINT FREE 	MACRO M1113  27-FEB-85 12:27
TABLE OF CONTENTS

     7-    1	**** PIPFRE VERSION M0105 ****
     8-   51	PRINT FREE SPACE ON VOLUME
    10-  227	FORMAT STRINGS
PIPMAC - MACROS FOR PIP, ETC.	MACRO M1113  27-FEB-85 12:27  PAGE 6


    397
PIPFRE M0105, PIP - PRINT FREE 	MACRO M1113  27-FEB-85 12:27  PAGE 7


      1						.TITLE	PIPFRE M0105, PIP - PRINT FREE SPACE ON VOLUME
						.SBTTL	**** PIPFRE VERSION M0105 ****
						.IDENT	/M0105/
      2					; ALTERED WEDNESDAY 8-JAN-75 12:30
      3					; ALTERED TUESDAY 19-NOV-74 16:40
      4					;
      5					; COPYRIGHT 1974, 1985, DIGITAL EQUIPMENT CORP., MAYNARD MASS.
      6
      7					;			ALL RIGHTS RESERVED
      8					;
      9					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
     10					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
     11					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
     12					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
     13
     14					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
     15					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
     16					; EQUIPMENT CORPORATION.
     17
     18					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY
     19					; OF ITS SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
     20					;
     21					; PETER H. LIPMAN 8-NOV-74
     22					;
     23	000000					FLDSOF			;DEFINE DESCRIPTOR POINTER OFFSETS
     24						.MCALL	CSI$
     25	000000					CSI$			;DEFINE THE CSI CONTROL BLOCK OFFSETS
     26
     27						.IF	GT,R$$11M
     28						.MACRO	OPEN$	FDB,FACC
     29						.MCALL	OFNB$
     30						OFNB$	FDB,<FACC>
     31						.ENDM	OPEN$
     32						.ENDC
     33
     34						.MCALL	CALL,RETURN,FDOP$R,FDAT$R,FDRC$R,FDBK$R,NMBLK$
     35						.MCALL	OPEN$,QIO$S,WTSE$S,READ$,WAIT$
     36
     37	000000					IMPURE
     38	000000				MAXLBN:	.BLKW	2		;MAXIMUM NO. OF BLOCKS ON VOLUME
     39	000004				NBTBLK:	.BLKW	1		;NO. OF BIT MAP BLOCKS ON VOLUME
     40	000006				MOPRM:	.BLKW	2		;PARAMETER STORAGE FOR CALL TO EDTMG
     41
     42
     43	000012					PURE.D
     44
     45	000000				FRDFNB:	NMBLK$	BITMAP,SYS,1,SY,0
     46
     47	000000					.PSECT
     48
     49	000000					MSG	MFDN,<[0,0]>
PIPFRE M0105, PIP - PRINT FREE 	MACRO M1113  27-FEB-85 12:27  PAGE 8
PRINT FREE SPACE ON VOLUME

     51						.SBTTL	PRINT FREE SPACE ON VOLUME
     52
     53	000000					PURE.I
     54
     55	000000				.FREE::
     56	000000	005767 	000000G			TST	INSPEC		;NO INPUT SPECIFER ALLOWED
     57	000004	001142 				BNE	90$		;BRANCH IF SYNTAX ERROR
     58	000006	032767 	000033 	000000G		BIT	#CS.DIF!CS.NMF!CS.WLD!CS.MOR,OUSPEC
     59	000014	001136 				BNE	90$		;BRANCH IF SYNTAX ERROR
     60	000016	012701 	001000 			MOV	#1000,R1
     61	000022					CALL	.DYALC		;ALLOCATE A BUFFER TO READ THE BITMAP
     62	000026					FDRC$R	#FDBIN,#FD.RWM
     63	000040					FDBK$R	R0,.DYBUF,#1000
     64	000054					FDOP$R	R0,,#OFNPT,#FRDFNB
     65	000070	012760 	000000G	000000G		MOV	#STBLK,F.STBK(R0) ;READ STATISTICS BLOCK ON OPEN
     66	000076	012767 	000005 	000004G		MOV	#MFDNSZ,OFNPT+N.DIRD ;FORCE MFD DIRECTORY NAME
     67	000104	012767 	000000'	000006G		MOV	#MFDNMG,OFNPT+N.DIRD+2
     68
     69						.IF	GT,R$$11M
     70	000112					CALL	PRSREG		;SET UP FOR CALL TO PARSE
     71	000116					CALL	.PARSE
     72	000122	103004 				BCC	20$		;BRANCH IF SUCCESSFUL
     73	000124					CALL	PRSERR		;ISSUE THE ERROR MESSAGE
     74	000130	000167 	000000G			JMP	CLOSX
     75	000134				20$:
     76						.ENDC
     77
     78	000134					OPEN$	R0,#FO.RD!FA.SHR
     79	000146	103003 				BCC	60$
     80	000150				50$:	ERROUX	FR01,1,0	;FAILED TO OPEN BITMAP FILE
	000150	104433 				TRAP	X
	000152	000000G				.WORD	FR01SZ
	000154	000000G				.WORD	FR01MG
     81	000156	016705 	000006G		60$:	MOV	STBLK+6,R5
     82	000162	010560 	000002G			MOV	R5,F.HIBK+2(R0)	;FIX UP FDB SO EOF IS RIGHT
     83	000166	005205 				INC	R5
     84	000170	010560 	000002G			MOV	R5,F.EFBK+2(R0)	;EOF = 1ST BYTE OF NEXT BLOCK
     85	000174	005060 	000000G			CLR	F.FFBY(R0)
     86	000200					READ$	R0		;READ VBN 1
     87	000204	103445 				BCS	RDERR
     88	000206					WAIT$	R0
     89	000212	103442 				BCS	RDERR		;BRANCH IF ERROR
     90	000214	016701 	000000G			MOV	.DYBUF,R1
     91	000220	116103 	000003 			MOVB	3(R1),R3	;NO. OF BIT MAP BLOCKS
     92	000224	010367 	000004'			MOV	R3,NBTBLK
     93	000230	006303 				ASL	R3		;CALCULATE ADDRESS OF MAXLBN
     94	000232	006303 				ASL	R3
     95	000234	060301 				ADD	R3,R1
     96	000236	062701 	000004 			ADD	#4,R1		;4 PLUS 2 WORDS FOR EACH BIT MAP BLOCK
     97	000242	012167 	000000'			MOV	(R1)+,MAXLBN
     98	000246	011167 	000002'			MOV	@R1,MAXLBN+2
     99					;
    100					; R0=FDB ADDRESS OF BITMAP, FILE IS OPEN
    101	000252					CALL	MAPFRE		;GET COUNT OF FREE BLOCKS
    102	000256	012703 	000006'			MOV	#MOPRM,R3
    103	000262	010304 				MOV	R3,R4
    104	000264	010013 				MOV	R0,@R3
PIPFRE M0105, PIP - PRINT FREE 	MACRO M1113  27-FEB-85 12:27  PAGE 8-1
PRINT FREE SPACE ON VOLUME

    105	000266	062723 	000000G			ADD	#F.DVNM,(R3)+	;ADDRESS OF DEVICE NAME
    106	000272	016023 	000000G			MOV	F.UNIT(R0),(R3)+ ;UNIT NUMBER
    107	000276	012703 	000053'			MOV	#LO45MG,R3
    108	000302					CALL	PRTFRE
    109	000306	000167 	000000G			JMP	CLOSX
    110	000312				90$:	ERROUX	CR01		;SYNTAX ERROR
	000312	104403 				TRAP	X
	000314	000000G				.WORD	CR01SZ
	000316	000000G				.WORD	CR01MG
    111	000320				RDERR:	ERROUX	CP13,0,0	;READ ERROR
	000320	104427 				TRAP	X
	000322	000000G				.WORD	CP13SZ
	000324	000000G				.WORD	CP13MG
PIPFRE M0105, PIP - PRINT FREE 	MACRO M1113  27-FEB-85 12:27  PAGE 9
PRINT FREE SPACE ON VOLUME

    113					;+
    114					; PRINT THE FREE BLOCK INFORMATION
    115					; CALLING SEQUENCE:
    116					;	CALL	PRTFRE
    117					; INPUTS:
    118					;	R1,R2 = FREE BLOCK COUNT (R2 = LOW ORDER BITS)
    119					;	R3=FORMAT STRING FOR INITIAL MESSAGE
    120					;	R4=PARAMETER BLOCK ADDRESS FOR INITIAL MESSAGE
    121					;	MAXLBN, MAXLBN+2 = TOTAL BLOCKS ON DEVICE
    122					; OUTPUTS:
    123					;	ALL REGISTERS ALTERED
    124					; OPERATION:
    125					;	CALL EDMSG WITH FIRST PART OF MESSAGE AS SPECIFIED IN
    126					; THE FORAMT STRING AND PARAMETER BLOCK ADDRESS
    127					;	THEN IT FORMATS THE STRING:
    128					;	NNN. BLOCKS FREE, NNN. BLOCKS USED OUT OF NNN.
    129					; WHERE THE NNN VALUES ARE ALL COVERTED FROM DOUBLE PRECISION BINARY
    130					;-
    131	000326	010246 			PRTFRE:	MOV	R2,-(SP)
    132	000330	010146 				MOV	R1,-(SP)	;SP = ADR OF DBL PRECISION FREE COUNT
    133	000332	010301 				MOV	R3,R1		;SET UP TO CALL EDMSG
    134	000334	010402 				MOV	R4,R2
    135	000336	012700 	000000G			MOV	#LINBUF,R0	;CONVERTS STRING INTO OUTPUT BUFFER
    136	000342					CALL	$EDMSG
    137	000346	010601 				MOV	SP,R1		;R1=ADR OF 2 WORD FREE COUNT
    138	000350	005002 				CLR	R2		;ZERO SUPPRESS
    139	000352					CALL	$CDDMG		;CONVERT DBL PRECISION TO DECIMAL MAG
    140	000356	012701 	000005'			MOV	#LO40MG,R1
    141	000362	005002 				CLR	R2
    142	000364					CALL	$EDMSG		;". BLOCKS FREE "
    143					;
    144					; CALCULATE HOW MANY BLOCKS ARE USED
    145	000370	016701 	000000'			MOV	MAXLBN,R1
    146	000374	016702 	000002'			MOV	MAXLBN+2,R2
    147	000400	166602 	000002 			SUB	2(SP),R2
    148	000404	005601 				SBC	R1
    149	000406	162601 				SUB	(SP)+,R1
    150	000410	010216 				MOV	R2,@SP
    151	000412	010146 				MOV	R1,-(SP)
    152	000414	010601 				MOV	SP,R1		;R1=ADR OF 2 WORD USED COUNT
    153	000416	005002 				CLR	R2		;ZERO SUPPRESS
    154	000420					CALL	$CDDMG		;CONVERT TO MAGNITUDE DECIMAL
    155	000424	022626 				CMP	(SP)+,(SP)+	;CLEAR 2 WORDS FROM STACK
    156	000426	012701 	000025'			MOV	#LO41MG,R1
    157	000432	005002 				CLR	R2
    158	000434					CALL	$EDMSG		;". BLOCKS USED OUT OF "
    159	000440	012701 	000000'			MOV	#MAXLBN,R1	;R1=ADR OF 2 WORD TOTAL BLOCK COUNT
    160	000444	005002 				CLR	R2
    161	000446					CALL	$CDDMG
    162	000452	112720 	000056 			MOVB	#'.,(R0)+
    163	000456	112720 	000015 			MOVB	#15,(R0)+	;ADD CR
    164	000462	112720 	000012 			MOVB	#12,(R0)+	;AND LF
    165	000466	162700 	000000G			SUB	#LINBUF,R0	;R0=NO. OF BYTES TO WRITE
    166	000472					QIO$S	#IO.WVB,#CMOLUN,#FNAEFN,,,,<#LINBUF,R0,#0>
    167	000532	103405 				BCS	20$
    168	000534					WTSE$S	#FNAEFN
    169	000546				20$:	RETURN
PIPFRE M0105, PIP - PRINT FREE 	MACRO M1113  27-FEB-85 12:27  PAGE 10
PRINT FREE SPACE ON VOLUME

    171					;
    172					; COUNT THE FREE BLOCKS IN A BIT MAP
    173					; INPUTS:
    174					;	R0=FDB OF DESIRED BIT MAP
    175					;	FBTBLK = FIRST VBN OF BIT MAP BLOCKS
    176					;	NBTBLK = NO. OF BIT MAP BLOCKS
    177					; OUTPUTS:
    178					;	R1,R2=NO. OF FREE BLOCKS
    179					;	R0 PRESERVED, R3-R5 ALTERED
    180	000550	010046 			MAPFRE:	MOV	R0,-(SP)
    181	000552	016704 	000000'			MOV	MAXLBN,R4
    182	000556	016705 	000002'			MOV	MAXLBN+2,R5	;NUMBER OF BLOCKS TO CHECK
    183	000562	016703 	000004'			MOV	NBTBLK,R3	;NUMBER OF BIT MAP BLOCKS
    184	000566	005002 				CLR	R2
    185	000570	005001 				CLR	R1
    186	000572	011600 			10$:	MOV	@SP,R0
    187	000574					CALL	BITCNT
    188	000600	060002 				ADD	R0,R2
    189	000602	005501 				ADC	R1
    190	000604	162705 	010000 			SUB	#10000,R5
    191	000610	005604 				SBC	R4
    192	000612					SOB	R3,10$
    193	000616	012600 				MOV	(SP)+,R0
    194	000620					RETURN
    195					;
    196					; COUNT THE FREE BLOCKS IN THE BIT MAP BLOCK ABOUT TO BE READ
    197					; INPUTS:
    198					;	R0=FDB OF BIT MAP FILE, RECORD NUMBER SET TO NEXT BLOCK TO READ
    199					;	R4,R5=NO. OF LOGICAL BLOCKS LEFT TO CHECK IN BITMAP
    200					; OUTPUTS:
    201					;	R0=COUNT OF FREE BLOCKS
    202					;	R1-R5 PRESERVED
    203	000622				BITCNT:	READ$	R0
    204	000626	103434 				BCS	60$
    205	000630					WAIT$	R0
    206	000634	103431 				BCS	60$
    207	000636	004567 	000000G			JSR	R5,.SAVR1	;SAVE REGISTERS R1-R5
    208	000642	005000 				CLR	R0		;INIT FREE BLOCK COUNTER
    209	000644	005704 				TST	R4		;IF HIGH ORDER BITS OF LBN COUNT NOT 0
    210	000646	001402 				BEQ	10$
    211	000650	012705 	010000 			MOV	#10000,R5	;GUARANTEE THAT WE CHECK ALL BITS
    212	000654	012704 	000400 		10$:	MOV	#256.,R4	;NO. OF WORDS
    213	000660	016703 	000000G			MOV	.DYBUF,R3	;R3=ADDRESS OF BITMAP BLOCK
    214	000664	012702 	000020 		20$:	MOV	#16.,R2		;NO. OF BITS PER WORD
    215	000670	012301 				MOV	(R3)+,R1	;GET NEXT WORD TO R1
    216	000672	000241 			30$:	CLC
    217	000674	006001 				ROR	R1
    218	000676	103001 				BCC	40$
    219	000700	005200 				INC	R0		;COUNT BITS THAT ARE ON
    220	000702	005305 			40$:	DEC	R5
    221	000704	001404 				BEQ	50$		;BRANCH IF RUN OUT OF BLOCKS TO CHECK
    222	000706					SOB	R2,30$
    223	000712					SOB	R4,20$
    224	000716				50$:	RETURN
    225	000720	000167 	177374 		60$:	JMP	RDERR
    226
    227						.SBTTL	FORMAT STRINGS
PIPFRE M0105, PIP - PRINT FREE 	MACRO M1113  27-FEB-85 12:27  PAGE 10-1
FORMAT STRINGS

    228	000000					.PSECT
    229
    230	000000					MSGZ	LO40,<. BLOCKS FREE, >
    231	000000					MSGZ	LO41,<. BLOCKS USED OUT OF >
    232	000000					MSGZ	LO45,<%N%N%2A%O: HAS >
    233						.EVEN
    234					;
    235					;
    236		000001 				.END
PIPFRE M0105, PIP - PRINT FREE 	MACRO M1113  27-FEB-85 12:27  PAGE 10-2
SYMBOL TABLE

BITCNT  000622R     005	C.STAT= 000001   	IO.WVB= ****** GX	N.FVER= 000016   	S.FNBW= 000017
CLOSX = ****** GX	C.SWAD= 000022   	LINBUF= ****** GX	N.NEXT= 000022   	S.FNTY= 000004
CMOLUN= ****** GX	C.TYPR= 000000   	LO40MG= 000005R     004	N.SPEC= 000014   	S.FTYP= 000002
CP13MG= ****** GX	FA.SHR= ****** GX	LO40SZ= 000020   	N.STAT= 000020   	S.NFEN= 000020
CP13SZ= ****** GX	FDBIN = ****** GX	LO41MG= 000025R     004	N.UNIT= 000034   	X     = 000027
CR01MG= ****** GX	FD.RWM= ****** GX	LO41SZ= 000026   	OFNPT = ****** GX	$CDDMG= ****** GX
CR01SZ= ****** GX	FNAEFN= ****** GX	LO45MG= 000053R     004	OUSPEC= ****** GX	$EDMSG= ****** GX
CS.DIF= 000002   	FO.RD = ****** GX	LO45SZ= 000020   	PAR$$$= 000000   	$$    = 000067
CS.DVF= 000004   	FRDFNB  000000R     003	MAPFRE  000550R     005	PRSERR= ****** GX	$$$ARG= 000003
CS.EQU= 000040   	FR01MG= ****** GX	MAXLBN  000000R     002	PRSREG= ****** GX	$$$T1 = 000011
CS.INP= 000001   	FR01SZ= ****** GX	MFDNMG= 000000R     004	PRTFRE  000326R     005	.DYALC= ****** GX
CS.MOR= 000020   	F.BKDS= ****** GX	MFDNSZ= 000005   	RDERR   000320R     005	.DYBUF= ****** GX
CS.NMF= 000001   	F.DFNB= ****** GX	MOPRM   000006R     002	R$$DPB= 000001   	.FREE   000000RG    005
CS.OUT= 000002   	F.DSPT= ****** GX	NBTBLK  000004R     002	R$$DYM= 000001   	.OPFNB= ****** G
CS.WLD= 000010   	F.DVNM= ****** GX	N.DEVD= 000000   	R$$EIS= 000000   	.PARSE= ****** GX
C.CMLD= 000002   	F.EFBK= ****** GX	N.DID = 000024   	R$$MSG= 000000   	.READ = ****** G
C.DEVD= 000006   	F.FACC= ****** GX	N.DIRD= 000004   	R$$11M= 000001   	.SAVR1= ****** GX
C.DIRD= 000012   	F.FFBY= ****** GX	N.DVNM= 000032   	STBLK = ****** GX	.WAIT = ****** G
C.DSDS= 000006   	F.HIBK= ****** GX	N.FID = 000000   	S.APPD= 000010   	...PC1= 000000
C.FILD= 000016   	F.RACC= ****** GX	N.FLID= 000016   	S.FIDS= 000014   	...PC2= 000034R     003
C.MKW1= 000024   	F.STBK= ****** GX	N.FNAM= 000006   	S.FNAM= 000006   	...PC3= 000000
C.MKW2= 000026   	F.UNIT= ****** GX	N.FNMD= 000010   	S.FNB = 000036   	...TPC= 000036
C.SIZE= 000054   	INSPEC= ****** GX	N.FTYP= 000014

. ABS.	000000	   000
      	000000	   001
IMPURE	000012	   002
PURE$D	000036	   003
MSGSTR	000073	   004
PURE$I	000724	   005
ERRORS DETECTED:  0

VIRTUAL MEMORY USED:  5384 WORDS  ( 22 PAGES)
DYNAMIC MEMORY:  6734 WORDS  ( 25 PAGES)
ELAPSED TIME:  00:00:26
[43,10]PIPFRE,[43,20]PIPFRE/-SP/CR=[43,30]PIPMAC,PIPFRE
PIPFRE     CREATED BY  MACRO  ON 27-FEB-85 AT 12:27	PAGE 1

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

BITCNT	  000622 R	 10-187     10-187    #10-203    
CLOSX 	= ******  GX	 8-74       8-109     
CMOLUN	= ******  GX	 9-166     
CP13MG	= ******  GX	 8-111     
CP13SZ	= ******  GX	 8-111     
CR01MG	= ******  GX	 8-110     
CR01SZ	= ******  GX	 8-110     
CS.DIF	= 000002	 8-58      
CS.MOR	= 000020	 8-58      
CS.NMF	= 000001	 8-58      
CS.WLD	= 000010	 8-58      
FA.SHR	= ******  GX	 8-78      
FDBIN 	= ******  GX	 8-62       8-62      
FD.RWM	= ******  GX	 8-62      
FNAEFN	= ******  GX	 9-166      9-168     
FO.RD 	= ******  GX	 8-78      
FRDFNB	  000000 R	#7-45       8-64      
FR01MG	= ******  GX	 8-80      
FR01SZ	= ******  GX	 8-80      
F.BKDS	= ******  GX	*8-63      *8-63      
F.DFNB	= ******  GX	*8-64      
F.DSPT	= ******  GX	*8-64      
F.DVNM	= ******  GX	 8-105     
F.EFBK	= ******  GX	*8-84      
F.FACC	= ******  GX	*8-78      
F.FFBY	= ******  GX	*8-85      
F.HIBK	= ******  GX	*8-82      
F.RACC	= ******  GX	*8-62      
F.STBK	= ******  GX	*8-65      
F.UNIT	= ******  GX	 8-106     
INSPEC	= ******  GX	 8-56      
IO.WVB	= ******  GX	 9-166     
LINBUF	= ******  GX	 9-135      9-165      9-166     
LO40MG	= 000005 R	 9-140     #10-230     10-230    
LO40SZ	= 000020	#10-230    
LO41MG	= 000025 R	 9-156     #10-231     10-231    
LO41SZ	= 000026	#10-231    
LO45MG	= 000053 R	 8-107     #10-232     10-232    
LO45SZ	= 000020	#10-232    
MAPFRE	  000550 R	 8-101      8-101     #10-180    
MAXLBN	  000000 R	#7-38      *8-97      *8-98       9-145      9-146      9-159      10-181     10-182    
MFDNMG	= 000000 R	#7-49       7-49       8-67      
MFDNSZ	= 000005	#7-49       8-66      
MOPRM 	  000006 R	#7-40       8-102     
MSGBL.	= ******	 7-49       10-230     10-231     10-232    
NBTBLK	  000004 R	#7-39      *8-92       10-183    
N.DEVD	= 000000	#7-23      
N.DIRD	= 000004	#7-23      *8-66      *8-67      
N.DVNM	= 000032	 7-45      
N.FLID	= 000016	#7-23      
N.FNAM	= 000006	 7-45      
N.FNMD	= 000010	#7-23      
PIPFRE     CREATED BY  MACRO  ON 27-FEB-85 AT 12:27	PAGE 2

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

N.FTYP	= 000014	 7-45      
N.FVER	= 000016	 7-45      
N.SPEC	= 000014	#7-23      
N.UNIT	= 000034	 7-45      
OFNPT 	= ******  GX	 8-64      *8-66      *8-67      
OUSPEC	= ******  GX	 8-58      
PAR$$$	= 000000	#8-62       8-62      #8-63       8-63      #8-64       8-64      #8-78       8-78      #8-86      
                         8-86      #8-88       8-88      #10-203     10-203    #10-205     10-205    
PRSERR	= ******  GX	 8-73       8-73      
PRSREG	= ******  GX	 8-70       8-70      
PRTFRE	  000326 R	 8-108      8-108     #9-131     
RDERR 	  000320 R	 8-87       8-89      #8-111      10-225    
RONLY$	= ******	 7-43       7-43       7-49       7-49       8-53       8-53       10-230     10-230     10-231    
                         10-231     10-232     10-232    
R$$DPB	= 000001	#1-27      
R$$DYM	= 000001	#1-29      
R$$EIS	= 000000	#1-28       1-38      
R$$MSG	= 000000	 7-49       7-49       10-230     10-230     10-231     10-231     10-232     10-232    
R$$11M	= 000001	#1-25       1-26       7-1        7-27       8-69      
STBLK 	= ******  GX	 8-65       8-81      
SYS40$	= ******	 1-67       7-37       7-37       7-43       7-43       7-49       7-49       8-53       8-53      
                         10-230     10-230     10-231     10-231     10-232     10-232    
S.APPD	= 000010	#7-23      
S.FIDS	= 000014	#7-23      
S.FNAM	= 000006	 7-45       7-45      
S.FNB 	= 000036	 7-45      
S.FTYP	= 000002	 7-45       7-45      
X     	= 000027	#8-80       8-80      #8-80       8-80      #8-80       8-80      #8-110      8-110     #8-111     
                         8-111     #8-111      8-111     #8-111      8-111     
$CDDMG	= ******  GX	 9-139      9-139      9-154      9-154      9-161      9-161     
$EDMSG	= ******  GX	 9-136      9-136      9-142      9-142      9-158      9-158     
$$    	= 000067	#8-61       8-61      #8-70       8-70      #8-71       8-71      #8-73       8-73      #8-101     
                         8-101     #8-108      8-108     #9-136      9-136     #9-139      9-139     #9-142      9-142     
                        #9-154      9-154     #9-158      9-158     #9-161      9-161     #10-187     10-187    
$$$ARG	= 000003	#9-166      9-166      9-166      9-166      9-166      9-166      9-166      9-166      9-166     
                         9-166      9-166      9-166     
$$$T1 	= 000011	#9-166      9-166     
.DYALC	= ******  GX	 8-61       8-61      
.DYBUF	= ******  GX	 8-63       8-90       10-213    
.FREE 	  000000 RG	#8-55      
.OPFNB	= ******  G	 8-78       8-78      
.PARSE	= ******  GX	 8-71       8-71      
.READ 	= ******  G	 8-86       8-86       10-203     10-203    
.SAVR1	= ******  GX	 10-207    
.WAIT 	= ******  G	 8-88       8-88       10-205     10-205    
...PC1	= 000000 R	 7-45       7-45      #7-45       7-45       7-45       7-45       7-45       7-45       7-45      
                        #7-45      
...PC2	= 000034 R	#7-45       7-45       7-45      #7-45       7-45       7-45      #7-45       7-45      #7-45      
                         7-45      
...PC3	= 000000	#7-45       7-45      
PIPFRE     CREATED BY  MACRO  ON 27-FEB-85 AT 12:27	PAGE 3

MACRO CROSS REFERENCE                                   CREF         

MACRO NAME	REFERENCES

ASH   		#1-64      
ASHC  		#1-64      
CALL  		#7-34       8-61       8-70       8-71       8-73      #8-78      #8-86      #8-88       8-101      8-108     
                 9-136      9-139      9-142      9-154      9-158      9-161      10-187    #10-203    #10-205    
CMOV$B		#8-62       8-62      #8-63       8-63      #8-64       8-64       8-64      #8-78      #8-78       8-78      
                 8-78      #8-78       8-78      #8-86       8-86      #8-88       8-88      #10-203     10-203    #10-205    
                 10-205    
CMOV$W		#8-62       8-62       8-62      #8-63       8-63       8-63       8-63       8-63      #8-64       8-64      
                 8-64      #8-78       8-78       8-78      #8-78       8-78       8-78      #8-86       8-86       8-86      
                 8-86       8-86      #8-88       8-88      #10-203     10-203     10-203     10-203     10-203    #10-205    
                 10-205    
CMOV$2		#8-63      #8-63      #8-86      #8-86      #10-203    #10-203    
CSI$  		#7-24      #7-25      
CWORD$		#7-45      #7-45      #7-45      
DIR$  		#9-166      9-166     #9-168      9-168     
DIV   		#1-64      
ERRINI		#4-307     
ERROUT		#3-215     
ERROUX		#3-222      8-80       8-110      8-111     
ERROU1		#3-225     #8-80      #8-110     #8-111     
ERRP  		#3-247     
ERRPX 		#3-253     
ERRP1 		#3-256     
ERR$  		#8-78       8-78      #8-86       8-86      #8-88       8-88      #9-166     #9-168     #10-203     10-203    
                #10-205     10-205    
ERR1  		#3-273     #8-80      #8-110     #8-111     
FDAT$R		#7-34      
FDBK$R		#7-34      #8-63      #8-86      #8-86      #10-203    #10-203    
FDOP$R		#7-34       8-64      #8-78       8-78      
FDRC$R		#7-34       8-62      #8-78       8-78      
FLDSOF		#5-382     #7-23      #7-23      
IDENT 		#5-339     #7-1       
IDENT1		#5-347      7-1       
IDTITL		#5-356     
ILLOP 		#1-52      #1-64       1-64      
IMPURE		#1-75      #7-37      
LDFDB$		#8-62      #8-62      #8-63      #8-63      #8-64      #8-64      #8-78      #8-78      #8-78      #8-78      
                #8-86      #8-86      #8-88      #8-88      #10-203    #10-203    #10-205    #10-205    
MARK  		#1-64      
MOV$  		#9-166     #9-166      9-166      9-166      9-166      9-166      9-166      9-166      9-166     #9-168     
                 9-168     
MSG   		#2-124     #7-49      
MSGZ  		#2-129     #10-230    #10-231    #10-232    
MSG1  		#2-133     #7-49      #10-230    #10-231    #10-232    
MUL   		#1-64      
MVB$  		#9-166      9-166     
NBOFF$		#7-45      #7-45      
NMBLK$		#7-34      #7-45      
NOEIS$		#1-39       1-64      
OFNB$ 		#8-78      #8-78      
OPEN$ 		#7-28      #7-35       8-78      
PURE. 		#1-84       7-43       7-49       8-53       10-230     10-231     10-232    
PIPFRE     CREATED BY  MACRO  ON 27-FEB-85 AT 12:27	PAGE 4

MACRO CROSS REFERENCE                                   CREF         

MACRO NAME	REFERENCES

PURE.D		#1-102      7-43      
PURE.I		#1-98       8-53      
QDPB$S		#9-166      9-166     
QIO$S 		#7-35      #9-166     
RAD50$		#7-45      #7-45      #7-45      
READ$ 		#7-35      #8-86      #10-203    
RETURN		#7-34       9-169      10-194     10-224    
RTT   		#1-64      
RVP$  		#9-166     #9-166     
SOB   		#1-64      #10-192    #10-222    #10-223    
SXT   		#1-64      
WAIT$ 		#7-35       8-88       10-205    
WTSE$S		#7-35       9-168     
XOR   		#1-64      
PIPPRO M0206, SET FILE PROTECTI	MACRO M1113  27-FEB-85 12:27
TABLE OF CONTENTS

     7-    1	**** PIPPRO VERSION M0206 ****
PIPMAC - MACROS FOR PIP, ETC.	MACRO M1113  27-FEB-85 12:27  PAGE 6


    397
PIPPRO M0206, SET FILE PROTECTI	MACRO M1113  27-FEB-85 12:27  PAGE 7


      1						.TITLE	PIPPRO M0206, SET FILE PROTECTION COMMAND-PIP
						.SBTTL	**** PIPPRO VERSION M0206 ****
						.IDENT	/M0206/
      2					; ALTERED WEDNESDAY 8-JAN-75 12:00
      3					;
      4					; COPYRIGHT 1974, 1985, DIGITAL EQUIPMENT CORP., MAYNARD MASS.
      5
      6					;			ALL RIGHTS RESERVED
      7					;
      8					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
      9					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
     10					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
     11					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
     12
     13					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
     14					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
     15					; EQUIPMENT CORPORATION.
     16
     17					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY
     18					; OF ITS SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
     19					;
     20					; PETER H. LIPMAN	2-MAY-74
     21
     22						.MCALL	FDOF$L
     23	000000					FDOF$L			;DEFINE FDB OFFSETS LOCALLY
     24						.MCALL	CALL,RETURN
     25					; EXAMPLE:
     26					;	TEST.DAT;5/PRO/WOR:R/OWN:RWE/GRP:R/SYS:RWE
     27					; THE SUB SWITCHES ARE
     28					;	/SYSTEM
     29					;	/OWNER
     30					;	/GROUP
     31					;	/WORLD
     32					; THE VALUES FOR ANY OF THESE SWITCHES IS UP TO 4 ASCII
     33					; CHARACTERS IN ANY ORDER WHERE:
     34					;	R=READ PRIVILEGE
     35					;	W=WRITE PRIVILEGE
     36					;	E=EXTEND PRIVILEGE
     37					;	D=DELETE PRIVILEGE
     38					; IF A GIVEN SUB SWITCH IS SPECIFIED AND NO VALUE FOR THAT SWITCH IS
     39					; SPECIFIED, THEN NO PRIVILEGES ARE GRANTED FOR THAT
     40					; GROUP.  IF A GIVEN SUB SWITCH ISN'T MENTIONED, THE PRIVILEGES
     41					; FOR THAT GROUP ARE UNCHANGED.
     42					;
     43
     44
     45	000000					PURE.I
     46
     47	000000				PROTCT::
     48	000000	012701 	001000 			MOV	#1000,R1	;ALLOCATE A HEADER BUFFER
     49	000004					CALL	.DYALC
     50	000010	010067 	000000G			MOV	R0,.HDRAD	;AND SAVE IT'S ADDRESS IN .HDRAD
     51	000014					CALL	FSTOUT		;SET UP FOR FIRST FILE IN OUTPUT LIST
     52	000020	012700 	000000G			MOV	#FDBOUT,R0
     53	000024	052767 	000000G	000000G	PROTC1:	BIS	#FRSTIM,CPYCTL
     54	000032					CALL	PARSE
     55	000036	103003 				BCC	10$
PIPPRO M0206, SET FILE PROTECTI	MACRO M1113  27-FEB-85 12:27  PAGE 7-1
**** PIPPRO VERSION M0206 ****

     56	000040					CALL	PRSERR
     57	000044	000545 				BR	PRONXT
     58	000046	132760 	000000G	000017 	10$:	BITB	#FD.DIR,F.RCTL(R0) ;MUST BE A DIRECTORY DEVICE
     59	000054	001003 				BNE	20$		;BRANCH IF IT IS
     60	000056					ERROUX	DI08,1		;ERROR
	000056	104413 				TRAP	X
	000060	000000G				.WORD	DI08SZ
	000062	000000G				.WORD	DI08MG
     61	000064	016067 	000120 	000000G	20$:	MOV	F.FVER(R0),VERSAV
     62	000072	016760 	000000G	000120 	PROTC2:	MOV	VERSAV,F.FVER(R0)
     63	000100					CALL	FNDNXT
     64	000104	103512 				BCS	70$
     65	000106	042767 	000000G	000000G		BIC	#FRSTIM,CPYCTL
     66	000114					CALL	.GFOWN		;SET UP FILE OWNER FOR /FO OPTION
     67					;
     68					; READ ATTRIBUTES
     69	000120	016702 	000000G			MOV	PROWRD,R2
     70	000124	022702 	177777 			CMP	#-1,R2		;WAS PROTECTION VALUE SPECIFIED
     71	000130	001050 				BNE	65$		;BRANCH IF YES, DON'T READ ATTRIBUTES
     72	000132	012701 	000102G			MOV	#FDBOUT+F.FNB,R1
     73	000136					CALL	RDATT
     74	000142	103476 				BCS	85$		;BRANCH IF FAILED TO READ ATTRIBUTES
     75	000144	012701 	000004 			MOV	#4,R1		;NUMBER OF GROUPS
     76	000150	016703 	000000G			MOV	.HDRAD,R3
     77	000154	016303 	000000G			MOV	HH.FP(R3),R3	;R3=CURRENT PROTECTION
     78	000160	005002 				CLR	R2
     79	000162	012704 	000000G			MOV	#WOPROB,R4	;WORLD PROTECTION BIT
     80	000166	012705 	000000G			MOV	#WORPRO,R5	;ADR FOR ARRAY OF PROT CODES
     81	000172				40$:
     82						.IF	GT,R$$EIS
     83						ASHC	#4,R2		;SHIFT NEXT GROUP INTO R2
     84						.IFF
     85	000172	012746 	000004 			MOV	#4,-(SP)
     86	000176	006303 			42$:	ASL	R3		;COMBINED SHIFT 1 BIT
     87	000200	006102 				ROL	R2
     88	000202	005316 				DEC	(SP)		;4 TIMES
     89	000204	003374 				BGT	42$
     90	000206	005726 				TST	(SP)+
     91						.ENDC
     92
     93	000210	030467 	000000G			BIT	R4,CPYCTL	;SWITCH SPECIFIED FOR THIS GROUP
     94	000214	001003 				BNE	45$		;BRANCH IF YES
     95	000216	062705 	000004 			ADD	#4,R5		;SKIP PROTECTION CODES FOR THIS GROUP
     96	000222	000410 				BR	60$
     97	000224	052702 	000017 		45$:	BIS	#17,R2		;YES, SET (NO ACCESS) PROTECTION BITS
     98	000230	012700 	000004 			MOV	#4,R0		;LOOK AT 4 CHARS OF PROT CODE
     99	000234				50$:	CALL	PROBIT
    100	000240					SOB	R0,50$
    101	000244	006304 			60$:	ASL	R4		;BIT FOR NEXT PROTECTION GROUP
    102	000246					SOB	R1,40$
    103					;
    104					; NOW R2=NEW PROTECTION CODE WORD, WRITE ATTRIBUTES
    105	000252	010277 	000000G		65$:	MOV	R2,@.HDRAD
    106	000256	010605 				MOV	SP,R5		;PRESERVE THE STACK POINTER
    107	000260	005046 				CLR	-(SP)		;PUSH THE ATTRIBUTE LIST
    108	000262	016746 	000000G			MOV	.HDRAD,-(SP)	;WRITE THE PROTECTION WORD
    109	000266	012746 	000000G			MOV	#HA.FP,-(SP)
PIPPRO M0206, SET FILE PROTECTI	MACRO M1113  27-FEB-85 12:27  PAGE 7-2
**** PIPPRO VERSION M0206 ****

    110	000272	005767 	000000G			TST	.FOWNR		;FORCING FILE OWNER THE SAME AS DIRECTORY
    111	000276	001404 				BEQ	68$		;BRANCH IF NO
    112	000300	012746 	000000G			MOV	#.FOWNR,-(SP)	;WRITE THE FILE OWNER
    113	000304	012746 	000000G			MOV	#HA.UI,-(SP)
    114	000310	010601 			68$:	MOV	SP,R1
    115	000312	012700 	000000G			MOV	#FDBOUT,R0
    116	000316	010546 				MOV	R5,-(SP)	;R5 IS DESTOYED BY WRITE ATT ERROR
    117	000320					CALL	WRTATT		;ISSUE THE WRITE ATTRIBUTES QI/O AND WAIT
    118	000324	012605 				MOV	(SP)+,R5
    119	000326	010506 				MOV	R5,SP		;RESTORE THE STACK
    120	000330	000406 				BR	PRONX1
    121					;
    122					; FAILED TO FIND FILE
    123	000332				70$:	CALL	FNDERR
    124	000336	000410 				BR	PRONXT
    125					;
    126					; FAILED TO READ ATTRIBUTES
    127	000340				85$:	ERROUT	UN02,0,0
	000340	104426 				TRAP	X
	000342	000000G				.WORD	UN02SZ
	000344	000000G				.WORD	UN02MG
    128					;
    129					; COME HERE TO CONTINUE WITH NEXT WILD CARD FILE
    130	000346	012700 	000000G		PRONX1:	MOV	#FDBOUT,R0
    131	000352					CALL	NXTFIL		;ANY MORE FILES IN THIS FILE SPEC?
    132	000356	103245 				BCC	PROTC2		;BRANCH IF YES, PROCESS THE NEXT
    133					;
    134					; DO NEXT FILE IN LIST IF ANY MORE
    135	000360				PRONXT:	CALL	INIPRO		;REINIT THE PROTECTION VALUES
    136	000364					CALL	NXTOUT
    137	000370	103215 				BCC	PROTC1		;BRANCH IF MORE FILES TO DO
    138	000372	000167 	000000G			JMP	CLOSX
    139					;
    140					; CHECK CHAR @R5 AGAINST CHARS "RWED", IF ONE OF THOSE, CLEAR
    141					; APPROPRIATE BIT IN R2.  BUMP R5 ON EXIT
    142	000376	122715 	000122 		PROBIT:	CMPB	#'R,@R5
    143	000402	001002 				BNE	10$
    144	000404	042702 	000000G			BIC	#HF.RDV,R2
    145	000410	122715 	000127 		10$:	CMPB	#'W,@R5
    146	000414	001002 				BNE	20$
    147	000416	042702 	000000G			BIC	#HF.WRV,R2
    148	000422	122715 	000105 		20$:	CMPB	#'E,@R5
    149	000426	001002 				BNE	30$
    150	000430	042702 	000000G			BIC	#HF.EXT,R2
    151	000434	122725 	000104 		30$:	CMPB	#'D,(R5)+
    152	000440	001002 				BNE	40$
    153	000442	042702 	000000G			BIC	#HF.DEL,R2
    154	000446				40$:	RETURN
    155					;
    156					;
    157		000001 				.END
PIPPRO M0206, SET FILE PROTECTI	MACRO M1113  27-FEB-85 12:27  PAGE 7-3
SYMBOL TABLE

CLOSX = ****** GX	F.DSPT= 000044   	F.RCNM= 000034   	N.FID = 000000   	S.FATT= 000016
CPYCTL= ****** GX	F.DVNM= 000134   	F.RCTL= 000017   	N.FNAM= 000006   	S.FDB = 000140
DI08MG= ****** GX	F.EFBK= 000010   	F.RSIZ= 000002   	N.FTYP= 000014   	S.FNAM= 000006
DI08SZ= ****** GX	F.EFN = 000050   	F.RTYP= 000000   	N.FVER= 000016   	S.FNB = 000036
FDBOUT= ****** GX	F.EOBB= 000032   	F.STBK= 000036   	N.NEXT= 000022   	S.FNBW= 000017
FD.DIR= ****** GX	F.ERR = 000052   	F.UNIT= 000136   	N.STAT= 000020   	S.FNTY= 000004
FNDERR= ****** GX	F.FACC= 000043   	F.URBD= 000020   	N.UNIT= 000034   	S.FTYP= 000002
FNDNXT= ****** GX	F.FFBY= 000014   	F.VBN = 000064   	PARSE = ****** GX	S.NFEN= 000020
FRSTIM= ****** GX	F.FNAM= 000110   	F.VBSZ= 000060   	PROBIT  000376R     002	UN02MG= ****** GX
FSTOUT= ****** GX	F.FNB = 000102   	HA.FP = ****** GX	PRONXT  000360R     002	UN02SZ= ****** GX
F.ALOC= 000040   	F.FTYP= 000116   	HA.UI = ****** GX	PRONX1  000346R     002	VERSAV= ****** GX
F.BBFS= 000062   	F.FVER= 000120   	HF.DEL= ****** GX	PROTCT  000000RG    002	WOPROB= ****** GX
F.BDB = 000070   	F.HIBK= 000004   	HF.EXT= ****** GX	PROTC1  000024R     002	WORPRO= ****** GX
F.BGBC= 000057   	F.LUN = 000042   	HF.RDV= ****** GX	PROTC2  000072R     002	WRTATT= ****** GX
F.BKDN= 000026   	F.MBCT= 000054   	HF.WRV= ****** GX	PROWRD= ****** GX	X     = 000026
F.BKDS= 000020   	F.MBC1= 000055   	HH.FP = ****** GX	PRSERR= ****** GX	$$    = 000067
F.BKEF= 000050   	F.MBFG= 000056   	INIPRO= ****** GX	RDATT = ****** GX	.DYALC= ****** GX
F.BKP1= 000051   	F.NRBD= 000024   	NXTFIL= ****** GX	R$$DPB= 000001   	.FOWNR= ****** GX
F.BKST= 000024   	F.NREC= 000030   	NXTOUT= ****** GX	R$$DYM= 000001   	.GFOWN= ****** GX
F.BKVB= 000064   	F.OVBS= 000030   	N.DID = 000024   	R$$EIS= 000000   	.HDRAD= ****** GX
F.CNTG= 000034   	F.RACC= 000016   	N.DVNM= 000032   	R$$11M= 000001   	...TPC= 000140
F.DFNB= 000046   	F.RATT= 000001

. ABS.	000000	   000
      	000000	   001
PURE$I	000450	   002
ERRORS DETECTED:  0

VIRTUAL MEMORY USED:  3704 WORDS  ( 15 PAGES)
DYNAMIC MEMORY:  4622 WORDS  ( 17 PAGES)
ELAPSED TIME:  00:00:15
[43,10]PIPPRO,[43,20]PIPPRO/-SP/CR=[43,30]PIPMAC,PIPPRO
PIPPRO     CREATED BY  MACRO  ON 27-FEB-85 AT 12:27	PAGE 1

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

CLOSX 	= ******  GX	 7-138     
CPYCTL	= ******  GX	*7-53      *7-65       7-93      
DI08MG	= ******  GX	 7-60      
DI08SZ	= ******  GX	 7-60      
FDBOUT	= ******  GX	 7-52       7-72       7-115      7-130     
FD.DIR	= ******  GX	 7-58      
FNDERR	= ******  GX	 7-123      7-123     
FNDNXT	= ******  GX	 7-63       7-63      
FRSTIM	= ******  GX	 7-53       7-65      
FSTOUT	= ******  GX	 7-51       7-51      
F.FNB 	= 000102	 7-72      
F.FVER	= 000120	 7-61      *7-62      
F.RCTL	= 000017	 7-58      
HA.FP 	= ******  GX	 7-109     
HA.UI 	= ******  GX	 7-113     
HF.DEL	= ******  GX	 7-153     
HF.EXT	= ******  GX	 7-150     
HF.RDV	= ******  GX	 7-144     
HF.WRV	= ******  GX	 7-147     
HH.FP 	= ******  GX	 7-77      
INIPRO	= ******  GX	 7-135      7-135     
NXTFIL	= ******  GX	 7-131      7-131     
NXTOUT	= ******  GX	 7-136      7-136     
PARSE 	= ******  GX	 7-54       7-54      
PROBIT	  000376 R	 7-99       7-99      #7-142     
PRONXT	  000360 R	 7-57       7-124     #7-135     
PRONX1	  000346 R	 7-120     #7-130     
PROTCT	  000000 RG	#7-47      
PROTC1	  000024 R	#7-53       7-137     
PROTC2	  000072 R	#7-62       7-132     
PROWRD	= ******  GX	 7-69      
PRSERR	= ******  GX	 7-56       7-56      
RDATT 	= ******  GX	 7-73       7-73      
RONLY$	= ******	 7-45       7-45      
R$$DPB	= 000001	#1-27      
R$$DYM	= 000001	#1-29      
R$$EIS	= 000000	#1-28       1-38       7-82      
R$$11M	= 000001	#1-25       1-26       7-1       
SYS40$	= ******	 1-67       7-45       7-45      
UN02MG	= ******  GX	 7-127     
UN02SZ	= ******  GX	 7-127     
VERSAV	= ******  GX	*7-61       7-62      
WOPROB	= ******  GX	 7-79      
WORPRO	= ******  GX	 7-80      
WRTATT	= ******  GX	 7-117      7-117     
X     	= 000026	#7-60       7-60      #7-60       7-60      #7-127      7-127     #7-127      7-127     #7-127     
                         7-127     
$$    	= 000067	#7-49       7-49      #7-51       7-51      #7-54       7-54      #7-56       7-56      #7-63      
                         7-63      #7-66       7-66      #7-73       7-73      #7-99       7-99      #7-117      7-117     
                        #7-123      7-123     #7-131      7-131     #7-135      7-135     #7-136      7-136     
.DYALC	= ******  GX	 7-49       7-49      
.FOWNR	= ******  GX	 7-110      7-112     
PIPPRO     CREATED BY  MACRO  ON 27-FEB-85 AT 12:27	PAGE 2

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

.GFOWN	= ******  GX	 7-66       7-66      
.HDRAD	= ******  GX	*7-50       7-76       7-105      7-108     
PIPPRO     CREATED BY  MACRO  ON 27-FEB-85 AT 12:27	PAGE 3

MACRO CROSS REFERENCE                                   CREF         

MACRO NAME	REFERENCES

ASH   		#1-64      
ASHC  		#1-64      
CALL  		#7-24      #7-49      #7-51      #7-54      #7-56      #7-63      #7-66      #7-73      #7-99      #7-117     
                #7-123     #7-131     #7-135     #7-136     
DIV   		#1-64      
ERRINI		#4-307     
ERROUT		#3-215      7-127     
ERROUX		#3-222      7-60      
ERROU1		#3-225     #7-60      #7-127     
ERRP  		#3-247     
ERRPX 		#3-253     
ERRP1 		#3-256     
ERR1  		#3-273     #7-60      #7-127     
FDOFF$		#7-23      #7-23      
FDOF$L		#7-22      #7-23      
FLDSOF		#5-382     
IDENT 		#5-339     #7-1       
IDENT1		#5-347      7-1       
IDTITL		#5-356     
ILLOP 		#1-52      #1-64       1-64      
IMPURE		#1-75      
MARK  		#1-64      
MSG   		#2-124     
MSGZ  		#2-129     
MSG1  		#2-133     
MUL   		#1-64      
NOEIS$		#1-39       1-64      
PURE. 		#1-84       7-45      
PURE.D		#1-102     
PURE.I		#1-98       7-45      
RETURN		#7-24       7-154     
RTT   		#1-64      
SOB   		#1-64      #7-100     #7-102     
SXT   		#1-64      
XOR   		#1-64      
PIPREN M0206, RENAME AND ENTER 	MACRO M1113  27-FEB-85 12:27
TABLE OF CONTENTS

     7-    1	**** PIPREN VERSION M0206 ****
PIPMAC - MACROS FOR PIP, ETC.	MACRO M1113  27-FEB-85 12:27  PAGE 6


    397
PIPREN M0206, RENAME AND ENTER 	MACRO M1113  27-FEB-85 12:27  PAGE 7


      1						.TITLE	PIPREN M0206, RENAME AND ENTER COMMANDS-PIP
						.SBTTL	**** PIPREN VERSION M0206 ****
						.IDENT	/M0206/
      2					; ALTERED:
      3					; ANDREW C. GOLDSTEIN  17 JUL 75  16:36
      4					;
      5					; COPYRIGHT 1975, 1985. DIGITAL EQUIPMENT CORP., MAYNARD MASS.
      6					; COPYRIGHT 1974, DIGITAL EQUIPMENT CORP., MAYNARD MASS.
      7
      8					;			ALL RIGHTS RESERVED
      9					;
     10					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
     11					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
     12					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
     13					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
     14
     15					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
     16					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
     17					; EQUIPMENT CORPORATION.
     18
     19					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY
     20					; OF ITS SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
     21					;
     22
     23					; PETER H. LIPMAN	2-MAY-74
     24	000000					FLDSOF
     25						.MCALL	CSI$,FDOF$L,FCSBT$,IOERR$
     26	000000					CSI$
     27	000000					FDOF$L			;DEFINE THE FDB OFFSETS LOCALLY
     28	000000					FCSBT$			;DEFINE THE FDB BITS AND VALUES LOCALLY
     29	000000					IOERR$			;DEFINE THE I/O ERROR CODES LOCALLY
     30
     31						.MCALL	CALL,RETURN,FDOP$R
     32
     33
     34	000000					PURE.I
     35
     36					; RENAME INPUT FILE TO OUTPUT NAME
     37	000000				ENTER::
     38	000000	016767 	000000G	000000G	RENAME::MOV	.OULCL,.LCLSW	;LOCAL SWITCHES ON OUTSPEC ARE STICKY
     39	000006	005767 	000000G			TST	INSPEC		;REQUIRE AN INPUT SPECIFIER
     40	000012	001003 				BNE	10$
     41	000014					ERROUX	CP02		;ILLEGAL COMMAND
	000014	104403 				TRAP	X
	000016	000000G				.WORD	CP02SZ
	000020	000000G				.WORD	CP02MG
     42	000022	005767 	000000G		10$:	TST	OFNPT+N.DEVD	;IF NO EXPLICIT OUTPUT DEVICE
     43	000026	001006 				BNE	30$
     44	000030	016767 	000000G	000000G		MOV	IFNPT+N.DEVD,OFNPT+N.DEVD ;USE THE INPUT DEV SPEC
     45	000036	016767 	000002G	000002G		MOV	IFNPT+N.DEVD+2,OFNPT+N.DEVD+2
     46	000044	012700 	000000G		30$:	MOV	#SYDFLT,R0
     47	000050	005001 				CLR	R1
     48	000052	005002 				CLR	R2
     49	000054					CALL	STNBK1		;INIT SYSDFLT NAMBLK
     50	000060					FDOP$R	#FDBOUT,,#OFNPT,#SYDFLT
     51	000100					CALL	PARSE
     52	000104	103004 				BCC	40$
PIPREN M0206, RENAME AND ENTER 	MACRO M1113  27-FEB-85 12:27  PAGE 7-1
**** PIPREN VERSION M0206 ****

     53	000106					CALL	PRSERR		;ERROR FROM PARSE
     54	000112	000167 	000000G			JMP	CLOSX
     55	000116	032767 	000001 	000000G	40$:	BIT	#CS.NMF,OUSPEC	;NULL FILE NAME = *.*;*
     56	000124	001003 				BNE	45$
     57	000126	052761 	000000G	000020 		BIS	#NB.SFN,N.STAT(R1)
     58	000134				45$:	CALL	CWLDUI		;CHECK FOR LEGAL WILD CARD UIC
     59	000140	103003 				BCC	50$
     60	000142					ERROUX	CP01
	000142	104403 				TRAP	X
	000144	000000G				.WORD	CP01SZ
	000146	000000G				.WORD	CP01MG
     61	000150	005761 	000016 		50$:	TST	N.FVER(R1)	;IF 0 VERSION NUMBER
     62	000154	001007 				BNE	60$
     63	000156	032761 	000001 	000020 		BIT	#NB.VER,N.STAT(R1) ;AND EXPLICITLY 0
     64	000164	001403 				BEQ	60$
     65	000166	052767 	000000G	000000G		BIS	#NVERBT,CPYCTL ;FORCE NEW VERSION BIT
     66	000174				60$:	FDOP$R	#FDBIN,,#IFNPT,#NAMBLK
     67	000214	005001 				CLR	R1
     68	000216	005002 				CLR	R2
     69	000220					CALL	STNMBK		;INIT DEFAULT NAMBLK
     70	000224	005767 	000000G			TST	IFNPT+N.DEVD	;IF NO EXPLICIT INPUT DEVICE
     71	000230	001006 				BNE	RENAM1
     72	000232	016767 	000134G	000032G		MOV	FDBOUT+F.DVNM,NAMBLK+N.DVNM ;USE OUTPUT DEVICE
     73	000240	016767 	000136G	000034G		MOV	FDBOUT+F.UNIT,NAMBLK+N.UNIT
     74	000246	052767 	000000G	000000G	RENAM1:	BIS	#FRSTIM,CPYCTL
     75	000254					CALL	PARSE		;PARSE THE INPUT SPEC
     76	000260	103004 				BCC	1$
     77	000262					CALL	PRSERR
     78	000266	000167 	000546 			JMP	RNMNXT
     79	000272	132760 	000010 	000017 	1$:	BITB	#FD.DIR,F.RCTL(R0) ;MUST BE A DIRECTORY DEVICE
     80	000300	001003 				BNE	2$		;BRANCH IF IT IS
     81	000302					ERROUX	DI08,1		;ERROR
	000302	104413 				TRAP	X
	000304	000000G				.WORD	DI08SZ
	000306	000000G				.WORD	DI08MG
     82	000310	016067 	000120 	000000G	2$:	MOV	F.FVER(R0),VERSAV
     83	000316	026767 	000134G	000134G		CMP	FDBIN+F.DVNM,FDBOUT+F.DVNM
     84	000324	001004 				BNE	3$		;BRANCH IF DEVICES ARE DIFFERENT
     85	000326	026767 	000136G	000136G		CMP	FDBIN+F.UNIT,FDBOUT+F.UNIT
     86	000334	001405 				BEQ	4$
     87					; DEVICES ARE DIFFERENT - ERROR
     88	000336				3$:	ERROUT	RE04,0
	000336	104406 				TRAP	X
	000340	000000G				.WORD	RE04SZ
	000342	000000G				.WORD	RE04MG
     89	000344	000167 	000470 			JMP	RNMNXT
     90	000350	032767 	000000G	000002G	4$:	BIT	#ENTRBT,CMDWRD+2
     91	000356	001005 				BNE	5$
     92	000360					CALL	WLDVER		;WILD CARD VERSION CHECK IF RENAME
     93	000364	103002 				BCC	5$
     94	000366	000167 	000446 			JMP	RNMNXT
     95	000372	032767 	000001 	000000G	5$:	BIT	#CS.NMF,INSPEC	;NULL INPUT FILE NAME = *.*;*
     96	000400	001006 				BNE	8$
     97	000402	005762 	000016 			TST	N.FLID(R2)	;R2 FROM PARSE, FILE ID SPECIFIED?
     98	000406	001003 				BNE	8$		;BRANCH IF YES
     99	000410	052761 	000000G	000020 		BIS	#NB.SFN,N.STAT(R1) ;R1 FROM PARSE, SET WILD CARDS
    100	000416	032767 	000000G	000002G	8$:	BIT	#ENTRBT,CMDWRD+2
PIPREN M0206, RENAME AND ENTER 	MACRO M1113  27-FEB-85 12:27  PAGE 7-2
**** PIPREN VERSION M0206 ****

    101	000424	001004 				BNE	10$		;BRANCH IF ENTER RATHER THAN RENAME
    102	000426					CALL	RMVNXT
    103	000432	103575 				BCS	70$
    104	000434	000406 				BR	15$
    105	000436	016760 	000000G	000120 	10$:	MOV	VERSAV,F.FVER(R0)
    106	000444					CALL	FNDNXT		;FIND NEXT IF ENTERING
    107	000450	103571 				BCS	75$
    108	000452	042767 	000000G	000000G	15$:	BIC	#FRSTIM,CPYCTL
    109					;
    110					; SET WILD CARD OR UNSPECIFIED FIELDS OF OUTPUT FILE NAME BLOCK TO
    111					; EQUIVALENT INPUT FILE NAME BLOCK FIELDS
    112	000460	012701 	000102G			MOV	#FDBOUT+F.FNB,R1
    113	000464	016102 	000020 			MOV	N.STAT(R1),R2
    114	000470	012703 	000004 			MOV	#NB.NAM,R3
    115
    116						.IF	GT,R$$EIS
    117						XOR	R3,R2
    118						.IFF
    119	000474	010246 				MOV	R2,-(SP)
    120	000476	040302 				BIC	R3,R2
    121	000500	042603 				BIC	(SP)+,R3
    122	000502	050302 				BIS	R3,R2
    123						.ENDC
    124
    125	000504	032702 	000044 			BIT	#NB.NAM!NB.SNM,R2 ;WILD CARD OR UNSPECIFIED NAME?
    126	000510	001411 				BEQ	20$		;BRANCH IF NO
    127	000512	016061 	000110 	000006 		MOV	F.FNAM(R0),N.FNAM(R1) ;USE DEFAULT NAME
    128	000520	016061 	000112 	000010 		MOV	F.FNAM+2(R0),N.FNAM+2(R1)
    129	000526	016061 	000114 	000012 		MOV	F.FNAM+4(R0),N.FNAM+4(R1)
    130	000534	012703 	000002 		20$:	MOV	#NB.TYP,R3
    131						.IF	GT,R$$EIS
    132						XOR	R3,R2
    133						.IFF
    134	000540	010246 				MOV	R2,-(SP)
    135	000542	040302 				BIC	R3,R2
    136	000544	042603 				BIC	(SP)+,R3
    137	000546	050302 				BIS	R3,R2
    138						.ENDC
    139
    140	000550	032702 	000022 			BIT	#NB.TYP!NB.STP,R2 ;WILD CARD OR UNSPECIFIED TYPE?
    141	000554	001403 				BEQ	30$		;BRANCH IF NO
    142	000556	016061 	000116 	000014 		MOV	F.FTYP(R0),N.FTYP(R1) ;USE DEFAULT TYPE
    143	000564	012703 	000001 		30$:	MOV	#NB.VER,R3
    144
    145						.IF	GT,R$$EIS
    146						XOR	R3,R2
    147						.IFF
    148	000570	010246 				MOV	R2,-(SP)
    149	000572	040302 				BIC	R3,R2
    150	000574	042603 				BIC	(SP)+,R3
    151	000576	050302 				BIS	R3,R2
    152						.ENDC
    153
    154	000600	032702 	000011 			BIT	#NB.VER!NB.SVR,R2 ;WILD CARD OR UNSPECIFIED VERSION?
    155	000604	001403 				BEQ	40$		;BRANCH IF NO
    156	000606	016061 	000120 	000016 		MOV	F.FVER(R0),N.FVER(R1) ;USE DEFAULT VERSION
    157					;
PIPREN M0206, RENAME AND ENTER 	MACRO M1113  27-FEB-85 12:27  PAGE 7-3
**** PIPREN VERSION M0206 ****

    158					; IF OUTPUT DIRECTORY IS WILD CARD OR NULL, USE INPUT DIRECTORY
    159	000614	012703 	000100 		40$:	MOV	#NB.DIR,R3
    160						.IF	GT,R$$EIS
    161						XOR	R3,R2
    162						.IFF
    163	000620	010246 				MOV	R2,-(SP)
    164	000622	040302 				BIC	R3,R2
    165	000624	042603 				BIC	(SP)+,R3
    166	000626	050302 				BIS	R3,R2
    167						.ENDC
    168	000630	032702 	000000C			BIT	#NB.DIR!NB.SDI,R2 ; CHECK FOR WILD OR DEFAULT UIC
    169	000634	001411 				BEQ	42$
    170	000636	016061 	000126 	000024 		MOV	F.FNB+N.DID(R0),N.DID(R1)
    171	000644	016061 	000130 	000026 		MOV	F.FNB+N.DID+2(R0),N.DID+2(R1)
    172	000652	016061 	000132 	000030 		MOV	F.FNB+N.DID+4(R0),N.DID+4(R1)
    173	000660	016061 	000102 	000000 	42$:	MOV	F.FNB+N.FID(R0),N.FID(R1) ;SET FILE ID TO ENTER
    174	000666	016061 	000104 	000002 		MOV	F.FNB+N.FID+2(R0),N.FID+2(R1)
    175	000674	016061 	000106 	000004 		MOV	F.FNB+N.FID+4(R0),N.FID+4(R1)
    176	000702	012700 	000000G			MOV	#FDBOUT,R0
    177	000706	032767 	000000G	000000G		BIT	#NVERBT,CPYCTL	;IF NEW VERSION DESIRED
    178	000714	001402 				BEQ	44$
    179	000716	005061 	000016 			CLR	N.FVER(R1)	;ZERO THE VERSION TO BE ENTERED
    180	000722				44$:	CALL	.ENTER
    181	000726	103030 				BCC	50$
    182					;
    183					; ERROR FROM ENTER, IF RENAMING, MUST REENTER THE ORIGINAL NAME
    184	000730	116004 	000052 			MOVB	F.ERR(R0),R4
    185	000734	022704 	177707 			CMP	#IE.DUP,R4	;IF DUPLICATE ENTRY
    186	000740	001002 				BNE	45$
    187	000742	012704 	177717 			MOV	#IE.FEX,R4	;USE FILE ALREADY EXITS ERROR
    188	000746				45$:	ERROUT	RE02,0,R4
	000746	104446 				TRAP	X
	000750	000000G				.WORD	RE02SZ
	000752	000000G				.WORD	RE02MG
    189	000754	032767 	000000G	000002G		BIT	#ENTRBT,CMDWRD+2
    190	000762	001012 				BNE	50$
    191	000764	012700 	000000G			MOV	#FDBIN,R0
    192	000770	012701 	000102G			MOV	#FDBIN+F.FNB,R1
    193	000774					CALL	.ENTER		;REENTER THE REMOVED ENTRY
    194	001000	103003 				BCC	50$
    195	001002					ERROUT	RE03,0,0	;FILE IS LOST
	001002	104426 				TRAP	X
	001004	000000G				.WORD	RE03SZ
	001006	000000G				.WORD	RE03MG
    196	001010	012700 	000000G		50$:	MOV	#FDBIN,R0
    197	001014					CALL	NXTFIL		;ANY MORE FILES IN THIS FILE SPECIFIER?
    198	001020	103407 				BCS	RNMNXT		;BRANCH IF NO
    199	001022	000167 	177370 			JMP	8$
    200					;
    201					; ERROR FROM REMOVE NEXT
    202	001026				70$:	CALL	RMVERR
    203	001032	000402 				BR	RNMNXT
    204					;
    205					; ERROR FROM FIND NEXT
    206	001034				75$:	CALL	FNDERR		;OTHERWISE, NORMAL FIND ERROR
    207					;
    208					; GET NEXT INPUT FILE SPECIFIER TO RENAME
PIPREN M0206, RENAME AND ENTER 	MACRO M1113  27-FEB-85 12:27  PAGE 7-4
**** PIPREN VERSION M0206 ****

    209	001040				RNMNXT:	CALL	NXTIN
    210	001044	103002 				BCC	10$
    211	001046	000167 	000000G			JMP	CLOSX
    212	001052	000167 	177170 		10$:	JMP	RENAM1
    213
    214					;
    215					;
    216		000001 				.END
PIPREN M0206, RENAME AND ENTER 	MACRO M1113  27-FEB-85 12:27  PAGE 7-5
SYMBOL TABLE

CLOSX = ****** GX	FD.SDI= 000020   	F.URBD= 000020   	IE.OVR= 177756   	N.FTYP= 000014
CMDWRD= ****** GX	FD.SQD= 000040   	F.VBN = 000064   	IE.PRI= 177760   	N.FVER= 000016
CPYCTL= ****** GX	FD.TTY= 000004   	F.VBSZ= 000060   	IE.RAC= 177724   	N.NEXT= 000022
CP01MG= ****** GX	FD.WBH= 000002   	IE.ABO= 177761   	IE.RAT= 177723   	N.SPEC= 000014
CP01SZ= ****** GX	FNDERR= ****** GX	IE.ALN= 177736   	IE.RBG= 177730   	N.STAT= 000020
CP02MG= ****** GX	FNDNXT= ****** GX	IE.BAD= 177777   	IE.RCN= 177722   	N.UNIT= 000034
CP02SZ= ****** GX	FO.APD= 000106   	IE.BBE= 177710   	IE.RER= 177740   	OFNPT = ****** GX
CS.DIF= 000002   	FO.MFY= 000002   	IE.BDI= 177714   	IE.RNM= 177715   	OUSPEC= ****** GX
CS.DVF= 000004   	FO.RD = 000001   	IE.BDR= 177716   	IE.RSU= 177757   	PARSE = ****** GX
CS.EQU= 000040   	FO.UPD= 000006   	IE.BDV= 177711   	IE.SNC= 177735   	PAR$$$= 000027
CS.INP= 000001   	FO.WRT= 000016   	IE.BHD= 177700   	IE.SPC= 177772   	PRSERR= ****** GX
CS.MOR= 000020   	FRSTIM= ****** GX	IE.BLK= 177754   	IE.SQC= 177734   	RENAME  000000RG    002
CS.NMF= 000001   	F.ALOC= 000040   	IE.BNM= 177712   	IE.SRE= 177762   	RENAM1  000246R     002
CS.OUT= 000002   	F.BBFS= 000062   	IE.BTF= 177675   	IE.STK= 177706   	RE02MG= ****** GX
CS.WLD= 000010   	F.BDB = 000070   	IE.BTP= 177725   	IE.VER= 177774   	RE02SZ= ****** GX
CWLDUI= ****** GX	F.BGBC= 000057   	IE.BVR= 177701   	IE.WAC= 177743   	RE03MG= ****** GX
C.CMLD= 000002   	F.BKDN= 000026   	IE.BYT= 177755   	IE.WAT= 177741   	RE03SZ= ****** GX
C.DEVD= 000006   	F.BKDS= 000020   	IE.CKS= 177742   	IE.WER= 177737   	RE04MG= ****** GX
C.DIRD= 000012   	F.BKEF= 000050   	IE.CLO= 177732   	IE.WLK= 177764   	RE04SZ= ****** GX
C.DSDS= 000006   	F.BKP1= 000051   	IE.CON= 177752   	IE.2DV= 177720   	RMVERR= ****** GX
C.FILD= 000016   	F.BKST= 000024   	IE.DAA= 177770   	IFNPT = ****** GX	RMVNXT= ****** GX
C.MKW1= 000024   	F.BKVB= 000064   	IE.DAO= 177763   	INSPEC= ****** GX	RNMNXT  001040R     002
C.MKW2= 000026   	F.CNTG= 000034   	IE.DFU= 177750   	IS.BV = 000005   	R$$DPB= 000001
C.SIZE= 000054   	F.DFNB= 000046   	IE.DNA= 177771   	IS.CR = 006401   	R$$DYM= 000001
C.STAT= 000001   	F.DSPT= 000044   	IE.DNR= 177775   	IS.ESC= 015401   	R$$EIS= 000000
C.SWAD= 000022   	F.DVNM= 000134   	IE.DUN= 177767   	IS.PND= 000000   	R$$11M= 000001
C.TYPR= 000000   	F.EFBK= 000010   	IE.DUP= 177707   	IS.RDD= 000002   	R.FIX = 000001
DI08MG= ****** GX	F.EFN = 000050   	IE.EBX= 177776   	IS.SUC= 000001   	R.VAR = 000002
DI08SZ= ****** GX	F.EOBB= 000032   	IE.EOF= 177766   	NAMBLK= ****** GX	STNBK1= ****** GX
ENTER   000000RG    002	F.ERR = 000052   	IE.EOT= 177702   	NB.DEV= 000200   	STNMBK= ****** GX
ENTRBT= ****** GX	F.FACC= 000043   	IE.EOV= 177765   	NB.DIR= 000100   	SYDFLT= ****** GX
FA.APD= 000100   	F.FFBY= 000014   	IE.EXP= 177676   	NB.NAM= 000004   	S.APPD= 000010
FA.CRE= 000010   	F.FNAM= 000110   	IE.FEX= 177717   	NB.SDI= ****** GX	S.FATT= 000016
FA.EXT= 000004   	F.FNB = 000102   	IE.FHE= 177705   	NB.SD1= 000400   	S.FDB = 000140
FA.NSP= 000100   	F.FTYP= 000116   	IE.FOP= 177713   	NB.SD2= 001000   	S.FIDS= 000014
FA.RD = 000001   	F.FVER= 000120   	IE.HFU= 177744   	NB.SFN= ****** GX	S.FNAM= 000006
FA.SHR= 000040   	F.HIBK= 000004   	IE.IFC= 177776   	NB.SNM= 000040   	S.FNB = 000036
FA.TMP= 000020   	F.LUN = 000042   	IE.IFU= 177747   	NB.STP= 000020   	S.FNBW= 000017
FA.WRT= 000002   	F.MBCT= 000054   	IE.ILL= 177726   	NB.SVR= 000010   	S.FNTY= 000004
FDBIN = ****** GX	F.MBC1= 000055   	IE.ISQ= 177703   	NB.TYP= 000002   	S.FTYP= 000002
FDBOUT= ****** GX	F.MBFG= 000056   	IE.LCK= 177745   	NB.VER= 000001   	S.NFEN= 000020
FD.BLK= 000010   	F.NRBD= 000024   	IE.MBK= 177721   	NVERBT= ****** GX	VERSAV= ****** GX
FD.CCL= 000002   	F.NREC= 000030   	IE.MOD= 177753   	NXTFIL= ****** GX	WLDVER= ****** GX
FD.CR = 000002   	F.OVBS= 000030   	IE.NBF= 177731   	NXTIN = ****** GX	X     = 000026
FD.DIR= 000010   	F.RACC= 000016   	IE.NBK= 177727   	N.DEVD= 000000   	$$    = 000067
FD.FTN= 000001   	F.RATT= 000001   	IE.NFI= 177704   	N.DID = 000024   	$$MSG = 000000
FD.INS= 000010   	F.RCNM= 000034   	IE.NLN= 177733   	N.DIRD= 000004   	.ENTER= ****** GX
FD.PLC= 000004   	F.RCTL= 000017   	IE.NNC= 177674   	N.DVNM= 000032   	.LCLSW= ****** GX
FD.RAH= 000001   	F.RSIZ= 000002   	IE.NOD= 177751   	N.FID = 000000   	.OULCL= ****** GX
FD.RAN= 000002   	F.RTYP= 000000   	IE.NSF= 177746   	N.FLID= 000016   	...GBL= 000000
FD.REC= 000001   	F.STBK= 000036   	IE.OFL= 177677   	N.FNAM= 000006   	...TPC= 000140
FD.RWM= 000001   	F.UNIT= 000136   	IE.ONP= 177773   	N.FNMD= 000010

. ABS.	000000	   000
      	000000	   001
PURE$I	001056	   002
ERRORS DETECTED:  0
PIPREN M0206, RENAME AND ENTER 	MACRO M1113  27-FEB-85 12:27  PAGE 7-6
SYMBOL TABLE


VIRTUAL MEMORY USED:  6917 WORDS  ( 28 PAGES)
DYNAMIC MEMORY:  7790 WORDS  ( 29 PAGES)
ELAPSED TIME:  00:00:22
[43,10]PIPREN,[43,20]PIPREN/-SP/CR=[43,30]PIPMAC,PIPREN
PIPREN     CREATED BY  MACRO  ON 27-FEB-85 AT 12:28	PAGE 1

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

CLOSX 	= ******  GX	 7-54       7-211     
CMDWRD	= ******  GX	 7-90       7-100      7-189     
CPYCTL	= ******  GX	*7-65      *7-74      *7-108      7-177     
CP01MG	= ******  GX	 7-60      
CP01SZ	= ******  GX	 7-60      
CP02MG	= ******  GX	 7-41      
CP02SZ	= ******  GX	 7-41      
CS.NMF	= 000001	 7-55       7-95      
CWLDUI	= ******  GX	 7-58       7-58      
DI08MG	= ******  GX	 7-81      
DI08SZ	= ******  GX	 7-81      
ENTER 	  000000 RG	#7-37      
ENTRBT	= ******  GX	 7-90       7-100      7-189     
FDBIN 	= ******  GX	 7-66       7-66       7-83       7-85       7-191      7-192      7-196     
FDBOUT	= ******  GX	 7-50       7-50       7-72       7-73       7-83       7-85       7-112      7-176     
FD.DIR	= 000010	 7-79      
FNDERR	= ******  GX	 7-206      7-206     
FNDNXT	= ******  GX	 7-106      7-106     
FRSTIM	= ******  GX	 7-74       7-108     
F.DFNB	= 000046	*7-50      *7-66      
F.DSPT	= 000044	*7-50      *7-66      
F.DVNM	= 000134	 7-72       7-83       7-83      
F.ERR 	= 000052	 7-184     
F.FNAM	= 000110	 7-127      7-128      7-129     
F.FNB 	= 000102	 7-112      7-170      7-171      7-172      7-173      7-174      7-175      7-192     
F.FTYP	= 000116	 7-142     
F.FVER	= 000120	 7-82      *7-105      7-156     
F.RCTL	= 000017	 7-79      
F.UNIT	= 000136	 7-73       7-85       7-85      
IE.DUP	= 177707	 7-185     
IE.FEX	= 177717	 7-187     
IFNPT 	= ******  GX	 7-44       7-45       7-66       7-70      
INSPEC	= ******  GX	 7-39       7-95      
NAMBLK	= ******  GX	 7-66      *7-72      *7-73      
NB.DIR	= 000100	 7-159      7-168     
NB.NAM	= 000004	 7-114      7-125     
NB.SDI	= ******  GX	 7-168     
NB.SFN	= ******  GX	 7-57       7-99      
NB.SNM	= 000040	 7-125     
NB.STP	= 000020	 7-140     
NB.SVR	= 000010	 7-154     
NB.TYP	= 000002	 7-130      7-140     
NB.VER	= 000001	 7-63       7-143      7-154     
NVERBT	= ******  GX	 7-65       7-177     
NXTFIL	= ******  GX	 7-197      7-197     
NXTIN 	= ******  GX	 7-209      7-209     
N.DEVD	= 000000	#7-24       7-42       7-44      *7-44       7-45      *7-45       7-70      
N.DID 	= 000024	 7-170     *7-170      7-171     *7-171      7-172     *7-172     
N.DIRD	= 000004	#7-24      
N.DVNM	= 000032	*7-72      
N.FID 	= 000000	 7-173     *7-173      7-174     *7-174      7-175     *7-175     
N.FLID	= 000016	#7-24       7-97      
PIPREN     CREATED BY  MACRO  ON 27-FEB-85 AT 12:28	PAGE 2

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

N.FNAM	= 000006	*7-127     *7-128     *7-129     
N.FNMD	= 000010	#7-24      
N.FTYP	= 000014	*7-142     
N.FVER	= 000016	 7-61      *7-156     *7-179     
N.SPEC	= 000014	#7-24      
N.STAT	= 000020	*7-57       7-63      *7-99       7-113     
N.UNIT	= 000034	*7-73      
OFNPT 	= ******  GX	 7-42      *7-44      *7-45       7-50      
OUSPEC	= ******  GX	 7-55      
PARSE 	= ******  GX	 7-51       7-51       7-75       7-75      
PAR$$$	= 000027	#7-50       7-50      #7-66       7-66      
PRSERR	= ******  GX	 7-53       7-53       7-77       7-77      
RENAME	  000000 RG	#7-38      
RENAM1	  000246 R	 7-71      #7-74       7-212     
RE02MG	= ******  GX	 7-188     
RE02SZ	= ******  GX	 7-188     
RE03MG	= ******  GX	 7-195     
RE03SZ	= ******  GX	 7-195     
RE04MG	= ******  GX	 7-88      
RE04SZ	= ******  GX	 7-88      
RMVERR	= ******  GX	 7-202      7-202     
RMVNXT	= ******  GX	 7-102      7-102     
RNMNXT	  001040 R	 7-78       7-89       7-94       7-198      7-203     #7-209     
RONLY$	= ******	 7-34       7-34      
R$$DPB	= 000001	#1-27      
R$$DYM	= 000001	#1-29      
R$$EIS	= 000000	#1-28       1-38       7-116      7-131      7-145      7-160     
R$$11M	= 000001	#1-25       1-26       7-1       
STNBK1	= ******  GX	 7-49       7-49      
STNMBK	= ******  GX	 7-69       7-69      
SYDFLT	= ******  GX	 7-46       7-50      
SYS40$	= ******	 1-67       7-34       7-34      
S.APPD	= 000010	#7-24      
S.FIDS	= 000014	#7-24      
VERSAV	= ******  GX	*7-82       7-105     
WLDVER	= ******  GX	 7-92       7-92      
X     	= 000026	#7-41       7-41      #7-60       7-60      #7-81       7-81      #7-81       7-81      #7-88      
                         7-88      #7-88       7-88      #7-188      7-188     #7-188      7-188     #7-188      7-188     
                        #7-195      7-195     #7-195      7-195     #7-195      7-195     
$$    	= 000067	#7-49       7-49      #7-51       7-51      #7-53       7-53      #7-58       7-58      #7-69      
                         7-69      #7-75       7-75      #7-77       7-77      #7-92       7-92      #7-102      7-102     
                        #7-106      7-106     #7-180      7-180     #7-193      7-193     #7-197      7-197     #7-202     
                         7-202     #7-206      7-206     #7-209      7-209     
.ENTER	= ******  GX	 7-180      7-180      7-193      7-193     
.LCLSW	= ******  GX	*7-38      
.OULCL	= ******  GX	 7-38      
PIPREN     CREATED BY  MACRO  ON 27-FEB-85 AT 12:28	PAGE 3

MACRO CROSS REFERENCE                                   CREF         

MACRO NAME	REFERENCES

ASH   		#1-64      
ASHC  		#1-64      
CALL  		#7-31       7-49       7-51       7-53       7-58       7-69       7-75       7-77       7-92       7-102     
                 7-106      7-180      7-193      7-197      7-202      7-206      7-209     
CMOV$B		#7-50       7-50       7-50      #7-66       7-66       7-66      
CMOV$W		#7-50       7-50       7-50      #7-66       7-66       7-66      
CSI$  		#7-25      #7-26      
DIV   		#1-64      
ERRINI		#4-307     
ERROUT		#3-215      7-88       7-188      7-195     
ERROUX		#3-222      7-41       7-60       7-81      
ERROU1		#3-225     #7-41      #7-60      #7-81      #7-88      #7-188     #7-195     
ERRP  		#3-247     
ERRPX 		#3-253     
ERRP1 		#3-256     
ERR1  		#3-273     #7-41      #7-60      #7-81      #7-88      #7-188     #7-195     
FCSBT$		#7-25       7-28      
FDOFF$		#7-27      #7-27      
FDOF$L		#7-25       7-27      
FDOP$R		#7-31       7-50       7-66      
FLDSOF		#5-382     #7-24      #7-24      
IDENT 		#5-339     #7-1       
IDENT1		#5-347      7-1       
IDTITL		#5-356     
ILLOP 		#1-52      #1-64       1-64      
IMPURE		#1-75      
IOERR$		#7-25      #7-29      
LDFDB$		#7-50       7-50      #7-66       7-66      
MARK  		#1-64      
MSG   		#2-124     
MSGZ  		#2-129     
MSG1  		#2-133     
MUL   		#1-64      
NOEIS$		#1-39       1-64      
PURE. 		#1-84       7-34      
PURE.D		#1-102     
PURE.I		#1-98       7-34      
RETURN		#7-31      
RTT   		#1-64      
SOB   		#1-64      
SXT   		#1-64      
XOR   		#1-64      
PIPSPL M0206, SPOOL COMMAND-PIP	MACRO M1113  27-FEB-85 12:28
TABLE OF CONTENTS

     7-    1	**** PIPSPL VERSION M0206 ****
PIPMAC - MACROS FOR PIP, ETC.	MACRO M1113  27-FEB-85 12:28  PAGE 6


    397
PIPSPL M0206, SPOOL COMMAND-PIP	MACRO M1113  27-FEB-85 12:28  PAGE 7


      1						.TITLE	PIPSPL M0206, SPOOL COMMAND-PIP
						.SBTTL	**** PIPSPL VERSION M0206 ****
						.IDENT	/M0206/
      2					; ALTERED:
      3					; ANDREW C. GOLDSTEIN  16 JUN 75  17:20
      4					;
      5					; COPYRIGHT 1975, 1985, DIGITAL EQUIPMENT CORP., MAYNARD MASS.
      6					; COPYRIGHT 1974, DIGITAL EQUIPMENT CORP., MAYNARD MASS.
      7
      8					;			ALL RIGHTS RESERVED
      9					;
     10					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
     11					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
     12					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
     13					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
     14
     15					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
     16					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
     17					; EQUIPMENT CORPORATION.
     18
     19					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY
     20					; OF ITS SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
     21					;
     22					; PETER H. LIPMAN	2-MAY-74
     23
     24						.IF	GT,R$$11M
     25						.MACRO	OPEN$	A1,A2,A3,A4,A5,A6,A7,A8,A9
     26						.MCALL	OFNB$
     27						OFNB$	A1,A2,A3,A4,A5,A6,A7,A8,A9
     28						.ENDM	OPEN$
     29						.ENDC
     30					;
     31						.MCALL	FDOF$L,FCSBT$
     32	000000					FDOF$L			;DEFINE THE FDB OFFSETS LOCALLY
     33	000000					FCSBT$			;DEFINE THE FDB BITS AND VALUES LOCALLY
     34					;
     35						.MCALL	CALL,RETURN,FDRC$R
     36						.MCALL	OPEN$R,PRINT$,CLOSE$
     37
     38	000000					PURE.I
     39
     40					; SPOOL THE SPECIFIED LIST OF FILES FOR PRINTING AND DELETE THEM
     41	000000				SPOOL::	CALL	FSTOUT
     42	000004					FDRC$R	#FDBOUT,#FD.RWM
     43	000016	052767 	000000G	000000G	SPOOL1:	BIS	#FRSTIM,CPYCTL
     44						.IF	LE,R$$11M
     45						BIT	#FIDBIT,CPYCTL	; CHECK FOR /FI SWITCH
     46						BNE	80$		; CAN'T DO IT - OUT
     47						.ENDC
     48	000024					CALL	PARSE
     49	000030	103431 				BCS	60$
     50	000032	016067 	000120 	000000G		MOV	F.FVER(R0),VERSAV
     51	000040	016760 	000000G	000120 	10$:	MOV	VERSAV,F.FVER(R0)
     52	000046					CALL	FNDNXT
     53	000052	103423 				BCS	68$
     54	000054	042767 	000000G	000000G		BIC	#FRSTIM,CPYCTL
     55	000062					OPEN$R	R0		;OPEN THE FILE
PIPSPL M0206, SPOOL COMMAND-PIP	MACRO M1113  27-FEB-85 12:28  PAGE 7-1
**** PIPSPL VERSION M0206 ****

     56	000074	103415 				BCS	70$
     57					; SPOOL THE OPEN FILE FOR PRINTING, SPOOLER WILL CLOSE, PRINT AND
     58					; DELETE THE FILE
Q    59	000076					PRINT$	R0
     60	000076	103422 				BCS	75$
     61	000100				20$:	CLOSE$	R0		;CERTAIN CONDITIONS WILL LEAVE IT OPEN
     62	000104					CALL	NXTFIL		;ANY MORE FILES IN THIS FILE SPEC?
     63	000110	103420 				BCS	SPLNXT		;BRANCH IF NO
     64	000112	000752 				BR	10$		;GO FIND THE NEXT FILE
     65					;
     66					; PARSE ERROR
     67	000114				60$:	CALL	PRSERR
     68	000120	000414 				BR	SPLNXT
     69					;
     70					; FAILED TO FIND FILE
     71	000122				68$:	CALL	FNDERR
     72	000126	000411 				BR	SPLNXT
     73					;
     74					; OPEN FAILURE
     75	000130				70$:	ERROUT	OP01,0,0
	000130	104426 				TRAP	X
	000132	000000G				.WORD	OP01SZ
	000134	000000G				.WORD	OP01MG
     76	000136	012700 	000000G			MOV	#FDBOUT,R0
     77	000142	000756 				BR	20$
     78					;
     79					; ERROR FROM PRINT$
     80	000144				75$:	ERROUT	SP01,0
	000144	104406 				TRAP	X
	000146	000000G				.WORD	SP01SZ
	000150	000000G				.WORD	SP01MG
     81						.IF	LE,R$$11M
     82						BR	SPLNXT
     83					;
     84					; ATTEMPT TO SPOOL FILE BY FILE ID - NOT SUPPORTED
     85					80$:	ERROUT	SP02
     86						.ENDC
     87					;
     88					; GO GET THE NEXT FILE IN THE LIST TO BE SPOOLED
     89	000152				SPLNXT:	CALL	NXTOUT
     90	000156	103402 				BCS	10$
     91	000160	000167 	177632 			JMP	SPOOL1
     92	000164	000167 	000000G		10$:	JMP	CLOSX
     93
     94					;
     95					;
     96		000001 				.END
PIPSPL M0206, SPOOL COMMAND-PIP	MACRO M1113  27-FEB-85 12:28  PAGE 7-2
SYMBOL TABLE

CLOSX = ****** GX	FNDERR= ****** GX	F.ERR = 000052   	NB.DEV= 000200   	R$$DPB= 000001
CPYCTL= ****** GX	FNDNXT= ****** GX	F.FACC= 000043   	NB.DIR= 000100   	R$$DYM= 000001
FA.APD= 000100   	FO.APD= 000106   	F.FFBY= 000014   	NB.NAM= 000004   	R$$EIS= 000000
FA.CRE= 000010   	FO.MFY= 000002   	F.FNAM= 000110   	NB.SD1= 000400   	R$$11M= 000001
FA.EXT= 000004   	FO.RD = 000001   	F.FNB = 000102   	NB.SD2= 001000   	R.FIX = 000001
FA.NSP= 000100   	FO.UPD= 000006   	F.FTYP= 000116   	NB.SNM= 000040   	R.VAR = 000002
FA.RD = 000001   	FO.WRT= 000016   	F.FVER= 000120   	NB.STP= 000020   	SPLNXT  000152R     002
FA.SHR= 000040   	FRSTIM= ****** GX	F.HIBK= 000004   	NB.SVR= 000010   	SPOOL   000000RG    002
FA.TMP= 000020   	FSTOUT= ****** GX	F.LUN = 000042   	NB.TYP= 000002   	SPOOL1  000016R     002
FA.WRT= 000002   	F.ALOC= 000040   	F.MBCT= 000054   	NB.VER= 000001   	SP01MG= ****** GX
FDBOUT= ****** GX	F.BBFS= 000062   	F.MBC1= 000055   	NXTFIL= ****** GX	SP01SZ= ****** GX
FD.BLK= 000010   	F.BDB = 000070   	F.MBFG= 000056   	NXTOUT= ****** GX	S.FATT= 000016
FD.CCL= 000002   	F.BGBC= 000057   	F.NRBD= 000024   	N.DID = 000024   	S.FDB = 000140
FD.CR = 000002   	F.BKDN= 000026   	F.NREC= 000030   	N.DVNM= 000032   	S.FNAM= 000006
FD.DIR= 000010   	F.BKDS= 000020   	F.OVBS= 000030   	N.FID = 000000   	S.FNB = 000036
FD.FTN= 000001   	F.BKEF= 000050   	F.RACC= 000016   	N.FNAM= 000006   	S.FNBW= 000017
FD.INS= 000010   	F.BKP1= 000051   	F.RATT= 000001   	N.FTYP= 000014   	S.FNTY= 000004
FD.PLC= 000004   	F.BKST= 000024   	F.RCNM= 000034   	N.FVER= 000016   	S.FTYP= 000002
FD.RAH= 000001   	F.BKVB= 000064   	F.RCTL= 000017   	N.NEXT= 000022   	S.NFEN= 000020
FD.RAN= 000002   	F.CNTG= 000034   	F.RSIZ= 000002   	N.STAT= 000020   	VERSAV= ****** GX
FD.REC= 000001   	F.DFNB= 000046   	F.RTYP= 000000   	N.UNIT= 000034   	X     = 000006
FD.RWM= 000001   	F.DSPT= 000044   	F.STBK= 000036   	OP01MG= ****** GX	$$    = 000067
FD.SDI= 000020   	F.DVNM= 000134   	F.UNIT= 000136   	OP01SZ= ****** GX	.CLOSE= ****** G
FD.SQD= 000040   	F.EFBK= 000010   	F.URBD= 000020   	PARSE = ****** GX	.OPFNB= ****** G
FD.TTY= 000004   	F.EFN = 000050   	F.VBN = 000064   	PAR$$$= 000000   	...GBL= 000000
FD.WBH= 000002   	F.EOBB= 000032   	F.VBSZ= 000060   	PRSERR= ****** GX	...TPC= 000140

. ABS.	000000	   000
      	000000	   001
PURE$I	000170	   002
ERRORS DETECTED:  1

VIRTUAL MEMORY USED:  4407 WORDS  ( 18 PAGES)
DYNAMIC MEMORY:  5678 WORDS  ( 21 PAGES)
ELAPSED TIME:  00:00:16
[43,10]PIPSPL,[43,20]PIPSPL/-SP/CR=[43,30]PIPMAC,PIPSPL
PIPSPL     CREATED BY  MACRO  ON 27-FEB-85 AT 12:28	PAGE 1

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

CLOSX 	= ******  GX	 7-92      
CPYCTL	= ******  GX	*7-43      *7-54      
FDBOUT	= ******  GX	 7-42       7-42       7-76      
FD.RWM	= 000001	 7-42      
FNDERR	= ******  GX	 7-71       7-71      
FNDNXT	= ******  GX	 7-52       7-52      
FO.RD 	= 000001	 7-55      
FRSTIM	= ******  GX	 7-43       7-54      
FSTOUT	= ******  GX	 7-41       7-41      
F.FACC	= 000043	*7-55      
F.FVER	= 000120	 7-50      *7-51      
F.RACC	= 000016	*7-42      
NXTFIL	= ******  GX	 7-62       7-62      
NXTOUT	= ******  GX	 7-89       7-89      
OP01MG	= ******  GX	 7-75      
OP01SZ	= ******  GX	 7-75      
PARSE 	= ******  GX	 7-48       7-48      
PAR$$$	= 000000	#7-42       7-42      #7-55       7-55      #7-61       7-61      
PRSERR	= ******  GX	 7-67       7-67      
RONLY$	= ******	 7-38       7-38      
R$$DPB	= 000001	#1-27      
R$$DYM	= 000001	#1-29      
R$$EIS	= 000000	#1-28       1-38      
R$$11M	= 000001	#1-25       1-26       7-1        7-24       7-44       7-81      
SPLNXT	  000152 R	 7-63       7-68       7-72      #7-89      
SPOOL 	  000000 RG	#7-41      
SPOOL1	  000016 R	#7-43       7-91      
SP01MG	= ******  GX	 7-80      
SP01SZ	= ******  GX	 7-80      
SYS40$	= ******	 1-67       7-38       7-38      
VERSAV	= ******  GX	*7-50       7-51      
X     	= 000006	#7-75       7-75      #7-75       7-75      #7-75       7-75      #7-80       7-80      #7-80      
                         7-80      
$$    	= 000067	#7-41       7-41      #7-48       7-48      #7-52       7-52      #7-62       7-62      #7-67      
                         7-67      #7-71       7-71      #7-89       7-89      
.CLOSE	= ******  G	 7-61       7-61      
.OPFNB	= ******  G	 7-55       7-55      
PIPSPL     CREATED BY  MACRO  ON 27-FEB-85 AT 12:28	PAGE 2

MACRO CROSS REFERENCE                                   CREF         

MACRO NAME	REFERENCES

ASH   		#1-64      
ASHC  		#1-64      
CALL  		#7-35       7-41       7-48       7-52      #7-55      #7-61       7-62       7-67       7-71       7-89      
CLOSE$		#7-36      #7-61      
CMOV$B		#7-42       7-42      #7-55      #7-55       7-55       7-55      #7-55       7-55      
CMOV$W		#7-42      #7-42      #7-42      #7-55      #7-55      #7-55      #7-55      #7-55      #7-55      
DIV   		#1-64      
ERRINI		#4-307     
ERROUT		#3-215      7-75       7-80      
ERROUX		#3-222     
ERROU1		#3-225     #7-75      #7-80      
ERRP  		#3-247     
ERRPX 		#3-253     
ERRP1 		#3-256     
ERR$  		#7-55      #7-55      #7-61      #7-61      
ERR1  		#3-273     #7-75      #7-80      
FCSBT$		#7-31       7-33      
FDOFF$		#7-32       7-32      
FDOF$L		#7-31       7-32      
FDOP$R		#7-55       7-55      
FDRC$R		#7-35       7-42      #7-55       7-55      
FLDSOF		#5-382     
IDENT 		#5-339     #7-1       
IDENT1		#5-347      7-1       
IDTITL		#5-356     
ILLOP 		#1-52      #1-64       1-64      
IMPURE		#1-75      
LDFDB$		#7-42      #7-42      #7-55      #7-55      #7-55      #7-55      #7-61      #7-61      
MARK  		#1-64      
MSG   		#2-124     
MSGZ  		#2-129     
MSG1  		#2-133     
MUL   		#1-64      
NOEIS$		#1-39       1-64      
OFNB$ 		#7-55      #7-55      
OPEN$ 		#7-25      #7-55      #7-55      
OPEN$R		#7-36      #7-55      
PRINT$		#7-36       7-59      
PURE. 		#1-84       7-38      
PURE.D		#1-102     
PURE.I		#1-98       7-38      
RETURN		#7-35      
RTT   		#1-64      
SOB   		#1-64      
SXT   		#1-64      
XOR   		#1-64      
PIPUNL M0202, UNLOCK COMMAND-PI	MACRO M1113  27-FEB-85 12:28
TABLE OF CONTENTS

     7-    1	**** PIPUNL VERSION M0202 ****
PIPMAC - MACROS FOR PIP, ETC.	MACRO M1113  27-FEB-85 12:28  PAGE 6


    397
PIPUNL M0202, UNLOCK COMMAND-PI	MACRO M1113  27-FEB-85 12:28  PAGE 7


      1						.TITLE	PIPUNL M0202, UNLOCK COMMAND-PIP
						.SBTTL	**** PIPUNL VERSION M0202 ****
						.IDENT	/M0202/
      2					; ALTERED WEDNESDAY 8-JAN-75 12:45
      3					;
      4					; COPYRIGHT 1974, 1985, DIGITAL EQUIPMENT CORP., MAYNARD MASS.
      5
      6					;			ALL RIGHTS RESERVED
      7					;
      8					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
      9					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
     10					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
     11					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
     12
     13					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
     14					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
     15					; EQUIPMENT CORPORATION.
     16
     17					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY
     18					; OF ITS SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
     19					;
     20					; PETER H. LIPMAN	2-MAY-74
     21
     22						.MCALL	FDOF$L
     23	000000					FDOF$L			;DEFINE THE FDB OFFSETS LOCALLY
     24					;
     25						.MCALL	CALL,RETURN
     26
     27
     28	000000					PURE.I
     29
     30					; UNLOCK A LOCKED FILE
     31	000000				UNLOCK::
     32	000000	012701 	001000 			MOV	#1000,R1
     33	000004					CALL	.DYALC		;ALLOCATE A HEADER BUFFER
     34	000010	010067 	000000G			MOV	R0,.HDRAD	;AND SAVE IT'S ADDRESS
     35	000014					CALL	FSTOUT
     36	000020	012700 	000000G			MOV	#FDBOUT,R0
     37	000024	052767 	000000G	000000G	UNLCK1:	BIS	#FRSTIM,CPYCTL
     38	000032					CALL	PARSE
     39	000036	103003 				BCC	10$
     40	000040					CALL	PRSERR
     41	000044	000465 				BR	ULKNXT
     42	000046	016067 	000120 	000000G	10$:	MOV	F.FVER(R0),VERSAV
     43	000054	016760 	000000G	000120 	UNLCK2:	MOV	VERSAV,F.FVER(R0)
     44	000062					CALL	FNDNXT
     45	000066	103441 				BCS	65$
     46	000070	042767 	000000G	000000G		BIC	#FRSTIM,CPYCTL
     47					; READ THE FILE ATTRIBUTES
     48	000076					CALL	RDATT
     49	000102	103436 				BCS	70$
     50					;
     51					; NOW VERIFY THAT FILE IS LOCKED
     52	000104	016705 	000000G			MOV	.HDRAD,R5	;ADDRESS OF HEADER BUFFER TO R5
     53	000110	062705 	000000G			ADD	#HH.CHU,R5	;R5=ADDRESS OF CHARACTERISTICS BYTE
     54	000114	132715 	000000G			BITB	#HS.PHL,(R5)
     55	000120	001420 				BEQ	40$		;BRANCH HF FILE NOT LOCKED
PIPUNL M0202, UNLOCK COMMAND-PI	MACRO M1113  27-FEB-85 12:28  PAGE 7-1
**** PIPUNL VERSION M0202 ****

     56	000122	142715 	000000G			BICB	#HS.PHL,(R5)	;CLEAR THE LOCK BIT
     57					;
     58					; SET UP TO WRITE THE USER CHARACTERISTICS BACK TO THE FILE
     59					; FIRST PUT AN ATTRIBUTE BLOCK ON THE STACK
     60	000126	005046 				CLR	-(SP)
     61	000130	010546 				MOV	R5,-(SP)	;ADDRESS OF BYTE TO WRITE
     62	000132	012746 	000000G			MOV	#HA.CHU,-(SP)	;ATTRIBUTE CODE AND BYTE COUNT
     63	000136	010601 				MOV	SP,R1		;R1=ADDRESS OF ATTRIBUTE BLOCK
     64	000140					CALL	WRTATT		;WRITE THE ATTRIBUTES
     65	000144	062706 	000006 			ADD	#6,SP		;CLEAN UP THE STACK
     66	000150	000416 				BR	ULKNX1
     67					;
     68					; BAD SYNTAX FOR UNLOCK COMMAND
     69	000152				20$:	ERROUT	UN04
	000152	104402 				TRAP	X
	000154	000000G				.WORD	UN04SZ
	000156	000000G				.WORD	UN04MG
     70	000160	000422 				BR	UNLKX1
     71					;
     72					; FILE ALREADY UNLOCKED
     73	000162				40$:	ERROUT	UN03,0
	000162	104406 				TRAP	X
	000164	000000G				.WORD	UN03SZ
	000166	000000G				.WORD	UN03MG
     74	000170	000406 				BR	ULKNX1
     75					;
     76					; FIND ERROR
     77	000172				65$:	CALL	FNDERR
     78	000176	000410 				BR	ULKNXT
     79					;
     80					; ERROR FROM READ ATTRIBUTES
     81	000200				70$:	ERROUT	UN02,0,0
	000200	104426 				TRAP	X
	000202	000000G				.WORD	UN02SZ
	000204	000000G				.WORD	UN02MG
     82					;
     83					; COME HERE TO CONTINUE WITH NEXT FILE IN WILD CARD CLASS
     84	000206	012700 	000000G		ULKNX1:	MOV	#FDBOUT,R0
     85	000212					CALL	NXTFIL		;ANY MORE FILES IN THIS FILE SPEC?
     86	000216	103316 				BCC	UNLCK2		;BRANCH IF YES
     87					;
     88					; COME HERE TO CONTINUE WITH THE NEXT FILE SPECIFIER
     89	000220				ULKNXT:	CALL	NXTOUT
     90	000224	103277 				BCC	UNLCK1
     91	000226	000167 	000000G		UNLKX1:	JMP	CLOSX
     92
     93					;
     94					;
     95		000001 				.END
PIPUNL M0202, UNLOCK COMMAND-PI	MACRO M1113  27-FEB-85 12:28  PAGE 7-2
SYMBOL TABLE

CLOSX = ****** GX	F.DVNM= 000134   	F.RATT= 000001   	N.FVER= 000016   	ULKNXT  000220R     002
CPYCTL= ****** GX	F.EFBK= 000010   	F.RCNM= 000034   	N.NEXT= 000022   	ULKNX1  000206R     002
FDBOUT= ****** GX	F.EFN = 000050   	F.RCTL= 000017   	N.STAT= 000020   	UNLCK1  000024R     002
FNDERR= ****** GX	F.EOBB= 000032   	F.RSIZ= 000002   	N.UNIT= 000034   	UNLCK2  000054R     002
FNDNXT= ****** GX	F.ERR = 000052   	F.RTYP= 000000   	PARSE = ****** GX	UNLKX1  000226R     002
FRSTIM= ****** GX	F.FACC= 000043   	F.STBK= 000036   	PRSERR= ****** GX	UNLOCK  000000RG    002
FSTOUT= ****** GX	F.FFBY= 000014   	F.UNIT= 000136   	RDATT = ****** GX	UN02MG= ****** GX
F.ALOC= 000040   	F.FNAM= 000110   	F.URBD= 000020   	R$$DPB= 000001   	UN02SZ= ****** GX
F.BBFS= 000062   	F.FNB = 000102   	F.VBN = 000064   	R$$DYM= 000001   	UN03MG= ****** GX
F.BDB = 000070   	F.FTYP= 000116   	F.VBSZ= 000060   	R$$EIS= 000000   	UN03SZ= ****** GX
F.BGBC= 000057   	F.FVER= 000120   	HA.CHU= ****** GX	R$$11M= 000001   	UN04MG= ****** GX
F.BKDN= 000026   	F.HIBK= 000004   	HH.CHU= ****** GX	S.FATT= 000016   	UN04SZ= ****** GX
F.BKDS= 000020   	F.LUN = 000042   	HS.PHL= ****** GX	S.FDB = 000140   	VERSAV= ****** GX
F.BKEF= 000050   	F.MBCT= 000054   	NXTFIL= ****** GX	S.FNAM= 000006   	WRTATT= ****** GX
F.BKP1= 000051   	F.MBC1= 000055   	NXTOUT= ****** GX	S.FNB = 000036   	X     = 000026
F.BKST= 000024   	F.MBFG= 000056   	N.DID = 000024   	S.FNBW= 000017   	$$    = 000067
F.BKVB= 000064   	F.NRBD= 000024   	N.DVNM= 000032   	S.FNTY= 000004   	.DYALC= ****** GX
F.CNTG= 000034   	F.NREC= 000030   	N.FID = 000000   	S.FTYP= 000002   	.HDRAD= ****** GX
F.DFNB= 000046   	F.OVBS= 000030   	N.FNAM= 000006   	S.NFEN= 000020   	...TPC= 000140
F.DSPT= 000044   	F.RACC= 000016   	N.FTYP= 000014

. ABS.	000000	   000
      	000000	   001
PURE$I	000232	   002
ERRORS DETECTED:  0

VIRTUAL MEMORY USED:  3609 WORDS  ( 15 PAGES)
DYNAMIC MEMORY:  4622 WORDS  ( 17 PAGES)
ELAPSED TIME:  00:00:12
[43,10]PIPUNL,[43,20]PIPUNL/-SP/CR=[43,30]PIPMAC,PIPUNL
PIPUNL     CREATED BY  MACRO  ON 27-FEB-85 AT 12:28	PAGE 1

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

CLOSX 	= ******  GX	 7-91      
CPYCTL	= ******  GX	*7-37      *7-46      
FDBOUT	= ******  GX	 7-36       7-84      
FNDERR	= ******  GX	 7-77       7-77      
FNDNXT	= ******  GX	 7-44       7-44      
FRSTIM	= ******  GX	 7-37       7-46      
FSTOUT	= ******  GX	 7-35       7-35      
F.FVER	= 000120	 7-42      *7-43      
HA.CHU	= ******  GX	 7-62      
HH.CHU	= ******  GX	 7-53      
HS.PHL	= ******  GX	 7-54       7-56      
NXTFIL	= ******  GX	 7-85       7-85      
NXTOUT	= ******  GX	 7-89       7-89      
PARSE 	= ******  GX	 7-38       7-38      
PRSERR	= ******  GX	 7-40       7-40      
RDATT 	= ******  GX	 7-48       7-48      
RONLY$	= ******	 7-28       7-28      
R$$DPB	= 000001	#1-27      
R$$DYM	= 000001	#1-29      
R$$EIS	= 000000	#1-28       1-38      
R$$11M	= 000001	#1-25       1-26       7-1       
SYS40$	= ******	 1-67       7-28       7-28      
ULKNXT	  000220 R	 7-41       7-78      #7-89      
ULKNX1	  000206 R	 7-66       7-74      #7-84      
UNLCK1	  000024 R	#7-37       7-90      
UNLCK2	  000054 R	#7-43       7-86      
UNLKX1	  000226 R	 7-70      #7-91      
UNLOCK	  000000 RG	#7-31      
UN02MG	= ******  GX	 7-81      
UN02SZ	= ******  GX	 7-81      
UN03MG	= ******  GX	 7-73      
UN03SZ	= ******  GX	 7-73      
UN04MG	= ******  GX	 7-69      
UN04SZ	= ******  GX	 7-69      
VERSAV	= ******  GX	*7-42       7-43      
WRTATT	= ******  GX	 7-64       7-64      
X     	= 000026	#7-69       7-69      #7-73       7-73      #7-73       7-73      #7-81       7-81      #7-81      
                         7-81      #7-81       7-81      
$$    	= 000067	#7-33       7-33      #7-35       7-35      #7-38       7-38      #7-40       7-40      #7-44      
                         7-44      #7-48       7-48      #7-64       7-64      #7-77       7-77      #7-85       7-85      
                        #7-89       7-89      
.DYALC	= ******  GX	 7-33       7-33      
.HDRAD	= ******  GX	*7-34       7-52      
PIPUNL     CREATED BY  MACRO  ON 27-FEB-85 AT 12:28	PAGE 2

MACRO CROSS REFERENCE                                   CREF         

MACRO NAME	REFERENCES

ASH   		#1-64      
ASHC  		#1-64      
CALL  		#7-25       7-33       7-35       7-38       7-40       7-44       7-48       7-64       7-77       7-85      
                 7-89      
DIV   		#1-64      
ERRINI		#4-307     
ERROUT		#3-215      7-69       7-73       7-81      
ERROUX		#3-222     
ERROU1		#3-225     #7-69      #7-73      #7-81      
ERRP  		#3-247     
ERRPX 		#3-253     
ERRP1 		#3-256     
ERR1  		#3-273     #7-69      #7-73      #7-81      
FDOFF$		#7-23      #7-23      
FDOF$L		#7-22      #7-23      
FLDSOF		#5-382     
IDENT 		#5-339     #7-1       
IDENT1		#5-347      7-1       
IDTITL		#5-356     
ILLOP 		#1-52      #1-64       1-64      
IMPURE		#1-75      
MARK  		#1-64      
MSG   		#2-124     
MSGZ  		#2-129     
MSG1  		#2-133     
MUL   		#1-64      
NOEIS$		#1-39       1-64      
PURE. 		#1-84       7-28      
PURE.D		#1-102     
PURE.I		#1-98       7-28      
RETURN		#7-25      
RTT   		#1-64      
SOB   		#1-64      
SXT   		#1-64      
XOR   		#1-64      
PIPSBR M0211, COMMAND SUBROUTIN	MACRO M1113  27-FEB-85 12:28
TABLE OF CONTENTS

     7-    1	**** PIPSBR VERSION M0211 ****
     8-   81	FSTOUT, NXTOUT, NXTIN, WLDVER, CWLDUI
     9-  172	STNMBK, STNBK1 - INITIALIZE NAME BLOCK ROUTINES
    10-  221	PARSE, FNDNXT, FINDFL, RMVNXT
    12-  372	USEFID, PRSREG
    13-  413	COMMON ERROR ROUTINES
    14-  458	DYNAMIC MEMORY ALLOCATION AND RELEASE ROUTINES
PIPMAC - MACROS FOR PIP, ETC.	MACRO M1113  27-FEB-85 12:28  PAGE 6


    397
PIPSBR M0211, COMMAND SUBROUTIN	MACRO M1113  27-FEB-85 12:28  PAGE 7


      1						.TITLE	PIPSBR M0211, COMMAND SUBROUTINES-PIP
						.SBTTL	**** PIPSBR VERSION M0211 ****
						.IDENT	/M0211/
      2					; ALTERED TUESDAY 21-JAN-75 8:00
      3					;
      4					; COPYRIGHT 1975, 1985, DIGITAL EQUIPMENT CORP., MAYNARD MASS.
      5					; COPYRIGHT 1974, DIGITAL EQUIPMENT CORP., MAYNARD MASS.
      6
      7					;			ALL RIGHTS RESERVED
      8					;
      9					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
     10					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
     11					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
     12					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
     13
     14					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
     15					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
     16					; EQUIPMENT CORPORATION.
     17
     18					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY
     19					; OF ITS SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
     20					;
     21					; PETER H. LIPMAN	2-MAY-74
     22
     23	000000					FLDSOF
     24						.MCALL	CSI$
     25	000000					CSI$
     26
     27						.MCALL	CALL,RETURN,CLOSE$,FDBF$R
     28
     29	000000					PURE.I
     30
     31					;  CLOSE THE INPUT AND OUTPUT FILES
     32	000000				CLOSE::	CALL	CLSIN
     33	000004	012700 	000000G		CLSOUT::MOV	#FDBOUT,R0
     34	000010					FDBF$R	R0,,,#0		;FORCE DEFAULT BUFFER COUNT
     35	000014	005760 	000000G			TST	F.BDB(R0)	;DON'T THINK ABOUT DETACHING IF CLOSED
     36	000020	001417 				BEQ	15$
     37	000022	132760 	000000G	000000G		BITB	#FD.REC,F.RCTL(R0) ;IF OUTPUT FILE IS REC DEV
     38	000030	001413 				BEQ	15$
     39	000032	012701 	000000G			MOV	#IO.DET,R1	;DETACH IT BEFORE CLOSING
     40	000036	005002 				CLR	R2
     41	000040					CALL	.XQIO
     42	000044	103005 				BCC	15$
     43	000046					ERROUT	OP06,0,0	;FAILED TO DETACH
	000046	104426 				TRAP	X
	000050	000000G				.WORD	OP06SZ
	000052	000000G				.WORD	OP06MG
     44	000054	012700 	000000G			MOV	#FDBOUT,R0	;R0 CLOBBERED BY ERROR PRINTING
     45	000060				15$:	CLOSE$	R0
     46	000064	103003 				BCC	20$
     47	000066					ERROUT	OP05,0,0
	000066	104426 				TRAP	X
	000070	000000G				.WORD	OP05SZ
	000072	000000G				.WORD	OP05MG
     48	000074				20$:	RETURN
     49					;
PIPSBR M0211, COMMAND SUBROUTIN	MACRO M1113  27-FEB-85 12:28  PAGE 7-1
**** PIPSBR VERSION M0211 ****

     50					; CLOSE THE INPUT FILE
     51	000076				CLSIN::	CLOSE$	#FDBIN
     52	000106	103003 				BCC	10$
     53	000110					ERROUT	OP04,0,0
	000110	104426 				TRAP	X
	000112	000000G				.WORD	OP04SZ
	000114	000000G				.WORD	OP04MG
     54	000116				10$:	RETURN
     55					;+
     56					; ATTACH DEVICE IF IT IS A RECORD DEVICE.
     57					; CALLING SEQUENCE:
     58					;	CALL	RECATT
     59					; INPUTS:
     60					;	R0=FDB
     61					; OUTPUTS:
     62					;	C=0 IF OK, C=1 IF ERROR, F.ERR SET
     63					;	R1,R2 ALTERED, OTHERS PRESERVED
     64					;-
     65	000120	132760 	000000G	000000G	RECATT::BITB	#FD.REC,F.RCTL(R0)
     66	000126	001406 				BEQ	10$		;BRANCH IF NOTHING TO DO
     67	000130	012701 	000000G			MOV	#IO.ATT,R1
     68	000134	005002 				CLR	R2		;NO, EXTRA PARAMS IN DPB
     69	000136					CALL	.XQIO
     70	000142					RETURN			;NOTE THAT C BIT IS CORRECT
     71	000144	000241 			10$:	CLC
     72	000146					RETURN
     73					;
     74					; INIT THE PROTECTION VALUES TO ZERO
     75	000150	012701 	000000G		INIPRO::MOV	#WORPRO,R1
     76	000154	012702 	000000C			MOV	#<PROWRD-WORPRO>/2,R2
     77	000160	005021 			25$:	CLR	(R1)+
     78	000162					SOB	R2,25$
     79	000166					RETURN
PIPSBR M0211, COMMAND SUBROUTIN	MACRO M1113  27-FEB-85 12:28  PAGE 8
FSTOUT, NXTOUT, NXTIN, WLDVER, CWLDUI

     81						.SBTTL	FSTOUT, NXTOUT, NXTIN, WLDVER, CWLDUI
     82					;
     83					; SET UP FOR FIRST OUTPUT SPEC - USED BY COMMANDS WHICH HAVE A LIST
     84					; OF OUTPUT SPECS AND NO INPUT SPECS
     85	000170	005767 	000000G		FSTOUT::TST	INSPEC		;NO INPUT SPECIFIER ALLOWED
     86	000174	001405 				BEQ	10$
     87	000176					ERROUT	CR01		;BAD SYNTAX
	000176	104402 				TRAP	X
	000200	000000G				.WORD	CR01SZ
	000202	000000G				.WORD	CR01MG
     88	000204	000167 	000000G			JMP	AGAIN
     89	000210	012767 	000000G	000000C	10$:	MOV	#NAMBLK,FDBOUT+F.DFNB ;SET UP DEFAULT NAME BLOCK
     90	000216	012767 	000000G	000000C		MOV	#OFNPT,FDBOUT+F.DSPT ;AND DESCRIPTOR POINTER
     91					; INITIALIZE THE DEFAULT NAME BLOCK
     92	000224	005002 				CLR	R2		;NO FILE NAME AND TYPE
     93	000226	005001 				CLR	R1		;ZERO DIRECTORY ID
     94	000230					CALL	STNMBK		;USES DEFAULT SYS DEVICE
     95	000234					RETURN
     96					; SET UP FOR NEXT OUTPUT IN LIST IF ANY, RETURN C=0 IF READY WITH
     97					; ANOTHER FILE, C=1 IF NO MORE IN LIST, OR IF ERROR
     98	000236	012700 	000000G		NXTOUT::MOV	#FDBOUT,R0
     99	000242	012701 	000000G			MOV	#OFNPT,R1
    100	000246	012702 	000000G			MOV	#OUTCSI,R2
    101	000252	000406 				BR	NXTIN1
    102	000254	012700 	000000G		NXTIN::	MOV	#FDBIN,R0
    103	000260	012701 	000000G			MOV	#IFNPT,R1
    104	000264	012702 	000000G			MOV	#INCSI,R2
    105	000270				NXTIN1::CALL	NXINOU
    106	000274					RETURN
    107					;
    108					; SET UP FOR NEXT INPUT OR OUTPUT SPEC
    109					; INPUTS:
    110					;	R0=FDB
    111					;	R1=ADDRESS OF CSI FILE NAME DESCRIPTOR
    112					;	R2=ADDR OF INCSI OR OUTCSI AS APPROPRIATE
    113	000276				NXINOU::	CLOSE$	R0
    114	000302	103415 				BCS	80$
    115	000304	032761 	000020 	000014 		BIT	#CS.MOR,N.SPEC(R1)
    116	000312	001420 				BEQ	95$
    117	000314	016767 	000000G	000000G		MOV	.LCLSW,CPYCTL
    118	000322					CALL	@R2
    119	000324	103410 				BCS	85$		;BRANCH IF BAD SWITCH OR VALUE
    120					;
    121					; IF PREVIOUS FILE NAME/TYPE WAS EXPLICIT, BUT NOT A WILD CARD
    122					; THEN USE THAT NAME/TYPE AS A DEFAULT FOR THE NEXT SPECIFIER
    123	000326					CALL	.DFLTN		;SET NEXT DEFAULT FILE NAME AND TYPE
    124	000332	000241 				CLC
    125	000334					RETURN
    126					;
    127					; CLOSE FAILURE
    128	000336				80$:	ERROUT	OP05,0,0
	000336	104426 				TRAP	X
	000340	000000G				.WORD	OP05SZ
	000342	000000G				.WORD	OP05MG
    129	000344	000403 				BR	95$
    130					;
    131					; BAD SWITCH
PIPSBR M0211, COMMAND SUBROUTIN	MACRO M1113  27-FEB-85 12:28  PAGE 8-1
FSTOUT, NXTOUT, NXTIN, WLDVER, CWLDUI

    132	000346				85$:	ERROUT	CR02,1
	000346	104412 				TRAP	X
	000350	000000G				.WORD	CR02SZ
	000352	000000G				.WORD	CR02MG
    133	000354	000261 			95$:	SEC
    134	000356					RETURN
    135					;
    136					; CHECK IF WILD CARDS ARE PRESENT IN NAME OR TYPE, THAT VERSION
    137					; IS EXPLICIT OR WILD CARD
    138					; INPUTS:
    139					;	R0=FDB
    140					;	R1=FILE NAME BLOCK
    141					; OUTPUTS:
    142					;	C=0 IF OK, AND ALL REGISTERS PRESERVED
    143					;	C=1 IF NOT OK, ALL REGISTERS ALTERED
    144	000360				WLDVER::CALL	.WLDVC
    145	000364	103004 				BCC	10$
    146	000366					ERROUT	DE04,1
	000366	104412 				TRAP	X
	000370	000000G				.WORD	DE04SZ
	000372	000000G				.WORD	DE04MG
    147	000374	000261 				SEC
    148	000376				10$:	RETURN
    149					;
    150					;+
    151					; CHECK FOR LEGAL WILD CARD UIC, RESTRICT TO [*,*]
    152					; USED ONLY TO RESTRICT OUTPUT UIC'S
    153					; CALLING SEQUENCE:
    154					;	CALL	CWLDUI
    155					; INPUTS:
    156					;	R0=FDB
    157					; OUTPUTS:
    158					;	C=0 IFLEGAL, C=1 IF NOT
    159					;	ALL REGISTERS PRESERVED
    160					;-
    161	000400	032760 	000000G	000000C	CWLDUI::BIT	#NB.SDI,F.FNB+N.STAT(R0) ;LEGAL IF NO WILD UIC'S
    162	000406	001407 				BEQ	20$
    163	000410	016046 	000000C			MOV	F.FNB+N.STAT(R0),-(SP)
    164	000414	042716 	000000C			BIC	#^C<NB.SDI>,@SP
    165	000420	022726 	000000G			CMP	#NB.SDI,(SP)+
    166	000424	001002 				BNE	30$
    167	000426	000241 			20$:	CLC
    168	000430					RETURN
    169	000432	000261 			30$:	SEC
    170	000434					RETURN
PIPSBR M0211, COMMAND SUBROUTIN	MACRO M1113  27-FEB-85 12:28  PAGE 9
STNMBK, STNBK1 - INITIALIZE NAME BLOCK ROUTINES

    172						.SBTTL	STNMBK, STNBK1 - INITIALIZE NAME BLOCK ROUTINES
    173					;+
    174					; SET UP THE FILE NAME BLOCK, NAMBLK, WITH THE FILE NAME, AND TYPE
    175					; THE DIRECTORY ID, AND THE DEVICE AND UNIT
    176					; CALLING SEQUENCE:
    177					;	JSR	PC,STNMBK
    178					; INPUTS:
    179					;	R1=VALUE TO BE STORED IN FIRST 2 LOC OF DIRECTORY ID
    180					;		=0 FOR NORMAL CASE OF NO DEFAULT DIRECTORY ID
    181					;		=-1 TO DEFAULT TO MFD
    182					;	R2=POINTER TO NAME AND TYPE TO MOVE IN
    183					;		OR = 0 IF DESIRE NULL DEFAULTS FOR FILE NAME AND TYPE
    184					; OUTPUTS:
    185					;	R0,R1,R5 PRESERVED, R3,R4 ALTERED
    186					;	R2 ALTERED IF IT POINTS AT A NAME TO MOVE, PRESERVED IF 0
    187					; OPERATION:
    188					;	ZEROS THE SPECIFIED FILE NAME BLOCK AND SET UP THE SPECIFIED
    189					; DIRECTORY ID (VALUE FROM R1), THE SYSTEM
    190					; DEVICE AND UNIT, AND THE DEFAULT FILE NAME AND TYPE IF R2 NON ZERO.
    191					;
    192					; ALTERNATE ENTRY POINT:
    193					;	JSR	PC,STNBK1
    194					; INPUTS:
    195					;	R0 = NAMBLK ADDRESS TO INITIALIZE
    196					;	OTHERWISE, SAME AS ABOVE
    197					;-
    198	000436	010046 			STNMBK::MOV	R0,-(SP)
    199	000440	012700 	000000G			MOV	#NAMBLK,R0
    200	000444					CALL	STNBK1
    201	000450	012600 				MOV	(SP)+,R0
    202	000452					RETURN
    203					;
    204	000454	010003 			STNBK1::MOV	R0,R3		;ZERO THE FILE NAME BLOCK
    205	000456	012704 	000000G			MOV	#S.FNBW,R4	;NO. OF WORDS IN FNB
    206	000462	005023 			10$:	CLR	(R3)+
    207	000464					SOB	R4,10$
    208	000470	010160 	000000G			MOV	R1,N.DID(R0)	;STORE DEFAULT DIRECTORY ID
    209	000474	010160 	000002G			MOV	R1,N.DID+2(R0)
    210	000500	016760 	000000G	000000G		MOV	.DEFDV,N.DVNM(R0) ;SET DEFAULT DEVICE
    211	000506	016760 	000000G	000000G		MOV	.DEFUN,N.UNIT(R0) ;AND UNIT
    212	000514	005702 				TST	R2		;IF DEFAULT NAME AND TYPE SPECIFIED
    213	000516	001410 				BEQ	40$
    214	000520	010003 				MOV	R0,R3		;MOVE THEM IN
    215	000522	062703 	000000G			ADD	#N.FNAM,R3
    216	000526	012704 	000000G			MOV	#S.FNTY,R4	;NUMBER OF WORDS TO MOVE
    217	000532	012223 			20$:	MOV	(R2)+,(R3)+	;MOVE FILE NAME AND TYPE
    218	000534					SOB	R4,20$
    219	000540				40$:	RETURN
PIPSBR M0211, COMMAND SUBROUTIN	MACRO M1113  27-FEB-85 12:28  PAGE 10
PARSE, FNDNXT, FINDFL, RMVNXT

    221						.SBTTL	PARSE, FNDNXT, FINDFL, RMVNXT
    222					;+
    223					; PARSE THE FILE NAME BLOCK
    224					; CALLING SEQUENCE:
    225					;	CALL	PARSE
    226					; INPUTS:
    227					;	R0=FDB
    228					; OUTPUTS:
    229					;	C=0 IF SUCCESSFUL, C=1 IF FAILURE
    230					;	R1=FILE NAME BLOCK
    231					;	R2=FILE DESCRIPTOR POINTER
    232					;	R3=DEFAULT FILE NAME BLOCK
    233					;	R0,R4,R5 PRESERVED
    234					; OPERATION:
    235					;	HANDLES WILD CARD UIC PARSE
    236					;-
    237	000542	010446 			PARSE::	MOV	R4,-(SP)
    238	000544					CALL	PRSREG
    239	000550	005762 	000016 			TST	N.FLID(R2)	;/FI SWITCH SPECIFIED?
    240	000554	001403 				BEQ	5$		;BRANCH IF NOT
    241	000556					CALL	.PRSDV		;JUST PARSE THE DEVICE NAME
    242	000562	000407 				BR	20$
    243	000564	005704 			5$:	TST	R4
    244	000566	001403 				BEQ	10$		;BRANCH IF CALLING .PARSE
    245	000570					CALL	.WPARS
    246	000574	000402 				BR	20$
    247	000576				10$:	CALL	.PARSE
    248	000602	012604 			20$:	MOV	(SP)+,R4
    249	000604					RETURN
    250					;
    251					;+
    252					; FIND THE NEXT FILE IN THIS (OR NEXT) DIRECTORY
    253					; CALLING SEQUENCE:
    254					;	CALL	FNDNXT
    255					; INPUTS:
    256					;	R0=FDB ADDRESS
    257					; OUTPUTS:
    258					;	C=0 IF SUCCESSFUL, C=1 IF FAILURE
    259					;	R1=FILE NAME BLOCK
    260					;	R0,R2-R5 PRESERVED
    261					; OPERATION:
    262					;	FIND WILL USE EXPLICIT FILE ID IF SPECIFIED, AND WILL CROSS
    263					; DIRECTORIES IF WILD CARD UIC IS SPECIFIED
    264					;-
    265	000606	010001 			FNDNXT::MOV	R0,R1
    266	000610	062701 	000000G			ADD	#F.FNB,R1
    267	000614					CALL	USEFID
    268	000620	103011 				BCC	20$
    269	000622	010246 				MOV	R2,-(SP)
    270	000624	016002 	000000G			MOV	F.DSPT(R0),R2
    271	000630	001402 				BEQ	10$
    272	000632	062702 	000024 			ADD	#S.FIDS+S.APPD,R2
    273	000636				10$:	CALL	.FNDNX
    274	000642	012602 				MOV	(SP)+,R2
    275	000644				20$:	RETURN
    276					;
    277					;+
PIPSBR M0211, COMMAND SUBROUTIN	MACRO M1113  27-FEB-85 12:28  PAGE 10-1
PARSE, FNDNXT, FINDFL, RMVNXT

    278					; FIND NEXT FILE, DO NOT ALLOW FILE ID OR CROSS DIRECTORY SEARCH
    279					; CALLING SEQUENCE:
    280					;	CALL	FINDFL
    281					; INPUTS:
    282					;	R0=FDB ADDRESS
    283					; OUTPUTS:
    284					;	C=0 IF SUCCESSFUL, C=1 IF ERROR
    285					;	R1= FILE NAME BLOCK
    286					;	R0,R2-R5 PRESERVED
    287					;-
    288	000646	010001 			FINDFL::MOV	R0,R1
    289	000650	062701 	000000G			ADD	#F.FNB,R1
    290	000654	010246 				MOV	R2,-(SP)
    291	000656	005002 				CLR	R2
    292	000660					CALL	.FNDNX
    293	000664	012602 				MOV	(SP)+,R2
    294	000666					RETURN
    295					;
    296					;+
    297					; IS THERE ANOTHER FILE TO OPERATE ON IN THIS FILE SPECIFIER
    298					; CALLING SEQUENCE:
    299					;	CALL	NXTFIL
    300					; INPUTS:
    301					;	R0=FDB
    302					; OUTPUTS:
    303					;	C=0 IF THERE IS ANOTHER FILE, C=1 IF NOT
    304					;	R0,R5 PRESERVED
    305					;	R1 = FILE NAME BLOCK
    306					;	R2,R3,R4 ALTERED
    307					; OPERATION:
    308					;	SETS UP FOR THE NEXT FNDNXT, RMVNXT CALL BY CHECKING IF
    309					; A WILD CARD NAME OR DIRECTORY WAS SPECIFIED.  THIS ROUTINE WILL
    310					; CROSS DIRECTORIES IF A WILD CARD UIC IS SPECIFIED WITH NO WILD
    311					; CARDS IN THE FILE NAME.
    312					;-
    313	000670	000261 			NXTFIL::SEC			;ASSUME NO WILD CARDS
    314	000672	032760 	000000G	000000C		BIT	#NB.SFL,F.FNB+N.STAT(R0) ;ANY WILD CARDS?
    315	000700	001411 				BEQ	20$		;BRANCH IF NO
    316	000702	000241 				CLC			;NOW ASSUME SUCCESSFUL
    317	000704	032760 	000000G	000000C		BIT	#NB.SFN,F.FNB+N.STAT(R0) ;* IN NAME, TYPE, VERSION
    318	000712	001004 				BNE	20$		;BRANCH IF YES
    319					;
    320					; NO WILD CARDS IN NAME, BUT WILD CARD UIC, CROSS DIRECTORIES NOW
    321					;
    322	000714					CALL	PRSREG		;SET UP REGISTERS
    323	000720					CALL	.NXDIR		;AND CHAIN TO NEXT DIRECTORY
    324	000724				20$:	RETURN
PIPSBR M0211, COMMAND SUBROUTIN	MACRO M1113  27-FEB-85 12:28  PAGE 11
PARSE, FNDNXT, FINDFL, RMVNXT

    326					;+
    327					; REMOVE NEXT FILE, ALLOWS CROSS DIRECTORY OPERATION
    328					; INPUTS:
    329					;	R0=FDB
    330					; OUTPUTS:
    331					;	C=0 IF REMOVED, C=1 IF ERROR
    332					;	R1=FILE NAME BLOCK ADDRESS
    333					;	OTHER REGISTERS PRESERVED
    334					; OPERATION:
    335					;	HANDLES THE SPECIAL CASE OF EXPLICIT FILE NAME AND TYPE AND
    336					; DEFAULT VERSION (0 OR -1) BY DOING A FIND AND THEN A REMOVE.  ALL
    337					; OTHER CASES JUST DO THE REMOVE.
    338					;	IF WILD CARD DIRECTORY WAS SPECIFIED, RMVNXT WILL
    339					; AUTOMATICALLY CROSS TO THE NEXT DIRECTORY.
    340					;-
    341	000726	010001 			RMVNXT::MOV	R0,R1
    342	000730	062701 	000000G			ADD	#F.FNB,R1
    343	000734					CALL	USEFID
    344	000740	103047 				BCC	70$
    345	000742	032761 	000000G	000000G	5$:	BIT	#NB.SFN,N.STAT(R1) ;IF WILD CARDS
    346	000750	001014 				BNE	30$		;JUST DO THE REMOVE
    347	000752	005761 	000000G			TST	N.FVER(R1)	;IF DEFAULT NEWEST VERSION
    348	000756	001404 				BEQ	10$		;MUST DO FIND FIRST
    349	000760	022761 	177777 	000000G		CMP	#-1,N.FVER(R1)	;IF DEFAULT OLDEST VERSION
    350	000766	001005 				BNE	30$
    351	000770				10$:	CALL	.FIND		;MUST DO THE FIND FIRST
    352	000774	103404 				BCS	50$
    353	000776	005061 	000000G			CLR	N.NEXT(R1)
    354	001002				30$:	CALL	.REMOV
    355	001006	103024 			50$:	BCC	70$
    356	001010	032761 	000000G	000000G		BIT	#NB.SDI,N.STAT(R1) ;ANY WILD UIC'S
    357	001016	001420 				BEQ	70$		;BRANCH IF NO
    358	001020	122760 	000000G	000000G		CMPB	#IE.NSF,F.ERR(R0) ;"NO SUCH FILE" ERROR
    359	001026	001013 				BNE	60$
    360	001030	010246 				MOV	R2,-(SP)
    361	001032	010346 				MOV	R3,-(SP)
    362	001034	010446 				MOV	R4,-(SP)
    363	001036					CALL	PRSREG
    364	001042					CALL	.NXDIR		;GET NEXT WILD DIRECTORY IF ANY
    365	001046	012604 				MOV	(SP)+,R4
    366	001050	012603 				MOV	(SP)+,R3
    367	001052	012602 				MOV	(SP)+,R2
    368	001054	103332 				BCC	5$
    369	001056	000261 			60$:	SEC
    370	001060				70$:	RETURN
PIPSBR M0211, COMMAND SUBROUTIN	MACRO M1113  27-FEB-85 12:28  PAGE 12
USEFID, PRSREG

    372						.SBTTL	USEFID, PRSREG
    373					;
    374					; CHECK IF FILE ID WAS MANUALLY SPECIFIED
    375					; IF IT WAS, MOVE IT TO THE FILE ID OF F.FNB, RETURN C=0
    376					; IF NOT, RETURN C=1
    377					; ALL REGISTER PRESERVED
    378	001062	010246 			USEFID::MOV	R2,-(SP)
    379	001064	016002 	000000G			MOV	F.DSPT(R0),R2
    380	001070	001414 				BEQ	10$
    381	001072	016261 	000016 	000000G		MOV	N.FLID(R2),N.FID(R1) ;WAS FILE ID MANUALLY SPECIFIED
    382	001100	001410 				BEQ	10$		;BRANCH IF NO
    383	001102	016261 	000020 	000002G		MOV	N.FLID+2(R2),N.FID+2(R1)
    384	001110	016261 	000022 	000004G		MOV	N.FLID+4(R2),N.FID+4(R1)
    385	001116	000241 				CLC
    386	001120	000401 				BR	20$		;NOTE CARRY BIT MUST BE CLEAR
    387	001122	000261 			10$:	SEC
    388	001124	012602 			20$:	MOV	(SP)+,R2
    389	001126					RETURN
    390					;
    391					;+
    392					; SET UP REGISTERS FOR CALL TO .WPARS, .NXDIR
    393					; CALLING SEQUENCE:
    394					;	CALL	PRSREG
    395					; INPUTS:
    396					;	R0=FDB ADDRESS
    397					; OUTPUTS:
    398					;	R0=FDB ADDRESS
    399					;	R1=FILE NAME BLOCK
    400					;	R2=FILE DESCRIPTOR POINTER
    401					;	R3=DEFAULT FILE NAME BLOCK
    402					;	R4=S.FIDS+S.APPD;(F.DSPT(R0))
    403					;-
    404	001130	010001 			PRSREG::MOV	R0,R1
    405	001132	062701 	000000G			ADD	#F.FNB,R1
    406	001136	016002 	000000G			MOV	F.DSPT(R0),R2
    407	001142	016003 	000000G			MOV	F.DFNB(R0),R3
    408	001146	010204 				MOV	R2,R4
    409	001150	001402 				BEQ	10$
    410	001152	062704 	000024 			ADD	#S.FIDS+S.APPD,R4
    411	001156				10$:	RETURN
PIPSBR M0211, COMMAND SUBROUTIN	MACRO M1113  27-FEB-85 12:28  PAGE 13
COMMON ERROR ROUTINES

    413						.SBTTL	COMMON ERROR ROUTINES
    414					;
    415					; ERROR FROM PARSE
    416	001160	122760 	000000G	000000G	PRSERR::CMPB	#IE.NSF,F.ERR(R0) ;NO SUCH FILE?
    417	001166	001004 				BNE	20$
    418	001170					ERROUT	DI05,1		;CAN'T FIND DIRECTORY FILE
	001170	104412 				TRAP	X
	001172	000000G				.WORD	DI05SZ
	001174	000000G				.WORD	DI05MG
    419	001176					RETURN
    420	001200	122760 	000000G	000000G	20$:	CMPB	#IE.PRI,F.ERR(R0) ;PROTECTION VIOLATION
    421	001206	001404 				BEQ	30$
    422	001210					ERROUT	DE08,1,0
	001210	104432 				TRAP	X
	001212	000000G				.WORD	DE08SZ
	001214	000000G				.WORD	DE08MG
    423	001216					RETURN
    424					; PROTECTION VIOLATION  PROBABLY INDICATES
    425					; THAT THE DEVICE WAS NEVER MOUNTED
    426	001220				30$:	ERROUT	OP07,1
	001220	104412 				TRAP	X
	001222	000000G				.WORD	OP07SZ
	001224	000000G				.WORD	OP07MG
    427	001226					RETURN
    428					;
    429					; FIND ERROR - IF NO SUCH FILE, NO ERROR MESSAGE
    430					; R0=FDB, R1=FNB, ALL REGISTERS ALTERED
    431	001230	032767 	000000G	000000G	FNDERR::BIT	#FRSTIM,CPYCTL	;IF NOT THE FIRST TIM
    432	001236	001010 				BNE	20$
    433	001240	122760 	000000G	000000G		CMPB	#IE.NSF,F.ERR(R0) ;AND IF "NO SUCH FILE"
    434	001246	001403 				BEQ	10$		;NO ERROR MESSAGE
    435					;
    436					; OTHER ERROR THAN "NO SUCH FILE" - NOT THE FIRST FIND
    437	001250					ERROUT	FI01,1,0
	001250	104432 				TRAP	X
	001252	000000G				.WORD	FI01SZ
	001254	000000G				.WORD	FI01MG
    438	001256				10$:	RETURN
    439					;
    440					; ERROR ON FIRST FIND
    441	001260	122760 	000000G	000000G	20$:	CMPB	#IE.NSF,F.ERR(R0)
    442	001266	001004 				BNE	30$
    443	001270					ERROUT	FI03,1		;NO SUCH FILE
	001270	104412 				TRAP	X
	001272	000000G				.WORD	FI03SZ
	001274	000000G				.WORD	FI03MG
    444	001276					RETURN
    445	001300				30$:	ERROUT	FI02,1,0	;CANNOT FIND FILE
	001300	104432 				TRAP	X
	001302	000000G				.WORD	FI02SZ
	001304	000000G				.WORD	FI02MG
    446	001306					RETURN
    447					;
    448					; REMOVE ERROR - LIKE FNDERR ABOVE
    449	001310	122760 	000000G	000000G	RMVERR::CMPB	#IE.NSF,F.ERR(R0)
    450	001316	001744 				BEQ	FNDERR		;IF NO SUCH FILE, THEN USE FNDERR
    451	001320	122760 	000000G	000000G		CMPB	#IE.PRI,F.ERR(R0) ;IF PROTECTION VIOLATION
PIPSBR M0211, COMMAND SUBROUTIN	MACRO M1113  27-FEB-85 12:28  PAGE 13-1
COMMON ERROR ROUTINES

    452	001326	001004 				BNE	10$
    453	001330					ERROUT	RM02,1,0	;PROBABLY INDICATES DISK WRITE PROTECTED
	001330	104432 				TRAP	X
	001332	000000G				.WORD	RM02SZ
	001334	000000G				.WORD	RM02MG
    454	001336					RETURN
    455	001340				10$:	ERROUT	RM01,1,0
	001340	104432 				TRAP	X
	001342	000000G				.WORD	RM01SZ
	001344	000000G				.WORD	RM01MG
    456	001346					RETURN
PIPSBR M0211, COMMAND SUBROUTIN	MACRO M1113  27-FEB-85 12:28  PAGE 14
DYNAMIC MEMORY ALLOCATION AND RELEASE ROUTINES

    458						.SBTTL	DYNAMIC MEMORY ALLOCATION AND RELEASE ROUTINES
    459					;+
    460					; ALLOCATE BUFFER OF THE SPECIFIED SIZE (R1 BYTES) FROM THE FILE STORAGE REGION
    461					; CALLING SEQUENCE
    462					;	CALL	.DYALC
    463					; INPUTS:
    464					;	R1=BYTE COUNT TO ALLOCATE
    465					; OUTPUTS:
    466					;	R0=ADDRESS ALLOCATED
    467					;	R1-R5 PRESERVED
    468					;	.DYBUF AND .DYBYT ALSO SET TO ADDRESS AND SIZE OF BUFFER
    469					;	IF FAIL TO ALLOCATE, THEN FATAL DYNAMIC MEMORY ERROR
    470					;-
    471	001350	016700 	000000G		.DYALC::MOV	.DYBUF,R0
    472	001354	020167 	000000G			CMP	R1,.DYBYT	;DESIRED SIZE BUFFER ALREADY ALLOCATED?
    473	001360	001417 				BEQ	40$		;BRANCH IF  YES
    474	001362					CALL	.DYREL		;NO, RELEASE ANYTHING CURRENTLY ALLOCATED
    475	001366	010246 				MOV	R2,-(SP)
    476	001370	010146 				MOV	R1,-(SP)
    477	001372	013700 	000000G			MOV	@#.FSRPT,R0
    478	001376					CALL	$RQCB		;ALLOCATE FOR FILE STORAGE REGION
    479	001402	012601 				MOV	(SP)+,R1
    480	001404	012602 				MOV	(SP)+,R2
    481	001406	103405 				BCS	60$		;BRANCH IF FAILED TO ALLOCATE
    482	001410	010067 	000000G			MOV	R0,.DYBUF	;SET UP ADDRESS
    483	001414	010167 	000000G			MOV	R1,.DYBYT	;AND SIZE OF THE BUFFER ALLOCATED
    484	001420				40$:	RETURN
    485	001422				60$:	ERROUX	DY01		;NOT ENOUGH DYNAMIC MEMORY
	001422	104403 				TRAP	X
	001424	000000G				.WORD	DY01SZ
	001426	000000G				.WORD	DY01MG
    486
    487					;+
    488					; RELEASE THE CURRENTLY ALLOCATED DYNAMIC MEMORY BUFFER TO THE FILE
    489					; STORAGE REGION
    490					; CALLING SEQUENCE:
    491					;	CALL	.DYREL
    492					; INPUTS:
    493					;	NONE
    494					; OUTPUTS:
    495					;	ALL REGISTER PRESERVED
    496					;	.DYBYT ZEROED TO REFLECT BUFFER RELEASED
    497					;-
    498	001430	005767 	000000G		.DYREL::TST	.DYBYT		;IF NOTHING TO RELEASE, QUICK NOP
    499	001434	001414 				BEQ	40$
    500	001436	004567 	000000G			JSR	R5,.SAVR1
    501	001442	013700 	000000G			MOV	@#.FSRPT,R0
    502	001446	016701 	000000G			MOV	.DYBYT,R1
    503	001452	016702 	000000G			MOV	.DYBUF,R2
    504	001456					CALL	$RLCB		;RELEASE THE BUFFER (ADR IN R2, SIZE IN R1)
    505	001462	005067 	000000G			CLR	.DYBYT		;RECORD THE FACT THAT IT'S RELEASED
    506	001466				40$:	RETURN
    507					;
    508					;
    509		000001 				.END
PIPSBR M0211, COMMAND SUBROUTIN	MACRO M1113  27-FEB-85 12:28  PAGE 14-1
SYMBOL TABLE

AGAIN = ****** GX	DE04SZ= ****** GX	IFNPT = ****** GX	OP04MG= ****** GX	S.FNBW= ****** GX
CLOSE   000000RG    002	DE08MG= ****** GX	INCSI = ****** GX	OP04SZ= ****** GX	S.FNTY= ****** GX
CLSIN   000076RG    002	DE08SZ= ****** GX	INIPRO  000150RG    002	OP05MG= ****** GX	USEFID  001062RG    002
CLSOUT  000004RG    002	DI05MG= ****** GX	INSPEC= ****** GX	OP05SZ= ****** GX	WLDVER  000360RG    002
CPYCTL= ****** GX	DI05SZ= ****** GX	IO.ATT= ****** GX	OP06MG= ****** GX	WORPRO= ****** GX
CR01MG= ****** GX	DY01MG= ****** GX	IO.DET= ****** GX	OP06SZ= ****** GX	X     = 000003
CR01SZ= ****** GX	DY01SZ= ****** GX	NAMBLK= ****** GX	OP07MG= ****** GX	$RLCB = ****** GX
CR02MG= ****** GX	FDBIN = ****** GX	NB.SDI= ****** GX	OP07SZ= ****** GX	$RQCB = ****** GX
CR02SZ= ****** GX	FDBOUT= ****** GX	NB.SFL= ****** GX	OUTCSI= ****** GX	$$    = 000067
CS.DIF= 000002   	FD.REC= ****** GX	NB.SFN= ****** GX	PARSE   000542RG    002	.CLOSE= ****** G
CS.DVF= 000004   	FINDFL  000646RG    002	NXINOU  000276RG    002	PAR$$$= 000000   	.DEFDV= ****** GX
CS.EQU= 000040   	FI01MG= ****** GX	NXTFIL  000670RG    002	PROWRD= ****** GX	.DEFUN= ****** GX
CS.INP= 000001   	FI01SZ= ****** GX	NXTIN   000254RG    002	PRSERR  001160RG    002	.DFLTN= ****** GX
CS.MOR= 000020   	FI02MG= ****** GX	NXTIN1  000270RG    002	PRSREG  001130RG    002	.DYALC  001350RG    002
CS.NMF= 000001   	FI02SZ= ****** GX	NXTOUT  000236RG    002	RECATT  000120RG    002	.DYBUF= ****** GX
CS.OUT= 000002   	FI03MG= ****** GX	N.DEVD= 000000   	RMVERR  001310RG    002	.DYBYT= ****** GX
CS.WLD= 000010   	FI03SZ= ****** GX	N.DID = ****** GX	RMVNXT  000726RG    002	.DYREL  001430RG    002
CWLDUI  000400RG    002	FNDERR  001230RG    002	N.DIRD= 000004   	RM01MG= ****** GX	.FIND = ****** GX
C.CMLD= 000002   	FNDNXT  000606RG    002	N.DVNM= ****** GX	RM01SZ= ****** GX	.FNDNX= ****** GX
C.DEVD= 000006   	FRSTIM= ****** GX	N.FID = ****** GX	RM02MG= ****** GX	.FSRPT= ****** GX
C.DIRD= 000012   	FSTOUT  000170RG    002	N.FLID= 000016   	RM02SZ= ****** GX	.LCLSW= ****** GX
C.DSDS= 000006   	F.BDB = ****** GX	N.FNAM= ****** GX	R$$DPB= 000001   	.NXDIR= ****** GX
C.FILD= 000016   	F.DFNB= ****** GX	N.FNMD= 000010   	R$$DYM= 000001   	.PARSE= ****** GX
C.MKW1= 000024   	F.DSPT= ****** GX	N.FVER= ****** GX	R$$EIS= 000000   	.PRSDV= ****** GX
C.MKW2= 000026   	F.ERR = ****** GX	N.NEXT= ****** GX	R$$11M= 000001   	.REMOV= ****** GX
C.SIZE= 000054   	F.FNB = ****** GX	N.SPEC= 000014   	STNBK1  000454RG    002	.SAVR1= ****** GX
C.STAT= 000001   	F.MBCT= ****** GX	N.STAT= ****** GX	STNMBK  000436RG    002	.WLDVC= ****** GX
C.SWAD= 000022   	F.RCTL= ****** GX	N.UNIT= ****** GX	S.APPD= 000010   	.WPARS= ****** GX
C.TYPR= 000000   	IE.NSF= ****** GX	OFNPT = ****** GX	S.FIDS= 000014   	.XQIO = ****** GX
DE04MG= ****** GX	IE.PRI= ****** GX

. ABS.	000000	   000
      	000000	   001
PURE$I	001470	   002
ERRORS DETECTED:  0

VIRTUAL MEMORY USED:  3839 WORDS  ( 15 PAGES)
DYNAMIC MEMORY:  4622 WORDS  ( 17 PAGES)
ELAPSED TIME:  00:00:24
[43,10]PIPSBR,[43,20]PIPSBR/-SP/CR=[43,30]PIPMAC,PIPSBR
PIPSBR     CREATED BY  MACRO  ON 27-FEB-85 AT 12:28	PAGE 1

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

AGAIN 	= ******  GX	 8-88      
CLOSE 	  000000 RG	#7-32      
CLSIN 	  000076 RG	 7-32       7-32      #7-51      
CLSOUT	  000004 RG	#7-33      
CPYCTL	= ******  GX	*8-117      13-431    
CR01MG	= ******  GX	 8-87      
CR01SZ	= ******  GX	 8-87      
CR02MG	= ******  GX	 8-132     
CR02SZ	= ******  GX	 8-132     
CS.MOR	= 000020	 8-115     
CWLDUI	  000400 RG	#8-161     
DE04MG	= ******  GX	 8-146     
DE04SZ	= ******  GX	 8-146     
DE08MG	= ******  GX	 13-422    
DE08SZ	= ******  GX	 13-422    
DI05MG	= ******  GX	 13-418    
DI05SZ	= ******  GX	 13-418    
DY01MG	= ******  GX	 14-485    
DY01SZ	= ******  GX	 14-485    
FDBIN 	= ******  GX	 7-51       7-51       8-102     
FDBOUT	= ******  GX	 7-33       7-44      *8-89      *8-90       8-98      
FD.REC	= ******  GX	 7-37       7-65      
FINDFL	  000646 RG	#10-288    
FI01MG	= ******  GX	 13-437    
FI01SZ	= ******  GX	 13-437    
FI02MG	= ******  GX	 13-445    
FI02SZ	= ******  GX	 13-445    
FI03MG	= ******  GX	 13-443    
FI03SZ	= ******  GX	 13-443    
FNDERR	  001230 RG	#13-431     13-450    
FNDNXT	  000606 RG	#10-265    
FRSTIM	= ******  GX	 13-431    
FSTOUT	  000170 RG	#8-85      
F.BDB 	= ******  GX	 7-35      
F.DFNB	= ******  GX	*8-89       12-407    
F.DSPT	= ******  GX	*8-90       10-270     12-379     12-406    
F.ERR 	= ******  GX	 11-358     13-416     13-420     13-433     13-441     13-449     13-451    
F.FNB 	= ******  GX	 8-161      8-163      10-266     10-289     10-314     10-317     11-342     12-405    
F.MBCT	= ******  GX	*7-34      
F.RCTL	= ******  GX	 7-37       7-65      
IE.NSF	= ******  GX	 11-358     13-416     13-433     13-441     13-449    
IE.PRI	= ******  GX	 13-420     13-451    
IFNPT 	= ******  GX	 8-103     
INCSI 	= ******  GX	 8-104     
INIPRO	  000150 RG	#7-75      
INSPEC	= ******  GX	 8-85      
IO.ATT	= ******  GX	 7-67      
IO.DET	= ******  GX	 7-39      
NAMBLK	= ******  GX	 8-89       9-199     
NB.SDI	= ******  GX	 8-161      8-164      8-165      11-356    
NB.SFL	= ******  GX	 10-314    
NB.SFN	= ******  GX	 10-317     11-345    
PIPSBR     CREATED BY  MACRO  ON 27-FEB-85 AT 12:28	PAGE 2

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

NXINOU	  000276 RG	 8-105      8-105     #8-113     
NXTFIL	  000670 RG	#10-313    
NXTIN 	  000254 RG	#8-102     
NXTIN1	  000270 RG	 8-101     #8-105     
NXTOUT	  000236 RG	#8-98      
N.DEVD	= 000000	#7-23      
N.DID 	= ******  GX	*9-208     *9-209     
N.DIRD	= 000004	#7-23      
N.DVNM	= ******  GX	*9-210     
N.FID 	= ******  GX	*12-381    *12-383    *12-384    
N.FLID	= 000016	#7-23       10-239     12-381     12-383     12-384    
N.FNAM	= ******  GX	 9-215     
N.FNMD	= 000010	#7-23      
N.FVER	= ******  GX	 11-347     11-349    
N.NEXT	= ******  GX	*11-353    
N.SPEC	= 000014	#7-23       8-115     
N.STAT	= ******  GX	 8-161      8-163      10-314     10-317     11-345     11-356    
N.UNIT	= ******  GX	*9-211     
OFNPT 	= ******  GX	 8-90       8-99      
OP04MG	= ******  GX	 7-53      
OP04SZ	= ******  GX	 7-53      
OP05MG	= ******  GX	 7-47       8-128     
OP05SZ	= ******  GX	 7-47       8-128     
OP06MG	= ******  GX	 7-43      
OP06SZ	= ******  GX	 7-43      
OP07MG	= ******  GX	 13-426    
OP07SZ	= ******  GX	 13-426    
OUTCSI	= ******  GX	 8-100     
PARSE 	  000542 RG	#10-237    
PAR$$$	= 000000	#7-34       7-34      #7-45       7-45      #7-51       7-51      #8-113      8-113     
PROWRD	= ******  GX	 7-76      
PRSERR	  001160 RG	#13-416    
PRSREG	  001130 RG	 10-238     10-238     10-322     10-322     11-363     11-363    #12-404    
RECATT	  000120 RG	#7-65      
RMVERR	  001310 RG	#13-449    
RMVNXT	  000726 RG	#11-341    
RM01MG	= ******  GX	 13-455    
RM01SZ	= ******  GX	 13-455    
RM02MG	= ******  GX	 13-453    
RM02SZ	= ******  GX	 13-453    
RONLY$	= ******	 7-29       7-29      
R$$DPB	= 000001	#1-27      
R$$DYM	= 000001	#1-29      
R$$EIS	= 000000	#1-28       1-38      
R$$11M	= 000001	#1-25       1-26       7-1       
STNBK1	  000454 RG	 9-200      9-200     #9-204     
STNMBK	  000436 RG	 8-94       8-94      #9-198     
SYS40$	= ******	 1-67       7-29       7-29      
S.APPD	= 000010	#7-23       10-272     12-410    
S.FIDS	= 000014	#7-23       10-272     12-410    
S.FNBW	= ******  GX	 9-205     
S.FNTY	= ******  GX	 9-216     
PIPSBR     CREATED BY  MACRO  ON 27-FEB-85 AT 12:28	PAGE 3

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

USEFID	  001062 RG	 10-267     10-267     11-343     11-343    #12-378    
WLDVER	  000360 RG	#8-144     
WORPRO	= ******  GX	 7-75       7-76      
X     	= 000003	#7-43       7-43      #7-43       7-43      #7-43       7-43      #7-47       7-47      #7-47      
                         7-47      #7-47       7-47      #7-53       7-53      #7-53       7-53      #7-53       7-53      
                        #8-87       8-87      #8-128      8-128     #8-128      8-128     #8-128      8-128     #8-132     
                         8-132     #8-132      8-132     #8-146      8-146     #8-146      8-146     #13-418     13-418    
                        #13-418     13-418    #13-422     13-422    #13-422     13-422    #13-422     13-422    #13-426    
                         13-426    #13-426     13-426    #13-437     13-437    #13-437     13-437    #13-437     13-437    
                        #13-443     13-443    #13-443     13-443    #13-445     13-445    #13-445     13-445    #13-445    
                         13-445    #13-453     13-453    #13-453     13-453    #13-453     13-453    #13-455     13-455    
                        #13-455     13-455    #13-455     13-455    #14-485     14-485    
$RLCB 	= ******  GX	 14-504     14-504    
$RQCB 	= ******  GX	 14-478     14-478    
$$    	= 000067	#7-32       7-32      #7-41       7-41      #7-69       7-69      #8-94       8-94      #8-105     
                         8-105     #8-118      8-118     #8-123      8-123     #8-144      8-144     #9-200      9-200     
                        #10-238     10-238    #10-241     10-241    #10-245     10-245    #10-247     10-247    #10-267    
                         10-267    #10-273     10-273    #10-292     10-292    #10-322     10-322    #10-323     10-323    
                        #11-343     11-343    #11-351     11-351    #11-354     11-354    #11-363     11-363    #11-364    
                         11-364    #14-474     14-474    #14-478     14-478    #14-504     14-504    
.CLOSE	= ******  G	 7-45       7-45       7-51       7-51       8-113      8-113     
.DEFDV	= ******  GX	 9-210     
.DEFUN	= ******  GX	 9-211     
.DFLTN	= ******  GX	 8-123      8-123     
.DYALC	  001350 RG	#14-471    
.DYBUF	= ******  GX	 14-471    *14-482     14-503    
.DYBYT	= ******  GX	 14-472    *14-483     14-498     14-502    *14-505    
.DYREL	  001430 RG	 14-474     14-474    #14-498    
.FIND 	= ******  GX	 11-351     11-351    
.FNDNX	= ******  GX	 10-273     10-273     10-292     10-292    
.FSRPT	= ******  GX	 14-477     14-501    
.LCLSW	= ******  GX	 8-117     
.NXDIR	= ******  GX	 10-323     10-323     11-364     11-364    
.PARSE	= ******  GX	 10-247     10-247    
.PRSDV	= ******  GX	 10-241     10-241    
.REMOV	= ******  GX	 11-354     11-354    
.SAVR1	= ******  GX	 14-500    
.WLDVC	= ******  GX	 8-144      8-144     
.WPARS	= ******  GX	 10-245     10-245    
.XQIO 	= ******  GX	 7-41       7-41       7-69       7-69      
PIPSBR     CREATED BY  MACRO  ON 27-FEB-85 AT 12:28	PAGE 4

MACRO CROSS REFERENCE                                   CREF         

MACRO NAME	REFERENCES

ASH   		#1-64      
ASHC  		#1-64      
CALL  		#7-27       7-32       7-41      #7-45      #7-51       7-69       8-94       8-105     #8-113      8-118     
                 8-123      8-144      9-200      10-238     10-241     10-245     10-247     10-267     10-273     10-292    
                 10-322     10-323     11-343     11-351     11-354     11-363     11-364     14-474     14-478     14-504    
CLOSE$		#7-27       7-45       7-51       8-113     
CMOV$B		#7-34       7-34       7-34       7-34      
CMOV$W		#7-34       7-34      
CSI$  		#7-24      #7-25      
DIV   		#1-64      
ERRINI		#4-307     
ERROUT		#3-215      7-43       7-47       7-53       8-87       8-128      8-132      8-146      13-418     13-422    
                 13-426     13-437     13-443     13-445     13-453     13-455    
ERROUX		#3-222      14-485    
ERROU1		#3-225     #7-43      #7-47      #7-53      #8-87      #8-128     #8-132     #8-146     #13-418    #13-422    
                #13-426    #13-437    #13-443    #13-445    #13-453    #13-455    #14-485    
ERRP  		#3-247     
ERRPX 		#3-253     
ERRP1 		#3-256     
ERR$  		#7-45       7-45      #7-51       7-51      #8-113      8-113     
ERR1  		#3-273     #7-43      #7-47      #7-53      #8-87      #8-128     #8-132     #8-146     #13-418    #13-422    
                #13-426    #13-437    #13-443    #13-445    #13-453    #13-455    #14-485    
FDBF$R		#7-27       7-34      
FLDSOF		#5-382     #7-23      #7-23      
IDENT 		#5-339     #7-1       
IDENT1		#5-347      7-1       
IDTITL		#5-356     
ILLOP 		#1-52      #1-64       1-64      
IMPURE		#1-75      
LDFDB$		#7-34       7-34      #7-45       7-45      #7-51       7-51      #8-113      8-113     
MARK  		#1-64      
MSG   		#2-124     
MSGZ  		#2-129     
MSG1  		#2-133     
MUL   		#1-64      
NOEIS$		#1-39       1-64      
PURE. 		#1-84       7-29      
PURE.D		#1-102     
PURE.I		#1-98       7-29      
RETURN		#7-27      #7-48      #7-54      #7-70      #7-72      #7-79      #8-95      #8-106     #8-125     #8-134     
                #8-148     #8-168     #8-170     #9-202     #9-219     #10-249    #10-275    #10-294    #10-324    #11-370    
                #12-389    #12-411    #13-419    #13-423    #13-427    #13-438    #13-444    #13-446    #13-454    #13-456    
                #14-484    #14-506    
RTT   		#1-64      
SOB   		#1-64      #7-78      #9-207     #9-218     
SXT   		#1-64      
XOR   		#1-64      
PIPSB1 M0210, COMMAND SUBROUTIN	MACRO M1113  27-FEB-85 12:29
TABLE OF CONTENTS

     7-    1	**** PIPSB1 VERSION M0210 ****
PIPMAC - MACROS FOR PIP, ETC.	MACRO M1113  27-FEB-85 12:29  PAGE 6


    397
PIPSB1 M0210, COMMAND SUBROUTIN	MACRO M1113  27-FEB-85 12:29  PAGE 7


      1						.TITLE	PIPSB1 M0210, COMMAND SUBROUTINES-PIP
						.SBTTL	**** PIPSB1 VERSION M0210 ****
						.IDENT	/M0210/
      2					; ALTERED THURSDAY 9-JAN-75 9:25
      3					;
      4					; COPYRIGHT 1974, 1985, DIGITAL EQUIPMENT CORP., MAYNARD MASS.
      5
      6					;			ALL RIGHTS RESERVED
      7					;
      8					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
      9					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
     10					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
     11					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
     12
     13					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
     14					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
     15					; EQUIPMENT CORPORATION.
     16
     17					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY
     18					; OF ITS SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
     19					;
     20					; PETER H. LIPMAN	9-JAN-75
     21
     22	000000					FLDSOF
     23						.MCALL	CALL,RETURN
     24
     25	000000					PURE.I
     26
     27					;
     28					; WRITE ATTRIBUTES
     29					; INPUTS:
     30					;	R0=FDB ADDRESS
     31					;	R1=ADDRESS OF ATTRIBUTE BLOCK
     32					; OUTPUTS:
     33					;	C=0 IF OK, C=1 IF ERROR
     34	000000	010146 			WRTATT::MOV	R1,-(SP)	;ADDRESS OF ATTRIBUTE BLOCK
     35	000002	010046 				MOV	R0,-(SP)
     36	000004	062716 	000000G			ADD	#F.FNB,@SP
     37					;
     38					; NOW CALL XQIO
     39	000010	010603 				MOV	SP,R3		;ADDRESS OF ADDITIONAL PARAMETERS
     40	000012	012702 	000002 			MOV	#2,R2		;SIZE OF EXTRA PARAM BLOCK
     41	000016	012701 	000000G			MOV	#IO.WAT,R1	;I/O FUNCTION CODE  - WRT ATTRIBUTES
     42	000022					CALL	.XQIO
     43	000026	012603 				MOV	(SP)+,R3	;CLEAN UP THE STACK
     44	000030	012603 				MOV	(SP)+,R3
     45	000032	103004 				BCC	10$		;BRANCH IF ERROR, MUST POP 5 WORDS
     46	000034					ERROUT	UN01,0,0
	000034	104426 				TRAP	X
	000036	000000G				.WORD	UN01SZ
	000040	000000G				.WORD	UN01MG
     47	000042	000261 				SEC
     48	000044				10$:	RETURN
     49					;
     50					; READ ATTRIBUTES - JUST THE FILE HEADER
     51					; INPUTS:
     52					;	R0=FDB
PIPSB1 M0210, COMMAND SUBROUTIN	MACRO M1113  27-FEB-85 12:29  PAGE 7-1
**** PIPSB1 VERSION M0210 ****

     53					;	R1=FNB ADDRESS
     54					; OUTPUTS:
     55					;	C=0 IF SUCCESSFUL, C=1 IF ERROR
     56					;	R0,R1,R4,R5 PRESERVED, R2,R3 ALTERED
     57					;
     58	000046				RDATT::
     59						.IF	EQ,R$$DPB	;IF OLD DPB FORMAT
     60						MOV	#HDBLK,-(SP)	;FILE HEADER ADDRESS
     61						.IFF			;IF NEW DPB FORMAT
     62	000046	012746 	000004G			MOV	#RATCTL+4,-(SP) ;ADDRESS OF ATTRIBUTE CONTROL BLOCK
     63						.ENDC
     64
     65	000052	010146 				MOV	R1,-(SP)	;ADDRESS OF FILE NAME BLOCK
     66	000054	010603 				MOV	SP,R3		;R3=ADDRESS OF EXTRA PARAMETERS
     67	000056	012702 	000002 			MOV	#2,R2		;R2=NO. OF EXTRA PARAMETERS
     68	000062	012701 	000000G			MOV	#IO.RAT,R1	;READ ATTRIBUTES I/O FUCNTION CODE
     69	000066					CALL	.XQIO		;ISSUE THE QI/O AND WAIT
     70	000072	012601 				MOV	(SP)+,R1	;CLEAN UP STACK, PRESERVIN C BIT
     71	000074	012602 				MOV	(SP)+,R2
     72	000076					RETURN
     73					;
     74					;+
     75					;
     76					; ** .GFOWN - SET UP FILE OWNER WORD IF /FO WAS SPECIFIED
     77					;
     78					; INPUTS:
     79					;
     80					;	R0=FDB
     81					;
     82					; OUTPUTS:
     83					;
     84					;	R0,R5 PRESERVED, OTHERS ALTERED
     85					;	.FOWNR=UIC OF DIRECTORY FOR THIS FDB IF /FO SWITCH WAS SPECIFIED
     86					;	.FOWNR=0 IF /FO NOT SPECIFIED OR IF FDB IS NOT FOR A DIRECTORY DEVICE
     87					;
     88					;-
     89	000100				.GFOWN::
     90	000100	012703 	000000G			MOV	#.FOWNR,R3
     91	000104	032767 	000000G	000000G		BIT	#FOWNBT,CPYCTL	;WAS /FO SPECIFIED?
     92	000112	001425 				BEQ	20$		;BRANCH IF NO, JUST RETURN 0
     93	000114	132760 	000000G	000000G		BITB	#FD.DIR,F.RCTL(R0) ;IS THIS A DIRECTORY DEVICE?
     94	000122	001421 				BEQ	20$		;BRANCH IF NO
     95	000124	016002 	000000G			MOV	F.DSPT(R0),R2	;R2=DESCRIPTOR POINTER
     96	000130	062702 	000004 			ADD	#N.DIRD,R2	;FORM ADDRESS OF DIRECTORY STRING DESCRIPTOR
     97	000134	011246 				MOV	(R2),-(SP)	;SAVE SIZE OF STRING
     98	000136	001007 				BNE	10$		;BRANCH IF NOT NULL
     99	000140	010204 				MOV	R2,R4		;SAVE ADDRESS
    100	000142					CALL	.RDFDR		;READ THE DEFAULT DIRECTORY STRING
    101	000146	010114 				MOV	R1,(R4)		;STORE IT'S SIZE
    102	000150	010264 	000002 			MOV	R2,2(R4)	;AND ADDRESS
    103	000154	010402 				MOV	R4,R2		;R2 = DIRECTORY STRING DESCRIPTOR
    104	000156				10$:	CALL	.ASCPP		;CONVERT TO PPN - STORE (R3)
    105	000162	012612 				MOV	(SP)+,(R2)	;RESTORE ORIGINAL SIZE OF STRING OR 0
    106	000164	103001 				BCC	30$		;BRANCH IF CONVERSION OK
    107	000166	005013 			20$:	CLR	(R3)		;SAY NO FILE OWNER SPECIFIED
    108	000170				30$:	RETURN
    109					;
PIPSB1 M0210, COMMAND SUBROUTIN	MACRO M1113  27-FEB-85 12:29  PAGE 7-2
**** PIPSB1 VERSION M0210 ****

    110					;
    111		000001 				.END
PIPSB1 M0210, COMMAND SUBROUTIN	MACRO M1113  27-FEB-85 12:29  PAGE 7-3
SYMBOL TABLE

CPYCTL= ****** GX	IO.WAT= ****** GX	RATCTL= ****** GX	S.APPD= 000010   	$$    = 000067
FD.DIR= ****** GX	N.DEVD= 000000   	RDATT   000046RG    002	S.FIDS= 000014   	.ASCPP= ****** GX
FOWNBT= ****** GX	N.DIRD= 000004   	R$$DPB= 000001   	UN01MG= ****** GX	.FOWNR= ****** GX
F.DSPT= ****** GX	N.FLID= 000016   	R$$DYM= 000001   	UN01SZ= ****** GX	.GFOWN  000100RG    002
F.FNB = ****** GX	N.FNMD= 000010   	R$$EIS= 000000   	WRTATT  000000RG    002	.RDFDR= ****** GX
F.RCTL= ****** GX	N.SPEC= 000014   	R$$11M= 000001   	X     = 000026   	.XQIO = ****** GX
IO.RAT= ****** GX

. ABS.	000000	   000
      	000000	   001
PURE$I	000172	   002
ERRORS DETECTED:  0

VIRTUAL MEMORY USED:  2576 WORDS  ( 11 PAGES)
DYNAMIC MEMORY:  3566 WORDS  ( 13 PAGES)
ELAPSED TIME:  00:00:11
[43,10]PIPSB1,[43,20]PIPSB1/-SP/CR=[43,30]PIPMAC,PIPSB1
PIPSB1     CREATED BY  MACRO  ON 27-FEB-85 AT 12:29	PAGE 1

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

CPYCTL	= ******  GX	 7-91      
FD.DIR	= ******  GX	 7-93      
FOWNBT	= ******  GX	 7-91      
F.DSPT	= ******  GX	 7-95      
F.FNB 	= ******  GX	 7-36      
F.RCTL	= ******  GX	 7-93      
IO.RAT	= ******  GX	 7-68      
IO.WAT	= ******  GX	 7-41      
N.DEVD	= 000000	#7-22      
N.DIRD	= 000004	#7-22       7-96      
N.FLID	= 000016	#7-22      
N.FNMD	= 000010	#7-22      
N.SPEC	= 000014	#7-22      
RATCTL	= ******  GX	 7-62      
RDATT 	  000046 RG	#7-58      
RONLY$	= ******	 7-25       7-25      
R$$DPB	= 000001	#1-27       7-59      
R$$DYM	= 000001	#1-29      
R$$EIS	= 000000	#1-28       1-38      
R$$11M	= 000001	#1-25       1-26       7-1       
SYS40$	= ******	 1-67       7-25       7-25      
S.APPD	= 000010	#7-22      
S.FIDS	= 000014	#7-22      
UN01MG	= ******  GX	 7-46      
UN01SZ	= ******  GX	 7-46      
WRTATT	  000000 RG	#7-34      
X     	= 000026	#7-46       7-46      #7-46       7-46      #7-46       7-46      
$$    	= 000067	#7-42       7-42      #7-69       7-69      #7-100      7-100     #7-104      7-104     
.ASCPP	= ******  GX	 7-104      7-104     
.FOWNR	= ******  GX	 7-90      
.GFOWN	  000100 RG	#7-89      
.RDFDR	= ******  GX	 7-100      7-100     
.XQIO 	= ******  GX	 7-42       7-42       7-69       7-69      
PIPSB1     CREATED BY  MACRO  ON 27-FEB-85 AT 12:29	PAGE 2

MACRO CROSS REFERENCE                                   CREF         

MACRO NAME	REFERENCES

ASH   		#1-64      
ASHC  		#1-64      
CALL  		#7-23      #7-42      #7-69      #7-100     #7-104     
DIV   		#1-64      
ERRINI		#4-307     
ERROUT		#3-215      7-46      
ERROUX		#3-222     
ERROU1		#3-225     #7-46      
ERRP  		#3-247     
ERRPX 		#3-253     
ERRP1 		#3-256     
ERR1  		#3-273     #7-46      
FLDSOF		#5-382     #7-22      #7-22      
IDENT 		#5-339     #7-1       
IDENT1		#5-347      7-1       
IDTITL		#5-356     
ILLOP 		#1-52      #1-64       1-64      
IMPURE		#1-75      
MARK  		#1-64      
MSG   		#2-124     
MSGZ  		#2-129     
MSG1  		#2-133     
MUL   		#1-64      
NOEIS$		#1-39       1-64      
PURE. 		#1-84       7-25      
PURE.D		#1-102     
PURE.I		#1-98       7-25      
RETURN		#7-23       7-48       7-72       7-108     
RTT   		#1-64      
SOB   		#1-64      
SXT   		#1-64      
XOR   		#1-64      
PIPMSG M0015, ERROR MESSAGES FO	MACRO M1113  27-FEB-85 12:29
TABLE OF CONTENTS

     7-    1	**** PIPMSG VERSION M0015 ****
PIPMAC - MACROS FOR PIP, ETC.	MACRO M1113  27-FEB-85 12:29  PAGE 6


    397
PIPMSG M0015, ERROR MESSAGES FO	MACRO M1113  27-FEB-85 12:29  PAGE 7


      1						.TITLE	PIPMSG M0015, ERROR MESSAGES FOR PIP
						.SBTTL	**** PIPMSG VERSION M0015 ****
						.IDENT	/M0015/
      2					; ALTERED:
      3					; ANDREW C. GOLDSTEIN  3 FEB 75  12:40
      4					;
      5					; COPYRIGHT 1975, 1985, DIGITAL EQUIPMENT CORP., MAYNARD MASS.
      6					; COPYRIGHT 1973, DIGITAL EQUIPMENT CORP., MAYNARD MASS.
      7
      8					;			ALL RIGHTS RESERVED
      9					;
     10					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
     11					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
     12					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
     13					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
     14
     15					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
     16					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
     17					; EQUIPMENT CORPORATION.
     18
     19					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY
     20					; OF ITS SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
     21					;
     22					; PETER H. LIPMAN 18-SEP-73
     23					;
     24						.IF	NDF,R$$MSG
     25						.IF	EQ,R$$11M
     26						R$$MSG=1		;SEPARATE MESSAGE FILE FOR RSX11D
     27						.IFF
     28						R$$MSG=0		;MESSAGES IN CORE IMAGE FOR RSX11M
     29						.ENDC
     30						.ENDC
     31		000014 				FF=14
     32		000001 				MSGBL.=1		;FORCE GLOBAL DEFINITIONS
     33		000000 				MSGCT.=0		;INITIALIZE MESSAGE COUNTER
     34					;
     35					; NOTE: THE MESSAGE NAMES ARE 4 CHARACTERS. APPEND "MG"
     36					; TO THE NAME TO GET THE SYMBOLLIC ADDRESS OF THE MESSAGE.
     37					; APPEND "SZ" TO THE NAME TO GET THE SYMBOLLIC SIZE
     38
     39
     40					; COMMAND RECEIVER AND DISPATCHER ERRORS
     41	000000					MSG	CR01,<COMMAND SYNTAX ERROR>
     42	000000					MSG	CR02,<ILLEGAL SWITCH>
     43	000000					MSG	CR03,<TOO MANY COMMAND SWITCHES - AMBIGUOUS>
     44
     45					; COPY FILE ERRORS
     46	000000					MSG	CP01,<ONLY [*,*] IS LEGAL AS DESTINATION UIC>
     47	000000					MSG	CP02,<ILLEGAL COMMAND>
     48	000000					MSG	CP03,<ILLEGAL "*" COPY TO SAME DEVICE AND DIRECTORY>
     49	000000					MSG	CP04,<BAD USE OF WILD CARDS IN DESTINATION FILE NAME>
     50	000000					MSG	CP05,<EXPLICIT OUTPUT FILE NAME REQUIRED>
     51	000000					MSG	CP10,<ALLOCATION FAILURE - NO CONTIGUOUS SPACE>
     52	000000					MSG	CP11,<ALLOCATION FAILURE - NO SPACE AVAILABLE>
     53	000000					MSG	CP12,<ALLOCATION FAILURE ON OUTPUT FILE>
     54	000000					MSG	CP13,<I/O ERROR ON INPUT FILE>
     55	000000					MSG	CP14,<I/O ERROR ON OUTPUT FILE>
PIPMSG M0015, ERROR MESSAGES FO	MACRO M1113  27-FEB-85 12:29  PAGE 7-1
**** PIPMSG VERSION M0015 ****

     56	000000					MSG	CP15,<ILLEGAL USE OF WILD CARD VERSION>
     57					;
     58					; OPEN OR CLOSE FILE ERROR MESSAGES
     59	000000					MSG	OP01,<OPEN FAILURE ON INPUT FILE>
     60	000000					MSG	OP02,<OPEN FAILURE ON OUTPUT FILE>
     61	000000					MSG	OP04,<CLOSE FAILURE ON INPUT FILE>
     62	000000					MSG	OP05,<CLOSE FAILURE ON OUTPUT FILE>
     63	000000					MSG	OP06,<FAILED TO DETACH OUTPUT DEVICE>
     64	000000					MSG	OP07,<DEVICE NOT MOUNTED>
     65	000000					MSG	OP08,<OUTPUT FILE ALREADY EXISTS - NOT SUPERSEDED>
     66					;
     67					; DELETE ERROR MESSAGES
     68	000000					MSG	DE01,<FAILED TO MARK FILE FOR DELETE>
     69	000000					MSG	DE02,<FILE IS LOST>
     70	000000					MSG	DE04,<VERSION MUST BE EXPLICIT OR "*">
     71	000000					MSG	DE08,<ERROR FROM PARSE>
     72	000000					MSG	DE09,<FAILED TO DELETE FILE>
     73					;
     74					; SET UIC ERROR MESSAGES
     75		000000'				UI01MG==CR01MG
     76		000024 				UI01SZ==CR01SZ
     77					;
     78					; SET DEFAULT DEVICE OR UIC ERROR MESSAGES
     79		000000'				DF01MG==CR01MG
     80		000024 				DF01SZ==CR01SZ
     81					;
     82					; DIRECTORY LISTING ERRORS
     83	000000					MSG	DI05,<CANNOT FIND DIRECTORY FILE>
     84	000000					MSG	DI06,<FAILED TO ATTACH OUTPUT DEVICE>
     85	000000					MSG	DI07,<FAILED TO GET TIME PARAMETERS>
     86	000000					MSG	DI08,<NOT A DIRECTORY DEVICE>
     87					;
     88					; UNLOCK ERROR MESSAGES
     89	000000					MSG	UN01,<FAILED TO WRITE ATTRIBUTES>
     90	000000					MSG	UN02,<FAILED TO READ ATTRIBUTES>
     91	000000					MSG	UN03,<FILE NOT LOCKED>
     92		000000'				UN04MG==CR01MG
     93		000024 				UN04SZ==CR01SZ
     94					;
     95					; RENAME ERROR MESSAGES
     96	000000					MSG	RE02,<FAILED TO ENTER NEW FILE NAME>
     97	000000					MSG	RE03,<FAILED TO RESTORE ORIGINAL DIRECTORY ENTRY - FILE IS LOST>
     98	000000					MSG	RE04,<CANNOT RENAME FROM ONE DEVICE TO ANOTHER>
     99					;
    100					; SPOOL ERROR MESSAGES
    101	000000					MSG	SP01,<FAILED TO SPOOL FILE FOR PRINTING>
    102	000000					MSG	SP02,<CANNOT SPOOL BY FILE ID>
    103					;
    104					; FREE BLOCKS ERROR MESSAGES
    105	000000					MSG	FR01,<FAILED TO OPEN STORAGE BITMAP FILE>
    106					;
    107					; FIND ERROR MESSAGES
    108	000000					MSG	FI01,<FAILED TO FIND FILE(S)>
    109	000000					MSG	FI02,<CANNOT FIND FILE(S)>
    110	000000					MSG	FI03,<NO SUCH FILE(S)>
    111					;
    112					; REMOVE ERROR MESSAGES
PIPMSG M0015, ERROR MESSAGES FO	MACRO M1113  27-FEB-85 12:29  PAGE 7-2
**** PIPMSG VERSION M0015 ****

    113	000000					MSG	RM01,<FAILED TO REMOVE DIRECTORY ENTRY>
    114	000000					MSG	RM02,<DIRECTORY WRITE PROTECTED>
    115					;
    116					; DYNAMIC MEMORY ERROR MESSAGES
    117					;
    118	000000					MSG	DY01,<NOT ENOUGH BUFFER SPACE AVAILABLE>
    119					;
    120					;
    121		000001 				.END
PIPMSG M0015, ERROR MESSAGES FO	MACRO M1113  27-FEB-85 12:29  PAGE 7-3
SYMBOL TABLE

CP01MG= 000107RG    002	CP15SZ= 000040 G 	DI06MG= 001407RG    002	OP02MG= 000722RG    002	RM02SZ= 000031 G
CP01SZ= 000046 G 	CR01MG= 000000RG    002	DI06SZ= 000036 G 	OP02SZ= 000033 G 	R$$DPB= 000001
CP02MG= 000155RG    002	CR01SZ= 000024 G 	DI07MG= 001445RG    002	OP04MG= 000755RG    002	R$$DYM= 000001
CP02SZ= 000017 G 	CR02MG= 000024RG    002	DI07SZ= 000035 G 	OP04SZ= 000033 G 	R$$EIS= 000000
CP03MG= 000174RG    002	CR02SZ= 000016 G 	DI08MG= 001502RG    002	OP05MG= 001010RG    002	R$$MSG= 000000
CP03SZ= 000055 G 	CR03MG= 000042RG    002	DI08SZ= 000026 G 	OP05SZ= 000034 G 	R$$11M= 000001
CP04MG= 000251RG    002	CR03SZ= 000045 G 	DY01MG= 002343RG    002	OP06MG= 001044RG    002	SP01MG= 002030RG    002
CP04SZ= 000056 G 	DE01MG= 001177RG    002	DY01SZ= 000041 G 	OP06SZ= 000036 G 	SP01SZ= 000041 G
CP05MG= 000327RG    002	DE01SZ= 000036 G 	FF    = 000014   	OP07MG= 001102RG    002	SP02MG= 002071RG    002
CP05SZ= 000042 G 	DE02MG= 001235RG    002	FI01MG= 002162RG    002	OP07SZ= 000022 G 	SP02SZ= 000027 G
CP10MG= 000371RG    002	DE02SZ= 000014 G 	FI01SZ= 000026 G 	OP08MG= 001124RG    002	UI01MG= 000000RG    002
CP10SZ= 000050 G 	DE04MG= 001251RG    002	FI02MG= 002210RG    002	OP08SZ= 000053 G 	UI01SZ= 000024 G
CP11MG= 000441RG    002	DE04SZ= 000037 G 	FI02SZ= 000023 G 	RE02MG= 001632RG    002	UN01MG= 001530RG    002
CP11SZ= 000047 G 	DE08MG= 001310RG    002	FI03MG= 002233RG    002	RE02SZ= 000035 G 	UN01SZ= 000032 G
CP12MG= 000510RG    002	DE08SZ= 000020 G 	FI03SZ= 000017 G 	RE03MG= 001667RG    002	UN02MG= 001562RG    002
CP12SZ= 000041 G 	DE09MG= 001330RG    002	FR01MG= 002120RG    002	RE03SZ= 000071 G 	UN02SZ= 000031 G
CP13MG= 000551RG    002	DE09SZ= 000025 G 	FR01SZ= 000042 G 	RE04MG= 001760RG    002	UN03MG= 001613RG    002
CP13SZ= 000027 G 	DF01MG= 000000RG    002	MSGBL.= 000001   	RE04SZ= 000050 G 	UN03SZ= 000017 G
CP14MG= 000600RG    002	DF01SZ= 000024 G 	MSGCT.= 000000   	RM01MG= 002252RG    002	UN04MG= 000000RG    002
CP14SZ= 000030 G 	DI05MG= 001355RG    002	OP01MG= 000670RG    002	RM01SZ= 000040 G 	UN04SZ= 000024 G
CP15MG= 000630RG    002	DI05SZ= 000032 G 	OP01SZ= 000032 G 	RM02MG= 002312RG    002

. ABS.	000000	   000
      	000000	   001
MSGSTR	002404	   002
ERRORS DETECTED:  0

VIRTUAL MEMORY USED:  3156 WORDS  ( 13 PAGES)
DYNAMIC MEMORY:  4622 WORDS  ( 17 PAGES)
ELAPSED TIME:  00:00:20
[43,10]PIPMSG,[43,20]PIPMSG/-SP/CR=[43,30]PIPMAC,PIPMSG
PIPMSG     CREATED BY  MACRO  ON 27-FEB-85 AT 12:29	PAGE 1

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

CP01MG	= 000107 RG	#7-46       7-46       7-46      
CP01SZ	= 000046  G	#7-46       7-46      
CP02MG	= 000155 RG	#7-47       7-47       7-47      
CP02SZ	= 000017  G	#7-47       7-47      
CP03MG	= 000174 RG	#7-48       7-48       7-48      
CP03SZ	= 000055  G	#7-48       7-48      
CP04MG	= 000251 RG	#7-49       7-49       7-49      
CP04SZ	= 000056  G	#7-49       7-49      
CP05MG	= 000327 RG	#7-50       7-50       7-50      
CP05SZ	= 000042  G	#7-50       7-50      
CP10MG	= 000371 RG	#7-51       7-51       7-51      
CP10SZ	= 000050  G	#7-51       7-51      
CP11MG	= 000441 RG	#7-52       7-52       7-52      
CP11SZ	= 000047  G	#7-52       7-52      
CP12MG	= 000510 RG	#7-53       7-53       7-53      
CP12SZ	= 000041  G	#7-53       7-53      
CP13MG	= 000551 RG	#7-54       7-54       7-54      
CP13SZ	= 000027  G	#7-54       7-54      
CP14MG	= 000600 RG	#7-55       7-55       7-55      
CP14SZ	= 000030  G	#7-55       7-55      
CP15MG	= 000630 RG	#7-56       7-56       7-56      
CP15SZ	= 000040  G	#7-56       7-56      
CR01MG	= 000000 RG	#7-41       7-41       7-41       7-75       7-79       7-92      
CR01SZ	= 000024  G	#7-41       7-41       7-76       7-80       7-93      
CR02MG	= 000024 RG	#7-42       7-42       7-42      
CR02SZ	= 000016  G	#7-42       7-42      
CR03MG	= 000042 RG	#7-43       7-43       7-43      
CR03SZ	= 000045  G	#7-43       7-43      
DE01MG	= 001177 RG	#7-68       7-68       7-68      
DE01SZ	= 000036  G	#7-68       7-68      
DE02MG	= 001235 RG	#7-69       7-69       7-69      
DE02SZ	= 000014  G	#7-69       7-69      
DE04MG	= 001251 RG	#7-70       7-70       7-70      
DE04SZ	= 000037  G	#7-70       7-70      
DE08MG	= 001310 RG	#7-71       7-71       7-71      
DE08SZ	= 000020  G	#7-71       7-71      
DE09MG	= 001330 RG	#7-72       7-72       7-72      
DE09SZ	= 000025  G	#7-72       7-72      
DF01MG	= 000000 RG	#7-79      
DF01SZ	= 000024  G	#7-80      
DI05MG	= 001355 RG	#7-83       7-83       7-83      
DI05SZ	= 000032  G	#7-83       7-83      
DI06MG	= 001407 RG	#7-84       7-84       7-84      
DI06SZ	= 000036  G	#7-84       7-84      
DI07MG	= 001445 RG	#7-85       7-85       7-85      
DI07SZ	= 000035  G	#7-85       7-85      
DI08MG	= 001502 RG	#7-86       7-86       7-86      
DI08SZ	= 000026  G	#7-86       7-86      
DY01MG	= 002343 RG	#7-118      7-118      7-118     
DY01SZ	= 000041  G	#7-118      7-118     
FF    	= 000014	#7-31      
FI01MG	= 002162 RG	#7-108      7-108      7-108     
PIPMSG     CREATED BY  MACRO  ON 27-FEB-85 AT 12:29	PAGE 2

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

FI01SZ	= 000026  G	#7-108      7-108     
FI02MG	= 002210 RG	#7-109      7-109      7-109     
FI02SZ	= 000023  G	#7-109      7-109     
FI03MG	= 002233 RG	#7-110      7-110      7-110     
FI03SZ	= 000017  G	#7-110      7-110     
FR01MG	= 002120 RG	#7-105      7-105      7-105     
FR01SZ	= 000042  G	#7-105      7-105     
MSGBL.	= 000001	#7-32       7-41       7-42       7-43       7-46       7-47       7-48       7-49       7-50      
                         7-51       7-52       7-53       7-54       7-55       7-56       7-59       7-60       7-61      
                         7-62       7-63       7-64       7-65       7-68       7-69       7-70       7-71       7-72      
                         7-83       7-84       7-85       7-86       7-89       7-90       7-91       7-96       7-97      
                         7-98       7-101      7-102      7-105      7-108      7-109      7-110      7-113      7-114     
                         7-118     
MSGCT.	= 000000	#7-33      
OP01MG	= 000670 RG	#7-59       7-59       7-59      
OP01SZ	= 000032  G	#7-59       7-59      
OP02MG	= 000722 RG	#7-60       7-60       7-60      
OP02SZ	= 000033  G	#7-60       7-60      
OP04MG	= 000755 RG	#7-61       7-61       7-61      
OP04SZ	= 000033  G	#7-61       7-61      
OP05MG	= 001010 RG	#7-62       7-62       7-62      
OP05SZ	= 000034  G	#7-62       7-62      
OP06MG	= 001044 RG	#7-63       7-63       7-63      
OP06SZ	= 000036  G	#7-63       7-63      
OP07MG	= 001102 RG	#7-64       7-64       7-64      
OP07SZ	= 000022  G	#7-64       7-64      
OP08MG	= 001124 RG	#7-65       7-65       7-65      
OP08SZ	= 000053  G	#7-65       7-65      
RE02MG	= 001632 RG	#7-96       7-96       7-96      
RE02SZ	= 000035  G	#7-96       7-96      
RE03MG	= 001667 RG	#7-97       7-97       7-97      
RE03SZ	= 000071  G	#7-97       7-97      
RE04MG	= 001760 RG	#7-98       7-98       7-98      
RE04SZ	= 000050  G	#7-98       7-98      
RM01MG	= 002252 RG	#7-113      7-113      7-113     
RM01SZ	= 000040  G	#7-113      7-113     
RM02MG	= 002312 RG	#7-114      7-114      7-114     
RM02SZ	= 000031  G	#7-114      7-114     
RONLY$	= ******	 7-41       7-41       7-42       7-42       7-43       7-43       7-46       7-46       7-47      
                         7-47       7-48       7-48       7-49       7-49       7-50       7-50       7-51       7-51      
                         7-52       7-52       7-53       7-53       7-54       7-54       7-55       7-55       7-56      
                         7-56       7-59       7-59       7-60       7-60       7-61       7-61       7-62       7-62      
                         7-63       7-63       7-64       7-64       7-65       7-65       7-68       7-68       7-69      
                         7-69       7-70       7-70       7-71       7-71       7-72       7-72       7-83       7-83      
                         7-84       7-84       7-85       7-85       7-86       7-86       7-89       7-89       7-90      
                         7-90       7-91       7-91       7-96       7-96       7-97       7-97       7-98       7-98      
                         7-101      7-101      7-102      7-102      7-105      7-105      7-108      7-108      7-109     
                         7-109      7-110      7-110      7-113      7-113      7-114      7-114      7-118      7-118     
R$$DPB	= 000001	#1-27      
R$$DYM	= 000001	#1-29      
R$$EIS	= 000000	#1-28       1-38      
R$$MSG	= 000000	 7-24       7-41       7-41       7-42       7-42       7-43       7-43       7-46       7-46      
PIPMSG     CREATED BY  MACRO  ON 27-FEB-85 AT 12:29	PAGE 3

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

                         7-47       7-47       7-48       7-48       7-49       7-49       7-50       7-50       7-51      
                         7-51       7-52       7-52       7-53       7-53       7-54       7-54       7-55       7-55      
                         7-56       7-56       7-59       7-59       7-60       7-60       7-61       7-61       7-62      
                         7-62       7-63       7-63       7-64       7-64       7-65       7-65       7-68       7-68      
                         7-69       7-69       7-70       7-70       7-71       7-71       7-72       7-72       7-83      
                         7-83       7-84       7-84       7-85       7-85       7-86       7-86       7-89       7-89      
                         7-90       7-90       7-91       7-91       7-96       7-96       7-97       7-97       7-98      
                         7-98       7-101      7-101      7-102      7-102      7-105      7-105      7-108      7-108     
                         7-109      7-109      7-110      7-110      7-113      7-113      7-114      7-114      7-118     
                         7-118     
R$$11M	= 000001	#1-25       1-26       7-1       
SP01MG	= 002030 RG	#7-101      7-101      7-101     
SP01SZ	= 000041  G	#7-101      7-101     
SP02MG	= 002071 RG	#7-102      7-102      7-102     
SP02SZ	= 000027  G	#7-102      7-102     
SYS40$	= ******	 1-67       7-41       7-41       7-42       7-42       7-43       7-43       7-46       7-46      
                         7-47       7-47       7-48       7-48       7-49       7-49       7-50       7-50       7-51      
                         7-51       7-52       7-52       7-53       7-53       7-54       7-54       7-55       7-55      
                         7-56       7-56       7-59       7-59       7-60       7-60       7-61       7-61       7-62      
                         7-62       7-63       7-63       7-64       7-64       7-65       7-65       7-68       7-68      
                         7-69       7-69       7-70       7-70       7-71       7-71       7-72       7-72       7-83      
                         7-83       7-84       7-84       7-85       7-85       7-86       7-86       7-89       7-89      
                         7-90       7-90       7-91       7-91       7-96       7-96       7-97       7-97       7-98      
                         7-98       7-101      7-101      7-102      7-102      7-105      7-105      7-108      7-108     
                         7-109      7-109      7-110      7-110      7-113      7-113      7-114      7-114      7-118     
                         7-118     
UI01MG	= 000000 RG	#7-75      
UI01SZ	= 000024  G	#7-76      
UN01MG	= 001530 RG	#7-89       7-89       7-89      
UN01SZ	= 000032  G	#7-89       7-89      
UN02MG	= 001562 RG	#7-90       7-90       7-90      
UN02SZ	= 000031  G	#7-90       7-90      
UN03MG	= 001613 RG	#7-91       7-91       7-91      
UN03SZ	= 000017  G	#7-91       7-91      
UN04MG	= 000000 RG	#7-92      
UN04SZ	= 000024  G	#7-93      
PIPMSG     CREATED BY  MACRO  ON 27-FEB-85 AT 12:29	PAGE 4

MACRO CROSS REFERENCE                                   CREF         

MACRO NAME	REFERENCES

ASH   		#1-64      
ASHC  		#1-64      
DIV   		#1-64      
ERRINI		#4-307     
ERROUT		#3-215     
ERROUX		#3-222     
ERROU1		#3-225     
ERRP  		#3-247     
ERRPX 		#3-253     
ERRP1 		#3-256     
ERR1  		#3-273     
FLDSOF		#5-382     
IDENT 		#5-339     #7-1       
IDENT1		#5-347      7-1       
IDTITL		#5-356     
ILLOP 		#1-52      #1-64       1-64      
IMPURE		#1-75      
MARK  		#1-64      
MSG   		#2-124     #7-41      #7-42      #7-43      #7-46      #7-47      #7-48      #7-49      #7-50      #7-51      
                #7-52      #7-53      #7-54      #7-55      #7-56      #7-59      #7-60      #7-61      #7-62      #7-63      
                #7-64      #7-65      #7-68      #7-69      #7-70      #7-71      #7-72      #7-83      #7-84      #7-85      
                #7-86      #7-89      #7-90      #7-91      #7-96      #7-97      #7-98      #7-101     #7-102     #7-105     
                #7-108     #7-109     #7-110     #7-113     #7-114     #7-118     
MSGZ  		#2-129     
MSG1  		#2-133     #7-41      #7-42      #7-43      #7-46      #7-47      #7-48      #7-49      #7-50      #7-51      
                #7-52      #7-53      #7-54      #7-55      #7-56      #7-59      #7-60      #7-61      #7-62      #7-63      
                #7-64      #7-65      #7-68      #7-69      #7-70      #7-71      #7-72      #7-83      #7-84      #7-85      
                #7-86      #7-89      #7-90      #7-91      #7-96      #7-97      #7-98      #7-101     #7-102     #7-105     
                #7-108     #7-109     #7-110     #7-113     #7-114     #7-118     
MUL   		#1-64      
NOEIS$		#1-39       1-64      
PURE. 		#1-84       7-41       7-42       7-43       7-46       7-47       7-48       7-49       7-50       7-51      
                 7-52       7-53       7-54       7-55       7-56       7-59       7-60       7-61       7-62       7-63      
                 7-64       7-65       7-68       7-69       7-70       7-71       7-72       7-83       7-84       7-85      
                 7-86       7-89       7-90       7-91       7-96       7-97       7-98       7-101      7-102      7-105     
                 7-108      7-109      7-110      7-113      7-114      7-118     
PURE.D		#1-102     
PURE.I		#1-98      
RTT   		#1-64      
SOB   		#1-64      
SXT   		#1-64      
XOR   		#1-64      
PRSFND M0114, PARSE, FIND, ETC.	MACRO M1113  27-FEB-85 12:32
TABLE OF CONTENTS

     7-    1	**** PRSFND VERSION M0114 ****
     8-   48	.WPARS - WILD CARD UIC PARSE
    10-  101	.FNDNX - FIND THE NEXT FILE
    11-  184	.NXDIR - FIND NEXT WILD CARD DIRECTORY
    12-  275	.WLDVC - CHECK FOR WILD CARDS WITH DEFAULT VERSION
    13-  302	USEFUL SUBROUTINES
PIPMAC - MACROS FOR PIP, ETC.	MACRO M1113  27-FEB-85 12:32  PAGE 6


    397
PRSFND M0114, PARSE, FIND, ETC.	MACRO M1113  27-FEB-85 12:32  PAGE 7


      1						.TITLE	PRSFND M0114, PARSE, FIND, ETC.
						.SBTTL	**** PRSFND VERSION M0114 ****
						.IDENT	/M0114/
      2					; ALTERED THURSDAY 22-AUG-74 12:10
      3					;
      4					; COPYRIGHT 1975, 1985, DIGITAL EQUIPMENT CORP., MAYNARD MASS.
      5					; COPYRIGHT 1974, DIGITAL EQUIPMENT CORP., MAYNARD MASS.
      6
      7					;			ALL RIGHTS RESERVED
      8					;
      9					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
     10					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
     11					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
     12					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
     13
     14					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
     15					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
     16					; EQUIPMENT CORPORATION.
     17
     18					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY
     19					; OF ITS SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
     20					;
     21					; PETER H. LIPMAN 12-JUNE 73
     22					;
     23						.MCALL	NBOF$L,IOERR$,FILIO$
     24	000000					NBOF$L			;DEFINE FNB OFFSETS LOCALLY
     25	000000					IOERR$			;DEFINE I/O ERROR CODES LOCALLY
     26	000000					FILIO$			;DEFINE THE I/O FUNCTION CODES LOCALLY
     27					;
     28						.MCALL	CALL,RETURN,FDBDF$,FDAT$A,FDOP$A,FCSBT$
     29					;
     30	000000					FCSBT$	DEF$L
     31	000000					FLDSOF			;DEFINE FILE DESCRIPTOR OFFSETS
     32					;
     33		000400 				NB.SD1=400		;WILD CARD IN PROJECT #
     34		001000 				NB.SD2=1000		;WILD CARD IN PROGRAMMER #
     35		001400 				NB.SDI=NB.SD1!NB.SD2	;WILD CARD IN DIRECTORY
     36					;
     37					; SCRATCH STORAGE FOR WILD UIC LOGIC CONSISTS
     38					; OF A FILE NAME BLOCK FOLLOWED BY THE FOLLOWING EXTRA WORDS
     39		000036 				N.WNM1=S.FNB		;2 WORDS FOR RAD50 NON WILD CARD
     40									;PROJECT OR PROGRAMMER NAME
     41		000042 				N.WNM2=N.WNM1+4		;5 WORDS OF STRING STORAGE FOR
     42									;ASCII FORM OF CURRENT DIRECTORY NAME
     43		000054 				S.WUIC=S.FNB+14.	;NO. OF BYTES IN SCRATCH AREA
     44					;
     45		015172 				DIRTYP=<'D-100>*50*50+<<'I-100>*50>+<'R-100> ;.RAD50 DIR
     46		140116 				MFDNAM=<'0-22>*50*50+<<'0-22>*50>+<'0-22> ;.RAD50 000
PRSFND M0114, PARSE, FIND, ETC.	MACRO M1113  27-FEB-85 12:32  PAGE 8
.WPARS - WILD CARD UIC PARSE

     48						.SBTTL	.WPARS - WILD CARD UIC PARSE
     49					;
     50	000000					PURE.I
     51					;+
     52					; WILD CARD UIC PARSE
     53					; CALLING SEQUENCE:
     54					;	CALL	.WPARS
     55					; INPUTS:
     56					;	R0=FDB
     57					;	R1=FILE NAME BLOCK ADDRESS
     58					;	R2=FILE DESCRIPTOR POINTER
     59					;	R3=DEFAULT FILE NAME BLOCK
     60					;	R4=ADDR OF SCRATCH AREA FOR WILD UIC LOGIC
     61					; OUTPUTS:
     62					;	C=0 IF SUCCESSFUL, C=1 IF ERROR
     63					;	ALL REGISTERS PRESERVED
     64					; OPERATION:
     65					;	PERFORMS A NORMAL CALL TO .PARSE, AND IF A BAD DIRECTORY
     66					; INDICATION IS RETURNED, ATTEMPTS TO PARSE AND SET UP FOR WILD UIC'S
     67					; IF A SUCCESSFUL INDICATION IS RETURNED, THE DIRECTORY ID
     68					; IS SET UP POINTING AT THE FIRST DIRECTORY TO BE USED
     69					;-
     70	000000	012764 	000050 	000020 	.WPARS::MOV	#NB.SNM!NB.SVR,N.STAT(R4)
     71	000006					CALL	.PARSE
     72	000012	103056 				BCC	60$		;BRANCH IF PARSE SUCCESSFUL
     73	000014	122760 	177714 	000000G		CMPB	#IE.BDI,F.ERR(R0) ;BAD DIRECTORY NAME?
     74	000022	001051 				BNE	58$		;BRANCH IF NO, REPORT ERROR
     75					; SEE IF WILD CARD DIRECTORY NAME
     76	000024	005762 	000004 			TST	N.DIRD(R2)	;IF NULL DIRECTORY DESCRIPTOR
     77	000030	001446 				BEQ	58$		;THEN REPORT ERROR
     78	000032					CALL	PRSDIR
     79	000036	103444 				BCS	60$		;BRANCH IF BAD DIRECTORY SYNTAX
     80	000040	032764 	001400 	000020 		BIT	#NB.SDI,N.STAT(R4)
     81	000046	001437 				BEQ	58$		;BRANCH IF NO WILD UIC'S
     82					; IT'S A WILD CARD DIRECTORY NAME
     83	000050	012764 	015172 	000014 		MOV	#DIRTYP,N.FTYP(R4) ;FILE TYPE "DIR"
     84	000056	005064 	000022 			CLR	N.NEXT(R4)
     85	000062	012764 	177777 	000024 		MOV	#-1,N.DID(R4)	;DOING FIND'S IN MFD
     86	000070	012764 	177777 	000026 		MOV	#-1,N.DID+2(R4)
     87	000076	005064 	000030 			CLR	N.DID+4(R4)
     88	000102	016164 	000032 	000032 		MOV	N.DVNM(R1),N.DVNM(R4)
     89	000110	016164 	000034 	000034 		MOV	N.UNIT(R1),N.UNIT(R4)
     90	000116					CALL	.NXDIR		;SET UP TO USE THE NEXT DIRECTORY
     91	000122	103412 				BCS	60$
     92	000124					CALL	.PARSE
     93	000130	016446 	000020 			MOV	N.STAT(R4),-(SP)
     94	000134	042716 	176377 			BIC	#^C<NB.SDI>,@SP
     95	000140	052661 	000020 			BIS	(SP)+,N.STAT(R1) ;SET WILD DIR BITS IN FNB STATUS
     96	000144					RETURN
     97	000146	000261 			58$:	SEC
     98	000150				60$:	RETURN
PRSFND M0114, PARSE, FIND, ETC.	MACRO M1113  27-FEB-85 12:32  PAGE 10
.FNDNX - FIND THE NEXT FILE

    101						.SBTTL	.FNDNX - FIND THE NEXT FILE
    102					;+
    103					; FIND THE NEXT FILE IN THIS (OR NEXT) DIRECTORY
    104					; CALLING SEQUENCE:
    105					;	CALL	.FNDNX
    106					; INPUTS:
    107					;	R0=FDB ADDRESS
    108					;	R1=FILE NAME BLOCK ADDRESS
    109					;	R2=ADDRESS OF SCRATCH BLOCK FOR UIC WILD CARD LOGIC
    110					; OUPUTS:
    111					;	C=0 IF SUCCESSFUL, C=1 IF FAILURE
    112					;	ALL REGISTERS PRESERVED
    113					; OPERATION:
    114					;	FINDS THE NEXT FILE IN THE CURRENT DIRECTORY (EVEN IF
    115					; WILD CARD NAME, TYPE AND DEFAULT VERSION).  OPTIONALLY WILL
    116					; CROSS TO THE NEXT WILD CARD DIRECTORY IF R2 NON ZERO (AND
    117					; IF WILD CARD UIC'S ARE PRESENT).
    118					;-
    119	000152				.FNDNX::CALL	.WLDVC		;WILD CARDS WITH DEFAULT VERSION?
    120	000156	103403 				BCS	FNDNX1		;BRANCH IF YES
    121	000160					CALL	.FIND
    122	000164	000470 				BR	FNDNX2
    123					;
    124					; HANDLE THE SPECIAL CASE OF WILD CARD FIND OF NEWEST OR OLDEST VERSION
    125	000166	005761 	000022 		FNDNX1:	TST	N.NEXT(R1)	;FIRST FILE IN CLASS?
    126	000172	001003 				BNE	10$		;BRANCH IF NOT
    127	000174					CALL	TDRINI		;YES, INIT TEMP DIRECTORY
    128	000200	103444 				BCS	40$		;BRANCH IF FAILED
    129	000202	016146 	000016 		10$:	MOV	N.FVER(R1),-(SP)
    130	000206	016146 	000020 		20$:	MOV	N.STAT(R1),-(SP)
    131	000212	052761 	000010 	000020 		BIS	#NB.SVR,N.STAT(R1) ;FIND ANY VERSION FIRST
    132	000220					CALL	.FIND
    133	000224	103441 				BCS	60$		;BRANCH IF NO MORE FILES
    134	000226	016146 	000022 			MOV	N.NEXT(R1),-(SP)
    135	000232	005061 	000020 			CLR	N.STAT(R1)
    136	000236	005061 	000022 			CLR	N.NEXT(R1)
    137	000242	016661 	000004 	000016 		MOV	4(SP),N.FVER(R1) ;SAVED FILE VERSION (0 OR -1)
    138	000250					CALL	.FIND		;FIND NEWEST (OR OLDEST)
    139	000254	103422 				BCS	50$		;BRANCH IF FAILED (SHOULDN'T HAPPEN)
    140	000256					CALL	TDRENT		;HAVE WE ALREADY FOUND THIS ONE
    141	000262	012661 	000022 			MOV	(SP)+,N.NEXT(R1)
    142	000266	012661 	000020 			MOV	(SP)+,N.STAT(R1)
    143	000272	103402 				BCS	30$
    144	000274	005726 				TST	(SP)+		;POP THE SAVED VERSION
    145	000276	000454 				BR	FNDNX3
    146					; IF DUPLICATE ERROR, WE'VE SEEN THIS FILE BEFORE, DON'T "FIND" IT AGAIN
    147	000300	122767 	177707 	000000C	30$:	CMPB	#IE.DUP,TDRFDB+F.ERR
    148	000306	001737 				BEQ	20$		;GO FIND ANOTHER
    149	000310	005726 				TST	(SP)+
    150					;
    151					; ERROR FROM INIT OR ENTER IN TMP DIRECTORY
    152	000312	116760 	000000C	000000G	40$:	MOVB	TDRFDB+F.ERR,F.ERR(R0)
    153	000320	000411 				BR	70$
    154					;
    155					; COULDN'T FIND NEWEST OR OLDEST VERSION - CAN'T THINK OF A REASON
    156	000322	012661 	000022 		50$:	MOV	(SP)+,N.NEXT(R1)
    157	000326	000402 				BR	65$
PRSFND M0114, PARSE, FIND, ETC.	MACRO M1113  27-FEB-85 12:32  PAGE 10-1
.FNDNX - FIND THE NEXT FILE

    158					;
    159					; FAILED TO FIND NEXT FILE IN CLASS, ALL DONE
    160	000330				60$:	CALL	TDRDEL		;DELETE THE TEMP DIRECTORY
    161	000334	012661 	000020 		65$:	MOV	(SP)+,N.STAT(R1)
    162	000340	012661 	000016 			MOV	(SP)+,N.FVER(R1)
    163	000344	000261 			70$:	SEC
    164	000346	103030 			FNDNX2:	BCC	FNDNX3
    165	000350	005702 				TST	R2		;ALLOWED TO CROSS DIRECTORIES\?
    166	000352	001425 				BEQ	20$		;BRANCH IF NOT
    167	000354	032761 	001400 	000020 		BIT	#NB.SDI,N.STAT(R1) ;ANY WILD UIC'S
    168	000362	001421 				BEQ	20$		;BRANCH IF NOT
    169	000364	122760 	177746 	000000G		CMPB	#IE.NSF,F.ERR(R0) ;IF "NO SUCH FILE"
    170	000372	001015 				BNE	20$		;BRANCH IF NOT
    171	000374	010346 				MOV	R3,-(SP)
    172	000376	010446 				MOV	R4,-(SP)
    173	000400	010204 				MOV	R2,R4
    174	000402	016002 	000000G			MOV	F.DSPT(R0),R2
    175	000406	016003 	000000G			MOV	F.DFNB(R0),R3
    176	000412					CALL	.NXDIR
    177	000416	010402 				MOV	R4,R2
    178	000420	012604 				MOV	(SP)+,R4
    179	000422	012603 				MOV	(SP)+,R3
    180	000424	103252 				BCC	.FNDNX		;IF FOUND NEW DIRECTORY, FIND NEXT FILE
    181	000426	000261 			20$:	SEC
    182	000430				FNDNX3:	RETURN
PRSFND M0114, PARSE, FIND, ETC.	MACRO M1113  27-FEB-85 12:32  PAGE 11
.NXDIR - FIND NEXT WILD CARD DIRECTORY

    184						.SBTTL	.NXDIR - FIND NEXT WILD CARD DIRECTORY
    185					;+
    186					; SET UP FOR NEXT WILD CARD DIRECTORY
    187					; CALLING SEQUENCE:
    188					;	CALL	.NXDIR
    189					; INPUTS:
    190					;	R0=FDB ADDRESS
    191					;	R1=FILE NAME BLOCK ADDRESS
    192					;	R2=FILE DESCRIPTOR POINTER
    193					;	R3=DEFAULT FILE NAME BLOCK
    194					;	R4=ADDR OF SCRATCH AREA FOR WILD UIC LOGIC
    195					; OUTPUTS:
    196					;	C=0 IF SUCCESSFUL, C=1 IF FAILED
    197					;	ALL REGISTERS PRESERVED
    198					; OPERATION:
    199					;	FINDS THE NEXT DIRECTORY THAT MEETS THE WILD CARD CRITERIA
    200					; IF ONLY THE PROJECT # WAS WILD, THEN THE PROG NAMES MUST MATCH
    201					; AND VICE-VERSA.  DIRECTORY NAMES OF MORE THAN 6 CHARS WILL NOT
    202					; SATISFY THE MATCH, AND LIKEWISE, ANY NAME BEGINNING WITH 000
    203					; (RAD50) WILL ALSO NOT MATCH.  THIS MEANS THE MFD WILL
    204					; NOT BE FOUND.
    205					;	WHEN A DIRECTORY IS FOUND, IT'S ID IS PLACED
    206					; IN THE DIRECTORY ID SLOT IN THE FILE NAME BLOCK.
    207					; ALSO THE DIRECTORY STRING IS GENERATED AND POINTED TO BY F.DSPT
    208					; IF PRESENT, OR THE DIRECTORY ID IS PUT INTO THE
    209					; DEFAULT NAME BLOCK IF IT IS PRESENT.
    210					;-
    211	000432	032764 	001400 	000020 	.NXDIR::BIT	#NB.SDI,N.STAT(R4) ;WILD CARD UIC'S?
    212	000440	001522 				BEQ	50$		;BRANCH IF NO
    213	000442					CALL	$SAVAL
    214	000446	010146 			10$:	MOV	R1,-(SP)
    215	000450	010401 				MOV	R4,R1
    216	000452					CALL	.FIND		;FIND THE NEXT DIRECTORY
    217	000456	012601 				MOV	(SP)+,R1
    218	000460	103516 				BCS	60$
    219					; FOUND ONE, SEE IF IT MATCHE OUR REQUIREMENTS
    220	000462	022764 	140116 	000006 		CMP	#MFDNAM,N.FNAM(R4) ;DON'T ALLOW MFD
    221	000470	001766 				BEQ	10$
    222	000472	005764 	000012 			TST	N.FNAM+4(R4)	;NO 7-9 CHAR NAMES
    223	000476	001363 				BNE	10$
    224					; MATCH PROJ OR PROG NAME IF NECESSARY
    225	000500	032764 	000400 	000020 		BIT	#NB.SD1,N.STAT(R4) ;WILD CARD PROJ #?
    226	000506	001004 				BNE	20$		;BRANCH IF YES
    227	000510	026464 	000036 	000006 		CMP	N.WNM1(R4),N.FNAM(R4)
    228	000516	001353 				BNE	10$		;BRANCH IF PROJ NAMES DISAGREE
    229	000520	032764 	001000 	000020 	20$:	BIT	#NB.SD2,N.STAT(R4) ;WILD CARD PROGRAMMER #?
    230	000526	001004 				BNE	30$		;BRANCH IF YES
    231	000530	026464 	000040 	000010 		CMP	N.WNM1+2(R4),N.FNAM+2(R4)
    232	000536	001343 				BNE	10$		;BRANCH IF PROG NAMES DISAGREE
    233					; THIS DIRECTORY IS JUST FINE, SET UP THE FILE NAME BLOCK DIRECTORY ID
    234					; AND ALSO SET THE DIR NAME POINTER IN F.DSPT IF PRESENT
    235					; OR THE DIRECTORY ID IN F.DFNB IF F.DSPT IS 0
    236	000540	016461 	000000 	000024 	30$:	MOV	N.FID(R4),N.DID(R1)
    237	000546	016461 	000002 	000026 		MOV	N.FID+2(R4),N.DID+2(R1)
    238	000554	016461 	000004 	000030 		MOV	N.FID+4(R4),N.DID+4(R1)
    239	000562	005061 	000022 			CLR	N.NEXT(R1)	;START AT BEGINNING OF DIRECTORY
    240					; SET UP STRING WITH DIRECTORY NAME, AND POINT TO IT FROM
PRSFND M0114, PARSE, FIND, ETC.	MACRO M1113  27-FEB-85 12:32  PAGE 11-1
.NXDIR - FIND NEXT WILD CARD DIRECTORY

    241					; THE FILE DESCRIPTOR POINTER
    242	000566	010205 				MOV	R2,R5		;SAVE THE FILE DECRIPTOR POINTER
    243	000570	001432 				BEQ	40$		;SKIP THIS IF NULL POINTER
    244	000572	010400 				MOV	R4,R0
    245	000574	062700 	000042 			ADD	#N.WNM2,R0	;R0=ADDRESS OF STRING AREA
    246	000600	016401 	000006 			MOV	N.FNAM(R4),R1	;R1=1ST RAD50 FILE NAME WORD
    247	000604					CALL	C5TB		;CONVERT RAD50 TO BINARY IN R1
    248	000610	010146 				MOV	R1,-(SP)	;SAVE PROJECT #
    249	000612	016401 	000010 			MOV	N.FNAM+2(R4),R1
    250	000616					CALL	C5TB		;CONVERT 2ND RAD50 WORD
    251	000622	005003 				CLR	R3
    252	000624	152603 				BISB	(SP)+,R3	;PROJECT #
    253	000626	000303 				SWAB	R3
    254	000630	150103 				BISB	R1,R3		;R3 =.BYTE PROG#,PROJ#
    255	000632	010002 				MOV	R0,R2		;R2=SCRATCH AREA STRING ADR
    256	000634	005004 				CLR	R4
    257	000636					CALL	.PPASC		;PPN TO ASCII STRING
    258	000642	010065 	000006 			MOV	R0,N.DIRD+2(R5)	;R5=F.DSPT, STORE STRING ADDRESS
    259	000646	160002 				SUB	R0,R2		;CALCULATE DIRECTORY STRING SIZE
    260	000650	010265 	000004 			MOV	R2,N.DIRD(R5)	;AND STORE IT IN F.DSPT
    261	000654	000420 				BR	60$
    262					;
    263					; SET DIRECTORY ID IN DEFAULT NAME BLOCK, SINCE THERE
    264					; WAS NO FILE DESCRIPTOR POINTER TO PUT A STRING IN
    265	000656	005703 			40$:	TST	R3		;ANY DEFAULT FILE NAME BLOCK?
    266	000660	001416 				BEQ	60$		;BRANCH IF NO
    267	000662	016463 	000000 	000024 		MOV	N.FID(R4),N.DID(R3)
    268	000670	016463 	000002 	000026 		MOV	N.FID+2(R4),N.DID+2(R3)
    269	000676	016463 	000004 	000030 		MOV	N.FID+4(R4),N.DID+4(R3)
    270	000704					RETURN
    271	000706	112760 	177746 	000000G	50$:	MOVB	#IE.NSF,F.ERR(R0)
    272	000714	000261 				SEC
    273	000716				60$:	RETURN
PRSFND M0114, PARSE, FIND, ETC.	MACRO M1113  27-FEB-85 12:32  PAGE 12
.WLDVC - CHECK FOR WILD CARDS WITH DEFAULT VERSION

    275						.SBTTL	.WLDVC - CHECK FOR WILD CARDS WITH DEFAULT VERSION
    276					;
    277					;+
    278					; CHECK IF DEFAULT VERSION WITH WILD CARD NAME OR TYPE
    279					; CALLING SEQUENCE:
    280					;	CALL	.WLDVC
    281					; INPUTS:
    282					;	R0=FDB ADDRESS
    283					;	R1=FILE NAME BLOCK
    284					; OUTPUTS:
    285					;	C=1 IF WILD NAME OR TYPE, AND DEFAULT VERSION
    286					;	C=0 IF NOT
    287					;	ALL REGISTERS PRESERVED
    288					;-
    289	000720	032761 	000060 	000020 	.WLDVC::BIT	#NB.SNM!NB.STP,N.STAT(R1)
    290	000726	001415 				BEQ	10$
    291	000730	032761 	000010 	000020 		BIT	#NB.SVR,N.STAT(R1) ;REQUIRE WILD VERSION
    292	000736	001011 				BNE	10$
    293	000740	005761 	000016 			TST	N.FVER(R1)	;OR EXPLICIT VERSION
    294	000744	001404 				BEQ	5$
    295	000746	022761 	177777 	000016 		CMP	#-1,N.FVER(R1)
    296	000754	001002 				BNE	10$
    297	000756	000261 			5$:	SEC
    298	000760					RETURN
    299	000762	000241 			10$:	CLC
    300	000764					RETURN
PRSFND M0114, PARSE, FIND, ETC.	MACRO M1113  27-FEB-85 12:32  PAGE 13
USEFUL SUBROUTINES

    302						.SBTTL	USEFUL SUBROUTINES
    303					;
    304					;+
    305					; PARSE THE DIRECTORY STRING, ALLOWING WILD CARD UIC'S
    306					; CALLING SEQUENCE:
    307					;	CALL	PRSDIR
    308					; INPUTS:
    309					;	R0=FDB
    310					;	R1=FILE NAME BLOCK
    311					;	R2=FILE DESCRIPTOR POINTER
    312					;	R3=DEFAULT FILE NAME BLOCK
    313					;	R4=SCRATCH AREA TO BE INITIALIZED WITH WILD CARD
    314					;		UIC INFORMATION
    315					; OUTPUTS:
    316					;	C=0 IF OK, C=1 IF BAD SYNTAX IN DIRECTORY STRING
    317					;	ALL REGISTERS PRESERVED
    318					; OPERATION:
    319					;	SETS UP THE STATUS WORD (N.STAT) IN THE FNB OF THE
    320					; SCRATCH AREA WITH THE APPROPRIATE WILD CARD UIC BITS, AND STORES
    321					; THE EXPLICIT PROJECT NAME (RAD50) AND PROGRAMER NAME
    322					; IN N.WNM1, N.WNM1+2 (R4).
    323					;-
    324	000766				PRSDIR:	CALL	$SAVAL
    325	000772	010446 				MOV	R4,-(SP)
    326	000774	010401 				MOV	R4,R1
    327	000776	062701 	000036 			ADD	#N.WNM1,R1
    328	001002					CALL	PRSUI1
    329	001006	012604 				MOV	(SP)+,R4
    330	001010	103437 				BCS	60$
    331	001012	014301 				MOV	-(R3),R1	;R1=PROJECT #
    332	001014	010400 				MOV	R4,R0
    333	001016	062700 	000042 			ADD	#N.WNM2,R0	;SCRATCH STRING ADDRESS
    334	001022					CALL	CDRNM		;CONVERT NUMBER TO RAD50  (1 WORD)
    335	001026	010123 				MOV	R1,(R3)+	;STORE RAD50 BACK IN N.WNM1(R4)
    336	001030	103006 				BCC	20$
    337					; NUMBER WAS TOO BIG, WAS IT -1, IF SO, SET WILD BIT
    338	001032	022701 	177777 			CMP	#-1,R1
    339	001036	001024 				BNE	60$		;OTHERWISE SYNTAX ERROR
    340	001040	052764 	000400 	000020 		BIS	#NB.SD1,N.STAT(R4) ;SET WILD PROJECT #
    341	001046	011301 			20$:	MOV	@R3,R1		;R1=PROGRAMMER #
    342	001050	010400 				MOV	R4,R0
    343	001052	062700 	000042 			ADD	#N.WNM2,R0
    344	001056					CALL	CDRNM
    345	001062	010113 				MOV	R1,@R3		;STORE RAD50
    346	001064	103006 				BCC	30$
    347	001066	022701 	177777 			CMP	#-1,R1
    348	001072	001006 				BNE	60$		;BRANCH IF SYNTAX ERROR
    349	001074	052764 	001000 	000020 		BIS	#NB.SD2,N.STAT(R4) ;SET WILD CARD PROGRAMMER #
    350	001102	000241 			30$:	CLC
    351	001104					RETURN
    352	001106	005726 			58$:	TST	(SP)+
    353	001110	000261 			60$:	SEC
    354	001112					RETURN
    355					;
    356					;+
    357					; PARSE UIC STRING INTO BINARY PROJ AND PROG NUMBERS (2 WORDS)
    358					; CALLING SEQUENCE:
PRSFND M0114, PARSE, FIND, ETC.	MACRO M1113  27-FEB-85 12:32  PAGE 13-1
USEFUL SUBROUTINES

    359					;	CALL	.PRSUI
    360					; INPUTS:
    361					;	R1=ADDRESS OF 2 WORD BLOCK TO STORE PPN
    362					;	R2=FILE DESCRIPTOR POINTER
    363					; OUTPUTS:
    364					;	C=0 OK, C=1 IF SUNTAX ERROR
    365					;	ALL REGISTERS PRESERVED
    366					;	@R1 = PROJECT # OR -1 IF *
    367					;	2(R1) = PROGRAMMER # OR -1 IF *
    368					; ALTERNATE ENTRY:
    369					;	CALL	PRSUI1
    370					; INPUTS:
    371					;	SAME
    372					; OUTPUTS:
    373					;	SAME EXCEPT REGISTERS NOT PRESERVED
    374					;	R3= ADDRESS OF PROGRAMMER # (2ND WORD)
    375					;	R0 PRESERVED, R2,R4,R5 ALTERED
    376					;-
    377	001114				.PRSUI::
    378	001114	004567 	000000G			JSR	R5,.SAVR1
    379	001120	010103 			PRSUI1:	MOV	R1,R3		;R3=ADR TO RETURN PROJECT #
    380	001122	016201 	000004 			MOV	N.DIRD(R2),R1	;R1=SIZE OF DIRECTORY STRING
    381	001126	016202 	000006 			MOV	N.DIRD+2(R2),R2	;R2=ADDRESS OF DIRECOTRY STRING
    382	001132	122722 	000133 			CMPB	#'[,(R2)+	;REQUIRE LEADING "["
    383	001136	001014 				BNE	40$
    384	001140	005301 				DEC	R1		;COUNT THE "["
    385	001142	012704 	000054 			MOV	#',,R4		;R4=TERMINATOR CHARACTER
    386	001146					CALL	SCNCVT		;CONVERT PROJECT #
    387	001152	103405 				BCS	30$		;BRANCH IF BAD SYNTAX
    388	001154	005723 				TST	(R3)+		;R3= ADDRESS TO STORE PROG #
    389	001156	012704 	000135 			MOV	#'],R4		;R4=TERMINATING CHAR
    390	001162					CALL	SCNCVT		;CONVERT PROGRAMMER #
    391	001166				30$:	RETURN
    392					;
    393	001170	000261 			40$:	SEC
    394	001172					RETURN
PRSFND M0114, PARSE, FIND, ETC.	MACRO M1113  27-FEB-85 12:32  PAGE 14
USEFUL SUBROUTINES

    396					;+
    397					; SCAN ASCII STRING UNTIL FIND TERMINATING CHAR
    398					; CONVERT TO NUMBER OR -1 IF WILD CARD, RETURN @R3
    399					; CALLING SEQUENCE:
    400					;	CALL	SCNCVT
    401					; INPUTS:
    402					;	R1 = STRING SIZE
    403					;	R2 = STRING ADDRESS
    404					;	R3 = ADDRESS TO RETURN VALUE
    405					;	R4 = TERMINATING CHARACTER TO MATCH
    406					; OUTPUTS:
    407					;	C=0 IF OK, C=1 IF SYNTAX ERROR
    408					;	R1,R2 UPDATED TO REFLECT CHARACTERS SCANNED
    409					;	R4,R5 ALTERED
    410					;	R0,R3 PRESERVED
    411					;-
    412	001174	010205 			SCNCVT:	MOV	R2,R5		;SAVE STARTING CHARACTER ADDRESS
    413	001176	120422 			10$:	CMPB	R4,(R2)+
    414	001200	001404 				BEQ	20$		;BRANCH IF THIS IS THE TERMINATOR
    415	001202					SOB	R1,10$
    416	001206	000261 				SEC			;RAN OUT OF CHARACTER, BAD SYNTAX
    417	001210					RETURN
    418	001212	005301 			20$:	DEC	R1		;COUNT TERMINATOR
    419	001214	122715 	000052 			CMPB	#'*,@R5		;WILD CARD?
    420	001220	001004 				BNE	30$		;BRANCH IF NO
    421	001222	012713 	177777 			MOV	#-1,@R3
    422	001226	000241 				CLC
    423	001230					RETURN
    424	001232	010204 			30$:	MOV	R2,R4
    425	001234	160504 				SUB	R5,R4
    426	001236	005304 				DEC	R4		;R4 = SIZE OF NUMERIC STRING
    427	001240					CALL	.ODCVT
    428	001244					RETURN
    429					;
    430					;+
    431					; CONVERT PROJECT OR PROGRAMMER NUMBER IN R1 TO 3 CHAR RAD50 NAME
    432					;	RETURNED IN R1
    433					; CALLING SEQUENCE:
    434					;	CALL	CDRNM
    435					; INPUTS:
    436					;	R0=STRING ADDRESS TO STORE CHARS IN (SCRATCH)
    437					;	R1=NUMBER TO CONVERT
    438					; OUTPUTS:
    439					;	C=0 IF CONVERTED, C=1 IF HIGH BYTE OF R1 NON ZERO
    440					;	R1=RAD50 CONVERSION OF NUMBER
    441					;	R0,R2 ALTERED
    442					;	R3-R5 PRESERVED
    443					;-
    444	001246	032701 	177400 		CDRNM:	BIT	#177400,R1
    445	001252	001402 				BEQ	20$		;BRANCH IF NO HIGH ORDER BITS SET
    446	001254	000261 				SEC
    447	001256					RETURN
    448	001260	010702 			20$:	MOV	PC,R2		;R2 NON 0, DON'T SUPPRESS LEAD 0'S
    449	001262					CALL	$CBOMG		;CONVERT BINARY TO OCTAL MAGNITUDE
    450	001266	162700 	000003 			SUB	#3,R0		;R0 POINTS AT LAST 3 CHARS
    451	001272					CALL	$CAT5		;CONVERT ASCII TO RAD50
    452	001276	000241 				CLC
PRSFND M0114, PARSE, FIND, ETC.	MACRO M1113  27-FEB-85 12:32  PAGE 14-1
USEFUL SUBROUTINES

    453	001300					RETURN
    454					;
    455					;+
    456					; CONVERT RAD50 NUMBER IN R1 TO BINARY VALUE IN R1
    457					; CALLING SEQUENCE:
    458					;	CALL	C5TB
    459					; INPUTS:
    460					;	R0=STRING ADDRESS (SCRATCH)
    461					;	R1=RAD50 VALUE TO CONVERT
    462					; OUTPUTS:
    463					;	R1=BINARY VALUE
    464					;	R0,R3-R5 PRESERVED
    465					;	R2 ALTERED
    466					;-
    467	001302	010046 			C5TB:	MOV	R0,-(SP)
    468	001304					CALL	$C5TA		;CONVERT RAD50 TO ASCII
    469	001310	105010 				CLRB	@R0
    470	001312	162700 	000003 			SUB	#3,R0
    471	001316					CALL	$COTB		;CONVERT OCTAL STRING TO BINARY
    472	001322	012600 				MOV	(SP)+,R0
    473	001324					RETURN
    474					;
    475					;
    476		000001 				.END
PRSFND M0114, PARSE, FIND, ETC.	MACRO M1113  27-FEB-85 12:32  PAGE 14-2
SYMBOL TABLE

CDRNM   001246R     002	IE.BDR= 177716   	IE.OFL= 177677   	IO.RNA= 005400   	N.WNM2= 000042
C5TB    001302R     002	IE.BDV= 177711   	IE.ONP= 177773   	IO.RTK= 000060   	PRSDIR  000766R     002
DIRTYP= 015172   	IE.BHD= 177700   	IE.OVR= 177756   	IO.RVB= 010400   	PRSUI1  001120R     002
FA.APD= 000100   	IE.BLK= 177754   	IE.PRI= 177760   	IO.UNL= 000042   	R$$DPB= 000001
FA.CRE= 000010   	IE.BNM= 177712   	IE.RAC= 177724   	IO.WAT= 013400   	R$$DYM= 000001
FA.EXT= 000004   	IE.BTF= 177675   	IE.RAT= 177723   	IO.WLB= 000400   	R$$EIS= 000000
FA.NSP= 000100   	IE.BTP= 177725   	IE.RBG= 177730   	IO.WVB= 011000   	R$$11M= 000001
FA.RD = 000001   	IE.BVR= 177701   	IE.RCN= 177722   	IQ.Q  = 000002   	R.FIX = 000001
FA.SHR= 000040   	IE.BYT= 177755   	IE.RER= 177740   	IQ.X  = 000001   	R.VAR = 000002
FA.TMP= 000020   	IE.CKS= 177742   	IE.RNM= 177715   	IS.BV = 000005   	SCNCVT  001174R     002
FA.WRT= 000002   	IE.CLO= 177732   	IE.RSU= 177757   	IS.CR = 006401   	S.APPD= 000010
FD.BLK= 000010   	IE.CON= 177752   	IE.SNC= 177735   	IS.ESC= 015401   	S.FIDS= 000014
FD.CCL= 000002   	IE.DAA= 177770   	IE.SPC= 177772   	IS.PND= 000000   	S.FNAM= 000006
FD.CR = 000002   	IE.DAO= 177763   	IE.SQC= 177734   	IS.RDD= 000002   	S.FNB = 000036
FD.DIR= 000010   	IE.DFU= 177750   	IE.SRE= 177762   	IS.SUC= 000001   	S.FNBW= 000017
FD.FTN= 000001   	IE.DNA= 177771   	IE.STK= 177706   	MFDNAM= 140116   	S.FNTY= 000004
FD.INS= 000010   	IE.DNR= 177775   	IE.VER= 177774   	NB.DEV= 000200   	S.FTYP= 000002
FD.PLC= 000004   	IE.DUN= 177767   	IE.WAC= 177743   	NB.DIR= 000100   	S.NFEN= 000020
FD.RAH= 000001   	IE.DUP= 177707   	IE.WAT= 177741   	NB.NAM= 000004   	S.WUIC= 000054
FD.RAN= 000002   	IE.EBX= 177776   	IE.WER= 177737   	NB.SDI= 001400   	TDRDEL= ****** GX
FD.REC= 000001   	IE.EOF= 177766   	IE.WLK= 177764   	NB.SD1= 000400   	TDRENT= ****** GX
FD.RWM= 000001   	IE.EOT= 177702   	IE.2DV= 177720   	NB.SD2= 001000   	TDRFDB= ****** GX
FD.SDI= 000020   	IE.EOV= 177765   	IO.ACE= 007400   	NB.SNM= 000040   	TDRINI= ****** GX
FD.SQD= 000040   	IE.EXP= 177676   	IO.ACR= 006400   	NB.STP= 000020   	$CAT5 = ****** GX
FD.TTY= 000004   	IE.FEX= 177717   	IO.ACW= 007000   	NB.SVR= 000010   	$CBOMG= ****** GX
FD.WBH= 000002   	IE.FHE= 177705   	IO.APC= 014000   	NB.TYP= 000002   	$COTB = ****** GX
FNDNX1  000166R     002	IE.FOP= 177713   	IO.APV= 014010   	NB.VER= 000001   	$C5TA = ****** GX
FNDNX2  000346R     002	IE.HFU= 177744   	IO.ATT= 001400   	N.DEVD= 000000   	$SAVAL= ****** GX
FNDNX3  000430R     002	IE.IFC= 177776   	IO.CLN= 003400   	N.DID = 000024   	$$    = 000067
FO.APD= 000106   	IE.IFU= 177747   	IO.CRE= 012000   	N.DIRD= 000004   	$$MSG = 000000
FO.MFY= 000002   	IE.ILL= 177726   	IO.DAC= 010000   	N.DVNM= 000032   	.FIND = ****** GX
FO.RD = 000001   	IE.ISQ= 177703   	IO.DEL= 012400   	N.FID = 000000   	.FNDNX  000152RG    002
FO.UPD= 000006   	IE.LCK= 177745   	IO.DET= 002000   	N.FLID= 000016   	.NXDIR  000432RG    002
FO.WRT= 000016   	IE.MBK= 177721   	IO.ENA= 006000   	N.FNAM= 000006   	.ODCVT= ****** GX
F.DFNB= ****** GX	IE.MOD= 177753   	IO.EXT= 011400   	N.FNMD= 000010   	.PARSE= ****** GX
F.DSPT= ****** GX	IE.NBF= 177731   	IO.FNA= 004400   	N.FTYP= 000014   	.PPASC= ****** GX
F.ERR = ****** GX	IE.NBK= 177727   	IO.KIL= 000012   	N.FVER= 000016   	.PRSUI  001114RG    002
IE.ABO= 177761   	IE.NFI= 177704   	IO.LOV= 001010   	N.NEXT= 000022   	.SAVR1= ****** GX
IE.ALN= 177736   	IE.NLN= 177733   	IO.LTK= 000050   	N.SPEC= 000014   	.WLDVC  000720RG    002
IE.BAD= 177777   	IE.NNC= 177674   	IO.RAT= 013000   	N.STAT= 000020   	.WPARS  000000RG    002
IE.BBE= 177710   	IE.NOD= 177751   	IO.RDN= 000022   	N.UNIT= 000034   	...GBL= 000000
IE.BDI= 177714   	IE.NSF= 177746   	IO.RLB= 001000   	N.WNM1= 000036   	...TPC= 000036

. ABS.	000000	   000
      	000000	   001
PURE$I	001326	   002
ERRORS DETECTED:  0

VIRTUAL MEMORY USED:  6405 WORDS  ( 26 PAGES)
DYNAMIC MEMORY:  7790 WORDS  ( 29 PAGES)
ELAPSED TIME:  00:00:24
[43,10]PRSFND,[43,20]PRSFND/-SP/CR=[43,30]PIPMAC,PRSFND
PRSFND     CREATED BY  MACRO  ON 27-FEB-85 AT 12:32	PAGE 1

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

CDRNM 	  001246 R	 13-334     13-334     13-344     13-344    #14-444    
C5TB  	  001302 R	 11-247     11-247     11-250     11-250    #14-467    
DIRTYP	= 015172	#7-45       8-83      
FNDNX1	  000166 R	 10-120    #10-125    
FNDNX2	  000346 R	 10-122    #10-164    
FNDNX3	  000430 R	 10-145     10-164    #10-182    
F.DFNB	= ******  GX	 10-175    
F.DSPT	= ******  GX	 10-174    
F.ERR 	= ******  GX	 8-73       10-147     10-152    *10-152     10-169    *11-271    
IE.BDI	= 177714	 8-73      
IE.DUP	= 177707	 10-147    
IE.NSF	= 177746	 10-169     11-271    
MFDNAM	= 140116	#7-46       11-220    
NB.SDI	= 001400	#7-35       8-80       8-94       10-167     11-211    
NB.SD1	= 000400	#7-33       7-35       11-225     13-340    
NB.SD2	= 001000	#7-34       7-35       11-229     13-349    
NB.SNM	= 000040	 8-70       12-289    
NB.STP	= 000020	 12-289    
NB.SVR	= 000010	 8-70       10-131     12-291    
N.DEVD	= 000000	#7-31      
N.DID 	= 000024	*8-85      *8-86      *8-87      *11-236    *11-237    *11-238    *11-267    *11-268    *11-269    
N.DIRD	= 000004	#7-31       8-76      *11-258    *11-260     13-380     13-381    
N.DVNM	= 000032	 8-88      *8-88      
N.FID 	= 000000	 11-236     11-237     11-238     11-267     11-268     11-269    
N.FLID	= 000016	#7-31      
N.FNAM	= 000006	 11-220     11-222     11-227     11-231     11-246     11-249    
N.FNMD	= 000010	#7-31      
N.FTYP	= 000014	*8-83      
N.FVER	= 000016	 10-129    *10-137    *10-162     12-293     12-295    
N.NEXT	= 000022	*8-84       10-125     10-134    *10-136    *10-141    *10-156    *11-239    
N.SPEC	= 000014	#7-31      
N.STAT	= 000020	*8-70       8-80       8-93      *8-95       10-130    *10-131    *10-135    *10-142    *10-161    
                         10-167     11-211     11-225     11-229     12-289     12-291    *13-340    *13-349    
N.UNIT	= 000034	 8-89      *8-89      
N.WNM1	= 000036	#7-39       7-41       11-227     11-231     13-327    
N.WNM2	= 000042	#7-41       11-245     13-333     13-343    
PRSDIR	  000766 R	 8-78       8-78      #13-324    
PRSUI1	  001120 R	 13-328     13-328    #13-379    
RONLY$	= ******	 8-50       8-50      
R$$DPB	= 000001	#1-27      
R$$DYM	= 000001	#1-29      
R$$EIS	= 000000	#1-28       1-38      
R$$11M	= 000001	#1-25       1-26       7-1       
SCNCVT	  001174 R	 13-386     13-386     13-390     13-390    #14-412    
SYS40$	= ******	 1-67       8-50       8-50      
S.APPD	= 000010	#7-31      
S.FIDS	= 000014	#7-31      
S.FNB 	= 000036	 7-39       7-43      
S.WUIC	= 000054	#7-43      
TDRDEL	= ******  GX	 10-160     10-160    
TDRENT	= ******  GX	 10-140     10-140    
TDRFDB	= ******  GX	 10-147     10-152    
PRSFND     CREATED BY  MACRO  ON 27-FEB-85 AT 12:32	PAGE 2

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

TDRINI	= ******  GX	 10-127     10-127    
$CAT5 	= ******  GX	 14-451     14-451    
$CBOMG	= ******  GX	 14-449     14-449    
$COTB 	= ******  GX	 14-471     14-471    
$C5TA 	= ******  GX	 14-468     14-468    
$SAVAL	= ******  GX	 11-213     11-213     13-324     13-324    
$$    	= 000067	#8-71       8-71      #8-78       8-78      #8-90       8-90      #8-92       8-92      #10-119    
                         10-119    #10-121     10-121    #10-127     10-127    #10-132     10-132    #10-138     10-138    
                        #10-140     10-140    #10-160     10-160    #10-176     10-176    #11-213     11-213    #11-216    
                         11-216    #11-247     11-247    #11-250     11-250    #11-257     11-257    #13-324     13-324    
                        #13-328     13-328    #13-334     13-334    #13-344     13-344    #13-386     13-386    #13-390    
                         13-390    #14-427     14-427    #14-449     14-449    #14-451     14-451    #14-468     14-468    
                        #14-471     14-471    
.FIND 	= ******  GX	 10-121     10-121     10-132     10-132     10-138     10-138     11-216     11-216    
.FNDNX	  000152 RG	#10-119     10-180    
.NXDIR	  000432 RG	 8-90       8-90       10-176     10-176    #11-211    
.ODCVT	= ******  GX	 14-427     14-427    
.PARSE	= ******  GX	 8-71       8-71       8-92       8-92      
.PPASC	= ******  GX	 11-257     11-257    
.PRSUI	  001114 RG	#13-377    
.SAVR1	= ******  GX	 13-378    
.WLDVC	  000720 RG	 10-119     10-119    #12-289    
.WPARS	  000000 RG	#8-70      
PRSFND     CREATED BY  MACRO  ON 27-FEB-85 AT 12:32	PAGE 3

MACRO CROSS REFERENCE                                   CREF         

MACRO NAME	REFERENCES

ASH   		#1-64      
ASHC  		#1-64      
CALL  		#7-28      #8-71      #8-78      #8-90      #8-92      #10-119    #10-121    #10-127    #10-132    #10-138    
                #10-140    #10-160    #10-176    #11-213    #11-216    #11-247    #11-250    #11-257    #13-324    #13-328    
                #13-334    #13-344    #13-386    #13-390    #14-427    #14-449    #14-451    #14-468    #14-471    
DIV   		#1-64      
ERRINI		#4-307     
ERROUT		#3-215     
ERROUX		#3-222     
ERROU1		#3-225     
ERRP  		#3-247     
ERRPX 		#3-253     
ERRP1 		#3-256     
ERR1  		#3-273     
FCSBT$		#7-28       7-30      
FDAT$A		#7-28      
FDBDF$		#7-28      
FDOP$A		#7-28      
FILIO$		#7-23      #7-26      
FLDSOF		#5-382     #7-31      #7-31      
IDENT 		#5-339     #7-1       
IDENT1		#5-347      7-1       
IDTITL		#5-356     
ILLOP 		#1-52      #1-64       1-64      
IMPURE		#1-75      
IOERR$		#7-23       7-25      
MARK  		#1-64      
MSG   		#2-124     
MSGZ  		#2-129     
MSG1  		#2-133     
MUL   		#1-64      
NBOFF$		#7-24       7-24      
NBOF$L		#7-23      #7-24      
NOEIS$		#1-39       1-64      
PURE. 		#1-84       8-50      
PURE.D		#1-102     
PURE.I		#1-98       8-50      
RETURN		#7-28       8-96       8-98       10-182     11-270     11-273     12-298     12-300     13-351     13-354    
                 13-391     13-394     14-417     14-423     14-428     14-447     14-453     14-473    
RTT   		#1-64      
SOB   		#1-64      #14-415    
SXT   		#1-64      
XOR   		#1-64      
TMPDIR M0114, TEMPORARY DIRECTO	MACRO M1113  27-FEB-85 12:33
TABLE OF CONTENTS

     7-    1	**** TMPDIR VERSION M0114 ****
PIPMAC - MACROS FOR PIP, ETC.	MACRO M1113  27-FEB-85 12:33  PAGE 6


    397
TMPDIR M0114, TEMPORARY DIRECTO	MACRO M1113  27-FEB-85 12:33  PAGE 7


      1						.TITLE	TMPDIR M0114, TEMPORARY DIRECTORY LOGIC
						.SBTTL	**** TMPDIR VERSION M0114 ****
						.IDENT	/M0114/
      2					; ALTERED THURSDAY 22-AUG-74 14:05
      3					;
      4					; COPYRIGHT 1975, 1985, DIGITAL EQUIPMENT CORP., MAYNARD MASS.
      5					; COPYRIGHT 1974, DIGITAL EQUIPMENT CORP., MAYNARD MASS.
      6
      7					;			ALL RIGHTS RESERVED
      8					;
      9					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
     10					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
     11					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
     12					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
     13
     14					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
     15					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
     16					; EQUIPMENT CORPORATION.
     17
     18					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY
     19					; OF ITS SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
     20					;
     21					; PETER H. LIPMAN 19-AUG-74
     22					;
     23						.MCALL	FILIO$
     24	000000					FILIO$			;DEFINE THE I/O FUNCTION CODES LOCALLY
     25					;
     26						.MCALL	CALL,RETURN,FDBDF$,FDAT$A,FDOP$A,FCSBT$
     27					;
     28	000000					FCSBT$	DEF$L
     29					;
     30		000006 				TDRLUN=6		;LUN FOR TEMP DIRECTORY FILE
     31		007004 				HA.UAT=S.FATT*400+4	;WRITE USER ATTRIBUTE CODE
     32					;
     33	000000					IMPURE
     34					;
     35	000000				TDRFDB::FDBDF$
     36	000140					FDAT$A	R.FIX,,S.NFEN
     37	000140					FDOP$A	TDRLUN,TDRNAM
     38					;
     39	000140					PURE.D
     40					;
     41	000000	007004 	000000'	000000 	ATTBLK:	.WORD	HA.UAT,TDRFDB,0
     42	000006	000003 	000022'	000000 	TDRNAM:	.WORD	TDRDVS,TDRDVN,0,0,0,0
	000014	000000 	000000 	000000
     43	000022	   123 	   131 	   060 	TDRDVN:	.ASCII	/SY0/
     44		000003 				TDRDVS=.-TDRDVN
     45						.EVEN
     46					;
     47	000026					PURE.I
     48					;
     49					; INIT THE TEMP DIRECTORY, DELETE THE OLD ONE AND CREATE A NEW ONE
     50					; RETURN C=0 IF SUCCESSFUL, C=1 IF ERROR
     51	000000				TDRINI::CALL	TDRDEL
     52	000004	103423 				BCS	20$
     53	000006					CALL	$SAVAL
     54
TMPDIR M0114, TEMPORARY DIRECTO	MACRO M1113  27-FEB-85 12:33  PAGE 7-1
**** TMPDIR VERSION M0114 ****

     55						.IF	EQ,R$$DPB
     56						MOV	#ATTBLK,-(SP)	;PUSH PARAMS TO CREATE QIO ONTO STACK
     57						CLR	-(SP)
     58						.IFF
     59	000012	005046 				CLR	-(SP)
     60	000014	012746 	000000'			MOV	#ATTBLK,-(SP)
     61						.ENDC
     62
     63	000020	012746 	000126'			MOV	#TDRFDB+F.FNB+N.DID,-(SP)
     64	000024	012700 	000000'			MOV	#TDRFDB,R0
     65	000030	012701 	012000 			MOV	#IO.CRE,R1
     66	000034	012702 	000003 			MOV	#3,R2
     67	000040	010603 				MOV	SP,R3
     68	000042					CALL	.XQIO		;CREATE THE FILE
     69	000046	012601 				MOV	(SP)+,R1	;CLEAN UP THE STACK, PRESERVING C BIT
     70	000050	012601 				MOV	(SP)+,R1
     71	000052	012601 				MOV	(SP)+,R1
     72	000054				20$:	RETURN
     73					;
     74					; DELETE THE TEMP DIRECTORY FILE IF IT EXISTS
     75					; AND INITIALIZE THE FDB IN PREPARATION FOR CREATING A NEW ONE
     76					; RETURNS C=0 IF SUCCESSFUL, C=1 IF FAILURE
     77
     78	000056				TDRDEL::
     79	000056					CALL	$SAVAL
     80	000062	012700 	000000'			MOV	#TDRFDB,R0
     81	000066	005760 	000126 			TST	F.FNB+N.DID(R0)	;IF DIRECTORY ID IS SET, DELETE THE FILE
     82	000072	001412 				BEQ	10$
     83					;
     84					; MARK THE FILE FOR DELETE
     85	000074	012746 	000126'			MOV	#TDRFDB+F.FNB+N.DID,-(SP)
     86	000100	012701 	012400 			MOV	#IO.DEL,R1
     87	000104	012702 	000001 			MOV	#1,R2
     88	000110	010603 				MOV	SP,R3
     89	000112					CALL	.XQIO
     90	000116	012601 				MOV	(SP)+,R1
     91	000120	006102 			10$:	ROL	R2		;SAVE THE CARRY BIT
     92	000122	005760 	000134 			TST	F.DVNM(R0)	;IS THE FDB INITED
     93	000126	001013 				BNE	20$		;IF DEVICE NAME IS SET, THEN YES
     94	000130	012760 	000001 	000012 		MOV	#1,F.EFBK+2(R0)
     95	000136	012701 	000102'			MOV	#TDRFDB+F.FNB,R1
     96	000142	012702 	000006'			MOV	#TDRNAM,R2
     97	000146	005003 				CLR	R3
     98	000150					CALL	.PRSDV
     99	000154	103403 				BCS	30$
    100	000156	005060 	000126 		20$:	CLR	F.FNB+N.DID(R0)
    101	000162	006002 				ROR	R2		;RESTOR CARRY BIT
    102	000164				30$:	RETURN
    103					;
    104					; ENTER FILE IN TEMP DIRECTORY
    105					; INPUTS:
    106					;	R1=FNB OF ENTRY TO MAKE
    107					; OUTPUTS:
    108					;	C=0 IF ENTER WAS SUCCESSFUL
    109					;	C=1 IF ERROR FROM ENTER
    110					;	ALL REGISTERS PRESERVED
    111					;-
TMPDIR M0114, TEMPORARY DIRECTO	MACRO M1113  27-FEB-85 12:33  PAGE 7-2
**** TMPDIR VERSION M0114 ****

    112	000166				TDRENT::CALL	$SAVAL
    113	000172	012702 	000102'			MOV	#TDRFDB+F.FNB,R2
    114	000176	012703 	000010 			MOV	#S.NFEN/2,R3
    115	000202	012122 			10$:	MOV	(R1)+,(R2)+
    116	000204					SOB	R3,10$
    117	000210	012700 	000000'			MOV	#TDRFDB,R0
    118	000214	012701 	000102'			MOV	#TDRFDB+F.FNB,R1
    119	000220					CALL	.ENTER
    120	000224					RETURN
    121					;
    122					;
    123					;
    124		000001 				.END
TMPDIR M0114, TEMPORARY DIRECTO	MACRO M1113  27-FEB-85 12:33  PAGE 7-3
SYMBOL TABLE

ATTBLK  000000R     003	F.BDB = 000070   	F.RATT= 000001   	IO.RLB= 001000   	R$$DYM= 000001
FA.APD= 000100   	F.BGBC= 000057   	F.RCNM= 000034   	IO.RNA= 005400   	R$$EIS= 000000
FA.CRE= 000010   	F.BKDN= 000026   	F.RCTL= 000017   	IO.RTK= 000060   	R$$11M= 000001
FA.EXT= 000004   	F.BKDS= 000020   	F.RSIZ= 000002   	IO.RVB= 010400   	R.FIX = 000001
FA.NSP= 000100   	F.BKEF= 000050   	F.RTYP= 000000   	IO.UNL= 000042   	R.VAR = 000002
FA.RD = 000001   	F.BKP1= 000051   	F.STBK= 000036   	IO.WAT= 013400   	S.FATT= 000016
FA.SHR= 000040   	F.BKST= 000024   	F.UNIT= 000136   	IO.WLB= 000400   	S.FDB = 000140
FA.TMP= 000020   	F.BKVB= 000064   	F.URBD= 000020   	IO.WVB= 011000   	S.FNAM= 000006
FA.WRT= 000002   	F.CNTG= 000034   	F.VBN = 000064   	IQ.Q  = 000002   	S.FNB = 000036
FD.BLK= 000010   	F.DFNB= 000046   	F.VBSZ= 000060   	IQ.X  = 000001   	S.FNBW= 000017
FD.CCL= 000002   	F.DSPT= 000044   	HA.UAT= 007004   	NB.DEV= 000200   	S.FNTY= 000004
FD.CR = 000002   	F.DVNM= 000134   	IO.ACE= 007400   	NB.DIR= 000100   	S.FTYP= 000002
FD.DIR= 000010   	F.EFBK= 000010   	IO.ACR= 006400   	NB.NAM= 000004   	S.NFEN= 000020
FD.FTN= 000001   	F.EFN = 000050   	IO.ACW= 007000   	NB.SD1= 000400   	TDRDEL  000056RG    004
FD.INS= 000010   	F.EOBB= 000032   	IO.APC= 014000   	NB.SD2= 001000   	TDRDVN  000022R     003
FD.PLC= 000004   	F.ERR = 000052   	IO.APV= 014010   	NB.SNM= 000040   	TDRDVS= 000003
FD.RAH= 000001   	F.FACC= 000043   	IO.ATT= 001400   	NB.STP= 000020   	TDRENT  000166RG    004
FD.RAN= 000002   	F.FFBY= 000014   	IO.CLN= 003400   	NB.SVR= 000010   	TDRFDB  000000RG    002
FD.REC= 000001   	F.FNAM= 000110   	IO.CRE= 012000   	NB.TYP= 000002   	TDRINI  000000RG    004
FD.RWM= 000001   	F.FNB = 000102   	IO.DAC= 010000   	NB.VER= 000001   	TDRLUN= 000006
FD.SDI= 000020   	F.FTYP= 000116   	IO.DEL= 012400   	N.DID = 000024   	TDRNAM  000006R     003
FD.SQD= 000040   	F.FVER= 000120   	IO.DET= 002000   	N.DVNM= 000032   	$SAVAL= ****** GX
FD.TTY= 000004   	F.HIBK= 000004   	IO.ENA= 006000   	N.FID = 000000   	$$    = 000067
FD.WBH= 000002   	F.LUN = 000042   	IO.EXT= 011400   	N.FNAM= 000006   	.ENTER= ****** GX
FO.APD= 000106   	F.MBCT= 000054   	IO.FNA= 004400   	N.FTYP= 000014   	.PRSDV= ****** GX
FO.MFY= 000002   	F.MBC1= 000055   	IO.KIL= 000012   	N.FVER= 000016   	.XQIO = ****** GX
FO.RD = 000001   	F.MBFG= 000056   	IO.LOV= 001010   	N.NEXT= 000022   	...GBL= 000000
FO.UPD= 000006   	F.NRBD= 000024   	IO.LTK= 000050   	N.STAT= 000020   	...PC1= 000000R     002
FO.WRT= 000016   	F.NREC= 000030   	IO.RAT= 013000   	N.UNIT= 000034   	...PC2= 000140R     002
F.ALOC= 000040   	F.OVBS= 000030   	IO.RDN= 000022   	R$$DPB= 000001   	...TPC= 000140
F.BBFS= 000062   	F.RACC= 000016

. ABS.	000000	   000
      	000000	   001
IMPURE	000140	   002
PURE$D	000026	   003
PURE$I	000226	   004
ERRORS DETECTED:  0

VIRTUAL MEMORY USED:  4494 WORDS  ( 18 PAGES)
DYNAMIC MEMORY:  5678 WORDS  ( 21 PAGES)
ELAPSED TIME:  00:00:20
[43,10]TMPDIR,[43,20]TMPDIR/-SP/CR=[43,30]PIPMAC,TMPDIR
TMPDIR     CREATED BY  MACRO  ON 27-FEB-85 AT 12:33	PAGE 1

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

ATTBLK	  000000 R	#7-41       7-60      
F.DSPT	= 000044	 7-37      
F.DVNM	= 000134	 7-92      
F.EFBK	= 000010	*7-94      
F.FNB 	= 000102	 7-63       7-81       7-85       7-95      *7-100      7-113      7-118     
F.LUN 	= 000042	 7-37      
F.RSIZ	= 000002	 7-36      
F.RTYP	= 000000	 7-36      
HA.UAT	= 007004	#7-31       7-41      
IO.CRE	= 012000	 7-65      
IO.DEL	= 012400	 7-86      
N.DID 	= 000024	 7-63       7-81       7-85      *7-100     
RONLY$	= ******	 7-39       7-39       7-47       7-47      
R$$DPB	= 000001	#1-27       7-55      
R$$DYM	= 000001	#1-29      
R$$EIS	= 000000	#1-28       1-38      
R$$11M	= 000001	#1-25       1-26       7-1       
R.FIX 	= 000001	 7-36      
SYS40$	= ******	 1-67       7-33       7-33       7-39       7-39       7-47       7-47      
S.FATT	= 000016	 7-31      
S.FDB 	= 000140	 7-35       7-35      
S.NFEN	= 000020	 7-36       7-114     
TDRDEL	  000056 RG	 7-51       7-51      #7-78      
TDRDVN	  000022 R	 7-42      #7-43       7-44      
TDRDVS	= 000003	 7-42      #7-44      
TDRENT	  000166 RG	#7-112     
TDRFDB	  000000 RG	#7-35       7-41       7-63       7-64       7-80       7-85       7-95       7-113      7-117     
                         7-118     
TDRINI	  000000 RG	#7-51      
TDRLUN	= 000006	#7-30       7-37      
TDRNAM	  000006 R	 7-37      #7-42       7-96      
$SAVAL	= ******  GX	 7-53       7-53       7-79       7-79       7-112      7-112     
$$    	= 000067	#7-51       7-51      #7-53       7-53      #7-68       7-68      #7-79       7-79      #7-89      
                         7-89      #7-98       7-98      #7-112      7-112     #7-119      7-119     
.ENTER	= ******  GX	 7-119      7-119     
.PRSDV	= ******  GX	 7-98       7-98      
.XQIO 	= ******  GX	 7-68       7-68       7-89       7-89      
...PC1	= 000000 R	#7-35       7-36       7-36       7-37       7-37      
...PC2	= 000140 R	#7-36       7-36      #7-36       7-36      #7-37       7-37      #7-37       7-37      
TMPDIR     CREATED BY  MACRO  ON 27-FEB-85 AT 12:33	PAGE 2

MACRO CROSS REFERENCE                                   CREF         

MACRO NAME	REFERENCES

ASH   		#1-64      
ASHC  		#1-64      
CALL  		#7-26      #7-51      #7-53      #7-68      #7-79      #7-89      #7-98      #7-112     #7-119     
CBYTE$		#7-36       7-36       7-36      #7-37       7-37       7-37      
CWORD$		#7-36      #7-36      #7-36      #7-36      #7-37      #7-37      #7-37      
DIV   		#1-64      
ERRINI		#4-307     
ERROUT		#3-215     
ERROUX		#3-222     
ERROU1		#3-225     
ERRP  		#3-247     
ERRPX 		#3-253     
ERRP1 		#3-256     
ERR1  		#3-273     
FCSBT$		#7-26      #7-28      
FDAT$A		#7-26      #7-36      
FDBDF$		#7-26       7-35      
FDBSZ$		#7-35      #7-35      
FDOFF$		#7-36       7-36      #7-37       7-37      
FDOP$A		#7-26      #7-37      
FILIO$		#7-23       7-24      
FLDSOF		#5-382     
IDENT 		#5-339     #7-1       
IDENT1		#5-347      7-1       
IDTITL		#5-356     
ILLOP 		#1-52      #1-64       1-64      
IMPURE		#1-75      #7-33      
MARK  		#1-64      
MSG   		#2-124     
MSGZ  		#2-129     
MSG1  		#2-133     
MUL   		#1-64      
NOEIS$		#1-39       1-64      
PURE. 		#1-84       7-39       7-47      
PURE.D		#1-102      7-39      
PURE.I		#1-98       7-47      
RETURN		#7-26      #7-72      #7-102     #7-120     
RTT   		#1-64      
SOB   		#1-64      #7-116     
SXT   		#1-64      
XOR   		#1-64