ChipMaster's bwBASIC This also includes history going back to v2.10. *WARN* some binary files might have been corrupted by CRLF.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

bwb_tbl.c 64 KiB

3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
v3.20 * Implements most of the following BASIC dialects: OPTION VERSION "BYWATER" ' Bywater BASIC 3 OPTION VERSION "BYWATER-2" ' Bywater BASIC 2 OPTION VERSION "CALL/360" ' SBC CALL/360 Mainframe BASIC OPTION VERSION "CBASIC-II" ' CBASIC-II for CP/M OPTION VERSION "DARTMOUTH" ' Dartmouth DTSS BASIC OPTION VERSION "ECMA-55" ' ANSI Minimal BASIC OPTION VERSION "ECMA-116" ' ANSI Full BASIC OPTION VERSION "GCOS" ' GE 600 Mainframe BASIC OPTION VERSION "HAARDT" ' bas 2.4 by Michael Haardt OPTION VERSION "HANDBOOK1" ' The BASIC Handbook, 1st Edition OPTION VERSION "HANDBOOK2" ' The BASIC Handbook, 2nd Edition OPTION VERSION "HEATH" ' Heath Benton Harbor BASIC OPTION VERSION "MARK-I" ' GE 265 Mainframe BASIC OPTION VERSION "MARK-II" ' GE 435 Mainframe BASIC OPTION VERSION "MBASIC" ' Microsoft BASIC-80 for Xenix OPTION VERSION "PDP-8" ' DEC PDP-8 BASIC OPTION VERSION "PDP-11" ' DEC PDP-11 BASIC OPTION VERSION "RBASIC" ' Micronics RBASIC for 6809 FLEX OPTION VERSION "RSTS-11" ' DEC RSTS-11 BASIC-PLUS OPTION VERSION "SYSTEM/360" ' IBM System/360 Mainframe BASIC OPTION VERSION "SYSTEM/370" ' IBM System/370 Mainframe BASIC OPTION VERSION "TRS-80" ' TRS-80 Model I/III/4 LBASIC OPTION VERSION "VINTAGE" ' Vintage BASIC 1.0.1 OPTION VERSION "XBASIC" ' TSC XBASIC for 6800 FLEX * CONST variable [, ...] = value Assigns the value to variable. Any later assignment to the variable causus a VARIABLE NOT DECLARED error. * DIM now supports lower and upper bounds. OPTION BASE 1 DIM X( 9 ) ' lower bound is 1 DIM Y( 5 TO 9 ) ' lower bound is 5 * DIM now supports virtual variables. OPTION BASE 1 OPEN "VIRTUAL.DAT" FOR VIRTUAL AS # 3 ' virtual data file DIM # 3, A( 1000 ) ' array is virtual LET A( 1000 ) = 0 ' value is written to the file LET X = A( 1000 ) ' value is read from the file CLOSE # 3 ' array is no longer valid * ERROR 27, "Bad DATA" Occurs when the READ command detects garbage in a DATA command. * INPUT LINE Same as LINE INPUT. * MAT now supports lower and upper bounds. OPTION BASE 1 MAT X( 9 ) = ZER ' lower bound is 1 MAT Y( 5 TO 9 ) = ZER ' lower bound is 5 MAT X = ZER( 9 ) ' lower bound is 1 MAT Y - ZER( 5 TO 9 ) ' lower bound is 5 * MAXLEN() Returns the maximum string length. * OPTION DIGITS integer Sets the number of significant digits for PRINT. Setting the value to zero restores the default. * OPTION EDIT string$ Sets the program name used by the EDIT command. Setting this to "" disables EDIT command. * OPTION FILES string$ Sets the program name used by the FILES command. Setting this to "" disables FILES command. * OPTION PROMPT string$ Sets the prompt. * OPTION PUNCT AT char$ Sets the PRINT AT character, commonly "@". Setting this to "" disables PRINT AT. Setting this to a non-punctuation character is not supported. * OPTION PUNCT BYTE char$ Sets the BYTE type suffix, commonly "~". Setting this to "" disables BYTE suffix. Setting this to a non-punctuation character is not supported. * OPTION PUNCT COMMENT char$ Sets the trailing COMMENT character, commonly "'". Setting this to "" disables trailing comments. Setting this to a non-punctuation character is not supported. * OPTION PUNCT CURRENCY char$ Sets the CURRENCY type suffix, commonly "@". Setting this to "" disables CURRENCY suffix. Setting this to a non-punctuation character is not supported. * OPTION PUNCT DOUBLE char$ Sets the DOUBLE type suffix, commonly "#". Setting this to "" disables DOUBLE suffix. Setting this to a non-punctuation character is not supported. * OPTION PUNCT FILENUM char$ Sets the FILE NUMBER prefix, commonly "#". Setting this to "" disables the FILE NUMBER prefix. Setting this to a non-punctuation character is not supported. * OPTION PUNCT IMAGE char$ Sets the shortcut IMAGE character, commonly ":". Setting this to "" disables the shortcut IMAGE character. Setting this to a non-punctuation character is not supported. * OPTION PUNCT INPUT char$ Sets the shortcut INPUT character, commonly "!". Setting this to "" disables the shortcut INPUT character. Setting this to a non-punctuation character is not supported. * OPTION PUNCT INTEGER char$ Sets the INTEGER type suffix, commonly "%". Setting this to "" disables INTEGER suffix. Setting this to a non-punctuation character is not supported. * OPTION PUNCT LONG char$ Sets the LONG type suffix, commonly "&". Setting this to "" disables LONG suffix. Setting this to a non-punctuation character is not supported. * OPTION PUNCT LPAREN char$ Sets the LEFT PARENTHESIS character, commonly "(". Setting this to a non-punctuation character is not supported. * OPTION PUNCT PRINT char$ Sets the shortcut PRINT character, commonly "?". Setting this to "" disables the shortcut PRINT character. Setting this to a non-punctuation character is not supported. * OPTION PUNCT QUOTE char$ Sets the QUOTE character, commonly """". Setting this to a non-punctuation character is not supported. * OPTION PUNCT RPAREN char$ Sets the RIGHT PARENTHESIS character, commonly ")". Setting this to a non-punctuation character is not supported. * OPTION PUNCT SINGLE char$ Sets the SINGLE type suffix, commonly "!". Setting this to "" disables SINGLE suffix. Setting this to a non-punctuation character is not supported. * OPTION PUNCT STATEMENT char$ Sets the shortcut STATEMENT seperator character, commonly ":". Setting this to "" disables the STATEMENT seperator. Setting this to a non-punctuation character is not supported. * OPTION PUNCT STRING char$ Sets the STRING type suffix, commonly "$". Setting this to "" disables STRING suffix. Setting this to a non-punctuation character is not supported. * OPTION RECLEN integer Sets the default record length for RANDOM files, commonly 128. Setting thisto zero means there is no default RANDOM record length, so the record length must be specified in the OPEN statement. With OPTION RECLEN 128: OPEN "FILE.DAT" FOR RANDOM AS #3 is considered to be the same as OPEN "FILE.DAT" FOR RANDOM AS #3 LEN 128 With OPTION RECLEN 0: OPEN "FILE.DAT" FOR RANDOM AS #3 causes an error. * OPTION RENUM string$ Sets the program name used by the RENUM command. Setting this to "" disables RENUM command. * OPTION SCALE integer Sets the number of digits to round after the decimal point for PRINT. Setting the value to zero disables rounding. * OPTION USING DIGIT * OPTION USING COMMA * OPTION USING PERIOD * OPTION USING PLUS * OPTION USING MINUS * OPTION USING EXRAD * OPTION USING DOLLAR * OPTION USING FILLER * OPTION USING LITERAL * OPTION USING FIRST * OPTION USING ALL * OPTION USING LENGTH Sets the characters recognized by PRINT USING. Setting these to a non-punctuation character is not supported. * OPTION VERSION now requires a string instead of a literal. Some version names have changed. * OPTION VERSION "PDP-8" Added LPT, PTP, PTR, TTY, TTY IN and TTY OUT commands. Added GET() and PUT() functions. * OPTION VERSION "CALL/360" * OPTION VERSION "SYSTEM/360" * OPTION VERSION "SYSTEM/370" Added alphabet extenders. $ is a string variable. * OPTION ZONE integer Sets the PRINT zone width. Setting the value to zero restores the default. * REPEAT - UNTIL added REPEAT ... EXIT REPEAT ... UNTIL expression ' exits when expression != 0 * SPC( X ) and TAB( X ) No longer use control codes. * UNTIL - UEND removed (to add REPEAT - UNTIL) Here is a work-around for existin code using UNTIL-UEND: UNITL expression -->> WHILE NOT expression ... ... EXIT UNTIL -->> EXIT WHILE ... ... UEND -->> WEND * from Howard Wulf, AF5NE Editor's Note: In the official release *ALL* of the test and sample BASIC programs were removed and packaged in a separate "test" ZIP. I have extracted those in to the bwbtest folder where most of the tests were living in previous packages. I've also improved (I hope) the EOL handling. - ChipMaster
3 years ago
3 years ago
3 years ago
v3.20 * Implements most of the following BASIC dialects: OPTION VERSION "BYWATER" ' Bywater BASIC 3 OPTION VERSION "BYWATER-2" ' Bywater BASIC 2 OPTION VERSION "CALL/360" ' SBC CALL/360 Mainframe BASIC OPTION VERSION "CBASIC-II" ' CBASIC-II for CP/M OPTION VERSION "DARTMOUTH" ' Dartmouth DTSS BASIC OPTION VERSION "ECMA-55" ' ANSI Minimal BASIC OPTION VERSION "ECMA-116" ' ANSI Full BASIC OPTION VERSION "GCOS" ' GE 600 Mainframe BASIC OPTION VERSION "HAARDT" ' bas 2.4 by Michael Haardt OPTION VERSION "HANDBOOK1" ' The BASIC Handbook, 1st Edition OPTION VERSION "HANDBOOK2" ' The BASIC Handbook, 2nd Edition OPTION VERSION "HEATH" ' Heath Benton Harbor BASIC OPTION VERSION "MARK-I" ' GE 265 Mainframe BASIC OPTION VERSION "MARK-II" ' GE 435 Mainframe BASIC OPTION VERSION "MBASIC" ' Microsoft BASIC-80 for Xenix OPTION VERSION "PDP-8" ' DEC PDP-8 BASIC OPTION VERSION "PDP-11" ' DEC PDP-11 BASIC OPTION VERSION "RBASIC" ' Micronics RBASIC for 6809 FLEX OPTION VERSION "RSTS-11" ' DEC RSTS-11 BASIC-PLUS OPTION VERSION "SYSTEM/360" ' IBM System/360 Mainframe BASIC OPTION VERSION "SYSTEM/370" ' IBM System/370 Mainframe BASIC OPTION VERSION "TRS-80" ' TRS-80 Model I/III/4 LBASIC OPTION VERSION "VINTAGE" ' Vintage BASIC 1.0.1 OPTION VERSION "XBASIC" ' TSC XBASIC for 6800 FLEX * CONST variable [, ...] = value Assigns the value to variable. Any later assignment to the variable causus a VARIABLE NOT DECLARED error. * DIM now supports lower and upper bounds. OPTION BASE 1 DIM X( 9 ) ' lower bound is 1 DIM Y( 5 TO 9 ) ' lower bound is 5 * DIM now supports virtual variables. OPTION BASE 1 OPEN "VIRTUAL.DAT" FOR VIRTUAL AS # 3 ' virtual data file DIM # 3, A( 1000 ) ' array is virtual LET A( 1000 ) = 0 ' value is written to the file LET X = A( 1000 ) ' value is read from the file CLOSE # 3 ' array is no longer valid * ERROR 27, "Bad DATA" Occurs when the READ command detects garbage in a DATA command. * INPUT LINE Same as LINE INPUT. * MAT now supports lower and upper bounds. OPTION BASE 1 MAT X( 9 ) = ZER ' lower bound is 1 MAT Y( 5 TO 9 ) = ZER ' lower bound is 5 MAT X = ZER( 9 ) ' lower bound is 1 MAT Y - ZER( 5 TO 9 ) ' lower bound is 5 * MAXLEN() Returns the maximum string length. * OPTION DIGITS integer Sets the number of significant digits for PRINT. Setting the value to zero restores the default. * OPTION EDIT string$ Sets the program name used by the EDIT command. Setting this to "" disables EDIT command. * OPTION FILES string$ Sets the program name used by the FILES command. Setting this to "" disables FILES command. * OPTION PROMPT string$ Sets the prompt. * OPTION PUNCT AT char$ Sets the PRINT AT character, commonly "@". Setting this to "" disables PRINT AT. Setting this to a non-punctuation character is not supported. * OPTION PUNCT BYTE char$ Sets the BYTE type suffix, commonly "~". Setting this to "" disables BYTE suffix. Setting this to a non-punctuation character is not supported. * OPTION PUNCT COMMENT char$ Sets the trailing COMMENT character, commonly "'". Setting this to "" disables trailing comments. Setting this to a non-punctuation character is not supported. * OPTION PUNCT CURRENCY char$ Sets the CURRENCY type suffix, commonly "@". Setting this to "" disables CURRENCY suffix. Setting this to a non-punctuation character is not supported. * OPTION PUNCT DOUBLE char$ Sets the DOUBLE type suffix, commonly "#". Setting this to "" disables DOUBLE suffix. Setting this to a non-punctuation character is not supported. * OPTION PUNCT FILENUM char$ Sets the FILE NUMBER prefix, commonly "#". Setting this to "" disables the FILE NUMBER prefix. Setting this to a non-punctuation character is not supported. * OPTION PUNCT IMAGE char$ Sets the shortcut IMAGE character, commonly ":". Setting this to "" disables the shortcut IMAGE character. Setting this to a non-punctuation character is not supported. * OPTION PUNCT INPUT char$ Sets the shortcut INPUT character, commonly "!". Setting this to "" disables the shortcut INPUT character. Setting this to a non-punctuation character is not supported. * OPTION PUNCT INTEGER char$ Sets the INTEGER type suffix, commonly "%". Setting this to "" disables INTEGER suffix. Setting this to a non-punctuation character is not supported. * OPTION PUNCT LONG char$ Sets the LONG type suffix, commonly "&". Setting this to "" disables LONG suffix. Setting this to a non-punctuation character is not supported. * OPTION PUNCT LPAREN char$ Sets the LEFT PARENTHESIS character, commonly "(". Setting this to a non-punctuation character is not supported. * OPTION PUNCT PRINT char$ Sets the shortcut PRINT character, commonly "?". Setting this to "" disables the shortcut PRINT character. Setting this to a non-punctuation character is not supported. * OPTION PUNCT QUOTE char$ Sets the QUOTE character, commonly """". Setting this to a non-punctuation character is not supported. * OPTION PUNCT RPAREN char$ Sets the RIGHT PARENTHESIS character, commonly ")". Setting this to a non-punctuation character is not supported. * OPTION PUNCT SINGLE char$ Sets the SINGLE type suffix, commonly "!". Setting this to "" disables SINGLE suffix. Setting this to a non-punctuation character is not supported. * OPTION PUNCT STATEMENT char$ Sets the shortcut STATEMENT seperator character, commonly ":". Setting this to "" disables the STATEMENT seperator. Setting this to a non-punctuation character is not supported. * OPTION PUNCT STRING char$ Sets the STRING type suffix, commonly "$". Setting this to "" disables STRING suffix. Setting this to a non-punctuation character is not supported. * OPTION RECLEN integer Sets the default record length for RANDOM files, commonly 128. Setting thisto zero means there is no default RANDOM record length, so the record length must be specified in the OPEN statement. With OPTION RECLEN 128: OPEN "FILE.DAT" FOR RANDOM AS #3 is considered to be the same as OPEN "FILE.DAT" FOR RANDOM AS #3 LEN 128 With OPTION RECLEN 0: OPEN "FILE.DAT" FOR RANDOM AS #3 causes an error. * OPTION RENUM string$ Sets the program name used by the RENUM command. Setting this to "" disables RENUM command. * OPTION SCALE integer Sets the number of digits to round after the decimal point for PRINT. Setting the value to zero disables rounding. * OPTION USING DIGIT * OPTION USING COMMA * OPTION USING PERIOD * OPTION USING PLUS * OPTION USING MINUS * OPTION USING EXRAD * OPTION USING DOLLAR * OPTION USING FILLER * OPTION USING LITERAL * OPTION USING FIRST * OPTION USING ALL * OPTION USING LENGTH Sets the characters recognized by PRINT USING. Setting these to a non-punctuation character is not supported. * OPTION VERSION now requires a string instead of a literal. Some version names have changed. * OPTION VERSION "PDP-8" Added LPT, PTP, PTR, TTY, TTY IN and TTY OUT commands. Added GET() and PUT() functions. * OPTION VERSION "CALL/360" * OPTION VERSION "SYSTEM/360" * OPTION VERSION "SYSTEM/370" Added alphabet extenders. $ is a string variable. * OPTION ZONE integer Sets the PRINT zone width. Setting the value to zero restores the default. * REPEAT - UNTIL added REPEAT ... EXIT REPEAT ... UNTIL expression ' exits when expression != 0 * SPC( X ) and TAB( X ) No longer use control codes. * UNTIL - UEND removed (to add REPEAT - UNTIL) Here is a work-around for existin code using UNTIL-UEND: UNITL expression -->> WHILE NOT expression ... ... EXIT UNTIL -->> EXIT WHILE ... ... UEND -->> WEND * from Howard Wulf, AF5NE Editor's Note: In the official release *ALL* of the test and sample BASIC programs were removed and packaged in a separate "test" ZIP. I have extracted those in to the bwbtest folder where most of the tests were living in previous packages. I've also improved (I hope) the EOL handling. - ChipMaster
3 years ago
v3.20 * Implements most of the following BASIC dialects: OPTION VERSION "BYWATER" ' Bywater BASIC 3 OPTION VERSION "BYWATER-2" ' Bywater BASIC 2 OPTION VERSION "CALL/360" ' SBC CALL/360 Mainframe BASIC OPTION VERSION "CBASIC-II" ' CBASIC-II for CP/M OPTION VERSION "DARTMOUTH" ' Dartmouth DTSS BASIC OPTION VERSION "ECMA-55" ' ANSI Minimal BASIC OPTION VERSION "ECMA-116" ' ANSI Full BASIC OPTION VERSION "GCOS" ' GE 600 Mainframe BASIC OPTION VERSION "HAARDT" ' bas 2.4 by Michael Haardt OPTION VERSION "HANDBOOK1" ' The BASIC Handbook, 1st Edition OPTION VERSION "HANDBOOK2" ' The BASIC Handbook, 2nd Edition OPTION VERSION "HEATH" ' Heath Benton Harbor BASIC OPTION VERSION "MARK-I" ' GE 265 Mainframe BASIC OPTION VERSION "MARK-II" ' GE 435 Mainframe BASIC OPTION VERSION "MBASIC" ' Microsoft BASIC-80 for Xenix OPTION VERSION "PDP-8" ' DEC PDP-8 BASIC OPTION VERSION "PDP-11" ' DEC PDP-11 BASIC OPTION VERSION "RBASIC" ' Micronics RBASIC for 6809 FLEX OPTION VERSION "RSTS-11" ' DEC RSTS-11 BASIC-PLUS OPTION VERSION "SYSTEM/360" ' IBM System/360 Mainframe BASIC OPTION VERSION "SYSTEM/370" ' IBM System/370 Mainframe BASIC OPTION VERSION "TRS-80" ' TRS-80 Model I/III/4 LBASIC OPTION VERSION "VINTAGE" ' Vintage BASIC 1.0.1 OPTION VERSION "XBASIC" ' TSC XBASIC for 6800 FLEX * CONST variable [, ...] = value Assigns the value to variable. Any later assignment to the variable causus a VARIABLE NOT DECLARED error. * DIM now supports lower and upper bounds. OPTION BASE 1 DIM X( 9 ) ' lower bound is 1 DIM Y( 5 TO 9 ) ' lower bound is 5 * DIM now supports virtual variables. OPTION BASE 1 OPEN "VIRTUAL.DAT" FOR VIRTUAL AS # 3 ' virtual data file DIM # 3, A( 1000 ) ' array is virtual LET A( 1000 ) = 0 ' value is written to the file LET X = A( 1000 ) ' value is read from the file CLOSE # 3 ' array is no longer valid * ERROR 27, "Bad DATA" Occurs when the READ command detects garbage in a DATA command. * INPUT LINE Same as LINE INPUT. * MAT now supports lower and upper bounds. OPTION BASE 1 MAT X( 9 ) = ZER ' lower bound is 1 MAT Y( 5 TO 9 ) = ZER ' lower bound is 5 MAT X = ZER( 9 ) ' lower bound is 1 MAT Y - ZER( 5 TO 9 ) ' lower bound is 5 * MAXLEN() Returns the maximum string length. * OPTION DIGITS integer Sets the number of significant digits for PRINT. Setting the value to zero restores the default. * OPTION EDIT string$ Sets the program name used by the EDIT command. Setting this to "" disables EDIT command. * OPTION FILES string$ Sets the program name used by the FILES command. Setting this to "" disables FILES command. * OPTION PROMPT string$ Sets the prompt. * OPTION PUNCT AT char$ Sets the PRINT AT character, commonly "@". Setting this to "" disables PRINT AT. Setting this to a non-punctuation character is not supported. * OPTION PUNCT BYTE char$ Sets the BYTE type suffix, commonly "~". Setting this to "" disables BYTE suffix. Setting this to a non-punctuation character is not supported. * OPTION PUNCT COMMENT char$ Sets the trailing COMMENT character, commonly "'". Setting this to "" disables trailing comments. Setting this to a non-punctuation character is not supported. * OPTION PUNCT CURRENCY char$ Sets the CURRENCY type suffix, commonly "@". Setting this to "" disables CURRENCY suffix. Setting this to a non-punctuation character is not supported. * OPTION PUNCT DOUBLE char$ Sets the DOUBLE type suffix, commonly "#". Setting this to "" disables DOUBLE suffix. Setting this to a non-punctuation character is not supported. * OPTION PUNCT FILENUM char$ Sets the FILE NUMBER prefix, commonly "#". Setting this to "" disables the FILE NUMBER prefix. Setting this to a non-punctuation character is not supported. * OPTION PUNCT IMAGE char$ Sets the shortcut IMAGE character, commonly ":". Setting this to "" disables the shortcut IMAGE character. Setting this to a non-punctuation character is not supported. * OPTION PUNCT INPUT char$ Sets the shortcut INPUT character, commonly "!". Setting this to "" disables the shortcut INPUT character. Setting this to a non-punctuation character is not supported. * OPTION PUNCT INTEGER char$ Sets the INTEGER type suffix, commonly "%". Setting this to "" disables INTEGER suffix. Setting this to a non-punctuation character is not supported. * OPTION PUNCT LONG char$ Sets the LONG type suffix, commonly "&". Setting this to "" disables LONG suffix. Setting this to a non-punctuation character is not supported. * OPTION PUNCT LPAREN char$ Sets the LEFT PARENTHESIS character, commonly "(". Setting this to a non-punctuation character is not supported. * OPTION PUNCT PRINT char$ Sets the shortcut PRINT character, commonly "?". Setting this to "" disables the shortcut PRINT character. Setting this to a non-punctuation character is not supported. * OPTION PUNCT QUOTE char$ Sets the QUOTE character, commonly """". Setting this to a non-punctuation character is not supported. * OPTION PUNCT RPAREN char$ Sets the RIGHT PARENTHESIS character, commonly ")". Setting this to a non-punctuation character is not supported. * OPTION PUNCT SINGLE char$ Sets the SINGLE type suffix, commonly "!". Setting this to "" disables SINGLE suffix. Setting this to a non-punctuation character is not supported. * OPTION PUNCT STATEMENT char$ Sets the shortcut STATEMENT seperator character, commonly ":". Setting this to "" disables the STATEMENT seperator. Setting this to a non-punctuation character is not supported. * OPTION PUNCT STRING char$ Sets the STRING type suffix, commonly "$". Setting this to "" disables STRING suffix. Setting this to a non-punctuation character is not supported. * OPTION RECLEN integer Sets the default record length for RANDOM files, commonly 128. Setting thisto zero means there is no default RANDOM record length, so the record length must be specified in the OPEN statement. With OPTION RECLEN 128: OPEN "FILE.DAT" FOR RANDOM AS #3 is considered to be the same as OPEN "FILE.DAT" FOR RANDOM AS #3 LEN 128 With OPTION RECLEN 0: OPEN "FILE.DAT" FOR RANDOM AS #3 causes an error. * OPTION RENUM string$ Sets the program name used by the RENUM command. Setting this to "" disables RENUM command. * OPTION SCALE integer Sets the number of digits to round after the decimal point for PRINT. Setting the value to zero disables rounding. * OPTION USING DIGIT * OPTION USING COMMA * OPTION USING PERIOD * OPTION USING PLUS * OPTION USING MINUS * OPTION USING EXRAD * OPTION USING DOLLAR * OPTION USING FILLER * OPTION USING LITERAL * OPTION USING FIRST * OPTION USING ALL * OPTION USING LENGTH Sets the characters recognized by PRINT USING. Setting these to a non-punctuation character is not supported. * OPTION VERSION now requires a string instead of a literal. Some version names have changed. * OPTION VERSION "PDP-8" Added LPT, PTP, PTR, TTY, TTY IN and TTY OUT commands. Added GET() and PUT() functions. * OPTION VERSION "CALL/360" * OPTION VERSION "SYSTEM/360" * OPTION VERSION "SYSTEM/370" Added alphabet extenders. $ is a string variable. * OPTION ZONE integer Sets the PRINT zone width. Setting the value to zero restores the default. * REPEAT - UNTIL added REPEAT ... EXIT REPEAT ... UNTIL expression ' exits when expression != 0 * SPC( X ) and TAB( X ) No longer use control codes. * UNTIL - UEND removed (to add REPEAT - UNTIL) Here is a work-around for existin code using UNTIL-UEND: UNITL expression -->> WHILE NOT expression ... ... EXIT UNTIL -->> EXIT WHILE ... ... UEND -->> WEND * from Howard Wulf, AF5NE Editor's Note: In the official release *ALL* of the test and sample BASIC programs were removed and packaged in a separate "test" ZIP. I have extracted those in to the bwbtest folder where most of the tests were living in previous packages. I've also improved (I hope) the EOL handling. - ChipMaster
3 years ago
3 years ago
v3.20 * Implements most of the following BASIC dialects: OPTION VERSION "BYWATER" ' Bywater BASIC 3 OPTION VERSION "BYWATER-2" ' Bywater BASIC 2 OPTION VERSION "CALL/360" ' SBC CALL/360 Mainframe BASIC OPTION VERSION "CBASIC-II" ' CBASIC-II for CP/M OPTION VERSION "DARTMOUTH" ' Dartmouth DTSS BASIC OPTION VERSION "ECMA-55" ' ANSI Minimal BASIC OPTION VERSION "ECMA-116" ' ANSI Full BASIC OPTION VERSION "GCOS" ' GE 600 Mainframe BASIC OPTION VERSION "HAARDT" ' bas 2.4 by Michael Haardt OPTION VERSION "HANDBOOK1" ' The BASIC Handbook, 1st Edition OPTION VERSION "HANDBOOK2" ' The BASIC Handbook, 2nd Edition OPTION VERSION "HEATH" ' Heath Benton Harbor BASIC OPTION VERSION "MARK-I" ' GE 265 Mainframe BASIC OPTION VERSION "MARK-II" ' GE 435 Mainframe BASIC OPTION VERSION "MBASIC" ' Microsoft BASIC-80 for Xenix OPTION VERSION "PDP-8" ' DEC PDP-8 BASIC OPTION VERSION "PDP-11" ' DEC PDP-11 BASIC OPTION VERSION "RBASIC" ' Micronics RBASIC for 6809 FLEX OPTION VERSION "RSTS-11" ' DEC RSTS-11 BASIC-PLUS OPTION VERSION "SYSTEM/360" ' IBM System/360 Mainframe BASIC OPTION VERSION "SYSTEM/370" ' IBM System/370 Mainframe BASIC OPTION VERSION "TRS-80" ' TRS-80 Model I/III/4 LBASIC OPTION VERSION "VINTAGE" ' Vintage BASIC 1.0.1 OPTION VERSION "XBASIC" ' TSC XBASIC for 6800 FLEX * CONST variable [, ...] = value Assigns the value to variable. Any later assignment to the variable causus a VARIABLE NOT DECLARED error. * DIM now supports lower and upper bounds. OPTION BASE 1 DIM X( 9 ) ' lower bound is 1 DIM Y( 5 TO 9 ) ' lower bound is 5 * DIM now supports virtual variables. OPTION BASE 1 OPEN "VIRTUAL.DAT" FOR VIRTUAL AS # 3 ' virtual data file DIM # 3, A( 1000 ) ' array is virtual LET A( 1000 ) = 0 ' value is written to the file LET X = A( 1000 ) ' value is read from the file CLOSE # 3 ' array is no longer valid * ERROR 27, "Bad DATA" Occurs when the READ command detects garbage in a DATA command. * INPUT LINE Same as LINE INPUT. * MAT now supports lower and upper bounds. OPTION BASE 1 MAT X( 9 ) = ZER ' lower bound is 1 MAT Y( 5 TO 9 ) = ZER ' lower bound is 5 MAT X = ZER( 9 ) ' lower bound is 1 MAT Y - ZER( 5 TO 9 ) ' lower bound is 5 * MAXLEN() Returns the maximum string length. * OPTION DIGITS integer Sets the number of significant digits for PRINT. Setting the value to zero restores the default. * OPTION EDIT string$ Sets the program name used by the EDIT command. Setting this to "" disables EDIT command. * OPTION FILES string$ Sets the program name used by the FILES command. Setting this to "" disables FILES command. * OPTION PROMPT string$ Sets the prompt. * OPTION PUNCT AT char$ Sets the PRINT AT character, commonly "@". Setting this to "" disables PRINT AT. Setting this to a non-punctuation character is not supported. * OPTION PUNCT BYTE char$ Sets the BYTE type suffix, commonly "~". Setting this to "" disables BYTE suffix. Setting this to a non-punctuation character is not supported. * OPTION PUNCT COMMENT char$ Sets the trailing COMMENT character, commonly "'". Setting this to "" disables trailing comments. Setting this to a non-punctuation character is not supported. * OPTION PUNCT CURRENCY char$ Sets the CURRENCY type suffix, commonly "@". Setting this to "" disables CURRENCY suffix. Setting this to a non-punctuation character is not supported. * OPTION PUNCT DOUBLE char$ Sets the DOUBLE type suffix, commonly "#". Setting this to "" disables DOUBLE suffix. Setting this to a non-punctuation character is not supported. * OPTION PUNCT FILENUM char$ Sets the FILE NUMBER prefix, commonly "#". Setting this to "" disables the FILE NUMBER prefix. Setting this to a non-punctuation character is not supported. * OPTION PUNCT IMAGE char$ Sets the shortcut IMAGE character, commonly ":". Setting this to "" disables the shortcut IMAGE character. Setting this to a non-punctuation character is not supported. * OPTION PUNCT INPUT char$ Sets the shortcut INPUT character, commonly "!". Setting this to "" disables the shortcut INPUT character. Setting this to a non-punctuation character is not supported. * OPTION PUNCT INTEGER char$ Sets the INTEGER type suffix, commonly "%". Setting this to "" disables INTEGER suffix. Setting this to a non-punctuation character is not supported. * OPTION PUNCT LONG char$ Sets the LONG type suffix, commonly "&". Setting this to "" disables LONG suffix. Setting this to a non-punctuation character is not supported. * OPTION PUNCT LPAREN char$ Sets the LEFT PARENTHESIS character, commonly "(". Setting this to a non-punctuation character is not supported. * OPTION PUNCT PRINT char$ Sets the shortcut PRINT character, commonly "?". Setting this to "" disables the shortcut PRINT character. Setting this to a non-punctuation character is not supported. * OPTION PUNCT QUOTE char$ Sets the QUOTE character, commonly """". Setting this to a non-punctuation character is not supported. * OPTION PUNCT RPAREN char$ Sets the RIGHT PARENTHESIS character, commonly ")". Setting this to a non-punctuation character is not supported. * OPTION PUNCT SINGLE char$ Sets the SINGLE type suffix, commonly "!". Setting this to "" disables SINGLE suffix. Setting this to a non-punctuation character is not supported. * OPTION PUNCT STATEMENT char$ Sets the shortcut STATEMENT seperator character, commonly ":". Setting this to "" disables the STATEMENT seperator. Setting this to a non-punctuation character is not supported. * OPTION PUNCT STRING char$ Sets the STRING type suffix, commonly "$". Setting this to "" disables STRING suffix. Setting this to a non-punctuation character is not supported. * OPTION RECLEN integer Sets the default record length for RANDOM files, commonly 128. Setting thisto zero means there is no default RANDOM record length, so the record length must be specified in the OPEN statement. With OPTION RECLEN 128: OPEN "FILE.DAT" FOR RANDOM AS #3 is considered to be the same as OPEN "FILE.DAT" FOR RANDOM AS #3 LEN 128 With OPTION RECLEN 0: OPEN "FILE.DAT" FOR RANDOM AS #3 causes an error. * OPTION RENUM string$ Sets the program name used by the RENUM command. Setting this to "" disables RENUM command. * OPTION SCALE integer Sets the number of digits to round after the decimal point for PRINT. Setting the value to zero disables rounding. * OPTION USING DIGIT * OPTION USING COMMA * OPTION USING PERIOD * OPTION USING PLUS * OPTION USING MINUS * OPTION USING EXRAD * OPTION USING DOLLAR * OPTION USING FILLER * OPTION USING LITERAL * OPTION USING FIRST * OPTION USING ALL * OPTION USING LENGTH Sets the characters recognized by PRINT USING. Setting these to a non-punctuation character is not supported. * OPTION VERSION now requires a string instead of a literal. Some version names have changed. * OPTION VERSION "PDP-8" Added LPT, PTP, PTR, TTY, TTY IN and TTY OUT commands. Added GET() and PUT() functions. * OPTION VERSION "CALL/360" * OPTION VERSION "SYSTEM/360" * OPTION VERSION "SYSTEM/370" Added alphabet extenders. $ is a string variable. * OPTION ZONE integer Sets the PRINT zone width. Setting the value to zero restores the default. * REPEAT - UNTIL added REPEAT ... EXIT REPEAT ... UNTIL expression ' exits when expression != 0 * SPC( X ) and TAB( X ) No longer use control codes. * UNTIL - UEND removed (to add REPEAT - UNTIL) Here is a work-around for existin code using UNTIL-UEND: UNITL expression -->> WHILE NOT expression ... ... EXIT UNTIL -->> EXIT WHILE ... ... UEND -->> WEND * from Howard Wulf, AF5NE Editor's Note: In the official release *ALL* of the test and sample BASIC programs were removed and packaged in a separate "test" ZIP. I have extracted those in to the bwbtest folder where most of the tests were living in previous packages. I've also improved (I hope) the EOL handling. - ChipMaster
3 years ago
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156
  1. /***************************************************************
  2. bwb_tbl.c OPTION VERSION table
  3. for Bywater BASIC Interpreter
  4. Copyright (c) 1993, Ted A. Campbell
  5. Bywater Software
  6. email: tcamp@delphi.com
  7. Copyright and Permissions Information:
  8. All U.S. and international rights are claimed by the author,
  9. Ted A. Campbell.
  10. This software is released under the terms of the GNU General
  11. Public License (GPL), which is distributed with this software
  12. in the file "COPYING". The GPL specifies the terms under
  13. which users may copy and use the software in this distribution.
  14. A separate license is available for commercial distribution,
  15. for information on which you should contact the author.
  16. ***************************************************************/
  17. /*---------------------------------------------------------------*/
  18. /* NOTE: Modifications marked "JBV" were made by Jon B. Volkoff, */
  19. /* 11/1995 (eidetics@cerf.net). */
  20. /* */
  21. /* Those additionally marked with "DD" were at the suggestion of */
  22. /* Dale DePriest (daled@cadence.com). */
  23. /* */
  24. /* Version 3.00 by Howard Wulf, AF5NE */
  25. /* */
  26. /* Version 3.10 by Howard Wulf, AF5NE */
  27. /* */
  28. /* Version 3.20 by Howard Wulf, AF5NE */
  29. /* */
  30. /*---------------------------------------------------------------*/
  31. #include "bwbasic.h"
  32. VersionType bwb_vertable[ /* NUM_VERSIONS */ ] =
  33. {
  34. {
  35. "BYWATER", /* Name */
  36. B15, /* OptionVersionBitmask */
  37. "B15", /* ID */
  38. "Bywater BASIC 3", /* Description */
  39. "Bywater BASIC Interpreter, version 3.20", /* Reference Title */
  40. "by Ted A. Campbell, Jon B. Volkoff, Paul Edwards, et al.", /* Reference Author */
  41. "(c) 2014-2017, Howard Wulf, AF5NE", /* Reference Copyright */
  42. "http://wwww.sourceforge.net/bwbasic/", /* Reference URL1 */
  43. "bwbasic-3.20.zip", /* Reference URL2 */
  44. OPTION_LABELS_ON | OPTION_BUGS_ON | OPTION_TRACE_ON, /* OptionFlags */
  45. 128, /* OptionReclenInteger */
  46. 0, /* OptionBaseInteger */
  47. "%m/%d/%Y", /* OptionDateFormat */
  48. "%H:%M:%S", /* OptionTimeFormat */
  49. '$', /* OptionStringChar */
  50. '#', /* OptionDoubleChar */
  51. '!', /* OptionSingleChar */
  52. '@', /* OptionCurrencyChar */
  53. '&', /* OptionLongChar */
  54. '%', /* OptionIntegerChar */
  55. '~', /* OptionByteChar */
  56. '"', /* OptionQuoteChar */
  57. '\'', /* OptionCommentChar */
  58. ':', /* OptionStatementChar */
  59. '?', /* OptionPrintChar */
  60. '\0', /* OptionInputChar */
  61. '\0', /* OptionImageChar */
  62. '(', /* OptionLparenChar */
  63. ')', /* OptionRparenChar */
  64. '#', /* OptionFilenumChar */
  65. '@', /* OptionAtChar */
  66. '#', /* OptionUsingDigit */
  67. ',', /* OptionUsingComma */
  68. '.', /* OptionUsingPeriod */
  69. '+', /* OptionUsingPlus */
  70. '-', /* OptionUsingMinus */
  71. '^', /* OptionUsingExrad */
  72. '$', /* OptionUsingDollar */
  73. '*', /* OptionUsingFiller */
  74. '_', /* OptionUsingLiteral */
  75. '!', /* OptionUsingFirst */
  76. '&', /* OptionUsingAll */
  77. '\\', /* OptionUsingLength */
  78. }
  79. ,
  80. {
  81. "BYWATER-2", /* Name */
  82. B93, /* OptionVersionBitmask */
  83. "B93", /* ID */
  84. "Bywater BASIC 2", /* Description */
  85. "Bywater BASIC Interpreter, version 2.61", /* Reference Title */
  86. "by Ted A. Campbell, Jon B. Volkoff, Paul Edwards, et al.", /* Reference Author */
  87. "Copyright (c) 1993-2014, Ted A. Campbell", /* Reference Copyright */
  88. "http://wwww.sourceforge.net/bwbasic/", /* Reference URL1 */
  89. "bwbasic-2.61.zip", /* Reference URL2 */
  90. OPTION_LABELS_ON | OPTION_BUGS_ON | OPTION_ERROR_GOSUB, /* OptionFlags */
  91. 128, /* OptionReclenInteger */
  92. 0, /* OptionBaseInteger */
  93. "%m/%d/%Y", /* OptionDateFormat */
  94. "%H:%M:%S", /* OptionTimeFormat */
  95. '$', /* OptionStringChar */
  96. '#', /* OptionDoubleChar */
  97. '!', /* OptionSingleChar */
  98. '\0', /* OptionCurrencyChar */
  99. '&', /* OptionLongChar */
  100. '%', /* OptionIntegerChar */
  101. '\0', /* OptionByteChar */
  102. '"', /* OptionQuoteChar */
  103. '\'', /* OptionCommentChar */
  104. ':', /* OptionStatementChar */
  105. '?', /* OptionPrintChar */
  106. '\0', /* OptionInputChar */
  107. '\0', /* OptionImageChar */
  108. '(', /* OptionLparenChar */
  109. ')', /* OptionRparenChar */
  110. '#', /* OptionFilenumChar */
  111. '\0', /* OptionAtChar */
  112. '#', /* OptionUsingDigit */
  113. ',', /* OptionUsingComma */
  114. '.', /* OptionUsingPeriod */
  115. '+', /* OptionUsingPlus */
  116. '-', /* OptionUsingMinus */
  117. '^', /* OptionUsingExrad */
  118. '$', /* OptionUsingDollar */
  119. '*', /* OptionUsingFiller */
  120. '_', /* OptionUsingLiteral */
  121. '!', /* OptionUsingFirst */
  122. '&', /* OptionUsingAll */
  123. '\\', /* OptionUsingLength */
  124. }
  125. ,
  126. {
  127. "CALL/360", /* Name */
  128. S70, /* OptionVersionBitmask */
  129. "S70", /* ID */
  130. "SBC CALL/360 Mainframe BASIC", /* Description */
  131. "CALL/360: BASIC Reference Handbook", /* Reference Title */
  132. "by International Business Machines Corporation", /* Reference Author */
  133. "(c) 1970, The Service Bureau Corporation", /* Reference Copyright */
  134. "http://bitsavers.trailing-edge.com/pdf/ibm/360/os/", /* Reference URL1 */
  135. "call_360/CALL_360_BASIC_Reference_Handbook_1970.pdf", /* Reference URL2 */
  136. FALSE, /* OptionFlags */
  137. 0, /* OptionReclenInteger */
  138. 1, /* OptionBaseInteger */
  139. "%Y/%m/%d", /* OptionDateFormat */
  140. "%H:%M:%S", /* OptionTimeFormat */
  141. '$', /* OptionStringChar */
  142. '\0', /* OptionDoubleChar */
  143. '\0', /* OptionSingleChar */
  144. '\0', /* OptionCurrencyChar */
  145. '\0', /* OptionLongChar */
  146. '\0', /* OptionIntegerChar */
  147. '\0', /* OptionByteChar */
  148. '"', /* OptionQuoteChar */
  149. '\0', /* OptionCommentChar */
  150. '\0', /* OptionStatementChar */
  151. '\0', /* OptionPrintChar */
  152. '\0', /* OptionInputChar */
  153. ':', /* OptionImageChar */
  154. '(', /* OptionLparenChar */
  155. ')', /* OptionRparenChar */
  156. '\0', /* OptionFilenumChar */
  157. '\0', /* OptionAtChar */
  158. '#', /* OptionUsingDigit */
  159. '\0', /* OptionUsingComma */
  160. '.', /* OptionUsingPeriod */
  161. '+', /* OptionUsingPlus */
  162. '-', /* OptionUsingMinus */
  163. '!', /* OptionUsingExrad */
  164. '\0', /* OptionUsingDollar */
  165. '\0', /* OptionUsingFiller */
  166. '\0', /* OptionUsingLiteral */
  167. '\0', /* OptionUsingFirst */
  168. '\0', /* OptionUsingAll */
  169. '\0', /* OptionUsingLength */
  170. }
  171. ,
  172. {
  173. "CBASIC-II", /* Name */
  174. C77, /* OptionVersionBitmask */
  175. "C77", /* ID */
  176. "CBASIC-II for CP/M", /* Description */
  177. "CBASIC-II", /* Reference Title */
  178. "by Compiler Systems", /* Reference Author */
  179. "(c) 1977, Compiler Systems", /* Reference Copyright */
  180. "http://bitsavers.trailing-edge.com/pdf/digitalResearch/cb80/", /* Reference URL1 */
  181. "CBASIC_Version_2_Jan81.pdf", /* Reference URL2 */
  182. OPTION_BUGS_ON, /* OptionFlags */
  183. 0, /* OptionReclenInteger */
  184. 0, /* OptionBaseInteger */
  185. "%Y/%m/%d", /* OptionDateFormat */
  186. "%H:%M:%S", /* OptionTimeFormat */
  187. '$', /* OptionStringChar */
  188. '#', /* OptionDoubleChar */
  189. '!', /* OptionSingleChar */
  190. '\0', /* OptionCurrencyChar */
  191. '&', /* OptionLongChar */
  192. '%', /* OptionIntegerChar */
  193. '\0', /* OptionByteChar */
  194. '"', /* OptionQuoteChar */
  195. '\'', /* OptionCommentChar */
  196. ':', /* OptionStatementChar */
  197. '?', /* OptionPrintChar */
  198. '\0', /* OptionInputChar */
  199. '\0', /* OptionImageChar */
  200. '(', /* OptionLparenChar */
  201. ')', /* OptionRparenChar */
  202. '#', /* OptionFilenumChar */
  203. '\0', /* OptionAtChar */
  204. '#', /* OptionUsingDigit */
  205. ',', /* OptionUsingComma */
  206. '.', /* OptionUsingPeriod */
  207. '+', /* OptionUsingPlus */
  208. '-', /* OptionUsingMinus */
  209. '^', /* OptionUsingExrad */
  210. '$', /* OptionUsingDollar */
  211. '*', /* OptionUsingFiller */
  212. '\\', /* OptionUsingLiteral */
  213. '!', /* OptionUsingFirst */
  214. '&', /* OptionUsingAll */
  215. '/', /* OptionUsingLength */
  216. }
  217. ,
  218. {
  219. "DARTMOUTH", /* Name */
  220. D64, /* OptionVersionBitmask */
  221. "D64", /* ID */
  222. "Dartmouth DTSS BASIC", /* Description */
  223. "BASIC", /* Reference Title */
  224. "by Computation Center, Dartmouth College", /* Reference Author */
  225. "(c) 1964, Trustees of Dartmouth College", /* Reference Copyright */
  226. "http://www.bitsavers.org/pdf/dartmouth/", /* Reference URL1 */
  227. "BASIC_Oct64.pdf", /* Reference URL2 */
  228. FALSE, /* OptionFlags */
  229. 128, /* OptionReclenInteger */
  230. 0, /* OptionBaseInteger */
  231. "%m/%d/%y", /* OptionDateFormat */
  232. "%H:%M", /* OptionTimeFormat */
  233. '$', /* OptionStringChar */
  234. '#', /* OptionDoubleChar */
  235. '!', /* OptionSingleChar */
  236. '\0', /* OptionCurrencyChar */
  237. '&', /* OptionLongChar */
  238. '%', /* OptionIntegerChar */
  239. '\0', /* OptionByteChar */
  240. '"', /* OptionQuoteChar */
  241. '\0', /* OptionCommentChar */
  242. '\0', /* OptionStatementChar */
  243. '\0', /* OptionPrintChar */
  244. '\0', /* OptionInputChar */
  245. ':', /* OptionImageChar */
  246. '(', /* OptionLparenChar */
  247. ')', /* OptionRparenChar */
  248. '#', /* OptionFilenumChar */
  249. '\0', /* OptionAtChar */
  250. '#', /* OptionUsingDigit */
  251. ',', /* OptionUsingComma */
  252. '.', /* OptionUsingPeriod */
  253. '+', /* OptionUsingPlus */
  254. '-', /* OptionUsingMinus */
  255. '^', /* OptionUsingExrad */
  256. '$', /* OptionUsingDollar */
  257. '*', /* OptionUsingFiller */
  258. '_', /* OptionUsingLiteral */
  259. '!', /* OptionUsingFirst */
  260. '&', /* OptionUsingAll */
  261. '%', /* OptionUsingLength */
  262. }
  263. ,
  264. {
  265. "ECMA-55", /* Name */
  266. E78, /* OptionVersionBitmask */
  267. "E78", /* ID */
  268. "ANSI Minimal BASIC", /* Description */
  269. "STANDARD ECMA-55: Minimal BASIC", /* Reference Title */
  270. "by EUROPEAN COMPUTER MANUFACTURERS ASSOCIATION", /* Reference Author */
  271. "(c) 1978, EUROPEAN COMPUTER MANUFACTURERS ASSOCIATION", /* Reference Copyright */
  272. "http://www.ecma-international.org/publications/files/", /* Reference URL1 */
  273. "ECMA-ST-WITHDRAWN/ECMA-55,%201st%20Edition,%20January%201978.pdf", /* Reference URL2 */
  274. FALSE, /* OptionFlags */
  275. 128, /* OptionReclenInteger */
  276. 0, /* OptionBaseInteger */
  277. "%m/%d/%Y", /* OptionDateFormat */
  278. "%H:%M:%S", /* OptionTimeFormat */
  279. '$', /* OptionStringChar */
  280. '#', /* OptionDoubleChar */
  281. '!', /* OptionSingleChar */
  282. '\0', /* OptionCurrencyChar */
  283. '&', /* OptionLongChar */
  284. '%', /* OptionIntegerChar */
  285. '\0', /* OptionByteChar */
  286. '"', /* OptionQuoteChar */
  287. '\0', /* OptionCommentChar */
  288. '\0', /* OptionStatementChar */
  289. '\0', /* OptionPrintChar */
  290. '\0', /* OptionInputChar */
  291. '\0', /* OptionImageChar */
  292. '(', /* OptionLparenChar */
  293. ')', /* OptionRparenChar */
  294. '#', /* OptionFilenumChar */
  295. '\0', /* OptionAtChar */
  296. '#', /* OptionUsingDigit */
  297. ',', /* OptionUsingComma */
  298. '.', /* OptionUsingPeriod */
  299. '+', /* OptionUsingPlus */
  300. '-', /* OptionUsingMinus */
  301. '^', /* OptionUsingExrad */
  302. '$', /* OptionUsingDollar */
  303. '*', /* OptionUsingFiller */
  304. '_', /* OptionUsingLiteral */
  305. '!', /* OptionUsingFirst */
  306. '&', /* OptionUsingAll */
  307. '%', /* OptionUsingLength */
  308. }
  309. ,
  310. {
  311. "ECMA-116", /* Name */
  312. E86, /* OptionVersionBitmask */
  313. "E86", /* ID */
  314. "ANSI Full BASIC", /* Description */
  315. "STANDARD ECMA-116: Full BASIC", /* Reference Title */
  316. "by EUROPEAN COMPUTER MANUFACTURERS ASSOCIATION", /* Reference Author */
  317. "(c) 1986, EUROPEAN COMPUTER MANUFACTURERS ASSOCIATION", /* Reference Copyright */
  318. "http://www.ecma-international.org/publications/files/", /* Reference URL1 */
  319. "ECMA-ST-WITHDRAWN/ECMA-116,%201st%20edition,%20June%201986.pdf", /* Reference URL2 */
  320. OPTION_LABELS_ON | OPTION_STRICT_ON, /* OptionFlags */
  321. 128, /* OptionReclenInteger */
  322. 1, /* OptionBaseInteger */
  323. "%Y-%m-%d", /* OptionDateFormat */
  324. "%H:%M:%S", /* OptionTimeFormat */
  325. '$', /* OptionStringChar */
  326. '#', /* OptionDoubleChar */
  327. '!', /* OptionSingleChar */
  328. '\0', /* OptionCurrencyChar */
  329. '&', /* OptionLongChar */
  330. '%', /* OptionIntegerChar */
  331. '\0', /* OptionByteChar */
  332. '"', /* OptionQuoteChar */
  333. '!', /* OptionCommentChar */
  334. '\0', /* OptionStatementChar */
  335. '\0', /* OptionPrintChar */
  336. '\0', /* OptionInputChar */
  337. '\0', /* OptionImageChar */
  338. '(', /* OptionLparenChar */
  339. ')', /* OptionRparenChar */
  340. '#', /* OptionFilenumChar */
  341. '\0', /* OptionAtChar */
  342. '#', /* OptionUsingDigit */
  343. ',', /* OptionUsingComma */
  344. '.', /* OptionUsingPeriod */
  345. '+', /* OptionUsingPlus */
  346. '-', /* OptionUsingMinus */
  347. '^', /* OptionUsingExrad */
  348. '$', /* OptionUsingDollar */
  349. '*', /* OptionUsingFiller */
  350. '_', /* OptionUsingLiteral */
  351. '!', /* OptionUsingFirst */
  352. '&', /* OptionUsingAll */
  353. '%', /* OptionUsingLength */
  354. }
  355. ,
  356. {
  357. "GCOS", /* Name */
  358. G74, /* OptionVersionBitmask */
  359. "G74", /* ID */
  360. "GE 600 Mainframe BASIC", /* Description */
  361. "TIME-SHARING SYSTEM POCKET GUIDE, SERIES 600/6000 GCOS", /* Reference Title */
  362. "by Honeywell", /* Reference Author */
  363. "(c) 1974, Honeywell", /* Reference Copyright */
  364. "http://www.trailingedge.com/misc/", /* Reference URL1 */
  365. "GCOS-TSS-PocketGuide.pdf", /* Reference URL2 */
  366. FALSE, /* OptionFlags */
  367. 128, /* OptionReclenInteger */
  368. 0, /* OptionBaseInteger */
  369. "%m/%d/%y", /* OptionDateFormat */
  370. "%H:%M", /* OptionTimeFormat */
  371. '$', /* OptionStringChar */
  372. '#', /* OptionDoubleChar */
  373. '!', /* OptionSingleChar */
  374. '\0', /* OptionCurrencyChar */
  375. '&', /* OptionLongChar */
  376. '%', /* OptionIntegerChar */
  377. '\0', /* OptionByteChar */
  378. '"', /* OptionQuoteChar */
  379. '\'', /* OptionCommentChar */
  380. '\0', /* OptionStatementChar */
  381. '\0', /* OptionPrintChar */
  382. '\0', /* OptionInputChar */
  383. ':', /* OptionImageChar */
  384. '(', /* OptionLparenChar */
  385. ')', /* OptionRparenChar */
  386. '#', /* OptionFilenumChar */
  387. '\0', /* OptionAtChar */
  388. '#', /* OptionUsingDigit */
  389. ',', /* OptionUsingComma */
  390. '.', /* OptionUsingPeriod */
  391. '+', /* OptionUsingPlus */
  392. '-', /* OptionUsingMinus */
  393. '^', /* OptionUsingExrad */
  394. '$', /* OptionUsingDollar */
  395. '*', /* OptionUsingFiller */
  396. '_', /* OptionUsingLiteral */
  397. '!', /* OptionUsingFirst */
  398. '&', /* OptionUsingAll */
  399. '%', /* OptionUsingLength */
  400. }
  401. ,
  402. {
  403. "HAARDT", /* Name */
  404. H14, /* OptionVersionBitmask */
  405. "H14", /* ID */
  406. "bas 2.4 by Michael Haardt", /* Description */
  407. "BAS", /* Reference Title */
  408. "by by Michael Haardt", /* Reference Author */
  409. "(c) 2014, by Michael Haardt", /* Reference Copyright */
  410. "http://www.moria.de/~michael/bas/", /* Reference URL1 */
  411. "bas-2.4.tar.gz", /* Reference URL2 */
  412. OPTION_BUGS_ON, /* OptionFlags */
  413. 1, /* OptionReclenInteger */
  414. 0, /* OptionBaseInteger */
  415. "%m/%d/%Y", /* OptionDateFormat */
  416. "%H:%M:%S", /* OptionTimeFormat */
  417. '$', /* OptionStringChar */
  418. '#', /* OptionDoubleChar */
  419. '!', /* OptionSingleChar */
  420. '\0', /* OptionCurrencyChar */
  421. '\0', /* OptionLongChar */
  422. '%', /* OptionIntegerChar */
  423. '\0', /* OptionByteChar */
  424. '"', /* OptionQuoteChar */
  425. '\'', /* OptionCommentChar */
  426. ':', /* OptionStatementChar */
  427. '?', /* OptionPrintChar */
  428. '\0', /* OptionInputChar */
  429. '\0', /* OptionImageChar */
  430. '(', /* OptionLparenChar */
  431. ')', /* OptionRparenChar */
  432. '#', /* OptionFilenumChar */
  433. '\0', /* OptionAtChar */
  434. '#', /* OptionUsingDigit */
  435. ',', /* OptionUsingComma */
  436. '.', /* OptionUsingPeriod */
  437. '+', /* OptionUsingPlus */
  438. '-', /* OptionUsingMinus */
  439. '^', /* OptionUsingExrad */
  440. '$', /* OptionUsingDollar */
  441. '*', /* OptionUsingFiller */
  442. '_', /* OptionUsingLiteral */
  443. '!', /* OptionUsingFirst */
  444. '&', /* OptionUsingAll */
  445. '\\', /* OptionUsingLength */
  446. }
  447. ,
  448. {
  449. "HANDBOOK1", /* Name */
  450. HB1, /* OptionVersionBitmask */
  451. "HB1", /* ID */
  452. "The BASIC Handbook, 1st Edition", /* Description */
  453. "The BASIC Handbook: Encyclopedia of the BASIC Computer Language", /* Reference Title */
  454. "by David A. Lien", /* Reference Author */
  455. "(c) 1978, Compusoft Publishing", /* Reference Copyright */
  456. "ISBN 0-932760-00-7", /* Reference URL1 */
  457. "(1st Edition) 364 pages", /* Reference URL2 */
  458. OPTION_BUGS_ON, /* OptionFlags */
  459. 128, /* OptionReclenInteger */
  460. 0, /* OptionBaseInteger */
  461. "%m/%d/%Y", /* OptionDateFormat */
  462. "%H:%M:%S", /* OptionTimeFormat */
  463. '$', /* OptionStringChar */
  464. '#', /* OptionDoubleChar */
  465. '!', /* OptionSingleChar */
  466. '\0', /* OptionCurrencyChar */
  467. '&', /* OptionLongChar */
  468. '%', /* OptionIntegerChar */
  469. '\0', /* OptionByteChar */
  470. '"', /* OptionQuoteChar */
  471. '\'', /* OptionCommentChar */
  472. ':', /* OptionStatementChar */
  473. '?', /* OptionPrintChar */
  474. '\0', /* OptionInputChar */
  475. '\0', /* OptionImageChar */
  476. '(', /* OptionLparenChar */
  477. ')', /* OptionRparenChar */
  478. '#', /* OptionFilenumChar */
  479. '@', /* OptionAtChar */
  480. '#', /* OptionUsingDigit */
  481. ',', /* OptionUsingComma */
  482. '.', /* OptionUsingPeriod */
  483. '+', /* OptionUsingPlus */
  484. '-', /* OptionUsingMinus */
  485. '^', /* OptionUsingExrad */
  486. '$', /* OptionUsingDollar */
  487. '*', /* OptionUsingFiller */
  488. '_', /* OptionUsingLiteral */
  489. '!', /* OptionUsingFirst */
  490. '&', /* OptionUsingAll */
  491. '%', /* OptionUsingLength */
  492. }
  493. ,
  494. {
  495. "HANDBOOK2", /* Name */
  496. HB2, /* OptionVersionBitmask */
  497. "HB2", /* ID */
  498. "The BASIC Handbook, 2nd Edition", /* Description */
  499. "The BASIC Handbook: Encyclopedia of the BASIC Computer Language", /* Reference Title */
  500. "by David A. Lien", /* Reference Author */
  501. "(c) 1981, CompuSoft Publishing", /* Reference Copyright */
  502. "ISBN 0-932760-05-8", /* Reference URL1 */
  503. "(2nd Edition) 480 pages", /* Reference URL2 */
  504. OPTION_BUGS_ON, /* OptionFlags */
  505. 128, /* OptionReclenInteger */
  506. 0, /* OptionBaseInteger */
  507. "%m/%d/%Y", /* OptionDateFormat */
  508. "%H:%M:%S", /* OptionTimeFormat */
  509. '$', /* OptionStringChar */
  510. '#', /* OptionDoubleChar */
  511. '!', /* OptionSingleChar */
  512. '\0', /* OptionCurrencyChar */
  513. '&', /* OptionLongChar */
  514. '%', /* OptionIntegerChar */
  515. '\0', /* OptionByteChar */
  516. '"', /* OptionQuoteChar */
  517. '\'', /* OptionCommentChar */
  518. ':', /* OptionStatementChar */
  519. '?', /* OptionPrintChar */
  520. '\0', /* OptionInputChar */
  521. '\0', /* OptionImageChar */
  522. '(', /* OptionLparenChar */
  523. ')', /* OptionRparenChar */
  524. '#', /* OptionFilenumChar */
  525. '@', /* OptionAtChar */
  526. '#', /* OptionUsingDigit */
  527. ',', /* OptionUsingComma */
  528. '.', /* OptionUsingPeriod */
  529. '+', /* OptionUsingPlus */
  530. '-', /* OptionUsingMinus */
  531. '^', /* OptionUsingExrad */
  532. '$', /* OptionUsingDollar */
  533. '*', /* OptionUsingFiller */
  534. '_', /* OptionUsingLiteral */
  535. '!', /* OptionUsingFirst */
  536. '&', /* OptionUsingAll */
  537. '%', /* OptionUsingLength */
  538. }
  539. ,
  540. {
  541. "HEATH", /* Name */
  542. H80, /* OptionVersionBitmask */
  543. "H80", /* ID */
  544. "Heath Benton Harbor BASIC", /* Description */
  545. "Extended Benton Harbor BASIC", /* Reference Title */
  546. "by Heath Company", /* Reference Author */
  547. "(c) 1980, Heath Company", /* Reference Copyright */
  548. "http://www.lesbird.com/sebhc/documentation/software/HDOS-2/", /* Reference URL1 */
  549. "HDOS_Reference_Chapter6.pdf", /* Reference URL2 */
  550. OPTION_BUGS_ON, /* OptionFlags */
  551. 0, /* OptionReclenInteger */
  552. 0, /* OptionBaseInteger */
  553. "", /* OptionDateFormat */
  554. "", /* OptionTimeFormat */
  555. '$', /* OptionStringChar */
  556. '#', /* OptionDoubleChar */
  557. '!', /* OptionSingleChar */
  558. '\0', /* OptionCurrencyChar */
  559. '&', /* OptionLongChar */
  560. '%', /* OptionIntegerChar */
  561. '\0', /* OptionByteChar */
  562. '"', /* OptionQuoteChar */
  563. '\0', /* OptionCommentChar */
  564. ':', /* OptionStatementChar */
  565. '\0', /* OptionPrintChar */
  566. '\0', /* OptionInputChar */
  567. '\0', /* OptionImageChar */
  568. '(', /* OptionLparenChar */
  569. ')', /* OptionRparenChar */
  570. '#', /* OptionFilenumChar */
  571. '\0', /* OptionAtChar */
  572. '#', /* OptionUsingDigit */
  573. ',', /* OptionUsingComma */
  574. '.', /* OptionUsingPeriod */
  575. '+', /* OptionUsingPlus */
  576. '-', /* OptionUsingMinus */
  577. '^', /* OptionUsingExrad */
  578. '$', /* OptionUsingDollar */
  579. '*', /* OptionUsingFiller */
  580. '_', /* OptionUsingLiteral */
  581. '!', /* OptionUsingFirst */
  582. '&', /* OptionUsingAll */
  583. '%', /* OptionUsingLength */
  584. }
  585. ,
  586. {
  587. "MARK-I", /* Name */
  588. G65, /* OptionVersionBitmask */
  589. "G65", /* ID */
  590. "GE 265 Mainframe BASIC", /* Description */
  591. "BASIC LANGUAGE REFERENCE MANUAL", /* Reference Title */
  592. "by Time-Sharing Service, Information Service Department, General Electric", /* Reference Author */
  593. "(c) 1965, Trustees of Dartmouth College", /* Reference Copyright */
  594. "http://www.bitsavers.org/pdf/ge/MarkI_Timesharing/", /* Reference URL1 */
  595. "202026A_BASIC_Language_Reference_Manual_Jan1967.pdf", /* Reference URL2 */
  596. FALSE, /* OptionFlags */
  597. 128, /* OptionReclenInteger */
  598. 0, /* OptionBaseInteger */
  599. "%m/%d/%y", /* OptionDateFormat */
  600. "%H:%M", /* OptionTimeFormat */
  601. '$', /* OptionStringChar */
  602. '#', /* OptionDoubleChar */
  603. '!', /* OptionSingleChar */
  604. '\0', /* OptionCurrencyChar */
  605. '&', /* OptionLongChar */
  606. '%', /* OptionIntegerChar */
  607. '\0', /* OptionByteChar */
  608. '"', /* OptionQuoteChar */
  609. '\0', /* OptionCommentChar */
  610. '\0', /* OptionStatementChar */
  611. '\0', /* OptionPrintChar */
  612. '\0', /* OptionInputChar */
  613. ':', /* OptionImageChar */
  614. '(', /* OptionLparenChar */
  615. ')', /* OptionRparenChar */
  616. '#', /* OptionFilenumChar */
  617. '\0', /* OptionAtChar */
  618. '#', /* OptionUsingDigit */
  619. ',', /* OptionUsingComma */
  620. '.', /* OptionUsingPeriod */
  621. '+', /* OptionUsingPlus */
  622. '-', /* OptionUsingMinus */
  623. '^', /* OptionUsingExrad */
  624. '$', /* OptionUsingDollar */
  625. '*', /* OptionUsingFiller */
  626. '_', /* OptionUsingLiteral */
  627. '!', /* OptionUsingFirst */
  628. '&', /* OptionUsingAll */
  629. '%', /* OptionUsingLength */
  630. }
  631. ,
  632. {
  633. "MARK-II", /* Name */
  634. G67, /* OptionVersionBitmask */
  635. "G67", /* ID */
  636. "GE 435 Mainframe BASIC", /* Description */
  637. "BASIC Language Reference Manual", /* Reference Title */
  638. "by Time-Sharing Service, Information Service Department, General Electric", /* Reference Author */
  639. "(c) 1968, General Electric Company and the Trustees of Dartmouth College", /* Reference Copyright */
  640. "http://www.bitsavers.org/pdf/ge/MarkI_Timesharing/", /* Reference URL1 */
  641. "711224A_BASICLanguageReferenceManual_Nov1970.pdf", /* Reference URL2 */
  642. FALSE, /* OptionFlags */
  643. 128, /* OptionReclenInteger */
  644. 0, /* OptionBaseInteger */
  645. "%m/%d/%y", /* OptionDateFormat */
  646. "%H:%M", /* OptionTimeFormat */
  647. '$', /* OptionStringChar */
  648. '#', /* OptionDoubleChar */
  649. '!', /* OptionSingleChar */
  650. '\0', /* OptionCurrencyChar */
  651. '&', /* OptionLongChar */
  652. '%', /* OptionIntegerChar */
  653. '\0', /* OptionByteChar */
  654. '"', /* OptionQuoteChar */
  655. '\'', /* OptionCommentChar */
  656. '\0', /* OptionStatementChar */
  657. '\0', /* OptionPrintChar */
  658. '\0', /* OptionInputChar */
  659. ':', /* OptionImageChar */
  660. '(', /* OptionLparenChar */
  661. ')', /* OptionRparenChar */
  662. '#', /* OptionFilenumChar */
  663. '\0', /* OptionAtChar */
  664. '#', /* OptionUsingDigit */
  665. ',', /* OptionUsingComma */
  666. '.', /* OptionUsingPeriod */
  667. '+', /* OptionUsingPlus */
  668. '-', /* OptionUsingMinus */
  669. '^', /* OptionUsingExrad */
  670. '$', /* OptionUsingDollar */
  671. '*', /* OptionUsingFiller */
  672. '_', /* OptionUsingLiteral */
  673. '!', /* OptionUsingFirst */
  674. '&', /* OptionUsingAll */
  675. '%', /* OptionUsingLength */
  676. }
  677. ,
  678. {
  679. "MBASIC", /* Name */
  680. M80, /* OptionVersionBitmask */
  681. "M80", /* ID */
  682. "Microsoft BASIC-80 for Xenix", /* Description */
  683. "Microsoft BASIC Reference Manual", /* Reference Title */
  684. "by Microsoft", /* Reference Author */
  685. "(c) 1982, Microsoft", /* Reference Copyright */
  686. "http://chiclassiccomp.org/docs/content/computing/Microsoft/", /* Reference URL1 */
  687. "Microsoft_Basic_8086Xenix_Reference.pdf", /* Reference URL2 */
  688. OPTION_BUGS_ON, /* OptionFlags */
  689. 128, /* OptionReclenInteger */
  690. 0, /* OptionBaseInteger */
  691. "%m/%d/%Y", /* OptionDateFormat */
  692. "%H:%M:%S", /* OptionTimeFormat */
  693. '$', /* OptionStringChar */
  694. '#', /* OptionDoubleChar */
  695. '!', /* OptionSingleChar */
  696. '\0', /* OptionCurrencyChar */
  697. '&', /* OptionLongChar */
  698. '%', /* OptionIntegerChar */
  699. '\0', /* OptionByteChar */
  700. '"', /* OptionQuoteChar */
  701. '\'', /* OptionCommentChar */
  702. ':', /* OptionStatementChar */
  703. '?', /* OptionPrintChar */
  704. '\0', /* OptionInputChar */
  705. '\0', /* OptionImageChar */
  706. '(', /* OptionLparenChar */
  707. ')', /* OptionRparenChar */
  708. '#', /* OptionFilenumChar */
  709. '\0', /* OptionAtChar */
  710. '#', /* OptionUsingDigit */
  711. ',', /* OptionUsingComma */
  712. '.', /* OptionUsingPeriod */
  713. '+', /* OptionUsingPlus */
  714. '-', /* OptionUsingMinus */
  715. '^', /* OptionUsingExrad */
  716. '$', /* OptionUsingDollar */
  717. '*', /* OptionUsingFiller */
  718. '_', /* OptionUsingLiteral */
  719. '!', /* OptionUsingFirst */
  720. '&', /* OptionUsingAll */
  721. '\\', /* OptionUsingLength */
  722. }
  723. ,
  724. {
  725. "PDP-8", /* Name */
  726. D73, /* OptionVersionBitmask */
  727. "D73", /* ID */
  728. "DEC PDP-8 BASIC", /* Description */
  729. "DEC 8K BASIC", /* Reference Title */
  730. "by Digital Equipement Corporation", /* Reference Author */
  731. "(c) 1973, Digital Equipement Corporation", /* Reference Copyright */
  732. "http://bitsavers.trailing-edge.com/pdf/dec/pdp8/basic/", /* Reference URL1 */
  733. "DEC-08-LBSMA-A-D_8K_BASIC_Jul73.pdf", /* Reference URL2 */
  734. OPTION_BUGS_ON, /* OptionFlags */
  735. 128, /* OptionReclenInteger */
  736. 0, /* OptionBaseInteger */
  737. "", /* OptionDateFormat */
  738. "", /* OptionTimeFormat */
  739. '$', /* OptionStringChar */
  740. '#', /* OptionDoubleChar */
  741. '!', /* OptionSingleChar */
  742. '\0', /* OptionCurrencyChar */
  743. '&', /* OptionLongChar */
  744. '%', /* OptionIntegerChar */
  745. '\0', /* OptionByteChar */
  746. '"', /* OptionQuoteChar */
  747. '\0', /* OptionCommentChar */
  748. '\\', /* OptionStatementChar */
  749. '\0', /* OptionPrintChar */
  750. '\0', /* OptionInputChar */
  751. '\0', /* OptionImageChar */
  752. '(', /* OptionLparenChar */
  753. ')', /* OptionRparenChar */
  754. '#', /* OptionFilenumChar */
  755. '\0', /* OptionAtChar */
  756. '#', /* OptionUsingDigit */
  757. ',', /* OptionUsingComma */
  758. '.', /* OptionUsingPeriod */
  759. '+', /* OptionUsingPlus */
  760. '-', /* OptionUsingMinus */
  761. '^', /* OptionUsingExrad */
  762. '$', /* OptionUsingDollar */
  763. '*', /* OptionUsingFiller */
  764. '_', /* OptionUsingLiteral */
  765. '!', /* OptionUsingFirst */
  766. '&', /* OptionUsingAll */
  767. '\\', /* OptionUsingLength */
  768. }
  769. ,
  770. {
  771. "PDP-11", /* Name */
  772. D70, /* OptionVersionBitmask */
  773. "D70", /* ID */
  774. "DEC PDP-11 BASIC", /* Description */
  775. "PDP-11 BASIC Programming Manual", /* Reference Title */
  776. "by Digital Equipement Corporation", /* Reference Author */
  777. "(c) 1970, Digital Equipement Corporation", /* Reference Copyright */
  778. "http://bitsavers.trailing-edge.com/pdf/dec/pdp11/basic/", /* Reference URL1 */
  779. "DEC-11-AJPB-D_PDP-11_BASIC_Programming_Manual_Dec70.pdf", /* Reference URL2 */
  780. OPTION_BUGS_ON, /* OptionFlags */
  781. 128, /* OptionReclenInteger */
  782. 0, /* OptionBaseInteger */
  783. "", /* OptionDateFormat */
  784. "", /* OptionTimeFormat */
  785. '$', /* OptionStringChar */
  786. '#', /* OptionDoubleChar */
  787. '!', /* OptionSingleChar */
  788. '\0', /* OptionCurrencyChar */
  789. '&', /* OptionLongChar */
  790. '%', /* OptionIntegerChar */
  791. '\0', /* OptionByteChar */
  792. '"', /* OptionQuoteChar */
  793. '\0', /* OptionCommentChar */
  794. ':', /* OptionStatementChar */
  795. '\0', /* OptionPrintChar */
  796. '\0', /* OptionInputChar */
  797. '\0', /* OptionImageChar */
  798. '(', /* OptionLparenChar */
  799. ')', /* OptionRparenChar */
  800. '#', /* OptionFilenumChar */
  801. '\0', /* OptionAtChar */
  802. '#', /* OptionUsingDigit */
  803. ',', /* OptionUsingComma */
  804. '.', /* OptionUsingPeriod */
  805. '+', /* OptionUsingPlus */
  806. '-', /* OptionUsingMinus */
  807. '^', /* OptionUsingExrad */
  808. '$', /* OptionUsingDollar */
  809. '*', /* OptionUsingFiller */
  810. '_', /* OptionUsingLiteral */
  811. '!', /* OptionUsingFirst */
  812. '&', /* OptionUsingAll */
  813. '\\', /* OptionUsingLength */
  814. }
  815. ,
  816. {
  817. "RBASIC", /* Name */
  818. R86, /* OptionVersionBitmask */
  819. "R86", /* ID */
  820. "Micronics RBASIC for 6809 FLEX", /* Description */
  821. "RBASIC User's Manual", /* Reference Title */
  822. "by R. Jones", /* Reference Author */
  823. "(c) 1986, Micronics Research Corp.", /* Reference Copyright */
  824. "http://www.evenson-consulting.com/swtpc/downloads/", /* Reference URL1 */
  825. "RBASIC.zip", /* Reference URL2 */
  826. OPTION_BUGS_ON, /* OptionFlags */
  827. 0, /* OptionReclenInteger */
  828. 0, /* OptionBaseInteger */
  829. "%d-%b-%y", /* OptionDateFormat */
  830. "%H:%M:%S", /* OptionTimeFormat */
  831. '$', /* OptionStringChar */
  832. '#', /* OptionDoubleChar */
  833. '!', /* OptionSingleChar */
  834. '\0', /* OptionCurrencyChar */
  835. '&', /* OptionLongChar */
  836. '%', /* OptionIntegerChar */
  837. '\0', /* OptionByteChar */
  838. '"', /* OptionQuoteChar */
  839. '\0', /* OptionCommentChar */
  840. ':', /* OptionStatementChar */
  841. '?', /* OptionPrintChar */
  842. '!', /* OptionInputChar */
  843. '\0', /* OptionImageChar */
  844. '(', /* OptionLparenChar */
  845. ')', /* OptionRparenChar */
  846. '#', /* OptionFilenumChar */
  847. '\0', /* OptionAtChar */
  848. '#', /* OptionUsingDigit */
  849. ',', /* OptionUsingComma */
  850. '.', /* OptionUsingPeriod */
  851. '+', /* OptionUsingPlus */
  852. '-', /* OptionUsingMinus */
  853. '^', /* OptionUsingExrad */
  854. '$', /* OptionUsingDollar */
  855. '*', /* OptionUsingFiller */
  856. '_', /* OptionUsingLiteral */
  857. '!', /* OptionUsingFirst */
  858. '&', /* OptionUsingAll */
  859. '\\', /* OptionUsingLength */
  860. }
  861. ,
  862. {
  863. "RSTS-11", /* Name */
  864. D71, /* OptionVersionBitmask */
  865. "D71", /* ID */
  866. "DEC RSTS-11 BASIC-PLUS", /* Description */
  867. "RSTS-11 User's Guide : BASIC-PLUS Programming Language", /* Reference Title */
  868. "by Digital Equipment Corporation", /* Reference Author */
  869. "(c) 1971, Digital Equipment Corporation", /* Reference Copyright */
  870. "http://bitsavers.trailing-edge.com/pdf/dec/pdp11/rsts/", /* Reference URL1 */
  871. "PL-11-71-01-01-A-D_RSTS-11UsersGuide_May71.pdf", /* Reference URL2 */
  872. OPTION_BUGS_ON, /* OptionFlags */
  873. 512, /* OptionReclenInteger */
  874. 0, /* OptionBaseInteger */
  875. "%d-%b-%y", /* OptionDateFormat */
  876. "%I:%M %p", /* OptionTimeFormat */
  877. '$', /* OptionStringChar */
  878. '#', /* OptionDoubleChar */
  879. '!', /* OptionSingleChar */
  880. '\0', /* OptionCurrencyChar */
  881. '&', /* OptionLongChar */
  882. '%', /* OptionIntegerChar */
  883. '\0', /* OptionByteChar */
  884. '"', /* OptionQuoteChar */
  885. '!', /* OptionCommentChar */
  886. ':', /* OptionStatementChar */
  887. '?', /* OptionPrintChar */
  888. '\0', /* OptionInputChar */
  889. '\0', /* OptionImageChar */
  890. '(', /* OptionLparenChar */
  891. ')', /* OptionRparenChar */
  892. '#', /* OptionFilenumChar */
  893. '\0', /* OptionAtChar */
  894. '#', /* OptionUsingDigit */
  895. ',', /* OptionUsingComma */
  896. '.', /* OptionUsingPeriod */
  897. '+', /* OptionUsingPlus */
  898. '-', /* OptionUsingMinus */
  899. '^', /* OptionUsingExrad */
  900. '$', /* OptionUsingDollar */
  901. '*', /* OptionUsingFiller */
  902. '_', /* OptionUsingLiteral */
  903. '!', /* OptionUsingFirst */
  904. '&', /* OptionUsingAll */
  905. '\\', /* OptionUsingLength */
  906. }
  907. ,
  908. {
  909. "SYSTEM/360", /* Name */
  910. I70, /* OptionVersionBitmask */
  911. "I70", /* ID */
  912. "IBM System/360 Mainframe BASIC", /* Description */
  913. "BASIC Language Reference Manual", /* Reference Title */
  914. "by International Business Machines Corporation", /* Reference Author */
  915. "(c) 1970, International Business Machines Corporation", /* Reference Copyright */
  916. "http://bitsavers.org/pdf/ibm/360/os/tso/", /* Reference URL1 */
  917. "GC28-6837-0_BASIC_Language_Ref_Man_Jun70.pdf", /* Reference URL2 */
  918. FALSE, /* OptionFlags */
  919. 0, /* OptionReclenInteger */
  920. 1, /* OptionBaseInteger */
  921. "%Y/%m/%d", /* OptionDateFormat */
  922. "%H:%M:%S", /* OptionTimeFormat */
  923. '$', /* OptionStringChar */
  924. '\0', /* OptionDoubleChar */
  925. '\0', /* OptionSingleChar */
  926. '\0', /* OptionCurrencyChar */
  927. '\0', /* OptionLongChar */
  928. '\0', /* OptionIntegerChar */
  929. '\0', /* OptionByteChar */
  930. '"', /* OptionQuoteChar */
  931. '\0', /* OptionCommentChar */
  932. '\0', /* OptionStatementChar */
  933. '\0', /* OptionPrintChar */
  934. '\0', /* OptionInputChar */
  935. ':', /* OptionImageChar */
  936. '(', /* OptionLparenChar */
  937. ')', /* OptionRparenChar */
  938. '\0', /* OptionFilenumChar */
  939. '\0', /* OptionAtChar */
  940. '#', /* OptionUsingDigit */
  941. '\0', /* OptionUsingComma */
  942. '.', /* OptionUsingPeriod */
  943. '+', /* OptionUsingPlus */
  944. '-', /* OptionUsingMinus */
  945. '!', /* OptionUsingExrad */
  946. '\0', /* OptionUsingDollar */
  947. '\0', /* OptionUsingFiller */
  948. '\0', /* OptionUsingLiteral */
  949. '\0', /* OptionUsingFirst */
  950. '\0', /* OptionUsingAll */
  951. '\0', /* OptionUsingLength */
  952. }
  953. ,
  954. {
  955. "SYSTEM/370", /* Name */
  956. I73, /* OptionVersionBitmask */
  957. "I73", /* ID */
  958. "IBM System/370 Mainframe BASIC", /* Description */
  959. "IBM Virtual Machine Facility/370: BASIC Language Reference Manual", /* Reference Title */
  960. "by International Business Machines Corporation", /* Reference Author */
  961. "(c) 1973, International Business Machines Corporation", /* Reference Copyright */
  962. "http://bitsavers.trailing-edge.com/pdf/ibm/370/VM_370/Release_1/", /* Reference URL1 */
  963. "GC20-1803-1_VM370_BASIC_Language_Reference_Manual_Rel_1_Apr73.pdf", /* Reference URL2 */
  964. FALSE, /* OptionFlags */
  965. 0, /* OptionReclenInteger */
  966. 1, /* OptionBaseInteger */
  967. "%Y/%m/%d", /* OptionDateFormat */
  968. "%H:%M:%S", /* OptionTimeFormat */
  969. '$', /* OptionStringChar */
  970. '\0', /* OptionDoubleChar */
  971. '\0', /* OptionSingleChar */
  972. '\0', /* OptionCurrencyChar */
  973. '\0', /* OptionLongChar */
  974. '\0', /* OptionIntegerChar */
  975. '\0', /* OptionByteChar */
  976. '"', /* OptionQuoteChar */
  977. '\0', /* OptionCommentChar */
  978. '\0', /* OptionStatementChar */
  979. '\0', /* OptionPrintChar */
  980. '\0', /* OptionInputChar */
  981. ':', /* OptionImageChar */
  982. '(', /* OptionLparenChar */
  983. ')', /* OptionRparenChar */
  984. '\0', /* OptionFilenumChar */
  985. '\0', /* OptionAtChar */
  986. '#', /* OptionUsingDigit */
  987. '\0', /* OptionUsingComma */
  988. '.', /* OptionUsingPeriod */
  989. '+', /* OptionUsingPlus */
  990. '-', /* OptionUsingMinus */
  991. '!', /* OptionUsingExrad */
  992. '\0', /* OptionUsingDollar */
  993. '\0', /* OptionUsingFiller */
  994. '\0', /* OptionUsingLiteral */
  995. '\0', /* OptionUsingFirst */
  996. '\0', /* OptionUsingAll */
  997. '\0', /* OptionUsingLength */
  998. }
  999. ,
  1000. {
  1001. "TRS-80", /* Name */
  1002. T80, /* OptionVersionBitmask */
  1003. "T80", /* ID */
  1004. "TRS-80 Model I/III/4 LBASIC", /* Description */
  1005. "LBASIC USER'S GUIDE", /* Reference Title */
  1006. "by Galactic Software, Ltd.", /* Reference Author */
  1007. "(c) 1981, Galactic Software, Ltd.", /* Reference Copyright */
  1008. "http://www.tim-mann.org/trs80/doc/", /* Reference URL1 */
  1009. "lbasic.txt", /* Reference URL2 */
  1010. OPTION_BUGS_ON, /* OptionFlags */
  1011. 128, /* OptionReclenInteger */
  1012. 0, /* OptionBaseInteger */
  1013. "", /* OptionDateFormat */
  1014. "%m/%d/%y %H:%M:%S", /* OptionTimeFormat */
  1015. '$', /* OptionStringChar */
  1016. '#', /* OptionDoubleChar */
  1017. '!', /* OptionSingleChar */
  1018. '\0', /* OptionCurrencyChar */
  1019. '&', /* OptionLongChar */
  1020. '%', /* OptionIntegerChar */
  1021. '\0', /* OptionByteChar */
  1022. '"', /* OptionQuoteChar */
  1023. '\'', /* OptionCommentChar */
  1024. ':', /* OptionStatementChar */
  1025. '?', /* OptionPrintChar */
  1026. '\0', /* OptionInputChar */
  1027. '\0', /* OptionImageChar */
  1028. '(', /* OptionLparenChar */
  1029. ')', /* OptionRparenChar */
  1030. '#', /* OptionFilenumChar */
  1031. '@', /* OptionAtChar */
  1032. '#', /* OptionUsingDigit */
  1033. ',', /* OptionUsingComma */
  1034. '.', /* OptionUsingPeriod */
  1035. '+', /* OptionUsingPlus */
  1036. '-', /* OptionUsingMinus */
  1037. '^', /* OptionUsingExrad */
  1038. '$', /* OptionUsingDollar */
  1039. '*', /* OptionUsingFiller */
  1040. '_', /* OptionUsingLiteral */
  1041. '!', /* OptionUsingFirst */
  1042. '&', /* OptionUsingAll */
  1043. '%', /* OptionUsingLength */
  1044. }
  1045. ,
  1046. {
  1047. "VINTAGE", /* Name */
  1048. V09, /* OptionVersionBitmask */
  1049. "V09", /* ID */
  1050. "Vintage BASIC 1.0.1", /* Description */
  1051. "Vintage BASIC User's Guide 1.0.1", /* Reference Title */
  1052. "by Lyle Kopnicky", /* Reference Author */
  1053. "(c) 2009, Lyle Kopnicky", /* Reference Copyright */
  1054. "http://www.vintage-basic.net/", /* Reference URL1 */
  1055. "vintage-basic-1.0.1.tar.gz", /* Reference URL2 */
  1056. OPTION_BUGS_ON, /* OptionFlags */
  1057. 128, /* OptionReclenInteger */
  1058. 0, /* OptionBaseInteger */
  1059. "", /* OptionDateFormat */
  1060. "", /* OptionTimeFormat */
  1061. '$', /* OptionStringChar */
  1062. '\0', /* OptionDoubleChar */
  1063. '\0', /* OptionSingleChar */
  1064. '\0', /* OptionCurrencyChar */
  1065. '\0', /* OptionLongChar */
  1066. '%', /* OptionIntegerChar */
  1067. '\0', /* OptionByteChar */
  1068. '"', /* OptionQuoteChar */
  1069. '\0', /* OptionCommentChar */
  1070. ':', /* OptionStatementChar */
  1071. '\0', /* OptionPrintChar */
  1072. '\0', /* OptionInputChar */
  1073. '\0', /* OptionImageChar */
  1074. '(', /* OptionLparenChar */
  1075. ')', /* OptionRparenChar */
  1076. '\0', /* OptionFilenumChar */
  1077. '\0', /* OptionAtChar */
  1078. '#', /* OptionUsingDigit */
  1079. ',', /* OptionUsingComma */
  1080. '.', /* OptionUsingPeriod */
  1081. '+', /* OptionUsingPlus */
  1082. '-', /* OptionUsingMinus */
  1083. '^', /* OptionUsingExrad */
  1084. '$', /* OptionUsingDollar */
  1085. '*', /* OptionUsingFiller */
  1086. '_', /* OptionUsingLiteral */
  1087. '!', /* OptionUsingFirst */
  1088. '&', /* OptionUsingAll */
  1089. '\\', /* OptionUsingLength */
  1090. }
  1091. ,
  1092. {
  1093. "XBASIC", /* Name */
  1094. T79, /* OptionVersionBitmask */
  1095. "T79", /* ID */
  1096. "TSC XBASIC for 6800 FLEX", /* Description */
  1097. "Extended BASIC User's Manual", /* Reference Title */
  1098. "by Technical Systems Consultants", /* Reference Author */
  1099. "(c) 1979, Technical Systems Consultants", /* Reference Copyright */
  1100. "http://www.swtpc.com/mholley/Setton/", /* Reference URL1 */
  1101. "xbasic.pdf", /* Reference URL2 */
  1102. OPTION_BUGS_ON, /* OptionFlags */
  1103. 0, /* OptionReclenInteger */
  1104. 0, /* OptionBaseInteger */
  1105. "%d-%b-%y", /* OptionDateFormat */
  1106. "%H:%M:%S", /* OptionTimeFormat */
  1107. '$', /* OptionStringChar */
  1108. '#', /* OptionDoubleChar */
  1109. '!', /* OptionSingleChar */
  1110. '\0', /* OptionCurrencyChar */
  1111. '&', /* OptionLongChar */
  1112. '%', /* OptionIntegerChar */
  1113. '\0', /* OptionByteChar */
  1114. '"', /* OptionQuoteChar */
  1115. '\0', /* OptionCommentChar */
  1116. ':', /* OptionStatementChar */
  1117. '?', /* OptionPrintChar */
  1118. '\0', /* OptionInputChar */
  1119. '\0', /* OptionImageChar */
  1120. '(', /* OptionLparenChar */
  1121. ')', /* OptionRparenChar */
  1122. '#', /* OptionFilenumChar */
  1123. '\0', /* OptionAtChar */
  1124. '#', /* OptionUsingDigit */
  1125. ',', /* OptionUsingComma */
  1126. '.', /* OptionUsingPeriod */
  1127. '+', /* OptionUsingPlus */
  1128. '-', /* OptionUsingMinus */
  1129. '^', /* OptionUsingExrad */
  1130. '$', /* OptionUsingDollar */
  1131. '*', /* OptionUsingFiller */
  1132. '_', /* OptionUsingLiteral */
  1133. '!', /* OptionUsingFirst */
  1134. '&', /* OptionUsingAll */
  1135. '\\', /* OptionUsingLength */
  1136. }
  1137. ,
  1138. };
  1139. const size_t NUM_VERSIONS = sizeof (bwb_vertable) / sizeof (VersionType);
  1140. /* EOF */