首页 理论教育 CCDOS驱动程序PRT.COM在仿真系统下的应用

CCDOS驱动程序PRT.COM在仿真系统下的应用

时间:2023-10-30 理论教育 版权反馈
【摘要】:下面以CCDOS2.13下的驱动程序PRT.COM仿真CCDOS系统下的3070.EXE为例加以说明。本仿真使得在CCDOS系统下原来需要3070.EXE驱动的一些应用软件,使用PRT.COM将可以正常使用,同时还增加了不少新功能。表6-1 PRT.COM和3070.EXE的有关命令与打印控制命令间的仿真类似,我们需要用一种驱动程序的命令代码去解释另一种驱动程序命令,这通常只需要转换一些最常用的控制命令就可以了,一般包括字号、字体控制、行距字距控制、双向及单向打印控制等,这些也是打印驱动程序设计的主要组成部分。

CCDOS驱动程序PRT.COM在仿真系统下的应用

仿真就是以一种系统模拟另一种系统,对于打印机而言,包括以下三种情况:

1)打印机控制命令间的仿真;

2)打印控制语言的仿真;

3)打印驱动程序之间的仿真。

这三种情况的处理方法是相同的,首先要建立源命令列表和目标命令列表,两者大小相同,一一对应;再利用计算机高级语言解释程序技术对源命令的命令标识符进行扫描识别,一旦找到,就通过查找源命令列表得到下标偏移值INDEX,并以此值查目标命令列表,取出对应的目标命令送打印机输出。

1.打印机控制命令之间仿真

由于各个厂家的打印语言都不是完全相同(通常使用Epson ESC/PK、OKI、IBMPPDS、OLIVETTI PR50等),而很多软件在设计的初期都是以某一款打印机作为硬复制对象基础设计的,后期推出的打印机为了能兼容这个软件,其内部的解释器就必须也能解释这款打印机的打印语言,这个解释过程就是所谓的“控制命令之间仿真”。

例如,具有LQ-1600K系列打印机驱动程序的某绘图软件,没有提供本打印机的驱动程序,为了能让本打印机也能在这个软件下工作,这时需要编写一个过滤程序嵌在本打印机内部,把原驱动程序中有关LQ-1600K的所有的命令部分,转换为本打印机相应的命令输出。举例如下:在画图软件中通常要定义行距,LQ-1600K的命令为0x16、0x4a、0x18、0x0d,本打印机的命令为0x16、0x54、0x31、0x0d、0x0a,把前者的命令扫描转换为后者的命令即可。

现在的打印机通常在硬件上固化了若干厂家和型号的打印机仿真程序,适应不同的应用软件的使用环境,以使打印机能进入到更多的市场领域,例如通过DIP/EDS开关可切换到LQ仿真方式,支持使用EPSON打印驱动程序。

日本的EPSON公司是目前计算机外部设备的规模最大的生产商之一,在目前的打印机市场,尤其是针式打印机市场占有很大一部分的份额,它所推行的ESC/PK打印控制命令(EPSON Standard Code for Printer)已经成为针式打印机控制语言事实上的工业标准,ESC/POS打印命令集是ESC/PK打印控制命令的简化版本,现在大多数针式打印机都会配有ESC/POS指令集的仿真系统。(www.xing528.com)

2.打印控制语言仿真

打印控制命令的仿真局限于小范围之间的代码改变,而打印控制语言不但在代码之间,而且语言语法、命令格式等都有较大差异,这是一种更为广泛的模拟过程,其原理与前者相同。例如,不少激光打印机以字库卡形式提供HPPCL5和Postscript语言的仿真,支持两者的应用软件,就属此类。

3.驱动程序间的仿真

以往DOS时代流行的汉字操作系统很多,如CCDOS、CCDOS2.13、UCDOS等,其中UCDOS在后期基本统一了所有的市场,有关的汉字DOS的使用甚至现在还有用户,每种汉字系统都提供了汉字的打印输出功能,但由于计算机用户的特殊要求,通常需要在一个汉字系统中调用另一汉字系统的打印程序,以获得某种特殊的输出需要,这就需要进行驱动程序之间的仿真。

下面以CCDOS2.13下的驱动程序PRT.COM仿真CCDOS系统下的3070.EXE为例加以说明。本仿真使得在CCDOS系统下原来需要3070.EXE驱动的一些应用软件,使用PRT.COM将可以正常使用,同时还增加了不少新功能(见表6-1)。

表6-1 PRT.COM和3070.EXE的有关命令

978-7-111-33336-4-Chapter06-18.jpg

与打印控制命令间的仿真类似,我们需要用一种驱动程序的命令代码去解释另一种驱动程序命令,这通常只需要转换一些最常用的控制命令就可以了,一般包括字号、字体控制、行距字距控制、双向及单向打印控制等,这些也是打印驱动程序设计的主要组成部分。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈