;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Copyright (c) 2000 - 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   : ktmrmac.h
;
; Macro Names : 
;
;   ( ALLOCATION )
;
;   KTMR_RELEASE_ALL_RESOURCES              - Makes all resources available.
;   KTMR_RELEASE_RESOURCE                   - Makes a specific resource available.
;   KTMR_RESERVE_RESOURCE                   - Reserves next available resource, and returns resource index.
;
;   ( INFORMATION )
;
;   KTMR_RETURN_RESOURCE_OWNER              - Given a Resource index, Return its Owner Application Index
;   KTMR_RETURN_OWNED_INDEX                 - Returns resource index of first Timer resource owned by a 
;                                               specific application.
;   KTMR_GET_UPDATE_BITS                    - Get the update bits of a specified resource.
;   KTMR_GET_RUNNING_REPEAT_COUNTER         - Get the number of repetitions of a specified resource.
;   KTMR_GET_STATUS                         - Gets the status of the timer.  Either reset, stopped 
;                                               or running.
;   KTMR_COPY_RESOURCE_TO_BUFFER            - Copy the working HMS data to a buffer of a specified resource.
;
;   ( MANIPULATION_SETUP_UPDATE )
;
;   KTMR_SETUP_USER_AND_WORK_HMS            - Sets up the user set and working HMS data.
;   KTMR_SETUP_WORKING_HMS                  - Sets up the working HMS data.  
;   KTMR_SETUP_PREWARNING_HMS               - Sets up the pre-warning data.
;                                               Enables the pre-warning processing and popup generation.
;   KTMR_DISABLE_PREWARNING_TRACKING        - Disables the pre-warning processing and popup generation.
;   KTMR_ENABLE_DISP_UPD_EVENT              - Enable display in forground application.
;   KTMR_DISABLE_DISP_UPD_EVENT             - Disable display in forground application.
;   KTMR_DEACTIVATE_ALL_DISPLAY_UPDATES     - Deactivates display update for all timer resources.
;   KTMR_SETUP_COUNTUP                      - Set the timer resource as a count up resource.
;   KTMR_SETUP_COUNTDOWN                    - Make the timer resource as a count down resource.
;   KTMR_SET_RUNNING_REPEAT_COUNTER         - Forcibly change the value of the repeat counter.
;   KTMR_SETUP_POPUP_GENERATION             - Set the bit that tells the resource that it has to generate
;                                               a popup on its ending.
;   KTMR_SETUP_EVENT_GENERATION             - Set the bit that tells the resource that it has to
;                                               generate an event on its ending.
;   KTMR_CANCEL_POPUP_AND_EVENT_GENERATION  - Cancel popup event and event generation
;   KTMR_SETUP_REPEAT_AT_END                - Enable the repeat at end action and sets up the number of
;                                               times we need to repeat the timer.
;   KTMR_CANCEL_REPEAT_AT_END               - Disables the repeat at end action.
;   KTMR_SETUP_TMR_LINK                     - Set a timer link on timer ending
;   KTMR_SETUP_STP_LINK                     - Set a stopwatch resource link to start on the timer ending.
;   KTMR_CANCEL_ALL_LINKS                   - Cancels a link to TMR and STP of a specified resource.
;   KTMR_RESET_RESOURCE                     - Reset timer counter values HMS  to the set data values HMS
;   KTMR_START_RESOURCE                     - Start background update for a timer resource and copy the
;                                               elapse timer from the RTC.
;   KTMR_STOP_RESOURCE                      - Stop timer resouce background update and update the values 
;                                               with the timer registers
;   KTMR_STOP_ALL_RESOURCES                 - Stops all the Timer Resources.
;   KTMR_UPDATE_ALL_ACTIVE_RESOURCES        - Used by the core module to perform the resources background 
;                                               update.
;   
;   ( UTILITIES )
;
;   KTMR_CHECK_WORK_HMS_IF_ZERO             - Check if working HMS data is equal to 0.
;
;
; Purpose:      Macros to use the timer resource utilities
;
; File Change History:
;
;               06/09/2000 HSB - Created ktmrmac.h for m841
;
;   M851 Development:
;
;               12/07/2001 FSU - Modified for M851.
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name  : KTMR_RELEASE_ALL_RESOURCES
;
; Description : Releases all timer resources and marks them as available.
;
; Assumptions : None
;
; Usage       : KTMR_RELEASE_ALL_RESOURCES
;
; Input(s)    : None
;
; Output(s)   : None
;   
;               ( Destroyed: BReg, IYReg )
;
; Macro Change History:
;
;               06/09/2000 HSB - Created macro for M841     
;
;   M851 Development:
;
;               12/07/2001 FSU - Reuse for M851.
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

KTMR_RELEASE_ALL_RESOURCES  MACRO

                car     ktmrReleaseAllResources

        CALLS   SUBROUTINE , 'ktmrReleaseAllResources'

        ENDM

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name  : KTMR_RELEASE_RESOURCE
;
; Description : Release Timer resource(s) giving the App Index.
;
; Assumptions : None
;
; Usage       : KTMR_RELEASE_RESOURCE
;
; Input(s)    : AReg - App Index
;
; Output(s)   : None
;
;               ( Destroyed: None )
;
; Macro Change History:
;
;               06/09/2000 HSB - Created macro for M841     
;
;   M851 Development:
;
;               12/07/2001 FSU - Reuse for M851.
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

KTMR_RELEASE_RESOURCE   MACRO

                car     ktmrReleaseResource

        CALLS   SUBROUTINE , 'ktmrReleaseResource'

        ENDM

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name  : KTMR_RESERVE_RESOURCE
;
; Description : Allocate a resource if available. 
;               
; Assumptions : The checking for available resource have been checked before 
;                 calling this routine.
;
; Usage       : KTMR_RESERVE_RESOURCE
;
; Input(s)    : AReg - App Index
;
; Output(s)   : BReg - Resource index if successful.
;                      0xFFh if unsuccessful.
;
;               ( Destroyed: None )
;
; Macro Change History:
;
;               06/09/2000 HSB - Created macro for M841     
;
;   M851 Development:
;
;               12/07/2001 FSU - Reuse for M851.
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

KTMR_RESERVE_RESOURCE   MACRO

                car     ktmrReserveResource

        CALLS   SUBROUTINE , 'ktmrReserveResource'

        ENDM



;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name  : KTMR_RETURN_RESOURCE_OWNER
;
; Description : Returns the Application Index of the resource Owner.
;
; Assumptions : None
;                         
; Usage       : KTMR_RETURN_RESOURCE_OWNER
;
; Input(s)    : AReg - Resource Index
;
; Output(s)   : BReg - Application Index
;
;               ( Destroyed : None )
;
; Macro Change History: 
;
;               07/13/2000 HSB - Created Macro for M841     
;
;   M851 Development:
;
;               12/07/2001 FSU - Reuse for M851.
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

KTMR_RETURN_RESOURCE_OWNER  MACRO

                car     ktmrReturnResourceOwner     
            
        CALLS   SUBROUTINE , 'ktmrReturnResourceOwner'
        
        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name  : KTMR_RETURN_OWNED_INDEX
;
; Description : Returns resource index of first Timer resource owned by a 
;                 specific application.
;
; Assumptions : None
;                         
; Usage       : KTMR_RETURN_OWNED_INDEX
;
; Input(s)    : AReg - App index to search for.
;
; Output(s)   : BReg - Resource Index if there is a matching resources.
;                      KTMRERRORCODE if there are no matching resources.
;
;               ( Destroyed: HLReg )
;
; Macro Change History: 
;
;               12/07/2001 FSU - Created for M851.
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

KTMR_RETURN_OWNED_INDEX MACRO

                car     ktmrReturnOwnedIndex        
            
        CALLS   SUBROUTINE , 'ktmrReturnOwnedIndex'
            
        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name  : KTMR_GET_UPDATE_BITS
;
; Description : Get the update bits of a specified resource.
;
; Assumptions : None
;                         
; Usage       : KTMR_GET_UPDATE_BITS
;
; Input(s)    : AReg - Resource Index
;
; Output(s)   : BReg.bKTMRSecondUpd - TRUE, if seconds data has been updated.
;               BReg.bKTMRMinuteUpd - TRUE, if minute data has been updated.
;               BReg.bKTMRHourUpd   - TRUE, if hour data has been updated.
;
;               ( Destroyed: HLReg )
;
; Macro Change History: 
;
;               12/07/2001 FSU - Created for M851.
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

KTMR_GET_UPDATE_BITS    MACRO

                car     ktmrGetUpdateBits       
            
        CALLS   SUBROUTINE , 'ktmrGetUpdateBits'
            
        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name  : KTMR_GET_RUNNING_REPEAT_COUNTER
;
; Description : Get the number of repetitions of a specified resource.
;
; Assumptions : None
;                         
; Usage       : KTMR_GET_RUNNING_REPEAT_COUNTER
;
; Input(s)    : AReg - Resource Index
;
; Output(s)   : BReg - Running repeat counter (HEX value)
;
;               ( Destroyed: HLReg )
;
; Macro Change History: 
;
;               12/07/2001 FSU - Created for M851.
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

KTMR_GET_RUNNING_REPEAT_COUNTER MACRO

                car     ktmrGetRunningRepeatCounter     
            
        CALLS   SUBROUTINE , 'ktmrGetRunningRepeatCounter'
            
        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name  : KTMR_GET_STATUS
;
; Description : Gets the status of the timer.  Either reset, stopped or running.
;
; Assumptions : None
;                         
; Usage       : KTMR_GET_STATUS
;
; Input(s)    : AReg - Resource Index
;
; Output(s)   : BReg - KTMRSTATUSRESET   -> reset
;                      KTMRSTATUSSTOPPED -> stopped
;                      KTMRSTATUSRUNNING -> running
;
;               ( Destroyed: None )
;
; Macro Change History: 
;
;               12/11/2001 FSU - Created for M851.
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

KTMR_GET_STATUS MACRO

                car     ktmrGetStatus       
            
        CALLS   SUBROUTINE , 'ktmrGetStatus'
        
        ENDM



;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name  : KTMR_COPY_RESOURCE_TO_BUFFER
;
; Description : Copy the working HMS data to a buffer of a specified resource.
;
; Assumptions : Structure Format: Second, Minute, Hour
;                         
; Usage       : KTMR_COPY_RESOURCE_TO_BUFFER
;
; Input(s)    : AReg - Resource Index
;               IYReg - start address of buffer to write into.
;
; Output(s)   : None
;
;               ( Destroyed: HLReg, IYReg )
;
; Macro Change History: 
;
;               12/07/2001 FSU - Created for M851.
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

KTMR_COPY_RESOURCE_TO_BUFFER    MACRO

                car     ktmrCopyResourceToBuffer        
            
        CALLS   SUBROUTINE , 'ktmrCopyResourceToBuffer'
            
        ENDM



;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name  : KTMR_SETUP_USER_AND_WORK_HMS
;
; Description : Sets up the user set and working HMS data.
;
; Assumptions : Structure format: Second, Minute Hour
;               The counting direction have been already set.
;
; Usage       : KTMR_SETUP_USER_AND_WORK_HMS
;
; Input(s)    : AReg  - Resource Index 
;               IYReg - Points to the begining of the Seconds, Minutes and Hour
;                         structure of the user RAM area.
;
; Output(s)   : None
;
;               ( Destroyed: None )
;
; Macro Change History: 
;
;               05/11/2000 HSB - Created macro     
;
;   M851 Development:
;
;               12/07/2001 FSU - Reuse for M851.
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

KTMR_SETUP_USER_AND_WORK_HMS    MACRO

                car     ktmrSetupUserAndWorkHMS

        CALLS   SUBROUTINE , 'ktmrSetupUserAndWorkHMS'

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name  : KTMR_SETUP_WORKING_HMS
;
; Description : Sets up the working HMS data.  
;
; Assumptions : The counting direction has already been set.
;                         
; Usage       : KTMR_SETUP_WORKING_HMS
;
; Input(s)    : AReg  - Resource Index 
;               
; Output(s)   : None
;
;               ( Destroyed: None )
;
; Macro Change History: 
;
;               05/11/2000 HSB - Created macro     
;
;   M851 Development:
;
;               12/07/2001 FSU - Reuse for M851.
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

KTMR_SETUP_WORKING_HMS  MACRO

                car     ktmrSetupWorkingHMS

        CALLS   SUBROUTINE , 'ktmrSetupWorkingHMS'

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name  : KTMR_SETUP_PREWARNING_HMS
;
; Description : Sets up the pre-warning data.  If pre-warning data is equal to 
;                 the user set data then the pre-warning tracking will not be
;                 enabled.  If it is successful then pre-warning tracking will
;                 be enabled.
;
; Assumptions : Structure Format: Second, Minute, Hour
;
; Usage       : KTMR_SETUP_PREWARNING_HMS
;
; Input(s)    : AReg  - ResourceIndex 
;               IYReg - Points to the begining of the Seconds, Minutes and Hour             
;                         structure of the user RAM area.
;
; Output(s)   : None
;
;               ( Destroyed: None )
;
; Macro Change History: 
;
;               05/11/2000 HSB - Created macro     
;
;   M851 Development:
;
;               12/07/2001 FSU - Reuse for M851.
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

KTMR_SETUP_PREWARNING_HMS   MACRO

                car     ktmrSetupPreWarningHMS

CALLS   SUBROUTINE , 'ktmrSetupPreWarningHMS'

                ENDM

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name  : KTMR_DISABLE_PREWARNING_TRACKING
;
; Description : Disables the pre-warning processing.
;                 
; Assumptions : None
;               
; Usage       : KTMR_DISABLE_PREWARNING_TRACKING
;
; Input(s)    : AReg - Resource Index 
;               
; Output(s)   : None
;
;               ( Destroyed: None )
;
;
; Macro Change History: 
;
;               12/07/2001 FSU - Created for M851.
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

KTMR_DISABLE_PREWARNING_TRACKING    MACRO

                car     ktmrDisablePreWarningTracking

        CALLS   SUBROUTINE , 'ktmrDisablePreWarningTracking'

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name  : KTMR_ENABLE_DISP_UPD_EVENT
;
; Description : Enable display update event to be passed to the foreground 
;                 application.
;                 
; Assumptions : None
;               
; Usage       : KTMR_ENABLE_DISP_UPD_EVENT
;
; Input(s)    : AReg - ResourceIndex 
;               
; Output(s)   : None
;
;               ( Destroyed: BReg )
;
; Macro Change History: 
;
;               06/09/2000 HSB - Created macro for M841     
;
;   M851 Development:
;
;               12/07/2001 FSU - Reuse for M851.
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

KTMR_ENABLE_DISP_UPD_EVENT  MACRO

                car     ktmrEnableDisplayUpdate

        CALLS   SUBROUTINE , 'ktmrEnableDisplayUpdate'

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name  : KTMR_DISABLE_DISP_UPD_EVENT
;
; Description : Disable display update event to be passed to the foreground
;                 application
;                 
; Assumptions : None
;               
; Usage       : KTMR_DISABLE_DISP_UPD_EVENT
;
; Input(s)    : AReg - ResourceIndex 
;               
; Output(s)   : None
;
;               ( Destroyed: BReg )
;
; Macro Change History: 
;
;               06/09/2000 HSB - Created macro for M841     
;
;   M851 Development:
;
;               12/07/2001 FSU - Reuse for M851.
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

KTMR_DISABLE_DISP_UPD_EVENT MACRO

                car     ktmrDisableDisplayUpdate

        CALLS   SUBROUTINE , 'ktmrDisableDisplayUpdate'

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name  : KTMR_DEACTIVATE_ALL_DISPLAY_UPDATES
;
; Description : Deactivates display update for all timer resources.
;
; Assumptions : None
;               
; Usage       : KTMR_DEACTIVATE_ALL_DISPLAY_UPDATES
;               
; Input(s)    : None
;
; Output(s)   : None
;
;               ( Destroyed: HLReg, BReg )
;
; Macro Change History: 
;
;               08/14/2000 HSB - Created macro for M841     
;
;   M851 Development:
;
;               12/07/2001 FSU - Reuse for M851.
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                        
KTMR_DEACTIVATE_ALL_DISPLAY_UPDATES MACRO

                car     ktmrDeactivateAllDisplayUpdates
            
        CALLS   SUBROUTINE , 'ktmrDeactivateAllDisplayUpdates'
       
        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name  : KTMR_SETUP_COUNTUP
;
; Description : Set the timer resource as a count up resource.
;
; Assumptions : None
;               
; Usage       : KTMR_SETUP_COUNTUP
;               
; Input(s)    : AReg - ResourceIndex
;
; Output(s)   : None
;
;               ( Destroyed: BReg )
;
; Macro Change History: 
;
;               05/11/2000 HSB - Created Macro     
;
;   M851 Development:
;
;               12/07/2001 FSU - Reuse for M851.
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                        
KTMR_SETUP_COUNTUP  MACRO

                car     ktmrSetupCountUp
            
        CALLS   SUBROUTINE , 'ktmrSetupCountUp'
       
        ENDM



;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name  : KTMR_SETUP_COUNTDOWN
;
; Description : Make the timer resource as a count down resource.
;
; Assumptions : None
;               
; Usage       : KTMR_SETUP_COUNTDOWN
;               
; Input(s)    : AReg - Resource Index
;
; Output(s)   : None
;
;               ( Destroyed: BReg )
;
; Macro Change History: 
;
;               05/11/2000 HSB - Created Macro     
;
;   M851 Development:
;
;               12/07/2001 FSU - Reuse for M851.
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                        
KTMR_SETUP_COUNTDOWN    MACRO

                car     ktmrSetupCountDown
            
        CALLS   SUBROUTINE , 'ktmrSetupCountUp'
       
        ENDM



;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name  : KTMR_SET_RUNNING_REPEAT_COUNTER
;
; Description : Forcibly change the value of the repeat counter.
;
; Assumptions : NONE
;               
; Usage       : KTMR_SET_RUNNING_REPEAT_COUNTER
;               
; Input(s)    : AReg - ResourceIndex
;               BReg - Starting repetition counter (HEX data).
;
; Output(s)   : None
;
;               ( Destroyed: None )
;
; Macro Change History: 
;
;               05/11/2000 HSB - Created Macro     
;
;   M851 Development:
;
;               12/07/2001 FSU - Reuse for M851.
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                        
KTMR_SET_RUNNING_REPEAT_COUNTER MACRO

                car     ktmrSetRunningRepeatCounter
            
        CALLS   SUBROUTINE , 'ktmrSetRunningRepeatCounter'
       
        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name  : KTMR_SETUP_POPUP_GENERATION
;
; Description : Set the bit that tells the resource that it has to generate
;                 a popup on its ending.
;
; Assumptions : None
;               
; Usage       : KTMR_SETUP_POPUP_GENERATION
;               
; Input(s)    : AReg - Resource Index
;
; Output(s)   : None
;
;               ( Destroyed: BReg )
;
; Macro Change History: 
;
;               06/09/2000 HSB - Created macro for M841     
;
;   M851 Development:
;
;               12/07/2001 FSU - Reuse for M851.
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                        
KTMR_SETUP_POPUP_GENERATION MACRO

                car     ktmrSetupPopupGeneration
            
        CALLS   SUBROUTINE , 'ktmrSetupPopupGeneration'
       
        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name  : KTMR_SETUP_EVENT_GENERATION
;
; Description : Set the bit that tells the resource that it has to generate an 
;                 event on its ending.
;
; Assumptions : None
;               
; Usage       : KTMR_SETUP_EVENT_GENERATION
;               
; Input(s)    : AReg - ResourceIndex
;
; Output(s)   : None
;
;               ( Destroyed: BReg )
;
; Macro Change History: 
;
;               06/09/2000 HSB - Created macro for M841     
;
;   M851 Development:
;
;               12/07/2001 FSU - Reuse for M851.
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                        
KTMR_SETUP_EVENT_GENERATION MACRO

                car     ktmrSetupEventGeneration
            
        CALLS   SUBROUTINE , 'ktmrSetupEventGeneration'
       
        ENDM

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name  : KTMR_CANCEL_POPUP_AND_EVENT_GENERATION
;
; Description : Cancel popup event and event generation
;
; Assumptions : None
;               
; Usage       : KTMR_CANCEL_POPUP_AND_EVENT_GENERATION
;               
; Input(s)    : AReg - ResourceIndex
;
; Output(s)   : None
;
;               ( Destroyed: None )
;
; Macro Change History: 
;
;               06/09/2000 HSB - Created macro for M841     
;
;   M851 Development:
;
;               12/07/2001 FSU - Reuse for M851.
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                        
KTMR_CANCEL_POPUP_AND_EVENT_GENERATION  MACRO

                car     ktmrCancelPopupAndEventGeneration
            
        CALLS   SUBROUTINE , 'ktmrCancelPopupAndEventGeneration'
       
        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name  : KTMR_SETUP_REPEAT_AT_END
;
; Description : Enable the repeat at end action and sets up the number of
;                 times we need to repeat the timer.
;
; Assumptions : If number of repetitions is 0 then it is a continuous repeat.
;               
; Usage       : KTMR_SETUP_REPEAT_AT_END
;               
; Input(s)    : AReg - Resource Index, 
;               BReg - Number of Repetitions. (HEX data)
;
; Output(s)   : None
;
;               ( Destroyed: None )
;
; Macro Change History: 
;
;               05/11/2000 HSB - Created Macro     
;
;   M851 Development:
;
;               12/07/2001 FSU - Reuse for M851.
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                        
KTMR_SETUP_REPEAT_AT_END    MACRO

                car     ktmrSetupRepeatAtEnd
            
        CALLS   SUBROUTINE , 'ktmrSetupRepeatAtEnd'
       
        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name  : KTMR_CANCEL_REPEAT_AT_END
;
; Description : Disables the repeat at end action.
;
; Assumptions : None
;               
; Usage       : KTMR_CANCEL_REPEAT_AT_END
;               
; Input(s)    : AReg - Resource Index
;
; Output(s)   : None
;
;               ( Destroyed: BReg )
;
; Macro Change History: 
;
;               05/11/2000 HSB - Created Macro     
;
;   M851 Development:
;
;               12/07/2001 FSU - Reuse for M851.
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

KTMR_CANCEL_REPEAT_AT_END   MACRO

                car     ktmrCancelRepeatAtEnd
            
        CALLS   SUBROUTINE , 'ktmrCancelRepeatAtEnd'
       
        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name  : KTMR_SETUP_TMR_LINK
;
; Description : Set a timer link on timer ending
;
; Assumptions : NONE
;               
; Usage       : KTMR_SETUP_TMR_LINK
;               
; Input(s)    : AReg - Timer Resource index to establish the link from.
;               BReg - Timer Resource index to link to when the Timer ends.
;
; Output(s)   : None
;
;               ( Destroyed: None )
;
; Macro Change History: 
;
;               06/09/2000 HSB - Created macro for M841     
;
;   M851 Development:
;
;               12/07/2001 FSU - Reuse for M851.
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

KTMR_SETUP_TMR_LINK MACRO

                car     ktmrSetupTMRLink
            
        CALLS   SUBROUTINE , 'ktmrSetupTMRLink'
       
        ENDM

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name  : KTMR_SETUP_STP_LINK
;
; Description : Set the bit that indicates to link a stopwatch when the timer
;                 expires.  The stopwatch resource to start will be setup when
;                 the timer expires.
;
; Assumptions : NONE
;               
; Usage       : KTMR_SETUP_STP_LINK
;               
; Input(s)    : AReg - Timer resource to link Stopwatch Resource to.
;
; Output(s)   : None
;
;               ( Destroyed: None )
;
; Macro Change History: 
;
;               06/09/2000 HSB - Created macro for M841     
;
;   M851 Development:
;
;               12/07/2001 FSU - Reuse for M851.
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

KTMR_SETUP_STP_LINK MACRO

                car     ktmrSetupSTPLink
            
        CALLS   SUBROUTINE , 'ktmrSetupSTPLink'
       
        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name  : KTMR_CANCEL_ALL_LINKS
;
; Description : Cancels a link to TMR and STP of a specified resource.
;
; Assumptions : None
;               
; Usage       : KTMR_CANCEL_ALL_LINKS
;               
; Input(s)    : AReg - ResourceIndex
;
; Output(s)   : None
;
;               ( Destroyed: None )
;
; Macro Change History: 
;
;               06/09/2000 HSB - Created macro for M841     
;
;   M851 Development:
;
;               12/07/2001 FSU - Reuse for M851.
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

KTMR_CANCEL_ALL_LINKS   MACRO

                car     ktmrCancelAllLinks
            
        CALLS   SUBROUTINE , 'ktmrCancelAllLinks'
       
        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name  : KTMR_RESET_RESOURCE
;
; Description : Sets up the working HMS data depending on the direction of the
;                 timer.
;
;               Clears the running repeat counter.
;               
;               This also stops the total and stoppage time if timer caused
;                  synchro to start.
;
; Assumptions : Assume that the counting direction have been set.
;               
; Usage       : KTMR_RESET_RESOURCE
;               
; Input(s)    : AReg - Resource Index
;
; Output(s)   : None
;
;               ( Destroyed: HLReg )
;
; Macro Change History: 
;
;               06/09/2000 HSB - Created macro for M841     
;
;   M851 Development:
;
;               12/07/2001 FSU - Reuse for M851.
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

KTMR_RESET_RESOURCE MACRO

                car     ktmrReset
            
        CALLS   SUBROUTINE , 'ktmrReset'
       
        ENDM

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name  : KTMR_START_RESOURCE
;
; Description : Start background update for a timer resource with the stopwatch
;                 data buffers already loaded with the value to be used.
;
;               SYN will be started from reset if this timer starts from reset.
;                 The owner of this timer will also be the one to control the
;                 SYN.
;
;               SYN stoppage time will be stopped if this resource caused it
;                 to start.
;
; Assumptions : KRESStopwatchHundthsDataBuffer and KRESStopwatchSecondsDataBuffer
;                  contains the snap shot of the free running hundredths and 
;                  seconds counter.
;                         
; Usage       : KTMR_START_RESOURCE
;               
; Input(s)    : AReg - Resource Index
;
; Output(s)   : None
;
;               ( Destroyed: None )
;
; Macro Change History: 
;
;               06/09/2000 HSB - Created macro for M841     
;
;   M851 Development:
;
;               12/07/2001 FSU - Reuse for M851.
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                        
KTMR_START_RESOURCE     MACRO

                car     ktmrStartUpdate

        CALLS   SUBROUTINE , 'ktmrStartUpdate'
                
        ENDM

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name  : KTMR_STOP_RESOURCE
;
; Description : Stop background update for a timer resource with the stopwatch
;                 data buffers already loaded with the value to be used.
;
;               SYN stoppage time will be started if this resource caused it
;                 to start from reset.
;
; Assumptions : KRESStopwatchHundthsDataBuffer and KRESStopwatchSecondsDataBuffer
;                  contains the snap shot of the free running hundredths and 
;                  seconds counter.
;                         
; Usage       : KTMR_STOP_RESOURCE
;               
; Input(s)    : AReg - Resource Index
;
; Output(s)   : BReg.bKRESSecUpd = TRUE, if second data has been updated.
;               BReg.bKRESMinUpd = TRUE, if minute data has been updated.
;               BReg.bKRESHrUpd  = TRUE, if hour data has been updated.
;               BReg.bKRESRunOut = TRUE, if it has run-out. Above 99:59.59 99. For count-up
;                                           it underflows.  Below 00:00.00 00. For countdown
;
;               ( Destroyed: None )
;
; Macro Change History:
; 
;               06/09/2000 HSB - Created macro for M841     
;
;   M851 Development:
;
;               12/04/2001 FSU - Modified for M851 development.     
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                        
KTMR_STOP_RESOURCE  MACRO

                car     ktmrStopUpdate
            
        CALLS   SUBROUTINE , 'ktmrStopUpdate'
       
        ENDM

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name  : KTMR_STOP_ALL_RESOURCES
;
; Module Name : ktmrStopAllResources
;
; Description : Stops all the active resources.
;               COMM mode calls this routine.
;                         
; Usage       : KTMR_STOP_ALL_RESOURCES
;               
; Input(s)    : None
;
; Output(s)   : None
;
;               ( Destroyed: HLReg, BAReg )
;
; Macro Change History: 
;
;               07/12/2000 HSB - Created macro for M841     
;
;   M851 Development:
;
;               12/04/2001 FSU - Modified for M851 development.     
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                        
KTMR_STOP_ALL_RESOURCES MACRO

                car     ktmrStopAllResources
            
        CALLS   SUBROUTINE , 'ktmrStopAllResources'
       
        ENDM



;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name  : KTMR_UPDATE_ALL_ACTIVE_RESOURCES
;
; Description : Used by the core module to perform the resources background update.
;             
; Assumptions : KRESStopwatchHundthsDataBuffer and KRESStopwatchSecondsDataBuffer
;                 contains the snap shot of the free running hundredths and seconds
;                 counter.
;                         
; Usage       : KTMR_UPDATE_ALL_ACTIVE_RESOURCES
;               
; Input(s)    : None
;
; Output(s)   : None
;
;               ( Destroyed: HLReg, BAReg, IXReg )
;
; Macro Change History: 
;
;               05/11/2000 HSB - Created Macro     
;
;   M851 Development:
;
;               12/04/2001 FSU - Modified for M851 development.     
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                        
KTMR_UPDATE_ALL_ACTIVE_RESOURCES    MACRO

                car     ktmrUpdateAllActiveResources
            
        CALLS   SUBROUTINE , 'ktmrUpdateAllActiveResources'
       
        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name  : KTMR_CHECK_WORK_HMS_IF_ZERO
;
; Description : Check if working HMS data is equal to 0.
;
; Assumptions : None
;                         
; Usage       : KTMR_CHECK_WORK_HMS_IF_ZERO
;               
; Input(s)    : AReg = Resource Index
;
; Output(s)   : bZeroFlag = 0 if working HMS data is not 0.
;                           1 if working HMS data is 0. 
;       
;               ( Destroyed: None )
;
; Macro Change History: 
;
;               12/04/2001 FSU - Created for M851 development.     
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                        
KTMR_CHECK_WORK_HMS_IF_ZERO MACRO

                car     ktmrCheckWorkHMSIfZero
            
        CALLS   SUBROUTINE , 'ktmrCheckWorkHMSIfZero'
       
        ENDM

