📄 guiaalib.txt
字号:
; generated by ARM C/C++ Compiler with , RVCT4.0 [Build 524] for uVision
; commandline ArmCC [--split_sections --debug -c --asm --interleave -o.\Obj\guiaalib.o --depend=.\Obj\guiaalib.d --device=DARMSTM --apcs=interwork -O3 -I..\..\include -I..\..\..\FWLib\library\inc -I..\..\..\USBLib\library\inc -I..\..\Config -I..\..\GUI\Core -I..\..\GUI\Font -I..\..\GUI\ConvertColor -I..\..\GUI\AntiAlias -I..\..\GUI\ConvertMono -I..\..\GUI\JPEG -I..\..\GUI\MemDev -I..\..\GUI\MultiLayer -I..\..\GUI\Widget -I..\..\GUI\WM -IC:\Keil\ARM\INC\ST\STM32F10x ..\..\GUI\AntiAlias\GUIAALib.c]
THUMB
AREA ||i.CalcClipRectHL||, CODE, READONLY, ALIGN=2
CalcClipRectHL PROC
;;;166 */
;;;167 static void CalcClipRectHL(void) {
000000 490a LDR r1,|L1.44|
;;;168 ClipRect_HL.x0 = GUI_Context.ClipRect.x0 * GUI_Context.AA_Factor;
000002 4a0b LDR r2,|L1.48|
000004 888b LDRH r3,[r1,#4] ; GUI_Context
000006 f891005c LDRB r0,[r1,#0x5c] ; GUI_Context
00000a 4343 MULS r3,r0,r3
00000c 8013 STRH r3,[r2,#0]
;;;169 ClipRect_HL.y0 = GUI_Context.ClipRect.y0 * GUI_Context.AA_Factor;
00000e 88cb LDRH r3,[r1,#6] ; GUI_Context
000010 4343 MULS r3,r0,r3
000012 8053 STRH r3,[r2,#2]
;;;170 ClipRect_HL.x1 = (GUI_Context.ClipRect.x1+1) * GUI_Context.AA_Factor -1;
000014 890b LDRH r3,[r1,#8] ; GUI_Context
000016 1c5b ADDS r3,r3,#1
000018 4343 MULS r3,r0,r3
00001a 1e5b SUBS r3,r3,#1
00001c 8093 STRH r3,[r2,#4]
;;;171 ClipRect_HL.y1 = (GUI_Context.ClipRect.y1+1) * GUI_Context.AA_Factor -1;
00001e 8949 LDRH r1,[r1,#0xa] ; GUI_Context
000020 1c49 ADDS r1,r1,#1
000022 4341 MULS r1,r0,r1
000024 1e49 SUBS r1,r1,#1
000026 80d1 STRH r1,[r2,#6]
;;;172 }
000028 4770 BX lr
;;;173
ENDP
00002a 0000 DCW 0x0000
|L1.44|
DCD GUI_Context
|L1.48|
DCD ||.data||+0x1c
AREA ||i.GUI_AA_DisableHiRes||, CODE, READONLY, ALIGN=2
GUI_AA_DisableHiRes PROC
;;;243 */
;;;244 void GUI_AA_DisableHiRes(void) {
000000 4902 LDR r1,|L2.12|
;;;245 GUI_Context.AA_HiResEnable = 0;
000002 2000 MOVS r0,#0
000004 f881005d STRB r0,[r1,#0x5d]
;;;246 }
000008 4770 BX lr
;;;247
ENDP
00000a 0000 DCW 0x0000
|L2.12|
DCD GUI_Context
AREA ||i.GUI_AA_EnableHiRes||, CODE, READONLY, ALIGN=2
GUI_AA_EnableHiRes PROC
;;;251 */
;;;252 void GUI_AA_EnableHiRes(void) {
000000 4902 LDR r1,|L3.12|
;;;253 GUI_Context.AA_HiResEnable =1;
000002 2001 MOVS r0,#1
000004 f881005d STRB r0,[r1,#0x5d]
;;;254 }
000008 4770 BX lr
;;;255
ENDP
00000a 0000 DCW 0x0000
|L3.12|
DCD GUI_Context
AREA ||i.GUI_AA_Exit||, CODE, READONLY, ALIGN=2
GUI_AA_Exit PROC
;;;267 */
;;;268 void GUI_AA_Exit(void) {
000000 b510 PUSH {r4,lr}
;;;269 _FlushLine();
000002 f7fffffe BL _FlushLine
;;;270 /* restore previous settings */
;;;271 GUI_Context.pLCD_HL = pLCD_HLPrev;
000006 4803 LDR r0,|L4.20|
000008 6981 LDR r1,[r0,#0x18] ; pLCD_HLPrev
00000a 4803 LDR r0,|L4.24|
;;;272 GUI_Context.pClipRect_HL = &GUI_Context.ClipRect;
00000c 6581 STR r1,[r0,#0x58] ; GUI_Context
00000e 1d01 ADDS r1,r0,#4
;;;273 }
000010 6101 STR r1,[r0,#0x10] ; GUI_Context
000012 bd10 POP {r4,pc}
;;;274
ENDP
|L4.20|
DCD ||.data||
|L4.24|
DCD GUI_Context
AREA ||i.GUI_AA_GetFactor||, CODE, READONLY, ALIGN=2
GUI_AA_GetFactor PROC
;;;235 */
;;;236 int GUI_AA_GetFactor(void) {
000000 4801 LDR r0,|L5.8|
;;;237 return GUI_Context.AA_Factor;
000002 f890005c LDRB r0,[r0,#0x5c] ; GUI_Context
;;;238 }
000006 4770 BX lr
;;;239
ENDP
|L5.8|
DCD GUI_Context
AREA ||i.GUI_AA_HiRes2Pixel||, CODE, READONLY, ALIGN=2
GUI_AA_HiRes2Pixel PROC
;;;259 */
;;;260 I16 GUI_AA_HiRes2Pixel(int HiRes) {
000000 4903 LDR r1,|L6.16|
;;;261 return GUI_Context.AA_Factor ? (HiRes / GUI_Context.AA_Factor) : HiRes;
000002 f891105c LDRB r1,[r1,#0x5c] ; GUI_Context
000006 b109 CBZ r1,|L6.12|
000008 fb90f0f1 SDIV r0,r0,r1
|L6.12|
00000c b200 SXTH r0,r0
;;;262 }
00000e 4770 BX lr
;;;263
ENDP
|L6.16|
DCD GUI_Context
AREA ||i.GUI_AA_Init||, CODE, READONLY, ALIGN=2
GUI_AA_Init PROC
;;;183 */
;;;184 int GUI_AA_Init(int x0, int x1) {
000000 b570 PUSH {r4-r6,lr}
;;;185 int r =0;
000002 2400 MOVS r4,#0
;;;186 /* Bounds checking:
;;;187 Make sure x0, x1 are in legal range ...
;;;188 (The important point is that they span no more than configured as
;;;189 buffer size)
;;;190 */
;;;191 if (x0<0)
000004 2800 CMP r0,#0
000006 da00 BGE |L7.10|
;;;192 x0 =0;
000008 2000 MOVS r0,#0
|L7.10|
;;;193 if (x1-x0 > GUI_AA_LINEBUFFER_SIZE-1)
00000a 1a0a SUBS r2,r1,r0
00000c f5b27fa0 CMP r2,#0x140
000010 db01 BLT |L7.22|
;;;194 x1 = x0+GUI_AA_LINEBUFFER_SIZE-1;
000012 f200113f ADD r1,r0,#0x13f
|L7.22|
;;;195 /* Is there anything to do at all ??? */
;;;196 if (x1 < x0) {
000016 4281 CMP r1,r0
000018 da01 BGE |L7.30|
;;;197 x1 = x0; /* Not really ... */
00001a 4601 MOV r1,r0
;;;198 r =1;
00001c 2401 MOVS r4,#1
|L7.30|
;;;199 }
;;;200 DrawAPICopy = *GUI_Context.pLCD_HL; /* Copy API table */
00001e 4d0c LDR r5,|L7.80|
000020 4a0c LDR r2,|L7.84|
000022 6dab LDR r3,[r5,#0x58] ; GUI_Context
000024 685e LDR r6,[r3,#4]
;;;201 pLCD_HLPrev = GUI_Context.pLCD_HL; /* Remember list ptr (for restore) */
;;;202 DrawAPICopy.pfDrawHLine = _DrawHLine; /* modify function ptr. for hline */
000026 6296 STR r6,[r2,#0x28] ; DrawAPICopy
000028 6193 STR r3,[r2,#0x18] ; pLCD_HLPrev
00002a 4e0b LDR r6,|L7.88|
00002c f1020324 ADD r3,r2,#0x24
;;;203 GUI_Context.pLCD_HL = &DrawAPICopy; /* Use copy of fp-list */
000030 601e STR r6,[r3,#0] ; DrawAPICopy
;;;204 pabAABuffer = abAABuffer;
000032 65ab STR r3,[r5,#0x58] ; GUI_Context
000034 4b09 LDR r3,|L7.92|
;;;205 _x0 = x0;
;;;206 _x1 = x1;
;;;207 _CleanLine();
000036 e9c23000 STRD r3,r0,[r2,#0]
00003a 6091 STR r1,[r2,#8] ; _x1
00003c f7fffffe BL _CleanLine
;;;208 CalcClipRectHL();
000040 f7fffffe BL CalcClipRectHL
;;;209 GUI_Context.pClipRect_HL = &ClipRect_HL;
000044 4803 LDR r0,|L7.84|
000046 301c ADDS r0,r0,#0x1c
;;;210 return r;
000048 6128 STR r0,[r5,#0x10] ; GUI_Context
00004a 4620 MOV r0,r4
;;;211 }
00004c bd70 POP {r4-r6,pc}
;;;212
ENDP
00004e 0000 DCW 0x0000
|L7.80|
DCD GUI_Context
|L7.84|
DCD ||.data||
|L7.88|
DCD _DrawHLine
|L7.92|
DCD ||.bss||
AREA ||i.GUI_AA_Init_HiRes||, CODE, READONLY, ALIGN=2
GUI_AA_Init_HiRes PROC
;;;216 */
;;;217 int GUI_AA_Init_HiRes(int x0, int x1) {
000000 4a04 LDR r2,|L8.20|
;;;218 x0 /= GUI_Context.AA_Factor;
000002 f892205c LDRB r2,[r2,#0x5c] ; GUI_Context
000006 fb90f0f2 SDIV r0,r0,r2
;;;219 x1 /= GUI_Context.AA_Factor;
00000a fb91f1f2 SDIV r1,r1,r2
;;;220 return GUI_AA_Init(x0, x1);
00000e f7ffbffe B.W GUI_AA_Init
;;;221 }
;;;222
ENDP
000012 0000 DCW 0x0000
|L8.20|
DCD GUI_Context
AREA ||i.GUI_AA_SetFactor||, CODE, READONLY, ALIGN=2
GUI_AA_SetFactor PROC
;;;226 */
;;;227 void GUI_AA_SetFactor(int Factor) {
000000 4902 LDR r1,|L9.12|
;;;228 GUI_Context.AA_Factor = Factor;
000002 f881005c STRB r0,[r1,#0x5c]
;;;229 CalcClipRectHL(); /* High level clipping depends on quality factor */
000006 f7ffbffe B.W CalcClipRectHL
;;;230 }
;;;231
ENDP
00000a 0000 DCW 0x0000
|L9.12|
DCD GUI_Context
AREA ||i._CleanLine||, CODE, READONLY, ALIGN=2
_CleanLine PROC
;;;63 */
;;;64 static void _CleanLine(void) {
000000 b510 PUSH {r4,lr}
;;;65 GUI_MEMSET(pabAABuffer,0, _x1 - _x0+1);
000002 4c07 LDR r4,|L10.32|
000004 e9d41001 LDRD r1,r0,[r4,#4]
000008 1a42 SUBS r2,r0,r1
00000a 1c52 ADDS r2,r2,#1
00000c 2100 MOVS r1,#0
00000e 6820 LDR r0,[r4,#0] ; pabAABuffer
000010 f7fffffe BL GUI__memset
;;;66 _y = -16383; /* Invalidate */
000014 4803 LDR r0,|L10.36|
;;;67 _x0_InUse = 16383;
000016 0c81 LSRS r1,r0,#18
;;;68 _x1_InUse = -16383;
000018 e9c40103 STRD r0,r1,[r4,#0xc]
;;;69 }
00001c 6160 STR r0,[r4,#0x14] ; _x1_InUse
00001e bd10 POP {r4,pc}
;;;70
ENDP
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -