Files
OldPeopleHome/zigbee/ZStack-CC2530-r200/Projects/SappWsn/RouterEB/List/OSAL.s51
LitterDryFish 6b0d1c0743 add node
2019-08-23 12:26:53 +08:00

7741 lines
322 KiB
Plaintext

///////////////////////////////////////////////////////////////////////////////
//
// IAR C/C++ Compiler V10.30.1.6000 for 8051 23/Aug/2019 12:13:07
// Copyright 2004-2018 IAR Systems AB.
// PC-locked license - IAR Embedded Workbench for 8051
//
// Core = plain
// Code model = banked
// Data model = large
// Calling convention = xdata reentrant
// Constant location = data_rom
// Dptr setup = 1,16
//
// Source file =
// E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Components\osal\common\OSAL.c
// Command line =
// -f C:\Users\VULCAN\AppData\Local\Temp\EWD6C0.tmp
// (E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Components\osal\common\OSAL.c
// -D ZIGBEEPRO -D ZTOOL_P1 -D MT_TASK -D MT_SYS_FUNC -D MT_ZDO_FUNC -D
// LCD_SUPPORTED=DEBUG -D SAPP_ZSTACK -lC
// E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\RouterEB\List
// -lA
// E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\RouterEB\List
// --diag_suppress Pe001,Pa010 -o
// E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\RouterEB\Obj
// -e --debug --core=plain --dptr=16,1 --data_model=large
// --code_model=banked --calling_convention=xdata_reentrant
// --place_constants=data_rom --nr_virtual_regs 8 -f
// E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\zstack\Tools\CC2530DB\f8wRouter.cfg
// (-DCPU32MHZ -DROOT=__near_func -DMAC_CFG_APP_PENDING_QUEUE=TRUE
// -DMAC_CFG_TX_DATA_MAX=5 -DMAC_CFG_TX_MAX=8 -DMAC_CFG_RX_MAX=5
// -DRTR_NWK) -f
// E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\zstack\Tools\CC2530DB\f8wConfig.cfg
// (-DZIGBEEPRO -DSECURE=0 -DZG_SECURE_DYNAMIC=0 -DREFLECTOR
// -DDEFAULT_CHANLIST=0x00800000 -DZDAPP_CONFIG_PAN_ID=0x0057
// -DNWK_START_DELAY=100 -DEXTENDED_JOINING_RANDOM_MASK=0x007F
// -DBEACON_REQUEST_DELAY=100 -DBEACON_REQ_DELAY_MASK=0x00FF
// -DLINK_STATUS_JITTER_MASK=0x007F -DROUTE_EXPIRY_TIME=30
// -DAPSC_ACK_WAIT_DURATION_POLLED=3000 -DNWK_INDIRECT_MSG_TIMEOUT=7
// -DMAX_RREQ_ENTRIES=8 -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=40 -DNWK_MAX_BINDING_ENTRIES=4
// -DMAX_BINDING_CLUSTER_IDS=4 "-DDEFAULT_KEY={0x01, 0x03, 0x05, 0x07,
// 0x09, 0x0B, 0x0D, 0x0F, 0x00, 0x02, 0x04, 0x06, 0x08, 0x0A, 0x0C,
// 0x0D}" -DMAC_MAX_FRAME_SIZE=116 -DZDNWKMGR_MIN_TRANSMISSIONS=20
// "-DCONST=const __code" -DGENERIC=__generic -DRFD_RCVC_ALWAYS_ON=FALSE
// -DPOLL_RATE=1000 -DQUEUED_POLL_RATE=100 -DRESPONSE_POLL_RATE=100
// -DREJOIN_POLL_RATE=440) -I
// E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\
// -I
// E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\Source\
// -I
// E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\zstack\ZMain\TI2530DB\
// -I
// E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\..\Components\hal\include\
// -I
// E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\..\Components\hal\target\CC2530EB\
// -I
// E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\..\Components\mac\include\
// -I
// E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\..\Components\mac\high_level\
// -I
// E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\..\Components\mac\low_level\srf04\
// -I
// E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\..\Components\mac\low_level\srf04\single_chip\
// -I
// E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\..\Components\mt\
// -I
// E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\..\Components\osal\include\
// -I
// E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\..\Components\services\saddr\
// -I
// E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\..\Components\services\sdata\
// -I
// E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\..\Components\stack\af\
// -I
// E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\..\Components\stack\nwk\
// -I
// E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\..\Components\stack\sapi\
// -I
// E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\..\Components\stack\sec\
// -I
// E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\..\Components\stack\sys\
// -I
// E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\..\Components\stack\zdo\
// -I
// E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\..\Components\zmac\
// -I
// E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\..\Components\zmac\f8w\
// -Ohz --require_prototypes --no_code_motion)
// Locale = Chinese (Simplified)_CHN.936
// List file =
// E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\RouterEB\List\OSAL.s51
//
///////////////////////////////////////////////////////////////////////////////
NAME OSAL
RTMODEL "__SystemLibrary", "CLib"
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 "__register_banks", "*"
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 ?V0
EXTERN ?V1
EXTERN ?V2
EXTERN ?V4
EXTERN ?V5
EXTERN ?V6
EXTERN ?V7
EXTERN ?V3
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 ?XSP
EXTERN ?XSTACK_DISP0_8
EXTERN ?XSTACK_DISP101_8
EXTERN ?XSTACK_DISP102_8
EXTERN __INIT_XDATA_I
EXTERN __INIT_XDATA_Z
PUBLIC `??_ltoa::?relay`
FUNCTION `??_ltoa::?relay`,0203H
PUBLIC `??osal_buffer_uint24::?relay`
FUNCTION `??osal_buffer_uint24::?relay`,0203H
PUBLIC `??osal_buffer_uint32::?relay`
FUNCTION `??osal_buffer_uint32::?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_clear_event::?relay`
FUNCTION `??osal_clear_event::?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_isbufset::?relay`
FUNCTION `??osal_isbufset::?relay`,0203H
PUBLIC `??osal_isr_register::?relay`
FUNCTION `??osal_isr_register::?relay`,0203H
PUBLIC `??osal_memcmp::?relay`
FUNCTION `??osal_memcmp::?relay`,0203H
PUBLIC `??osal_memcpy::?relay`
FUNCTION `??osal_memcpy::?relay`,0203H
PUBLIC `??osal_memdup::?relay`
FUNCTION `??osal_memdup::?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_find::?relay`
FUNCTION `??osal_msg_find::?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_revmemcpy::?relay`
FUNCTION `??osal_revmemcpy::?relay`,0203H
PUBLIC `??osal_run_system::?relay`
FUNCTION `??osal_run_system::?relay`,0203H
PUBLIC `??osal_self::?relay`
FUNCTION `??osal_self::?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,0a1203H
ARGFRAME XSTACK, 2, STACK
LOCFRAME ISTACK, 1, STACK
LOCFRAME XSTACK, 53, STACK
PUBLIC osal_buffer_uint24
FUNCTION osal_buffer_uint24,080203H
ARGFRAME XSTACK, 4, STACK
LOCFRAME ISTACK, 1, STACK
LOCFRAME XSTACK, 16, STACK
PUBLIC osal_buffer_uint32
FUNCTION osal_buffer_uint32,080203H
ARGFRAME XSTACK, 4, STACK
LOCFRAME ISTACK, 1, STACK
LOCFRAME XSTACK, 16, STACK
PUBLIC osal_build_uint16
FUNCTION osal_build_uint16,0203H
ARGFRAME XSTACK, 0, STACK
LOCFRAME ISTACK, 2, STACK
PUBLIC osal_build_uint32
FUNCTION osal_build_uint32,080203H
ARGFRAME XSTACK, 0, STACK
LOCFRAME XSTACK, 16, STACK
PUBLIC osal_clear_event
FUNCTION osal_clear_event,0203H
ARGFRAME XSTACK, 12, STACK
ARGFRAME IOVERLAY, 0, STATIC
ARGFRAME DOVERLAY, 0, STATIC
LOCFRAME XSTACK, 9, STACK
PUBLIC osal_init_system
FUNCTION osal_init_system,021203H
ARGFRAME XSTACK, 0, STACK
LOCFRAME XSTACK, 9, 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_isbufset
FUNCTION osal_isbufset,0203H
ARGFRAME XSTACK, 0, STACK
LOCFRAME XSTACK, 9, STACK
PUBLIC osal_isr_register
FUNCTION osal_isr_register,0203H
ARGFRAME XSTACK, 0, STACK
PUBLIC osal_memcmp
FUNCTION osal_memcmp,080203H
ARGFRAME XSTACK, 3, STACK
LOCFRAME XSTACK, 18, STACK
PUBLIC osal_memcpy
FUNCTION osal_memcpy,0203H
ARGFRAME XSTACK, 19, STACK
ARGFRAME IOVERLAY, 0, STATIC
ARGFRAME DOVERLAY, 0, STATIC
LOCFRAME ISTACK, 1, STACK
LOCFRAME XSTACK, 9, STACK
PUBLIC osal_memdup
FUNCTION osal_memdup,0a1203H
ARGFRAME XSTACK, 0, STACK
LOCFRAME XSTACK, 19, STACK
PUBLIC osal_memset
FUNCTION osal_memset,0a1203H
ARGFRAME XSTACK, 9, STACK
ARGFRAME IOVERLAY, 0, STATIC
ARGFRAME DOVERLAY, 0, STATIC
LOCFRAME XSTACK, 12, STACK
PUBLIC osal_msg_allocate
FUNCTION osal_msg_allocate,0a1203H
ARGFRAME XSTACK, 0, 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,080203H
ARGFRAME XSTACK, 0, 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,080203H
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 XSTACK, 9, STACK
PUBLIC osal_msg_find
FUNCTION osal_msg_find,0203H
ARGFRAME XSTACK, 0, STACK
LOCFRAME ISTACK, 2, 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,0a1203H
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_revmemcpy
FUNCTION osal_revmemcpy,0203H
ARGFRAME XSTACK, 3, STACK
LOCFRAME ISTACK, 1, STACK
LOCFRAME XSTACK, 9, STACK
PUBLIC osal_run_system
FUNCTION osal_run_system,0a1203H
ARGFRAME XSTACK, 0, STACK
ARGFRAME IOVERLAY, 0, STATIC
ARGFRAME DOVERLAY, 0, STATIC
LOCFRAME XSTACK, 10, STACK
PUBLIC osal_self
FUNCTION osal_self,0203H
ARGFRAME XSTACK, 0, STACK
LOCFRAME ISTACK, 2, STACK
PUBLIC osal_set_event
FUNCTION osal_set_event,0203H
ARGFRAME XSTACK, 12, STACK
ARGFRAME IOVERLAY, 0, STATIC
ARGFRAME DOVERLAY, 0, STATIC
LOCFRAME XSTACK, 9, STACK
PUBLIC osal_start_system
FUNCTION osal_start_system,021203H
ARGFRAME XSTACK, 0, STACK
LOCFRAME ISTACK, 2, STACK
PUBLIC osal_strlen
FUNCTION osal_strlen,021203H
ARGFRAME XSTACK, 0, STACK
LOCFRAME ISTACK, 2, STACK
PUBLIC tasksEvents
CFI Names cfiNames0
CFI StackFrame CFA_SP SP IDATA
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
Hal_ProcessPoll SYMBOL "Hal_ProcessPoll"
`??Hal_ProcessPoll::?relay` SYMBOL "?relay", Hal_ProcessPoll
Onboard_rand SYMBOL "Onboard_rand"
`??Onboard_rand::?relay` SYMBOL "?relay", Onboard_rand
_itoa SYMBOL "_itoa"
`??_itoa::?relay` SYMBOL "?relay", _itoa
memset SYMBOL "memset"
`??memset::?relay` SYMBOL "?relay", memset
osalInitTasks SYMBOL "osalInitTasks"
`??osalInitTasks::?relay` SYMBOL "?relay", osalInitTasks
osalTimeUpdate SYMBOL "osalTimeUpdate"
`??osalTimeUpdate::?relay` SYMBOL "?relay", osalTimeUpdate
osalTimerInit SYMBOL "osalTimerInit"
`??osalTimerInit::?relay` SYMBOL "?relay", osalTimerInit
osal_mem_alloc SYMBOL "osal_mem_alloc"
`??osal_mem_alloc::?relay` SYMBOL "?relay", osal_mem_alloc
osal_mem_free SYMBOL "osal_mem_free"
`??osal_mem_free::?relay` SYMBOL "?relay", osal_mem_free
osal_mem_init SYMBOL "osal_mem_init"
`??osal_mem_init::?relay` SYMBOL "?relay", osal_mem_init
osal_mem_kick SYMBOL "osal_mem_kick"
`??osal_mem_kick::?relay` SYMBOL "?relay", osal_mem_kick
osal_pwrmgr_init SYMBOL "osal_pwrmgr_init"
`??osal_pwrmgr_init::?relay` SYMBOL "?relay", osal_pwrmgr_init
strcat SYMBOL "strcat"
`??strcat::?relay` SYMBOL "?relay", strcat
strcpy SYMBOL "strcpy"
`??strcpy::?relay` SYMBOL "?relay", strcpy
strlen SYMBOL "strlen"
`??strlen::?relay` SYMBOL "?relay", strlen
_ltoa SYMBOL "_ltoa"
`??_ltoa::?relay` SYMBOL "?relay", _ltoa
osal_buffer_uint24 SYMBOL "osal_buffer_uint24"
`??osal_buffer_uint24::?relay` SYMBOL "?relay", osal_buffer_uint24
osal_buffer_uint32 SYMBOL "osal_buffer_uint32"
`??osal_buffer_uint32::?relay` SYMBOL "?relay", osal_buffer_uint32
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_clear_event SYMBOL "osal_clear_event"
`??osal_clear_event::?relay` SYMBOL "?relay", osal_clear_event
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_isbufset SYMBOL "osal_isbufset"
`??osal_isbufset::?relay` SYMBOL "?relay", osal_isbufset
osal_isr_register SYMBOL "osal_isr_register"
`??osal_isr_register::?relay` SYMBOL "?relay", osal_isr_register
osal_memcmp SYMBOL "osal_memcmp"
`??osal_memcmp::?relay` SYMBOL "?relay", osal_memcmp
osal_memcpy SYMBOL "osal_memcpy"
`??osal_memcpy::?relay` SYMBOL "?relay", osal_memcpy
osal_memdup SYMBOL "osal_memdup"
`??osal_memdup::?relay` SYMBOL "?relay", osal_memdup
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_find SYMBOL "osal_msg_find"
`??osal_msg_find::?relay` SYMBOL "?relay", osal_msg_find
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_revmemcpy SYMBOL "osal_revmemcpy"
`??osal_revmemcpy::?relay` SYMBOL "?relay", osal_revmemcpy
osal_run_system SYMBOL "osal_run_system"
`??osal_run_system::?relay` SYMBOL "?relay", osal_run_system
osal_self SYMBOL "osal_self"
`??osal_self::?relay` SYMBOL "?relay", osal_self
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 `??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 `??osalTimeUpdate::?relay`
FUNCTION `??osalTimeUpdate::?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 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 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 _itoa
FUNCTION _itoa,0202H
ARGFRAME ISTACK, 0, STACK
ARGFRAME PSTACK, 0, STACK
ARGFRAME XSTACK, 53, 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 osalInitTasks
FUNCTION osalInitTasks,0202H
ARGFRAME ISTACK, 0, STACK
ARGFRAME PSTACK, 0, STACK
ARGFRAME XSTACK, 9, STACK
ARGFRAME IOVERLAY, 0, STATIC
ARGFRAME DOVERLAY, 0, STATIC
EXTERN osalTimeUpdate
FUNCTION osalTimeUpdate,0202H
ARGFRAME ISTACK, 0, STACK
ARGFRAME PSTACK, 0, STACK
ARGFRAME XSTACK, 10, STACK
ARGFRAME IOVERLAY, 0, STATIC
ARGFRAME DOVERLAY, 0, STATIC
EXTERN osalTimerInit
FUNCTION osalTimerInit,0202H
ARGFRAME ISTACK, 0, STACK
ARGFRAME PSTACK, 0, STACK
ARGFRAME XSTACK, 9, 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, 16, 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, 0, STACK
ARGFRAME PSTACK, 0, STACK
ARGFRAME XSTACK, 9, STACK
ARGFRAME IOVERLAY, 0, STATIC
ARGFRAME DOVERLAY, 0, STATIC
EXTERN osal_mem_kick
FUNCTION osal_mem_kick,0202H
ARGFRAME ISTACK, 0, STACK
ARGFRAME PSTACK, 0, STACK
ARGFRAME XSTACK, 9, STACK
ARGFRAME IOVERLAY, 0, STATIC
ARGFRAME DOVERLAY, 0, STATIC
EXTERN osal_pwrmgr_init
FUNCTION osal_pwrmgr_init,0202H
ARGFRAME ISTACK, 0, STACK
ARGFRAME PSTACK, 0, STACK
ARGFRAME XSTACK, 9, STACK
ARGFRAME IOVERLAY, 0, STATIC
ARGFRAME DOVERLAY, 0, STATIC
EXTERN strcat
FUNCTION strcat,010202H
ARGFRAME ISTACK, 0, STACK
ARGFRAME PSTACK, 0, STACK
ARGFRAME XSTACK, 53, STACK
ARGFRAME IOVERLAY, 0, STATIC
ARGFRAME DOVERLAY, 0, STATIC
EXTERN strcpy
FUNCTION strcpy,010202H
ARGFRAME ISTACK, 0, STACK
ARGFRAME PSTACK, 0, STACK
ARGFRAME XSTACK, 53, STACK
ARGFRAME IOVERLAY, 0, STATIC
ARGFRAME DOVERLAY, 0, STATIC
EXTERN strlen
FUNCTION strlen,010202H
ARGFRAME ISTACK, 2, STACK
ARGFRAME PSTACK, 0, STACK
ARGFRAME XSTACK, 53, STACK
ARGFRAME IOVERLAY, 0, STATIC
ARGFRAME DOVERLAY, 0, STATIC
EXTERN tasksArr
EXTERN tasksCnt
// E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Components\osal\common\OSAL.c
// 1 /**************************************************************************************************
// 2 Filename: OSAL.c
// 3 Revised: $Date: 2011-05-27 09:03:48 -0700 (Fri, 27 May 2011) $
// 4 Revision: $Revision: 26134 $
// 5
// 6 Description: This API allows the software components in the Z-stack to be written
// 7 independently of the specifics of the operating system, kernel or tasking
// 8 environment (including control loops or connect-to-interrupt systems).
// 9
// 10
// 11 Copyright 2004-2011 Texas Instruments Incorporated. All rights reserved.
// 12
// 13 IMPORTANT: Your use of this Software is limited to those specific rights
// 14 granted under the terms of a software license agreement between the user
// 15 who downloaded the software, his/her employer (which must be your employer)
// 16 and Texas Instruments Incorporated (the "License"). You may not use this
// 17 Software unless you agree to abide by the terms of the License. The License
// 18 limits your use, and you acknowledge, that the Software may not be modified,
// 19 copied or distributed unless embedded on a Texas Instruments microcontroller
// 20 or used solely and exclusively in conjunction with a Texas Instruments radio
// 21 frequency transceiver, which is integrated into your product. Other than for
// 22 the foregoing purpose, you may not use, reproduce, copy, prepare derivative
// 23 works of, modify, distribute, perform, display or sell this Software and/or
// 24 its documentation for any purpose.
// 25
// 26 YOU FURTHER ACKNOWLEDGE AND AGREE THAT THE SOFTWARE AND DOCUMENTATION ARE
// 27 PROVIDED 揂S IS?WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED,
// 28 INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY, TITLE,
// 29 NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL
// 30 TEXAS INSTRUMENTS OR ITS LICENSORS BE LIABLE OR OBLIGATED UNDER CONTRACT,
// 31 NEGLIGENCE, STRICT LIABILITY, CONTRIBUTION, BREACH OF WARRANTY, OR OTHER
// 32 LEGAL EQUITABLE THEORY ANY DIRECT OR INDIRECT DAMAGES OR EXPENSES
// 33 INCLUDING BUT NOT LIMITED TO ANY INCIDENTAL, SPECIAL, INDIRECT, PUNITIVE
// 34 OR CONSEQUENTIAL DAMAGES, LOST PROFITS OR LOST DATA, COST OF PROCUREMENT
// 35 OF SUBSTITUTE GOODS, TECHNOLOGY, SERVICES, OR ANY CLAIMS BY THIRD PARTIES
// 36 (INCLUDING BUT NOT LIMITED TO ANY DEFENSE THEREOF), OR OTHER SIMILAR COSTS.
// 37
// 38 Should you have any questions regarding your right to use this Software,
// 39 contact Texas Instruments Incorporated at www.TI.com.
// 40 **************************************************************************************************/
// 41
// 42 /*********************************************************************
// 43 * INCLUDES
// 44 */
// 45
// 46 #include <string.h>
// 47
// 48 #include "comdef.h"
// 49 #include "OSAL.h"
// 50 #include "OSAL_Tasks.h"
// 51 #include "OSAL_Memory.h"
// 52 #include "OSAL_PwrMgr.h"
// 53 #include "OSAL_Clock.h"
// 54
// 55 #include "OnBoard.h"
ASEGN SFR_AN:DATA:NOROOT,0a8H
// union <unnamed> volatile __sfr _A_IEN0
_A_IEN0:
DATA8
DS 1
// 56
// 57 /* HAL */
// 58 #include "hal_drivers.h"
// 59
// 60 #ifdef IAR_ARMCM3_LM
// 61 #include "FreeRTOSConfig.h"
// 62 #include "osal_task.h"
// 63 #endif
// 64
// 65 /*********************************************************************
// 66 * MACROS
// 67 */
// 68
// 69 /*********************************************************************
// 70 * CONSTANTS
// 71 */
// 72
// 73 /*********************************************************************
// 74 * TYPEDEFS
// 75 */
// 76
// 77 /*********************************************************************
// 78 * GLOBAL VARIABLES
// 79 */
RSEG XDATA_Z:XDATA:NOROOT(0)
DATA16
// 80 uint16 *tasksEvents;
tasksEvents:
DS 2
REQUIRE __INIT_XDATA_Z
// 81
// 82 // Message Pool Definitions
RSEG XDATA_Z:XDATA:NOROOT(0)
DATA16
// 83 osal_msg_q_t osal_qHead;
osal_qHead:
DS 2
REQUIRE __INIT_XDATA_Z
// 84
// 85 /*********************************************************************
// 86 * EXTERNAL VARIABLES
// 87 */
// 88
// 89 /*********************************************************************
// 90 * EXTERNAL FUNCTIONS
// 91 */
// 92
// 93 /*********************************************************************
// 94 * LOCAL VARIABLES
// 95 */
// 96
// 97 // Index of active task
RSEG XDATA_I:XDATA:NOROOT(0)
// 98 static uint8 activeTaskID = TASK_NO_TASK;
activeTaskID:
DATA8
DS 1
REQUIRE `?<Initializer for activeTaskID>`
REQUIRE __INIT_XDATA_I
// 99
// 100 /*********************************************************************
// 101 * LOCAL FUNCTION PROTOTYPES
// 102 */
// 103
// 104 /*********************************************************************
// 105 * HELPER FUNCTIONS
// 106 */
// 107 /* very ugly stub so Keil can compile */
// 108 #ifdef __KEIL__
// 109 char * itoa ( int value, char * buffer, int radix )
// 110 {
// 111 return(buffer);
// 112 }
// 113 #endif
// 114
// 115 /*********************************************************************
// 116 * @fn osal_strlen
// 117 *
// 118 * @brief
// 119 *
// 120 * Calculates the length of a string. The string must be null
// 121 * terminated.
// 122 *
// 123 * @param char *pString - pointer to text string
// 124 *
// 125 * @return int - number of characters
// 126 */
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
// 127 int osal_strlen( char *pString )
osal_strlen:
CFI Block cfiBlock0 Using cfiCommon0
CFI Function osal_strlen
CODE
// 128 {
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
// 129 return (int)( strlen( pString ) );
; Setup parameters for call to function strlen
LCALL `??strlen::?relay`; Banked call to: strlen
LJMP ?Subroutine0 & 0xFFFF
// 130 }
CFI EndBlock cfiBlock0
// 131
// 132 /*********************************************************************
// 133 * @fn osal_memcpy
// 134 *
// 135 * @brief
// 136 *
// 137 * Generic memory copy.
// 138 *
// 139 * Note: This function differs from the standard memcpy(), since
// 140 * it returns the pointer to the next destination uint8. The
// 141 * standard memcpy() returns the original destination address.
// 142 *
// 143 * @param dst - destination address
// 144 * @param src - source address
// 145 * @param len - number of bytes to copy
// 146 *
// 147 * @return pointer to end of destination buffer
// 148 */
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
// 149 void *osal_memcpy( void *dst, const void GENERIC *src, unsigned int len )
osal_memcpy:
CFI Block cfiBlock1 Using cfiCommon0
CFI Function osal_memcpy
CODE
// 150 {
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,R2
MOV R6,A
MOV A,R3
MOV R7,A
// 151 uint8 *pDst;
// 152 const uint8 GENERIC *pSrc;
// 153
// 154 pSrc = src;
MOV A,#0x9
LCALL ?XSTACK_DISP0_8
LCALL ?Subroutine9 & 0xFFFF
// 155 pDst = dst;
??CrossCallReturnLabel_8:
MOV DPL,R6
MOV DPH,R7
SJMP ??osal_memcpy_0
// 156
// 157 while ( len-- )
// 158 *pDst++ = *pSrc++;
??osal_memcpy_1:
LCALL ?C_GPTR_LOAD
MOVX @DPTR,A
MOV A,R1
ADD A,#0x1
INC R1
CLR A
ADDC A,R2
MOV R2,A
INC DPTR
??osal_memcpy_0:
LCALL ?Subroutine19 & 0xFFFF
??CrossCallReturnLabel_23:
JNZ ??osal_memcpy_1
// 159
// 160 return ( pDst );
CFI EndBlock cfiBlock1
REQUIRE ?Subroutine4
; // Fall through to label ?Subroutine4
// 161 }
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
?Subroutine4:
CFI Block cfiBlock2 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 R2,DPL
MOV R3,DPH
LJMP ??Subroutine31_0 & 0xFFFF
CFI EndBlock cfiBlock2
// 162
// 163 /*********************************************************************
// 164 * @fn osal_revmemcpy
// 165 *
// 166 * @brief Generic reverse memory copy. Starts at the end of the
// 167 * source buffer, by taking the source address pointer and moving
// 168 * pointer ahead "len" bytes, then decrementing the pointer.
// 169 *
// 170 * Note: This function differs from the standard memcpy(), since
// 171 * it returns the pointer to the next destination uint8. The
// 172 * standard memcpy() returns the original destination address.
// 173 *
// 174 * @param dst - destination address
// 175 * @param src - source address
// 176 * @param len - number of bytes to copy
// 177 *
// 178 * @return pointer to end of destination buffer
// 179 */
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
// 180 void *osal_revmemcpy( void *dst, const void GENERIC *src, unsigned int len )
osal_revmemcpy:
CFI Block cfiBlock3 Using cfiCommon0
CFI Function osal_revmemcpy
CODE
// 181 {
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,R2
MOV R6,A
MOV A,R3
MOV R7,A
// 182 uint8 *pDst;
// 183 const uint8 GENERIC *pSrc;
// 184
// 185 pSrc = src;
// 186 pSrc += (len-1);
MOV A,#0x9
LCALL ?XSTACK_DISP0_8
LCALL ?Subroutine9 & 0xFFFF
??CrossCallReturnLabel_9:
MOV A,R1
ADD A,R4
MOV R1,A
MOV A,R2
ADDC A,R5
MOV R2,A
MOV A,R1
ADD A,#-0x1
DEC R1
MOV A,R2
ADDC A,#-0x1
MOV R2,A
// 187 pDst = dst;
MOV DPL,R6
MOV DPH,R7
SJMP ??osal_revmemcpy_0
// 188
// 189 while ( len-- )
// 190 *pDst++ = *pSrc--;
??osal_revmemcpy_1:
LCALL ?C_GPTR_LOAD
MOVX @DPTR,A
MOV A,R1
ADD A,#-0x1
DEC R1
MOV A,R2
ADDC A,#-0x1
MOV R2,A
INC DPTR
??osal_revmemcpy_0:
LCALL ?Subroutine19 & 0xFFFF
??CrossCallReturnLabel_24:
JNZ ??osal_revmemcpy_1
// 191
// 192 return ( pDst );
SJMP ?Subroutine4
// 193 }
CFI EndBlock cfiBlock3
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
?Subroutine19:
CFI Block cfiCond4 Using cfiCommon0
CFI Function osal_memcpy
CFI Conditional ??CrossCallReturnLabel_23
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+-2
CFI CFA_XSP16 add(XSP16, 9)
CFI Block cfiCond5 Using cfiCommon0
CFI (cfiCond5) Function osal_revmemcpy
CFI (cfiCond5) Conditional ??CrossCallReturnLabel_24
CFI (cfiCond5) R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond5) VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond5) V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond5) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond5) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond5) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond5) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond5) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond5) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond5) CFA_SP SP+-2
CFI (cfiCond5) CFA_XSP16 add(XSP16, 9)
CFI Block cfiPicker6 Using cfiCommon1
CFI (cfiPicker6) NoFunction
CFI (cfiPicker6) Picker
MOV A,R4
MOV R6,A
MOV A,R5
MOV R7,A
MOV A,R6
ADD A,#-0x1
DEC R4
MOV A,R7
ADDC A,#-0x1
MOV R5,A
MOV A,R6
ORL A,R7
RET
CFI EndBlock cfiCond4
CFI EndBlock cfiCond5
CFI EndBlock cfiPicker6
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
?Subroutine9:
CFI Block cfiCond7 Using cfiCommon0
CFI Function osal_memcpy
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+-2
CFI CFA_XSP16 add(XSP16, 9)
CFI Block cfiCond8 Using cfiCommon0
CFI (cfiCond8) Function osal_revmemcpy
CFI (cfiCond8) Conditional ??CrossCallReturnLabel_9
CFI (cfiCond8) R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond8) VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond8) V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond8) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond8) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond8) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond8) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond8) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond8) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond8) CFA_SP SP+-2
CFI (cfiCond8) CFA_XSP16 add(XSP16, 9)
CFI Block cfiCond9 Using cfiCommon0
CFI (cfiCond9) Function osal_memcmp
CFI (cfiCond9) Conditional ??CrossCallReturnLabel_10
CFI (cfiCond9) R6 load(1, XDATA, add(CFA_XSP16, literal(-15)))
CFI (cfiCond9) VB load(1, XDATA, add(CFA_XSP16, literal(-14)))
CFI (cfiCond9) V0 load(1, XDATA, add(CFA_XSP16, literal(-13)))
CFI (cfiCond9) V1 load(1, XDATA, add(CFA_XSP16, literal(-12)))
CFI (cfiCond9) V2 load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI (cfiCond9) V3 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond9) V4 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond9) V5 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond9) V6 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+-2
CFI (cfiCond9) CFA_XSP16 add(XSP16, 18)
CFI Block cfiPicker10 Using cfiCommon1
CFI (cfiPicker10) NoFunction
CFI (cfiPicker10) Picker
MOVX A,@DPTR
MOV R1,A
INC DPTR
LCALL ?Subroutine28 & 0xFFFF
??CrossCallReturnLabel_58:
RET
CFI EndBlock cfiCond7
CFI EndBlock cfiCond8
CFI EndBlock cfiCond9
CFI EndBlock cfiPicker10
// 194
// 195 /*********************************************************************
// 196 * @fn osal_memdup
// 197 *
// 198 * @brief Allocates a buffer [with osal_mem_alloc()] and copies
// 199 * the src buffer into the newly allocated space.
// 200 *
// 201 * @param src - source address
// 202 * @param len - number of bytes to copy
// 203 *
// 204 * @return pointer to the new allocated buffer, or NULL if
// 205 * allocation problem.
// 206 */
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
// 207 void *osal_memdup( const void GENERIC *src, unsigned int len )
osal_memdup:
CFI Block cfiBlock11 Using cfiCommon0
CFI Function osal_memdup
CODE
// 208 {
FUNCALL osal_memdup, osal_mem_alloc
LOCFRAME ISTACK, 0, STACK
LOCFRAME PSTACK, 0, STACK
LOCFRAME XSTACK, 16, STACK
LOCFRAME IOVERLAY, 0, STATIC
LOCFRAME DOVERLAY, 0, STATIC
ARGFRAME ISTACK, 0, STACK
ARGFRAME PSTACK, 0, STACK
ARGFRAME XSTACK, 16, STACK
ARGFRAME IOVERLAY, 0, STATIC
ARGFRAME DOVERLAY, 0, STATIC
FUNCALL osal_memdup, osal_memcpy
LOCFRAME ISTACK, 0, STACK
LOCFRAME PSTACK, 0, STACK
LOCFRAME XSTACK, 19, STACK
LOCFRAME IOVERLAY, 0, STATIC
LOCFRAME DOVERLAY, 0, STATIC
ARGFRAME ISTACK, 0, STACK
ARGFRAME PSTACK, 0, STACK
ARGFRAME XSTACK, 19, STACK
ARGFRAME IOVERLAY, 0, STATIC
ARGFRAME DOVERLAY, 0, STATIC
REQUIRE ?V0
REQUIRE ?V1
REQUIRE ?V2
REQUIRE ?V4
REQUIRE ?V5
REQUIRE ?V6
REQUIRE ?V7
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
MOV ?V0,R1
MOV ?V1,R2
MOV ?V2,R3
MOV A,R4
MOV R6,A
MOV A,R5
MOV R7,A
// 209 uint8 *pDst;
// 210
// 211 pDst = osal_mem_alloc( len );
; Setup parameters for call to function osal_mem_alloc
MOV A,R4
MOV R2,A
MOV A,R5
MOV R3,A
LCALL `??osal_mem_alloc::?relay`; Banked call to: osal_mem_alloc
MOV ?V6,R2
MOV ?V7,R3
// 212 if ( pDst )
MOV A,R2
ORL A,R3
JZ ??osal_memdup_0
// 213 {
// 214 VOID osal_memcpy( pDst, src, len );
; Setup parameters for call to function osal_memcpy
MOV R0,#?V0
LCALL ?PUSH_XSTACK_I_THREE
CFI CFA_XSP16 add(XSP16, 19)
MOV A,R6
MOV R4,A
MOV A,R7
MOV R5,A
LCALL `??osal_memcpy::?relay`; Banked call to: osal_memcpy
MOV A,#0x3
LCALL ?DEALLOC_XSTACK8
CFI CFA_XSP16 add(XSP16, 16)
// 215 }
// 216
// 217 return ( (void *)pDst );
??osal_memdup_0:
MOV R2,?V6
MOV R3,?V7
LJMP ?Subroutine2 & 0xFFFF
// 218 }
CFI EndBlock cfiBlock11
// 219
// 220 /*********************************************************************
// 221 * @fn osal_memcmp
// 222 *
// 223 * @brief
// 224 *
// 225 * Generic memory compare.
// 226 *
// 227 * @param src1 - source 1 addrexx
// 228 * @param src2 - source 2 address
// 229 * @param len - number of bytes to compare
// 230 *
// 231 * @return TRUE - same, FALSE - different
// 232 */
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
// 233 uint8 osal_memcmp( const void GENERIC *src1, const void GENERIC *src2, unsigned int len )
osal_memcmp:
CFI Block cfiBlock12 Using cfiCommon0
CFI Function osal_memcmp
CODE
// 234 {
REQUIRE ?V0
REQUIRE ?V1
REQUIRE ?V4
REQUIRE ?V5
REQUIRE ?V6
MOV A,#-0xf
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 V6 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI V5 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI V4 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-12)))
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-13)))
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-14)))
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-15)))
CFI CFA_SP SP+0
CFI CFA_XSP16 add(XSP16, 15)
; Saved register size: 15
; Auto size: 3
MOV A,#-0x3
LCALL ?ALLOC_XSTACK8
CFI CFA_XSP16 add(XSP16, 18)
MOV ?V0,R4
MOV ?V1,R5
// 235 const uint8 GENERIC *pSrc1;
// 236 const uint8 GENERIC *pSrc2;
// 237
// 238 pSrc1 = src1;
MOV ?V4,R1
MOV ?V5,R2
MOV ?V6,R3
// 239 pSrc2 = src2;
MOV A,#0x12
LCALL ?XSTACK_DISP0_8
MOVX A,@DPTR
MOV R4,A
INC DPTR
MOVX A,@DPTR
MOV R5,A
INC DPTR
MOVX A,@DPTR
MOV R6,A
// 240
// 241 while ( len-- )
??osal_memcmp_0:
MOV R0,?V0
MOV R1,?V1
MOV A,R0
ADD A,#-0x1
MOV ?V0,A
MOV A,R1
ADDC A,#-0x1
MOV ?V1,A
MOV A,R0
ORL A,R1
JZ ??osal_memcmp_1
// 242 {
// 243 if( *pSrc1++ != *pSrc2++ )
MOV R1,?V4
MOV R2,?V5
MOV R3,?V6
MOV A,R1
ADD A,#0x1
MOV ?V4,A
CLR A
ADDC A,R2
MOV ?V5,A
MOV DPL,?XSP + 0
MOV DPH,?XSP + 1
MOV A,R4
MOVX @DPTR,A
INC DPTR
MOV A,R5
MOVX @DPTR,A
INC DPTR
MOV A,R6
MOVX @DPTR,A
MOV DPL,?XSP + 0
MOV DPH,?XSP + 1
MOVX A,@DPTR
MOV R4,A
INC DPTR
MOVX A,@DPTR
MOV R5,A
MOV A,R4
ADD A,#0x1
INC R4
CLR A
ADDC A,R5
MOV R5,A
LCALL ?C_GPTR_LOAD
MOV R0,A
MOV DPL,?XSP + 0
MOV DPH,?XSP + 1
LCALL ?Subroutine9 & 0xFFFF
??CrossCallReturnLabel_10:
LCALL ?C_GPTR_LOAD
XRL A,R0
JZ ??osal_memcmp_0
// 244 return FALSE;
MOV R1,#0x0
SJMP ??osal_memcmp_2
// 245 }
// 246 return TRUE;
??osal_memcmp_1:
MOV R1,#0x1
??osal_memcmp_2:
MOV A,#0x3
LCALL ?DEALLOC_XSTACK8
CFI CFA_XSP16 add(XSP16, 15)
MOV R7,#0x7
LJMP ?BANKED_LEAVE_XDATA
// 247 }
CFI EndBlock cfiBlock12
// 248
// 249
// 250 /*********************************************************************
// 251 * @fn osal_memset
// 252 *
// 253 * @brief
// 254 *
// 255 * Set memory buffer to value.
// 256 *
// 257 * @param dest - pointer to buffer
// 258 * @param value - what to set each uint8 of the message
// 259 * @param size - how big
// 260 *
// 261 * @return pointer to destination buffer
// 262 */
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
// 263 void *osal_memset( void *dest, uint8 value, int len )
osal_memset:
CFI Block cfiBlock13 Using cfiCommon0
CFI Function osal_memset
CODE
// 264 {
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
REQUIRE ?V0
REQUIRE ?V1
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
// 265 return memset( dest, value, len );
; Setup parameters for call to function memset
MOV ?V0,R4
MOV ?V1,R5
MOV R0,#?V0
LCALL ?PUSH_XSTACK_I_TWO
CFI CFA_XSP16 add(XSP16, 12)
MOV A,R1
MOV R4,A
MOV R5,#0x0
LCALL `??memset::?relay`; Banked call to: memset
MOV A,#0x2
LCALL ?DEALLOC_XSTACK8
CFI CFA_XSP16 add(XSP16, 10)
LJMP ?Subroutine3 & 0xFFFF
// 266 }
CFI EndBlock cfiBlock13
// 267
// 268 /*********************************************************************
// 269 * @fn osal_build_uint16
// 270 *
// 271 * @brief
// 272 *
// 273 * Build a uint16 out of 2 bytes (0 then 1).
// 274 *
// 275 * @param swapped - 0 then 1
// 276 *
// 277 * @return uint16
// 278 */
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
// 279 uint16 osal_build_uint16( uint8 *swapped )
osal_build_uint16:
CFI Block cfiBlock14 Using cfiCommon0
CFI Function osal_build_uint16
CODE
// 280 {
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
// 281 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 R0,A
CLR A
XCH A,R0
MOV R1,A
MOV A,R4
ADD A,R0
MOV R2,A
CLR A
ADDC A,R1
MOV R3,A
LJMP ?Subroutine0 & 0xFFFF
// 282 }
CFI EndBlock cfiBlock14
// 283
// 284 /*********************************************************************
// 285 * @fn osal_build_uint32
// 286 *
// 287 * @brief
// 288 *
// 289 * Build a uint32 out of sequential bytes.
// 290 *
// 291 * @param swapped - sequential bytes
// 292 * @param len - number of bytes in the uint8 array
// 293 *
// 294 * @return uint32
// 295 */
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
// 296 uint32 osal_build_uint32( uint8 *swapped, uint8 len )
osal_build_uint32:
CFI Block cfiBlock15 Using cfiCommon0
CFI Function osal_build_uint32
CODE
// 297 {
REQUIRE ?V0
REQUIRE ?V1
REQUIRE ?V2
REQUIRE ?V3
REQUIRE ?V4
REQUIRE ?V5
REQUIRE ?V6
REQUIRE ?V7
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
MOV A,R1
MOV R6,A
// 298 if ( len == 2 )
MOV A,#0x2
XRL A,R6
JNZ ??osal_build_uint32_0
// 299 return ( BUILD_UINT32( swapped[0], swapped[1], 0L, 0L ) );
MOV DPL,R2
MOV DPH,R3
LCALL ?Subroutine7 & 0xFFFF
??CrossCallReturnLabel_3:
LJMP ??osal_build_uint32_1 & 0xFFFF
// 300 else if ( len == 3 )
??osal_build_uint32_0:
MOV A,#0x3
XRL A,R6
JNZ ??osal_build_uint32_2
// 301 return ( BUILD_UINT32( swapped[0], swapped[1], swapped[2], 0L ) );
MOV DPL,R2
MOV DPH,R3
LCALL ?Subroutine25 & 0xFFFF
??CrossCallReturnLabel_36:
INC DPTR
LCALL ?Subroutine26 & 0xFFFF
??CrossCallReturnLabel_38:
MOV A,#0x8
MOV R0,#?V0
LCALL ?L_SHL
MOV R0,#?V4
MOV R1,#?V0
LCALL ?L_ADD
MOV DPL,R2
MOV DPH,R3
INC DPTR
INC DPTR
MOVX A,@DPTR
MOV ?V0,A
CLR A
MOV ?V1,A
MOV A,#0x10
MOV R0,#?V0
LCALL ?L_SHL
MOV R0,#?V4
MOV R1,#?V0
LCALL ?L_ADD
MOV R2,?V4
MOV R3,?V5
MOV R4,?V6
MOV R5,?V7
SJMP ??osal_build_uint32_3
// 302 else if ( len == 4 )
??osal_build_uint32_2:
MOV A,#0x4
XRL A,R6
MOV DPL,R2
MOV DPH,R3
JNZ ??osal_build_uint32_4
// 303 return ( BUILD_UINT32( swapped[0], swapped[1], swapped[2], swapped[3] ) );
LCALL ?Subroutine7 & 0xFFFF
??CrossCallReturnLabel_4:
MOV R0,#?V4
LCALL ?L_SHL
MOV R0,#?V0
MOV R1,#?V4
LCALL ?L_ADD
MOV DPL,R2
MOV DPH,R3
INC DPTR
INC DPTR
MOVX A,@DPTR
MOV ?V4,A
CLR A
MOV ?V5,A
MOV A,#0x10
MOV R0,#?V4
LCALL ?L_SHL
MOV R0,#?V0
MOV R1,#?V4
LCALL ?L_ADD
MOV DPL,R2
MOV DPH,R3
INC DPTR
INC DPTR
INC DPTR
MOVX A,@DPTR
MOV ?V4,A
CLR A
MOV ?V6,A
MOV A,#0x18
??osal_build_uint32_1:
MOV R0,#?V4
LCALL ?L_SHL
MOV R0,#?V0
MOV R1,#?V4
LCALL ?L_ADD
MOV R2,?V0
MOV R3,?V1
MOV R4,?V2
MOV R5,?V3
SJMP ??osal_build_uint32_3
// 304 else
// 305 return ( (uint32)swapped[0] );
??osal_build_uint32_4:
MOVX A,@DPTR
MOV R2,A
CLR A
MOV R3,A
MOV R4,A
MOV R5,A
??osal_build_uint32_3:
LJMP ?Subroutine2 & 0xFFFF
// 306 }
CFI EndBlock cfiBlock15
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
?Subroutine7:
CFI Block cfiCond16 Using cfiCommon0
CFI Function osal_build_uint32
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+-2
CFI CFA_XSP16 add(XSP16, 16)
CFI Block cfiCond17 Using cfiCommon0
CFI (cfiCond17) Function osal_build_uint32
CFI (cfiCond17) Conditional ??CrossCallReturnLabel_4
CFI (cfiCond17) R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
CFI (cfiCond17) VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
CFI (cfiCond17) V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
CFI (cfiCond17) V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
CFI (cfiCond17) V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
CFI (cfiCond17) V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI (cfiCond17) V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond17) V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond17) V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond17) V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond17) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond17) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond17) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond17) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond17) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond17) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond17) CFA_SP SP+-2
CFI (cfiCond17) CFA_XSP16 add(XSP16, 16)
CFI Block cfiPicker18 Using cfiCommon1
CFI (cfiPicker18) NoFunction
CFI (cfiPicker18) Picker
LCALL ?Subroutine26 & 0xFFFF
??CrossCallReturnLabel_39:
INC DPTR
LCALL ?Subroutine25 & 0xFFFF
??CrossCallReturnLabel_37:
MOV A,#0x8
RET
CFI EndBlock cfiCond16
CFI EndBlock cfiCond17
CFI EndBlock cfiPicker18
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
?Subroutine26:
CFI Block cfiCond19 Using cfiCommon0
CFI Function osal_build_uint32
CFI Conditional ??CrossCallReturnLabel_38
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+-2
CFI CFA_XSP16 add(XSP16, 16)
CFI Block cfiCond20 Using cfiCommon0
CFI (cfiCond20) Function osal_build_uint32
CFI (cfiCond20) Conditional ??CrossCallReturnLabel_39, ??CrossCallReturnLabel_3
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+-4
CFI (cfiCond20) CFA_XSP16 add(XSP16, 16)
CFI Block cfiCond21 Using cfiCommon0
CFI (cfiCond21) Function osal_build_uint32
CFI (cfiCond21) Conditional ??CrossCallReturnLabel_39, ??CrossCallReturnLabel_4
CFI (cfiCond21) R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
CFI (cfiCond21) VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
CFI (cfiCond21) V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
CFI (cfiCond21) V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
CFI (cfiCond21) V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
CFI (cfiCond21) V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI (cfiCond21) V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond21) V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond21) V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond21) V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond21) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond21) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond21) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond21) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond21) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond21) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond21) CFA_SP SP+-4
CFI (cfiCond21) CFA_XSP16 add(XSP16, 16)
CFI Block cfiPicker22 Using cfiCommon1
CFI (cfiPicker22) NoFunction
CFI (cfiPicker22) Picker
MOVX A,@DPTR
MOV ?V0,A
CLR A
MOV ?V1,A
MOV ?V2,A
MOV ?V3,A
RET
CFI EndBlock cfiCond19
CFI EndBlock cfiCond20
CFI EndBlock cfiCond21
CFI EndBlock cfiPicker22
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
?Subroutine25:
CFI Block cfiCond23 Using cfiCommon0
CFI Function osal_build_uint32
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+-2
CFI CFA_XSP16 add(XSP16, 16)
CFI Block cfiCond24 Using cfiCommon0
CFI (cfiCond24) Function osal_build_uint32
CFI (cfiCond24) Conditional ??CrossCallReturnLabel_37, ??CrossCallReturnLabel_3
CFI (cfiCond24) R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
CFI (cfiCond24) VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
CFI (cfiCond24) V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
CFI (cfiCond24) V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
CFI (cfiCond24) V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
CFI (cfiCond24) V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI (cfiCond24) V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond24) V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond24) V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond24) V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond24) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond24) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond24) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond24) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond24) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond24) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond24) CFA_SP SP+-4
CFI (cfiCond24) CFA_XSP16 add(XSP16, 16)
CFI Block cfiCond25 Using cfiCommon0
CFI (cfiCond25) Function osal_build_uint32
CFI (cfiCond25) Conditional ??CrossCallReturnLabel_37, ??CrossCallReturnLabel_4
CFI (cfiCond25) R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
CFI (cfiCond25) VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
CFI (cfiCond25) V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
CFI (cfiCond25) V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
CFI (cfiCond25) V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
CFI (cfiCond25) V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI (cfiCond25) V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond25) V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond25) V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond25) V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond25) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond25) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond25) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond25) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond25) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond25) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond25) CFA_SP SP+-4
CFI (cfiCond25) CFA_XSP16 add(XSP16, 16)
CFI Block cfiPicker26 Using cfiCommon1
CFI (cfiPicker26) NoFunction
CFI (cfiPicker26) Picker
MOVX A,@DPTR
MOV ?V4,A
CLR A
MOV ?V5,A
MOV ?V6,A
MOV ?V7,A
RET
CFI EndBlock cfiCond23
CFI EndBlock cfiCond24
CFI EndBlock cfiCond25
CFI EndBlock cfiPicker26
// 307
// 308 #if !defined ( ZBIT ) && !defined ( ZBIT2 ) && !defined (UBIT)
// 309 /*********************************************************************
// 310 * @fn _ltoa
// 311 *
// 312 * @brief
// 313 *
// 314 * convert a long unsigned int to a string.
// 315 *
// 316 * @param l - long to convert
// 317 * @param buf - buffer to convert to
// 318 * @param radix - 10 dec, 16 hex
// 319 *
// 320 * @return pointer to buffer
// 321 */
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
// 322 unsigned char * _ltoa(unsigned long l, unsigned char *buf, unsigned char radix)
_ltoa:
CFI Block cfiBlock27 Using cfiCommon0
CFI Function _ltoa
CODE
// 323 {
FUNCALL _ltoa, _itoa
LOCFRAME ISTACK, 0, STACK
LOCFRAME PSTACK, 0, STACK
LOCFRAME XSTACK, 53, STACK
LOCFRAME IOVERLAY, 0, STATIC
LOCFRAME DOVERLAY, 0, STATIC
ARGFRAME ISTACK, 0, STACK
ARGFRAME PSTACK, 0, STACK
ARGFRAME XSTACK, 53, STACK
ARGFRAME IOVERLAY, 0, STATIC
ARGFRAME DOVERLAY, 0, STATIC
FUNCALL _ltoa, _itoa
LOCFRAME ISTACK, 0, STACK
LOCFRAME PSTACK, 0, STACK
LOCFRAME XSTACK, 53, STACK
LOCFRAME IOVERLAY, 0, STATIC
LOCFRAME DOVERLAY, 0, STATIC
ARGFRAME ISTACK, 0, STACK
ARGFRAME PSTACK, 0, STACK
ARGFRAME XSTACK, 53, STACK
ARGFRAME IOVERLAY, 0, STATIC
ARGFRAME DOVERLAY, 0, STATIC
FUNCALL _ltoa, _itoa
LOCFRAME ISTACK, 0, STACK
LOCFRAME PSTACK, 0, STACK
LOCFRAME XSTACK, 53, STACK
LOCFRAME IOVERLAY, 0, STATIC
LOCFRAME DOVERLAY, 0, STATIC
ARGFRAME ISTACK, 0, STACK
ARGFRAME PSTACK, 0, STACK
ARGFRAME XSTACK, 53, STACK
ARGFRAME IOVERLAY, 0, STATIC
ARGFRAME DOVERLAY, 0, STATIC
FUNCALL _ltoa, strcpy
LOCFRAME ISTACK, 0, STACK
LOCFRAME PSTACK, 0, STACK
LOCFRAME XSTACK, 53, STACK
LOCFRAME IOVERLAY, 0, STATIC
LOCFRAME DOVERLAY, 0, STATIC
ARGFRAME ISTACK, 0, STACK
ARGFRAME PSTACK, 0, STACK
ARGFRAME XSTACK, 53, STACK
ARGFRAME IOVERLAY, 0, STATIC
ARGFRAME DOVERLAY, 0, STATIC
FUNCALL _ltoa, strcat
LOCFRAME ISTACK, 0, STACK
LOCFRAME PSTACK, 0, STACK
LOCFRAME XSTACK, 53, STACK
LOCFRAME IOVERLAY, 0, STATIC
LOCFRAME DOVERLAY, 0, STATIC
ARGFRAME ISTACK, 0, STACK
ARGFRAME PSTACK, 0, STACK
ARGFRAME XSTACK, 53, STACK
ARGFRAME IOVERLAY, 0, STATIC
ARGFRAME DOVERLAY, 0, STATIC
FUNCALL _ltoa, strlen
LOCFRAME ISTACK, 0, STACK
LOCFRAME PSTACK, 0, STACK
LOCFRAME XSTACK, 53, STACK
LOCFRAME IOVERLAY, 0, STATIC
LOCFRAME DOVERLAY, 0, STATIC
ARGFRAME ISTACK, 0, STACK
ARGFRAME PSTACK, 0, STACK
ARGFRAME XSTACK, 53, STACK
ARGFRAME IOVERLAY, 0, STATIC
ARGFRAME DOVERLAY, 0, STATIC
FUNCALL _ltoa, strcat
LOCFRAME ISTACK, 0, STACK
LOCFRAME PSTACK, 0, STACK
LOCFRAME XSTACK, 53, STACK
LOCFRAME IOVERLAY, 0, STATIC
LOCFRAME DOVERLAY, 0, STATIC
ARGFRAME ISTACK, 0, STACK
ARGFRAME PSTACK, 0, STACK
ARGFRAME XSTACK, 53, STACK
ARGFRAME IOVERLAY, 0, STATIC
ARGFRAME DOVERLAY, 0, STATIC
FUNCALL _ltoa, strcat
LOCFRAME ISTACK, 0, STACK
LOCFRAME PSTACK, 0, STACK
LOCFRAME XSTACK, 53, STACK
LOCFRAME IOVERLAY, 0, STATIC
LOCFRAME DOVERLAY, 0, STATIC
ARGFRAME ISTACK, 0, STACK
ARGFRAME PSTACK, 0, STACK
ARGFRAME XSTACK, 53, STACK
ARGFRAME IOVERLAY, 0, STATIC
ARGFRAME DOVERLAY, 0, STATIC
FUNCALL _ltoa, strlen
LOCFRAME ISTACK, 0, STACK
LOCFRAME PSTACK, 0, STACK
LOCFRAME XSTACK, 53, STACK
LOCFRAME IOVERLAY, 0, STATIC
LOCFRAME DOVERLAY, 0, STATIC
ARGFRAME ISTACK, 0, STACK
ARGFRAME PSTACK, 0, STACK
ARGFRAME XSTACK, 53, STACK
ARGFRAME IOVERLAY, 0, STATIC
ARGFRAME DOVERLAY, 0, STATIC
FUNCALL _ltoa, strcat
LOCFRAME ISTACK, 0, STACK
LOCFRAME PSTACK, 0, STACK
LOCFRAME XSTACK, 53, STACK
LOCFRAME IOVERLAY, 0, STATIC
LOCFRAME DOVERLAY, 0, STATIC
ARGFRAME ISTACK, 0, STACK
ARGFRAME PSTACK, 0, STACK
ARGFRAME XSTACK, 53, STACK
ARGFRAME IOVERLAY, 0, STATIC
ARGFRAME DOVERLAY, 0, STATIC
FUNCALL _ltoa, _itoa
LOCFRAME ISTACK, 0, STACK
LOCFRAME PSTACK, 0, STACK
LOCFRAME XSTACK, 53, STACK
LOCFRAME IOVERLAY, 0, STATIC
LOCFRAME DOVERLAY, 0, STATIC
ARGFRAME ISTACK, 0, STACK
ARGFRAME PSTACK, 0, STACK
ARGFRAME XSTACK, 53, STACK
ARGFRAME IOVERLAY, 0, STATIC
ARGFRAME DOVERLAY, 0, STATIC
FUNCALL _ltoa, _itoa
LOCFRAME ISTACK, 0, STACK
LOCFRAME PSTACK, 0, STACK
LOCFRAME XSTACK, 53, STACK
LOCFRAME IOVERLAY, 0, STATIC
LOCFRAME DOVERLAY, 0, STATIC
ARGFRAME ISTACK, 0, STACK
ARGFRAME PSTACK, 0, STACK
ARGFRAME XSTACK, 53, STACK
ARGFRAME IOVERLAY, 0, STATIC
ARGFRAME DOVERLAY, 0, STATIC
FUNCALL _ltoa, strcpy
LOCFRAME ISTACK, 0, STACK
LOCFRAME PSTACK, 0, STACK
LOCFRAME XSTACK, 53, STACK
LOCFRAME IOVERLAY, 0, STATIC
LOCFRAME DOVERLAY, 0, STATIC
ARGFRAME ISTACK, 0, STACK
ARGFRAME PSTACK, 0, STACK
ARGFRAME XSTACK, 53, STACK
ARGFRAME IOVERLAY, 0, STATIC
ARGFRAME DOVERLAY, 0, STATIC
FUNCALL _ltoa, strcat
LOCFRAME ISTACK, 0, STACK
LOCFRAME PSTACK, 0, STACK
LOCFRAME XSTACK, 53, STACK
LOCFRAME IOVERLAY, 0, STATIC
LOCFRAME DOVERLAY, 0, STATIC
ARGFRAME ISTACK, 0, STACK
ARGFRAME PSTACK, 0, STACK
ARGFRAME XSTACK, 53, STACK
ARGFRAME IOVERLAY, 0, STATIC
ARGFRAME DOVERLAY, 0, STATIC
FUNCALL _ltoa, strlen
LOCFRAME ISTACK, 0, STACK
LOCFRAME PSTACK, 0, STACK
LOCFRAME XSTACK, 53, STACK
LOCFRAME IOVERLAY, 0, STATIC
LOCFRAME DOVERLAY, 0, STATIC
ARGFRAME ISTACK, 0, STACK
ARGFRAME PSTACK, 0, STACK
ARGFRAME XSTACK, 53, STACK
ARGFRAME IOVERLAY, 0, STATIC
ARGFRAME DOVERLAY, 0, STATIC
FUNCALL _ltoa, strcat
LOCFRAME ISTACK, 0, STACK
LOCFRAME PSTACK, 0, STACK
LOCFRAME XSTACK, 53, STACK
LOCFRAME IOVERLAY, 0, STATIC
LOCFRAME DOVERLAY, 0, STATIC
ARGFRAME ISTACK, 0, STACK
ARGFRAME PSTACK, 0, STACK
ARGFRAME XSTACK, 53, STACK
ARGFRAME IOVERLAY, 0, STATIC
ARGFRAME DOVERLAY, 0, STATIC
FUNCALL _ltoa, strcpy
LOCFRAME ISTACK, 0, STACK
LOCFRAME PSTACK, 0, STACK
LOCFRAME XSTACK, 53, STACK
LOCFRAME IOVERLAY, 0, STATIC
LOCFRAME DOVERLAY, 0, STATIC
ARGFRAME ISTACK, 0, STACK
ARGFRAME PSTACK, 0, STACK
ARGFRAME XSTACK, 53, STACK
ARGFRAME IOVERLAY, 0, STATIC
ARGFRAME DOVERLAY, 0, STATIC
REQUIRE ?V0
REQUIRE ?V1
REQUIRE ?V2
REQUIRE ?V3
REQUIRE ?V4
REQUIRE ?V5
REQUIRE ?V6
REQUIRE ?V7
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: 37
MOV A,#-0x25
LCALL ?ALLOC_XSTACK8
CFI CFA_XSP16 add(XSP16, 53)
MOV A,#0x3
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
MOV A,#0x2
LCALL ?XSTACK_DISP0_8
MOV A,R1
MOVX @DPTR,A
// 324 #if defined( __GNUC__ )
// 325 return ( (char*)ltoa( l, buf, radix ) );
// 326 #else
// 327 unsigned char tmp1[10] = "", tmp2[10] = "", tmp3[10] = "";
MOV DPTR,#`?<Constant "">`
MOV A,#0x7
LCALL ?XSTACK_DISP102_8
MOV A,#0xa
LCALL ?MOVE_LONG8_XDATA_XDATA
MOV DPTR,#`?<Constant "">_1`
MOV A,#0xa
LCALL ?MOVE_LONG8_XDATA_XDATA
MOV DPTR,#`?<Constant "">_2`
MOV A,#0xa
LCALL ?MOVE_LONG8_XDATA_XDATA
// 328 unsigned short num1, num2, num3;
// 329 unsigned char i;
// 330
// 331 buf[0] = '\0';
MOV A,#0x35
LCALL ?XSTACK_DISP0_8
LCALL ?Subroutine16 & 0xFFFF
??CrossCallReturnLabel_19:
CLR A
MOVX @DPTR,A
// 332
// 333 if ( radix == 10 )
MOV A,#0x2
LCALL ?XSTACK_DISP0_8
MOVX A,@DPTR
XRL A,#0xa
JZ $+5
LJMP ??_ltoa_0 & 0xFFFF
// 334 {
// 335 num1 = l % 10000;
MOV A,#0x3
LCALL ?XSTACK_DISP0_8
MOV R0,#?V4
LCALL ?L_MOV_X
MOV DPTR,#__Constant_2710
MOV R0,#?V0
LCALL ?L_MOV_X
MOV R0,#?V4
MOV R1,#?V0
LCALL ?UL_DIV_MOD
MOV DPL,?XSP + 0
MOV DPH,?XSP + 1
MOV A,?V0
MOVX @DPTR,A
INC DPTR
MOV A,?V1
MOVX @DPTR,A
// 336 num2 = (l / 10000) % 10000;
MOV A,#0x3
LCALL ?XSTACK_DISP0_8
MOV R0,#?V4
LCALL ?L_MOV_X
MOV DPTR,#__Constant_2710
MOV R0,#?V0
LCALL ?L_MOV_X
MOV R0,#?V4
MOV R1,#?V0
LCALL ?UL_DIV_MOD
MOV DPTR,#__Constant_2710
MOV R0,#?V0
LCALL ?L_MOV_X
MOV R0,#?V4
MOV R1,#?V0
LCALL ?UL_DIV_MOD
MOV R6,?V0
MOV R7,?V1
// 337 num3 = (unsigned short)(l / 100000000);
MOV A,#0x3
LCALL ?XSTACK_DISP0_8
MOV R0,#?V4
LCALL ?L_MOV_X
MOV DPTR,#__Constant_5f5e100
MOV R0,#?V0
LCALL ?L_MOV_X
MOV R0,#?V4
MOV R1,#?V0
LCALL ?UL_DIV_MOD
MOV ?V6,?V4
MOV ?V7,?V5
// 338
// 339 if (num3) _itoa(num3, tmp3, 10);
MOV A,?V6
ORL A,?V7
JZ ??_ltoa_1
; Setup parameters for call to function _itoa
MOV R1,#0xa
MOV A,#0x1b
LCALL ?XSTACK_DISP102_8
MOV R2,?V6
MOV R3,?V7
LCALL `??_itoa::?relay`; Banked call to: _itoa
// 340 if (num2) _itoa(num2, tmp2, 10);
??_ltoa_1:
MOV A,R6
ORL A,R7
JZ ??_ltoa_2
; Setup parameters for call to function _itoa
MOV R1,#0xa
MOV A,#0x11
LCALL ?XSTACK_DISP102_8
MOV A,R6
MOV R2,A
MOV A,R7
MOV R3,A
LCALL `??_itoa::?relay`; Banked call to: _itoa
// 341 if (num1) _itoa(num1, tmp1, 10);
??_ltoa_2:
LCALL ?Subroutine6 & 0xFFFF
??CrossCallReturnLabel_85:
JZ ??CrossCallReturnLabel_17
; Setup parameters for call to function _itoa
MOV R1,#0xa
MOV A,#0x7
LCALL ?XSTACK_DISP102_8
LCALL ?Subroutine14 & 0xFFFF
// 342
// 343 if (num3)
??CrossCallReturnLabel_17:
MOV A,?V6
ORL A,?V7
JZ ??_ltoa_3
// 344 {
// 345 strcpy((char*)buf, (char const*)tmp3);
; Setup parameters for call to function strcpy
MOV A,#0x1b
LCALL ?XSTACK_DISP102_8
MOV A,#0x35
LCALL ?XSTACK_DISP0_8
LCALL ?Subroutine12 & 0xFFFF
// 346 for (i = 0; i < 4 - strlen((char const*)tmp2); i++)
??CrossCallReturnLabel_13:
SJMP ??CrossCallReturnLabel_5
// 347 strcat((char*)buf, "0");
??_ltoa_4:
; Setup parameters for call to function strcat
MOV R4,#`?<Constant "0">` & 0xff
MOV R5,#(`?<Constant "0">` >> 8) & 0xff
MOV A,#0x35
LCALL ?XSTACK_DISP0_8
LCALL ?Subroutine8 & 0xFFFF
??CrossCallReturnLabel_5:
MOV A,?V2
MOV ?V0,A
; Setup parameters for call to function strlen
MOV A,#0x11
LCALL ?XSTACK_DISP101_8
LCALL ?Subroutine5 & 0xFFFF
// 348 }
??CrossCallReturnLabel_0:
JC ??_ltoa_4
// 349 strcat((char*)buf, (char const*)tmp2);
??_ltoa_3:
; Setup parameters for call to function strcat
MOV A,#0x11
LCALL ?XSTACK_DISP102_8
MOV A,#0x35
LCALL ?XSTACK_DISP0_8
LCALL ?Subroutine10 & 0xFFFF
// 350 if (num3 || num2)
??CrossCallReturnLabel_11:
JNZ ??_ltoa_5
MOV A,R6
ORL A,R7
JZ ??_ltoa_6
// 351 {
// 352 for (i = 0; i < 4 - strlen((char const*)tmp1); i++)
??_ltoa_5:
MOV ?V2,#0x0
SJMP ??CrossCallReturnLabel_6
// 353 strcat((char*)buf, "0");
??_ltoa_7:
; Setup parameters for call to function strcat
MOV R4,#`?<Constant "0">` & 0xff
MOV R5,#(`?<Constant "0">` >> 8) & 0xff
MOV A,#0x35
LCALL ?XSTACK_DISP0_8
LCALL ?Subroutine8 & 0xFFFF
??CrossCallReturnLabel_6:
MOV A,?V2
MOV ?V0,A
; Setup parameters for call to function strlen
MOV A,#0x7
LCALL ?XSTACK_DISP101_8
LCALL ?Subroutine5 & 0xFFFF
// 354 }
??CrossCallReturnLabel_1:
JC ??_ltoa_7
// 355 strcat((char*)buf, (char const*)tmp1);
??_ltoa_6:
; Setup parameters for call to function strcat
MOV A,#0x7
LCALL ?XSTACK_DISP102_8
MOV A,#0x35
LCALL ?XSTACK_DISP0_8
LCALL ?Subroutine10 & 0xFFFF
// 356 if (!num3 && !num2 && !num1)
// 357 strcpy((char*)buf, "0");
// 358 }
??CrossCallReturnLabel_12:
JNZ ??_ltoa_8
MOV A,R6
ORL A,R7
JNZ $+5
LJMP ??_ltoa_9 & 0xFFFF
// 359 else if ( radix == 16 )
// 360 {
// 361 num1 = l & 0x0000FFFF;
// 362 num2 = l >> 16;
// 363
// 364 if (num2) _itoa(num2, tmp2, 16);
// 365 if (num1) _itoa(num1, tmp1, 16);
// 366
// 367 if (num2)
// 368 {
// 369 strcpy((char*)buf,(char const*)tmp2);
// 370 for (i = 0; i < 4 - strlen((char const*)tmp1); i++)
// 371 strcat((char*)buf, "0");
// 372 }
// 373 strcat((char*)buf, (char const*)tmp1);
// 374 if (!num2 && !num1)
// 375 strcpy((char*)buf, "0");
// 376 }
// 377 else
// 378 return NULL;
// 379
// 380 return buf;
??_ltoa_8:
MOV A,#0x35
LCALL ?XSTACK_DISP0_8
LCALL ??Subroutine35_0 & 0xFFFF
??CrossCallReturnLabel_51:
MOV A,#0x25
LCALL ?DEALLOC_XSTACK8
CFI CFA_XSP16 add(XSP16, 16)
LJMP ?Subroutine2 & 0xFFFF
CFI CFA_XSP16 add(XSP16, 53)
??_ltoa_0:
MOVX A,@DPTR
XRL A,#0x10
JZ $+5
LJMP ??_ltoa_10 & 0xFFFF
MOV A,#0x3
LCALL ?XSTACK_DISP0_8
MOV R0,#?V0
LCALL ?L_MOV_X
MOV DPL,?XSP + 0
MOV DPH,?XSP + 1
MOV A,?V0
MOVX @DPTR,A
INC DPTR
MOV A,?V1
MOVX @DPTR,A
MOV A,#0x3
LCALL ?XSTACK_DISP0_8
MOV R0,#?V0
LCALL ?L_MOV_X
MOV A,#0x10
MOV R0,#?V0
LCALL ?UL_SHR
MOV R6,?V0
MOV R7,?V1
MOV A,R6
ORL A,R7
JZ ??_ltoa_11
; Setup parameters for call to function _itoa
MOV R1,#0x10
MOV A,#0x11
LCALL ?XSTACK_DISP102_8
MOV A,R6
MOV R2,A
MOV A,R7
MOV R3,A
LCALL `??_itoa::?relay`; Banked call to: _itoa
??_ltoa_11:
LCALL ?Subroutine6 & 0xFFFF
??CrossCallReturnLabel_86:
JZ ??CrossCallReturnLabel_18
; Setup parameters for call to function _itoa
MOV R1,#0x10
MOV A,#0x7
LCALL ?XSTACK_DISP102_8
LCALL ?Subroutine14 & 0xFFFF
??CrossCallReturnLabel_18:
MOV A,R6
ORL A,R7
JZ ??_ltoa_12
; Setup parameters for call to function strcpy
MOV A,#0x11
LCALL ?XSTACK_DISP102_8
MOV A,#0x35
LCALL ?XSTACK_DISP0_8
LCALL ?Subroutine12 & 0xFFFF
??CrossCallReturnLabel_14:
SJMP ??CrossCallReturnLabel_7
??_ltoa_13:
; Setup parameters for call to function strcat
MOV R4,#`?<Constant "0">` & 0xff
MOV R5,#(`?<Constant "0">` >> 8) & 0xff
MOV A,#0x35
LCALL ?XSTACK_DISP0_8
LCALL ?Subroutine8 & 0xFFFF
??CrossCallReturnLabel_7:
MOV A,?V2
MOV ?V0,A
; Setup parameters for call to function strlen
MOV A,#0x7
LCALL ?XSTACK_DISP101_8
LCALL ?Subroutine5 & 0xFFFF
??CrossCallReturnLabel_2:
JC ??_ltoa_13
??_ltoa_12:
; Setup parameters for call to function strcat
MOV A,#0x7
LCALL ?XSTACK_DISP102_8
MOV A,#0x35
LCALL ?XSTACK_DISP0_8
LCALL ??Subroutine35_0 & 0xFFFF
??CrossCallReturnLabel_52:
LCALL `??strcat::?relay`; Banked call to: strcat
MOV A,R6
ORL A,R7
JZ $+5
LJMP ??_ltoa_8 & 0xFFFF
??_ltoa_9:
LCALL ?Subroutine6 & 0xFFFF
??CrossCallReturnLabel_87:
JZ $+5
LJMP ??_ltoa_8 & 0xFFFF
; Setup parameters for call to function strcpy
MOV R4,#`?<Constant "0">` & 0xff
MOV R5,#(`?<Constant "0">` >> 8) & 0xff
MOV A,#0x35
LCALL ?XSTACK_DISP0_8
LCALL ??Subroutine35_0 & 0xFFFF
??CrossCallReturnLabel_53:
LCALL `??strcpy::?relay`; Banked call to: strcpy
LJMP ??_ltoa_8 & 0xFFFF
??_ltoa_10:
MOV R2,#0x0
MOV R3,#0x0
LJMP ??CrossCallReturnLabel_51 & 0xFFFF
// 381 #endif
// 382 }
CFI EndBlock cfiBlock27
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
?Subroutine14:
CFI Block cfiCond28 Using cfiCommon0
CFI Function _ltoa
CFI Conditional ??CrossCallReturnLabel_17
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+-2
CFI CFA_XSP16 add(XSP16, 53)
CFI Block cfiCond29 Using cfiCommon0
CFI (cfiCond29) Function _ltoa
CFI (cfiCond29) Conditional ??CrossCallReturnLabel_18
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+-2
CFI (cfiCond29) CFA_XSP16 add(XSP16, 53)
CFI Block cfiPicker30 Using cfiCommon1
CFI (cfiPicker30) NoFunction
CFI (cfiPicker30) Picker
MOV DPL,?XSP + 0
MOV DPH,?XSP + 1
LCALL ?Subroutine28 & 0xFFFF
??CrossCallReturnLabel_60:
LCALL `??_itoa::?relay`; Banked call to: _itoa
RET
CFI EndBlock cfiCond28
CFI EndBlock cfiCond29
CFI EndBlock cfiPicker30
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
?Subroutine12:
CFI Block cfiCond31 Using cfiCommon0
CFI Function _ltoa
CFI Conditional ??CrossCallReturnLabel_13
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+-2
CFI CFA_XSP16 add(XSP16, 53)
CFI Block cfiCond32 Using cfiCommon0
CFI (cfiCond32) Function _ltoa
CFI (cfiCond32) Conditional ??CrossCallReturnLabel_14
CFI (cfiCond32) R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
CFI (cfiCond32) VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
CFI (cfiCond32) V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
CFI (cfiCond32) V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
CFI (cfiCond32) V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
CFI (cfiCond32) V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI (cfiCond32) V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond32) V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond32) V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond32) V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond32) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond32) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond32) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond32) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond32) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond32) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond32) CFA_SP SP+-2
CFI (cfiCond32) CFA_XSP16 add(XSP16, 53)
CFI Block cfiPicker33 Using cfiCommon1
CFI (cfiPicker33) NoFunction
CFI (cfiPicker33) Picker
LCALL ?Subroutine28 & 0xFFFF
??CrossCallReturnLabel_59:
LCALL `??strcpy::?relay`; Banked call to: strcpy
MOV ?V2,#0x0
RET
CFI EndBlock cfiCond31
CFI EndBlock cfiCond32
CFI EndBlock cfiPicker33
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
?Subroutine10:
CFI Block cfiCond34 Using cfiCommon0
CFI Function _ltoa
CFI Conditional ??CrossCallReturnLabel_11
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+-2
CFI CFA_XSP16 add(XSP16, 53)
CFI Block cfiCond35 Using cfiCommon0
CFI (cfiCond35) Function _ltoa
CFI (cfiCond35) Conditional ??CrossCallReturnLabel_12
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+-2
CFI (cfiCond35) CFA_XSP16 add(XSP16, 53)
CFI Block cfiPicker36 Using cfiCommon1
CFI (cfiPicker36) NoFunction
CFI (cfiPicker36) Picker
LCALL ?Subroutine27 & 0xFFFF
??CrossCallReturnLabel_40:
MOV A,?V6
ORL A,?V7
RET
CFI EndBlock cfiCond34
CFI EndBlock cfiCond35
CFI EndBlock cfiPicker36
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
?Subroutine8:
CFI Block cfiCond37 Using cfiCommon0
CFI Function _ltoa
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+-2
CFI CFA_XSP16 add(XSP16, 53)
CFI Block cfiCond38 Using cfiCommon0
CFI (cfiCond38) Function _ltoa
CFI (cfiCond38) Conditional ??CrossCallReturnLabel_6
CFI (cfiCond38) R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
CFI (cfiCond38) VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
CFI (cfiCond38) V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
CFI (cfiCond38) V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
CFI (cfiCond38) V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
CFI (cfiCond38) V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI (cfiCond38) V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond38) V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond38) V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond38) V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond38) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond38) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond38) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond38) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond38) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond38) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond38) CFA_SP SP+-2
CFI (cfiCond38) CFA_XSP16 add(XSP16, 53)
CFI Block cfiCond39 Using cfiCommon0
CFI (cfiCond39) Function _ltoa
CFI (cfiCond39) Conditional ??CrossCallReturnLabel_7
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+-2
CFI (cfiCond39) CFA_XSP16 add(XSP16, 53)
CFI Block cfiPicker40 Using cfiCommon1
CFI (cfiPicker40) NoFunction
CFI (cfiPicker40) Picker
LCALL ?Subroutine27 & 0xFFFF
??CrossCallReturnLabel_41:
INC ?V2
RET
CFI EndBlock cfiCond37
CFI EndBlock cfiCond38
CFI EndBlock cfiCond39
CFI EndBlock cfiPicker40
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
?Subroutine27:
CFI Block cfiCond41 Using cfiCommon0
CFI Function _ltoa
CFI Conditional ??CrossCallReturnLabel_40, ??CrossCallReturnLabel_11
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+-4
CFI CFA_XSP16 add(XSP16, 53)
CFI Block cfiCond42 Using cfiCommon0
CFI (cfiCond42) Function _ltoa
CFI (cfiCond42) Conditional ??CrossCallReturnLabel_40, ??CrossCallReturnLabel_12
CFI (cfiCond42) R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
CFI (cfiCond42) VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
CFI (cfiCond42) V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
CFI (cfiCond42) V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
CFI (cfiCond42) V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
CFI (cfiCond42) V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI (cfiCond42) V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond42) V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond42) V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond42) V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond42) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond42) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond42) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond42) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond42) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond42) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond42) CFA_SP SP+-4
CFI (cfiCond42) CFA_XSP16 add(XSP16, 53)
CFI Block cfiCond43 Using cfiCommon0
CFI (cfiCond43) Function _ltoa
CFI (cfiCond43) Conditional ??CrossCallReturnLabel_41, ??CrossCallReturnLabel_5
CFI (cfiCond43) R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
CFI (cfiCond43) VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
CFI (cfiCond43) V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
CFI (cfiCond43) V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
CFI (cfiCond43) V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
CFI (cfiCond43) V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI (cfiCond43) V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond43) V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond43) V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond43) V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond43) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond43) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond43) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond43) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond43) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond43) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond43) CFA_SP SP+-4
CFI (cfiCond43) CFA_XSP16 add(XSP16, 53)
CFI Block cfiCond44 Using cfiCommon0
CFI (cfiCond44) Function _ltoa
CFI (cfiCond44) Conditional ??CrossCallReturnLabel_41, ??CrossCallReturnLabel_6
CFI (cfiCond44) R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
CFI (cfiCond44) VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
CFI (cfiCond44) V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
CFI (cfiCond44) V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
CFI (cfiCond44) V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
CFI (cfiCond44) V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI (cfiCond44) V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond44) V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond44) V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond44) V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond44) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond44) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond44) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond44) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond44) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond44) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond44) CFA_SP SP+-4
CFI (cfiCond44) CFA_XSP16 add(XSP16, 53)
CFI Block cfiCond45 Using cfiCommon0
CFI (cfiCond45) Function _ltoa
CFI (cfiCond45) Conditional ??CrossCallReturnLabel_41, ??CrossCallReturnLabel_7
CFI (cfiCond45) R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
CFI (cfiCond45) VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
CFI (cfiCond45) V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
CFI (cfiCond45) V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
CFI (cfiCond45) V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
CFI (cfiCond45) V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI (cfiCond45) V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond45) V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond45) V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond45) V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond45) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond45) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond45) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond45) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond45) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond45) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond45) CFA_SP SP+-4
CFI (cfiCond45) CFA_XSP16 add(XSP16, 53)
CFI Block cfiPicker46 Using cfiCommon1
CFI (cfiPicker46) NoFunction
CFI (cfiPicker46) Picker
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
MOV R3,A
LCALL `??strcat::?relay`; Banked call to: strcat
RET
CFI EndBlock cfiCond41
CFI EndBlock cfiCond42
CFI EndBlock cfiCond43
CFI EndBlock cfiCond44
CFI EndBlock cfiCond45
CFI EndBlock cfiPicker46
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
?Subroutine5:
CFI Block cfiCond47 Using cfiCommon0
CFI Function _ltoa
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+-2
CFI CFA_XSP16 add(XSP16, 53)
CFI Block cfiCond48 Using cfiCommon0
CFI (cfiCond48) Function _ltoa
CFI (cfiCond48) Conditional ??CrossCallReturnLabel_1
CFI (cfiCond48) R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
CFI (cfiCond48) VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
CFI (cfiCond48) V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
CFI (cfiCond48) V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
CFI (cfiCond48) V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
CFI (cfiCond48) V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI (cfiCond48) V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond48) V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond48) V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond48) V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond48) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond48) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond48) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond48) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond48) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond48) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond48) CFA_SP SP+-2
CFI (cfiCond48) CFA_XSP16 add(XSP16, 53)
CFI Block cfiCond49 Using cfiCommon0
CFI (cfiCond49) Function _ltoa
CFI (cfiCond49) Conditional ??CrossCallReturnLabel_2
CFI (cfiCond49) R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
CFI (cfiCond49) VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
CFI (cfiCond49) V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
CFI (cfiCond49) V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
CFI (cfiCond49) V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
CFI (cfiCond49) V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI (cfiCond49) V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond49) V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond49) V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond49) V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond49) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond49) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond49) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond49) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond49) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond49) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond49) CFA_SP SP+-2
CFI (cfiCond49) CFA_XSP16 add(XSP16, 53)
CFI Block cfiPicker50 Using cfiCommon1
CFI (cfiPicker50) NoFunction
CFI (cfiPicker50) Picker
LCALL `??strlen::?relay`; Banked call to: strlen
MOV ?V4,R2
MOV ?V5,R3
MOV A,#0x4
CLR C
SUBB A,?V4
MOV R0,A
CLR A
SUBB A,?V5
MOV R1,A
CLR C
MOV A,?V0
SUBB A,R0
CLR A
SUBB A,R1
RET
CFI EndBlock cfiCond47
CFI EndBlock cfiCond48
CFI EndBlock cfiCond49
CFI EndBlock cfiPicker50
// 383 #endif // !defined(ZBIT) && !defined(ZBIT2)
// 384
// 385 /*********************************************************************
// 386 * @fn osal_rand
// 387 *
// 388 * @brief Random number generator
// 389 *
// 390 * @param none
// 391 *
// 392 * @return uint16 - new random number
// 393 */
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
// 394 uint16 osal_rand( void )
osal_rand:
CFI Block cfiBlock51 Using cfiCommon0
CFI Function osal_rand
CODE
// 395 {
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
// 396 return ( Onboard_rand() );
; Setup parameters for call to function Onboard_rand
LCALL `??Onboard_rand::?relay`; Banked call to: Onboard_rand
SJMP ?Subroutine0
// 397 }
CFI EndBlock cfiBlock51
// 398
// 399 /*********************************************************************
// 400 * API FUNCTIONS
// 401 *********************************************************************/
// 402
// 403 /*********************************************************************
// 404 * @fn osal_msg_allocate
// 405 *
// 406 * @brief
// 407 *
// 408 * This function is called by a task to allocate a message buffer
// 409 * into which the task will encode the particular message it wishes
// 410 * to send. This common buffer scheme is used to strictly limit the
// 411 * creation of message buffers within the system due to RAM size
// 412 * limitations on the microprocessor. Note that all message buffers
// 413 * are a fixed size (at least initially). The parameter len is kept
// 414 * in case a message pool with varying fixed message sizes is later
// 415 * created (for example, a pool of message buffers of size LARGE,
// 416 * MEDIUM and SMALL could be maintained and allocated based on request
// 417 * from the tasks).
// 418 *
// 419 *
// 420 * @param uint8 len - wanted buffer length
// 421 *
// 422 *
// 423 * @return pointer to allocated buffer or NULL if allocation failed.
// 424 */
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
// 425 uint8 * osal_msg_allocate( uint16 len )
osal_msg_allocate:
CFI Block cfiBlock52 Using cfiCommon0
CFI Function osal_msg_allocate
CODE
// 426 {
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
REQUIRE ?V0
REQUIRE ?V1
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
// 427 osal_msg_hdr_t *hdr;
// 428
// 429 if ( len == 0 )
MOV A,R2
ORL A,R7
JZ ??osal_msg_allocate_0
// 430 return ( NULL );
// 431
// 432 hdr = (osal_msg_hdr_t *) osal_mem_alloc( (short)(len + sizeof( osal_msg_hdr_t )) );
; Setup parameters for call to function osal_mem_alloc
MOV A,R2
ADD A,#0x5
MOV R2,A
CLR A
ADDC A,R7
MOV R3,A
LCALL `??osal_mem_alloc::?relay`; Banked call to: osal_mem_alloc
MOV ?V1,R3
MOV R1,?V1
// 433 if ( hdr )
MOV A,R2
ORL A,R1
JZ ??osal_msg_allocate_0
// 434 {
// 435 hdr->next = NULL;
MOV DPL,R2
MOV DPH,R3
CLR A
MOVX @DPTR,A
INC DPTR
LCALL ??Subroutine32_0 & 0xFFFF
// 436 hdr->len = len;
??CrossCallReturnLabel_44:
INC DPTR
INC DPTR
LCALL ?Subroutine18 & 0xFFFF
// 437 hdr->dest_id = TASK_NO_TASK;
??CrossCallReturnLabel_42:
INC DPTR
INC DPTR
INC DPTR
INC DPTR
MOV A,#-0x1
MOVX @DPTR,A
// 438 return ( (uint8 *) (hdr + 1) );
MOV A,R2
ADD A,#0x5
MOV R2,A
CLR A
ADDC A,R1
MOV R3,A
SJMP ??osal_msg_allocate_1
// 439 }
// 440 else
// 441 return ( NULL );
??osal_msg_allocate_0:
MOV R2,#0x0
MOV R3,#0x0
??osal_msg_allocate_1:
LJMP ?Subroutine3 & 0xFFFF
// 442 }
CFI EndBlock cfiBlock52
// 443
// 444 /*********************************************************************
// 445 * @fn osal_msg_deallocate
// 446 *
// 447 * @brief
// 448 *
// 449 * This function is used to deallocate a message buffer. This function
// 450 * is called by a task (or processing element) after it has finished
// 451 * processing a received message.
// 452 *
// 453 *
// 454 * @param uint8 *msg_ptr - pointer to new message buffer
// 455 *
// 456 * @return SUCCESS, INVALID_MSG_POINTER
// 457 */
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
// 458 uint8 osal_msg_deallocate( uint8 *msg_ptr )
osal_msg_deallocate:
CFI Block cfiBlock53 Using cfiCommon0
CFI Function osal_msg_deallocate
CODE
// 459 {
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
// 460 uint8 *x;
// 461
// 462 if ( msg_ptr == NULL )
MOV A,R2
ORL A,R3
JNZ ??osal_msg_deallocate_0
// 463 return ( INVALID_MSG_POINTER );
MOV R1,#0x5
SJMP ??osal_msg_deallocate_1
// 464
// 465 // don't deallocate queued buffer
// 466 if ( OSAL_MSG_ID( msg_ptr ) != TASK_NO_TASK )
??osal_msg_deallocate_0:
LCALL ?Subroutine17 & 0xFFFF
??CrossCallReturnLabel_21:
JZ ??osal_msg_deallocate_2
// 467 return ( MSG_BUFFER_NOT_AVAIL );
MOV R1,#0x4
SJMP ??osal_msg_deallocate_1
// 468
// 469 x = (uint8 *)((uint8 *)msg_ptr - sizeof( osal_msg_hdr_t ));
// 470
// 471 osal_mem_free( (void *)x );
??osal_msg_deallocate_2:
; 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`; Banked call to: osal_mem_free
// 472
// 473 return ( SUCCESS );
MOV R1,#0x0
??osal_msg_deallocate_1:
CFI EndBlock cfiBlock53
REQUIRE ?Subroutine0
; // Fall through to label ?Subroutine0
// 474 }
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
?Subroutine0:
CFI Block cfiBlock54 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 cfiBlock54
// 475
// 476 /*********************************************************************
// 477 * @fn osal_msg_send
// 478 *
// 479 * @brief
// 480 *
// 481 * This function is called by a task to send a command message to
// 482 * another task or processing element. The sending_task field must
// 483 * refer to a valid task, since the task ID will be used
// 484 * for the response message. This function will also set a message
// 485 * ready event in the destination tasks event list.
// 486 *
// 487 *
// 488 * @param uint8 destination task - Send msg to? Task ID
// 489 * @param uint8 *msg_ptr - pointer to new message buffer
// 490 * @param uint8 len - length of data in message
// 491 *
// 492 * @return SUCCESS, INVALID_TASK, INVALID_MSG_POINTER
// 493 */
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
// 494 uint8 osal_msg_send( uint8 destination_task, uint8 *msg_ptr )
osal_msg_send:
CFI Block cfiBlock55 Using cfiCommon0
CFI Function osal_msg_send
CODE
// 495 {
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
// 496 if ( msg_ptr == NULL )
MOV A,R2
ORL A,R3
JZ ??osal_msg_send_0
// 497 return ( INVALID_MSG_POINTER );
// 498
// 499 if ( destination_task >= tasksCnt )
MOV DPTR,#tasksCnt
MOVX A,@DPTR
MOV R0,A
MOV A,R1
CLR C
SUBB A,R0
JC ??osal_msg_send_1
// 500 {
// 501 osal_msg_deallocate( msg_ptr );
; Setup parameters for call to function osal_msg_deallocate
LCALL `??osal_msg_deallocate::?relay`; Banked call to: osal_msg_deallocate
// 502 return ( INVALID_TASK );
MOV R1,#0x3
SJMP ??osal_msg_send_2
// 503 }
// 504
// 505 // Check the message header
// 506 if ( OSAL_MSG_NEXT( msg_ptr ) != NULL ||
// 507 OSAL_MSG_ID( msg_ptr ) != TASK_NO_TASK )
??osal_msg_send_1:
LCALL ?Subroutine29 & 0xFFFF
??CrossCallReturnLabel_78:
MOV A,R3
LCALL ??Subroutine37_0 & 0xFFFF
??CrossCallReturnLabel_62:
LCALL ??Subroutine39_0 & 0xFFFF
??CrossCallReturnLabel_81:
JNZ ??osal_msg_send_3
LCALL ?Subroutine17 & 0xFFFF
??CrossCallReturnLabel_22:
JZ ??osal_msg_send_4
// 508 {
// 509 osal_msg_deallocate( msg_ptr );
??osal_msg_send_3:
; Setup parameters for call to function osal_msg_deallocate
LCALL `??osal_msg_deallocate::?relay`; Banked call to: osal_msg_deallocate
// 510 return ( INVALID_MSG_POINTER );
??osal_msg_send_0:
MOV R1,#0x5
SJMP ??osal_msg_send_2
// 511 }
// 512
// 513 OSAL_MSG_ID( msg_ptr ) = destination_task;
??osal_msg_send_4:
MOV A,R6
MOVX @DPTR,A
// 514
// 515 // queue message
// 516 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`; Banked call to: osal_msg_enqueue
// 517
// 518 // Signal the task that a message is waiting
// 519 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`; Banked call to: osal_set_event
// 520
// 521 return ( SUCCESS );
MOV R1,#0x0
??osal_msg_send_2:
SJMP ??Subroutine31_0
// 522 }
CFI EndBlock cfiBlock55
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
?Subroutine17:
CFI Block cfiCond56 Using cfiCommon0
CFI Function osal_msg_deallocate
CFI Conditional ??CrossCallReturnLabel_21
CFI DPL0 Frame(CFA_SP, 4)
CFI DPH0 Frame(CFA_SP, 5)
CFI CFA_SP SP+-7
CFI Block cfiCond57 Using cfiCommon0
CFI (cfiCond57) Function osal_msg_send
CFI (cfiCond57) Conditional ??CrossCallReturnLabel_22
CFI (cfiCond57) R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond57) VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond57) V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond57) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond57) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond57) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond57) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond57) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond57) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond57) CFA_SP SP+-2
CFI (cfiCond57) CFA_XSP16 add(XSP16, 9)
CFI Block cfiPicker58 Using cfiCommon1
CFI (cfiPicker58) NoFunction
CFI (cfiPicker58) Picker
LCALL ?Subroutine24 & 0xFFFF
??CrossCallReturnLabel_34:
MOVX A,@DPTR
CPL A
RET
CFI EndBlock cfiCond56
CFI EndBlock cfiCond57
CFI EndBlock cfiPicker58
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
?Subroutine1:
CFI Block cfiBlock59 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)))
MOVX @DPTR,A
MOV A,R6
MOV C,0xE0 /* A */.0
CFI EndBlock cfiBlock59
REQUIRE ??Subroutine30_0
; // Fall through to label ??Subroutine30_0
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
??Subroutine30_0:
CFI Block cfiBlock60 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 0xa8.7,C
CFI EndBlock cfiBlock60
REQUIRE ??Subroutine31_0
; // Fall through to label ??Subroutine31_0
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
??Subroutine31_0:
CFI Block cfiBlock61 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 cfiBlock61
// 523
// 524 /*********************************************************************
// 525 * @fn osal_msg_receive
// 526 *
// 527 * @brief
// 528 *
// 529 * This function is called by a task to retrieve a received command
// 530 * message. The calling task must deallocate the message buffer after
// 531 * processing the message using the osal_msg_deallocate() call.
// 532 *
// 533 * @param uint8 task_id - receiving tasks ID
// 534 *
// 535 * @return *uint8 - message information or NULL if no message
// 536 */
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
// 537 uint8 *osal_msg_receive( uint8 task_id )
osal_msg_receive:
CFI Block cfiBlock62 Using cfiCommon0
CFI Function osal_msg_receive
CODE
// 538 {
FUNCALL osal_msg_receive, osal_set_event
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
FUNCALL osal_msg_receive, osal_clear_event
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
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
REQUIRE ?V0
REQUIRE ?V1
REQUIRE ?V2
REQUIRE ?V3
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
MOV ?V0,R1
// 539 osal_msg_hdr_t *listHdr;
// 540 osal_msg_hdr_t *prevHdr = NULL;
MOV ?V2,#0x0
MOV ?V3,#0x0
// 541 osal_msg_hdr_t *foundHdr = NULL;
MOV R6,#0x0
MOV R7,#0x0
// 542 halIntState_t intState;
// 543
// 544 // Hold off interrupts
// 545 HAL_ENTER_CRITICAL_SECTION(intState);
MOV C,0xa8.7
CLR A
RLC A
MOV ?V1,A
CLR 0xa8.7
// 546
// 547 // Point to the top of the queue
// 548 listHdr = osal_qHead;
MOV DPTR,#osal_qHead
SJMP ??CrossCallReturnLabel_70
// 549
// 550 // Look through the queue for a message that belongs to the asking task
// 551 while ( listHdr != NULL )
// 552 {
// 553 if ( (listHdr - 1)->dest_id == task_id )
// 554 {
// 555 if ( foundHdr == NULL )
// 556 {
// 557 // Save the first one
// 558 foundHdr = listHdr;
// 559 }
// 560 else
// 561 {
// 562 // Second msg found, stop looking
// 563 break;
// 564 }
// 565 }
// 566 if ( foundHdr == NULL )
??osal_msg_receive_0:
MOV A,R6
ORL A,R7
JNZ ??osal_msg_receive_1
// 567 {
// 568 prevHdr = listHdr;
MOV ?V2,R0
MOV ?V3,R1
// 569 }
// 570 listHdr = OSAL_MSG_NEXT( listHdr );
??osal_msg_receive_1:
LCALL ?Subroutine22 & 0xFFFF
??CrossCallReturnLabel_70:
LCALL ??Subroutine39_0 & 0xFFFF
??CrossCallReturnLabel_80:
JZ ??osal_msg_receive_2
MOV A,R0
ADD A,#-0x1
LCALL ??Subroutine36_0 & 0xFFFF
??CrossCallReturnLabel_69:
MOVX A,@DPTR
XRL A,?V0
JNZ ??osal_msg_receive_0
MOV A,R6
ORL A,R7
JNZ ??osal_msg_receive_3
MOV A,R0
MOV R6,A
MOV A,R1
MOV R7,A
SJMP ??osal_msg_receive_1
// 571 }
// 572
// 573 // Is there more than one?
// 574 if ( listHdr != NULL )
// 575 {
// 576 // Yes, Signal the task that a message is waiting
// 577 osal_set_event( task_id, SYS_EVENT_MSG );
??osal_msg_receive_3:
; Setup parameters for call to function osal_set_event
MOV R2,#0x0
MOV R3,#-0x80
MOV R1,?V0
LCALL `??osal_set_event::?relay`; Banked call to: osal_set_event
SJMP ??osal_msg_receive_4
// 578 }
// 579 else
// 580 {
// 581 // No more
// 582 osal_clear_event( task_id, SYS_EVENT_MSG );
??osal_msg_receive_2:
; Setup parameters for call to function osal_clear_event
MOV R2,#0x0
MOV R3,#-0x80
MOV R1,?V0
LCALL `??osal_clear_event::?relay`; Banked call to: osal_clear_event
// 583 }
// 584
// 585 // Did we find a message?
// 586 if ( foundHdr != NULL )
MOV A,R6
ORL A,R7
JZ ??osal_msg_receive_5
// 587 {
// 588 // Take out of the link list
// 589 osal_msg_extract( &osal_qHead, foundHdr, prevHdr );
??osal_msg_receive_4:
; Setup parameters for call to function osal_msg_extract
MOV R0,#?V2
LCALL ?PUSH_XSTACK_I_TWO
CFI CFA_XSP16 add(XSP16, 14)
MOV A,R6
MOV R4,A
MOV A,R7
MOV R5,A
MOV R2,#osal_qHead & 0xff
MOV R3,#(osal_qHead >> 8) & 0xff
LCALL `??osal_msg_extract::?relay`; Banked call to: osal_msg_extract
MOV A,#0x2
LCALL ?DEALLOC_XSTACK8
CFI CFA_XSP16 add(XSP16, 12)
// 590 }
// 591
// 592 // Release interrupts
// 593 HAL_EXIT_CRITICAL_SECTION(intState);
??osal_msg_receive_5:
MOV A,?V1
MOV C,0xE0 /* A */.0
MOV 0xa8.7,C
// 594
// 595 return ( (uint8*) foundHdr );
MOV A,R6
MOV R2,A
MOV A,R7
MOV R3,A
MOV R7,#0x4
LJMP ?BANKED_LEAVE_XDATA
CFI EndBlock cfiBlock62
REQUIRE _A_IEN0
// 596 }
// 597
// 598 /**************************************************************************************************
// 599 * @fn osal_msg_find
// 600 *
// 601 * @brief This function finds in place an OSAL message matching the task_id and event
// 602 * parameters.
// 603 *
// 604 * input parameters
// 605 *
// 606 * @param task_id - The OSAL task id that the enqueued OSAL message must match.
// 607 * @param event - The OSAL event id that the enqueued OSAL message must match.
// 608 *
// 609 * output parameters
// 610 *
// 611 * None.
// 612 *
// 613 * @return NULL if no match, otherwise an in place pointer to the matching OSAL message.
// 614 **************************************************************************************************
// 615 */
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
// 616 osal_event_hdr_t *osal_msg_find(uint8 task_id, uint8 event)
osal_msg_find:
CFI Block cfiBlock63 Using cfiCommon0
CFI Function osal_msg_find
CODE
// 617 {
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
MOV A,R2
MOV R4,A
// 618 osal_msg_hdr_t *pHdr;
// 619 halIntState_t intState;
// 620
// 621 HAL_ENTER_CRITICAL_SECTION(intState); // Hold off interrupts.
MOV C,0xa8.7
CLR A
RLC A
MOV R0,A
CLR 0xa8.7
// 622
// 623 pHdr = osal_qHead; // Point to the top of the queue.
MOV DPTR,#osal_qHead
SJMP ??CrossCallReturnLabel_63
// 624
// 625 // Look through the queue for a message that matches the task_id and event parameters.
// 626 while (pHdr != NULL)
// 627 {
// 628 if (((pHdr-1)->dest_id == task_id) && (((osal_event_hdr_t *)pHdr)->event == event))
// 629 {
// 630 break;
// 631 }
// 632
// 633 pHdr = OSAL_MSG_NEXT(pHdr);
??osal_msg_find_0:
LCALL ?Subroutine29 & 0xFFFF
??CrossCallReturnLabel_79:
MOV A,R3
LCALL ??Subroutine37_0 & 0xFFFF
??CrossCallReturnLabel_63:
LCALL ??Subroutine35_0 & 0xFFFF
??CrossCallReturnLabel_54:
MOV A,R2
ORL A,R3
JZ ??osal_msg_find_1
LCALL ?Subroutine20 & 0xFFFF
// 634 }
??CrossCallReturnLabel_25:
MOVX A,@DPTR
XRL A,R1
JNZ ??osal_msg_find_0
MOV DPL,R2
MOV DPH,R3
MOVX A,@DPTR
XRL A,R4
JNZ ??osal_msg_find_0
// 635
// 636 HAL_EXIT_CRITICAL_SECTION(intState); // Release interrupts.
??osal_msg_find_1:
MOV A,R0
MOV C,0xE0 /* A */.0
MOV 0xa8.7,C
// 637
// 638 return (osal_event_hdr_t *)pHdr;
LJMP ?Subroutine0 & 0xFFFF
CFI EndBlock cfiBlock63
REQUIRE _A_IEN0
// 639 }
// 640
// 641 /*********************************************************************
// 642 * @fn osal_msg_enqueue
// 643 *
// 644 * @brief
// 645 *
// 646 * This function enqueues an OSAL message into an OSAL queue.
// 647 *
// 648 * @param osal_msg_q_t *q_ptr - OSAL queue
// 649 * @param void *msg_ptr - OSAL message
// 650 *
// 651 * @return none
// 652 */
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
// 653 void osal_msg_enqueue( osal_msg_q_t *q_ptr, void *msg_ptr )
osal_msg_enqueue:
CFI Block cfiBlock64 Using cfiCommon0
CFI Function osal_msg_enqueue
CODE
// 654 {
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
// 655 void *list;
// 656 halIntState_t intState;
// 657
// 658 // Hold off interrupts
// 659 HAL_ENTER_CRITICAL_SECTION(intState);
MOV C,0xa8.7
CLR A
RLC A
MOV R6,A
CLR 0xa8.7
// 660
// 661 OSAL_MSG_NEXT( msg_ptr ) = NULL;
LCALL ?Subroutine23 & 0xFFFF
??CrossCallReturnLabel_29:
LCALL ??Subroutine37_0 & 0xFFFF
??CrossCallReturnLabel_64:
CLR A
MOVX @DPTR,A
INC DPTR
LCALL ??Subroutine32_0 & 0xFFFF
// 662 // If first message in queue
// 663 if ( *q_ptr == NULL )
??CrossCallReturnLabel_45:
LCALL ??Subroutine39_0 & 0xFFFF
??CrossCallReturnLabel_82:
JNZ ??CrossCallReturnLabel_49
// 664 {
// 665 *q_ptr = msg_ptr;
MOV DPL,R2
MOV DPH,R3
SJMP ??CrossCallReturnLabel_71
// 666 }
// 667 else
// 668 {
// 669 // Find end of queue
// 670 for ( list = *q_ptr; OSAL_MSG_NEXT( list ) != NULL; list = OSAL_MSG_NEXT( list ) );
??osal_msg_enqueue_0:
LCALL ?Subroutine11 & 0xFFFF
??CrossCallReturnLabel_49:
MOV A,R0
LCALL ??Subroutine38_0 & 0xFFFF
??CrossCallReturnLabel_74:
MOV A,R1
ADDC A,#-0x1
LCALL ?Subroutine15 & 0xFFFF
??CrossCallReturnLabel_56:
MOV A,R2
ORL A,R3
JNZ ??osal_msg_enqueue_0
// 671
// 672 // Add message to end of queue
// 673 OSAL_MSG_NEXT( list ) = msg_ptr;
LCALL ?Subroutine22 & 0xFFFF
// 674 }
??CrossCallReturnLabel_71:
MOV A,R4
MOVX @DPTR,A
INC DPTR
MOV A,R5
LJMP ?Subroutine1 & 0xFFFF
CFI EndBlock cfiBlock64
REQUIRE _A_IEN0
// 675
// 676 // Re-enable interrupts
// 677 HAL_EXIT_CRITICAL_SECTION(intState);
// 678 }
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
?Subroutine18:
CFI Block cfiCond65 Using cfiCommon0
CFI Function osal_msg_allocate
CFI Conditional ??CrossCallReturnLabel_42
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+-2
CFI CFA_XSP16 add(XSP16, 10)
CFI Block cfiCond66 Using cfiCommon0
CFI (cfiCond66) Function osal_msg_push
CFI (cfiCond66) Conditional ??CrossCallReturnLabel_43
CFI (cfiCond66) R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond66) VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond66) V0 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+-2
CFI (cfiCond66) CFA_XSP16 add(XSP16, 9)
CFI Block cfiPicker67 Using cfiCommon1
CFI (cfiPicker67) NoFunction
CFI (cfiPicker67) Picker
MOV A,R6
MOVX @DPTR,A
INC DPTR
MOV A,R7
CFI EndBlock cfiCond65
CFI EndBlock cfiCond66
CFI EndBlock cfiPicker67
REQUIRE ??Subroutine32_0
; // Fall through to label ??Subroutine32_0
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
??Subroutine32_0:
CFI Block cfiCond68 Using cfiCommon0
CFI Function osal_msg_allocate
CFI Conditional ??CrossCallReturnLabel_44
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+-2
CFI CFA_XSP16 add(XSP16, 10)
CFI Block cfiCond69 Using cfiCommon0
CFI (cfiCond69) Function osal_msg_enqueue
CFI (cfiCond69) Conditional ??CrossCallReturnLabel_45
CFI (cfiCond69) R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond69) VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond69) V0 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+-2
CFI (cfiCond69) CFA_XSP16 add(XSP16, 9)
CFI Block cfiCond70 Using cfiCommon0
CFI (cfiCond70) Function osal_msg_allocate
CFI (cfiCond70) Conditional ??CrossCallReturnLabel_42
CFI (cfiCond70) R6 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond70) VB load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond70) V0 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond70) V1 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+-2
CFI (cfiCond70) CFA_XSP16 add(XSP16, 10)
CFI Block cfiCond71 Using cfiCommon0
CFI (cfiCond71) Function osal_msg_push
CFI (cfiCond71) Conditional ??CrossCallReturnLabel_43
CFI (cfiCond71) R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond71) VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond71) V0 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+-2
CFI (cfiCond71) CFA_XSP16 add(XSP16, 9)
CFI Block cfiPicker72 Using cfiCommon1
CFI (cfiPicker72) NoFunction
CFI (cfiPicker72) Picker
MOVX @DPTR,A
MOV DPL,R2
MOV DPH,R3
RET
CFI EndBlock cfiCond68
CFI EndBlock cfiCond69
CFI EndBlock cfiCond70
CFI EndBlock cfiCond71
CFI EndBlock cfiPicker72
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
?Subroutine11:
CFI Block cfiCond73 Using cfiCommon0
CFI Function osal_msg_enqueue
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+-2
CFI CFA_XSP16 add(XSP16, 9)
CFI Block cfiCond74 Using cfiCommon0
CFI (cfiCond74) Function osal_msg_enqueue_max
CFI (cfiCond74) Conditional ??CrossCallReturnLabel_50
CFI (cfiCond74) R6 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond74) VB load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond74) V0 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond74) V1 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+-2
CFI (cfiCond74) CFA_XSP16 add(XSP16, 10)
CFI Block cfiPicker75 Using cfiCommon1
CFI (cfiPicker75) NoFunction
CFI (cfiPicker75) Picker
MOV A,R0
LCALL ??Subroutine38_0 & 0xFFFF
??CrossCallReturnLabel_76:
MOV A,R1
CFI EndBlock cfiCond73
CFI EndBlock cfiCond74
CFI EndBlock cfiPicker75
REQUIRE ??Subroutine33_0
; // Fall through to label ??Subroutine33_0
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
??Subroutine33_0:
CFI Block cfiCond76 Using cfiCommon0
CFI Function osal_msg_extract
CFI Conditional ??CrossCallReturnLabel_47
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+-2
CFI CFA_XSP16 add(XSP16, 9)
CFI Block cfiCond77 Using cfiCommon0
CFI (cfiCond77) Function osal_msg_extract
CFI (cfiCond77) Conditional ??CrossCallReturnLabel_48
CFI (cfiCond77) R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond77) VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond77) V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond77) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond77) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond77) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond77) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond77) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond77) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond77) CFA_SP SP+-2
CFI (cfiCond77) CFA_XSP16 add(XSP16, 9)
CFI Block cfiCond78 Using cfiCommon0
CFI (cfiCond78) Function osal_msg_enqueue
CFI (cfiCond78) Conditional ??CrossCallReturnLabel_49
CFI (cfiCond78) R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond78) VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond78) V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond78) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond78) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond78) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond78) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond78) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond78) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond78) CFA_SP SP+-2
CFI (cfiCond78) CFA_XSP16 add(XSP16, 9)
CFI Block cfiCond79 Using cfiCommon0
CFI (cfiCond79) Function osal_msg_enqueue_max
CFI (cfiCond79) Conditional ??CrossCallReturnLabel_50
CFI (cfiCond79) R6 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond79) VB load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond79) V0 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond79) V1 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond79) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond79) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond79) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond79) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond79) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond79) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond79) CFA_SP SP+-2
CFI (cfiCond79) CFA_XSP16 add(XSP16, 10)
CFI Block cfiPicker80 Using cfiCommon1
CFI (cfiPicker80) NoFunction
CFI (cfiPicker80) Picker
ADDC A,#-0x1
MOV DPH,A
CFI EndBlock cfiCond76
CFI EndBlock cfiCond77
CFI EndBlock cfiCond78
CFI EndBlock cfiCond79
CFI EndBlock cfiPicker80
REQUIRE ??Subroutine34_0
; // Fall through to label ??Subroutine34_0
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
??Subroutine34_0:
CFI Block cfiCond81 Using cfiCommon0
CFI Function osal_msg_extract
CFI Conditional ??CrossCallReturnLabel_46
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+-2
CFI CFA_XSP16 add(XSP16, 9)
CFI Block cfiCond82 Using cfiCommon0
CFI (cfiCond82) Function osal_msg_extract
CFI (cfiCond82) Conditional ??CrossCallReturnLabel_47
CFI (cfiCond82) R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond82) VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond82) V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond82) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond82) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond82) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond82) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond82) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond82) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond82) CFA_SP SP+-2
CFI (cfiCond82) CFA_XSP16 add(XSP16, 9)
CFI Block cfiCond83 Using cfiCommon0
CFI (cfiCond83) Function osal_msg_extract
CFI (cfiCond83) Conditional ??CrossCallReturnLabel_48
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+-2
CFI (cfiCond83) CFA_XSP16 add(XSP16, 9)
CFI Block cfiCond84 Using cfiCommon0
CFI (cfiCond84) Function osal_msg_enqueue
CFI (cfiCond84) Conditional ??CrossCallReturnLabel_49
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+-2
CFI (cfiCond84) CFA_XSP16 add(XSP16, 9)
CFI Block cfiCond85 Using cfiCommon0
CFI (cfiCond85) Function osal_msg_enqueue_max
CFI (cfiCond85) Conditional ??CrossCallReturnLabel_50
CFI (cfiCond85) R6 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond85) VB load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond85) V0 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond85) V1 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+-2
CFI (cfiCond85) CFA_XSP16 add(XSP16, 10)
CFI Block cfiPicker86 Using cfiCommon1
CFI (cfiPicker86) NoFunction
CFI (cfiPicker86) Picker
MOVX A,@DPTR
MOV R0,A
INC DPTR
MOVX A,@DPTR
MOV R1,A
RET
CFI EndBlock cfiCond81
CFI EndBlock cfiCond82
CFI EndBlock cfiCond83
CFI EndBlock cfiCond84
CFI EndBlock cfiCond85
CFI EndBlock cfiPicker86
// 679
// 680 /*********************************************************************
// 681 * @fn osal_msg_dequeue
// 682 *
// 683 * @brief
// 684 *
// 685 * This function dequeues an OSAL message from an OSAL queue.
// 686 *
// 687 * @param osal_msg_q_t *q_ptr - OSAL queue
// 688 *
// 689 * @return void * - pointer to OSAL message or NULL of queue is empty.
// 690 */
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
// 691 void *osal_msg_dequeue( osal_msg_q_t *q_ptr )
osal_msg_dequeue:
CFI Block cfiBlock87 Using cfiCommon0
CFI Function osal_msg_dequeue
CODE
// 692 {
REQUIRE ?V0
REQUIRE ?V1
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
// 693 void *msg_ptr = NULL;
MOV R2,#0x0
MOV R3,#0x0
// 694 halIntState_t intState;
// 695
// 696 // Hold off interrupts
// 697 HAL_ENTER_CRITICAL_SECTION(intState);
MOV C,0xa8.7
CLR A
RLC A
MOV R6,A
CLR 0xa8.7
// 698
// 699 if ( *q_ptr != NULL )
MOV DPL,R0
MOV DPH,R1
MOVX A,@DPTR
MOV R4,A
INC DPTR
MOVX A,@DPTR
MOV R5,A
MOV A,R4
ORL A,R5
JZ ??osal_msg_dequeue_0
// 700 {
// 701 // Dequeue message
// 702 msg_ptr = *q_ptr;
MOV DPL,R0
MOV DPH,R1
LCALL ??Subroutine35_0 & 0xFFFF
// 703 *q_ptr = OSAL_MSG_NEXT( msg_ptr );
??CrossCallReturnLabel_55:
MOV A,R4
ADD A,#-0x5
MOV R4,A
MOV A,R5
ADDC A,#-0x1
MOV R5,A
MOV DPL,R4
MOV DPH,A
MOVX A,@DPTR
MOV ?V0,A
INC DPTR
MOVX A,@DPTR
MOV ?V1,A
MOV DPL,R0
MOV DPH,R1
MOV A,?V0
MOVX @DPTR,A
INC DPTR
MOV A,?V1
MOVX @DPTR,A
// 704 OSAL_MSG_NEXT( msg_ptr ) = NULL;
MOV DPL,R4
MOV DPH,R5
CLR A
MOVX @DPTR,A
INC DPTR
MOVX @DPTR,A
// 705 OSAL_MSG_ID( msg_ptr ) = TASK_NO_TASK;
LCALL ?Subroutine20 & 0xFFFF
// 706 }
??CrossCallReturnLabel_26:
MOV A,#-0x1
MOVX @DPTR,A
// 707
// 708 // Re-enable interrupts
// 709 HAL_EXIT_CRITICAL_SECTION(intState);
??osal_msg_dequeue_0:
MOV A,R6
MOV C,0xE0 /* A */.0
MOV 0xa8.7,C
// 710
// 711 return msg_ptr;
CFI EndBlock cfiBlock87
REQUIRE ?Subroutine3
REQUIRE _A_IEN0
; // Fall through to label ?Subroutine3
// 712 }
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
?Subroutine3:
CFI Block cfiBlock88 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 cfiBlock88
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
?Subroutine20:
CFI Block cfiCond89 Using cfiCommon0
CFI Function osal_msg_find
CFI Conditional ??CrossCallReturnLabel_25
CFI DPL0 Frame(CFA_SP, 4)
CFI DPH0 Frame(CFA_SP, 5)
CFI CFA_SP SP+-7
CFI Block cfiCond90 Using cfiCommon0
CFI (cfiCond90) Function osal_msg_dequeue
CFI (cfiCond90) Conditional ??CrossCallReturnLabel_26
CFI (cfiCond90) R6 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond90) VB load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond90) V0 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond90) V1 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond90) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond90) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond90) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond90) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond90) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond90) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond90) CFA_SP SP+-2
CFI (cfiCond90) CFA_XSP16 add(XSP16, 10)
CFI Block cfiPicker91 Using cfiCommon1
CFI (cfiPicker91) NoFunction
CFI (cfiPicker91) Picker
LCALL ?Subroutine24 & 0xFFFF
??CrossCallReturnLabel_35:
RET
CFI EndBlock cfiCond89
CFI EndBlock cfiCond90
CFI EndBlock cfiPicker91
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
?Subroutine24:
CFI Block cfiCond92 Using cfiCommon0
CFI Function osal_msg_deallocate
CFI Conditional ??CrossCallReturnLabel_34, ??CrossCallReturnLabel_21
CFI DPL0 Frame(CFA_SP, 4)
CFI DPH0 Frame(CFA_SP, 5)
CFI CFA_SP SP+-9
CFI Block cfiCond93 Using cfiCommon0
CFI (cfiCond93) Function osal_msg_send
CFI (cfiCond93) Conditional ??CrossCallReturnLabel_34, ??CrossCallReturnLabel_22
CFI (cfiCond93) R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond93) VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond93) V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond93) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond93) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond93) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond93) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond93) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond93) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond93) CFA_SP SP+-4
CFI (cfiCond93) CFA_XSP16 add(XSP16, 9)
CFI Block cfiCond94 Using cfiCommon0
CFI (cfiCond94) Function osal_msg_find
CFI (cfiCond94) Conditional ??CrossCallReturnLabel_35, ??CrossCallReturnLabel_25
CFI (cfiCond94) DPL0 Frame(CFA_SP, 4)
CFI (cfiCond94) DPH0 Frame(CFA_SP, 5)
CFI (cfiCond94) CFA_SP SP+-9
CFI Block cfiCond95 Using cfiCommon0
CFI (cfiCond95) Function osal_msg_dequeue
CFI (cfiCond95) Conditional ??CrossCallReturnLabel_35, ??CrossCallReturnLabel_26
CFI (cfiCond95) R6 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond95) VB load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond95) V0 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond95) V1 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond95) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond95) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond95) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond95) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond95) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond95) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond95) CFA_SP SP+-4
CFI (cfiCond95) CFA_XSP16 add(XSP16, 10)
CFI Block cfiPicker96 Using cfiCommon1
CFI (cfiPicker96) NoFunction
CFI (cfiPicker96) Picker
MOV A,R2
ADD A,#-0x1
MOV DPL,A
MOV A,R3
ADDC A,#-0x1
MOV DPH,A
RET
CFI EndBlock cfiCond92
CFI EndBlock cfiCond93
CFI EndBlock cfiCond94
CFI EndBlock cfiCond95
CFI EndBlock cfiPicker96
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
?Subroutine15:
CFI Block cfiCond97 Using cfiCommon0
CFI Function osal_msg_enqueue
CFI Conditional ??CrossCallReturnLabel_56
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+-2
CFI CFA_XSP16 add(XSP16, 9)
CFI Block cfiCond98 Using cfiCommon0
CFI (cfiCond98) Function osal_run_system
CFI (cfiCond98) Conditional ??CrossCallReturnLabel_57
CFI (cfiCond98) R6 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond98) VB load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond98) V0 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond98) V1 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond98) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond98) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond98) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond98) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond98) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond98) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond98) CFA_SP SP+-2
CFI (cfiCond98) CFA_XSP16 add(XSP16, 10)
CFI Block cfiPicker99 Using cfiCommon1
CFI (cfiPicker99) NoFunction
CFI (cfiPicker99) Picker
MOV DPH,A
CFI EndBlock cfiCond97
CFI EndBlock cfiCond98
CFI EndBlock cfiPicker99
REQUIRE ??Subroutine35_0
; // Fall through to label ??Subroutine35_0
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
??Subroutine35_0:
CFI Block cfiCond100 Using cfiCommon0
CFI Function _ltoa
CFI Conditional ??CrossCallReturnLabel_51
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+-2
CFI CFA_XSP16 add(XSP16, 53)
CFI Block cfiCond101 Using cfiCommon0
CFI (cfiCond101) Function _ltoa
CFI (cfiCond101) Conditional ??CrossCallReturnLabel_52
CFI (cfiCond101) R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
CFI (cfiCond101) VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
CFI (cfiCond101) V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
CFI (cfiCond101) V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
CFI (cfiCond101) V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
CFI (cfiCond101) V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI (cfiCond101) V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond101) V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond101) V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond101) V7 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+-2
CFI (cfiCond101) CFA_XSP16 add(XSP16, 53)
CFI Block cfiCond102 Using cfiCommon0
CFI (cfiCond102) Function _ltoa
CFI (cfiCond102) Conditional ??CrossCallReturnLabel_53
CFI (cfiCond102) R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
CFI (cfiCond102) VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
CFI (cfiCond102) V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
CFI (cfiCond102) V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
CFI (cfiCond102) V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
CFI (cfiCond102) V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI (cfiCond102) V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond102) V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond102) V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond102) V7 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+-2
CFI (cfiCond102) CFA_XSP16 add(XSP16, 53)
CFI Block cfiCond103 Using cfiCommon0
CFI (cfiCond103) Function osal_msg_find
CFI (cfiCond103) Conditional ??CrossCallReturnLabel_54
CFI (cfiCond103) DPL0 Frame(CFA_SP, 4)
CFI (cfiCond103) DPH0 Frame(CFA_SP, 5)
CFI (cfiCond103) CFA_SP SP+-7
CFI Block cfiCond104 Using cfiCommon0
CFI (cfiCond104) Function osal_msg_dequeue
CFI (cfiCond104) Conditional ??CrossCallReturnLabel_55
CFI (cfiCond104) R6 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond104) VB load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond104) V0 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond104) V1 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond104) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond104) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond104) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond104) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond104) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond104) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond104) CFA_SP SP+-2
CFI (cfiCond104) CFA_XSP16 add(XSP16, 10)
CFI Block cfiCond105 Using cfiCommon0
CFI (cfiCond105) Function osal_msg_enqueue
CFI (cfiCond105) Conditional ??CrossCallReturnLabel_56
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+-2
CFI (cfiCond105) CFA_XSP16 add(XSP16, 9)
CFI Block cfiCond106 Using cfiCommon0
CFI (cfiCond106) Function osal_run_system
CFI (cfiCond106) Conditional ??CrossCallReturnLabel_57
CFI (cfiCond106) R6 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond106) VB load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond106) V0 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond106) V1 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+-2
CFI (cfiCond106) CFA_XSP16 add(XSP16, 10)
CFI Block cfiPicker107 Using cfiCommon1
CFI (cfiPicker107) NoFunction
CFI (cfiPicker107) Picker
LCALL ?Subroutine28 & 0xFFFF
??CrossCallReturnLabel_61:
RET
CFI EndBlock cfiCond100
CFI EndBlock cfiCond101
CFI EndBlock cfiCond102
CFI EndBlock cfiCond103
CFI EndBlock cfiCond104
CFI EndBlock cfiCond105
CFI EndBlock cfiCond106
CFI EndBlock cfiPicker107
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
?Subroutine28:
CFI Block cfiCond108 Using cfiCommon0
CFI Function osal_memcpy
CFI Conditional ??CrossCallReturnLabel_58, ??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+-4
CFI CFA_XSP16 add(XSP16, 9)
CFI Block cfiCond109 Using cfiCommon0
CFI (cfiCond109) Function osal_revmemcpy
CFI (cfiCond109) Conditional ??CrossCallReturnLabel_58, ??CrossCallReturnLabel_9
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+-4
CFI (cfiCond109) CFA_XSP16 add(XSP16, 9)
CFI Block cfiCond110 Using cfiCommon0
CFI (cfiCond110) Function osal_memcmp
CFI (cfiCond110) Conditional ??CrossCallReturnLabel_58, ??CrossCallReturnLabel_10
CFI (cfiCond110) R6 load(1, XDATA, add(CFA_XSP16, literal(-15)))
CFI (cfiCond110) VB load(1, XDATA, add(CFA_XSP16, literal(-14)))
CFI (cfiCond110) V0 load(1, XDATA, add(CFA_XSP16, literal(-13)))
CFI (cfiCond110) V1 load(1, XDATA, add(CFA_XSP16, literal(-12)))
CFI (cfiCond110) V2 load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI (cfiCond110) V3 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond110) V4 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond110) V5 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond110) V6 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+-4
CFI (cfiCond110) CFA_XSP16 add(XSP16, 18)
CFI Block cfiCond111 Using cfiCommon0
CFI (cfiCond111) Function _ltoa
CFI (cfiCond111) Conditional ??CrossCallReturnLabel_60, ??CrossCallReturnLabel_17
CFI (cfiCond111) R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
CFI (cfiCond111) VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
CFI (cfiCond111) V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
CFI (cfiCond111) V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
CFI (cfiCond111) V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
CFI (cfiCond111) V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI (cfiCond111) V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond111) V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond111) V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond111) V7 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+-4
CFI (cfiCond111) CFA_XSP16 add(XSP16, 53)
CFI Block cfiCond112 Using cfiCommon0
CFI (cfiCond112) Function _ltoa
CFI (cfiCond112) Conditional ??CrossCallReturnLabel_60, ??CrossCallReturnLabel_18
CFI (cfiCond112) R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
CFI (cfiCond112) VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
CFI (cfiCond112) V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
CFI (cfiCond112) V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
CFI (cfiCond112) V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
CFI (cfiCond112) V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI (cfiCond112) V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond112) V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond112) V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond112) V7 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+-4
CFI (cfiCond112) CFA_XSP16 add(XSP16, 53)
CFI Block cfiCond113 Using cfiCommon0
CFI (cfiCond113) Function _ltoa
CFI (cfiCond113) Conditional ??CrossCallReturnLabel_59, ??CrossCallReturnLabel_13
CFI (cfiCond113) R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
CFI (cfiCond113) VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
CFI (cfiCond113) V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
CFI (cfiCond113) V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
CFI (cfiCond113) V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
CFI (cfiCond113) V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI (cfiCond113) V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond113) V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond113) V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond113) V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond113) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond113) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond113) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond113) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond113) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond113) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond113) CFA_SP SP+-4
CFI (cfiCond113) CFA_XSP16 add(XSP16, 53)
CFI Block cfiCond114 Using cfiCommon0
CFI (cfiCond114) Function _ltoa
CFI (cfiCond114) Conditional ??CrossCallReturnLabel_59, ??CrossCallReturnLabel_14
CFI (cfiCond114) R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
CFI (cfiCond114) VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
CFI (cfiCond114) V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
CFI (cfiCond114) V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
CFI (cfiCond114) V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
CFI (cfiCond114) V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI (cfiCond114) V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond114) V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond114) V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond114) V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond114) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond114) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond114) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond114) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond114) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond114) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond114) CFA_SP SP+-4
CFI (cfiCond114) CFA_XSP16 add(XSP16, 53)
CFI Block cfiCond115 Using cfiCommon0
CFI (cfiCond115) Function osal_msg_enqueue
CFI (cfiCond115) Conditional ??CrossCallReturnLabel_61, ??CrossCallReturnLabel_56
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+-4
CFI (cfiCond115) CFA_XSP16 add(XSP16, 9)
CFI Block cfiCond116 Using cfiCommon0
CFI (cfiCond116) Function osal_run_system
CFI (cfiCond116) Conditional ??CrossCallReturnLabel_61, ??CrossCallReturnLabel_57
CFI (cfiCond116) R6 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond116) VB load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond116) V0 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond116) V1 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+-4
CFI (cfiCond116) CFA_XSP16 add(XSP16, 10)
CFI Block cfiCond117 Using cfiCommon0
CFI (cfiCond117) Function _ltoa
CFI (cfiCond117) Conditional ??CrossCallReturnLabel_61, ??CrossCallReturnLabel_51
CFI (cfiCond117) R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
CFI (cfiCond117) VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
CFI (cfiCond117) V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
CFI (cfiCond117) V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
CFI (cfiCond117) V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
CFI (cfiCond117) V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI (cfiCond117) V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond117) V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond117) V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond117) V7 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+-4
CFI (cfiCond117) CFA_XSP16 add(XSP16, 53)
CFI Block cfiCond118 Using cfiCommon0
CFI (cfiCond118) Function _ltoa
CFI (cfiCond118) Conditional ??CrossCallReturnLabel_61, ??CrossCallReturnLabel_52
CFI (cfiCond118) R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
CFI (cfiCond118) VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
CFI (cfiCond118) V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
CFI (cfiCond118) V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
CFI (cfiCond118) V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
CFI (cfiCond118) V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI (cfiCond118) V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond118) V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond118) V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond118) V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond118) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond118) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond118) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond118) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond118) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond118) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond118) CFA_SP SP+-4
CFI (cfiCond118) CFA_XSP16 add(XSP16, 53)
CFI Block cfiCond119 Using cfiCommon0
CFI (cfiCond119) Function _ltoa
CFI (cfiCond119) Conditional ??CrossCallReturnLabel_61, ??CrossCallReturnLabel_53
CFI (cfiCond119) R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
CFI (cfiCond119) VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
CFI (cfiCond119) V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
CFI (cfiCond119) V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
CFI (cfiCond119) V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
CFI (cfiCond119) V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI (cfiCond119) V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond119) V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond119) V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond119) V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond119) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond119) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond119) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond119) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond119) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond119) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond119) CFA_SP SP+-4
CFI (cfiCond119) CFA_XSP16 add(XSP16, 53)
CFI Block cfiCond120 Using cfiCommon0
CFI (cfiCond120) Function osal_msg_find
CFI (cfiCond120) Conditional ??CrossCallReturnLabel_61, ??CrossCallReturnLabel_54
CFI (cfiCond120) DPL0 Frame(CFA_SP, 4)
CFI (cfiCond120) DPH0 Frame(CFA_SP, 5)
CFI (cfiCond120) CFA_SP SP+-9
CFI Block cfiCond121 Using cfiCommon0
CFI (cfiCond121) Function osal_msg_dequeue
CFI (cfiCond121) Conditional ??CrossCallReturnLabel_61, ??CrossCallReturnLabel_55
CFI (cfiCond121) R6 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond121) VB load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond121) V0 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond121) V1 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+-4
CFI (cfiCond121) CFA_XSP16 add(XSP16, 10)
CFI Block cfiPicker122 Using cfiCommon1
CFI (cfiPicker122) NoFunction
CFI (cfiPicker122) Picker
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
MOV R3,A
RET
CFI EndBlock cfiCond108
CFI EndBlock cfiCond109
CFI EndBlock cfiCond110
CFI EndBlock cfiCond111
CFI EndBlock cfiCond112
CFI EndBlock cfiCond113
CFI EndBlock cfiCond114
CFI EndBlock cfiCond115
CFI EndBlock cfiCond116
CFI EndBlock cfiCond117
CFI EndBlock cfiCond118
CFI EndBlock cfiCond119
CFI EndBlock cfiCond120
CFI EndBlock cfiCond121
CFI EndBlock cfiPicker122
// 713
// 714 /*********************************************************************
// 715 * @fn osal_msg_push
// 716 *
// 717 * @brief
// 718 *
// 719 * This function pushes an OSAL message to the head of an OSAL
// 720 * queue.
// 721 *
// 722 * @param osal_msg_q_t *q_ptr - OSAL queue
// 723 * @param void *msg_ptr - OSAL message
// 724 *
// 725 * @return none
// 726 */
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
// 727 void osal_msg_push( osal_msg_q_t *q_ptr, void *msg_ptr )
osal_msg_push:
CFI Block cfiBlock123 Using cfiCommon0
CFI Function osal_msg_push
CODE
// 728 {
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
// 729 halIntState_t intState;
// 730
// 731 // Hold off interrupts
// 732 HAL_ENTER_CRITICAL_SECTION(intState);
MOV R0,0xa8+0x0
CLR 0xa8.7
// 733
// 734 // Push message to head of queue
// 735 OSAL_MSG_NEXT( msg_ptr ) = *q_ptr;
MOV DPL,R2
MOV DPH,R3
MOVX A,@DPTR
MOV R6,A
INC DPTR
MOVX A,@DPTR
MOV R7,A
LCALL ?Subroutine23 & 0xFFFF
??CrossCallReturnLabel_30:
LCALL ??Subroutine37_0 & 0xFFFF
??CrossCallReturnLabel_65:
LCALL ?Subroutine18 & 0xFFFF
// 736 *q_ptr = msg_ptr;
??CrossCallReturnLabel_43:
MOV A,R4
MOVX @DPTR,A
INC DPTR
MOV A,R5
MOVX @DPTR,A
// 737
// 738 // Re-enable interrupts
// 739 HAL_EXIT_CRITICAL_SECTION(intState);
MOV A,R0
MOV C,0xE0 /* A */.7
LJMP ??Subroutine30_0 & 0xFFFF
CFI EndBlock cfiBlock123
REQUIRE _A_IEN0
// 740 }
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
?Subroutine23:
CFI Block cfiCond124 Using cfiCommon0
CFI Function osal_msg_enqueue
CFI Conditional ??CrossCallReturnLabel_29
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+-2
CFI CFA_XSP16 add(XSP16, 9)
CFI Block cfiCond125 Using cfiCommon0
CFI (cfiCond125) Function osal_msg_push
CFI (cfiCond125) Conditional ??CrossCallReturnLabel_30
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+-2
CFI (cfiCond125) CFA_XSP16 add(XSP16, 9)
CFI Block cfiCond126 Using cfiCommon0
CFI (cfiCond126) Function osal_msg_extract
CFI (cfiCond126) Conditional ??CrossCallReturnLabel_31
CFI (cfiCond126) R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond126) VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond126) V0 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+-2
CFI (cfiCond126) CFA_XSP16 add(XSP16, 9)
CFI Block cfiCond127 Using cfiCommon0
CFI (cfiCond127) Function osal_msg_extract
CFI (cfiCond127) Conditional ??CrossCallReturnLabel_32
CFI (cfiCond127) R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond127) VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond127) V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond127) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond127) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond127) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond127) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond127) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond127) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond127) CFA_SP SP+-2
CFI (cfiCond127) CFA_XSP16 add(XSP16, 9)
CFI Block cfiCond128 Using cfiCommon0
CFI (cfiCond128) Function osal_msg_extract
CFI (cfiCond128) Conditional ??CrossCallReturnLabel_33
CFI (cfiCond128) R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond128) VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond128) V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond128) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond128) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond128) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond128) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond128) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond128) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond128) CFA_SP SP+-2
CFI (cfiCond128) CFA_XSP16 add(XSP16, 9)
CFI Block cfiPicker129 Using cfiCommon1
CFI (cfiPicker129) NoFunction
CFI (cfiPicker129) Picker
MOV A,R4
LCALL ??Subroutine38_0 & 0xFFFF
??CrossCallReturnLabel_77:
MOV A,R5
RET
CFI EndBlock cfiCond124
CFI EndBlock cfiCond125
CFI EndBlock cfiCond126
CFI EndBlock cfiCond127
CFI EndBlock cfiCond128
CFI EndBlock cfiPicker129
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
?Subroutine22:
CFI Block cfiCond130 Using cfiCommon0
CFI Function osal_msg_receive
CFI Conditional ??CrossCallReturnLabel_70
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-12)))
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI V3 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+-2
CFI CFA_XSP16 add(XSP16, 12)
CFI Block cfiCond131 Using cfiCommon0
CFI (cfiCond131) Function osal_msg_enqueue
CFI (cfiCond131) Conditional ??CrossCallReturnLabel_71
CFI (cfiCond131) R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond131) VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond131) V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond131) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond131) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond131) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond131) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond131) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond131) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond131) CFA_SP SP+-2
CFI (cfiCond131) CFA_XSP16 add(XSP16, 9)
CFI Block cfiCond132 Using cfiCommon0
CFI (cfiCond132) Function osal_msg_enqueue_max
CFI (cfiCond132) Conditional ??CrossCallReturnLabel_72
CFI (cfiCond132) R6 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond132) VB load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond132) V0 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond132) V1 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond132) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond132) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond132) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond132) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond132) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond132) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond132) CFA_SP SP+-2
CFI (cfiCond132) CFA_XSP16 add(XSP16, 10)
CFI Block cfiCond133 Using cfiCommon0
CFI (cfiCond133) Function osal_msg_enqueue_max
CFI (cfiCond133) Conditional ??CrossCallReturnLabel_73
CFI (cfiCond133) R6 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond133) VB load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond133) V0 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond133) V1 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond133) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond133) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond133) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond133) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond133) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond133) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond133) CFA_SP SP+-2
CFI (cfiCond133) CFA_XSP16 add(XSP16, 10)
CFI Block cfiPicker134 Using cfiCommon1
CFI (cfiPicker134) NoFunction
CFI (cfiPicker134) Picker
MOV A,R0
ADD A,#-0x5
CFI EndBlock cfiCond130
CFI EndBlock cfiCond131
CFI EndBlock cfiCond132
CFI EndBlock cfiCond133
CFI EndBlock cfiPicker134
REQUIRE ??Subroutine36_0
; // Fall through to label ??Subroutine36_0
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
??Subroutine36_0:
CFI Block cfiCond135 Using cfiCommon0
CFI Function osal_msg_receive
CFI Conditional ??CrossCallReturnLabel_69
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-12)))
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI V3 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+-2
CFI CFA_XSP16 add(XSP16, 12)
CFI Block cfiCond136 Using cfiCommon0
CFI (cfiCond136) Function osal_msg_receive
CFI (cfiCond136) Conditional ??CrossCallReturnLabel_70
CFI (cfiCond136) R6 load(1, XDATA, add(CFA_XSP16, literal(-12)))
CFI (cfiCond136) VB load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI (cfiCond136) V0 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond136) V1 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond136) V2 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond136) V3 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond136) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond136) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond136) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond136) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond136) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond136) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond136) CFA_SP SP+-2
CFI (cfiCond136) CFA_XSP16 add(XSP16, 12)
CFI Block cfiCond137 Using cfiCommon0
CFI (cfiCond137) Function osal_msg_enqueue
CFI (cfiCond137) Conditional ??CrossCallReturnLabel_71
CFI (cfiCond137) R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond137) VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond137) V0 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+-2
CFI (cfiCond137) CFA_XSP16 add(XSP16, 9)
CFI Block cfiCond138 Using cfiCommon0
CFI (cfiCond138) Function osal_msg_enqueue_max
CFI (cfiCond138) Conditional ??CrossCallReturnLabel_72
CFI (cfiCond138) R6 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond138) VB load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond138) V0 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond138) V1 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond138) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond138) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond138) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond138) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond138) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond138) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond138) CFA_SP SP+-2
CFI (cfiCond138) CFA_XSP16 add(XSP16, 10)
CFI Block cfiCond139 Using cfiCommon0
CFI (cfiCond139) Function osal_msg_enqueue_max
CFI (cfiCond139) Conditional ??CrossCallReturnLabel_73
CFI (cfiCond139) R6 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond139) VB load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond139) V0 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond139) V1 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond139) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond139) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond139) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond139) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond139) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond139) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond139) CFA_SP SP+-2
CFI (cfiCond139) CFA_XSP16 add(XSP16, 10)
CFI Block cfiPicker140 Using cfiCommon1
CFI (cfiPicker140) NoFunction
CFI (cfiPicker140) Picker
MOV DPL,A
MOV A,R1
CFI EndBlock cfiCond135
CFI EndBlock cfiCond136
CFI EndBlock cfiCond137
CFI EndBlock cfiCond138
CFI EndBlock cfiCond139
CFI EndBlock cfiPicker140
REQUIRE ??Subroutine37_0
; // Fall through to label ??Subroutine37_0
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
??Subroutine37_0:
CFI Block cfiCond141 Using cfiCommon0
CFI Function osal_msg_send
CFI Conditional ??CrossCallReturnLabel_62
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+-2
CFI CFA_XSP16 add(XSP16, 9)
CFI Block cfiCond142 Using cfiCommon0
CFI (cfiCond142) Function osal_msg_find
CFI (cfiCond142) Conditional ??CrossCallReturnLabel_63
CFI (cfiCond142) DPL0 Frame(CFA_SP, 4)
CFI (cfiCond142) DPH0 Frame(CFA_SP, 5)
CFI (cfiCond142) CFA_SP SP+-7
CFI Block cfiCond143 Using cfiCommon0
CFI (cfiCond143) Function osal_msg_enqueue
CFI (cfiCond143) Conditional ??CrossCallReturnLabel_64
CFI (cfiCond143) R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond143) VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond143) V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond143) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond143) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond143) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond143) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond143) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond143) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond143) CFA_SP SP+-2
CFI (cfiCond143) CFA_XSP16 add(XSP16, 9)
CFI Block cfiCond144 Using cfiCommon0
CFI (cfiCond144) Function osal_msg_push
CFI (cfiCond144) Conditional ??CrossCallReturnLabel_65
CFI (cfiCond144) R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond144) VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond144) V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond144) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond144) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond144) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond144) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond144) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond144) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond144) CFA_SP SP+-2
CFI (cfiCond144) CFA_XSP16 add(XSP16, 9)
CFI Block cfiCond145 Using cfiCommon0
CFI (cfiCond145) Function osal_msg_extract
CFI (cfiCond145) Conditional ??CrossCallReturnLabel_66
CFI (cfiCond145) R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond145) VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond145) V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond145) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond145) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond145) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond145) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond145) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond145) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond145) CFA_SP SP+-2
CFI (cfiCond145) CFA_XSP16 add(XSP16, 9)
CFI Block cfiCond146 Using cfiCommon0
CFI (cfiCond146) Function osal_msg_extract
CFI (cfiCond146) Conditional ??CrossCallReturnLabel_67
CFI (cfiCond146) R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond146) VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond146) V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond146) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond146) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond146) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond146) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond146) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond146) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond146) CFA_SP SP+-2
CFI (cfiCond146) CFA_XSP16 add(XSP16, 9)
CFI Block cfiCond147 Using cfiCommon0
CFI (cfiCond147) Function osal_msg_extract
CFI (cfiCond147) Conditional ??CrossCallReturnLabel_68
CFI (cfiCond147) R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond147) VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond147) V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond147) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond147) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond147) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond147) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond147) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond147) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond147) CFA_SP SP+-2
CFI (cfiCond147) CFA_XSP16 add(XSP16, 9)
CFI Block cfiCond148 Using cfiCommon0
CFI (cfiCond148) Function osal_msg_receive
CFI (cfiCond148) Conditional ??CrossCallReturnLabel_69
CFI (cfiCond148) R6 load(1, XDATA, add(CFA_XSP16, literal(-12)))
CFI (cfiCond148) VB load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI (cfiCond148) V0 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond148) V1 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond148) V2 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond148) V3 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond148) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond148) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond148) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond148) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond148) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond148) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond148) CFA_SP SP+-2
CFI (cfiCond148) CFA_XSP16 add(XSP16, 12)
CFI Block cfiCond149 Using cfiCommon0
CFI (cfiCond149) Function osal_msg_receive
CFI (cfiCond149) Conditional ??CrossCallReturnLabel_70
CFI (cfiCond149) R6 load(1, XDATA, add(CFA_XSP16, literal(-12)))
CFI (cfiCond149) VB load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI (cfiCond149) V0 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond149) V1 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond149) V2 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond149) V3 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond149) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond149) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond149) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond149) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond149) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond149) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond149) CFA_SP SP+-2
CFI (cfiCond149) CFA_XSP16 add(XSP16, 12)
CFI Block cfiCond150 Using cfiCommon0
CFI (cfiCond150) Function osal_msg_enqueue
CFI (cfiCond150) Conditional ??CrossCallReturnLabel_71
CFI (cfiCond150) R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond150) VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond150) V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond150) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond150) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond150) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond150) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond150) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond150) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond150) CFA_SP SP+-2
CFI (cfiCond150) CFA_XSP16 add(XSP16, 9)
CFI Block cfiCond151 Using cfiCommon0
CFI (cfiCond151) Function osal_msg_enqueue_max
CFI (cfiCond151) Conditional ??CrossCallReturnLabel_72
CFI (cfiCond151) R6 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond151) VB load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond151) V0 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond151) V1 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond151) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond151) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond151) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond151) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond151) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond151) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond151) CFA_SP SP+-2
CFI (cfiCond151) CFA_XSP16 add(XSP16, 10)
CFI Block cfiCond152 Using cfiCommon0
CFI (cfiCond152) Function osal_msg_enqueue_max
CFI (cfiCond152) Conditional ??CrossCallReturnLabel_73
CFI (cfiCond152) R6 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond152) VB load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond152) V0 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond152) V1 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond152) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond152) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond152) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond152) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond152) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond152) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond152) CFA_SP SP+-2
CFI (cfiCond152) CFA_XSP16 add(XSP16, 10)
CFI Block cfiPicker153 Using cfiCommon1
CFI (cfiPicker153) NoFunction
CFI (cfiPicker153) Picker
ADDC A,#-0x1
MOV DPH,A
RET
CFI EndBlock cfiCond141
CFI EndBlock cfiCond142
CFI EndBlock cfiCond143
CFI EndBlock cfiCond144
CFI EndBlock cfiCond145
CFI EndBlock cfiCond146
CFI EndBlock cfiCond147
CFI EndBlock cfiCond148
CFI EndBlock cfiCond149
CFI EndBlock cfiCond150
CFI EndBlock cfiCond151
CFI EndBlock cfiCond152
CFI EndBlock cfiPicker153
// 741
// 742 /*********************************************************************
// 743 * @fn osal_msg_extract
// 744 *
// 745 * @brief
// 746 *
// 747 * This function extracts and removes an OSAL message from the
// 748 * middle of an OSAL queue.
// 749 *
// 750 * @param osal_msg_q_t *q_ptr - OSAL queue
// 751 * @param void *msg_ptr - OSAL message to be extracted
// 752 * @param void *prev_ptr - OSAL message before msg_ptr in queue
// 753 *
// 754 * @return none
// 755 */
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
// 756 void osal_msg_extract( osal_msg_q_t *q_ptr, void *msg_ptr, void *prev_ptr )
osal_msg_extract:
CFI Block cfiBlock154 Using cfiCommon0
CFI Function osal_msg_extract
CODE
// 757 {
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
// 758 halIntState_t intState;
// 759
// 760 // Hold off interrupts
// 761 HAL_ENTER_CRITICAL_SECTION(intState);
MOV C,0xa8.7
CLR A
RLC A
MOV R6,A
CLR 0xa8.7
// 762
// 763 if ( msg_ptr == *q_ptr )
MOV DPL,R2
MOV DPH,R3
LCALL ??Subroutine34_0 & 0xFFFF
??CrossCallReturnLabel_46:
MOV A,R4
XRL A,R0
JNZ ??osal_msg_extract_0
MOV A,R5
XRL A,R1
??osal_msg_extract_0:
JNZ ??osal_msg_extract_1
// 764 {
// 765 // remove from first
// 766 *q_ptr = OSAL_MSG_NEXT( msg_ptr );
LCALL ?Subroutine23 & 0xFFFF
// 767 }
??CrossCallReturnLabel_31:
LCALL ??Subroutine33_0 & 0xFFFF
??CrossCallReturnLabel_47:
MOV DPL,R2
MOV DPH,R3
SJMP ??CrossCallReturnLabel_66
// 768 else
// 769 {
// 770 // remove from middle
// 771 OSAL_MSG_NEXT( prev_ptr ) = OSAL_MSG_NEXT( msg_ptr );
??osal_msg_extract_1:
LCALL ?Subroutine23 & 0xFFFF
// 772 }
??CrossCallReturnLabel_32:
LCALL ??Subroutine33_0 & 0xFFFF
??CrossCallReturnLabel_48:
MOV A,#0x9
LCALL ?XSTACK_DISP0_8
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
XCH A,R2
LCALL ??Subroutine38_0 & 0xFFFF
??CrossCallReturnLabel_75:
MOV A,R2
LCALL ??Subroutine37_0 & 0xFFFF
??CrossCallReturnLabel_66:
MOV A,R0
MOVX @DPTR,A
INC DPTR
MOV A,R1
MOVX @DPTR,A
// 773 OSAL_MSG_NEXT( msg_ptr ) = NULL;
LCALL ?Subroutine23 & 0xFFFF
??CrossCallReturnLabel_33:
LCALL ??Subroutine37_0 & 0xFFFF
??CrossCallReturnLabel_67:
CLR A
MOVX @DPTR,A
INC DPTR
MOVX @DPTR,A
// 774 OSAL_MSG_ID( msg_ptr ) = TASK_NO_TASK;
MOV A,R4
ADD A,#-0x1
MOV DPL,A
MOV A,R5
LCALL ??Subroutine37_0 & 0xFFFF
??CrossCallReturnLabel_68:
MOV A,#-0x1
LJMP ?Subroutine1 & 0xFFFF
CFI EndBlock cfiBlock154
REQUIRE _A_IEN0
// 775
// 776 // Re-enable interrupts
// 777 HAL_EXIT_CRITICAL_SECTION(intState);
// 778 }
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
?Subroutine29:
CFI Block cfiCond155 Using cfiCommon0
CFI Function osal_msg_send
CFI Conditional ??CrossCallReturnLabel_78
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+-2
CFI CFA_XSP16 add(XSP16, 9)
CFI Block cfiCond156 Using cfiCommon0
CFI (cfiCond156) Function osal_msg_find
CFI (cfiCond156) Conditional ??CrossCallReturnLabel_79
CFI (cfiCond156) DPL0 Frame(CFA_SP, 4)
CFI (cfiCond156) DPH0 Frame(CFA_SP, 5)
CFI (cfiCond156) CFA_SP SP+-7
CFI Block cfiPicker157 Using cfiCommon1
CFI (cfiPicker157) NoFunction
CFI (cfiPicker157) Picker
MOV A,R2
CFI EndBlock cfiCond155
CFI EndBlock cfiCond156
CFI EndBlock cfiPicker157
REQUIRE ??Subroutine38_0
; // Fall through to label ??Subroutine38_0
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
??Subroutine38_0:
CFI Block cfiCond158 Using cfiCommon0
CFI Function osal_msg_enqueue
CFI Conditional ??CrossCallReturnLabel_74
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+-2
CFI CFA_XSP16 add(XSP16, 9)
CFI Block cfiCond159 Using cfiCommon0
CFI (cfiCond159) Function osal_msg_enqueue
CFI (cfiCond159) Conditional ??CrossCallReturnLabel_76, ??CrossCallReturnLabel_49
CFI (cfiCond159) R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond159) VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond159) V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond159) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond159) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond159) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond159) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond159) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond159) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond159) CFA_SP SP+-4
CFI (cfiCond159) CFA_XSP16 add(XSP16, 9)
CFI Block cfiCond160 Using cfiCommon0
CFI (cfiCond160) Function osal_msg_enqueue_max
CFI (cfiCond160) Conditional ??CrossCallReturnLabel_76, ??CrossCallReturnLabel_50
CFI (cfiCond160) R6 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond160) VB load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond160) V0 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond160) V1 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond160) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond160) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond160) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond160) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond160) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond160) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond160) CFA_SP SP+-4
CFI (cfiCond160) CFA_XSP16 add(XSP16, 10)
CFI Block cfiCond161 Using cfiCommon0
CFI (cfiCond161) Function osal_msg_enqueue
CFI (cfiCond161) Conditional ??CrossCallReturnLabel_77, ??CrossCallReturnLabel_29
CFI (cfiCond161) R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond161) VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond161) V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond161) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond161) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond161) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond161) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond161) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond161) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond161) CFA_SP SP+-4
CFI (cfiCond161) CFA_XSP16 add(XSP16, 9)
CFI Block cfiCond162 Using cfiCommon0
CFI (cfiCond162) Function osal_msg_push
CFI (cfiCond162) Conditional ??CrossCallReturnLabel_77, ??CrossCallReturnLabel_30
CFI (cfiCond162) R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond162) VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond162) V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond162) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond162) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond162) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond162) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond162) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond162) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond162) CFA_SP SP+-4
CFI (cfiCond162) CFA_XSP16 add(XSP16, 9)
CFI Block cfiCond163 Using cfiCommon0
CFI (cfiCond163) Function osal_msg_extract
CFI (cfiCond163) Conditional ??CrossCallReturnLabel_77, ??CrossCallReturnLabel_31
CFI (cfiCond163) R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond163) VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond163) V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond163) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond163) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond163) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond163) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond163) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond163) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond163) CFA_SP SP+-4
CFI (cfiCond163) CFA_XSP16 add(XSP16, 9)
CFI Block cfiCond164 Using cfiCommon0
CFI (cfiCond164) Function osal_msg_extract
CFI (cfiCond164) Conditional ??CrossCallReturnLabel_77, ??CrossCallReturnLabel_32
CFI (cfiCond164) R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond164) VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond164) V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond164) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond164) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond164) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond164) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond164) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond164) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond164) CFA_SP SP+-4
CFI (cfiCond164) CFA_XSP16 add(XSP16, 9)
CFI Block cfiCond165 Using cfiCommon0
CFI (cfiCond165) Function osal_msg_extract
CFI (cfiCond165) Conditional ??CrossCallReturnLabel_77, ??CrossCallReturnLabel_33
CFI (cfiCond165) R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond165) VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond165) V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond165) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond165) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond165) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond165) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond165) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond165) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond165) CFA_SP SP+-4
CFI (cfiCond165) CFA_XSP16 add(XSP16, 9)
CFI Block cfiCond166 Using cfiCommon0
CFI (cfiCond166) Function osal_msg_extract
CFI (cfiCond166) Conditional ??CrossCallReturnLabel_75
CFI (cfiCond166) R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond166) VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond166) V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond166) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond166) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond166) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond166) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond166) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond166) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond166) CFA_SP SP+-2
CFI (cfiCond166) CFA_XSP16 add(XSP16, 9)
CFI Block cfiCond167 Using cfiCommon0
CFI (cfiCond167) Function osal_msg_send
CFI (cfiCond167) Conditional ??CrossCallReturnLabel_78
CFI (cfiCond167) R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond167) VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond167) V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond167) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond167) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond167) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond167) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond167) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond167) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond167) CFA_SP SP+-2
CFI (cfiCond167) CFA_XSP16 add(XSP16, 9)
CFI Block cfiCond168 Using cfiCommon0
CFI (cfiCond168) Function osal_msg_find
CFI (cfiCond168) Conditional ??CrossCallReturnLabel_79
CFI (cfiCond168) DPL0 Frame(CFA_SP, 4)
CFI (cfiCond168) DPH0 Frame(CFA_SP, 5)
CFI (cfiCond168) CFA_SP SP+-7
CFI Block cfiPicker169 Using cfiCommon1
CFI (cfiPicker169) NoFunction
CFI (cfiPicker169) Picker
ADD A,#-0x5
MOV DPL,A
RET
CFI EndBlock cfiCond158
CFI EndBlock cfiCond159
CFI EndBlock cfiCond160
CFI EndBlock cfiCond161
CFI EndBlock cfiCond162
CFI EndBlock cfiCond163
CFI EndBlock cfiCond164
CFI EndBlock cfiCond165
CFI EndBlock cfiCond166
CFI EndBlock cfiCond167
CFI EndBlock cfiCond168
CFI EndBlock cfiPicker169
// 779
// 780 /*********************************************************************
// 781 * @fn osal_msg_enqueue_max
// 782 *
// 783 * @brief
// 784 *
// 785 * This function enqueues an OSAL message into an OSAL queue if
// 786 * the length of the queue is less than max.
// 787 *
// 788 * @param osal_msg_q_t *q_ptr - OSAL queue
// 789 * @param void *msg_ptr - OSAL message
// 790 * @param uint8 max - maximum length of queue
// 791 *
// 792 * @return TRUE if message was enqueued, FALSE otherwise
// 793 */
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
// 794 uint8 osal_msg_enqueue_max( osal_msg_q_t *q_ptr, void *msg_ptr, uint8 max )
osal_msg_enqueue_max:
CFI Block cfiBlock170 Using cfiCommon0
CFI Function osal_msg_enqueue_max
CODE
// 795 {
REQUIRE ?V0
REQUIRE ?V1
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 ?V0,R2
MOV ?V1,R3
MOV A,R1
MOV R6,A
// 796 void *list;
// 797 uint8 ret = FALSE;
MOV R2,#0x0
// 798 halIntState_t intState;
// 799
// 800 // Hold off interrupts
// 801 HAL_ENTER_CRITICAL_SECTION(intState);
MOV C,0xa8.7
CLR A
RLC A
MOV R3,A
CLR 0xa8.7
// 802
// 803 // If first message in queue
// 804 if ( *q_ptr == NULL )
MOV DPL,?V0
MOV DPH,?V1
LCALL ??Subroutine39_0 & 0xFFFF
??CrossCallReturnLabel_83:
JNZ ??CrossCallReturnLabel_50
// 805 {
// 806 *q_ptr = msg_ptr;
MOV DPL,?V0
MOV DPH,?V1
SJMP ??CrossCallReturnLabel_73
// 807 ret = TRUE;
// 808 }
// 809 else
// 810 {
// 811 // Find end of queue or max
// 812 list = *q_ptr;
// 813 max--;
// 814 while ( (OSAL_MSG_NEXT( list ) != NULL) && (max > 0) )
??osal_msg_enqueue_max_0:
MOV A,R6
JZ ??osal_msg_enqueue_max_1
// 815 {
// 816 list = OSAL_MSG_NEXT( list );
LCALL ?Subroutine11 & 0xFFFF
// 817 max--;
??CrossCallReturnLabel_50:
DEC R6
// 818 }
LCALL ?Subroutine22 & 0xFFFF
??CrossCallReturnLabel_72:
MOVX A,@DPTR
MOV ?V0,A
INC DPTR
MOVX A,@DPTR
MOV ?V1,A
MOV A,?V0
ORL A,?V1
JNZ ??osal_msg_enqueue_max_0
// 819
// 820 // Add message to end of queue if max not reached
// 821 if ( max != 0 )
MOV A,R6
JZ ??osal_msg_enqueue_max_1
// 822 {
// 823 OSAL_MSG_NEXT( list ) = msg_ptr;
LCALL ?Subroutine22 & 0xFFFF
??CrossCallReturnLabel_73:
MOV A,R4
MOVX @DPTR,A
INC DPTR
MOV A,R5
MOVX @DPTR,A
// 824 ret = TRUE;
MOV R2,#0x1
// 825 }
// 826 }
// 827
// 828 // Re-enable interrupts
// 829 HAL_EXIT_CRITICAL_SECTION(intState);
??osal_msg_enqueue_max_1:
MOV A,R3
MOV C,0xE0 /* A */.0
MOV 0xa8.7,C
// 830
// 831 return ret;
MOV A,R2
MOV R1,A
LJMP ?Subroutine3 & 0xFFFF
CFI EndBlock cfiBlock170
REQUIRE _A_IEN0
// 832 }
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
?Subroutine6:
CFI Block cfiCond171 Using cfiCommon0
CFI Function _ltoa
CFI Conditional ??CrossCallReturnLabel_85
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+-2
CFI CFA_XSP16 add(XSP16, 53)
CFI Block cfiCond172 Using cfiCommon0
CFI (cfiCond172) Function _ltoa
CFI (cfiCond172) Conditional ??CrossCallReturnLabel_86
CFI (cfiCond172) R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
CFI (cfiCond172) VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
CFI (cfiCond172) V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
CFI (cfiCond172) V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
CFI (cfiCond172) V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
CFI (cfiCond172) V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI (cfiCond172) V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond172) V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond172) V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond172) V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond172) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond172) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond172) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond172) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond172) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond172) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond172) CFA_SP SP+-2
CFI (cfiCond172) CFA_XSP16 add(XSP16, 53)
CFI Block cfiCond173 Using cfiCommon0
CFI (cfiCond173) Function _ltoa
CFI (cfiCond173) Conditional ??CrossCallReturnLabel_87
CFI (cfiCond173) R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
CFI (cfiCond173) VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
CFI (cfiCond173) V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
CFI (cfiCond173) V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
CFI (cfiCond173) V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
CFI (cfiCond173) V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI (cfiCond173) V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond173) V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond173) V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond173) V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond173) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond173) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond173) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond173) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond173) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond173) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond173) CFA_SP SP+-2
CFI (cfiCond173) CFA_XSP16 add(XSP16, 53)
CFI Block cfiPicker174 Using cfiCommon1
CFI (cfiPicker174) NoFunction
CFI (cfiPicker174) Picker
MOV DPL,?XSP + 0
MOV DPH,?XSP + 1
CFI EndBlock cfiCond171
CFI EndBlock cfiCond172
CFI EndBlock cfiCond173
CFI EndBlock cfiPicker174
REQUIRE ??Subroutine39_0
; // Fall through to label ??Subroutine39_0
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
??Subroutine39_0:
CFI Block cfiCond175 Using cfiCommon0
CFI Function osal_msg_send
CFI Conditional ??CrossCallReturnLabel_81
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+-2
CFI CFA_XSP16 add(XSP16, 9)
CFI Block cfiCond176 Using cfiCommon0
CFI (cfiCond176) Function osal_msg_receive
CFI (cfiCond176) Conditional ??CrossCallReturnLabel_80
CFI (cfiCond176) R6 load(1, XDATA, add(CFA_XSP16, literal(-12)))
CFI (cfiCond176) VB load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI (cfiCond176) V0 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond176) V1 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond176) V2 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond176) V3 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond176) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond176) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond176) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond176) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond176) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond176) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond176) CFA_SP SP+-2
CFI (cfiCond176) CFA_XSP16 add(XSP16, 12)
CFI Block cfiCond177 Using cfiCommon0
CFI (cfiCond177) Function osal_msg_enqueue
CFI (cfiCond177) Conditional ??CrossCallReturnLabel_82
CFI (cfiCond177) R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond177) VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond177) V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond177) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond177) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond177) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond177) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond177) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond177) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond177) CFA_SP SP+-2
CFI (cfiCond177) CFA_XSP16 add(XSP16, 9)
CFI Block cfiCond178 Using cfiCommon0
CFI (cfiCond178) Function osal_msg_enqueue_max
CFI (cfiCond178) Conditional ??CrossCallReturnLabel_83
CFI (cfiCond178) R6 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond178) VB load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond178) V0 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond178) V1 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond178) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond178) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond178) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond178) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond178) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond178) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond178) CFA_SP SP+-2
CFI (cfiCond178) CFA_XSP16 add(XSP16, 10)
CFI Block cfiCond179 Using cfiCommon0
CFI (cfiCond179) Function osal_run_system
CFI (cfiCond179) Conditional ??CrossCallReturnLabel_84
CFI (cfiCond179) R6 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond179) VB load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond179) V0 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond179) V1 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond179) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond179) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond179) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond179) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond179) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond179) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond179) CFA_SP SP+-2
CFI (cfiCond179) CFA_XSP16 add(XSP16, 10)
CFI Block cfiCond180 Using cfiCommon0
CFI (cfiCond180) Function _ltoa
CFI (cfiCond180) Conditional ??CrossCallReturnLabel_85
CFI (cfiCond180) R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
CFI (cfiCond180) VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
CFI (cfiCond180) V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
CFI (cfiCond180) V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
CFI (cfiCond180) V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
CFI (cfiCond180) V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI (cfiCond180) V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond180) V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond180) V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond180) V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond180) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond180) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond180) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond180) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond180) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond180) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond180) CFA_SP SP+-2
CFI (cfiCond180) CFA_XSP16 add(XSP16, 53)
CFI Block cfiCond181 Using cfiCommon0
CFI (cfiCond181) Function _ltoa
CFI (cfiCond181) Conditional ??CrossCallReturnLabel_86
CFI (cfiCond181) R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
CFI (cfiCond181) VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
CFI (cfiCond181) V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
CFI (cfiCond181) V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
CFI (cfiCond181) V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
CFI (cfiCond181) V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI (cfiCond181) V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond181) V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond181) V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond181) V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond181) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond181) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond181) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond181) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond181) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond181) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond181) CFA_SP SP+-2
CFI (cfiCond181) CFA_XSP16 add(XSP16, 53)
CFI Block cfiCond182 Using cfiCommon0
CFI (cfiCond182) Function _ltoa
CFI (cfiCond182) Conditional ??CrossCallReturnLabel_87
CFI (cfiCond182) R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
CFI (cfiCond182) VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
CFI (cfiCond182) V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
CFI (cfiCond182) V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
CFI (cfiCond182) V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
CFI (cfiCond182) V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI (cfiCond182) V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond182) V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond182) V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond182) V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond182) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond182) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond182) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond182) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond182) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond182) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond182) CFA_SP SP+-2
CFI (cfiCond182) CFA_XSP16 add(XSP16, 53)
CFI Block cfiPicker183 Using cfiCommon1
CFI (cfiPicker183) NoFunction
CFI (cfiPicker183) Picker
MOVX A,@DPTR
MOV R0,A
INC DPTR
MOVX A,@DPTR
MOV R1,A
MOV A,R0
ORL A,R1
RET
CFI EndBlock cfiCond175
CFI EndBlock cfiCond176
CFI EndBlock cfiCond177
CFI EndBlock cfiCond178
CFI EndBlock cfiCond179
CFI EndBlock cfiCond180
CFI EndBlock cfiCond181
CFI EndBlock cfiCond182
CFI EndBlock cfiPicker183
// 833
// 834 /*********************************************************************
// 835 * @fn osal_set_event
// 836 *
// 837 * @brief
// 838 *
// 839 * This function is called to set the event flags for a task. The
// 840 * event passed in is OR'd into the task's event variable.
// 841 *
// 842 * @param uint8 task_id - receiving tasks ID
// 843 * @param uint8 event_flag - what event to set
// 844 *
// 845 * @return SUCCESS, INVALID_TASK
// 846 */
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
// 847 uint8 osal_set_event( uint8 task_id, uint16 event_flag )
osal_set_event:
CFI Block cfiBlock184 Using cfiCommon0
CFI Function osal_set_event
CODE
// 848 {
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
// 849 if ( task_id < tasksCnt )
MOV DPTR,#tasksCnt
MOVX A,@DPTR
MOV R0,A
MOV A,R1
CLR C
SUBB A,R0
JNC ??osal_set_event_0
// 850 {
// 851 halIntState_t intState;
// 852 HAL_ENTER_CRITICAL_SECTION(intState); // Hold off interrupts
MOV R4,0xa8+0x0
CLR 0xa8.7
// 853 tasksEvents[task_id] |= event_flag; // Stuff the event bit(s)
MOV A,R1
ADD A,R1
MOV R0,A
CLR A
RLC A
MOV R1,A
MOV DPTR,#tasksEvents
MOVX A,@DPTR
ADD A,R0
MOV R5,A
INC DPTR
MOVX A,@DPTR
ADDC A,R1
MOV DPL,R5
MOV DPH,A
MOVX A,@DPTR
ORL A,R2
MOVX @DPTR,A
INC DPTR
MOVX A,@DPTR
ORL A,R3
MOVX @DPTR,A
// 854 HAL_EXIT_CRITICAL_SECTION(intState); // Release interrupts
MOV A,R4
MOV C,0xE0 /* A */.7
MOV 0xa8.7,C
// 855 return ( SUCCESS );
MOV R1,#0x0
SJMP ??osal_set_event_1
// 856 }
// 857 else
// 858 {
// 859 return ( INVALID_TASK );
??osal_set_event_0:
MOV R1,#0x3
// 860 }
??osal_set_event_1:
LJMP ??Subroutine31_0 & 0xFFFF
CFI EndBlock cfiBlock184
REQUIRE _A_IEN0
// 861 }
// 862
// 863 /*********************************************************************
// 864 * @fn osal_clear_event
// 865 *
// 866 * @brief
// 867 *
// 868 * This function is called to clear the event flags for a task. The
// 869 * event passed in is masked out of the task's event variable.
// 870 *
// 871 * @param uint8 task_id - receiving tasks ID
// 872 * @param uint8 event_flag - what event to clear
// 873 *
// 874 * @return SUCCESS, INVALID_TASK
// 875 */
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
// 876 uint8 osal_clear_event( uint8 task_id, uint16 event_flag )
osal_clear_event:
CFI Block cfiBlock185 Using cfiCommon0
CFI Function osal_clear_event
CODE
// 877 {
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
// 878 if ( task_id < tasksCnt )
MOV DPTR,#tasksCnt
MOVX A,@DPTR
MOV R0,A
MOV A,R1
CLR C
SUBB A,R0
JNC ??osal_clear_event_0
// 879 {
// 880 halIntState_t intState;
// 881 HAL_ENTER_CRITICAL_SECTION(intState); // Hold off interrupts
MOV R6,0xa8+0x0
CLR 0xa8.7
// 882 tasksEvents[task_id] &= ~(event_flag); // Clear the event bit(s)
MOV A,R2
CPL A
MOV R4,A
MOV A,R3
CPL A
MOV R5,A
MOV A,R1
ADD A,R1
LCALL ?Subroutine13 & 0xFFFF
??CrossCallReturnLabel_15:
MOVX A,@DPTR
ANL A,R4
MOVX @DPTR,A
INC DPTR
MOVX A,@DPTR
ANL A,R5
MOVX @DPTR,A
// 883 HAL_EXIT_CRITICAL_SECTION(intState); // Release interrupts
MOV A,R6
MOV C,0xE0 /* A */.7
MOV 0xa8.7,C
// 884 return ( SUCCESS );
MOV R1,#0x0
SJMP ??osal_clear_event_1
// 885 }
// 886 else
// 887 {
// 888 return ( INVALID_TASK );
??osal_clear_event_0:
MOV R1,#0x3
// 889 }
??osal_clear_event_1:
LJMP ??Subroutine31_0 & 0xFFFF
CFI EndBlock cfiBlock185
REQUIRE _A_IEN0
// 890 }
// 891
// 892 /*********************************************************************
// 893 * @fn osal_isr_register
// 894 *
// 895 * @brief
// 896 *
// 897 * This function is called to register a service routine with an
// 898 * interrupt. When the interrupt occurs, this service routine is called.
// 899 *
// 900 * @param uint8 interrupt_id - Interrupt number
// 901 * @param void (*isr_ptr)( uint8* ) - function pointer to ISR
// 902 *
// 903 * @return SUCCESS, INVALID_INTERRUPT_ID,
// 904 */
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
// 905 uint8 osal_isr_register( uint8 interrupt_id, void (*isr_ptr)( uint8* ) )
osal_isr_register:
CFI Block cfiBlock186 Using cfiCommon0
CFI Function osal_isr_register
CODE
// 906 {
; Saved register size: 0
; Auto size: 0
// 907 // Remove these statements when functionality is complete
// 908 (void)interrupt_id;
// 909 (void)isr_ptr;
// 910 return ( SUCCESS );
MOV R1,#0x0
LJMP ?BRET
// 911 }
CFI EndBlock cfiBlock186
// 912
// 913 /*********************************************************************
// 914 * @fn osal_int_enable
// 915 *
// 916 * @brief
// 917 *
// 918 * This function is called to enable an interrupt. Once enabled,
// 919 * occurrence of the interrupt causes the service routine associated
// 920 * with that interrupt to be called.
// 921 *
// 922 * If INTS_ALL is the interrupt_id, interrupts (in general) are enabled.
// 923 * If a single interrupt is passed in, then interrupts still have
// 924 * to be enabled with another call to INTS_ALL.
// 925 *
// 926 * @param uint8 interrupt_id - Interrupt number
// 927 *
// 928 * @return SUCCESS or INVALID_INTERRUPT_ID
// 929 */
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
// 930 uint8 osal_int_enable( uint8 interrupt_id )
osal_int_enable:
CFI Block cfiBlock187 Using cfiCommon0
CFI Function osal_int_enable
CODE
// 931 {
; Saved register size: 0
; Auto size: 0
MOV A,R1
MOV R0,A
// 932
// 933 if ( interrupt_id == INTS_ALL )
MOV A,#-0x1
XRL A,R0
JNZ ??osal_int_enable_0
// 934 {
// 935 HAL_ENABLE_INTERRUPTS();
SETB 0xa8.7
// 936 return ( SUCCESS );
MOV R1,#0x0
SJMP ??osal_int_enable_1
// 937 }
// 938 else
// 939 {
// 940 return ( INVALID_INTERRUPT_ID );
??osal_int_enable_0:
MOV R1,#0x7
??osal_int_enable_1:
LJMP ?BRET
CFI EndBlock cfiBlock187
REQUIRE _A_IEN0
// 941 }
// 942 }
// 943
// 944 /*********************************************************************
// 945 * @fn osal_int_disable
// 946 *
// 947 * @brief
// 948 *
// 949 * This function is called to disable an interrupt. When a disabled
// 950 * interrupt occurs, the service routine associated with that
// 951 * interrupt is not called.
// 952 *
// 953 * If INTS_ALL is the interrupt_id, interrupts (in general) are disabled.
// 954 * If a single interrupt is passed in, then just that interrupt is disabled.
// 955 *
// 956 * @param uint8 interrupt_id - Interrupt number
// 957 *
// 958 * @return SUCCESS or INVALID_INTERRUPT_ID
// 959 */
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
// 960 uint8 osal_int_disable( uint8 interrupt_id )
osal_int_disable:
CFI Block cfiBlock188 Using cfiCommon0
CFI Function osal_int_disable
CODE
// 961 {
; Saved register size: 0
; Auto size: 0
MOV A,R1
MOV R0,A
// 962
// 963 if ( interrupt_id == INTS_ALL )
MOV A,#-0x1
XRL A,R0
JNZ ??osal_int_disable_0
// 964 {
// 965 HAL_DISABLE_INTERRUPTS();
CLR 0xa8.7
// 966 return ( SUCCESS );
MOV R1,#0x0
SJMP ??osal_int_disable_1
// 967 }
// 968 else
// 969 {
// 970 return ( INVALID_INTERRUPT_ID );
??osal_int_disable_0:
MOV R1,#0x7
??osal_int_disable_1:
LJMP ?BRET
CFI EndBlock cfiBlock188
REQUIRE _A_IEN0
// 971 }
// 972 }
// 973
// 974 /*********************************************************************
// 975 * @fn osal_init_system
// 976 *
// 977 * @brief
// 978 *
// 979 * This function initializes the "task" system by creating the
// 980 * tasks defined in the task table (OSAL_Tasks.h).
// 981 *
// 982 * @param void
// 983 *
// 984 * @return SUCCESS
// 985 */
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
// 986 uint8 osal_init_system( void )
osal_init_system:
CFI Block cfiBlock189 Using cfiCommon0
CFI Function osal_init_system
CODE
// 987 {
FUNCALL osal_init_system, osal_mem_init
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_init_system, osalTimerInit
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_init_system, osal_pwrmgr_init
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_init_system, osal_mem_alloc
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_init_system, osal_memset
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_init_system, osalInitTasks
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_init_system, osal_mem_kick
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
// 988 // Initialize the Memory Allocation System
// 989 osal_mem_init();
; Setup parameters for call to function osal_mem_init
LCALL `??osal_mem_init::?relay`; Banked call to: osal_mem_init
// 990
// 991 // Initialize the message queue
// 992 osal_qHead = NULL;
MOV DPTR,#osal_qHead
CLR A
MOVX @DPTR,A
INC DPTR
MOVX @DPTR,A
// 993
// 994 // Initialize the timers
// 995 osalTimerInit();
; Setup parameters for call to function osalTimerInit
LCALL `??osalTimerInit::?relay`; Banked call to: osalTimerInit
// 996
// 997 // Initialize the Power Management System
// 998 osal_pwrmgr_init();
; Setup parameters for call to function osal_pwrmgr_init
LCALL `??osal_pwrmgr_init::?relay`; Banked call to: osal_pwrmgr_init
// 999
// 1000 // Initialize the system tasks.
// 1001 tasksEvents = (uint16 *)osal_mem_alloc( sizeof( uint16 ) * tasksCnt);
MOV DPTR,#tasksCnt
MOVX A,@DPTR
ADD A,0xE0 /* A */
MOV R6,A
CLR A
RLC A
MOV R7,A
; Setup parameters for call to function osal_mem_alloc
MOV A,R6
MOV R2,A
MOV A,R7
MOV R3,A
LCALL `??osal_mem_alloc::?relay`; Banked call to: osal_mem_alloc
MOV DPTR,#tasksEvents
MOV A,R2
MOVX @DPTR,A
INC DPTR
MOV A,R3
MOVX @DPTR,A
// 1002 osal_memset( tasksEvents, 0, (sizeof( uint16 ) * tasksCnt));
; Setup parameters for call to function osal_memset
MOV A,R6
MOV R4,A
MOV A,R7
MOV R5,A
MOV R1,#0x0
LCALL `??osal_memset::?relay`; Banked call to: osal_memset
// 1003 osalInitTasks();
; Setup parameters for call to function osalInitTasks
LCALL `??osalInitTasks::?relay`; Banked call to: osalInitTasks
// 1004
// 1005 // Setup efficient search for the first free block of heap.
// 1006 osal_mem_kick();
; Setup parameters for call to function osal_mem_kick
LCALL `??osal_mem_kick::?relay`; Banked call to: osal_mem_kick
// 1007
// 1008 return ( SUCCESS );
MOV R1,#0x0
LJMP ??Subroutine31_0 & 0xFFFF
// 1009 }
CFI EndBlock cfiBlock189
// 1010
// 1011 /*********************************************************************
// 1012 * @fn osal_start_system
// 1013 *
// 1014 * @brief
// 1015 *
// 1016 * This function is the main loop function of the task system (if
// 1017 * ZBIT and UBIT are not defined). This Function doesn't return.
// 1018 *
// 1019 * @param void
// 1020 *
// 1021 * @return none
// 1022 */
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
// 1023 void osal_start_system( void )
osal_start_system:
CFI Block cfiBlock190 Using cfiCommon0
CFI Function osal_start_system
CODE
// 1024 {
FUNCALL osal_start_system, osal_run_system
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
// 1025 #if !defined ( ZBIT ) && !defined ( UBIT )
// 1026 for(;;) // Forever Loop
// 1027 #endif
// 1028 {
// 1029 osal_run_system();
??osal_start_system_0:
; Setup parameters for call to function osal_run_system
LCALL `??osal_run_system::?relay`; Banked call to: osal_run_system
SJMP ??osal_start_system_0
// 1030 }
// 1031 }
CFI EndBlock cfiBlock190
// 1032
// 1033 /*********************************************************************
// 1034 * @fn osal_run_system
// 1035 *
// 1036 * @brief
// 1037 *
// 1038 * This function will make one pass through the OSAL taskEvents table
// 1039 * and call the task_event_processor() function for the first task that
// 1040 * is found with at least one event pending. If there are no pending
// 1041 * events (all tasks), this function puts the processor into Sleep.
// 1042 *
// 1043 * @param void
// 1044 *
// 1045 * @return none
// 1046 */
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
// 1047 void osal_run_system( void )
osal_run_system:
CFI Block cfiBlock191 Using cfiCommon0
CFI Function osal_run_system
CODE
// 1048 {
FUNCALL osal_run_system, osalTimeUpdate
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
FUNCALL osal_run_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
REQUIRE ?V0
REQUIRE ?V1
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
// 1049 uint8 idx = 0;
MOV ?V0,#0x0
// 1050
// 1051 osalTimeUpdate();
; Setup parameters for call to function osalTimeUpdate
LCALL `??osalTimeUpdate::?relay`; Banked call to: osalTimeUpdate
// 1052 Hal_ProcessPoll();
; Setup parameters for call to function Hal_ProcessPoll
LCALL `??Hal_ProcessPoll::?relay`; Banked call to: Hal_ProcessPoll
// 1053
// 1054 do {
// 1055 if (tasksEvents[idx]) // Task is highest priority that is ready.
??osal_run_system_0:
MOV R0,?V0
MOV A,R0
ADD A,R0
LCALL ?Subroutine13 & 0xFFFF
// 1056 {
// 1057 break;
// 1058 }
// 1059 } while (++idx < tasksCnt);
??CrossCallReturnLabel_16:
LCALL ??Subroutine39_0 & 0xFFFF
??CrossCallReturnLabel_84:
JNZ ??osal_run_system_1
INC ?V0
MOV DPTR,#tasksCnt
MOVX A,@DPTR
MOV R0,A
MOV A,?V0
CLR C
SUBB A,R0
JC ??osal_run_system_0
// 1060
// 1061 if (idx < tasksCnt)
??osal_run_system_1:
MOV DPTR,#tasksCnt
MOVX A,@DPTR
MOV R0,A
MOV A,?V0
CLR C
SUBB A,R0
JNC ??osal_run_system_2
// 1062 {
// 1063 uint16 events;
// 1064 halIntState_t intState;
// 1065
// 1066 HAL_ENTER_CRITICAL_SECTION(intState);
MOV R4,0xa8+0x0
CLR 0xa8.7
// 1067 events = tasksEvents[idx];
MOV R6,?V0
MOV A,R6
ADD A,R6
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
MOV DPL,R0
LCALL ?Subroutine15 & 0xFFFF
// 1068 tasksEvents[idx] = 0; // Clear the Events for this task.
??CrossCallReturnLabel_57:
MOV DPL,R0
MOV DPH,R1
CLR A
MOVX @DPTR,A
INC DPTR
MOVX @DPTR,A
// 1069 HAL_EXIT_CRITICAL_SECTION(intState);
MOV A,R4
MOV C,0xE0 /* A */.7
MOV 0xa8.7,C
// 1070
// 1071 activeTaskID = idx;
MOV A,?V0
MOV DPTR,#activeTaskID
MOVX @DPTR,A
// 1072 events = (tasksArr[idx])( idx, events );
; Setup parameters for indirect call
MOV R1,A
MOV A,#tasksArr & 0xff
ADD A,R6
MOV DPL,A
MOV A,#(tasksArr >> 8) & 0xff
ADDC A,R7
MOV DPH,A
LCALL ?Subroutine16 & 0xFFFF
??CrossCallReturnLabel_20:
LCALL ?CALL_IND
// 1073 activeTaskID = TASK_NO_TASK;
MOV DPTR,#activeTaskID
MOV A,#-0x1
MOVX @DPTR,A
// 1074
// 1075 HAL_ENTER_CRITICAL_SECTION(intState);
MOV R0,0xa8+0x0
CLR 0xa8.7
// 1076 tasksEvents[idx] |= events; // Add back unprocessed events to the current task.
MOV DPTR,#tasksEvents
MOVX A,@DPTR
ADD A,R6
MOV R1,A
INC DPTR
MOVX A,@DPTR
ADDC A,R7
MOV DPL,R1
MOV DPH,A
MOVX A,@DPTR
ORL A,R2
MOVX @DPTR,A
INC DPTR
MOVX A,@DPTR
ORL A,R3
MOVX @DPTR,A
// 1077 HAL_EXIT_CRITICAL_SECTION(intState);
MOV A,R0
MOV C,0xE0 /* A */.7
MOV 0xa8.7,C
// 1078 }
// 1079 #if defined( POWER_SAVING )
// 1080 else // Complete pass through all task events with no activity?
// 1081 {
// 1082 osal_pwrmgr_powerconserve(); // Put the processor/system into sleep
// 1083 }
// 1084 #endif
// 1085
// 1086 /* Yield in case cooperative scheduling is being used. */
// 1087 #if defined (configUSE_PREEMPTION) && (configUSE_PREEMPTION == 0)
// 1088 {
// 1089 osal_task_yield();
// 1090 }
// 1091 #endif
// 1092 }
??osal_run_system_2:
LJMP ?Subroutine3 & 0xFFFF
CFI EndBlock cfiBlock191
REQUIRE _A_IEN0
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
?Subroutine16:
CFI Block cfiCond192 Using cfiCommon0
CFI Function _ltoa
CFI Conditional ??CrossCallReturnLabel_19
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+-2
CFI CFA_XSP16 add(XSP16, 53)
CFI Block cfiCond193 Using cfiCommon0
CFI (cfiCond193) Function osal_run_system
CFI (cfiCond193) Conditional ??CrossCallReturnLabel_20
CFI (cfiCond193) R6 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond193) VB load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond193) V0 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond193) V1 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond193) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond193) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond193) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond193) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond193) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond193) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond193) CFA_SP SP+-2
CFI (cfiCond193) CFA_XSP16 add(XSP16, 10)
CFI Block cfiPicker194 Using cfiCommon1
CFI (cfiPicker194) NoFunction
CFI (cfiPicker194) Picker
MOVX A,@DPTR
MOV R0,A
INC DPTR
MOVX A,@DPTR
MOV DPH,A
MOV DPL,R0
RET
CFI EndBlock cfiCond192
CFI EndBlock cfiCond193
CFI EndBlock cfiPicker194
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
?Subroutine13:
CFI Block cfiCond195 Using cfiCommon0
CFI Function osal_clear_event
CFI Conditional ??CrossCallReturnLabel_15
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+-2
CFI CFA_XSP16 add(XSP16, 9)
CFI Block cfiCond196 Using cfiCommon0
CFI (cfiCond196) Function osal_run_system
CFI (cfiCond196) Conditional ??CrossCallReturnLabel_16
CFI (cfiCond196) R6 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond196) VB load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond196) V0 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond196) V1 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond196) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond196) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond196) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond196) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond196) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond196) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond196) CFA_SP SP+-2
CFI (cfiCond196) CFA_XSP16 add(XSP16, 10)
CFI Block cfiPicker197 Using cfiCommon1
CFI (cfiPicker197) NoFunction
CFI (cfiPicker197) Picker
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
RET
CFI EndBlock cfiCond195
CFI EndBlock cfiCond196
CFI EndBlock cfiPicker197
// 1093
// 1094 /*********************************************************************
// 1095 * @fn osal_buffer_uint32
// 1096 *
// 1097 * @brief
// 1098 *
// 1099 * Buffer an uint32 value - LSB first.
// 1100 *
// 1101 * @param buf - buffer
// 1102 * @param val - uint32 value
// 1103 *
// 1104 * @return pointer to end of destination buffer
// 1105 */
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
// 1106 uint8* osal_buffer_uint32( uint8 *buf, uint32 val )
osal_buffer_uint32:
CFI Block cfiBlock198 Using cfiCommon0
CFI Function osal_buffer_uint32
CODE
// 1107 {
REQUIRE ?V0
REQUIRE ?V1
REQUIRE ?V2
REQUIRE ?V3
REQUIRE ?V4
REQUIRE ?V5
REQUIRE ?V6
REQUIRE ?V7
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
MOV A,#0x10
LCALL ?XSTACK_DISP0_8
MOV R0,#?V4
LCALL ?L_MOV_X
// 1108 *buf++ = BREAK_UINT32( val, 0 );
LCALL ?Subroutine21 & 0xFFFF
// 1109 *buf++ = BREAK_UINT32( val, 1 );
// 1110 *buf++ = BREAK_UINT32( val, 2 );
??CrossCallReturnLabel_27:
MOV ?V0,?V4
MOV ?V2,?V6
MOV ?V3,?V7
MOV A,#0x10
MOV R0,#?V0
LCALL ?UL_SHR
MOV DPL,R2
MOV DPH,R3
INC DPTR
INC DPTR
MOV A,?V0
MOVX @DPTR,A
// 1111 *buf++ = BREAK_UINT32( val, 3 );
MOV A,#0x18
MOV R0,#?V4
LCALL ?UL_SHR
MOV DPL,R2
MOV DPH,R3
INC DPTR
INC DPTR
INC DPTR
MOV A,?V4
MOVX @DPTR,A
// 1112
// 1113 return buf;
MOV A,R2
ADD A,#0x4
MOV R2,A
JNC ??osal_buffer_uint32_0
INC R3
??osal_buffer_uint32_0:
CFI EndBlock cfiBlock198
REQUIRE ?Subroutine2
; // Fall through to label ?Subroutine2
// 1114 }
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
?Subroutine2:
CFI Block cfiBlock199 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 cfiBlock199
// 1115
// 1116 /*********************************************************************
// 1117 * @fn osal_buffer_uint24
// 1118 *
// 1119 * @brief
// 1120 *
// 1121 * Buffer an uint24 value - LSB first. Note that type uint24 is
// 1122 * typedef to uint32 in comdef.h
// 1123 *
// 1124 * @param buf - buffer
// 1125 * @param val - uint24 value
// 1126 *
// 1127 * @return pointer to end of destination buffer
// 1128 */
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
// 1129 uint8* osal_buffer_uint24( uint8 *buf, uint24 val )
osal_buffer_uint24:
CFI Block cfiBlock200 Using cfiCommon0
CFI Function osal_buffer_uint24
CODE
// 1130 {
REQUIRE ?V0
REQUIRE ?V1
REQUIRE ?V4
REQUIRE ?V5
REQUIRE ?V6
REQUIRE ?V7
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
MOV A,#0x10
LCALL ?XSTACK_DISP0_8
MOV R0,#?V4
LCALL ?L_MOV_X
// 1131 *buf++ = BREAK_UINT32( val, 0 );
LCALL ?Subroutine21 & 0xFFFF
// 1132 *buf++ = BREAK_UINT32( val, 1 );
// 1133 *buf++ = BREAK_UINT32( val, 2 );
??CrossCallReturnLabel_28:
MOV A,#0x10
MOV R0,#?V4
LCALL ?UL_SHR
MOV DPL,R2
MOV DPH,R3
INC DPTR
INC DPTR
MOV A,?V4
MOVX @DPTR,A
// 1134
// 1135 return buf;
MOV A,R2
ADD A,#0x3
MOV R2,A
JNC ??osal_buffer_uint24_0
INC R3
??osal_buffer_uint24_0:
SJMP ?Subroutine2
// 1136 }
CFI EndBlock cfiBlock200
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
?Subroutine21:
CFI Block cfiCond201 Using cfiCommon0
CFI Function osal_buffer_uint32
CFI Conditional ??CrossCallReturnLabel_27
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+-2
CFI CFA_XSP16 add(XSP16, 16)
CFI Block cfiCond202 Using cfiCommon0
CFI (cfiCond202) Function osal_buffer_uint24
CFI (cfiCond202) Conditional ??CrossCallReturnLabel_28
CFI (cfiCond202) R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
CFI (cfiCond202) VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
CFI (cfiCond202) V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
CFI (cfiCond202) V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
CFI (cfiCond202) V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
CFI (cfiCond202) V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI (cfiCond202) V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond202) V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond202) V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond202) V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond202) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond202) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond202) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond202) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond202) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond202) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond202) CFA_SP SP+-2
CFI (cfiCond202) CFA_XSP16 add(XSP16, 16)
CFI Block cfiPicker203 Using cfiCommon1
CFI (cfiPicker203) NoFunction
CFI (cfiPicker203) Picker
MOV DPL,R2
MOV DPH,R3
MOV A,?V4
MOVX @DPTR,A
MOV ?V1,?V5
MOV A,?V1
INC DPTR
MOVX @DPTR,A
RET
CFI EndBlock cfiCond201
CFI EndBlock cfiCond202
CFI EndBlock cfiPicker203
// 1137
// 1138 /*********************************************************************
// 1139 * @fn osal_isbufset
// 1140 *
// 1141 * @brief
// 1142 *
// 1143 * Is all of the array elements set to a value?
// 1144 *
// 1145 * @param buf - buffer to check
// 1146 * @param val - value to check each array element for
// 1147 * @param len - length to check
// 1148 *
// 1149 * @return TRUE if all "val"
// 1150 * FALSE otherwise
// 1151 */
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
// 1152 uint8 osal_isbufset( uint8 *buf, uint8 val, uint8 len )
osal_isbufset:
CFI Block cfiBlock204 Using cfiCommon0
CFI Function osal_isbufset
CODE
// 1153 {
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 R5,A
// 1154 uint8 x;
// 1155
// 1156 if ( buf == NULL )
MOV A,R2
ORL A,R3
JZ ??osal_isbufset_0
// 1157 {
// 1158 return ( FALSE );
// 1159 }
// 1160
// 1161 for ( x = 0; x < len; x++ )
MOV R0,#0x0
SJMP ??osal_isbufset_1
??osal_isbufset_2:
INC R0
??osal_isbufset_1:
MOV A,R0
CLR C
SUBB A,R4
JNC ??osal_isbufset_3
// 1162 {
// 1163 // Check for non-initialized value
// 1164 if ( buf[x] != val )
MOV A,R0
MOV R6,A
MOV A,R2
ADD A,R6
MOV DPL,A
CLR A
ADDC A,R3
MOV DPH,A
MOVX A,@DPTR
XRL A,R5
JZ ??osal_isbufset_2
// 1165 {
// 1166 return ( FALSE );
??osal_isbufset_0:
MOV R1,#0x0
SJMP ??osal_isbufset_4
// 1167 }
// 1168 }
// 1169 return ( TRUE );
??osal_isbufset_3:
MOV R1,#0x1
??osal_isbufset_4:
LJMP ??Subroutine31_0 & 0xFFFF
// 1170 }
CFI EndBlock cfiBlock204
// 1171
// 1172 /*********************************************************************
// 1173 * @fn osal_self
// 1174 *
// 1175 * @brief
// 1176 *
// 1177 * This function returns the task ID of the current (active) task.
// 1178 *
// 1179 * @param void
// 1180 *
// 1181 * @return active task ID or TASK_NO_TASK if no task is active
// 1182 */
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
// 1183 uint8 osal_self( void )
osal_self:
CFI Block cfiBlock205 Using cfiCommon0
CFI Function osal_self
CODE
// 1184 {
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
// 1185 return ( activeTaskID );
MOV DPTR,#activeTaskID
MOVX A,@DPTR
MOV R1,A
LJMP ?Subroutine0 & 0xFFFF
// 1186 }
CFI EndBlock cfiBlock205
RSEG XDATA_ID:CODE:NOROOT(0)
`?<Initializer for activeTaskID>`:
DATA8
DB 255
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
`??osal_strlen::?relay`:
CODE
LCALL ?BDISPATCH
DATA24
DC24 osal_strlen
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
`??osal_memcpy::?relay`:
CODE
LCALL ?BDISPATCH
DATA24
DC24 osal_memcpy
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
`??osal_revmemcpy::?relay`:
CODE
LCALL ?BDISPATCH
DATA24
DC24 osal_revmemcpy
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
`??osal_memdup::?relay`:
CODE
LCALL ?BDISPATCH
DATA24
DC24 osal_memdup
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
`??osal_memcmp::?relay`:
CODE
LCALL ?BDISPATCH
DATA24
DC24 osal_memcmp
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
`??osal_memset::?relay`:
CODE
LCALL ?BDISPATCH
DATA24
DC24 osal_memset
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
`??osal_build_uint16::?relay`:
CODE
LCALL ?BDISPATCH
DATA24
DC24 osal_build_uint16
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
`??osal_build_uint32::?relay`:
CODE
LCALL ?BDISPATCH
DATA24
DC24 osal_build_uint32
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
`??_ltoa::?relay`:
CODE
LCALL ?BDISPATCH
DATA24
DC24 _ltoa
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
`??osal_rand::?relay`:
CODE
LCALL ?BDISPATCH
DATA24
DC24 osal_rand
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
`??osal_msg_allocate::?relay`:
CODE
LCALL ?BDISPATCH
DATA24
DC24 osal_msg_allocate
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
`??osal_msg_deallocate::?relay`:
CODE
LCALL ?BDISPATCH
DATA24
DC24 osal_msg_deallocate
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
`??osal_msg_send::?relay`:
CODE
LCALL ?BDISPATCH
DATA24
DC24 osal_msg_send
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
`??osal_msg_receive::?relay`:
CODE
LCALL ?BDISPATCH
DATA24
DC24 osal_msg_receive
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
`??osal_msg_find::?relay`:
CODE
LCALL ?BDISPATCH
DATA24
DC24 osal_msg_find
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
`??osal_msg_enqueue::?relay`:
CODE
LCALL ?BDISPATCH
DATA24
DC24 osal_msg_enqueue
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
`??osal_msg_dequeue::?relay`:
CODE
LCALL ?BDISPATCH
DATA24
DC24 osal_msg_dequeue
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
`??osal_msg_push::?relay`:
CODE
LCALL ?BDISPATCH
DATA24
DC24 osal_msg_push
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
`??osal_msg_extract::?relay`:
CODE
LCALL ?BDISPATCH
DATA24
DC24 osal_msg_extract
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
`??osal_msg_enqueue_max::?relay`:
CODE
LCALL ?BDISPATCH
DATA24
DC24 osal_msg_enqueue_max
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
`??osal_set_event::?relay`:
CODE
LCALL ?BDISPATCH
DATA24
DC24 osal_set_event
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
`??osal_clear_event::?relay`:
CODE
LCALL ?BDISPATCH
DATA24
DC24 osal_clear_event
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
`??osal_isr_register::?relay`:
CODE
LCALL ?BDISPATCH
DATA24
DC24 osal_isr_register
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
`??osal_int_enable::?relay`:
CODE
LCALL ?BDISPATCH
DATA24
DC24 osal_int_enable
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
`??osal_int_disable::?relay`:
CODE
LCALL ?BDISPATCH
DATA24
DC24 osal_int_disable
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
`??osal_init_system::?relay`:
CODE
LCALL ?BDISPATCH
DATA24
DC24 osal_init_system
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
`??osal_start_system::?relay`:
CODE
LCALL ?BDISPATCH
DATA24
DC24 osal_start_system
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
`??osal_run_system::?relay`:
CODE
LCALL ?BDISPATCH
DATA24
DC24 osal_run_system
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
`??osal_buffer_uint32::?relay`:
CODE
LCALL ?BDISPATCH
DATA24
DC24 osal_buffer_uint32
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
`??osal_buffer_uint24::?relay`:
CODE
LCALL ?BDISPATCH
DATA24
DC24 osal_buffer_uint24
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
`??osal_isbufset::?relay`:
CODE
LCALL ?BDISPATCH
DATA24
DC24 osal_isbufset
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
`??osal_self::?relay`:
CODE
LCALL ?BDISPATCH
DATA24
DC24 osal_self
RSEG XDATA_ROM_C:CONST:REORDER:NOROOT(0)
DATA8
`?<Constant "">`:
DB ""
DB 0, 0, 0, 0, 0, 0, 0, 0
DB 0
RSEG XDATA_ROM_C:CONST:REORDER:NOROOT(0)
DATA8
`?<Constant "">_1`:
DB ""
DB 0, 0, 0, 0, 0, 0, 0, 0
DB 0
RSEG XDATA_ROM_C:CONST:REORDER:NOROOT(0)
DATA8
`?<Constant "">_2`:
DB ""
DB 0, 0, 0, 0, 0, 0, 0, 0
DB 0
RSEG XDATA_ROM_C:CONST:REORDER:NOROOT(0)
DATA16
`?<Constant "0">`:
DB "0"
RSEG XDATA_ROM_C:CONST:REORDER:NOROOT(0)
DATA32
__Constant_2710:
DD 10000
RSEG XDATA_ROM_C:CONST:REORDER:NOROOT(0)
DATA32
__Constant_5f5e100:
DD 100000000
END
// 1187
// 1188 /*********************************************************************
// 1189 */
//
// 2 680 bytes in segment BANKED_CODE
// 192 bytes in segment BANK_RELAYS
// 1 byte in segment SFR_AN
// 1 byte in segment XDATA_I
// 1 byte in segment XDATA_ID
// 40 bytes in segment XDATA_ROM_C
// 4 bytes in segment XDATA_Z
//
// 193 bytes of CODE memory
// 32 bytes of CONST memory (+ 8 bytes shared)
// 0 bytes of DATA memory (+ 1 byte shared)
// 2 680 bytes of HUGECODE memory
// 5 bytes of XDATA memory
//
//Errors: none
//Warnings: none