diff --git a/src/plugins/scriptedwizard/resources/Makefile.am b/src/plugins/scriptedwizard/resources/Makefile.am
index b843860..f5344ed 100644
--- a/src/plugins/scriptedwizard/resources/Makefile.am
+++ b/src/plugins/scriptedwizard/resources/Makefile.am
@@ -1,4 +1,4 @@
-SUBDIRS = arm avr c_file console d directx dll empty empty_file fltk fortran glfw glut gtk h_file irrlicht lf matlab_csf ogre opengl plugins ppc qt4 sdl sfml smartwin staticlib stlport sharedlib sys tricore win32gui wxwidgets
+SUBDIRS = arm avr c_file console d directx dll empty empty_file fltk fortran glfw glut gtk h_file irrlicht lf mcs51 matlab_csf ogre opengl plugins ppc qt4 sdl sfml smartwin staticlib stlport sharedlib sys tricore win32gui wxwidgets
 
 pkgdata_DATA = scriptedwizard.zip
 CLEANFILES = $(pkgdata_DATA)
diff --git a/src/plugins/scriptedwizard/resources/common_functions.script b/src/plugins/scriptedwizard/resources/common_functions.script
index 2bdb8e9..bed3dd0 100644
--- a/src/plugins/scriptedwizard/resources/common_functions.script
+++ b/src/plugins/scriptedwizard/resources/common_functions.script
@@ -59,6 +59,14 @@ function WarningsOn(base, compilerID)
         // with SDCC all warnings are enabled by default. You can only ask for less by using --less-pedantic or --disable-warning.
         // the (pseudo) compiler "No Compiler" takes no options
     }
+    else if (   GetCompilerFactory().CompilerInheritsFrom(compilerID, _T("keil*")))
+    {
+        base.AddCompilerOption(_T("WARNINGLEVEL(2)"));
+    }
+    else if (   GetCompilerFactory().CompilerInheritsFrom(compilerID, _T("iar*")))
+    {
+        base.AddCompilerOption(_T("--remarks"));
+    }
     else
     {
         ShowWarning(_T("This wizard doesn't know how to setup warning flags for this compiler.\n"));
@@ -113,7 +121,13 @@ function DebugSymbolsOn(base, compilerID)
     {
         base.AddCompilerOption(_T("-d2")); // full symbolic debugging information
     }
-    else if (GetCompilerFactory().CompilerInheritsFrom(compilerID, _T("sdcc")))
+    else if (GetCompilerFactory().CompilerInheritsFrom(compilerID, _T("keil*")))
+    {
+        base.AddCompilerOption(_T("DEBUG"));
+        base.AddCompilerOption(_T("OBJECTEXTEND"));
+    }
+    else if (   GetCompilerFactory().CompilerInheritsFrom(compilerID, _T("sdcc"))
+             || GetCompilerFactory().CompilerInheritsFrom(compilerID, _T("iar*")))
     {
         base.AddCompilerOption(_T("--debug"));
     }
@@ -188,6 +202,19 @@ function OptimizationsOn(base, compilerID)
         base.AddCompilerOption(_T("-ot")); // optimize for time
         base.AddCompilerOption(_T("-ox")); // Maximum optimization
     }
+    else if (   GetCompilerFactory().CompilerInheritsFrom(compilerID, _T("keilc51")))
+    {
+        base.AddCompilerOption(_T("OPTIMIZE(11,SIZE)"));
+    }
+    else if (   GetCompilerFactory().CompilerInheritsFrom(compilerID, _T("keilcx51")))
+    {
+        base.AddCompilerOption(_T("OPTIMIZE(11,SIZE)"));
+        base.AddCompilerOption(_T("OBJECTADVANCED"));
+    }
+    else if (GetCompilerFactory().CompilerInheritsFrom(compilerID, _T("iar*")))
+    {
+        base.AddCompilerOption(_T("-Oh"));
+    }
     else if (   GetCompilerFactory().CompilerInheritsFrom(compilerID, _T("sdcc")) )
     {
         base.AddCompilerOption(_T("--opt-code-size"));
diff --git a/src/plugins/scriptedwizard/resources/mcs51/Makefile.am b/src/plugins/scriptedwizard/resources/mcs51/Makefile.am
new file mode 100644
index 0000000..cb32de3
--- /dev/null
+++ b/src/plugins/scriptedwizard/resources/mcs51/Makefile.am
@@ -0,0 +1,10 @@
+pkgdatadir = $(datadir)/@PACKAGE@/templates/wizard/mcs51
+
+dist_pkgdata_DATA = logo.png \
+					wizard.png \
+					wizard.script \
+                    wizard.xrc
+
+filesdir	= $(pkgdatadir)/files
+
+dist_files_DATA	= files/main.c
diff --git a/src/plugins/scriptedwizard/resources/mcs51/files/main.c b/src/plugins/scriptedwizard/resources/mcs51/files/main.c
index e59c525..ece853c 100644
--- a/src/plugins/scriptedwizard/resources/mcs51/files/main.c
+++ b/src/plugins/scriptedwizard/resources/mcs51/files/main.c
@@ -1,7 +1,13 @@
 /*
  */
 
+#if defined SDCC
 #include <mcs51/8051.h>
+#elif defined __CX51__ || defined __C51__
+#include <reg51.h>
+#elif defined __ICC8051__
+#include <io80C52.h>
+#endif
 
 void main(void)
 {
diff --git a/src/plugins/scriptedwizard/resources/mcs51/wizard.script b/src/plugins/scriptedwizard/resources/mcs51/wizard.script
index 013d6e9..4acad9c 100644
--- a/src/plugins/scriptedwizard/resources/mcs51/wizard.script
+++ b/src/plugins/scriptedwizard/resources/mcs51/wizard.script
@@ -4,12 +4,17 @@
 //
 // Project: MCS51 project
 // Author:  H. Metin OZER
+// Keil/IAR: Thomas Sailer
 //
 ////////////////////////////////////////////////////////////////////////////////
 
 // Global Vars
 MemoryModel <- _T("");     // The chosen memory model
-IntelHex <- true;         // produce Intel Hex file?
+MemoryModelIndex <- 0;     // The memory model as integer
+IntelHex <- true;          // produce Intel Hex file?
+SizeCODE <- 65536;
+SizeIDATA <- 256;
+SizeXDATA <- 4096;
 
 function BeginWizard()
 {
@@ -23,7 +28,7 @@ function BeginWizard()
 
         Wizard.AddInfoPage(_T("MCS51Intro"), intro_msg);
         Wizard.AddProjectPathPage();
-        Wizard.AddCompilerPage(_T("SDCC Compiler"), _T("sdcc*"), false, true);
+        Wizard.AddCompilerPage(_T("SDCC Compiler"), _T("sdcc*;keil*;iar8051"), true, true);
         Wizard.AddPage(_T("memoryModelChoice"));
     }
     else
@@ -40,16 +45,51 @@ function GetFilesDir()
 // Memory Model choice page
 ////////////////////////////////////////////////////////////////////////////////
 
+function OnEnter_memoryModelChoice(fwd)
+{
+    if (fwd)
+    {
+        Wizard.SetComboboxSelection(_T("comboboxMem"), ConfigManager.Read(_T("/mcs51_project_wizard/memorymodel"), 0));
+        Wizard.SetSpinControlValue(_T("spnSizeCODE"), ConfigManager.Read(_T("/mcs51_project_wizard/codesize"), 65536));
+        Wizard.SetSpinControlValue(_T("spnSizeIDATA"), ConfigManager.Read(_T("/mcs51_project_wizard/idatasize"), 256));
+        Wizard.SetSpinControlValue(_T("spnSizeXDATA"), ConfigManager.Read(_T("/mcs51_project_wizard/xdatasize"), 4096));
+        if (GetCompilerFactory().CompilerInheritsFrom(Wizard.GetCompilerID(), _T("sdcc*")))
+        {
+            Wizard.EnableWindow(_T("radioboxOutput"), true);
+        }
+        else
+        {
+            Wizard.EnableWindow(_T("radioboxOutput"), false);
+        }
+        if (GetCompilerFactory().CompilerInheritsFrom(Wizard.GetCompilerID(), _T("iar8051")))
+        {
+            Wizard.EnableWindow(_T("spnSizeIDATA"), false);
+        }
+        else
+        {
+            Wizard.EnableWindow(_T("spnSizeIDATA"), true);
+        }
+    }
+    return true;
+}
 
 function OnLeave_memoryModelChoice(fwd)
 {
     if (fwd)
     {
         MemoryModel = Wizard.GetComboboxStringSelection(_T("comboboxMem"));
+        MemoryModelIndex = Wizard.GetComboboxSelection(_T("comboboxMem"));
+        SizeCODE = Wizard.GetSpinControlValue(_T("spnSizeCODE"));
+        SizeIDATA = Wizard.GetSpinControlValue(_T("spnSizeIDATA"));
+        SizeXDATA = Wizard.GetSpinControlValue(_T("spnSizeXDATA"));
         if ( Wizard.GetRadioboxSelection(_T("radioboxOutput")) == 1 )
         {
             IntelHex = false;
         }
+        ConfigManager.Write(_T("/mcs51_project_wizard/memorymodel"), MemoryModelIndex);
+        ConfigManager.Write(_T("/mcs51_project_wizard/codesize"), SizeCODE);
+        ConfigManager.Write(_T("/mcs51_project_wizard/idatasize"), SizeIDATA);
+        ConfigManager.Write(_T("/mcs51_project_wizard/xdatasize"), SizeXDATA);
     }
     return true;
 }
@@ -59,32 +99,167 @@ function SetupProject(project)
     //Variables
     local out_ext = ::wxString();
 
-    // Post Build steps
-    local pb_hex = ::wxString();
+    if (GetCompilerFactory().CompilerInheritsFrom(Wizard.GetCompilerID(), _T("sdcc*")))
+    {
+        // Post Build steps
+        local pb_hex = ::wxString();
 
-    // Post build commands
-    if (PLATFORM_MSW == PLATFORM)
-        pb_hex = _T("cmd /c \"packihx <$(TARGET_OUTPUT_DIR)$(TARGET_OUTPUT_BASENAME).ihx >$(TARGET_OUTPUT_DIR)$(TARGET_OUTPUT_BASENAME).hex\"");
-    else
-        pb_hex = _T("packihx <$(TARGET_OUTPUT_DIR)$(TARGET_OUTPUT_BASENAME).ihx >$(TARGET_OUTPUT_DIR)$(TARGET_OUTPUT_BASENAME).hex");
+        // Post build commands
+        if (PLATFORM_MSW == PLATFORM)
+            pb_hex = _T("cmd /c \"packihx <$(TARGET_OUTPUT_DIR)$(TARGET_OUTPUT_BASENAME).ihx >$(TARGET_OUTPUT_DIR)$(TARGET_OUTPUT_BASENAME).hex\"");
+        else
+            pb_hex = _T("packihx <$(TARGET_OUTPUT_DIR)$(TARGET_OUTPUT_BASENAME).ihx >$(TARGET_OUTPUT_DIR)$(TARGET_OUTPUT_BASENAME).hex");
+
+        // Project compiler options
+        project.AddCompilerOption(_T("-mmcs51"));
+        project.AddCompilerOption(_T("--model-") + MemoryModel);
+        project.AddLinkerOption(_T("--xram-size " + format("%u", SizeXDATA)));
+        project.AddLinkerOption(_T("--iram-size " + format("%u", SizeIDATA)));
+        project.AddLinkerOption(_T("--code-size " + format("%u", SizeCODE)));
+
+        // Project linker options
+
+        // Project post-build steps
+        if (IntelHex)
+        {
+            project.AddLinkerOption(_T("--out-fmt-ihx"));
+            project.AddCommandsAfterBuild(pb_hex);
+            out_ext = _T(".ihx");
+        }
+        else // (MotS19)
+        {
+            project.AddLinkerOption(_T("--out-fmt-s19"));
+            out_ext = _T(".s19");
+        }
+    }
+    else if (GetCompilerFactory().CompilerInheritsFrom(Wizard.GetCompilerID(), _T("keilc51")))
+    {
+        switch (MemoryModelIndex) {
+            case 0:
+                project.AddCompilerOption(_T("SMALL"));
+                project.AddLinkLib(_T("C51S"));
+                break;
+
+            case 1:
+                project.AddCompilerOption(_T("COMPACT"));
+                project.AddLinkLib(_T("C51C"));
+                break;
 
-    // Project compiler options
-    project.AddCompilerOption(_T("-mmcs51"));
-    project.AddCompilerOption(_T("--model-") + MemoryModel);
+            case 2:
+                project.AddCompilerOption(_T("LARGE"));
+                project.AddLinkLib(_T("C51L"));
+                break;
 
-    // Project linker options
+            case 3:
+                project.AddCompilerOption(_T("LARGE"));
+                project.AddLinkerOption(_T("BANKAREA(8000H,0FFFFH)"));
+                project.AddLinkLib(_T("C51L"));
+                break;
 
-    // Project post-build steps
-    if (IntelHex)
+            default:
+                break;
+        }
+        project.AddLinkerOption(_T("RAMSIZE(" + format("%u", SizeIDATA) + ")"));
+        project.AddLinkerOption(_T("XDATA(0x0-" + format("0x%04X", SizeXDATA - 1) + ")"));
+        project.AddLinkerOption(_T("CODE(0x0-" + format("0x%04X", SizeCODE - 1) + ")"));
+        out_ext = _T(".omf");
+    }
+    else if (GetCompilerFactory().CompilerInheritsFrom(Wizard.GetCompilerID(), _T("keilcx51")))
     {
-        project.AddLinkerOption(_T("--out-fmt-ihx"));
-		project.AddCommandsAfterBuild(pb_hex);
-        out_ext = _T(".ihx");
+        switch (MemoryModelIndex) {
+            case 0:
+                project.AddCompilerOption(_T("SMALL"));
+                project.AddLinkLib(_T("C51S"));
+                break;
+
+            case 1:
+                project.AddCompilerOption(_T("COMPACT"));
+                project.AddLinkLib(_T("C51C"));
+                break;
+
+            case 2:
+                project.AddCompilerOption(_T("LARGE"));
+                project.AddLinkLib(_T("C51L"));
+                break;
+
+            case 3:
+                project.AddCompilerOption(_T("LARGE"));
+                project.AddLinkerOption(_T("BANKAREA(8000H,0FFFFH)"));
+                project.AddLinkLib(_T("C51L"));
+                break;
+
+            default:
+                break;
+        }
+        project.AddLinkerOption(_T("CLASSES (XDATA (X:0x0-X:" + format("0x%04X", SizeXDATA - 1) +
+                                   "), HDATA (X:0x0-X:" + format("0x%04X", SizeXDATA - 1) +
+                                   "), CODE (C:0x0-C:" + format("0x%04X", SizeCODE - 1) +
+                                   "), CONST (C:0x0-C:" + format("0x%04X", SizeCODE - 1) +
+                                   "), ECODE (C:0x0-C:" + format("0x%04X", SizeCODE - 1) +
+                                   "), HCONST (C:0x0-C:" + format("0x%04X", SizeCODE - 1) + "))"));
+        out_ext = _T(".omf");
     }
-    else // (MotS19)
+    else if (GetCompilerFactory().CompilerInheritsFrom(Wizard.GetCompilerID(), _T("iar8051")))
     {
-        project.AddLinkerOption(_T("--out-fmt-s19"));
-        out_ext = _T(".s19");
+        switch (MemoryModelIndex) {
+            case 0:
+                project.AddCompilerOption(_T("--calling_convention=data_overlay"));
+                project.AddCompilerOption(_T("--data_model=small"));
+                project.AddCompilerOption(_T("--code_model=near"));
+                project.AddLinkLib(_T("cl-pli-nsdc-1e16x01.r51"));
+                break;
+
+            case 1:
+                project.AddCompilerOption(_T("--calling_convention=pdata_reentrant"));
+                project.AddCompilerOption(_T("--data_model=large"));
+                project.AddCompilerOption(_T("--code_model=near"));
+                project.AddLinkLib(_T("cl-pli-nlpc-1e16x01.r51"));
+                break;
+
+            case 2:
+                project.AddCompilerOption(_T("--calling_convention=xdata_reentrant"));
+                project.AddCompilerOption(_T("--data_model=large"));
+                project.AddCompilerOption(_T("--code_model=near"));
+                project.AddLinkLib(_T("cl-pli-nlxc-1e16x01.r51"));
+                break;
+
+            case 3:
+                project.AddCompilerOption(_T("--calling_convention=xdata_reentrant"));
+                project.AddCompilerOption(_T("--data_model=large"));
+                project.AddCompilerOption(_T("--code_model=banked"));
+                project.AddLinkLib(_T("cl-pli-blxc-1e16x01.r51"));
+                break;
+
+            default:
+                break;
+        }
+        project.AddCompilerOption(_T("-e"));
+        project.AddCompilerOption(_T("-Om"));
+        project.AddCompilerOption(_T("--clib"));
+        project.AddCompilerOption(_T("--place_constants=code"));
+        project.AddCompilerOption(_T("--core=plain"));
+        project.AddCompilerOption(_T("--dptr=16"));
+        project.AddCompilerOption(_T("--dptr=1"));
+        project.AddCompilerOption(_T("--dptr=separate"));
+        project.AddCompilerOption(_T("--dptr=xor"));
+        project.AddLinkerOption(_T("-Faomf8051"));
+        project.AddLinkerOption(_T("-D_PDATA_STACK_SIZE=0x80"));
+        project.AddLinkerOption(_T("-D_XDATA_STACK_SIZE=0xFFF"));
+        project.AddLinkerOption(_T("-D_IDATA_STACK_SIZE=0x40"));
+        project.AddLinkerOption(_T("-D_EXTENDED_STACK_START=0x00"));
+        project.AddLinkerOption(_T("-D_EXTENDED_STACK_END=0x00"));
+        project.AddLinkerOption(_T("-D_EXTENDED_STACK_SIZE=0x00"));
+        project.AddLinkerOption(_T("-D_NR_OF_VIRTUAL_REGISTERS=8"));
+        project.AddLinkerOption(_T("-D_CODEBANK_START=0"));
+        project.AddLinkerOption(_T("-D_CODEBANK_END=0"));
+        project.AddLinkerOption(_T("-D_XDATA_HEAP_SIZE=0xff"));
+        project.AddLinkerOption(_T("-D_FAR_HEAP_SIZE=0xfff"));
+        project.AddLinkerOption(_T("-D_HUGE_HEAP_SIZE=0xfff"));
+        project.AddLinkerOption(_T("-D_FAR22_HEAP_SIZE=0xfff"));
+        project.AddLinkerOption(_T("-D_XDATA0_END=" + format("0x%04x", SizeXDATA - 1)));
+        project.AddLinkerOption(_T("-D_CODE0_END=" + format("0x%04x", SizeCODE - 1)));
+        project.AddLinkerOption(_T("-s __program_start"));
+        out_ext = _T(".omf");
     }
 
     // Debug build target
diff --git a/src/plugins/scriptedwizard/resources/mcs51/wizard.xrc b/src/plugins/scriptedwizard/resources/mcs51/wizard.xrc
index b69cf39..ae41e48 100644
--- a/src/plugins/scriptedwizard/resources/mcs51/wizard.xrc
+++ b/src/plugins/scriptedwizard/resources/mcs51/wizard.xrc
@@ -23,6 +23,75 @@
 				<border>3</border>
 			</object>
 			<object class="sizeritem">
+				<object class="wxStaticBoxSizer">
+					<label>Memory Sizes</label>
+					<object class="sizeritem">
+						<object class="wxFlexGridSizer">
+							<cols>2</cols>
+							<object class="sizeritem">
+								<object class="wxStaticText" name="ID_STATICTEXT1">
+									<label>CODE Size</label>
+								</object>
+								<flag>wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL</flag>
+								<border>5</border>
+								<option>1</option>
+							</object>
+							<object class="sizeritem">
+								<object class="wxSpinCtrl" name="spnSizeCODE">
+									<value>65536</value>
+									<min>1024</min>
+									<max>65536</max>
+								</object>
+								<flag>wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag>
+								<border>5</border>
+								<option>1</option>
+							</object>
+							<object class="sizeritem">
+								<object class="wxStaticText" name="ID_STATICTEXT2">
+									<label>IDATA Size</label>
+								</object>
+								<flag>wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL</flag>
+								<border>5</border>
+								<option>1</option>
+							</object>
+							<object class="sizeritem">
+								<object class="wxSpinCtrl" name="spnSizeIDATA">
+									<value>256</value>
+									<min>128</min>
+									<max>256</max>
+								</object>
+								<flag>wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag>
+								<border>5</border>
+								<option>1</option>
+							</object>
+							<object class="sizeritem">
+								<object class="wxStaticText" name="ID_STATICTEXT3">
+									<label>XDATA Size</label>
+								</object>
+								<flag>wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL</flag>
+								<border>5</border>
+								<option>1</option>
+							</object>
+							<object class="sizeritem">
+								<object class="wxSpinCtrl" name="spnSizeXDATA">
+									<value>4096</value>
+									<max>65536</max>
+								</object>
+								<flag>wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag>
+								<border>5</border>
+								<option>1</option>
+							</object>
+						</object>
+						<flag>wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag>
+						<border>5</border>
+						<option>1</option>
+					</object>
+				</object>
+				<flag>wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag>
+				<border>5</border>
+				<option>1</option>
+			</object>
+			<object class="sizeritem">
 				<object class="wxRadioBox" name="radioboxOutput">
 					<label>Output Format</label>
 					<content>
diff --git a/src/plugins/scriptedwizard/wiz.cpp b/src/plugins/scriptedwizard/wiz.cpp
index ec9e59f..eada5eb 100644
--- a/src/plugins/scriptedwizard/wiz.cpp
+++ b/src/plugins/scriptedwizard/wiz.cpp
@@ -16,6 +16,7 @@
 #include <wx/panel.h>
 #include <wx/checkbox.h>
 #include <wx/combobox.h>
+#include <wx/spinctrl.h>
 #include <wx/wxscintilla.h>
 
 #include <globals.h>
@@ -1031,6 +1032,29 @@ wxString Wiz::GetTextControlValue(const wxString& name)
     return wxEmptyString;
 }
 
+void Wiz::SetSpinControlValue(const wxString& name, int value)
+{
+    wxWizardPage* page = m_pWizard->GetCurrentPage();
+    if (page)
+    {
+        wxSpinCtrl* win = dynamic_cast<wxSpinCtrl*>(page->FindWindowByName(name, page));
+        if (win)
+            win->SetValue(value);
+    }
+}
+
+int Wiz::GetSpinControlValue(const wxString& name)
+{
+    wxWizardPage* page = m_pWizard->GetCurrentPage();
+    if (page)
+    {
+        wxSpinCtrl* win = dynamic_cast<wxSpinCtrl*>(page->FindWindowByName(name, page));
+        if (win)
+            return win->GetValue();
+    }
+    return -1;
+}
+
 void Wiz::AddInfoPage(const wxString& pageId, const wxString& intro_msg)
 {
     // we don't track this; can add more than one
@@ -1408,6 +1432,8 @@ void Wiz::RegisterWizard()
             func(&Wiz::EnableWindow, "EnableWindow").
             func(&Wiz::SetTextControlValue, "SetTextControlValue").
             func(&Wiz::GetTextControlValue, "GetTextControlValue").
+            func(&Wiz::SetSpinControlValue, "SetSpinControlValue").
+            func(&Wiz::GetSpinControlValue, "GetSpinControlValue").
             func(&Wiz::CheckCheckbox, "CheckCheckbox").
             func(&Wiz::IsCheckboxChecked, "IsCheckboxChecked").
             func(&Wiz::FillComboboxWithCompilers, "FillComboboxWithCompilers").
diff --git a/src/plugins/scriptedwizard/wiz.h b/src/plugins/scriptedwizard/wiz.h
index 2838a40..a66b605 100644
--- a/src/plugins/scriptedwizard/wiz.h
+++ b/src/plugins/scriptedwizard/wiz.h
@@ -109,6 +109,9 @@ class Wiz : public cbWizardPlugin
         void SetTextControlValue(const wxString& name, const wxString& value);
         wxString GetTextControlValue(const wxString& name);
 
+        void SetSpinControlValue(const wxString& name, int value);
+        int GetSpinControlValue(const wxString& name);
+
         // project path page
         wxString GetProjectPath();
         wxString GetProjectName();
