From 6ac7b7a9daa67460aae85c3a81ce68ca42a1e83a Mon Sep 17 00:00:00 2001
From: Richard Barry <ribarry@amazon.com>
Date: Fri, 9 Sep 2011 10:09:10 +0000
Subject: [PATCH] Complete the RL78 demo.  main.c still requires documentation
 in the comments at the top of the file.

---
 .../FreeRTOSConfig.h                          | 13 +----
 .../RL78_RL78G13_Promo_Board_IAR/RTOSDemo.ewp | 14 ++---
 Demo/RL78_RL78G13_Promo_Board_IAR/RegTest.s87 |  9 +--
 Demo/RL78_RL78G13_Promo_Board_IAR/main.c      | 58 +++++++++++++++++--
 .../settings/rtosdemo.dbgdt                   | 14 ++---
 .../settings/rtosdemo.dni                     |  5 +-
 .../settings/rtosdemo.wsdt                    |  6 +-
 7 files changed, 80 insertions(+), 39 deletions(-)

diff --git a/Demo/RL78_RL78G13_Promo_Board_IAR/FreeRTOSConfig.h b/Demo/RL78_RL78G13_Promo_Board_IAR/FreeRTOSConfig.h
index 6e841b0073..de9b770d2f 100644
--- a/Demo/RL78_RL78G13_Promo_Board_IAR/FreeRTOSConfig.h
+++ b/Demo/RL78_RL78G13_Promo_Board_IAR/FreeRTOSConfig.h
@@ -90,12 +90,12 @@ asm file.  It is valid in a C file, but not valid in an asm file. */
 #define configUSE_PREEMPTION			1
 #define configTICK_RATE_HZ				( ( unsigned short ) 1000 )
 #define configMAX_PRIORITIES			( ( unsigned portBASE_TYPE ) 4 )
-#define configMINIMAL_STACK_SIZE		( ( unsigned short ) 100 )
+#define configMINIMAL_STACK_SIZE		( ( unsigned short ) 80 )
 #define configMAX_TASK_NAME_LEN			( 10 )
 #define configUSE_TRACE_FACILITY		0
 #define configUSE_16_BIT_TICKS			1
 #define configIDLE_SHOULD_YIELD			1
-#define configTOTAL_HEAP_SIZE			( (size_t ) ( 3500 ) )
+#define configTOTAL_HEAP_SIZE			( (size_t ) ( 3420 ) )
 #define configCHECK_FOR_STACK_OVERFLOW	2
 #define configUSE_MUTEXES				1
 
@@ -138,15 +138,6 @@ to exclude the API function. */
  */
 #define configCLOCK_SOURCE			  1
 
-/*
- * RL78/G13 Memory Model
- * 1 = use far memory mode
- * 0 = use near memory mode
- *
- * This setting must match the setting in the IAR project options.
- */
-#define configMEMORY_MODE			   0
-
 #if configCLOCK_SOURCE == 0
 	#define configCPU_CLOCK_HZ		( ( unsigned long ) 20000000 )  /* using the external clock source */
 #else
diff --git a/Demo/RL78_RL78G13_Promo_Board_IAR/RTOSDemo.ewp b/Demo/RL78_RL78G13_Promo_Board_IAR/RTOSDemo.ewp
index 0b30add332..a00303a836 100644
--- a/Demo/RL78_RL78G13_Promo_Board_IAR/RTOSDemo.ewp
+++ b/Demo/RL78_RL78G13_Promo_Board_IAR/RTOSDemo.ewp
@@ -78,7 +78,7 @@
         </option>
         <option>
           <name>GenRTLibraryPath</name>
-          <state>$TOOLKIT_DIR$\LIB\dlrl78nn1n.r87</state>
+          <state>$TOOLKIT_DIR$\LIB\dlrl78nf1n.r87</state>
         </option>
         <option>
           <name>GenHwSupport</name>
@@ -104,7 +104,7 @@
         </option>
         <option>
           <name>GenStackSize</name>
-          <state>128</state>
+          <state>130</state>
         </option>
         <option>
           <name>GenNearHeapSize</name>
@@ -112,7 +112,7 @@
         </option>
         <option>
           <name>GenFarHeapSize</name>
-          <state>4096</state>
+          <state>0</state>
         </option>
         <option>
           <name>GeneralEnableMisra</name>
@@ -462,7 +462,7 @@
         <option>
           <name>AsmDefines</name>
           <state>__NEAR_MODEL__</state>
-          <state>__NEAR_DATA_MODEL__</state>
+          <state>__FAR_DATA_MODEL__</state>
         </option>
         <option>
           <name>AsmPreprocOutput</name>
@@ -1717,15 +1717,15 @@
     <name>Demo Source</name>
     <group>
       <name>StandardDemos</name>
+      <file>
+        <name>$PROJ_DIR$\..\Common\Minimal\blocktim.c</name>
+      </file>
       <file>
         <name>$PROJ_DIR$\..\Common\Minimal\dynamic.c</name>
       </file>
       <file>
         <name>$PROJ_DIR$\..\Common\Minimal\PollQ.c</name>
       </file>
-      <file>
-        <name>$PROJ_DIR$\..\Common\Minimal\semtest.c</name>
-      </file>
     </group>
     <file>
       <name>$PROJ_DIR$\main.c</name>
diff --git a/Demo/RL78_RL78G13_Promo_Board_IAR/RegTest.s87 b/Demo/RL78_RL78G13_Promo_Board_IAR/RegTest.s87
index 13dc31ce56..3d10c2ac09 100644
--- a/Demo/RL78_RL78G13_Promo_Board_IAR/RegTest.s87
+++ b/Demo/RL78_RL78G13_Promo_Board_IAR/RegTest.s87
@@ -94,7 +94,7 @@ vRegTest1:
 	MOVW	HL, #0x7788
 	MOV		CS, #0x01
 	
-#if configMEMORY_MODE == 1	
+#if __DATA_MODEL__ == __DATA_MODEL_FAR__
 
 	; ES is not saved or restored when using the near memory model so only
 	; test it when using the far model.
@@ -135,7 +135,8 @@ loop1:
 	BZ		+5
 	BR		vRegTestError
 
-#if configMEMORY_MODE == 1	
+#if __DATA_MODEL__ == __DATA_MODEL_FAR__
+
 	; ES is not saved or restored when using the near memory model so only
 	; test it when using the far model.
 	MOV		A, ES
@@ -170,7 +171,7 @@ vRegTest2:
 	MOVW	HL, #0xff12
 	MOV		CS, #0x03
 
-#if configMEMORY_MODE == 1	
+#if __DATA_MODEL__ == __DATA_MODEL_FAR__
 
 	MOV		ES, #0x04	
 
@@ -197,7 +198,7 @@ loop2:
 	BZ		+5
 	BR		vRegTestError
 
-#if configMEMORY_MODE == 1		
+#if __DATA_MODEL__ == __DATA_MODEL_FAR__
 
 	MOV		A, ES
 	CMP		A, #0x04
diff --git a/Demo/RL78_RL78G13_Promo_Board_IAR/main.c b/Demo/RL78_RL78G13_Promo_Board_IAR/main.c
index 495e18a639..d046e44364 100644
--- a/Demo/RL78_RL78G13_Promo_Board_IAR/main.c
+++ b/Demo/RL78_RL78G13_Promo_Board_IAR/main.c
@@ -69,13 +69,20 @@
 /* Standard demo includes. */
 #include "dynamic.h"
 #include "PollQ.h"
-#include "semtest.h"
+#include "blocktim.h"
 
 /* The period at which the check timer will expire, in ms, provided no errors
 have been reported by any of the standard demo tasks.  ms are converted to the
 equivalent in ticks using the portTICK_RATE_MS constant. */
 #define mainCHECK_TIMER_PERIOD_MS			( 3000UL / portTICK_RATE_MS )
 
+/* These are used to set the period of the demo timer.  The demo timer period
+is always relative to the check timer period, so the check timer can determine
+if the demo timer has expired the expected number of times between its own
+executions. */
+#define mainDEMO_TIMER_INCREMENTS_PER_CHECK_TIMER_TIMEROUT	( 100UL )
+#define mainDEMO_TIMER_PERIOD_MS			( mainCHECK_TIMER_PERIOD_MS / mainDEMO_TIMER_INCREMENTS_PER_CHECK_TIMER_TIMEROUT )
+
 /* The period at which the check timer will expire, in ms, if an error has been
 reported in one of the standard demo tasks.  ms are converted to the equivalent
 in ticks using the portTICK_RATE_MS constant. */
@@ -94,6 +101,11 @@ in ticks using the portTICK_RATE_MS constant. */
  */
 static void prvCheckTimerCallback( xTimerHandle xTimer );
 
+/*
+ * The 'demo' timer callback function, as described at the top of this file.
+ */
+static void prvDemoTimerCallback( xTimerHandle xTimer );
+
 /*
  * This function is called from the C startup routine to setup the processor -
  * in particular the clock source.
@@ -118,6 +130,12 @@ static short sRegTestStatus = pdPASS;
 function. */
 static xTimerHandle xCheckTimer = NULL;
 
+/* This time is just for demo purposes. */
+static xTimerHandle xDemoTimer = NULL;
+
+/* This variable is incremented each time the demo timer expires. */
+static volatile unsigned long ulDemoTimerCounter = 0UL;
+
 /* RL78/G13 Option Byte Definition. Watchdog disabled, LVI enabled, OCD interface
 enabled. */
 __root __far const unsigned char OptionByte[] @ 0x00C0 =
@@ -142,7 +160,7 @@ short main( void )
 	is provided on the FreeRTOS.org WEB site. */
 	vStartDynamicPriorityTasks();
 	vStartPolledQueueTasks( tskIDLE_PRIORITY );
-	vStartSemaphoreTasks( tskIDLE_PRIORITY + 1U );
+	vCreateBlockTimeTasks();
 
 	/* Create the RegTest tasks as described at the top of this file. */
 	xTaskCreate( vRegTest1, "Reg1", configMINIMAL_STACK_SIZE, NULL, 0, NULL );
@@ -157,10 +175,19 @@ short main( void )
 								prvCheckTimerCallback				/* The callback function that inspects the status of all the other tasks. */
 							  );
 							
+	/* Create the software timer that just increments a variable for demo
+	purposes. */
+	xDemoTimer = xTimerCreate( ( const signed char * ) "DemoTimer",/* A text name, purely to help debugging. */
+								( mainDEMO_TIMER_PERIOD_MS ),		/* The timer period, in this case it is always calculated relative to the check timer period (see the definition of mainDEMO_TIMER_PERIOD_MS). */
+								pdTRUE,								/* This is an auto-reload timer, so xAutoReload is set to pdTRUE. */
+								( void * ) 0,						/* The ID is not used, so can be set to anything. */
+								prvDemoTimerCallback				/* The callback function that inspects the status of all the other tasks. */
+							  );
 	
-	/* Send a command to start the check timer.  It will not actually start
-	until the scheduler is running (when vTaskStartScheduler() is called). */
+	/* Start both the check timer and the demo timer.  The timers won't actually
+	start until the scheduler is started. */
 	xTimerStart( xCheckTimer, mainDONT_BLOCK );
+	xTimerStart( xDemoTimer, mainDONT_BLOCK );
 	
 	/* Finally start the scheduler running. */
 	vTaskStartScheduler();
@@ -171,9 +198,20 @@ short main( void )
 }
 /*-----------------------------------------------------------*/
 
+static void prvDemoTimerCallback( xTimerHandle xTimer )
+{
+	/* The demo timer has expired.  All it does is increment a variable.  The
+	period of the demo timer is relative to that of the check timer, so the
+	check timer knows how many times this variable should have been incremented
+	between each execution of the check timer's own callback. */
+	ulDemoTimerCounter++;
+}
+/*-----------------------------------------------------------*/
+
 static void prvCheckTimerCallback( xTimerHandle xTimer )
 {
 static portBASE_TYPE xChangedTimerPeriodAlready = pdFALSE, xErrorStatus = pdPASS;
+static unsigned long ulLastDemoTimerCounter = 0UL;
 
 	if( xAreDynamicPriorityTasksStillRunning() != pdTRUE )
 	{
@@ -185,7 +223,7 @@ static portBASE_TYPE xChangedTimerPeriodAlready = pdFALSE, xErrorStatus = pdPASS
 		xErrorStatus = pdFAIL;
 	}
 	
-	if( xAreSemaphoreTasksStillRunning() != pdTRUE )
+	if( xAreBlockTimeTestTasksStillRunning() != pdTRUE )
 	{
 		xErrorStatus = pdFAIL;
 	}
@@ -194,6 +232,16 @@ static portBASE_TYPE xChangedTimerPeriodAlready = pdFALSE, xErrorStatus = pdPASS
 	{
 		xErrorStatus = pdFAIL;
 	}
+	
+	/* Ensure that the demo timer has expired at
+	mainDEMO_TIMER_INCREMENTS_PER_CHECK_TIMER_TIMEROUT times in between
+	each call of this function. */
+	if( ( ulDemoTimerCounter - ulLastDemoTimerCounter ) < ( mainDEMO_TIMER_INCREMENTS_PER_CHECK_TIMER_TIMEROUT - 1 ) )
+	{
+		xErrorStatus = pdFAIL;
+	}
+	
+	ulLastDemoTimerCounter = ulDemoTimerCounter;
 
 	if( ( xErrorStatus == pdFAIL ) && ( xChangedTimerPeriodAlready == pdFALSE ) )
 	{
diff --git a/Demo/RL78_RL78G13_Promo_Board_IAR/settings/rtosdemo.dbgdt b/Demo/RL78_RL78G13_Promo_Board_IAR/settings/rtosdemo.dbgdt
index f14f331817..d7c608e742 100644
--- a/Demo/RL78_RL78G13_Promo_Board_IAR/settings/rtosdemo.dbgdt
+++ b/Demo/RL78_RL78G13_Promo_Board_IAR/settings/rtosdemo.dbgdt
@@ -26,12 +26,12 @@
         
         
       <MixedMode>1</MixedMode><CodeCovShow>1</CodeCovShow><InstrProfShow>1</InstrProfShow></Disassembly>
-    </Static>
+    <STACK2><PreferedWindows><Position>1</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows/></PreferedWindows></STACK2><Register><PreferedWindows><Position>2</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows/></PreferedWindows></Register></Static>
     <Windows>
       
       
       
-    <Wnd0>
+    <Wnd2>
         <Tabs>
           <Tab>
             <Identity>TabID-30626-17561</Identity>
@@ -47,7 +47,7 @@
           </Tab>
         </Tabs>
         
-      <SelectedTab>0</SelectedTab></Wnd0><Wnd1>
+      <SelectedTab>0</SelectedTab></Wnd2><Wnd3>
         <Tabs>
           <Tab>
             <Identity>TabID-8606-17564</Identity>
@@ -55,24 +55,24 @@
             <Factory>Workspace</Factory>
             <Session>
               
-            <NodeDict><ExpandedNode>RTOSDemo</ExpandedNode><ExpandedNode>RTOSDemo/Demo Source</ExpandedNode><ExpandedNode>RTOSDemo/Demo Source/StandardDemos</ExpandedNode></NodeDict></Session>
+            <NodeDict><ExpandedNode>RTOSDemo</ExpandedNode><ExpandedNode>RTOSDemo/Demo Source</ExpandedNode><ExpandedNode>RTOSDemo/Demo Source/StandardDemos</ExpandedNode><ExpandedNode>RTOSDemo/Kernel Source</ExpandedNode></NodeDict></Session>
           </Tab>
         </Tabs>
         
-      <SelectedTab>0</SelectedTab></Wnd1></Windows>
+      <SelectedTab>0</SelectedTab></Wnd3></Windows>
     <Editor>
       
       
       
       
-    <Pane><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\main.c</Filename><XPos>0</XPos><YPos>157</YPos><SelStart>10672</SelStart><SelEnd>10672</SelEnd></Tab><ActiveTab>0</ActiveTab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\Common\Minimal\semtest.c</Filename><XPos>0</XPos><YPos>248</YPos><SelStart>11198</SelStart><SelEnd>11228</SelEnd></Tab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>
+    <Pane><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\main.c</Filename><XPos>0</XPos><YPos>134</YPos><SelStart>6308</SelStart><SelEnd>6308</SelEnd></Tab><ActiveTab>0</ActiveTab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\..\Source\portable\MemMang\heap_1.c</Filename><XPos>0</XPos><YPos>105</YPos><SelStart>4982</SelStart><SelEnd>4982</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\..\Source\tasks.c</Filename><XPos>0</XPos><YPos>1089</YPos><SelStart>38372</SelStart><SelEnd>38372</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\..\Source\timers.c</Filename><XPos>0</XPos><YPos>186</YPos><SelStart>9465</SelStart><SelEnd>9465</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\FreeRTOSConfig.h</Filename><XPos>0</XPos><YPos>69</YPos><SelStart>4454</SelStart><SelEnd>4454</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\RegTest.s87</Filename><XPos>0</XPos><YPos>109</YPos><SelStart>5308</SelStart><SelEnd>5308</SelEnd></Tab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>
     <Positions>
       
       
       
       
       
-    <Top><Row0><Sizes><Toolbar-013362c8><key>iaridepm.enu1</key></Toolbar-013362c8></Sizes></Row0><Row1><Sizes><Toolbar-04c02860><key>debuggergui.enu1</key></Toolbar-04c02860><Toolbar-08707c28><key>rl78ocd.enu1</key></Toolbar-08707c28></Sizes></Row1><Row2><Sizes/></Row2><Row3><Sizes/></Row3><Row4><Sizes/></Row4><Row5><Sizes/></Row5><Row6><Sizes/></Row6></Top><Left><Row0><Sizes><Wnd1><Rect><Top>-2</Top><Left>-2</Left><Bottom>662</Bottom><Right>344</Right><x>-2</x><y>-2</y><xscreen>346</xscreen><yscreen>254</yscreen><sizeHorzCX>205952</sizeHorzCX><sizeHorzCY>258656</sizeHorzCY><sizeVertCX>205952</sizeVertCX><sizeVertCY>676171</sizeVertCY></Rect></Wnd1></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes><Wnd0><Rect><Top>-2</Top><Left>-2</Left><Bottom>252</Bottom><Right>1682</Right><x>-2</x><y>-2</y><xscreen>1684</xscreen><yscreen>254</yscreen><sizeHorzCX>1002381</sizeHorzCX><sizeHorzCY>258656</sizeHorzCY><sizeVertCX>205952</sizeVertCX><sizeVertCY>258656</sizeVertCY></Rect></Wnd0></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>
+    <Top><Row0><Sizes><Toolbar-013362c8><key>iaridepm.enu1</key></Toolbar-013362c8></Sizes></Row0><Row1><Sizes><Toolbar-0b06e580><key>debuggergui.enu1</key></Toolbar-0b06e580><Toolbar-0ad5a4f8><key>rl78ocd.enu1</key></Toolbar-0ad5a4f8></Sizes></Row1><Row2><Sizes/></Row2><Row3><Sizes/></Row3><Row4><Sizes/></Row4><Row5><Sizes/></Row5><Row6><Sizes/></Row6><Row7><Sizes/></Row7><Row8><Sizes/></Row8><Row9><Sizes/></Row9><Row10><Sizes/></Row10><Row11><Sizes/></Row11><Row12><Sizes/></Row12><Row13><Sizes/></Row13><Row14><Sizes/></Row14><Row15><Sizes/></Row15><Row16><Sizes/></Row16><Row17><Sizes/></Row17><Row18><Sizes/></Row18><Row19><Sizes/></Row19><Row20><Sizes/></Row20><Row21><Sizes/></Row21><Row22><Sizes/></Row22><Row23><Sizes/></Row23><Row24><Sizes/></Row24><Row25><Sizes/></Row25><Row26><Sizes/></Row26><Row27><Sizes/></Row27><Row28><Sizes/></Row28><Row29><Sizes/></Row29><Row30><Sizes/></Row30><Row31><Sizes/></Row31><Row32><Sizes/></Row32><Row33><Sizes/></Row33><Row34><Sizes/></Row34><Row35><Sizes/></Row35><Row36><Sizes/></Row36></Top><Left><Row0><Sizes><Wnd3><Rect><Top>-2</Top><Left>-2</Left><Bottom>662</Bottom><Right>344</Right><x>-2</x><y>-2</y><xscreen>346</xscreen><yscreen>254</yscreen><sizeHorzCX>205952</sizeHorzCX><sizeHorzCY>258656</sizeHorzCY><sizeVertCX>205952</sizeVertCX><sizeVertCY>676171</sizeVertCY></Rect></Wnd3></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes><Wnd2><Rect><Top>-2</Top><Left>-2</Left><Bottom>252</Bottom><Right>1682</Right><x>-2</x><y>-2</y><xscreen>1684</xscreen><yscreen>254</yscreen><sizeHorzCX>1002381</sizeHorzCX><sizeHorzCY>258656</sizeHorzCY><sizeVertCX>205952</sizeVertCX><sizeVertCY>258656</sizeVertCY></Rect></Wnd2></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>
   </Desktop>
 </Project>
 
diff --git a/Demo/RL78_RL78G13_Promo_Board_IAR/settings/rtosdemo.dni b/Demo/RL78_RL78G13_Promo_Board_IAR/settings/rtosdemo.dni
index f1f403d76d..9c561957f8 100644
--- a/Demo/RL78_RL78G13_Promo_Board_IAR/settings/rtosdemo.dni
+++ b/Demo/RL78_RL78G13_Promo_Board_IAR/settings/rtosdemo.dni
@@ -15,7 +15,7 @@ TypeViolation=1
 UnspecRange=1
 ActionState=1
 [DebugChecksum]
-Checksum=-185012109
+Checksum=-1910636464
 [DisAssemblyWindow]
 NumStates=_ 1
 State 1=_ 1
@@ -177,7 +177,8 @@ Mode=0
 Graph=0
 Symbiont=0
 [Breakpoints]
-Count=0
+Bp0=_ "STD_CODE" "{$PROJ_DIR$\..\..\Source\portable\MemMang\heap_1.c}.121.4@1" 1 0 0 0 "" 0 ""
+Count=1
 [Aliases]
 A0=_ "C:\Data\RL78_STICK\FreeRTOSV6.1.1\Source\portable\IAR\RL78\portasm.s87" "E:\Data\RL78_STICK\FreeRTOSV6.1.1\Source\portable\IAR\RL78\portasm.s87"
 Count=1
diff --git a/Demo/RL78_RL78G13_Promo_Board_IAR/settings/rtosdemo.wsdt b/Demo/RL78_RL78G13_Promo_Board_IAR/settings/rtosdemo.wsdt
index 670b6fff63..12f572b343 100644
--- a/Demo/RL78_RL78G13_Promo_Board_IAR/settings/rtosdemo.wsdt
+++ b/Demo/RL78_RL78G13_Promo_Board_IAR/settings/rtosdemo.wsdt
@@ -25,7 +25,7 @@
             <Factory>Workspace</Factory>
             <Session>
               
-            <NodeDict><ExpandedNode>RTOSDemo</ExpandedNode><ExpandedNode>RTOSDemo/Demo Source</ExpandedNode><ExpandedNode>RTOSDemo/Demo Source/StandardDemos</ExpandedNode><ExpandedNode>RTOSDemo/Kernel Source</ExpandedNode></NodeDict></Session>
+            <NodeDict><ExpandedNode>RTOSDemo</ExpandedNode></NodeDict></Session>
           </Tab>
         </Tabs>
         
@@ -35,14 +35,14 @@
       
       
       
-    <Pane><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\main.c</Filename><XPos>0</XPos><YPos>157</YPos><SelStart>10672</SelStart><SelEnd>10672</SelEnd></Tab><ActiveTab>0</ActiveTab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\Common\Minimal\semtest.c</Filename><XPos>0</XPos><YPos>248</YPos><SelStart>11198</SelStart><SelEnd>11228</SelEnd></Tab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>
+    <Pane><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\main.c</Filename><XPos>0</XPos><YPos>134</YPos><SelStart>6308</SelStart><SelEnd>6308</SelEnd></Tab><ActiveTab>0</ActiveTab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>
     <Positions>
       
       
       
       
       
-    <Top><Row0><Sizes><Toolbar-013362c8><key>iaridepm.enu1</key></Toolbar-013362c8></Sizes></Row0><Row1><Sizes/></Row1><Row2><Sizes/></Row2><Row3><Sizes/></Row3><Row4><Sizes/></Row4><Row5><Sizes/></Row5><Row6><Sizes/></Row6><Row7><Sizes/></Row7><Row8><Sizes/></Row8><Row9><Sizes/></Row9><Row10><Sizes/></Row10></Top><Left><Row0><Sizes><Wnd0><Rect><Top>-2</Top><Left>-2</Left><Bottom>629</Bottom><Right>318</Right><x>-2</x><y>-2</y><xscreen>263</xscreen><yscreen>200</yscreen><sizeHorzCX>156548</sizeHorzCX><sizeHorzCY>203666</sizeHorzCY><sizeVertCX>190476</sizeVertCX><sizeVertCY>642566</sizeVertCY></Rect></Wnd0></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes><Wnd1><Rect><Top>-2</Top><Left>-2</Left><Bottom>309</Bottom><Right>1682</Right><x>-2</x><y>-2</y><xscreen>1684</xscreen><yscreen>311</yscreen><sizeHorzCX>1002381</sizeHorzCX><sizeHorzCY>316701</sizeHorzCY><sizeVertCX>205357</sizeVertCX><sizeVertCY>258656</sizeVertCY></Rect></Wnd1></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>
+    <Top><Row0><Sizes><Toolbar-013362c8><key>iaridepm.enu1</key></Toolbar-013362c8></Sizes></Row0><Row1><Sizes/></Row1><Row2><Sizes/></Row2><Row3><Sizes/></Row3><Row4><Sizes/></Row4><Row5><Sizes/></Row5><Row6><Sizes/></Row6><Row7><Sizes/></Row7><Row8><Sizes/></Row8><Row9><Sizes/></Row9><Row10><Sizes/></Row10><Row11><Sizes/></Row11><Row12><Sizes/></Row12><Row13><Sizes/></Row13><Row14><Sizes/></Row14><Row15><Sizes/></Row15><Row16><Sizes/></Row16><Row17><Sizes/></Row17><Row18><Sizes/></Row18><Row19><Sizes/></Row19><Row20><Sizes/></Row20><Row21><Sizes/></Row21><Row22><Sizes/></Row22><Row23><Sizes/></Row23><Row24><Sizes/></Row24><Row25><Sizes/></Row25><Row26><Sizes/></Row26><Row27><Sizes/></Row27><Row28><Sizes/></Row28><Row29><Sizes/></Row29><Row30><Sizes/></Row30><Row31><Sizes/></Row31><Row32><Sizes/></Row32><Row33><Sizes/></Row33><Row34><Sizes/></Row34><Row35><Sizes/></Row35><Row36><Sizes/></Row36><Row37><Sizes/></Row37><Row38><Sizes/></Row38></Top><Left><Row0><Sizes><Wnd0><Rect><Top>-2</Top><Left>-2</Left><Bottom>629</Bottom><Right>318</Right><x>-2</x><y>-2</y><xscreen>263</xscreen><yscreen>200</yscreen><sizeHorzCX>156548</sizeHorzCX><sizeHorzCY>203666</sizeHorzCY><sizeVertCX>190476</sizeVertCX><sizeVertCY>642566</sizeVertCY></Rect></Wnd0></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes><Wnd1><Rect><Top>-2</Top><Left>-2</Left><Bottom>309</Bottom><Right>1682</Right><x>-2</x><y>-2</y><xscreen>1684</xscreen><yscreen>311</yscreen><sizeHorzCX>1002381</sizeHorzCX><sizeHorzCY>316701</sizeHorzCY><sizeVertCX>205357</sizeVertCX><sizeVertCY>258656</sizeVertCY></Rect></Wnd1></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>
   </Desktop>
 </Workspace>