More 63H149 work (nw)

This commit is contained in:
AJR 2020-03-21 22:43:39 -04:00
parent 24579647dc
commit c0cc0bedc6
4 changed files with 30 additions and 21 deletions

View File

@ -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)

View File

@ -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 )

View File

@ -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 00001FFF (+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 00001FFF (+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:

View File

@ -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");