]> git.sur5r.net Git - cc65/blobdiff - doc/ca65.sgml
Added size checking code contributed by Marco van den Heuvel.
[cc65] / doc / ca65.sgml
index 68fec3f06e9912e35ca7296c97f2b7498c1c1dea..90f19b065e7a512be428be3367fa623127677216 100644 (file)
@@ -104,9 +104,11 @@ Short options:
 
 Long options:
   --auto-import                Mark unresolved symbols as import
+  --bin-include-dir dir Set a search path for binary includes
   --cpu type           Set cpu type
   --debug-info         Add debug info to object file
   --feature name       Set an emulation feature
+  --forget-inc-paths    Forget include search paths
   --help               Help (this text)
   --ignore-case                Ignore case of symbols
   --include-dir dir    Set an include directory search path
@@ -122,13 +124,23 @@ Long options:
 ---------------------------------------------------------------------------
 </verb></tscreen>
 
-
+                                     
 <sect1>Command line options in detail<p>
 
 Here is a description of all the command line options:
 
 <descrip>
 
+  <label id="option--bin-include-dir">
+  <tag><tt>--bin-include-dir dir</tt></tag>
+
+  Name a directory which is searched for binary include files. The option
+  may be used more than once to specify more than one directory to search. The
+  current directory is always searched first before considering any
+  additional directories. See also the section about <ref id="search-paths"
+  name="search paths">.
+
+
   <label id="option--cpu">
   <tag><tt>--cpu type</tt></tag>
 
@@ -153,6 +165,14 @@ Here is a description of all the command line options:
   command for a list of emulation features.
 
 
+  <label id="option--forget-inc-paths">
+  <tag><tt>--forget-inc-paths</tt></tag>
+
+  Forget the builtin include paths. This is most useful when building
+  customized assembler modules, in which case the standard header files should
+  be ignored.
+
+
   <label id="option-g">
   <tag><tt>-g, --debug-info</tt></tag>
 
@@ -164,11 +184,13 @@ Here is a description of all the command line options:
   monitor.
 
 
+  <label id="option-h">
   <tag><tt>-h, --help</tt></tag>
 
   Print the short option summary shown above.
 
 
+  <label id="option-i">
   <tag><tt>-i, --ignore-case</tt></tag>
 
   This option makes the assembler case insensitive on identifiers and labels.
@@ -176,6 +198,7 @@ Here is a description of all the command line options:
   <tt><ref id=".CASE" name=".CASE"></tt> control command.
 
 
+  <label id="option-l">
   <tag><tt>-l, --listing</tt></tag>
 
   Generate an assembler listing. The listing file will always have the
@@ -183,6 +206,7 @@ Here is a description of all the command line options:
   may change in future versions.
 
 
+  <label id="option--list-bytes">
   <tag><tt>--list-bytes n</tt></tag>
 
   Set the maximum number of bytes printed in the listing for one line of
@@ -191,6 +215,7 @@ Here is a description of all the command line options:
   number of printed bytes.
 
 
+  <label id="option--macpack-dir">
   <tag><tt>--macpack-dir dir</tt></tag>
 
   This options allows to specify a directory containing macro files that are
@@ -201,12 +226,14 @@ Here is a description of all the command line options:
   when debugging the builtin macro packages.
 
 
+  <label id="option-mm">
   <tag><tt>-mm model, --memory-model model</tt></tag>
 
   Define the default memory model. Possible model specifiers are near, far and
   huge.
 
 
+  <label id="option-o">
   <tag><tt>-o name</tt></tag>
 
   The default output name is the name of the input file with the extension
@@ -215,12 +242,14 @@ Here is a description of all the command line options:
   the source file, or, if -o is given, the full path in this name is used.
 
 
+  <label id="option--pagelength">
   <tag><tt>--pagelength n</tt></tag>
 
   sets the length of a listing page in lines. See the <tt><ref
   id=".PAGELENGTH" name=".PAGELENGTH"></tt> directive for more information.
 
 
+  <label id="option-s">
   <tag><tt>-s, --smart-mode</tt></tag>
 
   In smart mode (enabled by -s or the <tt><ref id=".SMART" name=".SMART"></tt>
@@ -246,6 +275,7 @@ Here is a description of all the command line options:
   compiler, see there for a list.
 
 
+  <label id="option-v">
   <tag><tt>-v, --verbose</tt></tag>
 
   Increase the assembler verbosity. Usually only needed for debugging
@@ -253,6 +283,7 @@ Here is a description of all the command line options:
   verbose output.
 
 
+  <label id="option-D">
   <tag><tt>-D</tt></tag>
 
   This option allows you to define symbols on the command line. Without a
@@ -262,14 +293,17 @@ Here is a description of all the command line options:
   you may have to quote the expression.
 
 
+  <label id="option-I">
   <tag><tt>-I dir, --include-dir dir</tt></tag>
 
   Name a directory which is searched for include files. The option may be
   used more than once to specify more than one directory to search. The
   current directory is always searched first before considering any
-  additional directories.
+  additional directories. See also the section about <ref id="search-paths"
+  name="search paths">.
 
 
+  <label id="option-U">
   <tag><tt>-U, --auto-import</tt></tag>
 
   Mark symbols that are not defined in the sources as imported symbols. This
@@ -281,6 +315,7 @@ Here is a description of all the command line options:
   which is not always true for assembler programmers.
 
 
+  <label id="option-V">
   <tag><tt>-V, --version</tt></tag>
 
   Print the version number of the assembler. If you send any suggestions
@@ -299,6 +334,32 @@ Here is a description of all the command line options:
 <p>
 
 
+
+<sect>Search paths<label id="search-paths"><p>
+
+Normal include files are searched in the following places:
+
+<enum>
+<item>The current directory.
+<item>A compiled-in directory, which is often <tt>/usr/lib/cc65/asminc</tt>
+      on Linux systems.
+<item>The value of the environment variable <tt/CA65_INC/ if it is defined.
+<item>A subdirectory named <tt/asminc/ of the directory defined in the
+      environment variable <tt/CC65_HOME/, if it is defined.
+<item>Any directory added with the <tt/<ref id="option-I" name="-I">/ option
+on the command line.
+</enum>
+
+Binary include files are searched in the following places:
+
+<enum>
+<item>The current directory.
+<item>Any directory added with the <tt/<ref id="option--bin-include-dir"
+name="--bin-include-dir">/ option on the command line.
+</enum>
+
+
+
 <sect>Input format<p>
 
 <sect1>Assembler syntax<p>
@@ -841,7 +902,7 @@ So
 <tscreen><verb>
         .proc   foo
                 ...
-        .endscope
+        .endproc
 </verb></tscreen>
 
 is actually the same as
@@ -1724,9 +1785,10 @@ Here's a list of all control commands and a description, what they do:
   Add an assertion. The command is followed by an expression, an action
   specifier, and an optional message that is output in case the assertion
   fails. If no message was given, the string "Assertion failed" is used. The
-  action specifier may be one of <tt/warning/ or <tt/error/. The assertion is
-  evaluated by the assembler if possible, and also passed to the linker in the
-  object file (if one is generated). The linker will then evaluate the
+  action specifier may be one of <tt/warning/, <tt/error/, <tt/ldwarning/ or
+  <tt/lderror/. In the former two cases, the assertion is evaluated by the
+  assembler if possible, and in any case, it's also passed to the linker in
+  the object file (if one is generated). The linker will then evaluate the
   expression when segment placement has been done.
 
   Example:
@@ -1739,7 +1801,7 @@ Here's a list of all control commands and a description, what they do:
   when the output file is written, and abort with an error if this is not
   the case. More complex expressions are possible. The action specifier
   <tt/warning/ outputs a warning, while the <tt/error/ specifier outputs
-  an error message. In the latter case, generation if the output file is
+  an error message. In the latter case, generation of the output file is
   suppressed in both the assembler and linker.
 
 
@@ -1791,7 +1853,7 @@ Here's a list of all control commands and a description, what they do:
        TableLookupBank: .byte ^TableItem0, ^TableItem1, ^TableItem2, ^TableItem3
   </verb></tscreen>
 
-  See also: <tt><ref id=".BYTE" name=".BYTE"></tt>, 
+  See also: <tt><ref id=".BYTE" name=".BYTE"></tt>,
             <tt><ref id=".HIBYTES" name=".HIBYTES"></tt>,
             <tt><ref id=".LOBYTES" name=".LOBYTES"></tt>
 
@@ -2488,8 +2550,8 @@ Here's a list of all control commands and a description, what they do:
        TableLookupHi:   .byte &gt;TableItem0, &gt;TableItem1, &gt;TableItem2, &gt;TableItem3
   </verb></tscreen>
 
-  See also: <tt><ref id=".BYTE" name=".BYTE"></tt>, 
-            <tt><ref id=".LOBYTES" name=".LOBYTES"></tt>, 
+  See also: <tt><ref id=".BYTE" name=".BYTE"></tt>,
+            <tt><ref id=".LOBYTES" name=".LOBYTES"></tt>,
             <tt><ref id=".BANKBYTES" name=".BANKBYTES"></tt>
 
 
@@ -2849,8 +2911,8 @@ Here's a list of all control commands and a description, what they do:
        TableLookupHi:   .byte &gt;TableItem0, &gt;TableItem1, &gt;TableItem2, &gt;TableItem3
   </verb></tscreen>
 
-  See also: <tt><ref id=".BYTE" name=".BYTE"></tt>, 
-            <tt><ref id=".HIBYTES" name=".HIBYTES"></tt>, 
+  See also: <tt><ref id=".BYTE" name=".BYTE"></tt>,
+            <tt><ref id=".HIBYTES" name=".HIBYTES"></tt>,
             <tt><ref id=".BANKBYTES" name=".BANKBYTES"></tt>
 
 
@@ -3917,7 +3979,6 @@ For better orthogonality, the assembler defines similar symbols as the
 compiler, depending on the target system selected:
 
 <itemize>
-<item><tt/__ACE__/ - Target system is <tt/ace/
 <item><tt/__APPLE2__/ - Target system is <tt/apple2/
 <item><tt/__APPLE2ENH__/ - Target system is <tt/apple2enh/
 <item><tt/__ATARI__/ - Target system is <tt/atari/