------------------------------------------------ Requirements, installation and usage ------------------------------------ YAEC 24a -------- Requirements : Compiler: Should work on v37+, 68000 YAEC needs Frank Willes PhxAss and PhxLnk (Aminet:dev/asm/) to be somewhere in the command-path. If its not, add it with the AmigaDOS PATH command. Generated exes: Minimum v39 (3.0) of the operatingsystem. Minimum 68020 cpu and 881 fpu. Installation: Unpack yaec.lha to ram: Copy the drawer yaec anywhere. Put "ASSIGN E: " in user-startup. Put "PATH E:bin ADD" in user-startup. Usage : Commandline options : SOURCE/A - required, the source file name. NILCHECK/S - insert code to check for nil-ptrs. PTRCHECK/S - like above, but more strict. Does Throw("PTR", linenumber) for ptrs with values below 4096, including all negative values. HOLD/S - waits for a RETURN before exiting. WB/S - flips the workbench screen to front. OPTI/S - enable maximum optimisation. currently sets assembler to max opti. SHOWFILENAME/S - shows the name of SOURCE file in the output. TCL/N - typechecklevel (-1/0/1). 0 is default. (rare use. 1 is not very useable for now) LINKARGS/K - optional linker args. not normally needed. ASMARGS/K - optional assembler args. not normally needed. DEFINE/K - #define global macro(s) without parameters or body. ex : DEFINE DEBUG Macro is visible to any source. v2.2 : Multiple defines separated with commas ",". INDEXCHECK/S - check index-expressions in arrays/lists/strings. does Throw("INDX", line) if iexp is <0 OR >maxindex. STACKCHECK/S - check early in procedures that the stack is not getting too small. does Throw("STCK", line) if it is. CHECK/S - just check source without generating any code. (binary modules might get created on success) SHOW/S - for modules only. generates showmodule-like output. NOBINARYUPDATE/S - binary (.b) modules will not get created. ASCIIFIRST/S - only use binary (.b) when ascii (.m) is not available. Filenames : YAEC handles files ending with .e .m and .b .e This is the extension for main, linkobject and library sources. .m This is the extension for modules (ascii). .b This is the extension for binary modules. If YAEC is given a filname without an extension, it tries to open the file in this order (.e .m .b). Compiling an .m file from the commandline automatcally creates a .b file (after compilation and everything went well). What happens if trying to compile a .b (binary) file ? It will not be compiled! What will happen is that a showmodule-like output is generated to stdout. Operation: YAEC may work in ascii-only mode, binary only (modules) or mixed. When searching for a module that is used by the "top" module or main-source, binary (.b) modules will be loaded if available, else the ascii one (.m) is loaded. (.e named modules works too for compability) V2.2+ : YAEC now automatically takes the newest file if both ascii and binary versions exists. If ascii is newer, it will be loaded and if all went well, a binary file gets created. Next time the binary file will be loaded. (as it is now the newest). There is no need for a "build-tool". An example source tree : application.e mygui.m supportfunctions.b e:modules/ gadtools.b libraries/ gadtools.b Check hole application : (sources may be binary/ascii or mixture) > yaec CHECK application Compile hole application : > yaec application Check module : (create .b) (sub-modules will also be checked) > yaec mygui Show binary module : > yaec supportfunctions Its quite simple, .e-files gets compiled by default, .m-files gets checked by default (on success, creates .b), .b-files gets showed by default. For those interested, binary modules always starts with "BMOD". Oter than that, the format of binary modules is private.