I'm planning on getting my server back up this weekend (Newegg sold me a DOA HDD and then took two weeks to tell me the model is now out of stock). The document describes the CRC as CRC-16 CCITT (0xFFFF) but in the individual command descriptions, the "crc" field is listed as occupying four bytes with the first two bytes being 0x0000 since those two bytes were always 0 in my testing. I could have just as easily marked those two bytes as pad bytes. During the reverse engineering portion of my project, I solely looked at captured communications port traffic and didn't look as any machine code (or source code). As a result, there is a chance that some fields described by my protocol document do not list potentially valid values or conditions, simply because I was never able to observe them.
| | | Checksum A CRC16 CCITT (0xFFFF) checksum is used throughout the protocol. The checksum is always transferred as a 32-bit value, with the upper 16-bits set to 0x0000. The upper two bytes are used in the calculation of the checksum. |
My end goal, besides just enjoying working on the project, is to reproduce the floppy drive and either sell kits or fully assembled devices (assuming someone would actually be interested in paying for one). For now, I'll attach the latest version of the document to this message. Also, I'm all for collaborating and I think we are working on different enough projects that neither will encroach on the other. |