QIC Tape help with CRC - Dwight?
ljw-cctech at ljw.me.uk
Sun Nov 15 04:49:25 CST 2015
On 15/11/15 11:15, Microtech Dart wrote:
> "The cyclical redundancy check (CRC) shall consist of two bytes, calculated
> over the 512 bytes of interchange data, and the 4-byte block address, *starting
> with all ONEs, CRC initial value*, and using the CRC Generating polynomial:
> x16 + x12 + x5 + 1
> *"starting with all ONEs, CRC initial value"*? What does THAT mean? Do I
> need to do some kind of register shift? xorin or xorout?
It's the initial value of each bit, corresponding to the "Init before
calculation" lines in the code at the bottom of the page. There doesn't
seem to be any provision for entering this value in the online
computation (and all-zeros is *not* a good initialisation vector!)
One way around this would be to come up with a byte sequence that
gave a CRC of all ones (i.e. 84 CF) and pre-pend that to the main
sequence, and then it works. But I assume you're using some sort of
code, so just make sure it's initialised appropriately.
> I've even played with http://reveng.sourceforge.net/, but I'm having
> trouble even understanding the meaning of the input values and parameters
> with this.
> I appreciate any feedback that anyone can give, here.
Best of luck! CRCs are fun!
Lawrence Wilkinson lawrence at ljw.me.uk
The IBM 360/30 page http://www.ljw.me.uk/ibm360
More information about the cctalk