summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Ivan Vangelista <mesgnet@yahoo.it>2018-01-09 19:48:03 +0100
committer Ivan Vangelista <mesgnet@yahoo.it>2018-01-09 19:48:03 +0100
commit30b8ce6a054f2b65f769d30543dffd599917c3bb (patch)
tree85e17c794689d3c4074b729b900ebbaa765a9d61
parent842fbca111609a2fd518206e358f5b7fb8f6a6a7 (diff)
twinkle.cpp: moved a couple of functions into driver class (nw)
-rw-r--r--src/mame/drivers/twinkle.cpp78
1 files changed, 41 insertions, 37 deletions
diff --git a/src/mame/drivers/twinkle.cpp b/src/mame/drivers/twinkle.cpp
index 85dbd059fea..a3b6674d8c2 100644
--- a/src/mame/drivers/twinkle.cpp
+++ b/src/mame/drivers/twinkle.cpp
@@ -164,7 +164,7 @@ Notes:
CN7 - 5 pin plug for connection and control of external DVD player for background video
CN11 - 15 pin DSUB connector
RCA - Yellow RCA connectors for video (input and/or output?) from external DVD player
- MC141685 - Motorola MC141685 low cost 3CH D/A convertor
+ MC141685 - Motorola MC141685 low cost 3CH D/A converter
AD817 - Analog Devices 18V high speed low power wide supply range amplifier
AD724JR - Analog Devices 6V 800mW 250MHz RGB to NTSC/PAL encoder
Bt812KPF - Conexant Systems Inc. Bt812KPF NTSC/PAL to RGB/YCrCb decoder / video codec (QFP160)
@@ -212,7 +212,7 @@ Notes:
CN4 - 40 pin flat cable connector for HDD data cable
CN5 - DC power input connector
CN7 - RCA left/right audio output
- SM5875 - Nippon Precision Circuits SM5875 2-channel D/A convertor (SSOP24)
+ SM5875 - Nippon Precision Circuits SM5875 2-channel D/A converter (SSOP24)
RF5C400 - Ricoh RF5C400 PCM 32Ch, 44.1 kHz Stereo, 3D Effect Spatializer, clock input 16.9344MHz [33.8688/2]
M65851 - Mitsubishi M65851 single chip karaoke sound processor IC (QFP80)
HY5117404- Hyundai Semiconductor HY5117404BJ-60 4M x 4-Bit CMOS EDO DRAM
@@ -254,30 +254,17 @@ class twinkle_state : public driver_device
public:
twinkle_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
+ m_maincpu(*this, "maincpu"),
+ m_audiocpu(*this, "audiocpu"),
m_am53cf96(*this, "am53cf96"),
m_ata(*this, "ata"),
m_waveram(*this, "rfsnd"),
m_spu_ata_dma(0),
m_spu_ata_dmarq(0),
- m_wave_bank(0),
- m_maincpu(*this, "maincpu"),
- m_audiocpu(*this, "audiocpu")
+ m_wave_bank(0)
{
}
- required_device<am53cf96_device> m_am53cf96;
- required_device<ata_interface_device> m_ata;
- required_shared_ptr<uint16_t> m_waveram;
-
- uint16_t m_spu_ctrl; // SPU board control register
- uint8_t m_spu_shared[0x400]; // SPU/PSX shared dual-ported RAM
- uint32_t m_spu_ata_dma;
- int m_spu_ata_dmarq;
- uint32_t m_wave_bank;
-
- int m_io_offset;
- int m_output_last[ 0x100 ];
- uint8_t m_sector_buffer[ 4096 ];
DECLARE_WRITE8_MEMBER(twinkle_io_w);
DECLARE_READ8_MEMBER(twinkle_io_r);
DECLARE_WRITE16_MEMBER(twinkle_output_w);
@@ -298,8 +285,25 @@ public:
DECLARE_READ16_MEMBER(unk_68k_r);
DECLARE_WRITE_LINE_MEMBER(spu_ata_irq);
DECLARE_WRITE_LINE_MEMBER(spu_ata_dmarq);
+ void scsi_dma_read( uint32_t *p_n_psxram, uint32_t n_address, int32_t n_size );
+ void scsi_dma_write( uint32_t *p_n_psxram, uint32_t n_address, int32_t n_size );
+
+private:
required_device<cpu_device> m_maincpu;
required_device<cpu_device> m_audiocpu;
+ required_device<am53cf96_device> m_am53cf96;
+ required_device<ata_interface_device> m_ata;
+ required_shared_ptr<uint16_t> m_waveram;
+
+ uint16_t m_spu_ctrl; // SPU board control register
+ uint8_t m_spu_shared[0x400]; // SPU/PSX shared dual-ported RAM
+ uint32_t m_spu_ata_dma;
+ int m_spu_ata_dmarq;
+ uint32_t m_wave_bank;
+
+ int m_io_offset;
+ int m_output_last[ 0x100 ];
+ uint8_t m_sector_buffer[ 4096 ];
int m_serial_shift;
int m_serial_bits;
@@ -929,16 +933,16 @@ ADDRESS_MAP_END
/* SCSI */
-static void scsi_dma_read( twinkle_state *state, uint32_t *p_n_psxram, uint32_t n_address, int32_t n_size )
+void twinkle_state::scsi_dma_read( uint32_t *p_n_psxram, uint32_t n_address, int32_t n_size )
{
int i;
int n_this;
while( n_size > 0 )
{
- if( n_size > sizeof( state->m_sector_buffer ) / 4 )
+ if( n_size > sizeof( m_sector_buffer ) / 4 )
{
- n_this = sizeof( state->m_sector_buffer ) / 4;
+ n_this = sizeof( m_sector_buffer ) / 4;
}
else
{
@@ -947,12 +951,12 @@ static void scsi_dma_read( twinkle_state *state, uint32_t *p_n_psxram, uint32_t
if( n_this < 2048 / 4 )
{
/* non-READ commands */
- state->m_am53cf96->dma_read_data( n_this * 4, state->m_sector_buffer );
+ m_am53cf96->dma_read_data( n_this * 4, m_sector_buffer );
}
else
{
/* assume normal 2048 byte data for now */
- state->m_am53cf96->dma_read_data( 2048, state->m_sector_buffer );
+ m_am53cf96->dma_read_data( 2048, m_sector_buffer );
n_this = 2048 / 4;
}
n_size -= n_this;
@@ -961,10 +965,10 @@ static void scsi_dma_read( twinkle_state *state, uint32_t *p_n_psxram, uint32_t
while( n_this > 0 )
{
p_n_psxram[ n_address / 4 ] =
- ( state->m_sector_buffer[ i + 0 ] << 0 ) |
- ( state->m_sector_buffer[ i + 1 ] << 8 ) |
- ( state->m_sector_buffer[ i + 2 ] << 16 ) |
- ( state->m_sector_buffer[ i + 3 ] << 24 );
+ ( m_sector_buffer[ i + 0 ] << 0 ) |
+ ( m_sector_buffer[ i + 1 ] << 8 ) |
+ ( m_sector_buffer[ i + 2 ] << 16 ) |
+ ( m_sector_buffer[ i + 3 ] << 24 );
n_address += 4;
i += 4;
n_this--;
@@ -972,16 +976,16 @@ static void scsi_dma_read( twinkle_state *state, uint32_t *p_n_psxram, uint32_t
}
}
-static void scsi_dma_write( twinkle_state *state, uint32_t *p_n_psxram, uint32_t n_address, int32_t n_size )
+void twinkle_state::scsi_dma_write( uint32_t *p_n_psxram, uint32_t n_address, int32_t n_size )
{
int i;
int n_this;
while( n_size > 0 )
{
- if( n_size > sizeof( state->m_sector_buffer ) / 4 )
+ if( n_size > sizeof( m_sector_buffer ) / 4 )
{
- n_this = sizeof( state->m_sector_buffer ) / 4;
+ n_this = sizeof( m_sector_buffer ) / 4;
}
else
{
@@ -992,16 +996,16 @@ static void scsi_dma_write( twinkle_state *state, uint32_t *p_n_psxram, uint32_t
i = 0;
while( n_this > 0 )
{
- state->m_sector_buffer[ i + 0 ] = ( p_n_psxram[ n_address / 4 ] >> 0 ) & 0xff;
- state->m_sector_buffer[ i + 1 ] = ( p_n_psxram[ n_address / 4 ] >> 8 ) & 0xff;
- state->m_sector_buffer[ i + 2 ] = ( p_n_psxram[ n_address / 4 ] >> 16 ) & 0xff;
- state->m_sector_buffer[ i + 3 ] = ( p_n_psxram[ n_address / 4 ] >> 24 ) & 0xff;
+ m_sector_buffer[ i + 0 ] = ( p_n_psxram[ n_address / 4 ] >> 0 ) & 0xff;
+ m_sector_buffer[ i + 1 ] = ( p_n_psxram[ n_address / 4 ] >> 8 ) & 0xff;
+ m_sector_buffer[ i + 2 ] = ( p_n_psxram[ n_address / 4 ] >> 16 ) & 0xff;
+ m_sector_buffer[ i + 3 ] = ( p_n_psxram[ n_address / 4 ] >> 24 ) & 0xff;
n_address += 4;
i += 4;
n_this--;
}
- state->m_am53cf96->dma_write_data( n_this * 4, state->m_sector_buffer );
+ m_am53cf96->dma_write_data( n_this * 4, m_sector_buffer );
}
}
@@ -1020,8 +1024,8 @@ static MACHINE_CONFIG_START( twinkle )
MCFG_RAM_MODIFY("maincpu:ram")
MCFG_RAM_DEFAULT_SIZE("4M")
- MCFG_PSX_DMA_CHANNEL_READ( "maincpu", 5, psxdma_device::read_delegate(&scsi_dma_read, (twinkle_state *) owner ) )
- MCFG_PSX_DMA_CHANNEL_WRITE( "maincpu", 5, psxdma_device::write_delegate(&scsi_dma_write, (twinkle_state *) owner ) )
+ MCFG_PSX_DMA_CHANNEL_READ( "maincpu", 5, psxdma_device::read_delegate(&twinkle_state::scsi_dma_read, (twinkle_state *) owner ) )
+ MCFG_PSX_DMA_CHANNEL_WRITE( "maincpu", 5, psxdma_device::write_delegate(&twinkle_state::scsi_dma_write, (twinkle_state *) owner ) )
MCFG_CPU_ADD("audiocpu", M68000, 32000000/2) /* 16.000 MHz */
MCFG_CPU_PROGRAM_MAP( sound_map )