Index: /soft/giet_vm/applications/shell/shell.c
===================================================================
--- /soft/giet_vm/applications/shell/shell.c	(revision 774)
+++ /soft/giet_vm/applications/shell/shell.c	(revision 775)
@@ -44,5 +44,5 @@
 static void cmd_time(int argc, char** argv)
 {
-    giet_tty_printf("%d\n", giet_proctime());
+    giet_tty_printf(" cycle = %d\n", giet_proctime());
 }
 
@@ -50,14 +50,29 @@
 static void cmd_ls(int argc, char** argv)
 {
-    int fd;
-    fat_dirent_t entry;
-
-    if (argc < 2)
-    {
-        giet_tty_printf("  usage : %s <pathname>\n", argv[0]);
-        return;
-    }
-
-    fd = giet_fat_opendir(argv[1]);
+    int            fd;
+    int            rec;
+    char*          pathname;
+    fat_dirent_t   entry;
+
+    if (argc == 2)
+    {
+        rec = 0;
+        pathname = argv[1];
+    }
+    else if ( (argc == 3) && (strcmp( argv[1] , "-r" ) == 0) )
+    {
+        rec = 1;
+        pathname = argv[2];
+
+        giet_tty_printf("  error : recursive mode not supported yet\n");
+        return;
+    }
+    else
+    {
+        giet_tty_printf("  usage : ls [-r] pathname\n");
+        return;
+    }
+
+    fd  = giet_fat_opendir( pathname );
 
     if (fd < 0)
@@ -84,5 +99,5 @@
     if (argc < 2)
     {
-        giet_tty_printf("  usage : %s <path>\n", argv[0]);
+        giet_tty_printf("  usage : mkdir pathname\n");
         return;
     }
@@ -101,5 +116,5 @@
     if (argc < 3)
     {
-        giet_tty_printf("  usage : %s <src> <dst>\n", argv[0]);
+        giet_tty_printf("  usage : cp src_pathname dst_pathname>\n");
         return;
     }
@@ -141,5 +156,5 @@
     if (info.is_dir)
     {
-        giet_tty_printf("error : %s is a directory\n", argv[2] );  // TODO
+        giet_tty_printf("  error : %s is a directory\n", argv[2] );  // TODO
         goto exit;
     }
@@ -150,6 +165,4 @@
         int len = (size - i < 1024 ? size - i : 1024);
         int wlen;
-
-        giet_tty_printf("\rwrite %d/%d (%d%%)", i, size, 100*i/size);
 
         len = giet_fat_read(src_fd, &buf, len);
@@ -162,5 +175,4 @@
         i += len;
     }
-    giet_tty_printf("\n");
 
 exit:
@@ -176,5 +188,5 @@
     if (argc < 2)
     {
-        giet_tty_printf("  usage : %s <file>\n", argv[0]);
+        giet_tty_printf("  usage : rm pathname\n");
         return;
     }
@@ -193,5 +205,5 @@
     if (argc < 2)
     {
-        giet_tty_printf("  usage : %s <pathname>\n", argv[0]);
+        giet_tty_printf("  usage : rmdir pathname\n");
         return;
     }
@@ -209,5 +221,5 @@
     if (argc < 3)
     {
-        giet_tty_printf("  usage : %s <src> <dst>\n", argv[0]);
+        giet_tty_printf("  usage : %s src_pathname dst_pathname\n", argv[0]);
         return;
     }
@@ -225,5 +237,5 @@
     if (argc < 2)
     {
-        giet_tty_printf("  usage : %s <vspace_name>\n", argv[0]);
+        giet_tty_printf("  usage : %s vspace_name\n", argv[0]);
         return;
     }
@@ -241,5 +253,5 @@
     if (argc < 2)
     {
-        giet_tty_printf("  usage : %s <vspace_name>\n", argv[0]);
+        giet_tty_printf("  usage : %s vspace_name\n", argv[0]);
         return;
     }
@@ -274,5 +286,5 @@
     if (argc < 3)
     {
-        giet_tty_printf("  usage : %s <vspace_name> <thread_name>\n", argv[0] );
+        giet_tty_printf("  usage : %s vspace_name thread_name\n", argv[0] );
         return;
     }
@@ -286,5 +298,5 @@
     if (argc < 3)
     {
-        giet_tty_printf("  usage : %s <vspace_name> <thread_name>\n", argv[0] );
+        giet_tty_printf("  usage : %s vspace_name thread_name\n", argv[0] );
         return;
     }
@@ -298,5 +310,5 @@
     if (argc < 3)
     {
-        giet_tty_printf("  usage : %s <vspace_name> <thread_name>\n", argv[0] );
+        giet_tty_printf("  usage : %s vspace_name thread_name\n", argv[0] );
         return;
     }
@@ -308,7 +320,7 @@
 static void cmd_cat(int argc, char** argv)
 {
-    if (argc < 2)
-    {
-        giet_tty_printf("  usage : %s <path_name> \n", argv[0] );
+    if (argc != 2)
+    {
+        giet_tty_printf("  usage : cat pathname \n");
         return;
     }
@@ -358,22 +370,4 @@
     }
 
-/*
-    // allocate a temporary buffer for the file
-    heap_init( x , y );
-    buf = (char*)malloc( size );  
-    if( buf == NULL )
-    {
-        giet_tty_printf("  error : cannot allocate buffer with size = %d\n", size );
-        goto exit;
-    }
-    // load the file 
-    len = giet_fat_read( fd , buf , size );
-    if ( len != size )
-    {
-        giet_tty_printf("  error : cannot load file %s / size = %d / len = %d\n",
-                        argv[1] , size , len );
-        goto exit;
-    }
-*/
     // set terminating '0' 
     buf[size] = 0;
@@ -387,4 +381,36 @@
 }
 
+///////////////////////////////////////////
+static void cmd_dump(int argc, char** argv)
+{
+    if ((argc == 2) && (strcmp( argv[1] , "-bs" ) == 0))
+    {
+        giet_fat_dump( DUMP_BS , NULL , 0 );
+    }
+    else if ((argc == 2) && (strcmp( argv[1] , "-fs" ) == 0))
+    {
+        giet_fat_dump( DUMP_FS , NULL , 0 );
+    }
+    else if ((argc == 3) && (strcmp( argv[1] , "-fat" ) == 0))
+    {
+        giet_fat_dump( DUMP_FAT , NULL , atoi( argv[2] ) );
+    }
+    else if ((argc == 4) && (strcmp( argv[1] , "-file" ) == 0))
+    {
+        giet_fat_dump( DUMP_FILE , argv[2] , atoi( argv[3] ) );
+    }
+    else if ((argc == 4) && (strcmp( argv[1] , "-dir" ) == 0))
+    {
+        giet_fat_dump( DUMP_DIR , argv[2] , atoi( argv[3] ) );
+    }
+    else
+    {
+        giet_tty_printf("  usage : dump [-bs] [-fs] [-fat block] "
+                        "[-file pathname block] [-dir pathname block]\n");
+        return;
+    }
+}
+
+
 ////////////////////////////////////////////////////////////////////
 struct command_t cmd[] =
@@ -393,4 +419,5 @@
     { "context",    "display a thread context",             cmd_context },
     { "cp",         "replicate a file in file system",      cmd_cp },
+    { "dump",       "display content of disk sector",       cmd_dump },
     { "exec",       "start an application",                 cmd_exec },
     { "help",       "list available commands",              cmd_help },
Index: /soft/giet_vm/applications/transpose/transpose.c
===================================================================
--- /soft/giet_vm/applications/transpose/transpose.c	(revision 774)
+++ /soft/giet_vm/applications/transpose/transpose.c	(revision 775)
@@ -47,9 +47,9 @@
 #define PROCS_MAX             4                            // max number of procs per cluster
 #define CLUSTER_MAX           (X_MAX * Y_MAX)              // max number of clusters
-#define IMAGE_SIZE            256                          // default image size 
-#define INPUT_FILE_PATH       "/misc/lena_256.raw"         // default input file pathname 
-#define OUTPUT_FILE_PATH      "/home/lena_transposed.raw"  // default output file pathname 
+#define IMAGE_SIZE            128                          // default image size 
+#define INPUT_FILE_PATH       "/misc/images_128.raw"       // default input file pathname 
+#define OUTPUT_FILE_PATH      "/home/trsp_128.raw"         // default output file pathname 
 #define INTERACTIVE           0                            // interactive capture of filenames 
-#define VERBOSE               1                            // print comments on TTY
+#define VERBOSE               0                            // print comments on TTY
 
 
@@ -126,5 +126,5 @@
     if ( p_id == 0 ) 
     {
-        // map buf_in and buf_out
+        // map buf_in
         unsigned int length = npixels / nclusters;
         unsigned int offset = length * cluster_id;
@@ -144,8 +144,11 @@
                  
         if ( VERBOSE )
-        printf("\n@@@ Thread[%d,%d,%d] call mmap for input file\n"
-               " length = %x / offset = %x / buf_in = %x\n",
-               x_id , y_id , p_id , length , offset , buf_in[cluster_id] );
-           
+        {
+            printf("\n@@@ Thread[%d,%d,%d] call mmap for input file\n"
+                   " length = %x / offset = %x / buf_in = %x\n",
+                   x_id , y_id , p_id , length , offset , buf_in[cluster_id] );
+        }
+
+        // map buf_out           
         buf_out[cluster_id] = giet_fat_mmap( NULL,
                                              length,
@@ -154,4 +157,5 @@
                                              fd_out,
                                              offset );
+
         if ( buf_out[cluster_id] == NULL )
         {
@@ -162,7 +166,9 @@
                    
         if ( VERBOSE )
-        printf("\n@@@ Thread[%d,%d,%d] call mmap for output file\n"
-               " length = %x / offset = %x / buf_out = %x\n",
-               x_id , y_id , p_id , length , offset , buf_out[cluster_id] );
+        {
+            printf("\n@@@ Thread[%d,%d,%d] call mmap for output file\n"
+                   " length = %x / offset = %x / buf_out = %x\n",
+                   x_id , y_id , p_id , length , offset , buf_out[cluster_id] );
+        }
        
     }
@@ -275,9 +281,13 @@
     unsigned int max_disp_ended = 0;
  
+    char string[64];
+
+    snprintf( string , 64 , "/home/transpose_%d_%d_%d" , x_size , y_size , nprocs );
+
     // open instrumentation file
-    unsigned int fd = giet_fat_open( "/home/transpose.inst" , O_CREAT);
+    unsigned int fd = giet_fat_open( string , O_CREATE );
     if ( fd < 0 ) 
     { 
-        printf("\n[TRANSPOSE ERROR] main cannot open file transpose.inst\n");
+        printf("\n[TRANSPOSE ERROR] cannot open instrumentation file %s\n", string );
         giet_pthread_exit( NULL );
     }
@@ -305,47 +315,54 @@
     }
 
-    printf("\n   ---------------- Instrumentation Results ---------------------\n");
-
-    printf(" - MMAP_START : min = %d / max = %d / med = %d / delta = %d\n",
+    giet_tty_printf( "\n ------ %s ------\n" , string );
+    giet_fat_fprintf( fd , "\n ------ %s ------\n" , string );
+
+    giet_tty_printf( " - MMAP_START : min = %d / max = %d / med = %d / delta = %d\n",
            min_load_start, max_load_start, (min_load_start+max_load_start)/2, 
-           max_load_start-min_load_start); 
+           max_load_start-min_load_start ); 
+
     giet_fat_fprintf( fd , " - MMAP_START : min = %d / max = %d / med = %d / delta = %d\n",
            min_load_start, max_load_start, (min_load_start+max_load_start)/2, 
-           max_load_start-min_load_start); 
-
-    printf(" - MMAP_END   : min = %d / max = %d / med = %d / delta = %d\n",
+           max_load_start-min_load_start ); 
+
+    giet_tty_printf( " - MMAP_END   : min = %d / max = %d / med = %d / delta = %d\n",
            min_load_ended, max_load_ended, (min_load_ended+max_load_ended)/2, 
-           max_load_ended-min_load_ended); 
+           max_load_ended-min_load_ended ); 
+
     giet_fat_fprintf( fd , " - MMAP_END   : min = %d / max = %d / med = %d / delta = %d\n",
            min_load_ended, max_load_ended, (min_load_ended+max_load_ended)/2, 
-           max_load_ended-min_load_ended); 
-
-    printf(" - TRSP_START : min = %d / max = %d / med = %d / delta = %d\n",
+           max_load_ended-min_load_ended ); 
+
+    giet_tty_printf( " - TRSP_START : min = %d / max = %d / med = %d / delta = %d\n",
            min_trsp_start, max_trsp_start, (min_trsp_start+max_trsp_start)/2, 
-           max_trsp_start-min_trsp_start); 
+           max_trsp_start-min_trsp_start ); 
+
     giet_fat_fprintf( fd , " - TRSP_START : min = %d / max = %d / med = %d / delta = %d\n",
            min_trsp_start, max_trsp_start, (min_trsp_start+max_trsp_start)/2, 
-           max_trsp_start-min_trsp_start); 
-
-    printf(" - TRSP_END   : min = %d / max = %d / med = %d / delta = %d\n",
+           max_trsp_start-min_trsp_start ); 
+
+    giet_tty_printf( " - TRSP_END   : min = %d / max = %d / med = %d / delta = %d\n",
            min_trsp_ended, max_trsp_ended, (min_trsp_ended+max_trsp_ended)/2, 
-           max_trsp_ended-min_trsp_ended); 
+           max_trsp_ended-min_trsp_ended ); 
+
     giet_fat_fprintf( fd , " - TRSP_END   : min = %d / max = %d / med = %d / delta = %d\n",
            min_trsp_ended, max_trsp_ended, (min_trsp_ended+max_trsp_ended)/2, 
-           max_trsp_ended-min_trsp_ended); 
-
-    printf(" - DISP_START : min = %d / max = %d / med = %d / delta = %d\n",
+           max_trsp_ended-min_trsp_ended ); 
+
+    giet_tty_printf( " - DISP_START : min = %d / max = %d / med = %d / delta = %d\n",
            min_disp_start, max_disp_start, (min_disp_start+max_disp_start)/2, 
-           max_disp_start-min_disp_start); 
+           max_disp_start-min_disp_start ); 
+
     giet_fat_fprintf( fd , " - DISP_START : min = %d / max = %d / med = %d / delta = %d\n",
            min_disp_start, max_disp_start, (min_disp_start+max_disp_start)/2, 
-           max_disp_start-min_disp_start); 
-
-    printf(" - DISP_END   : min = %d / max = %d / med = %d / delta = %d\n",
+           max_disp_start-min_disp_start ); 
+
+    giet_tty_printf( " - DISP_END   : min = %d / max = %d / med = %d / delta = %d\n",
            min_disp_ended, max_disp_ended, (min_disp_ended+max_disp_ended)/2, 
-           max_disp_ended-min_disp_ended); 
+           max_disp_ended-min_disp_ended ); 
+
     giet_fat_fprintf( fd , " - DISP_END   : min = %d / max = %d / med = %d / delta = %d\n",
            min_disp_ended, max_disp_ended, (min_disp_ended+max_disp_ended)/2, 
-           max_disp_ended-min_disp_ended); 
+           max_disp_ended-min_disp_ended ); 
 
     giet_fat_close( fd );
@@ -453,5 +470,5 @@
     }
 
-    fd_out = giet_fat_open( output_file_name , O_CREAT);   // create if required
+    fd_out = giet_fat_open( output_file_name , O_CREATE );   // create if required
     if ( fd_out < 0 ) 
     { 
Index: /soft/giet_vm/applications/transpose/transpose.py
===================================================================
--- /soft/giet_vm/applications/transpose/transpose.py	(revision 774)
+++ /soft/giet_vm/applications/transpose/transpose.py	(revision 775)
@@ -50,5 +50,5 @@
 
     # create vspace
-    vspace = mapping.addVspace( name = 'transpose', startname = 'trsp_data', active = True )
+    vspace = mapping.addVspace( name = 'transpose', startname = 'trsp_data', active = False )
     
     # data vseg : shared (only in cluster[0,0])
