Verify子程序:
NETWORK 1
LD SM0.0
R M0.1, 1 //复位verify子程序的执行条件
NETWORK 2
LD SM0.0 //计算BCC码
FOR VW175, +1, +29
NETWORK 3
LD SM0.0
XORB *VD149, VB179
NETWORK 4
LD SM0.0
INCD VD149
NETWORK 5
NEXT
NETWORK 6
LDB= VB179, VB140 //当BCC码校验正确时,M0.0置1
AB= VB133, 71
S M0.0, 1
NETWORK 7
LDB= VB133, 71 //BCC码错误时发送反馈信息
AB<> VB179, VB140
MOVB 21, VB153
MOVB 103, VB154
MOVB 3, VB155
MOVB 26, VB174
R SM87.7, 1
RCV VB100, 0
XMT VB153, 0
NETWORK 8
LDB<> VB133, 71 //指令格式错误或RCV超时时发送反馈信息
MOVB 21, VB153
MOVB 103, VB154
MOVB 4, VB155
MOVB 26, VB174
R SM87.7, 1
RCV VB100, 0
XMT VB153, 0
Initialize子程序:
NETWORK 1
LD SM0.0
MOVB 9, SMB30 //0口"9600,N,8,1"
NETWORK 2
LD SM0.0 //RCV指令初始化
MOVB 16#EC, SMB87
MOVB 103, SMB88
MOVB 71, SMB89
MOVB +1000, SMW92
MOVB 35, SMB94
R SM87.2, 1
NETWORK 3
LD SM0.0
ATCH RCVcomplete, 23 //连接口0接收完成的中断
NETWORK 4
LD SM0.0
ATCH XMTcomplete, 9 //连接口0发送完成的中断
NETWORK 5
LD SM0.0
ENI //中断允许
NETWORK 6
LD SM0.0
MOVB 2, VB199 //将本机站地址装入寄存器
NETWORK 7
LD SM0.0
MOVB &VB102, VD149 //装入地址指针
MOVB 0, VB179 //BCC码寄存器清零
MOVB &VB156, VD181 //装入地址指针
MOVB 0, VB180 //BCC码寄存器清零
RCVcomplete中断程序
NETWORK 1
LD SM0.0
ATH VB103, VB134, 2 //指令译码(ASCII码到十六进制)
ATH VB105, VB135, 8
ATH VB113, VB139, 2
ATH VB131, VB140, 2
S M0.1, 1 //置位Verify子程序的触发条件
MOVB 0, VB179 //BCC码寄存器清零
MOVD &VB102, VD149 //装入地址指针
XMTcomplete中断程序
NETWORK 1
LD SM0.0
R M0.0, 1 //复位BCC校验码正确的标志位
S SM87.7, 1 //允许口0进行接收
MOVB 0, VB179 //BCC校验码寄存器清零
MOVB 0, VB180 //BCC校验码寄存器清零
MOVD &VB102, VD149 //重新装入地址指针
MOVD &VB156, VD181
MOVB 0, VB133 //接收缓冲区中存放指令结束字符的字节清零