7926 lines
317 KiB
Plaintext
7926 lines
317 KiB
Plaintext
///////////////////////////////////////////////////////////////////////////////
|
||
//
|
||
// IAR C/C++ Compiler V10.30.1.6000 for 8051 23/Aug/2019 12:13:01
|
||
// 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\stack\nwk\BindingTable.c
|
||
// Command line =
|
||
// -f C:\Users\VULCAN\AppData\Local\Temp\EWBF5E.tmp
|
||
// (E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Components\stack\nwk\BindingTable.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\BindingTable.s51
|
||
//
|
||
///////////////////////////////////////////////////////////////////////////////
|
||
|
||
NAME BindingTable
|
||
|
||
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 ?V3
|
||
EXTERN ?V4
|
||
EXTERN ?V5
|
||
EXTERN ?V6
|
||
EXTERN ?ALLOC_XSTACK8
|
||
EXTERN ?BANKED_ENTER_XDATA
|
||
EXTERN ?BANKED_LEAVE_XDATA
|
||
EXTERN ?BDISPATCH
|
||
EXTERN ?BRET
|
||
EXTERN ?DEALLOC_XSTACK8
|
||
EXTERN ?PUSH_XSTACK8_C_TWO
|
||
EXTERN ?PUSH_XSTACK_I_THREE
|
||
EXTERN ?PUSH_XSTACK_I_TWO
|
||
EXTERN ?XSP
|
||
EXTERN ?XSTACK_DISP0_8
|
||
EXTERN ?XSTACK_DISP100_8
|
||
EXTERN ?XSTACK_DISP101_8
|
||
EXTERN ?XSTACK_DISP102_8
|
||
EXTERN __INIT_XDATA_Z
|
||
|
||
PUBLIC `??BindInitNV::?relay`
|
||
FUNCTION `??BindInitNV::?relay`,0203H
|
||
PUBLIC `??BindRestoreFromNV::?relay`
|
||
FUNCTION `??BindRestoreFromNV::?relay`,0203H
|
||
PUBLIC `??BindSetDefaultNV::?relay`
|
||
FUNCTION `??BindSetDefaultNV::?relay`,0203H
|
||
PUBLIC `??BindWriteNV::?relay`
|
||
FUNCTION `??BindWriteNV::?relay`,0203H
|
||
PUBLIC `??GetBindingTableEntry::?relay`
|
||
FUNCTION `??GetBindingTableEntry::?relay`,0203H
|
||
PUBLIC `??InitBindingTable::?relay`
|
||
FUNCTION `??InitBindingTable::?relay`,0203H
|
||
PUBLIC `??bindAddClusterIdToList::?relay`
|
||
FUNCTION `??bindAddClusterIdToList::?relay`,0203H
|
||
PUBLIC `??bindAddEntry::?relay`
|
||
FUNCTION `??bindAddEntry::?relay`,0203H
|
||
PUBLIC `??bindAddrIndexGet::?relay`
|
||
FUNCTION `??bindAddrIndexGet::?relay`,0203H
|
||
PUBLIC `??bindAddrMgrLocalLoad::?relay`
|
||
FUNCTION `??bindAddrMgrLocalLoad::?relay`,0203H
|
||
PUBLIC `??bindCapacity::?relay`
|
||
FUNCTION `??bindCapacity::?relay`,0203H
|
||
PUBLIC `??bindFind::?relay`
|
||
FUNCTION `??bindFind::?relay`,0203H
|
||
PUBLIC `??bindFindEmpty::?relay`
|
||
FUNCTION `??bindFindEmpty::?relay`,0203H
|
||
PUBLIC `??bindFindExisting::?relay`
|
||
FUNCTION `??bindFindExisting::?relay`,0203H
|
||
PUBLIC `??bindIsClusterIDinList::?relay`
|
||
FUNCTION `??bindIsClusterIDinList::?relay`,0203H
|
||
PUBLIC `??bindNumBoundTo::?relay`
|
||
FUNCTION `??bindNumBoundTo::?relay`,0203H
|
||
PUBLIC `??bindNumOfEntries::?relay`
|
||
FUNCTION `??bindNumOfEntries::?relay`,0203H
|
||
PUBLIC `??bindNumReflections::?relay`
|
||
FUNCTION `??bindNumReflections::?relay`,0203H
|
||
PUBLIC `??bindRemoveClusterIdFromList::?relay`
|
||
FUNCTION `??bindRemoveClusterIdFromList::?relay`,0203H
|
||
PUBLIC `??bindRemoveDev::?relay`
|
||
FUNCTION `??bindRemoveDev::?relay`,0203H
|
||
PUBLIC `??bindRemoveEntry::?relay`
|
||
FUNCTION `??bindRemoveEntry::?relay`,0203H
|
||
PUBLIC `??bindRemoveSrcDev::?relay`
|
||
FUNCTION `??bindRemoveSrcDev::?relay`,0203H
|
||
PUBLIC `??bindUpdateAddr::?relay`
|
||
FUNCTION `??bindUpdateAddr::?relay`,0203H
|
||
PUBLIC `??bindingAddrMgsHelperConvert::?relay`
|
||
FUNCTION `??bindingAddrMgsHelperConvert::?relay`,0203H
|
||
PUBLIC `??bindingAddrMgsHelperConvertShort::?relay`
|
||
FUNCTION `??bindingAddrMgsHelperConvertShort::?relay`,0203H
|
||
PUBLIC `??bindingAddrMgsHelperFind::?relay`
|
||
FUNCTION `??bindingAddrMgsHelperFind::?relay`,0203H
|
||
PUBLIC BindInitNV
|
||
FUNCTION BindInitNV,0a1603H
|
||
ARGFRAME XSTACK, 0, STACK
|
||
LOCFRAME ISTACK, 2, STACK
|
||
LOCFRAME XSTACK, 12, STACK
|
||
PUBLIC BindRestoreFromNV
|
||
FUNCTION BindRestoreFromNV,0a1603H
|
||
ARGFRAME XSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 41, STACK
|
||
PUBLIC BindSetDefaultNV
|
||
FUNCTION BindSetDefaultNV,0a1603H
|
||
ARGFRAME XSTACK, 10, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
LOCFRAME XSTACK, 16, STACK
|
||
PUBLIC BindWriteNV
|
||
FUNCTION BindWriteNV,0a1603H
|
||
ARGFRAME XSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 31, STACK
|
||
PUBLIC GetBindingTableEntry
|
||
FUNCTION GetBindingTableEntry,080203H
|
||
ARGFRAME XSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 11, STACK
|
||
PUBLIC InitBindingTable
|
||
FUNCTION InitBindingTable,0a1203H
|
||
ARGFRAME XSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 10, STACK
|
||
PUBLIC bindAddClusterIdToList
|
||
FUNCTION bindAddClusterIdToList,0203H
|
||
ARGFRAME XSTACK, 18, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
LOCFRAME XSTACK, 9, STACK
|
||
PUBLIC bindAddEntry
|
||
FUNCTION bindAddEntry,0a1603H
|
||
ARGFRAME XSTACK, 39, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
LOCFRAME ISTACK, 1, STACK
|
||
LOCFRAME XSTACK, 21, STACK
|
||
PUBLIC bindAddrIndexGet
|
||
FUNCTION bindAddrIndexGet,021203H
|
||
ARGFRAME XSTACK, 18, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
LOCFRAME ISTACK, 2, STACK
|
||
LOCFRAME XSTACK, 13, STACK
|
||
PUBLIC bindAddrMgrLocalLoad
|
||
FUNCTION bindAddrMgrLocalLoad,0a1203H
|
||
ARGFRAME XSTACK, 18, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
LOCFRAME XSTACK, 23, STACK
|
||
PUBLIC bindCapacity
|
||
FUNCTION bindCapacity,080203H
|
||
ARGFRAME XSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 11, STACK
|
||
PUBLIC bindFind
|
||
FUNCTION bindFind,0a1203H
|
||
ARGFRAME XSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 15, STACK
|
||
PUBLIC bindFindEmpty
|
||
FUNCTION bindFindEmpty,0203H
|
||
ARGFRAME XSTACK, 18, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
LOCFRAME ISTACK, 2, STACK
|
||
PUBLIC bindFindExisting
|
||
FUNCTION bindFindExisting,0a1203H
|
||
ARGFRAME XSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 12, STACK
|
||
PUBLIC bindIsClusterIDinList
|
||
FUNCTION bindIsClusterIDinList,0203H
|
||
ARGFRAME XSTACK, 18, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
LOCFRAME XSTACK, 9, STACK
|
||
PUBLIC bindNumBoundTo
|
||
FUNCTION bindNumBoundTo,0a1203H
|
||
ARGFRAME XSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 13, STACK
|
||
PUBLIC bindNumOfEntries
|
||
FUNCTION bindNumOfEntries,0603H
|
||
ARGFRAME XSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 9, STACK
|
||
PUBLIC bindNumReflections
|
||
FUNCTION bindNumReflections,0a1203H
|
||
ARGFRAME XSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 13, STACK
|
||
PUBLIC bindRemoveClusterIdFromList
|
||
FUNCTION bindRemoveClusterIdFromList,080203H
|
||
ARGFRAME XSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 11, STACK
|
||
PUBLIC bindRemoveDev
|
||
FUNCTION bindRemoveDev,0a1603H
|
||
ARGFRAME XSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 14, STACK
|
||
PUBLIC bindRemoveEntry
|
||
FUNCTION bindRemoveEntry,021203H
|
||
ARGFRAME XSTACK, 14, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
LOCFRAME ISTACK, 2, STACK
|
||
PUBLIC bindRemoveSrcDev
|
||
FUNCTION bindRemoveSrcDev,0a1203H
|
||
ARGFRAME XSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 9, STACK
|
||
PUBLIC bindUpdateAddr
|
||
FUNCTION bindUpdateAddr,0a1203H
|
||
ARGFRAME XSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 21, STACK
|
||
PUBLIC bindingAddrMgsHelperConvert
|
||
FUNCTION bindingAddrMgsHelperConvert,0a1203H
|
||
ARGFRAME XSTACK, 37, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
LOCFRAME XSTACK, 22, STACK
|
||
PUBLIC bindingAddrMgsHelperConvertShort
|
||
FUNCTION bindingAddrMgsHelperConvertShort,021203H
|
||
ARGFRAME XSTACK, 0, STACK
|
||
LOCFRAME ISTACK, 2, STACK
|
||
LOCFRAME XSTACK, 13, STACK
|
||
PUBLIC bindingAddrMgsHelperFind
|
||
FUNCTION bindingAddrMgsHelperFind,021203H
|
||
ARGFRAME XSTACK, 21, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
LOCFRAME ISTACK, 2, STACK
|
||
LOCFRAME XSTACK, 13, STACK
|
||
PUBLIC pBindInitNV
|
||
PUBLIC pBindRestoreFromNV
|
||
PUBLIC pBindSetDefaultNV
|
||
PUBLIC pBindWriteNV
|
||
PUBLIC pbindAddEntry
|
||
PUBLIC pbindNumOfEntries
|
||
PUBLIC pbindRemoveDev
|
||
|
||
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
|
||
|
||
AddrMgrEntryGet SYMBOL "AddrMgrEntryGet"
|
||
`??AddrMgrEntryGet::?relay` SYMBOL "?relay", AddrMgrEntryGet
|
||
AddrMgrEntryLookupExt SYMBOL "AddrMgrEntryLookupExt"
|
||
`??AddrMgrEntryLookupExt::?relay` SYMBOL "?relay", AddrMgrEntryLookupExt
|
||
AddrMgrEntryLookupNwk SYMBOL "AddrMgrEntryLookupNwk"
|
||
`??AddrMgrEntryLookupNwk::?relay` SYMBOL "?relay", AddrMgrEntryLookupNwk
|
||
AddrMgrEntryUpdate SYMBOL "AddrMgrEntryUpdate"
|
||
`??AddrMgrEntryUpdate::?relay` SYMBOL "?relay", AddrMgrEntryUpdate
|
||
AddrMgrExtAddrSet SYMBOL "AddrMgrExtAddrSet"
|
||
`??AddrMgrExtAddrSet::?relay` SYMBOL "?relay", AddrMgrExtAddrSet
|
||
NLME_GetCoordExtAddr SYMBOL "NLME_GetCoordExtAddr"
|
||
`??NLME_GetCoordExtAddr::?relay` SYMBOL "?relay", NLME_GetCoordExtAddr
|
||
NLME_GetCoordShortAddr SYMBOL "NLME_GetCoordShortAddr"
|
||
`??NLME_GetCoordShortAddr::?relay` SYMBOL "?relay", NLME_GetCoordShortAddr
|
||
NLME_GetExtAddr SYMBOL "NLME_GetExtAddr"
|
||
`??NLME_GetExtAddr::?relay` SYMBOL "?relay", NLME_GetExtAddr
|
||
osal_memcpy SYMBOL "osal_memcpy"
|
||
`??osal_memcpy::?relay` SYMBOL "?relay", osal_memcpy
|
||
osal_memset SYMBOL "osal_memset"
|
||
`??osal_memset::?relay` SYMBOL "?relay", osal_memset
|
||
osal_nv_item_init SYMBOL "osal_nv_item_init"
|
||
`??osal_nv_item_init::?relay` SYMBOL "?relay", osal_nv_item_init
|
||
osal_nv_read SYMBOL "osal_nv_read"
|
||
`??osal_nv_read::?relay` SYMBOL "?relay", osal_nv_read
|
||
osal_nv_write SYMBOL "osal_nv_write"
|
||
`??osal_nv_write::?relay` SYMBOL "?relay", osal_nv_write
|
||
sAddrExtCpy SYMBOL "sAddrExtCpy"
|
||
`??sAddrExtCpy::?relay` SYMBOL "?relay", sAddrExtCpy
|
||
BindInitNV SYMBOL "BindInitNV"
|
||
`??BindInitNV::?relay` SYMBOL "?relay", BindInitNV
|
||
BindRestoreFromNV SYMBOL "BindRestoreFromNV"
|
||
`??BindRestoreFromNV::?relay` SYMBOL "?relay", BindRestoreFromNV
|
||
BindSetDefaultNV SYMBOL "BindSetDefaultNV"
|
||
`??BindSetDefaultNV::?relay` SYMBOL "?relay", BindSetDefaultNV
|
||
BindWriteNV SYMBOL "BindWriteNV"
|
||
`??BindWriteNV::?relay` SYMBOL "?relay", BindWriteNV
|
||
GetBindingTableEntry SYMBOL "GetBindingTableEntry"
|
||
`??GetBindingTableEntry::?relay` SYMBOL "?relay", GetBindingTableEntry
|
||
InitBindingTable SYMBOL "InitBindingTable"
|
||
`??InitBindingTable::?relay` SYMBOL "?relay", InitBindingTable
|
||
bindAddClusterIdToList SYMBOL "bindAddClusterIdToList"
|
||
`??bindAddClusterIdToList::?relay` SYMBOL "?relay", bindAddClusterIdToList
|
||
bindAddEntry SYMBOL "bindAddEntry"
|
||
`??bindAddEntry::?relay` SYMBOL "?relay", bindAddEntry
|
||
bindAddrIndexGet SYMBOL "bindAddrIndexGet"
|
||
`??bindAddrIndexGet::?relay` SYMBOL "?relay", bindAddrIndexGet
|
||
bindAddrMgrLocalLoad SYMBOL "bindAddrMgrLocalLoad"
|
||
`??bindAddrMgrLocalLoad::?relay` SYMBOL "?relay", bindAddrMgrLocalLoad
|
||
bindCapacity SYMBOL "bindCapacity"
|
||
`??bindCapacity::?relay` SYMBOL "?relay", bindCapacity
|
||
bindFind SYMBOL "bindFind"
|
||
`??bindFind::?relay` SYMBOL "?relay", bindFind
|
||
bindFindEmpty SYMBOL "bindFindEmpty"
|
||
`??bindFindEmpty::?relay` SYMBOL "?relay", bindFindEmpty
|
||
bindFindExisting SYMBOL "bindFindExisting"
|
||
`??bindFindExisting::?relay` SYMBOL "?relay", bindFindExisting
|
||
bindIsClusterIDinList SYMBOL "bindIsClusterIDinList"
|
||
`??bindIsClusterIDinList::?relay` SYMBOL "?relay", bindIsClusterIDinList
|
||
bindNumBoundTo SYMBOL "bindNumBoundTo"
|
||
`??bindNumBoundTo::?relay` SYMBOL "?relay", bindNumBoundTo
|
||
bindNumOfEntries SYMBOL "bindNumOfEntries"
|
||
`??bindNumOfEntries::?relay` SYMBOL "?relay", bindNumOfEntries
|
||
bindNumReflections SYMBOL "bindNumReflections"
|
||
`??bindNumReflections::?relay` SYMBOL "?relay", bindNumReflections
|
||
bindRemoveClusterIdFromList SYMBOL "bindRemoveClusterIdFromList"
|
||
`??bindRemoveClusterIdFromList::?relay` SYMBOL "?relay", bindRemoveClusterIdFromList
|
||
bindRemoveDev SYMBOL "bindRemoveDev"
|
||
`??bindRemoveDev::?relay` SYMBOL "?relay", bindRemoveDev
|
||
bindRemoveEntry SYMBOL "bindRemoveEntry"
|
||
`??bindRemoveEntry::?relay` SYMBOL "?relay", bindRemoveEntry
|
||
bindRemoveSrcDev SYMBOL "bindRemoveSrcDev"
|
||
`??bindRemoveSrcDev::?relay` SYMBOL "?relay", bindRemoveSrcDev
|
||
bindUpdateAddr SYMBOL "bindUpdateAddr"
|
||
`??bindUpdateAddr::?relay` SYMBOL "?relay", bindUpdateAddr
|
||
bindingAddrMgsHelperConvert SYMBOL "bindingAddrMgsHelperConvert"
|
||
`??bindingAddrMgsHelperConvert::?relay` SYMBOL "?relay", bindingAddrMgsHelperConvert
|
||
bindingAddrMgsHelperConvertShort SYMBOL "bindingAddrMgsHelperConvertShort"
|
||
`??bindingAddrMgsHelperConvertShort::?relay` SYMBOL "?relay", bindingAddrMgsHelperConvertShort
|
||
bindingAddrMgsHelperFind SYMBOL "bindingAddrMgsHelperFind"
|
||
`??bindingAddrMgsHelperFind::?relay` SYMBOL "?relay", bindingAddrMgsHelperFind
|
||
|
||
EXTERN `??AddrMgrEntryGet::?relay`
|
||
FUNCTION `??AddrMgrEntryGet::?relay`,00H
|
||
EXTERN `??AddrMgrEntryLookupExt::?relay`
|
||
FUNCTION `??AddrMgrEntryLookupExt::?relay`,00H
|
||
EXTERN `??AddrMgrEntryLookupNwk::?relay`
|
||
FUNCTION `??AddrMgrEntryLookupNwk::?relay`,00H
|
||
EXTERN `??AddrMgrEntryUpdate::?relay`
|
||
FUNCTION `??AddrMgrEntryUpdate::?relay`,00H
|
||
EXTERN `??AddrMgrExtAddrSet::?relay`
|
||
FUNCTION `??AddrMgrExtAddrSet::?relay`,00H
|
||
EXTERN `??NLME_GetCoordExtAddr::?relay`
|
||
FUNCTION `??NLME_GetCoordExtAddr::?relay`,00H
|
||
EXTERN `??NLME_GetCoordShortAddr::?relay`
|
||
FUNCTION `??NLME_GetCoordShortAddr::?relay`,00H
|
||
EXTERN `??NLME_GetExtAddr::?relay`
|
||
FUNCTION `??NLME_GetExtAddr::?relay`,00H
|
||
EXTERN `??osal_memcpy::?relay`
|
||
FUNCTION `??osal_memcpy::?relay`,00H
|
||
EXTERN `??osal_memset::?relay`
|
||
FUNCTION `??osal_memset::?relay`,00H
|
||
EXTERN `??osal_nv_item_init::?relay`
|
||
FUNCTION `??osal_nv_item_init::?relay`,00H
|
||
EXTERN `??osal_nv_read::?relay`
|
||
FUNCTION `??osal_nv_read::?relay`,00H
|
||
EXTERN `??osal_nv_write::?relay`
|
||
FUNCTION `??osal_nv_write::?relay`,00H
|
||
EXTERN `??sAddrExtCpy::?relay`
|
||
FUNCTION `??sAddrExtCpy::?relay`,00H
|
||
EXTERN AddrMgrEntryGet
|
||
FUNCTION AddrMgrEntryGet,0202H
|
||
ARGFRAME ISTACK, 2, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 22, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
EXTERN AddrMgrEntryLookupExt
|
||
FUNCTION AddrMgrEntryLookupExt,0202H
|
||
ARGFRAME ISTACK, 2, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 13, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
EXTERN AddrMgrEntryLookupNwk
|
||
FUNCTION AddrMgrEntryLookupNwk,0202H
|
||
ARGFRAME ISTACK, 2, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 13, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
EXTERN AddrMgrEntryUpdate
|
||
FUNCTION AddrMgrEntryUpdate,0202H
|
||
ARGFRAME ISTACK, 2, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 23, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
EXTERN AddrMgrExtAddrSet
|
||
FUNCTION AddrMgrExtAddrSet,0202H
|
||
ARGFRAME ISTACK, 2, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 23, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
EXTERN BindingTable
|
||
EXTERN NLME_GetCoordExtAddr
|
||
FUNCTION NLME_GetCoordExtAddr,0202H
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 23, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
EXTERN NLME_GetCoordShortAddr
|
||
FUNCTION NLME_GetCoordShortAddr,0202H
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 23, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
EXTERN NLME_GetExtAddr
|
||
FUNCTION NLME_GetExtAddr,0202H
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 23, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
EXTERN _NIB
|
||
EXTERN gBIND_REC_SIZE
|
||
EXTERN gMAX_BINDING_CLUSTER_IDS
|
||
EXTERN gNWK_MAX_BINDING_ENTRIES
|
||
EXTERN osal_memcpy
|
||
FUNCTION osal_memcpy,0202H
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 30, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
EXTERN osal_memset
|
||
FUNCTION osal_memset,0202H
|
||
ARGFRAME ISTACK, 2, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 10, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
EXTERN osal_nv_item_init
|
||
FUNCTION osal_nv_item_init,0202H
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 12, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
EXTERN osal_nv_read
|
||
FUNCTION osal_nv_read,0202H
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 41, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
EXTERN osal_nv_write
|
||
FUNCTION osal_nv_write,0202H
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 31, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
EXTERN sAddrExtCpy
|
||
FUNCTION sAddrExtCpy,0202H
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 22, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
|
||
// E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Components\stack\nwk\BindingTable.c
|
||
// 1 /**************************************************************************************************
|
||
// 2 Filename: BindingTable.c
|
||
// 3 Revised: $Date: 2011-03-13 18:57:34 -0700 (Sun, 13 Mar 2011) $
|
||
// 4 Revision: $Revision: 25408 $
|
||
// 5
|
||
// 6 Description: Device binding table functions.
|
||
// 7
|
||
// 8
|
||
// 9 Copyright 2004-2011 Texas Instruments Incorporated. All rights reserved.
|
||
// 10
|
||
// 11 IMPORTANT: Your use of this Software is limited to those specific rights
|
||
// 12 granted under the terms of a software license agreement between the user
|
||
// 13 who downloaded the software, his/her employer (which must be your employer)
|
||
// 14 and Texas Instruments Incorporated (the "License"). You may not use this
|
||
// 15 Software unless you agree to abide by the terms of the License. The License
|
||
// 16 limits your use, and you acknowledge, that the Software may not be modified,
|
||
// 17 copied or distributed unless embedded on a Texas Instruments microcontroller
|
||
// 18 or used solely and exclusively in conjunction with a Texas Instruments radio
|
||
// 19 frequency transceiver, which is integrated into your product. Other than for
|
||
// 20 the foregoing purpose, you may not use, reproduce, copy, prepare derivative
|
||
// 21 works of, modify, distribute, perform, display or sell this Software and/or
|
||
// 22 its documentation for any purpose.
|
||
// 23
|
||
// 24 YOU FURTHER ACKNOWLEDGE AND AGREE THAT THE SOFTWARE AND DOCUMENTATION ARE
|
||
// 25 PROVIDED 揂S IS<49> WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED,
|
||
// 26 INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY, TITLE,
|
||
// 27 NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL
|
||
// 28 TEXAS INSTRUMENTS OR ITS LICENSORS BE LIABLE OR OBLIGATED UNDER CONTRACT,
|
||
// 29 NEGLIGENCE, STRICT LIABILITY, CONTRIBUTION, BREACH OF WARRANTY, OR OTHER
|
||
// 30 LEGAL EQUITABLE THEORY ANY DIRECT OR INDIRECT DAMAGES OR EXPENSES
|
||
// 31 INCLUDING BUT NOT LIMITED TO ANY INCIDENTAL, SPECIAL, INDIRECT, PUNITIVE
|
||
// 32 OR CONSEQUENTIAL DAMAGES, LOST PROFITS OR LOST DATA, COST OF PROCUREMENT
|
||
// 33 OF SUBSTITUTE GOODS, TECHNOLOGY, SERVICES, OR ANY CLAIMS BY THIRD PARTIES
|
||
// 34 (INCLUDING BUT NOT LIMITED TO ANY DEFENSE THEREOF), OR OTHER SIMILAR COSTS.
|
||
// 35
|
||
// 36 Should you have any questions regarding your right to use this Software,
|
||
// 37 contact Texas Instruments Incorporated at www.TI.com.
|
||
// 38 **************************************************************************************************/
|
||
// 39
|
||
// 40 /*********************************************************************
|
||
// 41 * INCLUDES
|
||
// 42 */
|
||
// 43 #include "ZComDef.h"
|
||
// 44 #include "OSAL.h"
|
||
// 45 #include "OSAL_Nv.h"
|
||
// 46 #include "nwk_globals.h"
|
||
// 47 #include "AddrMgr.h"
|
||
// 48 #include "BindingTable.h"
|
||
// 49
|
||
// 50 /*********************************************************************
|
||
// 51 * MACROS
|
||
// 52 */
|
||
// 53
|
||
// 54 /*********************************************************************
|
||
// 55 * CONSTANTS
|
||
// 56 */
|
||
// 57 #define NV_BIND_EMPTY 0xFF
|
||
// 58 #define NV_BIND_REC_SIZE (gBIND_REC_SIZE)
|
||
// 59 #define NV_BIND_ITEM_SIZE (gBIND_REC_SIZE * gNWK_MAX_BINDING_ENTRIES)
|
||
// 60
|
||
// 61 /*********************************************************************
|
||
// 62 * TYPEDEFS
|
||
// 63 */
|
||
// 64 typedef struct
|
||
// 65 {
|
||
// 66 uint8 srcEP;
|
||
// 67 uint16 srcIndex;
|
||
// 68 uint16 dstIndex;
|
||
// 69 uint8 dstEP;
|
||
// 70 uint8 dstAddrMode;
|
||
// 71 uint8 clusterIDs;
|
||
// 72 uint16* clusterIDList;
|
||
// 73 } bindFields_t;
|
||
// 74
|
||
// 75 /*********************************************************************
|
||
// 76 * GLOBAL VARIABLES
|
||
// 77 */
|
||
// 78
|
||
// 79 /*********************************************************************
|
||
// 80 * LOCAL FUNCTIONS
|
||
// 81 */
|
||
// 82 void BindAddrMgrCB( uint8 update, AddrMgrEntry_t *entryOld,
|
||
// 83 AddrMgrEntry_t *entryNew );
|
||
// 84 BindingEntry_t *bindFindEmpty( void );
|
||
// 85 uint16 bindingAddrMgsHelperFind( zAddrType_t *addr );
|
||
// 86 uint8 bindingAddrMgsHelperConvert( uint16 idx, zAddrType_t *addr );
|
||
// 87 void bindAddrMgrLocalLoad( void );
|
||
// 88 uint16 bindAddrIndexGet( zAddrType_t* addr );
|
||
// 89
|
||
// 90 /*********************************************************************
|
||
// 91 * LOCAL VARIABLES
|
||
// 92 */
|
||
|
||
RSEG XDATA_Z:XDATA:NOROOT(0)
|
||
DATA8
|
||
// 93 static uint8 bindAddrMgrLocalLoaded = FALSE;
|
||
bindAddrMgrLocalLoaded:
|
||
DS 1
|
||
REQUIRE __INIT_XDATA_Z
|
||
// 94
|
||
// 95 /*********************************************************************
|
||
// 96 * Function Pointers
|
||
// 97 */
|
||
// 98
|
||
|
||
RSEG XDATA_Z:XDATA:NOROOT(0)
|
||
DATA16
|
||
// 99 BindingEntry_t *(*pbindAddEntry)( byte srcEpInt,
|
||
pbindAddEntry:
|
||
DS 2
|
||
REQUIRE __INIT_XDATA_Z
|
||
// 100 zAddrType_t *dstAddr, byte dstEpInt,
|
||
// 101 byte numClusterIds, uint16 *clusterIds ) = (void*)NULL;
|
||
|
||
RSEG XDATA_Z:XDATA:NOROOT(0)
|
||
DATA16
|
||
// 102 uint16 (*pbindNumOfEntries)( void ) = (void*)NULL;
|
||
pbindNumOfEntries:
|
||
DS 2
|
||
REQUIRE __INIT_XDATA_Z
|
||
|
||
RSEG XDATA_Z:XDATA:NOROOT(0)
|
||
DATA16
|
||
// 103 void (*pbindRemoveDev)( zAddrType_t *Addr ) = (void*)NULL;
|
||
pbindRemoveDev:
|
||
DS 2
|
||
REQUIRE __INIT_XDATA_Z
|
||
|
||
RSEG XDATA_Z:XDATA:NOROOT(0)
|
||
DATA16
|
||
// 104 byte (*pBindInitNV)( void ) = (void*)NULL;
|
||
pBindInitNV:
|
||
DS 2
|
||
REQUIRE __INIT_XDATA_Z
|
||
|
||
RSEG XDATA_Z:XDATA:NOROOT(0)
|
||
DATA16
|
||
// 105 void (*pBindSetDefaultNV)( void ) = (void*)NULL;
|
||
pBindSetDefaultNV:
|
||
DS 2
|
||
REQUIRE __INIT_XDATA_Z
|
||
|
||
RSEG XDATA_Z:XDATA:NOROOT(0)
|
||
DATA16
|
||
// 106 uint16 (*pBindRestoreFromNV)( void ) = (void*)NULL;
|
||
pBindRestoreFromNV:
|
||
DS 2
|
||
REQUIRE __INIT_XDATA_Z
|
||
|
||
RSEG XDATA_Z:XDATA:NOROOT(0)
|
||
DATA16
|
||
// 107 void (*pBindWriteNV)( void ) = (void*)NULL;
|
||
pBindWriteNV:
|
||
DS 2
|
||
REQUIRE __INIT_XDATA_Z
|
||
// 108
|
||
// 109 #if ( ADDRMGR_CALLBACK_ENABLED == 1 )
|
||
// 110 /*********************************************************************
|
||
// 111 * @fn BindAddrMgrCB()
|
||
// 112 *
|
||
// 113 * @brief Address Manager Callback function
|
||
// 114 *
|
||
// 115 * @param update -
|
||
// 116 * @param entry -
|
||
// 117 *
|
||
// 118 * @return pointer to
|
||
// 119 */
|
||
// 120 void BindAddrMgrCB( uint8 update, AddrMgrEntry_t *entryNew,
|
||
// 121 AddrMgrEntry_t *entryOld )
|
||
// 122 {
|
||
// 123 // Check for either deleted items or changed Extended (Duplicate) addresses
|
||
// 124 }
|
||
// 125 #endif // ( ADDRMGR_CALLBACK_ENABLED == 1 )
|
||
// 126
|
||
// 127 /*********************************************************************
|
||
// 128 * @fn InitBindingTable()
|
||
// 129 *
|
||
// 130 * @brief
|
||
// 131 *
|
||
// 132 * This function is used to initialise the binding table
|
||
// 133 *
|
||
// 134 * @param none
|
||
// 135 *
|
||
// 136 * @return none
|
||
// 137 */
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
// 138 void InitBindingTable( void )
|
||
InitBindingTable:
|
||
CFI Block cfiBlock0 Using cfiCommon0
|
||
CFI Function InitBindingTable
|
||
CODE
|
||
// 139 {
|
||
FUNCALL InitBindingTable, osal_memset
|
||
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
|
||
// 140 osal_memset( BindingTable, 0xFF, gBIND_REC_SIZE * gNWK_MAX_BINDING_ENTRIES );
|
||
; Setup parameters for call to function osal_memset
|
||
LCALL ?Subroutine13 & 0xFFFF
|
||
??CrossCallReturnLabel_57:
|
||
MOV DPTR,#gNWK_MAX_BINDING_ENTRIES
|
||
LCALL ?Subroutine33 & 0xFFFF
|
||
??CrossCallReturnLabel_44:
|
||
MOV A,R4
|
||
MOV B,?V0
|
||
MUL AB
|
||
XCH A,R4
|
||
MOV R0,B
|
||
MOV B,?V1
|
||
MUL AB
|
||
ADD A,R0
|
||
MOV R0,A
|
||
MOV B,?V0
|
||
MOV A,R5
|
||
MUL AB
|
||
ADD A,R0
|
||
MOV R5,A
|
||
MOV R1,#-0x1
|
||
MOV R2,#BindingTable & 0xff
|
||
MOV R3,#(BindingTable >> 8) & 0xff
|
||
LCALL `??osal_memset::?relay`; Banked call to: osal_memset
|
||
// 141
|
||
// 142 pbindAddEntry = bindAddEntry;
|
||
MOV DPTR,#pbindAddEntry
|
||
MOV A,#`??bindAddEntry::?relay` & 0xff
|
||
MOVX @DPTR,A
|
||
INC DPTR
|
||
MOV A,#(`??bindAddEntry::?relay` >> 8) & 0xff
|
||
MOVX @DPTR,A
|
||
// 143 pbindNumOfEntries = bindNumOfEntries;
|
||
MOV DPTR,#pbindNumOfEntries
|
||
MOV A,#`??bindNumOfEntries::?relay` & 0xff
|
||
MOVX @DPTR,A
|
||
INC DPTR
|
||
MOV A,#(`??bindNumOfEntries::?relay` >> 8) & 0xff
|
||
MOVX @DPTR,A
|
||
// 144 pbindRemoveDev = bindRemoveDev;
|
||
MOV DPTR,#pbindRemoveDev
|
||
MOV A,#`??bindRemoveDev::?relay` & 0xff
|
||
MOVX @DPTR,A
|
||
INC DPTR
|
||
MOV A,#(`??bindRemoveDev::?relay` >> 8) & 0xff
|
||
MOVX @DPTR,A
|
||
// 145 pBindInitNV = BindInitNV;
|
||
MOV DPTR,#pBindInitNV
|
||
MOV A,#`??BindInitNV::?relay` & 0xff
|
||
MOVX @DPTR,A
|
||
INC DPTR
|
||
MOV A,#(`??BindInitNV::?relay` >> 8) & 0xff
|
||
MOVX @DPTR,A
|
||
// 146 pBindSetDefaultNV = BindSetDefaultNV;
|
||
MOV DPTR,#pBindSetDefaultNV
|
||
MOV A,#`??BindSetDefaultNV::?relay` & 0xff
|
||
MOVX @DPTR,A
|
||
INC DPTR
|
||
MOV A,#(`??BindSetDefaultNV::?relay` >> 8) & 0xff
|
||
MOVX @DPTR,A
|
||
// 147 pBindRestoreFromNV = BindRestoreFromNV;
|
||
MOV DPTR,#pBindRestoreFromNV
|
||
MOV A,#`??BindRestoreFromNV::?relay` & 0xff
|
||
MOVX @DPTR,A
|
||
INC DPTR
|
||
MOV A,#(`??BindRestoreFromNV::?relay` >> 8) & 0xff
|
||
MOVX @DPTR,A
|
||
// 148 pBindWriteNV = BindWriteNV;
|
||
MOV DPTR,#pBindWriteNV
|
||
MOV A,#`??BindWriteNV::?relay` & 0xff
|
||
MOVX @DPTR,A
|
||
INC DPTR
|
||
MOV A,#(`??BindWriteNV::?relay` >> 8) & 0xff
|
||
MOVX @DPTR,A
|
||
// 149
|
||
// 150 bindAddrMgrLocalLoaded = FALSE;
|
||
MOV DPTR,#bindAddrMgrLocalLoaded
|
||
CLR A
|
||
MOVX @DPTR,A
|
||
// 151
|
||
// 152 #if ( ADDRMGR_CALLBACK_ENABLED == 1 )
|
||
// 153 // Register with the address manager
|
||
// 154 AddrMgrRegister( ADDRMGR_REG_BINDING, BindAddrMgrCB );
|
||
// 155 #endif
|
||
// 156 }
|
||
SJMP ??Subroutine37_0
|
||
CFI EndBlock cfiBlock0
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
?Subroutine0:
|
||
CFI Block cfiBlock1 Using cfiCommon0
|
||
CFI NoFunction
|
||
CFI CFA_SP SP+0
|
||
CFI CFA_XSP16 add(XSP16, 12)
|
||
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)))
|
||
CFI Invalid
|
||
LCALL ?DEALLOC_XSTACK8
|
||
CFI EndBlock cfiBlock1
|
||
REQUIRE ??Subroutine37_0
|
||
; // Fall through to label ??Subroutine37_0
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
??Subroutine37_0:
|
||
CFI Block cfiBlock2 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 cfiBlock2
|
||
// 157
|
||
// 158 /*********************************************************************
|
||
// 159 * @fn bindFindEmpty()
|
||
// 160 *
|
||
// 161 * @brief This function returns a pointer to an empty binding slot
|
||
// 162 *
|
||
// 163 * @param none
|
||
// 164 *
|
||
// 165 * @return pointer to binding table entry, NULL if not added
|
||
// 166 */
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
// 167 BindingEntry_t *bindFindEmpty( void )
|
||
bindFindEmpty:
|
||
CFI Block cfiBlock3 Using cfiCommon0
|
||
CFI Function bindFindEmpty
|
||
CODE
|
||
// 168 {
|
||
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
|
||
// 169 uint16 x;
|
||
// 170
|
||
// 171 for ( x = 0; x < gNWK_MAX_BINDING_ENTRIES; x++ )
|
||
MOV R0,#0x0
|
||
MOV R1,#0x0
|
||
SJMP ??bindFindEmpty_0
|
||
??bindFindEmpty_1:
|
||
INC R0
|
||
MOV A,R0
|
||
JNZ ??bindFindEmpty_0
|
||
INC R1
|
||
??bindFindEmpty_0:
|
||
LCALL ?Subroutine7 & 0xFFFF
|
||
??CrossCallReturnLabel_0:
|
||
JNC ??bindFindEmpty_2
|
||
// 172 {
|
||
// 173 // It's empty if the index is "Not Found"
|
||
// 174 if ( BindingTable[x].srcEP == NV_BIND_EMPTY )
|
||
MOV A,R0
|
||
MOV R2,A
|
||
MOV A,R1
|
||
MOV R3,A
|
||
MOV A,R2
|
||
MOV B,#0xe
|
||
MUL AB
|
||
MOV R2,A
|
||
MOV R4,B
|
||
MOV B,#0xe
|
||
MOV A,R3
|
||
MUL AB
|
||
ADD A,R4
|
||
LCALL ??Subroutine40_0 & 0xFFFF
|
||
??CrossCallReturnLabel_67:
|
||
CPL A
|
||
JNZ ??bindFindEmpty_1
|
||
// 175 {
|
||
// 176 return ( &BindingTable[x] );
|
||
MOV B,#0xe
|
||
MOV A,R1
|
||
MUL AB
|
||
ADD A,R4
|
||
MOV R1,A
|
||
MOV A,#BindingTable & 0xff
|
||
ADD A,R2
|
||
MOV R2,A
|
||
MOV A,#(BindingTable >> 8) & 0xff
|
||
ADDC A,R1
|
||
MOV R3,A
|
||
SJMP ??bindFindEmpty_3
|
||
// 177 }
|
||
// 178 }
|
||
// 179
|
||
// 180 return ( (BindingEntry_t *)NULL );
|
||
??bindFindEmpty_2:
|
||
MOV R2,#0x0
|
||
MOV R3,#0x0
|
||
??bindFindEmpty_3:
|
||
LJMP ??Subroutine48_0 & 0xFFFF
|
||
// 181 }
|
||
CFI EndBlock cfiBlock3
|
||
// 182
|
||
// 183 /*********************************************************************
|
||
// 184 * @fn bindNumOfEntries()
|
||
// 185 *
|
||
// 186 * @brief This function returns the number of binding table entries.
|
||
// 187 * The return for this is the number of clusters in the
|
||
// 188 * table NOT the number of entries.
|
||
// 189 *
|
||
// 190 * @param none
|
||
// 191 *
|
||
// 192 * @return number of entries
|
||
// 193 */
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
// 194 uint16 bindNumOfEntries( void )
|
||
bindNumOfEntries:
|
||
CFI Block cfiBlock4 Using cfiCommon0
|
||
CFI Function bindNumOfEntries
|
||
CODE
|
||
// 195 {
|
||
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
|
||
// 196 uint16 x;
|
||
// 197 uint16 found;
|
||
// 198
|
||
// 199 for ( found = 0, x = 0; x < gNWK_MAX_BINDING_ENTRIES; x++ )
|
||
MOV R2,#0x0
|
||
MOV R3,#0x0
|
||
MOV R0,#0x0
|
||
MOV R1,#0x0
|
||
SJMP ??bindNumOfEntries_0
|
||
// 200 {
|
||
// 201 // It's empty if the index is "Not Found"
|
||
// 202 if ( BindingTable[x].srcEP != NV_BIND_EMPTY )
|
||
??bindNumOfEntries_1:
|
||
MOV A,R0
|
||
MOV R4,A
|
||
MOV A,R1
|
||
MOV R5,A
|
||
MOV A,R4
|
||
MOV B,#0xe
|
||
MUL AB
|
||
MOV R4,A
|
||
MOV R6,B
|
||
MOV B,#0xe
|
||
MOV A,R5
|
||
MUL AB
|
||
ADD A,R6
|
||
MOV R5,A
|
||
MOV A,#BindingTable & 0xff
|
||
ADD A,R4
|
||
MOV DPL,A
|
||
MOV A,#(BindingTable >> 8) & 0xff
|
||
ADDC A,R5
|
||
MOV DPH,A
|
||
MOVX A,@DPTR
|
||
CPL A
|
||
JZ ??bindNumOfEntries_2
|
||
// 203 {
|
||
// 204 found += BindingTable[x].numClusterIds;
|
||
MOV A,R0
|
||
MOV R4,A
|
||
MOV A,R1
|
||
MOV R5,A
|
||
MOV A,R4
|
||
MOV B,#0xe
|
||
MUL AB
|
||
MOV R4,A
|
||
MOV B,#0xe
|
||
MOV A,R5
|
||
MUL AB
|
||
ADD A,R6
|
||
MOV R5,A
|
||
MOV A,#(BindingTable + 5) & 0xff
|
||
ADD A,R4
|
||
MOV DPL,A
|
||
MOV A,#((BindingTable + 5) >> 8) & 0xff
|
||
ADDC A,R5
|
||
MOV DPH,A
|
||
MOVX A,@DPTR
|
||
MOV R4,A
|
||
MOV A,R2
|
||
ADD A,R4
|
||
MOV R2,A
|
||
CLR A
|
||
ADDC A,R3
|
||
MOV R3,A
|
||
// 205 }
|
||
// 206 }
|
||
??bindNumOfEntries_2:
|
||
INC R0
|
||
MOV A,R0
|
||
JNZ ??bindNumOfEntries_0
|
||
INC R1
|
||
??bindNumOfEntries_0:
|
||
MOV DPTR,#gNWK_MAX_BINDING_ENTRIES
|
||
LCALL ??Subroutine39_0 & 0xFFFF
|
||
??CrossCallReturnLabel_56:
|
||
CLR C
|
||
MOV A,R0
|
||
SUBB A,R4
|
||
MOV A,R1
|
||
SUBB A,R5
|
||
JC ??bindNumOfEntries_1
|
||
// 207
|
||
// 208 return ( found );
|
||
LJMP ?Subroutine2 & 0xFFFF
|
||
// 209 }
|
||
CFI EndBlock cfiBlock4
|
||
// 210
|
||
// 211 /*********************************************************************
|
||
// 212 * @fn bindCapacity()
|
||
// 213 *
|
||
// 214 * @brief This function returns the number of binding entries
|
||
// 215 * possible and used.
|
||
// 216 *
|
||
// 217 * @param maxEntries - pointer to a place to put the max entries
|
||
// 218 * @param usedEntries - pointer to a place to put the number
|
||
// 219 * of used entries
|
||
// 220 *
|
||
// 221 * @return none
|
||
// 222 */
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
// 223 void bindCapacity( uint16 *maxEntries, uint16 *usedEntries )
|
||
bindCapacity:
|
||
CFI Block cfiBlock5 Using cfiCommon0
|
||
CFI Function bindCapacity
|
||
CODE
|
||
// 224 {
|
||
REQUIRE ?V0
|
||
REQUIRE ?V1
|
||
REQUIRE ?V2
|
||
MOV A,#-0xb
|
||
LCALL ?BANKED_ENTER_XDATA
|
||
CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
|
||
CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
|
||
CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
|
||
CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
|
||
CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
|
||
CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
|
||
CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-7)))
|
||
CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI CFA_SP SP+0
|
||
CFI CFA_XSP16 add(XSP16, 11)
|
||
; Saved register size: 11
|
||
; Auto size: 0
|
||
MOV A,R2
|
||
MOV R6,A
|
||
MOV A,R3
|
||
MOV R7,A
|
||
// 225 uint16 x;
|
||
// 226 uint16 used;
|
||
// 227
|
||
// 228 for ( used = 0, x = 0; x < gNWK_MAX_BINDING_ENTRIES; x++ )
|
||
MOV ?V0,#0x0
|
||
MOV ?V1,#0x0
|
||
MOV R0,#0x0
|
||
MOV R1,#0x0
|
||
SJMP ??bindCapacity_0
|
||
// 229 {
|
||
// 230 // It's empty if the index is "Not Found"
|
||
// 231 if ( BindingTable[x].srcEP != NV_BIND_EMPTY )
|
||
??bindCapacity_1:
|
||
LCALL ?Subroutine21 & 0xFFFF
|
||
??CrossCallReturnLabel_68:
|
||
CPL A
|
||
JZ ??bindCapacity_2
|
||
// 232 {
|
||
// 233 used++;
|
||
INC ?V0
|
||
MOV A,?V0
|
||
JNZ ??bindCapacity_2
|
||
INC ?V1
|
||
// 234 }
|
||
// 235 }
|
||
??bindCapacity_2:
|
||
INC R0
|
||
MOV A,R0
|
||
JNZ ??bindCapacity_0
|
||
INC R1
|
||
??bindCapacity_0:
|
||
LCALL ?Subroutine7 & 0xFFFF
|
||
??CrossCallReturnLabel_1:
|
||
JC ??bindCapacity_1
|
||
// 236
|
||
// 237 *maxEntries = gNWK_MAX_BINDING_ENTRIES;
|
||
LCALL ?Subroutine15 & 0xFFFF
|
||
??CrossCallReturnLabel_16:
|
||
MOV DPL,R6
|
||
MOV DPH,R7
|
||
MOV A,R0
|
||
MOVX @DPTR,A
|
||
INC DPTR
|
||
MOV A,R1
|
||
MOVX @DPTR,A
|
||
// 238 *usedEntries = used;
|
||
MOV DPL,R4
|
||
MOV DPH,R5
|
||
LCALL ?Subroutine20 & 0xFFFF
|
||
// 239 }
|
||
??CrossCallReturnLabel_53:
|
||
LJMP ?Subroutine3 & 0xFFFF
|
||
CFI EndBlock cfiBlock5
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
?Subroutine20:
|
||
CFI Block cfiCond6 Using cfiCommon0
|
||
CFI Function bindCapacity
|
||
CFI Conditional ??CrossCallReturnLabel_53
|
||
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-7)))
|
||
CFI 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, 11)
|
||
CFI Block cfiCond7 Using cfiCommon0
|
||
CFI (cfiCond7) Function bindUpdateAddr
|
||
CFI (cfiCond7) Conditional ??CrossCallReturnLabel_54
|
||
CFI (cfiCond7) R6 load(1, XDATA, add(CFA_XSP16, literal(-12)))
|
||
CFI (cfiCond7) VB load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI (cfiCond7) V0 load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI (cfiCond7) V1 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI (cfiCond7) V2 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI (cfiCond7) V3 load(1, XDATA, add(CFA_XSP16, literal(-7)))
|
||
CFI (cfiCond7) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
|
||
CFI (cfiCond7) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
|
||
CFI (cfiCond7) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
|
||
CFI (cfiCond7) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
|
||
CFI (cfiCond7) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
|
||
CFI (cfiCond7) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
|
||
CFI (cfiCond7) CFA_SP SP+-2
|
||
CFI (cfiCond7) CFA_XSP16 add(XSP16, 21)
|
||
CFI Block cfiCond8 Using cfiCommon0
|
||
CFI (cfiCond8) Function bindUpdateAddr
|
||
CFI (cfiCond8) Conditional ??CrossCallReturnLabel_55
|
||
CFI (cfiCond8) R6 load(1, XDATA, add(CFA_XSP16, literal(-12)))
|
||
CFI (cfiCond8) VB load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI (cfiCond8) V0 load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI (cfiCond8) V1 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI (cfiCond8) V2 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI (cfiCond8) V3 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, 21)
|
||
CFI Block cfiPicker9 Using cfiCommon1
|
||
CFI (cfiPicker9) NoFunction
|
||
CFI (cfiPicker9) Picker
|
||
MOV A,?V0
|
||
CFI EndBlock cfiCond6
|
||
CFI EndBlock cfiCond7
|
||
CFI EndBlock cfiCond8
|
||
CFI EndBlock cfiPicker9
|
||
REQUIRE ??Subroutine38_0
|
||
; // Fall through to label ??Subroutine38_0
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
??Subroutine38_0:
|
||
CFI Block cfiCond10 Using cfiCommon0
|
||
CFI Function bindAddEntry
|
||
CFI Conditional ??CrossCallReturnLabel_52
|
||
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-15)))
|
||
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-14)))
|
||
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-13)))
|
||
CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-12)))
|
||
CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI V4 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI V5 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI V6 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, 18)
|
||
CFI Block cfiCond11 Using cfiCommon0
|
||
CFI (cfiCond11) Function bindCapacity
|
||
CFI (cfiCond11) Conditional ??CrossCallReturnLabel_53
|
||
CFI (cfiCond11) R6 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI (cfiCond11) VB load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI (cfiCond11) V0 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI (cfiCond11) V1 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI (cfiCond11) V2 load(1, XDATA, add(CFA_XSP16, literal(-7)))
|
||
CFI (cfiCond11) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
|
||
CFI (cfiCond11) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
|
||
CFI (cfiCond11) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
|
||
CFI (cfiCond11) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
|
||
CFI (cfiCond11) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
|
||
CFI (cfiCond11) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
|
||
CFI (cfiCond11) CFA_SP SP+-2
|
||
CFI (cfiCond11) CFA_XSP16 add(XSP16, 11)
|
||
CFI Block cfiCond12 Using cfiCommon0
|
||
CFI (cfiCond12) Function bindUpdateAddr
|
||
CFI (cfiCond12) Conditional ??CrossCallReturnLabel_54
|
||
CFI (cfiCond12) R6 load(1, XDATA, add(CFA_XSP16, literal(-12)))
|
||
CFI (cfiCond12) VB load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI (cfiCond12) V0 load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI (cfiCond12) V1 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI (cfiCond12) V2 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI (cfiCond12) V3 load(1, XDATA, add(CFA_XSP16, literal(-7)))
|
||
CFI (cfiCond12) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
|
||
CFI (cfiCond12) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
|
||
CFI (cfiCond12) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
|
||
CFI (cfiCond12) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
|
||
CFI (cfiCond12) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
|
||
CFI (cfiCond12) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
|
||
CFI (cfiCond12) CFA_SP SP+-2
|
||
CFI (cfiCond12) CFA_XSP16 add(XSP16, 21)
|
||
CFI Block cfiCond13 Using cfiCommon0
|
||
CFI (cfiCond13) Function bindUpdateAddr
|
||
CFI (cfiCond13) Conditional ??CrossCallReturnLabel_55
|
||
CFI (cfiCond13) R6 load(1, XDATA, add(CFA_XSP16, literal(-12)))
|
||
CFI (cfiCond13) VB load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI (cfiCond13) V0 load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI (cfiCond13) V1 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI (cfiCond13) V2 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI (cfiCond13) V3 load(1, XDATA, add(CFA_XSP16, literal(-7)))
|
||
CFI (cfiCond13) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
|
||
CFI (cfiCond13) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
|
||
CFI (cfiCond13) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
|
||
CFI (cfiCond13) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
|
||
CFI (cfiCond13) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
|
||
CFI (cfiCond13) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
|
||
CFI (cfiCond13) CFA_SP SP+-2
|
||
CFI (cfiCond13) CFA_XSP16 add(XSP16, 21)
|
||
CFI Block cfiPicker14 Using cfiCommon1
|
||
CFI (cfiPicker14) NoFunction
|
||
CFI (cfiPicker14) Picker
|
||
MOVX @DPTR,A
|
||
INC DPTR
|
||
MOV A,?V1
|
||
MOVX @DPTR,A
|
||
RET
|
||
CFI EndBlock cfiCond10
|
||
CFI EndBlock cfiCond11
|
||
CFI EndBlock cfiCond12
|
||
CFI EndBlock cfiCond13
|
||
CFI EndBlock cfiPicker14
|
||
// 240
|
||
// 241 /*********************************************************************
|
||
// 242 * @fn bindAddEntry()
|
||
// 243 *
|
||
// 244 * @brief This function is used to Add an entry to the binding table
|
||
// 245 *
|
||
// 246 * @param srcAddr - source Address
|
||
// 247 * @param srcEpInt - source endpoint
|
||
// 248 * @param dstAddr - destination Address
|
||
// 249 * @param dstEpInt - destination endpoint
|
||
// 250 * @param numClusterIds - number of cluster Ids in the list
|
||
// 251 * @param clusterIds - pointer to the Object ID list
|
||
// 252 *
|
||
// 253 * @return pointer to binding table entry, NULL if not added
|
||
// 254 */
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
// 255 BindingEntry_t *bindAddEntry( byte srcEpInt,
|
||
bindAddEntry:
|
||
CFI Block cfiBlock15 Using cfiCommon0
|
||
CFI Function bindAddEntry
|
||
CODE
|
||
// 256 zAddrType_t *dstAddr, byte dstEpInt,
|
||
// 257 byte numClusterIds, uint16 *clusterIds )
|
||
// 258 {
|
||
FUNCALL bindAddEntry, bindAddrMgrLocalLoad
|
||
LOCFRAME ISTACK, 0, STACK
|
||
LOCFRAME PSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 18, STACK
|
||
LOCFRAME IOVERLAY, 0, STATIC
|
||
LOCFRAME DOVERLAY, 0, STATIC
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 18, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
FUNCALL bindAddEntry, bindAddrIndexGet
|
||
LOCFRAME ISTACK, 0, STACK
|
||
LOCFRAME PSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 18, STACK
|
||
LOCFRAME IOVERLAY, 0, STATIC
|
||
LOCFRAME DOVERLAY, 0, STATIC
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 18, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
FUNCALL bindAddEntry, bindIsClusterIDinList
|
||
LOCFRAME ISTACK, 0, STACK
|
||
LOCFRAME PSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 18, STACK
|
||
LOCFRAME IOVERLAY, 0, STATIC
|
||
LOCFRAME DOVERLAY, 0, STATIC
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 18, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
FUNCALL bindAddEntry, bindAddClusterIdToList
|
||
LOCFRAME ISTACK, 0, STACK
|
||
LOCFRAME PSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 18, STACK
|
||
LOCFRAME IOVERLAY, 0, STATIC
|
||
LOCFRAME DOVERLAY, 0, STATIC
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 18, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
FUNCALL bindAddEntry, bindFindEmpty
|
||
LOCFRAME ISTACK, 0, STACK
|
||
LOCFRAME PSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 18, STACK
|
||
LOCFRAME IOVERLAY, 0, STATIC
|
||
LOCFRAME DOVERLAY, 0, STATIC
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 18, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
FUNCALL bindAddEntry, osal_memcpy
|
||
LOCFRAME ISTACK, 0, STACK
|
||
LOCFRAME PSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 21, STACK
|
||
LOCFRAME IOVERLAY, 0, STATIC
|
||
LOCFRAME DOVERLAY, 0, STATIC
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 21, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
REQUIRE ?V0
|
||
REQUIRE ?V1
|
||
REQUIRE ?V2
|
||
REQUIRE ?V3
|
||
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 A,#0x2
|
||
LCALL ?XSTACK_DISP0_8
|
||
MOV A,R4
|
||
MOVX @DPTR,A
|
||
MOV ?V6,R1
|
||
MOV ?V0,R2
|
||
MOV ?V1,R3
|
||
MOV ?V3,R5
|
||
// 259 uint8 index;
|
||
// 260 BindingEntry_t* entry;
|
||
// 261 bindFields_t fields;
|
||
// 262
|
||
// 263 // initialize results
|
||
// 264 entry = NULL;
|
||
MOV R6,#0x0
|
||
MOV R7,#0x0
|
||
// 265
|
||
// 266 // make sure local addresses have been loaded
|
||
// 267 bindAddrMgrLocalLoad();
|
||
; Setup parameters for call to function bindAddrMgrLocalLoad
|
||
LCALL `??bindAddrMgrLocalLoad::?relay`; Banked call to: bindAddrMgrLocalLoad
|
||
// 268
|
||
// 269 // setup fields
|
||
// 270 fields.dstIndex = bindAddrIndexGet( dstAddr );
|
||
; Setup parameters for call to function bindAddrIndexGet
|
||
MOV R2,?V0
|
||
MOV R3,?V1
|
||
LCALL `??bindAddrIndexGet::?relay`; Banked call to: bindAddrIndexGet
|
||
MOV DPL,?XSP + 0
|
||
MOV DPH,?XSP + 1
|
||
MOV A,R2
|
||
MOVX @DPTR,A
|
||
INC DPTR
|
||
MOV A,R3
|
||
MOVX @DPTR,A
|
||
// 271 fields.srcEP = srcEpInt;
|
||
// 272
|
||
// 273 if ( dstAddr->addrMode == AddrGroup )
|
||
MOV DPL,?V0
|
||
MOV DPH,?V1
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
MOVX A,@DPTR
|
||
XRL A,#0x1
|
||
JNZ ??bindAddEntry_0
|
||
// 274 {
|
||
// 275 fields.dstAddrMode = DSTGROUPMODE_GROUP;
|
||
MOV ?V1,#0x1
|
||
// 276 fields.dstEP = 0;
|
||
MOV ?V0,#0x0
|
||
SJMP ??bindAddEntry_1
|
||
// 277 }
|
||
// 278 else
|
||
// 279 {
|
||
// 280 fields.dstAddrMode = DSTGROUPMODE_ADDR;
|
||
??bindAddEntry_0:
|
||
MOV ?V1,#0x0
|
||
// 281 fields.dstEP = dstEpInt;
|
||
MOV A,#0x2
|
||
LCALL ?XSTACK_DISP0_8
|
||
MOVX A,@DPTR
|
||
MOV ?V0,A
|
||
// 282 }
|
||
// 283
|
||
// 284 if ( fields.dstIndex != INVALID_NODE_ADDR )
|
||
??bindAddEntry_1:
|
||
MOV DPL,?XSP + 0
|
||
MOV DPH,?XSP + 1
|
||
MOVX A,@DPTR
|
||
XRL A,#0xfe
|
||
JNZ ??bindAddEntry_2
|
||
INC DPTR
|
||
MOVX A,@DPTR
|
||
CPL A
|
||
??bindAddEntry_2:
|
||
JNZ $+5
|
||
LJMP ??bindAddEntry_3 & 0xFFFF
|
||
// 285 {
|
||
// 286 for ( index = 0; index < gNWK_MAX_BINDING_ENTRIES; index++ )
|
||
MOV ?V2,#0x0
|
||
SJMP ??bindAddEntry_4
|
||
??bindAddEntry_5:
|
||
INC ?V2
|
||
??bindAddEntry_4:
|
||
MOV DPTR,#gNWK_MAX_BINDING_ENTRIES
|
||
LCALL ?Subroutine15 & 0xFFFF
|
||
??CrossCallReturnLabel_17:
|
||
CLR C
|
||
MOV A,?V2
|
||
SUBB A,R0
|
||
CLR A
|
||
SUBB A,R1
|
||
JC $+5
|
||
LJMP ??bindAddEntry_6 & 0xFFFF
|
||
// 287 {
|
||
// 288 if ( ( fields.srcEP == BindingTable[index].srcEP ) &&
|
||
// 289 ( fields.dstAddrMode == BindingTable[index].dstGroupMode ) &&
|
||
// 290 ( fields.dstIndex == BindingTable[index].dstIdx ) &&
|
||
// 291 ( fields.dstEP == BindingTable[index].dstEP ) )
|
||
MOV A,?V2
|
||
MOV B,#0xe
|
||
MUL AB
|
||
MOV R0,A
|
||
MOV R1,B
|
||
LCALL ??Subroutine44_0 & 0xFFFF
|
||
??CrossCallReturnLabel_75:
|
||
XRL A,?V6
|
||
JNZ ??bindAddEntry_5
|
||
LCALL ?Subroutine16 & 0xFFFF
|
||
??CrossCallReturnLabel_19:
|
||
XRL A,?V1
|
||
JNZ ??bindAddEntry_5
|
||
LCALL ?Subroutine24 & 0xFFFF
|
||
??CrossCallReturnLabel_83:
|
||
MOV A,?V2
|
||
MOV B,#0xe
|
||
MUL AB
|
||
MOV R2,A
|
||
MOV R4,B
|
||
MOV A,R4
|
||
MOV R3,A
|
||
MOV A,#(BindingTable + 2) & 0xff
|
||
ADD A,R2
|
||
MOV DPL,A
|
||
MOV A,#((BindingTable + 2) >> 8) & 0xff
|
||
LCALL ??Subroutine41_0 & 0xFFFF
|
||
??CrossCallReturnLabel_60:
|
||
XRL A,R0
|
||
JNZ ??bindAddEntry_7
|
||
INC DPTR
|
||
MOVX A,@DPTR
|
||
XRL A,R1
|
||
??bindAddEntry_7:
|
||
JNZ ??bindAddEntry_5
|
||
MOV A,R4
|
||
MOV R1,A
|
||
MOV A,#(BindingTable + 4) & 0xff
|
||
ADD A,R2
|
||
MOV DPL,A
|
||
MOV A,#((BindingTable + 4) >> 8) & 0xff
|
||
ADDC A,R1
|
||
MOV DPH,A
|
||
MOVX A,@DPTR
|
||
XRL A,?V0
|
||
JNZ ??bindAddEntry_5
|
||
// 292 {
|
||
// 293 entry = &BindingTable[index];
|
||
MOV A,#BindingTable & 0xff
|
||
ADD A,R2
|
||
MOV R6,A
|
||
MOV A,#(BindingTable >> 8) & 0xff
|
||
ADDC A,R1
|
||
MOV R7,A
|
||
// 294
|
||
// 295 // break from loop
|
||
// 296 break;
|
||
// 297 }
|
||
// 298 }
|
||
// 299
|
||
// 300 if ( entry != NULL )
|
||
// 301 {
|
||
// 302 // Loop through the cluster IDs
|
||
// 303 for ( index = 0; index < numClusterIds; index++ )
|
||
MOV ?V2,#0x0
|
||
??bindAddEntry_8:
|
||
MOV A,?V2
|
||
CLR C
|
||
SUBB A,?V3
|
||
JC $+5
|
||
LJMP ??bindAddEntry_3 & 0xFFFF
|
||
// 304 {
|
||
// 305 // Found - is the cluster already defined?
|
||
// 306 if ( bindIsClusterIDinList( entry, clusterIds[index] ) == FALSE )
|
||
; Setup parameters for call to function bindIsClusterIDinList
|
||
MOV R0,?V2
|
||
MOV A,R0
|
||
ADD A,R0
|
||
MOV R0,A
|
||
CLR A
|
||
RLC A
|
||
MOV R1,A
|
||
MOV A,#0x12
|
||
LCALL ?XSTACK_DISP0_8
|
||
LCALL ?Subroutine11 & 0xFFFF
|
||
??CrossCallReturnLabel_10:
|
||
LCALL `??bindIsClusterIDinList::?relay`; Banked call to: bindIsClusterIDinList
|
||
MOV A,R1
|
||
JNZ ??bindAddEntry_9
|
||
// 307 {
|
||
// 308 // Nope, add this cluster
|
||
// 309 if ( bindAddClusterIdToList( entry, clusterIds[index] ) == FALSE )
|
||
; Setup parameters for call to function bindAddClusterIdToList
|
||
MOV R0,?V2
|
||
MOV A,R0
|
||
ADD A,R0
|
||
MOV R0,A
|
||
CLR A
|
||
RLC A
|
||
MOV R1,A
|
||
MOV A,#0x12
|
||
LCALL ?XSTACK_DISP0_8
|
||
LCALL ?Subroutine11 & 0xFFFF
|
||
??CrossCallReturnLabel_11:
|
||
LCALL `??bindAddClusterIdToList::?relay`; Banked call to: bindAddClusterIdToList
|
||
MOV A,R1
|
||
JNZ ??bindAddEntry_9
|
||
// 310 {
|
||
// 311 // Indicate error if cluster list was full
|
||
// 312 entry = NULL;
|
||
MOV R6,#0x0
|
||
MOV R7,#0x0
|
||
// 313 }
|
||
// 314 }
|
||
// 315 }
|
||
??bindAddEntry_9:
|
||
INC ?V2
|
||
SJMP ??bindAddEntry_8
|
||
// 316 }
|
||
// 317 else
|
||
// 318 {
|
||
// 319 // Find an empty slot
|
||
// 320 entry = bindFindEmpty();
|
||
??bindAddEntry_6:
|
||
; Setup parameters for call to function bindFindEmpty
|
||
LCALL `??bindFindEmpty::?relay`; Banked call to: bindFindEmpty
|
||
MOV ?V4,R2
|
||
MOV ?V5,R3
|
||
MOV R6,?V4
|
||
MOV R7,?V5
|
||
// 321
|
||
// 322 // Check against the maximum number allowed
|
||
// 323 if ( entry != NULL )
|
||
MOV A,R2
|
||
ORL A,R7
|
||
JZ ??bindAddEntry_3
|
||
// 324 {
|
||
// 325 // Add new entry
|
||
// 326 entry->srcEP = fields.srcEP;
|
||
MOV DPL,R2
|
||
MOV DPH,R3
|
||
MOV A,?V6
|
||
LCALL ??Subroutine38_0 & 0xFFFF
|
||
// 327 entry->dstGroupMode = fields.dstAddrMode;
|
||
// 328 entry->dstIdx = fields.dstIndex;
|
||
??CrossCallReturnLabel_52:
|
||
LCALL ?Subroutine24 & 0xFFFF
|
||
??CrossCallReturnLabel_84:
|
||
MOV DPL,R2
|
||
MOV DPH,R3
|
||
INC DPTR
|
||
INC DPTR
|
||
MOV A,R0
|
||
MOVX @DPTR,A
|
||
INC DPTR
|
||
MOV A,R1
|
||
LCALL ?Subroutine32 & 0xFFFF
|
||
// 329 entry->dstEP = fields.dstEP;
|
||
??CrossCallReturnLabel_42:
|
||
MOV A,?V0
|
||
MOVX @DPTR,A
|
||
// 330
|
||
// 331 if ( numClusterIds > gMAX_BINDING_CLUSTER_IDS )
|
||
MOV DPTR,#gMAX_BINDING_CLUSTER_IDS
|
||
CLR A
|
||
MOVC A,@A+DPTR
|
||
CLR C
|
||
SUBB A,?V3
|
||
JNC ??bindAddEntry_10
|
||
// 332 {
|
||
// 333 numClusterIds = gMAX_BINDING_CLUSTER_IDS;
|
||
CLR A
|
||
MOVC A,@A+DPTR
|
||
MOV ?V3,A
|
||
// 334 }
|
||
// 335
|
||
// 336 entry->numClusterIds = numClusterIds;
|
||
??bindAddEntry_10:
|
||
MOV DPL,R2
|
||
MOV DPH,R3
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
MOV A,?V3
|
||
MOVX @DPTR,A
|
||
// 337
|
||
// 338 osal_memcpy( entry->clusterIdList,
|
||
// 339 clusterIds,
|
||
// 340 numClusterIds * sizeof(uint16) );
|
||
; Setup parameters for call to function osal_memcpy
|
||
MOV A,#0x12
|
||
LCALL ?XSTACK_DISP0_8
|
||
MOVX A,@DPTR
|
||
MOV ?V0,A
|
||
INC DPTR
|
||
MOVX A,@DPTR
|
||
MOV ?V1,A
|
||
MOV ?V2,#0x0
|
||
MOV R0,#?V0
|
||
LCALL ?PUSH_XSTACK_I_THREE
|
||
CFI CFA_XSP16 add(XSP16, 21)
|
||
MOV R4,?V3
|
||
MOV A,R4
|
||
ADD A,R4
|
||
MOV R4,A
|
||
CLR A
|
||
RLC A
|
||
MOV R5,A
|
||
MOV A,R2
|
||
ADD A,#0x6
|
||
MOV R2,A
|
||
CLR A
|
||
ADDC A,R7
|
||
MOV R3,A
|
||
LCALL `??osal_memcpy::?relay`; Banked call to: osal_memcpy
|
||
MOV A,#0x3
|
||
LCALL ?DEALLOC_XSTACK8
|
||
CFI CFA_XSP16 add(XSP16, 18)
|
||
// 341 }
|
||
// 342 }
|
||
// 343 }
|
||
// 344
|
||
// 345 return entry;
|
||
??bindAddEntry_3:
|
||
MOV A,R6
|
||
MOV R2,A
|
||
MOV A,R7
|
||
MOV R3,A
|
||
MOV A,#0x3
|
||
LCALL ?DEALLOC_XSTACK8
|
||
CFI EndBlock cfiBlock15
|
||
REQUIRE ?Subroutine4
|
||
; // Fall through to label ?Subroutine4
|
||
// 346 }
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
?Subroutine4:
|
||
CFI Block cfiBlock16 Using cfiCommon0
|
||
CFI NoFunction
|
||
CFI CFA_SP SP+0
|
||
CFI CFA_XSP16 add(XSP16, 15)
|
||
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-14)))
|
||
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(-15)))
|
||
CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
|
||
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-13)))
|
||
CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-12)))
|
||
CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI V4 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI V5 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI V6 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,#0x7
|
||
LJMP ?BANKED_LEAVE_XDATA
|
||
CFI EndBlock cfiBlock16
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
?Subroutine15:
|
||
CFI Block cfiCond17 Using cfiCommon0
|
||
CFI Function bindCapacity
|
||
CFI Conditional ??CrossCallReturnLabel_16
|
||
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-7)))
|
||
CFI 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, 11)
|
||
CFI Block cfiCond18 Using cfiCommon0
|
||
CFI (cfiCond18) Function bindAddEntry
|
||
CFI (cfiCond18) Conditional ??CrossCallReturnLabel_17
|
||
CFI (cfiCond18) R6 load(1, XDATA, add(CFA_XSP16, literal(-15)))
|
||
CFI (cfiCond18) VB load(1, XDATA, add(CFA_XSP16, literal(-14)))
|
||
CFI (cfiCond18) V0 load(1, XDATA, add(CFA_XSP16, literal(-13)))
|
||
CFI (cfiCond18) V1 load(1, XDATA, add(CFA_XSP16, literal(-12)))
|
||
CFI (cfiCond18) V2 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI (cfiCond18) V3 load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI (cfiCond18) V4 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI (cfiCond18) V5 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI (cfiCond18) V6 load(1, XDATA, add(CFA_XSP16, literal(-7)))
|
||
CFI (cfiCond18) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
|
||
CFI (cfiCond18) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
|
||
CFI (cfiCond18) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
|
||
CFI (cfiCond18) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
|
||
CFI (cfiCond18) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
|
||
CFI (cfiCond18) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
|
||
CFI (cfiCond18) CFA_SP SP+-2
|
||
CFI (cfiCond18) CFA_XSP16 add(XSP16, 18)
|
||
CFI Block cfiCond19 Using cfiCommon0
|
||
CFI (cfiCond19) Function BindInitNV
|
||
CFI (cfiCond19) Conditional ??CrossCallReturnLabel_18
|
||
CFI (cfiCond19) R6 load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI (cfiCond19) VB load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI (cfiCond19) V0 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI (cfiCond19) V1 load(1, XDATA, add(CFA_XSP16, literal(-7)))
|
||
CFI (cfiCond19) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
|
||
CFI (cfiCond19) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
|
||
CFI (cfiCond19) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
|
||
CFI (cfiCond19) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
|
||
CFI (cfiCond19) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
|
||
CFI (cfiCond19) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
|
||
CFI (cfiCond19) CFA_SP SP+-2
|
||
CFI (cfiCond19) CFA_XSP16 add(XSP16, 12)
|
||
CFI Block cfiPicker20 Using cfiCommon1
|
||
CFI (cfiPicker20) NoFunction
|
||
CFI (cfiPicker20) Picker
|
||
LCALL ??Subroutine42_0 & 0xFFFF
|
||
??CrossCallReturnLabel_70:
|
||
RET
|
||
CFI EndBlock cfiCond17
|
||
CFI EndBlock cfiCond18
|
||
CFI EndBlock cfiCond19
|
||
CFI EndBlock cfiPicker20
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
?Subroutine11:
|
||
CFI Block cfiCond21 Using cfiCommon0
|
||
CFI Function bindAddEntry
|
||
CFI Conditional ??CrossCallReturnLabel_10
|
||
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-15)))
|
||
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-14)))
|
||
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-13)))
|
||
CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-12)))
|
||
CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI V4 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI V5 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI V6 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, 18)
|
||
CFI Block cfiCond22 Using cfiCommon0
|
||
CFI (cfiCond22) Function bindAddEntry
|
||
CFI (cfiCond22) Conditional ??CrossCallReturnLabel_11
|
||
CFI (cfiCond22) R6 load(1, XDATA, add(CFA_XSP16, literal(-15)))
|
||
CFI (cfiCond22) VB load(1, XDATA, add(CFA_XSP16, literal(-14)))
|
||
CFI (cfiCond22) V0 load(1, XDATA, add(CFA_XSP16, literal(-13)))
|
||
CFI (cfiCond22) V1 load(1, XDATA, add(CFA_XSP16, literal(-12)))
|
||
CFI (cfiCond22) V2 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI (cfiCond22) V3 load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI (cfiCond22) V4 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI (cfiCond22) V5 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI (cfiCond22) V6 load(1, XDATA, add(CFA_XSP16, literal(-7)))
|
||
CFI (cfiCond22) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
|
||
CFI (cfiCond22) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
|
||
CFI (cfiCond22) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
|
||
CFI (cfiCond22) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
|
||
CFI (cfiCond22) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
|
||
CFI (cfiCond22) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
|
||
CFI (cfiCond22) CFA_SP SP+-2
|
||
CFI (cfiCond22) CFA_XSP16 add(XSP16, 18)
|
||
CFI Block cfiPicker23 Using cfiCommon1
|
||
CFI (cfiPicker23) NoFunction
|
||
CFI (cfiPicker23) Picker
|
||
MOVX A,@DPTR
|
||
ADD A,R0
|
||
MOV R2,A
|
||
INC DPTR
|
||
MOVX A,@DPTR
|
||
ADDC A,R1
|
||
MOV DPL,R2
|
||
MOV DPH,A
|
||
MOVX A,@DPTR
|
||
MOV R4,A
|
||
INC DPTR
|
||
MOVX A,@DPTR
|
||
MOV R5,A
|
||
MOV A,R6
|
||
MOV R2,A
|
||
MOV A,R7
|
||
MOV R3,A
|
||
RET
|
||
CFI EndBlock cfiCond21
|
||
CFI EndBlock cfiCond22
|
||
CFI EndBlock cfiPicker23
|
||
// 347
|
||
// 348 /*********************************************************************
|
||
// 349 * @fn bindRemoveEntry
|
||
// 350 *
|
||
// 351 * @brief Removes a binding table entry.
|
||
// 352 *
|
||
// 353 * @param pBind - pointer to binding table entry to delete
|
||
// 354 *
|
||
// 355 * @return TRUE if Removed, FALSE if not
|
||
// 356 */
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
// 357 byte bindRemoveEntry( BindingEntry_t *pBind )
|
||
bindRemoveEntry:
|
||
CFI Block cfiBlock24 Using cfiCommon0
|
||
CFI Function bindRemoveEntry
|
||
CODE
|
||
// 358 {
|
||
FUNCALL bindRemoveEntry, osal_memset
|
||
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
|
||
// 359 osal_memset( pBind, 0xFF, gBIND_REC_SIZE );
|
||
; Setup parameters for call to function osal_memset
|
||
LCALL ?Subroutine13 & 0xFFFF
|
||
??CrossCallReturnLabel_58:
|
||
MOV R1,#-0x1
|
||
LCALL `??osal_memset::?relay`; Banked call to: osal_memset
|
||
// 360 return ( TRUE );
|
||
MOV R1,#0x1
|
||
LJMP ??Subroutine48_0 & 0xFFFF
|
||
// 361 }
|
||
CFI EndBlock cfiBlock24
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
?Subroutine13:
|
||
CFI Block cfiCond25 Using cfiCommon0
|
||
CFI Function InitBindingTable
|
||
CFI Conditional ??CrossCallReturnLabel_57
|
||
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 cfiCond26 Using cfiCommon0
|
||
CFI (cfiCond26) Function bindRemoveEntry
|
||
CFI (cfiCond26) Conditional ??CrossCallReturnLabel_58
|
||
CFI (cfiCond26) DPL0 Frame(CFA_SP, 4)
|
||
CFI (cfiCond26) DPH0 Frame(CFA_SP, 5)
|
||
CFI (cfiCond26) CFA_SP SP+-7
|
||
CFI Block cfiCond27 Using cfiCommon0
|
||
CFI (cfiCond27) Function BindWriteNV
|
||
CFI (cfiCond27) Conditional ??CrossCallReturnLabel_59
|
||
CFI (cfiCond27) R6 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI (cfiCond27) VB load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI (cfiCond27) V0 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI (cfiCond27) V1 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI (cfiCond27) V2 load(1, XDATA, add(CFA_XSP16, literal(-7)))
|
||
CFI (cfiCond27) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
|
||
CFI (cfiCond27) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
|
||
CFI (cfiCond27) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
|
||
CFI (cfiCond27) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
|
||
CFI (cfiCond27) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
|
||
CFI (cfiCond27) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
|
||
CFI (cfiCond27) CFA_SP SP+-2
|
||
CFI (cfiCond27) CFA_XSP16 add(XSP16, 30)
|
||
CFI Block cfiPicker28 Using cfiCommon1
|
||
CFI (cfiPicker28) NoFunction
|
||
CFI (cfiPicker28) Picker
|
||
MOV DPTR,#gBIND_REC_SIZE
|
||
CFI EndBlock cfiCond25
|
||
CFI EndBlock cfiCond26
|
||
CFI EndBlock cfiCond27
|
||
CFI EndBlock cfiPicker28
|
||
REQUIRE ??Subroutine39_0
|
||
; // Fall through to label ??Subroutine39_0
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
??Subroutine39_0:
|
||
CFI Block cfiCond29 Using cfiCommon0
|
||
CFI Function bindNumOfEntries
|
||
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 cfiCond30 Using cfiCommon0
|
||
CFI (cfiCond30) Function InitBindingTable
|
||
CFI (cfiCond30) Conditional ??CrossCallReturnLabel_57
|
||
CFI (cfiCond30) R6 load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI (cfiCond30) VB load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI (cfiCond30) V0 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI (cfiCond30) V1 load(1, XDATA, add(CFA_XSP16, literal(-7)))
|
||
CFI (cfiCond30) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
|
||
CFI (cfiCond30) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
|
||
CFI (cfiCond30) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
|
||
CFI (cfiCond30) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
|
||
CFI (cfiCond30) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
|
||
CFI (cfiCond30) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
|
||
CFI (cfiCond30) CFA_SP SP+-2
|
||
CFI (cfiCond30) CFA_XSP16 add(XSP16, 10)
|
||
CFI Block cfiCond31 Using cfiCommon0
|
||
CFI (cfiCond31) Function bindRemoveEntry
|
||
CFI (cfiCond31) Conditional ??CrossCallReturnLabel_58
|
||
CFI (cfiCond31) DPL0 Frame(CFA_SP, 4)
|
||
CFI (cfiCond31) DPH0 Frame(CFA_SP, 5)
|
||
CFI (cfiCond31) CFA_SP SP+-7
|
||
CFI Block cfiCond32 Using cfiCommon0
|
||
CFI (cfiCond32) Function BindWriteNV
|
||
CFI (cfiCond32) Conditional ??CrossCallReturnLabel_59
|
||
CFI (cfiCond32) R6 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI (cfiCond32) VB load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI (cfiCond32) V0 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI (cfiCond32) V1 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI (cfiCond32) V2 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, 30)
|
||
CFI Block cfiPicker33 Using cfiCommon1
|
||
CFI (cfiPicker33) NoFunction
|
||
CFI (cfiPicker33) Picker
|
||
CLR A
|
||
MOVC A,@A+DPTR
|
||
MOV R4,A
|
||
MOV A,#0x1
|
||
MOVC A,@A+DPTR
|
||
MOV R5,A
|
||
RET
|
||
CFI EndBlock cfiCond29
|
||
CFI EndBlock cfiCond30
|
||
CFI EndBlock cfiCond31
|
||
CFI EndBlock cfiCond32
|
||
CFI EndBlock cfiPicker33
|
||
// 362
|
||
// 363 /*********************************************************************
|
||
// 364 * @fn bindIsClusterIDinList()
|
||
// 365 *
|
||
// 366 * @brief Is the clusterID in the clusterID list?
|
||
// 367 *
|
||
// 368 * @param enter - binding table entry
|
||
// 369 * @param clusterId - Cluster ID to look for
|
||
// 370 *
|
||
// 371 * @return TRUE if found, FALSE if not found
|
||
// 372 */
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
// 373 byte bindIsClusterIDinList( BindingEntry_t *entry, uint16 clusterId )
|
||
bindIsClusterIDinList:
|
||
CFI Block cfiBlock34 Using cfiCommon0
|
||
CFI Function bindIsClusterIDinList
|
||
CODE
|
||
// 374 {
|
||
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
|
||
// 375 uint8 x;
|
||
// 376
|
||
// 377 if ( entry != NULL )
|
||
MOV A,R2
|
||
ORL A,R3
|
||
JZ ??bindIsClusterIDinList_0
|
||
// 378 {
|
||
// 379 for ( x = 0; x < entry->numClusterIds; x++ )
|
||
MOV R6,#0x0
|
||
SJMP ??bindIsClusterIDinList_1
|
||
??bindIsClusterIDinList_2:
|
||
INC R6
|
||
??bindIsClusterIDinList_1:
|
||
MOV DPL,R2
|
||
MOV DPH,R3
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
MOVX A,@DPTR
|
||
MOV R0,A
|
||
MOV A,R6
|
||
CLR C
|
||
SUBB A,R0
|
||
JNC ??bindIsClusterIDinList_0
|
||
// 380 {
|
||
// 381 if ( entry->clusterIdList[x] == clusterId )
|
||
MOV A,R6
|
||
ADD A,0xE0 /* A */
|
||
MOV R0,A
|
||
CLR A
|
||
RLC A
|
||
MOV R1,A
|
||
MOV A,R2
|
||
ADD A,R0
|
||
MOV DPL,A
|
||
MOV A,R3
|
||
ADDC A,R1
|
||
MOV DPH,A
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
MOVX A,@DPTR
|
||
XRL A,R4
|
||
JNZ ??bindIsClusterIDinList_3
|
||
INC DPTR
|
||
MOVX A,@DPTR
|
||
XRL A,R5
|
||
??bindIsClusterIDinList_3:
|
||
JNZ ??bindIsClusterIDinList_2
|
||
// 382 {
|
||
// 383 return ( TRUE );
|
||
MOV R1,#0x1
|
||
SJMP ??bindIsClusterIDinList_4
|
||
// 384 }
|
||
// 385 }
|
||
// 386 }
|
||
// 387
|
||
// 388 return ( FALSE );
|
||
??bindIsClusterIDinList_0:
|
||
MOV R1,#0x0
|
||
??bindIsClusterIDinList_4:
|
||
LJMP ?Subroutine2 & 0xFFFF
|
||
// 389 }
|
||
CFI EndBlock cfiBlock34
|
||
// 390
|
||
// 391 /*********************************************************************
|
||
// 392 * @fn bindRemoveClusterIdFromList()
|
||
// 393 *
|
||
// 394 * @brief Removes a ClusterID from a list of ClusterIDs.
|
||
// 395 *
|
||
// 396 * @param enter - binding table entry
|
||
// 397 * @param clusterId - Cluster ID to look for
|
||
// 398 *
|
||
// 399 * @return TRUE if there are at least 1 clusterID left, FALSE if none
|
||
// 400 */
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
// 401 byte bindRemoveClusterIdFromList( BindingEntry_t *entry, uint16 clusterId )
|
||
bindRemoveClusterIdFromList:
|
||
CFI Block cfiBlock35 Using cfiCommon0
|
||
CFI Function bindRemoveClusterIdFromList
|
||
CODE
|
||
// 402 {
|
||
REQUIRE ?V0
|
||
REQUIRE ?V1
|
||
REQUIRE ?V2
|
||
MOV A,#-0xb
|
||
LCALL ?BANKED_ENTER_XDATA
|
||
CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
|
||
CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
|
||
CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
|
||
CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
|
||
CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
|
||
CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
|
||
CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-7)))
|
||
CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI CFA_SP SP+0
|
||
CFI CFA_XSP16 add(XSP16, 11)
|
||
; Saved register size: 11
|
||
; Auto size: 0
|
||
// 403 byte x;
|
||
// 404 uint16 *listPtr;
|
||
// 405 byte numIds;
|
||
// 406
|
||
// 407 if ( entry )
|
||
MOV A,R2
|
||
ORL A,R3
|
||
JZ ??bindRemoveClusterIdFromList_0
|
||
// 408 {
|
||
// 409 if ( entry->numClusterIds > 0 )
|
||
MOV DPL,R2
|
||
MOV DPH,R3
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
MOVX A,@DPTR
|
||
JZ ??bindRemoveClusterIdFromList_0
|
||
// 410 {
|
||
// 411 listPtr = entry->clusterIdList;
|
||
MOV A,R2
|
||
ADD A,#0x6
|
||
MOV R0,A
|
||
CLR A
|
||
ADDC A,R3
|
||
MOV R1,A
|
||
// 412 numIds = entry->numClusterIds;
|
||
MOV DPL,R2
|
||
MOV DPH,R3
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
MOVX A,@DPTR
|
||
MOV ?V1,A
|
||
// 413
|
||
// 414 // Copy the new list over
|
||
// 415 for ( x = 0; x < numIds; x++ )
|
||
MOV ?V0,#0x0
|
||
SJMP ??bindRemoveClusterIdFromList_1
|
||
// 416 {
|
||
// 417 if ( entry->clusterIdList[x] != clusterId )
|
||
// 418 {
|
||
// 419 *listPtr++ = entry->clusterIdList[x];
|
||
// 420 }
|
||
// 421 else
|
||
// 422 {
|
||
// 423 entry->numClusterIds--;
|
||
??bindRemoveClusterIdFromList_2:
|
||
MOV A,R2
|
||
ADD A,#0x5
|
||
MOV DPL,A
|
||
CLR A
|
||
LCALL ??Subroutine41_0 & 0xFFFF
|
||
??CrossCallReturnLabel_61:
|
||
DEC A
|
||
MOVX @DPTR,A
|
||
// 424 if ( entry->numClusterIds == 0 )
|
||
JZ ??bindRemoveClusterIdFromList_0
|
||
// 425 {
|
||
// 426 break;
|
||
// 427 }
|
||
// 428 }
|
||
??bindRemoveClusterIdFromList_3:
|
||
INC ?V0
|
||
??bindRemoveClusterIdFromList_1:
|
||
MOV A,?V0
|
||
CLR C
|
||
SUBB A,?V1
|
||
JNC ??bindRemoveClusterIdFromList_4
|
||
MOV R6,?V0
|
||
MOV A,R6
|
||
ADD A,R6
|
||
MOV R6,A
|
||
CLR A
|
||
RLC A
|
||
MOV R7,A
|
||
LCALL ?Subroutine25 & 0xFFFF
|
||
??CrossCallReturnLabel_32:
|
||
XRL A,R4
|
||
JNZ ??bindRemoveClusterIdFromList_5
|
||
INC DPTR
|
||
MOVX A,@DPTR
|
||
XRL A,R5
|
||
??bindRemoveClusterIdFromList_5:
|
||
JZ ??bindRemoveClusterIdFromList_2
|
||
MOV R6,?V0
|
||
MOV A,R6
|
||
ADD A,R6
|
||
MOV R6,A
|
||
LCALL ?Subroutine25 & 0xFFFF
|
||
// 429 }
|
||
// 430 }
|
||
// 431 }
|
||
??CrossCallReturnLabel_33:
|
||
MOV R6,A
|
||
INC DPTR
|
||
MOVX A,@DPTR
|
||
MOV R7,A
|
||
MOV DPL,R0
|
||
MOV DPH,R1
|
||
MOV A,R6
|
||
MOVX @DPTR,A
|
||
INC DPTR
|
||
MOV A,R7
|
||
MOVX @DPTR,A
|
||
MOV A,R0
|
||
ADD A,#0x2
|
||
MOV R0,A
|
||
JNC ??bindRemoveClusterIdFromList_3
|
||
INC R1
|
||
SJMP ??bindRemoveClusterIdFromList_3
|
||
??bindRemoveClusterIdFromList_4:
|
||
MOV DPL,R2
|
||
MOV DPH,R3
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
MOVX A,@DPTR
|
||
JZ ??bindRemoveClusterIdFromList_0
|
||
// 432
|
||
// 433 if ( entry && (entry->numClusterIds > 0) )
|
||
// 434 {
|
||
// 435 return ( TRUE );
|
||
MOV R1,#0x1
|
||
SJMP ??bindRemoveClusterIdFromList_6
|
||
// 436 }
|
||
// 437 else
|
||
// 438 {
|
||
// 439 return ( FALSE );
|
||
??bindRemoveClusterIdFromList_0:
|
||
MOV R1,#0x0
|
||
// 440 }
|
||
??bindRemoveClusterIdFromList_6:
|
||
LJMP ?Subroutine3 & 0xFFFF
|
||
// 441 }
|
||
CFI EndBlock cfiBlock35
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
?Subroutine25:
|
||
CFI Block cfiCond36 Using cfiCommon0
|
||
CFI Function bindRemoveClusterIdFromList
|
||
CFI Conditional ??CrossCallReturnLabel_32
|
||
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-7)))
|
||
CFI 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, 11)
|
||
CFI Block cfiCond37 Using cfiCommon0
|
||
CFI (cfiCond37) Function bindRemoveClusterIdFromList
|
||
CFI (cfiCond37) Conditional ??CrossCallReturnLabel_33
|
||
CFI (cfiCond37) R6 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI (cfiCond37) VB load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI (cfiCond37) V0 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI (cfiCond37) V1 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI (cfiCond37) V2 load(1, XDATA, add(CFA_XSP16, literal(-7)))
|
||
CFI (cfiCond37) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
|
||
CFI (cfiCond37) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
|
||
CFI (cfiCond37) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
|
||
CFI (cfiCond37) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
|
||
CFI (cfiCond37) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
|
||
CFI (cfiCond37) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
|
||
CFI (cfiCond37) CFA_SP SP+-2
|
||
CFI (cfiCond37) CFA_XSP16 add(XSP16, 11)
|
||
CFI Block cfiPicker38 Using cfiCommon1
|
||
CFI (cfiPicker38) NoFunction
|
||
CFI (cfiPicker38) Picker
|
||
LCALL ?Subroutine35 & 0xFFFF
|
||
??CrossCallReturnLabel_49:
|
||
MOVX A,@DPTR
|
||
RET
|
||
CFI EndBlock cfiCond36
|
||
CFI EndBlock cfiCond37
|
||
CFI EndBlock cfiPicker38
|
||
// 442
|
||
// 443 /*********************************************************************
|
||
// 444 * @fn bindAddClusterIdToList()
|
||
// 445 *
|
||
// 446 * @brief Adds a ClusterID to a list of ClusterIDs.
|
||
// 447 *
|
||
// 448 * @param enter - binding table entry
|
||
// 449 * @param clusterId - Cluster ID to Add
|
||
// 450 *
|
||
// 451 * @return TRUE if Added, FALSE if not
|
||
// 452 */
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
// 453 byte bindAddClusterIdToList( BindingEntry_t *entry, uint16 clusterId )
|
||
bindAddClusterIdToList:
|
||
CFI Block cfiBlock39 Using cfiCommon0
|
||
CFI Function bindAddClusterIdToList
|
||
CODE
|
||
// 454 {
|
||
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
|
||
// 455 if ( entry && entry->numClusterIds < gMAX_BINDING_CLUSTER_IDS )
|
||
MOV A,R2
|
||
ORL A,R3
|
||
JZ ??bindAddClusterIdToList_0
|
||
MOV DPTR,#gMAX_BINDING_CLUSTER_IDS
|
||
CLR A
|
||
MOVC A,@A+DPTR
|
||
MOV R0,A
|
||
MOV DPL,R2
|
||
MOV DPH,R3
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
MOVX A,@DPTR
|
||
CLR C
|
||
SUBB A,R0
|
||
JNC ??bindAddClusterIdToList_0
|
||
// 456 {
|
||
// 457 // Add the new one
|
||
// 458 entry->clusterIdList[entry->numClusterIds] = clusterId;
|
||
MOV A,R2
|
||
ADD A,#0x5
|
||
MOV R0,A
|
||
CLR A
|
||
ADDC A,R3
|
||
MOV R1,A
|
||
MOV DPL,R0
|
||
MOV DPH,A
|
||
MOVX A,@DPTR
|
||
ADD A,0xE0 /* A */
|
||
MOV R6,A
|
||
CLR A
|
||
RLC A
|
||
MOV R7,A
|
||
LCALL ?Subroutine35 & 0xFFFF
|
||
??CrossCallReturnLabel_48:
|
||
MOV A,R4
|
||
MOVX @DPTR,A
|
||
INC DPTR
|
||
MOV A,R5
|
||
MOVX @DPTR,A
|
||
// 459 entry->numClusterIds++;
|
||
MOV DPL,R0
|
||
MOV DPH,R1
|
||
MOVX A,@DPTR
|
||
INC A
|
||
MOVX @DPTR,A
|
||
// 460 return ( TRUE );
|
||
MOV R1,#0x1
|
||
SJMP ??bindAddClusterIdToList_1
|
||
// 461 }
|
||
// 462 return ( FALSE );
|
||
??bindAddClusterIdToList_0:
|
||
MOV R1,#0x0
|
||
??bindAddClusterIdToList_1:
|
||
CFI EndBlock cfiBlock39
|
||
REQUIRE ?Subroutine2
|
||
; // Fall through to label ?Subroutine2
|
||
// 463 }
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
?Subroutine2:
|
||
CFI Block cfiBlock40 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 cfiBlock40
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
?Subroutine35:
|
||
CFI Block cfiCond41 Using cfiCommon0
|
||
CFI Function bindRemoveClusterIdFromList
|
||
CFI Conditional ??CrossCallReturnLabel_49, ??CrossCallReturnLabel_32
|
||
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-7)))
|
||
CFI 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, 11)
|
||
CFI Block cfiCond42 Using cfiCommon0
|
||
CFI (cfiCond42) Function bindRemoveClusterIdFromList
|
||
CFI (cfiCond42) Conditional ??CrossCallReturnLabel_49, ??CrossCallReturnLabel_33
|
||
CFI (cfiCond42) R6 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI (cfiCond42) VB load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI (cfiCond42) V0 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI (cfiCond42) V1 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI (cfiCond42) V2 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, 11)
|
||
CFI Block cfiCond43 Using cfiCommon0
|
||
CFI (cfiCond43) Function bindAddClusterIdToList
|
||
CFI (cfiCond43) Conditional ??CrossCallReturnLabel_48
|
||
CFI (cfiCond43) R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI (cfiCond43) VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI (cfiCond43) V0 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+-2
|
||
CFI (cfiCond43) CFA_XSP16 add(XSP16, 9)
|
||
CFI Block cfiPicker44 Using cfiCommon1
|
||
CFI (cfiPicker44) NoFunction
|
||
CFI (cfiPicker44) Picker
|
||
MOV A,R2
|
||
ADD A,R6
|
||
MOV DPL,A
|
||
MOV A,R3
|
||
ADDC A,R7
|
||
MOV DPH,A
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
RET
|
||
CFI EndBlock cfiCond41
|
||
CFI EndBlock cfiCond42
|
||
CFI EndBlock cfiCond43
|
||
CFI EndBlock cfiPicker44
|
||
// 464
|
||
// 465 /*********************************************************************
|
||
// 466 * @fn bindFindExisting
|
||
// 467 *
|
||
// 468 * @brief Finds an existing src/epint to dst/epint bind record
|
||
// 469 *
|
||
// 470 * @param srcAddr - Source address
|
||
// 471 * @param srcEpInt - Source Endpoint/Interface
|
||
// 472 * @param dstAddr - Destination address
|
||
// 473 * @param dstEpInt - Destination Endpoint/Interface
|
||
// 474 *
|
||
// 475 * @return pointer to existing entry or NULL
|
||
// 476 */
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
// 477 BindingEntry_t *bindFindExisting( byte srcEpInt,
|
||
bindFindExisting:
|
||
CFI Block cfiBlock45 Using cfiCommon0
|
||
CFI Function bindFindExisting
|
||
CODE
|
||
// 478 zAddrType_t *dstAddr, byte dstEpInt )
|
||
// 479 {
|
||
FUNCALL bindFindExisting, bindingAddrMgsHelperFind
|
||
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
|
||
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
|
||
MOV A,R2
|
||
MOV R6,A
|
||
MOV A,R3
|
||
MOV R7,A
|
||
MOV ?V1,R4
|
||
// 480 uint16 dstIdx;
|
||
// 481 uint16 x;
|
||
// 482
|
||
// 483 // Find the records in the assoc list
|
||
// 484 if ( dstAddr->addrMode == AddrGroup )
|
||
MOV DPL,R2
|
||
MOV DPH,A
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
MOVX A,@DPTR
|
||
XRL A,#0x1
|
||
JNZ ??bindFindExisting_0
|
||
// 485 {
|
||
// 486 dstIdx = dstAddr->addr.shortAddr;
|
||
MOV DPL,R2
|
||
MOV DPH,R3
|
||
MOVX A,@DPTR
|
||
MOV R4,A
|
||
INC DPTR
|
||
MOVX A,@DPTR
|
||
MOV R5,A
|
||
SJMP ??CrossCallReturnLabel_38
|
||
// 487 }
|
||
// 488 else
|
||
// 489 {
|
||
// 490 dstIdx = bindingAddrMgsHelperFind( dstAddr );
|
||
??bindFindExisting_0:
|
||
; Setup parameters for call to function bindingAddrMgsHelperFind
|
||
LCALL ?Subroutine29 & 0xFFFF
|
||
// 491 }
|
||
// 492
|
||
// 493 if ( dstIdx == INVALID_NODE_ADDR )
|
||
??CrossCallReturnLabel_38:
|
||
MOV A,#-0x2
|
||
XRL A,R4
|
||
JNZ ??bindFindExisting_1
|
||
MOV A,#-0x1
|
||
XRL A,R5
|
||
??bindFindExisting_1:
|
||
JZ ??bindFindExisting_2
|
||
// 494 {
|
||
// 495 return ( (BindingEntry_t *)NULL );
|
||
// 496 }
|
||
// 497
|
||
// 498 // Start at the beginning
|
||
// 499 for ( x = 0; x < gNWK_MAX_BINDING_ENTRIES; x++ )
|
||
MOV R0,#0x0
|
||
MOV R1,#0x0
|
||
SJMP ??bindFindExisting_3
|
||
// 500 {
|
||
// 501 if ( (BindingTable[x].srcEP == srcEpInt) )
|
||
// 502 {
|
||
// 503 if ( ((dstAddr->addrMode == AddrGroup)
|
||
// 504 && (BindingTable[x].dstGroupMode == DSTGROUPMODE_GROUP)
|
||
// 505 && (dstIdx == BindingTable[x].dstIdx))
|
||
// 506 || ((dstAddr->addrMode != AddrGroup)
|
||
// 507 && (BindingTable[x].dstGroupMode == DSTGROUPMODE_ADDR)
|
||
// 508 && (dstIdx == BindingTable[x].dstIdx) && (BindingTable[x].dstEP == dstEpInt)) )
|
||
??bindFindExisting_4:
|
||
LCALL ?Subroutine26 & 0xFFFF
|
||
??CrossCallReturnLabel_34:
|
||
LCALL ??Subroutine41_0 & 0xFFFF
|
||
??CrossCallReturnLabel_62:
|
||
XRL A,#0x1
|
||
JNZ ??bindFindExisting_5
|
||
LCALL ?Subroutine27 & 0xFFFF
|
||
??CrossCallReturnLabel_36:
|
||
LCALL ??Subroutine41_0 & 0xFFFF
|
||
??CrossCallReturnLabel_63:
|
||
XRL A,R4
|
||
JNZ ??bindFindExisting_6
|
||
INC DPTR
|
||
MOVX A,@DPTR
|
||
XRL A,R5
|
||
??bindFindExisting_6:
|
||
JZ ??bindFindExisting_7
|
||
??bindFindExisting_5:
|
||
INC R0
|
||
MOV A,R0
|
||
JNZ ??bindFindExisting_3
|
||
INC R1
|
||
??bindFindExisting_3:
|
||
LCALL ?Subroutine7 & 0xFFFF
|
||
??CrossCallReturnLabel_2:
|
||
JNC ??bindFindExisting_2
|
||
LCALL ?Subroutine21 & 0xFFFF
|
||
??CrossCallReturnLabel_69:
|
||
XRL A,?V0
|
||
JNZ ??bindFindExisting_5
|
||
MOV DPL,R6
|
||
MOV DPH,R7
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
MOVX A,@DPTR
|
||
XRL A,#0x1
|
||
JZ ??bindFindExisting_4
|
||
LCALL ?Subroutine26 & 0xFFFF
|
||
??CrossCallReturnLabel_35:
|
||
LCALL ??Subroutine41_0 & 0xFFFF
|
||
??CrossCallReturnLabel_64:
|
||
JNZ ??bindFindExisting_5
|
||
LCALL ?Subroutine27 & 0xFFFF
|
||
??CrossCallReturnLabel_37:
|
||
LCALL ??Subroutine41_0 & 0xFFFF
|
||
??CrossCallReturnLabel_65:
|
||
XRL A,R4
|
||
JNZ ??bindFindExisting_8
|
||
INC DPTR
|
||
MOVX A,@DPTR
|
||
XRL A,R5
|
||
??bindFindExisting_8:
|
||
JNZ ??bindFindExisting_5
|
||
MOV A,R0
|
||
MOV R2,A
|
||
MOV A,R1
|
||
MOV R3,A
|
||
MOV A,R2
|
||
MOV B,#0xe
|
||
MUL AB
|
||
MOV R2,A
|
||
MOV B,#0xe
|
||
MOV A,R3
|
||
MUL AB
|
||
ADD A,?V2
|
||
MOV R3,A
|
||
MOV A,#(BindingTable + 4) & 0xff
|
||
ADD A,R2
|
||
MOV DPL,A
|
||
MOV A,#((BindingTable + 4) >> 8) & 0xff
|
||
LCALL ??Subroutine41_0 & 0xFFFF
|
||
??CrossCallReturnLabel_66:
|
||
XRL A,?V1
|
||
JNZ ??bindFindExisting_5
|
||
// 509 {
|
||
// 510 return ( &BindingTable[x] );
|
||
??bindFindExisting_7:
|
||
LCALL ?Subroutine22 & 0xFFFF
|
||
// 511 }
|
||
// 512 }
|
||
// 513 }
|
||
??CrossCallReturnLabel_27:
|
||
SJMP ??bindFindExisting_9
|
||
// 514
|
||
// 515 return ( (BindingEntry_t *)NULL );
|
||
??bindFindExisting_2:
|
||
MOV R2,#0x0
|
||
MOV R3,#0x0
|
||
??bindFindExisting_9:
|
||
LJMP ??Subroutine45_0 & 0xFFFF
|
||
// 516 }
|
||
CFI EndBlock cfiBlock45
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
?Subroutine27:
|
||
CFI Block cfiCond46 Using cfiCommon0
|
||
CFI Function bindFindExisting
|
||
CFI Conditional ??CrossCallReturnLabel_36
|
||
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 cfiCond47 Using cfiCommon0
|
||
CFI (cfiCond47) Function bindFindExisting
|
||
CFI (cfiCond47) Conditional ??CrossCallReturnLabel_37
|
||
CFI (cfiCond47) R6 load(1, XDATA, add(CFA_XSP16, literal(-12)))
|
||
CFI (cfiCond47) VB load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI (cfiCond47) V0 load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI (cfiCond47) V1 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI (cfiCond47) V2 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI (cfiCond47) V3 load(1, XDATA, add(CFA_XSP16, literal(-7)))
|
||
CFI (cfiCond47) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
|
||
CFI (cfiCond47) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
|
||
CFI (cfiCond47) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
|
||
CFI (cfiCond47) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
|
||
CFI (cfiCond47) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
|
||
CFI (cfiCond47) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
|
||
CFI (cfiCond47) CFA_SP SP+-2
|
||
CFI (cfiCond47) CFA_XSP16 add(XSP16, 12)
|
||
CFI Block cfiPicker48 Using cfiCommon1
|
||
CFI (cfiPicker48) NoFunction
|
||
CFI (cfiPicker48) Picker
|
||
MOV A,R0
|
||
MOV R2,A
|
||
MOV A,R1
|
||
MOV R3,A
|
||
MOV A,R2
|
||
MOV B,#0xe
|
||
MUL AB
|
||
MOV R2,A
|
||
MOV B,#0xe
|
||
MOV A,R3
|
||
MUL AB
|
||
ADD A,?V2
|
||
MOV R3,A
|
||
MOV A,#(BindingTable + 2) & 0xff
|
||
ADD A,R2
|
||
MOV DPL,A
|
||
MOV A,#((BindingTable + 2) >> 8) & 0xff
|
||
RET
|
||
CFI EndBlock cfiCond46
|
||
CFI EndBlock cfiCond47
|
||
CFI EndBlock cfiPicker48
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
?Subroutine26:
|
||
CFI Block cfiCond49 Using cfiCommon0
|
||
CFI Function bindFindExisting
|
||
CFI Conditional ??CrossCallReturnLabel_34
|
||
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 cfiCond50 Using cfiCommon0
|
||
CFI (cfiCond50) Function bindFindExisting
|
||
CFI (cfiCond50) Conditional ??CrossCallReturnLabel_35
|
||
CFI (cfiCond50) R6 load(1, XDATA, add(CFA_XSP16, literal(-12)))
|
||
CFI (cfiCond50) VB load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI (cfiCond50) V0 load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI (cfiCond50) V1 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI (cfiCond50) V2 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI (cfiCond50) V3 load(1, XDATA, add(CFA_XSP16, literal(-7)))
|
||
CFI (cfiCond50) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
|
||
CFI (cfiCond50) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
|
||
CFI (cfiCond50) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
|
||
CFI (cfiCond50) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
|
||
CFI (cfiCond50) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
|
||
CFI (cfiCond50) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
|
||
CFI (cfiCond50) CFA_SP SP+-2
|
||
CFI (cfiCond50) CFA_XSP16 add(XSP16, 12)
|
||
CFI Block cfiPicker51 Using cfiCommon1
|
||
CFI (cfiPicker51) NoFunction
|
||
CFI (cfiPicker51) Picker
|
||
MOV A,R0
|
||
MOV R2,A
|
||
MOV A,R1
|
||
MOV R3,A
|
||
MOV A,R2
|
||
MOV B,#0xe
|
||
MUL AB
|
||
MOV R2,A
|
||
MOV B,#0xe
|
||
MOV A,R3
|
||
MUL AB
|
||
ADD A,?V2
|
||
MOV R3,A
|
||
MOV A,#(BindingTable + 1) & 0xff
|
||
ADD A,R2
|
||
MOV DPL,A
|
||
MOV A,#((BindingTable + 1) >> 8) & 0xff
|
||
RET
|
||
CFI EndBlock cfiCond49
|
||
CFI EndBlock cfiCond50
|
||
CFI EndBlock cfiPicker51
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
?Subroutine21:
|
||
CFI Block cfiCond52 Using cfiCommon0
|
||
CFI Function bindCapacity
|
||
CFI Conditional ??CrossCallReturnLabel_68
|
||
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-7)))
|
||
CFI 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, 11)
|
||
CFI Block cfiCond53 Using cfiCommon0
|
||
CFI (cfiCond53) Function bindFindExisting
|
||
CFI (cfiCond53) Conditional ??CrossCallReturnLabel_69
|
||
CFI (cfiCond53) R6 load(1, XDATA, add(CFA_XSP16, literal(-12)))
|
||
CFI (cfiCond53) VB load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI (cfiCond53) V0 load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI (cfiCond53) V1 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI (cfiCond53) V2 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI (cfiCond53) V3 load(1, XDATA, add(CFA_XSP16, literal(-7)))
|
||
CFI (cfiCond53) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
|
||
CFI (cfiCond53) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
|
||
CFI (cfiCond53) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
|
||
CFI (cfiCond53) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
|
||
CFI (cfiCond53) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
|
||
CFI (cfiCond53) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
|
||
CFI (cfiCond53) CFA_SP SP+-2
|
||
CFI (cfiCond53) CFA_XSP16 add(XSP16, 12)
|
||
CFI Block cfiPicker54 Using cfiCommon1
|
||
CFI (cfiPicker54) NoFunction
|
||
CFI (cfiPicker54) Picker
|
||
MOV A,R0
|
||
MOV R2,A
|
||
MOV A,R1
|
||
MOV R3,A
|
||
MOV A,R2
|
||
MOV B,#0xe
|
||
MUL AB
|
||
MOV R2,A
|
||
MOV ?V2,B
|
||
MOV B,#0xe
|
||
MOV A,R3
|
||
MUL AB
|
||
ADD A,?V2
|
||
CFI EndBlock cfiCond52
|
||
CFI EndBlock cfiCond53
|
||
CFI EndBlock cfiPicker54
|
||
REQUIRE ??Subroutine40_0
|
||
; // Fall through to label ??Subroutine40_0
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
??Subroutine40_0:
|
||
CFI Block cfiCond55 Using cfiCommon0
|
||
CFI Function bindFindEmpty
|
||
CFI Conditional ??CrossCallReturnLabel_67
|
||
CFI DPL0 Frame(CFA_SP, 4)
|
||
CFI DPH0 Frame(CFA_SP, 5)
|
||
CFI CFA_SP SP+-7
|
||
CFI Block cfiCond56 Using cfiCommon0
|
||
CFI (cfiCond56) Function bindCapacity
|
||
CFI (cfiCond56) Conditional ??CrossCallReturnLabel_68
|
||
CFI (cfiCond56) R6 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI (cfiCond56) VB load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI (cfiCond56) V0 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI (cfiCond56) V1 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI (cfiCond56) V2 load(1, XDATA, add(CFA_XSP16, literal(-7)))
|
||
CFI (cfiCond56) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
|
||
CFI (cfiCond56) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
|
||
CFI (cfiCond56) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
|
||
CFI (cfiCond56) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
|
||
CFI (cfiCond56) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
|
||
CFI (cfiCond56) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
|
||
CFI (cfiCond56) CFA_SP SP+-2
|
||
CFI (cfiCond56) CFA_XSP16 add(XSP16, 11)
|
||
CFI Block cfiCond57 Using cfiCommon0
|
||
CFI (cfiCond57) Function bindFindExisting
|
||
CFI (cfiCond57) Conditional ??CrossCallReturnLabel_69
|
||
CFI (cfiCond57) R6 load(1, XDATA, add(CFA_XSP16, literal(-12)))
|
||
CFI (cfiCond57) VB load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI (cfiCond57) V0 load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI (cfiCond57) V1 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI (cfiCond57) V2 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI (cfiCond57) V3 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, 12)
|
||
CFI Block cfiPicker58 Using cfiCommon1
|
||
CFI (cfiPicker58) NoFunction
|
||
CFI (cfiPicker58) Picker
|
||
MOV R3,A
|
||
MOV A,#BindingTable & 0xff
|
||
ADD A,R2
|
||
MOV DPL,A
|
||
MOV A,#(BindingTable >> 8) & 0xff
|
||
CFI EndBlock cfiCond55
|
||
CFI EndBlock cfiCond56
|
||
CFI EndBlock cfiCond57
|
||
CFI EndBlock cfiPicker58
|
||
REQUIRE ??Subroutine41_0
|
||
; // Fall through to label ??Subroutine41_0
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
??Subroutine41_0:
|
||
CFI Block cfiCond59 Using cfiCommon0
|
||
CFI Function bindAddEntry
|
||
CFI Conditional ??CrossCallReturnLabel_60
|
||
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-15)))
|
||
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-14)))
|
||
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-13)))
|
||
CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-12)))
|
||
CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI V4 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI V5 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI V6 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, 18)
|
||
CFI Block cfiCond60 Using cfiCommon0
|
||
CFI (cfiCond60) Function bindRemoveClusterIdFromList
|
||
CFI (cfiCond60) Conditional ??CrossCallReturnLabel_61
|
||
CFI (cfiCond60) R6 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI (cfiCond60) VB load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI (cfiCond60) V0 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI (cfiCond60) V1 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI (cfiCond60) V2 load(1, XDATA, add(CFA_XSP16, literal(-7)))
|
||
CFI (cfiCond60) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
|
||
CFI (cfiCond60) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
|
||
CFI (cfiCond60) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
|
||
CFI (cfiCond60) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
|
||
CFI (cfiCond60) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
|
||
CFI (cfiCond60) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
|
||
CFI (cfiCond60) CFA_SP SP+-2
|
||
CFI (cfiCond60) CFA_XSP16 add(XSP16, 11)
|
||
CFI Block cfiCond61 Using cfiCommon0
|
||
CFI (cfiCond61) Function bindFindExisting
|
||
CFI (cfiCond61) Conditional ??CrossCallReturnLabel_62
|
||
CFI (cfiCond61) R6 load(1, XDATA, add(CFA_XSP16, literal(-12)))
|
||
CFI (cfiCond61) VB load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI (cfiCond61) V0 load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI (cfiCond61) V1 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI (cfiCond61) V2 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI (cfiCond61) V3 load(1, XDATA, add(CFA_XSP16, literal(-7)))
|
||
CFI (cfiCond61) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
|
||
CFI (cfiCond61) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
|
||
CFI (cfiCond61) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
|
||
CFI (cfiCond61) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
|
||
CFI (cfiCond61) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
|
||
CFI (cfiCond61) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
|
||
CFI (cfiCond61) CFA_SP SP+-2
|
||
CFI (cfiCond61) CFA_XSP16 add(XSP16, 12)
|
||
CFI Block cfiCond62 Using cfiCommon0
|
||
CFI (cfiCond62) Function bindFindExisting
|
||
CFI (cfiCond62) Conditional ??CrossCallReturnLabel_63
|
||
CFI (cfiCond62) R6 load(1, XDATA, add(CFA_XSP16, literal(-12)))
|
||
CFI (cfiCond62) VB load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI (cfiCond62) V0 load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI (cfiCond62) V1 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI (cfiCond62) V2 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI (cfiCond62) V3 load(1, XDATA, add(CFA_XSP16, literal(-7)))
|
||
CFI (cfiCond62) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
|
||
CFI (cfiCond62) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
|
||
CFI (cfiCond62) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
|
||
CFI (cfiCond62) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
|
||
CFI (cfiCond62) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
|
||
CFI (cfiCond62) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
|
||
CFI (cfiCond62) CFA_SP SP+-2
|
||
CFI (cfiCond62) CFA_XSP16 add(XSP16, 12)
|
||
CFI Block cfiCond63 Using cfiCommon0
|
||
CFI (cfiCond63) Function bindFindExisting
|
||
CFI (cfiCond63) Conditional ??CrossCallReturnLabel_64
|
||
CFI (cfiCond63) R6 load(1, XDATA, add(CFA_XSP16, literal(-12)))
|
||
CFI (cfiCond63) VB load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI (cfiCond63) V0 load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI (cfiCond63) V1 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI (cfiCond63) V2 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI (cfiCond63) V3 load(1, XDATA, add(CFA_XSP16, literal(-7)))
|
||
CFI (cfiCond63) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
|
||
CFI (cfiCond63) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
|
||
CFI (cfiCond63) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
|
||
CFI (cfiCond63) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
|
||
CFI (cfiCond63) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
|
||
CFI (cfiCond63) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
|
||
CFI (cfiCond63) CFA_SP SP+-2
|
||
CFI (cfiCond63) CFA_XSP16 add(XSP16, 12)
|
||
CFI Block cfiCond64 Using cfiCommon0
|
||
CFI (cfiCond64) Function bindFindExisting
|
||
CFI (cfiCond64) Conditional ??CrossCallReturnLabel_65
|
||
CFI (cfiCond64) R6 load(1, XDATA, add(CFA_XSP16, literal(-12)))
|
||
CFI (cfiCond64) VB load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI (cfiCond64) V0 load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI (cfiCond64) V1 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI (cfiCond64) V2 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI (cfiCond64) V3 load(1, XDATA, add(CFA_XSP16, literal(-7)))
|
||
CFI (cfiCond64) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
|
||
CFI (cfiCond64) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
|
||
CFI (cfiCond64) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
|
||
CFI (cfiCond64) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
|
||
CFI (cfiCond64) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
|
||
CFI (cfiCond64) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
|
||
CFI (cfiCond64) CFA_SP SP+-2
|
||
CFI (cfiCond64) CFA_XSP16 add(XSP16, 12)
|
||
CFI Block cfiCond65 Using cfiCommon0
|
||
CFI (cfiCond65) Function bindFindExisting
|
||
CFI (cfiCond65) Conditional ??CrossCallReturnLabel_66
|
||
CFI (cfiCond65) R6 load(1, XDATA, add(CFA_XSP16, literal(-12)))
|
||
CFI (cfiCond65) VB load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI (cfiCond65) V0 load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI (cfiCond65) V1 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI (cfiCond65) V2 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI (cfiCond65) V3 load(1, XDATA, add(CFA_XSP16, literal(-7)))
|
||
CFI (cfiCond65) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
|
||
CFI (cfiCond65) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
|
||
CFI (cfiCond65) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
|
||
CFI (cfiCond65) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
|
||
CFI (cfiCond65) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
|
||
CFI (cfiCond65) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
|
||
CFI (cfiCond65) CFA_SP SP+-2
|
||
CFI (cfiCond65) CFA_XSP16 add(XSP16, 12)
|
||
CFI Block cfiCond66 Using cfiCommon0
|
||
CFI (cfiCond66) Function bindFindEmpty
|
||
CFI (cfiCond66) Conditional ??CrossCallReturnLabel_67
|
||
CFI (cfiCond66) DPL0 Frame(CFA_SP, 4)
|
||
CFI (cfiCond66) DPH0 Frame(CFA_SP, 5)
|
||
CFI (cfiCond66) CFA_SP SP+-7
|
||
CFI Block cfiCond67 Using cfiCommon0
|
||
CFI (cfiCond67) Function bindCapacity
|
||
CFI (cfiCond67) Conditional ??CrossCallReturnLabel_68
|
||
CFI (cfiCond67) R6 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI (cfiCond67) VB load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI (cfiCond67) V0 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI (cfiCond67) V1 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI (cfiCond67) V2 load(1, XDATA, add(CFA_XSP16, literal(-7)))
|
||
CFI (cfiCond67) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
|
||
CFI (cfiCond67) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
|
||
CFI (cfiCond67) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
|
||
CFI (cfiCond67) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
|
||
CFI (cfiCond67) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
|
||
CFI (cfiCond67) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
|
||
CFI (cfiCond67) CFA_SP SP+-2
|
||
CFI (cfiCond67) CFA_XSP16 add(XSP16, 11)
|
||
CFI Block cfiCond68 Using cfiCommon0
|
||
CFI (cfiCond68) Function bindFindExisting
|
||
CFI (cfiCond68) Conditional ??CrossCallReturnLabel_69
|
||
CFI (cfiCond68) R6 load(1, XDATA, add(CFA_XSP16, literal(-12)))
|
||
CFI (cfiCond68) VB load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI (cfiCond68) V0 load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI (cfiCond68) V1 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI (cfiCond68) V2 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI (cfiCond68) V3 load(1, XDATA, add(CFA_XSP16, literal(-7)))
|
||
CFI (cfiCond68) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
|
||
CFI (cfiCond68) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
|
||
CFI (cfiCond68) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
|
||
CFI (cfiCond68) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
|
||
CFI (cfiCond68) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
|
||
CFI (cfiCond68) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
|
||
CFI (cfiCond68) CFA_SP SP+-2
|
||
CFI (cfiCond68) CFA_XSP16 add(XSP16, 12)
|
||
CFI Block cfiPicker69 Using cfiCommon1
|
||
CFI (cfiPicker69) NoFunction
|
||
CFI (cfiPicker69) Picker
|
||
ADDC A,R3
|
||
MOV DPH,A
|
||
MOVX A,@DPTR
|
||
RET
|
||
CFI EndBlock cfiCond59
|
||
CFI EndBlock cfiCond60
|
||
CFI EndBlock cfiCond61
|
||
CFI EndBlock cfiCond62
|
||
CFI EndBlock cfiCond63
|
||
CFI EndBlock cfiCond64
|
||
CFI EndBlock cfiCond65
|
||
CFI EndBlock cfiCond66
|
||
CFI EndBlock cfiCond67
|
||
CFI EndBlock cfiCond68
|
||
CFI EndBlock cfiPicker69
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
?Subroutine7:
|
||
CFI Block cfiCond70 Using cfiCommon0
|
||
CFI Function bindFindEmpty
|
||
CFI Conditional ??CrossCallReturnLabel_0
|
||
CFI DPL0 Frame(CFA_SP, 4)
|
||
CFI DPH0 Frame(CFA_SP, 5)
|
||
CFI CFA_SP SP+-7
|
||
CFI Block cfiCond71 Using cfiCommon0
|
||
CFI (cfiCond71) Function bindCapacity
|
||
CFI (cfiCond71) Conditional ??CrossCallReturnLabel_1
|
||
CFI (cfiCond71) R6 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI (cfiCond71) VB load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI (cfiCond71) V0 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI (cfiCond71) V1 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI (cfiCond71) V2 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, 11)
|
||
CFI Block cfiCond72 Using cfiCommon0
|
||
CFI (cfiCond72) Function bindFindExisting
|
||
CFI (cfiCond72) Conditional ??CrossCallReturnLabel_2
|
||
CFI (cfiCond72) R6 load(1, XDATA, add(CFA_XSP16, literal(-12)))
|
||
CFI (cfiCond72) VB load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI (cfiCond72) V0 load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI (cfiCond72) V1 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI (cfiCond72) V2 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI (cfiCond72) V3 load(1, XDATA, add(CFA_XSP16, literal(-7)))
|
||
CFI (cfiCond72) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
|
||
CFI (cfiCond72) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
|
||
CFI (cfiCond72) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
|
||
CFI (cfiCond72) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
|
||
CFI (cfiCond72) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
|
||
CFI (cfiCond72) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
|
||
CFI (cfiCond72) CFA_SP SP+-2
|
||
CFI (cfiCond72) CFA_XSP16 add(XSP16, 12)
|
||
CFI Block cfiCond73 Using cfiCommon0
|
||
CFI (cfiCond73) Function bindNumBoundTo
|
||
CFI (cfiCond73) Conditional ??CrossCallReturnLabel_3
|
||
CFI (cfiCond73) R6 load(1, XDATA, add(CFA_XSP16, literal(-13)))
|
||
CFI (cfiCond73) VB load(1, XDATA, add(CFA_XSP16, literal(-12)))
|
||
CFI (cfiCond73) V0 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI (cfiCond73) V1 load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI (cfiCond73) V2 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI (cfiCond73) V3 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI (cfiCond73) V4 load(1, XDATA, add(CFA_XSP16, literal(-7)))
|
||
CFI (cfiCond73) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
|
||
CFI (cfiCond73) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
|
||
CFI (cfiCond73) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
|
||
CFI (cfiCond73) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
|
||
CFI (cfiCond73) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
|
||
CFI (cfiCond73) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
|
||
CFI (cfiCond73) CFA_SP SP+-2
|
||
CFI (cfiCond73) CFA_XSP16 add(XSP16, 13)
|
||
CFI Block cfiCond74 Using cfiCommon0
|
||
CFI (cfiCond74) Function bindUpdateAddr
|
||
CFI (cfiCond74) Conditional ??CrossCallReturnLabel_4
|
||
CFI (cfiCond74) R6 load(1, XDATA, add(CFA_XSP16, literal(-12)))
|
||
CFI (cfiCond74) VB load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI (cfiCond74) V0 load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI (cfiCond74) V1 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI (cfiCond74) V2 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI (cfiCond74) V3 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, 21)
|
||
CFI Block cfiPicker75 Using cfiCommon1
|
||
CFI (cfiPicker75) NoFunction
|
||
CFI (cfiPicker75) Picker
|
||
MOV DPTR,#gNWK_MAX_BINDING_ENTRIES
|
||
CLR A
|
||
MOVC A,@A+DPTR
|
||
MOV R2,A
|
||
MOV A,#0x1
|
||
MOVC A,@A+DPTR
|
||
MOV R3,A
|
||
CLR C
|
||
MOV A,R0
|
||
SUBB A,R2
|
||
MOV A,R1
|
||
SUBB A,R3
|
||
RET
|
||
CFI EndBlock cfiCond70
|
||
CFI EndBlock cfiCond71
|
||
CFI EndBlock cfiCond72
|
||
CFI EndBlock cfiCond73
|
||
CFI EndBlock cfiCond74
|
||
CFI EndBlock cfiPicker75
|
||
// 517
|
||
// 518 /*********************************************************************
|
||
// 519 * @fn bindRemoveDev()
|
||
// 520 *
|
||
// 521 * @brief
|
||
// 522 *
|
||
// 523 * Remove binds(s) associated to device address (destination).
|
||
// 524 * Updates binding table.
|
||
// 525 *
|
||
// 526 * @param Addr - address of device
|
||
// 527 *
|
||
// 528 * @return none
|
||
// 529 */
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
// 530 void bindRemoveDev( zAddrType_t *Addr )
|
||
bindRemoveDev:
|
||
CFI Block cfiBlock76 Using cfiCommon0
|
||
CFI Function bindRemoveDev
|
||
CODE
|
||
// 531 {
|
||
FUNCALL bindRemoveDev, bindingAddrMgsHelperFind
|
||
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
|
||
FUNCALL bindRemoveDev, bindRemoveEntry
|
||
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
|
||
REQUIRE ?V4
|
||
REQUIRE ?V5
|
||
MOV A,#-0xe
|
||
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 V5 load(1, XDATA, add(CFA_XSP16, literal(-7)))
|
||
CFI V4 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-12)))
|
||
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-13)))
|
||
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-14)))
|
||
CFI CFA_SP SP+0
|
||
CFI CFA_XSP16 add(XSP16, 14)
|
||
; Saved register size: 14
|
||
; Auto size: 0
|
||
MOV ?V2,R2
|
||
MOV ?V3,R3
|
||
// 532 uint16 idx;
|
||
// 533 uint16 x;
|
||
// 534
|
||
// 535 if ( Addr->addrMode == AddrGroup )
|
||
MOV DPL,R2
|
||
MOV DPH,R3
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
MOVX A,@DPTR
|
||
XRL A,#0x1
|
||
JNZ ??bindRemoveDev_0
|
||
// 536 {
|
||
// 537 idx = Addr->addr.shortAddr;
|
||
MOV DPL,R2
|
||
MOV DPH,R3
|
||
MOVX A,@DPTR
|
||
MOV ?V0,A
|
||
INC DPTR
|
||
MOVX A,@DPTR
|
||
MOV ?V1,A
|
||
SJMP ??bindRemoveDev_1
|
||
// 538 }
|
||
// 539 else
|
||
// 540 {
|
||
// 541 idx = bindingAddrMgsHelperFind( Addr );
|
||
??bindRemoveDev_0:
|
||
; Setup parameters for call to function bindingAddrMgsHelperFind
|
||
LCALL `??bindingAddrMgsHelperFind::?relay`; Banked call to: bindingAddrMgsHelperFind
|
||
MOV ?V0,R2
|
||
MOV ?V1,R3
|
||
// 542 }
|
||
// 543
|
||
// 544 if ( idx == INVALID_NODE_ADDR )
|
||
??bindRemoveDev_1:
|
||
MOV A,#-0x2
|
||
XRL A,?V0
|
||
JNZ ??bindRemoveDev_2
|
||
MOV A,#-0x1
|
||
XRL A,?V1
|
||
??bindRemoveDev_2:
|
||
JZ ??bindRemoveDev_3
|
||
// 545 {
|
||
// 546 return;
|
||
// 547 }
|
||
// 548
|
||
// 549 for ( x = 0; x < gNWK_MAX_BINDING_ENTRIES; x++ )
|
||
MOV R6,#0x0
|
||
MOV R7,#0x0
|
||
SJMP ??bindRemoveDev_4
|
||
// 550 {
|
||
// 551 if ( ((Addr->addrMode != AddrGroup) )
|
||
// 552 || ((Addr->addrMode == AddrGroup) && (BindingTable[x].dstGroupMode == DSTGROUPMODE_GROUP)
|
||
// 553 && (BindingTable[x].dstIdx == idx))
|
||
// 554 || ((Addr->addrMode != AddrGroup) && (BindingTable[x].dstGroupMode == DSTGROUPMODE_ADDR)
|
||
// 555 && (BindingTable[x].dstIdx == idx)) )
|
||
??bindRemoveDev_5:
|
||
MOV DPL,?V2
|
||
MOV DPH,?V3
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
MOVX A,@DPTR
|
||
XRL A,#0x1
|
||
JNZ ??bindRemoveDev_6
|
||
MOV A,R6
|
||
MOV R0,A
|
||
MOV A,R7
|
||
MOV R1,A
|
||
MOV A,R0
|
||
MOV B,#0xe
|
||
MUL AB
|
||
MOV R0,A
|
||
MOV R2,B
|
||
MOV B,#0xe
|
||
MOV A,R1
|
||
MUL AB
|
||
ADD A,R2
|
||
MOV R1,A
|
||
LCALL ?Subroutine16 & 0xFFFF
|
||
??CrossCallReturnLabel_20:
|
||
XRL A,#0x1
|
||
JNZ ??CrossCallReturnLabel_14
|
||
MOV A,R6
|
||
MOV R0,A
|
||
MOV A,R7
|
||
MOV R1,A
|
||
MOV A,R0
|
||
MOV B,#0xe
|
||
MUL AB
|
||
MOV R0,A
|
||
MOV B,#0xe
|
||
MOV A,R1
|
||
MUL AB
|
||
ADD A,R2
|
||
MOV R1,A
|
||
MOV A,#(BindingTable + 2) & 0xff
|
||
ADD A,R0
|
||
MOV DPL,A
|
||
MOV A,#((BindingTable + 2) >> 8) & 0xff
|
||
ADDC A,R1
|
||
MOV DPH,A
|
||
MOVX A,@DPTR
|
||
XRL A,?V0
|
||
JNZ ??bindRemoveDev_7
|
||
INC DPTR
|
||
MOVX A,@DPTR
|
||
XRL A,?V1
|
||
??bindRemoveDev_7:
|
||
JNZ ??CrossCallReturnLabel_14
|
||
// 556 {
|
||
// 557 bindRemoveEntry( &BindingTable[x] );
|
||
??bindRemoveDev_6:
|
||
; Setup parameters for call to function bindRemoveEntry
|
||
LCALL ?Subroutine14 & 0xFFFF
|
||
// 558 }
|
||
// 559 }
|
||
??CrossCallReturnLabel_14:
|
||
INC R6
|
||
MOV A,R6
|
||
JNZ ??bindRemoveDev_4
|
||
INC R7
|
||
??bindRemoveDev_4:
|
||
LCALL ?Subroutine10 & 0xFFFF
|
||
??CrossCallReturnLabel_7:
|
||
JC ??bindRemoveDev_5
|
||
// 560 }
|
||
??bindRemoveDev_3:
|
||
MOV R7,#0x6
|
||
LJMP ?BANKED_LEAVE_XDATA
|
||
CFI EndBlock cfiBlock76
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
?Subroutine16:
|
||
CFI Block cfiCond77 Using cfiCommon0
|
||
CFI Function bindAddEntry
|
||
CFI Conditional ??CrossCallReturnLabel_19
|
||
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-15)))
|
||
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-14)))
|
||
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-13)))
|
||
CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-12)))
|
||
CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI V4 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI V5 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI V6 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, 18)
|
||
CFI Block cfiCond78 Using cfiCommon0
|
||
CFI (cfiCond78) Function bindRemoveDev
|
||
CFI (cfiCond78) Conditional ??CrossCallReturnLabel_20
|
||
CFI (cfiCond78) R6 load(1, XDATA, add(CFA_XSP16, literal(-14)))
|
||
CFI (cfiCond78) VB load(1, XDATA, add(CFA_XSP16, literal(-13)))
|
||
CFI (cfiCond78) V0 load(1, XDATA, add(CFA_XSP16, literal(-12)))
|
||
CFI (cfiCond78) V1 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI (cfiCond78) V2 load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI (cfiCond78) V3 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI (cfiCond78) V4 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI (cfiCond78) V5 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, 14)
|
||
CFI Block cfiPicker79 Using cfiCommon1
|
||
CFI (cfiPicker79) NoFunction
|
||
CFI (cfiPicker79) Picker
|
||
MOV A,#(BindingTable + 1) & 0xff
|
||
ADD A,R0
|
||
MOV DPL,A
|
||
MOV A,#((BindingTable + 1) >> 8) & 0xff
|
||
ADDC A,R1
|
||
MOV DPH,A
|
||
MOVX A,@DPTR
|
||
RET
|
||
CFI EndBlock cfiCond77
|
||
CFI EndBlock cfiCond78
|
||
CFI EndBlock cfiPicker79
|
||
// 561
|
||
// 562 /*********************************************************************
|
||
// 563 * @fn bindRemoveSrcDev()
|
||
// 564 *
|
||
// 565 * @brief
|
||
// 566 *
|
||
// 567 * Remove binds(s) associated to device address (source).
|
||
// 568 * Updates binding table.
|
||
// 569 *
|
||
// 570 * @param srcAddr - address of device
|
||
// 571 * @param ep - endpoint to remove, 0xFF is all endpoints
|
||
// 572 *
|
||
// 573 * @return none
|
||
// 574 */
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
// 575 void bindRemoveSrcDev( uint8 ep )
|
||
bindRemoveSrcDev:
|
||
CFI Block cfiBlock80 Using cfiCommon0
|
||
CFI Function bindRemoveSrcDev
|
||
CODE
|
||
// 576 {
|
||
FUNCALL bindRemoveSrcDev, bindRemoveEntry
|
||
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
|
||
REQUIRE ?V0
|
||
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 ?V0,R1
|
||
// 577 uint16 x;
|
||
// 578
|
||
// 579 for ( x = 0; x < gNWK_MAX_BINDING_ENTRIES; x++ )
|
||
MOV R6,#0x0
|
||
MOV R7,#0x0
|
||
SJMP ??bindRemoveSrcDev_0
|
||
// 580 {
|
||
// 581 if ( (ep == 0xFF) || (ep == BindingTable[x].srcEP) )
|
||
??bindRemoveSrcDev_1:
|
||
MOV A,#-0x1
|
||
XRL A,?V0
|
||
JZ ??bindRemoveSrcDev_2
|
||
LCALL ?Subroutine9 & 0xFFFF
|
||
??CrossCallReturnLabel_76:
|
||
XRL A,?V0
|
||
JNZ ??CrossCallReturnLabel_15
|
||
// 582 {
|
||
// 583 bindRemoveEntry( &BindingTable[x] );
|
||
??bindRemoveSrcDev_2:
|
||
; Setup parameters for call to function bindRemoveEntry
|
||
LCALL ?Subroutine14 & 0xFFFF
|
||
// 584 }
|
||
// 585 }
|
||
??CrossCallReturnLabel_15:
|
||
INC R6
|
||
MOV A,R6
|
||
JNZ ??bindRemoveSrcDev_0
|
||
INC R7
|
||
??bindRemoveSrcDev_0:
|
||
LCALL ?Subroutine10 & 0xFFFF
|
||
??CrossCallReturnLabel_8:
|
||
JC ??bindRemoveSrcDev_1
|
||
// 586 }
|
||
LJMP ?Subroutine2 & 0xFFFF
|
||
CFI EndBlock cfiBlock80
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
?Subroutine14:
|
||
CFI Block cfiCond81 Using cfiCommon0
|
||
CFI Function bindRemoveDev
|
||
CFI Conditional ??CrossCallReturnLabel_14
|
||
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-14)))
|
||
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-13)))
|
||
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-12)))
|
||
CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI V4 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI V5 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, 14)
|
||
CFI Block cfiCond82 Using cfiCommon0
|
||
CFI (cfiCond82) Function bindRemoveSrcDev
|
||
CFI (cfiCond82) Conditional ??CrossCallReturnLabel_15
|
||
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 cfiPicker83 Using cfiCommon1
|
||
CFI (cfiPicker83) NoFunction
|
||
CFI (cfiPicker83) Picker
|
||
MOV A,R6
|
||
MOV R0,A
|
||
MOV A,R7
|
||
MOV R1,A
|
||
LCALL ?Subroutine36 & 0xFFFF
|
||
??CrossCallReturnLabel_50:
|
||
LCALL `??bindRemoveEntry::?relay`; Banked call to: bindRemoveEntry
|
||
RET
|
||
CFI EndBlock cfiCond81
|
||
CFI EndBlock cfiCond82
|
||
CFI EndBlock cfiPicker83
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
?Subroutine10:
|
||
CFI Block cfiCond84 Using cfiCommon0
|
||
CFI Function bindRemoveDev
|
||
CFI Conditional ??CrossCallReturnLabel_7
|
||
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-14)))
|
||
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-13)))
|
||
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-12)))
|
||
CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI V4 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI V5 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, 14)
|
||
CFI Block cfiCond85 Using cfiCommon0
|
||
CFI (cfiCond85) Function bindRemoveSrcDev
|
||
CFI (cfiCond85) Conditional ??CrossCallReturnLabel_8
|
||
CFI (cfiCond85) R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI (cfiCond85) VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI (cfiCond85) V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
|
||
CFI (cfiCond85) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
|
||
CFI (cfiCond85) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
|
||
CFI (cfiCond85) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
|
||
CFI (cfiCond85) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
|
||
CFI (cfiCond85) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
|
||
CFI (cfiCond85) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
|
||
CFI (cfiCond85) CFA_SP SP+-2
|
||
CFI (cfiCond85) CFA_XSP16 add(XSP16, 9)
|
||
CFI Block cfiCond86 Using cfiCommon0
|
||
CFI (cfiCond86) Function BindWriteNV
|
||
CFI (cfiCond86) Conditional ??CrossCallReturnLabel_9
|
||
CFI (cfiCond86) R6 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI (cfiCond86) VB load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI (cfiCond86) V0 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI (cfiCond86) V1 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI (cfiCond86) V2 load(1, XDATA, add(CFA_XSP16, literal(-7)))
|
||
CFI (cfiCond86) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
|
||
CFI (cfiCond86) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
|
||
CFI (cfiCond86) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
|
||
CFI (cfiCond86) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
|
||
CFI (cfiCond86) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
|
||
CFI (cfiCond86) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
|
||
CFI (cfiCond86) CFA_SP SP+-2
|
||
CFI (cfiCond86) CFA_XSP16 add(XSP16, 27)
|
||
CFI Block cfiPicker87 Using cfiCommon1
|
||
CFI (cfiPicker87) NoFunction
|
||
CFI (cfiPicker87) Picker
|
||
LCALL ?Subroutine31 & 0xFFFF
|
||
??CrossCallReturnLabel_71:
|
||
CLR C
|
||
MOV A,R6
|
||
SUBB A,R0
|
||
MOV A,R7
|
||
SUBB A,R1
|
||
RET
|
||
CFI EndBlock cfiCond84
|
||
CFI EndBlock cfiCond85
|
||
CFI EndBlock cfiCond86
|
||
CFI EndBlock cfiPicker87
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
?Subroutine31:
|
||
CFI Block cfiCond88 Using cfiCommon0
|
||
CFI Function bindRemoveDev
|
||
CFI Conditional ??CrossCallReturnLabel_71, ??CrossCallReturnLabel_7
|
||
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-14)))
|
||
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-13)))
|
||
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-12)))
|
||
CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI V4 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI V5 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, 14)
|
||
CFI Block cfiCond89 Using cfiCommon0
|
||
CFI (cfiCond89) Function bindRemoveSrcDev
|
||
CFI (cfiCond89) Conditional ??CrossCallReturnLabel_71, ??CrossCallReturnLabel_8
|
||
CFI (cfiCond89) R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI (cfiCond89) VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI (cfiCond89) V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
|
||
CFI (cfiCond89) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
|
||
CFI (cfiCond89) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
|
||
CFI (cfiCond89) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
|
||
CFI (cfiCond89) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
|
||
CFI (cfiCond89) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
|
||
CFI (cfiCond89) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
|
||
CFI (cfiCond89) CFA_SP SP+-4
|
||
CFI (cfiCond89) CFA_XSP16 add(XSP16, 9)
|
||
CFI Block cfiCond90 Using cfiCommon0
|
||
CFI (cfiCond90) Function BindWriteNV
|
||
CFI (cfiCond90) Conditional ??CrossCallReturnLabel_71, ??CrossCallReturnLabel_9
|
||
CFI (cfiCond90) R6 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI (cfiCond90) VB load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI (cfiCond90) V0 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI (cfiCond90) V1 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI (cfiCond90) V2 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+-4
|
||
CFI (cfiCond90) CFA_XSP16 add(XSP16, 27)
|
||
CFI Block cfiCond91 Using cfiCommon0
|
||
CFI (cfiCond91) Function bindNumReflections
|
||
CFI (cfiCond91) Conditional ??CrossCallReturnLabel_72, ??CrossCallReturnLabel_12
|
||
CFI (cfiCond91) R6 load(1, XDATA, add(CFA_XSP16, literal(-13)))
|
||
CFI (cfiCond91) VB load(1, XDATA, add(CFA_XSP16, literal(-12)))
|
||
CFI (cfiCond91) V0 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI (cfiCond91) V1 load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI (cfiCond91) V2 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI (cfiCond91) V3 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI (cfiCond91) V4 load(1, XDATA, add(CFA_XSP16, literal(-7)))
|
||
CFI (cfiCond91) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
|
||
CFI (cfiCond91) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
|
||
CFI (cfiCond91) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
|
||
CFI (cfiCond91) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
|
||
CFI (cfiCond91) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
|
||
CFI (cfiCond91) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
|
||
CFI (cfiCond91) CFA_SP SP+-4
|
||
CFI (cfiCond91) CFA_XSP16 add(XSP16, 13)
|
||
CFI Block cfiCond92 Using cfiCommon0
|
||
CFI (cfiCond92) Function bindFind
|
||
CFI (cfiCond92) Conditional ??CrossCallReturnLabel_72, ??CrossCallReturnLabel_13
|
||
CFI (cfiCond92) R6 load(1, XDATA, add(CFA_XSP16, literal(-15)))
|
||
CFI (cfiCond92) VB load(1, XDATA, add(CFA_XSP16, literal(-14)))
|
||
CFI (cfiCond92) V0 load(1, XDATA, add(CFA_XSP16, literal(-13)))
|
||
CFI (cfiCond92) V1 load(1, XDATA, add(CFA_XSP16, literal(-12)))
|
||
CFI (cfiCond92) V2 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI (cfiCond92) V3 load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI (cfiCond92) V4 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI (cfiCond92) V5 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI (cfiCond92) V6 load(1, XDATA, add(CFA_XSP16, literal(-7)))
|
||
CFI (cfiCond92) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
|
||
CFI (cfiCond92) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
|
||
CFI (cfiCond92) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
|
||
CFI (cfiCond92) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
|
||
CFI (cfiCond92) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
|
||
CFI (cfiCond92) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
|
||
CFI (cfiCond92) CFA_SP SP+-4
|
||
CFI (cfiCond92) CFA_XSP16 add(XSP16, 15)
|
||
CFI Block cfiPicker93 Using cfiCommon1
|
||
CFI (cfiPicker93) NoFunction
|
||
CFI (cfiPicker93) Picker
|
||
MOV DPTR,#gNWK_MAX_BINDING_ENTRIES
|
||
CFI EndBlock cfiCond88
|
||
CFI EndBlock cfiCond89
|
||
CFI EndBlock cfiCond90
|
||
CFI EndBlock cfiCond91
|
||
CFI EndBlock cfiCond92
|
||
CFI EndBlock cfiPicker93
|
||
REQUIRE ??Subroutine42_0
|
||
; // Fall through to label ??Subroutine42_0
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
??Subroutine42_0:
|
||
CFI Block cfiCond94 Using cfiCommon0
|
||
CFI Function bindCapacity
|
||
CFI Conditional ??CrossCallReturnLabel_70, ??CrossCallReturnLabel_16
|
||
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-7)))
|
||
CFI 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, 11)
|
||
CFI Block cfiCond95 Using cfiCommon0
|
||
CFI (cfiCond95) Function bindAddEntry
|
||
CFI (cfiCond95) Conditional ??CrossCallReturnLabel_70, ??CrossCallReturnLabel_17
|
||
CFI (cfiCond95) R6 load(1, XDATA, add(CFA_XSP16, literal(-15)))
|
||
CFI (cfiCond95) VB load(1, XDATA, add(CFA_XSP16, literal(-14)))
|
||
CFI (cfiCond95) V0 load(1, XDATA, add(CFA_XSP16, literal(-13)))
|
||
CFI (cfiCond95) V1 load(1, XDATA, add(CFA_XSP16, literal(-12)))
|
||
CFI (cfiCond95) V2 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI (cfiCond95) V3 load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI (cfiCond95) V4 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI (cfiCond95) V5 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI (cfiCond95) V6 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, 18)
|
||
CFI Block cfiCond96 Using cfiCommon0
|
||
CFI (cfiCond96) Function BindInitNV
|
||
CFI (cfiCond96) Conditional ??CrossCallReturnLabel_70, ??CrossCallReturnLabel_18
|
||
CFI (cfiCond96) R6 load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI (cfiCond96) VB load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI (cfiCond96) V0 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI (cfiCond96) V1 load(1, XDATA, add(CFA_XSP16, literal(-7)))
|
||
CFI (cfiCond96) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
|
||
CFI (cfiCond96) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
|
||
CFI (cfiCond96) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
|
||
CFI (cfiCond96) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
|
||
CFI (cfiCond96) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
|
||
CFI (cfiCond96) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
|
||
CFI (cfiCond96) CFA_SP SP+-4
|
||
CFI (cfiCond96) CFA_XSP16 add(XSP16, 12)
|
||
CFI Block cfiCond97 Using cfiCommon0
|
||
CFI (cfiCond97) Function bindRemoveDev
|
||
CFI (cfiCond97) Conditional ??CrossCallReturnLabel_71, ??CrossCallReturnLabel_7
|
||
CFI (cfiCond97) R6 load(1, XDATA, add(CFA_XSP16, literal(-14)))
|
||
CFI (cfiCond97) VB load(1, XDATA, add(CFA_XSP16, literal(-13)))
|
||
CFI (cfiCond97) V0 load(1, XDATA, add(CFA_XSP16, literal(-12)))
|
||
CFI (cfiCond97) V1 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI (cfiCond97) V2 load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI (cfiCond97) V3 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI (cfiCond97) V4 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI (cfiCond97) V5 load(1, XDATA, add(CFA_XSP16, literal(-7)))
|
||
CFI (cfiCond97) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
|
||
CFI (cfiCond97) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
|
||
CFI (cfiCond97) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
|
||
CFI (cfiCond97) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
|
||
CFI (cfiCond97) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
|
||
CFI (cfiCond97) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
|
||
CFI (cfiCond97) CFA_SP SP+-4
|
||
CFI (cfiCond97) CFA_XSP16 add(XSP16, 14)
|
||
CFI Block cfiCond98 Using cfiCommon0
|
||
CFI (cfiCond98) Function bindRemoveSrcDev
|
||
CFI (cfiCond98) Conditional ??CrossCallReturnLabel_71, ??CrossCallReturnLabel_8
|
||
CFI (cfiCond98) R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI (cfiCond98) VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI (cfiCond98) V0 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+-4
|
||
CFI (cfiCond98) CFA_XSP16 add(XSP16, 9)
|
||
CFI Block cfiCond99 Using cfiCommon0
|
||
CFI (cfiCond99) Function BindWriteNV
|
||
CFI (cfiCond99) Conditional ??CrossCallReturnLabel_71, ??CrossCallReturnLabel_9
|
||
CFI (cfiCond99) R6 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI (cfiCond99) VB load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI (cfiCond99) V0 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI (cfiCond99) V1 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI (cfiCond99) V2 load(1, XDATA, add(CFA_XSP16, literal(-7)))
|
||
CFI (cfiCond99) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
|
||
CFI (cfiCond99) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
|
||
CFI (cfiCond99) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
|
||
CFI (cfiCond99) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
|
||
CFI (cfiCond99) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
|
||
CFI (cfiCond99) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
|
||
CFI (cfiCond99) CFA_SP SP+-4
|
||
CFI (cfiCond99) CFA_XSP16 add(XSP16, 27)
|
||
CFI Block cfiCond100 Using cfiCommon0
|
||
CFI (cfiCond100) Function bindNumReflections
|
||
CFI (cfiCond100) Conditional ??CrossCallReturnLabel_72, ??CrossCallReturnLabel_12
|
||
CFI (cfiCond100) R6 load(1, XDATA, add(CFA_XSP16, literal(-13)))
|
||
CFI (cfiCond100) VB load(1, XDATA, add(CFA_XSP16, literal(-12)))
|
||
CFI (cfiCond100) V0 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI (cfiCond100) V1 load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI (cfiCond100) V2 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI (cfiCond100) V3 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI (cfiCond100) V4 load(1, XDATA, add(CFA_XSP16, literal(-7)))
|
||
CFI (cfiCond100) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
|
||
CFI (cfiCond100) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
|
||
CFI (cfiCond100) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
|
||
CFI (cfiCond100) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
|
||
CFI (cfiCond100) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
|
||
CFI (cfiCond100) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
|
||
CFI (cfiCond100) CFA_SP SP+-4
|
||
CFI (cfiCond100) CFA_XSP16 add(XSP16, 13)
|
||
CFI Block cfiCond101 Using cfiCommon0
|
||
CFI (cfiCond101) Function bindFind
|
||
CFI (cfiCond101) Conditional ??CrossCallReturnLabel_72, ??CrossCallReturnLabel_13
|
||
CFI (cfiCond101) R6 load(1, XDATA, add(CFA_XSP16, literal(-15)))
|
||
CFI (cfiCond101) VB load(1, XDATA, add(CFA_XSP16, literal(-14)))
|
||
CFI (cfiCond101) V0 load(1, XDATA, add(CFA_XSP16, literal(-13)))
|
||
CFI (cfiCond101) V1 load(1, XDATA, add(CFA_XSP16, literal(-12)))
|
||
CFI (cfiCond101) V2 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI (cfiCond101) V3 load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI (cfiCond101) V4 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI (cfiCond101) V5 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI (cfiCond101) V6 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+-4
|
||
CFI (cfiCond101) CFA_XSP16 add(XSP16, 15)
|
||
CFI Block cfiPicker102 Using cfiCommon1
|
||
CFI (cfiPicker102) NoFunction
|
||
CFI (cfiPicker102) Picker
|
||
CLR A
|
||
MOVC A,@A+DPTR
|
||
MOV R0,A
|
||
MOV A,#0x1
|
||
MOVC A,@A+DPTR
|
||
MOV R1,A
|
||
RET
|
||
CFI EndBlock cfiCond94
|
||
CFI EndBlock cfiCond95
|
||
CFI EndBlock cfiCond96
|
||
CFI EndBlock cfiCond97
|
||
CFI EndBlock cfiCond98
|
||
CFI EndBlock cfiCond99
|
||
CFI EndBlock cfiCond100
|
||
CFI EndBlock cfiCond101
|
||
CFI EndBlock cfiPicker102
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
?Subroutine9:
|
||
CFI Block cfiCond103 Using cfiCommon0
|
||
CFI Function bindRemoveSrcDev
|
||
CFI Conditional ??CrossCallReturnLabel_76
|
||
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 cfiCond104 Using cfiCommon0
|
||
CFI (cfiCond104) Function BindWriteNV
|
||
CFI (cfiCond104) Conditional ??CrossCallReturnLabel_73
|
||
CFI (cfiCond104) R6 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI (cfiCond104) VB load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI (cfiCond104) V0 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI (cfiCond104) V1 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI (cfiCond104) V2 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, 27)
|
||
CFI Block cfiPicker105 Using cfiCommon1
|
||
CFI (cfiPicker105) NoFunction
|
||
CFI (cfiPicker105) Picker
|
||
MOV A,R6
|
||
MOV R0,A
|
||
MOV A,R7
|
||
MOV R1,A
|
||
MOV A,R0
|
||
MOV B,#0xe
|
||
MUL AB
|
||
MOV R0,A
|
||
MOV R2,B
|
||
MOV B,#0xe
|
||
MOV A,R1
|
||
CFI EndBlock cfiCond103
|
||
CFI EndBlock cfiCond104
|
||
CFI EndBlock cfiPicker105
|
||
REQUIRE ??Subroutine43_0
|
||
; // Fall through to label ??Subroutine43_0
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
??Subroutine43_0:
|
||
CFI Block cfiCond106 Using cfiCommon0
|
||
CFI Function bindNumReflections
|
||
CFI Conditional ??CrossCallReturnLabel_74
|
||
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-13)))
|
||
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-12)))
|
||
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI V4 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, 13)
|
||
CFI Block cfiCond107 Using cfiCommon0
|
||
CFI (cfiCond107) Function bindRemoveSrcDev
|
||
CFI (cfiCond107) Conditional ??CrossCallReturnLabel_76
|
||
CFI (cfiCond107) R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI (cfiCond107) VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI (cfiCond107) V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
|
||
CFI (cfiCond107) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
|
||
CFI (cfiCond107) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
|
||
CFI (cfiCond107) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
|
||
CFI (cfiCond107) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
|
||
CFI (cfiCond107) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
|
||
CFI (cfiCond107) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
|
||
CFI (cfiCond107) CFA_SP SP+-2
|
||
CFI (cfiCond107) CFA_XSP16 add(XSP16, 9)
|
||
CFI Block cfiCond108 Using cfiCommon0
|
||
CFI (cfiCond108) Function BindWriteNV
|
||
CFI (cfiCond108) Conditional ??CrossCallReturnLabel_73
|
||
CFI (cfiCond108) R6 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI (cfiCond108) VB load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI (cfiCond108) V0 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI (cfiCond108) V1 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI (cfiCond108) V2 load(1, XDATA, add(CFA_XSP16, literal(-7)))
|
||
CFI (cfiCond108) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
|
||
CFI (cfiCond108) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
|
||
CFI (cfiCond108) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
|
||
CFI (cfiCond108) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
|
||
CFI (cfiCond108) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
|
||
CFI (cfiCond108) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
|
||
CFI (cfiCond108) CFA_SP SP+-2
|
||
CFI (cfiCond108) CFA_XSP16 add(XSP16, 27)
|
||
CFI Block cfiPicker109 Using cfiCommon1
|
||
CFI (cfiPicker109) NoFunction
|
||
CFI (cfiPicker109) Picker
|
||
MUL AB
|
||
ADD A,R2
|
||
MOV R1,A
|
||
CFI EndBlock cfiCond106
|
||
CFI EndBlock cfiCond107
|
||
CFI EndBlock cfiCond108
|
||
CFI EndBlock cfiPicker109
|
||
REQUIRE ??Subroutine44_0
|
||
; // Fall through to label ??Subroutine44_0
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
??Subroutine44_0:
|
||
CFI Block cfiCond110 Using cfiCommon0
|
||
CFI Function bindAddEntry
|
||
CFI Conditional ??CrossCallReturnLabel_75
|
||
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-15)))
|
||
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-14)))
|
||
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-13)))
|
||
CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-12)))
|
||
CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI V4 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI V5 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI V6 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, 18)
|
||
CFI Block cfiCond111 Using cfiCommon0
|
||
CFI (cfiCond111) Function bindNumReflections
|
||
CFI (cfiCond111) Conditional ??CrossCallReturnLabel_74
|
||
CFI (cfiCond111) R6 load(1, XDATA, add(CFA_XSP16, literal(-13)))
|
||
CFI (cfiCond111) VB load(1, XDATA, add(CFA_XSP16, literal(-12)))
|
||
CFI (cfiCond111) V0 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI (cfiCond111) V1 load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI (cfiCond111) V2 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI (cfiCond111) V3 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI (cfiCond111) V4 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+-2
|
||
CFI (cfiCond111) CFA_XSP16 add(XSP16, 13)
|
||
CFI Block cfiCond112 Using cfiCommon0
|
||
CFI (cfiCond112) Function bindRemoveSrcDev
|
||
CFI (cfiCond112) Conditional ??CrossCallReturnLabel_76
|
||
CFI (cfiCond112) R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI (cfiCond112) VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI (cfiCond112) V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
|
||
CFI (cfiCond112) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
|
||
CFI (cfiCond112) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
|
||
CFI (cfiCond112) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
|
||
CFI (cfiCond112) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
|
||
CFI (cfiCond112) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
|
||
CFI (cfiCond112) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
|
||
CFI (cfiCond112) CFA_SP SP+-2
|
||
CFI (cfiCond112) CFA_XSP16 add(XSP16, 9)
|
||
CFI Block cfiCond113 Using cfiCommon0
|
||
CFI (cfiCond113) Function BindWriteNV
|
||
CFI (cfiCond113) Conditional ??CrossCallReturnLabel_73
|
||
CFI (cfiCond113) R6 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI (cfiCond113) VB load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI (cfiCond113) V0 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI (cfiCond113) V1 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI (cfiCond113) V2 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+-2
|
||
CFI (cfiCond113) CFA_XSP16 add(XSP16, 27)
|
||
CFI Block cfiPicker114 Using cfiCommon1
|
||
CFI (cfiPicker114) NoFunction
|
||
CFI (cfiPicker114) Picker
|
||
MOV A,#BindingTable & 0xff
|
||
ADD A,R0
|
||
MOV DPL,A
|
||
MOV A,#(BindingTable >> 8) & 0xff
|
||
ADDC A,R1
|
||
MOV DPH,A
|
||
MOVX A,@DPTR
|
||
RET
|
||
CFI EndBlock cfiCond110
|
||
CFI EndBlock cfiCond111
|
||
CFI EndBlock cfiCond112
|
||
CFI EndBlock cfiCond113
|
||
CFI EndBlock cfiPicker114
|
||
// 587
|
||
// 588 /*********************************************************************
|
||
// 589 * @fn bindNumBoundTo
|
||
// 590 *
|
||
// 591 * @brief Calculate the number items this device is bound to.
|
||
// 592 * When srcMode is set to TRUE, discard what value devAddr
|
||
// 593 * has, it returns number count bound to the local dev.
|
||
// 594 *
|
||
// 595 * @param devAddr - device Address
|
||
// 596 * @param devEP - endpoint
|
||
// 597 * @param srcMode - TRUE - assume devHandle is a source address
|
||
// 598 * FALSE - destination address
|
||
// 599 *
|
||
// 600 * @return status
|
||
// 601 */
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
// 602 byte bindNumBoundTo( zAddrType_t *devAddr, byte devEpInt, byte srcMode )
|
||
bindNumBoundTo:
|
||
CFI Block cfiBlock115 Using cfiCommon0
|
||
CFI Function bindNumBoundTo
|
||
CODE
|
||
// 603 {
|
||
FUNCALL bindNumBoundTo, bindingAddrMgsHelperFind
|
||
LOCFRAME ISTACK, 0, STACK
|
||
LOCFRAME PSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 13, STACK
|
||
LOCFRAME IOVERLAY, 0, STATIC
|
||
LOCFRAME DOVERLAY, 0, STATIC
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 13, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
REQUIRE ?V0
|
||
REQUIRE ?V1
|
||
REQUIRE ?V2
|
||
REQUIRE ?V3
|
||
REQUIRE ?V4
|
||
MOV A,#-0xd
|
||
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 V4 load(1, XDATA, add(CFA_XSP16, literal(-7)))
|
||
CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-12)))
|
||
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-13)))
|
||
CFI CFA_SP SP+0
|
||
CFI CFA_XSP16 add(XSP16, 13)
|
||
; Saved register size: 13
|
||
; Auto size: 0
|
||
MOV A,R2
|
||
MOV R6,A
|
||
MOV A,R3
|
||
MOV R7,A
|
||
MOV ?V1,R1
|
||
MOV ?V4,R4
|
||
// 604 BindingEntry_t *pBind;
|
||
// 605 uint16 idx;
|
||
// 606 byte num;
|
||
// 607 uint16 x;
|
||
// 608
|
||
// 609 // Init
|
||
// 610 num = 0;
|
||
MOV ?V0,#0x0
|
||
// 611
|
||
// 612 if ( devAddr->addrMode == AddrGroup )
|
||
MOV DPL,R2
|
||
MOV DPH,A
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
MOVX A,@DPTR
|
||
XRL A,#0x1
|
||
JNZ ??bindNumBoundTo_0
|
||
// 613 {
|
||
// 614 idx = devAddr->addr.shortAddr;
|
||
MOV DPL,R2
|
||
MOV DPH,R3
|
||
MOVX A,@DPTR
|
||
MOV R4,A
|
||
INC DPTR
|
||
MOVX A,@DPTR
|
||
MOV R5,A
|
||
SJMP ??CrossCallReturnLabel_39
|
||
// 615 }
|
||
// 616 else
|
||
// 617 {
|
||
// 618 idx = bindingAddrMgsHelperFind( devAddr );
|
||
??bindNumBoundTo_0:
|
||
; Setup parameters for call to function bindingAddrMgsHelperFind
|
||
LCALL ?Subroutine29 & 0xFFFF
|
||
// 619 }
|
||
// 620
|
||
// 621 for ( x = 0; x < gNWK_MAX_BINDING_ENTRIES; x++ )
|
||
??CrossCallReturnLabel_39:
|
||
MOV R0,#0x0
|
||
MOV R1,#0x0
|
||
SJMP ??bindNumBoundTo_1
|
||
// 622 {
|
||
// 623 pBind = &BindingTable[x];
|
||
// 624 if ( srcMode )
|
||
// 625 {
|
||
// 626 if ( pBind->srcEP == devEpInt )
|
||
// 627 {
|
||
// 628 num++;
|
||
// 629 }
|
||
// 630 }
|
||
// 631 else
|
||
// 632 {
|
||
// 633 if ( ((devAddr->addrMode == AddrGroup)
|
||
// 634 && (pBind->dstGroupMode == DSTGROUPMODE_GROUP) && (pBind->dstIdx == idx))
|
||
// 635 || ((devAddr->addrMode != AddrGroup) && (pBind->dstGroupMode == DSTGROUPMODE_ADDR)
|
||
// 636 && (pBind->dstIdx == idx) && (pBind->dstEP == devEpInt)) )
|
||
??bindNumBoundTo_2:
|
||
MOVX A,@DPTR
|
||
JNZ ??bindNumBoundTo_3
|
||
MOV DPL,R2
|
||
MOV DPH,R3
|
||
INC DPTR
|
||
INC DPTR
|
||
MOVX A,@DPTR
|
||
XRL A,R4
|
||
JNZ ??bindNumBoundTo_4
|
||
INC DPTR
|
||
MOVX A,@DPTR
|
||
XRL A,R5
|
||
??bindNumBoundTo_4:
|
||
JNZ ??bindNumBoundTo_3
|
||
MOV DPL,R2
|
||
MOV DPH,R3
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
MOVX A,@DPTR
|
||
XRL A,?V1
|
||
JNZ ??bindNumBoundTo_3
|
||
// 637 {
|
||
// 638 num++;
|
||
??bindNumBoundTo_5:
|
||
INC ?V0
|
||
// 639 }
|
||
??bindNumBoundTo_3:
|
||
INC R0
|
||
MOV A,R0
|
||
JNZ ??bindNumBoundTo_1
|
||
INC R1
|
||
??bindNumBoundTo_1:
|
||
LCALL ?Subroutine7 & 0xFFFF
|
||
??CrossCallReturnLabel_3:
|
||
JNC ??bindNumBoundTo_6
|
||
MOV A,R0
|
||
MOV R2,A
|
||
MOV A,R1
|
||
MOV R3,A
|
||
MOV A,R2
|
||
MOV B,#0xe
|
||
MUL AB
|
||
MOV R2,A
|
||
MOV ?V2,B
|
||
MOV B,#0xe
|
||
MOV A,R3
|
||
MUL AB
|
||
ADD A,?V2
|
||
MOV R3,A
|
||
MOV A,#BindingTable & 0xff
|
||
ADD A,R2
|
||
MOV R2,A
|
||
MOV A,#(BindingTable >> 8) & 0xff
|
||
ADDC A,R3
|
||
MOV R3,A
|
||
MOV A,?V4
|
||
JZ ??bindNumBoundTo_7
|
||
MOV DPL,R2
|
||
MOV DPH,R3
|
||
MOVX A,@DPTR
|
||
XRL A,?V1
|
||
JNZ ??bindNumBoundTo_3
|
||
SJMP ??bindNumBoundTo_5
|
||
??bindNumBoundTo_7:
|
||
MOV DPL,R6
|
||
MOV DPH,R7
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
MOVX A,@DPTR
|
||
XRL A,#0x1
|
||
MOV DPL,R2
|
||
MOV DPH,R3
|
||
INC DPTR
|
||
JNZ ??bindNumBoundTo_2
|
||
MOVX A,@DPTR
|
||
XRL A,#0x1
|
||
JNZ ??bindNumBoundTo_3
|
||
MOV DPL,R2
|
||
MOV DPH,R3
|
||
INC DPTR
|
||
INC DPTR
|
||
MOVX A,@DPTR
|
||
XRL A,R4
|
||
JNZ ??bindNumBoundTo_8
|
||
INC DPTR
|
||
MOVX A,@DPTR
|
||
XRL A,R5
|
||
??bindNumBoundTo_8:
|
||
JZ ??bindNumBoundTo_5
|
||
SJMP ??bindNumBoundTo_3
|
||
// 640 }
|
||
// 641 }
|
||
// 642
|
||
// 643 return num;
|
||
??bindNumBoundTo_6:
|
||
MOV R1,?V0
|
||
CFI EndBlock cfiBlock115
|
||
REQUIRE ?Subroutine6
|
||
; // Fall through to label ?Subroutine6
|
||
// 644 }
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
?Subroutine6:
|
||
CFI Block cfiBlock116 Using cfiCommon0
|
||
CFI NoFunction
|
||
CFI CFA_SP SP+0
|
||
CFI CFA_XSP16 add(XSP16, 13)
|
||
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-12)))
|
||
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(-13)))
|
||
CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
|
||
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI V4 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,#0x5
|
||
LJMP ?BANKED_LEAVE_XDATA
|
||
CFI EndBlock cfiBlock116
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
?Subroutine29:
|
||
CFI Block cfiCond117 Using cfiCommon0
|
||
CFI Function bindFindExisting
|
||
CFI Conditional ??CrossCallReturnLabel_38
|
||
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 cfiCond118 Using cfiCommon0
|
||
CFI (cfiCond118) Function bindNumBoundTo
|
||
CFI (cfiCond118) Conditional ??CrossCallReturnLabel_39
|
||
CFI (cfiCond118) R6 load(1, XDATA, add(CFA_XSP16, literal(-13)))
|
||
CFI (cfiCond118) VB load(1, XDATA, add(CFA_XSP16, literal(-12)))
|
||
CFI (cfiCond118) V0 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI (cfiCond118) V1 load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI (cfiCond118) V2 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI (cfiCond118) V3 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI (cfiCond118) V4 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+-2
|
||
CFI (cfiCond118) CFA_XSP16 add(XSP16, 13)
|
||
CFI Block cfiPicker119 Using cfiCommon1
|
||
CFI (cfiPicker119) NoFunction
|
||
CFI (cfiPicker119) Picker
|
||
LCALL `??bindingAddrMgsHelperFind::?relay`; Banked call to: bindingAddrMgsHelperFind
|
||
MOV ?V2,R2
|
||
MOV ?V3,R3
|
||
MOV R4,?V2
|
||
MOV R5,?V3
|
||
RET
|
||
CFI EndBlock cfiCond117
|
||
CFI EndBlock cfiCond118
|
||
CFI EndBlock cfiPicker119
|
||
// 645
|
||
// 646 /*********************************************************************
|
||
// 647 * @fn bindNumReflections
|
||
// 648 *
|
||
// 649 * @brief Counts the number of reflections needed for a
|
||
// 650 * endpoint and cluster ID combo.
|
||
// 651 *
|
||
// 652 * @param ep - source endpoint
|
||
// 653 * @param clusterID - matching clusterID
|
||
// 654 *
|
||
// 655 * @return number of reflections needed.
|
||
// 656 */
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
// 657 uint16 bindNumReflections( uint8 ep, uint16 clusterID )
|
||
bindNumReflections:
|
||
CFI Block cfiBlock120 Using cfiCommon0
|
||
CFI Function bindNumReflections
|
||
CODE
|
||
// 658 {
|
||
FUNCALL bindNumReflections, bindIsClusterIDinList
|
||
LOCFRAME ISTACK, 0, STACK
|
||
LOCFRAME PSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 13, STACK
|
||
LOCFRAME IOVERLAY, 0, STATIC
|
||
LOCFRAME DOVERLAY, 0, STATIC
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 13, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
REQUIRE ?V0
|
||
REQUIRE ?V1
|
||
REQUIRE ?V2
|
||
REQUIRE ?V3
|
||
REQUIRE ?V4
|
||
MOV A,#-0xd
|
||
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 V4 load(1, XDATA, add(CFA_XSP16, literal(-7)))
|
||
CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-12)))
|
||
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-13)))
|
||
CFI CFA_SP SP+0
|
||
CFI CFA_XSP16 add(XSP16, 13)
|
||
; Saved register size: 13
|
||
; Auto size: 0
|
||
MOV ?V4,R1
|
||
MOV A,R2
|
||
MOV R6,A
|
||
MOV A,R3
|
||
MOV R7,A
|
||
// 659 uint16 x;
|
||
// 660 BindingEntry_t *pBind;
|
||
// 661 uint16 cnt = 0;
|
||
MOV ?V2,#0x0
|
||
MOV ?V3,#0x0
|
||
// 662 uint8 bindEP;
|
||
// 663
|
||
// 664 for ( x = 0; x < gNWK_MAX_BINDING_ENTRIES; x++ )
|
||
MOV ?V0,#0x0
|
||
MOV ?V1,#0x0
|
||
SJMP ??bindNumReflections_0
|
||
// 665 {
|
||
// 666 pBind = &BindingTable[x];
|
||
??bindNumReflections_1:
|
||
MOV A,?V0
|
||
MOV B,#0xe
|
||
MUL AB
|
||
MOV R0,A
|
||
MOV R2,B
|
||
MOV B,#0xe
|
||
MOV A,?V1
|
||
LCALL ??Subroutine43_0 & 0xFFFF
|
||
// 667 bindEP = pBind->srcEP;
|
||
// 668
|
||
// 669 if ( (bindEP == ep) && (bindIsClusterIDinList( pBind, clusterID )) )
|
||
??CrossCallReturnLabel_74:
|
||
XRL A,?V4
|
||
JNZ ??bindNumReflections_2
|
||
; Setup parameters for call to function bindIsClusterIDinList
|
||
MOV A,R6
|
||
MOV R4,A
|
||
MOV A,R7
|
||
MOV R5,A
|
||
MOV R2,DPL
|
||
MOV R3,DPH
|
||
LCALL `??bindIsClusterIDinList::?relay`; Banked call to: bindIsClusterIDinList
|
||
MOV A,R1
|
||
JZ ??bindNumReflections_2
|
||
// 670 {
|
||
// 671 cnt++;
|
||
INC ?V2
|
||
MOV A,?V2
|
||
JNZ ??bindNumReflections_2
|
||
INC ?V3
|
||
// 672 }
|
||
// 673 }
|
||
??bindNumReflections_2:
|
||
INC ?V0
|
||
MOV A,?V0
|
||
JNZ ??bindNumReflections_0
|
||
INC ?V1
|
||
??bindNumReflections_0:
|
||
LCALL ?Subroutine12 & 0xFFFF
|
||
??CrossCallReturnLabel_12:
|
||
JC ??bindNumReflections_1
|
||
// 674
|
||
// 675 return ( cnt );
|
||
MOV R2,?V2
|
||
MOV R3,?V3
|
||
SJMP ?Subroutine6
|
||
// 676 }
|
||
CFI EndBlock cfiBlock120
|
||
// 677
|
||
// 678 /*********************************************************************
|
||
// 679 * @fn bindFind
|
||
// 680 *
|
||
// 681 * @brief Finds the binding entry for the source address, endpoint
|
||
// 682 * and cluster ID passed in as a parameter.
|
||
// 683 *
|
||
// 684 * @param ep - source endpoint
|
||
// 685 * @param clusterID - matching clusterID
|
||
// 686 * @param skip - number of matches to skip before returning
|
||
// 687 *
|
||
// 688 * @return pointer to the binding table entry, NULL if not found
|
||
// 689 */
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
// 690 BindingEntry_t *bindFind( uint8 ep, uint16 clusterID, uint8 skipping )
|
||
bindFind:
|
||
CFI Block cfiBlock121 Using cfiCommon0
|
||
CFI Function bindFind
|
||
CODE
|
||
// 691 {
|
||
FUNCALL bindFind, bindIsClusterIDinList
|
||
LOCFRAME ISTACK, 0, STACK
|
||
LOCFRAME PSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 15, STACK
|
||
LOCFRAME IOVERLAY, 0, STATIC
|
||
LOCFRAME DOVERLAY, 0, STATIC
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 15, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
REQUIRE ?V0
|
||
REQUIRE ?V1
|
||
REQUIRE ?V2
|
||
REQUIRE ?V3
|
||
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: 0
|
||
MOV ?V6,R1
|
||
MOV A,R2
|
||
MOV R6,A
|
||
MOV A,R3
|
||
MOV R7,A
|
||
MOV ?V3,R4
|
||
// 692 BindingEntry_t *pBind;
|
||
// 693 byte skipped = 0;
|
||
MOV ?V2,#0x0
|
||
// 694 uint16 x;
|
||
// 695
|
||
// 696 for ( x = 0; x < gNWK_MAX_BINDING_ENTRIES; x++ )
|
||
MOV ?V0,#0x0
|
||
MOV ?V1,#0x0
|
||
SJMP ??bindFind_0
|
||
// 697 {
|
||
// 698 pBind = &BindingTable[x];
|
||
// 699
|
||
// 700 if ( ( pBind->srcEP == ep) && bindIsClusterIDinList( pBind, clusterID ))
|
||
// 701 {
|
||
// 702 if ( skipped < skipping )
|
||
// 703 {
|
||
// 704 skipped++;
|
||
??bindFind_1:
|
||
INC ?V2
|
||
// 705 }
|
||
??bindFind_2:
|
||
INC ?V0
|
||
MOV A,?V0
|
||
JNZ ??bindFind_0
|
||
INC ?V1
|
||
??bindFind_0:
|
||
LCALL ?Subroutine12 & 0xFFFF
|
||
??CrossCallReturnLabel_13:
|
||
JNC ??bindFind_3
|
||
MOV A,?V0
|
||
MOV B,#0xe
|
||
MUL AB
|
||
MOV R0,A
|
||
MOV R2,B
|
||
MOV B,#0xe
|
||
MOV A,?V1
|
||
MUL AB
|
||
ADD A,R2
|
||
MOV R1,A
|
||
MOV A,#BindingTable & 0xff
|
||
ADD A,R0
|
||
MOV ?V4,A
|
||
MOV A,#(BindingTable >> 8) & 0xff
|
||
ADDC A,R1
|
||
MOV ?V5,A
|
||
MOV DPL,?V4
|
||
MOV DPH,A
|
||
MOVX A,@DPTR
|
||
XRL A,?V6
|
||
JNZ ??bindFind_2
|
||
; Setup parameters for call to function bindIsClusterIDinList
|
||
MOV A,R6
|
||
MOV R4,A
|
||
MOV A,R7
|
||
MOV R5,A
|
||
MOV R2,?V4
|
||
MOV R3,?V5
|
||
LCALL `??bindIsClusterIDinList::?relay`; Banked call to: bindIsClusterIDinList
|
||
MOV A,R1
|
||
JZ ??bindFind_2
|
||
MOV A,?V2
|
||
CLR C
|
||
SUBB A,?V3
|
||
JC ??bindFind_1
|
||
// 706 else
|
||
// 707 {
|
||
// 708 return ( pBind );
|
||
MOV R2,?V4
|
||
MOV R3,?V5
|
||
SJMP ??bindFind_4
|
||
// 709 }
|
||
// 710 }
|
||
// 711 }
|
||
// 712
|
||
// 713 return ( (BindingEntry_t *)NULL );
|
||
??bindFind_3:
|
||
MOV R2,#0x0
|
||
MOV R3,#0x0
|
||
??bindFind_4:
|
||
LJMP ?Subroutine4 & 0xFFFF
|
||
// 714 }
|
||
CFI EndBlock cfiBlock121
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
?Subroutine12:
|
||
CFI Block cfiCond122 Using cfiCommon0
|
||
CFI Function bindNumReflections
|
||
CFI Conditional ??CrossCallReturnLabel_12
|
||
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-13)))
|
||
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-12)))
|
||
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI V4 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, 13)
|
||
CFI Block cfiCond123 Using cfiCommon0
|
||
CFI (cfiCond123) Function bindFind
|
||
CFI (cfiCond123) Conditional ??CrossCallReturnLabel_13
|
||
CFI (cfiCond123) R6 load(1, XDATA, add(CFA_XSP16, literal(-15)))
|
||
CFI (cfiCond123) VB load(1, XDATA, add(CFA_XSP16, literal(-14)))
|
||
CFI (cfiCond123) V0 load(1, XDATA, add(CFA_XSP16, literal(-13)))
|
||
CFI (cfiCond123) V1 load(1, XDATA, add(CFA_XSP16, literal(-12)))
|
||
CFI (cfiCond123) V2 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI (cfiCond123) V3 load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI (cfiCond123) V4 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI (cfiCond123) V5 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI (cfiCond123) V6 load(1, XDATA, add(CFA_XSP16, literal(-7)))
|
||
CFI (cfiCond123) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
|
||
CFI (cfiCond123) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
|
||
CFI (cfiCond123) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
|
||
CFI (cfiCond123) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
|
||
CFI (cfiCond123) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
|
||
CFI (cfiCond123) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
|
||
CFI (cfiCond123) CFA_SP SP+-2
|
||
CFI (cfiCond123) CFA_XSP16 add(XSP16, 15)
|
||
CFI Block cfiPicker124 Using cfiCommon1
|
||
CFI (cfiPicker124) NoFunction
|
||
CFI (cfiPicker124) Picker
|
||
LCALL ?Subroutine31 & 0xFFFF
|
||
??CrossCallReturnLabel_72:
|
||
CLR C
|
||
MOV A,?V0
|
||
SUBB A,R0
|
||
MOV A,?V1
|
||
SUBB A,R1
|
||
RET
|
||
CFI EndBlock cfiCond122
|
||
CFI EndBlock cfiCond123
|
||
CFI EndBlock cfiPicker124
|
||
// 715
|
||
// 716 /*********************************************************************
|
||
// 717 * @fn BindInitNV
|
||
// 718 *
|
||
// 719 * @brief Initialize the Binding NV Item
|
||
// 720 *
|
||
// 721 * @param none
|
||
// 722 *
|
||
// 723 * @return ZSUCCESS if successful, NV_ITEM_UNINIT if item did not
|
||
// 724 * exist in NV, NV_OPER_FAILED if failure.
|
||
// 725 */
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
// 726 byte BindInitNV( void )
|
||
BindInitNV:
|
||
CFI Block cfiBlock125 Using cfiCommon0
|
||
CFI Function BindInitNV
|
||
CODE
|
||
// 727 {
|
||
FUNCALL BindInitNV, osal_nv_item_init
|
||
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 BindInitNV, BindSetDefaultNV
|
||
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
|
||
// 728 byte ret;
|
||
// 729
|
||
// 730 // Initialize the device list
|
||
// 731 ret = osal_nv_item_init( ZCD_NV_BINDING_TABLE,
|
||
// 732 (uint16)(gBIND_REC_SIZE + NV_BIND_ITEM_SIZE), NULL );
|
||
; Setup parameters for call to function osal_nv_item_init
|
||
CLR A
|
||
MOV ?V0,A
|
||
MOV ?V1,A
|
||
MOV R0,#?V0
|
||
LCALL ?PUSH_XSTACK_I_TWO
|
||
CFI CFA_XSP16 add(XSP16, 12)
|
||
MOV DPTR,#gBIND_REC_SIZE
|
||
LCALL ?Subroutine15 & 0xFFFF
|
||
??CrossCallReturnLabel_18:
|
||
MOV DPTR,#gNWK_MAX_BINDING_ENTRIES
|
||
LCALL ?Subroutine8 & 0xFFFF
|
||
??CrossCallReturnLabel_5:
|
||
MOV DPH,#(gBIND_REC_SIZE >> 8) & 0xff
|
||
MOV DPL,#gBIND_REC_SIZE & 0xff
|
||
CLR A
|
||
MOVC A,@A+DPTR
|
||
ADD A,R0
|
||
MOV R4,A
|
||
INC DPTR
|
||
CLR A
|
||
MOVC A,@A+DPTR
|
||
LCALL ??Subroutine46_0 & 0xFFFF
|
||
??CrossCallReturnLabel_77:
|
||
LCALL `??osal_nv_item_init::?relay`; Banked call to: osal_nv_item_init
|
||
MOV A,#0x2
|
||
LCALL ?DEALLOC_XSTACK8
|
||
CFI CFA_XSP16 add(XSP16, 10)
|
||
MOV A,R1
|
||
MOV R6,A
|
||
// 733
|
||
// 734 if ( ret != ZSUCCESS )
|
||
JZ ??BindInitNV_0
|
||
// 735 {
|
||
// 736 BindSetDefaultNV();
|
||
; Setup parameters for call to function BindSetDefaultNV
|
||
LCALL `??BindSetDefaultNV::?relay`; Banked call to: BindSetDefaultNV
|
||
// 737 }
|
||
// 738
|
||
// 739 return ( ret );
|
||
??BindInitNV_0:
|
||
MOV A,R6
|
||
MOV R1,A
|
||
LJMP ??Subroutine37_0 & 0xFFFF
|
||
// 740 }
|
||
CFI EndBlock cfiBlock125
|
||
// 741
|
||
// 742 /*********************************************************************
|
||
// 743 * @fn BindSetDefaultNV
|
||
// 744 *
|
||
// 745 * @brief Write the defaults to NV
|
||
// 746 *
|
||
// 747 * @param none
|
||
// 748 *
|
||
// 749 * @return none
|
||
// 750 */
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
// 751 void BindSetDefaultNV( void )
|
||
BindSetDefaultNV:
|
||
CFI Block cfiBlock126 Using cfiCommon0
|
||
CFI Function BindSetDefaultNV
|
||
CODE
|
||
// 752 {
|
||
FUNCALL BindSetDefaultNV, osal_nv_write
|
||
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
|
||
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: 2
|
||
MOV A,#-0x2
|
||
LCALL ?ALLOC_XSTACK8
|
||
CFI CFA_XSP16 add(XSP16, 12)
|
||
// 753 nvBindingHdr_t hdr;
|
||
// 754
|
||
// 755 // Initialize the header
|
||
// 756 hdr.numRecs = 0;
|
||
MOV DPL,?XSP + 0
|
||
MOV DPH,?XSP + 1
|
||
CLR A
|
||
MOVX @DPTR,A
|
||
INC DPTR
|
||
MOVX @DPTR,A
|
||
// 757
|
||
// 758 // Save off the header
|
||
// 759 osal_nv_write( ZCD_NV_BINDING_TABLE, 0, sizeof( nvBindingHdr_t ), &hdr );
|
||
; Setup parameters for call to function osal_nv_write
|
||
MOV R0,?XSP + 0
|
||
MOV R1,?XSP + 1
|
||
MOV ?V0,R0
|
||
MOV ?V1,R1
|
||
MOV R0,#?V0
|
||
LCALL ?PUSH_XSTACK_I_TWO
|
||
CFI CFA_XSP16 add(XSP16, 14)
|
||
MOV ?V0,#0x2
|
||
MOV ?V1,#0x0
|
||
MOV R0,#?V0
|
||
LCALL ?PUSH_XSTACK_I_TWO
|
||
CFI CFA_XSP16 add(XSP16, 16)
|
||
MOV R4,#0x0
|
||
MOV R5,#0x0
|
||
MOV R2,#0x41
|
||
MOV R3,#0x0
|
||
LCALL `??osal_nv_write::?relay`; Banked call to: osal_nv_write
|
||
MOV A,#0x4
|
||
LCALL ?DEALLOC_XSTACK8
|
||
CFI CFA_XSP16 add(XSP16, 12)
|
||
// 760 }
|
||
MOV A,#0x2
|
||
LJMP ?Subroutine0 & 0xFFFF
|
||
CFI EndBlock cfiBlock126
|
||
// 761
|
||
// 762 /*********************************************************************
|
||
// 763 * @fn BindRestoreFromNV
|
||
// 764 *
|
||
// 765 * @brief Restore the binding table from NV
|
||
// 766 *
|
||
// 767 * @param none
|
||
// 768 *
|
||
// 769 * @return Number of entries restored
|
||
// 770 */
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
// 771 uint16 BindRestoreFromNV( void )
|
||
BindRestoreFromNV:
|
||
CFI Block cfiBlock127 Using cfiCommon0
|
||
CFI Function BindRestoreFromNV
|
||
CODE
|
||
// 772 {
|
||
FUNCALL BindRestoreFromNV, osal_nv_read
|
||
LOCFRAME ISTACK, 0, STACK
|
||
LOCFRAME PSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 41, STACK
|
||
LOCFRAME IOVERLAY, 0, STATIC
|
||
LOCFRAME DOVERLAY, 0, STATIC
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 41, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
FUNCALL BindRestoreFromNV, bindingAddrMgsHelperConvert
|
||
LOCFRAME ISTACK, 0, STACK
|
||
LOCFRAME PSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 37, STACK
|
||
LOCFRAME IOVERLAY, 0, STATIC
|
||
LOCFRAME DOVERLAY, 0, STATIC
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 37, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
FUNCALL BindRestoreFromNV, bindAddEntry
|
||
LOCFRAME ISTACK, 0, STACK
|
||
LOCFRAME PSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 39, STACK
|
||
LOCFRAME IOVERLAY, 0, STATIC
|
||
LOCFRAME DOVERLAY, 0, STATIC
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 39, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
FUNCALL BindRestoreFromNV, osal_nv_read
|
||
LOCFRAME ISTACK, 0, STACK
|
||
LOCFRAME PSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 41, STACK
|
||
LOCFRAME IOVERLAY, 0, STATIC
|
||
LOCFRAME DOVERLAY, 0, STATIC
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 41, 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: 25
|
||
MOV A,#-0x19
|
||
LCALL ?ALLOC_XSTACK8
|
||
CFI CFA_XSP16 add(XSP16, 37)
|
||
// 773 uint16 x;
|
||
// 774 nvBindingHdr_t hdr;
|
||
// 775 BindingEntry_t bind;
|
||
// 776 zAddrType_t dstAddr;
|
||
// 777 uint16 numAdded = 0;
|
||
MOV R6,#0x0
|
||
MOV R7,#0x0
|
||
// 778
|
||
// 779 if ( osal_nv_read( ZCD_NV_BINDING_TABLE, 0, sizeof(nvBindingHdr_t), &hdr ) == ZSuccess )
|
||
; Setup parameters for call to function osal_nv_read
|
||
MOV R0,?XSP + 0
|
||
MOV R1,?XSP + 1
|
||
MOV ?V0,R0
|
||
MOV ?V1,R1
|
||
MOV R0,#?V0
|
||
LCALL ?PUSH_XSTACK_I_TWO
|
||
CFI CFA_XSP16 add(XSP16, 39)
|
||
MOV ?V0,#0x2
|
||
MOV ?V1,R6
|
||
MOV R0,#?V0
|
||
LCALL ?PUSH_XSTACK_I_TWO
|
||
CFI CFA_XSP16 add(XSP16, 41)
|
||
MOV R4,#0x0
|
||
MOV R5,#0x0
|
||
MOV R2,#0x41
|
||
MOV R3,#0x0
|
||
LCALL `??osal_nv_read::?relay`; Banked call to: osal_nv_read
|
||
MOV A,#0x4
|
||
LCALL ?DEALLOC_XSTACK8
|
||
CFI CFA_XSP16 add(XSP16, 37)
|
||
MOV A,R1
|
||
JZ $+5
|
||
LJMP ??BindRestoreFromNV_0 & 0xFFFF
|
||
// 780 {
|
||
// 781 // Read in the device list
|
||
// 782 for ( x = 0; x < hdr.numRecs; x++ )
|
||
MOV ?V0,R6
|
||
SJMP ??BindRestoreFromNV_1
|
||
// 783 {
|
||
// 784 if ( osal_nv_read( ZCD_NV_BINDING_TABLE,
|
||
// 785 (uint16)(sizeof(nvBindingHdr_t) + (x * NV_BIND_REC_SIZE)),
|
||
// 786 NV_BIND_REC_SIZE, &bind ) == ZSUCCESS )
|
||
// 787 {
|
||
// 788 dstAddr.addrMode = AddrNotPresent;
|
||
// 789
|
||
// 790 // Find the addresses
|
||
// 791 if ( bind.dstGroupMode )
|
||
// 792 {
|
||
// 793 // Setup the group address as the destination address.
|
||
// 794 dstAddr.addrMode = AddrGroup;
|
||
// 795 dstAddr.addr.shortAddr = bind.dstIdx;
|
||
// 796 }
|
||
// 797 else
|
||
// 798 {
|
||
// 799 // Find address index in address manager
|
||
// 800 bindingAddrMgsHelperConvert( bind.dstIdx, &dstAddr );
|
||
??BindRestoreFromNV_2:
|
||
; Setup parameters for call to function bindingAddrMgsHelperConvert
|
||
MOV A,#0x2
|
||
LCALL ?XSTACK_DISP102_8
|
||
MOV A,#0xd
|
||
LCALL ?XSTACK_DISP0_8
|
||
MOVX A,@DPTR
|
||
MOV R2,A
|
||
INC DPTR
|
||
MOVX A,@DPTR
|
||
MOV R3,A
|
||
LCALL `??bindingAddrMgsHelperConvert::?relay`; Banked call to: bindingAddrMgsHelperConvert
|
||
// 801 }
|
||
// 802
|
||
// 803 if ( dstAddr.addrMode != AddrNotPresent )
|
||
??BindRestoreFromNV_3:
|
||
MOV A,#0xa
|
||
LCALL ?XSTACK_DISP0_8
|
||
MOVX A,@DPTR
|
||
JZ ??BindRestoreFromNV_4
|
||
// 804 {
|
||
// 805 bindAddEntry( bind.srcEP, &dstAddr,
|
||
// 806 bind.dstEP, bind.numClusterIds, bind.clusterIdList );
|
||
; Setup parameters for call to function bindAddEntry
|
||
MOV A,#0x11
|
||
LCALL ?XSTACK_DISP0_8
|
||
MOV ?V2,DPL
|
||
MOV ?V3,DPH
|
||
MOV R0,#?V2
|
||
LCALL ?PUSH_XSTACK_I_TWO
|
||
CFI CFA_XSP16 add(XSP16, 39)
|
||
MOV A,#0x12
|
||
LCALL ?XSTACK_DISP0_8
|
||
MOVX A,@DPTR
|
||
MOV R5,A
|
||
MOV A,#0x11
|
||
LCALL ?XSTACK_DISP0_8
|
||
MOVX A,@DPTR
|
||
MOV R4,A
|
||
MOV A,#0x4
|
||
LCALL ?XSTACK_DISP101_8
|
||
MOV A,#0xd
|
||
LCALL ?XSTACK_DISP0_8
|
||
MOVX A,@DPTR
|
||
MOV R1,A
|
||
LCALL `??bindAddEntry::?relay`; Banked call to: bindAddEntry
|
||
MOV A,#0x2
|
||
LCALL ?DEALLOC_XSTACK8
|
||
CFI CFA_XSP16 add(XSP16, 37)
|
||
// 807 numAdded++;
|
||
INC R6
|
||
MOV A,R6
|
||
JNZ ??BindRestoreFromNV_4
|
||
INC R7
|
||
// 808 }
|
||
??BindRestoreFromNV_4:
|
||
INC ?V0
|
||
MOV A,?V0
|
||
JNZ ??BindRestoreFromNV_1
|
||
INC ?V1
|
||
??BindRestoreFromNV_1:
|
||
LCALL ?Subroutine24 & 0xFFFF
|
||
??CrossCallReturnLabel_85:
|
||
CLR C
|
||
MOV A,?V0
|
||
SUBB A,R0
|
||
MOV A,?V1
|
||
SUBB A,R1
|
||
JNC ??BindRestoreFromNV_0
|
||
; Setup parameters for call to function osal_nv_read
|
||
MOV A,#0xb
|
||
LCALL ?XSTACK_DISP100_8
|
||
MOV ?V2,R0
|
||
MOV ?V3,R1
|
||
MOV R0,#?V2
|
||
LCALL ?PUSH_XSTACK_I_TWO
|
||
CFI CFA_XSP16 add(XSP16, 39)
|
||
MOV DPTR,#gBIND_REC_SIZE
|
||
LCALL ?PUSH_XSTACK8_C_TWO
|
||
CFI CFA_XSP16 add(XSP16, 41)
|
||
MOV R0,?V0
|
||
MOV DPTR,#gBIND_REC_SIZE
|
||
CLR A
|
||
MOVC A,@A+DPTR
|
||
MOV ?V2,A
|
||
MOV A,#0x1
|
||
MOVC A,@A+DPTR
|
||
MOV ?V3,A
|
||
MOV A,R0
|
||
MOV B,?V2
|
||
MUL AB
|
||
XCH A,R0
|
||
MOV R2,B
|
||
MOV B,?V3
|
||
MUL AB
|
||
ADD A,R2
|
||
MOV R2,A
|
||
MOV B,?V2
|
||
MOV A,?V1
|
||
MUL AB
|
||
ADD A,R2
|
||
MOV R1,A
|
||
LCALL ?Subroutine28 & 0xFFFF
|
||
??CrossCallReturnLabel_78:
|
||
LCALL `??osal_nv_read::?relay`; Banked call to: osal_nv_read
|
||
MOV A,#0x4
|
||
LCALL ?DEALLOC_XSTACK8
|
||
CFI CFA_XSP16 add(XSP16, 37)
|
||
MOV A,R1
|
||
JNZ ??BindRestoreFromNV_4
|
||
MOV A,#0xa
|
||
LCALL ?XSTACK_DISP0_8
|
||
CLR A
|
||
MOVX @DPTR,A
|
||
MOV A,#0xc
|
||
LCALL ?XSTACK_DISP0_8
|
||
MOVX A,@DPTR
|
||
JNZ $+5
|
||
LJMP ??BindRestoreFromNV_2 & 0xFFFF
|
||
MOV A,#0xa
|
||
LCALL ?XSTACK_DISP0_8
|
||
MOV A,#0x1
|
||
MOVX @DPTR,A
|
||
MOV A,#0xd
|
||
LCALL ?XSTACK_DISP0_8
|
||
LCALL ??Subroutine49_0 & 0xFFFF
|
||
// 809 }
|
||
// 810 }
|
||
// 811 }
|
||
??CrossCallReturnLabel_80:
|
||
MOV A,#0x2
|
||
LCALL ?XSTACK_DISP0_8
|
||
MOV A,R0
|
||
MOVX @DPTR,A
|
||
INC DPTR
|
||
MOV A,R1
|
||
MOVX @DPTR,A
|
||
LJMP ??BindRestoreFromNV_3 & 0xFFFF
|
||
// 812 return ( numAdded );
|
||
??BindRestoreFromNV_0:
|
||
MOV A,R6
|
||
MOV R2,A
|
||
MOV A,R7
|
||
MOV R3,A
|
||
MOV A,#0x19
|
||
CFI EndBlock cfiBlock127
|
||
REQUIRE ?Subroutine5
|
||
; // Fall through to label ?Subroutine5
|
||
// 813 }
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
?Subroutine5:
|
||
CFI Block cfiBlock128 Using cfiCommon0
|
||
CFI NoFunction
|
||
CFI CFA_SP SP+0
|
||
CFI CFA_XSP16 add(XSP16, 37)
|
||
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
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(-12)))
|
||
CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
|
||
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 ?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 Invalid
|
||
LCALL ?DEALLOC_XSTACK8
|
||
CFI EndBlock cfiBlock128
|
||
REQUIRE ??Subroutine45_0
|
||
; // Fall through to label ??Subroutine45_0
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
??Subroutine45_0:
|
||
CFI Block cfiBlock129 Using cfiCommon0
|
||
CFI NoFunction
|
||
CFI CFA_SP SP+0
|
||
CFI CFA_XSP16 add(XSP16, 12)
|
||
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
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(-12)))
|
||
CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
|
||
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 ?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,#0x4
|
||
LJMP ?BANKED_LEAVE_XDATA
|
||
CFI EndBlock cfiBlock129
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
?Subroutine28:
|
||
CFI Block cfiCond130 Using cfiCommon0
|
||
CFI Function BindRestoreFromNV
|
||
CFI Conditional ??CrossCallReturnLabel_78
|
||
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, 41)
|
||
CFI Block cfiCond131 Using cfiCommon0
|
||
CFI (cfiCond131) Function BindWriteNV
|
||
CFI (cfiCond131) Conditional ??CrossCallReturnLabel_79
|
||
CFI (cfiCond131) R6 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI (cfiCond131) VB load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI (cfiCond131) V0 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI (cfiCond131) V1 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI (cfiCond131) V2 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, 31)
|
||
CFI Block cfiPicker132 Using cfiCommon1
|
||
CFI (cfiPicker132) NoFunction
|
||
CFI (cfiPicker132) Picker
|
||
MOV A,R0
|
||
ADD A,#0x2
|
||
MOV R4,A
|
||
CLR A
|
||
CFI EndBlock cfiCond130
|
||
CFI EndBlock cfiCond131
|
||
CFI EndBlock cfiPicker132
|
||
REQUIRE ??Subroutine46_0
|
||
; // Fall through to label ??Subroutine46_0
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
??Subroutine46_0:
|
||
CFI Block cfiCond133 Using cfiCommon0
|
||
CFI Function BindInitNV
|
||
CFI Conditional ??CrossCallReturnLabel_77
|
||
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, 12)
|
||
CFI Block cfiCond134 Using cfiCommon0
|
||
CFI (cfiCond134) Function BindRestoreFromNV
|
||
CFI (cfiCond134) Conditional ??CrossCallReturnLabel_78
|
||
CFI (cfiCond134) R6 load(1, XDATA, add(CFA_XSP16, literal(-12)))
|
||
CFI (cfiCond134) VB load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI (cfiCond134) V0 load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI (cfiCond134) V1 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI (cfiCond134) V2 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI (cfiCond134) V3 load(1, XDATA, add(CFA_XSP16, literal(-7)))
|
||
CFI (cfiCond134) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
|
||
CFI (cfiCond134) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
|
||
CFI (cfiCond134) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
|
||
CFI (cfiCond134) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
|
||
CFI (cfiCond134) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
|
||
CFI (cfiCond134) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
|
||
CFI (cfiCond134) CFA_SP SP+-2
|
||
CFI (cfiCond134) CFA_XSP16 add(XSP16, 41)
|
||
CFI Block cfiCond135 Using cfiCommon0
|
||
CFI (cfiCond135) Function BindWriteNV
|
||
CFI (cfiCond135) Conditional ??CrossCallReturnLabel_79
|
||
CFI (cfiCond135) R6 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI (cfiCond135) VB load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI (cfiCond135) V0 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI (cfiCond135) V1 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI (cfiCond135) V2 load(1, XDATA, add(CFA_XSP16, literal(-7)))
|
||
CFI (cfiCond135) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
|
||
CFI (cfiCond135) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
|
||
CFI (cfiCond135) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
|
||
CFI (cfiCond135) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
|
||
CFI (cfiCond135) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
|
||
CFI (cfiCond135) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
|
||
CFI (cfiCond135) CFA_SP SP+-2
|
||
CFI (cfiCond135) CFA_XSP16 add(XSP16, 31)
|
||
CFI Block cfiPicker136 Using cfiCommon1
|
||
CFI (cfiPicker136) NoFunction
|
||
CFI (cfiPicker136) Picker
|
||
ADDC A,R1
|
||
MOV R5,A
|
||
MOV R2,#0x41
|
||
MOV R3,#0x0
|
||
RET
|
||
CFI EndBlock cfiCond133
|
||
CFI EndBlock cfiCond134
|
||
CFI EndBlock cfiCond135
|
||
CFI EndBlock cfiPicker136
|
||
// 814
|
||
// 815 /*********************************************************************
|
||
// 816 * @fn BindWriteNV
|
||
// 817 *
|
||
// 818 * @brief Save the Binding Table in NV
|
||
// 819 *
|
||
// 820 * @param none
|
||
// 821 *
|
||
// 822 * @return none
|
||
// 823 */
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
// 824 void BindWriteNV( void )
|
||
BindWriteNV:
|
||
CFI Block cfiBlock137 Using cfiCommon0
|
||
CFI Function BindWriteNV
|
||
CODE
|
||
// 825 {
|
||
FUNCALL BindWriteNV, osal_memcpy
|
||
LOCFRAME ISTACK, 0, STACK
|
||
LOCFRAME PSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 30, STACK
|
||
LOCFRAME IOVERLAY, 0, STATIC
|
||
LOCFRAME DOVERLAY, 0, STATIC
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 30, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
FUNCALL BindWriteNV, osal_nv_write
|
||
LOCFRAME ISTACK, 0, STACK
|
||
LOCFRAME PSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 31, STACK
|
||
LOCFRAME IOVERLAY, 0, STATIC
|
||
LOCFRAME DOVERLAY, 0, STATIC
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 31, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
FUNCALL BindWriteNV, osal_nv_write
|
||
LOCFRAME ISTACK, 0, STACK
|
||
LOCFRAME PSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 31, STACK
|
||
LOCFRAME IOVERLAY, 0, STATIC
|
||
LOCFRAME DOVERLAY, 0, STATIC
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 31, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
REQUIRE ?V0
|
||
REQUIRE ?V1
|
||
REQUIRE ?V2
|
||
MOV A,#-0xb
|
||
LCALL ?BANKED_ENTER_XDATA
|
||
CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
|
||
CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
|
||
CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
|
||
CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
|
||
CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
|
||
CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
|
||
CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-7)))
|
||
CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI CFA_SP SP+0
|
||
CFI CFA_XSP16 add(XSP16, 11)
|
||
; Saved register size: 11
|
||
; Auto size: 16
|
||
MOV A,#-0x10
|
||
LCALL ?ALLOC_XSTACK8
|
||
CFI CFA_XSP16 add(XSP16, 27)
|
||
// 826 BindingEntry_t *pBind;
|
||
// 827 BindingEntry_t bind;
|
||
// 828 nvBindingHdr_t hdr;
|
||
// 829 uint16 x;
|
||
// 830
|
||
// 831 hdr.numRecs = 0;
|
||
MOV DPL,?XSP + 0
|
||
MOV DPH,?XSP + 1
|
||
CLR A
|
||
MOVX @DPTR,A
|
||
INC DPTR
|
||
MOVX @DPTR,A
|
||
// 832
|
||
// 833 for ( x = 0; x < gNWK_MAX_BINDING_ENTRIES; x++ )
|
||
MOV R6,A
|
||
MOV R7,A
|
||
SJMP ??BindWriteNV_0
|
||
// 834 {
|
||
// 835 pBind = &BindingTable[x];
|
||
??BindWriteNV_1:
|
||
LCALL ?Subroutine9 & 0xFFFF
|
||
// 836
|
||
// 837 if ( pBind->srcEP != NV_BIND_EMPTY )
|
||
??CrossCallReturnLabel_73:
|
||
CPL A
|
||
JZ ??BindWriteNV_2
|
||
// 838 {
|
||
// 839 osal_memcpy( &bind, pBind, gBIND_REC_SIZE );
|
||
; Setup parameters for call to function osal_memcpy
|
||
MOV ?V0,DPL
|
||
MOV ?V1,DPH
|
||
MOV ?V2,#0x0
|
||
MOV R0,#?V0
|
||
LCALL ?PUSH_XSTACK_I_THREE
|
||
CFI CFA_XSP16 add(XSP16, 30)
|
||
LCALL ?Subroutine13 & 0xFFFF
|
||
??CrossCallReturnLabel_59:
|
||
MOV A,#0x5
|
||
LCALL ?XSTACK_DISP101_8
|
||
LCALL `??osal_memcpy::?relay`; Banked call to: osal_memcpy
|
||
MOV A,#0x3
|
||
LCALL ?DEALLOC_XSTACK8
|
||
CFI CFA_XSP16 add(XSP16, 27)
|
||
// 840
|
||
// 841 // Save the record to NV
|
||
// 842 osal_nv_write( ZCD_NV_BINDING_TABLE,
|
||
// 843 (uint16)((sizeof(nvBindingHdr_t)) + (hdr.numRecs * NV_BIND_REC_SIZE)),
|
||
// 844 NV_BIND_REC_SIZE, &bind );
|
||
; Setup parameters for call to function osal_nv_write
|
||
MOV A,#0x2
|
||
LCALL ?XSTACK_DISP100_8
|
||
MOV ?V0,R0
|
||
MOV ?V1,R1
|
||
MOV R0,#?V0
|
||
LCALL ?PUSH_XSTACK_I_TWO
|
||
CFI CFA_XSP16 add(XSP16, 29)
|
||
MOV DPTR,#gBIND_REC_SIZE
|
||
LCALL ?PUSH_XSTACK8_C_TWO
|
||
CFI CFA_XSP16 add(XSP16, 31)
|
||
MOV A,#0x4
|
||
LCALL ?XSTACK_DISP0_8
|
||
LCALL ??Subroutine49_0 & 0xFFFF
|
||
??CrossCallReturnLabel_81:
|
||
MOV DPTR,#gBIND_REC_SIZE
|
||
LCALL ?Subroutine8 & 0xFFFF
|
||
??CrossCallReturnLabel_6:
|
||
LCALL ?Subroutine28 & 0xFFFF
|
||
??CrossCallReturnLabel_79:
|
||
LCALL `??osal_nv_write::?relay`; Banked call to: osal_nv_write
|
||
MOV A,#0x4
|
||
LCALL ?DEALLOC_XSTACK8
|
||
CFI CFA_XSP16 add(XSP16, 27)
|
||
// 845 hdr.numRecs++;
|
||
MOV DPL,?XSP + 0
|
||
MOV DPH,?XSP + 1
|
||
MOVX A,@DPTR
|
||
ADD A,#0x1
|
||
MOVX @DPTR,A
|
||
INC DPTR
|
||
MOVX A,@DPTR
|
||
ADDC A,#0x0
|
||
MOVX @DPTR,A
|
||
// 846 }
|
||
// 847 }
|
||
??BindWriteNV_2:
|
||
INC R6
|
||
MOV A,R6
|
||
JNZ ??BindWriteNV_0
|
||
INC R7
|
||
??BindWriteNV_0:
|
||
LCALL ?Subroutine10 & 0xFFFF
|
||
??CrossCallReturnLabel_9:
|
||
JC ??BindWriteNV_1
|
||
// 848
|
||
// 849 // Save off the header
|
||
// 850 osal_nv_write( ZCD_NV_BINDING_TABLE, 0, sizeof(nvBindingHdr_t), &hdr );
|
||
; Setup parameters for call to function osal_nv_write
|
||
MOV R0,?XSP + 0
|
||
MOV R1,?XSP + 1
|
||
MOV ?V0,R0
|
||
MOV ?V1,R1
|
||
MOV R0,#?V0
|
||
LCALL ?PUSH_XSTACK_I_TWO
|
||
CFI CFA_XSP16 add(XSP16, 29)
|
||
MOV ?V0,#0x2
|
||
MOV ?V1,#0x0
|
||
MOV R0,#?V0
|
||
LCALL ?PUSH_XSTACK_I_TWO
|
||
CFI CFA_XSP16 add(XSP16, 31)
|
||
MOV R4,#0x0
|
||
MOV R5,#0x0
|
||
MOV R2,#0x41
|
||
MOV R3,#0x0
|
||
LCALL `??osal_nv_write::?relay`; Banked call to: osal_nv_write
|
||
MOV A,#0x4
|
||
LCALL ?DEALLOC_XSTACK8
|
||
CFI CFA_XSP16 add(XSP16, 27)
|
||
// 851 }
|
||
MOV A,#0x10
|
||
LCALL ?DEALLOC_XSTACK8
|
||
CFI EndBlock cfiBlock137
|
||
REQUIRE ?Subroutine3
|
||
; // Fall through to label ?Subroutine3
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
?Subroutine3:
|
||
CFI Block cfiBlock138 Using cfiCommon0
|
||
CFI NoFunction
|
||
CFI CFA_SP SP+0
|
||
CFI CFA_XSP16 add(XSP16, 11)
|
||
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
|
||
CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
|
||
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
|
||
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-7)))
|
||
CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
|
||
CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
|
||
CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
|
||
MOV R7,#0x3
|
||
LJMP ?BANKED_LEAVE_XDATA
|
||
CFI EndBlock cfiBlock138
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
?Subroutine8:
|
||
CFI Block cfiCond139 Using cfiCommon0
|
||
CFI Function BindInitNV
|
||
CFI Conditional ??CrossCallReturnLabel_5
|
||
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, 12)
|
||
CFI Block cfiCond140 Using cfiCommon0
|
||
CFI (cfiCond140) Function BindWriteNV
|
||
CFI (cfiCond140) Conditional ??CrossCallReturnLabel_6
|
||
CFI (cfiCond140) R6 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI (cfiCond140) VB load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI (cfiCond140) V0 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI (cfiCond140) V1 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI (cfiCond140) V2 load(1, XDATA, add(CFA_XSP16, literal(-7)))
|
||
CFI (cfiCond140) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
|
||
CFI (cfiCond140) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
|
||
CFI (cfiCond140) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
|
||
CFI (cfiCond140) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
|
||
CFI (cfiCond140) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
|
||
CFI (cfiCond140) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
|
||
CFI (cfiCond140) CFA_SP SP+-2
|
||
CFI (cfiCond140) CFA_XSP16 add(XSP16, 31)
|
||
CFI Block cfiPicker141 Using cfiCommon1
|
||
CFI (cfiPicker141) NoFunction
|
||
CFI (cfiPicker141) Picker
|
||
LCALL ?Subroutine33 & 0xFFFF
|
||
??CrossCallReturnLabel_45:
|
||
MOV A,R0
|
||
MOV B,?V0
|
||
MUL AB
|
||
XCH A,R0
|
||
MOV R2,B
|
||
MOV B,?V1
|
||
MUL AB
|
||
ADD A,R2
|
||
MOV R2,A
|
||
MOV B,?V0
|
||
MOV A,R1
|
||
MUL AB
|
||
ADD A,R2
|
||
MOV R1,A
|
||
RET
|
||
CFI EndBlock cfiCond139
|
||
CFI EndBlock cfiCond140
|
||
CFI EndBlock cfiPicker141
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
?Subroutine33:
|
||
CFI Block cfiCond142 Using cfiCommon0
|
||
CFI Function InitBindingTable
|
||
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 cfiCond143 Using cfiCommon0
|
||
CFI (cfiCond143) Function BindInitNV
|
||
CFI (cfiCond143) Conditional ??CrossCallReturnLabel_45, ??CrossCallReturnLabel_5
|
||
CFI (cfiCond143) R6 load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI (cfiCond143) VB load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI (cfiCond143) V0 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI (cfiCond143) V1 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+-4
|
||
CFI (cfiCond143) CFA_XSP16 add(XSP16, 12)
|
||
CFI Block cfiCond144 Using cfiCommon0
|
||
CFI (cfiCond144) Function BindWriteNV
|
||
CFI (cfiCond144) Conditional ??CrossCallReturnLabel_45, ??CrossCallReturnLabel_6
|
||
CFI (cfiCond144) R6 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI (cfiCond144) VB load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI (cfiCond144) V0 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI (cfiCond144) V1 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI (cfiCond144) V2 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+-4
|
||
CFI (cfiCond144) CFA_XSP16 add(XSP16, 31)
|
||
CFI Block cfiPicker145 Using cfiCommon1
|
||
CFI (cfiPicker145) NoFunction
|
||
CFI (cfiPicker145) Picker
|
||
CLR A
|
||
MOVC A,@A+DPTR
|
||
MOV ?V0,A
|
||
MOV A,#0x1
|
||
MOVC A,@A+DPTR
|
||
MOV ?V1,A
|
||
RET
|
||
CFI EndBlock cfiCond142
|
||
CFI EndBlock cfiCond143
|
||
CFI EndBlock cfiCond144
|
||
CFI EndBlock cfiPicker145
|
||
// 852
|
||
// 853 /*********************************************************************
|
||
// 854 * @fn bindUpdateAddr
|
||
// 855 *
|
||
// 856 * @brief Update the network address in the binding table.
|
||
// 857 *
|
||
// 858 * @param oldAddr - old network address
|
||
// 859 * @param newAddr - new network address
|
||
// 860 *
|
||
// 861 * @return none
|
||
// 862 */
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
// 863 void bindUpdateAddr( uint16 oldAddr, uint16 newAddr )
|
||
bindUpdateAddr:
|
||
CFI Block cfiBlock146 Using cfiCommon0
|
||
CFI Function bindUpdateAddr
|
||
CODE
|
||
// 864 {
|
||
FUNCALL bindUpdateAddr, bindingAddrMgsHelperFind
|
||
LOCFRAME ISTACK, 0, STACK
|
||
LOCFRAME PSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 21, STACK
|
||
LOCFRAME IOVERLAY, 0, STATIC
|
||
LOCFRAME DOVERLAY, 0, STATIC
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 21, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
FUNCALL bindUpdateAddr, bindingAddrMgsHelperFind
|
||
LOCFRAME ISTACK, 0, STACK
|
||
LOCFRAME PSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 21, STACK
|
||
LOCFRAME IOVERLAY, 0, STATIC
|
||
LOCFRAME DOVERLAY, 0, STATIC
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 21, 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: 9
|
||
MOV A,#-0x9
|
||
LCALL ?ALLOC_XSTACK8
|
||
CFI CFA_XSP16 add(XSP16, 21)
|
||
MOV ?V0,R4
|
||
MOV ?V1,R5
|
||
// 865 uint16 oldIdx;
|
||
// 866 uint16 newIdx;
|
||
// 867 zAddrType_t addr;
|
||
// 868 uint16 x;
|
||
// 869 BindingEntry_t *pBind;
|
||
// 870
|
||
// 871 addr.addrMode = Addr16Bit;
|
||
MOV A,#0x8
|
||
LCALL ?XSTACK_DISP0_8
|
||
MOV A,#0x2
|
||
MOVX @DPTR,A
|
||
// 872 addr.addr.shortAddr = oldAddr;
|
||
MOV DPL,?XSP + 0
|
||
MOV DPH,?XSP + 1
|
||
LCALL ?Subroutine34 & 0xFFFF
|
||
// 873 oldIdx = bindingAddrMgsHelperFind( &addr );
|
||
??CrossCallReturnLabel_46:
|
||
LCALL `??bindingAddrMgsHelperFind::?relay`; Banked call to: bindingAddrMgsHelperFind
|
||
MOV ?V2,R2
|
||
MOV ?V3,R3
|
||
MOV R6,?V2
|
||
MOV R7,?V3
|
||
// 874 addr.addr.shortAddr = newAddr;
|
||
MOV DPL,?XSP + 0
|
||
MOV DPH,?XSP + 1
|
||
LCALL ?Subroutine20 & 0xFFFF
|
||
// 875 newIdx = bindingAddrMgsHelperFind( &addr );
|
||
??CrossCallReturnLabel_54:
|
||
; Setup parameters for call to function bindingAddrMgsHelperFind
|
||
MOV R2,?XSP + 0
|
||
MOV R3,?XSP + 1
|
||
LCALL `??bindingAddrMgsHelperFind::?relay`; Banked call to: bindingAddrMgsHelperFind
|
||
MOV ?V0,R2
|
||
MOV ?V1,R3
|
||
// 876
|
||
// 877 for ( x = 0; x < gNWK_MAX_BINDING_ENTRIES; x++ )
|
||
MOV R0,#0x0
|
||
MOV R1,#0x0
|
||
SJMP ??bindUpdateAddr_0
|
||
// 878 {
|
||
// 879 pBind = &BindingTable[x];
|
||
??bindUpdateAddr_1:
|
||
MOV A,R0
|
||
MOV R2,A
|
||
MOV A,R1
|
||
MOV R3,A
|
||
MOV A,R2
|
||
MOV B,#0xe
|
||
MUL AB
|
||
MOV R2,A
|
||
MOV R4,B
|
||
MOV B,#0xe
|
||
MOV A,R3
|
||
MUL AB
|
||
ADD A,R4
|
||
MOV R3,A
|
||
MOV A,#BindingTable & 0xff
|
||
ADD A,R2
|
||
MOV R2,A
|
||
MOV A,#(BindingTable >> 8) & 0xff
|
||
ADDC A,R3
|
||
MOV R3,A
|
||
// 880
|
||
// 881 if ( pBind->dstIdx == oldIdx )
|
||
MOV DPL,R2
|
||
MOV DPH,A
|
||
INC DPTR
|
||
INC DPTR
|
||
MOVX A,@DPTR
|
||
XRL A,R6
|
||
JNZ ??bindUpdateAddr_2
|
||
INC DPTR
|
||
MOVX A,@DPTR
|
||
XRL A,R7
|
||
??bindUpdateAddr_2:
|
||
JNZ ??CrossCallReturnLabel_55
|
||
// 882 {
|
||
// 883 pBind->dstIdx = newIdx;
|
||
MOV DPL,R2
|
||
MOV DPH,R3
|
||
INC DPTR
|
||
INC DPTR
|
||
LCALL ?Subroutine20 & 0xFFFF
|
||
// 884 }
|
||
// 885 }
|
||
??CrossCallReturnLabel_55:
|
||
INC R0
|
||
MOV A,R0
|
||
JNZ ??bindUpdateAddr_0
|
||
INC R1
|
||
??bindUpdateAddr_0:
|
||
LCALL ?Subroutine7 & 0xFFFF
|
||
??CrossCallReturnLabel_4:
|
||
JC ??bindUpdateAddr_1
|
||
// 886 }
|
||
MOV A,#0x9
|
||
LJMP ?Subroutine5 & 0xFFFF
|
||
CFI EndBlock cfiBlock146
|
||
// 887
|
||
// 888 /*********************************************************************
|
||
// 889 * @fn bindingAddrMgsHelperFind
|
||
// 890 *
|
||
// 891 * @brief Turns an zAddrType_t to an Addr Manager index
|
||
// 892 *
|
||
// 893 * @param addr - zAddrType_t
|
||
// 894 *
|
||
// 895 * @return INVALID_NODE_ADDR if not found, otherwise an index
|
||
// 896 */
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
// 897 uint16 bindingAddrMgsHelperFind( zAddrType_t *addr )
|
||
bindingAddrMgsHelperFind:
|
||
CFI Block cfiBlock147 Using cfiCommon0
|
||
CFI Function bindingAddrMgsHelperFind
|
||
CODE
|
||
// 898 {
|
||
FUNCALL bindingAddrMgsHelperFind, AddrMgrEntryLookupNwk
|
||
LOCFRAME ISTACK, 2, STACK
|
||
LOCFRAME PSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 13, STACK
|
||
LOCFRAME IOVERLAY, 0, STATIC
|
||
LOCFRAME DOVERLAY, 0, STATIC
|
||
ARGFRAME ISTACK, 2, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 13, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
FUNCALL bindingAddrMgsHelperFind, AddrMgrExtAddrSet
|
||
LOCFRAME ISTACK, 2, STACK
|
||
LOCFRAME PSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 13, STACK
|
||
LOCFRAME IOVERLAY, 0, STATIC
|
||
LOCFRAME DOVERLAY, 0, STATIC
|
||
ARGFRAME ISTACK, 2, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 13, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
FUNCALL bindingAddrMgsHelperFind, AddrMgrEntryLookupExt
|
||
LOCFRAME ISTACK, 2, STACK
|
||
LOCFRAME PSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 13, STACK
|
||
LOCFRAME IOVERLAY, 0, STATIC
|
||
LOCFRAME DOVERLAY, 0, STATIC
|
||
ARGFRAME ISTACK, 2, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 13, 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: 13
|
||
MOV A,#-0xd
|
||
LCALL ?ALLOC_XSTACK8
|
||
CFI CFA_XSP16 add(XSP16, 13)
|
||
// 899 AddrMgrEntry_t entry;
|
||
// 900
|
||
// 901 // Resolve addresses with the address manager
|
||
// 902 entry.user = ADDRMGR_USER_BINDING;
|
||
LCALL ?Subroutine17 & 0xFFFF
|
||
// 903 if ( addr->addrMode == Addr16Bit )
|
||
??CrossCallReturnLabel_21:
|
||
JNZ ??bindingAddrMgsHelperFind_0
|
||
// 904 {
|
||
// 905 entry.nwkAddr = addr->addr.shortAddr;
|
||
MOV DPL,R2
|
||
MOV DPH,R3
|
||
LCALL ?Subroutine23 & 0xFFFF
|
||
// 906 AddrMgrEntryLookupNwk( &entry );
|
||
// 907 }
|
||
??CrossCallReturnLabel_29:
|
||
LCALL ?XSTACK_DISP0_8
|
||
LCALL ?Subroutine18 & 0xFFFF
|
||
??CrossCallReturnLabel_23:
|
||
SJMP ??CrossCallReturnLabel_40
|
||
// 908 else
|
||
// 909 {
|
||
// 910 AddrMgrExtAddrSet( entry.extAddr, addr->addr.extAddr );
|
||
??bindingAddrMgsHelperFind_0:
|
||
; Setup parameters for call to function AddrMgrExtAddrSet
|
||
MOV A,R2
|
||
MOV R4,A
|
||
MOV A,R3
|
||
MOV R5,A
|
||
MOV A,#0x3
|
||
LCALL ?XSTACK_DISP0_8
|
||
LCALL ?Subroutine30 & 0xFFFF
|
||
// 911 AddrMgrEntryLookupExt( &entry );
|
||
// 912 }
|
||
// 913
|
||
// 914 return ( entry.index );
|
||
??CrossCallReturnLabel_40:
|
||
SJMP ?Subroutine1
|
||
// 915 }
|
||
CFI EndBlock cfiBlock147
|
||
// 916
|
||
// 917 /*********************************************************************
|
||
// 918 * @fn bindingAddrMgsHelperConvert
|
||
// 919 *
|
||
// 920 * @brief Convert an index into an zAddrType_t
|
||
// 921 *
|
||
// 922 * @param idx -
|
||
// 923 * @param addr - zAddrType_t
|
||
// 924 *
|
||
// 925 * @return TRUE if found, FALSE if not
|
||
// 926 */
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
// 927 uint8 bindingAddrMgsHelperConvert( uint16 idx, zAddrType_t *addr )
|
||
bindingAddrMgsHelperConvert:
|
||
CFI Block cfiBlock148 Using cfiCommon0
|
||
CFI Function bindingAddrMgsHelperConvert
|
||
CODE
|
||
// 928 {
|
||
FUNCALL bindingAddrMgsHelperConvert, AddrMgrEntryGet
|
||
LOCFRAME ISTACK, 0, STACK
|
||
LOCFRAME PSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 22, STACK
|
||
LOCFRAME IOVERLAY, 0, STATIC
|
||
LOCFRAME DOVERLAY, 0, STATIC
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 22, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
FUNCALL bindingAddrMgsHelperConvert, sAddrExtCpy
|
||
LOCFRAME ISTACK, 0, STACK
|
||
LOCFRAME PSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 22, STACK
|
||
LOCFRAME IOVERLAY, 0, STATIC
|
||
LOCFRAME DOVERLAY, 0, STATIC
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 22, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
REQUIRE ?V0
|
||
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: 13
|
||
MOV A,#-0xd
|
||
LCALL ?ALLOC_XSTACK8
|
||
CFI CFA_XSP16 add(XSP16, 22)
|
||
MOV A,R4
|
||
MOV R6,A
|
||
MOV A,R5
|
||
MOV R7,A
|
||
// 929 AddrMgrEntry_t entry;
|
||
// 930 uint8 stat;
|
||
// 931
|
||
// 932 // Resolve addresses with the address manager
|
||
// 933 entry.user = ADDRMGR_USER_BINDING;
|
||
MOV DPL,?XSP + 0
|
||
MOV DPH,?XSP + 1
|
||
MOV A,#0x4
|
||
MOVX @DPTR,A
|
||
// 934 entry.index = idx;
|
||
MOV A,#0xb
|
||
LCALL ?XSTACK_DISP0_8
|
||
LCALL ?Subroutine19 & 0xFFFF
|
||
// 935 stat = AddrMgrEntryGet( &entry );
|
||
??CrossCallReturnLabel_25:
|
||
MOV A,R1
|
||
MOV ?V0,A
|
||
// 936 if ( stat )
|
||
JZ ??bindingAddrMgsHelperConvert_0
|
||
// 937 {
|
||
// 938 addr->addrMode = Addr64Bit;
|
||
MOV DPL,R6
|
||
MOV DPH,R7
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
MOV A,#0x3
|
||
MOVX @DPTR,A
|
||
// 939 osal_cpyExtAddr( addr->addr.extAddr, entry.extAddr );
|
||
; Setup parameters for call to function sAddrExtCpy
|
||
LCALL ?XSTACK_DISP0_8
|
||
MOV R4,DPL
|
||
MOV R5,DPH
|
||
MOV A,R6
|
||
MOV R2,A
|
||
MOV A,R7
|
||
MOV R3,A
|
||
LCALL `??sAddrExtCpy::?relay`; Banked call to: sAddrExtCpy
|
||
// 940 }
|
||
// 941
|
||
// 942 return ( stat );
|
||
??bindingAddrMgsHelperConvert_0:
|
||
MOV R1,?V0
|
||
MOV A,#0xd
|
||
LCALL ?DEALLOC_XSTACK8
|
||
CFI CFA_XSP16 add(XSP16, 9)
|
||
LJMP ?Subroutine2 & 0xFFFF
|
||
// 943 }
|
||
CFI EndBlock cfiBlock148
|
||
// 944
|
||
// 945 /*********************************************************************
|
||
// 946 * @fn bindingAddrMgsHelperConvertShort
|
||
// 947 *
|
||
// 948 * @brief Convert an index into a short address
|
||
// 949 *
|
||
// 950 * @param idx -
|
||
// 951 *
|
||
// 952 * @return INVALID_NODE_ADDR if not available, otherwise the short address
|
||
// 953 */
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
// 954 uint16 bindingAddrMgsHelperConvertShort( uint16 idx )
|
||
bindingAddrMgsHelperConvertShort:
|
||
CFI Block cfiBlock149 Using cfiCommon0
|
||
CFI Function bindingAddrMgsHelperConvertShort
|
||
CODE
|
||
// 955 {
|
||
FUNCALL bindingAddrMgsHelperConvertShort, AddrMgrEntryGet
|
||
LOCFRAME ISTACK, 2, STACK
|
||
LOCFRAME PSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 13, STACK
|
||
LOCFRAME IOVERLAY, 0, STATIC
|
||
LOCFRAME DOVERLAY, 0, STATIC
|
||
ARGFRAME ISTACK, 2, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 13, 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: 13
|
||
MOV A,#-0xd
|
||
LCALL ?ALLOC_XSTACK8
|
||
CFI CFA_XSP16 add(XSP16, 13)
|
||
// 956 AddrMgrEntry_t entry;
|
||
// 957
|
||
// 958 // Resolve addresses with the address manager
|
||
// 959 entry.user = ADDRMGR_USER_BINDING;
|
||
MOV DPL,?XSP + 0
|
||
MOV DPH,?XSP + 1
|
||
MOV A,#0x4
|
||
MOVX @DPTR,A
|
||
// 960 entry.index = idx;
|
||
MOV A,#0xb
|
||
LCALL ?XSTACK_DISP0_8
|
||
LCALL ?Subroutine19 & 0xFFFF
|
||
// 961 AddrMgrEntryGet( &entry );
|
||
// 962
|
||
// 963 return ( entry.nwkAddr );
|
||
??CrossCallReturnLabel_26:
|
||
MOV A,#0x1
|
||
SJMP ??Subroutine47_0
|
||
// 964 }
|
||
CFI EndBlock cfiBlock149
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
?Subroutine19:
|
||
CFI Block cfiCond150 Using cfiCommon0
|
||
CFI Function bindingAddrMgsHelperConvert
|
||
CFI Conditional ??CrossCallReturnLabel_25
|
||
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, 22)
|
||
CFI Block cfiCond151 Using cfiCommon0
|
||
CFI (cfiCond151) Function bindingAddrMgsHelperConvertShort
|
||
CFI (cfiCond151) Conditional ??CrossCallReturnLabel_26
|
||
CFI (cfiCond151) DPL0 Frame(CFA_SP, 4)
|
||
CFI (cfiCond151) DPH0 Frame(CFA_SP, 5)
|
||
CFI (cfiCond151) CFA_SP SP+-7
|
||
CFI (cfiCond151) CFA_XSP16 add(XSP16, 13)
|
||
CFI Block cfiPicker152 Using cfiCommon1
|
||
CFI (cfiPicker152) NoFunction
|
||
CFI (cfiPicker152) Picker
|
||
LCALL ?Subroutine34 & 0xFFFF
|
||
??CrossCallReturnLabel_47:
|
||
LCALL `??AddrMgrEntryGet::?relay`; Banked call to: AddrMgrEntryGet
|
||
RET
|
||
CFI EndBlock cfiCond150
|
||
CFI EndBlock cfiCond151
|
||
CFI EndBlock cfiPicker152
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
?Subroutine34:
|
||
CFI Block cfiCond153 Using cfiCommon0
|
||
CFI Function bindUpdateAddr
|
||
CFI Conditional ??CrossCallReturnLabel_46
|
||
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, 21)
|
||
CFI Block cfiCond154 Using cfiCommon0
|
||
CFI (cfiCond154) Function bindingAddrMgsHelperConvert
|
||
CFI (cfiCond154) Conditional ??CrossCallReturnLabel_47, ??CrossCallReturnLabel_25
|
||
CFI (cfiCond154) R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI (cfiCond154) VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI (cfiCond154) V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
|
||
CFI (cfiCond154) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
|
||
CFI (cfiCond154) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
|
||
CFI (cfiCond154) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
|
||
CFI (cfiCond154) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
|
||
CFI (cfiCond154) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
|
||
CFI (cfiCond154) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
|
||
CFI (cfiCond154) CFA_SP SP+-4
|
||
CFI (cfiCond154) CFA_XSP16 add(XSP16, 22)
|
||
CFI Block cfiCond155 Using cfiCommon0
|
||
CFI (cfiCond155) Function bindingAddrMgsHelperConvertShort
|
||
CFI (cfiCond155) Conditional ??CrossCallReturnLabel_47, ??CrossCallReturnLabel_26
|
||
CFI (cfiCond155) DPL0 Frame(CFA_SP, 4)
|
||
CFI (cfiCond155) DPH0 Frame(CFA_SP, 5)
|
||
CFI (cfiCond155) CFA_SP SP+-9
|
||
CFI (cfiCond155) CFA_XSP16 add(XSP16, 13)
|
||
CFI Block cfiPicker156 Using cfiCommon1
|
||
CFI (cfiPicker156) NoFunction
|
||
CFI (cfiPicker156) Picker
|
||
MOV A,R2
|
||
MOVX @DPTR,A
|
||
INC DPTR
|
||
MOV A,R3
|
||
MOVX @DPTR,A
|
||
; Setup parameters for call to function bindingAddrMgsHelperFind
|
||
; Setup parameters for call to function AddrMgrEntryGet
|
||
; Setup parameters for call to function AddrMgrEntryGet
|
||
MOV R2,?XSP + 0
|
||
MOV R3,?XSP + 1
|
||
RET
|
||
CFI EndBlock cfiCond153
|
||
CFI EndBlock cfiCond154
|
||
CFI EndBlock cfiCond155
|
||
CFI EndBlock cfiPicker156
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
?Subroutine1:
|
||
CFI Block cfiBlock157 Using cfiCommon0
|
||
CFI NoFunction
|
||
CFI CFA_SP SP+-5
|
||
CFI CFA_XSP16 add(XSP16, 13)
|
||
CFI DPL0 Frame(CFA_SP, 4)
|
||
CFI DPH0 Frame(CFA_SP, 5)
|
||
MOV A,#0xb
|
||
CFI EndBlock cfiBlock157
|
||
REQUIRE ??Subroutine47_0
|
||
; // Fall through to label ??Subroutine47_0
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
??Subroutine47_0:
|
||
CFI Block cfiBlock158 Using cfiCommon0
|
||
CFI NoFunction
|
||
CFI CFA_SP SP+-5
|
||
CFI CFA_XSP16 add(XSP16, 13)
|
||
CFI DPL0 Frame(CFA_SP, 4)
|
||
CFI DPH0 Frame(CFA_SP, 5)
|
||
LCALL ?XSTACK_DISP0_8
|
||
MOVX A,@DPTR
|
||
MOV R2,A
|
||
INC DPTR
|
||
MOVX A,@DPTR
|
||
MOV R3,A
|
||
MOV A,#0xd
|
||
LCALL ?DEALLOC_XSTACK8
|
||
CFI EndBlock cfiBlock158
|
||
REQUIRE ??Subroutine48_0
|
||
; // Fall through to label ??Subroutine48_0
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
??Subroutine48_0:
|
||
CFI Block cfiBlock159 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 cfiBlock159
|
||
// 965
|
||
// 966 /*********************************************************************
|
||
// 967 * @fn bindAddrMgrLocalLoad
|
||
// 968 *
|
||
// 969 * @brief Load local(self and parent) address information into
|
||
// 970 * Address Manager
|
||
// 971 *
|
||
// 972 * @param none
|
||
// 973 *
|
||
// 974 * @return none
|
||
// 975 */
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
// 976 void bindAddrMgrLocalLoad( void )
|
||
bindAddrMgrLocalLoad:
|
||
CFI Block cfiBlock160 Using cfiCommon0
|
||
CFI Function bindAddrMgrLocalLoad
|
||
CODE
|
||
// 977 {
|
||
FUNCALL bindAddrMgrLocalLoad, NLME_GetExtAddr
|
||
LOCFRAME ISTACK, 0, STACK
|
||
LOCFRAME PSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 23, STACK
|
||
LOCFRAME IOVERLAY, 0, STATIC
|
||
LOCFRAME DOVERLAY, 0, STATIC
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 23, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
FUNCALL bindAddrMgrLocalLoad, AddrMgrExtAddrSet
|
||
LOCFRAME ISTACK, 0, STACK
|
||
LOCFRAME PSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 23, STACK
|
||
LOCFRAME IOVERLAY, 0, STATIC
|
||
LOCFRAME DOVERLAY, 0, STATIC
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 23, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
FUNCALL bindAddrMgrLocalLoad, AddrMgrEntryUpdate
|
||
LOCFRAME ISTACK, 0, STACK
|
||
LOCFRAME PSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 23, STACK
|
||
LOCFRAME IOVERLAY, 0, STATIC
|
||
LOCFRAME DOVERLAY, 0, STATIC
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 23, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
FUNCALL bindAddrMgrLocalLoad, NLME_GetCoordShortAddr
|
||
LOCFRAME ISTACK, 0, STACK
|
||
LOCFRAME PSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 23, STACK
|
||
LOCFRAME IOVERLAY, 0, STATIC
|
||
LOCFRAME DOVERLAY, 0, STATIC
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 23, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
FUNCALL bindAddrMgrLocalLoad, NLME_GetCoordExtAddr
|
||
LOCFRAME ISTACK, 0, STACK
|
||
LOCFRAME PSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 23, STACK
|
||
LOCFRAME IOVERLAY, 0, STATIC
|
||
LOCFRAME DOVERLAY, 0, STATIC
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 23, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
FUNCALL bindAddrMgrLocalLoad, AddrMgrEntryUpdate
|
||
LOCFRAME ISTACK, 0, STACK
|
||
LOCFRAME PSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 23, STACK
|
||
LOCFRAME IOVERLAY, 0, STATIC
|
||
LOCFRAME DOVERLAY, 0, STATIC
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 23, 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: 13
|
||
MOV A,#-0xd
|
||
LCALL ?ALLOC_XSTACK8
|
||
CFI CFA_XSP16 add(XSP16, 23)
|
||
// 978 AddrMgrEntry_t entry;
|
||
// 979 uint16 parent;
|
||
// 980
|
||
// 981 // add "local"(self and parent) address informtion into the Address
|
||
// 982 // Manager
|
||
// 983 if ( bindAddrMgrLocalLoaded == FALSE )
|
||
MOV DPTR,#bindAddrMgrLocalLoaded
|
||
MOVX A,@DPTR
|
||
JNZ ??bindAddrMgrLocalLoad_0
|
||
// 984 {
|
||
// 985 // add the device's address information
|
||
// 986 entry.user = ADDRMGR_USER_BINDING;
|
||
MOV DPL,?XSP + 0
|
||
MOV DPH,?XSP + 1
|
||
MOV A,#0x4
|
||
MOVX @DPTR,A
|
||
// 987 entry.nwkAddr = _NIB.nwkDevAddress;
|
||
MOV DPTR,#_NIB + 20
|
||
LCALL ?Subroutine23 & 0xFFFF
|
||
??CrossCallReturnLabel_30:
|
||
LCALL ?XSTACK_DISP0_8
|
||
MOV A,R0
|
||
MOVX @DPTR,A
|
||
INC DPTR
|
||
MOV A,R1
|
||
MOVX @DPTR,A
|
||
// 988 AddrMgrExtAddrSet( entry.extAddr, NLME_GetExtAddr() );
|
||
; Setup parameters for call to function NLME_GetExtAddr
|
||
LCALL `??NLME_GetExtAddr::?relay`; Banked call to: NLME_GetExtAddr
|
||
MOV ?V0,R2
|
||
MOV ?V1,R3
|
||
MOV R4,?V0
|
||
MOV R5,?V1
|
||
; Setup parameters for call to function AddrMgrExtAddrSet
|
||
MOV A,#0x3
|
||
LCALL ?XSTACK_DISP0_8
|
||
MOV R2,DPL
|
||
MOV R3,DPH
|
||
LCALL `??AddrMgrExtAddrSet::?relay`; Banked call to: AddrMgrExtAddrSet
|
||
// 989 AddrMgrEntryUpdate( &entry );
|
||
; Setup parameters for call to function AddrMgrEntryUpdate
|
||
MOV R2,?XSP + 0
|
||
MOV R3,?XSP + 1
|
||
LCALL `??AddrMgrEntryUpdate::?relay`; Banked call to: AddrMgrEntryUpdate
|
||
// 990
|
||
// 991 // make sure parent address is valid
|
||
// 992 parent = NLME_GetCoordShortAddr();
|
||
; Setup parameters for call to function NLME_GetCoordShortAddr
|
||
LCALL `??NLME_GetCoordShortAddr::?relay`; Banked call to: NLME_GetCoordShortAddr
|
||
MOV ?V0,R2
|
||
MOV ?V1,R3
|
||
MOV R0,?V0
|
||
MOV R1,?V1
|
||
// 993 if ( ( parent != entry.nwkAddr ) &&
|
||
// 994 ( parent != INVALID_NODE_ADDR ) )
|
||
MOV A,#0x1
|
||
LCALL ?XSTACK_DISP0_8
|
||
MOVX A,@DPTR
|
||
XRL A,R0
|
||
JNZ ??bindAddrMgrLocalLoad_1
|
||
INC DPTR
|
||
MOVX A,@DPTR
|
||
XRL A,R1
|
||
??bindAddrMgrLocalLoad_1:
|
||
JZ ??bindAddrMgrLocalLoad_2
|
||
MOV A,#-0x2
|
||
XRL A,R0
|
||
JNZ ??bindAddrMgrLocalLoad_3
|
||
MOV A,#-0x1
|
||
XRL A,R1
|
||
??bindAddrMgrLocalLoad_3:
|
||
JZ ??bindAddrMgrLocalLoad_2
|
||
// 995 {
|
||
// 996 // add the parent's address information
|
||
// 997 entry.nwkAddr = parent;
|
||
MOV A,#0x1
|
||
LCALL ?XSTACK_DISP0_8
|
||
MOV A,R2
|
||
MOVX @DPTR,A
|
||
INC DPTR
|
||
MOV A,R3
|
||
MOVX @DPTR,A
|
||
// 998 NLME_GetCoordExtAddr( entry.extAddr );
|
||
; Setup parameters for call to function NLME_GetCoordExtAddr
|
||
MOV A,#0x3
|
||
LCALL ?XSTACK_DISP0_8
|
||
MOV R2,DPL
|
||
MOV R3,DPH
|
||
LCALL `??NLME_GetCoordExtAddr::?relay`; Banked call to: NLME_GetCoordExtAddr
|
||
// 999 AddrMgrEntryUpdate( &entry );
|
||
; Setup parameters for call to function AddrMgrEntryUpdate
|
||
MOV R2,?XSP + 0
|
||
MOV R3,?XSP + 1
|
||
LCALL `??AddrMgrEntryUpdate::?relay`; Banked call to: AddrMgrEntryUpdate
|
||
// 1000 }
|
||
// 1001
|
||
// 1002 bindAddrMgrLocalLoaded = TRUE;
|
||
??bindAddrMgrLocalLoad_2:
|
||
MOV DPTR,#bindAddrMgrLocalLoaded
|
||
MOV A,#0x1
|
||
MOVX @DPTR,A
|
||
// 1003 }
|
||
// 1004 }
|
||
??bindAddrMgrLocalLoad_0:
|
||
MOV A,#0xd
|
||
LJMP ?Subroutine0 & 0xFFFF
|
||
CFI EndBlock cfiBlock160
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
?Subroutine23:
|
||
CFI Block cfiCond161 Using cfiCommon0
|
||
CFI Function bindingAddrMgsHelperFind
|
||
CFI Conditional ??CrossCallReturnLabel_29
|
||
CFI DPL0 Frame(CFA_SP, 4)
|
||
CFI DPH0 Frame(CFA_SP, 5)
|
||
CFI CFA_SP SP+-7
|
||
CFI CFA_XSP16 add(XSP16, 13)
|
||
CFI Block cfiCond162 Using cfiCommon0
|
||
CFI (cfiCond162) Function bindAddrMgrLocalLoad
|
||
CFI (cfiCond162) Conditional ??CrossCallReturnLabel_30
|
||
CFI (cfiCond162) R6 load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI (cfiCond162) VB load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI (cfiCond162) V0 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI (cfiCond162) V1 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+-2
|
||
CFI (cfiCond162) CFA_XSP16 add(XSP16, 23)
|
||
CFI Block cfiCond163 Using cfiCommon0
|
||
CFI (cfiCond163) Function bindAddrIndexGet
|
||
CFI (cfiCond163) Conditional ??CrossCallReturnLabel_31
|
||
CFI (cfiCond163) DPL0 Frame(CFA_SP, 4)
|
||
CFI (cfiCond163) DPH0 Frame(CFA_SP, 5)
|
||
CFI (cfiCond163) CFA_SP SP+-7
|
||
CFI (cfiCond163) CFA_XSP16 add(XSP16, 13)
|
||
CFI Block cfiPicker164 Using cfiCommon1
|
||
CFI (cfiPicker164) NoFunction
|
||
CFI (cfiPicker164) Picker
|
||
MOVX A,@DPTR
|
||
MOV R0,A
|
||
INC DPTR
|
||
MOVX A,@DPTR
|
||
MOV R1,A
|
||
MOV A,#0x1
|
||
RET
|
||
CFI EndBlock cfiCond161
|
||
CFI EndBlock cfiCond162
|
||
CFI EndBlock cfiCond163
|
||
CFI EndBlock cfiPicker164
|
||
// 1005
|
||
// 1006 /*********************************************************************
|
||
// 1007 * @fn bindAddrIndexGet
|
||
// 1008 *
|
||
// 1009 * @brief Get bind address index.
|
||
// 1010 *
|
||
// 1011 * @param addr - <zAddrType_t>
|
||
// 1012 *
|
||
// 1013 * @return (uint16) address index
|
||
// 1014 */
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
// 1015 uint16 bindAddrIndexGet( zAddrType_t* addr )
|
||
bindAddrIndexGet:
|
||
CFI Block cfiBlock165 Using cfiCommon0
|
||
CFI Function bindAddrIndexGet
|
||
CODE
|
||
// 1016 {
|
||
FUNCALL bindAddrIndexGet, AddrMgrEntryLookupNwk
|
||
LOCFRAME ISTACK, 2, STACK
|
||
LOCFRAME PSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 13, STACK
|
||
LOCFRAME IOVERLAY, 0, STATIC
|
||
LOCFRAME DOVERLAY, 0, STATIC
|
||
ARGFRAME ISTACK, 2, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 13, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
FUNCALL bindAddrIndexGet, AddrMgrExtAddrSet
|
||
LOCFRAME ISTACK, 2, STACK
|
||
LOCFRAME PSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 13, STACK
|
||
LOCFRAME IOVERLAY, 0, STATIC
|
||
LOCFRAME DOVERLAY, 0, STATIC
|
||
ARGFRAME ISTACK, 2, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 13, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
FUNCALL bindAddrIndexGet, AddrMgrEntryLookupExt
|
||
LOCFRAME ISTACK, 2, STACK
|
||
LOCFRAME PSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 13, STACK
|
||
LOCFRAME IOVERLAY, 0, STATIC
|
||
LOCFRAME DOVERLAY, 0, STATIC
|
||
ARGFRAME ISTACK, 2, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 13, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
FUNCALL bindAddrIndexGet, AddrMgrEntryUpdate
|
||
LOCFRAME ISTACK, 2, STACK
|
||
LOCFRAME PSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 13, STACK
|
||
LOCFRAME IOVERLAY, 0, STATIC
|
||
LOCFRAME DOVERLAY, 0, STATIC
|
||
ARGFRAME ISTACK, 2, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 13, 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: 13
|
||
MOV A,#-0xd
|
||
LCALL ?ALLOC_XSTACK8
|
||
CFI CFA_XSP16 add(XSP16, 13)
|
||
// 1017 AddrMgrEntry_t entry;
|
||
// 1018 uint8 update;
|
||
// 1019
|
||
// 1020 update = FALSE;
|
||
// 1021
|
||
// 1022 // sync binding addresses with the address manager
|
||
// 1023 entry.user = ADDRMGR_USER_BINDING;
|
||
LCALL ?Subroutine17 & 0xFFFF
|
||
// 1024
|
||
// 1025 if ( addr->addrMode == Addr16Bit )
|
||
??CrossCallReturnLabel_22:
|
||
MOV DPL,R2
|
||
MOV DPH,R3
|
||
JNZ ??bindAddrIndexGet_0
|
||
// 1026 {
|
||
// 1027 entry.nwkAddr = addr->addr.shortAddr;
|
||
LCALL ?Subroutine23 & 0xFFFF
|
||
// 1028
|
||
// 1029 if ( AddrMgrEntryLookupNwk( &entry ) == FALSE )
|
||
// 1030 {
|
||
// 1031 update = TRUE;
|
||
// 1032 }
|
||
// 1033 }
|
||
??CrossCallReturnLabel_31:
|
||
LCALL ?XSTACK_DISP0_8
|
||
LCALL ?Subroutine18 & 0xFFFF
|
||
??CrossCallReturnLabel_24:
|
||
MOV A,R1
|
||
JNZ ??bindAddrIndexGet_1
|
||
SJMP ??bindAddrIndexGet_2
|
||
// 1034 else if ( addr->addrMode == Addr64Bit )
|
||
??bindAddrIndexGet_0:
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
MOVX A,@DPTR
|
||
XRL A,#0x3
|
||
JNZ ??bindAddrIndexGet_3
|
||
// 1035 {
|
||
// 1036 AddrMgrExtAddrSet( entry.extAddr, addr->addr.extAddr );
|
||
; Setup parameters for call to function AddrMgrExtAddrSet
|
||
MOV A,R2
|
||
MOV R4,A
|
||
MOV A,R3
|
||
MOV R5,A
|
||
MOV A,#0x3
|
||
LCALL ?XSTACK_DISP0_8
|
||
LCALL ?Subroutine30 & 0xFFFF
|
||
// 1037
|
||
// 1038 if ( AddrMgrEntryLookupExt( &entry ) == FALSE )
|
||
??CrossCallReturnLabel_41:
|
||
MOV A,R1
|
||
JNZ ??bindAddrIndexGet_1
|
||
// 1039 {
|
||
// 1040 update = TRUE;
|
||
// 1041 }
|
||
// 1042 }
|
||
// 1043 else if ( addr->addrMode == AddrGroup )
|
||
// 1044 {
|
||
// 1045 entry.index = addr->addr.shortAddr;
|
||
// 1046 }
|
||
// 1047 else
|
||
// 1048 {
|
||
// 1049 entry.index = INVALID_NODE_ADDR;
|
||
// 1050 }
|
||
// 1051
|
||
// 1052 if ( update )
|
||
// 1053 {
|
||
// 1054 AddrMgrEntryUpdate( &entry );
|
||
??bindAddrIndexGet_2:
|
||
; Setup parameters for call to function AddrMgrEntryUpdate
|
||
MOV R2,?XSP + 0
|
||
MOV R3,?XSP + 1
|
||
LCALL `??AddrMgrEntryUpdate::?relay`; Banked call to: AddrMgrEntryUpdate
|
||
SJMP ??bindAddrIndexGet_1
|
||
// 1055 }
|
||
??bindAddrIndexGet_3:
|
||
MOV DPL,R2
|
||
MOV DPH,R3
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
MOVX A,@DPTR
|
||
XRL A,#0x1
|
||
JNZ ??bindAddrIndexGet_4
|
||
MOV DPL,R2
|
||
MOV DPH,R3
|
||
LCALL ??Subroutine49_0 & 0xFFFF
|
||
??CrossCallReturnLabel_82:
|
||
MOV A,#0xb
|
||
LCALL ?XSTACK_DISP0_8
|
||
MOV A,R0
|
||
MOVX @DPTR,A
|
||
INC DPTR
|
||
MOV A,R1
|
||
SJMP ??bindAddrIndexGet_5
|
||
??bindAddrIndexGet_4:
|
||
MOV A,#0xb
|
||
LCALL ?XSTACK_DISP0_8
|
||
MOV A,#-0x2
|
||
MOVX @DPTR,A
|
||
INC DPTR
|
||
INC A
|
||
??bindAddrIndexGet_5:
|
||
MOVX @DPTR,A
|
||
// 1056
|
||
// 1057 return entry.index;
|
||
??bindAddrIndexGet_1:
|
||
LJMP ?Subroutine1 & 0xFFFF
|
||
// 1058 }
|
||
CFI EndBlock cfiBlock165
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
?Subroutine30:
|
||
CFI Block cfiCond166 Using cfiCommon0
|
||
CFI Function bindingAddrMgsHelperFind
|
||
CFI Conditional ??CrossCallReturnLabel_40
|
||
CFI DPL0 Frame(CFA_SP, 4)
|
||
CFI DPH0 Frame(CFA_SP, 5)
|
||
CFI CFA_SP SP+-7
|
||
CFI CFA_XSP16 add(XSP16, 13)
|
||
CFI Block cfiCond167 Using cfiCommon0
|
||
CFI (cfiCond167) Function bindAddrIndexGet
|
||
CFI (cfiCond167) Conditional ??CrossCallReturnLabel_41
|
||
CFI (cfiCond167) DPL0 Frame(CFA_SP, 4)
|
||
CFI (cfiCond167) DPH0 Frame(CFA_SP, 5)
|
||
CFI (cfiCond167) CFA_SP SP+-7
|
||
CFI (cfiCond167) CFA_XSP16 add(XSP16, 13)
|
||
CFI Block cfiPicker168 Using cfiCommon1
|
||
CFI (cfiPicker168) NoFunction
|
||
CFI (cfiPicker168) Picker
|
||
MOV R2,DPL
|
||
MOV R3,DPH
|
||
LCALL `??AddrMgrExtAddrSet::?relay`; Banked call to: AddrMgrExtAddrSet
|
||
; Setup parameters for call to function AddrMgrEntryLookupExt
|
||
; Setup parameters for call to function AddrMgrEntryLookupExt
|
||
MOV R2,?XSP + 0
|
||
MOV R3,?XSP + 1
|
||
LCALL `??AddrMgrEntryLookupExt::?relay`; Banked call to: AddrMgrEntryLookupExt
|
||
RET
|
||
CFI EndBlock cfiCond166
|
||
CFI EndBlock cfiCond167
|
||
CFI EndBlock cfiPicker168
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
?Subroutine24:
|
||
CFI Block cfiCond169 Using cfiCommon0
|
||
CFI Function bindAddEntry
|
||
CFI Conditional ??CrossCallReturnLabel_83
|
||
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-15)))
|
||
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-14)))
|
||
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-13)))
|
||
CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-12)))
|
||
CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI V4 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI V5 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI V6 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, 18)
|
||
CFI Block cfiCond170 Using cfiCommon0
|
||
CFI (cfiCond170) Function bindAddEntry
|
||
CFI (cfiCond170) Conditional ??CrossCallReturnLabel_84
|
||
CFI (cfiCond170) R6 load(1, XDATA, add(CFA_XSP16, literal(-15)))
|
||
CFI (cfiCond170) VB load(1, XDATA, add(CFA_XSP16, literal(-14)))
|
||
CFI (cfiCond170) V0 load(1, XDATA, add(CFA_XSP16, literal(-13)))
|
||
CFI (cfiCond170) V1 load(1, XDATA, add(CFA_XSP16, literal(-12)))
|
||
CFI (cfiCond170) V2 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI (cfiCond170) V3 load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI (cfiCond170) V4 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI (cfiCond170) V5 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI (cfiCond170) V6 load(1, XDATA, add(CFA_XSP16, literal(-7)))
|
||
CFI (cfiCond170) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
|
||
CFI (cfiCond170) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
|
||
CFI (cfiCond170) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
|
||
CFI (cfiCond170) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
|
||
CFI (cfiCond170) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
|
||
CFI (cfiCond170) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
|
||
CFI (cfiCond170) CFA_SP SP+-2
|
||
CFI (cfiCond170) CFA_XSP16 add(XSP16, 18)
|
||
CFI Block cfiCond171 Using cfiCommon0
|
||
CFI (cfiCond171) Function BindRestoreFromNV
|
||
CFI (cfiCond171) Conditional ??CrossCallReturnLabel_85
|
||
CFI (cfiCond171) R6 load(1, XDATA, add(CFA_XSP16, literal(-12)))
|
||
CFI (cfiCond171) VB load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI (cfiCond171) V0 load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI (cfiCond171) V1 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI (cfiCond171) V2 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI (cfiCond171) V3 load(1, XDATA, add(CFA_XSP16, literal(-7)))
|
||
CFI (cfiCond171) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
|
||
CFI (cfiCond171) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
|
||
CFI (cfiCond171) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
|
||
CFI (cfiCond171) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
|
||
CFI (cfiCond171) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
|
||
CFI (cfiCond171) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
|
||
CFI (cfiCond171) CFA_SP SP+-2
|
||
CFI (cfiCond171) CFA_XSP16 add(XSP16, 37)
|
||
CFI Block cfiPicker172 Using cfiCommon1
|
||
CFI (cfiPicker172) NoFunction
|
||
CFI (cfiPicker172) Picker
|
||
MOV DPL,?XSP + 0
|
||
MOV DPH,?XSP + 1
|
||
CFI EndBlock cfiCond169
|
||
CFI EndBlock cfiCond170
|
||
CFI EndBlock cfiCond171
|
||
CFI EndBlock cfiPicker172
|
||
REQUIRE ??Subroutine49_0
|
||
; // Fall through to label ??Subroutine49_0
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
??Subroutine49_0:
|
||
CFI Block cfiCond173 Using cfiCommon0
|
||
CFI Function BindRestoreFromNV
|
||
CFI Conditional ??CrossCallReturnLabel_80
|
||
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, 37)
|
||
CFI Block cfiCond174 Using cfiCommon0
|
||
CFI (cfiCond174) Function BindWriteNV
|
||
CFI (cfiCond174) Conditional ??CrossCallReturnLabel_81
|
||
CFI (cfiCond174) R6 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI (cfiCond174) VB load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI (cfiCond174) V0 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI (cfiCond174) V1 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI (cfiCond174) V2 load(1, XDATA, add(CFA_XSP16, literal(-7)))
|
||
CFI (cfiCond174) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
|
||
CFI (cfiCond174) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
|
||
CFI (cfiCond174) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
|
||
CFI (cfiCond174) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
|
||
CFI (cfiCond174) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
|
||
CFI (cfiCond174) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
|
||
CFI (cfiCond174) CFA_SP SP+-2
|
||
CFI (cfiCond174) CFA_XSP16 add(XSP16, 31)
|
||
CFI Block cfiCond175 Using cfiCommon0
|
||
CFI (cfiCond175) Function bindAddrIndexGet
|
||
CFI (cfiCond175) Conditional ??CrossCallReturnLabel_82
|
||
CFI (cfiCond175) DPL0 Frame(CFA_SP, 4)
|
||
CFI (cfiCond175) DPH0 Frame(CFA_SP, 5)
|
||
CFI (cfiCond175) CFA_SP SP+-7
|
||
CFI (cfiCond175) CFA_XSP16 add(XSP16, 13)
|
||
CFI Block cfiCond176 Using cfiCommon0
|
||
CFI (cfiCond176) Function bindAddEntry
|
||
CFI (cfiCond176) Conditional ??CrossCallReturnLabel_83
|
||
CFI (cfiCond176) R6 load(1, XDATA, add(CFA_XSP16, literal(-15)))
|
||
CFI (cfiCond176) VB load(1, XDATA, add(CFA_XSP16, literal(-14)))
|
||
CFI (cfiCond176) V0 load(1, XDATA, add(CFA_XSP16, literal(-13)))
|
||
CFI (cfiCond176) V1 load(1, XDATA, add(CFA_XSP16, literal(-12)))
|
||
CFI (cfiCond176) V2 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI (cfiCond176) V3 load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI (cfiCond176) V4 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI (cfiCond176) V5 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI (cfiCond176) V6 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, 18)
|
||
CFI Block cfiCond177 Using cfiCommon0
|
||
CFI (cfiCond177) Function bindAddEntry
|
||
CFI (cfiCond177) Conditional ??CrossCallReturnLabel_84
|
||
CFI (cfiCond177) R6 load(1, XDATA, add(CFA_XSP16, literal(-15)))
|
||
CFI (cfiCond177) VB load(1, XDATA, add(CFA_XSP16, literal(-14)))
|
||
CFI (cfiCond177) V0 load(1, XDATA, add(CFA_XSP16, literal(-13)))
|
||
CFI (cfiCond177) V1 load(1, XDATA, add(CFA_XSP16, literal(-12)))
|
||
CFI (cfiCond177) V2 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI (cfiCond177) V3 load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI (cfiCond177) V4 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI (cfiCond177) V5 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI (cfiCond177) V6 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, 18)
|
||
CFI Block cfiCond178 Using cfiCommon0
|
||
CFI (cfiCond178) Function BindRestoreFromNV
|
||
CFI (cfiCond178) Conditional ??CrossCallReturnLabel_85
|
||
CFI (cfiCond178) R6 load(1, XDATA, add(CFA_XSP16, literal(-12)))
|
||
CFI (cfiCond178) VB load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI (cfiCond178) V0 load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI (cfiCond178) V1 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI (cfiCond178) V2 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI (cfiCond178) V3 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, 37)
|
||
CFI Block cfiPicker179 Using cfiCommon1
|
||
CFI (cfiPicker179) NoFunction
|
||
CFI (cfiPicker179) Picker
|
||
MOVX A,@DPTR
|
||
MOV R0,A
|
||
INC DPTR
|
||
MOVX A,@DPTR
|
||
MOV R1,A
|
||
RET
|
||
CFI EndBlock cfiCond173
|
||
CFI EndBlock cfiCond174
|
||
CFI EndBlock cfiCond175
|
||
CFI EndBlock cfiCond176
|
||
CFI EndBlock cfiCond177
|
||
CFI EndBlock cfiCond178
|
||
CFI EndBlock cfiPicker179
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
?Subroutine18:
|
||
CFI Block cfiCond180 Using cfiCommon0
|
||
CFI Function bindingAddrMgsHelperFind
|
||
CFI Conditional ??CrossCallReturnLabel_23
|
||
CFI DPL0 Frame(CFA_SP, 4)
|
||
CFI DPH0 Frame(CFA_SP, 5)
|
||
CFI CFA_SP SP+-7
|
||
CFI CFA_XSP16 add(XSP16, 13)
|
||
CFI Block cfiCond181 Using cfiCommon0
|
||
CFI (cfiCond181) Function bindAddrIndexGet
|
||
CFI (cfiCond181) Conditional ??CrossCallReturnLabel_24
|
||
CFI (cfiCond181) DPL0 Frame(CFA_SP, 4)
|
||
CFI (cfiCond181) DPH0 Frame(CFA_SP, 5)
|
||
CFI (cfiCond181) CFA_SP SP+-7
|
||
CFI (cfiCond181) CFA_XSP16 add(XSP16, 13)
|
||
CFI Block cfiPicker182 Using cfiCommon1
|
||
CFI (cfiPicker182) NoFunction
|
||
CFI (cfiPicker182) Picker
|
||
MOV A,R0
|
||
MOVX @DPTR,A
|
||
INC DPTR
|
||
MOV A,R1
|
||
MOVX @DPTR,A
|
||
; Setup parameters for call to function AddrMgrEntryLookupNwk
|
||
; Setup parameters for call to function AddrMgrEntryLookupNwk
|
||
MOV R2,?XSP + 0
|
||
MOV R3,?XSP + 1
|
||
LCALL `??AddrMgrEntryLookupNwk::?relay`; Banked call to: AddrMgrEntryLookupNwk
|
||
RET
|
||
CFI EndBlock cfiCond180
|
||
CFI EndBlock cfiCond181
|
||
CFI EndBlock cfiPicker182
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
?Subroutine17:
|
||
CFI Block cfiCond183 Using cfiCommon0
|
||
CFI Function bindingAddrMgsHelperFind
|
||
CFI Conditional ??CrossCallReturnLabel_21
|
||
CFI DPL0 Frame(CFA_SP, 4)
|
||
CFI DPH0 Frame(CFA_SP, 5)
|
||
CFI CFA_SP SP+-7
|
||
CFI CFA_XSP16 add(XSP16, 13)
|
||
CFI Block cfiCond184 Using cfiCommon0
|
||
CFI (cfiCond184) Function bindAddrIndexGet
|
||
CFI (cfiCond184) Conditional ??CrossCallReturnLabel_22
|
||
CFI (cfiCond184) DPL0 Frame(CFA_SP, 4)
|
||
CFI (cfiCond184) DPH0 Frame(CFA_SP, 5)
|
||
CFI (cfiCond184) CFA_SP SP+-7
|
||
CFI (cfiCond184) CFA_XSP16 add(XSP16, 13)
|
||
CFI Block cfiPicker185 Using cfiCommon1
|
||
CFI (cfiPicker185) NoFunction
|
||
CFI (cfiPicker185) Picker
|
||
MOV DPL,?XSP + 0
|
||
MOV DPH,?XSP + 1
|
||
MOV A,#0x4
|
||
LCALL ?Subroutine32 & 0xFFFF
|
||
??CrossCallReturnLabel_43:
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
MOVX A,@DPTR
|
||
XRL A,#0x2
|
||
RET
|
||
CFI EndBlock cfiCond183
|
||
CFI EndBlock cfiCond184
|
||
CFI EndBlock cfiPicker185
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
?Subroutine32:
|
||
CFI Block cfiCond186 Using cfiCommon0
|
||
CFI Function bindAddEntry
|
||
CFI Conditional ??CrossCallReturnLabel_42
|
||
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-15)))
|
||
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-14)))
|
||
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-13)))
|
||
CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-12)))
|
||
CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI V4 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI V5 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI V6 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, 18)
|
||
CFI Block cfiCond187 Using cfiCommon0
|
||
CFI (cfiCond187) Function bindingAddrMgsHelperFind
|
||
CFI (cfiCond187) Conditional ??CrossCallReturnLabel_43, ??CrossCallReturnLabel_21
|
||
CFI (cfiCond187) DPL0 Frame(CFA_SP, 4)
|
||
CFI (cfiCond187) DPH0 Frame(CFA_SP, 5)
|
||
CFI (cfiCond187) CFA_SP SP+-9
|
||
CFI (cfiCond187) CFA_XSP16 add(XSP16, 13)
|
||
CFI Block cfiCond188 Using cfiCommon0
|
||
CFI (cfiCond188) Function bindAddrIndexGet
|
||
CFI (cfiCond188) Conditional ??CrossCallReturnLabel_43, ??CrossCallReturnLabel_22
|
||
CFI (cfiCond188) DPL0 Frame(CFA_SP, 4)
|
||
CFI (cfiCond188) DPH0 Frame(CFA_SP, 5)
|
||
CFI (cfiCond188) CFA_SP SP+-9
|
||
CFI (cfiCond188) CFA_XSP16 add(XSP16, 13)
|
||
CFI Block cfiPicker189 Using cfiCommon1
|
||
CFI (cfiPicker189) NoFunction
|
||
CFI (cfiPicker189) Picker
|
||
MOVX @DPTR,A
|
||
MOV DPL,R2
|
||
MOV DPH,R3
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
RET
|
||
CFI EndBlock cfiCond186
|
||
CFI EndBlock cfiCond187
|
||
CFI EndBlock cfiCond188
|
||
CFI EndBlock cfiPicker189
|
||
// 1059
|
||
// 1060 /*********************************************************************
|
||
// 1061 * @fn GetBindingTableEntry
|
||
// 1062 *
|
||
// 1063 * @brief Get a pointer to the Nth valid binding table entry.
|
||
// 1064 *
|
||
// 1065 * @param Nth valid entry being requested.
|
||
// 1066 *
|
||
// 1067 * @return The Nth valid binding table entry.
|
||
// 1068 */
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
// 1069 BindingEntry_t *GetBindingTableEntry( uint16 Nth )
|
||
GetBindingTableEntry:
|
||
CFI Block cfiBlock190 Using cfiCommon0
|
||
CFI Function GetBindingTableEntry
|
||
CODE
|
||
// 1070 {
|
||
REQUIRE ?V0
|
||
REQUIRE ?V1
|
||
REQUIRE ?V2
|
||
MOV A,#-0xb
|
||
LCALL ?BANKED_ENTER_XDATA
|
||
CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
|
||
CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
|
||
CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
|
||
CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
|
||
CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
|
||
CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
|
||
CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-7)))
|
||
CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI CFA_SP SP+0
|
||
CFI CFA_XSP16 add(XSP16, 11)
|
||
; Saved register size: 11
|
||
; Auto size: 0
|
||
MOV A,R2
|
||
MOV R4,A
|
||
MOV A,R3
|
||
MOV R5,A
|
||
// 1071 BindingEntry_t *rtrn = NULL;
|
||
MOV R2,#0x0
|
||
MOV R3,#0x0
|
||
// 1072
|
||
// 1073 #if defined ( REFLECTOR )
|
||
// 1074 uint16 idx, cnt = 0;
|
||
MOV ?V0,R2
|
||
MOV ?V1,R2
|
||
// 1075
|
||
// 1076 for ( idx = 0; idx < gNWK_MAX_BINDING_ENTRIES; idx++ )
|
||
MOV R0,#0x0
|
||
MOV R1,#0x0
|
||
SJMP ??GetBindingTableEntry_0
|
||
??GetBindingTableEntry_1:
|
||
INC R0
|
||
MOV A,R0
|
||
JNZ ??GetBindingTableEntry_0
|
||
INC R1
|
||
??GetBindingTableEntry_0:
|
||
MOV DPTR,#gNWK_MAX_BINDING_ENTRIES
|
||
CLR A
|
||
MOVC A,@A+DPTR
|
||
MOV R6,A
|
||
MOV A,#0x1
|
||
MOVC A,@A+DPTR
|
||
MOV R7,A
|
||
CLR C
|
||
MOV A,R0
|
||
SUBB A,R6
|
||
MOV A,R1
|
||
SUBB A,R7
|
||
JNC ??CrossCallReturnLabel_28
|
||
// 1077 {
|
||
// 1078 if ( BindingTable[idx].srcEP != NV_BIND_EMPTY )
|
||
MOV A,R0
|
||
MOV R6,A
|
||
MOV A,R1
|
||
MOV R7,A
|
||
MOV A,R6
|
||
MOV B,#0xe
|
||
MUL AB
|
||
MOV R6,A
|
||
MOV ?V2,B
|
||
MOV B,#0xe
|
||
MOV A,R7
|
||
MUL AB
|
||
ADD A,?V2
|
||
MOV R7,A
|
||
MOV A,#BindingTable & 0xff
|
||
ADD A,R6
|
||
MOV DPL,A
|
||
MOV A,#(BindingTable >> 8) & 0xff
|
||
ADDC A,R7
|
||
MOV DPH,A
|
||
MOVX A,@DPTR
|
||
CPL A
|
||
JZ ??GetBindingTableEntry_1
|
||
// 1079 {
|
||
// 1080 if ( cnt++ == Nth )
|
||
MOV R6,?V0
|
||
MOV R7,?V1
|
||
MOV A,R6
|
||
ADD A,#0x1
|
||
MOV ?V0,A
|
||
CLR A
|
||
ADDC A,R7
|
||
MOV ?V1,A
|
||
MOV A,R4
|
||
XRL A,R6
|
||
JNZ ??GetBindingTableEntry_2
|
||
MOV A,R5
|
||
XRL A,R7
|
||
??GetBindingTableEntry_2:
|
||
JNZ ??GetBindingTableEntry_1
|
||
// 1081 {
|
||
// 1082 rtrn = BindingTable+idx;
|
||
LCALL ?Subroutine22 & 0xFFFF
|
||
// 1083 break;
|
||
// 1084 }
|
||
// 1085 }
|
||
// 1086 }
|
||
// 1087 #else
|
||
// 1088 (void)Nth;
|
||
// 1089 #endif
|
||
// 1090
|
||
// 1091 return rtrn;
|
||
??CrossCallReturnLabel_28:
|
||
LJMP ?Subroutine3 & 0xFFFF
|
||
// 1092 }
|
||
CFI EndBlock cfiBlock190
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
?Subroutine22:
|
||
CFI Block cfiCond191 Using cfiCommon0
|
||
CFI Function bindFindExisting
|
||
CFI Conditional ??CrossCallReturnLabel_27
|
||
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 cfiCond192 Using cfiCommon0
|
||
CFI (cfiCond192) Function GetBindingTableEntry
|
||
CFI (cfiCond192) Conditional ??CrossCallReturnLabel_28
|
||
CFI (cfiCond192) R6 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI (cfiCond192) VB load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI (cfiCond192) V0 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI (cfiCond192) V1 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI (cfiCond192) V2 load(1, XDATA, add(CFA_XSP16, literal(-7)))
|
||
CFI (cfiCond192) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
|
||
CFI (cfiCond192) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
|
||
CFI (cfiCond192) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
|
||
CFI (cfiCond192) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
|
||
CFI (cfiCond192) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
|
||
CFI (cfiCond192) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
|
||
CFI (cfiCond192) CFA_SP SP+-2
|
||
CFI (cfiCond192) CFA_XSP16 add(XSP16, 11)
|
||
CFI Block cfiPicker193 Using cfiCommon1
|
||
CFI (cfiPicker193) NoFunction
|
||
CFI (cfiPicker193) Picker
|
||
LCALL ?Subroutine36 & 0xFFFF
|
||
??CrossCallReturnLabel_51:
|
||
RET
|
||
CFI EndBlock cfiCond191
|
||
CFI EndBlock cfiCond192
|
||
CFI EndBlock cfiPicker193
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
?Subroutine36:
|
||
CFI Block cfiCond194 Using cfiCommon0
|
||
CFI Function bindRemoveDev
|
||
CFI Conditional ??CrossCallReturnLabel_50, ??CrossCallReturnLabel_14
|
||
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-14)))
|
||
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-13)))
|
||
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-12)))
|
||
CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI V4 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI V5 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, 14)
|
||
CFI Block cfiCond195 Using cfiCommon0
|
||
CFI (cfiCond195) Function bindRemoveSrcDev
|
||
CFI (cfiCond195) Conditional ??CrossCallReturnLabel_50, ??CrossCallReturnLabel_15
|
||
CFI (cfiCond195) R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI (cfiCond195) VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI (cfiCond195) V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
|
||
CFI (cfiCond195) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
|
||
CFI (cfiCond195) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
|
||
CFI (cfiCond195) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
|
||
CFI (cfiCond195) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
|
||
CFI (cfiCond195) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
|
||
CFI (cfiCond195) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
|
||
CFI (cfiCond195) CFA_SP SP+-4
|
||
CFI (cfiCond195) CFA_XSP16 add(XSP16, 9)
|
||
CFI Block cfiCond196 Using cfiCommon0
|
||
CFI (cfiCond196) Function bindFindExisting
|
||
CFI (cfiCond196) Conditional ??CrossCallReturnLabel_51, ??CrossCallReturnLabel_27
|
||
CFI (cfiCond196) R6 load(1, XDATA, add(CFA_XSP16, literal(-12)))
|
||
CFI (cfiCond196) VB load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI (cfiCond196) V0 load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI (cfiCond196) V1 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI (cfiCond196) V2 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI (cfiCond196) V3 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+-4
|
||
CFI (cfiCond196) CFA_XSP16 add(XSP16, 12)
|
||
CFI Block cfiCond197 Using cfiCommon0
|
||
CFI (cfiCond197) Function GetBindingTableEntry
|
||
CFI (cfiCond197) Conditional ??CrossCallReturnLabel_51, ??CrossCallReturnLabel_28
|
||
CFI (cfiCond197) R6 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI (cfiCond197) VB load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI (cfiCond197) V0 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI (cfiCond197) V1 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI (cfiCond197) V2 load(1, XDATA, add(CFA_XSP16, literal(-7)))
|
||
CFI (cfiCond197) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
|
||
CFI (cfiCond197) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
|
||
CFI (cfiCond197) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
|
||
CFI (cfiCond197) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
|
||
CFI (cfiCond197) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
|
||
CFI (cfiCond197) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
|
||
CFI (cfiCond197) CFA_SP SP+-4
|
||
CFI (cfiCond197) CFA_XSP16 add(XSP16, 11)
|
||
CFI Block cfiPicker198 Using cfiCommon1
|
||
CFI (cfiPicker198) NoFunction
|
||
CFI (cfiPicker198) Picker
|
||
MOV A,R0
|
||
MOV B,#0xe
|
||
MUL AB
|
||
MOV R0,A
|
||
MOV R2,B
|
||
MOV B,#0xe
|
||
MOV A,R1
|
||
MUL AB
|
||
ADD A,R2
|
||
MOV R1,A
|
||
MOV A,#BindingTable & 0xff
|
||
ADD A,R0
|
||
MOV R2,A
|
||
MOV A,#(BindingTable >> 8) & 0xff
|
||
ADDC A,R1
|
||
MOV R3,A
|
||
RET
|
||
CFI EndBlock cfiCond194
|
||
CFI EndBlock cfiCond195
|
||
CFI EndBlock cfiCond196
|
||
CFI EndBlock cfiCond197
|
||
CFI EndBlock cfiPicker198
|
||
|
||
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
|
||
`??InitBindingTable::?relay`:
|
||
CODE
|
||
LCALL ?BDISPATCH
|
||
DATA24
|
||
DC24 InitBindingTable
|
||
|
||
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
|
||
`??bindFindEmpty::?relay`:
|
||
CODE
|
||
LCALL ?BDISPATCH
|
||
DATA24
|
||
DC24 bindFindEmpty
|
||
|
||
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
|
||
`??bindNumOfEntries::?relay`:
|
||
CODE
|
||
LCALL ?BDISPATCH
|
||
DATA24
|
||
DC24 bindNumOfEntries
|
||
|
||
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
|
||
`??bindCapacity::?relay`:
|
||
CODE
|
||
LCALL ?BDISPATCH
|
||
DATA24
|
||
DC24 bindCapacity
|
||
|
||
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
|
||
`??bindAddEntry::?relay`:
|
||
CODE
|
||
LCALL ?BDISPATCH
|
||
DATA24
|
||
DC24 bindAddEntry
|
||
|
||
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
|
||
`??bindRemoveEntry::?relay`:
|
||
CODE
|
||
LCALL ?BDISPATCH
|
||
DATA24
|
||
DC24 bindRemoveEntry
|
||
|
||
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
|
||
`??bindIsClusterIDinList::?relay`:
|
||
CODE
|
||
LCALL ?BDISPATCH
|
||
DATA24
|
||
DC24 bindIsClusterIDinList
|
||
|
||
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
|
||
`??bindRemoveClusterIdFromList::?relay`:
|
||
CODE
|
||
LCALL ?BDISPATCH
|
||
DATA24
|
||
DC24 bindRemoveClusterIdFromList
|
||
|
||
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
|
||
`??bindAddClusterIdToList::?relay`:
|
||
CODE
|
||
LCALL ?BDISPATCH
|
||
DATA24
|
||
DC24 bindAddClusterIdToList
|
||
|
||
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
|
||
`??bindFindExisting::?relay`:
|
||
CODE
|
||
LCALL ?BDISPATCH
|
||
DATA24
|
||
DC24 bindFindExisting
|
||
|
||
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
|
||
`??bindRemoveDev::?relay`:
|
||
CODE
|
||
LCALL ?BDISPATCH
|
||
DATA24
|
||
DC24 bindRemoveDev
|
||
|
||
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
|
||
`??bindRemoveSrcDev::?relay`:
|
||
CODE
|
||
LCALL ?BDISPATCH
|
||
DATA24
|
||
DC24 bindRemoveSrcDev
|
||
|
||
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
|
||
`??bindNumBoundTo::?relay`:
|
||
CODE
|
||
LCALL ?BDISPATCH
|
||
DATA24
|
||
DC24 bindNumBoundTo
|
||
|
||
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
|
||
`??bindNumReflections::?relay`:
|
||
CODE
|
||
LCALL ?BDISPATCH
|
||
DATA24
|
||
DC24 bindNumReflections
|
||
|
||
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
|
||
`??bindFind::?relay`:
|
||
CODE
|
||
LCALL ?BDISPATCH
|
||
DATA24
|
||
DC24 bindFind
|
||
|
||
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
|
||
`??BindInitNV::?relay`:
|
||
CODE
|
||
LCALL ?BDISPATCH
|
||
DATA24
|
||
DC24 BindInitNV
|
||
|
||
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
|
||
`??BindSetDefaultNV::?relay`:
|
||
CODE
|
||
LCALL ?BDISPATCH
|
||
DATA24
|
||
DC24 BindSetDefaultNV
|
||
|
||
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
|
||
`??BindRestoreFromNV::?relay`:
|
||
CODE
|
||
LCALL ?BDISPATCH
|
||
DATA24
|
||
DC24 BindRestoreFromNV
|
||
|
||
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
|
||
`??BindWriteNV::?relay`:
|
||
CODE
|
||
LCALL ?BDISPATCH
|
||
DATA24
|
||
DC24 BindWriteNV
|
||
|
||
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
|
||
`??bindUpdateAddr::?relay`:
|
||
CODE
|
||
LCALL ?BDISPATCH
|
||
DATA24
|
||
DC24 bindUpdateAddr
|
||
|
||
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
|
||
`??bindingAddrMgsHelperFind::?relay`:
|
||
CODE
|
||
LCALL ?BDISPATCH
|
||
DATA24
|
||
DC24 bindingAddrMgsHelperFind
|
||
|
||
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
|
||
`??bindingAddrMgsHelperConvert::?relay`:
|
||
CODE
|
||
LCALL ?BDISPATCH
|
||
DATA24
|
||
DC24 bindingAddrMgsHelperConvert
|
||
|
||
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
|
||
`??bindingAddrMgsHelperConvertShort::?relay`:
|
||
CODE
|
||
LCALL ?BDISPATCH
|
||
DATA24
|
||
DC24 bindingAddrMgsHelperConvertShort
|
||
|
||
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
|
||
`??bindAddrMgrLocalLoad::?relay`:
|
||
CODE
|
||
LCALL ?BDISPATCH
|
||
DATA24
|
||
DC24 bindAddrMgrLocalLoad
|
||
|
||
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
|
||
`??bindAddrIndexGet::?relay`:
|
||
CODE
|
||
LCALL ?BDISPATCH
|
||
DATA24
|
||
DC24 bindAddrIndexGet
|
||
|
||
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
|
||
`??GetBindingTableEntry::?relay`:
|
||
CODE
|
||
LCALL ?BDISPATCH
|
||
DATA24
|
||
DC24 GetBindingTableEntry
|
||
|
||
END
|
||
// 1093
|
||
// 1094 /*********************************************************************
|
||
// 1095 *********************************************************************/
|
||
//
|
||
// 3 551 bytes in segment BANKED_CODE
|
||
// 156 bytes in segment BANK_RELAYS
|
||
// 15 bytes in segment XDATA_Z
|
||
//
|
||
// 156 bytes of CODE memory
|
||
// 3 551 bytes of HUGECODE memory
|
||
// 15 bytes of XDATA memory
|
||
//
|
||
//Errors: none
|
||
//Warnings: none
|