summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/devices/bus/amiga/zorro/oktagon2008.cpp23
1 files changed, 8 insertions, 15 deletions
diff --git a/src/devices/bus/amiga/zorro/oktagon2008.cpp b/src/devices/bus/amiga/zorro/oktagon2008.cpp
index f197ac742fd..fc0dbfb2cfe 100644
--- a/src/devices/bus/amiga/zorro/oktagon2008.cpp
+++ b/src/devices/bus/amiga/zorro/oktagon2008.cpp
@@ -14,7 +14,7 @@
#include "machine/i2cmem.h"
#include "machine/ncr53c90.h"
-#define VERBOSE (LOG_GENERAL)
+#define VERBOSE (0)
#include "logmacro.h"
@@ -40,8 +40,7 @@ protected:
virtual void autoconfig_base_address(offs_t address) override;
private:
- u8 rom_diag_r(offs_t offset);
- u8 rom_device_r(offs_t offset);
+ u8 rom_r(offs_t offset);
u8 int_control_r();
void int_control_w(u8 data);
u8 i2c_sda_r();
@@ -74,16 +73,11 @@ oktagon2008_device::oktagon2008_device(const machine_config &mconfig, const char
{
}
-u8 oktagon2008_device::rom_diag_r(offs_t offset)
+u8 oktagon2008_device::rom_r(offs_t offset)
{
return m_rom[offset];
}
-u8 oktagon2008_device::rom_device_r(offs_t offset)
-{
- return m_rom[offset + 0x1000];
-}
-
u8 oktagon2008_device::int_control_r()
{
return m_scsic_int_enable ? 0x80 : 0;
@@ -154,6 +148,10 @@ void oktagon2008_device::autoconfig_base_address(offs_t address)
}
else
{
+ // Diag init read from $Ex0001-$Ex0FFF; device drivers read from $Ex2001-$ExFFFF
+ m_zorro->space().install_read_handler(address + 0x0000, address + 0xffff,
+ read8sm_delegate(*this, FUNC(oktagon2008_device::rom_r)), 0x00ff);
+
m_zorro->space().install_readwrite_handler(address + 0x1000, address + 0x1fff,
read16smo_delegate(*m_scsic, FUNC(ncr53c94_device::dma16_swap_r)),
write16smo_delegate(*m_scsic, FUNC(ncr53c94_device::dma16_swap_w)), 0xffff);
@@ -169,11 +167,6 @@ void oktagon2008_device::autoconfig_base_address(offs_t address)
read8smo_delegate(*this, FUNC(oktagon2008_device::i2c_sda_r)),
write8smo_delegate(*this, FUNC(oktagon2008_device::i2c_sda_w)), 0xff00);
- m_zorro->space().install_read_handler(address + 0xf000, address + 0xffff,
- read8sm_delegate(*this, FUNC(oktagon2008_device::rom_diag_r)), 0xff00);
- m_zorro->space().install_read_handler(address + 0x2000, address + 0xffff,
- read8sm_delegate(*this, FUNC(oktagon2008_device::rom_device_r)), 0x00ff);
-
m_zorro->space().unmap_readwrite(0xe80000, 0xe8007f);
m_zorro->cfgout_w(0);
}
@@ -222,7 +215,7 @@ void oktagon2008_device::cfgin_w(int state)
autoconfig_product(5);
autoconfig_manufacturer(2092);
autoconfig_serial(0x00000000);
- autoconfig_rom_vector(0xf000); // maybe
+ autoconfig_rom_vector(0x0001);
}
}
}