如何在直接写屏型应用软件中使用特殊显示功能

Author: Date: 1995-03-31

        所谓特殊显示是指通过修改显示中断,不断监视应用程序写往屏幕的字符内容,对某些特殊控制序列进行特殊处理的过程。即当应用程序调用INT 10H显示字符或汉字时,首先被特殊显示程序截获,它判断该显示操作是否为特殊显示操作,若是特殊显示操作则对特殊显示命令串进行解释并执行相应的特殊功能。
        因此,通过直接写屏幕显示字符的方式不能正确实现特殊显示功能,因为这些被显示的控制序列没有被传送至特殊显示控制程序。例如FoxPro是一个直接写屏型的数据库系统,通过该软件定义的字符显示命令无法实现特殊显示功能。UCDOS 3.1专门对此进行的特殊考虑,较好地解决了这个问题。即特殊显示程序在监视显示中断的同时,也监视打印中断,也就是说,凡是往3号打印口打印的字符均被认为是特殊显示命令。通常情况PC系列微机很少同时挂接3台打印机,因此,这一方法不会影响正常打印功能。当然,用户也可以通过其它方法(如使用命令ETX)间接实现特殊显示功能。
        因此在诸如FoxPro这样的直接写屏型软件中,使用特殊显示时应注意不要将特殊显示控制命令直接通过显示命令显示出来,应该通过3号打印口发送特殊显示控制命令。
        下表是在一些常用环境下通过打印口3进行特殊显示的方法:
        由于目前许多应用程序均使用直接写屏方式显示字符,因此建议采用打印口3方式使用特殊显示命令。但要注意的是如果没有运行TX程序,则通过打印口3方式使用特殊显示将出现“打印口3没有准备好”的信息。