[Coco] DW4 problems

Aaron Wolfe aawolfe at gmail.com
Tue Oct 23 05:08:47 EDT 2012


On Tue, Oct 23, 2012 at 4:23 AM, Bob Devries <devries.bob at gmail.com> wrote:
> Some more interesting things: It may be coincidence but...
>
> I got this error:
>
> Tue Oct 23 2012 17:46:26.218  WARN   DWProtocolHandler   dwproto-0-10
> DoOP_WRITE: Bad checksum, drive: 2 LSN: 159015 CocoSum: 23 ServerSum: 6127
>
> Please note that the HEX value of the Coco checksum is $17, and that of the
> server is $17EF. Note also that the next line:
>
> Tue Oct 23 2012 17:46:26.218  WARN   DWProtocolHandler   dwproto-0-10
> UNKNOWN OPCODE: 239 ï
>
> The hexadecimal of 239 is....$EF
>
> Coincidence? Could be...
> In cases where I get a checksum error, it appears that when converted to
> hexadecimal, the first byte of the server checksum is the same as the second
> byte of the coco checksum. Makes you wonder, right?
>
>

in an op_write, the coco sends 262 bytes:

Byte	Value
0	OP_WRITE ($57)
1	Drive number
2	Bits 23-16 of LSN
3	Bits 15-8 of LSN
4	Bits 7-0 of LSN
5-260	256 bytes of sector data to write
261	Bits 15-8 of checksum (computed by CoCo)
262	Bits 7-0 of checksum (computed by CoCo)

this is a fixed size operation, so the server always reads 262 bytes as well.

Is the first byte of the coco checksum (as reported by DW) always 0?

If the checksums line up otherwise, we're getting an extra byte from
somewhere but the data bytes are transferring OK (or the checksums
would be different).

Assuming that's correct, it almost means it has to be an extra 0 (or
non zero if you've seen that) *after* the sector data and *before* the
coco sends its checksum.  This would mean somehow a byte is coming out
of nowhere.. I think I am even more suspicious of the buffering in
your adapter now.  If you have any way to swap it out, I think that
will be a very good test to do next.



More information about the Coco mailing list