diff options
author | Michael Zapf <github@mizapf.de> | 2020-12-14 18:08:34 +0100 |
---|---|---|
committer | Michael Zapf <github@mizapf.de> | 2020-12-14 18:11:52 +0100 |
commit | eb61e292c4b1ccb26b3347cf6d0e96a80dbb4979 (patch) | |
tree | 32a33a107f5a64d668326409221ee8c5b2de6131 /src/devices/machine | |
parent | 7905b3b308e1850b62a93c9af1316682efa17a2b (diff) |
hdc92x4: Fixed wrong fill byte after data CRC (had no functional impact) (nw)
Diffstat (limited to 'src/devices/machine')
-rw-r--r-- | src/devices/machine/hdc92x4.cpp | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/devices/machine/hdc92x4.cpp b/src/devices/machine/hdc92x4.cpp index 4354711738f..c0593205944 100644 --- a/src/devices/machine/hdc92x4.cpp +++ b/src/devices/machine/hdc92x4.cpp @@ -2825,10 +2825,14 @@ void hdc92x4_device::live_run_until(attotime limit) write_on_track(encode((m_live_state.crc >> 8) & 0xff), 1, WRITE_DATA_CRC); } else + { // Write a filler byte so that the last CRC bit is saved correctly // Without, the last bit of the CRC value may be flipped - write_on_track(encode(0xff), 1, WRITE_DONE); - + // This is an effect of the PLL, not of MFM + // Compare with the header CRC, where during formatting, the + // CRC bytes are followed by the gap bytes. + write_on_track(encode(fm_mode()? 0xff : 0x4e), 1, WRITE_DONE); + } break; case WRITE_DONE: @@ -3572,9 +3576,11 @@ void hdc92x4_device::live_run_hd_until(attotime limit) write_on_track(encode_hd((m_live_state.crc >> 8) & 0xff), 1, WRITE_DATA_CRC); } else + { // Write a filler byte so that the last CRC bit is saved correctly - write_on_track(encode_hd(0xff), 1, WRITE_DONE); - + // See above for an explanation + write_on_track(encode_hd(0x4e), 1, WRITE_DONE); + } break; case WRITE_DONE: |