;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; 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     :   ksynmac.h
;
; Macro Names   :
;
;   ( ALLOCATION )  
;
;   KSYN_RELEASE_ALL_RESOURCES        - Releases all synchro resources and marks them 
;                                         as available.
;   KSYN_RELEASE_RESOURCE             - Releases the resources associated with the 
;                                         specified application index
;   KSYN_RESERVE_RESOURCE             - Reserves a resource for the specified application 
;                                         and returns an index to the resource back to 
;                                         calling application.
;
;   ( INFORMATION )
;
;   KSYN_RETURN_OWNED_INDEX           - Returns resource index of first synchro resource 
;                                         owned by a specific application.
;   KSYN_GET_CAUSED_TO_START          - Returns the application index that caused synchro 
;                                         to start.
;   KSYN_RETURN_RESOURCE_OWNER        - Returns the application index of the resource owner.
;   KSYN_COPY_TOTAL_TO_BUFFER         - Copies the total time H:M:S.h into a buffer.
;   KSYN_COPY_STOPPAGE_TO_BUFFER      - Copies the stoppage time H:M:S.h into a buffer.
;   KSYN_GET_TOTAL_TIME_UPD_BITS      - Gets the TOTAL TIME update status.
;   KSYN_GET_STOPPAGE_TIME_UPD_BITS   - Gets the STOPPAGE TIME update status.
;   KSYN_GET_TOTAL_STATUS             - Gets the status of the total time.  Either reset, 
;                                         stop or running.
;   KSYN_GET_STOPPAGE_STATUS          - Gets the status of the stoppage time.  Either reset, 
;                                         stop or running.
;
;
;
;   ( MANIPULATION )
;
;	KSYN_OVERWRITE_APP_INDEX		  - Overwrites the existing app index with the data specified 
;										  in AReg.
;
;   KSYN_ENABLE_DISP_UPD_EVENT        - Allows the resource to receive a display update event.
;   KSYN_DISABLE_DISP_UPD_EVENT       - Disallows the resource to receive a display update event.
;
;   KSYN_SETUP_POPUP_GENERATION       - Setup resource to generate popup when synchro time has 
;                                         ran-out.
;   KSYN_SETUP_EVENT_GENERATION       - Setup resource to generate event when synchro time has 
;                                         ran-out.
;   KSYN_CANCEL_POPUPEVENT_GENERATION - Cancel resource to generate popup and event when synchro 
;                                         time has ran-out.
;
;   KSYN_RESET_AND_START              - Resets and starts the Synchro timer.
;
;   KSYN_STOP_TOTAL_AND_STOPPAGE_TIME_WITH_APP_INDEX - Stops synchro total and stoppage time and 
;                                                        update the values with the stored RTC if 
;                                                        the application index passed is the app
;                                                        index that caused synchro to start.
;
;   KSYN_STOP_TOTAL_AND_STOPPAGE_TIME - Stops synchro total and stoppage time and update 
;                                         the values with the stored RTC.
;
;   KSYN_START_STOPPAGE_TIME          - Start synchro stoppage time and update the values with 
;                                         the stored RTC.
;   KSYN_STOP_STOPPAGE_TIME           - Stop synchro stoppage time and update the values with the 
;                                         stored RTC.
;
;   KSYN_STOP_TOTAL_TIME              - Stop synchro total time and update the values with the 
;                                         stored RTC.
;   KSYN_RESET_RESOURCE               - Resets a synchro resource to 00:00:00.00.
;
;   KSYN_UPDATE_ALL_ACTIVE_RESOURCES  - Used by the core module to perform the resources background update.
;
;	KSYN_STOP_ALL_RESOURCES			  - Stops all the active resources.
;
;	KSYN_CHK_AND_SEND_STP_RUNOUT_AT_SYNC_APP - Check if the chrono that has run-out is the one that caused
;                                                synchro to start.  If its the one then send a chrono run-out
;                                                event.
;   
;   
;       
; Purpose       :   Macros to use the synchro resource utilities
;
; File Change History:
;
;                   06/03/2000 RVD - Created ksynmac.h for m841
;
;   M851 Development:
;
;                   11/21/2001 FSU - Modified for M851 development.
;
;                   06/17/2002 FSU - ECR# 851-20020614-350
;                   
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name  : KSYN_RELEASE_ALL_RESOURCES
;
; Description : Releases all synchro resources and marks them as available.
;
; Assumptions : none
;
; Usage       : KSYN_RELEASE_ALL_RESOURCES
;
; Input(s)    : None    
;
; Output(s)   : Resource flags are cleared.
;               KSYNAvailableResources is set to KSYNNUMOFRESOURCE.
;
;               ( Destroyed: HLReg )
;
; Macro Change History:
;
;               06/03/2000 RVD - Created macro for M841
;
;   M851 Development:
;               
;               11/21/2001 FSU - Reuse for M851.     
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

KSYN_RELEASE_ALL_RESOURCES  MACRO

                car     ksynReleaseAllResources

        CALLS   SUBROUTINE, 'ksynReleaseAllResources'

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name  : KSYN_RELEASE_RESOURCE
;
; Description : Releases the resources associated with the specified application 
;                 index and mark them as available.
;
; Assumptions : None
;
; Usage       : KSYN_RELEASE_RESOURCE
;
; Input(s)    : AReg - Application Index of the application whose resources 
;                        will be freed.
;
; Output(s)   : Resource flags are cleared.
;               KSYNAvailableResources is decremented.
;               
;               ( Destroyed: HLReg )
;
; Macro Change History:
;
;               06/03/2000 RVD - Created macro for M841     
;
;   M851 Development:
;               
;               11/21/2001 FSU - Reuse for M851.     
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

KSYN_RELEASE_RESOURCE   MACRO

                car     ksynReleaseResource

        CALLS   SUBROUTINE, 'ksynReleaseResource'

        ENDM

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name  : KSYN_RESERVE_RESOURCE
;
; Description : Reserves a resource for the specified application and returns
;                 an index to the resource back to calling application.
;
;               Marks the resource using the following value:
;
;                   Bit 0: 1 (bKReserved)
;                       1: 0 (bKActive)
;                       2: 0 (bKDispUpdRequest)
;                       3: 0 (bKSYNStartStoppage)
;                       4: 0 unused
;                       5: 0 (bKNotReset)
;                       6: 0 (bKGeneratePopup)
;                       7: 0 (bKGenerateEvent)
;                                                  
;               Sets all unused variables to zero. 
;                                                  
; Assumptions : None
;
; Usage       : KSYN_RESERVE_RESOURCE
;
; Input(s)    : AReg - Application Index which wishes to reserve the resource.
;
; Output(s)   : BReg - Resource index if successful.
;                      SYNERRORCODE if unsuccessful.
;
;               ( Destroyed: None )
;
; Macro Change History:
;
;               06/03/2000 RVD - Created macro for M841     
;
;   M851 Development:
;               
;               11/21/2001 FSU - Reuse for M851.     
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

KSYN_RESERVE_RESOURCE   MACRO

                car     ksynReserveResource

        CALLS   SUBROUTINE, 'ksynReserveResource'

        ENDM




;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name  : KSYN_RETURN_OWNED_INDEX
;
; Description : Returns resource index of first synchro resource owned by a 
;                 specific application.
;
; Assumptions : None
;
; Usage       : KSYN_RETURN_OWNED_INDEX
;               
; Input(s)    : AReg - Application Index to search for.
;
; Output(s)   : BReg - Resource Index if successful.
;                      SYNERRORCODE if unsuccessful.
;
;               ( Destroyed: HLReg )
;
; Macro Change History: 
;
;               06/03/2000 RVD - Created macro for M841     
;
;   M851 Development:
;               
;               11/21/2001 FSU - Reuse for M851.     
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                        
KSYN_RETURN_OWNED_INDEX MACRO

                car     ksynReturnOwnedIndex

        CALLS   SUBROUTINE, 'ksynReturnOwnedIndex'
       
        ENDM            

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name  : KSYN_GET_CAUSED_TO_START 
;
; Description : Returns the application index that caused synchro to start.
;
; Assumptions : None
;
; Usage       : KSYN_GET_CAUSED_TO_START
;
; Input(s)    : None
;
; Output(s)   : AReg - App index that caused synchro to start.
;
;               ( Destroys: HLReg )
;
; Macro Change History:
;
;               07/03/2000 RVD - Created Macro for 841
;
;   M851 Development:
;               
;               11/21/2001 FSU - Reuse for M851.     
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

KSYN_GET_CAUSED_TO_START    MACRO

                car     ksynGetCausedToStart

        CALLS   SUBROUTINE, 'ksynGetCausedToStart'
       
        ENDM




;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name  : KSYN_RETURN_RESOURCE_OWNER 
;
; Description : Returns the Application Index of the resource Owner.
;
; Assumptions : None
;
; Usage       : KSYN_RETURN_RESOURCE_OWNER
;
; Input(s)    : None
;
; Output(s)   : BReg - App index (owner) of the resource.
;
;               ( Destroys: HLReg )
;
; Macro Change History:
;
;               07/03/2000 RVD - Created Macro for 841
;
;   M851 Development:
;               
;               11/21/2001 FSU - Reuse for M851.     
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

KSYN_RETURN_RESOURCE_OWNER  MACRO

                car     ksynReturnResourceOwner

        CALLS   SUBROUTINE, 'ksynReturnResourceOwner'
       
        ENDM            

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name  : KSYN_COPY_TOTAL_TO_BUFFER
;
; Description : Copies the total time H:M:S.h into a buffer.
;
; Assumptions : Structure format: Hundredths, Seconds, Minute, Hour
;
; Usage       : KSYN_COPY_TOTAL_TO_BUFFER
;
; Input(s)    : HLReg - Start address of buffer to write into.
;
; Output(s)   : HLReg - Points to the next byte after the destinations structure.
;               
;               ( Destroys: IYReg, BReg )
;
; Macro Change History:
;
;               11/26/2001 FSU - Created for M851.     
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

KSYN_COPY_TOTAL_TO_BUFFER   MACRO

                car     ksynCopyTotalToBuffer
                                
        CALLS   SUBROUTINE, 'ksynCopyTotalToBuffer'
       
        ENDM



;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name  : KSYN_COPY_STOPPAGE_TO_BUFFER
;
; Description : Copies the stoppage time H:M:S.h into a buffer.
;
; Assumptions : Structure format: Hundredths, Seconds, Minute, Hour
;
; Usage       : KSYN_COPY_STOPPAGE_TO_BUFFER
;
; Input(s)    : HLReg - Start address of buffer to write into.
;
; Output(s)   : HLReg - Points to the next byte after the destinations structure.
;               
;               ( Destroys: IYReg, BReg )
;
; Macro Change History:
;
;               11/26/2001 FSU - Created for M851.     
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

KSYN_COPY_STOPPAGE_TO_BUFFER    MACRO

                car     ksynCopyStoppageToBuffer
                                
        CALLS   SUBROUTINE, 'ksynCopyStoppageToBuffer'
       
        ENDM

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name  : KSYN_GET_TOTAL_TIME_UPD_BITS
;
; Description : Gets the TOTAL TIME update status.
;
; Assumptions : None
;                         
; Usage       : KSYN_GET_TOTAL_TIME_UPD_BITS
;               
; Input(s)    : None
;
; Output(s)   : AReg.bKSYNTotalSecondUpd     - TRUE, if second data is updated
;                   .bKSYNTotalMinuteUpd     - TRUE, if minute data is updated
;                   .bKSYNTotalHourUpd       - TRUE, if hour data is updated    
;                   .bKSYNTotalSecondNonZero - TRUE, if seconds is not zero
;                   .bKSYNTotalMinuteNonZero - TRUE, if minutes is not zero
;                   .bKSYNTotalHourNonZero   - TRUE, if hours is not zero
;                   .bKSYNTotalRunout        - TRUE, if synchro total time has ran out
;
;               ( Destroys: HLReg )
;
; Macro Change History : 
;
;               11/21/2001 FSU - Created for M851.     
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                        
KSYN_GET_TOTAL_TIME_UPD_BITS    MACRO

                car     ksynGetTotalTimeUpdBits
       
        CALLS   SUBROUTINE, 'ksynGetTotalTimeUpdBits'

        ENDM

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name  : KSYN_GET_STOPPAGE_TIME_UPD_BITS
;
; Description : Gets the STOPPAGE TIME update status.
;
; Assumptions : None
;                         
; Usage       : KSYN_GET_STOPPAGE_TIME_UPD_BITS
;               
; Input(s)    : None
;
; Output(s)   : AReg.bKSYNStoppageSecondUpd     - TRUE, if second data is updated
;                   .bKSYNStoppageMinuteUpd     - TRUE, if minute data is updated
;                   .bKSYNStoppageHourUpd       - TRUE, if hour data is updated 
;                   .bKSYNStoppageSecondNonZero - TRUE, if seconds is not zero
;                   .bKSYNStoppageMinuteNonZero - TRUE, if minutes is not zero
;                   .bKSYNStoppageHourNonZero   - TRUE, if hours is not zero
;                   .bKSYNStoppageRunout        - TRUE, if synchro stoppage time has ran out    
;                    
;               ( Destroys: HLReg )
;
; Macro Change History : 
;
;               11/21/2001 FSU - Created for M851.     
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                        
KSYN_GET_STOPPAGE_TIME_UPD_BITS MACRO

                car     ksynGetStoppageTimeUpdBits
       
        CALLS   SUBROUTINE, 'ksynGetStoppageTimeUpdBits'

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name  : KSYN_GET_TOTAL_STATUS
;
; Description : Gets the status of the total time.  Either reset, stop or running.
;
; Assumptions : None
;                         
; Usage       : KSYN_GET_TOTAL_STATUS
;               
; Input(s)    : None
;
; Output(s)   : BReg - KSYNTOTALSTATUSRESET   (Reset)
;                      KSYNTOTALSTATUSSTOPPED (Stop)
;                      KSYNTOTALSTATUSRUNNING (Running)
;
;               ( Destroyed: HLReg )
;
; Macro Change History: 
;
;               02/28/2002 FSU - Created module
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                        
KSYN_GET_TOTAL_STATUS   MACRO

                car     ksynGetTotalStatus

        CALLS   SUBROUTINE, 'ksynGetTotalStatus'
       
        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name  : KSYN_GET_STOPPAGE_STATUS
;
; Description : Gets the status of the stoppage time.  Either reset, stop or 
;                 running.
;
; Assumptions : None
;                         
; Usage       : KSYN_GET_STOPPAGE_STATUS
;               
; Input(s)    : None
;
; Output(s)   : BReg - KSYNSTOPSTATUSRESET   (Reset)
;                      KSYNSTOPSTATUSSTOPPED (Stop)
;                      KSYNSTOPSTATUSRUNNING (Running)
;               
;               ( Destroys: HLReg )
;
; Macro Change History: 
;
;               02/28/2002 FSU - Created module
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                        
KSYN_GET_STOPPAGE_STATUS    MACRO

                car     ksynGetStoppageStatus

        CALLS   SUBROUTINE, 'ksynGetStoppageStatus'
       
        ENDM

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name  : KSYN_OVERWRITE_APP_INDEX
;
; Description : Overwrites the existing app index with the data specified in 
;                 AReg.
;
; Assumptions : None
;
; Input(s)    : None
;
; Output(s)   : AReg - App index 
;
;               ( Destroys: HLReg )
;
; Macro Change History: 
;
;               05/10/2002 FSU - Modified for M851 Development.
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                        
KSYN_OVERWRITE_APP_INDEX    MACRO

                car     ksynOverwriteAppIndex

        CALLS   SUBROUTINE, 'ksynOverwriteAppIndex'
       
        ENDM




;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name  : KSYN_ENABLE_DISP_UPD_EVENT
;
; Description : Allows the resource to pass a display update event to the
;                 foreground application.
;
; Assumptions : None
;                         
; Usage       : KSYN_ENABLE_DISP_UPD_EVENT
;               
; Input(s)    : None
;
; Output(s)   : None
;
;               ( Destroyed: HLReg )
;
; Macro Change History: 
;
;               11/21/2001 FSU - Created for M851.     
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                        
KSYN_ENABLE_DISP_UPD_EVENT  MACRO

                car     ksynEnableDispUpdEvent

        CALLS   SUBROUTINE, 'ksynEnableDispUpdEvent'
       
        ENDM
                                
                                
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name  : KSYN_DISABLE_DISP_UPD_EVENT
;
; Description : Disallows the resource to pass a display update event to the
;                 foreground application.
;
; Assumptions : None
;                         
; Usage       : KSYN_DISABLE_DISP_UPD_EVENT
;               
; Input(s)    : None
;
; Output(s)   : None
;
;               ( Destroyed: HLReg )
;
; Macro Change History : 
;
;               11/21/2001 FSU - Created for M851.     
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                        
KSYN_DISABLE_DISP_UPD_EVENT MACRO

                car     ksynDisableDispUpdEvent
       
        CALLS   SUBROUTINE, 'ksynDisableDispUpdEvent'

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name  : KSYN_SETUP_POPUP_GENERATION
;
; Description : Setup resource to generate popup when synchro time has ran-out.
;
; Assumptions : None
;                         
; Usage       : KSYN_SETUP_POPUP_GENERATION
;               
; Input(s)    : None
;
; Output(s)   : None
;
;               ( Destroys: HLReg )
;
; Macro Change History : 
;
;               11/21/2001 FSU - Created for M851.     
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                        
KSYN_SETUP_POPUP_GENERATION MACRO

                car     ksynSetupPopupGeneration
       
        CALLS   SUBROUTINE, 'ksynSetupPopupGeneration'

        ENDM

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name  : KSYN_SETUP_EVENT_GENERATION
;
; Description : Setup resource to generate event when synchro time has ran-out
;
; Assumptions : None
;                         
; Usage       : KSYN_SETUP_EVENT_GENERATION
;               
; Input(s)    : None    
;
; Output(s)   : None
;                           
;               ( Destroys: HLReg )
;
; Macro Change History : 
;
;               11/21/2001 FSU - Created for M851.     
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                        
KSYN_SETUP_EVENT_GENERATION MACRO

                car     ksynSetupEventGeneration
       
        CALLS   SUBROUTINE, 'ksynSetupEventGeneration'

        ENDM

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name  : KSYN_CANCEL_POPUPEVENT_GENERATION
;
; Description : Cancel resource to generate popup and event when synchro time 
;                 has ran-out.
;
; Assumptions : None
;                         
; Usage       : KSYN_CANCEL_POPUPEVENT_GENERATION
;               
; Input(s)    : None    
;
; Output(s)   : None
;
;               ( Destroys: HLReg )
;
; Macro Change History : 
;
;               11/21/2001 FSU - Created for M851.     
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                        
KSYN_CANCEL_POPUPEVENT_GENERATION   MACRO

                car     ksynCancelPopupEventGeneration
       
        CALLS   SUBROUTINE, 'ksynCancelPopupEventGeneration'

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name  : KSYN_RESET_AND_START
;
; Description : Resets and starts the Synchro timer.
;
; Assumptions : KRESStopwatchHundthsDataBuffer and KRESStopwatchSecondsDataBuffer
;                 contains the snap shot of the free running hundredths and seconds
;                 counter.
;
; Usage       : KSYN_RESET_AND_START
;               
; Input(s)    : BReg - Index of the application that request synchro to be started 
;                        from reset.
;
; Output(s)   : None
;
;               ( Destroyed: None )
;
; Macro Change History:
;
;               07/11/2000 RVD - Created Macro for 841
;
;   M851 Development:
;               
;               11/21/2001 FSU - Reuse for M851.     
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

KSYN_RESET_AND_START    MACRO

                car     ksynResetandStart

        CALLS   SUBROUTINE, 'ksynResetandStart'
       
        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name  : KSYN_STOP_TOTAL_AND_STOPPAGE_TIME_WITH_APP_INDEX
;
; Description : Stops synchro total and stoppage time and update the values 
;                 with the stored RTC if the application index passed is the 
;                 app index that caused synchro to start.
;
; Assumptions : KRESStopwatchHundthsDataBuffer and KRESStopwatchSecondsDataBuffer
;                 contains the snap shot of the free running hundredths and seconds
;                 counter.
;
;               This will be called when the resource (STP and TMR) is reset.
;               
; Usage       : KSYN_STOP_TOTAL_AND_STOPPAGE_TIME_WITH_APP_INDEX
;               
; Input(s)    : BReg - App index that wish to stop the synchro.
;
; Output(s)   : Resource flag is updated.
;
;               ( Destroyed: None )
;
; Macro Change History:
;
;               11/21/2001 FSU - Created for M851.     
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

KSYN_STOP_TOTAL_AND_STOPPAGE_TIME_WITH_APP_INDEX    MACRO

                car     ksynStopTotalAndStoppageTimeWithAppIndex

        CALLS   SUBROUTINE, 'ksynStopTotalAndStoppageTimeWithAppIndex'
       
        ENDM




;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name  : KSYN_STOP_TOTAL_AND_STOPPAGE_TIME
;
; Description : Stops synchro total and stoppage time and update the values with 
;                 the stored RTC.
;               
; Assumptions : KRESStopwatchHundthsDataBuffer and KRESStopwatchSecondsDataBuffer
;                 contains the snap shot of the free running hundredths and seconds
;                 counter.
;
;               This will only be called when the resource is forcibly stopped due
;                 to switch depression (in synchro mode).
;
; Usage       : KSYN_STOP_TOTAL_AND_STOPPAGE_TIME
;               
; Input(s)    : None
;
; Output(s)   : bKActive and bKSYNStartStoppage is cleared.
;               Update flags of total and stoppage time has been updated.
;
;               ( Destroyed: None )
;
; Macro Change History:
;
;               11/21/2001 FSU - Created for M851.     
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

KSYN_STOP_TOTAL_AND_STOPPAGE_TIME   MACRO

                car     ksynStopTotalAndStoppageTime

        CALLS   SUBROUTINE, 'ksynStopTotalAndStoppageTime'
       
        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name  : KSYN_START_STOPPAGE_TIME
;
; Description : Start synchro stoppage time and update the values with the 
;                 stored RTC.
;
; Assumptions : KRESStopwatchHundthsDataBuffer and KRESStopwatchSecondsDataBuffer
;                 contains the snap shot of the free running hundredths and seconds
;                 counter.
;
;               This will only be called when the resource is stopped from running.
;
; Usage       : KSYN_START_STOPPAGE_TIME
;               
; Input(s)    : BReg - App Index that requests sychro stoppage time to be started.
;
; Output(s)   : bKSYNStartStoppage - TRUE
;               
;               ( Destroyed: None )
;
; Macro Change History:
;
;               11/21/2001 FSU - Created for M851.     
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

KSYN_START_STOPPAGE_TIME    MACRO

                car     ksynStartStoppageTime

        CALLS   SUBROUTINE, 'ksynStartStoppageTime'
       
        ENDM

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name  : KSYN_STOP_STOPPAGE_TIME
;
; Description : Stop synchro stoppage time and update the values with the stored RTC.
;               
; Assumptions : KRESStopwatchHundthsDataBuffer and KRESStopwatchSecondsDataBuffer
;                 contains the snap shot of the free running hundredths and seconds
;                 counter.
;
;               This will only be called when the resource is started from stopped.
;
; Usage       : KSYN_STOP_STOPPAGE_TIME
;               
; Input(s)    : BReg - App Index that requests sychro stoppage time to be stopped.
;
; Output(s)   : bKSYNStartStoppage - FALSE
;               The update flag of the stoppage time has been updated.
;                           
;               ( Destroyed: None )
;
; Macro Change History:
;
;               11/21/2001 FSU - Created for M851.     
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

KSYN_STOP_STOPPAGE_TIME     MACRO

                car     ksynStopStoppageTime

        CALLS   SUBROUTINE, 'ksynStopStoppageTime'
       
        ENDM



;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name  : KSYN_STOP_TOTAL_TIME
;
; Description : Stop synchro total time and update the values with the stored RTC.
;               
; Assumptions : KRESStopwatchHundthsDataBuffer and KRESStopwatchSecondsDataBuffer
;                 contains the snap shot of the free running hundredths and seconds
;                 counter.
;
;               This will only be called when the application started it is reset
;                 or chrono and timer has completed its processing.
;               
; Usage       : KSYN_STOP_TOTAL_TIME
;               
; Input(s)    : BReg - App Index that requests sychro stoppage time to be stopped.
;
; Output(s)   : bKActive - FALSE
;               The update flag of the total time has been updated.
;
;               ( Destroyed: None )
;
; Macro Change History:
;
;               12/04/2001 FSU - Created for M851.     
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

KSYN_STOP_TOTAL_TIME    MACRO

                car     ksynStopTotalTime

        CALLS   SUBROUTINE, 'ksynStopTotalTime'
       
        ENDM

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name  : KSYN_RESET_RESOURCE
;
; Description : Resets a synchro resource to 00:00:00.00.
;
; Assumptions : None
;                         
; Usage       : KSYN_STOP_RESOURCE
;               
; Input(s)    : None
;
; Output(s)   : bKNotReset         - FALSE, indicates in reset state.
;               bKActive           - FALSE, total time is stopped.
;               bKSYNStartStoppage - FALSE, stoppage time is stopped.
;
;               ( Destroyed: None )
;
; Macro Change History:
; 
;               06/03/2000 RVD - Created macro for M841     
;
;   M851 Development:
;
;               11/21/2001 FSU - Modified for M851 Development.
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                        
KSYN_RESET_RESOURCE MACRO

                car     ksynResetResource
                
        CALLS   SUBROUTINE, 'kstpResetResource'
       
        ENDM            



;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name  : KSYN_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.
;
;               This is only limited to only one synchro resource.
;
; Usage       : KSYN_UPDATE_ALL_ACTIVE_RESOURCES
;               
; Input(s)    : None
;
; Output(s)   : None
;
;               ( Destroyed: None )
;
;
; Macro Change History:
;
;               11/21/2001 FSU - Created for M851 Development.
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

KSYN_UPDATE_ALL_ACTIVE_RESOURCES    MACRO

                car     ksynUpdateAllActiveResources
                
        CALLS   SUBROUTINE, 'ksynUpdateAllActiveResources'
       
        ENDM            


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name  : KSYN_STOP_ALL_RESOURCES
;
; Description : Stops all the active resources.
;               COMM mode calls this routine.
;                         
; Usage       : KSYN_STOP_ALL_RESOURCES
;               
; Input(s)    : None
;
; Output(s)   : None
;
;               ( Destroyed: None )
;
; Macro Change History: 
;				
;               05/14/2002 FSU - Created for M851 development.     
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

KSYN_STOP_ALL_RESOURCES		MACRO

				car		ksynStopTotalAndStoppageTime

		CALLS	SUBROUTINE,	'ksynStopTotalAndStoppageTime'

		ENDM		


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name  : KSYN_CHK_AND_SEND_STP_RUNOUT_AT_SYNC_APP
;
; Description : Check if the chrono that has run-out is the one that caused
;                 synchro to start.  If its the one then send a chrono run-out
;                 event to synchro application.
;                         
; Usage       : KSYN_CHK_AND_SEND_STP_RUNOUT_AT_SYNC_APP
;               
; Assumptions : None
;
; Input(s)    : AReg - App index of chrono that has run-out.
;
; Output(s)   : None
;
;               ( Destroyed: None )
;
; Macro Change History: 
;				
;               06/17/2002 FSU - ECR#  851-20020614-350
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

KSYN_CHK_AND_SEND_STP_RUNOUT_AT_SYNC_APP    MACRO

				car		ksynChkAndSendStpRunoutAtSyncApp

		CALLS	SUBROUTINE,	'ksynChkAndSendStpRunoutAtSyncApp'

		ENDM		

