Annotation of sbbs/sbbs2/smb/crc16.c, revision 1.1.1.1

1.1       root        1: /* CRC16.C */
                      2: 
                      3: /* Developed 1990-1997 by Rob Swindell; PO Box 501, Yorba Linda, CA 92885 */
                      4: 
                      5: /* 16-bit CRC routines */
                      6: 
                      7: #include "smblib.h"
                      8: 
                      9: /****************************************************************************/
                     10: /* Updates 16-bit "rcrc" with character 'ch'                                */
                     11: /****************************************************************************/
                     12: void ucrc16(uchar ch, ushort *rcrc) {
                     13:     ushort i, cy;
                     14:     uchar nch=ch;
                     15:  
                     16: for (i=0; i<8; i++) {
                     17:     cy=*rcrc & 0x8000;
                     18:     *rcrc<<=1;
                     19:     if (nch & 0x80) *rcrc |= 1;
                     20:     nch<<=1;
                     21:     if (cy) *rcrc ^= 0x1021; }
                     22: }
                     23: 
                     24: /****************************************************************************/
                     25: /* Returns 16-crc of string (not counting terminating NULL)                 */
                     26: /****************************************************************************/
                     27: ushort SMBCALL crc16(char *str)
                     28: {
                     29:     int     i=0;
                     30:     ushort  crc=0;
                     31: 
                     32: ucrc16(0,&crc);
                     33: while(str[i])
                     34:     ucrc16(str[i++],&crc);
                     35: ucrc16(0,&crc);
                     36: ucrc16(0,&crc);
                     37: return(crc);
                     38: }
                     39: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.