summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Curt Coder <curtcoder@mail.com>2012-11-05 19:44:19 +0000
committer Curt Coder <curtcoder@mail.com>2012-11-05 19:44:19 +0000
commitc93840e5851c554088cf6924d1b097b00274bc91 (patch)
tree05d35b941ef473539eb1520791472cbdaebadba7
parentb74ce41ef2f6abb93a6dcac92fa4f636b914e43c (diff)
(MESS) adam: Added modern disk formats. (nw)
-rw-r--r--.gitattributes2
-rw-r--r--src/lib/formats/adam_dsk.c89
-rw-r--r--src/lib/formats/adam_dsk.h28
-rw-r--r--src/lib/lib.mak1
4 files changed, 120 insertions, 0 deletions
diff --git a/.gitattributes b/.gitattributes
index 038bf224fb6..c739332fa4e 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -1711,6 +1711,8 @@ src/lib/formats/ace_tap.c svneol=native#text/plain
src/lib/formats/ace_tap.h svneol=native#text/plain
src/lib/formats/adam_cas.c svneol=native#text/plain
src/lib/formats/adam_cas.h svneol=native#text/plain
+src/lib/formats/adam_dsk.c svneol=native#text/plain
+src/lib/formats/adam_dsk.h svneol=native#text/plain
src/lib/formats/ami_dsk.c svneol=native#text/plain
src/lib/formats/ami_dsk.h svneol=native#text/plain
src/lib/formats/ap2_dsk.c svneol=native#text/plain
diff --git a/src/lib/formats/adam_dsk.c b/src/lib/formats/adam_dsk.c
new file mode 100644
index 00000000000..6ff417997a6
--- /dev/null
+++ b/src/lib/formats/adam_dsk.c
@@ -0,0 +1,89 @@
+/***************************************************************************
+
+ Copyright Olivier Galibert
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are
+ met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+ * Neither the name 'MAME' nor the names of its contributors may be
+ used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY AARON GILES ''AS IS'' AND ANY EXPRESS OR
+ IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL AARON GILES BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+ IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+
+****************************************************************************/
+
+/*********************************************************************
+
+ formats/adam_dsk.c
+
+ Coleco Adam disk image format
+
+*********************************************************************/
+
+#include "emu.h"
+#include "formats/adam_dsk.h"
+
+adam_format::adam_format() : wd177x_format(formats)
+{
+}
+
+const char *adam_format::name() const
+{
+ return "adam";
+}
+
+const char *adam_format::description() const
+{
+ return "Coleco Adam disk image";
+}
+
+const char *adam_format::extensions() const
+{
+ return "dsk";
+}
+
+// Unverified gap sizes
+const adam_format::format adam_format::formats[] = {
+ { /* 160K 5 1/4 inch double density single sided */
+ floppy_image::FF_525, floppy_image::SSDD,
+ 2000, 8, 40, 1, 512, {}, 1, {}, 544, 22, 84
+ },
+ { /* 320K 5 1/4 inch double density */
+ floppy_image::FF_525, floppy_image::DSDD,
+ 2000, 8, 40, 2, 512, {}, 1, {}, 544, 22, 84
+ },
+ { /* 640K 5 1/4 inch quad density */
+ floppy_image::FF_525, floppy_image::DSQD,
+ 2000, 8, 80, 2, 512, {}, 1, {}, 544, 22, 84
+ },
+ { /* 720K 3 1/2 inch double density */
+ floppy_image::FF_35, floppy_image::DSDD,
+ 2000, 9, 80, 2, 512, {}, 1, {}, 544, 22, 84
+ },
+ { /* 1440K 3 1/2 inch high density */
+ floppy_image::FF_35, floppy_image::DSHD,
+ 1000, 18, 80, 2, 512, {}, 1, {}, 544, 22, 84
+ },
+ {}
+};
+
+const floppy_format_type FLOPPY_ADAM_FORMAT = &floppy_image_format_creator<adam_format>;
diff --git a/src/lib/formats/adam_dsk.h b/src/lib/formats/adam_dsk.h
new file mode 100644
index 00000000000..88c312d62fc
--- /dev/null
+++ b/src/lib/formats/adam_dsk.h
@@ -0,0 +1,28 @@
+/*********************************************************************
+
+ formats/adam_dsk.h
+
+ Coleco Adam disk image format
+
+*********************************************************************/
+
+#ifndef ADAM_DSK_H_
+#define ADAM_DSK_H_
+
+#include "wd177x_dsk.h"
+
+class adam_format : public wd177x_format {
+public:
+ adam_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_ADAM_FORMAT;
+
+#endif
diff --git a/src/lib/lib.mak b/src/lib/lib.mak
index ea0f7da9ae9..5440d90f66f 100644
--- a/src/lib/lib.mak
+++ b/src/lib/lib.mak
@@ -96,6 +96,7 @@ FORMATSOBJS = \
$(LIBOBJ)/formats/a5105_dsk.o \
$(LIBOBJ)/formats/ace_tap.o \
$(LIBOBJ)/formats/adam_cas.o \
+ $(LIBOBJ)/formats/adam_dsk.o \
$(LIBOBJ)/formats/ami_dsk.o \
$(LIBOBJ)/formats/ap2_dsk.o \
$(LIBOBJ)/formats/apf_apt.o \