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

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

unix.superglobalmegacorp.com

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