📄 lcdlib.txt
字号:
000b48 e3c11940 BIC r1,r1,#0x100000
000b4c e3a0244a MOV r2,#0x4a000000
000b50 e5821000 STR r1,[r2,#0]
;;;607 break;
000b54 ea000006 B |L1.2932|
;;;608 case FGBUFFER2:
;;;609 rLCDCON1=(rLCDCON1&~(1<<20))|(1<<20);
|L1.2904|
000b58 e3a0144a MOV r1,#0x4a000000
000b5c e5911000 LDR r1,[r1,#0]
000b60 e3811940 ORR r1,r1,#0x100000
000b64 e3a0244a MOV r2,#0x4a000000
000b68 e5821000 STR r1,[r2,#0]
;;;610 break;
000b6c ea000000 B |L1.2932|
;;;611 default:
;;;612 break;
|L1.2928|
000b70 e1a00000 NOP
;;;613 }
;;;614 }
|L1.2932|
000b74 e12fff1e BX lr
ENDP
LcdSetFrameInterrupt PROC
;;;616 void LcdSetFrameInterrupt(U32 framesel0, U32 framesel1)
;;;617 {
000b78 e3a0244a MOV r2,#0x4a000000
;;;618 rLCDINTCON=(rLCDINTCON&~(0xf<<8))|((0x3&framesel0)<<10)|((0x3&framesel1)<<8)|(1<<7)|(1);
000b7c e5922050 LDR r2,[r2,#0x50]
000b80 e3c22ef0 BIC r2,r2,#0xf00
000b84 e2003003 AND r3,r0,#3
000b88 e1822503 ORR r2,r2,r3,LSL #10
000b8c e2013003 AND r3,r1,#3
000b90 e1822403 ORR r2,r2,r3,LSL #8
000b94 e3822081 ORR r2,r2,#0x81
000b98 e3a0344a MOV r3,#0x4a000000
000b9c e5832050 STR r2,[r3,#0x50]
;;;619 }
000ba0 e12fff1e BX lr
ENDP
LcdEnableFrameInterrupt PROC
;;;621 void LcdEnableFrameInterrupt(U32 framesel0, U32 framesel1)
;;;622 {
000ba4 e3a0244a MOV r2,#0x4a000000
;;;623
;;;624 rLCDCON1 &= (~3); // ENVID Off
000ba8 e5922000 LDR r2,[r2,#0]
000bac e3c22003 BIC r2,r2,#3
000bb0 e3a0344a MOV r3,#0x4a000000
000bb4 e5832000 STR r2,[r3,#0]
;;;625 while(((rLCDCON2>>15)&0x3ff)); //waiting for end of current frame.
000bb8 e1a00000 NOP
|L1.3004|
000bbc e3a0244a MOV r2,#0x4a000000
000bc0 e5922004 LDR r2,[r2,#4]
000bc4 e1a02382 MOV r2,r2,LSL #7
000bc8 e1b02b22 MOVS r2,r2,LSR #22
000bcc 1afffffa BNE |L1.3004|
;;;626 rLCDCON1 = rLCDCON1|(3); // ENVID On using Per Frame method
000bd0 e3a0244a MOV r2,#0x4a000000
000bd4 e5922000 LDR r2,[r2,#0]
000bd8 e3822003 ORR r2,r2,#3
000bdc e3a0344a MOV r3,#0x4a000000
000be0 e5832000 STR r2,[r3,#0]
;;;627 rLCDINTCON=(rLCDINTCON&~(0xf<<8))|((0x3&framesel0)<<10)|((0x3&framesel1)<<8)|(1<<7)|(1);
000be4 e3a0244a MOV r2,#0x4a000000
000be8 e5922050 LDR r2,[r2,#0x50]
000bec e3c22ef0 BIC r2,r2,#0xf00
000bf0 e2003003 AND r3,r0,#3
000bf4 e1822503 ORR r2,r2,r3,LSL #10
000bf8 e2013003 AND r3,r1,#3
000bfc e1822403 ORR r2,r2,r3,LSL #8
000c00 e3822081 ORR r2,r2,#0x81
000c04 e3a0344a MOV r3,#0x4a000000
000c08 e5832050 STR r2,[r3,#0x50]
;;;628 }
000c0c e12fff1e BX lr
ENDP
LcdDisableFrameInterrupt PROC
;;;630 void LcdDisableFrameInterrupt(void)
;;;631 {
000c10 e3a0044a MOV r0,#0x4a000000
;;;632
;;;633 rLCDINTCON &=~((1<<7)|1);
000c14 e5900050 LDR r0,[r0,#0x50]
000c18 e3c00081 BIC r0,r0,#0x81
000c1c e3a0144a MOV r1,#0x4a000000
000c20 e5810050 STR r0,[r1,#0x50]
;;;634 rLCDCON1 &= (~3); // ENVID Off
000c24 e3a0044a MOV r0,#0x4a000000
000c28 e5900000 LDR r0,[r0,#0]
000c2c e3c00003 BIC r0,r0,#3
000c30 e3a0144a MOV r1,#0x4a000000
000c34 e5810000 STR r0,[r1,#0]
;;;635 }
000c38 e12fff1e BX lr
ENDP
LcdEnableFifoInterrupt PROC
;;;637 void LcdEnableFifoInterrupt(U32 fifosel, U32 fifolevel)
;;;638 {
000c3c e3a0244a MOV r2,#0x4a000000
;;;639
;;;640 rLCDCON1 &= (~3); // ENVID Off
000c40 e5922000 LDR r2,[r2,#0]
000c44 e3c22003 BIC r2,r2,#3
000c48 e3a0344a MOV r3,#0x4a000000
000c4c e5832000 STR r2,[r3,#0]
;;;641 while(((rLCDCON2>>15)&0x3ff)); //waiting for end of current frame.
000c50 e1a00000 NOP
|L1.3156|
000c54 e3a0244a MOV r2,#0x4a000000
000c58 e5922004 LDR r2,[r2,#4]
000c5c e1a02382 MOV r2,r2,LSL #7
000c60 e1b02b22 MOVS r2,r2,LSR #22
000c64 1afffffa BNE |L1.3156|
;;;642 rLCDCON1 = rLCDCON1|(3); // ENVID On using Per Frame method
000c68 e3a0244a MOV r2,#0x4a000000
000c6c e5922000 LDR r2,[r2,#0]
000c70 e3822003 ORR r2,r2,#3
000c74 e3a0344a MOV r3,#0x4a000000
000c78 e5832000 STR r2,[r3,#0]
;;;643 rLCDINTCON=(rLCDINTCON&~(0x7f))|((0x3&fifosel)<<5)|((0x7&fifolevel)<<2)|(1<<1)|(1);
000c7c e3a0244a MOV r2,#0x4a000000
000c80 e5922050 LDR r2,[r2,#0x50]
000c84 e3c2207f BIC r2,r2,#0x7f
000c88 e2003003 AND r3,r0,#3
000c8c e1822283 ORR r2,r2,r3,LSL #5
000c90 e2013007 AND r3,r1,#7
000c94 e1822103 ORR r2,r2,r3,LSL #2
000c98 e3822003 ORR r2,r2,#3
000c9c e3a0344a MOV r3,#0x4a000000
000ca0 e5832050 STR r2,[r3,#0x50]
;;;644
;;;645 }
000ca4 e12fff1e BX lr
ENDP
LcdDisableFifoInterrupt PROC
;;;647 void LcdDisableFifoInterrupt(void)
;;;648 {
000ca8 e3a0044a MOV r0,#0x4a000000
;;;649
;;;650 rLCDINTCON &=~(3);
000cac e5900050 LDR r0,[r0,#0x50]
000cb0 e3c00003 BIC r0,r0,#3
000cb4 e3a0144a MOV r1,#0x4a000000
000cb8 e5810050 STR r0,[r1,#0x50]
;;;651 rLCDCON1 &= (~3); // ENVID Off
000cbc e3a0044a MOV r0,#0x4a000000
000cc0 e5900000 LDR r0,[r0,#0]
000cc4 e3c00003 BIC r0,r0,#3
000cc8 e3a0144a MOV r1,#0x4a000000
000ccc e5810000 STR r0,[r1,#0]
;;;652 }
000cd0 e12fff1e BX lr
ENDP
LcdSetFifoInterrupt PROC
;;;654 void LcdSetFifoInterrupt(U32 fifosel, U32 fifolevel)
;;;655 {
000cd4 e3a0244a MOV r2,#0x4a000000
;;;656 rLCDINTCON=(rLCDINTCON&~(0x1f<<2))|((0x3&fifosel)<<10)|((0x7&fifolevel)<<8)|(1<<1)|(1);
000cd8 e5922050 LDR r2,[r2,#0x50]
000cdc e3c2207c BIC r2,r2,#0x7c
000ce0 e2003003 AND r3,r0,#3
000ce4 e1822503 ORR r2,r2,r3,LSL #10
000ce8 e2013007 AND r3,r1,#7
000cec e1822403 ORR r2,r2,r3,LSL #8
000cf0 e3822003 ORR r2,r2,#3
000cf4 e3a0344a MOV r3,#0x4a000000
000cf8 e5832050 STR r2,[r3,#0x50]
;;;657 }
000cfc e12fff1e BX lr
ENDP
LcdOsdEnDiable PROC
;;;660 void LcdOsdEnDiable(U32 endisable)
;;;661 {
000d00 e3500001 CMP r0,#1
;;;662 if(endisable==1)
000d04 1a000005 BNE |L1.3360|
;;;663 rLCDOSD1 |= (1<<9);
000d08 e3a0144a MOV r1,#0x4a000000
000d0c e5911014 LDR r1,[r1,#0x14]
000d10 e3811f80 ORR r1,r1,#0x200
000d14 e3a0244a MOV r2,#0x4a000000
000d18 e5821014 STR r1,[r2,#0x14]
000d1c ea000004 B |L1.3380|
;;;664 else
;;;665 rLCDOSD1 &= (~(1<<9));
|L1.3360|
000d20 e3a0144a MOV r1,#0x4a000000
000d24 e5911014 LDR r1,[r1,#0x14]
000d28 e3c11f80 BIC r1,r1,#0x200
000d2c e3a0244a MOV r2,#0x4a000000
000d30 e5821014 STR r1,[r2,#0x14]
;;;666 }
|L1.3380|
000d34 e12fff1e BX lr
ENDP
LcdOsdSetAlpha PROC
;;;668 void LcdOsdSetAlpha(U32 alpha)
;;;669 {
000d38 e3a0144a MOV r1,#0x4a000000
;;;670 rLCDOSD1 = (rLCDOSD1 & ~(0xff))|(alpha & 0xff);
000d3c e5911014 LDR r1,[r1,#0x14]
000d40 e3c110ff BIC r1,r1,#0xff
000d44 e20020ff AND r2,r0,#0xff
000d48 e1811002 ORR r1,r1,r2
000d4c e3a0244a MOV r2,#0x4a000000
000d50 e5821014 STR r1,[r2,#0x14]
;;;671 }
000d54 e12fff1e BX lr
ENDP
LcdOsdSelectFunction PROC
;;;673 void LcdOsdSelectFunction(U32 function)
;;;674 {
000d58 e3500001 CMP r0,#1
;;;675 if(function==OSD_COLORKEY)
000d5c 1a000005 BNE |L1.3448|
;;;676 rLCDKEYCON|=(1<<25);
000d60 e3a0144a MOV r1,#0x4a000000
000d64 e5911054 LDR r1,[r1,#0x54]
000d68 e3811780 ORR r1,r1,#0x2000000
000d6c e3a0244a MOV r2,#0x4a000000
000d70 e5821054 STR r1,[r2,#0x54]
000d74 ea000006 B |L1.3476|
;;;677 else if(function==OSD_BLENDING)
|L1.3448|
000d78 e3500000 CMP r0,#0
000d7c 1a000004 BNE |L1.3476|
;;;678 rLCDKEYCON&=(~(1<<25));
000d80 e3a0144a MOV r1,#0x4a000000
000d84 e5911054 LDR r1,[r1,#0x54]
000d88 e3c11780 BIC r1,r1,#0x2000000
000d8c e3a0244a MOV r2,#0x4a000000
000d90 e5821054 STR r1,[r2,#0x54]
;;;679 }
|L1.3476|
000d94 e12fff1e BX lr
ENDP
LcdOsdChangeCoordination PROC
;;;681 void LcdOsdChangeCoordination(U32 topx, U32 topy, U32 botx, U32 boty)
;;;682 {
000d98 e52de004 STR lr,[sp,#-4]!
;;;683 rLCDOSD2=(rLCDOSD2&~(0x3fffff))|((0x3ff&topx)<<11)|(0x3ff&topy);
000d9c e3a0c44a MOV r12,#0x4a000000
000da0 e59cc018 LDR r12,[r12,#0x18]
000da4 e1a0cb2c MOV r12,r12,LSR #22
000da8 e1a0cb0c MOV r12,r12,LSL #22
000dac e1a0eb00 MOV lr,r0,LSL #22
000db0 e1a0eb2e MOV lr,lr,LSR #22
000db4 e18cc58e ORR r12,r12,lr,LSL #11
000db8 e1a0eb01 MOV lr,r1,LSL #22
000dbc e1a0eb2e MOV lr,lr,LSR #22
000dc0 e18cc00e ORR r12,r12,lr
000dc4 e3a0e44a MOV lr,#0x4a000000
000dc8 e58ec018 STR r12,[lr,#0x18]
;;;684 rLCDOSD3=(rLCDOSD3&~(0x3fffff))|((0x3ff&botx)<<11)|(0x3ff&boty);
000dcc e3a0c44a MOV r12,#0x4a000000
000dd0 e59cc01c LDR r12,[r12,#0x1c]
000dd4 e1a0cb2c MOV r12,r12,LSR #22
000dd8 e1a0cb0c MOV r12,r12,LSL #22
000ddc e1a0eb02 MOV lr,r2,LSL #22
000de0 e1a0eb2e MOV lr,lr,LSR #22
000de4 e18cc58e ORR r12,r12,lr,LSL #11
000de8 e1a0eb03 MOV lr,r3,LSL #22
000dec e1a0eb2e MOV lr,lr,LSR #22
000df0 e18cc00e ORR r12,r12,lr
000df4 e3a0e44a MOV lr,#0x4a000000
000df8 e58ec01c STR r12,[lr,#0x1c]
;;;685 }
000dfc e49df004 LDR pc,[sp],#4
ENDP
LcdDitheringEnDisable PROC
;;;686 void LcdDitheringEnDisable(U32 endisable)
;;;687 {
000e00 e3500001 CMP r0,#1
;;;688 if(endisable==1)
000e04 1a000005 BNE |L1.3616|
;;;689 rLCDDITHCON|=1;
000e08 e3a0144a MOV r1,#0x4a000000
000e0c e5911064 LDR r1,[r1,#0x64]
000e10 e3811001 ORR r1,r1,#1
000e14 e3a0244a MOV r2,#0x4a000000
000e18 e5821064 STR r1,[r2,#0x64]
000e1c ea000004 B |L1.3636|
;;;690 else
;;;691 rLCDDITHCON&=(~1);
|L1.3616|
000e20 e3a0144a MOV r1,#0x4a000000
000e24 e5911064 LDR r1,[r1,#0x64]
000e28 e3c11001 BIC r1,r1,#1
000e2c e3a0244a MOV r2,#0x4a000000
000e30 e5821064 STR r1,[r2,#0x64]
;;;692 }
|L1.3636|
000e34 e12fff1e BX lr
ENDP
LcdBGColorMap PROC
;;;695 void LcdBGColorMap(U32 endisable, U32 bgcolor)
;;;696 {
000e38 e3a0244a MOV r2,#0x4a000000
;;;697 rLCDBGCON=(rLCDBGCON&~(0xffffff))|(0xffffff&bgcolor);
000e3c e592205c LDR r2,[r2,#0x5c]
000e40 e20224ff AND r2,r2,#0xff000000
000e44 e3c134ff BIC r3,r1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -