微信公众号 
图码生活

每天发布有五花八门的文章,各种有趣的知识等,期待您的订阅与参与
电脑报 1992-2001 十年文章全集
电脑报 1992-2001 十年文章全集
包含从 1992 年 - 2001 年间,两万余篇期刊文章,查询最少输入两个字符
随便看看
读取中
读取中
标题QBASIC文本方式下使用UCDOS特显功能
栏目软件操作与技巧
作者湖北 杨万生 庞胜林
发布1995-09-01
  PRINT CHR$(14) "[特显命令串及其参数]"
  这种方法只适用于低版本的GW-BASIC,而在5.0以上版的DOS中的QBASIC环境下不一定有效。例如,下面两行程序的作用为在屏幕的中部显示红色的64×48点黑体汉字“希望汉字系统”,并给显示的内容加上黄色的边框:
  PRINT CHR$(14); "CL{-150|150^2@64,48=2(4希望汉字系统}]"
  PRINT CHR$(14); "[CO14R148,150,440,214]"
  这两句程序在BASICA及GW-BASIC下执行时,可以得到正确结果。但在QBASIC下运行时,不能实现特显功能,要想显示正确结果,必须在程序的开头加上SCREEN 12这条语句。这也就是说,QBASIC中只能在图形方式下使用UCDOS的特显功能。
  众所周知,所谓的中西文兼容汉字系统其实只是一种伪文本方式,其本来就工作在图形方式下。因此,若非必要,在作图前不要重新设置显示方式,否则,系统将工作在纯图形方式下,这样就失去了中西文兼容等优秀特点。实际上,我们在编程时之所以要使用汉字系统的特显功能,除了能显示矢量汉字外,更主要的是为了实现文本方式下的图文并茂。,在文本方式下无法使用UCDOS的特显功能无疑是一件憾事。
  目前,国内较优秀的汉字系统的特显功能,一般都是通过修改显示中断向量INT 10H来实现的。当应用程序的显示命令调用中断INT 10H时,首先被特显模块(如UCDOS中的TX.COM)截获,由特显程序模块根据该显示操作中是否含有特显命令引导字符CHR$(14)+"["来决定是否进行特殊显示操作。这种实现方法类似于DOS中的设备驱动程序ANSI.SYS。显然,直接写屏方式下是无法使用特显功能的。
  为了在QBASIC文本方式下使用特显功能,笔者经过试验发现,可以巧妙地利用DOS的控制台I/O设备“CON”来实现在文本方式(当然也可以在图形方式)下使用UCDOS的特显功能。具体使用方法如下:
  OPEN “CON” FOR OUTPUT AS #1
  PRINT #1,CHR$(14)+"[特显命令串及参数]"
  CLOSE #1
  用这种方法,不必对汉字系统做任何修改,简单方便。此法在QBASIC、Quick BASIC及Visual BASIC for DOS等编程环境下试验通过,适用于UCDOS V3.0以及3.1版(UCDOS 3.1下,也可用其提供的通过打印口3使用特显功能的格式)。当然,这种方法也同样适用于具有类似特显功能的其他汉字系统,如CXDOS等。
  (湖北 杨万生 庞胜林)