Hi,

> xor 0xffff is exactly the same things a mod 2**16. You must be talking
> about something else.

I understand it like this:
xor 0xffff inverts the lowest 16 bits.
mod 2**16 zeroes the bits above the lowest 16 bits. Like: and 0xffff.

The CD-TEXT CRC algorithm is ITU-T V.41 with the additional prescription
of inverting the 16 result bits.

MMC-3 Annex J states:
"CRC Field consists of 2 bytes. Initiator system may use these bytes to
 check errors in the Pack.  The polynomial is X16 + X12 + X5 + 1. All
 bits shall be inverted."

My understanding of this prescription is backed by Leon's example data,
and by the fact that my burner refused to accept the CD-TEXT data when
i altered the 0x8f packs after computing their CRCs. (Educational mistake.)
The drive took the data as soon as i corrected those 3 CRCs.


> I'm just suggesting that rather than describe things bottom
> up, one might keep a human focus.

I am watching with high interest how you shape the libcdio documentation
and will probably make use of it when it does not move any more.


Have a nice day :)

Thomas


Reply via email to