diff --git a/src/mame/drivers/vector06.cpp b/src/mame/drivers/vector06.cpp index 569b29eee50..54e82573864 100644 --- a/src/mame/drivers/vector06.cpp +++ b/src/mame/drivers/vector06.cpp @@ -24,6 +24,7 @@ static ADDRESS_MAP_START(vector06_io, AS_IO, 8, vector06_state) ADDRESS_MAP_UNMAP_HIGH AM_RANGE( 0x00, 0x03) AM_READWRITE(vector06_8255_1_r, vector06_8255_1_w ) AM_RANGE( 0x04, 0x07) AM_READWRITE(vector06_8255_2_r, vector06_8255_2_w ) + AM_RANGE( 0x08, 0x0B) AM_READWRITE(pit8253_r, pit8253_w) AM_RANGE( 0x0C, 0x0C) AM_WRITE(vector06_color_set) AM_RANGE( 0x10, 0x10) AM_WRITE(vector06_ramdisk_w) AM_RANGE( 0x18, 0x18) AM_DEVREADWRITE("wd1793", fd1793_t, data_r, data_w) @@ -189,6 +190,17 @@ static MACHINE_CONFIG_START( vector06, vector06_state ) MCFG_RAM_ADD(RAM_TAG) MCFG_RAM_DEFAULT_SIZE("320K") MCFG_RAM_DEFAULT_VALUE(0) + + MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0) + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) + + MCFG_DEVICE_ADD("pit8253", PIT8253, 0) + MCFG_PIT8253_CLK0(1500000) + MCFG_PIT8253_CLK1(1500000) + MCFG_PIT8253_CLK2(1500000) + MCFG_PIT8253_OUT0_HANDLER(WRITELINE(vector06_state, speaker_w)) + MCFG_PIT8253_OUT1_HANDLER(WRITELINE(vector06_state, speaker_w)) + MCFG_PIT8253_OUT2_HANDLER(WRITELINE(vector06_state, speaker_w)) MACHINE_CONFIG_END /* ROM definition */ diff --git a/src/mame/includes/vector06.h b/src/mame/includes/vector06.h index 6e61aab594f..38fc315b232 100644 --- a/src/mame/includes/vector06.h +++ b/src/mame/includes/vector06.h @@ -12,8 +12,10 @@ #include "emu.h" #include "cpu/z80/z80.h" #include "cpu/i8085/i8085.h" +#include "sound/speaker.h" #include "sound/wave.h" #include "machine/i8255.h" +#include "machine/pit8253.h" #include "machine/ram.h" #include "machine/wd_fdc.h" #include "imagedev/cassette.h" @@ -28,6 +30,7 @@ public: vector06_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), m_maincpu(*this, "maincpu"), + m_speaker(*this, "speaker"), m_cassette(*this, "cassette"), m_cart(*this, "cartslot"), m_fdc(*this, "wd1793"), @@ -35,6 +38,7 @@ public: m_floppy1(*this, "wd1793:1"), m_ppi(*this, "ppi8255"), m_ppi2(*this, "ppi8255_2"), + m_pit8253(*this, "pit8253"), m_ram(*this, RAM_TAG), m_palette(*this, "palette"), m_bank1(*this, "bank1"), @@ -62,6 +66,9 @@ public: DECLARE_WRITE8_MEMBER(vector06_disc_w); DECLARE_WRITE8_MEMBER(vector06_status_callback); DECLARE_WRITE8_MEMBER(vector06_ramdisk_w); + DECLARE_WRITE8_MEMBER(pit8253_w); + DECLARE_READ8_MEMBER(pit8253_r); + DECLARE_WRITE_LINE_MEMBER(speaker_w); void vector06_set_video_mode(int width); virtual void machine_start() override; virtual void machine_reset() override; @@ -74,6 +81,7 @@ public: private: required_device m_maincpu; + required_device m_speaker; required_device m_cassette; required_device m_cart; required_device m_fdc; @@ -81,6 +89,7 @@ private: required_device m_floppy1; required_device m_ppi; required_device m_ppi2; + required_device m_pit8253; required_device m_ram; required_device m_palette; required_memory_bank m_bank1; diff --git a/src/mame/machine/vector06.cpp b/src/mame/machine/vector06.cpp index c22adef4229..606b66aa35a 100644 --- a/src/mame/machine/vector06.cpp +++ b/src/mame/machine/vector06.cpp @@ -195,6 +195,21 @@ WRITE8_MEMBER(vector06_state::vector06_status_callback) update_mem(); } +WRITE_LINE_MEMBER(vector06_state::speaker_w) +{ + m_speaker->level_w(state); +} + +WRITE8_MEMBER(vector06_state::pit8253_w) +{ + m_pit8253->write(space, offset ^ 3, data); +} + +READ8_MEMBER(vector06_state::pit8253_r) +{ + return m_pit8253->read(space, offset ^ 3); +} + void vector06_state::machine_start() { machine().scheduler().timer_pulse(attotime::from_hz(50), timer_expired_delegate(FUNC(vector06_state::reset_check_callback),this));