前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Caché 变量大全 $ZA 变量

Caché 变量大全 $ZA 变量

作者头像
用户7741497
发布2022-05-11 16:10:53
1.7K1
发布2022-05-11 16:10:53
举报
文章被收录于专栏:hml_知识记录hml_知识记录

Caché 变量大全 $ZA 变量

包含当前设备上最后一次读取的状态。

大纲

代码语言:javascript
复制
$ZA

描述

$ZA包含当前设备上最后一次读取的状态。

不能使用SET命令修改此特殊变量。尝试这样做会导致<SYNTAX>错误。

注意

$ZA,带终端I / O

$ZA被实现为一系列位标志,每个位表示一条特定的信息。下表显示了可能的值、它们的含义,以及如何使用模(#)和整数除(\)运算符测试它们:

测试

含义

0

$ZA#2

<CTRL-C>已到达,无论是否启用中断。

1

$ZA\2#2

读取超时。

2

$ZA\4#2

I/O错误。

8

$ZA\256#2

Caché检测到无效的转义序列。

9

$ZA\512#2

硬件检测到奇偶校验或成帧错误。

11

$ZA\2048#2

进程已与其主设备断开连接。

12

$ZA\4096#2

对于COM端口:CTS(清除发送)。从调制解调器发送到其计算机的信号,表示传输可以进行。对于TCP设备:设备在服务器模式下运行。

13

$ZA\8192#2

对于COM端口:DSR(数据集就绪)。从调制解调器发送到其计算机的信号,表示调制解调器已准备好运行。对于TCP设备:设备当前处于与远程主机通话的已连接状态。

14

$ZA\16384#2

如果为真,则设置振铃。

15

$ZA\32768#2

载波检测设置为真。

16

$ZA\65536#2

CE_BREAK COM端口错误状态。

17

$ZA\131072#2

CE_FRAME COM端口错误状态。

18

$ZA\262144#2

CE_IOE COM端口错误状态。

19

$ZA\524288#2

CE_OVERRUN COM端口错误状态。

20

$ZA\1048576#2

CE_RXPARITY COM端口错误状态。

21

$ZA\2097152#2

CE_TXFULL COM端口错误状态。

22

$ZA\4194304#2

TXHOLD通讯端口错误状态。在ClearCommError()返回的错误掩码中,如果下列任一字段为真,则设置为:fCtsHold、fDsrHold、fRlsdHold、fXoffHold、fXoffSent。

`24 & 25

$ZA\16777216#4

`Caché请求DTR(数据终端就绪)设置:0 = DTR关闭。 1 = DTR =开。 2 = DTR握手。设置为(1)时,表示已准备好发送和接收数据。

尽管$ZA显示的许多条件都是错误,但它们不会通过捕获$ZTRAP来中断程序的流程。 (具有中断功能的<CTRL-C>会陷阱到$ZTRAP。)与这些错误有关的程序在每次读取后必须检查$ZA

COM端口使用位12至15、24和25报告调制解调器控制引脚的状态。无论端口的Caché调制解调器控制检查是打开还是关闭,都可以执行此操作。用户可以通过设置OPENUSE命令portstate参数(具体为字节8)来启用或禁用COM端口的$ZA错误报告。如果启用了错误报告,则端口错误状态将在位16到22中报告。

可以使用%SYSTEM.Process类的DisconnectErr()方法来检测当前进程的调制解调器断开连接。可以通过设置Config.Miscellaneous类的DisconnectErr属性来建立系统范围的默认行为。

带磁带I / O的$ZA

对于磁带I / O,$ZA中的位字段指示错误和特殊情况。在每个引用磁带设备的命令之后,Caché更新$ZA

下表显示了磁带I/O的$ZA位的含义。请注意Trap列。字母Y表示<MAGTAPE>错误。如果设置了$ZTRAP变量,则Caché会发出相关的$ZTRAP错误代码。

陷阱

含义注意

0

1

Y

逻辑错误(读写混合),用于在读取和写入之间切换,或者关闭然后打开设备,或者发出前进空格、退格键或倒带命令。

2

4

N

写保护始终反映OPEN或USE只读参数的状态。此位不反映磁带的物理写保护状态(写环或写锁定),因为许多版本的UNIX®在尝试实际写入磁带之前不会通知磁带写保护。如果尝试打开不带只读参数的写保护9磁道磁带,则Caché会设置此位并以只读方式打开磁带。未出现错误。

3

8

Y

错误摘要错误摘要是导致Caché错误的所有条件(在Trap下标记为Y的所有条件)的逻辑或。

5

32

N

磁带的开始[BOT]在UNIX®系统上,该位在倒带时设置,并在打开磁带时清除。

6

64

N

On Line

7

128

Y

控制器或驱动器错误。

10

1024

N

磁带结尾[EOT]在大多数UNIX®平台上不支持。

14

16384

Y

Tape MarkCaché在遇到Read,Read Block,Forward Space或Backspace上的磁带标记时将Tape Mark位置1。这会将“错误摘要”位置1,并在“读取”,“读取标签”和“读取块”上将陷阱陷阱为$ZTRAP。

15

32768

Y

磁带未准备好

一些位指示错误条件,而另一些位指示不一定产生错误的条件。为了监视这些非错误情况,程序必须在每次磁带操作后测试$ZA的相应位。例如,如果程序可能写在磁带末尾之外,则它必须检查位10(磁带末尾)。

要测试某个位,请将$ZA除以表中该位列出的值,然后执行模2运算。例如,以下命令检查是否设置了位14(磁带标记):

代码语言:javascript
复制
USE 47 IF $ZA\16384#2 {DO Endfile}

其中16384等于2等于14的幂,而#2表示模2运算。由于任何等于0的幂等于1,因此无需除数即可检查位0(逻辑错误)。例如:

代码语言:javascript
复制
USE 47 GOTO Logerr:$ZA#2

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Caché 变量大全 $ZA 变量
  • 大纲
  • 描述
  • 注意
    • $ZA,带终端I / O
      • 带磁带I / O的$ZA
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档