一种打印机软开关的设计

Author: 欧阳波 Date: 1993-01-15

        在PC系列计算机的DOS操作系统中,有一个BIOS数据通讯区,其中有LPT1和LPT2的基地址地址值分别为040:08-040:09和040:0A-040:0B,该地址中含有LPT1和LPT2的通讯端口,一般为0378H和0278H,通过改变打印机LPT1和LPT2基址中通讯端口值,就可以进行联机或脱机,从而有效地控制打印机。大多数情况下,一台计算机连接一台打印机即LPT1。在C盘上用DEBUG建立一个KGCOM程序如下:
        C>DEBUG  -A100
        XXXX:0100  push  ds
        XXXX:0101  mov  ax,0040
        XXXX:0104  mov  ds,ax
        XXXX:0106  mov  al,〔8〕
        XXXX:0109  mov  ah,〔9〕
        XXXX:010d  mov  〔8〕,ah
        XXXX:0111  mov  〔9〕,al
        XXXX:0114  pop  ds
        XXXX:0115  int  20
        XXXX:0117
        -rcx
        0000:17-nkgcom
        -w
        writing  0017  bytes
        -q
        当第一次运行时,LPT1的端口值变为7803H,从而切断了主机与打印机的通讯(即脱机);第二次运行时,LPT1的端口值恢复为0378H,这样主机与打印机联机。所以运行该程序可使打印机联机或脱机。