8/9/72 JONL 1) SOME NEW STATUS CALLS A) (STATUS LISPVERSION) IS NOW NECESSARY, INSTEAD OF THE PREVIOUS DOCUMENTATION THAT SUGGESTED THAT THE VALUE OF THE ATOM LISPVERSION WOULD BE A PNAME-TYPE ATOM COMPRISED OF THE CHARACTERS OF THE SECOND FILE NAME OF THE VERSION OF LISP USED TO CREATE THE RUNNING LISP. C) (STATUS UNAME) LETS YOU KNOW WHAT NAME YOU LOGGED IN UNDER [MORE OR LESS] C) (STATUS JCL) OBTAINS AS A LIST OF SINGLE-OBJECT CHARACTERS THE JOB COMMAND LINE FROM DDT, IF THERE IS ONE, AND NIL OTHERWISE. USEFUL FOR CREATING SYSTEMS THAT COULD TAKE AN ARGUMENT FROM DDT. E.G. COMPLR NOW USES THIS FEATURE SO THAT THE CHARACTERS OF THE JCL ARE FED TO MAKLAP JUST AS YOU WOULD TYPE THEM AFTER CALLING (MAKLAP). THUS :COMPLR MOBY MESS IS ACCEPTABLE, AND WOULD COMPILE THE FILE MOBY MESS INTO MOBY LAP ON THE DSK DIRECTORY OF THE CURRENT SNAME D) (STATUS CHRCT NIL), (STATUS LINEL NIL), (SSTATUS CHRCT NIL N), AND (SSTATUS LINEL NIL N) ARE IMPLEMENTED FOR COMPATIBILITY WITH NLISP TO, TEST AND SET THE VALUES OF THE LINEL AND CHARACTER COUNTER FOR THE TTY CHANNEL. E) (SSTATUS GCTIME NEWVALUE) IS NOT REALLY NEW, BUT WILL NOW RETURN THE VALUE OF THE GCTIME COUNTER AS IT FOUND IT BEFORE THE SETTING OF A NEW VALUE. WORKS LIKE (PROG2 NIL (STATUS GCTIME) (SSTATUS GCTIME NEWVALUE)) 2) SOME NEW FUNCTIONS AND FEATURES FOR HACKING PDL FRAMES: A) EVALFRAME IS THE SAME FUNCTION AS PDLFRAME, BUT I WOULD LIKE TO SEE THE NAME "PDLFRAME" PHASED OUT, SINCE THE FRAME RETURNED BY THIS FUNCTION IS FOR AN MARKED ENTRY TO EVAL. IF (*RSET T) HAS BEEN DONE, THE UPON ENTRY TO EVAL A SMALL STACK OF ITEMS IS PUSHED ON THE REGULAR PDL; THE FIRST ELEMENT OF THE RETURND VALUE IS A PDL POINTER TO THE BEGININING OF THIS STACK, AND HENCE JUST ONE PDL SLOT BEYOND THE PDL POSITIONUPON THE ENTRYTO EVAL. [SEE NOTE OF 5/3/72, SECTION 7] B) ERRFRAME RETURNS A 3-LIST SIMILAR TO EVALFRAME, WHERE THE FIRST IS ELEMENT IS A PDL POINTER TO THE BEGINNNG OF THE STACK OF GOODIES PUSHED ONTO THE PDL WHEN THE ERROR OCCURS; AND THE SECOND ELEMENT IS AN ATOM COMPRISED OF THE CHARACTERS OF THE MAIN PART OF THE ASSOCIATED ERROR MESSAGE. C) BOTH OF THE ABOVE FUNCTIONS NOW ACCEPT AN ARGUMENT WHICH SHOULD BE A PDL POINTER [I.E., A NEGATIVE FIXNUM IN THE APPROPRIATE RANGE], OR NIL MEANING THE PRESENT PDL POSITION, AND THE INTENT IS TO START SEARCHING FOR THE FIRST ASSOCIATED STACK OF GOODIES [AN ERROR MARK FOR ERRFRAME, AND EVAL MARK FOR EVALFRAME] PRIOR TO THAT PDL POINT. HOWEVER, SOMETIMES WHEN SEARCHING THE STACK, ONE GOES BACK TOO FAR, AND WOULD LIKE TO SEARCH FORWARDS; THUS IF A LARGE POSITIVE FIXNUM IS GIVEN AS ARGUMENT, THEN IT IS ASSUMEND TO BE THE NEGATION OF SOME PDL POINTER, WHICH IT THEN USES TO START SEARCHING FORWARDS. SIMILARLY, IF ZERIO IS GIVEN AS ARGUMENT, A FORWARDS SEARCH IS INITIATED AT THE PDL BEGINNING [BOTTOM]. D) BOTH BAKTRACE AND BAKLIST NOW ALLOW AN OPTIONAL ARGUMENT WHICH IS INTERPRETED AS ABOVE FOR THE ARGUMENT TO EVALRFRAME AND ERRFRAME. HOWEVER, THERE IS NO SEARCH PHASE INVOLVED, AND THE PRINTING, (OR BAKLISTING) ALWAYS PROCEEDS BACK UP THE PDL. 3) NVID AND NVFIX NOW RETURN 16384.0 AND 16384. [OCTAL 40000] ON THE CONDITIONS OF DIM CUT OFF AND COUNTER UNDERFLOW. 4) ARGS IS NOW AN LSUBR. GIVEN TWO ARGUMENTS, THE FIRST IS AN ATOM ONTO WHICH AN ARGS PROPERTY IS TO BE PUT, AND THE SECOND IS THE ARGS PROPERTY [WHICH WILL BE PLACED JUST BEFORE THE PNAME PROPERTY]. A PREVIOUS NOTE DESCRIBES THE STRUCTURE OF THE ARGS PROPERTY. TO SAFEGUARD YOUR PROGRAMS AGAINST THE VAGARIES OF FUTURE CHANGES IN THE IMPLEMENTATION OF THIS FEATURE, OR THE VAGARIES OF RUNNING UNDER MACLISP ON ANOTHER COMPUTER, ONE SHOULD NOT USE (GET FOO 'ARGS), BUT RATHER (ARGS FOO); THIS LATER FORM ALLOWS FOR STORING THE ARGS PROPERTY IS SOME MORE EFFICIENT FASHION THAN ON THE ATOM'S PROPERTY LIST. 5) AS IT NOW OPERATES, LAP IS AN IN CORE ASSEMBLER AND RELOCATOR. THERE WILL SOON BE AN OPTIONAL VERSION THAT WILL ASSEMBLE A LAP SOURCE FILE INTO A LAP RELOCATABLE FORMAT, WHICH A LINKING-LOADER VERSION OF LAP WILL BE ABLE TO LOAD IN. WE EXPECT A CONSEQUENT SAVINGS IN TIME WHEN THE LAP LINKING LOADER IS USED ON THE RELOC FILE, AS OPPOSED TO USING THE LAP PROGRAM ON THE SOURCE FILE.