Path: utzoo!attcan!uunet!lll-winken!lll-tis!ames!necntc!ima!cfisun!lakart!dg From: dg@lakart.UUCP (David Goodenough) Newsgroups: comp.protocols.misc Subject: Table driven CRC evaluation Keywords: CRC Message-ID: <238@lakart.UUCP> Date: 7 Sep 88 21:37:49 GMT Reply-To: dg@lakart.UUCP (David Goodenough) Followup-To: poster Organization: Lake - The systems people Lines: 20 I have recently implemented an XMODEM file transfer program on my CP/M machine at home, and since I evaluate the CRC "on the fly" i.e. transmit a character then update the CRC, I found that even at 9600 BPS I could keep up doing in the "slow" way i.e. bit by bit (it takes a hair over 100 Us to update ONE BYTE of CRC on a 4mhz z80, so I spend about 90% of my time idle. However back to the question. I have seen table driven CRC software, that does each byte in no time flat by looking in a table. However there is one major difference: In my software I have to "finish" the crc evaluation by pushing a pair of zero bytes into it, whereas the table version doesn't need this. How does the table get away without the extra pair of bytes: because both systems get it right for any number of bytes, 128 and 1024 being the obvious pair, as an aside I've tried it with many other byte counts. E-mail responses, as I don't usually read this newsgroup. Thanks in advance, -- dg@lakart.UUCP - David Goodenough +---+ | +-+-+ ....... !harvard!cca!lakart!dg +-+-+ | +---+