mirror of
https://github.com/holub/mame
synced 2025-06-06 21:03:47 +03:00
get rid of even more redundant code (nw)
This commit is contained in:
parent
8bc07fe7bd
commit
490cca687c
@ -33,6 +33,15 @@ lc89510_temp_device::lc89510_temp_device(const machine_config &mconfig, const ch
|
|||||||
nNeoCDIRQVector = 0;
|
nNeoCDIRQVector = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
enum CDEmuStatusValue { idle = 0, reading, playing, paused, seeking, fastforward, fastreverse };
|
||||||
|
CDEmuStatusValue CDEmuStatus;
|
||||||
|
|
||||||
|
static inline CDEmuStatusValue CDEmuGetStatus()
|
||||||
|
{
|
||||||
|
// printf("CDEmuGetStatus\n");
|
||||||
|
return CDEmuStatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void lc89510_temp_device::set_CDC_Do_DMA(device_t &device,segacd_dma_delegate new_segacd_dma_callback)
|
void lc89510_temp_device::set_CDC_Do_DMA(device_t &device,segacd_dma_delegate new_segacd_dma_callback)
|
||||||
{
|
{
|
||||||
@ -164,6 +173,12 @@ void lc89510_temp_device::CDD_Stop(running_machine &machine)
|
|||||||
CDD_STATUS = 0x0000;
|
CDD_STATUS = 0x0000;
|
||||||
SET_CDD_DATA_MODE
|
SET_CDD_DATA_MODE
|
||||||
cdda_stop_audio( m_cdda ); //stop any pending CD-DA
|
cdda_stop_audio( m_cdda ); //stop any pending CD-DA
|
||||||
|
|
||||||
|
//neocd
|
||||||
|
NeoCDAssyStatus = 0x0E;
|
||||||
|
bNeoCDLoadSector = false;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -325,6 +340,12 @@ void lc89510_temp_device::CDD_Play(running_machine &machine)
|
|||||||
if(!(CURRENT_TRACK_IS_DATA))
|
if(!(CURRENT_TRACK_IS_DATA))
|
||||||
cdda_start_audio( m_cdda, SCD_CURLBA, end_msf - SCD_CURLBA );
|
cdda_start_audio( m_cdda, SCD_CURLBA, end_msf - SCD_CURLBA );
|
||||||
SET_CDC_READ
|
SET_CDC_READ
|
||||||
|
|
||||||
|
// neocd
|
||||||
|
CDEmuStatus = seeking;
|
||||||
|
NeoCDAssyStatus = 1;
|
||||||
|
bNeoCDLoadSector = true;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -353,6 +374,12 @@ void lc89510_temp_device::CDD_Pause(running_machine &machine)
|
|||||||
//segacd.current_frame = cdda_get_audio_lba( machine.device( "cdda" ) );
|
//segacd.current_frame = cdda_get_audio_lba( machine.device( "cdda" ) );
|
||||||
//if(!(CURRENT_TRACK_IS_DATA))
|
//if(!(CURRENT_TRACK_IS_DATA))
|
||||||
cdda_pause_audio( m_cdda, 1 );
|
cdda_pause_audio( m_cdda, 1 );
|
||||||
|
|
||||||
|
|
||||||
|
NeoCDAssyStatus = 4;
|
||||||
|
bNeoCDLoadSector = false;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void lc89510_temp_device::CDD_Resume(running_machine &machine)
|
void lc89510_temp_device::CDD_Resume(running_machine &machine)
|
||||||
@ -367,6 +394,9 @@ void lc89510_temp_device::CDD_Resume(running_machine &machine)
|
|||||||
SET_CDC_READ
|
SET_CDC_READ
|
||||||
//if(!(CURRENT_TRACK_IS_DATA))
|
//if(!(CURRENT_TRACK_IS_DATA))
|
||||||
cdda_pause_audio( m_cdda, 0 );
|
cdda_pause_audio( m_cdda, 0 );
|
||||||
|
|
||||||
|
NeoCDAssyStatus = 1;
|
||||||
|
bNeoCDLoadSector = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -411,6 +441,10 @@ void lc89510_temp_device::CDD_Default(void)
|
|||||||
{
|
{
|
||||||
CLEAR_CDD_RESULT
|
CLEAR_CDD_RESULT
|
||||||
CDD_STATUS = SCD_STATUS;
|
CDD_STATUS = SCD_STATUS;
|
||||||
|
|
||||||
|
|
||||||
|
NeoCDAssyStatus = 9;
|
||||||
|
bNeoCDLoadSector = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -454,20 +488,6 @@ void lc89510_temp_device::lc89510_Reset(void)
|
|||||||
CDC_REG0 = CDC_REG1 = SCD_STATUS_CDC = CDD_DONE = 0;
|
CDC_REG0 = CDC_REG1 = SCD_STATUS_CDC = CDD_DONE = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void lc89510_temp_device::CDC_End_Transfer(running_machine& machine)
|
|
||||||
{
|
|
||||||
STOP_CDC_DMA
|
|
||||||
CDC_REG0 |= 0x8000;
|
|
||||||
CDC_REG0 &= ~0x4000;
|
|
||||||
LC8951RegistersR[REG_R_IFSTAT] |= 0x08;
|
|
||||||
|
|
||||||
if (LC8951RegistersW[REG_W_IFCTRL] & 0x40)
|
|
||||||
{
|
|
||||||
LC8951RegistersR[REG_R_IFSTAT] &= ~0x40;
|
|
||||||
CHECK_SCD_LV5_INTERRUPT
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void lc89510_temp_device::CDC_Do_DMA(running_machine& machine, int rate)
|
void lc89510_temp_device::CDC_Do_DMA(running_machine& machine, int rate)
|
||||||
{
|
{
|
||||||
@ -717,17 +737,17 @@ static const char *const CDD_import_cmdnames[] =
|
|||||||
"Handle TOC", // 2
|
"Handle TOC", // 2
|
||||||
"Play", // 3
|
"Play", // 3
|
||||||
"Seek", // 4
|
"Seek", // 4
|
||||||
"<undefined>", // 5
|
"<undefined> (5)", // 5
|
||||||
"Pause", // 6
|
"Pause", // 6
|
||||||
"Resume", // 7
|
"Resume", // 7
|
||||||
"FF", // 8
|
"FF", // 8
|
||||||
"RWD", // 9
|
"RWD", // 9
|
||||||
"INIT", // A
|
"INIT", // A
|
||||||
"<undefined>", // B
|
"<undefined> (b)", // B
|
||||||
"Close Tray", // C
|
"Close Tray", // C
|
||||||
"Open Tray", // D
|
"Open Tray", // D
|
||||||
"<undefined>", // E
|
"<undefined> (e)", // E
|
||||||
"<undefined>" // F
|
"<undefined> (f)" // F
|
||||||
};
|
};
|
||||||
|
|
||||||
void lc89510_temp_device::CDD_Import(running_machine& machine)
|
void lc89510_temp_device::CDD_Import(running_machine& machine)
|
||||||
@ -1015,39 +1035,10 @@ machine_config_constructor lc89510_temp_device::device_mconfig_additions() const
|
|||||||
/* Neo CD */
|
/* Neo CD */
|
||||||
|
|
||||||
|
|
||||||
enum CDEmuStatusValue { idle = 0, reading, playing, paused, seeking, fastforward, fastreverse };
|
|
||||||
CDEmuStatusValue CDEmuStatus;
|
|
||||||
|
|
||||||
static inline CDEmuStatusValue CDEmuGetStatus()
|
|
||||||
{
|
|
||||||
// printf("CDEmuGetStatus\n");
|
|
||||||
return CDEmuStatus;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static void CDEmuStartRead()
|
|
||||||
{
|
|
||||||
printf("CDEmuStartRead\n");
|
|
||||||
CDEmuStatus = seeking;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void CDEmuPause()
|
|
||||||
{
|
|
||||||
printf("CDEmuPause\n");
|
|
||||||
CDEmuStatus = paused;
|
|
||||||
}
|
|
||||||
|
|
||||||
static INT32 CDEmuStop()
|
|
||||||
{
|
|
||||||
printf("CDEmuStop\n");
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
static INT32 CDEmuPlay(UINT8 M, UINT8 S, UINT8 F)
|
|
||||||
{
|
|
||||||
printf("CDEmuPlay\n");
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
INT32 lc89510_temp_device::CDEmuLoadSector(INT32 LBA, char* pBuffer)
|
INT32 lc89510_temp_device::CDEmuLoadSector(INT32 LBA, char* pBuffer)
|
||||||
{
|
{
|
||||||
@ -1085,97 +1076,8 @@ void lc89510_temp_device::NeoCDCommsReset()
|
|||||||
|
|
||||||
void lc89510_temp_device::NeoCDProcessCommand()
|
void lc89510_temp_device::NeoCDProcessCommand()
|
||||||
{
|
{
|
||||||
memset(CDD_RX, 0, sizeof(CDD_RX));
|
CDD_Import(machine());
|
||||||
|
CDD_Export();
|
||||||
if (CDD_TX[0]) {
|
|
||||||
CDD_RX[1] = 15;
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (CDD_TX[0]) {
|
|
||||||
case CMD_STATUS: // CDD_GetStatus();
|
|
||||||
break;
|
|
||||||
case CMD_STOPALL: // CDD_Stop(machine);
|
|
||||||
// //bprintf(PRINT_ERROR, _T(" CD comms received command %i\n"), CDD_TX[0]);
|
|
||||||
CDEmuStop();
|
|
||||||
|
|
||||||
NeoCDAssyStatus = 0x0E;
|
|
||||||
bNeoCDLoadSector = false;
|
|
||||||
break;
|
|
||||||
case CMD_GETTOC: // CDD_Handle_TOC_Commands();
|
|
||||||
// //bprintf(PRINT_ERROR, _T(" CD comms received command %i\n"), CDD_TX[0]);
|
|
||||||
|
|
||||||
CDD_Handle_TOC_Commands();
|
|
||||||
CDD_Export();
|
|
||||||
break;
|
|
||||||
|
|
||||||
|
|
||||||
case CMD_READ: { // CDD_Play(machine);
|
|
||||||
|
|
||||||
if (LC8951RegistersW[REG_W_CTRL0] & 4) {
|
|
||||||
|
|
||||||
if (CDEmuGetStatus() == playing) {
|
|
||||||
//bprintf(PRINT_ERROR, _T("*** Switching CD mode to CD-ROM while in audio mode!(PC: 0x%06X)\n"), SekGetPC(-1));
|
|
||||||
}
|
|
||||||
|
|
||||||
SCD_CURLBA = CDD_TX[2] * (10 * CD_FRAMES_MINUTE);
|
|
||||||
SCD_CURLBA += CDD_TX[3] * ( 1 * CD_FRAMES_MINUTE);
|
|
||||||
SCD_CURLBA += CDD_TX[4] * (10 * CD_FRAMES_SECOND);
|
|
||||||
SCD_CURLBA += CDD_TX[5] * ( 1 * CD_FRAMES_SECOND);
|
|
||||||
SCD_CURLBA += CDD_TX[6] * (10 );
|
|
||||||
SCD_CURLBA += CDD_TX[7] * ( 1 );
|
|
||||||
|
|
||||||
SCD_CURLBA -= CD_FRAMES_PREGAP;
|
|
||||||
|
|
||||||
CDEmuStartRead();
|
|
||||||
// LC8951RegistersR[REG_R_IFSTAT] |= 0x20;
|
|
||||||
} else {
|
|
||||||
|
|
||||||
if (CDEmuGetStatus() == reading) {
|
|
||||||
//bprintf(PRINT_ERROR, _T("*** Switching CD mode to audio while in CD-ROM mode!(PC: 0x%06X)\n"), SekGetPC(-1));
|
|
||||||
}
|
|
||||||
|
|
||||||
CDEmuPlay((CDD_TX[2] * 10) + CDD_TX[3], (CDD_TX[4] * 10) + CDD_TX[5], (CDD_TX[6] * 10) + CDD_TX[7]);
|
|
||||||
}
|
|
||||||
|
|
||||||
NeoCDAssyStatus = 1;
|
|
||||||
bNeoCDLoadSector = true;
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case CMD_SEEK: // CDD_Seek();
|
|
||||||
// //bprintf(PRINT_ERROR, _T(" CD comms received command %i\n"), CDD_TX[0]);
|
|
||||||
CDEmuPause();
|
|
||||||
break;
|
|
||||||
case 5:
|
|
||||||
// //bprintf(PRINT_ERROR, _T(" CD comms received command %i\n"), CDD_TX[0]);
|
|
||||||
// NeoCDAssyStatus = 9;
|
|
||||||
// bNeoCDLoadSector = false;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case CMD_STOP: // CDD_Pause(machine);
|
|
||||||
// //bprintf(PRINT_ERROR, _T(" CD comms received command %i\n"), CDD_TX[0]);
|
|
||||||
NeoCDAssyStatus = 4;
|
|
||||||
bNeoCDLoadSector = false;
|
|
||||||
break;
|
|
||||||
case CMD_RESUME: // CDD_Resume(machine);
|
|
||||||
// //bprintf(PRINT_ERROR, _T(" CD comms received command %i\n"), CDD_TX[0]);
|
|
||||||
NeoCDAssyStatus = 1;
|
|
||||||
bNeoCDLoadSector = true;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case CMD_FF: // CDD_FF(machine);
|
|
||||||
case CMD_RW: // CDD_RW(machine);
|
|
||||||
case CMD_INIT: // CDD_Init();
|
|
||||||
case 11:
|
|
||||||
case CMD_CLOSE: // CDD_Close();
|
|
||||||
case CMD_OPEN: // CDD_Open();
|
|
||||||
case 14:
|
|
||||||
case 15:
|
|
||||||
// //bprintf(PRINT_ERROR, _T(" CD comms received command %i\n"), CDD_TX[0]);
|
|
||||||
NeoCDAssyStatus = 9;
|
|
||||||
bNeoCDLoadSector = false;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void lc89510_temp_device::NeoCDCommsControl(UINT8 clock, UINT8 send)
|
void lc89510_temp_device::NeoCDCommsControl(UINT8 clock, UINT8 send)
|
||||||
@ -1316,6 +1218,20 @@ void lc89510_temp_device::LC8915EndTransfer()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void lc89510_temp_device::CDC_End_Transfer(running_machine& machine)
|
||||||
|
{
|
||||||
|
STOP_CDC_DMA
|
||||||
|
CDC_REG0 |= 0x8000;
|
||||||
|
CDC_REG0 &= ~0x4000;
|
||||||
|
LC8951RegistersR[REG_R_IFSTAT] |= 0x08;
|
||||||
|
|
||||||
|
if (LC8951RegistersW[REG_W_IFCTRL] & 0x40)
|
||||||
|
{
|
||||||
|
LC8951RegistersR[REG_R_IFSTAT] &= ~0x40;
|
||||||
|
CHECK_SCD_LV5_INTERRUPT
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user