📄 ziku.lst
字号:
C51 COMPILER V8.06 ZIKU 12/25/2007 08:55:46 PAGE 1
C51 COMPILER V8.06, COMPILATION OF MODULE ZIKU
OBJECT MODULE PLACED IN ziku.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE ziku.c BROWSE MODDP2 DEBUG OBJECTEXTEND
line level source
1 /*************************************
2 文件名:ziku.c
3 功 能:处理编码转换和与字库相关的操作
4 *************************************/
5 #include <W77C32.h>
6 #include <absacc.h>
7 #include "hal.h"
8 #include "ziku.h"
9 #include "unicode.h"
10
11 //把unicode码转换为其在GB2312字库中的地址
12 ulong UNI2CBSP(uint hanzi)
13 {ulong abspad;
14 1 uchar x,y;
15 1 for(y=0;y<72;y++)
16 1 {for(x=0;x<96;x++)
17 2 {if(hanzi==Unicode[y][x])
18 3 {break;}
19 3 }
20 2 if(hanzi==Unicode[y][x])
21 2 break;
22 2 }
23 1 abspad=((ulong)(((y+0x0f)*94)+(x-1)))*32;
24 1 return(abspad);
25 1 }
26
27 //两个ASCII码转为单字节
28 uchar DoubleAscii2Byte(uchar ValH,uchar ValL)
29 {
30 1 uchar cHigh,cLow;
31 1 if(ValH >= '0' && ValH <= '9')
32 1 {
33 2 cHigh = (ValH-'0')<<4;
34 2 }
35 1 else if(ValH >= 'A' && ValH <= 'F')
36 1 {
37 2 cHigh = (ValH-'A'+10)<<4;
38 2 }
39 1 else if(ValH >= 'a' && ValH <= 'f')
40 1 {
41 2 cHigh = (ValH-'a'+10)<<4;
42 2 }
43 1 else
44 1 cHigh = 0;
45 1
46 1 if(ValL >= '0' && ValL <= '9')
47 1 {
48 2 cLow = (ValL-'0');
49 2 }
50 1 else if(ValL >= 'A' && ValL <= 'F')
51 1 {
52 2 cLow = (ValL-'A'+10);
53 2 }
54 1 else if(ValL >= 'a' && ValL <= 'f')
55 1 {
C51 COMPILER V8.06 ZIKU 12/25/2007 08:55:46 PAGE 2
56 2 cLow = (ValL-'a'+10);
57 2 }
58 1 else
59 1 cLow = 0;
60 1
61 1 return ((cHigh & 0xf0)+(cLow & 0x0f));
62 1 }
63
64 //设置分页,获取总线地址
65 uint DEAL_BANK(ulong zkad)
66 {PAGE0 = zkad&0x008000;
67 1 PAGE1 = zkad&0x010000;
68 1 PAGE2 = zkad&0x020000;
69 1 return((uint)zkad&0x7f);
70 1 }
71
72 //计算出最终的显示数据
73 void GET_DISDATA(void)
74 {uint i;
75 1 uchar j;
76 1 for(i=0;i<datalen;i+=2)
77 1 {databuff[i/2]=DoubleAscii2Byte(databuff[i],databuff[i+1]);}
78 1 for(i=0;i<datalen/2;i+=2)
79 1 {for(j=0;j<32;j++)
80 2 disdata[i*16+j]=XBYTE[DEAL_BANK(UNI2CBSP((uint *)(&databuff)[i]))+j];
81 2 }
82 1 }
83
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 509 ----
CONSTANT SIZE = 13824 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 10
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -