BASIC.TXT

I basically didn't have much time to prepare documentation on this stuff,
but here's the basic poop:

These files are updates to the DECUS BASIC program from the San Francisco
RSX tape collection (uic [300,21] ).  They incorporate a few fixes to
bugs and a few conditionally assembled pieces of code.  You'll have to
look at the files to see what's what, but here's a brief outline:

Conditional assemblies:
	1) The file BASPRE.MAC has the definitions for conditional assembly
	   of certain stuff.  Edit it before assembling the updated sources.

	2) The conditional M11EXT causes a single user version of BASIC to
	   dynamically extend itself (EXTK$) when it runs out of user space.
	   In our installation, BASIC starts out at 17K (with a VERY small
	   user area) and extends up to 32K (smaller if SET /MAXEXT).
	   To tailor such a BASIC system, try task building once, then look
	   at the address limits and adjust the psect $$$$US in the task
	   builder command file to bring it down to a 1K boundary (ours
	   goes to 104777).  The program OVR.BAS tests this feature by
	   defining a whole mess of variables (it depends on DEFVAR, though--
	   see note 4 below).  If you can load annd run OVR.BAS, and then
	   OVERLAY a big program (like SSTAR.BAS from the SF tape), you're
	   in business!  (that's the test i was using, at any rate)

	3) The conditional FPPEMU causes the floating point emulation
	   package FPPEMULAT to be included in the task image.  This
	   currently uses FIS and is single-precision, but it's better
	   than nothing for the time being.

	4) Defining the conditional DEFVAR causes most references to
	   undefined variables to define them (with null or zero value)
	   rather than giving errors. The routine OVR.BAS makes use of
	   this feature.

File descritptions:
	1) *.CMP	These are SLP command files to convert the SF BASIC
			sources.  Run SLP, then give the appropriate filespec,
			then type @xxx.CMP and that should do it.

	2) *.OTS	These are taken from the F4P OTS and have been modified
			so that the error calls are BASIC compatible. RSX-11D
			users with MO: will have to modify BASIC.MSG to
			eliminate all the fill up to ERROR 200 area (quite a
			savings) or just use the stuff from the resident
			library, etc.  Also, ERROR 52 has been added (Mismatch
			In Expression...see the update files), so 11D users
			beware.

	3) BASSPRE.MAC	This is the assembly prefix file. EDIT IT!!

	4) BAS11M.ASM	This is the MAC command file for RSX11M.  EDIT IT!!

	5) BASFIS.BLD	This is the command file to build a single-user
			BASIC under RSX11M with FPPEMULAT.  EDIT IT!!

	6) FPPEMULAT.MAC  Floating-point emulation package....very useful
			  in itself, unless you have FPP or no FIS or Exec
			  resident emulation.....

	7) OVR.BAS	Big BASIC program to push BASIC to it's limits.

	8) INTERNAL.DOC	Slightly more informative map of BASIC internals than
			the one on SF tape  (note the slightly).


NOTE THAT THE CORRECTION FILES DO NOT UPDATE THE DOCUMENTATION IN THE SOURCES.
(I DIDN'T HAVE ENOUGH TIME TO DO IT)

GOOD LUCK!

P.S.--Feel free to call me:
Daniel Steinberg
SRI International
loc K1023
333 Ravenswood
Menlo Park, CA
94025
(415) 326-6200  ext.5539