📄 lcdlib.txt
字号:
000880 e2844001 ADD r4,r4,#1
000884 eafffffa B |L1.2164|
;;;503 *palette++=4369*i;
|L1.2184|
000888 e0840404 ADD r0,r4,r4,LSL #8
00088c e0800200 ADD r0,r0,r0,LSL #4
000890 e4830004 STR r0,[r3],#4
000894 eafffff9 B |L1.2176|
;;;504 *palette=0xffff; //white
|L1.2200|
000898 e59f0208 LDR r0,|L1.2728|
00089c e5830000 STR r0,[r3,#0]
;;;505 break;
0008a0 ea000077 B |L1.2692|
;;;506 case PAL_565_8BPPBG:
;;;507 rLCDCON2|=(2<<9);
|L1.2212|
0008a4 e3a0044a MOV r0,#0x4a000000
0008a8 e5900004 LDR r0,[r0,#4]
0008ac e3800e40 ORR r0,r0,#0x400
0008b0 e3a0144a MOV r1,#0x4a000000
0008b4 e5810004 STR r0,[r1,#4]
;;;508 palette=(U32 *)PALETTEBG;
0008b8 e2813d40 ADD r3,r1,#0x1000
;;;509 for(i=0;i<256;i++)
0008bc e3a04000 MOV r4,#0
|L1.2240|
0008c0 e3540f40 CMP r4,#0x100
0008c4 2a000007 BCS |L1.2280|
0008c8 ea000001 B |L1.2260|
|L1.2252|
0008cc e2844001 ADD r4,r4,#1
0008d0 eafffffa B |L1.2240|
;;;510 *palette++=DEMO256pal[i];// correction is needed
|L1.2260|
0008d4 e59f01c8 LDR r0,|L1.2724|
0008d8 e0800084 ADD r0,r0,r4,LSL #1
0008dc e1d000b0 LDRH r0,[r0,#0]
0008e0 e4830004 STR r0,[r3],#4
0008e4 eafffff8 B |L1.2252|
;;;511 break;
|L1.2280|
0008e8 ea000065 B |L1.2692|
;;;512 case PAL_565_8BPPFG:
;;;513 rLCDCON2|=(2<<9);
|L1.2284|
0008ec e3a0044a MOV r0,#0x4a000000
0008f0 e5900004 LDR r0,[r0,#4]
0008f4 e3800e40 ORR r0,r0,#0x400
0008f8 e3a0144a MOV r1,#0x4a000000
0008fc e5810004 STR r0,[r1,#4]
;;;514 palette=(U32 *)PALETTEFG;
000900 e2813d80 ADD r3,r1,#0x2000
;;;515 for(i=0;i<256;i++)
000904 e3a04000 MOV r4,#0
|L1.2312|
000908 e3540f40 CMP r4,#0x100
00090c 2a000007 BCS |L1.2352|
000910 ea000001 B |L1.2332|
|L1.2324|
000914 e2844001 ADD r4,r4,#1
000918 eafffffa B |L1.2312|
;;;516 *palette++=DEMO256pal[i];// correction is needed
|L1.2332|
00091c e59f0180 LDR r0,|L1.2724|
000920 e0800084 ADD r0,r0,r4,LSL #1
000924 e1d000b0 LDRH r0,[r0,#0]
000928 e4830004 STR r0,[r3],#4
00092c eafffff8 B |L1.2324|
;;;517 break;
|L1.2352|
000930 ea000053 B |L1.2692|
;;;518 case PAL_5551_1BPP:
;;;519 rLCDCON2|=(3<<9);
|L1.2356|
000934 e3a0044a MOV r0,#0x4a000000
000938 e5900004 LDR r0,[r0,#4]
00093c e3800e60 ORR r0,r0,#0x600
000940 e3a0144a MOV r1,#0x4a000000
000944 e5810004 STR r0,[r1,#4]
;;;520 palette=(U32 *)PALETTEBG;
000948 e2813d40 ADD r3,r1,#0x1000
;;;521 *palette++=0x0;//black
00094c e3a00000 MOV r0,#0
000950 e4830004 STR r0,[r3],#4
;;;522 *palette=0xffff;//white
000954 e59f014c LDR r0,|L1.2728|
000958 e5830000 STR r0,[r3,#0]
;;;523 break;
00095c ea000048 B |L1.2692|
;;;524 case PAL_5551_2BPP:
;;;525 rLCDCON2|=(3<<9);
|L1.2400|
000960 e3a0044a MOV r0,#0x4a000000
000964 e5900004 LDR r0,[r0,#4]
000968 e3800e60 ORR r0,r0,#0x600
00096c e3a0144a MOV r1,#0x4a000000
000970 e5810004 STR r0,[r1,#4]
;;;526 palette=(U32 *)PALETTEBG;
000974 e2813d40 ADD r3,r1,#0x1000
;;;527 *palette++=0xf801; // red
000978 e59f012c LDR r0,|L1.2732|
00097c e4830004 STR r0,[r3],#4
;;;528 *palette++=0x7c1; //green
000980 e59f0128 LDR r0,|L1.2736|
000984 e4830004 STR r0,[r3],#4
;;;529 *palette++=0x3f; // blue
000988 e3a0003f MOV r0,#0x3f
00098c e4830004 STR r0,[r3],#4
;;;530 *palette=0xffff; // white
000990 e59f0110 LDR r0,|L1.2728|
000994 e5830000 STR r0,[r3,#0]
;;;531 break;
000998 ea000039 B |L1.2692|
;;;532 case PAL_5551_4BPP:
;;;533 rLCDCON2|=(3<<9);
|L1.2460|
00099c e3a0044a MOV r0,#0x4a000000
0009a0 e5900004 LDR r0,[r0,#4]
0009a4 e3800e60 ORR r0,r0,#0x600
0009a8 e3a0144a MOV r1,#0x4a000000
0009ac e5810004 STR r0,[r1,#4]
;;;534 palette=(U32 *)PALETTEBG;
0009b0 e2813d40 ADD r3,r1,#0x1000
;;;535 *palette++=0x0; //black
0009b4 e3a00000 MOV r0,#0
0009b8 e4830004 STR r0,[r3],#4
;;;536 for(i=0; i<14; i++)
0009bc e3a04000 MOV r4,#0
|L1.2496|
0009c0 e354000e CMP r4,#0xe
0009c4 2a000006 BCS |L1.2532|
0009c8 ea000001 B |L1.2516|
|L1.2508|
0009cc e2844001 ADD r4,r4,#1
0009d0 eafffffa B |L1.2496|
;;;537 *palette++=4369*i;
|L1.2516|
0009d4 e0840404 ADD r0,r4,r4,LSL #8
0009d8 e0800200 ADD r0,r0,r0,LSL #4
0009dc e4830004 STR r0,[r3],#4
0009e0 eafffff9 B |L1.2508|
;;;538 *palette=0xffff; //white
|L1.2532|
0009e4 e59f00bc LDR r0,|L1.2728|
0009e8 e5830000 STR r0,[r3,#0]
;;;539 break;
0009ec ea000024 B |L1.2692|
;;;540 case PAL_5551_8BPPBG:
;;;541 rLCDCON2|=(3<<9);
|L1.2544|
0009f0 e3a0044a MOV r0,#0x4a000000
0009f4 e5900004 LDR r0,[r0,#4]
0009f8 e3800e60 ORR r0,r0,#0x600
0009fc e3a0144a MOV r1,#0x4a000000
000a00 e5810004 STR r0,[r1,#4]
;;;542 palette=(U32 *)PALETTEBG;
000a04 e2813d40 ADD r3,r1,#0x1000
;;;543 for(i=0;i<256;i++)
000a08 e3a04000 MOV r4,#0
|L1.2572|
000a0c e3540f40 CMP r4,#0x100
000a10 2a000007 BCS |L1.2612|
000a14 ea000001 B |L1.2592|
|L1.2584|
000a18 e2844001 ADD r4,r4,#1
000a1c eafffffa B |L1.2572|
;;;544 *palette++=DEMO256pal[i];// correction is needed
|L1.2592|
000a20 e59f007c LDR r0,|L1.2724|
000a24 e0800084 ADD r0,r0,r4,LSL #1
000a28 e1d000b0 LDRH r0,[r0,#0]
000a2c e4830004 STR r0,[r3],#4
000a30 eafffff8 B |L1.2584|
;;;545 break;
|L1.2612|
000a34 ea000012 B |L1.2692|
;;;546 case PAL_5551_8BPPFG:
;;;547 rLCDCON2|=(3<<9);
|L1.2616|
000a38 e3a0044a MOV r0,#0x4a000000
000a3c e5900004 LDR r0,[r0,#4]
000a40 e3800e60 ORR r0,r0,#0x600
000a44 e3a0144a MOV r1,#0x4a000000
000a48 e5810004 STR r0,[r1,#4]
;;;548 palette=(U32 *)PALETTEFG;
000a4c e2813d80 ADD r3,r1,#0x2000
;;;549 for(i=0;i<256;i++)
000a50 e3a04000 MOV r4,#0
|L1.2644|
000a54 e3540f40 CMP r4,#0x100
000a58 2a000007 BCS |L1.2684|
000a5c ea000001 B |L1.2664|
|L1.2656|
000a60 e2844001 ADD r4,r4,#1
000a64 eafffffa B |L1.2644|
;;;550 *palette++=DEMO256pal[i];// correction is needed
|L1.2664|
000a68 e59f0034 LDR r0,|L1.2724|
000a6c e0800084 ADD r0,r0,r4,LSL #1
000a70 e1d000b0 LDRH r0,[r0,#0]
000a74 e4830004 STR r0,[r3],#4
000a78 eafffff8 B |L1.2656|
;;;551 break;
|L1.2684|
000a7c ea000000 B |L1.2692|
;;;552 default:
;;;553 break;
|L1.2688|
000a80 e1a00000 NOP
;;;554 }
;;;555 }
|L1.2692|
000a84 e8bd8030 LDMFD sp!,{r4,r5,pc}
|L1.2696|
000a88 0000013f DCD 0x0000013f
|L1.2700|
000a8c 001001c0 DCD 0x001001c0
|L1.2704|
000a90 13200000 DCD 0x13200000
|L1.2708|
000a94 0000012b DCD 0x0000012b
|L1.2712|
000a98 13600000 DCD 0x13600000
|L1.2716|
000a9c 0003ffff DCD 0x0003ffff
|L1.2720|
000aa0 00004444 DCD 0x00004444
|L1.2724|
000aa4 00000000 DCD ||.constdata$1||
|L1.2728|
000aa8 0000ffff DCD 0x0000ffff
|L1.2732|
000aac 0000f801 DCD 0x0000f801
|L1.2736|
000ab0 000007c1 DCD 0x000007c1
ENDP
LcdEnvidOnOffDirect PROC
;;;598 void LcdEnvidOnOffDirect(U32 onoff)
;;;599 {
000ab4 e3500001 CMP r0,#1
;;;600 #if 1
;;;601 if(onoff==1)
000ab8 1a000005 BNE |L1.2772|
;;;602 // rLCDCON1 = (rLCDCON1 & ~(3))|(1<<1); // ENVID On using Direct method
;;;603 rLCDCON1 |= (1<<1);
000abc e3a0144a MOV r1,#0x4a000000
000ac0 e5911000 LDR r1,[r1,#0]
000ac4 e3811002 ORR r1,r1,#2
000ac8 e3a0244a MOV r2,#0x4a000000
000acc e5821000 STR r1,[r2,#0]
000ad0 ea000004 B |L1.2792|
;;;604 else
;;;605 rLCDCON1 &= ~(1<<1);
|L1.2772|
000ad4 e3a0144a MOV r1,#0x4a000000
000ad8 e5911000 LDR r1,[r1,#0]
000adc e3c11002 BIC r1,r1,#2
000ae0 e3a0244a MOV r2,#0x4a000000
000ae4 e5821000 STR r1,[r2,#0]
;;;606 // rLCDCON1 &= (~3); // ENVID Off for using Direct method
;;;607 #else
;;;608 if(onoff==1) {
;;;609 rLCDCON1 = (rLCDCON1 & ~(3))|(1<<1); // ENVID On using Direct method
;;;610 LcdSetFrameInterrupt(FRAMESEL0_VSYNC, FRAMESEL1_NONE);
;;;611 }
;;;612 else {
;;;613 rLCDCON1 &= (~3); // ENVID Off for using Direct method
;;;614 rLCDINTCON &= ~((1<<7)|(3));
;;;615 }
;;;616 #endif
;;;617 }
|L1.2792|
000ae8 e12fff1e BX lr
ENDP
LcdSelectBuffer PROC
;;;619 void LcdSelectBuffer(U32 whichbuffer)
;;;620 {
000aec e3500000 CMP r0,#0
;;;621
;;;622 //WhichFrameBuffer=whichbuffer;
;;;623 switch(whichbuffer) {
000af0 0a000006 BEQ |L1.2832|
000af4 e3500001 CMP r0,#1
000af8 0a00000a BEQ |L1.2856|
000afc e3500002 CMP r0,#2
000b00 0a00000e BEQ |L1.2880|
000b04 e3500003 CMP r0,#3
000b08 1a000018 BNE |L1.2928|
000b0c ea000011 B |L1.2904|
;;;624 case BGBUFFER1:
;;;625 rLCDCON1=(rLCDCON1&~(1<<21))|(0<<21);
|L1.2832|
000b10 e3a0144a MOV r1,#0x4a000000
000b14 e5911000 LDR r1,[r1,#0]
000b18 e3c11980 BIC r1,r1,#0x200000
000b1c e3a0244a MOV r2,#0x4a000000
000b20 e5821000 STR r1,[r2,#0]
;;;626 break;
000b24 ea000012 B |L1.2932|
;;;627 case BGBUFFER2:
;;;628 rLCDCON1=(rLCDCON1&~(1<<21))|(1<<21);
|L1.2856|
000b28 e3a0144a MOV r1,#0x4a000000
000b2c e5911000 LDR r1,[r1,#0]
000b30 e3811980 ORR r1,r1,#0x200000
000b34 e3a0244a MOV r2,#0x4a000000
000b38 e5821000 STR r1,[r2,#0]
;;;629 break;
000b3c ea00000c B |L1.2932|
;;;630 case FGBUFFER1:
;;;631 rLCDCON1=(rLCDCON1&~(1<<20))|(0<<20);
|L1.2880|
000b40 e3a0144a MOV r1,#0x4a000000
000b44 e5911000 LDR r1,[r1,#0]
000b48 e3c11940 BIC r1,r1,#0x100000
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -