	.TITLE USRPMA
	.IDENT /061083/
;
;	FILE:[22,310]USRPMA.MAC
;	AUTHOR: JIM BOSTWICK 6-OCT-83
;	HISTORY:
;
; 
.REM |

PROCEDURE USRPMA(VAR INP, OUT:TEXT);EXTERNAL;

{*USER*
  This procedure will produce an error walkback by calling the 
OMSI PMA routine. If the program has been built with /NOWALKBACK,
this routine does nothing.
}
|
	PROC USRPMA
	PARAM IN, ADDRESS	; INPUT FILE
	PARAM OU, ADDRESS	; OUTPUT FILE
	SAVE <R0, R1, R2, R3, R4, R5>
	BEGIN
	mov	sp, r1			; save entry sp
	mov 	@#$vext, r4		; get addrs of vector save area
	mov	v$usrpc(r4), V$pmpc(r4)	; save user PC for PMA
	mov	@v$dynl(r4), v$pmdl(r4)	; save dynamic link for PMA
	mov	r4, -(sp)		;
	add	#v$pmdl, @sp		; point to PMA entry point
	mov	ou(r1), -(sp)		;
	mov	in(r1), -(sp)		; push file variables
	mov	v$dynl(r4), r0		; pick up dynamic link
	mov	2(r0), r0		; 
	beq	1$			; br if no walkback	
	jsr	pc, @r0			; call pma
1$:	
	endpr	
	.end
