summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/formats/bbc_dsk.c
blob: dfa78c0bfd85de8c9cd008e172b84559e97e2294 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
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>;