	.TITLE	GREATERP		
; JEFFREY KODOSKY	ARL	JUL76
;
; SUBR
; ENTRY:	2 ARGS		<N1>;<N2>
; EXIT:		1 ARG		<BOOL>
; ERRORS:	NONE
; CALLS:	ATM2N
;		IR
;		CMR
	.GLOBL	GREATERP,ZGREATERP,QATM2N,QIR,QCMR,.T.
GREATERP:QATM2N		;GET N1
	BCS	GRT10	;JUMP IF N1 IS REAL OR INF
	QATM2N		;GET N2
	BCS	GRT04	;JUMP IF N1=INT , N2=REAL OR INF
	CMP	(SP)+,(SP)+	;COMPARE INTEGERS
	BLT	TRUE	;JUMP IF N2<N1
	BR	FALSE
GRT04:	BIT	#77777,@SP
	BNE	GRT07	;JUMP IF N2=REAL
	TST	(SP)+
	BMI	TRUE2	;JUMP IF N2=-INF (ANY INT IS LARGER)
	TST	(SP)+
	BNE	FALSE1	;JUMP IF N2=+INF (NO INTEGER IS LARGER)
	TST	(SP)+
	BGT	TRUE	;N2=0: JUMP IF N1>0
	BR	FALSE
GRT07:	MOV	@SP,-(SP)	;MOVE UP N2
	MOV	4(SP),2(SP)
	MOV	6(SP),-(SP)
	QIR		;CONVERT N1 TO REAL
	MOV	(SP)+,6(SP)
	MOV	(SP)+,6(SP)
	BR	GRT30	;JUMP TO COMPARE REALS
GRT10:	BIT	#77777,@SP
	BNE	GRT20	;JUMP IF N1 REAL
	TST	(SP)+
	BMI	FALSE$
	TST	(SP)+
	BNE	GRT17	;JUMP IF N1=+INF
	QATM2N		;N1=0: GET N2
	BCC	GRT13
	TST	(SP)+
	BMI	TRUE1	;TRUE IF N2<0 (OR -INF)
	BR	FALSE1	;FALSE IF N2>=0 (OR +INF)
GRT13:	TST	(SP)+
	BMI	TRUE
	BR	FALSE
GRT17:	QATM2N		;N1=INF, GET N2
	BCC	TRUE2	;N1> ANY INTEGER
	TST	(SP)+
	BNE	TRUE1	;N1>ANY REAL OR -INF
	TST	(SP)+
	BEQ	TRUE
	BR	FALSE	;N1 NOT GREATER THAN +INF
GRT20:	QATM2N		;N1 REAL, GET N2
	BCS	GRT22	;JUMP IF N2 REAL OR INF
	QIR
	BR	GRT30	;JUMP TO COMPARE REALS
GRT22:	BIT	#77777,@SP
	BNE	GRT30	;JUMP TO COMPARE REALS
	TST	(SP)+
	BMI	TRUE3	;N1>N2=-INF
	TST	(SP)+
	BNE	FALSE2	;N1<+INF
	TST	(SP)+
	BGT	TRUE1	;TRUE IF N1>N2=0
	BR	FALSE1
GRT30:	QCMR	;COMPARE TWO REALS
	BMI	TRUE	;JUMP IF N2<N1
	BR	FALSE
TRUE3:	TST	(SP)+
TRUE2:	TST	(SP)+
TRUE1:	TST	(SP)+
TRUE:	MOV	.T.,-(R5)
	JMP	@-(R4)
FALSE$:	QATM2N	;JUST TO VERIFY LEGAL ARGUMENT
	BCC	FALSE2
	TST	(SP)+
FALSE2:	TST	(SP)+
FALSE1:	TST	(SP)+
FALSE:	CLR	-(R5)
	JMP	@-(R4)
ZGREATERP=.-GREATERP
	.PAGE
; SUBR
; ENTRY:	2 ARGS		<N1>;<N2>
; EXIT:		1 ARG		<BOOL>
; ERRORS:	NONE
; CALLS:	GREATERP
	.GLOBL	LESSP,ZLESSP
LESSP:	MOV	(R5)+,R0	;SWITCH ARGS
	MOV	@R5,-(R5)
	MOV	R0,2(R5)
	BR	GREATERP	;AND CHECK FOR GREATER THAN
ZLESSP=.-LESSP
	.END
