mirror of
https://github.com/holub/mame
synced 2025-04-19 15:11:37 +03:00
sanyo/mbc200.cpp: Fixed floppy drive selection (was stuck on A:). (#11099)
This commit is contained in:
parent
c6817fd918
commit
c925ffe986
@ -40,6 +40,7 @@ TODO:
|
||||
a MEMORY ERROR. CP/M now loads.
|
||||
|
||||
2016-07-16 Added keyboard and sound.
|
||||
2023-04-13 Floppy drive selection fix
|
||||
|
||||
****************************************************************************/
|
||||
|
||||
@ -78,8 +79,7 @@ public:
|
||||
, m_beep(*this, "beeper")
|
||||
, m_speaker(*this, "speaker")
|
||||
, m_fdc(*this, "fdc")
|
||||
, m_floppy0(*this, "fdc:0")
|
||||
, m_floppy1(*this, "fdc:1")
|
||||
, m_floppy(*this, "fdc:%u", 0)
|
||||
{ }
|
||||
|
||||
void mbc200(machine_config &config);
|
||||
@ -114,8 +114,7 @@ private:
|
||||
required_device<beep_device> m_beep;
|
||||
required_device<speaker_sound_device> m_speaker;
|
||||
required_device<mb8876_device> m_fdc;
|
||||
required_device<floppy_connector> m_floppy0;
|
||||
required_device<floppy_connector> m_floppy1;
|
||||
required_device_array<floppy_connector, 4> m_floppy;
|
||||
};
|
||||
|
||||
|
||||
@ -140,12 +139,11 @@ void mbc200_state::pm_portb_w(u8 data)
|
||||
{
|
||||
floppy_image_device *floppy = nullptr;
|
||||
|
||||
// to be verified
|
||||
switch (data & 0x01)
|
||||
{
|
||||
case 0: floppy = m_floppy0->get_device(); break;
|
||||
case 1: floppy = m_floppy1->get_device(); break;
|
||||
}
|
||||
// The BIOS supports up tp 4 drives, (2 internal + 2 external)
|
||||
// E: and F: are virtual swaps of A: and B:
|
||||
u8 tmp = (data & 0x70)>>4;
|
||||
if (tmp < 4)
|
||||
floppy = m_floppy[tmp]->get_device();
|
||||
|
||||
m_fdc->set_floppy(floppy);
|
||||
|
||||
@ -353,8 +351,11 @@ void mbc200_state::mbc200(machine_config &config)
|
||||
I8251(config, "uart2", 0); // INS8251A
|
||||
|
||||
MB8876(config, m_fdc, 8_MHz_XTAL / 8); // guess
|
||||
FLOPPY_CONNECTOR(config, "fdc:0", mbc200_floppies, "qd", floppy_image_device::default_mfm_floppy_formats).enable_sound(true);
|
||||
FLOPPY_CONNECTOR(config, "fdc:1", mbc200_floppies, "qd", floppy_image_device::default_mfm_floppy_formats).enable_sound(true);
|
||||
|
||||
FLOPPY_CONNECTOR(config, m_floppy[0], mbc200_floppies, "qd", floppy_image_device::default_mfm_floppy_formats).enable_sound(true);
|
||||
FLOPPY_CONNECTOR(config, m_floppy[1], mbc200_floppies, "qd", floppy_image_device::default_mfm_floppy_formats).enable_sound(true);
|
||||
FLOPPY_CONNECTOR(config, m_floppy[2], mbc200_floppies, "qd", floppy_image_device::default_mfm_floppy_formats).enable_sound(true);
|
||||
FLOPPY_CONNECTOR(config, m_floppy[3], mbc200_floppies, "qd", floppy_image_device::default_mfm_floppy_formats).enable_sound(true);
|
||||
|
||||
/* Keyboard */
|
||||
generic_keyboard_device &keyboard(GENERIC_KEYBOARD(config, "keyboard", 0));
|
||||
|
Loading…
Reference in New Issue
Block a user