📄 zdprofile.lst
字号:
\ In segment BANKED_CODE, align 1, keep-with-next
298 afStatus_t ZDP_MatchDescReq( zAddrType_t *dstAddr, uint16 nwkAddr,
\ ZDP_MatchDescReq:
299 uint16 ProfileID,
300 byte NumInClusters, cId_t *InClusterList,
301 byte NumOutClusters, cId_t *OutClusterList,
302 byte SecurityEnable )
303 {
\ 000000 74F0 MOV A,#-0x10
\ 000002 12.... LCALL ?BANKED_ENTER_XDATA
\ 000005 ; Saved register size: 16
\ 000005 ; Auto size: 2
\ 000005 74FE MOV A,#-0x2
\ 000007 12.... LCALL ?ALLOC_XSTACK8
\ 00000A 85..82 MOV DPL,?XSP + 0
\ 00000D 85..83 MOV DPH,?XSP + 1
\ 000010 EA MOV A,R2
\ 000011 F0 MOVX @DPTR,A
\ 000012 A3 INC DPTR
\ 000013 EB MOV A,R3
\ 000014 F0 MOVX @DPTR,A
\ 000015 EC MOV A,R4
\ 000016 FE MOV R6,A
\ 000017 ED MOV A,R5
\ 000018 FF MOV R7,A
\ 000019 89.. MOV ?V0 + 6,R1
\ 00001B 7412 MOV A,#0x12
\ 00001D 12.... LCALL ?XSTACK_DISP0_8
\ 000020 12.... LCALL ?Subroutine14 & 0xFFFF
\ ??CrossCallReturnLabel_38:
\ 000023 7416 MOV A,#0x16
\ 000025 12.... LCALL ?XSTACK_DISP0_8
\ 000028 E0 MOVX A,@DPTR
\ 000029 F5.. MOV ?V0 + 7,A
\ 00002B 7417 MOV A,#0x17
\ 00002D 12.... LCALL ?XSTACK_DISP0_8
\ 000030 E0 MOVX A,@DPTR
\ 000031 F5.. MOV ?V0 + 4,A
\ 000033 A3 INC DPTR
\ 000034 E0 MOVX A,@DPTR
\ 000035 F5.. MOV ?V0 + 5,A
304 byte *pBuf = ZDP_TmpBuf;
\ 000037 12.... LCALL ?Subroutine16 & 0xFFFF
305 // nwkAddr+ProfileID+NumInClusters+NumOutClusters.
306 byte i, len = 2 + 2 + 1 + 1; // nwkAddr+ProfileID+NumInClusters+NumOutClusters.
307 uint8 protoVer = NLME_GetProtocolVersion();
\ ??CrossCallReturnLabel_103:
\ 00003A 12.... LCALL ?BCALL ; Banked call to: DPTR()
\ 00003D E9 MOV A,R1
\ 00003E FB MOV R3,A
308
309 len += (NumInClusters + NumOutClusters)*((protoVer != ZB_PROT_V1_0) ? sizeof ( uint16 ) : sizeof( uint8 ));
\ 00003F 7401 MOV A,#0x1
\ 000041 6B XRL A,R3
\ 000042 6004 JZ ??ZDP_MatchDescReq_0
\ 000044 7802 MOV R0,#0x2
\ 000046 8002 SJMP ??ZDP_MatchDescReq_1
\ ??ZDP_MatchDescReq_0:
\ 000048 7801 MOV R0,#0x1
\ ??ZDP_MatchDescReq_1:
\ 00004A E5.. MOV A,?V0 + 7
\ 00004C 25.. ADD A,?V0 + 6
\ 00004E F5F0 MOV B,A
\ 000050 E8 MOV A,R0
\ 000051 A4 MUL AB
\ 000052 2406 ADD A,#0x6
\ 000054 FA MOV R2,A
310
311 if ( len >= ZDP_BUF_SZ-1 )
\ 000055 C3 CLR C
\ 000056 944F SUBB A,#0x4f
\ 000058 4005 JC ??ZDP_MatchDescReq_2
312 {
313 return afStatus_MEM_FAIL;
\ 00005A 7981 MOV R1,#-0x7f
\ 00005C 02.... LJMP ??ZDP_MatchDescReq_3 & 0xFFFF
314 }
315
316 *pBuf++ = LO_UINT16( nwkAddr ); // NWKAddrOfInterest
\ ??ZDP_MatchDescReq_2:
\ 00005F EE MOV A,R6
\ 000060 85..82 MOV DPL,?V0 + 2
\ 000063 85..83 MOV DPH,?V0 + 3
\ 000066 F0 MOVX @DPTR,A
\ 000067 A3 INC DPTR
317 *pBuf++ = HI_UINT16( nwkAddr );
\ 000068 EF MOV A,R7
\ 000069 12.... LCALL ?Subroutine23 & 0xFFFF
318
319 *pBuf++ = LO_UINT16( ProfileID ); // Profile ID
320 *pBuf++ = HI_UINT16( ProfileID );
321
322 *pBuf++ = NumInClusters; // Input cluster list
\ ??CrossCallReturnLabel_51:
\ 00006C E5.. MOV A,?V0 + 6
\ 00006E 12.... LCALL ?Subroutine25 & 0xFFFF
323 if ( NumInClusters )
\ ??CrossCallReturnLabel_55:
\ 000071 6028 JZ ??ZDP_MatchDescReq_4
324 {
325 for (i=0; i<NumInClusters; ++i) {
\ 000073 7C00 MOV R4,#0x0
326 *pBuf++ = LO_UINT16( InClusterList[i] );
\ ??ZDP_MatchDescReq_5:
\ 000075 EC MOV A,R4
\ 000076 C3 CLR C
\ 000077 33 RLC A
\ 000078 F8 MOV R0,A
\ 000079 E4 CLR A
\ 00007A 33 RLC A
\ 00007B F9 MOV R1,A
\ 00007C 7414 MOV A,#0x14
\ 00007E 12.... LCALL ?XSTACK_DISP0_8
\ 000081 12.... LCALL ?Subroutine22 & 0xFFFF
\ ??CrossCallReturnLabel_49:
\ 000084 12.... LCALL ?Subroutine8 & 0xFFFF
327 if (protoVer != ZB_PROT_V1_0) {
\ ??CrossCallReturnLabel_20:
\ 000087 600B JZ ??CrossCallReturnLabel_33
328 *pBuf++ = HI_UINT16( InClusterList[i] );
\ 000089 7414 MOV A,#0x14
\ 00008B 12.... LCALL ?XSTACK_DISP0_8
\ 00008E 12.... LCALL ?Subroutine22 & 0xFFFF
\ ??CrossCallReturnLabel_50:
\ 000091 12.... LCALL ?Subroutine12 & 0xFFFF
329 }
330 }
\ ??CrossCallReturnLabel_33:
\ 000094 0C INC R4
\ 000095 EC MOV A,R4
\ 000096 C3 CLR C
\ 000097 95.. SUBB A,?V0 + 6
\ 000099 40DA JC ??ZDP_MatchDescReq_5
331 }
332
333 *pBuf++ = NumOutClusters; // Output cluster list
\ ??ZDP_MatchDescReq_4:
\ 00009B 85..82 MOV DPL,?V0 + 2
\ 00009E 85..83 MOV DPH,?V0 + 3
\ 0000A1 E5.. MOV A,?V0 + 7
\ 0000A3 12.... LCALL ?Subroutine25 & 0xFFFF
334 if ( NumOutClusters )
\ ??CrossCallReturnLabel_56:
\ 0000A6 6028 JZ ??ZDP_MatchDescReq_6
335 {
336 for (i=0; i<NumOutClusters; ++i) {
\ 0000A8 7C00 MOV R4,#0x0
337 *pBuf++ = LO_UINT16( OutClusterList[i] );
\ ??ZDP_MatchDescReq_7:
\ 0000AA EC MOV A,R4
\ 0000AB C3 CLR C
\ 0000AC 33 RLC A
\ 0000AD F8 MOV R0,A
\ 0000AE E4 CLR A
\ 0000AF 33 RLC A
\ 0000B0 F9 MOV R1,A
\ 0000B1 E5.. MOV A,?V0 + 4
\ 0000B3 28 ADD A,R0
\ 0000B4 F582 MOV DPL,A
\ 0000B6 E5.. MOV A,?V0 + 5
\ 0000B8 39 ADDC A,R1
\ 0000B9 12.... LCALL ?Subroutine8 & 0xFFFF
338 if (protoVer != ZB_PROT_V1_0) {
\ ??CrossCallReturnLabel_21:
\ 0000BC 600B JZ ??CrossCallReturnLabel_34
339 *pBuf++ = HI_UINT16( OutClusterList[i] );
\ 0000BE E5.. MOV A,?V0 + 4
\ 0000C0 28 ADD A,R0
\ 0000C1 F582 MOV DPL,A
\ 0000C3 E5.. MOV A,?V0 + 5
\ 0000C5 39 ADDC A,R1
\ 0000C6 12.... LCALL ?Subroutine12 & 0xFFFF
340 }
341 }
\ ??CrossCallReturnLabel_34:
\ 0000C9 0C INC R4
\ 0000CA EC MOV A,R4
\ 0000CB C3 CLR C
\ 0000CC 95.. SUBB A,?V0 + 7
\ 0000CE 40DA JC ??ZDP_MatchDescReq_7
342 }
343
344 return fillAndSend( &ZDP_TransID, dstAddr, Match_Desc_req, len );
\ ??ZDP_MatchDescReq_6:
\ 0000D0 ; Setup parameters for call to function fillAndSend
\ 0000D0 75..06 MOV ?V0 + 0,#0x6
\ 0000D3 75..00 MOV ?V0 + 1,#0x0
\ 0000D6 78.. MOV R0,#?V0 + 0
\ 0000D8 12.... LCALL ?PUSH_XSTACK_I_TWO
\ 0000DB EA MOV A,R2
\ 0000DC F9 MOV R1,A
\ 0000DD 7402 MOV A,#0x2
\ 0000DF 12.... LCALL ?XSTACK_DISP0_8
\ 0000E2 12.... LCALL ?Subroutine15 & 0xFFFF
\ ??CrossCallReturnLabel_41:
\ 0000E5 12.... LCALL ?BCALL ; Banked call to: DPTR()
\ 0000E8 7402 MOV A,#0x2
\ 0000EA 12.... LCALL ?DEALLOC_XSTACK8
\ ??ZDP_MatchDescReq_3:
\ 0000ED 7402 MOV A,#0x2
\ 0000EF 02.... LJMP ?Subroutine47 & 0xFFFF
345 }
\ In segment BANKED_CODE, align 1, keep-with-next
\ ?Subroutine22:
\ 000000 12.... LCALL ?Subroutine44 & 0xFFFF
\ ??CrossCallReturnLabel_97:
\ 000003 22 RET
\ In segment BANKED_CODE, align 1, keep-with-next
\ ?Subroutine44:
\ 000000 E0 MOVX A,@DPTR
\ 000001 28 ADD A,R0
\ 000002 FD MOV R5,A
\ 000003 A3 INC DPTR
\ 000004 E0 MOVX A,@DPTR
\ 000005 39 ADDC A,R1
\ 000006 8D82 MOV DPL,R5
\ 000008 22 RET
\ In segment BANKED_CODE, align 1, keep-with-next
\ ?Subroutine12:
\ 000000 12.... LCALL ?Subroutine32 & 0xFFFF
\ ??CrossCallReturnLabel_73:
\ 000003 22 RET
\ In segment BANKED_CODE, align 1, keep-with-next
\ ?Subroutine8:
\ 000000 12.... LCALL ?Subroutine30 & 0xFFFF
\ ??CrossCallReturnLabel_67:
\ 000003 6B XRL A,R3
\ 000004 22 RET
\ In segment BANKED_CODE, align 1, keep-with-next
\ ?Subroutine23:
\ 000000 F0 MOVX @DPTR,A
\ 000001 A3 INC DPTR
\ 000002 E5.. MOV A,?V0 + 0
\ 000004 F0 MOVX @DPTR,A
\ 000005 A3 INC DPTR
\ 000006 E5.. MOV A,?V0 + 1
\ 000008 F0 MOVX @DPTR,A
\ 000009 A3 INC DPTR
\ 00000A 22 RET
\ In segment BANKED_CODE, align 1, keep-with-next
\ ?Subroutine49:
\ 000000 90.... MOV DPTR,#(NLME_GetProtocolVersion & 0xffff)
\ 000003 74.. MOV A,#((NLME_GetProtocolVersion >> 16) & 0xff)
\ 000005 22 RET
\ In segment BANKED_CODE, align 1, keep-with-next
\ ?Subroutine47:
\ 000000 12.... LCALL ?DEALLOC_XSTACK8
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -