Added raw formats for PC-98

This commit is contained in:
Angelo Salese 2013-08-07 21:15:15 +00:00
parent 075a5d6dba
commit 6f47f6617f
6 changed files with 126 additions and 1 deletions

2
.gitattributes vendored
View File

@ -2101,6 +2101,8 @@ src/lib/formats/p6001_cas.c svneol=native#text/plain
src/lib/formats/p6001_cas.h svneol=native#text/plain
src/lib/formats/pasti_dsk.c svneol=native#text/plain
src/lib/formats/pasti_dsk.h svneol=native#text/plain
src/lib/formats/pc98_dsk.c svneol=native#text/plain
src/lib/formats/pc98_dsk.h svneol=native#text/plain
src/lib/formats/pc98fdi_dsk.c svneol=native#text/plain
src/lib/formats/pc98fdi_dsk.h svneol=native#text/plain
src/lib/formats/pc_dsk.c svneol=native#text/plain

View File

@ -9230,7 +9230,7 @@ How to load this?
<publisher>&lt;unknown&gt;</publisher>
<part name="flop1" interface="floppy_5_25">
<dataarea name="flop" size="1261568">
<rom name="ms-dos.fdi" size="1261568" crc="d5e70ca1" sha1="bc5fb43463849b66ded3a568d82d44252759eb80" offset="0" />
<rom name="ms-dos.dsk" size="1261568" crc="d5e70ca1" sha1="bc5fb43463849b66ded3a568d82d44252759eb80" offset="0" />
</dataarea>
</part>
<part name="flop2" interface="floppy_5_25">

View File

@ -0,0 +1,87 @@
/*********************************************************************
formats/pc98_dsk.c
PC-98 disk images
*********************************************************************/
#include <string.h>
#include "formats/pc98_dsk.h"
/* ----------------------------------------------------------------------- */
pc98_format::pc98_format() : upd765_format(formats)
{
}
const char *pc98_format::name() const
{
return "pc98";
}
const char *pc98_format::description() const
{
return "PC-98 floppy disk image";
}
const char *pc98_format::extensions() const
{
return "dsk,ima,img,ufi,360";
}
const pc98_format::format pc98_format::formats[] = {
{ /* 160K 5 1/4 inch double density single sided */
floppy_image::FF_525, floppy_image::SSDD, floppy_image::MFM,
2000, 8, 40, 1, 512, {}, 1, {}, 80, 50, 22, 80
},
{ /* 320K 5 1/4 inch double density */
floppy_image::FF_525, floppy_image::DSDD, floppy_image::MFM,
2000, 8, 40, 2, 512, {}, 1, {}, 80, 50, 22, 80
},
{ /* 180K 5 1/4 inch double density single sided */
floppy_image::FF_525, floppy_image::SSDD, floppy_image::MFM,
2000, 9, 40, 1, 512, {}, 1, {}, 80, 50, 22, 80
},
{ /* 360K 5 1/4 inch double density */
floppy_image::FF_525, floppy_image::DSDD, floppy_image::MFM,
2000, 9, 40, 2, 512, {}, 1, {}, 80, 50, 22, 80
},
{ /* 400K 5 1/4 inch double density - gaps unverified */
floppy_image::FF_525, floppy_image::DSDD, floppy_image::MFM,
2000, 10, 40, 2, 512, {}, 1, {}, 80, 50, 22, 80
},
{ /* 720K 5 1/4 inch quad density - gaps unverified */
floppy_image::FF_525, floppy_image::DSQD, floppy_image::MFM,
2000, 9, 80, 2, 512, {}, 1, {}, 80, 50, 22, 80
},
{ /* 1200K 5 1/4 inch high density */
floppy_image::FF_525, floppy_image::DSHD, floppy_image::MFM,
1200, 15, 40, 2, 512, {}, 1, {}, 80, 50, 22, 84
},
{ /* 720K 3 1/2 inch double density */
floppy_image::FF_35, floppy_image::DSDD, floppy_image::MFM,
2000, 9, 80, 2, 512, {}, 1, {}, 80, 50, 22, 80
},
{ /* 1200K 3 1/2 inch high density (japanese variant) - gaps unverified */
floppy_image::FF_35, floppy_image::DSHD, floppy_image::MFM,
1200, 15, 40, 2, 512, {}, 1, {}, 80, 50, 22, 84
},
{ /* 1440K 3 1/2 inch high density */
floppy_image::FF_35, floppy_image::DSHD, floppy_image::MFM,
1000, 18, 80, 2, 512, {}, 1, {}, 80, 50, 22, 108
},
{ /* 2880K 3 1/2 inch extended density - gaps unverified */
floppy_image::FF_35, floppy_image::DSED, floppy_image::MFM,
500, 36, 80, 2, 512, {}, 1, {}, 80, 50, 41, 80
},
{
floppy_image::FF_525, floppy_image::DSHD, floppy_image::MFM,
1200, 16, 77, 2, 512, {}, 1, {}, 80, 50, 22, 84
},
{}
};
const floppy_format_type FLOPPY_PC98_FORMAT = &floppy_image_format_creator<pc98_format>;

View File

@ -0,0 +1,33 @@
/*********************************************************************
formats/pc98_dsk.h
PC disk images
*********************************************************************/
#ifndef PC98_DSK_H
#define PC98_DSK_H
#include "flopimg.h"
#include "upd765_dsk.h"
/**************************************************************************/
class pc98_format : public upd765_format
{
public:
pc98_format();
virtual const char *name() const;
virtual const char *description() const;
virtual const char *extensions() const;
private:
static const format formats[];
};
extern const floppy_format_type FLOPPY_PC98_FORMAT;
#endif /* PC_DSK_H */

View File

@ -163,6 +163,7 @@ FORMATSOBJS = \
$(LIBOBJ)/formats/p6001_cas.o \
$(LIBOBJ)/formats/pasti_dsk.o \
$(LIBOBJ)/formats/pc_dsk.o \
$(LIBOBJ)/formats/pc98_dsk.o \
$(LIBOBJ)/formats/pc98fdi_dsk.o \
$(LIBOBJ)/formats/pmd_cas.o \
$(LIBOBJ)/formats/primoptp.o \

View File

@ -411,6 +411,7 @@ Keyboard TX commands:
#include "machine/ram.h"
#include "formats/pc98_dsk.h"
#include "formats/pc98fdi_dsk.h"
#include "machine/pc9801_26.h"
@ -3624,6 +3625,7 @@ INTERRUPT_GEN_MEMBER(pc9801_state::pc9801_vrtc_irq)
FLOPPY_FORMATS_MEMBER( pc9801_state::floppy_formats )
FLOPPY_PC98_FORMAT,
FLOPPY_PC98FDI_FORMAT
FLOPPY_FORMATS_END