11. Major revision change I am calling this update a major revision bump from .1 to .2, bringing the version number up to 1.2.9. Version 1.1.9 was not released, and is considered an alpha- stage update. New: Options dialog for controlling output and display. Alert dialogs for no parameter, no filespec with -o option, non-executable file and non-I-Code module. Added Raw.txt output file. Added Lines.txt output file. Added options to control which windows (if any) get displayed. Added options to control the colors of the windows displayed in decode. Added options to control which output files (if any) get generated. Modified createDB to delete the old database before creating a new one. Your options will not be preserved if you run createDB after the first time. I will be adding code to preserve your preferences later. 10. Version change I am calling all the previous edits from 6 upward a minor revision bump from .6 to .9, bringing the version number up to 1.1.9. 9. Fixed parsing error: negate operator was not being properly processed. 8. Modified how the data is displayed in the Raw mode output window. Fixed negate operator: It was left out of the DATA statements by accident. 7. Removed the 'a' suffix from the version number. 6. Changed output file extensions to .txt. Added code to print variables. filename is Vars.txt. Removed a tmode pause command that was only there so I could look for parsing errors in instruction. Added relative offsets to DSAT output, and added variable names for validated entries. 5. Added the 'a' suffix to the version number. 4. RESTORE with no line number In accounting for the RESTORE with no line number, it required adding another variable reference to the procData file, as well as adding code to createDB, decode, defVars, buildSrc and instruction. This is why I consider it a major revision. 3. ON var GOTO/GOSUB problem: I use this form in decode to GOSUB to a series of subroutines for incrementing various counters, and this was much easier, and much less coding, than a myriad of IF/THEN constructs. If you use the syntax: ON PEEK(ADDR(arrayVar)+ElementPtr)) it was returning: ADDR(arrayVar(ON )+ElementPtr PEEK() from the parser. 2. MID$ problem: I had somehow neglected to add the third argument/element value to the functions/array keywords that use the format (,,). The others, () and (,), were not affected. 1. TYPE fields problem: There are technically four "memory" addresses that are used in the identification of a variable in Basic09. They are: Data Memory - actual memory location in the data space DSAT Offset - offset relative to the beginning of the DSAT in the I-Code module VDT Offset - offset relative to the beginning of the VDT in the I-Code module Record Field Offset - offset relative to the beginning of the record variable Since all field variables have a data memory offset of 0, they get sorted to the top of the variables file. There were instances where the data memory offset was not being set to 0. This caused these field variables to be dispersed among the DIMension statements, and led to erroneous TYPE statement declarations.