Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Terminal VT100终端协议中的奇怪列号:0_Terminal_Console_Serial Port_Vt100 - Fatal编程技术网

Terminal VT100终端协议中的奇怪列号:0

Terminal VT100终端协议中的奇怪列号:0,terminal,console,serial-port,vt100,Terminal,Console,Serial Port,Vt100,我正在解释来自串行端口的一些输出。输出是在。VT100终端协议使用一些控制字符序列在屏幕上设置光标位置。控制序列如下所示: ESC[行;列H 比如说, ESC[01;01H表示将光标设置到第1行第1列 但当列数超过2位数字时,我会看到以下顺序 ESC[10;:0小时 注意:分号后面。此控制序列位于ESC[10;99H]之后,表示第10行第99列 我的理解是:0=100。但是如果列号是200呢?我认为这实际上是无效的,或者,如果是,这完全是偶然的。传递给CUP cursor position命令和

我正在解释来自串行端口的一些输出。输出是在。VT100终端协议使用一些控制字符序列在屏幕上设置光标位置。控制序列如下所示:

ESC[行;列H

比如说,

ESC[01;01H表示将光标设置到第1行第1列

但当列数超过2位数字时,我会看到以下顺序

ESC[10;:0小时

注意:分号后面。此控制序列位于ESC[10;99H]之后,表示第10行第99列


我的理解是:0=100。但是如果列号是200呢?

我认为这实际上是无效的,或者,如果是,这完全是偶然的。传递给CUP cursor position命令和许多其他涉及屏幕坐标的参数仅限于一到两位数

在ASCII表格中,数字9后跟:so,其中99表示9*10+9,:0表示10*10+0或100:


假设bug支持更高的数字(我对此不太确定),那么您要查找的是200,这将是20*10+0,或者可能是D0 D,即ASCII表中比:高出10的字符。

否,相关标准没有规定位数限制为2,例如,因为VT100s可以通过132列

忽略参数中的前导零。OP可能报告了某个未提及的程序的问题,该程序只使用了两位数字。这与终端本身无关,除非可能是针对终端仿真器开发人员的错误报告

该程序假设一个人的终端不大于999 x 999,以将光标定位到屏幕右下角。对于那些不依赖多个像素来识别字符的个人,xterm确实使用了一种称为“不可读”的字体,这可能会导致屏幕变大


顺便说一句,问题中给出的来源不是很好,虽然不是最差的-请参阅和。

非常感谢!这是非常有用的信息。我同意你的归纳。顺便说一句,我把杯子作为光标位置。我在玩EDKII时遇到了这种现象。我想这可能是VT100实现中的一个错误/解决方法,以支持rt 3位终端大小。@smwikipedia,是的,CUP确实是光标位置的缩写形式代码,更新了答案以澄清问题。