MemIn函数

用于返回指定存储器I/O端口的状态。各端口有8个存储器位。

格式
MemIn (端口编号)

参数

端口编号
指定存储器I/O的字节。

返回值
返回0~255的整数。返回值为8位,各个位分别对应于1个存储器I/O位。

说明
利用MemIn每次可查看8个存储器I/O位的值。MemIn命令可用于将8个存储器I/O位的状态保存为1个变量,或与Wait同时使用,在符合与2个以上I/O位有关的特定条件之前,使程序保持待机状态。

由于1次可获取8位的值,因此,返回值的范围为0~255。有关各返回值与各存储器I/O位状态的对应关系,请参照下表。

存储器I/O位表(使用端口0时)

返回值 7 6 5 4 3 2 1 0
1 Off Off Off Off Off Off Off On
5 Off Off Off Off Off On Off On
15 Off Off Off Off On On On On
255 On On On On On On On On

存储器I/O位表(使用端口31时)

返回值 255 254 253 252 251 250 249 248
3 Off Off Off Off Off Off On On
7 Off Off Off Off Off On On On
32 Off Off On Off Off Off Off Off
255 On On On On On On On On

注意


  • MemIn与MemSw的差异

    可利用MemSw命令读取存储器I/O位1的值。MemSw的返回值为0或1时,表示存储器I/O位为On或Off。MemSw用于单独检查存储器I/O位。从检查存储器I/O位的状态方面来看,MemIn命令类似于MemSw。不同之处在于,MemSw命令逐位检查存储器I/O的状态,而MemIn命令则同时检查8位。MemIn的返回值返回的是0~255的值。可根据该值了解8位中的何者为On,何者为Off。


参阅
In, InBCD, Off, MemOff, On, MemOn, OpBCD, Oport, Out, MemOut, Sw, MemSw, Wait

MemIn使用示例
如下所示为求出最初8个存储器I/O的当前值之后,确认全部8个的值为“0”并继续执行的程序示例。返回值不是“0”时,显示错误信息,中止任务。

Function main
    Integer var1

    var1 = MemIn(0)  '获取最初8个存储器I/O位的值
    If var1 = 0 Then
        Go P1
        Go P2
    Else
        Print "Error in initialization!"
        Print "First 8 memory I/O bits were not all set to 0"
    EndIf
Fend

如下所示为利用命令窗口的简单操作示例。

> memout 0, 1
> print MemIn(0)
1
> memon 1
> print MemIn(0)
3
> memout 31,3
> print MemIn(31)
3
> memoff 249
> print MemIn(31)
1
>