📄 mac_scan.lst
字号:
\ 000061 A3 INC DPTR
\ 000062 A3 INC DPTR
\ 000063 A3 INC DPTR
\ 000064 A3 INC DPTR
\ 000065 A3 INC DPTR
\ 000066 E0 MOVX A,@DPTR
\ 000067 F5.. MOV ?V0 + 1,A
\ 000069 8882 MOV DPL,R0
\ 00006B 8983 MOV DPH,R1
\ 00006D A3 INC DPTR
\ 00006E A3 INC DPTR
\ 00006F A3 INC DPTR
\ 000070 A3 INC DPTR
\ 000071 A3 INC DPTR
\ 000072 E0 MOVX A,@DPTR
\ 000073 65.. XRL A,?V0 + 1
\ 000075 70B6 JNZ ??mscPanDescriptorExists_4
\ 000077 8E82 MOV DPL,R6
\ 000079 8F83 MOV DPH,R7
\ 00007B A3 INC DPTR
\ 00007C A3 INC DPTR
\ 00007D A3 INC DPTR
\ 00007E A3 INC DPTR
\ 00007F A3 INC DPTR
\ 000080 A3 INC DPTR
\ 000081 E0 MOVX A,@DPTR
\ 000082 FA MOV R2,A
\ 000083 A3 INC DPTR
\ 000084 E0 MOVX A,@DPTR
\ 000085 FB MOV R3,A
\ 000086 8882 MOV DPL,R0
\ 000088 8983 MOV DPH,R1
\ 00008A A3 INC DPTR
\ 00008B A3 INC DPTR
\ 00008C A3 INC DPTR
\ 00008D A3 INC DPTR
\ 00008E A3 INC DPTR
\ 00008F A3 INC DPTR
\ 000090 E0 MOVX A,@DPTR
\ 000091 6A XRL A,R2
\ 000092 7003 JNZ ??mscPanDescriptorExists_6
\ 000094 A3 INC DPTR
\ 000095 E0 MOVX A,@DPTR
\ 000096 6B XRL A,R3
\ ??mscPanDescriptorExists_6:
\ 000097 7094 JNZ ??mscPanDescriptorExists_4
\ 000099 EE MOV A,R6
\ 00009A 2416 ADD A,#0x16
\ 00009C F582 MOV DPL,A
\ 00009E EF MOV A,R7
\ 00009F 3400 ADDC A,#0x0
\ 0000A1 F583 MOV DPH,A
\ 0000A3 E0 MOVX A,@DPTR
\ 0000A4 FA MOV R2,A
\ 0000A5 E8 MOV A,R0
\ 0000A6 2416 ADD A,#0x16
\ 0000A8 F582 MOV DPL,A
\ 0000AA E9 MOV A,R1
\ 0000AB 3400 ADDC A,#0x0
\ 0000AD F583 MOV DPH,A
\ 0000AF E0 MOVX A,@DPTR
\ 0000B0 6A XRL A,R2
\ 0000B1 6003 JZ $+5
\ 0000B3 02.... LJMP ??mscPanDescriptorExists_4
\ 0000B6 E8 MOV A,R0
\ 0000B7 2408 ADD A,#0x8
\ 0000B9 FC MOV R4,A
\ 0000BA E9 MOV A,R1
\ 0000BB 3400 ADDC A,#0x0
\ 0000BD FD MOV R5,A
\ 0000BE EE MOV A,R6
\ 0000BF 2408 ADD A,#0x8
\ 0000C1 F582 MOV DPL,A
\ 0000C3 EF MOV A,R7
\ 0000C4 3400 ADDC A,#0x0
\ 0000C6 F583 MOV DPH,A
\ 0000C8 7403 MOV A,#0x3
\ 0000CA 65.. XRL A,?V0 + 1
\ 0000CC 6003 JZ $+5
\ 0000CE 02.... LJMP ??mscPanDescriptorExists_1
\ 0000D1 ; Setup parameters for call to function msupCompareExtendedAddress
\ 0000D1 AA82 MOV R2,DPL
\ 0000D3 AB83 MOV R3,DPH
\ 0000D5 12.... LCALL msupCompareExtendedAddress
\ 0000D8 E9 MOV A,R1
\ 0000D9 7003 JNZ $+5
\ 0000DB 02.... LJMP ??mscPanDescriptorExists_4
\ ??mscPanDescriptorExists_3:
\ 0000DE 7901 MOV R1,#0x1
\ 0000E0 8002 SJMP ??mscPanDescriptorExists_7
238 }
239 }
240
241 // No match
242 return FALSE;
\ ??mscPanDescriptorExists_5:
\ 0000E2 7900 MOV R1,#0x0
\ ??mscPanDescriptorExists_7:
\ 0000E4 02.... LJMP ??Subroutine0_0
243
244 } // mscPanDescriptorExists
245
246
247
248
249 //-------------------------------------------------------------------------------------------------------
250 // BOOL mscSetNextChannel(void)
251 //
252 // DESCRIPTION:
253 // Finds the next valid channel during scan (changes the mscInfo.currentChannel variable), and
254 // updates the unscanned channels mask.
255 //
256 // RETURN VALUE:
257 // BOOL
258 // FALSE when there are no more channels to scan.
259 //-------------------------------------------------------------------------------------------------------
\ In segment NEAR_CODE, align 1, keep-with-next
260 ROOT BOOL mscSetNextChannel(void) {
\ mscSetNextChannel:
\ 000000 74F1 MOV A,#-0xf
\ 000002 12.... LCALL ?FUNC_ENTER_XDATA
\ 000005 ; Saved register size: 15
\ 000005 ; Auto size: 0
261 UINT8 n;
262 DWORD bitmask = 0x00000001;
\ 000005 90.... MOV DPTR,#__Constant_1
\ 000008 78.. MOV R0,#?V0 + 4
\ 00000A 12.... LCALL ?L_MOV_X
263
264 // Go through the channels
265 mscInfo.currentChannel++;
\ 00000D 90.... MOV DPTR,#(mscInfo + 8)
\ 000010 E0 MOVX A,@DPTR
\ 000011 04 INC A
\ 000012 F0 MOVX @DPTR,A
266 for (n = 0; n < 27; n++) {
\ 000013 7A00 MOV R2,#0x0
267 if (n >= mscInfo.currentChannel) {
\ ??mscSetNextChannel_0:
\ 000015 90.... MOV DPTR,#(mscInfo + 8)
\ 000018 E0 MOVX A,@DPTR
\ 000019 FB MOV R3,A
\ 00001A EA MOV A,R2
\ 00001B C3 CLR C
\ 00001C 9B SUBB A,R3
\ 00001D 403D JC ??mscSetNextChannel_1
268 if (bitmask & mscInfo.scanChannels) {
\ 00001F 85.... MOV ?V0 + 0,?V0 + 4
\ 000022 85.... MOV ?V0 + 1,?V0 + 5
\ 000025 85.... MOV ?V0 + 2,?V0 + 6
\ 000028 85.... MOV ?V0 + 3,?V0 + 7
\ 00002B 90.... MOV DPTR,#(mscInfo + 1)
\ 00002E 78.. MOV R0,#?V0 + 0
\ 000030 12.... LCALL ?L_AND_X
\ 000033 90.... MOV DPTR,#__Constant_0
\ 000036 78.. MOV R0,#?V0 + 0
\ 000038 12.... LCALL ?L_EQ_X
\ 00003B 601F JZ ??mscSetNextChannel_1
269 mscInfo.currentChannel = n;
\ 00003D EA MOV A,R2
\ 00003E 90.... MOV DPTR,#(mscInfo + 8)
\ 000041 F0 MOVX @DPTR,A
270 mscInfo.pScanResult->unscannedChannels &= ~bitmask;
\ 000042 78.. MOV R0,#?V0 + 4
\ 000044 12.... LCALL ?L_NOT
\ 000047 90.... MOV DPTR,#(mscInfo + 6)
\ 00004A E0 MOVX A,@DPTR
\ 00004B F8 MOV R0,A
\ 00004C A3 INC DPTR
\ 00004D E0 MOVX A,@DPTR
\ 00004E F583 MOV DPH,A
\ 000050 8882 MOV DPL,R0
\ 000052 A3 INC DPTR
\ 000053 78.. MOV R0,#?V0 + 4
\ 000055 12.... LCALL ?L_AND_TO_X
271 return TRUE;
\ 000058 7901 MOV R1,#0x1
\ 00005A 8010 SJMP ??mscSetNextChannel_2
272 }
273 }
274 bitmask = bitmask << 1;
\ ??mscSetNextChannel_1:
\ 00005C 7401 MOV A,#0x1
\ 00005E 78.. MOV R0,#?V0 + 4
\ 000060 12.... LCALL ?L_SHL
275 }
\ 000063 0A INC R2
\ 000064 EA MOV A,R2
\ 000065 C3 CLR C
\ 000066 941B SUBB A,#0x1b
\ 000068 40AB JC ??mscSetNextChannel_0
276 return FALSE;
\ 00006A 7900 MOV R1,#0x0
\ ??mscSetNextChannel_2:
\ 00006C 7F08 MOV R7,#0x8
\ 00006E 02.... LJMP ?FUNC_LEAVE_XDATA
277
278 } // mscSetNextChannel
279
280
281
282
283 //-------------------------------------------------------------------------------------------------------
284 // void mscChannelTimeout(void)
285 //
286 // DESCRIPTION:
287 // Callback used by the scanning mechanism to indicate that the current channel has been finished.
288 //-------------------------------------------------------------------------------------------------------
\ In segment NEAR_CODE, align 1, keep-with-next
289 void mscChannelTimeout(void) NEAR {
\ mscChannelTimeout:
\ 000000 C082 PUSH DPL
\ 000002 C083 PUSH DPH
\ 000004 ; Saved register size: 2
\ 000004 ; Auto size: 0
290 mscInfo.channelComplete = TRUE;
\ 000004 7401 MOV A,#0x1
\ 000006 90.... MOV DPTR,#(mscInfo + 9)
\ 000009 F0 MOVX @DPTR,A
291 } // mscChannelTimeout
\ 00000A D083 POP DPH
\ 00000C D082 POP DPL
\ 00000E 02.... LJMP ?BRET
292
293
294
295
296 //-------------------------------------------------------------------------------------------------------
297 // void mscChannelTimeout(void)
298 //
299 // DESCRIPTION:
300 // This task implements the scan state machine.
301 //
302 // TASK DATA:
303 // 0
304 //-------------------------------------------------------------------------------------------------------
\ In segment NEAR_CODE, align 1, keep-with-next
305 void mscScanProcedure(MAC_TASK_INFO *pTask) NEAR {
\ mscScanProcedure:
\ 000000 74F0 MOV A,#-0x10
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -