📄 mac_scan.lst
字号:
\ 000013 A3 INC DPTR
\ 000014 F0 MOVX @DPTR,A
100
101 // Try to reserve a packet
102 pPacket = mtxpReservePacket();
\ 000015 ; Setup parameters for call to function mtxpReservePacket
\ 000015 12.... LCALL mtxpReservePacket
\ 000018 8A.. MOV ?V0 + 0,R2
\ 00001A 8B.. MOV ?V0 + 1,R3
\ 00001C AE.. MOV R6,?V0 + 0
\ 00001E AF.. MOV R7,?V0 + 1
103 if (!pPacket) return FALSE;
\ 000020 EE MOV A,R6
\ 000021 7001 JNZ ??mscTransmitBeaconRequest_0
\ 000023 EF MOV A,R7
\ ??mscTransmitBeaconRequest_0:
\ 000024 7005 JNZ ??mscTransmitBeaconRequest_1
\ ??mscTransmitBeaconRequest_2:
\ 000026 7900 MOV R1,#0x0
\ 000028 02.... LJMP ??mscTransmitBeaconRequest_3
104
105 // Try to reserve a transmission task
106 taskNumber = mschReserveTask();
\ ??mscTransmitBeaconRequest_1:
\ 00002B ; Setup parameters for call to function mschReserveTask
\ 00002B 12.... LCALL mschReserveTask
\ 00002E E9 MOV A,R1
\ 00002F F5.. MOV ?V0 + 3,A
107 if (taskNumber == NO_TASK) {
\ 000031 74FF MOV A,#-0x1
\ 000033 65.. XRL A,?V0 + 3
\ 000035 7009 JNZ ??mscTransmitBeaconRequest_4
108 mtxpReleasePacket(pPacket);
\ 000037 ; Setup parameters for call to function mtxpReleasePacket
\ 000037 EE MOV A,R6
\ 000038 FA MOV R2,A
\ 000039 EF MOV A,R7
\ 00003A FB MOV R3,A
\ 00003B 12.... LCALL mtxpReleasePacket
109 return FALSE;
\ 00003E 80E6 SJMP ??mscTransmitBeaconRequest_2
110 }
111
112 // TX mode
113 pPacket->txMode = MTX_MODE_USE_CSMACA_BM | MTX_MODE_SCAN_RELATED_BM;
\ ??mscTransmitBeaconRequest_4:
\ 000040 EE MOV A,R6
\ 000041 2486 ADD A,#-0x7a
\ 000043 F582 MOV DPL,A
\ 000045 EF MOV A,R7
\ 000046 3400 ADDC A,#0x0
\ 000048 F583 MOV DPH,A
\ 00004A 7409 MOV A,#0x9
\ 00004C F0 MOVX @DPTR,A
114 pPacket->retriesLeft = aMaxFrameRetries;
\ 00004D EE MOV A,R6
\ 00004E 2491 ADD A,#-0x6f
\ 000050 F582 MOV DPL,A
\ 000052 EF MOV A,R7
\ 000053 3400 ADDC A,#0x0
\ 000055 F583 MOV DPH,A
\ 000057 7403 MOV A,#0x3
\ 000059 F0 MOVX @DPTR,A
115
116 // Generate the packet header
117 msupPrepareHeader(pPacket, FT_MAC_COMMAND, DEST_ADDR_SHORT, broadcast, (ADDRESS *) &broadcast, broadcast, (ADDRESS *) &broadcast, TX_OPT_NONE);
\ 00005A ; Setup parameters for call to function msupPrepareHeader
\ 00005A 85..82 MOV DPL,?XSP + 0
\ 00005D 85..83 MOV DPH,?XSP + 1
\ 000060 8582.. MOV ?V0 + 0,DPL
\ 000063 8583.. MOV ?V0 + 1,DPH
\ 000066 78.. MOV R0,#?V0 + 0
\ 000068 12.... LCALL ?PUSH_XSTACK_I_TWO
\ 00006B 7402 MOV A,#0x2
\ 00006D 12.... LCALL ?XSTACK_DISP0_8
\ 000070 12.... LCALL ?PUSH_XSTACK8_X_TWO
\ 000073 7404 MOV A,#0x4
\ 000075 12.... LCALL ?XSTACK_DISP0_8
\ 000078 8582.. MOV ?V0 + 0,DPL
\ 00007B 78.. MOV R0,#?V0 + 0
\ 00007D 12.... LCALL ?PUSH_XSTACK_I_TWO
\ 000080 7406 MOV A,#0x6
\ 000082 12.... LCALL ?XSTACK_DISP0_8
\ 000085 12.... LCALL ?PUSH_XSTACK8_X_TWO
\ 000088 7D00 MOV R5,#0x0
\ 00008A 7C08 MOV R4,#0x8
\ 00008C 7903 MOV R1,#0x3
\ 00008E EE MOV A,R6
\ 00008F FA MOV R2,A
\ 000090 EF MOV A,R7
\ 000091 FB MOV R3,A
\ 000092 12.... LCALL msupPrepareHeader
\ 000095 7408 MOV A,#0x8
\ 000097 12.... LCALL ?DEALLOC_XSTACK8
118
119 // Generate the packet payload
120 pPacket->pPayload[0] = CMD_BEACON_REQUEST;
\ 00009A EE MOV A,R6
\ 00009B 241A ADD A,#0x1a
\ 00009D F582 MOV DPL,A
\ 00009F EF MOV A,R7
\ 0000A0 3400 ADDC A,#0x0
\ 0000A2 F583 MOV DPH,A
\ 0000A4 7407 MOV A,#0x7
\ 0000A6 F0 MOVX @DPTR,A
121
122 // Store the command type
123 pPacket->commandType = CMD_BEACON_REQUEST;
\ 0000A7 EE MOV A,R6
\ 0000A8 2483 ADD A,#-0x7d
\ 0000AA F582 MOV DPL,A
\ 0000AC EF MOV A,R7
\ 0000AD 3400 ADDC A,#0x0
\ 0000AF F583 MOV DPH,A
\ 0000B1 7407 MOV A,#0x7
\ 0000B3 F0 MOVX @DPTR,A
124
125 // Calculate and set the total packet length
126 pPacket->length = pPacket->headerLength + CMD_BEACON_REQUEST_PAYLOAD_LENGTH + MAC_FCS_LENGTH;
\ 0000B4 8E82 MOV DPL,R6
\ 0000B6 8F83 MOV DPH,R7
\ 0000B8 A3 INC DPTR
\ 0000B9 E0 MOVX A,@DPTR
\ 0000BA 2403 ADD A,#0x3
\ 0000BC F9 MOV R1,A
\ 0000BD 8E82 MOV DPL,R6
\ 0000BF 8F83 MOV DPH,R7
\ 0000C1 A3 INC DPTR
\ 0000C2 A3 INC DPTR
\ 0000C3 F0 MOVX @DPTR,A
127
128 // Calculate the packet duration (including ack. and IFS)
129 pPacket->duration = msupCalcPacketDuration(pPacket->length, FALSE);
\ 0000C4 ; Setup parameters for call to function msupCalcPacketDuration
\ 0000C4 7A00 MOV R2,#0x0
\ 0000C6 12.... LCALL msupCalcPacketDuration
\ 0000C9 EE MOV A,R6
\ 0000CA 2485 ADD A,#-0x7b
\ 0000CC F582 MOV DPL,A
\ 0000CE EF MOV A,R7
\ 0000CF 3400 ADDC A,#0x0
\ 0000D1 F583 MOV DPH,A
\ 0000D3 E9 MOV A,R1
\ 0000D4 F0 MOVX @DPTR,A
130
131 // Initiate the transmission
132 mschAddTask(taskNumber, MAC_TASK_PRI_LOW, mtxScheduleTransmission, (WORD) pPacket);
\ 0000D5 ; Setup parameters for call to function mschAddTask
\ 0000D5 75.... MOV ?V0 + 0,#(mtxScheduleTransmission & 0xff)
\ 0000D8 75.... MOV ?V0 + 1,#((mtxScheduleTransmission >> 8) & 0xff)
\ 0000DB 75.... MOV ?V0 + 2,#((mtxScheduleTransmission >> 16) & 0xff)
\ 0000DE 78.. MOV R0,#?V0 + 0
\ 0000E0 12.... LCALL ?PUSH_XSTACK_I_THREE
\ 0000E3 EE MOV A,R6
\ 0000E4 FC MOV R4,A
\ 0000E5 EF MOV A,R7
\ 0000E6 FD MOV R5,A
\ 0000E7 7A00 MOV R2,#0x0
\ 0000E9 A9.. MOV R1,?V0 + 3
\ 0000EB 12.... LCALL mschAddTask
\ 0000EE 7403 MOV A,#0x3
\ 0000F0 12.... LCALL ?DEALLOC_XSTACK8
133
134 return TRUE;
\ 0000F3 7901 MOV R1,#0x1
\ ??mscTransmitBeaconRequest_3:
\ 0000F5 02.... LJMP ?Subroutine0
135
136 } // mipTransmitDataRequest
137
138
139
140
141 //-------------------------------------------------------------------------------------------------------
142 // BOOL mscTransmitOrphanNotification(void)
143 //
144 // DESCRIPTION:
145 // Transmits an orphan notification during orphan scan.
146 //
147 // RETURN VALUE:
148 // BOOL
149 // The transmission was initiated
150 //-------------------------------------------------------------------------------------------------------
\ In segment NEAR_CODE, align 1, keep-with-next
151 ROOT BOOL mscTransmitOrphanNotification(void) {
\ mscTransmitOrphanNotification:
\ 000000 74F5 MOV A,#-0xb
\ 000002 12.... LCALL ?FUNC_ENTER_XDATA
\ 000005 ; Saved register size: 11
\ 000005 ; Auto size: 2
\ 000005 74FE MOV A,#-0x2
\ 000007 12.... LCALL ?ALLOC_XSTACK8
152 MAC_TX_PACKET *pPacket;
153 UINT8 taskNumber;
154 WORD broadcast = 0xFFFF;
\ 00000A 85..82 MOV DPL,?XSP + 0
\ 00000D 85..83 MOV DPH,?XSP + 1
\ 000010 74FF MOV A,#-0x1
\ 000012 F0 MOVX @DPTR,A
\ 000013 A3 INC DPTR
\ 000014 F0 MOVX @DPTR,A
155
156 // Try to reserve a packet
157 pPacket = mtxpReservePacket();
\ 000015 ; Setup parameters for call to function mtxpReservePacket
\ 000015 12.... LCALL mtxpReservePacket
\ 000018 8A.. MOV ?V0 + 0,R2
\ 00001A 8B.. MOV ?V0 + 1,R3
\ 00001C AE.. MOV R6,?V0 + 0
\ 00001E AF.. MOV R7,?V0 + 1
158 if (!pPacket) return FALSE;
\ 000020 EE MOV A,R6
\ 000021 7001 JNZ ??mscTransmitOrphanNotification_0
\ 000023 EF MOV A,R7
\ ??mscTransmitOrphanNotification_0:
\ 000024 7005 JNZ ??mscTransmitOrphanNotification_1
\ ??mscTransmitOrphanNotification_2:
\ 000026 7900 MOV R1,#0x0
\ 000028 02.... LJMP ??mscTransmitOrphanNotification_3
159
160 // Try to reserve a transmission task
161 taskNumber = mschReserveTask();
\ ??mscTransmitOrphanNotification_1:
\ 00002B ; Setup parameters for call to function mschReserveTask
\ 00002B 12.... LCALL mschReserveTask
\ 00002E E9 MOV A,R1
\ 00002F F5.. MOV ?V0 + 3,A
162 if (taskNumber == NO_TASK) {
\ 000031 74FF MOV A,#-0x1
\ 000033 65.. XRL A,?V0 + 3
\ 000035 7009 JNZ ??mscTransmitOrphanNotification_4
163 mtxpReleasePacket(pPacket);
\ 000037 ; Setup parameters for call to function mtxpReleasePacket
\ 000037 EE MOV A,R6
\ 000038 FA MOV R2,A
\ 000039 EF MOV A,R7
\ 00003A FB MOV R3,A
\ 00003B 12.... LCALL mtxpReleasePacket
164 return FALSE;
\ 00003E 80E6 SJMP ??mscTransmitOrphanNotification_2
165 }
166
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -