diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/devices/bus/amiga/zorro/oktagon2008.cpp | 23 |
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); } } } |