* doc/cdbfileformat.lyx, doc/sdccman.lyx, doc/test_suite_spec.lyx:
[fw/sdcc] / doc / sdccman.lyx
index a761172bf5b4d96a864492d9cb2dc06f8fee1288..6b052fc6786a55d002c897f0e8350ffb01dfd9fa 100644 (file)
@@ -1,4 +1,4 @@
-#LyX 1.4.3 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
@@ -51,7 +51,7 @@
 \begin_body
 
 \begin_layout Standard
-\begin_inset Note Comment
+\begin_inset Note Note
 status collapsed
 
 \begin_layout Standard
@@ -104,7 +104,7 @@ SDCC Compiler User Guide
 \begin_layout Date
 
 \size normal
-SDCC 2.6.4
+SDCC 2.6.5
 \size footnotesize
 
 \newline
@@ -114,7 +114,7 @@ $Revision$
 \end_layout
 
 \begin_layout Standard
-\begin_inset Note Comment
+\begin_inset Note Note
 status collapsed
 
 \begin_layout Standard
@@ -1038,8 +1038,8 @@ The SDCC home page at
  Some of the other tools (simulator and assembler) included with SDCC contain
  their own documentation and can be found in the source distribution.
  If you want the latest unreleased software, the complete source package
- is available directly from Subversion on https://svn.sourceforge.net/svnroot/sdcc
-/trunk/sdcc.
+ is available directly from Subversion on https://sdcc.svn.sourceforge.net/svnroot/
+sdcc/trunk/sdcc.
 \end_layout
 
 \begin_layout Section
@@ -1561,7 +1561,8 @@ a gcc compiler and last but not least
 \end_layout
 
 \begin_layout Enumerate
-the binaries can be built by cross compiling on Sourceforge's compile farm.
+the binaries can be built by cross compiling on SDCC Distributed Compile
+ Farm.
 \end_layout
 
 \begin_layout Standard
@@ -3741,7 +3742,7 @@ lib/
 \end_layout
 
 \begin_layout Standard
-\begin_inset Note Comment
+\begin_inset Note Note
 status collapsed
 
 \begin_layout Standard
@@ -3797,17 +3798,17 @@ Building SDCC on Linux
 \series medium
 Download the source package
 \series default
- either from the SDCC Subversion repository or from the nightly snapshots
+ either from the SDCC Subversion repository or from snapshot builds
 \series medium
 , it will be named something like sdcc
 \series default
-.src
+-src
 \series medium
-.t
+-yyyymmdd-rrrr.t
 \series default
 ar.
 \series medium
-gz
+bz2
 \series default
  
 \begin_inset LatexCommand \url{http://sdcc.sourceforge.net/snap.php}
@@ -3829,10 +3830,12 @@ Bring up a command line terminal, such as xterm.
 Unpack the file using a command like: 
 \family sans
 \series bold
-"tar -xvzf sdcc.src.tar.gz
+"tar -xvzf sdcc-src-yyyymmdd-rrrr.tar.bz2
+\begin_inset Quotes srd
+\end_inset
+
+
 \family default
-\series default
-"
 \series medium
 , this will create a sub-directory called sdcc with all of the sources.
 \end_layout
@@ -4146,7 +4149,7 @@ Building SDCC Using Microsoft Visual C++ 6.0/NET (MSVC)
 Download the source package
 \series default
  either from the SDCC Subversion repository or from the 
-\begin_inset LatexCommand \url[nightly snapshots]{http://sdcc.sourceforge.net/snap.php}
+\begin_inset LatexCommand \url[snapshot builds]{http://sdcc.sourceforge.net/snap.php}
 
 \end_inset
 
@@ -4154,9 +4157,9 @@ Download the source package
 \series medium
 , it will be named something like sdcc
 \series default
-.src
+-src
 \series medium
-.tgz.
+-yyyymmdd-rrrr.tar.bz2.
 
 \series default
  SDCC is distributed with all the projects, workspaces, and files you need
@@ -6559,7 +6562,7 @@ Processor Selection Options
 \end_layout
 
 \begin_layout Standard
-\begin_inset Note Comment
+\begin_inset Note Note
 status collapsed
 
 \begin_layout Standard
@@ -6594,7 +6597,7 @@ I think it is fair to direct users there for now.
 \end_layout
 
 \begin_layout Standard
-\begin_inset Note Comment
+\begin_inset Note Note
 status collapsed
 
 \begin_layout Standard
@@ -9277,6 +9280,50 @@ status collapsed
 \begin_layout Standard
 
 
+\backslash
+/
+\end_layout
+
+\end_inset
+
+-funsigned-char
+\begin_inset LatexCommand \index{-\/-funsigned-char}
+
+\end_inset
+
+
+\series default
+ The default signedness for every type is
+\family typewriter
+ signed
+\family default
+.
+ In some embedded environments the default signedness of
+\family typewriter
+ char
+\family default
+ is
+\family typewriter
+ unsigned
+\family default
+.
+ To set the signess for characters to unsigned, use the option --funsigned-char.
+ If this option is set and no signedness keyword (unsigned/signed) is given,
+ a char will be signed.
+ All other types are unaffected.
+\end_layout
+
+\begin_layout List
+\labelwidthstring 00.00.0000
+
+\series bold
+-
+\begin_inset ERT
+status collapsed
+
+\begin_layout Standard
+
+
 \backslash
 /
 \end_layout
@@ -9475,6 +9522,33 @@ status collapsed
 \begin_layout Standard
 
 
+\backslash
+/
+\end_layout
+
+\end_inset
+
+-no-gen-comments
+\begin_inset LatexCommand \index{-\/-no-gen-comments}
+
+\end_inset
+
+
+\series default
+ Will not include code generator comments in the generated files.
+\end_layout
+
+\begin_layout List
+\labelwidthstring 00.00.0000
+
+\series bold
+-
+\begin_inset ERT
+status collapsed
+
+\begin_layout Standard
+
+
 \backslash
 /
 \end_layout
@@ -14505,7 +14579,841 @@ MCS51/DS390 Startup Code
 \end_layout
 
 \begin_layout Standard
-The compiler inserts a call to the C routine 
+The compiler triggers the linker to link certain initialization modules
+ from the runtime library
+\begin_inset LatexCommand \index{Runtime library}
+
+\end_inset
+
+ called crt<something>.
+ Only the necessary ones are linked, for instance crtxstack.asm (GSINIT1,
+ GSINIT5) is not linked unless the --xstack option is used.
+ These modules are highly entangled by the use of special segments/areas,
+ but a common layout is shown below:
+\end_layout
+
+\begin_layout Verse
+
+\family typewriter
+\series bold
+\size footnotesize
+(main.asm)
+\end_layout
+
+\begin_layout Verse
+
+\family typewriter
+\size footnotesize
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+.area HOME (CODE)
+\newline
+__interrupt_vect:
+\newline
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+ljmp __sdcc_gsinit_startup
+\end_layout
+
+\begin_layout Verse
+
+\family typewriter
+\series bold
+\size footnotesize
+(crtstart.asm)
+\end_layout
+
+\begin_layout Verse
+
+\family typewriter
+\size footnotesize
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+.area GSINIT0 (CODE)
+\newline
+__sdcc_gsinit_startup::
+\newline
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+mov sp,#__start__stack - 1
+\end_layout
+
+\begin_layout Verse
+
+\family typewriter
+\series bold
+\size footnotesize
+(crtxstack.asm)
+\end_layout
+
+\begin_layout Verse
+
+\family typewriter
+\size footnotesize
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+.area GSINIT1 (CODE)
+\newline
+__sdcc_init_xstack::
+\newline
+; Need to initialize in GSINIT1 in
+ case the user's __sdcc_external_startup uses the xstack.
+\newline
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+mov __XPAGE,#(__start__x
+stack >> 8)
+\newline
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+mov _spx,#__start__xstack
+\end_layout
+
+\begin_layout Verse
+
+\family typewriter
+\series bold
+\size footnotesize
+(crtstart.asm)
+\end_layout
+
+\begin_layout Verse
+
+\family typewriter
+\size footnotesize
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+.area GSINIT2 (CODE)
+\newline
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+lcall __sdcc_external_startup
+\newline
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+mov a,dpl
+\newline
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+jz __sdcc_init_data
+\newline
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+ljmp
+ __sdcc_program_startup
+\newline
+__sdcc_init_data:
+\end_layout
+
+\begin_layout Verse
+
+\family typewriter
+\series bold
+\size footnotesize
+(crtxinit.asm)
+\end_layout
+
+\begin_layout Verse
+
+\family typewriter
+\size footnotesize
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+.area GSINIT3 (CODE)
+\newline
+__mcs51_genXINIT::
+\newline
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+mov r1,#l_XINIT
+\newline
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+mov a,r1
+\newline
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+orl a,#(l_XINIT
+ >> 8)
+\newline
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+jz 00003$
+\newline
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+mov r2,#((l_XINIT+255) >> 8)
+\newline
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+mov dptr,#s_XINIT
+\newline
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+mov r0,#s_XISEG
+\newline
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+mov
+ __XPAGE,#(s_XISEG >> 8)
+\newline
+00001$:\InsetSpace ~
+clr a
+\newline
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+movc a,@a+dptr
+\newline
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+movx @r0,a
+\newline
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+inc dptr
+\newline
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+inc
+ r0
+\newline
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+cjne r0,#0,00002$
+\newline
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+inc __XPAGE
+\newline
+00002$:\InsetSpace ~
+djnz r1,00001$
+\newline
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+djnz r2,00001$
+\newline
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+mov __XPAGE,#0
+xFF
+\newline
+00003$:
+\end_layout
+
+\begin_layout Verse
+
+\family typewriter
+\series bold
+\size footnotesize
+(crtclear.asm)
+\end_layout
+
+\begin_layout Verse
+
+\family typewriter
+\size footnotesize
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+.area GSINIT4 (CODE)
+\newline
+__mcs51_genRAMCLEAR::
+\newline
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+clr a
+\newline
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+mov r0,#(l_IRAM-1)
+\newline
+00004$:\InsetSpace ~
+mov
+ @r0,a
+\newline
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+djnz r0,00004$
+\newline
+; _mcs51_genRAMCLEAR() end
+\end_layout
+
+\begin_layout Verse
+
+\family typewriter
+\series bold
+\size footnotesize
+(crtxclear.asm)
+\end_layout
+
+\begin_layout Verse
+
+\family typewriter
+\size footnotesize
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+.area GSINIT4 (CODE)
+\newline
+__mcs51_genXRAMCLEAR::
+\newline
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+mov r0,#l_PSEG
+\newline
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+mov a,r0
+\newline
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+jz 00006$
+\newline
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+mov
+ r1,#s_PSEG
+\newline
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+mov __XPAGE,#(s_PSEG >> 8)
+\newline
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+clr a
+\newline
+00005$:\InsetSpace ~
+movx @r1,a
+\newline
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+inc r1
+\newline
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+djnz r0,00005$
+\newline
+0
+0006$:
+\newline
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+mov r0,#l_XSEG
+\newline
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+mov a,r0
+\newline
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+orl a,#(l_XSEG >> 8)
+\newline
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+jz 00008$
+\newline
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+mov r1,#((l_XSEG
+ + 255) >> 8)
+\newline
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+mov dptr,#s_XSEG
+\newline
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+clr a
+\newline
+00007$:\InsetSpace ~
+movx @dptr,a
+\newline
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+inc dptr
+\newline
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+djnz r0,00007$
+\newline
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+djnz
+ r1,00007$
+\newline
+00008$:
+\end_layout
+
+\begin_layout Verse
+
+\family typewriter
+\series bold
+\size footnotesize
+(crtxstack.asm)
+\end_layout
+
+\begin_layout Verse
+
+\family typewriter
+\size footnotesize
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+.area GSINIT5 (CODE)
+\newline
+; Need to initialize in GSINIT5 because __mcs51_genXINIT
+ modifies __XPAGE
+\newline
+; and __mcs51_genRAMCLEAR modifies _spx.
+\newline
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+mov __XPAGE,#(__start__x
+stack >> 8)
+\newline
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+mov _spx,#__start__xstack
+\end_layout
+
+\begin_layout Verse
+
+\family typewriter
+\series bold
+\size footnotesize
+(application modules)
+\end_layout
+
+\begin_layout Verse
+
+\family typewriter
+\size footnotesize
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+.area GSINIT (CODE)
+\end_layout
+
+\begin_layout Verse
+
+\family typewriter
+\series bold
+\size footnotesize
+(main.asm)
+\end_layout
+
+\begin_layout Verse
+
+\family typewriter
+\size footnotesize
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+.area GSFINAL (CODE)
+\newline
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+ljmp __sdcc_program_startup
+\newline
+;---------------------------------
+-----------------------
+\newline
+; Home
+\newline
+;--------------------------------------------------
+------
+\newline
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+.area HOME (CODE)
+\newline
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+.area CSEG (CODE)
+\newline
+__sdcc_program_startup:
+\newline
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+lcall _main
+\newline
+;
+ return from main will lock up
+\newline
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+sjmp .
+\end_layout
+
+\begin_layout Standard
+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()}
@@ -14518,18 +15426,17 @@ _sdcc_external_startup()
  
 \series default
 at the start of the CODE area.
- This routine is in the runtime library
+ This routine is also in the runtime library
 \begin_inset LatexCommand \index{Runtime library}
 
 \end_inset
 
-.
- By default this routine returns 0, if this routine returns a non-zero value,
- the static & global variable initialization will be skipped and the function
- main will be invoked.
+ and returns 0 by default.
+ If this routine returns a non-zero value, the static & global variable
+ initialization will be skipped and the function main will be invoked.
  Otherwise static & global variables will be initialized before the function
  main is invoked.
- You could add a 
+ You could add an 
 \emph on
 _sdcc_external_startup()
 \emph default
@@ -15425,7 +16332,7 @@ The inline assembler code can contain any valid code understood by the assembler
 \end_inset
 
  or online at 
-\begin_inset LatexCommand \url{http://svn.sourceforge.net/viewvc/*checkout*/sdcc/trunk/sdcc/as/doc/asxhtm.html}
+\begin_inset LatexCommand \url{http://sdcc.svn.sourceforge.net/viewvc/*checkout*/sdcc/trunk/sdcc/as/doc/asxhtm.html}
 
 \end_inset
 
@@ -17872,7 +18779,7 @@ and
 not
 \emph default
  support long variables and field widths).
- Be sure to only use only one of these printf options within a project.
+ Be sure to use only one of these printf options within a project.
 \newline
 
 \end_layout
@@ -19105,7 +20012,7 @@ LGPL
 \end_layout
 
 \begin_layout Standard
-\begin_inset Note Comment
+\begin_inset Note Note
 status collapsed
 
 \begin_layout Standard
@@ -20749,19 +21656,37 @@ sfr
 \begin_layout Verse
 
 \family typewriter
-__sfr __at (0x92) _XPAGE; /* Cypress EZ-USB family */
+__sfr __at (0x85) _XPAGE; /* Ramtron VRS51 family a.k.a.
+ MPAGE */
+\end_layout
+
+\begin_layout Verse
+
+\family typewriter
+__sfr __at (0x92) _XPAGE; /* Cypress EZ-USB family, Texas Instruments (Chipcon)
+ a.k.a.
+ MPAGE */
 \end_layout
 
 \begin_layout Verse
 
 \family typewriter
-__sfr __at (0xaf) _XPAGE; /* some Silicon Labs (Cygnal) chips */
+__sfr __at (0x91) _XPAGE; /* Infineon (Siemens) C500 family a.k.a.
+ XPAGE */
 \end_layout
 
 \begin_layout Verse
 
 \family typewriter
-__sfr __at (0xaa) _XPAGE; /* some Silicon Labs (Cygnal) chips */
+__sfr __at (0xaf) _XPAGE; /* some Silicon Labs (Cygnal) chips a.k.a.
+ EMI0CN */
+\end_layout
+
+\begin_layout Verse
+
+\family typewriter
+__sfr __at (0xaa) _XPAGE; /* some Silicon Labs (Cygnal) chips a.k.a.
+ EMI0CN */
 \end_layout
 
 \begin_layout Standard
@@ -20919,10 +21844,6 @@ The HC08 port passes the regression test suite (see section
 \end_inset
 
 
-\end_layout
-
-\begin_layout Standard
-
 \newpage
 
 \end_layout
@@ -20995,7 +21916,7 @@ For devices that have multiple code pages it is more efficient to use the
 \end_layout
 
 \begin_layout Enumerate
- And as for any 8 bit micro (especially for PIC 14 as they have a very simple
+And as for any 8 bit micro (especially for PIC 14 as they have a very simple
  instruction set), use 'unsigned char' whereever possible instead of 'int'.
 \end_layout
 
@@ -21392,9 +22313,7 @@ status collapsed
 \end_inset
 
 
-\end_layout
-
-\begin_layout Standard
+\family default
 
 \newpage
 
@@ -25748,19 +26667,10 @@ The PIC16 Port currently does not pass SDCC's regression test
 
 \end_inset
 
-) and thus the nightly regression tests for the PIC16 target are currently
- disabled for all hosts except for 
+) and thus the snapshot build regression tests for the PIC16 target are
+ currently disabled for all hosts
 \emph on
-Linux on Opteron.
-
-\emph default
- This means you can see the result of the PIC16 regression tests f.e.
- by checking the log files in 
-\begin_inset LatexCommand \url{http://sdcc.sourceforge.net/regression_test_results/amd64-unknown-linux2.3/}
-
-\end_inset
-
- (pick the most up to date file there, scroll down, lend a hand).
+.
 \end_layout
 
 \begin_layout Chapter
@@ -26478,7 +27388,7 @@ Interfacing SDCDB with DDD
 \end_layout
 
 \begin_layout Standard
-\begin_inset Note Comment
+\begin_inset Note Note
 status collapsed
 
 \begin_layout Standard
 raphics File 
 \size footnotesize
 
-\begin_inset LatexCommand \url{http://svn.sourceforge.net/viewcvs.cgi/*checkout*/sdcc/trunk/sdcc/doc/figures/ddd_example.png}
+\begin_inset LatexCommand \url{http://sdcc.svn.sourceforge.net/viewvc/*checkout*/sdcc/trunk/sdcc/doc/figures/ddd_example.png}
 
 \end_inset
 
@@ -27465,9 +28375,7 @@ Toggle list mode
 ;; 
 \newline
 
-\end_layout
-
-\begin_layout Standard
+\family default
 
 \newpage
 
@@ -27678,14 +28586,14 @@ check the device specific header files
 \end_inset
 
 > 
-\begin_inset LatexCommand \url{http://svn.sourceforge.net/viewvc/sdcc/trunk/sdcc/device/include/mcs51/compiler.h?view=markup}
+\begin_inset LatexCommand \url{http://sdcc.svn.sourceforge.net/viewvc/sdcc/trunk/sdcc/device/include/mcs51/compiler.h?view=markup}
 
 \end_inset
 
  to allow using common header files.
  (see f.e.
  cc2510fx.h 
-\begin_inset LatexCommand \url{http://svn.sourceforge.net/viewvc/sdcc/trunk/sdcc/device/include/mcs51/cc2510fx.h?view=markup}
+\begin_inset LatexCommand \url{http://sdcc.svn.sourceforge.net/viewvc/sdcc/trunk/sdcc/device/include/mcs51/cc2510fx.h?view=markup}
 
 \end_inset
 
@@ -28420,7 +29328,7 @@ online at:
 
 \newline
 
-\begin_inset LatexCommand \url{http://svn.sourceforge.net/viewvc/*checkout*/sdcc/trunk/sdcc/ChangeLog}
+\begin_inset LatexCommand \url{http://sdcc.svn.sourceforge.net/viewvc/*checkout*/sdcc/trunk/sdcc/ChangeLog}
 
 \end_inset
 
@@ -28478,7 +29386,7 @@ online at:
 
 \newline
 
-\begin_inset LatexCommand \url{http://svn.sourceforge.net/viewvc/*checkout*/sdcc/trunk/sdcc/as/doc/asxhtm.html}
+\begin_inset LatexCommand \url{http://sdcc.svn.sourceforge.net/viewvc/*checkout*/sdcc/trunk/sdcc/as/doc/asxhtm.html}
 
 \end_inset
 
@@ -28555,7 +29463,7 @@ online at:
 
 \newline
 
-\begin_inset LatexCommand \url{http://svn.sourceforge.net/viewvc/sdcc/trunk/sdcc/doc/}
+\begin_inset LatexCommand \url{http://sdcc.svn.sourceforge.net/viewvc/sdcc/trunk/sdcc/doc/}
 
 \end_inset
 
@@ -28596,7 +29504,7 @@ online at
 :
 \newline
 
-\begin_inset LatexCommand \url{http://svn.sourceforge.net/viewvc/*checkout*/sdcc/trunk/sdcc/debugger/README}
+\begin_inset LatexCommand \url{http://sdcc.svn.sourceforge.net/viewvc/*checkout*/sdcc/trunk/sdcc/debugger/README}
 
 \end_inset
 
@@ -28654,7 +29562,7 @@ online at:
 
 \newline
 
-\begin_inset LatexCommand \url{http://svn.sourceforge.net/viewvc/*checkout*/sdcc/trunk/sdcc/sim/ucsim/doc/index.html}
+\begin_inset LatexCommand \url{http://sdcc.svn.sourceforge.net/viewvc/*checkout*/sdcc/trunk/sdcc/sim/ucsim/doc/index.html}
 
 \end_inset
 
@@ -28695,7 +29603,7 @@ online at:
 
 \emph default
 
-\begin_inset LatexCommand \url{http://svn.sourceforge.net/viewvc/*checkout*/sdcc/trunk/sdcc/src/pic16/NOTES}
+\begin_inset LatexCommand \url{http://sdcc.svn.sourceforge.net/viewvc/*checkout*/sdcc/trunk/sdcc/src/pic16/NOTES}
 
 \end_inset
 
@@ -30306,7 +31214,7 @@ You can follow the status of the Subversion version
  in the Subversion repository
 \size footnotesize
  
-\begin_inset LatexCommand \htmlurl{http://svn.sourceforge.net/viewcvs.cgi/*checkout*/sdcc/trunk/sdcc/ChangeLog}
+\begin_inset LatexCommand \htmlurl{http://sdcc.svn.sourceforge.net/viewcvs.cgi/*checkout*/sdcc/trunk/sdcc/ChangeLog}
 
 \end_inset
 
@@ -30429,7 +31337,7 @@ web site or at
 \end_layout
 
 \begin_layout Standard
-\begin_inset Note Comment
+\begin_inset Note Note
 status collapsed
 
 \begin_layout Standard
@@ -30466,7 +31374,7 @@ Quality control
 \end_layout
 
 \begin_layout Standard
-The compiler is passed through nightly compile and build checks.
+The compiler is passed through snaphot build compile and build checks.
  The so called 
 \shape italic
 regression tests
@@ -30700,10 +31608,6 @@ give students a chance to publically prove their skills and to possibly
 \begin_layout Standard
 then SDCC is probably among the first choices.
  Well, probably SDCC might be the only choice.
-\end_layout
-
-\begin_layout Standard
-
 \newpage
 
 \end_layout
@@ -31860,7 +32764,7 @@ then both the switch statements will be implemented using jump-tables whereas
 \end_layout
 
 \begin_layout Standard
-\begin_inset Note Comment
+\begin_inset Note Note
 status collapsed
 
 \begin_layout Standard
@@ -36336,7 +37240,7 @@ src/mcs51/gen.c
 \end_layout
 
 \begin_layout Standard
-\begin_inset Note Comment
+\begin_inset Note Note
 status collapsed
 
 \begin_layout Standard