diff options
| author | 2013-08-07 21:15:15 +0000 | |
|---|---|---|
| committer | 2013-08-07 21:15:15 +0000 | |
| commit | 6f47f6617f7555526b6c4e4758192ff683f64c2d (patch) | |
| tree | 8801419260d6c03f956ba8ff49f33b8df3f2fc78 /src/lib | |
| parent | 075a5d6dba866b79124530a5203fa1a88e697b3f (diff) | |
Added raw formats for PC-98
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/formats/pc98_dsk.c | 87 | ||||
| -rw-r--r-- | src/lib/formats/pc98_dsk.h | 33 | ||||
| -rw-r--r-- | src/lib/lib.mak | 1 |
3 files changed, 121 insertions, 0 deletions
diff --git a/src/lib/formats/pc98_dsk.c b/src/lib/formats/pc98_dsk.c new file mode 100644 index 00000000000..1f4352bf455 --- /dev/null +++ b/src/lib/formats/pc98_dsk.c @@ -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>; diff --git a/src/lib/formats/pc98_dsk.h b/src/lib/formats/pc98_dsk.h new file mode 100644 index 00000000000..50fe38676a6 --- /dev/null +++ b/src/lib/formats/pc98_dsk.h @@ -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 */ diff --git a/src/lib/lib.mak b/src/lib/lib.mak index a5317f61494..38e23f6e66e 100644 --- a/src/lib/lib.mak +++ b/src/lib/lib.mak @@ -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 \ |
