diff options
author | 2018-05-09 19:21:42 +0300 | |
---|---|---|
committer | 2018-05-10 01:21:42 +0900 | |
commit | 23045014acd8df88a44f2c019b3d11f960273a89 (patch) | |
tree | 456f51d77d63abac3cb442cff4603e99153efc7c /src/lib | |
parent | 743b0a9c834869370cd7fbe70a2f7fa4de8f27c2 (diff) |
CPC DSK format: also check status bits in SR2 (nw) (#3546)
Diffstat (limited to 'src/lib')
-rw-r--r-- | src/lib/formats/dsk_dsk.cpp | 7 |
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; |