中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-26 09:00
47,812 主题排行 / 349,910 发帖 / 今日 0 篇 / 48,264 会员排行
DOS汉化世界 & 中文系统 (中文化室) » UCDOS 5.0 版本以上曲线字库汉字显示程序源代码
可打印版本  4,098 / 4
第1楼 lhsong 发表于 2009-02-05 22:14
初级用户 发帖 12 积分 47
UCDOS 5.0 版本以上曲线字库汉字显示程序源代码
若字库为5.0版,应去掉下面一段代码


希望大家能够喜欢!!!!!!!

第2楼 lidawei 发表于 2009-02-18 12:49
新手上路 发帖 3 积分 6
感谢lhsong的无私奉献
  近日心血来潮,看起了UCDOS的rdfnt.com,虽然DOS的知识已荒废多年,当年的资料也因束之高阁而基本上无法查阅(好象当年手头也没UCDOS的什么资料,现在想找UCDOS系统调用规范之类的东西,google几天都找不到),还是凭兴趣看了好几日,主要看了点阵字库,PS只看了控制码转为坐标部分。虽未看完,但还是再次感叹汇编程序的精致,30来K的程序,其中还有10多K是工作存储区、4-5K是各字库参数定义,指令部分估计也就10多K,如此一小段程序即可完成包括点阵、矢量、PS字库的检索、匹配、解码、变换等操作,真是令人佩服。
  偶见楼主的文章,想谈谈一点自己的看法。
  文章开头部分有

 若字库为5.0版,应去掉下面一段代码
 if(j==1){ //若为汉字,调整地址偏移值
  hz.offset-=0x10000000;
 }

的说明,按我的理解,汉字数据的偏移不应是减去0x10000000,此偏移应该实际只有24bit即3字节,第4字节定义的不是偏移,而是此汉字数据的附加格式。从int 7eh进入rdfnt的获得汉字点阵功能后不远处的一个过程有如下的操作:
 mov   ax,es: 刚才读入的6字节 PS或矢量数据的偏移低字
 mov   dx,es: PS或矢量数据的偏移高字
 mov   cx,es: 长度
 jcxz   ...
 or     zk_type,dh
 mov   dh,0     清0数据指针的最高字节,剩下3字节
...
 call   read_hz    移动文件指针,dx,ax=偏移,读文件,读cx字节于ds:di中
可见其4字节的最高字节不是用于寻址的,而是定义信息。rdfnt除了可读点阵字库、解码PS字库外,尚可解码矢量字库,对于不同的PS、矢量字库,有可能某些字库该字节不是0x10(未各字库逐个汉字检查过,无法证实),如果都减去此一固定值,有可能会出错。
  有一篇文章叫“UCDOS的曲线轮廓字库的分析”,里面也说到ucdos6中偏移应减去0x10000000的事,不知楼主这里的减去0x10000000是否源自该处?
第3楼 lhsong 发表于 2009-02-21 21:16
初级用户 发帖 12 积分 47
谢谢楼上的指点,

“0x10000000”值确实是来自“UCDOS的曲线轮廓字库的分析”一文,不过,我察看了5.0字库和6.0字库,确实是在6.0曲线字库的第四个字节增加了定义,但不知其实际用途。

还希望高手能给予指点。
第4楼 oookkk2008 发表于 2009-04-17 01:53
新手上路 发帖 2 积分 5
好,学习了,谢谢
第5楼 chenyucheng 发表于 2023-08-01 10:16
初级用户 发帖 70 积分 152 来自 浙江省台州市

这是什么啊
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023