UCDOS下不能打印汉字故障一例

Author: 张军利 Date: 1997-01-01

#3  故障现象:一台联想P5/120微机,装有UCDOS 5.0和Foxpro 2.5,打印机为联想LJ6P激光打印机,在UCDOS 5.0中,以前在Foxpro中能正常打印汉字,但后来却突然不能打印汉字了,打印出来的汉字是一些杂乱的ASCII码字符,而在中文Windows 3.2中却能正常打印汉字。
  故障分析与排除:开始以为是打印机的仿真模式设置不对,按照说明书重新进行设置后,还是不能打印出汉字来。后又用UCDOS中的SETUP设置程序和打印机的设置程序对激光打印机的仿真模式进入多次设置试验,但均不起作用,打印出来的汉字还是一些杂乱的ASCII码字符。
  后来怀疑内存驻留有病毒造成打印机不能正常工作。在用MEM/C/P命令查看内存驻留程序时,发现UCDOS的打印字库读取程序RDPS和汉字打印驱动程序PRNT没有驻留内存。运行这二个程序后,再进入Foxpro中,则能正常打印出汉字来,再查看UCDOS的启动文件UP.BAT,其内容如下:
  @ECHO OFF
  C:\UCDOS\RD16 %1
  C:\UCDOS\NKL %2
  C:\UCDOS\PY
  WB
  C:\UCDOS\RDPS
  C:\UCDOS\PRNT
  RDPS和PRNT明明在批处理文件中,可为什么却没有执行呢?仔细阅读该文件并逐行加以分析、调试后发现:WB是一个后来加入到UP.BAT中的命令,它用来加载五笔字型输入法;在WB之后的所有 都未执行。看来问题在WB上了。在DOS下用DIR命令列出文件目录,发现WB是一个批处理文件。这时才想起来应该用CALL命令来调用另外的批处理文件,于将是WB那一行改为CALL WB文件之后,再启动UCDOS并进入Foxpro,打印机能够正常打印汉字,故障排除。
#3  小结:在批处理文件中调用另外的批处理文件,只有用CALL语句进行调用,才能 在调用完毕后正常返回并继续向下执行其它命令;若不用CALL语句进行调用,虽然能够正常执行这个被调用的批处理文件,但在该批处理文件执行完毕后将不能返回到被调用处继续执行其它命令。