Google
 

Trailing-Edge - PDP-10 Archives - BB-L014E-BM - autopatch/ph3g.c05
There are no other files named ph3g.c05 in the archive.
 REP 5/1	;05C1
	!COPYRIGHT (C) 1972,1981 BY DIGITAL EQUIPMENT CORPORATION
 WIT
	!COPYRIGHT (C) 1972,1981,1982 BY DIGITAL EQUIPMENT CORPORATION
 REP 13/1	;05C2
	GLOBAL BIND PH3GV = 6^24 + 0^18 + 254;	! Version Date:	20-Jul-81
 WIT
	GLOBAL BIND PH3GV = 6^24 + 0^18 + #1152;	! Version Date:	29-Mar-82
 INS 182/1	;05C3
	1152	EGM	29-Mar-82
		Check all OPEN/CLOSE arguments for register substitution, instead
		of just UNIT.

 INS 2389/1	;05C4
	%[1152]% ROUTINE CHKOPCL(STMNT)=
	%[1152]% %Check for REG SUBstitution of OPEN/CLOSE arguments%
	%[1152]% BEGIN
	%[1152]% MAP BASE STMNT;	!OPEN/CLOSE statement
	%[1152]% LOCAL BASE TMP;	!Pointer to variable/expression node
	%[1152]% LOCAL OPENLIST ARGPTR;	!Pointer to arg list items
	%[1152]%
	%[1152]% TMP_.STMNT[IOUNIT];		!First check UNIT
	%[1152]% IF .TMP[OPRCLS] EQL DATAOPR
	%[1152]% THEN
	%[1152]% 	STMNT[IOUNIT]_SWAPEM(.TMP)
	%[1152]% ELSE
	%[1152]% 	LEAFSUBSTITUTE(.TMP);
	%[1152]% IF .STMNT[OPLST] NEQ 0		!If any other arguments
	%[1152]% THEN
	%[1152]% BEGIN
	%[1152]%	ARGPTR _ .STMNT[OPLST];	!Setup pointer
	%[1152]%	INCR I FROM 0 TO (.STMNT[OPSIZ]-1) DO !Check each argument
	%[1152]%	BEGIN
	%[1152]%		TMP_.ARGPTR[.I,OPENLPTR];
	%[1152]%		IF .TMP[OPRCLS] EQL DATAOPR
	%[1152]%		THEN
	%[1152]%			ARGPTR[.I,OPENLPTR]_SWAPEM(.TMP)
	%[1152]%		ELSE
	%[1152]%			LEAFSUBSTITUTE(.TMP)
	%[1152]%	END !INCR thru arg count
	%[1152]% END !Check for other arguments
	%[1152]% END;
 REP 2654/1	;05C5
			CHKUNIT;	![740]
 WIT
	%[1152]%	CHKOPCL(.P);	!Check OPEN/CLOSE parameters
 REP 2691/1	;05C6
	%[740]%		CHKUNIT;
 WIT
	%[1152]%	CHKOPCL(.P);	!Check OPEN/CLOSE parameters
 SUM 239711