如何确保打印前自动联机
CODE SEGMENT
PROG PROC FAR ;定义远过程
ASSUME CS:CODE,DS:CODE,SS:CODE
PUSH DS ;保存重要寄存器
PUSH DX
PUSH AX
MOV DX,00H ;设置打印口为LPT1
MOV AH,01H ;初始化打印机
INT 17H ;功能调用
POP AX ;恢复原寄存器内容
POP DX
POP DS
RETF ;远程返回
PROG ENDP
CODE ENDS
END PROG
把上面的汇编程序经过编译、连接,再用EXE2BIN转换为二进制文件PRNON.BIN。由于程序很小,所以也可以通过DEBUG的小汇编A命令直接输入程序的主体部分,也能形成PRNON.BIN二进制文件。这样就可以在FOXBASE或FOXPRO等系统调用了。
……
LOAD PRNON &&装载二进制文件
CALL PRNON &&调用二进制文件
KEY=INKEY(5) &&因初始化时打印头需动作,故此时需几秒钟的延迟
SET PRINT ON &&联机
SET DEVICE TO PRINT &&磁盘内容输出到打印机
……
将上述几条命令加入打印程序的前面,无论打印机的当前状态如何,都能够确保在打印前自动联接打印机。它能够将打印机缓冲区中的残留数据清空,具有仿真WPS打印功能的效果。程序执行时,我们可以看到打印头从当前位置回到初始位置,并伴有复位动作声和联机信号的鸣叫声。有兴趣的读者不妨把它加到自己的程序中,同时也可以把这个功能扩展到其它语言编写的程序中,如C语言、PASCAL语言等。