
CONVERGENT TECHNOLOGIES

RELEASE NOTICE FOR
9.1 BASIC Interpreter (SDA2200)

July 23, 1986


SECTION   TITLE	PAGE
	1.0	Description of Programs	 2
	2.0	Changes from Prior Version	 3
		2.1  SPRs Closed in This Release	 3
		2.2  Changes from Release 9.0	 3
	3.0	Contents of Distribution Diskette(s)	 4
	4.0	Installation Procedures	 5
		4.1  StandAlone Hard Disk Systems	 5
		4.2  Master Hard Disk Systems	 6
		4.4  StandAlone Floppy Disk Systems	 7
	5.0	Required Files	 8
	6.0	Hardware Information	 8
		6.1  Hardware Configurations Supported	 8
	7.0	Resource RequirementsUtilization	 8
		7.1  Memory RequirementsUtilization	 8
		7.2  Disk RequirementsUtilization	 8
	8.0	Certification Information	 8
	9.0	Documentation Updates	9
	10.0	Known Errors and Omissions	16
1.0	Description of Programs
This Release Notice describes BASIC Interpreter version 9.1.  This section and the sections that follow provide a description of the product, contents of the Distribution Diskette, installation procedures, and other information pertinent to this release of BASIC Interpreter.
BASIC Interpreter 9.1 will not run under Protected Mode Operating System.
2.0	Changes from Prior Version

2.1	SPRs Closed in This Release
A915	Memory overwrite (i.e. comma insertion) problem.
A758	Negative double precision number raised by any number resulted in Illegal Function call for large numbers.
A1355	Changed error message (i.e. from File not found to Access denied).
A1441	Print Using did not work with small numbers.
2.2  Changes from Release 9.0
BasGen.asm has been extensively modified.  There are now approximately 500 TableEntries in the file.
3.0	Contents of Distribution Diskette(s)
The BASIC Interpreter Distribution Diskette is your master copy, and has been shipped writeprotected.  It should not be writeenabled, nor should it be used as a working copy.
The Distribution Diskette contains the following files in the <CT> directory:
  Basic.run       BasicRes.run

The Distribution Diskette contains the following files in the <Config> directory:
  Basic.lib            BasGen.asm      
  ObjBasIntSwp.fls     ObjBasIntRes.fls 
  ObjBasIntSwpII.fls   ObjBasIntResII.fls 
  MaxMemArraySwp       MaxMemArrayRes
  StartBasicLink.sub
It also contains a directory <Sys> with various files used only in the installation of the product.
Basic.run is a swapping version of the BASIC interpreter.  BasicRes.run is a resident version.  Basic.run (or BasicRes.run renamed to Basic.run) must be present in the [sys]<sys> directory to run a BASIC program.  The difference between Basic.run and BasicRes.run is described below in Memory Requirements:  Swapping and Resident Versions of Basic.run.
The remaining files are needed only for configuring BASIC to invoke nonBASIC procedures.  The use of these files is described below in Configuring BASIC.
The Distribution Diskette also has the directory <ReleaseNote> with the following file:
ReleaseNote
4.0	Installation Procedures
The BASIC Interpreter should only be used on Convergent Information Processing Systems which are equipped with hard disk <or dual floppy disks>, or in clusters where the master is equipped with hard disk.
Use the installation procedures described below . Characters that you must type are shown in boldface.  Special keys, such as RETURN and GO, are shown in upper case.
{4.1	StandAlone Hard Disk Systems
A.	Signon and set path at the standalone workstation.  If the Signon form is displayed, fill it in and press GO.  Set the path as follows:
Command   Path  RETURN
Path
  [Volume]	Sys  RETURN
  [Directory]	Sys  RETURN
  [Default file prefix]	RETURN
  [Password]	(if any)  GO
  [Node]
	If your hard disk has a volume password on [Sys], fill this password into the [Password] field before pressing GO.}

	Command Submit RETURN
	Submit
	  File list     [f0]<Sys>HDInstall.sub GO
	  [Parameters]
	  [Force expansion?]
	  [Show expansion?]

Or if your system is installed with Standard Software version 10.0 or higher, do the following:
	Command Install GO
{4.2	Master Hard Disk Systems
A.	Signon and set path at the master workstation.  If the Signon form is displayed, fill it in and press GO.  Set the path as follows:
Command   Path  RETURN
Path
  [Volume]	Sys  RETURN
  [Directory]	Sys  RETURN
  [Default file prefix]	RETURN
  [Password]	(if any)  GO
  [Node]
	If your hard disk has a volume password on [Sys], fill this password into the [Password] field before pressing GO.
B.	Command Submit RETURN
	Submit
	  File list     [f0]<Sys>HDInstall.sub GO
	  [Parameters]
	  [Force expansion?]
	  [Show expansion?]

Or if your system is installed with Standard Software version 10.0 or higher, do the following:
	Command Install GO
{4.4	StandAlone Floppy Disk Systems
A.	Signon and set path at the standalone workstation.  If the Signon form is displayed, fill it in and press GO.  Set the path as follows:
Command   Path  RETURN
Path
  [Volume]	Sys  RETURN
  [Directory]	Sys  RETURN
  [Default file prefix]	RETURN
  [Password]	(if any)  GO
  [Node]
	If your floppy disk has a volume password on [Sys], fill this password into the [Password] field before pressing GO.
B.	Command Submit RETURN
	Submit
	  File list     [f0]<Sys>FDInstall.sub GO
	  [Parameters]
	  [Force expansion?]
	  [Show expansion?]
{5.0	Required Files
The BASIC Interpreter requires the following files which exist in <CT> directory on the Distribution Diskette.  Also, they must exist in [sys]<sys> on user's system.
Basic.run
{6.0	Hardware Information
6.1	Hardware Configurations Supported
BASIC Interpreter can be run on any of the Convergent Technologies' workstation (i.e., IWS, AWS, NGEN).
{7.0	Resource RequirementsUtilization
7.1	Memory RequirementsUtilization
The BASIC Interpreter runs on any workstation with 512K of memory.
7.2	Disk RequirementsUtilization
The BASIC Interpreter needs disk space of:
			156 sectors for Basic.run.
			153 sectors for BasicRes.run.
{8.0	Certification Information
BASIC Interpreter conforms to the ANSI x3.601978 standard.
{9.0	Documentation Updates
This section explains BASIC features which are not explained in the current BASIC  manual.
OPTION COMMA permits the program to substitute optional characters for use as the logical input delimiter, comma, decimal point, and currency symbol.
BasGen.asm
BasGen.asm has been extensively modified and now contains approximately 500 TableEntries.
The order of questions and arrangement of external operations has been extensively modified and a large number of new table entries added to BasGen.asm.  The comments within BasGen.asm have also been expanded and are the documentation update for the file.

OPTION COMMA
Format:	OPTION COMMA [,S$]
Action:	For input and output of numeric data lists during program execution, OPTION COMMA changes the physical representation of the following items:
(1)	Logical input delimiter, which separates data items in the INPUT and WRITE statements;
(2)	Logical comma, which is used by the PRINT USING statement when formatting numbers;
(3)	Logical currency symbol, which is used by the PRINT USING statement when formatting numbers;
(4)	Logical decimal point, which separates the integer and fractional parts of floatingpoint numbers.
	If the optional string parameter is omitted or is the null string, OPTION COMMA resets the above items to the following new default values.
                          Old Value    New Value 
logical input delimiter   comma  (,)   slash  ()
logical comma             comma  (,)   period (.)
logical currency symbol   dollar ($)   dollar ($)
logical decimal point     period (.)   comma  (,)
	If the optional string parameter is included and is nonnull, OPTION COMMA resets the above items based on the first four characters in S$.
                          New Value             
logical input delimiter  first  character in s$
logical comma            second character in s$
logical currency symbol  third  character in s$
logical decimal point    fourth character in s$
	If S$ contains less than four characters, then the new default values are used for the unspecified items.
Note:	OPTION COMMA only effects the execution of a BASIC program with respect to the input and output of numeric data lists.  It does not change the syntax of any part of a BASIC source program.
	In particular, OPTION COMMA does not change the syntax of DATA statements or PRINT USING format strings.
Examples:	10 INPUT X, Y
20 PRINT USING $$,.  ; X, Y

? 12345.67,76543.21
$12,345.67  $76,543.21

10 OPTION COMMA
20 INPUT X, Y
30 PRINT USING $$,.  ; X, Y
40 PRINT X, Y
50 WRITE X, Y

? 12345,6776543,21
$12.345,67  $76.543,21
12345,67     76543,21
12345,67 76543,21

10 OPTION COMMA ; 
20 INPUT X, Y
30 PRINT USING $$,.  ; X, Y

? 12345,67;76543,21
12 345,67  76 543,21
Configuring BASIC
The BASIC interpreter can be configured, that is, you can create a custom version of Basic.run.  By configuring BASIC, you can
o create a Basic.run that can call nonBASIC procedures such as the Forms package or the CTOS operating system,
o link in a customized SAM,
o or change default values, such as the number of files that BASIC can open concurrently, the maximum random record size, and the size of SAM buffers.
To create Basic.run, follow the five steps below.
1. Copying the BASIC Configuration Files
Path into a working directory of your choice.  Copy the contents of the <Config> directory on the BASIC distribution diskette into your directory.
2. Editing BasGen.asm (Optional)
If your are simply configuring in procedures that are already included in BasGen.asm, skip this step.
If you are adding new entries or changing default values, invoke the Editor to modify BasGen.asm.
Add an entry for each new nonBASIC procedure.  Comments within BasGen.asm explain how to add an entry.
The variables sSamBuffer, wMaxFiles, and wMaxRecLen define default values.  These can be modified.
BasGen.asm also provides a facility for renaming nonBASIC procedures.  This facility is documented within BasGen.asm.
3. Assembling BasGen.asm
Use the Assemble command to assemble BasGen.asm:	
Command Assemble RETURN
Assemble
  File                       BasGen.asm GO
  [Errors only?]
  [GenOnly, NoGen, or Gen?]
  [Object File]
  [Error File]
  [List on pass 1?]
During assembly, the Assembler asks a sequence of questions such as:
Are you calling Forms (y or n)?
Are you calling SortMerge (y or n)?
Are you calling the Sequential Access Method (y or n)?
If you answer y (for yes) to a question, the assembler creates an entry for each procedure in the corresponding software package.  To answer no to a question, type n RETURN or just RETURN.
The procedures associated with each software package are as described in the documentation of that package.  The procedure names and interfaces are also part of the file BasGen.asm.  These interfaces are consistent with the current releases of the various software packages.  However, subsequent releases of CTOS.lib, Forms.lib, etc., in which interfaces have been added or changed, may require corresponding revision of BasGen.asm.
If you need to be able to access channel A or B for printing or Comm, you will need to link  with SamGenAll.obj.  When relinking Basic.run, be sure to use a SamGen and Ctos.lib of the same version.
4. Linking Basic.run
After assembling BasGen.asm, you link the BASIC object module library (Basic.lib) with BasGen.obj and with the object modules containing any added nonBASIC procedures.
Use the Executive's Submit command and the submit file StartBasicLink.sub to link BASIC. 
StartBasicLink.sub allows an optional parameter to be typed into the [Parameters] field of the Submit command form.  Allowed parameter values are:
Swp	which causes a swapping version of Basic.run to be created.  The [Object files] field of the Link command form is filled in using the contents of the file ObjBasIntSwp.fls.  The [Max memory array] field is filled in with the contents of the file MaxMemArraySwp.  This is also the default case.
Res	which causes a resident version of Basic.run to be created.  The [Object files] field of the Link command form is filled in using the contents of the file ObjBasIntRes.fls.  The [Max memory array] field is filled in with the contents of the file MaxMemArrayRes.
In general, the swapping version of Basic.run is preferable to the resident version because it requires less memory, with only a small performance degradation.
If you are adding object modules to the [Object files] field, do so by editing either ObjBasIntSwp.fls or ObjBasIntRes.fls.  For more details on the [Object files] field, see the Linker manual.
The example below shows how to link a BASIC that can invoke the Forms package.  We assume that when you assembled BasGen.asm, you answered yes to these questions:	
Are you calling Forms (y or n)?
Are you calling CTOS OpenFile or CloseFile (y or n)?
In this example, it is assumed that Forms.lib, the library containing the object modules for the Forms package, is in the working directory.
Command Submit RETURN
  File List          StartBasicLink.sub
  [Parameters]       Swp GO
  [Force expansion?]
  [Show expansion]
If you are running under CTOS II environment, you need to list one more parameter which is II.
Command Submit RETURN
  File List          StartBasicLink.sub
  [Parameters]       Swp II GO
  [Force expansion?]
  [Show expansion]
StartBasicLink.sub displays the Linker command form and fills in these fields. 	
Command Link
Link
Object modules             BasGen.obj Basic.lib(Basi..
  Run file                 Basic.run
  [List file]              
  [Publics?]               
  [Line numbers?]          
  [Stack size]             
  [Max memory array size]  63584
  [Min memory array size]  6000
  [System build?]          
  [Version]                '9.1 Swp'
  [Libraries]              
  [DS allocation?]
  [Symbol file]            Basic.sym
Note: The Linker automatically searches CTOS.lib, hence, you do not need to include CTOS.lib in the [Libraries] field even though it contains needed object modules. BASIC must be linked with a CTOS.LIB that is version 9.2 or higher.
5. Copying Basic.run
Once Basic.run is created, copy it to [sys]<sys>Basic.run.
{10.0	Known Errors and Omissions
A.	Assigning 39 or more digits to a single precision variable will crash the system. This a limitation of BASIC.
B.	If you add your own procedures to BasGen.asm then answer Yes to every question while assembling BasGen.asm, the Assemble may result in a very large number of errors claiming:
*** Error 23 Limit of 255 EXTRN symbols per object module exceeded

For this reason, be sure to answer no to one or more categories that you are unlikely to use.  (Note: Although the error message says 255 EXTRN symbols, recent Assemblers, through Version 10.2, actually handle 510 external symbols.)