aha1542a, aha1542b: Add jumper definitions (nw)

This commit is contained in:
AJR 2019-03-29 22:05:38 -04:00
parent 92b6d20440
commit 71a0e75c43
2 changed files with 277 additions and 0 deletions

View File

@ -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<aic6250_device &>(*device).int_cb().set_inputline("^^localcpu", I8085_RST65_LINE);
downcast<aic6250_device &>(*device).port_a_r_cb().set_ioport("^^SETUP");
downcast<aic6250_device &>(*device).port_b_r_cb().set_ioport("^^CONFIG");
}
void aha154x_device::device_add_mconfig(machine_config &config)

View File

@ -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;
};