📄 lcdlib.txt
字号:
; generated by ARM C Compiler, ADS1.2 [Build 842]
; commandline [-errors .\err\lcdlib.err -O0 -asm -g+ -cpu 5TEJ -fs -Wd -Ec -I.\include "-IC:\Program Files\ARM\ADSv1_2\INCLUDE"]
CODE32
AREA ||.text||, CODE, READONLY
LcdBGInit PROC
;;;42 void LcdBGInit(U32 displaytype)
;;;43 {
|L1.0|
000000 e92d4ff1 STMFD sp!,{r0,r4-r11,lr}
000004 e24dd014 SUB sp,sp,#0x14
;;;44 U32 pagewidth, offsize, bytefactor;
;;;45 U32 clkval, pnrmode, bppmode;
;;;46 U32 vbpd, vfpd, vspw, hbpd, hfpd, hspw;
;;;47 U32 lineval, hozval;
;;;48 U32 hwswp;
;;;49 U32 framebuffer1, framebuffer2;
;;;50
;;;51 if(displaytype&0x1000)
000008 e59d0014 LDR r0,[sp,#0x14]
00000c e3100d40 TST r0,#0x1000
000010 0a000002 BEQ |L1.32|
;;;52 pnrmode=PNRMODE_SER_RGB;
000014 e3a0b002 MOV r11,#2
000018 e58db00c STR r11,[sp,#0xc]
00001c ea000001 B |L1.40|
;;;53 else
;;;54 pnrmode=PNRMODE_PAR_RGB;
|L1.32|
000020 e3a0b000 MOV r11,#0
000024 e58db00c STR r11,[sp,#0xc]
;;;55
;;;56 switch(displaytype&0xf) {
|L1.40|
000028 e59d0014 LDR r0,[sp,#0x14]
00002c e200000f AND r0,r0,#0xf
000030 e3500007 CMP r0,#7
000034 908ff100 ADDLS pc,pc,r0,LSL #2
000038 ea00001f B |L1.188|
00003c ea000006 B |L1.92|
000040 ea000008 B |L1.104|
000044 ea00000a B |L1.116|
000048 ea00000c B |L1.128|
00004c ea00000e B |L1.140|
000050 ea000010 B |L1.152|
000054 ea000012 B |L1.164|
000058 ea000014 B |L1.176|
;;;57 case 0x0:
;;;58 bytefactor=1;
|L1.92|
00005c e3a01001 MOV r1,#1
;;;59 bppmode=BPPMODE_1BPP;
000060 e3a0c000 MOV r12,#0
;;;60 break;
000064 ea000015 B |L1.192|
;;;61 case 0x1:
;;;62 bytefactor=2;
|L1.104|
000068 e3a01002 MOV r1,#2
;;;63 bppmode=BPPMODE_2BPP;
00006c e3a0c001 MOV r12,#1
;;;64 break;
000070 ea000012 B |L1.192|
;;;65 case 0x2:
;;;66 bytefactor=4;
|L1.116|
000074 e3a01004 MOV r1,#4
;;;67 bppmode=BPPMODE_4BPP;
000078 e3a0c002 MOV r12,#2
;;;68 break;
00007c ea00000f B |L1.192|
;;;69 case 0x3:
;;;70 bytefactor=8;
|L1.128|
000080 e3a01008 MOV r1,#8
;;;71 bppmode=BPPMODE_8BPP;
000084 e3a0c003 MOV r12,#3
;;;72 break;
000088 ea00000c B |L1.192|
;;;73 case 0x4:
;;;74 bytefactor=8;
|L1.140|
00008c e3a01008 MOV r1,#8
;;;75 bppmode=BPPMODE_8BPPNP;
000090 e3a0c004 MOV r12,#4
;;;76 break;
000094 ea000009 B |L1.192|
;;;77 case 0x5:
;;;78 bytefactor=16;
|L1.152|
000098 e3a01010 MOV r1,#0x10
;;;79 bppmode=BPPMODE_16BPP565;
00009c e3a0c005 MOV r12,#5
;;;80 break;
0000a0 ea000006 B |L1.192|
;;;81 case 0x6:
;;;82 bytefactor=16;
|L1.164|
0000a4 e3a01010 MOV r1,#0x10
;;;83 bppmode=BPPMODE_16BPP5551;
0000a8 e3a0c006 MOV r12,#6
;;;84 break;
0000ac ea000003 B |L1.192|
;;;85 case 0x7:
;;;86 bytefactor=32;
|L1.176|
0000b0 e3a01020 MOV r1,#0x20
;;;87 bppmode=BPPMODE_18BPP;
0000b4 e3a0c007 MOV r12,#7
;;;88 break;
0000b8 ea000000 B |L1.192|
;;;89 default:
;;;90 break;
|L1.188|
0000bc e1a00000 NOP
;;;91 }
;;;92
;;;93 switch(displaytype&0xff00) {
|L1.192|
0000c0 e59d0014 LDR r0,[sp,#0x14]
0000c4 e2000cff AND r0,r0,#0xff00
0000c8 e3500d88 CMP r0,#0x2200
0000cc 0a00002c BEQ |L1.388|
0000d0 ca000004 BGT |L1.232|
0000d4 e3500d44 CMP r0,#0x1100
0000d8 0a000007 BEQ |L1.252|
0000dc e3500d84 CMP r0,#0x2100
0000e0 1a00005a BNE |L1.592|
0000e4 ea000015 B |L1.320|
|L1.232|
0000e8 e3500d90 CMP r0,#0x2400
0000ec 0a000035 BEQ |L1.456|
0000f0 e3500da0 CMP r0,#0x2800
0000f4 1a000055 BNE |L1.592|
0000f8 ea000043 B |L1.524|
;;;94 case 0x1100:
;;;95 clkval=CLKVAL_SER_176220;
|L1.252|
0000fc e3a0b006 MOV r11,#6
000100 e58db010 STR r11,[sp,#0x10]
;;;96 vbpd=VBPD_176220;
000104 e3a04004 MOV r4,#4
;;;97 vfpd=VFPD_176220;
000108 e3a05006 MOV r5,#6
;;;98 vspw=VSPW_176220;
00010c e3a06003 MOV r6,#3
;;;99 hbpd=HBPD_176220;
000110 e3a0700b MOV r7,#0xb
;;;100 hfpd=HFPD_176220;
000114 e3a08017 MOV r8,#0x17
;;;101 hspw=HSPW_176220;
000118 e3a0900b MOV r9,#0xb
;;;102 lineval=LINEVAL_176220;
00011c e3a0e0bf MOV lr,#0xbf
;;;103 hozval=HOZVAL_176220;
000120 e3a0a0af MOV r10,#0xaf
;;;104 pagewidth=BG_XSIZE_176220*bytefactor/8;
000124 e3a000b0 MOV r0,#0xb0
000128 e00b0190 MUL r11,r0,r1
00012c e1a031ab MOV r3,r11,LSR #3
;;;105 offsize=(BG_VXSIZE_176220-BG_XSIZE_176220)*bytefactor/8;
000130 e3a000b0 MOV r0,#0xb0
000134 e00b0190 MUL r11,r0,r1
000138 e1a021ab MOV r2,r11,LSR #3
;;;106 break;
00013c ea000044 B |L1.596|
;;;107 case 0x2100:
;;;108 clkval=CLKVAL_PAR_176220;
|L1.320|
000140 e3a0b006 MOV r11,#6
000144 e58db010 STR r11,[sp,#0x10]
;;;109 vbpd=VBPD_176220;
000148 e3a04004 MOV r4,#4
;;;110 vfpd=VFPD_176220;
00014c e3a05006 MOV r5,#6
;;;111 vspw=VSPW_176220;
000150 e3a06003 MOV r6,#3
;;;112 hbpd=HBPD_176220;
000154 e3a0700b MOV r7,#0xb
;;;113 hfpd=HFPD_176220;
000158 e3a08017 MOV r8,#0x17
;;;114 hspw=HSPW_176220;
00015c e3a0900b MOV r9,#0xb
;;;115 lineval=LINEVAL_176220;
000160 e3a0e0bf MOV lr,#0xbf
;;;116 hozval=HOZVAL_176220;
000164 e3a0a0af MOV r10,#0xaf
;;;117 pagewidth=BG_XSIZE_176220*bytefactor/8;
000168 e3a000b0 MOV r0,#0xb0
00016c e00b0190 MUL r11,r0,r1
000170 e1a031ab MOV r3,r11,LSR #3
;;;118 offsize=(BG_VXSIZE_176220-BG_XSIZE_176220)*bytefactor/8;
000174 e3a000b0 MOV r0,#0xb0
000178 e00b0190 MUL r11,r0,r1
00017c e1a021ab MOV r2,r11,LSR #3
;;;119 break;
000180 ea000033 B |L1.596|
;;;120 case 0x2200:
;;;121 clkval=CLKVAL_PAR_240320;
|L1.388|
000184 e3a0b008 MOV r11,#8
000188 e58db010 STR r11,[sp,#0x10]
;;;122 vbpd=VBPD_240320;
00018c e3a04008 MOV r4,#8
;;;123 vfpd=VFPD_240320;
000190 e3a05009 MOV r5,#9
;;;124 vspw=VSPW_240320;
000194 e3a06002 MOV r6,#2
;;;125 hbpd=HBPD_240320;
000198 e3a07000 MOV r7,#0
;;;126 hfpd=HFPD_240320;
00019c e3a08005 MOV r8,#5
;;;127 hspw=HSPW_240320;
0001a0 e3a09002 MOV r9,#2
;;;128 lineval=LINEVAL_240320;
0001a4 e59fe8dc LDR lr,|L1.2696|
;;;129 hozval=HOZVAL_240320;
0001a8 e3a0a0ef MOV r10,#0xef
;;;130 pagewidth=BG_XSIZE_240320*bytefactor/8;
0001ac e3a000f0 MOV r0,#0xf0
0001b0 e00b0190 MUL r11,r0,r1
0001b4 e1a031ab MOV r3,r11,LSR #3
;;;131 offsize=(BG_VXSIZE_240320-BG_XSIZE_240320)*bytefactor/8;
0001b8 e3a000f0 MOV r0,#0xf0
0001bc e00b0190 MUL r11,r0,r1
0001c0 e1a021ab MOV r2,r11,LSR #3
;;;132 break;
0001c4 ea000022 B |L1.596|
;;;133 case 0x2400:
;;;134 clkval=CLKVAL_PAR_640480;
|L1.456|
0001c8 e3a0b001 MOV r11,#1
0001cc e58db010 STR r11,[sp,#0x10]
;;;135 vbpd=VBPD_640480;
0001d0 e3a04020 MOV r4,#0x20
;;;136 vfpd=VFPD_640480;
0001d4 e3a05009 MOV r5,#9
;;;137 vspw=VSPW_640480;
0001d8 e3a06001 MOV r6,#1
;;;138 hbpd=HBPD_640480;
0001dc e3a0702f MOV r7,#0x2f
;;;139 hfpd=HFPD_640480;
0001e0 e3a0800f MOV r8,#0xf
;;;140 hspw=HSPW_640480;
0001e4 e3a0905f MOV r9,#0x5f
;;;141 lineval=LINEVAL_640480;
0001e8 e287ef6c ADD lr,r7,#0x1b0
;;;142 hozval=HOZVAL_640480;
0001ec e287af94 ADD r10,r7,#0x250
;;;143 pagewidth=BG_XSIZE_640480*bytefactor/8;
0001f0 e3a00fa0 MOV r0,#0x280
0001f4 e00b0190 MUL r11,r0,r1
0001f8 e1a031ab MOV r3,r11,LSR #3
;;;144 offsize=(BG_VXSIZE_640480-BG_XSIZE_640480)*bytefactor/8;
0001fc e3a00fa0 MOV r0,#0x280
000200 e00b0190 MUL r11,r0,r1
000204 e1a021ab MOV r2,r11,LSR #3
;;;145 break;
000208 ea000011 B |L1.596|
;;;146 case 0x2800:
;;;147 clkval=CLKVAL_PAR_800600;
|L1.524|
00020c e3a0b001 MOV r11,#1
000210 e58db010 STR r11,[sp,#0x10]
;;;148 vbpd=VBPD_800600;
000214 e3a04020 MOV r4,#0x20
;;;149 vfpd=VFPD_800600;
000218 e3a05009 MOV r5,#9
;;;150 vspw=VSPW_800600;
00021c e3a06001 MOV r6,#1
;;;151 hbpd=HBPD_800600;
000220 e3a0702f MOV r7,#0x2f
;;;152 hfpd=HFPD_800600;
000224 e3a0800f MOV r8,#0xf
;;;153 hspw=HSPW_800600;
000228 e3a0905f MOV r9,#0x5f
;;;154 lineval=LINEVAL_800600;
00022c e287ef8a ADD lr,r7,#0x228
;;;155 hozval=HOZVAL_800600;
000230 e287afbc ADD r10,r7,#0x2f0
;;;156 pagewidth=BG_XSIZE_800600*bytefactor/8;
000234 e3a00fc8 MOV r0,#0x320
000238 e00b0190 MUL r11,r0,r1
00023c e1a031ab MOV r3,r11,LSR #3
;;;157 offsize=(BG_VXSIZE_800600-BG_XSIZE_800600)*bytefactor/8;
000240 e3a00fc8 MOV r0,#0x320
000244 e00b0190 MUL r11,r0,r1
000248 e1a021ab MOV r2,r11,LSR #3
;;;158 break;
00024c ea000000 B |L1.596|
;;;159 default:
;;;160 break;
|L1.592|
000250 e1a00000 NOP
;;;161 }
;;;162
;;;163 framebuffer1=LCDFRAMEBUFFERBG1;
|L1.596|
000254 e3a0054c MOV r0,#0x13000000
000258 e58d0004 STR r0,[sp,#4]
;;;164 framebuffer2=LCDFRAMEBUFFERBG2;
00025c e2800980 ADD r0,r0,#0x200000
000260 e58d0000 STR r0,[sp,#0]
;;;165
;;;166 #if 1
;;;167 hwswp=0;
000264 e3a00000 MOV r0,#0
000268 e58d0008 STR r0,[sp,#8]
;;;168 if(displaytype&MODE_NO_VIRTUAL_16B) {
00026c e59d0014 LDR r0,[sp,#0x14]
000270 e3100010 TST r0,#0x10
000274 0a000002 BEQ |L1.644|
;;;169 offsize=0;
000278 e3a02000 MOV r2,#0
;;;170 hwswp=1;
00027c e3a00001 MOV r0,#1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -