From 71a0e75c432e81391b2a0fa79dff9d98a6eb678a Mon Sep 17 00:00:00 2001 From: AJR Date: Fri, 29 Mar 2019 22:05:38 -0400 Subject: [PATCH] aha1542a, aha1542b: Add jumper definitions (nw) --- src/devices/bus/isa/aha1542b.cpp | 275 +++++++++++++++++++++++++++++++ src/devices/bus/isa/aha1542b.h | 2 + 2 files changed, 277 insertions(+) diff --git a/src/devices/bus/isa/aha1542b.cpp b/src/devices/bus/isa/aha1542b.cpp index e0073cbbd68..087f9ef9611 100644 --- a/src/devices/bus/isa/aha1542b.cpp +++ b/src/devices/bus/isa/aha1542b.cpp @@ -51,6 +51,279 @@ void aha154x_device::i8085_map(address_map &map) map(0xe000, 0xe7ff).ram(); } +static INPUT_PORTS_START(aha1542a) + PORT_START("SETUP") + PORT_DIPNAME(0x01, 0x01, "Synchronous Negotiation") PORT_DIPLOCATION("J1:1") + PORT_DIPSETTING(0x01, "Disabled") + PORT_DIPSETTING(0x00, "Enabled") + PORT_DIPNAME(0x02, 0x02, "Diagnostic Test Loop") PORT_DIPLOCATION("J1:2") + PORT_DIPSETTING(0x02, DEF_STR(Off)) + PORT_DIPSETTING(0x00, DEF_STR(On)) + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_CUSTOM) // Data accepted by host + PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN) + PORT_DIPNAME(0x10, 0x10, "SCSI Parity Checking") PORT_DIPLOCATION("J1:3") + PORT_DIPSETTING(0x00, "Disabled") + PORT_DIPSETTING(0x10, "Enabled") + PORT_DIPNAME(0x60, 0x60, "DMA Transfer Speed") PORT_DIPLOCATION("J1:12,13") + PORT_DIPSETTING(0x60, "5.0 MB/s") + PORT_DIPSETTING(0x40, "5.7 MB/s") + PORT_DIPSETTING(0x20, "6.7 MB/s") + PORT_DIPSETTING(0x00, "8.0 MB/s") + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_CUSTOM) // SCSI reset + + PORT_START("CONFIG") + PORT_DIPNAME(0x07, 0x07, "SCSI Address ID") PORT_DIPLOCATION("J1:4,5,6") + PORT_DIPSETTING(0x00, "0") + PORT_DIPSETTING(0x01, "1") + PORT_DIPSETTING(0x02, "2") + PORT_DIPSETTING(0x03, "3") + PORT_DIPSETTING(0x04, "4") + PORT_DIPSETTING(0x05, "5") + PORT_DIPSETTING(0x06, "6") + PORT_DIPSETTING(0x07, "7") + PORT_DIPNAME(0x18, 0x08, "DMA Channel") PORT_DIPLOCATION("J1:7,8") + PORT_DIPSETTING(0x00, "0") + PORT_DIPSETTING(0x08, "5") + PORT_DIPSETTING(0x10, "6") + PORT_DIPSETTING(0x18, "7") + PORT_DIPNAME(0xe0, 0xa0, "Interrupt Channel") PORT_DIPLOCATION("J1:9,10,11") + PORT_DIPSETTING(0xe0, "9") + PORT_DIPSETTING(0xc0, "10") + PORT_DIPSETTING(0xa0, "11") + PORT_DIPSETTING(0x80, "12") + PORT_DIPSETTING(0x60, "14") + PORT_DIPSETTING(0x40, "15") + + PORT_START("DMAREQ") + PORT_DIPNAME(0xf, 0xd, "DMA Request") PORT_DIPLOCATION("J14:1,2,3,4") + PORT_DIPSETTING(0xe, "Channel 0") + PORT_DIPSETTING(0xd, "Channel 5") + PORT_DIPSETTING(0xb, "Channel 6") + PORT_DIPSETTING(0x7, "Channel 7") + + PORT_START("DMAACK") + PORT_DIPNAME(0xf, 0xd, "DMA Acknowledge") PORT_DIPLOCATION("J15:1,2,3,4") + PORT_DIPSETTING(0xe, "Channel 0") + PORT_DIPSETTING(0xd, "Channel 5") + PORT_DIPSETTING(0xb, "Channel 6") + PORT_DIPSETTING(0x7, "Channel 7") + + PORT_START("IRQ") + PORT_DIPNAME(0x3f, 0x3b, "Interrupt") PORT_DIPLOCATION("J16:1,2,3,4,5,6") + PORT_DIPSETTING(0x3e, "IRQ 9") + PORT_DIPSETTING(0x3d, "IRQ 10") + PORT_DIPSETTING(0x3b, "IRQ 11") + PORT_DIPSETTING(0x37, "IRQ 12") + PORT_DIPSETTING(0x2f, "IRQ 14") + PORT_DIPSETTING(0x1f, "IRQ 15") + + PORT_START("BIOSWAIT") + PORT_DIPNAME(0xf, 0xe, "BIOS Wait State") PORT_DIPLOCATION("J7:1,2,3,4") + PORT_DIPSETTING(0xe, "Disabled") + PORT_DIPSETTING(0xd, "100 ns") + PORT_DIPSETTING(0xb, "200 ns") + PORT_DIPSETTING(0x7, "300 ns") + + PORT_START("PORTADDR") + PORT_DIPNAME(0x7, 0x6, "I/O Port Address") PORT_DIPLOCATION("J6:1,2,3") + PORT_DIPSETTING(0x2, "130h") + PORT_DIPSETTING(0x3, "134h") + PORT_DIPSETTING(0x4, "230h") + PORT_DIPSETTING(0x5, "234h") + PORT_DIPSETTING(0x6, "330h") + PORT_DIPSETTING(0x7, "334h") + + PORT_START("BIOSADDR") + PORT_DIPNAME(0x3, 0x3, "BIOS Base Address") PORT_DIPLOCATION("J10:2,1") + PORT_DIPSETTING(0x0, "0C8000h") + PORT_DIPSETTING(0x1, "0CC000h") + PORT_DIPSETTING(0x2, "0D8000h") + PORT_DIPSETTING(0x3, "0DC000h") + PORT_DIPNAME(0x4, 0x0, "System BIOS") PORT_DIPLOCATION("J10:3") + PORT_DIPSETTING(0x4, "Disabled") + PORT_DIPSETTING(0x0, "Enabled") + + PORT_START("AUX") + PORT_DIPNAME(0x1, 0x1, DEF_STR(Unused)) PORT_DIPLOCATION("J9:1") + PORT_DIPSETTING(0x1, DEF_STR(Off)) + PORT_DIPSETTING(0x0, DEF_STR(On)) + PORT_DIPNAME(0x2, 0x2, DEF_STR(Unused)) PORT_DIPLOCATION("J9:2") + PORT_DIPSETTING(0x2, DEF_STR(Off)) + PORT_DIPSETTING(0x0, DEF_STR(On)) + PORT_DIPNAME(0x4, 0x4, DEF_STR(Unused)) PORT_DIPLOCATION("J9:3") + PORT_DIPSETTING(0x4, DEF_STR(Off)) + PORT_DIPSETTING(0x0, DEF_STR(On)) + PORT_DIPNAME(0x8, 0x8, "Automatic Request Sense") PORT_DIPLOCATION("J9:4") + PORT_DIPSETTING(0x0, "Disabled") + PORT_DIPSETTING(0x8, "Enabled") + + PORT_START("FDCCFG") + PORT_DIPNAME(0x1, 0x1, "FDC Secondary Address") PORT_DIPLOCATION("J12:1") + PORT_DIPSETTING(0x0, "370h-377h") + PORT_DIPSETTING(0x1, "3F0h-3F7h") + PORT_DIPNAME(0x2, 0x0, "Flexible Disk Controller") PORT_DIPLOCATION("J13:1") + PORT_DIPSETTING(0x2, DEF_STR(Off)) + PORT_DIPSETTING(0x0, DEF_STR(On)) + + PORT_START("FDCIRQ") + PORT_DIPNAME(0x7, 0x4, "FDC Interrupt") PORT_DIPLOCATION("J17:1,2,3") + PORT_DIPSETTING(0x4, "Channel 6") + PORT_DIPSETTING(0x1, "Channel 10") + + PORT_START("FDCDREQ") + PORT_DIPNAME(0x7, 0x4, "FDC DMA Request") PORT_DIPLOCATION("J18:1,2,3") + PORT_DIPSETTING(0x4, "Channel 2") + PORT_DIPSETTING(0x1, "Channel 3") + + PORT_START("FDCDACK") + PORT_DIPNAME(0x7, 0x4, "FDC DMA Acknowledge") PORT_DIPLOCATION("J19:1,2,3") + PORT_DIPSETTING(0x4, "Channel 2") + PORT_DIPSETTING(0x1, "Channel 3") +INPUT_PORTS_END + +static INPUT_PORTS_START(aha1542b) + PORT_START("SETUP") + PORT_DIPNAME(0x01, 0x01, "Synchronous Negotiation") PORT_DIPLOCATION("J5:1") + PORT_DIPSETTING(0x01, "Disabled") + PORT_DIPSETTING(0x00, "Enabled") + PORT_DIPNAME(0x02, 0x02, "Diagnostic Test Loop") PORT_DIPLOCATION("J5:2") + PORT_DIPSETTING(0x02, DEF_STR(Off)) + PORT_DIPSETTING(0x00, DEF_STR(On)) + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_UNUSED) + PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_UNUSED) + PORT_DIPNAME(0x10, 0x10, "SCSI Parity Checking") PORT_DIPLOCATION("J5:3") + PORT_DIPSETTING(0x00, "Disabled") + PORT_DIPSETTING(0x10, "Enabled") + PORT_DIPNAME(0x60, 0x60, "DMA Transfer Speed") PORT_DIPLOCATION("J5:12,13") + PORT_DIPSETTING(0x60, "5.0 MB/s") + PORT_DIPSETTING(0x40, "5.7 MB/s") + PORT_DIPSETTING(0x20, "6.7 MB/s") + PORT_DIPSETTING(0x00, "8.0 MB/s") + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_UNUSED) + + PORT_START("CONFIG") + PORT_DIPNAME(0x07, 0x07, "SCSI Address ID") PORT_DIPLOCATION("J5:4,5,6") + PORT_DIPSETTING(0x00, "0") + PORT_DIPSETTING(0x01, "1") + PORT_DIPSETTING(0x02, "2") + PORT_DIPSETTING(0x03, "3") + PORT_DIPSETTING(0x04, "4") + PORT_DIPSETTING(0x05, "5") + PORT_DIPSETTING(0x06, "6") + PORT_DIPSETTING(0x07, "7") + PORT_DIPNAME(0x18, 0x08, "DMA Channel") PORT_DIPLOCATION("J5:7,8") + PORT_DIPSETTING(0x00, "0") + PORT_DIPSETTING(0x08, "5") + PORT_DIPSETTING(0x10, "6") + PORT_DIPSETTING(0x18, "7") + PORT_DIPNAME(0xe0, 0xa0, "Interrupt Channel") PORT_DIPLOCATION("J5:9,10,11") + PORT_DIPSETTING(0xe0, "9") + PORT_DIPSETTING(0xc0, "10") + PORT_DIPSETTING(0xa0, "11") + PORT_DIPSETTING(0x80, "12") + PORT_DIPSETTING(0x60, "14") + PORT_DIPSETTING(0x40, "15") + + PORT_START("DMAREQ") + PORT_DIPNAME(0xf, 0xd, "DMA Request") PORT_DIPLOCATION("J9:1,2,3,4") + PORT_DIPSETTING(0xe, "Channel 0") + PORT_DIPSETTING(0xd, "Channel 5") + PORT_DIPSETTING(0xb, "Channel 6") + PORT_DIPSETTING(0x7, "Channel 7") + + PORT_START("DMAACK") + PORT_DIPNAME(0xf, 0xd, "DMA Acknowledge") PORT_DIPLOCATION("J9:5,6,7,8") + PORT_DIPSETTING(0xe, "Channel 0") + PORT_DIPSETTING(0xd, "Channel 5") + PORT_DIPSETTING(0xb, "Channel 6") + PORT_DIPSETTING(0x7, "Channel 7") + + PORT_START("IRQ") + PORT_DIPNAME(0x3f, 0x3b, "Interrupt") PORT_DIPLOCATION("J9:9,10,11,12,13,14") + PORT_DIPSETTING(0x3e, "IRQ 9") + PORT_DIPSETTING(0x3d, "IRQ 10") + PORT_DIPSETTING(0x3b, "IRQ 11") + PORT_DIPSETTING(0x37, "IRQ 12") + PORT_DIPSETTING(0x2f, "IRQ 14") + PORT_DIPSETTING(0x1f, "IRQ 15") + + PORT_START("BIOSWAIT") + PORT_DIPNAME(0x3, 0x3, "BIOS Wait State") PORT_DIPLOCATION("J7:5,6") + PORT_DIPSETTING(0x3, "Disabled") + PORT_DIPSETTING(0x2, "100 ns") + PORT_DIPSETTING(0x1, "200 ns") + PORT_DIPSETTING(0x0, "300 ns") + + PORT_START("PORTADDR") + PORT_DIPNAME(0x7, 0x6, "I/O Port Address") PORT_DIPLOCATION("J7:2,3,4") + PORT_DIPSETTING(0x2, "130h") + PORT_DIPSETTING(0x3, "134h") + PORT_DIPSETTING(0x4, "230h") + PORT_DIPSETTING(0x5, "234h") + PORT_DIPSETTING(0x6, "330h") + PORT_DIPSETTING(0x7, "334h") + + PORT_START("BIOSADDR") + PORT_DIPNAME(0x3, 0x3, "BIOS Base Address") PORT_DIPLOCATION("J7:8,7") + PORT_DIPSETTING(0x0, "0C8000h") + PORT_DIPSETTING(0x1, "0CC000h") + PORT_DIPSETTING(0x2, "0D8000h") + PORT_DIPSETTING(0x3, "0DC000h") + PORT_DIPNAME(0x4, 0x0, "System BIOS") PORT_DIPLOCATION("J6:1") + PORT_DIPSETTING(0x4, "Disabled") + PORT_DIPSETTING(0x0, "Enabled") + + PORT_START("AUX") + PORT_DIPNAME(0x1, 0x1, DEF_STR(Unused)) PORT_DIPLOCATION("J6:2") + PORT_DIPSETTING(0x1, DEF_STR(Off)) + PORT_DIPSETTING(0x0, DEF_STR(On)) + PORT_DIPNAME(0x2, 0x2, DEF_STR(Unused)) PORT_DIPLOCATION("J6:3") + PORT_DIPSETTING(0x2, DEF_STR(Off)) + PORT_DIPSETTING(0x0, DEF_STR(On)) + PORT_DIPNAME(0x4, 0x4, DEF_STR(Unused)) PORT_DIPLOCATION("J6:4") + PORT_DIPSETTING(0x4, DEF_STR(Off)) + PORT_DIPSETTING(0x0, DEF_STR(On)) + PORT_DIPNAME(0x8, 0x8, "Automatic Request Sense") PORT_DIPLOCATION("J6:5") + PORT_DIPSETTING(0x0, "Disabled") + PORT_DIPSETTING(0x8, "Enabled") + + PORT_START("FDCCFG") + PORT_DIPNAME(0x1, 0x1, "Floppy Secondary Address") PORT_DIPLOCATION("J7:1") + PORT_DIPSETTING(0x1, "170h-177h") + PORT_DIPSETTING(0x0, "1F0h-1F7h") + PORT_DIPNAME(0x2, 0x0, "Floppy Disk Controller") PORT_DIPLOCATION("J8:1") + PORT_DIPSETTING(0x2, DEF_STR(Off)) + PORT_DIPSETTING(0x0, DEF_STR(On)) + PORT_DIPNAME(0x4, 0x4, "Floppy Dual Channel Speed") PORT_DIPLOCATION("J8:8") + PORT_DIPSETTING(0x4, DEF_STR(Off)) + PORT_DIPSETTING(0x0, DEF_STR(On)) + + PORT_START("FDCIRQ") + PORT_DIPNAME(0x3, 0x2, "FDC Interrupt") PORT_DIPLOCATION("J8:6,7") + PORT_DIPSETTING(0x2, "Channel 6") + PORT_DIPSETTING(0x1, "Channel 10") + + PORT_START("FDCDREQ") + PORT_DIPNAME(0x3, 0x2, "FDC DMA Request") PORT_DIPLOCATION("J8:2,3") + PORT_DIPSETTING(0x2, "Channel 2") + PORT_DIPSETTING(0x1, "Channel 3") + + PORT_START("FDCDACK") + PORT_DIPNAME(0x3, 0x2, "FDC DMA Acknowledge") PORT_DIPLOCATION("J8:4,5") + PORT_DIPSETTING(0x2, "Channel 2") + PORT_DIPSETTING(0x1, "Channel 3") +INPUT_PORTS_END + +ioport_constructor aha1542a_device::device_input_ports() const +{ + return INPUT_PORTS_NAME(aha1542a); +} + +ioport_constructor aha1542b_device::device_input_ports() const +{ + return INPUT_PORTS_NAME(aha1542b); +} + static void aha154x_scsi_devices(device_slot_interface &device) { device.option_add("harddisk", NSCSI_HARDDISK); @@ -61,6 +334,8 @@ void aha154x_device::scsic_config(device_t *device) { device->set_clock(20'000'000); downcast(*device).int_cb().set_inputline("^^localcpu", I8085_RST65_LINE); + downcast(*device).port_a_r_cb().set_ioport("^^SETUP"); + downcast(*device).port_b_r_cb().set_ioport("^^CONFIG"); } void aha154x_device::device_add_mconfig(machine_config &config) diff --git a/src/devices/bus/isa/aha1542b.h b/src/devices/bus/isa/aha1542b.h index 95e379cb137..88f18941909 100644 --- a/src/devices/bus/isa/aha1542b.h +++ b/src/devices/bus/isa/aha1542b.h @@ -37,6 +37,7 @@ public: static constexpr feature_type unemulated_features() { return feature::DISK; } protected: + virtual ioport_constructor device_input_ports() const override; virtual const tiny_rom_entry *device_rom_region() const override; }; @@ -48,6 +49,7 @@ public: static constexpr feature_type unemulated_features() { return feature::DISK; } protected: + virtual ioport_constructor device_input_ports() const override; virtual const tiny_rom_entry *device_rom_region() const override; };