[terminal]终端仿真程序

  1 char * szCommAry[COMM_NUM]={   
  2     //屏幕属性命令,23   
  3     "x1b[12h",//禁止本端回显,键盘数据仅送给主机   
  4     "x1b[12l",//允许本端回显,键盘数据送给主机和屏幕   
  5     "x1b[?5h",//屏幕显示为白底黑字   
  6     "x1b[?5l",//显示为黑底白字   
  7     "x1b[?3h",//132列显示   
  8     "x1b[?3l",//80列显示   
  9     "x1b[?6h",//以用户指定的滚动区域的首行行首为参考原点   
 10     "x1b[?6l",//以屏幕的首行行首为参考原点   
 11     "x1b[?7h",//当字符显示到行末时,自动回到下行行首接着显示;如果在滚动区域底行行末,则上滚一行再显示   
 12     "x1b[?7l",//当字符显示到行末时,仍在行末光标位置显示,覆盖原有的字符,除非接收到移动光标的命令   
 13     "x1b[?4h",//平滑滚动   
 14     "x1b[?4l",//跳跃滚动   
 15     "x1b[/0s",//不滚动   
 16     "x1b[/1s",//平滑慢滚   
 17     "x1b[/2s",//跳跃滚动   
 18     "x1b[/3s",//平滑快滚   
 19     "x1b[3h",//监督有效,显示控制符,供程序员调试程序用   
 20     "x1b[3l",//监督无效,执行控制符,正常运行程序   
 21     "x1b[0$~",//禁止状态行(VT300有效   
 22     "x1b[1$~",//允许状态行(VT300有效)   
 23     "x1b[2$~",//主机可写状态行(VT300有效)   
 24     "x1b[0$|",//主机可写状态行时,在主屏显示数据(VT300有效)   
 25     "x1b[1$|",//主机可写状态行时,在状态行显示数据(VT300有效)   
 26    
 27     //光标命令,14   
 28     "x1b[?25h",//光标显示   
 29     "x1b[?25l",//光标消隐   
 30     "x1b[/0j",//闪烁块光标   
 31     "x1b[/1j",//闪烁线光标   
 32     "x1b[/2j",//稳态块光标   
 33     "x1b[/3j",//稳态线光标   
 34     "x1bH",//在当前列上设置制表位   
 35     "x1b[g",//清除当前列上的制表位   
 36     "x1b[0g",//清除当前列上的制表位   
 37     "x1b[3g",//清除所有列上的制表位   
 38     "x1bx45",//光标下移1行   
 39     "x1bx4d",//光标上移1行   
 40     "x1bx37",//保存终端当前状态   
 41     "x1bx38",//恢复上述状态   
 42    
 43     //行属性和字符属性命令,4   
 44     "x1b#3",//设置当前行为倍宽倍高(上半部分)   
 45     "x1b#4",//设置当前行为倍宽倍高(下半部分)   
 46     "x1b#5",//设置当前行为单宽单高   
 47     "x1b#6",//设置当前行为倍宽单高   
 48    
 49     //编缉命令,22   
 50     "x1b[A",    
 51     "x1b[B",   
 52     "x1b[C",   
 53     "x1b[D",   
 54     "x1b[4h",//插入方式:新显示字符使光标位置后的原来显示字符右移,移出边界的字符丢失。   
 55     "x1b[4l",//替代方式:新显示字符替代光标位置字符显示   
 56     "x1b[K",//清除光标至行末字符,包括光标位置,行属性不受影响。   
 57     "x1b[0K",//清除光标至行末字符,包括光标位置,行属性不受影响。   
 58     "x1b[1K",//清除行首至光标位置字符,包括光标位置,行属性不受影响。   
 59     "x1b[2K",//清除光标所在行的所有字符   
 60     "x1b[J",//清除从光标至屏末字符,整行被清的行属性变成单宽单高   
 61     "x1b[0J",//清除从光标至屏末字符,整行被清的行属性变成单宽单高   
 62     "x1b[1J",//清除从屏首至光标字符,整行被清的行属性变成单宽单高   
 63     "x1b[2J",//清除整个屏幕,行属性变成单宽单高,光标位置不变   
 64     "x1b[?K",//清除光标至行末的"可清除"字符,不影响其它字符和行属性   
 65     "x1b[?0K",//清除光标至行末的"可清除"字符,不影响其它字符和行属性   
 66     "x1b[?1K",//清除行首至光标位置的"可清除"字符,不影响其它字符和行属性   
 67     "x1b[?2K",//清除光标所在行的所有"可清除"字符,不影响其它字符和行属性   
 68     "x1b[?J",//清除从光标至屏末的"可清除"字符,不影响其它字符和行属性   
 69     "x1b[?0J",//清除从光标至屏末的"可清除"字符,不影响其它字符和行属性   
 70     "x1b[?1J",//清除从屏首至光标的"可清除"字符,不影响其它字符和行属性   
 71     "x1b[?2J",//清除整个屏幕中的"可清除"字符,不影响其它字符和行属性   
 72    
 73     //键盘16   
 74     "x1b[2h",//锁存键盘数据(不超过15个)暂停向主机发送,直到开放为止。   
 75     "x1b[2l",//允许键盘向主机发送数据。   
 76     "x1b[?8h",//键盘连发有效   
 77     "x1b[?8l",//键盘连发无效   
 78     "x1b[5h",//击键声有效   
 79     "x1b[5l",//击键声无效   
 80     "x1b[?1h",//光标键产生"应用"控制序列。见键盘代码一节。   
 81     "x1b[?1l",//光标键产生ANSI标准的控制序列。见键盘代码一节。   
 82     "x1b=",//副键盘产生"应用"控制序列。见键盘代码一节。   
 83     "x1b>",//副键盘产生数字等字符序列,PF键不变。见键盘代码一节。   
 84     "x1b[20h",//接收LF、FF或VT控制码后,光标移至下一行行首;Return键发送CR和LF控制码。   
 85     "x1b[20l",//接收LF、FF或VT控制码后,光标移至下一行当前列;Return键发送CR控制码。   
 86     "x1b[?67h",//作为退格键发送BS。   
 87     "x1b[?67l",//作为删除键发送DEL。   
 88     "x1b[/2h", // 顶排功能键作为应用程序功能使用CTRL功能键作为本端功能键使用   
 89     "x1b[/2l",//顶排功能键作为本端功能键使用CTRL功能键作为应用程序功能使用   
 90    
 91        
 92     //打印参数配置3   
 93     // ""   
 94 //  "x1bx5bx35x69",  //1、5、9 型终端打开并口,关闭用x1bx5bx34x69   
 95     "x9bx35x69", //2、10 型终端打开并口,关闭用x9bx34x69   
 96     "x1b[5i",  //3、4 型终端打开并口,关闭用x1b[4i   
 97    
 98     //状态报告8   
 99     "x1b[c",//主设备属性,询问 CSI c或CSI 0 c ,//应答 ESC [ ? 1;2c   
100     "x1b[0c",   
101     "x1b[>c", //辅助设备属性  ,询问 CSI > c或 CSI > 0 c    你配置如何?//应答  CSI > Pp;Pv;Po c    
102     "x1b[>0c",   
103     "x1b[5n",//设备状态    ,//询问   CSI 5 n 设备状态正常否?//应答    CSI 0 n 设备状态正常,CSI 3 n  设备不正常   
104     "x1b[6n",//光标位置,//询问   CSI 6 n 现在光标在何处?//应答    CSI Pl;Pc R 光标在Pl行Pc列   
105     "x1b[?15n",//打印机状态,//询问    CSI ? 15 n  打印机状态如何?//应答    CSI ? 13 n  无打印机(没开),//CSI ? 10 n   打印机准备好,CSI ? 11 n   打印机未准备好(缺纸、脱机等)   
106     "x1b[?25n",//自定义键状态    ,//询问   CSI ? 25 n  自定义功能键状态如何?//应答 CSI ? 20 n  自定义键允许,CSI ? 21 n   自定义键锁定   
107     "x1b[H",//光标移动   
108     "x1b[m",//字符属性   
109     "x1b(B",//指定G0字符集为ASCII   
110     "x1b(0",//指定G0字符集为DEC特殊图形字符集   
111     "x1b)B",//指定G1字符集为ASCII   
112     "x1b)0",//指定G1字符集为DEC特殊图形字符集   
113    
114     //辅口操作   10   
115         //1 型终端   
116     "x1b[/50hx1b[/53lx1b[/54lx1b!;;;Y", //打开终端辅口1   
117     "x1b[/50hx1b[/53lx1b[/54lx1b!3;0;0;1Z",  //打开终端辅口2   
118     "x1b[/50hx1b[/53lx1b[/54lx1b!;;;X",//打开终端辅口3   
119     "x1b[/53hx1b[/50l",//关闭终端辅口   
120    
121     "x1b[/|",//开始发送辅口数据   
122     "x1b[/51h",//开始发送辅口数据   
123     "x1b[/M",//关辅口   
124    
125     "x1bx25K",//开辅口,发送标志到辅口,发送该串   
126     "x1bx25x42",//开辅口,发送标志到辅口,发送该串   
127     "x1bx25x43"//开辅口,发送标志到辅口,发送该串   
128    
129 };   
130    
131 char * szCommAry1[COMM_NUM1]={   
132     //屏幕属性  1   
133     "x1b[xffx72",//开窗    CSI Pt;Pb r 设置滚动区域,参数Pt:顶行行号,Pb:末行行号   
134                        
135     //光标      6   
136     "x1b[xffx48",//光标定位  CSI Pl;Pc H或CSI Pl;Pc f光标移动到Pl行Pc列   
137     "x1b[xffx66",//光标定位   
138     "x1b[xffx41",//光标上移Pn行   
139     "x1b[xffx42",//光标下移Pn行   
140     "x1b[xffx43",//光标右移Pn行   
141     "x1b[xffx44",//光标左移Pn行   
142    
143     //编辑      5   
144     "x1b[xffx4c",//插入行   
145     "x1b[xffx4d",//删除行   
146     "x1b[xffx50",//字符删除   
147     "x1b[xffx40",//字符插入   
148     "x1b[xffx58",//字符清除   
149    
150     // 打印机   2   
151     "x1b[x2fxffx74",//打印机型号   
152     "x1b[x2fxffx78",//图像放大系数   
153    
154     "x1b[/xffM",//打开辅口   
155     "x1b[/xff|",   
156     //字符属性函数    1   
157     "x1b[xffx6d"//CSI Ps;Ps;...m 设置字符显示属性,Ps代表某种字符属性,见表3.1.3.3-2   
158    
159 };  

from: http://read.pudn.com/downloads73/sourcecode/windows/12055/WINCE-VT100/vt100sc/ExecComm.cpp__.htm

原文地址:https://www.cnblogs.com/sigai/p/7743328.html