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.