summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/isa/3c505.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/bus/isa/3c505.cpp')
-rw-r--r--src/devices/bus/isa/3c505.cpp39
1 files changed, 11 insertions, 28 deletions
diff --git a/src/devices/bus/isa/3c505.cpp b/src/devices/bus/isa/3c505.cpp
index c45f3e9b78a..e56cfcd8d31 100644
--- a/src/devices/bus/isa/3c505.cpp
+++ b/src/devices/bus/isa/3c505.cpp
@@ -25,7 +25,6 @@
#include "emu.h"
#include "3c505.h"
-#define LOG_GENERAL (1U << 0)
#define LOG_REG (1U << 1)
#define LOG_DATA (1U << 2)
@@ -280,7 +279,7 @@ void isa16_3c505_device::device_reset()
offs_t const rom_base = (m_romopts->read() & 0xfe) << 12;
if (m_isa->is_option_rom_space_available(rom_base, 0x2000))
- m_isa->install_rom(this, rom_base, rom_base | 0x01fff, "host", "host");
+ m_isa->install_rom(this, rom_base, rom_base | 0x01fff, "host");
}
m_isa->set_dma_channel(m_isa_drq, this, true);
@@ -318,6 +317,9 @@ void isa16_3c505_device::map_main(address_map &map)
// i82586 upper 4 address lines are ignored
map.global_mask(0x0fffff);
+ // suppress logging when sizing RAM
+ map(0x00000, 0x7ffff).noprw();
+
map(0xfc000, 0xfffff).rom().region("system", 0);
}
@@ -397,12 +399,13 @@ void isa16_3c505_device::acr_w(u8 data)
m_hsr = (m_hsr & ~HSR_ASF) | (data & ACR_ASF);
if ((data ^ m_acr) & ACR_LED1)
- m_led[0] = !!(data & ACR_LED1);
+ m_led[0] = bool(data & ACR_LED1);
if ((data ^ m_acr) & ACR_LED2)
- m_led[1] = !!(data & ACR_LED2);
+ m_led[1] = bool(data & ACR_LED2);
- m_net->reset_w((data & ACR_R586) ? 1 : 0);
+ if ((data ^ m_acr) & ACR_R586)
+ m_net->reset_w((data & ACR_R586) ? 1 : 0);
if ((data ^ m_acr) & ACR_FLSH)
{
@@ -492,7 +495,7 @@ void isa16_3c505_device::hcr_w(u8 data)
{
if (!(data & HCR_FLSH))
{
- LOGMASKED(LOG_REG, "### soft reset\n");
+ LOGMASKED(LOG_REG, "soft reset\n");
// soft reset
m_cpu->set_input_line(INPUT_LINE_NMI, 1);
@@ -500,7 +503,7 @@ void isa16_3c505_device::hcr_w(u8 data)
}
else
{
- LOGMASKED(LOG_REG, "### hard reset\n");
+ LOGMASKED(LOG_REG, "hard reset\n");
// hard reset
reset();
@@ -550,26 +553,6 @@ void isa16_3c505_device::hcr_w(u8 data)
update_rdy(m_acr, data);
}
- // attention condition
- if (!(m_hcr & HCR_ATTN) && (data & HCR_ATTN))
- {
- if (!(data & HCR_FLSH))
- {
- LOGMASKED(LOG_REG, "soft reset\n");
-
- // soft reset
- m_cpu->set_input_line(INPUT_LINE_NMI, 1);
- m_cpu->set_input_line(INPUT_LINE_NMI, 0);
- }
- else
- {
- LOGMASKED(LOG_REG, "hard reset\n");
-
- // hard reset
- reset();
- }
- }
-
m_hcr = data;
}
@@ -655,7 +638,7 @@ void isa16_3c505_device::update_rdy(u8 const acr, u8 const hcr)
m_hsr &= ~HSR_HRDY;
}
- update_cpu_drq(!!(m_asr & ASR_ARDY));
+ update_cpu_drq(bool(m_asr & ASR_ARDY));
update_isa_drq((m_hsr & HSR_HRDY) && (hcr & HCR_DMAE));
}