diff gsm-fw/L1/include/l1_tabs.h @ 530:25a7fe25864c

gsm-fw/L1/include: switch to LoCosto versions of all header files
author Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
date Fri, 01 Aug 2014 16:38:35 +0000
parents afceeeb2cba1
children
line wrap: on
line diff
--- a/gsm-fw/L1/include/l1_tabs.h	Tue Jul 15 22:19:53 2014 +0000
+++ b/gsm-fw/L1/include/l1_tabs.h	Fri Aug 01 16:38:35 2014 +0000
@@ -11,547 +11,563 @@
  *   This file contains the miscelaneous ROM tables.
  ***********************************************************/
 
-#ifdef L1_ASYNC_C
-  /*-----------------------------------------------------------------*/
-  /* Idle Tasks info. (Paging position, extended Paging position...) */
-  /*-----------------------------------------------------------------*/
-  /* REM:                                                            */
-  /* The "working area" field gives the starting position of an area */
-  /* it will be used for neighbour:  - FB search,                    */
-  /*                                 - SB reading,                   */
-  /* The value given for each parameter set takes into account the   */
-  /* size of the "FB search" task and the CBCH task.                 */                                 
-  /*-----------------------------------------------------------------*/
-  //  NP or EP task size: 1 + 4 + 1 = 6.
-  //  BCCHS task size: 1 + 4 + 1 = 6.
-  //  FB task size: 1 + 12 + 1 = 14.    --+-- FB + SB task take 15 TDMA (pipeline overlay).
-  //  SB task size: 1 + 2 + 1 = 4.      --+
-  //  CNF, SB task size: 1 + 2 + 1 = 4.
-  //  BC (Broad. Channel): 1 + 4 + 1 = 6     
-   
-  const T_IDLE_TASK_INFO IDLE_INFO_NCOMB[(MAX_AG_BLKS_RES_NCOMB+1) * (MAX_PG_BLOC_INDEX_NCOMB+1)] =
-  // BS_CCCH_SDCCH_COMB = False, BCCH not combined.
-  { 
-    // BS_AG_BLKS_RES = 0.
-    // -------------------
-    // Paging, Ext Paging
-    {  CCCH_0,     CCCH_2  },  // Paging Block Index = 0.
-    {  CCCH_1,     CCCH_3  },  // Paging Block Index = 1.
-    {  CCCH_2,     CCCH_4  },  // Paging Block Index = 2.
-    {  CCCH_3,     CCCH_5  },  // Paging Block Index = 3.
-    {  CCCH_4,     CCCH_6  },  // Paging Block Index = 4.
-    {  CCCH_5,     CCCH_7  },  // Paging Block Index = 5.
-    {  CCCH_6,     CCCH_8  },  // Paging Block Index = 6.
-    {  CCCH_7,     CCCH_0  },  // Paging Block Index = 7.
-    {  CCCH_8,     CCCH_1  },  // Paging Block Index = 8.
+#ifndef L1_TABS_H
+#define L1_TABS_H
 
-    // BS_AG_BLKS_RES = 1.
-    // -------------------
-    // Paging, Ext Paging
-    {  CCCH_1,     CCCH_3  },  // Paging Block Index = 0.
-    {  CCCH_2,     CCCH_4  },  // Paging Block Index = 1.
-    {  CCCH_3,     CCCH_5  },  // Paging Block Index = 2.
-    {  CCCH_4,     CCCH_6  },  // Paging Block Index = 3.
-    {  CCCH_5,     CCCH_7  },  // Paging Block Index = 4.
-    {  CCCH_6,     CCCH_8  },  // Paging Block Index = 5.
-    {  CCCH_7,     CCCH_1  },  // Paging Block Index = 6.
-    {  CCCH_8,     CCCH_2  },  // Paging Block Index = 7.
-    {  NULL,       NULL    },  // Paging Block Index = 8.
+  #ifdef L1_ASYNC_C
+    /*-----------------------------------------------------------------*/
+    /* Idle Tasks info. (Paging position, extended Paging position...) */
+    /*-----------------------------------------------------------------*/
+    /* REM:                                                            */
+    /* The "working area" field gives the starting position of an area */
+    /* it will be used for neighbour:  - FB search,                    */
+    /*                                 - SB reading,                   */
+    /* The value given for each parameter set takes into account the   */
+    /* size of the "FB search" task and the CBCH task.                 */                                 
+    /*-----------------------------------------------------------------*/
+    //  NP or EP task size: 1 + 4 + 1 = 6.
+    //  BCCHS task size: 1 + 4 + 1 = 6.
+    //  FB task size: 1 + 12 + 1 = 14.    --+-- FB + SB task take 15 TDMA (pipeline overlay).
+    //  SB task size: 1 + 2 + 1 = 4.      --+
+    //  CNF, SB task size: 1 + 2 + 1 = 4.
+    //  BC (Broad. Channel): 1 + 4 + 1 = 6     
+     
+    const T_IDLE_TASK_INFO IDLE_INFO_NCOMB[(MAX_AG_BLKS_RES_NCOMB+1) * (MAX_PG_BLOC_INDEX_NCOMB+1)] =
+    // BS_CCCH_SDCCH_COMB = False, BCCH not combined.
+    { 
+      // BS_AG_BLKS_RES = 0.
+      // -------------------
+      // Paging, Ext Paging
+      {  CCCH_0,     CCCH_2  },  // Paging Block Index = 0.
+      {  CCCH_1,     CCCH_3  },  // Paging Block Index = 1.
+      {  CCCH_2,     CCCH_4  },  // Paging Block Index = 2.
+      {  CCCH_3,     CCCH_5  },  // Paging Block Index = 3.
+      {  CCCH_4,     CCCH_6  },  // Paging Block Index = 4.
+      {  CCCH_5,     CCCH_7  },  // Paging Block Index = 5.
+      {  CCCH_6,     CCCH_8  },  // Paging Block Index = 6.
+      {  CCCH_7,     CCCH_0  },  // Paging Block Index = 7.
+      {  CCCH_8,     CCCH_1  },  // Paging Block Index = 8.
+
+      // BS_AG_BLKS_RES = 1.
+      // -------------------
+      // Paging, Ext Paging
+      {  CCCH_1,     CCCH_3  },  // Paging Block Index = 0.
+      {  CCCH_2,     CCCH_4  },  // Paging Block Index = 1.
+      {  CCCH_3,     CCCH_5  },  // Paging Block Index = 2.
+      {  CCCH_4,     CCCH_6  },  // Paging Block Index = 3.
+      {  CCCH_5,     CCCH_7  },  // Paging Block Index = 4.
+      {  CCCH_6,     CCCH_8  },  // Paging Block Index = 5.
+      {  CCCH_7,     CCCH_1  },  // Paging Block Index = 6.
+      {  CCCH_8,     CCCH_2  },  // Paging Block Index = 7.
+      {  NULL,       NULL    },  // Paging Block Index = 8.
 
-    // BS_AG_BLKS_RES = 2.
-    // -------------------
-    // Paging, Ext Paging
-    {  CCCH_2,     CCCH_4  },  // Paging Block Index = 0.
-    {  CCCH_3,     CCCH_5  },  // Paging Block Index = 1.
-    {  CCCH_4,     CCCH_6  },  // Paging Block Index = 2.
-    {  CCCH_5,     CCCH_7  },  // Paging Block Index = 3.
-    {  CCCH_6,     CCCH_8  },  // Paging Block Index = 4.
-    {  CCCH_7,     CCCH_2  },  // Paging Block Index = 5.
-    {  CCCH_8,     CCCH_3  },  // Paging Block Index = 6.
-    {  NULL,       NULL    },  // Paging Block Index = 7.
-    {  NULL,       NULL    },  // Paging Block Index = 8.
+      // BS_AG_BLKS_RES = 2.
+      // -------------------
+      // Paging, Ext Paging
+      {  CCCH_2,     CCCH_4  },  // Paging Block Index = 0.
+      {  CCCH_3,     CCCH_5  },  // Paging Block Index = 1.
+      {  CCCH_4,     CCCH_6  },  // Paging Block Index = 2.
+      {  CCCH_5,     CCCH_7  },  // Paging Block Index = 3.
+      {  CCCH_6,     CCCH_8  },  // Paging Block Index = 4.
+      {  CCCH_7,     CCCH_2  },  // Paging Block Index = 5.
+      {  CCCH_8,     CCCH_3  },  // Paging Block Index = 6.
+      {  NULL,       NULL    },  // Paging Block Index = 7.
+      {  NULL,       NULL    },  // Paging Block Index = 8.
 
-    // BS_AG_BLKS_RES = 3.
-    // -------------------
-    // Paging, Ext Paging, 
-    {  CCCH_3,     CCCH_5  },  // Paging Block Index = 0.
-    {  CCCH_4,     CCCH_6  },  // Paging Block Index = 1.
-    {  CCCH_5,     CCCH_7  },  // Paging Block Index = 2.
-    {  CCCH_6,     CCCH_8  },  // Paging Block Index = 3.
-    {  CCCH_7,     CCCH_3  },  // Paging Block Index = 4.
-    {  CCCH_8,     CCCH_4  },  // Paging Block Index = 5.
-    {  NULL,       NULL    },  // Paging Block Index = 6.
-    {  NULL,       NULL    },  // Paging Block Index = 7.
-    {  NULL,       NULL    },  // Paging Block Index = 8.
+      // BS_AG_BLKS_RES = 3.
+      // -------------------
+      // Paging, Ext Paging, 
+      {  CCCH_3,     CCCH_5  },  // Paging Block Index = 0.
+      {  CCCH_4,     CCCH_6  },  // Paging Block Index = 1.
+      {  CCCH_5,     CCCH_7  },  // Paging Block Index = 2.
+      {  CCCH_6,     CCCH_8  },  // Paging Block Index = 3.
+      {  CCCH_7,     CCCH_3  },  // Paging Block Index = 4.
+      {  CCCH_8,     CCCH_4  },  // Paging Block Index = 5.
+      {  NULL,       NULL    },  // Paging Block Index = 6.
+      {  NULL,       NULL    },  // Paging Block Index = 7.
+      {  NULL,       NULL    },  // Paging Block Index = 8.
 
-    // BS_AG_BLKS_RES = 4.
-    // -------------------
-    // Paging, Ext Paging
-    {  CCCH_4,     CCCH_6  },  // Paging Block Index = 0.
-    {  CCCH_5,     CCCH_7  },  // Paging Block Index = 1.
-    {  CCCH_6,     CCCH_8  },  // Paging Block Index = 2.
-    {  CCCH_7,     CCCH_4  },  // Paging Block Index = 3.
-    {  CCCH_8,     CCCH_5  },  // Paging Block Index = 4.
-    {  NULL,       NULL    },  // Paging Block Index = 5.
-    {  NULL,       NULL    },  // Paging Block Index = 6.
-    {  NULL,       NULL    },  // Paging Block Index = 7.
-    {  NULL,       NULL    },  // Paging Block Index = 8.
+      // BS_AG_BLKS_RES = 4.
+      // -------------------
+      // Paging, Ext Paging
+      {  CCCH_4,     CCCH_6  },  // Paging Block Index = 0.
+      {  CCCH_5,     CCCH_7  },  // Paging Block Index = 1.
+      {  CCCH_6,     CCCH_8  },  // Paging Block Index = 2.
+      {  CCCH_7,     CCCH_4  },  // Paging Block Index = 3.
+      {  CCCH_8,     CCCH_5  },  // Paging Block Index = 4.
+      {  NULL,       NULL    },  // Paging Block Index = 5.
+      {  NULL,       NULL    },  // Paging Block Index = 6.
+      {  NULL,       NULL    },  // Paging Block Index = 7.
+      {  NULL,       NULL    },  // Paging Block Index = 8.
 
-    // BS_AG_BLKS_RES = 5.
-    // -------------------
-    // Paging, Ext Paging
-    {  CCCH_5,     CCCH_7  },  // Paging Block Index = 0.
-    {  CCCH_6,     CCCH_8  },  // Paging Block Index = 1.
-    {  CCCH_7,     CCCH_5  },  // Paging Block Index = 2.
-    {  CCCH_8,     CCCH_6  },  // Paging Block Index = 3.
-    {  NULL,       NULL    },  // Paging Block Index = 4.
-    {  NULL,       NULL    },  // Paging Block Index = 5.
-    {  NULL,       NULL    },  // Paging Block Index = 6.
-    {  NULL,       NULL    },  // Paging Block Index = 7.
-    {  NULL,       NULL    },  // Paging Block Index = 8.
+      // BS_AG_BLKS_RES = 5.
+      // -------------------
+      // Paging, Ext Paging
+      {  CCCH_5,     CCCH_7  },  // Paging Block Index = 0.
+      {  CCCH_6,     CCCH_8  },  // Paging Block Index = 1.
+      {  CCCH_7,     CCCH_5  },  // Paging Block Index = 2.
+      {  CCCH_8,     CCCH_6  },  // Paging Block Index = 3.
+      {  NULL,       NULL    },  // Paging Block Index = 4.
+      {  NULL,       NULL    },  // Paging Block Index = 5.
+      {  NULL,       NULL    },  // Paging Block Index = 6.
+      {  NULL,       NULL    },  // Paging Block Index = 7.
+      {  NULL,       NULL    },  // Paging Block Index = 8.
 
-    // BS_AG_BLKS_RES = 6.
-    // -------------------
-    // Paging, Ext Paging, 
-    {  CCCH_6,     CCCH_8  },  // Paging Block Index = 0.
-    {  CCCH_7,     CCCH_6  },  // Paging Block Index = 1.
-    {  CCCH_8,     CCCH_7  },  // Paging Block Index = 2.
-    {  NULL,       NULL    },  // Paging Block Index = 3.
-    {  NULL,       NULL    },  // Paging Block Index = 4.
-    {  NULL,       NULL    },  // Paging Block Index = 5.
-    {  NULL,       NULL    },  // Paging Block Index = 6.
-    {  NULL,       NULL    },  // Paging Block Index = 7.
-    {  NULL,       NULL    },  // Paging Block Index = 8.
+      // BS_AG_BLKS_RES = 6.
+      // -------------------
+      // Paging, Ext Paging, 
+      {  CCCH_6,     CCCH_8  },  // Paging Block Index = 0.
+      {  CCCH_7,     CCCH_6  },  // Paging Block Index = 1.
+      {  CCCH_8,     CCCH_7  },  // Paging Block Index = 2.
+      {  NULL,       NULL    },  // Paging Block Index = 3.
+      {  NULL,       NULL    },  // Paging Block Index = 4.
+      {  NULL,       NULL    },  // Paging Block Index = 5.
+      {  NULL,       NULL    },  // Paging Block Index = 6.
+      {  NULL,       NULL    },  // Paging Block Index = 7.
+      {  NULL,       NULL    },  // Paging Block Index = 8.
 
-    // BS_AG_BLKS_RES = 7.
-    // -------------------
-    // Paging, Ext Paging
-    {  CCCH_7,     CCCH_7  },  // Paging Block Index = 0.
-    {  CCCH_8,     CCCH_8  },  // Paging Block Index = 1.
-    {  NULL,       NULL    },  // Paging Block Index = 2.
-    {  NULL,       NULL    },  // Paging Block Index = 3.
-    {  NULL,       NULL    },  // Paging Block Index = 4.
-    {  NULL,       NULL    },  // Paging Block Index = 5.
-    {  NULL,       NULL    },  // Paging Block Index = 6.
-    {  NULL,       NULL    },  // Paging Block Index = 7.
-    {  NULL,       NULL    }   // Paging Block Index = 8.
-  };
+      // BS_AG_BLKS_RES = 7.
+      // -------------------
+      // Paging, Ext Paging
+      {  CCCH_7,     CCCH_7  },  // Paging Block Index = 0.
+      {  CCCH_8,     CCCH_8  },  // Paging Block Index = 1.
+      {  NULL,       NULL    },  // Paging Block Index = 2.
+      {  NULL,       NULL    },  // Paging Block Index = 3.
+      {  NULL,       NULL    },  // Paging Block Index = 4.
+      {  NULL,       NULL    },  // Paging Block Index = 5.
+      {  NULL,       NULL    },  // Paging Block Index = 6.
+      {  NULL,       NULL    },  // Paging Block Index = 7.
+      {  NULL,       NULL    }   // Paging Block Index = 8.
+    };
 
-  const T_IDLE_TASK_INFO IDLE_INFO_COMB[(MAX_AG_BLKS_RES_COMB+1) * (MAX_PG_BLOC_INDEX_COMB+1)] =
-  // BS_CCCH_SDCCH_COMB = TRUE, BCCH combined.
-  { 
-    // BS_AG_BLKS_RES = 0.
-    // -------------------
-    // Paging, Ext Paging, offset, working_area
-    {  CCCH_0,     CCCH_2  },  // Paging Block Index = 0.
-    {  CCCH_1,     CCCH_0  },  // Paging Block Index = 1.
-    {  CCCH_2,     CCCH_1  },  // Paging Block Index = 2.
+    const T_IDLE_TASK_INFO IDLE_INFO_COMB[(MAX_AG_BLKS_RES_COMB+1) * (MAX_PG_BLOC_INDEX_COMB+1)] =
+    // BS_CCCH_SDCCH_COMB = TRUE, BCCH combined.
+    { 
+      // BS_AG_BLKS_RES = 0.
+      // -------------------
+      // Paging, Ext Paging, offset, working_area
+      {  CCCH_0,     CCCH_2  },  // Paging Block Index = 0.
+      {  CCCH_1,     CCCH_0  },  // Paging Block Index = 1.
+      {  CCCH_2,     CCCH_1  },  // Paging Block Index = 2.
 
-    // BS_AG_BLKS_RES = 1.
-    // -------------------
-    // Paging, Ext Paging, offset, working_area
-    {  CCCH_1,     CCCH_1  },  // Paging Block Index = 0.
-    {  CCCH_2,     CCCH_2  },  // Paging Block Index = 1.
-    {  NULL,       NULL    },  // Paging Block Index = 2.
+      // BS_AG_BLKS_RES = 1.
+      // -------------------
+      // Paging, Ext Paging, offset, working_area
+      {  CCCH_1,     CCCH_1  },  // Paging Block Index = 0.
+      {  CCCH_2,     CCCH_2  },  // Paging Block Index = 1.
+      {  NULL,       NULL    },  // Paging Block Index = 2.
 
-    // BS_AG_BLKS_RES = 2.
-    // -------------------
-    // Paging, Ext Paging, offset, working_area
-    {  CCCH_2,     CCCH_2  },  // Paging Block Index = 0.
-    {  NULL,       NULL    },  // Paging Block Index = 1.
-    {  NULL,       NULL    }   // Paging Block Index = 2.
-  };
+      // BS_AG_BLKS_RES = 2.
+      // -------------------
+      // Paging, Ext Paging, offset, working_area
+      {  CCCH_2,     CCCH_2  },  // Paging Block Index = 0.
+      {  NULL,       NULL    },  // Paging Block Index = 1.
+      {  NULL,       NULL    }   // Paging Block Index = 2.
+    };
 
-    
-  /*-------------------------------------*/
-  /* Table giving the number of Paging   */
-  /* blocks in a MF51.                   */
-  /* (called "N div BS_PA_MFRMS" in      */
-  /* GSM05.02, Page 21).                 */
-  /*-------------------------------------*/
+      
+    /*-------------------------------------*/
+    /* Table giving the number of Paging   */
+    /* blocks in a MF51.                   */
+    /* (called "N div BS_PA_MFRMS" in      */
+    /* GSM05.02, Page 21).                 */
+    /*-------------------------------------*/
 
-  // BS_CCCH_SDCCH_COMB = False, BCCH not combined.
-  const UWORD8 NBPCH_IN_MF51_NCOMB[(MAX_AG_BLKS_RES_NCOMB+1)] =
-  {
-    9,    // BS_AG_BLKS_RES = 0. 
-    8,    // BS_AG_BLKS_RES = 1. 
-    7,    // BS_AG_BLKS_RES = 2. 
-    6,    // BS_AG_BLKS_RES = 3. 
-    5,    // BS_AG_BLKS_RES = 4. 
-    4,    // BS_AG_BLKS_RES = 5. 
-    3,    // BS_AG_BLKS_RES = 6. 
-    2     // BS_AG_BLKS_RES = 7. 
-  };    
+    // BS_CCCH_SDCCH_COMB = False, BCCH not combined.
+    const UWORD8 NBPCH_IN_MF51_NCOMB[(MAX_AG_BLKS_RES_NCOMB+1)] =
+    {
+      9,    // BS_AG_BLKS_RES = 0. 
+      8,    // BS_AG_BLKS_RES = 1. 
+      7,    // BS_AG_BLKS_RES = 2. 
+      6,    // BS_AG_BLKS_RES = 3. 
+      5,    // BS_AG_BLKS_RES = 4. 
+      4,    // BS_AG_BLKS_RES = 5. 
+      3,    // BS_AG_BLKS_RES = 6. 
+      2     // BS_AG_BLKS_RES = 7. 
+    };    
 
-  // BS_CCCH_SDCCH_COMB = True, BCCH combined.
-  const UWORD8 NBPCH_IN_MF51_COMB[(MAX_AG_BLKS_RES_COMB+1)] =
-  {
-    3,    // BS_AG_BLKS_RES = 0. 
-    2,    // BS_AG_BLKS_RES = 1. 
-    1     // BS_AG_BLKS_RES = 2. 
-  };    
+    // BS_CCCH_SDCCH_COMB = True, BCCH combined.
+    const UWORD8 NBPCH_IN_MF51_COMB[(MAX_AG_BLKS_RES_COMB+1)] =
+    {
+      3,    // BS_AG_BLKS_RES = 0. 
+      2,    // BS_AG_BLKS_RES = 1. 
+      1     // BS_AG_BLKS_RES = 2. 
+    };    
 
-  // Initial value for Downlink Signalling failure Counter (DSC).
-  const UWORD8 DSC_INIT_VALUE[MAX_BS_PA_MFRMS-1] =
-  {
-    45,   // BS_PA_MFRMS = 2.
-    30,   // BS_PA_MFRMS = 3.
-    23,   // BS_PA_MFRMS = 4.
-    18,   // BS_PA_MFRMS = 5.
-    15,   // BS_PA_MFRMS = 6.
-    13,   // BS_PA_MFRMS = 7.
-    11,   // BS_PA_MFRMS = 8.
-    10    // BS_PA_MFRMS = 9.
-  };
+    // Initial value for Downlink Signalling failure Counter (DSC).
+    const UWORD8 DSC_INIT_VALUE[MAX_BS_PA_MFRMS-1] =
+    {
+      45,   // BS_PA_MFRMS = 2.
+      30,   // BS_PA_MFRMS = 3.
+      23,   // BS_PA_MFRMS = 4.
+      18,   // BS_PA_MFRMS = 5.
+      15,   // BS_PA_MFRMS = 6.
+      13,   // BS_PA_MFRMS = 7.
+      11,   // BS_PA_MFRMS = 8.
+      10    // BS_PA_MFRMS = 9.
+    };
 
-  // REM: 2nd block of SDCCH is always at the same position as the first block
-  //      but 1 mf51 later.
-  // REM: monitoring during SDCCH used a fixe area (FB51/SB51/SBCNF51 tasks).
-  //      Here is given the area starting position. This position is chosen
-  //      to allow the equations for SBCNF51 occurence as it is in the l1s
-  //      scheduler (the area do not overlap the end of 102 multiframe 
-  //      structure).
-  // Table for SDCCH description, Down Link & Up link, Not combined case.
-   const T_SDCCH_DESC SDCCH_DESC_NCOMB[8] =
-  {
-    //  "dl_D" , "dl_A"  , "ul_D"  , "ul_A".        , "monit. area"
-    {  51 - 12 , 32 - 12 , 15 - 12 ,  47 - 12       ,  70 - 12     }, // SDCCH, D0
-    {  55 - 12 , 36 - 12 , 19 - 12 ,  51 - 12       ,  74 - 12     }, // SDCCH, D1
-    {  59 - 12 , 40 - 12 , 23 - 12 ,  55 - 12       ,  78 - 12     }, // SDCCH, D2
-    {  12 - 12 , 44 - 12 , 27 - 12 ,  59 - 12       ,  82 - 12     }, // SDCCH, D3
-    {  16 - 12 , 83 - 12 , 31 - 12 ,  98 - 12       ,  35 - 12     }, // SDCCH, D4
-    {  20 - 12 , 87 - 12 , 35 - 12 , 102 - 12       ,  39 - 12     }, // SDCCH, D5
-    {  24 - 12 , 91 - 12 , 39 - 12 ,   4 - 12 + 102 ,  43 - 12     }, // SDCCH, D6
-    {  28 - 12 , 95 - 12 , 43 - 12 ,   8 - 12 + 102 ,  47 - 12     }  // SDCCH, D7
-  };  
+    // REM: 2nd block of SDCCH is always at the same position as the first block
+    //      but 1 mf51 later.
+    // REM: monitoring during SDCCH used a fixe area (FB51/SB51/SBCNF51 tasks).
+    //      Here is given the area starting position. This position is chosen
+    //      to allow the equations for SBCNF51 occurence as it is in the l1s
+    //      scheduler (the area do not overlap the end of 102 multiframe 
+    //      structure).
+    // Table for SDCCH description, Down Link & Up link, Not combined case.
+     const T_SDCCH_DESC SDCCH_DESC_NCOMB[8] =
+    {
+      //  "dl_D" , "dl_A"  , "ul_D"  , "ul_A".        , "monit. area"
+      {  51 - 12 , 32 - 12 , 15 - 12 ,  47 - 12       ,  70 - 12     }, // SDCCH, D0
+      {  55 - 12 , 36 - 12 , 19 - 12 ,  51 - 12       ,  74 - 12     }, // SDCCH, D1
+      {  59 - 12 , 40 - 12 , 23 - 12 ,  55 - 12       ,  78 - 12     }, // SDCCH, D2
+      {  12 - 12 , 44 - 12 , 27 - 12 ,  59 - 12       ,  82 - 12     }, // SDCCH, D3
+      {  16 - 12 , 83 - 12 , 31 - 12 ,  98 - 12       ,  35 - 12     }, // SDCCH, D4
+      {  20 - 12 , 87 - 12 , 35 - 12 , 102 - 12       ,  39 - 12     }, // SDCCH, D5
+      {  24 - 12 , 91 - 12 , 39 - 12 ,   4 - 12 + 102 ,  43 - 12     }, // SDCCH, D6
+      {  28 - 12 , 95 - 12 , 43 - 12 ,   8 - 12 + 102 ,  47 - 12     }  // SDCCH, D7
+    };  
 
-  // REM: monitoring during SDCCH used a fixe area (FB51/SB51/SBCNF51 tasks).
-  //      Here is given the area starting position. This position is chosen
-  //      to allow the equations for SBCNF51 occurence as it is in the l1s
-  //      scheduler (the area do not overlap the end of 102 multiframe 
-  //      structure).
-  // Table for SDCCH description, Down Link & Up link, Combined case.
-  const T_SDCCH_DESC SDCCH_DESC_COMB[4] =
-  {
-    // "dl_D"  , "dl_A"  , "ul_D"  , "ul_A".       , "monit. area"
-    {  73 - 37 , 42 - 37 , 37 - 37 , 57 - 37       ,  92 - 37     }, // SDCCH, D0
-    {  77 - 37 , 46 - 37 , 41 - 37 , 61 - 37       ,  96 - 37     }, // SDCCH, D1
-    {  83 - 37 , 93 - 37 , 47 - 37 , 6  - 37 + 102 ,  51 - 37     }, // SDCCH, D2
-    {  87 - 37 , 97 - 37 , 51 - 37 , 10 - 37 + 102 ,  55 - 37     }  // SDCCH, D3
-  };                                                               
+    // REM: monitoring during SDCCH used a fixe area (FB51/SB51/SBCNF51 tasks).
+    //      Here is given the area starting position. This position is chosen
+    //      to allow the equations for SBCNF51 occurence as it is in the l1s
+    //      scheduler (the area do not overlap the end of 102 multiframe 
+    //      structure).
+    // Table for SDCCH description, Down Link & Up link, Combined case.
+    const T_SDCCH_DESC SDCCH_DESC_COMB[4] =
+    {
+      // "dl_D"  , "dl_A"  , "ul_D"  , "ul_A".       , "monit. area"
+      {  73 - 37 , 42 - 37 , 37 - 37 , 57 - 37       ,  92 - 37     }, // SDCCH, D0
+      {  77 - 37 , 46 - 37 , 41 - 37 , 61 - 37       ,  96 - 37     }, // SDCCH, D1
+      {  83 - 37 , 93 - 37 , 47 - 37 , 6  - 37 + 102 ,  51 - 37     }, // SDCCH, D2
+      {  87 - 37 , 97 - 37 , 51 - 37 , 10 - 37 + 102 ,  55 - 37     }  // SDCCH, D3
+    };                                                               
 
-  // Table for HOPPING SEQUENCE GENERATION ALGORITHM.
-  const UWORD8 RNTABLE[114] =
-  {
-     48,  98,  63,   1,  36,  95,  78, 102,  94,  73,
-      0,  64,  25,  81,  76,  59, 124,  23, 104, 100,
-    101,  47, 118,  85,  18,  56,  96,  86,  54,   2,
-     80,  34, 127,  13,   6,  89,  57, 103,  12,  74,
-     55, 111,  75,  38, 109,  71, 112,  29,  11,  88,
-     87,  19,   3,  68, 110,  26,  33,  31,   8,  45,
-     82,  58,  40, 107,  32,   5, 106,  92,  62,  67,
-     77, 108, 122,  37,  60,  66, 121,  42,  51, 126,
-    117, 114,   4,  90,  43,  52,  53, 113, 120,  72,
-     16,  49,   7,  79, 119,  61,  22,  84,   9,  97,
-     91,  15,  21,  24,  46,  39,  93, 105,  65,  70,
-    125,  99,  17, 123
-  };
+    // Table for HOPPING SEQUENCE GENERATION ALGORITHM.
+    const UWORD8 RNTABLE[114] =
+    {
+       48,  98,  63,   1,  36,  95,  78, 102,  94,  73,
+        0,  64,  25,  81,  76,  59, 124,  23, 104, 100,
+      101,  47, 118,  85,  18,  56,  96,  86,  54,   2,
+       80,  34, 127,  13,   6,  89,  57, 103,  12,  74,
+       55, 111,  75,  38, 109,  71, 112,  29,  11,  88,
+       87,  19,   3,  68, 110,  26,  33,  31,   8,  45,
+       82,  58,  40, 107,  32,   5, 106,  92,  62,  67,
+       77, 108, 122,  37,  60,  66, 121,  42,  51, 126,
+      117, 114,   4,  90,  43,  52,  53, 113, 120,  72,
+       16,  49,   7,  79, 119,  61,  22,  84,   9,  97,
+       91,  15,  21,  24,  46,  39,  93, 105,  65,  70,
+      125,  99,  17, 123
+    };
 
 
-  // Table giving the RACH slot positions when COMBINED.
-  // Rem: all is shifted left by 1 to map the position of the possible "contoles".
-  const UWORD8 COMBINED_RA_DISTRIB[51] =
-  { 
-    0, 0, 0, 
-    1, 1, 
-    0, 0, 0, 0, 0, 0, 0, 0, 
-    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    1, 1, 
-    0, 0, 0, 0, 0
-  };
+    // Table giving the RACH slot positions when COMBINED.
+    // Rem: all is shifted left by 1 to map the position of the possible "contoles".
+    const UWORD8 COMBINED_RA_DISTRIB[51] =
+    { 
+      0, 0, 0, 
+      1, 1, 
+      0, 0, 0, 0, 0, 0, 0, 0, 
+      1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+      0, 0, 0, 0, 0, 0, 0, 0,
+      1, 1, 
+      0, 0, 0, 0, 0
+    };
 
-#if !L1_GPRS
-  const T_TASK_MFTAB  TASK_ROM_MFTAB[NBR_DL_L1S_TASKS] =
-  {
-    { BLOC_HWTEST,   BLOC_HWTEST_SIZE   },  // HWTEST 
-    { BLOC_ADC    ,  BLOC_ADC_SIZE      },  // ADC in CS_MODE0
-    { NULL,          0                  },  // DEDIC   (not meaningfull)
-    { BLOC_RAACC,    BLOC_RAACC_SIZE    },  // RAACC                 
-    { NULL,          0                  },  // RAHO    (not meaningfull)             
-    { NULL,          0                  },  // NSYNC   (not meaningfull)             
-    { BLOC_FBNEW,    BLOC_FBNEW_SIZE    },  // FBNEW 
-    { BLOC_SBCONF,   BLOC_SBCONF_SIZE   },  // SBCONF 
-    { BLOC_SB2,      BLOC_SB2_SIZE      },  // SB2 
-    { BLOC_FB26,     BLOC_FB26_SIZE     },  // FB26               
-    { BLOC_SB26,     BLOC_SB26_SIZE     },  // SB26
-    { BLOC_SBCNF26,  BLOC_SBCNF26_SIZE  },  // SBCNF26
-    { BLOC_FB51,     BLOC_FB51_SIZE     },  // FB51               
-    { BLOC_SB51,     BLOC_SB51_SIZE     },  // SB51               
-    { BLOC_SBCNF51,  BLOC_SBCNF51_SIZE  },  // SBCNF51               
-    { BLOC_BCCHN,    BLOC_BCCHN_SIZE    },  // BCCHN   
-    { BLOC_ALLC,     S_RECT4_SIZE       },  // ALLC
-    { BLOC_EBCCHS,   S_RECT4_SIZE       },  // EBCCHS 
-    { BLOC_NBCCHS,   S_RECT4_SIZE       },  // NBCCHS 
-    { BLOC_SMSCB,    BLOC_SMSCB_SIZE    },  // SMSCB
-    { BLOC_NP,       S_RECT4_SIZE       },  // NP  
-    { BLOC_EP,       S_RECT4_SIZE       },  // EP  
-    { BLOC_ADL,      S_RECT4_SIZE       },  // ADL
-    { BLOC_AUL,      S_RECT4_SIZE       },  // AUL                 
-    { BLOC_DDL,      S_RECT4_SIZE       },  // DDL
-    { BLOC_DUL,      S_RECT4_SIZE       },  // DUL     
-    { BLOC_TCHD,     BLOC_TCHT_SIZE     },  // TCHD
-    { BLOC_TCHA,     BLOC_TCHA_SIZE     },  // TCHA
-    { BLOC_TCHTF,    BLOC_TCHT_SIZE     },  // TCHTF
-    { BLOC_TCHTH,    BLOC_TCHT_SIZE     },  // TCHTH
-    { BLOC_BCCHN_TOP,BLOC_BCCHN_TOP_SIZE},  // BCCHN_TOP  
-    { BLOC_SYNCHRO,  BLOC_SYNCHRO_SIZE  }   // SYNCHRO
-  };
+  #if !L1_GPRS
+    const T_TASK_MFTAB  TASK_ROM_MFTAB[NBR_DL_L1S_TASKS] =
+    {
+      { BLOC_HWTEST,   BLOC_HWTEST_SIZE   },  // HWTEST 
+      { BLOC_ADC    ,  BLOC_ADC_SIZE      },  // ADC in CS_MODE0
+      { NULL,          0                  },  // DEDIC   (not meaningfull)
+      { BLOC_RAACC,    BLOC_RAACC_SIZE    },  // RAACC                 
+      { NULL,          0                  },  // RAHO    (not meaningfull)             
+      { NULL,          0                  },  // NSYNC   (not meaningfull)             
+      { BLOC_FBNEW,    BLOC_FBNEW_SIZE    },  // FBNEW 
+      { BLOC_SBCONF,   BLOC_SBCONF_SIZE   },  // SBCONF 
+      { BLOC_SB2,      BLOC_SB2_SIZE      },  // SB2 
+      { BLOC_FB26,     BLOC_FB26_SIZE     },  // FB26               
+      { BLOC_SB26,     BLOC_SB26_SIZE     },  // SB26
+      { BLOC_SBCNF26,  BLOC_SBCNF26_SIZE  },  // SBCNF26
+      { BLOC_FB51,     BLOC_FB51_SIZE     },  // FB51               
+      { BLOC_SB51,     BLOC_SB51_SIZE     },  // SB51               
+      { BLOC_SBCNF51,  BLOC_SBCNF51_SIZE  },  // SBCNF51               
+      { BLOC_BCCHN,    BLOC_BCCHN_SIZE    },  // BCCHN   
+      { BLOC_ALLC,     S_RECT4_SIZE       },  // ALLC
+      { BLOC_EBCCHS,   S_RECT4_SIZE       },  // EBCCHS 
+      { BLOC_NBCCHS,   S_RECT4_SIZE       },  // NBCCHS 
+      { BLOC_SMSCB,    BLOC_SMSCB_SIZE    },  // SMSCB
+      { BLOC_NP,       S_RECT4_SIZE       },  // NP  
+      { BLOC_EP,       S_RECT4_SIZE       },  // EP  
+      { BLOC_ADL,      S_RECT4_SIZE       },  // ADL
+      { BLOC_AUL,      S_RECT4_SIZE       },  // AUL                 
+      { BLOC_DDL,      S_RECT4_SIZE       },  // DDL
+      { BLOC_DUL,      S_RECT4_SIZE       },  // DUL     
+      { BLOC_TCHD,     BLOC_TCHT_SIZE     },  // TCHD
+      { BLOC_TCHA,     BLOC_TCHA_SIZE     },  // TCHA
+      { BLOC_TCHTF,    BLOC_TCHT_SIZE     },  // TCHTF
+      { BLOC_TCHTH,    BLOC_TCHT_SIZE     },  // TCHTH
+      { BLOC_BCCHN_TOP,BLOC_BCCHN_TOP_SIZE},  // BCCHN_TOP  
+#if ((REL99 == 1) && (FF_BHO == 1))
+    { BLOC_FBSB,     BLOC_FBSB_SIZE     },  // FBSB   
+#endif
+      { BLOC_SYNCHRO,  BLOC_SYNCHRO_SIZE  }   // SYNCHRO
+    };
 
-  const UWORD8 DSP_TASK_CODE[NBR_DL_L1S_TASKS] =
-  {
-    CHECKSUM_DSP_TASK,// HWTEST 
-    0,                // DEDIC (not meaningfull)
-    0,                // ADC   (not meaningfull)
-    RACH_DSP_TASK,    // RAACC     
-    RACH_DSP_TASK,    // RAHO
-    0,                // NSYNC (not meaningfull)
-    FB_DSP_TASK,      // FBNEW    
-    SB_DSP_TASK,      // SBCONF
-    SB_DSP_TASK,      // SB2     
-    TCH_FB_DSP_TASK,  // FB26               
-    TCH_SB_DSP_TASK,  // SB26               
-    TCH_SB_DSP_TASK,  // SBCNF26               
-    FB_DSP_TASK,      // FB51               
-    SB_DSP_TASK,      // SB51               
-    SB_DSP_TASK,      // SBCNF51               
-    NBN_DSP_TASK,     // BCCHN         
-    ALLC_DSP_TASK,    // ALLC      
-    NBS_DSP_TASK,     // EBCCHS       
-    NBS_DSP_TASK,     // NBCCHS       
-    DDL_DSP_TASK,     // Temporary (BUG IN SIMULATOR)  CB_DSP_TASK,    // SMSCB
-    NP_DSP_TASK,      // NP        
-    EP_DSP_TASK,      // EP        
-    ADL_DSP_TASK,     // ADL     
-    AUL_DSP_TASK,     // AUL     
-    DDL_DSP_TASK,     // DDL     
-    DUL_DSP_TASK,     // DUL     
-    TCHD_DSP_TASK,    // TCHD 
-    TCHA_DSP_TASK,    // TCHA
-    TCHT_DSP_TASK,    // TCHTF
-    TCHT_DSP_TASK,    // TCHTH
-    NBN_DSP_TASK,     // BCCHN_TOP == BCCHN
-    0,                // SYNCHRO (not meaningfull)
-  };                
-#else
-  const T_TASK_MFTAB  TASK_ROM_MFTAB[NBR_DL_L1S_TASKS] =
-  {
-    { BLOC_HWTEST,       BLOC_HWTEST_SIZE  },       // HWTEST 
-    { BLOC_ADC,          BLOC_ADC_SIZE     },       // ADC in CS_MODE0
-    { NULL,              0                 },       // DEDIC   (not meaningfull)
-    { BLOC_RAACC,        BLOC_RAACC_SIZE   },       // RAACC                 
-    { NULL,              0                 },       // RAHO    (not meaningfull)
-    { NULL,              0                 },       // NSYNC   (not meaningfull)             
-    { BLOC_POLL ,        BLOC_POLL_SIZE    },       // POLL
-    { BLOC_PRACH,        BLOC_PRACH_SIZE   },       // PRACH  
-    { BLOC_ITMEAS,       BLOC_ITMEAS_SIZE  },       // ITMEAS 
-    { BLOC_FBNEW,        BLOC_FBNEW_SIZE   },       // FBNEW 
-    { BLOC_SBCONF,       BLOC_SBCONF_SIZE  },       // SBCONF 
-    { BLOC_SB2,          BLOC_SB2_SIZE     },       // SB2 
-    { BLOC_PTCCH,        BLOC_PTCCH_SIZE   },       // PTCCH  
-    { BLOC_FB26,         BLOC_FB26_SIZE    },       // FB26               
-    { BLOC_SB26,         BLOC_SB26_SIZE    },       // SB26
-    { BLOC_SBCNF26,      BLOC_SBCNF26_SIZE },       // SBCNF26
-    { BLOC_FB51,         BLOC_FB51_SIZE    },       // FB51               
-    { BLOC_SB51,         BLOC_SB51_SIZE    },       // SB51               
-    { BLOC_SBCNF51,      BLOC_SBCNF51_SIZE },       // SBCNF51
-    { BLOC_PDTCH,        BLOC_PDTCH_SIZE   },       // PDTCH   
-    { BLOC_BCCHN,        BLOC_BCCHN_SIZE   },       // BCCHN   
-    { BLOC_ALLC,         S_RECT4_SIZE      },       // ALLC
-    { BLOC_EBCCHS,       S_RECT4_SIZE      },       // EBCCHS 
-    { BLOC_NBCCHS,       S_RECT4_SIZE      },       // NBCCHS 
-    { BLOC_ADL,          S_RECT4_SIZE      },       // ADL
-    { BLOC_AUL,          S_RECT4_SIZE      },       // AUL                 
-    { BLOC_DDL,          S_RECT4_SIZE      },       // DDL
-    { BLOC_DUL,          S_RECT4_SIZE      },       // DUL     
-    { BLOC_TCHD,         BLOC_TCHT_SIZE    },       // TCHD
-    { BLOC_TCHA,         BLOC_TCHA_SIZE    },       // TCHA
-    { BLOC_TCHTF,        BLOC_TCHT_SIZE    },       // TCHTF
-    { BLOC_TCHTH,        BLOC_TCHT_SIZE    },       // TCHTH
-    { BLOC_PALLC,        BLOC_PCCCH_SIZE   },       // PALLC
-    { BLOC_SMSCB,        BLOC_SMSCB_SIZE   },       // SMSCB
-    { BLOC_PBCCHS,       BLOC_PBCCHS_SIZE  },       // PBCCHS
-    { BLOC_PNP,          BLOC_PCCCH_SIZE   },       // PNP
-    { BLOC_PEP,          BLOC_PCCCH_SIZE   },       // PEP
-    { BLOC_SINGLE,       BLOC_SINGLE_SIZE  },       // SINGLE        
-    { BLOC_PBCCHN_TRAN,  BLOC_PBCCHN_TRAN_SIZE },   // PBCCHN_TRAN   
-    { BLOC_PBCCHN_IDLE,  BLOC_PBCCHN_IDLE_SIZE },   // PBCCHN_IDLE   
-    { BLOC_BCCHN_TRAN,   BLOC_BCCHN_TRAN_SIZE },    // BCCHN_TRAN  
-    { BLOC_NP,           S_RECT4_SIZE      },       // NP  
-    { BLOC_EP,           S_RECT4_SIZE      },       // EP  
-    { BLOC_BCCHN_TOP,    BLOC_BCCHN_TOP_SIZE},      // BCCHN_TOP  
-    { BLOC_SYNCHRO,      BLOC_SYNCHRO_SIZE }        // SYNCHRO
-  };
-
-  const UWORD8 DSP_TASK_CODE[NBR_DL_L1S_TASKS] =
-  {
-    CHECKSUM_DSP_TASK,// HWTEST 
-    0,                // ADC   (not meaningfull)
-    0,                // DEDIC (not meaningfull)
-    RACH_DSP_TASK,    // RAACC     
-    RACH_DSP_TASK,    // RAHO
-    0,                // NSYNC  (not meaningfull)
-    0,                // POLL   (not meaningfull)
-    0,                // PRACH  (not meaningfull)
-    0,                // ITMEAS 
-    FB_DSP_TASK,      // FBNEW    
-    SB_DSP_TASK,      // SBCONF
-    SB_DSP_TASK,      // SB2     
-    PTCCHU_DSP_TASK,  // PTCCH  
-    TCH_FB_DSP_TASK,  // FB26               
-    TCH_SB_DSP_TASK,  // SB26               
-    TCH_SB_DSP_TASK,  // SBCNF26               
-    FB_DSP_TASK,      // FB51               
-    SB_DSP_TASK,      // SB51               
-    SB_DSP_TASK,      // SBCNF51               
-    0,                // PDTCH  (not meaningfull)
-    NBN_DSP_TASK,     // BCCHN         
-    ALLC_DSP_TASK,    // ALLC      
-    NBS_DSP_TASK,     // EBCCHS       
-    NBS_DSP_TASK,     // NBCCHS       
-    ADL_DSP_TASK,     // ADL     
-    AUL_DSP_TASK,     // AUL     
-    DDL_DSP_TASK,     // DDL     
-    DUL_DSP_TASK,     // DUL     
-    TCHD_DSP_TASK,    // TCHD 
-    TCHA_DSP_TASK,    // TCHA
-    TCHT_DSP_TASK,    // TCHTF
-    TCHT_DSP_TASK,    // TCHTH
-    0,                // PALLC  (not meaningfull)
-    DDL_DSP_TASK,     // Temporary (BUG IN SIMULATOR)  CB_DSP_TASK,    // SMSCB
-    DDL_DSP_TASK,     // PBCCHS (In order to allow PBCCHS running in CS or Idle mode, we have to specify a valid DSP task in order to request a PBCCHS with the GSM scheduler)
-    0,                // PNP    (not meaningfull)
-    0,                // PEP    (not meaningfull)
-    0,                // SINGLE (not meaningfull) 
-    0,                // PBCCHN_TRAN (not meaningfull)    
-    DDL_DSP_TASK,     // PBCCHN_IDLE (only for GSM scheduler the task used is the same as SMSCB task)
-    NBN_DSP_TASK,     // BCCHN_TRAN == BCCHN
-    NP_DSP_TASK,      // NP        
-    EP_DSP_TASK,      // EP        
-    NBN_DSP_TASK,     // BCCHN_TOP == BCCHN
-    0                 // SYNCHRO (not meaningfull)
-  };                
-
+    const UWORD8 DSP_TASK_CODE[NBR_DL_L1S_TASKS] =
+    {
+      CHECKSUM_DSP_TASK,// HWTEST 
+      0,                // DEDIC (not meaningfull)
+      0,                // ADC   (not meaningfull)
+      RACH_DSP_TASK,    // RAACC     
+      RACH_DSP_TASK,    // RAHO
+      0,                // NSYNC (not meaningfull)
+      FB_DSP_TASK,      // FBNEW    
+      SB_DSP_TASK,      // SBCONF
+      SB_DSP_TASK,      // SB2     
+      TCH_FB_DSP_TASK,  // FB26               
+      TCH_SB_DSP_TASK,  // SB26               
+      TCH_SB_DSP_TASK,  // SBCNF26               
+      FB_DSP_TASK,      // FB51               
+      SB_DSP_TASK,      // SB51               
+      SB_DSP_TASK,      // SBCNF51               
+      NBN_DSP_TASK,     // BCCHN         
+      ALLC_DSP_TASK,    // ALLC      
+      NBS_DSP_TASK,     // EBCCHS       
+      NBS_DSP_TASK,     // NBCCHS       
+      DDL_DSP_TASK,     // Temporary (BUG IN SIMULATOR)  CB_DSP_TASK,    // SMSCB
+      NP_DSP_TASK,      // NP        
+      EP_DSP_TASK,      // EP        
+      ADL_DSP_TASK,     // ADL     
+      AUL_DSP_TASK,     // AUL     
+      DDL_DSP_TASK,     // DDL     
+      DUL_DSP_TASK,     // DUL     
+      TCHD_DSP_TASK,    // TCHD 
+      TCHA_DSP_TASK,    // TCHA
+      TCHT_DSP_TASK,    // TCHTF
+      TCHT_DSP_TASK,    // TCHTH
+      NBN_DSP_TASK,     // BCCHN_TOP == BCCHN
+#if ((REL99 == 1) && (FF_BHO == 1))
+    FBSB_DSP_TASK,    // FBSB   
 #endif
-
-  const UWORD8 REPORTING_PERIOD[] =
-  {
-    255,            // INVALID_CHANNEL -> invalid reporting period
-    104,            // TCH_F              
-    104,            // TCH_H              
-    102,            // SDCCH_4            
-    102             // SDCCH_8            
-  }; 
-  
-  const UWORD8 TOA_PERIOD_LEN[] =
-  {
-    0,              // CS_MODE0 not used for histogram filling       
-    12,             // CS_MODE histogram length            
-    12,             // I_MODE histogram length            
-    12,             // CON_EST_MODE1 histogram length  
-   144,             // CON_EST_MODE2 histogram length      
-    36,             // DEDIC_MODE (Full rate) histogram length        
-    42              // DEDIC_MODE (Half rate) histogram length        
-    #if L1_GPRS
-      ,16           // PACKET TRANSFER MODE histogram length
-    #endif
-  }; 
-  
- // #if (STD == GSM) 
-    const UWORD8 MIN_TXPWR_GSM[] =
+      0,                // SYNCHRO (not meaningfull)
+    };                
+  #else
+    const T_TASK_MFTAB  TASK_ROM_MFTAB[NBR_DL_L1S_TASKS] =
     {
-      0,  // unused.
-      0,  // Power class = 1, unused for GSM900
-      2,  // Power class = 2.
-      3,  // Power class = 3.
-      5,  // Power class = 4.
-      7   // Power class = 5.
-    };
- // #elif (STD == PCS1900)
-    const UWORD8 MIN_TXPWR_PCS[] =
-    {
-      0,  // unused.
-      0,  // Power class = 1.
-      3,  // Power class = 2.
-     30   // Power class = 3.
-    };
- // #elif (STD == DCS1800)
-    const UWORD8 MIN_TXPWR_DCS[] =
-    {
-      0,  // unused.
-      0,  // Power class = 1.
-      3,  // Power class = 2.
-     29   // Power class = 3.
+      { BLOC_HWTEST,       BLOC_HWTEST_SIZE  },       // HWTEST 
+      { BLOC_ADC,          BLOC_ADC_SIZE     },       // ADC in CS_MODE0
+      { NULL,              0                 },       // DEDIC   (not meaningfull)
+      { BLOC_RAACC,        BLOC_RAACC_SIZE   },       // RAACC                 
+      { NULL,              0                 },       // RAHO    (not meaningfull)
+      { NULL,              0                 },       // NSYNC   (not meaningfull)             
+      { BLOC_POLL ,        BLOC_POLL_SIZE    },       // POLL
+      { BLOC_PRACH,        BLOC_PRACH_SIZE   },       // PRACH  
+      { BLOC_ITMEAS,       BLOC_ITMEAS_SIZE  },       // ITMEAS 
+      { BLOC_FBNEW,        BLOC_FBNEW_SIZE   },       // FBNEW 
+      { BLOC_SBCONF,       BLOC_SBCONF_SIZE  },       // SBCONF 
+      { BLOC_SB2,          BLOC_SB2_SIZE     },       // SB2 
+      { BLOC_PTCCH,        BLOC_PTCCH_SIZE   },       // PTCCH  
+      { BLOC_FB26,         BLOC_FB26_SIZE    },       // FB26               
+      { BLOC_SB26,         BLOC_SB26_SIZE    },       // SB26
+      { BLOC_SBCNF26,      BLOC_SBCNF26_SIZE },       // SBCNF26
+      { BLOC_FB51,         BLOC_FB51_SIZE    },       // FB51               
+      { BLOC_SB51,         BLOC_SB51_SIZE    },       // SB51               
+      { BLOC_SBCNF51,      BLOC_SBCNF51_SIZE },       // SBCNF51
+      { BLOC_PDTCH,        BLOC_PDTCH_SIZE   },       // PDTCH   
+      { BLOC_BCCHN,        BLOC_BCCHN_SIZE   },       // BCCHN   
+      { BLOC_ALLC,         S_RECT4_SIZE      },       // ALLC
+      { BLOC_EBCCHS,       S_RECT4_SIZE      },       // EBCCHS 
+      { BLOC_NBCCHS,       S_RECT4_SIZE      },       // NBCCHS 
+      { BLOC_ADL,          S_RECT4_SIZE      },       // ADL
+      { BLOC_AUL,          S_RECT4_SIZE      },       // AUL                 
+      { BLOC_DDL,          S_RECT4_SIZE      },       // DDL
+      { BLOC_DUL,          S_RECT4_SIZE      },       // DUL     
+      { BLOC_TCHD,         BLOC_TCHT_SIZE    },       // TCHD
+      { BLOC_TCHA,         BLOC_TCHA_SIZE    },       // TCHA
+      { BLOC_TCHTF,        BLOC_TCHT_SIZE    },       // TCHTF
+      { BLOC_TCHTH,        BLOC_TCHT_SIZE    },       // TCHTH
+      { BLOC_PALLC,        BLOC_PCCCH_SIZE   },       // PALLC
+      { BLOC_SMSCB,        BLOC_SMSCB_SIZE   },       // SMSCB
+      { BLOC_PBCCHS,       BLOC_PBCCHS_SIZE  },       // PBCCHS
+      { BLOC_PNP,          BLOC_PCCCH_SIZE   },       // PNP
+      { BLOC_PEP,          BLOC_PCCCH_SIZE   },       // PEP
+      { BLOC_SINGLE,       BLOC_SINGLE_SIZE  },       // SINGLE        
+      { BLOC_PBCCHN_TRAN,  BLOC_PBCCHN_TRAN_SIZE },   // PBCCHN_TRAN   
+      { BLOC_PBCCHN_IDLE,  BLOC_PBCCHN_IDLE_SIZE },   // PBCCHN_IDLE   
+      { BLOC_BCCHN_TRAN,   BLOC_BCCHN_TRAN_SIZE },    // BCCHN_TRAN  
+      { BLOC_NP,           S_RECT4_SIZE      },       // NP  
+      { BLOC_EP,           S_RECT4_SIZE      },       // EP  
+      { BLOC_BCCHN_TOP,    BLOC_BCCHN_TOP_SIZE},      // BCCHN_TOP  
+#if ((REL99 == 1) && (FF_BHO == 1))
+      { BLOC_FBSB,         BLOC_FBSB_SIZE        },   // FBSB   
+#endif
+      { BLOC_SYNCHRO,      BLOC_SYNCHRO_SIZE }        // SYNCHRO
     };
 
-     const UWORD8 MIN_TXPWR_GSM850[] =
+    const UWORD8 DSP_TASK_CODE[NBR_DL_L1S_TASKS] =
     {
-      0,  // unused.
-      0,  // Power class = 1, unused for GSM900
-      2,  // Power class = 2.
-      3,  // Power class = 3.
-      5,  // Power class = 4.
-      7   // Power class = 5.
-    };
+      CHECKSUM_DSP_TASK,// HWTEST 
+      0,                // ADC   (not meaningfull)
+      0,                // DEDIC (not meaningfull)
+      RACH_DSP_TASK,    // RAACC     
+      RACH_DSP_TASK,    // RAHO
+      0,                // NSYNC  (not meaningfull)
+      0,                // POLL   (not meaningfull)
+      0,                // PRACH  (not meaningfull)
+      0,                // ITMEAS 
+      FB_DSP_TASK,      // FBNEW    
+      SB_DSP_TASK,      // SBCONF
+      SB_DSP_TASK,      // SB2     
+      PTCCHU_DSP_TASK,  // PTCCH  
+      TCH_FB_DSP_TASK,  // FB26               
+      TCH_SB_DSP_TASK,  // SB26               
+      TCH_SB_DSP_TASK,  // SBCNF26               
+      FB_DSP_TASK,      // FB51               
+      SB_DSP_TASK,      // SB51               
+      SB_DSP_TASK,      // SBCNF51               
+      0,                // PDTCH  (not meaningfull)
+      NBN_DSP_TASK,     // BCCHN         
+      ALLC_DSP_TASK,    // ALLC      
+      NBS_DSP_TASK,     // EBCCHS       
+      NBS_DSP_TASK,     // NBCCHS       
+      ADL_DSP_TASK,     // ADL     
+      AUL_DSP_TASK,     // AUL     
+      DDL_DSP_TASK,     // DDL     
+      DUL_DSP_TASK,     // DUL     
+      TCHD_DSP_TASK,    // TCHD 
+      TCHA_DSP_TASK,    // TCHA
+      TCHT_DSP_TASK,    // TCHTF
+      TCHT_DSP_TASK,    // TCHTH
+      0,                // PALLC  (not meaningfull)
+      DDL_DSP_TASK,     // Temporary (BUG IN SIMULATOR)  CB_DSP_TASK,    // SMSCB
+      DDL_DSP_TASK,     // PBCCHS (In order to allow PBCCHS running in CS or Idle mode, we have to specify a valid DSP task in order to request a PBCCHS with the GSM scheduler)
+      0,                // PNP    (not meaningfull)
+      0,                // PEP    (not meaningfull)
+      0,                // SINGLE (not meaningfull) 
+      0,                // PBCCHN_TRAN (not meaningfull)    
+      DDL_DSP_TASK,     // PBCCHN_IDLE (only for GSM scheduler the task used is the same as SMSCB task)
+      NBN_DSP_TASK,     // BCCHN_TRAN == BCCHN
+      NP_DSP_TASK,      // NP        
+      EP_DSP_TASK,      // EP        
+      NBN_DSP_TASK,     // BCCHN_TOP == BCCHN
+#if ((REL99 == 1) && (FF_BHO == 1))
+      FBSB_DSP_TASK,    // FBSB   
+#endif
+      0                 // SYNCHRO (not meaningfull)
+    };                
 
-//  #elif (STD == DUAL)
- //   const UWORD8 MIN_TXPWR_GSM[] =
- //  {
- //     0,  // unused.
- //     0,  // Power class = 1, unused for GSM900
- //     2,  // Power class = 2.
- //     3,  // Power class = 3.
- //     5,  // Power class = 4.
- //     7   // Power class = 5.
- //   };
- //   const UWORD8 MIN_TXPWR_DCS[] =
- //   {
- //     0,  // unused.
- //     0,  // Power class = 1.
- //     3,  // Power class = 2.
- //    29   // Power class = 3.
- //   };
-//  #endif
+  #endif
 
-const UWORD8 GAUG_VS_PAGING_RATE[] =
-{
-  4,   // bs_pa_mfrms = 2, 1 gauging every 4 Paging blocs
-  3,   // bs_pa_mfrms = 3, 1 gauging every 3 Paging blocs
-  2,   // bs_pa_mfrms = 4, 1 gauging every 2 Paging blocs
-  1,   // bs_pa_mfrms = 5, 1 gauging every 1 Paging bloc
-  1,   // bs_pa_mfrms = 6, 1 gauging every 1 Paging bloc
-  1,   // bs_pa_mfrms = 7, 1 gauging every 1 Paging bloc
-  1,   // bs_pa_mfrms = 8, 1 gauging every 1 Paging bloc
-  1    // bs_pa_mfrms = 9, 1 gauging every 1 Paging bloc
-};   
-  
-#else
-  extern T_IDLE_TASK_INFO IDLE_INFO_COMB[(MAX_AG_BLKS_RES_COMB+1) * (MAX_PG_BLOC_INDEX_COMB+1)];
-  extern T_IDLE_TASK_INFO IDLE_INFO_NCOMB[(MAX_AG_BLKS_RES_NCOMB+1) * (MAX_PG_BLOC_INDEX_NCOMB+1)];
-  extern UWORD8           NBPCH_IN_MF51_NCOMB[(MAX_AG_BLKS_RES_NCOMB+1)];
-  extern UWORD8           NBPCH_IN_MF51_COMB[(MAX_AG_BLKS_RES_COMB+1)];
-  extern UWORD8           DSC_INIT_VALUE[MAX_BS_PA_MFRMS-2];
-  extern T_SDCCH_DESC     SDCCH_DESC_NCOMB[];
-  extern T_SDCCH_DESC     SDCCH_DESC_COMB[];
-  extern UWORD8           RNTABLE[114];
-  extern UWORD8           COMBINED_RA_DISTRIB[51];
-  extern T_TASK_MFTAB     TASK_ROM_MFTAB[NBR_DL_L1S_TASKS];
-  extern UWORD8           DSP_TASK_CODE[NBR_DL_L1S_TASKS];
-  extern UWORD8           REPORTING_PERIOD[];
-  extern UWORD8           TOA_PERIOD_LEN[];
-  extern UWORD8           MIN_TXPWR_GSM[];
-  extern UWORD8           MIN_TXPWR_DCS[];
-  extern UWORD8           MIN_TXPWR_PCS[];
-  extern UWORD8           MIN_TXPWR_GSM850[];
-  extern UWORD8           GAUG_VS_PAGING_RATE[];
-#endif
+    const UWORD8 REPORTING_PERIOD[] =
+    {
+      255,            // INVALID_CHANNEL -> invalid reporting period
+      104,            // TCH_F              
+      104,            // TCH_H              
+      102,            // SDCCH_4            
+      102             // SDCCH_8            
+    }; 
+    
+    const UWORD8 TOA_PERIOD_LEN[] =
+    {
+      0,              // CS_MODE0 not used for histogram filling       
+      12,             // CS_MODE histogram length            
+      12,             // I_MODE histogram length            
+      12,             // CON_EST_MODE1 histogram length  
+     144,             // CON_EST_MODE2 histogram length      
+      36,             // DEDIC_MODE (Full rate) histogram length        
+      42,             // DEDIC_MODE (Half rate) histogram length        
+      #if L1_GPRS
+        16,           // PACKET TRANSFER MODE histogram length
+      #endif
+    }; 
+    
+   // #if (STD == GSM) 
+      const UWORD8 MIN_TXPWR_GSM[] =
+      {
+        0,  // unused.
+        0,  // Power class = 1, unused for GSM900
+        2,  // Power class = 2.
+        3,  // Power class = 3.
+        5,  // Power class = 4.
+        7   // Power class = 5.
+      };
+   // #elif (STD == PCS1900)
+      const UWORD8 MIN_TXPWR_PCS[] =
+      {
+        0,  // unused.
+        0,  // Power class = 1.
+        3,  // Power class = 2.
+       30   // Power class = 3.
+      };
+   // #elif (STD == DCS1800)
+      const UWORD8 MIN_TXPWR_DCS[] =
+      {
+        0,  // unused.
+        0,  // Power class = 1.
+        3,  // Power class = 2.
+       29   // Power class = 3.
+      };
+
+       const UWORD8 MIN_TXPWR_GSM850[] =
+      {
+        0,  // unused.
+        0,  // Power class = 1, unused for GSM900
+        2,  // Power class = 2.
+        3,  // Power class = 3.
+        5,  // Power class = 4.
+        7   // Power class = 5.
+      };
+
+  //  #elif (STD == DUAL)
+   //   const UWORD8 MIN_TXPWR_GSM[] =
+   //  {
+   //     0,  // unused.
+   //     0,  // Power class = 1, unused for GSM900
+   //     2,  // Power class = 2.
+   //     3,  // Power class = 3.
+   //     5,  // Power class = 4.
+   //     7   // Power class = 5.
+   //   };
+   //   const UWORD8 MIN_TXPWR_DCS[] =
+   //   {
+   //     0,  // unused.
+   //     0,  // Power class = 1.
+   //     3,  // Power class = 2.
+   //    29   // Power class = 3.
+   //   };
+  //  #endif
+
+  const UWORD8 GAUG_VS_PAGING_RATE[] =
+  {
+    4,   // bs_pa_mfrms = 2, 1 gauging every 4 Paging blocs
+    3,   // bs_pa_mfrms = 3, 1 gauging every 3 Paging blocs
+    2,   // bs_pa_mfrms = 4, 1 gauging every 2 Paging blocs
+    1,   // bs_pa_mfrms = 5, 1 gauging every 1 Paging bloc
+    1,   // bs_pa_mfrms = 6, 1 gauging every 1 Paging bloc
+    1,   // bs_pa_mfrms = 7, 1 gauging every 1 Paging bloc
+    1,   // bs_pa_mfrms = 8, 1 gauging every 1 Paging bloc
+    1    // bs_pa_mfrms = 9, 1 gauging every 1 Paging bloc
+  };   
+    
+  #else
+    extern T_IDLE_TASK_INFO IDLE_INFO_COMB[(MAX_AG_BLKS_RES_COMB+1) * (MAX_PG_BLOC_INDEX_COMB+1)];
+    extern T_IDLE_TASK_INFO IDLE_INFO_NCOMB[(MAX_AG_BLKS_RES_NCOMB+1) * (MAX_PG_BLOC_INDEX_NCOMB+1)];
+    extern UWORD8           NBPCH_IN_MF51_NCOMB[(MAX_AG_BLKS_RES_NCOMB+1)];
+    extern UWORD8           NBPCH_IN_MF51_COMB[(MAX_AG_BLKS_RES_COMB+1)];
+    extern UWORD8           DSC_INIT_VALUE[MAX_BS_PA_MFRMS-2];
+    extern T_SDCCH_DESC     SDCCH_DESC_NCOMB[];
+    extern T_SDCCH_DESC     SDCCH_DESC_COMB[];
+    extern UWORD8           RNTABLE[114];
+    extern UWORD8           COMBINED_RA_DISTRIB[51];
+    extern T_TASK_MFTAB     TASK_ROM_MFTAB[NBR_DL_L1S_TASKS];
+    extern UWORD8           DSP_TASK_CODE[NBR_DL_L1S_TASKS];
+    extern UWORD8           REPORTING_PERIOD[];
+    extern UWORD8           TOA_PERIOD_LEN[];
+    extern UWORD8           MIN_TXPWR_GSM[];
+    extern UWORD8           MIN_TXPWR_DCS[];
+    extern UWORD8           MIN_TXPWR_PCS[];
+    extern UWORD8           MIN_TXPWR_GSM850[];
+    extern UWORD8           GAUG_VS_PAGING_RATE[];
+  #endif
+#endif //L1_TABS_H