diff options
Diffstat (limited to 'src/mame/casio/cz1.cpp')
-rw-r--r-- | src/mame/casio/cz1.cpp | 45 |
1 files changed, 22 insertions, 23 deletions
diff --git a/src/mame/casio/cz1.cpp b/src/mame/casio/cz1.cpp index 13af6e7529c..d4b491367b5 100644 --- a/src/mame/casio/cz1.cpp +++ b/src/mame/casio/cz1.cpp @@ -31,7 +31,7 @@ #include "bus/midi/midiinport.h" #include "bus/midi/midioutport.h" #include "cpu/mcs48/mcs48.h" -#include "cpu/upd7810/upd7811.h" +#include "cpu/upd7810/upd7810.h" #include "machine/clock.h" #include "machine/input_merger.h" #include "machine/msm6200.h" @@ -85,17 +85,17 @@ public: int sync49_r(); protected: - virtual void machine_start() override; - virtual void machine_reset() override; + virtual void machine_start() override ATTR_COLD; + virtual void machine_reset() override ATTR_COLD; private: void cz1_palette(palette_device &palette) const; HD44780_PIXEL_UPDATE(lcd_pixel_update); - void mz1_main_map(address_map &map); - void cz1_main_map(address_map &map); - void sub_map(address_map &map); - void mcu_map(address_map &map); + void mz1_main_map(address_map &map) ATTR_COLD; + void cz1_main_map(address_map &map) ATTR_COLD; + void sub_map(address_map &map) ATTR_COLD; + void mcu_map(address_map &map) ATTR_COLD; // main CPU r/w methods u8 keys_r(); @@ -328,23 +328,23 @@ static INPUT_PORTS_START( mz1 ) PORT_BIT(0xe0, IP_ACTIVE_LOW, IPT_UNUSED) PORT_START("KC12") - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_CUSTOM) PORT_READ_LINE_DEVICE_MEMBER("cart", casio_ram_cart_device, exists) + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_CUSTOM) PORT_READ_LINE_DEVICE_MEMBER("cart", FUNC(casio_ram_cart_device::sense)) PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_CUSTOM) // low = MZ-1, high = CZ-1 PORT_BIT(0xfc, IP_ACTIVE_LOW, IPT_UNUSED) PORT_START("MAIN_PB") - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_CUSTOM) PORT_READ_LINE_MEMBER(cz1_state, sync_r) + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_CUSTOM) PORT_READ_LINE_MEMBER(FUNC(cz1_state::sync_r)) PORT_BIT(0xfe, IP_ACTIVE_LOW, IPT_UNUSED) PORT_START("SUB_PB") - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_CUSTOM) PORT_READ_LINE_DEVICE_MEMBER("upd933_0", upd933_device, rq_r) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_CUSTOM) PORT_READ_LINE_DEVICE_MEMBER("upd933_1", upd933_device, rq_r) + PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_CUSTOM) PORT_READ_LINE_DEVICE_MEMBER("upd933_0", FUNC(upd933_device::rq_r)) + PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_CUSTOM) PORT_READ_LINE_DEVICE_MEMBER("upd933_1", FUNC(upd933_device::rq_r)) PORT_BIT(0xfc, IP_ACTIVE_LOW, IPT_UNUSED) PORT_START("SUB_PC") PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_CUSTOM) PORT_READ_LINE_MEMBER(cz1_state, sync_r) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_CUSTOM) PORT_READ_LINE_MEMBER(cz1_state, cont_r) + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_CUSTOM) PORT_READ_LINE_MEMBER(FUNC(cz1_state::sync_r)) + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_CUSTOM) PORT_READ_LINE_MEMBER(FUNC(cz1_state::cont_r)) PORT_BIT(0xf8, IP_ACTIVE_LOW, IPT_UNUSED) INPUT_PORTS_END @@ -496,8 +496,8 @@ static INPUT_PORTS_START( cz1 ) PORT_START("MAIN_PC") PORT_BIT(0x0f, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_CUSTOM) PORT_READ_LINE_MEMBER(cz1_state, cont49_r) - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_CUSTOM) PORT_READ_LINE_MEMBER(cz1_state, sync49_r) + PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_CUSTOM) PORT_READ_LINE_MEMBER(FUNC(cz1_state::cont49_r)) + PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_CUSTOM) PORT_READ_LINE_MEMBER(FUNC(cz1_state::sync49_r)) PORT_BIT(0xc0, IP_ACTIVE_LOW, IPT_UNUSED) INPUT_PORTS_END @@ -869,7 +869,7 @@ void cz1_state::mz1(machine_config &config) PALETTE(config, "palette", FUNC(cz1_state::cz1_palette), 3); - HD44780(config, m_hd44780, 250'000); // TODO: clock not measured, datasheet typical clock used + HD44780(config, m_hd44780, 270'000); // TODO: clock not measured, datasheet typical clock used m_hd44780->set_lcd_size(2, 16); m_hd44780->set_function_set_at_any_time(); m_hd44780->set_pixel_update_cb(FUNC(cz1_state::lcd_pixel_update)); @@ -877,11 +877,10 @@ void cz1_state::mz1(machine_config &config) config.set_default_layout(layout_mz1); // sound hardware - SPEAKER(config, "lspeaker").front_left(); - SPEAKER(config, "rspeaker").front_right(); + SPEAKER(config, "speaker", 2).front(); - MIXER(config, m_mixer[0]).add_route(0, "lspeaker", 1.0); - MIXER(config, m_mixer[1]).add_route(0, "rspeaker", 1.0); + MIXER(config, m_mixer[0]).add_route(0, "speaker", 1.0, 0); + MIXER(config, m_mixer[1]).add_route(0, "speaker", 1.0, 1); UPD933(config, m_upd933[0], 8.96_MHz_XTAL / 2); m_upd933[0]->irq_cb().set("irq", FUNC(input_merger_any_high_device::in_w<0>)); @@ -910,7 +909,7 @@ void cz1_state::cz1(machine_config &config) m_mcu->t0_in_cb().set(FUNC(cz1_state::sync49_r)); m_mcu->t1_in_cb().set([this] () { return BIT(m_main_port[2], 7); }); - MSM6200(config, "kbd").irq_cb().set_inputline(m_mcu, MCS48_INPUT_IRQ); + MSM6200(config, "kbd", 2.47_MHz_XTAL).irq_cb().set_inputline(m_mcu, MCS48_INPUT_IRQ); // CSA2.47MG ceramic oscillator config.set_default_layout(layout_cz1); } @@ -946,5 +945,5 @@ ROM_END //************************************************************************** // YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS -SYST( 1986, cz1, 0, 0, cz1, cz1, cz1_state, empty_init, "Casio", "CZ-1", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_SOUND ) -SYST( 1986, mz1, cz1, 0, mz1, mz1, cz1_state, empty_init, "Casio", "MZ-1 (prototype)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_SOUND ) +SYST( 1986, cz1, 0, 0, cz1, cz1, cz1_state, empty_init, "Casio", "CZ-1", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) +SYST( 1986, mz1, cz1, 0, mz1, mz1, cz1_state, empty_init, "Casio", "MZ-1 (prototype)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) |