📄 utility.lst
字号:
544 3 printf("ADDROK");
545 3 break;
546 3 case SET_LEN_COMMAND:
547 3 while (RS232_rx_empty());
548 3 tmp=RS232_rx_getchar();
549 3
C51 COMPILER V7.50 UTILITY 10/12/2006 15:31:40 PAGE 10
550 3 length=(((unsigned int)tmp)<<8)&0xff00;
551 3 while (RS232_rx_empty());
552 3 tmp=RS232_rx_getchar();
553 3 length|=(tmp&0xff);
554 3
555 3 if (length>0x8000)
556 3 {
557 4 printf("ERROR");
558 4 tx_char(0);
559 4 }
560 3 else
561 3 {
562 4 printf("LENOK");
563 4 tx_char(0);
564 4 }
565 3 break;
566 3 case WRITE_COMMAND:
567 3 printf("WCOK");
568 3 tx_char(0);
569 3 tx_char(0);
570 3 count=0;
571 3 P1=0xFE;
572 3 while (count<length)
573 3 {
574 4 P1^=0x03;
575 4 while (RS232_rx_empty());
576 4 tmp=RS232_rx_getchar();
577 4 c256_bytewrite(start_addr+count,tmp);
578 4 count++;
579 4 }
580 3 printf("WSOK");
581 3 tx_char(0);
582 3 tx_char(0);
583 3 break;
584 3 case SET_READ_COMMAND:
585 3 printf("RCOK");
586 3 tx_char(0);
587 3 tx_char(0);
588 3 count=0;
589 3 P1=0xFE;
590 3 while (count<length)
591 3 {
592 4 P1^=0xf3;
593 4 tmp=c256_byteread(start_addr+count);
594 4 if (tmp==0x11)
595 4 {
596 5 tx_char(0xa1);
597 5 tmp=0;
598 5 }
599 4 else if (tmp==0x13)
600 4 {
601 5 tx_char(0xa1);
602 5 tmp=1;
603 5 }
604 4 else if (tmp==0xa1)
605 4 {
606 5 tx_char(0xa1);
607 5 tmp=2;
608 5 }
609 4 tx_char(tmp);
610 4 count++;
611 4 }
C51 COMPILER V7.50 UTILITY 10/12/2006 15:31:40 PAGE 11
612 3 printf("RSOK");
613 3 tx_char(0);
614 3 tx_char(0);
615 3 break;
616 3 default:
617 3 printf("ERROR");
618 3 tx_char(0);
619 3 break;
620 3 }
621 2 }
622 1 #endif
623 1 }
624 #endif
625 /************************************************************************
626 /* Function Name : parse_mac_str *
627 /* *
628 /* Arguments : *
629 /* char *line_buff : Point to a string to parse numbers out. *
630 /* char *nums : Point to a BYTE array to return numbers. *
631 /* *
632 /* Return : *
633 /* The number of numbers parsing from line_buff *
634 /* *
635 /* Comment : *
636 /* This function parse numbers from a string like *
637 /* xx-xx-xx-xx-xx-xx (MAC address format). *
638 /* *
639 /************************************************************************/
640 unsigned char parse_mac_str(char * line_buff,char *nums)
641 {
642 1 unsigned char *ptr;
643 1 unsigned char num_count=0;
644 1 unsigned char digital_count=0;
645 1 int i;
646 1 ptr=&line_buff[0];
647 1 memset(nums,0,6);
648 1 /*Ignore command char and space.*/
649 1 while ( (ptr[i] == 'i') || (ptr[i] == 'M') || (ptr[i]==' ')|| (ptr[i]=='n')|| (ptr[i]=='g'))
650 1 ptr++;
651 1 for (i=0;i<30;i++,ptr++)
652 1 {
653 2 if (*ptr==' ')
654 2 continue;
655 2 else if (*ptr=='-')
656 2 {
657 3 if (num_count<6)
658 3 num_count++;
659 3 else
660 3 {
661 4 num_count=0;
662 4 break;
663 4 }
664 3 digital_count=0;
665 3 }
666 2 /*0-9*/
667 2 else if ((*ptr>=0x30) && (*ptr<=0x39))
668 2 {
669 3 nums[num_count]=nums[num_count]*16+(*ptr-0x30);
670 3 digital_count++;
671 3 if (digital_count>2)
672 3 {
673 4 num_count=0;
C51 COMPILER V7.50 UTILITY 10/12/2006 15:31:40 PAGE 12
674 4 break;
675 4 }
676 3 }
677 2 /*A-F*/
678 2 else if ((*ptr>=0x41) && (*ptr<=0x46))
679 2 {
680 3 nums[num_count]=nums[num_count]*16+(*ptr+10-0x41);
681 3 digital_count++;
682 3 if (digital_count>2)
683 3 {
684 4 num_count=0;
685 4 break;
686 4 }
687 3 }
688 2 /*a-f*/
689 2 else if ((*ptr>=0x61) && (*ptr<=0x66))
690 2 {
691 3 nums[num_count]=nums[num_count]*16+(*ptr+10-0x61);
692 3 digital_count++;
693 3 if (digital_count>2)
694 3 {
695 4 num_count=0;
696 4 break;
697 4 }
698 3 }
699 2 /*End of string.*/
700 2 else if ((*ptr==0xd) || (*ptr==0xa)|| (*ptr==0x0)||(*ptr==0x2e))
701 2 {
702 3 num_count++;
703 3 break;
704 3 }
705 2 else
706 2 {
707 3 num_count=0;
708 3 break;
709 3 }
710 2 }
711 1 return num_count;
712 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 2077 ----
CONSTANT SIZE = 815 ----
XDATA SIZE = 41 47
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -