summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Sergey Svishchev <shattered@users.noreply.github.com>2018-05-09 19:21:42 +0300
committer Olivier Galibert <galibert@pobox.com>2018-05-10 01:21:42 +0900
commit23045014acd8df88a44f2c019b3d11f960273a89 (patch)
tree456f51d77d63abac3cb442cff4603e99153efc7c
parent743b0a9c834869370cd7fbe70a2f7fa4de8f27c2 (diff)
CPC DSK format: also check status bits in SR2 (nw) (#3546)
-rw-r--r--src/lib/formats/dsk_dsk.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/lib/formats/dsk_dsk.cpp b/src/lib/formats/dsk_dsk.cpp
index 493c503c223..463573ccc25 100644
--- a/src/lib/formats/dsk_dsk.cpp
+++ b/src/lib/formats/dsk_dsk.cpp
@@ -419,8 +419,11 @@ bool dsk_format::load(io_generic *io, uint32_t form_factor, floppy_image *image)
sects[j].actual_size = sector.data_length;
else
sects[j].actual_size = 128 << tr.sector_size_code;
- sects[j].deleted = sector.fdc_status_reg1 == 0xb2;
- sects[j].bad_crc = sector.fdc_status_reg1 == 0xb5;
+
+ if (sector.fdc_status_reg1 == 0xb2 || (sector.fdc_status_reg2 & 0x40))
+ sects[j].deleted = 1;
+ if (sector.fdc_status_reg1 == 0xb5 || (sector.fdc_status_reg2 & 0x20))
+ sects[j].bad_crc = 1;
if(!sects[j].deleted) {
sects[j].data = sect_data + sdatapos;