中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS汉化世界 & 中文系统 (中文化室) » 修改int 10h中断的汉化方法怎么实现?
作者:
标题: 修改int 10h中断的汉化方法怎么实现? 上一主题 | 下一主题
dafengqixi
初级用户





积分 54
发帖 17
注册 2009-11-27
状态 离线
『楼 主』:  修改int 10h中断的汉化方法怎么实现?

我听说过一类汉化方法,他是修改int 10h的部分功能,使界面为其他语言的程序为中文界面,例如由tvision开发的文本界面,我想问大家这是修改了int 10h的哪一部分功能,怎么实现,请大家不吝赐教

2010-2-5 09:35
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
pkuwc
初级用户





积分 36
发帖 12
注册 2010-1-21
状态 离线
『第 2 楼』:  

我顶啊,这么值得探讨的问题,为何大牛不说话呢

2010-2-5 13:06
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
本是
银牌会员





积分 2201
发帖 789
注册 2005-1-27
状态 离线
『第 3 楼』:  

查一下INT 10h中断的ax=1000h功能调用接口。只要有它,就能载入字模,然后进行字符显示,不用替换10h号中断。



my major is english----my love is dos----my teacher is the buddha----my friends--how about U
2010-2-5 22:55
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
dafengqixi
初级用户





积分 54
发帖 17
注册 2009-11-27
状态 离线
『第 4 楼』:  

我遇到的这种方法是改变了0-16h(包含16h)和20h功能,请问各位是否能够详解一二

2010-2-8 09:53
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
pkuwc
初级用户





积分 36
发帖 12
注册 2010-1-21
状态 离线
『第 5 楼』:  



  Quote:
Originally posted by 本是 at 2010-2-5 22:55:
查一下INT 10h中断的ax=1000h功能调用接口。只要有它,就能载入字模,然后进行字符显示,不用替换10h号中断。

您说的是int 10h ax=1100h中断调用吧

2010-2-8 10:58
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
本是
银牌会员





积分 2201
发帖 789
注册 2005-1-27
状态 离线
『第 6 楼』:  

正是
; Video display   ah=11h
;  font load bh=points, bl=block
;   cx=qty, dx=1st char code
;   es:bp=ptr to font table



my major is english----my love is dos----my teacher is the buddha----my friends--how about U
2010-2-8 14:11
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
netwinxp
高级用户





积分 741
发帖 366
注册 2007-7-25
状态 离线
『第 7 楼』:  

LZ所说的那种采用的是如下技术:
1、进入图形显示模式
2、修改INT 10H的00H功能,使得所有要进入的文本模式实际上是进入图形模式模拟出来的。
3、修改定时中断,定时读取文本模式的显存段数据经查“字典”翻译成汉字后把汉字子模数据填充到图形模式的显存对映处,并模拟文本模式的光标闪烁。

缺点如下:
由于工作原理和实时写屏的汉字平台一样,所以可能会和这类汉字系统冲突。
由于修改了定时中断,所以在需要定时中断来完成数据采集的自控软件有时会由于定时中断重入出现无规律的重启(实时写屏的汉字平台对于自控软件同样有这个严重的问题)。

2010-6-17 21:21
查看资料  发短消息 网志   编辑帖子  回复  引用回复
本是
银牌会员





积分 2201
发帖 789
注册 2005-1-27
状态 离线
『第 8 楼』:  



  Quote:
Originally posted by netwinxp at 2010-6-17 21:21:
... 缺点如下:
    由于工作原理和实时写屏的汉字平台一样,所以可能会和这类汉字系统冲突。
    由于修改了定时中断,所以在需要定时中断来完成数据采集的自控软件有时会由于定时中断重入出现无规律的重启(实时写屏的汉字平台对于自控软件同样有这个严重的问题)。

关于“冲突”,其实我是不会同时使用两个汉字系统来显示汉字,因而不大会存在这种冲突。
关于“重启”,不修改定时中断int 1ch,而挂在int 28h、int 9、int 16h上,即可;如是刷屏周期问题,在int 8的首部加一通信仲裁判断即可。
关于修改int 10h的00功能,不是关键。关键是修改vga regs,尤其要实现伪字符汉字系统显示,一定要修改VGA的GDC(3ceh)reg的06号索引数据!



my major is english----my love is dos----my teacher is the buddha----my friends--how about U
2010-6-19 09:38
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
netwinxp
高级用户





积分 741
发帖 366
注册 2007-7-25
状态 离线
『第 9 楼』:  

由于INT 10H的功能较低(在早期显卡较差的情况下),所以DOS中期英文软件大多采用直接写屏的方式,修改字模方式来汉化不是不好(这在94~96年就有人试用,但没流行起来,其实更早期就有汉字卡使用该技术,比如长城0520所内置的,在该类型机子上只要文本模式输出GB2312-80码就显示中文,它通过修改字模读取和显示电路、附加汉字字模硬件库实现双字节代码的识别和字符点阵<单字节A0以上字符仍然识别为西文制表符,缺点是连续制表符也会识别称汉字>),但存在能同时显示的字数少,而且对西文制表符兼容性存在很大的问题,所以大型软件汉化实用性不是很高。DOS后期则采用专用字库图形界面的就很多了(当然这时期的大多有推出相应的中文版本),总起来讲修改字模法虽然在汉字平台初期就出现,但由于存在诸多限制,反而是越后来越没人使用,就像打印机内置汉字库的做法一样,也是越来越没人用。
说白了修改字模是很早期的技术,但利用它的很少。

[ Last edited by netwinxp on 2010-6-26 at 23:12 ]

2010-6-26 23:03
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: