⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 slipdev.lst

📁 uip1.0 C51源代码
💻 LST
字号:
C51 COMPILER V7.08   SLIPDEV                                                               12/26/2003 07:27:16 PAGE 1   


C51 COMPILER V7.08, COMPILATION OF MODULE SLIPDEV
OBJECT MODULE PLACED IN Slipdev.OBJ
COMPILER INVOKED BY: C:\Keil708\C51\BIN\C51.EXE Slipdev.c LARGE BROWSE DEBUG OBJECTEXTEND

line level    source

   1          
   2          #include "uip.h"
   3          #include "uip_arp.h" 
   4          #include "uipopt.h"
   5          #include "my.h"  
   6          #include "serial.h"
   7          
   8          #define SLIP_END     0xc0
   9          #define SLIP_ESC     0xdb
  10          #define SLIP_ESC_END 0xdc
  11          #define SLIP_ESC_ESC 0xdd
  12          
  13          #define MAX_SIZE UIP_BUFSIZE
  14          
  15          #define SIO_RECV(c)  while( getchar(&c)==0)
  16          #define SIO_SEND(c)  while( putchar(c) ==0)
  17          
  18          void 
  19          slipdev_send(void)
  20          {
  21   1      #if MAX_SIZE >= 256
  22   1              u16_t i;
  23   1      #else
                      u8_t i;
              #endif /* MAX_SIZE >= 256 */
  26   1              u8_t *ptr;
  27   1              u8_t c;
  28   1      
  29   1              SIO_SEND(SLIP_END);
  30   1              ptr = uip_buf;
  31   1              for(i = 0; i < uip_len; i++) 
  32   1              {
  33   2                      if(i == 40) 
  34   2                              ptr = uip_appdata;
  35   2      
  36   2                      c = *ptr++;
  37   2                      switch(c) 
  38   2                      {
  39   3                      case SLIP_END:
  40   3                              SIO_SEND(SLIP_ESC);
  41   3                              SIO_SEND(SLIP_ESC_END);
  42   3                              break;
  43   3                      case SLIP_ESC:
  44   3                              SIO_SEND(SLIP_ESC);
  45   3                              SIO_SEND(SLIP_ESC_ESC);
  46   3                              break;
  47   3                      default:
  48   3                              SIO_SEND(c);
  49   3                              break;
  50   3                      }
  51   2              }
  52   1      
  53   1              SIO_SEND(SLIP_END);
  54   1      }
  55          /*-----------------------------------------------------------------------------------*/
C51 COMPILER V7.08   SLIPDEV                                                               12/26/2003 07:27:16 PAGE 2   

  56          u16_t 
  57          slipdev_read(void)
  58          {
  59   1        u8_t c;
  60   1      
  61   1      start: 
  62   1        uip_len = 0;
  63   1        while(1) {
  64   2          if(uip_len >= MAX_SIZE) {
  65   3            goto start;
  66   3          }
  67   2          SIO_RECV(c);
  68   2          switch(c) {
  69   3          case SLIP_END:
  70   3            if(uip_len > 0) {
  71   4              return uip_len;
  72   4            } else {
  73   4                      goto start;
  74   4            }
  75   3            break;
  76   3          case SLIP_ESC:
  77   3            SIO_RECV(c);
  78   3            switch(c) {
  79   4            case SLIP_ESC_END:
  80   4              c = SLIP_END;
  81   4              break;
  82   4            case SLIP_ESC_ESC:
  83   4              c = SLIP_ESC;
  84   4              break;
  85   4            }
  86   3            /* FALLTHROUGH */
  87   3          default:
  88   3            if(uip_len < MAX_SIZE) {
  89   4                  uip_buf[uip_len] = c;
  90   4              uip_len++;
  91   4            }
  92   3            break;
  93   3          }
  94   2      
  95   2        }
  96   1        return 0;
  97   1      }
  98          /*-----------------------------------------------------------------------------------*/
  99          void
 100          slipdev_init(void)
 101          {
 102   1      
 103   1      }
 104          
 105          void modem_request(void)
 106          {
 107   1        u8_t c;
 108   1        do {
 109   2          SIO_RECV(c);
 110   2          if (c != 'C')
 111   2            continue;
 112   2          SIO_RECV(c);
 113   2          if (c != 'L')
 114   2            continue;
 115   2          SIO_RECV(c);
 116   2          if (c != 'I')
 117   2            continue;
C51 COMPILER V7.08   SLIPDEV                                                               12/26/2003 07:27:16 PAGE 3   

 118   2          SIO_RECV(c);
 119   2          if (c != 'E')
 120   2            continue;
 121   2          SIO_RECV(c);
 122   2          if (c != 'N')
 123   2            continue;
 124   2          SIO_RECV(c);
 125   2        } while (c != 'T');
 126   1      }
 127          
 128          void modem_reply(void)
 129          {
 130   1        putstring("CLIENTSERVER");
 131   1      }
 132          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    462    ----
   CONSTANT SIZE    =     13    ----
   XDATA SIZE       =   ----       8
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -