📄 ir.lst
字号:
298 1 __wisr = NIC_ISR;
299 1
300 1 if (__wisr&ISR_RcvOK)
301 1 {
302 2 //NIC_ISR = 0xFF;
303 2 NIC_ISR = ISR_RcvOK;
C51 COMPILER V7.06 IR 10/10/2003 10:51:50 PAGE 6
304 2
305 2 NIC_CR = CR_Stop|CR_Page1;//change to page 1
306 2 __wcurr = NIC_CURR;
307 2 //__wcurr0 = NIC_CURR;
308 2 //__wcurr1 = NIC_CURR;
309 2 //__wcurr2 = NIC_CURR;
310 2 //if (__wcurr0 == __wcurr1) __wcurr = __wcurr0;
311 2 //else if (__wcurr0 == __wcurr2) __wcurr = __wcurr0;
312 2 //else if (__wcurr1 == __wcurr2) __wcurr = __wcurr1;
313 2 NIC_CR1 = CR_Stop|CR_Page0;//return to page 0
314 2
315 2
316 2 NIC_CR = CR_Start;
317 2
318 2 while (__wcurr != NextPacket)
319 2 {
320 3 point = NextPacket*256;
321 3 for (i=0;i<240;i++)
322 3 {
323 4 NIC_RECV_BUFFER[i] = *point;
324 4 point ++;
325 4 }
326 3 /*for (i=0;i<4;i++)
327 3 {
328 3 NIC_RECV_BUFFER[i] = *point;
329 3 point ++;
330 3 }
331 3 PacketLength = NIC_RECV_BUFFER[2] + NIC_RECV_BUFFER[3]*256;
332 3 for (i=4;i<(PacketLength+4);i++)
333 3 {
334 3 NIC_RECV_BUFFER[i] = *point;
335 3 point ++;
336 3 if (point == RPSTOP*256) point = RPSTART*256;
337 3 }*/
338 3 /*
339 3 NextPacket = NIC_RECV_BUFFER[1];
340 3 if (NextPacket == RPSTART) NIC_BNRY = RPSTOP-1;
341 3 else NIC_BNRY = NextPacket-1;
342 3 */
343 3 if ( (NIC_RECV_BUFFER[4] == 0xFF)
344 3 &&(NIC_RECV_BUFFER[5] == 0xFF)
345 3 &&(NIC_RECV_BUFFER[6] == 0xFF)
346 3 &&(NIC_RECV_BUFFER[7] == 0xFF)
347 3 &&(NIC_RECV_BUFFER[8] == 0xFF)
348 3 &&(NIC_RECV_BUFFER[9] == 0xFF)
349 3 &&(NIC_RECV_BUFFER[16] == 0x08)
350 3 &&(NIC_RECV_BUFFER[17] == 0x06) )
351 3 {
352 4 //ARP
353 4 if ( (NIC_RECV_BUFFER[42] == IPADDRESS[0])&&
354 4 (NIC_RECV_BUFFER[43] == IPADDRESS[1])&&
355 4 (NIC_RECV_BUFFER[44] == IPADDRESS[2])&&
356 4 (NIC_RECV_BUFFER[45] == IPADDRESS[3])&&
357 4 (NIC_RECV_BUFFER[24] == 0x00 )&&
358 4 (NIC_RECV_BUFFER[25] == 0x01 ) )
359 4 {
360 5 if ( (NIC_RECV_BUFFER[32] == IPADDRESS[0])&&
361 5 (NIC_RECV_BUFFER[33] == IPADDRESS[1])&&
362 5 (NIC_RECV_BUFFER[34] == IPADDRESS[2])&&
363 5 (NIC_RECV_BUFFER[35] == IPADDRESS[3]) )
364 5 {
365 6 // XmitPoint = __wxmitcurr*XMIT_NUMBER;
C51 COMPILER V7.06 IR 10/10/2003 10:51:50 PAGE 7
366 6 // __wxmitcurr ++;
367 6 // if (__wxmitcurr > XMIT_STOP) __wxmitcurr = XMIT_START;
368 6 // for (i=0;i<6;i++)
369 6 // NIC_XMIT_RING[XmitPoint+i] = NIC_RECV_BUFFER[10+i];
370 6
371 6 //ARPCOL();
372 6 NIC_TPSTART = TPSTART;
373 6 //destination address
374 6 NIC_XMIT_BUFFER[0] = NIC_RECV_BUFFER[10];
375 6 NIC_XMIT_BUFFER[1] = NIC_RECV_BUFFER[11];
376 6 NIC_XMIT_BUFFER[2] = NIC_RECV_BUFFER[12];
377 6 NIC_XMIT_BUFFER[3] = NIC_RECV_BUFFER[13];
378 6 NIC_XMIT_BUFFER[4] = NIC_RECV_BUFFER[14];
379 6 NIC_XMIT_BUFFER[5] = NIC_RECV_BUFFER[15];
380 6
381 6 }
382 5 else
383 5 {
384 6 //XmitPoint = __wxmitcurr*XMIT_NUMBER;
385 6 //__wxmitcurr ++;
386 6 //if (__wxmitcurr > XMIT_STOP) __wxmitcurr = XMIT_START;
387 6 //for (i=0;i<6;i++)
388 6 // NIC_XMIT_RING[XmitPoint+i] = 0xFF;
389 6
390 6 //ARPACK();
391 6 NIC_TPSTART = TPSTART;
392 6 //destination address
393 6 NIC_XMIT_BUFFER[0] = 0xFF;
394 6 NIC_XMIT_BUFFER[1] = 0xFF;
395 6 NIC_XMIT_BUFFER[2] = 0xFF;
396 6 NIC_XMIT_BUFFER[3] = 0xFF;
397 6 NIC_XMIT_BUFFER[4] = 0xFF;
398 6 NIC_XMIT_BUFFER[5] = 0xFF;
399 6
400 6 }
401 5 //for (i=6;i<12;i++)
402 5 // NIC_XMIT_RING[XmitPoint+i] = MACADDRESS[i-6];
403 5
404 5 //source address
405 5 NIC_XMIT_BUFFER[6] = MACADDRESS[0];
406 5 NIC_XMIT_BUFFER[7] = MACADDRESS[1];
407 5 NIC_XMIT_BUFFER[8] = MACADDRESS[2];
408 5 NIC_XMIT_BUFFER[9] = MACADDRESS[3];
409 5 NIC_XMIT_BUFFER[10] = MACADDRESS[4];
410 5 NIC_XMIT_BUFFER[11] = MACADDRESS[5];
411 5
412 5 //for (i=12;i<20;i++)
413 5 // NIC_XMIT_RING[XmitPoint+i] = NIC_RECV_BUFFER[i+4];
414 5
415 5 //port
416 5 NIC_XMIT_BUFFER[12] = NIC_RECV_BUFFER[16];
417 5 NIC_XMIT_BUFFER[13] = NIC_RECV_BUFFER[17];
418 5 NIC_XMIT_BUFFER[14] = NIC_RECV_BUFFER[18];
419 5 NIC_XMIT_BUFFER[15] = NIC_RECV_BUFFER[19];
420 5 NIC_XMIT_BUFFER[16] = NIC_RECV_BUFFER[20];
421 5 NIC_XMIT_BUFFER[17] = NIC_RECV_BUFFER[21];
422 5 NIC_XMIT_BUFFER[18] = NIC_RECV_BUFFER[22];
423 5 NIC_XMIT_BUFFER[19] = NIC_RECV_BUFFER[23];
424 5
425 5 //NIC_XMIT_RING[XmitPoint+20] = 0x00;
426 5 //NIC_XMIT_RING[XmitPoint+21] = 0x02;
427 5
C51 COMPILER V7.06 IR 10/10/2003 10:51:50 PAGE 8
428 5 NIC_XMIT_BUFFER[20] = 0x00;
429 5 NIC_XMIT_BUFFER[21] = 0x02;
430 5
431 5 //for (i=22;i<28;i++)
432 5 // NIC_XMIT_RING[XmitPoint+i] = MACADDRESS[i-22];
433 5
434 5 //source MAC address
435 5 NIC_XMIT_BUFFER[22] = MACADDRESS[0];
436 5 NIC_XMIT_BUFFER[23] = MACADDRESS[1];
437 5 NIC_XMIT_BUFFER[24] = MACADDRESS[2];
438 5 NIC_XMIT_BUFFER[25] = MACADDRESS[3];
439 5 NIC_XMIT_BUFFER[26] = MACADDRESS[4];
440 5 NIC_XMIT_BUFFER[27] = MACADDRESS[5];
441 5
442 5 //for (i=28;i<32;i++)
443 5 // NIC_XMIT_RING[XmitPoint+i] = NIC_RECV_BUFFER[i+14];
444 5
445 5 //source IP address
446 5 NIC_XMIT_BUFFER[28] = NIC_RECV_BUFFER[42];
447 5 NIC_XMIT_BUFFER[29] = NIC_RECV_BUFFER[43];
448 5 NIC_XMIT_BUFFER[30] = NIC_RECV_BUFFER[44];
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -