z80scc: Read/write handler cleanups (nw)

- Simplify handler signatures
- Rename cd_ab_r/w and ba_cd_inv_r/w to dc_ab_r/w and ab_dc_r/w to be more hardware-accurate
- Eliminate cd_ba_r/w and ba_cd_r/w (no legitimate uses in existing code)

mvme162: Fix SCC addressing (nw)

Note that the SCC's address inputs are A/~B and D/~C, rather than the Z80 SIO's B/~A and C/~D.
This commit is contained in:
AJR 2019-06-12 19:44:59 -04:00
parent 788409adea
commit c92a21ebb9
19 changed files with 78 additions and 171 deletions

View File

@ -285,7 +285,7 @@ void edge1_device_base::map(address_map &map)
*/ */
map(0x000, 0x003).rw(FUNC(edge1_device_base::reg0_r), FUNC(edge1_device_base::reg0_w)); map(0x000, 0x003).rw(FUNC(edge1_device_base::reg0_r), FUNC(edge1_device_base::reg0_w));
map(0x010, 0x01f).rw("scc", FUNC(z80scc_device::cd_ab_r), FUNC(z80scc_device::cd_ab_w)).umask32(0x000000ff); map(0x010, 0x01f).rw("scc", FUNC(z80scc_device::dc_ab_r), FUNC(z80scc_device::dc_ab_w)).umask32(0x000000ff);
map(0x100, 0x103).rw(FUNC(edge1_device_base::control_r), FUNC(edge1_device_base::control_w)); map(0x100, 0x103).rw(FUNC(edge1_device_base::control_r), FUNC(edge1_device_base::control_w));
map(0x104, 0x107).rw(FUNC(edge1_device_base::status_r), FUNC(edge1_device_base::status_w)); map(0x104, 0x107).rw(FUNC(edge1_device_base::status_r), FUNC(edge1_device_base::status_w));
@ -353,7 +353,7 @@ void edge2plus_processor_device_base::map(address_map &map)
map(0x008, 0x008).lr8("mouse_x", []() { return 0; }); map(0x008, 0x008).lr8("mouse_x", []() { return 0; });
map(0x00c, 0x00c).lr8("mouse_y", []() { return 0; }); map(0x00c, 0x00c).lr8("mouse_y", []() { return 0; });
map(0x010, 0x01f).rw("scc", FUNC(z80scc_device::cd_ab_r), FUNC(z80scc_device::cd_ab_w)).umask32(0x000000ff); map(0x010, 0x01f).rw("scc", FUNC(z80scc_device::dc_ab_r), FUNC(z80scc_device::dc_ab_w)).umask32(0x000000ff);
map(0x100, 0x103).rw(FUNC(edge2plus_processor_device_base::control_r), FUNC(edge2plus_processor_device_base::control_w)); map(0x100, 0x103).rw(FUNC(edge2plus_processor_device_base::control_r), FUNC(edge2plus_processor_device_base::control_w));
map(0x104, 0x107).rw(FUNC(edge2plus_processor_device_base::status_r), FUNC(edge2plus_processor_device_base::status_w)); map(0x104, 0x107).rw(FUNC(edge2plus_processor_device_base::status_r), FUNC(edge2plus_processor_device_base::status_w));

View File

@ -224,7 +224,7 @@ void gtdb_device::map(address_map &map)
// Note: FDMDISK GTII register ODT gives a different serial mapping, but does // Note: FDMDISK GTII register ODT gives a different serial mapping, but does
// not seem to be correct; the mapping here matches software usage elsewhere. // not seem to be correct; the mapping here matches software usage elsewhere.
map(0x210, 0x21f).rw(m_scc, FUNC(z80scc_device::cd_ab_r), FUNC(z80scc_device::cd_ab_w)).umask32(0x000000ff); map(0x210, 0x21f).rw(m_scc, FUNC(z80scc_device::dc_ab_r), FUNC(z80scc_device::dc_ab_w)).umask32(0x000000ff);
map(0x300, 0x303).r(FUNC(gtdb_device::fifo_control_r)); map(0x300, 0x303).r(FUNC(gtdb_device::fifo_control_r));

View File

@ -927,177 +927,88 @@ WRITE8_MEMBER( z80scc_device::zbus_w )
} }
//------------------------------------------------- //-------------------------------------------------
// cd_ab_r - Universal Bus read // dc_ab_r - Universal Bus read
//------------------------------------------------- //-------------------------------------------------
READ8_MEMBER( z80scc_device::cd_ab_r ) uint8_t z80scc_device::z80scc_device::dc_ab_r(offs_t offset)
{ {
int ba = BIT(offset, 0); int ab = BIT(offset, 0);
int cd = BIT(offset, 1); int dc = BIT(offset, 1);
z80scc_channel *channel = ba ? m_chanA : m_chanB; z80scc_channel *channel = ab ? m_chanA : m_chanB;
/* Expell non-Universal Bus variants */ /* Expell non-Universal Bus variants */
if ( !(m_variant & SET_Z85X3X)) if ( !(m_variant & SET_Z85X3X))
{ {
logerror(" cd_ab_r not supported by this device variant, you should probably use combinations of c*_r/w and d*_r/w (see z80scc.h)\n"); logerror(" dc_ab_r not supported by this device variant, you should probably use combinations of c*_r/w and d*_r/w (see z80scc.h)\n");
return 0; return 0;
} }
// LOG("z80scc_device::cd_ba_r ba:%02x cd:%02x\n", ba, cd); // LOG("z80scc_device::dc_ab_r ab:%02x dc:%02x\n", ab, dc);
return cd ? channel->data_read() : channel->control_read(); return dc ? channel->data_read() : channel->control_read();
} }
//------------------------------------------------- //-------------------------------------------------
// cd_ab_w - Universal Bus write // dc_ab_w - Universal Bus write
//------------------------------------------------- //-------------------------------------------------
WRITE8_MEMBER( z80scc_device::cd_ab_w ) void z80scc_device::dc_ab_w(offs_t offset, uint8_t data)
{ {
int ba = BIT(offset, 0); int ab = BIT(offset, 0);
int cd = BIT(offset, 1); int dc = BIT(offset, 1);
z80scc_channel *channel = ba ? m_chanA : m_chanB; z80scc_channel *channel = ab ? m_chanA : m_chanB;
/* Expell non-Universal Bus variants */ /* Expell non-Universal Bus variants */
if ( !(m_variant & SET_Z85X3X) ) if ( !(m_variant & SET_Z85X3X) )
{ {
logerror(" cd_ab_w not supported by this device variant, you should probably use combinations of c*_r/w and d*_r/w (see z80scc.h)\n"); logerror(" dc_ab_w not supported by this device variant, you should probably use combinations of c*_r/w and d*_r/w (see z80scc.h)\n");
return; return;
} }
LOG(" cd_ab_w %02x => ba:%02x cd:%02x (ofs %d)\n", data, ba, cd, offset&3); LOG(" dc_ab_w %02x => ab:%02x dc:%02x (ofs %d)\n", data, ab, dc, offset&3);
if (cd) if (dc)
channel->data_write(data); channel->data_write(data);
else else
channel->control_write(data); channel->control_write(data);
} }
//------------------------------------------------- //-------------------------------------------------
// cd_ba_r - Universal Bus read // ab_dc_r - Universal Bus read
//------------------------------------------------- //-------------------------------------------------
READ8_MEMBER( z80scc_device::cd_ba_r ) uint8_t z80scc_device::ab_dc_r(offs_t offset)
{ {
int ba = BIT(offset, 0); int ab = BIT(offset, 1);
int cd = BIT(offset, 1); int dc = BIT(offset, 0);
z80scc_channel *channel = ba ? m_chanB : m_chanA; z80scc_channel *channel = ab ? m_chanA : m_chanB;
/* Expell non-Universal Bus variants */ /* Expell non-Universal Bus variants */
if ( !(m_variant & SET_Z85X3X)) if ( !(m_variant & SET_Z85X3X) )
{ {
logerror(" cd_ba_r not supported by this device variant, you should probably use combinations of c*_r/w and d*_r/w (see z80scc.h)\n"); logerror(" ab_dc_r not supported by this device variant, you should probably use combinations of c*_r/w and d*_r/w (see z80scc.h)\n");
return 0; return 0;
} }
// LOG("z80scc_device::cd_ba_r ba:%02x cd:%02x\n", ba, cd); // LOG("z80scc_device::ab_dc_r ab:%02x dc:%02x\n", ab, dc);
return cd ? channel->control_read() : channel->data_read(); return dc ? channel->data_read() : channel->control_read();
} }
//------------------------------------------------- //-------------------------------------------------
// cd_ba_w - Universal Bus write // ab_dc_w - Universal Bus read
//------------------------------------------------- //-------------------------------------------------
WRITE8_MEMBER( z80scc_device::cd_ba_w ) void z80scc_device::ab_dc_w(offs_t offset, uint8_t data)
{ {
int ba = BIT(offset, 0); int ab = BIT(offset, 1);
int cd = BIT(offset, 1); int dc = BIT(offset, 0);
z80scc_channel *channel = ba ? m_chanB : m_chanA; z80scc_channel *channel = ab ? m_chanA : m_chanB;
/* Expell non-Universal Bus variants */ /* Expell non-Universal Bus variants */
if ( !(m_variant & SET_Z85X3X) ) if ( !(m_variant & SET_Z85X3X) )
{ {
logerror(" cd_ba_w not supported by this device variant, you should probably use combinations of c*_r/w and d*_r/w (see z80scc.h)\n"); logerror(" ab_dc_w not supported by this device variant, you should probably use combinations of c*_r/w and d*_r/w (see z80scc.h)\n");
return; return;
} }
// LOG("z80scc_device::cd_ba_w ba:%02x cd:%02x\n", ba, cd); LOG("z80scc_device::ab_dc_w ab:%02x dc:%02x\n", ab, dc);
if (cd)
channel->control_write(data);
else
channel->data_write(data);
}
if (dc)
//-------------------------------------------------
// ba_cd_r - Universal Bus read
//-------------------------------------------------
READ8_MEMBER( z80scc_device::ba_cd_r )
{
int ba = BIT(offset, 1);
int cd = BIT(offset, 0);
z80scc_channel *channel = ba ? m_chanB : m_chanA;
/* Expell non-Universal Bus variants */
if ( !(m_variant & SET_Z85X3X) )
{
logerror(" ba_cd_r not supported by this device variant, you should probably use combinations of c*_r/w and d*_r/w (see z80scc.h)\n");
return 0;
}
// LOG("z80scc_device::ba_cd_r ba:%02x cd:%02x\n", ba, cd);
return cd ? channel->control_read() : channel->data_read();
}
//-------------------------------------------------
// ba_cd_w - Universal Bus write
//-------------------------------------------------
WRITE8_MEMBER( z80scc_device::ba_cd_w )
{
int ba = BIT(offset, 1);
int cd = BIT(offset, 0);
z80scc_channel *channel = ba ? m_chanB : m_chanA;
/* Expell non-Universal Bus variants */
if ( !(m_variant & SET_Z85X3X) )
{
logerror(" ba_cd_w not supported by this device variant, you should probably use combinations of c*_r/w and d*_r/w (see z80scc.h)\n");
return;
}
LOG("z80scc_device::ba_cd_w ba:%02x cd:%02x\n", ba, cd);
if (cd)
channel->control_write(data);
else
channel->data_write(data);
}
//-------------------------------------------------
// ba_cd_inv_r - Universal Bus read
//-------------------------------------------------
READ8_MEMBER( z80scc_device::ba_cd_inv_r )
{
int ba = BIT(offset, 1);
int cd = BIT(offset, 0);
z80scc_channel *channel = ba ? m_chanA : m_chanB;
/* Expell non-Universal Bus variants */
if ( !(m_variant & SET_Z85X3X) )
{
logerror(" ba_cd_inv_r not supported by this device variant, you should probably use combinations of c*_r/w and d*_r/w (see z80scc.h)\n");
return 0;
}
// LOG("z80scc_device::ba_cd_inv_r ba:%02x cd:%02x\n", ba, cd);
return cd ? channel->data_read() : channel->control_read();
}
//-------------------------------------------------
// ba_cd_inv_w - Universal Bus read
//-------------------------------------------------
WRITE8_MEMBER( z80scc_device::ba_cd_inv_w )
{
int ba = BIT(offset, 1);
int cd = BIT(offset, 0);
z80scc_channel *channel = ba ? m_chanA : m_chanB;
/* Expell non-Universal Bus variants */
if ( !(m_variant & SET_Z85X3X) )
{
logerror(" ba_cd_inv_w not supported by this device variant, you should probably use combinations of c*_r/w and d*_r/w (see z80scc.h)\n");
return;
}
LOG("z80scc_device::ba_cd_inv_w ba:%02x cd:%02x\n", ba, cd);
if (cd)
channel->data_write(data); channel->data_write(data);
else else
channel->control_write(data); channel->control_write(data);

View File

@ -353,14 +353,10 @@ public:
m_txcb = txb; m_txcb = txb;
} }
DECLARE_READ8_MEMBER( cd_ab_r ); uint8_t dc_ab_r(offs_t offset);
DECLARE_WRITE8_MEMBER( cd_ab_w ); void dc_ab_w(offs_t offset, uint8_t data);
DECLARE_READ8_MEMBER( cd_ba_r ); uint8_t ab_dc_r(offs_t offset);
DECLARE_WRITE8_MEMBER( cd_ba_w ); void ab_dc_w(offs_t offset, uint8_t data);
DECLARE_READ8_MEMBER( ba_cd_r );
DECLARE_WRITE8_MEMBER( ba_cd_w );
DECLARE_READ8_MEMBER( ba_cd_inv_r );
DECLARE_WRITE8_MEMBER( ba_cd_inv_w );
/* Definitions moved to z80scc.c for enhancements */ /* Definitions moved to z80scc.c for enhancements */
uint8_t da_r(offs_t offset); uint8_t da_r(offs_t offset);

View File

@ -468,7 +468,7 @@ void applix_state::applix_mem(address_map &map)
map(0x600080, 0x6000ff).w(FUNC(applix_state::dac_latch_w)); map(0x600080, 0x6000ff).w(FUNC(applix_state::dac_latch_w));
map(0x600100, 0x60017f).w(FUNC(applix_state::video_latch_w)); //video latch (=border colour, high nybble; video base, low nybble) (odd) map(0x600100, 0x60017f).w(FUNC(applix_state::video_latch_w)); //video latch (=border colour, high nybble; video base, low nybble) (odd)
map(0x600180, 0x6001ff).w(FUNC(applix_state::analog_latch_w)); map(0x600180, 0x6001ff).w(FUNC(applix_state::analog_latch_w));
map(0x700000, 0x700007).mirror(0x78).rw("scc", FUNC(scc8530_device::ba_cd_inv_r), FUNC(scc8530_device::ba_cd_inv_w)).umask16(0xff00).cswidth(16); map(0x700000, 0x700007).mirror(0x78).rw("scc", FUNC(scc8530_device::ab_dc_r), FUNC(scc8530_device::ab_dc_w)).umask16(0xff00).cswidth(16);
map(0x700080, 0x7000ff).r(FUNC(applix_state::applix_inputs_r)); map(0x700080, 0x7000ff).r(FUNC(applix_state::applix_inputs_r));
map(0x700100, 0x70011f).mirror(0x60).rw(m_via, FUNC(via6522_device::read), FUNC(via6522_device::write)).umask16(0xff00).cswidth(16); map(0x700100, 0x70011f).mirror(0x60).rw(m_via, FUNC(via6522_device::read), FUNC(via6522_device::write)).umask16(0xff00).cswidth(16);
map(0x700180, 0x700180).mirror(0x7c).rw(m_crtc, FUNC(mc6845_device::status_r), FUNC(mc6845_device::address_w)).cswidth(16); map(0x700180, 0x700180).mirror(0x7c).rw(m_crtc, FUNC(mc6845_device::status_r), FUNC(mc6845_device::address_w)).cswidth(16);

View File

@ -85,8 +85,8 @@ void hotstuff_state::hotstuff_map(address_map &map)
map(0x400000, 0x40ffff).ram(); map(0x400000, 0x40ffff).ram();
map(0x600000, 0x600003).rw("scc1", FUNC(z80scc_device::ba_cd_inv_r), FUNC(z80scc_device::ba_cd_inv_w)); map(0x600000, 0x600003).rw("scc1", FUNC(z80scc_device::ab_dc_r), FUNC(z80scc_device::ab_dc_w));
map(0x620000, 0x620003).rw("scc2", FUNC(z80scc_device::ba_cd_inv_r), FUNC(z80scc_device::ba_cd_inv_w)); map(0x620000, 0x620003).rw("scc2", FUNC(z80scc_device::ab_dc_r), FUNC(z80scc_device::ab_dc_w));
map(0x680000, 0x680001).lrw8("rtc_rw", map(0x680000, 0x680001).lrw8("rtc_rw",
[this](offs_t offset) { [this](offs_t offset) {
return m_rtc->read(offset^1); return m_rtc->read(offset^1);

View File

@ -529,8 +529,8 @@ void interpro_state::interpro_common_map(address_map &map)
map(0x7f000308, 0x7f000309).rw(FUNC(interpro_state::ctrl1_r), FUNC(interpro_state::ctrl1_w)); map(0x7f000308, 0x7f000309).rw(FUNC(interpro_state::ctrl1_r), FUNC(interpro_state::ctrl1_w));
map(0x7f00030c, 0x7f00030d).rw(FUNC(interpro_state::ctrl2_r), FUNC(interpro_state::ctrl2_w)); map(0x7f00030c, 0x7f00030d).rw(FUNC(interpro_state::ctrl2_r), FUNC(interpro_state::ctrl2_w));
map(0x7f000400, 0x7f00040f).rw(m_scc1, FUNC(z80scc_device::ba_cd_inv_r), FUNC(z80scc_device::ba_cd_inv_w)).umask32(0x000000ff); map(0x7f000400, 0x7f00040f).rw(m_scc1, FUNC(z80scc_device::ab_dc_r), FUNC(z80scc_device::ab_dc_w)).umask32(0x000000ff);
map(0x7f000410, 0x7f00041f).rw(m_scc2, FUNC(z80scc_device::ba_cd_inv_r), FUNC(z80scc_device::ba_cd_inv_w)).umask32(0x000000ff); map(0x7f000410, 0x7f00041f).rw(m_scc2, FUNC(z80scc_device::ab_dc_r), FUNC(z80scc_device::ab_dc_w)).umask32(0x000000ff);
map(0x7f000500, 0x7f000503).lrw8("rtc_rw", map(0x7f000500, 0x7f000503).lrw8("rtc_rw",
[this](offs_t offset) { [this](offs_t offset) {
return m_rtc->read(offset^1); return m_rtc->read(offset^1);

View File

@ -69,7 +69,7 @@ void lft_state::io_map(address_map &map)
//map(0x0080, 0x0087) // unknown device //map(0x0080, 0x0087) // unknown device
//map(0x00a0, 0x00a?) // unknown device //map(0x00a0, 0x00a?) // unknown device
//map(0x00c0, 0x00c7) // unknown device //map(0x00c0, 0x00c7) // unknown device
map(0x0100, 0x0107).rw(m_scc, FUNC(z80scc_device::cd_ab_r), FUNC(z80scc_device::cd_ab_w)).umask16(0x00ff); map(0x0100, 0x0107).rw(m_scc, FUNC(z80scc_device::dc_ab_r), FUNC(z80scc_device::dc_ab_w)).umask16(0x00ff);
map(0x0180, 0x01bf).rw(m_rtc, FUNC(mm58167_device::read), FUNC(mm58167_device::write)).umask16(0x00ff); map(0x0180, 0x01bf).rw(m_rtc, FUNC(mm58167_device::read), FUNC(mm58167_device::write)).umask16(0x00ff);
//map(0x0200, 0x0207) // unknown device //map(0x0200, 0x0207) // unknown device
} }

View File

@ -1293,8 +1293,8 @@ void mac128_state::mac512ke_map(address_map &map)
map(0x000000, 0x3fffff).rw(FUNC(mac128_state::ram_r), FUNC(mac128_state::ram_w)); map(0x000000, 0x3fffff).rw(FUNC(mac128_state::ram_r), FUNC(mac128_state::ram_w));
map(0x400000, 0x4fffff).rom().region("bootrom", 0).mirror(0x100000); map(0x400000, 0x4fffff).rom().region("bootrom", 0).mirror(0x100000);
map(0x600000, 0x6fffff).rw(FUNC(mac128_state::ram_600000_r), FUNC(mac128_state::ram_600000_w)); map(0x600000, 0x6fffff).rw(FUNC(mac128_state::ram_600000_r), FUNC(mac128_state::ram_600000_w));
map(0x800000, 0x9fffff).r(m_scc, FUNC(z80scc_device::cd_ab_r)).umask16(0xff00); map(0x800000, 0x9fffff).r(m_scc, FUNC(z80scc_device::dc_ab_r)).umask16(0xff00);
map(0xa00000, 0xbfffff).w(m_scc, FUNC(z80scc_device::cd_ab_w)).umask16(0x00ff); map(0xa00000, 0xbfffff).w(m_scc, FUNC(z80scc_device::dc_ab_w)).umask16(0x00ff);
map(0xc00000, 0xdfffff).rw(FUNC(mac128_state::mac_iwm_r), FUNC(mac128_state::mac_iwm_w)); map(0xc00000, 0xdfffff).rw(FUNC(mac128_state::mac_iwm_r), FUNC(mac128_state::mac_iwm_w));
map(0xe80000, 0xefffff).rw(FUNC(mac128_state::mac_via_r), FUNC(mac128_state::mac_via_w)); map(0xe80000, 0xefffff).rw(FUNC(mac128_state::mac_via_r), FUNC(mac128_state::mac_via_w));
map(0xfffff0, 0xffffff).rw(FUNC(mac128_state::mac_autovector_r), FUNC(mac128_state::mac_autovector_w)); map(0xfffff0, 0xffffff).rw(FUNC(mac128_state::mac_autovector_r), FUNC(mac128_state::mac_autovector_w));
@ -1305,8 +1305,8 @@ void mac128_state::macplus_map(address_map &map)
map(0x000000, 0x3fffff).rw(FUNC(mac128_state::ram_r), FUNC(mac128_state::ram_w)); map(0x000000, 0x3fffff).rw(FUNC(mac128_state::ram_r), FUNC(mac128_state::ram_w));
map(0x400000, 0x4fffff).rom().region("bootrom", 0); map(0x400000, 0x4fffff).rom().region("bootrom", 0);
map(0x580000, 0x5fffff).rw(FUNC(mac128_state::macplus_scsi_r), FUNC(mac128_state::macplus_scsi_w)); map(0x580000, 0x5fffff).rw(FUNC(mac128_state::macplus_scsi_r), FUNC(mac128_state::macplus_scsi_w));
map(0x800000, 0x9fffff).r(m_scc, FUNC(z80scc_device::cd_ab_r)).umask16(0xff00); map(0x800000, 0x9fffff).r(m_scc, FUNC(z80scc_device::dc_ab_r)).umask16(0xff00);
map(0xa00000, 0xbfffff).w(m_scc, FUNC(z80scc_device::cd_ab_w)).umask16(0x00ff); map(0xa00000, 0xbfffff).w(m_scc, FUNC(z80scc_device::dc_ab_w)).umask16(0x00ff);
map(0xc00000, 0xdfffff).rw(FUNC(mac128_state::mac_iwm_r), FUNC(mac128_state::mac_iwm_w)); map(0xc00000, 0xdfffff).rw(FUNC(mac128_state::mac_iwm_r), FUNC(mac128_state::mac_iwm_w));
map(0xe80000, 0xefffff).rw(FUNC(mac128_state::mac_via_r), FUNC(mac128_state::mac_via_w)); map(0xe80000, 0xefffff).rw(FUNC(mac128_state::mac_via_r), FUNC(mac128_state::mac_via_w));
map(0xfffff0, 0xffffff).rw(FUNC(mac128_state::mac_autovector_r), FUNC(mac128_state::mac_autovector_w)); map(0xfffff0, 0xffffff).rw(FUNC(mac128_state::mac_autovector_r), FUNC(mac128_state::mac_autovector_w));

View File

@ -268,7 +268,7 @@ void micro3d_state::drmath_data(address_map &map)
map(0x01400000, 0x01400003).rw(FUNC(micro3d_state::micro3d_pipe_r), FUNC(micro3d_state::micro3d_fifo_w)); map(0x01400000, 0x01400003).rw(FUNC(micro3d_state::micro3d_pipe_r), FUNC(micro3d_state::micro3d_fifo_w));
map(0x01600000, 0x01600003).w(FUNC(micro3d_state::drmath_intr2_ack)); map(0x01600000, 0x01600003).w(FUNC(micro3d_state::drmath_intr2_ack));
map(0x01800000, 0x01800003).w(FUNC(micro3d_state::micro3d_alt_fifo_w)); map(0x01800000, 0x01800003).w(FUNC(micro3d_state::micro3d_alt_fifo_w));
map(0x03fffff0, 0x03ffffff).rw("scc", FUNC(z80scc_device::ba_cd_inv_r), FUNC(z80scc_device::ba_cd_inv_w)).umask32(0x000000ff); map(0x03fffff0, 0x03ffffff).rw("scc", FUNC(z80scc_device::ab_dc_r), FUNC(z80scc_device::ab_dc_w)).umask32(0x000000ff);
} }
/************************************* /*************************************

View File

@ -318,7 +318,7 @@ void rx2030_state::iop_io_map(address_map &map)
map(0x00c0, 0x00c1).lrw8("kbdc_data", [this]() { return m_kbdc->data_r(); }, [this](u8 data) { m_kbdc->data_w(data == 0xff ? 0xf6 : data); }).umask16(0xff); map(0x00c0, 0x00c1).lrw8("kbdc_data", [this]() { return m_kbdc->data_r(); }, [this](u8 data) { m_kbdc->data_w(data == 0xff ? 0xf6 : data); }).umask16(0xff);
map(0x00c4, 0x00c5).rw(m_kbdc, FUNC(at_keyboard_controller_device::status_r), FUNC(at_keyboard_controller_device::command_w)).umask16(0xff); map(0x00c4, 0x00c5).rw(m_kbdc, FUNC(at_keyboard_controller_device::status_r), FUNC(at_keyboard_controller_device::command_w)).umask16(0xff);
map(0x0100, 0x0107).rw(m_scc, FUNC(z80scc_device::ba_cd_inv_r), FUNC(z80scc_device::ba_cd_inv_w)).umask16(0xff); map(0x0100, 0x0107).rw(m_scc, FUNC(z80scc_device::ab_dc_r), FUNC(z80scc_device::ab_dc_w)).umask16(0xff);
map(0x0140, 0x0143).rw(m_net, FUNC(am7990_device::regs_r), FUNC(am7990_device::regs_w)); map(0x0140, 0x0143).rw(m_net, FUNC(am7990_device::regs_r), FUNC(am7990_device::regs_w));
@ -677,7 +677,7 @@ void rx3230_state::rx3230_map(address_map &map)
map(0x19000004, 0x19000007).rw(m_kbdc, FUNC(at_keyboard_controller_device::status_r), FUNC(at_keyboard_controller_device::command_w)).umask32(0xff); map(0x19000004, 0x19000007).rw(m_kbdc, FUNC(at_keyboard_controller_device::status_r), FUNC(at_keyboard_controller_device::command_w)).umask32(0xff);
map(0x19800000, 0x19800003).lr8("int_reg", [this]() { return m_int_reg; }).umask32(0xff); map(0x19800000, 0x19800003).lr8("int_reg", [this]() { return m_int_reg; }).umask32(0xff);
map(0x1a000000, 0x1a000007).rw(m_net, FUNC(am7990_device::regs_r), FUNC(am7990_device::regs_w)).umask32(0xffff); map(0x1a000000, 0x1a000007).rw(m_net, FUNC(am7990_device::regs_r), FUNC(am7990_device::regs_w)).umask32(0xffff);
map(0x1b000000, 0x1b00001f).rw(m_scc, FUNC(z80scc_device::ba_cd_inv_r), FUNC(z80scc_device::ba_cd_inv_w)).umask32(0xff); // TODO: order? map(0x1b000000, 0x1b00001f).rw(m_scc, FUNC(z80scc_device::ab_dc_r), FUNC(z80scc_device::ab_dc_w)).umask32(0xff); // TODO: order?
map(0x1c000000, 0x1c000fff).m(m_rambo, FUNC(mips_rambo_device::map)); map(0x1c000000, 0x1c000fff).m(m_rambo, FUNC(mips_rambo_device::map));

View File

@ -252,8 +252,8 @@ void mvme147_state::mvme147_mem(address_map &map)
map(0xfffe1018, 0xfffe102f).rw(FUNC(mvme147_state::pcc8_r), FUNC(mvme147_state::pcc8_w)); /* PCC 8 bits registers */ map(0xfffe1018, 0xfffe102f).rw(FUNC(mvme147_state::pcc8_r), FUNC(mvme147_state::pcc8_w)); /* PCC 8 bits registers */
map(0xfffe2000, 0xfffe201b).rw(FUNC(mvme147_state::vmechip_r), FUNC(mvme147_state::vmechip_w)).umask32(0x00ff00ff); /* VMEchip 8 bits registers on odd adresses */ map(0xfffe2000, 0xfffe201b).rw(FUNC(mvme147_state::vmechip_r), FUNC(mvme147_state::vmechip_w)).umask32(0x00ff00ff); /* VMEchip 8 bits registers on odd adresses */
map(0xfffe3000, 0xfffe3003).rw(m_sccterm, FUNC(scc85c30_device::ba_cd_inv_r), FUNC(scc85c30_device::ba_cd_inv_w)); /* Port 1&2 - Dual serial port Z80-SCC */ map(0xfffe3000, 0xfffe3003).rw(m_sccterm, FUNC(scc85c30_device::ab_dc_r), FUNC(scc85c30_device::ab_dc_w)); /* Port 1&2 - Dual serial port Z80-SCC */
map(0xfffe3800, 0xfffe3803).rw(m_sccterm2, FUNC(scc85c30_device::ba_cd_inv_r), FUNC(scc85c30_device::ba_cd_inv_w)); /* Port 3&4 - Dual serial port Z80-SCC */ map(0xfffe3800, 0xfffe3803).rw(m_sccterm2, FUNC(scc85c30_device::ab_dc_r), FUNC(scc85c30_device::ab_dc_w)); /* Port 3&4 - Dual serial port Z80-SCC */
//AM_RANGE(0x100000, 0xfeffff) AM_READWRITE(vme_a24_r, vme_a24_w) /* VMEbus Rev B addresses (24 bits) - not verified */ //AM_RANGE(0x100000, 0xfeffff) AM_READWRITE(vme_a24_r, vme_a24_w) /* VMEbus Rev B addresses (24 bits) - not verified */
//AM_RANGE(0xff0000, 0xffffff) AM_READWRITE(vme_a16_r, vme_a16_w) /* VMEbus Rev B addresses (16 bits) - not verified */ //AM_RANGE(0xff0000, 0xffffff) AM_READWRITE(vme_a16_r, vme_a16_w) /* VMEbus Rev B addresses (16 bits) - not verified */

View File

@ -244,7 +244,7 @@ void mvme162_state::mvme162_mem(address_map &map)
/* SGS-Thompson M48T18 RAM and clock chip, only 4088 bytes used, and 8 bytes for the RTC, out of 8Kb though */ /* SGS-Thompson M48T18 RAM and clock chip, only 4088 bytes used, and 8 bytes for the RTC, out of 8Kb though */
map(0xfffc0000, 0xfffc7fff).rw("m48t18", FUNC(timekeeper_device::read), FUNC(timekeeper_device::write)); map(0xfffc0000, 0xfffc7fff).rw("m48t18", FUNC(timekeeper_device::read), FUNC(timekeeper_device::write));
map(0xfff45000, 0xfff457ff).rw(m_sccterm, FUNC(scc85230_device::ba_cd_r), FUNC(scc85230_device::ba_cd_w)); /* Port 1&2 - Dual serial port Z80-SCC */ map(0xfff45000, 0xfff457ff).rw(m_sccterm, FUNC(scc85230_device::ab_dc_r), FUNC(scc85230_device::ab_dc_w)).umask32(0x00ff00ff); /* Port 1&2 - Dual serial port Z80-SCC */
} }
/* Input ports */ /* Input ports */

View File

@ -596,7 +596,7 @@ void sun2_state::mbustype0space_map(address_map &map)
{ {
map(0x000000, 0x3fffff).rw(FUNC(sun2_state::ram_r), FUNC(sun2_state::ram_w)); map(0x000000, 0x3fffff).rw(FUNC(sun2_state::ram_r), FUNC(sun2_state::ram_w));
// 7f80000-7f807ff: Keyboard/mouse SCC8530 // 7f80000-7f807ff: Keyboard/mouse SCC8530
//AM_RANGE(0x7f8000, 0x7f8007) AM_DEVREADWRITE8(SCC1_TAG, z80scc_device, ba_cd_inv_r, ba_cd_inv_w, 0xff00) //AM_RANGE(0x7f8000, 0x7f8007) AM_DEVREADWRITE8(SCC1_TAG, z80scc_device, ab_dc_r, ab_dc_w, 0xff00)
map(0x700000, 0x71ffff).ram().share("bw2_vram"); map(0x700000, 0x71ffff).ram().share("bw2_vram");
map(0x781800, 0x781801).rw(FUNC(sun2_state::video_ctrl_r), FUNC(sun2_state::video_ctrl_w)); map(0x781800, 0x781801).rw(FUNC(sun2_state::video_ctrl_r), FUNC(sun2_state::video_ctrl_w));
} }
@ -607,7 +607,7 @@ void sun2_state::mbustype1space_map(address_map &map)
map(0x000000, 0x0007ff).rom().region("bootprom", 0); // uses MMU loophole to read 32k from a 2k window map(0x000000, 0x0007ff).rom().region("bootprom", 0); // uses MMU loophole to read 32k from a 2k window
// 001000-0017ff: AM9518 encryption processor // 001000-0017ff: AM9518 encryption processor
// 001800-001fff: Parallel port // 001800-001fff: Parallel port
map(0x002000, 0x0027ff).rw(SCC2_TAG, FUNC(z80scc_device::ba_cd_inv_r), FUNC(z80scc_device::ba_cd_inv_w)).umask16(0xff00); map(0x002000, 0x0027ff).rw(SCC2_TAG, FUNC(z80scc_device::ab_dc_r), FUNC(z80scc_device::ab_dc_w)).umask16(0xff00);
map(0x002800, 0x002803).mirror(0x7fc).rw("timer", FUNC(am9513_device::read16), FUNC(am9513_device::write16)); map(0x002800, 0x002803).mirror(0x7fc).rw("timer", FUNC(am9513_device::read16), FUNC(am9513_device::write16));
map(0x003800, 0x00383f).mirror(0x7c0).rw("rtc", FUNC(mm58167_device::read), FUNC(mm58167_device::write)).umask16(0xff00); // 12 wait states generated by PAL16R6 (U415) map(0x003800, 0x00383f).mirror(0x7c0).rw("rtc", FUNC(mm58167_device::read), FUNC(mm58167_device::write)).umask16(0xff00); // 12 wait states generated by PAL16R6 (U415)
} }

View File

@ -778,8 +778,8 @@ void sun3_state::vmetype0space_novram_map(address_map &map)
// type 1 device space // type 1 device space
void sun3_state::vmetype1space_map(address_map &map) void sun3_state::vmetype1space_map(address_map &map)
{ {
map(0x00000000, 0x0000000f).rw(m_scc1, FUNC(z80scc_device::ba_cd_inv_r), FUNC(z80scc_device::ba_cd_inv_w)).umask32(0xff00ff00); map(0x00000000, 0x0000000f).rw(m_scc1, FUNC(z80scc_device::ab_dc_r), FUNC(z80scc_device::ab_dc_w)).umask32(0xff00ff00);
map(0x00020000, 0x0002000f).rw(m_scc2, FUNC(z80scc_device::ba_cd_inv_r), FUNC(z80scc_device::ba_cd_inv_w)).umask32(0xff00ff00); map(0x00020000, 0x0002000f).rw(m_scc2, FUNC(z80scc_device::ab_dc_r), FUNC(z80scc_device::ab_dc_w)).umask32(0xff00ff00);
map(0x00040000, 0x000407ff).ram().share("nvram"); // type 2816 parallel EEPROM map(0x00040000, 0x000407ff).ram().share("nvram"); // type 2816 parallel EEPROM
map(0x00060000, 0x0006ffff).rw(FUNC(sun3_state::rtc7170_r), FUNC(sun3_state::rtc7170_w)); map(0x00060000, 0x0006ffff).rw(FUNC(sun3_state::rtc7170_r), FUNC(sun3_state::rtc7170_w));
map(0x00080000, 0x0008000f).rw(FUNC(sun3_state::parity_r), FUNC(sun3_state::parity_w)); map(0x00080000, 0x0008000f).rw(FUNC(sun3_state::parity_r), FUNC(sun3_state::parity_w));

View File

@ -239,8 +239,8 @@ void sun3x_state::sun3_80_mem(address_map &map)
map(0x61001000, 0x61001003).rw(FUNC(sun3x_state::memreg_r), FUNC(sun3x_state::memreg_w)); map(0x61001000, 0x61001003).rw(FUNC(sun3x_state::memreg_r), FUNC(sun3x_state::memreg_w));
map(0x61001004, 0x61001007).rw(FUNC(sun3x_state::memrerraddr_r), FUNC(sun3x_state::memrerraddr_w)); map(0x61001004, 0x61001007).rw(FUNC(sun3x_state::memrerraddr_r), FUNC(sun3x_state::memrerraddr_w));
map(0x61001400, 0x61001403).rw(FUNC(sun3x_state::irqctrl_r), FUNC(sun3x_state::irqctrl_w)); map(0x61001400, 0x61001403).rw(FUNC(sun3x_state::irqctrl_r), FUNC(sun3x_state::irqctrl_w));
map(0x62000000, 0x6200000f).rw(m_scc1, FUNC(z80scc_device::ba_cd_inv_r), FUNC(z80scc_device::ba_cd_inv_w)).umask32(0xff00ff00); map(0x62000000, 0x6200000f).rw(m_scc1, FUNC(z80scc_device::ab_dc_r), FUNC(z80scc_device::ab_dc_w)).umask32(0xff00ff00);
map(0x62002000, 0x6200200f).rw(m_scc2, FUNC(z80scc_device::ba_cd_inv_r), FUNC(z80scc_device::ba_cd_inv_w)).umask32(0xff00ff00); map(0x62002000, 0x6200200f).rw(m_scc2, FUNC(z80scc_device::ab_dc_r), FUNC(z80scc_device::ab_dc_w)).umask32(0xff00ff00);
map(0x63000000, 0x6301ffff).rom().region("user1", 0); map(0x63000000, 0x6301ffff).rom().region("user1", 0);
map(0x64000000, 0x640007ff).rw(TIMEKEEPER_TAG, FUNC(timekeeper_device::read), FUNC(timekeeper_device::write)); map(0x64000000, 0x640007ff).rw(TIMEKEEPER_TAG, FUNC(timekeeper_device::read), FUNC(timekeeper_device::write));
map(0x66000000, 0x6600003f).rw(ESP_TAG, FUNC(ncr539x_device::read), FUNC(ncr539x_device::write)).umask32(0xff000000); map(0x66000000, 0x6600003f).rw(ESP_TAG, FUNC(ncr539x_device::read), FUNC(ncr539x_device::write)).umask32(0xff000000);
@ -264,8 +264,8 @@ void sun3x_state::sun3_460_mem(address_map &map)
map(0x61001000, 0x61001003).rw(FUNC(sun3x_state::memreg_r), FUNC(sun3x_state::memreg_w)); map(0x61001000, 0x61001003).rw(FUNC(sun3x_state::memreg_r), FUNC(sun3x_state::memreg_w));
map(0x61001004, 0x61001007).rw(FUNC(sun3x_state::memrerraddr_r), FUNC(sun3x_state::memrerraddr_w)); map(0x61001004, 0x61001007).rw(FUNC(sun3x_state::memrerraddr_r), FUNC(sun3x_state::memrerraddr_w));
map(0x61001400, 0x61001403).rw(FUNC(sun3x_state::irqctrl_r), FUNC(sun3x_state::irqctrl_w)); map(0x61001400, 0x61001403).rw(FUNC(sun3x_state::irqctrl_r), FUNC(sun3x_state::irqctrl_w));
map(0x62000000, 0x6200000f).rw(m_scc1, FUNC(z80scc_device::ba_cd_inv_r), FUNC(z80scc_device::ba_cd_inv_w)).umask32(0xff00ff00); map(0x62000000, 0x6200000f).rw(m_scc1, FUNC(z80scc_device::ab_dc_r), FUNC(z80scc_device::ab_dc_w)).umask32(0xff00ff00);
map(0x62002000, 0x6200200f).rw(m_scc2, FUNC(z80scc_device::ba_cd_inv_r), FUNC(z80scc_device::ba_cd_inv_w)).umask32(0xff00ff00); map(0x62002000, 0x6200200f).rw(m_scc2, FUNC(z80scc_device::ab_dc_r), FUNC(z80scc_device::ab_dc_w)).umask32(0xff00ff00);
map(0x63000000, 0x6301ffff).rom().region("user1", 0); map(0x63000000, 0x6301ffff).rom().region("user1", 0);
map(0x6f00003c, 0x6f00003f).rw(FUNC(sun3x_state::printer_r), FUNC(sun3x_state::printer_w)); map(0x6f00003c, 0x6f00003f).rw(FUNC(sun3x_state::printer_r), FUNC(sun3x_state::printer_w));

View File

@ -1145,8 +1145,8 @@ void sun4_state::type0space_map(address_map &map)
void sun4_state::type1space_map(address_map &map) void sun4_state::type1space_map(address_map &map)
{ {
map(0x00000000, 0x0000000f).rw(m_scc1, FUNC(z80scc_device::ba_cd_inv_r), FUNC(z80scc_device::ba_cd_inv_w)).umask32(0xff00ff00); map(0x00000000, 0x0000000f).rw(m_scc1, FUNC(z80scc_device::ab_dc_r), FUNC(z80scc_device::ab_dc_w)).umask32(0xff00ff00);
map(0x01000000, 0x0100000f).rw(m_scc2, FUNC(z80scc_device::ba_cd_inv_r), FUNC(z80scc_device::ba_cd_inv_w)).umask32(0xff00ff00); map(0x01000000, 0x0100000f).rw(m_scc2, FUNC(z80scc_device::ab_dc_r), FUNC(z80scc_device::ab_dc_w)).umask32(0xff00ff00);
map(0x02000000, 0x020007ff).rw(m_timekpr, FUNC(timekeeper_device::read), FUNC(timekeeper_device::write)); map(0x02000000, 0x020007ff).rw(m_timekpr, FUNC(timekeeper_device::read), FUNC(timekeeper_device::write));
map(0x03000000, 0x0300000f).rw(FUNC(sun4_state::timer_r), FUNC(sun4_state::timer_w)).mirror(0xfffff0); map(0x03000000, 0x0300000f).rw(FUNC(sun4_state::timer_r), FUNC(sun4_state::timer_w)).mirror(0xfffff0);
map(0x05000000, 0x05000003).rw(FUNC(sun4_state::irq_r), FUNC(sun4_state::irq_w)); map(0x05000000, 0x05000003).rw(FUNC(sun4_state::irq_r), FUNC(sun4_state::irq_w));
@ -1167,8 +1167,8 @@ void sun4_state::type1space_sbus_map(address_map &map)
void sun4_state::type1space_s4_map(address_map &map) void sun4_state::type1space_s4_map(address_map &map)
{ {
map(0x00000000, 0x0000000f).rw(m_scc1, FUNC(z80scc_device::ba_cd_inv_r), FUNC(z80scc_device::ba_cd_inv_w)).umask32(0xff00ff00); map(0x00000000, 0x0000000f).rw(m_scc1, FUNC(z80scc_device::ab_dc_r), FUNC(z80scc_device::ab_dc_w)).umask32(0xff00ff00);
map(0x01000000, 0x0100000f).rw(m_scc2, FUNC(z80scc_device::ba_cd_inv_r), FUNC(z80scc_device::ba_cd_inv_w)).umask32(0xff00ff00); map(0x01000000, 0x0100000f).rw(m_scc2, FUNC(z80scc_device::ab_dc_r), FUNC(z80scc_device::ab_dc_w)).umask32(0xff00ff00);
} }
/* Input ports */ /* Input ports */

View File

@ -289,7 +289,7 @@ READ32_MEMBER(hpc1_device::read)
case 0x0d20/4: case 0x0d20/4:
{ {
const uint32_t index = (offset >> 2) & 3; const uint32_t index = (offset >> 2) & 3;
uint32_t ret = m_scc[index]->ba_cd_r(space, 3); uint32_t ret = m_scc[index]->ab_dc_r(0);
LOGMASKED(LOG_DUART0 << index, "%s: HPC DUART%d Channel B Control Read: %08x & %08x\n", machine().describe_context(), index, ret, mem_mask); LOGMASKED(LOG_DUART0 << index, "%s: HPC DUART%d Channel B Control Read: %08x & %08x\n", machine().describe_context(), index, ret, mem_mask);
return ret; return ret;
} }
@ -298,7 +298,7 @@ READ32_MEMBER(hpc1_device::read)
case 0x0d24/4: case 0x0d24/4:
{ {
const uint32_t index = (offset >> 2) & 3; const uint32_t index = (offset >> 2) & 3;
const uint32_t ret = m_scc[index]->ba_cd_r(space, 2); const uint32_t ret = m_scc[index]->ab_dc_r(1);
LOGMASKED(LOG_DUART0 << index, "%s: HPC DUART%d Channel B Data Read: %08x & %08x\n", machine().describe_context(), index, ret, mem_mask); LOGMASKED(LOG_DUART0 << index, "%s: HPC DUART%d Channel B Data Read: %08x & %08x\n", machine().describe_context(), index, ret, mem_mask);
return ret; return ret;
} }
@ -307,7 +307,7 @@ READ32_MEMBER(hpc1_device::read)
case 0x0d28/4: case 0x0d28/4:
{ {
const uint32_t index = (offset >> 2) & 3; const uint32_t index = (offset >> 2) & 3;
const uint32_t ret = m_scc[index]->ba_cd_r(space, 1); const uint32_t ret = m_scc[index]->ab_dc_r(2);
LOGMASKED(LOG_DUART0 << index, "%s: HPC DUART%d Channel A Control Read: %08x & %08x\n", machine().describe_context(), index, ret, mem_mask); LOGMASKED(LOG_DUART0 << index, "%s: HPC DUART%d Channel A Control Read: %08x & %08x\n", machine().describe_context(), index, ret, mem_mask);
return ret; return ret;
} }
@ -316,7 +316,7 @@ READ32_MEMBER(hpc1_device::read)
case 0x0d2c/4: case 0x0d2c/4:
{ {
const uint32_t index = (offset >> 2) & 3; const uint32_t index = (offset >> 2) & 3;
const uint32_t ret = m_scc[index]->ba_cd_r(space, 0); const uint32_t ret = m_scc[index]->ab_dc_r(3);
LOGMASKED(LOG_DUART0 << index, "%s: HPC DUART%d Channel A Data Read: %08x & %08x\n", machine().describe_context(), index, ret, mem_mask); LOGMASKED(LOG_DUART0 << index, "%s: HPC DUART%d Channel A Data Read: %08x & %08x\n", machine().describe_context(), index, ret, mem_mask);
return ret; return ret;
} }
@ -461,7 +461,7 @@ WRITE32_MEMBER(hpc1_device::write)
case 0x0d20/4: case 0x0d20/4:
{ {
const uint32_t index = (offset >> 2) & 3; const uint32_t index = (offset >> 2) & 3;
m_scc[index]->ba_cd_w(space, 3, (uint8_t)data); m_scc[index]->ab_dc_w(0, (uint8_t)data);
LOGMASKED(LOG_DUART0 << index, "%s: HPC DUART%d Channel B Control Write: %08x & %08x\n", machine().describe_context(), index, data, mem_mask); LOGMASKED(LOG_DUART0 << index, "%s: HPC DUART%d Channel B Control Write: %08x & %08x\n", machine().describe_context(), index, data, mem_mask);
break; break;
} }
@ -470,7 +470,7 @@ WRITE32_MEMBER(hpc1_device::write)
case 0x0d24/4: case 0x0d24/4:
{ {
const uint32_t index = (offset >> 2) & 3; const uint32_t index = (offset >> 2) & 3;
m_scc[index]->ba_cd_w(space, 2, (uint8_t)data); m_scc[index]->ab_dc_w(1, (uint8_t)data);
LOGMASKED(LOG_DUART0 << index, "%s: HPC DUART%d Channel B Data Write: %08x & %08x\n", machine().describe_context(), index, data, mem_mask); LOGMASKED(LOG_DUART0 << index, "%s: HPC DUART%d Channel B Data Write: %08x & %08x\n", machine().describe_context(), index, data, mem_mask);
break; break;
} }
@ -479,7 +479,7 @@ WRITE32_MEMBER(hpc1_device::write)
case 0x0d28/4: case 0x0d28/4:
{ {
const uint32_t index = (offset >> 2) & 3; const uint32_t index = (offset >> 2) & 3;
m_scc[index]->ba_cd_w(space, 1, (uint8_t)data); m_scc[index]->ab_dc_w(2, (uint8_t)data);
LOGMASKED(LOG_DUART0 << index, "%s: HPC DUART%d Channel A Control Write: %08x & %08x\n", machine().describe_context(), index, data, mem_mask); LOGMASKED(LOG_DUART0 << index, "%s: HPC DUART%d Channel A Control Write: %08x & %08x\n", machine().describe_context(), index, data, mem_mask);
break; break;
} }
@ -488,7 +488,7 @@ WRITE32_MEMBER(hpc1_device::write)
case 0x0d2c/4: case 0x0d2c/4:
{ {
const uint32_t index = (offset >> 2) & 3; const uint32_t index = (offset >> 2) & 3;
m_scc[index]->ba_cd_w(space, 0, (uint8_t)data); m_scc[index]->ab_dc_w(3, (uint8_t)data);
LOGMASKED(LOG_DUART0 << index, "%s: HPC DUART%d Channel A Data Write: %08x & %08x\n", machine().describe_context(), index, data, mem_mask); LOGMASKED(LOG_DUART0 << index, "%s: HPC DUART%d Channel A Data Write: %08x & %08x\n", machine().describe_context(), index, data, mem_mask);
break; break;
} }

View File

@ -562,7 +562,7 @@ void ioc2_device::base_map(address_map &map)
map(0x07, 0x07).rw(FUNC(ioc2_device::pi1_timer2_r), FUNC(ioc2_device::pi1_timer2_w)); map(0x07, 0x07).rw(FUNC(ioc2_device::pi1_timer2_r), FUNC(ioc2_device::pi1_timer2_w));
map(0x08, 0x08).rw(FUNC(ioc2_device::pi1_timer3_r), FUNC(ioc2_device::pi1_timer3_w)); map(0x08, 0x08).rw(FUNC(ioc2_device::pi1_timer3_r), FUNC(ioc2_device::pi1_timer3_w));
map(0x09, 0x09).rw(FUNC(ioc2_device::pi1_timer4_r), FUNC(ioc2_device::pi1_timer4_w)); map(0x09, 0x09).rw(FUNC(ioc2_device::pi1_timer4_r), FUNC(ioc2_device::pi1_timer4_w));
map(0x0c, 0x0f).rw(m_scc, FUNC(z80scc_device::ba_cd_inv_r), FUNC(z80scc_device::ba_cd_inv_w)); map(0x0c, 0x0f).rw(m_scc, FUNC(z80scc_device::ab_dc_r), FUNC(z80scc_device::ab_dc_w));
map(0x10, 0x10).rw(m_kbdc, FUNC(ps2_keyboard_controller_device::data_r), FUNC(ps2_keyboard_controller_device::data_w)); map(0x10, 0x10).rw(m_kbdc, FUNC(ps2_keyboard_controller_device::data_r), FUNC(ps2_keyboard_controller_device::data_w));
map(0x11, 0x11).rw(m_kbdc, FUNC(ps2_keyboard_controller_device::status_r), FUNC(ps2_keyboard_controller_device::command_w)); map(0x11, 0x11).rw(m_kbdc, FUNC(ps2_keyboard_controller_device::status_r), FUNC(ps2_keyboard_controller_device::command_w));
map(0x12, 0x12).rw(FUNC(ioc2_device::gc_select_r), FUNC(ioc2_device::gc_select_w)); map(0x12, 0x12).rw(FUNC(ioc2_device::gc_select_r), FUNC(ioc2_device::gc_select_w));