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
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
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.
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
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));
}
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(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));
@ -119,6 +121,19 @@ void tekram_eisa_scsi_device::mpu_map(address_map &map)
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)
{
m_eeprom->di_write(BIT(data, 1));

View File

@ -34,7 +34,7 @@ protected:
void mask_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 scsi_add(machine_config &config);
@ -71,6 +71,9 @@ public:
protected:
virtual void device_add_mconfig(machine_config &config) 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
@ -96,6 +99,9 @@ public:
protected:
virtual void device_add_mconfig(machine_config &config) 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)