|
dafengqixi
初级用户
 
积分 54
发帖 17
注册 2009-11-27
状态 离线
|
『楼 主』:
修改int 10h中断的汉化方法怎么实现?
使用 LLM 解释/回答一下
我听说过一类汉化方法,他是修改int 10h的部分功能,使界面为其他语言的程序为中文界面,例如由tvision开发的文本界面,我想问大家这是修改了int 10h的哪一部分功能,怎么实现,请大家不吝赐教
I've heard of a type of localization method that modifies part of the functions of int 10h to make the interface of programs in other languages into a Chinese interface, such as the text interface developed by tvision. I want to ask everyone which part of the functions of int 10h is modified and how to implement it. Please don't be stingy to give advice.
|
|
2010-2-5 09:35 |
|
|
pkuwc
初级用户
 
积分 36
发帖 12
注册 2010-1-21
状态 离线
|
『第 2 楼』:
使用 LLM 解释/回答一下
我顶啊,这么值得探讨的问题,为何大牛不说话呢
I'm going to top it. Such a worthy - discussing question, why don't the big shots speak up?
|
|
2010-2-5 13:06 |
|
|
本是
银牌会员
    
积分 2221
发帖 789
注册 2005-1-27
状态 离线
|
『第 3 楼』:
使用 LLM 解释/回答一下
查一下INT 10h中断的ax=1000h功能调用接口。只要有它,就能载入字模,然后进行字符显示,不用替换10h号中断。
Check the interface of the INT 10h interrupt's ax=1000h function call. As long as there is this, you can load the character font and then perform character display without replacing the 10h interrupt.
|

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 楼』:
使用 LLM 解释/回答一下
我遇到的这种方法是改变了0-16h(包含16h)和20h功能,请问各位是否能够详解一二
The method I encountered has changed the 0 - 16h (inclusive of 16h) and 20h functions. May you all explain it in detail, please?
|
|
2010-2-8 09:53 |
|
|
pkuwc
初级用户
 
积分 36
发帖 12
注册 2010-1-21
状态 离线
|
『第 5 楼』:
使用 LLM 解释/回答一下
Originally posted by 本是 at 2010-2-5 22:55:
查一下INT 10h中断的ax=1000h功能调用接口。只要有它,就能载入字模,然后进行字符显示,不用替换10h号中断。
您说的是int 10h ax=1100h中断调用吧
Originally posted by 本是 at 2010-2-5 22:55:
Check the interface of the INT 10h interrupt's ax=1000h function call. As long as there is it, you can load the character pattern and then display the character without replacing the 10h interrupt.
You are talking about the int 10h ax=1100h interrupt call, right
|
|
2010-2-8 10:58 |
|
|
本是
银牌会员
    
积分 2221
发帖 789
注册 2005-1-27
状态 离线
|
『第 6 楼』:
使用 LLM 解释/回答一下
正是
; Video display ah=11h
; font load bh=points, bl=block
; cx=qty, dx=1st char code
; es:bp=ptr to font table
It is exactly the case.
; Video display ah=11h
; font load bh=points, bl=block
; cx=quantity, dx=1st character code
; es:bp=pointer 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 楼』:
使用 LLM 解释/回答一下
LZ所说的那种采用的是如下技术:
1、进入图形显示模式
2、修改INT 10H的00H功能,使得所有要进入的文本模式实际上是进入图形模式模拟出来的。
3、修改定时中断,定时读取文本模式的显存段数据经查“字典”翻译成汉字后把汉字子模数据填充到图形模式的显存对映处,并模拟文本模式的光标闪烁。
缺点如下:
由于工作原理和实时写屏的汉字平台一样,所以可能会和这类汉字系统冲突。
由于修改了定时中断,所以在需要定时中断来完成数据采集的自控软件有时会由于定时中断重入出现无规律的重启(实时写屏的汉字平台对于自控软件同样有这个严重的问题)。
The technology adopted as mentioned by LZ is as follows:
1. Enter the graphics display mode
2. Modify the 00H function of INT 10H, so that all text modes to be entered are actually simulated by entering the graphics mode.
3. Modify the timer interrupt, regularly read the video memory segment data in the text mode, check the "dictionary" to translate it into Chinese characters, then fill the Chinese character sub - mode data into the corresponding place in the video memory of the graphics mode and simulate the cursor flashing in the text mode.
The disadvantages are as follows:
Since the working principle is the same as that of the real - time screen - writing Chinese character platform, it may conflict with this kind of Chinese character system.
Since the timer interrupt is modified, in the automatic control software that needs the timer interrupt to complete data acquisition, there may be irregular reboots due to the re - entry of the timer interrupt (the real - time screen - writing Chinese character platform also has this serious problem for the automatic control software).
|
|
2010-6-17 21:21 |
|
|
本是
银牌会员
    
积分 2221
发帖 789
注册 2005-1-27
状态 离线
|
『第 8 楼』:
使用 LLM 解释/回答一下
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号索引数据!
Originally posted by netwinxp at 2010-6-17 21:21:
... The following are the disadvantages:
Because the working principle is the same as the real-time screen-writing Chinese character platform, there may be conflicts with such Chinese character systems.
Because the timer interrupt is modified, some automatic control software that needs the timer interrupt to complete data collection may occasionally restart irregularly due to timer interrupt reentrance (the real-time screen-writing Chinese character platform also has this serious problem for automatic control software).
Regarding "conflict", in fact, I will not use two Chinese character systems to display Chinese characters at the same time, so such conflicts are unlikely to exist.
Regarding "restart", if you do not modify the timer interrupt int 1ch, but hook it on int 28h, int 9, int 16h, it can be done; if it is a screen refresh cycle problem, you can add a communication arbitration judgment at the beginning of int 8.
Regarding modifying the 00 function of int 10h, it is not the key. The key is to modify the VGA regs, especially to implement the pseudo-character Chinese character system display, and you must modify the data of index 06 of the VGA's GDC (3ceh) reg!
|

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 楼』:
使用 LLM 解释/回答一下
由于INT 10H的功能较低(在早期显卡较差的情况下),所以DOS中期英文软件大多采用直接写屏的方式,修改字模方式来汉化不是不好(这在94~96年就有人试用,但没流行起来,其实更早期就有汉字卡使用该技术,比如长城0520所内置的,在该类型机子上只要文本模式输出GB2312-80码就显示中文,它通过修改字模读取和显示电路、附加汉字字模硬件库实现双字节代码的识别和字符点阵<单字节A0以上字符仍然识别为西文制表符,缺点是连续制表符也会识别称汉字>),但存在能同时显示的字数少,而且对西文制表符兼容性存在很大的问题,所以大型软件汉化实用性不是很高。DOS后期则采用专用字库图形界面的就很多了(当然这时期的大多有推出相应的中文版本),总起来讲修改字模法虽然在汉字平台初期就出现,但由于存在诸多限制,反而是越后来越没人使用,就像打印机内置汉字库的做法一样,也是越来越没人用。
说白了修改字模是很早期的技术,但利用它的很少。
Last edited by netwinxp on 2010-6-26 at 23:12 ]
Due to the low functionality of INT 10H (in the early days when graphics cards were poor), most English software in the mid-DOS period mostly adopted the direct screen writing method. Modifying the character font method is not bad (this was tried by someone as early as 1994-1996, but it didn't become popular. In fact, there were earlier Chinese character cards using this technology, such as those built into the Great Wall 0520. On this type of machine, as long as GB2312-80 codes are output in text mode, Chinese is displayed. It realizes the recognition of double-byte codes and character dots by modifying the character font reading and display circuits and adding a hardware library of Chinese character fonts. (Single-byte characters above A0 are still recognized as Western tab characters, and the disadvantage is that consecutive tab characters are also recognized as Chinese characters). However, there are few characters that can be displayed simultaneously, and there are big problems with the compatibility of Western tab characters, so the practicality of large software localization is not very high. In the later DOS period, there were many special font libraries with graphical interfaces. (Of course, most of these had corresponding Chinese versions at this time). Generally speaking, although the character font modification method appeared in the early days of the Chinese character platform, due to many limitations, it is actually less and less used later, just like the method of built-in Chinese character libraries in printers, which is also less and less used.
In simple terms, modifying the character font is a very early technology, but few people use it.
Last edited by netwinxp on 2010-6-26 at 23:12 ]
|
|
2010-6-26 23:03 |
|