📄 guiaachar2.txt
字号:
0000e8 e8bd8ff0 POP {r4-r11,pc}
;;;115
ENDP
|L2.236|
DCD ||.constdata||
AREA ||i.GUIPROP_AA2_DispChar||, CODE, READONLY, ALIGN=2
GUIPROP_AA2_DispChar PROC
;;;137 */
;;;138 void GUIPROP_AA2_DispChar(U16P c) {
000000 e92d41fc PUSH {r2-r8,lr}
;;;139 int BytesPerLine;
;;;140 GUI_DRAWMODE DrawMode = GUI_Context.TextMode;
000004 4d17 LDR r5,|L3.100|
000006 4604 MOV r4,r0 ;138
;;;141 const GUI_FONT_PROP* pProp = GUIPROP_FindChar(GUI_Context.pAFont->p.pProp, c);
000008 69a8 LDR r0,[r5,#0x18] ; GUI_Context
00000a f9b5602a LDRSH r6,[r5,#0x2a] ;140 ; GUI_Context
00000e 6980 LDR r0,[r0,#0x18]
000010 4621 MOV r1,r4
000012 f7fffffe BL GUIPROP_FindChar
;;;142 if (pProp) {
000016 2800 CMP r0,#0
000018 d022 BEQ |L3.96|
;;;143 GUI_DRAWMODE OldDrawMode;
;;;144 const GUI_CHARINFO* pCharInfo = pProp->paCharInfo+(c-pProp->First);
00001a 6841 LDR r1,[r0,#4]
00001c 8800 LDRH r0,[r0,#0]
00001e 1a20 SUBS r0,r4,r0
000020 eb0104c0 ADD r4,r1,r0,LSL #3
;;;145 BytesPerLine = pCharInfo->BytesPerLine;
000024 78a7 LDRB r7,[r4,#2]
;;;146 OldDrawMode = LCD_SetDrawMode(DrawMode);
000026 4630 MOV r0,r6
000028 f7fffffe BL LCD_SetDrawMode
;;;147 if (DrawMode & GUI_TM_TRANS) {
;;;148 DrawTrans(GUI_Context.DispPosX,
00002c 6863 LDR r3,[r4,#4]
00002e 4680 MOV r8,r0 ;146
000030 e9cd7300 STRD r7,r3,[sp,#0]
000034 07b0 LSLS r0,r6,#30 ;147
000036 2800 CMP r0,#0 ;147
000038 69a8 LDR r0,[r5,#0x18] ; GUI_Context
00003a 7822 LDRB r2,[r4,#0]
00003c 7d03 LDRB r3,[r0,#0x14]
00003e f9b51024 LDRSH r1,[r5,#0x24] ; GUI_Context
000042 f9b50022 LDRSH r0,[r5,#0x22] ; GUI_Context
000046 da02 BGE |L3.78|
000048 f7fffffe BL DrawTrans
00004c e001 B |L3.82|
|L3.78|
;;;149 GUI_Context.DispPosY,
;;;150 pCharInfo->XSize,
;;;151 GUI_Context.pAFont->YSize,
;;;152 BytesPerLine,
;;;153 (U8 const*)pCharInfo->pData
;;;154 );
;;;155 } else {
;;;156 DrawNoTrans(GUI_Context.DispPosX,
00004e f7fffffe BL DrawNoTrans
|L3.82|
;;;157 GUI_Context.DispPosY,
;;;158 pCharInfo->XSize,
;;;159 GUI_Context.pAFont->YSize,
;;;160 BytesPerLine,
;;;161 (U8 const*)pCharInfo->pData
;;;162 );
;;;163 }
;;;164 LCD_SetDrawMode(OldDrawMode); /* Restore draw mode */
000052 4640 MOV r0,r8
000054 f7fffffe BL LCD_SetDrawMode
;;;165 GUI_Context.DispPosX += pCharInfo->XDist;
000058 8c68 LDRH r0,[r5,#0x22] ; GUI_Context
00005a 7861 LDRB r1,[r4,#1]
00005c 4408 ADD r0,r0,r1
00005e 8468 STRH r0,[r5,#0x22]
|L3.96|
;;;166 }
;;;167 }
000060 e8bd81fc POP {r2-r8,pc}
;;;168
ENDP
|L3.100|
DCD GUI_Context
AREA ||i.GUIPROP_AA2_GetCharDistX||, CODE, READONLY, ALIGN=2
GUIPROP_AA2_GetCharDistX PROC
;;;172 */
;;;173 int GUIPROP_AA2_GetCharDistX(U16P c) {
000000 b510 PUSH {r4,lr}
000002 4604 MOV r4,r0
;;;174 const GUI_FONT_PROP* pProp = GUIPROP_FindChar(GUI_Context.pAFont->p.pProp, c);
000004 4806 LDR r0,|L4.32|
000006 4621 MOV r1,r4
000008 6980 LDR r0,[r0,#0x18] ; GUI_Context
00000a 6980 LDR r0,[r0,#0x18]
00000c f7fffffe BL GUIPROP_FindChar
;;;175 return (pProp) ? (pProp->paCharInfo+(c-pProp->First))->XSize : 0;
000010 2800 CMP r0,#0
000012 d004 BEQ |L4.30|
000014 6841 LDR r1,[r0,#4]
000016 8800 LDRH r0,[r0,#0]
000018 1a20 SUBS r0,r4,r0
00001a f8110030 LDRB r0,[r1,r0,LSL #3]
|L4.30|
;;;176 }
00001e bd10 POP {r4,pc}
;;;177
ENDP
|L4.32|
DCD GUI_Context
AREA ||i.GUIPROP_AA2_GetFontInfo||, CODE, READONLY, ALIGN=1
GUIPROP_AA2_GetFontInfo PROC
;;;181 */
;;;182 void GUIPROP_AA2_GetFontInfo(const GUI_FONT * pFont, GUI_FONTINFO* pfi) {
000000 2009 MOVS r0,#9
;;;183 GUI_USE_PARA(pFont);
;;;184 pfi->Flags = GUI_FONTINFO_FLAG_PROP | GUI_FONTINFO_FLAG_AA2;
000002 8008 STRH r0,[r1,#0]
;;;185 }
000004 4770 BX lr
;;;186
ENDP
AREA ||i.GUIPROP_AA2_IsInFont||, CODE, READONLY, ALIGN=1
GUIPROP_AA2_IsInFont PROC
;;;190 */
;;;191 char GUIPROP_AA2_IsInFont(const GUI_FONT * pFont, U16 c) {
000000 b510 PUSH {r4,lr}
;;;192 const GUI_FONT_PROP* pProp = GUIPROP_FindChar(pFont->p.pProp, c);
000002 6980 LDR r0,[r0,#0x18]
000004 f7fffffe BL GUIPROP_FindChar
;;;193 return (pProp==NULL) ? 0 : 1;
000008 2800 CMP r0,#0
00000a d000 BEQ |L6.14|
00000c 2001 MOVS r0,#1
|L6.14|
;;;194 }
00000e bd10 POP {r4,pc}
;;;195
ENDP
AREA ||i.GUIPROP_FindChar||, CODE, READONLY, ALIGN=2
GUIPROP_FindChar PROC
;;;119 */
;;;120 static const GUI_FONT_PROP* GUIPROP_FindChar(const GUI_FONT_PROP* pProp, U16P c) {
000000 4806 LDR r0,|L7.28|
;;;121 for (pProp = GUI_Context.pAFont->p.pProp; pProp; pProp=(const GUI_FONT_PROP*) pProp->pNext) {
000002 6980 LDR r0,[r0,#0x18] ; GUI_Context
000004 6980 LDR r0,[r0,#0x18]
000006 e006 B |L7.22|
|L7.8|
;;;122 if ((c>=pProp->First) && (c<=pProp->Last))
000008 8802 LDRH r2,[r0,#0]
00000a 428a CMP r2,r1
00000c d802 BHI |L7.20|
00000e 8842 LDRH r2,[r0,#2]
000010 428a CMP r2,r1
000012 d202 BCS |L7.26|
|L7.20|
000014 6880 LDR r0,[r0,#8] ;121
|L7.22|
000016 2800 CMP r0,#0 ;121
000018 d1f6 BNE |L7.8|
|L7.26|
;;;123 break;
;;;124 }
;;;125 return pProp;
;;;126 }
00001a 4770 BX lr
;;;127
ENDP
|L7.28|
DCD GUI_Context
AREA ||.bss||, DATA, NOINIT, ALIGN=2
aColor
% 16
AREA ||.constdata||, DATA, READONLY, ALIGN=2
aConvTable
DCD 0x00000000
DCD 0x00000005
DCD 0x0000000a
DCD 0x0000000f
AREA ||.data||, DATA, ALIGN=2
OldColorIndex
000000 0000 DCB 0x00,0x00
OldBkColorIndex
000002 0000 DCB 0x00,0x00
Palette
DCD 0x00000004
000008 00000000 DCB 0x00,0x00,0x00,0x00
DCD aColor
Bitmap
000010 00000000 DCW 0x0000,0x0000
000014 00000002 DCW 0x0000,0x0002
DCD 0x00000000
DCD Palette
DCD 0x00000000
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -