; generated by Component: ARM Compiler 5.05 (build 41) Tool: ArmCC [4d0eb9]
; commandline ArmCC [--list --debug -c --asm --interleave -o.\obj\retarget.o --asm_dir=.\lst\ --list_dir=.\lst\ --depend=.\obj\retarget.d --cpu=Cortex-M0 --apcs=interwork -I..\..\..\Library\CMSIS\Include -I..\..\..\Library\Device\Nuvoton\Mini51Series\Include -I..\..\..\Library\StdDriver\inc -I.\StdDriver\inc -I.\CMSIS -IG:\Geek\Projects\Zulolo_F\Force\Code\Zulolo_F_Force\RTE -ID:\Keil_v5\ARM\PACK\Nuvoton\NuMicro_DFP\1.0.2\Device\Mini51\Include -ID:\Keil_v5\ARM\CMSIS\Include -I\ -D__MICROLIB --omf_browse=.\obj\retarget.crf StdDriver\src\retarget.c]
                          THUMB

                          AREA ||.text||, CODE, READONLY, ALIGN=2

                  SendChar_ToUART PROC
;;;51     
;;;52     void SendChar_ToUART(int ch)
000000  4915              LDR      r1,|L1.88|
                  |L1.2|
;;;53     {
;;;54     #ifndef DISABLE_UART
;;;55             while(UART->FSR & UART_FSR_TX_FULL_Msk);
000002  698a              LDR      r2,[r1,#0x18]
000004  0212              LSLS     r2,r2,#8
000006  d4fc              BMI      |L1.2|
;;;56             UART->THR = ch;
000008  6008              STR      r0,[r1,#0]
;;;57             if(ch == '\n'){
00000a  280a              CMP      r0,#0xa
00000c  d104              BNE      |L1.24|
                  |L1.14|
;;;58                 while(UART->FSR & UART_FSR_TX_FULL_Msk);
00000e  6988              LDR      r0,[r1,#0x18]
000010  0200              LSLS     r0,r0,#8
000012  d4fc              BMI      |L1.14|
;;;59                 UART->THR = '\r';
000014  200d              MOVS     r0,#0xd
000016  6008              STR      r0,[r1,#0]
                  |L1.24|
;;;60             }
;;;61     #endif
;;;62     }
000018  4770              BX       lr
;;;63     
                          ENDP

                  SendChar PROC
;;;70     
;;;71     void SendChar(int ch)
00001a  e7fe              B        SendChar_ToUART
;;;72     {
;;;73     #if defined(DEBUG_ENABLE_SEMIHOST)
;;;74         g_buf[g_buf_len++] = ch;
;;;75         g_buf[g_buf_len] = '\0';
;;;76         if(g_buf_len + 1 >= sizeof(g_buf) || ch == '\n' || ch == '\0')
;;;77         {
;;;78     
;;;79             /* Send the char */
;;;80     
;;;81             if(SH_DoCommand(0x04, (int)g_buf, NULL) != 0)
;;;82             {
;;;83                 g_buf_len = 0;
;;;84                 return;
;;;85             }
;;;86             else
;;;87             {
;;;88                 int i;
;;;89     
;;;90                 for(i=0;i<g_buf_len;i++)
;;;91                     SendChar_ToUART(g_buf[i]);
;;;92                 g_buf_len = 0;
;;;93             }
;;;94         }
;;;95     #else
;;;96         SendChar_ToUART(ch);
;;;97     #endif
;;;98     }
;;;99     
                          ENDP

                  GetChar PROC
;;;107    
;;;108    char GetChar(void)
00001c  480e              LDR      r0,|L1.88|
                  |L1.30|
;;;109    {
;;;110    #if defined(DEBUG_ENABLE_SEMIHOST)
;;;111    # if defined ( __CC_ARM   )
;;;112        int nRet;
;;;113        while(SH_DoCommand(0x101, 0, &nRet) != 0)
;;;114        {
;;;115            if(nRet != 0)
;;;116            {
;;;117                SH_DoCommand(0x07, 0, &nRet);
;;;118                return (char)nRet;
;;;119            }
;;;120        }
;;;121    # else
;;;122        int nRet;
;;;123        while(SH_DoCommand(0x7, 0, &nRet) != 0)  
;;;124        {
;;;125            if(nRet != 0)
;;;126                return (char)nRet;
;;;127        }
;;;128    # endif    
;;;129    #endif
;;;130    #ifndef DISABLE_UART
;;;131            while (1){
;;;132                if(!(UART->FSR & UART_FSR_RX_EMPTY_Msk))
00001e  6981              LDR      r1,[r0,#0x18]
000020  0449              LSLS     r1,r1,#17
000022  d4fc              BMI      |L1.30|
;;;133                {
;;;134                    return (UART->RBR);
000024  6800              LDR      r0,[r0,#0]
000026  b2c0              UXTB     r0,r0
;;;135                    
;;;136                }
;;;137            }
;;;138    #else
;;;139        return(0);
;;;140    #endif        
;;;141    }
000028  4770              BX       lr
;;;142    
                          ENDP

                  kbhit PROC
;;;150      */
;;;151    int kbhit(void)
00002a  480b              LDR      r0,|L1.88|
;;;152    {
;;;153    #ifndef DISABLE_UART
;;;154        return !(UART->FSR & UART_FSR_RX_EMPTY_Msk);
00002c  6980              LDR      r0,[r0,#0x18]
00002e  0440              LSLS     r0,r0,#17
000030  17c0              ASRS     r0,r0,#31
000032  1c40              ADDS     r0,r0,#1
;;;155    #else
;;;156        return(0);
;;;157    #endif
;;;158    }
000034  4770              BX       lr
;;;159    
                          ENDP

                  IsDebugFifoEmpty PROC
;;;166      */
;;;167    int IsDebugFifoEmpty(void)
000036  4808              LDR      r0,|L1.88|
;;;168    {
;;;169    #ifndef DISABLE_UART
;;;170        return (UART->FSR & UART_FSR_TE_FLAG_Msk) ? 1 : 0;
000038  6980              LDR      r0,[r0,#0x18]
00003a  00c0              LSLS     r0,r0,#3
00003c  0fc0              LSRS     r0,r0,#31
;;;171    #else
;;;172        return(1);
;;;173    #endif    
;;;174    
;;;175    }
00003e  4770              BX       lr
;;;176    
                          ENDP

                  _ttywrch PROC
;;;179    /*---------------------------------------------------------------------------------------------------------*/
;;;180    void _ttywrch(int ch)
000040  e7fe              B        SendChar_ToUART
;;;181    {
;;;182      SendChar(ch);
;;;183      return;
;;;184    }
;;;185    
                          ENDP

                  fputc PROC
;;;186    int fputc(int ch, FILE *f)
000042  b500              PUSH     {lr}
;;;187    {
000044  4603              MOV      r3,r0
000046  f7fffffe          BL       SendChar_ToUART
;;;188      SendChar(ch);
;;;189      return ch;
00004a  4618              MOV      r0,r3
;;;190    }
00004c  bd00              POP      {pc}
;;;191    
                          ENDP

                  fgetc PROC
;;;192    int fgetc(FILE *f) {
00004e  e7fe              B        GetChar
;;;193       return (GetChar());
;;;194    }
;;;195    
                          ENDP

                  ferror PROC
;;;196    
;;;197    int ferror(FILE *f) {
000050  2000              MOVS     r0,#0
;;;198      return EOF;
000052  43c0              MVNS     r0,r0
;;;199    }
000054  4770              BX       lr
;;;200    
                          ENDP

000056  0000              DCW      0x0000
                  |L1.88|
                          DCD      0x40050000

                          AREA ||.data||, DATA, ALIGN=2

                  __stdout
                          DCD      0x00000000

                          AREA ||area_number.5||, DATA, ALIGN=2

                          EXPORTAS ||area_number.5||, ||.data||
                  __stdin
                          DCD      0x00000000

;*** Start embedded assembler ***

#line 1 "StdDriver\\src\\retarget.c"
	AREA ||.rev16_text||, CODE
	THUMB
	EXPORT |__asm___10_retarget_c_871f546e____REV16|
#line 118 ".\\CMSIS\\core_cmInstr.h"
|__asm___10_retarget_c_871f546e____REV16| PROC
#line 119

 rev16 r0, r0
 bx lr
	ENDP
	AREA ||.revsh_text||, CODE
	THUMB
	EXPORT |__asm___10_retarget_c_871f546e____REVSH|
#line 132
|__asm___10_retarget_c_871f546e____REVSH| PROC
#line 133

 revsh r0, r0
 bx lr
	ENDP

;*** End   embedded assembler ***
