6/29/72 JONL

1) A POINT TO NOTE WELL: CERTAIN LOSING SITUATIONS WILL FIRST BE 
    TRAPPED OUT BY SOME OF THE NEW ERROR INTERRUPT FUNCTIONS, AND SOME
    USERS HAVE NOT RECOGNIZED THE BREAK-POINT IDENTIFICATIONS AS 
    MEANINGFUL.  AMONG THE MOST COMMON CAUSES OF AMAZEMENT ARE:
	BKPT GC-LOSSAGE		MESSAGE FROM THE GC-LOSSAGE FUNCTION, 
				MEANING THAT YOU HAVE EXAUSTED SOME 
				STORAGE SPACE.
	BKPT FAIL-ACT		ANY OF A NUMBER OF SYSTEMIC PROBLEMS 
				HAS ARISEN. SEE POINT 5 BELOW.
    AFTER ANY SUCH BREAK-POINT, IT IS USUALLY GOOD STRATEGY TO TYPE 
    ARGS<SPACE> TO SEE WHAT THE TROUBLE-MAKER IS.

2) CATCH AND THROW ARE BOTH FSUBRS AND HAVE OPTIONAL SECOND
    ARGS WHICH ARE CONSIDERED TAGS.  (THROW FOO T1) WILL THROW BACK
    TO THE MOST RECENT SETTING OF (CATCH (BAR) T1).  (THROW FOO) WILL
    BE CAUGHT BY THE MOST RECENT CATCH, REGARDLESS OF ANY TAG SETTING,
    AND (CATCH (BAR)) WILL CATCH ANY THROW.  HOWEVER, (CATCH (BAR) T2)
    WILL NEVER CAPTURE A (THROW FOO T1) -  IF THERE IS NO CATCH TO 
    MATCH A GIVEN THROW (EITHER ONE WITH THE SAME TAG NAME, OR ELSE A 
    TAG-LESS CATCH), THEN AN UNSEEN-GO-TAG CORRECTABLE ERROR IS DONE.


3) A REMINDER THAT THE SECOND ARG, IF SUPPLIED, TO THROW, TO CATCH, 
    TO ERRSET, AND TO ERR IS NOT EVAL'D, BUT USED DIRECTLY AS A TAG 
    OR INDICATOR.  [A NON-NILL SECOND ARG TO ERR SAYS EVALUATE THE 
    FIRST ARG ONLY AFTER UNDOING THE ERRSET THAT IS ABOUT TO CATCH 
    THE ERR.  THE ORDINARY CASE IS TO EVALUATE THE FIRST ARG 
    IMMEDIATELY, THEN UNDO THE ERRSET - THUS ERRORS DURING THE 
    EVALUATION OF THE FIRST ARG WILL BE CAUGHT BY THE ERRSET THAT 
    WAS ABOUT TO RECEIVE THE OUTPUT OF ERR.   (ERR FOO) IS 
    EQUIVALENT TO (ERR FOO NIL)].

4) UPON STARTING UP A LISP,  THE ATOM TTY IS SET TO A NUMBER 
   DESCRIBING THE TYPE OF TERMINAL THE JOB IS ATTACHED TO:
	0	PRINTING, LIKE TELETYPE, MEMOREX, DATEL, ETC.
	1	NEW STYLE DATAPOINT
	2	OLD STYLE DATAPOINT
	3	IMLAC
    THIS LIST MAY BE EXPANDED IN THE FUTURE.

5) NVSET AND NVFIX INTERACT VERY SMOOTHLY WITH THE FAKE TV PACKAGE OF 
    JERRY LERMAN.   A FORTH COMING DOCUMENT BY JERRY WILL DESCRIBE ITS
    USAGE COMPLETELY, INCLUDING SSTATUS CALLS IN LISP TO SWITCH FROM
    FAKE TO REAL TV.

6) A FEW MORE ERROR CONDITIONS HAVE BEEN ADDED TO THE CORRECTABLE 
    CATEGORY, UNDER THE FAIL-ACT BRAND.  [THE FAIL-ACT FUNCTION IS 
    HANDED A LIST THAT IS GENERALLY VERY DESCRIPTIVE OF SOME REQUESTED
    ACTION THAT CANNOT BE DONE].  A COMPLETE LIST FOLLOWS:
	A) AN ARRAY ACCESS ERROR HAS BEEN DETECTED, INDEX IS TOO 
	   LARGE OR TOO SMALL
	B) A REQUEST IS MADE OF NVFIX FOR A POINT OUTSIDE THE SCREEN 
	   AREA [OR IN ADDITION, FOR THE FAKETV, A POINT NOT STORED].
	C) *REARRAY IS DONE ON SOMETHING THAT ISN'T CURRENTLY AN ARRAY
	D) (UREAD FN1 FN2), (UKILL FN1 FN2),  OR (SSTATUS FTV FN1 FN2)
	   IS DONE ON A NON-EXISTENT FILE.
	E) REMPROP IS TRYING TO REMOVE A VALUE CELL FROM AN IMPORTANT 
	   SYSTEM ATOM.
	F) GO OR RETURN IS CALLED, BUT THERE IS NO PROG IN USE.
	G) ARG OR SETARG IS CALLED, BUT THERE IS NO LEXPR IN USE.
    IN EACH CASE ABOVE, THE FAIL-ACT INTERRUPT FUNCTION MAY RETURN A
    LIST CONTAINING ONE FORM TO BE EVAL'D IN PLACE OF THE LOSING 
    ACTION; THE INITIAL SETTING OF FAIL-ACT IS MERELY A BREAK LOOP, 
    SO THAT ONE CAN RETURN FROM IT BY TYPING (RETURN RETVAL).
    THE FAIL-ACT ERRORS LISTED BELOW HAPPEN ONLY TO INFORM THE USER 
    THAT SOME REQUESTED ACTION DIDN'T ACTUALLY HAPPEN, OR TO TELL HIM
    THAT SOME SYSTEM PARAMETER HAD TO BE RESTORED TO AN INITIAL VALUE.
    AGAIN, IF THE INTERRUPT  FUNCTION RETURNS NIL, AN ORDINARY LISP 
    ERROR WILL BE INITIATED, BUT IF SOME NON-NULL LIST IS RETURNED, 
    THEN THE SYSTEM WILL TRY TO RECUPERATE AS BEST AS IS POSSIBLE.
	H) BAD GCMIN LIST - WAS RESTORED TO INITIAL VALUE
	I) BAD IBASE - WAS RESTORED TO EIGHT.
	J) ATTEMPT TO SETQ NIL - VALUE OF NIL REMAINS UNCHANGED
	K) ATTEMPT TO WRITE ON A UWRITE OUTPUT CHANNEL, BUT NO UWRITE
	   HAS BEEN DONE.  ^R HAS BEEN SHUT OFF, AND WILL BE TURNED 
	   ON AGAIN UPON EXIT IF THE INTERRUPT FUNCTION DOES A UWRITE.
	L) ATTEMPT TO READ FROM A UREAD FILE, BUT NONE HAS BEEN 
	   SELECTED [ARGS IS BOUND TO (UREAD)].  ^Q IS RESET TO NIL, 
	   AND WILL BE TURNED ON AGAIN UPON EXIT IF THE INTERRUPT 
	   FUNCTION DOES A UREAD.
    THERE MAY BE, IN THE FUTURE, ADDITIONS TO THIS LIST.

7) CERTAIN SUB-PACKAGES OF THE LISP SYSTEM ARE NOW GROUPED TOGETHER ON
    A SINGLE PAGE [EVEN THOUGH THIS MEANS WASTING A FEW CELLS THAT ARE
    UNUSED] SO THAT THE USER WHO DOESN'T USE THAT SUB-PACKAGE WONT 
    NEED ANY PART OF IT IN CORE.  THESE ARE ARE ALL PURE PAGES, AND
    SOME OF THE IDENTIFIABLE SUB-PACKAGES ARE:
	ERROR PROCESSING
	UNIQUE I/O DEVICE CODE [LIKE VIDISSECTOR, 340 SLAVE, ETC.]
	EVAL-APPLY AND CERTAIN OPEN-CODED FUNCTIONS
		[COMPILED CODE WONT BE USING THIS PAGE MUCH]
	INFINITE-PRECISION ARITHMETIC ROUTINES
	READ, AND ASSOCIATED FUNCTIONS [LIKE TYI, READLIST]
	GARBAGE COLLECTOR, AND LISP INITIALIZATION
	STATUS ,SSTATUS AND EDIT
	ARRAY-DEPENDENT FUNCTIONS [LIKE ARRAY, MAKREADTABLE, ETC.]
		GETSP, SUBLIS, AND FUNARG STUFF
	CERTAIN CONSTANT INITIAL LIST STRUCTURE [3 PAGES]
	BINARY PROGRAM SPACE [NOT INITIALLY PURE]
    IN ADDITION, THERE IS A PAGE OF WELL-KNOWN AND OFTEN-USED SUBRS; 
    AND A PAGE CONTAINING THE PRINT-RELATED OUTPUT FUNCTIONS ALONG 
    WITH SOME LESSER-KNOWN SUBRS; AND A PAGE CONTAINING THE TOP-LEVEL 
    CODE, THE INTERRUPT HANDLER AND UUO HANDLER CODE, AND SOME COMMON
    SYSTEM SUBROUTINES.