;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Copyright (c) 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      :  usgmac.h
;
; Macro Names    :  USG_INIT_VARIABLES            - Initializes usage mode variables.
;
;                   USG_CHK_AND_CLEAR_STORAGE     - Clears the counter storage in 
;                                                 EEPROM and RAM if date has 
;                                                 not been in set state and 
;                                                 currently entered the set 
;                                                 state.
;
;                   USG_UPDATE_RAM_COUNTERS_TO_EEPROM - Adds the RAM counters 
;                                                 to the data stored in EEPROM.
;                                                 This will be called by CORE 
;                                                 every day roll-over.
;
;                   USG_UPDATE_MAX_MIN_DATA_TO_EEPROM - Updates the maximum and 
;                                                 minimum value of a specified 
;                                                 counter.
;
;                   USG_INCREMENT_EEPROM_COUNTERS - Increments the counters stored 
;                                                 in EEPROM.
;
;                   USG_INCREMENT_RAM_COUNTERS    - Increments the counters stored 
;                                                 in RAM.
;
;                   
;
; Purpose        :  Usage mode macro definitions.
;
; Change History : 
;
;                   01/03/2002 FSU - Created for M851.
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name  : USG_INIT_VARIABLES
;
; Description : Initializes usage mode variables.
;
; Assumptions : None
;                         
; Usage       : USG_INIT_VARIABLES
;               
; Input(s)    : None    
;
; Output(s)   : None
;               ( Destroys: AReg )
;
; Macro Change History : 
;
;               01/03/2002 FSU - Created for M851.
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                        
USG_INIT_VARIABLES  MACRO

                ; The variable will be cleared by CORE during POR.

                ENDM
                                

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name  : USG_CHK_AND_CLEAR_STORAGE
;
; Description : Clears the counter storage in EEPROM and RAM.
;               This will force the counter to start from 0 or its initial value.
;               This will be called during date set.
;
; Assumptions : Number of counter allocation should be greater than the 
;                 scroll buffer but lesser than twice of the counter allocation.
;                         
; Usage       : USG_CHK_AND_CLEAR_STORAGE
;               
; Input(s)    : None    
;
; Output(s)   : None
;
;               ( Destroys: BAReg, HLReg, IXReg )
;
; Macro Change History : 
;
;               01/03/2002 FSU - Created for M851.
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                        
USG_CHK_AND_CLEAR_STORAGE   MACRO

        IF  USGCOMPILESTATUS == 1

                car     usgChkAndClearStorage
                                
        CALLS   SUBROUTINE, 'usgChkAndClearStorage'

        ENDIF
       
        ENDM
                                

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name  : USG_UPDATE_RAM_COUNTERS_TO_EEPROM   
;
; Description : Adds the RAM counters to the data stored in EEPROM.
;               This will be called by CORE every day roll-over.
;
; Assumptions : The counters should be arrange in the same manner.
;               RAM counters should allocate 2 bytes each.
;               EEPROM counter storage should allocate 3 bytes each.
;               Common background buffer will be destroyed in this routine.
;
; Usage       : USG_UPDATE_RAM_COUNTERS_TO_EEPROM   
;               
; Input(s)    : None
;
; Output(s)   : None
;
;               ( Destroys: BAReg, HLReg, IXReg, IYReg )
;
; Macro Change History : 
;
;               01/03/2002 FSU - Created for M851.
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                        
USG_UPDATE_RAM_COUNTERS_TO_EEPROM   MACRO

        IF  USGCOMPILESTATUS == 1

                car     usgUpdateRAMCountersToEEPROM

        CALLS   SUBROUTINE, 'usgUpdateRAMCountersToEEPROM'

        ENDIF

        ENDM
                                

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name  : USG_UPDATE_MAX_MIN_DATA_TO_EEPROM   
;
; Description : Updates the maximum and minimum value of a specified counter.
;
; Assumptions : None
;               
; Usage       : USG_UPDATE_MAX_MIN_DATA_TO_EEPROM   UpdateMaxMinType
;               
; Input(s)    : AReg - Data to be compared if maximum or minimum.
;               UpdateMaxMinType - Type (EEPROM address) of data to update.
;
; Output(s)   : None
;
;               ( Destroyed: BAReg, HLReg, IXReg )
;
; Macro Change History : 
;
;               01/03/2002 FSU - Created for M851.
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                        
USG_UPDATE_MAX_MIN_DATA_TO_EEPROM   MACRO   UpdateMaxMinType

        IF  USGCOMPILESTATUS == 1

                ld      IX, #UpdateMaxMinType
                car     usgUpdateMaxMinDataToEEPROM

        CALLS   SUBROUTINE, 'usgUpdateMaxMinDataToEEPROM'

        ENDIF

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name  : USG_INCREMENT_EEPROM_COUNTERS
;
; Description : Increments the counters stored in EEPROM.
;
; Assumptions : All counters allocates 2 bytes each.
;               
; Usage       : USG_INCREMENT_EEPROM_COUNTERS   IncrementEEPROMTypeCounters
;               
; Input(s)    : IncrementEEPROMTypeCounters - Type (EEPROM address) of counter 
;                                               to increment.
;
; Output(s)   : None
;
;               ( Destroyed: BAReg, HLReg, IXReg, IYReg )
;
; Macro Change History : 
;
;               01/03/2002 FSU - Created for M851.
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                        
USG_INCREMENT_EEPROM_COUNTERS   MACRO   IncrementEEPROMTypeCounters

        IF  USGCOMPILESTATUS == 1

                ld      IX, #IncrementEEPROMTypeCounters
                car     usgIncrementEEPROMCounters

        CALLS   SUBROUTINE, 'usgIncrementEEPROMCounters'
                        
        ENDIF

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name  : USG_INCREMENT_RAM_COUNTERS
;
; Description : Increments the counters stored in RAM.
;
; Assumptions : All counters allocates 2 bytes each.
;               
; Usage       : USG_INCREMENT_RAM_COUNTERS  RAMTypeCounters
;               
; Input(s)    : RAMTypeCounters - Type of counter to increment.
;
; Output(s)   : None
;               ( Destroyed: HLReg )
;
; Macro Change History : 
;
;               01/03/2002 FSU - Created for M851.
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

USG_INCREMENT_RAM_COUNTERS  MACRO   RAMTypeCounters

        IF  USGCOMPILESTATUS == 1

                ld      HL, #RAMTypeCounters
                car     usgIncrementRAMCounters

        CALLS   SUBROUTINE, 'usgIncrementRAMCounters'

        ENDIF

        ENDM




