bus/isa: Simplify signatures of most handlers (nw)

sb16_lle: Add device map for host I/O (nw)
This commit is contained in:
AJR 2020-05-31 17:07:44 -04:00
parent e9392e8b50
commit f3c69775c9
79 changed files with 699 additions and 647 deletions

View File

@ -32,8 +32,8 @@ void el2_3c503_device::device_start() {
memset(m_rom, 0, 8*1024); // empty
m_dp8390->set_mac(mac);
set_isa_device();
m_isa->install_device(0x0300, 0x030f, read8_delegate(*this, FUNC(el2_3c503_device::el2_3c503_loport_r)), write8_delegate(*this, FUNC(el2_3c503_device::el2_3c503_loport_w)));
m_isa->install_device(0x0700, 0x070f, read8_delegate(*this, FUNC(el2_3c503_device::el2_3c503_hiport_r)), write8_delegate(*this, FUNC(el2_3c503_device::el2_3c503_hiport_w)));
m_isa->install_device(0x0300, 0x030f, read8sm_delegate(*this, FUNC(el2_3c503_device::el2_3c503_loport_r)), write8sm_delegate(*this, FUNC(el2_3c503_device::el2_3c503_loport_w)));
m_isa->install_device(0x0700, 0x070f, read8sm_delegate(*this, FUNC(el2_3c503_device::el2_3c503_hiport_r)), write8sm_delegate(*this, FUNC(el2_3c503_device::el2_3c503_hiport_w)));
// TODO: This is wrong, fix if anything actually uses it
// DMA can change in runtime
@ -107,7 +107,7 @@ void el2_3c503_device::dack_w(int line, uint8_t data) {
el2_3c503_mem_write(m_regs.da++, data);
}
READ8_MEMBER(el2_3c503_device::el2_3c503_loport_r) {
uint8_t el2_3c503_device::el2_3c503_loport_r(offs_t offset) {
switch((m_regs.ctrl >> 2) & 3) {
case 0:
m_dp8390->dp8390_cs(CLEAR_LINE);
@ -122,7 +122,7 @@ READ8_MEMBER(el2_3c503_device::el2_3c503_loport_r) {
return 0;
}
WRITE8_MEMBER(el2_3c503_device::el2_3c503_loport_w) {
void el2_3c503_device::el2_3c503_loport_w(offs_t offset, uint8_t data) {
switch((m_regs.ctrl >> 2) & 3) {
case 0:
m_dp8390->dp8390_cs(CLEAR_LINE);
@ -137,7 +137,7 @@ WRITE8_MEMBER(el2_3c503_device::el2_3c503_loport_w) {
}
}
READ8_MEMBER(el2_3c503_device::el2_3c503_hiport_r) {
uint8_t el2_3c503_device::el2_3c503_hiport_r(offs_t offset) {
switch(offset) {
case 0:
return m_regs.pstr;
@ -177,7 +177,7 @@ READ8_MEMBER(el2_3c503_device::el2_3c503_hiport_r) {
return 0;
}
WRITE8_MEMBER(el2_3c503_device::el2_3c503_hiport_w) {
void el2_3c503_device::el2_3c503_hiport_w(offs_t offset, uint8_t data) {
switch(offset) {
case 0:
m_regs.pstr = data; // pstr and pspr are supposed to be set same as 8390 pstart and pstop

View File

@ -15,10 +15,10 @@ class el2_3c503_device : public device_t, public device_isa8_card_interface
public:
el2_3c503_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
DECLARE_READ8_MEMBER(el2_3c503_loport_r);
DECLARE_WRITE8_MEMBER(el2_3c503_loport_w);
DECLARE_READ8_MEMBER(el2_3c503_hiport_r);
DECLARE_WRITE8_MEMBER(el2_3c503_hiport_w);
uint8_t el2_3c503_loport_r(offs_t offset);
void el2_3c503_loport_w(offs_t offset, uint8_t data);
uint8_t el2_3c503_hiport_r(offs_t offset);
void el2_3c503_hiport_w(offs_t offset, uint8_t data);
void eop_w(int state) override;
uint8_t dack_r(int line) override;
void dack_w(int line, uint8_t data) override;

View File

@ -15,7 +15,7 @@
#define ym3812_StdClock 3579545
READ8_MEMBER( isa8_adlib_device::ym3812_16_r )
uint8_t isa8_adlib_device::ym3812_16_r(offs_t offset)
{
uint8_t retVal = 0xff;
switch(offset)
@ -25,7 +25,7 @@ READ8_MEMBER( isa8_adlib_device::ym3812_16_r )
return retVal;
}
WRITE8_MEMBER( isa8_adlib_device::ym3812_16_w )
void isa8_adlib_device::ym3812_16_w(offs_t offset, uint8_t data)
{
switch(offset)
{
@ -72,7 +72,7 @@ isa8_adlib_device::isa8_adlib_device(const machine_config &mconfig, const char *
void isa8_adlib_device::device_start()
{
set_isa_device();
m_isa->install_device(0x0388, 0x0389, read8_delegate(*this, FUNC(isa8_adlib_device::ym3812_16_r)), write8_delegate(*this, FUNC(isa8_adlib_device::ym3812_16_w)));
m_isa->install_device(0x0388, 0x0389, read8sm_delegate(*this, FUNC(isa8_adlib_device::ym3812_16_r)), write8sm_delegate(*this, FUNC(isa8_adlib_device::ym3812_16_w)));
}
//-------------------------------------------------

View File

@ -22,8 +22,8 @@ public:
// construction/destruction
isa8_adlib_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
DECLARE_READ8_MEMBER(ym3812_16_r);
DECLARE_WRITE8_MEMBER(ym3812_16_w);
uint8_t ym3812_16_r(offs_t offset);
void ym3812_16_w(offs_t offset, uint8_t data);
protected:
// device-level overrides

View File

@ -103,9 +103,9 @@ void isa8_aga_device::device_start()
m_videoram = std::make_unique<uint8_t[]>(0x10000);
set_isa_device();
m_isa->install_memory(0xb0000, 0xbffff, read8_delegate(*this, FUNC(isa8_aga_device::pc_aga_videoram_r)), write8_delegate(*this, FUNC(isa8_aga_device::pc_aga_videoram_w)));
m_isa->install_device(0x3b0, 0x3bf, read8_delegate(*this, FUNC(isa8_aga_device::pc_aga_mda_r)), write8_delegate(*this, FUNC(isa8_aga_device::pc_aga_mda_w)));
m_isa->install_device(0x3d0, 0x3df, read8_delegate(*this, FUNC(isa8_aga_device::pc_aga_cga_r)), write8_delegate(*this, FUNC(isa8_aga_device::pc_aga_cga_w)));
m_isa->install_memory(0xb0000, 0xbffff, read8sm_delegate(*this, FUNC(isa8_aga_device::pc_aga_videoram_r)), write8sm_delegate(*this, FUNC(isa8_aga_device::pc_aga_videoram_w)));
m_isa->install_device(0x3b0, 0x3bf, read8sm_delegate(*this, FUNC(isa8_aga_device::pc_aga_mda_r)), write8sm_delegate(*this, FUNC(isa8_aga_device::pc_aga_mda_w)));
m_isa->install_device(0x3d0, 0x3df, read8sm_delegate(*this, FUNC(isa8_aga_device::pc_aga_cga_r)), write8sm_delegate(*this, FUNC(isa8_aga_device::pc_aga_cga_w)));
/* Initialise the cga palette */
@ -181,9 +181,9 @@ void isa8_aga_pc200_device::device_start()
m_videoram = std::make_unique<uint8_t[]>(0x10000);
set_isa_device();
m_isa->install_memory(0xb0000, 0xbffff, read8_delegate(*this, FUNC(isa8_aga_pc200_device::pc200_videoram_r)), write8_delegate(*this, FUNC(isa8_aga_pc200_device::pc200_videoram_w)));
m_isa->install_device(0x3b0, 0x3bf, read8_delegate(*this, FUNC(isa8_aga_pc200_device::pc_aga_mda_r)), write8_delegate(*this, FUNC(isa8_aga_pc200_device::pc_aga_mda_w)));
m_isa->install_device(0x3d0, 0x3df, read8_delegate(*this, FUNC(isa8_aga_pc200_device::pc200_cga_r)), write8_delegate(*this, FUNC(isa8_aga_pc200_device::pc200_cga_w)));
m_isa->install_memory(0xb0000, 0xbffff, read8sm_delegate(*this, FUNC(isa8_aga_pc200_device::pc200_videoram_r)), write8sm_delegate(*this, FUNC(isa8_aga_pc200_device::pc200_videoram_w)));
m_isa->install_device(0x3b0, 0x3bf, read8sm_delegate(*this, FUNC(isa8_aga_pc200_device::pc_aga_mda_r)), write8sm_delegate(*this, FUNC(isa8_aga_pc200_device::pc_aga_mda_w)));
m_isa->install_device(0x3d0, 0x3df, read8sm_delegate(*this, FUNC(isa8_aga_pc200_device::pc200_cga_r)), write8sm_delegate(*this, FUNC(isa8_aga_pc200_device::pc200_cga_w)));
/* Initialise the cga palette */
@ -645,7 +645,7 @@ MC6845_UPDATE_ROW( isa8_aga_device::cga_gfx_1bpp_update_row )
*
*************************************/
READ8_MEMBER( isa8_aga_device::pc_aga_mda_r )
uint8_t isa8_aga_device::pc_aga_mda_r(offs_t offset)
{
uint8_t data = 0xff;
@ -666,7 +666,7 @@ READ8_MEMBER( isa8_aga_device::pc_aga_mda_r )
return data;
}
WRITE8_MEMBER( isa8_aga_device::pc_aga_mda_w )
void isa8_aga_device::pc_aga_mda_w(offs_t offset, uint8_t data)
{
if (m_mode == AGA_MONO) {
switch (offset) {
@ -694,7 +694,7 @@ WRITE8_MEMBER( isa8_aga_device::pc_aga_mda_w )
}
}
READ8_MEMBER( isa8_aga_device::pc_aga_cga_r )
uint8_t isa8_aga_device::pc_aga_cga_r(offs_t offset)
{
uint8_t data = 0xff;
@ -739,7 +739,7 @@ void isa8_aga_device::set_palette_luts()
}
WRITE8_MEMBER( isa8_aga_device::pc_aga_cga_w )
void isa8_aga_device::pc_aga_cga_w(offs_t offset, uint8_t data)
{
if (m_mode == AGA_COLOR) {
switch (offset) {
@ -826,7 +826,7 @@ void isa8_aga_device::pc_aga_set_mode(mode_t mode)
}
WRITE8_MEMBER( isa8_aga_device::pc_aga_videoram_w )
void isa8_aga_device::pc_aga_videoram_w(offs_t offset, uint8_t data)
{
switch (m_mode) {
case AGA_COLOR:
@ -841,7 +841,7 @@ WRITE8_MEMBER( isa8_aga_device::pc_aga_videoram_w )
}
}
READ8_MEMBER( isa8_aga_device::pc_aga_videoram_r )
uint8_t isa8_aga_device::pc_aga_videoram_r(offs_t offset)
{
switch (m_mode) {
case AGA_COLOR:
@ -856,7 +856,7 @@ READ8_MEMBER( isa8_aga_device::pc_aga_videoram_r )
return 0;
}
READ8_MEMBER( isa8_aga_pc200_device::pc200_videoram_r )
uint8_t isa8_aga_pc200_device::pc200_videoram_r(offs_t offset)
{
switch (m_mode)
{
@ -869,7 +869,7 @@ READ8_MEMBER( isa8_aga_pc200_device::pc200_videoram_r )
}
}
WRITE8_MEMBER( isa8_aga_pc200_device::pc200_videoram_w )
void isa8_aga_pc200_device::pc200_videoram_w(offs_t offset, uint8_t data)
{
switch (m_mode) {
default:
@ -884,9 +884,9 @@ WRITE8_MEMBER( isa8_aga_pc200_device::pc200_videoram_w )
// in reality it is of course only 1 graphics adapter,
// but now cga and mda are splitted in mess
WRITE8_MEMBER( isa8_aga_pc200_device::pc200_cga_w )
void isa8_aga_pc200_device::pc200_cga_w(offs_t offset, uint8_t data)
{
pc_aga_cga_w(space, offset,data,mem_mask);
pc_aga_cga_w(offset,data);
switch (offset) {
case 4:
m_portd |= 0x20;
@ -921,7 +921,7 @@ WRITE8_MEMBER( isa8_aga_pc200_device::pc200_cga_w )
}
}
READ8_MEMBER( isa8_aga_pc200_device::pc200_cga_r )
uint8_t isa8_aga_pc200_device::pc200_cga_r(offs_t offset)
{
uint8_t result;
@ -943,7 +943,7 @@ READ8_MEMBER( isa8_aga_pc200_device::pc200_cga_r )
break;
default:
result = pc_aga_cga_r(space, offset, mem_mask);
result = pc_aga_cga_r(offset);
break;
}
return result;

View File

@ -41,14 +41,14 @@ public:
protected:
isa8_aga_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
DECLARE_READ8_MEMBER( pc_aga_mda_r );
DECLARE_WRITE8_MEMBER( pc_aga_mda_w );
DECLARE_READ8_MEMBER( pc_aga_cga_r );
DECLARE_WRITE8_MEMBER( pc_aga_cga_w );
uint8_t pc_aga_mda_r(offs_t offset);
void pc_aga_mda_w(offs_t offset, uint8_t data);
uint8_t pc_aga_cga_r(offs_t offset);
void pc_aga_cga_w(offs_t offset, uint8_t data);
void set_palette_luts();
void pc_aga_set_mode(mode_t mode);
DECLARE_WRITE8_MEMBER( pc_aga_videoram_w );
DECLARE_READ8_MEMBER( pc_aga_videoram_r );
void pc_aga_videoram_w(offs_t offset, uint8_t data);
uint8_t pc_aga_videoram_r(offs_t offset);
MC6845_UPDATE_ROW( aga_update_row );
MC6845_UPDATE_ROW( mda_text_inten_update_row );
@ -108,10 +108,10 @@ public:
isa8_aga_pc200_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
protected:
DECLARE_READ8_MEMBER( pc200_videoram_r );
DECLARE_WRITE8_MEMBER( pc200_videoram_w );
DECLARE_WRITE8_MEMBER( pc200_cga_w );
DECLARE_READ8_MEMBER( pc200_cga_r );
uint8_t pc200_videoram_r(offs_t offset);
void pc200_videoram_w(offs_t offset, uint8_t data);
void pc200_cga_w(offs_t offset, uint8_t data);
uint8_t pc200_cga_r(offs_t offset);
// device-level overrides
virtual const tiny_rom_entry *device_rom_region() const override;

View File

@ -165,13 +165,13 @@ DEFINE_DEVICE_TYPE(AHA1542CP, aha1542cp_device, "aha1542cp", "AHA-1542CP SCSI Co
#define Z84C0010_TAG "z84c0010"
READ8_MEMBER( aha1542c_device::aha1542_r )
u8 aha1542c_device::aha1542_r(offs_t offset)
{
logerror("%s aha1542_r(): offset=%d\n", machine().describe_context(), offset);
return 0xff;
}
WRITE8_MEMBER( aha1542c_device::aha1542_w )
void aha1542c_device::aha1542_w(offs_t offset, u8 data)
{
logerror("%s aha1542_w(): offset=%d data=0x%02x\n", machine().describe_context(), offset, data);
}
@ -378,8 +378,8 @@ void aha1542c_device::device_start()
set_isa_device();
m_isa->install_rom(this, 0xdc000, 0xdffff, "aha1542", "aha1542");
m_isa->install_device(0x330, 0x333,
read8_delegate(*this, FUNC(aha1542cf_device::aha1542_r)),
write8_delegate(*this, FUNC(aha1542cf_device::aha1542_w)));
read8sm_delegate(*this, FUNC(aha1542cf_device::aha1542_r)),
write8sm_delegate(*this, FUNC(aha1542cf_device::aha1542_w)));
}

View File

@ -33,8 +33,8 @@ public:
// construction/destruction
aha1542c_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
DECLARE_READ8_MEMBER( aha1542_r );
DECLARE_WRITE8_MEMBER( aha1542_w );
u8 aha1542_r(offs_t offset);
void aha1542_w(offs_t offset, u8 data);
protected:
aha1542c_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);

View File

@ -217,23 +217,23 @@ void isa8_babyblue2_device::device_reset()
// map Z80 LPT port based on jumper setting
m_z80->space(AS_IO).install_readwrite_handler(z80lptloc, z80lptloc+7, read8sm_delegate(m_parallel, FUNC(pc_lpt_device::read)), write8sm_delegate(m_parallel, FUNC(pc_lpt_device::write)));
m_isa->install_device(ioloc, ioloc+1, read8_delegate(*this, FUNC(isa8_babyblue2_device::z80_control_r)), write8_delegate(*this, FUNC(isa8_babyblue2_device::z80_control_w)));
m_isa->install_device(ioloc, ioloc+1, read8sm_delegate(*this, FUNC(isa8_babyblue2_device::z80_control_r)), write8sm_delegate(*this, FUNC(isa8_babyblue2_device::z80_control_w)));
m_isa->install_device(lptloc, lptloc+7, read8sm_delegate(m_parallel, FUNC(pc_lpt_device::read)), write8sm_delegate(m_parallel, FUNC(pc_lpt_device::write)));
m_isa->install_device(0x3f8, 0x03ff, read8sm_delegate(m_serial1, FUNC(ins8250_device::ins8250_r)), write8sm_delegate(m_serial1, FUNC(ins8250_device::ins8250_w)));
m_isa->install_device(0x2f8, 0x02ff, read8sm_delegate(m_serial2, FUNC(ins8250_device::ins8250_r)), write8sm_delegate(m_serial2, FUNC(ins8250_device::ins8250_w)));
// TODO: RTC
m_isa->install_memory(ramloc, ramloc+0xffff, read8_delegate(*this, FUNC(isa8_babyblue2_device::z80_ram_r)),write8_delegate(*this, FUNC(isa8_babyblue2_device::z80_ram_w)));
m_isa->install_memory(ramloc, ramloc+0xffff, read8sm_delegate(*this, FUNC(isa8_babyblue2_device::z80_ram_r)),write8sm_delegate(*this, FUNC(isa8_babyblue2_device::z80_ram_w)));
m_devices_installed = true;
}
}
READ8_MEMBER(isa8_babyblue2_device::z80_control_r)
uint8_t isa8_babyblue2_device::z80_control_r(offs_t offset)
{
logerror("Z80 control line read\b");
return 0xff;
}
WRITE8_MEMBER(isa8_babyblue2_device::z80_control_w)
void isa8_babyblue2_device::z80_control_w(offs_t offset, uint8_t data)
{
if(offset == 0)
{

View File

@ -25,10 +25,10 @@ public:
// construction/destruction
isa8_babyblue2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
DECLARE_READ8_MEMBER(z80_control_r);
DECLARE_WRITE8_MEMBER(z80_control_w);
DECLARE_READ8_MEMBER(z80_ram_r) { return m_ram->read(offset); }
DECLARE_WRITE8_MEMBER(z80_ram_w) { m_ram->write(offset,data); }
uint8_t z80_control_r(offs_t offset);
void z80_control_w(offs_t offset, uint8_t data);
uint8_t z80_ram_r(offs_t offset) { return m_ram->read(offset); }
void z80_ram_w(offs_t offset, uint8_t data) { m_ram->write(offset,data); }
DECLARE_WRITE_LINE_MEMBER(port1_irq) { m_isa->irq4_w(state); }
DECLARE_WRITE_LINE_MEMBER(port2_irq) { m_isa->irq3_w(state); }

View File

@ -51,7 +51,7 @@ void isa8_chessmdr_device::device_reset()
{
// MAME doesn't allow reading ioport at device_start
u16 port = ioport("DSW")->read() * 0x40 + 0x10;
m_isa->install_device(port, port+1, read8_delegate(*this, FUNC(isa8_chessmdr_device::chessmdr_r)), write8_delegate(*this, FUNC(isa8_chessmdr_device::chessmdr_w)));
m_isa->install_device(port, port+1, read8sm_delegate(*this, FUNC(isa8_chessmdr_device::chessmdr_r)), write8sm_delegate(*this, FUNC(isa8_chessmdr_device::chessmdr_w)));
m_installed = true;
}
@ -106,7 +106,7 @@ void isa8_chessmdr_device::device_add_mconfig(machine_config &config)
I/O
******************************************************************************/
READ8_MEMBER(isa8_chessmdr_device::chessmdr_r)
uint8_t isa8_chessmdr_device::chessmdr_r(offs_t offset)
{
if (offset == 1)
return m_chessm->data_r() ? 0 : 0x80;
@ -114,7 +114,7 @@ READ8_MEMBER(isa8_chessmdr_device::chessmdr_r)
return 0xff;
}
WRITE8_MEMBER(isa8_chessmdr_device::chessmdr_w)
void isa8_chessmdr_device::chessmdr_w(offs_t offset, uint8_t data)
{
if (offset == 0)
{

View File

@ -36,8 +36,8 @@ private:
bool m_installed;
DECLARE_READ8_MEMBER(chessmdr_r);
DECLARE_WRITE8_MEMBER(chessmdr_w);
uint8_t chessmdr_r(offs_t offset);
void chessmdr_w(offs_t offset, uint8_t data);
};

View File

@ -64,7 +64,7 @@ void isa8_chessmsr_device::device_reset()
{
// MAME doesn't allow reading ioport at device_start
u16 port = ioport("DSW")->read() * 0x40 + 0x10;
m_isa->install_device(port, port+1, read8_delegate(*this, FUNC(isa8_chessmsr_device::chessmsr_r)), write8_delegate(*this, FUNC(isa8_chessmsr_device::chessmsr_w)));
m_isa->install_device(port, port+1, read8sm_delegate(*this, FUNC(isa8_chessmsr_device::chessmsr_r)), write8sm_delegate(*this, FUNC(isa8_chessmsr_device::chessmsr_w)));
m_maincpu->set_unscaled_clock(ioport("CPU")->read() ? (32_MHz_XTAL) : (30_MHz_XTAL/2));
@ -80,7 +80,7 @@ void isa8_chessmsr_device::device_reset()
void isa8_chessmsr_device::device_reset_after_children()
{
// hold ARM CPU in reset state
chessmsr_w(machine().dummy_space(), 1, 0);
chessmsr_w(1, 0);
}
@ -152,7 +152,7 @@ void isa8_chessmsr_device::device_add_mconfig(machine_config &config)
// External handlers
READ8_MEMBER(isa8_chessmsr_device::chessmsr_r)
uint8_t isa8_chessmsr_device::chessmsr_r(offs_t offset)
{
if (offset == 0)
return m_mainlatch->read();
@ -160,7 +160,7 @@ READ8_MEMBER(isa8_chessmsr_device::chessmsr_r)
return m_mainlatch->pending_r() ? 0 : 2;
}
WRITE8_MEMBER(isa8_chessmsr_device::chessmsr_w)
void isa8_chessmsr_device::chessmsr_w(offs_t offset, uint8_t data)
{
if (offset == 0)
{

View File

@ -43,8 +43,8 @@ private:
bool m_suspended;
bool m_installed;
DECLARE_READ8_MEMBER(chessmsr_r);
DECLARE_WRITE8_MEMBER(chessmsr_w);
uint8_t chessmsr_r(offs_t offset);
void chessmsr_w(offs_t offset, uint8_t data);
void chessmsr_mem(address_map &map);
};

View File

@ -52,13 +52,14 @@ READ16_MEMBER(dectalk_isa_device::host_irq_r)
return 0;
}
READ8_MEMBER(dectalk_isa_device::dma_r)
uint8_t dectalk_isa_device::dma_r()
{
if (!machine().side_effects_disabled())
m_cpu->drq1_w(0);
return m_dma;
}
WRITE8_MEMBER(dectalk_isa_device::dma_w)
void dectalk_isa_device::dma_w(uint8_t data)
{
m_cpu->drq1_w(0);
m_dma = data;
@ -176,7 +177,7 @@ void dectalk_isa_device::device_add_mconfig(machine_config &config)
vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT);
}
WRITE8_MEMBER(dectalk_isa_device::write)
void dectalk_isa_device::write(offs_t offset, uint8_t data)
{
switch(offset)
{
@ -202,7 +203,7 @@ WRITE8_MEMBER(dectalk_isa_device::write)
}
}
READ8_MEMBER(dectalk_isa_device::read)
uint8_t dectalk_isa_device::read(offs_t offset)
{
switch(offset)
{
@ -215,6 +216,7 @@ READ8_MEMBER(dectalk_isa_device::read)
case 3:
return m_data >> 8;
case 4:
if (!machine().side_effects_disabled())
m_cpu->drq1_w(1);
return m_dma;
}
@ -224,7 +226,7 @@ READ8_MEMBER(dectalk_isa_device::read)
void dectalk_isa_device::device_start()
{
set_isa_device();
m_isa->install_device(0x0250, 0x0257, read8_delegate(*this, FUNC(dectalk_isa_device::read)), write8_delegate(*this, FUNC(dectalk_isa_device::write)));
m_isa->install_device(0x0250, 0x0257, read8sm_delegate(*this, FUNC(dectalk_isa_device::read)), write8sm_delegate(*this, FUNC(dectalk_isa_device::write)));
}
void dectalk_isa_device::device_reset()

View File

@ -29,16 +29,16 @@ private:
DECLARE_READ_LINE_MEMBER(bio_line_r);
DECLARE_WRITE_LINE_MEMBER(clock_w);
DECLARE_WRITE8_MEMBER(write);
DECLARE_READ8_MEMBER(read);
void write(offs_t offset, uint8_t data);
uint8_t read(offs_t offset);
DECLARE_WRITE16_MEMBER(status_w);
DECLARE_READ16_MEMBER(cmd_r);
DECLARE_WRITE16_MEMBER(data_w);
DECLARE_READ16_MEMBER(data_r);
DECLARE_READ16_MEMBER(host_irq_r);
DECLARE_READ8_MEMBER(dma_r);
DECLARE_WRITE8_MEMBER(dma_w);
uint8_t dma_r();
void dma_w(uint8_t data);
DECLARE_WRITE16_MEMBER(dac_w);
DECLARE_READ16_MEMBER(dsp_dma_r);
DECLARE_WRITE16_MEMBER(dsp_dma_w);

View File

@ -637,9 +637,9 @@ void isa8_ega_device::device_start()
m_plane[3] = m_videoram + 0x30000;
m_isa->install_rom(this, 0xc0000, 0xc3fff, "ega", "user2");
m_isa->install_device(0x3b0, 0x3bf, read8_delegate(*this, FUNC(isa8_ega_device::pc_ega8_3b0_r)), write8_delegate(*this, FUNC(isa8_ega_device::pc_ega8_3b0_w)));
m_isa->install_device(0x3c0, 0x3cf, read8_delegate(*this, FUNC(isa8_ega_device::pc_ega8_3c0_r)), write8_delegate(*this, FUNC(isa8_ega_device::pc_ega8_3c0_w)));
m_isa->install_device(0x3d0, 0x3df, read8_delegate(*this, FUNC(isa8_ega_device::pc_ega8_3d0_r)), write8_delegate(*this, FUNC(isa8_ega_device::pc_ega8_3d0_w)));
m_isa->install_device(0x3b0, 0x3bf, read8sm_delegate(*this, FUNC(isa8_ega_device::pc_ega8_3b0_r)), write8sm_delegate(*this, FUNC(isa8_ega_device::pc_ega8_3b0_w)));
m_isa->install_device(0x3c0, 0x3cf, read8sm_delegate(*this, FUNC(isa8_ega_device::pc_ega8_3c0_r)), write8sm_delegate(*this, FUNC(isa8_ega_device::pc_ega8_3c0_w)));
m_isa->install_device(0x3d0, 0x3df, read8sm_delegate(*this, FUNC(isa8_ega_device::pc_ega8_3d0_r)), write8sm_delegate(*this, FUNC(isa8_ega_device::pc_ega8_3d0_w)));
}
//-------------------------------------------------
@ -693,7 +693,7 @@ void isa8_ega_device::install_banks()
case 0x00: /* 0xA0000, 128KB */
if ( m_misc_output & 0x02 )
{
m_isa->install_memory(0xa0000, 0xbffff, read8_delegate(*this, FUNC(isa8_ega_device::read)), write8_delegate(*this, FUNC(isa8_ega_device::write)));
m_isa->install_memory(0xa0000, 0xbffff, read8sm_delegate(*this, FUNC(isa8_ega_device::read)), write8sm_delegate(*this, FUNC(isa8_ega_device::write)));
}
else
{
@ -705,7 +705,7 @@ void isa8_ega_device::install_banks()
case 0x04: /* 0xA0000, 64KB */
if ( m_misc_output & 0x02 )
{
m_isa->install_memory(0xa0000, 0xaffff, read8_delegate(*this, FUNC(isa8_ega_device::read)), write8_delegate(*this, FUNC(isa8_ega_device::write)));
m_isa->install_memory(0xa0000, 0xaffff, read8sm_delegate(*this, FUNC(isa8_ega_device::read)), write8sm_delegate(*this, FUNC(isa8_ega_device::write)));
}
else
{
@ -718,7 +718,7 @@ void isa8_ega_device::install_banks()
case 0x08: /* 0xB0000, 32KB */
if ( m_misc_output & 0x02 )
{
m_isa->install_memory(0xb0000, 0xb7fff, read8_delegate(*this, FUNC(isa8_ega_device::read)), write8_delegate(*this, FUNC(isa8_ega_device::write)));
m_isa->install_memory(0xb0000, 0xb7fff, read8sm_delegate(*this, FUNC(isa8_ega_device::read)), write8sm_delegate(*this, FUNC(isa8_ega_device::write)));
}
else
{
@ -731,7 +731,7 @@ void isa8_ega_device::install_banks()
case 0x0c: /* 0xB8000, 32KB */
if ( m_misc_output & 0x02 )
{
m_isa->install_memory(0xb8000, 0xbffff, read8_delegate(*this, FUNC(isa8_ega_device::read)), write8_delegate(*this, FUNC(isa8_ega_device::write)));
m_isa->install_memory(0xb8000, 0xbffff, read8sm_delegate(*this, FUNC(isa8_ega_device::read)), write8sm_delegate(*this, FUNC(isa8_ega_device::write)));
}
else
{
@ -953,7 +953,7 @@ void isa8_ega_device::change_mode()
}
READ8_MEMBER( isa8_ega_device::read )
uint8_t isa8_ega_device::read(offs_t offset)
{
uint8_t data = 0xFF;
@ -1013,7 +1013,7 @@ uint8_t isa8_ega_device::alu_op( uint8_t data, uint8_t latch_data )
}
WRITE8_MEMBER( isa8_ega_device::write )
void isa8_ega_device::write(offs_t offset, uint8_t data)
{
uint8_t d[4];
uint8_t alu[4];
@ -1159,7 +1159,7 @@ WRITE8_MEMBER( isa8_ega_device::write )
}
READ8_MEMBER( isa8_ega_device::pc_ega8_3X0_r )
uint8_t isa8_ega_device::pc_ega8_3X0_r(offs_t offset)
{
int data = 0xff;
@ -1196,7 +1196,7 @@ READ8_MEMBER( isa8_ega_device::pc_ega8_3X0_r )
return data;
}
WRITE8_MEMBER( isa8_ega_device::pc_ega8_3X0_w )
void isa8_ega_device::pc_ega8_3X0_w(offs_t offset, uint8_t data)
{
LOGSETUP("%s: offset = %02x, data = %02x\n", FUNCNAME, offset, data );
@ -1229,37 +1229,37 @@ WRITE8_MEMBER( isa8_ega_device::pc_ega8_3X0_w )
READ8_MEMBER(isa8_ega_device::pc_ega8_3b0_r )
uint8_t isa8_ega_device::pc_ega8_3b0_r(offs_t offset)
{
return ( m_misc_output & 0x01 ) ? 0xFF : pc_ega8_3X0_r(space, offset);
return ( m_misc_output & 0x01 ) ? 0xFF : pc_ega8_3X0_r(offset);
}
READ8_MEMBER(isa8_ega_device::pc_ega8_3d0_r )
uint8_t isa8_ega_device::pc_ega8_3d0_r(offs_t offset)
{
return ( m_misc_output & 0x01 ) ? pc_ega8_3X0_r(space, offset) : 0xFF;
return ( m_misc_output & 0x01 ) ? pc_ega8_3X0_r(offset) : 0xFF;
}
WRITE8_MEMBER(isa8_ega_device::pc_ega8_3b0_w )
void isa8_ega_device::pc_ega8_3b0_w(offs_t offset, uint8_t data)
{
if ( ! ( m_misc_output & 0x01 ) )
{
pc_ega8_3X0_w( space, offset, data );
pc_ega8_3X0_w( offset, data );
}
}
WRITE8_MEMBER(isa8_ega_device::pc_ega8_3d0_w )
void isa8_ega_device::pc_ega8_3d0_w(offs_t offset, uint8_t data)
{
if ( m_misc_output & 0x01 )
{
pc_ega8_3X0_w( space, offset, data );
pc_ega8_3X0_w( offset, data );
}
}
READ8_MEMBER(isa8_ega_device::pc_ega8_3c0_r )
uint8_t isa8_ega_device::pc_ega8_3c0_r(offs_t offset)
{
int data = 0xff;
@ -1299,7 +1299,7 @@ READ8_MEMBER(isa8_ega_device::pc_ega8_3c0_r )
}
WRITE8_MEMBER(isa8_ega_device::pc_ega8_3c0_w )
void isa8_ega_device::pc_ega8_3c0_w(offs_t offset, uint8_t data)
{
static const uint8_t ar_reg_mask[0x20] =
{

View File

@ -23,14 +23,14 @@ public:
// construction/destruction
isa8_ega_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
DECLARE_READ8_MEMBER(read);
DECLARE_WRITE8_MEMBER(write);
DECLARE_READ8_MEMBER(pc_ega8_3b0_r);
DECLARE_WRITE8_MEMBER(pc_ega8_3b0_w);
DECLARE_READ8_MEMBER(pc_ega8_3c0_r);
DECLARE_WRITE8_MEMBER(pc_ega8_3c0_w);
DECLARE_READ8_MEMBER(pc_ega8_3d0_r);
DECLARE_WRITE8_MEMBER(pc_ega8_3d0_w);
uint8_t read(offs_t offset);
void write(offs_t offset, uint8_t data);
uint8_t pc_ega8_3b0_r(offs_t offset);
void pc_ega8_3b0_w(offs_t offset, uint8_t data);
uint8_t pc_ega8_3c0_r(offs_t offset);
void pc_ega8_3c0_w(offs_t offset, uint8_t data);
uint8_t pc_ega8_3d0_r(offs_t offset);
void pc_ega8_3d0_w(offs_t offset, uint8_t data);
CRTC_EGA_ROW_UPDATE(pc_ega_graphics);
CRTC_EGA_ROW_UPDATE(pc_ega_text);
@ -62,8 +62,8 @@ public:
void install_banks();
void change_mode();
DECLARE_WRITE8_MEMBER(pc_ega8_3X0_w);
DECLARE_READ8_MEMBER(pc_ega8_3X0_r);
void pc_ega8_3X0_w(offs_t offset, uint8_t data);
uint8_t pc_ega8_3X0_r(offs_t offset);
/* Video memory and related variables */
std::unique_ptr<uint8_t[]> m_vram;

View File

@ -242,13 +242,13 @@ void isa8_epc_mda_device::device_reset()
if (m_installed == false)
{
m_isa->install_device(0x3b0, 0x3bf, read8_delegate(*this, FUNC(isa8_epc_mda_device::io_read)), write8_delegate(*this, FUNC(isa8_epc_mda_device::io_write)));
m_isa->install_device(0x3b0, 0x3bf, read8sm_delegate(*this, FUNC(isa8_epc_mda_device::io_read)), write8sm_delegate(*this, FUNC(isa8_epc_mda_device::io_write)));
m_isa->install_bank(0xb0000, 0xb7fff, "bank_epc", &m_videoram[0]); // Monochrome emulation mode VRAM address
// This check allows a color monitor adapter to be installed at this address range if color emulation is disabled
if (m_color_mode & 1)
{
m_isa->install_device(0x3d0, 0x3df, read8_delegate(*this, FUNC(isa8_epc_mda_device::io_read)), write8_delegate(*this, FUNC(isa8_epc_mda_device::io_write)));
m_isa->install_device(0x3d0, 0x3df, read8sm_delegate(*this, FUNC(isa8_epc_mda_device::io_read)), write8sm_delegate(*this, FUNC(isa8_epc_mda_device::io_write)));
m_isa->install_bank(0xb8000, 0xbffff, "bank_epc", &m_videoram[0]); // Color emulation mode VRAM address, but same 32KB areas as there are only this amount on the board
}
m_installed = true;
@ -266,7 +266,7 @@ void isa8_epc_mda_device::device_reset()
* Status Register 0x3ba 0x3da r CGA/MDA status reg (incompatible)
* w EGA/VGA feature ccontrol reg (not used by this board)
*/
WRITE8_MEMBER(isa8_epc_mda_device::io_write )
void isa8_epc_mda_device::io_write(offs_t offset, uint8_t data)
{
LOG("%s: %04x <- %02x\n", FUNCNAME, offset, data);
switch( offset )
@ -318,7 +318,7 @@ WRITE8_MEMBER(isa8_epc_mda_device::io_write )
}
}
READ8_MEMBER( isa8_epc_mda_device::io_read )
uint8_t isa8_epc_mda_device::io_read(offs_t offset)
{
LOG("%s: %04x <- ???\n", FUNCNAME, offset);
int data = 0xff;
@ -370,7 +370,7 @@ WRITE_LINE_MEMBER( isa8_epc_mda_device::vsync_changed )
/*
* rW MDA mode control register (see #P138)
*/
WRITE8_MEMBER( isa8_epc_mda_device::mode_control_w )
void isa8_epc_mda_device::mode_control_w(uint8_t data)
{
m_mode_control = data;
@ -399,9 +399,10 @@ WRITE8_MEMBER( isa8_epc_mda_device::mode_control_w )
* 2-1 reserved
* 0 horizontal drive enable
*/
READ8_MEMBER( isa8_epc_mda_device::status_r )
uint8_t isa8_epc_mda_device::status_r()
{
// Faking pixel stream here
if (!machine().side_effects_disabled())
m_pixel++;
return 0xF0 | (m_pixel & 0x08) | m_hsync;

View File

@ -20,10 +20,10 @@ public:
// construction/destruction
isa8_epc_mda_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
DECLARE_READ8_MEMBER(io_read);
DECLARE_WRITE8_MEMBER(io_write);
DECLARE_READ8_MEMBER(status_r);
DECLARE_WRITE8_MEMBER(mode_control_w);
uint8_t io_read(offs_t offset);
void io_write(offs_t offset, uint8_t data);
uint8_t status_r();
void mode_control_w(uint8_t data);
DECLARE_WRITE_LINE_MEMBER(hsync_changed);
DECLARE_WRITE_LINE_MEMBER(vsync_changed);

View File

@ -122,13 +122,13 @@ DEFINE_DEVICE_TYPE(ISA16_SAD8852, isa16_sad8852_device, "sad8852", "SAD8852 IBM
//-------------------------------------------------
// Access methods from ISA bus
//-------------------------------------------------
READ8_MEMBER( isa16_sad8852_device::sad8852_r )
uint8_t isa16_sad8852_device::sad8852_r(offs_t offset)
{
LOG("%s sad8852_r(): offset=%d\n", FUNCNAME, offset);
return 0xff;
}
WRITE8_MEMBER( isa16_sad8852_device::sad8852_w )
void isa16_sad8852_device::sad8852_w(offs_t offset, uint8_t data)
{
LOG("%s : offset=%d data=0x%02x\n", FUNCNAME, offset, data);
}
@ -236,8 +236,8 @@ void isa16_sad8852_device::device_reset()
{
m_isa->install_device(
0x378, 0x378, // Wrong, need to find real i/o addresses
read8_delegate(*this, FUNC(isa16_sad8852_device::sad8852_r)),
write8_delegate(*this, FUNC(isa16_sad8852_device::sad8852_w)));
read8sm_delegate(*this, FUNC(isa16_sad8852_device::sad8852_r)),
write8sm_delegate(*this, FUNC(isa16_sad8852_device::sad8852_w)));
m_irq = m_isairq->read();
m_installed = true;
}

View File

@ -15,8 +15,8 @@ public:
// construction/destruction
isa16_sad8852_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
DECLARE_READ8_MEMBER(sad8852_r);
DECLARE_WRITE8_MEMBER(sad8852_w);
uint8_t sad8852_r(offs_t offset);
void sad8852_w(offs_t offset, uint8_t data);
protected:
// device-level overrides

View File

@ -79,13 +79,13 @@ DEFINE_DEVICE_TYPE(ISA8_EIS_TWIB, isa8_eistwib_device, "eistwib", "EIS TWIB IBM
//-------------------------------------------------
// Access methods from ISA bus
//-------------------------------------------------
READ8_MEMBER( isa8_eistwib_device::twib_r )
uint8_t isa8_eistwib_device::twib_r(offs_t offset)
{
LOGR("%s : offset=%d\n", FUNCNAME, offset);
return m_uart8274->cd_ba_r(offset);
}
WRITE8_MEMBER( isa8_eistwib_device::twib_w )
void isa8_eistwib_device::twib_w(offs_t offset, uint8_t data)
{
LOG("%s : offset=%d data=0x%02x\n", FUNCNAME, offset, data);
m_uart8274->cd_ba_w(offset, data);
@ -249,8 +249,8 @@ void isa8_eistwib_device::device_reset()
LOG("Installing twib device at %04x\n", base);
m_isa->install_device(
base, base + 0x0f,
read8_delegate(*this, FUNC( isa8_eistwib_device::twib_r )),
write8_delegate(*this, FUNC( isa8_eistwib_device::twib_w )));
read8sm_delegate(*this, FUNC( isa8_eistwib_device::twib_r )),
write8sm_delegate(*this, FUNC( isa8_eistwib_device::twib_w )));
m_installed = true;
}
// CD and CTS input are tied to ground

View File

@ -18,8 +18,8 @@ public:
// construction/destruction
isa8_eistwib_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
DECLARE_READ8_MEMBER(twib_r);
DECLARE_WRITE8_MEMBER(twib_w);
uint8_t twib_r(offs_t offset);
void twib_w(offs_t offset, uint8_t data);
protected:
// device-level overrides

View File

@ -58,7 +58,7 @@ void isa8_finalchs_device::device_reset()
{
// MAME doesn't allow reading ioport at device_start
u16 port = ioport("DSW")->read() * 0x10 + 0x100;
m_isa->install_device(port, port+1, read8_delegate(*this, FUNC(isa8_finalchs_device::finalchs_r)), write8_delegate(*this, FUNC(isa8_finalchs_device::finalchs_w)));
m_isa->install_device(port, port+1, read8sm_delegate(*this, FUNC(isa8_finalchs_device::finalchs_r)), write8sm_delegate(*this, FUNC(isa8_finalchs_device::finalchs_w)));
m_installed = true;
}
@ -139,7 +139,7 @@ void isa8_finalchs_device::device_add_mconfig(machine_config &config)
// External handlers
READ8_MEMBER(isa8_finalchs_device::finalchs_r)
uint8_t isa8_finalchs_device::finalchs_r(offs_t offset)
{
if (offset == 0)
return m_mainlatch->read();
@ -147,7 +147,7 @@ READ8_MEMBER(isa8_finalchs_device::finalchs_r)
return m_mainlatch->pending_r() ? 0 : 1;
}
WRITE8_MEMBER(isa8_finalchs_device::finalchs_w)
void isa8_finalchs_device::finalchs_w(offs_t offset, uint8_t data)
{
if (offset == 0)
m_sublatch->write(data);

View File

@ -41,8 +41,8 @@ private:
bool m_installed;
DECLARE_READ8_MEMBER(finalchs_r);
DECLARE_WRITE8_MEMBER(finalchs_w);
uint8_t finalchs_r(offs_t offset);
void finalchs_w(offs_t offset, uint8_t data);
void finalchs_mem(address_map &map);
};

View File

@ -22,22 +22,22 @@
*/
READ8_MEMBER( isa8_gblaster_device::saa1099_16_r )
uint8_t isa8_gblaster_device::saa1099_16_r(offs_t offset)
{
return 0xff;
}
WRITE8_MEMBER( isa8_gblaster_device::saa1099_1_16_w )
void isa8_gblaster_device::saa1099_1_16_w(offs_t offset, uint8_t data)
{
m_saa1099_1->write(offset, data);
}
WRITE8_MEMBER( isa8_gblaster_device::saa1099_2_16_w )
void isa8_gblaster_device::saa1099_2_16_w(offs_t offset, uint8_t data)
{
m_saa1099_2->write(offset, data);
}
READ8_MEMBER( isa8_gblaster_device::detect_r )
uint8_t isa8_gblaster_device::detect_r(offs_t offset)
{
switch(offset)
{
@ -49,7 +49,7 @@ READ8_MEMBER( isa8_gblaster_device::detect_r )
}
}
WRITE8_MEMBER( isa8_gblaster_device::detect_w )
void isa8_gblaster_device::detect_w(offs_t offset, uint8_t data)
{
switch(offset)
{
@ -104,9 +104,9 @@ isa8_gblaster_device::isa8_gblaster_device(const machine_config &mconfig, const
void isa8_gblaster_device::device_start()
{
set_isa_device();
m_isa->install_device(0x0220, 0x0221, read8_delegate(*this, FUNC(isa8_gblaster_device::saa1099_16_r)), write8_delegate(*this, FUNC(isa8_gblaster_device::saa1099_1_16_w)));
m_isa->install_device(0x0222, 0x0223, read8_delegate(*this, FUNC(isa8_gblaster_device::saa1099_16_r)), write8_delegate(*this, FUNC(isa8_gblaster_device::saa1099_2_16_w)));
m_isa->install_device(0x0224, 0x022F, read8_delegate(*this, FUNC(isa8_gblaster_device::detect_r)), write8_delegate(*this, FUNC(isa8_gblaster_device::detect_w)));
m_isa->install_device(0x0220, 0x0221, read8sm_delegate(*this, FUNC(isa8_gblaster_device::saa1099_16_r)), write8sm_delegate(*this, FUNC(isa8_gblaster_device::saa1099_1_16_w)));
m_isa->install_device(0x0222, 0x0223, read8sm_delegate(*this, FUNC(isa8_gblaster_device::saa1099_16_r)), write8sm_delegate(*this, FUNC(isa8_gblaster_device::saa1099_2_16_w)));
m_isa->install_device(0x0224, 0x022F, read8sm_delegate(*this, FUNC(isa8_gblaster_device::detect_r)), write8sm_delegate(*this, FUNC(isa8_gblaster_device::detect_w)));
}
//-------------------------------------------------

View File

@ -22,11 +22,11 @@ public:
// construction/destruction
isa8_gblaster_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
DECLARE_READ8_MEMBER(saa1099_16_r);
DECLARE_WRITE8_MEMBER(saa1099_1_16_w);
DECLARE_WRITE8_MEMBER(saa1099_2_16_w);
DECLARE_READ8_MEMBER(detect_r);
DECLARE_WRITE8_MEMBER(detect_w);
uint8_t saa1099_16_r(offs_t offset);
void saa1099_1_16_w(offs_t offset, uint8_t data);
void saa1099_2_16_w(offs_t offset, uint8_t data);
uint8_t detect_r(offs_t offset);
void detect_w(offs_t offset, uint8_t data);
protected:
// device-level overrides

View File

@ -65,7 +65,7 @@ void gf1_device::update_irq()
}
/* only the Adlib timers are implemented in hardware */
READ8_MEMBER( gf1_device::adlib_r )
uint8_t gf1_device::adlib_r(offs_t offset)
{
uint8_t retVal = 0xff;
switch(offset)
@ -80,7 +80,7 @@ READ8_MEMBER( gf1_device::adlib_r )
return retVal;
}
WRITE8_MEMBER( gf1_device::adlib_w )
void gf1_device::adlib_w(offs_t offset, uint8_t data)
{
switch(offset)
{
@ -475,7 +475,7 @@ void gf1_device::device_clock_changed()
// device I/O handlers
// ------------------------------------------------
READ8_MEMBER(gf1_device::global_reg_select_r)
uint8_t gf1_device::global_reg_select_r(offs_t offset)
{
if(offset == 0)
return m_current_voice;
@ -483,7 +483,7 @@ READ8_MEMBER(gf1_device::global_reg_select_r)
return m_current_reg | 0xc0;
}
WRITE8_MEMBER(gf1_device::global_reg_select_w)
void gf1_device::global_reg_select_w(offs_t offset, uint8_t data)
{
if(offset == 0)
m_current_voice = data & 0x1f;
@ -491,7 +491,7 @@ WRITE8_MEMBER(gf1_device::global_reg_select_w)
m_current_reg = data;
}
READ8_MEMBER(gf1_device::global_reg_data_r)
uint8_t gf1_device::global_reg_data_r(offs_t offset)
{
uint16_t ret;
@ -610,7 +610,7 @@ READ8_MEMBER(gf1_device::global_reg_data_r)
return 0xff;
}
WRITE8_MEMBER(gf1_device::global_reg_data_w)
void gf1_device::global_reg_data_w(offs_t offset, uint8_t data)
{
switch(m_current_reg)
{
@ -873,7 +873,7 @@ WRITE8_MEMBER(gf1_device::global_reg_data_w)
/* port 0x3X7 - DRAM I/O
* read and write bytes directly to wavetable DRAM */
READ8_MEMBER(gf1_device::dram_r)
uint8_t gf1_device::dram_r(offs_t offset)
{
if(offset == 1)
{
@ -883,7 +883,7 @@ READ8_MEMBER(gf1_device::dram_r)
return 0xff;
}
WRITE8_MEMBER(gf1_device::dram_w)
void gf1_device::dram_w(offs_t offset, uint8_t data)
{
if(offset == 1)
{
@ -893,7 +893,7 @@ WRITE8_MEMBER(gf1_device::dram_w)
/* port 2XA - read selected adlib command?
* the GUS driver installation writes 0x55 to port 0x388, then expects to reads the same from 0x2XA */
READ8_MEMBER(gf1_device::adlib_cmd_r)
uint8_t gf1_device::adlib_cmd_r(offs_t offset)
{
if(offset == 0)
{
@ -919,7 +919,7 @@ READ8_MEMBER(gf1_device::adlib_cmd_r)
* bits 5-3 = DMA select register 2 (values same as reg 1)
* bit 6 = combine both on same DMA channel
*/
WRITE8_MEMBER(gf1_device::adlib_cmd_w)
void gf1_device::adlib_cmd_w(offs_t offset, uint8_t data)
{
if(offset == 1)
{
@ -1069,18 +1069,18 @@ WRITE8_MEMBER(gf1_device::adlib_cmd_w)
* bit 4 - Combine GF1 IRQs with MIDI IRQs
* bit 5 - Enable MIDI TxD to RxD loopback
* bit 6 - Control Reg Select - set next I/O write to 0x2XB to be DMA (0) or IRQ (1) channel latches */
READ8_MEMBER(gf1_device::mix_ctrl_r)
uint8_t gf1_device::mix_ctrl_r(offs_t offset)
{
return 0xff; // read only
}
WRITE8_MEMBER(gf1_device::mix_ctrl_w)
void gf1_device::mix_ctrl_w(offs_t offset, uint8_t data)
{
if(offset == 0)
m_mix_ctrl = data;
}
READ8_MEMBER(gf1_device::sb_r)
uint8_t gf1_device::sb_r(offs_t offset)
{
uint8_t val;
@ -1103,7 +1103,7 @@ READ8_MEMBER(gf1_device::sb_r)
return 0xff;
}
WRITE8_MEMBER(gf1_device::sb_w)
void gf1_device::sb_w(offs_t offset, uint8_t data)
{
switch(offset)
{
@ -1124,20 +1124,17 @@ WRITE8_MEMBER(gf1_device::sb_w)
}
}
WRITE8_MEMBER(gf1_device::sb2x6_w)
void gf1_device::sb2x6_w(uint8_t data)
{
if(offset==0)
{
if(m_timer_ctrl & 0x20)
{
m_adlib_status |= 0x08;
m_nmi_handler(1);
logerror("GUS: SB 0x2X6 IRQ active\n");
}
}
}
READ8_MEMBER(gf1_device::stat_r)
uint8_t gf1_device::stat_r()
{
uint8_t val = m_statread & 0xf9;
if(m_mix_ctrl & 0x08)
@ -1145,7 +1142,7 @@ READ8_MEMBER(gf1_device::stat_r)
return val;
}
WRITE8_MEMBER(gf1_device::stat_w)
void gf1_device::stat_w(uint8_t data)
{
m_reg_ctrl = data;
}
@ -1293,10 +1290,10 @@ isa16_gus_device::isa16_gus_device(const machine_config &mconfig, const char *ta
void isa16_gus_device::device_start()
{
set_isa_device();
m_isa->install_device(0x0200, 0x0201, read8_delegate(*this, FUNC(isa16_gus_device::joy_r)), write8_delegate(*this, FUNC(isa16_gus_device::joy_w)));
m_isa->install_device(0x0220, 0x022f, read8_delegate(*this, FUNC(isa16_gus_device::board_r)), write8_delegate(*this, FUNC(isa16_gus_device::board_w)));
m_isa->install_device(0x0320, 0x0327, read8_delegate(*this, FUNC(isa16_gus_device::synth_r)), write8_delegate(*this, FUNC(isa16_gus_device::synth_w)));
m_isa->install_device(0x0388, 0x0389, read8_delegate(*this, FUNC(isa16_gus_device::adlib_r)), write8_delegate(*this, FUNC(isa16_gus_device::adlib_w)));
m_isa->install_device(0x0200, 0x0201, read8sm_delegate(*this, FUNC(isa16_gus_device::joy_r)), write8sm_delegate(*this, FUNC(isa16_gus_device::joy_w)));
m_isa->install_device(0x0220, 0x022f, read8sm_delegate(*this, FUNC(isa16_gus_device::board_r)), write8sm_delegate(*this, FUNC(isa16_gus_device::board_w)));
m_isa->install_device(0x0320, 0x0327, read8sm_delegate(*this, FUNC(isa16_gus_device::synth_r)), write8sm_delegate(*this, FUNC(isa16_gus_device::synth_w)));
m_isa->install_device(0x0388, 0x0389, read8sm_delegate(*this, FUNC(isa16_gus_device::adlib_r)), write8sm_delegate(*this, FUNC(isa16_gus_device::adlib_w)));
}
void isa16_gus_device::device_reset()
@ -1307,13 +1304,13 @@ void isa16_gus_device::device_stop()
{
}
READ8_MEMBER(isa16_gus_device::board_r)
uint8_t isa16_gus_device::board_r(offs_t offset)
{
switch(offset)
{
case 0x00:
case 0x01:
return m_gf1->mix_ctrl_r(space,offset);
return m_gf1->mix_ctrl_r(offset);
/* port 0x2X6 - IRQ status (active high)
* bit 0 - MIDI transmit IRQ
* bit 1 - MIDI receive IRQ
@ -1328,55 +1325,55 @@ READ8_MEMBER(isa16_gus_device::board_r)
return m_irq_status;
case 0x08:
case 0x09:
return m_gf1->adlib_r(space,offset-8);
return m_gf1->adlib_r(offset-8);
case 0x0a:
case 0x0b:
return m_gf1->adlib_cmd_r(space,offset-10);
return m_gf1->adlib_cmd_r(offset-10);
case 0x0c:
case 0x0d:
case 0x0e:
return m_gf1->sb_r(space,offset-12);
return m_gf1->sb_r(offset-12);
case 0x0f:
return m_gf1->stat_r(space,offset-15);
return m_gf1->stat_r();
default:
logerror("GUS: Invalid or unimplemented read of port 0x2X%01x\n",offset);
return 0xff;
}
}
WRITE8_MEMBER(isa16_gus_device::board_w)
void isa16_gus_device::board_w(offs_t offset, uint8_t data)
{
switch(offset)
{
case 0x00:
case 0x01:
m_gf1->mix_ctrl_w(space,offset,data);
m_gf1->mix_ctrl_w(offset,data);
break;
case 0x06:
m_gf1->sb2x6_w(space,offset-6,data);
m_gf1->sb2x6_w(data);
break;
case 0x08:
case 0x09:
m_gf1->adlib_w(space,offset-8,data);
m_gf1->adlib_w(offset-8,data);
break;
case 0x0a:
case 0x0b:
m_gf1->adlib_cmd_w(space,offset-10,data);
m_gf1->adlib_cmd_w(offset-10,data);
break;
case 0x0c:
case 0x0d:
case 0x0e:
m_gf1->sb_w(space,offset-12,data);
m_gf1->sb_w(offset-12,data);
break;
case 0x0f:
m_gf1->stat_w(space,offset-15,data);
m_gf1->stat_w(data);
break;
default:
logerror("GUS: Invalid or unimplemented register write %02x of port 0x2X%01x\n",data,offset);
}
}
READ8_MEMBER(isa16_gus_device::synth_r)
uint8_t isa16_gus_device::synth_r(offs_t offset)
{
switch(offset)
{
@ -1386,20 +1383,20 @@ READ8_MEMBER(isa16_gus_device::synth_r)
return m_gf1->data_r();
case 0x02:
case 0x03:
return m_gf1->global_reg_select_r(space,offset-2);
return m_gf1->global_reg_select_r(offset-2);
case 0x04:
case 0x05:
return m_gf1->global_reg_data_r(space,offset-4);
return m_gf1->global_reg_data_r(offset-4);
case 0x06:
case 0x07:
return m_gf1->dram_r(space,offset-6);
return m_gf1->dram_r(offset-6);
default:
logerror("GUS: Invalid or unimplemented register read of port 0x3X%01x\n",offset);
return 0xff;
}
}
WRITE8_MEMBER(isa16_gus_device::synth_w)
void isa16_gus_device::synth_w(offs_t offset, uint8_t data)
{
switch(offset)
{
@ -1411,32 +1408,32 @@ WRITE8_MEMBER(isa16_gus_device::synth_w)
break;
case 0x02:
case 0x03:
m_gf1->global_reg_select_w(space,offset-2,data);
m_gf1->global_reg_select_w(offset-2,data);
break;
case 0x04:
case 0x05:
m_gf1->global_reg_data_w(space,offset-4,data);
m_gf1->global_reg_data_w(offset-4,data);
break;
case 0x06:
case 0x07:
m_gf1->dram_w(space,offset-6,data);
m_gf1->dram_w(offset-6,data);
break;
default:
logerror("GUS: Invalid or unimplemented register write %02x of port 0x3X%01x\n",data,offset);
}
}
READ8_MEMBER(isa16_gus_device::adlib_r)
uint8_t isa16_gus_device::adlib_r(offs_t offset)
{
return m_gf1->adlib_r(space,offset);
return m_gf1->adlib_r(offset);
}
WRITE8_MEMBER(isa16_gus_device::adlib_w)
void isa16_gus_device::adlib_w(offs_t offset, uint8_t data)
{
m_gf1->adlib_w(space,offset,data);
m_gf1->adlib_w(offset,data);
}
READ8_MEMBER(isa16_gus_device::joy_r)
uint8_t isa16_gus_device::joy_r(offs_t offset)
{
if(offset == 1)
{
@ -1459,7 +1456,7 @@ READ8_MEMBER(isa16_gus_device::joy_r)
return 0xff;
}
WRITE8_MEMBER(isa16_gus_device::joy_w)
void isa16_gus_device::joy_w(offs_t offset, uint8_t data)
{
m_joy_time = machine().time();
}

View File

@ -98,23 +98,23 @@ public:
uint8_t dma_channel1() { return m_dma_channel1; }
uint8_t dma_channel2() { if(m_dma_combine == 0) return m_dma_channel2; else return m_dma_channel1; }
DECLARE_READ8_MEMBER(global_reg_select_r);
DECLARE_WRITE8_MEMBER(global_reg_select_w);
DECLARE_READ8_MEMBER(global_reg_data_r);
DECLARE_WRITE8_MEMBER(global_reg_data_w);
DECLARE_READ8_MEMBER(dram_r);
DECLARE_WRITE8_MEMBER(dram_w);
DECLARE_READ8_MEMBER(adlib_r);
DECLARE_WRITE8_MEMBER(adlib_w);
DECLARE_READ8_MEMBER(adlib_cmd_r);
DECLARE_WRITE8_MEMBER(adlib_cmd_w);
DECLARE_READ8_MEMBER(mix_ctrl_r);
DECLARE_WRITE8_MEMBER(mix_ctrl_w);
DECLARE_READ8_MEMBER(stat_r);
DECLARE_WRITE8_MEMBER(stat_w);
DECLARE_READ8_MEMBER(sb_r);
DECLARE_WRITE8_MEMBER(sb_w);
DECLARE_WRITE8_MEMBER(sb2x6_w);
uint8_t global_reg_select_r(offs_t offset);
void global_reg_select_w(offs_t offset, uint8_t data);
uint8_t global_reg_data_r(offs_t offset);
void global_reg_data_w(offs_t offset, uint8_t data);
uint8_t dram_r(offs_t offset);
void dram_w(offs_t offset, uint8_t data);
uint8_t adlib_r(offs_t offset);
void adlib_w(offs_t offset, uint8_t data);
uint8_t adlib_cmd_r(offs_t offset);
void adlib_cmd_w(offs_t offset, uint8_t data);
uint8_t mix_ctrl_r(offs_t offset);
void mix_ctrl_w(offs_t offset, uint8_t data);
uint8_t stat_r();
void stat_w(uint8_t data);
uint8_t sb_r(offs_t offset);
void sb_w(offs_t offset, uint8_t data);
void sb2x6_w(uint8_t data);
// DMA signals
uint8_t dack_r(int line);
@ -231,14 +231,14 @@ public:
void set_midi_irq(uint8_t source);
void reset_midi_irq(uint8_t source);
DECLARE_READ8_MEMBER(board_r);
DECLARE_READ8_MEMBER(synth_r);
DECLARE_WRITE8_MEMBER(board_w);
DECLARE_WRITE8_MEMBER(synth_w);
DECLARE_READ8_MEMBER(adlib_r);
DECLARE_WRITE8_MEMBER(adlib_w);
DECLARE_READ8_MEMBER(joy_r);
DECLARE_WRITE8_MEMBER(joy_w);
uint8_t board_r(offs_t offset);
uint8_t synth_r(offs_t offset);
void board_w(offs_t offset, uint8_t data);
void synth_w(offs_t offset, uint8_t data);
uint8_t adlib_r(offs_t offset);
void adlib_w(offs_t offset, uint8_t data);
uint8_t joy_r(offs_t offset);
void joy_w(offs_t offset, uint8_t data);
// DMA overrides
virtual uint8_t dack_r(int line) override;

View File

@ -987,7 +987,7 @@ isa8_hdc_ec1841_device::isa8_hdc_ec1841_device(const machine_config &mconfig, co
void isa8_hdc_device::device_start()
{
set_isa_device();
m_isa->install_device(0x0320, 0x0323, read8_delegate(*this, FUNC(isa8_hdc_device::pc_hdc_r)), write8_delegate(*this, FUNC(isa8_hdc_device::pc_hdc_w)));
m_isa->install_device(0x0320, 0x0323, read8sm_delegate(*this, FUNC(isa8_hdc_device::pc_hdc_r)), write8sm_delegate(*this, FUNC(isa8_hdc_device::pc_hdc_w)));
m_isa->set_dma_channel(3, this, false);
}
@ -1009,7 +1009,7 @@ void isa8_hdc_device::device_reset()
* hard disk controller
*
*************************************************************************/
READ8_MEMBER( isa8_hdc_device::pc_hdc_r )
uint8_t isa8_hdc_device::pc_hdc_r(offs_t offset)
{
uint8_t data = 0xff;
@ -1027,7 +1027,7 @@ READ8_MEMBER( isa8_hdc_device::pc_hdc_r )
return data;
}
WRITE8_MEMBER( isa8_hdc_device::pc_hdc_w )
void isa8_hdc_device::pc_hdc_w(offs_t offset, uint8_t data)
{
if (LOG_HDC_CALL)
logerror("%s pc_hdc_w(): offs=%d data=0x%02x\n", machine().describe_context(), offset, data);

View File

@ -142,8 +142,8 @@ public:
// construction/destruction
isa8_hdc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
DECLARE_READ8_MEMBER(pc_hdc_r);
DECLARE_WRITE8_MEMBER(pc_hdc_w);
uint8_t pc_hdc_r(offs_t offset);
void pc_hdc_w(offs_t offset, uint8_t data);
required_device<xt_hdc_device> m_hdc;
protected:

View File

@ -273,7 +273,7 @@ WRITE_LINE_MEMBER(isa8_ibm_mfc_device::ibm_mfc_ym_irq)
// ISA interface
//-------------------------------------------------
READ8_MEMBER( isa8_ibm_mfc_device::ibm_mfc_r )
uint8_t isa8_ibm_mfc_device::ibm_mfc_r(offs_t offset)
{
uint8_t val;
@ -306,7 +306,7 @@ READ8_MEMBER( isa8_ibm_mfc_device::ibm_mfc_r )
return val;
}
WRITE8_MEMBER( isa8_ibm_mfc_device::ibm_mfc_w )
void isa8_ibm_mfc_device::ibm_mfc_w(offs_t offset, uint8_t data)
{
switch (offset)
{
@ -462,7 +462,7 @@ isa8_ibm_mfc_device::isa8_ibm_mfc_device(const machine_config &mconfig, const ch
void isa8_ibm_mfc_device::device_start()
{
set_isa_device();
m_isa->install_device(0x2a20, 0x2a20 + 15, read8_delegate(*this, FUNC(isa8_ibm_mfc_device::ibm_mfc_r)), write8_delegate(*this, FUNC(isa8_ibm_mfc_device::ibm_mfc_w)));
m_isa->install_device(0x2a20, 0x2a20 + 15, read8sm_delegate(*this, FUNC(isa8_ibm_mfc_device::ibm_mfc_r)), write8sm_delegate(*this, FUNC(isa8_ibm_mfc_device::ibm_mfc_w)));
}

View File

@ -59,8 +59,8 @@ private:
DECLARE_WRITE_LINE_MEMBER( ibm_mfc_ym_irq );
DECLARE_READ8_MEMBER( ibm_mfc_r );
DECLARE_WRITE8_MEMBER( ibm_mfc_w );
uint8_t ibm_mfc_r(offs_t offset);
void ibm_mfc_w(offs_t offset, uint8_t data);
void io_map(address_map &map);
void prg_map(address_map &map);

View File

@ -15,12 +15,12 @@
#include "speaker.h"
READ8_MEMBER(isa16_ide_device::ide16_alt_r )
uint8_t isa16_ide_device::ide16_alt_r()
{
return m_ide->read_cs1(6/2, 0xff);
}
WRITE8_MEMBER(isa16_ide_device::ide16_alt_w )
void isa16_ide_device::ide16_alt_w(uint8_t data)
{
m_ide->write_cs1(6/2, data, 0xff);
}

View File

@ -34,8 +34,8 @@ protected:
private:
DECLARE_WRITE_LINE_MEMBER(ide_interrupt);
READ8_MEMBER(ide16_alt_r);
WRITE8_MEMBER(ide16_alt_w);
uint8_t ide16_alt_r();
void ide16_alt_w(uint8_t data);
bool is_primary() { return m_is_primary; }
void map(address_map &map);

View File

@ -152,22 +152,22 @@ device_memory_interface::space_config_vector isa16_device::memory_space_config()
};
}
READ8_MEMBER(isa8_device::mem_r)
uint8_t isa8_device::mem_r(offs_t offset)
{
return m_memspace->read_byte(offset);
}
WRITE8_MEMBER(isa8_device::mem_w)
void isa8_device::mem_w(offs_t offset, uint8_t data)
{
m_memspace->write_byte(offset, data);
}
READ8_MEMBER(isa8_device::io_r)
uint8_t isa8_device::io_r(offs_t offset)
{
return m_iospace->read_byte(offset);
}
WRITE8_MEMBER(isa8_device::io_w)
void isa8_device::io_w(offs_t offset, uint8_t data)
{
m_iospace->write_byte(offset, data);
}
@ -545,27 +545,54 @@ void isa16_device::install16_device(offs_t start, offs_t end, read16_delegate rh
}
}
READ16_MEMBER(isa16_device::mem16_r)
void isa16_device::install16_device(offs_t start, offs_t end, read16s_delegate rhandler, write16s_delegate whandler)
{
int buswidth = m_iowidth;
switch(buswidth)
{
case 16:
m_iospace->install_readwrite_handler(start, end, rhandler, whandler, 0);
break;
case 32:
m_iospace->install_readwrite_handler(start, end, rhandler, whandler, 0xffffffff);
if ((start % 4) == 0) {
if ((end-start)==1) {
m_iospace->install_readwrite_handler(start, end+2, rhandler, whandler, 0x0000ffff);
} else {
m_iospace->install_readwrite_handler(start, end, rhandler, whandler, 0xffffffff);
}
} else {
// we handle just misalligned by 2
m_iospace->install_readwrite_handler(start-2, end, rhandler, whandler, 0xffff0000);
}
break;
default:
fatalerror("ISA16: Bus width %d not supported\n", buswidth);
}
}
uint16_t isa16_device::mem16_r(offs_t offset, uint16_t mem_mask)
{
return m_memspace->read_word(offset<<1, mem_mask);
}
WRITE16_MEMBER(isa16_device::mem16_w)
void isa16_device::mem16_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
m_memspace->write_word(offset<<1, data, mem_mask);
}
READ16_MEMBER(isa16_device::io16_r)
uint16_t isa16_device::io16_r(offs_t offset, uint16_t mem_mask)
{
return m_iospace->read_word(offset<<1, mem_mask);
}
WRITE16_MEMBER(isa16_device::io16_w)
void isa16_device::io16_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
m_iospace->write_word(offset<<1, data, mem_mask);
}
READ16_MEMBER(isa16_device::mem16_swap_r)
uint16_t isa16_device::mem16_swap_r(offs_t offset, uint16_t mem_mask)
{
uint16_t rv;
mem_mask = (mem_mask<<8) | (mem_mask>>8);
@ -575,14 +602,14 @@ READ16_MEMBER(isa16_device::mem16_swap_r)
return (rv<<8) | (rv>>8);
}
WRITE16_MEMBER(isa16_device::mem16_swap_w)
void isa16_device::mem16_swap_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
mem_mask = (mem_mask<<8) | (mem_mask>>8);
data = (data<<8) | (data>>8);
m_memspace->write_word(offset<<1, data, mem_mask);
}
READ16_MEMBER(isa16_device::io16_swap_r)
uint16_t isa16_device::io16_swap_r(offs_t offset, uint16_t mem_mask)
{
uint16_t rv;
mem_mask = (mem_mask<<8) | (mem_mask>>8);
@ -592,7 +619,7 @@ READ16_MEMBER(isa16_device::io16_swap_r)
return (rv<<8) | (rv>>8);
}
WRITE16_MEMBER(isa16_device::io16_swap_w)
void isa16_device::io16_swap_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
mem_mask = (mem_mask<<8) | (mem_mask>>8);
data = (data<<8) | (data>>8);

View File

@ -173,10 +173,10 @@ public:
DECLARE_WRITE_LINE_MEMBER( drq3_w );
// 8 bit accessors for ISA-defined address spaces
DECLARE_READ8_MEMBER(mem_r);
DECLARE_WRITE8_MEMBER(mem_w);
DECLARE_READ8_MEMBER(io_r);
DECLARE_WRITE8_MEMBER(io_w);
uint8_t mem_r(offs_t offset);
void mem_w(offs_t offset, uint8_t data);
uint8_t io_r(offs_t offset);
void io_w(offs_t offset, uint8_t data);
uint8_t dack_r(int line);
void dack_w(int line, uint8_t data);
@ -313,6 +313,7 @@ public:
auto drq7_callback() { return m_out_drq7_cb.bind(); }
void install16_device(offs_t start, offs_t end, read16_delegate rhandler, write16_delegate whandler);
void install16_device(offs_t start, offs_t end, read16s_delegate rhandler, write16s_delegate whandler);
// for ISA16, put the 16-bit configs in the primary slots and the 8-bit configs in the secondary
virtual space_config_vector memory_space_config() const override;
@ -333,15 +334,15 @@ public:
virtual void remap(int space_id, offs_t start, offs_t end) override;
// 16 bit accessors for ISA-defined address spaces
DECLARE_READ16_MEMBER(mem16_r);
DECLARE_WRITE16_MEMBER(mem16_w);
DECLARE_READ16_MEMBER(io16_r);
DECLARE_WRITE16_MEMBER(io16_w);
uint16_t mem16_r(offs_t offset, uint16_t mem_mask = 0xffff);
void mem16_w(offs_t offset, uint16_t data, uint16_t mem_mask = 0xffff);
uint16_t io16_r(offs_t offset, uint16_t mem_mask = 0xffff);
void io16_w(offs_t offset, uint16_t data, uint16_t mem_mask = 0xffff);
// byte-swapped versions of 16-bit accessors
DECLARE_READ16_MEMBER(mem16_swap_r);
DECLARE_WRITE16_MEMBER(mem16_swap_w);
DECLARE_READ16_MEMBER(io16_swap_r);
DECLARE_WRITE16_MEMBER(io16_swap_w);
uint16_t mem16_swap_r(offs_t offset, uint16_t mem_mask = 0xffff);
void mem16_swap_w(offs_t offset, uint16_t data, uint16_t mem_mask = 0xffff);
uint16_t io16_swap_r(offs_t offset, uint16_t mem_mask = 0xffff);
void io16_swap_w(offs_t offset, uint16_t data, uint16_t mem_mask = 0xffff);
protected:
// device-level overrides

View File

@ -140,7 +140,7 @@ WRITE_LINE_MEMBER(mc1502_fdc_device::mc1502_fdc_irq_drq)
m_isa->set_ready(CLEAR_LINE); // deassert I/O CH RDY
}
READ8_MEMBER(mc1502_fdc_device::mc1502_fdc_r)
uint8_t mc1502_fdc_device::mc1502_fdc_r(offs_t offset)
{
uint8_t data = 0xff;
@ -160,7 +160,7 @@ READ8_MEMBER(mc1502_fdc_device::mc1502_fdc_r)
return data;
}
READ8_MEMBER(mc1502_fdc_device::mc1502_fdcv2_r)
uint8_t mc1502_fdc_device::mc1502_fdcv2_r(offs_t offset)
{
uint8_t data = 0xff;
@ -180,7 +180,7 @@ READ8_MEMBER(mc1502_fdc_device::mc1502_fdcv2_r)
return data;
}
WRITE8_MEMBER(mc1502_fdc_device::mc1502_fdc_w)
void mc1502_fdc_device::mc1502_fdc_w(offs_t offset, uint8_t data)
{
switch (offset)
{
@ -215,11 +215,11 @@ void mc1502_fdc_device::device_start()
// BIOS 5.0-5.2x
m_isa->install_device(0x010c, 0x010f, read8sm_delegate(*m_fdc, FUNC(fd1793_device::read)), write8sm_delegate(*m_fdc, FUNC(fd1793_device::write)));
m_isa->install_device(0x0100, 0x010b, read8_delegate(*this, FUNC(mc1502_fdc_device::mc1502_fdc_r)), write8_delegate(*this, FUNC(mc1502_fdc_device::mc1502_fdc_w)));
m_isa->install_device(0x0100, 0x010b, read8sm_delegate(*this, FUNC(mc1502_fdc_device::mc1502_fdc_r)), write8sm_delegate(*this, FUNC(mc1502_fdc_device::mc1502_fdc_w)));
// BIOS 5.3x
m_isa->install_device(0x0048, 0x004b, read8sm_delegate(*m_fdc, FUNC(fd1793_device::read)), write8sm_delegate(*m_fdc, FUNC(fd1793_device::write)));
m_isa->install_device(0x004c, 0x004f, read8_delegate(*this, FUNC(mc1502_fdc_device::mc1502_fdcv2_r)), write8_delegate(*this, FUNC(mc1502_fdc_device::mc1502_fdc_w)));
m_isa->install_device(0x004c, 0x004f, read8sm_delegate(*this, FUNC(mc1502_fdc_device::mc1502_fdcv2_r)), write8sm_delegate(*this, FUNC(mc1502_fdc_device::mc1502_fdc_w)));
motor_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(mc1502_fdc_device::motor_callback),this));
motor_on = 0;

View File

@ -32,9 +32,9 @@ public:
TIMER_CALLBACK_MEMBER(motor_callback);
DECLARE_READ8_MEMBER(mc1502_fdc_r);
DECLARE_READ8_MEMBER(mc1502_fdcv2_r);
DECLARE_WRITE8_MEMBER(mc1502_fdc_w);
uint8_t mc1502_fdc_r(offs_t offset);
uint8_t mc1502_fdcv2_r(offs_t offset);
void mc1502_fdc_w(offs_t offset, uint8_t data);
protected:
// device-level overrides

View File

@ -106,9 +106,10 @@ bool mcd_isa_device::read_sector(bool first)
return true;
}
READ8_MEMBER(mcd_isa_device::flag_r)
uint8_t mcd_isa_device::flag_r()
{
uint8_t ret = 0;
if (!machine().side_effects_disabled())
m_isa->irq5_w(CLEAR_LINE);
if(!m_buf_count || !m_data || m_dma) // if dma enabled the cpu will never not see that flag as it will be halted
ret |= FLAG_NODATA;
@ -117,19 +118,28 @@ READ8_MEMBER(mcd_isa_device::flag_r)
return ret | FLAG_UNK;
}
READ8_MEMBER(mcd_isa_device::data_r)
uint8_t mcd_isa_device::data_r()
{
if(m_cmdbuf_count)
{
if(machine().side_effects_disabled())
return m_cmdbuf[m_cmdbuf_idx];
else
{
m_cmdbuf_count--;
return m_cmdbuf[m_cmdbuf_idx++];
}
}
else if(m_buf_count)
{
uint8_t ret = m_buf_idx < 2352 ? m_buf[m_buf_idx++] : 0;
uint8_t ret = m_buf_idx < 2352 ? m_buf[m_buf_idx] : 0;
if(!machine().side_effects_disabled())
{
m_buf_idx++;
m_buf_count--;
if(!m_buf_count)
read_sector();
}
return ret;
}
return m_stat;
@ -153,12 +163,12 @@ uint16_t mcd_isa_device::dack16_r(int line)
return 0;
}
WRITE8_MEMBER(mcd_isa_device::reset_w)
void mcd_isa_device::reset_w(uint8_t data)
{
reset();
}
WRITE8_MEMBER(mcd_isa_device::cmd_w)
void mcd_isa_device::cmd_w(uint8_t data)
{
if(m_cmdrd_count)
{

View File

@ -33,10 +33,10 @@ protected:
virtual void device_reset() override;
private:
DECLARE_READ8_MEMBER(data_r);
DECLARE_READ8_MEMBER(flag_r);
DECLARE_WRITE8_MEMBER(cmd_w);
DECLARE_WRITE8_MEMBER(reset_w);
uint8_t data_r();
uint8_t flag_r();
void cmd_w(uint8_t data);
void reset_w(uint8_t data);
void map(address_map &map);

View File

@ -182,7 +182,7 @@ void isa8_mda_device::device_start()
set_isa_device();
m_videoram.resize(0x1000);
m_isa->install_device(0x3b0, 0x3bf, read8_delegate(*this, FUNC(isa8_mda_device::io_read)), write8_delegate(*this, FUNC(isa8_mda_device::io_write)));
m_isa->install_device(0x3b0, 0x3bf, read8sm_delegate(*this, FUNC(isa8_mda_device::io_read)), write8sm_delegate(*this, FUNC(isa8_mda_device::io_write)));
m_isa->install_bank(0xb0000, 0xb0fff, "bank_mda", &m_videoram[0]);
m_isa->install_bank(0xb1000, 0xb1fff, "bank_mda", &m_videoram[0]);
m_isa->install_bank(0xb2000, 0xb2fff, "bank_mda", &m_videoram[0]);
@ -424,7 +424,7 @@ WRITE_LINE_MEMBER( isa8_mda_device::vsync_changed )
/*
* rW MDA mode control register (see #P138)
*/
WRITE8_MEMBER( isa8_mda_device::mode_control_w )
void isa8_mda_device::mode_control_w(uint8_t data)
{
m_mode_control = data;
@ -453,9 +453,10 @@ WRITE8_MEMBER( isa8_mda_device::mode_control_w )
* 2-1 reserved
* 0 horizontal drive enable
*/
READ8_MEMBER( isa8_mda_device::status_r )
uint8_t isa8_mda_device::status_r()
{
// Faking pixel stream here
if (!machine().side_effects_disabled())
m_pixel++;
return 0xF0 | (m_pixel & 0x08) | m_hsync;
@ -468,7 +469,7 @@ READ8_MEMBER( isa8_mda_device::status_r )
* monochrome display adapter
*
*************************************************************************/
WRITE8_MEMBER( isa8_mda_device::io_write )
void isa8_mda_device::io_write(offs_t offset, uint8_t data)
{
switch( offset )
{
@ -479,7 +480,7 @@ WRITE8_MEMBER( isa8_mda_device::io_write )
m_crtc->register_w(data);
break;
case 0x08:
mode_control_w(space, offset, data);
mode_control_w(data);
break;
case 0x0c: case 0x0d: case 0x0e:
m_lpt->write(offset - 0x0c, data);
@ -487,7 +488,7 @@ WRITE8_MEMBER( isa8_mda_device::io_write )
}
}
READ8_MEMBER( isa8_mda_device::io_read )
uint8_t isa8_mda_device::io_read(offs_t offset)
{
int data = 0xff;
switch( offset )
@ -499,7 +500,7 @@ READ8_MEMBER( isa8_mda_device::io_read )
data = m_crtc->register_r();
break;
case 0x0a:
data = status_r(space, offset);
data = status_r();
break;
/* LPT ports */
case 0x0c: case 0x0d: case 0x0e:
@ -601,7 +602,7 @@ void isa8_hercules_device::device_start()
m_videoram.resize(0x10000);
set_isa_device();
m_isa->install_device(0x3b0, 0x3bf, read8_delegate(*this, FUNC(isa8_hercules_device::io_read)), write8_delegate(*this, FUNC(isa8_hercules_device::io_write)));
m_isa->install_device(0x3b0, 0x3bf, read8sm_delegate(*this, FUNC(isa8_hercules_device::io_read)), write8sm_delegate(*this, FUNC(isa8_hercules_device::io_write)));
m_isa->install_bank(0xb0000, 0xbffff, "bank_hercules", &m_videoram[0]);
/* Initialise the mda palette */
@ -662,7 +663,7 @@ MC6845_UPDATE_ROW( isa8_hercules_device::hercules_gfx_update_row )
}
WRITE8_MEMBER( isa8_hercules_device::mode_control_w )
void isa8_hercules_device::mode_control_w(uint8_t data)
{
m_mode_control = data;
@ -687,7 +688,7 @@ WRITE8_MEMBER( isa8_hercules_device::mode_control_w )
}
WRITE8_MEMBER( isa8_hercules_device::io_write )
void isa8_hercules_device::io_write(offs_t offset, uint8_t data)
{
switch( offset )
{
@ -698,7 +699,7 @@ WRITE8_MEMBER( isa8_hercules_device::io_write )
m_crtc->register_w(data);
break;
case 0x08:
mode_control_w(space, offset, data);
mode_control_w(data);
break;
case 0x0c: case 0x0d: case 0x0e:
m_lpt->write(offset - 12, data);
@ -721,16 +722,17 @@ WRITE8_MEMBER( isa8_hercules_device::io_write )
* 2-1 reserved
* 0 horizontal drive enable
*/
READ8_MEMBER( isa8_hercules_device::status_r )
uint8_t isa8_hercules_device::status_r()
{
// Faking pixel stream here
if (!machine().side_effects_disabled())
m_pixel++;
return m_vsync | ( m_pixel & 0x08 ) | m_hsync;
}
READ8_MEMBER( isa8_hercules_device::io_read )
uint8_t isa8_hercules_device::io_read(offs_t offset)
{
int data = 0xff;
switch( offset )
@ -742,7 +744,7 @@ READ8_MEMBER( isa8_hercules_device::io_read )
data = m_crtc->register_r();
break;
case 0x0a:
data = status_r(space, offset);
data = status_r();
break;
/* LPT ports */
case 0xc: case 0xd: case 0xe:
@ -943,7 +945,7 @@ MC6845_UPDATE_ROW( isa8_ec1840_0002_device::mda_lowres_text_blink_update_row )
}
}
WRITE8_MEMBER( isa8_ec1840_0002_device::mode_control_w )
void isa8_ec1840_0002_device::mode_control_w(uint8_t data)
{
m_mode_control = data;

View File

@ -26,10 +26,10 @@ public:
// construction/destruction
isa8_mda_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
virtual DECLARE_READ8_MEMBER(io_read);
virtual DECLARE_WRITE8_MEMBER(io_write);
virtual DECLARE_READ8_MEMBER(status_r);
virtual DECLARE_WRITE8_MEMBER(mode_control_w);
virtual uint8_t io_read(offs_t offset);
virtual void io_write(offs_t offset, uint8_t data);
virtual uint8_t status_r();
virtual void mode_control_w(uint8_t data);
DECLARE_WRITE_LINE_MEMBER(hsync_changed);
DECLARE_WRITE_LINE_MEMBER(vsync_changed);
@ -83,10 +83,10 @@ public:
// construction/destruction
isa8_hercules_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
virtual DECLARE_READ8_MEMBER(io_read) override;
virtual DECLARE_WRITE8_MEMBER(io_write) override;
virtual DECLARE_READ8_MEMBER(status_r) override;
virtual DECLARE_WRITE8_MEMBER(mode_control_w) override;
virtual uint8_t io_read(offs_t offset) override;
virtual void io_write(offs_t offset, uint8_t data) override;
virtual uint8_t status_r() override;
virtual void mode_control_w(uint8_t data) override;
protected:
// device-level overrides
@ -126,7 +126,7 @@ protected:
virtual void device_add_mconfig(machine_config &config) override;
private:
virtual DECLARE_WRITE8_MEMBER(mode_control_w) override;
virtual void mode_control_w(uint8_t data) override;
virtual MC6845_UPDATE_ROW( crtc_update_row ) override;
MC6845_UPDATE_ROW( mda_lowres_text_inten_update_row );

View File

@ -107,8 +107,8 @@ void isa8_myb3k_com_device::device_reset()
write8sm_delegate(*m_usart, FUNC(i8251_device::write)));
m_isa->install_device(base + 2, base + 2,
read8_delegate(*this, FUNC(isa8_myb3k_com_device::dce_status)),
write8_delegate(*this, FUNC(isa8_myb3k_com_device::dce_control)));
read8smo_delegate(*this, FUNC(isa8_myb3k_com_device::dce_status)),
write8smo_delegate(*this, FUNC(isa8_myb3k_com_device::dce_control)));
m_isa->install_device(base + 4, base + 7,
read8sm_delegate(*subdevice<pit8253_device>("pit"), FUNC(pit8253_device::read)),
@ -234,7 +234,7 @@ WRITE_LINE_MEMBER(isa8_myb3k_com_device::ri_w)
// dce_control -
//------------------------------------------------
#define TX_IRQ_RESET_BIT 0x40
WRITE8_MEMBER(isa8_myb3k_com_device::dce_control)
void isa8_myb3k_com_device::dce_control(uint8_t data)
{
m_control = data;
if (m_control & TX_IRQ_RESET_BIT)
@ -247,7 +247,7 @@ WRITE8_MEMBER(isa8_myb3k_com_device::dce_control)
//------------------------------------------------
// dce_status - open LS368 gate and read status
//------------------------------------------------
READ8_MEMBER(isa8_myb3k_com_device::dce_status)
uint8_t isa8_myb3k_com_device::dce_status()
{
return m_status;
}

View File

@ -47,8 +47,8 @@ public:
DECLARE_WRITE_LINE_MEMBER(com_int_tx);
DECLARE_WRITE_LINE_MEMBER(dcd_w);
DECLARE_WRITE_LINE_MEMBER(ri_w);
DECLARE_WRITE8_MEMBER(dce_control);
DECLARE_READ8_MEMBER(dce_status);
void dce_control(uint8_t data);
uint8_t dce_status();
protected:
isa8_myb3k_com_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);

View File

@ -227,7 +227,7 @@ void isa8_myb3k_fdc471x_device_base::eop_w(int state)
//--------------------------------------------------------
// myb3k_inv_fdc_data_r - a LS240 inverts databus for FDC
//--------------------------------------------------------
READ8_MEMBER( isa8_myb3k_fdc471x_device_base::myb3k_inv_fdc_data_r )
uint8_t isa8_myb3k_fdc471x_device_base::myb3k_inv_fdc_data_r(offs_t offset)
{
uint8_t tmp = m_fdc->read(offset);
LOGR("%s: %02x -> %02x\n", FUNCNAME, tmp, (~tmp) & 0xff);
@ -237,7 +237,7 @@ READ8_MEMBER( isa8_myb3k_fdc471x_device_base::myb3k_inv_fdc_data_r )
//--------------------------------------------------------
// myb3k_inv_fdc_data_w - a LS240 inverts databus for FDC
//--------------------------------------------------------
WRITE8_MEMBER( isa8_myb3k_fdc471x_device_base::myb3k_inv_fdc_data_w )
void isa8_myb3k_fdc471x_device_base::myb3k_inv_fdc_data_w(offs_t offset, uint8_t data)
{
LOG("%s: %02x -> %02x\n", FUNCNAME, data, (~data) & 0xff);
m_fdc->write(offset, (~data) & 0xff);
@ -247,7 +247,7 @@ WRITE8_MEMBER( isa8_myb3k_fdc471x_device_base::myb3k_inv_fdc_data_w )
// myb3k_fdc_command - descrete fdc card features
//-------------------------------------------------
WRITE8_MEMBER( isa8_myb3k_fdc471x_device_base::myb3k_fdc_command )
void isa8_myb3k_fdc471x_device_base::myb3k_fdc_command(uint8_t data)
{
LOG("%s: %02x\n", FUNCNAME, data);
@ -282,10 +282,10 @@ WRITE8_MEMBER( isa8_myb3k_fdc471x_device_base::myb3k_fdc_command )
m_fdc->dden_w(dden ? 0 : 1); // active low == MFM
}
WRITE8_MEMBER( isa8_myb3k_fdc4712_device::myb3k_fdc_command )
void isa8_myb3k_fdc4712_device::myb3k_fdc_command(uint8_t data)
{
selected_drive = data & FDC_DRIVE_SEL;
isa8_myb3k_fdc471x_device_base::myb3k_fdc_command(space, offset, data, mem_mask);
isa8_myb3k_fdc471x_device_base::myb3k_fdc_command(data);
}
//-------------------------------------------------
@ -293,7 +293,7 @@ WRITE8_MEMBER( isa8_myb3k_fdc4712_device::myb3k_fdc_command )
//-------------------------------------------------
#define FDC_MSM_END_IR 0x01
READ8_MEMBER( isa8_myb3k_fdc471x_device_base::myb3k_fdc_status )
uint8_t isa8_myb3k_fdc471x_device_base::myb3k_fdc_status()
{
LOG("%s\n", FUNCNAME);
@ -301,9 +301,9 @@ READ8_MEMBER( isa8_myb3k_fdc471x_device_base::myb3k_fdc_status )
return 0x00;
}
READ8_MEMBER( isa8_myb3k_fdc4712_device::myb3k_fdc_status )
uint8_t isa8_myb3k_fdc4712_device::myb3k_fdc_status()
{
uint8_t status = isa8_myb3k_fdc471x_device_base::myb3k_fdc_status(space, offset, mem_mask);
uint8_t status = isa8_myb3k_fdc471x_device_base::myb3k_fdc_status();
auto floppy_connector = m_floppy_connectors[selected_drive];
floppy_image_device *floppy = nullptr;

View File

@ -33,10 +33,10 @@ protected:
virtual void dack_w(int line, uint8_t data) override;
// virtual void eop_w(int state) override;
virtual DECLARE_READ8_MEMBER(myb3k_inv_fdc_data_r);
virtual DECLARE_WRITE8_MEMBER(myb3k_inv_fdc_data_w);
virtual DECLARE_READ8_MEMBER(myb3k_fdc_status);
virtual DECLARE_WRITE8_MEMBER(myb3k_fdc_command);
virtual uint8_t myb3k_inv_fdc_data_r(offs_t offset);
virtual void myb3k_inv_fdc_data_w(offs_t offset, uint8_t data);
virtual uint8_t myb3k_fdc_status();
virtual void myb3k_fdc_command(uint8_t data);
DECLARE_WRITE_LINE_MEMBER( irq_w );
DECLARE_WRITE_LINE_MEMBER( drq_w );
@ -110,8 +110,8 @@ protected:
// device-level overrides
virtual void device_add_mconfig(machine_config &config) override;
virtual DECLARE_WRITE8_MEMBER(myb3k_fdc_command) override;
virtual DECLARE_READ8_MEMBER(myb3k_fdc_status) override;
virtual void myb3k_fdc_command(uint8_t data) override;
virtual uint8_t myb3k_fdc_status() override;
uint8_t selected_drive;

View File

@ -31,7 +31,7 @@ void ne1000_device::device_start() {
memcpy(m_prom, mac, 6);
m_dp8390->set_mac(mac);
set_isa_device();
m_isa->install_device(0x0300, 0x031f, read8_delegate(*this, FUNC(ne1000_device::ne1000_port_r)), write8_delegate(*this, FUNC(ne1000_device::ne1000_port_w)));
m_isa->install_device(0x0300, 0x031f, read8sm_delegate(*this, FUNC(ne1000_device::ne1000_port_r)), write8sm_delegate(*this, FUNC(ne1000_device::ne1000_port_w)));
}
void ne1000_device::device_reset() {
@ -39,7 +39,7 @@ void ne1000_device::device_reset() {
m_irq = ioport("CONFIG")->read() & 3;
}
READ8_MEMBER(ne1000_device::ne1000_port_r) {
uint8_t ne1000_device::ne1000_port_r(offs_t offset) {
if(offset < 16) {
m_dp8390->dp8390_cs(CLEAR_LINE);
return m_dp8390->dp8390_r(offset);
@ -57,7 +57,7 @@ READ8_MEMBER(ne1000_device::ne1000_port_r) {
return 0;
}
WRITE8_MEMBER(ne1000_device::ne1000_port_w) {
void ne1000_device::ne1000_port_w(offs_t offset, uint8_t data) {
if(offset < 16) {
m_dp8390->dp8390_cs(CLEAR_LINE);
m_dp8390->dp8390_w(offset, data);

View File

@ -16,8 +16,8 @@ class ne1000_device: public device_t,
public:
ne1000_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
DECLARE_READ8_MEMBER(ne1000_port_r);
DECLARE_WRITE8_MEMBER(ne1000_port_w);
uint8_t ne1000_port_r(offs_t offset);
void ne1000_port_w(offs_t offset, uint8_t data);
protected:
virtual void device_start() override;

View File

@ -95,12 +95,12 @@ void isa8_number_9_rev_device::device_start()
set_isa_device();
m_isa->install_memory(0xc0000, 0xc0001, read8sm_delegate(*m_upd7220, FUNC(upd7220_device::read)), write8sm_delegate(*m_upd7220, FUNC(upd7220_device::write)));
m_isa->install_memory(0xc0100, 0xc03ff, read8_delegate(*this, FUNC(isa8_number_9_rev_device::pal8_r)), write8_delegate(*this, FUNC(isa8_number_9_rev_device::pal8_w)));
m_isa->install_memory(0xc0400, 0xc0401, read8_delegate(*this, FUNC(isa8_number_9_rev_device::bank_r)), write8_delegate(*this, FUNC(isa8_number_9_rev_device::bank_w)));
m_isa->install_memory(0xc0500, 0xc06ff, read8_delegate(*this, FUNC(isa8_number_9_rev_device::overlay_r)), write8_delegate(*this, FUNC(isa8_number_9_rev_device::overlay_w)));
m_isa->install_memory(0xc0700, 0xc070f, read8_delegate(*this, FUNC(isa8_number_9_rev_device::ctrl_r)), write8_delegate(*this, FUNC(isa8_number_9_rev_device::ctrl_w)));
m_isa->install_memory(0xc1000, 0xc3fff, read8_delegate(*this, FUNC(isa8_number_9_rev_device::pal12_r)), write8_delegate(*this, FUNC(isa8_number_9_rev_device::pal12_w)));
m_isa->install_memory(0xa0000, 0xaffff, read8_delegate(*this, FUNC(isa8_number_9_rev_device::read8)), write8_delegate(*this, FUNC(isa8_number_9_rev_device::write8)));
m_isa->install_memory(0xc0100, 0xc03ff, read8sm_delegate(*this, FUNC(isa8_number_9_rev_device::pal8_r)), write8sm_delegate(*this, FUNC(isa8_number_9_rev_device::pal8_w)));
m_isa->install_memory(0xc0400, 0xc0401, read8smo_delegate(*this, FUNC(isa8_number_9_rev_device::bank_r)), write8smo_delegate(*this, FUNC(isa8_number_9_rev_device::bank_w)));
m_isa->install_memory(0xc0500, 0xc06ff, read8sm_delegate(*this, FUNC(isa8_number_9_rev_device::overlay_r)), write8sm_delegate(*this, FUNC(isa8_number_9_rev_device::overlay_w)));
m_isa->install_memory(0xc0700, 0xc070f, read8sm_delegate(*this, FUNC(isa8_number_9_rev_device::ctrl_r)), write8sm_delegate(*this, FUNC(isa8_number_9_rev_device::ctrl_w)));
m_isa->install_memory(0xc1000, 0xc3fff, read8sm_delegate(*this, FUNC(isa8_number_9_rev_device::pal12_r)), write8sm_delegate(*this, FUNC(isa8_number_9_rev_device::pal12_w)));
m_isa->install_memory(0xa0000, 0xaffff, read8sm_delegate(*this, FUNC(isa8_number_9_rev_device::read8)), write8sm_delegate(*this, FUNC(isa8_number_9_rev_device::write8)));
}
//-------------------------------------------------
@ -114,7 +114,7 @@ void isa8_number_9_rev_device::device_reset()
m_1024 = false;
}
READ8_MEMBER(isa8_number_9_rev_device::read8)
uint8_t isa8_number_9_rev_device::read8(offs_t offset)
{
if((m_mode & 1) && !m_1024)
return m_ram[offset + ((m_mode & 0xc) << 14)];
@ -127,7 +127,7 @@ READ8_MEMBER(isa8_number_9_rev_device::read8)
return m_ram[offset + (m_bank << 16)];
}
WRITE8_MEMBER(isa8_number_9_rev_device::write8)
void isa8_number_9_rev_device::write8(offs_t offset, uint8_t data)
{
if(m_1024 || ((m_mode & 6) == 0))
m_ram[offset + (m_bank << 16)] = data;
@ -159,7 +159,7 @@ WRITE8_MEMBER(isa8_number_9_rev_device::write8)
}
}
READ8_MEMBER(isa8_number_9_rev_device::pal8_r)
uint8_t isa8_number_9_rev_device::pal8_r(offs_t offset)
{
offset += 0x100;
palette_t *pal = m_palette->palette();
@ -175,7 +175,7 @@ READ8_MEMBER(isa8_number_9_rev_device::pal8_r)
return 0;
}
WRITE8_MEMBER(isa8_number_9_rev_device::pal8_w)
void isa8_number_9_rev_device::pal8_w(offs_t offset, uint8_t data)
{
offset += 0x100;
palette_t *pal = m_palette->palette();
@ -195,7 +195,7 @@ WRITE8_MEMBER(isa8_number_9_rev_device::pal8_w)
pal->entry_set_color(offset, pen);
}
READ8_MEMBER(isa8_number_9_rev_device::pal12_r)
uint8_t isa8_number_9_rev_device::pal12_r(offs_t offset)
{
uint16_t color = offset & 0xfff;
palette_t *pal = m_palette->palette();
@ -211,7 +211,7 @@ READ8_MEMBER(isa8_number_9_rev_device::pal12_r)
return 0;
}
WRITE8_MEMBER(isa8_number_9_rev_device::pal12_w)
void isa8_number_9_rev_device::pal12_w(offs_t offset, uint8_t data)
{
uint16_t color = offset & 0xfff;
palette_t *pal = m_palette->palette();
@ -231,26 +231,26 @@ WRITE8_MEMBER(isa8_number_9_rev_device::pal12_w)
pal->entry_set_color(color, pen);
}
READ8_MEMBER(isa8_number_9_rev_device::overlay_r)
uint8_t isa8_number_9_rev_device::overlay_r(offs_t offset)
{
return m_overlay[offset + ((m_mode & 8) ? 512 : 0)];
}
WRITE8_MEMBER(isa8_number_9_rev_device::overlay_w)
void isa8_number_9_rev_device::overlay_w(offs_t offset, uint8_t data)
{
m_overlay[offset + ((m_mode & 8) ? 512 : 0)] = data;
}
READ8_MEMBER(isa8_number_9_rev_device::bank_r)
uint8_t isa8_number_9_rev_device::bank_r()
{
return m_bank;
}
WRITE8_MEMBER(isa8_number_9_rev_device::bank_w)
void isa8_number_9_rev_device::bank_w(uint8_t data)
{
m_bank = data & 0xf;
}
READ8_MEMBER(isa8_number_9_rev_device::ctrl_r)
uint8_t isa8_number_9_rev_device::ctrl_r(offs_t offset)
{
switch(offset & 0xf)
{
@ -272,7 +272,7 @@ READ8_MEMBER(isa8_number_9_rev_device::ctrl_r)
return 0;
}
WRITE8_MEMBER(isa8_number_9_rev_device::ctrl_w)
void isa8_number_9_rev_device::ctrl_w(offs_t offset, uint8_t data)
{
switch(offset & 0xf)
{

View File

@ -37,18 +37,18 @@ private:
uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
DECLARE_READ8_MEMBER(pal8_r);
DECLARE_WRITE8_MEMBER(pal8_w);
DECLARE_READ8_MEMBER(pal12_r);
DECLARE_WRITE8_MEMBER(pal12_w);
DECLARE_READ8_MEMBER(overlay_r);
DECLARE_WRITE8_MEMBER(overlay_w);
DECLARE_READ8_MEMBER(bank_r);
DECLARE_WRITE8_MEMBER(bank_w);
DECLARE_READ8_MEMBER(ctrl_r);
DECLARE_WRITE8_MEMBER(ctrl_w);
DECLARE_READ8_MEMBER(read8);
DECLARE_WRITE8_MEMBER(write8);
uint8_t pal8_r(offs_t offset);
void pal8_w(offs_t offset, uint8_t data);
uint8_t pal12_r(offs_t offset);
void pal12_w(offs_t offset, uint8_t data);
uint8_t overlay_r(offs_t offset);
void overlay_w(offs_t offset, uint8_t data);
uint8_t bank_r();
void bank_w(uint8_t data);
uint8_t ctrl_r(offs_t offset);
void ctrl_w(offs_t offset, uint8_t data);
uint8_t read8(offs_t offset);
void write8(offs_t offset, uint8_t data);
void upd7220_map(address_map &map);

View File

@ -310,7 +310,7 @@ void omti8621_device::device_reset()
int esdi_base = io_bases[m_iobase->read() & 7];
// install the ESDI ports
m_isa->install16_device(esdi_base, esdi_base + 7, read16_delegate(*this, FUNC(omti8621_device::read)), write16_delegate(*this, FUNC(omti8621_device::write)));
m_isa->install16_device(esdi_base, esdi_base + 7, read16s_delegate(*this, FUNC(omti8621_device::read)), write16s_delegate(*this, FUNC(omti8621_device::write)));
// and the onboard AT FDC ports
if (m_iobase->read() & 8)
@ -1033,16 +1033,16 @@ void omti8621_device::set_data(uint16_t data)
OMTI8621 Disk Controller-AT Registers
***************************************************************************/
WRITE16_MEMBER(omti8621_device::write)
void omti8621_device::write(offs_t offset, uint16_t data, uint16_t mem_mask)
{
switch (mem_mask)
{
case 0x00ff:
write8(space, offset*2, data, mem_mask);
write8(offset*2, data);
break;
case 0xff00:
write8(space, offset*2+1, data>>8, mem_mask>>8);
write8(offset*2+1, data>>8);
break;
default:
@ -1051,7 +1051,7 @@ WRITE16_MEMBER(omti8621_device::write)
}
}
WRITE8_MEMBER(omti8621_device::write8)
void omti8621_device::write8(offs_t offset, uint8_t data)
{
switch (offset)
{
@ -1145,20 +1145,20 @@ WRITE8_MEMBER(omti8621_device::write8)
}
}
READ16_MEMBER(omti8621_device::read)
uint16_t omti8621_device::read(offs_t offset, uint16_t mem_mask)
{
switch (mem_mask)
{
case 0x00ff:
return read8(space, offset*2, mem_mask);
return read8(offset*2);
case 0xff00:
return read8(space, offset*2+1, mem_mask >> 8) << 8;
return read8(offset*2+1) << 8;
default:
return get_data();
}
}
READ8_MEMBER(omti8621_device::read8)
uint8_t omti8621_device::read8(offs_t offset)
{
uint8_t data = 0xff;
static uint8_t last_data = 0xff;

View File

@ -30,8 +30,8 @@ class omti_disk_image_device;
class omti8621_device : public device_t, public device_isa16_card_interface
{
public:
DECLARE_READ16_MEMBER(read);
DECLARE_WRITE16_MEMBER(write);
uint16_t read(offs_t offset, uint16_t mem_mask = 0xffff);
void write(offs_t offset, uint16_t data, uint16_t mem_mask = 0xffff);
static void set_verbose(int on_off);
@ -140,8 +140,8 @@ private:
uint16_t get_data();
void set_data(uint16_t data);
void set_jumper(uint16_t disk_type);
DECLARE_READ8_MEMBER(read8);
DECLARE_WRITE8_MEMBER(write8);
uint8_t read8(offs_t offset);
void write8(offs_t offset, uint8_t data);
};
/* ----- omti8621 for PC device interface ----- */

View File

@ -125,7 +125,7 @@ WRITE_LINE_MEMBER(p1_fdc_device::p1_fdc_irq_drq)
m_isa->set_ready(CLEAR_LINE); // deassert I/O CH RDY
}
READ8_MEMBER(p1_fdc_device::p1_fdc_r)
uint8_t p1_fdc_device::p1_fdc_r(offs_t offset)
{
uint8_t data = 0xff;
@ -142,7 +142,7 @@ READ8_MEMBER(p1_fdc_device::p1_fdc_r)
return data;
}
WRITE8_MEMBER(p1_fdc_device::p1_fdc_w)
void p1_fdc_device::p1_fdc_w(offs_t offset, uint8_t data)
{
switch (offset)
{
@ -174,7 +174,7 @@ void p1_fdc_device::device_start()
set_isa_device();
m_isa->install_rom(this, 0xe0000, 0xe07ff, "XXX", "p1_fdc");
m_isa->install_device(0x00c0, 0x00c3, read8sm_delegate(*m_fdc, FUNC(fd1793_device::read)), write8sm_delegate(*m_fdc, FUNC(fd1793_device::write)));
m_isa->install_device(0x00c4, 0x00c7, read8_delegate(*this, FUNC(p1_fdc_device::p1_fdc_r)), write8_delegate(*this, FUNC(p1_fdc_device::p1_fdc_w)));
m_isa->install_device(0x00c4, 0x00c7, read8sm_delegate(*this, FUNC(p1_fdc_device::p1_fdc_r)), write8sm_delegate(*this, FUNC(p1_fdc_device::p1_fdc_w)));
}

View File

@ -30,8 +30,8 @@ public:
template <typename T>
void set_cpu(T &&tag) { m_cpu.set_tag(std::forward<T>(tag)); }
DECLARE_READ8_MEMBER(p1_fdc_r);
DECLARE_WRITE8_MEMBER(p1_fdc_w);
uint8_t p1_fdc_r(offs_t offset);
void p1_fdc_w(offs_t offset, uint8_t data);
protected:
// device-level overrides

View File

@ -82,7 +82,7 @@ const tiny_rom_entry *p1_hdc_device::device_rom_region() const
//**************************************************************************
READ8_MEMBER(p1_hdc_device::p1_HDC_r)
uint8_t p1_hdc_device::p1_HDC_r(offs_t offset)
{
uint8_t data = 0x00;
@ -96,7 +96,7 @@ READ8_MEMBER(p1_hdc_device::p1_HDC_r)
return data;
}
WRITE8_MEMBER(p1_hdc_device::p1_HDC_w)
void p1_hdc_device::p1_HDC_w(offs_t offset, uint8_t data)
{
LOG("hdc W $%04x <- $%02x\n", offset, data);
@ -127,7 +127,7 @@ void p1_hdc_device::device_start()
{
set_isa_device();
m_isa->install_rom(this, 0xe2000, 0xe27ff, "XXX", "p1_hdc");
m_isa->install_memory(0xd0000, 0xd0fff, read8_delegate(*this, FUNC(p1_hdc_device::p1_HDC_r)), write8_delegate(*this, FUNC(p1_hdc_device::p1_HDC_w)));
m_isa->install_memory(0xd0000, 0xd0fff, read8sm_delegate(*this, FUNC(p1_hdc_device::p1_HDC_r)), write8sm_delegate(*this, FUNC(p1_hdc_device::p1_HDC_w)));
}

View File

@ -42,8 +42,8 @@ private:
// uint8_t m_ram[0x800];
public:
DECLARE_READ8_MEMBER(p1_HDC_r);
DECLARE_WRITE8_MEMBER(p1_HDC_w);
uint8_t p1_HDC_r(offs_t offset);
void p1_HDC_w(offs_t offset, uint8_t data);
};

View File

@ -93,42 +93,42 @@ p1_sound_device::p1_sound_device(const machine_config &mconfig, const char *tag,
{
}
READ8_MEMBER(p1_sound_device::d14_r)
uint8_t p1_sound_device::d14_r(offs_t offset)
{
return m_d14->read(offset >> 1);
}
WRITE8_MEMBER(p1_sound_device::d14_w)
void p1_sound_device::d14_w(offs_t offset, uint8_t data)
{
m_d14->write(offset >> 1, data);
}
READ8_MEMBER(p1_sound_device::d16_r)
uint8_t p1_sound_device::d16_r(offs_t offset)
{
return m_d16->read(offset >> 1);
}
WRITE8_MEMBER(p1_sound_device::d16_w)
void p1_sound_device::d16_w(offs_t offset, uint8_t data)
{
m_d16->write(offset >> 1, data);
}
READ8_MEMBER(p1_sound_device::d17_r)
uint8_t p1_sound_device::d17_r(offs_t offset)
{
return m_d17->read(offset >> 1);
}
WRITE8_MEMBER(p1_sound_device::d17_w)
void p1_sound_device::d17_w(offs_t offset, uint8_t data)
{
m_d17->write(offset >> 1, data);
}
READ8_MEMBER(p1_sound_device::adc_r)
uint8_t p1_sound_device::adc_r(offs_t offset)
{
return 0;
}
WRITE8_MEMBER(p1_sound_device::dac_w)
void p1_sound_device::dac_w(offs_t offset, uint8_t data)
{
// logerror("DAC write: %02x <- %02x\n", offset>>1, data);
m_dac_data[offset >> 1] = data;
@ -161,8 +161,8 @@ void p1_sound_device::device_start()
// EFC00 -- ADC output
m_isa->install_memory(0xea000, 0xea01f,
read8_delegate(*this, FUNC(p1_sound_device::adc_r)), // XXX not really
write8_delegate(*this, FUNC(p1_sound_device::dac_w)));
read8sm_delegate(*this, FUNC(p1_sound_device::adc_r)), // XXX not really
write8sm_delegate(*this, FUNC(p1_sound_device::dac_w)));
m_isa->install_memory(0xee000, 0xee000,
read8smo_delegate(*m_midi, FUNC(i8251_device::data_r)),
@ -173,16 +173,16 @@ void p1_sound_device::device_start()
// sync generator
m_isa->install_memory(0xef000, 0xef007,
read8_delegate(*this, FUNC(p1_sound_device::d14_r)),
write8_delegate(*this, FUNC(p1_sound_device::d14_w)));
read8sm_delegate(*this, FUNC(p1_sound_device::d14_r)),
write8sm_delegate(*this, FUNC(p1_sound_device::d14_w)));
// 6 music channels
m_isa->install_memory(0xef400, 0xef407,
read8_delegate(*this, FUNC(p1_sound_device::d16_r)),
write8_delegate(*this, FUNC(p1_sound_device::d16_w)));
read8sm_delegate(*this, FUNC(p1_sound_device::d16_r)),
write8sm_delegate(*this, FUNC(p1_sound_device::d16_w)));
m_isa->install_memory(0xef800, 0xef807,
read8_delegate(*this, FUNC(p1_sound_device::d17_r)),
write8_delegate(*this, FUNC(p1_sound_device::d17_w)));
read8sm_delegate(*this, FUNC(p1_sound_device::d17_r)),
write8sm_delegate(*this, FUNC(p1_sound_device::d17_w)));
}

View File

@ -33,15 +33,15 @@ public:
// construction/destruction
p1_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
DECLARE_READ8_MEMBER(d14_r);
DECLARE_READ8_MEMBER(d16_r);
DECLARE_READ8_MEMBER(d17_r);
DECLARE_WRITE8_MEMBER(d14_w);
DECLARE_WRITE8_MEMBER(d16_w);
DECLARE_WRITE8_MEMBER(d17_w);
uint8_t d14_r(offs_t offset);
uint8_t d16_r(offs_t offset);
uint8_t d17_r(offs_t offset);
void d14_w(offs_t offset, uint8_t data);
void d16_w(offs_t offset, uint8_t data);
void d17_w(offs_t offset, uint8_t data);
DECLARE_READ8_MEMBER(adc_r);
DECLARE_WRITE8_MEMBER(dac_w);
uint8_t adc_r(offs_t offset);
void dac_w(offs_t offset, uint8_t data);
protected:
// device-level overrides

View File

@ -102,7 +102,7 @@ void isa8_pc1640_iga_device::device_start()
m_plane[3] = m_videoram + 0x30000;
m_isa->install_rom(this, 0xc0000, 0xc7fff, "ega", "iga");
m_isa->install_device(0x3b0, 0x3bf, read8_delegate(*this, FUNC(isa8_ega_device::pc_ega8_3b0_r)), write8_delegate(*this, FUNC(isa8_ega_device::pc_ega8_3b0_w)));
m_isa->install_device(0x3c0, 0x3cf, read8_delegate(*this, FUNC(isa8_ega_device::pc_ega8_3c0_r)), write8_delegate(*this, FUNC(isa8_ega_device::pc_ega8_3c0_w)));
m_isa->install_device(0x3d0, 0x3df, read8_delegate(*this, FUNC(isa8_ega_device::pc_ega8_3d0_r)), write8_delegate(*this, FUNC(isa8_ega_device::pc_ega8_3d0_w)));
m_isa->install_device(0x3b0, 0x3bf, read8sm_delegate(*this, FUNC(isa8_ega_device::pc_ega8_3b0_r)), write8sm_delegate(*this, FUNC(isa8_ega_device::pc_ega8_3b0_w)));
m_isa->install_device(0x3c0, 0x3cf, read8sm_delegate(*this, FUNC(isa8_ega_device::pc_ega8_3c0_r)), write8sm_delegate(*this, FUNC(isa8_ega_device::pc_ega8_3c0_w)));
m_isa->install_device(0x3d0, 0x3df, read8sm_delegate(*this, FUNC(isa8_ega_device::pc_ega8_3d0_r)), write8sm_delegate(*this, FUNC(isa8_ega_device::pc_ega8_3d0_w)));
}

View File

@ -29,14 +29,14 @@ isa8_pds_device::isa8_pds_device(const machine_config &mconfig, const char *tag,
}
READ8_MEMBER(isa8_pds_device::ppi_r)
uint8_t isa8_pds_device::ppi_r(offs_t offset)
{
if(!(offset & 0x01))
return m_ppi->read(offset/2);
return 0xff;
}
WRITE8_MEMBER(isa8_pds_device::ppi_w)
void isa8_pds_device::ppi_w(offs_t offset, uint8_t data)
{
if(!(offset & 0x01))
m_ppi->write(offset/2,data);
@ -45,7 +45,7 @@ WRITE8_MEMBER(isa8_pds_device::ppi_w)
void isa8_pds_device::device_start()
{
set_isa_device();
m_isa->install_device(0x0300, 0x0307, read8_delegate(*this, FUNC(isa8_pds_device::ppi_r)), write8_delegate(*this, FUNC(isa8_pds_device::ppi_w)));
m_isa->install_device(0x0300, 0x0307, read8sm_delegate(*this, FUNC(isa8_pds_device::ppi_r)), write8sm_delegate(*this, FUNC(isa8_pds_device::ppi_w)));
}
void isa8_pds_device::device_reset()

View File

@ -19,8 +19,8 @@ class isa8_pds_device :
public:
isa8_pds_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
DECLARE_READ8_MEMBER(ppi_r);
DECLARE_WRITE8_MEMBER(ppi_w);
uint8_t ppi_r(offs_t offset);
void ppi_w(offs_t offset, uint8_t data);
protected:
// device-level overrides

View File

@ -273,7 +273,7 @@ IRQ_CALLBACK_MEMBER(isa8_pgc_device::irq_callback)
// memory handlers
READ8_MEMBER(isa8_pgc_device::vram_r)
uint8_t isa8_pgc_device::vram_r(offs_t offset)
{
uint8_t ret;
@ -293,7 +293,7 @@ READ8_MEMBER(isa8_pgc_device::vram_r)
* 9 - write up to 5 pixel groups, ending at offset. offset may be in the middle of pixel group.
* 13 - write up to 5 pixel groups, starting at offset.
*/
WRITE8_MEMBER(isa8_pgc_device::vram_w)
void isa8_pgc_device::vram_w(offs_t offset, uint8_t data)
{
bool handled = true;
@ -336,13 +336,13 @@ WRITE8_MEMBER(isa8_pgc_device::vram_w)
handled ? "" : " (unsupported)");
}
WRITE8_MEMBER(isa8_pgc_device::accel_w)
void isa8_pgc_device::accel_w(offs_t offset, uint8_t data)
{
m_accel = offset >> 1;
LOGV("accel @ %05x <- %02x (%d)\n", 0x32020 + offset, data, m_accel);
}
READ8_MEMBER(isa8_pgc_device::stateparam_r)
uint8_t isa8_pgc_device::stateparam_r(offs_t offset)
{
uint8_t ret;
@ -354,7 +354,7 @@ READ8_MEMBER(isa8_pgc_device::stateparam_r)
return ret;
}
WRITE8_MEMBER(isa8_pgc_device::stateparam_w)
void isa8_pgc_device::stateparam_w(offs_t offset, uint8_t data)
{
if ((machine().debug_flags & DEBUG_FLAG_ENABLED) != 0)
{
@ -363,7 +363,7 @@ WRITE8_MEMBER(isa8_pgc_device::stateparam_w)
m_stateparam[offset >> 1] = data;
}
WRITE8_MEMBER(isa8_pgc_device::lut_w)
void isa8_pgc_device::lut_w(offs_t offset, uint8_t data)
{
uint8_t o = (offset >> 1) * 3;
@ -379,8 +379,12 @@ WRITE8_MEMBER(isa8_pgc_device::lut_w)
}
}
READ8_MEMBER(isa8_pgc_device::init_r)
uint8_t isa8_pgc_device::init_r()
{
if (!machine().side_effects_disabled())
{
address_space &space = m_cpu->space(AS_PROGRAM);
LOG("INIT: unmapping ROM\n");
space.unmap_read(0xf8000, 0xfffff);
@ -389,7 +393,8 @@ READ8_MEMBER(isa8_pgc_device::init_r)
membank("eram")->set_base(m_eram.get());
LOG("INIT: mapping LUT\n");
space.install_write_handler(0xf8400, 0xf85ff, write8_delegate(*this, FUNC(isa8_pgc_device::lut_w)));
space.install_write_handler(0xf8400, 0xf85ff, write8sm_delegate(*this, FUNC(isa8_pgc_device::lut_w)));
}
return 0; // XXX ignored
}

View File

@ -44,13 +44,13 @@ private:
DECLARE_WRITE_LINE_MEMBER(vblank_irq);
IRQ_CALLBACK_MEMBER(irq_callback);
DECLARE_WRITE8_MEMBER(vram_w);
DECLARE_READ8_MEMBER(vram_r);
DECLARE_WRITE8_MEMBER(stateparam_w);
DECLARE_READ8_MEMBER(stateparam_r);
DECLARE_WRITE8_MEMBER(lut_w);
DECLARE_READ8_MEMBER(init_r);
DECLARE_WRITE8_MEMBER(accel_w);
void vram_w(offs_t offset, uint8_t data);
uint8_t vram_r(offs_t offset);
void stateparam_w(offs_t offset, uint8_t data);
uint8_t stateparam_r(offs_t offset);
void lut_w(offs_t offset, uint8_t data);
uint8_t init_r();
void accel_w(offs_t offset, uint8_t data);
void reset_common();

View File

@ -14,7 +14,7 @@
DEFINE_DEVICE_TYPE(ISA16_SB16, sb16_lle_device, "sb16", "SoundBlaster 16 Audio Adapter LLE")
READ8_MEMBER( sb16_lle_device::dsp_data_r )
uint8_t sb16_lle_device::dsp_data_r()
{
if(!machine().side_effects_disabled())
m_data_in = false;
@ -22,18 +22,18 @@ READ8_MEMBER( sb16_lle_device::dsp_data_r )
return m_in_byte;
}
WRITE8_MEMBER( sb16_lle_device::dsp_data_w )
void sb16_lle_device::dsp_data_w(uint8_t data)
{
m_data_out = true;
m_out_byte = data;
}
READ8_MEMBER( sb16_lle_device::dac_ctrl_r )
uint8_t sb16_lle_device::dac_ctrl_r()
{
return 0;
}
WRITE8_MEMBER( sb16_lle_device::dac_ctrl_w )
void sb16_lle_device::dac_ctrl_w(uint8_t data)
{
/* port 0x05
* bit0 -
@ -52,12 +52,12 @@ WRITE8_MEMBER( sb16_lle_device::dac_ctrl_w )
}
}
READ8_MEMBER( sb16_lle_device::adc_data_r )
uint8_t sb16_lle_device::adc_data_r()
{
return 0;
}
WRITE8_MEMBER( sb16_lle_device::dac_data_w )
void sb16_lle_device::dac_data_w(uint8_t data)
{
m_ldac->write(data << 8);
m_rdac->write(data << 8);
@ -115,25 +115,25 @@ void sb16_lle_device::control_timer(bool start)
m_timer->adjust(attotime::never);
}
WRITE8_MEMBER( sb16_lle_device::rate_w )
void sb16_lle_device::rate_w(uint8_t data)
{
m_freq = data;
if(!(m_ctrl8 & 2) || !(m_ctrl16 & 2))
control_timer(true);
}
READ8_MEMBER( sb16_lle_device::dma8_r )
uint8_t sb16_lle_device::dma8_r()
{
return m_dac_fifo[0].b[0];
}
WRITE8_MEMBER( sb16_lle_device::dma8_w )
void sb16_lle_device::dma8_w(uint8_t data)
{
m_adc_fifo[0].b[0] = data;
m_isa->drq1_w(0);
}
READ8_MEMBER( sb16_lle_device::dma_stat_r )
uint8_t sb16_lle_device::dma_stat_r()
{
/* port 0x06
* bit0 - 8 bit complete
@ -149,12 +149,12 @@ READ8_MEMBER( sb16_lle_device::dma_stat_r )
return ret;
}
READ8_MEMBER( sb16_lle_device::ctrl8_r )
uint8_t sb16_lle_device::ctrl8_r()
{
return m_ctrl8;
}
WRITE8_MEMBER( sb16_lle_device::ctrl8_w )
void sb16_lle_device::ctrl8_w(uint8_t data)
{
/* port 0x08
* bit0 - ?
@ -190,12 +190,12 @@ WRITE8_MEMBER( sb16_lle_device::ctrl8_w )
m_ctrl8 = data;
}
READ8_MEMBER( sb16_lle_device::ctrl16_r )
uint8_t sb16_lle_device::ctrl16_r()
{
return m_ctrl16;
}
WRITE8_MEMBER( sb16_lle_device::ctrl16_w )
void sb16_lle_device::ctrl16_w(uint8_t data)
{
/* port 0x10
* bit0 -
@ -231,12 +231,12 @@ WRITE8_MEMBER( sb16_lle_device::ctrl16_w )
m_ctrl16 = data;
}
READ8_MEMBER( sb16_lle_device::dac_fifo_ctrl_r )
uint8_t sb16_lle_device::dac_fifo_ctrl_r()
{
return m_dac_fifo_ctrl;
}
WRITE8_MEMBER( sb16_lle_device::dac_fifo_ctrl_w )
void sb16_lle_device::dac_fifo_ctrl_w(uint8_t data)
{
/* port 0x0E
* bit0 - reset fifo
@ -258,12 +258,12 @@ WRITE8_MEMBER( sb16_lle_device::dac_fifo_ctrl_w )
m_dac_fifo_ctrl = data;
}
READ8_MEMBER( sb16_lle_device::adc_fifo_ctrl_r )
uint8_t sb16_lle_device::adc_fifo_ctrl_r()
{
return m_adc_fifo_ctrl;
}
WRITE8_MEMBER( sb16_lle_device::adc_fifo_ctrl_w )
void sb16_lle_device::adc_fifo_ctrl_w(uint8_t data)
{
/* port 0x16
* bit0 - reset fifo
@ -285,12 +285,12 @@ WRITE8_MEMBER( sb16_lle_device::adc_fifo_ctrl_w )
m_adc_fifo_ctrl = data;
}
READ8_MEMBER( sb16_lle_device::mode_r )
uint8_t sb16_lle_device::mode_r()
{
return m_mode;
}
WRITE8_MEMBER( sb16_lle_device::mode_w )
void sb16_lle_device::mode_w(uint8_t data)
{
/* port 0x04
* bit0 - 1 -- dac 16, adc 8; 0 -- adc 16, dac 8
@ -305,7 +305,7 @@ WRITE8_MEMBER( sb16_lle_device::mode_w )
m_mode = data;
}
READ8_MEMBER( sb16_lle_device::dma8_ready_r )
uint8_t sb16_lle_device::dma8_ready_r()
{
/* port 0x0F
* bit0 -
@ -320,7 +320,7 @@ READ8_MEMBER( sb16_lle_device::dma8_ready_r )
return ((m_dac_fifo_tail - m_dac_fifo_head) != 1) << 6;
}
READ8_MEMBER( sb16_lle_device::adc_data_ready_r )
uint8_t sb16_lle_device::adc_data_ready_r()
{
/* port 0x17
* bit0 -
@ -335,32 +335,32 @@ READ8_MEMBER( sb16_lle_device::adc_data_ready_r )
return (m_mode & 1) ? 0x80 : 0;
}
READ8_MEMBER( sb16_lle_device::dma8_cnt_lo_r )
uint8_t sb16_lle_device::dma8_cnt_lo_r()
{
return m_dma8_cnt & 0xff;
}
READ8_MEMBER( sb16_lle_device::dma8_cnt_hi_r )
uint8_t sb16_lle_device::dma8_cnt_hi_r()
{
return m_dma8_cnt >> 8;
}
WRITE8_MEMBER( sb16_lle_device::dma8_len_lo_w )
void sb16_lle_device::dma8_len_lo_w(uint8_t data)
{
m_dma8_len = (m_dma8_len & 0xff00) | data;
}
WRITE8_MEMBER( sb16_lle_device::dma8_len_hi_w )
void sb16_lle_device::dma8_len_hi_w(uint8_t data)
{
m_dma8_len = (m_dma8_len & 0xff) | (data << 8);
}
WRITE8_MEMBER( sb16_lle_device::dma16_len_lo_w )
void sb16_lle_device::dma16_len_lo_w(uint8_t data)
{
m_dma16_len = (m_dma16_len & 0xff00) | data;
}
WRITE8_MEMBER( sb16_lle_device::dma16_len_hi_w )
void sb16_lle_device::dma16_len_hi_w(uint8_t data)
{
m_dma16_len = (m_dma16_len & 0xff) | (data << 8);
}
@ -404,6 +404,14 @@ void sb16_lle_device::sb16_io(address_map &map)
// map(0x0082, 0x0082)
}
void sb16_lle_device::host_io(address_map &map)
{
map(0x6, 0x7).w(FUNC(sb16_lle_device::dsp_reset_w));
map(0xa, 0xb).r(FUNC(sb16_lle_device::host_data_r));
map(0xc, 0xd).rw(FUNC(sb16_lle_device::dsp_wbuf_status_r), FUNC(sb16_lle_device::host_cmd_w));
map(0xe, 0xf).r(FUNC(sb16_lle_device::dsp_rbuf_status_r));
}
const tiny_rom_entry *sb16_lle_device::device_rom_region() const
{
return ROM_NAME( sb16 );
@ -432,13 +440,14 @@ void sb16_lle_device::device_add_mconfig(machine_config &config)
PC_JOY(config, m_joy);
}
READ8_MEMBER( sb16_lle_device::host_data_r )
uint8_t sb16_lle_device::host_data_r()
{
if (!machine().side_effects_disabled())
m_data_out = false;
return m_out_byte;
}
WRITE8_MEMBER( sb16_lle_device::host_cmd_w )
void sb16_lle_device::host_cmd_w(uint8_t data)
{
m_data_in = true;
m_in_byte = data;
@ -598,7 +607,7 @@ void sb16_lle_device::dack16_w(int line, uint16_t data)
m_isa->drq5_w(0);
}
WRITE8_MEMBER( sb16_lle_device::dsp_reset_w )
void sb16_lle_device::dsp_reset_w(uint8_t data)
{
if(data & 1)
{
@ -607,39 +616,34 @@ WRITE8_MEMBER( sb16_lle_device::dsp_reset_w )
}
}
READ8_MEMBER( sb16_lle_device::dsp_wbuf_status_r )
uint8_t sb16_lle_device::dsp_wbuf_status_r(offs_t offset)
{
if(offset)
return 0xff;
return m_data_in << 7;
}
READ8_MEMBER( sb16_lle_device::dsp_rbuf_status_r )
uint8_t sb16_lle_device::dsp_rbuf_status_r(offs_t offset)
{
if(offset)
{
if(!machine().side_effects_disabled())
{
m_irq16 = false;
m_isa->irq5_w((m_irq8 || m_irq16 || m_irq_midi) ? ASSERT_LINE : CLEAR_LINE);
}
return 0xff;
}
if(!machine().side_effects_disabled())
{
m_irq8 = false;
m_isa->irq5_w((m_irq8 || m_irq16 || m_irq_midi) ? ASSERT_LINE : CLEAR_LINE);
}
return m_data_out << 7;
}
WRITE8_MEMBER( sb16_lle_device::invalid_w )
{
logerror("sb16: invalid port write\n");
}
READ8_MEMBER( sb16_lle_device::invalid_r )
{
logerror("sb16: invalid port read\n");
return 0xff;
}
// just using the old dummy mpu401 for now
READ8_MEMBER( sb16_lle_device::mpu401_r )
uint8_t sb16_lle_device::mpu401_r(offs_t offset)
{
uint8_t res;
@ -658,7 +662,7 @@ READ8_MEMBER( sb16_lle_device::mpu401_r )
return res;
}
WRITE8_MEMBER( sb16_lle_device::mpu401_w )
void sb16_lle_device::mpu401_w(offs_t offset, uint8_t data)
{
if(offset == 0) // data
{
@ -706,11 +710,8 @@ void sb16_lle_device::device_start()
set_isa_device();
m_isa->install_device(0x0200, 0x0207, read8_delegate(*subdevice<pc_joy_device>("pc_joy"), FUNC(pc_joy_device::joy_port_r)), write8_delegate(*subdevice<pc_joy_device>("pc_joy"), FUNC(pc_joy_device::joy_port_w)));
m_isa->install_device(0x0226, 0x0227, read8_delegate(*this, FUNC(sb16_lle_device::invalid_r)), write8_delegate(*this, FUNC(sb16_lle_device::dsp_reset_w)));
m_isa->install_device(0x022a, 0x022b, read8_delegate(*this, FUNC(sb16_lle_device::host_data_r)), write8_delegate(*this, FUNC(sb16_lle_device::invalid_w)) );
m_isa->install_device(0x022c, 0x022d, read8_delegate(*this, FUNC(sb16_lle_device::dsp_wbuf_status_r)), write8_delegate(*this, FUNC(sb16_lle_device::host_cmd_w)) );
m_isa->install_device(0x022e, 0x022f, read8_delegate(*this, FUNC(sb16_lle_device::dsp_rbuf_status_r)), write8_delegate(*this, FUNC(sb16_lle_device::invalid_w)) );
m_isa->install_device(0x0330, 0x0331, read8_delegate(*this, FUNC(sb16_lle_device::mpu401_r)), write8_delegate(*this, FUNC(sb16_lle_device::mpu401_w)));
m_isa->install_device(0x0220, 0x022f, *this, &sb16_lle_device::host_io);
m_isa->install_device(0x0330, 0x0331, read8sm_delegate(*this, FUNC(sb16_lle_device::mpu401_r)), write8sm_delegate(*this, FUNC(sb16_lle_device::mpu401_w)));
m_isa->install_device(0x0388, 0x0389, read8sm_delegate(ymf262, FUNC(ymf262_device::read)), write8sm_delegate(ymf262, FUNC(ymf262_device::write)));
m_isa->install_device(0x0220, 0x0223, read8sm_delegate(ymf262, FUNC(ymf262_device::read)), write8sm_delegate(ymf262, FUNC(ymf262_device::write)));
m_isa->install_device(0x0228, 0x0229, read8sm_delegate(ymf262, FUNC(ymf262_device::read)), write8sm_delegate(ymf262, FUNC(ymf262_device::write)));

View File

@ -39,53 +39,52 @@ protected:
void dack16_w(int line, uint16_t data) override;
private:
READ8_MEMBER( mpu401_r );
WRITE8_MEMBER( mpu401_w );
uint8_t mpu401_r(offs_t offset);
void mpu401_w(offs_t offset, uint8_t data);
// mcu ports
DECLARE_READ8_MEMBER( dsp_data_r );
DECLARE_WRITE8_MEMBER( dsp_data_w );
uint8_t dsp_data_r();
void dsp_data_w(uint8_t data);
uint8_t p1_r();
void p1_w(uint8_t data);
uint8_t p2_r();
void p2_w(uint8_t data);
DECLARE_WRITE8_MEMBER( rate_w );
DECLARE_READ8_MEMBER( dma8_r );
DECLARE_WRITE8_MEMBER( dma8_w );
DECLARE_READ8_MEMBER( ctrl8_r );
DECLARE_WRITE8_MEMBER( ctrl8_w );
DECLARE_READ8_MEMBER( ctrl16_r );
DECLARE_WRITE8_MEMBER( ctrl16_w );
DECLARE_READ8_MEMBER( dac_ctrl_r );
DECLARE_WRITE8_MEMBER( dac_ctrl_w );
DECLARE_READ8_MEMBER( dac_fifo_ctrl_r );
DECLARE_WRITE8_MEMBER( dac_fifo_ctrl_w );
DECLARE_READ8_MEMBER( adc_fifo_ctrl_r );
DECLARE_WRITE8_MEMBER( adc_fifo_ctrl_w );
DECLARE_READ8_MEMBER( dma_stat_r );
DECLARE_WRITE8_MEMBER( dac_data_w );
DECLARE_READ8_MEMBER( adc_data_r );
DECLARE_READ8_MEMBER( dma8_ready_r );
DECLARE_READ8_MEMBER( adc_data_ready_r );
DECLARE_READ8_MEMBER( dma8_cnt_lo_r );
DECLARE_READ8_MEMBER( dma8_cnt_hi_r );
DECLARE_WRITE8_MEMBER( dma8_len_lo_w );
DECLARE_WRITE8_MEMBER( dma8_len_hi_w );
DECLARE_WRITE8_MEMBER( dma16_len_lo_w );
DECLARE_WRITE8_MEMBER( dma16_len_hi_w );
DECLARE_READ8_MEMBER( mode_r );
DECLARE_WRITE8_MEMBER( mode_w );
void rate_w(uint8_t data);
uint8_t dma8_r();
void dma8_w(uint8_t data);
uint8_t ctrl8_r();
void ctrl8_w(uint8_t data);
uint8_t ctrl16_r();
void ctrl16_w(uint8_t data);
uint8_t dac_ctrl_r();
void dac_ctrl_w(uint8_t data);
uint8_t dac_fifo_ctrl_r();
void dac_fifo_ctrl_w(uint8_t data);
uint8_t adc_fifo_ctrl_r();
void adc_fifo_ctrl_w(uint8_t data);
uint8_t dma_stat_r();
void dac_data_w(uint8_t data);
uint8_t adc_data_r();
uint8_t dma8_ready_r();
uint8_t adc_data_ready_r();
uint8_t dma8_cnt_lo_r();
uint8_t dma8_cnt_hi_r();
void dma8_len_lo_w(uint8_t data);
void dma8_len_hi_w(uint8_t data);
void dma16_len_lo_w(uint8_t data);
void dma16_len_hi_w(uint8_t data);
uint8_t mode_r();
void mode_w(uint8_t data);
// host ports
DECLARE_READ8_MEMBER( host_data_r );
DECLARE_WRITE8_MEMBER( host_cmd_w );
DECLARE_WRITE8_MEMBER( dsp_reset_w );
DECLARE_READ8_MEMBER( dsp_wbuf_status_r );
DECLARE_READ8_MEMBER( dsp_rbuf_status_r );
DECLARE_READ8_MEMBER( invalid_r );
DECLARE_WRITE8_MEMBER( invalid_w );
uint8_t host_data_r();
void host_cmd_w(uint8_t data);
void dsp_reset_w(uint8_t data);
uint8_t dsp_wbuf_status_r(offs_t offset);
uint8_t dsp_rbuf_status_r(offs_t offset);
void sb16_io(address_map &map);
void host_io(address_map &map);
void control_timer(bool start);

View File

@ -77,7 +77,7 @@ static const int m_cmd_fifo_length[256] =
static const int protection_magic[4] = { 0x96, 0xa5, 0x69, 0x5a };
READ8_MEMBER( sb8_device::ym3812_16_r )
uint8_t sb8_device::ym3812_16_r(offs_t offset)
{
uint8_t retVal = 0xff;
switch(offset)
@ -87,7 +87,7 @@ READ8_MEMBER( sb8_device::ym3812_16_r )
return retVal;
}
WRITE8_MEMBER( sb8_device::ym3812_16_w )
void sb8_device::ym3812_16_w(offs_t offset, uint8_t data)
{
switch(offset)
{
@ -96,17 +96,17 @@ WRITE8_MEMBER( sb8_device::ym3812_16_w )
}
}
READ8_MEMBER( isa8_sblaster1_0_device::saa1099_16_r )
uint8_t isa8_sblaster1_0_device::saa1099_16_r(offs_t offset)
{
return 0xff;
}
WRITE8_MEMBER( isa8_sblaster1_0_device::saa1099_1_16_w )
void isa8_sblaster1_0_device::saa1099_1_16_w(offs_t offset, uint8_t data)
{
m_saa1099_1->write(offset, data);
}
WRITE8_MEMBER( isa8_sblaster1_0_device::saa1099_2_16_w )
void isa8_sblaster1_0_device::saa1099_2_16_w(offs_t offset, uint8_t data)
{
m_saa1099_2->write(offset, data);
}
@ -164,7 +164,7 @@ uint8_t sb_device::dequeue_r()
}
READ8_MEMBER( sb_device::dsp_reset_r )
uint8_t sb_device::dsp_reset_r(offs_t offset)
{
// printf("read DSP reset @ %x\n", offset);
if(offset)
@ -173,7 +173,7 @@ READ8_MEMBER( sb_device::dsp_reset_r )
return 0xff;
}
WRITE8_MEMBER( sb_device::dsp_reset_w )
void sb_device::dsp_reset_w(offs_t offset, uint8_t data)
{
// printf("%02x to DSP reset @ %x\n", data, offset);
if(offset)
@ -219,7 +219,7 @@ WRITE8_MEMBER( sb_device::dsp_reset_w )
//printf("%02x\n",data);
}
READ8_MEMBER( sb_device::dsp_data_r )
uint8_t sb_device::dsp_data_r(offs_t offset)
{
// printf("read DSP data @ %x\n", offset);
if(offset)
@ -244,7 +244,7 @@ READ8_MEMBER( sb_device::dsp_data_r )
return dequeue_r();
}
WRITE8_MEMBER( sb_device::dsp_data_w )
void sb_device::dsp_data_w(offs_t offset, uint8_t data)
{
// printf("%02x to DSP data @ %x\n", data, offset);
if(offset)
@ -252,7 +252,7 @@ WRITE8_MEMBER( sb_device::dsp_data_w )
logerror("Soundblaster DSP data port undocumented write\n");
}
READ8_MEMBER(sb_device::dsp_rbuf_status_r)
uint8_t sb_device::dsp_rbuf_status_r(offs_t offset)
{
// printf("read Rbufstat @ %x\n", offset);
@ -281,7 +281,7 @@ READ8_MEMBER(sb_device::dsp_rbuf_status_r)
return m_dsp.rbuf_status;
}
READ8_MEMBER(sb_device::dsp_wbuf_status_r)
uint8_t sb_device::dsp_wbuf_status_r(offs_t offset)
{
// printf("read Wbufstat @ %x\n", offset);
@ -303,7 +303,7 @@ READ8_MEMBER(sb_device::dsp_wbuf_status_r)
return m_dsp.wbuf_status;
}
WRITE8_MEMBER(sb_device::dsp_rbuf_status_w)
void sb_device::dsp_rbuf_status_w(offs_t offset, uint8_t data)
{
// printf("%02x to Rbufstat @ %x\n", data, offset);
if(offset)
@ -640,7 +640,7 @@ void sb_device::process_fifo(uint8_t cmd)
}
}
WRITE8_MEMBER(sb_device::dsp_cmd_w)
void sb_device::dsp_cmd_w(offs_t offset, uint8_t data)
{
// printf("%02x to DSP command @ %x\n", data, offset);
@ -710,7 +710,7 @@ void sb_device::adpcm_decode(uint8_t sample, int size)
m_rdac->write(m_dsp.adpcm_ref << 8);
}
READ8_MEMBER( sb16_device::mpu401_r )
uint8_t sb16_device::mpu401_r(offs_t offset)
{
uint8_t res;
@ -744,7 +744,7 @@ READ8_MEMBER( sb16_device::mpu401_r )
return res;
}
WRITE8_MEMBER( sb16_device::mpu401_w )
void sb16_device::mpu401_w(offs_t offset, uint8_t data)
{
if(offset == 0) // data
{
@ -824,14 +824,14 @@ void sb16_device::mixer_reset()
mixer_set();
}
READ8_MEMBER( sb16_device::mixer_r )
uint8_t sb16_device::mixer_r(offs_t offset)
{
if(offset == 0)
return m_mixer.status;
return m_mixer.data;
}
WRITE8_MEMBER( sb16_device::mixer_w )
void sb16_device::mixer_w(offs_t offset, uint8_t data)
{
if(offset == 0)
{
@ -1257,10 +1257,10 @@ isa16_sblaster16_device::isa16_sblaster16_device(const machine_config &mconfig,
void sb8_device::device_start()
{
m_isa->install_device(0x0200, 0x0207, read8_delegate(*subdevice<pc_joy_device>("pc_joy"), FUNC(pc_joy_device::joy_port_r)), write8_delegate(*subdevice<pc_joy_device>("pc_joy"), FUNC(pc_joy_device::joy_port_w)));
m_isa->install_device(0x0226, 0x0227, read8_delegate(*this, FUNC(sb_device::dsp_reset_r)), write8_delegate(*this, FUNC(sb_device::dsp_reset_w)));
m_isa->install_device(0x022a, 0x022b, read8_delegate(*this, FUNC(sb_device::dsp_data_r)), write8_delegate(*this, FUNC(sb_device::dsp_data_w)));
m_isa->install_device(0x022c, 0x022d, read8_delegate(*this, FUNC(sb_device::dsp_wbuf_status_r)), write8_delegate(*this, FUNC(sb_device::dsp_cmd_w)));
m_isa->install_device(0x022e, 0x022f, read8_delegate(*this, FUNC(sb_device::dsp_rbuf_status_r)), write8_delegate(*this, FUNC(sb_device::dsp_rbuf_status_w)));
m_isa->install_device(0x0226, 0x0227, read8sm_delegate(*this, FUNC(sb_device::dsp_reset_r)), write8sm_delegate(*this, FUNC(sb_device::dsp_reset_w)));
m_isa->install_device(0x022a, 0x022b, read8sm_delegate(*this, FUNC(sb_device::dsp_data_r)), write8sm_delegate(*this, FUNC(sb_device::dsp_data_w)));
m_isa->install_device(0x022c, 0x022d, read8sm_delegate(*this, FUNC(sb_device::dsp_wbuf_status_r)), write8sm_delegate(*this, FUNC(sb_device::dsp_cmd_w)));
m_isa->install_device(0x022e, 0x022f, read8sm_delegate(*this, FUNC(sb_device::dsp_rbuf_status_r)), write8sm_delegate(*this, FUNC(sb_device::dsp_rbuf_status_w)));
if(m_dsp.version >= 0x0301)
{
ymf262_device &ymf262 = *subdevice<ymf262_device>("ymf262");
@ -1271,8 +1271,8 @@ void sb8_device::device_start()
}
else
{
m_isa->install_device(0x0388, 0x0389, read8_delegate(*this, FUNC(sb8_device::ym3812_16_r)), write8_delegate(*this, FUNC(sb8_device::ym3812_16_w)));
m_isa->install_device(0x0228, 0x0229, read8_delegate(*this, FUNC(sb8_device::ym3812_16_r)), write8_delegate(*this, FUNC(sb8_device::ym3812_16_w)));
m_isa->install_device(0x0388, 0x0389, read8sm_delegate(*this, FUNC(sb8_device::ym3812_16_r)), write8sm_delegate(*this, FUNC(sb8_device::ym3812_16_w)));
m_isa->install_device(0x0228, 0x0229, read8sm_delegate(*this, FUNC(sb8_device::ym3812_16_r)), write8sm_delegate(*this, FUNC(sb8_device::ym3812_16_w)));
}
sb_device::device_start();
@ -1282,8 +1282,8 @@ void isa8_sblaster1_0_device::device_start()
{
set_isa_device();
// 1.0 always has the SAA1099s for CMS back-compatibility
m_isa->install_device(0x0220, 0x0221, read8_delegate(*this, FUNC(isa8_sblaster1_0_device::saa1099_16_r)), write8_delegate(*this, FUNC(isa8_sblaster1_0_device::saa1099_1_16_w)));
m_isa->install_device(0x0222, 0x0223, read8_delegate(*this, FUNC(isa8_sblaster1_0_device::saa1099_16_r)), write8_delegate(*this, FUNC(isa8_sblaster1_0_device::saa1099_2_16_w)));
m_isa->install_device(0x0220, 0x0221, read8sm_delegate(*this, FUNC(isa8_sblaster1_0_device::saa1099_16_r)), write8sm_delegate(*this, FUNC(isa8_sblaster1_0_device::saa1099_1_16_w)));
m_isa->install_device(0x0222, 0x0223, read8sm_delegate(*this, FUNC(isa8_sblaster1_0_device::saa1099_16_r)), write8sm_delegate(*this, FUNC(isa8_sblaster1_0_device::saa1099_2_16_w)));
m_isa->set_dma_channel(1, this, false);
m_dsp.version = 0x0105;
sb8_device::device_start();
@ -1302,12 +1302,12 @@ void sb16_device::device_start()
{
ymf262_device &ymf262 = *subdevice<ymf262_device>("ymf262");
m_isa->install_device(0x0200, 0x0207, read8_delegate(*subdevice<pc_joy_device>("pc_joy"), FUNC(pc_joy_device::joy_port_r)), write8_delegate(*subdevice<pc_joy_device>("pc_joy"), FUNC(pc_joy_device::joy_port_w)));
m_isa->install_device(0x0226, 0x0227, read8_delegate(*this, FUNC(sb_device::dsp_reset_r)), write8_delegate(*this, FUNC(sb_device::dsp_reset_w)));
m_isa->install_device(0x022a, 0x022b, read8_delegate(*this, FUNC(sb_device::dsp_data_r)), write8_delegate(*this, FUNC(sb_device::dsp_data_w)));
m_isa->install_device(0x022c, 0x022d, read8_delegate(*this, FUNC(sb_device::dsp_wbuf_status_r)), write8_delegate(*this, FUNC(sb_device::dsp_cmd_w)));
m_isa->install_device(0x022e, 0x022f, read8_delegate(*this, FUNC(sb_device::dsp_rbuf_status_r)), write8_delegate(*this, FUNC(sb_device::dsp_rbuf_status_w)));
m_isa->install_device(0x0224, 0x0225, read8_delegate(*this, FUNC(sb16_device::mixer_r)), write8_delegate(*this, FUNC(sb16_device::mixer_w)));
m_isa->install_device(0x0330, 0x0331, read8_delegate(*this, FUNC(sb16_device::mpu401_r)), write8_delegate(*this, FUNC(sb16_device::mpu401_w)));
m_isa->install_device(0x0226, 0x0227, read8sm_delegate(*this, FUNC(sb_device::dsp_reset_r)), write8sm_delegate(*this, FUNC(sb_device::dsp_reset_w)));
m_isa->install_device(0x022a, 0x022b, read8sm_delegate(*this, FUNC(sb_device::dsp_data_r)), write8sm_delegate(*this, FUNC(sb_device::dsp_data_w)));
m_isa->install_device(0x022c, 0x022d, read8sm_delegate(*this, FUNC(sb_device::dsp_wbuf_status_r)), write8sm_delegate(*this, FUNC(sb_device::dsp_cmd_w)));
m_isa->install_device(0x022e, 0x022f, read8sm_delegate(*this, FUNC(sb_device::dsp_rbuf_status_r)), write8sm_delegate(*this, FUNC(sb_device::dsp_rbuf_status_w)));
m_isa->install_device(0x0224, 0x0225, read8sm_delegate(*this, FUNC(sb16_device::mixer_r)), write8sm_delegate(*this, FUNC(sb16_device::mixer_w)));
m_isa->install_device(0x0330, 0x0331, read8sm_delegate(*this, FUNC(sb16_device::mpu401_r)), write8sm_delegate(*this, FUNC(sb16_device::mpu401_w)));
m_isa->install_device(0x0388, 0x038b, read8sm_delegate(ymf262, FUNC(ymf262_device::read)), write8sm_delegate(ymf262, FUNC(ymf262_device::write)));
m_isa->install_device(0x0220, 0x0223, read8sm_delegate(ymf262, FUNC(ymf262_device::read)), write8sm_delegate(ymf262, FUNC(ymf262_device::write)));
m_isa->install_device(0x0228, 0x0229, read8sm_delegate(ymf262, FUNC(ymf262_device::read)), write8sm_delegate(ymf262, FUNC(ymf262_device::write)));

View File

@ -28,14 +28,14 @@ public:
void queue_r(uint8_t data);
uint8_t dequeue_r();
DECLARE_READ8_MEMBER(dsp_reset_r);
DECLARE_WRITE8_MEMBER(dsp_reset_w);
DECLARE_READ8_MEMBER(dsp_data_r);
DECLARE_WRITE8_MEMBER(dsp_data_w);
DECLARE_READ8_MEMBER(dsp_rbuf_status_r);
DECLARE_READ8_MEMBER(dsp_wbuf_status_r);
DECLARE_WRITE8_MEMBER(dsp_rbuf_status_w);
DECLARE_WRITE8_MEMBER(dsp_cmd_w);
uint8_t dsp_reset_r(offs_t offset);
void dsp_reset_w(offs_t offset, uint8_t data);
uint8_t dsp_data_r(offs_t offset);
void dsp_data_w(offs_t offset, uint8_t data);
uint8_t dsp_rbuf_status_r(offs_t offset);
uint8_t dsp_wbuf_status_r(offs_t offset);
void dsp_rbuf_status_w(offs_t offset, uint8_t data);
void dsp_cmd_w(offs_t offset, uint8_t data);
DECLARE_WRITE_LINE_MEMBER( midi_rx_w ) { device_serial_interface::rx_w((uint8_t)state); }
@ -150,8 +150,8 @@ class sb8_device : public sb_device,
public device_isa8_card_interface
{
public:
DECLARE_READ8_MEMBER(ym3812_16_r);
DECLARE_WRITE8_MEMBER(ym3812_16_w);
uint8_t ym3812_16_r(offs_t offset);
void ym3812_16_w(offs_t offset, uint8_t data);
virtual ioport_constructor device_input_ports() const override;
protected:
// construction/destruction
@ -172,9 +172,9 @@ public:
// construction/destruction
isa8_sblaster1_0_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
DECLARE_READ8_MEMBER(saa1099_16_r);
DECLARE_WRITE8_MEMBER(saa1099_1_16_w);
DECLARE_WRITE8_MEMBER(saa1099_2_16_w);
uint8_t saa1099_16_r(offs_t offset);
void saa1099_1_16_w(offs_t offset, uint8_t data);
void saa1099_2_16_w(offs_t offset, uint8_t data);
protected:
// device-level overrides
@ -207,10 +207,10 @@ class sb16_device : public sb_device,
public device_isa16_card_interface
{
public:
DECLARE_READ8_MEMBER(mpu401_r);
DECLARE_WRITE8_MEMBER(mpu401_w);
DECLARE_READ8_MEMBER(mixer_r);
DECLARE_WRITE8_MEMBER(mixer_w);
uint8_t mpu401_r(offs_t offset);
void mpu401_w(offs_t offset, uint8_t data);
uint8_t mixer_r(offs_t offset);
void mixer_w(offs_t offset, uint8_t data);
virtual ioport_constructor device_input_ports() const override;
protected:
// construction/destruction

View File

@ -389,7 +389,7 @@ void sc499_device::device_reset()
m_irq = m_irqdrq->read() & 7;
m_drq = m_irqdrq->read()>>4;
m_isa->install_device(base, base+7, read8_delegate(*this, FUNC(sc499_device::read)), write8_delegate(*this, FUNC(sc499_device::write)));
m_isa->install_device(base, base+7, read8sm_delegate(*this, FUNC(sc499_device::read)), write8sm_delegate(*this, FUNC(sc499_device::write)));
m_isa->set_dma_channel(m_drq, this, true);
m_installed = true;
@ -1014,7 +1014,7 @@ void sc499_device::write_dma_reset( uint8_t data)
m_control = 0;
}
WRITE8_MEMBER(sc499_device::write)
void sc499_device::write(offs_t offset, uint8_t data)
{
switch (offset)
{
@ -1036,7 +1036,7 @@ WRITE8_MEMBER(sc499_device::write)
}
}
READ8_MEMBER(sc499_device::read)
uint8_t sc499_device::read(offs_t offset)
{
uint8_t data = 0xff;

View File

@ -91,8 +91,8 @@ private:
void tape_status_set(uint16_t value);
// device register I/O
DECLARE_READ8_MEMBER(read);
DECLARE_WRITE8_MEMBER(write);
uint8_t read(offs_t offset);
void write(offs_t offset, uint8_t data);
void check_tape();

View File

@ -121,7 +121,7 @@ void side116_device::device_reset()
// install io access
if ((m_config->read() & 0x20) == 0x20)
m_isa->install_device(0x360, 0x36f, read8_delegate(*this, FUNC(side116_device::read)), write8_delegate(*this, FUNC(side116_device::write)));
m_isa->install_device(0x360, 0x36f, read8sm_delegate(*this, FUNC(side116_device::read)), write8sm_delegate(*this, FUNC(side116_device::write)));
}
@ -129,7 +129,7 @@ void side116_device::device_reset()
// IDE INTERFACE
//**************************************************************************
READ8_MEMBER( side116_device::read )
uint8_t side116_device::read(offs_t offset)
{
uint8_t data;
@ -155,7 +155,7 @@ READ8_MEMBER( side116_device::read )
return data;
}
WRITE8_MEMBER( side116_device::write )
void side116_device::write(offs_t offset, uint8_t data)
{
if (offset == 0)
{

View File

@ -29,8 +29,8 @@ public:
// construction/destruction
side116_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
DECLARE_READ8_MEMBER( read );
DECLARE_WRITE8_MEMBER( write );
uint8_t read(offs_t offset);
void write(offs_t offset, uint8_t data);
protected:
// device-level overrides

View File

@ -14,13 +14,14 @@
DEFINE_DEVICE_TYPE(ISA8_STEREO_FX, stereo_fx_device, "stereo_fx", "ATi Stereo F/X Audio Adapter")
READ8_MEMBER( stereo_fx_device::dev_dsp_data_r )
uint8_t stereo_fx_device::dev_dsp_data_r()
{
if (!machine().side_effects_disabled())
m_data_in = false;
return m_in_byte;
}
WRITE8_MEMBER( stereo_fx_device::dev_dsp_data_w )
void stereo_fx_device::dev_dsp_data_w(uint8_t data)
{
m_data_out = true;
m_out_byte = data;
@ -48,12 +49,12 @@ void stereo_fx_device::p3_w(uint8_t data)
m_t1 = (data & 0x20) >> 5;
}
WRITE8_MEMBER( stereo_fx_device::dev_host_irq_w )
void stereo_fx_device::dev_host_irq_w(uint8_t data)
{
m_isa->irq5_w(1);
}
WRITE8_MEMBER( stereo_fx_device::raise_drq_w )
void stereo_fx_device::raise_drq_w(uint8_t data)
{
m_isa->drq1_w(1);
}
@ -68,7 +69,7 @@ WRITE8_MEMBER( stereo_fx_device::raise_drq_w )
* bit6 -
* bit7 -
*/
WRITE8_MEMBER( stereo_fx_device::port20_w )
void stereo_fx_device::port20_w(uint8_t data)
{
m_port20 = data;
}
@ -83,7 +84,7 @@ WRITE8_MEMBER( stereo_fx_device::port20_w )
* bit6 -
* bit7 -
*/
WRITE8_MEMBER( stereo_fx_device::port00_w )
void stereo_fx_device::port00_w(uint8_t data)
{
m_port00 = data;
}
@ -142,13 +143,14 @@ void stereo_fx_device::device_add_mconfig(machine_config &config)
PC_JOY(config, m_joy);
}
READ8_MEMBER( stereo_fx_device::dsp_data_r )
uint8_t stereo_fx_device::dsp_data_r()
{
if (!machine().side_effects_disabled())
m_data_out = false;
return m_out_byte;
}
WRITE8_MEMBER( stereo_fx_device::dsp_cmd_w )
void stereo_fx_device::dsp_cmd_w(uint8_t data)
{
m_data_in = true;
m_in_byte = data;
@ -168,30 +170,32 @@ void stereo_fx_device::dack_w(int line, uint8_t data)
m_in_byte = data;
}
WRITE8_MEMBER( stereo_fx_device::dsp_reset_w )
void stereo_fx_device::dsp_reset_w(uint8_t data)
{
device_reset();
m_cpu->pulse_input_line(INPUT_LINE_RESET, attotime::zero);
}
READ8_MEMBER( stereo_fx_device::dsp_wbuf_status_r )
uint8_t stereo_fx_device::dsp_wbuf_status_r()
{
return m_data_in << 7;
}
READ8_MEMBER( stereo_fx_device::dsp_rbuf_status_r )
uint8_t stereo_fx_device::dsp_rbuf_status_r()
{
if (!machine().side_effects_disabled())
m_isa->irq5_w(0);
return m_data_out << 7;
}
WRITE8_MEMBER( stereo_fx_device::invalid_w )
void stereo_fx_device::invalid_w(uint8_t data)
{
logerror("stereo fx: invalid port write\n");
}
READ8_MEMBER( stereo_fx_device::invalid_r )
uint8_t stereo_fx_device::invalid_r()
{
if (!machine().side_effects_disabled())
logerror("stereo fx: invalid port read\n");
return 0xff;
}
@ -211,10 +215,10 @@ void stereo_fx_device::device_start()
set_isa_device();
m_isa->install_device(0x0200, 0x0207, read8_delegate(*subdevice<pc_joy_device>("pc_joy"), FUNC(pc_joy_device::joy_port_r)), write8_delegate(*subdevice<pc_joy_device>("pc_joy"), FUNC(pc_joy_device::joy_port_w)));
m_isa->install_device(0x0226, 0x0227, read8_delegate(*this, FUNC(stereo_fx_device::invalid_r)), write8_delegate(*this, FUNC(stereo_fx_device::dsp_reset_w)));
m_isa->install_device(0x022a, 0x022b, read8_delegate(*this, FUNC(stereo_fx_device::dsp_data_r)), write8_delegate(*this, FUNC(stereo_fx_device::invalid_w)));
m_isa->install_device(0x022c, 0x022d, read8_delegate(*this, FUNC(stereo_fx_device::dsp_wbuf_status_r)), write8_delegate(*this, FUNC(stereo_fx_device::dsp_cmd_w)));
m_isa->install_device(0x022e, 0x022f, read8_delegate(*this, FUNC(stereo_fx_device::dsp_rbuf_status_r)), write8_delegate(*this, FUNC(stereo_fx_device::invalid_w)));
m_isa->install_device(0x0226, 0x0227, read8smo_delegate(*this, FUNC(stereo_fx_device::invalid_r)), write8smo_delegate(*this, FUNC(stereo_fx_device::dsp_reset_w)));
m_isa->install_device(0x022a, 0x022b, read8smo_delegate(*this, FUNC(stereo_fx_device::dsp_data_r)), write8smo_delegate(*this, FUNC(stereo_fx_device::invalid_w)));
m_isa->install_device(0x022c, 0x022d, read8smo_delegate(*this, FUNC(stereo_fx_device::dsp_wbuf_status_r)), write8smo_delegate(*this, FUNC(stereo_fx_device::dsp_cmd_w)));
m_isa->install_device(0x022e, 0x022f, read8smo_delegate(*this, FUNC(stereo_fx_device::dsp_rbuf_status_r)), write8smo_delegate(*this, FUNC(stereo_fx_device::invalid_w)));
m_isa->install_device(0x0388, 0x0389, read8sm_delegate(ym3812, FUNC(ym3812_device::read)), write8sm_delegate(ym3812, FUNC(ym3812_device::write)));
m_isa->install_device(0x0228, 0x0229, read8sm_delegate(ym3812, FUNC(ym3812_device::read)), write8sm_delegate(ym3812, FUNC(ym3812_device::write)));
m_timer = timer_alloc();

View File

@ -54,24 +54,24 @@ private:
uint8_t m_t1;
// mcu ports
DECLARE_READ8_MEMBER( dev_dsp_data_r );
DECLARE_WRITE8_MEMBER( dev_dsp_data_w );
uint8_t dev_dsp_data_r();
void dev_dsp_data_w(uint8_t data);
uint8_t p1_r();
uint8_t p3_r();
void p3_w(uint8_t data);
DECLARE_WRITE8_MEMBER( dev_host_irq_w );
DECLARE_WRITE8_MEMBER( raise_drq_w );
DECLARE_WRITE8_MEMBER( port20_w );
DECLARE_WRITE8_MEMBER( port00_w );
void dev_host_irq_w(uint8_t data);
void raise_drq_w(uint8_t data);
void port20_w(uint8_t data);
void port00_w(uint8_t data);
// host ports
DECLARE_READ8_MEMBER( dsp_data_r );
DECLARE_WRITE8_MEMBER( dsp_cmd_w );
DECLARE_WRITE8_MEMBER( dsp_reset_w );
DECLARE_READ8_MEMBER( dsp_wbuf_status_r );
DECLARE_READ8_MEMBER( dsp_rbuf_status_r );
DECLARE_READ8_MEMBER( invalid_r );
DECLARE_WRITE8_MEMBER( invalid_w );
uint8_t dsp_data_r();
void dsp_cmd_w(uint8_t data);
void dsp_reset_w(uint8_t data);
uint8_t dsp_wbuf_status_r();
uint8_t dsp_rbuf_status_r();
uint8_t invalid_r();
void invalid_w(uint8_t data);
void stereo_fx_io(address_map &map);
void stereo_fx_rom(address_map &map);

View File

@ -57,7 +57,7 @@ Device Control (out) 14 7
#include "xtide.h"
READ8_MEMBER( xtide_device::read )
uint8_t xtide_device::read(offs_t offset)
{
uint8_t result;
@ -85,7 +85,7 @@ READ8_MEMBER( xtide_device::read )
return result;
}
WRITE8_MEMBER( xtide_device::write )
void xtide_device::write(offs_t offset, uint8_t data)
{
// logerror("%s xtide_device::write: offset=%d, data=%2X\n",device->machine().describe_context(),offset,data);
@ -324,7 +324,7 @@ void xtide_device::device_reset()
m_irq_number = (ioport("IRQ")->read() & 0x07);
m_isa->install_memory(base_address, base_address + 0x1fff, read8_delegate(*m_eeprom, FUNC(eeprom_parallel_28xx_device::read)), write8_delegate(*m_eeprom, FUNC(eeprom_parallel_28xx_device::write)));
m_isa->install_device(io_address, io_address + 0xf, read8_delegate(*this, FUNC(xtide_device::read)), write8_delegate(*this, FUNC(xtide_device::write)));
m_isa->install_device(io_address, io_address + 0xf, read8sm_delegate(*this, FUNC(xtide_device::read)), write8sm_delegate(*this, FUNC(xtide_device::write)));
//logerror("xtide_device::device_reset(), bios_base=0x%5X to 0x%5X, I/O=0x%3X, IRQ=%d\n",base_address,base_address + (16*1024) -1 ,io_address,irq);
}

View File

@ -19,8 +19,8 @@ public:
// construction/destruction
xtide_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
DECLARE_READ8_MEMBER(read);
DECLARE_WRITE8_MEMBER(write);
uint8_t read(offs_t offset);
void write(offs_t offset, uint8_t data);
protected:
// device-level overrides

View File

@ -529,7 +529,7 @@ READ16_MEMBER(apollo_state::apollo_atbus_io_r)
uint32_t isa_addr = (offset & 3) + ((offset & ~0x1ff) >> 7);
// Motorola CPU is MSB first, ISA Bus is LSB first
uint16_t data = m_isa->io16_swap_r(space, isa_addr, mem_mask);
uint16_t data = m_isa->io16_swap_r(isa_addr, mem_mask);
SLOG2(("apollo_atbus_io_r at %08x -> %04x = %04x & %04x", ATBUS_IO_BASE + offset*2, isa_addr*2, data, mem_mask));
@ -543,7 +543,7 @@ WRITE16_MEMBER(apollo_state::apollo_atbus_io_w)
SLOG2(("apollo_atbus_io_w at %08x -> %04x = %04x & %04x", ATBUS_IO_BASE + offset*2, isa_addr*2, data, mem_mask));
// Motorola CPU is MSB first, ISA Bus is LSB first
m_isa->io16_swap_w(space, isa_addr, data, mem_mask);
m_isa->io16_swap_w(isa_addr, data, mem_mask);
}
/***************************************************************************
@ -555,7 +555,7 @@ READ16_MEMBER(apollo_state::apollo_atbus_memory_r)
uint16_t data;
// Motorola CPU is MSB first, ISA Bus is LSB first
data = m_isa->mem16_swap_r(space, offset, mem_mask);
data = m_isa->mem16_swap_r(offset, mem_mask);
SLOG2(("apollo_atbus_memory_r at %08x = %04x & %04x", ATBUS_MEMORY_BASE + offset * 2, data, mem_mask));
return data;
@ -566,7 +566,7 @@ WRITE16_MEMBER(apollo_state::apollo_atbus_memory_w)
SLOG2(("apollo_atbus_memory_w at %08x = %04x & %04x", ATBUS_MEMORY_BASE + offset*2, data, mem_mask));
// Motorola CPU is MSB first, ISA Bus is LSB first
m_isa->mem16_swap_w(space, offset, data, mem_mask);
m_isa->mem16_swap_w(offset, data, mem_mask);
}
/***************************************************************************

View File

@ -34,8 +34,8 @@ class indiana_state : public driver_device
{
public:
indiana_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag) ,
m_maincpu(*this, "maincpu")
: driver_device(mconfig, type, tag)
, m_maincpu(*this, "maincpu")
{
}
@ -43,10 +43,13 @@ public:
void init_indiana();
private:
protected:
virtual void machine_reset() override;
required_device<cpu_device> m_maincpu;
private:
void indiana_mem(address_map &map);
required_device<cpu_device> m_maincpu;
};