4/15/73  -JONL-

RUBOUT WHEN TYPED FROM THE JOB CONSOLE AT A DATAPOINT SHOULD DO 
    SOMETHING A LITTLE MORE INTERESTING THESE DAYS.  HOWEVER, IT IS
    NOT POSSIBLE TO DO THINGS CORRECTLY  WHEN TYPE-IN ECHO IS 
    INTERMINGLED WITH PROGRAM TYPE-OUT, SO IF YOU GET CONFUSED, 
    TRY ^K AND ^L.

THE LSUBRS "-", "-$", "/", AND "/$" NOW OPERATE IN ACCORD WITH THE 
    COMMON USAGE WHEN GIVEN ONE ARGUMENT:  NAMELY, THE OPERATION IS 
    PERFORMED WITH THE OPERATOR IDENTITY AND THE SINGLE ARG.  THIS 
    NEW DEFINITION HAS NO EFFECT FOR THE COMMUTATIVE OPERATORS, BUT 
    ALLOWS ONE TO WRITE (- N) INSTEAD OF (MINUS N) AND TO WRITE 
    (//$ X) INSTEAD OF (QUOTIENT 1.0 X). ALTHOUGH THIS VARIES SLIGHTLY
    FROM THE SIMPLER DEFINITION FORMAT, IT SEEMS TO BE PREFERRED BY 
    MOST PROGRAMMERS.


A NEW SUBR OF NO ARGUMENTS - CURSORPOS - WILL RETURN A DOTTED PAIR 
    FOR THE COLUMN POSITION AND ROW POSITION OF THE CURSOR AT A 
    DISPLAY TERMINAL.  RETURNS NIL FOR OTHER TERMINALS.

TWO NEW BIT-DIDDLING FUNCTIONS - HAULONG, A SUBR OF ONE ARGUMENT, AND
    HAIPART, A SUBR OF TWO ARGUMENTS.  (HAULONG X) EXPECTS X TO BE 
    EITHER A FIXNUM OR BIGNUM, AND, IN INFORMAL LANGUAGE, RETURNS 
    THE NUMBER OF BITS IN X.  MORE PRECISELY, IT IS 
	  <INTEGRAL PART OF LOG TO THE BASE 2 OF ABS[X]>+1
    INFORMALLY, (HAIPART X N) RETURNS A NUMBER WHICH IS COMPOSED OF 
    THE HIGH N BITS OF X.  TO DESCRIBE HAIPART MORE PRECISELY, LET
	    (Z X N)  =  (EXPT 2 (- (HAULONG X) N)) 
			        FOR N < (HAULONG X), 
	     	     =  1       OTHERWISE.  
    THEN 
	    (HAIPART X N)  =  (QUOTIENT (ABS X) (Z X N)) 
				 FOR N > 0, 
			   =  (REMAINDER (ABS X) (EXPT 2 (ABS N)))
				 OTHERWISE.
    THUS, A NEGATIVE SECOND ARG RETRIEVES THE "LOWPART" OF X.


A NEW STATUS CALL - (SSTATUS TTYREAD T) CAUSES THE TELETYPE INPUT 
    BUFFERING THAT GOES ON FOR READ TO TERMINATE ONLY WHEN A 
    "TTY-FORCE-FEED" CHARACTER HAS BEEN TYPED.  A TTY-FORCE-FEED 
    CHAR IS CREATED BY OR'ING 1040 (OCTAL) INTO THE CHARACTER'S 
    SYNTAX CATEGORY.  WHEN (STATUS TTYREAD) = NIL, THEN TYPING RUBOUT
    MORE TIMES THAN THERE ARE CHARS IN THE TTY INPUT BUFFER WILL 
    CAUSE AN END-OF-FILE CONDITION.  THIS IS SO THAT USER-SUPPORTED
    READ ROUTINES CAN DO THEIR OWN SUBTLE THING WITH RUBOUT.

ALLOC - JUST A SHORT REVIEW OF THE ANSWERS YOU CAN TYPE 
    AT THE INITIAL QUESTION "ALLOC?":
	  Y, y[LOWER CASE Y], OR ^S[CONTROL-S] CAUSES ENTRY INTO THE 
	ALLOCATION REQUEST PHASE, WHEREBY THE USER REPLIES BY TYPING
	NUMERICAL VALUES TO THE VARIOUS ALLOCATOR QUESTIONS; AND
	N, n[LOWER CASE N], OR SPACE CAUSES THE STANDARD DEFAULT 
	ALLOTMENT FOR ALL AREAS TO BE TAKEN.  
	  THE STANDARD DEFAULTS ARE PRINTED OUT DURING THE ALLOCATION
	REQUEST PHASE, AND THE USER MAY TYPE SPACE OR CARRIAGE-RETURN 
	TO ACCEPT THE DEFAULT, OR ELSE A STRING OF DIGITS FOLLOWED BY 
	SPACE OR CARRIAGE-RETURN [MEANING AN OCTAL NUMBER], OR ELSE A
	STRING OF DIGITS FOLLOWED BY A DECIMAL-POINT [MEANING A 
	DECIMAL NUMBER].  TYPING RUBOUT DURING THE ALLOCATION REQUEST 
	PHASE CANCELS THE NOT-YET-COMPLETED ANSWER TO THE MOST RECENT 
	QUESTION, AND THE ANSWER MAY BE RETYPED. TYPING ALT-MODE 
	CAUSES THE REMAINING QUESTIONS TO TAKE THE STANDARD ALLOTMENT,
	AND TYPING ^G[CONTROL-G] CAUSES THE ALLOC PHASE TO RESTART 
	ALL OVER AGAIN WITH THE QUESTION "ALLOC?".
	  ^S, IN ADDITION, CAUSES THE USERS .LISP. (INIIT) FILE TO BE 
	SELECTED RIGHT AFTER ALLOC'ING.  TYPING ^Q OR ^W AT THE 
	"ALLOC?" QUESTION IMMEDIATELY SELECTS THE .LISP. (INIT) FILE,
	AND TAKES ALLOCATION REQUESTS FROM IT BEFORE READING IT IN.
	FOR THIS PURPOSE, THE FIRST EXPRESSION ON THE FILE MUST BE A 
	LIST OF  THE FORM (COMMENT S1 V1 S2 V2 . . . SN VN).  EACH
	S[I] IS ONE OF CORE, FXS, FLS, REGPDL, SPECPDL, FXPDL, FLPDL 
	OR BPS; AND THE ASSOCIATED V[I] IS THE NUMERICAL VALUE 
	INTENDED FOR THAT SPACE.  ANY SPACE NOT SPECIFIED BY THE 
	COMMENT LIST IS ALLOTED THE STANDARD DEFAULT.



COMPLR SWITCHES - FOLLOWING IS A BRIEF TABLE OF THE SWITCHES THAT ONE
    MAY SET WHEN REQUESTING COMPILATION OF A FILE VIA MAKLAP.  EACH 
    SWITCH SETS THE VALUE OF A GLOBAL VARIABLE TO T, AND THE 
    CORRESPONDING SWITCH PRECEEDED BY A MINUS SIGN SETS THE VARIABLE
    TO NIL.  ALL SWITCH VARIABLES ARE INITIALLY NIL.  SWITCHES MAY BE 
    SET EITHER BY DECLARATIONS IN THE USERS SOURCE FILE, OR BY 
    ENCLOSING THE SWITCH LETTERS IN PARENTHESES IN THE MAKLAP COMMAND
    LINE, E.G. "FOO LAP_FOO >(ZN-T)"


 SWITCH   VARIABLE    BRIEF MEANING

    A	  ASSEMBLE    ONLY DO THE ASSEMBLY PHASE ON THE FILE
    D     DISOWNED    DISOWN THE COMPLR AFTER STARTING
    F     FASL        PRODUCE A FASL FILE BY COMPILING THE INPUT INTO
		      LAP, AND THEN ASEMBLING THE LAP [OR 
		      INTERMEDIATE] FILE.
    K     NOLAP       KILL THE INTERMEDIATE LAP FILE
    M     MACROS      OUTPUT MACRO DEFINITIONS INTO THE LAP FILE
    N     NOARGS      DONT OUTPUT ARGS INFORMATION FOR COMPILED 
		      ROUTINES
    S     SPECIAL     AUTO-DECLARE ALL VARIABLES TO BE SPECIAL
    T     TTYNOTES    PUT A NOTE ON JOB CONSOLE AT END OF COMPILING 
		      EACH FUNCTION, AND/OR AT END OF ASSEMBLING 
		      EACH FUNCTION.
    U     UNFASLCOMMENTS  PRODUCE A FILE OF COMMENTS ABOUT THE FASL 
		      ASSEMBLY [2ND FNAME IS UNFASL].
    X     MAPEX       EXPAND ALL MAP CALLS INTO DOS.  TAKES A LITTLE 
		      MORE CODE, BUT CODE THEN RUNS A LITTLE FASTER.
    Z     SYMBOLS     CAUSE SUBROUTINE SYMBOL DEFINITIONS TO BE ADDED
		      TO JOB SYMBOL TABLE AT LOAD TIME.