📄 lcdlib.txt
字号:
000878 2a000006 BCS |L1.2200|
00087c ea000001 B |L1.2184|
|L1.2176|
000880 e2844001 ADD r4,r4,#1
000884 eafffffa B |L1.2164|
;;;480 *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|
;;;481 *palette=0xffff; //white
|L1.2200|
000898 e59f0204 LDR r0,|L1.2724|
00089c e5830000 STR r0,[r3,#0]
;;;482 break;
0008a0 ea000077 B |L1.2692|
;;;483 case PAL_565_8BPPBG:
;;;484 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]
;;;485 palette=(U32 *)PALETTEBG;
0008b8 e2813d40 ADD r3,r1,#0x1000
;;;486 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|
;;;487 *palette++=DEMO256pal[i];// correction is needed
|L1.2260|
0008d4 e59f01c4 LDR r0,|L1.2720|
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|
;;;488 break;
|L1.2280|
0008e8 ea000065 B |L1.2692|
;;;489 case PAL_565_8BPPFG:
;;;490 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]
;;;491 palette=(U32 *)PALETTEFG;
000900 e2813d80 ADD r3,r1,#0x2000
;;;492 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|
;;;493 *palette++=DEMO256pal[i];// correction is needed
|L1.2332|
00091c e59f017c LDR r0,|L1.2720|
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|
;;;494 break;
|L1.2352|
000930 ea000053 B |L1.2692|
;;;495 case PAL_5551_1BPP:
;;;496 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]
;;;497 palette=(U32 *)PALETTEBG;
000948 e2813d40 ADD r3,r1,#0x1000
;;;498 *palette++=0x0;//black
00094c e3a00000 MOV r0,#0
000950 e4830004 STR r0,[r3],#4
;;;499 *palette=0xffff;//white
000954 e59f0148 LDR r0,|L1.2724|
000958 e5830000 STR r0,[r3,#0]
;;;500 break;
00095c ea000048 B |L1.2692|
;;;501 case PAL_5551_2BPP:
;;;502 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]
;;;503 palette=(U32 *)PALETTEBG;
000974 e2813d40 ADD r3,r1,#0x1000
;;;504 *palette++=0xf801; // red
000978 e59f0128 LDR r0,|L1.2728|
00097c e4830004 STR r0,[r3],#4
;;;505 *palette++=0x7c1; //green
000980 e59f0124 LDR r0,|L1.2732|
000984 e4830004 STR r0,[r3],#4
;;;506 *palette++=0x3f; // blue
000988 e3a0003f MOV r0,#0x3f
00098c e4830004 STR r0,[r3],#4
;;;507 *palette=0xffff; // white
000990 e59f010c LDR r0,|L1.2724|
000994 e5830000 STR r0,[r3,#0]
;;;508 break;
000998 ea000039 B |L1.2692|
;;;509 case PAL_5551_4BPP:
;;;510 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]
;;;511 palette=(U32 *)PALETTEBG;
0009b0 e2813d40 ADD r3,r1,#0x1000
;;;512 *palette++=0x0; //black
0009b4 e3a00000 MOV r0,#0
0009b8 e4830004 STR r0,[r3],#4
;;;513 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|
;;;514 *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|
;;;515 *palette=0xffff; //white
|L1.2532|
0009e4 e59f00b8 LDR r0,|L1.2724|
0009e8 e5830000 STR r0,[r3,#0]
;;;516 break;
0009ec ea000024 B |L1.2692|
;;;517 case PAL_5551_8BPPBG:
;;;518 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]
;;;519 palette=(U32 *)PALETTEBG;
000a04 e2813d40 ADD r3,r1,#0x1000
;;;520 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|
;;;521 *palette++=DEMO256pal[i];// correction is needed
|L1.2592|
000a20 e59f0078 LDR r0,|L1.2720|
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|
;;;522 break;
|L1.2612|
000a34 ea000012 B |L1.2692|
;;;523 case PAL_5551_8BPPFG:
;;;524 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]
;;;525 palette=(U32 *)PALETTEFG;
000a4c e2813d80 ADD r3,r1,#0x2000
;;;526 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|
;;;527 *palette++=DEMO256pal[i];// correction is needed
|L1.2664|
000a68 e59f0030 LDR r0,|L1.2720|
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|
;;;528 break;
|L1.2684|
000a7c ea000000 B |L1.2692|
;;;529 default:
;;;530 break;
|L1.2688|
000a80 e1a00000 NOP
;;;531 }
;;;532 }
|L1.2692|
000a84 e8bd8030 LDMFD sp!,{r4,r5,pc}
|L1.2696|
000a88 001001c0 DCD 0x001001c0
|L1.2700|
000a8c 13200000 DCD 0x13200000
|L1.2704|
000a90 0000012b DCD 0x0000012b
|L1.2708|
000a94 13600000 DCD 0x13600000
|L1.2712|
000a98 0003ffff DCD 0x0003ffff
|L1.2716|
000a9c 00004444 DCD 0x00004444
|L1.2720|
000aa0 00000000 DCD ||.constdata$1||
|L1.2724|
000aa4 0000ffff DCD 0x0000ffff
|L1.2728|
000aa8 0000f801 DCD 0x0000f801
|L1.2732|
000aac 000007c1 DCD 0x000007c1
ENDP
LcdEnvidOnOffDirect PROC
;;;575 void LcdEnvidOnOffDirect(U32 onoff)
;;;576 {
000ab0 e3500001 CMP r0,#1
;;;577 #if 1
;;;578 if(onoff==1)
000ab4 1a000006 BNE |L1.2772|
;;;579 rLCDCON1 = (rLCDCON1 & ~(3))|(1<<1); // ENVID On using Direct method
000ab8 e3a0144a MOV r1,#0x4a000000
000abc e5911000 LDR r1,[r1,#0]
000ac0 e3c11003 BIC r1,r1,#3
000ac4 e3811002 ORR r1,r1,#2
000ac8 e3a0244a MOV r2,#0x4a000000
000acc e5821000 STR r1,[r2,#0]
000ad0 ea000004 B |L1.2792|
;;;580 else
;;;581 rLCDCON1 &= (~3); // ENVID Off for using Direct method
|L1.2772|
000ad4 e3a0144a MOV r1,#0x4a000000
000ad8 e5911000 LDR r1,[r1,#0]
000adc e3c11003 BIC r1,r1,#3
000ae0 e3a0244a MOV r2,#0x4a000000
000ae4 e5821000 STR r1,[r2,#0]
;;;582 #else
;;;583 if(onoff==1) {
;;;584 rLCDCON1 = (rLCDCON1 & ~(3))|(1<<1); // ENVID On using Direct method
;;;585 LcdSetFrameInterrupt(FRAMESEL0_VSYNC, FRAMESEL1_NONE);
;;;586 }
;;;587 else {
;;;588 rLCDCON1 &= (~3); // ENVID Off for using Direct method
;;;589 rLCDINTCON &= ~((1<<7)|(3));
;;;590 }
;;;591 #endif
;;;592 }
|L1.2792|
000ae8 e12fff1e BX lr
ENDP
LcdSelectBuffer PROC
;;;594 void LcdSelectBuffer(U32 whichbuffer)
;;;595 {
000aec e3500000 CMP r0,#0
;;;596
;;;597 //WhichFrameBuffer=whichbuffer;
;;;598 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|
;;;599 case BGBUFFER1:
;;;600 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]
;;;601 break;
000b24 ea000012 B |L1.2932|
;;;602 case BGBUFFER2:
;;;603 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]
;;;604 break;
000b3c ea00000c B |L1.2932|
;;;605 case FGBUFFER1:
;;;606 rLCDCON1=(rLCDCON1&~(1<<20))|(0<<20);
|L1.2880|
000b40 e3a0144a MOV r1,#0x4a000000
000b44 e5911000 LDR r1,[r1,#0]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -