第三十四章 终端输入 输出
概述
ObjectScript
提供支持串行异步 ASCII
终端的命令。还可以将这些命令与控制台 I/
O 结合使用。
使用终端 I/O
,例程可以:
- 启用或禁用传入字符的回显。
- 发送和接收
ANSI
标准转义序列。 - 控制键盘中断并编程特殊的用户交互,包括格式化屏幕、反向视频和用于跳过字段的特殊键。
- 启用和禁用
Ctrl-C
中断的识别。 - 通过
XON
(Ctrl-Q
) 和XOFF
(Ctrl-S
) 控制传入和传出数据流。 - 指定
COM
端口状态参数和调制解调器波特率。 - 当指定自己的终止字符集时,请遵循外部协议。
- 与非终端设备通信,例如自动化仪器。
在大多数平台上,打印机被视为终端 I/O
设备。 UNIX®
系统始终将打印机作为终端 I/O
设备来处理。在 Windows
上,通过串行通信端口连接的打印机被视为终端 I/O
设备。否则,Windows
系统将打印机作为顺序文件 I/O
设备处理。
登录终端或控制台是主要设备
登录 IRIS
的终端或控制台是主要设备。无需打开主要设备。如果尚未发出OPEN
和USE
,则进程第一次发出READ
或WRITE
时,系统会自动打开主设备,并将其设置为当前设备,就像您已显式发出OPEN 0 USE 0
一样。
在本页的其余部分中, “终端”一词用于指代终端和控制台。
特殊变量显示 I/O
条件
I/O
命令可以影响特殊变量的值。您可以测试这些变量以确定 I/O
条件:
$IO
包含当前设备的名称。$TEST
包含一个布尔值,显示最近的定时操作是否成功。$X
和$Y
显示光标的位置。$ZA
、$ZB
和$KEY
显示有关READ
操作的信息。$ZB
和$KEY
相似,但不相同。
$X
和 $Y
以及光标位置
$X
包含光标或打印头的水平位置, $Y
包含垂直位置。 $X=0,$Y=0
表示CRT
屏幕或打印页的左上角。 IRIS
计算$X
和$Y
模 256
;也就是说,它们的范围是从 0
到 255
,然后又从 0
开始。
回显角色的效果
Character 特点 | ASCII Code ASCII 码 | 对$X 的影响 | 对$Y 的影响 |
---|---|---|---|
Form Feed | 换页 | 12 | $X=0 |$Y=0 |
Return | 返回 | 13 | $X=0| $Y=$Y |
Line Feed | 换行 | 10 | $X=$X| $Y=$Y+1 |
Backspace | 退格键 | 8 | $X=$X-1 |$Y=$Y |
Tab | 选项卡 | 9 | $X=$X+1| $Y=$Y |
任何可打印的 ASCII 字符 | 32 through 126 32 至 126 | $X=$X+1 | $Y=$Y |
OPEN
和USE
的S
协议关闭回显。该协议还禁止在输入期间更改$X
和$Y
,以便它们真正指示光标的位置。