summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Olivier Galibert <galibert@pobox.com>2021-01-17 11:09:16 +0100
committer Olivier Galibert <galibert@pobox.com>2021-01-17 11:40:20 +0100
commitbb7b375aa64da9c408f8070fe11639f614582647 (patch)
tree5dd29d37448c208b1fb5d495ae7e9d90dcf74db3
parentbb5ce38fa35e8a553d949e8fd7f00db035172791 (diff)
dc42: better cell size on save and remove extraneous logging
-rw-r--r--src/lib/formats/ap_dsk35.cpp13
-rw-r--r--src/lib/formats/ap_dsk35.h1
2 files changed, 6 insertions, 8 deletions
diff --git a/src/lib/formats/ap_dsk35.cpp b/src/lib/formats/ap_dsk35.cpp
index 73ce20bf8e7..580133b1844 100644
--- a/src/lib/formats/ap_dsk35.cpp
+++ b/src/lib/formats/ap_dsk35.cpp
@@ -1208,6 +1208,9 @@ LEGACY_FLOPPY_OPTIONS_END
// license:BSD-3-Clause
// copyright-holders:Olivier Galibert
+
+const int dc42_format::cell_count[5] = { 76950, 70672, 64244, 57739, 51387 };
+
dc42_format::dc42_format() : floppy_image_format_t()
{
}
@@ -1316,12 +1319,6 @@ bool dc42_format::load(io_generic *io, uint32_t form_factor, const std::vector<u
pos_tag += 12;
}
io_generic_read(io, data+12, pos_data, 512);
- for(int kk0 = 0; kk0 != 512; kk0 += 16) {
- printf("%02d %d %2d %03x:", track, head, i, kk0);
- for(int kk1 = 0; kk1 != 16; kk1++)
- printf(" %02x", data[12+kk0+kk1]);
- printf("\n");
- }
pos_data += 512;
si = (si + 2) % ns;
if(si == 0)
@@ -1395,9 +1392,9 @@ bool dc42_format::save(io_generic *io, const std::vector<uint32_t> &variants, fl
uint8_t sectdata[(512+12)*12];
memset(sectdata, 0, sizeof(sectdata));
int nsect = 12-(track/16);
- uint8_t buf[13000];
+ uint8_t buf[20000];
int ts;
- generate_bitstream_from_track(track, head, 200000000/(6208*nsect), buf, ts, image);
+ generate_bitstream_from_track(track, head, 200000000 / cell_count[track/16], buf, ts, image);
int pos = 0;
int wrap = 0;
int hb = 0;
diff --git a/src/lib/formats/ap_dsk35.h b/src/lib/formats/ap_dsk35.h
index 2f6c54d66ce..67043e5bf6c 100644
--- a/src/lib/formats/ap_dsk35.h
+++ b/src/lib/formats/ap_dsk35.h
@@ -40,6 +40,7 @@ public:
private:
static const desc_e mac_gcr[];
+ static const int cell_count[5];
uint8_t gb(const uint8_t *buf, int ts, int &pos, int &wrap);
void update_chk(const uint8_t *data, int size, uint32_t &chk);