在BJ330上打印超长纸

Author: 辽宁 崔德香 Date: 1996-10-11

        按随机手册调整DIP开关SW2-4也只能使默认纸长为12英寸。
        在手册中查到,控制页长的打印命令:ESC C(Set Form Length,用行数来指定页长)。格式为:ESC C <n>,其中n为每页的行数,可取1-255,这里取最大值255,即使按图形方式打印,该设置仍有效。
        我用BASIC语言写了只有一条语句的程序,LPRINT CHR$(27);"C";CHR$(255);:END,并用Quick BASIC编译成一个执行文件BJ330.EXE,每次打印前先运行一下,配以适当的打印驱动软件,就可解决DOS下中西文文本打印。
        但是在WPS下打印时,WPS的其它打印命令又使“ESC C”命令失效。我用SOFT-ICE 2.52分析,设断点如下:BPIO 378 RW,得到了WPS打印文件前发送了命令ESC U,控制打印机单/双向命令,ESC U 1为单向打印,ESC U 0为双向打印。
        试验表明,当WPS不发送ESC U命令时,BJ330是按单向打印进行的,因此可将WPS的ESC U 1命令改为ESC C 255,并在打印时选“单向”打印,就可解决问题。(也可将ESC U 0也作上述修改)
        修改方法:可用DEBUG或PCTOOLS在WPS.CFG中查找1B 55 01,改为1B 43 FF。
        修改后可能出现“单向”仍不能打印超长纸,而选“双向”则可打印,说明文件中“单向”“双向”写反了,用PCTOOLS将WPS.CFG中“单向”“双向”文字互换即可。
        UCDOS中的WPS与原版差别较大,不能按上述方法修改。
        本文所述在SPDOS 5.21&WPS 2.2中运行通过。