mirror of
https://github.com/holub/mame
synced 2025-07-04 01:18:59 +03:00
vector06c add i8253 sound
This commit is contained in:
parent
a9025d1f53
commit
851c24cbb5
@ -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 */
|
||||
|
@ -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<cpu_device> m_maincpu;
|
||||
required_device<speaker_sound_device> m_speaker;
|
||||
required_device<cassette_image_device> m_cassette;
|
||||
required_device<generic_slot_device> m_cart;
|
||||
required_device<fd1793_t> m_fdc;
|
||||
@ -81,6 +89,7 @@ private:
|
||||
required_device<floppy_connector> m_floppy1;
|
||||
required_device<i8255_device> m_ppi;
|
||||
required_device<i8255_device> m_ppi2;
|
||||
required_device<pit8253_device> m_pit8253;
|
||||
required_device<ram_device> m_ram;
|
||||
required_device<palette_device> m_palette;
|
||||
required_memory_bank m_bank1;
|
||||
|
@ -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));
|
||||
|
Loading…
Reference in New Issue
Block a user