beta versions .002 -> .003 08/12/03 BCET - Added code to cope with the "IF THEN GOTO " form of the one line IF statment. 08/11/03 BGEN - More patches for include array code gens. 08/09/03 BOPT - fixed a few bugs that cropped up in testing the inline code for arrays. 08/09/03 BCET - added a routine to reduce the number of temporary variables generated, by re-using them where possible. 08/09/03 BGEN - added code generation for inline access to arrays (one dimension only). For the moment, it is always enabled. It will later be an option. The inline code should run faster, but is bigger. Bounds checking is ALWAYS enabled. That too will later become an option (to reduce code size). 08/03/03 I THINK I got the interactions between $STATIC, $DYNAMIC, and all the versions of DIM, REDIM, ... working correctly. It is now possible to declare static arrays. However, they are allocated in BSS, and cleared at statup, AND the code generator does NOT yet generate direct references to the array. It still uses the routines as if /Ah were in use. 07/29/03 Changed BCET to complain if the variable given for NEXT does not match the one given for the corresponding FOR. The multi variable version of NEXT is not supported. 07/29/03 Fixed BGEN to handle floats & currencys as FOR variables. 07/28/03 Started on mods to better handle arrays. .001 -> .002 07/25/03 Fixed BGEN to work on StdCall Calls. (Missing a redim of an array) 07/25/03 Fixed BGEN to correctly pass BYVAL String Literals. 07/25/03 Removed LOTS of STOP statements from BOPT 07/25/03 RT: I can't get the linker to guess the entry point on it's own. Therefore /subsystem:console is REQUIRED for a link. 07/25/03 RT: A number of changes intended to make life easier for me when working on the runtime routines. Mostly splitting up the main runtime source file into more logical elements. 07/25/03 RT: Added Version Checking on startup. All basic modules MUST be compiled with the same version of the BCET compiler. 07/24/03 RT: Changed STOP with no parameters to have a return code of 255. 07/24/03 Change all programs to have a non-zero return code for errors. 07/20/03 Changed BGEN to handle 'BYVAL STRING' correctly. 07/19/03 Changed BGEN to generate runtime calls for Print Using. The runtime code should be interesting - but not done yet. 07/14/03 RT: Fixed TAB and SPC. They appear to work ok. 07/13/03 RT: Fixed the PRINTcomma problem. It appears to work ok. 07/13/03 changed BCET to properly handle args for CDECL, STDCALL, and SYSCALL change BGEN to pop the stack for CDECL. VARARGS are NOT supported. .000 -> .001 07/06/03 Changed BOPT to process some more things. Also tried something which should speed it up, I hope. 07/02/03 Changed BOPT to process some additional things. 07/02/03 Changed BGEN to emit a $ on system string function calls - Was L 06/29/03 Patched BCET to process STATIC correctly. Found another problem in the expression routine. 06/27/03 RT: Added banner message to the runtime startup code. Boring, isn't it? 06/27/03 RT: Replaced STR$ routine for 64bit ints with an integer routine. It had used a FP routine. 06/26/03 Removed some unused vars from BCET. 06/26/03 Cleanup BOPT to reduce a lot of reduntant code, and get the asm file below 32000 lines. Masm gets sick with large source files if you use -Zi. :-) 06/25/03 remove TAB() from BFMT (because it doesn't work properly) so that the triple compare works. 06/25/03 apply patch tp BFMT to get around another code generator bug. Has to do with array references. 06/25/03 Add banner messages to all programs. 06/13/03 Cleanup usage message in BCET and make consistant with BGEN output header. 06/13/03 change BGEN to look for b_gentab in the exe directory. if not found, and if (on my system) then look in (my developmenmt directory) 06/12/03 change BGEN & BOUT to not supply or use the ;;out= line. It is not needed anymore, and removing it makes checking the triple test easier. 06/12/03 more changes in BGEN to recoginize &@ in special strings. Only &@Date and &@Time are recoginized, and the length adjusted. Others won't work. 06/12/03 RT: change size back to Dword. The code generator doesn't know from bytes. 06/11/03 RT: change size of f$PrintChannel & f$InputChannel to Byte: was Dword mainly to cut down the size of the code needed to set them. 06/11/03 changed BCET & BGEN to allow for collecting and passing info to change the size of the string pool. Added $StringPool: as a metacommand. Takes a number, followed by an optional k or m as the size. If not specified, the runtime uses a default. If specified in multiple modules, the largest takes effect. Limit is 2^32-1. 05/28/03 Hacked the float library code to handle 'd' as well as 'e'. More hacking is needed here. Also need to modify to handle TempReal. 05/28/03 change BCET decorate name to append named COMMON name to variable. This will allow COMMON /name/ to work. Common variable assoication between modules is by NAME not by location as in PDS. 05/26/03 changes in BGEN to recoginize &@ in special strings. &@Date & &@Time have the length of the string adjusted properly. For others leave plenty of spaces at the end of the string, and expect garbage (nulls) to appear at the end. This is to allow printing of compile dates ...