git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@4894
4a8a32a2-be11-0410-ad9d-
d568d2c75423
+2007-08-05 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
+
+ * doc/sdccman.lyx: Same changes made 2007-07-28 but using lyx 1.4.4
+ instead of lyx 1.5.0.
+
2007-07-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
* device/include/hc08/mc68hc908apxx.h: new header contributed by
2007-07-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
* device/include/hc08/mc68hc908apxx.h: new header contributed by
-#LyX 1.5.0 created this file. For more info see http://www.lyx.org/
+#LyX 1.4.4 created this file. For more info see http://www.lyx.org/
\lyxformat 245
\begin_document
\begin_header
\lyxformat 245
\begin_document
\begin_header
\papersides 1
\paperpagestyle fancy
\tracking_changes false
\papersides 1
\paperpagestyle fancy
\tracking_changes false
-\output_changes false
-\author ""
-\author ""
\emph on
Please note: the compiler will probably always be some steps ahead of this
documentation
\emph on
Please note: the compiler will probably always be some steps ahead of this
documentation
\begin_layout Itemize
char type parameters to vararg
\begin_layout Itemize
char type parameters to vararg
-\begin_inset LatexCommand \index{vararg, va\\_arg}
+\begin_inset LatexCommand \index{vararg, va\_arg}
-\begin_inset LatexCommand \index{\\_\\_sbit}
+\begin_inset LatexCommand \index{\_\_sbit}
\InsetSpace ~
\InsetSpace ~
b = ~
\InsetSpace ~
\InsetSpace ~
b = ~
-\begin_inset LatexCommand \index{\\~\\/ Operator}
+\begin_inset LatexCommand \index{\~\/ Operator}
\begin_layout Enumerate
\series medium
\begin_layout Enumerate
\series medium
-Unpack the file using a command like:
-\series default
-
+Unpack the file using a command like:
\family sans
\series bold
"tar -xvzf sdcc-src-yyyymmdd-rrrr.tar.bz2
\family sans
\series bold
"tar -xvzf sdcc-src-yyyymmdd-rrrr.tar.bz2
\begin_layout Enumerate
\series medium
\begin_layout Enumerate
\series medium
\family sans
\series bold
"./configure
\family sans
\series bold
"./configure
\begin_layout Enumerate
\series medium
\begin_layout Enumerate
\series medium
\family sans
\series bold
"make
\family sans
\series bold
"make
\begin_layout Enumerate
\series medium
\begin_layout Enumerate
\series medium
\family sans
\series bold
"make install"
\family sans
\series bold
"make install"
Make sure that the sdcc bin directory is in your executable search path
defined by the PATH environment setting (
\series medium
Make sure that the sdcc bin directory is in your executable search path
defined by the PATH environment setting (
\series medium
\begin_inset LatexCommand \ref{sub:Install-Trouble-shooting}
\end_inset
\begin_inset LatexCommand \ref{sub:Install-Trouble-shooting}
\end_inset
- is commonly installed as described in section
+is commonly installed as described in section
\begin_inset Quotes sld
\end_inset
\begin_inset Quotes sld
\end_inset
\series medium
Make sure the compiler works on a very simple example.
\series medium
Make sure the compiler works on a very simple example.
- Type in the following test.c program using your favorite
+ Type in the following test.c program using your favorite
\series medium
editor:
\end_layout
\series medium
editor:
\end_layout
\begin_layout Standard
\series medium
\begin_layout Standard
\series medium
-Compile this using the following command:
-\series default
-
+Compile this using the following command:
\family sans
\series bold
"sdcc -c test.c".
\family sans
\series bold
"sdcc -c test.c".
\series medium
The next step is to try it with the linker.
\series medium
The next step is to try it with the linker.
- Type in
-\series default
-
\family sans
\series bold
"sdcc test.c
\family sans
\series bold
"sdcc test.c
\series medium
(no test.ihx, and the linker generates warnings), then the problem is most
\series medium
(no test.ihx, and the linker generates warnings), then the problem is most
\series medium
usr/local/share/sdcc/lib directory
\series default
\series medium
\series medium
usr/local/share/sdcc/lib directory
\series default
\series medium
\begin_inset LatexCommand \ref{sub:Install-Trouble-shooting}
\end_inset
\begin_inset LatexCommand \ref{sub:Install-Trouble-shooting}
\end_inset
-The final test is to ensure
+The final test is to ensure
-header files and libraries.
+ header files and libraries.
Edit test.c and change it to the following:
\end_layout
Edit test.c and change it to the following:
\end_layout
\begin_layout Standard
\series medium
\begin_layout Standard
\series medium
-Compile this by typing
-\series default
-
\family sans
\series bold
"sdcc test.c"
\family sans
\series bold
"sdcc test.c"
.
This should generate a test.ihx output file, and it should give no warnings
such as not finding the string.h file.
.
This should generate a test.ihx output file, and it should give no warnings
such as not finding the string.h file.
- If it cannot find the string.h file, then the problem is that
+ If it cannot find the string.h file, then the problem is that
-cannot find the /usr/local/share/sdcc/include directory
+ cannot find the /usr/local/share/sdcc/include directory
\series default
\series medium
\series default
\series medium
\begin_inset LatexCommand \ref{sub:Install-Trouble-shooting}
\end_inset
\begin_inset LatexCommand \ref{sub:Install-Trouble-shooting}
\end_inset
-print-search-dirs
\series default
-print-search-dirs
\series default
-\begin_inset LatexCommand \index{-\\/-print-search-dirs}
+\begin_inset LatexCommand \index{-\/-print-search-dirs}
\begin_layout Itemize
as-z80
\series bold
\begin_layout Itemize
as-z80
\series bold
- as-gbz80 - The Z80 and GameBoy Z80 assemblers.
+as-gbz80 - The Z80 and GameBoy Z80 assemblers.
\end_layout
\begin_layout Itemize
\end_layout
\begin_layout Itemize
\begin_layout Itemize
link-z80
\series bold
\begin_layout Itemize
link-z80
\series bold
- link-gbz80 - The Z80 and GameBoy Z80 linkers.
+link-gbz80 - The Z80 and GameBoy Z80 linkers.
\end_layout
\begin_layout Itemize
\end_layout
\begin_layout Itemize
-\begin_inset LatexCommand \index{-\\/-out-fmt-s19}
+\begin_inset LatexCommand \index{-\/-out-fmt-s19}
\family sans
\shape italic
\family sans
\shape italic
\family default
\shape default
\family default
\shape default
-\begin_inset LatexCommand \index{-\\/-debug}
+\begin_inset LatexCommand \index{-\/-debug}
\emph default
bsolute
\emph on
\emph default
bsolute
\emph on
\family sans
\series bold
\family sans
\series bold
-packihx sourcefile.ihx >sourcefile.hex
+ packihx sourcefile.ihx >sourcefile.hex
\family default
\series default
\newline
\newline
\family default
\series default
\newline
\newline
-The separately available
+The separately available
\emph default
\begin_inset LatexCommand \index{srecord (bin, hex, ... tool)}
\emph default
\begin_inset LatexCommand \index{srecord (bin, hex, ... tool)}
\newline
Alternatively,
\emph on
\newline
Alternatively,
\emph on
- can be separately compiled as well:
+can be separately compiled as well:
\family sans
\series bold
\family sans
\series bold
\emph on
main()
\emph default
\emph on
main()
\emph default
+ function
+\emph on
+
+\emph default
\noun on
must
\noun default
\noun on
must
\noun default
\emph on
foomain.c
\emph default
\emph on
foomain.c
\emph default
\emph default
in the directory
\emph on
\emph default
in the directory
\emph on
\family default
\series default
\family default
\series default
\emph default
must be an absolute path name.
\newline
\emph default
must be an absolute path name.
\newline
\family sans
\series bold
sdcclib libint.lib _mulint.rel
\family sans
\series bold
sdcclib libint.lib _mulint.rel
\begin_layout Standard
Or, if you preffer:
\begin_layout Standard
Or, if you preffer:
+\family sans
+\series bold
+
\family sans
\series bold
sdcclib libint.lib _divsint.rel _divuint.rel _modsint.rel _moduint.rel _mulint.rel
\family sans
\series bold
sdcclib libint.lib _divsint.rel _divuint.rel _modsint.rel _moduint.rel _mulint.rel
+\family default
+\series default
+
If a list of .rel files is available, you can tell sdcclib to add those
files to a library.
For example, if the file 'myliblist.txt' contains
If a list of .rel files is available, you can tell sdcclib to add those
files to a library.
For example, if the file 'myliblist.txt' contains
+\family sans
+\series bold
+
\family sans
\series bold
_mulint.rel
\family sans
\series bold
_mulint.rel
\end_layout
\begin_layout Standard
\end_layout
\begin_layout Standard
+Use
+\family sans
+\series bold
+
\family sans
\series bold
sdcclib -l libint.lib myliblist.txt
\family sans
\series bold
sdcclib -l libint.lib myliblist.txt
+\family default
+\series default
+
\newline
\end_layout
\begin_layout Standard
\newline
\end_layout
\begin_layout Standard
-Additionally, you can instruct sdcclib to compile the files before adding
- them to the library by setting environment variables SDCCLIB_CC
+Additionally, you can instruct sdcclib to compiles the files before adding
+ them to the library.
+ This is achieved using the environment variables SDCCLIB_CC
\begin_inset LatexCommand \index{SDCCLIB_CC}
\end_inset
\begin_inset LatexCommand \index{SDCCLIB_CC}
\end_inset
-\newline
-
-\end_layout
-
-\begin_layout Standard
-
\family sans
\series bold
\family sans
\series bold
-set SDCCLIB_CC
-\begin_inset LatexCommand \index{SDCCLIB_CC}
-
-\end_inset
-
-=sdcc -
-\family default
-
-\begin_inset ERT
-status collapsed
-
-\begin_layout Standard
-\end_inset
-
-
-\family sans
--use-stdout -
-\family default
-
-\begin_inset ERT
-status collapsed
-
-
-\backslash
-/
-\end_layout
-
-\end_inset
-
-
+\series bold
+set SDCCLIB_CC=sdcc -c
\end_layout
\begin_layout Standard
\end_layout
\begin_layout Standard
\family sans
\series bold
sdcclib -l libint.lib myliblist.txt
\family sans
\series bold
sdcclib -l libint.lib myliblist.txt
+\family default
+\series default
+
-\begin_inset LatexCommand \index{-\\/-debug}
+\begin_inset LatexCommand \index{-\/-debug}
Like `-M' but the output mentions only the user header files included with
`#include
\begin_inset Quotes eld
Like `-M' but the output mentions only the user header files included with
`#include
\begin_inset Quotes eld
Like `-dD' except that the macro arguments and contents are omitted.
Only `#define name' is included in the output.
\end_layout
Like `-dD' except that the macro arguments and contents are omitted.
Only `#define name' is included in the output.
\end_layout
-
-\series default
-\bar default
Pedantic parse numbers so that situations like 0xfe-LO_B(3) are parsed properly
and the macro LO_B(3) gets expanded.
See also #pragma pedantic_parse_number
Pedantic parse numbers so that situations like 0xfe-LO_B(3) are parsed properly
and the macro LO_B(3) gets expanded.
See also #pragma pedantic_parse_number
-\begin_inset LatexCommand \index{-\\/-lib-path <path>}
+\begin_inset LatexCommand \index{-\/-lib-path <path>}
-\begin_inset LatexCommand \index{-L -\\/-lib-path}
+\begin_inset LatexCommand \index{-L -\/-lib-path}
-xram-loc
\series default
-xram-loc
\series default
-\begin_inset LatexCommand \index{-\\/-xram-loc <Value>}
+\begin_inset LatexCommand \index{-\/-xram-loc <Value>}
-code-loc
\series default
-code-loc
\series default
-\begin_inset LatexCommand \index{-\\/-code-loc <Value>}
+\begin_inset LatexCommand \index{-\/-code-loc <Value>}
-stack-loc
\series default
-stack-loc
\series default
-\begin_inset LatexCommand \index{-\\/-stack-loc <Value>}
+\begin_inset LatexCommand \index{-\/-stack-loc <Value>}
\series default
\InsetSpace ~
\series default
\InsetSpace ~
-\begin_inset LatexCommand \index{-\\/-pack-iram}
+\begin_inset LatexCommand \index{-\/-pack-iram}
\series default
\InsetSpace ~
\series default
\InsetSpace ~
-\begin_inset LatexCommand \index{-\\/-no-pack-iram}
+\begin_inset LatexCommand \index{-\/-no-pack-iram}
-xstack-loc
\series default
-xstack-loc
\series default
-\begin_inset LatexCommand \index{-\\/-xstack-loc <Value>}
+\begin_inset LatexCommand \index{-\/-xstack-loc <Value>}
-data-loc
\series default
-data-loc
\series default
-\begin_inset LatexCommand \index{-\\/-data-loc <Value>}
+\begin_inset LatexCommand \index{-\/-data-loc <Value>}
-idata-loc
\series default
-idata-loc
\series default
-\begin_inset LatexCommand \index{-\\/-idata-loc <Value>}
+\begin_inset LatexCommand \index{-\/-idata-loc <Value>}
-\begin_inset LatexCommand \index{-\\/-out-fmt-ihx}
+\begin_inset LatexCommand \index{-\/-out-fmt-ihx}
The linker output (final object code) is in Intel Hex format.
\begin_inset LatexCommand \index{Intel hex format}
The linker output (final object code) is in Intel Hex format.
\begin_inset LatexCommand \index{Intel hex format}
-\begin_inset LatexCommand \index{-\\/-out-fmt-s19}
+\begin_inset LatexCommand \index{-\/-out-fmt-s19}
The linker output (final object code) is in Motorola S19 format
\begin_inset LatexCommand \index{Motorola S19 format}
The linker output (final object code) is in Motorola S19 format
\begin_inset LatexCommand \index{Motorola S19 format}
-\begin_inset LatexCommand \index{-\\/-out-fmt-s19}
+\begin_inset LatexCommand \index{-\/-out-fmt-s19}
-\begin_inset LatexCommand \index{HC08!Options!-\\/-out-fmt-elf}
+\begin_inset LatexCommand \index{HC08!Options!-\/-out-fmt-elf}
The linker output (final object code) is in ELF format
\begin_inset LatexCommand \index{ELF format}
The linker output (final object code) is in ELF format
\begin_inset LatexCommand \index{ELF format}
-\begin_inset LatexCommand \index{-\\/-model-small}
+\begin_inset LatexCommand \index{-\/-model-small}
\end_inset
\series default
\size large
\end_inset
\series default
\size large
Generate code for Small Model programs, see section Memory Models for more
details.
This is the default model.
Generate code for Small Model programs, see section Memory Models for more
details.
This is the default model.
-\begin_inset LatexCommand \index{-\\/-model-medium}
+\begin_inset LatexCommand \index{-\/-model-medium}
-\begin_inset LatexCommand \index{-\\/-model-large}
+\begin_inset LatexCommand \index{-\/-model-large}
-\begin_inset LatexCommand \index{-\\/-xstack}
+\begin_inset LatexCommand \index{-\/-xstack}
\series default
\InsetSpace ~
<Value>
\series default
\InsetSpace ~
<Value>
-\begin_inset LatexCommand \index{-\\/-iram-size <Value>}
+\begin_inset LatexCommand \index{-\/-iram-size <Value>}
\series default
\InsetSpace ~
<Value>
\series default
\InsetSpace ~
<Value>
-\begin_inset LatexCommand \index{-\\/-xram-size <Value>}
+\begin_inset LatexCommand \index{-\/-xram-size <Value>}
\series default
\InsetSpace ~
<Value>
\series default
\InsetSpace ~
<Value>
-\begin_inset LatexCommand \index{-\\/-code-size <Value>}
+\begin_inset LatexCommand \index{-\/-code-size <Value>}
\series default
\InsetSpace ~
<Value>
\series default
\InsetSpace ~
<Value>
-\begin_inset LatexCommand \index{-\\/-stack-size <Value>}
+\begin_inset LatexCommand \index{-\/-stack-size <Value>}
\series default
\InsetSpace ~
\series default
\InsetSpace ~
-\begin_inset LatexCommand \index{-\\/-pack-iram}
+\begin_inset LatexCommand \index{-\/-pack-iram}
\series default
\InsetSpace ~
\series default
\InsetSpace ~
-\begin_inset LatexCommand \index{-\\/-no-pack-iram}
+\begin_inset LatexCommand \index{-\/-no-pack-iram}
\series default
\InsetSpace ~
\series default
\InsetSpace ~
-\begin_inset LatexCommand \index{-\\/-acall-ajmp}
+\begin_inset LatexCommand \index{-\/-acall-ajmp}
acall/ajmp.
Only use this option if your code is in the same 2k block of memory.
You may need to use this option for some 8051 derivatives which lack the
acall/ajmp.
Only use this option if your code is in the same 2k block of memory.
You may need to use this option for some 8051 derivatives which lack the
- lcall/ljmp instructions.
+ lcall/ljmp instructions..
\end_layout
\begin_layout Standard
\end_layout
\begin_layout Standard
-model-flat24
\series default
-model-flat24
\series default
-\begin_inset LatexCommand \index{DS390!Options!-\\/-model-flat24}
+\begin_inset LatexCommand \index{DS390!Options!-\/-model-flat24}
Generate 24-bit flat mode code.
This is the one and only that the ds390 code generator supports right now
and is default when using
Generate 24-bit flat mode code.
This is the one and only that the ds390 code generator supports right now
and is default when using
\end_inset
-protect-sp-update
\end_inset
-protect-sp-update
-\begin_inset LatexCommand \index{DS390!Options!-\\/-protect-sp-update}
+\begin_inset LatexCommand \index{DS390!Options!-\/-protect-sp-update}
-stack-10bit
\series default
-stack-10bit
\series default
-\begin_inset LatexCommand \index{DS390!Options!-\\/-stack-10bit}
+\begin_inset LatexCommand \index{DS390!Options!-\/-stack-10bit}
-\begin_inset LatexCommand \index{-\\/-stack-auto}
+\begin_inset LatexCommand \index{-\/-stack-auto}
-\begin_inset LatexCommand \index{-\\/-xstack}
+\begin_inset LatexCommand \index{-\/-xstack}
-\begin_inset LatexCommand \index{DS390!Options!-\\/-stack-probe}
+\begin_inset LatexCommand \index{DS390!Options!-\/-stack-probe}
\series bold
-
\begin_inset ERT
\series bold
-
\begin_inset ERT
-\begin_inset LatexCommand \index{DS390!Options!-\\/-tini-libid}
+\begin_inset LatexCommand \index{DS390!Options!-\/-tini-libid}
\end_inset
-use-accelerator
\end_inset
-use-accelerator
-\begin_inset LatexCommand \index{DS390!Options!-\\/-use-accelerator}
+\begin_inset LatexCommand \index{DS390!Options!-\/-use-accelerator}
-callee-saves-bc
\series default
-callee-saves-bc
\series default
-\begin_inset LatexCommand \index{Z80!Options!-\\/-callee-saves-bc}
+\begin_inset LatexCommand \index{Z80!Options!-\/-callee-saves-bc}
Force a called function to always save BC.
\end_layout
Force a called function to always save BC.
\end_layout
-no-std-crt0
\series default
-no-std-crt0
\series default
-\begin_inset LatexCommand \index{Z80!Options!-\\/-no-std-crt0}
+\begin_inset LatexCommand \index{Z80!Options!-\/-no-std-crt0}
-portmode=
\series default
<Value>
-portmode=
\series default
<Value>
-\begin_inset LatexCommand \index{Z80!Options!-\\/-portmode=<Value>}
+\begin_inset LatexCommand \index{Z80!Options!-\/-portmode=<Value>}
-asm=
\series default
<Value>
-asm=
\series default
<Value>
-\begin_inset LatexCommand \index{Z80!Options!-\\/-asm=<Value>}
+\begin_inset LatexCommand \index{Z80!Options!-\/-asm=<Value>}
\series default
\InsetSpace ~
<Value>
\series default
\InsetSpace ~
<Value>
-\begin_inset LatexCommand \index{Z80!Options!-\\/-codeseg <Value>}
+\begin_inset LatexCommand \index{Z80!Options!-\/-codeseg <Value>}
\series default
\InsetSpace ~
<Value>
\series default
\InsetSpace ~
<Value>
-\begin_inset LatexCommand \index{Z80!Options!-\\/-constseg <Value>}
+\begin_inset LatexCommand \index{Z80!Options!-\/-constseg <Value>}
-callee-saves-bc
\series default
-callee-saves-bc
\series default
-\begin_inset LatexCommand \index{GBZ80!Options!-\\/-callee-saves-bc}
+\begin_inset LatexCommand \index{GBZ80!Options!-\/-callee-saves-bc}
Force a called function to always save BC.
\end_layout
Force a called function to always save BC.
\end_layout
\series default
\InsetSpace ~
<Value>
\series default
\InsetSpace ~
<Value>
-\begin_inset LatexCommand \index{GBZ80!Options!-\\/-codeseg <Value>}
+\begin_inset LatexCommand \index{GBZ80!Options!-\/-codeseg <Value>}
\series default
\InsetSpace ~
<Value>
\series default
\InsetSpace ~
<Value>
-\begin_inset LatexCommand \index{GBZ80!Options!-\\/-constseg <Value>}
+\begin_inset LatexCommand \index{GBZ80!Options!-\/-constseg <Value>}
-\begin_inset LatexCommand \index{-\\/-nogcse}
+\begin_inset LatexCommand \index{-\/-nogcse}
will indicate the number of extra bytes it allocated.
It is recommended that this option NOT be used, #pragma\InsetSpace ~
nogcse
will indicate the number of extra bytes it allocated.
It is recommended that this option NOT be used, #pragma\InsetSpace ~
nogcse
-\begin_inset LatexCommand \index{\\#pragma nogcse}
+\begin_inset LatexCommand \index{\#pragma nogcse}
-\begin_inset LatexCommand \index{-\\/-noinvariant}
+\begin_inset LatexCommand \index{-\/-noinvariant}
.
It is recommended that this option NOT be used, #pragma\InsetSpace ~
noinvariant
.
It is recommended that this option NOT be used, #pragma\InsetSpace ~
noinvariant
-\begin_inset LatexCommand \index{\\#pragma noinvariant}
+\begin_inset LatexCommand \index{\#pragma noinvariant}
-\begin_inset LatexCommand \index{-\\/-noinduction}
+\begin_inset LatexCommand \index{-\/-noinduction}
for more details.
It is recommended that this option is NOT used, #pragma\InsetSpace ~
noinduction
for more details.
It is recommended that this option is NOT used, #pragma\InsetSpace ~
noinduction
-\begin_inset LatexCommand \index{\\#pragma noinduction}
+\begin_inset LatexCommand \index{\#pragma noinduction}
-\begin_inset LatexCommand \index{-\\/-nojtbound}
+\begin_inset LatexCommand \index{-\/-nojtbound}
\series default
\size default
\series default
\size default
Will not generate boundary condition check when switch statements
\begin_inset LatexCommand \index{switch statement}
Will not generate boundary condition check when switch statements
\begin_inset LatexCommand \index{switch statement}
Switch Statements for more details.
It is recommended that this option is NOT used, #pragma\InsetSpace ~
nojtbound
Switch Statements for more details.
It is recommended that this option is NOT used, #pragma\InsetSpace ~
nojtbound
-\begin_inset LatexCommand \index{\\#pragma nojtbound}
+\begin_inset LatexCommand \index{\#pragma nojtbound}
\end_inset
-noloopreverse
\end_inset
-noloopreverse
-\begin_inset LatexCommand \index{-\\/-noloopreverse}
+\begin_inset LatexCommand \index{-\/-noloopreverse}
nolabelopt
\series default
nolabelopt
\series default
-\begin_inset LatexCommand \index{-\\/-nolabelopt }
+\begin_inset LatexCommand \index{-\/-nolabelopt }
-\begin_inset LatexCommand \index{-\\/-no-xinit-opt}
+\begin_inset LatexCommand \index{-\/-no-xinit-opt}
-\begin_inset LatexCommand \index{-\\/-nooverlay}
+\begin_inset LatexCommand \index{-\/-nooverlay}
-\begin_inset LatexCommand \index{-\\/-no-peep}
+\begin_inset LatexCommand \index{-\/-no-peep}
-peep-file
\series default
-peep-file
\series default
-\begin_inset LatexCommand \index{-\\/-peep-file}
+\begin_inset LatexCommand \index{-\/-peep-file}
-\begin_inset LatexCommand \index{-\\/-peep-asm}
+\begin_inset LatexCommand \index{-\/-peep-asm}
\end_inset
-opt-code-speed
\end_inset
-opt-code-speed
-\begin_inset LatexCommand \index{-\\/-opt-code-speed}
+\begin_inset LatexCommand \index{-\/-opt-code-speed}
\end_inset
-opt-code-size
\end_inset
-opt-code-size
-\begin_inset LatexCommand \index{-\\/-opt-code-size}
+\begin_inset LatexCommand \index{-\/-opt-code-size}
-\begin_inset LatexCommand \index{-\\/-compile-only}
+\begin_inset LatexCommand \index{-\/-compile-only}
-\begin_inset LatexCommand \index{-c -\\/-compile-only}
+\begin_inset LatexCommand \index{-c -\/-compile-only}
-\begin_inset LatexCommand \index{-\\/-c1mode}
+\begin_inset LatexCommand \index{-\/-c1mode}
- The output path where everything will be placed or the file name used for
+The output path where everything will be placed or the file name used for
all generated output files.
If the parameter is a path, it must have a trailing slash (or backslash
for the Windows binaries) to be recognized as a path.
all generated output files.
If the parameter is a path, it must have a trailing slash (or backslash
for the Windows binaries) to be recognized as a path.
- Note for Windows users: if the path contains spaces, it should be surrounded
+
+\emph on
+
+\emph default
+Note for Windows users: if the path contains spaces, it should be surrounded
by quotes.
The trailing backslash should be doubled in order to prevent escaping the
final quote, for example:
by quotes.
The trailing backslash should be doubled in order to prevent escaping the
final quote, for example:
-\begin_inset LatexCommand \index{-\\/-stack-auto}
+\begin_inset LatexCommand \index{-\/-stack-auto}
\end_inset
\series default
\size large
\end_inset
\series default
\size large
All functions in the source file will be compiled as
\emph on
reentrant
All functions in the source file will be compiled as
\emph on
reentrant
-\begin_inset LatexCommand \index{-\\/-callee-saves}
+\begin_inset LatexCommand \index{-\/-callee-saves}
-callee-saves option string.
Also see #pragma\InsetSpace ~
callee_saves
-callee-saves option string.
Also see #pragma\InsetSpace ~
callee_saves
-\begin_inset LatexCommand \index{\\#pragma callee\\_saves}
+\begin_inset LatexCommand \index{\#pragma callee\_saves}
\end_inset
-all-callee-saves
\end_inset
-all-callee-saves
-\begin_inset LatexCommand \index{-\\/-all-callee-saves}
+\begin_inset LatexCommand \index{-\/-all-callee-saves}
+
+\series default
+Function of
+\series bold
+
\begin_inset ERT
status collapsed
\begin_inset ERT
status collapsed
-\begin_inset LatexCommand \index{-\\/-debug}
+\begin_inset LatexCommand \index{-\/-debug}
When this option is used the compiler will generate debug information.
The debug information collected in a file with .cdb extension can be used
with the SDCDB.
When this option is used the compiler will generate debug information.
The debug information collected in a file with .cdb extension can be used
with the SDCDB.
Stop after the stage of compilation proper; do not assemble.
The output is an assembler code file for the input file specified.
\end_layout
Stop after the stage of compilation proper; do not assemble.
The output is an assembler code file for the input file specified.
\end_layout
\end_inset
-int-long-reent
\end_inset
-int-long-reent
-\begin_inset LatexCommand \index{-\\/-int-long-reent}
+\begin_inset LatexCommand \index{-\/-int-long-reent}
-\begin_inset LatexCommand \index{-\\/-cyclomatic}
+\begin_inset LatexCommand \index{-\/-cyclomatic}
This option will cause the compiler to generate an information message for
each function in the source file.
The message contains some
This option will cause the compiler to generate an information message for
each function in the source file.
The message contains some
-\begin_inset LatexCommand \index{-\\/-float-reent}
+\begin_inset LatexCommand \index{-\/-float-reent}
\end_inset
-funsigned-char
\end_inset
-funsigned-char
-\begin_inset LatexCommand \index{-\\/-funsigned-char}
+\begin_inset LatexCommand \index{-\/-funsigned-char}
\end_inset
\series default
\end_inset
\series default
- The default signedness for every type is
+ The default signedness for every type is
- In some embedded environments the default signedness of
+ In some embedded environments the default signedness of
\family default
.
To set the signess for characters to unsigned, use the option -
\family default
.
To set the signess for characters to unsigned, use the option -
-\begin_inset LatexCommand \index{-\\/-main-return}
+\begin_inset LatexCommand \index{-\/-main-return}
-\begin_inset LatexCommand \index{-\\/-nostdinc}
+\begin_inset LatexCommand \index{-\/-nostdinc}
-\begin_inset LatexCommand \index{-\\/-nostdlib}
+\begin_inset LatexCommand \index{-\/-nostdlib}
-\begin_inset LatexCommand \index{-\\/-verbose}
+\begin_inset LatexCommand \index{-\/-verbose}
\end_inset
-no-c-code-in-asm
\end_inset
-no-c-code-in-asm
-\begin_inset LatexCommand \index{-\\/-no-c-code-in-asm}
+\begin_inset LatexCommand \index{-\/-no-c-code-in-asm}
-\begin_inset LatexCommand \index{-\\/-no-gen-comments}
+\begin_inset LatexCommand \index{-\/-no-gen-comments}
\end_inset
-no-peep-comments
\end_inset
-no-peep-comments
-\begin_inset LatexCommand \index{-\\/-no-peep-comments}
+\begin_inset LatexCommand \index{-\/-no-peep-comments}
\end_inset
-i-code-in-asm
\end_inset
-i-code-in-asm
-\begin_inset LatexCommand \index{-\\/-i-code-in-asm}
+\begin_inset LatexCommand \index{-\/-i-code-in-asm}
-\begin_inset LatexCommand \index{-\\/-less-pedantic}
+\begin_inset LatexCommand \index{-\/-less-pedantic}
-disable-warning\InsetSpace ~
<nnnn>
-disable-warning\InsetSpace ~
<nnnn>
-\begin_inset LatexCommand \index{-\\/-disable-warning}
+\begin_inset LatexCommand \index{-\/-disable-warning}
\end_inset
-print-search-dirs
\end_inset
-print-search-dirs
-\begin_inset LatexCommand \index{-\\/-print-search-dirs}
+\begin_inset LatexCommand \index{-\/-print-search-dirs}
-\begin_inset LatexCommand \index{-\\/-vc}
+\begin_inset LatexCommand \index{-\/-vc}
-\begin_inset LatexCommand \index{-\\/-use-stdout}
+\begin_inset LatexCommand \index{-\/-use-stdout}
-\begin_inset LatexCommand \index{-\\/-std-sdcc89}
+\begin_inset LatexCommand \index{-\/-std-sdcc89}
-\begin_inset LatexCommand \index{-\\/-std-c89}
+\begin_inset LatexCommand \index{-\/-std-c89}
-\begin_inset LatexCommand \index{-\\/-std-sdcc99}
+\begin_inset LatexCommand \index{-\/-std-sdcc99}
-\begin_inset LatexCommand \index{-\\/-std-sdcc99}
+\begin_inset LatexCommand \index{-\/-std-sdcc99}
-\begin_inset LatexCommand \index{-\\/-codeseg <Value>}
+\begin_inset LatexCommand \index{-\/-codeseg <Value>}
-constseg
\series default
-constseg
\series default
-\begin_inset LatexCommand \index{-\\/-constseg <Value>}
+\begin_inset LatexCommand \index{-\/-constseg <Value>}
\end_inset
-fdollars-in-identifiers
\end_inset
-fdollars-in-identifiers
-\begin_inset LatexCommand \index{-\\/-fdollars-in-identifiers}
+\begin_inset LatexCommand \index{-\/-fdollars-in-identifiers}
-more-pedantic
\series default
-more-pedantic
\series default
-\begin_inset LatexCommand \index{-\\/-more-pedantic}
+\begin_inset LatexCommand \index{-\/-more-pedantic}
-short-is-8bits
\series default
-short-is-8bits
\series default
-\begin_inset LatexCommand \index{-\\/-short-is-8bits}
+\begin_inset LatexCommand \index{-\/-short-is-8bits}
-\begin_inset LatexCommand \index{-\\/-dumpraw}
+\begin_inset LatexCommand \index{-\/-dumpraw}
-\begin_inset LatexCommand \index{-\\/-dumpgcse}
+\begin_inset LatexCommand \index{-\/-dumpgcse}
-\begin_inset LatexCommand \index{-\\/-dumpdeadcode}
+\begin_inset LatexCommand \index{-\/-dumpdeadcode}
-\begin_inset LatexCommand \index{-\\/-dumploop}
+\begin_inset LatexCommand \index{-\/-dumploop}
-\begin_inset LatexCommand \index{-\\/-dumprange}
+\begin_inset LatexCommand \index{-\/-dumprange}
-\begin_inset LatexCommand \index{-\\/-dumlrange}
+\begin_inset LatexCommand \index{-\/-dumlrange}
\end_inset
-dumpregassign
\end_inset
-dumpregassign
-\begin_inset LatexCommand \index{-\\/-dumpregassign}
+\begin_inset LatexCommand \index{-\/-dumpregassign}
Will create a dump of iCodes, after register assignment
\begin_inset LatexCommand \index{Register assignment}
Will create a dump of iCodes, after register assignment
\begin_inset LatexCommand \index{Register assignment}
-\begin_inset LatexCommand \index{-\\/-dumplrange}
+\begin_inset LatexCommand \index{-\/-dumplrange}
-\begin_inset LatexCommand \index{-\\/-dumpall}
+\begin_inset LatexCommand \index{-\/-dumpall}
\series default
\size default
\series default
\size default
Will cause all the above mentioned dumps to be created.
\end_layout
Will cause all the above mentioned dumps to be created.
\end_layout
-
\series default
use-stdout
-
\series default
use-stdout
-\begin_inset LatexCommand \index{-\\/-use-stdout}
+\begin_inset LatexCommand \index{-\/-use-stdout}
-\begin_inset LatexCommand \index{-\\/-vc}
+\begin_inset LatexCommand \index{-\/-vc}
\series bold
SDCC_LEAVE_SIGNALS
\series bold
SDCC_LEAVE_SIGNALS
-\begin_inset LatexCommand \index{SDCC\\_LEAVE\\_SIGNALS}
+\begin_inset LatexCommand \index{SDCC\_LEAVE\_SIGNALS}
-\begin_inset LatexCommand \index{SDCC\\_HOME}
+\begin_inset LatexCommand \index{SDCC\_HOME}
\series bold
SDCC_INCLUDE
\series bold
SDCC_INCLUDE
-\begin_inset LatexCommand \index{SDCC\\_INCLUDE}
+\begin_inset LatexCommand \index{SDCC\_INCLUDE}
-\begin_inset LatexCommand \index{SDCC\\_LIB}
+\begin_inset LatexCommand \index{SDCC\_LIB}
-\begin_inset LatexCommand \index{\\_\\_data (mcs51, ds390 storage class)}
+\begin_inset LatexCommand \index{\_\_data (mcs51, ds390 storage class)}
-\begin_inset LatexCommand \index{\\_\\_near (storage class)}
+\begin_inset LatexCommand \index{\_\_near (storage class)}
-\begin_inset LatexCommand \index{\\_\\_xdata (mcs51, ds390 storage class)}
+\begin_inset LatexCommand \index{\_\_xdata (mcs51, ds390 storage class)}
-\begin_inset LatexCommand \index{\\_\\_far (storage class)}
+\begin_inset LatexCommand \index{\_\_far (storage class)}
-\begin_inset LatexCommand \index{\\_\\_idata (mcs51, ds390 storage class)}
+\begin_inset LatexCommand \index{\_\_idata (mcs51, ds390 storage class)}
-\begin_inset LatexCommand \index{\\_\\_pdata (mcs51, ds390 storage class)}
+\begin_inset LatexCommand \index{\_\_pdata (mcs51, ds390 storage class)}
-\begin_inset LatexCommand \index{-\\/-xstack}
+\begin_inset LatexCommand \index{-\/-xstack}
-\begin_inset LatexCommand \index{\\_\\_code}
+\begin_inset LatexCommand \index{\_\_code}
-\begin_inset LatexCommand \index{\\_\\_bit}
+\begin_inset LatexCommand \index{\_\_bit}
-\begin_inset LatexCommand \index{\\_\\_sfr}
+\begin_inset LatexCommand \index{\_\_sfr}
-\begin_inset LatexCommand \index{\\_\\_sfr16}
+\begin_inset LatexCommand \index{\_\_sfr16}
-\begin_inset LatexCommand \index{\\_\\_sfr32}
+\begin_inset LatexCommand \index{\_\_sfr32}
-\begin_inset LatexCommand \index{\\_\\_sbit}
+\begin_inset LatexCommand \index{\_\_sbit}
\begin_layout Standard
Like the bit keyword,
\emph on
\begin_layout Standard
Like the bit keyword,
\emph on
-sfr / sfr16 / sfr32 / sbit
+sfr / sfr16 / sfr32 / sbit
- signify both a data-type and storage class, they are used to describe the
+signify both a data-type and storage class, they are used to describe the
-\begin_inset LatexCommand \index{\\_\\_at}
+\begin_inset LatexCommand \index{\_\_at}
-\begin_inset LatexCommand \index{\\_\\_at}
+\begin_inset LatexCommand \index{\_\_at}
\begin_layout Standard
Special function registers which are located on an address dividable by
\begin_layout Standard
Special function registers which are located on an address dividable by
- 8 are bit-addressable, an
+ 8 are bit-addressable, an
\emph default
addresses a specific bit within these sfr.
\newline
\emph default
addresses a specific bit within these sfr.
\newline
then the sfr / sfr16 / sfr32 / sbit Storage Class extensions will most
likely be
\emph on
then the sfr / sfr16 / sfr32 / sbit Storage Class extensions will most
likely be
\emph on
Specifically the syntax
\family typewriter
\InsetSpace ~
Specifically the syntax
\family typewriter
\InsetSpace ~
Nevertheless it is possible to write header files
\begin_inset LatexCommand \index{Header files}
Nevertheless it is possible to write header files
\begin_inset LatexCommand \index{Header files}
-\begin_inset LatexCommand \index{\\_\\_idata (mcs51, ds390 storage class)}
+\begin_inset LatexCommand \index{\_\_idata (mcs51, ds390 storage class)}
-\begin_inset LatexCommand \index{\\_\\_xdata (mcs51, ds390 storage class)}
+\begin_inset LatexCommand \index{\_\_xdata (mcs51, ds390 storage class)}
-\begin_inset LatexCommand \index{\\_\\_data (mcs51, ds390 storage class)}
+\begin_inset LatexCommand \index{\_\_data (mcs51, ds390 storage class)}
-\begin_inset LatexCommand \index{\\_\\_using (mcs51, ds390 register bank)}
+\begin_inset LatexCommand \index{\_\_using (mcs51, ds390 register bank)}
-\begin_inset LatexCommand \index{\\_\\_interrupt}
+\begin_inset LatexCommand \index{\_\_interrupt}
-\begin_inset LatexCommand \index{-\\/-data-loc <Value>}
+\begin_inset LatexCommand \index{-\/-data-loc <Value>}
-\begin_inset LatexCommand \index{-\\/-iram-size <Value>}
+\begin_inset LatexCommand \index{-\/-iram-size <Value>}
-\begin_inset LatexCommand \index{-\\/-stack-loc <Value>}
+\begin_inset LatexCommand \index{-\/-stack-loc <Value>}
-\begin_inset LatexCommand \index{-\\/-xdata-loc<Value>}
+\begin_inset LatexCommand \index{-\/-xdata-loc<Value>}
-\begin_inset LatexCommand \index{-\\/-xram-size <Value>}
+\begin_inset LatexCommand \index{-\/-xram-size <Value>}
-\begin_inset LatexCommand \index{-\\/-code-loc <Value>}
+\begin_inset LatexCommand \index{-\/-code-loc <Value>}
-\begin_inset LatexCommand \index{-\\/-code-size <Value>}
+\begin_inset LatexCommand \index{-\/-code-size <Value>}
-\begin_inset LatexCommand \index{\\_\\_sfr}
+\begin_inset LatexCommand \index{\_\_sfr}
-\begin_inset LatexCommand \index{\\_\\_sfr}
+\begin_inset LatexCommand \index{\_\_sfr}
-\begin_inset LatexCommand \index{\\_\\_at}
+\begin_inset LatexCommand \index{\_\_at}
-\begin_inset LatexCommand \index{\\_\\_sfr}
+\begin_inset LatexCommand \index{\_\_sfr}
-\begin_inset LatexCommand \index{Z180!Options!-\\/-portmode}
+\begin_inset LatexCommand \index{Z180!Options!-\/-portmode}
\end_inset
=180 (80) and a compiler #pragma\InsetSpace ~
portmode
\end_inset
=180 (80) and a compiler #pragma\InsetSpace ~
portmode
-\begin_inset LatexCommand \index{Z180!Pragmas!\\#pragma portmode}
+\begin_inset LatexCommand \index{Z180!Pragmas!\#pragma portmode}
-\begin_inset LatexCommand \index{\\_\\_data (hc08 storage class)}
+\begin_inset LatexCommand \index{\_\_data (hc08 storage class)}
-\begin_inset LatexCommand \index{\\_\\_xdata (hc08 storage class)}
+\begin_inset LatexCommand \index{\_\_xdata (hc08 storage class)}
-\begin_inset LatexCommand \index{\\_\\_at}
+\begin_inset LatexCommand \index{\_\_at}
-\begin_inset LatexCommand \index{\\_\\_xdata (mcs51, ds390 storage class)}
+\begin_inset LatexCommand \index{\_\_xdata (mcs51, ds390 storage class)}
-\begin_inset LatexCommand \index{\\_\\_at}
+\begin_inset LatexCommand \index{\_\_at}
-\begin_inset LatexCommand \index{\\_\\_at}
+\begin_inset LatexCommand \index{\_\_at}
\begin_inset ERT
status collapsed
\begin_inset ERT
status collapsed
-\begin_inset LatexCommand \index{-\\/-stack-auto}
+\begin_inset LatexCommand \index{-\/-stack-auto}
-\begin_inset LatexCommand \index{\\#pragma stackauto}
+\begin_inset LatexCommand \index{\#pragma stackauto}
\begin_layout Standard
Since stack space on 8051 is limited, the
\emph on
\begin_layout Standard
Since stack space on 8051 is limited, the
\emph on
\begin_inset ERT
status collapsed
\begin_inset ERT
status collapsed
\emph on
bvar
\emph default
\emph on
bvar
\emph default
- in bit addressable space and
+ in bit addressable space and
\emph default
in internal ram.
When compiled with
\emph default
in internal ram.
When compiled with
should be preceded by a #pragma\InsetSpace ~
nooverlay
should be preceded by a #pragma\InsetSpace ~
nooverlay
-\begin_inset LatexCommand \index{\\#pragma nooverlay}
+\begin_inset LatexCommand \index{\#pragma nooverlay}
#pragma save
\newline
#pragma nooverlay
#pragma save
\newline
#pragma nooverlay
-\begin_inset LatexCommand \index{\\#pragma nooverlay}
+\begin_inset LatexCommand \index{\#pragma nooverlay}
-\begin_inset LatexCommand \index{\\_\\_interrupt}
+\begin_inset LatexCommand \index{\_\_interrupt}
-\begin_inset LatexCommand \index{\\_\\_using (mcs51, ds390 register bank)}
+\begin_inset LatexCommand \index{\_\_using (mcs51, ds390 register bank)}
operations are implemented using external support routines.
If an interrupt service routine needs to do any of these operations then
the support routines (as mentioned in a following section) will have to
operations are implemented using external support routines.
If an interrupt service routine needs to do any of these operations then
the support routines (as mentioned in a following section) will have to
- be recompiled using the
+ be recompiled using the
\begin_inset ERT
status collapsed
\begin_inset ERT
status collapsed
-\begin_inset LatexCommand \index{-\\/-stack-auto}
+\begin_inset LatexCommand \index{-\/-stack-auto}
-int-long-reent
\emph default
-int-long-reent
\emph default
-\begin_inset LatexCommand \index{-\\/-int-long-reent}
+\begin_inset LatexCommand \index{-\/-int-long-reent}
See f.e.
the cast
\family typewriter
See f.e.
the cast
\family typewriter
(unsigned char)(tail-1)
\family default
(unsigned char)(tail-1)
\family default
-\series default
-
-\series bold
-within the if clause in section
+ within the if clause in section
\begin_inset LatexCommand \ref{sub:A-Step-by Assembler Introduction}
\end_inset
\begin_inset LatexCommand \ref{sub:A-Step-by Assembler Introduction}
\end_inset
Note that when some function is called from an interrupt service routine
it should be preceded by a #pragma\InsetSpace ~
nooverlay
Note that when some function is called from an interrupt service routine
it should be preceded by a #pragma\InsetSpace ~
nooverlay
-\begin_inset LatexCommand \index{\\#pragma nooverlay}
+\begin_inset LatexCommand \index{\#pragma nooverlay}
while the interrupt service routine might be active.
They also must not be called from low priority interrupt service routines
while a high priority interrupt service routine might be active.
while the interrupt service routine might be active.
They also must not be called from low priority interrupt service routines
while a high priority interrupt service routine might be active.
- You could use semaphores or make the function
+ You could use semaphores or make the function
\emph default
if all parameters are passed in registers.
\newline
\emph default
if all parameters are passed in registers.
\newline
-\begin_inset LatexCommand \index{\\_\\_using (mcs51, ds390 register bank)}
+\begin_inset LatexCommand \index{\_\_using (mcs51, ds390 register bank)}
-\begin_inset LatexCommand \index{\\_\\_critical}
+\begin_inset LatexCommand \index{\_\_critical}
\family typewriter
#define CLI _asm
\family typewriter
#define CLI _asm
-\begin_inset LatexCommand \index{\\_asm}
+\begin_inset LatexCommand \index{\_asm}
cli\InsetSpace ~
\InsetSpace ~
_endasm
cli\InsetSpace ~
\InsetSpace ~
_endasm
-\begin_inset LatexCommand \index{\\_endasm}
+\begin_inset LatexCommand \index{\_endasm}
- bit test and clear instruction.
+ bit test and
+\emph on
+
+\emph default
+clear
+\emph on
+
+\emph default
+instruction.
These type of instructions are typically used in preemptive multitasking
systems, where a routine f.e.
claims the use of a data structure ('acquires a lock
These type of instructions are typically used in preemptive multitasking
systems, where a routine f.e.
claims the use of a data structure ('acquires a lock
-\begin_inset LatexCommand \index{\\_\\_using (mcs51, ds390 register bank)}
+\begin_inset LatexCommand \index{\_\_using (mcs51, ds390 register bank)}
-(pending: Note, nowadays the
+(pending: Note, nowadays the
-attribute has an effect on
+ attribute has an effect on
-the generated code for a
+the generated code for a
One of these modules (crtstart.asm) contains a call to the C routine
\emph on
_sdcc_external_startup()
One of these modules (crtstart.asm) contains a call to the C routine
\emph on
_sdcc_external_startup()
-\begin_inset LatexCommand \index{\\_sdcc\\_external\\_startup()}
+\begin_inset LatexCommand \index{\_sdcc\_external\_startup()}
- at the start of the CODE area.
+
+\series default
+at the start of the CODE area.
This routine is also in the runtime library
\begin_inset LatexCommand \index{Runtime library}
This routine is also in the runtime library
\begin_inset LatexCommand \index{Runtime library}
-\begin_inset LatexCommand \index{-\\/-iram-size <Value>}
+\begin_inset LatexCommand \index{-\/-iram-size <Value>}
-\begin_inset LatexCommand \index{-\\/-no-xinit-opt}
+\begin_inset LatexCommand \index{-\/-no-xinit-opt}
-main-return
\emph default
-main-return
\emph default
-\begin_inset LatexCommand \index{-\\/-main-return}
+\begin_inset LatexCommand \index{-\/-main-return}
-no-std-crt0
\emph default
-no-std-crt0
\emph default
-\begin_inset LatexCommand \index{-\\/-no-std-crt0}
+\begin_inset LatexCommand \index{-\/-no-std-crt0}
-\begin_inset LatexCommand \index{\\_\\_far (storage class)}
+\begin_inset LatexCommand \index{\_\_far (storage class)}
-\begin_inset LatexCommand \index{\\_\\_at}
+\begin_inset LatexCommand \index{\_\_at}
-\family default
-
-\family typewriter
-volatile
-\family default
-
-\family typewriter
-*/
\InsetSpace ~
if( head != (unsigned char)(tail-1)
)\InsetSpace ~
\InsetSpace ~
if( head != (unsigned char)(tail-1)
)\InsetSpace ~
-/* cast
-\family default
-
-\family typewriter
-
-\family typewriter
-to avoid promotion
\begin_inset LatexCommand \index{promotion to signed int}
\end_inset
\begin_inset LatexCommand \index{promotion to signed int}
\end_inset
\InsetSpace ~
\InsetSpace ~
_asm
\InsetSpace ~
\InsetSpace ~
_asm
-\begin_inset LatexCommand \index{\\_asm}
+\begin_inset LatexCommand \index{\_asm}
-\begin_inset LatexCommand \index{\\_\\_asm}
+\begin_inset LatexCommand \index{\_\_asm}
r2,dpl
\newline
;buffer.c if( head != (unsigned char)(tail-1) ) \InsetSpace ~
r2,dpl
\newline
;buffer.c if( head != (unsigned char)(tail-1) ) \InsetSpace ~
-/* cast
-\family default
-
-\family typewriter
-
-\family typewriter
-to avoid promotion
\begin_inset LatexCommand \index{promotion to signed int}
\end_inset
\begin_inset LatexCommand \index{promotion to signed int}
\end_inset
\InsetSpace ~
\InsetSpace ~
_endasm
\InsetSpace ~
\InsetSpace ~
_endasm
-\begin_inset LatexCommand \index{\\_endasm}
+\begin_inset LatexCommand \index{\_endasm}
-\begin_inset LatexCommand \index{\\_\\_endasm}
+\begin_inset LatexCommand \index{\_\_endasm}
\InsetSpace ~
\InsetSpace ~
_asm
\InsetSpace ~
\InsetSpace ~
_asm
-\begin_inset LatexCommand \index{\\_asm}
+\begin_inset LatexCommand \index{\_asm}
-\begin_inset LatexCommand \index{\\_\\_asm}
+\begin_inset LatexCommand \index{\_\_asm}
\InsetSpace ~
\InsetSpace ~
_endasm
\InsetSpace ~
\InsetSpace ~
_endasm
-\begin_inset LatexCommand \index{\\_endasm}
+\begin_inset LatexCommand \index{\_endasm}
-\begin_inset LatexCommand \index{\\_\\_endasm}
+\begin_inset LatexCommand \index{\_\_endasm}
The compiler does not do any validation of the code within the
\family typewriter
_asm
The compiler does not do any validation of the code within the
\family typewriter
_asm
-\begin_inset LatexCommand \index{\\_asm}
+\begin_inset LatexCommand \index{\_asm}
-\begin_inset LatexCommand \index{\\_\\_asm}
+\begin_inset LatexCommand \index{\_\_asm}
_endasm
\size footnotesize
_endasm
\size footnotesize
-\begin_inset LatexCommand \index{\\_endasm}
+\begin_inset LatexCommand \index{\_endasm}
-\begin_inset LatexCommand \index{\\_\\_endasm}
+\begin_inset LatexCommand \index{\_\_endasm}
-\begin_inset LatexCommand \index{-\\/-peep-asm}
+\begin_inset LatexCommand \index{-\/-peep-asm}
A special keyword may be associated with a function declaring it as
\emph on
_naked
A special keyword may be associated with a function declaring it as
\emph on
_naked
-\begin_inset LatexCommand \index{\\_naked}
+\begin_inset LatexCommand \index{\_naked}
-\begin_inset LatexCommand \index{\\_\\_naked}
+\begin_inset LatexCommand \index{\_\_naked}
\emph on
_naked
\emph default
\emph on
_naked
\emph default
-\begin_inset LatexCommand \index{\\_\\_interrupt}
+\begin_inset LatexCommand \index{\_\_interrupt}
\InsetSpace ~
\InsetSpace ~
_asm
\InsetSpace ~
\InsetSpace ~
_asm
-\begin_inset LatexCommand \index{\\_asm}
+\begin_inset LatexCommand \index{\_asm}
-\begin_inset LatexCommand \index{\\_\\_asm}
+\begin_inset LatexCommand \index{\_\_asm}
\InsetSpace ~
\InsetSpace ~
_endasm
\InsetSpace ~
\InsetSpace ~
_endasm
-\begin_inset LatexCommand \index{\\_endasm}
+\begin_inset LatexCommand \index{\_endasm}
-\begin_inset LatexCommand \index{\\_\\_endasm}
+\begin_inset LatexCommand \index{\_\_endasm}
\begin_layout Verse
\family typewriter
\begin_layout Verse
\family typewriter
-Note, this is an
-\family default
-
-\family typewriter
-
-\family typewriter
-example, recent versions of SDCC generate
+ example, recent versions of SDCC generate
-the
-\family default
-
-\family typewriter
-
-\family typewriter
-code for simpleInterrupt() and nakedInterrupt()!
+ code for simpleInterrupt() and nakedInterrupt()!
\InsetSpace ~
\InsetSpace ~
\InsetSpace ~
\InsetSpace ~
\InsetSpace ~
\InsetSpace ~
\InsetSpace ~
\InsetSpace ~
\InsetSpace ~
\InsetSpace ~
\InsetSpace ~
\InsetSpace ~
\begin_layout Standard
The related directive #pragma exclude
\begin_layout Standard
The related directive #pragma exclude
-\begin_inset LatexCommand \index{\\#pragma exclude}
+\begin_inset LatexCommand \index{\#pragma exclude}
-\begin_inset LatexCommand \index{\\_asm}
+\begin_inset LatexCommand \index{\_asm}
-\begin_inset LatexCommand \index{\\_\\_asm}
+\begin_inset LatexCommand \index{\_\_asm}
b,00001$
\newline
_endasm
b,00001$
\newline
_endasm
-\begin_inset LatexCommand \index{\\_endasm}
+\begin_inset LatexCommand \index{\_endasm}
-\begin_inset LatexCommand \index{\\_\\_endasm}
+\begin_inset LatexCommand \index{\_\_endasm}
\InsetSpace ~
\InsetSpace ~
_endasm
\InsetSpace ~
\InsetSpace ~
_endasm
-\begin_inset LatexCommand \index{\\_endasm}
+\begin_inset LatexCommand \index{\_endasm}
-\begin_inset LatexCommand \index{\\_\\_endasm}
+\begin_inset LatexCommand \index{\_\_endasm}
\begin_inset LatexCommand \index{ACC (mcs51, ds390 register)}
\end_inset
\begin_inset LatexCommand \index{ACC (mcs51, ds390 register)}
\end_inset
\emph on
DPL
\emph default
\emph on
DPL
\emph default
\emph default
and
\emph on
\emph default
and
\emph on
-\begin_inset LatexCommand \index{-\\/-callee-saves}
+\begin_inset LatexCommand \index{-\/-callee-saves}
-\begin_inset LatexCommand \index{-\\/-stack-auto}
+\begin_inset LatexCommand \index{-\/-stack-auto}
\end_inset
-int-long-reent
\end_inset
-int-long-reent
-\begin_inset LatexCommand \index{-\\/-int-long-reent}
+\begin_inset LatexCommand \index{-\/-int-long-reent}
\family typewriter
putchar()
\begin_inset LatexCommand \index{putchar()}
\family typewriter
putchar()
\begin_inset LatexCommand \index{putchar()}
\end_layout
\begin_layout Standard
\end_layout
\begin_layout Standard
\begin_inset LatexCommand \index{printf()}
\end_inset
\family default
\begin_inset LatexCommand \index{printf()}
\end_inset
\family default
\family default
does not support float (except on ds390).
To enable this recompile it with the option
\family default
does not support float (except on ds390).
To enable this recompile it with the option
-\begin_inset LatexCommand \index{USE\\_FLOATS}
+\begin_inset LatexCommand \index{USE\_FLOATS}
\end_inset
\emph default
on the command line.
\end_inset
\emph default
on the command line.
\begin_inset ERT
status collapsed
\begin_inset ERT
status collapsed
-\begin_inset LatexCommand \index{-\\/-model-large}
+\begin_inset LatexCommand \index{-\/-model-large}
If you're short on code memory you might want to use
\family typewriter
printf_small()
If you're short on code memory you might want to use
\family typewriter
printf_small()
-\begin_inset LatexCommand \index{printf\\_small()}
+\begin_inset LatexCommand \index{printf\_small()}
\emph on
instead
\emph default
\emph on
instead
\emph default
\family default
For the mcs51 there additionally are assembly versions
\family typewriter
printf_tiny()
\family default
For the mcs51 there additionally are assembly versions
\family typewriter
printf_tiny()
-\begin_inset LatexCommand \index{printf\\_tiny() (mcs51)}
+\begin_inset LatexCommand \index{printf\_tiny() (mcs51)}
(subset of printf using less than 270 bytes) and
\family typewriter
printf_fast()
(subset of printf using less than 270 bytes) and
\family typewriter
printf_fast()
-\begin_inset LatexCommand \index{printf\\_fast() (mcs51)}
+\begin_inset LatexCommand \index{printf\_fast() (mcs51)}
-printf_fast_f()
-\begin_inset LatexCommand \index{printf\\_fast\\_f() (mcs51)}
+ printf_fast_f()
+\begin_inset LatexCommand \index{printf\_fast\_f() (mcs51)}
\end_inset
-xstack option
\end_inset
-xstack option
-\begin_inset LatexCommand \index{-\\/-xstack}
+\begin_inset LatexCommand \index{-\/-xstack}
-\begin_inset LatexCommand \index{-\\/-stack-auto}
+\begin_inset LatexCommand \index{-\/-stack-auto}
-\begin_inset LatexCommand \index{\\#pragma save}
+\begin_inset LatexCommand \index{\#pragma save}
-\begin_inset LatexCommand \index{\\#pragma restore}
+\begin_inset LatexCommand \index{\#pragma restore}
callee_saves
\series default
callee_saves
\series default
-\begin_inset LatexCommand \index{\\#pragma callee\\_saves}
+\begin_inset LatexCommand \index{\#pragma callee\_saves}
), the function names specified in #pragma\InsetSpace ~
callee_saves
), the function names specified in #pragma\InsetSpace ~
callee_saves
-\begin_inset LatexCommand \index{\\#pragma callee\\_saves}
+\begin_inset LatexCommand \index{\#pragma callee\_saves}
-\begin_inset LatexCommand \index{\\#pragma exclude}
+\begin_inset LatexCommand \index{\#pragma exclude}
To enable the normal register saving for ISR functions use #pragma\InsetSpace ~
exclude\InsetSpace ~
none
To enable the normal register saving for ISR functions use #pragma\InsetSpace ~
exclude\InsetSpace ~
none
-\begin_inset LatexCommand \index{\\#pragma exclude}
+\begin_inset LatexCommand \index{\#pragma exclude}
\end_inset
.
See also the related keyword _naked
\end_inset
.
See also the related keyword _naked
-\begin_inset LatexCommand \index{\\_naked}
+\begin_inset LatexCommand \index{\_naked}
-\begin_inset LatexCommand \index{\\_\\_naked}
+\begin_inset LatexCommand \index{\_\_naked}
-\begin_inset LatexCommand \index{\\#pragma less\\_pedantic}
+\begin_inset LatexCommand \index{\#pragma less\_pedantic}
disable_warning
\series default
<nnnn>
disable_warning
\series default
<nnnn>
-\begin_inset LatexCommand \index{\\#pragma disable\\_warning}
+\begin_inset LatexCommand \index{\#pragma disable\_warning}
-\begin_inset LatexCommand \index{\\#pragma nogcse}
+\begin_inset LatexCommand \index{\#pragma nogcse}
noinduction
\series default
noinduction
\series default
-\begin_inset LatexCommand \index{\\#pragma noinduction}
+\begin_inset LatexCommand \index{\#pragma noinduction}
noinvariant
\series default
noinvariant
\series default
-\begin_inset LatexCommand \index{\\#pragma noinvariant}
+\begin_inset LatexCommand \index{\#pragma noinvariant}
-\begin_inset LatexCommand \index{\\#pragma noiv}
+\begin_inset LatexCommand \index{\#pragma noiv}
nojtbound
\series default
nojtbound
\series default
-\begin_inset LatexCommand \index{\\#pragma nojtbound}
+\begin_inset LatexCommand \index{\#pragma nojtbound}
noloopreverse
\series default
noloopreverse
\series default
-\begin_inset LatexCommand \index{\\#pragma noloopreverse}
+\begin_inset LatexCommand \index{\#pragma noloopreverse}
nooverlay
\series default
nooverlay
\series default
-\begin_inset LatexCommand \index{\\#pragma nooverlay}
+\begin_inset LatexCommand \index{\#pragma nooverlay}
stackauto
\series default
stackauto
\series default
-\begin_inset LatexCommand \index{\\#pragma stackauto}
+\begin_inset LatexCommand \index{\#pragma stackauto}
-\begin_inset LatexCommand \index{-\\/-stack-auto}
+\begin_inset LatexCommand \index{-\/-stack-auto}
opt_code_speed
\series default
opt_code_speed
\series default
-\begin_inset LatexCommand \index{\\#pragma opt\\_code\\_speed}
+\begin_inset LatexCommand \index{\#pragma opt\_code\_speed}
opt_code_size
\series default
opt_code_size
\series default
-\begin_inset LatexCommand \index{\\#pragma opt\\_code\\_size}
+\begin_inset LatexCommand \index{\#pragma opt\_code\_size}
opt_code_balanced
\series default
opt_code_balanced
\series default
-\begin_inset LatexCommand \index{\\#pragma opt\\_code\\_balanced}
+\begin_inset LatexCommand \index{\#pragma opt\_code\_balanced}
std_sdcc89
\series default
std_sdcc89
\series default
-\begin_inset LatexCommand \index{\\#pragma std\\_sdcc89}
+\begin_inset LatexCommand \index{\#pragma std\_sdcc89}
-\begin_inset LatexCommand \index{\\#pragma std\\_c89}
+\begin_inset LatexCommand \index{\#pragma std\_c89}
std_sdcc99
\series default
std_sdcc99
\series default
-\begin_inset LatexCommand \index{\\#pragma std\\_sdcc99}
+\begin_inset LatexCommand \index{\#pragma std\_sdcc99}
-\begin_inset LatexCommand \index{\\#pragma std\\_c99}
+\begin_inset LatexCommand \index{\#pragma std\_c99}
codeseg
\series default
<name>
codeseg
\series default
<name>
-\begin_inset LatexCommand \index{\\#pragma codeseg}
+\begin_inset LatexCommand \index{\#pragma codeseg}
constseg
\series default
<name>
constseg
\series default
<name>
-\begin_inset LatexCommand \index{\\#pragma constseg}
+\begin_inset LatexCommand \index{\#pragma constseg}
-\begin_inset LatexCommand \index{\\#pragma pedantic\\_parse\\_number}
+\begin_inset LatexCommand \index{\#pragma pedantic\_parse\_number}
\newline
Below is an example on how to use this pragma.
\newline
Below is an example on how to use this pragma.
-Note: this functionality is not in conformance with standard!
+ Note: this functionality is not in conformance with standard!
\end_layout
\begin_layout Verse
\family typewriter
#pragma pedantic_parse_number +
\end_layout
\begin_layout Verse
\family typewriter
#pragma pedantic_parse_number +
-\begin_inset LatexCommand \index{\\#pragma pedantic\\_parse\\_number}
+\begin_inset LatexCommand \index{\#pragma pedantic\_parse\_number}
preproc_asm
\series default
preproc_asm
\series default
-\begin_inset LatexCommand \index{\\#pragma preproc\\_asm}
+\begin_inset LatexCommand \index{\#pragma preproc\_asm}
\family typewriter
#pragma preproc_asm -
\family typewriter
#pragma preproc_asm -
-\begin_inset LatexCommand \index{\\#pragma preproc\\_asm}
+\begin_inset LatexCommand \index{\#pragma preproc\_asm}
sdcc_hash
\series default
sdcc_hash
\series default
-\begin_inset LatexCommand \index{\\#pragma sdcc\\_hash}
+\begin_inset LatexCommand \index{\#pragma sdcc\_hash}
#pragma preproc_asm +
\newline
#pragma sdcc_hash +
#pragma preproc_asm +
\newline
#pragma sdcc_hash +
-\begin_inset LatexCommand \index{\\#pragma sdcc\\_hash}
+\begin_inset LatexCommand \index{\#pragma sdcc\_hash}
\family typewriter
#pragma save
\family typewriter
#pragma save
-\begin_inset LatexCommand \index{\\#pragma save}
+\begin_inset LatexCommand \index{\#pragma save}
/* save the current settings */
\newline
#pragma nogcse
/* save the current settings */
\newline
#pragma nogcse
-\begin_inset LatexCommand \index{\\#pragma nogcse}
+\begin_inset LatexCommand \index{\#pragma nogcse}
/* turnoff global subexpression elimination */
\newline
#pragma noinduction
/* turnoff global subexpression elimination */
\newline
#pragma noinduction
-\begin_inset LatexCommand \index{\\#pragma noinduction}
+\begin_inset LatexCommand \index{\#pragma noinduction}
}
\newline
#pragma restore
}
\newline
#pragma restore
-\begin_inset LatexCommand \index{\\#pragma restore}
+\begin_inset LatexCommand \index{\#pragma restore}
\begin_layout Standard
The compiler creates the following #defines
\begin_layout Standard
The compiler creates the following #defines
-\begin_inset LatexCommand \index{\\#defines}
+\begin_inset LatexCommand \index{\#defines}
\begin_layout Standard
SDCC_mcs51
\begin_layout Standard
SDCC_mcs51
-\begin_inset LatexCommand \index{SDCC\\_mcs51}
+\begin_inset LatexCommand \index{SDCC\_mcs51}
-\begin_inset LatexCommand \index{SDCC\\_ds390}
+\begin_inset LatexCommand \index{SDCC\_ds390}
-\begin_inset LatexCommand \index{SDCC\\_z80}
+\begin_inset LatexCommand \index{SDCC\_z80}
\begin_layout Standard
__mcs51
\begin_layout Standard
__mcs51
-\begin_inset LatexCommand \index{\\_\\_mcs51}
+\begin_inset LatexCommand \index{\_\_mcs51}
-\begin_inset LatexCommand \index{\\_\\_ds390}
+\begin_inset LatexCommand \index{\_\_ds390}
-\begin_inset LatexCommand \index{\\_\\_hc08}
+\begin_inset LatexCommand \index{\_\_hc08}
-\begin_inset LatexCommand \index{\\_\\_z80}
+\begin_inset LatexCommand \index{\_\_z80}
\begin_layout Standard
SDCC_STACK_AUTO
\begin_layout Standard
SDCC_STACK_AUTO
-\begin_inset LatexCommand \index{SDCC\\_STACK\\_AUTO}
+\begin_inset LatexCommand \index{SDCC\_STACK\_AUTO}
\begin_layout Standard
SDCC_MODEL_SMALL
\begin_layout Standard
SDCC_MODEL_SMALL
-\begin_inset LatexCommand \index{SDCC\\_MODEL\\_SMALL}
+\begin_inset LatexCommand \index{SDCC\_MODEL\_SMALL}
\begin_layout Standard
SDCC_MODEL_MEDIUM
\begin_layout Standard
SDCC_MODEL_MEDIUM
-\begin_inset LatexCommand \index{SDCC\\_MODEL\\_MEDIUM}
+\begin_inset LatexCommand \index{SDCC\_MODEL\_MEDIUM}
\begin_layout Standard
SDCC_MODEL_LARGE
\begin_layout Standard
SDCC_MODEL_LARGE
-\begin_inset LatexCommand \index{SDCC\\_MODEL\\_LARGE}
+\begin_inset LatexCommand \index{SDCC\_MODEL\_LARGE}
\begin_layout Standard
SDCC_USE_XSTACK
\begin_layout Standard
SDCC_USE_XSTACK
-\begin_inset LatexCommand \index{SDCC\\_USE\\_XSTACK}
+\begin_inset LatexCommand \index{SDCC\_USE\_XSTACK}
\begin_layout Standard
SDCC_STACK_TENBIT
\begin_layout Standard
SDCC_STACK_TENBIT
-\begin_inset LatexCommand \index{SDCC\\_STACK\\_TENBIT}
+\begin_inset LatexCommand \index{SDCC\_STACK\_TENBIT}
\begin_layout Standard
SDCC_MODEL_FLAT24
\begin_layout Standard
SDCC_MODEL_FLAT24
-\begin_inset LatexCommand \index{SDCC\\_MODEL\\_FLAT24}
+\begin_inset LatexCommand \index{SDCC\_MODEL\_FLAT24}
should define an sfr with the name _XPAGE
\family typewriter
should define an sfr with the name _XPAGE
\family typewriter
-\begin_inset LatexCommand \index{\\_XPAGE (mcs51)}
+\begin_inset LatexCommand \index{\_XPAGE (mcs51)}
\end_layout
\begin_layout Standard
\end_layout
\begin_layout Standard
-Please note that indentations within a
+Please note that indentations within a
\family default
have to be done with a tabulator character.
\end_layout
\family default
have to be done with a tabulator character.
\end_layout
-\begin_inset LatexCommand \index{PIC14!Options!-\\/-debug-extra}
+\begin_inset LatexCommand \index{PIC14!Options!-\/-debug-extra}
-\begin_inset LatexCommand \index{PIC14!Options!-\\/-no-pcode-opt}
+\begin_inset LatexCommand \index{PIC14!Options!-\/-no-pcode-opt}
-\begin_inset LatexCommand \index{PIC14!Options!-\\/-stack-loc}
+\begin_inset LatexCommand \index{PIC14!Options!-\/-stack-loc}
-\begin_inset LatexCommand \index{PIC14!Options!-\\/-stack-size}
+\begin_inset LatexCommand \index{PIC14!Options!-\/-stack-size}
-\begin_inset LatexCommand \index{PIC16!Options!-\\/-callee-saves}
+\begin_inset LatexCommand \index{PIC16!Options!-\/-callee-saves}
\end_inset
-fommit-frame-pointer
\end_inset
-fommit-frame-pointer
-\begin_inset LatexCommand \index{PIC16!Options!-\\/-fommit-frame-pointer}
+\begin_inset LatexCommand \index{PIC16!Options!-\/-fommit-frame-pointer}
-\begin_inset LatexCommand \index{-\\/-debug}
+\begin_inset LatexCommand \index{-\/-debug}
\begin_layout Description
stack
\begin_layout Description
stack
-\begin_inset LatexCommand \index{PIC16!Pragmas!\\#pragma stack}
+\begin_inset LatexCommand \index{PIC16!Pragmas!\#pragma stack}
\begin_layout Description
code
\begin_layout Description
code
-\begin_inset LatexCommand \index{PIC16!Pragmas!\\#pragma code}
+\begin_inset LatexCommand \index{PIC16!Pragmas!\#pragma code}
The FILE type is actually a generic pointer which defines one more type
of generic pointers, the
\emph on
The FILE type is actually a generic pointer which defines one more type
of generic pointers, the
\emph on
This new type has the format:
\end_layout
This new type has the format:
\end_layout
\begin_layout Standard
In order to increase performance
\emph on
\begin_layout Standard
In order to increase performance
\emph on
- is declared in stdio.h as having its parameter in WREG (it has the wparam
+is declared in stdio.h as having its parameter in WREG (it has the wparam
keyword).
In stdio.h exists the macro PUTCHAR(arg) that defines the putchar function
in a user-friendly way.
keyword).
In stdio.h exists the macro PUTCHAR(arg) that defines the putchar function
in a user-friendly way.
\begin_layout Standard
For sprintf and vsprintf
\emph on
\begin_layout Standard
For sprintf and vsprintf
\emph on
- should normally be a data pointer where the resulting string will be placed.
+should normally be a data pointer where the resulting string will be placed.
No range checking is done so the user should allocate the necessery buffer.
For fprintf and vfprintf
\emph on
No range checking is done so the user should allocate the necessery buffer.
For fprintf and vfprintf
\emph on
\labelwidthstring 00.00.0000
\series medium
\labelwidthstring 00.00.0000
\series medium
- this declares the function prototype for the
+this declares the function prototype for the
\emph on
handler
\emph default
\emph on
handler
\emph default
-\begin_inset LatexCommand \index{-\\/-debug}
+\begin_inset LatexCommand \index{-\/-debug}
\newline
\family typewriter
\newline
\family typewriter
more often than other compilers.
Eventually insert explicit casts to
\family typewriter
more often than other compilers.
Eventually insert explicit casts to
\family typewriter
\family default
.
Also check that the ~\InsetSpace ~
operator
\family default
.
Also check that the ~\InsetSpace ~
operator
-\begin_inset LatexCommand \index{\\~\\/ Operator}
+\begin_inset LatexCommand \index{\~\/ Operator}
\begin_layout Itemize
check for differences in printf parameters (some compilers push (va_arg
\begin_layout Itemize
check for differences in printf parameters (some compilers push (va_arg
-\begin_inset LatexCommand \index{vararg, va\\_arg}
+\begin_inset LatexCommand \index{vararg, va\_arg}
\begin_inset Text
\begin_layout Standard
\begin_inset Text
\begin_layout Standard
-You're reading it right now
+You're reading it right now
\InsetSpace ~
\InsetSpace ~
\InsetSpace ~
\InsetSpace ~
\begin_inset Text
\begin_layout Standard
\begin_inset Text
\begin_layout Standard
\InsetSpace ~
\InsetSpace ~
\InsetSpace ~
\InsetSpace ~
\emph default
\bar default
\noun default
\emph default
\bar default
\noun default
\InsetSpace ~
\InsetSpace ~
\InsetSpace ~
\InsetSpace ~
-\begin_inset LatexCommand \index{-\\/-dumpall}
+\begin_inset LatexCommand \index{-\/-dumpall}
+
+\family default
+will do.
\end_layout
\begin_layout Section
\end_layout
\begin_layout Section
You'll find some small examples in the directory
\emph on
sdcc/device/examples/.
You'll find some small examples in the directory
\emph on
sdcc/device/examples/.
- More examples and libraries are available at
+More examples and libraries are available at
-The SDCC Open Knowledge Resource
+ The SDCC Open Knowledge Resource
\begin_inset LatexCommand \url{http://sdccokr.dl9sec.de/}
\end_inset
\begin_inset LatexCommand \url{http://sdccokr.dl9sec.de/}
\end_inset
\begin_inset LatexCommand \url{http://www.pjrc.com/tech/8051/}
\end_inset
\begin_inset LatexCommand \url{http://www.pjrc.com/tech/8051/}
\end_inset
\emph on
loop invariant
\emph default
\emph on
loop invariant
\emph default
\emph default
of loop induction variables.
In addition to the strength reduction the optimizer marks the induction
\emph default
of loop induction variables.
In addition to the strength reduction the optimizer marks the induction
-noinduction option) or for a given function only using #pragma\InsetSpace ~
noinduction
-noinduction option) or for a given function only using #pragma\InsetSpace ~
noinduction
-\begin_inset LatexCommand \index{\\#pragma noinduction}
+\begin_inset LatexCommand \index{\#pragma noinduction}
\begin_layout Standard
The pragma nojtbound
\begin_layout Standard
The pragma nojtbound
-\begin_inset LatexCommand \index{\\#pragma nojtbound}
+\begin_inset LatexCommand \index{\#pragma nojtbound}
-i = ((i << 1) | (i >> 7));
+i = ((i << 1) | (i >> 7));
\newline
\family typewriter
\newline
\family typewriter
-i = ((i << 4) | (i >> 4));
+i = ((i << 4) | (i >> 4));
\newline
\family typewriter
\newline
\family typewriter
--datapointer so little-endian is the more efficient byte order.
+-datapointer
+\emph on
+
+\emph default
+so little-endian is the more efficient byte order.
-\begin_inset LatexCommand \index{-\\/-peep-file}
+\begin_inset LatexCommand \index{-\/-peep-file}
\emph default
-acall-ajmp
\emph default
-acall-ajmp
-\begin_inset LatexCommand \index{ajmp}
+\begin_inset LatexCommand \index{-\/-acall-ajmp}
Currently implemented are
\emph on
labelInRange, labelRefCount, labelIsReturnOnly, operandsNotSame, xramMovcOption,
Currently implemented are
\emph on
labelInRange, labelRefCount, labelIsReturnOnly, operandsNotSame, xramMovcOption,
- 24bitMode, portIsDS390, 24bitModeAndPortDS390
+ 24bitMode, portIsDS390, 24bitModeAndPortDS390
\emph default
.
\end_layout
\emph default
.
\end_layout
-\begin_inset LatexCommand \index{-\\/-stack-auto}
+\begin_inset LatexCommand \index{-\/-stack-auto}
-
-\family typewriter
-s foo1 (
-
-\family typewriter
-s parms) /* invalid in SDCC although allowed in ANSI */
+ s parms) /* invalid in SDCC although allowed in ANSI */
\begin_layout Itemize
Old K&R style
\begin_layout Itemize
Old K&R style
-\begin_inset LatexCommand \index{K\\&R style}
+\begin_inset LatexCommand \index{K\&R style}
-
-\family typewriter
-i=0; i<10; i++) /* is invalid in SDCC although allowed in C99 */
+ i=0; i<10; i++) /* is invalid in SDCC although allowed in C99 */
-
-\family typewriter
-int increment (int a) { return a+1; } /* inlines the increment without function
- call overhead */
+ int increment (int a) { return a+1; } /* inlines the increment without
+ function call overhead */
-int *
-\family default
-
-\family typewriter
\series bold
restrict
\begin_inset LatexCommand \index{inline (not supported)}
\series bold
restrict
\begin_inset LatexCommand \index{inline (not supported)}
-
-\family typewriter
-p; /* accepted but ignored */
+ p; /* accepted but ignored */
-\begin_inset LatexCommand \index{-\\/-std-c89}
+\begin_inset LatexCommand \index{-\/-std-c89}
-\begin_inset LatexCommand \index{-\\/-std-c99}
+\begin_inset LatexCommand \index{-\/-std-c99}
'_naked'.
Compliant equivalents of these keywords are always available in a form
that begin with two underscores
'_naked'.
Compliant equivalents of these keywords are always available in a form
that begin with two underscores
-\begin_inset LatexCommand \index{\\_\\_ (prefix for extended keywords)}
+\begin_inset LatexCommand \index{\_\_ (prefix for extended keywords)}
\shape italic
This is an excerpt from an article published in Circuit Cellar Magazine
\shape italic
This is an excerpt from an article published in Circuit Cellar Magazine
August 2000
\series default
.
August 2000
\series default
.
\shape slanted
\size footnotesize
see f.e.
\shape slanted
\size footnotesize
see f.e.
gen51Code()
\family default
gen51Code()
\family default
-\shape default
-
-\shape slanted
-in
-\shape default
-
src/mcs51/gen.c
\end_layout
src/mcs51/gen.c
\end_layout