微机汉字脱机打印法及脱机打印卡的制作方法

文档序号:6405576阅读:319来源:国知局
专利名称:微机汉字脱机打印法及脱机打印卡的制作方法
技术领域
本发明涉及微型数字电子计算机汉字信息处理技术领域中汉字打印的一种方法及装置。
在微机的汉字信息处理技术中,汉字的打印一直是一个比较重要的问题,目前,其实现方式基本可归纳为如下四种类型<1>、打印机为英文打印机,汉字库为存放在主机硬盘中的“软字库”。其打印的特点是主机根据被打印的汉字代码,启动硬盘,从硬盘“软字库”中取出对应的字模点阵数据,根据当前的字形及字间距等参数按行排版运算后,将点阵数据送往打印机,在打印机上打印出相应的汉字。<2>、打印机为英文打印机,汉字库为固化在ROM<只读存储器>中的“硬字库”并且安装在主机中。其打印的特点是主机根据被打印的汉字代码从“硬字库”中取出对应的字模点阵数据,根据当前的字形及字间距等参数按行排版运算后,将点阵数据送往打印机,在打印机上打印出相应的汉字。<3>、打印机为汉字打印机,即汉字库为固体在ROM中的“硬字库”并且安装在打印机上。其打印的特点是主机将被打印的汉字代码直接送往打印机,打印机接收到此代码后,便根据当前的字形及字间距等参数,从“硬字库”中译出对应的字模点阵数据,驱动打印针,打印出相应的汉字。上面三种打印方式,皆存在这样的弊病,即在整个打印过程中,主机不能脱离对打印机的管理。由于本身机械特性-惯性的限制,打印机打印速度的提高总是有一定限度的,因此主机必须处在长时间的等待状态而不能进行其它别的工作,也就是说,在此种状态下,主机只被简单地用来管理一台外部设备-打印机,大大降低了主机的利用率,并在相当程度上影响了人们的工作效率。<4>、打印机为脱机汉字打印机,即汉字库为固化在ROM中的“硬字库”且安装在打印机上,同时,打印机上装有相当可观数量的内存。当打印的文件小于打印机的内存容量时,主机一次性的将打印代码传送至打印机的内存缓冲区中,便可退出打印状态,转而进行其它别的工作,打印机则根据缓冲区中的打印代码以及当前的字形、字间距等参数,从“硬字库”中译出对应的字模点阵数据,驱动打印针,打印出相应的汉字。这样在一定程度上解决了长时间占用主机时间的问题,但由于打印机的内存容量毕竟是有限的,而打印的文件可以说是无限的,当打印的文件大于打印机的内存容量时,主机仍不得不等待第一批代码打印完毕后,才能传送下一批代码,这样,主机真正脱机的时间只是打印最后一小部分代码所用的时间,仍不能彻底解决长时间占用主机时间的问题。从另一方面看,不同厂家的打印机有其不同的打印控制代码及走纸格式,使得用户无法采用统一的控制代码标准驱动多种打印机、控制各种字形及版面格式的打印,为应用程序的标准打印模块的编写及通用性造成了不少的障碍。
发明目的在打印机打印文件的过程中,主机仍可进行诸如人机对话等其它更为重要的工作,并且工作速度不受影响,实现“真正”的脱机打印以期大大提高主机的利用率和用户的工作效率。
在用户接口阶层,能够采用统一的控制代码标准驱动多种打印机、控制各种字形及版面格式的打印,为应用程序的标准打印模块的编写及良好的可移植性提供现实可能的基础。主要技术内容为了让各种档次的微型电子计算机都能够实现“真正”的脱机打印功能,发明了在其标准扩插槽中增加带CPU的扩展功能卡即“通用汉字脱机打印卡<简称脱机打印卡或打印卡>”的设计思想,使其能够在硬件上分担主机CPU的打印工作,即多CPU并行处理技术;为了解决脱机打印卡内存空间的毕竟有限性和打印文件的相对无限性的矛盾,发明了打印代码分批传送的设计思想;另外,对多种打印机的汉字打印驱动程序采用了组合设计技术,使用户可通过控制代码选择所需的打印机并统一了汉字打印的控制代码标准。
本发明可参照说明书附图给以详细说明。


图1是脱机打印卡的硬件组成方框图及其与主机、打印机的连接关系。
图2是脱机打印卡的工作过程程序流程图。
图1中X主机Y通用汉字脱机打印卡Z打印机a主机数据总线b主机地址总线c主机控制总线d主机中断请求线<IRQ7>
e打印卡内部数据总线f打印卡内部地址总线g打印卡内部控制总线h打印机数据总线i打印机状态总线j打印机控制总线k打印卡CPU非屏蔽中断<NMI>请求线1打印卡中央处理器<CPU>
2打印卡内部存储器<RAM>
3可编程只读存储器<EPROM>
4字模点阵硬字库<MASKROM>
5主机/打印卡数据输出/输入缓冲器6主机/打印卡数据输入/输出缓冲器7主机=>打印卡控制命令寄存器8主机/打印卡数据传送状态指示寄存器9打印卡申请主机中断<IRQ7>请求触发器10打印卡=>打印机数据输出缓冲器11打印机状态指示寄存器12打印卡=>打印机控制命令寄存器13主机端口地址译码器14打印卡端口地址译码器其中,2、3、4、5、6、8、10、11、12通过e与1的数据总线相连;2、3、4、14通过f与1的地址总线相连;14通过g与1的控制总线相连;7的输出端与1的非屏蔽中断<NMI>请求线k相连;5、6、7、8通过a与X相连;13通过b和c与X相连;10通过h与Z相连;11通过i与Z相连;12通过j与Z相连;9的输入端与1的数据总线相连,其输出端与X的中断请求线<IRQ7>d相连。
5、6、7、7合称为“主机<=>打印卡信息通讯接口”10、11、12合称为“打印卡<=>打印机信息通讯接口”图2中15开机16自检17初始化18内存缓冲区中有数据否?19调用组合汉字打印驱动程序,打印出本字符20硬盘缓冲区中有剩余打印代码否?21触发中断请求触发器,申请主机OFH中断一、多CPU并行处理技术图1示出了脱机打印卡的硬件组成方框图及其与主机、打印机的连接关系。打印卡<Y>通过数据总线<a>、地址总线<b>、控制总线<c>以及中断请求线<d>与主机<X>相连,打印机<Z>通过数据总线<h>、状态总线<i>、控制总线<j>与打印卡相连。打印卡自身带有中央处理器<CPU,1>、内存<RAM,2>、可编程只读存储器<EPROM,3>,即打印卡在硬件上自成系统,能够离开主机CPU独自进行数据的存、取、运算等操作。其中,RAM用来存放系统参数以及打印代码等,EPROM用来固化打印卡系统管理<BIOS>程序以及多种打印机的组合汉字打印驱动程序等。打印卡自身还带有装有字模点阵数据的“硬字库”<MASKROM,4>以及与主机进行信息通讯的“主机<=>打印卡信息通讯接口”<5、6、7、8>和与打印机进行信息通讯的“打印卡<=>打印机信息通讯接口”<10、11、12>。打印卡可通过“硬字库”将被打印的代码转换成对应的字模点阵数据;通过“主机<=>打印卡信息通讯接口”实现同主机的信息通讯功能;通过“打印卡<=>打印机信息通讯接口”把打印信息输出至打印机。
图2示出了脱机打印卡工作过程的程序流程图。其中,方框<T>内实现的功能将在下节的打印代码分批传送技术中介绍。打印卡的工作过程可简要描述如下开机。打印卡上的CPU开始执行EPROM中固化的系统管理<BIOS>程序。首先,对自身的各部分硬件逻辑进行检查,然后初始化各种系统参数<如NMI中断向量地址等>,接下来,CPU便判断内存缓冲区中有否要打印的代码。如果有,则从内存缓冲区中取出此打印代码,经过地址换算,从“硬字库”中取出一系列字模点阵数据,按当前的字形及字间距等参数按行排版运算后,把点阵数据通过“打印卡<=>打印机信息通讯接口”送往打印机,即调用EPROM中固化的组合汉字打印驱动程序,在打印机上打印出此代码所表示的字符。如此循环,便可把缓冲区中的代码全部在打印机上打印出来;如果缓冲区中无打印代码,CPU则一直循环判断、等待。
下面简要说明一下主机是如何将打印代码传送至打印卡的内存缓冲区的首先,主机往“主机=>打印卡控制命令寄存器”<7>中写一数据将打印卡上CPU的NMI中断请求线<k>变成有效电平,使打印卡上的CPU离开主循环程序<图2所示>,转去执行NMI中断服务程序<当然,此处并非必须用NMI中断传送方式,根据具体的电路,也可采用其它可屏蔽中断传送方式>。
从主机方面来讲,接下来的工作便是往“主机/打印卡数据输出/输入缓冲器”<5>中写数据,此时,数据传送采用的是查询式传送方式。主机首先从“主机/打印卡数据传送状态指示寄”<8>中读出数据传送状态标志,判断“主机/打印卡数据输出/输入缓冲器”<5>中的数据是否已被打印卡的CPU取走,即缓冲器是否已空。若空,则可写入数据;若未空,则循环判断、等待,直至空时,再写入数据,如此循环,便可把一系列数据传送至打印卡。当数据传送完毕后,主机需再次往“主机=>打印卡控制命令寄存器”<7>中写一数据,使NMI中断请求线<k>变为无效,以备下次再次申请。
从打印卡方面来看,此时CPU已转去执行NMI中断服务程序。首先,从“主机/打印卡数据传送状态指示寄存器”<8>中读出数据传送状态标志,判断“主机/打印卡数据输出/输入缓冲器”<5>中是否已有数据,即缓冲器是否已满。若满,则可从此缓冲器中读出数据并存入相应的内存缓冲区中;若未满,则循环判断、等待,直至满时,再读出数据,如此循环,便可把主机传送的一系列数据读出并存入内存缓冲区中。当数据传送完毕后,打印卡的CPU便可退出NMI中断服务程序,继续执行主循环程序。可以看出,在没有数据传送的时候,主机CPU与打印卡的CPU各自进行自己的工作,互不影响,当需要传送数据的时候,便由主机CPU唤醒打印卡的CPU,二者之间通过“握手”传送方式,共同完成数据的传送操作。
二、打印代码分批传送技术由于成本等诸多因素的限制,打印卡的内存容量不可能很大,也就是说,打印卡的内存容量毕竟是有限的,而人们编辑的文件即要打印的文件的大小,相对来说是没有限制的,若打印的文件大于打印卡的内存容量时,主机仍不得不等待前一批打印代码打印完毕后,才能传送下一批打印代码至打印卡,这样,主机真正脱机的时间只是打印最后一批代码所用的时间,并未实现“完全”的即“真正”的脱机打印。为了解决这一问题,发明了打印代码分批传送的设计思想。在硬件上,打印卡自身还带有一个中断请求触发器<9>,其输出端连在主机的中断请求线<IRQ7><d>上。其设计思想是这样的首先,在主机的硬盘中开辟一个用来存放“剩余打印代码”的缓冲区。从主机方面来讲,每次要往打印卡上传送数据的时候,首先应把本次要传送的数据的长度告诉打印卡,打印卡接收到此长度数据后,判断当前内存空间能否容纳得下这批数据并送出不同的数据标志到主机/打印卡数据输入/输出缓冲器”<6>中,主机从此缓冲器中读出数据后便可得知打印卡是否有足够的内存空间。若有,则可把数据按前面介绍的传送方式传送过去;若没有,则把数据存入硬盘中相应的缓冲区中,然后主机便可退出打印状态进行其它别的工作。从打印卡方面来看,当它发现自己的缓冲区已满并告诉主机后,自己内部也置一个标志,标明硬盘缓冲区中还有未传送过来的“剩余打印代码”。此时主机与打印机各自干自己的工作,互不影响。当打印卡内存缓冲区中的内容打印完毕后,便开始进行图2<b>所示的过程。首先判断主机硬盘中有否“剩余打印代码”。若没有,则表明本次打印已全部完毕CPU继续进入循环等待状态;若有,则触发中断请求触发器<9>,申请主机IRQ7硬中断。此时,主机暂时中止现行的工作,转去执行中断服务程序INTOFH<主机上运行的脱机打印服务程序中剩余打印代码取盘管理模块>,将硬盘中的剩余打印代码传送至打印卡,然后便可退出此服务程序,继续进行原来的工作。可以看出,整个打印过程所占用的主机时间,只是主机分几次成批传送打印代码至打印卡的时间,相比传统打印方式下打印机的动作时间,只是很微小的一部分因此在打印文件的时候,主机可以几乎不受影响的做其它工作,实现了“真正”的脱机打印。
三、多种打印机汉字打印驱动程序组合设计技术传统打印方式下,不同的打印机需要专门配置一套汉字打印驱动程序,给生产和使用带来极大的不便。在脱机打印卡的设计过程中,采用了组合设计技术,将多种打印机的汉字打印驱动程序经过组合,压缩在一起,并固化在打印卡的EPROM<3>中。用户可通过传送控制代码序列的方式来选择驱动所带的打印机类型,并且在程序入口处,所有的汉字打印控制代码皆作了统一的标准,在出口端,则根据不同的打印机,分别送出不同的控制序列码。另外,驱动程序中还增加了自动分页功能。新的分页技术比之传统的分页技术有了重大的改进。传统的分页方式,是按每页可以打印多少标准行以及当前已打印多少行为标准来计算并实现分页的,当某几行为纵向扩展行或制表符即非标准行时,分页便变得极为不正确,而新的分页方式,是按纸的长度及当前的走纸长度来计算并实现分页的,因此,不管打印文件中有无纵向扩展行或制表符,分页皆准确无误。
四、软件设计技术概要脱机打印卡核心系统软件主要由以下两大部分组成a、脱机打印服务程序<主机上运行>
b、BIOS管理程序<固化在打印卡的EPROM中>
其中,主机上运行的脱机打印服务程序,主要由以下几大模块组成并实现如下功能1>、新的打印中断服务程序取代打印原中断服务程序,常驻内存并占用相同的中断向量号INT17H,用来传送主机中的打印代码至打印卡并且,从DOS级调用此中断服务程序的接口关系同原中断服务程序完全兼容。
2>、剩余打印代码存盘管理模块。在上面的模块将打印代码往打印卡上传送的过程中,若打印卡的内存缓冲区已满,则由本模块负责将剩余的打印代码存入硬盘上相应的缓冲区中。
3>、剩余打印代码取盘模块。本模块占用主机的中断向量INTOFH且常驻内存。当打印卡上的打印代码全部输出至打印机后,由打印卡触发中断请求触发器,申请主机,OFH中断。本中断模块便负责将硬盘缓冲区中的剩余打印代码传送至打印卡。
固化在打印卡的EPROM中的BIOS管理程序,主要由以下几大模块组成并实现如下功能1>、打印卡开机自检、初始化处理模块。用于开机检测打印卡的好坏并初始化各种参数。
2>、打印卡与主机之间的信息通讯管理模块<打印卡上的NMI中断服务程序>。用于实现同主机进行信息通讯的功能。
3>、组合汉字打印驱动程序。本程序负责将打印代码转换成相应的字模点阵数据并送往打印机,实现汉字的打印功能。本组合程序对外实行统一的控制代码标准,便于用户采用统一的控制代码标准驱动打印机、控制各种字形及版面格式的打印;对内则根据不同的打印机,分别解释成相应的控制代码,送往打印机。
发明的效果脱机打印卡的设计,由于采用了新颖的多CPU并行处理技术和打印代码分批传送技术,使得整个打印工作皆由打印卡来完成而不再占用主机时间,因此,用户在使用打印机打印文件的时候,可以同时使用主机进行人机对话等其它工作,消除了传统打印方式下打印过程中主机再也不能进行其它工作的弊病,大大提高了主机的利用率和人们的工作效率。
由于打印机的汉字打印驱动程序皆组合固化在打印卡的EPROM中,对外实行统一的控制代码标准,因此,在用户接口阶层,可采用统一的控制代码标准驱动打印机、控制各种字形及版面格式的打印,为应用程序的标准打印模块的编写及良好的可移植性提供了现实可能的基础。
另外,新颖的软件设计技术,使得脱机打印卡具有精确的自动分页功能。用户可以自由设定打印纸的长度、打印起始/终止页号、页首/页尾空白行数、页号打印行/列数以及页左空白列数,进行所需格式的分页输出,并且,不论文本文件中有无纵向扩展字或制表符,分页皆准确无误。
在硬件兼容性方面,脱机打印卡采用标准扩展卡的设计形式,可以插在任何档次的PC系列兼容机的扩展槽中,使其支持脱机打印功能。
在软件兼容性方面,脱机打印支持传统非脱机打印方式下已有的任何标准系统及应用软件,且用户接口不变。
权利要求
1.一种微机汉字脱机打印法,其特征是在微机标准扩展插槽中增加一打印卡,打印卡自身带有中央处理器CPU、内存RAM、可编程只读存储器EPROM、硬字库MASKROM、主机<==>打印卡信息通讯接口、打印卡<==>打印机信息通讯接口,主机CPU将打印代码通过主机<==>打印卡信息通讯接口传送至打印卡的内存缓冲区中,便退出打印状态,打印卡上的CPU则从内存缓冲区中取出打印代码,经过地址换算,从硬字库中取出对应的字模点阵数据并经过按行排版运算后,将点阵数据通过打印卡<==>打印机信息通讯接口输出至打印机,在打印机上打印出相应的字符。
2.按照权利要求1所说的微机汉字脱机打印法,其特征是所说的打印代码传送为分批传送方式,在主机硬盘中开辟一个“剩余打印代码缓冲区”;主机内存中驻留IRQ7的中断服务程序INT OFH;在打印卡上设置一个中断请求触发器,主机在往打印卡上传送数据的过程中,若打印卡的内存缓冲区已满,便将其后的“剩余打印代码”存放在主机硬盘中相应的缓冲区中;当打印卡上的打印代码全部输出至打印机后,便触发中断请求触发器,申请主机IRQ7中断,由中断服务程序INT OFH将硬盘缓冲区中的剩余打印代码输出至打印卡。
3.一种微机汉字脱机打印卡,其特征是它由中央处理器CPU<1>、存储器RAM<2>、可编程只读存储器EPROM<3>、字模点阵硬字库MASKROM<4>、主机/打印卡数据输出/输入缓冲器<5>、主机/打印机卡数据输入/输出缓冲器<6>、主机=>打印卡控制命令寄存器<7>、主机/打印卡数据传送状态指示寄存器<8>、打印卡=>打印机数据输出缓冲器<10>、打印机状态指示寄存器<11>、打印卡=>打印机控制命令寄存器<12>、主机端口地址译码器<13>及打印卡端口地址译码器<14>所构成。
4.按照权利要求3所说的微机汉字脱机打印卡,其特征是存储器RAM<2>、可编程只读存储器EPROM<3>、字模点阵硬字库MASK ROM<4>、主机/打印机数据输出/输入缓冲器<5>、主机/打印卡数据输入/输出缓冲器<6>、主机/打印卡数据传送状态指示寄存器<8>、打印卡=>打印机数据输出缓冲器<10>、打印机状态指示寄存器<11>、打印卡=>打印机控制命令寄存器<12>通过内部数据总线<e>与CPU<1>的数据总线相连;存储器RAM<2>、可编程只读存储器EPROM<3>、字模点阵硬字库MASK ROM<4>、打印卡端口地址译码器<14>通过内部地址总线<f>与CPU<1>的地址总线相连;打印卡端口地址译码器<14>通过内部控制总线<g>与CPU<1>的控制总线相连;主机=>打印卡控制命令寄存器<7>的输出端与CPU<1>的非屏蔽中断<NMI>请求线<k>相连;主机/打印机数据输出/输入缓冲器<5>、主机/打印卡数据输入/输出缓冲器<6>、主机=>打印卡控制命令寄存器<7>、主机/打印卡数据传送状态指示寄存器<8>与主机的数据总线<a>相连;主机端口地址译码器<13>与主机的地址总线<b>和控制总线<c>相连;打印卡=>打印机数据输出缓冲器<10>与打印机数据总线<h>相连;打印机状态指示寄存器<11>与打印机状态总线<i>相连;打印卡=>打印机控制命令寄存器<12>与打印机控制总线<j>相连。
5.按照权利要求4所说的微机汉字脱机打印卡,其特征是所说的打印卡上可设置中断请求触发器<9>,其输入端与CPU<1>的数据总线相连,其输出端与主机的中断请求线<IRQ7><d>相连。
6.按照权利要求3、4或5所说的微机汉字脱机打印卡,其特征是所说的打印卡<Y>通过数据总线<a>、地址总线<b>、控制总线<c>以及中断请求线<d>与主机<X>相连;通过数据总线<h>、状态总线<i>、控制总线<j>与打印机<Z>相连。
7.按照权利要求3或4所说的微机汉字脱机打印卡,其特征是所说的可编程只读存储器EPROM<3>中固化有汉字打印驱动程序及BIOS管理程序。
全文摘要
微机汉字脱机打印法及脱机打印卡是微型电子计算机汉字信息处理技术领域中汉字打印的一种方法及装置。其特征是主机CPU将打印代码通过主机<==>打印卡信息通讯接口传送至打印卡的内存缓冲区中,便退出打印状态,打印卡上的CPU则从内存缓冲取出打印代码,经过地址换算,从硬字库中取出对应的字模点阵数据并经过按行排版运算后,将点阵数据通过打印卡<==>打印机信息通讯接口输出至打印机,在打印机上打印出相应的字符。
文档编号G06F3/12GK1040690SQ89106829
公开日1990年3月21日 申请日期1989年9月30日 优先权日1989年9月30日
发明者王柏华 申请人:浪潮电子信息产业集团公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1