///////////////////////////////////////////////////////////////////////////////
//                                                                            /
// IAR 8051 C/C++ Compiler V7.30B/W32                   21/Jun/2010  17:06:53 /
// Copyright 2004-2007 IAR Systems. All rights reserved.                      /
//                                                                            /
//    Core               =  plain                                             /
//    Code model         =  banked                                            /
//    Data model         =  large                                             /
//    Calling convention =  xdata reentrant                                   /
//    Constant location  =  data                                              /
//    Dptr setup         =  1,16                                              /
//    Source file        =  C:\Texas Instruments\ZStack-1.4.3-1.2.1\Component /
//                          s\osal\common\OSAL.c                              /
//    Command line       =  -f "C:\Texas Instruments\ZStack-1.4.3-1.2.1\Proje /
//                          cts\zstack\Project\Location\CC2430DB\..\..\..\Too /
//                          ls\CC2430DB\f8wCoord.cfg" (-DCPU32MHZ             /
//                          -DFORCE_MAC_NEAR -DROOT=__near_func               /
//                          -DMAC_CFG_APP_PENDING_QUEUE=TRUE                  /
//                          -DZDO_COORDINATOR -DRTR_NWK -DBLINK_LEDS          /
//                          "-DCONST=const __code" -DGENERIC=__generic) -f    /
//                          "C:\Texas Instruments\ZStack-1.4.3-1.2.1\Projects /
//                          \zstack\Project\Location\CC2430DB\..\..\..\Tools\ /
//                          CC2430DB\f8wConfig.cfg" (-DSECURE=1               /
//                          -DDEFAULT_CHANLIST=0x04000000                     /
//                          -DZDAPP_CONFIG_PAN_ID=0x00FF                      /
//                          -DNWK_START_DELAY=100 -DEXTENDED_JOINING_RANDOM_M /
//                          ASK=0x007F -DBEACON_REQUEST_DELAY=100             /
//                          -DBEACON_REQ_DELAY_MASK=0x00FF                    /
//                          -DROUTE_EXPIRY_TIME=30 -DAPSC_ACK_WAIT_DURATION_P /
//                          OLLED=3000 -DNWK_INDIRECT_MSG_TIMEOUT=7           /
//                          -DMAX_RREQ_ENTRIES=10 -DAPSC_MAX_FRAME_RETRIES=3  /
//                          -DNWK_MAX_DATA_RETRIES=2                          /
//                          -DMAX_POLL_FAILURE_RETRIES=2 -DMAX_BCAST=9        /
//                          -DAPS_MAX_GROUPS=16 -DMAX_RTG_ENTRIES=20          /
//                          -DNWK_MAX_BINDING_ENTRIES=10                      /
//                          -DMAX_BINDING_CLUSTER_IDS=5                       /
//                          "-DDEFAULT_KEY={0x02, 0x03, 0x05, 0x07, 0x09,     /
//                          0x0B, 0x0D, 0x0F, 0x00, 0x02, 0x04, 0x06, 0x08,   /
//                          0x0A, 0x0C, 0x0D}" -DRFD_RCVC_ALWAYS_ON=FALSE     /
//                          -DPOLL_RATE=1000 -DQUEUED_POLL_RATE=100           /
//                          -DRESPONSE_POLL_RATE=100) -DREJOIN_POLL_RATE=440  /
//                          "C:\Texas Instruments\ZStack-1.4.3-1.2.1\Componen /
//                          ts\osal\common\OSAL.c" -D CC2430EB -D ZTOOL_P1    /
//                          -D LOCATION_DONGLE -D MT_TASK -D xNV_RESTORE -D   /
//                          INT_HEAP_LEN=4608 -D HAL_UART_BIG_TX_BUF=1 -D     /
//                          SPI_MGR_DEFAULT_MAX_TX_BUFF=1024 -D               /
//                          SPI_MGR_DEFAULT_OVERFLOW=1 -lC "C:\Texas          /
//                          Instruments\ZStack-1.4.3-1.2.1\Projects\zstack\Pr /
//                          oject\Location\CC2430DB\LocDongle\List\" -lA      /
//                          "C:\Texas Instruments\ZStack-1.4.3-1.2.1\Projects /
//                          \zstack\Project\Location\CC2430DB\LocDongle\List\ /
//                          " --diag_suppress Pe001,Pa010 --diag_remark       /
//                          pe550 -o "C:\Texas Instruments\ZStack-1.4.3-1.2.1 /
//                          \Projects\zstack\Project\Location\CC2430DB\LocDon /
//                          gle\Obj\" -e --require_prototypes -z9             /
//                          --no_code_motion --debug --core=plain             /
//                          --dptr=16,1 --data_model=large                    /
//                          --code_model=banked --calling_convention=xdata_re /
//                          entrant --place_constants=data --nr_virtual_regs  /
//                          8 -I "C:\Texas Instruments\ZStack-1.4.3-1.2.1\Pro /
//                          jects\zstack\Project\Location\CC2430DB\" -I       /
//                          "C:\Texas Instruments\ZStack-1.4.3-1.2.1\Projects /
//                          \zstack\Project\Location\CC2430DB\..\SOURCE\" -I  /
//                          "C:\Texas Instruments\ZStack-1.4.3-1.2.1\Projects /
//                          \zstack\Project\Location\CC2430DB\..\..\..\ZMAIN\ /
//                          TI2430DB\" -I "C:\Texas                           /
//                          Instruments\ZStack-1.4.3-1.2.1\Projects\zstack\Pr /
//                          oject\Location\CC2430DB\..\..\..\..\WXL\INCLUDE\" /
//                           -I "C:\Texas Instruments\ZStack-1.4.3-1.2.1\Proj /
//                          ects\zstack\Project\Location\CC2430DB\..\..\..\.. /
//                          \..\COMPONENTS\MT\" -I "C:\Texas                  /
//                          Instruments\ZStack-1.4.3-1.2.1\Projects\zstack\Pr /
//                          oject\Location\CC2430DB\..\..\..\..\..\COMPONENTS /
//                          \HAL\INCLUDE\" -I "C:\Texas                       /
//                          Instruments\ZStack-1.4.3-1.2.1\Projects\zstack\Pr /
//                          oject\Location\CC2430DB\..\..\..\..\..\COMPONENTS /
//                          \HAL\TARGET\CC2430EB\" -I "C:\Texas               /
//                          Instruments\ZStack-1.4.3-1.2.1\Projects\zstack\Pr /
//                          oject\Location\CC2430DB\..\..\..\..\..\COMPONENTS /
//                          \OSAL\MCU\CCSOC\" -I "C:\Texas                    /
//                          Instruments\ZStack-1.4.3-1.2.1\Projects\zstack\Pr /
//                          oject\Location\CC2430DB\..\..\..\..\..\COMPONENTS /
//                          \OSAL\INCLUDE\" -I "C:\Texas                      /
//                          Instruments\ZStack-1.4.3-1.2.1\Projects\zstack\Pr /
//                          oject\Location\CC2430DB\..\..\..\..\..\COMPONENTS /
//                          \STACK\AF\" -I "C:\Texas                          /
//                          Instruments\ZStack-1.4.3-1.2.1\Projects\zstack\Pr /
//                          oject\Location\CC2430DB\..\..\..\..\..\COMPONENTS /
//                          \STACK\NWK\" -I "C:\Texas                         /
//                          Instruments\ZStack-1.4.3-1.2.1\Projects\zstack\Pr /
//                          oject\Location\CC2430DB\..\..\..\..\..\COMPONENTS /
//                          \STACK\SEC\" -I "C:\Texas                         /
//                          Instruments\ZStack-1.4.3-1.2.1\Projects\zstack\Pr /
//                          oject\Location\CC2430DB\..\..\..\..\..\COMPONENTS /
//                          \STACK\SYS\" -I "C:\Texas                         /
//                          Instruments\ZStack-1.4.3-1.2.1\Projects\zstack\Pr /
//                          oject\Location\CC2430DB\..\..\..\..\..\COMPONENTS /
//                          \STACK\ZDO\" -I "C:\Texas                         /
//                          Instruments\ZStack-1.4.3-1.2.1\Projects\zstack\Pr /
//                          oject\Location\CC2430DB\..\..\..\..\..\COMPONENTS /
//                          \ZMAC\F8W\" -I "C:\Texas                          /
//                          Instruments\ZStack-1.4.3-1.2.1\Projects\zstack\Pr /
//                          oject\Location\CC2430DB\..\..\..\..\..\COMPONENTS /
//                          \ZMAC\" -I "C:\Texas Instruments\ZStack-1.4.3-1.2 /
//                          .1\Projects\zstack\Project\Location\CC2430DB\..\. /
//                          .\..\..\..\COMPONENTS\SERVICES\SADDR\" -I         /
//                          "C:\Texas Instruments\ZStack-1.4.3-1.2.1\Projects /
//                          \zstack\Project\Location\CC2430DB\..\..\..\..\..\ /
//                          COMPONENTS\SERVICES\SDATA\" -I "C:\Texas          /
//                          Instruments\ZStack-1.4.3-1.2.1\Projects\zstack\Pr /
//                          oject\Location\CC2430DB\..\..\..\..\..\COMPONENTS /
//                          \MAC\INCLUDE\" -I "C:\Texas                       /
//                          Instruments\ZStack-1.4.3-1.2.1\Projects\zstack\Pr /
//                          oject\Location\CC2430DB\..\..\..\..\..\COMPONENTS /
//                          \MAC\HIGH_LEVEL\" -I "C:\Texas                    /
//                          Instruments\ZStack-1.4.3-1.2.1\Projects\zstack\Pr /
//                          oject\Location\CC2430DB\..\..\..\..\..\COMPONENTS /
//                          \MAC\LOW_LEVEL\SRF03\" -I "C:\Texas               /
//                          Instruments\ZStack-1.4.3-1.2.1\Projects\zstack\Pr /
//                          oject\Location\CC2430DB\..\..\..\..\..\COMPONENTS /
//                          \MAC\LOW_LEVEL\SRF03\SINGLE_CHIP\" -I             /
//                          "C:\Program Files\IAR Systems\Embedded Workbench  /
//                          4.0 Evaluation version\8051\INC\" -I "C:\Program  /
//                          Files\IAR Systems\Embedded Workbench 4.0          /
//                          Evaluation version\8051\INC\CLIB\"                /
//    List file          =  C:\Texas Instruments\ZStack-1.4.3-1.2.1\Projects\ /
//                          zstack\Project\Location\CC2430DB\LocDongle\List\O /
//                          SAL.s51                                           /
//                                                                            /
//                                                                            /
///////////////////////////////////////////////////////////////////////////////

        NAME OSAL

        RTMODEL "__calling_convention", "xdata_reentrant"
        RTMODEL "__code_model", "banked"
        RTMODEL "__core", "plain"
        RTMODEL "__data_model", "large"
        RTMODEL "__dptr_size", "16"
        RTMODEL "__extended_stack", "disabled"
        RTMODEL "__location_for_constants", "data"
        RTMODEL "__number_of_dptrs", "1"
        RTMODEL "__rt_version", "1"

        RSEG DOVERLAY:DATA:NOROOT(0)
        RSEG IOVERLAY:IDATA:NOROOT(0)
        RSEG ISTACK:IDATA:NOROOT(0)
        RSEG PSTACK:XDATA:NOROOT(0)
        RSEG XSTACK:XDATA:NOROOT(0)

        EXTERN ??osal_ExtAddrEqual?relay
        EXTERN ??osal_memcpy?relay
        EXTERN ??osal_msg_deallocate?relay
        EXTERN ??osal_msg_enqueue?relay
        EXTERN ??osal_msg_extract?relay
        EXTERN ??osal_set_event?relay
        EXTERN ?ALLOC_XSTACK8
        EXTERN ?BANKED_ENTER_XDATA
        EXTERN ?BANKED_LEAVE_XDATA
        EXTERN ?BDISPATCH
        EXTERN ?BRET
        EXTERN ?CALL_IND
        EXTERN ?C_GPTR_LOAD
        EXTERN ?DEALLOC_XSTACK8
        EXTERN ?L_ADD
        EXTERN ?L_MOV_X
        EXTERN ?L_SHL
        EXTERN ?MOVE_LONG8_XDATA_XDATA
        EXTERN ?PUSH_XSTACK_I_THREE
        EXTERN ?PUSH_XSTACK_I_TWO
        EXTERN ?UL_DIV_MOD
        EXTERN ?UL_SHR
        EXTERN ?V0
        EXTERN ?XSP
        EXTERN ?XSTACK_DISP0_8
        EXTERN __INIT_XDATA_I
        EXTERN __INIT_XDATA_Z

        PUBLIC ??_ltoa?relay
        FUNCTION ??_ltoa?relay,0203H
        PUBLIC ??osal_AddrEqual?relay
        FUNCTION ??osal_AddrEqual?relay,0203H
        PUBLIC ??osal_ExtAddrEqual?relay
        FUNCTION ??osal_ExtAddrEqual?relay,0203H
        PUBLIC ??osal_build_uint16?relay
        FUNCTION ??osal_build_uint16?relay,0203H
        PUBLIC ??osal_build_uint32?relay
        FUNCTION ??osal_build_uint32?relay,0203H
        PUBLIC ??osal_cpyExtAddr?relay
        FUNCTION ??osal_cpyExtAddr?relay,0203H
        PUBLIC ??osal_init_system?relay
        FUNCTION ??osal_init_system?relay,0203H
        PUBLIC ??osal_int_disable?relay
        FUNCTION ??osal_int_disable?relay,0203H
        PUBLIC ??osal_int_enable?relay
        FUNCTION ??osal_int_enable?relay,0203H
        PUBLIC ??osal_isr_register?relay
        FUNCTION ??osal_isr_register?relay,0203H
        PUBLIC ??osal_memcpy?relay
        FUNCTION ??osal_memcpy?relay,0203H
        PUBLIC ??osal_memset?relay
        FUNCTION ??osal_memset?relay,0203H
        PUBLIC ??osal_msg_allocate?relay
        FUNCTION ??osal_msg_allocate?relay,0203H
        PUBLIC ??osal_msg_deallocate?relay
        FUNCTION ??osal_msg_deallocate?relay,0203H
        PUBLIC ??osal_msg_dequeue?relay
        FUNCTION ??osal_msg_dequeue?relay,0203H
        PUBLIC ??osal_msg_enqueue?relay
        FUNCTION ??osal_msg_enqueue?relay,0203H
        PUBLIC ??osal_msg_enqueue_max?relay
        FUNCTION ??osal_msg_enqueue_max?relay,0203H
        PUBLIC ??osal_msg_extract?relay
        FUNCTION ??osal_msg_extract?relay,0203H
        PUBLIC ??osal_msg_push?relay
        FUNCTION ??osal_msg_push?relay,0203H
        PUBLIC ??osal_msg_receive?relay
        FUNCTION ??osal_msg_receive?relay,0203H
        PUBLIC ??osal_msg_send?relay
        FUNCTION ??osal_msg_send?relay,0203H
        PUBLIC ??osal_rand?relay
        FUNCTION ??osal_rand?relay,0203H
        PUBLIC ??osal_set_event?relay
        FUNCTION ??osal_set_event?relay,0203H
        PUBLIC ??osal_start_system?relay
        FUNCTION ??osal_start_system?relay,0203H
        PUBLIC ??osal_strlen?relay
        FUNCTION ??osal_strlen?relay,0203H
        PUBWEAK _A_IEN0
        PUBWEAK __Constant_2710
        PUBWEAK __Constant_5f5e100
        PUBLIC _ltoa
        FUNCTION _ltoa,021203H
        ARGFRAME XSTACK, 2, STACK
        LOCFRAME ISTACK, 2, STACK
        LOCFRAME XSTACK, 52, STACK
        PUBLIC osal_AddrEqual
        FUNCTION osal_AddrEqual,021203H
        ARGFRAME XSTACK, 0, STACK
        LOCFRAME XSTACK, 9, STACK
        PUBLIC osal_ExtAddrEqual
        FUNCTION osal_ExtAddrEqual,0203H
        ARGFRAME XSTACK, 9, STACK
        ARGFRAME IOVERLAY, 0, STATIC
        ARGFRAME DOVERLAY, 0, STATIC
        LOCFRAME XSTACK, 10, STACK
        PUBLIC osal_build_uint16
        FUNCTION osal_build_uint16,0203H
        ARGFRAME XSTACK, 0, STACK
        LOCFRAME XSTACK, 9, STACK
        PUBLIC osal_build_uint32
        FUNCTION osal_build_uint32,0203H
        ARGFRAME XSTACK, 0, STACK
        LOCFRAME XSTACK, 16, STACK
        PUBLIC osal_cpyExtAddr
        FUNCTION osal_cpyExtAddr,021203H
        ARGFRAME XSTACK, 0, STACK
        LOCFRAME XSTACK, 14, STACK
        PUBLIC osal_init_system
        FUNCTION osal_init_system,021203H
        ARGFRAME XSTACK, 0, STACK
        LOCFRAME ISTACK, 2, STACK
        PUBLIC osal_int_disable
        FUNCTION osal_int_disable,0203H
        ARGFRAME XSTACK, 0, STACK
        PUBLIC osal_int_enable
        FUNCTION osal_int_enable,0203H
        ARGFRAME XSTACK, 0, STACK
        PUBLIC osal_isr_register
        FUNCTION osal_isr_register,0203H
        ARGFRAME XSTACK, 0, STACK
        PUBLIC osal_memcpy
        FUNCTION osal_memcpy,0203H
        ARGFRAME XSTACK, 14, STACK
        ARGFRAME IOVERLAY, 0, STATIC
        ARGFRAME DOVERLAY, 0, STATIC
        LOCFRAME ISTACK, 1, STACK
        LOCFRAME XSTACK, 11, STACK
        PUBLIC osal_memset
        FUNCTION osal_memset,021203H
        ARGFRAME XSTACK, 0, STACK
        LOCFRAME XSTACK, 12, STACK
        PUBLIC osal_msg_allocate
        FUNCTION osal_msg_allocate,021203H
        ARGFRAME XSTACK, 0, STACK
        LOCFRAME ISTACK, 1, STACK
        LOCFRAME XSTACK, 10, STACK
        PUBLIC osal_msg_deallocate
        FUNCTION osal_msg_deallocate,021203H
        ARGFRAME XSTACK, 9, STACK
        ARGFRAME IOVERLAY, 0, STATIC
        ARGFRAME DOVERLAY, 0, STATIC
        LOCFRAME ISTACK, 2, STACK
        PUBLIC osal_msg_dequeue
        FUNCTION osal_msg_dequeue,0203H
        ARGFRAME XSTACK, 0, STACK
        LOCFRAME ISTACK, 1, STACK
        LOCFRAME XSTACK, 10, STACK
        PUBLIC osal_msg_enqueue
        FUNCTION osal_msg_enqueue,0203H
        ARGFRAME XSTACK, 9, STACK
        ARGFRAME IOVERLAY, 0, STATIC
        ARGFRAME DOVERLAY, 0, STATIC
        LOCFRAME XSTACK, 9, STACK
        PUBLIC osal_msg_enqueue_max
        FUNCTION osal_msg_enqueue_max,0203H
        ARGFRAME XSTACK, 0, STACK
        LOCFRAME XSTACK, 10, STACK
        PUBLIC osal_msg_extract
        FUNCTION osal_msg_extract,0203H
        ARGFRAME XSTACK, 14, STACK
        ARGFRAME IOVERLAY, 0, STATIC
        ARGFRAME DOVERLAY, 0, STATIC
        LOCFRAME ISTACK, 1, STACK
        LOCFRAME XSTACK, 9, STACK
        PUBLIC osal_msg_push
        FUNCTION osal_msg_push,0203H
        ARGFRAME XSTACK, 0, STACK
        LOCFRAME XSTACK, 9, STACK
        PUBLIC osal_msg_receive
        FUNCTION osal_msg_receive,021203H
        ARGFRAME XSTACK, 0, STACK
        LOCFRAME XSTACK, 14, STACK
        PUBLIC osal_msg_send
        FUNCTION osal_msg_send,021203H
        ARGFRAME XSTACK, 0, STACK
        LOCFRAME ISTACK, 1, STACK
        LOCFRAME XSTACK, 9, STACK
        PUBLIC osal_qHead
        PUBLIC osal_rand
        FUNCTION osal_rand,021203H
        ARGFRAME XSTACK, 0, STACK
        LOCFRAME ISTACK, 2, STACK
        PUBLIC osal_set_event
        FUNCTION osal_set_event,0203H
        ARGFRAME XSTACK, 9, STACK
        ARGFRAME IOVERLAY, 0, STATIC
        ARGFRAME DOVERLAY, 0, STATIC
        LOCFRAME ISTACK, 3, STACK
        PUBLIC osal_start_system
        FUNCTION osal_start_system,021203H
        ARGFRAME XSTACK, 0, STACK
        LOCFRAME ISTACK, 1, STACK
        LOCFRAME XSTACK, 10, STACK
        PUBLIC osal_strlen
        FUNCTION osal_strlen,021203H
        ARGFRAME XSTACK, 0, STACK
        LOCFRAME ISTACK, 2, STACK
        
        CFI Names cfiNames0
        CFI StackFrame CFA_SP SP DATA
        CFI StackFrame CFA_PSP16 PSP16 XDATA
        CFI StackFrame CFA_XSP16 XSP16 XDATA
        CFI StaticOverlayFrame CFA_IOVERLAY IOVERLAY
        CFI StaticOverlayFrame CFA_DOVERLAY DOVERLAY
        CFI Resource `PSW.CY`:1, `B.BR0`:1, `B.BR1`:1, `B.BR2`:1, `B.BR3`:1
        CFI Resource `B.BR4`:1, `B.BR5`:1, `B.BR6`:1, `B.BR7`:1, `VB.BR8`:1
        CFI Resource `VB.BR9`:1, `VB.BR10`:1, `VB.BR11`:1, `VB.BR12`:1
        CFI Resource `VB.BR13`:1, `VB.BR14`:1, `VB.BR15`:1, VB:8, B:8, A:8
        CFI Resource PSW:8, DPL0:8, DPH0:8, R0:8, R1:8, R2:8, R3:8, R4:8, R5:8
        CFI Resource R6:8, R7:8, V0:8, V1:8, V2:8, V3:8, V4:8, V5:8, V6:8, V7:8
        CFI Resource SP:8, PSPH:8, PSPL:8, PSP16:16, XSPH:8, XSPL:8, XSP16:16
        CFI VirtualResource ?RET:24
        CFI Resource ?BRET_EXT:8
        CFI VirtualResource ?RET_HIGH:8, ?RET_LOW:8
        CFI ResourceParts PSP16 PSPH, PSPL
        CFI ResourceParts XSP16 XSPH, XSPL
        CFI ResourceParts ?RET ?BRET_EXT, ?RET_HIGH, ?RET_LOW
        CFI EndNames cfiNames0
        
        CFI Common cfiCommon0 Using cfiNames0
        CFI CodeAlign 1
        CFI DataAlign -1
        CFI ReturnAddress ?RET CODE
        CFI CFA_DOVERLAY Used
        CFI CFA_IOVERLAY Used
        CFI CFA_SP SP+-3
        CFI CFA_PSP16 PSP16+0
        CFI CFA_XSP16 XSP16+0
        CFI `PSW.CY` SameValue
        CFI `B.BR0` SameValue
        CFI `B.BR1` SameValue
        CFI `B.BR2` SameValue
        CFI `B.BR3` SameValue
        CFI `B.BR4` SameValue
        CFI `B.BR5` SameValue
        CFI `B.BR6` SameValue
        CFI `B.BR7` SameValue
        CFI `VB.BR8` SameValue
        CFI `VB.BR9` SameValue
        CFI `VB.BR10` SameValue
        CFI `VB.BR11` SameValue
        CFI `VB.BR12` SameValue
        CFI `VB.BR13` SameValue
        CFI `VB.BR14` SameValue
        CFI `VB.BR15` SameValue
        CFI VB SameValue
        CFI B Undefined
        CFI A Undefined
        CFI PSW SameValue
        CFI DPL0 SameValue
        CFI DPH0 SameValue
        CFI R0 Undefined
        CFI R1 Undefined
        CFI R2 Undefined
        CFI R3 Undefined
        CFI R4 Undefined
        CFI R5 Undefined
        CFI R6 SameValue
        CFI R7 SameValue
        CFI V0 SameValue
        CFI V1 SameValue
        CFI V2 SameValue
        CFI V3 SameValue
        CFI V4 SameValue
        CFI V5 SameValue
        CFI V6 SameValue
        CFI V7 SameValue
        CFI PSPH Undefined
        CFI PSPL Undefined
        CFI XSPH Undefined
        CFI XSPL Undefined
        CFI ?RET Concat
        CFI ?BRET_EXT Frame(CFA_SP, 3)
        CFI ?RET_HIGH Frame(CFA_SP, 2)
        CFI ?RET_LOW Frame(CFA_SP, 1)
        CFI EndCommon cfiCommon0
        
        
        CFI Common cfiCommon1 Using cfiNames0
        CFI CodeAlign 1
        CFI DataAlign -1
        CFI ReturnAddress ?RET CODE
        CFI CFA_DOVERLAY Used
        CFI CFA_IOVERLAY Used
        CFI CFA_SP SP+-2
        CFI CFA_PSP16 PSP16+0
        CFI CFA_XSP16 XSP16+0
        CFI `PSW.CY` SameValue
        CFI `B.BR0` SameValue
        CFI `B.BR1` SameValue
        CFI `B.BR2` SameValue
        CFI `B.BR3` SameValue
        CFI `B.BR4` SameValue
        CFI `B.BR5` SameValue
        CFI `B.BR6` SameValue
        CFI `B.BR7` SameValue
        CFI `VB.BR8` SameValue
        CFI `VB.BR9` SameValue
        CFI `VB.BR10` SameValue
        CFI `VB.BR11` SameValue
        CFI `VB.BR12` SameValue
        CFI `VB.BR13` SameValue
        CFI `VB.BR14` SameValue
        CFI `VB.BR15` SameValue
        CFI VB SameValue
        CFI B SameValue
        CFI A SameValue
        CFI PSW SameValue
        CFI DPL0 SameValue
        CFI DPH0 SameValue
        CFI R0 SameValue
        CFI R1 SameValue
        CFI R2 SameValue
        CFI R3 SameValue
        CFI R4 SameValue
        CFI R5 SameValue
        CFI R6 SameValue
        CFI R7 SameValue
        CFI V0 SameValue
        CFI V1 SameValue
        CFI V2 SameValue
        CFI V3 SameValue
        CFI V4 SameValue
        CFI V5 SameValue
        CFI V6 SameValue
        CFI V7 SameValue
        CFI PSPH Undefined
        CFI PSPL Undefined
        CFI XSPH Undefined
        CFI XSPL Undefined
        CFI ?RET Concat
        CFI ?BRET_EXT SameValue
        CFI ?RET_HIGH Frame(CFA_SP, 2)
        CFI ?RET_LOW Frame(CFA_SP, 1)
        CFI EndCommon cfiCommon1
        
strlen              SYMBOL "strlen"
memset              SYMBOL "memset"
_itoa               SYMBOL "_itoa"
strcpy              SYMBOL "strcpy"
strcat              SYMBOL "strcat"
Onboard_rand        SYMBOL "Onboard_rand"
osal_mem_alloc      SYMBOL "osal_mem_alloc"
osal_mem_free       SYMBOL "osal_mem_free"
osal_mem_init       SYMBOL "osal_mem_init"
osalTimerInit       SYMBOL "osalTimerInit"
osal_pwrmgr_init    SYMBOL "osal_pwrmgr_init"
osalInitTasks       SYMBOL "osalInitTasks"
osal_mem_kick       SYMBOL "osal_mem_kick"
Hal_ProcessPoll     SYMBOL "Hal_ProcessPoll"
??Hal_ProcessPoll?relay SYMBOL "?relay", Hal_ProcessPoll
??Onboard_rand?relay SYMBOL "?relay", Onboard_rand
??_itoa?relay       SYMBOL "?relay", _itoa
??memset?relay      SYMBOL "?relay", memset
??osalInitTasks?relay SYMBOL "?relay", osalInitTasks
??osalTimerInit?relay SYMBOL "?relay", osalTimerInit
??osal_mem_alloc?relay SYMBOL "?relay", osal_mem_alloc
??osal_mem_free?relay SYMBOL "?relay", osal_mem_free
??osal_mem_init?relay SYMBOL "?relay", osal_mem_init
??osal_mem_kick?relay SYMBOL "?relay", osal_mem_kick
??osal_pwrmgr_init?relay SYMBOL "?relay", osal_pwrmgr_init
??strcat?relay      SYMBOL "?relay", strcat
??strcpy?relay      SYMBOL "?relay", strcpy
??strlen?relay      SYMBOL "?relay", strlen
_ltoa               SYMBOL "_ltoa"
??_ltoa?relay       SYMBOL "?relay", _ltoa
osal_AddrEqual      SYMBOL "osal_AddrEqual"
??osal_AddrEqual?relay SYMBOL "?relay", osal_AddrEqual
osal_ExtAddrEqual   SYMBOL "osal_ExtAddrEqual"
??osal_ExtAddrEqual?relay SYMBOL "?relay", osal_ExtAddrEqual
osal_build_uint16   SYMBOL "osal_build_uint16"
??osal_build_uint16?relay SYMBOL "?relay", osal_build_uint16
osal_build_uint32   SYMBOL "osal_build_uint32"
??osal_build_uint32?relay SYMBOL "?relay", osal_build_uint32
osal_cpyExtAddr     SYMBOL "osal_cpyExtAddr"
??osal_cpyExtAddr?relay SYMBOL "?relay", osal_cpyExtAddr
osal_init_system    SYMBOL "osal_init_system"
??osal_init_system?relay SYMBOL "?relay", osal_init_system
osal_int_disable    SYMBOL "osal_int_disable"
??osal_int_disable?relay SYMBOL "?relay", osal_int_disable
osal_int_enable     SYMBOL "osal_int_enable"
??osal_int_enable?relay SYMBOL "?relay", osal_int_enable
osal_isr_register   SYMBOL "osal_isr_register"
??osal_isr_register?relay SYMBOL "?relay", osal_isr_register
osal_memcpy         SYMBOL "osal_memcpy"
??osal_memcpy?relay SYMBOL "?relay", osal_memcpy
osal_memset         SYMBOL "osal_memset"
??osal_memset?relay SYMBOL "?relay", osal_memset
osal_msg_allocate   SYMBOL "osal_msg_allocate"
??osal_msg_allocate?relay SYMBOL "?relay", osal_msg_allocate
osal_msg_deallocate SYMBOL "osal_msg_deallocate"
??osal_msg_deallocate?relay SYMBOL "?relay", osal_msg_deallocate
osal_msg_dequeue    SYMBOL "osal_msg_dequeue"
??osal_msg_dequeue?relay SYMBOL "?relay", osal_msg_dequeue
osal_msg_enqueue    SYMBOL "osal_msg_enqueue"
??osal_msg_enqueue?relay SYMBOL "?relay", osal_msg_enqueue
osal_msg_enqueue_max SYMBOL "osal_msg_enqueue_max"
??osal_msg_enqueue_max?relay SYMBOL "?relay", osal_msg_enqueue_max
osal_msg_extract    SYMBOL "osal_msg_extract"
??osal_msg_extract?relay SYMBOL "?relay", osal_msg_extract
osal_msg_push       SYMBOL "osal_msg_push"
??osal_msg_push?relay SYMBOL "?relay", osal_msg_push
osal_msg_receive    SYMBOL "osal_msg_receive"
??osal_msg_receive?relay SYMBOL "?relay", osal_msg_receive
osal_msg_send       SYMBOL "osal_msg_send"
??osal_msg_send?relay SYMBOL "?relay", osal_msg_send
osal_rand           SYMBOL "osal_rand"
??osal_rand?relay   SYMBOL "?relay", osal_rand
osal_set_event      SYMBOL "osal_set_event"
??osal_set_event?relay SYMBOL "?relay", osal_set_event
osal_start_system   SYMBOL "osal_start_system"
??osal_start_system?relay SYMBOL "?relay", osal_start_system
osal_strlen         SYMBOL "osal_strlen"
??osal_strlen?relay SYMBOL "?relay", osal_strlen

        EXTERN strlen
        FUNCTION strlen,010202H
        ARGFRAME ISTACK, 2, STACK
        ARGFRAME PSTACK, 0, STACK
        ARGFRAME XSTACK, 52, STACK
        ARGFRAME IOVERLAY, 0, STATIC
        ARGFRAME DOVERLAY, 0, STATIC
        EXTERN memset
        FUNCTION memset,010202H
        ARGFRAME ISTACK, 0, STACK
        ARGFRAME PSTACK, 0, STACK
        ARGFRAME XSTACK, 12, STACK
        ARGFRAME IOVERLAY, 0, STATIC
        ARGFRAME DOVERLAY, 0, STATIC
        EXTERN _itoa
        FUNCTION _itoa,0202H
        ARGFRAME ISTACK, 0, STACK
        ARGFRAME PSTACK, 0, STACK
        ARGFRAME XSTACK, 52, STACK
        ARGFRAME IOVERLAY, 0, STATIC
        ARGFRAME DOVERLAY, 0, STATIC
        EXTERN strcpy
        FUNCTION strcpy,010202H
        ARGFRAME ISTACK, 0, STACK
        ARGFRAME PSTACK, 0, STACK
        ARGFRAME XSTACK, 52, STACK
        ARGFRAME IOVERLAY, 0, STATIC
        ARGFRAME DOVERLAY, 0, STATIC
        EXTERN strcat
        FUNCTION strcat,010202H
        ARGFRAME ISTACK, 0, STACK
        ARGFRAME PSTACK, 0, STACK
        ARGFRAME XSTACK, 52, STACK
        ARGFRAME IOVERLAY, 0, STATIC
        ARGFRAME DOVERLAY, 0, STATIC
        EXTERN Onboard_rand
        FUNCTION Onboard_rand,0202H
        ARGFRAME ISTACK, 2, STACK
        ARGFRAME PSTACK, 0, STACK
        ARGFRAME XSTACK, 0, STACK
        ARGFRAME IOVERLAY, 0, STATIC
        ARGFRAME DOVERLAY, 0, STATIC
        EXTERN osal_mem_alloc
        FUNCTION osal_mem_alloc,0202H
        ARGFRAME ISTACK, 0, STACK
        ARGFRAME PSTACK, 0, STACK
        ARGFRAME XSTACK, 10, STACK
        ARGFRAME IOVERLAY, 0, STATIC
        ARGFRAME DOVERLAY, 0, STATIC
        EXTERN osal_mem_free
        FUNCTION osal_mem_free,0202H
        ARGFRAME ISTACK, 2, STACK
        ARGFRAME PSTACK, 0, STACK
        ARGFRAME XSTACK, 0, STACK
        ARGFRAME IOVERLAY, 0, STATIC
        ARGFRAME DOVERLAY, 0, STATIC
        EXTERN osal_mem_init
        FUNCTION osal_mem_init,0202H
        ARGFRAME ISTACK, 2, STACK
        ARGFRAME PSTACK, 0, STACK
        ARGFRAME XSTACK, 0, STACK
        ARGFRAME IOVERLAY, 0, STATIC
        ARGFRAME DOVERLAY, 0, STATIC
        EXTERN osalTimerInit
        FUNCTION osalTimerInit,0202H
        ARGFRAME ISTACK, 2, STACK
        ARGFRAME PSTACK, 0, STACK
        ARGFRAME XSTACK, 0, STACK
        ARGFRAME IOVERLAY, 0, STATIC
        ARGFRAME DOVERLAY, 0, STATIC
        EXTERN osal_pwrmgr_init
        FUNCTION osal_pwrmgr_init,0202H
        ARGFRAME ISTACK, 2, STACK
        ARGFRAME PSTACK, 0, STACK
        ARGFRAME XSTACK, 0, STACK
        ARGFRAME IOVERLAY, 0, STATIC
        ARGFRAME DOVERLAY, 0, STATIC
        EXTERN osalInitTasks
        FUNCTION osalInitTasks,0202H
        ARGFRAME ISTACK, 2, STACK
        ARGFRAME PSTACK, 0, STACK
        ARGFRAME XSTACK, 0, STACK
        ARGFRAME IOVERLAY, 0, STATIC
        ARGFRAME DOVERLAY, 0, STATIC
        EXTERN osal_mem_kick
        FUNCTION osal_mem_kick,0202H
        ARGFRAME ISTACK, 2, STACK
        ARGFRAME PSTACK, 0, STACK
        ARGFRAME XSTACK, 0, STACK
        ARGFRAME IOVERLAY, 0, STATIC
        ARGFRAME DOVERLAY, 0, STATIC
        EXTERN Hal_ProcessPoll
        FUNCTION Hal_ProcessPoll,0202H
        ARGFRAME ISTACK, 0, STACK
        ARGFRAME PSTACK, 0, STACK
        ARGFRAME XSTACK, 10, STACK
        ARGFRAME IOVERLAY, 0, STATIC
        ARGFRAME DOVERLAY, 0, STATIC
        EXTERN ??Hal_ProcessPoll?relay
        FUNCTION ??Hal_ProcessPoll?relay,00H
        EXTERN ??Onboard_rand?relay
        FUNCTION ??Onboard_rand?relay,00H
        EXTERN ??_itoa?relay
        FUNCTION ??_itoa?relay,00H
        EXTERN ??memset?relay
        FUNCTION ??memset?relay,00H
        EXTERN ??osalInitTasks?relay
        FUNCTION ??osalInitTasks?relay,00H
        EXTERN ??osalTimerInit?relay
        FUNCTION ??osalTimerInit?relay,00H
        EXTERN ??osal_mem_alloc?relay
        FUNCTION ??osal_mem_alloc?relay,00H
        EXTERN ??osal_mem_free?relay
        FUNCTION ??osal_mem_free?relay,00H
        EXTERN ??osal_mem_init?relay
        FUNCTION ??osal_mem_init?relay,00H
        EXTERN ??osal_mem_kick?relay
        FUNCTION ??osal_mem_kick?relay,00H
        EXTERN ??osal_pwrmgr_init?relay
        FUNCTION ??osal_pwrmgr_init?relay,00H
        EXTERN ??strcat?relay
        FUNCTION ??strcat?relay,00H
        EXTERN ??strcpy?relay
        FUNCTION ??strcpy?relay,00H
        EXTERN ??strlen?relay
        FUNCTION ??strlen?relay,00H
        EXTERN tasksArr
        EXTERN tasksCnt
        EXTERN tasksEvents

// C:\Texas Instruments\ZStack-1.4.3-1.2.1\Components\osal\common\OSAL.c
//    1 /**************************************************************************************************
//    2   Filename:       OSAL.c
//    3   Revised:        $Date: 2007-10-28 18:43:04 -0700 (Sun, 28 Oct 2007) $
//    4   Revision:       $Revision: 15800 $
//    5 
//    6 
//    7   Description:    This API allows the software components in the Z-stack to be written
//    8                   independently of the specifics of the operating system, kernel or tasking
//    9                   environment (including control loops or connect-to-interrupt systems).
//   10 
//   11 
//   12   Copyright 2004-2007 Texas Instruments Incorporated. All rights reserved.
//   13 
//   14   IMPORTANT: Your use of this Software is limited to those specific rights
//   15   granted under the terms of a software license agreement between the user
//   16   who downloaded the software, his/her employer (which must be your employer)
//   17   and Texas Instruments Incorporated (the "License").  You may not use this
//   18   Software unless you agree to abide by the terms of the License. The License
//   19   limits your use, and you acknowledge, that the Software may not be modified,
//   20   copied or distributed unless embedded on a Texas Instruments microcontroller
//   21   or used solely and exclusively in conjunction with a Texas Instruments radio
//   22   frequency transceiver, which is integrated into your product.  Other than for
//   23   the foregoing purpose, you may not use, reproduce, copy, prepare derivative
//   24   works of, modify, distribute, perform, display or sell this Software and/or
//   25   its documentation for any purpose.
//   26 
//   27   YOU FURTHER ACKNOWLEDGE AND AGREE THAT THE SOFTWARE AND DOCUMENTATION ARE
//   28   PROVIDED “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, 
//   29   INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY, TITLE, 
//   30   NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL
//   31   TEXAS INSTRUMENTS OR ITS LICENSORS BE LIABLE OR OBLIGATED UNDER CONTRACT,
//   32   NEGLIGENCE, STRICT LIABILITY, CONTRIBUTION, BREACH OF WARRANTY, OR OTHER
//   33   LEGAL EQUITABLE THEORY ANY DIRECT OR INDIRECT DAMAGES OR EXPENSES
//   34   INCLUDING BUT NOT LIMITED TO ANY INCIDENTAL, SPECIAL, INDIRECT, PUNITIVE
//   35   OR CONSEQUENTIAL DAMAGES, LOST PROFITS OR LOST DATA, COST OF PROCUREMENT
//   36   OF SUBSTITUTE GOODS, TECHNOLOGY, SERVICES, OR ANY CLAIMS BY THIRD PARTIES
//   37   (INCLUDING BUT NOT LIMITED TO ANY DEFENSE THEREOF), OR OTHER SIMILAR COSTS.
//   38 
//   39   Should you have any questions regarding your right to use this Software,
//   40   contact Texas Instruments Incorporated at www.TI.com. 
//   41 **************************************************************************************************/
//   42 
//   43 /*********************************************************************
//   44  * INCLUDES
//   45  */
//   46 
//   47 #include <stdlib.h>
//   48 #include <string.h>
//   49 
//   50 #include "ZComDef.h"
//   51 #include "OSAL.h"
//   52 #include "OSAL_Tasks.h"
//   53 #include "OSAL_Custom.h"
//   54 #include "OSAL_Memory.h"
//   55 #include "OSAL_PwrMgr.h"
//   56 #include "hal_mcu.h"

        ASEGN SFR_AN:DATA:NOROOT,0a8H
// union <unnamed> volatile __sfr _A_IEN0
_A_IEN0:
        DS 1

        RSEG XDATA_Z:XDATA:NOROOT(0)
        DATA
`?<Constant "">`:
        DS 10
        REQUIRE __INIT_XDATA_Z

        RSEG XDATA_Z:XDATA:NOROOT(0)
        DATA
`?<Constant "">_1`:
        DS 10
        REQUIRE __INIT_XDATA_Z

        RSEG XDATA_Z:XDATA:NOROOT(0)
        DATA
`?<Constant "">_2`:
        DS 10
        REQUIRE __INIT_XDATA_Z
//   57 
//   58 #include "OnBoard.h"
//   59 
//   60 /* HAL */
//   61 #include "hal_drivers.h"
//   62 
//   63 /*********************************************************************
//   64  * MACROS
//   65  */
//   66 
//   67 #define OSAL_MSG_LEN(msg_ptr)      ((osal_msg_hdr_t *) (msg_ptr) - 1)->len
//   68 
//   69 #define OSAL_MSG_ID(msg_ptr)      ((osal_msg_hdr_t *) (msg_ptr) - 1)->dest_id
//   70 
//   71 /*********************************************************************
//   72  * CONSTANTS
//   73  */
//   74 
//   75 /*********************************************************************
//   76  * TYPEDEFS
//   77  */
//   78 
//   79 /*********************************************************************
//   80  * GLOBAL VARIABLES
//   81  */
//   82 
//   83 // Message Pool Definitions

        RSEG XDATA_Z:XDATA:NOROOT(0)
//   84 osal_msg_q_t osal_qHead;
osal_qHead:
        DS 2
        REQUIRE __INIT_XDATA_Z
//   85 
//   86 #if defined( OSAL_TOTAL_MEM )
//   87   UINT16 osal_msg_cnt;
//   88 #endif
//   89 
//   90 /*********************************************************************
//   91  * EXTERNAL VARIABLES
//   92  */
//   93 
//   94 /*********************************************************************
//   95  * EXTERNAL FUNCTIONS
//   96  */
//   97 
//   98 /*********************************************************************
//   99  * LOCAL VARIABLES
//  100  */
//  101 
//  102 /*********************************************************************
//  103  * LOCAL FUNCTION PROTOTYPES
//  104  */
//  105 
//  106 /*********************************************************************
//  107  * HELPER FUNCTIONS
//  108  */
//  109 /* very ugly stub so Keil can compile */
//  110 #ifdef __KEIL__
//  111 char *  itoa ( int value, char * buffer, int radix )
//  112 {
//  113   return(buffer);
//  114 }
//  115 #endif
//  116 
//  117 /*********************************************************************
//  118  * @fn      osal_strlen
//  119  *
//  120  * @brief
//  121  *
//  122  *   Calculates the length of a string.  The string must be null
//  123  *   terminated.
//  124  *
//  125  * @param   char *pString - pointer to text string
//  126  *
//  127  * @return  int - number of characters
//  128  */

        RSEG BANKED_CODE:CODE:NOROOT(0)
//  129 int osal_strlen( char *pString )
osal_strlen:
        CFI Block cfiBlock0 Using cfiCommon0
        CFI Function osal_strlen
//  130 {
        FUNCALL osal_strlen, strlen
        LOCFRAME ISTACK, 2, STACK
        LOCFRAME PSTACK, 0, STACK
        LOCFRAME XSTACK, 0, STACK
        LOCFRAME IOVERLAY, 0, STATIC
        LOCFRAME DOVERLAY, 0, STATIC
        ARGFRAME ISTACK, 2, STACK
        ARGFRAME PSTACK, 0, STACK
        ARGFRAME XSTACK, 0, STACK
        ARGFRAME IOVERLAY, 0, STATIC
        ARGFRAME DOVERLAY, 0, STATIC
        PUSH    DPL
        CFI DPL0 Frame(CFA_SP, 4)
        CFI CFA_SP SP+-4
        PUSH    DPH
        CFI DPH0 Frame(CFA_SP, 5)
        CFI CFA_SP SP+-5
        ; Saved register size: 2
        ; Auto size: 0
//  131   return (int)( strlen( pString ) );
        ; Setup parameters for call to function strlen
        LCALL   ??strlen?relay
        LJMP    ?Subroutine19 & 0xFFFF
        CFI EndBlock cfiBlock0
//  132 }
//  133 
//  134 /*********************************************************************
//  135  * @fn      osal_memcpy
//  136  *
//  137  * @brief
//  138  *
//  139  *   Generic memory copy.
//  140  *
//  141  *   Note: This function differs from the standard memcpy(), since
//  142  *         it returns the pointer to the next destination byte. The
//  143  *         standard memcpy() returns the original destination address.
//  144  *
//  145  * @param   dst - destination address
//  146  * @param   src - source address
//  147  * @param   len - number of bytes to copy
//  148  *
//  149  * @return  pointer to end of destination buffer
//  150  */

        RSEG BANKED_CODE:CODE:NOROOT(0)
//  151 void *osal_memcpy( void *dst, const void GENERIC *src, unsigned int len )
osal_memcpy:
        CFI Block cfiBlock1 Using cfiCommon0
        CFI Function osal_memcpy
//  152 {
        MOV     A,#-0xb
        LCALL   ?BANKED_ENTER_XDATA
        CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-11)))
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 11)
        ; Saved register size: 11
        ; Auto size: 0
        MOV     A,R2
        MOV     R6,A
        MOV     A,R3
        MOV     R7,A
        MOV     A,#0xb
        LCALL   ?XSTACK_DISP0_8
        MOVX    A,@DPTR
        MOV     ?V0 + 0,A
        INC     DPTR
        MOVX    A,@DPTR
        MOV     ?V0 + 1,A
        INC     DPTR
        MOVX    A,@DPTR
//  153   byte *pDst;
//  154   const byte GENERIC *pSrc;
//  155 
//  156   pSrc = src;
        MOV     R1,?V0 + 0
        MOV     R2,?V0 + 1
        MOV     R3,A
//  157   pDst = dst;
        MOV     DPL,R6
        MOV     DPH,R7
        SJMP    ??osal_memcpy_0
//  158 
//  159   while ( len-- )
//  160     *pDst++ = *pSrc++;
??osal_memcpy_1:
        LCALL   ?C_GPTR_LOAD
        MOVX    @DPTR,A
        MOV     A,R1
        ADD     A,#0x1
        INC     R1
        MOV     A,R2
        ADDC    A,#0x0
        MOV     R2,A
        INC     DPTR
??osal_memcpy_0:
        MOV     A,R4
        MOV     R6,A
        MOV     A,R5
        MOV     R7,A
        MOV     A,#-0x1
        ADD     A,R6
        DEC     R4
        MOV     A,#-0x1
        ADDC    A,R7
        MOV     R5,A
        MOV     A,R6
        JNZ     ??osal_memcpy_2
        MOV     A,R7
??osal_memcpy_2:
        JNZ     ??osal_memcpy_1
//  161 
//  162   return ( pDst );
        MOV     R2,DPL
        MOV     R3,DPH
        CFI EndBlock cfiBlock1
        REQUIRE ?Subroutine20
        ; // Fall through to label ?Subroutine20
//  163 }

        RSEG BANKED_CODE:CODE:NOROOT(0)
?Subroutine20:
        CFI Block cfiBlock2 Using cfiCommon0
        CFI NoFunction
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 11)
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-11)))
        CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        MOV     R7,#0x3
        LJMP    ?BANKED_LEAVE_XDATA
        CFI EndBlock cfiBlock2
//  164 
//  165 /*********************************************************************
//  166  * @fn      osal_cpyExtAddr
//  167  *
//  168  * @brief
//  169  *
//  170  *   Copy extended addresses.  This function will copy 8 bytes.
//  171  *
//  172  * @param   dest  destination address pointer
//  173  * @param   src   source address pointer
//  174  *
//  175  * @return  dest + Z_EXTADDR_LEN
//  176  */

        RSEG BANKED_CODE:CODE:NOROOT(0)
//  177 void *osal_cpyExtAddr( void *dest, void *src )
osal_cpyExtAddr:
        CFI Block cfiBlock3 Using cfiCommon0
        CFI Function osal_cpyExtAddr
//  178 {
        FUNCALL osal_cpyExtAddr, osal_memcpy
        LOCFRAME ISTACK, 0, STACK
        LOCFRAME PSTACK, 0, STACK
        LOCFRAME XSTACK, 14, STACK
        LOCFRAME IOVERLAY, 0, STATIC
        LOCFRAME DOVERLAY, 0, STATIC
        ARGFRAME ISTACK, 0, STACK
        ARGFRAME PSTACK, 0, STACK
        ARGFRAME XSTACK, 14, STACK
        ARGFRAME IOVERLAY, 0, STATIC
        ARGFRAME DOVERLAY, 0, STATIC
        MOV     A,#-0xb
        LCALL   ?BANKED_ENTER_XDATA
        CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-11)))
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 11)
        ; Saved register size: 11
        ; Auto size: 0
//  179   return osal_memcpy( dest, src, Z_EXTADDR_LEN );
        ; Setup parameters for call to function osal_memcpy
        MOV     ?V0 + 0,R4
        MOV     ?V0 + 1,R5
        MOV     ?V0 + 2,#0x0
        MOV     R0,#?V0 + 0
        LCALL   ?PUSH_XSTACK_I_THREE
        CFI CFA_XSP16 add(XSP16, 14)
        MOV     R4,#0x8
        MOV     R5,#0x0
        LCALL   ??osal_memcpy?relay
        MOV     A,#0x3
        LCALL   ?DEALLOC_XSTACK8
        CFI CFA_XSP16 add(XSP16, 11)
        SJMP    ?Subroutine20
        CFI EndBlock cfiBlock3
//  180 }
//  181 
//  182 /*********************************************************************
//  183  * @fn      osal_memset
//  184  *
//  185  * @brief
//  186  *
//  187  *   Set memory buffer to value.
//  188  *
//  189  * @param   dest - pointer to buffer
//  190  * @param   value - what to set each byte of the message
//  191  * @param   size - how big
//  192  *
//  193  * @return  value of next widget, 0 if no widget found
//  194  */

        RSEG BANKED_CODE:CODE:NOROOT(0)
//  195 void *osal_memset( void *dest, byte value, int len )
osal_memset:
        CFI Block cfiBlock4 Using cfiCommon0
        CFI Function osal_memset
//  196 {
        FUNCALL osal_memset, memset
        LOCFRAME ISTACK, 0, STACK
        LOCFRAME PSTACK, 0, STACK
        LOCFRAME XSTACK, 12, STACK
        LOCFRAME IOVERLAY, 0, STATIC
        LOCFRAME DOVERLAY, 0, STATIC
        ARGFRAME ISTACK, 0, STACK
        ARGFRAME PSTACK, 0, STACK
        ARGFRAME XSTACK, 12, STACK
        ARGFRAME IOVERLAY, 0, STATIC
        ARGFRAME DOVERLAY, 0, STATIC
        MOV     A,#-0xa
        LCALL   ?BANKED_ENTER_XDATA
        CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 10)
        ; Saved register size: 10
        ; Auto size: 0
//  197   return memset( dest, value, len );
        ; Setup parameters for call to function memset
        MOV     ?V0 + 0,R4
        MOV     ?V0 + 1,R5
        MOV     R0,#?V0 + 0
        LCALL   ?PUSH_XSTACK_I_TWO
        CFI CFA_XSP16 add(XSP16, 12)
        MOV     A,R1
        MOV     R4,A
        MOV     R5,#0x0
        LCALL   ??memset?relay
        MOV     A,#0x2
        LCALL   ?DEALLOC_XSTACK8
        CFI CFA_XSP16 add(XSP16, 10)
        LJMP    ?Subroutine21 & 0xFFFF
        CFI EndBlock cfiBlock4
//  198 }
//  199 
//  200 /*********************************************************************
//  201  * @fn      osal_build_uint16
//  202  *
//  203  * @brief
//  204  *
//  205  *   Build a uint16 out of 2 bytes (0 then 1).
//  206  *
//  207  * @param   swapped - 0 then 1
//  208  *
//  209  * @return  uint16
//  210  */

        RSEG BANKED_CODE:CODE:NOROOT(0)
//  211 uint16 osal_build_uint16( byte *swapped )
osal_build_uint16:
        CFI Block cfiBlock5 Using cfiCommon0
        CFI Function osal_build_uint16
//  212 {
        MOV     A,#-0x9
        LCALL   ?BANKED_ENTER_XDATA
        CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 9)
        ; Saved register size: 9
        ; Auto size: 0
//  213   return ( BUILD_UINT16( swapped[0], swapped[1] ) );
        MOV     DPL,R2
        MOV     DPH,R3
        MOVX    A,@DPTR
        MOV     R4,A
        INC     DPTR
        MOVX    A,@DPTR
        MOV     R1,A
        MOV     A,R4
        MOV     R2,A
        MOV     A,R1
        MOV     R3,A
        LJMP    ?Subroutine23 & 0xFFFF
        CFI EndBlock cfiBlock5
//  214 }
//  215 
//  216 /*********************************************************************
//  217  * @fn      osal_build_uint32
//  218  *
//  219  * @brief
//  220  *
//  221  *   Build a uint32 out of sequential bytes.
//  222  *
//  223  * @param   swapped - sequential bytes
//  224  * @param   len - number of bytes in the byte array
//  225  *
//  226  * @return  uint32
//  227  */

        RSEG BANKED_CODE:CODE:NOROOT(0)
//  228 uint32 osal_build_uint32( byte *swapped, byte len )
osal_build_uint32:
        CFI Block cfiBlock6 Using cfiCommon0
        CFI Function osal_build_uint32
//  229 {
        MOV     A,#-0x10
        LCALL   ?BANKED_ENTER_XDATA
        CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
        CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
        CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
        CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
        CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 16)
        ; Saved register size: 16
        ; Auto size: 0
//  230   if ( len == 2 )
        MOV     A,#0x2
        XRL     A,R1
        JNZ     ??osal_build_uint32_0
//  231     return ( BUILD_UINT32( swapped[0], swapped[1], 0L, 0L ) );
        MOV     DPL,R2
        MOV     DPH,R3
        LCALL   ?Subroutine16 & 0xFFFF
??CrossCallReturnLabel_36:
        MOV     R0,#?V0 + 4
        LCALL   ?L_SHL
        MOV     R0,#?V0 + 0
        MOV     R1,#?V0 + 4
        LCALL   ?L_ADD
        MOV     R2,?V0 + 0
        MOV     R3,?V0 + 1
        MOV     R4,?V0 + 2
        MOV     R5,?V0 + 3
        SJMP    ??osal_build_uint32_1
//  232   else if ( len == 3 )
??osal_build_uint32_0:
        MOV     A,#0x3
        XRL     A,R1
        JNZ     ??osal_build_uint32_2
//  233     return ( BUILD_UINT32( swapped[0], swapped[1], swapped[2], 0L ) );
        MOV     DPL,R2
        MOV     DPH,R3
        LCALL   ?Subroutine1 & 0xFFFF
??CrossCallReturnLabel_3:
        LCALL   ?L_SHL
        MOV     R0,#?V0 + 0
        MOV     R1,#?V0 + 4
        LCALL   ?L_ADD
        LCALL   ?Subroutine9 & 0xFFFF
??CrossCallReturnLabel_26:
        SJMP    ??CrossCallReturnLabel_36
//  234   else if ( len == 4 )
??osal_build_uint32_2:
        MOV     A,#0x4
        XRL     A,R1
        MOV     DPL,R2
        MOV     DPH,R3
        JNZ     ??osal_build_uint32_3
//  235     return ( BUILD_UINT32( swapped[0], swapped[1], swapped[2], swapped[3] ) );
        LCALL   ?Subroutine1 & 0xFFFF
??CrossCallReturnLabel_4:
        LCALL   ?L_SHL
        MOV     R0,#?V0 + 0
        MOV     R1,#?V0 + 4
        LCALL   ?L_ADD
        LCALL   ?Subroutine9 & 0xFFFF
??CrossCallReturnLabel_27:
        MOV     R0,#?V0 + 4
        LCALL   ?L_SHL
        MOV     R0,#?V0 + 0
        MOV     R1,#?V0 + 4
        LCALL   ?L_ADD
        MOV     DPL,R2
        MOV     DPH,R3
        INC     DPTR
        INC     DPTR
        INC     DPTR
        MOVX    A,@DPTR
        MOV     ?V0 + 4,A
        MOV     ?V0 + 6,#0x0
        MOV     A,#0x18
        SJMP    ??CrossCallReturnLabel_36
//  236   else
//  237     return ( (uint32)swapped[0] );
??osal_build_uint32_3:
        MOVX    A,@DPTR
        MOV     R2,A
        MOV     R3,#0x0
        MOV     R4,#0x0
        MOV     R5,#0x0
        CFI EndBlock cfiBlock6
??osal_build_uint32_1:
        REQUIRE ?Subroutine24
        ; // Fall through to label ?Subroutine24
//  238 }

        RSEG BANKED_CODE:CODE:NOROOT(0)
?Subroutine24:
        CFI Block cfiBlock7 Using cfiCommon0
        CFI NoFunction
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 16)
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
        CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
        CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
        CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
        CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
        CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
        CFI V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        MOV     R7,#0x8
        LJMP    ?BANKED_LEAVE_XDATA
        CFI EndBlock cfiBlock7

        RSEG BANKED_CODE:CODE:NOROOT(0)
?Subroutine9:
        CFI Block cfiCond8 Using cfiCommon0
        CFI NoFunction
        CFI Conditional ??CrossCallReturnLabel_26
        CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
        CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
        CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
        CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
        CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
        CFI V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 16)
        CFI Block cfiCond9 Using cfiCommon0
        CFI (cfiCond9) NoFunction
        CFI (cfiCond9) Conditional ??CrossCallReturnLabel_27
        CFI (cfiCond9) R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
        CFI (cfiCond9) VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
        CFI (cfiCond9) V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
        CFI (cfiCond9) V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
        CFI (cfiCond9) V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
        CFI (cfiCond9) V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
        CFI (cfiCond9) V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI (cfiCond9) V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI (cfiCond9) V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI (cfiCond9) V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI (cfiCond9) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI (cfiCond9) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI (cfiCond9) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI (cfiCond9) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI (cfiCond9) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI (cfiCond9) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI (cfiCond9) CFA_SP SP+0
        CFI (cfiCond9) CFA_XSP16 add(XSP16, 16)
        CFI Block cfiPicker10 Using cfiCommon1
        CFI (cfiPicker10) NoFunction
        CFI (cfiPicker10) Picker
        MOV     DPL,R2
        MOV     DPH,R3
        INC     DPTR
        INC     DPTR
        MOVX    A,@DPTR
        MOV     ?V0 + 4,A
        MOV     ?V0 + 5,#0x0
        MOV     A,#0x10
        RET
        CFI EndBlock cfiCond8
        CFI EndBlock cfiCond9
        CFI EndBlock cfiPicker10

        RSEG BANKED_CODE:CODE:NOROOT(0)
?Subroutine1:
        CFI Block cfiCond11 Using cfiCommon0
        CFI NoFunction
        CFI Conditional ??CrossCallReturnLabel_3
        CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
        CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
        CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
        CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
        CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
        CFI V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 16)
        CFI Block cfiCond12 Using cfiCommon0
        CFI (cfiCond12) NoFunction
        CFI (cfiCond12) Conditional ??CrossCallReturnLabel_4
        CFI (cfiCond12) R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
        CFI (cfiCond12) VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
        CFI (cfiCond12) V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
        CFI (cfiCond12) V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
        CFI (cfiCond12) V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
        CFI (cfiCond12) V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
        CFI (cfiCond12) V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI (cfiCond12) V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI (cfiCond12) V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI (cfiCond12) V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI (cfiCond12) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI (cfiCond12) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI (cfiCond12) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI (cfiCond12) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI (cfiCond12) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI (cfiCond12) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI (cfiCond12) CFA_SP SP+0
        CFI (cfiCond12) CFA_XSP16 add(XSP16, 16)
        CFI Block cfiPicker13 Using cfiCommon1
        CFI (cfiPicker13) NoFunction
        CFI (cfiPicker13) Picker
        LCALL   ?Subroutine16 & 0xFFFF
??CrossCallReturnLabel_37:
        MOV     R0,#?V0 + 4
        RET
        CFI EndBlock cfiCond11
        CFI EndBlock cfiCond12
        CFI EndBlock cfiPicker13

        RSEG BANKED_CODE:CODE:NOROOT(0)
?Subroutine16:
        CFI Block cfiCond14 Using cfiCommon0
        CFI NoFunction
        CFI Conditional ??CrossCallReturnLabel_36
        CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
        CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
        CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
        CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
        CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
        CFI V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 16)
        CFI Block cfiCond15 Using cfiCommon0
        CFI (cfiCond15) NoFunction
        CFI (cfiCond15) Conditional ??CrossCallReturnLabel_37, ??CrossCallReturnLabel_3
        CFI (cfiCond15) R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
        CFI (cfiCond15) VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
        CFI (cfiCond15) V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
        CFI (cfiCond15) V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
        CFI (cfiCond15) V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
        CFI (cfiCond15) V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
        CFI (cfiCond15) V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI (cfiCond15) V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI (cfiCond15) V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI (cfiCond15) V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI (cfiCond15) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI (cfiCond15) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI (cfiCond15) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI (cfiCond15) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI (cfiCond15) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI (cfiCond15) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI (cfiCond15) CFA_SP SP+0
        CFI (cfiCond15) CFA_XSP16 add(XSP16, 16)
        CFI Block cfiCond16 Using cfiCommon0
        CFI (cfiCond16) NoFunction
        CFI (cfiCond16) Conditional ??CrossCallReturnLabel_37, ??CrossCallReturnLabel_4
        CFI (cfiCond16) R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
        CFI (cfiCond16) VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
        CFI (cfiCond16) V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
        CFI (cfiCond16) V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
        CFI (cfiCond16) V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
        CFI (cfiCond16) V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
        CFI (cfiCond16) V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI (cfiCond16) V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI (cfiCond16) V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI (cfiCond16) V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI (cfiCond16) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI (cfiCond16) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI (cfiCond16) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI (cfiCond16) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI (cfiCond16) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI (cfiCond16) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI (cfiCond16) CFA_SP SP+0
        CFI (cfiCond16) CFA_XSP16 add(XSP16, 16)
        CFI Block cfiPicker17 Using cfiCommon1
        CFI (cfiPicker17) NoFunction
        CFI (cfiPicker17) Picker
        MOVX    A,@DPTR
        MOV     ?V0 + 0,A
        MOV     ?V0 + 1,#0x0
        MOV     ?V0 + 2,#0x0
        MOV     ?V0 + 3,#0x0
        INC     DPTR
        MOVX    A,@DPTR
        MOV     ?V0 + 4,A
        MOV     ?V0 + 5,#0x0
        MOV     ?V0 + 6,#0x0
        MOV     ?V0 + 7,#0x0
        MOV     A,#0x8
        RET
        CFI EndBlock cfiCond14
        CFI EndBlock cfiCond15
        CFI EndBlock cfiCond16
        CFI EndBlock cfiPicker17
//  239 
//  240 #if !defined ( ZBIT ) && !defined ( ZBIT2 )
//  241 /*********************************************************************
//  242  * @fn      _ltoa
//  243  *
//  244  * @brief
//  245  *
//  246  *   convert a long unsigned int to a string.
//  247  *
//  248  * @param  l - long to convert
//  249  * @param  buf - buffer to convert to
//  250  * @param  radix - 10 dec, 16 hex
//  251  *
//  252  * @return  pointer to buffer
//  253  */

        RSEG BANKED_CODE:CODE:NOROOT(0)
//  254 unsigned char * _ltoa(unsigned long l, unsigned char *buf, unsigned char radix)
_ltoa:
        CFI Block cfiBlock18 Using cfiCommon0
        CFI Function _ltoa
//  255 {
        FUNCALL _ltoa, _itoa
        LOCFRAME ISTACK, 0, STACK
        LOCFRAME PSTACK, 0, STACK
        LOCFRAME XSTACK, 52, STACK
        LOCFRAME IOVERLAY, 0, STATIC
        LOCFRAME DOVERLAY, 0, STATIC
        ARGFRAME ISTACK, 0, STACK
        ARGFRAME PSTACK, 0, STACK
        ARGFRAME XSTACK, 52, STACK
        ARGFRAME IOVERLAY, 0, STATIC
        ARGFRAME DOVERLAY, 0, STATIC
        FUNCALL _ltoa, _itoa
        LOCFRAME ISTACK, 0, STACK
        LOCFRAME PSTACK, 0, STACK
        LOCFRAME XSTACK, 52, STACK
        LOCFRAME IOVERLAY, 0, STATIC
        LOCFRAME DOVERLAY, 0, STATIC
        ARGFRAME ISTACK, 0, STACK
        ARGFRAME PSTACK, 0, STACK
        ARGFRAME XSTACK, 52, STACK
        ARGFRAME IOVERLAY, 0, STATIC
        ARGFRAME DOVERLAY, 0, STATIC
        FUNCALL _ltoa, _itoa
        LOCFRAME ISTACK, 0, STACK
        LOCFRAME PSTACK, 0, STACK
        LOCFRAME XSTACK, 52, STACK
        LOCFRAME IOVERLAY, 0, STATIC
        LOCFRAME DOVERLAY, 0, STATIC
        ARGFRAME ISTACK, 0, STACK
        ARGFRAME PSTACK, 0, STACK
        ARGFRAME XSTACK, 52, STACK
        ARGFRAME IOVERLAY, 0, STATIC
        ARGFRAME DOVERLAY, 0, STATIC
        FUNCALL _ltoa, strcpy
        LOCFRAME ISTACK, 0, STACK
        LOCFRAME PSTACK, 0, STACK
        LOCFRAME XSTACK, 52, STACK
        LOCFRAME IOVERLAY, 0, STATIC
        LOCFRAME DOVERLAY, 0, STATIC
        ARGFRAME ISTACK, 0, STACK
        ARGFRAME PSTACK, 0, STACK
        ARGFRAME XSTACK, 52, STACK
        ARGFRAME IOVERLAY, 0, STATIC
        ARGFRAME DOVERLAY, 0, STATIC
        FUNCALL _ltoa, strcat
        LOCFRAME ISTACK, 0, STACK
        LOCFRAME PSTACK, 0, STACK
        LOCFRAME XSTACK, 52, STACK
        LOCFRAME IOVERLAY, 0, STATIC
        LOCFRAME DOVERLAY, 0, STATIC
        ARGFRAME ISTACK, 0, STACK
        ARGFRAME PSTACK, 0, STACK
        ARGFRAME XSTACK, 52, STACK
        ARGFRAME IOVERLAY, 0, STATIC
        ARGFRAME DOVERLAY, 0, STATIC
        FUNCALL _ltoa, strlen
        LOCFRAME ISTACK, 0, STACK
        LOCFRAME PSTACK, 0, STACK
        LOCFRAME XSTACK, 52, STACK
        LOCFRAME IOVERLAY, 0, STATIC
        LOCFRAME DOVERLAY, 0, STATIC
        ARGFRAME ISTACK, 0, STACK
        ARGFRAME PSTACK, 0, STACK
        ARGFRAME XSTACK, 52, STACK
        ARGFRAME IOVERLAY, 0, STATIC
        ARGFRAME DOVERLAY, 0, STATIC
        FUNCALL _ltoa, strcat
        LOCFRAME ISTACK, 0, STACK
        LOCFRAME PSTACK, 0, STACK
        LOCFRAME XSTACK, 52, STACK
        LOCFRAME IOVERLAY, 0, STATIC
        LOCFRAME DOVERLAY, 0, STATIC
        ARGFRAME ISTACK, 0, STACK
        ARGFRAME PSTACK, 0, STACK
        ARGFRAME XSTACK, 52, STACK
        ARGFRAME IOVERLAY, 0, STATIC
        ARGFRAME DOVERLAY, 0, STATIC
        FUNCALL _ltoa, strcat
        LOCFRAME ISTACK, 0, STACK
        LOCFRAME PSTACK, 0, STACK
        LOCFRAME XSTACK, 52, STACK
        LOCFRAME IOVERLAY, 0, STATIC
        LOCFRAME DOVERLAY, 0, STATIC
        ARGFRAME ISTACK, 0, STACK
        ARGFRAME PSTACK, 0, STACK
        ARGFRAME XSTACK, 52, STACK
        ARGFRAME IOVERLAY, 0, STATIC
        ARGFRAME DOVERLAY, 0, STATIC
        FUNCALL _ltoa, strlen
        LOCFRAME ISTACK, 0, STACK
        LOCFRAME PSTACK, 0, STACK
        LOCFRAME XSTACK, 52, STACK
        LOCFRAME IOVERLAY, 0, STATIC
        LOCFRAME DOVERLAY, 0, STATIC
        ARGFRAME ISTACK, 0, STACK
        ARGFRAME PSTACK, 0, STACK
        ARGFRAME XSTACK, 52, STACK
        ARGFRAME IOVERLAY, 0, STATIC
        ARGFRAME DOVERLAY, 0, STATIC
        FUNCALL _ltoa, strcat
        LOCFRAME ISTACK, 0, STACK
        LOCFRAME PSTACK, 0, STACK
        LOCFRAME XSTACK, 52, STACK
        LOCFRAME IOVERLAY, 0, STATIC
        LOCFRAME DOVERLAY, 0, STATIC
        ARGFRAME ISTACK, 0, STACK
        ARGFRAME PSTACK, 0, STACK
        ARGFRAME XSTACK, 52, STACK
        ARGFRAME IOVERLAY, 0, STATIC
        ARGFRAME DOVERLAY, 0, STATIC
        FUNCALL _ltoa, strcpy
        LOCFRAME ISTACK, 0, STACK
        LOCFRAME PSTACK, 0, STACK
        LOCFRAME XSTACK, 52, STACK
        LOCFRAME IOVERLAY, 0, STATIC
        LOCFRAME DOVERLAY, 0, STATIC
        ARGFRAME ISTACK, 0, STACK
        ARGFRAME PSTACK, 0, STACK
        ARGFRAME XSTACK, 52, STACK
        ARGFRAME IOVERLAY, 0, STATIC
        ARGFRAME DOVERLAY, 0, STATIC
        FUNCALL _ltoa, _itoa
        LOCFRAME ISTACK, 0, STACK
        LOCFRAME PSTACK, 0, STACK
        LOCFRAME XSTACK, 52, STACK
        LOCFRAME IOVERLAY, 0, STATIC
        LOCFRAME DOVERLAY, 0, STATIC
        ARGFRAME ISTACK, 0, STACK
        ARGFRAME PSTACK, 0, STACK
        ARGFRAME XSTACK, 52, STACK
        ARGFRAME IOVERLAY, 0, STATIC
        ARGFRAME DOVERLAY, 0, STATIC
        FUNCALL _ltoa, _itoa
        LOCFRAME ISTACK, 0, STACK
        LOCFRAME PSTACK, 0, STACK
        LOCFRAME XSTACK, 52, STACK
        LOCFRAME IOVERLAY, 0, STATIC
        LOCFRAME DOVERLAY, 0, STATIC
        ARGFRAME ISTACK, 0, STACK
        ARGFRAME PSTACK, 0, STACK
        ARGFRAME XSTACK, 52, STACK
        ARGFRAME IOVERLAY, 0, STATIC
        ARGFRAME DOVERLAY, 0, STATIC
        FUNCALL _ltoa, strcpy
        LOCFRAME ISTACK, 0, STACK
        LOCFRAME PSTACK, 0, STACK
        LOCFRAME XSTACK, 52, STACK
        LOCFRAME IOVERLAY, 0, STATIC
        LOCFRAME DOVERLAY, 0, STATIC
        ARGFRAME ISTACK, 0, STACK
        ARGFRAME PSTACK, 0, STACK
        ARGFRAME XSTACK, 52, STACK
        ARGFRAME IOVERLAY, 0, STATIC
        ARGFRAME DOVERLAY, 0, STATIC
        FUNCALL _ltoa, strcat
        LOCFRAME ISTACK, 0, STACK
        LOCFRAME PSTACK, 0, STACK
        LOCFRAME XSTACK, 52, STACK
        LOCFRAME IOVERLAY, 0, STATIC
        LOCFRAME DOVERLAY, 0, STATIC
        ARGFRAME ISTACK, 0, STACK
        ARGFRAME PSTACK, 0, STACK
        ARGFRAME XSTACK, 52, STACK
        ARGFRAME IOVERLAY, 0, STATIC
        ARGFRAME DOVERLAY, 0, STATIC
        FUNCALL _ltoa, strlen
        LOCFRAME ISTACK, 0, STACK
        LOCFRAME PSTACK, 0, STACK
        LOCFRAME XSTACK, 52, STACK
        LOCFRAME IOVERLAY, 0, STATIC
        LOCFRAME DOVERLAY, 0, STATIC
        ARGFRAME ISTACK, 0, STACK
        ARGFRAME PSTACK, 0, STACK
        ARGFRAME XSTACK, 52, STACK
        ARGFRAME IOVERLAY, 0, STATIC
        ARGFRAME DOVERLAY, 0, STATIC
        FUNCALL _ltoa, strcat
        LOCFRAME ISTACK, 0, STACK
        LOCFRAME PSTACK, 0, STACK
        LOCFRAME XSTACK, 52, STACK
        LOCFRAME IOVERLAY, 0, STATIC
        LOCFRAME DOVERLAY, 0, STATIC
        ARGFRAME ISTACK, 0, STACK
        ARGFRAME PSTACK, 0, STACK
        ARGFRAME XSTACK, 52, STACK
        ARGFRAME IOVERLAY, 0, STATIC
        ARGFRAME DOVERLAY, 0, STATIC
        MOV     A,#-0x10
        LCALL   ?BANKED_ENTER_XDATA
        CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
        CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
        CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
        CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
        CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 16)
        ; Saved register size: 16
        ; Auto size: 36
        MOV     A,#-0x24
        LCALL   ?ALLOC_XSTACK8
        CFI CFA_XSP16 add(XSP16, 52)
        MOV     A,#0x2
        LCALL   ?XSTACK_DISP0_8
        MOV     A,R2
        MOVX    @DPTR,A
        INC     DPTR
        MOV     A,R3
        MOVX    @DPTR,A
        INC     DPTR
        MOV     A,R4
        MOVX    @DPTR,A
        INC     DPTR
        MOV     A,R5
        MOVX    @DPTR,A
//  256 #if defined( __GNUC__ )
//  257   return ( (char*)ltoa( l, buf, radix ) );
//  258 #else
//  259   unsigned char tmp1[10] = "", tmp2[10] = "", tmp3[10] = "";
        MOV     A,#0x6
        LCALL   ?XSTACK_DISP0_8
        MOV     R4,DPL
        MOV     R5,DPH
        MOV     DPH,#((`?<Constant "">` >> 8) & 0xff)
        MOV     DPL,#(`?<Constant "">` & 0xff)
        MOV     A,#0xa
        LCALL   ?MOVE_LONG8_XDATA_XDATA
        MOV     DPH,#((`?<Constant "">_1` >> 8) & 0xff)
        MOV     DPL,#(`?<Constant "">_1` & 0xff)
        MOV     A,#0xa
        LCALL   ?MOVE_LONG8_XDATA_XDATA
        MOV     DPH,#((`?<Constant "">_2` >> 8) & 0xff)
        MOV     DPL,#(`?<Constant "">_2` & 0xff)
        MOV     A,#0xa
        LCALL   ?MOVE_LONG8_XDATA_XDATA
//  260   unsigned short num1, num2, num3;
//  261   unsigned char i;
//  262 
//  263   buf[0] = '\0';
        MOV     A,#0x34
        LCALL   ?XSTACK_DISP0_8
        LCALL   ?Subroutine10 & 0xFFFF
??CrossCallReturnLabel_28:
        CLR     A
        MOVX    @DPTR,A
//  264 
//  265   if ( radix == 10 )
        MOV     A,#0xa
        XRL     A,R1
        JZ      $+5
        LJMP    ??_ltoa_0 & 0xFFFF
//  266   {
//  267     num1 = l % 10000;
        MOV     A,#0x2
        LCALL   ?XSTACK_DISP0_8
        MOV     R0,#?V0 + 4
        LCALL   ?L_MOV_X
        MOV     DPTR,#__Constant_2710
        MOV     R0,#?V0 + 0
        LCALL   ?L_MOV_X
        MOV     R0,#?V0 + 4
        MOV     R1,#?V0 + 0
        LCALL   ?UL_DIV_MOD
        MOV     DPL,?XSP + 0
        MOV     DPH,?XSP + 1
        MOV     A,?V0 + 0
        MOVX    @DPTR,A
        INC     DPTR
        MOV     A,?V0 + 1
        MOVX    @DPTR,A
//  268     num2 = (l / 10000) % 10000;
        MOV     A,#0x2
        LCALL   ?XSTACK_DISP0_8
        MOV     R0,#?V0 + 4
        LCALL   ?L_MOV_X
        MOV     DPTR,#__Constant_2710
        MOV     R0,#?V0 + 0
        LCALL   ?L_MOV_X
        MOV     R0,#?V0 + 4
        MOV     R1,#?V0 + 0
        LCALL   ?UL_DIV_MOD
        MOV     DPTR,#__Constant_2710
        MOV     R0,#?V0 + 0
        LCALL   ?L_MOV_X
        MOV     R0,#?V0 + 4
        MOV     R1,#?V0 + 0
        LCALL   ?UL_DIV_MOD
        MOV     R6,?V0 + 0
        MOV     R7,?V0 + 1
//  269     num3 = (unsigned short)(l / 100000000);
        MOV     A,#0x2
        LCALL   ?XSTACK_DISP0_8
        MOV     R0,#?V0 + 4
        LCALL   ?L_MOV_X
        MOV     DPTR,#__Constant_5f5e100
        MOV     R0,#?V0 + 0
        LCALL   ?L_MOV_X
        MOV     R0,#?V0 + 4
        MOV     R1,#?V0 + 0
        LCALL   ?UL_DIV_MOD
        MOV     ?V0 + 6,?V0 + 4
        MOV     ?V0 + 7,?V0 + 5
//  270 
//  271     if (num3) _itoa(num3, tmp3, 10);
        MOV     A,?V0 + 6
        JNZ     ??_ltoa_1
        MOV     A,?V0 + 7
??_ltoa_1:
        JZ      ??_ltoa_2
        ; Setup parameters for call to function _itoa
        MOV     R1,#0xa
        MOV     A,#0x1a
        LCALL   ?XSTACK_DISP0_8
        MOV     R4,DPL
        MOV     R5,DPH
        MOV     R2,?V0 + 6
        MOV     R3,?V0 + 7
        LCALL   ??_itoa?relay
//  272     if (num2) _itoa(num2, tmp2, 10);
??_ltoa_2:
        MOV     A,R6
        JNZ     ??_ltoa_3
        MOV     A,R7
??_ltoa_3:
        JZ      ??_ltoa_4
        ; Setup parameters for call to function _itoa
        MOV     R1,#0xa
        MOV     A,#0x10
        LCALL   ?XSTACK_DISP0_8
        MOV     R4,DPL
        MOV     R5,DPH
        MOV     A,R6
        MOV     R2,A
        MOV     A,R7
        MOV     R3,A
        LCALL   ??_itoa?relay
//  273     if (num1) _itoa(num1, tmp1, 10);
??_ltoa_4:
        MOV     DPL,?XSP + 0
        MOV     DPH,?XSP + 1
        MOVX    A,@DPTR
        JNZ     ??_ltoa_5
        INC     DPTR
        MOVX    A,@DPTR
??_ltoa_5:
        JZ      ??CrossCallReturnLabel_18
        ; Setup parameters for call to function _itoa
        MOV     R1,#0xa
        MOV     A,#0x6
        LCALL   ?XSTACK_DISP0_8
        LCALL   ?Subroutine7 & 0xFFFF
//  274 
//  275     if (num3)
??CrossCallReturnLabel_18:
        MOV     A,?V0 + 6
        JNZ     ??_ltoa_6
        MOV     A,?V0 + 7
??_ltoa_6:
        JZ      ??_ltoa_7
//  276     {
//  277       strcpy((char*)buf, (char const*)tmp3);
        ; Setup parameters for call to function strcpy
        MOV     A,#0x1a
        LCALL   ?XSTACK_DISP0_8
        MOV     R4,DPL
        MOV     R5,DPH
        MOV     A,#0x34
        LCALL   ?XSTACK_DISP0_8
        LCALL   ?Subroutine5 & 0xFFFF
//  278       for (i = 0; i < 4 - strlen((char const*)tmp2); i++)
??CrossCallReturnLabel_14:
        SJMP    ??CrossCallReturnLabel_5
//  279         strcat((char*)buf, "0");
??_ltoa_8:
        ; Setup parameters for call to function strcat
        MOV     R4,#(`?<Constant "0">` & 0xff)
        MOV     R5,#((`?<Constant "0">` >> 8) & 0xff)
        MOV     A,#0x34
        LCALL   ?XSTACK_DISP0_8
        LCALL   ?Subroutine2 & 0xFFFF
??CrossCallReturnLabel_5:
        MOV     ?V0 + 2,?V0 + 0
        ; Setup parameters for call to function strlen
        MOV     A,#0x10
        LCALL   ?XSTACK_DISP0_8
        LCALL   ?Subroutine0 & 0xFFFF
??CrossCallReturnLabel_0:
        JC      ??_ltoa_8
//  280     }
//  281     strcat((char*)buf, (char const*)tmp2);
??_ltoa_7:
        ; Setup parameters for call to function strcat
        MOV     A,#0x10
        LCALL   ?XSTACK_DISP0_8
        MOV     R4,DPL
        MOV     R5,DPH
        MOV     A,#0x34
        LCALL   ?XSTACK_DISP0_8
        LCALL   ?Subroutine6 & 0xFFFF
//  282     if (num3 || num2)
??CrossCallReturnLabel_16:
        JNZ     ??_ltoa_9
        MOV     A,?V0 + 7
??_ltoa_9:
        JNZ     ??_ltoa_10
        MOV     A,R6
        JNZ     ??_ltoa_11
        MOV     A,R7
??_ltoa_11:
        JZ      ??_ltoa_12
//  283     {
//  284       for (i = 0; i < 4 - strlen((char const*)tmp1); i++)
??_ltoa_10:
        MOV     ?V0 + 0,#0x0
        SJMP    ??CrossCallReturnLabel_6
//  285         strcat((char*)buf, "0");
??_ltoa_13:
        ; Setup parameters for call to function strcat
        MOV     R4,#(`?<Constant "0">` & 0xff)
        MOV     R5,#((`?<Constant "0">` >> 8) & 0xff)
        MOV     A,#0x34
        LCALL   ?XSTACK_DISP0_8
        LCALL   ?Subroutine2 & 0xFFFF
??CrossCallReturnLabel_6:
        MOV     ?V0 + 2,?V0 + 0
        ; Setup parameters for call to function strlen
        MOV     A,#0x6
        LCALL   ?XSTACK_DISP0_8
        LCALL   ?Subroutine0 & 0xFFFF
??CrossCallReturnLabel_1:
        JC      ??_ltoa_13
//  286     }
//  287     strcat((char*)buf, (char const*)tmp1);
??_ltoa_12:
        ; Setup parameters for call to function strcat
        MOV     A,#0x6
        LCALL   ?XSTACK_DISP0_8
        MOV     R4,DPL
        MOV     R5,DPH
        MOV     A,#0x34
        LCALL   ?XSTACK_DISP0_8
        LCALL   ?Subroutine6 & 0xFFFF
//  288     if (!num3 && !num2 && !num1)
??CrossCallReturnLabel_17:
        JNZ     ??_ltoa_14
        MOV     A,?V0 + 7
??_ltoa_14:
        JNZ     ??_ltoa_15
??_ltoa_16:
        MOV     A,R6
        JNZ     ??_ltoa_17
        MOV     A,R7
??_ltoa_17:
        JNZ     ??_ltoa_15
        MOV     DPL,?XSP + 0
        MOV     DPH,?XSP + 1
        MOVX    A,@DPTR
        JNZ     ??_ltoa_18
        INC     DPTR
        MOVX    A,@DPTR
??_ltoa_18:
        JNZ     ??_ltoa_15
//  289       strcpy((char*)buf, "0");
        ; Setup parameters for call to function strcpy
        MOV     R4,#(`?<Constant "0">` & 0xff)
        MOV     R5,#((`?<Constant "0">` >> 8) & 0xff)
        MOV     A,#0x34
        LCALL   ?XSTACK_DISP0_8
        LCALL   ??Subroutine8_0 & 0xFFFF
??CrossCallReturnLabel_20:
        LCALL   ??strcpy?relay
//  290   }
//  291   else if ( radix == 16 )
//  292   {
//  293     num1 = l & 0x0000FFFF;
//  294     num2 = l >> 16;
//  295 
//  296     if (num2) _itoa(num2, tmp2, 16);
//  297     if (num1) _itoa(num1, tmp1, 16);
//  298 
//  299     if (num2)
//  300     {
//  301       strcpy((char*)buf,(char const*)tmp2);
//  302       for (i = 0; i < 4 - strlen((char const*)tmp1); i++)
//  303         strcat((char*)buf, "0");
//  304     }
//  305     strcat((char*)buf, (char const*)tmp1);
//  306     if (!num2 && !num1)
//  307       strcpy((char*)buf, "0");
//  308   }
//  309   else
//  310     return NULL;
//  311 
//  312   return buf;
??_ltoa_15:
        MOV     A,#0x34
        LCALL   ?XSTACK_DISP0_8
        LCALL   ??Subroutine8_0 & 0xFFFF
??CrossCallReturnLabel_21:
        MOV     A,#0x24
        LCALL   ?DEALLOC_XSTACK8
        CFI CFA_XSP16 add(XSP16, 16)
        LJMP    ?Subroutine24 & 0xFFFF
        CFI CFA_XSP16 add(XSP16, 52)
??_ltoa_0:
        MOV     A,#0x10
        XRL     A,R1
        JZ      $+5
        LJMP    ??_ltoa_19 & 0xFFFF
        MOV     A,#0x2
        LCALL   ?XSTACK_DISP0_8
        MOV     R0,#?V0 + 0
        LCALL   ?L_MOV_X
        MOV     DPL,?XSP + 0
        MOV     DPH,?XSP + 1
        MOV     A,?V0 + 0
        MOVX    @DPTR,A
        INC     DPTR
        MOV     A,?V0 + 1
        MOVX    @DPTR,A
        MOV     A,#0x2
        LCALL   ?XSTACK_DISP0_8
        MOV     R0,#?V0 + 0
        LCALL   ?L_MOV_X
        MOV     A,#0x10
        MOV     R0,#?V0 + 0
        LCALL   ?UL_SHR
        MOV     R6,?V0 + 0
        MOV     R7,?V0 + 1
        MOV     A,R6
        JNZ     ??_ltoa_20
        MOV     A,R7
??_ltoa_20:
        JZ      ??_ltoa_21
        ; Setup parameters for call to function _itoa
        MOV     R1,#0x10
        MOV     A,R1
        LCALL   ?XSTACK_DISP0_8
        MOV     R4,DPL
        MOV     R5,DPH
        MOV     A,R6
        MOV     R2,A
        MOV     A,R7
        MOV     R3,A
        LCALL   ??_itoa?relay
??_ltoa_21:
        MOV     DPL,?XSP + 0
        MOV     DPH,?XSP + 1
        MOVX    A,@DPTR
        JNZ     ??_ltoa_22
        INC     DPTR
        MOVX    A,@DPTR
??_ltoa_22:
        JZ      ??CrossCallReturnLabel_19
        ; Setup parameters for call to function _itoa
        MOV     R1,#0x10
        MOV     A,#0x6
        LCALL   ?XSTACK_DISP0_8
        LCALL   ?Subroutine7 & 0xFFFF
??CrossCallReturnLabel_19:
        MOV     A,R6
        JNZ     ??_ltoa_23
        MOV     A,R7
??_ltoa_23:
        JZ      ??_ltoa_24
        ; Setup parameters for call to function strcpy
        MOV     A,#0x10
        LCALL   ?XSTACK_DISP0_8
        MOV     R4,DPL
        MOV     R5,DPH
        MOV     A,#0x34
        LCALL   ?XSTACK_DISP0_8
        LCALL   ?Subroutine5 & 0xFFFF
??CrossCallReturnLabel_15:
        SJMP    ??CrossCallReturnLabel_7
??_ltoa_25:
        ; Setup parameters for call to function strcat
        MOV     R4,#(`?<Constant "0">` & 0xff)
        MOV     R5,#((`?<Constant "0">` >> 8) & 0xff)
        MOV     A,#0x34
        LCALL   ?XSTACK_DISP0_8
        LCALL   ?Subroutine2 & 0xFFFF
??CrossCallReturnLabel_7:
        MOV     ?V0 + 2,?V0 + 0
        ; Setup parameters for call to function strlen
        MOV     A,#0x6
        LCALL   ?XSTACK_DISP0_8
        LCALL   ?Subroutine0 & 0xFFFF
??CrossCallReturnLabel_2:
        JC      ??_ltoa_25
??_ltoa_24:
        ; Setup parameters for call to function strcat
        MOV     A,#0x6
        LCALL   ?XSTACK_DISP0_8
        MOV     R4,DPL
        MOV     R5,DPH
        MOV     A,#0x34
        LCALL   ?XSTACK_DISP0_8
        LCALL   ??Subroutine8_0 & 0xFFFF
??CrossCallReturnLabel_22:
        LCALL   ??strcat?relay
        LJMP    ??_ltoa_16 & 0xFFFF
??_ltoa_19:
        MOV     R2,#0x0
        MOV     R3,#0x0
        LJMP    ??CrossCallReturnLabel_21 & 0xFFFF
        CFI EndBlock cfiBlock18
//  313 #endif
//  314 }

        RSEG BANKED_CODE:CODE:NOROOT(0)
?Subroutine7:
        CFI Block cfiCond19 Using cfiCommon0
        CFI NoFunction
        CFI Conditional ??CrossCallReturnLabel_18
        CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
        CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
        CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
        CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
        CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
        CFI V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 52)
        CFI Block cfiCond20 Using cfiCommon0
        CFI (cfiCond20) NoFunction
        CFI (cfiCond20) Conditional ??CrossCallReturnLabel_19
        CFI (cfiCond20) R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
        CFI (cfiCond20) VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
        CFI (cfiCond20) V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
        CFI (cfiCond20) V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
        CFI (cfiCond20) V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
        CFI (cfiCond20) V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
        CFI (cfiCond20) V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI (cfiCond20) V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI (cfiCond20) V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI (cfiCond20) V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI (cfiCond20) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI (cfiCond20) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI (cfiCond20) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI (cfiCond20) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI (cfiCond20) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI (cfiCond20) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI (cfiCond20) CFA_SP SP+0
        CFI (cfiCond20) CFA_XSP16 add(XSP16, 52)
        CFI Block cfiPicker21 Using cfiCommon1
        CFI (cfiPicker21) NoFunction
        CFI (cfiPicker21) Picker
        MOV     R4,DPL
        MOV     R5,DPH
        MOV     DPL,?XSP + 0
        MOV     DPH,?XSP + 1
        LCALL   ?Subroutine18 & 0xFFFF
??CrossCallReturnLabel_41:
        LCALL   ??_itoa?relay
        RET
        CFI EndBlock cfiCond19
        CFI EndBlock cfiCond20
        CFI EndBlock cfiPicker21

        RSEG BANKED_CODE:CODE:NOROOT(0)
?Subroutine6:
        CFI Block cfiCond22 Using cfiCommon0
        CFI NoFunction
        CFI Conditional ??CrossCallReturnLabel_16
        CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
        CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
        CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
        CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
        CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
        CFI V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 52)
        CFI Block cfiCond23 Using cfiCommon0
        CFI (cfiCond23) NoFunction
        CFI (cfiCond23) Conditional ??CrossCallReturnLabel_17
        CFI (cfiCond23) R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
        CFI (cfiCond23) VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
        CFI (cfiCond23) V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
        CFI (cfiCond23) V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
        CFI (cfiCond23) V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
        CFI (cfiCond23) V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
        CFI (cfiCond23) V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI (cfiCond23) V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI (cfiCond23) V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI (cfiCond23) V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI (cfiCond23) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI (cfiCond23) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI (cfiCond23) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI (cfiCond23) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI (cfiCond23) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI (cfiCond23) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI (cfiCond23) CFA_SP SP+0
        CFI (cfiCond23) CFA_XSP16 add(XSP16, 52)
        CFI Block cfiPicker24 Using cfiCommon1
        CFI (cfiPicker24) NoFunction
        CFI (cfiPicker24) Picker
        LCALL   ?Subroutine17 & 0xFFFF
??CrossCallReturnLabel_38:
        MOV     A,?V0 + 6
        RET
        CFI EndBlock cfiCond22
        CFI EndBlock cfiCond23
        CFI EndBlock cfiPicker24

        RSEG BANKED_CODE:CODE:NOROOT(0)
?Subroutine5:
        CFI Block cfiCond25 Using cfiCommon0
        CFI NoFunction
        CFI Conditional ??CrossCallReturnLabel_14
        CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
        CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
        CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
        CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
        CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
        CFI V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 52)
        CFI Block cfiCond26 Using cfiCommon0
        CFI (cfiCond26) NoFunction
        CFI (cfiCond26) Conditional ??CrossCallReturnLabel_15
        CFI (cfiCond26) R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
        CFI (cfiCond26) VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
        CFI (cfiCond26) V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
        CFI (cfiCond26) V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
        CFI (cfiCond26) V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
        CFI (cfiCond26) V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
        CFI (cfiCond26) V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI (cfiCond26) V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI (cfiCond26) V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI (cfiCond26) V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI (cfiCond26) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI (cfiCond26) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI (cfiCond26) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI (cfiCond26) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI (cfiCond26) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI (cfiCond26) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI (cfiCond26) CFA_SP SP+0
        CFI (cfiCond26) CFA_XSP16 add(XSP16, 52)
        CFI Block cfiPicker27 Using cfiCommon1
        CFI (cfiPicker27) NoFunction
        CFI (cfiPicker27) Picker
        LCALL   ?Subroutine18 & 0xFFFF
??CrossCallReturnLabel_40:
        LCALL   ??strcpy?relay
        MOV     ?V0 + 0,#0x0
        RET
        CFI EndBlock cfiCond25
        CFI EndBlock cfiCond26
        CFI EndBlock cfiPicker27

        RSEG BANKED_CODE:CODE:NOROOT(0)
?Subroutine2:
        CFI Block cfiCond28 Using cfiCommon0
        CFI NoFunction
        CFI Conditional ??CrossCallReturnLabel_5
        CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
        CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
        CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
        CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
        CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
        CFI V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 52)
        CFI Block cfiCond29 Using cfiCommon0
        CFI (cfiCond29) NoFunction
        CFI (cfiCond29) Conditional ??CrossCallReturnLabel_6
        CFI (cfiCond29) R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
        CFI (cfiCond29) VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
        CFI (cfiCond29) V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
        CFI (cfiCond29) V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
        CFI (cfiCond29) V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
        CFI (cfiCond29) V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
        CFI (cfiCond29) V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI (cfiCond29) V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI (cfiCond29) V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI (cfiCond29) V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI (cfiCond29) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI (cfiCond29) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI (cfiCond29) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI (cfiCond29) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI (cfiCond29) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI (cfiCond29) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI (cfiCond29) CFA_SP SP+0
        CFI (cfiCond29) CFA_XSP16 add(XSP16, 52)
        CFI Block cfiCond30 Using cfiCommon0
        CFI (cfiCond30) NoFunction
        CFI (cfiCond30) Conditional ??CrossCallReturnLabel_7
        CFI (cfiCond30) R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
        CFI (cfiCond30) VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
        CFI (cfiCond30) V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
        CFI (cfiCond30) V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
        CFI (cfiCond30) V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
        CFI (cfiCond30) V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
        CFI (cfiCond30) V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI (cfiCond30) V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI (cfiCond30) V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI (cfiCond30) V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI (cfiCond30) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI (cfiCond30) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI (cfiCond30) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI (cfiCond30) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI (cfiCond30) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI (cfiCond30) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI (cfiCond30) CFA_SP SP+0
        CFI (cfiCond30) CFA_XSP16 add(XSP16, 52)
        CFI Block cfiPicker31 Using cfiCommon1
        CFI (cfiPicker31) NoFunction
        CFI (cfiPicker31) Picker
        LCALL   ?Subroutine17 & 0xFFFF
??CrossCallReturnLabel_39:
        INC     ?V0 + 0
        RET
        CFI EndBlock cfiCond28
        CFI EndBlock cfiCond29
        CFI EndBlock cfiCond30
        CFI EndBlock cfiPicker31

        RSEG BANKED_CODE:CODE:NOROOT(0)
?Subroutine17:
        CFI Block cfiCond32 Using cfiCommon0
        CFI NoFunction
        CFI Conditional ??CrossCallReturnLabel_38, ??CrossCallReturnLabel_16
        CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
        CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
        CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
        CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
        CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
        CFI V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 52)
        CFI Block cfiCond33 Using cfiCommon0
        CFI (cfiCond33) NoFunction
        CFI (cfiCond33) Conditional ??CrossCallReturnLabel_38, ??CrossCallReturnLabel_17
        CFI (cfiCond33) R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
        CFI (cfiCond33) VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
        CFI (cfiCond33) V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
        CFI (cfiCond33) V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
        CFI (cfiCond33) V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
        CFI (cfiCond33) V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
        CFI (cfiCond33) V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI (cfiCond33) V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI (cfiCond33) V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI (cfiCond33) V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI (cfiCond33) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI (cfiCond33) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI (cfiCond33) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI (cfiCond33) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI (cfiCond33) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI (cfiCond33) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI (cfiCond33) CFA_SP SP+0
        CFI (cfiCond33) CFA_XSP16 add(XSP16, 52)
        CFI Block cfiCond34 Using cfiCommon0
        CFI (cfiCond34) NoFunction
        CFI (cfiCond34) Conditional ??CrossCallReturnLabel_39, ??CrossCallReturnLabel_5
        CFI (cfiCond34) R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
        CFI (cfiCond34) VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
        CFI (cfiCond34) V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
        CFI (cfiCond34) V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
        CFI (cfiCond34) V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
        CFI (cfiCond34) V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
        CFI (cfiCond34) V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI (cfiCond34) V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI (cfiCond34) V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI (cfiCond34) V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI (cfiCond34) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI (cfiCond34) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI (cfiCond34) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI (cfiCond34) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI (cfiCond34) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI (cfiCond34) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI (cfiCond34) CFA_SP SP+0
        CFI (cfiCond34) CFA_XSP16 add(XSP16, 52)
        CFI Block cfiCond35 Using cfiCommon0
        CFI (cfiCond35) NoFunction
        CFI (cfiCond35) Conditional ??CrossCallReturnLabel_39, ??CrossCallReturnLabel_6
        CFI (cfiCond35) R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
        CFI (cfiCond35) VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
        CFI (cfiCond35) V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
        CFI (cfiCond35) V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
        CFI (cfiCond35) V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
        CFI (cfiCond35) V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
        CFI (cfiCond35) V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI (cfiCond35) V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI (cfiCond35) V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI (cfiCond35) V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI (cfiCond35) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI (cfiCond35) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI (cfiCond35) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI (cfiCond35) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI (cfiCond35) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI (cfiCond35) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI (cfiCond35) CFA_SP SP+0
        CFI (cfiCond35) CFA_XSP16 add(XSP16, 52)
        CFI Block cfiCond36 Using cfiCommon0
        CFI (cfiCond36) NoFunction
        CFI (cfiCond36) Conditional ??CrossCallReturnLabel_39, ??CrossCallReturnLabel_7
        CFI (cfiCond36) R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
        CFI (cfiCond36) VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
        CFI (cfiCond36) V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
        CFI (cfiCond36) V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
        CFI (cfiCond36) V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
        CFI (cfiCond36) V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
        CFI (cfiCond36) V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI (cfiCond36) V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI (cfiCond36) V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI (cfiCond36) V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI (cfiCond36) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI (cfiCond36) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI (cfiCond36) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI (cfiCond36) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI (cfiCond36) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI (cfiCond36) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI (cfiCond36) CFA_SP SP+0
        CFI (cfiCond36) CFA_XSP16 add(XSP16, 52)
        CFI Block cfiPicker37 Using cfiCommon1
        CFI (cfiPicker37) NoFunction
        CFI (cfiPicker37) Picker
        LCALL   ?Subroutine18 & 0xFFFF
??CrossCallReturnLabel_43:
        LCALL   ??strcat?relay
        RET
        CFI EndBlock cfiCond32
        CFI EndBlock cfiCond33
        CFI EndBlock cfiCond34
        CFI EndBlock cfiCond35
        CFI EndBlock cfiCond36
        CFI EndBlock cfiPicker37

        RSEG BANKED_CODE:CODE:NOROOT(0)
?Subroutine0:
        CFI Block cfiCond38 Using cfiCommon0
        CFI NoFunction
        CFI Conditional ??CrossCallReturnLabel_0
        CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
        CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
        CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
        CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
        CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
        CFI V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 52)
        CFI Block cfiCond39 Using cfiCommon0
        CFI (cfiCond39) NoFunction
        CFI (cfiCond39) Conditional ??CrossCallReturnLabel_1
        CFI (cfiCond39) R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
        CFI (cfiCond39) VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
        CFI (cfiCond39) V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
        CFI (cfiCond39) V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
        CFI (cfiCond39) V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
        CFI (cfiCond39) V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
        CFI (cfiCond39) V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI (cfiCond39) V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI (cfiCond39) V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI (cfiCond39) V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI (cfiCond39) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI (cfiCond39) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI (cfiCond39) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI (cfiCond39) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI (cfiCond39) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI (cfiCond39) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI (cfiCond39) CFA_SP SP+0
        CFI (cfiCond39) CFA_XSP16 add(XSP16, 52)
        CFI Block cfiCond40 Using cfiCommon0
        CFI (cfiCond40) NoFunction
        CFI (cfiCond40) Conditional ??CrossCallReturnLabel_2
        CFI (cfiCond40) R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
        CFI (cfiCond40) VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
        CFI (cfiCond40) V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
        CFI (cfiCond40) V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
        CFI (cfiCond40) V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
        CFI (cfiCond40) V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
        CFI (cfiCond40) V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI (cfiCond40) V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI (cfiCond40) V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI (cfiCond40) V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI (cfiCond40) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI (cfiCond40) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI (cfiCond40) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI (cfiCond40) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI (cfiCond40) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI (cfiCond40) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI (cfiCond40) CFA_SP SP+0
        CFI (cfiCond40) CFA_XSP16 add(XSP16, 52)
        CFI Block cfiPicker41 Using cfiCommon1
        CFI (cfiPicker41) NoFunction
        CFI (cfiPicker41) Picker
        MOV     R2,DPL
        MOV     R3,DPH
        LCALL   ??strlen?relay
        MOV     ?V0 + 4,R2
        MOV     ?V0 + 5,R3
        MOV     A,#0x4
        CLR     C
        SUBB    A,?V0 + 4
        MOV     R0,A
        CLR     A
        SUBB    A,?V0 + 5
        MOV     R1,A
        CLR     C
        MOV     A,?V0 + 2
        SUBB    A,R0
        CLR     A
        SUBB    A,R1
        RET
        CFI EndBlock cfiCond38
        CFI EndBlock cfiCond39
        CFI EndBlock cfiCond40
        CFI EndBlock cfiPicker41
//  315 #endif // !defined(ZBIT) && !defined(ZBIT2)
//  316 
//  317 /*********************************************************************
//  318  * @fn          osal_AddrEqual
//  319  *
//  320  * @brief       Compares two address_t structures.
//  321  *
//  322  * @param       a1 - first Address
//  323  * @param       a2 - second endpoint
//  324  *
//  325  * @return      true - addresses are equal, false - not equal
//  326  */

        RSEG BANKED_CODE:CODE:NOROOT(0)
//  327 byte osal_AddrEqual( zAddrType_t *a1, zAddrType_t *a2 )
osal_AddrEqual:
        CFI Block cfiBlock42 Using cfiCommon0
        CFI Function osal_AddrEqual
//  328 {
        FUNCALL osal_AddrEqual, osal_ExtAddrEqual
        LOCFRAME ISTACK, 0, STACK
        LOCFRAME PSTACK, 0, STACK
        LOCFRAME XSTACK, 9, STACK
        LOCFRAME IOVERLAY, 0, STATIC
        LOCFRAME DOVERLAY, 0, STATIC
        ARGFRAME ISTACK, 0, STACK
        ARGFRAME PSTACK, 0, STACK
        ARGFRAME XSTACK, 9, STACK
        ARGFRAME IOVERLAY, 0, STATIC
        ARGFRAME DOVERLAY, 0, STATIC
        MOV     A,#-0x9
        LCALL   ?BANKED_ENTER_XDATA
        CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 9)
        ; Saved register size: 9
        ; Auto size: 0
//  329   if ( a1->addrMode != a2->addrMode )
        MOV     DPL,R2
        MOV     DPH,R3
        INC     DPTR
        INC     DPTR
        INC     DPTR
        INC     DPTR
        INC     DPTR
        INC     DPTR
        INC     DPTR
        INC     DPTR
        MOVX    A,@DPTR
        MOV     R6,A
        MOV     DPL,R4
        MOV     DPH,R5
        INC     DPTR
        INC     DPTR
        INC     DPTR
        INC     DPTR
        INC     DPTR
        INC     DPTR
        INC     DPTR
        INC     DPTR
        MOVX    A,@DPTR
        XRL     A,R6
        JZ      ??osal_AddrEqual_0
//  330     return ( false );
??osal_AddrEqual_1:
        MOV     R1,#0x0
        SJMP    ??osal_AddrEqual_2
//  331 
//  332   else if (a1->addrMode == AddrNotPresent )
??osal_AddrEqual_0:
        MOV     DPL,R2
        MOV     DPH,R3
        INC     DPTR
        INC     DPTR
        INC     DPTR
        INC     DPTR
        INC     DPTR
        INC     DPTR
        INC     DPTR
        INC     DPTR
        MOVX    A,@DPTR
        JNZ     ??osal_AddrEqual_3
//  333     return ( true );
??osal_AddrEqual_4:
        MOV     R1,#0x1
        SJMP    ??osal_AddrEqual_2
//  334 
//  335   else if (a1->addrMode == Addr16Bit )
??osal_AddrEqual_3:
        XRL     A,#0x2
        MOV     DPL,R2
        MOV     DPH,R3
        JNZ     ??osal_AddrEqual_5
//  336     return ( a1->addr.shortAddr == a2->addr.shortAddr );
        LCALL   ?Subroutine3 & 0xFFFF
??CrossCallReturnLabel_8:
        MOV     DPL,R4
        MOV     DPH,R5
        MOVX    A,@DPTR
        XRL     A,R0
        JNZ     ??osal_AddrEqual_6
        INC     DPTR
        MOVX    A,@DPTR
        XRL     A,R1
??osal_AddrEqual_6:
        JNZ     ??osal_AddrEqual_1
        SJMP    ??osal_AddrEqual_4
//  337 
//  338   else if ( a1->addrMode == Addr64Bit )
??osal_AddrEqual_5:
        INC     DPTR
        INC     DPTR
        INC     DPTR
        INC     DPTR
        INC     DPTR
        INC     DPTR
        INC     DPTR
        INC     DPTR
        MOVX    A,@DPTR
        XRL     A,#0x3
        JNZ     ??osal_AddrEqual_1
//  339     return ( osal_ExtAddrEqual( a1->addr.extAddr, a2->addr.extAddr ) );
        ; Setup parameters for call to function osal_ExtAddrEqual
        LCALL   ??osal_ExtAddrEqual?relay
??osal_AddrEqual_2:
        LJMP    ?Subroutine23 & 0xFFFF
        CFI EndBlock cfiBlock42
//  340 
//  341   else
//  342     return ( false );
//  343 }
//  344 
//  345 /*********************************************************************
//  346  * @fn      osal_ExtAddrEqual()
//  347  *
//  348  * @brief   Verify that the extended addresses are equal.
//  349  *
//  350  * @param   extAddr1 - extended address
//  351  * @param   extAddr2 - extended address
//  352  *
//  353  * @return  TRUE - If addresses are same
//  354  *          FALSE  - If not same
//  355  */

        RSEG BANKED_CODE:CODE:NOROOT(0)
//  356 byte osal_ExtAddrEqual( byte *extAddr1, byte *extAddr2 )
osal_ExtAddrEqual:
        CFI Block cfiBlock43 Using cfiCommon0
        CFI Function osal_ExtAddrEqual
//  357 {
        MOV     A,#-0xa
        LCALL   ?BANKED_ENTER_XDATA
        CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 10)
        ; Saved register size: 10
        ; Auto size: 0
//  358   byte i;
//  359 
//  360   for ( i = Z_EXTADDR_LEN; i ; i-- )
        MOV     ?V0 + 0,#0x8
//  361   {
//  362     if ( *extAddr1++ != *extAddr2++ )
??osal_ExtAddrEqual_0:
        MOV     A,R2
        MOV     R0,A
        MOV     A,R3
        MOV     R1,A
        MOV     DPL,R0
        MOV     DPH,R1
        INC     DPTR
        MOV     R2,DPL
        MOV     R3,DPH
        MOV     A,R4
        MOV     R6,A
        MOV     A,R5
        MOV     R7,A
        MOV     DPL,R6
        MOV     DPH,R7
        INC     DPTR
        MOV     R4,DPL
        MOV     R5,DPH
        MOV     DPL,R0
        MOV     DPH,R1
        MOVX    A,@DPTR
        MOV     R0,A
        MOV     DPL,R6
        MOV     DPH,R7
        MOVX    A,@DPTR
        XRL     A,R0
        JZ      ??osal_ExtAddrEqual_1
//  363       return ( false );
        MOV     R1,#0x0
        SJMP    ??osal_ExtAddrEqual_2
//  364   }
??osal_ExtAddrEqual_1:
        DEC     ?V0 + 0
        MOV     A,?V0 + 0
        JNZ     ??osal_ExtAddrEqual_0
//  365 
//  366   return ( true );
        MOV     R1,#0x1
??osal_ExtAddrEqual_2:
        SJMP    ?Subroutine21
        CFI EndBlock cfiBlock43
//  367 }
//  368 
//  369 /*********************************************************************
//  370  * @fn        osal_rand
//  371  *
//  372  * @brief    Random number generator
//  373  *
//  374  * @param   none
//  375  *
//  376  * @return  uint16 - new random number
//  377  */

        RSEG BANKED_CODE:CODE:NOROOT(0)
//  378 uint16 osal_rand( void )
osal_rand:
        CFI Block cfiBlock44 Using cfiCommon0
        CFI Function osal_rand
//  379 {
        FUNCALL osal_rand, Onboard_rand
        LOCFRAME ISTACK, 2, STACK
        LOCFRAME PSTACK, 0, STACK
        LOCFRAME XSTACK, 0, STACK
        LOCFRAME IOVERLAY, 0, STATIC
        LOCFRAME DOVERLAY, 0, STATIC
        ARGFRAME ISTACK, 2, STACK
        ARGFRAME PSTACK, 0, STACK
        ARGFRAME XSTACK, 0, STACK
        ARGFRAME IOVERLAY, 0, STATIC
        ARGFRAME DOVERLAY, 0, STATIC
        PUSH    DPL
        CFI DPL0 Frame(CFA_SP, 4)
        CFI CFA_SP SP+-4
        PUSH    DPH
        CFI DPH0 Frame(CFA_SP, 5)
        CFI CFA_SP SP+-5
        ; Saved register size: 2
        ; Auto size: 0
//  380   return ( Onboard_rand() );
        ; Setup parameters for call to function Onboard_rand
        LCALL   ??Onboard_rand?relay
        LJMP    ?Subroutine19 & 0xFFFF
        CFI EndBlock cfiBlock44
//  381 }
//  382 
//  383 /*********************************************************************
//  384  * API FUNCTIONS
//  385  *********************************************************************/
//  386 
//  387 /*********************************************************************
//  388  * @fn      osal_msg_allocate
//  389  *
//  390  * @brief
//  391  *
//  392  *    This function is called by a task to allocate a message buffer
//  393  *    into which the task will encode the particular message it wishes
//  394  *    to send.  This common buffer scheme is used to strictly limit the
//  395  *    creation of message buffers within the system due to RAM size
//  396  *    limitations on the microprocessor.   Note that all message buffers
//  397  *    are a fixed size (at least initially).  The parameter len is kept
//  398  *    in case a message pool with varying fixed message sizes is later
//  399  *    created (for example, a pool of message buffers of size LARGE,
//  400  *    MEDIUM and SMALL could be maintained and allocated based on request
//  401  *    from the tasks).
//  402  *
//  403  *
//  404  * @param   byte len  - wanted buffer length
//  405  *
//  406  *
//  407  * @return  pointer to allocated buffer or NULL if allocation failed.
//  408  */

        RSEG BANKED_CODE:CODE:NOROOT(0)
//  409 byte * osal_msg_allocate( uint16 len )
osal_msg_allocate:
        CFI Block cfiBlock45 Using cfiCommon0
        CFI Function osal_msg_allocate
//  410 {
        FUNCALL osal_msg_allocate, osal_mem_alloc
        LOCFRAME ISTACK, 0, STACK
        LOCFRAME PSTACK, 0, STACK
        LOCFRAME XSTACK, 10, STACK
        LOCFRAME IOVERLAY, 0, STATIC
        LOCFRAME DOVERLAY, 0, STATIC
        ARGFRAME ISTACK, 0, STACK
        ARGFRAME PSTACK, 0, STACK
        ARGFRAME XSTACK, 10, STACK
        ARGFRAME IOVERLAY, 0, STATIC
        ARGFRAME DOVERLAY, 0, STATIC
        MOV     A,#-0xa
        LCALL   ?BANKED_ENTER_XDATA
        CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 10)
        ; Saved register size: 10
        ; Auto size: 0
        MOV     A,R2
        MOV     R6,A
        MOV     A,R3
        MOV     R7,A
//  411   osal_msg_hdr_t *hdr;
//  412 
//  413   if ( len == 0 )
        MOV     A,R6
        JNZ     ??osal_msg_allocate_0
        MOV     A,R7
??osal_msg_allocate_0:
        JNZ     ??osal_msg_allocate_1
//  414     return ( NULL );
??osal_msg_allocate_2:
        MOV     R2,#0x0
        MOV     R3,#0x0
        SJMP    ??osal_msg_allocate_3
//  415 
//  416   hdr = (osal_msg_hdr_t *) osal_mem_alloc( (short)(len + sizeof( osal_msg_hdr_t )) );
??osal_msg_allocate_1:
        ; Setup parameters for call to function osal_mem_alloc
        MOV     A,#0x5
        ADD     A,R6
        MOV     R2,A
        CLR     A
        ADDC    A,R7
        MOV     R3,A
        LCALL   ??osal_mem_alloc?relay
        MOV     ?V0 + 0,R2
        MOV     ?V0 + 1,R3
        MOV     R0,?V0 + 0
        MOV     R1,?V0 + 1
//  417   if ( hdr )
        MOV     A,R0
        JNZ     ??osal_msg_allocate_4
        MOV     A,R1
??osal_msg_allocate_4:
        JZ      ??osal_msg_allocate_2
//  418   {
//  419     hdr->next = NULL;
        MOV     DPL,R0
        MOV     DPH,R1
        CLR     A
        MOVX    @DPTR,A
        INC     DPTR
        MOVX    @DPTR,A
//  420     hdr->len = len;
        MOV     DPL,R0
        MOV     DPH,R1
        INC     DPTR
        INC     DPTR
        MOV     A,R6
        MOVX    @DPTR,A
        INC     DPTR
        MOV     A,R7
        MOVX    @DPTR,A
//  421     hdr->dest_id = TASK_NO_TASK;
        MOV     A,#-0x1
        MOV     DPL,R0
        MOV     DPH,R1
        INC     DPTR
        INC     DPTR
        INC     DPTR
        INC     DPTR
        MOVX    @DPTR,A
//  422 
//  423 #if defined( OSAL_TOTAL_MEM )
//  424     osal_msg_cnt++;
//  425 #endif
//  426     return ( (byte *) (hdr + 1) );
        MOV     A,R0
        ADD     A,#0x5
        MOV     R2,A
        MOV     A,R1
        ADDC    A,#0x0
        MOV     R3,A
        CFI EndBlock cfiBlock45
??osal_msg_allocate_3:
        REQUIRE ?Subroutine21
        ; // Fall through to label ?Subroutine21
//  427   }
//  428   else
//  429     return ( NULL );
//  430 }

        RSEG BANKED_CODE:CODE:NOROOT(0)
?Subroutine21:
        CFI Block cfiBlock46 Using cfiCommon0
        CFI NoFunction
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 10)
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        MOV     R7,#0x2
        LJMP    ?BANKED_LEAVE_XDATA
        CFI EndBlock cfiBlock46
//  431 
//  432 /*********************************************************************
//  433  * @fn      osal_msg_deallocate
//  434  *
//  435  * @brief
//  436  *
//  437  *    This function is used to deallocate a message buffer. This function
//  438  *    is called by a task (or processing element) after it has finished
//  439  *    processing a received message.
//  440  *
//  441  *
//  442  * @param   byte *msg_ptr - pointer to new message buffer
//  443  *
//  444  * @return  ZSUCCESS, INVALID_MSG_POINTER
//  445  */

        RSEG BANKED_CODE:CODE:NOROOT(0)
//  446 byte osal_msg_deallocate( byte *msg_ptr )
osal_msg_deallocate:
        CFI Block cfiBlock47 Using cfiCommon0
        CFI Function osal_msg_deallocate
//  447 {
        FUNCALL osal_msg_deallocate, osal_mem_free
        LOCFRAME ISTACK, 2, STACK
        LOCFRAME PSTACK, 0, STACK
        LOCFRAME XSTACK, 0, STACK
        LOCFRAME IOVERLAY, 0, STATIC
        LOCFRAME DOVERLAY, 0, STATIC
        ARGFRAME ISTACK, 2, STACK
        ARGFRAME PSTACK, 0, STACK
        ARGFRAME XSTACK, 0, STACK
        ARGFRAME IOVERLAY, 0, STATIC
        ARGFRAME DOVERLAY, 0, STATIC
        PUSH    DPL
        CFI DPL0 Frame(CFA_SP, 4)
        CFI CFA_SP SP+-4
        PUSH    DPH
        CFI DPH0 Frame(CFA_SP, 5)
        CFI CFA_SP SP+-5
        ; Saved register size: 2
        ; Auto size: 0
//  448   byte *x;
//  449 
//  450   if ( msg_ptr == NULL )
        MOV     A,R2
        JNZ     ??osal_msg_deallocate_0
        MOV     A,R3
??osal_msg_deallocate_0:
        JNZ     ??osal_msg_deallocate_1
//  451     return ( INVALID_MSG_POINTER );
        MOV     R1,#0x3
        SJMP    ??osal_msg_deallocate_2
//  452 
//  453   // don't deallocate queued buffer
//  454   if ( OSAL_MSG_ID( msg_ptr ) != TASK_NO_TASK )
??osal_msg_deallocate_1:
        LCALL   ?Subroutine13 & 0xFFFF
??CrossCallReturnLabel_30:
        XRL     A,#0xff
        JZ      ??osal_msg_deallocate_3
//  455     return ( MSG_BUFFER_NOT_AVAIL );
        MOV     R1,#0x2
        SJMP    ??osal_msg_deallocate_2
//  456 
//  457   x = (byte *)((byte *)msg_ptr - sizeof( osal_msg_hdr_t ));
//  458 
//  459   osal_mem_free( (void *)x );
??osal_msg_deallocate_3:
        ; Setup parameters for call to function osal_mem_free
        MOV     A,R2
        ADD     A,#-0x5
        MOV     R2,A
        MOV     A,R3
        ADDC    A,#-0x1
        MOV     R3,A
        LCALL   ??osal_mem_free?relay
//  460 
//  461 #if defined( OSAL_TOTAL_MEM )
//  462   if ( osal_msg_cnt )
//  463     osal_msg_cnt--;
//  464 #endif
//  465 
//  466   return ( ZSUCCESS );
        MOV     R1,#0x0
        CFI EndBlock cfiBlock47
??osal_msg_deallocate_2:
        REQUIRE ?Subroutine19
        ; // Fall through to label ?Subroutine19
//  467 }

        RSEG BANKED_CODE:CODE:NOROOT(0)
?Subroutine19:
        CFI Block cfiBlock48 Using cfiCommon0
        CFI NoFunction
        CFI CFA_SP SP+-5
        CFI DPL0 Frame(CFA_SP, 4)
        CFI DPH0 Frame(CFA_SP, 5)
        POP     DPH
        CFI CFA_SP SP+-4
        CFI DPH0 SameValue
        POP     DPL
        CFI CFA_SP SP+-3
        CFI DPL0 SameValue
        LJMP    ?BRET
        CFI EndBlock cfiBlock48
//  468 
//  469 #if defined( OSAL_TOTAL_MEM )
//  470 /*********************************************************************
//  471  * @fn      osal_num_msgs
//  472  *
//  473  * @brief
//  474  *
//  475  *    This function returns the number of allocated messages
//  476  *
//  477  * @param   void
//  478  *
//  479  * @return  UINT16 - number of msgs out
//  480  */
//  481 UINT16 osal_num_msgs( void )
//  482 {
//  483   return ( osal_msg_cnt );
//  484 }
//  485 #endif
//  486 
//  487 /*********************************************************************
//  488  * @fn      osal_msg_send
//  489  *
//  490  * @brief
//  491  *
//  492  *    This function is called by a task to send a command message to
//  493  *    another task or processing element.  The sending_task field must
//  494  *    refer to a valid task, since the task ID will be used
//  495  *    for the response message.  This function will also set a message
//  496  *    ready event in the destination tasks event list.
//  497  *
//  498  *
//  499  * @param   byte destination task - Send msg to?  Task ID
//  500  * @param   byte *msg_ptr - pointer to new message buffer
//  501  * @param   byte len - length of data in message
//  502  *
//  503  * @return  ZSUCCESS, INVALID_SENDING_TASK, INVALID_DESTINATION_TASK,
//  504  *          INVALID_MSG_POINTER, INVALID_LEN
//  505  */

        RSEG BANKED_CODE:CODE:NOROOT(0)
//  506 byte osal_msg_send( byte destination_task, byte *msg_ptr )
osal_msg_send:
        CFI Block cfiBlock49 Using cfiCommon0
        CFI Function osal_msg_send
//  507 {
        FUNCALL osal_msg_send, osal_msg_deallocate
        LOCFRAME ISTACK, 0, STACK
        LOCFRAME PSTACK, 0, STACK
        LOCFRAME XSTACK, 9, STACK
        LOCFRAME IOVERLAY, 0, STATIC
        LOCFRAME DOVERLAY, 0, STATIC
        ARGFRAME ISTACK, 0, STACK
        ARGFRAME PSTACK, 0, STACK
        ARGFRAME XSTACK, 9, STACK
        ARGFRAME IOVERLAY, 0, STATIC
        ARGFRAME DOVERLAY, 0, STATIC
        FUNCALL osal_msg_send, osal_msg_deallocate
        LOCFRAME ISTACK, 0, STACK
        LOCFRAME PSTACK, 0, STACK
        LOCFRAME XSTACK, 9, STACK
        LOCFRAME IOVERLAY, 0, STATIC
        LOCFRAME DOVERLAY, 0, STATIC
        ARGFRAME ISTACK, 0, STACK
        ARGFRAME PSTACK, 0, STACK
        ARGFRAME XSTACK, 9, STACK
        ARGFRAME IOVERLAY, 0, STATIC
        ARGFRAME DOVERLAY, 0, STATIC
        FUNCALL osal_msg_send, osal_msg_enqueue
        LOCFRAME ISTACK, 0, STACK
        LOCFRAME PSTACK, 0, STACK
        LOCFRAME XSTACK, 9, STACK
        LOCFRAME IOVERLAY, 0, STATIC
        LOCFRAME DOVERLAY, 0, STATIC
        ARGFRAME ISTACK, 0, STACK
        ARGFRAME PSTACK, 0, STACK
        ARGFRAME XSTACK, 9, STACK
        ARGFRAME IOVERLAY, 0, STATIC
        ARGFRAME DOVERLAY, 0, STATIC
        FUNCALL osal_msg_send, osal_set_event
        LOCFRAME ISTACK, 0, STACK
        LOCFRAME PSTACK, 0, STACK
        LOCFRAME XSTACK, 9, STACK
        LOCFRAME IOVERLAY, 0, STATIC
        LOCFRAME DOVERLAY, 0, STATIC
        ARGFRAME ISTACK, 0, STACK
        ARGFRAME PSTACK, 0, STACK
        ARGFRAME XSTACK, 9, STACK
        ARGFRAME IOVERLAY, 0, STATIC
        ARGFRAME DOVERLAY, 0, STATIC
        MOV     A,#-0x9
        LCALL   ?BANKED_ENTER_XDATA
        CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 9)
        ; Saved register size: 9
        ; Auto size: 0
        MOV     A,R1
        MOV     R6,A
//  508   if ( msg_ptr == NULL )
        MOV     A,R2
        JNZ     ??osal_msg_send_0
        MOV     A,R3
??osal_msg_send_0:
        JNZ     ??osal_msg_send_1
//  509     return ( INVALID_MSG_POINTER );
??osal_msg_send_2:
        MOV     R1,#0x3
        SJMP    ??osal_msg_send_3
//  510 
//  511   if ( destination_task >= tasksCnt )
??osal_msg_send_1:
        MOV     DPTR,#tasksCnt
        MOVX    A,@DPTR
        MOV     R4,A
        MOV     A,R1
        CLR     C
        SUBB    A,R4
        JC      ??osal_msg_send_4
//  512   {
//  513     osal_msg_deallocate( msg_ptr );
        ; Setup parameters for call to function osal_msg_deallocate
        LCALL   ??osal_msg_deallocate?relay
//  514     return ( INVALID_TASK );
        MOV     R1,#0x1
        SJMP    ??osal_msg_send_3
//  515   }
//  516 
//  517   // Check the message header
//  518   if ( OSAL_MSG_NEXT( msg_ptr ) != NULL ||
//  519        OSAL_MSG_ID( msg_ptr ) != TASK_NO_TASK )
??osal_msg_send_4:
        MOV     A,R2
        ADD     A,#-0x5
        LCALL   ??Subroutine13_0 & 0xFFFF
??CrossCallReturnLabel_31:
        JNZ     ??osal_msg_send_5
        INC     DPTR
        MOVX    A,@DPTR
??osal_msg_send_5:
        JNZ     ??osal_msg_send_6
        LCALL   ?Subroutine13 & 0xFFFF
??CrossCallReturnLabel_32:
        XRL     A,#0xff
        JZ      ??osal_msg_send_7
//  520   {
//  521     osal_msg_deallocate( msg_ptr );
??osal_msg_send_6:
        ; Setup parameters for call to function osal_msg_deallocate
        LCALL   ??osal_msg_deallocate?relay
        SJMP    ??osal_msg_send_2
//  522     return ( INVALID_MSG_POINTER );
//  523   }
//  524 
//  525   OSAL_MSG_ID( msg_ptr ) = destination_task;
??osal_msg_send_7:
        MOV     A,R6
        MOVX    @DPTR,A
//  526 
//  527   // queue message
//  528   osal_msg_enqueue( &osal_qHead, msg_ptr );
        ; Setup parameters for call to function osal_msg_enqueue
        MOV     A,R2
        MOV     R4,A
        MOV     A,R3
        MOV     R5,A
        MOV     R2,#(osal_qHead & 0xff)
        MOV     R3,#((osal_qHead >> 8) & 0xff)
        LCALL   ??osal_msg_enqueue?relay
//  529 
//  530   // Signal the task that a message is waiting
//  531   osal_set_event( destination_task, SYS_EVENT_MSG );
        ; Setup parameters for call to function osal_set_event
        MOV     R2,#0x0
        MOV     R3,#-0x80
        MOV     A,R6
        MOV     R1,A
        LCALL   ??osal_set_event?relay
//  532 
//  533   return ( ZSUCCESS );
        MOV     R1,#0x0
        CFI EndBlock cfiBlock49
??osal_msg_send_3:
        REQUIRE ?Subroutine23
        ; // Fall through to label ?Subroutine23
//  534 }

        RSEG BANKED_CODE:CODE:NOROOT(0)
?Subroutine23:
        CFI Block cfiBlock50 Using cfiCommon0
        CFI NoFunction
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 9)
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        MOV     R7,#0x1
        LJMP    ?BANKED_LEAVE_XDATA
        CFI EndBlock cfiBlock50
//  535 
//  536 /*********************************************************************
//  537  * @fn      osal_msg_receive
//  538  *
//  539  * @brief
//  540  *
//  541  *    This function is called by a task to retrieve a received command
//  542  *    message. The calling task must deallocate the message buffer after
//  543  *    processing the message using the osal_msg_deallocate() call.
//  544  *
//  545  * @param   byte task_id - receiving tasks ID
//  546  *
//  547  * @return  *byte - message information or NULL if no message
//  548  */

        RSEG BANKED_CODE:CODE:NOROOT(0)
//  549 byte *osal_msg_receive( byte task_id )
osal_msg_receive:
        CFI Block cfiBlock51 Using cfiCommon0
        CFI Function osal_msg_receive
//  550 {
        FUNCALL osal_msg_receive, osal_msg_extract
        LOCFRAME ISTACK, 0, STACK
        LOCFRAME PSTACK, 0, STACK
        LOCFRAME XSTACK, 14, STACK
        LOCFRAME IOVERLAY, 0, STATIC
        LOCFRAME DOVERLAY, 0, STATIC
        ARGFRAME ISTACK, 0, STACK
        ARGFRAME PSTACK, 0, STACK
        ARGFRAME XSTACK, 14, STACK
        ARGFRAME IOVERLAY, 0, STATIC
        ARGFRAME DOVERLAY, 0, STATIC
        MOV     A,#-0xc
        LCALL   ?BANKED_ENTER_XDATA
        CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-11)))
        CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-12)))
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 12)
        ; Saved register size: 12
        ; Auto size: 0
//  551   osal_msg_hdr_t *listHdr;
//  552   osal_msg_hdr_t *prevHdr=0;
        MOV     ?V0 + 2,#0x0
        MOV     ?V0 + 3,#0x0
//  553   halIntState_t   intState;
//  554 
//  555   // Hold off interrupts
//  556   HAL_ENTER_CRITICAL_SECTION(intState);
        MOV     C,0xa8.7
        CLR     A
        MOV     0xE0 /* A   */.0,C
        MOV     R6,A
        CLR     0xa8.7
//  557 
//  558   // Point to the top of the queue
//  559   listHdr = osal_qHead;
        MOV     DPTR,#osal_qHead
        SJMP    ??osal_msg_receive_0
//  560 
//  561   // Look through the queue for a message that belongs to the asking task
//  562   while ( listHdr != NULL )
//  563   {
//  564     if ( (listHdr - 1)->dest_id == task_id )
??osal_msg_receive_1:
        MOV     A,?V0 + 0
        ADD     A,#-0x1
        MOV     DPL,A
        MOV     A,?V0 + 1
        LCALL   ??Subroutine13_1 & 0xFFFF
??CrossCallReturnLabel_33:
        XRL     A,R1
        JZ      ??osal_msg_receive_2
//  565     {
//  566       break;
//  567     }
//  568     prevHdr = listHdr;
        MOV     ?V0 + 2,?V0 + 0
        MOV     ?V0 + 3,?V0 + 1
//  569     listHdr = OSAL_MSG_NEXT( listHdr );
        MOV     A,?V0 + 0
        ADD     A,#-0x5
        MOV     DPL,A
        MOV     A,?V0 + 1
        ADDC    A,#-0x1
        MOV     DPH,A
??osal_msg_receive_0:
        MOVX    A,@DPTR
        MOV     ?V0 + 0,A
        INC     DPTR
        MOVX    A,@DPTR
        MOV     ?V0 + 1,A
//  570   }
        MOV     A,?V0 + 0
        JNZ     ??osal_msg_receive_3
        MOV     A,?V0 + 1
??osal_msg_receive_3:
        JNZ     ??osal_msg_receive_1
//  571 
//  572   // Did we find a message?
//  573   if ( listHdr == NULL )
//  574   {
//  575     // Release interrupts
//  576     HAL_EXIT_CRITICAL_SECTION(intState);
        MOV     A,R6
        MOV     C,0xE0 /* A   */.0
        MOV     0xa8.7,C
//  577     return NULL;
        MOV     R2,#0x0
        MOV     R3,#0x0
        SJMP    ??osal_msg_receive_4
//  578   }
//  579 
//  580   // Take out of the link list
//  581   osal_msg_extract( &osal_qHead, listHdr, prevHdr );
??osal_msg_receive_2:
        ; Setup parameters for call to function osal_msg_extract
        MOV     R0,#?V0 + 2
        LCALL   ?PUSH_XSTACK_I_TWO
        CFI CFA_XSP16 add(XSP16, 14)
        MOV     R4,?V0 + 0
        MOV     R5,?V0 + 1
        MOV     R2,#(osal_qHead & 0xff)
        MOV     R3,#((osal_qHead >> 8) & 0xff)
        LCALL   ??osal_msg_extract?relay
        MOV     A,#0x2
        LCALL   ?DEALLOC_XSTACK8
        CFI CFA_XSP16 add(XSP16, 12)
//  582 
//  583   // Release interrupts
//  584   HAL_EXIT_CRITICAL_SECTION(intState);
        MOV     A,R6
        MOV     C,0xE0 /* A   */.0
        MOV     0xa8.7,C
//  585 
//  586   return ( (byte*) listHdr );
        MOV     R2,?V0 + 0
        MOV     R3,?V0 + 1
??osal_msg_receive_4:
        MOV     R7,#0x4
        LJMP    ?BANKED_LEAVE_XDATA
        CFI EndBlock cfiBlock51
        REQUIRE _A_IEN0
//  587 }
//  588 
//  589 /*********************************************************************
//  590  * @fn      osal_msg_enqueue
//  591  *
//  592  * @brief
//  593  *
//  594  *    This function enqueues an OSAL message into an OSAL queue.
//  595  *
//  596  * @param   osal_msg_q_t *q_ptr - OSAL queue
//  597  * @param   void *msg_ptr  - OSAL message
//  598  *
//  599  * @return  none
//  600  */

        RSEG BANKED_CODE:CODE:NOROOT(0)
//  601 void osal_msg_enqueue( osal_msg_q_t *q_ptr, void *msg_ptr )
osal_msg_enqueue:
        CFI Block cfiBlock52 Using cfiCommon0
        CFI Function osal_msg_enqueue
//  602 {
        MOV     A,#-0x9
        LCALL   ?BANKED_ENTER_XDATA
        CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 9)
        ; Saved register size: 9
        ; Auto size: 0
//  603   void *list;
//  604   halIntState_t intState;
//  605 
//  606   // Hold off interrupts
//  607   HAL_ENTER_CRITICAL_SECTION(intState);
        MOV     C,0xa8.7
        CLR     A
        MOV     0xE0 /* A   */.0,C
        MOV     R6,A
        CLR     0xa8.7
//  608 
//  609   // If first message in queue
//  610   if ( *q_ptr == NULL )
        MOV     DPL,R2
        MOV     DPH,R3
        MOVX    A,@DPTR
        JNZ     ??osal_msg_enqueue_0
        INC     DPTR
        MOVX    A,@DPTR
??osal_msg_enqueue_0:
        MOV     DPL,R2
        MOV     DPH,R3
        JNZ     ??CrossCallReturnLabel_53
//  611   {
//  612     *q_ptr = msg_ptr;
        SJMP    ??CrossCallReturnLabel_54
//  613   }
//  614   else
//  615   {
//  616     // Find end of queue
//  617     for ( list = *q_ptr; OSAL_MSG_NEXT( list ) != NULL; list = OSAL_MSG_NEXT( list ) );
??osal_msg_enqueue_1:
        LCALL   ?Subroutine14 & 0xFFFF
??CrossCallReturnLabel_53:
        LCALL   ?Subroutine3 & 0xFFFF
??CrossCallReturnLabel_9:
        MOV     A,R0
        ADD     A,#-0x5
        MOV     DPL,A
        MOV     A,R1
        LCALL   ??Subroutine13_1 & 0xFFFF
??CrossCallReturnLabel_34:
        JNZ     ??osal_msg_enqueue_2
        INC     DPTR
        MOVX    A,@DPTR
??osal_msg_enqueue_2:
        JNZ     ??osal_msg_enqueue_1
//  618 
//  619     // Add message to end of queue
//  620     OSAL_MSG_NEXT( list ) = msg_ptr;
        LCALL   ?Subroutine14 & 0xFFFF
        CFI EndBlock cfiBlock52
??CrossCallReturnLabel_54:
        REQUIRE ?Subroutine22
        REQUIRE _A_IEN0
        ; // Fall through to label ?Subroutine22
//  621   }
//  622 
//  623   // Re-enable interrupts
//  624   HAL_EXIT_CRITICAL_SECTION(intState);
//  625 }

        RSEG BANKED_CODE:CODE:NOROOT(0)
?Subroutine22:
        CFI Block cfiBlock53 Using cfiCommon0
        CFI NoFunction
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 9)
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        LCALL   ?Subroutine11 & 0xFFFF
??CrossCallReturnLabel_44:
        LJMP    ?BANKED_LEAVE_XDATA
        CFI EndBlock cfiBlock53
//  626 
//  627 /*********************************************************************
//  628  * @fn      osal_msg_dequeue
//  629  *
//  630  * @brief
//  631  *
//  632  *    This function dequeues an OSAL message from an OSAL queue.
//  633  *
//  634  * @param   osal_msg_q_t *q_ptr - OSAL queue
//  635  *
//  636  * @return  void * - pointer to OSAL message or NULL of queue is empty.
//  637  */

        RSEG BANKED_CODE:CODE:NOROOT(0)
//  638 void *osal_msg_dequeue( osal_msg_q_t *q_ptr )
osal_msg_dequeue:
        CFI Block cfiBlock54 Using cfiCommon0
        CFI Function osal_msg_dequeue
//  639 {
        MOV     A,#-0xa
        LCALL   ?BANKED_ENTER_XDATA
        CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 10)
        ; Saved register size: 10
        ; Auto size: 0
        MOV     A,R2
        MOV     R0,A
        MOV     A,R3
        MOV     R1,A
//  640   void *msg_ptr;
//  641   halIntState_t intState;
//  642 
//  643   // Hold off interrupts
//  644   HAL_ENTER_CRITICAL_SECTION(intState);
        MOV     C,0xa8.7
        CLR     A
        MOV     0xE0 /* A   */.0,C
        MOV     ?V0 + 0,A
        CLR     0xa8.7
//  645 
//  646   if ( *q_ptr == NULL )
        MOV     DPL,R0
        MOV     DPH,R1
        MOVX    A,@DPTR
        JNZ     ??osal_msg_dequeue_0
        INC     DPTR
        MOVX    A,@DPTR
??osal_msg_dequeue_0:
        JNZ     ??osal_msg_dequeue_1
//  647   {
//  648     HAL_EXIT_CRITICAL_SECTION(intState);
        MOV     A,?V0 + 0
        MOV     C,0xE0 /* A   */.0
        MOV     0xa8.7,C
//  649     return NULL;
        MOV     R2,#0x0
        MOV     R3,#0x0
        SJMP    ??CrossCallReturnLabel_47
//  650   }
//  651 
//  652   // Dequeue message
//  653   msg_ptr = *q_ptr;
??osal_msg_dequeue_1:
        LCALL   ?Subroutine8 & 0xFFFF
//  654   *q_ptr = OSAL_MSG_NEXT( msg_ptr );
??CrossCallReturnLabel_23:
        MOV     A,R2
        ADD     A,#-0x5
        MOV     R4,A
        MOV     A,R3
        ADDC    A,#-0x1
        MOV     R5,A
        MOV     DPL,R4
        MOV     DPH,R5
        MOVX    A,@DPTR
        MOV     R6,A
        INC     DPTR
        MOVX    A,@DPTR
        MOV     R7,A
        MOV     DPL,R0
        MOV     DPH,R1
        MOV     A,R6
        MOVX    @DPTR,A
        INC     DPTR
        MOV     A,R7
        MOVX    @DPTR,A
//  655   OSAL_MSG_NEXT( msg_ptr ) = NULL;
        MOV     DPL,R4
        MOV     DPH,R5
        CLR     A
        MOVX    @DPTR,A
        INC     DPTR
        MOVX    @DPTR,A
//  656   OSAL_MSG_ID( msg_ptr ) = TASK_NO_TASK;
        MOV     A,R2
        ADD     A,#-0x1
        MOV     DPL,A
        MOV     A,R3
        LCALL   ?Subroutine15 & 0xFFFF
//  657 
//  658   // Re-enable interrupts
//  659   HAL_EXIT_CRITICAL_SECTION(intState);
//  660 
//  661   return msg_ptr;
??CrossCallReturnLabel_47:
        LJMP    ?Subroutine21 & 0xFFFF
        CFI EndBlock cfiBlock54
        REQUIRE _A_IEN0
//  662 }

        RSEG BANKED_CODE:CODE:NOROOT(0)
?Subroutine8:
        CFI Block cfiCond55 Using cfiCommon0
        CFI NoFunction
        CFI Conditional ??CrossCallReturnLabel_23
        CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 10)
        CFI Block cfiCond56 Using cfiCommon0
        CFI (cfiCond56) NoFunction
        CFI (cfiCond56) Conditional ??CrossCallReturnLabel_25
        CFI (cfiCond56) R6 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI (cfiCond56) VB load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI (cfiCond56) V0 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI (cfiCond56) V1 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI (cfiCond56) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI (cfiCond56) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI (cfiCond56) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI (cfiCond56) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI (cfiCond56) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI (cfiCond56) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI (cfiCond56) CFA_SP SP+0
        CFI (cfiCond56) CFA_XSP16 add(XSP16, 10)
        CFI Block cfiPicker57 Using cfiCommon1
        CFI (cfiPicker57) NoFunction
        CFI (cfiPicker57) Picker
        MOV     DPL,R0
        MOV     DPH,R1
        CFI Block cfiCond58 Using cfiCommon0
        CFI (cfiCond58) NoFunction
        CFI (cfiCond58) Conditional ??CrossCallReturnLabel_20
        CFI (cfiCond58) R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
        CFI (cfiCond58) VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
        CFI (cfiCond58) V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
        CFI (cfiCond58) V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
        CFI (cfiCond58) V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
        CFI (cfiCond58) V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
        CFI (cfiCond58) V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI (cfiCond58) V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI (cfiCond58) V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI (cfiCond58) V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI (cfiCond58) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI (cfiCond58) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI (cfiCond58) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI (cfiCond58) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI (cfiCond58) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI (cfiCond58) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI (cfiCond58) CFA_SP SP+0
        CFI (cfiCond58) CFA_XSP16 add(XSP16, 52)
        CFI Block cfiCond59 Using cfiCommon0
        CFI (cfiCond59) NoFunction
        CFI (cfiCond59) Conditional ??CrossCallReturnLabel_21
        CFI (cfiCond59) R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
        CFI (cfiCond59) VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
        CFI (cfiCond59) V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
        CFI (cfiCond59) V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
        CFI (cfiCond59) V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
        CFI (cfiCond59) V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
        CFI (cfiCond59) V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI (cfiCond59) V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI (cfiCond59) V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI (cfiCond59) V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI (cfiCond59) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI (cfiCond59) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI (cfiCond59) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI (cfiCond59) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI (cfiCond59) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI (cfiCond59) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI (cfiCond59) CFA_SP SP+0
        CFI (cfiCond59) CFA_XSP16 add(XSP16, 52)
        CFI Block cfiCond60 Using cfiCommon0
        CFI (cfiCond60) NoFunction
        CFI (cfiCond60) Conditional ??CrossCallReturnLabel_22
        CFI (cfiCond60) R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
        CFI (cfiCond60) VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
        CFI (cfiCond60) V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
        CFI (cfiCond60) V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
        CFI (cfiCond60) V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
        CFI (cfiCond60) V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
        CFI (cfiCond60) V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI (cfiCond60) V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI (cfiCond60) V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI (cfiCond60) V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI (cfiCond60) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI (cfiCond60) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI (cfiCond60) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI (cfiCond60) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI (cfiCond60) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI (cfiCond60) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI (cfiCond60) CFA_SP SP+0
        CFI (cfiCond60) CFA_XSP16 add(XSP16, 52)
        CFI Block cfiCond61 Using cfiCommon0
        CFI (cfiCond61) NoFunction
        CFI (cfiCond61) Conditional ??CrossCallReturnLabel_24
        CFI (cfiCond61) R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI (cfiCond61) VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI (cfiCond61) V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI (cfiCond61) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI (cfiCond61) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI (cfiCond61) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI (cfiCond61) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI (cfiCond61) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI (cfiCond61) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI (cfiCond61) CFA_SP SP+0
        CFI (cfiCond61) CFA_XSP16 add(XSP16, 9)
??Subroutine8_0:
        LCALL   ?Subroutine18 & 0xFFFF
??CrossCallReturnLabel_42:
        RET
        CFI EndBlock cfiCond55
        CFI EndBlock cfiCond56
        CFI EndBlock cfiPicker57
        CFI EndBlock cfiCond58
        CFI EndBlock cfiCond59
        CFI EndBlock cfiCond60
        CFI EndBlock cfiCond61

        RSEG BANKED_CODE:CODE:NOROOT(0)
?Subroutine18:
        CFI Block cfiCond62 Using cfiCommon0
        CFI NoFunction
        CFI Conditional ??CrossCallReturnLabel_41, ??CrossCallReturnLabel_18
        CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
        CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
        CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
        CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
        CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
        CFI V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 52)
        CFI Block cfiCond63 Using cfiCommon0
        CFI (cfiCond63) NoFunction
        CFI (cfiCond63) Conditional ??CrossCallReturnLabel_41, ??CrossCallReturnLabel_19
        CFI (cfiCond63) R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
        CFI (cfiCond63) VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
        CFI (cfiCond63) V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
        CFI (cfiCond63) V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
        CFI (cfiCond63) V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
        CFI (cfiCond63) V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
        CFI (cfiCond63) V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI (cfiCond63) V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI (cfiCond63) V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI (cfiCond63) V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI (cfiCond63) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI (cfiCond63) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI (cfiCond63) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI (cfiCond63) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI (cfiCond63) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI (cfiCond63) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI (cfiCond63) CFA_SP SP+0
        CFI (cfiCond63) CFA_XSP16 add(XSP16, 52)
        CFI Block cfiCond64 Using cfiCommon0
        CFI (cfiCond64) NoFunction
        CFI (cfiCond64) Conditional ??CrossCallReturnLabel_40, ??CrossCallReturnLabel_14
        CFI (cfiCond64) R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
        CFI (cfiCond64) VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
        CFI (cfiCond64) V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
        CFI (cfiCond64) V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
        CFI (cfiCond64) V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
        CFI (cfiCond64) V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
        CFI (cfiCond64) V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI (cfiCond64) V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI (cfiCond64) V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI (cfiCond64) V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI (cfiCond64) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI (cfiCond64) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI (cfiCond64) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI (cfiCond64) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI (cfiCond64) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI (cfiCond64) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI (cfiCond64) CFA_SP SP+0
        CFI (cfiCond64) CFA_XSP16 add(XSP16, 52)
        CFI Block cfiCond65 Using cfiCommon0
        CFI (cfiCond65) NoFunction
        CFI (cfiCond65) Conditional ??CrossCallReturnLabel_40, ??CrossCallReturnLabel_15
        CFI (cfiCond65) R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
        CFI (cfiCond65) VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
        CFI (cfiCond65) V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
        CFI (cfiCond65) V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
        CFI (cfiCond65) V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
        CFI (cfiCond65) V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
        CFI (cfiCond65) V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI (cfiCond65) V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI (cfiCond65) V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI (cfiCond65) V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI (cfiCond65) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI (cfiCond65) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI (cfiCond65) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI (cfiCond65) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI (cfiCond65) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI (cfiCond65) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI (cfiCond65) CFA_SP SP+0
        CFI (cfiCond65) CFA_XSP16 add(XSP16, 52)
        CFI Block cfiCond66 Using cfiCommon0
        CFI (cfiCond66) NoFunction
        CFI (cfiCond66) Conditional ??CrossCallReturnLabel_43, ??CrossCallReturnLabel_38, ??CrossCallReturnLabel_16
        CFI (cfiCond66) R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
        CFI (cfiCond66) VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
        CFI (cfiCond66) V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
        CFI (cfiCond66) V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
        CFI (cfiCond66) V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
        CFI (cfiCond66) V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
        CFI (cfiCond66) V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI (cfiCond66) V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI (cfiCond66) V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI (cfiCond66) V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI (cfiCond66) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI (cfiCond66) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI (cfiCond66) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI (cfiCond66) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI (cfiCond66) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI (cfiCond66) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI (cfiCond66) CFA_SP SP+0
        CFI (cfiCond66) CFA_XSP16 add(XSP16, 52)
        CFI Block cfiCond67 Using cfiCommon0
        CFI (cfiCond67) NoFunction
        CFI (cfiCond67) Conditional ??CrossCallReturnLabel_43, ??CrossCallReturnLabel_38, ??CrossCallReturnLabel_17
        CFI (cfiCond67) R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
        CFI (cfiCond67) VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
        CFI (cfiCond67) V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
        CFI (cfiCond67) V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
        CFI (cfiCond67) V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
        CFI (cfiCond67) V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
        CFI (cfiCond67) V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI (cfiCond67) V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI (cfiCond67) V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI (cfiCond67) V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI (cfiCond67) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI (cfiCond67) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI (cfiCond67) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI (cfiCond67) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI (cfiCond67) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI (cfiCond67) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI (cfiCond67) CFA_SP SP+0
        CFI (cfiCond67) CFA_XSP16 add(XSP16, 52)
        CFI Block cfiCond68 Using cfiCommon0
        CFI (cfiCond68) NoFunction
        CFI (cfiCond68) Conditional ??CrossCallReturnLabel_43, ??CrossCallReturnLabel_39, ??CrossCallReturnLabel_5
        CFI (cfiCond68) R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
        CFI (cfiCond68) VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
        CFI (cfiCond68) V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
        CFI (cfiCond68) V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
        CFI (cfiCond68) V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
        CFI (cfiCond68) V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
        CFI (cfiCond68) V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI (cfiCond68) V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI (cfiCond68) V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI (cfiCond68) V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI (cfiCond68) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI (cfiCond68) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI (cfiCond68) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI (cfiCond68) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI (cfiCond68) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI (cfiCond68) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI (cfiCond68) CFA_SP SP+0
        CFI (cfiCond68) CFA_XSP16 add(XSP16, 52)
        CFI Block cfiCond69 Using cfiCommon0
        CFI (cfiCond69) NoFunction
        CFI (cfiCond69) Conditional ??CrossCallReturnLabel_43, ??CrossCallReturnLabel_39, ??CrossCallReturnLabel_6
        CFI (cfiCond69) R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
        CFI (cfiCond69) VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
        CFI (cfiCond69) V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
        CFI (cfiCond69) V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
        CFI (cfiCond69) V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
        CFI (cfiCond69) V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
        CFI (cfiCond69) V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI (cfiCond69) V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI (cfiCond69) V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI (cfiCond69) V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI (cfiCond69) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI (cfiCond69) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI (cfiCond69) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI (cfiCond69) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI (cfiCond69) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI (cfiCond69) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI (cfiCond69) CFA_SP SP+0
        CFI (cfiCond69) CFA_XSP16 add(XSP16, 52)
        CFI Block cfiCond70 Using cfiCommon0
        CFI (cfiCond70) NoFunction
        CFI (cfiCond70) Conditional ??CrossCallReturnLabel_43, ??CrossCallReturnLabel_39, ??CrossCallReturnLabel_7
        CFI (cfiCond70) R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
        CFI (cfiCond70) VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
        CFI (cfiCond70) V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
        CFI (cfiCond70) V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
        CFI (cfiCond70) V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
        CFI (cfiCond70) V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
        CFI (cfiCond70) V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI (cfiCond70) V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI (cfiCond70) V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI (cfiCond70) V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI (cfiCond70) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI (cfiCond70) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI (cfiCond70) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI (cfiCond70) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI (cfiCond70) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI (cfiCond70) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI (cfiCond70) CFA_SP SP+0
        CFI (cfiCond70) CFA_XSP16 add(XSP16, 52)
        CFI Block cfiCond71 Using cfiCommon0
        CFI (cfiCond71) NoFunction
        CFI (cfiCond71) Conditional ??CrossCallReturnLabel_42, ??CrossCallReturnLabel_23
        CFI (cfiCond71) R6 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI (cfiCond71) VB load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI (cfiCond71) V0 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI (cfiCond71) V1 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI (cfiCond71) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI (cfiCond71) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI (cfiCond71) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI (cfiCond71) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI (cfiCond71) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI (cfiCond71) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI (cfiCond71) CFA_SP SP+0
        CFI (cfiCond71) CFA_XSP16 add(XSP16, 10)
        CFI Block cfiCond72 Using cfiCommon0
        CFI (cfiCond72) NoFunction
        CFI (cfiCond72) Conditional ??CrossCallReturnLabel_42, ??CrossCallReturnLabel_25
        CFI (cfiCond72) R6 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI (cfiCond72) VB load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI (cfiCond72) V0 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI (cfiCond72) V1 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI (cfiCond72) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI (cfiCond72) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI (cfiCond72) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI (cfiCond72) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI (cfiCond72) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI (cfiCond72) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI (cfiCond72) CFA_SP SP+0
        CFI (cfiCond72) CFA_XSP16 add(XSP16, 10)
        CFI Block cfiCond73 Using cfiCommon0
        CFI (cfiCond73) NoFunction
        CFI (cfiCond73) Conditional ??CrossCallReturnLabel_42, ??CrossCallReturnLabel_20
        CFI (cfiCond73) R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
        CFI (cfiCond73) VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
        CFI (cfiCond73) V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
        CFI (cfiCond73) V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
        CFI (cfiCond73) V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
        CFI (cfiCond73) V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
        CFI (cfiCond73) V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI (cfiCond73) V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI (cfiCond73) V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI (cfiCond73) V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI (cfiCond73) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI (cfiCond73) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI (cfiCond73) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI (cfiCond73) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI (cfiCond73) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI (cfiCond73) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI (cfiCond73) CFA_SP SP+0
        CFI (cfiCond73) CFA_XSP16 add(XSP16, 52)
        CFI Block cfiCond74 Using cfiCommon0
        CFI (cfiCond74) NoFunction
        CFI (cfiCond74) Conditional ??CrossCallReturnLabel_42, ??CrossCallReturnLabel_21
        CFI (cfiCond74) R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
        CFI (cfiCond74) VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
        CFI (cfiCond74) V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
        CFI (cfiCond74) V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
        CFI (cfiCond74) V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
        CFI (cfiCond74) V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
        CFI (cfiCond74) V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI (cfiCond74) V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI (cfiCond74) V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI (cfiCond74) V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI (cfiCond74) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI (cfiCond74) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI (cfiCond74) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI (cfiCond74) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI (cfiCond74) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI (cfiCond74) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI (cfiCond74) CFA_SP SP+0
        CFI (cfiCond74) CFA_XSP16 add(XSP16, 52)
        CFI Block cfiCond75 Using cfiCommon0
        CFI (cfiCond75) NoFunction
        CFI (cfiCond75) Conditional ??CrossCallReturnLabel_42, ??CrossCallReturnLabel_22
        CFI (cfiCond75) R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
        CFI (cfiCond75) VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
        CFI (cfiCond75) V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
        CFI (cfiCond75) V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
        CFI (cfiCond75) V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
        CFI (cfiCond75) V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
        CFI (cfiCond75) V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI (cfiCond75) V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI (cfiCond75) V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI (cfiCond75) V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI (cfiCond75) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI (cfiCond75) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI (cfiCond75) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI (cfiCond75) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI (cfiCond75) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI (cfiCond75) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI (cfiCond75) CFA_SP SP+0
        CFI (cfiCond75) CFA_XSP16 add(XSP16, 52)
        CFI Block cfiCond76 Using cfiCommon0
        CFI (cfiCond76) NoFunction
        CFI (cfiCond76) Conditional ??CrossCallReturnLabel_42, ??CrossCallReturnLabel_24
        CFI (cfiCond76) R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI (cfiCond76) VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI (cfiCond76) V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI (cfiCond76) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI (cfiCond76) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI (cfiCond76) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI (cfiCond76) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI (cfiCond76) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI (cfiCond76) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI (cfiCond76) CFA_SP SP+0
        CFI (cfiCond76) CFA_XSP16 add(XSP16, 9)
        CFI Block cfiPicker77 Using cfiCommon1
        CFI (cfiPicker77) NoFunction
        CFI (cfiPicker77) Picker
        MOVX    A,@DPTR
        MOV     R2,A
        INC     DPTR
        MOVX    A,@DPTR
        MOV     R3,A
        RET
        CFI EndBlock cfiCond62
        CFI EndBlock cfiCond63
        CFI EndBlock cfiCond64
        CFI EndBlock cfiCond65
        CFI EndBlock cfiCond66
        CFI EndBlock cfiCond67
        CFI EndBlock cfiCond68
        CFI EndBlock cfiCond69
        CFI EndBlock cfiCond70
        CFI EndBlock cfiCond71
        CFI EndBlock cfiCond72
        CFI EndBlock cfiCond73
        CFI EndBlock cfiCond74
        CFI EndBlock cfiCond75
        CFI EndBlock cfiCond76
        CFI EndBlock cfiPicker77
//  663 
//  664 /*********************************************************************
//  665  * @fn      osal_msg_push
//  666  *
//  667  * @brief
//  668  *
//  669  *    This function pushes an OSAL message to the head of an OSAL
//  670  *    queue.
//  671  *
//  672  * @param   osal_msg_q_t *q_ptr - OSAL queue
//  673  * @param   void *msg_ptr  - OSAL message
//  674  *
//  675  * @return  none
//  676  */

        RSEG BANKED_CODE:CODE:NOROOT(0)
//  677 void osal_msg_push( osal_msg_q_t *q_ptr, void *msg_ptr )
osal_msg_push:
        CFI Block cfiBlock78 Using cfiCommon0
        CFI Function osal_msg_push
//  678 {
        MOV     A,#-0x9
        LCALL   ?BANKED_ENTER_XDATA
        CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 9)
        ; Saved register size: 9
        ; Auto size: 0
//  679   halIntState_t intState;
//  680 
//  681   // Hold off interrupts
//  682   HAL_ENTER_CRITICAL_SECTION(intState);
        MOV     C,0xa8.7
        CLR     A
        MOV     0xE0 /* A   */.0,C
        MOV     R6,A
        CLR     0xa8.7
//  683 
//  684   if ( *q_ptr == NULL )
        MOV     DPL,R2
        MOV     DPH,R3
        MOVX    A,@DPTR
        JNZ     ??osal_msg_push_0
        INC     DPTR
        MOVX    A,@DPTR
??osal_msg_push_0:
        JNZ     ??osal_msg_push_1
//  685   {
//  686     *q_ptr = msg_ptr;
??osal_msg_push_2:
        MOV     DPL,R2
        MOV     DPH,R3
        LJMP    ?Subroutine22 & 0xFFFF
//  687   }
//  688   else
//  689   {
//  690     // Push message to head of queue
//  691     OSAL_MSG_NEXT( msg_ptr ) = *q_ptr;
??osal_msg_push_1:
        MOV     DPL,R2
        MOV     DPH,R3
        LCALL   ?Subroutine3 & 0xFFFF
??CrossCallReturnLabel_10:
        LCALL   ?Subroutine12 & 0xFFFF
??CrossCallReturnLabel_49:
        MOV     A,R0
        MOVX    @DPTR,A
        INC     DPTR
        MOV     A,R1
        MOVX    @DPTR,A
        SJMP    ??osal_msg_push_2
        CFI EndBlock cfiBlock78
        REQUIRE _A_IEN0
//  692     *q_ptr = msg_ptr;
//  693   }
//  694 
//  695   // Re-enable interrupts
//  696   HAL_EXIT_CRITICAL_SECTION(intState);
//  697 }

        RSEG BANKED_CODE:CODE:NOROOT(0)
?Subroutine11:
        CFI Block cfiCond79 Using cfiCommon0
        CFI NoFunction
        CFI Conditional ??CrossCallReturnLabel_44
        CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 9)
        CFI Block cfiCond80 Using cfiCommon0
        CFI (cfiCond80) NoFunction
        CFI (cfiCond80) Conditional ??CrossCallReturnLabel_44
        CFI (cfiCond80) R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI (cfiCond80) VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI (cfiCond80) V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI (cfiCond80) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI (cfiCond80) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI (cfiCond80) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI (cfiCond80) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI (cfiCond80) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI (cfiCond80) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI (cfiCond80) CFA_SP SP+0
        CFI (cfiCond80) CFA_XSP16 add(XSP16, 9)
        CFI Block cfiPicker81 Using cfiCommon1
        CFI (cfiPicker81) NoFunction
        CFI (cfiPicker81) Picker
        MOV     A,R4
        MOVX    @DPTR,A
        INC     DPTR
        MOV     A,R5
        MOVX    @DPTR,A
        MOV     A,R6
        MOV     C,0xE0 /* A   */.0
        MOV     0xa8.7,C
        MOV     R7,#0x1
        RET
        CFI EndBlock cfiCond79
        CFI EndBlock cfiCond80
        CFI EndBlock cfiPicker81

        RSEG BANKED_CODE:CODE:NOROOT(0)
?Subroutine3:
        CFI Block cfiCond82 Using cfiCommon0
        CFI NoFunction
        CFI Conditional ??CrossCallReturnLabel_8
        CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 9)
        CFI Block cfiCond83 Using cfiCommon0
        CFI (cfiCond83) NoFunction
        CFI (cfiCond83) Conditional ??CrossCallReturnLabel_9
        CFI (cfiCond83) R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI (cfiCond83) VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI (cfiCond83) V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI (cfiCond83) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI (cfiCond83) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI (cfiCond83) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI (cfiCond83) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI (cfiCond83) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI (cfiCond83) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI (cfiCond83) CFA_SP SP+0
        CFI (cfiCond83) CFA_XSP16 add(XSP16, 9)
        CFI Block cfiCond84 Using cfiCommon0
        CFI (cfiCond84) NoFunction
        CFI (cfiCond84) Conditional ??CrossCallReturnLabel_10
        CFI (cfiCond84) R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI (cfiCond84) VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI (cfiCond84) V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI (cfiCond84) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI (cfiCond84) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI (cfiCond84) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI (cfiCond84) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI (cfiCond84) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI (cfiCond84) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI (cfiCond84) CFA_SP SP+0
        CFI (cfiCond84) CFA_XSP16 add(XSP16, 9)
        CFI Block cfiCond85 Using cfiCommon0
        CFI (cfiCond85) NoFunction
        CFI (cfiCond85) Conditional ??CrossCallReturnLabel_11
        CFI (cfiCond85) R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI (cfiCond85) VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI (cfiCond85) V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI (cfiCond85) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI (cfiCond85) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI (cfiCond85) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI (cfiCond85) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI (cfiCond85) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI (cfiCond85) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI (cfiCond85) CFA_SP SP+0
        CFI (cfiCond85) CFA_XSP16 add(XSP16, 9)
        CFI Block cfiCond86 Using cfiCommon0
        CFI (cfiCond86) NoFunction
        CFI (cfiCond86) Conditional ??CrossCallReturnLabel_12
        CFI (cfiCond86) R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI (cfiCond86) VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI (cfiCond86) V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI (cfiCond86) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI (cfiCond86) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI (cfiCond86) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI (cfiCond86) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI (cfiCond86) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI (cfiCond86) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI (cfiCond86) CFA_SP SP+0
        CFI (cfiCond86) CFA_XSP16 add(XSP16, 9)
        CFI Block cfiCond87 Using cfiCommon0
        CFI (cfiCond87) NoFunction
        CFI (cfiCond87) Conditional ??CrossCallReturnLabel_13
        CFI (cfiCond87) R6 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI (cfiCond87) VB load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI (cfiCond87) V0 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI (cfiCond87) V1 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI (cfiCond87) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI (cfiCond87) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI (cfiCond87) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI (cfiCond87) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI (cfiCond87) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI (cfiCond87) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI (cfiCond87) CFA_SP SP+0
        CFI (cfiCond87) CFA_XSP16 add(XSP16, 10)
        CFI Block cfiPicker88 Using cfiCommon1
        CFI (cfiPicker88) NoFunction
        CFI (cfiPicker88) Picker
        MOVX    A,@DPTR
        MOV     R0,A
        INC     DPTR
        MOVX    A,@DPTR
        MOV     R1,A
        RET
        CFI EndBlock cfiCond82
        CFI EndBlock cfiCond83
        CFI EndBlock cfiCond84
        CFI EndBlock cfiCond85
        CFI EndBlock cfiCond86
        CFI EndBlock cfiCond87
        CFI EndBlock cfiPicker88
//  698 
//  699 /*********************************************************************
//  700  * @fn      osal_msg_extract
//  701  *
//  702  * @brief
//  703  *
//  704  *    This function extracts and removes an OSAL message from the
//  705  *    middle of an OSAL queue.
//  706  *
//  707  * @param   osal_msg_q_t *q_ptr - OSAL queue
//  708  * @param   void *msg_ptr  - OSAL message to be extracted
//  709  * @param   void *prev_ptr  - OSAL message before msg_ptr in queue
//  710  *
//  711  * @return  none
//  712  */

        RSEG BANKED_CODE:CODE:NOROOT(0)
//  713 void osal_msg_extract( osal_msg_q_t *q_ptr, void *msg_ptr, void *prev_ptr )
osal_msg_extract:
        CFI Block cfiBlock89 Using cfiCommon0
        CFI Function osal_msg_extract
//  714 {
        MOV     A,#-0x9
        LCALL   ?BANKED_ENTER_XDATA
        CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 9)
        ; Saved register size: 9
        ; Auto size: 0
        MOV     A,#0x9
        LCALL   ?XSTACK_DISP0_8
        LCALL   ?Subroutine3 & 0xFFFF
//  715   halIntState_t intState;
//  716 
//  717   // Hold off interrupts
//  718   HAL_ENTER_CRITICAL_SECTION(intState);
??CrossCallReturnLabel_11:
        MOV     C,0xa8.7
        CLR     A
        MOV     0xE0 /* A   */.0,C
        MOV     ?V0 + 0,A
        CLR     0xa8.7
//  719 
//  720   if ( msg_ptr == *q_ptr )
        MOV     DPL,R2
        MOV     DPH,R3
        MOVX    A,@DPTR
        MOV     R6,A
        INC     DPTR
        MOVX    A,@DPTR
        MOV     R7,A
        MOV     A,R4
        XRL     A,R6
        JNZ     ??osal_msg_extract_0
        MOV     A,R5
        XRL     A,R7
??osal_msg_extract_0:
        JNZ     ??osal_msg_extract_1
//  721   {
//  722     // remove from first
//  723     *q_ptr = OSAL_MSG_NEXT( msg_ptr );
        LCALL   ?Subroutine12 & 0xFFFF
??CrossCallReturnLabel_50:
        LCALL   ?Subroutine3 & 0xFFFF
??CrossCallReturnLabel_12:
        MOV     DPL,R2
        MOV     DPH,R3
        MOV     A,R0
        MOVX    @DPTR,A
        INC     DPTR
        MOV     A,R1
        SJMP    ??osal_msg_extract_2
//  724   }
//  725   else
//  726   {
//  727     // remove from middle
//  728     OSAL_MSG_NEXT( prev_ptr ) = OSAL_MSG_NEXT( msg_ptr );
??osal_msg_extract_1:
        LCALL   ?Subroutine12 & 0xFFFF
??CrossCallReturnLabel_51:
        LCALL   ??Subroutine8_0 & 0xFFFF
??CrossCallReturnLabel_24:
        LCALL   ?Subroutine14 & 0xFFFF
??CrossCallReturnLabel_55:
        MOV     A,R2
        MOVX    @DPTR,A
        INC     DPTR
        MOV     A,R3
??osal_msg_extract_2:
        MOVX    @DPTR,A
//  729   }
//  730   OSAL_MSG_NEXT( msg_ptr ) = NULL;
        LCALL   ?Subroutine12 & 0xFFFF
??CrossCallReturnLabel_52:
        CLR     A
        MOVX    @DPTR,A
        INC     DPTR
        MOVX    @DPTR,A
//  731   OSAL_MSG_ID( msg_ptr ) = TASK_NO_TASK;
        MOV     A,R4
        ADD     A,#-0x1
        MOV     DPL,A
        MOV     A,R5
        LCALL   ?Subroutine15 & 0xFFFF
//  732 
//  733   // Re-enable interrupts
//  734   HAL_EXIT_CRITICAL_SECTION(intState);
//  735 }
??CrossCallReturnLabel_48:
        LJMP    ?Subroutine23 & 0xFFFF
        CFI EndBlock cfiBlock89
        REQUIRE _A_IEN0

        RSEG BANKED_CODE:CODE:NOROOT(0)
?Subroutine15:
        CFI Block cfiCond90 Using cfiCommon0
        CFI NoFunction
        CFI Conditional ??CrossCallReturnLabel_47
        CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 10)
        CFI Block cfiCond91 Using cfiCommon0
        CFI (cfiCond91) NoFunction
        CFI (cfiCond91) Conditional ??CrossCallReturnLabel_48
        CFI (cfiCond91) R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI (cfiCond91) VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI (cfiCond91) V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI (cfiCond91) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI (cfiCond91) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI (cfiCond91) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI (cfiCond91) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI (cfiCond91) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI (cfiCond91) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI (cfiCond91) CFA_SP SP+0
        CFI (cfiCond91) CFA_XSP16 add(XSP16, 9)
        CFI Block cfiPicker92 Using cfiCommon1
        CFI (cfiPicker92) NoFunction
        CFI (cfiPicker92) Picker
        ADDC    A,#-0x1
        MOV     DPH,A
        MOV     A,#-0x1
        MOVX    @DPTR,A
        MOV     A,?V0 + 0
        CFI EndBlock cfiCond90
        CFI EndBlock cfiCond91
        CFI EndBlock cfiPicker92
        REQUIRE ?Subroutine25
        ; // Fall through to label ?Subroutine25

        RSEG BANKED_CODE:CODE:NOROOT(0)
?Subroutine25:
        CFI Block cfiCond93 Using cfiCommon0
        CFI NoFunction
        CFI Conditional ??CrossCallReturnLabel_47
        CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 10)
        CFI Block cfiCond94 Using cfiCommon0
        CFI (cfiCond94) NoFunction
        CFI (cfiCond94) Conditional ??CrossCallReturnLabel_48
        CFI (cfiCond94) R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI (cfiCond94) VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI (cfiCond94) V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI (cfiCond94) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI (cfiCond94) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI (cfiCond94) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI (cfiCond94) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI (cfiCond94) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI (cfiCond94) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI (cfiCond94) CFA_SP SP+0
        CFI (cfiCond94) CFA_XSP16 add(XSP16, 9)
        CFI Block cfiCond95 Using cfiCommon0
        CFI (cfiCond95) NoFunction
        CFI (cfiCond95) Conditional ??CrossCallReturnLabel_45
        CFI (cfiCond95) DPL0 Frame(CFA_SP, 4)
        CFI (cfiCond95) DPH0 Frame(CFA_SP, 5)
        CFI (cfiCond95) CFA_SP SP+-5
        CFI Block cfiCond96 Using cfiCommon0
        CFI (cfiCond96) NoFunction
        CFI (cfiCond96) Conditional ??CrossCallReturnLabel_46
        CFI (cfiCond96) R6 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI (cfiCond96) VB load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI (cfiCond96) V0 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI (cfiCond96) V1 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI (cfiCond96) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI (cfiCond96) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI (cfiCond96) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI (cfiCond96) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI (cfiCond96) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI (cfiCond96) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI (cfiCond96) CFA_SP SP+0
        CFI (cfiCond96) CFA_XSP16 add(XSP16, 10)
        CFI Block cfiPicker97 Using cfiCommon1
        CFI (cfiPicker97) NoFunction
        CFI (cfiPicker97) Picker
        MOV     C,0xE0 /* A   */.0
        MOV     0xa8.7,C
        RET
        CFI EndBlock cfiCond93
        CFI EndBlock cfiCond94
        CFI EndBlock cfiCond95
        CFI EndBlock cfiCond96
        CFI EndBlock cfiPicker97

        RSEG BANKED_CODE:CODE:NOROOT(0)
?Subroutine14:
        CFI Block cfiCond98 Using cfiCommon0
        CFI NoFunction
        CFI Conditional ??CrossCallReturnLabel_53
        CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 9)
        CFI Block cfiCond99 Using cfiCommon0
        CFI (cfiCond99) NoFunction
        CFI (cfiCond99) Conditional ??CrossCallReturnLabel_54
        CFI (cfiCond99) R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI (cfiCond99) VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI (cfiCond99) V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI (cfiCond99) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI (cfiCond99) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI (cfiCond99) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI (cfiCond99) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI (cfiCond99) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI (cfiCond99) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI (cfiCond99) CFA_SP SP+0
        CFI (cfiCond99) CFA_XSP16 add(XSP16, 9)
        CFI Block cfiCond100 Using cfiCommon0
        CFI (cfiCond100) NoFunction
        CFI (cfiCond100) Conditional ??CrossCallReturnLabel_55
        CFI (cfiCond100) R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI (cfiCond100) VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI (cfiCond100) V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI (cfiCond100) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI (cfiCond100) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI (cfiCond100) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI (cfiCond100) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI (cfiCond100) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI (cfiCond100) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI (cfiCond100) CFA_SP SP+0
        CFI (cfiCond100) CFA_XSP16 add(XSP16, 9)
        CFI Block cfiCond101 Using cfiCommon0
        CFI (cfiCond101) NoFunction
        CFI (cfiCond101) Conditional ??CrossCallReturnLabel_56
        CFI (cfiCond101) R6 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI (cfiCond101) VB load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI (cfiCond101) V0 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI (cfiCond101) V1 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI (cfiCond101) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI (cfiCond101) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI (cfiCond101) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI (cfiCond101) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI (cfiCond101) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI (cfiCond101) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI (cfiCond101) CFA_SP SP+0
        CFI (cfiCond101) CFA_XSP16 add(XSP16, 10)
        CFI Block cfiCond102 Using cfiCommon0
        CFI (cfiCond102) NoFunction
        CFI (cfiCond102) Conditional ??CrossCallReturnLabel_57
        CFI (cfiCond102) R6 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI (cfiCond102) VB load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI (cfiCond102) V0 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI (cfiCond102) V1 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI (cfiCond102) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI (cfiCond102) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI (cfiCond102) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI (cfiCond102) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI (cfiCond102) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI (cfiCond102) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI (cfiCond102) CFA_SP SP+0
        CFI (cfiCond102) CFA_XSP16 add(XSP16, 10)
        CFI Block cfiPicker103 Using cfiCommon1
        CFI (cfiPicker103) NoFunction
        CFI (cfiPicker103) Picker
        MOV     A,R0
        ADD     A,#-0x5
        MOV     DPL,A
        MOV     A,R1
        CFI EndBlock cfiCond98
        CFI EndBlock cfiCond99
        CFI EndBlock cfiCond100
        CFI EndBlock cfiCond101
        CFI EndBlock cfiCond102
        CFI EndBlock cfiPicker103
        REQUIRE ?Subroutine26
        ; // Fall through to label ?Subroutine26

        RSEG BANKED_CODE:CODE:NOROOT(0)
?Subroutine26:
        CFI Block cfiCond104 Using cfiCommon0
        CFI NoFunction
        CFI Conditional ??CrossCallReturnLabel_53
        CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 9)
        CFI Block cfiCond105 Using cfiCommon0
        CFI (cfiCond105) NoFunction
        CFI (cfiCond105) Conditional ??CrossCallReturnLabel_54
        CFI (cfiCond105) R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI (cfiCond105) VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI (cfiCond105) V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI (cfiCond105) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI (cfiCond105) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI (cfiCond105) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI (cfiCond105) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI (cfiCond105) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI (cfiCond105) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI (cfiCond105) CFA_SP SP+0
        CFI (cfiCond105) CFA_XSP16 add(XSP16, 9)
        CFI Block cfiCond106 Using cfiCommon0
        CFI (cfiCond106) NoFunction
        CFI (cfiCond106) Conditional ??CrossCallReturnLabel_55
        CFI (cfiCond106) R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI (cfiCond106) VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI (cfiCond106) V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI (cfiCond106) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI (cfiCond106) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI (cfiCond106) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI (cfiCond106) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI (cfiCond106) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI (cfiCond106) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI (cfiCond106) CFA_SP SP+0
        CFI (cfiCond106) CFA_XSP16 add(XSP16, 9)
        CFI Block cfiCond107 Using cfiCommon0
        CFI (cfiCond107) NoFunction
        CFI (cfiCond107) Conditional ??CrossCallReturnLabel_56
        CFI (cfiCond107) R6 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI (cfiCond107) VB load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI (cfiCond107) V0 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI (cfiCond107) V1 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI (cfiCond107) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI (cfiCond107) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI (cfiCond107) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI (cfiCond107) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI (cfiCond107) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI (cfiCond107) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI (cfiCond107) CFA_SP SP+0
        CFI (cfiCond107) CFA_XSP16 add(XSP16, 10)
        CFI Block cfiCond108 Using cfiCommon0
        CFI (cfiCond108) NoFunction
        CFI (cfiCond108) Conditional ??CrossCallReturnLabel_57
        CFI (cfiCond108) R6 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI (cfiCond108) VB load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI (cfiCond108) V0 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI (cfiCond108) V1 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI (cfiCond108) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI (cfiCond108) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI (cfiCond108) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI (cfiCond108) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI (cfiCond108) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI (cfiCond108) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI (cfiCond108) CFA_SP SP+0
        CFI (cfiCond108) CFA_XSP16 add(XSP16, 10)
        CFI Block cfiCond109 Using cfiCommon0
        CFI (cfiCond109) NoFunction
        CFI (cfiCond109) Conditional ??CrossCallReturnLabel_49
        CFI (cfiCond109) R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI (cfiCond109) VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI (cfiCond109) V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI (cfiCond109) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI (cfiCond109) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI (cfiCond109) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI (cfiCond109) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI (cfiCond109) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI (cfiCond109) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI (cfiCond109) CFA_SP SP+0
        CFI (cfiCond109) CFA_XSP16 add(XSP16, 9)
        CFI Block cfiCond110 Using cfiCommon0
        CFI (cfiCond110) NoFunction
        CFI (cfiCond110) Conditional ??CrossCallReturnLabel_50
        CFI (cfiCond110) R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI (cfiCond110) VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI (cfiCond110) V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI (cfiCond110) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI (cfiCond110) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI (cfiCond110) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI (cfiCond110) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI (cfiCond110) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI (cfiCond110) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI (cfiCond110) CFA_SP SP+0
        CFI (cfiCond110) CFA_XSP16 add(XSP16, 9)
        CFI Block cfiCond111 Using cfiCommon0
        CFI (cfiCond111) NoFunction
        CFI (cfiCond111) Conditional ??CrossCallReturnLabel_51
        CFI (cfiCond111) R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI (cfiCond111) VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI (cfiCond111) V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI (cfiCond111) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI (cfiCond111) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI (cfiCond111) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI (cfiCond111) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI (cfiCond111) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI (cfiCond111) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI (cfiCond111) CFA_SP SP+0
        CFI (cfiCond111) CFA_XSP16 add(XSP16, 9)
        CFI Block cfiCond112 Using cfiCommon0
        CFI (cfiCond112) NoFunction
        CFI (cfiCond112) Conditional ??CrossCallReturnLabel_52
        CFI (cfiCond112) R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI (cfiCond112) VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI (cfiCond112) V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI (cfiCond112) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI (cfiCond112) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI (cfiCond112) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI (cfiCond112) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI (cfiCond112) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI (cfiCond112) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI (cfiCond112) CFA_SP SP+0
        CFI (cfiCond112) CFA_XSP16 add(XSP16, 9)
        CFI Block cfiPicker113 Using cfiCommon1
        CFI (cfiPicker113) NoFunction
        CFI (cfiPicker113) Picker
        ADDC    A,#-0x1
        MOV     DPH,A
        RET
        CFI EndBlock cfiCond104
        CFI EndBlock cfiCond105
        CFI EndBlock cfiCond106
        CFI EndBlock cfiCond107
        CFI EndBlock cfiCond108
        CFI EndBlock cfiCond109
        CFI EndBlock cfiCond110
        CFI EndBlock cfiCond111
        CFI EndBlock cfiCond112
        CFI EndBlock cfiPicker113

        RSEG BANKED_CODE:CODE:NOROOT(0)
?Subroutine12:
        CFI Block cfiCond114 Using cfiCommon0
        CFI NoFunction
        CFI Conditional ??CrossCallReturnLabel_49
        CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 9)
        CFI Block cfiCond115 Using cfiCommon0
        CFI (cfiCond115) NoFunction
        CFI (cfiCond115) Conditional ??CrossCallReturnLabel_50
        CFI (cfiCond115) R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI (cfiCond115) VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI (cfiCond115) V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI (cfiCond115) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI (cfiCond115) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI (cfiCond115) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI (cfiCond115) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI (cfiCond115) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI (cfiCond115) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI (cfiCond115) CFA_SP SP+0
        CFI (cfiCond115) CFA_XSP16 add(XSP16, 9)
        CFI Block cfiCond116 Using cfiCommon0
        CFI (cfiCond116) NoFunction
        CFI (cfiCond116) Conditional ??CrossCallReturnLabel_51
        CFI (cfiCond116) R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI (cfiCond116) VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI (cfiCond116) V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI (cfiCond116) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI (cfiCond116) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI (cfiCond116) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI (cfiCond116) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI (cfiCond116) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI (cfiCond116) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI (cfiCond116) CFA_SP SP+0
        CFI (cfiCond116) CFA_XSP16 add(XSP16, 9)
        CFI Block cfiCond117 Using cfiCommon0
        CFI (cfiCond117) NoFunction
        CFI (cfiCond117) Conditional ??CrossCallReturnLabel_52
        CFI (cfiCond117) R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI (cfiCond117) VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI (cfiCond117) V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI (cfiCond117) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI (cfiCond117) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI (cfiCond117) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI (cfiCond117) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI (cfiCond117) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI (cfiCond117) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI (cfiCond117) CFA_SP SP+0
        CFI (cfiCond117) CFA_XSP16 add(XSP16, 9)
        CFI Block cfiPicker118 Using cfiCommon1
        CFI (cfiPicker118) NoFunction
        CFI (cfiPicker118) Picker
        MOV     A,R4
        ADD     A,#-0x5
        MOV     DPL,A
        MOV     A,R5
        SJMP    ?Subroutine26
        CFI EndBlock cfiCond114
        CFI EndBlock cfiCond115
        CFI EndBlock cfiCond116
        CFI EndBlock cfiCond117
        CFI EndBlock cfiPicker118
//  736 
//  737 /*********************************************************************
//  738  * @fn      osal_msg_enqueue_max
//  739  *
//  740  * @brief
//  741  *
//  742  *    This function enqueues an OSAL message into an OSAL queue if
//  743  *    the length of the queue is less than max.
//  744  *
//  745  * @param   osal_msg_q_t *q_ptr - OSAL queue
//  746  * @param   void *msg_ptr  - OSAL message
//  747  * @param   byte max - maximum length of queue
//  748  *
//  749  * @return  TRUE if message was enqueued, FALSE otherwise
//  750  */

        RSEG BANKED_CODE:CODE:NOROOT(0)
//  751 byte osal_msg_enqueue_max( osal_msg_q_t *q_ptr, void *msg_ptr, byte max )
osal_msg_enqueue_max:
        CFI Block cfiBlock119 Using cfiCommon0
        CFI Function osal_msg_enqueue_max
//  752 {
        MOV     A,#-0xa
        LCALL   ?BANKED_ENTER_XDATA
        CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 10)
        ; Saved register size: 10
        ; Auto size: 0
        MOV     A,R1
        MOV     R6,A
//  753   void *list;
//  754   byte ret = FALSE;
        MOV     ?V0 + 0,#0x0
//  755   halIntState_t intState;
//  756 
//  757   // Hold off interrupts
//  758   HAL_ENTER_CRITICAL_SECTION(intState);
        MOV     C,0xa8.7
        CLR     A
        MOV     0xE0 /* A   */.0,C
        MOV     R7,A
        CLR     0xa8.7
//  759 
//  760   // If first message in queue
//  761   if ( *q_ptr == NULL )
        MOV     DPL,R2
        MOV     DPH,R3
        MOVX    A,@DPTR
        JNZ     ??osal_msg_enqueue_max_0
        INC     DPTR
        MOVX    A,@DPTR
??osal_msg_enqueue_max_0:
        MOV     DPL,R2
        MOV     DPH,R3
        JNZ     ??CrossCallReturnLabel_56
//  762   {
//  763     *q_ptr = msg_ptr;
        SJMP    ??CrossCallReturnLabel_57
//  764     ret = TRUE;
//  765   }
//  766   else
//  767   {
//  768     // Find end of queue or max
//  769     list = *q_ptr;
//  770     max--;
//  771     while ( (OSAL_MSG_NEXT( list ) != NULL) && (max > 0) )
//  772     {
//  773       list = OSAL_MSG_NEXT( list );
??osal_msg_enqueue_max_1:
        LCALL   ?Subroutine14 & 0xFFFF
??CrossCallReturnLabel_56:
        LCALL   ?Subroutine3 & 0xFFFF
//  774       max--;
??CrossCallReturnLabel_13:
        DEC     R6
//  775     }
        MOV     A,R0
        ADD     A,#-0x5
        MOV     DPL,A
        MOV     A,R1
        LCALL   ??Subroutine13_1 & 0xFFFF
??CrossCallReturnLabel_35:
        JNZ     ??osal_msg_enqueue_max_2
        INC     DPTR
        MOVX    A,@DPTR
??osal_msg_enqueue_max_2:
        JZ      ??osal_msg_enqueue_max_3
        MOV     A,R6
        JNZ     ??osal_msg_enqueue_max_1
//  776 
//  777     // Add message to end of queue if max not reached
//  778     if ( max != 0 )
??osal_msg_enqueue_max_3:
        MOV     A,R6
        JZ      ??osal_msg_enqueue_max_4
//  779     {
//  780       OSAL_MSG_NEXT( list ) = msg_ptr;
        LCALL   ?Subroutine14 & 0xFFFF
??CrossCallReturnLabel_57:
        MOV     A,R4
        MOVX    @DPTR,A
        INC     DPTR
        MOV     A,R5
        MOVX    @DPTR,A
//  781       ret = TRUE;
        MOV     ?V0 + 0,#0x1
//  782     }
//  783   }
//  784 
//  785   // Re-enable interrupts
//  786   HAL_EXIT_CRITICAL_SECTION(intState);
??osal_msg_enqueue_max_4:
        MOV     A,R7
        MOV     C,0xE0 /* A   */.0
        MOV     0xa8.7,C
//  787 
//  788   return ret;
        MOV     R1,?V0 + 0
        LJMP    ?Subroutine21 & 0xFFFF
        CFI EndBlock cfiBlock119
        REQUIRE _A_IEN0
//  789 }

        RSEG BANKED_CODE:CODE:NOROOT(0)
?Subroutine13:
        CFI Block cfiCond120 Using cfiCommon0
        CFI NoFunction
        CFI Conditional ??CrossCallReturnLabel_30
        CFI DPL0 Frame(CFA_SP, 4)
        CFI DPH0 Frame(CFA_SP, 5)
        CFI CFA_SP SP+-5
        CFI Block cfiCond121 Using cfiCommon0
        CFI (cfiCond121) NoFunction
        CFI (cfiCond121) Conditional ??CrossCallReturnLabel_32
        CFI (cfiCond121) R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI (cfiCond121) VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI (cfiCond121) V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI (cfiCond121) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI (cfiCond121) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI (cfiCond121) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI (cfiCond121) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI (cfiCond121) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI (cfiCond121) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI (cfiCond121) CFA_SP SP+0
        CFI (cfiCond121) CFA_XSP16 add(XSP16, 9)
        CFI Block cfiPicker122 Using cfiCommon1
        CFI (cfiPicker122) NoFunction
        CFI (cfiPicker122) Picker
        MOV     A,R2
        ADD     A,#-0x1
        CFI Block cfiCond123 Using cfiCommon0
        CFI (cfiCond123) NoFunction
        CFI (cfiCond123) Conditional ??CrossCallReturnLabel_31
        CFI (cfiCond123) R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI (cfiCond123) VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI (cfiCond123) V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI (cfiCond123) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI (cfiCond123) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI (cfiCond123) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI (cfiCond123) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI (cfiCond123) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI (cfiCond123) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI (cfiCond123) CFA_SP SP+0
        CFI (cfiCond123) CFA_XSP16 add(XSP16, 9)
??Subroutine13_0:
        MOV     DPL,A
        MOV     A,R3
        CFI Block cfiCond124 Using cfiCommon0
        CFI (cfiCond124) NoFunction
        CFI (cfiCond124) Conditional ??CrossCallReturnLabel_33
        CFI (cfiCond124) R6 load(1, XDATA, add(CFA_XSP16, literal(-12)))
        CFI (cfiCond124) VB load(1, XDATA, add(CFA_XSP16, literal(-11)))
        CFI (cfiCond124) V0 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI (cfiCond124) V1 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI (cfiCond124) V2 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI (cfiCond124) V3 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI (cfiCond124) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI (cfiCond124) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI (cfiCond124) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI (cfiCond124) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI (cfiCond124) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI (cfiCond124) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI (cfiCond124) CFA_SP SP+0
        CFI (cfiCond124) CFA_XSP16 add(XSP16, 12)
        CFI Block cfiCond125 Using cfiCommon0
        CFI (cfiCond125) NoFunction
        CFI (cfiCond125) Conditional ??CrossCallReturnLabel_34
        CFI (cfiCond125) R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI (cfiCond125) VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI (cfiCond125) V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI (cfiCond125) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI (cfiCond125) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI (cfiCond125) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI (cfiCond125) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI (cfiCond125) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI (cfiCond125) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI (cfiCond125) CFA_SP SP+0
        CFI (cfiCond125) CFA_XSP16 add(XSP16, 9)
        CFI Block cfiCond126 Using cfiCommon0
        CFI (cfiCond126) NoFunction
        CFI (cfiCond126) Conditional ??CrossCallReturnLabel_35
        CFI (cfiCond126) R6 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI (cfiCond126) VB load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI (cfiCond126) V0 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI (cfiCond126) V1 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI (cfiCond126) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI (cfiCond126) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI (cfiCond126) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI (cfiCond126) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI (cfiCond126) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI (cfiCond126) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI (cfiCond126) CFA_SP SP+0
        CFI (cfiCond126) CFA_XSP16 add(XSP16, 10)
??Subroutine13_1:
        ADDC    A,#-0x1
        MOV     DPH,A
        MOVX    A,@DPTR
        RET
        CFI EndBlock cfiCond120
        CFI EndBlock cfiCond121
        CFI EndBlock cfiPicker122
        CFI EndBlock cfiCond123
        CFI EndBlock cfiCond124
        CFI EndBlock cfiCond125
        CFI EndBlock cfiCond126
//  790 
//  791 /*********************************************************************
//  792  * @fn      osal_set_event
//  793  *
//  794  * @brief
//  795  *
//  796  *    This function is called to set the event flags for a task.  The
//  797  *    event passed in is OR'd into the task's event variable.
//  798  *
//  799  * @param   byte task_id - receiving tasks ID
//  800  * @param   byte event_flag - what event to set
//  801  *
//  802  * @return  ZSUCCESS, INVALID_TASK
//  803  */

        RSEG BANKED_CODE:CODE:NOROOT(0)
//  804 byte osal_set_event( byte task_id, UINT16 event_flag )
osal_set_event:
        CFI Block cfiBlock127 Using cfiCommon0
        CFI Function osal_set_event
//  805 {
        PUSH    DPL
        CFI DPL0 Frame(CFA_SP, 4)
        CFI CFA_SP SP+-4
        PUSH    DPH
        CFI DPH0 Frame(CFA_SP, 5)
        CFI CFA_SP SP+-5
        ; Saved register size: 2
        ; Auto size: 0
//  806   if ( task_id < tasksCnt )
        MOV     DPTR,#tasksCnt
        MOVX    A,@DPTR
        MOV     R4,A
        MOV     A,R1
        CLR     C
        SUBB    A,R4
        JNC     ??osal_set_event_0
//  807   {
//  808   halIntState_t   intState;
//  809     HAL_ENTER_CRITICAL_SECTION(intState);    // Hold off interrupts
        MOV     C,0xa8.7
        CLR     A
        MOV     0xE0 /* A   */.0,C
        MOV     R5,A
        CLR     0xa8.7
//  810     tasksEvents[task_id] |= event_flag;  // Stuff the event bit(s)
        MOV     A,R1
        CLR     C
        RLC     A
        MOV     R0,A
        CLR     A
        RLC     A
        MOV     R1,A
        MOV     DPTR,#tasksEvents
        MOVX    A,@DPTR
        ADD     A,R0
        MOV     R4,A
        INC     DPTR
        MOVX    A,@DPTR
        ADDC    A,R1
        LCALL   ?Subroutine4 & 0xFFFF
//  811     HAL_EXIT_CRITICAL_SECTION(intState);     // Release interrupts
//  812   }
//  813    else
//  814     return ( INVALID_TASK );
//  815 
//  816   return ( ZSUCCESS );
??CrossCallReturnLabel_45:
        MOV     R1,#0x0
        SJMP    ??osal_set_event_1
??osal_set_event_0:
        MOV     R1,#0x1
??osal_set_event_1:
        LJMP    ?Subroutine19 & 0xFFFF
        CFI EndBlock cfiBlock127
        REQUIRE _A_IEN0
//  817 }
//  818 
//  819 /*********************************************************************
//  820  * @fn      osal_isr_register
//  821  *
//  822  * @brief
//  823  *
//  824  *   This function is called to register a service routine with an
//  825  *   interrupt. When the interrupt occurs, this service routine is called.
//  826  *
//  827  * @param   byte interrupt_id - Interrupt number
//  828  * @param   void (*isr_ptr)( byte* ) - function pointer to ISR
//  829  *
//  830  * @return  ZSUCCESS, INVALID_INTERRUPT_ID, or INVALID_ISR_PTR
//  831  */

        RSEG BANKED_CODE:CODE:NOROOT(0)
//  832 byte osal_isr_register( byte interrupt_id, void (*isr_ptr)( byte* ) )
osal_isr_register:
        CFI Block cfiBlock128 Using cfiCommon0
        CFI Function osal_isr_register
//  833 {
        ; Saved register size: 0
        ; Auto size: 0
//  834   return ( ZSUCCESS );
        MOV     R1,#0x0
        LJMP    ?BRET
        CFI EndBlock cfiBlock128
//  835 }
//  836 
//  837 /*********************************************************************
//  838  * @fn      osal_int_enable
//  839  *
//  840  * @brief
//  841  *
//  842  *   This function is called to enable an interrupt. Once enabled,
//  843  *   occurrence of the interrupt causes the service routine associated
//  844  *   with that interrupt to be called.
//  845  *
//  846  *   If INTS_ALL is the interrupt_id, interrupts (in general) are enabled.
//  847  *   If a single interrupt is passed in, then interrupts still have
//  848  *   to be enabled with another call to INTS_ALL.
//  849  *
//  850  * @param   byte interrupt_id - Interrupt number
//  851  *
//  852  * @return  ZSUCCESS or INVALID_INTERRUPT_ID
//  853  */

        RSEG BANKED_CODE:CODE:NOROOT(0)
//  854 byte osal_int_enable( byte interrupt_id )
osal_int_enable:
        CFI Block cfiBlock129 Using cfiCommon0
        CFI Function osal_int_enable
//  855 {
        ; Saved register size: 0
        ; Auto size: 0
//  856 
//  857   if ( interrupt_id == INTS_ALL )
        MOV     A,#-0x1
        XRL     A,R1
        JNZ     ??osal_int_enable_0
//  858   {
//  859     HAL_ENABLE_INTERRUPTS();
        SETB    0xa8.7
//  860   }
//  861   else
//  862     return ( INVALID_INTERRUPT_ID );
//  863 
//  864   return ( ZSUCCESS );
        MOV     R1,#0x0
        SJMP    ??osal_int_enable_1
??osal_int_enable_0:
        MOV     R1,#0x9
??osal_int_enable_1:
        LJMP    ?BRET
        CFI EndBlock cfiBlock129
        REQUIRE _A_IEN0
//  865 }
//  866 
//  867 /*********************************************************************
//  868  * @fn      osal_int_disable
//  869  *
//  870  * @brief
//  871  *
//  872  *   This function is called to disable an interrupt. When a disabled
//  873  *   interrupt occurs, the service routine associated with that
//  874  *   interrupt is not called.
//  875  *
//  876  *   If INTS_ALL is the interrupt_id, interrupts (in general) are disabled.
//  877  *   If a single interrupt is passed in, then just that interrupt is disabled.
//  878  *
//  879  * @param   byte interrupt_id - Interrupt number
//  880  *
//  881  * @return  ZSUCCESS or INVALID_INTERRUPT_ID
//  882  */

        RSEG BANKED_CODE:CODE:NOROOT(0)
//  883 byte osal_int_disable( byte interrupt_id )
osal_int_disable:
        CFI Block cfiBlock130 Using cfiCommon0
        CFI Function osal_int_disable
//  884 {
        ; Saved register size: 0
        ; Auto size: 0
//  885 
//  886   if ( interrupt_id == INTS_ALL )
        MOV     A,#-0x1
        XRL     A,R1
        JNZ     ??osal_int_disable_0
//  887   {
//  888     HAL_DISABLE_INTERRUPTS();
        CLR     0xa8.7
//  889   }
//  890   else
//  891     return ( INVALID_INTERRUPT_ID );
//  892 
//  893   return ( ZSUCCESS );
        MOV     R1,#0x0
        SJMP    ??osal_int_disable_1
??osal_int_disable_0:
        MOV     R1,#0x9
??osal_int_disable_1:
        LJMP    ?BRET
        CFI EndBlock cfiBlock130
        REQUIRE _A_IEN0
//  894 }
//  895 
//  896 /*********************************************************************
//  897  * @fn      osal_init_system
//  898  *
//  899  * @brief
//  900  *
//  901  *   This function initializes the "task" system by creating the
//  902  *   tasks defined in the task table (OSAL_Tasks.h).
//  903  *
//  904  * @param   void
//  905  *
//  906  * @return  ZSUCCESS
//  907  */

        RSEG BANKED_CODE:CODE:NOROOT(0)
//  908 byte osal_init_system( void )
osal_init_system:
        CFI Block cfiBlock131 Using cfiCommon0
        CFI Function osal_init_system
//  909 {
        FUNCALL osal_init_system, osal_mem_init
        LOCFRAME ISTACK, 2, STACK
        LOCFRAME PSTACK, 0, STACK
        LOCFRAME XSTACK, 0, STACK
        LOCFRAME IOVERLAY, 0, STATIC
        LOCFRAME DOVERLAY, 0, STATIC
        ARGFRAME ISTACK, 2, STACK
        ARGFRAME PSTACK, 0, STACK
        ARGFRAME XSTACK, 0, STACK
        ARGFRAME IOVERLAY, 0, STATIC
        ARGFRAME DOVERLAY, 0, STATIC
        FUNCALL osal_init_system, osalTimerInit
        LOCFRAME ISTACK, 2, STACK
        LOCFRAME PSTACK, 0, STACK
        LOCFRAME XSTACK, 0, STACK
        LOCFRAME IOVERLAY, 0, STATIC
        LOCFRAME DOVERLAY, 0, STATIC
        ARGFRAME ISTACK, 2, STACK
        ARGFRAME PSTACK, 0, STACK
        ARGFRAME XSTACK, 0, STACK
        ARGFRAME IOVERLAY, 0, STATIC
        ARGFRAME DOVERLAY, 0, STATIC
        FUNCALL osal_init_system, osal_pwrmgr_init
        LOCFRAME ISTACK, 2, STACK
        LOCFRAME PSTACK, 0, STACK
        LOCFRAME XSTACK, 0, STACK
        LOCFRAME IOVERLAY, 0, STATIC
        LOCFRAME DOVERLAY, 0, STATIC
        ARGFRAME ISTACK, 2, STACK
        ARGFRAME PSTACK, 0, STACK
        ARGFRAME XSTACK, 0, STACK
        ARGFRAME IOVERLAY, 0, STATIC
        ARGFRAME DOVERLAY, 0, STATIC
        FUNCALL osal_init_system, osalInitTasks
        LOCFRAME ISTACK, 2, STACK
        LOCFRAME PSTACK, 0, STACK
        LOCFRAME XSTACK, 0, STACK
        LOCFRAME IOVERLAY, 0, STATIC
        LOCFRAME DOVERLAY, 0, STATIC
        ARGFRAME ISTACK, 2, STACK
        ARGFRAME PSTACK, 0, STACK
        ARGFRAME XSTACK, 0, STACK
        ARGFRAME IOVERLAY, 0, STATIC
        ARGFRAME DOVERLAY, 0, STATIC
        FUNCALL osal_init_system, osal_mem_kick
        LOCFRAME ISTACK, 2, STACK
        LOCFRAME PSTACK, 0, STACK
        LOCFRAME XSTACK, 0, STACK
        LOCFRAME IOVERLAY, 0, STATIC
        LOCFRAME DOVERLAY, 0, STATIC
        ARGFRAME ISTACK, 2, STACK
        ARGFRAME PSTACK, 0, STACK
        ARGFRAME XSTACK, 0, STACK
        ARGFRAME IOVERLAY, 0, STATIC
        ARGFRAME DOVERLAY, 0, STATIC
        PUSH    DPL
        CFI DPL0 Frame(CFA_SP, 4)
        CFI CFA_SP SP+-4
        PUSH    DPH
        CFI DPH0 Frame(CFA_SP, 5)
        CFI CFA_SP SP+-5
        ; Saved register size: 2
        ; Auto size: 0
//  910   // Initialize the Memory Allocation System
//  911   osal_mem_init();
        ; Setup parameters for call to function osal_mem_init
        LCALL   ??osal_mem_init?relay
//  912 
//  913   // Initialize the message queue
//  914   osal_qHead = NULL;
        MOV     DPTR,#osal_qHead
        CLR     A
        MOVX    @DPTR,A
        INC     DPTR
        MOVX    @DPTR,A
//  915 
//  916 #if defined( OSAL_TOTAL_MEM )
//  917   osal_msg_cnt = 0;
//  918 #endif
//  919 
//  920   // Initialize the timers
//  921   osalTimerInit();
        ; Setup parameters for call to function osalTimerInit
        LCALL   ??osalTimerInit?relay
//  922 
//  923   // Initialize the Power Management System
//  924   osal_pwrmgr_init();
        ; Setup parameters for call to function osal_pwrmgr_init
        LCALL   ??osal_pwrmgr_init?relay
//  925 
//  926   // Initialize the system tasks.
//  927   osalInitTasks();
        ; Setup parameters for call to function osalInitTasks
        LCALL   ??osalInitTasks?relay
//  928 
//  929   // Setup efficient search for the first free block of heap.
//  930   osal_mem_kick();
        ; Setup parameters for call to function osal_mem_kick
        LCALL   ??osal_mem_kick?relay
//  931 
//  932   return ( ZSUCCESS );
        MOV     R1,#0x0
        LJMP    ?Subroutine19 & 0xFFFF
        CFI EndBlock cfiBlock131
//  933 }
//  934 
//  935 /*********************************************************************
//  936  * @fn      osal_start_system
//  937  *
//  938  * @brief
//  939  *
//  940  *   This function is the main loop function of the task system.  It
//  941  *   will look through all task events and call the task_event_processor()
//  942  *   function for the task with the event.  If there are no events (for
//  943  *   all tasks), this function puts the processor into Sleep.
//  944  *   This Function doesn't return.
//  945  *
//  946  * @param   void
//  947  *
//  948  * @return  none
//  949  */

        RSEG BANKED_CODE:CODE:NOROOT(0)
//  950 void osal_start_system( void )
osal_start_system:
        CFI Block cfiBlock132 Using cfiCommon0
        CFI Function osal_start_system
//  951 {
        FUNCALL osal_start_system, Hal_ProcessPoll
        LOCFRAME ISTACK, 0, STACK
        LOCFRAME PSTACK, 0, STACK
        LOCFRAME XSTACK, 10, STACK
        LOCFRAME IOVERLAY, 0, STATIC
        LOCFRAME DOVERLAY, 0, STATIC
        ARGFRAME ISTACK, 0, STACK
        ARGFRAME PSTACK, 0, STACK
        ARGFRAME XSTACK, 10, STACK
        ARGFRAME IOVERLAY, 0, STATIC
        ARGFRAME DOVERLAY, 0, STATIC
        MOV     A,#-0xa
        LCALL   ?BANKED_ENTER_XDATA
        CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 10)
        ; Saved register size: 10
        ; Auto size: 0
//  952 #if !defined ( ZBIT )
//  953   for(;;)  // Forever Loop
//  954 #endif
//  955   {
//  956     uint8 idx = 0;
??osal_start_system_0:
        MOV     ?V0 + 0,#0x0
//  957 
//  958     Hal_ProcessPoll();  // This replaces MT_SerialPoll() and osal_check_timer().
        ; Setup parameters for call to function Hal_ProcessPoll
        LCALL   ??Hal_ProcessPoll?relay
//  959 
//  960     do {
//  961       if (tasksEvents[idx])  // Task is highest priority that is ready.
??osal_start_system_1:
        MOV     A,?V0 + 0
        CLR     C
        RLC     A
        MOV     R0,A
        CLR     A
        RLC     A
        MOV     R1,A
        MOV     DPTR,#tasksEvents
        MOVX    A,@DPTR
        ADD     A,R0
        MOV     R2,A
        INC     DPTR
        MOVX    A,@DPTR
        ADDC    A,R1
        MOV     DPL,R2
        MOV     DPH,A
        MOVX    A,@DPTR
        JNZ     ??osal_start_system_2
        INC     DPTR
        MOVX    A,@DPTR
??osal_start_system_2:
        JNZ     ??osal_start_system_3
//  962       {
//  963         break;
//  964       }
//  965     } while (++idx < tasksCnt);
        INC     ?V0 + 0
        MOV     DPTR,#tasksCnt
        MOVX    A,@DPTR
        MOV     R2,A
        MOV     A,?V0 + 0
        CLR     C
        SUBB    A,R2
        JC      ??osal_start_system_1
//  966 
//  967     if (idx < tasksCnt)
??osal_start_system_3:
        MOV     DPTR,#tasksCnt
        MOVX    A,@DPTR
        MOV     R2,A
        MOV     A,?V0 + 0
        CLR     C
        SUBB    A,R2
        JNC     ??osal_start_system_0
//  968     {
//  969       uint16 events;
//  970       halIntState_t intState;
//  971 
//  972       HAL_ENTER_CRITICAL_SECTION(intState);
        MOV     C,0xa8.7
        CLR     A
        MOV     0xE0 /* A   */.0,C
        MOV     R5,A
        CLR     0xa8.7
//  973       events = tasksEvents[idx];
        MOV     A,?V0 + 0
        CLR     C
        RLC     A
        MOV     R6,A
        CLR     A
        RLC     A
        MOV     R7,A
        MOV     DPTR,#tasksEvents
        MOVX    A,@DPTR
        ADD     A,R6
        MOV     R0,A
        INC     DPTR
        MOVX    A,@DPTR
        ADDC    A,R7
        MOV     R1,A
        LCALL   ?Subroutine8 & 0xFFFF
//  974       tasksEvents[idx] = 0;  // Clear the Events for this task.
??CrossCallReturnLabel_25:
        MOV     DPL,R0
        MOV     DPH,R1
        CLR     A
        MOVX    @DPTR,A
        INC     DPTR
        MOVX    @DPTR,A
//  975       HAL_EXIT_CRITICAL_SECTION(intState);
        MOV     A,R5
        MOV     C,0xE0 /* A   */.0
        MOV     0xa8.7,C
//  976 
//  977       events = (tasksArr[idx])( idx, events );
        ; Setup parameters for indirect call
        MOV     R1,?V0 + 0
        MOV     A,R6
        ADD     A,#(tasksArr & 0xff)
        MOV     DPL,A
        MOV     A,R7
        ADDC    A,#((tasksArr >> 8) & 0xff)
        MOV     DPH,A
        LCALL   ?Subroutine10 & 0xFFFF
??CrossCallReturnLabel_29:
        LCALL   ?CALL_IND
//  978 
//  979           HAL_ENTER_CRITICAL_SECTION(intState);
        MOV     C,0xa8.7
        CLR     A
        MOV     0xE0 /* A   */.0,C
        MOV     R5,A
        CLR     0xa8.7
//  980       tasksEvents[idx] |= events;  // Add back unprocessed events to the current task.
        MOV     DPTR,#tasksEvents
        MOVX    A,@DPTR
        ADD     A,R6
        MOV     R4,A
        INC     DPTR
        MOVX    A,@DPTR
        ADDC    A,R7
        LCALL   ?Subroutine4 & 0xFFFF
//  981           HAL_EXIT_CRITICAL_SECTION(intState);
??CrossCallReturnLabel_46:
        LJMP    ??osal_start_system_0 & 0xFFFF
        CFI EndBlock cfiBlock132
        REQUIRE _A_IEN0
//  982       }
//  983 #if defined( POWER_SAVING )
//  984     else  // Complete pass through all task events with no activity?
//  985     {
//  986       osal_pwrmgr_powerconserve();  // Put the processor/system into sleep
//  987     }
//  988 #endif
//  989     }
//  990 }

        RSEG BANKED_CODE:CODE:NOROOT(0)
?Subroutine10:
        CFI Block cfiCond133 Using cfiCommon0
        CFI NoFunction
        CFI Conditional ??CrossCallReturnLabel_28
        CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
        CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
        CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
        CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
        CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
        CFI V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 52)
        CFI Block cfiCond134 Using cfiCommon0
        CFI (cfiCond134) NoFunction
        CFI (cfiCond134) Conditional ??CrossCallReturnLabel_29
        CFI (cfiCond134) R6 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI (cfiCond134) VB load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI (cfiCond134) V0 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI (cfiCond134) V1 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI (cfiCond134) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI (cfiCond134) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI (cfiCond134) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI (cfiCond134) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI (cfiCond134) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI (cfiCond134) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI (cfiCond134) CFA_SP SP+0
        CFI (cfiCond134) CFA_XSP16 add(XSP16, 10)
        CFI Block cfiPicker135 Using cfiCommon1
        CFI (cfiPicker135) NoFunction
        CFI (cfiPicker135) Picker
        MOVX    A,@DPTR
        MOV     R0,A
        INC     DPTR
        MOVX    A,@DPTR
        MOV     DPH,A
        MOV     DPL,R0
        RET
        CFI EndBlock cfiCond133
        CFI EndBlock cfiCond134
        CFI EndBlock cfiPicker135

        RSEG BANKED_CODE:CODE:NOROOT(0)
?Subroutine4:
        CFI Block cfiCond136 Using cfiCommon0
        CFI NoFunction
        CFI Conditional ??CrossCallReturnLabel_45
        CFI DPL0 Frame(CFA_SP, 4)
        CFI DPH0 Frame(CFA_SP, 5)
        CFI CFA_SP SP+-5
        CFI Block cfiCond137 Using cfiCommon0
        CFI (cfiCond137) NoFunction
        CFI (cfiCond137) Conditional ??CrossCallReturnLabel_46
        CFI (cfiCond137) R6 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI (cfiCond137) VB load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI (cfiCond137) V0 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI (cfiCond137) V1 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI (cfiCond137) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI (cfiCond137) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI (cfiCond137) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI (cfiCond137) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI (cfiCond137) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI (cfiCond137) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI (cfiCond137) CFA_SP SP+0
        CFI (cfiCond137) CFA_XSP16 add(XSP16, 10)
        CFI Block cfiPicker138 Using cfiCommon1
        CFI (cfiPicker138) NoFunction
        CFI (cfiPicker138) Picker
        MOV     DPL,R4
        MOV     DPH,A
        MOVX    A,@DPTR
        ORL     A,R2
        MOVX    @DPTR,A
        INC     DPTR
        MOVX    A,@DPTR
        ORL     A,R3
        MOVX    @DPTR,A
        MOV     A,R5
        LJMP    ?Subroutine25 & 0xFFFF
        CFI EndBlock cfiCond136
        CFI EndBlock cfiCond137
        CFI EndBlock cfiPicker138

        RSEG XDATA_ID:CODE:NOROOT(0)
        DATA
`?<Initializer for <Constant "0">>`:
        DB "0"

        RSEG XDATA_ID:CODE:NOROOT(0)
        DATA
`?<Initializer for __Constant_2710>`:
        DD 10000

        RSEG XDATA_ID:CODE:NOROOT(0)
        DATA
`?<Initializer for __Constant_5f5e100>`:
        DD 100000000

        RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
??osal_strlen?relay:
        LCALL   ?BDISPATCH
        DATA
        DC24    osal_strlen

        RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
??osal_memcpy?relay:
        LCALL   ?BDISPATCH
        DATA
        DC24    osal_memcpy

        RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
??osal_cpyExtAddr?relay:
        LCALL   ?BDISPATCH
        DATA
        DC24    osal_cpyExtAddr

        RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
??osal_memset?relay:
        LCALL   ?BDISPATCH
        DATA
        DC24    osal_memset

        RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
??osal_build_uint16?relay:
        LCALL   ?BDISPATCH
        DATA
        DC24    osal_build_uint16

        RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
??osal_build_uint32?relay:
        LCALL   ?BDISPATCH
        DATA
        DC24    osal_build_uint32

        RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
??_ltoa?relay:
        LCALL   ?BDISPATCH
        DATA
        DC24    _ltoa

        RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
??osal_AddrEqual?relay:
        LCALL   ?BDISPATCH
        DATA
        DC24    osal_AddrEqual

        RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
??osal_ExtAddrEqual?relay:
        LCALL   ?BDISPATCH
        DATA
        DC24    osal_ExtAddrEqual

        RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
??osal_rand?relay:
        LCALL   ?BDISPATCH
        DATA
        DC24    osal_rand

        RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
??osal_msg_allocate?relay:
        LCALL   ?BDISPATCH
        DATA
        DC24    osal_msg_allocate

        RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
??osal_msg_deallocate?relay:
        LCALL   ?BDISPATCH
        DATA
        DC24    osal_msg_deallocate

        RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
??osal_msg_send?relay:
        LCALL   ?BDISPATCH
        DATA
        DC24    osal_msg_send

        RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
??osal_msg_receive?relay:
        LCALL   ?BDISPATCH
        DATA
        DC24    osal_msg_receive

        RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
??osal_msg_enqueue?relay:
        LCALL   ?BDISPATCH
        DATA
        DC24    osal_msg_enqueue

        RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
??osal_msg_dequeue?relay:
        LCALL   ?BDISPATCH
        DATA
        DC24    osal_msg_dequeue

        RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
??osal_msg_push?relay:
        LCALL   ?BDISPATCH
        DATA
        DC24    osal_msg_push

        RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
??osal_msg_extract?relay:
        LCALL   ?BDISPATCH
        DATA
        DC24    osal_msg_extract

        RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
??osal_msg_enqueue_max?relay:
        LCALL   ?BDISPATCH
        DATA
        DC24    osal_msg_enqueue_max

        RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
??osal_set_event?relay:
        LCALL   ?BDISPATCH
        DATA
        DC24    osal_set_event

        RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
??osal_isr_register?relay:
        LCALL   ?BDISPATCH
        DATA
        DC24    osal_isr_register

        RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
??osal_int_enable?relay:
        LCALL   ?BDISPATCH
        DATA
        DC24    osal_int_enable

        RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
??osal_int_disable?relay:
        LCALL   ?BDISPATCH
        DATA
        DC24    osal_int_disable

        RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
??osal_init_system?relay:
        LCALL   ?BDISPATCH
        DATA
        DC24    osal_init_system

        RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
??osal_start_system?relay:
        LCALL   ?BDISPATCH
        DATA
        DC24    osal_start_system

        RSEG XDATA_I:XDATA:NOROOT(0)
        DATA
`?<Constant "0">`:
        DS 2
        REQUIRE `?<Initializer for <Constant "0">>`
        REQUIRE __INIT_XDATA_I

        RSEG XDATA_I:XDATA:NOROOT(0)
        DATA
__Constant_2710:
        DS 4
        REQUIRE `?<Initializer for __Constant_2710>`
        REQUIRE __INIT_XDATA_I

        RSEG XDATA_I:XDATA:NOROOT(0)
        DATA
__Constant_5f5e100:
        DS 4
        REQUIRE `?<Initializer for __Constant_5f5e100>`
        REQUIRE __INIT_XDATA_I

        END
//  991 
//  992 /*********************************************************************
//  993 *********************************************************************/
// 
// 2 303 bytes in segment BANKED_CODE
//   150 bytes in segment BANK_RELAYS
//     1 byte  in segment SFR_AN
//    10 bytes in segment XDATA_I
//    10 bytes in segment XDATA_ID
//    32 bytes in segment XDATA_Z
// 
// 2 455 bytes of CODE  memory (+ 8 bytes shared)
//     0 bytes of DATA  memory (+ 1 byte  shared)
//    34 bytes of XDATA memory (+ 8 bytes shared)
//
//Errors: none
//Warnings: none
