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参数取消缝设置。”
其它解释我在本论坛的帖子和站内短消息中作过很多回答,有祥有略。自己搜索下。
1. The essence of the problem is as the original poster said, it is a problem with the graphics card, not the monitor, but it is also closely related to the category of LCD/CRT.
In "New Chinese Display Method of GRUB4DOS" (
http://bbs.znpc.net/viewthread.php?tid=5857&extra=page%3D1), a master (one of the developers of grub4dos?) explained:
"In text mode to display Chinese characters, there is a vertical line in the center of the Chinese characters. Your attached image shows this problem.
This is a problem with the graphics card BIOS program. Maybe it is not considered a problem, because graphics cards were invented in the West, and they did not consider that Asian characters actually exceed 256, reaching tens of thousands, hundreds of thousands. Since the BIOS does not support more than 256 characters, it is impossible to display different 256 characters on one screen at the same time in text mode. If it is Chinese characters, the theoretical maximum is to display 128 Chinese characters at the same time in text mode. But many areas are occupied by English, and some are occupied by some graphic characters (such as symbols used for drawing tables), so the actual number of Chinese characters displayed at the same time may be even less, only dozens."
2. Dilemma of the problem -
In "Config Chinese Menu Drives Confect.sys (Updated to Version 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), it originally said:
"In fact, this is the single-byte new Chinese character internal code problem that I once racked my brains about during the development of VtMagik.com, which is particularly prominent in the 9-point display mode. In the 9-point display mode, there is a way to make Chinese characters not appear broken - 0c0h, 80h; 0c1h, 81h;... - so that 32 Chinese characters can be displayed seamlessly. The sequential method n, n+1; n+2, n+3;... is easy to program, but cannot use this automatic feature of automatically copying the 8th column to the 9th column of the tab character.
Moreover, whether setting 8 points or 9 points, the registers of the VGA card are set, so it may bring compatibility problems - the monitor frequency exceeds the limit, causing a black screen; not setting this section of the program, the difference is very large, although it is not visible visually. There are many things in program design that are "invisible" to users, but programmers can't be unaware. This is the reason why I usually don't want to explain. For users, it is to be simple, and the difficult problems are exclusively for programmers! It's really a pain. So, my VtMagik has -M0 and -M8, -M9. General users may find the software commands and parameters complicated, but this is a last resort."
3. Handling of the software -
In "Make Non-Chinese Systems Display Chinese Characters! VtMagiK.COM Version 6.30 (Supports BCDW)" (
http://www.cn-dos.net/forum/viewthread.php?tid=43866&fpage=1&highlight=BT3), it originally said:
"【Brief Introduction】
The mother of model loading K.COM (full name VtMagiK.COM) is a Chinese character font extraction and loading program, so as to display replaceable character sets in the text state of the VGA screen, and realize the display of specific glyphs (such as Chinese characters) by loading user-defined font glyphs.......
The dot matrix character set of EGA/VGA is stored in bit plane 2 (that is, display RAM) of the graphics card. Users can modify the dot matrix character set information through the interface provided by EGA/VGA to load (without changing the display information on the current screen) and use the font they like. Then, the new glyphs can be displayed in the text video mode. This is the "non-Chinese system displays Chinese characters" technology, which is as fast as English and does not consume memory. It can be used to replace the Chinese character system under the DOS prompt to realize Chinese character glyph display, and even be used in CONFIG.SYS to help the DOS system realize the display of the startup menu in Chinese.
......
【Friendly Reminder】
The settings of seamless and seamed Chinese characters may cause errors such as "insufficient frequency width" or "refresh frequency exceeding the limit" on some liquid crystal displays, forming compatibility problems, so it is not recommended to use it in public boot disks. Please add the -M0 parameter to public boot disks to cancel the seam settings."
I have made many answers in detail and briefly in my posts and private messages in this forum. Search by yourself.