	.TITLE	ADD1		
; JEFFREY KODOSKY	ARL	JUL76
;
; SUBR
; ENTRY:	1 ARG		<N>
; EXIT:		1 ARG		<N>
; ERRORS:	I4, HARD MATH ERROR (SUPPRESSED WITH Z SWITCH)
; CALLS:	ATM2N, CONVERT ATOM TO NUMBER
;		I2ATM, CONVERT INTEGER TO ATOM
;		R2ATM, CONVERT REAL TO ATOM
;		ADR, REAL ADDER
;		GET, SEARCH PROPERTY LIST
	.GLOBL	ADD1,ZADD1,QATM2N,QI2ATM,QR2ATM,QADR,QGET
	.GLOBL	APVAL,ZSW,QI4ERR
ADD1:	QATM2N
	BCS	ADD13	;JUMP IF ADDING 1.0
	INC	@SP
	BVS	ADD11	;JUMP IF RETURNING -NEGMAX
	QI2ATM
	.WORD	0
ADD11:	CLR	@SP
	MOV	#^F32768.,-(SP)
	BR	ADD19
ADD13:	ASL	@SP
	BEQ	ADD15	;JUMP IF +-INF OR ZERO
	ROR	@SP	;ADD 1
	CLR	-(SP)
	MOV	#^F1.0,-(SP)
	QADR
	BCS	ADD17	;JUMP IF INF RETURNED
	BR	ADD19
ADD15:	ROR	@SP
	TST	2(SP)
	BNE	ADD17	;JUMP IF ADD1 TO +-INF!
	MOV	#^F1.0,@SP	;ADD1 TO 0 IS 1.0
	BR	ADD19
ADD17:	ROOM	3	;CHECK IF INF ALLOWED
	MOV	APVAL,-(R5)
	MOV	ZSW,-(R5)
	QGET
	TST	(R5)+
	BNE	ADD19	;JUMP IF IT IS
	QI4ERR		;ELSE HARD ERROR
ADD19:	QR2ATM		;RETURN REAL ATOM
	.WORD	0
ZADD1=.-ADD1
	.END
