.TITLE EVALQUOTE ; JEFFREY KODOSKY ARL NOV75 ; ; SUBR ; ENTRY: 2 ARGS ; ; EXIT: 1 ARG [] ; ERRORS: NONE ; CALLS: EVAL ; APPLY ; GET ; CONS .GLOBL EVALQUOTE,ZEVALQUOTE,QEVAL,QAPPLY,QGET,QCONS .GLOBL $ALIST,FEXPR,FSUBR EVALQUOTE: ROOM 4 ;CHECK FOR STACK SPACE CLR $ALIST ;ALIST:=NIL MOV @R5,R0 BIT #2,(R0)+ BNE EVALQ5 BIT #2,@R0 BNE EVALQ5 BIT #1,@R0 BEQ EVALQ5 MOV FEXPR,-(R5) ;GET[;FEXPR] MOV 2(R5),-(R5) QGET BCC EVALQ2 MOV FSUBR,@R5 ;OR GET[;FSUBR]---> QGET BCS EVALQ4 EVALQ2: TST (R5)+ ;EVAL[CONS[;]] QCONS QEVAL .WORD 0 ;(NO RETURN PATH) EVALQ4: TST (R5)+ ;POP NIL EVALQ5: QAPPLY ;T--->APPLY[;] .WORD 0 ZEVALQUOTE=.-EVALQUOTE .END