Terminal VT100终端协议中的奇怪列号:0
我正在解释来自串行端口的一些输出。输出是在。VT100终端协议使用一些控制字符序列在屏幕上设置光标位置。控制序列如下所示: ESC[行;列H 比如说, ESC[01;01H表示将光标设置到第1行第1列 但当列数超过2位数字时,我会看到以下顺序 ESC[10;:0小时 注意:分号后面。此控制序列位于ESC[10;99H]之后,表示第10行第99列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命令和
我的理解是: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确实是光标位置的缩写形式代码,更新了答案以澄清问题。