Code: Select all
Some features of SOLID C pakage for Estex OS
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C-COMPILER
Return codes of compiler (1st and 2nd pass):
00h - Ok
0FFh - errors/warnings, memory allocation or file errors
1st pass
1. To compile "another" sources write "-k" option.
2. In options -dNAME, -jN, -oNAME and -rP:S:H spaces are not supposed.
3. Maximum length of full path to file (disk\dir\file.ext) is 80 symbols.
4. File "file.err" is made always in the current directory of input .c file.
5. Rules for includes:
#include <file.ext> - search only in "INCLUDE" subdirectory of
compiler place.
#include "file.ext" - search only in current subdirectory of input
.c file.
Path is not allowed in include directive!
Name of "INCLUDE" subdirectory is reserved.
2nd pass
1. Source files may be larger than "firm" version allow to compile.
2. Fixed two "firm" errors:
a) TMC-files extension now allowed
b) hang up when compile extra large sources
ASSEMBLER
Note: Due to assembler AS is compatible with Microsoft's assembler M80
by assembler text format, M80 documentation may be used as documentation
for assembler AS. Assembler AS does not support some directives of M80
(in general it's listing control).
1. Maximum filename length (with disk letter and subdirectories) is
64 symbols.
2. Pseudocommand NAME('...') may include double quotes (").
3. Name of include file may be written without extention. In this case
extention ".asm" will be used by default. The same rule is for
output asm-file.
4. There are three variants of undocumented registers spelling:
HX/XH LX/XL
HY/YH LY/YL
HIX/IXH LIX/IXL
5. Pseudocommand "EQU" and "=" are the same.
6. Maximum length of global label names that are transmitted to
object file (.rel) depends on a mode of assembler work:
6 symbols - when "-t" option is used
8 symbols - by default
30 symbols - when "-x" option is used (extended rel-format)
Library maker does not work with extended rel-format. So, if you need
compile library files, option "-x" must not be used.
7. Return codes for assembler:
00h - Ok
0FFh - errors/warnings, memory allocation or file errors.
LINKER
When you link c-program with "clib.irl" library you need to set option
"/gXMAIN". It will be take control to startup-code of c-program.
See "clib" sources for details.
1. Linker works only with names of input source files. Disk and path
in filenames are not supported.
2. Fixed "firm" bugs:
a) wrong work with "@list" file
b) requests to request-files
3. EXE-header has parameters: ORG = 4100h, Stack = 0C000h.
(ORG value may be changed by option "/r").
4. File "list" consist of the only command line with arguments.
Different arguments may be started from new line. Empty line
must be last line in the file. Amount of bytes in file is
limited to 256 bytes.
5. Library search: firstly *.irl, then *.rel. Else error message
"file *.rel not found" appears.
6. Maximum length of identifire name is 30 symbols.
7. Label ?labels is not wrote to sym-file and to screen. They
are visible only by option /Q.
8. Linker feels increasing of 16kb limit for dll-libraries (warning
appears).
9. Return codes for linker:
00h - Ok
0FFh - memory allocation or file errors.
LIBRARY MAKER
1. Type of opened input file is defined by content, nt by extention.
2. When library making and library name is the same as input filename,
you need write library extention to avoid double adding of files.
Extention may be missed in rel-filenames. Filenames are separated by
spaces or commas.
3. Global symbols "*" and "?" are supported only in module extracted
mode (option "e"). In another modes real filenames must be wrote.
4. Path is supported only for library file. For rel-files path is not
supported and library path is used instead.
5. When option l(ist) is used, sizes "Code size: ..." and
"Data size: ..." are showed in decimal mode.
6. When options d(ump) and l(ist) are used, screen output may be
stop/start by any key pressing. Esc-pressing means quit mode.
7. Return codes for library maker:
00h - Ok
0FFh - working errors or file errors.