History of changes for Extended Batch Language Version 3 1. Version 3.01a Initial release. 2. Version 3.01b Fixed bug that caused some text in the prompts for READ or INKEY commands to print smiley face characters. 3. Version 3.02a * Fixed bug if a "call" to a second batch file was made using the command "BAT SHELL BAT /R Second.BAT" and external functions were ALSO used. The bug caused a system hang. * Changed the algorithm that looked up the keywords to improve execution speed. * Fixed bug so that pressing break will properly reset the CALL-RETURN pointer for batch file subroutines when terminated. * Protected the functions 72,7A,7B,7C,7D so that they cannot be used by user extensions if the transient EBL is not in memory. All will return AX=-1 if EBL is not in memory. If OK, it will always return AH=0. * The IF,THEN,ELSE commands can have CALL-RETURN commands between them and the status of the IF be saved and restored properly. * If a CLS command is followed immediately by a READ command with a prompt, the cursor position will now be correct. * Changed spacing of parameter line within SHELL command to exactly match what DOS creates. Some programs may be sensitive to this and failed previously. 4. Version 3.03a * Fixed all READ and PARSE commands so that contents read will not be altered by any external function packages that are loaded. * External function names must now be from 3 to 15 letters long. EBL will not call external functions with names too short or long. Exceptions are functions (like the extended variables) with names starting with "&" (ampersand). * The PARSE command will now allow an empty token to Page 1 History of changes for Extended Batch Language Version 3 be parsed. No error will be reported and the resulting variables will be made empty. * Quoted string mode will be effectively disabled (/Q- option) during any READ or PARSE command. This will allow entry of strings contain quotes, even partial ones. * Further optimized command recognition to make EBL even faster. 5. Version 3.04a * Fixed bug that caused some standard ASCII text strings to be recognized as color attributes within a BEGTYPE menu. * Added "RESUME x" command. This can be put within an -on.error- handler to resume at a specific line number, resume at the line in error, or resume at the line after the error (the default). As an example of each, respectively: - RESUME 49 (goes to line 50 (always n+1)) - RESUME ( %L - 1 ) (goes to the line having the error) - RESUME (goes to the line after the one in error) This command actually does a SKIP %L from the front of the batch file in order to implement the default RESUME command. Since %L will contain the line number in error when the error occurs, this will always go to the line after the error. * The STATEOF command correctly find file names that include paths to sub-directories. However note, the [drive.list] option will be ignored if paths are provided within the file name. * Additional commands with BATFUNC1 now include MKDIR and RMDIR as well as the original CHDIR. * Using SKIP to go past other GOTO commands will now always count lines properly. Bug only occurred if the GOTO was executed at least twice before and the destination label was 3 characters long! (very rare) * Ending a BEGTYPE or BEGSTACK command without an END will not cause this command to spill into raw memory. Page 2 History of changes for Extended Batch Language Version 3 6. Version 3.05a * If a CALL with parameters was immediately followed by a BEGSTACK command, the data was put into the stack backwards. This bug has been fixed. * INKEY command always returns letters A to Z in upper case as in previous versions of EBL and as specified in the current Version 3 EBL manual. * The differences between the IBM standard BIOS interface and the unique QuadRAM BIOS interface for the QuadRam EGA Plus have been identified. EBL has accommodated the unique non-standard requirements of QuadRam and should now work with their EGA plus display adapter. * Unary minus within a greater or less than comparison did not always yield the proper results. This bug has been fixed. * The contents of data being accepted by READ or PARSE commands will no longer be affected if it happens to match the name of an external variable. Likewise, if the contents of a DOS or Global variable contains data that happens to be the name of an external variable, it will also no longer be altered. * The PARSE command's initial token value can now also be an external variable, not just a constant or DOS or Global variable. * If a line was printed with a single semicolon at the end, no carriage return is added. This is correct. If two semicolons are at the end however, both are printed. This is incorrect and has been changed so that only one semicolon is printed without any trailing carriage return. * Within BATXV, in the case where a variable was set equal to itself like &VAR = &VAR, then the contents was converted to upper case. This bug has been fixed. The contents will remain unchanged in this instance now. * Error #19 "Out of memory for DOS variables" did not not stop batch file execution nor return the proper error code in the %R variable. This bug has been fixed. * Removed fix #1 on 3.03a release. READ and PARSE commands WILL use external functions now if referred to directly within the batch file itself. If a variable contains data identical to an Page 3 History of changes for Extended Batch Language Version 3 external function name, then the external function WILL NOT be used. * Within BATXV, the single character "&" was recognized as a variable name. As a result, if a prompt after the READ or INKEY commands contained just a "&", then an error could result. This has been fixed. * Within BATXV, this program can now be loaded (made resident) before Extended Batch Language without error. * Within all external functions, added the version number to the program ID so that the WHATFUNC() function can not only tell which programs are loaded, but it can be used to identify the version that is running. * Added SEEK() command as an internal function. Refer to description in the README file or else where. * Fixed the READ and READ.PARSED commands so that the '|' (vertical bar) character can be read correctly. * Fixed an occasional GOTO error. If a variable label was used like GOTO -%0 and the text contained a partially quoted string like "text, then a mismatched quote error occasionally occurred during the GOTO. * Fixed an occasional CALL error. If a label was three characters and was immediately followed by the interstatement delimiter '|', then the remainder of the line was used as an operand to the CALL and was put on the stack. If the line had be executed previously, this (improper) operand would cause the keyboard to hang for a short period because of the special flags inserted into lines to speed up GOTO and CALL commands. * Updated rules for calling external functions during expression evaluation for improved performance. Arithmetic operators are now not allowed to be substituted by any external function. Furthermore, external functions must start with a letter ("A" or higher), and external variables must start with a special character (less than "A"). * The variable lookup algorithm within BATXV has been improved. Performance may be up to 4 times better! * Comments did not ignore the entire line if an interstatement separator was used "|". This has Page 4 History of changes for Extended Batch Language Version 3 been corrected. Page 5  Page