;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; 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  :  coremac.h
;
; Macro Names:  
;
;   CORETASK_DISPLAYTOD_REQUEST             - TOD Resource will request a display event to be passed
;   CORETASK_DISPLAYTMR_REQUEST             - TMR Resource will request a display event to be passed
;   CORETASK_DISPLAYSTP_REQUEST             - STP Resource will request a display event to be passed
;   CORETASK_DISPLAYSYN_REQUEST             - SYN Resource will request a display event to be passed
;   
;   CORETASK_EVENT_GENERATION_REQUEST       - Resource Event generation Request 
;
;   CORE_REQUEST_MELODY_POPUP_CANCEL        - When set, any active melody during a popup will be cancelled by
;                                             any switch depression and the event COREEVENT_MELODYPOPUPCANCEL
;                                             will be passed to the application.
;
;   CORETASK_POPUP_REQUEST_BCK              - Popup request for a Backup Resouce
;   CORETASK_POPUP_REQUEST_TZC              - Popup request for a Time Zone Check Resouce
;   CORETASK_POPUP_REQUEST_TMR              - Popup request for a Timer Resouce
;   CORETASK_POPUP_REQUEST_STP              - Popup request for a Stopwatch Check Resouce
;   CORETASK_POPUP_REQUEST_SYN              - Popup request for a Synchro Timer Resouce
;
;   CORETASK_POPUP_CANCEL_BCK               - Cancel popup request for Backup Resource
;   CORETASK_POPUP_CANCEL_TZC               - Cancel popup request for Time Zone Check Resource
;   CORETASK_POPUP_CANCEL_TMR               - Cancel popup request for Timer Resource
;   CORETASK_POPUP_CANCEL_STP               - Cancel popup request for Stopwatch Resource
;   CORETASK_POPUP_CANCEL_SYN               - Cancel popup request for Synchro Resource
;
;   CORE_SET_POPDOWN_STATE                  - Specify the popupdown state to return on a popdown
;   
;   CORETASK_COMM_DATA_PACKET_AVAILABLE     - Request a system event to indicate that datalink packet is available
;   CORETASK_COMM_FIRSTBYTEOFPACKET_RECEIVED- Request a system event to indicate that first byte of datalink
;                                             packet is received.
;   CORETASK_COMM_TRANSMIT_COMPLETE         - Set a core task event to send the COREEVENT_COMMTRANSMITCOMPLETE
;                                             to the application
;   
;   CORE_CALL_ALL_BACKGROUND_HANDLERS       - Call the background handlers of all available applications
;                                             with an event passed as an argument.
;   
;   CORE_CALL_ALL_BACKGROUND_HANDLER_EXCEPTTODCOMM - Call the background handlers of all available applications
;                                                    except TOD and COMM with an event passed as an argument.
;
;   CORE_CALL_BACKGROUND_HANDLER            - Call the background handler of an application
;
;   CORE_CALL_MODE_NAME                     - Displays the Mode Banner for the specified application.
;                                             Used by foreground application banner state handler.
;
;   CORE_REQ_BACKGROUND_TASK                    - Request a background task to be initiated.
;   CORE_REQ_BACKGROUND_TASK_WITH_PRIORITYCHECK - Request a background task to be initiated with priority check.
;   CORE_REQ_BACKGROUND_TASK_FOR_APPTYPE        - Request a background task to be initiated for the specified
;                                                 application type.
;
;   CORE_REQ_BACKGROUND_TASK_FOR_APPTYPE_WITH_PRIORITYCHECK
;                                               - Request a background task to be initiated for the specified
;                                                 application type but checks first before overwriting a higher
;                                                 priority task.
;
;   CORE_REQ_BACKGROUND_TASK_FOR_PTZBASEDAPPS   - Request a background task to be initiated for application
;                                                 types that are dependent upon the primary time zone data.
;
;   CORE_CLEAR_BACKGROUND_APPLICATION_TASK      - Clears the pending background application task for specified
;                                                 application index.
;   CORE_CLEAR_ALL_BACKGROUND_APPLICATION_TASK  - Clears all the pending background application task being
;                                                 requested.
;   
;   CORE_CHECK_DATABASE_VALID               - Check if the specified application database section is valid
;   CORE_INVALIDATE_DATABASE                - Make the database section of specified application invalid
;   CORE_VALIDATE_DATABASE                  - Make the database section of specified application valid
;   CORE_CHECK_CODE_VALID                   - Check if the specified application code section is valid
;   CORE_INVALIDATE_CODE                    - Make the code section section of specified application invalid
;   CORE_VALIDATE_CODE                      - Make the code section of specified application valid
;   CORE_CHECK_PASSWORD_REQUIRED            - Check if password is required prior to default state entry
;   CORE_DATABASE_MODIFIED_BY_USER          - Database was modified by the user
;   
;   CORE_SETUP_POPUP_CLOCK                  - Sets up the popup clock mechanism.
;   CORE_ENABLE_POPUP_MODE                  - Indicate to the system that popup mode is active.
;   CORE_DISABLE_POPUP_MODE                 - Indicate to the system that popup mode is not active.
;   CORE_CANCEL_ANY_PTZ_POPUPS              - Cancel any PTZ resources popup
;   CORE_CANCEL_ALL_POPUPS                  - Cancel all popups
;   CORE_SUSPEND_POPUPS                     - Suspend any Popup during the current state
;   CORE_ENABLE_POPUPS                      - Enable Popups in the current state
;
;   CORE_ACTIVATE_POPCLOCK                  - Activates updating of the popup clock
;   CORE_DEACTIVATE_POPCLOCK                - Deactivates updates to the popup clock
;   
;
;   CORE_MASK_KEYS                          - Prevent certain switch events from beeing passed to the foreground
;                                             application.
;   CORE_ALLOW_KEYS                         - Enable certain switch events to be passed to the foreground app
;   CORE_ALLOW_ALL_KEYMASK                  - Allow all switch events to be passed to the foreground application
;   CORE_SUSPEND_RING_EVENTS                - Suspends any ring events to be passed to the application.
;   CORE_SUSPEND_RING_LEADING_EVENTS           - Suspends any ring events matching low-high transition
;                                             to be passed to the application.
;   CORE_ENABLE_RING_EVENTS                 - Enable any ring events to be passed to the application.
;   CORE_ENABLE_RING_LEADING_EVENTS            - Enable any ring events matching low-high transition
;                                             to be passed to the application.
;   CORE_SUSPEND_SWITCH_RELEASE             - Suspends any switch releases to be passed to the application.
;   CORE_ENABLE_SWITCH_RELEASE              - Enables any switch releases to be passed to the application.
;   CORE_ENABLE_GENERIC_SWITCH_EVENT        - Request the system to generate a generic switch depress or release
;                                             event for application processing.
;   CORE_DISABLE_GENERIC_SWITCH_EVENT       - Send unique switch events as is.  Do not convert to a generic
;                                             switch event.
;   CORE_ENABLE_PULSE_MODE                  - Send ring pulse events on crown rotation
;   CORE_DISABLE_PULSE_MODE                 - Send ring edge events on crown rotation
;
;
;   CORE_REQ_MODE_CHANGE                    - Requests a mode change 
;   CORE_REQ_MODE_CHANGE_NEXT               - Requests a mode change to the next mode.
;   CORE_REQ_MODE_CHANGE_NEXT_NO_PEEK       - Requests a mode change to the next mode without peek to primary mode
;   CORE_REQ_STATE_CHANGE                   - Request for a state change.
;   CORE_REQ_STATE_CHANGE_NO_CLEAR_DISPLAY  - Request for a state change without clearing the entire display.
;
;   CORE_REQ_TIMEOUT_HIRES                  - Request for a high resolution timeout.
;   CORE_REQ_TIMEOUT_LORES                  - Request for a Low resolution timeout.
;   CORE_REQ_TIMEOUT_STICKY                 - Request for a Sticky timeout.
;   CORE_REQ_PEEK_APP_TYPE                  - Request the system to search for a specified application type and
;                                             execute that application's background handler with the background
;                                             event COREEVENT_PEEK.
;   CORE_REQ_POPDOWN                        - Request a popdown
;   
;   CORE_ENABLE_2HZ_BLINKING                - Enables the 2Hz Blinking 
;   CORE_CANCEL_2HZ_BLINK                   - Cancels the 2Hz Blinking
;   CORE_REQ_BLINK_2HZ                      - Request Blinking at 2Hz 
;   CORE_CANCEL_BLINK_2HZ                   - Cancel Blinking at 2Hz for one or more flags  
;   CORE_REQ_BLINK_4HZ                      - Request Blinking at 4Hz
;   CORE_CANCEL_BLINK_4HZ                   - Cancel Blinking at 4Hz 
;   
;   CORE_REQ_SCROLLING                      - Request Scrolling 
;   CORE_CANCEL_SCROLLING                   - Cancel 8hz scrolling
;   
;   CORE_CANCEL_TIMEOUTS                    - Cancel ALL Timeouts
;
;   CORE_ENABLE_SET_MODE                    - Sets the SetMode flag.
;   CORE_DISABLE_SET_MODE                   - Clears the SetMode flag.
;   
;   CORE_SET_COMM_MODE_STATUS               - Set the Communiction mode status bit
;   CORE_CLR_COMM_MODE_STATUS               - Clear the Communiction mode status bit
;
;   CORE_SET_AUTORETURN                     - Set the AutoReturn to the Primary mode.
;   CORE_RESET_AUTORETURN_COUNTER           - Reset the AutoReturn counter to the Primary mode.
;   CORE_CLEAR_AUTORETURN                   - Clear the AutoReturn to the Primary mode.
;
;   CORE_INTERRUPTFLAG_MELODY_DONE_SET      - Set the Melody Done event
;   CORE_INTERRUPTFLAG_MELODY_DONE_CLR      - Clear the Melody Done event
;   CORE_INTERRUPTFLAG_RING_DATA_READY_SET  - Notify the core that the Ring data is ready.
;   CORE_INTERRUPTFLAG_RING_DATA_READY_CLR  - Clear the Ring data ready bit.
;
;   CORE_RUNNING_AUDIO                      - Notify the core that we are outputing an alert
;   CORE_STOP_AUDIO                         - Inform the core that there is no audio running
;
;   CORE_BACKGROUND_ICON_REFRESH_ENABLE     - Requests for a system event during LCD icon updates
;   CORE_BACKGROUND_ICON_REFRESH_DISABLE    - Cancel request for a system event during LCD icon updates
;   CORE_REQUEST_ICON_REFRESH_TASK          - Sets a system task to send an LCD icon refresh event to application
;
;   CORE_UPDATE_ENTRANCES_TO_MODE_TRACKING  - Updates the 'number of entrances to a mode' tracking variables.
;
;   CORE_FORCE_PRIMARY_AS_NEXT_MODE         - Forces the primary mode to be the next mode on mode change
;                                             next requests.
;   CORE_INIT_FROM_COMMUNICATIONS_FAILURE   - Initializes the system due to a communications failure.
;
;   CORE_LOAD_ICB_FROM_EEPROM               - Loads the Information and Control Block from EEPROM into
;                                             the work buffer for processing.
;                                             This will handler powerup and powerdown of eeprom.
;
;   CORE_STORE_ICB_TO_EEPROM                - Copy ICB data in internal memory into EEPROM.
;                                             This will handler powerup and powerdown of eeprom.
;
;   CORE_STORE_BUFFER_TO_EEPROM             - Copy data buffer in internal memory into EEPROM.
;                                             This will handler powerup and powerdown of eeprom.
;
;   CORE_GENERATE_RANDOM_NUMBER             - Generates a random number from 0 - 255.
;   CORE_SET_RANDOM_SEED                    - Sets the base number for the random number generator.
;
; Purpose    :  Declare and define the macro provided by the core software
;
; File Change History:
;
;               05/22/2000 HSB - Created coreMac.h
;
; M851 - Development:
;
;               11/20/2001 NLS - Modified for M851
;               06/18/2002 NLS - ECR#851-2020617-353
;                                Added macro CORE_GENERATE_RANDOM_NUMBER
;                                Added macro CORE_SET_RANDOM_SEED
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


      
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORETASK_DISPLAYTOD_REQUEST
;
; Description:  TOD Resource will request a display event to be passed to the application.
;
; Assumptions:  None
;
; Usage      :  CORETASK_DISPLAYTOD_REQUEST
;       
; Input(s)   :  None
;
; Output(s)  :  None
;
; Destroyed  :  ??? NLS put in all the destroyed section of this file...
;
; Macro Change History:
;
;               11/20/2001 NLS - Created macro
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORETASK_DISPLAYTOD_REQUEST     MACRO

                car coreRequestDispUpdateTODTask

        CALLS   SUBROUTINE , 'coreRequestDispUpdateTODTask'

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORETASK_DISPLAYTMR_REQUEST
;
; Description:  TMR Resource will request a display event to be passed to the application.
;
; Assumptions:  None
;
; Usage      :  CORETASK_DISPLAYTOD_REQUEST
;       
; Input(s)   :  None
;
; Output(s)  :  None
;
; Macro Change History:
;
;               11/20/2001 NLS - Created macro
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORETASK_DISPLAYTMR_REQUEST     MACRO

                car coreRequestDispUpdateTMRTask

        CALLS   SUBROUTINE , 'coreRequestDispUpdateTMRTask'

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORETASK_DISPLAYSTP_REQUEST
;
; Description:  STP Resource will request a display event to be passed to the application.
;
; Assumptions:  None
;
; Usage      :  CORETASK_DISPLAYSTP_REQUEST
;       
; Input(s)   :  None
;
; Output(s)  :  None
;
; Macro Change History:
;
;               11/20/2001 NLS - Created macro
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORETASK_DISPLAYSTP_REQUEST     MACRO

                car coreRequestDispUpdateSTPTask

        CALLS   SUBROUTINE , 'coreRequestDispUpdateSTPTask'

        ENDM

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORETASK_DISPLAYSYN_REQUEST
;
; Description:  SYN Resource will request a display event to be passed to the application.
;
; Assumptions:  None
;
; Usage      :  CORETASK_DISPLAYSYN_REQUEST
;       
; Input(s)   :  None
;
; Output(s)  :  None
;
; Macro Change History:
;
;               11/20/2001 NLS - Created macro
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORETASK_DISPLAYSYN_REQUEST     MACRO

                car coreRequestDispUpdateSYNTask

        CALLS   SUBROUTINE , 'coreRequestDispUpdateSYNTask'

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORETASK_EVENT_GENERATION_REQUEST
;
; Description:  Resource Event generation Request 
;
; Assumptions:  Only a resource will generate this event request.
;               The foreground application must setup the resource to generate an event.
;
; Usage      :  CORETASK_EVENT_GENERATION_REQUEST
;       
; Input(s)   :  None
;
; Output(s)  :  None
;
; Destroyed  :  BReg
;
; Macro Change History:
;
;               05/22/2000 HSB - Created macro
;               11/20/2001 NLS - Modified for M851
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORETASK_EVENT_GENERATION_REQUEST   MACRO   

                car     coreRequestEventGenerationTask          

        CALLS   SUBROUTINE , 'coreRequestEventGenerationTask'

        ENDM




;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_REQUEST_MELODY_POPUP_CANCEL
;
; Description:  When set, any active melody during a popup will be cancelled by any switch depression
;               and the event COREEVENT_MELODYPOPUPCANCEL will be passed to the application.
;
; Assumptions:  None
;
; Usage      :  CORE_REQUEST_MELODY_POPUP_CANCEL
;       
; Input(s)   :  None
;
; Output(s)  :  None
;
; Macro Change History:
;
;               11/21/2001 NLS - Created for M851
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_REQUEST_MELODY_POPUP_CANCEL   MACRO   

                car     coreSetAcknowledgePopupMelodyRequest

        CALLS   SUBROUTINE , 'coreSetAcknowledgePopupMelodyRequest'

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORETASK_POPUP_REQUEST_BCK
;
; Description:  Popup request for a Backup Resouce
;
; Assumptions:  The Popup Resource Queue Entry (COREResQueueEntry) will contain 
;               the application to initiate on a popup.
;               Note that the Popup queue is treated as a Pigeonhole for the Resources.
;
; Usage      :  CORETASK_POPUP_REQUEST_BCK
;       
; Input(s)   :  AReg = Application Index
;               LReg = Backup Resource Index
;
; Output(s)  :  None
;
;               Destroys the (AReg,IYReg,HLReg)
;
; Macro Change History:
;
;               11/21/2001 NLS - Created for M851
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORETASK_POPUP_REQUEST_BCK  MACRO

                car     coreRequestBCKPopup

        CALLS   SUBROUTINE , 'coreRequestBCKPopup'

        ENDM



;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORETASK_POPUP_CANCEL_BCK
;
; Description:  Cancel popup request for a Backup Resouce
;
; Assumptions:  None
;
; Usage      :  CORETASK_POPUP_CANCEL_BCK
;       
; Input(s)   :  LReg = Backup Resource Index
;
; Output(s)  :  None
;
;               Destroys the (AReg,IYReg,HLReg)
;
; Macro Change History:
;
;               11/21/2001 NLS - Created for M851
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORETASK_POPUP_CANCEL_BCK  MACRO

                car     coreCancelBCKPopup

        CALLS   SUBROUTINE , 'coreCancelBCKPopup'

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORETASK_POPUP_REQUEST_TZC
;
; Description:  Popup request for a Time Zone Check Resouce
;
; Assumptions:  The Popup Resource Queue Entry (COREResQueueEntry) will contain 
;               the application to initiate on a popup.
;               Note that the Popup queue is treated as a Pigeonhole for the Resources.
;
; Usage      :  CORETASK_POPUP_REQUEST_TZC
;       
; Input(s)   :  AReg = Application Index
;               LReg = Time Zone Check Resource Index
;
; Output(s)  :  None
;
;               Destroys the (AReg,IYReg,HLReg)
;
; Macro Change History:
;
;               07/13/2000 HSB - Created Macro
;               11/20/2001 NLS - Modified for M851
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORETASK_POPUP_REQUEST_TZC  MACRO

                car     coreRequestTZCPopup

        CALLS   SUBROUTINE , 'coreRequestTZCPopup'

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORETASK_POPUP_CANCEL_TZC
;
; Description:  Cancel popup request for a Time Zone Check Resouce
;
; Assumptions:  None
;
; Usage      :  CORETASK_POPUP_CANCEL_TZC
;       
; Input(s)   :  LReg = Time Zone Check Resource Index
;
; Output(s)  :  None
;
;               Destroys the (AReg,IYReg,HLReg)
;
; Macro Change History:
;
;               11/21/2001 NLS - Created for M851
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORETASK_POPUP_CANCEL_TZC  MACRO

                car     coreCancelTZCPopup

        CALLS   SUBROUTINE , 'coreCancelTZCPopup'

        ENDM

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORETASK_POPUP_REQUEST_TMR
;
; Description:  Popup request for a Timer Resouce
;
; Assumptions:  The Popup Resource Queue Entry (COREResQueueEntry) will contain 
;               the application to initiate on a popup.
;               Note that the Popup queue is treated as a Pigeonhole for the Resources.
;
; Usage      :  CORETASK_POPUP_REQUEST_TMR
;       
; Input(s)   :  AReg = Application Index
;               LReg = Timer Resource Index
;
; Output(s)  :  None
;
;               Destroys the (AReg,IYReg,HLReg)
;
; Macro Change History:
;
;               07/13/2000 HSB - Created Macro
;               11/20/2001 NLS - Modified for M851
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORETASK_POPUP_REQUEST_TMR  MACRO

                car     coreRequestTMRPopup

        CALLS   SUBROUTINE , 'coreRequestTMRPopup'

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORETASK_POPUP_CANCEL_TMR
;
; Description:  Cancel popup request for a Timer Resouce
;
; Assumptions:  None
;
; Usage      :  CORETASK_POPUP_CANCEL_TMR
;       
; Input(s)   :  LReg = Timer Resource Index
;
; Output(s)  :  None
;
;               Destroys the (AReg,IYReg,HLReg)
;
; Macro Change History:
;
;               11/21/2001 NLS - Created for M851
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORETASK_POPUP_CANCEL_TMR  MACRO

                car     coreCancelTMRPopup

        CALLS   SUBROUTINE , 'coreCancelTMRPopup'

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORETASK_POPUP_REQUEST_STP
;
; Description:  Popup request for a Stopwatch Check Resouce
;
; Assumptions:  The Popup Resource Queue Entry (COREResQueueEntry) will contain 
;               the application to initiate on a popup.
;               Note that the Popup queue is treated as a Pigeonhole for the Resources.
;
; Usage      :  CORETASK_POPUP_REQUEST_STP
;       
; Input(s)   :  AReg = Application Index
;               LReg = Stopwatch Resource Index
;
; Output(s)  :  None
;
;               Destroys the (AReg,IYReg,HLReg)
;
; Macro Change History:
;
;               07/13/2000 HSB - Created Macro
;               11/20/2001 NLS - Modified for M851
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORETASK_POPUP_REQUEST_STP  MACRO

                car     coreRequestSTPPopup

        CALLS   SUBROUTINE , 'coreRequestSTPPopup'

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORETASK_POPUP_CANCEL_STP
;
; Description:  Cancel popup request for a Stopwatch Resouce
;
; Assumptions:  None
;
; Usage      :  CORETASK_POPUP_CANCEL_STP
;       
; Input(s)   :  LReg = Stopwatch Resource Index
;
; Output(s)  :  None
;
;               Destroys the (AReg,IYReg,HLReg)
;
; Macro Change History:
;
;               11/21/2001 NLS - Created for M851
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORETASK_POPUP_CANCEL_STP  MACRO

                car     coreCancelSTPPopup

        CALLS   SUBROUTINE , 'coreCancelSTPPopup'

        ENDM

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORETASK_POPUP_REQUEST_SYN
;
; Description:  Popup request for a Synchro Timer Resouce
;
; Assumptions:  The Popup Resource Queue Entry (COREResQueueEntry) will contain 
;               the application to initiate on a popup.
;               Note that the Popup queue is treated as a Pigeonhole for the Resources.
;
; Usage      :  CORETASK_POPUP_REQUEST_SYN
;
; Input(s)   :  AReg = Application Index
;               LReg = Synchro Timer Resource Index
;
; Output(s)  :  None
;
;               Destroys the (AReg,IYReg,HLReg)
;
; Macro Change History:
;
;               07/13/2000 HSB - Created Macro
;               11/20/2001 NLS - Modified for M851
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORETASK_POPUP_REQUEST_SYN  MACRO

                car     coreRequestSYNPopup

        CALLS   SUBROUTINE , 'coreRequestSYNPopup'

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORETASK_POPUP_CANCEL_SYN
;
; Description:  Cancel popup request for a Synchro Resouce
;
; Assumptions:  None
;
; Usage      :  CORETASK_POPUP_CANCEL_SYN
;       
; Input(s)   :  LReg = Backup Resource Index
;
; Output(s)  :  None
;
;               Destroys the (AReg,IYReg,HLReg)
;
; Macro Change History:
;
;               11/21/2001 NLS - Created for M851
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORETASK_POPUP_CANCEL_SYN  MACRO

                car     coreCancelSYNPopup

        CALLS   SUBROUTINE , 'coreCancelSYNPopup'

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_SET_POPDOWN_STATE
;
; Description:  Macro called in the State entry event handling of a state that will indicate
;               to the core to popdown to a different state if a popup occurs
;
; Assumptions:  None
;
; Usage      :  CORE_SET_POPDOWN_STATE POPDOWNSTATE
;       
; Input(s)   :  POPDOWNSTATE = state index to return after a popdown request
;
; Output(s)  :  None
;
;               Destroys the (BReg)
;
; Macro Change History:
;
;               06/06/2000 HSB - Created macro
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_SET_POPDOWN_STATE  MACRO   POPDOWNSTATE

                ld      B, #POPDOWNSTATE
                car     coreSetPopDownState

        CALLS   SUBROUTINE , 'coreSetPopDownState'

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORETASK_COMM_DATA_PACKET_AVAILABLE
;
; Description:  Set a core task event to send the COREEVENT_COMMDATAPACKETREADY to the application 
;
; Assumptions:  This is set only while in Communication mode.
;
; Usage      :  CORETASK_COMM_DATA_PACKET_AVAILABLE
;       
; Input(s)   :  None
;
; Output(s)  :  None
;
;               Destroys the (HLReg)
;
; Macro Change History:
;
;               06/01/2000 HSB - Created macro
;
; M851 - Development:
;
;               11/20/2001 NLS - Modified for M851
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORETASK_COMM_DATA_PACKET_AVAILABLE MACRO   
            
                ld      HL, #CORETaskFlag2
                or      [HL], #bCORECommPacketReceivedTask

                ld      HL, #COREInterruptFlag2
                or      [HL], #bCORECommLinkInt

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORETASK_COMM_FIRSTBYTEOFPACKET_RECEIVED
;
; Description:  Set a core task event to send the COREEVENT_COMMFIRSTBYTERECEIVED to the application 
;
; Assumptions:  This is set only while in Communication mode.
;
; Usage      :  CORETASK_COMM_FIRSTBYTEOFPACKET_RECEIVED
;       
; Input(s)   :  None
;
; Output(s)  :  None
;
;               Destroys the (HLReg)
;
; Macro Change History:
;
;               06/01/2000 HSB - Created macro
;               11/20/2001 NLS - Modified for M851
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORETASK_COMM_FIRSTBYTEOFPACKET_RECEIVED    MACRO   
            
                ld      HL, #CORETaskFlag2
                or      [HL], #bCORECommPacketFirstByteRecTask

                ld      HL, #COREInterruptFlag2
                or      [HL], #bCORECommLinkInt


        ENDM



;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORETASK_COMM_TRANSMIT_COMPLETE
;
; Description:  Set a core task event to send the COREEVENT_COMMTRANSMITCOMPLETE to the application 
;
; Assumptions:  This is set only while in Communication mode.
;
; Usage      :  CORETASK_COMM_TRANSMIT_COMPLETE
;       
; Input(s)   :  None
;
; Output(s)  :  None
;
;               Destroys the (HLReg)
;
; Macro Change History:
;
;               03/13/2002 NLS - Created macro for M851
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORETASK_COMM_TRANSMIT_COMPLETE    MACRO   
            
                ld      HL, #CORETaskFlag2
                or      [HL], #bCORECommTransmitCompleteTask

                ld      HL, #COREInterruptFlag2
                or      [HL], #bCORECommLinkInt

        ENDM




;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_CALL_ALL_BACKGROUND_HANDLERS
;
; Description:  Call the background handlers of all available applications
;               with an event passed as an argument.
;
; Assumptions:  None
;
; Usage      :  CORE_CALL_ALL_BACKGROUND_HANDLERS BackgroundEvent
;
; Input(s)   :  COREBackgroundEvent can be one of the following events:
;
;                   COREEVENT_PORINIT
;                   COREEVENT_INIT
;                   COREEVENT_REFRESH
;                   COREEVENT_TASKEXIT
;                   COREEVENT_PEEK
;                   COREEVENT_TIMERFINISHED
;                   COREEVENT_PRIMARYMODEICONUPDATE
;                   COREEVENT_UPDATEDATABASEHEADER
;
; Output(s)  :  None
;
; Destroyed  :  None
;
; Macro Change History:
;
;               06/09/2000 HSB - Created macro
;
; M851 - Development:
;
;               11/20/2001 NLS - Modified for M851
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_CALL_ALL_BACKGROUND_HANDLERS  MACRO   BackgroundEvent

                ld      B, #BackgroundEvent
                car     coreCallBackgroundHandlerAll

        CALLS   SUBROUTINE , 'coreCallAllRefreshHandler'

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_CALL_ALL_BACKGROUND_HANDLERS_EXCEPTTODCOMM
;
; Description:  Call the background handlers of all available applications
;               except TOD and COMM with an event passed as an argument.
;
; Assumptions:  None
;
; Usage      :  CORE_CALL_ALL_BACKGROUND_HANDLERS_EXCEPTTODCOMM BackgroundEvent
;
; Input(s)   :  COREBackgroundEvent can be one of the following events:
;
;                   COREEVENT_PORINIT
;                   COREEVENT_INIT
;                   COREEVENT_REFRESH
;                   COREEVENT_TASKEXIT
;                   COREEVENT_PEEK
;                   COREEVENT_TIMERFINISHED
;                   COREEVENT_PRIMARYMODEICONUPDATE
;                   COREEVENT_UPDATEDATABASEHEADER
;
; Output(s)  :  None
;
; Destroyed  :  None
;
; Macro Change History:
;
;               02/24/2002 NLS - Created macro for m851
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_CALL_ALL_BACKGROUND_HANDLERS_EXCEPTTODCOMM  MACRO   BackgroundEvent

                ld      B, #BackgroundEvent
                car     coreCallBackgroundHandlerAllExceptTODAndCOMM

        CALLS   SUBROUTINE , 'coreCallBackgroundHandlerAllExceptTODAndCOMM'

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_CALL_BACKGROUND_HANDLER
;
; Description:  Call the background handler of an application
;
; Assumptions:  None
;
; Usage      :  CORE_CALL_BACKGROUND_HANDLER BackgroundEvent
;
; Input(s)   :  AReg - Application Index
;
;               BackgroundEvent can be one of the following events:
;
;                   COREEVENT_PORINIT
;                   COREEVENT_INIT
;                   COREEVENT_REFRESH
;                   COREEVENT_TASKEXIT
;                   COREEVENT_PEEK
;                   COREEVENT_TIMERFINISHED
;                   COREEVENT_PRIMARYMODEICONUPDATE
;                   COREEVENT_UPDATEDATABASEHEADER
;
; Output(s)  :  None
;
; Destroyed  : ALL
;
; Macro Change History:
;
;               06/01/2000 HSB - Created macro
;
; M851 - Development:
;
;               11/20/2001 NLS - Modified for M851
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_CALL_BACKGROUND_HANDLER   MACRO   BackgroundEvent

                ld      B, #BackgroundEvent
                car     coreCallBackgroundHandler

        CALLS   SUBROUTINE , 'coreCallBackgroundHandler'

        ENDM

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_CALL_MODE_NAME
;
; Description:  Displays the Mode Banner for the specified application.
;               Used by foreground application banner state handler.
;
; Assumptions:  None  
;
; Usage      :  CORE_CALL_MODE_NAME
;
; Input(s)   :  AReg - Application Index
;   
; Output(s)  :  None
;
; Destroyed  :  (IYReg, IXReg, BReg, AReg, HLReg)
;
; Macro Change History:
;
;               06/01/2000 HSB - Created macro
;               11/20/2001 NLS - Modified for M851
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_CALL_MODE_NAME     MACRO

                car coreCallModeName

        CALLS   SUBROUTINE , 'coreCallModeName'

        ENDM



;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_CHECK_DATABASE_VALID
;
; Description:  Check if the specified application database section is valid
;
; Assumptions:  None
;
; Usage      :  CORE_CHECK_DATABASE_VALID
;       
; Input(s)   :  AReg - Application Index
;
; Output(s):    bZeroFlag = 0 means the database is invalid
;               bZeroFlag = 1 means the database is valid
;
; Destroyed:    None
;
; Macro Change History:
;
;               06/08/2000 HSB - Created macro
;
; M851 - Development:
;
;               11/20/2001 NLS - Modified for M851
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_CHECK_DATABASE_VALID MACRO 
                
                car     coreCheckValidDatabase

        CALLS   SUBROUTINE, 'coreCheckValidDatabase'
    
        ENDM

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_INVALIDATE_DATABASE
;
; Description:  Make the database section of specified application invalid
;
; Assumptions:  None
;
; Usage      :  CORE_INVALIDATE_DATABASE
;       
; Input(s)   :  AReg - Application Index
;
; Output(s)  :  None
;
; Destroyed  :  None
;
; Macro Change History:
;
;               06/08/2000 HSB - Created macro
;
; M851 - Development:
;
;               11/20/2001 NLS - Modified for M851
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_INVALIDATE_DATABASE MACRO 
                
                car     coreInvalidateDatabase

        CALLS   SUBROUTINE , 'coreInvalidateDatabase'

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_VALIDATE_DATABASE
;
; Description:  Make the database section of specified application valid
;
; Assumptions:  None
;
; Usage      :  CORE_VALIDATE_DATABASE
;       
; Input(s)   :  AReg - Application Index
;
; Output(s)  :  None
;
; Destroyed  :  None
;
; Macro Change History:
;
;               06/08/2000 HSB - Created macro
;
; M851 - Development:
;
;               11/20/2001 NLS - Modified for M851
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_VALIDATE_DATABASE MACRO 
                
                car     coreValidateDatabase

        CALLS   SUBROUTINE , 'coreValidateDatabase'

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_CHECK_CODE_VALID
;
; Description:  Check if the specified application code section is valid
;
; Assumptions:  None
;
; Usage      :  CORE_CHECK_CODE_VALID
;       
; Input(s)   :  AReg - Application Index
;
; Output(s):    bZeroFlag = 0 means the code section is invalid
;               bZeroFlag = 1 means the code section is valid
;
; Destroyed:    None
;
; Macro Change History:
;
;               11/20/2001 NLS - Created macro for M851
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_CHECK_CODE_VALID   MACRO 
                
                car     coreCheckValidCode

        CALLS   SUBROUTINE, 'coreCheckValidCode'
    
        ENDM

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_INVALIDATE_CODE
;
; Description:  Make the code section section of specified application invalid
;
; Assumptions:  None
;
; Usage      :  CORE_INVALIDATE_CODE
;       
; Input(s)   :  AReg - Application Index
;
; Output(s)  :  None
;
; Destroyed  :  None
;
; Macro Change History:
;
;               11/20/2001 NLS - Created macro for M851
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_INVALIDATE_CODE    MACRO 
                
                car     coreInvalidateCode

        CALLS   SUBROUTINE , 'coreInvalidateCode'

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_VALIDATE_CODE
;
; Description:  Make the code section of specified application valid
;
; Assumptions:  None
;
; Usage      :  CORE_VALIDATE_CODE
;       
; Input(s)   :  AReg - Application Index
;
; Output(s)  :  None
;
; Destroyed  :  None
;
; Macro Change History:
;
;               11/20/2001 NLS - Created macro for M851
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_VALIDATE_CODE  MACRO 
                
                car     coreValidateCode

        CALLS   SUBROUTINE , 'coreValidateCode'

        ENDM

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_CHECK_PASSWORD_REQUIRED
;
; Description:  Check if password is required prior to application default state entry
;
; Assumptions:  None
;
; Usage      :  CORE_CHECK_PASSWORD_REQUIRED
;       
; Input(s)   :  AReg - Application Index
;
; Output(s):    bZeroFlag = 0 means that password is required for application default state entry
;               bZeroFlag = 1 means that password is not required
;
; Destroyed:    None
;
; Macro Change History:
;
;               11/20/2001 NLS - Created macro for M851
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_CHECK_PASSWORD_REQUIRED MACRO 
                
                car     coreCheckPasswordRequired

        CALLS   SUBROUTINE, 'coreCheckPasswordRequired'
    
        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name:   CORE_DATABASE_MODIFIED_BY_USER
;
; Description:  Database was modified by the user
;
; Assumptions:  NONE
;
; Usage:        CORE_DATABASE_MODIFIED_BY_USER
;
; Input(s):     AReg=Application Index
;
; Output(s):    None
;
; Destroyed:    HLReg
;
; Macro Change History:
;
;               11/20/2001 NLS - Created Macro for M851
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_DATABASE_MODIFIED_BY_USER  MACRO

                car     coreSetDatabaseModified

        CALLS   SUBROUTINE , 'coreSetDatabaseModified'

        ENDM




;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_CANCEL_ANY_PTZ_POPUPS
;
; Description:  Cancel any PTZ resources popup
;
; Assumptions:  None
;
; Usage      :  CORE_CANCEL_ANY_PTZ_POPUPS
;       
; Input(s)   :  None
;
; Output(s)  :  None
;
; Destroyed  :  HLReg,AReg,BReg
;
; Macro Change History:
;
;               06/09/2000 HSB - Created macro
;               11/20/2001 NLS - Modified for M851
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_CANCEL_ANY_PTZ_POPUPS MACRO 
                
                car     coreCancelAnyPTZBasedPopups

        CALLS   SUBROUTINE , 'coreCancelAnyPTZBasedPopups'

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_CANCEL_ALL_POPUPS
;
; Description:  Cancel all popups
;
; Assumptions:  None
;
; Usage      :  CORE_CANCEL_ALL_POPUPS
;       
; Input(s)   :  None
;
; Output(s)  :  None
;
; Destroyed  :  HLReg,AReg
;
; Macro Change History:
;
;               06/09/2000 HSB - Created macro
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_CANCEL_ALL_POPUPS MACRO 
                
                car     coreCancelAllPopups

        CALLS   SUBROUTINE , 'coreCancelAllPopups'

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_MASK_KEYS
;
; Description:  Prevent certain switch events from beeing passed to the foreground application.
;
; Assumptions:  None
;
; Usage      :  CORE_MASK_KEYS KeyMaskBits
;       
; Input(s)   :  KeyMaskBits =   bCORESwitch1    
;                               bCORESwitch2    
;                               bCORESwitch3    
;                               bCORECWSwitch   
;                               bCORECCWSwitch
;                               bCOREELSwitch   
;
; Output(s)  : None
;
; Destroyed  : BReg
;
; Macro Change History:
;
;               06/06/2000 HSB - Created macro
;
; M851 - Development:
;
;               11/20/2001 NLS - Modified for M851
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_MASK_KEYS MACRO KeyMaskBits

                ld      B, [COREKeyMask]
                and     B, #@LOW(~(KeyMaskBits))
                ld      [COREKeyMask], B

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_ALLOW_KEYS
;
; Description:  Enable certain switch events to be passed to the foreground application
;
; Assumptions:  None
;
; Usage      :  CORE_ALLOW_KEYS KeyMaskBits
;       
; Input(s)   :  KeyMaskBits =   bCORESwitch1    
;                               bCORESwitch2    
;                               bCORESwitch3    
;                               bCORECWSwitch   
;                               bCORECCWSwitch
;                               bCOREELSwitch   
;
; Output(s)  :  None
;
; Destroyed  :  BReg
;
; Macro Change History:
;
;               06/26/2000 HSB - Created macro
;
; M851 - Development:
;
;               11/20/2001 NLS - Modified for M851
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_ALLOW_KEYS MACRO KeyMaskBits
                
                ld      B, #KeyMaskBits
                ld      [COREKeyMask], B

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_REQ_MODE_CHANGE
;
; Description:  Requests a mode change to a specified mode.
;               If the requested mode is not active, then the system will find
;               the next active mode.
;
; Assumptions:  None
;
; Usage      :  CORE_REQ_MODE_CHANGE
;       
; Input(s)   :  AReg - Application Index
;
; Output(s)  :  None
;
; Destroyed  :  BReg 
;
; Macro Change History:
;
;               05/26/2000 HSB - Created macro
;
; M851 - Development:
;
;               11/20/2001 NLS - Modified for M851
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_REQ_MODE_CHANGE MACRO
                
                car     coreRequestModeChange

        CALLS   SUBROUTINE , 'coreRequestModeChange'

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_REQ_MODE_CHANGE_NEXT
;
; Description:  Requests a mode change to the next mode with primary mode peek operation.
;
;               If application is active for more than a specified time, then
;               it will initiate a mode change to the PRIMARY mode.  This will
;               enable the system peek to primary mode.
;
;               If the user, releases the mode switch depression within a specified time period,
;               the system will cancel the mode change request.
;
; Assumptions:  None
;
; Usage      :  CORE_REQ_MODE_CHANGE_NEXT
;       
; Input(s)   :  None
;
; Output(s)  :  None
;
; Destroyed  :  BReg 
;
; Macro Change History:
;
;               05/10/2000 HSB - Created macro
;
; M851 - Development:
;
;               11/20/2001 NLS - Modified for M851
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_REQ_MODE_CHANGE_NEXT MACRO
                
                car     coreRequestModeChangeNext
        
        CALLS   SUBROUTINE , 'coreRequestModeChangeNext'

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_REQ_MODE_CHANGE_NEXT_NO_PEEK
;
; Description:  Requests a mode change to the next mode without peek to primary mode.
;
;               If application is active for more than a specified time, then
;               it will initiate a mode change to the PRIMARY mode.
;
; Assumptions:  None
;
; Usage      :  CORE_REQ_MODE_CHANGE_NEXT_NO_PEEK
;       
; Input(s)   :  None
;
; Output(s)  :  None
;
; Destroyed  :  BReg 
;
; Macro Change History:
;
;               11/21/2001 NLS - Created macro for m851
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_REQ_MODE_CHANGE_NEXT_NO_PEEK MACRO
                
                car     coreRequestModeChangeNextNoPeek
        
        CALLS   SUBROUTINE , 'coreRequestModeChangeNextNoPeek'

        ENDM



;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_REQ_STATE_CHANGE
;
; Description:  Request for a state change.
;
; Assumptions:  Required parameters are already setup prior to calling this macro.
;               No checking is done to verify a valid state input
;
; Usage      :  CORE_REQ_STATE_CHANGE
;       
; Input(s)   :  BReg - State within the current mode to proceed to.
;
; Output(s)  :  None
;
; Destroyed  :  BReg 
;
; Macro Change History:
;
;               03/16/2000 HSB - Created macro
;
; M851 - Development:
;
;               11/20/2001 NLS - Modified for M851
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_REQ_STATE_CHANGE   MACRO
                
                car     coreRequestStateChange
        
        CALLS   SUBROUTINE , 'coreRequestStateChange'

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_REQ_STATE_CHANGE_NO_CLEAR_DISPLAY
;
; Description:  Request for a state change without clearing the entrire display.
;
; Assumptions:  Required parameters are already setup prior to calling this macro.
;               No checking is done to verify a valid state input
;
; Usage      :  CORE_REQ_STATE_CHANGE_NO_CLEAR_DISPLAY
;       
; Input(s)   :  BReg - State within the current mode to proceed to.
;
; Output(s)  :  None
;
; Destroyed  :  BReg 
;
; Macro Change History:
;
;               11/29/2001 NLS - Created macro for M851
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_REQ_STATE_CHANGE_NO_CLEAR_DISPLAY   MACRO
                
                car     coreRequestStateChangeNoClearDisplay
        
        CALLS   SUBROUTINE , 'coreRequestStateChangeNoClearDisplay'

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_REQ_TIMEOUT_HIRES
;
; Description:  Request for a high resolution timeout.
;
; Assumptions:  None
;
; Usage      :  CORE_REQ_TIMEOUT_HIRES TimeoutValue
;       
; Input(s)   :  TimeoutValue    - value (in 125ms increments) before event is passed to the foreground application.
;
;               System Defined Timeout Definitions:
;
;                   TIMEOUTHIRES_1SEC  
;                   TIMEOUTHIRES_1P5SEC
;                   TIMEOUTHIRES_2SEC  
;                   TIMEOUTHIRES_3SEC  
;                   TIMEOUTHIRES_4SEC  
;                   TIMEOUTHIRES_5SEC
;
; Output(s)  :  None
;
; Destroyed  :  AReg,BReg 
;
; Macro Change History:
;
;               06/08/2000 HSB - Created macro
;
; M851 - Development:
;
;               11/20/2001 NLS - Modified for M851
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_REQ_TIMEOUT_HIRES  MACRO  TimeoutValue
                
                ld      B,  #TimeoutValue
                car    coreRequestTimeoutHiRes

        CALLS   SUBROUTINE , 'coreRequestTimeoutHiRes'

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_REQ_TIMEOUT_LORES
;
; Description:  Request for a Low resolution timeout.
;
; Assumptions:  None
;
; Usage      :  CORE_REQ_TIMEOUT_LORES TimeoutValue
;       
; Input(s)   :  TimeoutValue    - value in seconds before event is passed to the foreground application.
;
;               System Defined Timeout Definitions:
;
;                   TIMEOUTLORES_2SEC  
;                   TIMEOUTLORES_3SEC
;                   TIMEOUTLORES_4SEC  
;                   TIMEOUTLORES_10SEC  
;                   TIMEOUTLORES_20SEC
;
; Output(s)  :  None
;
; Destroyed  :  AReg,BReg 
;
; Macro Change History:
;
;               06/08/2000 HSB - Created macro
;
; M851 - Development:
;
;               11/20/2001 NLS - Modified for M851
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_REQ_TIMEOUT_LORES  MACRO  TimeoutValue
                
                ld      B,  #TimeoutValue
                car     coreRequestTimeoutLoRes

        CALLS   SUBROUTINE , 'coreRequestTimeoutLoRes'

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_REQ_TIMEOUT_STICKY
;
; Description:  Request for a Sticky timeout.
;
; Assumptions:  Input parameters are set up prior to macro usage.
;
; Usage      :  CORE_REQ_TIMEOUT_STICKY TimeoutValue
;       
; Input(s)   :  TimeoutValue    - value (in 125ms increments) before event is passed to the foreground application.
;
;               System Defined Timeout Definitions:
;
;                   TIMEOUTHIRES_1SEC
;                   TIMEOUTHIRES_1P5SEC
;                   TIMEOUTHIRES_2SEC
;                   TIMEOUTHIRES_3SEC
;                   TIMEOUTHIRES_4SEC
;                   TIMEOUTHIRES_5SEC
;
; Output(s)  :  None
;
; Destroyed  :  AReg,BReg 
;
; Macro Change History:
;
;               06/08/2000 HSB - Created macro
;
; M851 - Development:
;
;               11/20/2001 NLS - Modified for M851
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_REQ_TIMEOUT_STICKY MACRO  TimeoutValue
                
                ld      B,  #TimeoutValue
                car     coreRequestTimeoutSticky

        CALLS   SUBROUTINE , 'coreRequestTimeoutSticky'

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_REQ_PEEK_APP_TYPE
;
; Description:  Request the system to search for a specified application type and execute that
;               application's background handler with the background event COREEVENT_PEEK.
;
; Assumptions:  None
;
; Usage      :  CORE_REQ_PEEK_APP_TYPE
;       
; Input(s)   :  BReg - Application Type
;
;               The system provides the following application type definition.
;
;                   COREAPPTYPESYSTEM      
;                   COREAPPTYPECOMM        
;                   COREAPPTYPEOPTION      
;                   COREAPPTYPETOD         
;                   COREAPPTYPEDATE        
;                   COREAPPTYPECHRONO      
;                   COREAPPTYPETIMER       
;                   COREAPPTYPESYNCHROTIMER
;                   COREAPPTYPECOUNTER     
;                   COREAPPTYPECONTACT     
;                   COREAPPTYPETASK        
;                   COREAPPTYPENOTES       
;                   COREAPPTYPESCHEDULE    
;                   COREAPPTYPETIDE        
;                   COREAPPTYPEDEMO        
;                   COREAPPTYPEGAME        
;                   COREAPPTYPEALARM       
;                   COREAPPTYPEAPPOINTMENT 
;                   COREAPPTYPEOCCASION    
;
; Output(s)  :  None
;
; Destroyed  :  BReg 
;
; Macro Change History:
;
;               05/27/2000 HSB - Created macro
;
; M851 - Development:
;
;               11/20/2001 NLS - Modified for M851
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_REQ_PEEK_APP_TYPE  MACRO

                car     coreCallBackgroundHandlerPeekAppType

        CALLS   SUBROUTINE , 'coreCallBackgroundHandlerPeekAppType'

        ENDM



;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_REQ_POPDOWN
;
; Description:  Request a popdown
;
; Assumptions:  None
;
; Usage      :  CORE_REQ_POPDOWN
;       
; Input(s)   :  None
;
; Output(s)  :  None
;
; Destroyed  :  BReg 
;
; Macro Change History:
;
;               06/08/2000 HSB - Created macro
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_REQ_POPDOWN    MACRO  
                
                car    coreRequestPopupDown

        CALLS   SUBROUTINE , 'coreRequestPopupDown'

        ENDM



;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_ENABLE_2HZ_BLINKING
;
; Description:  Enables the 2Hz Blinking 
;
; Assumptions:  Called only in the LCD module blinking subroutine.
;
; Usage      :  CORE_ENABLE_2HZ_BLINKING 
;       
; Input(s)   :  None
;
; Output(s)  :  None
;
; Destroyed  :  AReg,BReg 
;
; Macro Change History:
;
;               06/13/2000 HSB - Created macro
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_ENABLE_2HZ_BLINKING    MACRO  
               
                ; Set the core request flags in order to enable 2Hz blinking
                car    coreRequest2HzBlinking

        CALLS   SUBROUTINE , 'coreRequest2HzBlinking'

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_CANCEL_2HZ_BLINK
;
; Description:  Cancels the 2Hz Blinking 
;
; Assumptions:  None
;
; Usage      :  CORE_CANCEL_2HZ_BLINK 
;       
; Input(s)   :  None
;
; Output(s)  :  None
;
; Destroyed  :  HLReg
;
; Macro Change History:
;
;               04/22/2002 NLS - Created macro
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_CANCEL_2HZ_BLINK   MACRO

                ; clears the core request flag that enables 2hz blinking
                car     coreCancel2HzBlinking

        CALLS   SUBROUTINE, 'coreCancel2HzBlinking'

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_REQ_BLINK_2HZ
;
; Description:  Request Blinking at 2Hz 
;               Refer to "Blink flag equates" in lcd.h for BlinkingArgument
;
; Assumptions:  None
;
; Usage      :  CORE_REQ_BLINK_2HZ BlinkingArgument
;       
; Input(s)   :  BlinkingArgument - Blink name for the 2hz generic blinking
;
;               System definitions for blinking argument:
;
;                   CHR_FLAG        - blink stopwatch icon
;                   MOON_FLAG       - blink moon icon
;                   ACLK_FLAG       - blink alarm clock icon
;                   ARROW_FLAG      - blink arrow icon
;                   TAIL_FLAG       - blink tail icon
;                   TMR_FLAG        - blink hourglass icon
;                   NOTE_FLAG       - blink note icon
;                   P_FLAG          - blink P icon
;                   A_FLAG          - blink A icon
;                   L_FLAG          - blink L icon
;
; Output(s)  :  None
;
; Destroyed  :  AReg,BReg 
;
; Macro Change History:
;
;               06/09/2000 HSB - Created macro
;
; M851 - Development:
;
;               11/20/2001 NLS - Modified for M851
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_REQ_BLINK_2HZ  MACRO  BlinkingArgument

                ; Set the correspondant LCD status flags in order to enable blinking
                LCD_SET_BLINK_FLAG_STATUS BlinkingArgument
                
                ; Set the core request flags in order to enable 2Hz blinking
                CORE_ENABLE_2HZ_BLINKING

        ENDM

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_CANCEL_BLINK_2HZ
;
; Description:  Cancel Blinking at 2Hz for one or more flags  
;               Refer to "Blink flag equates" in lcd.h for BlinkingArgument
;
; Assumptions:  The 2HZ interrupt will be disabled by testing lcd status flags.
;
; Usage      :  CORE_CANCEL_BLINK_2HZ BlinkingArgument
;       
; Input(s)   :  BlinkingArgument - Blink name for the 2hz generic blinking
;
;               System definitions for blinking argument:
;
;                   CHR_FLAG        - blink stopwatch icon
;                   MOON_FLAG       - blink moon icon
;                   ACLK_FLAG       - blink alarm clock icon
;                   ARROW_FLAG      - blink arrow icon
;                   TAIL_FLAG       - blink tail icon
;                   TMR_FLAG        - blink hourglass icon
;                   NOTE_FLAG       - blink note icon
;                   P_FLAG          - blink P icon
;                   A_FLAG          - blink A icon
;                   L_FLAG          - blink L icon
;
; Output(s)  :  None
;
; Destroyed  :  AReg,BReg ,HLReg
;
; Macro Change History:
;
;               06/09/2000 HSB - Created macro
;
; M851 - Development:
;
;               11/20/2001 NLS - Modified for M851
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_CANCEL_BLINK_2HZ   MACRO  BlinkingArgument

                ; Clear the correspondant LCD status flags in order to disable blinking
                LCD_CLR_BLINK_FLAG_STATUS BlinkingArgument
                
        ENDM



;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_REQ_BLINK_4HZ
;
; Description:  Request Blinking at 4Hz
;
; Assumptions:  The lcd generic 4hz blinking arguments have been set before calling this macro
;
; Usage      :  CORE_REQ_BLINK_4HZ
;       
; Input(s)   :  None
;
; Output(s)  :  None
;
; Destroyed  :  AReg,BReg 
;
; Macro Change History:
;
;               06/09/2000 HSB - Created macro
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_REQ_BLINK_4HZ  MACRO
                
                ; Set the core request flags in order to enable 2Hz blinking
                car     coreRequest4HzBlinking

        CALLS   SUBROUTINE , 'coreRequest4HzBlinking'

        ENDM

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_CANCEL_BLINK_4HZ
;
; Description:  Cancel Blinking at 4Hz 
;
; Assumptions:  None
;
; Usage      :  CORE_CANCEL_BLINK_4HZ
;       
; Input(s)   :  None
;
; Output(s)  :  None
;
; Destroyed  :  AReg,BReg
;
; Macro Change History:
;
;               06/09/2000 HSB - Created macro
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_CANCEL_BLINK_4HZ   MACRO

                ; Clear the core system flags in order to disable 4Hz blinking
                car    coreCancel4HzBlinking

        CALLS   SUBROUTINE , 'coreCancel4HzBlinking'

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_REQ_SCROLLING
;
; Description:  Request Scrolling 
;
; Assumptions:  None
;
; Usage      :  CORE_REQ_SCROLLING
;       
; Input(s)   :  None
;
; Output(s)  :  None
;
; Destroyed  :  AReg,BReg 
;
; Macro Change History:
;
;               06/09/2000 HSB - Created macro
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_REQ_SCROLLING  MACRO

                ; Set the core request scrolling flag in order to enable 8Hz scrolling
                car    coreRequestScrolling

        CALLS   SUBROUTINE , 'coreRequestScrolling'

        ENDM



;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_CANCEL_SCROLLING
;
; Description:  Cancel 8hz scrolling
;
; Assumptions:  None
;
; Usage      :  CORE_CANCEL_SCROLLING
;       
; Input(s)   :  None
;
; Output(s)  :  None
;
; Destroyed  :  AReg,BReg 
;
; Macro Change History:
;
;               06/09/2000 HSB - Created macro
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_CANCEL_SCROLLING   MACRO 
                
                ; Clear the core system flag in order to disable 8Hz scrolling
                car    coreCancelScrolling

        CALLS   SUBROUTINE , 'coreCancelScrolling'

        ENDM



;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_CANCEL_TIMEOUTS
;
; Description:  Cancel ALL Timeouts
;
; Assumptions:  None
;
; Usage      :  CORE_CANCEL_TIMEOUTS
;       
; Input(s)   :  None
;
; Output(s)  :  None
;
; Destroyed  :  HLReg 
;
; Macro Change History:
;
;               06/09/2000 HSB - Created macro
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_CANCEL_TIMEOUTS    MACRO 
                
                ; Cancel all application timeouts
                ld      HL, #CORESystemFlag5
                and     [HL], #@LOW(~(bCORETrackingTimeoutHiRes|bCORETrackingStickyTimeout))
                ld      HL, #CORESystemFlag1
                and     [HL], #@LOW(~bCORETrackingTimeoutLowRes)

        CALLS   SUBROUTINE , 'coreCancelTimeouts'

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_SETUP_POPUP_CLOCK
;
; Description:  Sets up the popup clock mechanism.
;
; Assumptions:  None
;
; Usage      :  CORE_SETUP_POPUP_CLOCK
;       
; Input(s)   :  None
;
; Output(s)  :  None
;
; Destroyed  :  AReg,BReg,HLReg,IYReg 
;
; Macro Change History:
;
;               02/20/2002 NLS - Created macro for m851
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_SETUP_POPUP_CLOCK    MACRO 
                
            ; Sets up the popup clock mechanism
            car    coreSetupPopupClock

        CALLS   SUBROUTINE , 'coreSetupPopupClock'

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_SUSPEND_POPUPS
;
; Description:  Suspend any Popup during the current state
;
; Assumptions:  None
;
; Usage      :  CORE_SUSPEND_POPUPS
;       
; Input(s)   :  None
;
; Output(s)  :  None
;
; Destroyed  :  AReg,BReg,HLReg,IYReg 
;
; Macro Change History:
;
;               07/05/2000 HSB - Created macro
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_SUSPEND_POPUPS MACRO

                car    coreSuspendPopups

        CALLS   SUBROUTINE , 'coreSuspendPopups'
        
        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_ENABLE_POPUPS
;
; Description:  Enable Popups in the current state
;
; Assumptions:  None
;
; Usage      :  CORE_ENABLE_POPUPS
;       
; Input(s)   :  None
;
; Output(s)  :  None
;
; Destroyed  :  None 
;
; Macro Change History:
;
;               07/05/2000 HSB - Created macro
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_ENABLE_POPUPS  MACRO

                car    coreEnablePopups

        CALLS   SUBROUTINE , 'coreEnablePopups'
        ENDM




;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_SUSPEND_SWITCH_RELEASE
;
; Description:  Suspends any switch releases to be passed to the application.
;
; Assumptions:  None
;
; Usage      :  CORE_SUSPEND_SWITCH_RELEASE
;       
; Input(s)   :  None
;
; Output(s)  :  None
;
; Destroyed  :  BReg 
;
; Macro Change History:
;
;               03/16/2000 RMA - Created macro
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_SUSPEND_SWITCH_RELEASE MACRO

                car    coreSuspendSwitchReleaseEvents

        CALLS   SUBROUTINE , 'coreSuspendSwitchReleaseEvents'
        
        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_ENABLE_SET_MODE
;
; Description:  Sets the SetMode flag.
;
; Assumptions:  None
;
; Usage      :  CORE_ENABLE_SET_MODE
;       
; Input(s)   :  None
;
; Output(s)  :  None
;
; Destroyed  :  HLReg,AReg,BReg 
;
; Macro Change History:
;
;               03/16/2000 HSB - Created macro
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_ENABLE_SET_MODE    MACRO

                car    coreEnableSetMode

        CALLS   SUBROUTINE , 'coreEnableSetMode'

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_DISABLE_SET_MODE
;
; Description:  Sets the SetMode flag.
;
; Assumptions:  None
;
; Usage      :  CORE_DISABLE_SET_MODE
;       
; Input(s)   :  None
;
; Output(s)  :  None
;
; Destroyed  :  HLReg 
;
; Macro Change History:
;
;               03/16/2000 RMA - Created macro
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_DISABLE_SET_MODE   MACRO

                car    coreDisableSetMode

        CALLS   SUBROUTINE , 'coreDisableSetMode'

        ENDM



;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_ENABLE_PULSE_MODE
;
; Description:  Sets the system to send ring pulse events to the foreground application
;               instead of ring edge events on crown rotation.
;
; Assumptions:  None
;
; Usage      :  CORE_ENABLE_PULSE_MODE
;       
; Input(s)   :  None
;
; Output(s)  :  None
;
; Destroyed  :  HLReg,AReg,BReg 
;
; Macro Change History:
;
;               11/20/2001 NLS - Created macro for M851
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_ENABLE_PULSE_MODE    MACRO

                car    coreEnablePulseMode

        CALLS   SUBROUTINE , 'coreEnablePulseMode'

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_DISABLE_PULSE_MODE
;
; Description:  Sets the system to send ring edge events to the foreground application
;               instead of ring pulse events on crown rotation.
;
; Assumptions:  None
;
; Usage      :  CORE_DISABLE_PULSE_MODE
;       
; Input(s)   :  None
;
; Output(s)  :  None
;
; Destroyed  :  HLReg 
;
; Macro Change History:
;
;               11/20/2001 NLS - Created macro for M851
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_DISABLE_PULSE_MODE   MACRO

                car    coreDisablePulseMode

        CALLS   SUBROUTINE , 'coreDisablePulseMode'

        ENDM



;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_SET_AUTORETURN
;
; Description:  Set the AutoReturn to the Primary mode.
;
; Assumptions:  Assumes that this will be called in a state entry
;
; Usage      :  CORE_SET_AUTORETURN
;       
; Input(s)   :  None
;
; Output(s)  :  None
;
; Destroyed  :  BReg 
;
; Macro Change History:
;
;               06/09/2000 HSB - Created macro
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_SET_AUTORETURN     MACRO

                car     coreSetAutoreturnToPrimary

        CALLS   SUBROUTINE , 'coreSetAutoreturnToPrimary'

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_RESET_AUTORETURN_COUNTER
;
; Description:  Reset the AutoReturn counter to the Primary mode.
;
; Assumptions:  None
;
; Usage      :  CORE_RESET_AUTORETURN_COUNTER
;       
; Input(s)   :  None
;
; Output(s)  :  None
;
; Destroyed  :  HLReg 
;
; Macro Change History:
;
;               07/31/2000 HSB - Created macro
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_RESET_AUTORETURN_COUNTER       MACRO

                ; reset auto return to central mode counter
                ld      HL, #COREAutoReturnCounter
                ld      [HL], #COREAUTORETURNDURATION

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_CLEAR_AUTORETURN
;
; Description:  Clear the AutoReturn to the Primary mode.
;
; Assumptions:  Assumes that this will be called on any mode/state change
;
; Usage      :  CORE_CLEAR_AUTORETURN
;       
; Input(s)   :  None
;
; Output(s)  :  None
;
; Destroyed  :  BReg 
;
; Macro Change History:
;
;               06/09/2000 HSB - Created macro
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_CLEAR_AUTORETURN       MACRO

                car     coreClearAutoreturnToPrimary

        CALLS   SUBROUTINE , 'coreClearAutoreturnToPrimary'

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_INTERRUPTFLAG_MELODY_DONE_SET
;
; Description:  Set the Melody Done event
;
; Assumptions:  None
;
; Usage      :  CORE_INTERRUPTFLAG_MELODY_DONE_SET
;       
; Input(s)   :  None
;
; Output(s)  :  None
;
; Destroyed  :  HLReg
;
; Macro Change History:
;
;               06/27/2000 HSB - Created macro
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_INTERRUPTFLAG_MELODY_DONE_SET  MACRO

                ld      HL, #COREInterruptFlag2
                or      [HL], #bCOREMelodyDone

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_INTERRUPTFLAG_MELODY_DONE_CLR
;
; Description:  Clear the Melody Done event
;
; Assumptions:  None
;
; Usage      :  CORE_INTERRUPTFLAG_MELODY_DONE_CLR
;       
; Input(s)   :  None
;
; Output(s)  :  None
;
; Destroyed  :  HLReg
;
; Macro Change History:
;
;               06/27/2000 HSB - Created macro
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_INTERRUPTFLAG_MELODY_DONE_CLR  MACRO

                ld      HL, #COREInterruptFlag2
                and     [HL], #@LOW(~bCOREMelodyDone)

        ENDM

    
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_INTERRUPTFLAG_RING_DATA_READY_SET
;
; Description:  Notify the core that the Ring data is ready.
;
; Assumptions:  Will be set only if we're in Pulse or set mode
;
; Usage      :  CORE_INTERRUPTFLAG_RING_DATA_READY_SET
;       
; Input(s)   :  None
;
; Output(s)  :  None
;
; Destroyed  :  HLReg
;
; Macro Change History:
;
;               06/27/2000 HSB - Created macro
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_INTERRUPTFLAG_RING_DATA_READY_SET  MACRO

                ld      HL, #COREInterruptFlag2
                or      [HL], #bCORERingDataReady

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_INTERRUPTFLAG_RING_DATA_READY_CLR
;
; Description:  Clear the Ring data ready bit.
;
; Assumptions:  None
;
; Usage      :  CORE_INTERRUPTFLAG_RING_DATA_READY_CLR
;       
; Input(s)   :  None
;
; Output(s)  :  None
;
; Destroyed  :  HLReg
;
; Macro Change History:
;
;               06/27/2000 HSB - Created macro
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_INTERRUPTFLAG_RING_DATA_READY_CLR  MACRO

                ld      HL, #COREInterruptFlag2
                and     [HL], #@LOW(~bCORERingDataReady)

        ENDM



;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_RUNNING_AUDIO
;
; Description:  Notify the core that we are outputing an alert
;
; Assumptions:  Used only by the alert driver
;
; Usage      :  CORE_RUNNING_AUDIO
;       
; Input(s)   :  None
;
; Output(s)  :  None
;
; Destroyed  :  HLReg
;
; Macro Change History:
;
;               06/27/2000 HSB - Created macro
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_RUNNING_AUDIO  MACRO

                ld      HL, #HWCLK16Control
                or      [HL], #bHWCLK32Alert   

        ENDM



;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_STOP_AUDIO
;
; Description:  Inform the core that there is no audio running
;
; Assumptions:  Used only by the alert driver
;
; Usage      :  CORE_STOP_AUDIO
;       
; Input(s)   :  None
;
; Output(s)  :  None
;
; Destroyed  :  HLReg
;
; Macro Change History:
;
;               06/27/2000 HSB - Created macro
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_STOP_AUDIO     MACRO

                ld      HL, #HWCLK16Control
                and     [HL], #@LOW(~bHWCLK32Alert)

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_SET_COMM_MODE_STATUS
;
; Description:  Set the Communiction mode status bit
;
; Assumptions:  None
;
; Usage      :  CORE_SET_COMM_MODE_STATUS
;       
; Input(s)   :  None
;
; Output(s)  :  None
;
; Destroyed  :  HLReg 
;
; Macro Change History:
;
;               06/09/2000 HSB - Created macro
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_SET_COMM_MODE_STATUS   MACRO

                ld      HL, #CORESystemFlag2
                or      [HL], #bCORECommModeActive   

        ENDM



;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_CLR_COMM_MODE_STATUS
;
; Description:  Clear the Communication mode status bit
;
; Assumptions:  None
;
; Usage      :  CORE_CLR_COMM_MODE_STATUS
;       
; Input(s)   :  None
;
; Output(s)  :  None
;
; Destroyed  :  HLReg 
;
; Macro Change History:
;
;               06/09/2000 HSB - Created macro
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_CLR_COMM_MODE_STATUS   MACRO

                ld      HL, #CORESystemFlag2
                and     [HL], #@LOW(~bCORECommModeActive)

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_REQ_BACKGROUND_TASK
;
; Description:  Request a background task to be initiated.
;
; Assumptions:  None
;
; Usage      :  CORE_REQ_BACKGROUND_TASK
;       
; Input(s):     LReg = Application Index
;               AReg = System Event to be passed to the background handler routine for processing
;
; Output(s)  :  None
;
; Destroyed  :  None
;
; Macro Change History:
;
;               01/10/2002 NLS - Created macro for M851
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_REQ_BACKGROUND_TASK   MACRO

                car     coreRequestBackgroundTask

    CALLS   SUBROUTINE, 'coreRequestBackgroundTask'

        ENDM



;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_REQ_BACKGROUND_TASK_WITH_PRIORITYCHECK
;
; Description:  Request a background task to be initiated with priority check.
;
; Assumptions:  None
;
; Usage      :  CORE_REQ_BACKGROUND_TASK_WITH_PRIORITYCHECK
;       
; Input(s):     LReg = Application Index
;               AReg = System Event to be passed to the background handler routine for processing
;
; Output(s)  :  None
;
; Destroyed  :  None
;
; Macro Change History:
;
;               05/22/2002 NLS - Created macro for M851
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_REQ_BACKGROUND_TASK_WITH_PRIORITYCHECK   MACRO

                car     coreRequestBackgroundTaskWithPriorityCheck

    CALLS   SUBROUTINE, 'coreRequestBackgroundTaskWithPriorityCheck'

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_REQ_BACKGROUND_TASK_FOR_APPTYPE
;
; Description:  Request a background task to be initiated for all active application
;               that matches the specified application type.
;
; Assumptions:  None
;
; Usage      :  CORE_REQ_BACKGROUND_TASK_FOR_APPTYPE
;       
; Input(s):     AReg = Application Type
;               LReg = System Event to be passed to the background handler routine for processing
;
; Output(s)  :  None
;
; Destroyed  :  HLReg 
;
; Macro Change History:
;
;               01/10/2002 NLS - Created macro for M851
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_REQ_BACKGROUND_TASK_FOR_APPTYPE   MACRO

                car     coreRequestBackgroundTaskByType

    CALLS   SUBROUTINE, 'coreRequestBackgroundTaskByType'

        ENDM



;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_REQ_BACKGROUND_TASK_FOR_APPTYPE_WITH_PRIORITYCHECK
;
; Description:  Request a background task to be initiated for the specified application type
;               but checks first before overwriting a higher priority task.
;
; Assumptions:  None
;
; Usage      :  CORE_REQ_BACKGROUND_TASK_FOR_APPTYPE_WITH_PRIORITYCHECK
;       
; Input(s):     AReg = Application Type
;               LReg = System Event to be passed to the background handler routine for processing
;
;                      Available system events passed to this routine (according to priority):
;
;                         COREEVENT_REFRESH_START                 
;                         COREEVENT_REFRESH_CONTINUE              
;                         COREEVENT_PEEK_SEARCH_START              
;                         COREEVENT_PEEK_SEARCH_CONTINUE           
;                         COREEVENT_DAY_UPDATE_START   
;                         COREEVENT_DAY_UPDATE_CONTINUE
;                         COREEVENT_HOUR_UPDATE_START   
;                         COREEVENT_HOUR_UPDATE_CONTINUE
;
; Output(s)  :  None
;
; Destroyed  :  HLReg 
;
; Macro Change History:
;
;               01/10/2002 NLS - Created macro for M851
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_REQ_BACKGROUND_TASK_FOR_APPTYPE_WITH_PRIORITYCHECK   MACRO

                car     coreRequestBackgroundTaskByTypeWithCheck

    CALLS   SUBROUTINE, 'coreRequestBackgroundTaskByTypeWithCheck'

        ENDM




;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_REQ_BACKGROUND_TASK_FOR_PTZBASEDAPPS
;
; Description:  Request a background task to be initiated for application types that
;               are dependent upon the primary time zone data.
;
;               This provides applications that reference the primary timezone to
;               update its data and resource.
;
; Assumptions:  None
;
; Usage      :  CORE_REQ_BACKGROUND_TASK_FOR_PTZBASEDAPPS
;       
; Input(s):     LReg = System Event to be passed to the background handler routine for processing
;
; Output(s)  :  None
;
; Destroyed  :  ????
;
; Macro Change History:
;
;               01/10/2002 NLS - Created macro for M851
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_REQ_BACKGROUND_TASK_FOR_PTZBASEDAPPS   MACRO

                car     coreRequestBackgroundTaskForPTZBasedApps

    CALLS   SUBROUTINE, 'coreRequestBackgroundTaskForPTZBasedApps'

        ENDM



;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_CLEAR_BACKGROUND_APPLICATION_TASK
;
; Description:  Clears the pending background application task for specified application index
;
; Assumptions:  None
;
; Usage      :  CORE_CLEAR_BACKGROUND_APPLICATION_TASK
;       
; Input(s):     LReg = Application Index
;
; Output(s)  :  None
;
; Destroyed  :  ???
;
; Macro Change History:
;
;               01/11/2002 NLS - Created macro for M851
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_CLEAR_BACKGROUND_APPLICATION_TASK   MACRO

                car     coreClearBackgroundTask

    CALLS   SUBROUTINE, 'coreClearBackgroundTask'

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_CLEAR_ALL_BACKGROUND_APPLICATION_TASK
;
; Description:  Clears all the pending background application task being requested.
;
; Assumptions:  None
;
; Usage      :  CORE_CLEAR_ALL_BACKGROUND_APPLICATION_TASK
;       
; Input(s)   :  None
;
; Output(s)  :  None
;
; Destroyed  :  ???
;
; Macro Change History:
;
;               01/11/2002 NLS - Created macro for M851
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_CLEAR_ALL_BACKGROUND_APPLICATION_TASK   MACRO

                car     coreClearAllBackgroundTask

    CALLS   SUBROUTINE, 'coreClearAllBackgroundTask'

        ENDM



;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_ALLOW_ALL_KEYMASK
;
; Description:  Allow all switch events to be passed to the foreground application
;
; Assumptions:  None
;
; Usage      :  CORE_ALLOW_ALL_KEYMASK
;       
; Input(s)   :  None
;
; Output(s)  :  None
;
; Destroyed  :  BReg
;
; Macro Change History:
;
;               06/06/2000 HSB - Created macro
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_ALLOW_ALL_KEYMASK MACRO

                car     coreAllowAllKeys

    CALLS SUBROUTINE, "coreAllowAllKeys"

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_ACTIVATE_POPCLOCK
;
; Description:  Actives the PopClock updating
;
; Assumptions:  None
;
; Usage      :  CORE_ACTIVATE_POPCLOCK
;       
; Input(s)   :  None
;
; Output(s)  :  None
;
; Destroyed  :  HLReg 
;
; Macro Change History:
;
;               07/06/2000 HSB - Created macro
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_ACTIVATE_POPCLOCK  MACRO

                car     coreActivatePopclock

    CALLS SUBROUTINE, "coreActivatePopclock"

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_DEACTIVATE_POPCLOCK
;
; Description:  Deactivates the PopClock updating
;
; Assumptions:  None
;
; Usage      :  CORE_DEACTIVATE_POPCLOCK
;       
; Input(s)   :  None
;
; Output(s)  :  None
;
; Destroyed  :  HLReg 
;
; Macro Change History:
;
;               07/05/2000 HSB - Created macro
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_DEACTIVATE_POPCLOCK    MACRO

                car     coreDeactivatePopclock

    CALLS SUBROUTINE, "coreDeactivatePopclock"

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_SUSPEND_RING_EVENTS
;
; Description:  Suspends any ring events to be passed to the application.
;
; Assumptions:  None
;
; Usage      :  CORE_SUSPEND_RING_EVENTS
;       
; Input(s)   :  None
;
; Output(s)  :  None
;
; Destroyed  :  HLReg 
;
; Macro Change History:
;
;               03/16/2000 RMA - Created macro
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_SUSPEND_RING_EVENTS    MACRO


                car     coreSuspendRingEvents
                
    CALLS SUBROUTINE, "coreSuspendRingEvents"

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_ENABLE_RING_EVENTS
;
; Description:  Enable any ring events to be passed to the application.
;
; Assumptions:  None
;
; Usage      :  CORE_ENABLE_RING_EVENTS
;       
; Input(s)   :  None
;
; Output(s)  :  None
;
; Destroyed  :  HLReg 
;
; Macro Change History:
;
;               01/08/2001 NLS - Created macro for m851
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_ENABLE_RING_EVENTS    MACRO


                car     coreEnableRingEvents

    CALLS SUBROUTINE, "coreEnableRingEvents"

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_SUSPEND_RING_LEADING_EVENTS
;
; Description:  Suspends any ring events matching leading transition
;               to be passed to the application.
;
; Assumptions:  None
;
; Usage      :  CORE_SUSPEND_RING_LEADING_EVENTS
;       
; Input(s)   :  None
;
; Output(s)  :  None
;
; Destroyed  :  HLReg 
;
; Macro Change History:
;
;               03/16/2000 RMA - Created macro
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_SUSPEND_RING_LEADING_EVENTS MACRO


                car     coreSuspendRingLeadingEvents

    CALLS SUBROUTINE, "coreSuspendRingLeadingEvents"

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_ENABLE_RING_LEADING_EVENTS
;
; Description:  Enables any ring events matching low-high transition
;                 to be passed to the application.
;
; Assumptions:  None
;
; Usage      :  CORE_ENABLE_RING_LEADING_EVENTS
;       
; Input(s)   :  None
;
; Output(s)  :  None
;
; Destroyed  :  HLReg 
;
; Macro Change History:
;
;               01/08/2001 NLS - Created macro for m851
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_ENABLE_RING_LEADING_EVENTS MACRO


                car     coreEnableRingLeadingEvents


    CALLS SUBROUTINE, "coreEnableRingLeadingEvents"

        ENDM



;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_ENABLE_SWITCH_RELEASE
;
; Description:  Enables any switch releases to be passed to the application.
;
; Assumptions:  None
;
; Usage      :  CORE_ENABLE_SWITCH_RELEASE
;       
; Input(s)   :  None
;
; Output(s)  :  None
;
; Destroyed  :  HLReg
;
; Macro Change History:
;
;               03/16/2000 RMA - Created macro
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_ENABLE_SWITCH_RELEASE  MACRO


                car     coreEnableSwitchReleaseEvents

    CALLS SUBROUTINE, "coreEnableSwitchReleaseEvents"

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_BACKGROUND_ICON_REFRESH_ENABLE
;
; Description:  Requests the system to inform the foreground application of any updates to the lcd icon resource
;
; Assumptions:  None
;
; Usage      :  CORE_BACKGROUND_ICON_REFRESH_ENABLE
;       
; Input(s)   :  None
;
; Output(s)  :  None
;
; Destroyed  :  HLReg 
;
; Macro Change History:
;
;               11/22/2001 NLS - Created macro for M851
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_BACKGROUND_ICON_REFRESH_ENABLE   MACRO

                car     coreEnableBackgroundIconRefreshEvent

    CALLS SUBROUTINE, "coreEnableBackgroundIconRefreshEvent"

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_BACKGROUND_ICON_REFRESH_DISABLE
;
; Description:  Cancel any request for events during LCD icon updates
;
; Assumptions:  None
;
; Usage      :  CORE_BACKGROUND_ICON_REFRESH_DISABLE
;       
; Input(s)   :  None
;
; Output(s)  :  None
;
; Destroyed  :  HLReg 
;
; Macro Change History:
;
;               11/22/2001 NLS - Created macro for M851
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_BACKGROUND_ICON_REFRESH_DISABLE   MACRO

                car     coreDisableBackgroundIconRefreshEvent

    CALLS SUBROUTINE, "coreDisableBackgroundIconRefreshEvent"

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_REQUEST_ICON_REFRESH_TASK
;
; Description:  Request for a system event to be passed to the application to indicate that a
;               LCD icon in the primary mode has been updated.  This will set the task flag only
;               if the current foreground application has requested this event.
;
;               The application or kernel will modify the state of the primary mode lcd icons through
;               an lcd routine.  The lcd routine will use this macro to always alert the foreground
;               application of the update.
;
; Assumptions:  None
;
; Usage      :  CORE_REQUEST_ICON_REFRESH_TASK
;       
; Input(s)   :  None
;
; Output(s)  :  None
;
; Destroyed  :  HLReg 
;
; Macro Change History:
;
;               11/22/2001 NLS - Created macro for M851
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_REQUEST_ICON_REFRESH_TASK   MACRO

                car     coreRequestIconRefreshTask

    CALLS SUBROUTINE, "coreRequestIconRefreshTask"

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_ENABLE_GENERIC_SWITCH_EVENT
;
; Description:  Request the system to generate a generic switch depress or release
;               event for application processing.
;
;               This will convert the following system events into the generic events
;               COREEVENT_ANYSWITCHDEPRESS and COREEVENT_ANYSWITCHRELEASE.
;
;                   COREEVENT_SWITCH1DEPRESS  }
;                   COREEVENT_SWITCH2DEPRESS  } --> COREEVENT_ANYSWITCHDEPRESS
;                   COREEVENT_SWITCH3DEPRESS  }
;
;                   COREEVENT_SWITCH1RELEASE  }  
;                   COREEVENT_SWITCH2RELEASE  } --> COREEVENT_ANYSWITCHRELEASE
;                   COREEVENT_SWITCH3RELEASE  }  
;
; Assumptions:  None
;
; Usage      :  CORE_ENABLE_GENERIC_SWITCH_EVENT
;       
; Input(s)   :  None
;
; Output(s)  :  None
;
; Destroyed  :  HLReg 
;
; Macro Change History:
;
;               01/10/2002 NLS - Created macro for M851
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_ENABLE_GENERIC_SWITCH_EVENT   MACRO

                car     coreEnableGenericSwitchEvent

    CALLS SUBROUTINE, "coreEnableGenericSwitchEvent"

        ENDM



;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_DISABLE_GENERIC_SWITCH_EVENT
;
; Description:  Send unique switch events as is.  Do not convert to a generic switch event.
;
; Assumptions:  None
;
; Usage      :  CORE_DISABLE_GENERIC_SWITCH_EVENT
;       
; Input(s)   :  None
;
; Output(s)  :  None
;
; Destroyed  :  HLReg 
;
; Macro Change History:
;
;               01/10/2002 NLS - Created macro for M851
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_DISABLE_GENERIC_SWITCH_EVENT   MACRO


                car     coreDisableGenericSwitchEvent

    CALLS SUBROUTINE, "coreDisableGenericSwitchEvent"

        ENDM

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_ENABLE_POPUP_MODE
;
; Description:  Indicate to the system that popup mode is active.
;
; Assumptions:  None
;
; Usage      :  CORE_ENABLE_POPUP_MODE
;       
; Input(s)   :  None
;
; Output(s)  :  None
;
; Destroyed  :  HLReg 
;
; Macro Change History:
;
;               01/10/2002 NLS - Created macro for M851
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_ENABLE_POPUP_MODE   MACRO

                car     coreEnablePopupMode

    CALLS SUBROUTINE, "coreEnablePopupMode"

        ENDM

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_DISABLE_POPUP_MODE
;
; Description:  Indicate to the system that popup mode is not active.
;
; Assumptions:  None
;
; Usage      :  CORE_DISABLE_POPUP_MODE
;       
; Input(s)   :  None
;
; Output(s)  :  None
;
; Destroyed  :  HLReg 
;
; Macro Change History:
;
;               01/10/2002 NLS - Created macro for M851
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_DISABLE_POPUP_MODE   MACRO

                car     coreDisablePopupMode

    CALLS SUBROUTINE, "coreDisablePopupMode"

        ENDM



;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_UPDATE_ENTRANCES_TO_MODE_TRACKING
;
; Description:  Updates the 'number of entrances to a mode' tracking variables. 
;
;               This makes use of the core flag that keeps track on the first time
;               entry into the default state.  Once it is called, the macro will
;               clear the core flag.  This prevents the usage macro from being
;               invoked more than once.
;
; Assumptions:  This macro should not be used if no usage tracking macro is required
;               for the application.  The usage macro used is USG_INCREMENT_EEPROM_COUNTERS.
;
; Usage      :  CORE_UPDATE_ENTRANCES_TO_MODE_TRACKING USAGE_MACRO_PARAMETER
;
; Input(s)   :  None
;
; Output(s)  :  None
;
; Destroyed  :  HLReg 
;
; Macro Change History:
;
;               02/17/2002 NLS - Created macro for M851
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_UPDATE_ENTRANCES_TO_MODE_TRACKING   MACRO  USAGE_MACRO_PARAMETER             

                ; Check if we have not yet updated the usage tracking macro
                ld      HL, #CORESystemFlag4
                bit     [HL], #bCOREFirstTimeInDefaultState
                jr      Z, ^coreAlreadyUpdatedTheUsageMacro

                ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                ; We have not yet updated the usage tracking macro
                ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

                ; clear core flag that indicates first time entry into the default state
                and     [HL], #@LOW(~bCOREFirstTimeInDefaultState)

                ; update the required usage macro
                USG_INCREMENT_EEPROM_COUNTERS USAGE_MACRO_PARAMETER

^coreAlreadyUpdatedTheUsageMacro:

        ENDM




;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_FORCE_PRIMARY_AS_NEXT_MODE
;
; Description:  Forces the primary mode to be the next mode on mode change next requests.
;
; Assumptions:  None
;
; Usage      :  CORE_FORCE_PRIMARY_AS_NEXT_MODE
;
; Input(s)   :  None
;
; Output(s)  :  None
;
; Destroyed  :  HLReg 
;
; Macro Change History:
;
;               02/17/2002 NLS - Created macro for M851
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_FORCE_PRIMARY_AS_NEXT_MODE MACRO

                ; force the next mode change request to proceed directly to primary mode
                ld      HL, #COREModeSelectionDuration
                ld      [HL], #0

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_INIT_FROM_COMMUNICATIONS_FAILURE
;
; Description:  Initializes the system due to a communications failure.
;
; Assumptions:  Only the TOD and COMM application remain active in the system.
;
; Usage      :  CORE_INIT_FROM_COMMUNICATIONS_FAILURE
;
; Input(s)   :  None
;
; Output(s)  :  None
;
; Destroyed  :  HLReg 
;
; Macro Change History:
;
;               02/24/2002 NLS - Created macro for M851
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_INIT_FROM_COMMUNICATIONS_FAILURE   MACRO

                car     coreInitFromCommunicationsFailure

        CALLS   SUBROUTINE, 'coreInitFromCommunicationsFailure'

        ENDM



;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_LOAD_ICB_FROM_EEPROM
;
; Description:  Loads the Information and Control Block from EEPROM into
;               the work buffer for processing.
;               This will handler powerup and powerdown of eeprom.
;
; Assumptions:  None
;       
; Usage      :  CORE_LOAD_ICB_FROM_EEPROM
;
; Input(s)   :  None
;
; Output(s)  :  COREWorkBuffer - buffer where ICB is read from EEPROM
;
; Destroyed  :  All Registers 
;
; Macro Change History:
;
;               02/24/2002 NLS - Created macro for M851
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_LOAD_ICB_FROM_EEPROM   MACRO

                car     coreLoadICB

        CALLS   SUBROUTINE, 'coreLoadICB'

        ENDM


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_STORE_ICB_TO_EEPROM
;
; Description:  Copy ICB data in internal memory into EEPROM.
;               This will handler powerup and powerdown of eeprom.
;
; Assumptions:  None
;
; Usage      :  CORE_STORE_ICB_TO_EEPROM
;
; Input(s)   :  IXReg - Base address of the ICB buffer to copy to EEPROM
;
; Output(s)  :  None
;
; Destroyed  :  All Registers 
;
; Macro Change History:
;
;               03/07/2002 NLS - Created macro for M851
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_STORE_ICB_TO_EEPROM   MACRO

                car     coreStoreICB

        CALLS   SUBROUTINE, 'coreStoreICB'

        ENDM



;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_STORE_BUFFER_TO_EEPROM
;
; Description:  Copy data buffer in internal memory into EEPROM.
;               This will handler powerup and powerdown of eeprom.
;
; Assumptions:  None
;
; Usage      :  CORE_STORE_BUFFER_TO_EEPROM
;
; Input(s)   :  DBExternalMemoryAddress - external address in eeprom to store the buffer (16-bit)
;               DBLength                - number of byte to copy into the eeprom (16-bit)
;               IXReg                   - Base address of the ICB buffer to copy to EEPROM (16-bit)
;
; Output(s)  :  None
;
; Destroyed  :  All Registers 
;
; Macro Change History:
;
;               03/07/2002 NLS - Created macro for M851
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_STORE_BUFFER_TO_EEPROM   MACRO

                car     coreStoreICBCommon

        CALLS   SUBROUTINE, 'coreStoreICBCommon'

        ENDM



;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_GENERATE_RANDOM_NUMBER
;
; Description:  Generates a random number from 0 - 255.
;
; Assumptions:  None
;
; Usage      :  CORE_GENERATE_RANDOM_NUMBER
;
; Input(s)   :  None
;
; Output(s)  :  AReg
;
; Destroyed  :  All Registers 
;
; Macro Change History:
;
;               06/18/2002 NLS - ECR#851-2020617-353
;                                Added macro CORE_GENERATE_RANDOM_NUMBER
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_GENERATE_RANDOM_NUMBER   MACRO

                car     coreRandom

        CALLS   SUBROUTINE, 'coreRandom'

        ENDM



;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  CORE_SET_RANDOM_SEED
;
; Description:  Sets the base number for the random number generator.
;
; Assumptions:  None
;
; Usage      :  CORE_SET_RANDOM_SEED
;
; Input(s)   :  None
;
; Output(s)  :  AReg
;
; Destroyed  :  All Registers 
;
; Macro Change History:
;
;               06/18/2002 NLS - ECR#851-2020617-353
;                                Added macro CORE_SET_RANDOM_SEED
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CORE_SET_RANDOM_SEED   MACRO

                car     coreRandomSetSeed

        CALLS   SUBROUTINE, 'coreRandomSetSeed'

        ENDM

