📄 lcddummy.txt
字号:
;;;133 x++;
;;;134 if(++Diff== 8)
;;;135 {
;;;136 Diff = 0;
;;;137 p++;
;;;138 }
;;;139 }while(--xsize);
;;;140 break;
;;;141 case LCD_DRAWMODE_XOR:
;;;142 do {
;;;143 if(*p&(0x80>>Diff))
;;;144 {
;;;145 int Pixel=LCD_L0_GetPixelIndex(x, y);
;;;146 LCD_L0_SetPixelIndex(x, y,LCD_NUM_COLORS-1-Pixel);
;;;147 }
;;;148 x++;
;;;149 if(++Diff == 8)
;;;150 {
;;;151 Diff = 0;
;;;152 p++;
;;;153 }
;;;154 }while(--xsize);
;;;155 break;
;;;156 }
;;;157 }
000058 e8bd9ff0 POP {r4-r12,pc}
|L14.92|
00005c 7828 LDRB r0,[r5,#0] ;131
00005e fa28f104 LSR r1,r8,r4 ;131
000062 4208 TST r0,r1 ;131
000064 d004 BEQ |L14.112|
000066 464a MOV r2,r9 ;132
000068 4659 MOV r1,r11 ;132
00006a 4630 MOV r0,r6 ;132
00006c f7fffffe BL LCD_L0_SetPixelIndex
|L14.112|
000070 1c76 ADDS r6,r6,#1 ;133
000072 1c64 ADDS r4,r4,#1 ;134
000074 2c08 CMP r4,#8 ;134
000076 d101 BNE |L14.124|
000078 2400 MOVS r4,#0 ;136
00007a 1c6d ADDS r5,r5,#1 ;137
|L14.124|
00007c 1e7f SUBS r7,r7,#1 ;139
00007e d1ed BNE |L14.92|
000080 e7ea B |L14.88|
|L14.130|
000082 4688 MOV r8,r1 ;121
000084 f64f79ff MOV r9,#0xffff ;146
|L14.136|
000088 7828 LDRB r0,[r5,#0] ;143
00008a fa28f104 LSR r1,r8,r4 ;143
00008e 4208 TST r0,r1 ;143
000090 d009 BEQ |L14.166|
000092 4659 MOV r1,r11 ;145
000094 4630 MOV r0,r6 ;145
000096 f7fffffe BL LCD_L0_GetPixelIndex
00009a eba90200 SUB r2,r9,r0 ;146
00009e 4659 MOV r1,r11 ;146
0000a0 4630 MOV r0,r6 ;146
0000a2 f7fffffe BL LCD_L0_SetPixelIndex
|L14.166|
0000a6 1c76 ADDS r6,r6,#1 ;148
0000a8 1c64 ADDS r4,r4,#1 ;149
0000aa 2c08 CMP r4,#8 ;149
0000ac d101 BNE |L14.178|
0000ae 2400 MOVS r4,#0 ;151
0000b0 1c6d ADDS r5,r5,#1 ;152
|L14.178|
0000b2 1e7f SUBS r7,r7,#1 ;154
0000b4 d1e8 BNE |L14.136|
0000b6 e7cf B |L14.88|
;;;158
ENDP
|L14.184|
DCD GUI_Context
AREA ||i._DrawBitLine2BPP||, CODE, READONLY, ALIGN=2
_DrawBitLine2BPP PROC
;;;163 #if (LCD_MAX_LOG_COLORS > 2)
;;;164 static void _DrawBitLine2BPP(int x,int y,U8 const GUI_UNI_PTR * p,int Diff,int xsize,const LCD_PIXELINDEX *pTrans)
000000 e92d5ff0 PUSH {r4-r12,lr}
;;;165 {
;;;166 LCD_PIXELINDEX Pixels = *p;
;;;167 int CurrentPixel = Diff;
;;;168 x += Diff;
000004 18c5 ADDS r5,r0,r3
;;;169 switch(GUI_Context.DrawMode&(LCD_DRAWMODE_TRANS|LCD_DRAWMODE_XOR))
000006 4844 LDR r0,|L15.280|
000008 7817 LDRB r7,[r2,#0] ;166
00000a 7b00 LDRB r0,[r0,#0xc] ; GUI_Context
00000c 468b MOV r11,r1 ;165
00000e e9dd890a LDRD r8,r9,[sp,#0x28]
;;;170 {
;;;171 case 0:
;;;172 if(pTrans)
;;;173 {
;;;174 do{
;;;175 int Shift =(3-CurrentPixel)<<1;
;;;176 int Index = (Pixels & (0xC0 >> (6 - Shift))) >> Shift;
000012 21c0 MOVS r1,#0xc0
000014 4616 MOV r6,r2 ;165
000016 461c MOV r4,r3 ;167
000018 f0100003 ANDS r0,r0,#3 ;169
00001c d006 BEQ |L15.44|
00001e 2802 CMP r0,#2 ;169
000020 d123 BNE |L15.106|
;;;177 LCD_PIXELINDEX PixelIndex = *(pTrans + Index);
;;;178 LCD_L0_SetPixelIndex(x++, y, PixelIndex);
;;;179 if(++CurrentPixel == 4)
;;;180 {
;;;181 CurrentPixel = 0;
;;;182 Pixels = *(++p);
;;;183 }
;;;184 }while(--xsize);
;;;185 }
;;;186 else
;;;187 {
;;;188 do {
;;;189 int Shift = (3 - CurrentPixel) << 1;
;;;190 int Index = (Pixels & (0xC0 >> (6 - Shift))) >> Shift;
;;;191 LCD_L0_SetPixelIndex(x++, y, Index);
;;;192 if(++CurrentPixel == 4)
;;;193 {
;;;194 CurrentPixel = 0;
;;;195 Pixels = *(++p);
;;;196 }
;;;197 } while (--xsize);
;;;198 }
;;;199 break;
;;;200 case LCD_DRAWMODE_TRANS:
;;;201 if(pTrans)
000022 f1b90f00 CMP r9,#0
000026 d05a BEQ |L15.222|
000028 468a MOV r10,r1 ;176
;;;202 {
;;;203 do{
00002a e03b B |L15.164|
|L15.44|
00002c f1b90f00 CMP r9,#0 ;172
000030 d01d BEQ |L15.110|
000032 468a MOV r10,r1 ;176
|L15.52|
000034 f1c40003 RSB r0,r4,#3 ;175
000038 0040 LSLS r0,r0,#1 ;175
00003a f1c00206 RSB r2,r0,#6 ;176
00003e fa2af102 LSR r1,r10,r2 ;176
000042 4039 ANDS r1,r1,r7 ;176
000044 40c1 LSRS r1,r1,r0 ;176
000046 f8392011 LDRH r2,[r9,r1,LSL #1] ;177
00004a 4628 MOV r0,r5 ;178
00004c 1c6d ADDS r5,r5,#1 ;178
00004e 4659 MOV r1,r11 ;178
000050 f7fffffe BL LCD_L0_SetPixelIndex
000054 1c64 ADDS r4,r4,#1 ;179
000056 2c04 CMP r4,#4 ;179
000058 d102 BNE |L15.96|
00005a f8167f01 LDRB r7,[r6,#1]! ;182
00005e 2400 MOVS r4,#0 ;181
|L15.96|
000060 f1a80001 SUB r0,r8,#1 ;184
000064 ea5f0800 MOVS r8,r0 ;184
000068 d1e4 BNE |L15.52|
|L15.106|
;;;204 int Shift = (3-CurrentPixel)<<1;
;;;205 int Index = (Pixels&(0xC0 >>(6-Shift)))>>Shift;
;;;206 if(Index)
;;;207 {
;;;208 LCD_PIXELINDEX PixelIndex = *(pTrans+Index);
;;;209 LCD_L0_SetPixelIndex(x,y,PixelIndex);
;;;210 }
;;;211 x++;
;;;212 if(++CurrentPixel==4)
;;;213 {
;;;214 CurrentPixel = 0;
;;;215 Pixels = *(++p);
;;;216 }
;;;217 }while(--xsize);
;;;218 }
;;;219 else
;;;220 {
;;;221 do {
;;;222 int Shift =(3-CurrentPixel)<<1;
;;;223 int Index =(Pixels&(0xC0>>(6-Shift)))>>Shift;
;;;224 if (Index)
;;;225 {
;;;226 LCD_L0_SetPixelIndex(x,y,Index);
;;;227 }
;;;228 x++;
;;;229 if(++CurrentPixel==4)
;;;230 {
;;;231 CurrentPixel = 0;
;;;232 Pixels = *(++p);
;;;233 }
;;;234 }while(--xsize);
;;;235 }
;;;236 break;
;;;237 }
;;;238 }
00006a e8bd9ff0 POP {r4-r12,pc}
|L15.110|
00006e 4689 MOV r9,r1 ;176
|L15.112|
000070 f1c40003 RSB r0,r4,#3 ;189
000074 0040 LSLS r0,r0,#1 ;189
000076 f1c00106 RSB r1,r0,#6 ;190
00007a fa29f201 LSR r2,r9,r1 ;190
00007e 403a ANDS r2,r2,r7 ;190
000080 40c2 LSRS r2,r2,r0 ;190
000082 4628 MOV r0,r5 ;191
000084 1c6d ADDS r5,r5,#1 ;191
000086 4659 MOV r1,r11 ;191
000088 f7fffffe BL LCD_L0_SetPixelIndex
00008c 1c64 ADDS r4,r4,#1 ;192
00008e 2c04 CMP r4,#4 ;192
000090 d102 BNE |L15.152|
000092 f8167f01 LDRB r7,[r6,#1]! ;195
000096 2400 MOVS r4,#0 ;194
|L15.152|
000098 f1a80001 SUB r0,r8,#1 ;197
00009c ea5f0800 MOVS r8,r0 ;197
0000a0 d1e6 BNE |L15.112|
0000a2 e7e2 B |L15.106|
|L15.164|
0000a4 f1c40003 RSB r0,r4,#3 ;204
0000a8 0040 LSLS r0,r0,#1 ;204
0000aa f1c00206 RSB r2,r0,#6 ;205
0000ae fa2af102 LSR r1,r10,r2 ;205
0000b2 4039 ANDS r1,r1,r7 ;205
0000b4 40c1 LSRS r1,r1,r0 ;205
0000b6 d005 BEQ |L15.196|
0000b8 f8392011 LDRH r2,[r9,r1,LSL #1] ;208
0000bc 4659 MOV r1,r11 ;209
0000be 4628 MOV r0,r5 ;209
0000c0 f7fffffe BL LCD_L0_SetPixelIndex
|L15.196|
0000c4 1c6d ADDS r5,r5,#1 ;211
0000c6 1c64 ADDS r4,r4,#1 ;212
0000c8 2c04 CMP r4,#4 ;212
0000ca d102 BNE |L15.210|
0000cc f8167f01 LDRB r7,[r6,#1]! ;215
0000d0 2400 MOVS r4,#0 ;214
|L15.210|
0000d2 f1a80001 SUB r0,r8,#1 ;217
0000d6 ea5f0800 MOVS r8,r0 ;217
0000da d1e3 BNE |L15.164|
0000dc e7c5 B |L15.106|
|L15.222|
0000de 4689 MOV r9,r1 ;176
|L15.224|
0000e0 f1c40003 RSB r0,r4,#3 ;222
0000e4 0040 LSLS r0,r0,#1 ;222
0000e6 f1c00106 RSB r1,r0,#6 ;223
0000ea fa29f201 LSR r2,r9,r1 ;223
0000ee 403a ANDS r2,r2,r7 ;223
0000f0 40c2 LSRS r2,r2,r0 ;223
0000f2 d003 BEQ |L15.252|
0000f4 4659 MOV r1,r11 ;226
0000f6 4628 MOV r0,r5 ;226
0000f8 f7fffffe BL LCD_L0_SetPixelIndex
|L15.252|
0000fc 1c6d ADDS r5,r5,#1 ;228
0000fe 1c64 ADDS r4,r4,#1 ;229
000100 2c04 CMP r4,#4 ;229
000102 d102 BNE |L15.266|
000104 f8167f01 LDRB r7,[r6,#1]! ;232
000108 2400 MOVS r4,#0 ;231
|L15.266|
00010a f1a80001 SUB r0,r8,#1 ;234
00010e ea5f0800 MOVS r8,r0 ;234
000112 d1e5 BNE |L15.224|
000114 e7a9 B |L15.106|
;;;239 #endif
ENDP
000116 0000 DCW 0x0000
|L15.280|
DCD GUI_Context
AREA ||i._DrawBitLine4BPP||, CODE, READONLY, ALIGN=2
_DrawBitLine4BPP PROC
;;;245 #if (LCD_MAX_LOG_COLORS > 4)
;;;246 static void _DrawBitLine4BPP(int x,int y,U8 const GUI_UNI_PTR * p,int Diff,int xsize,const LCD_PIXELINDEX * pTrans)
000000 e92d5ff0 PUSH {r4-r12,lr}
;;;247 {
;;;248 LCD_PIXELINDEX Pixels = *p;
;;;249 int CurrentPixel = Diff;
;;;250 x += Diff;
000004 18c5 ADDS r5,r0,r3
;;;251 switch (GUI_Context.DrawMode & (LCD_DRAWMODE_TRANS | LCD_DRAWMODE_XOR))
000006 4844 LDR r0,|L16.280|
000008 7817 LDRB r7,[r2,#0] ;248
00000a 7b00 LDRB r0,[r0,#0xc] ; GUI_Context
00000c 468b MOV r11,r1 ;247
00000e e9dd890a LDRD r8,r9,[sp,#0x28]
;;;252 {
;;;253 case 0:
;;;254 if(pTrans)
;;;255 {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -