]> git.sur5r.net Git - cc65/commitdiff
Improved the compiler documentation, a little bit. 151/head
authorGreg King <gregdk@users.sf.net>
Tue, 26 May 2015 15:23:54 +0000 (11:23 -0400)
committerGreg King <gregdk@users.sf.net>
Tue, 26 May 2015 15:23:54 +0000 (11:23 -0400)
doc/cc65.sgml
doc/customizing.sgml

index fa6b824c6a64778d872079bcb8890593743b1d2c..ac03c53b295f024b4a17168b3e619bfcc4c43ea2 100644 (file)
@@ -3,7 +3,7 @@
 <article>
 <title>cc65 Users Guide
 <author><url url="mailto:uz@cc65.org" name="Ullrich von Bassewitz">
-<date>2015-04-21
+<date>2015-05-26
 
 <abstract>
 cc65 is a C compiler for 6502 targets. It supports several 6502 based home
@@ -558,10 +558,10 @@ and the one defined by the ISO standard:
         be passed as parameters by value. However, struct assignment *is*
        possible.
        <p>
-<item> Most of the C library is available only with the fastcall calling
-        convention (<ref id="extension-fastcall" name="see below">).  It means
-        that you must not mix pointers to those functions with pointers to
-        user-written, cdecl functions.
+<item> Most of the C library is available with only the fastcall calling
+       convention (<ref id="extension-fastcall" name="see below">).  It means
+       that you must not mix pointers to those functions with pointers to
+       user-written, cdecl functions (the calling conventions are incompatible).
        <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
@@ -600,30 +600,30 @@ This cc65 version has some extensions to the ISO C standard.
        <p>
 
 <label id="extension-fastcall">
-<item>  The normal calling convention -- for non-variadic functions -- is
-        named "fastcall". The syntax for a function declaration that
-        <em/explicitly/ uses fastcall is
+<item> The normal calling convention -- for non-variadic functions -- is
+       named "fastcall". The syntax for a function declaration that
+       <em/explicitly/ uses fastcall is
 
-        <tscreen><verb>
-        &lt;return type&gt; fastcall &lt;function name&gt; (&lt;parameter list&gt;)
-        </verb></tscreen>
-        or
-        <tscreen><verb>
-        &lt;return type&gt; __fastcall__ &lt;function name&gt; (&lt;parameter list&gt;)
-        </verb></tscreen>
-        An example would be
-        <tscreen><verb>
-        void __fastcall__ f (unsigned char c)
-        </verb></tscreen>
-        The first form of the fastcall keyword is in the user namespace and can
-        therefore be disabled with the <tt><ref id="option--standard"
+       <tscreen><verb>
+       &lt;return type&gt; fastcall &lt;function name&gt; (&lt;parameter list&gt;)
+       </verb></tscreen>
+       or
+       <tscreen><verb>
+       &lt;return type&gt; __fastcall__ &lt;function name&gt; (&lt;parameter list&gt;)
+       </verb></tscreen>
+       An example is
+       <tscreen><verb>
+       void __fastcall__ f (unsigned char c)
+       </verb></tscreen>
+       The first form of the fastcall keyword is in the user namespace and can
+       therefore be disabled with the <tt><ref id="option--standard"
         name="--standard"></tt> command line option.
 
-        For functions that are <tt/fastcall/, the rightmost parameter is not
-        pushed on the stack but left in the primary register when the function
-        is called. That significantly reduces the cost of calling functions.
-        <newline><newline>
-        <p>
+       For functions that are <tt/fastcall/, the rightmost parameter is not
+       pushed on the stack but left in the primary register when the function
+       is called. That significantly reduces the cost of calling those functions.
+       <newline><newline>
+       <p>
 
 <item>  There is another calling convention named "cdecl". Variadic functions
         (their prototypes have an ellipsis &lsqb;<tt/.../&rsqb;) always use that
@@ -636,14 +636,14 @@ This cc65 version has some extensions to the ISO C standard.
         <tscreen><verb>
         &lt;return type&gt; __cdecl__ &lt;function name&gt; (&lt;parameter list&gt;)
         </verb></tscreen>
-        An example would be
+        An example is
         <tscreen><verb>
-        int * __cdecl__ f (unsigned char c)
+        int* __cdecl__ f (unsigned char c)
         </verb></tscreen>
 
         The first form of the cdecl keyword is in the user namespace;
-        and therefore, can be disabled with the <tt><ref id="option--standard"
-        name="--standard"></tt> command-line option.
+        and therefore, can be disabled with the <tt/<ref id="option--standard"
+        name="--standard">/ command-line option.
 
         For functions that are <tt/cdecl/, the rightmost parameter is pushed
         onto the stack before the function is called. That increases the cost
@@ -701,7 +701,7 @@ This cc65 version has some extensions to the ISO C standard.
        </verb></tscreen>
 
        Since the variable is of type <tt/void/ you may not use it as is.
-       However, taking the address of the variable results in a <tt/void */
+       However, taking the address of the variable results in a <tt/void*/
        which may be passed to any function expecting a pointer.
 
        See the <url url="geos.html" name="GEOS library document"> for examples
index a54821c348318de5e01aa6bfc16c7e57c55756dd..0a0b8c87ec293f8aa0a55b3c9f5cf4039e760400 100644 (file)
@@ -597,7 +597,7 @@ variable which is stored in the zero page memory space in order to allow
 for retrieval of each character in the string via the indirect indexed
 addressing mode.
 
-The assembly language routine is stored in a file named
+The assembly language routine is stored in a file names
 &quot;rs232_tx.s&quot; and is shown below:
 
 <tscreen><code>
@@ -681,7 +681,7 @@ all of the behind-the-scene work is transparent to the user.
 #define TX_FIFO_FULL  (FIFO_STATUS &amp; 0x01)
 #define RX_FIFO_EMPTY (FIFO_STATUS &amp; 0x02)
 
-extern void wait (void);
+extern void wait ();
 extern void __fastcall__ rs232_tx (char *str);
 
 int main () {