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.