aboutsummaryrefslogtreecommitdiffstats
path: root/bwd_cmd.c
diff options
context:
space:
mode:
Diffstat (limited to 'bwd_cmd.c')
-rw-r--r--bwd_cmd.c2627
1 files changed, 2627 insertions, 0 deletions
diff --git a/bwd_cmd.c b/bwd_cmd.c
new file mode 100644
index 0000000..a0993e2
--- /dev/null
+++ b/bwd_cmd.c
@@ -0,0 +1,2627 @@
+/***************************************************************
+
+ bwd_cmd.c Command Table
+ for Bywater BASIC Interpreter
+
+ Copyright (c) 1993, Ted A. Campbell
+ Bywater Software
+
+ email: tcamp@delphi.com
+
+ Copyright and Permissions Information:
+
+ All U.S. and international rights are claimed by the author,
+ Ted A. Campbell.
+
+ This software is released under the terms of the GNU General
+ Public License (GPL), which is distributed with this software
+ in the file "COPYING". The GPL specifies the terms under
+ which users may copy and use the software in this distribution.
+
+ A separate license is available for commercial distribution,
+ for information on which you should contact the author.
+
+***************************************************************/
+
+/*---------------------------------------------------------------*/
+/* NOTE: Modifications marked "JBV" were made by Jon B. Volkoff, */
+/* 11/1995 (eidetics@cerf.net). */
+/* */
+/* Those additionally marked with "DD" were at the suggestion of */
+/* Dale DePriest (daled@cadence.com). */
+/* */
+/* Version 3.00 by Howard Wulf, AF5NE */
+/* */
+/* Version 3.10 by Howard Wulf, AF5NE */
+/* */
+/* Version 3.20 by Howard Wulf, AF5NE */
+/* */
+/*---------------------------------------------------------------*/
+
+
+/* COMMAND TABLE */
+
+#include "bwbasic.h"
+
+CommandType IntrinsicCommandTable[ /* NUM_COMMANDS */ ] =
+{
+{
+ C_APPEND, /* UniqueID */
+ "APPEND filename$", /* Syntax */
+ "Merges the BASIC program in filename$ into the current BASIC "
+ "program; lines in filename$ replace any matching lines in the "
+ "current program.", /* Description */
+ "APPEND", /* Name */
+ B15 | HB2 | R86 | T79 /* OptionVersionBitmask */
+},
+{
+ C_APPEND, /* UniqueID */
+ "APPEND # filenumber", /* Syntax */
+ "Positions filenumber at EOF and sets the file to writing; filenumber "
+ "<= 0 is ignored.", /* Description */
+ "APPEND", /* Name */
+ D64 | G74 | G65 | G67 /* OptionVersionBitmask */
+},
+{
+ C_AS, /* UniqueID */
+ "AS", /* Syntax */
+ "Syntax Error.", /* Description */
+ "AS", /* Name */
+ B15 | B93 | H14 | M80 | R86 | D71 | T80 | T79 /* OptionVersionBitmask */
+},
+{
+ C_AUTO, /* UniqueID */
+ "AUTO [start [, increment]]", /* Syntax */
+ "Automatic line numbering for manual program entry. If the line "
+ "already exists, then an asterisk is displayed and pressing ENTER "
+ "leaves the line as-is. If the line does not exist, then an asterisk "
+ "is not displayed and pressing ENTER terminates AUTO mode. Regardless "
+ "whether the line exists, entering the command MAN will terminate "
+ "AUTO mode. AUTO mode is also terminated by any ERROR or by pressing "
+ "control-C.", /* Description */
+ "AUTO", /* Name */
+ B15 | HB1 | HB2 | M80 | D71 | T80 /* OptionVersionBitmask */
+},
+{
+ C_BACKSPACE, /* UniqueID */
+ "BACKSPACE # X", /* Syntax */
+ "Points the file to the previous item.", /* Description */
+ "BACKSPACE", /* Name */
+ D64 | G74 | G65 | G67 /* OptionVersionBitmask */
+},
+{
+ C_BREAK, /* UniqueID */
+ "BREAK line [, ...]]", /* Syntax */
+ "Diagnostic command to stop execution at the specified line(s). "
+ " BREAK only applies to user-numbered lines. For multi-statement "
+ "lines, BREAK only applies to the first statement. BREAK effectively "
+ "inserts a hidden STOP command immediately after the line number. "
+ " Once a BREAK occurrs on a specified line, it is automatically "
+ "removed. To remove all existing BREAKs, execute BREAK without "
+ "any line numbers.", /* Description */
+ "BREAK", /* Name */
+ B15 | HB1 | HB2 /* OptionVersionBitmask */
+},
+{
+ C_BUILD, /* UniqueID */
+ "BUILD [start [, increment]]", /* Syntax */
+ "Automatic line numbering for manual program entry. If the line "
+ "already exists, then an asterisk is displayed and pressing ENTER "
+ "leaves the line as-is. If the line does not exist, then an asterisk "
+ "is not displayed and pressing ENTER terminates BUILD mode. Regardless "
+ "whether the line exists, entering the command MAN will terminate "
+ "BUILD mode. BUILD mode is also terminated by any ERROR or by "
+ "pressing control-C.", /* Description */
+ "BUILD", /* Name */
+ H80 /* OptionVersionBitmask */
+},
+{
+ C_BYE, /* UniqueID */
+ "BYE", /* Syntax */
+ "Exits to the operating system.", /* Description */
+ "BYE", /* Name */
+ B15 | D64 | G74 | H14 | HB2 | H80 | G65 | G67 | D73 | D70 | D71 /* OptionVersionBitmask */
+},
+{
+ C_CALL, /* UniqueID */
+ "CALL subname( [parameter [, ...] ] )", /* Syntax */
+ "Calls a subroutine that was defined by SUB and END SUB.", /* Description */
+ "CALL", /* Name */
+ B15 | B93 | H14 | HB2 /* OptionVersionBitmask */
+},
+{
+ C_CASE, /* UniqueID */
+ "CASE constant [TO constant]", /* Syntax */
+ "Introduces an element of a SELECT CASE statement. Multiple tests "
+ "must be seperated a comma. For example: CASE 1, 2 TO 3, IS "
+ "> 4, IF < 5", /* Description */
+ "CASE", /* Name */
+ B15 | B93 | E86 | H14 /* OptionVersionBitmask */
+},
+{
+ C_CASE, /* UniqueID */
+ "CASE IF operator constant", /* Syntax */
+ "Introduces an element of a SELECT CASE statement. Multiple tests "
+ "must be seperated a comma. For example: CASE 1, 2 TO 3, IS "
+ "> 4, IF < 5", /* Description */
+ "CASE", /* Name */
+ B15 | B93 | E86 | H14 /* OptionVersionBitmask */
+},
+{
+ C_CASE, /* UniqueID */
+ "CASE IS operator constant", /* Syntax */
+ "Introduces an element of a SELECT CASE statement. Multiple tests "
+ "must be seperated a comma. For example: CASE 1, 2 TO 3, IS "
+ "> 4, IF < 5", /* Description */
+ "CASE", /* Name */
+ B15 | B93 | E86 | H14 /* OptionVersionBitmask */
+},
+{
+ C_CASE_ELSE, /* UniqueID */
+ "CASE ELSE", /* Syntax */
+ "Introduces a default SELECT CASE element.", /* Description */
+ "CASE ELSE", /* Name */
+ B15 | B93 | E86 | H14 /* OptionVersionBitmask */
+},
+{
+ C_CHAIN, /* UniqueID */
+ "CHAIN filename$ [, linenumber]", /* Syntax */
+ "Load and execute another BASIC program, without clearing common "
+ "variables. For System/370, the syntax is CHAIN filename$,parameter$.", /* Description */
+ "CHAIN", /* Name */
+ B15 | B93 | S70 | C77 | G74 | HB1 | HB2 | H80 | G65 | G67 | M80 | R86 | D71 | I70 | I73 | T80 | T79 /* OptionVersionBitmask */
+},
+{
+ C_CHANGE, /* UniqueID */
+ "CHANGE A$ TO X", /* Syntax */
+ "Changes a string to a numeric array.", /* Description */
+ "CHANGE", /* Name */
+ B15 | D64 | G74 | HB2 | G65 | G67 | D71 /* OptionVersionBitmask */
+},
+{
+ C_CHANGE, /* UniqueID */
+ "CHANGE X TO A$", /* Syntax */
+ "Changes a numeric array to a string.", /* Description */
+ "CHANGE", /* Name */
+ B15 | D64 | G74 | HB2 | G65 | G67 | D71 /* OptionVersionBitmask */
+},
+{
+ C_CLEAR, /* UniqueID */
+ "CLEAR", /* Syntax */
+ "Sets all numeric variables to 0, and all string variables to "
+ "empty strings.", /* Description */
+ "CLEAR", /* Name */
+ B15 | B93 | H14 | HB1 | HB2 | H80 | M80 | R86 | D71 | T80 | T79 /* OptionVersionBitmask */
+},
+{
+ C_CLOAD, /* UniqueID */
+ "CLOAD [filename$]", /* Syntax */
+ "Loads an ASCII BASIC program into memory.", /* Description */
+ "CLOAD", /* Name */
+ B15 | HB1 | HB2 | M80 | D71 | T80 /* OptionVersionBitmask */
+},
+{
+ C_CLOAD8, /* UniqueID */
+ "CLOAD* arrayname", /* Syntax */
+ "Loads a numeric array from a file saved using CSAVE*.", /* Description */
+ "CLOAD*", /* Name */
+ B15 | HB1 | HB2 | M80 | D71 | T80 /* OptionVersionBitmask */
+},
+{
+ C_CLOSE, /* UniqueID */
+ "CLOSE", /* Syntax */
+ "Closes all files.", /* Description */
+ "CLOSE", /* Name */
+ S70 | I70 | I73 /* OptionVersionBitmask */
+},
+{
+ C_CLOSE, /* UniqueID */
+ "CLOSE filename$ [, ...]", /* Syntax */
+ "Closes a file.", /* Description */
+ "CLOSE", /* Name */
+ S70 | I70 | I73 /* OptionVersionBitmask */
+},
+{
+ C_CLOSE, /* UniqueID */
+ "CLOSE filenumber [, ...]", /* Syntax */
+ "Closes a file.", /* Description */
+ "CLOSE", /* Name */
+ S70 | I70 | I73 /* OptionVersionBitmask */
+},
+{
+ C_CLR, /* UniqueID */
+ "CLR", /* Syntax */
+ "Sets all numeric variables to 0, and all string variables to "
+ "empty strings.", /* Description */
+ "CLR", /* Name */
+ HB1 | HB2 /* OptionVersionBitmask */
+},
+{
+ C_CMDS, /* UniqueID */
+ "CMDS", /* Syntax */
+ "Prints a list of all implemented BASIC commands.", /* Description */
+ "CMDS", /* Name */
+ B15 | B93 /* OptionVersionBitmask */
+},
+{
+ C_COMMON, /* UniqueID */
+ "COMMON variable [, ...]", /* Syntax */
+ "Designates variables to be passed to a CHAINed program.", /* Description */
+ "COMMON", /* Name */
+ B15 | B93 | C77 | E86 | HB2 | M80 | D71 | T80 /* OptionVersionBitmask */
+},
+{
+ C_CONSOLE, /* UniqueID */
+ "CONSOLE [WIDTH width]", /* Syntax */
+ "Directs the output of PRINT commands to the console (stdout), "
+ "and optionally changes the console width.", /* Description */
+ "CONSOLE", /* Name */
+ C77 /* OptionVersionBitmask */
+},
+{
+ C_CONST, /* UniqueID */
+ "CONST variable [, ...] = value", /* Syntax */
+ "Assigns the value to variable. Any later assignment to the variable "
+ "causus a VARIABLE NOT DECLARED error.", /* Description */
+ "CONST", /* Name */
+ B15 /* OptionVersionBitmask */
+},
+{
+ C_CONT, /* UniqueID */
+ "CONT", /* Syntax */
+ "Continue a BASIC program after a STOP has been executed. Program "
+ "resumes at the line after the STOP.", /* Description */
+ "CONT", /* Name */
+ B15 | HB1 | HB2 | M80 | R86 | D71 | T80 | T79 /* OptionVersionBitmask */
+},
+{
+ C_CONTINUE, /* UniqueID */
+ "CONTINUE", /* Syntax */
+ "Continue a BASIC program after a STOP has been executed. Program "
+ "resumes at the line after the STOP.", /* Description */
+ "CONTINUE", /* Name */
+ H80 /* OptionVersionBitmask */
+},
+{
+ C_COPY, /* UniqueID */
+ "COPY source$ TO target$", /* Syntax */
+ "Copy an exisitng file.", /* Description */
+ "COPY", /* Name */
+ H14 /* OptionVersionBitmask */
+},
+{
+ C_CREATE, /* UniqueID */
+ "CREATE filename$ [ RECL reclen ] AS filenum\n[ BUFF number ] [ "
+ "RECS size ]", /* Syntax */
+ "Creates the file and opens it. If the file already exists, then "
+ "it is ereased. If the file cannot be created, then an error "
+ "occurs.", /* Description */
+ "CREATE", /* Name */
+ C77 /* OptionVersionBitmask */
+},
+{
+ C_CSAVE, /* UniqueID */
+ "CSAVE [filename$]", /* Syntax */
+ "Saves the current program into the file filename$ in ASCII format.", /* Description */
+ "CSAVE", /* Name */
+ B15 | HB1 | HB2 | M80 | D71 | T80 /* OptionVersionBitmask */
+},
+{
+ C_CSAVE8, /* UniqueID */
+ "CSAVE* ArrayName", /* Syntax */
+ "Saves a numeric array into a file for later loading by CLOAD*.", /* Description */
+ "CSAVE*", /* Name */
+ B15 | HB1 | HB2 | M80 | D71 | T80 /* OptionVersionBitmask */
+},
+{
+ C_DATA, /* UniqueID */
+ "DATA constant [, ...]", /* Syntax */
+ "Stores numeric and string constants to be accessed by READ.", /* Description */
+ "DATA", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_DEC, /* UniqueID */
+ "DEC variable [,...]", /* Syntax */
+ "Decrement a numeric variable.", /* Description */
+ "DEC", /* Name */
+ H14 /* OptionVersionBitmask */
+},
+{
+ C_DEF, /* UniqueID */
+ "DEF FNname[( arg [,...] )] = value", /* Syntax */
+ "Defines a single-line function. Single-line functions require "
+ "an equal sign.", /* Description */
+ "DEF", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_DEF, /* UniqueID */
+ "DEF FNname[( arg [,...] )]", /* Syntax */
+ "Defines a multiline function. Multi-line DEF functions do not "
+ "have an equal sign and must end with FNEND.", /* Description */
+ "DEF", /* Name */
+ B15 | S70 | G74 | HB1 | HB2 | H80 | G67 | D73 | D70 | D71 | I70 | I73 | T80 /* OptionVersionBitmask */
+},
+{
+ C_DEFBYT, /* UniqueID */
+ "DEFBYT letter[-letter] [, ...]", /* Syntax */
+ "Declares variables with single-letter names as numeric variables.", /* Description */
+ "DEFBYT", /* Name */
+ B15 /* OptionVersionBitmask */
+},
+{
+ C_DEFCUR, /* UniqueID */
+ "DEFCUR letter[-letter] [, ...]", /* Syntax */
+ "Declares variables with single-letter names as numeric variables.", /* Description */
+ "DEFCUR", /* Name */
+ B15 /* OptionVersionBitmask */
+},
+{
+ C_DEFDBL, /* UniqueID */
+ "DEFDBL letter[-letter] [, ...]", /* Syntax */
+ "Declares variables with single-letter names as numeric variables.", /* Description */
+ "DEFDBL", /* Name */
+ B15 | B93 | H14 | HB1 | HB2 | M80 | D71 | T80 /* OptionVersionBitmask */
+},
+{
+ C_DEFINT, /* UniqueID */
+ "DEFINT letter[-letter] [, ...]", /* Syntax */
+ "Declares variables with single-letter names as numeric variables.", /* Description */
+ "DEFINT", /* Name */
+ B15 | B93 | H14 | HB1 | HB2 | M80 | D71 | T80 /* OptionVersionBitmask */
+},
+{
+ C_DEFLNG, /* UniqueID */
+ "DEFLNG letter[-letter] [, ...]", /* Syntax */
+ "Declares variables with single-letter names as numeric variables.", /* Description */
+ "DEFLNG", /* Name */
+ B15 /* OptionVersionBitmask */
+},
+{
+ C_DEFSNG, /* UniqueID */
+ "DEFSNG letter[-letter] [, ...]", /* Syntax */
+ "Declares variables with single-letter names as numeric variables.", /* Description */
+ "DEFSNG", /* Name */
+ B15 | B93 | HB1 | HB2 | M80 | D71 | T80 /* OptionVersionBitmask */
+},
+{
+ C_DEFSTR, /* UniqueID */
+ "DEFSTR letter[-letter] [, ...]", /* Syntax */
+ "Declares variables with single-letter names as string variables.", /* Description */
+ "DEFSTR", /* Name */
+ B15 | B93 | H14 | HB1 | HB2 | M80 | D71 | T80 /* OptionVersionBitmask */
+},
+{
+ C_DELETE, /* UniqueID */
+ "DELETE filenumber", /* Syntax */
+ "Closes and deletes the file OPEN as filenumber.", /* Description */
+ "DELETE", /* Name */
+ C77 /* OptionVersionBitmask */
+},
+{
+ C_DELETE, /* UniqueID */
+ "DELETE line [- line]", /* Syntax */
+ "Deletes program lines indicated by the argument(s). All program "
+ "lines have a number, which is visible with the LIST command. "
+ " If line numbers are not provided, they are assigned beginning "
+ "with 1. Deleting a non-existing line does not cause an error.", /* Description */
+ "DELETE", /* Name */
+ B15 | B93 | H14 | HB1 | HB2 | H80 | M80 | D73 | D70 | D71 | T80 /* OptionVersionBitmask */
+},
+{
+ C_DELIMIT, /* UniqueID */
+ "DELIMIT # X, A$", /* Syntax */
+ "Sets the delimiter for READ # and WRITE #.", /* Description */
+ "DELIMIT", /* Name */
+ G74 | G65 | G67 /* OptionVersionBitmask */
+},
+{
+ C_DIM, /* UniqueID */
+ "DIM [# filenum,] variable([ lower TO ] upper)", /* Syntax */
+ "Declares variables and specifies the dimensions of array variables. "
+ " For array variables, if the lower bound is not provided, then "
+ "the OPTION BASE value is used. If filenum is provided, then "
+ "the variable is virtual.", /* Description */
+ "DIM", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_DISPLAY, /* UniqueID */
+ "DISPLAY source$", /* Syntax */
+ "Display an exisitng text file.", /* Description */
+ "DISPLAY", /* Name */
+ H14 /* OptionVersionBitmask */
+},
+{
+ C_DO, /* UniqueID */
+ "DO UNTIL value", /* Syntax */
+ "Top of a DO - LOOP structure. Exits when value is non-zero.", /* Description */
+ "DO", /* Name */
+ B15 | B93 | E86 | H14 /* OptionVersionBitmask */
+},
+{
+ C_DO, /* UniqueID */
+ "DO", /* Syntax */
+ "Top of a DO - LOOP structure. If the loop is not terminated "
+ "by EXIT DO or LOOP UNTIL or LOOP WHILE, then it will loop forever.", /* Description */
+ "DO", /* Name */
+ B15 | B93 | E86 | H14 /* OptionVersionBitmask */
+},
+{
+ C_DO, /* UniqueID */
+ "DO WHILE value", /* Syntax */
+ "Top of a DO - LOOP structure. Exits when value is zero.", /* Description */
+ "DO", /* Name */
+ B15 | B93 | E86 | H14 /* OptionVersionBitmask */
+},
+{
+ C_DOS, /* UniqueID */
+ "DOS", /* Syntax */
+ "Exits to the operating system.", /* Description */
+ "DOS", /* Name */
+ R86 /* OptionVersionBitmask */
+},
+{
+ C_DSP, /* UniqueID */
+ "DSP variable [, ...]]", /* Syntax */
+ "Diagnostic command to display the value every time the variable "
+ "is assigned. To remove all existing DSPs, execute DSP without "
+ "any variables.", /* Description */
+ "DSP", /* Name */
+ B15 | HB1 | HB2 /* OptionVersionBitmask */
+},
+{
+ C_EDIT, /* UniqueID */
+ "EDIT", /* Syntax */
+ "implementation defined.", /* Description */
+ "EDIT", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | HB1 | HB2 | H80 | G65 | G67 | M80 | R86 | D71 | I70 | I73 | T80 | T79 /* OptionVersionBitmask */
+},
+{
+ C_ELSE, /* UniqueID */
+ "ELSE", /* Syntax */
+ "Introduces a default condition in a multi-line IF statement.", /* Description */
+ "ELSE", /* Name */
+ B15 | B93 | C77 | E86 | H14 | HB1 | HB2 | H80 | M80 | D73 | D70 | R86 | D71 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_ELSEIF, /* UniqueID */
+ "ELSEIF", /* Syntax */
+ "Introduces a secondary condition in a multi-line IF statement.", /* Description */
+ "ELSEIF", /* Name */
+ B15 | B93 | C77 | E86 | H14 | HB1 | HB2 | H80 | M80 | D73 | D70 | R86 | D71 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_END, /* UniqueID */
+ "END", /* Syntax */
+ "Terminates program execution. If the BASIC program was executed "
+ "from the operating system level, then control returns to the "
+ "operating system, oterwise control reuturns to the BASIC prompt.", /* Description */
+ "END", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_END_FUNCTION, /* UniqueID */
+ "END FUNCTION", /* Syntax */
+ "Specifies the last line of a multi-line FUNCTION definition.", /* Description */
+ "END FUNCTION", /* Name */
+ B15 | B93 | E86 | H14 /* OptionVersionBitmask */
+},
+{
+ C_END_IF, /* UniqueID */
+ "END IF", /* Syntax */
+ "Specifies the last line of a multi-line IF definition.", /* Description */
+ "END IF", /* Name */
+ B15 | B93 | C77 | E86 | H14 | HB1 | HB2 | H80 | M80 | D73 | D70 | R86 | D71 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_END_SELECT, /* UniqueID */
+ "END SELECT", /* Syntax */
+ "Specifies the last line of a multi-line SELECT CASE definition.", /* Description */
+ "END SELECT", /* Name */
+ B15 | B93 | E86 | H14 /* OptionVersionBitmask */
+},
+{
+ C_END_SUB, /* UniqueID */
+ "END SUB", /* Syntax */
+ "Specifies the last line of a multi-line SUB definition.", /* Description */
+ "END SUB", /* Name */
+ B15 | B93 | E86 | H14 /* OptionVersionBitmask */
+},
+{
+ C_ERASE, /* UniqueID */
+ "ERASE variable [, ...]", /* Syntax */
+ "Eliminates arrayed variables from a program.", /* Description */
+ "ERASE", /* Name */
+ B15 | B93 | H14 | HB1 | HB2 | M80 | D71 | T80 /* OptionVersionBitmask */
+},
+{
+ C_EXCHANGE, /* UniqueID */
+ "EXCHANGE variable, variable", /* Syntax */
+ "Swaps the values of two variables. Both variables must be of "
+ "the same type.", /* Description */
+ "EXCHANGE", /* Name */
+ B15 | HB2 /* OptionVersionBitmask */
+},
+{
+ C_EXIT, /* UniqueID */
+ "EXIT", /* Syntax */
+ "Syntax Error.", /* Description */
+ "EXIT", /* Name */
+ B15 | B93 | E86 | H14 | HB2 /* OptionVersionBitmask */
+},
+{
+ C_EXIT_DO, /* UniqueID */
+ "EXIT DO", /* Syntax */
+ "Immediately exits the inner-most DO-LOOP strucure.", /* Description */
+ "EXIT DO", /* Name */
+ B15 | B93 | E86 | H14 /* OptionVersionBitmask */
+},
+{
+ C_EXIT_FOR, /* UniqueID */
+ "EXIT FOR", /* Syntax */
+ "Immediately exits the inner-most FOR-NEXT strucure.", /* Description */
+ "EXIT FOR", /* Name */
+ B15 | B93 | E86 | H14 | HB2 /* OptionVersionBitmask */
+},
+{
+ C_EXIT_FUNCTION, /* UniqueID */
+ "EXIT FUNCTION", /* Syntax */
+ "Immediately exits the inner-most multi-line FUNCTION strucure.", /* Description */
+ "EXIT FUNCTION", /* Name */
+ B15 | B93 | E86 | H14 /* OptionVersionBitmask */
+},
+{
+ C_EXIT_REPEAT, /* UniqueID */
+ "EXIT REPEAT", /* Syntax */
+ "Exit a REPEAT - UNTIL structure.", /* Description */
+ "EXIT REPEAT", /* Name */
+ B15 | H14 | HB2 /* OptionVersionBitmask */
+},
+{
+ C_EXIT_SUB, /* UniqueID */
+ "EXIT SUB", /* Syntax */
+ "Immediately exits the inner-most multi-line SUB strucure.", /* Description */
+ "EXIT SUB", /* Name */
+ B15 | B93 | E86 | H14 /* OptionVersionBitmask */
+},
+{
+ C_EXIT_WHILE, /* UniqueID */
+ "EXIT WHILE", /* Syntax */
+ "Immediately exits the inner-most WHILE-END strucure.", /* Description */
+ "EXIT WHILE", /* Name */
+ B15 | B93 | E86 /* OptionVersionBitmask */
+},
+{
+ C_FEND, /* UniqueID */
+ "FEND", /* Syntax */
+ "Specifies the last line of a multi-line DEF function.", /* Description */
+ "FEND", /* Name */
+ C77 /* OptionVersionBitmask */
+},
+{
+ C_FIELD, /* UniqueID */
+ "FIELD [#] filenum, number AS variable$ [, ...]", /* Syntax */
+ "Assigns number bytes in the buffer of random file filenum to "
+ "the variable variable$. GET will automatically update the variable, "
+ "and PUT will automatically use the variable.", /* Description */
+ "FIELD", /* Name */
+ B15 | B93 | H14 | M80 | R86 | D71 | T80 | T79 /* OptionVersionBitmask */
+},
+{
+ C_FILE, /* UniqueID */
+ "FILE filename$ [( reclen )]", /* Syntax */
+ "Opens the file in READ mode.", /* Description */
+ "FILE", /* Name */
+ C77 /* OptionVersionBitmask */
+},
+{
+ C_FILE, /* UniqueID */
+ "FILE # X, A$", /* Syntax */
+ "If A$ is \"*\" then closes file # X. If A$ is not \"*\" then opens "
+ "the file named A$ in READ mode.", /* Description */
+ "FILE", /* Name */
+ C77 | D64 | G74 | G65 | G67 /* OptionVersionBitmask */
+},
+{
+ C_FILES, /* UniqueID */
+ "FILES A$[, ...]", /* Syntax */
+ "If A$ is not \"*\" opens the file named A$ in READ mode. The first "
+ "filename of the first FILES command is assocated with file number "
+ "1. Note that multiple FILES commands accumulate.", /* Description */
+ "FILES", /* Name */
+ D64 | G74 | G65 | G67 /* OptionVersionBitmask */
+},
+{
+ C_FLEX, /* UniqueID */
+ "FLEX", /* Syntax */
+ "Exits to the operating system.", /* Description */
+ "FLEX", /* Name */
+ T79 /* OptionVersionBitmask */
+},
+{
+ C_FNCS, /* UniqueID */
+ "FNCS", /* Syntax */
+ "Prints a list of all pre-defined BASIC functions.", /* Description */
+ "FNCS", /* Name */
+ B15 | B93 /* OptionVersionBitmask */
+},
+{
+ C_FNEND, /* UniqueID */
+ "FNEND", /* Syntax */
+ "Specifies the last line of a multi-line DEF function.", /* Description */
+ "FNEND", /* Name */
+ B15 | S70 | G74 | HB1 | HB2 | H80 | G67 | D73 | D70 | D71 | I70 | I73 | T80 /* OptionVersionBitmask */
+},
+{
+ C_FOR, /* UniqueID */
+ "FOR variable = start TO finish [STEP increment]", /* Syntax */
+ "Top of a FOR - NEXT structure. The loop will continue a fixed "
+ "number of times, which is determined by the values of start, "
+ "finish, and increment.", /* Description */
+ "FOR", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_FUNCTION, /* UniqueID */
+ "FUNCTION [ ( parameter [, ... ] ) ]", /* Syntax */
+ "Top line of a multi-line FUNCTION definition. The variable names "
+ "specified are local to the FUNCTION definition, and are initialized "
+ "BYVAL when the function is invoked by another routine.", /* Description */
+ "FUNCTION", /* Name */
+ B15 | B93 | E86 | H14 /* OptionVersionBitmask */
+},
+{
+ C_GET, /* UniqueID */
+ "GET # file_number , [ byte_number ] , scalar [,...]", /* Syntax */
+ "Gets one (or more) values from a BINARY file.", /* Description */
+ "GET", /* Name */
+ H14 /* OptionVersionBitmask */
+},
+{
+ C_GET, /* UniqueID */
+ "GET # file_number [ , RECORD record_number ]", /* Syntax */
+ "Gets one (or more) values from a file.", /* Description */
+ "GET", /* Name */
+ R86 | D71 | T79 /* OptionVersionBitmask */
+},
+{
+ C_GET, /* UniqueID */
+ "GET # file_number [ , RECORD record_number ]", /* Syntax */
+ "Gets one (or more) values from a file.", /* Description */
+ "GET", /* Name */
+ R86 | D71 | T79 /* OptionVersionBitmask */
+},
+{
+ C_GET, /* UniqueID */
+ "GET filename$ , scalar [, ...]", /* Syntax */
+ "Gets one (or more) values from a file.", /* Description */
+ "GET", /* Name */
+ S70 | I70 | I73 /* OptionVersionBitmask */
+},
+{
+ C_GET, /* UniqueID */
+ "GET # file_number [ , record_number ]", /* Syntax */
+ "Gets one (or more) values from a RANDOM file.", /* Description */
+ "GET", /* Name */
+ H14 /* OptionVersionBitmask */
+},
+{
+ C_GO, /* UniqueID */
+ "GO", /* Syntax */
+ "Syntax Error.", /* Description */
+ "GO", /* Name */
+ B15 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_GO_SUB, /* UniqueID */
+ "GO SUB line", /* Syntax */
+ "Initiates a subroutine call to the line specified. The subroutine "
+ "must end with RETURN. The line may be a number or a label.", /* Description */
+ "GO SUB", /* Name */
+ B15 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_GO_TO, /* UniqueID */
+ "GO TO line", /* Syntax */
+ "Branches program execution to the specified line. The line may "
+ "be a number or a label.", /* Description */
+ "GO TO", /* Name */
+ B15 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_GOODBYE, /* UniqueID */
+ "GOODBYE", /* Syntax */
+ "Exits to the operating system.", /* Description */
+ "GOODBYE", /* Name */
+ B15 | D64 | G74 | HB2 | G65 | G67 | D71 /* OptionVersionBitmask */
+},
+{
+ C_GOSUB, /* UniqueID */
+ "GOSUB line", /* Syntax */
+ "Initiates a subroutine call to the line specified. The subroutine "
+ "must end with RETURN. The line may be a number or a label.", /* Description */
+ "GOSUB", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_GOTO, /* UniqueID */
+ "GOTO line", /* Syntax */
+ "Branches program execution to the specified line. The line may "
+ "be a number or a label.", /* Description */
+ "GOTO", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_HELP, /* UniqueID */
+ "HELP name", /* Syntax */
+ "Provides help on the specified name which is a command name or "
+ "function name.", /* Description */
+ "HELP", /* Name */
+ B15 /* OptionVersionBitmask */
+},
+{
+ C_IF, /* UniqueID */
+ "IF value THEN line1 [ELSE line2]", /* Syntax */
+ "Single line standard IF command. If the value is non-zero, then "
+ "branh to line1. If the value is zero and ELSE is provided, then "
+ "branch to line2. Otherwise continue to the next line. LABELS "
+ "are not allowed.", /* Description */
+ "IF", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_IF_END, /* UniqueID */
+ "IF END # filenum THEN line1 [ELSE line2]", /* Syntax */
+ "Single line standard IF command. If the file is at EOF , then "
+ "branch to line1. If the file is not at EOF and ELSE is provided, "
+ "then branch to line2. Otherwise continue to the next line. "
+ "LABELS are not allowed.", /* Description */
+ "IF END", /* Name */
+ C77 | D64 | G74 | G65 | G67 /* OptionVersionBitmask */
+},
+{
+ C_IF_MORE, /* UniqueID */
+ "IF MORE # filenum THEN line1 [ELSE line2]", /* Syntax */
+ "Single line standard IF command. If the file is not at EOF , "
+ "then branch to line1. If the file is at EOF and ELSE is provided, "
+ "then branch to line2. Otherwise continue to the next line. "
+ "LABELS are not allowed.", /* Description */
+ "IF MORE", /* Name */
+ D64 | G74 | G65 | G67 /* OptionVersionBitmask */
+},
+{
+ C_IF8THEN, /* UniqueID */
+ "IF value THEN", /* Syntax */
+ "Top of a multi-line IF - END IF structure. If the value is non-zero, "
+ "then the program lines upto the next ELSE or ELSE IF command "
+ "are executed, otherwise the program branches to the next ELSE "
+ "or ELSE IF command.", /* Description */
+ "IF*THEN", /* Name */
+ B15 | B93 | C77 | E86 | H14 | HB1 | HB2 | H80 | M80 | D73 | D70 | R86 | D71 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_IMAGE, /* UniqueID */
+ "IMAGE \"format string\" ", /* Syntax */
+ "Provides format string for PRINT USING linenum.", /* Description */
+ "IMAGE", /* Name */
+ S70 | H14 | HB1 | HB2 | I70 | I73 /* OptionVersionBitmask */
+},
+{
+ C_INC, /* UniqueID */
+ "INC variable [,...]", /* Syntax */
+ "Increment a numeric variable.", /* Description */
+ "INC", /* Name */
+ H14 /* OptionVersionBitmask */
+},
+{
+ C_INPUT, /* UniqueID */
+ "INPUT \"prompt string\" , variable [, ...]", /* Syntax */
+ "Reads input from the terminal after displaying a prompt.", /* Description */
+ "INPUT", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | T79 /* OptionVersionBitmask */
+},
+{
+ C_INPUT, /* UniqueID */
+ "INPUT # filenum , variable [, ...]s", /* Syntax */
+ "Reads input from the file specified by filenum.", /* Description */
+ "INPUT", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | T79 /* OptionVersionBitmask */
+},
+{
+ C_INPUT, /* UniqueID */
+ "INPUT variable [, ...]", /* Syntax */
+ "Reads input from the terminal.", /* Description */
+ "INPUT", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | T79 /* OptionVersionBitmask */
+},
+{
+ C_INPUT_LINE, /* UniqueID */
+ "INPUT LINE variable$", /* Syntax */
+ "Reads entire line from the terminal into variable$.", /* Description */
+ "INPUT LINE", /* Name */
+ B15 | H80 | M80 | R86 | D71 | T80 | T79 /* OptionVersionBitmask */
+},
+{
+ C_INPUT_LINE, /* UniqueID */
+ "INPUT LINE # filenum , variable$", /* Syntax */
+ "Reads entire line from a file into variable$.", /* Description */
+ "INPUT LINE", /* Name */
+ B15 | H80 | M80 | R86 | D71 | T80 | T79 /* OptionVersionBitmask */
+},
+{
+ C_INPUT_LINE, /* UniqueID */
+ "INPUT LINE \"prompt string\" , variable$", /* Syntax */
+ "Reads entire line from the terminal into variable$ after displaying "
+ "a prompt", /* Description */
+ "INPUT LINE", /* Name */
+ B15 | H80 | M80 | R86 | D71 | T80 | T79 /* OptionVersionBitmask */
+},
+{
+ C_LET, /* UniqueID */
+ "[LET] variable [, ...] = value", /* Syntax */
+ "Assigns the value to the variable. The LET keyword is optional.", /* Description */
+ "LET", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_LINE, /* UniqueID */
+ "LINE", /* Syntax */
+ "Syntax Error.", /* Description */
+ "LINE", /* Name */
+ B15 | B93 | H14 | HB2 | H80 | M80 | R86 | D71 | T80 | T79 /* OptionVersionBitmask */
+},
+{
+ C_LINE_INPUT, /* UniqueID */
+ "LINE INPUT [[#] filenum,][\"prompt string\";] variable$", /* Syntax */
+ "Reads entire line from the keyboard or a file into variable$.", /* Description */
+ "LINE INPUT", /* Name */
+ B15 | B93 | H14 | HB2 | H80 | M80 | R86 | D71 | T80 | T79 /* OptionVersionBitmask */
+},
+{
+ C_LIST, /* UniqueID */
+ "LIST line1 [- line2]", /* Syntax */
+ "Lists BASIC program lines from line1 to line2 to the console "
+ "on stdout.", /* Description */
+ "LIST", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | T79 /* OptionVersionBitmask */
+},
+{
+ C_LISTNH, /* UniqueID */
+ "LISTNH line1 [- line2]", /* Syntax */
+ "Lists BASIC program lines from line1 to line2 to the console "
+ "on stdout.", /* Description */
+ "LISTNH", /* Name */
+ B15 | S70 | C77 | D64 | G74 | G65 | G67 | D71 | I70 | I73 /* OptionVersionBitmask */
+},
+{
+ C_LLIST, /* UniqueID */
+ "LLIST line1 [- line2]", /* Syntax */
+ "Lists BASIC program lines from line1 to line2 to the printer "
+ "on stderr.", /* Description */
+ "LLIST", /* Name */
+ B15 | C77 | H14 | HB2 | M80 | D71 | T80 /* OptionVersionBitmask */
+},
+{
+ C_LOAD, /* UniqueID */
+ "LOAD [filename$]", /* Syntax */
+ "Loads an ASCII BASIC program into memory.", /* Description */
+ "LOAD", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | G65 | G67 | M80 | R86 | D71 | I70 | I73 | T80 | T79 /* OptionVersionBitmask */
+},
+{
+ C_LOCAL, /* UniqueID */
+ "LOCAL [# filenum,] variable([ lower TO ] upper)", /* Syntax */
+ "Declares variables and specifies the dimensions of array variables. "
+ " For array variables, if the lower bound is not provided, then "
+ "the OPTION BASE value is used. If filenum is provided, then "
+ "the variable is virtual. Only supported inside a FUNCTION or "
+ "SUB.", /* Description */
+ "LOCAL", /* Name */
+ H14 /* OptionVersionBitmask */
+},
+{
+ C_LOOP, /* UniqueID */
+ "LOOP UNTIL value", /* Syntax */
+ "Bottom of a DO - LOOP structure. Exits when value is nonz-zero.", /* Description */
+ "LOOP", /* Name */
+ B15 | B93 | E86 | H14 /* OptionVersionBitmask */
+},
+{
+ C_LOOP, /* UniqueID */
+ "LOOP WHILE value", /* Syntax */
+ "Bottom of a DO - LOOP structure. Exits when value is zero.", /* Description */
+ "LOOP", /* Name */
+ B15 | B93 | E86 | H14 /* OptionVersionBitmask */
+},
+{
+ C_LOOP, /* UniqueID */
+ "LOOP", /* Syntax */
+ "Bottom of a DO - LOOP structure. If the loop is not terminated "
+ "by EXIT DO or DO UNTIL or DO WHILE, then it will loop forever.", /* Description */
+ "LOOP", /* Name */
+ B15 | B93 | E86 | H14 /* OptionVersionBitmask */
+},
+{
+ C_LPRINT, /* UniqueID */
+ "LPRINT [USING format-string$;] value ...", /* Syntax */
+ "Send output to the printer (stderr).", /* Description */
+ "LPRINT", /* Name */
+ B15 | S70 | E78 | E86 | H14 | HB2 | M80 | D71 | I70 | I73 | T80 /* OptionVersionBitmask */
+},
+{
+ C_LPRINTER, /* UniqueID */
+ "LPRINTER [WIDTH width]", /* Syntax */
+ "Directs the output of PRINT commands to the printer (stderr), "
+ "and optionally changes the printer width.", /* Description */
+ "LPRINTER", /* Name */
+ C77 /* OptionVersionBitmask */
+},
+{
+ C_LPT, /* UniqueID */
+ "LPT [filename$]", /* Syntax */
+ "Directs the PRINT commands to write to the printer (stderr), "
+ "or optionally to the specified file.", /* Description */
+ "LPT", /* Name */
+ D73 /* OptionVersionBitmask */
+},
+{
+ C_LSET, /* UniqueID */
+ "LSET variable$ = value", /* Syntax */
+ "Left-aligns the value into variable$. If the length of the value "
+ "is too short, then it is padded on the right with spaces. If "
+ "the length of the value is too long, then it is truncated on "
+ "the right. This is only for use with variables assigned to a "
+ "random access buffer with FIELD command.", /* Description */
+ "LSET", /* Name */
+ B15 | B93 | H14 | M80 | R86 | D71 | T80 | T79 /* OptionVersionBitmask */
+},
+{
+ C_MAINTAINER, /* UniqueID */
+ "MAINTAINER", /* Syntax */
+ "This command is reserved for use by the Bywater BASIC maintainer. "
+ " It is not for the BASIC programmer.", /* Description */
+ "MAINTAINER", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_MAINTAINER_CMDS, /* UniqueID */
+ "MAINTAINER CMDS", /* Syntax */
+ "Syntax Error.", /* Description */
+ "MAINTAINER CMDS", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_MAINTAINER_CMDS_HTML, /* UniqueID */
+ "MAINTAINER CMDS HTML", /* Syntax */
+ "Dump COMMAND vs VERSION as HTML table", /* Description */
+ "MAINTAINER CMDS HTML", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_MAINTAINER_CMDS_ID, /* UniqueID */
+ "MAINTAINER CMDS ID", /* Syntax */
+ "Dump COMMAND #define.", /* Description */
+ "MAINTAINER CMDS ID", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_MAINTAINER_CMDS_MANUAL, /* UniqueID */
+ "MAINTAINER CMDS MANUAL", /* Syntax */
+ "Dump COMMAND manual.", /* Description */
+ "MAINTAINER CMDS MANUAL", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_MAINTAINER_CMDS_SWITCH, /* UniqueID */
+ "MAINTAINER CMDS_SWITCH", /* Syntax */
+ "Dump COMMAND switch.", /* Description */
+ "MAINTAINER CMDS SWITCH", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_MAINTAINER_CMDS_TABLE, /* UniqueID */
+ "MAINTAINER CMDS TABLE", /* Syntax */
+ "Dump COMMAND table.", /* Description */
+ "MAINTAINER CMDS TABLE", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_MAINTAINER_DEBUG, /* UniqueID */
+ "MAINTAINER DEBUG", /* Syntax */
+ "Syntax Error.", /* Description */
+ "MAINTAINER DEBUG", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_MAINTAINER_DEBUG_OFF, /* UniqueID */
+ "MAINTAINER DEBUG OFF", /* Syntax */
+ "Disable degug tracing.", /* Description */
+ "MAINTAINER DEBUG OFF", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_MAINTAINER_DEBUG_ON, /* UniqueID */
+ "MAINTAINER DEBUG ON", /* Syntax */
+ "Enable degug tracing.", /* Description */
+ "MAINTAINER DEBUG ON", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_MAINTAINER_FNCS, /* UniqueID */
+ "MAINTAINER FNCS", /* Syntax */
+ "Syntax Error.", /* Description */
+ "MAINTAINER FNCS", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_MAINTAINER_FNCS_HTML, /* UniqueID */
+ "MAINTAINER FNCS HTML", /* Syntax */
+ "Dump FUNCTION vs VERSION as HTML table.", /* Description */
+ "MAINTAINER FNCS HTML", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_MAINTAINER_FNCS_ID, /* UniqueID */
+ "MAINTAINER FNCS ID", /* Syntax */
+ "Dump FUNCTION #define.", /* Description */
+ "MAINTAINER FNCS ID", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_MAINTAINER_FNCS_MANUAL, /* UniqueID */
+ "MAINTAINER FNCS MANUAL", /* Syntax */
+ "Dump FUNCTION manual.", /* Description */
+ "MAINTAINER FNCS MANUAL", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_MAINTAINER_FNCS_SWITCH, /* UniqueID */
+ "MAINTAINER FNCS SWITCH", /* Syntax */
+ "Dump FUNCTION switch.", /* Description */
+ "MAINTAINER FNCS SWITCH", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_MAINTAINER_FNCS_TABLE, /* UniqueID */
+ "MAINTAINER FNCS TABLE", /* Syntax */
+ "Dump FUNCTION table.", /* Description */
+ "MAINTAINER FNCS TABLE", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_MAINTAINER_MANUAL, /* UniqueID */
+ "MAINTAINER MANUAL", /* Syntax */
+ "Dump manual for the currently selected OPTION VERSION.", /* Description */
+ "MAINTAINER MANUAL", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_MAINTAINER_STACK, /* UniqueID */
+ "MAINTAINER STACK", /* Syntax */
+ "Dump the BASIC stack.", /* Description */
+ "MAINTAINER STACK", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_MARGIN, /* UniqueID */
+ "MARGIN # filenumber, width", /* Syntax */
+ "Sets the file margin for writing; filenumber <= 0 is ignored.", /* Description */
+ "MARGIN", /* Name */
+ B15 | D64 | G74 | HB2 | G65 | G67 /* OptionVersionBitmask */
+},
+{
+ C_MAT, /* UniqueID */
+ "MAT arrayname = value", /* Syntax */
+ "Matrix operations:\nMAT A = CON\nMAT A = IDN\nMAT A = ZER\nMAT A "
+ "= INV B\nMAT A = TRN B\nMAT A = (k) * B\nMAT A = B\nMAT A = B + C\nMAT "
+ "A = B - C\nMAT A = B * C", /* Description */
+ "MAT", /* Name */
+ S70 | D64 | G74 | H14 | HB1 | HB2 | G65 | G67 | D71 | I70 | I73 /* OptionVersionBitmask */
+},
+{
+ C_MAT_GET, /* UniqueID */
+ "MAT GET filename$, arrayname", /* Syntax */
+ "Matrix get.", /* Description */
+ "MAT GET", /* Name */
+ S70 | G74 | G65 | G67 | I70 | I73 /* OptionVersionBitmask */
+},
+{
+ C_MAT_INPUT, /* UniqueID */
+ "MAT INPUT arrayname", /* Syntax */
+ "Matrix input.", /* Description */
+ "MAT INPUT", /* Name */
+ S70 | D64 | G74 | H14 | HB1 | HB2 | G65 | G67 | D71 | I70 | I73 /* OptionVersionBitmask */
+},
+{
+ C_MAT_PRINT, /* UniqueID */
+ "MAT PRINT arrayname", /* Syntax */
+ "Matrix print.", /* Description */
+ "MAT PRINT", /* Name */
+ S70 | D64 | G74 | H14 | HB1 | HB2 | G65 | G67 | D71 | I70 | I73 /* OptionVersionBitmask */
+},
+{
+ C_MAT_PUT, /* UniqueID */
+ "MAT PUT filename$, arrayname", /* Syntax */
+ "Matrix put.", /* Description */
+ "MAT PUT", /* Name */
+ S70 | G74 | G65 | G67 | I70 | I73 /* OptionVersionBitmask */
+},
+{
+ C_MAT_READ, /* UniqueID */
+ "MAT READ arrayname", /* Syntax */
+ "Matrix read.", /* Description */
+ "MAT READ", /* Name */
+ S70 | D64 | G74 | H14 | HB1 | HB2 | G65 | G67 | D71 | I70 | I73 /* OptionVersionBitmask */
+},
+{
+ C_MAT_WRITE, /* UniqueID */
+ "MAT WRITE arrayname", /* Syntax */
+ "Matrix write.", /* Description */
+ "MAT WRITE", /* Name */
+ D64 | G74 | H14 | HB1 | HB2 | G65 | G67 /* OptionVersionBitmask */
+},
+{
+ C_MERGE, /* UniqueID */
+ "MERGE filename$", /* Syntax */
+ "Merges the BASIC program in filename$ into the current BASIC "
+ "program. Lines in filename$ replace any matching lines in the "
+ "current program.", /* Description */
+ "MERGE", /* Name */
+ B15 | B93 | C77 | M80 | D71 | T80 /* OptionVersionBitmask */
+},
+{
+ C_MID4, /* UniqueID */
+ "MID$( variable$, start [, count ] ) = value", /* Syntax */
+ "Replaces a subtring of variable$ with value.", /* Description */
+ "MID$", /* Name */
+ B15 | B93 | C77 | H14 | H80 | M80 | D71 | T80 /* OptionVersionBitmask */
+},
+{
+ C_MON, /* UniqueID */
+ "MON", /* Syntax */
+ "Exits to the operating system.", /* Description */
+ "MON", /* Name */
+ R86 /* OptionVersionBitmask */
+},
+{
+ C_NAME, /* UniqueID */
+ "NAME old$ AS new$", /* Syntax */
+ "Changes the name of an existing file.", /* Description */
+ "NAME", /* Name */
+ B15 | B93 | H14 | M80 | D71 | T80 /* OptionVersionBitmask */
+},
+{
+ C_NEW, /* UniqueID */
+ "NEW", /* Syntax */
+ "Deletes the program in memory and clears all variables.", /* Description */
+ "NEW", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | T79 /* OptionVersionBitmask */
+},
+{
+ C_NEXT, /* UniqueID */
+ "NEXT [variable]", /* Syntax */
+ "The bottom line of a FOR - NEXT structure.", /* Description */
+ "NEXT", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OF, /* UniqueID */
+ "OF", /* Syntax */
+ "Syntax Error.", /* Description */
+ "OF", /* Name */
+ B15 | S70 | C77 | D64 | E78 | E86 | G74 | HB1 | HB2 | G65 | G67 | M80 | R86 | D71 | I70 | I73 | T80 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OLD, /* UniqueID */
+ "OLD [filename$]", /* Syntax */
+ "Loads an ASCII BASIC program into memory.", /* Description */
+ "OLD", /* Name */
+ D64 | G74 | H80 | G65 | G67 | D73 | D70 | D71 /* OptionVersionBitmask */
+},
+{
+ C_ON, /* UniqueID */
+ "ON value GOSUB line [, ...]", /* Syntax */
+ "Calls based on the rounded value.", /* Description */
+ "ON", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_ON, /* UniqueID */
+ "ON value GOTO line [, ...]", /* Syntax */
+ "Branches based on the rounded value.", /* Description */
+ "ON", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_ON_ERROR, /* UniqueID */
+ "ON ERROR", /* Syntax */
+ "Syntax Error.", /* Description */
+ "ON ERROR", /* Name */
+ B15 | B93 | H14 | HB1 | HB2 | M80 | R86 | D71 | T80 | T79 /* OptionVersionBitmask */
+},
+{
+ C_ON_ERROR_GOSUB, /* UniqueID */
+ "ON ERROR GOSUB errline", /* Syntax */
+ "When a trappable error occurs, execute GOSUB errline. The error "
+ "handler must terminate with a RETURN command. If the line number "
+ "is 0 (zerp), then use the default error handler. Valid when "
+ "OPTION ERROR GOSUB.", /* Description */
+ "ON ERROR GOSUB", /* Name */
+ B15 | B93 /* OptionVersionBitmask */
+},
+{
+ C_ON_ERROR_GOTO, /* UniqueID */
+ "ON ERROR GOTO errline", /* Syntax */
+ "When a trappable error occurs, execute GOTO errline. The error "
+ "handler must terminate with a RESUME command. If the line number "
+ "is 0 (zerp), then use the default error handler. Valid when "
+ "OPTION ERROR GOTO.", /* Description */
+ "ON ERROR GOTO", /* Name */
+ B15 | H14 | HB1 | HB2 | M80 | R86 | D71 | T80 | T79 /* OptionVersionBitmask */
+},
+{
+ C_ON_ERROR_RESUME, /* UniqueID */
+ "ON ERROR RESUME", /* Syntax */
+ "Syntax Error.", /* Description */
+ "ON ERROR RESUME", /* Name */
+ B15 | H14 | M80 | R86 | D71 | T80 | T79 /* OptionVersionBitmask */
+},
+{
+ C_ON_ERROR_RESUME_NEXT, /* UniqueID */
+ "ON ERROR RESUME NEXT", /* Syntax */
+ "When a trappable error occurs, execution continues with the next "
+ "line. Valid when OPTION ERROR GOTO.", /* Description */
+ "ON ERROR RESUME NEXT", /* Name */
+ B15 | H14 | M80 | R86 | D71 | T80 | T79 /* OptionVersionBitmask */
+},
+{
+ C_ON_ERROR_RETURN, /* UniqueID */
+ "ON ERROR RETURN", /* Syntax */
+ "Syntax Error.", /* Description */
+ "ON ERROR RETURN", /* Name */
+ B15 /* OptionVersionBitmask */
+},
+{
+ C_ON_ERROR_RETURN_NEXT, /* UniqueID */
+ "ON ERROR RETURN NEXT", /* Syntax */
+ "When a trappable error occurs, execution continues with the next "
+ "line. Valid when OPTION ERROR GOSUB.", /* Description */
+ "ON ERROR RETURN NEXT", /* Name */
+ B15 /* OptionVersionBitmask */
+},
+{
+ C_ON_TIMER, /* UniqueID */
+ "ON TIMER count GOSUB line", /* Syntax */
+ "Specifies a line (or label) to gosub when count seconds have "
+ "elaspsed after TIMER ON is executed. The interrupt routine should "
+ "end with a RETURN command. Timer events only occur in running "
+ "BASIC programs. The resolution of the clock is implementation "
+ "defined.", /* Description */
+ "ON TIMER", /* Name */
+ B15 /* OptionVersionBitmask */
+},
+{
+ C_OPEN, /* UniqueID */
+ "OPEN NEW|OLD|VIRTUAL filename$\nAS filenumber", /* Syntax */
+ "Opens a file for use.", /* Description */
+ "OPEN", /* Name */
+ R86 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPEN, /* UniqueID */
+ "OPEN filename$\nFOR INPUT|OUTPUT|APPEND|BINARY|RANDOM|VIRTUAL\nAS [#] "
+ "fileenumber\n[LEN [=] record-length]", /* Syntax */
+ "Opens a file for use.\nRANDOM requires LEN.", /* Description */
+ "OPEN", /* Name */
+ B15 | B93 | H14 | HB2 | M80 | T80 /* OptionVersionBitmask */
+},
+{
+ C_OPEN, /* UniqueID */
+ "OPEN filename$\nFOR INPUT|OUTPUT|APPEND|BINARY|RANDOM|VIRTUAL\nAS FILE "
+ "filenumber\n[ ,RECORDSIZE ignored ]\n[ ,CLUSTERSIZE ignored ]\n[ "
+ ",MODE ignored ]", /* Syntax */
+ "Opens a file for use.", /* Description */
+ "OPEN", /* Name */
+ D71 /* OptionVersionBitmask */
+},
+{
+ C_OPEN, /* UniqueID */
+ "OPEN filename\nFOR READ|WRITE|VIRTUAL\nAS FILE filenumber", /* Syntax */
+ "Opens a file for use.", /* Description */
+ "OPEN", /* Name */
+ H80 /* OptionVersionBitmask */
+},
+{
+ C_OPEN, /* UniqueID */
+ "OPEN filename$\n[ RECL reclen ]\nAS filenumber\n[ BUFF ignored ]\n[ "
+ "RECS ignored ]", /* Syntax */
+ "Opens a file for use.", /* Description */
+ "OPEN", /* Name */
+ C77 /* OptionVersionBitmask */
+},
+{
+ C_OPEN, /* UniqueID */
+ "OPEN filenumber,\nfilename$,\nINPUT|OUTPUT|APPEND|VIRTUAL", /* Syntax */
+ "Opens a file for use.", /* Description */
+ "OPEN", /* Name */
+ S70 | I70 | I73 /* OptionVersionBitmask */
+},
+{
+ C_OPTION, /* UniqueID */
+ "OPTION", /* Syntax */
+ "Syntax Error.", /* Description */
+ "OPTION", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_ANGLE, /* UniqueID */
+ "OPTION ANGLE", /* Syntax */
+ "Syntax Error.", /* Description */
+ "OPTION ANGLE", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_ANGLE_DEGREES, /* UniqueID */
+ "OPTION ANGLE DEGREES", /* Syntax */
+ "Configures these math functions to accept and return angles in "
+ "degrees: ACOS, ACS, ANGLE, ARCSIN, ASIN, ASN, ARCTAN, ATN, ATAN, "
+ "COS, COT, CSC, SEC, SIN and TAN.", /* Description */
+ "OPTION ANGLE DEGREES", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_ANGLE_GRADIANS, /* UniqueID */
+ "OPTION ANGLE GRADIANS", /* Syntax */
+ "Configures these math functions to accept and return angles in "
+ "gradians: ACOS, ANGLE, ASIN, ASN, ATN, ATAN, COS, COT, CSC, "
+ "SEC, SIN and TAN.", /* Description */
+ "OPTION ANGLE GRADIANS", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_ANGLE_RADIANS, /* UniqueID */
+ "OPTION ANGLE RADIANS", /* Syntax */
+ "Configures these math functions to accept and return angles in "
+ "radians: ACOS, ANGLE, ASIN, ASN, ATN, ATAN, COS, COT, CSC, SEC, "
+ "SIN and TAN.", /* Description */
+ "OPTION ANGLE RADIANS", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_ARITHMETIC, /* UniqueID */
+ "OPTION ARITHMETIC", /* Syntax */
+ "Syntax Error.", /* Description */
+ "OPTION ARITHMETIC", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_ARITHMETIC_DECIMAL, /* UniqueID */
+ "OPTION ARITHMETIC DECIMAL", /* Syntax */
+ "Currently has no effect.", /* Description */
+ "OPTION ARITHMETIC DECIMAL", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_ARITHMETIC_FIXED, /* UniqueID */
+ "OPTION ARITHMETIC FIXED", /* Syntax */
+ "Currently has no effect.", /* Description */
+ "OPTION ARITHMETIC FIXED", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_ARITHMETIC_NATIVE, /* UniqueID */
+ "OPTION ARITHMETIC NATIVE", /* Syntax */
+ "Currently has no effect.", /* Description */
+ "OPTION ARITHMETIC NATIVE", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_BASE, /* UniqueID */
+ "OPTION BASE integer", /* Syntax */
+ "Sets the default lowest array subscript.", /* Description */
+ "OPTION BASE", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_BUGS, /* UniqueID */
+ "OPTION BUGS", /* Syntax */
+ "Syntax Error.", /* Description */
+ "OPTION BUGS", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_BUGS_BOOLEAN, /* UniqueID */
+ "OPTION BUGS BOOLEAN", /* Syntax */
+ "Boolean results are 1 or 0 instead of bitwise.", /* Description */
+ "OPTION BUGS BOOLEAN", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_BUGS_OFF, /* UniqueID */
+ "OPTION BUGS OFF", /* Syntax */
+ "Disables bugs commonly found in many BASIC dialects.", /* Description */
+ "OPTION BUGS OFF", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_BUGS_ON, /* UniqueID */
+ "OPTION BUGS ON", /* Syntax */
+ "Enables bugs commonly found in many BASIC dialects.", /* Description */
+ "OPTION BUGS ON", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_COMPARE, /* UniqueID */
+ "OPTION COMPARE", /* Syntax */
+ "Syntax Error.", /* Description */
+ "OPTION COMPARE", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_COMPARE_BINARY, /* UniqueID */
+ "OPTION COMPARE BINARY", /* Syntax */
+ "Causes string comparisons to be case-sensitive.", /* Description */
+ "OPTION COMPARE BINARY", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_COMPARE_DATABASE, /* UniqueID */
+ "OPTION COMPARE DATABASE", /* Syntax */
+ "Causes string comparisons to be case-insensitive.", /* Description */
+ "OPTION COMPARE DATABASE", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_COMPARE_TEXT, /* UniqueID */
+ "OPTION COMPARE TEXT", /* Syntax */
+ "Causes string comparisons to be case-insensitive.", /* Description */
+ "OPTION COMPARE TEXT", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_COVERAGE, /* UniqueID */
+ "OPTION COVERAGE", /* Syntax */
+ "Syntax Error.", /* Description */
+ "OPTION COVERAGE", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_COVERAGE_OFF, /* UniqueID */
+ "OPTION COVERAGE OFF", /* Syntax */
+ "Disables BASIC code coverage recording, displayed using the LIST "
+ "command.", /* Description */
+ "OPTION COVERAGE OFF", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_COVERAGE_ON, /* UniqueID */
+ "OPTION COVERAGE ON", /* Syntax */
+ "Enables BASIC code coverage recording, displayed using the LIST "
+ "command.", /* Description */
+ "OPTION COVERAGE ON", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_DATE, /* UniqueID */
+ "OPTION DATE format$", /* Syntax */
+ "Sets the date format string used by C strftime() for DATE$.", /* Description */
+ "OPTION DATE", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_DIGITS, /* UniqueID */
+ "OPTION DIGITS integer", /* Syntax */
+ "Sets the number of significant digits for PRINT. Setting the "
+ "value to zero restores the default.", /* Description */
+ "OPTION DIGITS", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_DISABLE, /* UniqueID */
+ "OPTION DISABLE", /* Syntax */
+ "Syntax Error.", /* Description */
+ "OPTION DISABLE", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_DISABLE_COMMAND, /* UniqueID */
+ "OPTION DISABLE COMMAND name$", /* Syntax */
+ "Disables the specified BASIC command.", /* Description */
+ "OPTION DISABLE COMMAND", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_DISABLE_FUNCTION, /* UniqueID */
+ "OPTION DISABLE FUNCTION name$", /* Syntax */
+ "Disables the specified BASIC function.", /* Description */
+ "OPTION DISABLE FUNCTION", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_DISABLE_OPERATOR, /* UniqueID */
+ "OPTION DISABLE OPERATOR name$", /* Syntax */
+ "Disables the specified BASIC operator.", /* Description */
+ "OPTION DISABLE OPERATOR", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_EDIT, /* UniqueID */
+ "OPTION EDIT string$", /* Syntax */
+ "Sets the program name used by the EDIT command.", /* Description */
+ "OPTION EDIT", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_ENABLE, /* UniqueID */
+ "OPTION ENABLE", /* Syntax */
+ "Syntax Error.", /* Description */
+ "OPTION ENABLE", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_ENABLE_COMMAND, /* UniqueID */
+ "OPTION ENABLE COMMAND name$", /* Syntax */
+ "Enables the specified BASIC command.", /* Description */
+ "OPTION ENABLE COMMAND", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_ENABLE_FUNCTION, /* UniqueID */
+ "OPTION ENABLE FUNCTION name$", /* Syntax */
+ "Enables the specified BASIC function.", /* Description */
+ "OPTION ENABLE FUNCTION", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_ENABLE_OPERATOR, /* UniqueID */
+ "OPTION ENABLE OPERATOR name$", /* Syntax */
+ "Enables the specified BASIC operator.", /* Description */
+ "OPTION ENABLE OPERATOR", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_ERROR, /* UniqueID */
+ "OPTION ERROR", /* Syntax */
+ "Syntax Error.", /* Description */
+ "OPTION ERROR", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_ERROR_GOSUB, /* UniqueID */
+ "OPTION ERROR GOSUB", /* Syntax */
+ "When an error occurs, GOSUB to the error handler. The error "
+ "handler exits with RETURN.", /* Description */
+ "OPTION ERROR GOSUB", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_ERROR_GOTO, /* UniqueID */
+ "OPTION ERROR GOTO", /* Syntax */
+ "When an error occurs, GOTO to the error handler. The error handler "
+ "exits with RESUME.", /* Description */
+ "OPTION ERROR GOTO", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_EXPLICIT, /* UniqueID */
+ "OPTION EXPLICIT", /* Syntax */
+ "All variables must be declared using DIM.", /* Description */
+ "OPTION EXPLICIT", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_EXTENSION, /* UniqueID */
+ "OPTION EXTENSION string$", /* Syntax */
+ "Sets the BASIC filename extension, commonly \".bas\".", /* Description */
+ "OPTION EXTENSION", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_FILES, /* UniqueID */
+ "OPTION FILES string$", /* Syntax */
+ "Sets the program name used by the FILES command.", /* Description */
+ "OPTION FILES", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_IMPLICIT, /* UniqueID */
+ "OPTION IMPLICIT", /* Syntax */
+ "Variables need not be declared using DIM, provided arrays have "
+ "no more that 10 elements. This is the opposite of OPTION EXPLICIT, "
+ "and is the default for all versions of BASIC.", /* Description */
+ "OPTION IMPLICIT", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_INDENT, /* UniqueID */
+ "OPTION INDENT integer", /* Syntax */
+ "Sets indention level for LIST. Zero means no indention. Default "
+ "is 2.", /* Description */
+ "OPTION INDENT", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_LABELS, /* UniqueID */
+ "OPTION LABELS", /* Syntax */
+ "Syntax Error.", /* Description */
+ "OPTION LABELS", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_LABELS_OFF, /* UniqueID */
+ "OPTION LABELS OFF", /* Syntax */
+ "Disables text labels.", /* Description */
+ "OPTION LABELS OFF", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_LABELS_ON, /* UniqueID */
+ "OPTION LABELS ON", /* Syntax */
+ "Enables text labels.", /* Description */
+ "OPTION LABELS ON", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_PROMPT, /* UniqueID */
+ "OPTION PROMPT string$", /* Syntax */
+ "Sets the BASIC prompt.", /* Description */
+ "OPTION PROMPT", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_PUNCT, /* UniqueID */
+ "OPTION PUNCT", /* Syntax */
+ "Syntax Error.", /* Description */
+ "OPTION PUNCT", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_PUNCT_AT, /* UniqueID */
+ "OPTION PUNCT AT char$", /* Syntax */
+ "Sets the PRINT AT character, commonly \"@\".", /* Description */
+ "OPTION PUNCT AT", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_PUNCT_BYTE, /* UniqueID */
+ "OPTION PUNCT BYTE char$", /* Syntax */
+ "Sets the suffix character that indicates a variable is of type "
+ "BYTE, commonly \"~\".", /* Description */
+ "OPTION PUNCT BYTE", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_PUNCT_COMMENT, /* UniqueID */
+ "OPTION PUNCT COMMENT char$", /* Syntax */
+ "Sets the shortcut COMMENT character.", /* Description */
+ "OPTION PUNCT COMMENT", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_PUNCT_CURRENCY, /* UniqueID */
+ "OPTION PUNCT CURRENCY char$", /* Syntax */
+ "Sets the suffix character that indicates a variable is of type "
+ "CURRENCY, commonly \"@\".", /* Description */
+ "OPTION PUNCT CURRENCY", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_PUNCT_DOUBLE, /* UniqueID */
+ "OPTION PUNCT DOUBLE char$", /* Syntax */
+ "Sets the suffix character that indicates a variable is of type "
+ "DOUBLE, commonly \"#\".", /* Description */
+ "OPTION PUNCT DOUBLE", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_PUNCT_FILENUM, /* UniqueID */
+ "OPTION PUNCT FILENUM char$", /* Syntax */
+ "Sets the FILE NUMBER prefix character, commonly \"#\".", /* Description */
+ "OPTION PUNCT FILENUM", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_PUNCT_IMAGE, /* UniqueID */
+ "OPTION PUNCT IMAGE char$", /* Syntax */
+ "Sets the shortcut IMAGE character, commonly \":\".", /* Description */
+ "OPTION PUNCT IMAGE", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_PUNCT_INPUT, /* UniqueID */
+ "OPTION PUNCT INPUT char$", /* Syntax */
+ "Sets the shortcut INPUT character, commonly \"!\".", /* Description */
+ "OPTION PUNCT INPUT", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_PUNCT_INTEGER, /* UniqueID */
+ "OPTION PUNCT INTEGER char$", /* Syntax */
+ "Sets the suffix character that indicates a variable is of type "
+ "INTEGER, commonly \"%\".", /* Description */
+ "OPTION PUNCT INTEGER", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_PUNCT_LONG, /* UniqueID */
+ "OPTION PUNCT LONG char$", /* Syntax */
+ "Sets the suffix character that indicates a variable is of type "
+ "LONG, commonly \"&\".", /* Description */
+ "OPTION PUNCT LONG", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_PUNCT_LPAREN, /* UniqueID */
+ "OPTION PUNCT LPAREN char$", /* Syntax */
+ "Sets the LEFT PARENTHESIS character, commonly \"(\".", /* Description */
+ "OPTION PUNCT LPAREN", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_PUNCT_PRINT, /* UniqueID */
+ "OPTION PUNCT_PRINT char$", /* Syntax */
+ "Sets the shortcut PRINT character, commonly \"?\".", /* Description */
+ "OPTION PUNCT PRINT", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_PUNCT_QUOTE, /* UniqueID */
+ "OPTION PUNCT QUOTE char$", /* Syntax */
+ "Sets the QUOTE character, commonly \"\"\"", /* Description */
+ "OPTION PUNCT QUOTE", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_PUNCT_RPAREN, /* UniqueID */
+ "OPTION PUNCT RPAREN char$", /* Syntax */
+ "Sets the RIGHT PARENTHESIS character, commonly \")\".", /* Description */
+ "OPTION PUNCT RPAREN", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_PUNCT_SINGLE, /* UniqueID */
+ "OPTION PUNCT SINGLE char$", /* Syntax */
+ "Sets the suffix character that indicates a variable is of type "
+ "SINGLE, commonly \"!\".", /* Description */
+ "OPTION PUNCT SINGLE", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_PUNCT_STATEMENT, /* UniqueID */
+ "OPTION PUNCT STATEMENT char$", /* Syntax */
+ "Sets the statement seperator character, commonly \":\".", /* Description */
+ "OPTION PUNCT STATEMENT", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_PUNCT_STRING, /* UniqueID */
+ "OPTION PUNCT STRING char$", /* Syntax */
+ "Sets the suffix character that indicates a variable is of type "
+ "STRING, commonly \"$\".", /* Description */
+ "OPTION PUNCT STRING", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_RECLEN, /* UniqueID */
+ "OPTION RECLEN integer", /* Syntax */
+ "Sets the default RANDOM record length.", /* Description */
+ "OPTION RECLEN", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_RENUM, /* UniqueID */
+ "OPTION RENUM string$", /* Syntax */
+ "Sets the program name used by the RENUM command.", /* Description */
+ "OPTION RENUM", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_ROUND, /* UniqueID */
+ "OPTION ROUND", /* Syntax */
+ "Syntax Error.", /* Description */
+ "OPTION ROUND", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_ROUND_BANK, /* UniqueID */
+ "OPTION ROUND BANK", /* Syntax */
+ "Round using the Banker rule.", /* Description */
+ "OPTION ROUND BANK", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_ROUND_MATH, /* UniqueID */
+ "OPTION ROUND MATH", /* Syntax */
+ "Round using mathematical rules.", /* Description */
+ "OPTION ROUND MATH", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_ROUND_TRUNCATE, /* UniqueID */
+ "OPTION ROUND TRUNCATE", /* Syntax */
+ "Round using truncation.", /* Description */
+ "OPTION ROUND TRUNCATE", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_SCALE, /* UniqueID */
+ "OPTION SCALE integer", /* Syntax */
+ "Sets the number of digits to round after the decimal point for "
+ "PRINT. Setting the value to zero disables rounding.", /* Description */
+ "OPTION SCALE", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_SLEEP, /* UniqueID */
+ "OPTION SLEEP double", /* Syntax */
+ "Sets multiplier for SLEEP and WAIT. Zero means no waiting. "
+ "Default is 1.", /* Description */
+ "OPTION SLEEP", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_STDERR, /* UniqueID */
+ "OPTION STDERR filename$", /* Syntax */
+ "Sets the file used for STDERR, which is used by LPRINT commands.", /* Description */
+ "OPTION STDERR", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_STDIN, /* UniqueID */
+ "OPTION STDIN filename$", /* Syntax */
+ "Sets the file used for STDIN, which is used by INPUT commands.", /* Description */
+ "OPTION STDIN", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_STDOUT, /* UniqueID */
+ "OPTION STDOUT filename$", /* Syntax */
+ "Sets the file used for STDOUT, which is used by PRINT commands.", /* Description */
+ "OPTION STDOUT", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_STRICT, /* UniqueID */
+ "OPTION STRICT", /* Syntax */
+ "Syntax Error.", /* Description */
+ "OPTION STRICT", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_STRICT_OFF, /* UniqueID */
+ "OPTION STRICT OFF", /* Syntax */
+ "Disables checking for implicit array creation without using the "
+ "DIM command.", /* Description */
+ "OPTION STRICT OFF", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_STRICT_ON, /* UniqueID */
+ "OPTION STRICT ON", /* Syntax */
+ "Enables checking for implicit array creation without using the "
+ "DIM command.", /* Description */
+ "OPTION STRICT ON", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_TERMINAL, /* UniqueID */
+ "OPTION TERMINAL", /* Syntax */
+ "Syntax Error.", /* Description */
+ "OPTION TERMINAL", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_TERMINAL_ADM, /* UniqueID */
+ "OPTION TERMINAL ADM", /* Syntax */
+ "Enables ADM-3A terminal control codes for CLS, COLOR, and LOCATE.", /* Description */
+ "OPTION TERMINAL ADM", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_TERMINAL_ANSI, /* UniqueID */
+ "OPTION TERMINAL ANSI", /* Syntax */
+ "Enables ANSI terminal control codes for CLS, COLOR, and LOCATE.", /* Description */
+ "OPTION TERMINAL ANSI", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_TERMINAL_NONE, /* UniqueID */
+ "OPTION TERMINAL NONE", /* Syntax */
+ "Disables terminal control codes for CLS, COLOR, and LOCATE.", /* Description */
+ "OPTION TERMINAL NONE", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_TIME, /* UniqueID */
+ "OPTION TIME format$", /* Syntax */
+ "Sets the time format string used by C strftime() for TIME$.", /* Description */
+ "OPTION TIME", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_TRACE, /* UniqueID */
+ "OPTION TRACE", /* Syntax */
+ "Syntax Error.", /* Description */
+ "OPTION TRACE", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_TRACE_OFF, /* UniqueID */
+ "OPTION TRACE OFF", /* Syntax */
+ "Disables displaying a stack trace when an ERROR occurs.", /* Description */
+ "OPTION TRACE OFF", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_TRACE_ON, /* UniqueID */
+ "OPTION TRACE ON", /* Syntax */
+ "Enables displaying a stack trace when an ERROR occurs.", /* Description */
+ "OPTION TRACE ON", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_USING, /* UniqueID */
+ "OPTION USING", /* Syntax */
+ "Syntax Error.", /* Description */
+ "OPTION USING", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_USING_ALL, /* UniqueID */
+ "OPTION USING ALL char$", /* Syntax */
+ "Specifies the magic ALL character for the PRINT USING command. "
+ " A common value is \"&\".", /* Description */
+ "OPTION USING ALL", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_USING_COMMA, /* UniqueID */
+ "OPTION USING COMMA char$", /* Syntax */
+ "Specifies the magic COMMA character for the PRINT USING command. "
+ " A common value is \",\".", /* Description */
+ "OPTION USING COMMA", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_USING_DIGIT, /* UniqueID */
+ "OPTION USING DIGIT char$", /* Syntax */
+ "Specifies the magic DIGIT character for the PRINT USING command. "
+ " A common value is \"#\".", /* Description */
+ "OPTION USING DIGIT", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_USING_DOLLAR, /* UniqueID */
+ "OPTION USING DOLLAR char$", /* Syntax */
+ "Specifies the magic DOLLAR character for the PRINT USING command. "
+ " A common value is \"$\".", /* Description */
+ "OPTION USING DOLLAR", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_USING_EXRAD, /* UniqueID */
+ "OPTION USING EXRAD char$", /* Syntax */
+ "Specifies the magic EXRAD character for the PRINT USING command. "
+ " A common value is \"^\".", /* Description */
+ "OPTION USING EXRAD", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_USING_FILLER, /* UniqueID */
+ "OPTION USING FILLER char$", /* Syntax */
+ "Specifies the magic FILLER character for the PRINT USING command. "
+ " A common value is \"*\".", /* Description */
+ "OPTION USING FILLER", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_USING_FIRST, /* UniqueID */
+ "OPTION USING FIRST char$", /* Syntax */
+ "Specifies the magic FIRST character for the PRINT USING command. "
+ " A common value is \"!\".", /* Description */
+ "OPTION USING FIRST", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_USING_LENGTH, /* UniqueID */
+ "OPTION USING LENGTH char$", /* Syntax */
+ "Specifies the magic LENGTH character for the PRINT USING command. "
+ " A common value is \"\\\".", /* Description */
+ "OPTION USING LENGTH", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_USING_LITERAL, /* UniqueID */
+ "OPTION USING LITERAL char$", /* Syntax */
+ "Specifies the magic LITERAL character for the PRINT USING command. "
+ " A common value is \"_\".", /* Description */
+ "OPTION USING LITERAL", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_USING_MINUS, /* UniqueID */
+ "OPTION USING MINUS char$", /* Syntax */
+ "Specifies the magic MINUS character for the PRINT USING command. "
+ " A common value is \"-\".", /* Description */
+ "OPTION USING MINUS", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_USING_PERIOD, /* UniqueID */
+ "OPTION USING PERIOD char$", /* Syntax */
+ "Specifies the magic PERIOD character for the PRINT USING command. "
+ " A common value is \".\".", /* Description */
+ "OPTION USING PERIOD", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_USING_PLUS, /* UniqueID */
+ "OPTION USING PLUS char$", /* Syntax */
+ "Specifies the magic PLUS character for the PRINT USING command. "
+ " A common value is \"+\".", /* Description */
+ "OPTION USING PLUS", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_VERSION, /* UniqueID */
+ "OPTION VERSION version$", /* Syntax */
+ "Selects a specific BASIC version, which is a "
+ "combination of OPTION settings, commands, "
+ "functions and operators. If no version is specified, displays "
+ "a list of the available versions.", /* Description */
+ "OPTION VERSION", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_OPTION_ZONE, /* UniqueID */
+ "OPTION ZONE integer", /* Syntax */
+ "Sets the PRINT zone width. Setting the value to zero restores "
+ "the default.", /* Description */
+ "OPTION ZONE", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_PAUSE, /* UniqueID */
+ "PAUSE [comment]", /* Syntax */
+ "Pauses processing until the ENTER key is presseed.", /* Description */
+ "PAUSE", /* Name */
+ S70 | I70 | I73 /* OptionVersionBitmask */
+},
+{
+ C_PDEL, /* UniqueID */
+ "PDEL line [- line]", /* Syntax */
+ "Deletes program lines indicated by the argument(s). All program "
+ "lines have a number, which is visible with the LIST command. "
+ " If line numbers are not provided, they are assigned beginning "
+ "with 1. Deleting a non-existing line does not cause an error. "
+ "", /* Description */
+ "PDEL", /* Name */
+ R86 | T79 /* OptionVersionBitmask */
+},
+{
+ C_POP, /* UniqueID */
+ "POP", /* Syntax */
+ "Pops one GOSUB from the return stack.", /* Description */
+ "POP", /* Name */
+ B15 | HB2 /* OptionVersionBitmask */
+},
+{
+ C_PRINT, /* UniqueID */
+ "PRINT # filenum , [USING format$;] value ...", /* Syntax */
+ "Sends output to a file.", /* Description */
+ "PRINT", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | T79 /* OptionVersionBitmask */
+},
+{
+ C_PRINT, /* UniqueID */
+ "PRINT [USING format$;] value ...", /* Syntax */
+ "Sends output to the screen.", /* Description */
+ "PRINT", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_PTP, /* UniqueID */
+ "PTP [filename$]", /* Syntax */
+ "Directs the PRINT commands to write to the paper tape punch file "
+ "(\"PTP\"), or optionally to the specified file.", /* Description */
+ "PTP", /* Name */
+ D73 /* OptionVersionBitmask */
+},
+{
+ C_PTR, /* UniqueID */
+ "PTR [filename$]", /* Syntax */
+ "Directs the INPUT commands to read from the paper tape reader "
+ "file (\"PTR\"), or optionally from the specified file.", /* Description */
+ "PTR", /* Name */
+ D73 /* OptionVersionBitmask */
+},
+{
+ C_PUT, /* UniqueID */
+ "PUT # file_number , [ byte_number ] , scalar [,...]", /* Syntax */
+ "Puts one (or more) values into a BINARY file.", /* Description */
+ "PUT", /* Name */
+ H14 /* OptionVersionBitmask */
+},
+{
+ C_PUT, /* UniqueID */
+ "PUT filename$ , value [, ...]", /* Syntax */
+ "Puts one (or more) values into a file.", /* Description */
+ "PUT", /* Name */
+ S70 | I70 | I73 /* OptionVersionBitmask */
+},
+{
+ C_PUT, /* UniqueID */
+ "PUT # file_number [ , RECORD record_number ]", /* Syntax */
+ "Puts one (or more) values into a file.", /* Description */
+ "PUT", /* Name */
+ R86 | D71 | T79 /* OptionVersionBitmask */
+},
+{
+ C_PUT, /* UniqueID */
+ "PUT # file_number [ , record_number ]", /* Syntax */
+ "Puts one (or more) values into a RANDOM file.", /* Description */
+ "PUT", /* Name */
+ H14 /* OptionVersionBitmask */
+},
+{
+ C_QUIT, /* UniqueID */
+ "QUIT", /* Syntax */
+ "Exits to the operating system.", /* Description */
+ "QUIT", /* Name */
+ B15 | S70 | C77 | D64 | E78 | E86 | G74 | G65 | G67 | D71 | I70 | I73 /* OptionVersionBitmask */
+},
+{
+ C_READ, /* UniqueID */
+ "READ variable [, ...]", /* Syntax */
+ "Reads values from DATA statements.", /* Description */
+ "READ", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_RECALL, /* UniqueID */
+ "RECALL ArrayName", /* Syntax */
+ "Loads a numeric array from a file saved using STORE.", /* Description */
+ "RECALL", /* Name */
+ B15 | HB2 /* OptionVersionBitmask */
+},
+{
+ C_REM, /* UniqueID */
+ "REM ...", /* Syntax */
+ "Remark.", /* Description */
+ "REM", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_RENAME, /* UniqueID */
+ "RENAME from$ TO to$", /* Syntax */
+ "Rename a file.", /* Description */
+ "RENAME", /* Name */
+ H14 /* OptionVersionBitmask */
+},
+{
+ C_RENAME, /* UniqueID */
+ "RENAME [filename$]", /* Syntax */
+ "Changes the file name which will be used by SAVE. Does not save "
+ "the file.", /* Description */
+ "RENAME", /* Name */
+ D64 | G74 | G65 | G67 | D71 /* OptionVersionBitmask */
+},
+{
+ C_RENUM, /* UniqueID */
+ "RENUM", /* Syntax */
+ "Implementation defined.", /* Description */
+ "RENUM", /* Name */
+ B15 | B93 | H14 | HB1 | HB2 | M80 | R86 | D71 | T80 | T79 /* OptionVersionBitmask */
+},
+{
+ C_RENUMBER, /* UniqueID */
+ "RENUMBER", /* Syntax */
+ "Implementation defined.", /* Description */
+ "RENUMBER", /* Name */
+ HB1 | HB2 /* OptionVersionBitmask */
+},
+{
+ C_REPEAT, /* UniqueID */
+ "REPEAT", /* Syntax */
+ "Top of a REPEAT - UNTIL structure.", /* Description */
+ "REPEAT", /* Name */
+ B15 | H14 | HB2 /* OptionVersionBitmask */
+},
+{
+ C_REPLACE, /* UniqueID */
+ "REPLACE [filename$]", /* Syntax */
+ "Saves the current program into the file filename$ in ASCII format.", /* Description */
+ "REPLACE", /* Name */
+ H80 /* OptionVersionBitmask */
+},
+{
+ C_RESET, /* UniqueID */
+ "RESET filename$ [, ...]", /* Syntax */
+ "Positions an input or output file to the bcginning.", /* Description */
+ "RESET", /* Name */
+ S70 | I70 | I73 /* OptionVersionBitmask */
+},
+{
+ C_RESTORE, /* UniqueID */
+ "RESTORE [line]", /* Syntax */
+ "Resets the line used for the next READ statement. line may be "
+ "either a number or a label.", /* Description */
+ "RESTORE", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_RESUME, /* UniqueID */
+ "RESUME", /* Syntax */
+ "Used in an error handler to specify the next line to execute. "
+ " Branch to ERL.", /* Description */
+ "RESUME", /* Name */
+ B15 | H14 | HB1 | HB2 | M80 | R86 | D71 | T80 | T79 /* OptionVersionBitmask */
+},
+{
+ C_RESUME, /* UniqueID */
+ "RESUME line", /* Syntax */
+ "Used in an error handler to specify the next line to execute. "
+ " Branch to the specified line.", /* Description */
+ "RESUME", /* Name */
+ B15 | H14 | HB1 | HB2 | M80 | R86 | D71 | T80 | T79 /* OptionVersionBitmask */
+},
+{
+ C_RESUME, /* UniqueID */
+ "RESUME NEXT", /* Syntax */
+ "Used in an error handler to specify the next line to execute. "
+ " Branch to the line after ERL.", /* Description */
+ "RESUME", /* Name */
+ B15 | H14 | HB1 | HB2 | M80 | R86 | D71 | T80 | T79 /* OptionVersionBitmask */
+},
+{
+ C_RESUME, /* UniqueID */
+ "RESUME 0", /* Syntax */
+ "Used in an error handler to specify the next line to execute. "
+ " Branch to ERL.", /* Description */
+ "RESUME", /* Name */
+ B15 | H14 | HB1 | HB2 | M80 | R86 | D71 | T80 | T79 /* OptionVersionBitmask */
+},
+{
+ C_RETURN, /* UniqueID */
+ "RETURN", /* Syntax */
+ "Concludes a subroutine called by GOSUB.", /* Description */
+ "RETURN", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_RSET, /* UniqueID */
+ "RSET variable$ = value", /* Syntax */
+ "Right-aligns the value into variable$. If the length of the "
+ "value is too short, then it is padded on the left with spaces. "
+ " If the length of the value is too long, then it is truncated "
+ "on the right. This is only for use with variables assigned to "
+ "a random access buffer with FIELD command.", /* Description */
+ "RSET", /* Name */
+ B15 | B93 | H14 | M80 | R86 | D71 | T80 | T79 /* OptionVersionBitmask */
+},
+{
+ C_RUN, /* UniqueID */
+ "RUN filename$", /* Syntax */
+ "Loads a new BAASIC program and executes the program from the "
+ "start.", /* Description */
+ "RUN", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | T79 /* OptionVersionBitmask */
+},
+{
+ C_RUN, /* UniqueID */
+ "RUN line", /* Syntax */
+ "Executes the program in memory beginning at line.", /* Description */
+ "RUN", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | T79 /* OptionVersionBitmask */
+},
+{
+ C_RUN, /* UniqueID */
+ "RUN", /* Syntax */
+ "Executes the program in memory from the start.", /* Description */
+ "RUN", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | T79 /* OptionVersionBitmask */
+},
+{
+ C_RUNNH, /* UniqueID */
+ "RUNNH line", /* Syntax */
+ "Executes the program in memory beginning at line.", /* Description */
+ "RUNNH", /* Name */
+ B15 | S70 | C77 | D64 | G74 | G65 | G67 | D71 | I70 | I73 /* OptionVersionBitmask */
+},
+{
+ C_RUNNH, /* UniqueID */
+ "RUNNH filename$", /* Syntax */
+ "Loads a new BAASIC program and executes the program from the "
+ "start.", /* Description */
+ "RUNNH", /* Name */
+ B15 | S70 | C77 | D64 | G74 | G65 | G67 | D71 | I70 | I73 /* OptionVersionBitmask */
+},
+{
+ C_RUNNH, /* UniqueID */
+ "RUNNH", /* Syntax */
+ "Executes the program in memory from the start.", /* Description */
+ "RUNNH", /* Name */
+ B15 | S70 | C77 | D64 | G74 | G65 | G67 | D71 | I70 | I73 /* OptionVersionBitmask */
+},
+{
+ C_SAVE, /* UniqueID */
+ "SAVE [filename$]", /* Syntax */
+ "Saves the current program into the file filename$ in ASCII format.", /* Description */
+ "SAVE", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | T79 /* OptionVersionBitmask */
+},
+{
+ C_SCRATCH, /* UniqueID */
+ "SCRATCH [# X]", /* Syntax */
+ "SCRATCH Deletes the program in memory and clears all variables. "
+ " SCRATCH # X Sets the file mode to writing.", /* Description */
+ "SCRATCH", /* Name */
+ G74 | HB2 | H80 | G65 | G67 /* OptionVersionBitmask */
+},
+{
+ C_SELECT, /* UniqueID */
+ "SELECT", /* Syntax */
+ "Syntax Error.", /* Description */
+ "SELECT", /* Name */
+ B15 | B93 | E86 | H14 /* OptionVersionBitmask */
+},
+{
+ C_SELECT_CASE, /* UniqueID */
+ "SELECT CASE value", /* Syntax */
+ "Introduces a multi-line conditional selection statement.", /* Description */
+ "SELECT CASE", /* Name */
+ B15 | B93 | E86 | H14 /* OptionVersionBitmask */
+},
+{
+ C_STEP, /* UniqueID */
+ "STEP", /* Syntax */
+ "Syntax Error.", /* Description */
+ "STEP", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_STOP, /* UniqueID */
+ "STOP", /* Syntax */
+ "Interrupts program execution and displays the line number of "
+ "the STOP command. For use when debugging BASIC programs. Whether "
+ "STOP issues a SIGINT signal is implementation defined.", /* Description */
+ "STOP", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_STORE, /* UniqueID */
+ "STORE ArrayName", /* Syntax */
+ "Saves a numeric array into a file for later loading by RECALL.", /* Description */
+ "STORE", /* Name */
+ B15 | HB2 /* OptionVersionBitmask */
+},
+{
+ C_SUB, /* UniqueID */
+ "SUB name [ ( parameter [,...] ) ]", /* Syntax */
+ "Top line of a multi-line SUB definition. The variable names "
+ "specified are local to the SUB definition, and are initialized "
+ "BYVAL when the subroutine is invoked by another routine.", /* Description */
+ "SUB", /* Name */
+ B15 | B93 | E86 | H14 | HB2 /* OptionVersionBitmask */
+},
+{
+ C_SUB_END, /* UniqueID */
+ "SUB END", /* Syntax */
+ "Specifies the last line of a multi-line SUB definition. Same "
+ "as END SUB.", /* Description */
+ "SUB END", /* Name */
+ H14 /* OptionVersionBitmask */
+},
+{
+ C_SUB_EXIT, /* UniqueID */
+ "SUB EXIT", /* Syntax */
+ "Immediately exits the inner-most multi-line SUB strucure. Same "
+ "as EXIT SUB.", /* Description */
+ "SUB EXIT", /* Name */
+ H14 /* OptionVersionBitmask */
+},
+{
+ C_SUBEND, /* UniqueID */
+ "SUBEND", /* Syntax */
+ "Specifies the last line of a multi-line SUB definition. Same "
+ "as END SUB.", /* Description */
+ "SUBEND", /* Name */
+ B15 | H14 | HB2 /* OptionVersionBitmask */
+},
+{
+ C_SUBEXIT, /* UniqueID */
+ "SUBEXIT", /* Syntax */
+ "Immediately exits the inner-most multi-line SUB strucure. Same "
+ "as EXIT SUB.", /* Description */
+ "SUBEXIT", /* Name */
+ H14 /* OptionVersionBitmask */
+},
+{
+ C_SWAP, /* UniqueID */
+ "SWAP variable, variable", /* Syntax */
+ "Swaps the values of two variables. Both variables must be of "
+ "the same type.", /* Description */
+ "SWAP", /* Name */
+ B15 | B93 | H14 | HB2 | M80 | R86 | D71 | T80 | T79 /* OptionVersionBitmask */
+},
+{
+ C_SYSTEM, /* UniqueID */
+ "SYSTEM", /* Syntax */
+ "Exits to the operating system.", /* Description */
+ "SYSTEM", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | G65 | G67 | M80 | D71 | I70 | I73 | T80 | V09 /* OptionVersionBitmask */
+},
+{
+ C_TEXT, /* UniqueID */
+ "TEXT letter[-letter] [, ...]", /* Syntax */
+ "Declares variables with single-letter names as string variables.", /* Description */
+ "TEXT", /* Name */
+ HB1 | HB2 /* OptionVersionBitmask */
+},
+{
+ C_THEN, /* UniqueID */
+ "THEN", /* Syntax */
+ "Syntax Error.", /* Description */
+ "THEN", /* Name */
+ B15 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_TIMER, /* UniqueID */
+ "TIMER", /* Syntax */
+ "Syntax Error.", /* Description */
+ "TIMER", /* Name */
+ B15 /* OptionVersionBitmask */
+},
+{
+ C_TIMER_OFF, /* UniqueID */
+ "TIMER OFF", /* Syntax */
+ "TIMER OFF terminates the timer interrupt.", /* Description */
+ "TIMER OFF", /* Name */
+ B15 /* OptionVersionBitmask */
+},
+{
+ C_TIMER_ON, /* UniqueID */
+ "TIMER ON", /* Syntax */
+ "TIMER ON enables the timer interrupt. When the specified seconds "
+ "have elapsed, TIMER STOP is internaly executed before the interrupt "
+ "is taken. TIMER ON should be executed just before the RETURN "
+ "command if you want the interrupt to occur again.", /* Description */
+ "TIMER ON", /* Name */
+ B15 /* OptionVersionBitmask */
+},
+{
+ C_TIMER_STOP, /* UniqueID */
+ "TIMER STOP", /* Syntax */
+ "TIMER STOP disables the interrupt, but the count continues.", /* Description */
+ "TIMER STOP", /* Name */
+ B15 /* OptionVersionBitmask */
+},
+{
+ C_TLOAD, /* UniqueID */
+ "TLOAD [filename$]", /* Syntax */
+ "Loads an ASCII BASIC program into memory.", /* Description */
+ "TLOAD", /* Name */
+ B15 | HB2 /* OptionVersionBitmask */
+},
+{
+ C_TO, /* UniqueID */
+ "TO", /* Syntax */
+ "Syntax Error.", /* Description */
+ "TO", /* Name */
+ B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | H14 | HB1 | HB2 | H80 | G65 | G67 | M80 | D73 | D70 | R86 | D71 | I70 | I73 | T80 | V09 | T79 /* OptionVersionBitmask */
+},
+{
+ C_TRACE, /* UniqueID */
+ "TRACE", /* Syntax */
+ "Enables tracing.", /* Description */
+ "TRACE", /* Name */
+ G74 | HB1 | HB2 | G67 /* OptionVersionBitmask */
+},
+{
+ C_TRACE_OFF, /* UniqueID */
+ "TRACE OFF", /* Syntax */
+ "Disables tracing.", /* Description */
+ "TRACE OFF", /* Name */
+ G74 | HB1 | HB2 | G67 /* OptionVersionBitmask */
+},
+{
+ C_TRACE_ON, /* UniqueID */
+ "TRACE ON", /* Syntax */
+ "Enables tracing.", /* Description */
+ "TRACE ON", /* Name */
+ G74 | HB1 | HB2 | G67 /* OptionVersionBitmask */
+},
+{
+ C_TSAVE, /* UniqueID */
+ "TSAVE [filename$]", /* Syntax */
+ "Saves the current program into the file filename$ in ASCII format.", /* Description */
+ "TSAVE", /* Name */
+ B15 | HB2 /* OptionVersionBitmask */
+},
+{
+ C_TTY, /* UniqueID */
+ "TTY", /* Syntax */
+ "Directs the PRINT commands to write to the console (stdout), "
+ "and the INPUT commands to read from.the console (stdin). This "
+ "cancels LPT, PTP and PTR.", /* Description */
+ "TTY", /* Name */
+ D73 /* OptionVersionBitmask */
+},
+{
+ C_TTY_IN, /* UniqueID */
+ "TTY IN", /* Syntax */
+ "Directs the INPUT commands to read from.the console (stdin). "
+ " This cancels PTR. It does not cancel LPT or PTP.", /* Description */
+ "TTY IN", /* Name */
+ D73 /* OptionVersionBitmask */
+},
+{
+ C_TTY_OUT, /* UniqueID */
+ "TTY OUT", /* Syntax */
+ "Directs the PRINT commands to write to the console (stdout). "
+ " This cancels LPT or PTP. It does not cancel PTR.", /* Description */
+ "TTY OUT", /* Name */
+ D73 /* OptionVersionBitmask */
+},
+{
+ C_UNTIL, /* UniqueID */
+ "UNTIL value", /* Syntax */
+ "Bottom of a REPEAT - UNTIL. If the value is non-zero, then the "
+ "loop is terminated.", /* Description */
+ "UNTIL", /* Name */
+ B15 | H14 | HB2 /* OptionVersionBitmask */
+},
+{
+ C_USE, /* UniqueID */
+ "USE parameter$", /* Syntax */
+ "Receives the value from the calling CHAINing program.", /* Description */
+ "USE", /* Name */
+ S70 | I70 | I73 /* OptionVersionBitmask */
+},
+{
+ C_VARS, /* UniqueID */
+ "VARS", /* Syntax */
+ "Prints a list of all global variables.", /* Description */
+ "VARS", /* Name */
+ B15 | B93 /* OptionVersionBitmask */
+},
+{
+ C_WEND, /* UniqueID */
+ "WEND", /* Syntax */
+ "Bottom of a WHILE - WEND structure.", /* Description */
+ "WEND", /* Name */
+ B15 | B93 | C77 | H14 | HB1 | HB2 | M80 | D71 | T80 /* OptionVersionBitmask */
+},
+{
+ C_WHILE, /* UniqueID */
+ "WHILE value", /* Syntax */
+ "Top of a WHILE - WEND structure. If the value is non-zero, then "
+ "the loop is terminated.", /* Description */
+ "WHILE", /* Name */
+ B15 | B93 | C77 | H14 | HB1 | HB2 | M80 | D71 | T80 /* OptionVersionBitmask */
+},
+{
+ C_WRITE, /* UniqueID */
+ "WRITE # filenum, value [, .... ]", /* Syntax */
+ "Outputs value to a file. Strings are quoted and each value "
+ "is seperated by a omma.", /* Description */
+ "WRITE", /* Name */
+ B15 | B93 | G74 | H14 | G65 | G67 | M80 | D71 | T80 /* OptionVersionBitmask */
+},
+{
+ C_WRITE, /* UniqueID */
+ "WRITE value [, .... ]", /* Syntax */
+ "Outputs value to the screen. Strings are quoted and each value "
+ "is seperated by a comma.", /* Description */
+ "WRITE", /* Name */
+ B15 | B93 | G74 | H14 | G65 | G67 | M80 | D71 | T80 /* OptionVersionBitmask */
+},
+};
+
+const size_t NUM_COMMANDS =
+ sizeof (IntrinsicCommandTable) / sizeof (CommandType);
+
+
+/* EOF */
Un proyecto texto-plano.xyz