From: Greg King Date: Tue, 26 May 2015 15:23:54 +0000 (-0400) Subject: Improved the compiler documentation, a little bit. X-Git-Tag: V2.15~3^2 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=refs%2Fpull%2F151%2Fhead;p=cc65 Improved the compiler documentation, a little bit. --- diff --git a/doc/cc65.sgml b/doc/cc65.sgml index fa6b824c6..ac03c53b2 100644 --- a/doc/cc65.sgml +++ b/doc/cc65.sgml @@ -3,7 +3,7 @@
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> - <return type> fastcall <function name> (<parameter list>) - </verb></tscreen> - or - <tscreen><verb> - <return type> __fastcall__ <function name> (<parameter list>) - </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> + <return type> fastcall <function name> (<parameter list>) + </verb></tscreen> + or + <tscreen><verb> + <return type> __fastcall__ <function name> (<parameter list>) + </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 [<tt/.../]) always use that @@ -636,14 +636,14 @@ This cc65 version has some extensions to the ISO C standard. <tscreen><verb> <return type> __cdecl__ <function name> (<parameter list>) </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 diff --git a/doc/customizing.sgml b/doc/customizing.sgml index a54821c34..0a0b8c87e 100644 --- a/doc/customizing.sgml +++ b/doc/customizing.sgml @@ -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 "rs232_tx.s" 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 & 0x01) #define RX_FIFO_EMPTY (FIFO_STATUS & 0x02) -extern void wait (void); +extern void wait (); extern void __fastcall__ rs232_tx (char *str); int main () {