diff options
Diffstat (limited to 'src/mess/drivers/fm7.c')
-rw-r--r-- | src/mess/drivers/fm7.c | 109 |
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 */ |