I thought I was finished with this program...but it has a weird problem that I have not been able to nail down yet. I know it is a long program and troubleshooting someone else's code is a pain. But if you all could just glance at it maybe the problem will be obvious to you.
The problem I am seeing is that randomly anywhere between 10 minutes to a couple of hours the AIP bits zero out for some reason. The AIP bits are set in VAR2 until called by the IO section of the code and placed in ram1. Bits 16-24 (0X1FF0000) hold the values for the current AIP readings. I have not been able to find out if var2 is getting set to 0 or if ram1 is getting set to zero.
Thanks in advance for any and all help and suggestions.
The problem I am seeing is that randomly anywhere between 10 minutes to a couple of hours the AIP bits zero out for some reason. The AIP bits are set in VAR2 until called by the IO section of the code and placed in ram1. Bits 16-24 (0X1FF0000) hold the values for the current AIP readings. I have not been able to find out if var2 is getting set to 0 or if ram1 is getting set to zero.
Thanks in advance for any and all help and suggestions.
START
SET VAR1 0
SET VAR2 0
SET VAR3 0
SET VAR4 0
SET VAR5 0
SET VAR6 0
SET VAR7 0
SET VAR8 0
SET RAM1 0
SET RAM2 0
SET RAM3 0
SET RAM4 0
SET RAM5 0
SET RAM6 0
SET RAM7 0
SET RAM8 0
SET OP8 1
DELAY 5000
SET RAM8 64
CALLSUB AIP
DELAY 1000
CALLSUB TEMP1
DELAY 1000
CALLSUB TEMP2
DELAY 1000
CALLSUB IO
CALLSUB HB
DELAY 1000
LOOP:
TSTLT T5 1119
CALLSUB FANOFF
TSTGT T5 1124
CALLSUB FANON
TSTEQ OP8[40000] 1
SET OP8 0
TSTEQ OP1 1
CALLSUB MEDIAON
TSTEQ IP2 1
CALLSUB MEDIADWN
TSTEQ RAM5 2
CALLSUB MEDIAOFF
TSTEQ OP5[1000] 0
CALLSUB SMEDIAOFF
TSTEQ VAR8 1
GOTO START
TSTEQ VAR8 2
GOTO LOOP
DIV CTS 86400 RAM1
MUL RAM1 86400 RAM1
SUB CTS RAM1 RAM1
TSTEQ RAM1 10800
SET OP8 1
TSTEQ RAM1 39600
SET OP8 1
TSTEQ RAM1 68400
SET OP8 1
MOD RAM1 2
CNZ IOA
CZ IO
MOD RAM1 15
CNZ AIPA
CZ AIP
MOD RAM1 30
CNZ HBA
CZ HB
MOD RAM1 30
CNZ TEMP1A
CZ TEMP1
MOD RAM1 30
CNZ TEMP2A
CZ TEMP2
GOTO LOOP
END
ABORT:
RET
IOA:
ANDB RAM8 0XFFFFFFFE RAM8
RET
AIPA:
ANDB RAM8 0XFFFFFFFD RAM8
RET
HBA:
ANDB RAM8 0XFFFFFFFB RAM8
RET
TEMP1A:
ANDB RAM8 0XFFFFFFF7 RAM8
RET
TEMP2A:
ANDB RAM8 0XFFFFFFEF RAM8
RET
REFRESHA:
ANDB RAM8 0XFFFFFFDF RAM8
RET
IO:
ANDB RAM8 1
BNZ ABORT
ORB RAM8 1 RAM8
SET RAM1 0
TSTEQ IP1 1
ORB RAM1 1 RAM1
TSTEQ IP2 1
ORB RAM1 2 RAM1
TSTEQ IP3 1
ORB RAM1 4 RAM1
TSTEQ IP4 1
ORB RAM1 8 RAM1
TSTEQ IP5 1
ORB RAM1 16 RAM1
TSTEQ IP6 1
ORB RAM1 32 RAM1
TSTEQ IP7 1
ORB RAM1 64 RAM1
TSTEQ IP8 1
ORB RAM1 128 RAM1
TSTEQ OP1 1
ORB RAM1 256 RAM1
TSTEQ OP2 1
ORB RAM1 512 RAM1
TSTEQ OP3 1
ORB RAM1 1024 RAM1
TSTEQ OP4 1
ORB RAM1 2048 RAM1
TSTEQ OP5 1
ORB RAM1 4096 RAM1
TSTEQ OP6 1
ORB RAM1 8192 RAM1
TSTEQ OP7 1
ORB RAM1 16384 RAM1
TSTEQ OP8 1
ORB RAM1 32768 RAM1
ORB RAM1 0X40000000 RAM1
ANDB RAM1 0XFE00FFFF RAM1
ORB RAM1 VAR2 RAM1
TSTEQ VAR1 RAM1
RET
WEBSET URL1 RAM1
SET VAR1 RAM1
RET
AIP:
ANDB RAM8 2
BNZ ABORT
ORB RAM8 2 RAM8
SET RAM1 1
TSTGE AIP1 3
ADD 1 RAM1 RAM1
TSTGE AIP1 130
ADD 1 RAM1 RAM1
TSTGE AIP1 142
ADD 1 RAM1 RAM1
TSTGE AIP1 185
ADD 1 RAM1 RAM1
MUL RAM1 0X10000 RAM1
ANDB VAR2 0XFFF8FFFF VAR2
ORB VAR2 RAM1 VAR2
SET RAM1 1
TSTGE AIP3 75
ADD 1 RAM1 RAM1
TSTGE AIP3 107
ADD 1 RAM1 RAM1
TSTGE AIP3 129
ADD 1 RAM1 RAM1
MUL RAM1 0X400000 RAM1
ANDB VAR2 0XFE3FFFFF VAR2
ORB VAR2 RAM1 VAR2
TSTEQ OP8 0
RET
SET RAM1 1
TSTGE AIP2 50
ADD 1 RAM1 RAM1
TSTGE AIP2 59
ADD 1 RAM1 RAM1
TSTGE AIP2 80
ADD 1 RAM1 RAM1
MUL RAM1 0X80000 RAM1
ANDB VAR2 0XFFC7FFFF VAR2
ORB VAR2 RAM1 VAR2
RET
HB:
ANDB RAM8 4
BNZ ABORT
ORB RAM8 4 RAM8
SET RAM1 0
DIV RAM8 268435456 RAM1
TSTEQ RAM1 5
SET RAM1 6
TSTEQ RAM1 4
SET RAM1 5
TSTEQ RAM1 3
SET RAM1 4
TSTEQ RAM1 2
SET RAM1 3
TSTEQ RAM1 1
SET RAM1 2
TSTEQ RAM1 0
SET RAM1 1
TSTEQ RAM1 6
SET RAM1 2
WEBSET URL4 RAM1
MUL RAM1 268435456 RAM1
ANDB RAM8 0X8FFFFFFF RAM8
ORB RAM8 RAM1 RAM8
RET
TEMP1:
ANDB RAM8 8
BNZ ABORT
ORB RAM8 8 RAM8
SET RAM1 0
SET RAM3 0
ADD T1 5 RAM1
DIV RAM1 10 RAM1
TSTGE RAM1 100
ORB RAM3 0X8000000 RAM3
TSTGE RAM1 100
SUB RAM1 100 RAM1
ADD RAM1 RAM3 RAM3
ADD T2 5 RAM1
DIV RAM1 10 RAM1
TSTGE RAM1 100
ORB RAM3 0X10000000 RAM3
TSTGE RAM1 100
SUB RAM1 100 RAM1
MUL RAM1 100 RAM1
ADD RAM1 RAM3 RAM3
ADD T3 5 RAM1
DIV RAM1 10 RAM1
TSTGE RAM1 100
ORB RAM3 0X20000000 RAM3
TSTGE RAM1 100
SUB RAM1 100 RAM1
MUL RAM1 10000 RAM1
ADD RAM1 RAM3 RAM3
ADD T4 5 RAM1
DIV RAM1 10 RAM1
TSTGE RAM1 100
ORB RAM3 0X40000000 RAM3
TSTGE RAM1 100
SUB RAM1 100 RAM1
MUL RAM1 1000000 RAM1
ADD RAM1 RAM3 RAM3
TSTEQ RAM3 VAR3
RET
WEBSET URL2 RAM3
SET VAR3 RAM3
RET
TEMP2:
ANDB RAM8 16
BNZ ABORT
ORB RAM8 16 RAM8
SET RAM1 0
SET RAM3 0
ADD T5 5 RAM1
DIV RAM1 10 RAM1
TSTGE RAM1 100
ORB RAM3 0X8000000 RAM3
TSTGE RAM1 100
SUB RAM1 100 RAM1
ADD RAM1 RAM3 RAM3
ADD T6 5 RAM1
DIV RAM1 10 RAM1
TSTGE RAM1 100
ORB RAM3 0X10000000 RAM3
TSTGE RAM1 100
SUB RAM1 100 RAM1
MUL RAM1 100 RAM1
ADD RAM1 RAM3 RAM3
ADD T7 5 RAM1
DIV RAM1 10 RAM1
TSTGE RAM1 100
ORB RAM3 0X20000000 RAM3
TSTGE RAM1 100
SUB RAM1 100 RAM1
MUL RAM1 10000 RAM1
ADD RAM1 RAM3 RAM3
ADD T8 5 RAM1
DIV RAM1 10 RAM1
TSTGE RAM1 100
ORB RAM3 0X40000000 RAM3
TSTGE RAM1 100
SUB RAM1 100 RAM1
MUL RAM1 1000000 RAM1
ADD RAM1 RAM3 RAM3
TSTEQ RAM3 VAR4
RET
WEBSET URL3 RAM3
SET VAR4 RAM3
RET
MEDIAON:
TSTEQ IP2 1
RET
TSTEQ RAM5 1
RET
TSTEQ RAM5 2
RET
TSTLE AIP3 105
SET OP1 0
TSTEQ OP1[10000] 1
SET OP2 1
TSTEQ OP2[2000] 1
SET RAM5 1
TSTEQ OP2[2000] 1
SET OP2 0
RET
MEDIADWN:
TSTEQ RAM5 0
RET
TSTEQ RAM5 2
RET
TSTEQ OP2[8000] 1
SET RAM5 2
TSTEQ OP2[8000] 1
SET OP2 0
RET
MEDIAOFF:
TSTEQ IP2[30000] 0
SET OP1 0
TSTEQ OP1[5000] 0
SET RAM5 0
RET
SMEDIAOFF:
TSTEQ OP6 1
SET OP6 0
RET
FANOFF:
TSTEQ OP3 0
RET
SET OP3 0
RET
FANON:
TSTEQ OP3 1
RET
SET OP3 1
RET