📄 lcddummy.txt
字号:
|L3.56|
DCD GUI_Context
AREA ||i.LCD_L0_DrawVLine||, CODE, READONLY, ALIGN=2
LCD_L0_DrawVLine PROC
;;;495 */
;;;496 void LCD_L0_DrawVLine(int x,int y0,int y1)
000000 e92d41f0 PUSH {r4-r8,lr}
;;;497 {
;;;498 if (GUI_Context.DrawMode&LCD_DRAWMODE_XOR)
000004 4e0c LDR r6,|L4.56|
000006 4607 MOV r7,r0 ;497
000008 7b30 LDRB r0,[r6,#0xc] ; GUI_Context
00000a 460c MOV r4,r1 ;497
00000c 4615 MOV r5,r2 ;497
00000e 07c0 LSLS r0,r0,#31
000010 d00f BEQ |L4.50|
000012 e004 B |L4.30|
|L4.20|
;;;499 {
;;;500 for(;y0<=y1;y0++)
;;;501 {
;;;502 LCD_L0_XorPixel(x,y0);
000014 4621 MOV r1,r4
000016 4638 MOV r0,r7
000018 f7fffffe BL LCD_L0_XorPixel
00001c 1c64 ADDS r4,r4,#1 ;500
|L4.30|
00001e 42ac CMP r4,r5 ;500
000020 ddf8 BLE |L4.20|
|L4.34|
;;;503 }
;;;504 }
;;;505 else
;;;506 {
;;;507 for(;y0<=y1;y0++)
;;;508 {
;;;509 LCD_L0_SetPixelIndex(x,y0,LCD_COLORINDEX);
;;;510 }
;;;511 }
;;;512 }
000022 e8bd81f0 POP {r4-r8,pc}
|L4.38|
000026 8872 LDRH r2,[r6,#2] ;509 ; GUI_Context
000028 4621 MOV r1,r4 ;509
00002a 4638 MOV r0,r7 ;509
00002c f7fffffe BL LCD_L0_SetPixelIndex
000030 1c64 ADDS r4,r4,#1 ;507
|L4.50|
000032 42ac CMP r4,r5 ;507
000034 ddf7 BLE |L4.38|
000036 e7f4 B |L4.34|
;;;513
ENDP
|L4.56|
DCD GUI_Context
AREA ||i.LCD_L0_FillRect||, CODE, READONLY, ALIGN=1
LCD_L0_FillRect PROC
;;;517 */
;;;518 void LCD_L0_FillRect(int x0,int y0,int x1,int y1)
000000 e92d41f0 PUSH {r4-r8,lr}
;;;519 {
000004 4606 MOV r6,r0
000006 460c MOV r4,r1
000008 4617 MOV r7,r2
00000a 461d MOV r5,r3
;;;520 for(;y0<=y1;y0++)
00000c e005 B |L5.26|
|L5.14|
;;;521 {
;;;522 LCD_L0_DrawHLine(x0,y0,x1);
00000e 463a MOV r2,r7
000010 4621 MOV r1,r4
000012 4630 MOV r0,r6
000014 f7fffffe BL LCD_L0_DrawHLine
000018 1c64 ADDS r4,r4,#1 ;520
|L5.26|
00001a 42ac CMP r4,r5 ;520
00001c ddf7 BLE |L5.14|
;;;523 }
;;;524 }
00001e e8bd81f0 POP {r4-r8,pc}
;;;525
ENDP
AREA ||i.LCD_L0_GetPixelIndex||, CODE, READONLY, ALIGN=1
LCD_L0_GetPixelIndex PROC
;;;450 */
;;;451 unsigned int LCD_L0_GetPixelIndex(int x, int y)
000000 b510 PUSH {r4,lr}
;;;452 {
;;;453 LCD_PIXELINDEX PixelIndex;
;;;454 LCD_SetCursor(x,y);
000002 b289 UXTH r1,r1
000004 b280 UXTH r0,r0
000006 f7fffffe BL LCD_SetCursor
;;;455 PixelIndex=LCD_ReadRAM();
00000a e8bd4010 POP {r4,lr}
00000e f7ffbffe B.W LCD_ReadRAM
;;;456 //PixelIndex=LcdBuf[y*240+x];
;;;457 return PixelIndex;
;;;458 }
;;;459
ENDP
AREA ||i.LCD_L0_Init||, CODE, READONLY, ALIGN=1
LCD_L0_Init PROC
;;;603 */
;;;604 int LCD_L0_Init(void)
000000 b510 PUSH {r4,lr}
;;;605 {
;;;606 LCD_INIT_CONTROLLER();
000002 f7fffffe BL STM3210E_LCD_Init
;;;607 return 0;
000006 2000 MOVS r0,#0
;;;608 }
000008 bd10 POP {r4,pc}
;;;609
ENDP
AREA ||i.LCD_L0_Off||, CODE, READONLY, ALIGN=1
LCD_L0_Off PROC
;;;589
;;;590 void LCD_Off (void)
000000 4770 BX lr
;;;591 {
;;;592 #ifdef LCD_OFF
;;;593 LCD_OFF();
;;;594 #endif
;;;595 }
;;;596
ENDP
AREA ||i.LCD_L0_On||, CODE, READONLY, ALIGN=1
LCD_L0_On PROC
;;;582 */
;;;583 void LCD_On (void)
000000 4770 BX lr
;;;584 {
;;;585 #ifdef LCD_ON
;;;586 LCD_ON();
;;;587 #endif
;;;588 }
;;;589
ENDP
AREA ||i.LCD_L0_SetLUTEntry||, CODE, READONLY, ALIGN=1
LCD_L0_SetLUTEntry PROC
;;;613 */
;;;614 void LCD_L0_SetLUTEntry(U8 Pos, LCD_COLOR Color)
000000 4770 BX lr
;;;615 {
;;;616 GUI_USE_PARA(Pos);
;;;617 GUI_USE_PARA(Color);
;;;618 }
;;;619
ENDP
AREA ||i.LCD_L0_SetOrg||, CODE, READONLY, ALIGN=1
LCD_L0_SetOrg PROC
;;;572 */
;;;573 void LCD_L0_SetOrg(int x,int y)
000000 4770 BX lr
;;;574 {
;;;575 GUI_USE_PARA(x);
;;;576 GUI_USE_PARA(y);
;;;577 }
;;;578
ENDP
AREA ||i.LCD_L0_SetPixelIndex||, CODE, READONLY, ALIGN=1
LCD_L0_SetPixelIndex PROC
;;;433 */
;;;434 void LCD_L0_SetPixelIndex(int x,int y,int PixelIndex)
000000 b510 PUSH {r4,lr}
;;;435 {
000002 4614 MOV r4,r2
;;;436 LCD_SetCursor(x,y);
000004 b289 UXTH r1,r1
000006 b280 UXTH r0,r0
000008 f7fffffe BL LCD_SetCursor
;;;437 LCD_WriteRAM_Prepare();
00000c f7fffffe BL LCD_WriteRAM_Prepare
;;;438 LCD_WriteRAM(PixelIndex);
000010 b2a0 UXTH r0,r4
000012 e8bd4010 POP {r4,lr}
000016 f7ffbffe B.W LCD_WriteRAM
;;;439 //LcdBuf[y*240+x]=PixelIndex;
;;;440 }
;;;441
ENDP
AREA ||i.LCD_L0_XorPixel||, CODE, READONLY, ALIGN=1
LCD_L0_XorPixel PROC
;;;463 */
;;;464 void LCD_L0_XorPixel(int x, int y)
000000 b570 PUSH {r4-r6,lr}
;;;465 {
000002 4604 MOV r4,r0
000004 460d MOV r5,r1
;;;466 LCD_PIXELINDEX PixelIndex = LCD_L0_GetPixelIndex(x,y);
000006 f7fffffe BL LCD_L0_GetPixelIndex
00000a b280 UXTH r0,r0
;;;467 LCD_L0_SetPixelIndex(x,y,LCD_NUM_COLORS-PixelIndex-1);
00000c f64f71ff MOV r1,#0xffff
000010 1a0a SUBS r2,r1,r0
000012 4629 MOV r1,r5
000014 4620 MOV r0,r4
000016 e8bd4070 POP {r4-r6,lr}
00001a f7ffbffe B.W LCD_L0_SetPixelIndex
;;;468 }
;;;469
ENDP
AREA ||i._DrawBitLine1BPP||, CODE, READONLY, ALIGN=2
_DrawBitLine1BPP PROC
;;;111 */
;;;112 static void _DrawBitLine1BPP(int x,int y,U8 const GUI_UNI_PTR *p,int Diff,int xsize,const LCD_PIXELINDEX*pTrans)
000000 e92d5ff0 PUSH {r4-r12,lr}
;;;113 {
000004 468b MOV r11,r1
;;;114 LCD_PIXELINDEX Index0 = *(pTrans+0);
000006 e9dd710a LDRD r7,r1,[sp,#0x28]
;;;115 LCD_PIXELINDEX Index1 = *(pTrans+1);
;;;116 x += Diff;
00000a 18c6 ADDS r6,r0,r3
;;;117 switch(GUI_Context.DrawMode&(LCD_DRAWMODE_TRANS|LCD_DRAWMODE_XOR))
00000c 482a LDR r0,|L14.184|
00000e f8b18000 LDRH r8,[r1,#0] ;114
000012 f8b19002 LDRH r9,[r1,#2] ;115
000016 7b00 LDRB r0,[r0,#0xc] ; GUI_Context
;;;118 {
;;;119 case 0:
;;;120 do {
;;;121 LCD_L0_SetPixelIndex(x++,y,(*p&(0x80>>Diff))?Index1:Index0);
000018 2180 MOVS r1,#0x80
00001a 4615 MOV r5,r2 ;113
00001c 461c MOV r4,r3 ;113
00001e f0100003 ANDS r0,r0,#3 ;117
000022 d005 BEQ |L14.48|
000024 2801 CMP r0,#1 ;117
000026 d02c BEQ |L14.130|
000028 2802 CMP r0,#2 ;117
00002a d115 BNE |L14.88|
00002c 4688 MOV r8,r1
;;;122 if(++Diff == 8)
;;;123 {
;;;124 Diff = 0;
;;;125 p++;
;;;126 }
;;;127 }while(--xsize);
;;;128 break;
;;;129 case LCD_DRAWMODE_TRANS:
;;;130 do{
00002e e015 B |L14.92|
|L14.48|
000030 468a MOV r10,r1 ;121
|L14.50|
000032 7828 LDRB r0,[r5,#0] ;121
000034 fa2af104 LSR r1,r10,r4 ;121
000038 464a MOV r2,r9 ;121
00003a 4208 TST r0,r1 ;121
00003c d100 BNE |L14.64|
00003e 4642 MOV r2,r8 ;121
|L14.64|
000040 4630 MOV r0,r6 ;121
000042 1c76 ADDS r6,r6,#1 ;121
000044 4659 MOV r1,r11 ;121
000046 f7fffffe BL LCD_L0_SetPixelIndex
00004a 1c64 ADDS r4,r4,#1 ;122
00004c 2c08 CMP r4,#8 ;122
00004e d101 BNE |L14.84|
000050 2400 MOVS r4,#0 ;124
000052 1c6d ADDS r5,r5,#1 ;125
|L14.84|
000054 1e7f SUBS r7,r7,#1 ;127
000056 d1ec BNE |L14.50|
|L14.88|
;;;131 if(*p & (0x80 >> Diff))
;;;132 LCD_L0_SetPixelIndex(x,y,Index1);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -