skeleton atari 400/800 floppy list. (1 entry)

note, currently only supports .atr format due to image.filetype() not returning anything useful when softlist is used (thanks to micko for advice on various things)

(no credit wanted, this is just to address the 'where is jumpman' thing that was posted on MW and give a softlist entry for regtests on this code)
This commit is contained in:
David Haywood 2013-08-30 08:30:13 +00:00
parent 9c8f5a5872
commit ed33e5adf9
3 changed files with 39 additions and 2 deletions

1
.gitattributes vendored
View File

@ -19,6 +19,7 @@ hash/a5200.hsi svneol=native#text/plain
hash/a5200.xml svneol=native#text/xml
hash/a7800.xml svneol=native#text/xml
hash/a800.xml svneol=native#text/xml
hash/a800_flop.xml svneol=native#text/plain
hash/abc1600.xml svneol=native#text/xml
hash/abc80.xml svneol=native#text/xml
hash/abc800.xml svneol=native#text/xml

28
hash/a800_flop.xml Normal file
View File

@ -0,0 +1,28 @@
<?xml version="1.0"?>
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
<!--
Atari 400 / 800 floppies
(skeleton list)
note: many 'original' floppy images are in .atx format, whereas cracked / unprotected ones are .atr format
.atx is unsupported, although apparently has been reverse engineered (insert info link here)
There are also images in .xex format?
-->
<softwarelist name="a800_flop" description="Atari 400 / 800 floppy disks">
<software name="jumpman">
<description>Jumpman</description>
<year>1983</year>
<publisher>Epyx</publisher>
<part name="flop1" interface="floppy_5_25">
<dataarea name="flop" size="92176">
<rom name="jumpman.atr" size="92176" crc="290a9e56" sha1="96c411a65cfd0b45ac68603021793701d27244b9" offset="0" />
</dataarea>
</part>
</software>
</softwarelist>

View File

@ -171,15 +171,22 @@ static void atari_load_proc(device_image_interface &image)
}
size = image.fread(fdc->drv[id].image, MAXSIZE);
if( size <= 0 )
{
fdc->drv[id].image = NULL;
return;
}
/* re allocate the buffer; we don't want to be too lazy ;) */
//fdc->drv[id].image = (UINT8*)image.image_realloc(fdc->drv[id].image, size);
ext = image.filetype();
// hack alert, this means we can only load ATR via the softlist at the moment, image.filetype reutrns NULL :/
if (!image.software_entry() == NULL) ext="ATR";
/* no extension: assume XFD format (no header) */
if (!ext)
{
@ -220,6 +227,7 @@ static void atari_load_proc(device_image_interface &image)
fdc->drv[id].header_skip = 0;
}
switch (fdc->drv[id].type)
{
/* XFD or unknown format: find a matching size from the table */
@ -243,7 +251,6 @@ static void atari_load_proc(device_image_interface &image)
case FORMAT_ATR:
{
int s;
fdc->drv[id].bseclen = 128;
/* get sectors from ATR header */
s = (size - 16) / 128;
@ -781,12 +788,13 @@ static const floppy_interface atari_floppy_interface =
DEVCB_NULL,
FLOPPY_STANDARD_5_25_DSHD,
LEGACY_FLOPPY_OPTIONS_NAME(atari_only),
NULL,
"floppy_5_25",
NULL
};
static MACHINE_CONFIG_FRAGMENT( atari_fdc )
MCFG_LEGACY_FLOPPY_4_DRIVES_ADD(atari_floppy_interface)
MCFG_SOFTWARE_LIST_ADD("flop_list","a800_flop")
MACHINE_CONFIG_END
device_t *atari_floppy_get_device_child(device_t *device,int drive)