	RELEASE 2 OF LISP

THIS RELEASE HAS THE FOLLOWING DIFFERENCES FROM RELEASE 1:

1. CORRECTION MADE FOR 
	NIL,0
	NIL1,	0

2. CORRECTION MADE IN LINE EDITOR FOR ^C TO RESET THE
   TELETYPE BUFFER.

3. ADDITION OF ZEXPR ROUTINE AND FOUR SUPPLEMENTAL ROUTINES
   (ONE TO STORE A VALUE IN FIELD 0, ONE TO LOAD
   A VALUE FROM FIELD 0, ONE TO MOVE A1P,A2P,AND A3P TO 
   FIELD 0, AND ONE TO PRINT AN ASCII CHARACTER
   ON THE LINE PRINTER.)
		ADDITIONS TO LISP MANUAL
		********* ** **** ******

	SOMETIMES A LISP USER HAS SPECIALIZED FUNCTIONS
WHICH HE EXPECTS TO PERFORM A NUMBER OF TIMES. BECAUSE
OF MEMORY LIMITATIONS AND TIME LIMITATIONS, IT IS OFTEN
DESIRABLE TO IMPLEMENT THESE FUNCTIONS IN MACHINE
LANGUAGE, AND CALL THEM FROM A LISP PROGRAM.
SINCE THE LIST SPACE COULD NOT BE EXTENDED TO A WHOLE
FLD (BECAUSE OF DESIGN DECISIONS WHEN LISP 102A WAS WRITTEN)
A LARGE PORTION OF FIELD 0 IS NOW UNUSED (LOCATIONS 0-34,
47-77, 2000-5400).
A NEW FUNCTON HAS BEEN ADDED TO LISP CALLED ZEXPR,
WHICH HAS 3 ARUMENTS.
THE USER CAN WRITE HIS OWN FUNCTIONS IN PAL8 WHICH
USE THE FREE SPACE IN FIELD 0.
AFTER ASSEMBLING THESE PROGRAMS, HE CAN THEN USE
ABSLDR TO LOAD THEM OVER LISP, AND SAVE THE
NEW PROGRAM. THEN IN LISP, HE CAN TRANSFER TO THESE
ROUTINES USING ZEXPR(W,X,Y).
W IS THE ADDRESS TO TRANSFER TO, X IS THE FIRST ARGUMENT,
AND Y IS THE SECOND ARGUMENT.

EXAMPLE
*******

ASSUME THE USER HAS 2 OVERLAYS, OVL1.BN, D OVL2.BN

	.R ABSLDR
	*LISP.SV/I
	*OVL1,OVL2$
	.SA SYS:LISPN;13000
	.R LISPN

		ZEXPR
		*****

ZEXPR( SIMILAR TO EXPR ,EXCEPT USING FIELD 0)
IS A FUNCTION OF THREE ARGUMENTS. THE ARGUMENTS ARE SUPPOSED TO 
EVALUATE TO NUMERICAL VALUES (UNLESS NOT USED). 
THIS JUMPS TO THE FIELD ZERO MACHINE ADDRESS INDICATED IN THE
FIRST ARGUMENT WITH THE NUMERICAL VALUE OF THE SECOND ARGUMENT
IN THE ACCUMULATOR. THE POINTER TO THE SECOND ARGUMENT
CAN BE FOUND IN FIELD 0 LOCATION 37, AND THE POINTER
TOHE THIRD ARGUMENT CAN BE FOUND IN FIELD 0 LOCATION 41.

THE MACHINE CODE PROGRAM CAN RETURN TO THE LISP
SYSTEM WITH THE INSTRUCTION JMP 42 IN CASE
THAT NO VALUE NEED BE RETURNED (CLEAR AC BEFORE RETURNING).
IF A NUMERICAL VALUE MUST BE RETURNED, THIS CAN BE DONE 
BY HAVING T VALUE IN THE AC, AND DOING A JMP 44.
BACK IN LISP, ONE THEN HAS A POINTER TO THAT VALUE
AS A VALUE.

SPECIAL LOCATIONS
******* *********

ZEXPR(1703 X Y) WILL STORE IN FIELD ZERO LOCATION X THE VALUE Y
ZEXPR (1713 X 0) WILL PRINT THE ASCII CHARACTER REPRESENTED IN
                 THE LOW ORDER 8 BITS OF THE AC ON THE
		 LINE PRINTER. IT RETURNS WITH THE AC CLEAR.
		 USING THIS, ONE CAN PRINT ON THE LINE PRINTER
		 EVEN IF ANOTHER OUTPUT FILE IS OPEN.
ZEXPR(1710 X 0) WILL REURN THE CONTENTS OF FIELD 0 LOCATION X
		  AS ITS VALUE.
