mirror of
https://github.com/holub/mame
synced 2025-07-04 09:28:51 +03:00
Clean up floppy-related code in various drivers with finder arrays
This commit is contained in:
parent
77856a841d
commit
e656487c06
@ -59,8 +59,7 @@ public:
|
|||||||
m_rs232(*this, "rs232"),
|
m_rs232(*this, "rs232"),
|
||||||
m_centronics(*this, "centronics"),
|
m_centronics(*this, "centronics"),
|
||||||
m_fdc(*this, "ic68"),
|
m_fdc(*this, "ic68"),
|
||||||
m_floppy0(*this, "ic68:0"),
|
m_floppy(*this, "ic68:%u", 0U),
|
||||||
m_floppy1(*this, "ic68:1"),
|
|
||||||
m_palette(*this, "palette"),
|
m_palette(*this, "palette"),
|
||||||
m_exp(*this, "exp"),
|
m_exp(*this, "exp"),
|
||||||
m_screen_buffer(*this, "screen_buffer"),
|
m_screen_buffer(*this, "screen_buffer"),
|
||||||
@ -114,8 +113,7 @@ private:
|
|||||||
required_device<rs232_port_device> m_rs232;
|
required_device<rs232_port_device> m_rs232;
|
||||||
required_device<centronics_device> m_centronics;
|
required_device<centronics_device> m_centronics;
|
||||||
required_device<wd2797_device> m_fdc;
|
required_device<wd2797_device> m_fdc;
|
||||||
required_device<floppy_connector> m_floppy0;
|
required_device_array<floppy_connector, 2> m_floppy;
|
||||||
required_device<floppy_connector> m_floppy1;
|
|
||||||
required_device<palette_device> m_palette;
|
required_device<palette_device> m_palette;
|
||||||
required_device<apricot_expansion_bus_device> m_exp;
|
required_device<apricot_expansion_bus_device> m_exp;
|
||||||
required_shared_ptr<uint16_t> m_screen_buffer;
|
required_shared_ptr<uint16_t> m_screen_buffer;
|
||||||
@ -191,7 +189,7 @@ void apricot_state::i8255_portb_w(uint8_t data)
|
|||||||
floppy_image_device *floppy = nullptr;
|
floppy_image_device *floppy = nullptr;
|
||||||
|
|
||||||
if (!BIT(data, 5))
|
if (!BIT(data, 5))
|
||||||
floppy = BIT(data, 6) ? m_floppy1->get_device() : m_floppy0->get_device();
|
floppy = m_floppy[BIT(data, 6)]->get_device();
|
||||||
|
|
||||||
m_fdc->set_floppy(floppy);
|
m_fdc->set_floppy(floppy);
|
||||||
|
|
||||||
@ -472,8 +470,8 @@ void apricot_state::apricot(machine_config &config)
|
|||||||
WD2797(config, m_fdc, 4_MHz_XTAL / 2);
|
WD2797(config, m_fdc, 4_MHz_XTAL / 2);
|
||||||
m_fdc->intrq_wr_callback().set(FUNC(apricot_state::fdc_intrq_w));
|
m_fdc->intrq_wr_callback().set(FUNC(apricot_state::fdc_intrq_w));
|
||||||
m_fdc->drq_wr_callback().set(m_iop, FUNC(i8089_device::drq1_w));
|
m_fdc->drq_wr_callback().set(m_iop, FUNC(i8089_device::drq1_w));
|
||||||
FLOPPY_CONNECTOR(config, "ic68:0", apricot_floppies, "d32w", apricot_state::floppy_formats);
|
FLOPPY_CONNECTOR(config, m_floppy[0], apricot_floppies, "d32w", apricot_state::floppy_formats);
|
||||||
FLOPPY_CONNECTOR(config, "ic68:1", apricot_floppies, "d32w", apricot_state::floppy_formats);
|
FLOPPY_CONNECTOR(config, m_floppy[1], apricot_floppies, "d32w", apricot_state::floppy_formats);
|
||||||
|
|
||||||
SOFTWARE_LIST(config, "flop_list").set_original("apricot_flop");
|
SOFTWARE_LIST(config, "flop_list").set_original("apricot_flop");
|
||||||
|
|
||||||
|
@ -74,8 +74,7 @@ public:
|
|||||||
, m_ctc(*this, Z80CTC_TAG)
|
, m_ctc(*this, Z80CTC_TAG)
|
||||||
, m_sio(*this, Z80SIO2_TAG)
|
, m_sio(*this, Z80SIO2_TAG)
|
||||||
, m_fdc(*this, WD2797_TAG)
|
, m_fdc(*this, WD2797_TAG)
|
||||||
, m_floppy0(*this, WD2797_TAG ":0")
|
, m_floppy(*this, WD2797_TAG ":%u", 0U)
|
||||||
, m_floppy1(*this, WD2797_TAG ":1")
|
|
||||||
, m_centronics(*this, CENTRONICS_TAG)
|
, m_centronics(*this, CENTRONICS_TAG)
|
||||||
, m_cent_data_out(*this, "cent_data_out")
|
, m_cent_data_out(*this, "cent_data_out")
|
||||||
, m_irqs(*this, "irqs")
|
, m_irqs(*this, "irqs")
|
||||||
@ -95,8 +94,7 @@ private:
|
|||||||
required_device<z80ctc_device> m_ctc;
|
required_device<z80ctc_device> m_ctc;
|
||||||
required_device<z80sio_device> m_sio;
|
required_device<z80sio_device> m_sio;
|
||||||
required_device<wd2797_device> m_fdc;
|
required_device<wd2797_device> m_fdc;
|
||||||
required_device<floppy_connector> m_floppy0;
|
required_device_array<floppy_connector, 2> m_floppy;
|
||||||
required_device<floppy_connector> m_floppy1;
|
|
||||||
required_device<centronics_device> m_centronics;
|
required_device<centronics_device> m_centronics;
|
||||||
required_device<output_latch_device> m_cent_data_out;
|
required_device<output_latch_device> m_cent_data_out;
|
||||||
required_device<input_merger_device> m_irqs;
|
required_device<input_merger_device> m_irqs;
|
||||||
@ -217,15 +215,15 @@ void f1_state::system_w(offs_t offset, u8 data)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case 1: // drive select
|
case 1: // drive select
|
||||||
m_fdc->set_floppy(BIT(data, 0) ? m_floppy0->get_device() : m_floppy1->get_device());
|
m_fdc->set_floppy(m_floppy[!BIT(data, 0)]->get_device());
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 3: // drive head load
|
case 3: // drive head load
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 5: // drive motor on
|
case 5: // drive motor on
|
||||||
m_floppy0->get_device()->mon_w(!BIT(data, 0));
|
m_floppy[0]->get_device()->mon_w(!BIT(data, 0));
|
||||||
m_floppy1->get_device()->mon_w(!BIT(data, 0));
|
m_floppy[1]->get_device()->mon_w(!BIT(data, 0));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 7: // video lines (1=200, 0=256)
|
case 7: // video lines (1=200, 0=256)
|
||||||
|
@ -233,9 +233,9 @@ void super6_state::fdc_w(uint8_t data)
|
|||||||
floppy_image_device *floppy = nullptr;
|
floppy_image_device *floppy = nullptr;
|
||||||
|
|
||||||
if ((data & 3) == 0)
|
if ((data & 3) == 0)
|
||||||
floppy = m_floppy0->get_device();
|
floppy = m_floppy[0]->get_device();
|
||||||
if ((data & 3) == 1)
|
if ((data & 3) == 1)
|
||||||
floppy = m_floppy1->get_device();
|
floppy = m_floppy[1]->get_device();
|
||||||
|
|
||||||
m_fdc->set_floppy(floppy);
|
m_fdc->set_floppy(floppy);
|
||||||
if (floppy) floppy->mon_w(0);
|
if (floppy) floppy->mon_w(0);
|
||||||
@ -473,8 +473,8 @@ void super6_state::super6(machine_config &config)
|
|||||||
m_fdc->intrq_wr_callback().set(FUNC(super6_state::fdc_intrq_w));
|
m_fdc->intrq_wr_callback().set(FUNC(super6_state::fdc_intrq_w));
|
||||||
m_fdc->drq_wr_callback().set(FUNC(super6_state::fdc_drq_w));
|
m_fdc->drq_wr_callback().set(FUNC(super6_state::fdc_drq_w));
|
||||||
|
|
||||||
FLOPPY_CONNECTOR(config, m_floppy0, super6_floppies, "525dd", floppy_image_device::default_mfm_floppy_formats).enable_sound(true);
|
FLOPPY_CONNECTOR(config, m_floppy[0], super6_floppies, "525dd", floppy_image_device::default_mfm_floppy_formats).enable_sound(true);
|
||||||
FLOPPY_CONNECTOR(config, m_floppy1, super6_floppies, nullptr, floppy_image_device::default_mfm_floppy_formats).enable_sound(true);
|
FLOPPY_CONNECTOR(config, m_floppy[1], super6_floppies, nullptr, floppy_image_device::default_mfm_floppy_formats).enable_sound(true);
|
||||||
|
|
||||||
Z80DART(config, m_dart, 24_MHz_XTAL / 4);
|
Z80DART(config, m_dart, 24_MHz_XTAL / 4);
|
||||||
m_dart->out_txda_callback().set(RS232_A_TAG, FUNC(rs232_port_device::write_txd));
|
m_dart->out_txda_callback().set(RS232_A_TAG, FUNC(rs232_port_device::write_txd));
|
||||||
|
@ -40,8 +40,7 @@ public:
|
|||||||
, m_fdc(*this, WD2793_TAG)
|
, m_fdc(*this, WD2793_TAG)
|
||||||
, m_brg(*this, BR1945_TAG)
|
, m_brg(*this, BR1945_TAG)
|
||||||
, m_ram(*this, RAM_TAG)
|
, m_ram(*this, RAM_TAG)
|
||||||
, m_floppy0(*this, WD2793_TAG":0")
|
, m_floppy(*this, WD2793_TAG":%u", 0U)
|
||||||
, m_floppy1(*this, WD2793_TAG":1")
|
|
||||||
, m_rom(*this, Z80_TAG)
|
, m_rom(*this, Z80_TAG)
|
||||||
, m_j7(*this, "J7")
|
, m_j7(*this, "J7")
|
||||||
{ }
|
{ }
|
||||||
@ -77,8 +76,7 @@ private:
|
|||||||
required_device<wd2793_device> m_fdc;
|
required_device<wd2793_device> m_fdc;
|
||||||
required_device<com8116_device> m_brg;
|
required_device<com8116_device> m_brg;
|
||||||
required_device<ram_device> m_ram;
|
required_device<ram_device> m_ram;
|
||||||
required_device<floppy_connector> m_floppy0;
|
required_device_array<floppy_connector, 2> m_floppy;
|
||||||
required_device<floppy_connector> m_floppy1;
|
|
||||||
required_region_ptr<uint8_t> m_rom;
|
required_region_ptr<uint8_t> m_rom;
|
||||||
required_ioport m_j7;
|
required_ioport m_j7;
|
||||||
|
|
||||||
|
@ -47,10 +47,7 @@ public:
|
|||||||
, m_dart(*this, "dart")
|
, m_dart(*this, "dart")
|
||||||
, m_ctc(*this, "ctc")
|
, m_ctc(*this, "ctc")
|
||||||
, m_fdc(*this, "fdc")
|
, m_fdc(*this, "fdc")
|
||||||
, m_floppy0(*this, "fdc:0")
|
, m_floppy(*this, "fdc:%u", 0U)
|
||||||
, m_floppy1(*this, "fdc:1")
|
|
||||||
, m_floppy2(*this, "fdc:2")
|
|
||||||
, m_floppy3(*this, "fdc:3")
|
|
||||||
, m_ncr(*this, "scsi:7:ncr")
|
, m_ncr(*this, "scsi:7:ncr")
|
||||||
, m_printer(*this, "printer")
|
, m_printer(*this, "printer")
|
||||||
{ }
|
{ }
|
||||||
@ -79,10 +76,7 @@ private:
|
|||||||
required_device<z80dart_device> m_dart;
|
required_device<z80dart_device> m_dart;
|
||||||
required_device<z80ctc_device> m_ctc;
|
required_device<z80ctc_device> m_ctc;
|
||||||
required_device<wd1772_device> m_fdc;
|
required_device<wd1772_device> m_fdc;
|
||||||
required_device<floppy_connector> m_floppy0;
|
required_device_array<floppy_connector, 4> m_floppy;
|
||||||
required_device<floppy_connector> m_floppy1;
|
|
||||||
required_device<floppy_connector> m_floppy2;
|
|
||||||
required_device<floppy_connector> m_floppy3;
|
|
||||||
required_device<ncr5380_device> m_ncr;
|
required_device<ncr5380_device> m_ncr;
|
||||||
required_device<centronics_device> m_printer;
|
required_device<centronics_device> m_printer;
|
||||||
};
|
};
|
||||||
@ -99,10 +93,9 @@ void ampro_state::port00_w(uint8_t data)
|
|||||||
m_bank1->set_entry(BIT(~data, 6));
|
m_bank1->set_entry(BIT(~data, 6));
|
||||||
m_fdc->dden_w(BIT(data, 5));
|
m_fdc->dden_w(BIT(data, 5));
|
||||||
floppy_image_device *floppy = nullptr;
|
floppy_image_device *floppy = nullptr;
|
||||||
if (BIT(data, 0)) floppy = m_floppy0->get_device();
|
for (int n = 0; n < 4; n++)
|
||||||
if (BIT(data, 1)) floppy = m_floppy1->get_device();
|
if (BIT(data, n))
|
||||||
if (BIT(data, 2)) floppy = m_floppy2->get_device();
|
floppy = m_floppy[n]->get_device();
|
||||||
if (BIT(data, 3)) floppy = m_floppy3->get_device();
|
|
||||||
m_fdc->set_floppy(floppy);
|
m_fdc->set_floppy(floppy);
|
||||||
if (floppy)
|
if (floppy)
|
||||||
floppy->ss_w(BIT(data, 4));
|
floppy->ss_w(BIT(data, 4));
|
||||||
@ -248,10 +241,8 @@ void ampro_state::ampro(machine_config &config)
|
|||||||
//m_fdc->intrq_wr_callback().set(m_ctc, FUNC(z80ctc_device::trg3)); // only if JMP2-3 shorted
|
//m_fdc->intrq_wr_callback().set(m_ctc, FUNC(z80ctc_device::trg3)); // only if JMP2-3 shorted
|
||||||
//m_fdc->drq_wr_callback().set(m_dart, FUNC(z80dart_device::ria_w)); // only if JMP7 shorted
|
//m_fdc->drq_wr_callback().set(m_dart, FUNC(z80dart_device::ria_w)); // only if JMP7 shorted
|
||||||
m_fdc->ready_wr_callback().set(m_dart, FUNC(z80dart_device::dcdb_w)); // actually from the drive, and not used by the FDC at all
|
m_fdc->ready_wr_callback().set(m_dart, FUNC(z80dart_device::dcdb_w)); // actually from the drive, and not used by the FDC at all
|
||||||
FLOPPY_CONNECTOR(config, "fdc:0", ampro_floppies, "525dd", floppy_image_device::default_mfm_floppy_formats).enable_sound(true);
|
for (auto &floppy : m_floppy)
|
||||||
FLOPPY_CONNECTOR(config, "fdc:1", ampro_floppies, "525dd", floppy_image_device::default_mfm_floppy_formats).enable_sound(true);
|
FLOPPY_CONNECTOR(config, floppy, ampro_floppies, "525dd", floppy_image_device::default_mfm_floppy_formats).enable_sound(true);
|
||||||
FLOPPY_CONNECTOR(config, "fdc:2", ampro_floppies, "525dd", floppy_image_device::default_mfm_floppy_formats).enable_sound(true);
|
|
||||||
FLOPPY_CONNECTOR(config, "fdc:3", ampro_floppies, "525dd", floppy_image_device::default_mfm_floppy_formats).enable_sound(true);
|
|
||||||
SOFTWARE_LIST(config, "flop_list").set_original("ampro");
|
SOFTWARE_LIST(config, "flop_list").set_original("ampro");
|
||||||
|
|
||||||
NSCSI_BUS(config, "scsi");
|
NSCSI_BUS(config, "scsi");
|
||||||
|
@ -70,34 +70,15 @@ public:
|
|||||||
, m_centronics(*this, "centronics")
|
, m_centronics(*this, "centronics")
|
||||||
, m_cent_data_out(*this, "cent_data_out")
|
, m_cent_data_out(*this, "cent_data_out")
|
||||||
, m_fdc(*this, "fdc")
|
, m_fdc(*this, "fdc")
|
||||||
, m_floppy0(*this, "fdc:0")
|
, m_floppy(*this, "fdc:%u", 0U)
|
||||||
, m_floppy1(*this, "fdc:1")
|
|
||||||
, m_ldac(*this, "ldac")
|
, m_ldac(*this, "ldac")
|
||||||
, m_rdac(*this, "rdac")
|
, m_rdac(*this, "rdac")
|
||||||
, m_cass(*this, "cassette")
|
, m_cass(*this, "cassette")
|
||||||
, m_io_dsw(*this, "DSW")
|
, m_io_dsw(*this, "DSW")
|
||||||
, m_io_fdc(*this, "FDC")
|
, m_io_fdc(*this, "FDC")
|
||||||
, m_io_k0f(*this, "K0f")
|
, m_io_k0f(*this, "K0f")
|
||||||
, m_io_k300(*this, "K30_0")
|
, m_io_k3x0(*this, "K3%x_0", 0U)
|
||||||
, m_io_k301(*this, "K30_1")
|
, m_io_k3x1(*this, "K3%x_1", 0U)
|
||||||
, m_io_k310(*this, "K31_0")
|
|
||||||
, m_io_k311(*this, "K31_1")
|
|
||||||
, m_io_k320(*this, "K32_0")
|
|
||||||
, m_io_k321(*this, "K32_1")
|
|
||||||
, m_io_k330(*this, "K33_0")
|
|
||||||
, m_io_k331(*this, "K33_1")
|
|
||||||
, m_io_k340(*this, "K34_0")
|
|
||||||
, m_io_k341(*this, "K34_1")
|
|
||||||
, m_io_k350(*this, "K35_0")
|
|
||||||
, m_io_k351(*this, "K35_1")
|
|
||||||
, m_io_k360(*this, "K36_0")
|
|
||||||
, m_io_k361(*this, "K36_1")
|
|
||||||
, m_io_k370(*this, "K37_0")
|
|
||||||
, m_io_k371(*this, "K37_1")
|
|
||||||
, m_io_k380(*this, "K38_0")
|
|
||||||
, m_io_k390(*this, "K39_0")
|
|
||||||
, m_io_k3a0(*this, "K3a_0")
|
|
||||||
, m_io_k3b0(*this, "K3b_0")
|
|
||||||
, m_io_k0b(*this, "K0b")
|
, m_io_k0b(*this, "K0b")
|
||||||
, m_expansion(*this, "expansion")
|
, m_expansion(*this, "expansion")
|
||||||
, m_palette(*this, "palette")
|
, m_palette(*this, "palette")
|
||||||
@ -184,34 +165,15 @@ private:
|
|||||||
required_device<centronics_device> m_centronics;
|
required_device<centronics_device> m_centronics;
|
||||||
required_device<output_latch_device> m_cent_data_out;
|
required_device<output_latch_device> m_cent_data_out;
|
||||||
required_device<wd1772_device> m_fdc;
|
required_device<wd1772_device> m_fdc;
|
||||||
required_device<floppy_connector> m_floppy0;
|
required_device_array<floppy_connector, 2> m_floppy;
|
||||||
required_device<floppy_connector> m_floppy1;
|
|
||||||
required_device<dac_byte_interface> m_ldac;
|
required_device<dac_byte_interface> m_ldac;
|
||||||
required_device<dac_byte_interface> m_rdac;
|
required_device<dac_byte_interface> m_rdac;
|
||||||
required_device<cassette_image_device> m_cass;
|
required_device<cassette_image_device> m_cass;
|
||||||
required_ioport m_io_dsw;
|
required_ioport m_io_dsw;
|
||||||
required_ioport m_io_fdc;
|
required_ioport m_io_fdc;
|
||||||
required_ioport m_io_k0f;
|
required_ioport m_io_k0f;
|
||||||
required_ioport m_io_k300;
|
required_ioport_array<12> m_io_k3x0;
|
||||||
required_ioport m_io_k301;
|
required_ioport_array<8> m_io_k3x1;
|
||||||
required_ioport m_io_k310;
|
|
||||||
required_ioport m_io_k311;
|
|
||||||
required_ioport m_io_k320;
|
|
||||||
required_ioport m_io_k321;
|
|
||||||
required_ioport m_io_k330;
|
|
||||||
required_ioport m_io_k331;
|
|
||||||
required_ioport m_io_k340;
|
|
||||||
required_ioport m_io_k341;
|
|
||||||
required_ioport m_io_k350;
|
|
||||||
required_ioport m_io_k351;
|
|
||||||
required_ioport m_io_k360;
|
|
||||||
required_ioport m_io_k361;
|
|
||||||
required_ioport m_io_k370;
|
|
||||||
required_ioport m_io_k371;
|
|
||||||
required_ioport m_io_k380;
|
|
||||||
required_ioport m_io_k390;
|
|
||||||
required_ioport m_io_k3a0;
|
|
||||||
required_ioport m_io_k3b0;
|
|
||||||
required_ioport m_io_k0b;
|
required_ioport m_io_k0b;
|
||||||
required_shared_ptr<u16> m_expansion;
|
required_shared_ptr<u16> m_expansion;
|
||||||
|
|
||||||
@ -370,8 +332,8 @@ void applix_state::port08_w(u8 data)
|
|||||||
membank("bank1")->set_entry(BIT(data, 6));
|
membank("bank1")->set_entry(BIT(data, 6));
|
||||||
|
|
||||||
floppy_image_device *floppy = nullptr;
|
floppy_image_device *floppy = nullptr;
|
||||||
if (BIT(data, 2)) floppy = m_floppy0->get_device();
|
if (BIT(data, 2)) floppy = m_floppy[0]->get_device();
|
||||||
if (BIT(data, 3)) floppy = m_floppy1->get_device();
|
if (BIT(data, 3)) floppy = m_floppy[1]->get_device();
|
||||||
|
|
||||||
m_fdc->set_floppy(floppy);
|
m_fdc->set_floppy(floppy);
|
||||||
|
|
||||||
@ -943,8 +905,8 @@ void applix_state::applix(machine_config &config)
|
|||||||
m_cass->add_route(ALL_OUTPUTS, "lspeaker", 0.10);
|
m_cass->add_route(ALL_OUTPUTS, "lspeaker", 0.10);
|
||||||
|
|
||||||
WD1772(config, m_fdc, 16_MHz_XTAL / 2); //connected to Z80H clock pin
|
WD1772(config, m_fdc, 16_MHz_XTAL / 2); //connected to Z80H clock pin
|
||||||
FLOPPY_CONNECTOR(config, "fdc:0", applix_floppies, "35dd", applix_state::floppy_formats).enable_sound(true);
|
FLOPPY_CONNECTOR(config, m_floppy[0], applix_floppies, "35dd", applix_state::floppy_formats).enable_sound(true);
|
||||||
FLOPPY_CONNECTOR(config, "fdc:1", applix_floppies, "35dd", applix_state::floppy_formats).enable_sound(true);
|
FLOPPY_CONNECTOR(config, m_floppy[1], applix_floppies, "35dd", applix_state::floppy_formats).enable_sound(true);
|
||||||
TIMER(config, "applix_c").configure_periodic(FUNC(applix_state::cass_timer), attotime::from_hz(100000));
|
TIMER(config, "applix_c").configure_periodic(FUNC(applix_state::cass_timer), attotime::from_hz(100000));
|
||||||
|
|
||||||
scc8530_device &scc(SCC8530N(config, "scc", 30_MHz_XTAL / 8));
|
scc8530_device &scc(SCC8530N(config, "scc", 30_MHz_XTAL / 8));
|
||||||
@ -1048,41 +1010,13 @@ void applix_state::internal_data_write(offs_t offset, u8 data)
|
|||||||
case 0x0f:
|
case 0x0f:
|
||||||
m_p1_data = m_io_k0f->read();
|
m_p1_data = m_io_k0f->read();
|
||||||
break;
|
break;
|
||||||
case 0x30:
|
case 0x30: case 0x31: case 0x32: case 0x33:
|
||||||
m_p1_data = m_io_k300->read();
|
case 0x34: case 0x35: case 0x36:
|
||||||
break;
|
case 0x38: case 0x39: case 0x3a: case 0x3b:
|
||||||
case 0x31:
|
m_p1_data = m_io_k3x0[m_p1 - 0x30]->read();
|
||||||
m_p1_data = m_io_k310->read();
|
|
||||||
break;
|
|
||||||
case 0x32:
|
|
||||||
m_p1_data = m_io_k320->read();
|
|
||||||
break;
|
|
||||||
case 0x33:
|
|
||||||
m_p1_data = m_io_k330->read();
|
|
||||||
break;
|
|
||||||
case 0x34:
|
|
||||||
m_p1_data = m_io_k340->read();
|
|
||||||
break;
|
|
||||||
case 0x35:
|
|
||||||
m_p1_data = m_io_k350->read();
|
|
||||||
break;
|
|
||||||
case 0x36:
|
|
||||||
m_p1_data = m_io_k360->read();
|
|
||||||
break;
|
break;
|
||||||
case 0x37:
|
case 0x37:
|
||||||
m_p1_data = m_io_k370->read() | (m_io_k360->read() & 0x01);
|
m_p1_data = m_io_k3x0[7]->read() | (m_io_k3x0[6]->read() & 0x01);
|
||||||
break;
|
|
||||||
case 0x38:
|
|
||||||
m_p1_data = m_io_k380->read();
|
|
||||||
break;
|
|
||||||
case 0x39:
|
|
||||||
m_p1_data = m_io_k390->read();
|
|
||||||
break;
|
|
||||||
case 0x3a:
|
|
||||||
m_p1_data = m_io_k3a0->read();
|
|
||||||
break;
|
|
||||||
case 0x3b:
|
|
||||||
m_p1_data = m_io_k3b0->read();
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1095,29 +1029,9 @@ void applix_state::internal_data_write(offs_t offset, u8 data)
|
|||||||
case 0x0b:
|
case 0x0b:
|
||||||
m_p1_data = m_io_k0b->read();
|
m_p1_data = m_io_k0b->read();
|
||||||
break;
|
break;
|
||||||
case 0x30:
|
case 0x30: case 0x31: case 0x32: case 0x33:
|
||||||
m_p1_data = m_io_k301->read();
|
case 0x34: case 0x35: case 0x36: case 0x37:
|
||||||
break;
|
m_p1_data = m_io_k3x1[m_p1 - 0x30]->read();
|
||||||
case 0x31:
|
|
||||||
m_p1_data = m_io_k311->read();
|
|
||||||
break;
|
|
||||||
case 0x32:
|
|
||||||
m_p1_data = m_io_k321->read();
|
|
||||||
break;
|
|
||||||
case 0x33:
|
|
||||||
m_p1_data = m_io_k331->read();
|
|
||||||
break;
|
|
||||||
case 0x34:
|
|
||||||
m_p1_data = m_io_k341->read();
|
|
||||||
break;
|
|
||||||
case 0x35:
|
|
||||||
m_p1_data = m_io_k351->read();
|
|
||||||
break;
|
|
||||||
case 0x36:
|
|
||||||
m_p1_data = m_io_k361->read();
|
|
||||||
break;
|
|
||||||
case 0x37:
|
|
||||||
m_p1_data = m_io_k371->read();
|
|
||||||
break;
|
break;
|
||||||
case 0x38:
|
case 0x38:
|
||||||
m_p1_data = 0xff;
|
m_p1_data = 0xff;
|
||||||
|
@ -78,8 +78,8 @@ void bw12_state::floppy_motor_on_off()
|
|||||||
if (m_motor0 || m_motor1)
|
if (m_motor0 || m_motor1)
|
||||||
{
|
{
|
||||||
m_motor_on = 1;
|
m_motor_on = 1;
|
||||||
m_floppy0->mon_w(0);
|
m_floppy[0]->mon_w(0);
|
||||||
m_floppy1->mon_w(0);
|
m_floppy[1]->mon_w(0);
|
||||||
m_floppy_timer->adjust(attotime::never);
|
m_floppy_timer->adjust(attotime::never);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -90,8 +90,8 @@ TIMER_DEVICE_CALLBACK_MEMBER(bw12_state::floppy_motor_off_tick)
|
|||||||
{
|
{
|
||||||
if (m_motor0 || m_motor1)
|
if (m_motor0 || m_motor1)
|
||||||
return;
|
return;
|
||||||
m_floppy0->mon_w(1);
|
m_floppy[0]->mon_w(1);
|
||||||
m_floppy1->mon_w(1);
|
m_floppy[1]->mon_w(1);
|
||||||
|
|
||||||
m_motor_on = 0;
|
m_motor_on = 0;
|
||||||
}
|
}
|
||||||
|
@ -53,8 +53,7 @@ public:
|
|||||||
, m_palette(*this, "palette")
|
, m_palette(*this, "palette")
|
||||||
, m_centronics(*this, CENTRONICS_TAG)
|
, m_centronics(*this, CENTRONICS_TAG)
|
||||||
, m_ram(*this, RAM_TAG)
|
, m_ram(*this, RAM_TAG)
|
||||||
, m_floppy0(*this, UPD765_TAG ":1:525dd")
|
, m_floppy(*this, UPD765_TAG ":%u:525dd", 1U)
|
||||||
, m_floppy1(*this, UPD765_TAG ":2:525dd")
|
|
||||||
, m_floppy_timer(*this, FLOPPY_TIMER_TAG)
|
, m_floppy_timer(*this, FLOPPY_TIMER_TAG)
|
||||||
, m_rom(*this, Z80_TAG)
|
, m_rom(*this, Z80_TAG)
|
||||||
, m_char_rom(*this, "chargen")
|
, m_char_rom(*this, "chargen")
|
||||||
@ -112,8 +111,7 @@ protected:
|
|||||||
required_device<palette_device> m_palette;
|
required_device<palette_device> m_palette;
|
||||||
required_device<centronics_device> m_centronics;
|
required_device<centronics_device> m_centronics;
|
||||||
required_device<ram_device> m_ram;
|
required_device<ram_device> m_ram;
|
||||||
required_device<floppy_image_device> m_floppy0;
|
required_device_array<floppy_image_device, 2> m_floppy;
|
||||||
required_device<floppy_image_device> m_floppy1;
|
|
||||||
required_device<timer_device> m_floppy_timer;
|
required_device<timer_device> m_floppy_timer;
|
||||||
required_memory_region m_rom;
|
required_memory_region m_rom;
|
||||||
required_memory_region m_char_rom;
|
required_memory_region m_char_rom;
|
||||||
|
@ -209,8 +209,7 @@ public:
|
|||||||
, m_midi_out(*this, "midi_out_%u", 1U)
|
, m_midi_out(*this, "midi_out_%u", 1U)
|
||||||
, m_midi_in(*this, "midi_in_%u", 1U)
|
, m_midi_in(*this, "midi_in_%u", 1U)
|
||||||
, m_qfc9_region(*this, "qfc9")
|
, m_qfc9_region(*this, "qfc9")
|
||||||
, m_floppy0(*this, "wd1791:0")
|
, m_floppy(*this, "wd1791:%u", 0U)
|
||||||
, m_floppy1(*this, "wd1791:1")
|
|
||||||
, m_wd1791(*this, "wd1791")
|
, m_wd1791(*this, "wd1791")
|
||||||
, m_channels(*this, "cmi01a_%u", 0)
|
, m_channels(*this, "cmi01a_%u", 0)
|
||||||
, m_screen(*this, "screen")
|
, m_screen(*this, "screen")
|
||||||
@ -375,8 +374,7 @@ protected:
|
|||||||
required_device_array<midi_port_device, 3> m_midi_in;
|
required_device_array<midi_port_device, 3> m_midi_in;
|
||||||
|
|
||||||
required_memory_region m_qfc9_region;
|
required_memory_region m_qfc9_region;
|
||||||
required_device<floppy_connector> m_floppy0;
|
required_device_array<floppy_connector, 2> m_floppy;
|
||||||
required_device<floppy_connector> m_floppy1;
|
|
||||||
required_device<fd1791_device> m_wd1791;
|
required_device<fd1791_device> m_wd1791;
|
||||||
|
|
||||||
required_device_array<cmi01a_device, 8> m_channels;
|
required_device_array<cmi01a_device, 8> m_channels;
|
||||||
@ -1318,14 +1316,10 @@ void cmi_state::write_fdc_ctrl(u8 data)
|
|||||||
int drive = data & 1;
|
int drive = data & 1;
|
||||||
int side = BIT(data, 5) ? 1 : 0;
|
int side = BIT(data, 5) ? 1 : 0;
|
||||||
|
|
||||||
switch (drive)
|
m_wd1791->set_floppy(m_floppy[drive]->get_device());
|
||||||
{
|
|
||||||
case 0: m_wd1791->set_floppy(m_floppy0->get_device()); break;
|
|
||||||
case 1: m_wd1791->set_floppy(m_floppy1->get_device()); break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (m_floppy0->get_device()) m_floppy0->get_device()->ss_w(side);
|
if (m_floppy[0]->get_device()) m_floppy[0]->get_device()->ss_w(side);
|
||||||
if (m_floppy1->get_device()) m_floppy1->get_device()->ss_w(side);
|
if (m_floppy[1]->get_device()) m_floppy[1]->get_device()->ss_w(side);
|
||||||
|
|
||||||
m_wd1791->dden_w(BIT(data, 7) ? true : false);
|
m_wd1791->dden_w(BIT(data, 7) ? true : false);
|
||||||
|
|
||||||
@ -2201,8 +2195,8 @@ void cmi_state::cmi2x(machine_config &config)
|
|||||||
FD1791(config, m_wd1791, 16_MHz_XTAL / 8); // wd1791_interface
|
FD1791(config, m_wd1791, 16_MHz_XTAL / 8); // wd1791_interface
|
||||||
m_wd1791->intrq_wr_callback().set(FUNC(cmi_state::wd1791_irq));
|
m_wd1791->intrq_wr_callback().set(FUNC(cmi_state::wd1791_irq));
|
||||||
m_wd1791->drq_wr_callback().set(FUNC(cmi_state::wd1791_drq));
|
m_wd1791->drq_wr_callback().set(FUNC(cmi_state::wd1791_drq));
|
||||||
FLOPPY_CONNECTOR(config, "wd1791:0", cmi2x_floppies, "8dsdd", floppy_image_device::default_mfm_floppy_formats);
|
FLOPPY_CONNECTOR(config, m_floppy[0], cmi2x_floppies, "8dsdd", floppy_image_device::default_mfm_floppy_formats);
|
||||||
FLOPPY_CONNECTOR(config, "wd1791:1", cmi2x_floppies, "8dsdd", floppy_image_device::default_mfm_floppy_formats);
|
FLOPPY_CONNECTOR(config, m_floppy[1], cmi2x_floppies, "8dsdd", floppy_image_device::default_mfm_floppy_formats);
|
||||||
|
|
||||||
SPEAKER(config, "mono").front_center();
|
SPEAKER(config, "mono").front_center();
|
||||||
|
|
||||||
|
@ -250,15 +250,10 @@ private:
|
|||||||
required_device<hp_5061_3011_cpu_device> m_cpu;
|
required_device<hp_5061_3011_cpu_device> m_cpu;
|
||||||
required_device<i8275_device> m_crtc;
|
required_device<i8275_device> m_crtc;
|
||||||
required_device<palette_device> m_palette;
|
required_device<palette_device> m_palette;
|
||||||
required_ioport m_io_key0;
|
required_ioport_array<4> m_io_key;
|
||||||
required_ioport m_io_key1;
|
|
||||||
required_ioport m_io_key2;
|
|
||||||
required_ioport m_io_key3;
|
|
||||||
required_device<fd1791_device> m_fdc;
|
required_device<fd1791_device> m_fdc;
|
||||||
required_device<floppy_connector> m_floppy0;
|
required_device_array<floppy_connector, 2> m_floppy;
|
||||||
required_device<floppy_connector> m_floppy1;
|
required_device_array<ttl74123_device, 2> m_ss;
|
||||||
required_device<ttl74123_device> m_ss0;
|
|
||||||
required_device<ttl74123_device> m_ss1;
|
|
||||||
required_ioport m_rear_panel_sw;
|
required_ioport m_rear_panel_sw;
|
||||||
required_ioport m_rs232_sw;
|
required_ioport m_rs232_sw;
|
||||||
required_device<beep_device> m_beeper;
|
required_device<beep_device> m_beeper;
|
||||||
@ -302,8 +297,7 @@ private:
|
|||||||
bool m_floppy_mdci;
|
bool m_floppy_mdci;
|
||||||
bool m_floppy_intrq;
|
bool m_floppy_intrq;
|
||||||
bool m_floppy_drq;
|
bool m_floppy_drq;
|
||||||
bool m_floppy0_wpt;
|
bool m_floppy_wpt[2];
|
||||||
bool m_floppy1_wpt;
|
|
||||||
uint8_t m_floppy_drv_ctrl; // U39
|
uint8_t m_floppy_drv_ctrl; // U39
|
||||||
uint8_t m_floppy_status; // U25
|
uint8_t m_floppy_status; // U25
|
||||||
|
|
||||||
@ -378,15 +372,10 @@ hp64k_state::hp64k_state(const machine_config &mconfig, device_type type, const
|
|||||||
m_cpu(*this , "cpu"),
|
m_cpu(*this , "cpu"),
|
||||||
m_crtc(*this , "crtc"),
|
m_crtc(*this , "crtc"),
|
||||||
m_palette(*this , "palette"),
|
m_palette(*this , "palette"),
|
||||||
m_io_key0(*this , "KEY0"),
|
m_io_key(*this , "KEY%u" , 0U),
|
||||||
m_io_key1(*this , "KEY1"),
|
|
||||||
m_io_key2(*this , "KEY2"),
|
|
||||||
m_io_key3(*this , "KEY3"),
|
|
||||||
m_fdc(*this , "fdc"),
|
m_fdc(*this , "fdc"),
|
||||||
m_floppy0(*this , "fdc:0"),
|
m_floppy(*this , "fdc:%u" , 0U),
|
||||||
m_floppy1(*this , "fdc:1"),
|
m_ss(*this , "fdc_rdy%u" , 0U),
|
||||||
m_ss0(*this , "fdc_rdy0"),
|
|
||||||
m_ss1(*this , "fdc_rdy1"),
|
|
||||||
m_rear_panel_sw(*this , "rear_sw"),
|
m_rear_panel_sw(*this , "rear_sw"),
|
||||||
m_rs232_sw(*this , "rs232_sw"),
|
m_rs232_sw(*this , "rs232_sw"),
|
||||||
m_beeper(*this , "beeper"),
|
m_beeper(*this , "beeper"),
|
||||||
@ -430,8 +419,8 @@ void hp64k_state::machine_reset()
|
|||||||
m_floppy_drv_ctrl = ~0;
|
m_floppy_drv_ctrl = ~0;
|
||||||
m_floppy_if_state = HP64K_FLPST_IDLE;
|
m_floppy_if_state = HP64K_FLPST_IDLE;
|
||||||
m_current_floppy = nullptr;
|
m_current_floppy = nullptr;
|
||||||
m_floppy0_wpt = false;
|
m_floppy_wpt[0] = false;
|
||||||
m_floppy1_wpt = false;
|
m_floppy_wpt[1] = false;
|
||||||
m_beeper->set_state(0);
|
m_beeper->set_state(0);
|
||||||
m_baud_rate->str_w((m_s5_sw->read() >> 1) & 0xf);
|
m_baud_rate->str_w((m_s5_sw->read() >> 1) & 0xf);
|
||||||
m_16x_clk = (m_rs232_sw->read() & 0x02) != 0;
|
m_16x_clk = (m_rs232_sw->read() & 0x02) != 0;
|
||||||
@ -554,10 +543,10 @@ TIMER_DEVICE_CALLBACK_MEMBER(hp64k_state::hp64k_kb_scan)
|
|||||||
unsigned i;
|
unsigned i;
|
||||||
|
|
||||||
ioport_value input[ 4 ];
|
ioport_value input[ 4 ];
|
||||||
input[ 0 ] = m_io_key0->read();
|
input[ 0 ] = m_io_key[ 0 ]->read();
|
||||||
input[ 1 ] = m_io_key1->read();
|
input[ 1 ] = m_io_key[ 1 ]->read();
|
||||||
input[ 2 ] = m_io_key2->read();
|
input[ 2 ] = m_io_key[ 2 ]->read();
|
||||||
input[ 3 ] = m_io_key3->read();
|
input[ 3 ] = m_io_key[ 3 ]->read();
|
||||||
|
|
||||||
for (i = 0; i < 128; i++) {
|
for (i = 0; i < 128; i++) {
|
||||||
if (++m_kb_row_col >= 128) {
|
if (++m_kb_row_col >= 128) {
|
||||||
@ -854,8 +843,8 @@ void hp64k_state::hp64k_update_floppy_irq(void)
|
|||||||
|
|
||||||
void hp64k_state::hp64k_update_drv_ctrl(void)
|
void hp64k_state::hp64k_update_drv_ctrl(void)
|
||||||
{
|
{
|
||||||
floppy_image_device *floppy0 = m_floppy0->get_device();
|
floppy_image_device *floppy0 = m_floppy[0]->get_device();
|
||||||
floppy_image_device *floppy1 = m_floppy1->get_device();
|
floppy_image_device *floppy1 = m_floppy[1]->get_device();
|
||||||
|
|
||||||
floppy0->mon_w(BIT(m_floppy_drv_ctrl , 1));
|
floppy0->mon_w(BIT(m_floppy_drv_ctrl , 1));
|
||||||
floppy1->mon_w(BIT(m_floppy_drv_ctrl , 4));
|
floppy1->mon_w(BIT(m_floppy_drv_ctrl , 4));
|
||||||
@ -881,9 +870,9 @@ void hp64k_state::hp64k_update_drv_ctrl(void)
|
|||||||
floppy_image_device *new_drive;
|
floppy_image_device *new_drive;
|
||||||
|
|
||||||
if (!BIT(m_floppy_drv_ctrl , 3)) {
|
if (!BIT(m_floppy_drv_ctrl , 3)) {
|
||||||
new_drive = m_floppy1->get_device();
|
new_drive = m_floppy[1]->get_device();
|
||||||
} else if (!BIT(m_floppy_drv_ctrl , 0)) {
|
} else if (!BIT(m_floppy_drv_ctrl , 0)) {
|
||||||
new_drive = m_floppy0->get_device();
|
new_drive = m_floppy[0]->get_device();
|
||||||
} else {
|
} else {
|
||||||
new_drive = nullptr;
|
new_drive = nullptr;
|
||||||
}
|
}
|
||||||
@ -921,10 +910,10 @@ WRITE_LINE_MEMBER(hp64k_state::hp64k_floppy1_rdy)
|
|||||||
|
|
||||||
void hp64k_state::hp64k_floppy_idx_cb(floppy_image_device *floppy , int state)
|
void hp64k_state::hp64k_floppy_idx_cb(floppy_image_device *floppy , int state)
|
||||||
{
|
{
|
||||||
if (floppy == m_floppy0->get_device()) {
|
if (floppy == m_floppy[0]->get_device()) {
|
||||||
m_ss0->a_w(!state);
|
m_ss[0]->a_w(!state);
|
||||||
} else if (floppy == m_floppy1->get_device()) {
|
} else if (floppy == m_floppy[1]->get_device()) {
|
||||||
m_ss1->a_w(!state);
|
m_ss[1]->a_w(!state);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (floppy == m_current_floppy) {
|
if (floppy == m_current_floppy) {
|
||||||
@ -934,9 +923,9 @@ void hp64k_state::hp64k_floppy_idx_cb(floppy_image_device *floppy , int state)
|
|||||||
|
|
||||||
void hp64k_state::hp64k_floppy_wpt_cb(floppy_image_device *floppy , int state)
|
void hp64k_state::hp64k_floppy_wpt_cb(floppy_image_device *floppy , int state)
|
||||||
{
|
{
|
||||||
if (floppy == m_floppy0->get_device()) {
|
if (floppy == m_floppy[0]->get_device()) {
|
||||||
logerror("floppy0_wpt %d\n" , state);
|
logerror("floppy0_wpt %d\n" , state);
|
||||||
if (m_floppy0_wpt && !state) {
|
if (m_floppy_wpt[0] && !state) {
|
||||||
BIT_SET(m_floppy_status , 2);
|
BIT_SET(m_floppy_status , 2);
|
||||||
hp64k_update_floppy_irq();
|
hp64k_update_floppy_irq();
|
||||||
}
|
}
|
||||||
@ -945,10 +934,10 @@ void hp64k_state::hp64k_floppy_wpt_cb(floppy_image_device *floppy , int state)
|
|||||||
} else {
|
} else {
|
||||||
BIT_CLR(m_floppy_status, 1);
|
BIT_CLR(m_floppy_status, 1);
|
||||||
}
|
}
|
||||||
m_floppy0_wpt = state;
|
m_floppy_wpt[0] = state;
|
||||||
} else if (floppy == m_floppy1->get_device()) {
|
} else if (floppy == m_floppy[1]->get_device()) {
|
||||||
logerror("floppy1_wpt %d\n" , state);
|
logerror("floppy1_wpt %d\n" , state);
|
||||||
if (m_floppy1_wpt && !state) {
|
if (m_floppy_wpt[1] && !state) {
|
||||||
BIT_SET(m_floppy_status , 5);
|
BIT_SET(m_floppy_status , 5);
|
||||||
hp64k_update_floppy_irq();
|
hp64k_update_floppy_irq();
|
||||||
}
|
}
|
||||||
@ -957,7 +946,7 @@ void hp64k_state::hp64k_floppy_wpt_cb(floppy_image_device *floppy , int state)
|
|||||||
} else {
|
} else {
|
||||||
BIT_CLR(m_floppy_status, 4);
|
BIT_CLR(m_floppy_status, 4);
|
||||||
}
|
}
|
||||||
m_floppy1_wpt = state;
|
m_floppy_wpt[1] = state;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1414,22 +1403,22 @@ void hp64k_state::hp64k(machine_config &config)
|
|||||||
FLOPPY_CONNECTOR(config, "fdc:0", hp64k_floppies, "525dd", floppy_image_device::default_mfm_floppy_formats, true);
|
FLOPPY_CONNECTOR(config, "fdc:0", hp64k_floppies, "525dd", floppy_image_device::default_mfm_floppy_formats, true);
|
||||||
FLOPPY_CONNECTOR(config, "fdc:1", hp64k_floppies, "525dd", floppy_image_device::default_mfm_floppy_formats, true);
|
FLOPPY_CONNECTOR(config, "fdc:1", hp64k_floppies, "525dd", floppy_image_device::default_mfm_floppy_formats, true);
|
||||||
|
|
||||||
TTL74123(config, m_ss0, 0);
|
TTL74123(config, m_ss[0], 0);
|
||||||
m_ss0->set_connection_type(TTL74123_NOT_GROUNDED_NO_DIODE);
|
m_ss[0]->set_connection_type(TTL74123_NOT_GROUNDED_NO_DIODE);
|
||||||
m_ss0->set_resistor_value(RES_K(68.1));
|
m_ss[0]->set_resistor_value(RES_K(68.1));
|
||||||
// Warning! Duration formula is not correct for LS123, actual capacitor is 10 uF
|
// Warning! Duration formula is not correct for LS123, actual capacitor is 10 uF
|
||||||
m_ss0->set_capacitor_value(CAP_U(16));
|
m_ss[0]->set_capacitor_value(CAP_U(16));
|
||||||
m_ss0->set_b_pin_value(1);
|
m_ss[0]->set_b_pin_value(1);
|
||||||
m_ss0->set_clear_pin_value(1);
|
m_ss[0]->set_clear_pin_value(1);
|
||||||
m_ss0->out_cb().set(FUNC(hp64k_state::hp64k_floppy0_rdy));
|
m_ss[0]->out_cb().set(FUNC(hp64k_state::hp64k_floppy0_rdy));
|
||||||
|
|
||||||
TTL74123(config, m_ss1, 0);
|
TTL74123(config, m_ss[1], 0);
|
||||||
m_ss1->set_connection_type(TTL74123_NOT_GROUNDED_NO_DIODE);
|
m_ss[1]->set_connection_type(TTL74123_NOT_GROUNDED_NO_DIODE);
|
||||||
m_ss1->set_resistor_value(RES_K(68.1));
|
m_ss[1]->set_resistor_value(RES_K(68.1));
|
||||||
m_ss1->set_capacitor_value(CAP_U(16));
|
m_ss[1]->set_capacitor_value(CAP_U(16));
|
||||||
m_ss1->set_b_pin_value(1);
|
m_ss[1]->set_b_pin_value(1);
|
||||||
m_ss1->set_clear_pin_value(1);
|
m_ss[1]->set_clear_pin_value(1);
|
||||||
m_ss1->out_cb().set(FUNC(hp64k_state::hp64k_floppy1_rdy));
|
m_ss[1]->out_cb().set(FUNC(hp64k_state::hp64k_floppy1_rdy));
|
||||||
|
|
||||||
SPEAKER(config, "mono").front_center();
|
SPEAKER(config, "mono").front_center();
|
||||||
BEEP(config, m_beeper, 2500).add_route(ALL_OUTPUTS, "mono", 1.00);
|
BEEP(config, m_beeper, 2500).add_route(ALL_OUTPUTS, "mono", 1.00);
|
||||||
|
@ -155,8 +155,7 @@ public:
|
|||||||
m_pic2(*this, "pic_slave"),
|
m_pic2(*this, "pic_slave"),
|
||||||
m_rtc(*this, "rtc"),
|
m_rtc(*this, "rtc"),
|
||||||
m_fdc(*this, "fdc"),
|
m_fdc(*this, "fdc"),
|
||||||
m_floppy0(*this, "fdc:0"),
|
m_floppy(*this, "fdc:%u", 0U),
|
||||||
m_floppy1(*this, "fdc:1"),
|
|
||||||
m_kb_uart(*this, "keyboard"),
|
m_kb_uart(*this, "keyboard"),
|
||||||
m_pit(*this, "pit"),
|
m_pit(*this, "pit"),
|
||||||
m_ppi(*this, "ppi"),
|
m_ppi(*this, "ppi"),
|
||||||
@ -243,8 +242,7 @@ private:
|
|||||||
required_device<pic8259_device> m_pic2;
|
required_device<pic8259_device> m_pic2;
|
||||||
required_device<mc146818_device> m_rtc;
|
required_device<mc146818_device> m_rtc;
|
||||||
required_device<fd1793_device> m_fdc;
|
required_device<fd1793_device> m_fdc;
|
||||||
required_device<floppy_connector> m_floppy0;
|
required_device_array<floppy_connector, 2> m_floppy;
|
||||||
required_device<floppy_connector> m_floppy1;
|
|
||||||
required_device<i8251_device> m_kb_uart;
|
required_device<i8251_device> m_kb_uart;
|
||||||
required_device<pit8253_device> m_pit;
|
required_device<pit8253_device> m_pit;
|
||||||
required_device<i8255_device> m_ppi;
|
required_device<i8255_device> m_ppi;
|
||||||
@ -560,12 +558,12 @@ void octopus_state::cntl_w(uint8_t data)
|
|||||||
switch(m_current_drive)
|
switch(m_current_drive)
|
||||||
{
|
{
|
||||||
case 1:
|
case 1:
|
||||||
m_fdc->set_floppy(m_floppy0->get_device());
|
m_fdc->set_floppy(m_floppy[0]->get_device());
|
||||||
m_floppy0->get_device()->mon_w(0);
|
m_floppy[0]->get_device()->mon_w(0);
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
m_fdc->set_floppy(m_floppy1->get_device());
|
m_fdc->set_floppy(m_floppy[1]->get_device());
|
||||||
m_floppy1->get_device()->mon_w(0);
|
m_floppy[1]->get_device()->mon_w(0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
logerror("Selected floppy drive %i (%02x)\n",m_current_drive,data);
|
logerror("Selected floppy drive %i (%02x)\n",m_current_drive,data);
|
||||||
@ -586,10 +584,10 @@ void octopus_state::gpo_w(uint8_t data)
|
|||||||
switch(m_current_drive)
|
switch(m_current_drive)
|
||||||
{
|
{
|
||||||
case 1:
|
case 1:
|
||||||
m_floppy0->get_device()->ss_w((data & 0x04) >> 2);
|
m_floppy[0]->get_device()->ss_w((data & 0x04) >> 2);
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
m_floppy1->get_device()->ss_w((data & 0x04) >> 2);
|
m_floppy[1]->get_device()->ss_w((data & 0x04) >> 2);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
logerror("Attempted to set side on unknown drive %i\n",m_current_drive);
|
logerror("Attempted to set side on unknown drive %i\n",m_current_drive);
|
||||||
@ -967,8 +965,8 @@ void octopus_state::octopus(machine_config &config)
|
|||||||
FD1793(config, m_fdc, 16_MHz_XTAL / 8);
|
FD1793(config, m_fdc, 16_MHz_XTAL / 8);
|
||||||
m_fdc->intrq_wr_callback().set(m_pic1, FUNC(pic8259_device::ir5_w));
|
m_fdc->intrq_wr_callback().set(m_pic1, FUNC(pic8259_device::ir5_w));
|
||||||
m_fdc->drq_wr_callback().set(m_dma2, FUNC(am9517a_device::dreq1_w));
|
m_fdc->drq_wr_callback().set(m_dma2, FUNC(am9517a_device::dreq1_w));
|
||||||
FLOPPY_CONNECTOR(config, "fdc:0", octopus_floppies, "525dd", floppy_image_device::default_mfm_floppy_formats);
|
FLOPPY_CONNECTOR(config, m_floppy[0], octopus_floppies, "525dd", floppy_image_device::default_mfm_floppy_formats);
|
||||||
FLOPPY_CONNECTOR(config, "fdc:1", octopus_floppies, "525dd", floppy_image_device::default_mfm_floppy_formats);
|
FLOPPY_CONNECTOR(config, m_floppy[1], octopus_floppies, "525dd", floppy_image_device::default_mfm_floppy_formats);
|
||||||
SOFTWARE_LIST(config, "fd_list").set_original("octopus");
|
SOFTWARE_LIST(config, "fd_list").set_original("octopus");
|
||||||
|
|
||||||
PIT8253(config, m_pit, 0);
|
PIT8253(config, m_pit, 0);
|
||||||
|
@ -364,9 +364,9 @@ void abc1600_state::fw0_w(uint8_t data)
|
|||||||
// drive select
|
// drive select
|
||||||
floppy_image_device *floppy = nullptr;
|
floppy_image_device *floppy = nullptr;
|
||||||
|
|
||||||
if (BIT(data, 0)) floppy = m_floppy0->get_device();
|
for (int n = 0; n < 3; n++)
|
||||||
if (BIT(data, 1)) floppy = m_floppy1->get_device();
|
if (BIT(data, n))
|
||||||
if (BIT(data, 2)) floppy = m_floppy2->get_device();
|
floppy = m_floppy[n]->get_device();
|
||||||
|
|
||||||
m_fdc->set_floppy(floppy);
|
m_fdc->set_floppy(floppy);
|
||||||
|
|
||||||
@ -1025,9 +1025,9 @@ void abc1600_state::abc1600(machine_config &config)
|
|||||||
m_fdc->intrq_wr_callback().set(m_cio, FUNC(z8536_device::pb7_w));
|
m_fdc->intrq_wr_callback().set(m_cio, FUNC(z8536_device::pb7_w));
|
||||||
m_fdc->drq_wr_callback().set(FUNC(abc1600_state::update_drdy0));
|
m_fdc->drq_wr_callback().set(FUNC(abc1600_state::update_drdy0));
|
||||||
|
|
||||||
FLOPPY_CONNECTOR(config, SAB1797_02P_TAG":0", abc1600_floppies, nullptr, abc1600_state::floppy_formats).enable_sound(true);
|
FLOPPY_CONNECTOR(config, m_floppy[0], abc1600_floppies, nullptr, abc1600_state::floppy_formats).enable_sound(true);
|
||||||
FLOPPY_CONNECTOR(config, SAB1797_02P_TAG":1", abc1600_floppies, nullptr, abc1600_state::floppy_formats).enable_sound(true);
|
FLOPPY_CONNECTOR(config, m_floppy[1], abc1600_floppies, nullptr, abc1600_state::floppy_formats).enable_sound(true);
|
||||||
FLOPPY_CONNECTOR(config, SAB1797_02P_TAG":2", abc1600_floppies, "525qd", abc1600_state::floppy_formats).enable_sound(true);
|
FLOPPY_CONNECTOR(config, m_floppy[2], abc1600_floppies, "525qd", abc1600_state::floppy_formats).enable_sound(true);
|
||||||
|
|
||||||
ABCBUS_SLOT(config, m_bus0i, 64_MHz_XTAL / 16, abc1600bus_cards, nullptr);
|
ABCBUS_SLOT(config, m_bus0i, 64_MHz_XTAL / 16, abc1600bus_cards, nullptr);
|
||||||
m_bus0i->irq_callback().set(m_cio, FUNC(z8536_device::pa7_w));
|
m_bus0i->irq_callback().set(m_cio, FUNC(z8536_device::pa7_w));
|
||||||
|
@ -74,9 +74,7 @@ public:
|
|||||||
m_rtc(*this, E050_C16PC_TAG),
|
m_rtc(*this, E050_C16PC_TAG),
|
||||||
m_nvram(*this, NMC9306_TAG),
|
m_nvram(*this, NMC9306_TAG),
|
||||||
m_ram(*this, RAM_TAG),
|
m_ram(*this, RAM_TAG),
|
||||||
m_floppy0(*this, SAB1797_02P_TAG":0"),
|
m_floppy(*this, SAB1797_02P_TAG":%u", 0U),
|
||||||
m_floppy1(*this, SAB1797_02P_TAG":1"),
|
|
||||||
m_floppy2(*this, SAB1797_02P_TAG":2"),
|
|
||||||
m_bus0i(*this, BUS0I_TAG),
|
m_bus0i(*this, BUS0I_TAG),
|
||||||
m_bus0x(*this, BUS0X_TAG),
|
m_bus0x(*this, BUS0X_TAG),
|
||||||
m_bus1(*this, BUS1_TAG),
|
m_bus1(*this, BUS1_TAG),
|
||||||
@ -101,9 +99,7 @@ private:
|
|||||||
required_device<e0516_device> m_rtc;
|
required_device<e0516_device> m_rtc;
|
||||||
required_device<nmc9306_device> m_nvram;
|
required_device<nmc9306_device> m_nvram;
|
||||||
required_device<ram_device> m_ram;
|
required_device<ram_device> m_ram;
|
||||||
required_device<floppy_connector> m_floppy0;
|
required_device_array<floppy_connector, 3> m_floppy;
|
||||||
required_device<floppy_connector> m_floppy1;
|
|
||||||
required_device<floppy_connector> m_floppy2;
|
|
||||||
required_device<abcbus_slot_device> m_bus0i;
|
required_device<abcbus_slot_device> m_bus0i;
|
||||||
required_device<abcbus_slot_device> m_bus0x;
|
required_device<abcbus_slot_device> m_bus0x;
|
||||||
required_device<abcbus_slot_device> m_bus1;
|
required_device<abcbus_slot_device> m_bus1;
|
||||||
|
@ -50,13 +50,9 @@ public:
|
|||||||
m_dmac(*this, MC68450_TAG),
|
m_dmac(*this, MC68450_TAG),
|
||||||
m_cio(*this, Z8536A_TAG),
|
m_cio(*this, Z8536A_TAG),
|
||||||
m_nvram(*this, NMC9306_TAG),
|
m_nvram(*this, NMC9306_TAG),
|
||||||
m_scc0(*this, Z8530A_0_TAG),
|
m_scc(*this, {Z8530A_0_TAG, Z8530A_1_TAG, Z8530A_2_TAG}),
|
||||||
m_scc1(*this, Z8530A_1_TAG),
|
|
||||||
m_scc2(*this, Z8530A_2_TAG),
|
|
||||||
m_fdc(*this, FD1797_TAG),
|
m_fdc(*this, FD1797_TAG),
|
||||||
m_floppy0(*this, FD1797_TAG":0"),
|
m_floppy(*this, FD1797_TAG":%u", 0U),
|
||||||
m_floppy1(*this, FD1797_TAG":1"),
|
|
||||||
m_floppy2(*this, FD1797_TAG":2"),
|
|
||||||
m_sasi(*this, "sasi:7:scsicb")
|
m_sasi(*this, "sasi:7:scsicb")
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
@ -68,13 +64,9 @@ private:
|
|||||||
required_device<hd63450_device> m_dmac;
|
required_device<hd63450_device> m_dmac;
|
||||||
required_device<z8536_device> m_cio;
|
required_device<z8536_device> m_cio;
|
||||||
required_device<nmc9306_device> m_nvram;
|
required_device<nmc9306_device> m_nvram;
|
||||||
required_device<scc8530_device> m_scc0;
|
required_device_array<scc8530_device, 3> m_scc;
|
||||||
required_device<scc8530_device> m_scc1;
|
|
||||||
required_device<scc8530_device> m_scc2;
|
|
||||||
required_device<fd1797_device> m_fdc;
|
required_device<fd1797_device> m_fdc;
|
||||||
required_device<floppy_connector> m_floppy0;
|
required_device_array<floppy_connector, 3> m_floppy;
|
||||||
required_device<floppy_connector> m_floppy1;
|
|
||||||
required_device<floppy_connector> m_floppy2;
|
|
||||||
required_device<nscsi_callback_device> m_sasi;
|
required_device<nscsi_callback_device> m_sasi;
|
||||||
|
|
||||||
virtual void machine_reset() override;
|
virtual void machine_reset() override;
|
||||||
@ -129,15 +121,15 @@ void x37_state::x37(machine_config &config)
|
|||||||
NMC9306(config, m_nvram, 0);
|
NMC9306(config, m_nvram, 0);
|
||||||
E0516(config, E050_16_TAG, 32'768);
|
E0516(config, E050_16_TAG, 32'768);
|
||||||
|
|
||||||
SCC8530N(config, m_scc0, 6000000);
|
SCC8530N(config, m_scc[0], 6000000);
|
||||||
SCC8530N(config, m_scc1, 6000000);
|
SCC8530N(config, m_scc[1], 6000000);
|
||||||
SCC8530N(config, m_scc2, 6000000);
|
SCC8530N(config, m_scc[2], 6000000);
|
||||||
|
|
||||||
FD1797(config, m_fdc, 16'000'000/16);
|
FD1797(config, m_fdc, 16'000'000/16);
|
||||||
|
|
||||||
FLOPPY_CONNECTOR(config, FD1797_TAG":0", x37_floppies, nullptr, x37_state::floppy_formats).enable_sound(true);
|
FLOPPY_CONNECTOR(config, m_floppy[0], x37_floppies, nullptr, x37_state::floppy_formats).enable_sound(true);
|
||||||
FLOPPY_CONNECTOR(config, FD1797_TAG":1", x37_floppies, nullptr, x37_state::floppy_formats).enable_sound(true);
|
FLOPPY_CONNECTOR(config, m_floppy[1], x37_floppies, nullptr, x37_state::floppy_formats).enable_sound(true);
|
||||||
FLOPPY_CONNECTOR(config, FD1797_TAG":2", x37_floppies, "525qd", x37_state::floppy_formats).enable_sound(true);
|
FLOPPY_CONNECTOR(config, m_floppy[2], x37_floppies, "525qd", x37_state::floppy_formats).enable_sound(true);
|
||||||
|
|
||||||
NSCSI_BUS(config, "sasi");
|
NSCSI_BUS(config, "sasi");
|
||||||
NSCSI_CONNECTOR(config, "sasi:0", default_scsi_devices, "s1410");
|
NSCSI_CONNECTOR(config, "sasi:0", default_scsi_devices, "s1410");
|
||||||
|
@ -169,10 +169,7 @@ public:
|
|||||||
, m_printer(*this, "printer")
|
, m_printer(*this, "printer")
|
||||||
, m_acia_prn(*this, "acia_prn")
|
, m_acia_prn(*this, "acia_prn")
|
||||||
, m_fdc(*this, "fdc")
|
, m_fdc(*this, "fdc")
|
||||||
, m_floppy0(*this, "floppy0")
|
, m_floppy(*this, "floppy%u", 0U)
|
||||||
, m_floppy1(*this, "floppy1")
|
|
||||||
, m_floppy2(*this, "floppy2")
|
|
||||||
, m_floppy3(*this, "floppy3")
|
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
void exorciser(machine_config &config);
|
void exorciser(machine_config &config);
|
||||||
@ -210,6 +207,7 @@ private:
|
|||||||
required_device<printer_image_device> m_printer;
|
required_device<printer_image_device> m_printer;
|
||||||
required_device<acia6850_device> m_acia_prn;
|
required_device<acia6850_device> m_acia_prn;
|
||||||
required_device<m68sfdc_device> m_fdc;
|
required_device<m68sfdc_device> m_fdc;
|
||||||
|
required_device_array<floppy_connector, 4> m_floppy;
|
||||||
|
|
||||||
// RS232 bit rate generator clocks
|
// RS232 bit rate generator clocks
|
||||||
DECLARE_WRITE_LINE_MEMBER(write_f1_clock);
|
DECLARE_WRITE_LINE_MEMBER(write_f1_clock);
|
||||||
@ -243,10 +241,6 @@ private:
|
|||||||
static void exorciser_rs232_devices(device_slot_interface &device);
|
static void exorciser_rs232_devices(device_slot_interface &device);
|
||||||
|
|
||||||
static void floppy_formats(format_registration &fr);
|
static void floppy_formats(format_registration &fr);
|
||||||
required_device<floppy_connector> m_floppy0;
|
|
||||||
required_device<floppy_connector> m_floppy1;
|
|
||||||
required_device<floppy_connector> m_floppy2;
|
|
||||||
required_device<floppy_connector> m_floppy3;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
void exorciser_state::dbg_map(address_map &map)
|
void exorciser_state::dbg_map(address_map &map)
|
||||||
@ -601,7 +595,7 @@ void exorciser_state::machine_reset()
|
|||||||
|
|
||||||
m_restart_count = 0;
|
m_restart_count = 0;
|
||||||
|
|
||||||
m_fdc->set_floppies_4(m_floppy0, m_floppy1, m_floppy2, m_floppy3);
|
m_fdc->set_floppies_4(m_floppy[0], m_floppy[1], m_floppy[2], m_floppy[3]);
|
||||||
|
|
||||||
m_irq = 1;
|
m_irq = 1;
|
||||||
m_stop_address = 0x0000;
|
m_stop_address = 0x0000;
|
||||||
@ -710,11 +704,8 @@ void exorciser_state::exorciser(machine_config &config)
|
|||||||
m_fdc->irq_handler().set(m_mainirq, FUNC(input_merger_device::in_w<0>));
|
m_fdc->irq_handler().set(m_mainirq, FUNC(input_merger_device::in_w<0>));
|
||||||
m_fdc->nmi_handler().set(m_mainnmi, FUNC(input_merger_device::in_w<3>));
|
m_fdc->nmi_handler().set(m_mainnmi, FUNC(input_merger_device::in_w<3>));
|
||||||
|
|
||||||
FLOPPY_CONNECTOR(config, m_floppy0, mdos_floppies, "8dssd", exorciser_state::floppy_formats).enable_sound(true);
|
for (auto &floppy : m_floppy)
|
||||||
FLOPPY_CONNECTOR(config, m_floppy1, mdos_floppies, "8dssd", exorciser_state::floppy_formats).enable_sound(true);
|
FLOPPY_CONNECTOR(config, floppy, mdos_floppies, "8dssd", exorciser_state::floppy_formats).enable_sound(true);
|
||||||
FLOPPY_CONNECTOR(config, m_floppy2, mdos_floppies, "8dssd", exorciser_state::floppy_formats).enable_sound(true);
|
|
||||||
FLOPPY_CONNECTOR(config, m_floppy3, mdos_floppies, "8dssd", exorciser_state::floppy_formats).enable_sound(true);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ROM definition */
|
/* ROM definition */
|
||||||
|
@ -216,8 +216,8 @@ WRITE_LINE_MEMBER( mm1_state::llen_w )
|
|||||||
WRITE_LINE_MEMBER( mm1_state::motor_on_w )
|
WRITE_LINE_MEMBER( mm1_state::motor_on_w )
|
||||||
{
|
{
|
||||||
LOG("MOTOR %u\n", state);
|
LOG("MOTOR %u\n", state);
|
||||||
m_floppy0->mon_w(!state);
|
m_floppy[0]->mon_w(!state);
|
||||||
m_floppy1->mon_w(!state);
|
m_floppy[1]->mon_w(!state);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -52,8 +52,7 @@ public:
|
|||||||
m_mpsc(*this, UPD7201_TAG),
|
m_mpsc(*this, UPD7201_TAG),
|
||||||
m_hgdc(*this, UPD7220_TAG),
|
m_hgdc(*this, UPD7220_TAG),
|
||||||
m_palette(*this, "palette"),
|
m_palette(*this, "palette"),
|
||||||
m_floppy0(*this, UPD765_TAG ":0:525qd"),
|
m_floppy(*this, UPD765_TAG ":%u:525qd", 0U),
|
||||||
m_floppy1(*this, UPD765_TAG ":1:525qd"),
|
|
||||||
m_rs232a(*this, RS232_A_TAG),
|
m_rs232a(*this, RS232_A_TAG),
|
||||||
m_rs232b(*this, RS232_B_TAG),
|
m_rs232b(*this, RS232_B_TAG),
|
||||||
m_rs232c(*this, RS232_C_TAG),
|
m_rs232c(*this, RS232_C_TAG),
|
||||||
@ -89,8 +88,7 @@ private:
|
|||||||
required_device<upd7201_device> m_mpsc;
|
required_device<upd7201_device> m_mpsc;
|
||||||
required_device<upd7220_device> m_hgdc;
|
required_device<upd7220_device> m_hgdc;
|
||||||
required_device<palette_device> m_palette;
|
required_device<palette_device> m_palette;
|
||||||
required_device<floppy_image_device> m_floppy0;
|
required_device_array<floppy_image_device, 2> m_floppy;
|
||||||
required_device<floppy_image_device> m_floppy1;
|
|
||||||
required_device<rs232_port_device> m_rs232a;
|
required_device<rs232_port_device> m_rs232a;
|
||||||
required_device<rs232_port_device> m_rs232b;
|
required_device<rs232_port_device> m_rs232b;
|
||||||
required_device<rs232_port_device> m_rs232c;
|
required_device<rs232_port_device> m_rs232c;
|
||||||
|
@ -141,8 +141,7 @@ public:
|
|||||||
m_acia(*this, "acia"),
|
m_acia(*this, "acia"),
|
||||||
m_fdc(*this, "mb8877"),
|
m_fdc(*this, "mb8877"),
|
||||||
m_ieee(*this, IEEE488_TAG),
|
m_ieee(*this, IEEE488_TAG),
|
||||||
m_floppy0(*this, "mb8877:0"),
|
m_floppy(*this, "mb8877:%u", 0U),
|
||||||
m_floppy1(*this, "mb8877:1"),
|
|
||||||
m_keyb_row(*this, { "ROW0", "ROW1", "ROW3", "ROW4", "ROW5", "ROW2", "ROW6", "ROW7" }),
|
m_keyb_row(*this, { "ROW0", "ROW1", "ROW3", "ROW4", "ROW5", "ROW2", "ROW6", "ROW7" }),
|
||||||
m_btn_reset(*this, "RESET"),
|
m_btn_reset(*this, "RESET"),
|
||||||
m_cnf(*this, "CNF"),
|
m_cnf(*this, "CNF"),
|
||||||
@ -218,8 +217,7 @@ private:
|
|||||||
required_device<acia6850_device> m_acia;
|
required_device<acia6850_device> m_acia;
|
||||||
required_device<mb8877_device> m_fdc;
|
required_device<mb8877_device> m_fdc;
|
||||||
required_device<ieee488_device> m_ieee;
|
required_device<ieee488_device> m_ieee;
|
||||||
required_device<floppy_connector> m_floppy0;
|
required_device_array<floppy_connector, 2> m_floppy;
|
||||||
required_device<floppy_connector> m_floppy1;
|
|
||||||
|
|
||||||
// user inputs
|
// user inputs
|
||||||
required_ioport_array<8> m_keyb_row;
|
required_ioport_array<8> m_keyb_row;
|
||||||
@ -499,13 +497,13 @@ void osborne1_state::video_pia_port_b_w(u8 data)
|
|||||||
|
|
||||||
if (BIT(data, 6))
|
if (BIT(data, 6))
|
||||||
{
|
{
|
||||||
m_fdc->set_floppy(m_floppy0->get_device());
|
m_fdc->set_floppy(m_floppy[0]->get_device());
|
||||||
m_floppy0->get_device()->mon_w(0);
|
m_floppy[0]->get_device()->mon_w(0);
|
||||||
}
|
}
|
||||||
else if (BIT(data, 7))
|
else if (BIT(data, 7))
|
||||||
{
|
{
|
||||||
m_fdc->set_floppy(m_floppy1->get_device());
|
m_fdc->set_floppy(m_floppy[1]->get_device());
|
||||||
m_floppy1->get_device()->mon_w(0);
|
m_floppy[1]->get_device()->mon_w(0);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -1018,8 +1016,8 @@ void osborne1_state::osborne1_base(machine_config &config)
|
|||||||
|
|
||||||
MB8877(config, m_fdc, MAIN_CLOCK/16);
|
MB8877(config, m_fdc, MAIN_CLOCK/16);
|
||||||
m_fdc->set_force_ready(true);
|
m_fdc->set_force_ready(true);
|
||||||
FLOPPY_CONNECTOR(config, m_floppy0, osborne1_floppies, "525ssdd", floppy_image_device::default_mfm_floppy_formats);
|
FLOPPY_CONNECTOR(config, m_floppy[0], osborne1_floppies, "525ssdd", floppy_image_device::default_mfm_floppy_formats);
|
||||||
FLOPPY_CONNECTOR(config, m_floppy1, osborne1_floppies, "525ssdd", floppy_image_device::default_mfm_floppy_formats);
|
FLOPPY_CONNECTOR(config, m_floppy[1], osborne1_floppies, "525ssdd", floppy_image_device::default_mfm_floppy_formats);
|
||||||
|
|
||||||
SOFTWARE_LIST(config, "flop_list").set_original("osborne1");
|
SOFTWARE_LIST(config, "flop_list").set_original("osborne1");
|
||||||
}
|
}
|
||||||
|
@ -93,8 +93,7 @@ public:
|
|||||||
, m_ieee488(*this, IEEE488_TAG)
|
, m_ieee488(*this, IEEE488_TAG)
|
||||||
, m_palette(*this, "palette")
|
, m_palette(*this, "palette")
|
||||||
, m_ram(*this, RAM_TAG)
|
, m_ram(*this, RAM_TAG)
|
||||||
, m_floppy0(*this, FDC1797_TAG":0")
|
, m_floppy(*this, FDC1797_TAG":%u", 0U)
|
||||||
, m_floppy1(*this, FDC1797_TAG":1")
|
|
||||||
, m_rs232(*this, "rs232")
|
, m_rs232(*this, "rs232")
|
||||||
, m_rom(*this, Z8400A_TAG)
|
, m_rom(*this, Z8400A_TAG)
|
||||||
, m_sync_rom(*this, "video")
|
, m_sync_rom(*this, "video")
|
||||||
@ -145,8 +144,7 @@ private:
|
|||||||
required_device<ieee488_device> m_ieee488;
|
required_device<ieee488_device> m_ieee488;
|
||||||
required_device<palette_device> m_palette;
|
required_device<palette_device> m_palette;
|
||||||
required_device<ram_device> m_ram;
|
required_device<ram_device> m_ram;
|
||||||
required_device<floppy_connector> m_floppy0;
|
required_device_array<floppy_connector, 2> m_floppy;
|
||||||
required_device<floppy_connector> m_floppy1;
|
|
||||||
required_device<rs232_port_device> m_rs232;
|
required_device<rs232_port_device> m_rs232;
|
||||||
required_region_ptr<uint8_t> m_rom;
|
required_region_ptr<uint8_t> m_rom;
|
||||||
required_region_ptr<uint8_t> m_sync_rom;
|
required_region_ptr<uint8_t> m_sync_rom;
|
||||||
@ -609,8 +607,8 @@ void vixen_state::i8155_pc_w(uint8_t data)
|
|||||||
// drive select
|
// drive select
|
||||||
floppy_image_device *floppy = nullptr;
|
floppy_image_device *floppy = nullptr;
|
||||||
|
|
||||||
if (!BIT(data, 0)) floppy = m_floppy0->get_device();
|
if (!BIT(data, 0)) floppy = m_floppy[0]->get_device();
|
||||||
if (!BIT(data, 1)) floppy = m_floppy1->get_device();
|
if (!BIT(data, 1)) floppy = m_floppy[1]->get_device();
|
||||||
|
|
||||||
m_fdc->set_floppy(floppy);
|
m_fdc->set_floppy(floppy);
|
||||||
|
|
||||||
@ -861,8 +859,8 @@ void vixen_state::vixen(machine_config &config)
|
|||||||
|
|
||||||
FD1797(config, m_fdc, 23.9616_MHz_XTAL / 24);
|
FD1797(config, m_fdc, 23.9616_MHz_XTAL / 24);
|
||||||
m_fdc->intrq_wr_callback().set(FUNC(vixen_state::fdc_intrq_w));
|
m_fdc->intrq_wr_callback().set(FUNC(vixen_state::fdc_intrq_w));
|
||||||
FLOPPY_CONNECTOR(config, FDC1797_TAG":0", vixen_floppies, "525dd", floppy_image_device::default_mfm_floppy_formats).enable_sound(true);
|
FLOPPY_CONNECTOR(config, m_floppy[0], vixen_floppies, "525dd", floppy_image_device::default_mfm_floppy_formats).enable_sound(true);
|
||||||
FLOPPY_CONNECTOR(config, FDC1797_TAG":1", vixen_floppies, "525dd", floppy_image_device::default_mfm_floppy_formats).enable_sound(true);
|
FLOPPY_CONNECTOR(config, m_floppy[1], vixen_floppies, "525dd", floppy_image_device::default_mfm_floppy_formats).enable_sound(true);
|
||||||
IEEE488(config, m_ieee488);
|
IEEE488(config, m_ieee488);
|
||||||
m_ieee488->srq_callback().set(FUNC(vixen_state::srq_w));
|
m_ieee488->srq_callback().set(FUNC(vixen_state::srq_w));
|
||||||
m_ieee488->atn_callback().set(FUNC(vixen_state::atn_w));
|
m_ieee488->atn_callback().set(FUNC(vixen_state::atn_w));
|
||||||
|
@ -711,8 +711,8 @@ void c1pmf_state::machine_start()
|
|||||||
c1p_state::machine_start();
|
c1p_state::machine_start();
|
||||||
|
|
||||||
// drive select logic missing
|
// drive select logic missing
|
||||||
if (m_floppy0->get_device())
|
if (m_floppy[0]->get_device())
|
||||||
m_floppy0->get_device()->setup_index_pulse_cb(floppy_image_device::index_pulse_cb(&c1pmf_state::floppy_index_callback, this));
|
m_floppy[0]->get_device()->setup_index_pulse_cb(floppy_image_device::index_pulse_cb(&c1pmf_state::floppy_index_callback, this));
|
||||||
}
|
}
|
||||||
|
|
||||||
// disk format: 1 head, 36 tracks (? - manual displays a directory listing with 40 tracks),
|
// disk format: 1 head, 36 tracks (? - manual displays a directory listing with 40 tracks),
|
||||||
@ -869,8 +869,8 @@ void c1pmf_state::c1pmf(machine_config &config)
|
|||||||
|
|
||||||
CLOCK(config, "floppy_clock", XTAL(4'000'000)/8).signal_handler().set("acia_1", FUNC(acia6850_device::write_txc)); // 250 kHz
|
CLOCK(config, "floppy_clock", XTAL(4'000'000)/8).signal_handler().set("acia_1", FUNC(acia6850_device::write_txc)); // 250 kHz
|
||||||
|
|
||||||
FLOPPY_CONNECTOR(config, "floppy0", osi_floppies, "ssdd", floppy_image_device::default_mfm_floppy_formats);
|
FLOPPY_CONNECTOR(config, m_floppy[0], osi_floppies, "ssdd", floppy_image_device::default_mfm_floppy_formats);
|
||||||
FLOPPY_CONNECTOR(config, "floppy1", osi_floppies, nullptr, floppy_image_device::default_mfm_floppy_formats);
|
FLOPPY_CONNECTOR(config, m_floppy[1], osi_floppies, nullptr, floppy_image_device::default_mfm_floppy_formats);
|
||||||
|
|
||||||
/* internal ram */
|
/* internal ram */
|
||||||
m_ram->set_default_size("20K");
|
m_ram->set_default_size("20K");
|
||||||
|
@ -121,8 +121,7 @@ class c1pmf_state : public c1p_state
|
|||||||
public:
|
public:
|
||||||
c1pmf_state(const machine_config &mconfig, device_type type, const char *tag)
|
c1pmf_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||||
: c1p_state(mconfig, type, tag)
|
: c1p_state(mconfig, type, tag)
|
||||||
, m_floppy0(*this, "floppy0")
|
, m_floppy(*this, "floppy%u", 0U)
|
||||||
, m_floppy1(*this, "floppy1")
|
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
void c1pmf(machine_config &config);
|
void c1pmf(machine_config &config);
|
||||||
@ -138,8 +137,7 @@ protected:
|
|||||||
void c1pmf_mem(address_map &map);
|
void c1pmf_mem(address_map &map);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
required_device<floppy_connector> m_floppy0;
|
required_device_array<floppy_connector, 2> m_floppy;
|
||||||
required_device<floppy_connector> m_floppy1;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class uk101_state : public sb2m600_state
|
class uk101_state : public sb2m600_state
|
||||||
|
@ -52,10 +52,7 @@ public:
|
|||||||
, m_cass(*this, "cassette")
|
, m_cass(*this, "cassette")
|
||||||
, m_beep(*this, "beeper")
|
, m_beep(*this, "beeper")
|
||||||
, m_fdc(*this, "upd765a")
|
, m_fdc(*this, "upd765a")
|
||||||
, m_floppy0(*this, "upd765a:0")
|
, m_floppy(*this, "upd765a:%u", 0U)
|
||||||
, m_floppy1(*this, "upd765a:1")
|
|
||||||
, m_floppy2(*this, "upd765a:2")
|
|
||||||
, m_floppy3(*this, "upd765a:3")
|
|
||||||
, m_video_ram(*this, "video_ram")
|
, m_video_ram(*this, "video_ram")
|
||||||
, m_ram(*this, RAM_TAG)
|
, m_ram(*this, RAM_TAG)
|
||||||
, m_gfxdecode(*this, "gfxdecode")
|
, m_gfxdecode(*this, "gfxdecode")
|
||||||
@ -101,10 +98,7 @@ private:
|
|||||||
required_device<cassette_image_device> m_cass;
|
required_device<cassette_image_device> m_cass;
|
||||||
required_device<beep_device> m_beep;
|
required_device<beep_device> m_beep;
|
||||||
required_device<upd765a_device> m_fdc;
|
required_device<upd765a_device> m_fdc;
|
||||||
required_device<floppy_connector> m_floppy0;
|
required_device_array<floppy_connector, 4> m_floppy;
|
||||||
required_device<floppy_connector> m_floppy1;
|
|
||||||
required_device<floppy_connector> m_floppy2;
|
|
||||||
required_device<floppy_connector> m_floppy3;
|
|
||||||
required_shared_ptr<uint16_t> m_video_ram;
|
required_shared_ptr<uint16_t> m_video_ram;
|
||||||
required_device<ram_device> m_ram;
|
required_device<ram_device> m_ram;
|
||||||
required_device<gfxdecode_device> m_gfxdecode;
|
required_device<gfxdecode_device> m_gfxdecode;
|
||||||
@ -370,10 +364,8 @@ void a5105_state::a5105_memsel_w(uint8_t data)
|
|||||||
|
|
||||||
void a5105_state::a5105_upd765_w(uint8_t data)
|
void a5105_state::a5105_upd765_w(uint8_t data)
|
||||||
{
|
{
|
||||||
m_floppy0->get_device()->mon_w(!BIT(data,0));
|
for (int n = 0; n < 4; n++)
|
||||||
m_floppy1->get_device()->mon_w(!BIT(data,1));
|
m_floppy[n]->get_device()->mon_w(!BIT(data,n));
|
||||||
m_floppy2->get_device()->mon_w(!BIT(data,2));
|
|
||||||
m_floppy3->get_device()->mon_w(!BIT(data,3));
|
|
||||||
|
|
||||||
m_fdc->tc_w(BIT(data, 4));
|
m_fdc->tc_w(BIT(data, 4));
|
||||||
}
|
}
|
||||||
|
@ -31,10 +31,7 @@ beta_disk_device::beta_disk_device(const machine_config &mconfig, const char *ta
|
|||||||
: device_t(mconfig, BETA_DISK, tag, owner, clock)
|
: device_t(mconfig, BETA_DISK, tag, owner, clock)
|
||||||
, m_betadisk_active(0)
|
, m_betadisk_active(0)
|
||||||
, m_wd179x(*this, "wd179x")
|
, m_wd179x(*this, "wd179x")
|
||||||
, m_floppy0(*this, "wd179x:0")
|
, m_floppy(*this, "wd179x:%u", 0U)
|
||||||
, m_floppy1(*this, "wd179x:1")
|
|
||||||
, m_floppy2(*this, "wd179x:2")
|
|
||||||
, m_floppy3(*this, "wd179x:3")
|
|
||||||
, m_control(0)
|
, m_control(0)
|
||||||
, m_motor_active(false)
|
, m_motor_active(false)
|
||||||
{
|
{
|
||||||
@ -127,8 +124,7 @@ void beta_disk_device::param_w(uint8_t data)
|
|||||||
{
|
{
|
||||||
if (m_betadisk_active == 1)
|
if (m_betadisk_active == 1)
|
||||||
{
|
{
|
||||||
floppy_connector* connectors[] = { m_floppy0, m_floppy1, m_floppy2, m_floppy3 };
|
floppy_image_device* floppy = m_floppy[data & 3]->get_device();
|
||||||
floppy_image_device* floppy = connectors[data & 3]->get_device();
|
|
||||||
|
|
||||||
m_control = data;
|
m_control = data;
|
||||||
m_wd179x->set_floppy(floppy);
|
m_wd179x->set_floppy(floppy);
|
||||||
@ -181,13 +177,12 @@ void beta_disk_device::fdc_hld_w(int state)
|
|||||||
|
|
||||||
void beta_disk_device::motors_control()
|
void beta_disk_device::motors_control()
|
||||||
{
|
{
|
||||||
floppy_connector* connectors[] = { m_floppy0, m_floppy1, m_floppy2, m_floppy3 };
|
|
||||||
for (int i = 0; i < 4; i++)
|
for (int i = 0; i < 4; i++)
|
||||||
{
|
{
|
||||||
if (m_motor_active && (m_control & 3) == i)
|
if (m_motor_active && (m_control & 3) == i)
|
||||||
connectors[i]->get_device()->mon_w(CLEAR_LINE);
|
m_floppy[i]->get_device()->mon_w(CLEAR_LINE);
|
||||||
else
|
else
|
||||||
connectors[i]->get_device()->mon_w(ASSERT_LINE);
|
m_floppy[i]->get_device()->mon_w(ASSERT_LINE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -293,10 +288,8 @@ void beta_disk_device::device_add_mconfig(machine_config &config)
|
|||||||
{
|
{
|
||||||
KR1818VG93(config, m_wd179x, 8_MHz_XTAL / 8);
|
KR1818VG93(config, m_wd179x, 8_MHz_XTAL / 8);
|
||||||
m_wd179x->hld_wr_callback().set(FUNC(beta_disk_device::fdc_hld_w));
|
m_wd179x->hld_wr_callback().set(FUNC(beta_disk_device::fdc_hld_w));
|
||||||
FLOPPY_CONNECTOR(config, m_floppy0, beta_disk_floppies, "525qd", beta_disk_device::floppy_formats).enable_sound(true);
|
for (auto &floppy : m_floppy)
|
||||||
FLOPPY_CONNECTOR(config, m_floppy1, beta_disk_floppies, "525qd", beta_disk_device::floppy_formats).enable_sound(true);
|
FLOPPY_CONNECTOR(config, floppy, beta_disk_floppies, "525qd", beta_disk_device::floppy_formats).enable_sound(true);
|
||||||
FLOPPY_CONNECTOR(config, m_floppy2, beta_disk_floppies, "525qd", beta_disk_device::floppy_formats).enable_sound(true);
|
|
||||||
FLOPPY_CONNECTOR(config, m_floppy3, beta_disk_floppies, "525qd", beta_disk_device::floppy_formats).enable_sound(true);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------
|
//-------------------------------------------------
|
||||||
|
@ -52,10 +52,7 @@ private:
|
|||||||
uint8_t m_betadisk_active;
|
uint8_t m_betadisk_active;
|
||||||
|
|
||||||
required_device<kr1818vg93_device> m_wd179x;
|
required_device<kr1818vg93_device> m_wd179x;
|
||||||
required_device<floppy_connector> m_floppy0;
|
required_device_array<floppy_connector, 4> m_floppy;
|
||||||
required_device<floppy_connector> m_floppy1;
|
|
||||||
required_device<floppy_connector> m_floppy2;
|
|
||||||
required_device<floppy_connector> m_floppy3;
|
|
||||||
void fdc_hld_w(int state);
|
void fdc_hld_w(int state);
|
||||||
void motors_control();
|
void motors_control();
|
||||||
u8 m_control;
|
u8 m_control;
|
||||||
|
@ -72,10 +72,7 @@ public:
|
|||||||
, m_maincpu(*this, "maincpu")
|
, m_maincpu(*this, "maincpu")
|
||||||
, m_irqs(*this, "irqs")
|
, m_irqs(*this, "irqs")
|
||||||
, m_fdc(*this, "fdc")
|
, m_fdc(*this, "fdc")
|
||||||
, m_floppy0(*this, "fdc:0")
|
, m_floppy(*this, "fdc:%u", 0U)
|
||||||
, m_floppy1(*this, "fdc:1")
|
|
||||||
, m_floppy2(*this, "fdc:2")
|
|
||||||
, m_floppy3(*this, "fdc:3")
|
|
||||||
, m_ram(*this, RAM_TAG)
|
, m_ram(*this, RAM_TAG)
|
||||||
, m_rom(*this, "roms")
|
, m_rom(*this, "roms")
|
||||||
, m_acia1(*this, "acia1")
|
, m_acia1(*this, "acia1")
|
||||||
@ -125,10 +122,7 @@ private:
|
|||||||
uint8_t m_task;
|
uint8_t m_task;
|
||||||
uint8_t m_task_banks[16][16];
|
uint8_t m_task_banks[16][16];
|
||||||
uint8_t m_selected_drive;
|
uint8_t m_selected_drive;
|
||||||
bool m_floppy0_ready;
|
bool m_floppy_ready[4];
|
||||||
bool m_floppy1_ready;
|
|
||||||
bool m_floppy2_ready;
|
|
||||||
bool m_floppy3_ready;
|
|
||||||
|
|
||||||
uint8_t m_pia1_pa;
|
uint8_t m_pia1_pa;
|
||||||
uint8_t m_pia1_pb;
|
uint8_t m_pia1_pb;
|
||||||
@ -142,10 +136,7 @@ private:
|
|||||||
required_device<cpu_device> m_maincpu;
|
required_device<cpu_device> m_maincpu;
|
||||||
required_device<input_merger_device> m_irqs;
|
required_device<input_merger_device> m_irqs;
|
||||||
required_device<fd1797_device> m_fdc;
|
required_device<fd1797_device> m_fdc;
|
||||||
required_device<floppy_connector> m_floppy0;
|
required_device_array<floppy_connector, 4> m_floppy;
|
||||||
required_device<floppy_connector> m_floppy1;
|
|
||||||
required_device<floppy_connector> m_floppy2;
|
|
||||||
required_device<floppy_connector> m_floppy3;
|
|
||||||
required_device<ram_device> m_ram;
|
required_device<ram_device> m_ram;
|
||||||
required_memory_region m_rom;
|
required_memory_region m_rom;
|
||||||
required_device<acia6850_device> m_acia1;
|
required_device<acia6850_device> m_acia1;
|
||||||
@ -286,22 +277,22 @@ void gimix_state::dma_w(offs_t offset, uint8_t data)
|
|||||||
if(data & 0x01)
|
if(data & 0x01)
|
||||||
{
|
{
|
||||||
m_selected_drive = 1;
|
m_selected_drive = 1;
|
||||||
m_fdc->set_floppy(m_floppy0->get_device());
|
m_fdc->set_floppy(m_floppy[0]->get_device());
|
||||||
}
|
}
|
||||||
else if(data & 0x02)
|
else if(data & 0x02)
|
||||||
{
|
{
|
||||||
m_selected_drive = 2;
|
m_selected_drive = 2;
|
||||||
m_fdc->set_floppy(m_floppy1->get_device());
|
m_fdc->set_floppy(m_floppy[1]->get_device());
|
||||||
}
|
}
|
||||||
else if(data & 0x04)
|
else if(data & 0x04)
|
||||||
{
|
{
|
||||||
m_selected_drive = 3;
|
m_selected_drive = 3;
|
||||||
m_fdc->set_floppy(m_floppy2->get_device());
|
m_fdc->set_floppy(m_floppy[2]->get_device());
|
||||||
}
|
}
|
||||||
else if(data & 0x08)
|
else if(data & 0x08)
|
||||||
{
|
{
|
||||||
m_selected_drive = 4;
|
m_selected_drive = 4;
|
||||||
m_fdc->set_floppy(m_floppy3->get_device());
|
m_fdc->set_floppy(m_floppy[3]->get_device());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -309,29 +300,14 @@ void gimix_state::dma_w(offs_t offset, uint8_t data)
|
|||||||
m_fdc->set_floppy(nullptr);
|
m_fdc->set_floppy(nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(m_selected_drive != 1)
|
for(int n = 0; n < 4; n++)
|
||||||
{
|
{
|
||||||
m_floppy0->get_device()->mon_w(1);
|
if(m_selected_drive != n + 1)
|
||||||
m_floppy0_ready = false;
|
{
|
||||||
logerror("FDC: Floppy drive 0 motor off\n");
|
m_floppy[n]->get_device()->mon_w(1);
|
||||||
}
|
m_floppy_ready[n] = false;
|
||||||
if(m_selected_drive != 2)
|
logerror("FDC: Floppy drive %d motor off\n", n);
|
||||||
{
|
}
|
||||||
m_floppy1->get_device()->mon_w(1);
|
|
||||||
m_floppy1_ready = false;
|
|
||||||
logerror("FDC: Floppy drive 1 motor off\n");
|
|
||||||
}
|
|
||||||
if(m_selected_drive != 3)
|
|
||||||
{
|
|
||||||
m_floppy2->get_device()->mon_w(1);
|
|
||||||
m_floppy2_ready = false;
|
|
||||||
logerror("FDC: Floppy drive 2 motor off\n");
|
|
||||||
}
|
|
||||||
if(m_selected_drive != 4)
|
|
||||||
{
|
|
||||||
m_floppy3->get_device()->mon_w(1);
|
|
||||||
m_floppy3_ready = false;
|
|
||||||
logerror("FDC: Floppy drive 3 motor off\n");
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
@ -341,28 +317,8 @@ void gimix_state::dma_w(offs_t offset, uint8_t data)
|
|||||||
m_dma_status |= 0x12;
|
m_dma_status |= 0x12;
|
||||||
else
|
else
|
||||||
m_dma_status &= ~0x12;
|
m_dma_status &= ~0x12;
|
||||||
if(data & 0x40)
|
if(m_selected_drive != 0)
|
||||||
{
|
m_floppy[m_selected_drive - 1]->get_device()->ss_w(BIT(data, 6));
|
||||||
if(m_selected_drive == 1)
|
|
||||||
m_floppy0->get_device()->ss_w(1);
|
|
||||||
if(m_selected_drive == 2)
|
|
||||||
m_floppy1->get_device()->ss_w(1);
|
|
||||||
if(m_selected_drive == 3)
|
|
||||||
m_floppy2->get_device()->ss_w(1);
|
|
||||||
if(m_selected_drive == 4)
|
|
||||||
m_floppy3->get_device()->ss_w(1);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if(m_selected_drive == 1)
|
|
||||||
m_floppy0->get_device()->ss_w(0);
|
|
||||||
if(m_selected_drive == 2)
|
|
||||||
m_floppy1->get_device()->ss_w(0);
|
|
||||||
if(m_selected_drive == 3)
|
|
||||||
m_floppy2->get_device()->ss_w(0);
|
|
||||||
if(m_selected_drive == 4)
|
|
||||||
m_floppy3->get_device()->ss_w(0);
|
|
||||||
}
|
|
||||||
if((data & 0x80) == 0)
|
if((data & 0x80) == 0)
|
||||||
m_irqs->in_w<6>(0);
|
m_irqs->in_w<6>(0);
|
||||||
break;
|
break;
|
||||||
@ -384,29 +340,11 @@ void gimix_state::dma_w(offs_t offset, uint8_t data)
|
|||||||
uint8_t gimix_state::fdc_r(offs_t offset)
|
uint8_t gimix_state::fdc_r(offs_t offset)
|
||||||
{
|
{
|
||||||
// motors are switched on on FDC access
|
// motors are switched on on FDC access
|
||||||
if(m_selected_drive == 1 && m_floppy0_ready == false)
|
if(m_selected_drive != 0 && !m_floppy_ready[m_selected_drive - 1] && !machine().side_effects_disabled())
|
||||||
{
|
{
|
||||||
m_floppy0->get_device()->mon_w(0);
|
m_floppy[m_selected_drive - 1]->get_device()->mon_w(0);
|
||||||
m_floppy0_ready = true;
|
m_floppy_ready[m_selected_drive - 1] = true;
|
||||||
logerror("FDC: Floppy drive 0 motor on\n");
|
logerror("FDC: Floppy drive %d motor on\n", m_selected_drive - 1);
|
||||||
}
|
|
||||||
if(m_selected_drive == 2 && m_floppy1_ready == false)
|
|
||||||
{
|
|
||||||
m_floppy1->get_device()->mon_w(0);
|
|
||||||
m_floppy1_ready = true;
|
|
||||||
logerror("FDC: Floppy drive 1 motor on\n");
|
|
||||||
}
|
|
||||||
if(m_selected_drive == 3 && m_floppy2_ready == false)
|
|
||||||
{
|
|
||||||
m_floppy2->get_device()->mon_w(0);
|
|
||||||
m_floppy2_ready = true;
|
|
||||||
logerror("FDC: Floppy drive 2 motor on\n");
|
|
||||||
}
|
|
||||||
if(m_selected_drive == 4 && m_floppy3_ready == false)
|
|
||||||
{
|
|
||||||
m_floppy3->get_device()->mon_w(0);
|
|
||||||
m_floppy3_ready = true;
|
|
||||||
logerror("FDC: Floppy drive 3 motor on\n");
|
|
||||||
}
|
}
|
||||||
return m_fdc->read(offset);
|
return m_fdc->read(offset);
|
||||||
}
|
}
|
||||||
@ -414,14 +352,12 @@ uint8_t gimix_state::fdc_r(offs_t offset)
|
|||||||
void gimix_state::fdc_w(offs_t offset, uint8_t data)
|
void gimix_state::fdc_w(offs_t offset, uint8_t data)
|
||||||
{
|
{
|
||||||
// motors are switched on on FDC access
|
// motors are switched on on FDC access
|
||||||
if(m_selected_drive == 1)
|
if(m_selected_drive != 0 && !m_floppy_ready[m_selected_drive - 1])
|
||||||
m_floppy0->get_device()->mon_w(0);
|
{
|
||||||
if(m_selected_drive == 2)
|
m_floppy[m_selected_drive - 1]->get_device()->mon_w(0);
|
||||||
m_floppy1->get_device()->mon_w(0);
|
m_floppy_ready[m_selected_drive - 1] = true;
|
||||||
if(m_selected_drive == 3)
|
logerror("FDC: Floppy drive %d motor on\n", m_selected_drive - 1);
|
||||||
m_floppy2->get_device()->mon_w(0);
|
}
|
||||||
if(m_selected_drive == 4)
|
|
||||||
m_floppy3->get_device()->mon_w(0);
|
|
||||||
m_fdc->write(offset,data);
|
m_fdc->write(offset,data);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -497,10 +433,7 @@ void gimix_state::machine_reset()
|
|||||||
m_irqs->in_w<6>(0);
|
m_irqs->in_w<6>(0);
|
||||||
m_task = 0x00;
|
m_task = 0x00;
|
||||||
m_selected_drive = 0;
|
m_selected_drive = 0;
|
||||||
m_floppy0_ready = false;
|
std::fill(std::begin(m_floppy_ready), std::end(m_floppy_ready), false);
|
||||||
m_floppy1_ready = false;
|
|
||||||
m_floppy2_ready = false;
|
|
||||||
m_floppy3_ready = false;
|
|
||||||
m_lowerram->set_base(m_ram->pointer());
|
m_lowerram->set_base(m_ram->pointer());
|
||||||
if(m_ram->size() > 65536)
|
if(m_ram->size() > 65536)
|
||||||
m_upperram->set_base(m_ram->pointer()+0x10000);
|
m_upperram->set_base(m_ram->pointer()+0x10000);
|
||||||
@ -530,8 +463,8 @@ void gimix_state::machine_start()
|
|||||||
m_bank[bank]->space(AS_PROGRAM).install_readwrite_bank(0x10000,m_ram->size()-1,m_upperram);
|
m_bank[bank]->space(AS_PROGRAM).install_readwrite_bank(0x10000,m_ram->size()-1,m_upperram);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
m_floppy0->get_device()->set_rpm(300);
|
m_floppy[0]->get_device()->set_rpm(300);
|
||||||
m_floppy1->get_device()->set_rpm(300);
|
m_floppy[1]->get_device()->set_rpm(300);
|
||||||
}
|
}
|
||||||
|
|
||||||
void gimix_state::driver_start()
|
void gimix_state::driver_start()
|
||||||
|
@ -207,10 +207,9 @@ void xor100_state::fdc_dcont_w(uint8_t data)
|
|||||||
// drive select
|
// drive select
|
||||||
floppy_image_device *floppy = nullptr;
|
floppy_image_device *floppy = nullptr;
|
||||||
|
|
||||||
if (BIT(data, 0)) floppy = m_floppy0->get_device();
|
for (int n = 0; n < 4; n++)
|
||||||
if (BIT(data, 1)) floppy = m_floppy1->get_device();
|
if (BIT(data, n))
|
||||||
if (BIT(data, 2)) floppy = m_floppy2->get_device();
|
floppy = m_floppy[n]->get_device();
|
||||||
if (BIT(data, 3)) floppy = m_floppy3->get_device();
|
|
||||||
|
|
||||||
m_fdc->set_floppy(floppy);
|
m_fdc->set_floppy(floppy);
|
||||||
|
|
||||||
@ -523,10 +522,10 @@ void xor100_state::xor100(machine_config &config)
|
|||||||
m_ctc->zc_callback<2>().set(FUNC(xor100_state::ctc_z2_w));
|
m_ctc->zc_callback<2>().set(FUNC(xor100_state::ctc_z2_w));
|
||||||
|
|
||||||
FD1795(config, m_fdc, 8_MHz_XTAL / 4);
|
FD1795(config, m_fdc, 8_MHz_XTAL / 4);
|
||||||
FLOPPY_CONNECTOR(config, WD1795_TAG":0", xor100_floppies, "8ssdd", floppy_image_device::default_mfm_floppy_formats);
|
FLOPPY_CONNECTOR(config, m_floppy[0], xor100_floppies, "8ssdd", floppy_image_device::default_mfm_floppy_formats);
|
||||||
FLOPPY_CONNECTOR(config, WD1795_TAG":1", xor100_floppies, "8ssdd", floppy_image_device::default_mfm_floppy_formats);
|
FLOPPY_CONNECTOR(config, m_floppy[1], xor100_floppies, "8ssdd", floppy_image_device::default_mfm_floppy_formats);
|
||||||
FLOPPY_CONNECTOR(config, WD1795_TAG":2", xor100_floppies, nullptr, floppy_image_device::default_mfm_floppy_formats);
|
FLOPPY_CONNECTOR(config, m_floppy[2], xor100_floppies, nullptr, floppy_image_device::default_mfm_floppy_formats);
|
||||||
FLOPPY_CONNECTOR(config, WD1795_TAG":3", xor100_floppies, nullptr, floppy_image_device::default_mfm_floppy_formats);
|
FLOPPY_CONNECTOR(config, m_floppy[3], xor100_floppies, nullptr, floppy_image_device::default_mfm_floppy_formats);
|
||||||
|
|
||||||
CENTRONICS(config, m_centronics, centronics_devices, "printer");
|
CENTRONICS(config, m_centronics, centronics_devices, "printer");
|
||||||
m_centronics->ack_handler().set(I8255A_TAG, FUNC(i8255_device::pc4_w));
|
m_centronics->ack_handler().set(I8255A_TAG, FUNC(i8255_device::pc4_w));
|
||||||
|
@ -42,10 +42,7 @@ public:
|
|||||||
, m_ram(*this, RAM_TAG)
|
, m_ram(*this, RAM_TAG)
|
||||||
, m_centronics(*this, CENTRONICS_TAG)
|
, m_centronics(*this, CENTRONICS_TAG)
|
||||||
, m_s100(*this, S100_TAG)
|
, m_s100(*this, S100_TAG)
|
||||||
, m_floppy0(*this, WD1795_TAG":0")
|
, m_floppy(*this, WD1795_TAG":%u", 0U)
|
||||||
, m_floppy1(*this, WD1795_TAG":1")
|
|
||||||
, m_floppy2(*this, WD1795_TAG":2")
|
|
||||||
, m_floppy3(*this, WD1795_TAG":3")
|
|
||||||
, m_rom(*this, Z80_TAG)
|
, m_rom(*this, Z80_TAG)
|
||||||
, m_bank1(*this, "bank1")
|
, m_bank1(*this, "bank1")
|
||||||
, m_bank2(*this, "bank2")
|
, m_bank2(*this, "bank2")
|
||||||
@ -88,10 +85,7 @@ private:
|
|||||||
required_device<ram_device> m_ram;
|
required_device<ram_device> m_ram;
|
||||||
required_device<centronics_device> m_centronics;
|
required_device<centronics_device> m_centronics;
|
||||||
required_device<s100_bus_device> m_s100;
|
required_device<s100_bus_device> m_s100;
|
||||||
required_device<floppy_connector> m_floppy0;
|
required_device_array<floppy_connector, 4> m_floppy;
|
||||||
required_device<floppy_connector> m_floppy1;
|
|
||||||
required_device<floppy_connector> m_floppy2;
|
|
||||||
required_device<floppy_connector> m_floppy3;
|
|
||||||
required_memory_region m_rom;
|
required_memory_region m_rom;
|
||||||
required_memory_bank m_bank1;
|
required_memory_bank m_bank1;
|
||||||
required_memory_bank m_bank2;
|
required_memory_bank m_bank2;
|
||||||
|
@ -66,8 +66,7 @@ public:
|
|||||||
, m_screen(*this, "screen")
|
, m_screen(*this, "screen")
|
||||||
, m_crtc(*this, "crtc")
|
, m_crtc(*this, "crtc")
|
||||||
, m_fdc(*this, "fdc")
|
, m_fdc(*this, "fdc")
|
||||||
, m_floppy0(*this, "fdc:0")
|
, m_floppy(*this, "fdc:%u", 0U)
|
||||||
, m_floppy1(*this, "fdc:1")
|
|
||||||
, m_beeper(*this, "beeper")
|
, m_beeper(*this, "beeper")
|
||||||
, m_gfxdecode(*this, "gfxdecode")
|
, m_gfxdecode(*this, "gfxdecode")
|
||||||
, m_palette(*this, "palette")
|
, m_palette(*this, "palette")
|
||||||
@ -125,8 +124,7 @@ private:
|
|||||||
required_device<screen_device> m_screen;
|
required_device<screen_device> m_screen;
|
||||||
required_device<mc6845_device> m_crtc;
|
required_device<mc6845_device> m_crtc;
|
||||||
required_device<mb8876_device> m_fdc;
|
required_device<mb8876_device> m_fdc;
|
||||||
required_device<floppy_connector> m_floppy0;
|
required_device_array<floppy_connector, 2> m_floppy;
|
||||||
required_device<floppy_connector> m_floppy1;
|
|
||||||
required_device<beep_device> m_beeper;
|
required_device<beep_device> m_beeper;
|
||||||
required_device<gfxdecode_device> m_gfxdecode;
|
required_device<gfxdecode_device> m_gfxdecode;
|
||||||
required_device<palette_device> m_palette;
|
required_device<palette_device> m_palette;
|
||||||
@ -472,7 +470,7 @@ void smc777_state::fdc1_select_w(uint8_t data)
|
|||||||
// x--- ---- SIDE1: [SMC-70] side select
|
// x--- ---- SIDE1: [SMC-70] side select
|
||||||
// ---- --x- EXDS: [SMC-70] external drive select (0=internal, 1=external)
|
// ---- --x- EXDS: [SMC-70] external drive select (0=internal, 1=external)
|
||||||
// ---- ---x DS01: select floppy drive
|
// ---- ---x DS01: select floppy drive
|
||||||
floppy = (data & 1 ? m_floppy1 : m_floppy0)->get_device();
|
floppy = m_floppy[data & 1]->get_device();
|
||||||
|
|
||||||
m_fdc->set_floppy(floppy);
|
m_fdc->set_floppy(floppy);
|
||||||
|
|
||||||
@ -1136,8 +1134,8 @@ void smc777_state::smc777(machine_config &config)
|
|||||||
m_fdc->drq_wr_callback().set(FUNC(smc777_state::fdc_drq_w));
|
m_fdc->drq_wr_callback().set(FUNC(smc777_state::fdc_drq_w));
|
||||||
|
|
||||||
// does it really support 16 of them?
|
// does it really support 16 of them?
|
||||||
FLOPPY_CONNECTOR(config, "fdc:0", smc777_floppies, "ssdd", floppy_image_device::default_mfm_floppy_formats);
|
FLOPPY_CONNECTOR(config, m_floppy[0], smc777_floppies, "ssdd", floppy_image_device::default_mfm_floppy_formats);
|
||||||
FLOPPY_CONNECTOR(config, "fdc:1", smc777_floppies, "ssdd", floppy_image_device::default_mfm_floppy_formats);
|
FLOPPY_CONNECTOR(config, m_floppy[1], smc777_floppies, "ssdd", floppy_image_device::default_mfm_floppy_formats);
|
||||||
|
|
||||||
SOFTWARE_LIST(config, "flop_list").set_original("smc777");
|
SOFTWARE_LIST(config, "flop_list").set_original("smc777");
|
||||||
QUICKLOAD(config, "quickload", "com,cpm", attotime::from_seconds(3)).set_load_callback(FUNC(smc777_state::quickload_cb));
|
QUICKLOAD(config, "quickload", "com,cpm", attotime::from_seconds(3)).set_load_callback(FUNC(smc777_state::quickload_cb));
|
||||||
|
@ -68,8 +68,7 @@ public:
|
|||||||
m_epci(*this, SCN2661_TAG),
|
m_epci(*this, SCN2661_TAG),
|
||||||
m_fdc(*this, UPD765_TAG),
|
m_fdc(*this, UPD765_TAG),
|
||||||
m_ram(*this, RAM_TAG),
|
m_ram(*this, RAM_TAG),
|
||||||
m_floppy0(*this, UPD765_TAG ":0:525dd"),
|
m_floppy(*this, UPD765_TAG ":%u:525dd", 0U),
|
||||||
m_floppy1(*this, UPD765_TAG ":1:525dd"),
|
|
||||||
m_centronics(*this, CENTRONICS_TAG),
|
m_centronics(*this, CENTRONICS_TAG),
|
||||||
m_cent_data_in(*this, "cent_data_in"),
|
m_cent_data_in(*this, "cent_data_in"),
|
||||||
m_cent_data_out(*this, "cent_data_out"),
|
m_cent_data_out(*this, "cent_data_out"),
|
||||||
@ -107,8 +106,7 @@ private:
|
|||||||
required_device<scn_pci_device> m_epci;
|
required_device<scn_pci_device> m_epci;
|
||||||
required_device<upd765a_device> m_fdc;
|
required_device<upd765a_device> m_fdc;
|
||||||
required_device<ram_device> m_ram;
|
required_device<ram_device> m_ram;
|
||||||
required_device<floppy_image_device> m_floppy0;
|
required_device_array<floppy_image_device, 2> m_floppy;
|
||||||
required_device<floppy_image_device> m_floppy1;
|
|
||||||
required_device<centronics_device> m_centronics;
|
required_device<centronics_device> m_centronics;
|
||||||
required_device<input_buffer_device> m_cent_data_in;
|
required_device<input_buffer_device> m_cent_data_in;
|
||||||
required_device<output_latch_device> m_cent_data_out;
|
required_device<output_latch_device> m_cent_data_out;
|
||||||
@ -134,14 +132,10 @@ private:
|
|||||||
void deselect_drive2_w(uint8_t data);
|
void deselect_drive2_w(uint8_t data);
|
||||||
uint8_t select_drive2_r();
|
uint8_t select_drive2_r();
|
||||||
void select_drive2_w(uint8_t data);
|
void select_drive2_w(uint8_t data);
|
||||||
uint8_t motor1_off_r();
|
uint8_t motor1_on_r(offs_t offset);
|
||||||
void motor1_off_w(uint8_t data);
|
void motor1_on_w(offs_t offset, uint8_t data);
|
||||||
uint8_t motor1_on_r();
|
uint8_t motor2_on_r(offs_t offset);
|
||||||
void motor1_on_w(uint8_t data);
|
void motor2_on_w(offs_t offset, uint8_t data);
|
||||||
uint8_t motor2_off_r();
|
|
||||||
void motor2_off_w(uint8_t data);
|
|
||||||
uint8_t motor2_on_r();
|
|
||||||
void motor2_on_w(uint8_t data);
|
|
||||||
uint8_t fdc_reset_r();
|
uint8_t fdc_reset_r();
|
||||||
void fdc_reset_w(uint8_t data);
|
void fdc_reset_w(uint8_t data);
|
||||||
uint8_t fdc_tc_r();
|
uint8_t fdc_tc_r();
|
||||||
@ -245,8 +239,8 @@ void wangpc_state::select_drive()
|
|||||||
{
|
{
|
||||||
floppy_image_device *floppy = nullptr;
|
floppy_image_device *floppy = nullptr;
|
||||||
|
|
||||||
if (m_ds1) floppy = m_floppy0;
|
if (m_ds1) floppy = m_floppy[0];
|
||||||
if (m_ds2) floppy = m_floppy1;
|
if (m_ds2) floppy = m_floppy[1];
|
||||||
|
|
||||||
m_fdc->set_floppy(floppy);
|
m_fdc->set_floppy(floppy);
|
||||||
}
|
}
|
||||||
@ -337,60 +331,34 @@ void wangpc_state::select_drive2_w(uint8_t data)
|
|||||||
select_drive2_r();
|
select_drive2_r();
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t wangpc_state::motor1_off_r()
|
uint8_t wangpc_state::motor1_on_r(offs_t offset)
|
||||||
{
|
{
|
||||||
if (LOG) logerror("%s: Drive 1 motor OFF\n", machine().describe_context());
|
if (!machine().side_effects_disabled())
|
||||||
|
motor1_on_w(offset, 0);
|
||||||
m_floppy0->mon_w(1);
|
|
||||||
|
|
||||||
return 0xff;
|
return 0xff;
|
||||||
}
|
}
|
||||||
|
|
||||||
void wangpc_state::motor1_off_w(uint8_t data)
|
void wangpc_state::motor1_on_w(offs_t offset, uint8_t data)
|
||||||
{
|
{
|
||||||
motor1_off_r();
|
if (LOG) logerror("%s: Drive 1 motor %s\n", machine().describe_context(), offset ? "ON" : "OFF");
|
||||||
|
|
||||||
|
m_floppy[0]->mon_w(!offset);
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t wangpc_state::motor1_on_r()
|
uint8_t wangpc_state::motor2_on_r(offs_t offset)
|
||||||
{
|
{
|
||||||
if (LOG) logerror("%s: Drive 1 motor ON\n", machine().describe_context());
|
if (!machine().side_effects_disabled())
|
||||||
|
motor2_on_w(offset, 0);
|
||||||
m_floppy0->mon_w(0);
|
|
||||||
|
|
||||||
return 0xff;
|
return 0xff;
|
||||||
}
|
}
|
||||||
|
|
||||||
void wangpc_state::motor1_on_w(uint8_t data)
|
void wangpc_state::motor2_on_w(offs_t offset, uint8_t data)
|
||||||
{
|
{
|
||||||
motor1_on_r();
|
if (LOG) logerror("%s: Drive 2 motor %s\n", machine().describe_context(), offset ? "ON" : "OFF");
|
||||||
}
|
|
||||||
|
|
||||||
uint8_t wangpc_state::motor2_off_r()
|
m_floppy[1]->mon_w(!offset);
|
||||||
{
|
|
||||||
if (LOG) logerror("%s: Drive 2 motor OFF\n", machine().describe_context());
|
|
||||||
|
|
||||||
m_floppy1->mon_w(1);
|
|
||||||
|
|
||||||
return 0xff;
|
|
||||||
}
|
|
||||||
|
|
||||||
void wangpc_state::motor2_off_w(uint8_t data)
|
|
||||||
{
|
|
||||||
motor2_off_r();
|
|
||||||
}
|
|
||||||
|
|
||||||
uint8_t wangpc_state::motor2_on_r()
|
|
||||||
{
|
|
||||||
if (LOG) logerror("%s: Drive 2 motor ON\n", machine().describe_context());
|
|
||||||
|
|
||||||
m_floppy1->mon_w(0);
|
|
||||||
|
|
||||||
return 0xff;
|
|
||||||
}
|
|
||||||
|
|
||||||
void wangpc_state::motor2_on_w(uint8_t data)
|
|
||||||
{
|
|
||||||
motor2_on_r();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t wangpc_state::fdc_reset_r()
|
uint8_t wangpc_state::fdc_reset_r()
|
||||||
@ -462,8 +430,8 @@ uint8_t wangpc_state::status_r()
|
|||||||
data |= m_fdc->get_irq() << 3;
|
data |= m_fdc->get_irq() << 3;
|
||||||
data |= m_fdc_dd0 << 4;
|
data |= m_fdc_dd0 << 4;
|
||||||
data |= m_fdc_dd1 << 5;
|
data |= m_fdc_dd1 << 5;
|
||||||
data |= m_floppy0->exists() ? 0 : 0x40;
|
data |= m_floppy[0]->exists() ? 0 : 0x40;
|
||||||
data |= m_floppy1->exists() ? 0 : 0x80;
|
data |= m_floppy[1]->exists() ? 0 : 0x80;
|
||||||
|
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
@ -754,10 +722,8 @@ void wangpc_state::wangpc_io(address_map &map)
|
|||||||
map(0x1006, 0x1006).rw(FUNC(wangpc_state::select_drive1_r), FUNC(wangpc_state::select_drive1_w));
|
map(0x1006, 0x1006).rw(FUNC(wangpc_state::select_drive1_r), FUNC(wangpc_state::select_drive1_w));
|
||||||
map(0x1008, 0x1008).rw(FUNC(wangpc_state::deselect_drive2_r), FUNC(wangpc_state::deselect_drive2_w));
|
map(0x1008, 0x1008).rw(FUNC(wangpc_state::deselect_drive2_r), FUNC(wangpc_state::deselect_drive2_w));
|
||||||
map(0x100a, 0x100a).rw(FUNC(wangpc_state::select_drive2_r), FUNC(wangpc_state::select_drive2_w));
|
map(0x100a, 0x100a).rw(FUNC(wangpc_state::select_drive2_r), FUNC(wangpc_state::select_drive2_w));
|
||||||
map(0x100c, 0x100c).rw(FUNC(wangpc_state::motor1_off_r), FUNC(wangpc_state::motor1_off_w));
|
map(0x100c, 0x100f).rw(FUNC(wangpc_state::motor1_on_r), FUNC(wangpc_state::motor1_on_w)).umask16(0x00ff);
|
||||||
map(0x100e, 0x100e).rw(FUNC(wangpc_state::motor1_on_r), FUNC(wangpc_state::motor1_on_w));
|
map(0x1010, 0x1013).rw(FUNC(wangpc_state::motor2_on_r), FUNC(wangpc_state::motor2_on_w)).umask16(0x00ff);
|
||||||
map(0x1010, 0x1010).rw(FUNC(wangpc_state::motor2_off_r), FUNC(wangpc_state::motor2_off_w));
|
|
||||||
map(0x1012, 0x1012).rw(FUNC(wangpc_state::motor2_on_r), FUNC(wangpc_state::motor2_on_w));
|
|
||||||
map(0x1014, 0x1017).m(m_fdc, FUNC(upd765a_device::map)).umask16(0x00ff);
|
map(0x1014, 0x1017).m(m_fdc, FUNC(upd765a_device::map)).umask16(0x00ff);
|
||||||
map(0x1018, 0x1018).mirror(0x0002).rw(FUNC(wangpc_state::fdc_reset_r), FUNC(wangpc_state::fdc_reset_w));
|
map(0x1018, 0x1018).mirror(0x0002).rw(FUNC(wangpc_state::fdc_reset_r), FUNC(wangpc_state::fdc_reset_w));
|
||||||
map(0x101c, 0x101c).mirror(0x0002).rw(FUNC(wangpc_state::fdc_tc_r), FUNC(wangpc_state::fdc_tc_w));
|
map(0x101c, 0x101c).mirror(0x0002).rw(FUNC(wangpc_state::fdc_tc_r), FUNC(wangpc_state::fdc_tc_w));
|
||||||
@ -1183,10 +1149,10 @@ WRITE_LINE_MEMBER( wangpc_state::bus_irq2_w )
|
|||||||
void wangpc_state::machine_start()
|
void wangpc_state::machine_start()
|
||||||
{
|
{
|
||||||
// connect floppy callbacks
|
// connect floppy callbacks
|
||||||
m_floppy0->setup_load_cb(floppy_image_device::load_cb(&wangpc_state::on_disk0_load, this));
|
m_floppy[0]->setup_load_cb(floppy_image_device::load_cb(&wangpc_state::on_disk0_load, this));
|
||||||
m_floppy0->setup_unload_cb(floppy_image_device::unload_cb(&wangpc_state::on_disk0_unload, this));
|
m_floppy[0]->setup_unload_cb(floppy_image_device::unload_cb(&wangpc_state::on_disk0_unload, this));
|
||||||
m_floppy1->setup_load_cb(floppy_image_device::load_cb(&wangpc_state::on_disk1_load, this));
|
m_floppy[1]->setup_load_cb(floppy_image_device::load_cb(&wangpc_state::on_disk1_load, this));
|
||||||
m_floppy1->setup_unload_cb(floppy_image_device::unload_cb(&wangpc_state::on_disk1_unload, this));
|
m_floppy[1]->setup_unload_cb(floppy_image_device::unload_cb(&wangpc_state::on_disk1_unload, this));
|
||||||
|
|
||||||
m_led_diagnostic.resolve();
|
m_led_diagnostic.resolve();
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user