Add support for BIN/CUE images. Patch from bit, BIN/CUE handling from DOSBox.

This commit is contained in:
SarahW 2017-05-29 13:56:19 +01:00
commit a2f44b8ea7
21 changed files with 1363 additions and 423 deletions

View file

@ -6,7 +6,7 @@
#include "ali1429.h"
#include "cdrom-ioctl.h"
#include "cdrom-iso.h"
#include "cdrom-image.h"
#include "disc.h"
#include "disc_img.h"
#include "mem.h"
@ -281,13 +281,13 @@ void initpc(int argc, char *argv[])
else
#endif
{
if (cdrom_drive == CDROM_ISO)
if (cdrom_drive == CDROM_IMAGE)
{
FILE *ff = fopen(iso_path, "rb");
FILE *ff = fopen(image_path, "rb");
if (ff)
{
fclose(ff);
iso_open(iso_path);
image_open(image_path);
}
else
{
@ -318,9 +318,9 @@ void initpc(int argc, char *argv[])
else
#endif
{
if (cdrom_drive == CDROM_ISO)
if (cdrom_drive == CDROM_IMAGE)
{
iso_reset();
image_reset();
}
else
{
@ -398,15 +398,31 @@ void resetpchard()
// output=3;
image_close();
#if __unix
if (cdrom_drive == -1)
cdrom_null_reset();
else
#endif
{
if (cdrom_drive == CDROM_ISO)
if (cdrom_drive == CDROM_IMAGE)
{
iso_reset();
FILE *ff = fopen(image_path, "rb");
if (ff)
{
fclose(ff);
image_open(image_path);
}
else
{
#if __unix
cdrom_drive = -1;
cdrom_null_open(cdrom_drive);
#else
cdrom_drive = 0;
ioctl_set_drive(cdrom_drive);
#endif
}
}
else
{
@ -655,8 +671,8 @@ void loadconfig(char *fn)
cdrom_channel = config_get_int(CFG_MACHINE, NULL, "cdrom_channel", 2);
p = (char *)config_get_string(CFG_MACHINE, NULL, "cdrom_path", "");
if (p) strcpy(iso_path, p);
else strcpy(iso_path, "");
if (p) strcpy(image_path, p);
else strcpy(image_path, "");
hdc[0].spt = config_get_int(CFG_MACHINE, NULL, "hdc_sectors", 0);
hdc[0].hpc = config_get_int(CFG_MACHINE, NULL, "hdc_heads", 0);
@ -764,7 +780,7 @@ void saveconfig(char *fn)
config_set_int(CFG_MACHINE, NULL, "cdrom_drive", cdrom_drive);
config_set_int(CFG_MACHINE, NULL, "cdrom_enabled", cdrom_enabled);
config_set_int(CFG_MACHINE, NULL, "cdrom_channel", cdrom_channel);
config_set_string(CFG_MACHINE, NULL, "cdrom_path", iso_path);
config_set_string(CFG_MACHINE, NULL, "cdrom_path", image_path);
config_set_int(CFG_MACHINE, NULL, "hdc_sectors", hdc[0].spt);
config_set_int(CFG_MACHINE, NULL, "hdc_heads", hdc[0].hpc);