#LyX 1.6.4 created this file. For more info see http://www.lyx.org/
\lyxformat 345
\begin_document
\begin_header
\textclass article
\begin_preamble
\pdfoptionpdfminorversion=3
\usepackage[
  pdftitle={CDB File Format},
  pdfauthor={Lenny Story},
  pdfkeywords={address c compiler debugger format GPL linker record SDCC},
  colorlinks=true,
  linkcolor=blue] {hyperref}
\end_preamble
\use_default_options false
\language english
\inputencoding auto
\font_roman times
\font_sans helvet
\font_typewriter courier
\font_default_family default
\font_sc false
\font_osf false
\font_sf_scale 100
\font_tt_scale 100

\graphics default
\paperfontsize default
\spacing single
\use_hyperref false
\papersize default
\use_geometry false
\use_amsmath 1
\use_esint 0
\cite_engine basic
\use_bibtopic false
\paperorientation portrait
\secnumdepth 3
\tocdepth 3
\paragraph_separation skip
\defskip medskip
\quotes_language english
\papercolumns 1
\papersides 1
\paperpagestyle fancy
\tracking_changes false
\output_changes false
\author "" 
\author "" 
\end_header

\begin_body

\begin_layout Title
CDB File Format
\begin_inset ERT
status open

\begin_layout Plain Layout


\backslash
date{2003-03-21}
\end_layout

\end_inset


\end_layout

\begin_layout Author
Lenny Story
\end_layout

\begin_layout Standard
\align center
SDCC Development Team
\end_layout

\begin_layout Standard
\begin_inset CommandInset toc
LatexCommand tableofcontents

\end_inset


\end_layout

\begin_layout Section
Overview
\end_layout

\begin_layout Standard
The CDB File is used to record all of the information that describes the
 variables, functions, lines, and memory items.
 These records provide the critical information that allows external utilities
 to properly locate and interpret variables, functions, and types.
 Development tools such as simulators debuggers and profilers use these
 records to analyze and describe the code in terms of the high level language
 in which it was written.
 The CDB file is therefore the critical link to bridging the compiled code
 image to the source files from which it was built.
\end_layout

\begin_layout Section
Usage
\end_layout

\begin_layout Standard
CDB files are created when the "-
\begin_inset ERT
status collapsed

\begin_layout Plain Layout


\backslash
/
\end_layout

\end_inset

-debug" option is used.
 Each source file will have its own CDB file associated with it.
 When the -
\begin_inset ERT
status collapsed

\begin_layout Plain Layout


\backslash
/
\end_layout

\end_inset

-debug flag is used during the link process, the CDB file of the FIRST source
 module will contain all the records from all the source modules linked
 as well as the linker records.
\end_layout

\begin_layout Standard
Code and variables that are removed during the optimization phase will not
 be present in the debug file.
 Images created for debugging purposes should always disable as much optimizatio
n as possible.
 The following options are critical for the completeness of the resulting
 debugging file.
\end_layout

\begin_layout List
\labelwidthstring 00.00.0000
-
\begin_inset ERT
status collapsed

\begin_layout Plain Layout


\backslash
/
\end_layout

\end_inset

-debug Mandatory to produce a debugging file.
 
\end_layout

\begin_layout List
\labelwidthstring 00.00.0000
-
\begin_inset ERT
status collapsed

\begin_layout Plain Layout


\backslash
/
\end_layout

\end_inset

-noinduction Induction processing occurs at the very latest stages of compilatio
n.
 This results in the inability to report the location of the resulting variables.
 Including this option disables the loop induction optimization.
 
\end_layout

\begin_layout List
\labelwidthstring 00.00.0000
-
\begin_inset ERT
status collapsed

\begin_layout Plain Layout


\backslash
/
\end_layout

\end_inset

-nooverlay Overlay variables will not show up in the debug file.
 Including this option will force variables to the data segment.
\end_layout

\begin_layout Section
Conventions
\end_layout

\begin_layout Standard
The record examples and grammar shown in this document are displayed on
 multiple lines only for the purposes of readability.
 The records contained within the CDB files are always encoded on a single
 line.
 
\end_layout

\begin_layout Standard
Record grammar is indicated here using a custom format of the following
 specifications:
\end_layout

\begin_layout Itemize
Record Elements are surrounded using the characters `<' and '>'.
\end_layout

\begin_layout Itemize
Alternation is indicated using the `|' character.
\end_layout

\begin_layout Itemize
Non-mandatory items are surrounded using the characters `{` and `}'.
\end_layout

\begin_layout Section
Record Formats
\end_layout

\begin_layout Subsection
Basic Record Format
\end_layout

\begin_layout Description
<RecordType><:><RecordSpec>
\end_layout

\begin_layout Standard
\begin_inset Tabular
<lyxtabular version="3" rows="6" columns="3">
<features>
<column alignment="center" valignment="top" width="0pt">
<column alignment="left" valignment="top" width="0pt">
<column alignment="left" valignment="top" width="0pt">
<row>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\series bold
Type
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\series bold
Description
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\series bold
Form
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
M
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Module Record
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Compiler
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
F
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Function Record
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Compiler
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
S
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Symbol Record
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Compiler
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
T
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Structure (Complex Type) Record
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Compiler
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
L
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Linker Record
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Assembler / Linker
\end_layout

\end_inset
</cell>
</row>
</lyxtabular>

\end_inset


\end_layout

\begin_layout Standard
All records are ASCII text, with one record per line.
 The record type is the first character, followed by a single colon ":".
 Sub types are often included as part of the record specific format.
\end_layout

\begin_layout Subsection
Module Record
\end_layout

\begin_layout Description
<M><:><Filename>
\end_layout

\begin_layout Standard
\begin_inset Tabular
<lyxtabular version="3" rows="2" columns="2">
<features>
<column alignment="center" valignment="top" width="0pt">
<column alignment="left" valignment="top" width="0pt">
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
M
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Module record type indicator
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Filename
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
The filename of the module that this CDB file represents.
\end_layout

\end_inset
</cell>
</row>
</lyxtabular>

\end_inset


\end_layout

\begin_layout Standard

\series bold
Purpose
\end_layout

\begin_layout Standard
The module record is used to define a source module.
 It is usually used at the beginning of each of the module specific CDB
 files, and will occur several times in the final CDB file produced by the
 linker to represent each of the source modules.
 The location of this record within the file does not necessarily indicate
 the scope of the variables that follow.
 Those variables that have module specific scope have an indication encoded
 within their respective symbol entry.
\end_layout

\begin_layout Standard

\series bold
Examples
\end_layout

\begin_layout Standard

\family typewriter
M:Timer0
\begin_inset Newline newline
\end_inset

M:_bp
\end_layout

\begin_layout Subsection
Symbol Records
\end_layout

\begin_layout Standard
\begin_inset Tabular
<lyxtabular version="3" rows="12" columns="2">
<features>
<column alignment="center" valignment="top" width="0pt">
<column alignment="block" valignment="top" width="3.9in">
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
S
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Symbol record type indicator
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
G
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Scope is global
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
F <Filename>
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Scope is file
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
L <Function>
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Scope is local
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
<Name>
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Symbol name
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
<Level>
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Scope level (see below)
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
<Block>
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Scope block (see below)
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
<TypeChain>
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Type chain record (see type record below)
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
<Address Space>
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Address space code (see table below)
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
<On Stack>
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Is this symbol on the stack? Indicates if the next parameter is valid.
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
<Stack>
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
The stack Offsetorelative to the 
\begin_inset Quotes eld
\end_inset

bp
\begin_inset Quotes erd
\end_inset

 variable.
 (The libraries may have to be recompiled to include the -
\begin_inset ERT
status collapsed

\begin_layout Plain Layout


\backslash
/
\end_layout

\end_inset

-debug option for this variable to appear in the debug file).
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
<Reg>
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" bottomline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
If the address space is 'R', this field indicates the register that the
 symbol is allocated.
 The register name is in its native form: R1, AX, etc.
\end_layout

\end_inset
</cell>
</row>
</lyxtabular>

\end_inset


\end_layout

\begin_layout Description
<S><:>
\series bold

\begin_inset Newline newline
\end_inset

{ G | F<Filename> | L { <function> | 
\begin_inset Quotes eld
\end_inset

--null--
\begin_inset Quotes eld
\end_inset

 }}
\begin_inset Newline newline
\end_inset

<$><Name>
\begin_inset Newline newline
\end_inset

<$><Level>
\begin_inset Newline newline
\end_inset

<$><Block>
\begin_inset Newline newline
\end_inset

<(><TypeRecord><)>
\begin_inset Newline newline
\end_inset

<,><AddressSpace>
\begin_inset Newline newline
\end_inset

<,><OnStack>
\begin_inset Newline newline
\end_inset

<,><Stack>
\begin_inset Newline newline
\end_inset

<,><[><Reg><,>{<Reg><,>}<]>
\end_layout

\begin_layout Standard
A symbol record is generated for each named symbol in the source file; this
 includes local, global and parameter symbols.
 
\end_layout

\begin_layout Standard

\series bold
Blocks and Levels
\end_layout

\begin_layout Standard
The level & block are used to further scope local variables since C allows
 unique definitions across different scope blocks.
 When using the symbol records, it is always important to include the level
 and block information as part of the identification.
 It is possible to have two symbols that share the same name, but have different
 scope information.
\end_layout

\begin_layout Standard
The linker address records contain not only the name of the symbol, but
 the Scope information as well, which is instrumental in determining the
 correct instantiation of the symbol.
\end_layout

\begin_layout Standard
Linker C line records also contain the Scope information (see below).
\end_layout

\begin_layout Standard
The following code fragment illustrates a simple scope example:
\end_layout

\begin_layout LyX-Code
foo()
\end_layout

\begin_layout LyX-Code
{
\end_layout

\begin_layout LyX-Code
int c; /* block #1 , level #1 */
\end_layout

\begin_layout LyX-Code
   {
\end_layout

\begin_layout LyX-Code
      int c; /* block #2, level #2 */
\end_layout

\begin_layout LyX-Code
      ...
\end_layout

\begin_layout LyX-Code
   }
\end_layout

\begin_layout LyX-Code
   {
\end_layout

\begin_layout LyX-Code
      int c; /* block #3 , level #2 */
\end_layout

\begin_layout LyX-Code
      ...
\end_layout

\begin_layout LyX-Code
   }
\end_layout

\begin_layout LyX-Code
}
\end_layout

\begin_layout Standard
\begin_inset Tabular
<lyxtabular version="3" rows="12" columns="2">
<features>
<column alignment="center" valignment="top" width="0pt">
<column alignment="left" valignment="top" width="0pt">
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
A
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
External stack
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
B
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Internal stack
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
C
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Code
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
D
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Code / static segment
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
E
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Internal ram (lower 128) bytes
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
F
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
External ram
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
G
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Internal ram
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
H
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Bit addressable
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
I
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
SFR space
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
J
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
SBIT space
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
R
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Register space
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Z
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Used for function records, or any undefined space code
\end_layout

\end_inset
</cell>
</row>
</lyxtabular>

\end_inset


\end_layout

\begin_layout Subsection
Type Chain Record
\end_layout

\begin_layout Description
<{><Size><}> 
\series bold
<DCLType> <,> {<DCLType> <,>} <:> <Sign>
\end_layout

\begin_layout Standard
\begin_inset Tabular
<lyxtabular version="3" rows="3" columns="2">
<features>
<column alignment="center" valignment="top" width="0pt">
<column alignment="left" valignment="top" width="0pt">
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
<Size>
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
The size of the item in decimal.
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
<DCLType>
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
The type encoded using the table below.
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
<Sign>
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
The sign of the item.
 Encoded as 'U' or 'S'.
\end_layout

\end_inset
</cell>
</row>
</lyxtabular>

\end_inset


\end_layout

\begin_layout Standard

\series bold
Purpose
\end_layout

\begin_layout Standard
The C programming language allows arbitrarily complex type constructions.
 Because of this, the CDB file type designations are organized as a list
 of basic primitive types.
\end_layout

\begin_layout Standard
\begin_inset Tabular
<lyxtabular version="3" rows="17" columns="2">
<features>
<column alignment="center" valignment="top" width="0pt">
<column alignment="left" valignment="top" width="0pt">
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
DA <n>
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Array of n elements
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
DF
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Function
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
DG
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Generic pointer
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
DC
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Code pointer
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
DX
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
External ram pointer
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
DD
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Internal ram pointer
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
DP
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Paged pointer
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
DI
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Upper 128 byte pointer
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
SL
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
long
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
SI
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
int
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
SC
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
char
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
SS
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
short
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
SV
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
void
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
SF
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
float
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
ST <name>
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Structure of name <name>
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
SX
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
sbit
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
SB <n>
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Bit field of <n> bits
\end_layout

\end_inset
</cell>
</row>
</lyxtabular>

\end_inset


\end_layout

\begin_layout Standard

\series bold
Examples
\end_layout

\begin_layout Standard

\family typewriter
\size small
S:LcheckSerialPort$pstBuffer$1$1({3}DG,STTTinyBuffer:S),R,0,0,[r2,r3,r4]
\begin_inset Newline newline
\end_inset

S:Ltimer0LoadExtended$count$1$1({2}SI:S),B,1,-4
\begin_inset Newline newline
\end_inset

S:G$T2CON_7$0$0({1}SX:S),J,0,0
\begin_inset Newline newline
\end_inset

S:LAdcInitialize$a$1$1({2}SI:S),B,1,1
\begin_inset Newline newline
\end_inset

S:G$ScanCount$0$0({2}SI:S),F,0,0
\end_layout

\begin_layout Subsection
Function Records
\end_layout

\begin_layout Description
<F><:>
\series bold

\begin_inset Newline newline
\end_inset

{ G | F<Filename> | L { <function> | 
\begin_inset Quotes eld
\end_inset

--null--
\begin_inset Quotes eld
\end_inset

 }}
\begin_inset Newline newline
\end_inset

<$><Name>
\begin_inset Newline newline
\end_inset

<$><Level>
\begin_inset Newline newline
\end_inset

<$><Block>
\begin_inset Newline newline
\end_inset

<(><TypeRecord><)>
\begin_inset Newline newline
\end_inset

<,><AddressSpace>
\begin_inset Newline newline
\end_inset

<,><OnStack>
\begin_inset Newline newline
\end_inset

<,><Stack>
\begin_inset Newline newline
\end_inset

<,><Interrupt>
\begin_inset Newline newline
\end_inset

<,><Interrupt Num>
\begin_inset Newline newline
\end_inset

<,><Register Bank>
\end_layout

\begin_layout Standard
\begin_inset Tabular
<lyxtabular version="3" rows="14" columns="2">
<features>
<column alignment="center" valignment="top" width="0pt">
<column alignment="block" valignment="top" width="3.9in">
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
F
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Symbol record type indicator
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
G
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Scope is global
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
F <Filename>
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Scope is file
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
L <Function>
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Scope is local
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
<Name>
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Symbol name
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
<Level>
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Scope level (see below)
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
<Block>
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Scope block (see below)
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
<TypeChain>
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Type chain record (see type record below)
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
<Address Space>
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Address space code <see table below>
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
<On Stack>
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Indicates if this is a stack variable
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
<Stack>
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
If stack variable, the stack offset relative to the 
\begin_inset Quotes eld
\end_inset

bp
\begin_inset Quotes erd
\end_inset

 variable.
 (Libraries will have to be compiled using the -
\begin_inset ERT
status collapsed

\begin_layout Plain Layout


\backslash
/
\end_layout

\end_inset

-debug option for this to be available)
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
<Is Interrupt>
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Indicates if this is an interrupt handler.
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
<Interrupt Num>
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
If interrupt handler, this indicates the interrupt number.
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
<Register Bank>
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
If interrupt handler, this ist he register bank number.
\end_layout

\end_inset
</cell>
</row>
</lyxtabular>

\end_inset


\end_layout

\begin_layout Standard

\series bold
Purpose
\end_layout

\begin_layout Standard
The Function record defines any Source File function.
 Its construction is the same as the symbol record, with the addition of
 3 extra parameters for indicating interrupt handlers.
\end_layout

\begin_layout Standard

\series bold
Example
\end_layout

\begin_layout Standard

\family typewriter
F:G$main$0$0({2}DF,SV:S),C,0,0,0,0,0
\begin_inset Newline newline
\end_inset

F:G$SioISR$0$0({2}DF,SV:S),Z,0,0,1,4,0
\end_layout

\begin_layout Subsection
Type Records
\end_layout

\begin_layout Description
<T><:>
\series bold

\begin_inset Newline newline
\end_inset

<F><Filename><$>
\begin_inset Newline newline
\end_inset

<Name>
\begin_inset Newline newline
\end_inset

<[><TypeMember> {<TypeMember>} <]>
\end_layout

\begin_layout Standard
\begin_inset Tabular
<lyxtabular version="3" rows="4" columns="2">
<features>
<column alignment="center" valignment="top" width="0pt">
<column alignment="left" valignment="top" width="0pt">
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
T
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Type record type indicator
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
<Filename>
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
The filename where this type is declared
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
<Name>
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
The name of this type
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
<TypeMember>
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
(see below)
\end_layout

\end_inset
</cell>
</row>
</lyxtabular>

\end_inset


\end_layout

\begin_layout Subsection
Type Member
\end_layout

\begin_layout Description
<(><{><Offset><}><SymbolRecord><)>
\end_layout

\begin_layout Standard
\begin_inset Tabular
<lyxtabular version="3" rows="2" columns="2">
<features>
<column alignment="center" valignment="top" width="0pt">
<column alignment="block" valignment="top" width="3.9in">
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
<Offset>
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
The offset of this type member in decimal.
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
<SymbolRecord>
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
A complete symbol record describing this Member.
 (See 
\begin_inset Quotes eld
\end_inset

Symbol Records
\begin_inset Quotes erd
\end_inset

 above.
\end_layout

\end_inset
</cell>
</row>
</lyxtabular>

\end_inset


\end_layout

\begin_layout Standard

\series bold
Purpose
\end_layout

\begin_layout Standard
Type records describe the complex types within the source file.
 These include structure and union types.
\end_layout

\begin_layout Standard

\series bold
Examples
\end_layout

\begin_layout Standard

\family typewriter
T:Fcmdas$TTinyBuffer[
\begin_inset Newline newline
\end_inset

({0}S:S$pNext$0$0({3}DG,STTTinyBuffer:S),Z,0,0)
\begin_inset Newline newline
\end_inset

({3}S:S$length$0$0({1}SC:U),Z,0,0)
\begin_inset Newline newline
\end_inset

({4}S:S$maxLength$0$0({1}SC:U),Z,0,0)
\begin_inset Newline newline
\end_inset

({5}S:S$rindex$0$0({1}SC:U),Z,0,0)
\begin_inset Newline newline
\end_inset

({6}S:S$windex$0$0({1}SC:U),Z,0,0)
\begin_inset Newline newline
\end_inset

({7}S:S$buffer$0$0({64}DA64,SC:U),Z,0,0)
\begin_inset Newline newline
\end_inset

]
\end_layout

\begin_layout Subsection
Link Address of Symbol
\end_layout

\begin_layout Description
<L><:> 
\series bold

\begin_inset Newline newline
\end_inset

{ <G> | F<filename> | L<function> } 
\begin_inset Newline newline
\end_inset

<$><name>
\begin_inset Newline newline
\end_inset

<$><level>
\begin_inset Newline newline
\end_inset

<$><block>
\begin_inset Newline newline
\end_inset

<:><address>
\end_layout

\begin_layout Standard
\begin_inset Tabular
<lyxtabular version="3" rows="8" columns="2">
<features>
<column alignment="center" valignment="top" width="0pt">
<column alignment="block" valignment="top" width="3.9in">
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
L
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Link record type indicator
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
G
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Symbol has file scope.
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
F <Filename>
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Symbol has file scope.
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
L <Function>
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Symbol has function scope
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
<Name>
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Symbol name
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
<Level>
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Symbol level
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
<Block>
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Symbol block
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
<Address>
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Symbol address in hex, relative to the address space code, in the matching
 symbol record.
\end_layout

\end_inset
</cell>
</row>
</lyxtabular>

\end_inset


\end_layout

\begin_layout Standard

\series bold
Purpose
\end_layout

\begin_layout Standard
The link address record is used to bind a memory location to a symbol record.
\end_layout

\begin_layout Standard

\series bold
Example
\end_layout

\begin_layout Standard

\family typewriter
L:G$P0$0$0:80
\begin_inset Newline newline
\end_inset

L:G$ScanCount$0$0:0
\begin_inset Newline newline
\end_inset

L:Fcmdas$_str_0$0$0:195
\end_layout

\begin_layout Subsection
Linker Symbol End Address Record
\end_layout

\begin_layout Description
<L><:><X>
\series bold

\begin_inset Newline newline
\end_inset

{ <G> | F<filename> | L<functionName> }
\begin_inset Newline newline
\end_inset

<$><name>
\begin_inset Newline newline
\end_inset

<$><level>
\begin_inset Newline newline
\end_inset

<$><block>
\begin_inset Newline newline
\end_inset

<:><Address>
\end_layout

\begin_layout Standard
\begin_inset Tabular
<lyxtabular version="3" rows="9" columns="2">
<features>
<column alignment="center" valignment="top" width="0pt">
<column alignment="block" valignment="top" width="3.9in">
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
L
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Link record type indicator
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
X
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Link end address sub type indicator
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
G
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Symbol has file scope.
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
F <Filename>
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Symbol has file scope.
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
L <Function>
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Symbol has function scope.
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
<Name>
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Symbol name
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
<Level>
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Symbol level
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
<Block>
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Symbol block
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
<Address>
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Symbol end address in hex, relative to the address space code contained
 in the matching symbol record.
\end_layout

\end_inset
</cell>
</row>
</lyxtabular>

\end_inset


\end_layout

\begin_layout Standard

\series bold
Purpose
\end_layout

\begin_layout Standard
The Linker Symbol end address record is primarily used to indicate the Ending
 address of functions.
 This is because function records do not contain a size value, as symbol
 records do.
\end_layout

\begin_layout Standard

\series bold
Example
\end_layout

\begin_layout Standard

\family typewriter
L:XG$sysClearError$0$0:194
\begin_inset Newline newline
\end_inset

L:XG$SioISR$0$0:A09
\end_layout

\begin_layout Subsection
Linker ASM Line Record
\end_layout

\begin_layout Description
<L> 
\series bold
<:> <A>
\begin_inset Newline newline
\end_inset

<$><Filename>
\begin_inset Newline newline
\end_inset

<$><Line>
\begin_inset Newline newline
\end_inset

<:><EndAddress>
\end_layout

\begin_layout Standard
\begin_inset Tabular
<lyxtabular version="3" rows="5" columns="2">
<features>
<column alignment="center" valignment="top" width="0pt">
<column alignment="block" valignment="top" width="3.9in">
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
L
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Link record type indicator
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
A
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Link assembly file line record sub type indicator
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
<Filename>
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Filename of the assembly file.
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
<Line>
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Line number in the above filename.{}These numbers start at 1 (not 0).
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
<EndAdress>
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
End address
\end_layout

\end_inset
</cell>
</row>
</lyxtabular>

\end_inset


\end_layout

\begin_layout Standard

\series bold
Purpose
\end_layout

\begin_layout Standard
The linker Asm Line record is used to bind the execution address with a
 source file and line number.
\end_layout

\begin_layout Standard

\series bold
Example
\end_layout

\begin_layout Standard

\family typewriter
L:A$TinyBuffer$2320:A13
\begin_inset Newline newline
\end_inset

L:A$max1270$391:CA4
\end_layout

\begin_layout Subsection
Linker C-Line Record
\end_layout

\begin_layout Description
<L> 
\series bold
<:> <C>
\begin_inset Newline newline
\end_inset

<$><Filename>
\begin_inset Newline newline
\end_inset

<$><Line>
\begin_inset Newline newline
\end_inset

<$><Level>
\begin_inset Newline newline
\end_inset

<$><Block>
\begin_inset Newline newline
\end_inset

<:><EndAddress>
\end_layout

\begin_layout Standard
\begin_inset Tabular
<lyxtabular version="3" rows="7" columns="2">
<features>
<column alignment="center" valignment="top" width="0pt">
<column alignment="block" valignment="top" width="3.9in">
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
L
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Link record type indicator
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
C
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Link assembly file line record sub type indicator
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
<Filename>
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Filename of the assembly file.
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
<Line>
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Line number in the above filename.
 These numbers start at 1 (not 0).
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
<Level>
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Current level at this line and address.
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
<Block>
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Current block at this line and address.
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
<EndAddress>
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
End address
\end_layout

\end_inset
</cell>
</row>
</lyxtabular>

\end_inset


\end_layout

\begin_layout Standard

\series bold
Purpose
\end_layout

\begin_layout Standard
The linker C-Line record is used to bind the execution address with a source
 file, line number and the level, block information.
\end_layout

\begin_layout Standard
The following is an example source module with its lines showing the correspondi
ng C-Line Records.
 You will notice in this example that there are no line entries for lines
 18, 19.
 This is because the code was optimized and removed.
\end_layout

\begin_layout Standard
\begin_inset Tabular
<lyxtabular version="3" rows="27" columns="3">
<features>
<column alignment="center" valignment="top" width="0pt">
<column alignment="left" valignment="top" width="0pt">
<column alignment="left" valignment="top" width="0pt">
<row>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
01
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
02
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
struct complex
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
03
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
{
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
04
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
\begin_inset space ~
\end_inset


\begin_inset space ~
\end_inset

int count;
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
05
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
\begin_inset space ~
\end_inset


\begin_inset space ~
\end_inset

int Max;
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
06
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
};
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
07
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
08
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
L:C$vars.c$8$0$0:38
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
void main(void)
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
09
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
{
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
10
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
\begin_inset space ~
\end_inset


\begin_inset space ~
\end_inset

int iterA;
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
11
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
\begin_inset space ~
\end_inset


\begin_inset space ~
\end_inset

int iterB;
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
12
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
\begin_inset space ~
\end_inset


\begin_inset space ~
\end_inset

struct complex myStruct;
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
13
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
14
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
L:C$vars.c$14$1$1:C1
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
\begin_inset space ~
\end_inset


\begin_inset space ~
\end_inset

for(iterA = 0; iterA < 10; iterA++)
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
15
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
\begin_inset space ~
\end_inset


\begin_inset space ~
\end_inset

{
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
16
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
L:C$vars.c$16$2$2:B9
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
\begin_inset space ~
\end_inset


\begin_inset space ~
\end_inset


\begin_inset space ~
\end_inset


\begin_inset space ~
\end_inset

for(iterB = 0; iterB < 10; iterB++)
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
17
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
\begin_inset space ~
\end_inset


\begin_inset space ~
\end_inset


\begin_inset space ~
\end_inset


\begin_inset space ~
\end_inset

{
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
18
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
\begin_inset space ~
\end_inset


\begin_inset space ~
\end_inset


\begin_inset space ~
\end_inset


\begin_inset space ~
\end_inset


\begin_inset space ~
\end_inset


\begin_inset space ~
\end_inset

int iterA = 6 + iterB;
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
19
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
\begin_inset space ~
\end_inset


\begin_inset space ~
\end_inset


\begin_inset space ~
\end_inset


\begin_inset space ~
\end_inset


\begin_inset space ~
\end_inset


\begin_inset space ~
\end_inset

iterA++;
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
20
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
21
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
L:C$vars.c$21$1$1:69
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
\begin_inset space ~
\end_inset


\begin_inset space ~
\end_inset


\begin_inset space ~
\end_inset


\begin_inset space ~
\end_inset


\begin_inset space ~
\end_inset


\begin_inset space ~
\end_inset

myStruct.count++;
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
22
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
23
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
L:C$vars.c$23$3$3:83
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
\begin_inset space ~
\end_inset


\begin_inset space ~
\end_inset


\begin_inset space ~
\end_inset


\begin_inset space ~
\end_inset


\begin_inset space ~
\end_inset


\begin_inset space ~
\end_inset

if(myStruct.count > myStruct.Max)
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
24
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
L:C$vars.c$24$3$3:A3
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
\begin_inset space ~
\end_inset


\begin_inset space ~
\end_inset


\begin_inset space ~
\end_inset


\begin_inset space ~
\end_inset


\begin_inset space ~
\end_inset


\begin_inset space ~
\end_inset


\begin_inset space ~
\end_inset


\begin_inset space ~
\end_inset

myStruct.Max = mystruct.count;
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
25
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
\begin_inset space ~
\end_inset


\begin_inset space ~
\end_inset


\begin_inset space ~
\end_inset


\begin_inset space ~
\end_inset

}
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
26
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
\begin_inset space ~
\end_inset


\begin_inset space ~
\end_inset

}
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
27
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
L:C$vars.c$27$1$1:CE
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
}
\end_layout

\end_inset
</cell>
</row>
</lyxtabular>

\end_inset


\end_layout

\begin_layout Standard

\series bold
Example
\end_layout

\begin_layout Standard

\family typewriter
L:C$max1270.c$35$1$1:CA9
\begin_inset Newline newline
\end_inset

L:C$Timer0.c$20$1$1:D9D
\end_layout

\begin_layout Section
Source File Example 
\end_layout

\begin_layout LyX-Code
sfr IM = 0x90;
\end_layout

\begin_layout LyX-Code

\end_layout

\begin_layout LyX-Code
struct complex
\end_layout

\begin_layout LyX-Code
{
\end_layout

\begin_layout LyX-Code
  int count;
\end_layout

\begin_layout LyX-Code
  int Max;
\end_layout

\begin_layout LyX-Code
};
\end_layout

\begin_layout LyX-Code

\end_layout

\begin_layout LyX-Code
void main(void)
\end_layout

\begin_layout LyX-Code
{
\end_layout

\begin_layout LyX-Code
  int iterA;
\end_layout

\begin_layout LyX-Code
  int iterB;
\end_layout

\begin_layout LyX-Code
  struct complex myStruct;
\end_layout

\begin_layout LyX-Code

\end_layout

\begin_layout LyX-Code
  for(iterA = 0; iterA < 10; iterA++)
\end_layout

\begin_layout LyX-Code
  {
\end_layout

\begin_layout LyX-Code
    for(iterB = 0; iterB < 10; iterB++) 
\end_layout

\begin_layout LyX-Code
    {
\end_layout

\begin_layout LyX-Code
      int iterA = 6 + iterB;
\end_layout

\begin_layout LyX-Code
      iterA++;
\end_layout

\begin_layout LyX-Code

\end_layout

\begin_layout LyX-Code
      myStruct.count++;
\end_layout

\begin_layout LyX-Code
 
\end_layout

\begin_layout LyX-Code
      IM = iterA;
\end_layout

\begin_layout LyX-Code

\end_layout

\begin_layout LyX-Code
      if(myStruct.count > myStruct.Max)
\end_layout

\begin_layout LyX-Code
        myStruct.Max = myStruct.count;
\end_layout

\begin_layout LyX-Code
    }
\end_layout

\begin_layout LyX-Code
  }
\end_layout

\begin_layout LyX-Code
}
\end_layout

\begin_layout Section
CDB File Example
\end_layout

\begin_layout Standard

\family typewriter
M:vars
\begin_inset Newline newline
\end_inset

F:G$main$0$0({2}DF,SV:S),C,0,0,0,0,0
\begin_inset Newline newline
\end_inset

T:Fvars$complex[({0}S:S$count$0$0({2}SI:S),Z,0,0)({2}S:S$Max$0$0({2}SI:S),Z,0,0)
]
\begin_inset Newline newline
\end_inset

S:Lmain$iterA$1$1({2}SI:S),R,0,0,[r0,r1]
\begin_inset Newline newline
\end_inset

S:Lmain$iterB$1$1({2}SI:S),R,0,0,[r4,r5]
\begin_inset Newline newline
\end_inset

S:Lmain$myStruct$1$1({4}STcomplex:S),E,0,0
\begin_inset Newline newline
\end_inset

S:Lmain$iterA$3$3({2}SI:S),R,0,0,[r6,r7]
\begin_inset Newline newline
\end_inset

S:G$IM$0$0({1}SC:U),I,0,0
\begin_inset Newline newline
\end_inset

S:G$main$0$0({2}DF,SV:S),C,0,0
\begin_inset Newline newline
\end_inset

L:G$IM$0$0:90
\begin_inset Newline newline
\end_inset

L:Lmain$myStruct$1$1:8
\begin_inset Newline newline
\end_inset

L:A$vars$64:0
\begin_inset Newline newline
\end_inset

L:A$vars$65:3
\begin_inset Newline newline
\end_inset

L:A$vars$67:B
\begin_inset Newline newline
\end_inset

L:A$vars$69:13
\begin_inset Newline newline
\end_inset

L:A$vars$71:1B
\begin_inset Newline newline
\end_inset

L:A$vars$73:23
\begin_inset Newline newline
\end_inset

L:A$vars$75:2B
\begin_inset Newline newline
\end_inset

L:A$vars$129:33
\begin_inset Newline newline
\end_inset

L:A$vars$131:36
\begin_inset Newline newline
\end_inset

L:A$vars$158:38
\begin_inset Newline newline
\end_inset

L:C$vars.c$10$0$0:38
\begin_inset Newline newline
\end_inset

L:G$main$0$0:38
\begin_inset Newline newline
\end_inset

L:A$vars$159:3A
\begin_inset Newline newline
\end_inset

L:A$vars$163:3C
\begin_inset Newline newline
\end_inset

L:A$vars$164:3D
\begin_inset Newline newline
\end_inset

L:A$vars$165:3E
\begin_inset Newline newline
\end_inset

L:A$vars$166:40
\begin_inset Newline newline
\end_inset

L:A$vars$167:41
\begin_inset Newline newline
\end_inset

L:A$vars$168:43
\begin_inset Newline newline
\end_inset

L:A$vars$170:45
\begin_inset Newline newline
\end_inset

L:A$vars$171:47
\begin_inset Newline newline
\end_inset

L:A$vars$176:4A
\begin_inset Newline newline
\end_inset

L:A$vars$177:4C
\begin_inset Newline newline
\end_inset

L:A$vars$181:4E
\begin_inset Newline newline
\end_inset

L:A$vars$182:4F
\begin_inset Newline newline
\end_inset

L:A$vars$183:50
\begin_inset Newline newline
\end_inset

L:A$vars$184:52
\begin_inset Newline newline
\end_inset

L:A$vars$185:53
\begin_inset Newline newline
\end_inset

L:A$vars$186:55
\begin_inset Newline newline
\end_inset

L:A$vars$191:57
\begin_inset Newline newline
\end_inset

L:A$vars$196:59
\begin_inset Newline newline
\end_inset

L:C$vars.c$20$3$3:59
\begin_inset Newline newline
\end_inset

L:A$vars$197:5B
\begin_inset Newline newline
\end_inset

L:A$vars$198:5D
\begin_inset Newline newline
\end_inset

L:A$vars$200:5E
\begin_inset Newline newline
\end_inset

L:A$vars$201:5F
\begin_inset Newline newline
\end_inset

L:A$vars$202:61
\begin_inset Newline newline
\end_inset

L:A$vars$207:62
\begin_inset Newline newline
\end_inset

L:C$vars.c$21$3$3:62
\begin_inset Newline newline
\end_inset

L:A$vars$208:63
\begin_inset Newline newline
\end_inset

L:A$vars$209:66
\begin_inset Newline newline
\end_inset

L:A$vars$216:67
\begin_inset Newline newline
\end_inset

L:C$vars.c$23$3$3:67
\begin_inset Newline newline
\end_inset

L:A$vars$217:69
\begin_inset Newline newline
\end_inset

L:A$vars$220:6B
\begin_inset Newline newline
\end_inset

L:A$vars$221:6C
\begin_inset Newline newline
\end_inset

L:A$vars$222:6F
\begin_inset Newline newline
\end_inset

L:A$vars$227:70
\begin_inset Newline newline
\end_inset

L:A$vars$228:72
\begin_inset Newline newline
\end_inset

L:A$vars$232:74
\begin_inset Newline newline
\end_inset

L:C$vars.c$25$3$3:74
\begin_inset Newline newline
\end_inset

L:A$vars$238:76
\begin_inset Newline newline
\end_inset

L:C$vars.c$27$3$3:76
\begin_inset Newline newline
\end_inset

L:A$vars$239:77
\begin_inset Newline newline
\end_inset

L:A$vars$240:79
\begin_inset Newline newline
\end_inset

L:A$vars$241:7A
\begin_inset Newline newline
\end_inset

L:A$vars$242:7C
\begin_inset Newline newline
\end_inset

L:A$vars$243:7E
\begin_inset Newline newline
\end_inset

L:A$vars$244:80
\begin_inset Newline newline
\end_inset

L:A$vars$245:83
\begin_inset Newline newline
\end_inset

L:A$vars$248:85
\begin_inset Newline newline
\end_inset

L:A$vars$256:87
\begin_inset Newline newline
\end_inset

L:C$vars.c$28$3$3:87
\begin_inset Newline newline
\end_inset

L:A$vars$257:8A
\begin_inset Newline newline
\end_inset

L:A$vars$263:8D
\begin_inset Newline newline
\end_inset

L:C$vars.c$18$2$2:8D
\begin_inset Newline newline
\end_inset

L:A$vars$264:8E
\begin_inset Newline newline
\end_inset

L:A$vars$265:91
\begin_inset Newline newline
\end_inset

L:A$vars$268:92
\begin_inset Newline newline
\end_inset

L:A$vars$274:94
\begin_inset Newline newline
\end_inset

L:C$vars.c$16$1$1:94
\begin_inset Newline newline
\end_inset

L:A$vars$275:95
\begin_inset Newline newline
\end_inset

L:A$vars$276:98
\begin_inset Newline newline
\end_inset

L:A$vars$278:99
\begin_inset Newline newline
\end_inset

L:A$vars$282:9C
\begin_inset Newline newline
\end_inset

L:C$vars.c$31$1$1:9C
\begin_inset Newline newline
\end_inset

L:XG$main$0$0:9C
\begin_inset Newline newline
\end_inset

L:A$vars$84:A1
\begin_inset Newline newline
\end_inset

L:A$vars$85:A4
\begin_inset Newline newline
\end_inset

L:A$vars$86:A7
\begin_inset Newline newline
\end_inset

L:A$vars$87:A9
\begin_inset Newline newline
\end_inset

L:A$vars$88:AB
\begin_inset Newline newline
\end_inset

L:A$vars$91:AE
\begin_inset Newline newline
\end_inset

L:A$vars$92:B0
\begin_inset Newline newline
\end_inset

L:A$vars$93:B2
\begin_inset Newline newline
\end_inset

L:A$vars$94:B4
\begin_inset Newline newline
\end_inset

L:A$vars$95:B6
\begin_inset Newline newline
\end_inset

L:A$vars$96:B8
\begin_inset Newline newline
\end_inset

L:A$vars$97:B9
\begin_inset Newline newline
\end_inset

L:A$vars$98:BB
\begin_inset Newline newline
\end_inset

L:A$vars$99:BD
\begin_inset Newline newline
\end_inset

L:A$vars$100:BE
\begin_inset Newline newline
\end_inset

L:A$vars$101:C1
\begin_inset Newline newline
\end_inset

L:A$vars$102:C3
\begin_inset Newline newline
\end_inset

L:A$vars$103:C6
\begin_inset Newline newline
\end_inset

L:A$vars$104:C7
\begin_inset Newline newline
\end_inset

L:A$vars$105:C8
\begin_inset Newline newline
\end_inset

L:A$vars$106:C9
\begin_inset Newline newline
\end_inset

L:A$vars$107:CA
\begin_inset Newline newline
\end_inset

L:A$vars$108:CB
\begin_inset Newline newline
\end_inset

L:A$vars$109:CE
\begin_inset Newline newline
\end_inset

L:A$vars$110:D0
\begin_inset Newline newline
\end_inset

L:A$vars$111:D2
\begin_inset Newline newline
\end_inset

L:A$vars$112:D5
\begin_inset Newline newline
\end_inset

L:A$vars$113:D7
\begin_inset Newline newline
\end_inset

L:A$vars$114:DA
\begin_inset Newline newline
\end_inset

L:A$vars$118:DD
\end_layout

\end_body
\end_document
