在CCED中实现打印机初始化和换页功能的小程序

Author: 陕西 郭宗吾 Date: 1996-11-08

        首先,在Turbo C 2.0集成环境中(也可用其它语言,如汇编等),调用BIOS的int 17号中断,编写打印机初始化和打印机换页函数,经过编译、连接,形成EXE或COM文件,再把这两个可执行文件拷贝到CCED子目录中使用。具体函数如下:
        /*文件名:Chpage.c*/#include <dos.h>/*初始化打印机函数*/P-initprn (){union REGS r,j;   r.h.ah==1;   r.x.dx=0;   int86(0x17,&r,&j);}/*换页函数*/char P-chpage (char ch){union REGS r,j;   r.h.ah=0   r.h.al=ch;   r.x.dx=0;   int 86(0x17,&r,&j);}/*读打印机状态*/P-readprn (){union REGS r,j;   r.h.ah=2;   r.x.dx=0;   int86(0x17,&r,&j);   return(j.h.ah&0x08);}/*主函数*/main(){if (P rcadprn()){P-initprn(); P-chpage(0c);}/*打印一个换页字符0c或12d*/ else P-chpage(0c);}需要说明的是,该文件经编译、连接后只能形成一个EXE文件,实现打印机换页功能,取名为CHPAGE.EXE;而对打印机初始化时需另编一个文件,在文件的主函数中调用CHPAGE.EXE文件中的P-initprn()函数,经过编译、连接形成EXE文件,取名为INITPRN.EXE。
        最后,进入CCED子目录中,启动CCED,调入CCED 50.PRO,找到文本菜单的“从当前行打印”处,将“def C-P=[Print]{K}修改为“def C-P=[Dos]Initprn^M^M[Print][Dos]'Chpage^M^M'{K}@:从当前行开始打印”,存盘,退出CCED(有关操作命令,详见《CCED用户手册》)。这样,就可在以后用CCED进行字表编辑中,使“从当前行开始打印”实现了对打印机的初始化和打印完毕打印机自动换页功能。