summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/machine/s3c44b0.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/machine/s3c44b0.cpp')
-rw-r--r--src/devices/machine/s3c44b0.cpp192
1 files changed, 75 insertions, 117 deletions
diff --git a/src/devices/machine/s3c44b0.cpp b/src/devices/machine/s3c44b0.cpp
index 0c56bb51a17..4321f9acdec 100644
--- a/src/devices/machine/s3c44b0.cpp
+++ b/src/devices/machine/s3c44b0.cpp
@@ -9,13 +9,12 @@
*******************************************************************************/
#include "emu.h"
-#include "machine/s3c44b0.h"
+#include "s3c44b0.h"
#include "cpu/arm7/arm7.h"
-#include "cpu/arm7/arm7core.h"
#include "screen.h"
-#include "coreutil.h"
+#include <cstdarg>
#define S3C44B0_INTCON (0x00 / 4) // Interrupt Control
@@ -226,19 +225,19 @@ s3c44b0_device::s3c44b0_device(const machine_config &mconfig, const char *tag, d
: device_t(mconfig, S3C44B0, tag, owner, clock)
, device_video_interface(mconfig, *this)
, m_cpu(*this, finder_base::DUMMY_TAG)
- , m_port_r_cb(*this)
+ , m_port_r_cb(*this, 0)
, m_port_w_cb(*this)
, m_scl_w_cb(*this)
- , m_sda_r_cb(*this)
+ , m_sda_r_cb(*this, 0)
, m_sda_w_cb(*this)
- , m_data_r_cb(*this)
+ , m_data_r_cb(*this, 0)
, m_data_w_cb(*this)
{
memset(&m_irq, 0, sizeof(s3c44b0_irq_t));
memset(m_zdma, 0, sizeof(s3c44b0_dma_t)*2);
memset(m_bdma, 0, sizeof(s3c44b0_dma_t)*2);
memset(&m_clkpow, 0, sizeof(s3c44b0_clkpow_t));
- memset(&m_lcd, 0, sizeof(s3c44b0_lcd_t));
+ m_lcd.clear();
memset(m_uart, 0, sizeof(s3c44b0_uart_t)*2);
memset(&m_sio, 0, sizeof(s3c44b0_sio_t));
memset(&m_pwm, 0, sizeof(s3c44b0_pwm_t));
@@ -256,26 +255,19 @@ s3c44b0_device::s3c44b0_device(const machine_config &mconfig, const char *tag, d
void s3c44b0_device::device_start()
{
- m_port_r_cb.resolve();
- m_port_w_cb.resolve();
- m_scl_w_cb.resolve();
- m_sda_r_cb.resolve();
- m_sda_w_cb.resolve();
- m_data_r_cb.resolve_safe(0);
- m_data_w_cb.resolve();
+ m_cpu->space(AS_PROGRAM).cache(m_cache);
+ for (int i = 0; i < 6; i++) m_pwm.timer[i] = timer_alloc(FUNC(s3c44b0_device::pwm_timer_exp), this);
+ for (auto & elem : m_uart) elem.timer = timer_alloc(FUNC(s3c44b0_device::uart_timer_exp), this);
+ for (auto & elem : m_zdma) elem.timer = timer_alloc(FUNC(s3c44b0_device::zdma_timer_exp), this);
+ for (auto & elem : m_bdma) elem.timer = timer_alloc(FUNC(s3c44b0_device::bdma_timer_exp), this);
- for (int i = 0; i < 6; i++) m_pwm.timer[i] = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(s3c44b0_device::pwm_timer_exp),this));
- for (auto & elem : m_uart) elem.timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(s3c44b0_device::uart_timer_exp),this));
- for (auto & elem : m_zdma) elem.timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(s3c44b0_device::zdma_timer_exp),this));
- for (auto & elem : m_bdma) elem.timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(s3c44b0_device::bdma_timer_exp),this));
-
- m_lcd.timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(s3c44b0_device::lcd_timer_exp),this));
- m_wdt.timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(s3c44b0_device::wdt_timer_exp),this));
- m_sio.timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(s3c44b0_device::sio_timer_exp),this));
- m_adc.timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(s3c44b0_device::adc_timer_exp),this));
- m_iic.timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(s3c44b0_device::iic_timer_exp),this));
- m_iis.timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(s3c44b0_device::iis_timer_exp),this));
+ m_lcd.timer = timer_alloc(FUNC(s3c44b0_device::lcd_timer_exp), this);
+ m_wdt.timer = timer_alloc(FUNC(s3c44b0_device::wdt_timer_exp), this);
+ m_sio.timer = timer_alloc(FUNC(s3c44b0_device::sio_timer_exp), this);
+ m_adc.timer = timer_alloc(FUNC(s3c44b0_device::adc_timer_exp), this);
+ m_iic.timer = timer_alloc(FUNC(s3c44b0_device::iic_timer_exp), this);
+ m_iis.timer = timer_alloc(FUNC(s3c44b0_device::iis_timer_exp), this);
video_start();
@@ -536,27 +528,25 @@ void s3c44b0_device::lcd_dma_init()
void s3c44b0_device::lcd_dma_read(int count, uint8_t *data)
{
- address_space &space = m_cpu->space(AS_PROGRAM);
- uint8_t *vram = (uint8_t *)space.get_read_ptr(m_lcd.vramaddr_cur);
for (int i = 0; i < count / 2; i++)
{
if (m_lcd.bswp == 0)
{
if ((m_lcd.vramaddr_cur & 2) == 0)
{
- data[0] = *(vram + 3);
- data[1] = *(vram + 2);
+ data[0] = m_cache.read_byte(m_lcd.vramaddr_cur + 3);
+ data[1] = m_cache.read_byte(m_lcd.vramaddr_cur + 2);
}
else
{
- data[0] = *(vram - 1);
- data[1] = *(vram - 2);
+ data[0] = m_cache.read_byte(m_lcd.vramaddr_cur - 1);
+ data[1] = m_cache.read_byte(m_lcd.vramaddr_cur - 2);
}
}
else
{
- data[0] = *(vram + 0);
- data[1] = *(vram + 1);
+ data[0] = m_cache.read_byte(m_lcd.vramaddr_cur + 0);
+ data[1] = m_cache.read_byte(m_lcd.vramaddr_cur + 1);
}
m_lcd.vramaddr_cur += 2;
m_lcd.pagewidth_cur++;
@@ -568,11 +558,6 @@ void s3c44b0_device::lcd_dma_read(int count, uint8_t *data)
lcd_dma_reload();
}
m_lcd.pagewidth_cur = 0;
- vram = (uint8_t *)space.get_read_ptr(m_lcd.vramaddr_cur);
- }
- else
- {
- vram += 2;
}
data += 2;
}
@@ -702,8 +687,8 @@ uint32_t s3c44b0_device::video_update(screen_device &screen, bitmap_rgb32 &bitma
{
for (int y = 0; y < screen.height(); y++)
{
- uint32_t *scanline = &bitmap.pix32(y);
- uint8_t *vram = m_lcd.bitmap.get() + y * (m_lcd.hpos_max - m_lcd.hpos_min + 1);
+ uint32_t *scanline = &bitmap.pix(y);
+ uint8_t const *vram = m_lcd.bitmap.get() + y * (m_lcd.hpos_max - m_lcd.hpos_min + 1);
for (int x = 0; x < screen.width(); x++)
{
*scanline++ = rgb_t(vram[0], vram[1], vram[2]);
@@ -716,14 +701,13 @@ uint32_t s3c44b0_device::video_update(screen_device &screen, bitmap_rgb32 &bitma
{
for (int y = 0; y < screen.height(); y++)
{
- uint32_t *scanline = &bitmap.pix32(y);
- memset(scanline, 0, screen.width() * 4);
+ std::fill_n(&bitmap.pix(y), screen.width(), 0);
}
}
return 0;
}
-READ32_MEMBER( s3c44b0_device::lcd_r )
+uint32_t s3c44b0_device::lcd_r(offs_t offset, uint32_t mem_mask)
{
uint32_t data = ((uint32_t*)&m_lcd.regs)[offset];
switch (offset)
@@ -826,7 +810,7 @@ void s3c44b0_device::lcd_recalc()
lcd_stop();
}
-WRITE32_MEMBER( s3c44b0_device::lcd_w )
+void s3c44b0_device::lcd_w(offs_t offset, uint32_t data, uint32_t mem_mask)
{
uint32_t old_value = ((uint32_t*)&m_lcd.regs)[offset];
// verboselog( *this, 9, "(LCD) %08X <- %08X\n", S3C44B0_BASE_LCD + (offset << 2), data);
@@ -857,14 +841,14 @@ uint32_t s3c44b0_device::get_mclk()
return (uint32_t)((double)((mdiv + 8) * clock()) / (double)((pdiv + 2) * (1 << sdiv)));
}
-READ32_MEMBER( s3c44b0_device::clkpow_r )
+uint32_t s3c44b0_device::clkpow_r(offs_t offset, uint32_t mem_mask)
{
uint32_t data = ((uint32_t*)&m_clkpow.regs)[offset];
verboselog( *this, 9, "(CLKPOW) %08X -> %08X\n", S3C44B0_BASE_CLKPOW + (offset << 2), data);
return data;
}
-WRITE32_MEMBER( s3c44b0_device::clkpow_w )
+void s3c44b0_device::clkpow_w(offs_t offset, uint32_t data, uint32_t mem_mask)
{
verboselog( *this, 9, "(CLKPOW) %08X <- %08X\n", S3C44B0_BASE_CLKPOW + (offset << 2), data);
COMBINE_DATA(&((uint32_t*)&m_clkpow.regs)[offset]);
@@ -905,7 +889,7 @@ void s3c44b0_device::check_pending_irq()
m_irq.regs.i_ispr |= (1 << int_type);
if (m_irq.line_irq != ASSERT_LINE)
{
- m_cpu->set_input_line(ARM7_IRQ_LINE, ASSERT_LINE);
+ m_cpu->set_input_line(arm7_cpu_device::ARM7_IRQ_LINE, ASSERT_LINE);
m_irq.line_irq = ASSERT_LINE;
}
}
@@ -913,7 +897,7 @@ void s3c44b0_device::check_pending_irq()
{
if (m_irq.line_irq != CLEAR_LINE)
{
- m_cpu->set_input_line(ARM7_IRQ_LINE, CLEAR_LINE);
+ m_cpu->set_input_line(arm7_cpu_device::ARM7_IRQ_LINE, CLEAR_LINE);
m_irq.line_irq = CLEAR_LINE;
}
}
@@ -921,15 +905,9 @@ void s3c44b0_device::check_pending_irq()
temp = (m_irq.regs.intpnd & ~m_irq.regs.intmsk) & m_irq.regs.intmod;
if (temp != 0)
{
- uint32_t int_type = 0;
- while ((temp & 1) == 0)
- {
- int_type++;
- temp = temp >> 1;
- }
if (m_irq.line_fiq != ASSERT_LINE)
{
- m_cpu->set_input_line(ARM7_FIRQ_LINE, ASSERT_LINE);
+ m_cpu->set_input_line(arm7_cpu_device::ARM7_FIRQ_LINE, ASSERT_LINE);
m_irq.line_fiq = ASSERT_LINE;
}
}
@@ -937,7 +915,7 @@ void s3c44b0_device::check_pending_irq()
{
if (m_irq.line_fiq != CLEAR_LINE)
{
- m_cpu->set_input_line(ARM7_FIRQ_LINE, CLEAR_LINE);
+ m_cpu->set_input_line(arm7_cpu_device::ARM7_FIRQ_LINE, CLEAR_LINE);
m_irq.line_fiq = CLEAR_LINE;
}
}
@@ -952,17 +930,8 @@ void s3c44b0_device::request_irq(uint32_t int_type)
void s3c44b0_device::check_pending_eint()
{
- uint32_t temp = m_gpio.regs.extintpnd;
- if (temp != 0)
- {
- uint32_t int_type = 0;
- while ((temp & 1) == 0)
- {
- int_type++;
- temp = temp >> 1;
- }
+ if (m_gpio.regs.extintpnd != 0)
request_irq(S3C44B0_INT_EINT4_7);
- }
}
void s3c44b0_device::request_eint(uint32_t number)
@@ -979,14 +948,14 @@ void s3c44b0_device::request_eint(uint32_t number)
}
}
-READ32_MEMBER( s3c44b0_device::irq_r )
+uint32_t s3c44b0_device::irq_r(offs_t offset, uint32_t mem_mask)
{
uint32_t data = ((uint32_t*)&m_irq.regs)[offset];
verboselog( *this, 9, "(IRQ) %08X -> %08X\n", S3C44B0_BASE_INT + (offset << 2), data);
return data;
}
-WRITE32_MEMBER( s3c44b0_device::irq_w )
+void s3c44b0_device::irq_w(offs_t offset, uint32_t data, uint32_t mem_mask)
{
verboselog( *this, 9, "(IRQ) %08X <- %08X\n", S3C44B0_BASE_INT + (offset << 2), data);
COMBINE_DATA(&((uint32_t*)&m_irq.regs)[offset]);
@@ -1029,7 +998,7 @@ uint16_t s3c44b0_device::pwm_calc_observation(int ch)
return cnto;
}
-READ32_MEMBER( s3c44b0_device::pwm_r )
+uint32_t s3c44b0_device::pwm_r(offs_t offset, uint32_t mem_mask)
{
uint32_t data = ((uint32_t*)&m_pwm.regs)[offset];
switch (offset)
@@ -1135,9 +1104,8 @@ void s3c44b0_device::pwm_start(int timer)
break;
default :
{
- cnt = cmp = auto_reload = 0;
+ fatalerror("Invalid timer index %d!", timer);
}
- break;
}
// hz = freq / (cnt - cmp + 1);
if (cnt < 2)
@@ -1184,7 +1152,7 @@ void s3c44b0_device::pwm_recalc(int timer)
pwm_stop(timer);
}
-WRITE32_MEMBER( s3c44b0_device::pwm_w )
+void s3c44b0_device::pwm_w(offs_t offset, uint32_t data, uint32_t mem_mask)
{
uint32_t old_value = ((uint32_t*)&m_pwm.regs)[offset];
verboselog( *this, 9, "(PWM) %08X <- %08X\n", S3C44B0_BASE_PWM + (offset << 2), data);
@@ -1241,22 +1209,17 @@ TIMER_CALLBACK_MEMBER( s3c44b0_device::pwm_timer_exp )
inline void s3c44b0_device::iface_i2c_scl_w(int state)
{
- if (!m_scl_w_cb.isnull())
- (m_scl_w_cb)( state);
+ m_scl_w_cb(state);
}
inline void s3c44b0_device::iface_i2c_sda_w(int state)
{
- if (!m_sda_w_cb.isnull())
- (m_sda_w_cb)( state);
+ m_sda_w_cb(state);
}
inline int s3c44b0_device::iface_i2c_sda_r()
{
- if (!m_sda_r_cb.isnull())
- return (m_sda_r_cb)();
- else
- return 0;
+ return m_sda_r_cb();
}
void s3c44b0_device::i2c_send_start()
@@ -1350,7 +1313,7 @@ void s3c44b0_device::iic_resume()
m_iic.timer->adjust(attotime::from_usec( 1), 0);
}
-READ32_MEMBER( s3c44b0_device::iic_r )
+uint32_t s3c44b0_device::iic_r(offs_t offset, uint32_t mem_mask)
{
uint32_t data = ((uint32_t*)&m_iic.regs)[offset];
switch (offset)
@@ -1365,7 +1328,7 @@ READ32_MEMBER( s3c44b0_device::iic_r )
return data;
}
-WRITE32_MEMBER( s3c44b0_device::iic_w )
+void s3c44b0_device::iic_w(offs_t offset, uint32_t data, uint32_t mem_mask)
{
uint32_t old_value = ((uint32_t*)&m_iic.regs)[offset];
verboselog( *this, 9, "(IIC) %08X <- %08X\n", S3C44B0_BASE_IIC + (offset << 2), data);
@@ -1463,19 +1426,15 @@ TIMER_CALLBACK_MEMBER( s3c44b0_device::iic_timer_exp )
inline uint32_t s3c44b0_device::iface_gpio_port_r(int port)
{
- if (!m_port_r_cb.isnull())
- return (m_port_r_cb)(port);
- else
- return 0;
+ return m_port_r_cb(port);
}
inline void s3c44b0_device::iface_gpio_port_w(int port, uint32_t data)
{
- if (!m_port_w_cb.isnull())
- (m_port_w_cb)(port, data, 0xffff);
+ m_port_w_cb(port, data, 0xffff);
}
-READ32_MEMBER( s3c44b0_device::gpio_r )
+uint32_t s3c44b0_device::gpio_r(offs_t offset, uint32_t mem_mask)
{
uint32_t data = ((uint32_t*)&m_gpio.regs)[offset];
switch (offset)
@@ -1520,7 +1479,7 @@ READ32_MEMBER( s3c44b0_device::gpio_r )
return data;
}
-WRITE32_MEMBER( s3c44b0_device::gpio_w )
+void s3c44b0_device::gpio_w(offs_t offset, uint32_t data, uint32_t mem_mask)
{
uint32_t old_value = ((uint32_t*)&m_gpio.regs)[offset];
verboselog( *this, 9, "(GPIO) %08X <- %08X\n", S3C44B0_BASE_GPIO + (offset << 2), data);
@@ -1620,27 +1579,27 @@ void s3c44b0_device::uart_w(int ch, uint32_t offset, uint32_t data, uint32_t mem
}
}
-READ32_MEMBER( s3c44b0_device::uart_0_r )
+uint32_t s3c44b0_device::uart_0_r(offs_t offset, uint32_t mem_mask)
{
uint32_t data = uart_r(0, offset);
// verboselog( *this, 9, "(UART 0) %08X -> %08X\n", S3C44B0_BASE_UART_0 + (offset << 2), data);
return data;
}
-READ32_MEMBER( s3c44b0_device::uart_1_r )
+uint32_t s3c44b0_device::uart_1_r(offs_t offset, uint32_t mem_mask)
{
uint32_t data = uart_r(1, offset);
// verboselog( *this, 9, "(UART 1) %08X -> %08X\n", S3C44B0_BASE_UART_1 + (offset << 2), data);
return data;
}
-WRITE32_MEMBER( s3c44b0_device::uart_0_w )
+void s3c44b0_device::uart_0_w(offs_t offset, uint32_t data, uint32_t mem_mask)
{
verboselog( *this, 9, "(UART 0) %08X <- %08X (%08X)\n", S3C44B0_BASE_UART_0 + (offset << 2), data, mem_mask);
uart_w(0, offset, data, mem_mask);
}
-WRITE32_MEMBER( s3c44b0_device::uart_1_w )
+void s3c44b0_device::uart_1_w(offs_t offset, uint32_t data, uint32_t mem_mask)
{
verboselog( *this, 9, "(UART 1) %08X <- %08X (%08X)\n", S3C44B0_BASE_UART_1 + (offset << 2), data, mem_mask);
uart_w(1, offset, data, mem_mask);
@@ -1671,7 +1630,7 @@ uint16_t s3c44b0_device::wdt_calc_current_count()
return 0;
}
-READ32_MEMBER( s3c44b0_device::wdt_r )
+uint32_t s3c44b0_device::wdt_r(offs_t offset, uint32_t mem_mask)
{
uint32_t data = ((uint32_t*)&m_wdt.regs)[offset];
switch (offset)
@@ -1719,7 +1678,7 @@ void s3c44b0_device::wdt_recalc()
wdt_stop();
}
-WRITE32_MEMBER( s3c44b0_device::wdt_w )
+void s3c44b0_device::wdt_w(offs_t offset, uint32_t data, uint32_t mem_mask)
{
uint32_t old_value = ((uint32_t*)&m_wdt.regs)[offset];
verboselog( *this, 9, "(WDT) %08X <- %08X\n", S3C44B0_BASE_WDT + (offset << 2), data);
@@ -1753,14 +1712,14 @@ TIMER_CALLBACK_MEMBER( s3c44b0_device::wdt_timer_exp )
/* CPU Wrapper */
-READ32_MEMBER( s3c44b0_device::cpuwrap_r )
+uint32_t s3c44b0_device::cpuwrap_r(offs_t offset, uint32_t mem_mask)
{
uint32_t data = ((uint32_t*)&m_cpuwrap.regs)[offset];
verboselog( *this, 9, "(CPUWRAP) %08X -> %08X\n", S3C44B0_BASE_CPU_WRAPPER + (offset << 2), data);
return data;
}
-WRITE32_MEMBER( s3c44b0_device::cpuwrap_w )
+void s3c44b0_device::cpuwrap_w(offs_t offset, uint32_t data, uint32_t mem_mask)
{
verboselog( *this, 9, "(CPUWRAP) %08X <- %08X\n", S3C44B0_BASE_CPU_WRAPPER + (offset << 2), data);
COMBINE_DATA(&((uint32_t*)&m_cpuwrap.regs)[offset]);
@@ -1768,7 +1727,7 @@ WRITE32_MEMBER( s3c44b0_device::cpuwrap_w )
/* A/D Converter */
-READ32_MEMBER( s3c44b0_device::adc_r )
+uint32_t s3c44b0_device::adc_r(offs_t offset, uint32_t mem_mask)
{
uint32_t data = ((uint32_t*)&m_adc.regs)[offset];
verboselog( *this, 9, "(ADC) %08X -> %08X\n", S3C44B0_BASE_ADC + (offset << 2), data);
@@ -1802,7 +1761,7 @@ void s3c44b0_device::adc_recalc()
adc_stop();
}
-WRITE32_MEMBER( s3c44b0_device::adc_w )
+void s3c44b0_device::adc_w(offs_t offset, uint32_t data, uint32_t mem_mask)
{
uint32_t old_value = ((uint32_t*)&m_wdt.regs)[offset];
verboselog( *this, 9, "(ADC) %08X <- %08X\n", S3C44B0_BASE_ADC + (offset << 2), data);
@@ -1830,7 +1789,7 @@ TIMER_CALLBACK_MEMBER( s3c44b0_device::adc_timer_exp )
/* SIO */
-READ32_MEMBER( s3c44b0_device::sio_r )
+uint32_t s3c44b0_device::sio_r(offs_t offset, uint32_t mem_mask)
{
uint32_t data = ((uint32_t*)&m_sio.regs)[offset];
verboselog( *this, 9, "(SIO) %08X -> %08X\n", S3C44B0_BASE_SIO + (offset << 2), data);
@@ -1866,7 +1825,7 @@ void s3c44b0_device::sio_recalc()
sio_stop();
}
-WRITE32_MEMBER( s3c44b0_device::sio_w )
+void s3c44b0_device::sio_w(offs_t offset, uint32_t data, uint32_t mem_mask)
{
uint32_t old_value = ((uint32_t*)&m_sio.regs)[offset];
verboselog( *this, 9, "(SIO) %08X <- %08X\n", S3C44B0_BASE_SIO + (offset << 2), data);
@@ -1899,10 +1858,9 @@ TIMER_CALLBACK_MEMBER( s3c44b0_device::sio_timer_exp )
/* IIS */
-inline void s3c44b0_device::iface_i2s_data_w(address_space &space, int ch, uint16_t data)
+inline void s3c44b0_device::iface_i2s_data_w(int ch, uint16_t data)
{
- if (!m_data_w_cb.isnull())
- (m_data_w_cb)(ch, data, 0);
+ m_data_w_cb(ch, data, 0);
}
void s3c44b0_device::iis_start()
@@ -1926,14 +1884,14 @@ void s3c44b0_device::iis_stop()
m_iis.timer->adjust(attotime::never, 0);
}
-READ32_MEMBER( s3c44b0_device::iis_r )
+uint32_t s3c44b0_device::iis_r(offs_t offset, uint32_t mem_mask)
{
uint32_t data = ((uint32_t*)&m_iis.regs)[offset];
verboselog( *this, 9, "(IIS) %08X -> %08X\n", S3C44B0_BASE_IIS + (offset << 2), data);
return data;
}
-WRITE32_MEMBER( s3c44b0_device::iis_w )
+void s3c44b0_device::iis_w(offs_t offset, uint32_t data, uint32_t mem_mask)
{
uint32_t old_value = ((uint32_t*)&m_iis.regs)[offset];
verboselog( *this, 9, "(IIS) %08X <- %08X\n", S3C44B0_BASE_IIS + (offset << 2), data);
@@ -1968,8 +1926,8 @@ WRITE32_MEMBER( s3c44b0_device::iis_w )
if (m_iis.fifo_index == 2)
{
m_iis.fifo_index = 0;
- iface_i2s_data_w(space, 0, m_iis.fifo[0]);
- iface_i2s_data_w(space, 1, m_iis.fifo[1]);
+ iface_i2s_data_w(0, m_iis.fifo[0]);
+ iface_i2s_data_w(1, m_iis.fifo[1]);
}
}
break;
@@ -2073,27 +2031,27 @@ void s3c44b0_device::zdma_w(int ch, uint32_t offset, uint32_t data, uint32_t mem
}
}
-READ32_MEMBER( s3c44b0_device::zdma_0_r )
+uint32_t s3c44b0_device::zdma_0_r(offs_t offset, uint32_t mem_mask)
{
uint32_t data = zdma_r(0, offset);
verboselog( *this, 9, "(ZDMA 0) %08X -> %08X\n", S3C44B0_BASE_ZDMA_0 + (offset << 2), data);
return data;
}
-READ32_MEMBER( s3c44b0_device::zdma_1_r )
+uint32_t s3c44b0_device::zdma_1_r(offs_t offset, uint32_t mem_mask)
{
uint32_t data = zdma_r(1, offset);
verboselog( *this, 9, "(ZDMA 1) %08X -> %08X\n", S3C44B0_BASE_ZDMA_1 + (offset << 2), data);
return data;
}
-WRITE32_MEMBER( s3c44b0_device::zdma_0_w )
+void s3c44b0_device::zdma_0_w(offs_t offset, uint32_t data, uint32_t mem_mask)
{
verboselog( *this, 9, "(ZDMA 0) %08X <- %08X (%08X)\n", S3C44B0_BASE_ZDMA_0 + (offset << 2), data, mem_mask);
zdma_w(0, offset, data, mem_mask);
}
-WRITE32_MEMBER( s3c44b0_device::zdma_1_w )
+void s3c44b0_device::zdma_1_w(offs_t offset, uint32_t data, uint32_t mem_mask)
{
verboselog( *this, 9, "(ZDMA 1) %08X <- %08X (%08X)\n", S3C44B0_BASE_ZDMA_1 + (offset << 2), data, mem_mask);
zdma_w(1, offset, data, mem_mask);
@@ -2213,27 +2171,27 @@ void s3c44b0_device::bdma_w(int ch, uint32_t offset, uint32_t data, uint32_t mem
}
}
-READ32_MEMBER( s3c44b0_device::bdma_0_r )
+uint32_t s3c44b0_device::bdma_0_r(offs_t offset, uint32_t mem_mask)
{
uint32_t data = bdma_r(0, offset);
verboselog( *this, 9, "(BDMA 0) %08X -> %08X\n", S3C44B0_BASE_BDMA_0 + (offset << 2), data);
return data;
}
-READ32_MEMBER( s3c44b0_device::bdma_1_r )
+uint32_t s3c44b0_device::bdma_1_r(offs_t offset, uint32_t mem_mask)
{
uint32_t data = bdma_r(1, offset);
verboselog( *this, 9, "(BDMA 1) %08X -> %08X\n", S3C44B0_BASE_BDMA_1 + (offset << 2), data);
return data;
}
-WRITE32_MEMBER( s3c44b0_device::bdma_0_w )
+void s3c44b0_device::bdma_0_w(offs_t offset, uint32_t data, uint32_t mem_mask)
{
verboselog( *this, 9, "(BDMA 0) %08X <- %08X (%08X)\n", S3C44B0_BASE_BDMA_0 + (offset << 2), data, mem_mask);
bdma_w(0, offset, data, mem_mask);
}
-WRITE32_MEMBER( s3c44b0_device::bdma_1_w )
+void s3c44b0_device::bdma_1_w(offs_t offset, uint32_t data, uint32_t mem_mask)
{
verboselog( *this, 9, "(BDMA 1) %08X <- %08X (%08X)\n", S3C44B0_BASE_BDMA_1 + (offset << 2), data, mem_mask);
bdma_w(1, offset, data, mem_mask);