I'm currently working on a board that mainly does email notifications on relay events. The problem I'm having is when the board is first powered up, it will send out emails for normal state conditions. Is there a way to prevent that from happening? It seems possible, but I just can't see it. Here is what I have so far...
START
LOOP:
CALLSUB RESETS
TSTEQ IP1 1
CALLSUB ACOFF
TSTEQ IP1 0
CALLSUB ACON
GOTO LOOP
END
RESETS:
TSTEQ IP1 0
CALLSUB RESET1
TSTEQ IP1 0
CALLSUB RESET2
TSTEQ IP1 1
CALLSUB RESET3
TSTEQ IP1 1
CALLSUB RESET4
RET
RESET1:
ANDB RAM1 1
BNZ SET1ZERO
RET
SET1ZERO:
XORB RAM1 1 RAM1
RET
RESET2:
ANDB RAM1 2
BNZ SET2ZERO
RET
SET2ZERO:
XORB RAM1 2 RAM1
RET
RESET3:
ANDB RAM1 4
BNZ SET4ZERO
RET
SET4ZERO:
XORB RAM1 4 RAM1
RET
RESET4:
ANDB RAM1 8
BNZ SET8ZERO
RET
SET8ZERO:
XORB RAM1 8 RAM1
RET
ACOFF:
ANDB RAM1 1 RAM2
TSTEQ 0 RAM2
ADD VAR1 1 VAR1
TSTEQ 0 RAM2
SET RAM3 CTS
ORB RAM1 1 RAM1
SUB RAM3 CTS RAM4
TSTGT RAM4 3
GOTO ACFAIL
RET
ACFAIL:
ANDB RAM1 2 RAM2
TSTEQ 0 RAM2
EMAIL EM1
ORB RAM1 2 RAM2
RET
ACON:
ANDB RAM1 4 RAM2
TSTEQ 0 RAM2
SET RAM3 CTS
ORB RAM1 4 RAM1
SUB RAM3 CTS RAM4
TSTGT RAM4 3
GOTO ACRESTORE
RET
ACRESTORE:
ANDB RAM1 8 RAM2
TSTEQ 0 RAM2
EMAIL EM2
ORB RAM1 8 RAM1
RET
START
LOOP:
CALLSUB RESETS
TSTEQ IP1 1
CALLSUB ACOFF
TSTEQ IP1 0
CALLSUB ACON
GOTO LOOP
END
RESETS:
TSTEQ IP1 0
CALLSUB RESET1
TSTEQ IP1 0
CALLSUB RESET2
TSTEQ IP1 1
CALLSUB RESET3
TSTEQ IP1 1
CALLSUB RESET4
RET
RESET1:
ANDB RAM1 1
BNZ SET1ZERO
RET
SET1ZERO:
XORB RAM1 1 RAM1
RET
RESET2:
ANDB RAM1 2
BNZ SET2ZERO
RET
SET2ZERO:
XORB RAM1 2 RAM1
RET
RESET3:
ANDB RAM1 4
BNZ SET4ZERO
RET
SET4ZERO:
XORB RAM1 4 RAM1
RET
RESET4:
ANDB RAM1 8
BNZ SET8ZERO
RET
SET8ZERO:
XORB RAM1 8 RAM1
RET
ACOFF:
ANDB RAM1 1 RAM2
TSTEQ 0 RAM2
ADD VAR1 1 VAR1
TSTEQ 0 RAM2
SET RAM3 CTS
ORB RAM1 1 RAM1
SUB RAM3 CTS RAM4
TSTGT RAM4 3
GOTO ACFAIL
RET
ACFAIL:
ANDB RAM1 2 RAM2
TSTEQ 0 RAM2
EMAIL EM1
ORB RAM1 2 RAM2
RET
ACON:
ANDB RAM1 4 RAM2
TSTEQ 0 RAM2
SET RAM3 CTS
ORB RAM1 4 RAM1
SUB RAM3 CTS RAM4
TSTGT RAM4 3
GOTO ACRESTORE
RET
ACRESTORE:
ANDB RAM1 8 RAM2
TSTEQ 0 RAM2
EMAIL EM2
ORB RAM1 8 RAM1
RET