	.IDENT	SHELL	MACRO ROUTINES FOR THE SHELL

	.SBTTL	GETPID	RETURN CURRENT PID

	$JPIDEF				; GETJPI symbols

	.PSECT	DATA,RD,WRT,NOEXE

ITMLST:		.WORD	4
		.WORD	JPI$_PID
		.LONG	PID
		.LONG	0
		.LONG	0
PID:		.BLKL	1

	.PSECT	CODE,RD,NOWRT,EXE

	.ENTRY	GETPID,^M<>

	$GETJPI_S ITMLST=ITMLST		; Get PID
	MOVL	PID,@4(AP)		; Return it to user
	RET				; Return to caller

	.SBTTL	USEROPEN	FORTRAN USER OPEN

	$FABDEF				; FAB fields
	$XABDEF				; XAB fields
	$XABPRODEF			; XABPRO fields

	.PSECT	DATA,RD,WRT,NOEXE

XABPRO:		$XABPRO,PRO=<RWD,RWD,,>

	.PSECT	CODE,RD,NOWRT,EXE

	.ENTRY	USEROPEN,^M<>

	MOVL	4(AP),R0		; FAB address
	MOVL	FAB$L_XAB(R0),R0	; XAB address
	MOVAL	XABPRO,R1		; New XAB address
	MOVL	XAB$L_NXT(R0),-
		XAB$L_NXT(R1)		; Chain in
	MOVL	R1,XAB$L_NXT(R0)	; new XAB

	$CREATE	FAB=@4(AP)		; Create file
	BLBC	R0,10$			; Branch if error
	$CONNECT RAB=@8(AP)		; Connect RAB

10$:	RET				; Return to caller
	.END
