本发明涉及一种字符和图形显示装置,特别是涉及一种非常适合于在微型计算机上显示西文、汉字及图形的显示装置。 目前,国际上,微型计算机所使用的显示装置,都是欧美国家针对西文而设计的,这些装置提供两类显示方式,一类为字符显示方式,另一类为图形显示方式。在字符显示方式中,CPU把要显示的字符代码(美国国家标准信息交换码,即ASCⅡ码)及其属性代码(字符的背景色,前景色,亮度和闪烁)送到显示装置,经显示装置转换为相应的点阵码(8x8或7x9)最后送到CRT显示。在图形显示方式中,要显示的图形被视为各种不同颜色的点所构成,此时CPU将这些点的代码送到显示装置,再由显示装置将它们送到CRT显示。
由于汉字个数太多且字形复杂,前面所述的显示装置工作在字符显示方式时,无法胜任汉字的显示,目前在这类显示装置上显示汉字都是采用将汉字代码由CPU译成相应的字形点阵码(16x16)按显示图形的方式送到显示装置显示。这就带来了三大问题:一是中西文两大类系统基本不兼容,表现在西文软件必须通过所谓汉化处理后方能用于中文系统,而汉化后的软件改变了原软件的性能,使原软件的性能降低,何况汉化一个软件是极其不易的;二是中文系统在执行文本功能(编辑,显示等)时,速度过慢;三是中文系统占用大量用户内存,使有些软件不能正常使用。
本发明的第一个目的是提供这样一种显示装置,在第一显示方式下不仅能显示西文字符及属性,而且能显示汉字及属性,同时显示速度与现已有的微型计算机显示装置在字符显示方式下的显示速度相同;在第二显示方式下,仍提供与现已有的微型计算机显示装置相同的图形显示功能,用硬件地方法使中西文两大类系统基本兼容。使用本发明所提供的显示装置,使得汉化在字符显示方式下工作的西文软件变得简单易行,用户只需将其中的西文提示替换为相应的中文提示即可,而不改变原西文软件的性能。这样就从根本上解决了在中文系统中运行西文软件和中文系统在执行文本功能时速度过慢的问题。
本发明的第二个目的是提供一个供CPU读出汉字字形点阵码(16x16)的汉字字符发生器(俗称汉卡),使用本发明所提供的汉字字符发生器可以解决现行中文系统占用内存过大的问题,减少现行中文系统的内存开销,提高现行中文系统的性能。
本发明的第一显示方式提供具有下列部份的显示装置:
(1)字符存贮部份:它存贮要显示的字符(汉字)代码及属性代码;
(2)图形存贮部份:它存贮在CRT上所显示图像的映像数据;
(3)字符(汉字)图形转换控制部份:它从前述字符存贮部份中读出字符(汉字)代码及属性代码,然后将其转换为对应的图像数据,送到前述图形存贮部份;
(4)光标发生部份:它产生光标控制信号,以便产生CRT屏幕上的光标;
(5)显示控制部份:它从前述图形存贮部份中读出图像数据,经并串转换器把并行图像数转换为串行图像数据与前述光标发生部份产生的光标控制信号一起送到彩色编码器编码后,产生R、G、B、I信号和同步信号一同控制CRT显示;
本发明的第二显示方式提供具有以下部份的显示装置:
(1)图形存贮部份:它存贮在CRT上所显示图像的映象数据;
(2)显示控制部份:它从前述图形存贮部份读出图像数据,经并串转换器,把并行图像数据转换为串行图像数据,送到彩色编码器编码产生R、G、B、I信号和同步信号一同控制CRT显示。
本发明的汉字字符发生器部份产生由CPU指定的汉字字形点阵码,供CPU读出。
图1是适用于本发明的显示系统的整体构成框图。
图2是本发明的一个实施例的结构框图。
图3是图2中的字符(汉字)图形转换控制器和汉字字符发生器(8)的结构框图。
图4是本实施例中属性代码示意图。
图中1.CPU,2.模式控制器,3.地址译码器,4.BIOS ROM,5.视频随机存贮器VRAM1,6.总线分配器1,7.时钟发生器,8.字符(汉字)图形转换控制器和汉字字形发生器,8a.字符(汉字)图形转换控制器,8b.汉字字形发生器,9.视频随机存贮器VRAM2,10.总线分配器2,11.并串转换器,12.CRTC,13.视频合成器,14.彩色编码器,15.光标发生器,16.CRT,17.属性代码暂存器1,18.字符代码暂存器1,19.字符代码暂存器2,20.属性代码暂存器2,21.地址发生控制器1,22.汉字鉴别地址形成器,23.字符发生器1,24.字符发生器2,25.字符发生器3,26.字形点阵行地址发生器,27.汉字字形缓冲器,28.合成器1,29.合成器2,30.图像数据缓冲器,31.图像数据控制器,32.地址发生控制器2,33.本发明的一个实施例。
下面结合附图详细说明本发明的实施例:
本实施例是装在IBM个人计算机及其兼容机上作显示适配器使用。
首先CPU(1)执行BIOS ROM(4)中提供的控制程序,向模式控制器(2),CRTC(12)和光标发生器(15)发出一系列控制命令,初始化模式控制器(2),CRTC(12)和光标发生器(15);由模式控制器(2)产生一系列控制信号来控制下述几部份的工作:
1.控制时钟发生器(7)的工作状态,时钟发生器(7)为本实施例提供内部时序,使本实施例中各组成部份的工作协调一致;
2.控制字符(汉字)图形转换控制器(8a)的工作状态,由此决定本实施例是工作于第一显示方式,还是第二显示方式,或者是停止汉字字符的转换工作;
3.产生光标使能信号ENC,控制光标发生器(15)的工作状态,由此决定在CRT(16)上是否出现光标。
换句话说,本实施例的工作状态是由CPU(1)通过初始化模式控制器(2)的状态来设定的。
本实施例的第一显示方式所要显示的字符代码及其属性代码是由CPU(1)存放在视频随机存贮器VRAM1(5)中的。其中,字符代码分为两类,一类是只用一个字节(8位二进制)表示的ASCⅡ码,代码值为OOH~AOH和FFH;另一类是需用二个字节表示的和汉字国标(GB5007-85)码相对应的机内码,第一字节表示和汉字国标码中区码相对应的机内码,代码值为:A1H~FEH,第二字节表示和汉字国标码中位码相对应的机内码,代码值为:A1~FEH。由此可见,一个西文字符只需用一个字节即可确定,而一个汉字字符则需用二个字节才能确定,且确定一个汉字字符的二个字节代码的取值范围是:A1H~FEH。属性代码是图3中所示的8位二进制数。
VRAM1(5)中以一个西文字符和一个属性代码为基本单位,显然一个汉字字符需占两个基本单位,由N个这样的基本单位构成一个字符行,由M个这样的字符行构成一字符屏。VRAM2(9)中以一个像素点为基本单位,由N1个这样的基本单位构成一个扫描行,由M1个这样的扫描行构成一图像屏,上述一扫描行对应于CRT(16)上的一光栅扫描行,一图像屏对应于CRT(16)上的一显示屏,而VRAM1(5)中的一字符行对应于VRAM2(9)中的K个扫描行。
本实施例工作于第一显示方式时,在CRT(16)光栅水平回期间,字符(汉字)图形转换控制器(8a)不访问VRAM1(5),而通过总线分配器2(10)向VRAM2(9)写入CRT(16)将要扫描的一行数据,此时CPU(1)可以通过总线分配器1(6)读写VRAM1(5)中的字符代码和属性代码;或者通过总线分配器1(6)读出CPU(1)指定的汉字字形点阵码。而在CRT(16)光栅水平扫描期间,字符(汉字)图形转换控制器(8a)通过地址发生控制器1(21)和总线分配器1(6)读出VRAM1(5)中的字符代码和属性代码将其转换图像数据,在此期间内需完成一字符行的转换工作。此时由地址发生控制器1(21)阻止CPU(1)访问VRAM1(5)。
一字节的字符代码和与之相对应的一字节属性代码组成一组显示字符数据,在转换过程中,字符(汉字)图形转换控制器(8a)每次读入两组显示字符数据,字符代码分别放入字符代码暂存器1(18)和字符代码暂存器2(19)中,属性代码分别放入属性暂存器1(17)和属性代码暂存器2(20)中,两个字符代码同时输出到汉字鉴别地址形成器(22)中进行鉴别,鉴别器根据该次读入的字符代码是否为汉字字符代码。
若两个代码值均在A1H~FEH中,则该次读入的两个字符代码构成一个汉字代码,此时,汉字鉴别地址形成器(22)将字符代码暂存器1(18)和字符代码暂存器2(19)中暂存的字符代码形成该汉字字形的高位地址,此高位地址同字形点阵行地址发生器(26)中产生的该汉字字形的低位地址一起送到字符发生器2(24)和字符发生器3(25)中,分别产生该汉字的左、右半字形代码,左半字形代码同在属性代码暂存器1(17)中的属性代码在合成器1(28)中合成图像点阵数据,右半字形代码同在属性代码暂存器2(20)中的属性代码在合成器2(29)中合成图像点阵数据,两组图像点阵数据一同经图像数据控制逻辑(31),送到图像数据缓冲器(30)内暂存。
若两个字符代码值中有一个不在A1H~FEH中,则该次读入的字符不是汉字字符,则此时汉字鉴别地址形成器(22)将字符代码暂存器1(18)中的字符代码形成该字符字形高位地址,此高位地址同字形点阵行地址发生器(26)中产生的该字符字形低位地址一起送到字符发生器1(23)中形成该字符的字形代码,该字形代码同属性代码暂存器1(17)中的属性代码在合成器1(28)中合成图像点阵数据,经图像数据控制逻辑(31),送到图像数据缓冲器(30)内暂存。
在一个光栅水平扫描期内需转换一扫描行的图像数据,而要完成一扫描行的转换上述过程需进行N次,且在本次光栅水平扫描期内完成下一次光栅水平扫描期内所需的一扫描行图像数据的转换。而要显示一行完整的字符,需要转换K个扫描行。在CRT(16)上要显示一屏完整的字符,则需要转换M个字符行。
等待本次光栅水平回扫期到来后,由地址发生控制器2(32)控制通过总线分配器2(10)送往VRAM2(9)中供CRTC(12)扫描显示使用。转换的图像数据都送到图像数据缓冲器(30)内暂存。
在光栅水平扫描期内,CRTC(12)从VRAM2(9)中读出图像数据送到并串转换器(11),将并行图像数据转换为串行图像数据,送到彩色编码器(14)完成图像数据的彩色编码,得到彩色编码信号R、G、B、I,同CRTC(12)产生的同步信号SCNY一起送往CRT(16)显示,同时彩色编码信号R、G、B、I,与同步信号SCNY在视频合成器(13)中合成视频信号。
本实施例工作于第二显示方式时,在光栅水平回扫期内,CPU(1)可以通过总线分配器2(10)写入欲显示的图像数据或读出显示的图像数据,也可以通过总线分配器1(6)读出CPU(1)指定的汉字字形点阵码。在光栅水平扫描期内,CRTC(12)控制读出VRAM2(9)中图像数据,送CRT(16)显示,其显示过程和第一显示方式的显示过程相同。
此外,若在模式控制器(2)的控制下,字符(汉字)图形转换器(8a)的汉字字符的转换工作被停止。此时,本实施例的功能与现行微型计算机中显示适配器的功能相同。
下面就光标处理加以说明:当光标使能信号ENC有效时,光标发生器(15)工作,由CPU(1)写入光标发生器(15)的光标位置和大小数据,在光标发生器(15)内被转换为扫描地址,此地址与CRTC(12)产生的扫描地址在光标发生器(15)内进行比较若相同则光标发生器(15)输出光标信号CURSOR到彩色编码器,由此产生CRT(16)屏幕上的光标,光标的闪烁由时钟发生器(7)提供的时钟信号控制。
本实施例的汉字字形发生器是由地址发生控制器1(21),字符代码暂存器1(18),字符代码暂存2(19),汉字鉴别地址形成器(22),字形点阵行地址形成器(26),汉字字形缓冲器(27),字符发生器2(24),字符发生器3(25)构成。其工作原理是:在允许CPU(1)访问汉字字符发生器(8b)时,由CPU(1)通过总线分配器1(6)及地址发生控制器1(21)把欲读出字形的汉字字符代码写到字符代码暂存器1(18)和字符代码暂存器2(19)中,该汉字字符代码在汉字鉴别地址形成器(22)中产生该汉字字形的高位地址,此高位地址与字形点阵行地址形成器(26)形成的该汉字字形的低位地址一起送到字符发生器2(24)和字符发生器3(25)中得到该汉字的字形点阵码,在地址发生控制器1(21)的控制下,依次送入汉字字形缓冲器(27)内暂存,供CPU(1)通过总线分配器1(6)和地址发生控制器1(21)读出。该汉字字形发生器的端口地址由地址译码器(3)确定。
本实施例的实施,只需用本实施例中提供的显示装置替换原微型计算机中的显示适配器,而不需对原微型计算机中其它部件作任何改动。这样使本发明提供的显示装置具有很好的通用性和互换性,能适用于各种微型计算机系统,作为显示适配器使用。