]> git.sur5r.net Git - cc65/blobdiff - doc/ca65.sgml
Ignore start address in cbm_opendir. Rearrange the code somewhat to make it
[cc65] / doc / ca65.sgml
index 44dfd71915e89a17412ca51f1b028d0615d3f20c..faca0f9aa562453a2630d8d69aa4cb544e95d15a 100644 (file)
@@ -107,6 +107,7 @@ Long options:
   --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
@@ -153,6 +154,13 @@ Here is a description of all the command line options:
   command for a list of emulation features.
 
 
+  <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>
 
@@ -267,7 +275,8 @@ Here is a description of all the command line options:
   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">.
 
 
   <tag><tt>-U, --auto-import</tt></tag>
@@ -299,6 +308,23 @@ Here is a description of all the command line options:
 <p>
 
 
+
+<sect>Search paths<label id="search-paths"><p>
+
+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/-I/ option on the command line.
+</enum>
+
+
+
 <sect>Input format<p>
 
 <sect1>Assembler syntax<p>
@@ -1739,7 +1765,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.
 
 
@@ -1767,6 +1793,34 @@ Here's a list of all control commands and a description, what they do:
        .autoimport     +       ; Switch on auto import
   </verb></tscreen>
 
+<sect1><tt>.BANKBYTES</tt><label id=".BANKBYTES"><p>
+
+  Define byte sized data by extracting only the bank byte (that is, bits 16-23) from
+  each expression.  This is equivalent to <tt><ref id=".BYTE" name=".BYTE"></tt> with
+  the operator '^' prepended to each expression in its list.
+
+  Example:
+
+  <tscreen><verb>
+        .define MyTable TableItem0, TableItem1, TableItem2, TableItem3
+
+       TableLookupLo:   .lobytes   MyTable
+       TableLookupHi:   .hibytes   MyTable
+       TableLookupBank: .bankbytes MyTable
+  </verb></tscreen>
+
+  which is equivalent to
+
+  <tscreen><verb>
+        TableLookupLo:   .byte &lt;TableItem0, &lt;TableItem1, &lt;TableItem2, &lt;TableItem3
+       TableLookupHi:   .byte &gt;TableItem0, &gt;TableItem1, &gt;TableItem2, &gt;TableItem3
+       TableLookupBank: .byte ^TableItem0, ^TableItem1, ^TableItem2, ^TableItem3
+  </verb></tscreen>
+
+  See also: <tt><ref id=".BYTE" name=".BYTE"></tt>,
+            <tt><ref id=".HIBYTES" name=".HIBYTES"></tt>,
+            <tt><ref id=".LOBYTES" name=".LOBYTES"></tt>
+
 
 <sect1><tt>.BSS</tt><label id=".BSS"><p>
 
@@ -2424,6 +2478,46 @@ Here's a list of all control commands and a description, what they do:
                .globalzp foo, bar
   </verb></tscreen>
 
+<sect1><tt>.HIBYTES</tt><label id=".HIBYTES"><p>
+
+  Define byte sized data by extracting only the high byte (that is, bits 8-15) from
+  each expression.  This is equivalent to <tt><ref id=".BYTE" name=".BYTE"></tt> with
+  the operator '>' prepended to each expression in its list.
+
+  Example:
+
+  <tscreen><verb>
+        .lobytes         $1234, $2345, $3456, $4567
+       .hibytes         $fedc, $edcb, $dcba, $cba9
+  </verb></tscreen>
+
+  which is equivalent to
+
+  <tscreen><verb>
+        .byte            $34, $45, $56, $67
+       .byte            $fe, $ed, $dc, $cb
+  </verb></tscreen>
+
+  Example:
+
+  <tscreen><verb>
+        .define MyTable TableItem0, TableItem1, TableItem2, TableItem3
+
+       TableLookupLo:   .lobytes MyTable
+       TableLookupHi:   .hibytes MyTable
+  </verb></tscreen>
+
+  which is equivalent to
+
+  <tscreen><verb>
+        TableLookupLo:   .byte &lt;TableItem0, &lt;TableItem1, &lt;TableItem2, &lt;TableItem3
+       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>,
+            <tt><ref id=".BANKBYTES" name=".BANKBYTES"></tt>
+
 
 <sect1><tt>.I16</tt><label id=".I16"><p>
 
@@ -2745,6 +2839,47 @@ Here's a list of all control commands and a description, what they do:
   </verb></tscreen>
 
 
+<sect1><tt>.LOBYTES</tt><label id=".LOBYTES"><p>
+
+  Define byte sized data by extracting only the low byte (that is, bits 0-7) from
+  each expression.  This is equivalent to <tt><ref id=".BYTE" name=".BYTE"></tt> with
+  the operator '<' prepended to each expression in its list.
+
+  Example:
+
+  <tscreen><verb>
+        .lobytes         $1234, $2345, $3456, $4567
+       .hibytes         $fedc, $edcb, $dcba, $cba9
+  </verb></tscreen>
+
+  which is equivalent to
+
+  <tscreen><verb>
+        .byte            $34, $45, $56, $67
+       .byte            $fe, $ed, $dc, $cb
+  </verb></tscreen>
+
+  Example:
+
+  <tscreen><verb>
+        .define MyTable TableItem0, TableItem1, TableItem2, TableItem3
+
+       TableLookupLo:   .lobytes MyTable
+       TableLookupHi:   .hibytes MyTable
+  </verb></tscreen>
+
+  which is equivalent to
+
+  <tscreen><verb>
+        TableLookupLo:   .byte &lt;TableItem0, &lt;TableItem1, &lt;TableItem2, &lt;TableItem3
+       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>,
+            <tt><ref id=".BANKBYTES" name=".BANKBYTES"></tt>
+
+
 <sect1><tt>.LOCAL</tt><label id=".LOCAL"><p>
 
   This command may only be used inside a macro definition. It declares a
@@ -3808,7 +3943,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/