China DOS Union

-- Unite DOS · Advance DOS · Grow DOS --

Union site: www.cn-dos.net Forum site: www.cn-dos.net/forum
DOS stands for freedom, openness and progress. Let us work hard, learn from the openness and GNU spirit of FreeDOS and Linux, and together build and grow a free GNU GPL world!

中国DOS联盟论坛
The time now is 2026-08-26 10:56
中国DOS联盟论坛 » DOS汉化世界 & 中文系统 (中文化室) » How to implement the Chinese localization method for modifying the int 10h interrupt? View 3,576 Replies 8
Original Poster Posted 2010-02-05 09:35 ·  中国 北京 联通
初级用户
Credits 54
Posts 17
Joined 2009-11-27 12:03
16-year member
UID 155470
Gender Male
Status Offline
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.
Floor 2 Posted 2010-02-05 13:06 ·  中国 北京 联通
初级用户
Credits 36
Posts 12
Joined 2010-01-21 17:17
16-year member
UID 159186
Gender Male
Status Offline
I'm going to top it. Such a worthy - discussing question, why don't the big shots speak up?
Floor 3 Posted 2010-02-05 22:55 ·  中国 江苏 苏州 电信
银牌会员
★★★
Credits 2,227
Posts 790
Joined 2005-01-27 00:00
21-year member
UID 35703
Gender Male
Status Offline
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
Floor 4 Posted 2010-02-08 09:53 ·  中国 北京 联通
初级用户
Credits 54
Posts 17
Joined 2009-11-27 12:03
16-year member
UID 155470
Gender Male
Status Offline
The method I encountered has changed the 0 - 16h (inclusive of 16h) and 20h functions. May you all explain it in detail, please?
Floor 5 Posted 2010-02-08 10:58 ·  中国 北京 联通
初级用户
Credits 36
Posts 12
Joined 2010-01-21 17:17
16-year member
UID 159186
Gender Male
Status Offline
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
Floor 6 Posted 2010-02-08 14:11 ·  中国 江苏 苏州 电信
银牌会员
★★★
Credits 2,227
Posts 790
Joined 2005-01-27 00:00
21-year member
UID 35703
Gender Male
Status Offline
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
Floor 7 Posted 2010-06-17 21:21 ·  中国 福建 厦门 电信
高级用户
★★★
Credits 741
Posts 366
Joined 2007-07-25 19:11
19-year member
UID 94024
Gender Male
Status Offline
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).
Floor 8 Posted 2010-06-19 09:38 ·  中国 江苏 苏州 电信
银牌会员
★★★
Credits 2,227
Posts 790
Joined 2005-01-27 00:00
21-year member
UID 35703
Gender Male
Status Offline
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
Floor 9 Posted 2010-06-26 23:03 ·  中国 福建 厦门 电信
高级用户
★★★
Credits 741
Posts 366
Joined 2007-07-25 19:11
19-year member
UID 94024
Gender Male
Status Offline
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 ]
Forum Jump: