tms9928a, v9938: Remove space and mem_mask from read/write handlers (nw)

efo90501: Tweak dots per line to get closer to typical PAL rates (nw)
This commit is contained in:
AJR 2019-03-09 08:33:17 -05:00
parent c9930e9388
commit ccb96bf6a1
31 changed files with 83 additions and 125 deletions

View File

@ -143,7 +143,7 @@ void datamux_device::read_all(uint16_t addr, uint8_t *value)
if ((addr & 0xf801)==0x8800)
{
// Forward to VDP unless we have an EVPC
if (m_video != nullptr) *value = m_video->read(machine().dummy_space(), addr>>1); // A14 determines data or register read
if (m_video != nullptr) *value = m_video->read(addr>>1); // A14 determines data or register read
}
}
@ -184,7 +184,7 @@ void datamux_device::write_all(uint16_t addr, uint8_t value)
if ((addr & 0xf801)==0x8800)
{
// Forward to VDP unless we have an EVPC
if (m_video != nullptr) m_video->write(machine().dummy_space(), addr>>1, value); // A14 determines data or register write
if (m_video != nullptr) m_video->write(addr>>1, value); // A14 determines data or register write
}
// I/O port gets all accesses

View File

@ -509,7 +509,7 @@ uint8_t geneve_mapper_device::readm(offs_t offset)
case MLVIDEO:
if (!machine().side_effects_disabled())
{
value = m_video->read(machine().dummy_space(), dec->offset>>1);
value = m_video->read(dec->offset>>1);
LOGMASKED(LOG_READ, "Read video %04x -> %02x\n", dec->offset, value);
// Video wait states are created *after* the access
// Accordingly, they have no effect when execution is in onchip RAM
@ -650,7 +650,7 @@ void geneve_mapper_device::writem(offs_t offset, uint8_t data)
if (!machine().side_effects_disabled())
{
m_video->write(machine().dummy_space(), dec->offset>>1, data);
m_video->write(dec->offset>>1, data);
LOGMASKED(LOG_WRITE, "Write video %04x <- %02x\n", offset, data);
// See above
if (m_video_waitstates) set_video_waitcount(15);

View File

@ -213,7 +213,7 @@ READ8Z_MEMBER(snug_enhanced_video_device::readz)
if (m_video_accessed)
{
*value = m_video->read(machine().dummy_space(), m_address>>1);
*value = m_video->read(m_address>>1);
}
}
@ -296,7 +296,7 @@ void snug_enhanced_video_device::write(offs_t offset, uint8_t data)
if (m_video_accessed)
{
m_video->write(machine().dummy_space(), m_address>>1, data);
m_video->write(m_address>>1, data);
}
if (m_sound_accessed)

View File

@ -56,7 +56,7 @@ void tms9928a_device::memmap(address_map &map)
map(0x0000, 0x3fff).ram();
}
tms9928a_device::tms9928a_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, bool is_50hz, bool is_reva, bool is_99)
tms9928a_device::tms9928a_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint16_t horz_total, bool is_50hz, bool is_reva, bool is_99)
: device_t(mconfig, type, tag, owner, clock)
, device_memory_interface(mconfig, *this)
, device_palette_interface(mconfig, *this)
@ -64,6 +64,7 @@ tms9928a_device::tms9928a_device(const machine_config &mconfig, device_type type
, m_vram_size(0)
, m_out_int_line_cb(*this)
, m_out_gromclk_cb(*this)
, m_total_horz(horz_total)
, m_50hz(is_50hz)
, m_reva(is_reva)
, m_99(is_99)
@ -82,57 +83,57 @@ void tms9928a_device::device_config_complete()
if (!screen().refresh_attoseconds())
{
if (m_50hz)
screen().set_raw(clock() / 2, TOTAL_HORZ, HORZ_DISPLAY_START - 12, HORZ_DISPLAY_START + 256 + 12,
screen().set_raw(clock() / 2, m_total_horz, HORZ_DISPLAY_START - 12, HORZ_DISPLAY_START + 256 + 12,
TOTAL_VERT_PAL, VERT_DISPLAY_START_PAL - 12, VERT_DISPLAY_START_PAL + 192 + 12);
else
screen().set_raw(clock() / 2, TOTAL_HORZ, HORZ_DISPLAY_START - 12, HORZ_DISPLAY_START + 256 + 12,
screen().set_raw(clock() / 2, m_total_horz, HORZ_DISPLAY_START - 12, HORZ_DISPLAY_START + 256 + 12,
TOTAL_VERT_NTSC, VERT_DISPLAY_START_NTSC - 12, VERT_DISPLAY_START_NTSC + 192 + 12);
}
}
tms9928a_device::tms9928a_device( const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: tms9928a_device(mconfig, TMS9928A, tag, owner, clock, false, true, true)
: tms9928a_device(mconfig, TMS9928A, tag, owner, clock, 342, false, true, true)
{
}
tms9129_device::tms9129_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: tms9928a_device(mconfig, TMS9129, tag, owner, clock, true, true, false)
: tms9928a_device(mconfig, TMS9129, tag, owner, clock, 342, true, true, false)
{
}
tms9918_device::tms9918_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: tms9928a_device(mconfig, TMS9918, tag, owner, clock, false, false, true)
: tms9928a_device(mconfig, TMS9918, tag, owner, clock, 342, false, false, true)
{
}
tms9918a_device::tms9918a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: tms9928a_device(mconfig, TMS9918A, tag, owner, clock, false, true, true)
: tms9928a_device(mconfig, TMS9918A, tag, owner, clock, 342, false, true, true)
{
}
tms9118_device::tms9118_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: tms9928a_device(mconfig, TMS9118, tag, owner, clock, false, true, false)
: tms9928a_device(mconfig, TMS9118, tag, owner, clock, 342, false, true, false)
{
}
tms9128_device::tms9128_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: tms9928a_device(mconfig, TMS9128, tag, owner, clock, false, true, false)
: tms9928a_device(mconfig, TMS9128, tag, owner, clock, 342, false, true, false)
{
}
tms9929_device::tms9929_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: tms9928a_device(mconfig, TMS9929, tag, owner, clock, true, false, true)
: tms9928a_device(mconfig, TMS9929, tag, owner, clock, 342, true, false, true)
{
}
tms9929a_device::tms9929a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: tms9928a_device(mconfig, TMS9929A, tag, owner, clock, true, true, true)
: tms9928a_device(mconfig, TMS9929A, tag, owner, clock, 342, true, true, true)
{
}
efo90501_device::efo90501_device( const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: tms9928a_device(mconfig, EFO90501, tag, owner, clock, true, true, true)
: tms9928a_device(mconfig, EFO90501, tag, owner, clock, 346, true, true, true)
{
}
@ -143,7 +144,7 @@ device_memory_interface::space_config_vector tms9928a_device::memory_space_confi
};
}
READ8_MEMBER( tms9928a_device::read )
uint8_t tms9928a_device::read(offs_t offset)
{
uint8_t value = 0;
@ -155,7 +156,7 @@ READ8_MEMBER( tms9928a_device::read )
return value;
}
WRITE8_MEMBER( tms9928a_device::write )
void tms9928a_device::write(offs_t offset, uint8_t data)
{
if ((offset & 1) == 0)
vram_write(data);
@ -371,7 +372,7 @@ void tms9928a_device::device_timer(emu_timer &timer, device_timer_id id, int par
if ( y < 0 || y >= 192 || ! (m_Regs[1] & 0x40) )
{
/* Draw backdrop colour */
for ( int i = 0; i < TOTAL_HORZ; i++ )
for ( int i = 0; i < m_total_horz; i++ )
p[i] = pen(BackColour);
/* vblank is set at the last cycle of the first inactive line */
@ -650,7 +651,7 @@ void tms9928a_device::device_timer(emu_timer &timer, device_timer_id id, int par
}
/* Right border */
for ( int i = HORZ_DISPLAY_START + 256; i < TOTAL_HORZ; i++ )
for ( int i = HORZ_DISPLAY_START + 256; i < m_total_horz; i++ )
p[i] = pen(BackColour);
}
@ -734,7 +735,7 @@ void tms9928a_device::device_start()
m_vram_space = &space(AS_DATA);
/* back bitmap */
m_tmpbmp.allocate(TOTAL_HORZ, TOTAL_VERT_PAL);
m_tmpbmp.allocate(m_total_horz, TOTAL_VERT_PAL);
m_line_timer = timer_alloc(TIMER_LINE);
m_gromclk_timer = timer_alloc(GROMCLK);

View File

@ -73,13 +73,8 @@ public:
auto int_callback() { return m_out_int_line_cb.bind(); }
auto gromclk_callback() { return m_out_gromclk_cb.bind(); }
DECLARE_READ8_MEMBER( read );
DECLARE_WRITE8_MEMBER( write );
DECLARE_READ8_MEMBER( vram_r ) { return vram_read(); }
DECLARE_WRITE8_MEMBER( vram_w ) { vram_write(data); }
DECLARE_READ8_MEMBER( register_r ) { return register_read(); }
DECLARE_WRITE8_MEMBER( register_w ) { register_write(data); }
uint8_t read(offs_t offset);
void write(offs_t offset, uint8_t data);
u8 vram_read();
void vram_write(u8 data);
@ -94,7 +89,7 @@ public:
void reset_line(int state) { if (state==ASSERT_LINE) device_reset(); }
protected:
tms9928a_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, bool is_50hz, bool is_reva, bool is_99);
tms9928a_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint16_t horz_total, bool is_50hz, bool is_reva, bool is_99);
// device-level overrides
virtual void device_config_complete() override;
@ -139,6 +134,7 @@ private:
uint16_t m_spritepattern;
int m_colourmask;
int m_patternmask;
const uint16_t m_total_horz;
const bool m_50hz;
const bool m_reva;
const bool m_99;

View File

@ -369,7 +369,7 @@ uint32_t v99x8_device::screen_update(screen_device &screen, bitmap_rgb32 &bitmap
return 0;
}
READ8_MEMBER( v99x8_device::read )
uint8_t v99x8_device::read(offs_t offset)
{
switch (offset & 3)
{
@ -379,7 +379,7 @@ READ8_MEMBER( v99x8_device::read )
return 0xff;
}
WRITE8_MEMBER( v99x8_device::write )
void v99x8_device::write(offs_t offset, uint8_t data)
{
switch (offset & 3)
{

View File

@ -54,8 +54,8 @@ public:
uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
DECLARE_READ8_MEMBER( read );
DECLARE_WRITE8_MEMBER( write );
uint8_t read(offs_t offset);
void write(offs_t offset, uint8_t data);
uint8_t vram_r();
uint8_t status_r();

View File

@ -130,8 +130,8 @@ void arachnid_state::arachnid_map(address_map &map)
map(0x2000, 0x2007).rw(PTM6840_TAG, FUNC(ptm6840_device::read), FUNC(ptm6840_device::write));
map(0x4004, 0x4007).rw(m_pia_u4, FUNC(pia6821_device::read), FUNC(pia6821_device::write));
map(0x4008, 0x400b).rw(m_pia_u17, FUNC(pia6821_device::read), FUNC(pia6821_device::write));
map(0x6000, 0x6000).w(TMS9118_TAG, FUNC(tms9928a_device::vram_w));
map(0x6002, 0x6002).w(TMS9118_TAG, FUNC(tms9928a_device::register_w));
map(0x6000, 0x6000).w(TMS9118_TAG, FUNC(tms9928a_device::vram_write));
map(0x6002, 0x6002).w(TMS9118_TAG, FUNC(tms9928a_device::register_write));
map(0x8000, 0xffff).rom().region(M6809_TAG, 0);
}

View File

@ -82,8 +82,7 @@ void bbcbc_state::io_map(address_map &map)
[this](address_space &space, offs_t offset, u8 data, u8 mem_mask) {
m_z80pio->write(space, offset >> 5, data, mem_mask);
});
map(0x80, 0x80).rw("tms9129", FUNC(tms9129_device::vram_r), FUNC(tms9129_device::vram_w));
map(0x81, 0x81).rw("tms9129", FUNC(tms9129_device::register_r), FUNC(tms9129_device::register_w));
map(0x80, 0x81).rw("tms9129", FUNC(tms9129_device::read), FUNC(tms9129_device::write));
}
// Input bits are read through the PIO four at a time, then stored individually in RAM at E030-E03B

View File

@ -166,8 +166,7 @@ void by133_state::video_map(address_map &map)
{ // U8 Vidiot
map(0x0000, 0x1fff).rw(FUNC(by133_state::sound_data_r), FUNC(by133_state::sound_data_w));
map(0x2000, 0x2003).mirror(0x0ffc).rw(m_pia_u7, FUNC(pia6821_device::read), FUNC(pia6821_device::write)); // PIA U7 Vidiot
map(0x4000, 0x4000).mirror(0x0ffe).rw(m_crtc, FUNC(tms9928a_device::vram_r), FUNC(tms9928a_device::vram_w));
map(0x4001, 0x4001).mirror(0x0ffe).rw(m_crtc, FUNC(tms9928a_device::register_r), FUNC(tms9928a_device::register_w));
map(0x4000, 0x4001).mirror(0x0ffe).rw(m_crtc, FUNC(tms9928a_device::read), FUNC(tms9928a_device::write));
map(0x6000, 0x63ff).mirror(0x1c00).ram();
map(0x8000, 0xffff).rom();
}
@ -175,10 +174,8 @@ void by133_state::video_map(address_map &map)
void by133_state::granny_map(address_map &map)
{
map(0x0000, 0x0001).rw(FUNC(by133_state::sound_data_r), FUNC(by133_state::sound_data_w));
map(0x0002, 0x0002).rw(m_crtc, FUNC(tms9928a_device::vram_r), FUNC(tms9928a_device::vram_w));
map(0x0003, 0x0003).rw(m_crtc, FUNC(tms9928a_device::register_r), FUNC(tms9928a_device::register_w));
map(0x0004, 0x0004).rw(m_crtc2, FUNC(tms9928a_device::vram_r), FUNC(tms9928a_device::vram_w));
map(0x0005, 0x0005).rw(m_crtc2, FUNC(tms9928a_device::register_r), FUNC(tms9928a_device::register_w));
map(0x0002, 0x0003).rw(m_crtc, FUNC(tms9928a_device::read), FUNC(tms9928a_device::write));
map(0x0004, 0x0005).rw(m_crtc2, FUNC(tms9928a_device::read), FUNC(tms9928a_device::write));
map(0x0006, 0x0007).w(FUNC(by133_state::granny_crtc_w)); // can write to both at once
map(0x0008, 0x000b).rw(m_pia_u7, FUNC(pia6821_device::read), FUNC(pia6821_device::write));
map(0x2000, 0x27ff).ram();
@ -536,16 +533,8 @@ INPUT_PORTS_END
WRITE8_MEMBER( by133_state::granny_crtc_w )
{
if (offset)
{
m_crtc->register_write(data);
m_crtc2->register_write(data);
}
else
{
m_crtc->vram_write(data);
m_crtc2->vram_write(data);
}
m_crtc->write(offset, data);
m_crtc2->write(offset, data);
}
READ8_MEMBER( by133_state::sound_data_r )

View File

@ -259,13 +259,13 @@ void cliffhgr_state::mainmem(address_map &map)
void cliffhgr_state::mainport(address_map &map)
{
map.global_mask(0xff);
map(0x44, 0x44).w("tms9928a", FUNC(tms9928a_device::vram_w));
map(0x45, 0x45).r("tms9928a", FUNC(tms9928a_device::vram_r));
map(0x44, 0x44).w("tms9928a", FUNC(tms9928a_device::vram_write));
map(0x45, 0x45).r("tms9928a", FUNC(tms9928a_device::vram_read));
map(0x46, 0x46).w(FUNC(cliffhgr_state::cliff_sound_overlay_w));
map(0x50, 0x52).r(FUNC(cliffhgr_state::cliff_philips_code_r));
map(0x53, 0x53).r(FUNC(cliffhgr_state::cliff_irq_ack_r));
map(0x54, 0x54).w("tms9928a", FUNC(tms9928a_device::register_w));
map(0x55, 0x55).r("tms9928a", FUNC(tms9928a_device::register_r));
map(0x54, 0x54).w("tms9928a", FUNC(tms9928a_device::register_write));
map(0x55, 0x55).r("tms9928a", FUNC(tms9928a_device::register_read));
map(0x57, 0x57).w(FUNC(cliffhgr_state::cliff_philips_clear_w));
map(0x60, 0x60).w(FUNC(cliffhgr_state::cliff_port_bank_w));
map(0x62, 0x62).r(FUNC(cliffhgr_state::cliff_port_r));

View File

@ -105,8 +105,7 @@ void coleco_state::coleco_io_map(address_map &map)
{
map.global_mask(0xff);
map(0x80, 0x80).mirror(0x1f).w(FUNC(coleco_state::paddle_off_w));
map(0xa0, 0xa0).mirror(0x1e).rw("tms9928a", FUNC(tms9928a_device::vram_r), FUNC(tms9928a_device::vram_w));
map(0xa1, 0xa1).mirror(0x1e).rw("tms9928a", FUNC(tms9928a_device::register_r), FUNC(tms9928a_device::register_w));
map(0xa0, 0xa1).mirror(0x1e).rw("tms9928a", FUNC(tms9928a_device::read), FUNC(tms9928a_device::write));
map(0xc0, 0xc0).mirror(0x1f).w(FUNC(coleco_state::paddle_on_w));
map(0xe0, 0xe0).mirror(0x1f).w("sn76489a", FUNC(sn76489a_device::write));
map(0xe0, 0xe0).mirror(0x1d).r(FUNC(coleco_state::paddle_1_r));

View File

@ -90,8 +90,7 @@ void cortex_state::mem_map(address_map &map)
map(0x0000, 0x7fff).bankr("bankr0").bankw("bankw0");
map(0x8000, 0xefff).ram();
map(0xf100, 0xf11f).ram(); // memory mapping unit
map(0xf120, 0xf120).rw("crtc", FUNC(tms9928a_device::vram_r), FUNC(tms9928a_device::vram_w));
map(0xf121, 0xf121).rw("crtc", FUNC(tms9928a_device::register_r), FUNC(tms9928a_device::register_w));
map(0xf120, 0xf121).rw("crtc", FUNC(tms9928a_device::read), FUNC(tms9928a_device::write));
//map(0xf140, 0xf147) // fdc tms9909
}

View File

@ -146,10 +146,8 @@ void crvision_state::crvision_map(address_map &map)
{
map(0x0000, 0x03ff).mirror(0x0c00).ram();
map(0x1000, 0x1003).mirror(0x0ffc).rw(m_pia, FUNC(pia6821_device::read), FUNC(pia6821_device::write));
map(0x2000, 0x2000).mirror(0x0ffe).r(TMS9929_TAG, FUNC(tms9928a_device::vram_r));
map(0x2001, 0x2001).mirror(0x0ffe).r(TMS9929_TAG, FUNC(tms9928a_device::register_r));
map(0x3000, 0x3000).mirror(0x0ffe).w(TMS9929_TAG, FUNC(tms9928a_device::vram_w));
map(0x3001, 0x3001).mirror(0x0ffe).w(TMS9929_TAG, FUNC(tms9928a_device::register_w));
map(0x2000, 0x2001).mirror(0x0ffe).r(TMS9929_TAG, FUNC(tms9928a_device::read));
map(0x3000, 0x3001).mirror(0x0ffe).w(TMS9929_TAG, FUNC(tms9928a_device::write));
map(0x4000, 0x7fff).bankr(BANK_ROM2);
map(0x8000, 0xbfff).bankr(BANK_ROM1);
// AM_RANGE(0xc000, 0xe7ff) AM_RAMBANK(3)
@ -168,10 +166,8 @@ void laser2001_state::lasr2001_map(address_map &map)
{
map(0x0000, 0x03ff).mirror(0x0c00).ram();
map(0x1000, 0x1003).mirror(0x0ffc).rw(m_pia, FUNC(pia6821_device::read), FUNC(pia6821_device::write));
map(0x2000, 0x2000).mirror(0x0ffe).r(TMS9929_TAG, FUNC(tms9928a_device::vram_r));
map(0x2001, 0x2001).mirror(0x0ffe).r(TMS9929_TAG, FUNC(tms9928a_device::register_r));
map(0x3000, 0x3000).mirror(0x0ffe).w(TMS9929_TAG, FUNC(tms9928a_device::vram_w));
map(0x3001, 0x3001).mirror(0x0ffe).w(TMS9929_TAG, FUNC(tms9928a_device::register_w));
map(0x2000, 0x2001).mirror(0x0ffe).r(TMS9929_TAG, FUNC(tms9928a_device::read));
map(0x3000, 0x3001).mirror(0x0ffe).w(TMS9929_TAG, FUNC(tms9928a_device::write));
map(0x4000, 0x7fff).bankrw(BANK_ROM2);
map(0x8000, 0xbfff).bankrw(BANK_ROM1);
map(0xc000, 0xffff).rom().region(M6502_TAG, 0);

View File

@ -424,8 +424,7 @@ void einstein_state::einstein_io(address_map &map)
map(0x00, 0x00).mirror(0xff04).rw(FUNC(einstein_state::reset_r), FUNC(einstein_state::reset_w));
map(0x02, 0x02).mirror(0xff04).rw(m_psg, FUNC(ay8910_device::data_r), FUNC(ay8910_device::address_w));
map(0x03, 0x03).mirror(0xff04).w(m_psg, FUNC(ay8910_device::data_w));
map(0x08, 0x08).mirror(0xff06).rw("vdp", FUNC(tms9129_device::vram_r), FUNC(tms9129_device::vram_w));
map(0x09, 0x09).mirror(0xff06).rw("vdp", FUNC(tms9129_device::register_r), FUNC(tms9129_device::register_w));
map(0x08, 0x09).mirror(0xff06).rw("vdp", FUNC(tms9129_device::read), FUNC(tms9129_device::write));
map(0x10, 0x11).mirror(0xff06).rw(IC_I060, FUNC(i8251_device::read), FUNC(i8251_device::write));
map(0x18, 0x1b).mirror(0xff04).rw(m_fdc, FUNC(wd1770_device::read), FUNC(wd1770_device::write));
map(0x20, 0x20).mirror(0xff00).rw(FUNC(einstein_state::kybint_msk_r), FUNC(einstein_state::kybint_msk_w));

View File

@ -81,8 +81,7 @@ void forte2_state::io_mem(address_map &map)
{
map.unmap_value_high();
map.global_mask(0xff);
map(0x98, 0x98).rw("tms9928a", FUNC(tms9928a_device::vram_r), FUNC(tms9928a_device::vram_w));
map(0x99, 0x99).rw("tms9928a", FUNC(tms9928a_device::register_r), FUNC(tms9928a_device::register_w));
map(0x98, 0x99).rw("tms9928a", FUNC(tms9928a_device::read), FUNC(tms9928a_device::write));
map(0xa0, 0xa1).w("aysnd", FUNC(ay8910_device::address_data_w));
map(0xa2, 0xa2).r("aysnd", FUNC(ay8910_device::data_r));
// AM_RANGE(0xa8, 0xa8) AM_RAM // Ports a8-ab are originally for communicating with the i8255 PPI on MSX.

View File

@ -91,8 +91,7 @@ void kingpin_state::kingpin_io_map(address_map &map)
map.global_mask(0xff);
map(0x00, 0x03).rw("ppi8255_0", FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0x10, 0x13).rw("ppi8255_1", FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0x20, 0x20).rw("tms9928a", FUNC(tms9928a_device::vram_r), FUNC(tms9928a_device::vram_w));
map(0x21, 0x21).rw("tms9928a", FUNC(tms9928a_device::register_r), FUNC(tms9928a_device::register_w));
map(0x20, 0x21).rw("tms9928a", FUNC(tms9928a_device::read), FUNC(tms9928a_device::write));
map(0x60, 0x60).w(FUNC(kingpin_state::sound_nmi_w));
//AM_RANGE(0x30, 0x30) AM_WRITENOP // lamps?
//AM_RANGE(0x40, 0x40) AM_WRITENOP // lamps?

View File

@ -718,8 +718,7 @@ void m5_state::m5_io(address_map &map)
map.unmap_value_high();
map.global_mask(0xff);
map(0x00, 0x03).mirror(0x0c).rw(m_ctc, FUNC(z80ctc_device::read), FUNC(z80ctc_device::write));
map(0x10, 0x10).mirror(0x0e).rw("tms9928a", FUNC(tms9928a_device::vram_r), FUNC(tms9928a_device::vram_w));
map(0x11, 0x11).mirror(0x0e).rw("tms9928a", FUNC(tms9928a_device::register_r), FUNC(tms9928a_device::register_w));
map(0x10, 0x11).mirror(0x0e).rw("tms9928a", FUNC(tms9928a_device::read), FUNC(tms9928a_device::write));
map(0x20, 0x20).mirror(0x0f).w(SN76489AN_TAG, FUNC(sn76489a_device::write));
map(0x30, 0x30).mirror(0x08).portr("Y0").w(FUNC(m5_state::mem64KBF_w)); // 64KBF paging
map(0x31, 0x31).mirror(0x08).portr("Y1");
@ -1040,8 +1039,7 @@ void brno_state::brno_io(address_map &map)
map.unmap_value_high();
map.global_mask(0xff);
map(0x00, 0x03).mirror(0x0c).rw(m_ctc, FUNC(z80ctc_device::read), FUNC(z80ctc_device::write));
map(0x10, 0x10).mirror(0x0e).rw("tms9928a", FUNC(tms9928a_device::vram_r), FUNC(tms9928a_device::vram_w));
map(0x11, 0x11).mirror(0x0e).rw("tms9928a", FUNC(tms9928a_device::register_r), FUNC(tms9928a_device::register_w));
map(0x10, 0x11).mirror(0x0e).rw("tms9928a", FUNC(tms9928a_device::read), FUNC(tms9928a_device::write));
map(0x20, 0x20).mirror(0x0f).w(SN76489AN_TAG, FUNC(sn76489a_device::write));
map(0x30, 0x30).portr("Y0");
map(0x31, 0x31).portr("Y1");

View File

@ -557,8 +557,7 @@ void msx_state::msx_io_map(address_map &map)
map(0x91, 0x91).w("cent_data_out", FUNC(output_latch_device::bus_w));
map(0xa0, 0xa7).rw(m_ay8910, FUNC(ay8910_device::data_r), FUNC(ay8910_device::address_data_w));
map(0xa8, 0xab).rw("ppi8255", FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0x98, 0x98).rw("tms9928a", FUNC(tms9928a_device::vram_r), FUNC(tms9928a_device::vram_w));
map(0x99, 0x99).rw("tms9928a", FUNC(tms9928a_device::register_r), FUNC(tms9928a_device::register_w));
map(0x98, 0x99).rw("tms9928a", FUNC(tms9928a_device::read), FUNC(tms9928a_device::write));
map(0xd8, 0xd9).rw(FUNC(msx_state::msx_kanji_r), FUNC(msx_state::msx_kanji_w));
// 0xfc - 0xff : Memory mapper I/O ports. I/O handlers will be installed if a memory mapper is present in a system
}

View File

@ -58,8 +58,8 @@ void mtx_state::mtx_io(address_map &map)
{
map.global_mask(0xff);
map(0x00, 0x00).rw(FUNC(mtx_state::mtx_strobe_r), FUNC(mtx_state::mtx_bankswitch_w));
map(0x01, 0x01).rw("tms9929a", FUNC(tms9929a_device::vram_r), FUNC(tms9929a_device::vram_w));
map(0x02, 0x02).rw("tms9929a", FUNC(tms9929a_device::register_r), FUNC(tms9929a_device::register_w));
map(0x01, 0x01).rw("tms9929a", FUNC(tms9929a_device::vram_read), FUNC(tms9929a_device::vram_write));
map(0x02, 0x02).rw("tms9929a", FUNC(tms9929a_device::register_read), FUNC(tms9929a_device::register_write));
map(0x03, 0x03).rw(FUNC(mtx_state::mtx_sound_strobe_r), FUNC(mtx_state::mtx_cst_w));
map(0x04, 0x04).r(FUNC(mtx_state::mtx_prt_r)).w("cent_data_out", FUNC(output_latch_device::bus_w));
map(0x05, 0x05).rw(FUNC(mtx_state::mtx_key_lo_r), FUNC(mtx_state::mtx_sense_w));

View File

@ -78,8 +78,8 @@ void myvision_state::myvision_mem(address_map &map)
map.unmap_value_high();
//AM_RANGE(0x0000, 0x5fff) // mapped by the cartslot
map(0xa000, 0xa7ff).ram();
map(0xe000, 0xe000).rw("tms9918", FUNC(tms9918a_device::vram_r), FUNC(tms9918a_device::vram_w));
map(0xe002, 0xe002).rw("tms9918", FUNC(tms9918a_device::register_r), FUNC(tms9918a_device::register_w));
map(0xe000, 0xe000).rw("tms9918", FUNC(tms9918a_device::vram_read), FUNC(tms9918a_device::vram_write));
map(0xe002, 0xe002).rw("tms9918", FUNC(tms9918a_device::register_read), FUNC(tms9918a_device::register_write));
}

View File

@ -347,13 +347,11 @@ void nightmare_state::nightmare_map(address_map &map)
void nightmare_state::nightmare_io_map(address_map &map)
{
map(0x0001, 0x0001).r("ic8", FUNC(cdp1852_device::read)).w(FUNC(nightmare_state::unkout_w));
map(0x0002, 0x0002).r("ic9", FUNC(cdp1852_device::read)).w("ic10", FUNC(cdp1852_device::write));
map(1, 1).r("ic8", FUNC(cdp1852_device::read)).w(FUNC(nightmare_state::unkout_w));
map(2, 2).r("ic9", FUNC(cdp1852_device::read)).w("ic10", FUNC(cdp1852_device::write));
map(0x0004, 0x0004).rw(m_vdc, FUNC(tms9928a_device::vram_r), FUNC(tms9928a_device::vram_w));
map(0x0005, 0x0005).rw(m_vdc, FUNC(tms9928a_device::register_r), FUNC(tms9928a_device::register_w));
map(0x0006, 0x0006).rw(m_vdc2, FUNC(tms9928a_device::vram_r), FUNC(tms9928a_device::vram_w));
map(0x0007, 0x0007).rw(m_vdc2, FUNC(tms9928a_device::register_r), FUNC(tms9928a_device::register_w));
map(4, 5).rw(m_vdc, FUNC(tms9928a_device::read), FUNC(tms9928a_device::write));
map(6, 7).rw(m_vdc2, FUNC(tms9928a_device::read), FUNC(tms9928a_device::write));
}
void nightmare_state::nightmare_sound_map(address_map &map)

View File

@ -155,8 +155,8 @@ void pachifev_state::pachifev_map(address_map &map)
map(0xff04, 0xff04).portr("DSW1");
map(0xff06, 0xff06).portr("DSW2");
map(0xff08, 0xff08).portr("DSW3");
map(0xff10, 0xff10).rw("tms9928a", FUNC(tms9928a_device::vram_r), FUNC(tms9928a_device::vram_w));
map(0xff12, 0xff12).rw("tms9928a", FUNC(tms9928a_device::register_r), FUNC(tms9928a_device::register_w));
map(0xff10, 0xff10).rw("tms9928a", FUNC(tms9928a_device::vram_read), FUNC(tms9928a_device::vram_write));
map(0xff12, 0xff12).rw("tms9928a", FUNC(tms9928a_device::register_read), FUNC(tms9928a_device::register_write));
map(0xff20, 0xff20).w("y2404_1", FUNC(y2404_device::write));
map(0xff30, 0xff30).w("y2404_2", FUNC(y2404_device::write));
map(0xff40, 0xff40).w(FUNC(pachifev_state::controls_w));

View File

@ -149,8 +149,7 @@ void pencil2_state::io_map(address_map &map)
map(0x10, 0x1f).w(FUNC(pencil2_state::port10_w));
map(0x30, 0x3f).w(FUNC(pencil2_state::port30_w));
map(0x80, 0x9f).w(FUNC(pencil2_state::port80_w));
map(0xa0, 0xa0).mirror(0x1e).rw("tms9928a", FUNC(tms9928a_device::vram_r), FUNC(tms9928a_device::vram_w));
map(0xa1, 0xa1).mirror(0x1e).rw("tms9928a", FUNC(tms9928a_device::register_r), FUNC(tms9928a_device::register_w));
map(0xa0, 0xa1).mirror(0x1e).rw("tms9928a", FUNC(tms9928a_device::read), FUNC(tms9928a_device::write));
map(0xc0, 0xdf).w(FUNC(pencil2_state::portc0_w));
map(0xe0, 0xff).w("sn76489a", FUNC(sn76489a_device::write));
map(0xe0, 0xe0).portr("E0");

View File

@ -126,8 +126,7 @@ void pengadvb_state::io_mem(address_map &map)
{
map.unmap_value_high();
map.global_mask(0xff);
map(0x98, 0x98).rw("tms9128", FUNC(tms9128_device::vram_r), FUNC(tms9128_device::vram_w));
map(0x99, 0x99).rw("tms9128", FUNC(tms9128_device::register_r), FUNC(tms9128_device::register_w));
map(0x98, 0x99).rw("tms9128", FUNC(tms9128_device::read), FUNC(tms9128_device::write));
map(0xa0, 0xa1).w("aysnd", FUNC(ay8910_device::address_data_w));
map(0xa2, 0xa2).r("aysnd", FUNC(ay8910_device::data_r));
map(0xa8, 0xab).rw("ppi8255", FUNC(i8255_device::read), FUNC(i8255_device::write));

View File

@ -184,8 +184,7 @@ void pv2000_state::pv2000_map(address_map &map)
{
map(0x0000, 0x3fff).rom();
map(0x4000, 0x4000).rw("tms9928a", FUNC(tms9928a_device::vram_r), FUNC(tms9928a_device::vram_w));
map(0x4001, 0x4001).rw("tms9928a", FUNC(tms9928a_device::register_r), FUNC(tms9928a_device::register_w));
map(0x4000, 0x4001).rw("tms9928a", FUNC(tms9928a_device::read), FUNC(tms9928a_device::write));
map(0x7000, 0x7fff).ram();
//AM_RANGE(0x8000, 0xbfff) ext ram?

View File

@ -264,8 +264,7 @@ void re900_state::mem_io(address_map &map)
map(0x0000, 0xbfff).r(FUNC(re900_state::rom_r));
map(0xc000, 0xdfff).ram().share("nvram");
map(0xe000, 0xefff).w(FUNC(re900_state::watchdog_reset_w));
map(0xe000, 0xe000).w("tms9128", FUNC(tms9928a_device::vram_w));
map(0xe001, 0xe001).w("tms9128", FUNC(tms9928a_device::register_w));
map(0xe000, 0xe001).w("tms9128", FUNC(tms9928a_device::write));
map(0xe800, 0xe801).w("ay_re900", FUNC(ay8910_device::address_data_w));
map(0xe802, 0xe802).r("ay_re900", FUNC(ay8910_device::data_r));
}

View File

@ -137,8 +137,7 @@ void sg1000_state::sg1000_io_map(address_map &map)
{
map.global_mask(0xff);
map(0x40, 0x40).mirror(0x3f).w(SN76489AN_TAG, FUNC(sn76489a_device::write));
map(0x80, 0x80).mirror(0x3e).rw(TMS9918A_TAG, FUNC(tms9918a_device::vram_r), FUNC(tms9918a_device::vram_w));
map(0x81, 0x81).mirror(0x3e).rw(TMS9918A_TAG, FUNC(tms9918a_device::register_r), FUNC(tms9918a_device::register_w));
map(0x80, 0x81).mirror(0x3e).rw(TMS9918A_TAG, FUNC(tms9918a_device::read), FUNC(tms9918a_device::write));
map(0xdc, 0xdf).rw(FUNC(sg1000_state::peripheral_r), FUNC(sg1000_state::peripheral_w));
}
@ -160,8 +159,7 @@ void sg1000_state::omv_io_map(address_map &map)
{
map.global_mask(0xff);
map(0x40, 0x40).mirror(0x3f).w(SN76489AN_TAG, FUNC(sn76489a_device::write));
map(0x80, 0x80).mirror(0x3e).rw(TMS9918A_TAG, FUNC(tms9918a_device::vram_r), FUNC(tms9918a_device::vram_w));
map(0x81, 0x81).mirror(0x3e).rw(TMS9918A_TAG, FUNC(tms9918a_device::register_r), FUNC(tms9918a_device::register_w));
map(0x80, 0x81).mirror(0x3e).rw(TMS9918A_TAG, FUNC(tms9918a_device::read), FUNC(tms9918a_device::write));
map(0xc0, 0xc0).mirror(0x38).portr("C0");
map(0xc1, 0xc1).mirror(0x38).portr("C1");
map(0xc2, 0xc2).mirror(0x38).portr("C2");
@ -189,8 +187,7 @@ void sg1000_state::sc3000_io_map(address_map &map)
map.global_mask(0xff);
map(0x00, 0xff).rw(CARTSLOT_TAG, FUNC(sega8_cart_slot_device::read_io), FUNC(sega8_cart_slot_device::write_io));
map(0x7f, 0x7f).w(SN76489AN_TAG, FUNC(sn76489a_device::write));
map(0xbe, 0xbe).rw(TMS9918A_TAG, FUNC(tms9918a_device::vram_r), FUNC(tms9918a_device::vram_w));
map(0xbf, 0xbf).rw(TMS9918A_TAG, FUNC(tms9918a_device::register_r), FUNC(tms9918a_device::register_w));
map(0xbe, 0xbf).rw(TMS9918A_TAG, FUNC(tms9918a_device::read), FUNC(tms9918a_device::write));
map(0xdc, 0xdf).rw(FUNC(sg1000_state::peripheral_r), FUNC(sg1000_state::peripheral_w));
}
@ -200,8 +197,7 @@ void sg1000_state::sc3000_io_map(address_map &map)
map.global_mask(0xff);
map(0x00, 0x00).mirror(0xdf).rw(UPD9255_TAG, FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0x00, 0x00).mirror(0x7f).w(SN76489AN_TAG, FUNC(sn76489a_device::write));
map(0x00, 0x00).mirror(0xae).rw(TMS9918A_TAG, FUNC(tms9918a_device::vram_r), FUNC(tms9918a_device::vram_w));
map(0x01, 0x01).mirror(0xae).rw(TMS9918A_TAG, FUNC(tms9918a_device::register_r), FUNC(tms9918a_device::register_w));
map(0x00, 0x01).mirror(0xae).rw(TMS9918A_TAG, FUNC(tms9918a_device::read), FUNC(tms9918a_device::write));
map(0x60, 0x60).mirror(0x9f).r(FUNC(sg1000_state::sc3000_r_r));
}
*/
@ -224,8 +220,7 @@ void sf7000_state::sf7000_io_map(address_map &map)
{
map.global_mask(0xff);
map(0x7f, 0x7f).w(SN76489AN_TAG, FUNC(sn76489a_device::write));
map(0xbe, 0xbe).rw(TMS9918A_TAG, FUNC(tms9918a_device::vram_r), FUNC(tms9918a_device::vram_w));
map(0xbf, 0xbf).rw(TMS9918A_TAG, FUNC(tms9918a_device::register_r), FUNC(tms9918a_device::register_w));
map(0xbe, 0xbf).rw(TMS9918A_TAG, FUNC(tms9918a_device::read), FUNC(tms9918a_device::write));
map(0xdc, 0xdf).rw(FUNC(sf7000_state::peripheral_r), FUNC(sf7000_state::peripheral_w));
map(0xe0, 0xe1).m(m_fdc, FUNC(upd765a_device::map));
map(0xe4, 0xe7).rw(UPD9255_1_TAG, FUNC(i8255_device::read), FUNC(i8255_device::write));

View File

@ -325,8 +325,7 @@ void sg1000a_state::io_map(address_map &map)
{
map.global_mask(0xff);
map(0x7f, 0x7f).w("snsnd", FUNC(sn76489a_device::write));
map(0xbe, 0xbe).rw("tms9928a", FUNC(tms9928a_device::vram_r), FUNC(tms9928a_device::vram_w));
map(0xbf, 0xbf).rw("tms9928a", FUNC(tms9928a_device::register_r), FUNC(tms9928a_device::register_w));
map(0xbe, 0xbf).rw("tms9928a", FUNC(tms9928a_device::read), FUNC(tms9928a_device::write));
map(0xdc, 0xdf).rw("ppi8255", FUNC(i8255_device::read), FUNC(i8255_device::write));
}
@ -334,8 +333,7 @@ void sg1000a_state::sderby_io_map(address_map &map)
{
map.global_mask(0xff);
map(0x40, 0x40).mirror(0x3f).w("snsnd", FUNC(sn76489a_device::write));
map(0x80, 0x80).mirror(0x3e).rw("tms9928a", FUNC(tms9928a_device::vram_r), FUNC(tms9928a_device::vram_w));
map(0x81, 0x81).mirror(0x3e).rw("tms9928a", FUNC(tms9928a_device::register_r), FUNC(tms9928a_device::register_w));
map(0x80, 0x81).mirror(0x3e).rw("tms9928a", FUNC(tms9928a_device::read), FUNC(tms9928a_device::write));
// map(0xc0, 0xc1).mirror(0x06) NEC D8251AC UART
map(0xc8, 0xcb).mirror(0x04).rw("ppi8255", FUNC(i8255_device::read), FUNC(i8255_device::write)); // NEC D8255AC-2
}

View File

@ -151,10 +151,8 @@ void svi3x8_state::svi3x8_io_bank(address_map &map)
{
map(0x000, 0x0ff).rw(m_expander, FUNC(svi_expander_device::iorq_r), FUNC(svi_expander_device::iorq_w));
map(0x100, 0x17f).rw(m_expander, FUNC(svi_expander_device::iorq_r), FUNC(svi_expander_device::iorq_w));
map(0x180, 0x180).mirror(0x22).w(m_vdp, FUNC(tms9928a_device::vram_w));
map(0x181, 0x181).mirror(0x22).w(m_vdp, FUNC(tms9928a_device::register_w));
map(0x184, 0x184).mirror(0x22).r(m_vdp, FUNC(tms9928a_device::vram_r));
map(0x185, 0x185).mirror(0x22).r(m_vdp, FUNC(tms9928a_device::register_r));
map(0x180, 0x181).mirror(0x22).w(m_vdp, FUNC(tms9928a_device::write));
map(0x184, 0x185).mirror(0x22).r(m_vdp, FUNC(tms9928a_device::read));
map(0x188, 0x188).mirror(0x23).w("psg", FUNC(ay8910_device::address_w));
map(0x18c, 0x18c).mirror(0x23).w("psg", FUNC(ay8910_device::data_w));
map(0x190, 0x190).mirror(0x23).r("psg", FUNC(ay8910_device::data_r));

View File

@ -559,8 +559,8 @@ void tutor_state::tutor_memmap(address_map &map)
map(0x8000, 0xbfff).bankr("bank2").nopw();
map(0xc000, 0xdfff).noprw(); /*free for expansion, or cartridge ROM?*/
map(0xe000, 0xe000).rw("tms9928a", FUNC(tms9928a_device::vram_r), FUNC(tms9928a_device::vram_w)); /*VDP data*/
map(0xe002, 0xe002).rw("tms9928a", FUNC(tms9928a_device::register_r), FUNC(tms9928a_device::register_w));/*VDP status*/
map(0xe000, 0xe000).rw("tms9928a", FUNC(tms9928a_device::vram_read), FUNC(tms9928a_device::vram_write)); /*VDP data*/
map(0xe002, 0xe002).rw("tms9928a", FUNC(tms9928a_device::register_read), FUNC(tms9928a_device::register_write));/*VDP status*/
map(0xe100, 0xe1ff).rw(FUNC(tutor_state::tutor_mapper_r), FUNC(tutor_state::tutor_mapper_w)); /*cartridge mapper*/
map(0xe200, 0xe200).w("sn76489a", FUNC(sn76489a_device::write)); /*sound chip*/
map(0xe800, 0xe8ff).rw(FUNC(tutor_state::tutor_printer_r), FUNC(tutor_state::tutor_printer_w)); /*printer*/
@ -576,8 +576,8 @@ void tutor_state::pyuutajr_mem(address_map &map)
map(0x8000, 0xbfff).bankr("bank2").nopw();
map(0xc000, 0xdfff).noprw(); /*free for expansion, or cartridge ROM?*/
map(0xe000, 0xe000).rw("tms9928a", FUNC(tms9928a_device::vram_r), FUNC(tms9928a_device::vram_w)); /*VDP data*/
map(0xe002, 0xe002).rw("tms9928a", FUNC(tms9928a_device::register_r), FUNC(tms9928a_device::register_w));/*VDP status*/
map(0xe000, 0xe000).rw("tms9928a", FUNC(tms9928a_device::vram_read), FUNC(tms9928a_device::vram_write)); /*VDP data*/
map(0xe002, 0xe002).rw("tms9928a", FUNC(tms9928a_device::register_read), FUNC(tms9928a_device::register_write));/*VDP status*/
map(0xe100, 0xe1ff).rw(FUNC(tutor_state::tutor_mapper_r), FUNC(tutor_state::tutor_mapper_w)); /*cartridge mapper*/
map(0xe200, 0xe200).w("sn76489a", FUNC(sn76489a_device::write)); /*sound chip*/
map(0xe800, 0xe800).portr("LINE0");