diff options
author | 2019-06-09 15:11:16 +0800 | |
---|---|---|
committer | 2019-06-09 15:11:16 +0800 | |
commit | 0e524aeb351daef0b4fef3a698a91e10e79a697a (patch) | |
tree | 295265f9a3934a5945060e674ad4e833e3bba5c6 | |
parent | b8df749e2d668b71407abde639fb6880c18d9fea (diff) |
Apple II dsk 35 to 40 track
Change Apple II dsk format 35 track to 40 track
-rw-r--r-- | src/lib/formats/ap2_dsk.cpp | 31 | ||||
-rw-r--r-- | src/lib/formats/ap2_dsk.h | 3 |
2 files changed, 18 insertions, 16 deletions
diff --git a/src/lib/formats/ap2_dsk.cpp b/src/lib/formats/ap2_dsk.cpp index 6409c4c2761..7a888079293 100644 --- a/src/lib/formats/ap2_dsk.cpp +++ b/src/lib/formats/ap2_dsk.cpp @@ -496,19 +496,19 @@ static uint32_t apple2_get_track_size(floppy_image_legacy *floppy, int head, int LEGACY_FLOPPY_OPTIONS_START( apple2 ) LEGACY_FLOPPY_OPTION( apple2_do, "do,dsk,bin", "Apple ][ DOS order disk image", apple2_dsk_identify, apple2_do_construct, nullptr, HEADS([1]) - TRACKS([35]) + TRACKS([APPLE2_TRACK_COUNT]) SECTORS([16]) SECTOR_LENGTH([256]) FIRST_SECTOR_ID([0])) LEGACY_FLOPPY_OPTION( apple2_po, "po,dsk,bin", "Apple ][ ProDOS order disk image", apple2_dsk_identify, apple2_po_construct, nullptr, HEADS([1]) - TRACKS([35]) + TRACKS([APPLE2_TRACK_COUNT]) SECTORS([16]) SECTOR_LENGTH([256]) FIRST_SECTOR_ID([0])) LEGACY_FLOPPY_OPTION( apple2_nib, "dsk,nib", "Apple ][ Nibble order disk image", apple2_nib_identify, apple2_nib_construct, nullptr, HEADS([1]) - TRACKS([35]) + TRACKS([APPLE2_TRACK_COUNT]) SECTORS([16]) SECTOR_LENGTH([256]) FIRST_SECTOR_ID([0])) @@ -562,10 +562,11 @@ bool a2_16sect_format::supports_save() const int a2_16sect_format::identify(io_generic *io, uint32_t form_factor) { uint64_t size = io_generic_size(io); - uint32_t expected_size = 35 * 16 * 256; + //uint32_t expected_size = 35 * 16 * 256; + uint32_t expected_size = APPLE2_TRACK_COUNT * 16 * 256; // check standard size plus some oddball sizes in our softlist - if ((size == expected_size) || (size == 143403) || (size == 143363) || (size == 143358)) + if ((size == expected_size) || (size == 35 * 16 * 256) || (size == 143403) || (size == 143363) || (size == 143358)) { return 50; } @@ -608,7 +609,7 @@ bool a2_16sect_format::load(io_generic *io, uint32_t form_factor, floppy_image * m_prodos_order = false; int fpos = 0; - for(int track=0; track < 35; track++) { + for(int track=0; track < APPLE2_TRACK_COUNT; track++) { std::vector<uint32_t> track_data; uint8_t sector_data[256*16]; static const unsigned char pascal_block1[4] = { 0x08, 0xa5, 0x0f, 0x29 }; @@ -759,7 +760,7 @@ void a2_16sect_format::update_chk(const uint8_t *data, int size, uint32_t &chk) bool a2_16sect_format::save(io_generic *io, floppy_image *image) { int g_tracks, g_heads; - int visualgrid[16][35]; // visualizer grid, cleared/initialized below + int visualgrid[16][APPLE2_TRACK_COUNT]; // visualizer grid, cleared/initialized below // lenient addr check: if unset, only accept an addr mark if the checksum was good // if set, accept an addr mark if the track and sector values are both sane @@ -780,7 +781,7 @@ bool a2_16sect_format::save(io_generic *io, floppy_image *image) // data postamble is good #define DATAPOST 16 for (auto & elem : visualgrid) { - for (int j = 0; j < 35; j++) { + for (int j = 0; j < APPLE2_TRACK_COUNT; j++) { elem[j] = 0; } } @@ -790,7 +791,7 @@ bool a2_16sect_format::save(io_generic *io, floppy_image *image) int pos_data = 0; - for(int track=0; track < 35; track++) { + for(int track=0; track < APPLE2_TRACK_COUNT; track++) { uint8_t sectdata[(256)*16]; memset(sectdata, 0, sizeof(sectdata)); int nsect = 16; @@ -962,7 +963,7 @@ bool a2_16sect_format::save(io_generic *io, floppy_image *image) // display a little table of which sectors decoded ok #ifdef VERBOSE_SAVE int total_good = 0; - for (int j = 0; j < 35; j++) { + for (int j = 0; j < APPLE2_TRACK_COUNT; j++) { printf("T%2d: ",j); for (int i = 0; i < 16; i++) { if (visualgrid[i][j] == NOTFOUND) printf("-NF- "); @@ -1037,7 +1038,7 @@ bool a2_rwts18_format::supports_save() const int a2_rwts18_format::identify(io_generic *io, uint32_t form_factor) { uint64_t size = io_generic_size(io); - uint32_t expected_size = 35 * 16 * 256; + uint32_t expected_size = APPLE2_TRACK_COUNT * 16 * 256; return size == expected_size; } @@ -1084,7 +1085,7 @@ bool a2_rwts18_format::load(io_generic *io, uint32_t form_factor, floppy_image * int head_count = 1; - for(int track=0; track < 35; track++) { + for(int track=0; track < APPLE2_TRACK_COUNT; track++) { for(int head=0; head < head_count; head++) { for(int si=0; si<16; si++) { uint8_t *data = sector_data + (256)*si; @@ -1124,7 +1125,7 @@ void a2_rwts18_format::update_chk(const uint8_t *data, int size, uint32_t &chk) bool a2_rwts18_format::save(io_generic *io, floppy_image *image) { int g_tracks, g_heads; - int visualgrid[18][35]; // visualizer grid, cleared/initialized below + int visualgrid[18][APPLE2_TRACK_COUNT]; // visualizer grid, cleared/initialized below // lenient addr check: if unset, only accept an addr mark if the checksum was good // if set, accept an addr mark if the track and sector values are both sane #undef LENIENT_ADDR_CHECK @@ -1146,7 +1147,7 @@ bool a2_rwts18_format::save(io_generic *io, floppy_image *image) // data postamble is good #define DATAPOST 16 for (auto & elem : visualgrid) { - for (int j = 0; j < 35; j++) { + for (int j = 0; j < APPLE2_TRACK_COUNT; j++) { elem[j] = 0; } } @@ -1505,7 +1506,7 @@ bool a2_rwts18_format::save(io_generic *io, floppy_image *image) } // display a little table of which sectors decoded ok int total_good = 0; - for (int j = 0; j < 35; j++) { + for (int j = 0; j < APPLE2_TRACK_COUNT; j++) { printf("T%2d: ",j); for (int i = 0; i < (j==0?16:6); i++) { if (visualgrid[i][j] == NOTFOUND) printf("-NF- "); diff --git a/src/lib/formats/ap2_dsk.h b/src/lib/formats/ap2_dsk.h index 54433a001b8..f2f5e005f8c 100644 --- a/src/lib/formats/ap2_dsk.h +++ b/src/lib/formats/ap2_dsk.h @@ -23,7 +23,8 @@ #define APPLE2_NIBBLE_SIZE 416 #define APPLE2_SMALL_NIBBLE_SIZE 374 -#define APPLE2_TRACK_COUNT 35 +//#define APPLE2_TRACK_COUNT 35 +#define APPLE2_TRACK_COUNT 40 #define APPLE2_SECTOR_COUNT 16 #define APPLE2_SECTOR_SIZE 256 |