mirror of
https://github.com/holub/mame
synced 2025-04-16 21:44:32 +03:00
Fix dependencies
This commit is contained in:
parent
faf0417271
commit
a52b69d27c
@ -56,6 +56,8 @@ project "formats"
|
|||||||
MAME_DIR .. "src/lib/formats/mfi_dsk.h",
|
MAME_DIR .. "src/lib/formats/mfi_dsk.h",
|
||||||
MAME_DIR .. "src/lib/formats/imd_dsk.cpp",
|
MAME_DIR .. "src/lib/formats/imd_dsk.cpp",
|
||||||
MAME_DIR .. "src/lib/formats/imd_dsk.h",
|
MAME_DIR .. "src/lib/formats/imd_dsk.h",
|
||||||
|
MAME_DIR .. "src/lib/formats/upd765_dsk.cpp",
|
||||||
|
MAME_DIR .. "src/lib/formats/upd765_dsk.h",
|
||||||
MAME_DIR .. "src/lib/formats/pc_dsk.cpp",
|
MAME_DIR .. "src/lib/formats/pc_dsk.cpp",
|
||||||
MAME_DIR .. "src/lib/formats/pc_dsk.h",
|
MAME_DIR .. "src/lib/formats/pc_dsk.h",
|
||||||
MAME_DIR .. "src/lib/formats/d88_dsk.cpp",
|
MAME_DIR .. "src/lib/formats/d88_dsk.cpp",
|
||||||
@ -1914,18 +1916,6 @@ if (FORMATS["UEF_CAS"]~=null or _OPTIONS["with-tools"]) then
|
|||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
--------------------------------------------------
|
|
||||||
--
|
|
||||||
--@src/lib/formats/upd765_dsk.h,FORMATS["UPD765_DSK"] = true
|
|
||||||
--------------------------------------------------
|
|
||||||
|
|
||||||
if (FORMATS["UPD765_DSK"]~=null or _OPTIONS["with-tools"]) then
|
|
||||||
files {
|
|
||||||
MAME_DIR.. "src/lib/formats/upd765_dsk.cpp",
|
|
||||||
MAME_DIR.. "src/lib/formats/upd765_dsk.h",
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
--------------------------------------------------
|
--------------------------------------------------
|
||||||
--
|
--
|
||||||
--@src/lib/formats/vdk_dsk.h,FORMATS["VDK_DSK"] = true
|
--@src/lib/formats/vdk_dsk.h,FORMATS["VDK_DSK"] = true
|
||||||
|
@ -850,7 +850,6 @@ FORMATS["AMI_DSK"] = true
|
|||||||
FORMATS["SC3000_BIT"] = true
|
FORMATS["SC3000_BIT"] = true
|
||||||
FORMATS["WD177X_DSK"] = true
|
FORMATS["WD177X_DSK"] = true
|
||||||
FORMATS["NASLITE_DSK"] = true
|
FORMATS["NASLITE_DSK"] = true
|
||||||
FORMATS["UPD765_DSK"] = true
|
|
||||||
FORMATS["BASICDSK"] = true
|
FORMATS["BASICDSK"] = true
|
||||||
FORMATS["IBMXDF_DSK"] = true
|
FORMATS["IBMXDF_DSK"] = true
|
||||||
|
|
||||||
|
@ -1139,7 +1139,6 @@ FORMATS["TVC_DSK"] = true
|
|||||||
FORMATS["TZX_CAS"] = true
|
FORMATS["TZX_CAS"] = true
|
||||||
FORMATS["UEF_CAS"] = true
|
FORMATS["UEF_CAS"] = true
|
||||||
FORMATS["UNIFLEX_DSK"] = true
|
FORMATS["UNIFLEX_DSK"] = true
|
||||||
FORMATS["UPD765_DSK"] = true
|
|
||||||
FORMATS["VDK_DSK"] = true
|
FORMATS["VDK_DSK"] = true
|
||||||
FORMATS["VECTOR06_DSK"] = true
|
FORMATS["VECTOR06_DSK"] = true
|
||||||
FORMATS["VG5K_CAS"] = true
|
FORMATS["VG5K_CAS"] = true
|
||||||
|
@ -12,133 +12,6 @@
|
|||||||
#include <cassert>
|
#include <cassert>
|
||||||
|
|
||||||
#include "formats/pc_dsk.h"
|
#include "formats/pc_dsk.h"
|
||||||
#include "formats/basicdsk.h"
|
|
||||||
|
|
||||||
struct pc_disk_sizes
|
|
||||||
{
|
|
||||||
uint32_t image_size;
|
|
||||||
int sectors;
|
|
||||||
int heads;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static const struct pc_disk_sizes disk_sizes[] =
|
|
||||||
{
|
|
||||||
{ 8*1*40*512, 8, 1}, /* 5 1/4 inch double density single sided */
|
|
||||||
{ 8*2*40*512, 8, 2}, /* 5 1/4 inch double density */
|
|
||||||
{ 9*1*40*512, 9, 1}, /* 5 1/4 inch double density single sided */
|
|
||||||
{ 9*2*40*512, 9, 2}, /* 5 1/4 inch double density */
|
|
||||||
{10*2*40*512, 10, 2}, /* 5 1/4 inch double density single sided */
|
|
||||||
{ 9*2*80*512, 9, 2}, /* 80 tracks 5 1/4 inch drives rare in PCs */
|
|
||||||
{ 9*2*80*512, 9, 2}, /* 3 1/2 inch double density */
|
|
||||||
{15*2*80*512, 15, 2}, /* 5 1/4 inch high density (or japanese 3 1/2 inch high density) */
|
|
||||||
{18*2*80*512, 18, 2}, /* 3 1/2 inch high density */
|
|
||||||
{21*2*80*512, 21, 2}, /* 3 1/2 inch high density DMF */
|
|
||||||
{36*2*80*512, 36, 2} /* 3 1/2 inch enhanced density */
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static floperr_t pc_dsk_compute_geometry(floppy_image_legacy *floppy, struct basicdsk_geometry *geometry)
|
|
||||||
{
|
|
||||||
int i;
|
|
||||||
uint64_t size;
|
|
||||||
|
|
||||||
memset(geometry, 0, sizeof(*geometry));
|
|
||||||
size = floppy_image_size(floppy);
|
|
||||||
|
|
||||||
for (i = 0; i < std::size(disk_sizes); i++)
|
|
||||||
{
|
|
||||||
if (disk_sizes[i].image_size == size)
|
|
||||||
{
|
|
||||||
geometry->sectors = disk_sizes[i].sectors;
|
|
||||||
geometry->heads = disk_sizes[i].heads;
|
|
||||||
geometry->sector_length = 512;
|
|
||||||
geometry->first_sector_id = 1;
|
|
||||||
geometry->tracks = (int) (size / disk_sizes[i].sectors / disk_sizes[i].heads / geometry->sector_length);
|
|
||||||
return FLOPPY_ERROR_SUCCESS;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (size >= 0x1a)
|
|
||||||
{
|
|
||||||
/*
|
|
||||||
* get info from boot sector.
|
|
||||||
* not correct on all disks
|
|
||||||
*/
|
|
||||||
uint8_t scl, spt, heads;
|
|
||||||
floppy_image_read(floppy, &scl, 0x0c, 1);
|
|
||||||
floppy_image_read(floppy, &spt, 0x18, 1);
|
|
||||||
floppy_image_read(floppy, &heads, 0x1A, 1);
|
|
||||||
|
|
||||||
if (size == ((uint64_t) scl) * spt * heads * 0x200)
|
|
||||||
{
|
|
||||||
geometry->sectors = spt;
|
|
||||||
geometry->heads = heads;
|
|
||||||
geometry->sector_length = 512;
|
|
||||||
geometry->first_sector_id = 1;
|
|
||||||
geometry->tracks = scl;
|
|
||||||
return FLOPPY_ERROR_SUCCESS;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return FLOPPY_ERROR_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static FLOPPY_IDENTIFY(pc_dsk_identify)
|
|
||||||
{
|
|
||||||
floperr_t err;
|
|
||||||
struct basicdsk_geometry geometry;
|
|
||||||
|
|
||||||
err = pc_dsk_compute_geometry(floppy, &geometry);
|
|
||||||
if (err)
|
|
||||||
return err;
|
|
||||||
|
|
||||||
*vote = geometry.heads ? 100 : 0;
|
|
||||||
return FLOPPY_ERROR_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static FLOPPY_CONSTRUCT(pc_dsk_construct)
|
|
||||||
{
|
|
||||||
floperr_t err;
|
|
||||||
struct basicdsk_geometry geometry;
|
|
||||||
|
|
||||||
if (params)
|
|
||||||
{
|
|
||||||
/* create */
|
|
||||||
memset(&geometry, 0, sizeof(geometry));
|
|
||||||
geometry.heads = params->lookup_int(PARAM_HEADS);
|
|
||||||
geometry.tracks = params->lookup_int(PARAM_TRACKS);
|
|
||||||
geometry.sectors = params->lookup_int(PARAM_SECTORS);
|
|
||||||
geometry.first_sector_id = 1;
|
|
||||||
geometry.sector_length = 512;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
/* open */
|
|
||||||
err = pc_dsk_compute_geometry(floppy, &geometry);
|
|
||||||
if (err)
|
|
||||||
return err;
|
|
||||||
}
|
|
||||||
|
|
||||||
return basicdsk_construct(floppy, &geometry);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* ----------------------------------------------------------------------- */
|
|
||||||
|
|
||||||
LEGACY_FLOPPY_OPTIONS_START( pc )
|
|
||||||
LEGACY_FLOPPY_OPTION( pc_dsk, "dsk,ima,img,ufi,360", "PC floppy disk image", pc_dsk_identify, pc_dsk_construct, nullptr,
|
|
||||||
HEADS([1]-2)
|
|
||||||
TRACKS(40/[80])
|
|
||||||
SECTORS(8/[9]/10/15/18/36))
|
|
||||||
LEGACY_FLOPPY_OPTIONS_END
|
|
||||||
|
|
||||||
pc_format::pc_format() : upd765_format(formats)
|
pc_format::pc_format() : upd765_format(formats)
|
||||||
{
|
{
|
||||||
|
@ -15,11 +15,6 @@
|
|||||||
#include "flopimg.h"
|
#include "flopimg.h"
|
||||||
#include "upd765_dsk.h"
|
#include "upd765_dsk.h"
|
||||||
|
|
||||||
/**************************************************************************/
|
|
||||||
|
|
||||||
LEGACY_FLOPPY_OPTIONS_EXTERN(pc);
|
|
||||||
|
|
||||||
|
|
||||||
class pc_format : public upd765_format
|
class pc_format : public upd765_format
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
Loading…
Reference in New Issue
Block a user