Changed all the CD-ROM files to the new agreed upon coding style.
This commit is contained in:
@@ -8,8 +8,6 @@
|
|||||||
*
|
*
|
||||||
* Generic CD-ROM drive core.
|
* Generic CD-ROM drive core.
|
||||||
*
|
*
|
||||||
*
|
|
||||||
*
|
|
||||||
* Author: Miran Grca, <mgrca8@gmail.com>
|
* Author: Miran Grca, <mgrca8@gmail.com>
|
||||||
*
|
*
|
||||||
* Copyright 2018-2021 Miran Grca.
|
* Copyright 2018-2021 Miran Grca.
|
||||||
@@ -263,8 +261,7 @@ cdrom_audio_callback(cdrom_t *dev, int16_t *output, int len)
|
|||||||
|
|
||||||
while (dev->cd_buflen < len) {
|
while (dev->cd_buflen < len) {
|
||||||
if (dev->seek_pos < dev->cd_end) {
|
if (dev->seek_pos < dev->cd_end) {
|
||||||
if (dev->ops->read_sector(dev, CD_READ_AUDIO,
|
if (dev->ops->read_sector(dev, CD_READ_AUDIO, (uint8_t *) &(dev->cd_buffer[dev->cd_buflen]),
|
||||||
(uint8_t *) &(dev->cd_buffer[dev->cd_buflen]),
|
|
||||||
dev->seek_pos)) {
|
dev->seek_pos)) {
|
||||||
cdrom_log("CD-ROM %i: Read LBA %08X successful\n", dev->id, dev->seek_pos);
|
cdrom_log("CD-ROM %i: Read LBA %08X successful\n", dev->id, dev->seek_pos);
|
||||||
dev->seek_pos++;
|
dev->seek_pos++;
|
||||||
@@ -272,16 +269,14 @@ cdrom_audio_callback(cdrom_t *dev, int16_t *output, int len)
|
|||||||
ret = 1;
|
ret = 1;
|
||||||
} else {
|
} else {
|
||||||
cdrom_log("CD-ROM %i: Read LBA %08X failed\n", dev->id, dev->seek_pos);
|
cdrom_log("CD-ROM %i: Read LBA %08X failed\n", dev->id, dev->seek_pos);
|
||||||
memset(&(dev->cd_buffer[dev->cd_buflen]),
|
memset(&(dev->cd_buffer[dev->cd_buflen]), 0x00, (BUF_SIZE - dev->cd_buflen) * 2);
|
||||||
0x00, (BUF_SIZE - dev->cd_buflen) * 2);
|
|
||||||
dev->cd_status = CD_STATUS_STOPPED;
|
dev->cd_status = CD_STATUS_STOPPED;
|
||||||
dev->cd_buflen = len;
|
dev->cd_buflen = len;
|
||||||
ret = 0;
|
ret = 0;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
cdrom_log("CD-ROM %i: Playing completed\n", dev->id);
|
cdrom_log("CD-ROM %i: Playing completed\n", dev->id);
|
||||||
memset(&dev->cd_buffer[dev->cd_buflen],
|
memset(&dev->cd_buffer[dev->cd_buflen], 0x00, (BUF_SIZE - dev->cd_buflen) * 2);
|
||||||
0x00, (BUF_SIZE - dev->cd_buflen) * 2);
|
|
||||||
dev->cd_status = CD_STATUS_PLAYING_COMPLETED;
|
dev->cd_status = CD_STATUS_PLAYING_COMPLETED;
|
||||||
dev->cd_buflen = len;
|
dev->cd_buflen = len;
|
||||||
ret = 0;
|
ret = 0;
|
||||||
@@ -359,6 +354,7 @@ cdrom_audio_play(cdrom_t *dev, uint32_t pos, uint32_t len, int ismsf)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
uint8_t
|
uint8_t
|
||||||
cdrom_audio_track_search(cdrom_t *dev, uint32_t pos, int type, uint8_t playbit)
|
cdrom_audio_track_search(cdrom_t *dev, uint32_t pos, int type, uint8_t playbit)
|
||||||
{
|
{
|
||||||
@@ -391,6 +387,7 @@ cdrom_audio_track_search(cdrom_t *dev, uint32_t pos, int type, uint8_t playbit)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
uint8_t
|
uint8_t
|
||||||
cdrom_toshiba_audio_play(cdrom_t *dev, uint32_t pos, int type)
|
cdrom_toshiba_audio_play(cdrom_t *dev, uint32_t pos, int type)
|
||||||
{
|
{
|
||||||
@@ -426,6 +423,7 @@ cdrom_toshiba_audio_play(cdrom_t *dev, uint32_t pos, int type)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
cdrom_audio_pause_resume(cdrom_t *dev, uint8_t resume)
|
cdrom_audio_pause_resume(cdrom_t *dev, uint8_t resume)
|
||||||
{
|
{
|
||||||
@@ -440,6 +438,7 @@ cdrom_get_current_subchannel(cdrom_t *dev, uint8_t *b, int msf)
|
|||||||
uint8_t ret;
|
uint8_t ret;
|
||||||
subchannel_t subc;
|
subchannel_t subc;
|
||||||
int pos = 1;
|
int pos = 1;
|
||||||
|
uint32_t dat;
|
||||||
|
|
||||||
dev->ops->get_subchannel(dev, dev->seek_pos, &subc);
|
dev->ops->get_subchannel(dev, dev->seek_pos, &subc);
|
||||||
cdrom_log("CD-ROM %i: Returned subchannel at %02i:%02i.%02i\n", subc.abs_m, subc.abs_s, subc.abs_f);
|
cdrom_log("CD-ROM %i: Returned subchannel at %02i:%02i.%02i\n", subc.abs_m, subc.abs_s, subc.abs_f);
|
||||||
@@ -474,7 +473,7 @@ cdrom_get_current_subchannel(cdrom_t *dev, uint8_t *b, int msf)
|
|||||||
b[pos + 3] = subc.rel_f;
|
b[pos + 3] = subc.rel_f;
|
||||||
pos += 4;
|
pos += 4;
|
||||||
} else {
|
} else {
|
||||||
uint32_t dat = MSFtoLBA(subc.abs_m, subc.abs_s, subc.abs_f) - 150;
|
dat = MSFtoLBA(subc.abs_m, subc.abs_s, subc.abs_f) - 150;
|
||||||
b[pos++] = (dat >> 24) & 0xff;
|
b[pos++] = (dat >> 24) & 0xff;
|
||||||
b[pos++] = (dat >> 16) & 0xff;
|
b[pos++] = (dat >> 16) & 0xff;
|
||||||
b[pos++] = (dat >> 8) & 0xff;
|
b[pos++] = (dat >> 8) & 0xff;
|
||||||
@@ -489,6 +488,7 @@ cdrom_get_current_subchannel(cdrom_t *dev, uint8_t *b, int msf)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
uint8_t
|
uint8_t
|
||||||
cdrom_get_current_subcodeq_playstatus(cdrom_t *dev, uint8_t *b)
|
cdrom_get_current_subcodeq_playstatus(cdrom_t *dev, uint8_t *b)
|
||||||
{
|
{
|
||||||
@@ -504,8 +504,7 @@ cdrom_get_current_subcodeq_playstatus(cdrom_t *dev, uint8_t *b)
|
|||||||
ret = 0x02;
|
ret = 0x02;
|
||||||
else
|
else
|
||||||
ret = 0x01;
|
ret = 0x01;
|
||||||
}
|
} else
|
||||||
else
|
|
||||||
ret = 0x03;
|
ret = 0x03;
|
||||||
|
|
||||||
b[0] = subc.attr;
|
b[0] = subc.attr;
|
||||||
@@ -760,6 +759,7 @@ cdrom_read_disc_info_toc(cdrom_t *dev, unsigned char *b, unsigned char track, in
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
track_type_is_valid(uint8_t id, int type, int flags, int audio, int mode2)
|
track_type_is_valid(uint8_t id, int type, int flags, int audio, int mode2)
|
||||||
{
|
{
|
||||||
@@ -854,22 +854,26 @@ read_mode1(cdrom_t *dev, int cdrom_sector_flags, uint32_t lba, uint32_t msf, int
|
|||||||
|
|
||||||
cdrom_sector_size = 0;
|
cdrom_sector_size = 0;
|
||||||
|
|
||||||
if (cdrom_sector_flags & 0x80) { /* Sync */
|
if (cdrom_sector_flags & 0x80) {
|
||||||
|
/* Sync */
|
||||||
cdrom_log("CD-ROM %i: [Mode 1] Sync\n", dev->id);
|
cdrom_log("CD-ROM %i: [Mode 1] Sync\n", dev->id);
|
||||||
memcpy(b, raw_buffer, 12);
|
memcpy(b, raw_buffer, 12);
|
||||||
cdrom_sector_size += 12;
|
cdrom_sector_size += 12;
|
||||||
b += 12;
|
b += 12;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cdrom_sector_flags & 0x20) { /* Header */
|
if (cdrom_sector_flags & 0x20) {
|
||||||
|
/* Header */
|
||||||
cdrom_log("CD-ROM %i: [Mode 1] Header\n", dev->id);
|
cdrom_log("CD-ROM %i: [Mode 1] Header\n", dev->id);
|
||||||
memcpy(b, raw_buffer + 12, 4);
|
memcpy(b, raw_buffer + 12, 4);
|
||||||
cdrom_sector_size += 4;
|
cdrom_sector_size += 4;
|
||||||
b += 4;
|
b += 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cdrom_sector_flags & 0x40) { /* Sub-header */
|
if (cdrom_sector_flags & 0x40) {
|
||||||
if (!(cdrom_sector_flags & 0x10)) { /* No user data */
|
/* Sub-header */
|
||||||
|
if (!(cdrom_sector_flags & 0x10)) {
|
||||||
|
/* No user data */
|
||||||
cdrom_log("CD-ROM %i: [Mode 1] Sub-header\n", dev->id);
|
cdrom_log("CD-ROM %i: [Mode 1] Sub-header\n", dev->id);
|
||||||
memcpy(b, raw_buffer + 16, 8);
|
memcpy(b, raw_buffer + 16, 8);
|
||||||
cdrom_sector_size += 8;
|
cdrom_sector_size += 8;
|
||||||
@@ -877,14 +881,16 @@ read_mode1(cdrom_t *dev, int cdrom_sector_flags, uint32_t lba, uint32_t msf, int
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cdrom_sector_flags & 0x10) { /* User data */
|
if (cdrom_sector_flags & 0x10) {
|
||||||
|
/* User data */
|
||||||
cdrom_log("CD-ROM %i: [Mode 1] User data\n", dev->id);
|
cdrom_log("CD-ROM %i: [Mode 1] User data\n", dev->id);
|
||||||
memcpy(b, raw_buffer + 16, 2048);
|
memcpy(b, raw_buffer + 16, 2048);
|
||||||
cdrom_sector_size += 2048;
|
cdrom_sector_size += 2048;
|
||||||
b += 2048;
|
b += 2048;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cdrom_sector_flags & 0x08) { /* EDC/ECC */
|
if (cdrom_sector_flags & 0x08) {
|
||||||
|
/* EDC/ECC */
|
||||||
cdrom_log("CD-ROM %i: [Mode 1] EDC/ECC\n", dev->id);
|
cdrom_log("CD-ROM %i: [Mode 1] EDC/ECC\n", dev->id);
|
||||||
memcpy(b, raw_buffer + 2064, 288);
|
memcpy(b, raw_buffer + 2064, 288);
|
||||||
cdrom_sector_size += 288;
|
cdrom_sector_size += 288;
|
||||||
@@ -903,14 +909,16 @@ read_mode2_non_xa(cdrom_t *dev, int cdrom_sector_flags, uint32_t lba, uint32_t m
|
|||||||
|
|
||||||
cdrom_sector_size = 0;
|
cdrom_sector_size = 0;
|
||||||
|
|
||||||
if (cdrom_sector_flags & 0x80) { /* Sync */
|
if (cdrom_sector_flags & 0x80) {
|
||||||
|
/* Sync */
|
||||||
cdrom_log("CD-ROM %i: [Mode 2 Formless] Sync\n", dev->id);
|
cdrom_log("CD-ROM %i: [Mode 2 Formless] Sync\n", dev->id);
|
||||||
memcpy(b, raw_buffer, 12);
|
memcpy(b, raw_buffer, 12);
|
||||||
cdrom_sector_size += 12;
|
cdrom_sector_size += 12;
|
||||||
b += 12;
|
b += 12;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cdrom_sector_flags & 0x20) { /* Header */
|
if (cdrom_sector_flags & 0x20) {
|
||||||
|
/* Header */
|
||||||
cdrom_log("CD-ROM %i: [Mode 2 Formless] Header\n", dev->id);
|
cdrom_log("CD-ROM %i: [Mode 2 Formless] Header\n", dev->id);
|
||||||
memcpy(b, raw_buffer + 12, 4);
|
memcpy(b, raw_buffer + 12, 4);
|
||||||
cdrom_sector_size += 4;
|
cdrom_sector_size += 4;
|
||||||
@@ -918,14 +926,16 @@ read_mode2_non_xa(cdrom_t *dev, int cdrom_sector_flags, uint32_t lba, uint32_t m
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Mode 1 sector, expected type is 1 type. */
|
/* Mode 1 sector, expected type is 1 type. */
|
||||||
if (cdrom_sector_flags & 0x40) { /* Sub-header */
|
if (cdrom_sector_flags & 0x40) {
|
||||||
|
/* Sub-header */
|
||||||
cdrom_log("CD-ROM %i: [Mode 2 Formless] Sub-header\n", dev->id);
|
cdrom_log("CD-ROM %i: [Mode 2 Formless] Sub-header\n", dev->id);
|
||||||
memcpy(b, raw_buffer + 16, 8);
|
memcpy(b, raw_buffer + 16, 8);
|
||||||
cdrom_sector_size += 8;
|
cdrom_sector_size += 8;
|
||||||
b += 8;
|
b += 8;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cdrom_sector_flags & 0x10) { /* User data */
|
if (cdrom_sector_flags & 0x10) {
|
||||||
|
/* User data */
|
||||||
cdrom_log("CD-ROM %i: [Mode 2 Formless] User data\n", dev->id);
|
cdrom_log("CD-ROM %i: [Mode 2 Formless] User data\n", dev->id);
|
||||||
memcpy(b, raw_buffer + 24, 2336);
|
memcpy(b, raw_buffer + 24, 2336);
|
||||||
cdrom_sector_size += 2336;
|
cdrom_sector_size += 2336;
|
||||||
@@ -944,35 +954,40 @@ read_mode2_xa_form1(cdrom_t *dev, int cdrom_sector_flags, uint32_t lba, uint32_t
|
|||||||
|
|
||||||
cdrom_sector_size = 0;
|
cdrom_sector_size = 0;
|
||||||
|
|
||||||
if (cdrom_sector_flags & 0x80) { /* Sync */
|
if (cdrom_sector_flags & 0x80) {
|
||||||
|
/* Sync */
|
||||||
cdrom_log("CD-ROM %i: [XA Mode 2 Form 1] Sync\n", dev->id);
|
cdrom_log("CD-ROM %i: [XA Mode 2 Form 1] Sync\n", dev->id);
|
||||||
memcpy(b, raw_buffer, 12);
|
memcpy(b, raw_buffer, 12);
|
||||||
cdrom_sector_size += 12;
|
cdrom_sector_size += 12;
|
||||||
b += 12;
|
b += 12;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cdrom_sector_flags & 0x20) { /* Header */
|
if (cdrom_sector_flags & 0x20) {
|
||||||
|
/* Header */
|
||||||
cdrom_log("CD-ROM %i: [XA Mode 2 Form 1] Header\n", dev->id);
|
cdrom_log("CD-ROM %i: [XA Mode 2 Form 1] Header\n", dev->id);
|
||||||
memcpy(b, raw_buffer + 12, 4);
|
memcpy(b, raw_buffer + 12, 4);
|
||||||
cdrom_sector_size += 4;
|
cdrom_sector_size += 4;
|
||||||
b += 4;
|
b += 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cdrom_sector_flags & 0x40) { /* Sub-header */
|
if (cdrom_sector_flags & 0x40) {
|
||||||
|
/* Sub-header */
|
||||||
cdrom_log("CD-ROM %i: [XA Mode 2 Form 1] Sub-header\n", dev->id);
|
cdrom_log("CD-ROM %i: [XA Mode 2 Form 1] Sub-header\n", dev->id);
|
||||||
memcpy(b, raw_buffer + 16, 8);
|
memcpy(b, raw_buffer + 16, 8);
|
||||||
cdrom_sector_size += 8;
|
cdrom_sector_size += 8;
|
||||||
b += 8;
|
b += 8;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cdrom_sector_flags & 0x10) { /* User data */
|
if (cdrom_sector_flags & 0x10) {
|
||||||
|
/* User data */
|
||||||
cdrom_log("CD-ROM %i: [XA Mode 2 Form 1] User data\n", dev->id);
|
cdrom_log("CD-ROM %i: [XA Mode 2 Form 1] User data\n", dev->id);
|
||||||
memcpy(b, raw_buffer + 24, 2048);
|
memcpy(b, raw_buffer + 24, 2048);
|
||||||
cdrom_sector_size += 2048;
|
cdrom_sector_size += 2048;
|
||||||
b += 2048;
|
b += 2048;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cdrom_sector_flags & 0x08) { /* EDC/ECC */
|
if (cdrom_sector_flags & 0x08) {
|
||||||
|
/* EDC/ECC */
|
||||||
cdrom_log("CD-ROM %i: [XA Mode 2 Form 1] EDC/ECC\n", dev->id);
|
cdrom_log("CD-ROM %i: [XA Mode 2 Form 1] EDC/ECC\n", dev->id);
|
||||||
memcpy(b, raw_buffer + 2072, 280);
|
memcpy(b, raw_buffer + 2072, 280);
|
||||||
cdrom_sector_size += 280;
|
cdrom_sector_size += 280;
|
||||||
@@ -991,28 +1006,32 @@ read_mode2_xa_form2(cdrom_t *dev, int cdrom_sector_flags, uint32_t lba, uint32_t
|
|||||||
|
|
||||||
cdrom_sector_size = 0;
|
cdrom_sector_size = 0;
|
||||||
|
|
||||||
if (cdrom_sector_flags & 0x80) { /* Sync */
|
if (cdrom_sector_flags & 0x80) {
|
||||||
|
/* Sync */
|
||||||
cdrom_log("CD-ROM %i: [XA Mode 2 Form 2] Sync\n", dev->id);
|
cdrom_log("CD-ROM %i: [XA Mode 2 Form 2] Sync\n", dev->id);
|
||||||
memcpy(b, raw_buffer, 12);
|
memcpy(b, raw_buffer, 12);
|
||||||
cdrom_sector_size += 12;
|
cdrom_sector_size += 12;
|
||||||
b += 12;
|
b += 12;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cdrom_sector_flags & 0x20) { /* Header */
|
if (cdrom_sector_flags & 0x20) {
|
||||||
|
/* Header */
|
||||||
cdrom_log("CD-ROM %i: [XA Mode 2 Form 2] Header\n", dev->id);
|
cdrom_log("CD-ROM %i: [XA Mode 2 Form 2] Header\n", dev->id);
|
||||||
memcpy(b, raw_buffer + 12, 4);
|
memcpy(b, raw_buffer + 12, 4);
|
||||||
cdrom_sector_size += 4;
|
cdrom_sector_size += 4;
|
||||||
b += 4;
|
b += 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cdrom_sector_flags & 0x40) { /* Sub-header */
|
if (cdrom_sector_flags & 0x40) {
|
||||||
|
/* Sub-header */
|
||||||
cdrom_log("CD-ROM %i: [XA Mode 2 Form 2] Sub-header\n", dev->id);
|
cdrom_log("CD-ROM %i: [XA Mode 2 Form 2] Sub-header\n", dev->id);
|
||||||
memcpy(b, raw_buffer + 16, 8);
|
memcpy(b, raw_buffer + 16, 8);
|
||||||
cdrom_sector_size += 8;
|
cdrom_sector_size += 8;
|
||||||
b += 8;
|
b += 8;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cdrom_sector_flags & 0x10) { /* User data */
|
if (cdrom_sector_flags & 0x10) {
|
||||||
|
/* User data */
|
||||||
cdrom_log("CD-ROM %i: [XA Mode 2 Form 2] User data\n", dev->id);
|
cdrom_log("CD-ROM %i: [XA Mode 2 Form 2] User data\n", dev->id);
|
||||||
memcpy(b, raw_buffer + 24, 2328);
|
memcpy(b, raw_buffer + 24, 2328);
|
||||||
cdrom_sector_size += 2328;
|
cdrom_sector_size += 2328;
|
||||||
@@ -1057,7 +1076,8 @@ cdrom_readsector_raw(cdrom_t *dev, uint8_t *buffer, int sector, int ismsf, int c
|
|||||||
memset(raw_buffer, 0, 2448);
|
memset(raw_buffer, 0, 2448);
|
||||||
memset(extra_buffer, 0, 296);
|
memset(extra_buffer, 0, 296);
|
||||||
|
|
||||||
if ((cdrom_sector_flags & 0xf8) == 0x08) { /* 0x08 is an illegal mode */
|
if ((cdrom_sector_flags & 0xf8) == 0x08) {
|
||||||
|
/* 0x08 is an illegal mode */
|
||||||
cdrom_log("CD-ROM %i: [Mode 1] 0x08 is an illegal mode\n", dev->id);
|
cdrom_log("CD-ROM %i: [Mode 1] 0x08 is an illegal mode\n", dev->id);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,8 +8,6 @@
|
|||||||
*
|
*
|
||||||
* CD-ROM image support.
|
* CD-ROM image support.
|
||||||
*
|
*
|
||||||
*
|
|
||||||
*
|
|
||||||
* Author: RichardG867,
|
* Author: RichardG867,
|
||||||
* Miran Grca, <mgrca8@gmail.com>
|
* Miran Grca, <mgrca8@gmail.com>
|
||||||
* bit,
|
* bit,
|
||||||
@@ -231,7 +229,7 @@ image_exit(cdrom_t *dev)
|
|||||||
{
|
{
|
||||||
cd_img_t *img = (cd_img_t *)dev->image;
|
cd_img_t *img = (cd_img_t *)dev->image;
|
||||||
|
|
||||||
cdrom_image_log("CDROM: image_exit(%s)\n", dev->image_path);
|
cdrom_image_log("CDROM: image_exit(%s)\n", dev->image_path);
|
||||||
dev->cd_status = CD_STATUS_EMPTY;
|
dev->cd_status = CD_STATUS_EMPTY;
|
||||||
|
|
||||||
if (img) {
|
if (img) {
|
||||||
|
|||||||
@@ -9,8 +9,6 @@
|
|||||||
* CD-ROM image file handling module, translated to C from
|
* CD-ROM image file handling module, translated to C from
|
||||||
* cdrom_dosbox.cpp.
|
* cdrom_dosbox.cpp.
|
||||||
*
|
*
|
||||||
*
|
|
||||||
*
|
|
||||||
* Authors: Miran Grca, <mgrca8@gmail.com>
|
* Authors: Miran Grca, <mgrca8@gmail.com>
|
||||||
* Fred N. van Kempen, <decwiz@yahoo.com>
|
* Fred N. van Kempen, <decwiz@yahoo.com>
|
||||||
* The DOSBox Team, <unknown>
|
* The DOSBox Team, <unknown>
|
||||||
@@ -422,7 +420,8 @@ cdi_read_sector(cd_img_t *cdi, uint8_t *buffer, int raw, uint32_t sector)
|
|||||||
buffer[12] = CDROM_BCD(m & 0xff);
|
buffer[12] = CDROM_BCD(m & 0xff);
|
||||||
buffer[13] = CDROM_BCD(s & 0xff);
|
buffer[13] = CDROM_BCD(s & 0xff);
|
||||||
buffer[14] = CDROM_BCD(f & 0xff);
|
buffer[14] = CDROM_BCD(f & 0xff);
|
||||||
buffer[15] = trk->mode2 ? 2 : 1; /* Data, should reflect the actual sector type. */
|
/* Data, should reflect the actual sector type. */
|
||||||
|
buffer[15] = trk->mode2 ? 2 : 1;
|
||||||
return 1;
|
return 1;
|
||||||
} else if (!raw && track_is_raw)
|
} else if (!raw && track_is_raw)
|
||||||
return trk->file->read(trk->file, buffer, seek + offset, length);
|
return trk->file->read(trk->file, buffer, seek + offset, length);
|
||||||
@@ -641,8 +640,7 @@ cdi_cue_get_buffer(char *str, char **line, int up)
|
|||||||
quote ^= 1;
|
quote ^= 1;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ' ':
|
case ' ': case '\t':
|
||||||
case '\t':
|
|
||||||
if (space)
|
if (space)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -710,10 +708,12 @@ cdi_cue_get_frame(uint64_t *frames, char **line)
|
|||||||
int success;
|
int success;
|
||||||
|
|
||||||
success = cdi_cue_get_buffer(temp, line, 0);
|
success = cdi_cue_get_buffer(temp, line, 0);
|
||||||
if (! success) return 0;
|
if (!success)
|
||||||
|
return 0;
|
||||||
|
|
||||||
success = sscanf(temp, "%d:%d:%d", &min, &sec, &fr) == 3;
|
success = sscanf(temp, "%d:%d:%d", &min, &sec, &fr) == 3;
|
||||||
if (! success) return 0;
|
if (!success)
|
||||||
|
return 0;
|
||||||
|
|
||||||
*frames = MSF_TO_FRAMES(min, sec, fr);
|
*frames = MSF_TO_FRAMES(min, sec, fr);
|
||||||
|
|
||||||
@@ -728,11 +728,13 @@ cdi_cue_get_flags(track_t *cur, char **line)
|
|||||||
int success;
|
int success;
|
||||||
|
|
||||||
success = cdi_cue_get_buffer(temp, line, 0);
|
success = cdi_cue_get_buffer(temp, line, 0);
|
||||||
if (! success) return 0;
|
if (!success)
|
||||||
|
return 0;
|
||||||
|
|
||||||
memset(temp2, 0x00, sizeof(temp2));
|
memset(temp2, 0x00, sizeof(temp2));
|
||||||
success = sscanf(temp, "%s", temp2) == 1;
|
success = sscanf(temp, "%s", temp2) == 1;
|
||||||
if (! success) return 0;
|
if (!success)
|
||||||
|
return 0;
|
||||||
|
|
||||||
cur->pre = (strstr(temp2, "PRE") != NULL);
|
cur->pre = (strstr(temp2, "PRE") != NULL);
|
||||||
|
|
||||||
@@ -785,7 +787,8 @@ cdi_add_track(cd_img_t *cdi, track_t *cur, uint64_t *shift, uint64_t prestart, u
|
|||||||
temp = prev->file->get_length(prev->file) - ((uint64_t) prev->skip);
|
temp = prev->file->get_length(prev->file) - ((uint64_t) prev->skip);
|
||||||
prev->length = temp / ((uint64_t) prev->sector_size);
|
prev->length = temp / ((uint64_t) prev->sector_size);
|
||||||
if ((temp % prev->sector_size) != 0)
|
if ((temp % prev->sector_size) != 0)
|
||||||
prev->length++; /* Padding. */
|
prev->length++;
|
||||||
|
/* Padding. */
|
||||||
|
|
||||||
cur->start += prev->start + prev->length + cur_pregap;
|
cur->start += prev->start + prev->length + cur_pregap;
|
||||||
cur->skip = skip * cur->sector_size;
|
cur->skip = skip * cur->sector_size;
|
||||||
@@ -851,9 +854,11 @@ cdi_load_cue(cd_img_t *cdi, const char *cuefile)
|
|||||||
for (i = 0; i < 2; i++) {
|
for (i = 0; i < 2; i++) {
|
||||||
if (strlen(buf) > 0) {
|
if (strlen(buf) > 0) {
|
||||||
if (buf[strlen(buf) - 1] == '\n')
|
if (buf[strlen(buf) - 1] == '\n')
|
||||||
buf[strlen(buf) - 1] = '\0'; /* nuke trailing newline */
|
buf[strlen(buf) - 1] = '\0';
|
||||||
|
/* nuke trailing newline */
|
||||||
else if (buf[strlen(buf) - 1] == '\r')
|
else if (buf[strlen(buf) - 1] == '\r')
|
||||||
buf[strlen(buf) - 1] = '\0'; /* nuke trailing newline */
|
buf[strlen(buf) - 1] = '\0';
|
||||||
|
/* nuke trailing newline */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -915,12 +920,14 @@ cdi_load_cue(cd_img_t *cdi, const char *cuefile)
|
|||||||
trk.attr = DATA_TRACK;
|
trk.attr = DATA_TRACK;
|
||||||
trk.mode2 = 1;
|
trk.mode2 = 1;
|
||||||
} else if (!strcmp(type, "MODE2/2352")) {
|
} else if (!strcmp(type, "MODE2/2352")) {
|
||||||
trk.form = 1; /* Assume this is XA Mode 2 Form 1. */
|
/* Assume this is XA Mode 2 Form 1. */
|
||||||
|
trk.form = 1;
|
||||||
trk.sector_size = RAW_SECTOR_SIZE;
|
trk.sector_size = RAW_SECTOR_SIZE;
|
||||||
trk.attr = DATA_TRACK;
|
trk.attr = DATA_TRACK;
|
||||||
trk.mode2 = 1;
|
trk.mode2 = 1;
|
||||||
} else if (!strcmp(type, "MODE2/2448")) {
|
} else if (!strcmp(type, "MODE2/2448")) {
|
||||||
trk.form = 1; /* Assume this is XA Mode 2 Form 1. */
|
/* Assume this is XA Mode 2 Form 1. */
|
||||||
|
trk.form = 1;
|
||||||
trk.sector_size = 2448;
|
trk.sector_size = 2448;
|
||||||
trk.attr = DATA_TRACK;
|
trk.attr = DATA_TRACK;
|
||||||
trk.mode2 = 1;
|
trk.mode2 = 1;
|
||||||
@@ -954,7 +961,7 @@ cdi_load_cue(cd_img_t *cdi, const char *cuefile)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
/* ignore other indices */
|
/* Ignore other indices. */
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
} else if (!strcmp(command, "FILE")) {
|
} else if (!strcmp(command, "FILE")) {
|
||||||
|
|||||||
@@ -8,8 +8,6 @@
|
|||||||
*
|
*
|
||||||
* Generic CD-ROM drive core header.
|
* Generic CD-ROM drive core header.
|
||||||
*
|
*
|
||||||
*
|
|
||||||
*
|
|
||||||
* Author: Miran Grca, <mgrca8@gmail.com>
|
* Author: Miran Grca, <mgrca8@gmail.com>
|
||||||
*
|
*
|
||||||
* Copyright 2016-2019 Miran Grca.
|
* Copyright 2016-2019 Miran Grca.
|
||||||
|
|||||||
@@ -1,7 +1,20 @@
|
|||||||
/* Copyright holders: RichardG867, Tenshi
|
/*
|
||||||
see COPYING for more details
|
* 86Box A hypervisor and IBM PC system emulator that specializes in
|
||||||
*/
|
* running old operating systems and software designed for IBM
|
||||||
|
* PC systems and compatibles from 1981 through fairly recent
|
||||||
|
* system designs based on the PCI bus.
|
||||||
|
*
|
||||||
|
* This file is part of the 86Box distribution.
|
||||||
|
*
|
||||||
|
* CD-ROM image file handling module header, translated to C
|
||||||
|
* from cdrom_dosbox.h.
|
||||||
|
*
|
||||||
|
* Authors: RichardG,
|
||||||
|
* Miran Grca, <mgrca8@gmail.com>
|
||||||
|
*
|
||||||
|
* Copyright 2016-2022 RichardG.
|
||||||
|
* Copyright 2016-2022 Miran Grca.
|
||||||
|
*/
|
||||||
#ifndef CDROM_IMAGE_H
|
#ifndef CDROM_IMAGE_H
|
||||||
# define CDROM_IMAGE_H
|
# define CDROM_IMAGE_H
|
||||||
|
|
||||||
|
|||||||
@@ -9,8 +9,6 @@
|
|||||||
* CD-ROM image file handling module header , translated to C
|
* CD-ROM image file handling module header , translated to C
|
||||||
* from cdrom_dosbox.h.
|
* from cdrom_dosbox.h.
|
||||||
*
|
*
|
||||||
*
|
|
||||||
*
|
|
||||||
* Authors: Miran Grca, <mgrca8@gmail.com>
|
* Authors: Miran Grca, <mgrca8@gmail.com>
|
||||||
* Fred N. van Kempen, <decwiz@yahoo.com>
|
* Fred N. van Kempen, <decwiz@yahoo.com>
|
||||||
* The DOSBox Team, <unknown>
|
* The DOSBox Team, <unknown>
|
||||||
@@ -19,7 +17,6 @@
|
|||||||
* Copyright 2017-2020 Fred N. van Kempen.
|
* Copyright 2017-2020 Fred N. van Kempen.
|
||||||
* Copyright 2002-2020 The DOSBox Team.
|
* Copyright 2002-2020 The DOSBox Team.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef CDROM_IMAGE_BACKEND_H
|
#ifndef CDROM_IMAGE_BACKEND_H
|
||||||
# define CDROM_IMAGE_BACKEND_H
|
# define CDROM_IMAGE_BACKEND_H
|
||||||
|
|
||||||
@@ -93,5 +90,4 @@ extern int cdi_has_data_track(cd_img_t *cdi);
|
|||||||
extern int cdi_has_audio_track(cd_img_t *cdi);
|
extern int cdi_has_audio_track(cd_img_t *cdi);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endif /*CDROM_IMAGE_BACKEND_H*/
|
#endif /*CDROM_IMAGE_BACKEND_H*/
|
||||||
|
|||||||
Reference in New Issue
Block a user