📄 lcd_gbk.txt
字号:
|L1.1244|
;;;172 }
;;;173 }
;;;174 else if(j==3)
0004dc e3550003 CMP r5,#3
0004e0 1a00001b BNE |L1.1364|
;;;175 {
;;;176 for(i=x+336;i<x+336+12;i++)
0004e4 e3ce0801 BIC r0,lr,#0x10000
|L1.1256|
0004e8 e1500001 CMP r0,r1
;;;177 {
;;;178 temp = GBK_Buffer[i-x-336];
0004ec 3040c004 SUBCC r12,r0,r4
0004f0 308cc003 ADDCC r12,r12,r3
0004f4 355ce150 LDRBCC lr,[r12,#-0x150]
;;;179 disBuf[i] &= 0x0f;
0004f8 37d2c000 LDRBCC r12,[r2,r0]
;;;180 disBuf[i] |= ((temp<<4) & 0xf0);
0004fc 3006e20e ANDCC lr,r6,lr,LSL #4
000500 320cc00f ANDCC r12,r12,#0xf ;179
000504 318cc00e ORRCC r12,r12,lr
000508 37c2c000 STRBCC r12,[r2,r0]
00050c 32800001 ADDCC r0,r0,#1 ;176
000510 33c00801 BICCC r0,r0,#0x10000 ;176
000514 3afffff3 BCC |L1.1256|
;;;181 }
;;;182 for(i=x+420;i<x+420+12;i++)
000518 e2840f69 ADD r0,r4,#0x1a4
00051c e3c00801 BIC r0,r0,#0x10000
000520 e284ce1b ADD r12,r4,#0x1b0
|L1.1316|
000524 e150000c CMP r0,r12
000528 2a000009 BCS |L1.1364|
;;;183 {
;;;184 temp = GBK_Buffer[i-x-420]>>4;
00052c e0401004 SUB r1,r0,r4
000530 e0811003 ADD r1,r1,r3
000534 e55151a4 LDRB r5,[r1,#-0x1a4]
;;;185 temp += GBK_Buffer[i-x+12-420]<<4;
000538 e551e198 LDRB lr,[r1,#-0x198]
00053c e1a01225 LSR r1,r5,#4 ;184
000540 e081120e ADD r1,r1,lr,LSL #4
;;;186 disBuf[i] = temp;
000544 e7c21000 STRB r1,[r2,r0]
000548 e2800001 ADD r0,r0,#1 ;182
00054c e3c00801 BIC r0,r0,#0x10000 ;182
000550 eafffff3 B |L1.1316|
|L1.1364|
;;;187 }
;;;188 }
;;;189 return 0;
000554 e3a00000 MOV r0,#0
|L1.1368|
000558 e8bd4070 POP {r4-r6,lr}
;;;190 }
00055c e12fff1e BX lr
;;;191
ENDP
Dis_GBK12 PROC
;;;192 uint8 Dis_GBK12(uint16 x,uint16 y,uint8 *ch)
;;;193 {
000560 e92d5ff0 PUSH {r4-r12,lr}
000564 e1a0a000 MOV r10,r0
000568 e1a05001 MOV r5,r1
00056c e1a00002 MOV r0,r2
;;;194 uint8 i,j;
;;;195 uint8 temp;
;;;196 if(Read_One_GBK12(ch))return 1;
000570 ebfffffe BL Read_One_GBK12
000574 e3500000 CMP r0,#0
000578 13a00001 MOVNE r0,#1
00057c 1a00002a BNE |L1.1580|
;;;197 for(i=0;i<12;i++)
000580 e51fb308 LDR r11,|L1.640|
000584 e3a06000 MOV r6,#0
000588 e3a09001 MOV r9,#1
|L1.1420|
;;;198 {
;;;199 temp = GBK_Buffer[i];
00058c e7db8006 LDRB r8,[r11,r6]
;;;200 for(j=0;j<8;j++)
000590 e3a04000 MOV r4,#0
000594 e08a7006 ADD r7,r10,r6
|L1.1432|
;;;201 {
;;;202 if(temp&(1<<j))OnePixel(x+i,y+j,1);
000598 e1180419 TST r8,r9,LSL r4
00059c e0850004 ADD r0,r5,r4
0005a0 e20010ff AND r1,r0,#0xff
0005a4 e20700ff AND r0,r7,#0xff
;;;203 else OnePixel(x+i,y+j,0);
0005a8 03a02000 MOVEQ r2,#0
0005ac 13a02001 MOVNE r2,#1 ;202
0005b0 ebfffffe BL OnePixel
0005b4 e2840001 ADD r0,r4,#1 ;200
0005b8 e20040ff AND r4,r0,#0xff ;200
0005bc e3540008 CMP r4,#8 ;200
0005c0 3afffff4 BCC |L1.1432|
0005c4 e2860001 ADD r0,r6,#1 ;197
0005c8 e20060ff AND r6,r0,#0xff ;197
0005cc e356000c CMP r6,#0xc ;197
0005d0 3affffed BCC |L1.1420|
;;;204 }
;;;205 }
;;;206 for(i=0;i<12;i++)
0005d4 e3a06000 MOV r6,#0
|L1.1496|
;;;207 {
;;;208 temp = GBK_Buffer[i + 12];
0005d8 e08b0006 ADD r0,r11,r6
0005dc e5d0800c LDRB r8,[r0,#0xc]
;;;209 for(j=0;j<4;j++)
0005e0 e3a04000 MOV r4,#0
0005e4 e08a7006 ADD r7,r10,r6
|L1.1512|
;;;210 {
;;;211 if(temp&(1<<j))OnePixel(x+i,y+j+8,1);
0005e8 e1180419 TST r8,r9,LSL r4
0005ec e0850004 ADD r0,r5,r4
0005f0 e2800008 ADD r0,r0,#8
0005f4 e20010ff AND r1,r0,#0xff
0005f8 e20700ff AND r0,r7,#0xff
;;;212 else OnePixel(x+i,y+j+8,0);
0005fc 03a02000 MOVEQ r2,#0
000600 13a02001 MOVNE r2,#1 ;211
000604 ebfffffe BL OnePixel
000608 e2840001 ADD r0,r4,#1 ;209
00060c e20040ff AND r4,r0,#0xff ;209
000610 e3540004 CMP r4,#4 ;209
000614 3afffff3 BCC |L1.1512|
000618 e2860001 ADD r0,r6,#1 ;206
00061c e20060ff AND r6,r0,#0xff ;206
000620 e356000c CMP r6,#0xc ;206
000624 3affffeb BCC |L1.1496|
;;;213 }
;;;214 }
;;;215 return 0;
000628 e3a00000 MOV r0,#0
|L1.1580|
00062c e8bd5ff0 POP {r4-r12,lr}
;;;216 }
000630 e12fff1e BX lr
;;;217 uint8 Dis_GBK16(uint16 x,uint16 y,uint8 *ch)
ENDP
Dis_GBK16 PROC
;;;218 {
000634 e92d5ff0 PUSH {r4-r12,lr}
000638 e1a0a000 MOV r10,r0
00063c e1a05001 MOV r5,r1
000640 e1a00002 MOV r0,r2
;;;219 uint8 i,j;
;;;220 uint8 temp;
;;;221 if(Read_One_GBK16(ch))return 1;
000644 ebfffffe BL Read_One_GBK16
000648 e3500000 CMP r0,#0
00064c 13a00001 MOVNE r0,#1
000650 1a00002a BNE |L1.1792|
;;;222 for(i=0;i<16;i++)
000654 e51fb3dc LDR r11,|L1.640|
000658 e3a06000 MOV r6,#0
00065c e3a09001 MOV r9,#1
|L1.1632|
;;;223 {
;;;224 temp = GBK_Buffer[i];
000660 e7db8006 LDRB r8,[r11,r6]
;;;225 for(j=0;j<8;j++)
000664 e3a04000 MOV r4,#0
000668 e08a7006 ADD r7,r10,r6
|L1.1644|
;;;226 {
;;;227 if(temp&(1<<j))OnePixel(x+i,y+j,1);
00066c e1180419 TST r8,r9,LSL r4
000670 e0850004 ADD r0,r5,r4
000674 e20010ff AND r1,r0,#0xff
000678 e20700ff AND r0,r7,#0xff
;;;228 else OnePixel(x+i,y+j,0);
00067c 03a02000 MOVEQ r2,#0
000680 13a02001 MOVNE r2,#1 ;227
000684 ebfffffe BL OnePixel
000688 e2840001 ADD r0,r4,#1 ;225
00068c e20040ff AND r4,r0,#0xff ;225
000690 e3540008 CMP r4,#8 ;225
000694 3afffff4 BCC |L1.1644|
000698 e2860001 ADD r0,r6,#1 ;222
00069c e20060ff AND r6,r0,#0xff ;222
0006a0 e3560010 CMP r6,#0x10 ;222
0006a4 3affffed BCC |L1.1632|
;;;229 }
;;;230 }
;;;231 for(i=0;i<16;i++)
0006a8 e3a06000 MOV r6,#0
|L1.1708|
;;;232 {
;;;233 temp = GBK_Buffer[i + 16];
0006ac e08b0006 ADD r0,r11,r6
0006b0 e5d08010 LDRB r8,[r0,#0x10]
;;;234 for(j=0;j<8;j++)
0006b4 e3a04000 MOV r4,#0
0006b8 e08a7006 ADD r7,r10,r6
|L1.1724|
;;;235 {
;;;236 if(temp&(1<<j))OnePixel(x+i,y+j+8,1);
0006bc e1180419 TST r8,r9,LSL r4
0006c0 e0850004 ADD r0,r5,r4
0006c4 e2800008 ADD r0,r0,#8
0006c8 e20010ff AND r1,r0,#0xff
0006cc e20700ff AND r0,r7,#0xff
;;;237 else OnePixel(x+i,y+j+8,0);
0006d0 03a02000 MOVEQ r2,#0
0006d4 13a02001 MOVNE r2,#1 ;236
0006d8 ebfffffe BL OnePixel
0006dc e2840001 ADD r0,r4,#1 ;234
0006e0 e20040ff AND r4,r0,#0xff ;234
0006e4 e3540008 CMP r4,#8 ;234
0006e8 3afffff3 BCC |L1.1724|
0006ec e2860001 ADD r0,r6,#1 ;231
0006f0 e20060ff AND r6,r0,#0xff ;231
0006f4 e3560010 CMP r6,#0x10 ;231
0006f8 3affffeb BCC |L1.1708|
;;;238 }
;;;239 }
;;;240 return 0;
0006fc e3a00000 MOV r0,#0
|L1.1792|
000700 e8bd5ff0 POP {r4-r12,lr}
;;;241 }
000704 e12fff1e BX lr
ENDP
|L1.1800|
000708 00000000 DCD disBuf
AREA ||.data||, DATA, ALIGN=2
GBK12
000000 00000000 DCD 0x00000000
GBK16
000004 00000000 DCD 0x00000000
GBK2UNI
000008 00000000 DCD 0x00000000
UNI2GBK
00000c 00000000 DCD 0x00000000
AREA ||.bss||, DATA, NOINIT, ALIGN=0
GBK_Buffer
% 32
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -