.TITLE EFFACE ; JEFFREY KODOSKY ARL JUL76 ; ; SUBR ; ENTRY: 2 ARGS ; ; EXIT: 1 ARG ; ERRORS: NONE ; CALLS: CAR ; CDR ; EQUAL ; RPLACD .GLOBL EFFACE,ZEFFACE,QCAR,QCDR,QEQUAL,QRPLD EFFACE: ROOM 6 MOV 2(R5),R2 BEQ EFF04 ;NULL[]--->NIL MOV R2,-(R5) MOV R2,-(R5) QCAR MOV 4(R5),-(R5) QEQUAL TST (R5)+ BEQ EFF07 CMP (R5)+,(R5)+ ;EQUAL[CAR[];]--->CDR[] QCDR .WORD 0 EFF04: TST (R5)+ JMP @-(R4) EFF07: MOV @R5,-(R5) QCDR MOV @R5,-(R5) BEQ EFF13 ;JUMP IF END OF LIST AND NO FOUND QCAR MOV 6(R5),-(R5) QEQUAL TST (R5)+ BNE EFF10 ;JUMP IF FOUND MOV (R5)+,@R5 ;ELSE BUMP DOWN LIST BR EFF07 EFF10: QCDR ;REMOVE FROM LIST MOV (R5)+,2(R5) QRPLD ;RETURN MODIFIED LIST BR EFF04 EFF13: ADD #10,R5 ;RETURN UNCHANGED JMP @-(R4) ZEFFACE=.-EFFACE .END