mirror of
https://github.com/holub/mame
synced 2025-04-25 09:50:04 +03:00
i8251: Provide standard read/write handlers; eliminate memory space as argument (nw)
swa, wingwar, netmerc: Fix crashes due to reading from nonexistent memory region tandy2k: Correct 8251 register mapping (nw)
This commit is contained in:
parent
383c4c530c
commit
e15011b974
@ -122,14 +122,7 @@ uint8_t a2bus_agat7_ports_device::read_c0nx(uint8_t offset)
|
||||
break;
|
||||
|
||||
case 8:
|
||||
if (offset & 1)
|
||||
{
|
||||
data = m_d10->status_r(machine().dummy_space(), 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
data = m_d10->data_r(machine().dummy_space(), 0);
|
||||
}
|
||||
data = m_d10->read(offset & 1);
|
||||
break;
|
||||
}
|
||||
|
||||
@ -150,14 +143,7 @@ void a2bus_agat7_ports_device::write_c0nx(uint8_t offset, uint8_t data)
|
||||
break;
|
||||
|
||||
case 8:
|
||||
if (offset & 1)
|
||||
{
|
||||
m_d10->control_w(machine().dummy_space(), 0, data);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_d10->data_w(machine().dummy_space(), 0, data);
|
||||
}
|
||||
m_d10->write(offset & 1, data);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -101,12 +101,9 @@ void isa8_myb3k_com_device::device_reset()
|
||||
{
|
||||
// IO base factory setting is 0x540
|
||||
uint32_t base = m_iobase->read();
|
||||
m_isa->install_device(base, base,
|
||||
read8_delegate(FUNC(i8251_device::data_r), subdevice<i8251_device>("usart")),
|
||||
write8_delegate(FUNC(i8251_device::data_w), subdevice<i8251_device>("usart")) );
|
||||
m_isa->install_device(base + 1, base + 1,
|
||||
read8_delegate(FUNC(i8251_device::status_r), subdevice<i8251_device>("usart")),
|
||||
write8_delegate(FUNC(i8251_device::control_w), subdevice<i8251_device>("usart")) );
|
||||
m_isa->install_device(base, base + 1,
|
||||
read8sm_delegate(FUNC(i8251_device::read), m_usart.target()),
|
||||
write8sm_delegate(FUNC(i8251_device::write), m_usart.target()) );
|
||||
|
||||
m_isa->install_device(base + 2, base + 2,
|
||||
read8_delegate(FUNC(isa8_myb3k_com_device::dce_status), this),
|
||||
|
@ -165,11 +165,11 @@ void p1_sound_device::device_start()
|
||||
write8_delegate(FUNC(p1_sound_device::dac_w), this));
|
||||
|
||||
m_isa->install_memory(0xee000, 0xee000,
|
||||
read8_delegate(FUNC(i8251_device::data_r), (i8251_device*)m_midi),
|
||||
write8_delegate(FUNC(i8251_device::data_w), (i8251_device*)m_midi));
|
||||
read8smo_delegate(FUNC(i8251_device::data_r), m_midi.target()),
|
||||
write8smo_delegate(FUNC(i8251_device::data_w), m_midi.target()));
|
||||
m_isa->install_memory(0xee002, 0xee002,
|
||||
read8_delegate(FUNC(i8251_device::status_r), (i8251_device*)m_midi),
|
||||
write8_delegate(FUNC(i8251_device::control_w), (i8251_device*)m_midi));
|
||||
read8smo_delegate(FUNC(i8251_device::status_r), m_midi.target()),
|
||||
write8smo_delegate(FUNC(i8251_device::control_w), m_midi.target()));
|
||||
|
||||
// sync generator
|
||||
m_isa->install_memory(0xef000, 0xef007,
|
||||
|
@ -314,16 +314,16 @@ void v53_base_device::install_peripheral_io()
|
||||
|
||||
if (IOAG) // 8-bit
|
||||
{
|
||||
space(AS_IO).install_readwrite_handler(base+0x00, base+0x01, read8_delegate(FUNC(v53_scu_device::data_r), (v53_scu_device*)m_v53scu), write8_delegate(FUNC(v53_scu_device::data_w), (v53_scu_device*)m_v53scu), 0x00ff);
|
||||
space(AS_IO).install_readwrite_handler(base+0x00, base+0x01, read8_delegate(FUNC(v53_scu_device::status_r), (v53_scu_device*)m_v53scu), write8_delegate(FUNC(v53_scu_device::command_w), (v53_scu_device*)m_v53scu), 0xff00);
|
||||
space(AS_IO).install_write_handler(base+0x02, base+0x03, write8_delegate(FUNC(v53_scu_device::mode_w), (v53_scu_device*)m_v53scu), 0x00ff);
|
||||
space(AS_IO).install_readwrite_handler(base+0x00, base+0x01, read8smo_delegate(FUNC(v53_scu_device::data_r), m_v53scu.target()), write8smo_delegate(FUNC(v53_scu_device::data_w), m_v53scu.target()), 0x00ff);
|
||||
space(AS_IO).install_readwrite_handler(base+0x00, base+0x01, read8smo_delegate(FUNC(v53_scu_device::status_r), m_v53scu.target()), write8smo_delegate(FUNC(v53_scu_device::command_w), m_v53scu.target()), 0xff00);
|
||||
space(AS_IO).install_write_handler(base+0x02, base+0x03, write8smo_delegate(FUNC(v53_scu_device::mode_w), m_v53scu.target()), 0x00ff);
|
||||
space(AS_IO).install_readwrite_handler(base+0x02, base+0x03, read8_delegate(FUNC(v53_base_device::scu_simk_r), this), write8_delegate(FUNC(v53_base_device::scu_simk_w), this), 0xff00);
|
||||
}
|
||||
else
|
||||
{
|
||||
space(AS_IO).install_readwrite_handler(base+0x00, base+0x01, read8_delegate(FUNC(v53_scu_device::data_r), (v53_scu_device*)m_v53scu), write8_delegate(FUNC(v53_scu_device::data_w), (v53_scu_device*)m_v53scu), 0x00ff);
|
||||
space(AS_IO).install_readwrite_handler(base+0x02, base+0x03, read8_delegate(FUNC(v53_scu_device::status_r), (v53_scu_device*)m_v53scu), write8_delegate(FUNC(v53_scu_device::command_w), (v53_scu_device*)m_v53scu), 0x00ff);
|
||||
space(AS_IO).install_write_handler(base+0x04, base+0x05, write8_delegate(FUNC(v53_scu_device::mode_w), (v53_scu_device*)m_v53scu), 0x00ff);
|
||||
space(AS_IO).install_readwrite_handler(base+0x00, base+0x01, read8smo_delegate(FUNC(v53_scu_device::data_r), m_v53scu.target()), write8smo_delegate(FUNC(v53_scu_device::data_w), m_v53scu.target()), 0x00ff);
|
||||
space(AS_IO).install_readwrite_handler(base+0x02, base+0x03, read8smo_delegate(FUNC(v53_scu_device::status_r), m_v53scu.target()), write8smo_delegate(FUNC(v53_scu_device::command_w), m_v53scu.target()), 0x00ff);
|
||||
space(AS_IO).install_write_handler(base+0x04, base+0x05, write8smo_delegate(FUNC(v53_scu_device::mode_w), m_v53scu.target()), 0x00ff);
|
||||
space(AS_IO).install_readwrite_handler(base+0x06, base+0x07, read8_delegate(FUNC(v53_base_device::scu_simk_r), this), write8_delegate(FUNC(v53_base_device::scu_simk_w), this), 0x00ff);
|
||||
|
||||
}
|
||||
|
@ -561,7 +561,7 @@ void i8251_device::mode_w(uint8_t data)
|
||||
}
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(i8251_device::control_w)
|
||||
void i8251_device::control_w(uint8_t data)
|
||||
{
|
||||
if (m_flags & I8251_EXPECTING_MODE)
|
||||
{
|
||||
@ -599,7 +599,7 @@ WRITE8_MEMBER(i8251_device::control_w)
|
||||
status_r
|
||||
-------------------------------------------------*/
|
||||
|
||||
READ8_MEMBER(i8251_device::status_r)
|
||||
uint8_t i8251_device::status_r()
|
||||
{
|
||||
uint8_t status = (m_dsr << 7) | m_status;
|
||||
|
||||
@ -613,7 +613,7 @@ READ8_MEMBER(i8251_device::status_r)
|
||||
data_w
|
||||
-------------------------------------------------*/
|
||||
|
||||
WRITE8_MEMBER(i8251_device::data_w)
|
||||
void i8251_device::data_w(uint8_t data)
|
||||
{
|
||||
m_tx_data = data;
|
||||
|
||||
@ -666,7 +666,7 @@ void i8251_device::receive_character(uint8_t ch)
|
||||
data_r - read data
|
||||
-------------------------------------------------*/
|
||||
|
||||
READ8_MEMBER(i8251_device::data_r)
|
||||
uint8_t i8251_device::data_r()
|
||||
{
|
||||
LOG("read data: %02x, STATUS=%02x\n",m_rx_data,m_status);
|
||||
/* reading clears */
|
||||
@ -677,6 +677,23 @@ READ8_MEMBER(i8251_device::data_r)
|
||||
}
|
||||
|
||||
|
||||
uint8_t i8251_device::read(offs_t offset)
|
||||
{
|
||||
if (BIT(offset, 0))
|
||||
return status_r();
|
||||
else
|
||||
return data_r();
|
||||
}
|
||||
|
||||
void i8251_device::write(offs_t offset, uint8_t data)
|
||||
{
|
||||
if (BIT(offset, 0))
|
||||
control_w(data);
|
||||
else
|
||||
data_w(data);
|
||||
}
|
||||
|
||||
|
||||
WRITE_LINE_MEMBER(i8251_device::write_rxd)
|
||||
{
|
||||
m_rxd = state;
|
||||
@ -723,13 +740,3 @@ READ_LINE_MEMBER(i8251_device::txrdy_r)
|
||||
{
|
||||
return is_tx_enabled() && (m_status & I8251_STATUS_TX_READY) != 0;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(v53_scu_device::command_w)
|
||||
{
|
||||
i8251_device::command_w(data);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(v53_scu_device::mode_w)
|
||||
{
|
||||
i8251_device::mode_w(data);
|
||||
}
|
||||
|
@ -38,10 +38,13 @@ public:
|
||||
auto txempty_handler() { return m_txempty_handler.bind(); }
|
||||
auto syndet_handler() { return m_syndet_handler.bind(); }
|
||||
|
||||
DECLARE_READ8_MEMBER(data_r);
|
||||
DECLARE_WRITE8_MEMBER(data_w);
|
||||
DECLARE_READ8_MEMBER(status_r);
|
||||
DECLARE_WRITE8_MEMBER(control_w);
|
||||
uint8_t data_r();
|
||||
void data_w(uint8_t data);
|
||||
uint8_t status_r();
|
||||
void control_w(uint8_t data);
|
||||
|
||||
uint8_t read(offs_t offset);
|
||||
void write(offs_t offset, uint8_t data);
|
||||
|
||||
DECLARE_WRITE_LINE_MEMBER( write_rxd );
|
||||
DECLARE_WRITE_LINE_MEMBER( write_cts );
|
||||
@ -141,8 +144,8 @@ public:
|
||||
// construction/destruction
|
||||
v53_scu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
|
||||
DECLARE_WRITE8_MEMBER(command_w);
|
||||
DECLARE_WRITE8_MEMBER(mode_w);
|
||||
void command_w(uint8_t data) { i8251_device::command_w(data); }
|
||||
void mode_w(uint8_t data) { i8251_device::mode_w(data); }
|
||||
};
|
||||
|
||||
|
||||
|
@ -29,8 +29,7 @@ void dsbz80_device::dsbz80io_map(address_map &map)
|
||||
map(0xe5, 0xe7).w(FUNC(dsbz80_device::mpeg_end_w));
|
||||
map(0xe8, 0xe8).w(FUNC(dsbz80_device::mpeg_volume_w));
|
||||
map(0xe9, 0xe9).w(FUNC(dsbz80_device::mpeg_stereo_w));
|
||||
map(0xf0, 0xf0).rw("uart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0xf1, 0xf1).rw("uart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0xf0, 0xf1).rw("uart", FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
}
|
||||
|
||||
|
||||
|
@ -26,8 +26,7 @@ void segam1audio_device::segam1audio_map(address_map &map)
|
||||
{
|
||||
map(0x000000, 0x03ffff).rom();
|
||||
map(0x080000, 0x09ffff).rom().region(M68000_TAG, 0x20000); // mirror of upper ROM socket
|
||||
map(0xc20001, 0xc20001).rw(UART_TAG, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0xc20003, 0xc20003).rw(UART_TAG, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0xc20000, 0xc20003).rw(UART_TAG, FUNC(i8251_device::read), FUNC(i8251_device::write)).umask16(0x00ff);
|
||||
map(0xc40000, 0xc40007).rw(MULTIPCM_1_TAG, FUNC(multipcm_device::read), FUNC(multipcm_device::write)).umask16(0x00ff);
|
||||
map(0xc40012, 0xc40013).nopw();
|
||||
map(0xc50000, 0xc50001).w(FUNC(segam1audio_device::m1_snd_mpcm_bnk1_w));
|
||||
|
@ -327,8 +327,7 @@ void a7150_state::a7150_io(address_map &map)
|
||||
map(0x00c0, 0x00c3).rw(m_pic8259, FUNC(pic8259_device::read), FUNC(pic8259_device::write)).umask16(0x00ff);
|
||||
map(0x00c8, 0x00cf).rw("ppi8255", FUNC(i8255_device::read), FUNC(i8255_device::write)).umask16(0x00ff);
|
||||
map(0x00d0, 0x00d7).rw(m_pit8253, FUNC(pit8253_device::read), FUNC(pit8253_device::write)).umask16(0x00ff);
|
||||
map(0x00d8, 0x00d8).rw(m_uart8251, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x00da, 0x00da).rw(m_uart8251, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x00d8, 0x00db).rw(m_uart8251, FUNC(i8251_device::read), FUNC(i8251_device::write)).umask16(0x00ff);
|
||||
map(0x0200, 0x0203).rw(FUNC(a7150_state::a7150_kgs_r), FUNC(a7150_state::a7150_kgs_w)).umask16(0x00ff); // ABS/KGS board
|
||||
map(0x0300, 0x031f).unmaprw(); // ASP board #1
|
||||
map(0x0320, 0x033f).unmaprw(); // ASP board #2
|
||||
|
@ -269,8 +269,7 @@ void alphatp_12_state::alphatp2_map(address_map &map)
|
||||
void alphatp_12_state::alphatp2_io(address_map &map)
|
||||
{
|
||||
map.unmap_value_high();
|
||||
map(0x04, 0x04).rw("uart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x05, 0x05).rw("uart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x04, 0x05).rw("uart", FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
map(0x10, 0x11).rw(m_kbdmcu, FUNC(i8041_device::upi41_master_r), FUNC(i8041_device::upi41_master_w));
|
||||
map(0x12, 0x12).w(FUNC(alphatp_12_state::beep_w));
|
||||
map(0x50, 0x53).rw(FUNC(alphatp_12_state::fdc_r), FUNC(alphatp_12_state::fdc_w));
|
||||
@ -309,8 +308,7 @@ void alphatp_34_state::alphatp3_io(address_map &map)
|
||||
{
|
||||
map.unmap_value_high();
|
||||
//AM_RANGE(0x00, 0x00) AM_READ // unknown
|
||||
map(0x04, 0x04).rw("uart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x05, 0x05).rw("uart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x04, 0x05).rw("uart", FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
map(0x08, 0x09).rw(FUNC(alphatp_34_state::comm88_r), FUNC(alphatp_34_state::comm88_w));
|
||||
map(0x10, 0x11).rw(m_kbdmcu, FUNC(i8041_device::upi41_master_r), FUNC(i8041_device::upi41_master_w));
|
||||
map(0x12, 0x12).w(FUNC(alphatp_34_state::beep_w));
|
||||
|
@ -438,8 +438,7 @@ void alphatro_state::alphatro_io(address_map &map)
|
||||
map(0x2b, 0x2b).portr("XB");
|
||||
map(0x30, 0x30).rw(FUNC(alphatro_state::port30_r), FUNC(alphatro_state::port30_w));
|
||||
// USART for cassette reading and writing
|
||||
map(0x40, 0x40).rw(m_usart, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x41, 0x41).rw(m_usart, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x40, 0x41).rw(m_usart, FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
// CRTC - HD46505 / HD6845SP
|
||||
map(0x50, 0x50).w(m_crtc, FUNC(mc6845_device::address_w));
|
||||
map(0x51, 0x51).rw(m_crtc, FUNC(mc6845_device::register_r), FUNC(mc6845_device::register_w));
|
||||
|
@ -193,10 +193,8 @@ void amust_state::io_map(address_map &map)
|
||||
{
|
||||
map.unmap_value_high();
|
||||
map.global_mask(0xff);
|
||||
map(0x00, 0x00).rw("uart1", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x01, 0x01).rw("uart1", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x02, 0x02).rw("uart2", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x03, 0x03).rw("uart2", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x00, 0x01).rw("uart1", FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
map(0x02, 0x03).rw("uart2", FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
map(0x04, 0x07).rw("ppi1", FUNC(i8255_device::read), FUNC(i8255_device::write));
|
||||
map(0x08, 0x0b).rw("ppi2", FUNC(i8255_device::read), FUNC(i8255_device::write));
|
||||
map(0x0d, 0x0d).nopr().w(FUNC(amust_state::port0d_w));
|
||||
|
@ -110,8 +110,7 @@ void att4425_state::att4425_mem(address_map &map)
|
||||
void att4425_state::att4425_io(address_map &map)
|
||||
{
|
||||
map.global_mask(0xff);
|
||||
map(0x00, 0x00).rw(m_i8251, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x01, 0x01).rw(m_i8251, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x00, 0x01).rw(m_i8251, FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
map(0x10, 0x10).w(FUNC(att4425_state::port10_w));
|
||||
map(0x14, 0x14).rw(FUNC(att4425_state::port14_r), FUNC(att4425_state::port14_w));
|
||||
map(0x15, 0x15).r(FUNC(att4425_state::port15_r));
|
||||
|
@ -42,8 +42,7 @@ void b2m_state::b2m_io(address_map &map)
|
||||
map(0x0c, 0x0c).rw(FUNC(b2m_state::b2m_localmachine_r), FUNC(b2m_state::b2m_localmachine_w));
|
||||
map(0x10, 0x13).rw(FUNC(b2m_state::b2m_palette_r), FUNC(b2m_state::b2m_palette_w));
|
||||
map(0x14, 0x15).rw(m_pic, FUNC(pic8259_device::read), FUNC(pic8259_device::write));
|
||||
map(0x18, 0x18).rw("uart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x19, 0x19).rw("uart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x18, 0x19).rw("uart", FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
map(0x1c, 0x1f).rw(m_fdc, FUNC(fd1793_device::read), FUNC(fd1793_device::write));
|
||||
}
|
||||
|
||||
@ -56,8 +55,7 @@ void b2m_state::b2m_rom_io(address_map &map)
|
||||
map(0x0c, 0x0c).rw(FUNC(b2m_state::b2m_localmachine_r), FUNC(b2m_state::b2m_localmachine_w));
|
||||
map(0x10, 0x13).rw(FUNC(b2m_state::b2m_palette_r), FUNC(b2m_state::b2m_palette_w));
|
||||
map(0x14, 0x15).rw(m_pic, FUNC(pic8259_device::read), FUNC(pic8259_device::write));
|
||||
map(0x18, 0x18).rw("uart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x19, 0x19).rw("uart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x18, 0x19).rw("uart", FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
}
|
||||
|
||||
|
||||
|
@ -129,22 +129,14 @@ WRITE8_MEMBER(bingoc_state::sound_play_w)
|
||||
void bingoc_state::main_map(address_map &map)
|
||||
{
|
||||
map(0x000000, 0x03ffff).rom();
|
||||
map(0x100001, 0x100001).rw("uart1", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x100003, 0x100003).rw("uart1", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x100009, 0x100009).rw("uart2", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x10000b, 0x10000b).rw("uart2", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x100011, 0x100011).rw("uart3", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x100013, 0x100013).rw("uart3", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x100019, 0x100019).rw("uart4", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x10001b, 0x10001b).rw("uart4", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x100021, 0x100021).rw("uart5", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x100023, 0x100023).rw("uart5", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x100029, 0x100029).rw("uart6", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x10002b, 0x10002b).rw("uart6", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x100031, 0x100031).rw("uart7", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x100033, 0x100033).rw("uart7", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x100039, 0x100039).rw("uart8", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x10003b, 0x10003b).rw("uart8", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x100000, 0x100003).rw("uart1", FUNC(i8251_device::read), FUNC(i8251_device::write)).umask16(0x00ff);
|
||||
map(0x100008, 0x10000b).rw("uart2", FUNC(i8251_device::read), FUNC(i8251_device::write)).umask16(0x00ff);
|
||||
map(0x100010, 0x100013).rw("uart3", FUNC(i8251_device::read), FUNC(i8251_device::write)).umask16(0x00ff);
|
||||
map(0x100018, 0x10001b).rw("uart4", FUNC(i8251_device::read), FUNC(i8251_device::write)).umask16(0x00ff);
|
||||
map(0x100020, 0x100023).rw("uart5", FUNC(i8251_device::read), FUNC(i8251_device::write)).umask16(0x00ff);
|
||||
map(0x100028, 0x10002b).rw("uart6", FUNC(i8251_device::read), FUNC(i8251_device::write)).umask16(0x00ff);
|
||||
map(0x100030, 0x100033).rw("uart7", FUNC(i8251_device::read), FUNC(i8251_device::write)).umask16(0x00ff);
|
||||
map(0x100038, 0x10003b).rw("uart8", FUNC(i8251_device::read), FUNC(i8251_device::write)).umask16(0x00ff);
|
||||
map(0x180000, 0x18001f).rw("io", FUNC(sega_315_5338a_device::read), FUNC(sega_315_5338a_device::write)).umask16(0x00ff); //lamps?
|
||||
#if 0 // !SOUND_TEST
|
||||
map(0x180010, 0x180011).w(FUNC(bingoc_state::main_sound_latch_w)); //WRONG there...
|
||||
|
@ -191,8 +191,7 @@ void bw2_state::bw2_io(address_map &map)
|
||||
map(0x10, 0x13).rw(m_pit, FUNC(pit8253_device::read), FUNC(pit8253_device::write));
|
||||
map(0x20, 0x21).m(m_lcdc, FUNC(msm6255_device::map));
|
||||
map(0x30, 0x3f).rw(m_exp, FUNC(bw2_expansion_slot_device::slot_r), FUNC(bw2_expansion_slot_device::slot_w));
|
||||
map(0x40, 0x40).rw(m_uart, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x41, 0x41).rw(m_uart, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x40, 0x41).rw(m_uart, FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
map(0x50, 0x50).w("cent_data_out", FUNC(output_latch_device::bus_w));
|
||||
map(0x60, 0x63).rw(m_fdc, FUNC(wd2797_device::read), FUNC(wd2797_device::write));
|
||||
map(0x70, 0x7f).rw(m_exp, FUNC(bw2_expansion_slot_device::modsel_r), FUNC(bw2_expansion_slot_device::modsel_w));
|
||||
|
@ -347,10 +347,8 @@ void cgc7900_state::cgc7900_mem(address_map &map)
|
||||
// AM_RANGE(0xefc446, 0xefc447) HVG Load dY
|
||||
// AM_RANGE(0xefc448, 0xefc449) HVG Load Pixel Color
|
||||
// AM_RANGE(0xefc44a, 0xefc44b) HVG Load Trip
|
||||
map(0xff8001, 0xff8001).rw(m_i8251_0, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0xff8003, 0xff8003).rw(m_i8251_0, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0xff8041, 0xff8041).rw(m_i8251_1, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0xff8043, 0xff8043).rw(m_i8251_1, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0xff8000, 0xff8003).rw(m_i8251_0, FUNC(i8251_device::read), FUNC(i8251_device::write)).umask16(0x00ff);
|
||||
map(0xff8040, 0xff8043).rw(m_i8251_1, FUNC(i8251_device::read), FUNC(i8251_device::write)).umask16(0x00ff);
|
||||
map(0xff8080, 0xff8081).rw(FUNC(cgc7900_state::keyboard_r), FUNC(cgc7900_state::keyboard_w));
|
||||
// AM_RANGE(0xff80c6, 0xff80c7) Joystick X axis
|
||||
// AM_RANGE(0xff80ca, 0xff80cb) Joystick Y axis
|
||||
|
@ -306,12 +306,9 @@ void cit101_state::mem_map(address_map &map)
|
||||
map(0x8000, 0xbfff).ram().share("extraram"); // only 4 bits wide?
|
||||
map(0x8000, 0x8000).w(FUNC(cit101_state::screen_control_w));
|
||||
map(0xc000, 0xdfff).rw(FUNC(cit101_state::c000_ram_r), FUNC(cit101_state::c000_ram_w));
|
||||
map(0xfc00, 0xfc00).rw("auxuart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0xfc01, 0xfc01).rw("auxuart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0xfc20, 0xfc20).rw("comuart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0xfc21, 0xfc21).rw("comuart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0xfc40, 0xfc40).rw("kbduart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0xfc41, 0xfc41).rw("kbduart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0xfc00, 0xfc01).rw("auxuart", FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
map(0xfc20, 0xfc21).rw("comuart", FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
map(0xfc40, 0xfc41).rw("kbduart", FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
map(0xfc60, 0xfc63).rw("ppi", FUNC(i8255_device::read), FUNC(i8255_device::write));
|
||||
map(0xfc80, 0xfc83).w("pit0", FUNC(pit8253_device::write));
|
||||
map(0xfcc0, 0xfcc3).w("pit1", FUNC(pit8253_device::write));
|
||||
@ -319,12 +316,9 @@ void cit101_state::mem_map(address_map &map)
|
||||
|
||||
void cit101_state::io_map(address_map &map)
|
||||
{
|
||||
map(0x00, 0x00).rw("auxuart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x01, 0x01).rw("auxuart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x20, 0x20).rw("comuart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x21, 0x21).rw("comuart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x40, 0x40).rw("kbduart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x41, 0x41).rw("kbduart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x00, 0x01).rw("auxuart", FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
map(0x20, 0x21).rw("comuart", FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
map(0x40, 0x41).rw("kbduart", FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
map(0x60, 0x63).rw("ppi", FUNC(i8255_device::read), FUNC(i8255_device::write));
|
||||
map(0xa0, 0xa0).w(FUNC(cit101_state::brightness_w));
|
||||
map(0xe0, 0xe0).rw(FUNC(cit101_state::e0_latch_r), FUNC(cit101_state::e0_latch_w));
|
||||
|
@ -70,8 +70,7 @@ void cit220_state::mem_map(address_map &map)
|
||||
void cit220_state::io_map(address_map &map)
|
||||
{
|
||||
map(0x00, 0x0f).rw("duart", FUNC(scn2681_device::read), FUNC(scn2681_device::write));
|
||||
map(0x10, 0x10).rw("usart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x11, 0x11).rw("usart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x10, 0x11).rw("usart", FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
map(0x20, 0x27).rw("avdc", FUNC(scn2674_device::read), FUNC(scn2674_device::write));
|
||||
map(0xa0, 0xa0).rw("avdc", FUNC(scn2674_device::attr_buffer_r), FUNC(scn2674_device::attr_buffer_w));
|
||||
map(0xc0, 0xc0).rw("avdc", FUNC(scn2674_device::buffer_r), FUNC(scn2674_device::buffer_w));
|
||||
|
@ -203,14 +203,7 @@ READ16_MEMBER( compis_state::pcs6_2_3_r )
|
||||
}
|
||||
else
|
||||
{
|
||||
if (BIT(offset, 0))
|
||||
{
|
||||
return m_uart->status_r(space, 0) << 8;
|
||||
}
|
||||
else
|
||||
{
|
||||
return m_uart->data_r(space, 0) << 8;
|
||||
}
|
||||
return m_uart->read(offset & 1) << 8;
|
||||
}
|
||||
}
|
||||
|
||||
@ -221,14 +214,7 @@ WRITE16_MEMBER( compis_state::pcs6_2_3_w )
|
||||
}
|
||||
else
|
||||
{
|
||||
if (BIT(offset, 0))
|
||||
{
|
||||
m_uart->control_w(space, 0, data >> 8);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_uart->data_w(space, 0, data >> 8);
|
||||
}
|
||||
m_uart->write(offset & 1, data >> 8);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -255,8 +255,7 @@ void decwriter_state::la120_mem(address_map &map)
|
||||
void decwriter_state::la120_io(address_map &map)
|
||||
{
|
||||
map.unmap_value_high();
|
||||
map(0x00, 0x00).mirror(0x7C).rw(m_usart, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w)); // 8251 Data
|
||||
map(0x01, 0x01).mirror(0x7C).rw(m_usart, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w)); // 8251 Status/Control
|
||||
map(0x00, 0x01).mirror(0x7C).rw(m_usart, FUNC(i8251_device::read), FUNC(i8251_device::write)); // 8251 Status/Control
|
||||
//map(0x02, 0x02).mirror(0x7D); // other io ports, serial loopback etc, see table 4-9 in TM
|
||||
// 0x80-0xff are reserved for expansion (i.e. unused, open bus)
|
||||
map.global_mask(0xff);
|
||||
|
@ -157,8 +157,7 @@ void duet16_state::duet16_mem(address_map &map)
|
||||
map(0xf8040, 0xf804f).rw("itm", FUNC(ptm6840_device::read), FUNC(ptm6840_device::write)).umask16(0x00ff);
|
||||
map(0xf8060, 0xf8067).rw("bgpit", FUNC(pit8253_device::read), FUNC(pit8253_device::write)).umask16(0x00ff);
|
||||
map(0xf8080, 0xf8087).rw("sio", FUNC(upd7201_new_device::ba_cd_r), FUNC(upd7201_new_device::ba_cd_w)).umask16(0x00ff);
|
||||
map(0xf80a0, 0xf80a0).rw("kbusart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0xf80a2, 0xf80a2).rw("kbusart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0xf80a0, 0xf80a3).rw("kbusart", FUNC(i8251_device::read), FUNC(i8251_device::write)).umask16(0x00ff);
|
||||
map(0xf80c0, 0xf80c0).rw("crtc", FUNC(h46505_device::status_r), FUNC(h46505_device::address_w));
|
||||
map(0xf80c2, 0xf80c2).rw("crtc", FUNC(h46505_device::register_r), FUNC(h46505_device::register_w));
|
||||
map(0xf80e0, 0xf80e3).rw("i8741", FUNC(upi41_cpu_device::upi41_master_r), FUNC(upi41_cpu_device::upi41_master_w)).umask16(0x00ff);
|
||||
|
@ -174,10 +174,8 @@ void ksm_state::ksm_io(address_map &map)
|
||||
{
|
||||
map.unmap_value_high();
|
||||
map(0x5e, 0x5f).rw(m_pic8259, FUNC(pic8259_device::read), FUNC(pic8259_device::write));
|
||||
map(0x6e, 0x6e).rw(m_i8251kbd, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x6f, 0x6f).rw(m_i8251kbd, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x76, 0x76).rw(m_i8251line, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x77, 0x77).rw(m_i8251line, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x6e, 0x6f).rw(m_i8251kbd, FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
map(0x76, 0x77).rw(m_i8251line, FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
map(0x78, 0x7b).rw("ppi8255", FUNC(i8255_device::read), FUNC(i8255_device::write));
|
||||
}
|
||||
|
||||
|
@ -46,8 +46,7 @@ void ec7915_state::io_map(address_map &map)
|
||||
{
|
||||
map(0x00, 0x03).rw("ppi1", FUNC(i8255_device::read), FUNC(i8255_device::write));
|
||||
map(0x04, 0x07).rw("ppi2", FUNC(i8255_device::read), FUNC(i8255_device::write));
|
||||
map(0x08, 0x08).rw("usart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x09, 0x09).rw("usart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x08, 0x09).rw("usart", FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
map(0x0c, 0x0f).rw("ppi3", FUNC(i8255_device::read), FUNC(i8255_device::write));
|
||||
map(0x10, 0x13).w("pit", FUNC(pit8253_device::write));
|
||||
//map(0x14, 0x14).w("picu", FUNC(i8214_device::write));
|
||||
|
@ -488,8 +488,7 @@ void ecoinfr_state::memmap(address_map &map)
|
||||
map(0x0000, 0x7fff).rom();
|
||||
map(0x8000, 0x9fff).ram();
|
||||
|
||||
map(0xa000, 0xa000).rw(UPD8251_TAG, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0xa001, 0xa001).rw(UPD8251_TAG, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0xa000, 0xa001).rw(UPD8251_TAG, FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
|
||||
}
|
||||
|
||||
|
@ -430,8 +430,7 @@ void einstein_state::einstein_io(address_map &map)
|
||||
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(0x10, 0x10).mirror(0xff06).rw(IC_I060, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x11, 0x11).mirror(0xff06).rw(IC_I060, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
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));
|
||||
map(0x21, 0x21).mirror(0xff00).w(FUNC(einstein_state::adcint_msk_w));
|
||||
|
@ -294,14 +294,7 @@ READ8_MEMBER(elwro800_state::elwro800jr_io_r)
|
||||
else if (!BIT(cs,4))
|
||||
{
|
||||
// CS51
|
||||
if (offset & 1)
|
||||
{
|
||||
return m_i8251->status_r(space, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
return m_i8251->data_r(space, 0);
|
||||
}
|
||||
return m_i8251->read(offset & 1);
|
||||
}
|
||||
else if (!BIT(cs,5))
|
||||
{
|
||||
@ -345,14 +338,7 @@ WRITE8_MEMBER(elwro800_state::elwro800jr_io_w)
|
||||
else if (!BIT(cs,4))
|
||||
{
|
||||
// CS51
|
||||
if (offset & 1)
|
||||
{
|
||||
m_i8251->control_w(space, 0, data);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_i8251->data_w(space, 0, data);
|
||||
}
|
||||
m_i8251->write(offset & 1, data);
|
||||
}
|
||||
else if (!BIT(cs,5))
|
||||
{
|
||||
|
@ -136,8 +136,7 @@ void excali64_state::io_map(address_map &map)
|
||||
{
|
||||
map.global_mask(0xff);
|
||||
map(0x00, 0x0f).r(FUNC(excali64_state::port00_r));
|
||||
map(0x10, 0x10).mirror(0x0e).rw("uart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x11, 0x11).mirror(0x0e).rw("uart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x10, 0x11).mirror(0x0e).rw("uart", FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
map(0x20, 0x23).mirror(0x0c).rw("pit", FUNC(pit8253_device::read), FUNC(pit8253_device::write));
|
||||
map(0x30, 0x30).mirror(0x0e).rw(m_crtc, FUNC(mc6845_device::status_r), FUNC(mc6845_device::address_w));
|
||||
map(0x31, 0x31).mirror(0x0e).rw(m_crtc, FUNC(mc6845_device::register_r), FUNC(mc6845_device::register_w));
|
||||
|
@ -728,14 +728,10 @@ void fanucspmg_state::maincpu_mem(address_map &map)
|
||||
map(0xf0000, 0xf0003).rw(m_pic0, FUNC(pic8259_device::read), FUNC(pic8259_device::write)).umask16(0x00ff);
|
||||
map(0xf0004, 0xf0007).m(m_fdc, FUNC(upd765a_device::map)).umask16(0x00ff);
|
||||
map(0xf0008, 0xf000f).rw(m_pit0, FUNC(pit8253_device::read), FUNC(pit8253_device::write)).umask16(0x00ff);
|
||||
map(0xf0010, 0xf0010).rw(m_usart0, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0xf0012, 0xf0012).rw(m_usart0, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0xf0014, 0xf0014).rw(m_usart1, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0xf0016, 0xf0016).rw(m_usart1, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0xf0018, 0xf0018).rw(m_usart2, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0xf001a, 0xf001a).rw(m_usart2, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0xf001c, 0xf001c).rw(m_usart3, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0xf001e, 0xf001e).rw(m_usart3, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0xf0010, 0xf0013).rw(m_usart0, FUNC(i8251_device::read), FUNC(i8251_device::write)).umask16(0x00ff);
|
||||
map(0xf0014, 0xf0017).rw(m_usart1, FUNC(i8251_device::read), FUNC(i8251_device::write)).umask16(0x00ff);
|
||||
map(0xf0018, 0xf001b).rw(m_usart2, FUNC(i8251_device::read), FUNC(i8251_device::write)).umask16(0x00ff);
|
||||
map(0xf001c, 0xf001f).rw(m_usart3, FUNC(i8251_device::read), FUNC(i8251_device::write)).umask16(0x00ff);
|
||||
map(0xf0020, 0xf0029).rw(m_dmac, FUNC(i8257_device::read), FUNC(i8257_device::write));
|
||||
map(0xf0042, 0xf0043).r(FUNC(fanucspmg_state::magic_r));
|
||||
map(0xf0046, 0xf0046).w(FUNC(fanucspmg_state::dma_page_w));
|
||||
|
@ -82,8 +82,7 @@ void fb01_state::fb01_io(address_map &map)
|
||||
map(0x01, 0x01).rw("ym2164", FUNC(ym2151_device::status_r), FUNC(ym2151_device::data_w));
|
||||
|
||||
// 10-11 USART uPD71051C 4MHz & 4MHz / 8
|
||||
map(0x10, 0x10).rw(m_upd71051, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x11, 0x11).rw(m_upd71051, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x10, 0x11).rw(m_upd71051, FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
|
||||
// 20 PANEL SWITCH
|
||||
map(0x20, 0x20).portr("PANEL");
|
||||
|
@ -328,8 +328,7 @@ void fk1_state::fk1_io(address_map &map)
|
||||
map(0x10, 0x13).rw("pit8253", FUNC(pit8253_device::read), FUNC(pit8253_device::write));
|
||||
map(0x20, 0x23).rw("ppi8255_2", FUNC(i8255_device::read), FUNC(i8255_device::write));
|
||||
map(0x30, 0x30).rw(FUNC(fk1_state::fk1_bank_ram_r), FUNC(fk1_state::fk1_intr_w));
|
||||
map(0x40, 0x40).rw("uart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x41, 0x41).rw("uart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x40, 0x41).rw("uart", FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
map(0x50, 0x50).rw(FUNC(fk1_state::fk1_bank_rom_r), FUNC(fk1_state::fk1_disk_w));
|
||||
map(0x60, 0x63).rw("ppi8255_3", FUNC(i8255_device::read), FUNC(i8255_device::write));
|
||||
map(0x70, 0x70).rw(FUNC(fk1_state::fk1_mouse_r), FUNC(fk1_state::fk1_reset_int_w));
|
||||
|
@ -2122,10 +2122,8 @@ WRITE8_MEMBER( towns_state::towns_serial_w )
|
||||
switch(offset)
|
||||
{
|
||||
case 0:
|
||||
m_i8251->data_w(space,0,data);
|
||||
break;
|
||||
case 1:
|
||||
m_i8251->control_w(space,0,data);
|
||||
m_i8251->write(offset, data);
|
||||
break;
|
||||
case 4:
|
||||
m_serial_irq_enable = data;
|
||||
@ -2140,9 +2138,8 @@ READ8_MEMBER( towns_state::towns_serial_r )
|
||||
switch(offset)
|
||||
{
|
||||
case 0:
|
||||
return m_i8251->data_r(space,0);
|
||||
case 1:
|
||||
return m_i8251->status_r(space,0);
|
||||
return m_i8251->read(offset);
|
||||
case 3:
|
||||
return m_serial_irq_source;
|
||||
default:
|
||||
|
@ -197,11 +197,9 @@ void h8_state::h8_io(address_map &map)
|
||||
map.global_mask(0xff);
|
||||
map(0xf0, 0xf0).rw(FUNC(h8_state::portf0_r), FUNC(h8_state::portf0_w));
|
||||
map(0xf1, 0xf1).w(FUNC(h8_state::portf1_w));
|
||||
map(0xf8, 0xf8).rw(m_uart, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0xf9, 0xf9).rw(m_uart, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0xf8, 0xf9).rw(m_uart, FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
// optional connection to a serial terminal @ 600 baud
|
||||
//AM_RANGE(0xfa, 0xfa) AM_DEVREADWRITE("uart1", i8251_device, data_r, data_w)
|
||||
//AM_RANGE(0xfb, 0xfb) AM_DEVREADWRITE("uart1", i8251_device, status_r, control_w)
|
||||
//map(0xfa, 0xfb).rw("uart1", FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
}
|
||||
|
||||
/* Input ports */
|
||||
|
@ -961,13 +961,7 @@ void hp64k_state::hp64k_floppy_wpt_cb(floppy_image_device *floppy , int state)
|
||||
|
||||
READ16_MEMBER(hp64k_state::hp64k_usart_r)
|
||||
{
|
||||
uint16_t tmp;
|
||||
|
||||
if ((offset & 1) == 0) {
|
||||
tmp = m_uart->status_r(space , 0);
|
||||
} else {
|
||||
tmp = m_uart->data_r(space , 0);
|
||||
}
|
||||
uint16_t tmp = m_uart->read(~offset & 1);
|
||||
|
||||
// bit 8 == bit 7 rear panel switches (modem/terminal) ???
|
||||
|
||||
@ -982,11 +976,7 @@ READ16_MEMBER(hp64k_state::hp64k_usart_r)
|
||||
|
||||
WRITE16_MEMBER(hp64k_state::hp64k_usart_w)
|
||||
{
|
||||
if ((offset & 1) == 0) {
|
||||
m_uart->control_w(space , 0 , (uint8_t)(data & 0xff));
|
||||
} else {
|
||||
m_uart->data_w(space , 0 , (uint8_t)(data & 0xff));
|
||||
}
|
||||
m_uart->write(~offset & 1, data & 0xff);
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER(hp64k_state::hp64k_rxrdy_w)
|
||||
|
@ -701,10 +701,8 @@ void ibm6580_state::ibm6580_io(address_map &map)
|
||||
map(0x0040, 0x005f).rw(FUNC(ibm6580_state::p40_r), FUNC(ibm6580_state::p40_w)).umask16(0x00ff);
|
||||
map(0x0070, 0x007f).unmaprw();
|
||||
map(0x0120, 0x0127).rw(m_pit8253, FUNC(pit8253_device::read), FUNC(pit8253_device::write)).umask16(0x00ff);
|
||||
map(0x0140, 0x0140).rw("upd8251a", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x0142, 0x0142).rw("upd8251a", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x0160, 0x0160).rw("upd8251b", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x0162, 0x0162).rw("upd8251b", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x0140, 0x0143).rw("upd8251a", FUNC(i8251_device::read), FUNC(i8251_device::write)).umask16(0x00ff);
|
||||
map(0x0160, 0x0163).rw("upd8251b", FUNC(i8251_device::read), FUNC(i8251_device::write)).umask16(0x00ff);
|
||||
map(0x4000, 0x400f).unmaprw();
|
||||
map(0x5000, 0x500f).unmaprw();
|
||||
map(0x6000, 0x601f).unmaprw();
|
||||
|
@ -169,10 +169,8 @@ void icebox_state::io_map(address_map &map)
|
||||
{
|
||||
map.global_mask(0xff);
|
||||
map.unmap_value_high();
|
||||
map(0xe0, 0xe0).rw(m_uart0, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0xe1, 0xe1).rw(m_uart0, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0xe2, 0xe2).rw(m_uart1, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0xe3, 0xe3).rw(m_uart1, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0xe0, 0xe1).rw(m_uart0, FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
map(0xe2, 0xe3).rw(m_uart1, FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
map(0xe4, 0xe7).lrw8("fdc_usage",
|
||||
[this](offs_t offset) { return m_fdc->read(offset^3); },
|
||||
[this](offs_t offset, u8 data) { m_fdc->write(offset^3, data); });
|
||||
|
@ -143,10 +143,8 @@ void imds2_state::ipc_io_map(address_map &map)
|
||||
map.unmap_value_low();
|
||||
map(0xc0, 0xc1).rw(m_ioc, FUNC(imds2ioc_device::dbb_master_r), FUNC(imds2ioc_device::dbb_master_w));
|
||||
map(0xf0, 0xf3).rw(m_ipctimer, FUNC(pit8253_device::read), FUNC(pit8253_device::write));
|
||||
map(0xf4, 0xf4).rw(m_ipcusart[0], FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0xf5, 0xf5).rw(m_ipcusart[0], FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0xf6, 0xf6).rw(m_ipcusart[1], FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0xf7, 0xf7).rw(m_ipcusart[1], FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0xf4, 0xf5).rw(m_ipcusart[0], FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
map(0xf6, 0xf7).rw(m_ipcusart[1], FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
map(0xf8, 0xf9).rw(m_ioc, FUNC(imds2ioc_device::pio_master_r), FUNC(imds2ioc_device::pio_master_w));
|
||||
map(0xfa, 0xfb).rw(FUNC(imds2_state::ipclocpic_r), FUNC(imds2_state::ipclocpic_w));
|
||||
map(0xfc, 0xfd).rw(FUNC(imds2_state::ipcsyspic_r), FUNC(imds2_state::ipcsyspic_w));
|
||||
|
@ -68,10 +68,8 @@ void imsai_state::imsai_io(address_map &map)
|
||||
map.global_mask(0xff);
|
||||
map(0x02, 0x02).r(FUNC(imsai_state::keyin_r)).w(m_terminal, FUNC(generic_terminal_device::write));
|
||||
map(0x03, 0x03).r(FUNC(imsai_state::status_r));
|
||||
map(0x04, 0x04).rw("uart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x05, 0x05).rw("uart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x12, 0x12).rw("uart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x13, 0x13).rw("uart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x04, 0x05).rw("uart", FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
map(0x12, 0x13).rw("uart", FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
map(0x14, 0x14).r(FUNC(imsai_state::keyin_r)).w(m_terminal, FUNC(generic_terminal_device::write));
|
||||
map(0x15, 0x15).r(FUNC(imsai_state::status_r));
|
||||
map(0xf3, 0xf3).w(FUNC(imsai_state::control_w));
|
||||
|
@ -77,10 +77,8 @@ void ipc_state::ipc_io(address_map &map)
|
||||
map.unmap_value_high();
|
||||
map.global_mask(0xff);
|
||||
map(0xf0, 0xf3).rw("pit", FUNC(pit8253_device::read), FUNC(pit8253_device::write));
|
||||
map(0xf4, 0xf4).rw("uart1", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0xf5, 0xf5).rw("uart1", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0xf6, 0xf6).rw("uart2", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0xf7, 0xf7).rw("uart2", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0xf4, 0xf5).rw("uart1", FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
map(0xf6, 0xf7).rw("uart2", FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
}
|
||||
|
||||
/* Input ports */
|
||||
|
@ -83,8 +83,7 @@ void irisha_state::irisha_mem(address_map &map)
|
||||
void irisha_state::irisha_io(address_map &map)
|
||||
{
|
||||
map(0x04, 0x05).r(FUNC(irisha_state::irisha_keyboard_r));
|
||||
map(0x06, 0x06).rw("uart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x07, 0x07).rw("uart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x06, 0x07).rw("uart", FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
map(0x08, 0x0B).rw(m_pit, FUNC(pit8253_device::read), FUNC(pit8253_device::write));
|
||||
map(0x0C, 0x0F).rw("pic8259", FUNC(pic8259_device::read), FUNC(pic8259_device::write)).mask(0x01);
|
||||
map(0x10, 0x13).rw("ppi8255", FUNC(i8255_device::read), FUNC(i8255_device::write));
|
||||
|
@ -135,10 +135,8 @@ void isbc_state::rpc86_io(address_map &map)
|
||||
map(0x00c4, 0x00c7).rw(m_pic_0, FUNC(pic8259_device::read), FUNC(pic8259_device::write)).umask16(0x00ff);
|
||||
map(0x00c8, 0x00cf).rw("ppi", FUNC(i8255_device::read), FUNC(i8255_device::write)).umask16(0x00ff);
|
||||
map(0x00d0, 0x00d7).rw("pit", FUNC(pit8253_device::read), FUNC(pit8253_device::write)).umask16(0x00ff);
|
||||
map(0x00d8, 0x00d8).rw(m_uart8251, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x00da, 0x00da).rw(m_uart8251, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x00dc, 0x00dc).rw(m_uart8251, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x00de, 0x00de).rw(m_uart8251, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x00d8, 0x00db).rw(m_uart8251, FUNC(i8251_device::read), FUNC(i8251_device::write)).umask16(0x00ff);
|
||||
map(0x00dc, 0x00df).rw(m_uart8251, FUNC(i8251_device::read), FUNC(i8251_device::write)).umask16(0x00ff);
|
||||
}
|
||||
|
||||
void isbc_state::isbc8605_io(address_map &map)
|
||||
@ -169,10 +167,8 @@ void isbc_state::isbc_io(address_map &map)
|
||||
map(0x00c4, 0x00c7).rw(m_pic_0, FUNC(pic8259_device::read), FUNC(pic8259_device::write)).umask16(0x00ff);
|
||||
map(0x00c8, 0x00cf).rw("ppi", FUNC(i8255_device::read), FUNC(i8255_device::write)).umask16(0x00ff);
|
||||
map(0x00d0, 0x00d7).rw("pit", FUNC(pit8253_device::read), FUNC(pit8253_device::write)).umask16(0x00ff);
|
||||
map(0x00d8, 0x00d8).rw(m_uart8251, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x00da, 0x00da).rw(m_uart8251, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x00dc, 0x00dc).rw(m_uart8251, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x00de, 0x00de).rw(m_uart8251, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x00d8, 0x00db).rw(m_uart8251, FUNC(i8251_device::read), FUNC(i8251_device::write)).umask16(0x00ff);
|
||||
map(0x00dc, 0x00df).rw(m_uart8251, FUNC(i8251_device::read), FUNC(i8251_device::write)).umask16(0x00ff);
|
||||
}
|
||||
|
||||
void isbc_state::isbc286_io(address_map &map)
|
||||
|
@ -106,8 +106,7 @@ void isbc8010_state::isbc8010_io(address_map &map)
|
||||
map.global_mask(0xff);
|
||||
map(0xe4, 0xe7).rw(m_ppi_0, FUNC(i8255_device::read), FUNC(i8255_device::write));
|
||||
map(0xe8, 0xeb).rw(m_ppi_1, FUNC(i8255_device::read), FUNC(i8255_device::write));
|
||||
map(0xec, 0xec).mirror(0x02).rw(m_usart, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0xed, 0xed).mirror(0x02).rw(m_usart, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0xec, 0xed).mirror(0x02).rw(m_usart, FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
//AM_RANGE(0xf0, 0xf7) MCS0 - iSBX Multimodule
|
||||
//AM_RANGE(0xf8, 0xff) MCS1 - iSBX Multimodule
|
||||
}
|
||||
|
@ -79,8 +79,7 @@ void isbc8030_state::isbc8030_io(address_map &map)
|
||||
map(0xd8, 0xd9).rw(m_pic, FUNC(pic8259_device::read), FUNC(pic8259_device::write));
|
||||
map(0xdc, 0xdf).rw(m_pit, FUNC(pit8253_device::read), FUNC(pit8253_device::write));
|
||||
map(0xe8, 0xeb).rw(m_ppi, FUNC(i8255_device::read), FUNC(i8255_device::write));
|
||||
map(0xec, 0xec).mirror(0x02).rw(m_usart, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0xed, 0xed).mirror(0x02).rw(m_usart, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0xec, 0xed).mirror(0x02).rw(m_usart, FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
}
|
||||
|
||||
static INPUT_PORTS_START( isbc8030 )
|
||||
|
@ -628,8 +628,7 @@ void tandy200_state::tandy200_io(address_map &map)
|
||||
map(0x90, 0x9f).rw(m_rtc, FUNC(rp5c01_device::read), FUNC(rp5c01_device::write));
|
||||
// AM_RANGE(0xa0, 0xa0) AM_MIRROR(0x0f) AM_DEVWRITE(TCM5089_TAG, write)
|
||||
map(0xb0, 0xb7).mirror(0x08).rw(I8155_TAG, FUNC(i8155_device::io_r), FUNC(i8155_device::io_w));
|
||||
map(0xc0, 0xc0).mirror(0x0e).rw(I8251_TAG, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0xc1, 0xc1).mirror(0x0e).rw(I8251_TAG, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0xc0, 0xc1).mirror(0x0e).rw(I8251_TAG, FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
map(0xd0, 0xd0).mirror(0x0f).rw(FUNC(tandy200_state::bank_r), FUNC(tandy200_state::bank_w));
|
||||
map(0xe0, 0xe0).mirror(0x0f).rw(FUNC(tandy200_state::stbk_r), FUNC(tandy200_state::stbk_w));
|
||||
map(0xf0, 0xf0).mirror(0x0e).rw(m_lcdc, FUNC(hd61830_device::data_r), FUNC(hd61830_device::data_w));
|
||||
|
@ -151,13 +151,11 @@ void mbc200_state::mbc200_io(address_map &map)
|
||||
{
|
||||
map.unmap_value_high();
|
||||
map.global_mask(0xff);
|
||||
//AM_RANGE(0xe0, 0xe0) AM_DEVREADWRITE("uart1", i8251_device, data_r, data_w)
|
||||
//AM_RANGE(0xe1, 0xe1) AM_DEVREADWRITE("uart1", i8251_device, status_r, control_w)
|
||||
//map(0xe0, 0xe1).rw("uart1", FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
map(0xe0, 0xe1).r(FUNC(mbc200_state::keyboard_r)).nopw();
|
||||
map(0xe4, 0xe7).rw(m_fdc, FUNC(mb8876_device::read), FUNC(mb8876_device::write));
|
||||
map(0xe8, 0xeb).rw(m_ppi_m, FUNC(i8255_device::read), FUNC(i8255_device::write));
|
||||
map(0xec, 0xec).rw("uart2", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0xed, 0xed).rw("uart2", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0xec, 0xed).rw("uart2", FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
}
|
||||
|
||||
|
||||
|
@ -219,8 +219,7 @@ void mc1502_state::mc1502_map(address_map &map)
|
||||
void mc1502_state::mc1502_io(address_map &map)
|
||||
{
|
||||
map(0x0020, 0x0021).rw(m_pic8259, FUNC(pic8259_device::read), FUNC(pic8259_device::write));
|
||||
map(0x0028, 0x0028).rw(m_upd8251, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x0029, 0x0029).rw(m_upd8251, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x0028, 0x0029).rw(m_upd8251, FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
map(0x0040, 0x0043).rw(m_pit8253, FUNC(pit8253_device::read), FUNC(pit8253_device::write));
|
||||
map(0x0060, 0x0063).rw(m_ppi8255n1, FUNC(i8255_device::read), FUNC(i8255_device::write));
|
||||
map(0x0068, 0x006B).rw(m_ppi8255n2, FUNC(i8255_device::read), FUNC(i8255_device::write)); // keyboard poll
|
||||
|
@ -110,8 +110,7 @@ void meritum_state::io_map(address_map &map)
|
||||
map(0xf0, 0xf3).rw("flopppi", FUNC(i8255_device::read), FUNC(i8255_device::write));
|
||||
map(0xf4, 0xf7).rw("mainppi", FUNC(i8255_device::read), FUNC(i8255_device::write));
|
||||
map(0xf8, 0xfb).rw("mainpit", FUNC(pit8253_device::read), FUNC(pit8253_device::write));
|
||||
map(0xfc, 0xfc).rw("usart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0xfd, 0xfd).rw("usart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0xfc, 0xfd).rw("usart", FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
// map(0xfe, 0xfe) audio interface
|
||||
map(0xff, 0xff).rw(FUNC(meritum_state::port_ff_r), FUNC(meritum_state::port_ff_w));
|
||||
}
|
||||
|
@ -78,18 +78,15 @@ void mfabfz_state::mfabfz_io(address_map &map)
|
||||
{
|
||||
map.unmap_value_high();
|
||||
map.global_mask(0xff);
|
||||
map(0xbe, 0xbe).rw("uart1", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0xbf, 0xbf).rw("uart1", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0xfe, 0xfe).rw("uart2", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0xff, 0xff).rw("uart2", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0xbe, 0xbf).rw("uart1", FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
map(0xfe, 0xff).rw("uart2", FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
}
|
||||
|
||||
void mfabfz_state::mfabfz85_io(address_map &map)
|
||||
{
|
||||
map.unmap_value_high();
|
||||
map.global_mask(0xff);
|
||||
map(0xfe, 0xfe).rw("uart2", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0xff, 0xff).rw("uart2", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0xfe, 0xff).rw("uart2", FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
}
|
||||
|
||||
/* Input ports */
|
||||
|
@ -69,8 +69,7 @@ void mice_state::mice_io(address_map &map)
|
||||
{
|
||||
map.unmap_value_high();
|
||||
map.global_mask(0xff);
|
||||
map(0x50, 0x50).rw("uart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x51, 0x51).rw("uart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x50, 0x51).rw("uart", FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
map(0x60, 0x67).rw("rpt", FUNC(i8155_device::io_r), FUNC(i8155_device::io_w));
|
||||
map(0x70, 0x73).rw("ppi", FUNC(i8255_device::read), FUNC(i8255_device::write));
|
||||
}
|
||||
@ -88,8 +87,7 @@ void mice_state::mice2_io(address_map &map)
|
||||
{
|
||||
map.unmap_value_high();
|
||||
map.global_mask(0xff);
|
||||
map(0x80, 0x80).rw("uart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x81, 0x81).rw("uart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x80, 0x81).rw("uart", FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
map(0x90, 0x97).rw("rpt", FUNC(i8155_device::io_r), FUNC(i8155_device::io_w));
|
||||
map(0xa0, 0xa3).rw("ppi", FUNC(i8255_device::read), FUNC(i8255_device::write));
|
||||
map(0xc0, 0xc3).rw("rttppi1", FUNC(i8255_device::read), FUNC(i8255_device::write));
|
||||
|
@ -142,10 +142,8 @@ void microdec_state::microdec_io(address_map &map)
|
||||
map(0xf7, 0xf7).rw(FUNC(microdec_state::portf7_r), FUNC(microdec_state::portf7_w));
|
||||
map(0xf8, 0xf8).w(FUNC(microdec_state::portf8_w));
|
||||
map(0xfa, 0xfb).m(m_fdc, FUNC(upd765a_device::map));
|
||||
map(0xfc, 0xfc).rw("uart1", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0xfd, 0xfd).rw("uart1", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0xfe, 0xfe).rw("uart2", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0xff, 0xff).rw("uart2", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0xfc, 0xfd).rw("uart1", FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
map(0xfe, 0xff).rw("uart2", FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
// AM_RANGE(0xf0, 0xf3) 8253 PIT (md3 only) used as a baud rate generator for serial ports
|
||||
// AM_RANGE(0xf4, 0xf4) Centronics data
|
||||
// AM_RANGE(0xf5, 0xf5) motor check (md1/2)
|
||||
|
@ -838,7 +838,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(model1_state::model1_interrupt)
|
||||
}
|
||||
}
|
||||
|
||||
MACHINE_RESET_MEMBER(model1_state,model1)
|
||||
void model1_state::machine_reset()
|
||||
{
|
||||
membank("bank1")->set_base(memregion("maincpu")->base() + 0x1000000);
|
||||
irq_init();
|
||||
@ -938,8 +938,7 @@ void model1_state::model1_mem(address_map &map)
|
||||
|
||||
map(0xc00000, 0xc00fff).r(FUNC(model1_state::dpram_r)).w(m_dpram, FUNC(mb8421_device::right_w)).umask16(0x00ff); // 2k*8-bit dual port ram
|
||||
|
||||
map(0xc40000, 0xc40000).rw(m_m1uart, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0xc40002, 0xc40002).rw(m_m1uart, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0xc40000, 0xc40003).rw(m_m1uart, FUNC(i8251_device::read), FUNC(i8251_device::write)).umask16(0x00ff);
|
||||
|
||||
map(0xd00000, 0xd00001).rw(FUNC(model1_state::v60_copro_ram_adr_r), FUNC(model1_state::v60_copro_ram_adr_w));
|
||||
map(0xd20000, 0xd20003).w(FUNC(model1_state::v60_copro_ram_w));
|
||||
@ -1400,7 +1399,7 @@ ROM_START( swa )
|
||||
ROM_LOAD32_WORD( "mpr-16480.30", 0x800000, 0x200000, CRC(3185547a) SHA1(9871937372c2c755717802117a3ad39e1a11410e) )
|
||||
ROM_LOAD32_WORD( "mpr-16481.31", 0x800002, 0x200000, CRC(ce8d76fe) SHA1(0406f0500d19d6707515627b4143f92a9a5db769) )
|
||||
|
||||
ROM_REGION32_LE( 0x200000, "tgp_data", 0 ) /* TGP data roms */
|
||||
ROM_REGION32_LE( 0x200000, "copro_data", 0 ) /* TGP data roms */
|
||||
ROM_LOAD32_BYTE( "mpr-16472.39", 0x000000, 0x80000, CRC(5a0d7553) SHA1(ba8e08e5a0c6b7fbc10084ad7ad3edf61efb0d70) )
|
||||
ROM_LOAD32_BYTE( "mpr-16473.40", 0x000001, 0x80000, CRC(876c5399) SHA1(be7e40c77a385600941f11c24852cd73c71696f0) )
|
||||
ROM_LOAD32_BYTE( "mpr-16474.41", 0x000002, 0x80000, CRC(5864a26f) SHA1(be0c22dfff37408f6b401b1970f7fcc6fc7fbcd2) )
|
||||
@ -1453,7 +1452,7 @@ ROM_START( wingwar )
|
||||
ROM_LOAD32_WORD( "mpr-16749.32", 0xc00000, 0x200000, CRC(0e36dc1a) SHA1(4939177a6ac51ca57d0acd118ff14af4f4e438bb) )
|
||||
ROM_LOAD32_WORD( "mpr-16750.33", 0xc00002, 0x200000, CRC(e4f0b98d) SHA1(e69de2e5ccea2834fb8326bdd61fc6b517bc60b7) )
|
||||
|
||||
ROM_REGION32_LE( 0x200000, "tgp_data", 0 ) /* TGP data roms */
|
||||
ROM_REGION32_LE( 0x200000, "copro_data", 0 ) /* TGP data roms */
|
||||
ROM_LOAD32_BYTE( "mpr-16741.39", 0x000000, 0x80000, CRC(84b2ffd8) SHA1(0eba3855d20b88567c6fa08046e12429664d87cb) )
|
||||
ROM_LOAD32_BYTE( "mpr-16742.40", 0x000001, 0x80000, CRC(e9cc12bb) SHA1(40c83c968be3b11fad193a00e7b760f074450683) )
|
||||
ROM_LOAD32_BYTE( "mpr-16739.41", 0x000002, 0x80000, CRC(6c73e98f) SHA1(7b31e62922ab6d0df97c3ecc52b78e6d086c8635) )
|
||||
@ -1514,7 +1513,7 @@ ROM_START( wingwaru )
|
||||
ROM_LOAD32_WORD( "mpr-16749.32", 0xc00000, 0x200000, CRC(0e36dc1a) SHA1(4939177a6ac51ca57d0acd118ff14af4f4e438bb) )
|
||||
ROM_LOAD32_WORD( "mpr-16750.33", 0xc00002, 0x200000, CRC(e4f0b98d) SHA1(e69de2e5ccea2834fb8326bdd61fc6b517bc60b7) )
|
||||
|
||||
ROM_REGION32_LE( 0x200000, "tgp_data", 0 ) /* TGP data roms */
|
||||
ROM_REGION32_LE( 0x200000, "copro_data", 0 ) /* TGP data roms */
|
||||
ROM_LOAD32_BYTE( "mpr-16741.39", 0x000000, 0x80000, CRC(84b2ffd8) SHA1(0eba3855d20b88567c6fa08046e12429664d87cb) )
|
||||
ROM_LOAD32_BYTE( "mpr-16742.40", 0x000001, 0x80000, CRC(e9cc12bb) SHA1(40c83c968be3b11fad193a00e7b760f074450683) )
|
||||
ROM_LOAD32_BYTE( "mpr-16739.41", 0x000002, 0x80000, CRC(6c73e98f) SHA1(7b31e62922ab6d0df97c3ecc52b78e6d086c8635) )
|
||||
@ -1566,7 +1565,7 @@ ROM_START( wingwarj )
|
||||
ROM_LOAD32_WORD( "mpr-16749.32", 0xc00000, 0x200000, CRC(0e36dc1a) SHA1(4939177a6ac51ca57d0acd118ff14af4f4e438bb) )
|
||||
ROM_LOAD32_WORD( "mpr-16750.33", 0xc00002, 0x200000, CRC(e4f0b98d) SHA1(e69de2e5ccea2834fb8326bdd61fc6b517bc60b7) )
|
||||
|
||||
ROM_REGION32_LE( 0x200000, "tgp_data", 0 ) /* TGP data roms */
|
||||
ROM_REGION32_LE( 0x200000, "copro_data", 0 ) /* TGP data roms */
|
||||
ROM_LOAD32_BYTE( "mpr-16741.39", 0x000000, 0x80000, CRC(84b2ffd8) SHA1(0eba3855d20b88567c6fa08046e12429664d87cb) )
|
||||
ROM_LOAD32_BYTE( "mpr-16742.40", 0x000001, 0x80000, CRC(e9cc12bb) SHA1(40c83c968be3b11fad193a00e7b760f074450683) )
|
||||
ROM_LOAD32_BYTE( "mpr-16739.41", 0x000002, 0x80000, CRC(6c73e98f) SHA1(7b31e62922ab6d0df97c3ecc52b78e6d086c8635) )
|
||||
@ -1620,7 +1619,7 @@ ROM_START( wingwar360 )
|
||||
ROM_LOAD32_WORD( "mpr-16749.32", 0xc00000, 0x200000, CRC(0e36dc1a) SHA1(4939177a6ac51ca57d0acd118ff14af4f4e438bb) )
|
||||
ROM_LOAD32_WORD( "mpr-16750.33", 0xc00002, 0x200000, CRC(e4f0b98d) SHA1(e69de2e5ccea2834fb8326bdd61fc6b517bc60b7) )
|
||||
|
||||
ROM_REGION32_LE( 0x200000, "tgp_data", 0 ) /* TGP data roms */
|
||||
ROM_REGION32_LE( 0x200000, "copro_data", 0 ) /* TGP data roms */
|
||||
ROM_LOAD32_BYTE( "mpr-16741.39", 0x000000, 0x80000, CRC(84b2ffd8) SHA1(0eba3855d20b88567c6fa08046e12429664d87cb) )
|
||||
ROM_LOAD32_BYTE( "mpr-16742.40", 0x000001, 0x80000, CRC(e9cc12bb) SHA1(40c83c968be3b11fad193a00e7b760f074450683) )
|
||||
ROM_LOAD32_BYTE( "mpr-16739.41", 0x000002, 0x80000, CRC(6c73e98f) SHA1(7b31e62922ab6d0df97c3ecc52b78e6d086c8635) )
|
||||
@ -1668,7 +1667,7 @@ ROM_START( netmerc )
|
||||
ROM_LOAD32_WORD( "mpr-18132.ic30", 0x800000, 0x200000, CRC(a17e3ac2) SHA1(19827c06ebc3e9de63668ef07675224e169d853e) )
|
||||
ROM_LOAD32_WORD( "mpr-18133.ic31", 0x800002, 0x200000, CRC(f56354dd) SHA1(2ef1fe8b4995a67b70b565adf8f0ea0ad6e10094) )
|
||||
|
||||
ROM_REGION32_LE( 0x200000, "tgp_data", ROMREGION_ERASE00 ) // IC39-IC42 unpopulated
|
||||
ROM_REGION32_LE( 0x200000, "copro_data", ROMREGION_ERASE00 ) // IC39-IC42 unpopulated
|
||||
|
||||
ROM_REGION( 0x8000, "polhemus", 0 ) /* POLHEMUS board */
|
||||
ROM_LOAD16_BYTE( "u1", 0x0000, 0x4000, CRC(7073a312) SHA1(d2582f9520b8c8c051708dd372633112af59206e) )
|
||||
@ -1694,9 +1693,6 @@ MACHINE_CONFIG_START(model1_state::model1)
|
||||
MCFG_DEVICE_ADDRESS_MAP(mb86233_device::AS_RF, copro_rf_map)
|
||||
#endif
|
||||
|
||||
MCFG_MACHINE_START_OVERRIDE(model1_state,model1)
|
||||
MCFG_MACHINE_RESET_OVERRIDE(model1_state,model1)
|
||||
|
||||
model1io_device &ioboard(SEGA_MODEL1IO(config, "ioboard", 0));
|
||||
ioboard.read_callback().set(m_dpram, FUNC(mb8421_device::left_r));
|
||||
ioboard.write_callback().set(m_dpram, FUNC(mb8421_device::left_w));
|
||||
@ -1717,8 +1713,6 @@ MACHINE_CONFIG_START(model1_state::model1)
|
||||
MCFG_PALETTE_ADD("palette", 8192)
|
||||
MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
|
||||
|
||||
MCFG_VIDEO_START_OVERRIDE(model1_state,model1)
|
||||
|
||||
SEGAM1AUDIO(config, m_m1audio, 0);
|
||||
m_m1audio->rxd_handler().set(m_m1uart, FUNC(i8251_device::write_rxd));
|
||||
|
||||
|
@ -990,9 +990,9 @@ READ32_MEMBER(model2_state::model2_serial_r)
|
||||
{
|
||||
u32 result = 0;
|
||||
if (ACCESSING_BITS_0_7 && (offset == 0))
|
||||
result |= m_uart->data_r(space, 0);
|
||||
result |= m_uart->data_r();
|
||||
if (ACCESSING_BITS_16_23 && (offset == 0))
|
||||
result |= m_uart->status_r(space, 0) << 16;
|
||||
result |= m_uart->status_r() << 16;
|
||||
return result;
|
||||
}
|
||||
|
||||
@ -1004,7 +1004,7 @@ WRITE32_MEMBER(model2_state::model2_serial_w)
|
||||
{
|
||||
if (ACCESSING_BITS_0_7 && (offset == 0))
|
||||
{
|
||||
m_uart->data_w(space, 0, data & 0xff);
|
||||
m_uart->data_w(data & 0xff);
|
||||
|
||||
if (m_scsp.found())
|
||||
{
|
||||
@ -1017,7 +1017,7 @@ WRITE32_MEMBER(model2_state::model2_serial_w)
|
||||
}
|
||||
if (ACCESSING_BITS_16_23 && (offset == 0))
|
||||
{
|
||||
m_uart->control_w(space, 0, (data >> 16) & 0xff);
|
||||
m_uart->control_w((data >> 16) & 0xff);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1729,7 +1729,7 @@ READ8_MEMBER(model3_state::model3_sound_r)
|
||||
case 0:
|
||||
{
|
||||
if (m_uart.found())
|
||||
return m_uart->data_r(space, 0);
|
||||
return m_uart->data_r();
|
||||
|
||||
break;
|
||||
}
|
||||
@ -1737,7 +1737,7 @@ READ8_MEMBER(model3_state::model3_sound_r)
|
||||
case 4:
|
||||
{
|
||||
if (m_uart.found())
|
||||
return m_uart->status_r(space, 0);
|
||||
return m_uart->status_r();
|
||||
|
||||
uint8_t res = 0;
|
||||
res |= 1;
|
||||
@ -1757,7 +1757,7 @@ WRITE8_MEMBER(model3_state::model3_sound_w)
|
||||
set_irq_line(0x40, CLEAR_LINE);
|
||||
|
||||
if (m_uart.found())
|
||||
m_uart->data_w(space, 0, data);
|
||||
m_uart->data_w(data);
|
||||
|
||||
// send to the sound board
|
||||
m_scsp1->midi_in(data);
|
||||
@ -1771,7 +1771,7 @@ WRITE8_MEMBER(model3_state::model3_sound_w)
|
||||
|
||||
case 4:
|
||||
if (m_uart.found())
|
||||
m_uart->control_w(space, 0, data);
|
||||
m_uart->control_w(data);
|
||||
|
||||
if (data == 0x27)
|
||||
{
|
||||
|
@ -135,8 +135,7 @@ void ms6102_state::ms6102_mem(address_map &map)
|
||||
void ms6102_state::ms6102_io(address_map &map)
|
||||
{
|
||||
map.unmap_value_high();
|
||||
map(0x00, 0x00).rw(m_i8251, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x01, 0x01).rw(m_i8251, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x00, 0x01).rw(m_i8251, FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
map(0x10, 0x18).rw(m_dma8257, FUNC(i8257_device::read), FUNC(i8257_device::write));
|
||||
map(0x20, 0x23).rw("pit8253", FUNC(pit8253_device::read), FUNC(pit8253_device::write));
|
||||
map(0x30, 0x30).mirror(0x0f).rw("589wa1", FUNC(ay31015_device::receive), FUNC(ay31015_device::transmit));
|
||||
|
@ -310,8 +310,7 @@ void multi8_state::multi8_io(address_map &map)
|
||||
map(0x1a, 0x1a).r(FUNC(multi8_state::ay8912_1_r));
|
||||
map(0x1c, 0x1c).rw(m_crtc, FUNC(mc6845_device::status_r), FUNC(mc6845_device::address_w));
|
||||
map(0x1d, 0x1d).rw(m_crtc, FUNC(mc6845_device::register_r), FUNC(mc6845_device::register_w));
|
||||
map(0x20, 0x20).rw("uart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x21, 0x21).rw("uart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w)); //cmt
|
||||
map(0x20, 0x21).rw("uart", FUNC(i8251_device::read), FUNC(i8251_device::write)); //cmt
|
||||
map(0x24, 0x27).rw("pit", FUNC(pit8253_device::read), FUNC(pit8253_device::write)); //pit
|
||||
map(0x28, 0x2b).rw(m_ppi, FUNC(i8255_device::read), FUNC(i8255_device::write));
|
||||
map(0x2c, 0x2d).rw("pic", FUNC(pic8259_device::read), FUNC(pic8259_device::write)); //i8259
|
||||
|
@ -855,8 +855,7 @@ void nc100_state::nc100_io(address_map &map)
|
||||
map(0x91, 0x9f).r(FUNC(nc100_state::nc_irq_status_r));
|
||||
map(0xa0, 0xaf).r(FUNC(nc100_state::nc100_card_battery_status_r));
|
||||
map(0xb0, 0xb9).r(FUNC(nc100_state::nc_key_data_in_r));
|
||||
map(0xc0, 0xc0).rw(m_uart, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0xc1, 0xc1).rw(m_uart, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0xc0, 0xc1).rw(m_uart, FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
map(0xd0, 0xdf).rw("rtc", FUNC(tc8521_device::read), FUNC(tc8521_device::write));
|
||||
}
|
||||
|
||||
@ -1259,8 +1258,7 @@ void nc200_state::nc200_io(address_map &map)
|
||||
map(0x90, 0x90).rw(FUNC(nc200_state::nc_irq_status_r), FUNC(nc200_state::nc200_irq_status_w));
|
||||
map(0xa0, 0xa0).r(FUNC(nc200_state::nc200_card_battery_status_r));
|
||||
map(0xb0, 0xb9).r(FUNC(nc200_state::nc_key_data_in_r));
|
||||
map(0xc0, 0xc0).rw(m_uart, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0xc1, 0xc1).rw(m_uart, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0xc0, 0xc1).rw(m_uart, FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
map(0xd0, 0xd1).rw("mc", FUNC(mc146818_device::read), FUNC(mc146818_device::write));
|
||||
map(0xe0, 0xe1).m("upd765", FUNC(upd765a_device::map));
|
||||
}
|
||||
|
@ -346,12 +346,9 @@ WRITE16_MEMBER(ngen_state::peripheral_w)
|
||||
m_crtc->register_w(space,0,data & 0xff);
|
||||
break;
|
||||
case 0x146:
|
||||
if(ACCESSING_BITS_0_7)
|
||||
m_viduart->data_w(space,0,data & 0xff);
|
||||
break;
|
||||
case 0x147:
|
||||
if(ACCESSING_BITS_0_7)
|
||||
m_viduart->control_w(space,0,data & 0xff);
|
||||
m_viduart->write(offset & 1, data & 0xff);
|
||||
break;
|
||||
case 0x1a0: // serial?
|
||||
logerror("Serial(?) 0x1a0 write offset %04x data %04x mask %04x\n",offset,data,mem_mask);
|
||||
@ -420,13 +417,10 @@ READ16_MEMBER(ngen_state::peripheral_r)
|
||||
ret = m_crtc->register_r(space,0);
|
||||
break;
|
||||
case 0x146:
|
||||
if(ACCESSING_BITS_0_7)
|
||||
ret = m_viduart->data_r(space,0);
|
||||
break;
|
||||
case 0x147: // keyboard UART
|
||||
// expects bit 0 to be set (UART transmit ready)
|
||||
// status expects bit 0 to be set (UART transmit ready)
|
||||
if(ACCESSING_BITS_0_7)
|
||||
ret = m_viduart->status_r(space,0);
|
||||
ret = m_viduart->read(offset & 1);
|
||||
break;
|
||||
case 0x1a0: // I/O control register?
|
||||
ret = m_control; // end of DMA transfer? (maybe a per-channel EOP?) Bit 6 is set during a transfer?
|
||||
@ -791,13 +785,10 @@ READ16_MEMBER( ngen_state::b38_keyboard_r )
|
||||
switch(offset)
|
||||
{
|
||||
case 0:
|
||||
if(ACCESSING_BITS_0_7)
|
||||
ret = m_viduart->data_r(space,0);
|
||||
break;
|
||||
case 1: // keyboard UART
|
||||
// expects bit 0 to be set (UART transmit ready)
|
||||
// status expects bit 0 to be set (UART transmit ready)
|
||||
if(ACCESSING_BITS_0_7)
|
||||
ret = m_viduart->status_r(space,0);
|
||||
ret = m_viduart->read(offset & 1);
|
||||
break;
|
||||
}
|
||||
return ret;
|
||||
@ -808,12 +799,9 @@ WRITE16_MEMBER( ngen_state::b38_keyboard_w )
|
||||
switch(offset)
|
||||
{
|
||||
case 0:
|
||||
if(ACCESSING_BITS_0_7)
|
||||
m_viduart->data_w(space,0,data & 0xff);
|
||||
break;
|
||||
case 1:
|
||||
if(ACCESSING_BITS_0_7)
|
||||
m_viduart->control_w(space,0,data & 0xff);
|
||||
m_viduart->write(offset & 1, data & 0xff);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -829,7 +817,7 @@ READ16_MEMBER( ngen_state::b38_crtc_r )
|
||||
break;
|
||||
case 1:
|
||||
if(ACCESSING_BITS_0_7)
|
||||
ret = m_viduart->data_r(space,0);
|
||||
ret = m_viduart->data_r();
|
||||
break;
|
||||
}
|
||||
return ret;
|
||||
|
@ -305,8 +305,7 @@ void octopus_state::octopus_io(address_map &map)
|
||||
map(0x20, 0x20).portr("DSWA");
|
||||
map(0x21, 0x2f).rw(FUNC(octopus_state::system_r), FUNC(octopus_state::system_w));
|
||||
map(0x31, 0x33).rw(FUNC(octopus_state::bank_sel_r), FUNC(octopus_state::bank_sel_w));
|
||||
map(0x50, 0x50).rw(m_kb_uart, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x51, 0x51).rw(m_kb_uart, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x50, 0x51).rw(m_kb_uart, FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
// 0x70-73: HD controller
|
||||
map(0x80, 0x83).rw(m_pit, FUNC(pit8253_device::read), FUNC(pit8253_device::write));
|
||||
map(0xa0, 0xa0).rw(m_serial, FUNC(z80sio_device::da_r), FUNC(z80sio_device::da_w));
|
||||
|
@ -255,8 +255,7 @@ void okean240_state::okean240a_io(address_map &map)
|
||||
map(0x60, 0x63).rw("pit", FUNC(pit8253_device::read), FUNC(pit8253_device::write));
|
||||
map(0x80, 0x81).rw("pic", FUNC(pic8259_device::read), FUNC(pic8259_device::write));
|
||||
map(0x80, 0x80).r(FUNC(okean240_state::okean240a_kbd_status_r));
|
||||
map(0xa0, 0xa0).rw("uart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0xa1, 0xa1).rw("uart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0xa0, 0xa1).rw("uart", FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
map(0xc0, 0xc3).rw("ppic", FUNC(i8255_device::read), FUNC(i8255_device::write));
|
||||
map(0xe0, 0xe3).rw("ppie", FUNC(i8255_device::read), FUNC(i8255_device::write));
|
||||
// AM_RANGE(0x00, 0x1f)=ppa00.data
|
||||
@ -279,8 +278,7 @@ void okean240_state::okean240t_io(address_map &map)
|
||||
map(0x60, 0x63).rw("pit", FUNC(pit8253_device::read), FUNC(pit8253_device::write));
|
||||
map(0x80, 0x81).rw("pic", FUNC(pic8259_device::read), FUNC(pic8259_device::write));
|
||||
map(0x80, 0x80).r(FUNC(okean240_state::okean240_kbd_status_r));
|
||||
map(0xa0, 0xa0).rw("uart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0xa1, 0xa1).rw("uart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0xa0, 0xa1).rw("uart", FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
map(0xc0, 0xc3).rw("ppic", FUNC(i8255_device::read), FUNC(i8255_device::write));
|
||||
map(0xe0, 0xe3).rw("ppie", FUNC(i8255_device::read), FUNC(i8255_device::write));
|
||||
}
|
||||
|
@ -454,8 +454,7 @@ void pc_state::epc_io(address_map &map)
|
||||
{
|
||||
map.unmap_value_high();
|
||||
map(0x0000, 0x00ff).m("mb", FUNC(ibm5160_mb_device::map));
|
||||
map(0x0070, 0x0070).rw("i8251", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x0071, 0x0071).rw("i8251", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x0070, 0x0071).rw("i8251", FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
}
|
||||
|
||||
INPUT_CHANGED_MEMBER(pc_state::pc_turbo_callback)
|
||||
|
@ -347,8 +347,7 @@ void pc100_state::pc100_io(address_map &map)
|
||||
map(0x20, 0x23).r(FUNC(pc100_state::pc100_key_r)).umask16(0x00ff); //i/o, keyboard, mouse
|
||||
map(0x22, 0x22).w(FUNC(pc100_state::pc100_output_w)); //i/o, keyboard, mouse
|
||||
map(0x24, 0x24).w(FUNC(pc100_state::pc100_tc_w)); //i/o, keyboard, mouse
|
||||
map(0x28, 0x28).rw("uart8251", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x2a, 0x2a).rw("uart8251", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x28, 0x2b).rw("uart8251", FUNC(i8251_device::read), FUNC(i8251_device::write)).umask16(0x00ff);
|
||||
map(0x30, 0x30).rw(FUNC(pc100_state::pc100_shift_r), FUNC(pc100_state::pc100_shift_w)); // crtc shift
|
||||
map(0x38, 0x38).w(FUNC(pc100_state::pc100_crtc_addr_w)); //crtc address reg
|
||||
map(0x3a, 0x3a).w(FUNC(pc100_state::pc100_crtc_data_w)); //crtc data reg
|
||||
|
@ -240,8 +240,7 @@ void pc6001_state::pc6001_io(address_map &map)
|
||||
{
|
||||
map.unmap_value_high();
|
||||
map.global_mask(0xff);
|
||||
map(0x80, 0x80).rw("uart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x81, 0x81).rw("uart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x80, 0x81).rw("uart", FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
map(0x90, 0x93).mirror(0x0c).rw(FUNC(pc6001_state::nec_ppi8255_r), FUNC(pc6001_state::nec_ppi8255_w));
|
||||
map(0xa0, 0xa0).mirror(0x0c).w("ay8910", FUNC(ay8910_device::address_w));
|
||||
map(0xa1, 0xa1).mirror(0x0c).w("ay8910", FUNC(ay8910_device::data_w));
|
||||
@ -696,8 +695,7 @@ void pc6001mk2_state::pc6001mk2_io(address_map &map)
|
||||
{
|
||||
map.unmap_value_high();
|
||||
map.global_mask(0xff);
|
||||
map(0x80, 0x80).rw("uart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x81, 0x81).rw("uart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x80, 0x81).rw("uart", FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
|
||||
map(0x90, 0x93).mirror(0x0c).rw(FUNC(pc6001mk2_state::nec_ppi8255_r), FUNC(pc6001mk2_state::necmk2_ppi8255_w));
|
||||
|
||||
@ -933,8 +931,7 @@ void pc6001sr_state::pc6001sr_io(address_map &map)
|
||||
// 0x40-0x43 palette indexes
|
||||
map(0x60, 0x67).rw(FUNC(pc6001sr_state::sr_bank_rn_r), FUNC(pc6001sr_state::sr_bank_rn_w));
|
||||
map(0x68, 0x6f).rw(FUNC(pc6001sr_state::sr_bank_wn_r), FUNC(pc6001sr_state::sr_bank_wn_w));
|
||||
map(0x80, 0x80).rw("uart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x81, 0x81).rw("uart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x80, 0x81).rw("uart", FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
|
||||
map(0x90, 0x93).mirror(0x0c).rw(FUNC(pc6001sr_state::nec_ppi8255_r), FUNC(pc6001sr_state::necsr_ppi8255_w));
|
||||
|
||||
|
@ -188,8 +188,7 @@ void pc8001_state::pc8001_io(address_map &map)
|
||||
map(0x08, 0x08).portr("Y8");
|
||||
map(0x09, 0x09).portr("Y9");
|
||||
map(0x10, 0x10).mirror(0x0f).w(FUNC(pc8001_state::port10_w));
|
||||
map(0x20, 0x20).mirror(0x0e).rw(I8251_TAG, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x21, 0x21).mirror(0x0e).rw(I8251_TAG, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x20, 0x21).mirror(0x0e).rw(I8251_TAG, FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
map(0x30, 0x30).mirror(0x0f).w(FUNC(pc8001_state::port30_w));
|
||||
map(0x40, 0x40).mirror(0x0f).rw(FUNC(pc8001_state::port40_r), FUNC(pc8001_state::port40_w));
|
||||
map(0x50, 0x51).rw(m_crtc, FUNC(upd3301_device::read), FUNC(upd3301_device::write));
|
||||
|
@ -361,8 +361,7 @@ void pc8401a_state::pc8500_io(address_map &map)
|
||||
map(0x08, 0x08).portr("Y.8");
|
||||
map(0x09, 0x09).portr("Y.9");
|
||||
map(0x10, 0x10).w(FUNC(pc8401a_state::rtc_cmd_w));
|
||||
map(0x20, 0x20).rw(I8251_TAG, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x21, 0x21).rw(I8251_TAG, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x20, 0x21).rw(I8251_TAG, FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
map(0x30, 0x30).rw(FUNC(pc8401a_state::mmr_r), FUNC(pc8401a_state::mmr_w));
|
||||
// AM_RANGE(0x31, 0x31)
|
||||
map(0x40, 0x40).rw(FUNC(pc8401a_state::rtc_r), FUNC(pc8401a_state::rtc_ctrl_w));
|
||||
|
@ -1553,8 +1553,7 @@ void pc8801_state::pc8801_io(address_map &map)
|
||||
map(0x0f, 0x0f).portr("KEY15");
|
||||
map(0x00, 0x02).w(FUNC(pc8801_state::pc8801_pcg8100_w));
|
||||
map(0x10, 0x10).w(FUNC(pc8801_state::pc8801_rtc_w));
|
||||
map(0x20, 0x20).mirror(0x0e).rw(I8251_TAG, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w)); /* RS-232C and CMT */
|
||||
map(0x21, 0x21).mirror(0x0e).rw(I8251_TAG, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x20, 0x21).mirror(0x0e).rw(I8251_TAG, FUNC(i8251_device::read), FUNC(i8251_device::write)); /* RS-232C and CMT */
|
||||
map(0x30, 0x30).portr("DSW1").w(FUNC(pc8801_state::pc8801_txt_cmt_ctrl_w));
|
||||
map(0x31, 0x31).portr("DSW2").w(FUNC(pc8801_state::pc8801_gfx_ctrl_w));
|
||||
map(0x32, 0x32).rw(FUNC(pc8801_state::pc8801_misc_ctrl_r), FUNC(pc8801_state::pc8801_misc_ctrl_w));
|
||||
|
@ -675,8 +675,7 @@ void pc9801_state::pc9801_common_io(address_map &map)
|
||||
map(0x0090, 0x0090).r(m_fdc_2hd, FUNC(upd765a_device::msr_r));
|
||||
map(0x0092, 0x0092).rw(m_fdc_2hd, FUNC(upd765a_device::fifo_r), FUNC(upd765a_device::fifo_w));
|
||||
map(0x0094, 0x0094).rw(FUNC(pc9801_state::fdc_2hd_ctrl_r), FUNC(pc9801_state::fdc_2hd_ctrl_w));
|
||||
map(0x0091, 0x0091).rw(m_sio, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x0093, 0x0093).rw(m_sio, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x0090, 0x0093).rw(m_sio, FUNC(i8251_device::read), FUNC(i8251_device::write)).umask16(0xff00);
|
||||
map(0x7fd8, 0x7fdf).rw("ppi8255_mouse", FUNC(i8255_device::read), FUNC(i8255_device::write)).umask16(0xff00);
|
||||
}
|
||||
|
||||
|
@ -212,10 +212,8 @@ void peoplepc_state::peoplepc_io(address_map &map)
|
||||
map(0x0020, 0x0031).rw(m_dmac, FUNC(i8257_device::read), FUNC(i8257_device::write)).umask16(0x00ff);
|
||||
map(0x0040, 0x0047).rw("ppi8255", FUNC(i8255_device::read), FUNC(i8255_device::write)).umask16(0x00ff);
|
||||
map(0x0048, 0x004f).rw("pit8253", FUNC(pit8253_device::read), FUNC(pit8253_device::write)).umask16(0x00ff);
|
||||
map(0x0054, 0x0054).rw(m_8251key, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x0056, 0x0056).rw(m_8251key, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x005c, 0x005c).rw(m_8251ser, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x005e, 0x005e).rw(m_8251ser, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x0054, 0x0057).rw(m_8251key, FUNC(i8251_device::read), FUNC(i8251_device::write)).umask16(0x00ff);
|
||||
map(0x005c, 0x005f).rw(m_8251ser, FUNC(i8251_device::read), FUNC(i8251_device::write)).umask16(0x00ff);
|
||||
map(0x0064, 0x0067).m(m_fdc, FUNC(upd765a_device::map)).umask16(0x00ff);
|
||||
map(0x006c, 0x006c).w("h46505", FUNC(mc6845_device::address_w));
|
||||
map(0x006e, 0x006e).rw("h46505", FUNC(mc6845_device::register_r), FUNC(mc6845_device::register_w));
|
||||
|
@ -167,14 +167,12 @@ void pg685_state::pg675_mem(address_map &map)
|
||||
map(0xf9f03, 0xf9f03).rw("crtc", FUNC(mc6845_device::register_r), FUNC(mc6845_device::register_w));
|
||||
map(0xf9f04, 0xf9f04).rw(FUNC(pg685_state::f9f04_r), FUNC(pg685_state::f9f04_w));
|
||||
map(0xf9f06, 0xf9f07).rw("mainpic", FUNC(pic8259_device::read), FUNC(pic8259_device::write));
|
||||
map(0xf9f08, 0xf9f08).rw("mainuart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0xf9f09, 0xf9f09).rw("mainuart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0xf9f08, 0xf9f09).rw("mainuart", FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
map(0xf9f20, 0xf9f23).rw(m_fdc, FUNC(fd1797_device::read), FUNC(fd1797_device::write));
|
||||
map(0xf9f24, 0xf9f24).rw(FUNC(pg685_state::f9f24_r), FUNC(pg685_state::f9f24_w));
|
||||
map(0xf9f28, 0xf9f2b).rw("modppi1", FUNC(i8255_device::read), FUNC(i8255_device::write));
|
||||
map(0xf9f2c, 0xf9f2f).rw("modppi2", FUNC(i8255_device::read), FUNC(i8255_device::write));
|
||||
map(0xf9f30, 0xf9f30).rw("moduart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0xf9f31, 0xf9f31).rw("moduart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0xf9f30, 0xf9f31).rw("moduart", FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
map(0xf9f32, 0xf9f32).w(FUNC(pg685_state::f9f32_w));
|
||||
map(0xf9f33, 0xf9f33).r(FUNC(pg685_state::f9f33_r));
|
||||
map(0xf9f40, 0xf9f5f).rw("rtc", FUNC(mm58167_device::read), FUNC(mm58167_device::write));
|
||||
@ -205,14 +203,12 @@ void pg685_state::pg685oua12_mem(address_map &map)
|
||||
map(0xf9f00, 0xf9f01).rw("kbdc", FUNC(i8279_device::read), FUNC(i8279_device::write));
|
||||
map(0xf9f04, 0xf9f04).rw(FUNC(pg685_state::f9f04_r), FUNC(pg685_state::f9f04_w));
|
||||
map(0xf9f06, 0xf9f07).rw("mainpic", FUNC(pic8259_device::read), FUNC(pic8259_device::write));
|
||||
map(0xf9f08, 0xf9f08).rw("mainuart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0xf9f09, 0xf9f09).rw("mainuart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0xf9f08, 0xf9f09).rw("mainuart", FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
map(0xf9f20, 0xf9f23).rw(m_fdc, FUNC(fd1797_device::read), FUNC(fd1797_device::write));
|
||||
map(0xf9f24, 0xf9f24).rw(FUNC(pg685_state::f9f24_r), FUNC(pg685_state::f9f24_w));
|
||||
map(0xf9f28, 0xf9f2b).rw("modppi1", FUNC(i8255_device::read), FUNC(i8255_device::write));
|
||||
map(0xf9f2c, 0xf9f2f).rw("modppi2", FUNC(i8255_device::read), FUNC(i8255_device::write));
|
||||
map(0xf9f30, 0xf9f30).rw("moduart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0xf9f31, 0xf9f31).rw("moduart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0xf9f30, 0xf9f31).rw("moduart", FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
map(0xf9f32, 0xf9f32).w(FUNC(pg685_state::f9f32_w));
|
||||
map(0xf9f33, 0xf9f33).r(FUNC(pg685_state::f9f33_r));
|
||||
map(0xf9f34, 0xf9f37).rw("bppit", FUNC(pit8253_device::read), FUNC(pit8253_device::write));
|
||||
|
@ -103,10 +103,8 @@ void pimps_state::mem_map(address_map &map)
|
||||
void pimps_state::io_map(address_map &map)
|
||||
{
|
||||
map.unmap_value_high();
|
||||
map(0xf0, 0xf0).rw("uart1", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0xf1, 0xf1).rw("uart1", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0xf2, 0xf2).rw("uart2", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0xf3, 0xf3).rw("uart2", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0xf0, 0xf1).rw("uart1", FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
map(0xf2, 0xf3).rw("uart2", FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
}
|
||||
|
||||
/* Input ports */
|
||||
|
@ -65,8 +65,7 @@ void poly88_state::poly88_io(address_map &map)
|
||||
{
|
||||
map.unmap_value_high();
|
||||
map.global_mask(0xff);
|
||||
map(0x00, 0x00).rw(m_uart, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x01, 0x01).rw(m_uart, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x00, 0x01).rw(m_uart, FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
map(0x04, 0x04).w(FUNC(poly88_state::poly88_baud_rate_w));
|
||||
map(0x08, 0x08).w(FUNC(poly88_state::poly88_intr_w));
|
||||
map(0xf8, 0xf8).r(FUNC(poly88_state::poly88_keyboard_r));
|
||||
|
@ -40,8 +40,7 @@ void pp01_state::pp01_io(address_map &map)
|
||||
{
|
||||
map(0xc0, 0xc3).rw("ppi8255", FUNC(i8255_device::read), FUNC(i8255_device::write)); // system
|
||||
//AM_RANGE(0xc4, 0xc7) AM_DEVREADWRITE("ppi8255", i8255_device, read, write) // user
|
||||
map(0xc8, 0xc8).mirror(2).rw("uart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0xc9, 0xc9).mirror(2).rw("uart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0xc8, 0xc9).mirror(2).rw("uart", FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
map(0xcc, 0xcf).w(FUNC(pp01_state::pp01_video_write_mode_w));
|
||||
map(0xd0, 0xd3).rw(m_pit, FUNC(pit8253_device::read), FUNC(pit8253_device::write));
|
||||
map(0xe0, 0xef).mirror(0x10).rw(FUNC(pp01_state::pp01_mem_block_r), FUNC(pp01_state::pp01_mem_block_w));
|
||||
|
@ -392,8 +392,7 @@ void pwrview_state::pwrview_io(address_map &map)
|
||||
map(0xc280, 0xc287).rw(FUNC(pwrview_state::unk3_r), FUNC(pwrview_state::unk3_w)).umask16(0x00ff);
|
||||
map(0xc288, 0xc28f).rw(m_pit, FUNC(pit8253_device::read), FUNC(pit8253_device::write)).umask16(0x00ff);
|
||||
map(0xc2a0, 0xc2a7).rw("sio", FUNC(z80sio2_device::cd_ba_r), FUNC(z80sio2_device::cd_ba_w)).umask16(0x00ff);
|
||||
map(0xc2c0, 0xc2c0).rw("uart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0xc2c2, 0xc2c2).rw("uart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0xc2c0, 0xc2c3).rw("uart", FUNC(i8251_device::read), FUNC(i8251_device::write)).umask16(0x00ff);
|
||||
map(0xc2e0, 0xc2e3).m("fdc", FUNC(upd765a_device::map)).umask16(0x00ff);
|
||||
map(0xc2e4, 0xc2e5).ram();
|
||||
map(0xc2e6, 0xc2e6).r(FUNC(pwrview_state::pitclock_r));
|
||||
|
@ -527,8 +527,7 @@ void px8_state::px8_io(address_map &map)
|
||||
map.unmap_value_high();
|
||||
map.global_mask(0x0f);
|
||||
map(0x00, 0x07).rw(FUNC(px8_state::gah40m_r), FUNC(px8_state::gah40m_w));
|
||||
map(0x0c, 0x0c).rw(I8251_TAG, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x0d, 0x0d).rw(I8251_TAG, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x0c, 0x0d).rw(I8251_TAG, FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
// AM_RANGE(0x0e, 0x0e) AM_DEVREADWRITE(SED1320_TAG, sed1330_device, status_r, data_w)
|
||||
// AM_RANGE(0x0f, 0x0f) AM_DEVREADWRITE(SED1320_TAG, sed1330_device, data_r, command_w)
|
||||
}
|
||||
|
@ -150,10 +150,8 @@ READ8_MEMBER(qtsbc_state::io_r)
|
||||
return 0xff;
|
||||
|
||||
case 6:
|
||||
return m_usart->data_r(space, 0);
|
||||
|
||||
case 7:
|
||||
return m_usart->status_r(space, 0);
|
||||
return m_usart->read(offset & 1);
|
||||
}
|
||||
}
|
||||
else
|
||||
@ -192,11 +190,8 @@ WRITE8_MEMBER(qtsbc_state::io_w)
|
||||
break;
|
||||
|
||||
case 6:
|
||||
m_usart->data_w(space, 0, data);
|
||||
break;
|
||||
|
||||
case 7:
|
||||
m_usart->control_w(space, 0, data);
|
||||
m_usart->write(offset & 1, data);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -957,8 +957,7 @@ void rainbow_state::rainbow8088_io(address_map &map)
|
||||
|
||||
map(0x0e, 0x0e).w(FUNC(rainbow_state::printer_bitrate_w));
|
||||
|
||||
map(0x10, 0x10).rw(m_kbd8251, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x11, 0x11).rw(m_kbd8251, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x10, 0x11).rw(m_kbd8251, FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
|
||||
// ===========================================================
|
||||
// There are 4 select lines for Option Select 1 to 4
|
||||
|
@ -42,13 +42,11 @@ void sage2_state::sage2_mem(address_map &map)
|
||||
map(0xffc000, 0xffc007).rw(I8253_1_TAG, FUNC(pit8253_device::read), FUNC(pit8253_device::write)).umask16(0x00ff);
|
||||
map(0xffc010, 0xffc01f).noprw(); //AM_DEVREADWRITE8(TMS9914_TAG, tms9914_device, read, write, 0x00ff)
|
||||
map(0xffc020, 0xffc027).rw(I8255A_0_TAG, FUNC(i8255_device::read), FUNC(i8255_device::write)).umask16(0x00ff); // i8255, DIPs + Floppy ctrl port
|
||||
map(0xffc031, 0xffc031).rw(m_usart1, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0xffc033, 0xffc033).rw(m_usart1, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0xffc030, 0xffc033).rw(m_usart1, FUNC(i8251_device::read), FUNC(i8251_device::write)).umask16(0x00ff);
|
||||
map(0xffc040, 0xffc043).rw(m_pic, FUNC(pic8259_device::read), FUNC(pic8259_device::write)).umask16(0x00ff);
|
||||
map(0xffc050, 0xffc053).m(m_fdc, FUNC(upd765a_device::map)).umask16(0x00ff);
|
||||
map(0xffc060, 0xffc067).rw(I8255A_1_TAG, FUNC(i8255_device::read), FUNC(i8255_device::write)).umask16(0x00ff); // i8255, Printer
|
||||
map(0xffc071, 0xffc071).rw(m_usart0, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0xffc073, 0xffc073).rw(m_usart0, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0xffc070, 0xffc073).rw(m_usart0, FUNC(i8251_device::read), FUNC(i8251_device::write)).umask16(0x00ff);
|
||||
map(0xffc080, 0xffc087).mirror(0x78).rw(I8253_0_TAG, FUNC(pit8253_device::read), FUNC(pit8253_device::write)).umask16(0x00ff);
|
||||
// AM_RANGE(0xffc400, 0xffc407) AM_DEVREADWRITE8(S2651_0_TAG, s2651_device, read, write, 0x00ff)
|
||||
// AM_RANGE(0xffc440, 0xffc447) AM_DEVREADWRITE8(S2651_1_TAG, s2651_device, read, write, 0x00ff)
|
||||
|
@ -138,12 +138,10 @@ void sbrain_state::sbrain_mem(address_map &map)
|
||||
void sbrain_state::sbrain_io(address_map &map)
|
||||
{
|
||||
map.global_mask(0xff);
|
||||
map(0x40, 0x40).mirror(6).rw(m_u0, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x41, 0x41).mirror(6).rw(m_u0, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x40, 0x41).mirror(6).rw(m_u0, FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
map(0x48, 0x4f).r(FUNC(sbrain_state::port48_r)); //chr_int_latch
|
||||
map(0x50, 0x57).r(FUNC(sbrain_state::port50_r));
|
||||
map(0x58, 0x58).mirror(6).rw(m_u1, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x59, 0x59).mirror(6).rw(m_u1, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x58, 0x59).mirror(6).rw(m_u1, FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
map(0x60, 0x60).mirror(7).w("brg", FUNC(com8116_device::stt_str_w));
|
||||
map(0x68, 0x6b).mirror(4).rw(m_ppi, FUNC(i8255_device::read), FUNC(i8255_device::write));
|
||||
}
|
||||
|
@ -133,8 +133,7 @@ void sagitta180_state::maincpu_map(address_map &map)
|
||||
void sagitta180_state::maincpu_io_map(address_map &map)
|
||||
{
|
||||
map(0x00, 0x00).portr("DSW");
|
||||
map(0x20, 0x20).rw("uart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x21, 0x21).rw("uart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x20, 0x21).rw("uart", FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
map(0x30, 0x31).rw(m_crtc, FUNC(i8275_device::read), FUNC(i8275_device::write));
|
||||
map(0x40, 0x48).rw(m_dma8257, FUNC(i8257_device::read), FUNC(i8257_device::write));
|
||||
}
|
||||
|
@ -83,8 +83,7 @@ void sdk80_state::sdk80_io(address_map &map)
|
||||
map.global_mask(0xff);
|
||||
map(0xec, 0xef).rw(m_ppi_1, FUNC(i8255_device::read), FUNC(i8255_device::write));
|
||||
map(0xf4, 0xf7).rw(m_ppi_0, FUNC(i8255_device::read), FUNC(i8255_device::write));
|
||||
map(0xfa, 0xfa).rw(m_usart, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0xfb, 0xfb).rw(m_usart, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0xfa, 0xfb).rw(m_usart, FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
}
|
||||
|
||||
static INPUT_PORTS_START( sdk80 )
|
||||
|
@ -73,8 +73,7 @@ void sdk86_state::sdk86_mem(address_map &map)
|
||||
void sdk86_state::sdk86_io(address_map &map)
|
||||
{
|
||||
map.unmap_value_high();
|
||||
map(0xfff0, 0xfff0).mirror(4).rw(I8251_TAG, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0xfff2, 0xfff2).mirror(4).rw(I8251_TAG, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0xfff0, 0xfff3).mirror(4).rw(I8251_TAG, FUNC(i8251_device::read), FUNC(i8251_device::write)).umask16(0x00ff);
|
||||
map(0xffe8, 0xffeb).mirror(4).rw("i8279", FUNC(i8279_device::read), FUNC(i8279_device::write)).umask16(0x00ff);
|
||||
map(0xfff8, 0xffff).rw("port1", FUNC(i8255_device::read), FUNC(i8255_device::write)).umask16(0xff00);
|
||||
map(0xfff8, 0xffff).rw("port2", FUNC(i8255_device::read), FUNC(i8255_device::write)).umask16(0x00ff);
|
||||
|
@ -83,8 +83,7 @@ void seattle_comp_state::io_map(address_map &map)
|
||||
map(0xf0, 0xf1).rw("pic1", FUNC(pic8259_device::read), FUNC(pic8259_device::write));
|
||||
map(0xf2, 0xf3).rw("pic2", FUNC(pic8259_device::read), FUNC(pic8259_device::write));
|
||||
map(0xf4, 0xf5).rw("stc", FUNC(am9513_device::read8), FUNC(am9513_device::write8));
|
||||
map(0xf6, 0xf6).rw("uart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0xf7, 0xf7).rw("uart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0xf6, 0xf7).rw("uart", FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
//AM_RANGE(0xfc, 0xfd) Parallel data, status, serial DCD
|
||||
//AM_RANGE(0xfe, 0xff) Eprom disable bit, read sense switches (bank of 8 dipswitches)
|
||||
}
|
||||
|
@ -235,8 +235,7 @@ void segam1_state::segam1_comms_map(address_map &map)
|
||||
map(0x0000, 0x7fff).rom();
|
||||
map(0x8000, 0x9fff).ram();
|
||||
map(0xa000, 0xa7ff).rw("dpram", FUNC(mb8421_device::left_r), FUNC(mb8421_device::left_w));
|
||||
map(0xc000, 0xc000).rw("uart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0xc001, 0xc001).rw("uart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0xc000, 0xc001).rw("uart", FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
map(0xe003, 0xe003).nopw(); // ???
|
||||
}
|
||||
|
||||
|
@ -184,10 +184,8 @@ void seibucats_state::seibucats_map(address_map &map)
|
||||
map(0x01200000, 0x01200007).rw("ymz", FUNC(ymz280b_device::read), FUNC(ymz280b_device::write)).umask32(0x000000ff);
|
||||
map(0x01200100, 0x01200107).nopw(); // YMF721-S MIDI data
|
||||
map(0x01200104, 0x01200107).nopr(); // YMF721-S MIDI status
|
||||
map(0x01200200, 0x01200200).rw("usart1", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x01200204, 0x01200204).rw("usart1", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x01200300, 0x01200300).rw("usart2", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x01200304, 0x01200304).rw("usart2", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x01200200, 0x01200207).rw("usart1", FUNC(i8251_device::read), FUNC(i8251_device::write)).umask32(0x000000ff);
|
||||
map(0x01200300, 0x01200307).rw("usart2", FUNC(i8251_device::read), FUNC(i8251_device::write)).umask32(0x000000ff);
|
||||
map(0xa0000000, 0xa1ffffff).noprw(); // NVRAM on ROM board
|
||||
map(0xa2000000, 0xa2000001).w(FUNC(seibucats_state::aux_rtc_w));
|
||||
map(0xffe00000, 0xffffffff).rom().region("ipl", 0);
|
||||
|
@ -95,8 +95,7 @@ void selz80_state::selz80_io(address_map &map)
|
||||
map.unmap_value_high();
|
||||
map.global_mask(0xff);
|
||||
map(0x00, 0x01).rw("i8279", FUNC(i8279_device::read), FUNC(i8279_device::write));
|
||||
map(0x18, 0x18).rw("uart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x19, 0x19).rw("uart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x18, 0x19).rw("uart", FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
}
|
||||
|
||||
/* Input ports */
|
||||
|
@ -228,8 +228,7 @@ void sf7000_state::sf7000_io_map(address_map &map)
|
||||
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));
|
||||
map(0xe8, 0xe8).rw(UPD8251_TAG, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0xe9, 0xe9).rw(UPD8251_TAG, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0xe8, 0xe9).rw(UPD8251_TAG, FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
}
|
||||
|
||||
/***************************************************************************
|
||||
|
@ -71,8 +71,7 @@ void sm1800_state::sm1800_io(address_map &map)
|
||||
map.global_mask(0xff);
|
||||
map.unmap_value_high();
|
||||
map(0x3c, 0x3d).rw(m_crtc, FUNC(i8275_device::read), FUNC(i8275_device::write));
|
||||
map(0x5c, 0x5c).rw(m_uart, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x5d, 0x5d).rw(m_uart, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x5c, 0x5d).rw(m_uart, FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
map(0x6c, 0x6f).rw(m_ppi, FUNC(i8255_device::read), FUNC(i8255_device::write));
|
||||
//AM_RANGE( 0x74, 0x74 ) AM_DEVREADWRITE("i8279", i8279_device, status_r, cmd_w)
|
||||
//AM_RANGE( 0x75, 0x75 ) AM_DEVREADWRITE("i8279", i8279_device, data_r, data_w)
|
||||
|
@ -150,16 +150,13 @@ void sm7238_state::sm7238_io(address_map &map)
|
||||
{
|
||||
map.unmap_value_high();
|
||||
// AM_RANGE (0x40, 0x4f) AM_RAM // LUT
|
||||
map(0xa0, 0xa0).rw(m_i8251line, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0xa1, 0xa1).rw(m_i8251line, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0xa4, 0xa4).rw(m_i8251kbd, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0xa5, 0xa5).rw(m_i8251kbd, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0xa0, 0xa1).rw(m_i8251line, FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
map(0xa4, 0xa5).rw(m_i8251kbd, FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
map(0xa8, 0xab).rw(m_t_color, FUNC(pit8253_device::read), FUNC(pit8253_device::write));
|
||||
map(0xac, 0xad).rw(m_pic8259, FUNC(pic8259_device::read), FUNC(pic8259_device::write));
|
||||
map(0xb0, 0xb3).rw(m_t_hblank, FUNC(pit8253_device::read), FUNC(pit8253_device::write));
|
||||
map(0xb4, 0xb7).rw(m_t_vblank, FUNC(pit8253_device::read), FUNC(pit8253_device::write));
|
||||
map(0xb8, 0xb8).rw(m_i8251prn, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0xb9, 0xb9).rw(m_i8251prn, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0xb8, 0xb9).rw(m_i8251prn, FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
map(0xbc, 0xbf).rw(m_t_iface, FUNC(pit8253_device::read), FUNC(pit8253_device::write));
|
||||
}
|
||||
|
||||
|
@ -126,8 +126,7 @@ void softbox_state::softbox_mem(address_map &map)
|
||||
void softbox_state::softbox_io(address_map &map)
|
||||
{
|
||||
map.global_mask(0xff);
|
||||
map(0x08, 0x08).rw(I8251_TAG, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x09, 0x09).rw(I8251_TAG, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x08, 0x09).rw(I8251_TAG, FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
map(0x0c, 0x0c).w(COM8116_TAG, FUNC(com8116_device::stt_str_w));
|
||||
map(0x10, 0x13).rw(I8255_0_TAG, FUNC(i8255_device::read), FUNC(i8255_device::write));
|
||||
map(0x14, 0x17).rw(I8255_1_TAG, FUNC(i8255_device::read), FUNC(i8255_device::write));
|
||||
|
@ -66,11 +66,9 @@ void sys9002_state::sys9002_io(address_map &map)
|
||||
map.global_mask(0xff);
|
||||
//AM_RANGE(0x04, 0x04) AM_DEVREADWRITE("crtc", mc6845_device, status_r, address_w) // left commented out as mame freezes after about 2 seconds
|
||||
//AM_RANGE(0x05, 0x05) AM_DEVREADWRITE("crtc", mc6845_device, register_r, register_w)
|
||||
map(0x08, 0x08).rw("uart1", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x09, 0x09).rw("uart1", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w)); // 7 bits even parity, x64
|
||||
map(0x08, 0x09).rw("uart1", FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
map(0x11, 0x11).nopr(); // continuous read
|
||||
map(0x1c, 0x1c).rw("uart2", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x1d, 0x1d).rw("uart2", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w)); // enabled for transmit only, 8 bits odd parity, x64
|
||||
map(0x1c, 0x1d).rw("uart2", FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
}
|
||||
|
||||
/* Input ports */
|
||||
@ -151,7 +149,7 @@ MACHINE_CONFIG_START(sys9002_state::sys9002)
|
||||
uart_clock.signal_handler().append("uart2", FUNC(i8251_device::write_txc));
|
||||
uart_clock.signal_handler().append("uart2", FUNC(i8251_device::write_rxc));
|
||||
|
||||
i8251_device &uart1(I8251(config, "uart1", 0));
|
||||
i8251_device &uart1(I8251(config, "uart1", 0)); // 7 bits even parity, x64
|
||||
uart1.txd_handler().set("rs232a", FUNC(rs232_port_device::write_txd));
|
||||
uart1.dtr_handler().set("rs232a", FUNC(rs232_port_device::write_dtr));
|
||||
uart1.rts_handler().set("rs232a", FUNC(rs232_port_device::write_rts));
|
||||
@ -162,7 +160,7 @@ MACHINE_CONFIG_START(sys9002_state::sys9002)
|
||||
MCFG_RS232_CTS_HANDLER(WRITELINE("uart1", i8251_device, write_cts))
|
||||
MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", uart1)
|
||||
|
||||
i8251_device &uart2(I8251(config, "uart2", 0));
|
||||
i8251_device &uart2(I8251(config, "uart2", 0)); // enabled for transmit only, 8 bits odd parity, x64
|
||||
uart2.txd_handler().set("rs232b", FUNC(rs232_port_device::write_txd));
|
||||
uart2.dtr_handler().set("rs232b", FUNC(rs232_port_device::write_dtr));
|
||||
uart2.rts_handler().set("rs232b", FUNC(rs232_port_device::write_rts));
|
||||
|
@ -321,7 +321,7 @@ void tandy2k_state::tandy2k_io(address_map &map)
|
||||
map(0x00000, 0x00000).mirror(0x8).rw(FUNC(tandy2k_state::enable_r), FUNC(tandy2k_state::enable_w));
|
||||
map(0x00002, 0x00002).mirror(0x8).w(FUNC(tandy2k_state::dma_mux_w));
|
||||
map(0x00004, 0x00004).mirror(0x8).rw(FUNC(tandy2k_state::fldtc_r), FUNC(tandy2k_state::fldtc_w));
|
||||
map(0x00010, 0x00013).mirror(0xc).rw(m_uart, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w)).umask16(0x00ff);
|
||||
map(0x00010, 0x00013).mirror(0xc).rw(m_uart, FUNC(i8251_device::read), FUNC(i8251_device::write)).umask16(0x00ff);
|
||||
map(0x00030, 0x00033).mirror(0xc).m(m_fdc, FUNC(i8272a_device::map)).umask16(0x00ff);
|
||||
map(0x00040, 0x00047).mirror(0x8).rw(m_pit, FUNC(pit8253_device::read), FUNC(pit8253_device::write)).umask16(0x00ff);
|
||||
map(0x00050, 0x00057).mirror(0x8).rw(m_i8255a, FUNC(i8255_device::read), FUNC(i8255_device::write)).umask16(0x00ff);
|
||||
|
@ -59,10 +59,8 @@ void tim100_state::tim100_mem(address_map &map)
|
||||
map.unmap_value_high();
|
||||
map(0x0000, 0x1fff).rom(); // 2764 at U16
|
||||
map(0x2000, 0x27ff).ram().share("videoram"); // 2KB static ram CDM6116A at U15
|
||||
map(0x6000, 0x6000).rw("uart_u17", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x6001, 0x6001).rw("uart_u17", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x8000, 0x8000).rw("uart_u18", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x8001, 0x8001).rw("uart_u18", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x6000, 0x6001).rw("uart_u17", FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
map(0x8000, 0x8001).rw("uart_u18", FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
map(0xa000, 0xa000).nopw(); // continuously writes 00 here
|
||||
map(0xc000, 0xc001).rw(m_crtc, FUNC(i8276_device::read), FUNC(i8276_device::write)); // i8276
|
||||
}
|
||||
|
@ -264,8 +264,7 @@ void trs80_state::radionic_mem(address_map &map)
|
||||
{
|
||||
m1_mem(map);
|
||||
// Optional external RS232 module with 8251
|
||||
//map(0x3400, 0x3400).mirror(0xfe).rw("uart2", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
//map(0x3401, 0x3401).mirror(0xfe).rw("uart2", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
//map(0x3400, 0x3401).mirror(0xfe).rw("uart2", FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
// Internal colour controls (need details)
|
||||
//map(0x3500, 0x35ff).w(FUNC(trs80_state::colour_w));
|
||||
// Internal interface to external slots
|
||||
|
@ -309,8 +309,7 @@ void tsispch_state::i8086_mem(address_map &map)
|
||||
{
|
||||
map.unmap_value_high();
|
||||
map(0x00000, 0x02FFF).mirror(0x34000).ram(); // verified; 6264*2 sram, only first 3/4 used
|
||||
map(0x03000, 0x03000).mirror(0x341FC).rw("i8251a_u15", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x03002, 0x03002).mirror(0x341FC).rw("i8251a_u15", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x03000, 0x03003).mirror(0x341FC).rw("i8251a_u15", FUNC(i8251_device::read), FUNC(i8251_device::write)).umask16(0x00ff);
|
||||
map(0x03200, 0x03203).mirror(0x341FC).rw(m_pic, FUNC(pic8259_device::read), FUNC(pic8259_device::write)).umask16(0x00ff); // AMD P8259 PIC @ U5 (reads as 04 and 7c, upper byte is open bus)
|
||||
map(0x03400, 0x03400).mirror(0x341FE).r(FUNC(tsispch_state::dsw_r)); // verified, read from dipswitch s4
|
||||
map(0x03401, 0x03401).mirror(0x341FE).w(FUNC(tsispch_state::peripheral_w)); // verified, write to the 4 leds, plus 4 control bits
|
||||
|
@ -110,8 +110,7 @@ void unior_state::unior_io(address_map &map)
|
||||
map(0x50, 0x50).w(FUNC(unior_state::scroll_w));
|
||||
map(0x60, 0x61).rw("crtc", FUNC(i8275_device::read), FUNC(i8275_device::write));
|
||||
map(0xdc, 0xdf).rw(m_pit, FUNC(pit8253_device::read), FUNC(pit8253_device::write));
|
||||
map(0xec, 0xec).rw("uart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0xed, 0xed).rw("uart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0xec, 0xed).rw("uart", FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
}
|
||||
|
||||
/* Input ports */
|
||||
|
@ -218,10 +218,8 @@ void v100_state::io_map(address_map &map)
|
||||
map.global_mask(0xff);
|
||||
map(0x00, 0x0f).w(m_vtac, FUNC(crt5037_device::write));
|
||||
map(0x10, 0x10).w("brg1", FUNC(com8116_device::stt_str_w));
|
||||
map(0x12, 0x12).rw("usart1", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x13, 0x13).rw("usart1", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x14, 0x14).rw("usart2", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x15, 0x15).rw("usart2", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x12, 0x13).rw("usart1", FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
map(0x14, 0x15).rw("usart2", FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
map(0x16, 0x16).w("brg2", FUNC(com8116_device::stt_str_w));
|
||||
map(0x20, 0x20).r(FUNC(v100_state::earom_r));
|
||||
map(0x30, 0x30).w(FUNC(v100_state::port30_w));
|
||||
|
@ -63,8 +63,7 @@ void v102_state::io_map(address_map &map)
|
||||
//AM_RANGE(0x00, 0x3f) AM_DEVREADWRITE("vpac", crt9007_device, read, write)
|
||||
map(0x18, 0x19).nopw();
|
||||
map(0x40, 0x43).rw("mpsc", FUNC(upd7201_new_device::ba_cd_r), FUNC(upd7201_new_device::ba_cd_w));
|
||||
map(0x60, 0x60).rw("usart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x61, 0x61).rw("usart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x60, 0x61).rw("usart", FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
map(0x80, 0x83).w("pit", FUNC(pit8253_device::write));
|
||||
map(0xa0, 0xa3).rw("ppi", FUNC(i8255_device::read), FUNC(i8255_device::write));
|
||||
//AM_RANGE(0xbf, 0xbf) ???
|
||||
|
@ -336,7 +336,7 @@ READ8_MEMBER( v1050_state::kb_data_r )
|
||||
|
||||
READ8_MEMBER( v1050_state::kb_status_r )
|
||||
{
|
||||
uint8_t val = m_uart_kb->status_r(space, 0);
|
||||
uint8_t val = m_uart_kb->status_r();
|
||||
|
||||
return val | (m_keyavail ? 0x02 : 0x00);
|
||||
}
|
||||
@ -481,12 +481,10 @@ void v1050_state::v1050_io(address_map &map)
|
||||
map.unmap_value_high();
|
||||
map.global_mask(0xff);
|
||||
map(0x84, 0x87).rw(m_ppi_disp, FUNC(i8255_device::read), FUNC(i8255_device::write));
|
||||
// AM_RANGE(0x88, 0x88) AM_DEVREADWRITE(I8251A_KB_TAG, i8251_device, data_r, data_w)
|
||||
// AM_RANGE(0x89, 0x89) AM_DEVREADWRITE(I8251A_KB_TAG, i8251_device, status_r, control_w)
|
||||
// map(0x88, 0x89).rw(m_uart_kb, FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
map(0x88, 0x88).r(FUNC(v1050_state::kb_data_r)).w(m_uart_kb, FUNC(i8251_device::data_w));
|
||||
map(0x89, 0x89).r(FUNC(v1050_state::kb_status_r)).w(m_uart_kb, FUNC(i8251_device::control_w));
|
||||
map(0x8c, 0x8c).rw(m_uart_sio, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x8d, 0x8d).rw(m_uart_sio, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x8c, 0x8d).rw(m_uart_sio, FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
map(0x90, 0x93).rw(I8255A_MISC_TAG, FUNC(i8255_device::read), FUNC(i8255_device::write));
|
||||
map(0x94, 0x97).rw(m_fdc, FUNC(mb8877_device::read), FUNC(mb8877_device::write));
|
||||
map(0x9c, 0x9f).rw(I8255A_RTC_TAG, FUNC(i8255_device::read), FUNC(i8255_device::write));
|
||||
|
@ -70,8 +70,7 @@ void v550_state::io_map(address_map &map)
|
||||
map(0x00, 0x01).rw("gdc", FUNC(upd7220_device::read), FUNC(upd7220_device::write));
|
||||
map(0x10, 0x10).w("brg1", FUNC(com8116_device::stt_str_w));
|
||||
map(0x20, 0x23).rw("ppi", FUNC(i8255_device::read), FUNC(i8255_device::write));
|
||||
map(0x30, 0x30).rw(m_usart, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x31, 0x31).rw(m_usart, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x30, 0x31).rw(m_usart, FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
map(0x40, 0x40).rw("mpsc", FUNC(upd7201_new_device::da_r), FUNC(upd7201_new_device::da_w));
|
||||
map(0x41, 0x41).rw("mpsc", FUNC(upd7201_new_device::ca_r), FUNC(upd7201_new_device::ca_w));
|
||||
map(0x48, 0x48).rw("mpsc", FUNC(upd7201_new_device::db_r), FUNC(upd7201_new_device::db_w));
|
||||
|
@ -48,12 +48,9 @@ void vector4_state::vector4_io(address_map &map)
|
||||
{
|
||||
map.unmap_value_high();
|
||||
map.global_mask(0xff);
|
||||
map(0x02, 0x02).rw("uart1", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x03, 0x03).rw("uart1", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x04, 0x04).rw("uart2", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x05, 0x05).rw("uart2", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x06, 0x06).rw("uart3", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x07, 0x07).rw("uart3", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x02, 0x03).rw("uart1", FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
map(0x04, 0x05).rw("uart2", FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
map(0x06, 0x07).rw("uart3", FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
}
|
||||
|
||||
/* Input ports */
|
||||
|
@ -44,8 +44,7 @@ void vectrix_state::mem_map(address_map &map)
|
||||
|
||||
void vectrix_state::io_map(address_map &map)
|
||||
{
|
||||
map(0x3000, 0x3000).rw("uart1", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
||||
map(0x3001, 0x3001).rw("uart1", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
||||
map(0x3000, 0x3001).rw("uart1", FUNC(i8251_device::read), FUNC(i8251_device::write));
|
||||
}
|
||||
|
||||
static INPUT_PORTS_START( vectrix )
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user