13.4 startup.h--

  -----------------

 

      This file contains the source code which is compiled by the compiler

  into the startup file, for all supported compilers of types of output

  files. This file must be located either in the directory with the compiler,

  or in the directory with the library files. It is automatically included in

  the project by the compiler and switching it on with 'include' can have

  unwanted results.

 

      The program startup block can be used (if you indicate this using a

  command-line option or a directive) to parse the command line into

  parameters, to store the environment variable, to support the operation of

  ATEXIT, to change the size of the memory available for COM files, and many

  other preparatory operations. If you compile your file without using any

  command-line options, and there is no c--.ini file, and there are also no

  directives in your file, then when you compile a COM file there will be a

  block included which changes the size of the available memory and the

  signature 'SPHINXC--'.

 

      If you are compiling an EXE file (except for a DOS file with tiny

  model) and you use the directive 'jumptomain NONE' or the command-line

  switch '/j0', then the compiler will not use startup.h for this project. It

  also will not use this file when compiling COM files if, besides '/j0', you

  do not use in this project command-line parsing /p or /argc, or ATEXIT

  (/at), or the rounding variable address (/env), or clear postarea (/cpa),

  or the compression stub CTRL-C (/c).

 

      In addition to the program startup block, startup.h-- contains

  the following dynamic functions:

 

  void CLEARPOSTAREA( (E)AX );  - clear postarea data

  unsigned int PARAMSTR( ECX ); - get address of a  command-line argument

  unsigned int PARAMCOUNT();    - get the number of the command line argument

 

      When parsing the command line into components for 32-bit programs there

  is support for long file names. For 16-bit programs support for parsing the

  command line with long file names is included if you include at the

  beginning of the program:

 

  #define _USELONGNAME TRUE

 

  or include the option 'd=_USELONGNAME' in c--.ini or on the command line.