dc320e: Make board self-ID as 320E rather than 820B (nw)

This commit is contained in:
AJR 2019-05-13 10:07:34 -04:00
parent 40f4e19dbf
commit 19158e52c6
2 changed files with 25 additions and 4 deletions

View File

@ -7,9 +7,12 @@
These EISA host adapters have, in addition to internal and external These EISA host adapters have, in addition to internal and external
SCSI and floppy disk connectors, LED and "SPKER" jumper headers. The SCSI and floppy disk connectors, LED and "SPKER" jumper headers. The
DC-820 and DC-820B also have four SIMM slots in addition to 64K of DC-820 and DC-820B also have four SIMM slots in addition to 64K of
static RAM on board. The DC-320 and DC-320B only have 16K of SRAM. static RAM on board. The DC-320 and DC-320B only have 16K of SRAM;
the DC-820B firmware switches into DC-320E mode if it fails to read
dummy values back from select RAM locations beyond the 16K limit.
The DC-820B has an ASIC in place of the 11 PLDs used by the DC-820. The DC-820B has an ASIC in place of the 11 PLDs used by the DC-820.
DC-320E likely uses the same ASIC, though probably on a smaller PCB.
It seems likely that these controllers, like the AHA-174X, support a It seems likely that these controllers, like the AHA-174X, support a
legacy ISA port interface as well as the standard EISA doorbell and legacy ISA port interface as well as the standard EISA doorbell and
@ -103,9 +106,8 @@ void tekram_eisa_scsi_device::eeprom_w(u8 data)
m_eeprom->clk_write(BIT(data, 5)); m_eeprom->clk_write(BIT(data, 5));
} }
void tekram_eisa_scsi_device::mpu_map(address_map &map) void tekram_eisa_scsi_device::common_map(address_map &map)
{ {
map(0x00000, 0x0ffff).ram();
map(0x10040, 0x1005f).m("scsi:7:scsic", FUNC(ncr53cf94_device::map)).umask16(0xff00); map(0x10040, 0x1005f).m("scsi:7:scsic", FUNC(ncr53cf94_device::map)).umask16(0xff00);
map(0x10068, 0x10068).rw(FUNC(tekram_eisa_scsi_device::latch_status_r), FUNC(tekram_eisa_scsi_device::int0_ack_w)); map(0x10068, 0x10068).rw(FUNC(tekram_eisa_scsi_device::latch_status_r), FUNC(tekram_eisa_scsi_device::int0_ack_w));
map(0x10069, 0x10069).r(FUNC(tekram_eisa_scsi_device::status_r)); map(0x10069, 0x10069).r(FUNC(tekram_eisa_scsi_device::status_r));
@ -119,6 +121,19 @@ void tekram_eisa_scsi_device::mpu_map(address_map &map)
map(0xf0000, 0xfffff).rom().region("firmware", 0); map(0xf0000, 0xfffff).rom().region("firmware", 0);
} }
void tekram_dc320e_device::mpu_map(address_map &map)
{
common_map(map);
map(0x00000, 0x03fff).ram();
map(0x04000, 0x0ffff).noprw();
}
void tekram_dc820b_device::mpu_map(address_map &map)
{
common_map(map);
map(0x00000, 0x0ffff).ram();
}
void tekram_dc320b_device::eeprom_w(u8 data) void tekram_dc320b_device::eeprom_w(u8 data)
{ {
m_eeprom->di_write(BIT(data, 1)); m_eeprom->di_write(BIT(data, 1));

View File

@ -34,7 +34,7 @@ protected:
void mask_w(u8 data); void mask_w(u8 data);
void eeprom_w(u8 data); void eeprom_w(u8 data);
void mpu_map(address_map &map); void common_map(address_map &map);
void scsic_config(device_t *device); void scsic_config(device_t *device);
void scsi_add(machine_config &config); void scsi_add(machine_config &config);
@ -71,6 +71,9 @@ public:
protected: protected:
virtual void device_add_mconfig(machine_config &config) override; virtual void device_add_mconfig(machine_config &config) override;
virtual const tiny_rom_entry *device_rom_region() const override; virtual const tiny_rom_entry *device_rom_region() const override;
private:
void mpu_map(address_map &map);
}; };
class tekram_dc820_device : public tekram_eisa_scsi_device class tekram_dc820_device : public tekram_eisa_scsi_device
@ -96,6 +99,9 @@ public:
protected: protected:
virtual void device_add_mconfig(machine_config &config) override; virtual void device_add_mconfig(machine_config &config) override;
virtual const tiny_rom_entry *device_rom_region() const override; virtual const tiny_rom_entry *device_rom_region() const override;
private:
void mpu_map(address_map &map);
}; };
DECLARE_DEVICE_TYPE(TEKRAM_DC320B, tekram_dc320b_device) DECLARE_DEVICE_TYPE(TEKRAM_DC320B, tekram_dc320b_device)