summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/formats/bbc_dsk.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/formats/bbc_dsk.c')
-rw-r--r--src/lib/formats/bbc_dsk.c53
1 files changed, 53 insertions, 0 deletions
diff --git a/src/lib/formats/bbc_dsk.c b/src/lib/formats/bbc_dsk.c
new file mode 100644
index 00000000000..dfa78c0bfd8
--- /dev/null
+++ b/src/lib/formats/bbc_dsk.c
@@ -0,0 +1,53 @@
+// license:GPL-2.0+
+// copyright-holders:Dirk Best
+/***************************************************************************
+
+ BBC Micro
+
+ Disk image format
+
+***************************************************************************/
+
+#include "bbc_dsk.h"
+
+bbc_format::bbc_format() : wd177x_format(formats)
+{
+}
+
+const char *bbc_format::name() const
+{
+ return "bbc";
+}
+
+const char *bbc_format::description() const
+{
+ return "BBC Micro disk image";
+}
+
+const char *bbc_format::extensions() const
+{
+ return "bbc,img,ssd,dsd";
+}
+
+const bbc_format::format bbc_format::formats[] =
+{
+ { // 100k single sided single density
+ floppy_image::FF_525, floppy_image::SSSD, floppy_image::FM,
+ 4000, 10, 40, 1, 256, {}, 0, {}, 16, 11, 19
+ },
+ { // 200k double sided single density
+ floppy_image::FF_525, floppy_image::DSSD, floppy_image::FM,
+ 4000, 10, 40, 2, 256, {}, 0, {}, 16, 11, 19
+ },
+ { // 200k single sided double density
+ floppy_image::FF_525, floppy_image::SSQD, floppy_image::FM,
+ 4000, 10, 80, 1, 256, {}, 0, {}, 16, 11, 19
+ },
+ { // 400k double sided double density
+ floppy_image::FF_525, floppy_image::DSQD, floppy_image::FM,
+ 4000, 10, 80, 2, 256, {}, 0, {}, 16, 11, 19
+ },
+ {}
+};
+
+const floppy_format_type FLOPPY_BBC_FORMAT = &floppy_image_format_creator<bbc_format>;