📄 ir.lst
字号:
449 5 NIC_XMIT_BUFFER[31] = NIC_RECV_BUFFER[45];
450 5
451 5 //for (i=32;i<42;i++)
452 5 // NIC_XMIT_RING[XmitPoint+i] = NIC_RECV_BUFFER[i-6];
453 5
454 5 //destination MAC and IP address
455 5 NIC_XMIT_BUFFER[32] = NIC_RECV_BUFFER[26];
456 5 NIC_XMIT_BUFFER[33] = NIC_RECV_BUFFER[27];
457 5 NIC_XMIT_BUFFER[34] = NIC_RECV_BUFFER[28];
458 5 NIC_XMIT_BUFFER[35] = NIC_RECV_BUFFER[29];
459 5 NIC_XMIT_BUFFER[36] = NIC_RECV_BUFFER[30];
460 5 NIC_XMIT_BUFFER[37] = NIC_RECV_BUFFER[31];
461 5 NIC_XMIT_BUFFER[38] = NIC_RECV_BUFFER[32];
462 5 NIC_XMIT_BUFFER[39] = NIC_RECV_BUFFER[33];
463 5 NIC_XMIT_BUFFER[40] = NIC_RECV_BUFFER[34];
464 5 NIC_XMIT_BUFFER[41] = NIC_RECV_BUFFER[35];
465 5
466 5
467 5 //start xmit
468 5 NIC_TBCNT0 = 0x00;
469 5 NIC_TBCNT1 = 0x01;
470 5 NIC_CR = CR_Start|CR_Xmit;
471 5 //CHECK_XMIT();
472 5
473 5 }
474 4 }
475 3 else if ( (NIC_RECV_BUFFER[4] == MACADDRESS[0]) //MAC ADDRESS IP DATAGRAM
476 3 &&(NIC_RECV_BUFFER[5] == MACADDRESS[1])
477 3 &&(NIC_RECV_BUFFER[6] == MACADDRESS[2])
478 3 &&(NIC_RECV_BUFFER[7] == MACADDRESS[3])
479 3 &&(NIC_RECV_BUFFER[8] == MACADDRESS[4])
480 3 &&(NIC_RECV_BUFFER[9] == MACADDRESS[5])
481 3 &&(NIC_RECV_BUFFER[16] == 0x08)
482 3 &&(NIC_RECV_BUFFER[17] == 0x00) )
483 3 {
484 4 if ( (NIC_RECV_BUFFER[34] == IPADDRESS[0])&&
485 4 (NIC_RECV_BUFFER[35] == IPADDRESS[1])&&
486 4 (NIC_RECV_BUFFER[36] == IPADDRESS[2])&&
487 4 (NIC_RECV_BUFFER[37] == IPADDRESS[3])&&
488 4 (NIC_RECV_BUFFER[PC_SENCITY] == 'S')&&
489 4 (NIC_RECV_BUFFER[PC_SENCITY+1] == 'E')&&
C51 COMPILER V7.06 IR 10/10/2003 10:51:50 PAGE 9
490 4 (NIC_RECV_BUFFER[PC_SENCITY+2] == 'N')&&
491 4 (NIC_RECV_BUFFER[PC_SENCITY+3] == 'C')&&
492 4 (NIC_RECV_BUFFER[PC_SENCITY+4] == 'I')&&
493 4 (NIC_RECV_BUFFER[PC_SENCITY+5] == 'T')&&
494 4 (NIC_RECV_BUFFER[PC_SENCITY+6] == 'Y') )
495 4 {
496 5
497 5 switch (NIC_RECV_BUFFER[PC_COMMAND])
498 5 {
499 6 case R_INIT:
500 6 if ( (NIC_RECV_BUFFER[10]!=PC_MACADDRESS[0])||
501 6 (NIC_RECV_BUFFER[11]!=PC_MACADDRESS[1])||
502 6 (NIC_RECV_BUFFER[12]!=PC_MACADDRESS[2])||
503 6 (NIC_RECV_BUFFER[13]!=PC_MACADDRESS[3])||
504 6 (NIC_RECV_BUFFER[14]!=PC_MACADDRESS[4])||
505 6 (NIC_RECV_BUFFER[15]!=PC_MACADDRESS[5])||
506 6 (NIC_RECV_BUFFER[30]!=PC_IPADDRESS[0])||
507 6 (NIC_RECV_BUFFER[31]!=PC_IPADDRESS[1])||
508 6 (NIC_RECV_BUFFER[32]!=PC_IPADDRESS[2])||
509 6 (NIC_RECV_BUFFER[33]!=PC_IPADDRESS[3]) )
510 6 {
-
511 7 PC_MACADDRESS[0] = NIC_RECV_BUFFER[10];
512 7 PC_MACADDRESS[1] = NIC_RECV_BUFFER[11];
513 7 PC_MACADDRESS[2] = NIC_RECV_BUFFER[12];
514 7 PC_MACADDRESS[3] = NIC_RECV_BUFFER[13];
515 7 PC_MACADDRESS[4] = NIC_RECV_BUFFER[14];
516 7 PC_MACADDRESS[5] = NIC_RECV_BUFFER[15];
517 7 PC_IPADDRESS[0] = NIC_RECV_BUFFER[30];
518 7 PC_IPADDRESS[1] = NIC_RECV_BUFFER[31];
519 7 PC_IPADDRESS[2] = NIC_RECV_BUFFER[32];
520 7 PC_IPADDRESS[3] = NIC_RECV_BUFFER[33];
521 7 CHECKSUM_UDP();
522 7 //__bwrite_pcipmac = TRUE;
523 7 }
524 6 //__wcommand = R_INIT;
525 6 UDP(R_INIT);
526 6 break;
527 6 case R_HELLO:
528 6 //__wcommand = R_HELLO;
529 6 UDP(R_HELLO);
530 6 break;
531 6 case R_READMETER:
532 6 //__wcommand = R_READMETER;
533 6 UDP(R_READMETER);
534 6 break;
535 6 case R_ALARM_ACK:
536 6 //__bsend = FALSE;
537 6 //ALARM_BUFFER[0] = 0x00;
538 6 //ALARM_BUFFER[1] = 0x00;
539 6 //ALARM_BUFFER[2] = 0x00;
540 6 //ALARM_BUFFER[3] = 0x00;
541 6 //__werror = NET_ERROR + 1;
542 6 break;
543 6 case R_CANCEL_ACK:
544 6 //__bsend = FALSE;
545 6 //__werror = NET_ERROR + 1;
546 6 break;
547 6 case R_CONTROL:
548 6 //CONTROL[0] = NIC_RECV_BUFFER[PC_COMMAND+32];
549 6 //CONTROL[1] = NIC_RECV_BUFFER[PC_COMMAND+33];
550 6 //CONTROL[2] = NIC_RECV_BUFFER[PC_COMMAND+34];
C51 COMPILER V7.06 IR 10/10/2003 10:51:50 PAGE 10
551 6 //CONTROL[3] = NIC_RECV_BUFFER[PC_COMMAND+35];
552 6 //#ifdef IO_CONTROL
553 6 //if (CONTROL[0]&0x01) __sbtxen = 0;
554 6 //else __sbtxen = 1;
555 6 //if (CONTROL[0]&0x02) __sbrx = 0;
556 6 //else __sbrx = 1;
557 6 //if (CONTROL[0]&0x04) __sbtx = 0;
558 6 //else __sbtx = 1;
559 6 //#endif
560 6 UDP(R_CONTROL);
561 6 break;
562 6 case R_MODIFY1:
563 6 //__wcommand = R_MODIFY1;
564 6 //METER0.AMOUNT = NIC_RECV_BUFFER[PC_COMMAND+1]*65536 + NIC_RECV_BUFFER[PC_COMMAND+2]*256 +
- NIC_RECV_BUFFER[PC_COMMAND+3];
565 6 //METER0.WRITE = 0xff;
566 6 UDP(R_MODIFY1);
567 6 break;
568 6 case R_MODIFY2:
569 6 //__wcommand = R_MODIFY2;
570 6 //METER1.AMOUNT = NIC_RECV_BUFFER[PC_COMMAND+4]*65536 + NIC_RECV_BUFFER[PC_COMMAND+5]*256 +
- NIC_RECV_BUFFER[PC_COMMAND+6];
571 6 //METER1.WRITE = 0xff;
572 6 UDP(R_MODIFY2);
573 6 break;
574 6 case R_MODIFY3:
575 6 //__wcommand = R_MODIFY3;
576 6 //METER2.AMOUNT = NIC_RECV_BUFFER[PC_COMMAND+7]*65536 + NIC_RECV_BUFFER[PC_COMMAND+8]*256 +
- NIC_RECV_BUFFER[PC_COMMAND+9];
577 6 //METER2.WRITE = 0xff;
578 6 UDP(R_MODIFY3);
579 6 break;
580 6 case R_MODIFY4:
581 6 //__wcommand = R_MODIFY4;
582 6 //METER3.AMOUNT = NIC_RECV_BUFFER[PC_COMMAND+10]*65536 + NIC_RECV_BUFFER[PC_COMMAND+11]*256
- + NIC_RECV_BUFFER[PC_COMMAND+12];
583 6 //METER3.WRITE = 0xff;
584 6 UDP(R_MODIFY4);
585 6 break;
586 6 case R_MODIFY5:
587 6 //__wcommand = R_MODIFY5;
588 6 //METER4.AMOUNT = NIC_RECV_BUFFER[PC_COMMAND+13]*65536 + NIC_RECV_BUFFER[PC_COMMAND+14]*256
- + NIC_RECV_BUFFER[PC_COMMAND+15];
589 6 //METER4.WRITE = 0xff;
590 6 UDP(R_MODIFY5);
591 6 break;
592 6 case R_MODIFY6:
593 6 //__wcommand = R_MODIFY6;
594 6 //METER5.AMOUNT = NIC_RECV_BUFFER[PC_COMMAND+16]*65536 + NIC_RECV_BUFFER[PC_COMMAND+17]*256
- + NIC_RECV_BUFFER[PC_COMMAND+18];
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -