不錯, 給你加分了
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!
预告:下一版的汉字替换规则将进行简化,以方便字模和文本的合并!更多功能在添加中!!名称将改为VTFmagic.COM,程序结构模仿DEBUG,并允许汉字串中加入行内控制码(如字库选择、下划线、横扩、反相等)、支持文本文件的输入和自动替换、字模文件与载入程序的分离与合一甚至不生成文件而直接替换字模、在保持显示模式的前提下的恢复常规字形的扩展ASCII字符、允许字形现场编辑等。现在,一切还只是设想,要
等一段时间才能推出。在此期间,请大家提出各种意见和建议!
版主willsort的建议非常规范、周密,并具有启发意义,在此特致感谢!!!这一版的替换是把每个汉字拆成两个ASCII扩展字符,分别位于C0h和80h开始的左、右半字模区,所以新汉字内码必须是C0h+n和80h+n(n=不重复的汉字序号)的组合
在保持显示模式的前提下的恢复常规字形的扩展ASCII字符
@echo off
vthz1.com %1
echo 纮羴聜脙膭艆茊菄脙膭葓
echo Nei Ma = Gai Bian!
echo.
pause
::mode co80
vthz2.com %1
echo 不启动中文系统看中文!
echo Nei Ma = Bu Bian!
echo.
pause
::mode co80
└Ç┴ü┬é├â─ä┼à╞å╟ç├â─ä╚ê
Nei Ma = Gai Bian!
Press any key to continue . . .
▓╗╞⌠╢»╓╨╬─╧╡═│┐┤╓╨╬─úí
Nei Ma = Bu Bian!
Press any key to continue . . .
seg000:011D mov dl,
seg000:011F xor dh, dh
seg000:0121 int 10h
seg000:0124 add bp, 10h
seg000:0127 mov dl,
seg000:0129 int 10h
在英文文本方式下显示汉字或图形的原理是:VGA03模式的字符是8*16点阵英文字符,通过BT生成的字库程序修改ASCII码128 ̄255的字符字形,把原来的英文符号改为汉字。因汉字是16*16点阵,两个字符合成一个汉字。这样,就可以显示64个汉字了(128个字符),虽然少了点,但在批处理中已足够了,而且不占内存!BT可以帮你生成一个可修改字符字形的COM文件,只要一运行它就把英文符号修改成汉字或图形。
VGA03模式的扫描分辨率为720X400,而显示字符分辨率为80X25,这样每个字符实际是9X16点阵的,但用8X16点阵的字库,一般字符的第9竖行为空白,对于ASC值192到224的英文制表符第9竖行与第8竖行相同,这是为表格是连续的而不是一段段的。我们把从ASC192开始的字形改成每个汉字的第一个字符,从ASC128开始的字形改成每个汉字的第二个字符这样就组成了一个汉字,且每个汉字之间有一行相隔(第二字节的第9竖行)。注意当字符的ASC值超过224就不是制表符了,因此你输入的字数超过32个时,每个汉字中间会有一个竖道。BT将从屏幕上直接读取汉字字形(这是为了兼容倚天之类的中文系统),因此你应先进入中文系统再用BT生成修改字形的.COM文件。你可用BTE M 恢复原来的字符字形。
模式 显示模式属性
00H 40×25 16色 文本
01H 40×25 16色 文本
02H 80×25 16色 文本
03H 80×25 16色 文本
04H 320×200 4色
05H 320×200 4色
06H 640×200 2色
07H 80×25 2色 文本
08H 160×200 16色
09H 320×200 16色
0AH 640×200 4色
0BH 保留
0CH 保留
0DH 320×200 16色
0EH 640×200 16色
0FH 640×350 2(单色)
10H 640×350 4色
10H 640×350 16色
11H 640×480 2色
12H 640×480 16色
13H 640×480 256色