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