支持直接写屏的汉字系统和虚屏技术

Author: 天津 贾冬 Date: 1994-01-07

        进入九十年代,一些采用了新思想、新技术支持直接写屏的西文软件的汉字系统应运而生了。人们在使用WMDOS6.0,UCDOS3.0,天汇、中国龙等汉字系统时惊喜地发现,在这些汉字系统下,几乎所有的西文软件都可以运行,甚至只要有足够内存,在保护摸式下运行的Borland C++3.1也能与汉字共存。
        剖析这些新型的汉字系统不难发现,这些汉字系统之所以有这样优良的兼容性,主要是由于它们都采用了“虚拟屏幕”的思想和技术。所谓虚屏技术是指汉字系统一方面将显示器切入图形方式显示汉字,另一方面却又设法使系统认为当前处于文本显示状态,即在图形屏幕下虚拟出一个文本屏幕。当西文软件对虚拟的文本屏幕写屏时,驻留的汉字系统及时识别所写的内容,将它映射到实际的图形屏幕上,并自动识别汉字内码,从EMS,XMS或VMS中取出相应字模,将汉字显示于屏幕上。有些汉字系统还可以自动识别西文制表符,而又不至在屏幕上显示出一堆莫明其妙的汉字。
        这些汉字系统的工作原理是这样的:首先判别系统内存的大小,有无足够的XMS或EMS,判别显示器类型是否为HERC,EGA,或VGA/TVGA,有些系统还要判别CPU类型是否为286以上。然后进行汉字的初始化工作,初始化工作包括①根据内存全部或部分装入16×16点阵字库,准备好字模接口。②接管INT ICH定时器中断,插入汉字显示模块,利用INT ICCH每秒18.2次中断,定期检查文本缓冲区(一般从B800:0000开始),从中提取字符并进行汉字和制表符的识别,并提取相应字模后送至图形缓冲区(一般从A000:0000开始)。③在INT 16H或2NT 9H键盘中断中插入汉字键盘管理程序,实现热键切换和汉字输入接口。最后,根据用户要求挂接汉字输入模块,比如双拼音、五笔字型、自然码以及表形码等。
        这些支持直接写屏的汉字系统与西文软件兼容性是非常不错的。如果系统有256K以上的EMS,XMS,并配合DOS5.X/6.X使用HMA和UMB后,一般只占用于几K乃至几K的基存,基本实现了“零内存”。对于Turbo/Borland,Quick系列软件的集成环境以及Turbo Vision可以做到100%兼容。对于高版本的PCTOOLS,NORON,CPAV等软件,只要在启动时选择正确的命令行也可以正常使用。
        但是这些支持直接写屏的汉字系统毕竟是一种“欺骗”操作系统的汉字系统,与西文操作系统并不完全一致,所以对于一些对系统要求苛刻的电子游戏以及全新的Windows3.1无法正常运行。另一方面,这些汉字系统利用INT 1CH作了大量工作,占用了大量的时间片。对于严格依赖定时器工作的软件,比如串行通讯软件会影响其数据位的正确发送与接收,无法正常使用。这是目前汉字系统的一个缺陷。
        (天津  贾冬)