Index: trunk/Softwares/Makefile
===================================================================
--- trunk/Softwares/Makefile	(revision 88)
+++ trunk/Softwares/Makefile	(revision 98)
@@ -15,5 +15,5 @@
 #-----[ Variables ]---------------------------------------------------------------
 
-SOFT				= 	Min							\
+SOFT				= 	Minimal_soft						\
 					Test/*
 
Index: trunk/Softwares/Minimal_soft/Makefile
===================================================================
--- trunk/Softwares/Minimal_soft/Makefile	(revision 98)
+++ trunk/Softwares/Minimal_soft/Makefile	(revision 98)
@@ -0,0 +1,26 @@
+# 
+# $Id$
+# 
+# [ Description ]
+# 
+# Makefile
+# 
+
+# common definition
+DIR_SRC				= ./src
+DIR_C				= $(DIR_SRC)/c
+DIR_ASM				= $(DIR_SRC)/asm
+DIR_SYS				= $(DIR_SRC)/sys
+DIR_INC		       		= $(DIR_C)/include
+DIR_LDSCRIPT			= ../Global/ldscript/
+
+INCLUDE				= -I$(DIR_INC)
+LIBRARY				= 
+
+#-----[ Files ]-------------------------------------------------------------------
+OBJECTS				= 	$(patsubst $(DIR_ASM)/%.s,$(DIR_OBJ)/%.o,$(wildcard $(DIR_ASM)/*.s))	\
+					$(patsubst $(DIR_SYS)/%.s,$(DIR_OBJ)/%.o,$(wildcard $(DIR_SYS)/*.s))	\
+					$(patsubst $(DIR_C)/%.c,$(DIR_OBJ)/%.o,$(wildcard $(DIR_C)/*.c))
+
+include				../Makefile.Software
+
Index: trunk/Softwares/Minimal_soft/src/asm/cpu_info.s
===================================================================
--- trunk/Softwares/Minimal_soft/src/asm/cpu_info.s	(revision 98)
+++ trunk/Softwares/Minimal_soft/src/asm/cpu_info.s	(revision 98)
@@ -0,0 +1,18 @@
+/*
+ * Manipulation of processor information
+ */
+		
+	.file	"cpu_info.s"
+	.section .text
+	.align	4
+
+	.global _get_cpu_id
+_get_cpu_id :
+	l.jr	r9
+	l.mfspr r11,r0,0xF800  /* R11 <- SPR[31][0] */
+
+	.global _set_cpu_id
+_set_cpu_id :
+	l.jr	r9
+	l.mtspr r0 ,r3,0xF800  /* SPR[31][0] <- r3  */
+
Index: trunk/Softwares/Minimal_soft/src/asm/find_one.s
===================================================================
--- trunk/Softwares/Minimal_soft/src/asm/find_one.s	(revision 98)
+++ trunk/Softwares/Minimal_soft/src/asm/find_one.s	(revision 98)
@@ -0,0 +1,19 @@
+/*
+ * Manipulation of bits
+ */
+		
+	.file	"find_one.s"
+	.section .text
+	.align	4
+
+	.global _find_first_one
+_find_first_one :
+	l.jr	r9
+	l.ff1   r11,r3
+
+/*
+	.global _find_last_one
+_find_last_one :
+	l.jr	r9
+	l.fl1   r11,r3,r0
+*/
Index: trunk/Softwares/Minimal_soft/src/asm/thread_info.s
===================================================================
--- trunk/Softwares/Minimal_soft/src/asm/thread_info.s	(revision 98)
+++ trunk/Softwares/Minimal_soft/src/asm/thread_info.s	(revision 98)
@@ -0,0 +1,28 @@
+/*
+ * Manipulation of thread information
+ */
+		
+	.file	"thread_info.s"
+	.section .text
+	.align	4
+
+	.global _get_thread_id
+_get_thread_id :
+	l.jr	r9				
+	l.mfspr r11,r0,0xF801			/* R11 <- SPR[31][1] */
+	
+	.global _set_thread_id
+_set_thread_id :
+	l.jr	r9
+	l.mtspr r0 ,r3,0xF801			/* SPR[31][1] <- r3  */
+
+	.global _get_thread_priority
+_get_thread_priority :
+	l.jr	r9
+	l.mfspr r11,r0,0xF802			/* R11 <- SPR[31][2] */
+
+	.global _set_thread_priority
+_set_thread_priority :
+	l.jr	r9
+	l.mtspr r0 ,r3,0xF802			/* SPR[31][2] <- r3  */
+	
Index: trunk/Softwares/Minimal_soft/src/c/include/cpu_info.h
===================================================================
--- trunk/Softwares/Minimal_soft/src/c/include/cpu_info.h	(revision 98)
+++ trunk/Softwares/Minimal_soft/src/c/include/cpu_info.h	(revision 98)
@@ -0,0 +1,3 @@
+
+extern unsigned int get_cpu_id();
+extern void         set_cpu_id(unsigned int);
Index: trunk/Softwares/Minimal_soft/src/c/include/thread_info.h
===================================================================
--- trunk/Softwares/Minimal_soft/src/c/include/thread_info.h	(revision 98)
+++ trunk/Softwares/Minimal_soft/src/c/include/thread_info.h	(revision 98)
@@ -0,0 +1,5 @@
+
+extern unsigned int get_thread_id       ();
+extern void         set_thread_id       (unsigned int);
+extern unsigned int get_thread_priority ();
+extern void         set_thread_priority (unsigned int);
Index: trunk/Softwares/Minimal_soft/src/c/main.c
===================================================================
--- trunk/Softwares/Minimal_soft/src/c/main.c	(revision 98)
+++ trunk/Softwares/Minimal_soft/src/c/main.c	(revision 98)
@@ -0,0 +1,13 @@
+#include "thread_info.h"
+#include "cpu_info.h"
+
+//=====[ main ]=================================================================
+/*
+ * All thread execute this routine
+ * Initialize the thread and attribute a Workload at each thread
+ */
+
+int main()
+{
+  while (1);
+}
Index: trunk/Softwares/Minimal_soft/src/sys/crt0.s
===================================================================
--- trunk/Softwares/Minimal_soft/src/sys/crt0.s	(revision 98)
+++ trunk/Softwares/Minimal_soft/src/sys/crt0.s	(revision 98)
@@ -0,0 +1,580 @@
+/*
+ * Routine system dependant
+ *  - reset
+ *  - exception handler
+ *  - start / exit
+ */
+
+/*		
+#define DEFAULT_EXCEPTION_HANDLER     \
+	l.addi  r1, r1, -128         ;\
+	l.sw    4(r1), r3            ;\ 
+	l.sw    8(r1), r4	     ;\
+	l.mfspr r3,r0,16             ;\
+	l.mfspr r4,r0,32             ;\
+	l.j default_exception_handler;\
+	l.nop	0                    ;
+*/
+	
+	.file	"crt0.s"
+	/*
+	.section .vector
+	*/
+	.section .text
+	.align	4	
+
+/* ---[ 0x0  : Print a error ]------------------------------------------- */
+
+	.org 0x0
+
+	l.movhi r3,   0xdead
+	l.jal	_quit
+	l.ori	r3,r3,0xdead
+
+	/*
+	l.nop	-0
+	l.nop	-1
+	l.nop	-2
+	l.nop	-3
+	l.nop	-4
+	l.nop	-5
+	l.nop	-6
+	l.nop	-7
+	l.nop	-8
+	l.nop	-9
+	l.nop	-10
+	l.nop	-11
+	l.nop	-12
+	l.nop	-13
+	l.nop	-14
+	l.nop	-15
+	l.nop	-16
+	l.nop	-17
+	l.nop	-18
+	l.nop	-19
+	l.nop	-20
+	l.nop	-21
+	l.nop	-22
+	l.nop	-23
+	l.nop	-24
+	l.nop	-25
+	l.nop	-26
+	l.nop	-27
+	l.nop	-28
+	l.nop	-29
+	l.nop	-30
+	l.nop	-31
+	l.nop	-32
+	l.nop	-33
+	l.nop	-34
+	l.nop	-35
+	l.nop	-36
+	l.nop	-37
+	l.nop	-38
+	l.nop	-39
+	l.nop	-40
+	l.nop	-41
+	l.nop	-42
+	l.nop	-43
+	l.nop	-44
+	l.nop	-45
+	l.nop	-46
+	l.nop	-47
+	l.nop	-48
+	l.nop	-49
+	l.nop	-50
+	l.nop	-51
+	l.nop	-52
+	l.nop	-53
+	l.nop	-54
+	l.nop	-55
+	l.nop	-56
+	l.nop	-57
+	l.nop	-58
+	l.nop	-59
+	l.nop	-60
+	l.nop	-61
+	l.nop	-62
+	l.nop	-63
+	*/
+
+/* ---[ 0x100: RESET exception ]----------------------------------------- */
+        .org 0x100
+	.global _exception_reset
+_exception_reset:
+
+	l.movhi r2,   hi(_start)
+	l.ori   r2,r2,lo(_start)
+	l.jr    r2		 /* Go _start */
+	l.nop	0
+
+/* ---[ 0x200: BUS exception ]------------------------------------------- */
+	.org 0x200
+	/*DEFAULT_EXCEPTION_HANDLER*/
+	l.addi  r1, r1, -128         
+	l.sw    4(r1), r3             
+	l.sw    8(r1), r4	     
+	l.mfspr r3,r0,16             
+	l.mfspr r4,r0,32             
+	l.j default_exception_handler
+	l.nop	0                    
+	
+
+/* ---[ 0x300: Data Page Fault exception ]------------------------------- */
+	.org 0x300
+	/*DEFAULT_EXCEPTION_HANDLER*/
+	l.addi  r1, r1, -128         
+	l.sw    4(r1), r3             
+	l.sw    8(r1), r4	     
+	l.mfspr r3,r0,16             
+	l.mfspr r4,r0,32             
+	l.j default_exception_handler
+	l.nop	0                    
+
+	
+/* ---[ 0x400: Insn Page Fault exception ]------------------------------- */
+	.org 0x400
+	/*DEFAULT_EXCEPTION_HANDLER*/
+	l.addi  r1, r1, -128         
+	l.sw    4(r1), r3             
+	l.sw    8(r1), r4	     
+	l.mfspr r3,r0,16             
+	l.mfspr r4,r0,32             
+	l.j default_exception_handler
+	l.nop	0                    
+
+
+/* ---[ 0x500: Timer exception ]----------------------------------------- */
+	.org 0x500
+	/*DEFAULT_EXCEPTION_HANDLER*/
+	l.addi  r1, r1, -128         
+	l.sw    4(r1), r3             
+	l.sw    8(r1), r4	     
+	l.mfspr r3,r0,16             
+	l.mfspr r4,r0,32             
+	l.j default_exception_handler
+	l.nop	0                    
+
+
+/* ---[ 0x600: Aligment exception ]-------------------------------------- */
+	.org 0x600
+	/*DEFAULT_EXCEPTION_HANDLER*/
+	l.addi  r1, r1, -128         
+	l.sw    4(r1), r3             
+	l.sw    8(r1), r4	     
+	l.mfspr r3,r0,16             
+	l.mfspr r4,r0,32             
+	l.j default_exception_handler
+	l.nop	0                    
+
+	
+/* ---[ 0x700: Illegal insn exception ]---------------------------------- */
+	.org 0x700
+	/*DEFAULT_EXCEPTION_HANDLER*/
+	l.addi  r1, r1, -128         
+	l.sw    4(r1), r3             
+	l.sw    8(r1), r4	     
+	l.mfspr r3,r0,16             
+	l.mfspr r4,r0,32             
+	l.j default_exception_handler
+	l.nop	0                    
+
+
+/* ---[ 0x800: External interrupt exception ]---------------------------- */
+	.org 0x800
+	/*DEFAULT_EXCEPTION_HANDLER*/
+	l.addi  r1, r1, -128         
+	l.sw    4(r1), r3             
+	l.sw    8(r1), r4	     
+	l.mfspr r3,r0,16             
+	l.mfspr r4,r0,32             
+	l.j default_exception_handler
+	l.nop	0                    
+
+
+/* ---[ 0x900: DTLB miss exception ]------------------------------------- */
+	.org 0x900
+	/*DEFAULT_EXCEPTION_HANDLER*/
+	l.addi  r1, r1, -128         
+	l.sw    4(r1), r3             
+	l.sw    8(r1), r4	     
+	l.mfspr r3,r0,16             
+	l.mfspr r4,r0,32             
+	l.j default_exception_handler
+	l.nop	0                    
+
+	
+/* ---[ 0xa00: ITLB miss exception ]------------------------------------- */
+	.org 0xa00
+	/*DEFAULT_EXCEPTION_HANDLER*/
+	l.addi  r1, r1, -128         
+	l.sw    4(r1), r3             
+	l.sw    8(r1), r4	     
+	l.mfspr r3,r0,16             
+	l.mfspr r4,r0,32             
+	l.j default_exception_handler
+	l.nop	0                    
+
+	
+		
+/* ---[ 0xb00: Range exception ]----------------------------------------- */
+	.org 0xb00
+	/*DEFAULT_EXCEPTION_HANDLER*/
+	l.addi  r1, r1, -128         
+	l.sw    4(r1), r3             
+	l.sw    8(r1), r4	     
+	l.mfspr r3,r0,16             
+	l.mfspr r4,r0,32             
+	l.j default_exception_handler
+	l.nop	0                    
+
+	
+
+/* ---[ 0xc00: Syscall exception ]--------------------------------------- */
+	.org 0xc00
+	/*DEFAULT_EXCEPTION_HANDLER*/
+	l.addi  r1, r1, -128         
+	l.sw    4(r1), r3             
+	l.sw    8(r1), r4	     
+	l.mfspr r3,r0,16             
+	l.mfspr r4,r0,32             
+	l.j default_exception_handler
+	l.nop	0                    
+
+	
+
+/* ---[ 0xd00: Trap exception ]------------------------------------------ */
+	.org 0xd00
+	/*DEFAULT_EXCEPTION_HANDLER*/
+	l.addi  r1, r1, -128         
+	l.sw    4(r1), r3             
+	l.sw    8(r1), r4	     
+	l.mfspr r3,r0,16             
+	l.mfspr r4,r0,32             
+	l.j default_exception_handler
+	l.nop	0                    
+
+	
+
+/* ---[ 0xe00: Trap exception ]------------------------------------------ */
+	.org 0xe00
+	/*DEFAULT_EXCEPTION_HANDLER*/
+	l.addi  r1, r1, -128         
+	l.sw    4(r1), r3             
+	l.sw    8(r1), r4	     
+	l.mfspr r3,r0,16             
+	l.mfspr r4,r0,32             
+	l.j default_exception_handler
+	l.nop	0                    
+
+	
+	
+/* ---[ 0xf00: Reserved exceptions ]------------------------------------- */
+	.org 0xf00
+	/*DEFAULT_EXCEPTION_HANDLER*/
+	l.addi  r1, r1, -128         
+	l.sw    4(r1), r3             
+	l.sw    8(r1), r4	     
+	l.mfspr r3,r0,16             
+	l.mfspr r4,r0,32             
+	l.j default_exception_handler
+	l.nop	0                    
+
+	
+	.org 0x1000
+	/*DEFAULT_EXCEPTION_HANDLER*/
+	l.addi  r1, r1, -128         
+	l.sw    4(r1), r3             
+	l.sw    8(r1), r4	     
+	l.mfspr r3,r0,16             
+	l.mfspr r4,r0,32             
+	l.j default_exception_handler
+	l.nop	0                    
+
+	
+	.org 0x1100
+	/*DEFAULT_EXCEPTION_HANDLER*/
+	l.addi  r1, r1, -128         
+	l.sw    4(r1), r3             
+	l.sw    8(r1), r4	     
+	l.mfspr r3,r0,16             
+	l.mfspr r4,r0,32             
+	l.j default_exception_handler
+	l.nop	0                    
+
+	
+	.org 0x1200
+	/*DEFAULT_EXCEPTION_HANDLER*/
+	l.addi  r1, r1, -128         
+	l.sw    4(r1), r3             
+	l.sw    8(r1), r4	     
+	l.mfspr r3,r0,16             
+	l.mfspr r4,r0,32             
+	l.j default_exception_handler
+	l.nop	0                    
+
+	
+	.org 0x1300
+	/*DEFAULT_EXCEPTION_HANDLER*/
+	l.addi  r1, r1, -128         
+	l.sw    4(r1), r3             
+	l.sw    8(r1), r4	     
+	l.mfspr r3,r0,16             
+	l.mfspr r4,r0,32             
+	l.j default_exception_handler
+	l.nop	0                    
+
+	
+	.org 0x1400
+	/*DEFAULT_EXCEPTION_HANDLER*/
+	l.addi  r1, r1, -128         
+	l.sw    4(r1), r3             
+	l.sw    8(r1), r4	     
+	l.mfspr r3,r0,16             
+	l.mfspr r4,r0,32             
+	l.j default_exception_handler
+	l.nop	0                    
+
+	
+	.org 0x1500
+	/*DEFAULT_EXCEPTION_HANDLER*/
+	l.addi  r1, r1, -128         
+	l.sw    4(r1), r3             
+	l.sw    8(r1), r4	     
+	l.mfspr r3,r0,16             
+	l.mfspr r4,r0,32             
+	l.j default_exception_handler
+	l.nop	0                    
+
+	
+	.org 0x1600
+	/*DEFAULT_EXCEPTION_HANDLER*/
+	l.addi  r1, r1, -128         
+	l.sw    4(r1), r3             
+	l.sw    8(r1), r4	     
+	l.mfspr r3,r0,16             
+	l.mfspr r4,r0,32             
+	l.j default_exception_handler
+	l.nop	0                    
+
+	
+	.org 0x1700
+	/*DEFAULT_EXCEPTION_HANDLER*/
+	l.addi  r1, r1, -128         
+	l.sw    4(r1), r3             
+	l.sw    8(r1), r4	     
+	l.mfspr r3,r0,16             
+	l.mfspr r4,r0,32             
+	l.j default_exception_handler
+	l.nop	0                    
+
+	
+	.org 0x1800
+	/*DEFAULT_EXCEPTION_HANDLER*/
+	l.addi  r1, r1, -128         
+	l.sw    4(r1), r3             
+	l.sw    8(r1), r4	     
+	l.mfspr r3,r0,16             
+	l.mfspr r4,r0,32             
+	l.j default_exception_handler
+	l.nop	0                    
+
+	
+	.org 0x1900
+	/*DEFAULT_EXCEPTION_HANDLER*/
+	l.addi  r1, r1, -128         
+	l.sw    4(r1), r3             
+	l.sw    8(r1), r4	     
+	l.mfspr r3,r0,16             
+	l.mfspr r4,r0,32             
+	l.j default_exception_handler
+	l.nop	0                    
+
+	
+	.org 0x1a00
+	/*DEFAULT_EXCEPTION_HANDLER*/
+	l.addi  r1, r1, -128         
+	l.sw    4(r1), r3             
+	l.sw    8(r1), r4	     
+	l.mfspr r3,r0,16             
+	l.mfspr r4,r0,32             
+	l.j default_exception_handler
+	l.nop	0                    
+
+	
+	.org 0x1b00
+	/*DEFAULT_EXCEPTION_HANDLER*/
+	l.addi  r1, r1, -128         
+	l.sw    4(r1), r3             
+	l.sw    8(r1), r4	     
+	l.mfspr r3,r0,16             
+	l.mfspr r4,r0,32             
+	l.j default_exception_handler
+	l.nop	0                    
+
+	
+	.org 0x1c00
+	/*DEFAULT_EXCEPTION_HANDLER*/
+	l.addi  r1, r1, -128         
+	l.sw    4(r1), r3             
+	l.sw    8(r1), r4	     
+	l.mfspr r3,r0,16             
+	l.mfspr r4,r0,32             
+	l.j default_exception_handler
+	l.nop	0                    
+
+	
+	.org 0x1d00
+	/*DEFAULT_EXCEPTION_HANDLER*/
+	l.addi  r1, r1, -128         
+	l.sw    4(r1), r3             
+	l.sw    8(r1), r4	     
+	l.mfspr r3,r0,16             
+	l.mfspr r4,r0,32             
+	l.j default_exception_handler
+	l.nop	0                    
+
+	
+	.org 0x1e00
+	/*DEFAULT_EXCEPTION_HANDLER*/
+	l.addi  r1, r1, -128         
+	l.sw    4(r1), r3             
+	l.sw    8(r1), r4	     
+	l.mfspr r3,r0,16             
+	l.mfspr r4,r0,32             
+	l.j default_exception_handler
+	l.nop	0                    
+
+	
+	.org 0x1f00
+	/*DEFAULT_EXCEPTION_HANDLER*/
+	l.addi  r1, r1, -128         
+	l.sw    4(r1), r3             
+	l.sw    8(r1), r4	     
+	l.mfspr r3,r0,16             
+	l.mfspr r4,r0,32             
+	l.j default_exception_handler
+	l.nop	0                    
+
+
+/* ========================================================= [ entry ] === */
+
+	.org 0x2000
+	.global _start
+	
+_start:
+	/* Initialise stack */
+
+	l.movhi r1,     hi(_stack)
+	l.ori   r1, r1, lo(_stack)
+	l.addi  r2, r0, -3		  /* 0xFFFF_FFFC */
+
+	l.jal	_get_cpu_id               /* give the id of the cpu */
+	l.and   r1, r1, r2
+
+	l.movhi r4,     hi(_stack_alloc)
+	l.ori   r4, r4, lo(_stack_alloc)
+
+	l.mul	r4, r11,r4
+	l.sub	r1, r1 ,r4                /* each thread have a <<_stack>> with a size <<_stack_alloc>> */
+	l.or	r2, r1, r0                /* copy in frame_pointer register */
+
+	/* Clear BSS */
+/*
+	l.movhi r28,      hi(___bss_start)
+	l.ori   r28, r28, lo(___bss_start)
+	l.movhi r30,      hi(__end)
+	l.ori   r30, r30, lo(__end)
+1:
+        l.sw    (0)(r28), r0
+        l.sfltu r28, r30
+        l.bf    1b
+        l.addi  r28, r28, 4
+*/
+	/* Jump to main program entry point (argc = argv = 0) */
+	l.and	r3,r0,r0
+	l.jal   _main
+	l.and	r4,r0,r0
+	
+	/* If program exits, call exit routine */
+/*
+	l.addi  r3, r11, 0
+	l.jal   __exit
+	l.nop	0
+*/
+/* ====================================== [ default exception handler ] === */
+
+default_exception_handler:
+	l.sw    0x00(r1), r2
+	l.sw    0x0c(r1), r5
+	l.sw    0x10(r1), r6
+	l.sw    0x14(r1), r7
+	l.sw    0x18(r1), r8
+	l.sw    0x1c(r1), r9
+	l.sw    0x20(r1), r10
+	l.sw    0x24(r1), r11
+	l.sw    0x28(r1), r12
+	l.sw    0x2c(r1), r13
+	l.sw    0x30(r1), r14
+	l.sw    0x34(r1), r15
+	l.sw    0x38(r1), r16
+	l.sw    0x3c(r1), r17
+	l.sw    0x40(r1), r18
+	l.sw    0x44(r1), r19
+	l.sw    0x48(r1), r20
+	l.sw    0x4c(r1), r21
+	l.sw    0x50(r1), r22
+	l.sw    0x54(r1), r23
+	l.sw    0x58(r1), r24
+	l.sw    0x5c(r1), r25
+	l.sw    0x60(r1), r26
+	l.sw    0x64(r1), r27
+	l.sw    0x68(r1), r28
+	l.sw    0x6c(r1), r29
+	l.sw    0x70(r1), r30
+	l.sw    0x74(r1), r31
+	l.sw    0x78(r1), r32
+	
+	/*
+	 * Jump to a handler (write in C by example)
+	 */
+	
+	l.jal   _exception_handler
+	l.nop	0
+	
+	l.lwz   r2 , 0x00(r1)
+	l.lwz   r3 , 0x04(r1)
+	l.lwz   r4 , 0x08(r1)
+	l.lwz   r5 , 0x0c(r1)
+	l.lwz   r6 , 0x10(r1)
+	l.lwz   r7 , 0x14(r1)
+	l.lwz   r8 , 0x18(r1)
+	l.lwz   r9 , 0x1c(r1)
+	l.lwz   r10, 0x20(r1)
+	l.lwz   r11, 0x24(r1)
+	l.lwz   r12, 0x28(r1)
+	l.lwz   r13, 0x2c(r1)
+	l.lwz   r14, 0x30(r1)
+	l.lwz   r15, 0x34(r1)
+	l.lwz   r16, 0x38(r1)
+	l.lwz   r17, 0x3c(r1)
+	l.lwz   r18, 0x40(r1)
+	l.lwz   r19, 0x44(r1)
+	l.lwz   r20, 0x48(r1)
+	l.lwz   r21, 0x4c(r1)
+	l.lwz   r22, 0x50(r1)
+	l.lwz   r23, 0x54(r1)
+	l.lwz   r24, 0x58(r1)
+	l.lwz   r25, 0x5c(r1)
+	l.lwz   r26, 0x60(r1)
+	l.lwz   r27, 0x64(r1)
+	l.lwz   r28, 0x68(r1)
+	l.lwz   r29, 0x6c(r1)
+	l.lwz   r30, 0x70(r1)
+	l.lwz   r31, 0x74(r1)
+	l.lwz   r32, 0x78(r1)
+
+	l.addi  r1, r1, 128
+
+	l.rfe
+	l.nop	0
Index: trunk/Softwares/Test/Test_006/src/sys/crt0.s
===================================================================
--- trunk/Softwares/Test/Test_006/src/sys/crt0.s	(revision 88)
+++ trunk/Softwares/Test/Test_006/src/sys/crt0.s	(revision 98)
@@ -1,4 +1,4 @@
 /*
- * Test_005
+ * Test_006
  *
  * end_ko : infinite_loop
Index: trunk/Softwares/Test/Test_007/Makefile
===================================================================
--- trunk/Softwares/Test/Test_007/Makefile	(revision 98)
+++ trunk/Softwares/Test/Test_007/Makefile	(revision 98)
@@ -0,0 +1,27 @@
+# 
+# $Id$
+# 
+# [ Description ]
+# 
+# Makefile
+# 
+
+# common definition
+DIR_SOFT			= ../..
+DIR_SRC				= ./src
+DIR_C				= $(DIR_SRC)/c
+DIR_ASM				= $(DIR_SRC)/asm
+DIR_SYS				= $(DIR_SRC)/sys
+DIR_INC		       		= $(DIR_C)/include
+DIR_LDSCRIPT			= $(DIR_SOFT)/Global/ldscript/
+
+INCLUDE				= -I$(DIR_INC)
+LIBRARY				= 
+
+#-----[ Files ]-------------------------------------------------------------------
+OBJECTS				= 	$(patsubst $(DIR_ASM)/%.s,$(DIR_OBJ)/%.o,$(wildcard $(DIR_ASM)/*.s))	\
+					$(patsubst $(DIR_SYS)/%.s,$(DIR_OBJ)/%.o,$(wildcard $(DIR_SYS)/*.s))	\
+					$(patsubst $(DIR_C)/%.c,$(DIR_OBJ)/%.o,$(wildcard $(DIR_C)/*.c))
+
+include				$(DIR_SOFT)/Makefile.Software
+
Index: trunk/Softwares/Test/Test_007/src/sys/crt0.s
===================================================================
--- trunk/Softwares/Test/Test_007/src/sys/crt0.s	(revision 98)
+++ trunk/Softwares/Test/Test_007/src/sys/crt0.s	(revision 98)
@@ -0,0 +1,48 @@
+/*
+ * Test_007
+ *
+ * end_ko : infinite_loop
+ * end_ok : Write in R1 the stop address and stop an data
+ *          The store in the destination of an jump
+ * start  : Test if R0 is always equal at 0
+ */
+	
+	.file	"crt0.s"
+	/*
+	.section .vector
+	*/
+	.section .text
+	.align	4	
+
+/* ---[ 0x0  : Print a error ]------------------------------------------- */
+
+	.org 0x0
+_end_ko        :        
+_infinite_loop :        
+        l.j	_infinite_loop
+        l.nop
+
+_end_ok :
+	l.movhi r1,     hi(_tty)
+	l.ori   r1, r1, lo(_tty)
+        l.sw    4(r1), r1 /* stop address */
+
+
+/* ---[ 0x100: RESET exception ]----------------------------------------- */
+        .org 0x100
+	.global _start
+_start:
+        /* r1 : data */
+	l.movhi r1,     hi(0xffffffff)
+	l.ori   r1, r1, lo(0xffffffff)
+        /* r2 : 0 */
+	l.movhi r2,     0
+        /* r0 <- r1 */
+        l.or    r0, r1, r1
+        /* test if two register is same */
+        l.sfeq  r0, r2
+        l.bnf   _end_ko
+        l.nop
+        l.j     _end_ok
+        l.nop
+
Index: trunk/Softwares/Test/Test_008/Makefile
===================================================================
--- trunk/Softwares/Test/Test_008/Makefile	(revision 98)
+++ trunk/Softwares/Test/Test_008/Makefile	(revision 98)
@@ -0,0 +1,27 @@
+# 
+# $Id$
+# 
+# [ Description ]
+# 
+# Makefile
+# 
+
+# common definition
+DIR_SOFT			= ../..
+DIR_SRC				= ./src
+DIR_C				= $(DIR_SRC)/c
+DIR_ASM				= $(DIR_SRC)/asm
+DIR_SYS				= $(DIR_SRC)/sys
+DIR_INC		       		= $(DIR_C)/include
+DIR_LDSCRIPT			= $(DIR_SOFT)/Global/ldscript/
+
+INCLUDE				= -I$(DIR_INC)
+LIBRARY				= 
+
+#-----[ Files ]-------------------------------------------------------------------
+OBJECTS				= 	$(patsubst $(DIR_ASM)/%.s,$(DIR_OBJ)/%.o,$(wildcard $(DIR_ASM)/*.s))	\
+					$(patsubst $(DIR_SYS)/%.s,$(DIR_OBJ)/%.o,$(wildcard $(DIR_SYS)/*.s))	\
+					$(patsubst $(DIR_C)/%.c,$(DIR_OBJ)/%.o,$(wildcard $(DIR_C)/*.c))
+
+include				$(DIR_SOFT)/Makefile.Software
+
Index: trunk/Softwares/Test/Test_008/src/sys/crt0.s
===================================================================
--- trunk/Softwares/Test/Test_008/src/sys/crt0.s	(revision 98)
+++ trunk/Softwares/Test/Test_008/src/sys/crt0.s	(revision 98)
@@ -0,0 +1,48 @@
+/*
+ * Test_008
+ *
+ * end_ko : infinite_loop
+ * end_ok : Write in R1 the stop address and stop an data
+ *          The store in the destination of an jump
+ * start  : write an value in special register (epcr), and read this special register
+ */
+	
+	.file	"crt0.s"
+	/*
+	.section .vector
+	*/
+	.section .text
+	.align	4	
+
+/* ---[ 0x0  : Print a error ]------------------------------------------- */
+
+	.org 0x0
+_end_ko        :        
+_infinite_loop :        
+        l.j	_infinite_loop
+        l.nop
+
+_end_ok :
+	l.movhi r1,     hi(_tty)
+	l.ori   r1, r1, lo(_tty)
+        l.sw    4(r1), r1 /* stop address */
+
+
+/* ---[ 0x100: RESET exception ]----------------------------------------- */
+        .org 0x100
+	.global _start
+_start:
+        /* r1 : data */
+	l.movhi r1,     hi(0xdeadbeef)
+	l.ori   r1, r1, lo(0xdeadbeef)
+        /* EPCR <- r1 */
+        l.mtspr r0, r1, 32
+        /* r2 <- EPCR */
+        l.mfspr r2, r0, 32
+        /* test if two register is same */
+        l.sfeq  r2, r1
+        l.bnf   _end_ko
+        l.nop
+        l.j     _end_ok
+        l.nop
+
Index: trunk/Softwares/Test/Test_009/Makefile
===================================================================
--- trunk/Softwares/Test/Test_009/Makefile	(revision 98)
+++ trunk/Softwares/Test/Test_009/Makefile	(revision 98)
@@ -0,0 +1,27 @@
+# 
+# $Id$
+# 
+# [ Description ]
+# 
+# Makefile
+# 
+
+# common definition
+DIR_SOFT			= ../..
+DIR_SRC				= ./src
+DIR_C				= $(DIR_SRC)/c
+DIR_ASM				= $(DIR_SRC)/asm
+DIR_SYS				= $(DIR_SRC)/sys
+DIR_INC		       		= $(DIR_C)/include
+DIR_LDSCRIPT			= $(DIR_SOFT)/Global/ldscript/
+
+INCLUDE				= -I$(DIR_INC)
+LIBRARY				= 
+
+#-----[ Files ]-------------------------------------------------------------------
+OBJECTS				= 	$(patsubst $(DIR_ASM)/%.s,$(DIR_OBJ)/%.o,$(wildcard $(DIR_ASM)/*.s))	\
+					$(patsubst $(DIR_SYS)/%.s,$(DIR_OBJ)/%.o,$(wildcard $(DIR_SYS)/*.s))	\
+					$(patsubst $(DIR_C)/%.c,$(DIR_OBJ)/%.o,$(wildcard $(DIR_C)/*.c))
+
+include				$(DIR_SOFT)/Makefile.Software
+
Index: trunk/Softwares/Test/Test_009/src/sys/crt0.s
===================================================================
--- trunk/Softwares/Test/Test_009/src/sys/crt0.s	(revision 98)
+++ trunk/Softwares/Test/Test_009/src/sys/crt0.s	(revision 98)
@@ -0,0 +1,74 @@
+/*
+ * Test_009
+ *
+ * end_ko : infinite_loop
+ * end_ok : Write in R1 the stop address and stop an data
+ *          The store in the destination of an jump
+ * start  : Test l.add
+ */
+	
+	.file	"crt0.s"
+	/*
+	.section .vector
+	*/
+	.section .text
+	.align	4	
+
+/* ---[ 0x0  : Print a error ]------------------------------------------- */
+
+	.org 0x0
+_end_ko        :        
+_infinite_loop :        
+        l.j	_infinite_loop
+        l.nop
+
+_end_ok :
+	l.movhi r1,     hi(_tty)
+	l.ori   r1, r1, lo(_tty)
+        l.sw    4(r1), r1 /* stop address */
+
+
+/* ---[ 0x100: RESET exception ]----------------------------------------- */
+        .org 0x100
+	.global _start
+_start:
+        /*
+             A (r1)     B (r2)     - D (r3 wait)CY OV (SR = r6, mask SR = r5)
+                                       (r4)                (r7)
+          1) 0x00000000 0x00000000 - 0x00000000 0  0
+         
+         */
+
+        /* Mask to read OV (SR[11]), CY (SR[10]) and F (SR[9]) */
+	l.movhi r5,     hi(0x000000e0)
+	l.ori   r5, r5, lo(0x000000e0)
+
+        /**********/
+        /* Test 1 */
+        /**********/
+	l.movhi r1,     hi(0x00000000) /* RA */
+	l.ori   r1, r1, lo(0x00000000)
+	l.movhi r2,     hi(0x00000000) /* RB */
+	l.ori   r2, r2, lo(0x00000000)
+	l.movhi r3,     hi(0x00000000) /* RD wait */
+	l.ori   r3, r3, lo(0x00000000)
+	l.movhi r6,     hi(0x00000000) /* SR wait */
+	l.ori   r6, r6, lo(0x00000000)
+        
+        l.add   r4, r1, r2
+
+        /* Test flag */
+        l.mfspr r7, r0, 17
+        l.and   r7, r7, r5
+
+        l.sfeq  r6, r7
+        l.bnf   _end_ko
+        l.nop
+
+        /* Test result */
+        l.sfeq  r3, r4
+        l.bnf   _end_ko
+        l.nop
+        l.j     _end_ok
+        l.nop
+
