⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 glib.txt

📁 支持三星原产的S3C24A0开发板
💻 TXT
📖 第 1 页 / 共 3 页
字号:
0003dc  ca000006          BGT      |L1.1020|
0003e0  e3520d44          CMP      r2,#0x1100
0003e4  0a000016          BEQ      |L1.1092|
0003e8  e3520d48          CMP      r2,#0x1200
0003ec  0a00001c          BEQ      |L1.1124|
0003f0  e3520d50          CMP      r2,#0x1400
0003f4  1a00004e          BNE      |L1.1332|
0003f8  ea000021          B        |L1.1156|
                  |L1.1020|
0003fc  e3520d84          CMP      r2,#0x2100
000400  0a000010          BEQ      |L1.1096|
000404  e3520d88          CMP      r2,#0x2200
000408  1a000049          BNE      |L1.1332|
00040c  ea000015          B        |L1.1128|
                  |L1.1040|
000410  e3520c42          CMP      r2,#0x4200
000414  0a000031          BEQ      |L1.1248|
000418  ca000004          BGT      |L1.1072|
00041c  e3520da0          CMP      r2,#0x2800
000420  0a000020          BEQ      |L1.1192|
000424  e3520c41          CMP      r2,#0x4100
000428  1a000041          BNE      |L1.1332|
00042c  ea000024          B        |L1.1220|
                  |L1.1072|
000430  e3520c44          CMP      r2,#0x4400
000434  0a000030          BEQ      |L1.1276|
000438  e3520c48          CMP      r2,#0x4800
00043c  1a00003c          BNE      |L1.1332|
000440  ea000034          B        |L1.1304|
;;;47     		case 0x1100:
;;;48     		case 0x2100:	
                  |L1.1092|
000444  e1a00000          NOP      
;;;49     			vframewidth=BG_VXSIZE_176220;
                  |L1.1096|
000448  e3a02f58          MOV      r2,#0x160
00044c  e59f3458          LDR      r3,|L1.2220|
000450  e5832000          STR      r2,[r3,#0]  ; vframewidth
;;;50     			vframeheight=BG_VYSIZE_176220;
000454  e3a02f60          MOV      r2,#0x180
000458  e59f3450          LDR      r3,|L1.2224|
00045c  e5832000          STR      r2,[r3,#0]  ; vframeheight
;;;51     			break;
000460  ea000034          B        |L1.1336|
;;;52     		case 0x1200:
;;;53     		case 0x2200:
                  |L1.1124|
000464  e1a00000          NOP      
;;;54     			vframewidth=BG_VXSIZE_240320;
                  |L1.1128|
000468  e3a02f78          MOV      r2,#0x1e0
00046c  e59f3438          LDR      r3,|L1.2220|
000470  e5832000          STR      r2,[r3,#0]  ; vframewidth
;;;55     			vframeheight=BG_VYSIZE_240320;			
000474  e3a02fa0          MOV      r2,#0x280
000478  e59f3430          LDR      r3,|L1.2224|
00047c  e5832000          STR      r2,[r3,#0]  ; vframeheight
;;;56     			break;
000480  ea00002c          B        |L1.1336|
;;;57     		case 0x1400:
;;;58     		case 0x2400:
                  |L1.1156|
000484  e1a00000          NOP      
;;;59     			vframewidth=BG_VXSIZE_640480;
                  |L1.1160|
000488  e3a02e50          MOV      r2,#0x500
00048c  e59f3418          LDR      r3,|L1.2220|
000490  e5832000          STR      r2,[r3,#0]  ; vframewidth
;;;60     			vframeheight=BG_VYSIZE_640480;			
000494  e3a02ff0          MOV      r2,#0x3c0
000498  e59f3410          LDR      r3,|L1.2224|
00049c  e5832000          STR      r2,[r3,#0]  ; vframeheight
;;;61     			break;
0004a0  ea000024          B        |L1.1336|
;;;62     		case 0x1800:
;;;63     		case 0x2800:
                  |L1.1188|
0004a4  e1a00000          NOP      
;;;64     			vframewidth=BG_VXSIZE_800600;
                  |L1.1192|
0004a8  e3a02e64          MOV      r2,#0x640
0004ac  e59f33f8          LDR      r3,|L1.2220|
0004b0  e5832000          STR      r2,[r3,#0]  ; vframewidth
;;;65     			vframeheight=BG_VYSIZE_800600;			
0004b4  e3a02e4b          MOV      r2,#0x4b0
0004b8  e59f33f0          LDR      r3,|L1.2224|
0004bc  e5832000          STR      r2,[r3,#0]  ; vframeheight
;;;66     			break;
0004c0  ea00001c          B        |L1.1336|
;;;67     		case 0x4100:
;;;68     			vframewidth=FG_VXSIZE_176220;
                  |L1.1220|
0004c4  e3a020b0          MOV      r2,#0xb0
0004c8  e59f33dc          LDR      r3,|L1.2220|
0004cc  e5832000          STR      r2,[r3,#0]  ; vframewidth
;;;69     			vframeheight=FG_VYSIZE_176220;
0004d0  e3a020c0          MOV      r2,#0xc0
0004d4  e59f33d4          LDR      r3,|L1.2224|
0004d8  e5832000          STR      r2,[r3,#0]  ; vframeheight
;;;70     			break;
0004dc  ea000015          B        |L1.1336|
;;;71     		case 0x4200:
;;;72     			vframewidth=FG_VXSIZE_240320;
                  |L1.1248|
0004e0  e3a020f0          MOV      r2,#0xf0
0004e4  e59f33c0          LDR      r3,|L1.2220|
0004e8  e5832000          STR      r2,[r3,#0]  ; vframewidth
;;;73     			vframeheight=FG_VYSIZE_240320;
0004ec  e3a02f50          MOV      r2,#0x140
0004f0  e59f33b8          LDR      r3,|L1.2224|
0004f4  e5832000          STR      r2,[r3,#0]  ; vframeheight
;;;74     			break;
0004f8  ea00000e          B        |L1.1336|
;;;75     		case 0x4400:
;;;76     			vframewidth=FG_VXSIZE_640480;
                  |L1.1276|
0004fc  e3a02fa0          MOV      r2,#0x280
000500  e59f33a4          LDR      r3,|L1.2220|
000504  e5832000          STR      r2,[r3,#0]  ; vframewidth
;;;77     			vframeheight=FG_VYSIZE_640480;
000508  e3a02f78          MOV      r2,#0x1e0
00050c  e59f339c          LDR      r3,|L1.2224|
000510  e5832000          STR      r2,[r3,#0]  ; vframeheight
;;;78     			break;			
000514  ea000007          B        |L1.1336|
;;;79     		case 0x4800:
;;;80     			vframewidth=FG_VXSIZE_800600;
                  |L1.1304|
000518  e3a02fc8          MOV      r2,#0x320
00051c  e59f3388          LDR      r3,|L1.2220|
000520  e5832000          STR      r2,[r3,#0]  ; vframewidth
;;;81     			vframeheight=FG_VYSIZE_800600;
000524  e3a02f96          MOV      r2,#0x258
000528  e59f3380          LDR      r3,|L1.2224|
00052c  e5832000          STR      r2,[r3,#0]  ; vframeheight
;;;82     			break;			
000530  ea000000          B        |L1.1336|
;;;83     		default:
;;;84     			break;			
                  |L1.1332|
000534  e1a00000          NOP      
;;;85     	}
;;;86     
;;;87     	if((displaytype&0xf0)==0x10 || (displaytype&0xf0)==0x20) {
                  |L1.1336|
000538  e20020f0          AND      r2,r0,#0xf0
00053c  e3520010          CMP      r2,#0x10
000540  0a000002          BEQ      |L1.1360|
000544  e20020f0          AND      r2,r0,#0xf0
000548  e3520020          CMP      r2,#0x20
00054c  1a000009          BNE      |L1.1400|
;;;88     		vframewidth=vframewidth/2;
                  |L1.1360|
000550  e59f2354          LDR      r2,|L1.2220|
000554  e5922000          LDR      r2,[r2,#0]  ; vframewidth
000558  e1a020a2          MOV      r2,r2,LSR #1
00055c  e59f3348          LDR      r3,|L1.2220|
000560  e5832000          STR      r2,[r3,#0]  ; vframewidth
;;;89     		vframeheight=vframeheight/2;
000564  e59f2344          LDR      r2,|L1.2224|
000568  e5922000          LDR      r2,[r2,#0]  ; vframeheight
00056c  e1a020a2          MOV      r2,r2,LSR #1
000570  e59f3338          LDR      r3,|L1.2224|
000574  e5832000          STR      r2,[r3,#0]  ; vframeheight
;;;90     	}			
;;;91     
;;;92     	switch(whichframebuffer) {
                  |L1.1400|
000578  e3510000          CMP      r1,#0
00057c  0a000006          BEQ      |L1.1436|
000580  e3510001          CMP      r1,#1
000584  0a000008          BEQ      |L1.1452|
000588  e3510002          CMP      r1,#2
00058c  0a00000a          BEQ      |L1.1468|
000590  e3510003          CMP      r1,#3
000594  1a000010          BNE      |L1.1500|
000598  ea00000b          B        |L1.1484|
;;;93     		case BGBUFFER1:
;;;94     			framebuffer=(U32 *)LCDFRAMEBUFFERBG1;
                  |L1.1436|
00059c  e3a0254c          MOV      r2,#0x13000000
0005a0  e59f3310          LDR      r3,|L1.2232|
0005a4  e5832000          STR      r2,[r3,#0]  ; framebuffer
;;;95     			break;
0005a8  ea00000c          B        |L1.1504|
;;;96     		case BGBUFFER2:
;;;97     			framebuffer=(U32 *)LCDFRAMEBUFFERBG2;
                  |L1.1452|
0005ac  e59f2328          LDR      r2,|L1.2268|
0005b0  e59f3300          LDR      r3,|L1.2232|
0005b4  e5832000          STR      r2,[r3,#0]  ; framebuffer
;;;98     			break;
0005b8  ea000008          B        |L1.1504|
;;;99     		case FGBUFFER1:
;;;100    			framebuffer=(U32 *)LCDFRAMEBUFFERFG1;
                  |L1.1468|
0005bc  e3a0254d          MOV      r2,#0x13400000
0005c0  e59f32f0          LDR      r3,|L1.2232|
0005c4  e5832000          STR      r2,[r3,#0]  ; framebuffer
;;;101    			break;
0005c8  ea000004          B        |L1.1504|
;;;102    		case FGBUFFER2:
;;;103    			framebuffer=(U32 *)LCDFRAMEBUFFERFG2;
                  |L1.1484|
0005cc  e59f230c          LDR      r2,|L1.2272|
0005d0  e59f32e0          LDR      r3,|L1.2232|
0005d4  e5832000          STR      r2,[r3,#0]  ; framebuffer
;;;104    			break;
0005d8  ea000000          B        |L1.1504|
;;;105    		default:
;;;106    			break;
                  |L1.1500|
0005dc  e1a00000          NOP      
;;;107    	}	
;;;108    }
                  |L1.1504|
0005e0  e12fff1e          BX       lr
                          ENDP

                  GlibLine PROC
;;;182    void GlibLine(int x1,int y1,int x2,int y2,int color)
;;;183    {
0005e4  e92d4ff8          STMFD    sp!,{r3-r11,lr}
0005e8  e1a05000          MOV      r5,r0
0005ec  e1a06001          MOV      r6,r1
0005f0  e1a0a002          MOV      r10,r2
0005f4  e1a0b003          MOV      r11,r3
0005f8  e59d9028          LDR      r9,[sp,#0x28]
;;;184    	int dx,dy,e;
;;;185    	dx=x2-x1; 
0005fc  e04a8005          SUB      r8,r10,r5
;;;186    	dy=y2-y1;
000600  e04b7006          SUB      r7,r11,r6
;;;187        
;;;188    	if(dx>=0)
000604  e3580000          CMP      r8,#0
000608  ba000052          BLT      |L1.1880|
;;;189    	{
;;;190    		if(dy >= 0) // dy>=0
00060c  e3570000          CMP      r7,#0
000610  ba000027          BLT      |L1.1716|
;;;191    		{
;;;192    			if(dx>=dy) // 1/8 octant
000614  e1580007          CMP      r8,r7
000618  ba000012          BLT      |L1.1640|
;;;193    			{
;;;194    				e=dy-dx/2;
00061c  e1a00008          MOV      r0,r8
000620  e0881fa8          ADD      r1,r8,r8,LSR #31
000624  e04740c1          SUB      r4,r7,r1,ASR #1
;;;195    				while(x1<=x2)
000628  e1a00000          NOP      
                  |L1.1580|
00062c  e155000a          CMP      r5,r10
000630  ca00009c          BGT      |L1.2216|
;;;196    				{
;;;197    					PutPixel(x1,y1,color);
000634  e1a02009          MOV      r2,r9
000638  e1a01006          MOV      r1,r6
00063c  e1a00005          MOV      r0,r5
000640  e59f327c          LDR      r3,|L1.2244|
000644  e5933000          LDR      r3,[r3,#0]  ; PutPixel
000648  e12fff33          BLX      r3
;;;198    					if(e>0){y1+=1;e-=dx;}	
00064c  e3540000          CMP      r4,#0
000650  da000001          BLE      |L1.1628|
000654  e2866001          ADD      r6,r6,#1
000658  e0444008          SUB      r4,r4,r8
;;;199    					x1+=1;
                  |L1.1628|
00065c  e2855001          ADD      r5,r5,#1
;;;200    					e+=dy;
000660  e0844007          ADD      r4,r4,r7
;;;201    				}
000664  eafffff0          B        |L1.1580|
;;;202    			}
;;;203    			else		// 2/8 octant
;;;204    			{
;;;205    				e=dx-dy/2;
                  |L1.1640|
000668  e1a00007          MOV      r0,r7
00066c  e0871fa7          ADD      r1,r7,r7,LSR #31
000670  e04840c1          SUB      r4,r8,r1,ASR #1
;;;206    				while(y1<=y2)
000674  e1a00000          NOP      
                  |L1.1656|
000678  e156000b          CMP      r6,r11
00067c  ca000089          BGT      |L1.2216|
;;;207    				{
;;;208    					PutPixel(x1,y1,color);
000680  e1a02009          MOV      r2,r9
000684  e1a01006          MOV      r1,r6
000688  e1a00005          MOV      r0,r5
00068c  e59f3230          LDR      r3,|L1.2244|
000690  e5933000          LDR      r3,[r3,#0]  ; PutPixel
000694  e12fff33          BLX      r3
;;;209    					if(e>0){x1+=1;e-=dy;}	
000698  e3540000          CMP      r4,#0
00069c  da000001          BLE      |L1.1704|
0006a0  e2855001          ADD      r5,r5,#1
0006a4  e0444007          SUB      r4,r4,r7
;;;210    					y1+=1;
                  |L1.1704|
0006a8  e2866001          ADD      r6,r6,#1
;;;211    					e+=dx;
0006ac  e0844008          ADD      r4,r4,r8
;;;212    				}
0006b0  eafffff0          B        |L1.1656|
;;;213    			}
;;;214    		}
;;;215    		else		   // dy<0
;;;216    		{
;;;217    			dy=-dy;   // dy=abs(dy)
                  |L1.1716|
0006b4  e2677000          RSB      r7,r7,#0
;;;218    
;;;219    			if(dx>=dy) // 8/8 octant
0006b8  e1580007          CMP      r8,r7
0006bc  ba000012          BLT      |L1.1804|
;;;220    			{
;;;221    				e=dy-dx/2;
0006c0  e1a00008          MOV      r0,r8
0006c4  e0881fa8          ADD      r1,r8,r8,LSR #31
0006c8  e04740c1          SUB      r4,r7,r1,ASR #1
;;;222    				while(x1<=x2)
0006cc  e1a00000          NOP      
                  |L1.1744|
0006d0  e155000a          CMP      r5,r10
0006d4  ca000073          BGT      |L1.2216|
;;;223    				{
;;;224    					PutPixel(x1,y1,color);
0006d8  e1a02009          MOV      r2,r9
0006dc  e1a01006          MOV      r1,r6
0006e0  e1a00005          MOV      r0,r5
0006e4  e59f31d8          LDR      r3,|L1.2244|
0006e8  e5933000          LDR      r3,[r3,#0]  ; PutPixel
0006ec  e12fff33          BLX      r3
;;;225    					if(e>0){y1-=1;e-=dx;}	
0006f0  e3540000          CMP      r4,#0
0006f4  da000001          BLE      |L1.1792|
0006f8  e2466001          SUB      r6,r6,#1
0006fc  e0444008          SUB      r4,r4,r8
;;;226    					x1+=1;
                  |L1.1792|
000700  e2855001          ADD      r5,r5,#1
;;;227    					e+=dy;
000704  e0844007          ADD      r4,r4,r7
;;;228    				}
000708  eafffff0          B        |L1.1744|
;;;229    			}
;;;230    			else		// 7/8 octant
;;;231    			{
;;;232    				e=dx-dy/2;
                  |L1.1804|

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -