diff options
Diffstat (limited to 'src/mame')
-rw-r--r-- | src/mame/drivers/cvs.c | 27 | ||||
-rw-r--r-- | src/mame/drivers/dkong.c | 6 | ||||
-rw-r--r-- | src/mame/drivers/galaxia.c | 1 | ||||
-rw-r--r-- | src/mame/drivers/laserbat.c | 2 | ||||
-rw-r--r-- | src/mame/drivers/quasar.c | 1 | ||||
-rw-r--r-- | src/mame/drivers/quizshow.c | 5 | ||||
-rw-r--r-- | src/mame/drivers/zac_1.c | 9 | ||||
-rw-r--r-- | src/mame/drivers/zac_2.c | 7 | ||||
-rw-r--r-- | src/mame/includes/cvs.h | 4 | ||||
-rw-r--r-- | src/mame/includes/dkong.h | 2 | ||||
-rw-r--r-- | src/mame/includes/laserbat.h | 2 |
11 files changed, 32 insertions, 34 deletions
diff --git a/src/mame/drivers/cvs.c b/src/mame/drivers/cvs.c index e36ab59f38a..4ff3c0c354d 100644 --- a/src/mame/drivers/cvs.c +++ b/src/mame/drivers/cvs.c @@ -109,9 +109,14 @@ Todo & FIXME: * *************************************/ +WRITE_LINE_MEMBER(cvs_state::write_s2650_flag) +{ + m_s2650_flag = state; +} + READ8_MEMBER(cvs_state::cvs_video_or_color_ram_r) { - if (*m_fo_state) + if (m_s2650_flag) return m_video_ram[offset]; else return m_color_ram[offset]; @@ -119,7 +124,7 @@ READ8_MEMBER(cvs_state::cvs_video_or_color_ram_r) WRITE8_MEMBER(cvs_state::cvs_video_or_color_ram_w) { - if (*m_fo_state) + if (m_s2650_flag) m_video_ram[offset] = data; else m_color_ram[offset] = data; @@ -128,7 +133,7 @@ WRITE8_MEMBER(cvs_state::cvs_video_or_color_ram_w) READ8_MEMBER(cvs_state::cvs_bullet_ram_or_palette_r) { - if (*m_fo_state) + if (m_s2650_flag) return m_palette_ram[offset & 0x0f]; else return m_bullet_ram[offset]; @@ -136,7 +141,7 @@ READ8_MEMBER(cvs_state::cvs_bullet_ram_or_palette_r) WRITE8_MEMBER(cvs_state::cvs_bullet_ram_or_palette_w) { - if (*m_fo_state) + if (m_s2650_flag) m_palette_ram[offset & 0x0f] = data; else m_bullet_ram[offset] = data; @@ -145,7 +150,7 @@ WRITE8_MEMBER(cvs_state::cvs_bullet_ram_or_palette_w) READ8_MEMBER(cvs_state::cvs_s2636_0_or_character_ram_r) { - if (*m_fo_state) + if (m_s2650_flag) return m_character_ram[(0 * 0x800) | 0x400 | m_character_ram_page_start | offset]; else return m_s2636_0->work_ram_r(space, offset); @@ -153,7 +158,7 @@ READ8_MEMBER(cvs_state::cvs_s2636_0_or_character_ram_r) WRITE8_MEMBER(cvs_state::cvs_s2636_0_or_character_ram_w) { - if (*m_fo_state) + if (m_s2650_flag) { offset |= (0 * 0x800) | 0x400 | m_character_ram_page_start; m_character_ram[offset] = data; @@ -166,7 +171,7 @@ WRITE8_MEMBER(cvs_state::cvs_s2636_0_or_character_ram_w) READ8_MEMBER(cvs_state::cvs_s2636_1_or_character_ram_r) { - if (*m_fo_state) + if (m_s2650_flag) return m_character_ram[(1 * 0x800) | 0x400 | m_character_ram_page_start | offset]; else return m_s2636_1->work_ram_r(space, offset); @@ -174,7 +179,7 @@ READ8_MEMBER(cvs_state::cvs_s2636_1_or_character_ram_r) WRITE8_MEMBER(cvs_state::cvs_s2636_1_or_character_ram_w) { - if (*m_fo_state) + if (m_s2650_flag) { offset |= (1 * 0x800) | 0x400 | m_character_ram_page_start; m_character_ram[offset] = data; @@ -187,7 +192,7 @@ WRITE8_MEMBER(cvs_state::cvs_s2636_1_or_character_ram_w) READ8_MEMBER(cvs_state::cvs_s2636_2_or_character_ram_r) { - if (*m_fo_state) + if (m_s2650_flag) return m_character_ram[(2 * 0x800) | 0x400 | m_character_ram_page_start | offset]; else return m_s2636_2->work_ram_r(space, offset); @@ -195,7 +200,7 @@ READ8_MEMBER(cvs_state::cvs_s2636_2_or_character_ram_r) WRITE8_MEMBER(cvs_state::cvs_s2636_2_or_character_ram_w) { - if (*m_fo_state) + if (m_s2650_flag) { offset |= (2 * 0x800) | 0x400 | m_character_ram_page_start; m_character_ram[offset] = data; @@ -468,7 +473,6 @@ static ADDRESS_MAP_START( cvs_main_cpu_io_map, AS_IO, 8, cvs_state ) AM_RANGE(S2650_DATA_PORT, S2650_DATA_PORT) AM_READWRITE(cvs_collision_clear, cvs_video_fx_w) AM_RANGE(S2650_CTRL_PORT, S2650_CTRL_PORT) AM_READ(cvs_collision_r) AM_WRITE(audio_command_w) AM_RANGE(S2650_SENSE_PORT, S2650_SENSE_PORT) AM_READ_PORT("SENSE") - AM_RANGE(S2650_FO_PORT, S2650_FO_PORT) AM_RAM AM_SHARE("fo_state") ADDRESS_MAP_END @@ -1006,6 +1010,7 @@ static MACHINE_CONFIG_START( cvs, cvs_state ) MCFG_CPU_PROGRAM_MAP(cvs_main_cpu_map) MCFG_CPU_IO_MAP(cvs_main_cpu_io_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", cvs_state, cvs_main_cpu_interrupt) + MCFG_S2650_FLAG_HANDLER(WRITELINE(cvs_state, write_s2650_flag)) MCFG_CPU_ADD("audiocpu", S2650, 894886.25) MCFG_CPU_PROGRAM_MAP(cvs_dac_cpu_map) diff --git a/src/mame/drivers/dkong.c b/src/mame/drivers/dkong.c index 34ddd5df550..bbcf5d6c991 100644 --- a/src/mame/drivers/dkong.c +++ b/src/mame/drivers/dkong.c @@ -653,13 +653,13 @@ WRITE8_MEMBER(dkong_state::s2650_data_w) m_hunchloopback = data; } -WRITE8_MEMBER(dkong_state::s2650_fo_w) +WRITE_LINE_MEMBER(dkong_state::s2650_fo_w) { #if DEBUG_PROTECTION logerror("write : pc = %04x, FO = %02x\n",space.device().safe_pc(), data); #endif - m_main_fo = data; + m_main_fo = state; if (m_main_fo) m_hunchloopback = 0xfb; @@ -884,7 +884,6 @@ static ADDRESS_MAP_START( s2650_io_map, AS_IO, 8, dkong_state ) AM_RANGE(0x00, 0x00) AM_READ(s2650_port0_r) AM_RANGE(0x01, 0x01) AM_READ(s2650_port1_r) AM_RANGE(S2650_SENSE_PORT, S2650_SENSE_PORT) AM_READ_PORT("SENSE") - AM_RANGE(S2650_FO_PORT, S2650_FO_PORT) AM_WRITE(s2650_fo_w) AM_RANGE(S2650_DATA_PORT, S2650_DATA_PORT) AM_WRITE(s2650_data_w) ADDRESS_MAP_END @@ -1657,6 +1656,7 @@ static MACHINE_CONFIG_START( dkong_base, dkong_state ) MCFG_CPU_ADD("maincpu", Z80, CLOCK_1H) MCFG_CPU_PROGRAM_MAP(dkong_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", dkong_state, vblank_irq) + MCFG_S2650_FLAG_HANDLER(WRITELINE(dkong_state, s2650_fo_w)) MCFG_MACHINE_START_OVERRIDE(dkong_state,dkong2b) MCFG_MACHINE_RESET_OVERRIDE(dkong_state,dkong) diff --git a/src/mame/drivers/galaxia.c b/src/mame/drivers/galaxia.c index dae5eadbccc..fb2e8cf9d59 100644 --- a/src/mame/drivers/galaxia.c +++ b/src/mame/drivers/galaxia.c @@ -151,7 +151,6 @@ static ADDRESS_MAP_START( galaxia_io_map, AS_IO, 8, galaxia_state ) AM_RANGE(S2650_CTRL_PORT, S2650_CTRL_PORT) AM_READWRITE(galaxia_collision_r, galaxia_ctrlport_w) AM_RANGE(S2650_DATA_PORT, S2650_DATA_PORT) AM_READWRITE(galaxia_collision_clear, galaxia_dataport_w) AM_RANGE(S2650_SENSE_PORT, S2650_SENSE_PORT) AM_READ_PORT("SENSE") - AM_RANGE(S2650_FO_PORT, S2650_FO_PORT) AM_RAM AM_SHARE("fo_state") ADDRESS_MAP_END diff --git a/src/mame/drivers/laserbat.c b/src/mame/drivers/laserbat.c index 328b00af82c..f8e7bb1537c 100644 --- a/src/mame/drivers/laserbat.c +++ b/src/mame/drivers/laserbat.c @@ -178,7 +178,6 @@ static ADDRESS_MAP_START( laserbat_io_map, AS_IO, 8, laserbat_state ) AM_RANGE(0x06, 0x06) AM_WRITE(laserbat_input_mux_w) AM_RANGE(0x07, 0x07) AM_WRITE(laserbat_csound2_w) AM_RANGE(S2650_SENSE_PORT, S2650_SENSE_PORT) AM_READ_PORT("SENSE") - AM_RANGE(S2650_FO_PORT, S2650_FO_PORT) AM_RAM AM_SHARE("fo_state") ADDRESS_MAP_END @@ -191,7 +190,6 @@ static ADDRESS_MAP_START( catnmous_io_map, AS_IO, 8, laserbat_state ) AM_RANGE(0x06, 0x06) AM_WRITE(laserbat_input_mux_w) AM_RANGE(0x07, 0x07) AM_WRITENOP // unknown AM_RANGE(S2650_SENSE_PORT, S2650_SENSE_PORT) AM_READ_PORT("SENSE") - AM_RANGE(S2650_FO_PORT, S2650_FO_PORT) AM_RAM AM_SHARE("fo_state") ADDRESS_MAP_END // the same as in zaccaria.c ? diff --git a/src/mame/drivers/quasar.c b/src/mame/drivers/quasar.c index ef3708f31a8..a61054a11a3 100644 --- a/src/mame/drivers/quasar.c +++ b/src/mame/drivers/quasar.c @@ -126,7 +126,6 @@ static ADDRESS_MAP_START( quasar_io, AS_IO, 8, quasar_state ) AM_RANGE(S2650_DATA_PORT, S2650_DATA_PORT) AM_READ(cvs_collision_clear) AM_WRITE(quasar_sh_command_w) AM_RANGE(S2650_CTRL_PORT, S2650_CTRL_PORT) AM_READ(cvs_collision_r) AM_WRITENOP AM_RANGE(S2650_SENSE_PORT, S2650_SENSE_PORT) AM_READ_PORT("SENSE") - AM_RANGE(S2650_FO_PORT, S2650_FO_PORT) AM_RAM AM_SHARE("fo_state") ADDRESS_MAP_END /************************************* diff --git a/src/mame/drivers/quizshow.c b/src/mame/drivers/quizshow.c index aaf37edcf51..89af24c297e 100644 --- a/src/mame/drivers/quizshow.c +++ b/src/mame/drivers/quizshow.c @@ -41,14 +41,12 @@ public: : driver_device(mconfig, type, tag), m_maincpu(*this, "maincpu"), m_dac(*this, "dac"), - m_main_ram(*this, "main_ram"), - m_fo_state(*this, "fo_state") + m_main_ram(*this, "main_ram") { } required_device<cpu_device> m_maincpu; required_device<dac_device> m_dac; required_shared_ptr<UINT8> m_main_ram; - required_shared_ptr<UINT8> m_fo_state; tilemap_t *m_tilemap; UINT32 m_clocks; @@ -240,7 +238,6 @@ static ADDRESS_MAP_START( quizshow_io_map, AS_IO, 8, quizshow_state ) // AM_RANGE(S2650_CTRL_PORT, S2650_CTRL_PORT) AM_NOP // unused // AM_RANGE(S2650_DATA_PORT, S2650_DATA_PORT) AM_NOP // unused AM_RANGE(S2650_SENSE_PORT, S2650_SENSE_PORT) AM_READ(quizshow_tape_signal_r) - AM_RANGE(S2650_FO_PORT, S2650_FO_PORT) AM_RAM AM_SHARE("fo_state") ADDRESS_MAP_END diff --git a/src/mame/drivers/zac_1.c b/src/mame/drivers/zac_1.c index 3f3408b8693..3045969e803 100644 --- a/src/mame/drivers/zac_1.c +++ b/src/mame/drivers/zac_1.c @@ -44,7 +44,7 @@ public: DECLARE_READ8_MEMBER(ctrl_r); DECLARE_WRITE8_MEMBER(ctrl_w); DECLARE_READ8_MEMBER(serial_r); - DECLARE_WRITE8_MEMBER(serial_w); + DECLARE_WRITE_LINE_MEMBER(serial_w); DECLARE_READ8_MEMBER(reset_int_r); DECLARE_WRITE8_MEMBER(reset_int_w); TIMER_DEVICE_CALLBACK_MEMBER(zac_1_inttimer); @@ -75,7 +75,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( zac_1_io, AS_IO, 8, zac_1_state ) ADDRESS_MAP_UNMAP_HIGH AM_RANGE(S2650_CTRL_PORT, S2650_CTRL_PORT) AM_READWRITE(ctrl_r,ctrl_w) - AM_RANGE(S2650_SENSE_PORT, S2650_FO_PORT) AM_READWRITE(serial_r,serial_w) + AM_RANGE(S2650_SENSE_PORT, S2650_SENSE_PORT) AM_READ(serial_r) ADDRESS_MAP_END static INPUT_PORTS_START( zac_1 ) @@ -180,7 +180,7 @@ READ8_MEMBER( zac_1_state::serial_r ) return 0; } -WRITE8_MEMBER( zac_1_state::serial_w ) +WRITE_LINE_MEMBER( zac_1_state::serial_w ) { // to printer } @@ -246,6 +246,7 @@ static MACHINE_CONFIG_START( zac_1, zac_1_state ) MCFG_CPU_PROGRAM_MAP(zac_1_map) MCFG_CPU_IO_MAP(zac_1_io) MCFG_NVRAM_ADD_0FILL("ram") + MCFG_S2650_FLAG_HANDLER(WRITELINE(zac_1_state, serial_w)) MCFG_TIMER_DRIVER_ADD_PERIODIC("zac_1_inttimer", zac_1_state, zac_1_inttimer, attotime::from_hz(200)) MCFG_TIMER_DRIVER_ADD_PERIODIC("zac_1_outtimer", zac_1_state, zac_1_outtimer, attotime::from_hz(187500)) @@ -270,7 +271,7 @@ static ADDRESS_MAP_START( locomotp_io, AS_IO, 8, zac_1_state) ADDRESS_MAP_UNMAP_HIGH AM_RANGE(S2650_CTRL_PORT, S2650_CTRL_PORT) AM_READWRITE(ctrl_r,ctrl_w) AM_RANGE(S2650_DATA_PORT, S2650_DATA_PORT) AM_READ(reset_int_r) - AM_RANGE(S2650_SENSE_PORT, S2650_FO_PORT) AM_READWRITE(serial_r,serial_w) + AM_RANGE(S2650_SENSE_PORT, S2650_SENSE_PORT) AM_READ(serial_r) ADDRESS_MAP_END READ8_MEMBER( zac_1_state::reset_int_r ) diff --git a/src/mame/drivers/zac_2.c b/src/mame/drivers/zac_2.c index 4e08279b880..09f3e04f8eb 100644 --- a/src/mame/drivers/zac_2.c +++ b/src/mame/drivers/zac_2.c @@ -21,7 +21,7 @@ public: DECLARE_READ8_MEMBER(data_r); DECLARE_WRITE8_MEMBER(data_w); DECLARE_READ8_MEMBER(serial_r); - DECLARE_WRITE8_MEMBER(serial_w); + DECLARE_WRITE_LINE_MEMBER(serial_w); UINT8 m_t_c; UINT8 m_out_offs; required_device<cpu_device> m_maincpu; @@ -53,7 +53,7 @@ static ADDRESS_MAP_START(zac_2_io, AS_IO, 8, zac_2_state) ADDRESS_MAP_UNMAP_HIGH AM_RANGE(S2650_CTRL_PORT, S2650_CTRL_PORT) AM_READWRITE(ctrl_r,ctrl_w) AM_RANGE(S2650_DATA_PORT, S2650_DATA_PORT) AM_READWRITE(data_r,data_w) - AM_RANGE(S2650_SENSE_PORT, S2650_FO_PORT) AM_READWRITE(serial_r,serial_w) + AM_RANGE(S2650_SENSE_PORT, S2650_SENSE_PORT) AM_READ(serial_r) ADDRESS_MAP_END static INPUT_PORTS_START( zac_2 ) @@ -164,7 +164,7 @@ READ8_MEMBER( zac_2_state::serial_r ) return 0; } -WRITE8_MEMBER( zac_2_state::serial_w ) +WRITE_LINE_MEMBER( zac_2_state::serial_w ) { // to printer } @@ -203,6 +203,7 @@ static MACHINE_CONFIG_START( zac_2, zac_2_state ) MCFG_CPU_PROGRAM_MAP(zac_2_map) MCFG_CPU_IO_MAP(zac_2_io) MCFG_NVRAM_ADD_0FILL("ram") + MCFG_S2650_FLAG_HANDLER(WRITELINE(zac_2_state, serial_w)) MCFG_TIMER_DRIVER_ADD_PERIODIC("zac_2_inttimer", zac_2_state, zac_2_inttimer, attotime::from_hz(200)) MCFG_TIMER_DRIVER_ADD_PERIODIC("zac_2_outtimer", zac_2_state, zac_2_outtimer, attotime::from_hz(187500)) diff --git a/src/mame/includes/cvs.h b/src/mame/includes/cvs.h index 78affd1fb21..729f5a82e87 100644 --- a/src/mame/includes/cvs.h +++ b/src/mame/includes/cvs.h @@ -24,7 +24,6 @@ public: : driver_device(mconfig, type, tag), m_video_ram(*this, "video_ram"), m_bullet_ram(*this, "bullet_ram"), - m_fo_state(*this, "fo_state"), m_cvs_4_bit_dac_data(*this, "4bit_dac"), m_tms5110_ctl_data(*this, "tms5110_ctl"), m_dac3_state(*this, "dac3_state"), @@ -42,7 +41,6 @@ public: /* memory pointers */ required_shared_ptr<UINT8> m_video_ram; required_shared_ptr<UINT8> m_bullet_ram; - required_shared_ptr<UINT8> m_fo_state; optional_shared_ptr<UINT8> m_cvs_4_bit_dac_data; optional_shared_ptr<UINT8> m_tms5110_ctl_data; optional_shared_ptr<UINT8> m_dac3_state; @@ -59,6 +57,7 @@ public: int m_stars_scroll; /* misc */ + int m_s2650_flag; emu_timer *m_cvs_393hz_timer; UINT8 m_cvs_393hz_clock; @@ -83,6 +82,7 @@ public: UINT8 m_character_ram[3 * 0x800]; /* only half is used, but by allocating twice the amount, we can use the same gfx_layout */ + DECLARE_WRITE_LINE_MEMBER(write_s2650_flag); DECLARE_READ8_MEMBER(cvs_input_r); DECLARE_READ8_MEMBER(cvs_393hz_clock_r); DECLARE_WRITE8_MEMBER(cvs_speech_rom_address_lo_w); diff --git a/src/mame/includes/dkong.h b/src/mame/includes/dkong.h index a8f5ee80dac..5e3a8e2aea9 100644 --- a/src/mame/includes/dkong.h +++ b/src/mame/includes/dkong.h @@ -193,7 +193,7 @@ public: DECLARE_WRITE8_MEMBER(s2650_mirror_w); DECLARE_READ8_MEMBER(epos_decrypt_rom); DECLARE_WRITE8_MEMBER(s2650_data_w); - DECLARE_WRITE8_MEMBER(s2650_fo_w); + DECLARE_WRITE_LINE_MEMBER(s2650_fo_w); DECLARE_READ8_MEMBER(s2650_port0_r); DECLARE_READ8_MEMBER(s2650_port1_r); DECLARE_WRITE8_MEMBER(dkong3_2a03_reset_w); diff --git a/src/mame/includes/laserbat.h b/src/mame/includes/laserbat.h index 5c46e85d353..478fbb5bf74 100644 --- a/src/mame/includes/laserbat.h +++ b/src/mame/includes/laserbat.h @@ -16,7 +16,6 @@ public: : driver_device(mconfig, type, tag), m_maincpu(*this, "maincpu"), m_audiocpu(*this, "audiocpu"), - m_fo_state(*this, "fo_state"), m_ay1(*this, "ay1"), m_ay2(*this, "ay2"), m_s2636_1(*this, "s2636_1"), @@ -28,7 +27,6 @@ public: required_device<cpu_device> m_maincpu; optional_device<cpu_device> m_audiocpu; - required_shared_ptr<UINT8> m_fo_state; optional_device<ay8910_device> m_ay1; optional_device<ay8910_device> m_ay2; required_device<s2636_device> m_s2636_1; |