.TITLE SASSOC ; JEFFREY KODOSKY ARL NOV75 ; ; SUBR ; ENTRY: 3 ARGS ;; ; EXIT: 1 ARG ; ERRORS: NONE ; CALLS: APPLY ; CAR ; CDR ; EQUAL .GLOBL SASSOC,ZSASSOC,QAPPLY,QCAR,QCDR,QEQUAL SASSOC: ROOM 4 MOV (R5)+,R3 MOV (R5)+,R2 BEQ SASS6 ;JUMP IF END OF LIST MOV R3,-(R5) MOV R2,-(R5) SASS1: QCDR MOV R2,-(R5) QCAR MOV @R5,-(R5) QCAR MOV 6(R5),-(R5) QEQUAL ;EQUAL[CAAR[];]---> TST (R5)+ ; CAR[] BNE SASS8 TST (R5)+ ;T---> MOV @R5,R2 ; SASSOC[;CDR[]] BNE SASS1 CMP (R5)+,(R5)+ SASS6: MOV @R5,-(R5) ;NOT FOUND: APPLY TO CLR 2(R5) ;NO ARGS QAPPLY .WORD 0 SASS8: MOV (R5)+,4(R5) ;RETURN CAR[] CMP (R5)+,(R5)+ JMP @-(R4) ZSASSOC=.-SASSOC .END