summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/machine
diff options
context:
space:
mode:
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
commiteb61e292c4b1ccb26b3347cf6d0e96a80dbb4979 (patch)
tree32a33a107f5a64d668326409221ee8c5b2de6131 /src/devices/machine
parent7905b3b308e1850b62a93c9af1316682efa17a2b (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.cpp14
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: