1.问题的本质如楼主所言是显卡的问题,不是显示器的,但与LCD/CRT的类别关系也很大。
“新的GRUB4DOS中文显示方式”(
http://bbs.znpc.net/viewthread.php?tid=5857&extra=page%3D1)中,高手不点(grub4dos开发者之一?)解释道:
“在文本模式显示汉字,汉字中央有一条竖线。你的贴图就显示出这个问题了。
这是显卡 BIOS 程序的毛病,也许不算是毛病,因为显卡是西方发明的,他们没有考虑到亚洲的文字竟然超过 256 个,达到几万、几十万个。由于 BIOS 不支持多于 256 个字符,所以,要在文本模式同时在一个屏幕上显示不同的 256 个字符是不可能的。如果是汉字的话,理论最大值是在文本模式同时显示 128 个汉字。但很多区域被英文占用了,还有一些被一些图形字符(例如画表格所用的符号)占用了,所以,实际同时显示的汉字个数可能更少,只有几十个。”
2.问题的困境——
“Config中文菜单驱动Confect.sys (更新为4.3版)”(
http://www.cn-dos.net/forum/viewthread.php?tid=45211&fpage=1&highlight=%E8%A3%82%E7%BC%9D%2B%E6%9C%AC%E6%98%AF)中本是说:
“其实,这就是我在开发VtMagik.com的过程曾经伤透脑筋的我称之为单字节新汉字内码问题,这在9点显示方式下尤其突出。在9点显示方式下,有一种办法可以让汉字看上去不断开——0c0h,80h;0c1h,81h;...——这样可以有32个汉字无缝显示。顺序方式n,n+1;n+2,n+3;...容易编程,但无法利用这种制表符自动复制第8列到第9列的自动特性。
而且,不管设置8点还是9点,都对VGA卡的寄存器进行了设置,所以可能带来兼容性问题——显示器频率超界,引起黑屏;不作设置,即跳了这段程序,差别是很大的,尽管视觉上看不出。程序设计中有很多东东对用户都是“不可见的”,可程序员不能不清楚。这就是我通常不想解释的原因。对于用户是要简单,难题就专为程序员独享!真是有苦说不出。所以,我的VtMagik有-M0与-M8、-M9之分。一般用户可能会嫌软件命令和参数复杂,可这是不得已的。 ”
3.软件的处理——
“让非汉字系统显示汉字!VtMagiK.COM 6.30版(支持BCDW)”(
http://www.cn-dos.net/forum/viewthread.php?tid=43866&fpage=1&highlight=BT3)中本是说:
“【简要介绍】
模载之母 K.COM (全名VtMagiK.COM)是一款汉字字模提取和载入程序,以便在VGA
屏幕文本状态下显示可载入替换的字符集,通过载入用户定义的字模实现特定字形(
如汉字)的显示。……
EGA/VGA 的点阵字符集存放在显示卡的位平面2(即显示RAM)上,用户可以通过EGA/
VGA 提供的接口,修改点阵字符集信息,来装载(不改变当前屏幕上的显示信息)和使用
自己喜欢的字体。然后,在文本视频模式下就可以显示新字形了。这就是“非汉字系统
显示汉字”技术,它速度与英文一样快,而且不消耗内存。可用于 DOS提示符下代替汉
字系统以实现汉字字形显示,甚至用于CONFIG.SYS帮助DOS系统实现启动菜单显示中文。
……
【友情提醒】
无缝和有缝汉字的设置在某些液晶显示器上会引起“频率宽度不足”或“刷新频
率超界”的错误,形成兼容性问题,所以,不建议在公用启动盘中使用。公用启动盘
请加-M0参数取消缝设置。”
其它解释我在本论坛的帖子和站内短消息中作过很多回答,有祥有略。自己搜索下。