	.TITLE	OCI		
; JEFFREY KODOSKY	ARL	JUN76
;
; UTILITY:	OCTAL CONVERSION ON INPUT
; ENTRY:	R3 POINTS TO ASCIZ BUFFER CONTAINING SYNTACTICALLY
;		CORRECT OCTAL NUMBER (OPTIONAL SIGN FOLLOWED BY
;		OCTAL DIGITS).
; EXIT:		1 ARG (SP)	<I>
;		C BIT SET IF OCTAL NUMBER TOO LARGE FOR ONE WORD
; ERRORS:	NONE
; CALLS:	NONE
; R2,R5 PRESERVED
; NOTE: THE MAGNITUDE OF AN OCTAL NUMBER CANNOT BE GREATER THAN 177777
	.GLOBL	OCI
OCI:	CLR	-(SP)	;CLEAR AC
	CLR	R1	;SIGN SPACE
	CMPB	@R3,#'-
	BGT	NXT
	BLT	1$
	INC	R1	;NOTE -
1$:	INC	R3	;BUMP PAST SIGN
NXT:	MOVB	(R3)+,R0;GET NEXT DIGIT
	BEQ	DONE
	SUB	#60,R0	;BINARY VALUE
	BNE	1$	;IGNORE LEADING ZEROS
	TST	@SP
	BEQ	NXT
1$:	ASL	@SP
	BCS	OVR
	ASL	@SP
	BCS	OVR
	ASL	@SP
	BCS	OVR
	ADD	R0,@SP
	BR	NXT
DONE:	ASR	R1
	BCC	RETN
	NEG	@SP
	CLC
OVR:
RETN:	JMP	@-(R4)
	.END
