Skip to content

Protocol documentation for Write Block (the host response) is aspirational, but not correct #194

Description

@david-schmidt

Bug report from @colinleroy:

Write Block says:

 The Apple sends: byte stream:
   One byte: "E" ($C5)
   One byte: $02 (for drive 1) or $04 (for drive 2)
   Two bytes: requested block number (LSB, MSB)
   One byte: EOR of the first four bytes
   Requested block data (512 bytes)
   One byte: EOR of all bytes in block

 Host sends: byte stream:
   One byte: "E" ($C5)
   One byte: $02 (for drive 1) or $04 (for drive 2)
   Two bytes: requested block number (LSB, MSB)
   One byte: EOR of the first four bytes

But the host response actually reflects the checksum of the data block that the Apple sent. So it's more proper to say something like:

 Host sends: byte stream:
   One byte: "E" ($C5)
   One byte: $02 (for drive 1) or $04 (for drive 2)
   Two bytes: requested block number (LSB, MSB)
   One byte: the checksum of the block received (reflect the block's checksum back to the sender)

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions