mirror of
https://github.com/holub/mame
synced 2025-06-30 16:00:01 +03:00
m6802, nsc8105: Internalize internal RAM (nw)
This commit is contained in:
parent
679858e85d
commit
550b5bb87f
@ -348,13 +348,27 @@ m6802_cpu_device::m6802_cpu_device(const machine_config &mconfig, const char *ta
|
||||
}
|
||||
|
||||
m6802_cpu_device::m6802_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, const op_func *insn, const uint8_t *cycles)
|
||||
: m6800_cpu_device(mconfig, type, tag, owner, clock, insn, cycles, address_map_constructor())
|
||||
: m6800_cpu_device(mconfig, type, tag, owner, clock, insn, cycles, address_map_constructor(FUNC(m6802_cpu_device::ram_map), this))
|
||||
, m_ram_enable(true)
|
||||
{
|
||||
}
|
||||
|
||||
void m6802_cpu_device::ram_map(address_map &map)
|
||||
{
|
||||
if (m_ram_enable)
|
||||
map(0x0000, 0x007f).ram();
|
||||
}
|
||||
|
||||
m6808_cpu_device::m6808_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
|
||||
: m6802_cpu_device(mconfig, M6808, tag, owner, clock, m6800_insn, cycles_6800)
|
||||
{
|
||||
set_ram_enable(false);
|
||||
}
|
||||
|
||||
void m6808_cpu_device::device_validity_check(validity_checker &valid) const
|
||||
{
|
||||
if (m_ram_enable)
|
||||
osd_printf_error("MC6808 should not have internal RAM enabled\n");
|
||||
}
|
||||
|
||||
nsc8105_cpu_device::nsc8105_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
|
||||
|
@ -368,12 +368,19 @@ class m6802_cpu_device : public m6800_cpu_device
|
||||
public:
|
||||
m6802_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
|
||||
void set_ram_enable(bool re) { assert(!configured()); m_ram_enable = re; }
|
||||
|
||||
protected:
|
||||
m6802_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, const m6800_cpu_device::op_func *insn, const uint8_t *cycles);
|
||||
|
||||
virtual uint64_t execute_clocks_to_cycles(uint64_t clocks) const noexcept override { return (clocks + 4 - 1) / 4; }
|
||||
virtual uint64_t execute_cycles_to_clocks(uint64_t cycles) const noexcept override { return (cycles * 4); }
|
||||
virtual std::unique_ptr<util::disasm_interface> create_disassembler() override;
|
||||
|
||||
bool m_ram_enable;
|
||||
|
||||
private:
|
||||
void ram_map(address_map &map);
|
||||
};
|
||||
|
||||
|
||||
@ -384,6 +391,7 @@ public:
|
||||
|
||||
protected:
|
||||
virtual std::unique_ptr<util::disasm_interface> create_disassembler() override;
|
||||
virtual void device_validity_check(validity_checker &valid) const override;
|
||||
};
|
||||
|
||||
|
||||
|
@ -421,7 +421,6 @@ void swtpc8212_device::device_reset()
|
||||
|
||||
void swtpc8212_device::mem_map(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x007f).ram();
|
||||
map(0x0080, 0x0083).rw("pia0", FUNC(pia6821_device::read), FUNC(pia6821_device::write));
|
||||
map(0x0088, 0x0088).w("crtc", FUNC(mc6845_device::address_w));
|
||||
map(0x0089, 0x0089).rw("crtc", FUNC(mc6845_device::register_r), FUNC(mc6845_device::register_w));
|
||||
|
@ -597,7 +597,6 @@ TIMER_CALLBACK_MEMBER(bally_squawk_n_talk_device::sound_int_sync)
|
||||
void bally_squawk_n_talk_device::squawk_n_talk_map(address_map &map)
|
||||
{
|
||||
map.unmap_value_high();
|
||||
map(0x0000, 0x007f).ram(); // internal RAM, could also be jumpered to use a 6808
|
||||
map(0x0080, 0x0083).mirror(0x4f6c).rw("pia2", FUNC(pia6821_device::read), FUNC(pia6821_device::write));
|
||||
map(0x0090, 0x0093).mirror(0x4f6c).rw("pia1", FUNC(pia6821_device::read), FUNC(pia6821_device::write));
|
||||
map(0x1000, 0x1000).mirror(0x40ff).w("dac", FUNC(dac_byte_interface::data_w));
|
||||
@ -612,7 +611,7 @@ void bally_squawk_n_talk_device::squawk_n_talk_map(address_map &map)
|
||||
//-------------------------------------------------
|
||||
void bally_squawk_n_talk_device::device_add_mconfig(machine_config &config)
|
||||
{
|
||||
M6802(config, m_cpu, DERIVED_CLOCK(1, 1));
|
||||
M6802(config, m_cpu, DERIVED_CLOCK(1, 1)); // could also be jumpered to use a 6808
|
||||
m_cpu->set_addrmap(AS_PROGRAM, &bally_squawk_n_talk_device::squawk_n_talk_map);
|
||||
|
||||
PIA6821(config, m_pia1, 0);
|
||||
|
@ -156,7 +156,6 @@ WRITE_LINE_MEMBER(qix_state::qix_pia_sint)
|
||||
|
||||
void qix_state::audio_map(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x007f).ram();
|
||||
map(0x2000, 0x2003).mirror(0x5ffc).rw(m_sndpia2, FUNC(pia6821_device::read), FUNC(pia6821_device::write));
|
||||
map(0x4000, 0x4003).mirror(0x3ffc).rw(m_sndpia1, FUNC(pia6821_device::read), FUNC(pia6821_device::write));
|
||||
map(0xd000, 0xffff).rom();
|
||||
|
@ -303,10 +303,8 @@ WRITE8_MEMBER(redalert_state::demoneye_ay8910_data_w)
|
||||
|
||||
void redalert_state::demoneye_audio_map(address_map &map)
|
||||
{
|
||||
map.global_mask(0x3fff);
|
||||
map(0x0000, 0x007f).ram();
|
||||
map(0x0500, 0x0503).rw("sndpia", FUNC(pia6821_device::read), FUNC(pia6821_device::write));
|
||||
map(0x2000, 0x3fff).rom();
|
||||
map(0x0500, 0x0503).mirror(0xc000).rw("sndpia", FUNC(pia6821_device::read), FUNC(pia6821_device::write));
|
||||
map(0x2000, 0x3fff).mirror(0xc000).rom();
|
||||
}
|
||||
|
||||
|
||||
|
@ -31,7 +31,6 @@ DEFINE_DEVICE_TYPE(ZACCARIA_1B11142, zac1b11142_audio_device, "zac1b11142", "Zac
|
||||
void zac1b111xx_melody_base::zac1b111xx_melody_base_map(address_map &map)
|
||||
{
|
||||
map.unmap_value_high();
|
||||
map(0x0000, 0x007f).ram(); // 6802 internal RAM
|
||||
map(0x400c, 0x400f).mirror(0x1ff0).rw("melodypia", FUNC(pia6821_device::read), FUNC(pia6821_device::write));
|
||||
}
|
||||
|
||||
@ -132,7 +131,6 @@ void zac1b11142_audio_device::zac1b11142_melody_map(address_map &map)
|
||||
void zac1b11142_audio_device::zac1b11142_audio_map(address_map &map)
|
||||
{
|
||||
map.unmap_value_high();
|
||||
map(0x0000, 0x007f).ram(); // 6802 internal RAM
|
||||
map(0x0090, 0x0093).mirror(0x8f6c).rw("pia_1i", FUNC(pia6821_device::read), FUNC(pia6821_device::write));
|
||||
map(0x1000, 0x1000).mirror(0x83ff).w("dac", FUNC(dac_byte_interface::data_w));
|
||||
map(0x1400, 0x1400).mirror(0xc3ff).w(FUNC(zac1b11142_audio_device::melody_command_w));
|
||||
|
@ -876,7 +876,6 @@ void _8080bw_state::invrvnge_io_map(address_map &map)
|
||||
|
||||
void _8080bw_state::invrvnge_sound_map(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x007f).ram(); // inside CPU
|
||||
map(0xa001, 0xa001).r("psg",FUNC(ay8910_device::data_r));
|
||||
map(0xa002, 0xa003).w("psg",FUNC(ay8910_device::data_address_w));
|
||||
map(0xc000, 0xc7ff).mirror(0x1800).rom();
|
||||
|
@ -55,7 +55,6 @@ void barni_state::subcpu_map(address_map &map)
|
||||
|
||||
void barni_state::audiocpu_map(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x007f).ram();
|
||||
map(0xc000, 0xffff).rom();
|
||||
}
|
||||
|
||||
|
@ -242,7 +242,6 @@ void by35_state::by35_map(address_map &map)
|
||||
void by35_state::nuovo_map(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x07ff).ram().share("nvram");
|
||||
// map(0x0000, 0x007f).ram(); // Schematics infer that the M6802 internal RAM is disabled.
|
||||
map(0x0088, 0x008b).rw(m_pia_u10, FUNC(pia6821_device::read), FUNC(pia6821_device::write));
|
||||
map(0x0090, 0x0093).rw(m_pia_u11, FUNC(pia6821_device::read), FUNC(pia6821_device::write));
|
||||
map(0x1000, 0xffff).rom();
|
||||
@ -1502,8 +1501,9 @@ void by35_state::nuovo(machine_config &config)
|
||||
{
|
||||
by35(config);
|
||||
|
||||
M6802(config.replace(), m_maincpu, 2000000); // ? MHz ? Large crystal next to CPU, schematics don't indicate speed.
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &by35_state::nuovo_map);
|
||||
m6802_cpu_device &maincpu(M6802(config.replace(), m_maincpu, 2000000)); // ? MHz ? Large crystal next to CPU, schematics don't indicate speed.
|
||||
maincpu.set_addrmap(AS_PROGRAM, &by35_state::nuovo_map);
|
||||
maincpu.set_ram_enable(false); // Schematics imply that the M6802 internal RAM is disabled.
|
||||
}
|
||||
|
||||
void by35_state::as2888(machine_config &config)
|
||||
|
@ -59,7 +59,7 @@ void clowndwn_state::machine_reset()
|
||||
void clowndwn_state::clowndwn(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
M6802(config, m_maincpu, 8000000); // unknown type and clock
|
||||
M6808(config, m_maincpu, 8000000); // unknown type and clock
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &clowndwn_state::clowndwn_map);
|
||||
|
||||
PIA6821(config, "pia0", 0);
|
||||
|
@ -95,13 +95,11 @@ private:
|
||||
void datum_state::datum_mem(address_map &map)
|
||||
{
|
||||
map.unmap_value_high();
|
||||
map.global_mask(0x7fff); // A15 not used
|
||||
map(0x0000, 0x007f).ram(); // inside CPU
|
||||
map(0x1000, 0x13ff).mirror(0x0c00).ram(); // main ram 2x 2114
|
||||
map(0x4000, 0x4001).mirror(0x0ffe).rw(m_acia, FUNC(acia6850_device::read), FUNC(acia6850_device::write));
|
||||
map(0x5000, 0x5003).mirror(0x0ffc).rw(m_pia2, FUNC(pia6821_device::read), FUNC(pia6821_device::write));
|
||||
map(0x6000, 0x6003).mirror(0x0ffc).rw(m_pia1, FUNC(pia6821_device::read), FUNC(pia6821_device::write));
|
||||
map(0x7000, 0x77ff).mirror(0x0800).rom().region("roms", 0);
|
||||
map(0x1000, 0x13ff).mirror(0x8c00).ram(); // main ram 2x 2114
|
||||
map(0x4000, 0x4001).mirror(0x8ffe).rw(m_acia, FUNC(acia6850_device::read), FUNC(acia6850_device::write));
|
||||
map(0x5000, 0x5003).mirror(0x8ffc).rw(m_pia2, FUNC(pia6821_device::read), FUNC(pia6821_device::write));
|
||||
map(0x6000, 0x6003).mirror(0x8ffc).rw(m_pia1, FUNC(pia6821_device::read), FUNC(pia6821_device::write));
|
||||
map(0x7000, 0x77ff).mirror(0x8800).rom().region("roms", 0);
|
||||
}
|
||||
|
||||
|
||||
|
@ -649,7 +649,6 @@ void modulab_state::machine_start()
|
||||
// This address map is traced from pcb
|
||||
void modulab_state::modulab_map(address_map &map)
|
||||
{
|
||||
//map(0x0000, 0x007f).ram() // Schematics holds RAM enable low so that the M6802 internal RAM is disabled.
|
||||
map(0x0000, 0x03ff).ram().mirror(0xe000); // RAM0 always present 2114
|
||||
map(0x0400, 0x07ff).ram().mirror(0xe000); // RAM1 optional 2114
|
||||
// map(0x0800, 0x13ff).ram().mirror(0xe000); // expansion port area consisting of 3 chip selects each selecting 0x3ff byte addresses
|
||||
@ -781,8 +780,9 @@ INPUT_CHANGED_MEMBER(didact_state::trigger_reset)
|
||||
|
||||
void modulab_state::modulab(machine_config &config)
|
||||
{
|
||||
M6802(config, m_maincpu, XTAL(4'000'000));
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &modulab_state::modulab_map);
|
||||
m6802_cpu_device &maincpu(M6802(config, m_maincpu, XTAL(4'000'000)));
|
||||
maincpu.set_ram_enable(false); // Schematics holds RAM enable low so that the M6802 internal RAM is disabled.
|
||||
maincpu.set_addrmap(AS_PROGRAM, &modulab_state::modulab_map);
|
||||
config.set_default_layout(layout_modulab);
|
||||
|
||||
/* Devices */
|
||||
@ -805,8 +805,9 @@ void modulab_state::modulab(machine_config &config)
|
||||
|
||||
void md6802_state::md6802(machine_config &config)
|
||||
{
|
||||
M6802(config, m_maincpu, XTAL(4'000'000));
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &md6802_state::md6802_map);
|
||||
m6802_cpu_device &maincpu(M6802(config, m_maincpu, XTAL(4'000'000)));
|
||||
maincpu.set_ram_enable(false);
|
||||
maincpu.set_addrmap(AS_PROGRAM, &md6802_state::md6802_map);
|
||||
config.set_default_layout(layout_md6802);
|
||||
|
||||
/* Devices */
|
||||
|
@ -537,6 +537,7 @@ INPUT_PORTS_END
|
||||
void e100_state::e100(machine_config &config)
|
||||
{
|
||||
M6802(config, m_maincpu, XTAL(4'000'000));
|
||||
m_maincpu->set_ram_enable(false);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &e100_state::e100_map);
|
||||
|
||||
/* Devices */
|
||||
|
@ -85,7 +85,7 @@ private:
|
||||
bool m_nmi;
|
||||
virtual void machine_reset() override;
|
||||
virtual void machine_start() override { m_digits.resolve(); }
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<m6802_cpu_device> m_maincpu;
|
||||
required_device<pia6821_device> m_pia;
|
||||
required_shared_ptr<uint8_t> m_p_nvram;
|
||||
output_finder<7> m_digits;
|
||||
@ -249,6 +249,7 @@ void eacc_state::eacc(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
M6802(config, m_maincpu, XTAL(3'579'545)); /* Divided by 4 inside the m6802*/
|
||||
m_maincpu->set_ram_enable(false); // FIXME: needs standby support
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &eacc_state::eacc_mem);
|
||||
|
||||
config.set_default_layout(layout_eacc);
|
||||
|
@ -362,7 +362,6 @@ void efdt_state::efdt_map(address_map &map)
|
||||
|
||||
void efdt_state::efdt_snd_map(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x007f).ram();
|
||||
map(0x6000, 0x6000).nopw();
|
||||
map(0x7000, 0x7000).nopw();
|
||||
map(0x8000, 0x83ff).ram();
|
||||
|
@ -103,7 +103,6 @@ private:
|
||||
void hankin_state::hankin_map(address_map &map)
|
||||
{
|
||||
map.global_mask(0x1fff);
|
||||
map(0x0000, 0x007f).ram(); // internal to the cpu
|
||||
map(0x0088, 0x008b).rw(m_ic11, FUNC(pia6821_device::read), FUNC(pia6821_device::write));
|
||||
map(0x0090, 0x0093).rw(m_ic10, FUNC(pia6821_device::read), FUNC(pia6821_device::write));
|
||||
map(0x0200, 0x02ff).ram().share("nvram"); // 5101L 4-bit static ram
|
||||
@ -113,7 +112,6 @@ void hankin_state::hankin_map(address_map &map)
|
||||
void hankin_state::hankin_sub_map(address_map &map)
|
||||
{
|
||||
map.global_mask(0x1fff);
|
||||
map(0x0000, 0x007f).ram(); // internal to the cpu
|
||||
map(0x0080, 0x0083).rw(m_ic2, FUNC(pia6821_device::read), FUNC(pia6821_device::write));
|
||||
map(0x1000, 0x17ff).rom().mirror(0x800).region("audiocpu", 0);
|
||||
}
|
||||
|
@ -348,7 +348,6 @@ void hyperspt_state::hyperspt(machine_config &config)
|
||||
|
||||
void hyperspt_state::hyprolyb_adpcm_map(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x007f).ram();
|
||||
map(0x1000, 0x1000).r("hyprolyb_adpcm", FUNC(hyprolyb_adpcm_device::data_r));
|
||||
map(0x1001, 0x1001).r("hyprolyb_adpcm", FUNC(hyprolyb_adpcm_device::ready_r));
|
||||
map(0x1002, 0x1002).w("hyprolyb_adpcm", FUNC(hyprolyb_adpcm_device::msm_data_w));
|
||||
|
@ -406,7 +406,6 @@ void jangou_state::jngolady_cpu1_io(address_map &map)
|
||||
|
||||
void jangou_state::nsc_map(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x007f).ram(); //internal ram for irq etc.
|
||||
map(0x8000, 0x8000).nopw(); //write-only,irq related?
|
||||
map(0x9000, 0x9000).rw(FUNC(jangou_state::slave_com_r), FUNC(jangou_state::slave_com_w));
|
||||
map(0xc000, 0xc7ff).ram().share("share1");
|
||||
|
@ -542,7 +542,7 @@ void jr200_state::machine_reset()
|
||||
void jr200_state::jr200(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
M6802(config, m_maincpu, XTAL(14'318'181) / 4); /* MN1800A, ? MHz assumption that it is same as JR-100*/
|
||||
M6808(config, m_maincpu, XTAL(14'318'181) / 4); /* MN1800A, ? MHz assumption that it is same as JR-100*/
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &jr200_state::jr200_mem);
|
||||
|
||||
// MN1544(config, "mn1544", ?);
|
||||
|
@ -104,7 +104,6 @@ void jvh_state::movmastr_io(address_map &map)
|
||||
|
||||
void jvh_state::jvh_sub_map(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x007f).ram();
|
||||
map(0x0080, 0x008f).m("via", FUNC(via6522_device::map));
|
||||
map(0xc000, 0xdfff).mirror(0x2000).rom();
|
||||
}
|
||||
|
@ -524,8 +524,9 @@ TIMER_DEVICE_CALLBACK_MEMBER( ltd_state::timer_r )
|
||||
void ltd_state::ltd3(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
M6802(config, m_maincpu, XTAL(3'579'545));
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, <d_state::ltd3_map);
|
||||
m6802_cpu_device &maincpu(M6802(config, m_maincpu, XTAL(3'579'545)));
|
||||
maincpu.set_ram_enable(false); // FIXME: needs standby support
|
||||
maincpu.set_addrmap(AS_PROGRAM, <d_state::ltd3_map);
|
||||
|
||||
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
|
||||
|
||||
|
@ -186,7 +186,7 @@ private:
|
||||
DECLARE_WRITE8_MEMBER(trace_timer_w);
|
||||
DECLARE_READ8_MEMBER(trace_timer_r);
|
||||
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<m6802_cpu_device> m_maincpu;
|
||||
required_device<ram_device> m_ram;
|
||||
required_memory_bank m_ram_bank;
|
||||
required_device<input_merger_device> m_mainirq;
|
||||
@ -970,6 +970,7 @@ DEVICE_INPUT_DEFAULTS_END
|
||||
void mekd3_state::mekd3(machine_config &config)
|
||||
{
|
||||
M6802(config, m_maincpu, XTAL_MEKD3); // 894.8 kHz clock
|
||||
m_maincpu->set_ram_enable(false);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &mekd3_state::mekd3_mem);
|
||||
|
||||
RAM(config, m_ram).set_default_size("256K").set_default_value(0);
|
||||
|
@ -144,7 +144,7 @@ private:
|
||||
uint8_t m_digit;
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<m6802_cpu_device> m_maincpu;
|
||||
required_device<pia6821_device> m_kpd_pia;
|
||||
required_device<pia6821_device> m_user_pia;
|
||||
required_device<pwm_display_device> m_display;
|
||||
@ -458,6 +458,7 @@ DEVICE_INPUT_DEFAULTS_END
|
||||
void mekd5_state::mekd5(machine_config &config)
|
||||
{
|
||||
M6802(config, m_maincpu, XTAL_MEKD5); /* 894.8 kHz clock */
|
||||
m_maincpu->set_ram_enable(false);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &mekd5_state::mekd5_mem);
|
||||
|
||||
INPUT_MERGER_ANY_HIGH(config, "mainirq").output_handler().set_inputline(m_maincpu, M6802_IRQ_LINE);
|
||||
|
@ -161,7 +161,6 @@ WRITE8_MEMBER(murogem_state::outport_w)
|
||||
|
||||
void murogem_state::murogem_map(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x007f).ram();
|
||||
map(0x4000, 0x4000).w("crtc", FUNC(mc6845_device::address_w));
|
||||
map(0x4001, 0x4001).w("crtc", FUNC(mc6845_device::register_w));
|
||||
map(0x5000, 0x5000).portr("IN0");
|
||||
|
@ -374,7 +374,6 @@ WRITE8_MEMBER(nightgal_state::output_w)
|
||||
|
||||
void nightgal_state::common_nsc_map(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x007f).ram();
|
||||
map(0x0080, 0x0080).portr("BLIT_PORT");
|
||||
map(0x0081, 0x0083).r(FUNC(nightgal_state::royalqn_nsc_blit_r));
|
||||
map(0x00a0, 0x00af).w(m_blitter, FUNC(jangou_blitter_device::vregs_w));
|
||||
|
@ -452,7 +452,6 @@ void nyny_state::nyny_main_map(address_map &map)
|
||||
void nyny_state::nyny_audio_1_map(address_map &map)
|
||||
{
|
||||
map.global_mask(0x7fff);
|
||||
map(0x0000, 0x007f).ram(); /* internal RAM */
|
||||
map(0x0080, 0x0fff).noprw();
|
||||
map(0x1000, 0x1000).mirror(0x0fff).r(m_soundlatch, FUNC(generic_latch_8_device::read)).w(FUNC(nyny_state::audio_1_answer_w));
|
||||
map(0x2000, 0x2000).mirror(0x0fff).portr("SW3");
|
||||
@ -470,7 +469,6 @@ void nyny_state::nyny_audio_1_map(address_map &map)
|
||||
void nyny_state::nyny_audio_2_map(address_map &map)
|
||||
{
|
||||
map.global_mask(0x7fff);
|
||||
map(0x0000, 0x007f).ram(); /* internal RAM */
|
||||
map(0x0080, 0x0fff).noprw();
|
||||
map(0x1000, 0x1000).mirror(0x0fff).r(m_soundlatch2, FUNC(generic_latch_8_device::read));
|
||||
map(0x2000, 0x2000).mirror(0x0ffe).r("ay3", FUNC(ay8910_device::data_r));
|
||||
|
@ -31,7 +31,6 @@ private:
|
||||
|
||||
void pubtimed_state::mem_map(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x007f).ram();
|
||||
map(0x0800, 0x080f).ram(); // LCD segment driver?
|
||||
map(0x0820, 0x083f).ram(); // LCD segment driver?
|
||||
map(0x4000, 0x4000).portr("UNKNOWN");
|
||||
|
@ -348,7 +348,6 @@ void r2dtank_state::r2dtank_main_map(address_map &map)
|
||||
|
||||
void r2dtank_state::r2dtank_audio_map(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x007f).ram(); /* internal RAM */
|
||||
map(0xd000, 0xd003).rw("pia_audio", FUNC(pia6821_device::read), FUNC(pia6821_device::write));
|
||||
map(0xf000, 0xf000).rw(FUNC(r2dtank_state::audio_command_r), FUNC(r2dtank_state::audio_answer_w));
|
||||
map(0xf800, 0xffff).rom();
|
||||
|
@ -20,7 +20,6 @@ ToDo:
|
||||
#include "emu.h"
|
||||
#include "includes/s11.h"
|
||||
|
||||
#include "cpu/m6800/m6800.h"
|
||||
#include "cpu/m6809/m6809.h"
|
||||
#include "sound/volt_reg.h"
|
||||
#include "speaker.h"
|
||||
|
@ -237,6 +237,7 @@ void s11a_state::s11a(machine_config &config)
|
||||
|
||||
/* Add the soundcard */
|
||||
M6802(config, m_audiocpu, XTAL(4'000'000));
|
||||
m_audiocpu->set_ram_enable(false);
|
||||
m_audiocpu->set_addrmap(AS_PROGRAM, &s11a_state::s11a_audio_map);
|
||||
|
||||
SPEAKER(config, "speaker").front_center();
|
||||
|
@ -313,6 +313,7 @@ void s11b_state::s11b(machine_config &config)
|
||||
|
||||
/* Add the soundcard */
|
||||
M6802(config, m_audiocpu, XTAL(4'000'000));
|
||||
m_audiocpu->set_ram_enable(false);
|
||||
m_audiocpu->set_addrmap(AS_PROGRAM, &s11b_state::s11b_audio_map);
|
||||
|
||||
SPEAKER(config, "speaker").front_center();
|
||||
|
@ -130,7 +130,6 @@ void s3_state::s3_main_map(address_map &map)
|
||||
void s3_state::s3_audio_map(address_map &map)
|
||||
{
|
||||
map.global_mask(0xfff);
|
||||
map(0x0000, 0x007f).ram();
|
||||
map(0x0400, 0x0403).rw(m_pias, FUNC(pia6821_device::read), FUNC(pia6821_device::write)); // sounds
|
||||
map(0x0800, 0x0fff).rom().region("audioroms", 0);
|
||||
}
|
||||
|
@ -141,7 +141,7 @@ void s6_state::s6_main_map(address_map &map)
|
||||
void s6_state::s6_audio_map(address_map &map)
|
||||
{
|
||||
map.global_mask(0x7fff);
|
||||
map(0x0000, 0x00ff).ram();
|
||||
map(0x0080, 0x00ff).ram(); // external 6810 RAM
|
||||
map(0x0400, 0x0403).rw(m_pias, FUNC(pia6821_device::read), FUNC(pia6821_device::write));
|
||||
map(0x3000, 0x7fff).rom().region("audioroms", 0);
|
||||
}
|
||||
|
@ -133,7 +133,7 @@ void s6a_state::s6a_main_map(address_map &map)
|
||||
|
||||
void s6a_state::s6a_audio_map(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x00ff).ram();
|
||||
map(0x0080, 0x00ff).ram(); // external 6810 RAM
|
||||
map(0x0400, 0x0403).mirror(0x8000).rw(m_pias, FUNC(pia6821_device::read), FUNC(pia6821_device::write));
|
||||
map(0xb000, 0xffff).rom().region("audioroms", 0);
|
||||
}
|
||||
|
@ -109,7 +109,7 @@ private:
|
||||
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
|
||||
static const device_timer_id TIMER_IRQ = 0;
|
||||
virtual void machine_start() override { m_digits.resolve(); }
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<m6802_cpu_device> m_maincpu;
|
||||
required_device<cpu_device> m_audiocpu;
|
||||
required_device<pia6821_device> m_pias;
|
||||
required_device<pia6821_device> m_pia21;
|
||||
@ -321,6 +321,7 @@ void s8_state::s8(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
M6802(config, m_maincpu, XTAL(4'000'000));
|
||||
m_maincpu->set_ram_enable(false);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &s8_state::s8_main_map);
|
||||
MCFG_MACHINE_RESET_OVERRIDE(s8_state, s8)
|
||||
|
||||
|
@ -85,7 +85,7 @@ private:
|
||||
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
|
||||
static const device_timer_id TIMER_IRQ = 0;
|
||||
virtual void machine_start() override { m_digits.resolve(); }
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<m6802_cpu_device> m_maincpu;
|
||||
required_device<cpu_device> m_audiocpu;
|
||||
required_device<pia6821_device> m_pias;
|
||||
required_device<pia6821_device> m_pia21;
|
||||
@ -293,6 +293,7 @@ void s8a_state::s8a(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
M6802(config, m_maincpu, XTAL(4'000'000));
|
||||
m_maincpu->set_ram_enable(false);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &s8a_state::s8a_main_map);
|
||||
MCFG_MACHINE_RESET_OVERRIDE(s8a_state, s8a)
|
||||
|
||||
|
@ -135,7 +135,6 @@ void seicross_state::main_portmap(address_map &map)
|
||||
|
||||
void seicross_state::mcu_nvram_map(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x007f).ram();
|
||||
map(0x1000, 0x10ff).ram().share("nvram");
|
||||
map(0x2000, 0x2000).w(FUNC(seicross_state::dac_w));
|
||||
map(0x8000, 0xf7ff).rom().region("maincpu", 0);
|
||||
@ -144,7 +143,6 @@ void seicross_state::mcu_nvram_map(address_map &map)
|
||||
|
||||
void seicross_state::mcu_no_nvram_map(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x007f).ram();
|
||||
map(0x1003, 0x1003).portr("DSW1"); /* DSW1 */
|
||||
map(0x1005, 0x1005).portr("DSW2"); /* DSW2 */
|
||||
map(0x1006, 0x1006).portr("DSW3"); /* DSW3 */
|
||||
|
@ -140,7 +140,6 @@ void taito_state::taito_map(address_map &map)
|
||||
void taito_state::taito_sub_map(address_map &map)
|
||||
{
|
||||
map.global_mask(0x1fff);
|
||||
map(0x0000, 0x007f).ram(); // internal to the cpu
|
||||
map(0x0400, 0x0403).rw(m_pia, FUNC(pia6821_device::read), FUNC(pia6821_device::write));
|
||||
map(0x0800, 0x1fff).rom().region("cpu2", 0x0800);
|
||||
}
|
||||
@ -148,7 +147,6 @@ void taito_state::taito_sub_map(address_map &map)
|
||||
void taito_state::taito_sub_map2(address_map &map)
|
||||
{
|
||||
map.global_mask(0x3fff);
|
||||
map(0x0000, 0x007f).ram(); // internal to the cpu
|
||||
map(0x0400, 0x0403).rw(m_pia, FUNC(pia6821_device::read), FUNC(pia6821_device::write));
|
||||
map(0x2000, 0x3fff).rom().region("cpu2", 0x2000);
|
||||
}
|
||||
@ -156,7 +154,6 @@ void taito_state::taito_sub_map2(address_map &map)
|
||||
void taito_state::taito_sub_map5(address_map &map)
|
||||
{
|
||||
map.global_mask(0x7fff);
|
||||
map(0x0000, 0x007f).ram(); // internal to the cpu
|
||||
map(0x0400, 0x0403).rw(m_pia, FUNC(pia6821_device::read), FUNC(pia6821_device::write));
|
||||
map(0x1000, 0x1000).w("aysnd_0", FUNC(ay8910_device::address_w));
|
||||
map(0x1003, 0x1003).w("aysnd_0", FUNC(ay8910_device::address_w));
|
||||
@ -194,7 +191,6 @@ void taito_state::shock_map(address_map &map)
|
||||
void taito_state::shock_sub_map(address_map &map)
|
||||
{
|
||||
map.global_mask(0x0fff);
|
||||
map(0x0000, 0x007f).ram(); // internal to the cpu
|
||||
map(0x0400, 0x0403).rw(m_pia, FUNC(pia6821_device::read), FUNC(pia6821_device::write));
|
||||
map(0x0800, 0x0fff).rom().region("cpu2", 0);
|
||||
}
|
||||
|
@ -276,6 +276,7 @@ void tdv2324_state::tdv2324(machine_config &config)
|
||||
m_subcpu->set_addrmap(AS_IO, &tdv2324_state::tdv2324_sub_io);
|
||||
|
||||
M6802(config, m_fdccpu, 8000000/2); // ???
|
||||
m_fdccpu->set_ram_enable(false);
|
||||
m_fdccpu->set_addrmap(AS_PROGRAM, &tdv2324_state::tdv2324_fdc_mem);
|
||||
|
||||
// video hardware
|
||||
|
@ -1032,7 +1032,6 @@ void trackfld_state::yieartf(machine_config &config)
|
||||
|
||||
void trackfld_state::hyprolyb_adpcm_map(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x007f).ram();
|
||||
map(0x1000, 0x1000).r("hyprolyb_adpcm", FUNC(hyprolyb_adpcm_device::data_r));
|
||||
map(0x1001, 0x1001).r("hyprolyb_adpcm", FUNC(hyprolyb_adpcm_device::ready_r));
|
||||
map(0x1002, 0x1002).w("hyprolyb_adpcm", FUNC(hyprolyb_adpcm_device::msm_data_w));
|
||||
|
@ -103,7 +103,6 @@ TP-S.1 TP-S.2 TP-S.3 TP-B.1 8212 TP-B.2 TP-B.3 TP-B.4
|
||||
#include "emu.h"
|
||||
#include "includes/tubep.h"
|
||||
|
||||
#include "cpu/m6800/m6800.h"
|
||||
#include "cpu/z80/z80.h"
|
||||
#include "cpu/m6805/m6805.h"
|
||||
#include "machine/74259.h"
|
||||
@ -836,6 +835,7 @@ void tubep_state::tubep(machine_config &config)
|
||||
m_soundcpu->set_addrmap(AS_IO, &tubep_state::tubep_sound_portmap);
|
||||
|
||||
NSC8105(config, m_mcu, 6000000); /* 6 MHz Xtal - divided internally ??? */
|
||||
m_mcu->set_ram_enable(false);
|
||||
m_mcu->set_addrmap(AS_PROGRAM, &tubep_state::nsc_map);
|
||||
|
||||
config.set_maximum_quantum(attotime::from_hz(6000));
|
||||
@ -885,6 +885,7 @@ void tubep_state::tubepb(machine_config &config)
|
||||
tubep(config);
|
||||
|
||||
M6802(config.replace(), m_mcu, 6000000); /* ? MHz Xtal */
|
||||
m_mcu->set_ram_enable(false);
|
||||
m_mcu->set_addrmap(AS_PROGRAM, &tubep_state::nsc_map);
|
||||
|
||||
//m_screen->screen_vblank().set_inputline(m_mcu, INPUT_LINE_NMI);
|
||||
@ -908,6 +909,7 @@ void tubep_state::rjammer(machine_config &config)
|
||||
GENERIC_LATCH_8(config, "soundlatch").data_pending_callback().set_inputline(m_soundcpu, INPUT_LINE_NMI);
|
||||
|
||||
NSC8105(config, m_mcu, 6000000); /* 6 MHz Xtal - divided internally ??? */
|
||||
m_mcu->set_ram_enable(false);
|
||||
m_mcu->set_addrmap(AS_PROGRAM, &tubep_state::nsc_map);
|
||||
|
||||
ls259_device &mainlatch(LS259(config, "mainlatch")); // 3A
|
||||
|
@ -57,7 +57,7 @@ private:
|
||||
|
||||
void _6802_mem(address_map &map);
|
||||
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<m6802_cpu_device> m_maincpu;
|
||||
required_device<votrax_sc01_device> m_votrax;
|
||||
required_device<clock_device> m_clock;
|
||||
};
|
||||
@ -140,6 +140,7 @@ void votrtnt_state::votrtnt(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
M6802(config, m_maincpu, 2.4576_MHz_XTAL); // 2.4576MHz XTAL, verified; divided by 4 inside the MC6802
|
||||
m_maincpu->set_ram_enable(false);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &votrtnt_state::_6802_mem);
|
||||
|
||||
/* video hardware */
|
||||
|
@ -9,6 +9,7 @@
|
||||
#ifndef MAME_INCLUDES_S11_H
|
||||
#define MAME_INCLUDES_S11_H
|
||||
|
||||
#include "cpu/m6800/m6800.h"
|
||||
#include "audio/s11c_bg.h"
|
||||
#include "machine/6821pia.h"
|
||||
#include "machine/genpin.h"
|
||||
@ -96,7 +97,7 @@ protected:
|
||||
|
||||
// devices
|
||||
required_device<cpu_device> m_maincpu;
|
||||
optional_device<cpu_device> m_audiocpu;
|
||||
optional_device<m6802_cpu_device> m_audiocpu;
|
||||
optional_device<cpu_device> m_bgcpu;
|
||||
optional_device<hc55516_device> m_hc55516;
|
||||
optional_device<pia6821_device> m_pias;
|
||||
|
@ -65,7 +65,7 @@ public:
|
||||
private:
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<cpu_device> m_subcpu;
|
||||
required_device<cpu_device> m_fdccpu;
|
||||
required_device<m6802_cpu_device> m_fdccpu;
|
||||
required_device<z80dart_device> m_sio;
|
||||
required_device<pic8259_device> m_pic;
|
||||
required_device<pit8253_device> m_pit0;
|
||||
|
@ -5,6 +5,7 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "cpu/m6800/m6800.h"
|
||||
#include "sound/msm5205.h"
|
||||
#include "emupal.h"
|
||||
#include "screen.h"
|
||||
@ -117,7 +118,7 @@ private:
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<cpu_device> m_soundcpu;
|
||||
required_device<cpu_device> m_slave;
|
||||
required_device<cpu_device> m_mcu;
|
||||
required_device<m6802_cpu_device> m_mcu;
|
||||
optional_device<msm5205_device> m_msm;
|
||||
required_device<screen_device> m_screen;
|
||||
|
||||
|
@ -80,7 +80,6 @@ WRITE_LINE_MEMBER( cmi_alphanumeric_keyboard_device::rts_w )
|
||||
void cmi_alphanumeric_keyboard_device::alphakeys_map(address_map &map)
|
||||
{
|
||||
map.unmap_value_high();
|
||||
map(0x0000, 0x007f).ram();
|
||||
map(0x4000, 0x7fff).portr("OPTIONS");
|
||||
map(0x8000, 0xbfff).rw(m_pia, FUNC(pia6821_device::read), FUNC(pia6821_device::write));
|
||||
map(0xc000, 0xc3ff).rom().mirror(0x3c00);
|
||||
|
@ -305,7 +305,6 @@ WRITE_LINE_MEMBER( cmi_music_keyboard_device::kbd_cts_w )
|
||||
void cmi_music_keyboard_device::muskeys_map(address_map &map)
|
||||
{
|
||||
map.unmap_value_high();
|
||||
map(0x0000, 0x007f).ram();
|
||||
map(0x0080, 0x0083).rw(m_cmi10_pia_u21, FUNC(pia6821_device::read), FUNC(pia6821_device::write));
|
||||
map(0x0090, 0x0093).rw(m_cmi10_pia_u20, FUNC(pia6821_device::read), FUNC(pia6821_device::write));
|
||||
map(0x00a0, 0x00a1).rw(m_acia_kbd, FUNC(acia6850_device::read), FUNC(acia6850_device::write));
|
||||
|
Loading…
Reference in New Issue
Block a user