COMMAND LINE SYNTAX Invoke the command line version of the compiler as follows: ASICC filename option1 option2 option3[...optionN] or ASICC filename.PRJ option1 option2 option3[...optionN] Where: filename is the name of the source program or project file to be compiled. Source files must have the file extension ".ASI", although the extension may be omitted from the command line. filename.PRJ Project files may be specified instead of a source file name. These have a ".PRJ" extension, and the ".PRJ" extension must be typed if you want ASIC to use the project file for the compile. Specifying a project file tells ASIC to look for a project file (created by the integrated environment), and use the options from this file during the compile. ASIC will then strip off the ".PRJ" extension and try to compile a file with the same filename as the ".PRJ" file, but with a ".ASI" extension. optionN specifies any options desired. No options are required, but more than one can be specified as long as you insert a space between each one. COMPILER OPTIONS The following compiler switches are currently available for ASIC: Switch Description B/xxx BUILD--Use this option to specify the type of output file ASIC is to produce. The "xxx" on this option should be one of the following: xxx= COM <--produce .COM file EXE <--produce .EXE file OBJ <--produce .EXE file via OBJ file using DOS LINK command optionally linking with other OBJ or LIB files. Default: ASIC will generate a ".COM" output file. C CONTINUE--ASIC will not pause after messages are issued, but will continue compiling. Default: ASIC will pause after each error message. Compilation will resume after you press a key. D DISKLIST--ASIC will echo all screen messages to a disk file named "progname.LST". The format is the same produced by PRINTLIST. This allows you to compile at higher speed, and print the source listing later from the disk file via the DOS print spooler. Default: ASIC does not produce a ".LST" file. DEC DECIMAL MATH--ASIC will enable the Decimal Math Option. When this option is selected, you may specify decimal numbers (e.g., BALANCE@, 123.456789, etc.) which can hold numbers in the range +/-999,999,999,999.99999. This option does increase the size of your ".COM" or ".EXE" file. Default: ASIC does not enable the Decimal Math Option. E EMATH--ASIC will enable the Extended Math Option. When this option is selected, you may specify long integers (e.g., VELOCITY&, 123456789&, etc.) which can hold a larger range of values (+2,147,483,647 to -2,147,483,647). This option does increase the size of your ".COM" or ".EXE" file by a couple of hundred bytes. Default: ASIC does not enable the Extended Math Option. L LIST ALL--ASIC will list each source line as it compiles it. Default: ASIC will list only source lines with compile errors. Comment: Use of this switch will slow compile speeds slightly due to the additional screen I/O. LIB=xxx LINK LIBRARY--Specifies libraries that ASIC should pass to the DOS LINKer. This option is ONLY used by ASIC when you compile with the "B/OBJ" option. It is ignored when you compile with the "B/COM" or "B/EXE" options. A link library is usually used to store commonly used subroutines in OBJECT format. You can create assembly language subroutines for ASIC, and store them in a library using the Borland TLIB Program or the Microsoft LIB Program. The "xxx" should specify one or more library file specs with each library spec separated with a "+" character. See Chapter 10 of the ASIC manual for more information. Examples: LIB=C:\ASIC\MATH.LIB LIB=C:\DOS\MISC.LIB+C:\LIB\COMMON The first example shows a single library spec for MATH.LIB library. The second example shows how to include more than one library--MISC.LIB and COMMON.LIB libraries. Comments: When specifying libraries, you may omit the file extension, if it is ".LIB". LNK=xxx LINKer LOCATION--Specifies the location of the DOS LINK.EXE program to ASIC. This option is ONLY used when compiling with the "B/OBJ" option. Unless the LINK.EXE which is provided with MS DOS is located in the default ASIC directory, ASIC may not be able to locate the program, and will thus be unable to LINK your program to create a ".EXE" file. The LINK.EXE should be included on your MS DOS distribution disks (if it is not already in your DOS directory). "xxx" should specify a file path. For more information on this option see Chapter 10 of the ASIC Manual. Example: LNK=C:\DOS3 Default: By default, ASIC will attempt to locate the linker in the default directory. If it can't find the LINK.EXE file there, it tries to find it under the "C:\DOS" directory. If it can't find it there, it gives up and issues an error message. OBJ=xxx ADDITIONAL OBJECT FILES--Specifies a list of additional object files that ASIC should link with the main object file. This option is ONLY used by ASIC when you are compiling with the "B/OBJ" option. You do not need to include the name of your ASIC program here, that is done automatically by ASIC. When you compile with this option, ASIC creates an OBJ file which can be linked using the DOS LINKer. Optionally, you can included "CALL SUB" statements in your program which reference separately compiled OBJ files. This option allows you to pass other object file names to the DOS LINKer to resolve these external references. The "xxx" parameter should include file specs for one or more object files with a "+" character separating each object file. See Chapter 10 of the ASIC Manual for more details. Examples: OBJ=C:\ASIC\MYSUB.OBJ OBJ=C:\LIB\SUB1.OBJ+C:\OBJ\SUB2 The first example specifies a single object to be passed to the linker. The second example illustrates two object files: SUB1.OBJ and SUB2.OBJ. Comments: The file extension may be omitted if it is ".OBJ". P PRINTLIST--ASIC will echo all messages which appear on the screen to the printer. Output to the printer will be paged with header lines identifying the program name, and the date/time compiled. Default: ASIC will not send any messages to the printer Comments: Even though output to the printer is buffered, this option will slow compile speeds considerably. The compiler typically compiles only as fast as your printer can print the messages. An alternative to this switch is the DISKLIST option. S SYMTAB--ASIC will produce a formatted Symbol Table in a file named "progname.SYM". The symbol table contains a list of all variables, labels, and internally created compiler addresses. Default: ASIC does not produce a ".SYM" file. STK=n STACK SIZE--Specifies the size of the stack that you wish ASIC to create. This option is ignored when you are using the "B/COM" option. "n" equals the size of the stack you want in bytes. Default: By default, ASIC sets the stack size to 2000 bytes (4000 bytes if you are compiling with debugging mode). Examples: STK=512 In the above example, the stack size would be set to 512 bytes. Comments: The default stack sizes that ASIC provides are normally adequate, however, they may be larger than your program may need. If you are interested in minimizing your program's memory usage, you may experiment with the STK option, however, setting the size too small can cause unpredictable results. This option is recommended only for experienced ASIC users. The stack size must be in the range 16 to 32767. ASIC will not allow you to create a stack size smaller than 4000 bytes when compiling with debugging mode on. If you specify a smaller value in this instance, ASIC will override it with a size of 4000. X DEBUG--ASIC will generate debugging code in the ".COM" or ".EXE" file and a ".DBG" file for use by the integrated environment debugger. Default: ASIC does not generate debugging information. Comment: If you are running from the integrated environment, ASIC sets this option on by default. You may turn it off in the Compile menu, should you so desire. COMPILE EXAMPLES Example 1: Compile "MYFILE.ASI" with default compiler options: ASICC MYFILE Example 2: Compile "MYPROG.ASI", Listing all source lines, writing a compile listing to a disk file for printing later. The listing file will be called "MYPROG.LST": ASICC MYPROG L D Example 3: Compile "FILEX.ASI", don't pause for any errors, and print the errors on the printer: ASICC FILEX C P Example 4: Compile "CRUNCH.ASI" and allow long (32 bit) integer numbers: ASICC CRUNCH E Example 5: Compile "BIGPROG.ASI" and create a ".EXE" format output file: ASICC BIGPROG B/EXE Example 6: Compile "SAMPLE.ASI" and create a ".EXE" format output file, with a stack size of 2500 bytes. ASICC SAMPLE B/EXE STK=2500 Example 7: Here's a more complex example, which demonstrates the use of the B/OBJ build options. Assume we have a program called "MAIN.ASI" which calls three assembly language subroutines, called "A", "B", and "C". Subroutine "A" is stored in file "A.OBJ". Subroutines "B" and "C" are stored in a library called "ASMSUB.LIB". The DOS LINK.EXE file is contained in the subdirectory "C:\UTIL". Here is the ASICC command to compile MAIN.ASI and link in the subroutines called using "CALL SUB" in the MAIN.ASI program: ASICC MAIN B/OBJ OBJ=A LIB=ASMSUB LNK=C:\UTIL PROGRAM PROJECT FILE The ASIC integrated environment automatically stores compile options for each program in a file called "progname.PRJ". Whenever you compile from the integrated editor, ASIC will always check for this file, and set compile options based on the file. Since MS DOS has a restriction of 128 characters for a command line, you may find it useful to use the integrated environment to set your compile options for a program, even if you are not using the environment for editing. This is especially true when you are using the "B/OBJ" option, where you frequently may be passing many parameters. Then, you may type the program project file name instead of the program source file name when compiling from the command line and ASIC will use the options from the ".PRJ" file for that compile. You may still specify additional compile line options when compiling using the ".PRJ" file option. In this case, the option from the command line will override any corresponding option from the ".PRJ" file. Although the ".PRJ" file is a standard DOS text file, it is recommended that you not edit this file using a text editor--if incorrectly modified, compiler results may be unpredictable. Example: ASICC myfile.prj LIB=NEWLIB In this example, all options set in the "MYFILE.PRJ" file will be read and used by the ASIC command line compiler, except for the "LIB" option which was specified on the command line. For this compile, ASIC will set the LIB option to "NEWLIB" regardless of what the LIB option was set to in the project file. ASIC will then try to compile a source file called "MYFILE.ASI". |