📄 glib.txt
字号:
0009c0 00000000 DCD frameBuffer8Bit
|L1.2500|
0009c4 00000000 DCD frameBuffer4Bit
|L1.2504|
0009c8 00000000 DCD frameBuffer2Bit
|L1.2508|
0009cc 00000000 DCD frameBuffer1Bit
|L1.2512|
0009d0 00000000 DCD _PutStn1Bit
|L1.2516|
0009d4 00000000 DCD ||.bss$2||
|L1.2520|
0009d8 00000000 DCD _PutStn2Bit
|L1.2524|
0009dc 00000000 DCD _PutStn4Bit
|L1.2528|
0009e0 00000000 DCD _PutCstn8Bit
|L1.2532|
0009e4 00000000 DCD _PutCstn12Bit
|L1.2536|
0009e8 00000000 DCD _PutCstn16Bit
|L1.2540|
0009ec 00000000 DCD _PutTft8Bit_240320
|L1.2544|
0009f0 00000000 DCD _PutTft16Bit_240320
|L1.2548|
0009f4 00000000 DCD _PutTft1Bit_640480
|L1.2552|
0009f8 00000000 DCD _PutTft8Bit_640480
|L1.2556|
0009fc 00000000 DCD _PutTft16Bit_640480
|L1.2560|
000a00 00000000 DCD _PutTft24Bit_640480
|L1.2564|
000a04 00000000 DCD _PutTft1Bit_800600
|L1.2568|
000a08 00000000 DCD _PutTft8Bit_800600
|L1.2572|
000a0c 00000000 DCD _PutTft16Bit_800600
ENDP
Glib_Line PROC
;;;252 void Glib_Line(int x1,int y1,int x2,int y2,int color)
;;;253 {
000a10 e92d4ff8 STMFD sp!,{r3-r11,lr}
000a14 e1a05000 MOV r5,r0
000a18 e1a06001 MOV r6,r1
000a1c e1a0a002 MOV r10,r2
000a20 e1a0b003 MOV r11,r3
000a24 e59d9028 LDR r9,[sp,#0x28]
;;;254 int dx,dy,e;
;;;255 dx=x2-x1;
000a28 e04a8005 SUB r8,r10,r5
;;;256 dy=y2-y1;
000a2c e04b7006 SUB r7,r11,r6
;;;257
;;;258 if(dx>=0)
000a30 e3580000 CMP r8,#0
000a34 ba000056 BLT |L1.2964|
;;;259 {
;;;260 if(dy >= 0) // dy>=0
000a38 e3570000 CMP r7,#0
000a3c ba000029 BLT |L1.2792|
;;;261 {
;;;262 if(dx>=dy) // 1/8 octant
000a40 e1580007 CMP r8,r7
000a44 ba000013 BLT |L1.2712|
;;;263 {
;;;264 e=dy-dx/2;
000a48 e1a00008 MOV r0,r8
000a4c e0881fa8 ADD r1,r8,r8,LSR #31
000a50 e04740c1 SUB r4,r7,r1,ASR #1
;;;265 while(x1<=x2)
000a54 e1a00000 NOP
|L1.2648|
000a58 e155000a CMP r5,r10
000a5c ca0000a4 BGT |L1.3316|
;;;266 {
;;;267 PutPixel(x1,y1,color);
000a60 e1a02009 MOV r2,r9
000a64 e1a01006 MOV r1,r6
000a68 e1a00005 MOV r0,r5
000a6c e51f30a0 LDR r3,|L1.2516|
000a70 e5933000 LDR r3,[r3,#0] ; PutPixel
000a74 e1a0e00f MOV lr,pc
000a78 e1a0f003 MOV pc,r3
;;;268 if(e>0){y1+=1;e-=dx;}
000a7c e3540000 CMP r4,#0
000a80 da000001 BLE |L1.2700|
000a84 e2866001 ADD r6,r6,#1
000a88 e0444008 SUB r4,r4,r8
;;;269 x1+=1;
|L1.2700|
000a8c e2855001 ADD r5,r5,#1
;;;270 e+=dy;
000a90 e0844007 ADD r4,r4,r7
;;;271 }
000a94 eaffffef B |L1.2648|
;;;272 }
;;;273 else // 2/8 octant
;;;274 {
;;;275 e=dx-dy/2;
|L1.2712|
000a98 e1a00007 MOV r0,r7
000a9c e0871fa7 ADD r1,r7,r7,LSR #31
000aa0 e04840c1 SUB r4,r8,r1,ASR #1
;;;276 while(y1<=y2)
000aa4 e1a00000 NOP
|L1.2728|
000aa8 e156000b CMP r6,r11
000aac ca000090 BGT |L1.3316|
;;;277 {
;;;278 PutPixel(x1,y1,color);
000ab0 e1a02009 MOV r2,r9
000ab4 e1a01006 MOV r1,r6
000ab8 e1a00005 MOV r0,r5
000abc e51f30f0 LDR r3,|L1.2516|
000ac0 e5933000 LDR r3,[r3,#0] ; PutPixel
000ac4 e1a0e00f MOV lr,pc
000ac8 e1a0f003 MOV pc,r3
;;;279 if(e>0){x1+=1;e-=dy;}
000acc e3540000 CMP r4,#0
000ad0 da000001 BLE |L1.2780|
000ad4 e2855001 ADD r5,r5,#1
000ad8 e0444007 SUB r4,r4,r7
;;;280 y1+=1;
|L1.2780|
000adc e2866001 ADD r6,r6,#1
;;;281 e+=dx;
000ae0 e0844008 ADD r4,r4,r8
;;;282 }
000ae4 eaffffef B |L1.2728|
;;;283 }
;;;284 }
;;;285 else // dy<0
;;;286 {
;;;287 dy=-dy; // dy=abs(dy)
|L1.2792|
000ae8 e2677000 RSB r7,r7,#0
;;;288
;;;289 if(dx>=dy) // 8/8 octant
000aec e1580007 CMP r8,r7
000af0 ba000013 BLT |L1.2884|
;;;290 {
;;;291 e=dy-dx/2;
000af4 e1a00008 MOV r0,r8
000af8 e0881fa8 ADD r1,r8,r8,LSR #31
000afc e04740c1 SUB r4,r7,r1,ASR #1
;;;292 while(x1<=x2)
000b00 e1a00000 NOP
|L1.2820|
000b04 e155000a CMP r5,r10
000b08 ca000079 BGT |L1.3316|
;;;293 {
;;;294 PutPixel(x1,y1,color);
000b0c e1a02009 MOV r2,r9
000b10 e1a01006 MOV r1,r6
000b14 e1a00005 MOV r0,r5
000b18 e51f314c LDR r3,|L1.2516|
000b1c e5933000 LDR r3,[r3,#0] ; PutPixel
000b20 e1a0e00f MOV lr,pc
000b24 e1a0f003 MOV pc,r3
;;;295 if(e>0){y1-=1;e-=dx;}
000b28 e3540000 CMP r4,#0
000b2c da000001 BLE |L1.2872|
000b30 e2466001 SUB r6,r6,#1
000b34 e0444008 SUB r4,r4,r8
;;;296 x1+=1;
|L1.2872|
000b38 e2855001 ADD r5,r5,#1
;;;297 e+=dy;
000b3c e0844007 ADD r4,r4,r7
;;;298 }
000b40 eaffffef B |L1.2820|
;;;299 }
;;;300 else // 7/8 octant
;;;301 {
;;;302 e=dx-dy/2;
|L1.2884|
000b44 e1a00007 MOV r0,r7
000b48 e0871fa7 ADD r1,r7,r7,LSR #31
000b4c e04840c1 SUB r4,r8,r1,ASR #1
;;;303 while(y1>=y2)
000b50 e1a00000 NOP
|L1.2900|
000b54 e156000b CMP r6,r11
000b58 ba000065 BLT |L1.3316|
;;;304 {
;;;305 PutPixel(x1,y1,color);
000b5c e1a02009 MOV r2,r9
000b60 e1a01006 MOV r1,r6
000b64 e1a00005 MOV r0,r5
000b68 e51f319c LDR r3,|L1.2516|
000b6c e5933000 LDR r3,[r3,#0] ; PutPixel
000b70 e1a0e00f MOV lr,pc
000b74 e1a0f003 MOV pc,r3
;;;306 if(e>0){x1+=1;e-=dy;}
000b78 e3540000 CMP r4,#0
000b7c da000001 BLE |L1.2952|
000b80 e2855001 ADD r5,r5,#1
000b84 e0444007 SUB r4,r4,r7
;;;307 y1-=1;
|L1.2952|
000b88 e2466001 SUB r6,r6,#1
;;;308 e+=dx;
000b8c e0844008 ADD r4,r4,r8
;;;309 }
000b90 eaffffef B |L1.2900|
;;;310 }
;;;311 }
;;;312 }
;;;313 else //dx<0
;;;314 {
;;;315 dx=-dx; //dx=abs(dx)
|L1.2964|
000b94 e2688000 RSB r8,r8,#0
;;;316 if(dy >= 0) // dy>=0
000b98 e3570000 CMP r7,#0
000b9c ba000029 BLT |L1.3144|
;;;317 {
;;;318 if(dx>=dy) // 4/8 octant
000ba0 e1580007 CMP r8,r7
000ba4 ba000013 BLT |L1.3064|
;;;319 {
;;;320 e=dy-dx/2;
000ba8 e1a00008 MOV r0,r8
000bac e0881fa8 ADD r1,r8,r8,LSR #31
000bb0 e04740c1 SUB r4,r7,r1,ASR #1
;;;321 while(x1>=x2)
000bb4 e1a00000 NOP
|L1.3000|
000bb8 e155000a CMP r5,r10
000bbc ba00004c BLT |L1.3316|
;;;322 {
;;;323 PutPixel(x1,y1,color);
000bc0 e1a02009 MOV r2,r9
000bc4 e1a01006 MOV r1,r6
000bc8 e1a00005 MOV r0,r5
000bcc e51f3200 LDR r3,|L1.2516|
000bd0 e5933000 LDR r3,[r3,#0] ; PutPixel
000bd4 e1a0e00f MOV lr,pc
000bd8 e1a0f003 MOV pc,r3
;;;324 if(e>0){y1+=1;e-=dx;}
000bdc e3540000 CMP r4,#0
000be0 da000001 BLE |L1.3052|
000be4 e2866001 ADD r6,r6,#1
000be8 e0444008 SUB r4,r4,r8
;;;325 x1-=1;
|L1.3052|
000bec e2455001 SUB r5,r5,#1
;;;326 e+=dy;
000bf0 e0844007 ADD r4,r4,r7
;;;327 }
000bf4 eaffffef B |L1.3000|
;;;328 }
;;;329 else // 3/8 octant
;;;330 {
;;;331 e=dx-dy/2;
|L1.3064|
000bf8 e1a00007 MOV r0,r7
000bfc e0871fa7 ADD r1,r7,r7,LSR #31
000c00 e04840c1 SUB r4,r8,r1,ASR #1
;;;332 while(y1<=y2)
000c04 e1a00000 NOP
|L1.3080|
000c08 e156000b CMP r6,r11
000c0c ca000038 BGT |L1.3316|
;;;333 {
;;;334 PutPixel(x1,y1,color);
000c10 e1a02009 MOV r2,r9
000c14 e1a01006 MOV r1,r6
000c18 e1a00005 MOV r0,r5
000c1c e51f3250 LDR r3,|L1.2516|
000c20 e5933000 LDR r3,[r3,#0] ; PutPixel
000c24 e1a0e00f MOV lr,pc
000c28 e1a0f003 MOV pc,r3
;;;335 if(e>0){x1-=1;e-=dy;}
000c2c e3540000 CMP r4,#0
000c30 da000001 BLE |L1.3132|
000c34 e2455001 SUB r5,r5,#1
000c38 e0444007 SUB r4,r4,r7
;;;336 y1+=1;
|L1.3132|
000c3c e2866001 ADD r6,r6,#1
;;;337 e+=dx;
000c40 e0844008 ADD r4,r4,r8
;;;338 }
000c44 eaffffef B |L1.3080|
;;;339 }
;;;340 }
;;;341 else // dy<0
;;;342 {
;;;343 dy=-dy; // dy=abs(dy)
|L1.3144|
000c48 e2677000 RSB r7,r7,#0
;;;344
;;;345 if(dx>=dy) // 5/8 octant
000c4c e1580007 CMP r8,r7
000c50 ba000013 BLT |L1.3236|
;;;346 {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -