; generated by ARM C/C++ Compiler, 4.1 [Build 894]
; commandline ArmCC [--c99 --list --split_sections --debug -c --asm --interleave -o.\obj\smpl_lcd.o --asm_dir=.\lst\ --list_dir=.\lst\ --depend=.\obj\smpl_lcd.d --cpu=Cortex-M0 --apcs=interwork -I..\inc -I..\drv -I..\bsp -I..\bsp\Cmsis -I..\bsp\Driver -I..\bsp\system -I..\lib -I..\lib\libtk -IC:\Keil\ARM\RV31\Inc -IC:\Keil\ARM\CMSIS\Include -D__MICROLIB -D__LCDDISPLAY_BTL001_H --omf_browse=.\obj\smpl_lcd.crf ..\src\Smpl_LCD.c]
                          THUMB

                          AREA ||i.ControlSegment||, CODE, READONLY, ALIGN=1

                  ControlSegment PROC
;;;75     
;;;76     void ControlSegment(bool onoff, int com, int seg)
000000  0003              MOVS     r3,r0
;;;77     {
000002  b510              PUSH     {r4,lr}
000004  4608              MOV      r0,r1
000006  4611              MOV      r1,r2
;;;78     	if(onoff==true)
000008  d002              BEQ      |L1.16|
;;;79     		DrvLCD_EnableSegment(com, seg);
00000a  f7fffffe          BL       DrvLCD_EnableSegment
;;;80     	else
;;;81     		DrvLCD_DisableSegment(com, seg);
;;;82     }
00000e  bd10              POP      {r4,pc}
                  |L1.16|
000010  f7fffffe          BL       DrvLCD_DisableSegment
000014  bd10              POP      {r4,pc}
;;;83     
                          ENDP


                          AREA ||i.char_to_int||, CODE, READONLY, ALIGN=1

                  char_to_int PROC
;;;21     
;;;22     long long char_to_int(char c)
000000  2830              CMP      r0,#0x30
;;;23     {
;;;24     	if(c=='0') return 0;
000002  d015              BEQ      |L2.48|
;;;25     	else if(c=='1') return 1;
000004  2831              CMP      r0,#0x31
000006  d015              BEQ      |L2.52|
;;;26     	else if(c=='2') return 2;
000008  2832              CMP      r0,#0x32
00000a  d015              BEQ      |L2.56|
;;;27     	else if(c=='3') return 3;
00000c  2833              CMP      r0,#0x33
00000e  d015              BEQ      |L2.60|
;;;28     	else if(c=='4') return 4;
000010  2834              CMP      r0,#0x34
000012  d015              BEQ      |L2.64|
;;;29     	else if(c=='5') return 5;
000014  2835              CMP      r0,#0x35
000016  d015              BEQ      |L2.68|
;;;30     	else if(c=='6') return 6;
000018  2836              CMP      r0,#0x36
00001a  d015              BEQ      |L2.72|
;;;31     	else if(c=='7') return 7;
00001c  2837              CMP      r0,#0x37
00001e  d015              BEQ      |L2.76|
;;;32     	else if(c=='8') return 8;
000020  2838              CMP      r0,#0x38
000022  d015              BEQ      |L2.80|
;;;33     	else if(c=='9') return 9;
000024  2839              CMP      r0,#0x39
000026  d015              BEQ      |L2.84|
;;;34     	
;;;35     	return -1;
000028  2000              MOVS     r0,#0
00002a  43c0              MVNS     r0,r0
00002c  4601              MOV      r1,r0
;;;36     }
00002e  4770              BX       lr
                  |L2.48|
000030  2000              MOVS     r0,#0                 ;24
000032  e010              B        |L2.86|
                  |L2.52|
000034  2001              MOVS     r0,#1                 ;25
000036  e00e              B        |L2.86|
                  |L2.56|
000038  2002              MOVS     r0,#2                 ;26
00003a  e00c              B        |L2.86|
                  |L2.60|
00003c  2003              MOVS     r0,#3                 ;27
00003e  e00a              B        |L2.86|
                  |L2.64|
000040  2004              MOVS     r0,#4                 ;28
000042  e008              B        |L2.86|
                  |L2.68|
000044  2005              MOVS     r0,#5                 ;29
000046  e006              B        |L2.86|
                  |L2.72|
000048  2006              MOVS     r0,#6                 ;30
00004a  e004              B        |L2.86|
                  |L2.76|
00004c  2007              MOVS     r0,#7                 ;31
00004e  e002              B        |L2.86|
                  |L2.80|
000050  2008              MOVS     r0,#8                 ;32
000052  e000              B        |L2.86|
                  |L2.84|
000054  2009              MOVS     r0,#9                 ;33
                  |L2.86|
000056  2100              MOVS     r1,#0                 ;33
000058  4770              BX       lr
;;;37     
                          ENDP


                          AREA ||i.local_atoi||, CODE, READONLY, ALIGN=1

                  local_atoi PROC
;;;37     
;;;38     long long local_atoi(char text[])
000000  b5f1              PUSH     {r0,r4-r7,lr}
;;;39     {
000002  b08a              SUB      sp,sp,#0x28
;;;40     	int len = strlen(text);
000004  980a              LDR      r0,[sp,#0x28]
000006  f7fffffe          BL       strlen
;;;41     	int len2, negflag=0;
00000a  9002              STR      r0,[sp,#8]
00000c  2000              MOVS     r0,#0
;;;42     	long long mul=len;
00000e  9003              STR      r0,[sp,#0xc]
000010  9802              LDR      r0,[sp,#8]
;;;43     	long long i=0, j=0, mul2=1;
;;;44     	long long result=0;
;;;45     
;;;46     	if( text[0] == '-') 
000012  9a0a              LDR      r2,[sp,#0x28]
000014  17c7              ASRS     r7,r0,#31             ;42
000016  4606              MOV      r6,r0                 ;42
000018  2000              MOVS     r0,#0                 ;42
00001a  9008              STR      r0,[sp,#0x20]         ;44
00001c  9009              STR      r0,[sp,#0x24]
00001e  7812              LDRB     r2,[r2,#0]
000020  2401              MOVS     r4,#1                 ;42
000022  4601              MOV      r1,r0                 ;42
000024  4605              MOV      r5,r0                 ;42
000026  2a2d              CMP      r2,#0x2d
000028  d117              BNE      |L3.90|
;;;47     	{
;;;48     		negflag = 1;
00002a  2201              MOVS     r2,#1
;;;49     		len2 = len - 1;
00002c  1e73              SUBS     r3,r6,#1
;;;50     		for(i=0;i<len2;i++)
00002e  9203              STR      r2,[sp,#0xc]
000030  e006              B        |L3.64|
                  |L3.50|
;;;51     		{
;;;52     			text[i] = text[i+1];
000032  2600              MOVS     r6,#0
000034  1c42              ADDS     r2,r0,#1
000036  4171              ADCS     r1,r1,r6
000038  9e0a              LDR      r6,[sp,#0x28]
00003a  5cb7              LDRB     r7,[r6,r2]
00003c  5437              STRB     r7,[r6,r0]
00003e  4610              MOV      r0,r2                 ;50
                  |L3.64|
000040  17de              ASRS     r6,r3,#31             ;50
000042  460a              MOV      r2,r1                 ;50
000044  1ac7              SUBS     r7,r0,r3              ;50
000046  41b2              SBCS     r2,r2,r6              ;50
000048  dbf3              BLT      |L3.50|
;;;53     		}
;;;54     		text[i] = '\0';
00004a  990a              LDR      r1,[sp,#0x28]
00004c  2200              MOVS     r2,#0
00004e  540a              STRB     r2,[r1,r0]
;;;55     		len--;
000050  9802              LDR      r0,[sp,#8]
000052  1e40              SUBS     r0,r0,#1
;;;56     		mul = len;
000054  4606              MOV      r6,r0
000056  17c7              ASRS     r7,r0,#31
000058  9002              STR      r0,[sp,#8]
                  |L3.90|
00005a  2000              MOVS     r0,#0
00005c  4601              MOV      r1,r0
;;;57     	}
;;;58     
;;;59     	for(i=0; i < len; i++)
00005e  e043              B        |L3.232|
                  |L3.96|
;;;60     	{
;;;61     		if(mul==1) mul2 = 1;
000060  2001              MOVS     r0,#1
000062  4070              EORS     r0,r0,r6
000064  4338              ORRS     r0,r0,r7
000066  d102              BNE      |L3.110|
000068  2401              MOVS     r4,#1
00006a  2500              MOVS     r5,#0
00006c  e023              B        |L3.182|
                  |L3.110|
00006e  2101              MOVS     r1,#1
000070  2000              MOVS     r0,#0
000072  1b89              SUBS     r1,r1,r6
000074  41b8              SBCS     r0,r0,r7
;;;62     		else if(mul>1)
000076  da1e              BGE      |L3.182|
000078  2000              MOVS     r0,#0
;;;63     			for(j=0; j<(mul-1); j++)
00007a  9006              STR      r0,[sp,#0x18]
00007c  1e41              SUBS     r1,r0,#1
00007e  9007              STR      r0,[sp,#0x1c]
000080  1e70              SUBS     r0,r6,#1
000082  4179              ADCS     r1,r1,r7
000084  9105              STR      r1,[sp,#0x14]
000086  9004              STR      r0,[sp,#0x10]
000088  e00e              B        |L3.168|
                  |L3.138|
00008a  220a              MOVS     r2,#0xa
00008c  2300              MOVS     r3,#0
;;;64     				mul2 *= 10;
00008e  4620              MOV      r0,r4
000090  4629              MOV      r1,r5
000092  f7fffffe          BL       __aeabi_lmul
000096  4604              MOV      r4,r0
000098  9806              LDR      r0,[sp,#0x18]         ;63
00009a  460d              MOV      r5,r1
00009c  9907              LDR      r1,[sp,#0x1c]         ;63
00009e  1c40              ADDS     r0,r0,#1              ;63
0000a0  2200              MOVS     r2,#0                 ;63
0000a2  4151              ADCS     r1,r1,r2              ;63
0000a4  9107              STR      r1,[sp,#0x1c]         ;63
0000a6  9006              STR      r0,[sp,#0x18]         ;63
                  |L3.168|
0000a8  9a04              LDR      r2,[sp,#0x10]         ;63
0000aa  9806              LDR      r0,[sp,#0x18]         ;63
0000ac  9b05              LDR      r3,[sp,#0x14]         ;63
0000ae  9907              LDR      r1,[sp,#0x1c]         ;63
0000b0  1a80              SUBS     r0,r0,r2              ;63
0000b2  4199              SBCS     r1,r1,r3              ;63
0000b4  dbe9              BLT      |L3.138|
                  |L3.182|
;;;65     		result += mul2*char_to_int(text[i]);
0000b6  990a              LDR      r1,[sp,#0x28]
0000b8  9800              LDR      r0,[sp,#0]
0000ba  5c08              LDRB     r0,[r1,r0]
0000bc  f7fffffe          BL       char_to_int
0000c0  4622              MOV      r2,r4
0000c2  462b              MOV      r3,r5
0000c4  f7fffffe          BL       __aeabi_lmul
0000c8  9a08              LDR      r2,[sp,#0x20]
0000ca  9b09              LDR      r3,[sp,#0x24]
0000cc  1880              ADDS     r0,r0,r2
0000ce  4159              ADCS     r1,r1,r3
;;;66     		mul--;
0000d0  9008              STR      r0,[sp,#0x20]
0000d2  2000              MOVS     r0,#0
0000d4  43c0              MVNS     r0,r0
0000d6  1e76              SUBS     r6,r6,#1
0000d8  4147              ADCS     r7,r7,r0
0000da  9109              STR      r1,[sp,#0x24]
0000dc  9800              LDR      r0,[sp,#0]            ;59
0000de  9901              LDR      r1,[sp,#4]            ;59
0000e0  2401              MOVS     r4,#1
0000e2  2500              MOVS     r5,#0
0000e4  1c40              ADDS     r0,r0,#1              ;59
0000e6  4169              ADCS     r1,r1,r5              ;59
                  |L3.232|
0000e8  4602              MOV      r2,r0                 ;59
0000ea  9000              STR      r0,[sp,#0]            ;59
0000ec  9802              LDR      r0,[sp,#8]            ;59
0000ee  9101              STR      r1,[sp,#4]            ;59
0000f0  17c3              ASRS     r3,r0,#31             ;59
0000f2  1a10              SUBS     r0,r2,r0              ;59
0000f4  4199              SBCS     r1,r1,r3              ;59
0000f6  dbb3              BLT      |L3.96|
;;;67     		mul2=1;
;;;68     	}
;;;69     
;;;70     	if(negflag==1)
0000f8  9803              LDR      r0,[sp,#0xc]
0000fa  2801              CMP      r0,#1
0000fc  d106              BNE      |L3.268|
;;;71     		result = 0 - result;
0000fe  9908              LDR      r1,[sp,#0x20]
000100  9a09              LDR      r2,[sp,#0x24]
000102  4249              RSBS     r1,r1,#0
000104  2000              MOVS     r0,#0
000106  4190              SBCS     r0,r0,r2
000108  9108              STR      r1,[sp,#0x20]
00010a  9009              STR      r0,[sp,#0x24]
                  |L3.268|
;;;72     	
;;;73     	return result;
00010c  9909              LDR      r1,[sp,#0x24]
00010e  9808              LDR      r0,[sp,#0x20]
;;;74     }
000110  b00b              ADD      sp,sp,#0x2c
000112  bdf0              POP      {r4-r7,pc}
;;;75     
                          ENDP


                          AREA ||i.showSlider||, CODE, READONLY, ALIGN=2

                  showSlider PROC
;;;84     #if 1
;;;85     void showSlider(uint16_t resolution)
000000  b570              PUSH     {r4-r6,lr}
;;;86     {
;;;87     	// Resolution (0 ~ 31) to LCD bar (0 ~ 11)
;;;88     
;;;89     	double average, point=12, res;
;;;90     	uint8_t lightpoint;
;;;91     
;;;92     	average = 32 / point;
000002  a142              ADR      r1,|L4.268|
;;;93     	//printf("average=%f\n", average);
;;;94     	res = (double)resolution;
000004  c930              LDM      r1!,{r4,r5}
000006  4e40              LDR      r6,|L4.264|
000008  f7fffffe          BL       __aeabi_ui2d
;;;95     	point = res / average;
00000c  4622              MOV      r2,r4
00000e  462b              MOV      r3,r5
000010  f7fffffe          BL       __aeabi_ddiv
000014  4604              MOV      r4,r0
000016  460d              MOV      r5,r1
;;;96     
;;;97     	//printf("point=%f\n", point);
;;;98     	if(point > 12)
000018  2200              MOVS     r2,#0
00001a  4633              MOV      r3,r6
00001c  f7fffffe          BL       __aeabi_cdrcmple
000020  d202              BCS      |L4.40|
;;;99     		printf("Touch key data over the resolution..\n");
000022  a03c              ADR      r0,|L4.276|
000024  f7fffffe          BL       __2printf
                  |L4.40|
;;;100    
;;;101    	lightpoint = (uint8_t)point;
000028  4620              MOV      r0,r4
00002a  4629              MOV      r1,r5
00002c  f7fffffe          BL       __aeabi_d2uiz
000030  b2c4              UXTB     r4,r0
;;;102    
;;;103    	DrvLCD_DisableSegment(3, 37);	// PL
000032  2125              MOVS     r1,#0x25
000034  2003              MOVS     r0,#3
000036  f7fffffe          BL       DrvLCD_DisableSegment
;;;104    	DrvLCD_DisableSegment(2, 37);	// P0
00003a  2125              MOVS     r1,#0x25
00003c  2002              MOVS     r0,#2
00003e  f7fffffe          BL       DrvLCD_DisableSegment
;;;105    	DrvLCD_DisableSegment(1, 37);	// P1
000042  2125              MOVS     r1,#0x25
000044  2001              MOVS     r0,#1
000046  f7fffffe          BL       DrvLCD_DisableSegment
;;;106    	DrvLCD_DisableSegment(0, 37);	// P2
00004a  2125              MOVS     r1,#0x25
00004c  2000              MOVS     r0,#0
00004e  f7fffffe          BL       DrvLCD_DisableSegment
;;;107    	DrvLCD_DisableSegment(0, 36);	// P3
000052  2124              MOVS     r1,#0x24
000054  2000              MOVS     r0,#0
000056  f7fffffe          BL       DrvLCD_DisableSegment
;;;108    	DrvLCD_DisableSegment(1, 36);	// P4
00005a  2124              MOVS     r1,#0x24
00005c  2001              MOVS     r0,#1
00005e  f7fffffe          BL       DrvLCD_DisableSegment
;;;109    	DrvLCD_DisableSegment(2, 36);	// P5
000062  2124              MOVS     r1,#0x24
000064  2002              MOVS     r0,#2
000066  f7fffffe          BL       DrvLCD_DisableSegment
;;;110    	DrvLCD_DisableSegment(3, 36);	// P6
00006a  2124              MOVS     r1,#0x24
00006c  2003              MOVS     r0,#3
00006e  f7fffffe          BL       DrvLCD_DisableSegment
;;;111    	DrvLCD_DisableSegment(3, 35);	// P7
000072  2123              MOVS     r1,#0x23
000074  2003              MOVS     r0,#3
000076  f7fffffe          BL       DrvLCD_DisableSegment
;;;112    	DrvLCD_DisableSegment(2, 35);	// P8
00007a  2123              MOVS     r1,#0x23
00007c  2002              MOVS     r0,#2
00007e  f7fffffe          BL       DrvLCD_DisableSegment
;;;113    	DrvLCD_DisableSegment(1, 35);	// P9
000082  2123              MOVS     r1,#0x23
000084  2001              MOVS     r0,#1
000086  f7fffffe          BL       DrvLCD_DisableSegment
;;;114    	DrvLCD_DisableSegment(0, 35);	// PR
00008a  2123              MOVS     r1,#0x23
00008c  2000              MOVS     r0,#0
00008e  f7fffffe          BL       DrvLCD_DisableSegment
;;;115    	
;;;116    
;;;117    	if(lightpoint==0)
000092  2c00              CMP      r4,#0
000094  d01a              BEQ      |L4.204|
;;;118    		ControlSegment(true, 3, 37);	// PL
;;;119    	else if(lightpoint==1)
000096  2c01              CMP      r4,#1
000098  d01a              BEQ      |L4.208|
;;;120    		ControlSegment(true, 2, 37);	// P0
;;;121    	else if(lightpoint==2)
00009a  2c02              CMP      r4,#2
00009c  d01e              BEQ      |L4.220|
;;;122    		ControlSegment(true, 1, 37);	// P1
;;;123    	else if(lightpoint==3)
00009e  2c03              CMP      r4,#3
0000a0  d01e              BEQ      |L4.224|
;;;124    		ControlSegment(true, 0, 37);	// P2
;;;125    	else if(lightpoint==4)
0000a2  2c04              CMP      r4,#4
0000a4  d01e              BEQ      |L4.228|
;;;126    		ControlSegment(true, 0, 36);	// P3
;;;127    	else if(lightpoint==5)
0000a6  2c05              CMP      r4,#5
0000a8  d01e              BEQ      |L4.232|
;;;128    		ControlSegment(true, 1, 36);	// P4
;;;129    	else if(lightpoint==6)
0000aa  2c06              CMP      r4,#6
0000ac  d01e              BEQ      |L4.236|
;;;130    		ControlSegment(true, 2, 36);	// P5
;;;131    	else if(lightpoint==7)
0000ae  2c07              CMP      r4,#7
0000b0  d01e              BEQ      |L4.240|
;;;132    		ControlSegment(true, 3, 36);	// P6
;;;133    	else if(lightpoint==8)
0000b2  2c08              CMP      r4,#8
0000b4  d01e              BEQ      |L4.244|
;;;134    		ControlSegment(true, 3, 35);	// P7
;;;135    	else if(lightpoint==9)
0000b6  2c09              CMP      r4,#9
0000b8  d01f              BEQ      |L4.250|
;;;136    		ControlSegment(true, 2, 35);	// P8
;;;137    	else if(lightpoint==10)
0000ba  2c0a              CMP      r4,#0xa
0000bc  d020              BEQ      |L4.256|
;;;138    		ControlSegment(true, 1, 35);	// P9
;;;139    	else if(lightpoint==11 || lightpoint==12)
0000be  2c0b              CMP      r4,#0xb
0000c0  d001              BEQ      |L4.198|
0000c2  2c0c              CMP      r4,#0xc
0000c4  d109              BNE      |L4.218|
                  |L4.198|
;;;140    		ControlSegment(true, 0, 35);	// PR
0000c6  2223              MOVS     r2,#0x23
                  |L4.200|
0000c8  2100              MOVS     r1,#0
0000ca  e003              B        |L4.212|
                  |L4.204|
0000cc  2225              MOVS     r2,#0x25              ;118
0000ce  e012              B        |L4.246|
                  |L4.208|
0000d0  2225              MOVS     r2,#0x25              ;120
0000d2  e013              B        |L4.252|
                  |L4.212|
0000d4  2001              MOVS     r0,#1                 ;118
0000d6  f7fffffe          BL       ControlSegment
                  |L4.218|
;;;141    	
;;;142    	
;;;143    }
0000da  bd70              POP      {r4-r6,pc}
                  |L4.220|
0000dc  2225              MOVS     r2,#0x25              ;122
0000de  e010              B        |L4.258|
                  |L4.224|
0000e0  2225              MOVS     r2,#0x25              ;124
0000e2  e7f1              B        |L4.200|
                  |L4.228|
0000e4  2224              MOVS     r2,#0x24              ;126
0000e6  e7ef              B        |L4.200|
                  |L4.232|
0000e8  2224              MOVS     r2,#0x24              ;128
0000ea  e00a              B        |L4.258|
                  |L4.236|
0000ec  2224              MOVS     r2,#0x24              ;130
0000ee  e005              B        |L4.252|
                  |L4.240|
0000f0  2224              MOVS     r2,#0x24              ;132
0000f2  e000              B        |L4.246|
                  |L4.244|
0000f4  2223              MOVS     r2,#0x23              ;134
                  |L4.246|
0000f6  2103              MOVS     r1,#3                 ;134
0000f8  e7ec              B        |L4.212|
                  |L4.250|
0000fa  2223              MOVS     r2,#0x23              ;136
                  |L4.252|
0000fc  2102              MOVS     r1,#2                 ;136
0000fe  e7e9              B        |L4.212|
                  |L4.256|
000100  2223              MOVS     r2,#0x23              ;138
                  |L4.258|
000102  2101              MOVS     r1,#1                 ;138
000104  e7e6              B        |L4.212|
;;;144    #else
                          ENDP

000106  0000              DCW      0x0000
                  |L4.264|
                          DCD      0x40280000
                  |L4.268|
00010c  55555555          DCFD     0x4005555555555555 ; 2.6666666666666665
000110  40055555
                  |L4.276|
000114  546f7563          DCB      "Touch key data over the resolution..\n",0
000118  68206b65
00011c  79206461
000120  7461206f
000124  76657220
000128  74686520
00012c  7265736f
000130  6c757469
000134  6f6e2e2e
000138  0a00    
00013a  00                DCB      0
00013b  00                DCB      0

                          AREA ||i.showTime||, CODE, READONLY, ALIGN=1

                  showTime PROC
;;;241    // hour: 24-hours
;;;242    void showTime(uint32_t hour, uint32_t minute)
000000  2264              MOVS     r2,#0x64
;;;243    {
;;;244    	long long time;
;;;245    	// show time
;;;246    	time = hour * 100 + minute;
000002  4350              MULS     r0,r2,r0
000004  b510              PUSH     {r4,lr}               ;243
000006  1840              ADDS     r0,r0,r1
000008  2100              MOVS     r1,#0
;;;247    
;;;248    	DrvLCD_Number(time);
00000a  f7fffffe          BL       DrvLCD_Number
;;;249    	DrvLCD_EnableSegment(3, 29);
00000e  211d              MOVS     r1,#0x1d
000010  2003              MOVS     r0,#3
000012  f7fffffe          BL       DrvLCD_EnableSegment
;;;250    }
000016  bd10              POP      {r4,pc}
;;;251    
                          ENDP


                          AREA ||i.textticker||, CODE, READONLY, ALIGN=2

                  textticker PROC
;;;189    
;;;190    void textticker(char *string, uint32_t delayus)
000000  b5f3              PUSH     {r0,r1,r4-r7,lr}
;;;191    {
000002  b085              SUB      sp,sp,#0x14
;;;192    	char showstring[7], tmpstring[7];
;;;193    	int showidx, textidx, storeshowidx, storetextidx;
;;;194    	int textlen;
;;;195    
;;;196    	strcpy(&showstring[0], "       ");
000004  a125              ADR      r1,|L6.156|
000006  4668              MOV      r0,sp
000008  f7fffffe          BL       strcpy
;;;197    	
;;;198    	textlen = strlen(string);
00000c  9805              LDR      r0,[sp,#0x14]
00000e  f7fffffe          BL       strlen
;;;199    
;;;200    	showidx = 6;
000012  2406              MOVS     r4,#6
000014  4607              MOV      r7,r0                 ;198
;;;201    	
;;;202    	for(textidx=0; textidx<textlen; textidx++)
000016  2500              MOVS     r5,#0
000018  466e              MOV      r6,sp                 ;192
00001a  e01e              B        |L6.90|
                  |L6.28|
;;;203    	{
;;;204    		// clear showstring
;;;205    		for(storetextidx=0; storetextidx<=6; storetextidx++) showstring[storetextidx] = ' ';
00001c  2000              MOVS     r0,#0
00001e  2120              MOVS     r1,#0x20
                  |L6.32|
000020  5431              STRB     r1,[r6,r0]
000022  1c40              ADDS     r0,r0,#1
000024  2806              CMP      r0,#6
000026  ddfb              BLE      |L6.32|
;;;206    		
;;;207    		storetextidx = textidx;
;;;208    		if((6-showidx) > 0)
000028  2106              MOVS     r1,#6
00002a  1b09              SUBS     r1,r1,r4
00002c  4628              MOV      r0,r5                 ;207
00002e  2900              CMP      r1,#0
000030  dd00              BLE      |L6.52|
;;;209    		{
;;;210    			storetextidx -= (6-showidx);
000032  1a68              SUBS     r0,r5,r1
                  |L6.52|
;;;211    		}
;;;212    		for(storeshowidx=showidx; storeshowidx<=6; storeshowidx++)
000034  4621              MOV      r1,r4
000036  e004              B        |L6.66|
                  |L6.56|
;;;213    		{			
;;;214    			showstring[storeshowidx] = string[storetextidx++];
000038  9a05              LDR      r2,[sp,#0x14]
00003a  5c12              LDRB     r2,[r2,r0]
00003c  5472              STRB     r2,[r6,r1]
00003e  1c40              ADDS     r0,r0,#1
000040  1c49              ADDS     r1,r1,#1              ;212
                  |L6.66|
000042  2906              CMP      r1,#6                 ;212
000044  ddf8              BLE      |L6.56|
;;;215    		}
;;;216    		if(showidx!=0)
000046  2c00              CMP      r4,#0
000048  d000              BEQ      |L6.76|
;;;217    			showidx--;
00004a  1e64              SUBS     r4,r4,#1
                  |L6.76|
;;;218    		//printf("%s \r\n", showstring);
;;;219    		DrvLCD_Write(&showstring[0]);
00004c  4668              MOV      r0,sp
00004e  f7fffffe          BL       DrvLCD_Write
;;;220    		DrvSYS_Delay(delayus);		
000052  9806              LDR      r0,[sp,#0x18]
000054  f7fffffe          BL       DrvSYS_Delay
000058  1c6d              ADDS     r5,r5,#1              ;202
                  |L6.90|
00005a  42bd              CMP      r5,r7                 ;202
00005c  dbde              BLT      |L6.28|
;;;221    		
;;;222    	}
;;;223    
;;;224    	for(showidx=0; showidx<=6; showidx++)
00005e  2400              MOVS     r4,#0
000060  ad02              ADD      r5,sp,#8              ;192
000062  2720              MOVS     r7,#0x20              ;205
                  |L6.100|
;;;225    	{
;;;226    		strcpy(tmpstring, showstring);
000064  4669              MOV      r1,sp
000066  a802              ADD      r0,sp,#8
000068  f7fffffe          BL       strcpy
;;;227    		for(storeshowidx=0; storeshowidx<=6; storeshowidx++)
00006c  2000              MOVS     r0,#0
                  |L6.110|
;;;228    		{
;;;229    			if((storeshowidx+1) <= 6)
00006e  1c41              ADDS     r1,r0,#1
000070  2906              CMP      r1,#6
000072  dc03              BGT      |L6.124|
;;;230    				showstring[storeshowidx] = tmpstring[storeshowidx+1];
000074  1829              ADDS     r1,r5,r0
000076  7849              LDRB     r1,[r1,#1]
000078  5431              STRB     r1,[r6,r0]
00007a  e000              B        |L6.126|
                  |L6.124|
;;;231    			else
;;;232    				showstring[storeshowidx] = ' ';
00007c  5437              STRB     r7,[r6,r0]
                  |L6.126|
00007e  1c40              ADDS     r0,r0,#1              ;227
000080  2806              CMP      r0,#6                 ;227
000082  ddf4              BLE      |L6.110|
;;;233    		}
;;;234    		//printf("%s \r\n", showstring);
;;;235    		DrvLCD_Write(&showstring[0]);
000084  4668              MOV      r0,sp
000086  f7fffffe          BL       DrvLCD_Write
;;;236    		DrvSYS_Delay(delayus);
00008a  9806              LDR      r0,[sp,#0x18]
00008c  f7fffffe          BL       DrvSYS_Delay
000090  1c64              ADDS     r4,r4,#1              ;224
000092  2c06              CMP      r4,#6                 ;224
000094  dde6              BLE      |L6.100|
;;;237    	}
;;;238    	
;;;239    }
000096  b007              ADD      sp,sp,#0x1c
000098  bdf0              POP      {r4-r7,pc}
;;;240    
                          ENDP

00009a  0000              DCW      0x0000
                  |L6.156|
00009c  20202020          DCB      "       ",0
0000a0  20202000

;*** Start embedded assembler ***

#line 1 "..\\src\\Smpl_LCD.c"
	AREA ||.rev16_text||, CODE, READONLY
	THUMB
	EXPORT |__asm___10_Smpl_LCD_c_e3de2c19____REV16|
#line 115 "C:\\Keil\\ARM\\CMSIS\\Include\\core_cmInstr.h"
|__asm___10_Smpl_LCD_c_e3de2c19____REV16| PROC
#line 116

 rev16 r0, r0
 bx lr
	ENDP
	AREA ||.revsh_text||, CODE, READONLY
	THUMB
	EXPORT |__asm___10_Smpl_LCD_c_e3de2c19____REVSH|
#line 130
|__asm___10_Smpl_LCD_c_e3de2c19____REVSH| PROC
#line 131

 revsh r0, r0
 bx lr
	ENDP

;*** End   embedded assembler ***
