有前辈制作过GBK汉字字库吗?地址计算公式是怎么样的?

[复制链接]
4573|4
 楼主| redcar 发表于 2012-11-19 20:30 | 显示全部楼层 |阅读模式

这2个文本文件是按照编码顺序排列的,gbk-gb18030.txt 是 根据 中国GBK码与Unicode码及原字形对照表.txt去掉无关字符排列的.
现在想用牧马字符这类的 文本文件转 点阵工具来转换,
转换结果成功,但是 计算汉字在 点阵库中的地址公式不明

网上找了个这个
我们把第一个字节代表的意义称为区,那么GBK 里面总共有126 个区(0XFE-0X81+1 ),
每个区内有 190 个汉字(0XFE-0X80+0X7E-0X40+2 ),总共就有 126*190=23940 个汉字。我
们的点阵库只要按照这个编码规则从 0X8140  开始,逐一建立,每个区的点阵大小为每个汉字
所用的字节数*190。这样,我们就可以得到在这个字库里面定位汉字的方法:

        当GBKL<0X7F 时:Hp=((GBKH-0x81)*190+GBKL-0X40)*(size*2) ;
        当GBKL>0X80 时:Hp=((GBKH-0x81)*190+GBKL-0X41)*(size*2) ;

    其中GBKH、GBKL 分别代表GBK 的第一个字节和第二个字节(也就是高位和低位) ,size
代表汉字字体的大小(比如16 字体,12 字体等),Hp 则为对应汉字点阵数据在字库里面的起
始地址(假设是从0 开始存放) 。

结果发现,字库前面部分,也就是 gb2312字符之前的,编号 0-6079 的汉字 正常
之后的,就错乱了,不知道公式了
求大侠指点

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
NE5532 发表于 2012-11-19 22:31 | 显示全部楼层
chinese:
        ld        xwa,0
        ld        xbc,0
        ld        a,(xix)
        sub        xwa,0xB0
        mul        xwa,94
        inc        1,xix
        ld        c,(xix)
        sub        xbc,0xA1
        add        xbc,xwa
        mul        xbc,15
        add        xbc,zikuadr+0x6AE

TOSHIBA的汇编写的,先看下看懂不,16*16点
 楼主| redcar 发表于 2012-11-20 08:24 | 显示全部楼层
啊??!!
看不懂汇编啊,麻烦前辈弄成C语言啊
NE5532 发表于 2012-11-20 11:19 | 显示全部楼层
晚上回去给你翻译了。
Levi_NO1 发表于 2015-7-21 11:46 | 显示全部楼层
mark一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

20

主题

228

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部