summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Patrick Mackinlay <pmackinlay@hotmail.com>2019-04-23 20:00:31 +0700
committer Patrick Mackinlay <pmackinlay@hotmail.com>2019-04-23 20:00:31 +0700
commitae57490aaaa57d8ccdb29a1ef4f2029b1b1ec69e (patch)
treef5f496ece920ce760b62a25280b59098e056fa43
parent5afb28369c7e1e352cc0f5a7ce4030878d1e906a (diff)
3c505: tested working with apollo (nw)
-rw-r--r--src/devices/bus/isa/3c505.cpp28
1 files changed, 12 insertions, 16 deletions
diff --git a/src/devices/bus/isa/3c505.cpp b/src/devices/bus/isa/3c505.cpp
index 622a11d48dd..cdf1f26e88e 100644
--- a/src/devices/bus/isa/3c505.cpp
+++ b/src/devices/bus/isa/3c505.cpp
@@ -12,14 +12,12 @@
* http://lxr.free-electrons.com/source/drivers/net/3c505.h
* http://lxr.free-electrons.com/source/drivers/net/3c505.c
* http://stason.org/TULARC/pc/network-cards/O/OLIVETTI-Ethernet-NPU-9144-3C505.html
- * http://www.bitsavers.org/pdf/3Com/3c505_Etherlink_Plus_Developers_Guide_May86.pdf'
+ * http://www.bitsavers.org/pdf/3Com/3c505_Etherlink_Plus_Developers_Guide_May86.pdf
* http://www.bitsavers.org/pdf/3Com/1569-03_EtherLink_Plus_Technical_Reference_Jan89.pdf
*
* TODO
* - resolve intermittent diagnostics bug on 8-bit dma channels
- * - testing on Apollo Domain/OS
- * - externalize mac address
- * - 8 bit isa slot support
+ * - 8-bit isa slot support
* - revision 1.0 and 2.0 hardware/firmware variants
* - 8023 loopback mode
*/
@@ -42,14 +40,19 @@ ROM_START(3c505)
ROM_LOAD16_BYTE("0729-12_a.3h", 0x00000, 0x02000, CRC(5415fccd) SHA1(6a42d7f3acdb3e0213e1037fee1864819ac33991))
ROM_LOAD16_BYTE("0729-62_a.3f", 0x00001, 0x02000, CRC(4240bd9d) SHA1(015d2f7282def85681bcf1a7c5a7f501a16d5a6c))
- ROM_REGION(0x02000, "host", 0)
ROM_SYSTEM_BIOS(0, "unused", "Unused")
-
ROM_SYSTEM_BIOS(1, "apollo", "Apollo")
- ROMX_LOAD("3000_3c505_010728-00.bin", 0x00000, 0x02000, CRC(69b77ec6) SHA1(7ac36cc6fc90b90ddfc56c45303b514cbe18ae58), ROM_BIOS(1))
-
ROM_SYSTEM_BIOS(2, "netware", "3C505-NW EtherLink Plus NetWare Boot PROM")
+
+ // host firmware
+ ROM_REGION(0x02000, "host", 0)
+ ROMX_LOAD("3000_3c505_010728-00.bin", 0x00000, 0x02000, CRC(69b77ec6) SHA1(7ac36cc6fc90b90ddfc56c45303b514cbe18ae58), ROM_BIOS(1))
ROMX_LOAD("3c505-nw.bin", 0x00000, 0x02000, NO_DUMP, ROM_BIOS(2))
+
+ // station address prom
+ ROM_REGION16_LE(0x10, "mac", 0)
+ ROM_LOAD("3com.9h", 0x00, 0x10, CRC(8e207354) SHA1(ca5ddcb272ab2851e00473dc960b23039746e3d2))
+ ROMX_LOAD("apollo.9h", 0x00, 0x10, CRC(490f283e) SHA1(fe4c26b6a41e643f4397990b066fdc04b6f4c5ae), ROM_BIOS(1))
ROM_END
static INPUT_PORTS_START(3c505)
@@ -349,14 +352,7 @@ void isa16_3c505_device::map_io(address_map &map)
map(0x0103, 0x0103).rw(FUNC(isa16_3c505_device::asr_r), FUNC(isa16_3c505_device::acr_w));
map(0x0104, 0x0105).rw(FUNC(isa16_3c505_device::adata_r), FUNC(isa16_3c505_device::adata_w));
- map(0x0180, 0x018f).lr16("mac",
- [](offs_t offset)
- {
- // TODO: hard-code to 3Com dummy address for now
- static const u8 mac[] = { 0x02, 0x60, 0x8c, 0x12, 0x34, 0x56, 0xff, 0xff};
-
- return mac[offset];
- });
+ map(0x0180, 0x018f).rom().region("mac", 0);
}
void isa16_3c505_device::map_isa(address_map &map)