More clean-ups.

This commit is contained in:
angelosa 2017-01-01 22:45:31 +01:00
parent 179883f35e
commit 9fcb8359e6
5 changed files with 34 additions and 58 deletions

View File

@ -257,7 +257,6 @@ public:
m_dpram(*this, "dpram"),
m_paletteram(*this, "paletteram"),
m_spriteram(*this, "spriteram"),
m_serial_comms_ram(*this, "serialram"),
m_rozram(*this, "rozram"),
m_roz_ctrl(*this, "rozctrl"),
m_c45_road(*this, "c45_road")
@ -324,10 +323,6 @@ public:
DECLARE_WRITE16_MEMBER( rozram_word_w );
DECLARE_READ16_MEMBER( gfx_ctrl_r );
DECLARE_WRITE16_MEMBER( gfx_ctrl_w );
DECLARE_READ16_MEMBER( serial_comms_ram_r );
DECLARE_WRITE16_MEMBER( serial_comms_ram_w );
DECLARE_READ16_MEMBER( serial_comms_ctrl_r );
DECLARE_WRITE16_MEMBER( serial_comms_ctrl_w );
void draw_sprite_init();
void update_palette();
@ -343,7 +338,6 @@ public:
required_shared_ptr<uint8_t> m_dpram; /* 2Kx8 */
required_shared_ptr<uint16_t> m_paletteram;
optional_shared_ptr<uint16_t> m_spriteram;
optional_shared_ptr<uint16_t> m_serial_comms_ram;
optional_shared_ptr<uint16_t> m_rozram;
optional_shared_ptr<uint16_t> m_roz_ctrl;
tilemap_t *m_tilemap_roz;

View File

@ -1,11 +1,12 @@
// license:BSD-3-Clause
// copyright-holders:<author_name>
// copyright-holders:Angelo Salese
/***************************************************************************
Namco C139 - Serial I/F Controller
TODO:
- Make this to actually work!
- Is RAM shared with a specific CPU other than master/slave?
***************************************************************************/
@ -33,7 +34,7 @@ ADDRESS_MAP_END
DEVICE_ADDRESS_MAP_START( regs_map, 16, namco_c139_device )
AM_RANGE(0x00, 0x00) AM_READ(status_r) // WRITE clears flags
// AM_RANGE(0x02, 0x02) // settings?
AM_RANGE(0x02, 0x02) AM_NOP // settings?
// AM_RANGE(0x0a, 0x0a) // WRITE tx_w
// AM_RANGE(0x0c, 0x0c) // READ rx_r
// AM_RANGE(0x0e, 0x0e) //

View File

@ -76,23 +76,23 @@ namco_c148_device::namco_c148_device(const machine_config &mconfig, const char *
// (*) denotes master CPU only
DEVICE_ADDRESS_MAP_START( map, 16, namco_c148_device )
ADDRESS_MAP_GLOBAL_MASK(0x3e000)
AM_RANGE(0x06000, 0x06000) AM_READWRITE8(cpu_irq_level_r,cpu_irq_level_w,0x00ff) // CPUIRQ lv
AM_RANGE(0x08000, 0x08000) AM_READWRITE8(ex_irq_level_r,ex_irq_level_w,0x00ff) // EXIRQ lv
AM_RANGE(0x0a000, 0x0a000) AM_READWRITE8(pos_irq_level_r,pos_irq_level_w,0x00ff) // POSIRQ lv
AM_RANGE(0x0c000, 0x0c000) AM_READWRITE8(sci_irq_level_r,sci_irq_level_w,0x00ff) // SCIRQ lv
AM_RANGE(0x0e000, 0x0e000) AM_READWRITE8(vblank_irq_level_r,vblank_irq_level_w,0x00ff) // VBlank IRQ lv
AM_RANGE(0x04000, 0x05fff) AM_READWRITE8(bus_ctrl_r, bus_ctrl_w, 0x00ff)
AM_RANGE(0x06000, 0x07fff) AM_READWRITE8(cpu_irq_level_r,cpu_irq_level_w,0x00ff) // CPUIRQ lv
AM_RANGE(0x08000, 0x09fff) AM_READWRITE8(ex_irq_level_r,ex_irq_level_w,0x00ff) // EXIRQ lv
AM_RANGE(0x0a000, 0x0bfff) AM_READWRITE8(pos_irq_level_r,pos_irq_level_w,0x00ff) // POSIRQ lv
AM_RANGE(0x0c000, 0x0dfff) AM_READWRITE8(sci_irq_level_r,sci_irq_level_w,0x00ff) // SCIRQ lv
AM_RANGE(0x0e000, 0x0ffff) AM_READWRITE8(vblank_irq_level_r,vblank_irq_level_w,0x00ff) // VBlank IRQ lv
AM_RANGE(0x10000, 0x10000) AM_WRITE(cpu_irq_assert_w)
AM_RANGE(0x16000, 0x16000) AM_READWRITE(cpu_irq_ack_r, cpu_irq_ack_w) // CPUIRQ ack
AM_RANGE(0x18000, 0x18000) AM_READWRITE(ex_irq_ack_r, ex_irq_ack_w) // EXIRQ ack
AM_RANGE(0x1a000, 0x1a000) AM_READWRITE(pos_irq_ack_r, pos_irq_ack_w) // POSIRQ ack
AM_RANGE(0x1c000, 0x1c000) AM_READWRITE(sci_irq_ack_r, sci_irq_ack_w) // SCIRQ ack
AM_RANGE(0x1e000, 0x1e000) AM_READWRITE(vblank_irq_ack_r, vblank_irq_ack_w) // VBlank IRQ ack
AM_RANGE(0x20000, 0x20000) AM_READ8(ext_r,0x00ff) // EEPROM ready status (*)
AM_RANGE(0x22000, 0x22000) AM_WRITE8(ext1_w,0x00ff) // sound CPU reset (*)
AM_RANGE(0x24000, 0x24000) AM_WRITE8(ext2_w,0x00ff) // slave & i/o reset (*)
AM_RANGE(0x26000, 0x26000) AM_NOP // watchdog
AM_RANGE(0x10000, 0x11fff) AM_WRITE(cpu_irq_assert_w)
AM_RANGE(0x16000, 0x17fff) AM_READWRITE(cpu_irq_ack_r, cpu_irq_ack_w) // CPUIRQ ack
AM_RANGE(0x18000, 0x19fff) AM_READWRITE(ex_irq_ack_r, ex_irq_ack_w) // EXIRQ ack
AM_RANGE(0x1a000, 0x1bfff) AM_READWRITE(pos_irq_ack_r, pos_irq_ack_w) // POSIRQ ack
AM_RANGE(0x1c000, 0x1dfff) AM_READWRITE(sci_irq_ack_r, sci_irq_ack_w) // SCIRQ ack
AM_RANGE(0x1e000, 0x1ffff) AM_READWRITE(vblank_irq_ack_r, vblank_irq_ack_w) // VBlank IRQ ack
AM_RANGE(0x20000, 0x21fff) AM_READ8(ext_r,0x00ff) // EEPROM ready status (*)
AM_RANGE(0x22000, 0x23fff) AM_READNOP AM_WRITE8(ext1_w,0x00ff) // sound CPU reset (*)
AM_RANGE(0x24000, 0x25fff) AM_WRITE8(ext2_w,0x00ff) // slave & i/o reset (*)
AM_RANGE(0x26000, 0x27fff) AM_NOP // watchdog
ADDRESS_MAP_END
@ -184,6 +184,17 @@ WRITE8_MEMBER( namco_c148_device::ext2_w )
// TODO: bit 1/2 in Winning Run GPU might be irq enable?
}
READ8_MEMBER( namco_c148_device::bus_ctrl_r )
{
return m_bus_reg;
}
WRITE8_MEMBER( namco_c148_device::bus_ctrl_w )
{
m_bus_reg = data & 7;
}
WRITE16_MEMBER( namco_c148_device::cpu_irq_assert_w)
{
// TODO: Starblade relies on this for showing large polygons, is it the right place?

View File

@ -91,6 +91,9 @@ public:
DECLARE_WRITE8_MEMBER( ext_posirq_line_w );
DECLARE_WRITE16_MEMBER( cpu_irq_assert_w );
DECLARE_READ8_MEMBER( bus_ctrl_r );
DECLARE_WRITE8_MEMBER( bus_ctrl_w );
DECLARE_READ8_MEMBER( ext_r );
DECLARE_WRITE8_MEMBER( ext1_w );
DECLARE_WRITE8_MEMBER( ext2_w );
@ -121,6 +124,7 @@ private:
}m_irqlevel;
uint8_t m_posirq_line;
uint8_t m_bus_reg;
void flush_irq_acks();
};

View File

@ -178,40 +178,6 @@ READ8_MEMBER( namcos2_shared_state::namcos2_68k_eeprom_r )
return m_eeprom[offset];
}
/**************************************************************/
/* 68000 Shared serial communications processor (CPU5?) */
/**************************************************************/
READ16_MEMBER( namcos2_state::serial_comms_ram_r ){
return m_serial_comms_ram[offset];
}
WRITE16_MEMBER( namcos2_state::serial_comms_ram_w ){
COMBINE_DATA( &m_serial_comms_ram[offset] );
}
READ16_MEMBER( namcos2_state::serial_comms_ctrl_r )
{
uint16_t retval = m_serial_comms_ctrl[offset];
switch(offset){
case 0x00:
retval |= 0x0004; /* Set READY? status bit */
break;
default:
break;
}
return retval;
}
WRITE16_MEMBER( namcos2_state::serial_comms_ctrl_w )
{
COMBINE_DATA( &m_serial_comms_ctrl[offset] );
}
/*************************************************************/
/* 68000 Shared protection/random key generator */
/*************************************************************