mirror of
https://github.com/holub/mame
synced 2025-07-04 17:38:08 +03:00
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:
parent
788409adea
commit
c92a21ebb9
@ -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));
|
||||||
|
@ -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));
|
||||||
|
|
||||||
|
@ -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);
|
||||||
|
@ -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);
|
||||||
|
@ -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);
|
||||||
|
@ -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);
|
||||||
|
@ -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);
|
||||||
|
@ -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
|
||||||
}
|
}
|
||||||
|
@ -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));
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*************************************
|
/*************************************
|
||||||
|
@ -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));
|
||||||
|
|
||||||
|
@ -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 */
|
||||||
|
@ -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 */
|
||||||
|
@ -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)
|
||||||
}
|
}
|
||||||
|
@ -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));
|
||||||
|
@ -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));
|
||||||
|
@ -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 */
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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));
|
||||||
|
Loading…
Reference in New Issue
Block a user