SYSTEM VARIABLES (Pointers to memory locations)
copyright (C) 1983 by E. E. Bergmann
definitions in alphabetical(ASCII) order
:
::
*********************************************************
*							*
* PISTOL-Portably Implemented Stack Oriented Language	*
*			Version 2.0			*
* (C) 1983 by	Ernest E. Bergmann			*
*		Physics, Building #16			*
*		Lehigh Univerisity			*
*		Bethlehem, Pa. 18015			*
*							*
* Permission is hereby granted for all reproduction and *
* distribution of this material provided this notice is *
* included.						*
*							*
*********************************************************
:
::
{unless specified otherwise, pointers are to RAM locations}

#GET-ADDR	Assigned the address of #GETLINE (which is
		later UNLINKed) which is defined in PISTOL to
		take the line number that is on top of stack,
		locate the line (in the edit buffer) and copy
		it into LINEBUF where it can be accessed
		subsequently by the PISTOL compiler.

#LINES		After PISTOL accepts input for compilation, the
		variable is reset to 0. As each line is output
		this variable is incremented and compared with
		the current value of TERMINAL-PAGE; if equal
		input from the user (typically a carriage
		return) is used to cause a pause in the output
		scrolling.  At this point, any input character
		will cause #LINES to be reset to 0.  If the
		input character is a 'Q', the current activity
		is ABORTed.

(PISTOL<)	Variable that contains pointer to most recent
		definition in the PISTOL< vocabulary branch;
		see PISTOL<, below.

(UNLINKED<)	Variable that contains pointer to most recent
		definition in the UNLINKED< vocabulary branch;
		see UNLINKED<, below.



.C		Used during compilation to point to where the
		next word token will be placed in the compile
		buffer.

.D		The "dictionary pointer";  Its value points to
		the next available word address at the end of
		the dictionary in RAM.  It advances as a result
		of each new definition.

.V		--> (pointer to top of vocabulary stack)
		It is the vocabulary stack pointer.

ABORT-PATCH	Normally contains FALSE, but may be assigned
		the address of a routine that should be
		performed after a standard ABORT.

BRANCH-LIST	Each time a BRANCH definition is created it is
		added to the head of a threaded list of
		vocabulary branches.  BRANCH-LIST points to the
		most recently defined branch.

COLUMN		Variable that contains the column number that
		the console is at during output.  It is reset
		to 0 whenever a NEWLINE character is output.
		During output to the console if the value of
		COLUMN becomes equal to the value of
		TERMINAL-WIDTH then a new line is begun.

COMPILE-END-PATCH
		Normally has the value of FALSE.  It may be
		assigned the address of a proceedure to be
		invoked after every compilation, prior to
		the normal execution of the compile buffer.
		It is used, for example, in SHOWCODE, to cause
		the contents of the compile buffer to be
		displayed prior to execution.

CONSOLE		Boolean variable that will prevent output
		to the user's terminal if it is set to FALSE.
		Probably would be used in connection with
		writing lengthy output to the listfile when
		there is no desire to have this information
		presented to the user's console as well.

CONVERT-PATCH	Normally holds FALSE but may be patched with
		the address of a routine that would be invoked
		in the event the compiler cannot decipher the
		input token (cannot FIND it, cannot convert it
		into a numerical value, nor be able to
		recognize it as a quoted string).  It has
		potential application to providing floating
		point number recognition and/or special number
		bases, e.g.: 0A000H or 0xA000.

CURRENT		Variable containing pointer to vocabulary
		branch into which the next word definition
		will be placed.  Normally, this pointer points
		at the last definition.

CURRENT-EOSTRINGS
		"current end of strings" points to the end of
		strings that have been created during the most
		recent compilation, which, generally have
		pointers to them on stack.  The area in strings
		between OLD-EOSTRINGS and CURRENT-EOSTRINGS
		will be recycled during the next compilation
		because compilation starts by resetting the
		CURRENT-EOSTRINGS to the OLD-EOSTRINGS.
		Strings are made "permanent" by advancing the
		OLD-EOSTRINGS to the CURRENT-EOSTRINGS.

ECHO		Boolean variable which, when set TRUE, causes
		whatever PISTOL code that is being LOADed to be
		listed as it is being compiled.

INPUTFILE-STATUS
		Contains the status of the file being input by
		the editor (opened by OPENR).  If its value is
		0, the file has just been opened. If positive,
		it is a count of the number of lines read so
		far.  If -1, no file has been opened or: if
		negative, the number of lines read (magnetude)
		and the file is in an eof condition.

INFILE		Does not contain 0 when LOADing from a file
		or from the edit buffer.  Contains pointer to
		original (temporary) filename string if
		inputing from a file.  If input is from the
		edit buffer, its contents is the current line
		number.  INFILE contains 0 [false] when
		interpreting from the console keyboard.

LIST		Boolean variable when true causes the system
		to output everything that would go to the
		user's console to the listfile as well.  (see
		LISTFILE in i/o).

NEXTCH^		Pointer to the next character in LINEBUF (in
		the strings area) that is to be compiled.
		This variable is used by the compiler but is
		potentially useful for routines that might be
		written in PISTOL to extend the compiler.

OLD-EOSTRINGS	Pointer-to-character variable that points to
		the first character location beyond the last
		"permanent" string.  See the above discussion
		for CURRENT-EOSTRINGS.

OLDLINE#	Holds the number of the numbered line last
		located.  Although primarily used to speed
		searching for successively numbered lines,
		it may prove useful to find out which numbered
		line was last found prior to the compiler
		quitting.

OUTPUT-STATUS	Indicates status of file for editor's output
		(file opened by OPENW).  If value is +1, no
		file has been opened yet, or it has been
		logically closed.  If the value is 0, the file
		has just been opened, but not yet used.  If
		negative, it's magnetude is the count of the
		number of lines written to the file so far.

PREVIOUS	Variable that contains the address of the
		previous link to the definition last found
		by FIND or VFIND.  It is used by UNLINK and
		RELINK to obtain the link to the item searched
		for.

PROMPT-PATCH	Patch location to place address of replacement
		procedure for standard prompt.

RADIX		Contains currentt number base used for i/o
		number conversions.  For example, it is set to
		ten for DECIMAL mode.

RADIX-INDICATOR	Points to character that should indicate
		(during prompt) the current numerical
		conversion mode: 'H' for hexadecimal; 'X' for
		decimal; 'Q' for octal; and 'B' for binary.

RAISE		Boolean variable which causes system to convert
		all word tokens and single-quote strings to
		upper case.

SYNTAXBASE	Points to character count of character string
		that serves as the syntax check stack.  The
		syntax stack can be displayed in the same
		manner as the prompt with:
		SYNTAXBASE MSG

TAB-SIZE	Normally set to 8. It determines the space
		between tab stops.

TERMINAL-PAGE	Determines number of lines output between
		scrolling pauses.  See #LINES .

TERMINAL-WIDTH	Determines number of characters per line before
		automatic newlines.  See COLUMN .

TRACE-ADDR	Patched with the address of the (TRACE) routine
		that is used during TRACE.

TRACE-LEVEL	If FALSE no TRACE action is performed.  If
		positive, determines, level (depth of return
		stack) at which TRACE diagnostic information
		is displayed.  This variable is manipulated by
		TRACE and by (TRACE).  It should not be
		modified by the user directly.

:
