diff options
Diffstat (limited to 'src/lib/formats/dim_dsk.cpp')
-rw-r--r-- | src/lib/formats/dim_dsk.cpp | 101 |
1 files changed, 0 insertions, 101 deletions
diff --git a/src/lib/formats/dim_dsk.cpp b/src/lib/formats/dim_dsk.cpp index 04f6e3b8995..53359b2fd1c 100644 --- a/src/lib/formats/dim_dsk.cpp +++ b/src/lib/formats/dim_dsk.cpp @@ -9,112 +9,11 @@ *********************************************************************/ #include "dim_dsk.h" -#include "basicdsk.h" #include "ioprocs.h" #include <cstring> - -FLOPPY_IDENTIFY(dim_dsk_identify) -{ - uint8_t dim_header[16]; - - floppy_image_read(floppy, (uint8_t*)dim_header,0xab,16); - - if(strncmp((const char*)dim_header,"DIFC HEADER",11) == 0) - *vote = 100; - else - *vote = 0; - return FLOPPY_ERROR_SUCCESS; -} - -FLOPPY_CONSTRUCT(dim_dsk_construct) -{ - struct basicdsk_geometry geometry; - // DIM disk image header, most of this is guesswork - int tracks = 77; - int heads = 2; - int sectors = 8; // per track - int sectorlen = 1024; - int firstsector = 0x01; - uint8_t format_tmp; - int x; - uint16_t temp; - - if(params) - { - // create - return FLOPPY_ERROR_UNSUPPORTED; - } - - // Offset + 0 : disk format type (1 byte): - // 0 = 2HD / 2HDA (8 sector/track, 1024 bytes/sector, GAP#3 = 0x74) - // 1 = 2HS (9 sector/track, 1024 bytes/sector, GAP#3 = 0x39) - // 2 = 2HC (15 sector/track, 512 bytes/sector, GAP#3 = 0x54) - // 3 = 2HDE(68) (9 sector/track, 1024 bytes/sector, GAP#3 = 0x39) - // 9 = 2HQ (18 sector/track, 512 bytes/sector, GAP#3 = 0x54) - // 17 = N88-BASIC (26 sector/track, 256 bytes/sector, GAP#3 = 0x33) - // or (26 sector/track, 128 bytes/sector, GAP#3 = 0x1a) - // - floppy_image_read(floppy, &format_tmp,0,1); - - switch(format_tmp) - { - case 0x00: - sectors = 8; - sectorlen = 1024; - break; - case 0x01: - case 0x03: - sectors = 9; - sectorlen = 1024; - break; - case 0x02: - sectors = 15; - sectorlen = 512; - break; - case 0x09: - sectors = 18; - sectorlen = 512; - break; - case 0x11: - sectors = 26; - sectorlen = 256; - break; - } - tracks = 0; - for (x=0;x<86;x++) - { - floppy_image_read(floppy,&temp,(x*2)+1,2); - if(temp == 0x0101) - tracks++; - } - // TODO: expand on this basic implementation - - LOG_FORMATS("FDD: DIM image loaded - type %i, %i tracks, %i sectors per track, %i bytes per sector\n", format_tmp,tracks, sectors,sectorlen); - - memset(&geometry, 0, sizeof(geometry)); - geometry.heads = heads; - geometry.first_sector_id = firstsector; - geometry.sector_length = sectorlen; - geometry.tracks = tracks+1; - geometry.sectors = sectors; - geometry.offset = 0x100; - return basicdsk_construct(floppy, &geometry); -} - - -/********************************************************************* - - formats/dim_dsk.c - - DIM disk images - -*********************************************************************/ - -#include "dim_dsk.h" - dim_format::dim_format() { } |