SYSCREPRC       CREATE PROCESS SYSTEM SERVICE                    21-AUG-1978 20:23:38   VAX-11 MACRO X0.3-11               Page   0

TABLE OF CONTENTS   



   (1)    3800  DECLARATIONS

   (1)   12200  EXE$CREPRC - CREATE PROCESS SYSTEM SERVICE

   (1)   32300  ESTABLISH QUOTAS FOR NEW PROCESS

   (1)   49000  OVERCHECK - CHECK FOR LEGAL TO EXCEED QUOTA

   (1)   51500  ACTIVATE NEW PROCESS

   (1)   57200  ABORT PROCESS CREATION

   (1)   59100  MOVSTR - STRING COPY SUBROUTINE

SYSCREPRC       CREATE PROCESS SYSTEM SERVICE                    21-AUG-1978 20:23:38   VAX-11 MACRO X0.3-11               Page   1

01                                                                                                                               (1)



                                     0000   100 	.TITLE	SYSCREPRC CREATE PROCESS SYSTEM SERVICE

                                     0000   200 	.IDENT	/01/

                                     0000   300 

                                     0000   400 ;

                                     0000   500 ; COPYRIGHT (C) 1977,1978

                                     0000   600 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASSACHUSETTS 01754

                                     0000   700 ;

                                     0000   800 ; THIS SOFTWARE IS FURNISHED  UNDER A LICENSE FOR USE ONLY ON A SINGLE

                                     0000   900 ; COMPUTER  SYSTEM AND  MAY BE  COPIED ONLY WITH  THE INCLUSION OF THE

                                     0000  1000 ; ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE, OR ANY OTHER COPIES THEREOF,

                                     0000  1100 ; MAY NOT BE PROVIDED OR  OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON

                                     0000  1200 ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO THESE LICENSE

                                     0000  1300 ; TERMS.  TITLE TO AND  OWNERSHIP OF THE  SOFTWARE  SHALL AT ALL TIMES

                                     0000  1400 ; REMAIN IN DEC.

                                     0000  1500 ;

                                     0000  1600 ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE

                                     0000  1700 ; AND SHOULD  NOT BE CONSTRUED  AS A COMMITMENT  BY DIGITAL  EQUIPMENT

                                     0000  1800 ; CORPORATION.

                                     0000  1900 ;

                                     0000  2000 ; DEC ASSUMES  NO  RESPONSIBILITY  FOR  THE USE OR  RELIABILITY OF ITS

                                     0000  2100 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.

                                     0000  2200 

                                     0000  2300 ;++

                                     0000  2400 ; FACILITY: EXECUTIVE, SYSTEM SERVICES

                                     0000  2500 ;

                                     0000  2600 ; ABSTRACT: SYSCREPRC IMPLEMENTS THE CREATE PROCESS SYSTEM SERVICE.

                                     0000  2700 ;

                                     0000  2800 ; ENVIRONMENT: KERNEL MODE

                                     0000  2900 ;

                                     0000  3000 ; AUTHOR: R. HUSTVEDT	, CREATION DATE: 29-NOV-76

                                     0000  3100 ;

                                     0000  3200 ; MODIFIED BY:

                                     0000  3300 ;

                                     0000  3400 ;  , VERSION  ,

                                     0000  3500 ; 01	- 

                                     0000  3600 ;--

SYSCREPRC       CREATE PROCESS SYSTEM SERVICE                    21-AUG-1978 20:23:38   VAX-11 MACRO X0.3-11               Page   2

01              DECLARATIONS                                                                                                     (1)



                                     0000  3800 	.SBTTL	DECLARATIONS

                                     0000  3900 ;

                                     0000  4000 ; INCLUDE FILES:

                                     0000  4100 ;

                                     0000  4200 	$IPLDEF				; DEFINE INTERRUPT PRIORITY LEVELS

                                     0000  4300 	$PCBDEF				; DEFINE PCB OFFSETS

                                     0000  4400 	$PFNDEF				; DEFINE PFN CONSTANTS

                                     0000  4500 	$PHDDEF				; DEFINE PHD OFFESTS

                                     0000  4600 	$PQBDEF				; DEFINE PROCESS QUOTA BLOCK

                                     0000  4700 	$PQLDEF				; DEFINE PROCESS QUOTA LIST CODES

                                     0000  4800 	$PRDEF				; DEFINE PROCESSOR REGISTERS

                                     0000  4900 	$PRIDEF				; DEFINE PRIORITY INCREMENT CLASSES

                                     0000  5000 	$PRVDEF				; DEFINE PRIVILEGE BITS

                                     0000  5100 	$SSDEF				; DEFINE STATUS CODES

                                     0000  5200 ;

                                     0000  5300 ; MACROS:

                                     0000  5400 ;

                                     0000  5500 

                                     0000  5600 ; MACRO TO CREATE STSFLG MAPPING AND PRIVILEGE CHECK TABLES

                                     0000  5700 ;	STSFLAG	STSBIT [,PRV]

                                     0000  5800 

                                     0000  5900 	.MACRO	STSFLAG	STSBIT,PRV

                                     0000  6000 	.IF	B,PRV

                                     0000  6100 	.BYTE	-1

                                     0000  6200 	.IFF

                                     0000  6300 	.BYTE	PRV$V_'STSBIT

                                     0000  6400 	.ENDC

                                     0000  6500 	.BYTE	PCB$V_'STSBIT

                                     0000  6600 	.ENDM	STSFLAG

                                     0000  6700 

                                     0000  6800 ;

                                     0000  6900 ; MACRO TO CALL STRING MOVING AND VERIFICATION ROUTINE

                                     0000  7000 ;

                                     0000  7100 	.MACRO	MOVSTRING LIM=15,SRC,DST

                                     0000  7200 	BSBW	MOVSTR			; CALL MOVE SUBROUTINE

                                     0000  7300 	.BYTE	LIM			; COUNT LIMIT

                                     0000  7400 	.BYTE	SRC@-2			; SOURCE OFFSET FROM AP

                                     0000  7500 	.BYTE	PQB$T_'DST		; DESTINATION OFFSET IN PQB

                                     0000  7600 	.ENDM	MOVSTRING	

                                     0000  7700 

                                     0000  7800 ;

                                     0000  7900 ; EQUATED SYMBOLS:

                                     0000  8000 ;

                                     0000  8100 

                           00000004  0000  8200 PIDADR=4				; PID ADDRESS

                           00000008  0000  8300 IMAGE=8					; IMAGE NAME

                           0000000C  0000  8400 INPUT=12				; INPUT LOGICAL NAME DESCRIPTOR

                           00000010  0000  8500 OUTPUT=16				; OUTPUT LOGICAL NAME DESCRIPTOR

                           00000014  0000  8600 ERROR=20				; ERROR LOGICAL NAME DESCRIPTOR

                           00000018  0000  8700 PRVADR=24				; PRIVILEGE MASK ADDRESS

                           0000001C  0000  8800 QUOTA=28				; QUOTA BUFFER POINTER

                           00000020  0000  8900 PRCNAM=32				; PROCESS NAME DESCRIPTOR

                           00000024  0000  9000 BASPRI=36				; BASE PRIORITY

                           00000028  0000  9100 UIC=40					; UIC

                           0000002C  0000  9200 MBXUNT=44				; MAILBOX UNIT NUMBER

                           00000030  0000  9300 STSFLG=48				; STATUS FLAG MASK

                                     0000  9400 

SYSCREPRC       CREATE PROCESS SYSTEM SERVICE                    21-AUG-1978 20:23:38   VAX-11 MACRO X0.3-11               Page   3

01              DECLARATIONS                                                                                                     (1)



                           00000000  0000  9500 PQL_V_DEDUCT=0				; DEDUCTIBILE QUOTA FLAG

                                     0000  9600 

                                     0000  9700 ;

                                     0000  9800 ; OWN STORAGE:

                                     0000  9900 ;

                                     0000 10000 	.LIST	MEB			; LIST MACRO GENERATED CODE

                                     0000 10100 

                                 00000000 10200 	.PSECT	Y$EXEPAGED,BYTE		; PAGEABLE PSECT

                  4D 45 54 53 59 53  0000 10300 USRNAM:	.ASCII	/SYSTEM/		; DEFAULT USER NAME

                           00000006  0006 10400 UNAMSZ=.-USRNAM				; STRING LENGTH

                                     0006 10500 

                                     0006 10600 STSFLGTBL:				; TRANSLATION TABLE FOR STATUS FLAG BITS

                                     0006 10700 	STSFLAG	SSRWAIT			; BIT 0 => RESOURCE WAIT

                                 FF  0006       	.BYTE	-1

                                 0A  0007       	.BYTE	PCB$V_SSRWAIT

                                     0008 10800 	STSFLAG	SSFEXCU			; BIT 1 => SYSTEM SERVICE FAIL EXCEPTION

                                 FF  0008       	.BYTE	-1

                                 09  0009       	.BYTE	PCB$V_SSFEXCU

                                     000A 10900 					;	   FOR USER MODE.

                                     000A 11000 	STSFLAG	PSWAPM,PRV		; BIT 2 => PROCESS SWAP MODE

                                 0C  000A       	.BYTE	PRV$V_PSWAPM

                                 04  000B       	.BYTE	PCB$V_PSWAPM

                                     000C 11100 	STSFLAG	NOACNT,PRV		; BIT 3 => NO ACCOUNTING MESSAGE

                                 09  000C       	.BYTE	PRV$V_NOACNT

                                 0F  000D       	.BYTE	PCB$V_NOACNT

                                     000E 11200 	STSFLAG	BATCH			; BIT 4 => BATCH

                                 FF  000E       	.BYTE	-1

                                 0E  000F       	.BYTE	PCB$V_BATCH

                                     0010 11300 	STSFLAG	HIBER			; BIT 5 => HIBERNATE BEFORE CALLING 

                                 FF  0010       	.BYTE	-1

                                 13  0011       	.BYTE	PCB$V_HIBER

                           00000005  0012 11400 PRV$V_LOGIN=PRV$V_DETACH		; 

                                     0012 11500 	STSFLAG	LOGIN,PRV		; BIT 6 => LOGIN WITHOUT READING AUTH FILE

                                 05  0012       	.BYTE	PRV$V_LOGIN

                                 14  0013       	.BYTE	PCB$V_LOGIN

                           00000014  0014 11600 PRV$V_NETWRK=PRV$V_NETMBX		; 

                                     0014 11700 	STSFLAG	NETWRK,PRV

                                 14  0014       	.BYTE	PRV$V_NETWRK

                                 15  0015       	.BYTE	PCB$V_NETWRK

                                     0016 11800 					; INITIAL IMAGE IN PROCSTRT

                           00000008  0016 11900 STSFLGCNT=<.-STSFLGTBL>@-1		; NUMBER OF STATUS FLAGS

                                     0016 12000 

SYSCREPRC       CREATE PROCESS SYSTEM SERVICE                    21-AUG-1978 20:23:38   VAX-11 MACRO X0.3-11               Page   4

01              EXE$CREPRC - CREATE PROCESS SYSTEM SERVICE                                                                       (1)



                                     0016 12200 	.SBTTL	EXE$CREPRC - CREATE PROCESS SYSTEM SERVICE

                                     0016 12300 ;++

                                     0016 12400 ; FUNCTIONAL DESCRIPTION:

                                     0016 12500 ;	EXE$CREPRC CREATES A NEW PROCESS ACCORDING TO THE 

                                     0016 12600 ;	SUPPLIED PARAMETERS.  THE NEW PROCESS MAY BE EITHER A SUB-PROCESS

                                     0016 12700 ;	OR AN INDEPENDENT, DETACHED PROCESS.

                                     0016 12800 ;

                                     0016 12900 ; CALLING SEQUENCE:

                                     0016 13000 ;	CALLG	ARGLIST,EXE$CREPRC

                                     0016 13100 ;

                                     0016 13200 ; INPUT PARAMETERS:

                                     0016 13300 ;	PIDADR(AP) - ADDRESS AT WHICH TO RETURN PID OF CREATED PROCESS

                                     0016 13400 ;	IMAGE(AP)  - ADDRESS OF IMAGE NAME STRING DESCRIPTOR

                                     0016 13500 ;	INPUT(AP)  - ADDRESS OF INPUT NAME STRING DESCRIPTOR

                                     0016 13600 ;	OUTPUT(AP) - ADDRESS OF OUTPUT NAME STRING DESCRIPTOR

                                     0016 13700 ;	ERROR(AP)  - ADDRESS OF ERROR LOGICAL NAME STRING DESCRIPTOR

                                     0016 13800 ;	PRVADR(AP) - ADDRESS OF PRIVILEGE MASK FOR CREATED PROCESS

                                     0016 13900 ;	QUOTA(AP)  - POINTER TO QUOTA BUFFER

                                     0016 14000 ;	PRCNAM(AP) - ADDRESS OF PROCESS NAME STRING DESCRIPTOR

                                     0016 14100 ;	BASPRI(AP) - BASE PRIORITY FOR CREATED PROCESS

                                     0016 14200 ;	UIC(AP)    - UIC FOR CREATED PROCESS(0 => SUB-PROCESS)

                                     0016 14300 ;	MBXUNT(AP) - MAILBOX UNIT NUMBER FOR TERMINATION MESSAGES

                                     0016 14400 ;	STSFLG(AP) - STATUS FLAG SETTINGS FOR CREATED PROCESS

                                     0016 14500 ;	R4 - ADDRESS OF CURRENT PROCESS CONTROL BLOCK

                                     0016 14600 ;

                                     0016 14700 ;			BIT	MEANING

                                     0016 14800 ;			---	-------

                                     0016 14900 ;			 0	RESOURCE WAIT DISABLE

                                     0016 15000 ;			 1	SYSTEM SERVICE FAIL EXCEPTION ENABLE

                                     0016 15100 ;			 2	PROCESS SWAP MODE

                                     0016 15200 ;			 3	ACCOUNTING MESSAGE DISABLE

                                     0016 15300 ;			 4	BATCH INDICATOR

                                     0016 15400 ;			 5	HIBERNATE BEFORE CALLING INITIAL IMAGE

                                     0016 15500 ;			 6	BYPASS LOGIN VERIFICATION FOR DETACHED

                                     0016 15600 ;				PROCESS.

                                     0016 15700 ;

                                     0016 15800 ;

                                     0016 15900 ; OUTPUT PARAMETERS:

                                     0016 16000 ;	R0  -  COMPLETION STATUS CODE

                                     0016 16100 ;	@PIDADR(AP) - PROCESS ID (PID) OF CREATED PROCESS

                                     0016 16200 ;

                                     0016 16300 ; COMPLETION CODES:

                                     0016 16400 ;	SS$_NORMAL   -   SUCCESSFUL COMPLETION

                                     0016 16500 ;	SS$_ACCVIO   -   ACCESS VIOLATION

                                     0016 16600 ;	SS$_DUPLNAM  -   DUPLICATE PROCESS NAME

                                     0016 16700 ;	SS$_EXQUOTA  -   EXCEEDED QUOTA

                                     0016 16800 ;	SS$_INSFMEM  -   INSUFFICIENT MEMORY AVAILABLE

                                     0016 16900 ;	SS$_IVLOGNAM -   INVALID LOGICAL NAME

                                     0016 17000 ;	SS$_IVQUOTAL -   INVALID QUOTA LIST

                                     0016 17100 ;	SS$_IVSTSFLG -   INVALID STATUS FLAG ARGUMENT

                                     0016 17200 ;	SS$_NOPRIV   -   NO PRIVILEGE FOR SPECIFIED OPERATION

                                     0016 17300 ;

                                     0016 17400 ; SIDE EFFECTS:

                                     0016 17500 ;	IF NO ERRORS ARE DETECTED, A NEW PROCESS WILL HAVE BEEN ACTIVATED

                                     0016 17600 ;	AND MARKED NON-RESIDENT.  THE INITIAL INSWAP FOR THIS PROCESS

                                     0016 17700 ;	WILL BE FROM THE SHELL PROCESS.  EXECUTION FOR THIS PROCESS

                                     0016 17800 ;	BEGINS IN THE ROUTINE EXE$PROCSTRT WHICH WILL MOVE THE INFORMATION

SYSCREPRC       CREATE PROCESS SYSTEM SERVICE                    21-AUG-1978 20:23:38   VAX-11 MACRO X0.3-11               Page   5

01              EXE$CREPRC - CREATE PROCESS SYSTEM SERVICE                                                                       (1)



                                     0016 17900 ;	FROM THE PROCESS QUOTA BLOCK TO THE APPROPRIATE LOCATIONS

                                     0016 18000 ;	IN THE PROCESS CONTEXT.  CONTROL WILL THEN BE GIVEN TO THE

                                     0016 18100 ;	SPECIFIED IMAGE.

                                     0016 18200 ;

                                     0016 18300 ;--

                                     0016 18400 

                                     0016 18500 EXE$CREPRC::				; CREATE PROCESS SYSTEM SERVICE

                               0FFC  0016 18600 	.WORD	^M<R2,R3,R4,R5,R6,R7,R8,R9,R10,R11>	; SAVE ALL REGISTERS

                       04 AC     DD  0018 18700 	PUSHL	PIDADR(AP)		; SAVE PID RETURN ADDRESS

                          07     13  001B 18800 	BEQL	10$			; NONE, NO PROBE

                                     001D 18900 	IFNOWRT	#4,@(SP),20$		; CHECK FOR WRITABLE

            04            00     0D  001D       		PROBEW	#0,#4,@(SP)

                       00 BE         0020       

                          0F     13  0022       		BEQL	20$

            5B         28 AC     D0  0024 19000 10$:	MOVL	UIC(AP),R11		; FETCH UIC FOR CREATED PROCESS

                          0D     13  0028 19100 	BEQL	30$			; CREATING SUB-PROCESS

                                     002A 19200 	IFPRIV	DETACH,30$		; MAY THIS PROCESS CREATE DETACHED?

         64 B4            05     E0  002A       		BBS	#PRV$V_DETACH,@PCB$L_PHD(R4),30$

                          08         002E       

            50            24     3C  002F 19300 	MOVZWL	#SS$_NOPRIV,R0		; NO, SET ERROR CODE

                                 04  0032 19400 	RET				; RETURN

            50            0C     3C  0033 19500 20$:	MOVZWL	#SS$_ACCVIO,R0		; SET ERROR CODE FOR ACCESS VIOLATION

                                 04  0036 19600 	RET				; RETURN

            5E            1F     E0  0037 19700 30$:	BBS	#31,SP,35$		; BR IF TINY PROCESS

                          2B         003A       

            5E         C0 AE     9E  003B 19800 	MOVAB	-64(SP),SP		; ALLOCATE SPACE FOR DISK STRING

                       01 AE     9F  003F 19900 	PUSHAB	1(SP)			; SET ADDRESS IN DESCRIPTOR

                          3F     DD  0042 20000 	PUSHL	#63			; AND COUNT

            50            5E     D0  0044 20100 	MOVL	SP,R0			; SAVE POINTER TO DESCRIPTOR

            51            7E     DE  0047 20200 	MOVAL	-(SP),R1		; ALLOCATE SIZE RETURN SPACE

                                     004A 20300 	$TRNLOG_S	LOGNAM=EXE$GQ_SYSDISK,-; TRANSLATE CURRENT LOGICAL NAME DISK

                                     004A 20400 			RSLLEN=(R1),- 	; SAVE LENGTH TEMPORARILY

                                     004A 20500 			RSLBUF=(R0)	; POINT TO BUFFER DESCRIPTOR

                          00     DD  004A       		PUSHL	#0

                          00     DD  004C       		PUSHL	#0

                          00     DD  004E       		PUSHL	#0

                          60     7F  0050       		PUSHAQ	(R0)

                          61     3F  0052       		PUSHAW	(R1)

                 00000000'EF     7F  0054       		PUSHAQ	EXE$GQ_SYSDISK

   00000000'GF            06     FB  005A       		CALLS	#6,G^SYS$TRNLOG

                          07     BA  0061 20600 	POPR	#^M<R0,R1,R2>		; GET SIZE OF STRING AND CLEAN STACK

            6E            50     33  0063 20700 	CVTWB	R0,(SP)			; AND MAKE ASCIC STRING

                          FF97'  30  0066 20800 35$:	BSBW	EXE$ALLOCPCB		; ALLOCATE PCB, WAIT IF NECESSARY

            01            50     E8  0069 20900 	BLBS	R0,40$			; CONTINUE IF ALLOCATED

                                 04  006C 21000 	RET				; OTHERWISE RETURN ERROR CODE

            5A            52     D0  006D 21100 40$:	MOVL	R2,R10			; SAVE ADDRESS OF NEW PCB

                          FF8D'  30  0070 21200 	BSBW	EXE$ALLOCPQB		; ALLOCATE PROCESS QUOTA BUFFER

            03            50     E8  0073 21300 	BLBS	R0,50$			; CONTINUE IF ALLOCATED

                          02E1   31  0076 21400 	BRW	ABRT2			; OTHERWISE ABORT AND RETURN PCB

            59            52     D0  0079 21500 50$:	MOVL	R2,R9			; SAVE ADDRESS OF QUOTA BUFFER

                                     007C 21600 ;

                                     007C 21700 ;	INITIALIZE NEW PCB		

                                     007C 21800 ;

            6E            00     2C  007C 21900 	MOVC5	#0,(SP),#0,#<PCB$C_LENGTH-12>,12(R10)	; CLEAR PCB

       0070 8F            00         007F       

                       0C AA         0083       

         10 AA         10 AA     DE  0085 22000 	MOVAL	PCB$L_ASTQFL(R10),PCB$L_ASTQFL(R10)	; SET UP AST Q HEADER

SYSCREPRC       CREATE PROCESS SYSTEM SERVICE                    21-AUG-1978 20:23:38   VAX-11 MACRO X0.3-11               Page   6

01              EXE$CREPRC - CREATE PROCESS SYSTEM SERVICE                                                                       (1)



         14 AA         10 AA     DE  008A 22100 	MOVAL	PCB$L_ASTQFL(R10),PCB$L_ASTQBL(R10)	;

         0D AA            0F     90  008F 22200 	MOVB	#^X0F,PCB$B_ASTEN(R10)			; SET ALL AST ENABLES

         36 AA         2C AC     B0  0093 22300 	MOVW	MBXUNT(AP),PCB$W_TMBU(R10)		; TERMINATION MAILBOX UNIT

         3A AA   00000000'EF     B0  0098 22500 	MOVW	SWP$GL_SHELLSIZ,PCB$W_PPGCNT(R10)	; AND PROCESS PAGE COUNT

                                     00A0 22600 ;

                                     00A0 22700 ;	INITIALIZE QUOTA BUFFER

                                     00A0 22800 ;

            6E            00     2C  00A0 22900 	MOVC5	#0,(SP),#0,#<PQB$C_LENGTH-12>,12(R9)	; CLEAR QUOTA BUFFER

       01A0 8F            00         00A3       

                       0C A9         00A7       

       FF52 CF            06     2C  00A9 23000 	MOVC5	#UNAMSZ,USRNAM,#32,#12,PQB$T_USERNAME(R9); ASSUME SYSTEM USER NAME

            0C            20         00AE       

                     0178 C9         00B0       

                                     00B3 23100 	MOVSTRING	LIM=15,-	; MOVE PROCESS NAME TO PQB TO VALIDATE

                                     00B3 23200 		SRC=PRCNAM,-		; FROM PROCESS NAME DESCRIPTOR

                                     00B3 23300 		DST=IMAGE		; TO IMAGE SLOT IN PQB

                          02BB   30  00B3       	BSBW	MOVSTR			; CALL MOVE SUBROUTINE

                                 0F  00B6       	.BYTE	15			; COUNT LIMIT

                                 08  00B7       	.BYTE	PRCNAM@-2			; SOURCE OFFSET FROM AP

                                 0C  00B8       	.BYTE	PQB$T_IMAGE		; DESTINATION OFFSET IN PQB

            56         0C A9     9A  00B9 23400 	MOVZBL	PQB$T_IMAGE(R9),R6	; FETCH STRING LENGTH FROM BUFFER

                          0B     13  00BD 23500 	BEQL	60$			; NO PROCESS NAME, NULL STRING

                          56     D6  00BF 23600 	INCL	R6			; INCLUDE COUNT BYTE

         0C A9            56     28  00C1 23700 	MOVC3	R6,PQB$T_IMAGE(R9),PCB$T_LNAME(R10)	; SET INTO NEW PCB

                       6C AA         00C5       

                       0C A9     7C  00C7 23800 	CLRQ	PQB$T_IMAGE(R9)		; CLEAR IMAGE NAME LENGTH

            54   00000000'EF     D0  00CA 23900 60$:	MOVL	SCH$GL_CURPCB,R4	; RESTORE PCB ADDRESS

            50         64 B4     7D  00D1 24000 	MOVQ	@PCB$L_PHD(R4),R0	; GET PRIVILEGE MASK

            52            50     7D  00D5 24100 	MOVQ	R0,R2			; ASSUME SAME PRIVILEGES

            57         18 AC     D0  00D8 24200 	MOVL	PRVADR(AP),R7		; FETCH ADDRESS OF PRIVILEGE MASK

                          1A     13  00DC 24300 	BEQL	70$			; NONE SPECIFIED

                                     00DE 24400 	IFNORD	#8,(R7),125$		; ERROR IF NOT READABLE

            08            00     0C  00DE       		PROBER	#0,#8,(R7)

                          67         00E1       

                          72     13  00E2       		BEQL	125$

            52            67     7D  00E4 24500 	MOVQ	(R7),R2			; FETCH NEW PRIVILEGE MASK

                                     00E7 24600 	IFPRIV	SETPRV,70$		; SKIP MINIMIZATION IF SETPRV

         64 B4            0E     E0  00E7       		BBS	#PRV$V_SETPRV,@PCB$L_PHD(R4),70$

                          0C         00EB       

            50            50     D2  00EC 24700 	MCOML	R0,R0			; INVERT FOR BIT CLR

            51            51     D2  00EF 24800 	MCOML	R1,R1			;

            52            50     CA  00F2 24900 	BICL	R0,R2			; MINIMIZE PRIVILEGES

            53            51     CA  00F5 25000 	BICL	R1,R3			; IF CALLER IS NOT PRIVILEGED ENOUGH

            69            52     7D  00F8 25100 70$:	MOVQ	R2,PQB$Q_PRVMSK(R9)	; SET PRIVILEGES IN BUFFER

            05            00     EF  00FB 25200 	EXTZV	#0,#5,BASPRI(AP),R0	; FETCH DESIRED BASE PRIORITY

            50         24 AC         00FE       

            1F            50     C3  0101 25300 	SUBL3	R0,#31,R0		; CONVERT TO INTERNAL PRIORITY

                          50         0104       

                                     0105 25700 	IFPRIV	SETPRI,100$		; SKIP MINIMIZATION IF PRIVILEGE

         64 B4            0D     E0  0105       		BBS	#PRV$V_SETPRI,@PCB$L_PHD(R4),100$

                          0A         0109       

         33 A4            50     91  010A 25800 	CMPB	R0,PCB$B_PRIB(R4)	; OTHERWISE MINIMIZE WITH CALLERS BASE

                          04     1E  010E 25900 	BGEQU	100$			; GOOD VALUE, USE IT

            50         33 A4     90  0110 26000 	MOVB	PCB$B_PRIB(R4),R0	; NO, USE CALLERS BASE PRIORITY

         33 AA            50     90  0114 26100 100$:	MOVB	R0,PCB$B_PRIB(R10)	; SET IN NEW PCB

         0B AA            50     90  0118 26200 	MOVB	R0,PCB$B_PRI(R10)	; AS BOTH CURRENT AND BASE PRIORITY

         20 AA            5B     D0  011C 26300 	MOVL	R11,PCB$L_UIC(R10)	; STORE UIC FOR NEW PROCESS

SYSCREPRC       CREATE PROCESS SYSTEM SERVICE                    21-AUG-1978 20:23:38   VAX-11 MACRO X0.3-11               Page   7

01              EXE$CREPRC - CREATE PROCESS SYSTEM SERVICE                                                                       (1)



                          0A     12  0120 26400 	BNEQ	110$			; BR IF IT WAS SPECIFIED

         20 AA         20 A4     D0  0122 26500 	MOVL	PCB$L_UIC(R4),PCB$L_UIC(R10)	; OTHERWISE USE UIC OF CREATOR

         1C AA         60 A4     D0  0127 26600 	MOVL	PCB$L_PID(R4),PCB$L_OWNER(R10)	; AND INDICATE SUBPROCESS

            57   00000000'EF     3C  012C 26700 110$:	MOVZWL	SCH$GL_MAXPIX,R7	; INITIALIZE INDEX FOR NAME CHECK

                          56     D5  0133 26800 	TSTL	R6			; ANY LOGICAL NAME FOR NEW PROCESS?

                          25     13  0135 26900 	BEQL	140$			; NO, SKIP SEARCH

            58   00000000'FF47   D0  0137 27000 120$:	MOVL	@SCH$GL_PCBVEC[R7],R8	; FETCH A PCB ADDRESS

         22 AA         22 A8     B1  013F 27100 	CMPW	PCB$W_GRP(R8),PCB$W_GRP(R10)	; SAME GROUP?

                          13     12  0144 27200 	BNEQ	130$			; NO, TRY ANOTHER

         6C AA            56     29  0146 27300 	CMPC3	R6,PCB$T_LNAME(R10),PCB$T_LNAME(R8)	; COMPARE NAMES

                       6C A8         014A       

                          0B     12  014C 27400 	BNEQ	130$			; NO MATCH, CONTINUE

            50       0094 8F     3C  014E 27500 	MOVZWL	#SS$_DUPLNAM,R0		; SET DUPLICATE NAME CODE

                          0206   31  0153 27600 	BRW	ABORT			; AND ABORT CREATION

                          0261   31  0156 27650 125$:	BRW	ACCVIO			; GIVE ACCESS VIOLATION AND ABORT

            DB            57     F5  0159 27700 130$:	SOBGTR	R7,120$			; CONTINUE SEARCH

                                     015C 27800 140$:	MOVSTRING	LIM=63,-	; MOV IMAGE NAME TO BUFFER

                                     015C 27900 			SRC=IMAGE,-	; FROM IMAGE STRING DESCRIPTOR

                                     015C 28000 			DST=IMAGE	; TO PQB$T_IMAGE

                          0212   30  015C       	BSBW	MOVSTR			; CALL MOVE SUBROUTINE

                                 3F  015F       	.BYTE	63			; COUNT LIMIT

                                 02  0160       	.BYTE	IMAGE@-2			; SOURCE OFFSET FROM AP

                                 0C  0161       	.BYTE	PQB$T_IMAGE		; DESTINATION OFFSET IN PQB

                                     0162 28100 	MOVSTRING	LIM=63,-	; MOVE INPUT LOGICAL NAME TO BUFFER

                                     0162 28200 			SRC=INPUT,-	; FROM INPUT STRING DESCRIPTOR

                                     0162 28300 			DST=INPUT	; TO PQB$T_INPUT

                          020C   30  0162       	BSBW	MOVSTR			; CALL MOVE SUBROUTINE

                                 3F  0165       	.BYTE	63			; COUNT LIMIT

                                 03  0166       	.BYTE	INPUT@-2			; SOURCE OFFSET FROM AP

                                 8C  0167       	.BYTE	PQB$T_INPUT		; DESTINATION OFFSET IN PQB

                                     0168 28400 	MOVSTRING	LIM=63,-	; MOVE OUTPUT LOGICAL NAME TO BUFFER

                                     0168 28500 			SRC=OUTPUT,-	; FROM OUTPUT STRING DESCRIPTOR

                                     0168 28600 			DST=OUTPUT	; TO PQB$T_OUTPUT

                          0206   30  0168       	BSBW	MOVSTR			; CALL MOVE SUBROUTINE

                                 3F  016B       	.BYTE	63			; COUNT LIMIT

                                 04  016C       	.BYTE	OUTPUT@-2			; SOURCE OFFSET FROM AP

                                 CC  016D       	.BYTE	PQB$T_OUTPUT		; DESTINATION OFFSET IN PQB

                                     016E 28700 	MOVSTRING	LIM=63,-	; MOVE ERROR LOGICAL NAME TO BUFFER

                                     016E 28800 			SRC=ERROR,-	; FROM ERROR STRING DESCRIPTOR

                                     016E 28900 			DST=ERROR	; TO PQB$T_ERROR

                          0200   30  016E       	BSBW	MOVSTR			; CALL MOVE SUBROUTINE

                                 3F  0171       	.BYTE	63			; COUNT LIMIT

                                 05  0172       	.BYTE	ERROR@-2			; SOURCE OFFSET FROM AP

                                 4C  0173       	.BYTE	PQB$T_ERROR		; DESTINATION OFFSET IN PQB

                                     0174 29000 

            5E            1F     E0  0174 29100 	BBS	#31,SP,145$		; IF SYSTEM SPACE STACK

                          2E         0177       

                                     0178 29200 					; THEN NO P1 SPACE DATA BASE AVAILABLE

                          3F     BB  0178 29300 	PUSHR	#^M<R0,R1,R2,R3,R4,R5>	; SAVE MOVC REGISTERS

         18 AE       0040 8F     28  017A 29400 	MOVC3	#64,24(SP),PQB$T_DISK(R9)		; MOVE SYS$DISK LOGICAL NAME

                     010C C9         0180       

   00000000'9F            0C     28  0183 29500 	MOVC3	#12,@#CTL$T_USERNAME,PQB$T_USERNAME(R9)	; PASS USER NAME

                     0178 C9         018A       

       0184 C9   00000000'9F     7D  018D 29600 	MOVQ	@#CTL$T_ACCOUNT,PQB$T_ACCOUNT(R9)	; AND ACCOUNT

   00000000'9F            20     28  0196 29700 	MOVC3	#32,@#PIO$GT_DDSTRING,PQB$T_DDSTRING(R9); DEFAULT DIRECTORY

                     018C C9         019D       

                          3F     BA  01A0 29800 	POPR	#^M<R0,R1,R2,R3,R4,R5>	; RESTORE MOVC REGISTERS

SYSCREPRC       CREATE PROCESS SYSTEM SERVICE                    21-AUG-1978 20:23:38   VAX-11 MACRO X0.3-11               Page   8

01              EXE$CREPRC - CREATE PROCESS SYSTEM SERVICE                                                                       (1)



            5E         40 AE     9E  01A2 29900 	MOVAB	64(SP),SP		; CLEAN STRING FROM STACK

                                     01A6 30000 ;

                                     01A6 30100 ;	ESTABLISH STATUS FLAG SETTINGS FOR PROCESS

                                     01A6 30200 ;

            58         30 AC     D0  01A6 30300 145$:	MOVL	STSFLG(AP),R8		; GET STATUS FLAG ARGUMENT

            18            08     EF  01AA 30400 	EXTZV	#STSFLGCNT,#<32-STSFLGCNT>,R8,R0	; TEST MBZ FIELD

            50            58         01AD       

                          08     13  01AF 30500 	BEQL	150$			; CORRECT IF ZERO

            50       017C 8F     3C  01B1 30600 	MOVZWL	#SS$_IVSTSFLG,R0	; ERROR, INVALID STATUS FLAG ARG

                          01A3   31  01B6 30700 	BRW	ABORT			; ABORT CREATION

                          57     D4  01B9 30800 150$:	CLRL	R7			; INITIALIZE INDEX FOR SCAN

            08            57     EA  01BB 30900 160$:	FFS	R7,#STSFLGCNT,R8,R7	; FIND AN ACTIVE STATUS FLAG

            57            58         01BE       

                          21     13  01C0 31000 	BEQL	190$			; NONE, FINISHED WITH SCAN

            51       FE3F CF47   3E  01C2 31100 	MOVAW	STSFLGTBL[R7],R1	; POINT TO TRANSLATION ENTRY

            50            81     98  01C8 31200 	CVTBL	(R1)+,R0		; GET PRIVILEGE BIT NUMBER  TO CHECK

                          0A     19  01CB 31300 	BLSS	170$			; NEGATIVE MEANS NOT PRIVILEGED

            69            50     E0  01CD 31400 	BBS	R0,PQB$Q_PRVMSK(R9),170$; NEW PROCESS MUST HAVE PRIVILEGE

                          06         01D0       

            50            24     3C  01D1 31500 	MOVZWL	#SS$_NOPRIV,R0		; INDICATE NO PRIVILEGE ERROR

                          0185   31  01D4 31600 	BRW	ABORT			; AND ABORT PROCESS CREATION

            50            61     9A  01D7 31700 170$:	MOVZBL	(R1),R0			; GET BIT NUMBER IN STS

         28 AA            50     E2  01DA 31800 	BBSS	R0,PCB$L_STS(R10),180$	; SET STSFLG IN NEW PCB

                          00         01DE       

                          57     D6  01DF 31900 180$:	INCL	R7			; NEXT BIT

                          D8     11  01E1 32000 	BRB	160$			; CONTINUE SCAN

                                     01E3 32100 190$:					; DONE WITH STSFLG

SYSCREPRC       CREATE PROCESS SYSTEM SERVICE                    21-AUG-1978 20:23:38   VAX-11 MACRO X0.3-11               Page   9

01              ESTABLISH QUOTAS FOR NEW PROCESS                                                                                 (1)



                                     01E3 32300 	.SBTTL	ESTABLISH QUOTAS FOR NEW PROCESS

                                     01E3 32400 ;-------------------------------------------------------------------

                                     01E3 32500 ;

                                     01E3 32600 ;	PROCESS QUOTA BLOCK

                                     01E3 32700 ;

                                     01E3 32800 ;-------------------------------------------------------------------

                                     01E3 32900 

                                     01E3 33000 ;

                                     01E3 33100 ;	THE PROCESS QUOTA LIST, IF SUPPLIED, HAS THE FOLLOWING STRUCTURE

                                     01E3 33200 ;	EACH QUOTA IS INTRODUCED AND IDENTIFIED BY A CODE BYTE, PQL$_?????,

                                     01E3 33300 ;	WHICH IS FOLLOWED BY A LONGWORD CONTAINING THE QUOTA VALUE.

                                     01E3 33400 ;

                                     01E3 33500 ;	THE QUOTA VALUES SUPPLIED ARE MAXIMIZED WITH THE REQUIRED MINIMUM

                                     01E3 33600 ;	VALUES AND REPLACE THE DEFAULT VALUE FOR EACH SPECIFIED QUOTA.

                                     01E3 33700 ;	ONLY IF THE PROCESS CREATION IS SUCCESSFUL ARE THE DEDUCTIBLE

                                     01E3 33800 ;	QUOTAS SUBTRACTED FROM THOSE OF A PROCESS CREATING A DETACHED PROCESS.

                                     01E3 33900 ;

                                     01E3 34000 

                                     01E3 34100 QUOTALIST:				; 

                          1F     BB  01E3 34200 	PUSHR	#^M<R0,R1,R2,R3,R4>	; SAVE REGISTERS FOR MOVC

                                 28  01E5 34300 	MOVC3	#<<PQL$_LENGTH-1>*4>,-	; COPY DEFAULTS TO PQB

                          2C         01E6 34400 		PQL$AL_DEFAULT+4,-	; AS ASSUMED VALUES FOR 

       014C C9   00000004'EF         01E7 34500 		PQB$L_ASTLM(R9)		; QUOTAS

                          1F     BA  01EF 34600 	POPR	#^M<R0,R1,R2,R3,R4>	; RESTORE REGISTERS

            55         64 A4     D0  01F1 34700 	MOVL	PCB$L_PHD(R4),R5	; FOR SWAPPER POINT TO REAL PHD SINCE NO

   00000000'EF         60 A4     D1  01F5 34800 	CMPL	PCB$L_PID(R4),SCH$GL_SWPPID	; IS IT THE SWAPPER

                          07     13  01FD 34900 	BEQL	5$			; YES, USE PCB POINTER TO PHD

            55   00000000'9F     D0  01FF 35000 	MOVL	@#CTL$GL_PHD,R5		; GET POINTER TO PHD WINDOW IN 

                                     0206 35100 					; CONTROL REGION FOR WINDOW

            57         1C AC     D0  0206 35200 5$:	MOVL	QUOTA(AP),R7		; GET POINTER TO QUOTA LIST

                          2D     13  020A 35300 	BEQL	NOQLIST			; NONE SPECIFIED

            58            0C     3C  020C 35400 	MOVZWL	#PQL$_LENGTH,R8		; SET MAXIMUM NUMBER OF QUOTAS

                                     020F 35500 10$:	IFNORD	#1,(R7),30$		; CHECK FOR ACCESSIBILITY

            01            00     0C  020F       		PROBER	#0,#1,(R7)

                          67         0212       

                          21     13  0213       		BEQL	30$

            56            87     9A  0215 35600 	MOVZBL	(R7)+,R6		; GET CODE

                                     0218 35700 	ASSUME	PQL$_LISTEND EQ 0	;

                          1F     13  0218 35800 	BEQL	NOQLIST			; DONE IF PQL$_ENDLIST

                                     021A 35900 	IFNORD	#4,(R7),30$		; CHECK QUOTA FOR ACCESSIBILITY

            04            00     0C  021A       		PROBER	#0,#4,(R7)

                          67         021D       

                          16     13  021E       		BEQL	30$

            0C            56     B1  0220 36000 	CMPW	R6,#PQL$_LENGTH		; CHECK FOR LEGAL QUOTA NUMBER

                          09     18  0223 36100 	BGEQ	20$			; INVALID IF GEQ

       0148 C946          87     D0  0225 36200 	MOVL	(R7)+,PQB$L_ASTLM-4(R9)[R6] ; MERGE INTO PQB QUOTA LIST

            E1            58     F5  022B 36300 	SOBGTR	R8,10$			; GO GET NEXT QUOTA SPECIFIED

            50       0164 8F     3C  022E 36400 20$:	MOVZWL	#SS$_IVQUOTAL,R0	; INVALID QUOTA LIST

                          0126   31  0233 36500 	BRW	ABORT			; SIGNAL ERROR CONDITION AND ABORT CREATE

                          0181   31  0236 36600 30$:	BRW	ACCVIO			; ABORT WITH ACCESS VIOLATION

                                     0239 36700 NOQLIST:				; DONE MERGING QUOTAS SPECIFIED

            56   00000030'EF     DE  0239 36800 	MOVAL	PQL$AL_MIN+<4*PQL$_LENGTH>,R6	; SET POINTER TO BASE OF MIN VALUES

            53       0178 C9     DE  0240 36900 	MOVAL	<PQB$L_ASTLM+<4*<PQL$_LENGTH-1>>>(R9),R3 ; SET BASE OF QUOTA VALUES

            58            0B     3C  0245 37000 	MOVZWL	#<PQL$_LENGTH-1>,R8	; SET COUNT FOR SCAN

            76            73     D1  0248 37100 10$:	CMPL	-(R3),-(R6)		; CHECK AGAINST MINIMUM ALLOWABLE VALUE

                          03     18  024B 37200 	BGEQ	20$			; BR IF ABOVE MINIMUM

            63            66     D0  024D 37300 	MOVL	(R6),(R3)		; FORCE TO MINIMUM

SYSCREPRC       CREATE PROCESS SYSTEM SERVICE                    21-AUG-1978 20:23:38   VAX-11 MACRO X0.3-11               Page  10

01              ESTABLISH QUOTAS FOR NEW PROCESS                                                                                 (1)



                                     0250 37400 20$:	

            50            63     D0  0250 37500 	MOVL	(R3),R0			; GET QUOTA REQUEST VALUE

   00000000'EF48          00     E1  0253 37600 	BBC	#PQL_V_DEDUCT,PQL$AB_FLAG[R8],30$	; BR IF NOT DEDUCTIBLE

                          03         025B       

            50            66     C0  025C 37700 	ADDL	(R6),R0			; MUST RETAIN MINIMUM FOR CREATOR

                          09     10  025F 37800 30$:	BSBB	40$			; PROCESS QUOTA

            E4            58     F5  0261 37900 	SOBGTR	R8,10$			; LOOP FOR ALL QUOTAS

                 00000000'EF     17  0264 38000 	JMP	ACTIVATE		; GO TO NONPAGED PSECT

                                     026A 38100 

                                     026A 38200 40$:	CASE	R8,LIMIT=#1,<-		; SWITCH ON TYPE OF QUOTA

                                     026A 38300 		QASTLM,-		; 1 => AST LIMIT

                                     026A 38400 		QBIOLM,-		; 2 => BUFFERED I/O LIMIT

                                     026A 38500 		QBYTLM,-		; 3 => BUFIO BYTE COUNT LIMIT

                                     026A 38600 		QCPULM,-		; 4 => CPU TIME LIMIT

                                     026A 38700 		QDIOLM,-		; 5 => DIRECT I/O LIMIT

                                     026A 38800 		QFILLM,-		; 6 => OPEN FILE LIMIT

                                     026A 38900 		QPGFLQUOTA,-		; 7 => PAGING FILE QUOTA

                                     026A 39000 		QPRCLM,-		; 8 => SUB-PROCESS LIMIT

                                     026A 39100 		QTQELM,-		; 9 => TIMER QUEUE ENTRY LIMIT

                                     026A 39200 		QWSQUOTA,-		;10 => WORKING SET QUOTA

                                     026A 39300 		QWSDEFAULT-		;11 => WORKING SET DEFAULT

                                     026A 39400 		>; 

            01            58     AF  026A       	CASEW	R8,#1,S^#<<30001$-30000$>/2>-1

                          0A'        026D       

                                     026E       30000$:

                               0017' 026E       	.WORD	QASTLM-30000$

                               0025' 0270       	.WORD	QBIOLM-30000$

                               0037' 0272       	.WORD	QBYTLM-30000$

                               0049' 0274       	.WORD	QCPULM-30000$

                               005E' 0276       	.WORD	QDIOLM-30000$

                               006F' 0278       	.WORD	QFILLM-30000$

                               007C' 027A       	.WORD	QPGFLQUOTA-30000$

                               0089' 027C       	.WORD	QPRCLM-30000$

                               009B' 027E       	.WORD	QTQELM-30000$

                               00A8' 0280       	.WORD	QWSQUOTA-30000$

                               00C1' 0282       	.WORD	QWSDEFAULT-30000$

                                     0284       30001$:

                                 05  0284 39500 	RSB				; 

                                     0285 39600 

                                     0285 39700 QASTLM:					; AST LIMIT

         44 A5            50     B1  0285 39800 	CMPW	R0,PHD$W_ASTLM(R5)	; CHECK FOR IN LIMIT

                          03     1B  0289 39900 	BLEQU	10$			; YES, CONTINUE

                          00C1   30  028B 40000 	BSBW	OVERCHECK		; CHECK FOR LEGAL TO BE OVER

         3C AA            63     F7  028E 40100 10$:	CVTLW	(R3),PCB$W_ASTCNT(R10)	; SET AS WORKING AST COUNT

                                 05  0292 40200 	RSB				; NEXT QUOTA

                                     0293 40300 

                                     0293 40400 QBIOLM:					; BUFFERED I/O LIMIT

         40 A4            50     B1  0293 40500 	CMPW	R0,PCB$W_BIOLM(R4)	; CHECK FOR IN LIMIT

                          03     1B  0297 40600 	BLEQU	10$			; YES, CONTINUE

                          00B3   30  0299 40700 	BSBW	OVERCHECK		; CHECK FOR LEGAL TO EXCEED

         40 AA            63     F7  029C 40800 10$:	CVTLW	(R3),PCB$W_BIOLM(R10)	; SET LIMIT

         3E AA            63     F7  02A0 40900 	CVTLW	(R3),PCB$W_BIOCNT(R10)	; AND WORKING COUNT

                                 05  02A4 41000 	RSB				; NEXT QUOTA

                                     02A5 41100 

                                     02A5 41200 QBYTLM:					; BUFFERED I/O BYTE LIMIT

         68 A4            50     B1  02A5 41300 	CMPW	R0,PCB$W_BYTLM(R4)	; CHECK FOR IN LIMIT

                          03     1B  02A9 41400 	BLEQU	10$			; YES,CONTINUE

SYSCREPRC       CREATE PROCESS SYSTEM SERVICE                    21-AUG-1978 20:23:38   VAX-11 MACRO X0.3-11               Page  11

01              ESTABLISH QUOTAS FOR NEW PROCESS                                                                                 (1)



                          00A1   30  02AB 41500 	BSBW	OVERCHECK		; CHECK FOR LEGAL TO EXCEED

         68 AA            63     F7  02AE 41600 10$:	CVTLW	(R3),PCB$W_BYTLM(R10)	; SET LIMIT

         42 AA            63     F7  02B2 41700 	CVTLW	(R3),PCB$W_BYTCNT(R10)	; AND WORKING COUNT

                                 05  02B6 41800 	RSB				; NEXT QUOTA

                                     02B7 41900 

                                     02B7 42000 QCPULM:					; CPU TIME LIMIT

            51         58 A5     D0  02B7 42100 	MOVL	PHD$L_CPULIM(R5),R1	; GET CURRENT PROCESS LIMIT

                          0E     13  02BB 42200 	BEQL	20$			; NO LIMIT ON CURRENT PROCESS

            51         3C A5     C2  02BD 42300 	SUBL	PHD$L_CPUTIM(R5),R1	; DETERMINE REMAINING LIMIT

                          05     19  02C1 42400 	BLSS	10$			; WILL EXCEED LIMIT

            51            50     D1  02C3 42500 	CMPL	R0,R1			; CHECK FOR IN LIMIT

                          03     15  02C6 42600 	BLEQ	20$			; YES, CONTINUE

                          0084   30  02C8 42700 10$:	BSBW	OVERCHECK		; CHECK FOR LEGAL TO EXCEED

                                 05  02CB 42800 20$:	RSB				; NEXT QUOTA

                                     02CC 42900 

                                     02CC 43000 QDIOLM:					; DIRECT I/O LIMIT

         46 A4            50     B1  02CC 43100 	CMPW	R0,PCB$W_DIOLM(R4)	; CHECK FOR IN LIMIT

                          02     1B  02D0 43200 	BLEQU	10$			; YES, CONTINUE

                          7B     10  02D2 43300 	BSBB	OVERCHECK		; CHECK FOR LEGAL TO EXCEED LIMIT

         46 AA            63     F7  02D4 43400 10$:	CVTLW	(R3),PCB$W_DIOLM(R10)	; SET LIMIT

         44 AA            63     F7  02D8 43500 	CVTLW	(R3),PCB$W_DIOCNT(R10)	; AND SET WORKING COUNT

                                 05  02DC 43600 	RSB				;

                                     02DD 43700 

                                     02DD 43800 QFILLM:					; OPEN FILE LIMIT

         48 A4            50     B1  02DD 43900 	CMPW	R0,PCB$W_FILCNT(R4)	; GET LIMIT FOR CURRENT PROCESS

                          02     1B  02E1 44000 	BLEQU	10$			; YES, CONTINUE

                          6A     10  02E3 44100 	BSBB	OVERCHECK		; CHECK FOR LEGAL TO EXCEED LIMIT

         48 AA            63     F7  02E5 44200 10$:	CVTLW	(R3),PCB$W_FILCNT(R10)	; SET WORKING COUNT FOR FILES

                                 05  02E9 44300 	RSB				; NEXT QUOTA

                                     02EA 44400 

                                     02EA 44500 QPGFLQUOTA:				; PAGE FILE QUOTA

            51         34 A5     D0  02EA 44600 	MOVL	PHD$L_PGFLCNT(R5),R1	; GET REMAINING QUOTA

            51            50     D1  02EE 44700 	CMPL	R0,R1			; CHECK FOR IN LIMIT

                          03     1F  02F1 44800 	BLSSU	10$			; YES, CONTINUE

                          0059   30  02F3 44900 	BSBW	OVERCHECK		; CHECK FOR LEGAL TO EXCEED QUOTA

                                 05  02F6 45000 10$:	RSB				; NEXT QUOTA

                                     02F7 45100 

                                     02F7 45200 QPRCLM:					; SUBPROCESS QUOTA

         42 A5         6A A4     A3  02F7 45300 	SUBW3	PCB$W_PRCCNT(R4),PHD$W_PRCLM(R5),R1 ; GET REMAINING QUOTA

                          51         02FC       

                          51     B7  02FD 45400 	DECW	R1			; ACCOUNT FOR CREATE OF THIS PROCESS

                          05     19  02FF 45500 	BLSS	5$			; INSUFFICIENT QUOTA MAYBE

            51            50     B1  0301 45600 	CMPW	R0,R1			; CHECK FOR IN LIMIT

                          02     19  0304 45700 	BLSS	10$			; YES, CONTINUE

                          47     10  0306 45800 5$:	BSBB	OVERCHECK		; CHECK FOR LEGAL TO EXCEED LIMIT

                                 05  0308 45900 10$:	RSB				; NEXT QUOTA

                                     0309 46000 

                                     0309 46100 QTQELM:					; TIMER QUEUE ENTRY QUOTA

         4A A4            50     B1  0309 46200 	CMPW	R0,PCB$W_TQCNT(R4)	; CHECK FOR IN LIMIT

                          02     1F  030D 46300 	BLSSU	10$			; YES, CONTINUE

                          3E     10  030F 46400 	BSBB	OVERCHECK		; CHECK FOR LEGAL TO EXCEED LIMIT

         4A AA            63     F7  0311 46500 10$:	CVTLW	(R3),PCB$W_TQCNT(R10)	; AND WORKING COUNT 

                                 05  0315 46600 	RSB				; NEXT QUOTA

                                     0316 46700 

                                     0316 46800 QWSQUOTA:				; WORKING SET QUOTA

                          26     10  0316 46900 	BSBB	MAXWSCNT		; LIMIT TO MAX WORKING SET COUNT

            50         08 A5     A0  0318 46950 	ADDW	PHD$W_WSLIST(R5),R0	; ADD BASE OF WORKING SET LIST

SYSCREPRC       CREATE PROCESS SYSTEM SERVICE                    21-AUG-1978 20:23:38   VAX-11 MACRO X0.3-11               Page  12

01              ESTABLISH QUOTAS FOR NEW PROCESS                                                                                 (1)



         18 A5            50     B1  031C 47000 	CMPW	R0,PHD$W_WSQUOTA(R5)	; CHECK FOR IN LIMIT

                          08     1F  0320 47100 	BLSSU	10$			; YES,CONTINUE

                          5B     D5  0322 47200 	TSTL	R11			; ARE WE CREATING A DETACHED PROCESS?

                          04     12  0324 47205 	BNEQ	10$			; YES, USE AS IS

            50         18 A5     B0  0326 47210 	MOVW	PHD$W_WSQUOTA(R5),R0	; ELSE FORCE TO CORRECT MAXIMUM

            50         08 A5     A2  032A 47215 10$:	SUBW	PHD$W_WSLIST(R5),R0	; REMOVE BIAS

                                 05  032E 47300 	RSB				; NEXT QUOTA

                                     032F 47400 

                                     032F 47500 QWSDEFAULT:				; WORKING SET LIST DEFAULT

                          0D     10  032F 47600 	BSBB	MAXWSCNT		; LIMIT TO MAXIMUM WORKING SET COUNT

       0170 C9            50     D1  0331 47700 	CMPL	R0,PQB$L_WSQUOTA(R9)	; CHECK AGAINST QUOTA

                          05     1B  0336 47800 	BLEQU	10$			; LESS, USE AS IS

            63       0170 C9     D0  0338 47900 	MOVL	PQB$L_WSQUOTA(R9),(R3)	; MINIMIZE WITH WSQUOTA

                                 05  033D 48000 10$:	RSB				; NEXT QUOTA

                                     033E 48100 

                                     033E 48200 

                                     033E 48300 MAXWSCNT:				; LIMIT WSQUOTA OR DEFAULT TO MAXIMUL SIZE

   00000000'EF            50     B1  033E 48400 	CMPW	R0,SGN$GL_MAXWSCNT	; COMPARE WITH MAXIMUM WS LIST LENGTH

                          07     15  0345 48500 	BLEQ	10$			; BR IF WITHIN LEGAL RANGE

            50   00000000'EF     B0  0347 48600 	MOVW	SGN$GL_MAXWSCNT,R0	; FORCE TO LEGAL VALUE

                                 05  034E 48700 10$:	RSB				;

                                     034F 48800 

SYSCREPRC       CREATE PROCESS SYSTEM SERVICE                    21-AUG-1978 20:23:38   VAX-11 MACRO X0.3-11               Page  13

01              OVERCHECK - CHECK FOR LEGAL TO EXCEED QUOTA                                                                      (1)



                                     034F 49000 	.SBTTL	OVERCHECK - CHECK FOR LEGAL TO EXCEED QUOTA

                                     034F 49100 ;++

                                     034F 49200 ; FUNCTIONAL DESCRIPTION:

                                     034F 49300 ;	OVERCHECK CHECKS TO SEE IF THE PROCESS BEING CREATED IS A DETATCHED

                                     034F 49400 ;	PROCESS.   IF A DETATCHED PROCESS IS BEING CREATED, CONTROL RETURNS 

                                     034F 49500 ;	INLINE.  OTHERWISE THE CREATE IS ABORTED BY BRANCHING TO ABORT 

                                     034F 49600 ;	WITH THE STATUS CODE SS$_NOQUOTA.

                                     034F 49700 ;

                                     034F 49800 ; INPUT PARAMETERS:

                                     034F 49900 ;	R4 - PCB ADDRESS OF CURRENT PROCESS

                                     034F 50000 ;	R5 - ADDRESS OF PHD FOR CURRENT PROCESS (WINDOW IN P1 SPACE)

                                     034F 50100 ;	R9 - ADDRESS OF PROCESS QUOTA BLOCK

                                     034F 50200 ;	R10- ADDRESS OF PCB FOR NEW PROCESS

                                     034F 50300 ;	R11- UIC FOR CREATED PROCESS (0 => SUBPROCESS)

                                     034F 50400 ;

                                     034F 50500 ;--

                                     034F 50600 

                                     034F 50700 OVERCHECK:				;

                          5B     D5  034F 50800 	TSTL	R11			; CHECK FOR SUBPROCESS CREATE

                          06     12  0351 50900 	BNEQ	10$			; YES, IGNORE OVER LIMIT

            50            1C     3C  0353 51000 	MOVZWL	#SS$_EXQUOTA,R0		; SET ERROR STATUS CODE

                          0003   31  0356 51100 	BRW	ABORT			; NO, ABORT CREATE

                                 05  0359 51200 10$:	RSB				; RETURN

                                     035A 51300 

SYSCREPRC       CREATE PROCESS SYSTEM SERVICE                    21-AUG-1978 20:23:38   VAX-11 MACRO X0.3-11               Page  14

01              ACTIVATE NEW PROCESS                                                                                             (1)



                                     035A 51500 	.SBTTL	ACTIVATE NEW PROCESS

                                     035A 51600 ;

                                     035A 51700 ;	ACTIVATE NEW PROCESS

                                     035A 51800 ;

                                     035A 51900 

                                 00000000 52000 	.PSECT	AEXENONPAGED,BYTE	; NONPAGED PSECT

                                     0000 52100 ACTIVATE:				;

         4C AA            59     D0  0000 52200 	MOVL	R9,PCB$L_PQB(R10)	; POINT NEW PCB TO PROCESS QUOTA BLOCK

            54            5A     D0  0004 52300 	MOVL	R10,R4			; PCB ADDRESS OF NEW PROCESS

            6A            54     D0  0007 52400 	MOVL	R4,(R10)		; BUILD QUEUE HEADER

         04 AA            54     D0  000A 52500 	MOVL	R4,4(R10)		; FOR PCB

            52            04     9A  000E 52600 	MOVZBL	#PRI$_TICOM,R2		; SET PRIORITY INCREMENT CLASS

                                     0011 52700 	DSBINT	#IPL$_SYNCH		; BLOCK SYSTEM EVENT REPORTING

            7E            12     DB  0011       		MFPR	S^#PR$_IPL,-(SP)

            12            07     DA  0014       		MTPR	#IPL$_SYNCH,S^#PR$_IPL

            56       0000'CF     D0  0017 52800 	MOVL	W^SCH$GL_CURPCB,R6	; GET PCB ADDRESS OF CREATOR

            55         64 A6     D0  001C 52900 	MOVL	PCB$L_PHD(R6),R5	; AND EXTRACT HEADER ADDRESS

            57       0000'CF     3C  0020 53000 10$:	MOVZWL	W^SCH$GL_MAXPIX,R7	; INITIALIZE INDEX FOR PIX SEARCH

            58       0000'CF     DE  0025 53100 	MOVAL	W^SCH$GL_NULLPCB,R8	; REFERENCE PCB ADDRESS (NULL PROCESS)

       0000'DF47          58     D1  002A 53200 20$:	CMPL	R8,@W^SCH$GL_PCBVEC[R7]	; FIND NON-ZERO PIX POINTING TO NULLPCB

                          06     13  0030 53300 	BEQL	30$			; GOT ONE, FREE SLOT

            F5            57     F5  0032 53400 	SOBGTR	R7,20$			; OCCUPIED, TRY ANOTHER

                          008C   31  0035 53500 25$:	BRW	60$			; NO FREE SLOTS AVAILABLE

       0000'CF       0000'CF     B1  0038 53600 30$:	CMPW	W^SCH$GW_PROCLIM,W^SCH$GW_PROCCNT ; CHECK FOR MAX PROCESSES

                          F4     15  003F 53700 	BLEQ	25$			; BR IF YES AND ABORT CREATE

                     0000'CF     D5  0041 53800 	TSTL	W^SWP$GL_SLOTCNT		; CHECK FOR AVAILABLE SWAP SPACE

                          7D     15  0045 53900 	BLEQ	60$			; NO, ABORT CREATE

                     0000'CF     B6  0047 54000 	INCW	W^SCH$GW_PROCCNT	; COUNT THIS PROCESS

                     0000'DF47   B6  004B 54100 	INCW	@W^SCH$GL_SEQVEC[R7]	; NEXT SEQUENCE NUMBER FOR THIS PROCESS

         62 AA       0000'DF47   B0  0050 54200 	MOVW	@W^SCH$GL_SEQVEC[R7],PCB$L_PID+2(R10)	; SET SEQUENCE NUMBER

         60 AA            57     B0  0057 54300 	MOVW	R7,PCB$L_PID(R10)	; AND PIX TO FORM COMPLETE PID

       0000'DF47          5A     D0  005B 54400 	MOVL	R10,@W^SCH$GL_PCBVEC[R7]	; SET POINTER TO PCB IN VECTOR OF PCBS

                          FF9C'  30  0061 54500 	BSBW	SCH$CHSE		; MAKE PROCESS EXECUTABLE, NON-RESIDENT

                          5B     D5  0064 54600 	TSTL	R11			; TEST FOR DETACHED CREATE

                          44     12  0066 54700 	BNEQ	40$			; BR IF CREATING DETACHED PROCESS

                       6A A6     B6  0068 54800 	INCW	PCB$W_PRCCNT(R6)	; OTHERWISE ACCOUNT FOR SUB-PROCESS

         60 A5       0160 C9     A2  006B 54900 	SUBW	PQB$L_FILLM(R9),PHD$W_FILLM(R5)	; DEDUCT OPEN FILE QUOTA

         48 A6       0160 C9     A2  0071 55000 	SUBW	PQB$L_FILLM(R9),PCB$W_FILCNT(R6); FROM LIMIT AND CURRENT COUNT

         62 A5       016C C9     A2  0077 55100 	SUBW	PQB$L_TQELM(R9),PHD$W_TQLM(R5)	; DEDUCT TIMER QUEUE QUOTA

         4A A6       016C C9     A2  007D 55200 	SUBW	PQB$L_TQELM(R9),PCB$W_TQCNT(R6)	; FROM LIMIT AND COUNT

         68 A6       0154 C9     A2  0083 55300 	SUBW	PQB$L_BYTLM(R9),PCB$W_BYTLM(R6)	; DEDUCT BYTE COUNT QUOTA

         42 A6       0154 C9     A2  0089 55400 	SUBW	PQB$L_BYTLM(R9),PCB$W_BYTCNT(R6); DEDUCT BYTE COUNT FROM WORKING COUNT

         42 A5       0168 C9     A2  008F 55500 	SUBW	PQB$L_PRCLM(R9),PHD$W_PRCLM(R5)	; DEDUCT SUBPROCESS QUOTA

         5C A5       0164 C9     C2  0095 55600 	SUBL	PQB$L_PGFLQUOTA(R9),PHD$L_PGFLQUOTA(R5)	; DEDUCT PAGE FILE QUOTA

         34 A5       0164 C9     C2  009B 55700 	SUBL	PQB$L_PGFLQUOTA(R9),PHD$L_PGFLCNT(R5)	; FROM QUOTA AND COUNT

                       58 A5     D5  00A1 55800 	TSTL	PHD$L_CPULIM(R5)	; CHECK FOR NO CPU LIMIT

                          06     13  00A4 55900 	BEQL	40$			; NO LIMIT, DONT DEDUCT

         58 A5       0158 C9     C2  00A6 56000 	SUBL	PQB$L_CPULM(R9),PHD$L_CPULIM(R5); DEDUCT CPU TIME LIMIT

                                     00AC 56100 40$:					;

            50         04 AE     D0  00AC 56200 	MOVL	4(SP),R0		; GET PID RETURN VALUE ADDRESS

                          0D     13  00B0 56300 	BEQL	55$			; NONE

                          1C     19  00B2 56350 	BLSS	70$			; SYSTEM SPACE ADDRESS

                                     00B4 56375 42$:	ENBINT				; RESTORE IPL

            12            8E     DA  00B4       		MTPR	(SP)+,S^#PR$_IPL

            60         60 AA     D0  00B7 56400 45$:	MOVL	PCB$L_PID(R10),(R0)	; RETURN PID OF CREATED PROCESS

            50            01     3C  00BB 56500 50$:	MOVZWL	#SS$_NORMAL,R0		; SET NORMAL COMPLETION STATUS

                                 04  00BE 56600 	RET				; AND RETURN TO CALLER

SYSCREPRC       CREATE PROCESS SYSTEM SERVICE                    21-AUG-1978 20:23:38   VAX-11 MACRO X0.3-11               Page  15

01              ACTIVATE NEW PROCESS                                                                                             (1)



                                     00BF 56605 55$:	ENBINT				; RESTORE IPL

            12            8E     DA  00BF       		MTPR	(SP)+,S^#PR$_IPL

                          F7     11  00C2 56610 	BRB	50$			; AND EXIT

                                     00C4 56700 

                                     00C4 56800 60$:	ENBINT				; ENABLE SYSTEM EVENT REPORTING

            12            8E     DA  00C4       		MTPR	(SP)+,S^#PR$_IPL

            50            1C     3C  00C7 56900 	MOVZWL	#SS$_EXQUOTA,R0		; SET ERROR CODE FOR QUOTA EXCEEDED

                 0000035C'EF     17  00CA 57000 	JMP	ABORT			; ABORT CREATION, EXCEEDED QUOTA

   00000000'EF            50     D1  00D0 57005 70$:	CMPL	R0,MMG$GL_NPAGEDYN	; CHECK FOR IN NONPAGED POOL

                          DB     1F  00D7 57010 	BLSSU	42$			; NO, DROP IPL TO STORE PID

   00000000'EF            50     D1  00D9 57015 	CMPL	R0,EXE$GL_INTSTK	; HIGH LIMIT

                          D2     1E  00E0 57020 	BGEQU	42$			; OUT OF POOL OR INTERRUPT STACK

            60         60 AA     D0  00E2 57025 	MOVL	PCB$L_PID(R10),(R0)	; STORE PID OF CREATED PROCESS

                                     00E6 57030 	ENBINT				; RESTORE IPL

            12            8E     DA  00E6       		MTPR	(SP)+,S^#PR$_IPL

                          D0     11  00E9 57035 	BRB	50$			; AND RETURN SUCCESS

SYSCREPRC       CREATE PROCESS SYSTEM SERVICE                    21-AUG-1978 20:23:38   VAX-11 MACRO X0.3-11               Page  16

01              ABORT PROCESS CREATION                                                                                           (1)



                                     00EB 57200 	.SBTTL	ABORT PROCESS CREATION

                                     00EB 57300 ;

                                     00EB 57400 ;	ABORT PROCESS CREATION AFTER DETECTING ANY ERROR

                                     00EB 57500 ;

                                     00EB 57600 

                                 0000035A 57700 	.PSECT	Y$EXEPAGED,BYTE		; PAGED PSECT

                                     035A 57800 

                                     035A 57900 ABRT2:					; ABORT WITH PCB ONLY

                          59     D4  035A 58000 	CLRL	R9			; INDICATE NO PQB ALLOCATED

                                     035C 58100 ABORT:					; ABORT WITH BOTH PCB AND PQB ALLOCATED

            57            50     D0  035C 58200 	MOVL	R0,R7			; SAVE STATUS CODE

            50            5A     D0  035F 58300 	MOVL	R10,R0			; ADDRESS OF NEW PCB

                          FC9B'  30  0362 58400 	BSBW	EXE$DEANONPAGED		; DEALLOCATE QUOTA BUFFER

            50            59     D0  0365 58500 	MOVL	R9,R0			; ADDRESS OF PQB IF ANY

                          03     13  0368 58600 	BEQL	10$			; BR IF NONE ALLOCATED

                          FC93'  30  036A 58700 	BSBW	EXE$DEANONPAGED		; DEALLOCATE QUOTA BLOCK

            50            57     D0  036D 58800 10$:	MOVL	R7,R0			; RESTORE STATUS CODE

                                 04  0370 58900 	RET				; AND RETURN TO CALLER

SYSCREPRC       CREATE PROCESS SYSTEM SERVICE                    21-AUG-1978 20:23:38   VAX-11 MACRO X0.3-11               Page  17

01              MOVSTR - STRING COPY SUBROUTINE                                                                                  (1)



                                     0371 59100 	.SBTTL	MOVSTR - STRING COPY SUBROUTINE

                                     0371 59200 ;+

                                     0371 59300 ; FUNCTIONAL DESCRIPTION: 

                                     0371 59400 ;	MOVSTR VALIDATES AND COPIES A STRING FROM THE ARGUMENT LIST

                                     0371 59500 ;	TO THE PROCESS QUOTA BUFFER.  IF ANY ERROR IS DETECTED, THE

                                     0371 59600 ;	SERVICE CALL IS EXITED VIA A RET INSTRUCTION WITH R0 CONTAINING

                                     0371 59700 ;	THE ERROR STATUS CODE.

                                     0371 59800 ;

                                     0371 59900 ; CALLING SEQUENCE:

                                     0371 60000 ;	BSB	MOVSTR

                                     0371 60100 ;	.BYTE	<MAXIMUM_STRING_LENGTH>

                                     0371 60200 ;	.BYTE	<AP_OFFSET_TO_SOURCE_DESCRIPTOR>

                                     0371 60300 ;	.BYTE	<PQB_OFFSET_OF_DESTINATION>

                                     0371 60400 ;

                                     0371 60500 ; INPUT PARAMETERS:

                                     0371 60600 ;	R9 - PQB BASE ADDRESS

                                     0371 60700 ;	@(SP) - MAXIMUM STRING LENGTH

                                     0371 60800 ;	@(SP)+1 - AP OFFSET TO SOURCE STRING DESCRIPTOR

                                     0371 60900 ;	@(SP)+2 - PQB OFFSET FOR DESTINATION COUNTED STRING

                                     0371 61000 ;

                                     0371 61100 ; OUTPUT PARAMETERS:

                                     0371 61200 ;	SPECIFIED AREA IN PQB RECEIVES SOURCE STRING

                                     0371 61300 ;

                                     0371 61400 ; COMPLETION CODES:

                                     0371 61500 ;	SS$_ACCVIO  -  ACCESS VIOLATION FETCHING DESCRIPTOR OR STRING

                                     0371 61600 ;	SS$_IVLOGNAM - INVALID LOGICAL NAME (COUNT OUT OF RANGE)

                                     0371 61700 ;

                                     0371 61800 ;-

                                     0371 61900 

                                     0371 62000 MOVSTR:					; MOVE STRING TO PQB

            55            6E     D0  0371 62100 	MOVL	(SP),R5			; GET BASE OF PARAMETERS

            6E            03     C0  0374 62200 	ADDL	#3,(SP)			; INCREMENT RETURN ADDRESS

                     01F0 8F     BB  0377 62300 	PUSHR	#^M<R4,R5,R6,R7,R8>	; SAVE REGISTERS

            58            85     9A  037B 62400 	MOVZBL	(R5)+,R8		; GET STRING LIMIT

            53            85     9A  037E 62500 	MOVZBL	(R5)+,R3		; GET ARGLIST OFFSET

            52            6C43   D0  0381 62600 	MOVL	(AP)[R3],R2		; FETCH DESCRIPTOR ADDRESS

                          2E     13  0385 62700 	BEQL	MOVEXIT			; NONE, EXIT

                                     0387 62800 	IFNORD	#8,(R2),ACCVIO		; MUST BE ABLE TO READ DESCRIPTOR

            08            00     0C  0387       		PROBER	#0,#8,(R2)

                          62         038A       

                          2D     13  038B       		BEQL	ACCVIO

            56            62     7D  038D 62900 	MOVQ	(R2),R6			; FETCH DESCRIPTOR

                          56     B5  0390 63000 	TSTW	R6			; CHECK FOR NULL COUNT

                          21     13  0392 63100 	BEQL	MOVEXIT			; YES, NULL STRING

            58            56     B1  0394 63200 	CMPW	R6,R8			; CHECK UPPER LIMIT ON STRING 

                          08     1B  0397 63300 	BLEQU	10$			; BR IF WITHIN LIMIT

            50       0154 8F     3C  0399 63400 	MOVZWL	#SS$_IVLOGNAM,R0	; SET ERROR CODE

                          FFBB   31  039E 63500 	BRW	ABORT			; AND ABORT CREATE

                                     03A1 63600 10$:	IFNORD	R6,(R7),ACCVIO		; CHECK ACCESSIBILITY

            56            00     0C  03A1       		PROBER	#0,R6,(R7)

                          67         03A4       

                          13     13  03A5       		BEQL	ACCVIO

            53            65     9A  03A7 63700 	MOVZBL	(R5),R3			; GET PQB OFFSET

            53            6943   9E  03AA 63800 	MOVAB	(R9)[R3],R3		; COMPUTE ADDRESS IN PQB

            83            56     90  03AE 63900 	MOVB	R6,(R3)+		; SET COUNT FOR STRING

            67            56     28  03B1 64000 	MOVC3	R6,(R7),(R3)		; COPY STRING TO BUFFER

                          63         03B4       

SYSCREPRC       CREATE PROCESS SYSTEM SERVICE                    21-AUG-1978 20:23:38   VAX-11 MACRO X0.3-11               Page  18

01              MOVSTR - STRING COPY SUBROUTINE                                                                                  (1)



                                     03B5 64100 MOVEXIT:				;

                     01F0 8F     BA  03B5 64200 	POPR	#^M<R4,R5,R6,R7,R8>	; RESTORE REGISTERS

                                 05  03B9 64300 	RSB				; AND RETURN

                                     03BA 64400 

            50            0C     3C  03BA 64500 ACCVIO:	MOVZWL	#SS$_ACCVIO,R0		; SET ERROR CODE

                          9D     11  03BD 64600 	BRB	ABORT			; AND EXIT RELEASING PCB,PQB

                                     03BF 64700 

SYSCREPRC       CREATE PROCESS SYSTEM SERVICE                    21-AUG-1978 20:23:38   VAX-11 MACRO X0.3-11               Page  19

01              MOVSTR - STRING COPY SUBROUTINE                                                                                  (1)



                                     03BF 64900 	.END

SYSCREPRC       CREATE PROCESS SYSTEM SERVICE                    21-AUG-1978 20:23:38   VAX-11 MACRO X0.3-11               Page  20

SYMBOL TABLE                                                                                                                     (1)



ABORT            0000035C R     03   PCB$L_SQFL       00000000            PFN$C_PROCESS  = 00000000            

ABRT2            0000035A R     03   PCB$L_STS        00000028            PFN$C_RDERR    = 00000004            

ACCVIO           000003BA R     03   PCB$L_UIC        00000020            PFN$C_RDINPROG = 00000006            

ACTIVATE         00000000 R     04   PCB$L_WSSWP      00000024            PFN$C_RELPEND  = 00000003            

BASPRI         = 00000024            PCB$L_WTIME      0000002C            PFN$C_SYSTEM   = 00000001            

BIT...         = 00000000            PCB$T_LNAME      0000006C            PFN$C_WRTINPROG= 00000005            

CTL$GL_PHD       ********   X   03   PCB$V_ASTPEN   = 00000011            PFN$M_BADPAG   = 00000020            

CTL$T_ACCOUNT    ********   X   03   PCB$V_BATCH    = 0000000E            PFN$M_BAK      = 007FFFFF            

CTL$T_USERNAME   ********   X   03   PCB$V_DELPEN   = 00000001            PFN$M_COLLISION= 00000010            

ERROR          = 00000014            PCB$V_FORCPEN  = 00000002            PFN$M_DELCON   = 00000010            

EXE$ALLOCPCB     ********   X   03   PCB$V_HIBER    = 00000013            PFN$M_GBLBAK   = 00800000            

EXE$ALLOCPQB     ********   X   03   PCB$V_INQUAN   = 00000003            PFN$M_LOC      = 00000007            

EXE$CREPRC       00000016 RG    03   PCB$V_LOGIN    = 00000014            PFN$M_MODIFY   = 00000080            

EXE$DEANONPAGED  ********   X   03   PCB$V_NETWRK   = 00000015            PFN$M_PAGTYP   = 00000007            

EXE$GL_INTSTK    ********   X   04   PCB$V_NOACNT   = 0000000F            PFN$M_PGFLX    = FF000000            

EXE$GQ_SYSDISK   ********   X   03   PCB$V_NODELET  = 00000017            PFN$M_RPTEVT   = 00000040            

GBL...         = 00000000            PCB$V_PHDRES   = 00000012            PFN$S_BAK      = 00000017            

IMAGE          = 00000008            PCB$V_PSWAPM   = 00000004            PFN$S_GBLBAK   = 00000001            

INPUT          = 0000000C            PCB$V_PWRAST   = 00000016            PFN$S_LOC      = 00000003            

IPL$_ASTDEL    = 00000002            PCB$V_RES      = 00000000            PFN$S_PAGTYP   = 00000003            

IPL$_HWCLK     = 00000018            PCB$V_RESPEN   = 00000005            PFN$S_PGFLX    = 00000008            

IPL$_IOPOST    = 00000004            PCB$V_SSFEXC   = 00000006            PFN$V_BADPAG   = 00000005            

IPL$_MAILBOX   = 0000000B            PCB$V_SSFEXCE  = 00000007            PFN$V_BAK      = 00000000            

IPL$_POWER     = 0000001F            PCB$V_SSFEXCS  = 00000008            PFN$V_COLLISION= 00000004            

IPL$_QUEUEAST  = 00000006            PCB$V_SSFEXCU  = 00000009            PFN$V_DELCON   = 00000004            

IPL$_SCHED     = 00000003            PCB$V_SSRWAIT  = 0000000A            PFN$V_GBLBAK   = 00000017            

IPL$_SYNCH     = 00000007            PCB$V_SUSPEN   = 0000000B            PFN$V_LOC      = 00000000            

IPL$_TIMER     = 00000007            PCB$V_SWPVBN   = 00000010            PFN$V_MODIFY   = 00000007            

MAXWSCNT         0000033E R     03   PCB$V_WAKEPEN  = 0000000C            PFN$V_PAGTYP   = 00000000            

MBXUNT         = 0000002C            PCB$V_WALL     = 0000000D            PFN$V_PGFLX    = 00000018            

MMG$GL_NPAGEDYN  ********   X   04   PCB$W_APTCNT     00000034            PFN$V_RPTEVT   = 00000006            

MOVEXIT          000003B5 R     03   PCB$W_ASTCNT     0000003C            PHD$B_ASTLVL     000000CF            

MOVSTR           00000371 R     03   PCB$W_BIOCNT     0000003E            PHD$B_DFPFC      00000038            

NOQLIST          00000239 R     03   PCB$W_BIOLM      00000040            PHD$B_PAGFIL     0000001F            

OUTPUT         = 00000010            PCB$W_BYTCNT     00000042            PHD$B_PGTBPFC    00000039            

OVERCHECK        0000034F R     03   PCB$W_BYTLM      00000068            PHD$C_LENGTH     00000118            

PCB$B_ASTACT     0000000C            PCB$W_DIOCNT     00000044            PHD$C_PHDPAGCTX= 00000008            

PCB$B_ASTEN      0000000D            PCB$W_DIOLM      00000046            PHD$K_LENGTH     00000118            

PCB$B_PRI        0000000B            PCB$W_FILCNT     00000048            PHD$L_BIOCNT     00000054            

PCB$B_PRIB       00000033            PCB$W_GPGCNT     00000038            PHD$L_CPULIM     00000058            

PCB$B_TYPE       0000000A            PCB$W_GRP        00000022            PHD$L_CPUTIM     0000003C            

PCB$B_WEFC       00000032            PCB$W_MEM        00000020            PHD$L_DIOCNT     00000050            

PCB$C_LENGTH     0000007C            PCB$W_MTXCNT     0000000E            PHD$L_ESP        0000007C            

PCB$K_LENGTH     0000007C            PCB$W_PPGCNT     0000003A            PHD$L_FREP0VA    00000028            

PCB$L_ASTQBL     00000014            PCB$W_PRCCNT     0000006A            PHD$L_FREP1VA    00000030            

PCB$L_ASTQFL     00000010            PCB$W_SIZE       00000008            PHD$L_FREPTECNT  0000002C            

PCB$L_EFC2P      00000058            PCB$W_STATE      00000030            PHD$L_KSP        00000078            

PCB$L_EFC3P      0000005C            PCB$W_TMBU       00000036            PHD$L_P0BR       000000C8            

PCB$L_EFCS       00000050            PCB$W_TQCNT      0000004A            PHD$L_P0LRASTL   000000CC            

PCB$L_EFCU       00000054            PFN$C_ACTIVE   = 00000007            PHD$L_P1BR       000000D0            

PCB$L_EFWM       0000004C            PFN$C_BADPAGLST= 00000002            PHD$L_P1LR       000000D4            

PCB$L_OWNER      0000001C            PFN$C_FREPAGLST= 00000000            PHD$L_PAGEFLTS   0000004C            

PCB$L_PHD        00000064            PFN$C_GBLWRT   = 00000003            PHD$L_PAGFIL     0000001C            

PCB$L_PHYPCB     00000018            PFN$C_GLOBAL   = 00000002            PHD$L_PC         000000C0            

PCB$L_PID        00000060            PFN$C_GPGTBL   = 00000005            PHD$L_PCB        00000078            

PCB$L_PQB        0000004C            PFN$C_MFYPAGLST= 00000001            PHD$L_PGFLCNT    00000034            

PCB$L_SQBL       00000004            PFN$C_PPGTBL   = 00000004            PHD$L_PGFLQUOTA  0000005C            

SYSCREPRC       CREATE PROCESS SYSTEM SERVICE                    21-AUG-1978 20:23:38   VAX-11 MACRO X0.3-11               Page  21

SYMBOL TABLE                                                                                                                     (1)



PHD$L_PSL        000000C4            PHD$W_WSLOCK     0000000C            PR$_MAPEN      = 00000038            

PHD$L_PSTBASOFF  00000020            PHD$W_WSLX       0000004A            PR$_NICR       = 00000019            

PHD$L_PTWSLELCK  00000064            PHD$W_WSNEXT     00000010            PR$_P0BR       = 00000008            

PHD$L_PTWSLEVAL  00000068            PHD$W_WSQUOTA    00000018            PR$_P0LR       = 00000009            

PHD$L_R0         00000088            PIDADR         = 00000004            PR$_P1BR       = 0000000A            

PHD$L_R1         0000008C            PIO$GT_DDSTRING  ********   X   03   PR$_P1LR       = 0000000B            

PHD$L_R10        000000B0            PQB$B_STS        0000000B            PR$_PCBB       = 00000010            

PHD$L_R11        000000B4            PQB$B_TYPE       0000000A            PR$_PME        = 0000003D            

PHD$L_R12        000000B8            PQB$C_LENGTH     000001AC            PR$_RXCS       = 00000020            

PHD$L_R13        000000BC            PQB$K_LENGTH     000001AC            PR$_RXDB       = 00000021            

PHD$L_R2         00000090            PQB$L_ASTLM      0000014C            PR$_SBIER      = 00000034            

PHD$L_R3         00000094            PQB$L_BIOLM      00000150            PR$_SBIFS      = 00000030            

PHD$L_R4         00000098            PQB$L_BYTLM      00000154            PR$_SBIMT      = 00000033            

PHD$L_R5         0000009C            PQB$L_CPULM      00000158            PR$_SBIQC      = 00000036            

PHD$L_R6         000000A0            PQB$L_DIOLM      0000015C            PR$_SBIS       = 00000031            

PHD$L_R7         000000A4            PQB$L_FILLM      00000160            PR$_SBISC      = 00000032            

PHD$L_R8         000000A8            PQB$L_PGFLQUOTA  00000164            PR$_SBITA      = 00000035            

PHD$L_R9         000000AC            PQB$L_PRCLM      00000168            PR$_SBR        = 0000000C            

PHD$L_REFERFLT   00000014            PQB$L_TQELM      0000016C            PR$_SCBB       = 00000011            

PHD$L_SSP        00000080            PQB$L_WSDEFAULT  00000174            PR$_SID        = 0000003E            

PHD$L_USP        00000084            PQB$L_WSQUOTA    00000170            PR$_SIRR       = 00000014            

PHD$L_WSL        00000118            PQB$Q_PRVMSK     00000000            PR$_SISR       = 00000015            

PHD$M_DALCSTX  = 00000002            PQB$T_ACCOUNT    00000184            PR$_SLR        = 0000000D            

PHD$M_PFMFLG   = 00000001            PQB$T_DDSTRING   0000018C            PR$_SSP        = 00000002            

PHD$M_WSPEAKCHK= 00000004            PQB$T_DISK       0000010C            PR$_TBIA       = 00000039            

PHD$Q_PRIVMSK    00000000            PQB$T_ERROR      0000004C            PR$_TBIS       = 0000003A            

PHD$S_ASTLVL   = 00000008            PQB$T_IMAGE      0000000C            PR$_TODR       = 0000001B            

PHD$S_P0LR     = 00000018            PQB$T_INPUT      0000008C            PR$_TXCS       = 00000022            

PHD$V_ASTLVL   = 00000018            PQB$T_OUTPUT     000000CC            PR$_TXDB       = 00000023            

PHD$V_DALCSTX  = 00000001            PQB$T_USERNAME   00000178            PR$_USP        = 00000003            

PHD$V_P0LR     = 00000000            PQB$W_SIZE       00000008            PR$_WCSA       = 0000002C            

PHD$V_PFMFLG   = 00000000            PQL$AB_FLAG      ********   X   03   PR$_WCSD       = 0000002D            

PHD$V_WSPEAKCHK= 00000002            PQL$AL_DEFAULT   ********   X   03   PRCNAM         = 00000020            

PHD$W_ASTLM      00000044            PQL$AL_MIN       ********   X   03   PRI$_IOCOM     = 00000001            

PHD$W_BAK        00000048            PQL$_ASTLM     = 00000001            PRI$_NULL      = 00000000            

PHD$W_DFWSCNT    0000001A            PQL$_BIOLM     = 00000002            PRI$_RESAVL    = 00000002            

PHD$W_EMPTPG     000000D8            PQL$_BYTLM     = 00000003            PRI$_TICOM     = 00000004            

PHD$W_EXTDYNWS   00000076            PQL$_CPULM     = 00000004            PRI$_TIMER     = 00000002            

PHD$W_FILLM      00000060            PQL$_DIOLM     = 00000005            PRI$_TOCOM     = 00000003            

PHD$W_FLAGS      0000003A            PQL$_FILLM     = 00000006            PRV$V_ALLSPOOL = 00000004            

PHD$W_PHVINDEX   00000046            PQL$_LENGTH    = 0000000C            PRV$V_BUGCHK   = 00000017            

PHD$W_PRCLM      00000042            PQL$_LISTEND   = 00000000            PRV$V_CMEXEC   = 00000001            

PHD$W_PST        00000020            PQL$_PGFLQUOTA = 00000007            PRV$V_CMKRNL   = 00000000            

PHD$W_PSTBASMAX  0000004A            PQL$_PRCLM     = 00000008            PRV$V_DETACH   = 00000005            

PHD$W_PSTFREE    00000026            PQL$_TQELM     = 00000009            PRV$V_DIAGNOSE = 00000006            

PHD$W_PSTLAST    00000024            PQL$_WSDEFAULT = 0000000B            PRV$V_EXQUOTA  = 00000013            

PHD$W_PTCNTACT   00000070            PQL$_WSQUOTA   = 0000000A            PRV$V_GROUP    = 00000008            

PHD$W_PTCNTLCK   0000006C            PQL_V_DEDUCT   = 00000000            PRV$V_GRPNAM   = 00000003            

PHD$W_PTCNTMAX   00000072            PR$_ACCR       = 00000029            PRV$V_LOGIN    = 00000005            

PHD$W_PTCNTVAL   0000006E            PR$_ACCS       = 00000028            PRV$V_LOG_IO   = 00000007            

PHD$W_QUANT      00000040            PR$_ASTLVL     = 00000013            PRV$V_MOUNT    = 00000011            

PHD$W_TQLM       00000062            PR$_ESP        = 00000001            PRV$V_NETMBX   = 00000014            

PHD$W_WSAUTH     0000000A            PR$_ICCS       = 00000018            PRV$V_NETWRK   = 00000014            

PHD$W_WSDYN      0000000E            PR$_ICR        = 0000001A            PRV$V_NOACNT   = 00000009            

PHD$W_WSFLUID    00000074            PR$_IPL        = 00000012            PRV$V_OPER     = 00000012            

PHD$W_WSLAST     00000012            PR$_ISP        = 00000004            PRV$V_PHY_IO   = 00000016            

PHD$W_WSLIST     00000008            PR$_KSP        = 00000000            PRV$V_PRMCEB   = 0000000A            

SYSCREPRC       CREATE PROCESS SYSTEM SERVICE                    21-AUG-1978 20:23:38   VAX-11 MACRO X0.3-11               Page  22

SYMBOL TABLE                                                                                                                     (1)



PRV$V_PRMGBL   = 00000018            SS$_CHANINTLK  = 0000004C            SS$_IDXFILEFULL= 000008D0            

PRV$V_PRMMBX   = 0000000B            SS$_CLIFRCEXT  = 00000980            SS$_ILLBLKNUM  = 000000DC            

PRV$V_PSWAPM   = 0000000C            SS$_CMODSUPR   = 0000041C            SS$_ILLCNTRFUNC= 000000E4            

PRV$V_SETPRI   = 0000000D            SS$_CMODUSER   = 00000424            SS$_ILLEFC     = 000000EC            

PRV$V_SETPRV   = 0000000E            SS$_COMPAT     = 0000042C            SS$_ILLIOFUNC  = 000000F4            

PRV$V_SYSGBL   = 00000019            SS$_CONTINUE   = 00000001            SS$_ILLLBLAST  = 00000968            

PRV$V_SYSNAM   = 00000002            SS$_CONTROLC   = 00000651            SS$_ILLPAGCNT  = 000000FC            

PRV$V_TMPMBX   = 0000000F            SS$_CONTROLO   = 00000609            SS$_ILLSEQOP   = 000002DC            

PRV$V_VOLPRO   = 00000015            SS$_CONTROLY   = 00000611            SS$_ILLSER     = 00000104            

PRV$V_WORLD    = 00000010            SS$_CREATED    = 00000619            SS$_ILLUSRLBLRD= 00000958            

PRVADR         = 00000018            SS$_CTRLERR    = 00000054            SS$_ILLUSRLBLWT= 00000960            

QASTLM           00000285 R     03   SS$_DATACHECK  = 0000005C            SS$_INCVOLLABEL= 0000010C            

QBIOLM           00000293 R     03   SS$_DATAOVERUN = 00000838            SS$_INSFARG    = 00000114            

QBYTLM           000002A5 R     03   SS$_DEBUG      = 0000046C            SS$_INSFMEM    = 00000124            

QCPULM           000002B7 R     03   SS$_DECOVF     = 000004A4            SS$_INSFRAME   = 0000012C            

QDIOLM           000002CC R     03   SS$_DEVACTIVE  = 000002C4            SS$_INSFWSL    = 0000011C            

QFILLM           000002DD R     03   SS$_DEVALLOC   = 00000840            SS$_INTDIV     = 00000484            

QPGFLQUOTA       000002EA R     03   SS$_DEVALRALLOC= 00000641            SS$_INTOVF     = 0000047C            

QPRCLM           000002F7 R     03   SS$_DEVASSIGN  = 00000848            SS$_IVADDR     = 00000134            

QTQELM           00000309 R     03   SS$_DEVFOREIGN = 00000064            SS$_IVCHAN     = 0000013C            

QUOTA          = 0000001C            SS$_DEVICEFULL = 00000850            SS$_IVCHNLSEC  = 0000026C            

QUOTALIST        000001E3 R     03   SS$_DEVMOUNT   = 0000006C            SS$_IVDEVNAM   = 00000144            

QWSDEFAULT       0000032F R     03   SS$_DEVNOTALLOC= 00000858            SS$_IVGSDNAM   = 0000014C            

QWSQUOTA         00000316 R     03   SS$_DEVNOTMBX  = 00000074            SS$_IVLOGNAM   = 00000154            

SCH$CHSE         ********   X   04   SS$_DEVNOTMOUNT= 0000007C            SS$_IVLOGTAB   = 0000015C            

SCH$GL_CURPCB    ********   X   03   SS$_DEVOFFLINE = 00000084            SS$_IVPROTECT  = 000002F4            

SCH$GL_MAXPIX    ********   X   03   SS$_DIRFULL    = 00000860            SS$_IVQUOTAL   = 00000164            

SCH$GL_NULLPCB   ********   X   04   SS$_DRVERR     = 0000008C            SS$_IVSECFLG   = 0000016C            

SCH$GL_PCBVEC    ********   X   03   SS$_DUPFILENAME= 00000868            SS$_IVSECIDCTL = 000002E4            

SCH$GL_SEQVEC    ********   X   04   SS$_DUPLNAM    = 00000094            SS$_IVSSRQ     = 00000174            

SCH$GL_SWPPID    ********   X   03   SS$_ENDOFFILE  = 00000870            SS$_IVSTSFLG   = 0000017C            

SCH$GW_PROCCNT   ********   X   04   SS$_ENDOFTAPE  = 00000878            SS$_IVTIME     = 00000184            

SCH$GW_PROCLIM   ********   X   04   SS$_ENDOFUSRLBL= 00000970            SS$_LCKPAGFUL  = 000000D4            

SGN$GL_MAXWSCNT  ********   X   03   SS$_EXQUOTA    = 0000001C            SS$_LENVIO     = 0000018C            

SS$_ABORT      = 0000002C            SS$_EXTIDXFILE = 00000880            SS$_LKWSETFUL  = 00000194            

SS$_ACCONFLICT = 00000800            SS$_FCPREADERR = 00000888            SS$_MBFULL     = 000008D8            

SS$_ACCVIO     = 0000000C            SS$_FCPREPSTN  = 00000988            SS$_MBTOOSML   = 0000019C            

SS$_ACPVAFUL   = 000002FC            SS$_FCPREWNDERR= 00000890            SS$_MCHECK     = 000002BC            

SS$_ARTRES     = 00000474            SS$_FCPSPACERR = 00000898            SS$_MEDOFL     = 000001A4            

SS$_ASTFLT     = 0000040C            SS$_FCPWRITERR = 000008A0            SS$_MSGNOTFND  = 00000621            

SS$_BADATTRIB  = 00000034            SS$_FILACCERR  = 0000009C            SS$_MTLBLLONG  = 00000304            

SS$_BADCHKSUM  = 00000808            SS$_FILALRACC  = 000000A4            SS$_MUSTCLOSEFL= 00000948            

SS$_BADESCAPE  = 0000003C            SS$_FILELOCKED = 000008A8            SS$_NOAQB      = 00000314            

SS$_BADFILEHDR = 00000810            SS$_FILENUMCHK = 000008B0            SS$_NODATA     = 000001AC            

SS$_BADFILENAME= 00000818            SS$_FILESEQCHK = 000008B8            SS$_NOHANDLER  = 000008F8            

SS$_BADFILEVER = 00000820            SS$_FILESTRUCT = 000008C0            SS$_NOHOMEBLK  = 000008E0            

SS$_BADIMGHDR  = 00000044            SS$_FILNOTACC  = 000000AC            SS$_NOIOCHAN   = 000001B4            

SS$_BADIRECTORY= 00000828            SS$_FILNOTCNTG = 000002AC            SS$_NOLINKS    = 0000027C            

SS$_BADPARAM   = 00000014            SS$_FILNOTEXP  = 000000B4            SS$_NOLOGNAM   = 000001BC            

SS$_BADSTACK   = 000002B4            SS$_FLTDIV     = 00000494            SS$_NOMBX      = 00000274            

SS$_BEGOFFILE  = 00000938            SS$_FLTOVF     = 0000048C            SS$_NOMOREFILES= 00000930            

SS$_BLOCKCNTERR= 00000940            SS$_FLTUND     = 0000049C            SS$_NONEXDRV   = 000001C4            

SS$_BREAK      = 00000414            SS$_FORMAT     = 000000BC            SS$_NONEXPR    = 000008E8            

SS$_BUFBYTALI  = 0000030C            SS$_GPTFULL    = 000000C4            SS$_NONLOCAL   = 000008F0            

SS$_BUFFEROVF  = 00000601            SS$_GSDFULL    = 000000CC            SS$_NOPRIV     = 00000024            

SS$_BUGCHECK   = 000002A4            SS$_HANGUP     = 000002CC            SS$_NORMAL     = 00000001            

SS$_CANCEL     = 00000830            SS$_HEADERFULL = 000008C8            SS$_NOSIGNAL   = 00000900            

SYSCREPRC       CREATE PROCESS SYSTEM SERVICE                    21-AUG-1978 20:23:38   VAX-11 MACRO X0.3-11               Page  23

SYMBOL TABLE                                                                                                                     (1)



SS$_NOSOLICIT  = 00000284            UIC            = 00000028            

SS$_NOSUCHDEV  = 00000908            UNAMSZ         = 00000006            

SS$_NOSUCHFILE = 00000910            USRNAM           00000000 R     03   

SS$_NOSUCHNODE = 0000028C            

SS$_NOSUCHSEC  = 00000978            

SS$_NOTAPEOP   = 00000264            

SS$_NOTFILEDEV = 000001CC            

SS$_NOTINTBLSZ = 000001D4            

SS$_NOTLABELMT = 000001DC            

SS$_NOTMODIFIED= 00000659            

SS$_NOTNETDEV  = 000002EC            

SS$_NOTRAN     = 00000629            

SS$_NOTSQDEV   = 000001E4            

SS$_OPCCUS     = 00000434            

SS$_OPCDEC     = 0000043C            

SS$_OPINCOMPL  = 000002D4            

SS$_PAGOWNVIO  = 000001EC            

SS$_PAGRDERR   = 00000444            

SS$_PARITY     = 000001F4            

SS$_PARTESCAPE = 000001FC            

SS$_PFMBSY     = 00000204            

SS$_PLHLDR     = 00000404            

SS$_PSTFULL    = 0000020C            

SS$_RADRMOD    = 0000044C            

SS$_REJECT     = 00000294            

SS$_REMOTE     = 00000649            

SS$_RESIGNAL   = 00000918            

SS$_RESULTOVF  = 00000214            

SS$_ROPRAND    = 00000454            

SS$_SECTBLFUL  = 0000021C            

SS$_SSFAIL     = 0000045C            

SS$_SUBRNG     = 000004AC            

SS$_SUPERSEDE  = 00000631            

SS$_TAPEPOSLOST= 00000224            

SS$_TBIT       = 00000464            

SS$_TIMEOUT    = 0000022C            

SS$_TOOMANYVER = 00000990            

SS$_TOOMUCHDATA= 0000029C            

SS$_UNASEFC    = 00000234            

SS$_UNSAFE     = 0000023C            

SS$_UNWIND     = 00000920            

SS$_UNWINDING  = 00000928            

SS$_VASFULL    = 00000244            

SS$_VECINUSE   = 0000024C            

SS$_VOLINV     = 00000254            

SS$_WAITUSRLBL = 00000950            

SS$_WASCLR     = 00000001            

SS$_WASECC     = 00000639            

SS$_WASSET     = 00000009            

SS$_WRITLCK    = 0000025C            

SS$_WRONGACP   = 0000031C            

STSFLG         = 00000030            

STSFLGCNT      = 00000008            

STSFLGTBL        00000006 R     03   

SWP$GL_SHELLSIZ  ********   X   03   

SWP$GL_SLOTCNT   ********   X   04   

SYS$TRNLOG       ********   X   03   

SYSCREPRC       CREATE PROCESS SYSTEM SERVICE                    21-AUG-1978 20:23:38   VAX-11 MACRO X0.3-11               Page  24

PROGRAM SECTION SYNOPSIS                                                                                                         (1)







PROGRAM SECTION SYNOPSIS



.  ABS  .        00000000      00     NOPIC   USR   CON   ABS   LCL NOSHR NOEXE NORD  NOWRT BYTE  

. BLANK .        00000000      01     NOPIC   USR   CON   REL   LCL NOSHR   EXE   RD    WRT BYTE  

$ABS$            000001AC      02     NOPIC   USR   CON   ABS   LCL NOSHR   EXE   RD    WRT BYTE  

Y$EXEPAGED       000003BF      03     NOPIC   USR   CON   REL   LCL NOSHR   EXE   RD    WRT BYTE  

AEXENONPAGED     000000EB      04     NOPIC   USR   CON   REL   LCL NOSHR   EXE   RD    WRT BYTE  





THERE WERE NO ERRORS OR WARNINGS.

9584. BYTES LEFT IN FREE MEMORY POOL.

1794. BYTES OF RECLAIMED MEMORY.

OBJ$:SYSCREPRC,LIS$:SYSCREPRC/-SP=EXECML$/ML,SRC$:SYSCREPRC

14 MLB DIR RDS - 933 GETS TO DEFINE 28 MACROS. 71 INTER. FILE WRITES. 

