perm filename KLNODE[LSP,BGB] blob sn#038363 filedate 1973-05-01 generic text, type T, neo UTF8
00100	TITLE KLNODE - KILL LISP NODES - BGB - 1 MAY 1973.
00200	
00300	COMMENT ⊗	KLNODE PLACES NON ATOMIC LISP  NODES  ONTO  THE  LISP
00400	FREE  STORAGE LIST. AFTER A KLNODE ANY POINTER TO THAT STRUCTURE, NOW
00500	POINT INTO THE FREE STORAGE LIST AND SO CAN  GENERATE  THE  CLASSICAL
00600	WALL PAPER PATTERN CALLED "NIL PAPER"⊗
00700	
00800	;LISP ACCUMULATOR NAMES.
00900		A←←1	;LISP FIRST ARG AND VALUE RETURN.
01000		B←←2	;2ND ARG OR TEMPORARY.
01100		P←←14	;LISP PDL.
01200		F←←15	;HEAD OF LISP FREE STORAGE LIST.
01300	
01400	INTERN KLNODE
01500	KLNODE:	CAILE A,377777↔POPJ P,		;EXIT ON ATOMIC ARG.
01600		HLLE B,(A)↔AOJE B,.-2		;EXIT ON ATOMIC ARG.
01700		PUSH P,(A)			;SAVE NODE'S CONTENTS.
01800		HRRZM F,(A)↔HRRZM A,F		;CONS NODE TO FREE LIST.
01900		HLRZ A,(P)↔PUSHJ P,KLNODE	;KILL CAR OF NODE.
02000		POP P,A↔HRRZS A↔JRST KLNODE	;KILL CDR OF NODE.
02100	END