📄 glib.txt
字号:
;;;347 e=dy-dx/2;
000c54 e1a00008 MOV r0,r8
000c58 e0881fa8 ADD r1,r8,r8,LSR #31
000c5c e04740c1 SUB r4,r7,r1,ASR #1
;;;348 while(x1>=x2)
000c60 e1a00000 NOP
|L1.3172|
000c64 e155000a CMP r5,r10
000c68 ba000021 BLT |L1.3316|
;;;349 {
;;;350 PutPixel(x1,y1,color);
000c6c e1a02009 MOV r2,r9
000c70 e1a01006 MOV r1,r6
000c74 e1a00005 MOV r0,r5
000c78 e51f32ac LDR r3,|L1.2516|
000c7c e5933000 LDR r3,[r3,#0] ; PutPixel
000c80 e1a0e00f MOV lr,pc
000c84 e1a0f003 MOV pc,r3
;;;351 if(e>0){y1-=1;e-=dx;}
000c88 e3540000 CMP r4,#0
000c8c da000001 BLE |L1.3224|
000c90 e2466001 SUB r6,r6,#1
000c94 e0444008 SUB r4,r4,r8
;;;352 x1-=1;
|L1.3224|
000c98 e2455001 SUB r5,r5,#1
;;;353 e+=dy;
000c9c e0844007 ADD r4,r4,r7
;;;354 }
000ca0 eaffffef B |L1.3172|
;;;355 }
;;;356 else // 6/8 octant
;;;357 {
;;;358 e=dx-dy/2;
|L1.3236|
000ca4 e1a00007 MOV r0,r7
000ca8 e0871fa7 ADD r1,r7,r7,LSR #31
000cac e04840c1 SUB r4,r8,r1,ASR #1
;;;359 while(y1>=y2)
000cb0 e1a00000 NOP
|L1.3252|
000cb4 e156000b CMP r6,r11
000cb8 ba00000d BLT |L1.3316|
;;;360 {
;;;361 PutPixel(x1,y1,color);
000cbc e1a02009 MOV r2,r9
000cc0 e1a01006 MOV r1,r6
000cc4 e1a00005 MOV r0,r5
000cc8 e51f32fc LDR r3,|L1.2516|
000ccc e5933000 LDR r3,[r3,#0] ; PutPixel
000cd0 e1a0e00f MOV lr,pc
000cd4 e1a0f003 MOV pc,r3
;;;362 if(e>0){x1-=1;e-=dy;}
000cd8 e3540000 CMP r4,#0
000cdc da000001 BLE |L1.3304|
000ce0 e2455001 SUB r5,r5,#1
000ce4 e0444007 SUB r4,r4,r7
;;;363 y1-=1;
|L1.3304|
000ce8 e2466001 SUB r6,r6,#1
;;;364 e+=dx;
000cec e0844008 ADD r4,r4,r8
;;;365 }
000cf0 eaffffef B |L1.3252|
;;;366 }
;;;367 }
;;;368 }
;;;369 }
|L1.3316|
000cf4 e8bd8ff8 LDMFD sp!,{r3-r11,pc}
ENDP
Glib_Rectangle PROC
;;;225 void Glib_Rectangle(int x1,int y1,int x2,int y2,int color)
;;;226 {
000cf8 e92d41fc STMFD sp!,{r2-r8,lr}
000cfc e1a05000 MOV r5,r0
000d00 e1a06001 MOV r6,r1
000d04 e1a07002 MOV r7,r2
000d08 e1a08003 MOV r8,r3
000d0c e59d4020 LDR r4,[sp,#0x20]
;;;227 Glib_Line(x1,y1,x2,y1,color);
000d10 e1a03006 MOV r3,r6
000d14 e1a02007 MOV r2,r7
000d18 e1a01006 MOV r1,r6
000d1c e1a00005 MOV r0,r5
000d20 e58d4000 STR r4,[sp,#0]
000d24 ebfffffe BL Glib_Line
;;;228 Glib_Line(x2,y1,x2,y2,color);
000d28 e1a03008 MOV r3,r8
000d2c e1a02007 MOV r2,r7
000d30 e1a01006 MOV r1,r6
000d34 e1a00007 MOV r0,r7
000d38 e58d4000 STR r4,[sp,#0]
000d3c ebfffffe BL Glib_Line
;;;229 Glib_Line(x1,y2,x2,y2,color);
000d40 e1a03008 MOV r3,r8
000d44 e1a02007 MOV r2,r7
000d48 e1a01008 MOV r1,r8
000d4c e1a00005 MOV r0,r5
000d50 e58d4000 STR r4,[sp,#0]
000d54 ebfffffe BL Glib_Line
;;;230 Glib_Line(x1,y1,x1,y2,color);
000d58 e1a03008 MOV r3,r8
000d5c e1a02005 MOV r2,r5
000d60 e1a01006 MOV r1,r6
000d64 e1a00005 MOV r0,r5
000d68 e58d4000 STR r4,[sp,#0]
000d6c ebfffffe BL Glib_Line
;;;231 }
000d70 e8bd81fc LDMFD sp!,{r2-r8,pc}
ENDP
Glib_FilledRectangle PROC
;;;235 void Glib_FilledRectangle(int x1,int y1,int x2,int y2,int color)
;;;236 {
000d74 e92d43f8 STMFD sp!,{r3-r9,lr}
000d78 e1a08000 MOV r8,r0
000d7c e1a06001 MOV r6,r1
000d80 e1a09002 MOV r9,r2
000d84 e1a07003 MOV r7,r3
000d88 e59d5020 LDR r5,[sp,#0x20]
;;;237 int i;
;;;238
;;;239 for(i=y1;i<=y2;i++)
000d8c e1a04006 MOV r4,r6
|L1.3472|
000d90 e1540007 CMP r4,r7
000d94 ca000009 BGT |L1.3520|
000d98 ea000001 B |L1.3492|
|L1.3484|
000d9c e2844001 ADD r4,r4,#1
000da0 eafffffa B |L1.3472|
;;;240 Glib_Line(x1,i,x2,i,color);
|L1.3492|
000da4 e1a03004 MOV r3,r4
000da8 e1a02009 MOV r2,r9
000dac e1a01004 MOV r1,r4
000db0 e1a00008 MOV r0,r8
000db4 e58d5000 STR r5,[sp,#0]
000db8 ebfffffe BL Glib_Line
000dbc eafffff6 B |L1.3484|
;;;241 }
|L1.3520|
000dc0 e8bd83f8 LDMFD sp!,{r3-r9,pc}
ENDP
Glib_ClearScr PROC
;;;373 void Glib_ClearScr(U32 c, int type)
;;;374 {
000dc4 e92d40f8 STMFD sp!,{r3-r7,lr}
000dc8 e1a07000 MOV r7,r0
000dcc e1a06001 MOV r6,r1
;;;375 //Very inefficient function.
;;;376 int i,j;
;;;377 //if((type==MODE_TFT_1BIT_800600)|(type==MODE_TFT_8BIT_800600)|(type==MODE_TFT_16BIT_800600))
;;;378 if((type&0x4000)&&(type&0x400))
000dd0 e3160c40 TST r6,#0x4000
000dd4 0a000016 BEQ |L1.3636|
000dd8 e3160e40 TST r6,#0x400
000ddc 0a000014 BEQ |L1.3636|
;;;379 for(j=0;j<SCR_YSIZE_TFT_800600;j++)
000de0 e3a05000 MOV r5,#0
|L1.3556|
000de4 e3550e4b CMP r5,#0x4b0
000de8 aa00006f BGE |L1.4012|
000dec ea000001 B |L1.3576|
|L1.3568|
000df0 e2855001 ADD r5,r5,#1
000df4 eafffffa B |L1.3556|
;;;380 for(i=0;i<SCR_XSIZE_TFT_800600;i++)
|L1.3576|
000df8 e3a04000 MOV r4,#0
|L1.3580|
000dfc e3540e64 CMP r4,#0x640
000e00 aa00000a BGE |L1.3632|
000e04 ea000001 B |L1.3600|
|L1.3592|
000e08 e2844001 ADD r4,r4,#1
000e0c eafffffa B |L1.3580|
;;;381 PutPixel(i,j,c);
|L1.3600|
000e10 e1a02007 MOV r2,r7
000e14 e1a01005 MOV r1,r5
000e18 e1a00004 MOV r0,r4
000e1c e51f3450 LDR r3,|L1.2516|
000e20 e5933000 LDR r3,[r3,#0] ; PutPixel
000e24 e1a0e00f MOV lr,pc
000e28 e1a0f003 MOV pc,r3
000e2c eafffff5 B |L1.3592|
|L1.3632|
000e30 eaffffee B |L1.3568|
;;;382 //else if((type==MODE_TFT_1BIT_640480)|(type==MODE_TFT_8BIT_640480)|(type==MODE_TFT_16BIT_640480))
;;;383 else if((type&0x4000)&&(type&0x200))
|L1.3636|
000e34 e3160c40 TST r6,#0x4000
000e38 0a000016 BEQ |L1.3736|
000e3c e3160f80 TST r6,#0x200
000e40 0a000014 BEQ |L1.3736|
;;;384 for(j=0;j<SCR_YSIZE_TFT_640480;j++)
000e44 e3a05000 MOV r5,#0
|L1.3656|
000e48 e3550ff0 CMP r5,#0x3c0
000e4c aa000056 BGE |L1.4012|
000e50 ea000001 B |L1.3676|
|L1.3668|
000e54 e2855001 ADD r5,r5,#1
000e58 eafffffa B |L1.3656|
;;;385 for(i=0;i<SCR_XSIZE_TFT_640480;i++)
|L1.3676|
000e5c e3a04000 MOV r4,#0
|L1.3680|
000e60 e3540e50 CMP r4,#0x500
000e64 aa00000a BGE |L1.3732|
000e68 ea000001 B |L1.3700|
|L1.3692|
000e6c e2844001 ADD r4,r4,#1
000e70 eafffffa B |L1.3680|
;;;386 PutPixel(i,j,c);
|L1.3700|
000e74 e1a02007 MOV r2,r7
000e78 e1a01005 MOV r1,r5
000e7c e1a00004 MOV r0,r4
000e80 e51f34b4 LDR r3,|L1.2516|
000e84 e5933000 LDR r3,[r3,#0] ; PutPixel
000e88 e1a0e00f MOV lr,pc
000e8c e1a0f003 MOV pc,r3
000e90 eafffff5 B |L1.3692|
|L1.3732|
000e94 eaffffee B |L1.3668|
;;;387 //else if((type==MODE_TFT_1BIT_240320)|(type==MODE_TFT_8BIT_240320)|(type==MODE_TFT_16BIT_240320))
;;;388 else if((type&0x4000)&&(type&0x100))
|L1.3736|
000e98 e3160c40 TST r6,#0x4000
000e9c 0a000016 BEQ |L1.3836|
000ea0 e3160f40 TST r6,#0x100
000ea4 0a000014 BEQ |L1.3836|
;;;389 for(j=0;j<SCR_YSIZE_TFT_240320;j++)
000ea8 e3a05000 MOV r5,#0
|L1.3756|
000eac e3550fa0 CMP r5,#0x280
000eb0 aa00003d BGE |L1.4012|
000eb4 ea000001 B |L1.3776|
|L1.3768|
000eb8 e2855001 ADD r5,r5,#1
000ebc eafffffa B |L1.3756|
;;;390 for(i=0;i<SCR_XSIZE_TFT_240320;i++)
|L1.3776|
000ec0 e3a04000 MOV r4,#0
|L1.3780|
000ec4 e3540f78 CMP r4,#0x1e0
000ec8 aa00000a BGE |L1.3832|
000ecc ea000001 B |L1.3800|
|L1.3792|
000ed0 e2844001 ADD r4,r4,#1
000ed4 eafffffa B |L1.3780|
;;;391 PutPixel(i,j,c);
|L1.3800|
000ed8 e1a02007 MOV r2,r7
000edc e1a01005 MOV r1,r5
000ee0 e1a00004 MOV r0,r4
000ee4 e51f3518 LDR r3,|L1.2516|
000ee8 e5933000 LDR r3,[r3,#0] ; PutPixel
000eec e1a0e00f MOV lr,pc
000ef0 e1a0f003 MOV pc,r3
000ef4 eafffff5 B |L1.3792|
|L1.3832|
000ef8 eaffffee B |L1.3768|
;;;392 else if(type&0x2000)
|L1.3836|
000efc e3160d80 TST r6,#0x2000
000f00 0a000014 BEQ |L1.3928|
;;;393 for(j=0;j<SCR_YSIZE_CSTN;j++)
000f04 e3a05000 MOV r5,#0
|L1.3848|
000f08 e3550f78 CMP r5,#0x1e0
000f0c aa000026 BGE |L1.4012|
000f10 ea000001 B |L1.3868|
|L1.3860|
000f14 e2855001 ADD r5,r5,#1
000f18 eafffffa B |L1.3848|
;;;394 for(i=0;i<SCR_XSIZE_CSTN;i++)
|L1.3868|
000f1c e3a04000 MOV r4,#0
|L1.3872|
000f20 e3540fa0 CMP r4,#0x280
000f24 aa00000a BGE |L1.3924|
000f28 ea000001 B |L1.3892|
|L1.3884|
000f2c e2844001 ADD r4,r4,#1
000f30 eafffffa B |L1.3872|
;;;395 PutPixel(i,j,c);
|L1.3892|
000f34 e1a02007 MOV r2,r7
000f38 e1a01005 MOV r1,r5
000f3c e1a00004 MOV r0,r4
0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -