📄 mac.lst
字号:
294 BYTE cs;
295 for(int i=0;i<len;i++)
\ 000007 7800 MOV R0,#0x0
\ 000009 7900 MOV R1,#0x0
\ ??MACPutArray_0:
\ 00000B 8C.. MOV ?V0 + 0,R4
\ 00000D 75..00 MOV ?V0 + 1,#0x0
\ 000010 C3 CLR C
\ 000011 E8 MOV A,R0
\ 000012 95.. SUBB A,?V0 + 0
\ 000014 E9 MOV A,R1
\ 000015 95.. SUBB A,?V0 + 1
\ 000017 A2D2 MOV C,0xD0 /* PSW */.2
\ 000019 65D0 XRL A,PSW
\ 00001B 33 RLC A
\ 00001C 5037 JNC ??MACPutArray_1
296 {
297 phy_pib.currentTxFrm++;
\ 00001E 90.... MOV DPTR,#(phy_pib + 14)
\ 000021 E0 MOVX A,@DPTR
\ 000022 2401 ADD A,#0x1
\ 000024 FE MOV R6,A
\ 000025 A3 INC DPTR
\ 000026 E0 MOVX A,@DPTR
\ 000027 3400 ADDC A,#0x0
\ 000029 FF MOV R7,A
\ 00002A 90.... MOV DPTR,#(phy_pib + 14)
\ 00002D EE MOV A,R6
\ 00002E F0 MOVX @DPTR,A
\ 00002F A3 INC DPTR
\ 000030 EF MOV A,R7
\ 000031 F0 MOVX @DPTR,A
298 *phy_pib.currentTxFrm = data[i];
\ 000032 EA MOV A,R2
\ 000033 28 ADD A,R0
\ 000034 F582 MOV DPL,A
\ 000036 EB MOV A,R3
\ 000037 39 ADDC A,R1
\ 000038 F583 MOV DPH,A
\ 00003A E0 MOVX A,@DPTR
\ 00003B C0E0 PUSH A
\ 00003D 90.... MOV DPTR,#(phy_pib + 14)
\ 000040 E0 MOVX A,@DPTR
\ 000041 FE MOV R6,A
\ 000042 A3 INC DPTR
\ 000043 E0 MOVX A,@DPTR
\ 000044 F583 MOV DPH,A
\ 000046 8E82 MOV DPL,R6
\ 000048 D0E0 POP A
\ 00004A F0 MOVX @DPTR,A
299 }
\ 00004B E8 MOV A,R0
\ 00004C 2401 ADD A,#0x1
\ 00004E F8 MOV R0,A
\ 00004F E9 MOV A,R1
\ 000050 3400 ADDC A,#0x0
\ 000052 F9 MOV R1,A
\ 000053 80B6 SJMP ??MACPutArray_0
300 phy_pib.currentTxFlen += len;
\ ??MACPutArray_1:
\ 000055 90.... MOV DPTR,#(phy_pib + 16)
\ 000058 E0 MOVX A,@DPTR
\ 000059 2C ADD A,R4
\ 00005A F0 MOVX @DPTR,A
301
302 cs=0;
\ 00005B 7D00 MOV R5,#0x0
303 for(i=7;i<len;i++)
\ 00005D 75..07 MOV ?V0 + 2,#0x7
\ ??MACPutArray_2:
\ 000060 E5.. MOV A,?V0 + 2
\ 000062 C3 CLR C
\ 000063 9C SUBB A,R4
\ 000064 5017 JNC ??MACPutArray_3
304 cs+=data[i];
\ 000066 85.... MOV ?V0 + 0,?V0 + 2
\ 000069 75..00 MOV ?V0 + 1,#0x0
\ 00006C EA MOV A,R2
\ 00006D 25.. ADD A,?V0 + 0
\ 00006F F582 MOV DPL,A
\ 000071 EB MOV A,R3
\ 000072 35.. ADDC A,?V0 + 1
\ 000074 F583 MOV DPH,A
\ 000076 E0 MOVX A,@DPTR
\ 000077 2D ADD A,R5
\ 000078 FD MOV R5,A
\ 000079 05.. INC ?V0 + 2
\ 00007B 80E3 SJMP ??MACPutArray_2
305 phy_pib.currentTxFrm++;
\ ??MACPutArray_3:
\ 00007D 90.... MOV DPTR,#(phy_pib + 14)
\ 000080 E0 MOVX A,@DPTR
\ 000081 2401 ADD A,#0x1
\ 000083 F8 MOV R0,A
\ 000084 A3 INC DPTR
\ 000085 E0 MOVX A,@DPTR
\ 000086 3400 ADDC A,#0x0
\ 000088 F9 MOV R1,A
\ 000089 90.... MOV DPTR,#(phy_pib + 14)
\ 00008C E8 MOV A,R0
\ 00008D F0 MOVX @DPTR,A
\ 00008E A3 INC DPTR
\ 00008F E9 MOV A,R1
\ 000090 F0 MOVX @DPTR,A
306 *phy_pib.currentTxFrm =cs;
\ 000091 ED MOV A,R5
\ 000092 C0E0 PUSH A
\ 000094 90.... MOV DPTR,#(phy_pib + 14)
\ 000097 E0 MOVX A,@DPTR
\ 000098 F8 MOV R0,A
\ 000099 A3 INC DPTR
\ 00009A E0 MOVX A,@DPTR
\ 00009B F583 MOV DPH,A
\ 00009D 8882 MOV DPL,R0
\ 00009F D0E0 POP A
\ 0000A1 F0 MOVX @DPTR,A
307 phy_pib.currentTxFlen ++;
\ 0000A2 90.... MOV DPTR,#(phy_pib + 16)
\ 0000A5 E0 MOVX A,@DPTR
\ 0000A6 2401 ADD A,#0x1
\ 0000A8 F0 MOVX @DPTR,A
308
309 }
\ 0000A9 7F03 MOV R7,#0x3
\ 0000AB 02.... LJMP ?FUNC_LEAVE_XDATA
\ In segment NEAR_CODE, align 1, keep-with-next
310 void macFormatUserData(BYTE frame) //bhj
\ macFormatUserData:
311 {
\ 000000 74F8 MOV A,#-0x8
\ 000002 12.... LCALL ?FUNC_ENTER_XDATA
\ 000005 ; Saved register size: 8
\ 000005 ; Auto size: 10
\ 000005 74F6 MOV A,#-0xa
\ 000007 12.... LCALL ?ALLOC_XSTACK8
312 int i;
313 BYTE testdata[10];
314 //unsigned char datalen=0;
315 testdata[0]=1;
\ 00000A 7401 MOV A,#0x1
\ 00000C 85..82 MOV DPL,?XSP + 0
\ 00000F 85..83 MOV DPH,?XSP + 1
\ 000012 F0 MOVX @DPTR,A
316 testdata[1]=0xff;
\ 000013 74FF MOV A,#-0x1
\ 000015 C0E0 PUSH A
\ 000017 7401 MOV A,#0x1
\ 000019 12.... LCALL ?XSTACK_DISP0_8
\ 00001C D0E0 POP A
\ 00001E F0 MOVX @DPTR,A
317 testdata[2]=0xff;
\ 00001F 74FF MOV A,#-0x1
\ 000021 C0E0 PUSH A
\ 000023 7402 MOV A,#0x2
\ 000025 12.... LCALL ?XSTACK_DISP0_8
\ 000028 D0E0 POP A
\ 00002A F0 MOVX @DPTR,A
318 testdata[3]=0xff;
\ 00002B 74FF MOV A,#-0x1
\ 00002D C0E0 PUSH A
\ 00002F 7403 MOV A,#0x3
\ 000031 12.... LCALL ?XSTACK_DISP0_8
\ 000034 D0E0 POP A
\ 000036 F0 MOVX @DPTR,A
319 testdata[4]=0xff;
\ 000037 74FF MOV A,#-0x1
\ 000039 C0E0 PUSH A
\ 00003B 7404 MOV A,#0x4
\ 00003D 12.... LCALL ?XSTACK_DISP0_8
\ 000040 D0E0 POP A
\ 000042 F0 MOVX @DPTR,A
320 testdata[5]=1; //len =data + cs;
\ 000043 7401 MOV A,#0x1
\ 000045 C0E0 PUSH A
\ 000047 7405 MOV A,#0x5
\ 000049 12.... LCALL ?XSTACK_DISP0_8
\ 00004C D0E0 POP A
\ 00004E F0 MOVX @DPTR,A
321
322 testdata[6]=0; //header checksum (test[0]~test[5])
\ 00004F 7400 MOV A,#0x0
\ 000051 C0E0 PUSH A
\ 000053 7406 MOV A,#0x6
\ 000055 12.... LCALL ?XSTACK_DISP0_8
\ 000058 D0E0 POP A
\ 00005A F0 MOVX @DPTR,A
323 for(i=0;i<=5;i++) testdata[6]+=testdata[i];
\ 00005B 7E00 MOV R6,#0x0
\ 00005D 7F00 MOV R7,#0x0
\ ??macFormatUserData_0:
\ 00005F C3 CLR C
\ 000060 EE MOV A,R6
\ 000061 9406 SUBB A,#0x6
\ 000063 EF MOV A,R7
\ 000064 9400 SUBB A,#0x0
\ 000066 A2D2 MOV C,0xD0 /* PSW */.2
\ 000068 65D0 XRL A,PSW
\ 00006A 33 RLC A
\ 00006B 5024 JNC ??macFormatUserData_1
\ 00006D 85..82 MOV DPL,?XSP + 0
\ 000070 85..83 MOV DPH,?XSP + 1
\ 000073 E582 MOV A,DPL
\ 000075 2E ADD A,R6
\ 000076 F582 MOV DPL,A
\ 000078 E583 MOV A,DPH
\ 00007A 3F ADDC A,R7
\ 00007B F583 MOV DPH,A
\ 00007D E0 MOVX A,@DPTR
\ 00007E FA MOV R2,A
\ 00007F 7406 MOV A,#0x6
\ 000081 12.... LCALL ?XSTACK_DISP0_8
\ 000084 E0 MOVX A,@DPTR
\ 000085 2A ADD A,R2
\ 000086 F0 MOVX @DPTR,A
\ 000087 EE MOV A,R6
\ 000088 2401 ADD A,#0x1
\ 00008A FE MOV R6,A
\ 00008B EF MOV A,R7
\ 00008C 3400 ADDC A,#0x0
\ 00008E FF MOV R7,A
\ 00008F 80CE SJMP ??macFormatUserData_0
324
325 MACPutArray(testdata,7);
\ ??macFormatUserData_1:
\ 000091 ; Setup parameters for call to function MACPutArray
\ 000091 7907 MOV R1,#0x7
\ 000093 85..82 MOV DPL,?XSP + 0
\ 000096 85..83 MOV DPH,?XSP + 1
\ 000099 AA82 MOV R2,DPL
\ 00009B AB83 MOV R3,DPH
\ 00009D 12.... LCALL MACPutArray
326
327 }
\ 0000A0 740A MOV A,#0xa
\ 0000A2 12.... LCALL ?DEALLOC_XSTACK8
\ 0000A5 7F01 MOV R7,#0x1
\ 0000A7 02.... LJMP ?FUNC_LEAVE_XDATA
\ In segment NEAR_CODE, align 1, keep-with-next
328 BYTE MACFlush()
\ MACFlush:
329 {
\ 000000 C082 PUSH DPL
\ 000002 C083 PUSH DPH
\ 000004 ; Saved register size: 2
\ 000004 ; Auto size: 0
330
331 // at this point, we will attempt a TX
332 mac_pib.flags.bits.ackPending = 0;
\ 000004 90.... MOV DPTR,#(mac_pib + 4)
\ 000007 E0 MOVX A,@DPTR
\ 000008 54BF ANL A,#0xbf
\ 00000A F0 MOVX @DPTR,A
\ 00000B A3 INC DPTR
\ 00000C E0 MOVX A,@DPTR
\ 00000D 54FF ANL A,#0xff
\ 00000F F0 MOVX @DPTR,A
333
334
335 //now send the data, ignore the GTS and INDIRECT bits for now
336 //DEBUG_STRING(DBG_TX,"TX DSN: ");
337 //DEBUG_UINT8(DBG_TX,mac_pib.macDSN);
338 //DEBUG_STRING(DBG_TX,"\n");
339
340 macSetTxBusy();
\ 000010 90.... MOV DPTR,#(mac_pib + 4)
\ 000013 E0 MOVX A,@DPTR
\ 000014 4480 ORL A,#0x80
\ 000016 F0 MOVX @DPTR,A
\ 000017 A3 INC DPTR
\ 000018 E0 MOVX A,@DPTR
\ 000019 4400 ORL A,#0x0
\ 00001B F0 MOVX @DPTR,A
341 //mac_pib.currentAckRetries = mac_pib.macMaxAckRetries;
342 macTxFS
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -