File: AMAX.RA of Tape: Sources/Fortran/os8-f4-3
(Source file text) 

/R=AMAX0(I,...),AMAX1(R,...) SINGLE PREC. MAX. VALUE
/I= MAX0(I,...)  MAX1(R,...)
/
/
/ VERSION 40A 22-MAY-80 WVDM
/
/
	SECT	AMAX0
	ENTRY	AMAX1
	ENTRY	MAX0
	ENTRY	MAX1
	BASE	0
AMAX1,	SETX	XR
	LDX	1,3		/DON'T INTEGERIZE RESULT
MAXCOM,	STARTD
	FLDA	0		/ADDRESS OF JA .+2+2*N
	FSTA	3
	FLDA	30		/RETURN ADDRESS
	FSTA	RETN
	FLDA%	3		/ JA .+2+2*N
	FSUB	0		/-JA .
	FSUB	TWO		/-     2
	LDX	1,1
	ALN	1		/DIVIDE BY TWO
	FNEG			/-N
	ATX	1
	LDX	0,2		/FOR ARG PICKUP
	FLDA%	0,2+		/ADDRESS OF FIRST ARG
	FSTA	3
	STARTF
NEW,	FLDA%	3		/SAVE NEW MAX
	FSTA	MAX
SAME,	JXN	MORMAX,1+	/ANY MORE ARGS ?
	FLDA	MAX		/GET RESULT
	JXN	RETN,3		/DON'T FIX
	JLT	NEGFIX		/NEGATIVE FIX
	ALN	0
	FNORM
	JA	RETN
NEGFIX,	FNEG
	ALN	0
	FNORM
	FNEG
RETN,	JA	.
MORMAX,	STARTD			/NEXT ARG ADDRESS
	FLDA%	0,2+
	FSTA	3
	STARTF
	FLDA	MAX		/COMPARE
	FSUB%	3
	JGE	SAME		/SAME MAX
	JA	NEW		/NEW MAX
TWO,	0;2
MAX,	0;0;0
MAX0,
MAX1,	SETX	XR
	LDX	0,3		/INTEGERIZE RESULT
	JA	MAXCOM		/GO DO IT
XR,	0;0;0;0;0;0;0;0
	END