文章
· 十一月 30, 2024 阅读大约需 3 分钟

第三十七章 终端输入 输出 - $ZB 显示结束读取的内容

第三十七章 终端输入 输出 - $ZB 显示结束读取的内容

$ZB 显示结束读取的内容

$ZB显示当前设备上最后一次READ操作结束的字符序列或事件。不能设置$ZB ;每次执行READ时,IRIS 都会设置$ZB的值。可以使用此值来作用于不可打印的字符,例如向上箭头键或功能键。

$ZB可以包含以下任意内容:
- 终止符,例如回车符
- 转义序列
- 固定长度READ x#y的字符数y
- READ *x的单个字符
- 定时读取过期后出现空字符串

$ZB永远不会包含超过 64 个字符。较长的转义序列无效。

$ZB 示例

以下示例将用户指定的输入字符分配给READ命令变量x ,并将输入终止符(通常是 Return 字符)分配给$ZB特殊变量。从终端提示符发出此命令时,您需要设置一个变量以在与READ命令相同的命令行上捕获$ZB的值。这是因为用于发出命令行的行返回被写入$ZB作为终止符。此示例使用ZZDUMP显示$ZB捕获的字符的值。

USER>READ x SET y=$ZB
USER>ZZDUMP y

0000: 0D 
USER>

OPEN and USE 命令

OPEN 命令

建立终端的所有权。可选参数列表可以设置右边距、指定设备协议以及指定一个或多个终止字符。在参数列表之后,可以选择指定超时参数和/mnespace参数。 mnespace参数指定 IRIS 例程,其中定义了与WRITE /mnemonic一起使用的控制助记符。

OPEN会暂停该过程,直到系统完成打开设备。如果按Ctrl-C中断OPEN命令,则会出现错误结果。

除非指定超时,否则OPEN会保留控制权,直至设备打开完成。超时后,如果 IRIS 无法在指定的秒数内打开设备,则会将$TEST设置为 0 并将控制权返回给进程。即使设备在操作系统级别不可用, OPEN也会继续尝试获取该设备,直到成功或超时到期。

OPEN 语法

OPEN命令采用以下参数:

OPEN terminal:(margin:protocols:terminator:portstate:baud):timeout:"mnespace"

仅需要终端参数。终端参数可以是一个表达式,其值为终端设备的名称。零 (0) 是该进程的主要设备。 $IO是当前设备。终端的最大长度为 256 个字符。

参数由冒号 (:) 分隔。如果省略列表中的参数,则必须指定冒号作为占位符。但是,不允许使用尾随冒号;不得以冒号结束命令或其参数列表。

可选参数列表包含在括号中,可以包含以下可选参数:

  • margin是一个整数,通过指定右边距来指定每行的字符数。
  • 协议是指定终端选项的一个或多个字母代码。
  • 终止符是终止READ操作的一个或多个字符的字符串。这些字符补充了为特定协议定义的终止字符。
  • portstate是指定 COM 端口状态的字符串。
  • baud是一个整数,指定 COM 端口的波特率。

可以将这些可选参数指定为位置参数(按所示顺序),或使用语法 /KEYWORD=value 指定为关键字参数。关键字参数可以按任意顺序指定;由于 IRIS 按从左到右的顺序执行参数,因此在某些情况下,参数之间的交互可能决定首选顺序。您可以在同一参数列表中混合位置参数和关键字参数。如果指定多个参数,则需要使用括号。

以下参数列表是等效的:

   OPEN $IO:(80:"BFU":$CHAR(13)) 
    ; all positional
   OPEN $IO:(80::$CHAR(13):/PARAMS="BFU") 
    ; mixed positional and keyword, using the /PARAMS keyword
    ; to specify a protocol letter code string.
   OPEN $IO:(/MARGIN=80:/TERMINATOR=$CHAR(13):/BREAK:/FLUSH:/UPCASE)
    ; all keyword, using separate keywords 
    ; for each protocol letter code.

在参数列表(或占位符冒号,如果未指定参数列表)后面,可以指定一个可选的超时(以秒为单位),以及一个mnespace参数来指定包含该设备的控制助记符的例程。

讨论 (0)1
登录或注册以继续