📄 lcd_app.txt
字号:
0005c8 2a00000e BCS |L1.1544|
0005cc e3510008 CMP r1,#8
0005d0 aa000005 BGE |L1.1516|
;;;295 {
;;;296 tempX = 0;
;;;297 if((MAX_Y - tempY)<32)return 1;
0005d4 e2651030 RSB r1,r5,#0x30
0005d8 e3510020 CMP r1,#0x20
0005dc e3a04000 MOV r4,#0 ;296
0005e0 ba00000e BLT |L1.1568|
;;;298 else tempY += 16;
0005e4 e2851010 ADD r1,r5,#0x10
0005e8 e3c15801 BIC r5,r1,#0x10000
|L1.1516|
;;;299 }
;;;300 Dis_Ascii_16(tempX,tempY,temp);
0005ec e20020ff AND r2,r0,#0xff
|L1.1520|
0005f0 e1a01005 MOV r1,r5 ;288
0005f4 e1a00004 MOV r0,r4 ;288
0005f8 ebfffffe BL Dis_Ascii_16
0005fc e2866001 ADD r6,r6,#1 ;289
000600 e2840008 ADD r0,r4,#8 ;290
000604 ea000013 B |L1.1624|
|L1.1544|
;;;301 str ++;
;;;302 tempX += 8;
;;;303 }
;;;304 else
;;;305 {
;;;306 if((MAX_X - tempX)<16)
000608 e3510010 CMP r1,#0x10
00060c aa000008 BGE |L1.1588|
;;;307 {
;;;308 tempX = 0;
;;;309 if((MAX_Y - tempY)<32)return 1;
000610 e2651030 RSB r1,r5,#0x30
000614 e3510020 CMP r1,#0x20
000618 e3a04000 MOV r4,#0 ;308
00061c aa000002 BGE |L1.1580|
|L1.1568|
000620 e3a00001 MOV r0,#1
|L1.1572|
000624 e8bd40f8 POP {r3-r7,lr}
;;;310 else tempY += 16;
;;;311 }
;;;312 temp += *(++str)<<8;
;;;313 Dis_GBK16(tempX,tempY,(uint8 *)(&temp));
;;;314 str ++;
;;;315 tempX += 16;
;;;316 }
;;;317 }
;;;318 return 0;
;;;319 }
000628 e12fff1e BX lr
|L1.1580|
00062c e2851010 ADD r1,r5,#0x10 ;310
000630 e3c15801 BIC r5,r1,#0x10000 ;310
|L1.1588|
000634 e5f61001 LDRB r1,[r6,#1]! ;312
000638 e28d2000 ADD r2,sp,#0 ;313
00063c e0800401 ADD r0,r0,r1,LSL #8 ;312
000640 e58d0000 STR r0,[sp,#0] ;312
000644 e1a01005 MOV r1,r5 ;313
000648 e1a00004 MOV r0,r4 ;313
00064c ebfffffe BL Dis_GBK16
000650 e2866001 ADD r6,r6,#1 ;314
000654 e2840010 ADD r0,r4,#0x10 ;315
|L1.1624|
000658 e3c04801 BIC r4,r0,#0x10000 ;302
|L1.1628|
00065c e5d60000 LDRB r0,[r6,#0] ;262
000660 e3500000 CMP r0,#0 ;262
000664 e58d0000 STR r0,[sp,#0] ;262
000668 1affffb4 BNE |L1.1344|
00066c eaffffec B |L1.1572|
;;;320
ENDP
LCD_print16 PROC
;;;321 uint8 LCD_print16(uint16 x,uint16 y,uint8 *str)
;;;322 {
000670 e92d4070 PUSH {r4-r6,lr}
000674 e1a06002 MOV r6,r2
;;;323 uint16 tempX = x,tempY = y;
000678 e1a04000 MOV r4,r0
00067c e1a05001 MOV r5,r1
;;;324 while(*str)
000680 ea000041 B |L1.1932|
|L1.1668|
;;;325 {
;;;326 if(*str == '\n')
000684 e352000a CMP r2,#0xa
000688 1a00000f BNE |L1.1740|
;;;327 {
;;;328 if((MAX_X - tempX)<8)
00068c e2640054 RSB r0,r4,#0x54
000690 e3500008 CMP r0,#8
000694 aa000007 BGE |L1.1720|
;;;329 {
;;;330 tempX = 0;
;;;331 if((MAX_Y - tempY)<32)return 1;
000698 e2650030 RSB r0,r5,#0x30
00069c e3500020 CMP r0,#0x20
0006a0 e3a04000 MOV r4,#0 ;330
0006a4 ba00002c BLT |L1.1884|
|L1.1704|
;;;332 else tempY += 16;
0006a8 e2850010 ADD r0,r5,#0x10
0006ac e3c05801 BIC r5,r0,#0x10000
;;;333 }
;;;334 else if((MAX_Y - tempY)<32)return 1;
;;;335 else
;;;336 {
;;;337 tempX = 0;
;;;338 tempY += 16;
;;;339 }
;;;340 str ++;
0006b0 e2866001 ADD r6,r6,#1
0006b4 ea000034 B |L1.1932|
|L1.1720|
0006b8 e2650030 RSB r0,r5,#0x30 ;334
0006bc e3500020 CMP r0,#0x20 ;334
0006c0 a3a04000 MOVGE r4,#0 ;337
0006c4 aafffff7 BGE |L1.1704|
0006c8 ea000023 B |L1.1884|
|L1.1740|
;;;341 }
;;;342 else if(*str<0x20)
0006cc e3520020 CMP r2,#0x20
0006d0 2a00000a BCS |L1.1792|
;;;343 {
;;;344 if((MAX_X - tempX)<8)
0006d4 e2640054 RSB r0,r4,#0x54
0006d8 e3500008 CMP r0,#8
0006dc aa000005 BGE |L1.1784|
;;;345 {
;;;346 tempX = 0;
;;;347 if((MAX_Y - tempY)<32)return 1;
0006e0 e2650030 RSB r0,r5,#0x30
0006e4 e3500020 CMP r0,#0x20
0006e8 e3a04000 MOV r4,#0 ;346
0006ec ba00001a BLT |L1.1884|
;;;348 else tempY += 16;
0006f0 e2850010 ADD r0,r5,#0x10
0006f4 e3c05801 BIC r5,r0,#0x10000
|L1.1784|
;;;349 }
;;;350 Dis_Ascii_16(tempX,tempY,0x20);
0006f8 e3a02020 MOV r2,#0x20
;;;351 str ++;
;;;352 tempX += 8;
0006fc ea00000a B |L1.1836|
|L1.1792|
;;;353 }
;;;354 else if(*str<0x80)
000700 e3520080 CMP r2,#0x80
;;;355 {
;;;356 if((MAX_X - tempX)<8)
000704 e2640054 RSB r0,r4,#0x54
000708 2a00000d BCS |L1.1860|
00070c e3500008 CMP r0,#8
000710 aa000005 BGE |L1.1836|
;;;357 {
;;;358 tempX = 0;
;;;359 if((MAX_Y - tempY)<32)return 1;
000714 e2650030 RSB r0,r5,#0x30
000718 e3500020 CMP r0,#0x20
00071c e3a04000 MOV r4,#0 ;358
000720 ba00000d BLT |L1.1884|
;;;360 else tempY += 16;
000724 e2850010 ADD r0,r5,#0x10
000728 e3c05801 BIC r5,r0,#0x10000
|L1.1836|
;;;361 }
;;;362 Dis_Ascii_16(tempX,tempY,*str);
00072c e1a01005 MOV r1,r5
000730 e1a00004 MOV r0,r4
000734 ebfffffe BL Dis_Ascii_16
;;;363 str ++;
000738 e2866001 ADD r6,r6,#1
;;;364 tempX += 8;
00073c e2840008 ADD r0,r4,#8
000740 ea000010 B |L1.1928|
|L1.1860|
;;;365 }
;;;366 else
;;;367 {
;;;368 if((MAX_X - tempX)<16)
000744 e3500010 CMP r0,#0x10
000748 aa000008 BGE |L1.1904|
;;;369 {
;;;370 tempX = 0;
;;;371 if((MAX_Y - tempY)<32)return 1;
00074c e2650030 RSB r0,r5,#0x30
000750 e3500020 CMP r0,#0x20
000754 e3a04000 MOV r4,#0 ;370
000758 aa000002 BGE |L1.1896|
|L1.1884|
00075c e3a00001 MOV r0,#1
|L1.1888|
000760 e8bd4070 POP {r4-r6,lr}
;;;372 else tempY += 16;
;;;373 }
;;;374 Dis_GBK16(tempX,tempY,str);
;;;375 str += 2;
;;;376 tempX += 16;
;;;377 }
;;;378 }
;;;379 return 0;
;;;380 }
000764 e12fff1e BX lr
|L1.1896|
000768 e2850010 ADD r0,r5,#0x10 ;372
00076c e3c05801 BIC r5,r0,#0x10000 ;372
|L1.1904|
000770 e1a02006 MOV r2,r6 ;374
000774 e1a01005 MOV r1,r5 ;374
000778 e1a00004 MOV r0,r4 ;374
00077c ebfffffe BL Dis_GBK16
000780 e2866002 ADD r6,r6,#2 ;375
000784 e2840010 ADD r0,r4,#0x10 ;376
|L1.1928|
000788 e3c04801 BIC r4,r0,#0x10000 ;364
|L1.1932|
00078c e5d62000 LDRB r2,[r6,#0] ;324
000790 e3520000 CMP r2,#0 ;324
000794 1affffba BNE |L1.1668|
000798 e3a00000 MOV r0,#0 ;379
00079c eaffffef B |L1.1888|
;;;381
ENDP
LCD_print_unicode12 PROC
;;;382 uint8 LCD_print_unicode12(uint16 x,uint16 y,uint16 *str)
;;;383 {
0007a0 e92d40f8 PUSH {r3-r7,lr}
0007a4 e1a06002 MOV r6,r2
;;;384 uint16 tempX = x,tempY = y;
0007a8 e1a04000 MOV r4,r0
0007ac e1a05001 MOV r5,r1
;;;385 uint16 temp;
;;;386 while(*str)
0007b0 ea00005b B |L1.2340|
|L1.1972|
;;;387 {
;;;388 if(*str == '\n')
0007b4 e350000a CMP r0,#0xa
0007b8 1a00000f BNE |L1.2044|
;;;389 {
;;;390 if((MAX_X - tempX)<6)
0007bc e2640054 RSB r0,r4,#0x54
0007c0 e3500006 CMP r0,#6
0007c4 aa000007 BGE |L1.2024|
;;;391 {
;;;392 tempX = 0;
;;;393 if((MAX_Y - tempY)<12)return 1;
0007c8 e2650030 RSB r0,r5,#0x30
0007cc e350000c CMP r0,#0xc
0007d0 e3a04000 MOV r4,#0 ;392
0007d4 ba000040 BLT |L1.2268|
|L1.2008|
;;;394 else tempY += 12;
0007d8 e285000c ADD r0,r5,#0xc
0007dc e3c05801 BIC r5,r0,#0x10000
;;;395 }
;;;396 else if((MAX_Y - tempY)<24)return 1;
;;;397 else
;;;398 {
;;;399 tempX = 0;
;;;400 tempY += 12;
;;;401 }
;;;402 str ++;
0007e0 e2866002 ADD r6,r6,#2
0007e4 ea00004e B |L1.2340|
|L1.2024|
0007e8 e2650030 RSB r0,r5,#0x30 ;396
0007ec e3500018 CMP r0,#0x18 ;396
0007f0 a3a04000 MOVGE r4,#0 ;399
0007f4 aafffff7 BGE |L1.2008|
0007f8 ea000037 B |L1.2268|
|L1.2044|
;;;403 }
;;;404 else if(*str<0x20)
0007fc e3500020 CMP r0,#0x20
000800 2a00000a BCS |L1.2096|
;;;405 {
;;;406 if((MAX_X - tempX)<6)
000804 e2640054 RSB r0,r4,#0x54
000808 e3500006 CMP r0,#6
00080c aa000005 BGE |L1.2088|
;;;407 {
;;;408 tempX = 0;
;;;409 if((MAX_Y - tempY)<24)return 1;
000810 e2650030 RSB r0,r5,#0x30
000814 e3500018 CMP r0,#0x18
000818 e3a04000 MOV r4,#0 ;408
00081c ba00002e BLT |L1.2268|
;;;410 else tempY += 12;
000820 e285000c ADD r0,r5,#0xc
000824 e3c05801 BIC r5,r0,#0x10000
|L1.2088|
;;;411 }
;;;412 Dis_Ascii_12(tempX,tempY,0x20);
000828 e3a02020 MOV r2,#0x20
;;;413 str ++;
;;;414 tempX += 6;
00082c ea00000b B |L1.2144|
|L1.2096|
;;;415
;;;416 }
;;;417 else if(*str<0x80)
000830 e3500080 CMP r0,#0x80
000834 2a00000f BCS |L1.2168|
;;;418 {
;;;419 if((MAX_X - tempX)<6)
000838 e2641054 RSB r1,r4,#0x54
00083c e3510006 CMP r1,#6
000840 aa000005 BGE |L1.2140|
;;;420 {
;;;421 tempX = 0;
;;;422 if((MAX_Y - tempY)<24)return 1;
000844 e2651030 RSB r1,r5,#0x30
000848 e3510018 CMP r1,#0x18
00084c e3a04000 MOV r4,#0 ;421
000850 ba000021 BLT |L1.2268|
;;;423 else tempY += 12;
000854 e285100c ADD r1,r5,#0xc
000858 e3c15801 BIC r5,r1,#0x10000
|L1.2140|
;;;424 }
;;;425 Dis_Ascii_12(tempX,tempY,*str);
00085c e20020ff AND r2,r0,#0xff
|L1.2144|
000860 e1a01005 MOV r1,r5 ;412
000864 e1a00004 MOV r0,r4 ;412
000868 ebfffffe BL Dis_Ascii_12
00086c e2866002 ADD r6,r6,#2 ;413
000870 e2840006 ADD r0,r4,#6 ;414
000874 ea000021 B |L1.2304|
|L1.2168|
;;;426 str ++;
;;;427 tempX += 6;
;;;428 }
;;;429 else if(*str<0x4e00)
000878 e3500c4e CMP r0,#0x4e00
00087c 3a000021 BCC |L1.2312|
;;;430 {
;;;431 if((MAX_X - tempX)<12)
;;;432 {
;;;433 tempX = 0;
;;;434 if((MAX_Y - tempY)<24)return 1;
;;;435 else tempY += 12;
;;;436 }
;;;437 Dis_GBK12(tempX,tempY,"■");
;;;438 str ++;
;;;439 tempX += 12;
;;;440
;;;441 }
;;;442 else if(*str<0x9fa6)
000880 e59f1248 LDR r1,|L1.2768|
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -