更新时间:2023-12-31 15:02
ANSI.SYS是MS-DOS中一个很有用的设备驱动程序,利用它,我们可以取得意想不到的显示效果。
ANSI ESC序列是一个ASCII码字符序列;序列开头的两个字符是ESC转义字符 (ASCII码为1Bh)和左方括号(5Bh),紧跟其后的是一个控制键盘和显示功能的字母数字代码序列。 ANSI转义序列严格区分字母大小写,如“A”和“a”就分别有完全不同的意义。
这个设备驱动程序必须通过CONFIG.SYS文件中的(DEVICE)或(DEVICEHIGH)命令加载。
注意:本主题中,语法和ANSI ESC转义序列的黑体字必须严格照原样输入 。
语法:
DEVICE=drive:pathANSI.SYS /X /K /R
参数 :
drive:path
指定ANS1.SYS文件所在处的完整路径名。
开关项 :
/X
重新映射独立于101键键盘的扩展键。
/K
ANSI.SYS象处理84键键盘一样来处理101键键盘。 这与命令SWITCHES=/K等效。如果经常要用SWITCHES=/K命令,则有必要在ANSI.SYS中用/K开关项。
/R
在读屏幕程序(使计算机更方便残疾人操作)中用ANSI.SYS时,/R通过调整行滚动来提高其可读性。
ANSI转义序列中要用到以下参数:
Pn
数字参数。指定一个十进制数字。
Ps
可选参数。指定一个十进制数,用以选择某一函数。若要指定多个函数,可用(;)分隔不同的函数。
PL
行参数。指定一个十进制数,表示显示器或另一设备上显示的某一行。
Pc
列参数。指定一个十进制数,表示显示器或另一设备上显示的某一列。
用于光标移动、图形和键盘设置的ANSI ESC序列
下列ANSI转义序列中,缩写ESC代表ASCII转义字符27(1Bh),它出现在每个转义序列的开头。
ESCPL;PcH
光标置位:移动光标到所指定的位置(坐标)。如果没有指定位置,则光标移至初始位置屏幕的左上角(0行,0列)。该转义序列与下面这个光标定位转义序列的工作方式相同。
ESCPL;Pcf
光标置位:与上面的光标定位转义序列等价。
ESCPnA
光标上移:向上按指定的行数移动光标,所在列数不变.如果光标已在顶行,ANSI.SYS忽略该序列。
ESCPnB
光标下移:按指定的行数向下移动光标数行,且保持所在列数不变.如果光标已在底行,ANSI.SYS忽略此序列。
ESCPnC
光标前移:按指定的列数向前移动光标数列,且保持所在行数不变。如果光标已在最右边的列上,ANSI.SYS忽略此序列。
ESCPnD
光标后移:按指定的列数使光标后退数列,而不改变其原所在行。如果光标已在最左列,ANSI.SYS忽略此序列。
ESCs
保存光标位置:保存当前光标位置。可利用“恢复光标位置”序列将光标移至此光标位置处。
ESCu
恢复光标位置:返回由“保存光标位置”转义序列所存放的光标位置坐标。
ESC2J
擦除显示:清屏并将光标移至起始位置(0行,0列)。
ESCK
行擦除:清除从当前光标位置到其所在行行末的所有字符(包括光标位置处的字符)。
ESCPs;...;Psm
设置图形方式:下列指定的值来调用图形函数。这些指定的函数将一直起作用,直到遇到下一个同类的转义序列。图形方式改变屏幕显示的颜色和字符属性(如黑体和下划线)。
文本属性
0 关闭所有属性
1 黑体有效
4 下划线有效(仅限单色显示器)
5 闪烁有效
7 反相显示有效
8 隐蔽
前景颜色
30 黑色
31 红色
32 绿色
33 黄色
34 蓝色
35 洋红色
36 青色
37 白色
背景颜色
40 黑色
41 红色
42 绿色
43 黄色
44 蓝色
45 洋红色
46 青色
47 白色
参数30到47与ISO 6429标准一致。
ESC=psh
模式设置:改变屏宽或类型,使之成为由下列值之一所指定的模式:
0 40 x 148 x 25 单色(文本)
1 40 x 148 x 25 彩色(文本)
2 80 x 148 x 25 单色(文本)
3 80 x 148 x 25 彩色(文本)
4 320 x 148 x 200 4色(图形)
5 320 x 148 x 200 单色(图形)
6 640 x 148 x 200 单色(图形)
7 折行有效
13 320 x 148 x 200 彩色(图形)
14 640 x 148 x 200 彩色(16色图形)
15 640 x 148 x 350 单色(2色彩图形)
16 640 x 148 x 350 彩色(16色图形)
17 640 x 148 x 480 单色(2色彩图形)
18 640 x 148 x 480 彩色(16色图形)
19 320 x 148 x 200 彩色(256色图形)
ESC=Psl
模式重设置:用模式设置所用的同样值进行模式重置(复位),方式7(禁止折行)除外。此转义序列的最后一个字符是小写字母l。
ESCcode;string;...p
设置键盘字串:用一指定的串重定义键盘的键。此转义序列的参数定义如下:
★ Code是下表中列出的一个或多个值。这些值代表键盘的键或键组合。在命令中用到这些值时,除了转义序列所要求的分号外,还要求输入表中所示的分号。小括号括出的代码在一些键盘中没有提供。ANS1.SYS对这些键盘,不进行括号中的代码的解释,除非在ANS1.SYS的DEVICE命令中指定了/X开关项。
★ String串可以是一单个字符的ASCII码,也可以是用双引号引起的一个字串。例如,65和“A”都可用来表示大写字母A。
注意:下表中的某些值并非对所有计算机都有效,注意查对你的计算机手册,看哪些值是不同的。
ANSI.SYS─注解
重新映射的扩展键
带101个键的键盘,可利用/X开关对某些扩展键重新进行映射。例如,101键键盘上有两个HOME键:一个在数字小键盘上,一个在光标控制键块中。这两个HOME键在MS-DOS中是一样的,除非您指定了/X开关。
忽略扩展键
如果您的程序不能正确解释利用改进的键盘所进行的输入,可利用ANSI.SYS的/K开关项。这样,改进的键盘可当作普通键盘使用。
同时使用/X和/K开关
不能在ANSI.SYS中同时指定/X开关和/K开关。
--------------------------------------------------------------------------------
下面的转义序列,利用反斜杠和问号键各自的ASCII值来使其互换。
ESC92;63pESC63;92p
要恢复反斜杠和问号键的原始定义,输入以下转义序列:
ESC92;92pESC63;63p
要指定MS-DOS对某一目录列表显示,作为对F2键的响应,可输入下面的prompt命
令行:
要指定屏幕背景色为黑色,前景色为高增强亮色,可输入下列prompt命令:
prompt ;32;40m