问题标签 [vt100]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2323 浏览

c# - 了解 VT100/ANSI 端子

我正在使用 C# 开发一个小型服务器应用程序,它应该提供一个 VT100/ANSI 终端接口(通过 telnet 或调制解调器)。

我正在对 VT100/ANSI 做一些研究,我读的越多,我就越困惑。我想实现一个简单的解析器来处理 ansi 转义/控制序列,但规范包含很多可能的命令。基本上,我的问题归结为:

1) 如果我处理基于 telnet 的客户端(如 putty)或简单的拨号程序(如 minicom 或超级终端),我应该执行哪些命令。我确信在这些应用程序中根本没有使用或忽略许多转义序列。

2) 是否只需要处理带有 ESC 字符前缀的 C0 控制字符?或者当我在正常的文本序列中遇到它们时?我无法从文档中获得这一关键信息。

3)我应该关心私有控制序列吗?

提前致谢,

杰罗恩。

0 投票
1 回答
822 浏览

linux - xterm/vt102 序列填充终端窗口,然后在按键时退出,清除屏幕上的任何内容?

我试图围绕 VT102 序列以及诸如 ncurses 之类的库如何工作。

举个例子,当我打开 Emacs 时,它会填满终端窗口。当我点击C-x C-c时,程序退出并且我的终端窗口看起来与我启动 emacs 之前完全一样(即光标上方的行显示了emacs我的 zsh 历史记录中的命令,而不是任何 emacs 呈现的命令)。

作为一种“hello world”,我编写了一个打开的小红宝石脚本/dev/tty,然后为终端中的行数写入\x1B[48;597m\n(空白行,带有背景色)。然后程序休眠 5 秒钟,让我高兴地盯着一个明亮的橙色屏幕片刻。然后它退出,在我的 zsh 提示符下留下我,上面有 53 行亮橙色。

两个问题:

  1. 用背景颜色写空行是用颜色填充终端窗口的正确方法吗?
  2. 如何通过向 /dev/tty 发送一些 VT102 序列来完全清除屏幕?

我可以发送\x1B[2J,但这与执行命令时的作用相同clear,实际上只是将所有内容移到终端窗口上,直到我的光标位于空白窗口的最顶部,而不是将光标留在任何地方如果我的程序没有在屏幕上写入大量空白行,那自然会是这样。

PS:不确定在这里使用什么标签,任何人实际上都可能订阅。

0 投票
2 回答
12677 浏览

java - Java 终端模拟器

有谁知道模拟 vt100 终端的库或类(图形与否无关紧要)。我想要的基本上是一个实现 vt100 终端逻辑的类(比如当接收到“删除”代码时将调用删除函数,或者如果基于 GUI 将删除一个字符)。

0 投票
0 回答
158 浏览

assembly - 用8051中的新数据替换已经发出的串口数据

我有一个数字计数程序,它将串行数据(三位)传输到超级终端。该程序每秒计数(增加/减少)。无论何时计数,它都会发送到串行输出。

但是,它只是在超级终端中添加了三个数字。我想先清除以前的数据

怎么做?我试过退格(08h)。这很奇怪,随机删除。

谢谢。

0 投票
2 回答
1482 浏览

terminal - vt100终端仿真器中的键盘传输模式

我正在用 javascript 实现一个 vt100 终端仿真器,vt100 规范(来自man terminfoand infocmp)告诉我这smkx=\E[?1h\E=是进入键盘传输模式rmkx=\E[?1l\E>的代码,也是离开“键盘传输”模式的代码。我真的不明白什么是键盘传输模式。

来自http://vt100.net/dec/ek-vt220-tm-001.pdf

7.4.4.1 键盘传输模式——键盘代码和其他一些特殊代码通过8051的PORT中的串行线输出传输。传输的信号通过键盘电缆、显示器和视频电缆从8051到驱动器到 CPU。8051 内部的 UART 控制传输"

我分别在进入和离开时得到这些代码vim。我可以安全地忽略这些代码还是需要处理它们?在后一种情况下,我该怎么办?

0 投票
1 回答
174 浏览

vt100 - VT100 的左上角是 0,0 还是 1,1?

我编写/维护了一个名为 ucon (http://www.umonfw.com/ucon) 的终端仿真器。我想把它称为一个真正的终端仿真器是可悲的,因为虽然它做了很多好事,但它在处理 VT100 转义序列方面并不是很好。无论如何,我从未解决的一个问题是左上角 (TLC) 的实际坐标位置。很长一段时间以来,我一直认为 1,1 是 TLC(这就是 VI 似乎使用的);但是,在某些情况下,0,0 似乎是 TLC。另外,我偶尔会看到程序实际上使用了转义序列“<1b>[0;0f”,它强制光标定位到 0,0; 因此,如果我们假设光标不是故意移出屏幕,则必须假设 0,0 是 TLC.... ????

有没有VT100大师?

0 投票
0 回答
194 浏览

linux - 使用 GNU 屏幕,我如何执行进程以响应来自远程应用程序的输入字符串?

我正在使用 GNU 屏幕连接到 VT100 终端服务器(在 DOSEMU 中运行的 DOS)。我想配置转义序列来执行子进程并退出子进程。这将类似于 printcmd,除了我会将进程 STDOUT 返回到远程服务器的 STDIN。我已阅读 GNU 屏幕手册并了解 exec 的基础知识,但我不知道如何使 exec 发生在远程转义序列上。

0 投票
5 回答
27590 浏览

c++ - linux系统上\r的含义

我正在查看一些输出以下内容的特定于 linux 的代码:

到std io。

我知道这<ESC>[J代表从当前行向下删除屏幕内容,但是 \r 在这里做什么?

我还看到以下内容:

其中 user_input 是用户输入的文本。但是这里的 \r 的目的是什么?

0 投票
2 回答
13534 浏览

putty - PuTTy 能否与 ANSI/VT100 转义序列一起正常工作?

我正在为飞思卡尔 MC9S12C32 处理器的 HC12 汇编中的一个类编写程序。我使用 PuTTy 作为通过串行(-over-USB)连接到设备的终端。对于这个分配,我们应该使用 VT100/ANSI 转义序列将光标移动到任意位置并写入当前时间,然后返回它,以便用户可以键入并让他们的输入回显。

我正在使用以下序列来保存光标、移动它并返回它。然而由于某种原因,PuTTy 只是将光标放在左上角并且无法返回它。

我是否对转义序列进行了错误编码,或者 PuTTy 没有按我的预期处理它们?

0 投票
1 回答
715 浏览

c# - 是否可以在 c# 中创建 GUI 来替换现有的虚拟模拟器用户界面

有一个 linux 服务器可以与设备建立 telnet 会话。该设备使用 vt100 终端仿真器与服务器通信。

我想使用 ac# 程序与服务器建立 telnet 会话,而不是使用终端模拟器。我想在设备上使用与终端模拟器相同的 telnet 会话显示一个更好的图形用户界面,而无需更改服务器上的任何代码。

这是服务器通过 telnet 会话发送内容的示例。是否可以提取有意义的数据并使用 c# 标签/按钮/等显示它...?

[1;1H[7mRF ID - V2.03D[608][2;1H[mxlqqqqqqqqqqqqqqk[2;19Hx[3;1HxxKey