]> git.sur5r.net Git - cc65/blobdiff - doc/cc65.sgml
Since we have now builtin search paths, we need to be able to forget them,
[cc65] / doc / cc65.sgml
index 165ae35346560c3d9c859610a000d47d41a13da7..443f12798b87b145ee15028c074b27e00876e271 100644 (file)
@@ -131,7 +131,7 @@ Here is a description of all the command line options:
   This options allows finer control about speed vs. size decisions in the code
   generation and optimization phases. It gives the allowed size increase
   factor (in percent). The default is 100 when not using <tt/-Oi/ and 200 when
-  using <tt/-Oi/ (<tt/-Oi/ is the same as <tt/--codesize&nbsp;200/).
+  using <tt/-Oi/ (<tt/-Oi/ is the same as <tt/-O --codesize&nbsp;200/).
 
 
   <tag><tt>--cpu CPU</tt></tag>
@@ -243,6 +243,10 @@ Here is a description of all the command line options:
   <item>cc65
   </itemize>
 
+  Please note that the compiler does not support the c99 standard and never
+  will. c99 mode is actually c89 mode with a few selected c99 extensions
+  (// comments for example).
+
 
   <tag><tt>-t target, --target target</tt></tag>
 
@@ -336,7 +340,7 @@ Here is a description of all the command line options:
   runtime functions would have been called, even if the generated code is
   larger. This will not only remove the overhead for a function call, but will
   make the code visible for the optimizer. <tt/-Oi/ is an alias for
-  <tt/--codesize&nbsp;200/.
+  <tt/-O --codesize&nbsp;200/.
 
   <tt/-Or/ will make the compiler honor the <tt/register/ keyword. Local
   variables may be placed in registers (which are actually zero page
@@ -394,10 +398,23 @@ The compiler will accept one C file per invocation and create a file with
 the same base name, but with the extension replaced by ".s". The output
 file contains assembler code suitable for the use with the ca65 macro
 assembler.
+                                               
+Include files in single quotes are searched in the following places:
+<enum>
+<item>The current directory.
+<item>The value of the environment variable <tt/CC65_INC/ if it is defined.
+<item>Any directory added with the <tt/-I/ option on the command line.
+</enum>
 
-In addition to the paths named in the <tt/-I/ option on the command line, the
-directory named in the environment variable <tt/CC65_INC/ is added to the
-search path for include files on startup.
+Include files in angle brackets are searched in the following places:
+<enum>
+<item>A compiled in directory which is often <tt>/usr/lib/cc65/include</tt> on
+      Linux systems.
+<item>The value of the environment variable <tt/CC65_INC/ if it is defined.
+<item>A subdirectory named <tt/include/ 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>
 
 
 
@@ -424,6 +441,10 @@ and the one defined by the ISO standard:
        conventions (see below).  It means that you must not mix pointers to
        those functions with pointers to user-written, not-fastcall functions.
        <p>
+<item> The <tt/volatile/ keyword doesn't have an effect. This is not as bad
+        as it sounds, since the 6502 has so few registers that it isn't
+        possible to keep values in registers anyway.
+       <p>
 </itemize>
 
 There may be some more minor differences I'm currently not aware of. The
@@ -1061,6 +1082,13 @@ a future version. Instead use the format specifiers from the table above:
 <p>
 
 
+<sect>Implementation-defined behavior<p>
+
+This section describes the behavior of cc65 when the standard describes the
+behavior as implementation-defined.
+
+(to be done)
+
 <sect>Bugs/Feedback<p>
 
 If you have problems using the compiler, if you find any bugs, or if you're