From ed9a9250cd5c0856faa4346df5dc9c5ff12700c0 Mon Sep 17 00:00:00 2001 From: AJR Date: Sat, 3 Mar 2018 22:08:40 -0500 Subject: [PATCH] segas32.cpp: ACCESSING_BITS cleanup (nw) --- src/mame/drivers/segas32.cpp | 131 +++++++++-------------------------- src/mame/includes/segas32.h | 19 ++--- 2 files changed, 37 insertions(+), 113 deletions(-) diff --git a/src/mame/drivers/segas32.cpp b/src/mame/drivers/segas32.cpp index 966805c48d6..803e1ebdf74 100644 --- a/src/mame/drivers/segas32.cpp +++ b/src/mame/drivers/segas32.cpp @@ -713,7 +713,25 @@ TIMER_DEVICE_CALLBACK_MEMBER(segas32_state::signal_v60_irq_callback) } -void segas32_state::int_control_w(int offset, uint8_t data) +READ8_MEMBER(segas32_state::int_control_r) +{ + switch (offset) + { + case 8: + /* fix me - should return timer count down value */ + break; + + case 10: + /* fix me - should return timer count down value */ + break; + } + + /* return all F's for everything except timer values */ + return 0xff; +} + + +WRITE8_MEMBER(segas32_state::int_control_w) { int duration; @@ -774,60 +792,6 @@ void segas32_state::int_control_w(int offset, uint8_t data) } -READ16_MEMBER(segas32_state::interrupt_control_16_r) -{ - switch (offset) - { - case 8/2: - /* fix me - should return timer count down value */ - break; - - case 10/2: - /* fix me - should return timer count down value */ - break; - } - - /* return all F's for everything except timer values */ - return 0xffff; -} - - -WRITE16_MEMBER(segas32_state::interrupt_control_16_w) -{ - if (ACCESSING_BITS_0_7) - int_control_w(offset*2+0, data); - if (ACCESSING_BITS_8_15) - int_control_w(offset*2+1, data >> 8); -} - - -READ32_MEMBER(segas32_state::interrupt_control_32_r) -{ - switch (offset) - { - case 8/4: - /* fix me - should return timer count down value */ - break; - } - - /* return all F's for everything except timer values */ - return 0xffffffff; -} - - -WRITE32_MEMBER(segas32_state::interrupt_control_32_w) -{ - if (ACCESSING_BITS_0_7) - int_control_w(offset*4+0, data); - if (ACCESSING_BITS_8_15) - int_control_w(offset*4+1, data >> 8); - if (ACCESSING_BITS_16_23) - int_control_w(offset*4+2, data >> 16); - if (ACCESSING_BITS_24_31) - int_control_w(offset*4+3, data >> 24); -} - - TIMER_CALLBACK_MEMBER(segas32_state::end_of_vblank_int) { signal_v60_irq(MAIN_IRQ_VBSTOP); @@ -918,26 +882,16 @@ WRITE_LINE_MEMBER(segas32_state::display_enable_1_w) * *************************************/ -WRITE16_MEMBER(segas32_state::random_number_16_w) +WRITE16_MEMBER(segas32_state::random_number_w) { // osd_printf_debug("%06X:random_seed_w(%04X) = %04X & %04X\n", m_maincpu->pc(), offset*2, data, mem_mask); } -READ16_MEMBER(segas32_state::random_number_16_r) +READ16_MEMBER(segas32_state::random_number_r) { return machine().rand(); } -WRITE32_MEMBER(segas32_state::random_number_32_w) -{ -// osd_printf_debug("%06X:random_seed_w(%04X) = %04X & %04X\n", m_maincpu->pc(), offset*2, data, mem_mask); -} - -READ32_MEMBER(segas32_state::random_number_32_r) -{ - return machine().rand() ^ (machine().rand() << 16); -} - /************************************* @@ -946,38 +900,15 @@ READ32_MEMBER(segas32_state::random_number_32_r) * *************************************/ -READ16_MEMBER(segas32_state::shared_ram_16_r) +READ8_MEMBER(segas32_state::shared_ram_r) { - return m_z80_shared_ram[offset*2+0] | (m_z80_shared_ram[offset*2+1] << 8); + return m_z80_shared_ram[offset]; } -WRITE16_MEMBER(segas32_state::shared_ram_16_w) +WRITE8_MEMBER(segas32_state::shared_ram_w) { - if (ACCESSING_BITS_0_7) - m_z80_shared_ram[offset*2+0] = data; - if (ACCESSING_BITS_8_15) - m_z80_shared_ram[offset*2+1] = data >> 8; -} - - -READ32_MEMBER(segas32_state::shared_ram_32_r) -{ - return m_z80_shared_ram[offset*4+0] | (m_z80_shared_ram[offset*4+1] << 8) | - (m_z80_shared_ram[offset*4+2] << 16) | (m_z80_shared_ram[offset*4+3] << 24); -} - - -WRITE32_MEMBER(segas32_state::shared_ram_32_w) -{ - if (ACCESSING_BITS_0_7) - m_z80_shared_ram[offset*4+0] = data; - if (ACCESSING_BITS_8_15) - m_z80_shared_ram[offset*4+1] = data >> 8; - if (ACCESSING_BITS_16_23) - m_z80_shared_ram[offset*4+2] = data >> 16; - if (ACCESSING_BITS_24_31) - m_z80_shared_ram[offset*4+3] = data >> 24; + m_z80_shared_ram[offset] = data; } @@ -1128,14 +1059,14 @@ ADDRESS_MAP_START(segas32_state::system32_map) AM_RANGE(0x500000, 0x50000f) AM_MIRROR(0x0ffff0) AM_READWRITE(system32_sprite_control_r, system32_sprite_control_w) AM_RANGE(0x600000, 0x60ffff) AM_MIRROR(0x0e0000) AM_READWRITE(system32_paletteram_r, system32_paletteram_w) AM_SHARE("paletteram.0") AM_RANGE(0x610000, 0x61007f) AM_MIRROR(0x0eff80) AM_READWRITE(system32_mixer_r, system32_mixer_w) - AM_RANGE(0x700000, 0x701fff) AM_MIRROR(0x0fe000) AM_READWRITE(shared_ram_16_r, shared_ram_16_w) + AM_RANGE(0x700000, 0x701fff) AM_MIRROR(0x0fe000) AM_READWRITE8(shared_ram_r, shared_ram_w, 0xffff) AM_RANGE(0x800000, 0x800fff) AM_DEVREADWRITE8("s32comm", s32comm_device, share_r, share_w, 0x00ff) AM_RANGE(0x801000, 0x801001) AM_DEVREADWRITE8("s32comm", s32comm_device, cn_r, cn_w, 0x00ff) AM_RANGE(0x801002, 0x801003) AM_DEVREADWRITE8("s32comm", s32comm_device, fg_r, fg_w, 0x00ff) AM_RANGE(0xc00000, 0xc0001f) AM_MIRROR(0x0fff80) AM_DEVREADWRITE8("io_chip", sega_315_5296_device, read, write, 0x00ff) // 0xc00040-0xc0007f - I/O expansion area - AM_RANGE(0xd00000, 0xd0000f) AM_MIRROR(0x07fff0) AM_READWRITE(interrupt_control_16_r, interrupt_control_16_w) - AM_RANGE(0xd80000, 0xdfffff) AM_READWRITE(random_number_16_r, random_number_16_w) + AM_RANGE(0xd00000, 0xd0000f) AM_MIRROR(0x07fff0) AM_READWRITE8(int_control_r, int_control_w, 0xffff) + AM_RANGE(0xd80000, 0xdfffff) AM_READWRITE(random_number_r, random_number_w) AM_RANGE(0xf00000, 0xffffff) AM_ROM AM_REGION("maincpu", 0) ADDRESS_MAP_END @@ -1152,7 +1083,7 @@ ADDRESS_MAP_START(segas32_state::multi32_map) AM_RANGE(0x610000, 0x61007f) AM_MIRROR(0x06ff80) AM_WRITE(multi32_mixer_0_w) AM_RANGE(0x680000, 0x68ffff) AM_MIRROR(0x060000) AM_READWRITE(multi32_paletteram_1_r, multi32_paletteram_1_w) AM_SHARE("paletteram.1") AM_RANGE(0x690000, 0x69007f) AM_MIRROR(0x06ff80) AM_WRITE(multi32_mixer_1_w) - AM_RANGE(0x700000, 0x701fff) AM_MIRROR(0x0fe000) AM_READWRITE(shared_ram_32_r, shared_ram_32_w) + AM_RANGE(0x700000, 0x701fff) AM_MIRROR(0x0fe000) AM_READWRITE8(shared_ram_r, shared_ram_w, 0xffffffff) AM_RANGE(0x800000, 0x800fff) AM_DEVREADWRITE8("s32comm", s32comm_device, share_r, share_w, 0x00ff00ff) AM_RANGE(0x801000, 0x801003) AM_DEVREADWRITE8("s32comm", s32comm_device, cn_r, cn_w, 0x000000ff) AM_RANGE(0x801000, 0x801003) AM_DEVREADWRITE8("s32comm", s32comm_device, fg_r, fg_w, 0x00ff0000) @@ -1160,8 +1091,8 @@ ADDRESS_MAP_START(segas32_state::multi32_map) // 0xc00040-0xc0007f - I/O expansion area 0 AM_RANGE(0xc80000, 0xc8001f) AM_MIRROR(0x07ff80) AM_DEVREADWRITE8("io_chip_1", sega_315_5296_device, read, write, 0x00ff00ff) // 0xc80040-0xc8007f - I/O expansion area 1 - AM_RANGE(0xd00000, 0xd0000f) AM_MIRROR(0x07fff0) AM_READWRITE(interrupt_control_32_r, interrupt_control_32_w) - AM_RANGE(0xd80000, 0xdfffff) AM_READWRITE(random_number_32_r, random_number_32_w) + AM_RANGE(0xd00000, 0xd0000f) AM_MIRROR(0x07fff0) AM_READWRITE8(int_control_r, int_control_w, 0xffffffff) + AM_RANGE(0xd80000, 0xdfffff) AM_READWRITE16(random_number_r, random_number_w, 0xffffffff) AM_RANGE(0xf00000, 0xffffff) AM_ROM AM_REGION("maincpu", 0) ADDRESS_MAP_END diff --git a/src/mame/includes/segas32.h b/src/mame/includes/segas32.h index 48167b290cf..f0ffbb8622b 100644 --- a/src/mame/includes/segas32.h +++ b/src/mame/includes/segas32.h @@ -124,10 +124,8 @@ public: DECLARE_WRITE16_MEMBER(system32_mixer_w); DECLARE_WRITE32_MEMBER(multi32_mixer_0_w); DECLARE_WRITE32_MEMBER(multi32_mixer_1_w); - DECLARE_READ16_MEMBER(interrupt_control_16_r); - DECLARE_WRITE16_MEMBER(interrupt_control_16_w); - DECLARE_READ32_MEMBER(interrupt_control_32_r); - DECLARE_WRITE32_MEMBER(interrupt_control_32_w); + DECLARE_READ8_MEMBER(int_control_r); + DECLARE_WRITE8_MEMBER(int_control_w); DECLARE_WRITE8_MEMBER(misc_output_0_w); DECLARE_WRITE8_MEMBER(misc_output_1_w); DECLARE_WRITE8_MEMBER(sw2_output_0_w); @@ -135,14 +133,10 @@ public: DECLARE_WRITE8_MEMBER(tilebank_external_w); DECLARE_WRITE_LINE_MEMBER(display_enable_0_w); DECLARE_WRITE_LINE_MEMBER(display_enable_1_w); - DECLARE_WRITE16_MEMBER(random_number_16_w); - DECLARE_READ16_MEMBER(random_number_16_r); - DECLARE_WRITE32_MEMBER(random_number_32_w); - DECLARE_READ32_MEMBER(random_number_32_r); - DECLARE_READ16_MEMBER(shared_ram_16_r); - DECLARE_WRITE16_MEMBER(shared_ram_16_w); - DECLARE_READ32_MEMBER(shared_ram_32_r); - DECLARE_WRITE32_MEMBER(shared_ram_32_w); + DECLARE_WRITE16_MEMBER(random_number_w); + DECLARE_READ16_MEMBER(random_number_r); + DECLARE_READ8_MEMBER(shared_ram_r); + DECLARE_WRITE8_MEMBER(shared_ram_w); DECLARE_WRITE8_MEMBER(sound_int_control_lo_w); DECLARE_WRITE8_MEMBER(sound_int_control_hi_w); DECLARE_WRITE8_MEMBER(sound_bank_lo_w); @@ -183,7 +177,6 @@ public: uint32_t multi32_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect, int index); void update_irq_state(); void signal_v60_irq(int which); - void int_control_w(int offset, uint8_t data); void update_sound_irq_state(); void segas32_common_init(); void multi32_common_init();