	.TITLE	CDR		
; JEFFREY KODOSKY	ARL	NOV75
;
; SUBR
; ENTRY:	1 ARG		<NAT>
; EXIT:		1 ARG		CDR[<NAT>]
; ERRORS:	A10, CDR OF AN ATOM (SUPPRESSED WITH X SW)
; CALLS:	GET, SEARCH PROPERTY LIST
; R2,R3 PRESERVED
	.GLOBL	CDR,ZCDR,QGET,QA10ERR,XSW,APVAL
CDR:	MOV	@R5,R0	;GET ARG
	MOV	2(R0),R1;GET CDR (ASSUMING NON-ATOMIC)
	BIT	#3,@R0	;IS ARG NUMERIC?
	BNE	CDR02	;JUMP IF SO
	BIT	#3,R1	;IS IT ATOMIC?
	BNE	CDR01	;JUMP IF SO
	MOV	R1,@R5	;OTHERWISE RETURN CDR
	JMP	@-(R4)
CDR01:	BIT	#2,R1	;IS ARG A LITATM?
	BEQ	CDR03	;JUMP IF SO
CDR02:	CLR	@R5	;CDR OF NUMBER OF STRING IS NIL
	JMP	@-(R4)
CDR03:	ROOM	3	;CHECK FOR ADEQUATE STACK SPACE
	MOV	APVAL,-(R5)	;CHECK X SWITCH STATUS
	MOV	XSW,-(R5)
	QGET
	TST	(R5)+
	BNE	CDR04	;JUMP IF ITS ON
	QA10ERR		;OTHERWISE A10 ERROR TRAP
CDR04:	MOV	@R5,R0	;CDR OF LITATM IS ITS PROPERTY LIST
	MOV	2(R0),@R5
	DEC	@R5	;REMOVE THE LITATM FLAG
	JMP	@-(R4)
ZCDR=.-CDR
	.END
