summaryrefslogtreecommitdiffstatshomepage
path: root/src/mess/drivers/fm7.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mess/drivers/fm7.c')
-rw-r--r--src/mess/drivers/fm7.c109
1 files changed, 58 insertions, 51 deletions
diff --git a/src/mess/drivers/fm7.c b/src/mess/drivers/fm7.c
index 2f088103da9..2247deec612 100644
--- a/src/mess/drivers/fm7.c
+++ b/src/mess/drivers/fm7.c
@@ -469,7 +469,7 @@ WRITE8_MEMBER(fm7_state::fm7_fdc_w)
switch(offset)
{
case 0:
- m_fdc->command_w(space, offset,data);
+ m_fdc->cmd_w(space, offset,data);
break;
case 1:
m_fdc->track_w(space, offset,data);
@@ -482,7 +482,8 @@ WRITE8_MEMBER(fm7_state::fm7_fdc_w)
break;
case 4:
m_fdc_side = data & 0x01;
- m_fdc->set_side(data & 0x01);
+ if (m_floppy)
+ m_floppy->ss_w(data & 0x01);
logerror("FDC: wrote %02x to 0x%04x (side)\n",data,offset+0xfd18);
break;
case 5:
@@ -493,9 +494,17 @@ WRITE8_MEMBER(fm7_state::fm7_fdc_w)
}
else
{
- m_fdc->set_drive(data & 0x03);
- floppy_get_device(machine(), data & 0x03)->floppy_mon_w(!BIT(data, 7));
- floppy_get_device(machine(), data & 0x03)->floppy_drive_set_ready_state(data & 0x80,0);
+ switch (data & 0x01)
+ {
+ case 0: m_floppy = m_floppy0->get_device(); break;
+ case 1: m_floppy = m_floppy1->get_device(); break;
+ }
+
+ m_fdc->set_floppy(m_floppy);
+
+ if (m_floppy)
+ m_floppy->mon_w(!BIT(data, 7));
+
logerror("FDC: wrote %02x to 0x%04x (drive)\n",data,offset+0xfd18);
}
break;
@@ -2031,12 +2040,11 @@ void fm7_state::machine_reset()
memset(m_video_ram, 0, sizeof(UINT8) * 0x18000);
}
-static const floppy_interface fm7_floppy_interface =
-{
- FLOPPY_STANDARD_5_25_DSHD,
- LEGACY_FLOPPY_OPTIONS_NAME(default),
- "floppy_5_25"
-};
+
+static SLOT_INTERFACE_START( fm7_floppies )
+ SLOT_INTERFACE("qd", FLOPPY_525_QD)
+SLOT_INTERFACE_END
+
#define MCFG_ADDRESS_BANK(tag) \
MCFG_DEVICE_ADD(tag, ADDRESS_MAP_BANK, 0) \
@@ -2085,10 +2093,16 @@ static MACHINE_CONFIG_START( fm7, fm7_state )
MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED)
MCFG_CASSETTE_INTERFACE("fm7_cass")
- MCFG_DEVICE_ADD("fdc", MB8877, 0)
- MCFG_WD17XX_DEFAULT_DRIVE2_TAGS
- MCFG_WD17XX_INTRQ_CALLBACK(WRITELINE(fm7_state, fm7_fdc_intrq_w))
- MCFG_WD17XX_DRQ_CALLBACK(WRITELINE(fm7_state, fm7_fdc_drq_w))
+ MCFG_SOFTWARE_LIST_ADD("cass_list","fm7_cass")
+
+ MCFG_MB8877_ADD("fdc", XTAL_8MHz / 8)
+ MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(fm7_state, fm7_fdc_intrq_w))
+ MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(fm7_state, fm7_fdc_drq_w))
+
+ MCFG_FLOPPY_DRIVE_ADD("fdc:0", fm7_floppies, "qd", floppy_image_device::default_floppy_formats)
+ MCFG_FLOPPY_DRIVE_ADD("fdc:1", fm7_floppies, "qd", floppy_image_device::default_floppy_formats)
+
+ MCFG_SOFTWARE_LIST_ADD("flop_list","fm7_disk")
MCFG_CENTRONICS_ADD("centronics", centronics_devices, "printer")
MCFG_SLOT_OPTION_ADD( "dsjoy", DEMPA_SHINBUNSHA_JOYSTICK )
@@ -2098,11 +2112,6 @@ static MACHINE_CONFIG_START( fm7, fm7_state )
MCFG_CENTRONICS_PERROR_HANDLER(WRITELINE(fm7_state, write_centronics_perror))
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics")
-
- MCFG_LEGACY_FLOPPY_2_DRIVES_ADD(fm7_floppy_interface)
-
- MCFG_SOFTWARE_LIST_ADD("cass_list","fm7_cass")
- MCFG_SOFTWARE_LIST_ADD("flop_list","fm7_disk")
MACHINE_CONFIG_END
static MACHINE_CONFIG_START( fm8, fm7_state )
@@ -2142,10 +2151,12 @@ static MACHINE_CONFIG_START( fm8, fm7_state )
MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED)
MCFG_CASSETTE_INTERFACE("fm7_cass")
- MCFG_DEVICE_ADD("fdc", MB8877, 0)
- MCFG_WD17XX_DEFAULT_DRIVE2_TAGS
- MCFG_WD17XX_INTRQ_CALLBACK(WRITELINE(fm7_state, fm7_fdc_intrq_w))
- MCFG_WD17XX_DRQ_CALLBACK(WRITELINE(fm7_state, fm7_fdc_drq_w))
+ MCFG_MB8877_ADD("fdc", XTAL_8MHz / 8)
+ MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(fm7_state, fm7_fdc_intrq_w))
+ MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(fm7_state, fm7_fdc_drq_w))
+
+ MCFG_FLOPPY_DRIVE_ADD("fdc:0", fm7_floppies, "qd", floppy_image_device::default_floppy_formats)
+ MCFG_FLOPPY_DRIVE_ADD("fdc:1", fm7_floppies, "qd", floppy_image_device::default_floppy_formats)
MCFG_CENTRONICS_ADD("centronics", centronics_devices, "printer")
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(fm7_state, write_centronics_busy))
@@ -2154,9 +2165,6 @@ static MACHINE_CONFIG_START( fm8, fm7_state )
MCFG_CENTRONICS_PERROR_HANDLER(WRITELINE(fm7_state, write_centronics_perror))
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics")
-
- MCFG_LEGACY_FLOPPY_2_DRIVES_ADD(fm7_floppy_interface)
-
MACHINE_CONFIG_END
static MACHINE_CONFIG_START( fm77av, fm7_state )
@@ -2218,10 +2226,17 @@ static MACHINE_CONFIG_START( fm77av, fm7_state )
MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED)
MCFG_CASSETTE_INTERFACE("fm7_cass")
- MCFG_DEVICE_ADD("fdc", MB8877, 0)
- MCFG_WD17XX_DEFAULT_DRIVE2_TAGS
- MCFG_WD17XX_INTRQ_CALLBACK(WRITELINE(fm7_state, fm7_fdc_intrq_w))
- MCFG_WD17XX_DRQ_CALLBACK(WRITELINE(fm7_state, fm7_fdc_drq_w))
+ MCFG_SOFTWARE_LIST_COMPATIBLE_ADD("cass_list", "fm7_cass")
+
+ MCFG_MB8877_ADD("fdc", XTAL_8MHz / 8)
+ MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(fm7_state, fm7_fdc_intrq_w))
+ MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(fm7_state, fm7_fdc_drq_w))
+
+ MCFG_FLOPPY_DRIVE_ADD("fdc:0", fm7_floppies, "qd", floppy_image_device::default_floppy_formats)
+ MCFG_FLOPPY_DRIVE_ADD("fdc:1", fm7_floppies, "qd", floppy_image_device::default_floppy_formats)
+
+ MCFG_SOFTWARE_LIST_ADD("av_flop_list", "fm77av")
+ MCFG_SOFTWARE_LIST_COMPATIBLE_ADD("flop_list", "fm7_disk")
MCFG_CENTRONICS_ADD("centronics", centronics_devices, "printer")
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(fm7_state, write_centronics_busy))
@@ -2230,12 +2245,6 @@ static MACHINE_CONFIG_START( fm77av, fm7_state )
MCFG_CENTRONICS_PERROR_HANDLER(WRITELINE(fm7_state, write_centronics_perror))
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics")
-
- MCFG_LEGACY_FLOPPY_2_DRIVES_ADD(fm7_floppy_interface)
-
- MCFG_SOFTWARE_LIST_ADD("av_flop_list","fm77av")
- MCFG_SOFTWARE_LIST_COMPATIBLE_ADD("cass_list","fm7_cass")
- MCFG_SOFTWARE_LIST_COMPATIBLE_ADD("flop_list","fm7_disk")
MACHINE_CONFIG_END
static MACHINE_CONFIG_START( fm11, fm7_state )
@@ -2296,10 +2305,12 @@ static MACHINE_CONFIG_START( fm11, fm7_state )
MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED)
MCFG_CASSETTE_INTERFACE("fm7_cass")
- MCFG_DEVICE_ADD("fdc", MB8877, 0)
- MCFG_WD17XX_DEFAULT_DRIVE2_TAGS
- MCFG_WD17XX_INTRQ_CALLBACK(WRITELINE(fm7_state, fm7_fdc_intrq_w))
- MCFG_WD17XX_DRQ_CALLBACK(WRITELINE(fm7_state, fm7_fdc_drq_w))
+ MCFG_MB8877_ADD("fdc", XTAL_8MHz / 8)
+ MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(fm7_state, fm7_fdc_intrq_w))
+ MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(fm7_state, fm7_fdc_drq_w))
+
+ MCFG_FLOPPY_DRIVE_ADD("fdc:0", fm7_floppies, "qd", floppy_image_device::default_floppy_formats)
+ MCFG_FLOPPY_DRIVE_ADD("fdc:1", fm7_floppies, "qd", floppy_image_device::default_floppy_formats)
MCFG_CENTRONICS_ADD("centronics", centronics_devices, "printer")
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(fm7_state, write_centronics_busy))
@@ -2308,9 +2319,6 @@ static MACHINE_CONFIG_START( fm11, fm7_state )
MCFG_CENTRONICS_PERROR_HANDLER(WRITELINE(fm7_state, write_centronics_perror))
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics")
-
- MCFG_LEGACY_FLOPPY_2_DRIVES_ADD(fm7_floppy_interface)
-
MACHINE_CONFIG_END
static MACHINE_CONFIG_START( fm16beta, fm7_state )
@@ -2350,10 +2358,12 @@ static MACHINE_CONFIG_START( fm16beta, fm7_state )
MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED)
MCFG_CASSETTE_INTERFACE("fm7_cass")
- MCFG_DEVICE_ADD("fdc", MB8877, 0)
- MCFG_WD17XX_DEFAULT_DRIVE2_TAGS
- MCFG_WD17XX_INTRQ_CALLBACK(WRITELINE(fm7_state, fm7_fdc_intrq_w))
- MCFG_WD17XX_DRQ_CALLBACK(WRITELINE(fm7_state, fm7_fdc_drq_w))
+ MCFG_MB8877_ADD("fdc", XTAL_8MHz / 8)
+ MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(fm7_state, fm7_fdc_intrq_w))
+ MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(fm7_state, fm7_fdc_drq_w))
+
+ MCFG_FLOPPY_DRIVE_ADD("fdc:0", fm7_floppies, "qd", floppy_image_device::default_floppy_formats)
+ MCFG_FLOPPY_DRIVE_ADD("fdc:1", fm7_floppies, "qd", floppy_image_device::default_floppy_formats)
MCFG_CENTRONICS_ADD("centronics", centronics_devices, "printer")
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(fm7_state, write_centronics_busy))
@@ -2362,9 +2372,6 @@ static MACHINE_CONFIG_START( fm16beta, fm7_state )
MCFG_CENTRONICS_PERROR_HANDLER(WRITELINE(fm7_state, write_centronics_perror))
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics")
-
- MCFG_LEGACY_FLOPPY_2_DRIVES_ADD(fm7_floppy_interface)
-
MACHINE_CONFIG_END
/* ROM definition */