mirror of
https://github.com/holub/mame
synced 2025-06-06 21:03:47 +03:00
More 63H149 work (nw)
This commit is contained in:
parent
24579647dc
commit
c0cc0bedc6
@ -81,7 +81,7 @@ void alphajuno_state::ajuno1_ext_map(address_map &map)
|
||||
void alphajuno_state::ajuno2_ext_map(address_map &map)
|
||||
{
|
||||
map(0x2000, 0x27ff).mirror(0xd800).ram().share("nvram");
|
||||
map(0x5000, 0x57ff).mirror(0x800).rw("key", FUNC(mb63h149_device::read), FUNC(mb63h149_device::write));
|
||||
map(0x5000, 0x57ff).mirror(0x800).rw("keyscan", FUNC(mb63h149_device::read), FUNC(mb63h149_device::write));
|
||||
map(0x8000, 0x8008).w(FUNC(alphajuno_state::lcd_w));
|
||||
}
|
||||
|
||||
@ -138,8 +138,8 @@ void alphajuno_state::ajuno2(machine_config &config)
|
||||
ajuno1(config);
|
||||
m_maincpu->set_addrmap(AS_IO, &alphajuno_state::ajuno2_ext_map);
|
||||
|
||||
mb63h149_device &key(MB63H149(config, "key", 12_MHz_XTAL));
|
||||
key.int_callback().set_inputline(m_maincpu, MCS51_INT0_LINE);
|
||||
mb63h149_device &keyscan(MB63H149(config, "keyscan", 12_MHz_XTAL));
|
||||
keyscan.int_callback().set_inputline(m_maincpu, MCS51_INT0_LINE);
|
||||
}
|
||||
|
||||
void alphajuno_state::mks50(machine_config &config)
|
||||
|
@ -235,7 +235,7 @@ void roland_d10_state::d10_map(address_map &map)
|
||||
map(0x0200, 0x0200).w(FUNC(roland_d10_state::so_w));
|
||||
map(0x0300, 0x0300).w(FUNC(roland_d10_state::lcd_data_w));
|
||||
map(0x0380, 0x0380).rw(FUNC(roland_d10_state::lcd_ctrl_r), FUNC(roland_d10_state::lcd_ctrl_w));
|
||||
map(0x0c00, 0x0dff).rw("key", FUNC(mb63h149_device::read), FUNC(mb63h149_device::write));
|
||||
map(0x0c00, 0x0dff).rw("keyscan", FUNC(mb63h149_device::read), FUNC(mb63h149_device::write));
|
||||
map(0x1000, 0x7fff).rom().region("maincpu", 0x1000);
|
||||
map(0x8000, 0xbfff).m(m_bank, FUNC(address_map_bank_device::amap8));
|
||||
map(0xc000, 0xffff).rw(FUNC(roland_d10_state::fixed_r), FUNC(roland_d10_state::fixed_w));
|
||||
@ -291,8 +291,8 @@ void roland_d10_state::d10(machine_config &config)
|
||||
// Shall become a proper memcard device someday
|
||||
NVRAM( config, m_memcs, nvram_device::DEFAULT_ALL_0 );
|
||||
|
||||
MB63H149(config, "key", 16.384_MHz_XTAL);
|
||||
//key.int_callback().set_inputline(m_maincpu, i8x9x_device::HSI0_LINE);
|
||||
MB63H149(config, "keyscan", 16.384_MHz_XTAL);
|
||||
//keyscan.int_callback().set_inputline(m_maincpu, i8x9x_device::HSI0_LINE);
|
||||
|
||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD));
|
||||
screen.set_refresh_hz(50);
|
||||
@ -319,7 +319,7 @@ void roland_d10_state::d110(machine_config &config)
|
||||
//m_bank->set_data_width(8);
|
||||
m_bank->set_addrmap(0, &roland_d10_state::d110_bank_map);
|
||||
|
||||
config.device_remove("key");
|
||||
config.device_remove("keyscan");
|
||||
}
|
||||
|
||||
ROM_START( d10 )
|
||||
|
@ -23,16 +23,24 @@ public:
|
||||
void d550(machine_config &config);
|
||||
|
||||
private:
|
||||
void mem_map(address_map &map);
|
||||
void d50_mem_map(address_map &map);
|
||||
void d550_mem_map(address_map &map);
|
||||
|
||||
required_device<upd78312_device> m_maincpu;
|
||||
};
|
||||
|
||||
|
||||
void roland_d50_state::mem_map(address_map &map)
|
||||
void roland_d50_state::d50_mem_map(address_map &map)
|
||||
{
|
||||
// Internal ROM is enabled at 0000–1FFF (+5V pullup on EA pin)
|
||||
map(0x2000, 0xfdff).rom().region("progrom", 0x2000); // TODO: banking
|
||||
map(0x2000, 0xf3ff).rom().region("progrom", 0x2000); // TODO: banking?
|
||||
map(0xf400, 0xf7ff).rw("keyscan", FUNC(mb63h149_device::read), FUNC(mb63h149_device::write));
|
||||
}
|
||||
|
||||
void roland_d50_state::d550_mem_map(address_map &map)
|
||||
{
|
||||
// Internal ROM is enabled at 0000–1FFF (+5V pullup on EA pin)
|
||||
map(0x2000, 0xfdff).rom().region("progrom", 0x2000); // TODO: banking?
|
||||
}
|
||||
|
||||
|
||||
@ -43,12 +51,12 @@ INPUT_PORTS_END
|
||||
void roland_d50_state::d50(machine_config &config)
|
||||
{
|
||||
UPD78312(config, m_maincpu, 12_MHz_XTAL);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &roland_d50_state::mem_map);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &roland_d50_state::d50_mem_map);
|
||||
|
||||
// LCD unit is LM402802 (D-50) or LM402551 (D-550)
|
||||
|
||||
MB63H149(config, "key", 32.768_MHz_XTAL / 2); // on Dyna Scan Board
|
||||
//key.int_callback().set_inputline(m_maincpu, upd78312_device::INT2_LINE);
|
||||
MB63H149(config, "keyscan", 32.768_MHz_XTAL / 2); // on Dyna Scan Board
|
||||
//keyscan.int_callback().set_inputline(m_maincpu, upd78312_device::INT2_LINE);
|
||||
|
||||
//MB87136(config, "synthe", 32.768_MHz_XTAL);
|
||||
}
|
||||
@ -56,8 +64,9 @@ void roland_d50_state::d50(machine_config &config)
|
||||
void roland_d50_state::d550(machine_config &config)
|
||||
{
|
||||
d50(config);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &roland_d50_state::d550_mem_map);
|
||||
|
||||
config.device_remove("key");
|
||||
config.device_remove("keyscan");
|
||||
}
|
||||
|
||||
// the internal date format for the external program roms is as such:
|
||||
|
@ -61,7 +61,7 @@ void roland_jx8p_state::jx8p_assigner_map(address_map &map)
|
||||
map(0x2000, 0x3fff).rw("cartslot", FUNC(generic_slot_device::read_ram), FUNC(generic_slot_device::write_ram));
|
||||
map(0x4000, 0x4007).mirror(0x1ff8).r(FUNC(roland_jx8p_state::switches_r));
|
||||
map(0x6000, 0x6000).mirror(0x1fff).w(FUNC(roland_jx8p_state::leds_w));
|
||||
map(0x8000, 0x87ff).mirror(0x1800).rw("key", FUNC(mb63h149_device::read), FUNC(mb63h149_device::write));
|
||||
map(0x8000, 0x87ff).mirror(0x1800).rw("keyscan", FUNC(mb63h149_device::read), FUNC(mb63h149_device::write));
|
||||
map(0xa000, 0xa7ff).mirror(0x1800).ram().share("nvram");
|
||||
map(0xc000, 0xffff).rom().region("assigner", 0);
|
||||
}
|
||||
@ -70,7 +70,7 @@ void roland_jx8p_state::superjx_assigner_map(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x001f).m(m_assignercpu, FUNC(hd6303r_cpu_device::m6801_io));
|
||||
map(0x0080, 0x00ff).ram(); // internal RAM
|
||||
map(0x1000, 0x17ff).mirror(0x800).rw("key", FUNC(mb63h149_device::read), FUNC(mb63h149_device::write));
|
||||
map(0x1000, 0x17ff).mirror(0x800).rw("keyscan", FUNC(mb63h149_device::read), FUNC(mb63h149_device::write));
|
||||
map(0x2000, 0x3fff).rw("cartslot", FUNC(generic_slot_device::read_ram), FUNC(generic_slot_device::write_ram));
|
||||
map(0x4000, 0x4007).mirror(0xff8).r(FUNC(roland_jx8p_state::switches_r));
|
||||
map(0x5000, 0x5000).mirror(0xfff).w(FUNC(roland_jx8p_state::leds_w));
|
||||
@ -315,8 +315,8 @@ void roland_jx8p_state::jx8p(machine_config &config)
|
||||
|
||||
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); // TC5517APL + battery
|
||||
|
||||
mb63h149_device &key(MB63H149(config, "key", 16_MHz_XTAL));
|
||||
key.int_callback().set_inputline(m_assignercpu, HD6301_IRQ_LINE);
|
||||
mb63h149_device &keyscan(MB63H149(config, "keyscan", 16_MHz_XTAL));
|
||||
keyscan.int_callback().set_inputline(m_assignercpu, HD6301_IRQ_LINE);
|
||||
|
||||
GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, nullptr, "jx8p_cart");
|
||||
|
||||
@ -331,7 +331,7 @@ void roland_jx8p_state::jx8po(machine_config &config)
|
||||
{
|
||||
jx8p(config);
|
||||
|
||||
MB63H130(config.replace(), "key", 16_MHz_XTAL); // no INT
|
||||
MB63H130(config.replace(), "keyscan", 16_MHz_XTAL); // no INT
|
||||
}
|
||||
|
||||
void roland_jx8p_state::jx10(machine_config &config)
|
||||
@ -341,8 +341,8 @@ void roland_jx8p_state::jx10(machine_config &config)
|
||||
|
||||
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); // TC5564PL-20 + battery
|
||||
|
||||
mb63h149_device &key(MB63H149(config, "key", 16_MHz_XTAL));
|
||||
key.int_callback().set_inputline(m_assignercpu, HD6301_IRQ_LINE);
|
||||
mb63h149_device &keyscan(MB63H149(config, "keyscan", 16_MHz_XTAL));
|
||||
keyscan.int_callback().set_inputline(m_assignercpu, HD6301_IRQ_LINE);
|
||||
|
||||
GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, nullptr, "jx8p_cart");
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user