# ------------- Keil C51 configuration -------------
# --- general --------------------------------------
# $P  - project name
# $Pp - path to project directory
# $Pn - project name
# --- compile --------------------------------------
# $I  - input full name
# $Ip - input path
# $In - input name
# $Ie - input extension
# $O  - output file
# $Op - path to output file
# $On - output filename (without path)
# $Oe - output extension
# $R  - release/debug setting for compiler
# --- build ----------------------------------------
# $T  - target full name
# $Tp - target path
# $Tn - target name
# $O  - output file
# $Op - path to output file
# $On - output filename (without path)
# $Oe - output extension
# $R  - release/debug setting for linker

[Settings]

Target = 
Category&01 = DEFAULT RUN CONFIGURATION
Working Directory =.
Command Line Arguments =
Category&02 = COMPILER OPTIONS
Device Family = Philips|Acer|ADI|AMD|Atmel|AtmelWM|CHIPCON|Cybernetics|Cygnal|Cypress|Dallas|goal|Infineon|Intel|Maxim|Myson|OKI|sharp|SST|ST|Temic|TI|Triscend|UTMC|Winbond
Assembler = A51|Ax51
Compiler = C51|Cx51
Linker = BL51|Lx51
NoAbsRegAccess = no|yes
Browse Information = no|yes
Assembly Code = no|yes
Memory Model = SMALL|COMPACT|LARGE
Conditional Listing = no|yes
FloatFuzzy = 3|0|1|2|4|5|6|7
Additional Include Directories =
Interval = 
Integer Promotion Rules = yes|no
Interrupt Offset = INTVECTOR(0)|NOINTVECTOR|<set offset>
List Include = no|yes
Max Args = 
Strict ANSI C = no|yes
One RegBank = no|yes
Optimize = SPEED|SIZE
Optimize Level = Reuse Common Entry Code|Constant folding|Dead code elimination|Data overlaying|Peephole optimization|Register variables|Common subexpression elimination|Loop rotation|Extended Index Access Optimizing|Common Block Subroutines
ORDER = no|yes
Page Length = 60
Page Width = 132
PREPRINT = no|yes
PRINT = yes|no
RegFile = 
RegisterBank = 0|1|2|3
RegParms = yes|no
ROM = LARGE|SMALL|COMPACT|D512K|D16M
String Memory Model = CODE|XDATA|FAR
Symbols = no|yes
VARBANKING = standard|far memory support|save address extensions
Warning Level = 2|0|1
ConstData = CODE MEMORY|XDATA
Assembler Options =
Compiler Options = 
Linker Options = 

Preprocessor (Debug) = 
Preprocessor (Release) = 
Excluded Files = Excludes
Debugger = 
External Dependencies=yes|no

[SettingsInfo]

Target = Provides a space for you to specify an output file and location of the program that the linker creates.
Working Directory = Provides a space for you to specify the directory in which executing occurs. If you do not specify a directory, executing occurs in the directory where the executable is located.
Command Line Arguments = Provides a space for you to specify command-line arguments you want to pass to the program at startup.
Excluded Files = This will exclude the file(s) included in this UE project group from the build.
Assembler Options = Provides a space for you to specify assembler options.
Compiler Options = Provides a space for you to specify compiler options.
Linker Options = Provides a space for you to specify linker options.
Debugger=Provides a space for you to set the debugger you want to use to debug application.
NoAbsRegAccess = Options  C51  Dont use absolute register accesses.
Browse Information = Options  Output  Browse Information.
Assembly Code = Options  Listing  C Compiler Listing  Assembly Code.
Memory Model = Options  Target  Memory Model.
Conditional Listing = Options  Listing  C Compiler Listing  Conditional.
Preprocessor (Debug) = Options  Cx51  Define. Set here one or more names separated by commas in accordance with the naming conventions of the C language.
Preprocessor (Release) = Options  Cx51  Define. Set here one or more names separated by commas in accordance with the naming conventions of the C language.
FloatFuzzy = Options  Cx51  Bits to round for float compare.
Additional Include Directories = Options  Cx51  Include Paths. Specify the additional locations of the Cx51 compiler include files separated by semicolons.
Interval = Options  Cx51  Misc controls. Specify an interval for interrupt vectors. The interval specification is required for SIECO-51 derivatives which define interrupt vectors in 3-byte intervals.
Integer Promotion Rules = Options  Cx51  Enable ANSI integer promotion rules.
Interrupt Offset = Options  Cx51  Misc controls. The INTVECTOR directive instructs the compiler to generate interrupt vectors for functions which require them. You can select from INTVECTOR(0), NOINTVECTOR or set here offset value manually.
List Include = Options  Listing  C Compiler Listing. If you need to displays the contents of the include files in the listing file, set "yes" here.
Max Args = Options  Cx51  Misc controls. If you need to specify the buffer size for parameters passed in variable-length argument lists.
Strict ANSI C = "yes" directs the compiler to process only ANSI C language constructs. The Cx51 language extensions are disabled.
One RegBank = Options  C51  Misc controls. If your application uses only one register bank for interrupts, you may set here "yes".
Optimize = Specify the priority (code size or program speed) for the optimizer. Optimizer is set for RELEASE build mode only.
Optimize Level = Use the Level box to specify the optimization level used by the compiler.
ORDER = Options  C51  Keep Variables in Order.
Page Length = Options  Listing  Page Length. Specify the number of lines printed per page in the listing file. The default is 60 lines per page, including headers and empty lines.
Page Width = Options  Listing  Page Width. Specify the number of characters per line that may be printed to the listing file. Lines with more than the specified number of characters are broken into two or more lines.
PREPRINT = Options  C51  C Preprocessor Listing. This settings instructs the compiler to produce a preprocessor listing. Macro calls are expanded and comments are deleted.
PRINT = Options  Listing. The compiler produces a listing of each compiled program. Set to "no" prevents the compiler from generating a listing file.
RegFile = Options  C51  Global Register Coloring. Using a register definition file for global register optimization.
RegisterBank = Select which register bank to use for subsequent functions declared in the source file. Resulting code may use the absolute form of register access when the absolute register number can be computed.
RegParms = The "no" directive forces all function arguments to be passed in fixed memory areas.
ROM = Options  Target  Code Rom Size. You use the ROM directive to specify the size of the program memory. This directive affects the coding of the JMP and CALL instructions.
String Memory Model = Options  C51  Misc controls. This option allows you to specify the memory type used for implicit strings. By default, strings are implicitly located in code memory.
Symbols = This option directs the compiler to generate a list of all symbols used in and by the program module being compiled. This list is included in the listing file. The memory category, memory type, offset, and size are listed for each symbolic object.
VARBANKING = Default the standard C51 library is used.
Warning Level = This option allows you to suppress compiler warnings.
ConstData = This directive directs the compiler to store constant variables in xdata memory rather than code memory. These variables must be declared using const xdata. This frees up code memory for your application program.
External Dependencies=If you select "yes" option, UE Studio will generate in project group "External Dependencies" from included files.

[SettingsReps]

Additional Include Directories =^^@[;|%s;]
Preprocessor (Debug) = @DF (%s)
Preprocessor (Release) = @DF (%s)
NoAbsRegAccess = no=|yes=NOAREGS
Browse Information = no=|yes=BR
Assembly Code = no=|yes=CD
Memory Model = SMALL=|COMPACT=CP|LARGE=LA
Conditional Listing = no=|yes=NOCOND
FloatFuzzy = 3=|0=FF (0)|1=FF (1)|2=FF (2)|4=FF (4)|5=FF (5)|6=FF (6)|7=FF (7)
Interval = @INTERVAL(%s)
Integer Promotion Rules = yes=|no=NOIP
Interrupt Offset = INTVECTOR(0)=|NOINTVECTOR=NOIV|DEFAULT=@IV(%s)
List Include = no=|yes=LC
Max Args = @MAXARGS(%s)
Strict ANSI C = no=|yes=NOEXTEND
One RegBank = no=|yes=OB
Optimize Level = Constant folding=0|Dead code elimination=1|Data overlaying=2|Peephole optimization=3|Register variables=4|Common subexpression elimination=5|Loop rotation=6|Extended Index Access Optimizing=7|Reuse Common Entry Code=8|Common Block Subroutines=9
ORDER = no=|yes=ORDER
Page Length = 60=|DEFAULT=@PL(%s)
Page Width = 132=|DEFAULT=@PW(%s)
PREPRINT = no=|yes=PP($On.LST)
PRINT = yes=PR($On.LST)|no=NOPR
RegFile = @RF(%s)
RegisterBank = 0=|DEFAULT=@RB(%s)
RegParms = yes=|no=NOREGPARMS
ROM = @ROM (%s)
String Memory Model = CODE=|DEFAULT=@STRING (%s)
Symbols = no=|yes=SB
VARBANKING = standard=|far memory support=VB|save address extensions=VB (1)
Warning Level = 2=|DEFAULT=@WL (%s)
ConstData = CODE MEMORY=|XDATA=XC
External Dependencies=yes=1|no=0

[Variables]

CPATH=C:\Keil\C51
AOPT = EP $(Assembler Options) $(PRINT)
COPT = $(Strict ANSI C) $(Compiler Options) $(NoAbsRegAccess) $(BrowseInformation) $(Assembly Code) $(Memory Model) $(Conditional Listing) $(FloatFuzzy) $(Integer Promotion Rules) $(Interval) $(Interrupt Offset) $(List Include) $(Max Args) $(One RegBank) $(ORDER) $(PREPRINT) $(PRINT) $(RegFile) $(RegisterBank) $(RegParms) $(ROM) $(String Memory Model) $(Symbols) $(VARBANKING) $(Warning Level) $(ConstData) $(ConstData)
LOPT = $(Linker Options) $(Page Length) $(Page Width)

[Environment]

PATH = $(CPATH)\BIN
C51INC = $(CPATH)\INC;$(CPATH)\INC\$(Device Family);$(Additional Include Directories)
C51LIB = $(CPATH)\LIB

[General]

TargetExt = .O51
ReleaseOut = Release
DebugOut = Debug
UseFullPaths = 1
UseDosNames = 1
Excludes = $(Excluded Files)

.A51 = .ASM
.C51 = .C
GenerateEDGroup=$(External Dependencies)

[MakeCommands]

run = Execute Application
debug = Start Debugger
makef=Show Makefile

[Execute Application]

Title = Execute $(Command Line Arguments)
Cmd0 = $(Command Line Arguments)
Depends = $T
ShowWindow = 1
DisplayConsole = 1

[Start Debugger]

Title = Debug $T
Cmd0 = $(Debugger) $T
Depends = $T
ShowWindow = 1

[InsertFiles]

[FileGroups]

FGO = .obj;
FGD = .obj;

[GroupFormats]

FGO = ,%s
FGO0 = %s

[Build]

Out = $T
Depends = $FGD
Cmd0 = $(Linker) $FGO TO $O $(LOPT)
Cmd1 = OH51 $O

[.ASM]

Out = $In.obj
DebugFlag = DB $(Preprocessor (Debug))
ReleaseFlag = $(Preprocessor (Release))
Cmd0 = $(Assembler) $I $R OJ($O) $(AOPT)

[.C]

Out = $In.obj
DebugFlag = DB OE $(Preprocessor (Debug))
ReleaseFlag = OT($(Optimize Level),$(Optimize)) OE $(Preprocessor (Release))
Cmd0 = $(Compiler) $I $R OJ($O) $(COPT)

IncFiles = 1
CaseSensitive = 1
IncDirs = .;$(C51INC);
IncKeyWords = #include;
Comments = ;.eol./*.*/.

[Show Makefile]
Title=Show makefile
Cmd0=uestudio $(UESMAKEFILE)
ShowWindow=1
DisplayConsole=0
