以下是好时光的问题; - )
我在九十年代写了一个仍在使用的应用程序。它基于MS-DOS并打印到串行端口COM1。 现在有些打印机无法打印到。显然BIOS不会将数据发送到打印机。当我像这样初始化打印机时,它可以工作:
mode com1:9600,n,8,1
dir A:\ > com1:
我认为这与我在C程序中的做法没有什么不同: INIT:
union REGS regs;
m_iBaudRate = iBaudRate;
m_iParity = iParity;
m_iDataBits = iDataBits;
m_iStopBits = iStopBits;
// Init
regs.h.ah = 0;
regs.h.al = getParamByte();
regs.x.dx = getBiosPort();
int86( 0x14, ®s, ®s );
打印:
regs.h.ah = 1;
regs.h.al = cChar;
regs.x.dx = getBiosPort();
int86( 0x14, ®s, ®s );
如上所述,这适用于许多具有各种打印机的机器,但不适用于某些打印机。任何提示?