下一页 上一页 目录

9. 一些终端的特殊功能/类型

9.1 终端使用PC显示器

人们可以使用PC(包括其显示器)来模拟终端。但是PC已经变得如此强大,以至于只有PC容量的一小部分被用来运行模拟。那么,为什么不制造一台计算能力较低的小型PC,使其勉强能够完成模拟终端的任务呢?然后将这种小型设备称为文本终端,并指出必须提供并插入PC显示器才能使用此终端。这种设备确实存在,并且只有大约一英寸高。它们有时被称为小尺寸终端。它们的优点是价格便宜,占用空间小,并且可能能够使用原本可能被丢弃的剩余显示器。

9.2 颜色

模拟文本终端

与单色或大多数真实文本终端相比,模拟文本终端通常具有颜色,因为它在PC彩色显示器上显示。请参阅 模拟终端上的颜色

老式真实文本终端

一些真实的终端具有彩色显示器,但大多数终端要么没有颜色,要么具有白色以外的固定“颜色”显示器,例如绿色或琥珀色。所有终端都具有黑色(电子束关闭=零亮度)。真实的彩色终端可以更改文本和背景的颜色为多种不同的颜色,而单色终端只能更改固定颜色的亮度。

但是,更改亮度等提供了很多可能性。例如,黑白(单色)终端可以通过改变亮度来拥有白色、灰色和黑色。一些单词可以是浅灰色背景上的黑色,而另一些单词则通过白色背景上的黑色来突出显示。此外,还有黑底白字、下划线和闪烁。

真实的颜色工作方式类似于计算机显示器或电视屏幕上的颜色。CRT具有三种颜色的点永久固定在其上,每种颜色的亮度由其自身的电子束(3个光束)控制。真实文本终端的单色具有固有的更好分辨率,因为它不依赖于永久固定在屏幕上的点。对于文本终端,颜色的唯一用途是区分文本,而这种优势通常不值得以更差的分辨率为代价。因此,单色在历史上可能更好,因为它也成本更低。但是今天,彩色显示器已经普及,并且自真实文本终端的旧时代以来,分辨率也得到了提高。

9.3 多会话

对于双会话,终端具有两个状态相同的串行端口。每个端口都连接到不同计算机上的串行端口。因此,可以登录到两台不同的计算机,每个会话都在分屏窗口中显示。或者,每个会话可以全屏运行,并使用“热”键(或类似键)在会话之间切换。也可以连接到同一台计算机上的两个不同的串行端口并登录两次(类似于控制台上的“虚拟终端”)。程序“screen”将使连接到单台计算机的任何普通终端(单会话)运行两个或多个“会话”。

9.4 打印机/辅助端口

许多终端在背面都有一个用于此类端口的连接器。它可能被标记为“Aux”或“Printer”等。一些打印机端口用于并行打印机,而另一些端口用于串行打印机。如果打印机连接到打印机或辅助端口,则按下某些键将打印屏幕。也可以使屏幕上显示的所有内容也发送到打印机。如果端口是辅助端口,则可以将它连接到另一台计算机,并且几乎可以像上面一样拥有双会话。但是,终端内部的视频内存可能无法保留两个会话,因此在切换到另一个会话时可能需要刷新屏幕。可能也不会有热键,但可能可以将可编程功能键编程为执行此操作。存在各种用于控制此类端口的组合键和转义序列。请参阅 打印机 Esc

有一个名为 vtprint 的程序,旨在将打印作业(仅文本)发送到您的终端,以便在连接到终端的打印机上打印。它的主页是 vtprint。它也包含在Linux的Debian发行版中。xprt(也在Debian中)似乎也在做类似的事情,但仅适用于X Window终端吗??

如果您在PC上没有额外的端口用于打印机或在商店中用于“销售点”用途,则使用打印机端口进行打印可能很有用。“透明打印模式”是指PC发送到终端的任何内容都将改为发送到打印机。如果您希望打印机能够将字节发送到PC(反方向),那么(根据Wyse的说法)它是“双向模式”。Wyse的“辅助打印模式”只是透明打印模式,其中终端屏幕监视正在打印的内容。

9.5 页面

许多终端允许在其视频内存中存储多个页面。有时页面大小与屏幕相同,但有时页面大小更大,因此滚动将显示页面的未见部分。因此,当查看屏幕时,同一页面上可能存在显示上方或下方的隐藏文本。此外,如果不仅仅只有一个页面,则这些其他页面上可能存在隐藏文本。页面的一种用途是在支持双会话的终端上。每个会话都可以有自己的页面,并且可以在它们之间来回切换。

即使您只有一个单页终端,其页面大小等于屏幕上显示的内容,当主机向终端发送更多数据时,您仍然会看到文件的其他页面(等等)。在终端内存中存储额外页面的一个优点是可以立即跳转到它们,而无需等待一秒左右才能从主机传输它们。

ncurses支持多页。还有一个名为“Multiscreen”的商业程序,它支持多页,但可能不适用于Linux??据报道,Multiscreen是SCO的一部分,并且类似于Linux PC控制台上的虚拟终端。Linux程序“screen”使您看起来拥有多个页面,但它们存储在计算机中,并且每个运行的程序只能有一个类似页面的窗口。

9.6 字符集

字符集通常由字符列表(或表格或图表)以及分配给每个字符的字节代码表示。字节的代码范围从0到255(十六进制为00到FF)。在MS-DOS中,字符集表称为“代码页”。如果您不熟悉它们,则应检查这样的表。它们有时包含在打印机和终端手册中,但也可以在互联网上找到。

许多字符集包括外语字母。但是它们也可能包括用于绘制框和其他特殊字符的特殊字符。

ASCII是文本终端上使用的传统英语字符集。它是7位代码,但即使您的终端设置为8位模式,通常也可以正常工作。在具有ASCII的8位模式下,高位始终设置为零。其他字符集通常可用,并且通常使用8位代码(除非在唯一选择是ASCII的非常旧的终端上)。大多数字符集的前半部分是传统的128个ASCII字符,后半部分(高位设置为1)属于各种字符集。字符集通常是ISO标准。要在终端上获得专用字符集,您可能需要将该字符集的软字体下载到终端的内存中。许多终端都有许多内置字符集(但可能没有您需要的字符集)。

以下是一些常见的8位字符集。CP代表IBM发明的代码页字符集:CP-437 (DOS ECS)、ISO-8859-1 (Latin-1)、CP-850 (多语言 Latin 1 --与 ISO Latin-1 不同)、CP-1252 (WinLatin1 = MS-ANSI)。MS Windows 使用 CP-1252 (WinLatin1),而互联网通常使用 Latin-1。除了 Latin-1 之外,还有几个 ISO-8859- 字符集。这些包括希腊语 (-7)、阿拉伯语 (-6)、东欧语 (-2) 和 Latin-1 的替代品 (-15),称为 Latin-9。还有许多其他的。例如,KOI8-R 比 IS0-8859-5 更常用于俄语。Unicode是一个非常大的字符集,其中每个字符由2个字节而不是仅一个字节表示。

有关字符集的更多信息是

一旦找到您感兴趣的字符集名称(或字母数字名称),您就可以在互联网上搜索有关它的更多信息。

图形 (线条绘制等)

有一些特殊的字符用于绘制框等。还有许多非ASCII符号,例如项目符号。这些符号可以是8位字符集(例如WinLatin1 = CP-1252)的一部分,也可以作为单独的字体(在vt100终端中)提供。您的terminfo可能已设置为使用它们。但是,如果您看到一行字母,而那里应该是一条线,则可能意味着terminfo尚未实现它们。

如果您的图形无法正常工作,则需要了解以下内容。默认图形字符集是vt-100 ANSI图形。否则,必须在您的terminfo中定义字符串acsc。它建立vt-100图形字符代码与终端上使用的实际代码之间的映射。因此,即使您的终端没有vt-100图形,它也可能仍然可以使用其他一些字符集生成此类图形。如果terminfo正确,这将自动发生。

如果必须切换字符集,则应定义terminfo变量:enacs、rmacs和smacs。请注意 acs = 备用字符集。即使正常字符集的上半部分包含图形字符,它也可能被认为是需要切换到的单独的7位字符集。

国家替换字符 (已过时)

在1960年代,设计了ASCII 7位代码,以将7位字节映射到英文字母、数字、标点符号等。其他国家/地区也采用了ASCII,但它们大多数都有一些ASCII代码中没有的其他字母。该怎么办?各种人决定从ASCII中清除某些符号(例如 ^、}),并将国家字母(带有点的字母等)替换为ASCII字母。换句话说,他们用“国家替换字符”替换了ASCII字母

这样做有很多问题,因为它主要是由销售计算机终端的公司完成的,因此缺乏标准化。另一个问题是有时需要清除的符号。这个问题在1980年代和1990年代通过采用具有更多字母的8位/字节字符集得到解决。

许多西欧语言只需要几个ASCII中没有的其他字母。为了将它们放入7位代码中,他们借用了很少使用的ASCII符号的代码
@ [ \ ] ^ ` { \ } ~
符号 $ 和 # 有时也使用。因此,当使用这些替换字符集时,您将被剥夺使用某些ASCII符号的权利,因为它们现在用于新的非ASCII字母。现在8位字符代码已取代7位字符代码,最好使用8位代码,该代码既具有所有ASCII符号,又具有各种语言的非ASCII字符。还有Unicode,它用相同的代码方案替换8位代码,以涵盖所有语言(好吧,几乎所有重要的语言)。

ISO-646(适用于1972年及以后)允许使用国家替换字符(7位)。它规定可以借用上述字符代码,但未指定哪些国家字符将替换它们。一些国家/地区通过在ECMA注册来标准化替换。

存在许多支持这些国家替换字符的终端,但除非您有一些旧文件要读取,否则您可能不想实现此支持。非常旧的终端可能仅支持在其销售国家/地区的国家字符。后来的终端提供了语言选择。现代终端是8位的,不需要“国家替换”。替换字符存在于以下语言/国家/地区:英国、古巴(西班牙语)、荷兰语、芬兰语、法语、加拿大法语、德语、希伯来语、匈牙利语、意大利语、挪威语/丹麦语、葡萄牙语、西班牙语、瑞典语、瑞士语(德语)。

以下是一些字符集的表格,取自Kermit和Unisys文档

                              Swedish     Danish
ASCII           German        Finnish      Norwegian    French

@ at-sign       section       -------      -------      a-grave
[ left-bracket  A-diaeresis   A-diaeresis  AE-digraph   degree
/ backslash     O-diaeresis   O-diaeresis  O-slash      c-cedilla
] right-bracket U-diaeresis   A-circle     A-circle     section
^ circumflex    ------        U-diaeresis  -------      -------
` accent-grave  ------        e-acute      -------      -------
{ left-brace    a-diaeresis   a-diaeresis  ae-digraph   e-acute
| vertical-bar  o-diaeresis   o-diaeresis  o-circle     u-grave
} right-brace   u-diaeresis   a-circle     a-circle     e-grave
~ tilde         ess-zet       u-diaeresis  --------     diaeresis

ASCII            Italian     Spanish

@ at-sign        section     section
[ left-bracket   degree      inverted-exclamation
/ backslash      #-pound     N-tilde
] right-bracket  e-acute     inverted-question-mark
^ circumflex     -------     -------
` accent-grave   u-grave     -------
{ left-brace     a-grave     degree
| vertical-bar   o-grave     n-tilde
} right-brace    e-grave     --------
~ tilde          i-grave     --------

9.7 字体

1980年代中期之后制造的大多数终端都可以接受下载的软字体。这意味着它们可以显示几乎任何字符集,前提是您可以找到该字符集的软字体。如果您找不到所需的软字体,则始终可以创建自己的软字体。用于此目的的免费字体编辑器称为BitFontEdit(由本文档的作者编写),位于
http://www.ibiblio.org/pub/Linux/utils/terminal/
有关映射键盘(和屏幕)以使用各种字体的信息,请参阅 字符映射:mapchan

9.8 键盘和特殊键

终端键盘通常具有许多在PC键盘上找不到的键。很少(如果有的话)实际终端会拥有所有这些键,并且大多数终端都会有此处未列出的其他键。有些终端具有大量特殊用途键,例如用于收银机的终端。通常有比此处显示的更多的键含义,因为当与其他键(例如shift和control)结合使用时,这些键通常具有扩展的含义。

9.9 鼠标

少数文本终端支持鼠标。单击鼠标时,会向主机发送一个转义序列,告知鼠标的位置。一篇关于VT终端鼠标的文章曾经位于 http://www.cs.utk.edu/ shuford/terminal/dec_vt_mouse.html,但现在是一个死链接(2013年)。试试“Wayback”机器。” 这些鼠标转义代码称为“DEC Locator sequences”。FALCO Infinity Series终端,型号ANSI-G支持它。是否有任何linux应用程序支持它??


下一页 上一页 目录