mirror of
https://github.com/holub/mame
synced 2025-04-20 15:32:45 +03:00
msx/msx.cpp: Added keyboard LEDs to internal artwork. (#10950)
* msx/msx.cpp: Made drive names and LEDs optional. * msx/msx.cpp: Added caps lock and language mode LEDs to layout. * bus/msx/slot/disk.cpp: Tidied up code.
This commit is contained in:
parent
568b42a108
commit
1627e6f42f
@ -81,45 +81,41 @@ void msx_slot_disk_device::floppy_formats(format_registration &fr)
|
||||
|
||||
msx_slot_disk_device::msx_slot_disk_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, int nr_drives)
|
||||
: msx_slot_rom_device(mconfig, type, tag, owner, clock)
|
||||
, m_floppy0(*this, "fdc:0")
|
||||
, m_floppy1(*this, "fdc:1")
|
||||
, m_floppy2(*this, "fdc:2")
|
||||
, m_floppy3(*this, "fdc:3")
|
||||
, m_floppy(nullptr)
|
||||
, m_access_int_drv_out(*this, "access_int_drv%u", 0U)
|
||||
, m_floppy(*this, "fdc:%u", 0U)
|
||||
, m_current_floppy(nullptr)
|
||||
, m_internal_drive_led(*this, "internal_drive%u_led", 0U)
|
||||
, m_internal_drive_name(*this, "internal_drive%u_name", 0U)
|
||||
, m_nr_drives(nr_drives)
|
||||
{
|
||||
}
|
||||
|
||||
void msx_slot_disk_device::add_drive_mconfig(machine_config &config, bool double_sided)
|
||||
{
|
||||
if (m_nr_drives > NO_DRIVES)
|
||||
FLOPPY_CONNECTOR(config, m_floppy0, msx_floppies, double_sided ? "35dd" : "35ssdd", msx_slot_disk_device::floppy_formats);
|
||||
if (m_nr_drives > DRIVES_1)
|
||||
FLOPPY_CONNECTOR(config, m_floppy1, msx_floppies, double_sided ? "35dd" : "35ssdd", msx_slot_disk_device::floppy_formats);
|
||||
if (m_nr_drives > DRIVES_2)
|
||||
FLOPPY_CONNECTOR(config, m_floppy2, msx_floppies, double_sided ? "35dd" : "35ssdd", msx_slot_disk_device::floppy_formats);
|
||||
if (m_nr_drives > DRIVES_3)
|
||||
FLOPPY_CONNECTOR(config, m_floppy3, msx_floppies, double_sided ? "35dd" : "35ssdd", msx_slot_disk_device::floppy_formats);
|
||||
for (int drive = 0; drive < m_nr_drives; drive++)
|
||||
FLOPPY_CONNECTOR(config, m_floppy[drive], msx_floppies, double_sided ? "35dd" : "35ssdd", msx_slot_disk_device::floppy_formats);
|
||||
}
|
||||
|
||||
void msx_slot_disk_device::device_start()
|
||||
{
|
||||
msx_slot_rom_device::device_start();
|
||||
|
||||
m_access_int_drv_out.resolve();
|
||||
m_internal_drive_led.resolve();
|
||||
m_internal_drive_name.resolve();
|
||||
}
|
||||
|
||||
void msx_slot_disk_device::device_reset()
|
||||
{
|
||||
msx_slot_rom_device::device_reset();
|
||||
for (int i = 0; i < m_access_int_drv_out.size(); i++)
|
||||
m_access_int_drv_out[i] = 0;
|
||||
for (int i = 0; i < m_internal_drive_led.size(); i++)
|
||||
{
|
||||
m_internal_drive_name[i] = m_floppy[i] ? 1 : 0;
|
||||
set_drive_access_led_state(i, 0);
|
||||
}
|
||||
}
|
||||
|
||||
void msx_slot_disk_device::set_drive_access_led_state(int drive, int led_state)
|
||||
{
|
||||
m_access_int_drv_out[drive] = led_state;
|
||||
m_internal_drive_led[drive] = m_floppy[drive] ? 1 + led_state : 0;
|
||||
}
|
||||
|
||||
|
||||
@ -231,9 +227,9 @@ void msx_slot_disk1_base_device::set_side_control(u8 data)
|
||||
{
|
||||
m_side_control = data;
|
||||
|
||||
if (m_floppy)
|
||||
if (m_current_floppy)
|
||||
{
|
||||
m_floppy->ss_w(BIT(m_side_control, 0));
|
||||
m_current_floppy->ss_w(BIT(m_side_control, 0));
|
||||
}
|
||||
}
|
||||
|
||||
@ -251,31 +247,31 @@ void msx_slot_disk1_base_device::set_control(u8 data)
|
||||
{
|
||||
case 0:
|
||||
case 2:
|
||||
m_floppy = m_floppy0 ? m_floppy0->get_device() : nullptr;
|
||||
m_current_floppy = m_floppy[0] ? m_floppy[0]->get_device() : nullptr;
|
||||
set_drive_access_led_state(0, BIT(m_control, get_control_led_bit()));
|
||||
set_drive_access_led_state(1, 0);
|
||||
break;
|
||||
|
||||
case 1:
|
||||
m_floppy = m_floppy1 ? m_floppy1->get_device() : nullptr;
|
||||
m_current_floppy = m_floppy[1] ? m_floppy[1]->get_device() : nullptr;
|
||||
set_drive_access_led_state(0, 0);
|
||||
set_drive_access_led_state(1, BIT(m_control, get_control_led_bit()));
|
||||
break;
|
||||
|
||||
default:
|
||||
m_floppy = nullptr;
|
||||
m_current_floppy = nullptr;
|
||||
set_drive_access_led_state(0, 0);
|
||||
set_drive_access_led_state(1, 0);
|
||||
break;
|
||||
}
|
||||
|
||||
if (m_floppy)
|
||||
if (m_current_floppy)
|
||||
{
|
||||
m_floppy->mon_w(BIT(m_control, 7) ? 0 : 1);
|
||||
m_floppy->ss_w(BIT(m_side_control, 0));
|
||||
m_current_floppy->mon_w(BIT(m_control, 7) ? 0 : 1);
|
||||
m_current_floppy->ss_w(BIT(m_side_control, 0));
|
||||
}
|
||||
|
||||
m_fdc->set_floppy(m_floppy);
|
||||
m_fdc->set_floppy(m_current_floppy);
|
||||
}
|
||||
|
||||
u8 msx_slot_disk1_base_device::side_control_r()
|
||||
@ -439,31 +435,31 @@ void msx_slot_disk2_base_device::set_control(u8 data)
|
||||
switch (m_control & 3)
|
||||
{
|
||||
case 1:
|
||||
m_floppy = m_floppy0 ? m_floppy0->get_device() : nullptr;
|
||||
m_current_floppy = m_floppy[0] ? m_floppy[0]->get_device() : nullptr;
|
||||
set_drive_access_led_state(0, BIT(m_control, get_control_led_bit()));
|
||||
set_drive_access_led_state(1, 0);
|
||||
break;
|
||||
|
||||
case 2:
|
||||
m_floppy = m_floppy1 ? m_floppy1->get_device() : nullptr;
|
||||
m_current_floppy = m_floppy[1] ? m_floppy[1]->get_device() : nullptr;
|
||||
set_drive_access_led_state(0, 0);
|
||||
set_drive_access_led_state(1, BIT(m_control, get_control_led_bit()));
|
||||
break;
|
||||
|
||||
default:
|
||||
m_floppy = nullptr;
|
||||
m_current_floppy = nullptr;
|
||||
set_drive_access_led_state(0, 0);
|
||||
set_drive_access_led_state(1, 0);
|
||||
break;
|
||||
}
|
||||
|
||||
if (m_floppy)
|
||||
if (m_current_floppy)
|
||||
{
|
||||
m_floppy->mon_w(BIT(m_control, 3) ? 0 : 1);
|
||||
m_floppy->ss_w(BIT(m_control, 2) ? 1 : 0);
|
||||
m_current_floppy->mon_w(BIT(m_control, 3) ? 0 : 1);
|
||||
m_current_floppy->ss_w(BIT(m_control, 2) ? 1 : 0);
|
||||
}
|
||||
|
||||
m_fdc->set_floppy(m_floppy);
|
||||
m_fdc->set_floppy(m_current_floppy);
|
||||
}
|
||||
|
||||
u8 msx_slot_disk2_base_device::status_r()
|
||||
@ -667,7 +663,7 @@ void msx_slot_disk5_wd2793_device::control_w(u8 control)
|
||||
switch (m_control & 0x0f)
|
||||
{
|
||||
case 0x01:
|
||||
m_floppy = m_floppy0 ? m_floppy0->get_device() : nullptr;
|
||||
m_current_floppy = m_floppy[0] ? m_floppy[0]->get_device() : nullptr;
|
||||
set_drive_access_led_state(0, BIT(m_control, 6));
|
||||
set_drive_access_led_state(1, 0);
|
||||
set_drive_access_led_state(2, 0);
|
||||
@ -675,7 +671,7 @@ void msx_slot_disk5_wd2793_device::control_w(u8 control)
|
||||
break;
|
||||
|
||||
case 0x02:
|
||||
m_floppy = m_floppy1 ? m_floppy1->get_device() : nullptr;
|
||||
m_current_floppy = m_floppy[1] ? m_floppy[1]->get_device() : nullptr;
|
||||
set_drive_access_led_state(0, 0);
|
||||
set_drive_access_led_state(1, BIT(m_control, 6));
|
||||
set_drive_access_led_state(2, 0);
|
||||
@ -683,7 +679,7 @@ void msx_slot_disk5_wd2793_device::control_w(u8 control)
|
||||
break;
|
||||
|
||||
case 0x04:
|
||||
m_floppy = m_floppy2 ? m_floppy2->get_device() : nullptr;
|
||||
m_current_floppy = m_floppy[2] ? m_floppy[2]->get_device() : nullptr;
|
||||
set_drive_access_led_state(0, 0);
|
||||
set_drive_access_led_state(1, 0);
|
||||
set_drive_access_led_state(2, BIT(m_control, 6));
|
||||
@ -691,7 +687,7 @@ void msx_slot_disk5_wd2793_device::control_w(u8 control)
|
||||
break;
|
||||
|
||||
case 0x08:
|
||||
m_floppy = m_floppy3 ? m_floppy3->get_device() : nullptr;
|
||||
m_current_floppy = m_floppy[3] ? m_floppy[3]->get_device() : nullptr;
|
||||
set_drive_access_led_state(0, 0);
|
||||
set_drive_access_led_state(1, 0);
|
||||
set_drive_access_led_state(2, 0);
|
||||
@ -699,7 +695,7 @@ void msx_slot_disk5_wd2793_device::control_w(u8 control)
|
||||
break;
|
||||
|
||||
default:
|
||||
m_floppy = nullptr;
|
||||
m_current_floppy = nullptr;
|
||||
set_drive_access_led_state(0, 0);
|
||||
set_drive_access_led_state(1, 0);
|
||||
set_drive_access_led_state(2, 0);
|
||||
@ -707,13 +703,13 @@ void msx_slot_disk5_wd2793_device::control_w(u8 control)
|
||||
break;
|
||||
}
|
||||
|
||||
if (m_floppy)
|
||||
if (m_current_floppy)
|
||||
{
|
||||
m_floppy->mon_w(BIT(m_control, 5) ? 0 : 1);
|
||||
m_floppy->ss_w(BIT(m_control, 4) ? 1 : 0);
|
||||
m_current_floppy->mon_w(BIT(m_control, 5) ? 0 : 1);
|
||||
m_current_floppy->ss_w(BIT(m_control, 4) ? 1 : 0);
|
||||
}
|
||||
|
||||
m_fdc->set_floppy(m_floppy);
|
||||
m_fdc->set_floppy(m_current_floppy);
|
||||
}
|
||||
|
||||
u8 msx_slot_disk5_wd2793_device::status_r()
|
||||
@ -782,26 +778,26 @@ void msx_slot_disk6_wd2793_n_device::select_drive()
|
||||
{
|
||||
if (BIT(m_drive_select, 0))
|
||||
{
|
||||
m_floppy = m_floppy1 ? m_floppy1->get_device() : nullptr;
|
||||
m_drive_present = m_floppy;
|
||||
m_current_floppy = m_floppy[1] ? m_floppy[1]->get_device() : nullptr;
|
||||
m_drive_present = m_current_floppy;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_floppy = m_floppy0 ? m_floppy0->get_device() : nullptr;
|
||||
m_drive_present = m_floppy;
|
||||
m_current_floppy = m_floppy[0] ? m_floppy[0]->get_device() : nullptr;
|
||||
m_drive_present = m_current_floppy;
|
||||
}
|
||||
|
||||
m_fdc->set_floppy(m_floppy);
|
||||
m_fdc->set_floppy(m_current_floppy);
|
||||
|
||||
set_side_motor();
|
||||
}
|
||||
|
||||
void msx_slot_disk6_wd2793_n_device::set_side_motor()
|
||||
{
|
||||
if (m_floppy)
|
||||
if (m_current_floppy)
|
||||
{
|
||||
m_floppy->mon_w(BIT(m_side_motor, 1) ? 0 : 1);
|
||||
m_floppy->ss_w(BIT(m_side_motor, 0));
|
||||
m_current_floppy->mon_w(BIT(m_side_motor, 1) ? 0 : 1);
|
||||
m_current_floppy->ss_w(BIT(m_side_motor, 0));
|
||||
}
|
||||
if (BIT(m_drive_select, 0))
|
||||
{
|
||||
@ -831,7 +827,7 @@ u8 msx_slot_disk6_wd2793_n_device::select0_r()
|
||||
u8 msx_slot_disk6_wd2793_n_device::dskchg_r()
|
||||
{
|
||||
// Disk change status for selected drive
|
||||
return 0xfe | (m_floppy && m_floppy->dskchg_r() ? 0 : 1);
|
||||
return 0xfe | (m_current_floppy && m_current_floppy->dskchg_r() ? 0 : 1);
|
||||
}
|
||||
|
||||
u8 msx_slot_disk6_wd2793_n_device::status_r()
|
||||
@ -918,17 +914,17 @@ void msx_slot_disk7_mb8877_device::device_post_load()
|
||||
void msx_slot_disk7_mb8877_device::select_drive()
|
||||
{
|
||||
// No separate bit for the drive LEDs? Assuming LEDs are triggered by the motor on signal.
|
||||
m_floppy = nullptr;
|
||||
m_current_floppy = nullptr;
|
||||
|
||||
switch (m_drive_side_motor & 0x03)
|
||||
{
|
||||
case 0:
|
||||
m_floppy = m_floppy0 ? m_floppy0->get_device() : nullptr;
|
||||
m_current_floppy = m_floppy[0] ? m_floppy[0]->get_device() : nullptr;
|
||||
set_drive_access_led_state(0, BIT(~m_drive_side_motor, 3));
|
||||
set_drive_access_led_state(1, 0);
|
||||
break;
|
||||
case 1:
|
||||
m_floppy = m_floppy1 ? m_floppy1->get_device() : nullptr;
|
||||
m_current_floppy = m_floppy[1] ? m_floppy[1]->get_device() : nullptr;
|
||||
set_drive_access_led_state(0, 0);
|
||||
set_drive_access_led_state(1, BIT(~m_drive_side_motor, 3));
|
||||
break;
|
||||
@ -938,17 +934,17 @@ void msx_slot_disk7_mb8877_device::select_drive()
|
||||
break;
|
||||
}
|
||||
|
||||
m_fdc->set_floppy(m_floppy);
|
||||
m_fdc->set_floppy(m_current_floppy);
|
||||
}
|
||||
|
||||
void msx_slot_disk7_mb8877_device::set_drive_side_motor()
|
||||
{
|
||||
select_drive();
|
||||
|
||||
if (m_floppy)
|
||||
if (m_current_floppy)
|
||||
{
|
||||
m_floppy->mon_w(BIT(m_drive_side_motor, 3) ? 0 : 1);
|
||||
m_floppy->ss_w(BIT(m_drive_side_motor, 2));
|
||||
m_current_floppy->mon_w(BIT(m_drive_side_motor, 3) ? 0 : 1);
|
||||
m_current_floppy->ss_w(BIT(m_drive_side_motor, 2));
|
||||
}
|
||||
}
|
||||
|
||||
@ -965,8 +961,8 @@ void msx_slot_disk7_mb8877_device::side_motor_w(u8 data)
|
||||
u8 msx_slot_disk7_mb8877_device::status_r()
|
||||
{
|
||||
return (m_drive_side_motor & 0x0f)
|
||||
| (m_floppy && m_floppy->dskchg_r() ? 0x00 : 0x10)
|
||||
| (m_floppy && m_floppy->ready_r() ? 0x00 : 0x20)
|
||||
| (m_current_floppy && m_current_floppy->dskchg_r() ? 0x00 : 0x10)
|
||||
| (m_current_floppy && m_current_floppy->ready_r() ? 0x00 : 0x20)
|
||||
| (m_fdc->intrq_r() ? 0x40 : 0x00)
|
||||
| (m_fdc->drq_r() ? 0x80 : 0x00);
|
||||
}
|
||||
@ -1040,31 +1036,31 @@ void msx_slot_disk8_mb8877_device::set_control(u8 data)
|
||||
switch (m_control & 3)
|
||||
{
|
||||
case 1:
|
||||
m_floppy = m_floppy0 ? m_floppy0->get_device() : nullptr;
|
||||
m_current_floppy = m_floppy[0] ? m_floppy[0]->get_device() : nullptr;
|
||||
set_drive_access_led_state(0, BIT(m_control, 6));
|
||||
set_drive_access_led_state(1, 0);
|
||||
break;
|
||||
|
||||
case 2:
|
||||
m_floppy = m_floppy1 ? m_floppy1->get_device() : nullptr;
|
||||
m_current_floppy = m_floppy[1] ? m_floppy[1]->get_device() : nullptr;
|
||||
set_drive_access_led_state(0, 0);
|
||||
set_drive_access_led_state(1, BIT(m_control, 6));
|
||||
break;
|
||||
|
||||
default:
|
||||
m_floppy = nullptr;
|
||||
m_current_floppy = nullptr;
|
||||
set_drive_access_led_state(0, 0);
|
||||
set_drive_access_led_state(1, 0);
|
||||
break;
|
||||
}
|
||||
|
||||
if (m_floppy)
|
||||
if (m_current_floppy)
|
||||
{
|
||||
m_floppy->mon_w(BIT(m_control, 3) ? 0 : 1);
|
||||
m_floppy->ss_w(BIT(m_control, 2) ? 1 : 0);
|
||||
m_current_floppy->mon_w(BIT(m_control, 3) ? 0 : 1);
|
||||
m_current_floppy->ss_w(BIT(m_control, 2) ? 1 : 0);
|
||||
}
|
||||
|
||||
m_fdc->set_floppy(m_floppy);
|
||||
m_fdc->set_floppy(m_current_floppy);
|
||||
}
|
||||
|
||||
u8 msx_slot_disk8_mb8877_device::status_r()
|
||||
@ -1134,31 +1130,31 @@ void msx_slot_disk9_wd2793_n_device::control_w(u8 data)
|
||||
switch (m_control & 0x03)
|
||||
{
|
||||
case 1:
|
||||
m_floppy = m_floppy0 ? m_floppy0->get_device() : nullptr;
|
||||
m_current_floppy = m_floppy[0] ? m_floppy[0]->get_device() : nullptr;
|
||||
set_drive_access_led_state(0, BIT(m_control, 6));
|
||||
set_drive_access_led_state(1, 0);
|
||||
break;
|
||||
|
||||
case 2:
|
||||
m_floppy = m_floppy1 ? m_floppy1->get_device() : nullptr;
|
||||
m_current_floppy = m_floppy[1] ? m_floppy[1]->get_device() : nullptr;
|
||||
set_drive_access_led_state(0, 0);
|
||||
set_drive_access_led_state(1, BIT(m_control, 6));
|
||||
break;
|
||||
|
||||
default:
|
||||
m_floppy = nullptr;
|
||||
m_current_floppy = nullptr;
|
||||
set_drive_access_led_state(0, 0);
|
||||
set_drive_access_led_state(1, 0);
|
||||
break;
|
||||
}
|
||||
|
||||
if (m_floppy)
|
||||
if (m_current_floppy)
|
||||
{
|
||||
m_floppy->mon_w(BIT(m_control, 3) ? 0 : 1);
|
||||
m_floppy->ss_w(BIT(m_control, 2));
|
||||
m_current_floppy->mon_w(BIT(m_control, 3) ? 0 : 1);
|
||||
m_current_floppy->ss_w(BIT(m_control, 2));
|
||||
}
|
||||
|
||||
m_fdc->set_floppy(m_floppy);
|
||||
m_fdc->set_floppy(m_current_floppy);
|
||||
}
|
||||
|
||||
u8 msx_slot_disk9_wd2793_n_device::status_r()
|
||||
@ -1223,27 +1219,27 @@ void msx_slot_disk10_mb8877_device::control_w(u8 data)
|
||||
// Assuming drive LEDs are connected to the motor signals
|
||||
if (BIT(m_control, 2))
|
||||
{
|
||||
m_floppy = m_floppy1 ? m_floppy1->get_device() : nullptr;
|
||||
m_current_floppy = m_floppy[1] ? m_floppy[1]->get_device() : nullptr;
|
||||
set_drive_access_led_state(0, 0);
|
||||
set_drive_access_led_state(1, BIT(m_control, 1));
|
||||
}
|
||||
else
|
||||
{
|
||||
m_floppy = m_floppy0 ? m_floppy0->get_device() : nullptr;
|
||||
m_current_floppy = m_floppy[0] ? m_floppy[0]->get_device() : nullptr;
|
||||
set_drive_access_led_state(0, BIT(m_control, 0));
|
||||
set_drive_access_led_state(1, 0);
|
||||
}
|
||||
|
||||
if (m_floppy && !BIT(m_control, 2))
|
||||
m_floppy->mon_w(BIT(m_control, 0) ? 0 : 1);
|
||||
if (m_current_floppy && !BIT(m_control, 2))
|
||||
m_current_floppy->mon_w(BIT(m_control, 0) ? 0 : 1);
|
||||
|
||||
if (m_floppy && BIT(m_control, 2))
|
||||
m_floppy->mon_w(BIT(m_control, 1) ? 0 : 1);
|
||||
if (m_current_floppy && BIT(m_control, 2))
|
||||
m_current_floppy->mon_w(BIT(m_control, 1) ? 0 : 1);
|
||||
|
||||
if (m_floppy)
|
||||
m_floppy->ss_w(BIT(m_control, 3));
|
||||
if (m_current_floppy)
|
||||
m_current_floppy->ss_w(BIT(m_control, 3));
|
||||
|
||||
m_fdc->set_floppy(m_floppy);
|
||||
m_fdc->set_floppy(m_current_floppy);
|
||||
}
|
||||
|
||||
u8 msx_slot_disk10_mb8877_device::status_r()
|
||||
@ -1251,7 +1247,7 @@ u8 msx_slot_disk10_mb8877_device::status_r()
|
||||
return 0x23
|
||||
| (m_control & 0x04)
|
||||
| ((m_control & 0x08) ^ 0x08)
|
||||
| ((m_floppy && m_floppy->mon_r()) ? 0 : 0x10)
|
||||
| ((m_current_floppy && m_current_floppy->mon_r()) ? 0 : 0x10)
|
||||
| (m_fdc->drq_r() ? 0x40 : 0)
|
||||
| (m_fdc->intrq_r() ? 0x80 : 0);
|
||||
}
|
||||
@ -1333,8 +1329,8 @@ void msx_slot_disk11_wd2793_device::side_control_w(u8 data)
|
||||
{
|
||||
m_side_control = data;
|
||||
|
||||
if (m_floppy)
|
||||
m_floppy->ss_w(BIT(m_side_control, 0));
|
||||
if (m_current_floppy)
|
||||
m_current_floppy->ss_w(BIT(m_side_control, 0));
|
||||
}
|
||||
|
||||
void msx_slot_disk11_wd2793_device::control_w(u8 data)
|
||||
@ -1344,31 +1340,31 @@ void msx_slot_disk11_wd2793_device::control_w(u8 data)
|
||||
switch (m_control & 0x03)
|
||||
{
|
||||
case 0:
|
||||
m_floppy = m_floppy0 ? m_floppy0->get_device() : nullptr;
|
||||
m_current_floppy = m_floppy[0] ? m_floppy[0]->get_device() : nullptr;
|
||||
set_drive_access_led_state(0, BIT(m_control, 6)); // Wild guess based on other floppy interfaces
|
||||
set_drive_access_led_state(1, 0);
|
||||
break;
|
||||
|
||||
case 1:
|
||||
m_floppy = m_floppy1 ? m_floppy1->get_device() : nullptr;
|
||||
m_current_floppy = m_floppy[1] ? m_floppy[1]->get_device() : nullptr;
|
||||
set_drive_access_led_state(0, 0);
|
||||
set_drive_access_led_state(1, BIT(m_control, 6)); // Wild guess based on other floppy interfaces
|
||||
break;
|
||||
|
||||
default:
|
||||
m_floppy = nullptr;
|
||||
m_current_floppy = nullptr;
|
||||
set_drive_access_led_state(0, 0);
|
||||
set_drive_access_led_state(1, 0);
|
||||
break;
|
||||
}
|
||||
|
||||
if (m_floppy)
|
||||
if (m_current_floppy)
|
||||
{
|
||||
m_floppy->mon_w(BIT(m_control, 7) ? 0 : 1);
|
||||
m_floppy->ss_w(BIT(m_side_control, 0));
|
||||
m_current_floppy->mon_w(BIT(m_control, 7) ? 0 : 1);
|
||||
m_current_floppy->ss_w(BIT(m_side_control, 0));
|
||||
}
|
||||
|
||||
m_fdc->set_floppy(m_floppy);
|
||||
m_fdc->set_floppy(m_current_floppy);
|
||||
}
|
||||
|
||||
u8 msx_slot_disk11_wd2793_device::side_control_r()
|
||||
|
@ -73,14 +73,12 @@ protected:
|
||||
void add_drive_mconfig(machine_config &config, bool double_sided);
|
||||
void set_drive_access_led_state(int drive, int led_state);
|
||||
|
||||
optional_device<floppy_connector> m_floppy0;
|
||||
optional_device<floppy_connector> m_floppy1;
|
||||
optional_device<floppy_connector> m_floppy2;
|
||||
optional_device<floppy_connector> m_floppy3;
|
||||
floppy_image_device *m_floppy;
|
||||
optional_device_array<floppy_connector, 4> m_floppy;
|
||||
floppy_image_device *m_current_floppy;
|
||||
|
||||
private:
|
||||
output_finder<4> m_access_int_drv_out;
|
||||
output_finder<4> m_internal_drive_led;
|
||||
output_finder<4> m_internal_drive_name;
|
||||
int m_nr_drives;
|
||||
};
|
||||
|
||||
|
90
src/mame/layout/msx.lay
Normal file
90
src/mame/layout/msx.lay
Normal file
@ -0,0 +1,90 @@
|
||||
<?xml version="1.0"?>
|
||||
<!--
|
||||
license:CC0-1.0
|
||||
|
||||
Basic display of LEDs for an MSX
|
||||
-->
|
||||
|
||||
<mamelayout version="2">
|
||||
<element name="optional_green_led">
|
||||
<rect state="1">
|
||||
<color red="0.2" green="0.2" blue="0.2" />
|
||||
</rect>
|
||||
<rect state="2">
|
||||
<color red="0.0" green="1.0" blue="0.0" />
|
||||
</rect>
|
||||
</element>
|
||||
<element name="optional_orange_led">
|
||||
<rect state="1">
|
||||
<color red="0.2" green="0.2" blue="0.2" />
|
||||
</rect>
|
||||
<rect state="2">
|
||||
<color red="1.0" green="0.6" blue="0.0" />
|
||||
</rect>
|
||||
</element>
|
||||
<element name="caps_name">
|
||||
<text string="Caps" align="1" state="1">
|
||||
<color red="1.0" green="1.0" blue="1.0" />
|
||||
</text>
|
||||
</element>
|
||||
<element name="code_name">
|
||||
<text string="Code" align="1" state="1">
|
||||
<color red="1.0" green="1.0" blue="1.0" />
|
||||
</text>
|
||||
<text string="カナ" align="1" state="2">
|
||||
<color red="1.0" green="1.0" blue="1.0" />
|
||||
</text>
|
||||
<!-- This is the text from the key/led but does not seem to get rendered properly.
|
||||
<text string="عالي" align="1" state="3">
|
||||
-->
|
||||
<text string="Arabic" align="1" state="3">
|
||||
<color red="1.0" green="1.0" blue="1.0" />
|
||||
</text>
|
||||
<text string="한글" align="1" state="4">
|
||||
<color red="1.0" green="1.0" blue="1.0" />
|
||||
</text>
|
||||
<text string="РУС" align="1" state="5">
|
||||
<color red="1.0" green="1.0" blue="1.0" />
|
||||
</text>
|
||||
</element>
|
||||
<element name="drv0">
|
||||
<text string="Drive A" align="1" state="1">
|
||||
<color red="1.0" green="1.0" blue="1.0" />
|
||||
</text>
|
||||
</element>
|
||||
<element name="drv1">
|
||||
<text string="Drive B" align="1" state="1">
|
||||
<color red="1.0" green="1.0" blue="1.0" />
|
||||
</text>
|
||||
</element>
|
||||
|
||||
<view name="System LEDs">
|
||||
<screen index="0">
|
||||
<bounds x="75" y="0" width="1024" height="768" />
|
||||
</screen>
|
||||
<element name="caps_led_name" ref="caps_name">
|
||||
<bounds left="0" right="74" top="0" bottom="30" />
|
||||
</element>
|
||||
<element name="caps_led" ref="optional_green_led">
|
||||
<bounds left="0" right="20" top="31" bottom="39" />
|
||||
</element>
|
||||
<element name="code_led_name" ref="code_name">
|
||||
<bounds left="0" right="74" top="40" bottom="70" />
|
||||
</element>
|
||||
<element name="code_led" ref="optional_green_led">
|
||||
<bounds left="0" right="20" top="71" bottom="79" />
|
||||
</element>
|
||||
<element name="internal_drive0_name" ref="drv0">
|
||||
<bounds left="0" right="74" top="80" bottom="110" />
|
||||
</element>
|
||||
<element name="internal_drive0_led" ref="optional_orange_led">
|
||||
<bounds left="0" right="20" top="111" bottom="119" />
|
||||
</element>
|
||||
<element name="internal_drive1_name" ref="drv1">
|
||||
<bounds left="0" right="74" top="120" bottom="150" />
|
||||
</element>
|
||||
<element name="internal_drive1_led" ref="optional_orange_led">
|
||||
<bounds left="0" right="20" top="151" bottom="159" />
|
||||
</element>
|
||||
</view>
|
||||
</mamelayout>
|
@ -1,34 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<!--
|
||||
license:CC0-1.0
|
||||
|
||||
Basic display of LEDs for an MSX
|
||||
-->
|
||||
|
||||
<mamelayout version="2">
|
||||
<element name="access_led">
|
||||
<rect state="0">
|
||||
<color red="0.2" green="0.2" blue="0.2" />
|
||||
</rect>
|
||||
<rect state="1">
|
||||
<color red="1.0" green="0.6" blue="0.0" />
|
||||
</rect>
|
||||
</element>
|
||||
<element name="drv0">
|
||||
<text string="Drive A">
|
||||
<color red="1.0" green="1.0" blue="1.0" />
|
||||
</text>
|
||||
</element>
|
||||
|
||||
<view name="System LEDs">
|
||||
<screen index="0">
|
||||
<bounds x="75" y="0" width="1024" height="768" />
|
||||
</screen>
|
||||
<element name="int_drv0text" ref="drv0">
|
||||
<bounds left="0" right="74" top="0" bottom="30" />
|
||||
</element>
|
||||
<element name="access_int_drv0" ref="access_led">
|
||||
<bounds left="0" right="20" top="31" bottom="39" />
|
||||
</element>
|
||||
</view>
|
||||
</mamelayout>
|
@ -1,45 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<!--
|
||||
license:CC0-1.0
|
||||
|
||||
Basic display of LEDs for an MSX
|
||||
-->
|
||||
|
||||
<mamelayout version="2">
|
||||
<element name="access_led">
|
||||
<rect state="0">
|
||||
<color red="0.2" green="0.2" blue="0.2" />
|
||||
</rect>
|
||||
<rect state="1">
|
||||
<color red="1.0" green="0.6" blue="0.0" />
|
||||
</rect>
|
||||
</element>
|
||||
<element name="drv0">
|
||||
<text string="Drive A">
|
||||
<color red="1.0" green="1.0" blue="1.0" />
|
||||
</text>
|
||||
</element>
|
||||
<element name="drv1">
|
||||
<text string="Drive B">
|
||||
<color red="1.0" green="1.0" blue="1.0" />
|
||||
</text>
|
||||
</element>
|
||||
|
||||
<view name="System LEDs">
|
||||
<screen index="0">
|
||||
<bounds x="75" y="0" width="1024" height="768" />
|
||||
</screen>
|
||||
<element name="int_drv0text" ref="drv0">
|
||||
<bounds left="0" right="74" top="0" bottom="30" />
|
||||
</element>
|
||||
<element name="access_int_drv0" ref="access_led">
|
||||
<bounds left="0" right="20" top="31" bottom="39" />
|
||||
</element>
|
||||
<element name="int_drv1text" ref="drv1">
|
||||
<bounds left="0" right="74" top="40" bottom="70" />
|
||||
</element>
|
||||
<element name="access_int_drv1" ref="access_led">
|
||||
<bounds left="0" right="20" top="71" bottom="79" />
|
||||
</element>
|
||||
</view>
|
||||
</mamelayout>
|
@ -107,8 +107,7 @@
|
||||
#include "screen.h"
|
||||
#include "softlist_dev.h"
|
||||
|
||||
#include "msx_1drive.lh"
|
||||
#include "msx_2drives.lh"
|
||||
#include "msx.lh"
|
||||
|
||||
|
||||
//#define VERBOSE (LOG_GENERAL)
|
||||
@ -134,7 +133,6 @@ msx_state::msx_state(const machine_config &mconfig, device_type type, const char
|
||||
, m_gen_port1(*this, "gen1")
|
||||
, m_gen_port2(*this, "gen2")
|
||||
, m_io_key(*this, "KEY%u", 0U)
|
||||
, m_leds(*this, "led%u", 1U)
|
||||
, m_view_page0(*this, "view0")
|
||||
, m_view_page1(*this, "view1")
|
||||
, m_view_page2(*this, "view2")
|
||||
@ -162,6 +160,11 @@ msx_state::msx_state(const machine_config &mconfig, device_type type, const char
|
||||
, m_secondary_slot{0, 0, 0, 0}
|
||||
, m_port_c_old(0)
|
||||
, m_keylatch(0)
|
||||
, m_caps_led(*this, "caps_led")
|
||||
, m_caps_led_name(*this, "caps_led_name")
|
||||
, m_code_led(*this, "code_led")
|
||||
, m_code_led_name(*this, "code_led_name")
|
||||
, m_region(REGION_UNKNOWN)
|
||||
{
|
||||
m_view[0] = &m_view_page0;
|
||||
m_view[1] = &m_view_page1;
|
||||
@ -304,11 +307,18 @@ void msx_state::machine_reset()
|
||||
m_view_slot0_page2.select(0);
|
||||
m_view_slot0_page3.select(0);
|
||||
}
|
||||
m_caps_led_name = m_hw_def.has_caps_led() ? 1 : 0;
|
||||
m_caps_led = m_hw_def.has_caps_led() ? 1 : 0;
|
||||
m_code_led_name = m_hw_def.has_code_led() ? m_region : 0;
|
||||
m_code_led = m_hw_def.has_code_led() ? 1 : 0;
|
||||
}
|
||||
|
||||
void msx_state::machine_start()
|
||||
{
|
||||
m_leds.resolve();
|
||||
m_caps_led.resolve();
|
||||
m_caps_led_name.resolve();
|
||||
m_code_led.resolve();
|
||||
m_code_led_name.resolve();
|
||||
m_port_c_old = 0xff;
|
||||
}
|
||||
|
||||
@ -452,9 +462,9 @@ void msx_state::psg_port_a_w(u8 data)
|
||||
|
||||
void msx_state::psg_port_b_w(u8 data)
|
||||
{
|
||||
// Arabic or kana mode led
|
||||
if ((data ^ m_psg_b) & 0x80)
|
||||
m_leds[1] = BIT(~data, 7);
|
||||
// Code(/Kana/Arabic/Hangul) led
|
||||
if (m_hw_def.has_code_led())
|
||||
m_code_led = 1 + BIT(~data, 7);
|
||||
|
||||
m_gen_port1->pin_6_w(BIT(data, 0));
|
||||
m_gen_port1->pin_7_w(BIT(data, 1));
|
||||
@ -482,8 +492,8 @@ void msx_state::ppi_port_c_w(u8 data)
|
||||
m_keylatch = data & 0x0f;
|
||||
|
||||
// caps lock
|
||||
if (BIT(m_port_c_old ^ data, 6))
|
||||
m_leds[0] = BIT(~data, 6);
|
||||
if (m_hw_def.has_caps_led())
|
||||
m_caps_led = 1 + BIT(~data, 6);
|
||||
|
||||
// key click
|
||||
if (BIT(m_port_c_old ^ data, 7))
|
||||
@ -553,8 +563,9 @@ void msx_state::kanji_w(offs_t offset, u8 data)
|
||||
m_kanji_latch = (m_kanji_latch & 0x1f800) | ((data & 0x3f) << 5);
|
||||
}
|
||||
|
||||
void msx_state::msx_base(ay8910_type ay8910_type, machine_config &config, XTAL xtal, int cpu_divider)
|
||||
void msx_state::msx_base(ay8910_type ay8910_type, machine_config &config, XTAL xtal, int cpu_divider, region_type region)
|
||||
{
|
||||
m_region = region;
|
||||
// basic machine hardware
|
||||
Z80(config, m_maincpu, xtal / cpu_divider); // 3.579545 MHz
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &msx_state::memory_map);
|
||||
@ -612,15 +623,7 @@ void msx_state::msx_base(ay8910_type ay8910_type, machine_config &config, XTAL x
|
||||
m_cassette->set_interface("msx_cass");
|
||||
}
|
||||
|
||||
switch (m_hw_def.get_internal_drives())
|
||||
{
|
||||
case 1:
|
||||
config.set_default_layout(layout_msx_1drive);
|
||||
break;
|
||||
case 2:
|
||||
config.set_default_layout(layout_msx_2drives);
|
||||
break;
|
||||
}
|
||||
config.set_default_layout(layout_msx);
|
||||
}
|
||||
|
||||
void msx_state::msx1_add_softlists(machine_config &config)
|
||||
@ -635,9 +638,9 @@ void msx_state::msx1_add_softlists(machine_config &config)
|
||||
SOFTWARE_LIST(config, "flop_list").set_original("msx1_flop");
|
||||
}
|
||||
|
||||
void msx_state::msx1(vdp_type vdp_type, ay8910_type ay8910_type, machine_config &config)
|
||||
void msx_state::msx1(vdp_type vdp_type, ay8910_type ay8910_type, machine_config &config, region_type region)
|
||||
{
|
||||
msx_base(ay8910_type, config, 10.738635_MHz_XTAL, 3);
|
||||
msx_base(ay8910_type, config, 10.738635_MHz_XTAL, 3, region);
|
||||
|
||||
m_maincpu->set_addrmap(AS_IO, &msx_state::msx1_io_map);
|
||||
|
||||
@ -818,17 +821,17 @@ void msx2_base_state::turbor_add_softlists(machine_config &config)
|
||||
}
|
||||
}
|
||||
|
||||
void msx2_base_state::msx2_base(ay8910_type ay8910_type, machine_config &config)
|
||||
void msx2_base_state::msx2_base(ay8910_type ay8910_type, machine_config &config, region_type region)
|
||||
{
|
||||
msx_base(ay8910_type, config, 21.477272_MHz_XTAL, 6);
|
||||
msx_base(ay8910_type, config, 21.477272_MHz_XTAL, 6, region);
|
||||
|
||||
// real time clock
|
||||
RP5C01(config, m_rtc, 32.768_kHz_XTAL);
|
||||
}
|
||||
|
||||
void msx2_base_state::msx2(ay8910_type ay8910_type, machine_config &config)
|
||||
void msx2_base_state::msx2(ay8910_type ay8910_type, machine_config &config, region_type region)
|
||||
{
|
||||
msx2_base(ay8910_type, config);
|
||||
msx2_base(ay8910_type, config, region);
|
||||
|
||||
m_maincpu->set_addrmap(AS_IO, &msx2_base_state::msx2_io_map);
|
||||
|
||||
@ -842,15 +845,15 @@ void msx2_base_state::msx2(ay8910_type ay8910_type, machine_config &config)
|
||||
msx2_add_softlists(config);
|
||||
}
|
||||
|
||||
void msx2_base_state::msx2_pal(ay8910_type ay8910_type, machine_config &config)
|
||||
void msx2_base_state::msx2_pal(ay8910_type ay8910_type, machine_config &config, region_type region)
|
||||
{
|
||||
msx2(ay8910_type, config);
|
||||
msx2(ay8910_type, config, region);
|
||||
m_v9938->set_screen_pal(m_screen);
|
||||
}
|
||||
|
||||
void msx2_base_state::msx2plus_base(ay8910_type ay8910_type, machine_config &config)
|
||||
void msx2_base_state::msx2plus_base(ay8910_type ay8910_type, machine_config &config, region_type region)
|
||||
{
|
||||
msx2_base(ay8910_type, config);
|
||||
msx2_base(ay8910_type, config, region);
|
||||
|
||||
m_maincpu->set_addrmap(AS_IO, &msx2_base_state::msx2plus_io_map);
|
||||
|
||||
@ -861,23 +864,23 @@ void msx2_base_state::msx2plus_base(ay8910_type ay8910_type, machine_config &con
|
||||
m_v9958->int_cb().set(m_mainirq, FUNC(input_merger_device::in_w<0>));
|
||||
}
|
||||
|
||||
void msx2_base_state::msx2plus(ay8910_type ay8910_type, machine_config &config)
|
||||
void msx2_base_state::msx2plus(ay8910_type ay8910_type, machine_config &config, region_type region)
|
||||
{
|
||||
msx2plus_base(ay8910_type, config);
|
||||
msx2plus_base(ay8910_type, config, region);
|
||||
|
||||
// Software lists
|
||||
msx2plus_add_softlists(config);
|
||||
}
|
||||
|
||||
void msx2_base_state::msx2plus_pal(ay8910_type ay8910_type, machine_config &config)
|
||||
void msx2_base_state::msx2plus_pal(ay8910_type ay8910_type, machine_config &config, region_type region)
|
||||
{
|
||||
msx2plus(ay8910_type, config);
|
||||
msx2plus(ay8910_type, config, region);
|
||||
m_v9958->set_screen_pal(m_screen);
|
||||
}
|
||||
|
||||
void msx2_base_state::turbor(ay8910_type ay8910_type, machine_config &config)
|
||||
void msx2_base_state::turbor(ay8910_type ay8910_type, machine_config &config, region_type region)
|
||||
{
|
||||
msx2plus_base(ay8910_type, config);
|
||||
msx2plus_base(ay8910_type, config, region);
|
||||
|
||||
R800(config.replace(), m_maincpu, 28.636363_MHz_XTAL);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &msx2_base_state::memory_map);
|
||||
|
@ -31,19 +31,22 @@ public:
|
||||
bool has_printer_port() const { return m_has_printer_port; }
|
||||
bool has_cartslot() const { return m_has_cartslot; }
|
||||
bool has_fdc() const { return m_has_fdc; }
|
||||
int get_internal_drives() const { return m_internal_drives; }
|
||||
bool has_caps_led() const { return m_has_caps_led; }
|
||||
bool has_code_led() const { return m_has_code_led; }
|
||||
msx_hw_def &has_cassette(bool has_cassette) { m_has_cassette = has_cassette; return *this;}
|
||||
msx_hw_def &has_printer_port(bool has_printer_port) { m_has_printer_port = has_printer_port; return *this; }
|
||||
msx_hw_def &has_cartslot(bool has_cartslot) { m_has_cartslot = has_cartslot; return *this; }
|
||||
msx_hw_def &has_fdc(bool has_fdc) { m_has_fdc = has_fdc; return *this; }
|
||||
msx_hw_def &internal_drives(int internal_drives) { m_internal_drives = internal_drives; return *this; }
|
||||
msx_hw_def &no_caps_led() { m_has_caps_led = false; return *this; }
|
||||
msx_hw_def &no_code_led() { m_has_code_led = false; return *this; }
|
||||
|
||||
private:
|
||||
bool m_has_cassette = true;
|
||||
bool m_has_printer_port = true;
|
||||
bool m_has_cartslot = false;
|
||||
bool m_has_fdc = false;
|
||||
int m_internal_drives = 0;
|
||||
bool m_has_caps_led = true;
|
||||
bool m_has_code_led = true;
|
||||
};
|
||||
|
||||
class msx_state : public driver_device
|
||||
@ -68,8 +71,18 @@ protected:
|
||||
VDP_TMS9929A
|
||||
};
|
||||
|
||||
void msx_base(ay8910_type ay8910_type, machine_config &config, XTAL xtal, int cpu_divider);
|
||||
void msx1(vdp_type vdp_type, ay8910_type ay8910_type, machine_config &config);
|
||||
enum region_type
|
||||
{
|
||||
REGION_UNKNOWN = 0,
|
||||
REGION_INTERNATIONAL = 1,
|
||||
REGION_JAPAN = 2,
|
||||
REGION_KOREA = 3,
|
||||
REGION_ARAB = 4,
|
||||
REGION_RUSSIA = 5
|
||||
};
|
||||
|
||||
void msx_base(ay8910_type ay8910_type, machine_config &config, XTAL xtal, int cpu_divider, region_type region);
|
||||
void msx1(vdp_type vdp_type, ay8910_type ay8910_type, machine_config &config, region_type region);
|
||||
void msx1_add_softlists(machine_config &config);
|
||||
|
||||
// configuration helpers
|
||||
@ -189,7 +202,6 @@ protected:
|
||||
required_device<msx_general_purpose_port_device> m_gen_port1;
|
||||
required_device<msx_general_purpose_port_device> m_gen_port2;
|
||||
required_ioport_array<11> m_io_key;
|
||||
output_finder<2> m_leds;
|
||||
msx_hw_def m_hw_def;
|
||||
// This is here until more direct rom dumps from kanji font roms become available.
|
||||
bool m_kanji_fsa1fx = false;
|
||||
@ -237,6 +249,11 @@ protected:
|
||||
u8 m_secondary_slot[4];
|
||||
u8 m_port_c_old;
|
||||
u8 m_keylatch;
|
||||
output_finder<> m_caps_led;
|
||||
output_finder<> m_caps_led_name;
|
||||
output_finder<> m_code_led;
|
||||
output_finder<> m_code_led_name;
|
||||
region_type m_region;
|
||||
|
||||
private:
|
||||
// configuration helpers
|
||||
@ -270,7 +287,6 @@ private:
|
||||
{
|
||||
auto &device = add_internal_slot(config, std::forward<T>(type), std::forward<U>(tag), prim, true, sec, page, numpages, region, offset);
|
||||
m_hw_def.has_fdc(true);
|
||||
m_hw_def.internal_drives(device.get_nr_drives());
|
||||
return device;
|
||||
}
|
||||
template <int N, typename T, typename U>
|
||||
@ -326,13 +342,13 @@ protected:
|
||||
|
||||
virtual void machine_start() override;
|
||||
|
||||
void msx2_base(ay8910_type ay8910_type, machine_config &config);
|
||||
void msx2(ay8910_type ay8910_type, machine_config &config);
|
||||
void msx2_pal(ay8910_type ay8910_type, machine_config &config);
|
||||
void msx2plus_base(ay8910_type ay8910_type, machine_config &config);
|
||||
void msx2plus(ay8910_type ay8910_type, machine_config &config);
|
||||
void msx2plus_pal(ay8910_type ay8910_type, machine_config &config);
|
||||
void turbor(ay8910_type ay8910_type, machine_config &config);
|
||||
void msx2_base(ay8910_type ay8910_type, machine_config &config, region_type region);
|
||||
void msx2(ay8910_type ay8910_type, machine_config &config, region_type region);
|
||||
void msx2_pal(ay8910_type ay8910_type, machine_config &config, region_type region);
|
||||
void msx2plus_base(ay8910_type ay8910_type, machine_config &config, region_type region);
|
||||
void msx2plus(ay8910_type ay8910_type, machine_config &config, region_type region);
|
||||
void msx2plus_pal(ay8910_type ay8910_type, machine_config &config, region_type region);
|
||||
void turbor(ay8910_type ay8910_type, machine_config &config, region_type region);
|
||||
void msx2_add_softlists(machine_config &config);
|
||||
void msx2plus_add_softlists(machine_config &config);
|
||||
void turbor_add_softlists(machine_config &config);
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -73,7 +73,8 @@ void bruc100_state::bruc100(machine_config &config)
|
||||
// Expansion slot in slot 1
|
||||
add_internal_slot(config, MSX_SLOT_RAM_MM, "ram_mm", 3, 0, 4).set_total_size(0x10000); // 64KB RAM
|
||||
|
||||
msx1(VDP_TMS9129, SND_AY8910, config);
|
||||
m_hw_def.no_code_led();
|
||||
msx1(VDP_TMS9129, SND_AY8910, config, REGION_INTERNATIONAL);
|
||||
m_maincpu->set_addrmap(AS_IO, &bruc100_state::io_map);
|
||||
}
|
||||
|
||||
@ -108,7 +109,8 @@ void bruc100_state::bruc100a(machine_config &config)
|
||||
add_cartridge_slot<1>(config, 2);
|
||||
// Expansion slot in slot 3
|
||||
|
||||
msx1(VDP_TMS9129, SND_AY8910, config);
|
||||
m_hw_def.no_code_led();
|
||||
msx1(VDP_TMS9129, SND_AY8910, config, REGION_INTERNATIONAL);
|
||||
m_maincpu->set_addrmap(AS_IO, &bruc100_state::io_map);
|
||||
}
|
||||
|
||||
|
@ -56,8 +56,9 @@ public:
|
||||
void yis503ii(machine_config &config);
|
||||
|
||||
protected:
|
||||
void msx1_v9938(ay8910_type ay8910_type, machine_config &config);
|
||||
void msx1_v9938_pal(ay8910_type ay8910_type, machine_config &config);
|
||||
void msx1_v9938(ay8910_type ay8910_type, machine_config &config, region_type region);
|
||||
void msx1_v9938_pal(ay8910_type ay8910_type, machine_config &config, region_type region);
|
||||
void svi738_base(machine_config &config, region_type region);
|
||||
|
||||
void io_map(address_map &map);
|
||||
|
||||
@ -76,9 +77,9 @@ void msx1_v9938_state::io_map(address_map &map)
|
||||
map(0x98, 0x9b).rw(m_v9938, FUNC(v9938_device::read), FUNC(v9938_device::write));
|
||||
}
|
||||
|
||||
void msx1_v9938_state::msx1_v9938(ay8910_type ay8910_type, machine_config &config)
|
||||
void msx1_v9938_state::msx1_v9938(ay8910_type ay8910_type, machine_config &config, region_type region)
|
||||
{
|
||||
msx_base(ay8910_type, config, 21.477272_MHz_XTAL, 6);
|
||||
msx_base(ay8910_type, config, 21.477272_MHz_XTAL, 6, region);
|
||||
|
||||
m_maincpu->set_addrmap(AS_IO, &msx1_v9938_state::io_map);
|
||||
|
||||
@ -92,9 +93,9 @@ void msx1_v9938_state::msx1_v9938(ay8910_type ay8910_type, machine_config &confi
|
||||
msx1_add_softlists(config);
|
||||
}
|
||||
|
||||
void msx1_v9938_state::msx1_v9938_pal(ay8910_type ay8910_type, machine_config &config)
|
||||
void msx1_v9938_state::msx1_v9938_pal(ay8910_type ay8910_type, machine_config &config, region_type region)
|
||||
{
|
||||
msx1_v9938(ay8910_type, config);
|
||||
msx1_v9938(ay8910_type, config, region);
|
||||
m_v9938->set_screen_pal(m_screen);
|
||||
}
|
||||
|
||||
@ -124,7 +125,7 @@ void msx1_v9938_state::ax200(machine_config &config)
|
||||
add_cartridge_slot<2>(config, 2);
|
||||
add_cartridge_slot<3>(config, MSX_SLOT_YAMAHA_EXPANSION, "expansion", 3, msx_yamaha_60pin, nullptr);
|
||||
|
||||
msx1_v9938_pal(SND_YM2149, config);
|
||||
msx1_v9938_pal(SND_YM2149, config, REGION_ARAB);
|
||||
}
|
||||
|
||||
/* MSX - Sakhr AX-200 (Arabic/French) */
|
||||
@ -156,7 +157,7 @@ void msx1_v9938_state::ax200m(machine_config &config)
|
||||
// Dumped unit had a SFG05 with version M5.00.011 rom
|
||||
add_cartridge_slot<3>(config, MSX_SLOT_YAMAHA_EXPANSION, "expansion", 3, msx_yamaha_60pin, "sfg05");
|
||||
|
||||
msx1_v9938_pal(SND_YM2149, config);
|
||||
msx1_v9938_pal(SND_YM2149, config, REGION_ARAB);
|
||||
}
|
||||
|
||||
/* MSX - Spectravideo SVI-738 */
|
||||
@ -172,6 +173,17 @@ ROM_START(svi738)
|
||||
ROM_LOAD("738232c.rom", 0x0000, 0x2000, CRC(3353dcc6) SHA1(4e9384c9d137f0ab65ffc5a78f04cd8c9df6c8b7))
|
||||
ROM_END
|
||||
|
||||
void msx1_v9938_state::svi738_base(machine_config &config, region_type region)
|
||||
{
|
||||
add_internal_slot(config, MSX_SLOT_ROM, "mainrom", 0, 0, 2, "mainrom");
|
||||
add_internal_slot(config, MSX_SLOT_RAM, "ram", 1, 0, 4); // 64KB RAM
|
||||
add_cartridge_slot<1>(config, 2);
|
||||
add_internal_slot_irq<2>(config, MSX_SLOT_RS232_SVI738, "rs232", 3, 0, 1, 1, "rs232rom");
|
||||
add_internal_disk_mirrored(config, MSX_SLOT_DISK2_FD1793_SS, "disk", 3, 1, 1, 2, "diskrom").use_motor_for_led();
|
||||
|
||||
msx1_v9938_pal(SND_AY8910, config, region);
|
||||
}
|
||||
|
||||
void msx1_v9938_state::svi738(machine_config &config)
|
||||
{
|
||||
// AY8910
|
||||
@ -180,13 +192,8 @@ void msx1_v9938_state::svi738(machine_config &config)
|
||||
// builtin 80 columns card (V9938)
|
||||
// RS-232C interface
|
||||
|
||||
add_internal_slot(config, MSX_SLOT_ROM, "mainrom", 0, 0, 2, "mainrom");
|
||||
add_internal_slot(config, MSX_SLOT_RAM, "ram", 1, 0, 4); // 64KB RAM
|
||||
add_cartridge_slot<1>(config, 2);
|
||||
add_internal_slot_irq<2>(config, MSX_SLOT_RS232_SVI738, "rs232", 3, 0, 1, 1, "rs232rom");
|
||||
add_internal_disk_mirrored(config, MSX_SLOT_DISK2_FD1793_SS, "disk", 3, 1, 1, 2, "diskrom").use_motor_for_led();
|
||||
|
||||
msx1_v9938_pal(SND_AY8910, config);
|
||||
m_hw_def.no_code_led();
|
||||
svi738_base(config, REGION_INTERNATIONAL);
|
||||
}
|
||||
|
||||
/* MSX - Spectravideo SVI-738 Arabic */
|
||||
@ -207,7 +214,7 @@ ROM_END
|
||||
|
||||
void msx1_v9938_state::svi738ar(machine_config &config)
|
||||
{
|
||||
svi738(config);
|
||||
svi738_base(config, REGION_ARAB);
|
||||
add_internal_slot(config, MSX_SLOT_ROM, "arab", 3, 3, 1, 2, "arab");
|
||||
}
|
||||
|
||||
@ -284,7 +291,8 @@ void msx1_v9938_state::tadpc200a(machine_config &config)
|
||||
add_cartridge_slot<1>(config, 2);
|
||||
// Expansion slot
|
||||
|
||||
msx1_v9938_pal(SND_YM2149, config);
|
||||
m_hw_def.no_code_led();
|
||||
msx1_v9938_pal(SND_YM2149, config, REGION_INTERNATIONAL);
|
||||
}
|
||||
|
||||
/* MSX - Yamaha CX5MII-128A (Australia, New Zealand) */
|
||||
@ -320,7 +328,8 @@ void msx1_v9938_state::cx5m128(machine_config &config)
|
||||
add_internal_slot(config, MSX_SLOT_RAM_MM, "ram_mm", 3, 2, 0, 4).set_total_size(0x20000); // 128KB Mapper RAM
|
||||
add_cartridge_slot<3>(config, MSX_SLOT_YAMAHA_EXPANSION, "module", 3, 3, msx_yamaha_60pin, "sfg05");
|
||||
|
||||
msx1_v9938_pal(SND_YM2149, config);
|
||||
m_hw_def.no_code_led();
|
||||
msx1_v9938_pal(SND_YM2149, config, REGION_INTERNATIONAL);
|
||||
}
|
||||
|
||||
/* MSX - Yamaha CX5MII-128 C (Canada) */
|
||||
@ -370,7 +379,8 @@ void msx1_v9938_state::cx5miib(machine_config &config)
|
||||
add_internal_slot(config, MSX_SLOT_RAM_MM, "ram_mm", 3, 2, 0, 4).set_total_size(0x10000); // 64KB Mapper RAM
|
||||
add_cartridge_slot<3>(config, MSX_SLOT_YAMAHA_EXPANSION, "module", 3, 3, msx_yamaha_60pin, "sfg05");
|
||||
|
||||
msx1_v9938_pal(SND_YM2149, config);
|
||||
m_hw_def.no_code_led();
|
||||
msx1_v9938_pal(SND_YM2149, config, REGION_INTERNATIONAL);
|
||||
}
|
||||
|
||||
/* MSX - Yamaha CX5MIIC (Canada) */
|
||||
@ -408,7 +418,8 @@ void msx1_v9938_state::yis503ii(machine_config &config)
|
||||
add_internal_slot(config, MSX_SLOT_RAM, "ram", 3, 2, 0, 4); // 64KB RAM
|
||||
add_cartridge_slot<3>(config, MSX_SLOT_YAMAHA_EXPANSION, "module", 3, 3, msx_yamaha_60pin, nullptr);
|
||||
|
||||
msx1_v9938(SND_YM2149, config);
|
||||
m_hw_def.no_code_led();
|
||||
msx1_v9938(SND_YM2149, config, REGION_INTERNATIONAL);
|
||||
}
|
||||
|
||||
/* MSX - Yamaha YIS503-IIR Russian */
|
||||
@ -438,7 +449,7 @@ void msx1_v9938_state::y503iir(machine_config &config)
|
||||
// This should have a serial network interface by default
|
||||
add_cartridge_slot<3>(config, MSX_SLOT_YAMAHA_EXPANSION, "module", 3, 3, msx_yamaha_60pin, nullptr);
|
||||
|
||||
msx1_v9938_pal(SND_YM2149, config);
|
||||
msx1_v9938_pal(SND_YM2149, config, REGION_RUSSIA);
|
||||
}
|
||||
|
||||
/* MSX - Yamaha YIS503-IIR Estonian */
|
||||
@ -468,7 +479,7 @@ void msx1_v9938_state::y503iir2(machine_config &config)
|
||||
// This should have a serial network interface by default
|
||||
add_cartridge_slot<3>(config, MSX_SLOT_YAMAHA_EXPANSION, "module", 3, 3, msx_yamaha_60pin, nullptr);
|
||||
|
||||
msx1_v9938_pal(SND_YM2149, config);
|
||||
msx1_v9938_pal(SND_YM2149, config, REGION_RUSSIA);
|
||||
}
|
||||
|
||||
} // anonymous namespace
|
||||
|
@ -211,7 +211,7 @@ void msx2_state::canonv25(machine_config &config)
|
||||
add_internal_slot(config, MSX_SLOT_ROM, "subrom", 3, 0, 0, 1, "subrom");
|
||||
add_internal_slot(config, MSX_SLOT_RAM_MM, "ram_mm", 3, 2, 0, 4).set_total_size(0x10000); // 64KB Mapper RAM
|
||||
|
||||
msx2(SND_YM2149, config);
|
||||
msx2(SND_YM2149, config, REGION_JAPAN);
|
||||
msx2_64kb_vram(config);
|
||||
}
|
||||
|
||||
@ -242,7 +242,7 @@ void msx2_state::canonv30f(machine_config &config)
|
||||
add_internal_disk_mirrored(config, MSX_SLOT_DISK7_MB8877, "disk", 3, 1, 1, 2, "diskrom");
|
||||
add_internal_slot(config, MSX_SLOT_RAM_MM, "ram_mm", 3, 2, 0, 4).set_total_size(0x20000); // 128KB Mapper RAM
|
||||
|
||||
msx2(SND_YM2149, config);
|
||||
msx2(SND_YM2149, config, REGION_JAPAN);
|
||||
}
|
||||
|
||||
/* MSX2 - Daewoo CPC-300 */
|
||||
@ -274,7 +274,7 @@ void msx2_state::cpc300(machine_config &config)
|
||||
// Expansion slot in slot #3
|
||||
|
||||
MSX_S1985(config, "s1985", 0);
|
||||
msx2(SND_YM2149, config);
|
||||
msx2(SND_YM2149, config, REGION_KOREA);
|
||||
}
|
||||
|
||||
/* MSX2 - Daewoo CPC-300E */
|
||||
@ -308,7 +308,7 @@ void msx2_state::cpc300e(machine_config &config)
|
||||
// Expansion slot in slot #3
|
||||
|
||||
MSX_S1985(config, "s1985", 0);
|
||||
msx2(SND_YM2149, config);
|
||||
msx2(SND_YM2149, config, REGION_KOREA);
|
||||
}
|
||||
|
||||
/* MSX2 - Daewoo CPC-330K */
|
||||
@ -339,7 +339,7 @@ void msx2_state::cpc330k(machine_config &config)
|
||||
add_internal_slot(config, MSX_SLOT_ROM, "subrom", 0, 3, 0, 2, "subrom");
|
||||
add_cartridge_slot<1>(config, 1);
|
||||
|
||||
msx2(SND_AY8910, config);
|
||||
msx2(SND_AY8910, config, REGION_KOREA);
|
||||
}
|
||||
|
||||
/* MSX2 - Daewoo CPC-400 */
|
||||
@ -376,7 +376,7 @@ void msx2_state::cpc400(machine_config &config)
|
||||
add_internal_disk_mirrored(config, MSX_SLOT_DISK2_MB8877, "disk", 2, 1, 2, "diskrom");
|
||||
// Expansion slot in slot #3
|
||||
|
||||
msx2(SND_AY8910, config);
|
||||
msx2(SND_AY8910, config, REGION_KOREA);
|
||||
}
|
||||
|
||||
/* MSX2 - Daewoo CPC-400S */
|
||||
@ -411,7 +411,7 @@ void msx2_state::cpc400s(machine_config &config)
|
||||
add_internal_disk_mirrored(config, MSX_SLOT_DISK2_MB8877, "disk", 2, 1, 2, "mainrom", 0x8000);
|
||||
// Expansion slot in slot #3
|
||||
|
||||
msx2(SND_AY8910, config);
|
||||
msx2(SND_AY8910, config, REGION_KOREA);
|
||||
}
|
||||
|
||||
/* MSX2 - Daewoo Zemmix CPC-61 */
|
||||
@ -437,9 +437,8 @@ void msx2_state::cpc61(machine_config &config)
|
||||
add_internal_slot(config, MSX_SLOT_ROM, "subrom", 0, 3, 0, 1, "mainrom", 0x8000);
|
||||
add_cartridge_slot<1>(config, 1);
|
||||
|
||||
m_hw_def.has_cassette(false)
|
||||
.has_printer_port(false);
|
||||
msx2(SND_AY8910, config);
|
||||
m_hw_def.has_cassette(false).has_printer_port(false).no_caps_led().no_code_led();
|
||||
msx2(SND_AY8910, config, REGION_KOREA);
|
||||
}
|
||||
|
||||
/* MSX2 - Daewoo Zemmix CPG-120 Normal */
|
||||
@ -464,7 +463,7 @@ void msx2_state::cpg120(machine_config &config)
|
||||
// S-1985 MSX Engine
|
||||
// V9958 VDP
|
||||
// FM built in
|
||||
// No keyboard, bot a keyboard connector?
|
||||
// No keyboard, but a keyboard connector?
|
||||
// No clock chip?
|
||||
// No printer port
|
||||
|
||||
@ -478,8 +477,8 @@ void msx2_state::cpg120(machine_config &config)
|
||||
MSX_S1985(config, "s1985", 0);
|
||||
|
||||
msx_ym2413(config);
|
||||
m_hw_def.has_printer_port(false);
|
||||
msx2plus(SND_AY8910, config);
|
||||
m_hw_def.has_printer_port(false).no_caps_led().no_code_led();
|
||||
msx2plus(SND_AY8910, config, REGION_KOREA);
|
||||
}
|
||||
|
||||
/* MSX2 - Daisen Sangyo MX-2021 */
|
||||
@ -511,7 +510,8 @@ void msx2_state::fpc900(machine_config &config)
|
||||
add_internal_slot(config, MSX_SLOT_RAM_MM, "ram_mm", 3, 2, 0, 4).set_total_size(0x40000); // 256KB? Mapper RAM
|
||||
add_internal_disk_mirrored(config, MSX_SLOT_DISK1_WD2793, "disk", 3, 3, 1, 2, "diskrom");
|
||||
|
||||
msx2_pal(SND_YM2149, config);
|
||||
m_hw_def.no_code_led();
|
||||
msx2_pal(SND_YM2149, config, REGION_INTERNATIONAL);
|
||||
}
|
||||
|
||||
/* MSX2 - GR8Bit (should probably be a separate driver) */
|
||||
@ -546,7 +546,8 @@ void msx2_state::expert20(machine_config &config)
|
||||
add_internal_slot(config, MSX_SLOT_RAM_MM, "ram_mm", 2, 0, 0, 4).set_total_size(0x20000).set_unused_bits(0x80); // 128KB Mapper RAM
|
||||
add_cartridge_slot<2>(config, 3);
|
||||
|
||||
msx2_pal(SND_AY8910, config);
|
||||
m_hw_def.no_code_led();
|
||||
msx2_pal(SND_AY8910, config, REGION_INTERNATIONAL);
|
||||
}
|
||||
|
||||
/* MSX2 - Hitachi MB-H3 */
|
||||
@ -578,7 +579,7 @@ void msx2_state::mbh3(machine_config &config)
|
||||
add_internal_slot(config, MSX_SLOT_ROM, "firmware", 3, 0, 1, 2, "firmware");
|
||||
add_internal_slot(config, MSX_SLOT_RAM_MM, "ram_mm", 3, 2, 0, 4).set_total_size(0x20000); // 128KB Mapper RAM
|
||||
|
||||
msx2(SND_YM2149, config);
|
||||
msx2(SND_YM2149, config, REGION_JAPAN);
|
||||
msx2_64kb_vram(config);
|
||||
}
|
||||
|
||||
@ -618,7 +619,7 @@ void msx2_state::mbh70(machine_config &config)
|
||||
|
||||
MSX_S1985(config, "s1985", 0);
|
||||
|
||||
msx2(SND_YM2149, config);
|
||||
msx2(SND_YM2149, config, REGION_JAPAN);
|
||||
}
|
||||
|
||||
/* MSX2 - Kawai KMC-5000 */
|
||||
@ -658,7 +659,7 @@ void msx2_state::kmc5000(machine_config &config)
|
||||
|
||||
MSX_S1985(config, "s1985", 0);
|
||||
|
||||
msx2(SND_YM2149, config);
|
||||
msx2(SND_YM2149, config, REGION_JAPAN);
|
||||
}
|
||||
|
||||
/* MSX2 - Laser MSX2 (unreleased) */
|
||||
@ -693,7 +694,8 @@ void msx2_state::mlg1(machine_config &config)
|
||||
add_internal_slot(config, MSX_SLOT_RAM_MM, "ram_mm", 3, 2, 0, 4).set_total_size(0x10000); // 64KB Mapper RAM
|
||||
add_internal_slot(config, MSX_SLOT_ROM, "firmware", 3, 3, 0, 2, "firmware");
|
||||
|
||||
msx2_pal(SND_YM2149, config);
|
||||
m_hw_def.no_code_led();
|
||||
msx2_pal(SND_YM2149, config, REGION_INTERNATIONAL);
|
||||
}
|
||||
|
||||
/* MSX2 - Mitsubishi ML-G3 */
|
||||
@ -732,7 +734,8 @@ void msx2_state::mlg3(machine_config &config)
|
||||
add_internal_slot(config, MSX_SLOT_RAM_MM, "ram_mm", 3, 2, 0, 4).set_total_size(0x10000); // 64KB Mapper RAM
|
||||
add_internal_slot_irq<4>(config, MSX_SLOT_RS232_MITSUBISHI, "rs232", 3, 3, 1, 1, "rs232");
|
||||
|
||||
msx2_pal(SND_YM2149, config);
|
||||
m_hw_def.no_code_led();
|
||||
msx2_pal(SND_YM2149, config, REGION_INTERNATIONAL);
|
||||
}
|
||||
|
||||
/* MSX2 - Mitsubishi ML-G10 */
|
||||
@ -768,7 +771,7 @@ void msx2_state::mlg10(machine_config &config)
|
||||
add_internal_slot(config, MSX_SLOT_RAM_MM, "ram_mm", 3, 2, 0, 4).set_total_size(0x10000); // 64KB Mapper RAM
|
||||
add_internal_slot(config, MSX_SLOT_ROM, "firmware", 3, 3, 0, 2, "firmware");
|
||||
|
||||
msx2(SND_YM2149, config);
|
||||
msx2(SND_YM2149, config, REGION_JAPAN);
|
||||
}
|
||||
|
||||
/* MSX2 - Mitsubishi ML-G30 Model 1 */
|
||||
@ -803,7 +806,7 @@ void msx2_state::mlg30(machine_config &config)
|
||||
add_internal_slot(config, MSX_SLOT_RAM_MM, "ram_mm", 3, 2, 0, 4).set_total_size(0x20000); // 128KB Mapper RAM
|
||||
add_cartridge_slot<4>(config, 3, 3);
|
||||
|
||||
msx2(SND_YM2149, config);
|
||||
msx2(SND_YM2149, config, REGION_JAPAN);
|
||||
}
|
||||
|
||||
/* MSX2 - Mitsubishi ML-G30 Model 2 */
|
||||
@ -843,7 +846,7 @@ void msx2_state::mlg30_2(machine_config &config)
|
||||
add_internal_slot(config, MSX_SLOT_RAM_MM, "ram_mm", 3, 2, 0, 4).set_total_size(0x20000); // 128KB Mapper RAM
|
||||
add_internal_slot_irq<4>(config, MSX_SLOT_RS232_MITSUBISHI, "rs232", 3, 3, 1, 1, "rs232");
|
||||
|
||||
msx2(SND_YM2149, config);
|
||||
msx2(SND_YM2149, config, REGION_JAPAN);
|
||||
}
|
||||
|
||||
/* MSX2 - ML-TS100 (should be a separate driver) */
|
||||
@ -918,7 +921,7 @@ void msx2_state::fs4500(machine_config &config)
|
||||
add_internal_slot(config, MSX_SLOT_RAM, "ram", 3, 2, 0, 4); // 64KB RAM
|
||||
|
||||
MSX_MATSUSHITA(config, "matsushita", 0);
|
||||
msx2(SND_YM2149, config);
|
||||
msx2(SND_YM2149, config, REGION_JAPAN);
|
||||
}
|
||||
|
||||
/* MSX2 - National FS-4600F */
|
||||
@ -981,7 +984,7 @@ void msx2_state::fs4600f(machine_config &config)
|
||||
|
||||
MSX_S1985(config, "s1985", 0);
|
||||
|
||||
msx2(SND_YM2149, config);
|
||||
msx2(SND_YM2149, config, REGION_JAPAN);
|
||||
}
|
||||
|
||||
/* MSX2 - National FS-4700 */
|
||||
@ -1056,7 +1059,7 @@ void msx2_state::fs4700f(machine_config &config)
|
||||
|
||||
MSX_MATSUSHITA(config, "matsushita", 0);
|
||||
|
||||
msx2(SND_YM2149, config);
|
||||
msx2(SND_YM2149, config, REGION_JAPAN);
|
||||
}
|
||||
|
||||
/* MSX2 - National FS-5000F2 */
|
||||
@ -1103,7 +1106,7 @@ void msx2_state::fs5000f2(machine_config &config)
|
||||
|
||||
MSX_S1985(config, "s1985", 0);
|
||||
|
||||
msx2(SND_YM2149, config);
|
||||
msx2(SND_YM2149, config, REGION_JAPAN);
|
||||
}
|
||||
|
||||
/* MSX2 - National FS-5500F1 */
|
||||
@ -1186,7 +1189,7 @@ void msx2_state::fs5500f1(machine_config &config)
|
||||
|
||||
MSX_MATSUSHITA(config, "matsushita", 0);
|
||||
|
||||
msx2(SND_YM2149, config);
|
||||
msx2(SND_YM2149, config, REGION_JAPAN);
|
||||
}
|
||||
|
||||
/* MSX2 - National FS-5500F2 */
|
||||
@ -1237,7 +1240,7 @@ void msx2_state::fs5500f2(machine_config &config)
|
||||
|
||||
MSX_MATSUSHITA(config, "matsushita", 0);
|
||||
|
||||
msx2(SND_YM2149, config);
|
||||
msx2(SND_YM2149, config, REGION_JAPAN);
|
||||
}
|
||||
|
||||
/* MSX2 - Panasonic FS-A1 */
|
||||
@ -1264,7 +1267,8 @@ void msx2_state::fsa1(machine_config &config)
|
||||
|
||||
MSX_S1985(config, "s1985", 0);
|
||||
|
||||
msx2(SND_YM2149, config);
|
||||
m_hw_def.no_caps_led().no_code_led();
|
||||
msx2(SND_YM2149, config, REGION_JAPAN);
|
||||
}
|
||||
|
||||
/* MSX2 - Panasonic FS-A1 (a) */
|
||||
@ -1294,7 +1298,8 @@ void msx2_state::fsa1a(machine_config &config)
|
||||
|
||||
MSX_S1985(config, "s1985", 0);
|
||||
|
||||
msx2(SND_YM2149, config);
|
||||
m_hw_def.no_caps_led().no_code_led();
|
||||
msx2(SND_YM2149, config, REGION_JAPAN);
|
||||
}
|
||||
|
||||
/* MSX2 - Panasonic FS-A1F */
|
||||
@ -1325,7 +1330,7 @@ void msx2_state::fsa1f(machine_config &config)
|
||||
|
||||
MSX_S1985(config, "s1985", 0);
|
||||
|
||||
msx2(SND_YM2149, config);
|
||||
msx2(SND_YM2149, config, REGION_JAPAN);
|
||||
}
|
||||
|
||||
/* MSX2 - Panasonic FS-A1FM */
|
||||
@ -1374,7 +1379,7 @@ void msx2_state::fsa1fm(machine_config &config)
|
||||
msx_kanji12_device &kanji12(MSX_KANJI12(config, "kanji12", 0));
|
||||
kanji12.set_rom_start("kanji12");
|
||||
|
||||
msx2(SND_AY8910, config);
|
||||
msx2(SND_AY8910, config, REGION_JAPAN);
|
||||
}
|
||||
|
||||
/* MSX2 - Panasonic FS-A1MK2 */
|
||||
@ -1415,7 +1420,7 @@ void msx2_state::fsa1mk2(machine_config &config)
|
||||
|
||||
MSX_S1985(config, "s1985", 0);
|
||||
|
||||
msx2(SND_YM2149, config);
|
||||
msx2(SND_YM2149, config, REGION_JAPAN);
|
||||
}
|
||||
|
||||
/* MSX2 - Philips HCS 280 */
|
||||
@ -1449,7 +1454,8 @@ void msx2_state::nms8220(machine_config &config)
|
||||
add_internal_slot(config, MSX_SLOT_ROM, "designer", 3, 3, 1, 1, "designer");
|
||||
add_internal_slot(config, MSX_SLOT_ROM, "designer_mirror", 3, 3, 2, 1, "designer");
|
||||
|
||||
msx2_pal(SND_YM2149, config);
|
||||
m_hw_def.no_code_led();
|
||||
msx2_pal(SND_YM2149, config, REGION_INTERNATIONAL);
|
||||
}
|
||||
|
||||
/* MSX2 - Philips NMS 8245 - 2 possible sets (/00 /16) */
|
||||
@ -1482,7 +1488,8 @@ void msx2_state::nms8245(machine_config &config)
|
||||
add_internal_slot(config, MSX_SLOT_RAM_MM, "ram_mm", 3, 2, 0, 4).set_total_size(0x20000).set_unused_bits(0xf8); // 128KB Mapper RAM
|
||||
add_internal_disk_mirrored(config, MSX_SLOT_DISK1_WD2793, "disk", 3, 3, 1, 2, "mainrom", 0xc000);
|
||||
|
||||
msx2_pal(SND_YM2149, config);
|
||||
m_hw_def.no_code_led();
|
||||
msx2_pal(SND_YM2149, config, REGION_INTERNATIONAL);
|
||||
}
|
||||
|
||||
/* MSX2 - Philips NMS 8245/19 */
|
||||
@ -1506,7 +1513,8 @@ void msx2_state::nms8245f(machine_config &config)
|
||||
add_internal_slot(config, MSX_SLOT_RAM_MM, "ram_mm", 3, 2, 0, 4).set_total_size(0x20000).set_unused_bits(0xf8); // 128KB Mapper RAM
|
||||
add_internal_disk_mirrored(config, MSX_SLOT_DISK1_WD2793, "disk", 3, 3, 1, 2, "maincpu", 0x1c000);
|
||||
|
||||
msx2_pal(SND_YM2149, config);
|
||||
m_hw_def.no_code_led();
|
||||
msx2_pal(SND_YM2149, config, REGION_INTERNATIONAL);
|
||||
}
|
||||
|
||||
/* MSX2 - Philips NMS 8245 Home Banking (Italy) */
|
||||
@ -1546,7 +1554,8 @@ void msx2_state::nms8250(machine_config &config)
|
||||
// ROM is not mirrored but the FDC registers are in all pages
|
||||
add_internal_disk_mirrored(config, MSX_SLOT_DISK1_WD2793, "disk", 3, 3, 1, 2, "diskrom");
|
||||
|
||||
msx2_pal(SND_YM2149, config);
|
||||
m_hw_def.no_code_led();
|
||||
msx2_pal(SND_YM2149, config, REGION_INTERNATIONAL);
|
||||
}
|
||||
|
||||
/* MSX2 - Philips NMS 8250/16 */
|
||||
@ -1607,7 +1616,8 @@ void msx2_state::nms8255(machine_config &config)
|
||||
// ROM is not mirrored but the FDC registers are in all pages
|
||||
add_internal_disk_mirrored(config, MSX_SLOT_DISK1_WD2793_2_DRIVES, "disk", 3, 3, 1, 2, "diskrom");
|
||||
|
||||
msx2_pal(SND_YM2149, config);
|
||||
m_hw_def.no_code_led();
|
||||
msx2_pal(SND_YM2149, config, REGION_INTERNATIONAL);
|
||||
}
|
||||
|
||||
/* MSX2 - Philips NMS 8255/19 */
|
||||
@ -1637,7 +1647,8 @@ void msx2_state::nms8255f(machine_config &config)
|
||||
add_internal_slot(config, MSX_SLOT_RAM_MM, "ram_mm", 3, 2, 0, 4).set_total_size(0x20000).set_unused_bits(0xf8); // 128KB Mapper RAM
|
||||
add_internal_disk_mirrored(config, MSX_SLOT_DISK1_WD2793_2_DRIVES, "disk", 3, 3, 1, 2, "diskrom");
|
||||
|
||||
msx2_pal(SND_YM2149, config);
|
||||
m_hw_def.no_code_led();
|
||||
msx2_pal(SND_YM2149, config, REGION_INTERNATIONAL);
|
||||
}
|
||||
|
||||
/* MSX2 - Philips NMS 8260 */
|
||||
@ -1677,7 +1688,8 @@ void msx2_state::nms8260(machine_config &config)
|
||||
// There is actually only an FDC inside with a floppy controller to attach an external floppy drive
|
||||
add_internal_disk_mirrored(config, MSX_SLOT_DISK1_WD2793_0, "disk", 3, 3, 1, 2, "diskrom");
|
||||
|
||||
msx2_pal(SND_YM2149, config);
|
||||
m_hw_def.no_code_led(); // Not confirmed as there are no pictures of the keyboard
|
||||
msx2_pal(SND_YM2149, config, REGION_INTERNATIONAL);
|
||||
}
|
||||
|
||||
/* MSX2 - Philips NMS 8280 - 5 possible sets (/00 /02 /09 /16 /19) */
|
||||
@ -1707,7 +1719,8 @@ void msx2_state::nms8280(machine_config &config)
|
||||
add_internal_slot(config, MSX_SLOT_RAM_MM, "ram_mm", 3, 2, 0, 4).set_total_size(0x20000).set_unused_bits(0xf8); // 128KB Mapper RAM
|
||||
add_internal_disk_mirrored(config, MSX_SLOT_DISK1_WD2793_2_DRIVES, "disk", 3, 3, 1, 2, "diskrom");
|
||||
|
||||
msx2_pal(SND_YM2149, config);
|
||||
m_hw_def.no_code_led();
|
||||
msx2_pal(SND_YM2149, config, REGION_INTERNATIONAL);
|
||||
}
|
||||
|
||||
/* MSX2 - Philips NMS 8280F */
|
||||
@ -1737,7 +1750,8 @@ void msx2_state::nms8280f(machine_config &config)
|
||||
add_internal_slot(config, MSX_SLOT_RAM_MM, "ram_mm", 3, 2, 0, 4).set_total_size(0x20000).set_unused_bits(0xf8); // 128KB Mapper RAM
|
||||
add_internal_disk_mirrored(config, MSX_SLOT_DISK1_WD2793_2_DRIVES, "disk", 3, 3, 1, 2, "diskrom");
|
||||
|
||||
msx2_pal(SND_YM2149, config);
|
||||
m_hw_def.no_code_led();
|
||||
msx2_pal(SND_YM2149, config, REGION_INTERNATIONAL);
|
||||
}
|
||||
|
||||
/* MSX2 - Philips NMS 8280G */
|
||||
@ -1768,7 +1782,8 @@ void msx2_state::nms8280g(machine_config &config)
|
||||
add_internal_slot(config, MSX_SLOT_RAM_MM, "ram_mm", 3, 2, 0, 4).set_total_size(0x20000).set_unused_bits(0xf8); // 128KB Mapper RAM
|
||||
add_internal_disk_mirrored(config, MSX_SLOT_DISK1_WD2793_2_DRIVES, "disk", 3, 3, 1, 2, "diskrom");
|
||||
|
||||
msx2_pal(SND_YM2149, config);
|
||||
m_hw_def.no_code_led();
|
||||
msx2_pal(SND_YM2149, config, REGION_INTERNATIONAL);
|
||||
}
|
||||
|
||||
/* MSX2 - Philips VG-8230 (u11 - exp, u12 - basic, u13 - disk */
|
||||
@ -1798,7 +1813,8 @@ void msx2_state::vg8230(machine_config &config)
|
||||
add_internal_slot(config, MSX_SLOT_RAM, "ram", 3, 2, 0, 4); // 64KB RAM
|
||||
add_internal_disk(config, MSX_SLOT_DISK1_WD2793, "disk", 3, 3, 1, 1, "diskrom");
|
||||
|
||||
msx2_pal(SND_YM2149, config);
|
||||
m_hw_def.no_code_led();
|
||||
msx2_pal(SND_YM2149, config, REGION_INTERNATIONAL);
|
||||
}
|
||||
|
||||
/* MSX2 - Philips VG-8235 (/00 and /20) */
|
||||
@ -1846,7 +1862,8 @@ void msx2_state::vg8235(machine_config &config)
|
||||
add_internal_slot(config, MSX_SLOT_RAM_MM, "ram_mm", 3, 2, 0, 4).set_total_size(0x20000).set_unused_bits(0xf8); // 128KB Mapper RAM
|
||||
add_internal_disk_mirrored(config, MSX_SLOT_DISK1_WD2793, "disk", 3, 3, 1, 2, "diskrom");
|
||||
|
||||
msx2_pal(SND_YM2149, config);
|
||||
m_hw_def.no_code_led();
|
||||
msx2_pal(SND_YM2149, config, REGION_INTERNATIONAL);
|
||||
}
|
||||
|
||||
/* MSX2 - Philips VG-8235F (/19 and /39) */
|
||||
@ -1882,7 +1899,8 @@ void msx2_state::vg8235f(machine_config &config)
|
||||
add_internal_slot(config, MSX_SLOT_RAM_MM, "ram_mm", 3, 2, 0, 4).set_total_size(0x20000).set_unused_bits(0xf8); // 128KB Mapper RAM
|
||||
add_internal_disk_mirrored(config, MSX_SLOT_DISK1_WD2793_SS, "disk", 3, 3, 1, 2, "diskrom");
|
||||
|
||||
msx2_pal(SND_YM2149, config);
|
||||
m_hw_def.no_code_led();
|
||||
msx2_pal(SND_YM2149, config, REGION_INTERNATIONAL);
|
||||
}
|
||||
|
||||
/* MSX2 - Philips VG-8240 (unreleased) */
|
||||
@ -1912,7 +1930,7 @@ void msx2_state::vg8240(machine_config &config)
|
||||
add_internal_slot(config, MSX_SLOT_RAM, "ram", 3, 2, 0, 4); // 64KB RAM
|
||||
add_internal_disk_mirrored(config, MSX_SLOT_DISK1_WD2793, "disk", 3, 3, 1, 2, "diskrom");
|
||||
|
||||
msx2_pal(SND_YM2149, config);
|
||||
msx2_pal(SND_YM2149, config, REGION_INTERNATIONAL);
|
||||
}
|
||||
|
||||
/* MSX2 - Phonola NMS 8245 */
|
||||
@ -1962,7 +1980,7 @@ void msx2_state::ucv102(machine_config &config)
|
||||
MSX_S1985(config, "s1985", 0);
|
||||
|
||||
m_hw_def.has_cassette(false);
|
||||
msx2(SND_YM2149, config);
|
||||
msx2(SND_YM2149, config, REGION_JAPAN);
|
||||
}
|
||||
|
||||
/* MSX2 - Sakhr AX-350 */
|
||||
@ -2006,7 +2024,7 @@ void msx2_state::ax350(machine_config &config)
|
||||
|
||||
MSX_S1985(config, "s1985", 0);
|
||||
|
||||
msx2_pal(SND_YM2149, config);
|
||||
msx2_pal(SND_YM2149, config, REGION_ARAB);
|
||||
}
|
||||
|
||||
/* MSX2 - Sakhr AX-350 II */
|
||||
@ -2051,7 +2069,7 @@ void msx2_state::ax350ii(machine_config &config)
|
||||
|
||||
MSX_S1985(config, "s1985", 0);
|
||||
|
||||
msx2_pal(SND_YM2149, config);
|
||||
msx2_pal(SND_YM2149, config, REGION_ARAB);
|
||||
}
|
||||
|
||||
/* MSX2 - Sakhr AX-350 II F */
|
||||
@ -2096,7 +2114,7 @@ void msx2_state::ax350iif(machine_config &config)
|
||||
|
||||
MSX_S1985(config, "s1985", 0);
|
||||
|
||||
msx2_pal(SND_YM2149, config);
|
||||
msx2_pal(SND_YM2149, config, REGION_ARAB);
|
||||
}
|
||||
|
||||
/* MSX2 - Sakhr AX-370 */
|
||||
@ -2143,7 +2161,7 @@ void msx2_state::ax370(machine_config &config)
|
||||
add_internal_slot(config, MSX_SLOT_ROM, "painter", 3, 1, 0, 4, "painter");
|
||||
add_internal_slot(config, MSX_SLOT_RAM_MM, "ram_mm", 3, 3, 0, 4).set_total_size(0x20000).set_unused_bits(0xf8); // 128KB Mapper RAM
|
||||
|
||||
msx2plus_pal(SND_AY8910, config);
|
||||
msx2plus_pal(SND_AY8910, config, REGION_ARAB);
|
||||
}
|
||||
|
||||
/* MSX2 - Sakhr AX-500 */
|
||||
@ -2192,7 +2210,7 @@ void msx2_state::ax500(machine_config &config)
|
||||
|
||||
MSX_S1985(config, "s1985", 0);
|
||||
|
||||
msx2_pal(SND_YM2149, config);
|
||||
msx2_pal(SND_YM2149, config, REGION_ARAB);
|
||||
}
|
||||
|
||||
/* MSX2 - Sanyo MPC-2300 */
|
||||
@ -2220,7 +2238,7 @@ void msx2_state::mpc2300(machine_config &config)
|
||||
|
||||
MSX_S1985(config, "s1985", 0);
|
||||
|
||||
msx2(SND_YM2149, config);
|
||||
msx2(SND_YM2149, config, REGION_RUSSIA);
|
||||
}
|
||||
|
||||
/* MSX2 - Sanyo MPC-2500FD */
|
||||
@ -2250,7 +2268,7 @@ void msx2_state::mpc2500f(machine_config &config)
|
||||
add_internal_disk_mirrored(config, MSX_SLOT_DISK1_WD2793, "disk", 3, 1, 1, 2, "diskrom");
|
||||
add_internal_slot(config, MSX_SLOT_RAM_MM, "ram_mm", 3, 2, 0, 4).set_total_size(0x10000); // 64KB?? Mapper RAM
|
||||
|
||||
msx2(SND_YM2149, config);
|
||||
msx2(SND_YM2149, config, REGION_RUSSIA);
|
||||
}
|
||||
|
||||
/* MSX2 - Sanyo MPC-25F */
|
||||
@ -2285,7 +2303,7 @@ void msx2_state::mpc25fd(machine_config &config)
|
||||
add_internal_disk_mirrored(config, MSX_SLOT_DISK1_WD2793, "disk", 3, 1, 1, 2, "diskrom");
|
||||
add_internal_slot(config, MSX_SLOT_RAM, "ram", 3, 2, 0, 4); // 64KB RAM
|
||||
|
||||
msx2(SND_YM2149, config);
|
||||
msx2(SND_YM2149, config, REGION_JAPAN);
|
||||
}
|
||||
|
||||
/* MSX2 - Sanyo MPC-25FK */
|
||||
@ -2320,7 +2338,7 @@ void msx2_state::mpc25fs(machine_config &config)
|
||||
add_internal_disk_mirrored(config, MSX_SLOT_DISK1_WD2793_SS, "disk", 3, 1, 1, 2, "diskrom");
|
||||
add_internal_slot(config, MSX_SLOT_RAM, "ram", 3, 2, 0, 4); // 64KB RAM
|
||||
|
||||
msx2(SND_YM2149, config);
|
||||
msx2(SND_YM2149, config, REGION_JAPAN);
|
||||
}
|
||||
|
||||
/* MSX2 - Sanyo Wavy MPC-27 */
|
||||
@ -2356,7 +2374,7 @@ void msx2_state::mpc27(machine_config &config)
|
||||
add_internal_disk_mirrored(config, MSX_SLOT_DISK1_WD2793_SS, "disk", 3, 2, 1, 2, "diskrom");
|
||||
add_internal_slot(config, MSX_SLOT_ROM, "lpen", 3, 3, 1, 1, "lpen");
|
||||
|
||||
msx2(SND_YM2149, config);
|
||||
msx2(SND_YM2149, config, REGION_JAPAN);
|
||||
}
|
||||
|
||||
/* MSX2 - Sanyo PCT-100 */
|
||||
@ -2384,7 +2402,7 @@ void msx2_state::phc23(machine_config &config)
|
||||
add_internal_slot(config, MSX_SLOT_ROM, "subrom", 3, 0, 0, 1, "subrom");
|
||||
add_internal_slot(config, MSX_SLOT_RAM, "ram", 3, 2, 0, 4); // 64KB RAM
|
||||
|
||||
msx2(SND_YM2149, config);
|
||||
msx2(SND_YM2149, config, REGION_JAPAN);
|
||||
}
|
||||
|
||||
/* MSX2 - Sanyo PHC-23J(B) / PHC-23J(GR) - "Wavy23" */
|
||||
@ -2411,7 +2429,7 @@ void msx2_state::phc23jb(machine_config &config)
|
||||
add_internal_slot(config, MSX_SLOT_RAM, "ram", 3, 2, 0, 4); // 64KB RAM
|
||||
|
||||
MSX_S1985(config, "s1985", 0);
|
||||
msx2(SND_YM2149, config);
|
||||
msx2(SND_YM2149, config, REGION_JAPAN);
|
||||
}
|
||||
|
||||
/* MSX2 - Sanyo Wavy PHC-55FD2 */
|
||||
@ -2445,7 +2463,7 @@ void msx2_state::phc55fd2(machine_config &config)
|
||||
|
||||
MSX_S1985(config, "s1985", 0);
|
||||
|
||||
msx2(SND_YM2149, config);
|
||||
msx2(SND_YM2149, config, REGION_JAPAN);
|
||||
}
|
||||
|
||||
/* MSX2 - Sanyo Wavy PHC-77 */
|
||||
@ -2487,7 +2505,7 @@ void msx2_state::phc77(machine_config &config)
|
||||
|
||||
MSX_S1985(config, "s1985", 0);
|
||||
|
||||
msx2(SND_YM2149, config);
|
||||
msx2(SND_YM2149, config, REGION_JAPAN);
|
||||
}
|
||||
|
||||
/* MSX2 - Sharp Epcom HotBit 2.0 - is this an officially released machine? */
|
||||
@ -2520,7 +2538,8 @@ void msx2_state::hotbit20(machine_config &config)
|
||||
add_internal_slot(config, MSX_SLOT_RAM_MM, "ram_mm", 2, 0, 4).set_total_size(0x20000).set_unused_bits(0x80); // 128KB Mapper RAM
|
||||
add_cartridge_slot<2>(config, 3);
|
||||
|
||||
msx2_pal(SND_AY8910, config);
|
||||
m_hw_def.no_code_led();
|
||||
msx2_pal(SND_AY8910, config, REGION_INTERNATIONAL);
|
||||
}
|
||||
|
||||
/* MSX2 - Sony HB-F1 */
|
||||
@ -2561,7 +2580,8 @@ void msx2_state::hbf1(machine_config &config)
|
||||
|
||||
MSX_S1985(config, "s1985", 0);
|
||||
|
||||
msx2(SND_YM2149, config);
|
||||
m_hw_def.no_caps_led().no_code_led();
|
||||
msx2(SND_YM2149, config, REGION_JAPAN);
|
||||
}
|
||||
|
||||
/* MSX2 - Sony HB-F1II */
|
||||
@ -2602,7 +2622,7 @@ void msx2_state::hbf1ii(machine_config &config)
|
||||
|
||||
MSX_S1985(config, "s1985", 0);
|
||||
|
||||
msx2(SND_YM2149, config);
|
||||
msx2(SND_YM2149, config, REGION_JAPAN);
|
||||
}
|
||||
|
||||
/* MSX2 - Sony HB-F1XD / HB-F1XDmk2 */
|
||||
@ -2638,7 +2658,7 @@ void msx2_state::hbf1xd(machine_config &config)
|
||||
|
||||
MSX_S1985(config, "s1985", 0);
|
||||
|
||||
msx2(SND_YM2149, config);
|
||||
msx2(SND_YM2149, config, REGION_JAPAN);
|
||||
}
|
||||
|
||||
/* MSX2 - Sony HB-F5 */
|
||||
@ -2667,7 +2687,7 @@ void msx2_state::hbf5(machine_config &config)
|
||||
add_cartridge_slot<1>(config, 1);
|
||||
add_cartridge_slot<2>(config, 2);
|
||||
|
||||
msx2_pal(SND_YM2149, config);
|
||||
msx2_pal(SND_YM2149, config, REGION_JAPAN);
|
||||
}
|
||||
|
||||
/* MSX2 - Sony HB-F500 */
|
||||
@ -2701,7 +2721,7 @@ void msx2_state::hbf500(machine_config &config)
|
||||
add_cartridge_slot<1>(config, 1);
|
||||
add_cartridge_slot<2>(config, 2);
|
||||
|
||||
msx2(SND_YM2149, config);
|
||||
msx2(SND_YM2149, config, REGION_JAPAN);
|
||||
}
|
||||
|
||||
/* MSX2 - Sony HB-F500 2nd version (slot layout is different) */
|
||||
@ -2734,7 +2754,7 @@ void msx2_state::hbf500_2(machine_config &config)
|
||||
add_internal_disk_mirrored(config, MSX_SLOT_DISK1_WD2793, "disk", 3, 1, 1, 2, "diskrom");
|
||||
add_internal_slot(config, MSX_SLOT_RAM, "ram", 3, 2, 0, 4); // 64KB RAM
|
||||
|
||||
msx2(SND_YM2149, config);
|
||||
msx2(SND_YM2149, config, REGION_JAPAN);
|
||||
}
|
||||
|
||||
/* MSX2 - Sony HB-F500F */
|
||||
@ -2767,7 +2787,8 @@ void msx2_state::hbf500f(machine_config &config)
|
||||
add_cartridge_slot<2>(config, 2);
|
||||
add_cartridge_slot<3>(config, 3);
|
||||
|
||||
msx2_pal(SND_YM2149, config);
|
||||
m_hw_def.no_code_led();
|
||||
msx2_pal(SND_YM2149, config, REGION_INTERNATIONAL);
|
||||
}
|
||||
|
||||
/* MSX2 - Sony HB-F500P */
|
||||
@ -2795,7 +2816,8 @@ void msx2_state::hbf500p(machine_config &config)
|
||||
add_cartridge_slot<2>(config, 2);
|
||||
add_cartridge_slot<3>(config, 3);
|
||||
|
||||
msx2_pal(SND_YM2149, config);
|
||||
m_hw_def.no_code_led();
|
||||
msx2_pal(SND_YM2149, config, REGION_INTERNATIONAL);
|
||||
}
|
||||
|
||||
/* MSX2 - Sony HB-F700D */
|
||||
@ -2830,7 +2852,8 @@ void msx2_state::hbf700d(machine_config &config)
|
||||
|
||||
MSX_S1985(config, "s1985", 0);
|
||||
|
||||
msx2_pal(SND_YM2149, config);
|
||||
m_hw_def.no_code_led();
|
||||
msx2_pal(SND_YM2149, config, REGION_INTERNATIONAL);
|
||||
}
|
||||
|
||||
/* MSX2 - Sony HB-F700F */
|
||||
@ -2865,7 +2888,8 @@ void msx2_state::hbf700f(machine_config &config)
|
||||
|
||||
MSX_S1985(config, "s1985", 0);
|
||||
|
||||
msx2_pal(SND_YM2149, config);
|
||||
m_hw_def.no_code_led();
|
||||
msx2_pal(SND_YM2149, config, REGION_INTERNATIONAL);
|
||||
}
|
||||
|
||||
/* MSX2 - Sony HB-F700P */
|
||||
@ -2902,7 +2926,8 @@ void msx2_state::hbf700p(machine_config &config)
|
||||
|
||||
MSX_S1985(config, "s1985", 0);
|
||||
|
||||
msx2_pal(SND_YM2149, config);
|
||||
m_hw_def.no_code_led();
|
||||
msx2_pal(SND_YM2149, config, REGION_INTERNATIONAL);
|
||||
}
|
||||
|
||||
/* MSX2 - Sony HB-F700S */
|
||||
@ -2937,7 +2962,8 @@ void msx2_state::hbf700s(machine_config &config)
|
||||
|
||||
MSX_S1985(config, "s1985", 0);
|
||||
|
||||
msx2_pal(SND_YM2149, config);
|
||||
m_hw_def.no_code_led();
|
||||
msx2_pal(SND_YM2149, config, REGION_INTERNATIONAL);
|
||||
}
|
||||
|
||||
/* MSX2 - Sony HB-F750 (prototype) */
|
||||
@ -2978,7 +3004,7 @@ void msx2_state::hbf900(machine_config &config)
|
||||
|
||||
MSX_S1985(config, "s1985", 0);
|
||||
|
||||
msx2(SND_YM2149, config);
|
||||
msx2(SND_YM2149, config, REGION_JAPAN);
|
||||
}
|
||||
|
||||
/* MSX2 - Sony HB-F900 (a) */
|
||||
@ -3017,7 +3043,7 @@ void msx2_state::hbf900a(machine_config &config)
|
||||
|
||||
MSX_S1985(config, "s1985", 0);
|
||||
|
||||
msx2(SND_YM2149, config);
|
||||
msx2(SND_YM2149, config, REGION_JAPAN);
|
||||
}
|
||||
|
||||
/* MSX2 - Sony HB-F9P */
|
||||
@ -3053,7 +3079,8 @@ void msx2_state::hbf9p(machine_config &config)
|
||||
add_internal_slot(config, MSX_SLOT_RAM_MM, "ram_mm", 3, 2, 0, 4).set_total_size(0x20000).set_unused_bits(0x80); // 128KB Mapper RAM
|
||||
|
||||
MSX_S1985(config, "s1985", 0);
|
||||
msx2_pal(SND_YM2149, config);
|
||||
m_hw_def.no_code_led();
|
||||
msx2_pal(SND_YM2149, config, REGION_INTERNATIONAL);
|
||||
}
|
||||
|
||||
/* MSX2 - Sony HB-F9P Russian */
|
||||
@ -3081,7 +3108,7 @@ void msx2_state::hbf9pr(machine_config &config)
|
||||
add_internal_slot(config, MSX_SLOT_RAM_MM, "ram_mm", 3, 2, 0, 4).set_total_size(0x20000); // 128KB Mapper RAM
|
||||
|
||||
MSX_S1985(config, "s1985", 0);
|
||||
msx2_pal(SND_YM2149, config);
|
||||
msx2_pal(SND_YM2149, config, REGION_RUSSIA);
|
||||
}
|
||||
|
||||
/* MSX2 - Sony HB-F9S */
|
||||
@ -3113,7 +3140,8 @@ void msx2_state::hbf9s(machine_config &config)
|
||||
add_internal_slot(config, MSX_SLOT_RAM_MM, "ram_mm", 3, 2, 0, 4).set_total_size(0x20000).set_unused_bits(0x80); // 128KB Mapper RAM
|
||||
|
||||
MSX_S1985(config, "s1985", 0);
|
||||
msx2_pal(SND_YM2149, config);
|
||||
m_hw_def.no_code_led();
|
||||
msx2_pal(SND_YM2149, config, REGION_INTERNATIONAL);
|
||||
}
|
||||
|
||||
/* MSX2 - Sony HB-G900AP */
|
||||
@ -3162,7 +3190,8 @@ void msx2_state::hbg900ap(machine_config &config)
|
||||
// slot #3 is expanded
|
||||
add_internal_slot(config, MSX_SLOT_RAM_MM, "ram_mm", 3, 0, 0, 4).set_total_size(0x80000).set_unused_bits(0x80); // 512KB Mapper RAM
|
||||
|
||||
msx2_pal(SND_YM2149, config);
|
||||
m_hw_def.no_code_led();
|
||||
msx2_pal(SND_YM2149, config, REGION_INTERNATIONAL);
|
||||
}
|
||||
|
||||
/* MSX2 - Sony HB-G900D */
|
||||
@ -3203,7 +3232,8 @@ void msx2_state::hbg900p(machine_config &config)
|
||||
add_cartridge_slot<2>(config, 2);
|
||||
add_internal_slot(config, MSX_SLOT_RAM, "ram", 3, 0, 4); // 64KB RAM
|
||||
|
||||
msx2_pal(SND_AY8910, config);
|
||||
m_hw_def.no_code_led();
|
||||
msx2_pal(SND_AY8910, config, REGION_INTERNATIONAL);
|
||||
}
|
||||
|
||||
/* MSX2 - Sony HB-T600 */
|
||||
@ -3245,7 +3275,8 @@ void msx2_state::tpc310(machine_config &config)
|
||||
|
||||
MSX_S1985(config, "s1985", 0);
|
||||
|
||||
msx2_pal(SND_YM2149, config);
|
||||
m_hw_def.no_code_led();
|
||||
msx2_pal(SND_YM2149, config, REGION_INTERNATIONAL);
|
||||
}
|
||||
|
||||
/* MSX2 - Talent TPP-311 */
|
||||
@ -3276,7 +3307,8 @@ void msx2_state::tpp311(machine_config &config)
|
||||
|
||||
MSX_S1985(config, "s1985", 0);
|
||||
|
||||
msx2_pal(SND_YM2149, config);
|
||||
m_hw_def.no_code_led();
|
||||
msx2_pal(SND_YM2149, config, REGION_INTERNATIONAL);
|
||||
msx2_64kb_vram(config);
|
||||
}
|
||||
|
||||
@ -3315,7 +3347,8 @@ void msx2_state::tps312(machine_config &config)
|
||||
|
||||
MSX_S1985(config, "s1985", 0);
|
||||
|
||||
msx2_pal(SND_YM2149, config);
|
||||
m_hw_def.no_code_led();
|
||||
msx2_pal(SND_YM2149, config, REGION_INTERNATIONAL);
|
||||
msx2_64kb_vram(config);
|
||||
}
|
||||
|
||||
@ -3351,7 +3384,9 @@ void msx2_state::fstm1(machine_config &config)
|
||||
add_internal_slot(config, MSX_SLOT_ROM, "deskpac2", 3, 3, 1, 2, "deskpac2");
|
||||
|
||||
MSX_S1985(config, "s1985", 0);
|
||||
msx2_pal(SND_YM2149, config);
|
||||
// Hard to see on pictures whether the machine has a CAPS led
|
||||
m_hw_def.no_code_led();
|
||||
msx2_pal(SND_YM2149, config, REGION_INTERNATIONAL);
|
||||
}
|
||||
|
||||
/* MSX2 - Toshiba HX-23 */
|
||||
@ -3386,7 +3421,7 @@ void msx2_state::hx23(machine_config &config)
|
||||
add_internal_slot(config, MSX_SLOT_ROM, "jwp", 3, 1, 2, 1, "subjwp", 0x4000);
|
||||
add_internal_slot(config, MSX_SLOT_ROM, "rs232jwp", 3, 3, 1, 2, "rs232jwp");
|
||||
|
||||
msx2_pal(SND_AY8910, config);
|
||||
msx2(SND_AY8910, config, REGION_JAPAN);
|
||||
msx2_64kb_vram(config);
|
||||
}
|
||||
|
||||
@ -3420,7 +3455,7 @@ void msx2_state::hx23f(machine_config &config)
|
||||
add_internal_slot(config, MSX_SLOT_ROM, "jwp", 3, 1, 2, 1, "subjwp", 0x4000);
|
||||
add_internal_slot(config, MSX_SLOT_ROM, "rs232jwp", 3, 3, 1, 2, "rs232jwp");
|
||||
|
||||
msx2_pal(SND_AY8910, config);
|
||||
msx2(SND_AY8910, config, REGION_JAPAN);
|
||||
}
|
||||
|
||||
/* MSX2 - Toshiba HX-33 */
|
||||
@ -3450,7 +3485,7 @@ void msx2_state::hx33(machine_config &config)
|
||||
add_internal_slot(config, MSX_SLOT_ROM, "subrom", 3, 1, 0, 1, "mainrom", 0x8000);
|
||||
add_internal_slot(config, MSX_SLOT_RS232_TOSHIBA_HX3X, "firmware", 3, 3, 1, 2, "mainrom", 0xc000);
|
||||
|
||||
msx2(SND_YM2149, config);
|
||||
msx2(SND_YM2149, config, REGION_JAPAN);
|
||||
msx2_64kb_vram(config);
|
||||
}
|
||||
|
||||
@ -3486,7 +3521,7 @@ void msx2_state::hx34(machine_config &config)
|
||||
add_internal_disk(config, MSX_SLOT_DISK6_WD2793_N, "disk", 3, 2, 1, 1, "diskrom");
|
||||
add_internal_slot(config, MSX_SLOT_RS232_TOSHIBA_HX3X, "firmware", 3, 3, 1, 2, "mainrom", 0xc000);
|
||||
|
||||
msx2(SND_YM2149, config);
|
||||
msx2(SND_YM2149, config, REGION_JAPAN);
|
||||
}
|
||||
|
||||
/* MSX2 - Victor HC-80 */
|
||||
@ -3517,7 +3552,7 @@ void msx2_state::victhc80(machine_config &config)
|
||||
add_cartridge_slot<2>(config, 2);
|
||||
add_internal_slot(config, MSX_SLOT_ROM, "firmware", 3, 2, 1, "firmware");
|
||||
|
||||
msx2(SND_YM2149, config);
|
||||
msx2(SND_YM2149, config, REGION_JAPAN);
|
||||
}
|
||||
|
||||
/* MSX2 - Victor HC-90 */
|
||||
@ -3555,7 +3590,7 @@ void msx2_state::victhc90(machine_config &config)
|
||||
add_cartridge_slot<1>(config, 1);
|
||||
add_internal_disk(config, MSX_SLOT_DISK10_MB8877, "disk", 3, 1, 1, "diskrom");
|
||||
|
||||
msx2(SND_YM2149, config);
|
||||
msx2(SND_YM2149, config, REGION_JAPAN);
|
||||
}
|
||||
|
||||
/* MSX2 - Victor HC-90(A) */
|
||||
@ -3603,7 +3638,7 @@ void msx2_state::victhc95(machine_config &config)
|
||||
// 96 pin expansion bus in slot #2
|
||||
add_internal_disk(config, MSX_SLOT_DISK10_MB8877_2_DRIVES, "disk", 3, 1, 1, "diskrom");
|
||||
|
||||
msx2(SND_YM2149, config);
|
||||
msx2(SND_YM2149, config, REGION_JAPAN);
|
||||
}
|
||||
|
||||
/* MSX2 - Victor HC-95A */
|
||||
@ -3643,7 +3678,7 @@ void msx2_state::victhc95a(machine_config &config)
|
||||
// 96 pin expansion bus in slot #2
|
||||
add_internal_disk(config, MSX_SLOT_DISK10_MB8877_2_DRIVES, "disk", 3, 1, 1, "diskrom");
|
||||
|
||||
msx2(SND_YM2149, config);
|
||||
msx2(SND_YM2149, config, REGION_JAPAN);
|
||||
}
|
||||
|
||||
/* MSX2 - Wandy CPC-300 */
|
||||
@ -3673,7 +3708,7 @@ void msx2_state::cx7128(machine_config &config)
|
||||
add_internal_slot(config, MSX_SLOT_RAM_MM, "ram_mm", 3, 2, 0, 4).set_total_size(0x20000).set_unused_bits(0x80); // 64KB Mapper RAM
|
||||
add_cartridge_slot<3>(config, MSX_SLOT_YAMAHA_EXPANSION, "expansion", 3, 3, msx_yamaha_60pin, nullptr);
|
||||
|
||||
msx2(SND_YM2149, config);
|
||||
msx2(SND_YM2149, config, REGION_JAPAN);
|
||||
}
|
||||
|
||||
/* MSX2 - Yamaha CX7M/128 */
|
||||
@ -3705,7 +3740,7 @@ void msx2_state::cx7m128(machine_config &config)
|
||||
add_internal_slot(config, MSX_SLOT_RAM_MM, "ram_mm", 3, 2, 0, 4).set_total_size(0x20000).set_unused_bits(0x80); // 64KB Mapper RAM
|
||||
add_cartridge_slot<3>(config, MSX_SLOT_YAMAHA_EXPANSION, "expansion", 3, 3, msx_yamaha_60pin, "sfg05");
|
||||
|
||||
msx2(SND_YM2149, config);
|
||||
msx2(SND_YM2149, config, REGION_JAPAN);
|
||||
}
|
||||
|
||||
/* MSX2 - Yamaha YIS-503 III R (student) */
|
||||
@ -3742,7 +3777,7 @@ void msx2_state::y503iiir(machine_config &config)
|
||||
// Yamaha expansion slot in slot #3-3
|
||||
add_internal_slot(config, MSX_SLOT_ROM, "network", 3, 3, 1, 2, "network");
|
||||
|
||||
msx2_pal(SND_YM2149, config);
|
||||
msx2_pal(SND_YM2149, config, REGION_RUSSIA);
|
||||
}
|
||||
|
||||
/* MSX2 - Yamaha YIS-503 III R Estonian */
|
||||
@ -3786,7 +3821,7 @@ void msx2_state::yis604(machine_config &config)
|
||||
add_internal_slot(config, MSX_SLOT_RAM_MM, "ram_mm", 3, 2, 0, 4).set_total_size(0x20000); // 128KB Mapper RAM
|
||||
add_cartridge_slot<3>(config, MSX_SLOT_YAMAHA_EXPANSION, "expansion", 3, 3, msx_yamaha_60pin, nullptr);
|
||||
|
||||
msx2(SND_YM2149, config);
|
||||
msx2(SND_YM2149, config, REGION_JAPAN);
|
||||
}
|
||||
|
||||
/* MSX2 - Yamaha YIS-805/128 */
|
||||
@ -3824,7 +3859,7 @@ void msx2_state::y805128(machine_config &config)
|
||||
add_cartridge_slot<3>(config, MSX_SLOT_YAMAHA_EXPANSION, "expansion", 3, 3, msx_yamaha_60pin, nullptr);
|
||||
|
||||
MSX_S1985(config, "s1985", 0);
|
||||
msx2(SND_YM2149, config);
|
||||
msx2(SND_YM2149, config, REGION_JAPAN);
|
||||
}
|
||||
|
||||
/* MSX2 - Yamaha YIS-805/256 */
|
||||
@ -3863,7 +3898,7 @@ void msx2_state::y805256(machine_config &config)
|
||||
add_cartridge_slot<3>(config, MSX_SLOT_YAMAHA_EXPANSION, "expansion", 3, 3, msx_yamaha_60pin, nullptr);
|
||||
|
||||
MSX_S1985(config, "s1985", 0);
|
||||
msx2(SND_YM2149, config);
|
||||
msx2(SND_YM2149, config, REGION_JAPAN);
|
||||
}
|
||||
|
||||
/* MSX2 - Yamaha YIS-805/128R2 (teacher) */
|
||||
@ -3905,7 +3940,7 @@ void msx2_state::y805128r2(machine_config &config)
|
||||
add_internal_slot(config, MSX_SLOT_ROM, "network", 3, 3, 0, 2, "network", 0x00000);
|
||||
|
||||
MSX_S1985(config, "s1985", 0);
|
||||
msx2_pal(SND_YM2149, config);
|
||||
msx2_pal(SND_YM2149, config, REGION_RUSSIA);
|
||||
}
|
||||
|
||||
/* MSX2 - Yamaha YIS-805/128R2 Estonian */
|
||||
@ -3965,7 +4000,8 @@ void msx2_state::expert3i(machine_config &config)
|
||||
|
||||
msx_ym2413(config);
|
||||
|
||||
msx2plus(SND_AY8910, config);
|
||||
m_hw_def.no_code_led();
|
||||
msx2plus(SND_AY8910, config, REGION_INTERNATIONAL);
|
||||
}
|
||||
|
||||
/* MSX2+ - Ciel Expert 3 Turbo
|
||||
@ -4020,7 +4056,8 @@ void msx2_state::expert3t(machine_config &config)
|
||||
|
||||
msx_ym2413(config);
|
||||
|
||||
msx2plus(SND_AY8910, config);
|
||||
m_hw_def.no_code_led();
|
||||
msx2plus(SND_AY8910, config, REGION_INTERNATIONAL);
|
||||
}
|
||||
|
||||
/* MSX2+ - Gradiente Expert AC88+ */
|
||||
@ -4057,7 +4094,8 @@ void msx2_state::expertac(machine_config &config)
|
||||
add_internal_disk_mirrored(config, MSX_SLOT_DISK1_WD2793, "disk", 3, 2, 1, 2, "diskrom");
|
||||
add_internal_slot(config, MSX_SLOT_ROM, "xbasic", 3, 3, 1, 1, "xbasic");
|
||||
|
||||
msx2plus(SND_AY8910, config);
|
||||
m_hw_def.no_code_led();
|
||||
msx2plus(SND_AY8910, config, REGION_INTERNATIONAL);
|
||||
}
|
||||
|
||||
/* MSX2+ - Gradiente Expert DDX+ */
|
||||
@ -4094,7 +4132,8 @@ void msx2_state::expertdx(machine_config &config)
|
||||
add_cartridge_slot<2>(config, 3);
|
||||
/* Kanji? */
|
||||
|
||||
msx2plus(SND_AY8910, config);
|
||||
m_hw_def.no_code_led();
|
||||
msx2plus(SND_AY8910, config, REGION_INTERNATIONAL);
|
||||
}
|
||||
|
||||
/* MSX2+ - Panasonic FS-A1FX */
|
||||
@ -4134,7 +4173,7 @@ void msx2_state::fsa1fx(machine_config &config)
|
||||
MSX_SYSTEMFLAGS(config, "sysflags", m_maincpu, 0xff);
|
||||
|
||||
m_kanji_fsa1fx = true;
|
||||
msx2plus(SND_AY8910, config);
|
||||
msx2plus(SND_AY8910, config, REGION_JAPAN);
|
||||
}
|
||||
|
||||
/* MSX2+ - Panasonic FS-A1WSX */
|
||||
@ -4190,7 +4229,7 @@ void msx2_state::fsa1wsx(machine_config &config)
|
||||
|
||||
msx_ym2413(config);
|
||||
|
||||
msx2plus(SND_AY8910, config);
|
||||
msx2plus(SND_AY8910, config, REGION_JAPAN);
|
||||
}
|
||||
|
||||
/* MSX2+ - Panasonic FS-A1WX */
|
||||
@ -4246,7 +4285,7 @@ void msx2_state::fsa1wx(machine_config &config)
|
||||
|
||||
msx_ym2413(config);
|
||||
|
||||
msx2plus(SND_AY8910, config);
|
||||
msx2plus(SND_AY8910, config, REGION_JAPAN);
|
||||
}
|
||||
|
||||
/* MSX2+ - Panasonic FS-A1WX (a) */
|
||||
@ -4307,7 +4346,7 @@ void msx2_state::phc35j(machine_config &config)
|
||||
add_internal_slot(config, MSX_SLOT_ROM, "kdr", 3, 1, 1, 2, "kdr");
|
||||
|
||||
MSX_SYSTEMFLAGS(config, "sysflags", m_maincpu, 0xff);
|
||||
msx2plus(SND_AY8910, config);
|
||||
msx2plus(SND_AY8910, config, REGION_JAPAN);
|
||||
}
|
||||
|
||||
/* MSX2+ - Sanyo Wavy PHC-70FD */
|
||||
@ -4350,7 +4389,7 @@ void msx2_state::phc70fd(machine_config &config)
|
||||
|
||||
msx_ym2413(config);
|
||||
|
||||
msx2plus(SND_AY8910, config);
|
||||
msx2plus(SND_AY8910, config, REGION_JAPAN);
|
||||
}
|
||||
|
||||
/* MSX2+ - Sanyo Wavy PHC-70FD2 */
|
||||
@ -4400,7 +4439,7 @@ void msx2_state::phc70fd2(machine_config &config)
|
||||
|
||||
msx_ym2413(config);
|
||||
|
||||
msx2plus(SND_AY8910, config);
|
||||
msx2plus(SND_AY8910, config, REGION_JAPAN);
|
||||
}
|
||||
|
||||
/* MSX2+ - Sony HB-F1XDJ */
|
||||
@ -4443,7 +4482,7 @@ void msx2_state::hbf1xdj(machine_config &config)
|
||||
|
||||
msx_ym2413(config);
|
||||
|
||||
msx2plus(SND_YM2149, config);
|
||||
msx2plus(SND_YM2149, config, REGION_JAPAN);
|
||||
}
|
||||
|
||||
/* MSX2+ - Sony HB-F1XV */
|
||||
@ -4486,7 +4525,7 @@ void msx2_state::hbf1xv(machine_config &config)
|
||||
|
||||
msx_ym2413(config);
|
||||
|
||||
msx2plus(SND_YM2149, config);
|
||||
msx2plus(SND_YM2149, config, REGION_JAPAN);
|
||||
}
|
||||
|
||||
/* MSX Turbo-R - Panasonic FS-A1GT */
|
||||
@ -4532,7 +4571,7 @@ void msx2_state::fsa1gt(machine_config &config)
|
||||
|
||||
msx_ym2413(config);
|
||||
|
||||
turbor(SND_AY8910, config);
|
||||
turbor(SND_AY8910, config, REGION_JAPAN);
|
||||
}
|
||||
|
||||
/* MSX Turbo-R - Panasonic FS-A1ST */
|
||||
@ -4576,7 +4615,7 @@ void msx2_state::fsa1st(machine_config &config)
|
||||
|
||||
msx_ym2413(config);
|
||||
|
||||
turbor(SND_AY8910, config);
|
||||
turbor(SND_AY8910, config, REGION_JAPAN);
|
||||
}
|
||||
|
||||
} // anonymous namespace
|
||||
|
Loading…
Reference in New Issue
Block a user