* src/SDCCast.c (decorateType): fixed bug 1368489
[fw/sdcc] / doc / sdccman.lyx
index e5ff75874e2e895d5bb4d5ddce6fcfd220725698..22df670dd1190325b5c300d7db82f1ac34e9d581 100644 (file)
@@ -82,7 +82,7 @@ SDCC Compiler User Guide
 
 
 \size normal 
-SDCC 2.5.5
+SDCC 2.5.4
 \size footnotesize 
 
 \newline 
@@ -245,6 +245,7 @@ status Collapsed
 \newline 
 SDCC also comes with a companion source level debugger SDCDB, the debugger
  currently uses ucSim a freeware simulator for 8051 and other micro-controllers.
+ SDCDB and ucSim are currently not available on Win32 platforms.
  
 \newline 
 
@@ -4120,9 +4121,11 @@ link-gbz80 - The Z80 and GameBoy Z80 linkers.
 \layout Itemize
 
 s51 - The ucSim 8051 simulator.
+ Not available on Win32 platforms.
 \layout Itemize
 
 sdcdb - The source debugger.
+ Not available on Win32 platforms.
 \layout Itemize
 
 packihx - A tool to pack (compress) Intel hex files.
@@ -4206,6 +4209,7 @@ S51
 .
  It currently supports the core mcs51, the Dallas DS80C390 and the Phillips
  XA51 family.
+ S51 is currently not available on Win32 platfors.
 \layout Subsection
 
 sdcdb - Source Level Debugger
@@ -4229,7 +4233,7 @@ Sdcdb
 \end_inset 
 
 , but can be easily changed to use other simulators.
+ Sdcdb is currently not available on Win32 platfors.
 \layout Chapter
 
 Using SDCC
@@ -6045,6 +6049,33 @@ Generate code for Small Model programs, see section Memory Models for more
 \labelwidthstring 00.00.0000
 
 
+\series bold 
+-
+\begin_inset ERT
+status Collapsed
+
+\layout Standard
+
+\backslash 
+/
+\end_inset 
+
+-model-medium
+\begin_inset LatexCommand \index{-\/-model-medium}
+
+\end_inset 
+
+
+\series default 
+ Generate code for Medium model programs, see section Memory Models for
+ more details.
+ If this option is used all source files in the project have to be compiled
+ with this option.
+ It must also be used when invoking the linker.
+\layout List
+\labelwidthstring 00.00.0000
+
+
 \series bold 
 -
 \begin_inset ERT
@@ -8770,6 +8801,11 @@ Paged xdata access is just as straightforward as using the other addressing
 \end_inset 
 
 ).
+ This is the 
+\series bold 
+default
+\series default 
+ storage class for the Medium Memory model, e.g.:
 \layout Verse
 
 
@@ -14731,12 +14767,12 @@ MCS51 Memory Models
 
 \layout Subsubsection
 
-Small and Large
+Small, Medium and Large
 \layout Standard
 
-SDCC allows two memory models for MCS51 code, 
+SDCC allows three memory models for MCS51 code, 
 \shape slanted 
-small
+small, medium
 \shape default 
  and 
 \shape slanted 
@@ -14748,16 +14784,15 @@ large
 never
 \emph default 
  be combined together or the results would be unpredictable.
- The library routines supplied with the compiler are compiled as both small
- and large.
- The compiled library modules are contained in separate directories as small
- and large so that you can link to either set.
+ The library routines supplied with the compiler are compiled as small,
+ medium and large.
+ The compiled library modules are contained in separate directories as small,
+ medium and large so that you can link to the appropriate set.
 \layout Standard
 
-When the large model is used all variables declared without a storage class
- will be allocated into the external ram, this includes all parameters and
- local variables (for non-reentrant
+When the medium or large model is used all variables declared without a
+ storage class will be allocated into the external ram, this includes all
parameters and local variables (for non-reentrant
 \begin_inset LatexCommand \index{reentrant}
 
 \end_inset 
@@ -15425,7 +15460,7 @@ The compiler creates the following #defines
 
 
 \begin_inset  Tabular
-<lyxtabular version="3" rows="10" columns="2">
+<lyxtabular version="3" rows="11" columns="2">
 <features>
 <column alignment="center" valignment="top" leftline="true" width="0">
 <column alignment="center" valignment="top" leftline="true" rightline="true" width="0">
@@ -15626,6 +15661,43 @@ status Collapsed
 
 \layout Standard
 
+SDCC_MODEL_MEDIUM
+\begin_inset LatexCommand \index{SDCC\_MODEL\_MEDIUM}
+
+\end_inset 
+
+
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+when 
+\emph on 
+-
+\begin_inset ERT
+status Collapsed
+
+\layout Standard
+
+\backslash 
+/
+\end_inset 
+
+-model-medium
+\emph default 
+ is used
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
 SDCC_MODEL_LARGE
 \begin_inset LatexCommand \index{SDCC\_MODEL\_LARGE}
 
@@ -19986,7 +20058,7 @@ on, which also builds and installs the debugger in the target directory
  specified during configuration.
  The debugger allows you debug BOTH at the C source and at the ASM source
  level.
- Sdcdb is available on Unix platforms only.
+ Sdcdb is currently not available on Win32 platforms.
 \layout Section
 
 Compiling for Debugging
@@ -25728,7 +25800,7 @@ not
 \emph default 
  be recognized.
  They are standard C expressions, so I heartily recommend these be the only
- way to get the highest order bit, (it is portable).
+ way to get the higher order byte/word, (it is portable).
  Of course it will be recognized even if it is embedded in other expressions,
  e.g.:
 \layout Verse
@@ -26252,6 +26324,18 @@ return rets;/* is invalid in SDCC although allowed in ANSI */
 \end_deeper 
 \layout Itemize
 
+initialization of structure arrays must be fully braced.
+\begin_deeper 
+\layout Verse
+
+
+\family typewriter 
+struct s { char x } a[] = {1, 2}; /* invalid in SDCC */
+\newline 
+struct s { char x } a[] = {{1}, {2}}; /* OK */
+\end_deeper 
+\layout Itemize
+
 'long long
 \begin_inset LatexCommand \index{long long (not supported)}