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

📄 picweb.lst

📁 《嵌入式系统 Web 服务器:TCP/IP Lean》
💻 LST
📖 第 1 页 / 共 5 页
字号:
153C:  ADDWF  77,W
153D:  ANDLW  0F
153E:  ADDWF  70,F
....................     } 
*
138F:  GOTO   30B
*
1467:  GOTO   3E3
*
153F:  GOTO   4BB
....................     return(ok); 
*
1390:  MOVLW  00
1391:  BSF    03,5
1392:  BSF    03,6
1393:  BTFSC  28,0
1394:  MOVLW  01
1395:  BCF    03,5
1396:  BCF    03,6
1397:  MOVWF  78
*
1468:  MOVLW  00
1469:  BSF    03,5
146A:  BSF    03,6
146B:  BTFSC  28,0
146C:  MOVLW  01
146D:  BCF    03,5
146E:  BCF    03,6
146F:  MOVWF  78
*
1540:  MOVLW  00
1541:  BSF    03,5
1542:  BSF    03,6
1543:  BTFSC  28,0
1544:  MOVLW  01
1545:  BCF    03,5
1546:  BCF    03,6
1547:  MOVWF  78
.................... } 
....................  
.................... /* Get a SLIP byte from buffer; if end, set flag */ 
.................... BYTE getch_slip(void) 
.................... { 
*
086E:  BSF    03,5
086F:  BSF    03,6
0870:  CLRF   2C
....................     BYTE b=0; 
....................  
....................     slipend = rxout>=rxcount; 
0871:  BCF    03,5
0872:  BCF    03,6
0873:  MOVF   51,W
0874:  SUBWF  52,W
0875:  BTFSC  03,2
0876:  GOTO   07B
0877:  BTFSS  03,0
0878:  GOTO   07B
0879:  BCF    4B,4
087A:  GOTO   07C
087B:  BSF    4B,4
....................     if (!slipend) 
087C:  BTFSC  4B,4
087D:  GOTO   08E
....................     { 
....................         b = rxbuff[rxout++]; 
087E:  MOVF   51,W
087F:  INCF   51,F
0880:  MOVWF  77
0881:  MOVLW  A0
0882:  ADDWF  77,W
0883:  MOVWF  04
0884:  BCF    03,7
0885:  MOVF   00,W
0886:  BSF    03,5
0887:  BSF    03,6
0888:  MOVWF  2C
....................         check_byte(b); 
0889:  MOVF   2C,W
088A:  MOVWF  2D
088B:  BCF    03,5
088C:  BCF    03,6
088D:  CALL   046
....................     } 
....................     return(b); 
088E:  BSF    03,5
088F:  BSF    03,6
0890:  MOVF   2C,W
0891:  BCF    03,5
0892:  BCF    03,6
0893:  MOVWF  78
0894:  RETLW  00
.................... } 
....................  
.................... /* Match an incoming byte value, return 0 not matched, or end of message */ 
.................... BOOL match_byte(BYTE b) 
.................... { 
....................     return(b==getch_slip() && !slipend); 
0895:  CALL   06E
0896:  MOVF   78,W
0897:  BSF    03,5
0898:  BSF    03,6
0899:  SUBWF  2B,W
089A:  BTFSC  03,2
089B:  GOTO   09F
089C:  BCF    03,5
089D:  BCF    03,6
089E:  GOTO   0A3
089F:  BCF    03,5
08A0:  BCF    03,6
08A1:  BTFSS  4B,4
08A2:  GOTO   0A5
08A3:  MOVLW  00
08A4:  GOTO   0A6
08A5:  MOVLW  01
08A6:  MOVWF  78
08A7:  RETLW  00
.................... } 
.................... /* Match an incoming byte value, return 0 not matched, or end of message */ 
.................... BOOL match_word(WORD w) 
.................... { 
....................     WORD inw; 
....................  
....................     return(get_word(inw) && inw==w); 
.................... } 
.................... /* Match a string value, return 0 (and don't move O/P ptr) if not matched */ 
.................... BOOL match_str(char *s) 
.................... { 
....................     BOOL ok=1; 
*
0AEA:  BSF    03,5
0AEB:  BSF    03,6
0AEC:  BSF    28,0
....................     int rxo; 
....................  
....................     rxo = rxout; 
0AED:  BCF    03,5
0AEE:  BCF    03,6
0AEF:  MOVF   51,W
0AF0:  BSF    03,5
0AF1:  BSF    03,6
0AF2:  MOVWF  29
0AF3:  BCF    03,5
0AF4:  BCF    03,6
....................     while (ok && *s) 
0AF5:  BSF    03,5
0AF6:  BSF    03,6
0AF7:  BTFSC  28,0
0AF8:  GOTO   2FC
0AF9:  BCF    03,5
0AFA:  BCF    03,6
0AFB:  GOTO   33A
0AFC:  BCF    03,5
0AFD:  BCF    03,6
0AFE:  BSF    03,5
0AFF:  BSF    03,6
0B00:  MOVF   27,W
0B01:  BCF    03,5
0B02:  BCF    03,6
0B03:  MOVWF  7A
0B04:  BSF    03,5
0B05:  BSF    03,6
0B06:  MOVF   26,W
0B07:  MOVWF  04
0B08:  BCF    03,7
0B09:  BCF    03,5
0B0A:  BCF    03,6
0B0B:  BTFSC  7A,0
0B0C:  BSF    03,7
0B0D:  MOVF   00,F
0B0E:  BTFSC  03,2
0B0F:  GOTO   33A
....................         ok = match_byte(*s++); 
0B10:  BSF    03,5
0B11:  BSF    03,6
0B12:  MOVF   27,W
0B13:  BCF    03,5
0B14:  BCF    03,6
0B15:  MOVWF  7A
0B16:  BSF    03,5
0B17:  BSF    03,6
0B18:  MOVF   26,W
0B19:  INCF   26,F
0B1A:  BTFSC  03,2
0B1B:  INCF   27,F
0B1C:  MOVWF  04
0B1D:  BCF    03,7
0B1E:  BCF    03,5
0B1F:  BCF    03,6
0B20:  BTFSC  7A,0
0B21:  BSF    03,7
0B22:  MOVF   00,W
0B23:  BSF    03,5
0B24:  BSF    03,6
0B25:  MOVWF  2A
0B26:  MOVF   2A,W
0B27:  MOVWF  2B
0B28:  BCF    03,5
0B29:  BCF    03,6
0B2A:  CALL   095
0B2B:  MOVF   78,F
0B2C:  BTFSS  03,2
0B2D:  GOTO   334
0B2E:  BSF    03,5
0B2F:  BSF    03,6
0B30:  BCF    28,0
0B31:  BCF    03,5
0B32:  BCF    03,6
0B33:  GOTO   339
0B34:  BSF    03,5
0B35:  BSF    03,6
0B36:  BSF    28,0
0B37:  BCF    03,5
0B38:  BCF    03,6
0B39:  GOTO   2F5
....................     if (!ok) 
0B3A:  BSF    03,5
0B3B:  BSF    03,6
0B3C:  BTFSS  28,0
0B3D:  GOTO   341
0B3E:  BCF    03,5
0B3F:  BCF    03,6
0B40:  GOTO   349
0B41:  BCF    03,5
0B42:  BCF    03,6
....................         rxout = rxo; 
0B43:  BSF    03,5
0B44:  BSF    03,6
0B45:  MOVF   29,W
0B46:  BCF    03,5
0B47:  BCF    03,6
0B48:  MOVWF  51
0B49:  RETLW  00
.................... } 
....................  
.................... /* Skip whitespace & ctrl chars in incoming data */ 
.................... void skip_space(void) 
.................... { 
....................     while (rxbuff[rxout] <= ' ') 
*
1196:  MOVLW  A0
1197:  ADDWF  51,W
1198:  MOVWF  04
1199:  BCF    03,7
119A:  MOVLW  21
119B:  SUBWF  00,W
119C:  BTFSC  03,0
119D:  GOTO   1A4
....................         getch_slip(); 
119E:  BCF    0A,4
119F:  BSF    0A,3
11A0:  CALL   06E
11A1:  BSF    0A,4
11A2:  BCF    0A,3
11A3:  GOTO   196
.................... } 
.................... /* Skip an incoming byte value, return 0 if end of message */ 
.................... BOOL skip_byte() 
.................... { 
....................     getch_slip(); 
*
07EB:  BSF    0A,3
07EC:  CALL   06E
07ED:  BCF    0A,3
....................     return(!slipend); 
07EE:  MOVLW  00
07EF:  BTFSS  4B,4
07F0:  MOVLW  01
07F1:  MOVWF  78
07F2:  RETLW  00
.................... } 
.................... /* Skip an incoming byte value, return 0 if end of message */ 
.................... BOOL skip_word() 
.................... { 
....................     getch_slip(); 
*
08A8:  CALL   06E
....................     getch_slip(); 
08A9:  CALL   06E
....................     return(!slipend); 
08AA:  MOVLW  00
08AB:  BTFSS  4B,4
08AC:  MOVLW  01
08AD:  MOVWF  78
08AE:  RETLW  00
.................... } 
.................... /* Skip an incoming byte value, return 0 if end of message */ 
.................... BOOL skip_lword() 
.................... { 
....................     getch_slip(); 
*
0E5D:  CALL   06E
....................     getch_slip(); 
0E5E:  CALL   06E
....................     getch_slip(); 
0E5F:  CALL   06E
....................     getch_slip(); 
0E60:  CALL   06E
....................     return(!slipend); 
0E61:  MOVLW  00
0E62:  BTFSS  4B,4
0E63:  MOVLW  01
0E64:  MOVWF  78
.................... } 
....................  
.................... /* Compute checksum of a string, return its length */ 
.................... int check_str(char *s) 
.................... { 
....................     char c; 
....................     int n=0; 
....................  
....................     while ((c = s[n])!=0) 
....................     { 
....................         check_byte(c); 
....................         n++; 
....................     } 
....................     return(n); 
.................... } 
....................  
.................... /* Add byte to checksum value */ 
.................... void check_byte(BYTE b) 
.................... { 
....................     if (checkflag) 
*
0846:  BTFSS  4B,5
0847:  GOTO   05A
....................     { 
....................         if ((checklo = b+checklo) < b) 
0848:  BSF    03,5
0849:  BSF    03,6
084A:  MOVF   2D,W
084B:  BCF    03,5
084C:  BCF    03,6
084D:  ADDWF  54,F
084E:  BSF    03,5
084F:  BSF    03,6
0850:  MOVF   2D,W
0851:  BCF    03,5
0852:  BCF    03,6
0853:  SUBWF  54,W
0854:  BTFSC  03,0
0855:  GOTO   059
....................         { 
....................             if (++checkhi == 0) 
0856:  INCFSZ 53,F
0857:  GOTO   059
....................                 checklo++; 
0858:  INCF   54,F
....................         } 
....................     } 
....................     else 
0859:  GOTO   06B
....................     { 
....................         if ((checkhi = b+checkhi) < b) 
085A:  BSF    03,5
085B:  BSF    03,6
085C:  MOVF   2D,W
085D:  BCF    03,5
085E:  BCF    03,6
085F:  ADDWF  53,F
0860:  BSF    03,5
0861:  BSF    03,6
0862:  MOVF   2D,W
0863:  BCF    03,5
0864:  BCF    03,6
0865:  SUBWF  53,W
0866:  BTFSC  03,0
0867:  GOTO   06B
....................         { 
....................             if (++checklo == 0) 
0868:  INCFSZ 54,F
0869:  GOTO   06B
....................                 checkhi++; 
086A:  INCF   53,F
....................         } 
....................     } 
....................     checkflag = !checkflag; 
086B:  MOVLW  20
086C:  XORWF  4B,F
086D:  RETLW  00
.................... } 
.................... /* Add word to checksum value */ 
.................... void check_word(WORD w) 
.................... { 
....................     check_byte(w>>8); 
....................     check_byte(w); 
.................... } 
.................... /* Add longword to checksum value */ 
.................... void check_lword(LWORD &lw) 
.................... { 
....................     check_byte(lw.b[3]); 
*
091F:  MOVF   2D,W
0920:  BSF    03,5
0921:  BSF    03,6
0922:  MOVWF  2D
0923:  BCF    03,5
0924:  BCF    03,6
0925:  CALL   046
*
093B:  MOVF   31,W
093C:  BSF    03,5
093D:  BSF    03,6
093E:  MOVWF  2D
093F:  BCF    03,5
0940:  BCF    03,6
0941:  CALL   046
*
0A6A:  MOVF   2D,W
0A6B:  BSF    03,5
0A6C:  BSF    03,6
0A6D:  MOVWF  2D
0A6E:  BCF    03,5
0A6F:  BCF    03,6
0A70:  CALL   046
*
0A86:  MOVF   31,W
0A87:  BSF    03,5
0A88:  BSF    03,6
0A89:  MOVWF  2D
0A8A:  BCF    03,5
0A8B:  BCF    03,6
0A8C:  CALL   046
*
0E7F:  MOVF   2D,W
0E80:  BSF    03,5
0E81:  BSF    03,6
0E82:  MOVWF  2D
0E83:  BCF    03,5
0E84:  BCF    03,6
0E85:  CALL   046
*
0E9B:  MOVF   31,W
0E9C:  BSF    03,5
0E9D:  BSF    03,6
0E9E:  MOVWF  2D
0E9F:  BCF    03,5
0EA0:  BCF    03,6
0EA1:  CALL   046
....................     check_byte(lw.b[2]); 
*
0926:  MOVF   2C,W
0927:  BSF    03,5
0928:  BSF    03,6
0929:  MOVWF  2D
092A:  BCF    03,5
092B:  BCF    03,6
092C:  CALL   046
*
0942:  MOVF   30,W
0943:  BSF    03,5
0944:  BSF    03,6
0945:  MOVWF  2D
0946:  BCF    03,5
0947:  BCF    03,6
0948:  CALL   046
*
0A71:  MOVF   2C,W
0A72:  BSF    03,5
0A73:  BSF    03,6
0A74:  MOVWF  2D
0A75:  BCF    03,5
0A76:  BCF    03,6
0A77:  CALL   046
*
0A8D:  MOVF   30,W
0A8E:  BSF    03,5
0A8F:  BSF    03,6
0A90:  MOVWF  2D
0A91:  BCF    03,5
0A92:  BCF    03,6
0A93:  CALL   046
*
0E86:  MOVF   2C,W
0E87:  BSF    03,5
0E88:  BSF    03,6
0E89:  MOVWF  2D
0E8A:  BCF    03,5
0E8B:  BCF    03,6
0E8C:  CALL   046
*
0EA2:  MOVF   30,W
0EA3:  BSF    03,5
0EA4:  BSF    03,6
0EA5:  MOVWF  2D
0EA6:  BCF    03,5
0EA7:  BCF    03,6
0EA8:  CALL   046
....................     check_byte(lw.b[1]); 
*
092D:  MOVF   2B,W
092E:  BSF    03,5
092F:  BSF    03,6
0930:  MOVWF  2D
0931:  BCF    03,5
0932:  BCF    03,6
0933:  CALL   046
*
0949:  MOVF   2F,W
094A:  BSF    03,5
094B:  BSF    03,6
094C:  MOVWF  2D
094D:  BCF    03,5
094E:  BCF    03,6
094F:  CALL   046
*
0A78:  MOVF   2B,W
0A79:  BSF    03,5
0A7A:  BSF    03,6
0A7B:  MOVWF  2D
0A7C:  BCF    03,5
0A7D:  BCF    03,6
0A7E:  CALL   046
*
0A94:  MOVF   2F,W
0A95:  BSF    03,5
0A96:  BSF    03,6
0A97:  MOVWF  2D
0A98:  BCF    03,5

⌨️ 快捷键说明

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