BOS_to_BASM is a TA Script compiler. - To compile a .BOS file, drop it onto exe - All TA script syntax should be supported. - Any errors are printed just before the offending statement, and then again at the bottem of the .BASM file with a line number. Got to this line number to find the actual error. - Outputs the pre-processor output to a seperate file (It is exactly how the compiler sees it) (Extension .PREBASM) - Native ouput is a stack based asm, with the extension .BASM. If it has no errors it is sent to basm.exe to be compiled to a COB - Uses Mafia's BASM.exe to translate a .BASM file to a COB - basm.exe outputs errors to a fixed file. BOS_to_BASM will catch these are rename it with the format "_BASM_errors.txt". - All output is in the same directory as the .BOS file. - Allows the direct inlining of .BASM into .BOS files. The syntax is: "basm { ... }" - Named constant support! It is recommented that named constants are used instead of #define's Can be included in functions or not. The syntax: "const a = 1, b = a+<2>;" Now correctly handled. - Enhanced "EXPTYPE.H" & "SFXTYPE.H" which use named constants instead of #defines. (In the AlternativeIncludes sub-folder). To activate add ";AlternativeIncludes\" before "Includes\" in the include path in the ini file. - All settings are read out of an ini file. This Ini file must have the same name as the exe, but with a '.ini' extension. SearchPaths: Semicolon(";") delemited list of paths to search IncludePaths: Semicolon(";") delemited list of paths to search EnableBASMExtentions= Controls is support for Mafia's BASM enhancments are enabled AssemblerExeName: The assembler's exe name to invoke AssemblerParams: The parameters to invoke the assemebler with AssemblerOutputFile: Not currently supported leave blank CompileAndDoNotAssemble: Controls if it just compiles, and doesnt create a cob PauseOnException: Controls if the application pauses when an displaying an error at the end of the application PauseAtEnd: Controls if the application pauses at the end of the application AutoEmitLastRet: Controls if the compiler auto-emits a "pushc 0; ret;" if the last line of a method does not have a "ret" in it History: v0.76: - Updated version of basm.exe used - Fixed history with some missing info v0.75: - Updated preprocessor. Now correctly reports the line number, colomn and filename of an error - Converted a bunch of global defines to a bunch of named constants (better error reporting) v0.7: - Hexadecimal support now works - Fixed bug in how constant numbers were generated in basm v0.6: - Updated the version of basm.exe used - Fixed bug in how the Bitwise And opcode was generated - Changed the keywork 'basm' to '__basm' v0.5: - Updated the version of basm.exe used - Fixed move now & turn now are handled. - Fixed minor bug in the preprocessor code which caused it to fail sometimes v0.4b: - Fixed Named constant support. v0.4: - Includes a bug fix. The compiler now correctly handles the end of functions properly.