;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Copyright (c) 2001-2002 TIMEX Corporation.
;
; This document is the property of, and contains information proprietary to
; TIMEX Corporation.  It is to be returned upon request.  Reproduction by any
; means, disclosure, or use of its contents for other than the expressed
; purpose for which it is loaned, without the written consent of TIMEX
; Corporation, is strictly prohibited.
;
; File Name:     commmac.h
;
; Macro Names:   COMM_INITIALIZE_FLAGS     - Initializes the flags used by COMM mode.
;                COMM_CHECK_PACKET_TIMEOUT - Check the packet timeout indicator.
;                COMM_CLEAR_PACKET_TIMEOUT - Clear the packet timeout indicator.
;                COMM_SET_PACKET_TIMEOUT   - Set the packet timeout indicator.
;                COMM_CHECK_COMMUNICATIONS_ERROR - Check the communications error indicator.
;                COMM_CLEAR_COMMUNICATIONS_ERROR - Clear the communications error indicator.
;                COMM_SET_COMMUNICATIONS_ERROR   - Set the communications error indicator.
;                COMM_CHECK_RETURN_TO_HOME - Check the return to home indicator.
;                COMM_CLEAR_RETURN_TO_HOME - Clear the return to home indicator.
;                COMM_SET_RETURN_TO_HOME   - Set the return to home indicator.
;
; Purpose:       Communications Macro File
;
; Change History:
;                01/16/2002 SER - Created for M851 Development.
;                05/21/2002 SER - ECR#851-20020416-002 - Added macros to
;                                 support return to home check.
;                06/06/2002 SER - ECR#851-20020529-299 - Modified macro COMM_SET_RETURN_TO_HOME
;                                 to maintain the state of the multi-packet write bit.
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name:    COMM_INITIALIZE_FLAGS
;
; Description:   Initializes the COMM mode flag variables that are used while
;                COMM mode is in the foreground.
;
; Assumptions:   This macro will be called by the CORE prior to COMM mode being
;                started.
;
; Usage:         COMM_INITIALIZE_FLAGS
;
; Input(s):      None
;
; Output(s):     COMMFlags1 = 0
;
; Destroy(s):    ABReg
;
; Macro Change History: 01/15/2002 SER - Created macro
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

COMM_INITIALIZE_FLAGS  MACRO

                ld      A, #0
                ld      [COMMFlags1], A

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name:    COMM_CHECK_PACKET_TIMEOUT
;
; Description:   Check the packet timeout indicator.
;
; Assumptions:   None
;
; Usage:         COMM_CHECK_PACKET_TIMEOUT
;
; Input(s):      None
;
; Output(s):     bZeroFlag = 0 when a packet timeout is being monitored.
;                bZeroFlag = 1 when a packet timeout is not being monitored.
;
; Destroy(s):    HLReg
;
; Macro Change History: 05/01/2002 SER - Created macro
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

COMM_CHECK_PACKET_TIMEOUT  MACRO

                ld      HL, #COMMFlags1
                bit     [HL], #bCOMMPacketTimeout

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name:    COMM_CLEAR_PACKET_TIMEOUT
;
; Description:   Clear the packet timeout indicator.
;
; Assumptions:   None
;
; Usage:         COMM_CLEAR_PACKET_TIMEOUT
;
; Input(s):      None
;
; Output(s):     COMMFlags1.bCOMMPacketTimeout = 0
;
; Destroy(s):    HLReg
;
; Macro Change History: 05/01/2002 SER - Created macro
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

COMM_CLEAR_PACKET_TIMEOUT  MACRO

                ld      HL, #COMMFlags1
                and     [HL], #@LOW(~bCOMMPacketTimeout)

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name:    COMM_SET_PACKET_TIMEOUT
;
; Description:   Set the packet timeout indicator.
;
; Assumptions:   None
;
; Usage:         COMM_SET_PACKET_TIMEOUT
;
; Input(s):      None
;
; Output(s):     COMMFlags1.bCOMMPacketTimeout = 1
;
; Destroy(s):    HLReg
;
; Macro Change History: 05/01/2002 SER - Created macro
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

COMM_SET_PACKET_TIMEOUT  MACRO

                ld      HL, #COMMFlags1
                or      [HL], #bCOMMPacketTimeout

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name:    COMM_CHECK_COMMUNICATIONS_ERROR
;
; Description:   Check the communications error indicator.
;
; Assumptions:   None
;
; Usage:         COMM_CHECK_COMMUNICATIONS_ERROR
;
; Input(s):      None
;
; Output(s):     bZeroFlag = 0 when a communication error exists.
;                bZeroFlag = 1 when no communication error exists.
;
; Destroy(s):    HLReg
;
; Macro Change History: 03/13/2002 SER - Created macro
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

COMM_CHECK_COMMUNICATIONS_ERROR  MACRO

                ld      HL, #COMMFlags1
                bit     [HL], #bCOMMError

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name:    COMM_CLEAR_COMMUNICATIONS_ERROR
;
; Description:   Clear the communications error indicator.
;
; Assumptions:   None
;
; Usage:         COMM_CLEAR_COMMUNICATIONS_ERROR
;
; Input(s):      None
;
; Output(s):     COMMFlags.bCOMMError = 0
;
; Destroy(s):    HLReg
;
; Macro Change History: 03/13/2002 SER - Created macro
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

COMM_CLEAR_COMMUNICATIONS_ERROR  MACRO

                ld      HL, #COMMFlags1
                and     [HL], #@LOW(~bCOMMError)

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name:    COMM_SET_COMMUNICATIONS_ERROR
;
; Description:   Set the communications error indicator.
;
; Assumptions:   None
;
; Usage:         COMM_SET_COMMUNICATIONS_ERROR
;
; Input(s):      None
;
; Output(s):     COMMFlags1.bCOMMError = 1
;
; Destroy(s):    HLReg
;
; Macro Change History: 03/13/2002 SER - Created macro
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

COMM_SET_COMMUNICATIONS_ERROR  MACRO

                ld      HL, #COMMFlags1
                or      [HL], #bCOMMError

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name:    COMM_CHECK_RETURN_TO_HOME
;
; Description:   Check the return to home indicator.
;
; Assumptions:   None
;
; Usage:         COMM_CHECK_RETURN_TO_HOME
;
; Input(s):      None
;
; Output(s):     bZeroFlag = 0 when return to home is being monitored after a disconnect.
;                bZeroFlag = 1 when return to home is not being monitored.
;
; Destroy(s):    HLReg
;
; Macro Change History: 05/20/2002 SER - Created macro
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

COMM_CHECK_RETURN_TO_HOME  MACRO

                ld      HL, #COMMFlags1
                bit     [HL], #bCOMMReturnToHome

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name:    COMM_CLEAR_RETURN_TO_HOME
;
; Description:   Clear the return to home indicator.
;
; Assumptions:   None
;
; Usage:         COMM_CLEAR_RETURN_TO_HOME
;
; Input(s):      None
;
; Output(s):     COMMFlags.bCOMMReturnToHome = 0
;
; Destroy(s):    HLReg
;
; Macro Change History: 05/20/2002 SER - Created macro
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

COMM_CLEAR_RETURN_TO_HOME  MACRO

                ld      HL, #COMMFlags1
                and     [HL], #@LOW(~bCOMMReturnToHome)

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name:    COMM_SET_RETURN_TO_HOME
;
; Description:   Set the return to home indicator.
;
; Assumptions:   None
;
; Usage:         COMM_SET_RETURN_TO_HOME
;
; Input(s):      None
;
; Output(s):     COMMFlags1 = set bit bCOMMReturnToHome, and maintain state of
;                             bit bCOMMMultiPacketWriteStarted (all other bits are cleared).
;
; Destroy(s):    HLReg
;
; Macro Change History: 05/20/2002 SER - Created macro
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

COMM_SET_RETURN_TO_HOME  MACRO

                ld      HL, #COMMFlags1
                or      [HL], #bCOMMReturnToHome
                and     [HL], #@LOW(bCOMMReturnToHome | bCOMMMultiPacketWriteStarted)

        ENDM
