diff options
author | Dirk Best <mail@dirk-best.de> | 2015-07-06 10:24:28 +0200 |
---|---|---|
committer | Dirk Best <mail@dirk-best.de> | 2015-07-06 11:23:38 +0200 |
commit | 4124faf73c2406eea368a32c4e3c4ec6aa17492f (patch) | |
tree | c41f15dc0f1d2bc83155ff0cdeda97d4596049b2 | |
parent | f32f4e5ba0eed127e0308b36be53aa3696589748 (diff) |
c1pmf: updated to use new floppy
-rw-r--r-- | src/mess/drivers/osi.c | 30 | ||||
-rw-r--r-- | src/mess/includes/osi.h | 22 |
2 files changed, 25 insertions, 27 deletions
diff --git a/src/mess/drivers/osi.c b/src/mess/drivers/osi.c index 1cdd3d6f14c..48359d9ccf9 100644 --- a/src/mess/drivers/osi.c +++ b/src/mess/drivers/osi.c @@ -388,7 +388,7 @@ WRITE8_MEMBER( c1p_state::osi630_sound_w ) C011 ACIAIO DISK CONTROLLER ACIA I/O PORT */ -WRITE_LINE_MEMBER(sb2m600_state::osi470_index_callback) +void sb2m600_state::floppy_index_callback(floppy_image_device *floppy, int state) { m_fdc_index = state; } @@ -686,23 +686,17 @@ void c1p_state::machine_start() void c1pmf_state::machine_start() { c1p_state::machine_start(); -} -static LEGACY_FLOPPY_OPTIONS_START(osi) - LEGACY_FLOPPY_OPTION(osi, "img", "OSI disk image", basicdsk_identify_default, basicdsk_construct_default, NULL, - HEADS([1]) - TRACKS([36]) - SECTORS([10]) - SECTOR_LENGTH([256]) - FIRST_SECTOR_ID([0])) -LEGACY_FLOPPY_OPTIONS_END + // drive select logic missing + if (m_floppy0->get_device()) + m_floppy0->get_device()->setup_index_pulse_cb(floppy_image_device::index_pulse_cb(FUNC(sb2m600_state::floppy_index_callback), this)); +} -static const floppy_interface osi_floppy_interface = -{ - FLOPPY_STANDARD_5_25_SSDD_40, - LEGACY_FLOPPY_OPTIONS_NAME(osi), - NULL -}; +// disk format: 1 head, 36 tracks (? - manual displays a directory listing with 40 tracks), +// 10 sectors, 256 byte sector length, first sector id 0 +static SLOT_INTERFACE_START( osi_floppies ) + SLOT_INTERFACE("ssdd", FLOPPY_525_SSDD) +SLOT_INTERFACE_END /* F4 Character Displayer */ static const gfx_layout osi_charlayout = @@ -833,8 +827,8 @@ static MACHINE_CONFIG_DERIVED_CLASS( c1pmf, c1p, c1pmf_state ) MCFG_DEVICE_ADD("floppy_clock", CLOCK, XTAL_4MHz/8) // 250 kHz MCFG_CLOCK_SIGNAL_HANDLER(DEVWRITELINE("acia_1", acia6850_device, write_txc)) - MCFG_LEGACY_FLOPPY_DRIVE_ADD(FLOPPY_0, osi_floppy_interface) - MCFG_LEGACY_FLOPPY_IDX_CB(WRITELINE(sb2m600_state, osi470_index_callback)) + MCFG_FLOPPY_DRIVE_ADD("floppy0", osi_floppies, "ssdd", floppy_image_device::default_floppy_formats) + MCFG_FLOPPY_DRIVE_ADD("floppy1", osi_floppies, NULL, floppy_image_device::default_floppy_formats) /* internal ram */ MCFG_RAM_MODIFY(RAM_TAG) diff --git a/src/mess/includes/osi.h b/src/mess/includes/osi.h index 1285d0d8516..735b511fc37 100644 --- a/src/mess/includes/osi.h +++ b/src/mess/includes/osi.h @@ -10,7 +10,7 @@ #include "cpu/m6502/m6502.h" #include "formats/basicdsk.h" #include "imagedev/cassette.h" -#include "imagedev/flopdrv.h" +#include "imagedev/floppy.h" #include "machine/6850acia.h" #include "machine/6821pia.h" #include "machine/ram.h" @@ -60,7 +60,7 @@ public: DECLARE_WRITE_LINE_MEMBER( cassette_tx ); DECLARE_WRITE_LINE_MEMBER( write_cassette_clock ); - DECLARE_WRITE_LINE_MEMBER(osi470_index_callback); + void floppy_index_callback(floppy_image_device *floppy, int state); DECLARE_PALETTE_INIT(osi630); @@ -126,19 +126,23 @@ public: class c1pmf_state : public c1p_state { public: - c1pmf_state(const machine_config &mconfig, device_type type, const char *tag) - : c1p_state(mconfig, type, tag), - m_floppy(*this, FLOPPY_0) + c1pmf_state(const machine_config &mconfig, device_type type, const char *tag) : + c1p_state(mconfig, type, tag), + m_floppy0(*this, "floppy0"), + m_floppy1(*this, "floppy1") { } - required_device<legacy_floppy_image_device> m_floppy; - - virtual void machine_start(); - DECLARE_READ8_MEMBER( osi470_pia_pa_r ); DECLARE_WRITE8_MEMBER( osi470_pia_pa_w ); DECLARE_WRITE8_MEMBER( osi470_pia_pb_w ); DECLARE_WRITE_LINE_MEMBER( osi470_pia_cb2_w ); + +protected: + virtual void machine_start(); + +private: + required_device<floppy_connector> m_floppy0; + required_device<floppy_connector> m_floppy1; }; class uk101_state : public sb2m600_state |