///////////////////////////////////////////////////////////////////////////////
//                                                                            /
// IAR ANSI C/C++ Compiler V6.30.1.53127/W32 for ARM    08/Mar/2012  18:18:19 /
// Copyright 1999-2011 IAR Systems AB.                                        /
//                                                                            /
//    Cpu mode     =  thumb                                                   /
//    Endian       =  little                                                  /
//    Source file  =  D:\Profiles\b01252\My Documents\Freescale\P0\software\s /
//                    ample code cesar\TWR-K20D50M_LABS_AND_CE\kinetis_50MHz_ /
//                    sc\src\projects\TWRK20D50M_Demo\cmt_test\cmt_test.c     /
//    Command line =  "D:\Profiles\b01252\My Documents\Freescale\P0\software\ /
//                    sample code cesar\TWR-K20D50M_LABS_AND_CE\kinetis_50MHz /
//                    _sc\src\projects\TWRK20D50M_Demo\cmt_test\cmt_test.c"   /
//                    -D IAR -D TOWER -D TWR_K20D50M -lCN                     /
//                    "D:\Profiles\b01252\My Documents\Freescale\P0\software\ /
//                    sample code cesar\TWR-K20D50M_LABS_AND_CE\kinetis_50MHz /
//                    _sc\build\iar\TWRK20D50M_Demo\FLASH_128KB_PFLASH\List\" /
//                     -lB "D:\Profiles\b01252\My                             /
//                    Documents\Freescale\P0\software\sample code             /
//                    cesar\TWR-K20D50M_LABS_AND_CE\kinetis_50MHz_sc\build\ia /
//                    r\TWRK20D50M_Demo\FLASH_128KB_PFLASH\List\" -o          /
//                    "D:\Profiles\b01252\My Documents\Freescale\P0\software\ /
//                    sample code cesar\TWR-K20D50M_LABS_AND_CE\kinetis_50MHz /
//                    _sc\build\iar\TWRK20D50M_Demo\FLASH_128KB_PFLASH\Obj\"  /
//                    --no_cse --no_unroll --no_inline --no_code_motion       /
//                    --no_tbaa --no_clustering --no_scheduling --debug       /
//                    --endian=little --cpu=Cortex-M4 -e --fpu=None           /
//                    --dlib_config "C:\Program Files\IAR Systems\Embedded    /
//                    Workbench 6.0_5\arm\INC\c\DLib_Config_Normal.h" -I      /
//                    "D:\Profiles\b01252\My Documents\Freescale\P0\software\ /
//                    sample code cesar\TWR-K20D50M_LABS_AND_CE\kinetis_50MHz /
//                    _sc\build\iar\TWRK20D50M_Demo\..\..\..\src\common\" -I  /
//                    "D:\Profiles\b01252\My Documents\Freescale\P0\software\ /
//                    sample code cesar\TWR-K20D50M_LABS_AND_CE\kinetis_50MHz /
//                    _sc\build\iar\TWRK20D50M_Demo\..\..\..\src\cpu\" -I     /
//                    "D:\Profiles\b01252\My Documents\Freescale\P0\software\ /
//                    sample code cesar\TWR-K20D50M_LABS_AND_CE\kinetis_50MHz /
//                    _sc\build\iar\TWRK20D50M_Demo\..\..\..\src\cpu\headers\ /
//                    " -I "D:\Profiles\b01252\My                             /
//                    Documents\Freescale\P0\software\sample code             /
//                    cesar\TWR-K20D50M_LABS_AND_CE\kinetis_50MHz_sc\build\ia /
//                    r\TWRK20D50M_Demo\..\..\..\src\drivers\uart\" -I        /
//                    "D:\Profiles\b01252\My Documents\Freescale\P0\software\ /
//                    sample code cesar\TWR-K20D50M_LABS_AND_CE\kinetis_50MHz /
//                    _sc\build\iar\TWRK20D50M_Demo\..\..\..\src\drivers\mcg\ /
//                    " -I "D:\Profiles\b01252\My                             /
//                    Documents\Freescale\P0\software\sample code             /
//                    cesar\TWR-K20D50M_LABS_AND_CE\kinetis_50MHz_sc\build\ia /
//                    r\TWRK20D50M_Demo\..\..\..\src\drivers\wdog\" -I        /
//                    "D:\Profiles\b01252\My Documents\Freescale\P0\software\ /
//                    sample code cesar\TWR-K20D50M_LABS_AND_CE\kinetis_50MHz /
//                    _sc\build\iar\TWRK20D50M_Demo\..\..\..\src\drivers\rcm\ /
//                    " -I "D:\Profiles\b01252\My                             /
//                    Documents\Freescale\P0\software\sample code             /
//                    cesar\TWR-K20D50M_LABS_AND_CE\kinetis_50MHz_sc\build\ia /
//                    r\TWRK20D50M_Demo\..\..\..\src\drivers\lptmr\" -I       /
//                    "D:\Profiles\b01252\My Documents\Freescale\P0\software\ /
//                    sample code cesar\TWR-K20D50M_LABS_AND_CE\kinetis_50MHz /
//                    _sc\build\iar\TWRK20D50M_Demo\..\..\..\src\platforms\"  /
//                    -I "D:\Profiles\b01252\My Documents\Freescale\P0\softwa /
//                    re\sample code cesar\TWR-K20D50M_LABS_AND_CE\kinetis_50 /
//                    MHz_sc\build\iar\TWRK20D50M_Demo\..\" -I                /
//                    "D:\Profiles\b01252\My Documents\Freescale\P0\software\ /
//                    sample code cesar\TWR-K20D50M_LABS_AND_CE\kinetis_50MHz /
//                    _sc\build\iar\TWRK20D50M_Demo\..\..\..\src\projects\TWR /
//                    K20D50M_Demo\" -I "D:\Profiles\b01252\My                /
//                    Documents\Freescale\P0\software\sample code             /
//                    cesar\TWR-K20D50M_LABS_AND_CE\kinetis_50MHz_sc\build\ia /
//                    r\TWRK20D50M_Demo\..\..\..\src\projects\TWRK20D50M_Demo /
//                    \dma\" -I "D:\Profiles\b01252\My                        /
//                    Documents\Freescale\P0\software\sample code             /
//                    cesar\TWR-K20D50M_LABS_AND_CE\kinetis_50MHz_sc\build\ia /
//                    r\TWRK20D50M_Demo\..\..\..\src\projects\TWRK20D50M_Demo /
//                    \adc16\" -I "D:\Profiles\b01252\My                      /
//                    Documents\Freescale\P0\software\sample code             /
//                    cesar\TWR-K20D50M_LABS_AND_CE\kinetis_50MHz_sc\build\ia /
//                    r\TWRK20D50M_Demo\..\..\..\src\projects\TWRK20D50M_Demo /
//                    \i2c\" -I "D:\Profiles\b01252\My                        /
//                    Documents\Freescale\P0\software\sample code             /
//                    cesar\TWR-K20D50M_LABS_AND_CE\kinetis_50MHz_sc\build\ia /
//                    r\TWRK20D50M_Demo\..\..\..\src\projects\TWRK20D50M_Demo /
//                    \tsi\" -I "D:\Profiles\b01252\My                        /
//                    Documents\Freescale\P0\software\sample code             /
//                    cesar\TWR-K20D50M_LABS_AND_CE\kinetis_50MHz_sc\build\ia /
//                    r\TWRK20D50M_Demo\..\..\..\src\projects\TWRK20D50M_Demo /
//                    \adc_test\" -I "D:\Profiles\b01252\My                   /
//                    Documents\Freescale\P0\software\sample code             /
//                    cesar\TWR-K20D50M_LABS_AND_CE\kinetis_50MHz_sc\build\ia /
//                    r\TWRK20D50M_Demo\..\..\..\src\projects\TWRK20D50M_Demo /
//                    \angle_calculation\" -I "D:\Profiles\b01252\My          /
//                    Documents\Freescale\P0\software\sample code             /
//                    cesar\TWR-K20D50M_LABS_AND_CE\kinetis_50MHz_sc\build\ia /
//                    r\TWRK20D50M_Demo\..\..\..\src\projects\TWRK20D50M_Demo /
//                    \buzzer\" -I "D:\Profiles\b01252\My                     /
//                    Documents\Freescale\P0\software\sample code             /
//                    cesar\TWR-K20D50M_LABS_AND_CE\kinetis_50MHz_sc\build\ia /
//                    r\TWRK20D50M_Demo\..\..\..\src\projects\TWRK20D50M_Demo /
//                    \fft_test\" -I "D:\Profiles\b01252\My                   /
//                    Documents\Freescale\P0\software\sample code             /
//                    cesar\TWR-K20D50M_LABS_AND_CE\kinetis_50MHz_sc\build\ia /
//                    r\TWRK20D50M_Demo\..\..\..\src\projects\TWRK20D50M_Demo /
//                    \irda_test\" -I "D:\Profiles\b01252\My                  /
//                    Documents\Freescale\P0\software\sample code             /
//                    cesar\TWR-K20D50M_LABS_AND_CE\kinetis_50MHz_sc\build\ia /
//                    r\TWRK20D50M_Demo\..\..\..\src\projects\TWRK20D50M_Demo /
//                    \cmt_test\" -I "D:\Profiles\b01252\My                   /
//                    Documents\Freescale\P0\software\sample code             /
//                    cesar\TWR-K20D50M_LABS_AND_CE\kinetis_50MHz_sc\build\ia /
//                    r\TWRK20D50M_Demo\..\..\..\src\projects\TWRK20D50M_Demo /
//                    \protocol\" -I "D:\Profiles\b01252\My                   /
//                    Documents\Freescale\P0\software\sample code             /
//                    cesar\TWR-K20D50M_LABS_AND_CE\kinetis_50MHz_sc\build\ia /
//                    r\TWRK20D50M_Demo\..\..\..\src\projects\TWRK20D50M_Demo /
//                    \task_mgr\" -I "D:\Profiles\b01252\My                   /
//                    Documents\Freescale\P0\software\sample code             /
//                    cesar\TWR-K20D50M_LABS_AND_CE\kinetis_50MHz_sc\build\ia /
//                    r\TWRK20D50M_Demo\..\..\..\src\projects\TWRK20D50M_Demo /
//                    \TWRK20_specific\" -I "D:\Profiles\b01252\My            /
//                    Documents\Freescale\P0\software\sample code             /
//                    cesar\TWR-K20D50M_LABS_AND_CE\kinetis_50MHz_sc\build\ia /
//                    r\TWRK20D50M_Demo\..\..\..\src\projects\TWRK20D50M_Demo /
//                    \rtc\" -I "D:\Profiles\b01252\My                        /
//                    Documents\Freescale\P0\software\sample code             /
//                    cesar\TWR-K20D50M_LABS_AND_CE\kinetis_50MHz_sc\build\ia /
//                    r\TWRK20D50M_Demo\..\..\..\src\CMSIS\DSP_Lib\Lib\interm /
//                    ediateFiles\" -I "D:\Profiles\b01252\My                 /
//                    Documents\Freescale\P0\software\sample code             /
//                    cesar\TWR-K20D50M_LABS_AND_CE\kinetis_50MHz_sc\build\ia /
//                    r\TWRK20D50M_Demo\..\..\..\src\CMSIS\DSP_Lib\Include\"  /
//                    -I "D:\Profiles\b01252\My Documents\Freescale\P0\softwa /
//                    re\sample code cesar\TWR-K20D50M_LABS_AND_CE\kinetis_50 /
//                    MHz_sc\build\iar\TWRK20D50M_Demo\..\..\..\src\CMSIS\CM4 /
//                    \DeviceSupport\ARM\ARMCM4\" -I "D:\Profiles\b01252\My   /
//                    Documents\Freescale\P0\software\sample code             /
//                    cesar\TWR-K20D50M_LABS_AND_CE\kinetis_50MHz_sc\build\ia /
//                    r\TWRK20D50M_Demo\..\..\..\src\CMSIS\CM4\CoreSupport\"  /
//                    -I "D:\Profiles\b01252\My Documents\Freescale\P0\softwa /
//                    re\sample code cesar\TWR-K20D50M_LABS_AND_CE\kinetis_50 /
//                    MHz_sc\build\iar\TWRK20D50M_Demo\..\..\..\src\CMSIS\CM4 /
//                    \CoreSupportLiker Options-Library\" -I                  /
//                    "D:\Profiles\b01252\My Documents\Freescale\P0\software\ /
//                    sample code cesar\TWR-K20D50M_LABS_AND_CE\kinetis_50MHz /
//                    _sc\build\iar\TWRK20D50M_Demo\..\..\..\src\CMSIS\DSP_Li /
//                    b\Lib\intermediateFiles\arm_cortexM4_math.lib\" -I      /
//                    "D:\Profiles\b01252\My Documents\Freescale\P0\software\ /
//                    sample code cesar\TWR-K20D50M_LABS_AND_CE\kinetis_50MHz /
//                    _sc\build\iar\TWRK20D50M_Demo\..\..\..\build\" -Ol      /
//                    --use_c++_inline -I "C:\Program Files\IAR               /
//                    Systems\Embedded Workbench 6.0_5\arm\CMSIS\Include\"    /
//                    -D ARM_MATH_CM4                                         /
//    List file    =  D:\Profiles\b01252\My Documents\Freescale\P0\software\s /
//                    ample code cesar\TWR-K20D50M_LABS_AND_CE\kinetis_50MHz_ /
//                    sc\build\iar\TWRK20D50M_Demo\FLASH_128KB_PFLASH\List\cm /
//                    t_test.s                                                /
//                                                                            /
//                                                                            /
///////////////////////////////////////////////////////////////////////////////

        NAME cmt_test

        #define SHT_PROGBITS 0x1

        EXTERN enable_irq

        PUBLIC cmt_data
        PUBLIC cmt_data_count
        PUBLIC cmt_init
        PUBLIC cmt_isrv
        PUBLIC cmt_isrv_count
        PUBLIC cmt_tx_data

// D:\Profiles\b01252\My Documents\Freescale\P0\software\sample code cesar\TWR-K20D50M_LABS_AND_CE\kinetis_50MHz_sc\src\projects\TWRK20D50M_Demo\cmt_test\cmt_test.c
//    1 /*  
//    2 
//    3  carrier modulator timer test 
//    4 
//    5   
//    6 
//    7  send a signal like UART modulated
//    8  TONE space TONE et
//    9  TONE is zero   at 1200 baudios
//   10 
//   11 
//   12 CMT frequency input is from BUSCLOCK in this case 50 MHZ
//   13 
//   14 CMT IF must be in the 8MHZ range     50/8= 6.25
//   15 
//   16 
//   17 */
//   18 #include "common.h"
//   19 
//   20 
//   21 #define BUSCLOCK 50000000
//   22 #define CMT_FREQ 8000000
//   23 
//   24 

        SECTION `.bss`:DATA:REORDER:NOROOT(1)
//   25 uint16 cmt_data;
cmt_data:
        DS8 2

        SECTION `.bss`:DATA:REORDER:NOROOT(0)
//   26 char cmt_data_count;
cmt_data_count:
        DS8 1

        SECTION `.bss`:DATA:REORDER:NOROOT(0)
//   27 char cmt_isrv_count;
cmt_isrv_count:
        DS8 1
//   28 
//   29 #define CMT_PPSDIV_VAL     5  //7      CMT freq = 8.333.333
//   30 
//   31 #define CARRIER_HIGH      89  // 40KHz
//   32 #define CARRIER_LOW       89
//   33 // Not used on TIME BASE
//   34 #define CARRIER_HIGH2      104
//   35 #define CARRIER_LOW2       104
//   36 
//   37 
//   38 #define BIT_TIME        1736  // 600 Baud
//   39 
//   40 
//   41 
//   42 
//   43 #define CMT_CG1_TIME(x)   CMT_CGH1 = x>>8; CMT_CGL1 = x&0xFF;
//   44 #define CMT_CG2_TIME(x)   CMT_CGH2 = x>>8; CMT_CGL2 = x&0xFF;
//   45 
//   46 
//   47 #define CMT_MARK_TIME(x)   CMT_CMD1 = x>>8; CMT_CMD2 = x&0xFF;
//   48 #define CMT_SPACE_TIME(x)   CMT_CMD3 = x>>8; CMT_CMD4 = x&0xFF;
//   49 

        SECTION `.text`:CODE:NOROOT(1)
        THUMB
//   50 void cmt_init(void)
//   51  {
cmt_init:
        PUSH     {R7,LR}
//   52    SIM_SCGC4 |= SIM_SCGC4_CMT_MASK;
        LDR.N    R0,??DataTable2  ;; 0x40048034
        LDR      R0,[R0, #+0]
        ORRS     R0,R0,#0x4
        LDR.N    R1,??DataTable2  ;; 0x40048034
        STR      R0,[R1, #+0]
//   53   // SIM_SOPT2 |= SIM_SOPT2_CMTUARTPAD_MASK;   // Enable CMT_OUTPUT double buffer SOPT2[CMTUARTPAD]
//   54    SIM_SOPT2 |= SIM_SOPT2_PTD7PAD_MASK;
        LDR.N    R0,??DataTable2_1  ;; 0x40048004
        LDR      R0,[R0, #+0]
        ORRS     R0,R0,#0x800
        LDR.N    R1,??DataTable2_1  ;; 0x40048004
        STR      R0,[R1, #+0]
//   55    enable_irq(INT_CMT - 16);
        MOVS     R0,#+27
        BL       enable_irq
//   56   
//   57    
//   58    // Pin multilplexing configuration
//   59    
//   60    
//   61    PORTD_PCR7 &= ~PORT_PCR_MUX_MASK;  
        LDR.N    R0,??DataTable2_2  ;; 0x4004c01c
        LDR      R0,[R0, #+0]
        BICS     R0,R0,#0x700
        LDR.N    R1,??DataTable2_2  ;; 0x4004c01c
        STR      R0,[R1, #+0]
//   62    PORTD_PCR7 |= PORT_PCR_MUX(2);  // pin for   CMT_IRO
        LDR.N    R0,??DataTable2_2  ;; 0x4004c01c
        LDR      R0,[R0, #+0]
        MOV      R1,#+512
        ORRS     R0,R1,R0
        LDR.N    R1,??DataTable2_2  ;; 0x4004c01c
        STR      R0,[R1, #+0]
//   63    
//   64    CMT_PPS = CMT_PPS_PPSDIV(CMT_PPSDIV_VAL);  // acepected values from 0*15   Divider 1-16
        LDR.N    R0,??DataTable2_3  ;; 0x4006200a
        MOVS     R1,#+5
        STRB     R1,[R0, #+0]
//   65    
//   66  
//   67 // Highpulse 100 (cycles)  Low Pulse = 100 cycles   
//   68   
//   69    CMT_CGH1 = CARRIER_HIGH; 
        LDR.N    R0,??DataTable2_4  ;; 0x40062000
        MOVS     R1,#+89
        STRB     R1,[R0, #+0]
//   70    CMT_CGL1 = CARRIER_LOW;
        LDR.N    R0,??DataTable2_5  ;; 0x40062001
        MOVS     R1,#+89
        STRB     R1,[R0, #+0]
//   71    
//   72    
//   73    CMT_CGH2 = CARRIER_HIGH2; 
        LDR.N    R0,??DataTable2_6  ;; 0x40062002
        MOVS     R1,#+104
        STRB     R1,[R0, #+0]
//   74    CMT_CGL2 = CARRIER_LOW2;
        LDR.N    R0,??DataTable2_7  ;; 0x40062003
        MOVS     R1,#+104
        STRB     R1,[R0, #+0]
//   75    
//   76    CMT_OC |= (!CMT_OC_IROL_MASK | CMT_OC_CMTPOL_MASK | CMT_OC_IROPEN_MASK);
        LDR.N    R0,??DataTable2_8  ;; 0x40062004
        LDRB     R0,[R0, #+0]
        ORRS     R0,R0,#0x60
        LDR.N    R1,??DataTable2_8  ;; 0x40062004
        STRB     R0,[R1, #+0]
//   77  
//   78    CMT_MSC  = CMT_MSC_CMTDIV(0) | !CMT_MSC_FSK_MASK | CMT_MSC_EOCIE_MASK | !CMT_MSC_MCGEN_MASK;  // TIME BASE MODE
        LDR.N    R0,??DataTable2_9  ;; 0x40062005
        MOVS     R1,#+2
        STRB     R1,[R0, #+0]
//   79    
//   80  }
        POP      {R0,PC}          ;; return
//   81 
//   82 
//   83 
//   84 

        SECTION `.text`:CODE:NOROOT(1)
        THUMB
//   85 void cmt_tx_data(char ch)
//   86   {
//   87     cmt_data_count = 10; //start 8 data 1 stop
cmt_tx_data:
        LDR.N    R1,??DataTable2_10
        MOVS     R2,#+10
        STRB     R2,[R1, #+0]
//   88     cmt_data = (0x100 | ch ) << 1; // introduce STOP bit and start bit
        UXTB     R0,R0            ;; ZeroExt  R0,R0,#+24,#+24
        MOV      R1,#+256
        ORRS     R0,R1,R0
        LSLS     R0,R0,#+1
        LDR.N    R1,??DataTable2_11
        STRH     R0,[R1, #+0]
//   89     CMT_MARK_TIME(BIT_TIME);
        LDR.N    R0,??DataTable2_12  ;; 0x40062006
        MOVS     R1,#+6
        STRB     R1,[R0, #+0]
        LDR.N    R0,??DataTable2_13  ;; 0x40062007
        MOVS     R1,#+200
        STRB     R1,[R0, #+0]
//   90     CMT_SPACE_TIME(0);
        LDR.N    R0,??DataTable2_14  ;; 0x40062008
        MOVS     R1,#+0
        STRB     R1,[R0, #+0]
        LDR.N    R0,??DataTable2_15  ;; 0x40062009
        MOVS     R1,#+0
        STRB     R1,[R0, #+0]
//   91     CMT_MSC  |= CMT_MSC_MCGEN_MASK;  // enable Module and carrier generator
        LDR.N    R0,??DataTable2_9  ;; 0x40062005
        LDRB     R0,[R0, #+0]
        ORRS     R0,R0,#0x1
        LDR.N    R1,??DataTable2_9  ;; 0x40062005
        STRB     R0,[R1, #+0]
//   92   }
        BX       LR               ;; return
//   93 
//   94 

        SECTION `.text`:CODE:NOROOT(1)
        THUMB
//   95 void cmt_isrv(void)
//   96 {
//   97   (void) CMT_MSC;  // read CMT_MSC_EOCF_MASK as first pass to clear flag
cmt_isrv:
        LDR.N    R0,??DataTable2_9  ;; 0x40062005
        LDRB     R0,[R0, #+0]
//   98    cmt_isrv_count++;
        LDR.N    R1,??DataTable2_16
        LDRB     R1,[R1, #+0]
        ADDS     R1,R1,#+1
        LDR.N    R2,??DataTable2_16
        STRB     R1,[R2, #+0]
//   99    if (cmt_data_count)
        LDR.N    R1,??DataTable2_10
        LDRB     R1,[R1, #+0]
        CMP      R1,#+0
        BEQ.N    ??cmt_isrv_0
//  100   { 
//  101     if (cmt_data & 0x1)  //MSB first
        LDR.N    R0,??DataTable2_11
        LDRB     R0,[R0, #+0]
        LSLS     R0,R0,#+31
        BPL.N    ??cmt_isrv_1
//  102     {
//  103       CMT_MARK_TIME(BIT_TIME);
        LDR.N    R0,??DataTable2_12  ;; 0x40062006
        MOVS     R1,#+6
        STRB     R1,[R0, #+0]
        LDR.N    R0,??DataTable2_13  ;; 0x40062007
        MOVS     R1,#+200
        STRB     R1,[R0, #+0]
//  104       CMT_SPACE_TIME(0);
        LDR.N    R0,??DataTable2_14  ;; 0x40062008
        MOVS     R1,#+0
        STRB     R1,[R0, #+0]
        LDR.N    R0,??DataTable2_15  ;; 0x40062009
        MOVS     R1,#+0
        STRB     R1,[R0, #+0]
        B.N      ??cmt_isrv_2
//  105      }
//  106     else
//  107     {
//  108       CMT_SPACE_TIME(BIT_TIME);
??cmt_isrv_1:
        LDR.N    R0,??DataTable2_14  ;; 0x40062008
        MOVS     R1,#+6
        STRB     R1,[R0, #+0]
        LDR.N    R0,??DataTable2_15  ;; 0x40062009
        MOVS     R1,#+200
        STRB     R1,[R0, #+0]
//  109       CMT_MARK_TIME(0);
        LDR.N    R0,??DataTable2_12  ;; 0x40062006
        MOVS     R1,#+0
        STRB     R1,[R0, #+0]
        LDR.N    R0,??DataTable2_13  ;; 0x40062007
        MOVS     R1,#+0
        STRB     R1,[R0, #+0]
//  110      }  
//  111     cmt_data_count--;
??cmt_isrv_2:
        LDR.N    R0,??DataTable2_10
        LDRB     R0,[R0, #+0]
        SUBS     R0,R0,#+1
        LDR.N    R1,??DataTable2_10
        STRB     R0,[R1, #+0]
//  112     cmt_data = cmt_data>>1;
        LDR.N    R0,??DataTable2_11
        LDRH     R0,[R0, #+0]
        UXTH     R0,R0            ;; ZeroExt  R0,R0,#+16,#+16
        LSRS     R0,R0,#+1
        LDR.N    R1,??DataTable2_11
        STRH     R0,[R1, #+0]
        B.N      ??cmt_isrv_3
//  113     
//  114   }
//  115   else
//  116   {
//  117    CMT_SPACE_TIME(BIT_TIME);  // dummy write to clear CMT_MSC_EOCF_MASK
??cmt_isrv_0:
        LDR.N    R0,??DataTable2_14  ;; 0x40062008
        MOVS     R1,#+6
        STRB     R1,[R0, #+0]
        LDR.N    R0,??DataTable2_15  ;; 0x40062009
        MOVS     R1,#+200
        STRB     R1,[R0, #+0]
//  118    CMT_MSC  &= ~CMT_MSC_MCGEN_MASK;  // Disabke Module and carrier generator
        LDR.N    R0,??DataTable2_9  ;; 0x40062005
        LDRB     R0,[R0, #+0]
        ANDS     R0,R0,#0xFE
        LDR.N    R1,??DataTable2_9  ;; 0x40062005
        STRB     R0,[R1, #+0]
//  119   }
//  120   
//  121 }
??cmt_isrv_3:
        BX       LR               ;; return

        SECTION `.text`:CODE:NOROOT(2)
        SECTION_TYPE SHT_PROGBITS, 0
        DATA
??DataTable2:
        DC32     0x40048034

        SECTION `.text`:CODE:NOROOT(2)
        SECTION_TYPE SHT_PROGBITS, 0
        DATA
??DataTable2_1:
        DC32     0x40048004

        SECTION `.text`:CODE:NOROOT(2)
        SECTION_TYPE SHT_PROGBITS, 0
        DATA
??DataTable2_2:
        DC32     0x4004c01c

        SECTION `.text`:CODE:NOROOT(2)
        SECTION_TYPE SHT_PROGBITS, 0
        DATA
??DataTable2_3:
        DC32     0x4006200a

        SECTION `.text`:CODE:NOROOT(2)
        SECTION_TYPE SHT_PROGBITS, 0
        DATA
??DataTable2_4:
        DC32     0x40062000

        SECTION `.text`:CODE:NOROOT(2)
        SECTION_TYPE SHT_PROGBITS, 0
        DATA
??DataTable2_5:
        DC32     0x40062001

        SECTION `.text`:CODE:NOROOT(2)
        SECTION_TYPE SHT_PROGBITS, 0
        DATA
??DataTable2_6:
        DC32     0x40062002

        SECTION `.text`:CODE:NOROOT(2)
        SECTION_TYPE SHT_PROGBITS, 0
        DATA
??DataTable2_7:
        DC32     0x40062003

        SECTION `.text`:CODE:NOROOT(2)
        SECTION_TYPE SHT_PROGBITS, 0
        DATA
??DataTable2_8:
        DC32     0x40062004

        SECTION `.text`:CODE:NOROOT(2)
        SECTION_TYPE SHT_PROGBITS, 0
        DATA
??DataTable2_9:
        DC32     0x40062005

        SECTION `.text`:CODE:NOROOT(2)
        SECTION_TYPE SHT_PROGBITS, 0
        DATA
??DataTable2_10:
        DC32     cmt_data_count

        SECTION `.text`:CODE:NOROOT(2)
        SECTION_TYPE SHT_PROGBITS, 0
        DATA
??DataTable2_11:
        DC32     cmt_data

        SECTION `.text`:CODE:NOROOT(2)
        SECTION_TYPE SHT_PROGBITS, 0
        DATA
??DataTable2_12:
        DC32     0x40062006

        SECTION `.text`:CODE:NOROOT(2)
        SECTION_TYPE SHT_PROGBITS, 0
        DATA
??DataTable2_13:
        DC32     0x40062007

        SECTION `.text`:CODE:NOROOT(2)
        SECTION_TYPE SHT_PROGBITS, 0
        DATA
??DataTable2_14:
        DC32     0x40062008

        SECTION `.text`:CODE:NOROOT(2)
        SECTION_TYPE SHT_PROGBITS, 0
        DATA
??DataTable2_15:
        DC32     0x40062009

        SECTION `.text`:CODE:NOROOT(2)
        SECTION_TYPE SHT_PROGBITS, 0
        DATA
??DataTable2_16:
        DC32     cmt_isrv_count

        SECTION `.iar_vfe_header`:DATA:REORDER:NOALLOC:NOROOT(2)
        SECTION_TYPE SHT_PROGBITS, 0
        DATA
        DC32 0

        SECTION __DLIB_PERTHREAD:DATA:REORDER:NOROOT(0)
        SECTION_TYPE SHT_PROGBITS, 0

        SECTION __DLIB_PERTHREAD_init:DATA:REORDER:NOROOT(0)
        SECTION_TYPE SHT_PROGBITS, 0

        END
// 
//   4 bytes in section .bss
// 364 bytes in section .text
// 
// 364 bytes of CODE memory
//   4 bytes of DATA memory
//
//Errors: none
//Warnings: none
