This is a preliminary protocol definition to be used with my Sega CD (and soon Sega Saturn) transfer cable. Not all features are likely to be implemented immediately (if at all), but I wanted to think ahead. It's not 100% complete (some commands need further definition, a section on timeouts needs to be added and initial sync needs to be dealt with), but it's pretty close to final. I'm thinking about making checksums on data packets optional for speed reasons or maybe even completely eliminating them. Generally speaking, once synchronized I haven't had many problems with data integrity, though that might change now that I'm using more efficient handshaking (thus speeding transfers). I'd like to get some input from other developers on what they would like to see in the protocol. I'd like to make the protocol more accessible to developers and structured so that different developers can make interoperating utilities and generally make the associated tools more useful.