cpzodiac: Add devices (nw)

This commit is contained in:
AJR 2018-06-26 16:23:14 -04:00
parent ffd75faf5c
commit afba990a42

View File

@ -13,7 +13,7 @@ Main PCB:
- 27C512 ROM, TMS27C010A ROM
- 3*5563-100 (8KB RAM?)
- YM2610B, 16MHz XTAL
- TE7750, TC040SYT
- TE7750, TC0140SYT
- SED1351F LCD controller
Display PCB:
@ -29,6 +29,9 @@ TODO:
#include "emu.h"
#include "cpu/z80/z80.h"
#include "audio/taitosnd.h"
#include "machine/te7750.h"
#include "machine/z80ctc.h"
#include "sound/2610intf.h"
#include "speaker.h"
@ -49,6 +52,7 @@ private:
required_device<cpu_device> m_audiocpu;
void main_map(address_map &map);
void main_io_map(address_map &map);
void sound_map(address_map &map);
};
@ -61,14 +65,28 @@ private:
void cpzodiac_state::main_map(address_map &map)
{
map(0x0000, 0x7fff).rom();
map(0x0000, 0x9fff).rom();
map(0xa000, 0xbfff).ram();
map(0xc000, 0xdfff).ram(); // video?
map(0xe000, 0xe00f).rw("io", FUNC(te7750_device::read), FUNC(te7750_device::write));
map(0xe020, 0xe020).w("syt", FUNC(tc0140syt_device::master_port_w));
map(0xe021, 0xe021).rw("syt", FUNC(tc0140syt_device::master_comm_r), FUNC(tc0140syt_device::master_comm_w));
}
void cpzodiac_state::main_io_map(address_map &map)
{
map.global_mask(0xff);
map(0x00, 0x03).rw("ctc", FUNC(z80ctc_device::read), FUNC(z80ctc_device::write));
}
void cpzodiac_state::sound_map(address_map &map)
{
map(0x0000, 0x7fff).rom();
map(0xc000, 0xffff).ram();
map(0xc000, 0xdfff).ram();
map(0xe000, 0xe003).rw("ymsnd", FUNC(ym2610_device::read), FUNC(ym2610_device::write));
map(0xe200, 0xe200).w("syt", FUNC(tc0140syt_device::slave_port_w));
map(0xe201, 0xe201).rw("syt", FUNC(tc0140syt_device::slave_comm_r), FUNC(tc0140syt_device::slave_comm_w));
map(0xf200, 0xf200).nopw();
}
@ -88,11 +106,25 @@ INPUT_PORTS_END
***************************************************************************/
static const z80_daisy_config daisy_chain[] =
{
{ "ctc" },
{ nullptr }
};
MACHINE_CONFIG_START(cpzodiac_state::cpzodiac)
/* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", Z80, 12_MHz_XTAL/2)
MCFG_DEVICE_PROGRAM_MAP(main_map)
MCFG_DEVICE_IO_MAP(main_io_map)
MCFG_Z80_DAISY_CHAIN(daisy_chain)
MCFG_DEVICE_ADD("io", TE7750, 0)
MCFG_TE7750_IOS_CB(CONSTANT(2))
MCFG_DEVICE_ADD("ctc", Z80CTC, 12_MHz_XTAL/2)
MCFG_Z80CTC_INTR_CB(INPUTLINE("maincpu", 0))
MCFG_DEVICE_ADD("audiocpu", Z80, 12_MHz_XTAL/2)
MCFG_DEVICE_PROGRAM_MAP(sound_map)
@ -110,6 +142,10 @@ MACHINE_CONFIG_START(cpzodiac_state::cpzodiac)
MCFG_SOUND_ROUTE(0, "rspeaker", 0.25)
MCFG_SOUND_ROUTE(1, "lspeaker", 1.0)
MCFG_SOUND_ROUTE(2, "rspeaker", 1.0)
MCFG_DEVICE_ADD("syt", TC0140SYT, 0)
MCFG_TC0140SYT_MASTER_CPU("maincpu")
MCFG_TC0140SYT_SLAVE_CPU("audiocpu")
MACHINE_CONFIG_END