summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices')
-rw-r--r--src/devices/bus/a2bus/a2applicard.cpp14
-rw-r--r--src/devices/bus/a2bus/a2softcard.cpp7
-rw-r--r--src/devices/bus/a2bus/a2themill.cpp7
-rw-r--r--src/devices/bus/a2bus/pc_xporter.cpp28
-rw-r--r--src/devices/bus/a2bus/transwarp.cpp7
-rw-r--r--src/devices/bus/abcbus/cadmouse.cpp16
-rw-r--r--src/devices/bus/abcbus/db411223.cpp12
-rw-r--r--src/devices/bus/abcbus/fd2.cpp22
-rw-r--r--src/devices/bus/abcbus/hdc.cpp12
-rw-r--r--src/devices/bus/abcbus/lux10828.cpp26
-rw-r--r--src/devices/bus/abcbus/lux21046.cpp38
-rw-r--r--src/devices/bus/abcbus/lux21056.cpp40
-rw-r--r--src/devices/bus/abcbus/unidisk.cpp12
-rw-r--r--src/devices/bus/abckb/abc77.cpp16
-rw-r--r--src/devices/bus/abckb/abc99.cpp53
-rw-r--r--src/devices/bus/adamnet/ddp.cpp26
-rw-r--r--src/devices/bus/adamnet/fdc.cpp46
-rw-r--r--src/devices/bus/adamnet/kb.cpp24
-rw-r--r--src/devices/bus/adamnet/printer.cpp24
-rw-r--r--src/devices/bus/adamnet/spi.cpp18
-rw-r--r--src/devices/bus/amiga/keyboard/a500.cpp33
-rw-r--r--src/devices/bus/amiga/zorro/a2232.cpp29
-rw-r--r--src/devices/bus/bbc/tube/tube_6502.cpp7
-rw-r--r--src/devices/bus/bbc/tube/tube_65c102.cpp7
-rw-r--r--src/devices/bus/bbc/tube/tube_80186.cpp14
-rw-r--r--src/devices/bus/bbc/tube/tube_80286.cpp24
-rw-r--r--src/devices/bus/bbc/tube/tube_arm.cpp13
-rw-r--r--src/devices/bus/bbc/tube/tube_casper.cpp11
-rw-r--r--src/devices/bus/bbc/tube/tube_z80.cpp21
-rw-r--r--src/devices/bus/bbc/tube/tube_zep100.cpp16
-rw-r--r--src/devices/bus/c64/cpm.cpp14
-rw-r--r--src/devices/bus/c64/fcc.cpp9
-rw-r--r--src/devices/bus/c64/multiscreen.cpp7
-rw-r--r--src/devices/bus/c64/supercpu.cpp11
-rw-r--r--src/devices/bus/cbm2/hrg.cpp18
-rw-r--r--src/devices/bus/cbmiec/c1541.cpp20
-rw-r--r--src/devices/bus/cbmiec/c1571.cpp38
-rw-r--r--src/devices/bus/cbmiec/c1581.cpp13
-rw-r--r--src/devices/bus/cbmiec/cmdhd.cpp19
-rw-r--r--src/devices/bus/cbmiec/fd2000.cpp30
-rw-r--r--src/devices/bus/cbmiec/interpod.cpp15
-rw-r--r--src/devices/bus/cbmiec/serialbox.cpp7
-rw-r--r--src/devices/bus/cbmiec/vic1515.cpp12
-rw-r--r--src/devices/bus/cbmiec/vic1520.cpp11
-rw-r--r--src/devices/bus/centronics/comxpl80.cpp15
-rw-r--r--src/devices/bus/centronics/epson_ex800.cpp21
-rw-r--r--src/devices/bus/centronics/epson_lx800.cpp15
-rw-r--r--src/devices/bus/centronics/epson_lx810l.cpp15
-rw-r--r--src/devices/bus/centronics/nec_p72.cpp7
-rw-r--r--src/devices/bus/compis/hrg.cpp20
-rw-r--r--src/devices/bus/dmv/k230.cpp22
-rw-r--r--src/devices/bus/ecbbus/grip.cpp44
-rw-r--r--src/devices/bus/econet/e01.cpp33
-rw-r--r--src/devices/bus/epson_sio/pf10.cpp28
-rw-r--r--src/devices/bus/epson_sio/tf20.cpp30
-rw-r--r--src/devices/bus/hp80_io/82937.cpp11
-rw-r--r--src/devices/bus/hp9845_io/98034.cpp34
-rw-r--r--src/devices/bus/hp9845_io/98035.cpp44
-rw-r--r--src/devices/bus/ieee488/c2031.cpp13
-rw-r--r--src/devices/bus/ieee488/c2040.cpp48
-rw-r--r--src/devices/bus/ieee488/c8050.cpp46
-rw-r--r--src/devices/bus/ieee488/c8280.cpp46
-rw-r--r--src/devices/bus/ieee488/d9060.cpp44
-rw-r--r--src/devices/bus/ieee488/hardbox.cpp22
-rw-r--r--src/devices/bus/ieee488/hp9895.cpp40
-rw-r--r--src/devices/bus/ieee488/shark.cpp12
-rw-r--r--src/devices/bus/ieee488/softbox.cpp28
-rw-r--r--src/devices/bus/imi7000/imi5000h.cpp40
-rw-r--r--src/devices/bus/isa/aha1542.cpp15
-rw-r--r--src/devices/bus/isa/dectalk.cpp50
-rw-r--r--src/devices/bus/isa/finalchs.cpp17
-rw-r--r--src/devices/bus/isa/ibm_mfc.cpp34
-rw-r--r--src/devices/bus/isa/num9rev.cpp7
-rw-r--r--src/devices/bus/isa/pgc.cpp26
-rw-r--r--src/devices/bus/isa/sb16.cpp47
-rw-r--r--src/devices/bus/isa/stereo_fx.cpp26
-rw-r--r--src/devices/bus/isa/wdxt_gen.cpp7
-rw-r--r--src/devices/bus/kc/d004.cpp55
-rw-r--r--src/devices/bus/megadrive/svp.cpp30
-rw-r--r--src/devices/bus/msx_cart/bm_012.cpp9
-rw-r--r--src/devices/bus/msx_cart/konami.cpp7
-rw-r--r--src/devices/bus/msx_cart/moonsound.cpp9
-rw-r--r--src/devices/bus/newbrain/fdc.cpp24
-rw-r--r--src/devices/bus/odyssey2/chess.cpp18
-rw-r--r--src/devices/bus/pc_kbd/iskr1030.cpp7
-rw-r--r--src/devices/bus/pc_kbd/keytro.cpp14
-rw-r--r--src/devices/bus/pet/hsg.cpp18
-rw-r--r--src/devices/bus/pet/superpet.cpp7
-rw-r--r--src/devices/bus/plus4/c1551.cpp11
-rw-r--r--src/devices/bus/psi_kbd/ergoline.cpp12
-rw-r--r--src/devices/bus/s100/djdma.cpp12
-rw-r--r--src/devices/bus/scsi/s1410.cpp38
-rw-r--r--src/devices/bus/snes/event.cpp14
-rw-r--r--src/devices/bus/snes/sa1.cpp11
-rw-r--r--src/devices/bus/snes/sfx.cpp17
-rw-r--r--src/devices/bus/snes/upd.cpp28
-rw-r--r--src/devices/bus/spc1000/fdd.cpp28
-rw-r--r--src/devices/bus/tiki100/8088.cpp18
-rw-r--r--src/devices/bus/vcs/harmony_melody.cpp5
-rw-r--r--src/devices/bus/vme/vme_fccpu20.cpp29
-rw-r--r--src/devices/bus/vme/vme_fcisio.cpp23
-rw-r--r--src/devices/bus/vme/vme_fcscsi.cpp25
-rw-r--r--src/devices/bus/vme/vme_hcpu30.cpp33
-rw-r--r--src/devices/bus/vme/vme_mvme350.cpp17
-rw-r--r--src/devices/bus/wangpc/rtc.cpp48
-rw-r--r--src/devices/bus/wangpc/tig.cpp20
-rw-r--r--src/devices/bus/wangpc/wdc.cpp30
-rw-r--r--src/devices/machine/ie15.cpp50
-rw-r--r--src/devices/machine/ldpr8210.cpp14
-rw-r--r--src/devices/machine/ldv1000.cpp32
-rw-r--r--src/devices/machine/ldvp931.cpp13
-rw-r--r--src/devices/machine/mpu401.cpp26
-rw-r--r--src/devices/machine/pdc.cpp36
-rw-r--r--src/devices/machine/smioc.cpp19
-rw-r--r--src/devices/sound/bsmt2000.cpp24
-rw-r--r--src/devices/sound/qs1000.cpp16
-rw-r--r--src/devices/sound/qsound.cpp16
117 files changed, 1406 insertions, 1211 deletions
diff --git a/src/devices/bus/a2bus/a2applicard.cpp b/src/devices/bus/a2bus/a2applicard.cpp
index 30194a06b66..e9a15c19c74 100644
--- a/src/devices/bus/a2bus/a2applicard.cpp
+++ b/src/devices/bus/a2bus/a2applicard.cpp
@@ -29,13 +29,15 @@ DEFINE_DEVICE_TYPE(A2BUS_APPLICARD, a2bus_applicard_device, "a2aplcrd", "PCPI Ap
#define Z80_TAG "z80"
#define Z80_ROM_REGION "z80_rom"
-ADDRESS_MAP_START(a2bus_applicard_device::z80_mem)
- AM_RANGE(0x0000, 0xffff) AM_READWRITE(dma_r, dma_w)
-ADDRESS_MAP_END
+void a2bus_applicard_device::z80_mem(address_map &map)
+{
+ map(0x0000, 0xffff).rw(this, FUNC(a2bus_applicard_device::dma_r), FUNC(a2bus_applicard_device::dma_w));
+}
-ADDRESS_MAP_START(a2bus_applicard_device::z80_io)
- AM_RANGE(0x00, 0x60) AM_MIRROR(0xff00) AM_READWRITE(z80_io_r, z80_io_w)
-ADDRESS_MAP_END
+void a2bus_applicard_device::z80_io(address_map &map)
+{
+ map(0x00, 0x60).mirror(0xff00).rw(this, FUNC(a2bus_applicard_device::z80_io_r), FUNC(a2bus_applicard_device::z80_io_w));
+}
ROM_START( a2applicard )
ROM_REGION(0x800, Z80_ROM_REGION, 0)
diff --git a/src/devices/bus/a2bus/a2softcard.cpp b/src/devices/bus/a2bus/a2softcard.cpp
index 8e8314d45cd..4e04d8e0c58 100644
--- a/src/devices/bus/a2bus/a2softcard.cpp
+++ b/src/devices/bus/a2bus/a2softcard.cpp
@@ -24,9 +24,10 @@ DEFINE_DEVICE_TYPE(A2BUS_SOFTCARD, a2bus_softcard_device, "a2softcard", "Microso
#define Z80_TAG "z80"
-ADDRESS_MAP_START(a2bus_softcard_device::z80_mem)
- AM_RANGE(0x0000, 0xffff) AM_READWRITE(dma_r, dma_w)
-ADDRESS_MAP_END
+void a2bus_softcard_device::z80_mem(address_map &map)
+{
+ map(0x0000, 0xffff).rw(this, FUNC(a2bus_softcard_device::dma_r), FUNC(a2bus_softcard_device::dma_w));
+}
/***************************************************************************
FUNCTION PROTOTYPES
diff --git a/src/devices/bus/a2bus/a2themill.cpp b/src/devices/bus/a2bus/a2themill.cpp
index 41f2478b648..c55abe6975b 100644
--- a/src/devices/bus/a2bus/a2themill.cpp
+++ b/src/devices/bus/a2bus/a2themill.cpp
@@ -40,9 +40,10 @@ DEFINE_DEVICE_TYPE(A2BUS_THEMILL, a2bus_themill_device, "a2themill", "Stellation
#define M6809_TAG "m6809"
-ADDRESS_MAP_START(a2bus_themill_device::m6809_mem)
- AM_RANGE(0x0000, 0xffff) AM_READWRITE(dma_r, dma_w)
-ADDRESS_MAP_END
+void a2bus_themill_device::m6809_mem(address_map &map)
+{
+ map(0x0000, 0xffff).rw(this, FUNC(a2bus_themill_device::dma_r), FUNC(a2bus_themill_device::dma_w));
+}
/***************************************************************************
FUNCTION PROTOTYPES
diff --git a/src/devices/bus/a2bus/pc_xporter.cpp b/src/devices/bus/a2bus/pc_xporter.cpp
index 02a3affc9f2..fa5559d40b7 100644
--- a/src/devices/bus/a2bus/pc_xporter.cpp
+++ b/src/devices/bus/a2bus/pc_xporter.cpp
@@ -91,19 +91,21 @@
DEFINE_DEVICE_TYPE(A2BUS_PCXPORTER, a2bus_pcxporter_device, "a2pcxport", "Applied Engineering PC Transporter")
-ADDRESS_MAP_START(a2bus_pcxporter_device::pc_map)
- ADDRESS_MAP_UNMAP_HIGH
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(a2bus_pcxporter_device::pc_io)
- ADDRESS_MAP_UNMAP_HIGH
- AM_RANGE(0x0000, 0x000f) AM_DEVREADWRITE8("dma8237", am9517a_device, read, write, 0xffff)
- AM_RANGE(0x0020, 0x002f) AM_DEVREADWRITE8("pic8259", pic8259_device, read, write, 0xffff)
- AM_RANGE(0x0040, 0x004f) AM_DEVREADWRITE8("pit8253", pit8253_device, read, write, 0xffff)
- AM_RANGE(0x0060, 0x0065) AM_READWRITE8(kbd_6502_r, kbd_6502_w, 0xffff)
- AM_RANGE(0x0080, 0x008f) AM_WRITE8(pc_page_w, 0xffff)
- AM_RANGE(0x00a0, 0x00a1) AM_WRITE8(nmi_enable_w, 0xffff)
-ADDRESS_MAP_END
+void a2bus_pcxporter_device::pc_map(address_map &map)
+{
+ map.unmap_value_high();
+}
+
+void a2bus_pcxporter_device::pc_io(address_map &map)
+{
+ map.unmap_value_high();
+ map(0x0000, 0x000f).rw("dma8237", FUNC(am9517a_device::read), FUNC(am9517a_device::write));
+ map(0x0020, 0x002f).rw("pic8259", FUNC(pic8259_device::read), FUNC(pic8259_device::write));
+ map(0x0040, 0x004f).rw("pit8253", FUNC(pit8253_device::read), FUNC(pit8253_device::write));
+ map(0x0060, 0x0065).rw(this, FUNC(a2bus_pcxporter_device::kbd_6502_r), FUNC(a2bus_pcxporter_device::kbd_6502_w));
+ map(0x0080, 0x008f).w(this, FUNC(a2bus_pcxporter_device::pc_page_w));
+ map(0x00a0, 0x00a1).w(this, FUNC(a2bus_pcxporter_device::nmi_enable_w));
+}
/***************************************************************************
FUNCTION PROTOTYPES
diff --git a/src/devices/bus/a2bus/transwarp.cpp b/src/devices/bus/a2bus/transwarp.cpp
index bc916f7d308..09b91eb7343 100644
--- a/src/devices/bus/a2bus/transwarp.cpp
+++ b/src/devices/bus/a2bus/transwarp.cpp
@@ -31,9 +31,10 @@ DEFINE_DEVICE_TYPE(A2BUS_TRANSWARP, a2bus_transwarp_device, "a2twarp", "Applied
#define CPU_TAG "tw65c02"
-ADDRESS_MAP_START(a2bus_transwarp_device::m65c02_mem)
- AM_RANGE(0x0000, 0xffff) AM_READWRITE(dma_r, dma_w)
-ADDRESS_MAP_END
+void a2bus_transwarp_device::m65c02_mem(address_map &map)
+{
+ map(0x0000, 0xffff).rw(this, FUNC(a2bus_transwarp_device::dma_r), FUNC(a2bus_transwarp_device::dma_w));
+}
ROM_START( warprom )
ROM_REGION(0x1000, "twrom", 0)
diff --git a/src/devices/bus/abcbus/cadmouse.cpp b/src/devices/bus/abcbus/cadmouse.cpp
index b24a50122c3..8919162b90c 100644
--- a/src/devices/bus/abcbus/cadmouse.cpp
+++ b/src/devices/bus/abcbus/cadmouse.cpp
@@ -105,19 +105,21 @@ const tiny_rom_entry *abc_cadmouse_device::device_rom_region() const
// ADDRESS_MAP( abc_cadmouse_mem )
//-------------------------------------------------
-ADDRESS_MAP_START( abc_cadmouse_device::abc_cadmouse_mem )
- ADDRESS_MAP_UNMAP_HIGH
- ADDRESS_MAP_GLOBAL_MASK(0x3fff)
- AM_RANGE(0x0000, 0x3fff) AM_ROM AM_REGION(Z80_TAG, 0)
-ADDRESS_MAP_END
+void abc_cadmouse_device::abc_cadmouse_mem(address_map &map)
+{
+ map.unmap_value_high();
+ map.global_mask(0x3fff);
+ map(0x0000, 0x3fff).rom().region(Z80_TAG, 0);
+}
//-------------------------------------------------
// ADDRESS_MAP( abc_cadmouse_io )
//-------------------------------------------------
-ADDRESS_MAP_START( abc_cadmouse_device::abc_cadmouse_io )
-ADDRESS_MAP_END
+void abc_cadmouse_device::abc_cadmouse_io(address_map &map)
+{
+}
//-------------------------------------------------
// device_add_mconfig - add device configuration
diff --git a/src/devices/bus/abcbus/db411223.cpp b/src/devices/bus/abcbus/db411223.cpp
index 4d15085ecff..0af074f0c6e 100644
--- a/src/devices/bus/abcbus/db411223.cpp
+++ b/src/devices/bus/abcbus/db411223.cpp
@@ -49,17 +49,19 @@ const tiny_rom_entry *databoard_4112_23_t::device_rom_region() const
// ADDRESS_MAP( databoard_4112_23_mem )
//-------------------------------------------------
-ADDRESS_MAP_START(databoard_4112_23_t::databoard_4112_23_mem)
- AM_RANGE(0x0000, 0x1fff) AM_ROM AM_REGION(Z80_TAG, 0)
-ADDRESS_MAP_END
+void databoard_4112_23_t::databoard_4112_23_mem(address_map &map)
+{
+ map(0x0000, 0x1fff).rom().region(Z80_TAG, 0);
+}
//-------------------------------------------------
// ADDRESS_MAP( databoard_4112_23_io )
//-------------------------------------------------
-ADDRESS_MAP_START(databoard_4112_23_t::databoard_4112_23_io)
-ADDRESS_MAP_END
+void databoard_4112_23_t::databoard_4112_23_io(address_map &map)
+{
+}
//-------------------------------------------------
diff --git a/src/devices/bus/abcbus/fd2.cpp b/src/devices/bus/abcbus/fd2.cpp
index 3d8f4f6852c..35cfe35dc12 100644
--- a/src/devices/bus/abcbus/fd2.cpp
+++ b/src/devices/bus/abcbus/fd2.cpp
@@ -114,22 +114,24 @@ WRITE8_MEMBER( abc_fd2_device::status_w )
// ADDRESS_MAP( abc_fd2_mem )
//-------------------------------------------------
-ADDRESS_MAP_START(abc_fd2_device::abc_fd2_mem)
- AM_RANGE(0x0000, 0x03ff) AM_ROM AM_REGION(Z80_TAG, 0)
- AM_RANGE(0x0800, 0x0bff) AM_RAM
-ADDRESS_MAP_END
+void abc_fd2_device::abc_fd2_mem(address_map &map)
+{
+ map(0x0000, 0x03ff).rom().region(Z80_TAG, 0);
+ map(0x0800, 0x0bff).ram();
+}
//-------------------------------------------------
// ADDRESS_MAP( abc_fd2_io )
//-------------------------------------------------
-ADDRESS_MAP_START(abc_fd2_device::abc_fd2_io)
- ADDRESS_MAP_GLOBAL_MASK(0x73)
- AM_RANGE(0x30, 0x33) AM_DEVREADWRITE(Z80PIO_TAG, z80pio_device, read_alt, write_alt)
- AM_RANGE(0x50, 0x53) AM_DEVREADWRITE(FD1771_TAG, fd1771_device, read, write)
- AM_RANGE(0x60, 0x60) AM_WRITE(status_w)
-ADDRESS_MAP_END
+void abc_fd2_device::abc_fd2_io(address_map &map)
+{
+ map.global_mask(0x73);
+ map(0x30, 0x33).rw(Z80PIO_TAG, FUNC(z80pio_device::read_alt), FUNC(z80pio_device::write_alt));
+ map(0x50, 0x53).rw(FD1771_TAG, FUNC(fd1771_device::read), FUNC(fd1771_device::write));
+ map(0x60, 0x60).w(this, FUNC(abc_fd2_device::status_w));
+}
//-------------------------------------------------
diff --git a/src/devices/bus/abcbus/hdc.cpp b/src/devices/bus/abcbus/hdc.cpp
index 1666275e869..1f33bca1acb 100644
--- a/src/devices/bus/abcbus/hdc.cpp
+++ b/src/devices/bus/abcbus/hdc.cpp
@@ -54,17 +54,19 @@ const tiny_rom_entry *abc_hdc_device::device_rom_region() const
// ADDRESS_MAP( abc_hdc_mem )
//-------------------------------------------------
-ADDRESS_MAP_START(abc_hdc_device::abc_hdc_mem)
- AM_RANGE(0x0000, 0x0ff) AM_ROM AM_REGION(Z80_TAG, 0)
-ADDRESS_MAP_END
+void abc_hdc_device::abc_hdc_mem(address_map &map)
+{
+ map(0x0000, 0x0ff).rom().region(Z80_TAG, 0);
+}
//-------------------------------------------------
// ADDRESS_MAP( abc_hdc_io )
//-------------------------------------------------
-ADDRESS_MAP_START(abc_hdc_device::abc_hdc_io)
-ADDRESS_MAP_END
+void abc_hdc_device::abc_hdc_io(address_map &map)
+{
+}
//-------------------------------------------------
diff --git a/src/devices/bus/abcbus/lux10828.cpp b/src/devices/bus/abcbus/lux10828.cpp
index 86e2ba55cab..6928460267e 100644
--- a/src/devices/bus/abcbus/lux10828.cpp
+++ b/src/devices/bus/abcbus/lux10828.cpp
@@ -171,24 +171,26 @@ const tiny_rom_entry *luxor_55_10828_device::device_rom_region() const
// ADDRESS_MAP( luxor_55_10828_mem )
//-------------------------------------------------
-ADDRESS_MAP_START(luxor_55_10828_device::luxor_55_10828_mem)
- ADDRESS_MAP_GLOBAL_MASK(0x1fff)
- AM_RANGE(0x0000, 0x07ff) AM_MIRROR(0x0800) AM_ROM AM_REGION(Z80_TAG, 0)
- AM_RANGE(0x1000, 0x13ff) AM_MIRROR(0x0c00) AM_RAM
-ADDRESS_MAP_END
+void luxor_55_10828_device::luxor_55_10828_mem(address_map &map)
+{
+ map.global_mask(0x1fff);
+ map(0x0000, 0x07ff).mirror(0x0800).rom().region(Z80_TAG, 0);
+ map(0x1000, 0x13ff).mirror(0x0c00).ram();
+}
//-------------------------------------------------
// ADDRESS_MAP( luxor_55_10828_io )
//-------------------------------------------------
-ADDRESS_MAP_START(luxor_55_10828_device::luxor_55_10828_io)
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x70, 0x73) AM_MIRROR(0x0c) AM_DEVREADWRITE(Z80PIO_TAG, z80pio_device, read_alt, write_alt)
- AM_RANGE(0xb0, 0xb3) AM_MIRROR(0x0c) AM_READWRITE(fdc_r, fdc_w)
- AM_RANGE(0xd0, 0xd0) AM_MIRROR(0x0f) AM_WRITE(status_w)
- AM_RANGE(0xe0, 0xe0) AM_MIRROR(0x0f) AM_WRITE(ctrl_w)
-ADDRESS_MAP_END
+void luxor_55_10828_device::luxor_55_10828_io(address_map &map)
+{
+ map.global_mask(0xff);
+ map(0x70, 0x73).mirror(0x0c).rw(Z80PIO_TAG, FUNC(z80pio_device::read_alt), FUNC(z80pio_device::write_alt));
+ map(0xb0, 0xb3).mirror(0x0c).rw(this, FUNC(luxor_55_10828_device::fdc_r), FUNC(luxor_55_10828_device::fdc_w));
+ map(0xd0, 0xd0).mirror(0x0f).w(this, FUNC(luxor_55_10828_device::status_w));
+ map(0xe0, 0xe0).mirror(0x0f).w(this, FUNC(luxor_55_10828_device::ctrl_w));
+}
//-------------------------------------------------
diff --git a/src/devices/bus/abcbus/lux21046.cpp b/src/devices/bus/abcbus/lux21046.cpp
index ee8f19c20cd..cecbf5a396e 100644
--- a/src/devices/bus/abcbus/lux21046.cpp
+++ b/src/devices/bus/abcbus/lux21046.cpp
@@ -137,30 +137,32 @@ const tiny_rom_entry *luxor_55_21046_device::device_rom_region() const
// ADDRESS_MAP( luxor_55_21046_mem )
//-------------------------------------------------
-ADDRESS_MAP_START(luxor_55_21046_device::luxor_55_21046_mem)
- ADDRESS_MAP_UNMAP_HIGH
- ADDRESS_MAP_GLOBAL_MASK(0x3fff)
- AM_RANGE(0x0000, 0x1fff) AM_ROM AM_REGION(Z80_TAG, 0x2000) // A13 pull-up
- AM_RANGE(0x2000, 0x3fff) AM_RAM
-ADDRESS_MAP_END
+void luxor_55_21046_device::luxor_55_21046_mem(address_map &map)
+{
+ map.unmap_value_high();
+ map.global_mask(0x3fff);
+ map(0x0000, 0x1fff).rom().region(Z80_TAG, 0x2000); // A13 pull-up
+ map(0x2000, 0x3fff).ram();
+}
//-------------------------------------------------
// ADDRESS_MAP( luxor_55_21046_io )
//-------------------------------------------------
-ADDRESS_MAP_START(luxor_55_21046_device::luxor_55_21046_io)
- ADDRESS_MAP_UNMAP_HIGH
- AM_RANGE(0x0c, 0x0c) AM_MIRROR(0xff03) AM_READ(out_r)
- AM_RANGE(0x1c, 0x1c) AM_MIRROR(0xff03) AM_WRITE(inp_w)
- AM_RANGE(0x2c, 0x2c) AM_MIRROR(0xff03) AM_WRITE(_4b_w)
- AM_RANGE(0x3c, 0x3c) AM_MIRROR(0xff03) AM_WRITE(_9b_w)
- AM_RANGE(0x4c, 0x4c) AM_MIRROR(0xff03) AM_WRITE(_8a_w)
- AM_RANGE(0x58, 0x58) AM_MIRROR(0x0007) AM_SELECT(0xff00) AM_READ(_9a_r)
- AM_RANGE(0x68, 0x6b) AM_MIRROR(0xff00) AM_DEVREAD(SAB1793_TAG, fd1793_device, read)
- AM_RANGE(0x78, 0x7b) AM_MIRROR(0xff00) AM_DEVWRITE(SAB1793_TAG, fd1793_device, write)
- AM_RANGE(0x80, 0x80) AM_MIRROR(0xff77) AM_DEVREADWRITE(Z80DMA_TAG, z80dma_device, read, write)
-ADDRESS_MAP_END
+void luxor_55_21046_device::luxor_55_21046_io(address_map &map)
+{
+ map.unmap_value_high();
+ map(0x0c, 0x0c).mirror(0xff03).r(this, FUNC(luxor_55_21046_device::out_r));
+ map(0x1c, 0x1c).mirror(0xff03).w(this, FUNC(luxor_55_21046_device::inp_w));
+ map(0x2c, 0x2c).mirror(0xff03).w(this, FUNC(luxor_55_21046_device::_4b_w));
+ map(0x3c, 0x3c).mirror(0xff03).w(this, FUNC(luxor_55_21046_device::_9b_w));
+ map(0x4c, 0x4c).mirror(0xff03).w(this, FUNC(luxor_55_21046_device::_8a_w));
+ map(0x58, 0x58).mirror(0x0007).select(0xff00).r(this, FUNC(luxor_55_21046_device::_9a_r));
+ map(0x68, 0x6b).mirror(0xff00).r(SAB1793_TAG, FUNC(fd1793_device::read));
+ map(0x78, 0x7b).mirror(0xff00).w(SAB1793_TAG, FUNC(fd1793_device::write));
+ map(0x80, 0x80).mirror(0xff77).rw(Z80DMA_TAG, FUNC(z80dma_device::read), FUNC(z80dma_device::write));
+}
//-------------------------------------------------
diff --git a/src/devices/bus/abcbus/lux21056.cpp b/src/devices/bus/abcbus/lux21056.cpp
index ffdb7eff661..07717b667a9 100644
--- a/src/devices/bus/abcbus/lux21056.cpp
+++ b/src/devices/bus/abcbus/lux21056.cpp
@@ -133,31 +133,33 @@ const tiny_rom_entry *luxor_55_21056_device::device_rom_region() const
// ADDRESS_MAP( luxor_55_21056_mem )
//-------------------------------------------------
-ADDRESS_MAP_START(luxor_55_21056_device::luxor_55_21056_mem)
- ADDRESS_MAP_UNMAP_HIGH
- ADDRESS_MAP_GLOBAL_MASK(0x3fff)
- AM_RANGE(0x0000, 0x0fff) AM_MIRROR(0x1000) AM_ROM AM_REGION(Z80_TAG, 0)
- AM_RANGE(0x2000, 0x27ff) AM_MIRROR(0x1800) AM_RAM
-ADDRESS_MAP_END
+void luxor_55_21056_device::luxor_55_21056_mem(address_map &map)
+{
+ map.unmap_value_high();
+ map.global_mask(0x3fff);
+ map(0x0000, 0x0fff).mirror(0x1000).rom().region(Z80_TAG, 0);
+ map(0x2000, 0x27ff).mirror(0x1800).ram();
+}
//-------------------------------------------------
// ADDRESS_MAP( luxor_55_21056_io )
//-------------------------------------------------
-ADDRESS_MAP_START(luxor_55_21056_device::luxor_55_21056_io)
- ADDRESS_MAP_UNMAP_HIGH
- ADDRESS_MAP_GLOBAL_MASK(0xf8)
- AM_RANGE(0x00, 0x00) AM_MIRROR(0xf0) AM_DEVREADWRITE(Z80DMA_TAG, z80dma_device, read, write)
- AM_RANGE(0x08, 0x08) AM_READ(sasi_status_r)
- AM_RANGE(0x18, 0x18) AM_WRITE(stat_w)
- AM_RANGE(0x28, 0x28) AM_READ(out_r)
- AM_RANGE(0x38, 0x38) AM_WRITE(inp_w)
- AM_RANGE(0x48, 0x48) AM_READWRITE(sasi_data_r, sasi_data_w)
- AM_RANGE(0x58, 0x58) AM_READWRITE(rdy_reset_r, rdy_reset_w)
- AM_RANGE(0x68, 0x68) AM_READWRITE(sasi_sel_r, sasi_sel_w)
- AM_RANGE(0x78, 0x78) AM_READWRITE(sasi_rst_r, sasi_rst_w)
-ADDRESS_MAP_END
+void luxor_55_21056_device::luxor_55_21056_io(address_map &map)
+{
+ map.unmap_value_high();
+ map.global_mask(0xf8);
+ map(0x00, 0x00).mirror(0xf0).rw(Z80DMA_TAG, FUNC(z80dma_device::read), FUNC(z80dma_device::write));
+ map(0x08, 0x08).r(this, FUNC(luxor_55_21056_device::sasi_status_r));
+ map(0x18, 0x18).w(this, FUNC(luxor_55_21056_device::stat_w));
+ map(0x28, 0x28).r(this, FUNC(luxor_55_21056_device::out_r));
+ map(0x38, 0x38).w(this, FUNC(luxor_55_21056_device::inp_w));
+ map(0x48, 0x48).rw(this, FUNC(luxor_55_21056_device::sasi_data_r), FUNC(luxor_55_21056_device::sasi_data_w));
+ map(0x58, 0x58).rw(this, FUNC(luxor_55_21056_device::rdy_reset_r), FUNC(luxor_55_21056_device::rdy_reset_w));
+ map(0x68, 0x68).rw(this, FUNC(luxor_55_21056_device::sasi_sel_r), FUNC(luxor_55_21056_device::sasi_sel_w));
+ map(0x78, 0x78).rw(this, FUNC(luxor_55_21056_device::sasi_rst_r), FUNC(luxor_55_21056_device::sasi_rst_w));
+}
//-------------------------------------------------
diff --git a/src/devices/bus/abcbus/unidisk.cpp b/src/devices/bus/abcbus/unidisk.cpp
index 1a9f2ba030f..c0ec9a8b63b 100644
--- a/src/devices/bus/abcbus/unidisk.cpp
+++ b/src/devices/bus/abcbus/unidisk.cpp
@@ -54,17 +54,19 @@ const tiny_rom_entry *unidisk_t::device_rom_region() const
// ADDRESS_MAP( unidisk_mem )
//-------------------------------------------------
-ADDRESS_MAP_START(unidisk_t::unidisk_mem)
- AM_RANGE(0x0000, 0x0fff) AM_ROM AM_REGION(TMS9995_TAG, 0)
-ADDRESS_MAP_END
+void unidisk_t::unidisk_mem(address_map &map)
+{
+ map(0x0000, 0x0fff).rom().region(TMS9995_TAG, 0);
+}
//-------------------------------------------------
// ADDRESS_MAP( unidisk_io )
//-------------------------------------------------
-ADDRESS_MAP_START(unidisk_t::unidisk_io)
-ADDRESS_MAP_END
+void unidisk_t::unidisk_io(address_map &map)
+{
+}
//-------------------------------------------------
diff --git a/src/devices/bus/abckb/abc77.cpp b/src/devices/bus/abckb/abc77.cpp
index 3f2f58d27eb..46be92f6e1b 100644
--- a/src/devices/bus/abckb/abc77.cpp
+++ b/src/devices/bus/abckb/abc77.cpp
@@ -89,19 +89,21 @@ const tiny_rom_entry *abc77_device::device_rom_region() const
// ADDRESS_MAP( abc77_mem )
//-------------------------------------------------
-ADDRESS_MAP_START(abc77_device::abc77_map)
- AM_RANGE(0x000, 0xfff) AM_ROM AM_REGION("z16", 0)
-ADDRESS_MAP_END
+void abc77_device::abc77_map(address_map &map)
+{
+ map(0x000, 0xfff).rom().region("z16", 0);
+}
//-------------------------------------------------
// ADDRESS_MAP( abc77_io )
//-------------------------------------------------
-ADDRESS_MAP_START(abc77_device::abc77_io)
- AM_RANGE(0x00, 0x00) AM_MIRROR(0xff) AM_WRITE(j3_w)
- AM_RANGE(0x00, 0x00) AM_MIRROR(0xff) AM_READ_PORT("DSW")
-ADDRESS_MAP_END
+void abc77_device::abc77_io(address_map &map)
+{
+ map(0x00, 0x00).mirror(0xff).w(this, FUNC(abc77_device::j3_w));
+ map(0x00, 0x00).mirror(0xff).portr("DSW");
+}
//-------------------------------------------------
diff --git a/src/devices/bus/abckb/abc99.cpp b/src/devices/bus/abckb/abc99.cpp
index df3612776de..9df2a3a7b73 100644
--- a/src/devices/bus/abckb/abc99.cpp
+++ b/src/devices/bus/abckb/abc99.cpp
@@ -106,43 +106,46 @@ const tiny_rom_entry *abc99_device::device_rom_region() const
// ADDRESS_MAP( abc99_z2_mem )
//-------------------------------------------------
-ADDRESS_MAP_START(abc99_device::abc99_z2_mem)
- AM_RANGE(0x0000, 0x0fff) AM_ROM AM_REGION(I8035_Z2_TAG, 0)
-ADDRESS_MAP_END
+void abc99_device::abc99_z2_mem(address_map &map)
+{
+ map(0x0000, 0x0fff).rom().region(I8035_Z2_TAG, 0);
+}
//-------------------------------------------------
// ADDRESS_MAP( abc99_z2_io )
//-------------------------------------------------
-ADDRESS_MAP_START(abc99_device::abc99_z2_io)
- AM_RANGE(0x21, 0x21) AM_WRITE(z2_led_w)
- AM_RANGE(0x30, 0x30) AM_READ_PORT("X0") AM_WRITENOP
- AM_RANGE(0x31, 0x31) AM_READ_PORT("X1") AM_WRITENOP
- AM_RANGE(0x32, 0x32) AM_READ_PORT("X2") AM_WRITENOP
- AM_RANGE(0x33, 0x33) AM_READ_PORT("X3") AM_WRITENOP
- AM_RANGE(0x34, 0x34) AM_READ_PORT("X4") AM_WRITENOP
- AM_RANGE(0x35, 0x35) AM_READ_PORT("X5") AM_WRITENOP
- AM_RANGE(0x36, 0x36) AM_READ_PORT("X6") AM_WRITENOP
- AM_RANGE(0x37, 0x37) AM_READ_PORT("X7") AM_WRITENOP
- AM_RANGE(0x38, 0x38) AM_READ_PORT("X8") AM_WRITENOP
- AM_RANGE(0x39, 0x39) AM_READ_PORT("X9") AM_WRITENOP
- AM_RANGE(0x3a, 0x3a) AM_READ_PORT("X10") AM_WRITENOP
- AM_RANGE(0x3b, 0x3b) AM_READ_PORT("X11") AM_WRITENOP
- AM_RANGE(0x3c, 0x3c) AM_READ_PORT("X12") AM_WRITENOP
- AM_RANGE(0x3d, 0x3d) AM_READ_PORT("X13") AM_WRITENOP
- AM_RANGE(0x3e, 0x3e) AM_READ_PORT("X14") AM_WRITENOP
- AM_RANGE(0x3f, 0x3f) AM_READ_PORT("X15") AM_WRITENOP
-ADDRESS_MAP_END
+void abc99_device::abc99_z2_io(address_map &map)
+{
+ map(0x21, 0x21).w(this, FUNC(abc99_device::z2_led_w));
+ map(0x30, 0x30).portr("X0").nopw();
+ map(0x31, 0x31).portr("X1").nopw();
+ map(0x32, 0x32).portr("X2").nopw();
+ map(0x33, 0x33).portr("X3").nopw();
+ map(0x34, 0x34).portr("X4").nopw();
+ map(0x35, 0x35).portr("X5").nopw();
+ map(0x36, 0x36).portr("X6").nopw();
+ map(0x37, 0x37).portr("X7").nopw();
+ map(0x38, 0x38).portr("X8").nopw();
+ map(0x39, 0x39).portr("X9").nopw();
+ map(0x3a, 0x3a).portr("X10").nopw();
+ map(0x3b, 0x3b).portr("X11").nopw();
+ map(0x3c, 0x3c).portr("X12").nopw();
+ map(0x3d, 0x3d).portr("X13").nopw();
+ map(0x3e, 0x3e).portr("X14").nopw();
+ map(0x3f, 0x3f).portr("X15").nopw();
+}
//-------------------------------------------------
// ADDRESS_MAP( abc99_z5_mem )
//-------------------------------------------------
-ADDRESS_MAP_START(abc99_device::abc99_z5_mem)
- AM_RANGE(0x0000, 0x07ff) AM_ROM AM_REGION(I8035_Z5_TAG, 0)
-ADDRESS_MAP_END
+void abc99_device::abc99_z5_mem(address_map &map)
+{
+ map(0x0000, 0x07ff).rom().region(I8035_Z5_TAG, 0);
+}
//-------------------------------------------------
diff --git a/src/devices/bus/adamnet/ddp.cpp b/src/devices/bus/adamnet/ddp.cpp
index ac5478821ed..be383cdcc74 100644
--- a/src/devices/bus/adamnet/ddp.cpp
+++ b/src/devices/bus/adamnet/ddp.cpp
@@ -50,24 +50,26 @@ const tiny_rom_entry *adam_digital_data_pack_device::device_rom_region() const
// ADDRESS_MAP( adam_ddp_mem )
//-------------------------------------------------
-ADDRESS_MAP_START(adam_digital_data_pack_device::adam_ddp_mem)
- AM_RANGE(0x0000, 0x001f) AM_DEVREADWRITE(M6801_TAG, m6801_cpu_device, m6801_io_r, m6801_io_w)
- AM_RANGE(0x0080, 0x00ff) AM_RAM
- AM_RANGE(0x0400, 0x07ff) AM_RAM
- AM_RANGE(0xf800, 0xffff) AM_ROM AM_REGION(M6801_TAG, 0)
-ADDRESS_MAP_END
+void adam_digital_data_pack_device::adam_ddp_mem(address_map &map)
+{
+ map(0x0000, 0x001f).rw(M6801_TAG, FUNC(m6801_cpu_device::m6801_io_r), FUNC(m6801_cpu_device::m6801_io_w));
+ map(0x0080, 0x00ff).ram();
+ map(0x0400, 0x07ff).ram();
+ map(0xf800, 0xffff).rom().region(M6801_TAG, 0);
+}
//-------------------------------------------------
// ADDRESS_MAP( adam_ddp_io )
//-------------------------------------------------
-ADDRESS_MAP_START(adam_digital_data_pack_device::adam_ddp_io)
- AM_RANGE(M6801_PORT1, M6801_PORT1) AM_WRITE(p1_w)
- AM_RANGE(M6801_PORT2, M6801_PORT2) AM_READWRITE(p2_r, p2_w)
- AM_RANGE(M6801_PORT3, M6801_PORT3) AM_NOP // Multiplexed Address/Data
- AM_RANGE(M6801_PORT4, M6801_PORT4) AM_READ(p4_r) AM_WRITENOP
-ADDRESS_MAP_END
+void adam_digital_data_pack_device::adam_ddp_io(address_map &map)
+{
+ map(M6801_PORT1, M6801_PORT1).w(this, FUNC(adam_digital_data_pack_device::p1_w));
+ map(M6801_PORT2, M6801_PORT2).rw(this, FUNC(adam_digital_data_pack_device::p2_r), FUNC(adam_digital_data_pack_device::p2_w));
+ map(M6801_PORT3, M6801_PORT3).noprw(); // Multiplexed Address/Data
+ map(M6801_PORT4, M6801_PORT4).r(this, FUNC(adam_digital_data_pack_device::p4_r)).nopw();
+}
static const struct CassetteOptions adam_cassette_options =
{
diff --git a/src/devices/bus/adamnet/fdc.cpp b/src/devices/bus/adamnet/fdc.cpp
index 221b5f27a17..e79869fdb29 100644
--- a/src/devices/bus/adamnet/fdc.cpp
+++ b/src/devices/bus/adamnet/fdc.cpp
@@ -77,34 +77,36 @@ const tiny_rom_entry *adam_fdc_device::device_rom_region() const
// ADDRESS_MAP( fdc6801_mem )
//-------------------------------------------------
-ADDRESS_MAP_START(adam_fdc_device::adam_fdc_mem)
- AM_RANGE(0x0000, 0x001f) AM_DEVREADWRITE(M6801_TAG, m6801_cpu_device, m6801_io_r, m6801_io_w)
- AM_RANGE(0x0080, 0x00ff) AM_RAM
- AM_RANGE(0x0400, 0x07ff) AM_RAM AM_WRITEONLY AM_SHARE("ram")
- AM_RANGE(0x0800, 0x0800) AM_MIRROR(0x3ff) AM_DEVREAD(WD2793_TAG, wd2793_device, status_r)
- AM_RANGE(0x1400, 0x17ff) AM_RAM AM_READONLY AM_SHARE("ram")
- AM_RANGE(0x1800, 0x1800) AM_MIRROR(0x3ff) AM_DEVWRITE(WD2793_TAG, wd2793_device, cmd_w)
- AM_RANGE(0x2800, 0x2800) AM_MIRROR(0x3ff) AM_DEVREAD(WD2793_TAG, wd2793_device, track_r)
- AM_RANGE(0x3800, 0x3800) AM_MIRROR(0x3ff) AM_DEVWRITE(WD2793_TAG, wd2793_device, track_w)
- AM_RANGE(0x4800, 0x4800) AM_MIRROR(0x3ff) AM_DEVREAD(WD2793_TAG, wd2793_device, sector_r)
- AM_RANGE(0x5800, 0x5800) AM_MIRROR(0x3ff) AM_DEVWRITE(WD2793_TAG, wd2793_device, sector_w)
- AM_RANGE(0x6800, 0x6800) AM_MIRROR(0x3ff) AM_DEVREAD(WD2793_TAG, wd2793_device, data_r)
- AM_RANGE(0x6c00, 0x6fff) AM_READ(data_r)
- AM_RANGE(0x7800, 0x7800) AM_MIRROR(0x3ff) AM_DEVWRITE(WD2793_TAG, wd2793_device, data_w)
- AM_RANGE(0x8000, 0x8fff) AM_MIRROR(0x7000) AM_ROM AM_REGION(M6801_TAG, 0)
-ADDRESS_MAP_END
+void adam_fdc_device::adam_fdc_mem(address_map &map)
+{
+ map(0x0000, 0x001f).rw(M6801_TAG, FUNC(m6801_cpu_device::m6801_io_r), FUNC(m6801_cpu_device::m6801_io_w));
+ map(0x0080, 0x00ff).ram();
+ map(0x0400, 0x07ff).ram().writeonly().share("ram");
+ map(0x0800, 0x0800).mirror(0x3ff).r(WD2793_TAG, FUNC(wd2793_device::status_r));
+ map(0x1400, 0x17ff).ram().readonly().share("ram");
+ map(0x1800, 0x1800).mirror(0x3ff).w(WD2793_TAG, FUNC(wd2793_device::cmd_w));
+ map(0x2800, 0x2800).mirror(0x3ff).r(WD2793_TAG, FUNC(wd2793_device::track_r));
+ map(0x3800, 0x3800).mirror(0x3ff).w(WD2793_TAG, FUNC(wd2793_device::track_w));
+ map(0x4800, 0x4800).mirror(0x3ff).r(WD2793_TAG, FUNC(wd2793_device::sector_r));
+ map(0x5800, 0x5800).mirror(0x3ff).w(WD2793_TAG, FUNC(wd2793_device::sector_w));
+ map(0x6800, 0x6800).mirror(0x3ff).r(WD2793_TAG, FUNC(wd2793_device::data_r));
+ map(0x6c00, 0x6fff).r(this, FUNC(adam_fdc_device::data_r));
+ map(0x7800, 0x7800).mirror(0x3ff).w(WD2793_TAG, FUNC(wd2793_device::data_w));
+ map(0x8000, 0x8fff).mirror(0x7000).rom().region(M6801_TAG, 0);
+}
//-------------------------------------------------
// ADDRESS_MAP( fdc6801_io )
//-------------------------------------------------
-ADDRESS_MAP_START(adam_fdc_device::adam_fdc_io)
- AM_RANGE(M6801_PORT1, M6801_PORT1) AM_READWRITE(p1_r, p1_w)
- AM_RANGE(M6801_PORT2, M6801_PORT2) AM_READWRITE(p2_r, p2_w)
- AM_RANGE(M6801_PORT3, M6801_PORT3)
- AM_RANGE(M6801_PORT4, M6801_PORT4)
-ADDRESS_MAP_END
+void adam_fdc_device::adam_fdc_io(address_map &map)
+{
+ map(M6801_PORT1, M6801_PORT1).rw(this, FUNC(adam_fdc_device::p1_r), FUNC(adam_fdc_device::p1_w));
+ map(M6801_PORT2, M6801_PORT2).rw(this, FUNC(adam_fdc_device::p2_r), FUNC(adam_fdc_device::p2_w));
+ map(M6801_PORT3, M6801_PORT3);
+ map(M6801_PORT4, M6801_PORT4);
+}
//-------------------------------------------------
diff --git a/src/devices/bus/adamnet/kb.cpp b/src/devices/bus/adamnet/kb.cpp
index 5cd7971b441..00e486e02cc 100644
--- a/src/devices/bus/adamnet/kb.cpp
+++ b/src/devices/bus/adamnet/kb.cpp
@@ -50,23 +50,25 @@ const tiny_rom_entry *adam_keyboard_device::device_rom_region() const
// ADDRESS_MAP( adam_kb_mem )
//-------------------------------------------------
-ADDRESS_MAP_START(adam_keyboard_device::adam_kb_mem)
- AM_RANGE(0x0000, 0x001f) AM_DEVREADWRITE(M6801_TAG, m6801_cpu_device, m6801_io_r, m6801_io_w)
- AM_RANGE(0x0080, 0x00ff) AM_RAM
- AM_RANGE(0xf800, 0xffff) AM_ROM AM_REGION(M6801_TAG, 0)
-ADDRESS_MAP_END
+void adam_keyboard_device::adam_kb_mem(address_map &map)
+{
+ map(0x0000, 0x001f).rw(M6801_TAG, FUNC(m6801_cpu_device::m6801_io_r), FUNC(m6801_cpu_device::m6801_io_w));
+ map(0x0080, 0x00ff).ram();
+ map(0xf800, 0xffff).rom().region(M6801_TAG, 0);
+}
//-------------------------------------------------
// ADDRESS_MAP( adam_kb_io )
//-------------------------------------------------
-ADDRESS_MAP_START(adam_keyboard_device::adam_kb_io)
- AM_RANGE(M6801_PORT1, M6801_PORT1) AM_READ(p1_r)
- AM_RANGE(M6801_PORT2, M6801_PORT2) AM_READWRITE(p2_r, p2_w)
- AM_RANGE(M6801_PORT3, M6801_PORT3) AM_READWRITE(p3_r, p3_w)
- AM_RANGE(M6801_PORT4, M6801_PORT4) AM_READWRITE(p4_r, p4_w)
-ADDRESS_MAP_END
+void adam_keyboard_device::adam_kb_io(address_map &map)
+{
+ map(M6801_PORT1, M6801_PORT1).r(this, FUNC(adam_keyboard_device::p1_r));
+ map(M6801_PORT2, M6801_PORT2).rw(this, FUNC(adam_keyboard_device::p2_r), FUNC(adam_keyboard_device::p2_w));
+ map(M6801_PORT3, M6801_PORT3).rw(this, FUNC(adam_keyboard_device::p3_r), FUNC(adam_keyboard_device::p3_w));
+ map(M6801_PORT4, M6801_PORT4).rw(this, FUNC(adam_keyboard_device::p4_r), FUNC(adam_keyboard_device::p4_w));
+}
//-------------------------------------------------
diff --git a/src/devices/bus/adamnet/printer.cpp b/src/devices/bus/adamnet/printer.cpp
index 511de1f8bd8..2f9165d3eaf 100644
--- a/src/devices/bus/adamnet/printer.cpp
+++ b/src/devices/bus/adamnet/printer.cpp
@@ -50,23 +50,25 @@ const tiny_rom_entry *adam_printer_device::device_rom_region() const
// ADDRESS_MAP( adam_prn_mem )
//-------------------------------------------------
-ADDRESS_MAP_START(adam_printer_device::adam_prn_mem)
- AM_RANGE(0x0000, 0x001f) AM_DEVREADWRITE(M6801_TAG, m6801_cpu_device, m6801_io_r, m6801_io_w)
- AM_RANGE(0x0080, 0x00ff) AM_RAM
- AM_RANGE(0xf800, 0xffff) AM_ROM AM_REGION(M6801_TAG, 0)
-ADDRESS_MAP_END
+void adam_printer_device::adam_prn_mem(address_map &map)
+{
+ map(0x0000, 0x001f).rw(M6801_TAG, FUNC(m6801_cpu_device::m6801_io_r), FUNC(m6801_cpu_device::m6801_io_w));
+ map(0x0080, 0x00ff).ram();
+ map(0xf800, 0xffff).rom().region(M6801_TAG, 0);
+}
//-------------------------------------------------
// ADDRESS_MAP( adam_prn_io )
//-------------------------------------------------
-ADDRESS_MAP_START(adam_printer_device::adam_prn_io)
- AM_RANGE(M6801_PORT1, M6801_PORT1) AM_WRITE(p1_w)
- AM_RANGE(M6801_PORT2, M6801_PORT2) AM_READWRITE(p2_r, p2_w)
- AM_RANGE(M6801_PORT3, M6801_PORT3) AM_READ(p3_r)
- AM_RANGE(M6801_PORT4, M6801_PORT4) AM_READWRITE(p4_r, p4_w)
-ADDRESS_MAP_END
+void adam_printer_device::adam_prn_io(address_map &map)
+{
+ map(M6801_PORT1, M6801_PORT1).w(this, FUNC(adam_printer_device::p1_w));
+ map(M6801_PORT2, M6801_PORT2).rw(this, FUNC(adam_printer_device::p2_r), FUNC(adam_printer_device::p2_w));
+ map(M6801_PORT3, M6801_PORT3).r(this, FUNC(adam_printer_device::p3_r));
+ map(M6801_PORT4, M6801_PORT4).rw(this, FUNC(adam_printer_device::p4_r), FUNC(adam_printer_device::p4_w));
+}
//-------------------------------------------------
diff --git a/src/devices/bus/adamnet/spi.cpp b/src/devices/bus/adamnet/spi.cpp
index 66eab7365a5..2d2589b6445 100644
--- a/src/devices/bus/adamnet/spi.cpp
+++ b/src/devices/bus/adamnet/spi.cpp
@@ -53,20 +53,22 @@ const tiny_rom_entry *adam_spi_device::device_rom_region() const
// ADDRESS_MAP( adam_spi_mem )
//-------------------------------------------------
-ADDRESS_MAP_START(adam_spi_device::adam_spi_mem)
- AM_RANGE(0x0000, 0x001f) AM_DEVREADWRITE(M6801_TAG, m6801_cpu_device, m6801_io_r, m6801_io_w)
- AM_RANGE(0x0080, 0x00ff) AM_RAM
- AM_RANGE(0xf800, 0xffff) AM_ROM AM_REGION(M6801_TAG, 0)
-ADDRESS_MAP_END
+void adam_spi_device::adam_spi_mem(address_map &map)
+{
+ map(0x0000, 0x001f).rw(M6801_TAG, FUNC(m6801_cpu_device::m6801_io_r), FUNC(m6801_cpu_device::m6801_io_w));
+ map(0x0080, 0x00ff).ram();
+ map(0xf800, 0xffff).rom().region(M6801_TAG, 0);
+}
//-------------------------------------------------
// ADDRESS_MAP( adam_spi_io )
//-------------------------------------------------
-ADDRESS_MAP_START(adam_spi_device::adam_spi_io)
- AM_RANGE(M6801_PORT2, M6801_PORT2) AM_READWRITE(p2_r, p2_w)
-ADDRESS_MAP_END
+void adam_spi_device::adam_spi_io(address_map &map)
+{
+ map(M6801_PORT2, M6801_PORT2).rw(this, FUNC(adam_spi_device::p2_r), FUNC(adam_spi_device::p2_w));
+}
//-------------------------------------------------
diff --git a/src/devices/bus/amiga/keyboard/a500.cpp b/src/devices/bus/amiga/keyboard/a500.cpp
index ae866c62181..314c070c260 100644
--- a/src/devices/bus/amiga/keyboard/a500.cpp
+++ b/src/devices/bus/amiga/keyboard/a500.cpp
@@ -34,22 +34,23 @@ DEFINE_DEVICE_TYPE_NS(A500_KBD_GB, bus::amiga::keyboard, a500_kbd_gb_device, "a5
namespace bus { namespace amiga { namespace keyboard {
-ADDRESS_MAP_START(a500_kbd_device::mpu6500_map)
- ADDRESS_MAP_GLOBAL_MASK(0xfff)
- AM_RANGE(0x000, 0x03f) AM_RAM
- AM_RANGE(0x080, 0x080) AM_READWRITE(port_a_r, port_a_w)
- AM_RANGE(0x081, 0x081) AM_READ_PORT("special") AM_WRITE(port_b_w)
- AM_RANGE(0x082, 0x082) AM_WRITE(port_c_w)
- AM_RANGE(0x083, 0x083) AM_WRITE(port_d_w)
- AM_RANGE(0x084, 0x085) AM_WRITE(latch_w)
- AM_RANGE(0x086, 0x087) AM_READ(counter_r)
- AM_RANGE(0x088, 0x088) AM_WRITE(transfer_latch_w)
- AM_RANGE(0x089, 0x089) AM_WRITE(clear_pa0_detect)
- AM_RANGE(0x08a, 0x08a) AM_WRITE(clear_pa1_detect)
- AM_RANGE(0x08f, 0x08f) AM_READWRITE(control_r, control_w)
- AM_RANGE(0x090, 0x0ff) AM_NOP
- AM_RANGE(0x800, 0xfff) AM_ROM AM_REGION("ic1", 0)
-ADDRESS_MAP_END
+void a500_kbd_device::mpu6500_map(address_map &map)
+{
+ map.global_mask(0xfff);
+ map(0x000, 0x03f).ram();
+ map(0x080, 0x080).rw(this, FUNC(a500_kbd_device::port_a_r), FUNC(a500_kbd_device::port_a_w));
+ map(0x081, 0x081).portr("special").w(this, FUNC(a500_kbd_device::port_b_w));
+ map(0x082, 0x082).w(this, FUNC(a500_kbd_device::port_c_w));
+ map(0x083, 0x083).w(this, FUNC(a500_kbd_device::port_d_w));
+ map(0x084, 0x085).w(this, FUNC(a500_kbd_device::latch_w));
+ map(0x086, 0x087).r(this, FUNC(a500_kbd_device::counter_r));
+ map(0x088, 0x088).w(this, FUNC(a500_kbd_device::transfer_latch_w));
+ map(0x089, 0x089).w(this, FUNC(a500_kbd_device::clear_pa0_detect));
+ map(0x08a, 0x08a).w(this, FUNC(a500_kbd_device::clear_pa1_detect));
+ map(0x08f, 0x08f).rw(this, FUNC(a500_kbd_device::control_r), FUNC(a500_kbd_device::control_w));
+ map(0x090, 0x0ff).noprw();
+ map(0x800, 0xfff).rom().region("ic1", 0);
+}
namespace {
diff --git a/src/devices/bus/amiga/zorro/a2232.cpp b/src/devices/bus/amiga/zorro/a2232.cpp
index c7987a1b11e..0e28a420877 100644
--- a/src/devices/bus/amiga/zorro/a2232.cpp
+++ b/src/devices/bus/amiga/zorro/a2232.cpp
@@ -30,20 +30,21 @@ DEFINE_DEVICE_TYPE(A2232, a2232_device, "a2232", "CBM A2232 Serial Card")
// device_add_mconfig - add device configuration
//-------------------------------------------------
-ADDRESS_MAP_START(a2232_device::iocpu_map)
- AM_RANGE(0x0000, 0x3fff) AM_RAM AM_SHARE("shared")
- AM_RANGE(0x4000, 0x47ff) AM_READWRITE(acia_0_r, acia_0_w)
- AM_RANGE(0x4800, 0x4fff) AM_READWRITE(acia_1_r, acia_1_w)
- AM_RANGE(0x5000, 0x57ff) AM_READWRITE(acia_2_r, acia_2_w)
- AM_RANGE(0x5800, 0x5fff) AM_READWRITE(acia_3_r, acia_3_w)
- AM_RANGE(0x6000, 0x67ff) AM_READWRITE(acia_4_r, acia_4_w)
- AM_RANGE(0x6800, 0x6fff) AM_READWRITE(acia_5_r, acia_5_w)
- AM_RANGE(0x7000, 0x73ff) AM_WRITE(int2_w)
- AM_RANGE(0x7400, 0x77ff) AM_READWRITE(acia_6_r, acia_6_w)
- AM_RANGE(0x7800, 0x7fff) AM_READWRITE(cia_r, cia_w)
- AM_RANGE(0x8000, 0x8000) AM_WRITE(irq_ack8_w)
- AM_RANGE(0xc000, 0xffff) AM_RAM AM_SHARE("shared")
-ADDRESS_MAP_END
+void a2232_device::iocpu_map(address_map &map)
+{
+ map(0x0000, 0x3fff).ram().share("shared");
+ map(0x4000, 0x47ff).rw(this, FUNC(a2232_device::acia_0_r), FUNC(a2232_device::acia_0_w));
+ map(0x4800, 0x4fff).rw(this, FUNC(a2232_device::acia_1_r), FUNC(a2232_device::acia_1_w));
+ map(0x5000, 0x57ff).rw(this, FUNC(a2232_device::acia_2_r), FUNC(a2232_device::acia_2_w));
+ map(0x5800, 0x5fff).rw(this, FUNC(a2232_device::acia_3_r), FUNC(a2232_device::acia_3_w));
+ map(0x6000, 0x67ff).rw(this, FUNC(a2232_device::acia_4_r), FUNC(a2232_device::acia_4_w));
+ map(0x6800, 0x6fff).rw(this, FUNC(a2232_device::acia_5_r), FUNC(a2232_device::acia_5_w));
+ map(0x7000, 0x73ff).w(this, FUNC(a2232_device::int2_w));
+ map(0x7400, 0x77ff).rw(this, FUNC(a2232_device::acia_6_r), FUNC(a2232_device::acia_6_w));
+ map(0x7800, 0x7fff).rw(this, FUNC(a2232_device::cia_r), FUNC(a2232_device::cia_w));
+ map(0x8000, 0x8000).w(this, FUNC(a2232_device::irq_ack8_w));
+ map(0xc000, 0xffff).ram().share("shared");
+}
MACHINE_CONFIG_START(a2232_device::device_add_mconfig)
// main cpu
diff --git a/src/devices/bus/bbc/tube/tube_6502.cpp b/src/devices/bus/bbc/tube/tube_6502.cpp
index 99884692dfc..51ace257c96 100644
--- a/src/devices/bus/bbc/tube/tube_6502.cpp
+++ b/src/devices/bus/bbc/tube/tube_6502.cpp
@@ -25,9 +25,10 @@ DEFINE_DEVICE_TYPE(BBC_TUBE_6502, bbc_tube_6502_device, "bbc_tube_6502", "Acorn
// ADDRESS_MAP( tube_6502_mem )
//-------------------------------------------------
-ADDRESS_MAP_START(bbc_tube_6502_device::tube_6502_mem)
- AM_RANGE(0x0000, 0xffff) AM_READWRITE(read, write)
-ADDRESS_MAP_END
+void bbc_tube_6502_device::tube_6502_mem(address_map &map)
+{
+ map(0x0000, 0xffff).rw(this, FUNC(bbc_tube_6502_device::read), FUNC(bbc_tube_6502_device::write));
+}
//-------------------------------------------------
// ROM( tube_6502 )
diff --git a/src/devices/bus/bbc/tube/tube_65c102.cpp b/src/devices/bus/bbc/tube/tube_65c102.cpp
index 35f170a8c76..6f285265200 100644
--- a/src/devices/bus/bbc/tube/tube_65c102.cpp
+++ b/src/devices/bus/bbc/tube/tube_65c102.cpp
@@ -25,9 +25,10 @@ DEFINE_DEVICE_TYPE(BBC_TUBE_65C102, bbc_tube_65c102_device, "bbc_tube_65c102", "
// ADDRESS_MAP( tube_6502_mem )
//-------------------------------------------------
-ADDRESS_MAP_START(bbc_tube_65c102_device::tube_6502_mem)
- AM_RANGE(0x0000, 0xffff) AM_READWRITE(read, write)
-ADDRESS_MAP_END
+void bbc_tube_65c102_device::tube_6502_mem(address_map &map)
+{
+ map(0x0000, 0xffff).rw(this, FUNC(bbc_tube_65c102_device::read), FUNC(bbc_tube_65c102_device::write));
+}
//-------------------------------------------------
// ROM( tube_65c102 )
diff --git a/src/devices/bus/bbc/tube/tube_80186.cpp b/src/devices/bus/bbc/tube/tube_80186.cpp
index b3ccfc19ef4..8ca240e15cf 100644
--- a/src/devices/bus/bbc/tube/tube_80186.cpp
+++ b/src/devices/bus/bbc/tube/tube_80186.cpp
@@ -25,17 +25,19 @@ DEFINE_DEVICE_TYPE(BBC_TUBE_80186, bbc_tube_80186_device, "bbc_tube_80186", "Aco
// ADDRESS_MAP( tube_80186_mem )
//-------------------------------------------------
-ADDRESS_MAP_START(bbc_tube_80186_device::tube_80186_mem)
- ADDRESS_MAP_UNMAP_HIGH
-ADDRESS_MAP_END
+void bbc_tube_80186_device::tube_80186_mem(address_map &map)
+{
+ map.unmap_value_high();
+}
//-------------------------------------------------
// ADDRESS_MAP( tube_80186_io )
//-------------------------------------------------
-ADDRESS_MAP_START(bbc_tube_80186_device::tube_80186_io)
- AM_RANGE(0x80, 0x8f) AM_DEVREADWRITE8("ula", tube_device, parasite_r, parasite_w, 0x00ff)
-ADDRESS_MAP_END
+void bbc_tube_80186_device::tube_80186_io(address_map &map)
+{
+ map(0x80, 0x8f).rw("ula", FUNC(tube_device::parasite_r), FUNC(tube_device::parasite_w)).umask16(0x00ff);
+}
//-------------------------------------------------
// ROM( tube_80186 )
diff --git a/src/devices/bus/bbc/tube/tube_80286.cpp b/src/devices/bus/bbc/tube/tube_80286.cpp
index 601793b6958..7f7484c7d1e 100644
--- a/src/devices/bus/bbc/tube/tube_80286.cpp
+++ b/src/devices/bus/bbc/tube/tube_80286.cpp
@@ -24,22 +24,24 @@ DEFINE_DEVICE_TYPE(BBC_TUBE_80286, bbc_tube_80286_device, "bbc_tube_80286", "Aco
// ADDRESS_MAP( tube_80286_mem )
//-------------------------------------------------
-ADDRESS_MAP_START(bbc_tube_80286_device::tube_80286_mem)
- ADDRESS_MAP_GLOBAL_MASK(0xfffff)
- AM_RANGE(0x00000, 0xbffff) AM_RAM AM_SHARE("ram")
- AM_RANGE(0xc0000, 0xc3fff) AM_ROM AM_REGION("bootstrap", 0) AM_MIRROR(0x3c000)
-ADDRESS_MAP_END
+void bbc_tube_80286_device::tube_80286_mem(address_map &map)
+{
+ map.global_mask(0xfffff);
+ map(0x00000, 0xbffff).ram().share("ram");
+ map(0xc0000, 0xc3fff).rom().region("bootstrap", 0).mirror(0x3c000);
+}
//-------------------------------------------------
// ADDRESS_MAP( tube_80286_io )
//-------------------------------------------------
-ADDRESS_MAP_START(bbc_tube_80286_device::tube_80286_io)
- ADDRESS_MAP_UNMAP_HIGH
- AM_RANGE(0x50, 0x51) AM_READ8(disable_boot_rom, 0x00ff)
- AM_RANGE(0x60, 0x61) AM_WRITE8(irq_latch_w, 0x00ff)
- AM_RANGE(0x80, 0x8f) AM_DEVREADWRITE8("ula", tube_device, parasite_r, parasite_w, 0x00ff)
-ADDRESS_MAP_END
+void bbc_tube_80286_device::tube_80286_io(address_map &map)
+{
+ map.unmap_value_high();
+ map(0x50, 0x50).r(this, FUNC(bbc_tube_80286_device::disable_boot_rom));
+ map(0x60, 0x60).w(this, FUNC(bbc_tube_80286_device::irq_latch_w));
+ map(0x80, 0x8f).rw("ula", FUNC(tube_device::parasite_r), FUNC(tube_device::parasite_w)).umask16(0x00ff);
+}
//-------------------------------------------------
// ROM( tube_80286 )
diff --git a/src/devices/bus/bbc/tube/tube_arm.cpp b/src/devices/bus/bbc/tube/tube_arm.cpp
index c4b6a7ede90..18c95f16bd5 100644
--- a/src/devices/bus/bbc/tube/tube_arm.cpp
+++ b/src/devices/bus/bbc/tube/tube_arm.cpp
@@ -23,12 +23,13 @@ DEFINE_DEVICE_TYPE(BBC_TUBE_ARM, bbc_tube_arm_device, "bbc_tube_arm", "ARM Evalu
// ADDRESS_MAP( tube_arm_mem )
//-------------------------------------------------
-ADDRESS_MAP_START(bbc_tube_arm_device::tube_arm_mem)
- ADDRESS_MAP_UNMAP_HIGH
- AM_RANGE(0x0000000, 0x03fffff) AM_READWRITE8(ram_r, ram_w, 0xffffffff)
- AM_RANGE(0x1000000, 0x100001f) AM_DEVREADWRITE8("ula", tube_device, parasite_r, parasite_w, 0x000000ff)
- AM_RANGE(0x3000000, 0x3003fff) AM_ROM AM_REGION("bootstrap", 0) AM_MIRROR(0xc000)
-ADDRESS_MAP_END
+void bbc_tube_arm_device::tube_arm_mem(address_map &map)
+{
+ map.unmap_value_high();
+ map(0x0000000, 0x03fffff).rw(this, FUNC(bbc_tube_arm_device::ram_r), FUNC(bbc_tube_arm_device::ram_w));
+ map(0x1000000, 0x100001f).rw("ula", FUNC(tube_device::parasite_r), FUNC(tube_device::parasite_w)).umask32(0x000000ff);
+ map(0x3000000, 0x3003fff).rom().region("bootstrap", 0).mirror(0xc000);
+}
//-------------------------------------------------
// ROM( tube_arm )
diff --git a/src/devices/bus/bbc/tube/tube_casper.cpp b/src/devices/bus/bbc/tube/tube_casper.cpp
index afb5eecebf6..9d3ae4bea0c 100644
--- a/src/devices/bus/bbc/tube/tube_casper.cpp
+++ b/src/devices/bus/bbc/tube/tube_casper.cpp
@@ -23,11 +23,12 @@ DEFINE_DEVICE_TYPE(BBC_TUBE_CASPER, bbc_tube_casper_device, "bbc_tube_casper", "
// ADDRESS_MAP( tube_casper_mem )
//-------------------------------------------------
-ADDRESS_MAP_START(bbc_tube_casper_device::tube_casper_mem)
- AM_RANGE(0x00000, 0x03fff) AM_ROM AM_REGION("casper_rom", 0)
- AM_RANGE(0x10000, 0x1001f) AM_DEVREADWRITE8("via6522_1",via6522_device, read, write, 0xff)
- AM_RANGE(0x20000, 0x3ffff) AM_RAM
-ADDRESS_MAP_END
+void bbc_tube_casper_device::tube_casper_mem(address_map &map)
+{
+ map(0x00000, 0x03fff).rom().region("casper_rom", 0);
+ map(0x10000, 0x1001f).rw("via6522_1", FUNC(via6522_device::read), FUNC(via6522_device::write)).umask16(0x00ff);
+ map(0x20000, 0x3ffff).ram();
+}
//-------------------------------------------------
// ROM( tube_casper )
diff --git a/src/devices/bus/bbc/tube/tube_z80.cpp b/src/devices/bus/bbc/tube/tube_z80.cpp
index a8a10460cd6..eca576bbcf3 100644
--- a/src/devices/bus/bbc/tube/tube_z80.cpp
+++ b/src/devices/bus/bbc/tube/tube_z80.cpp
@@ -25,25 +25,28 @@ DEFINE_DEVICE_TYPE(BBC_TUBE_Z80, bbc_tube_z80_device, "bbc_tube_z80", "Acorn Z80
// ADDRESS_MAP( tube_z80_mem )
//-------------------------------------------------
-ADDRESS_MAP_START(bbc_tube_z80_device::tube_z80_mem)
- AM_RANGE(0x0000, 0xffff) AM_READWRITE(mem_r, mem_w)
-ADDRESS_MAP_END
+void bbc_tube_z80_device::tube_z80_mem(address_map &map)
+{
+ map(0x0000, 0xffff).rw(this, FUNC(bbc_tube_z80_device::mem_r), FUNC(bbc_tube_z80_device::mem_w));
+}
//-------------------------------------------------
// ADDRESS_MAP( tube_z80_fetch )
//-------------------------------------------------
-ADDRESS_MAP_START(bbc_tube_z80_device::tube_z80_fetch)
- AM_RANGE(0x000, 0xffff) AM_READ(opcode_r)
-ADDRESS_MAP_END
+void bbc_tube_z80_device::tube_z80_fetch(address_map &map)
+{
+ map(0x000, 0xffff).r(this, FUNC(bbc_tube_z80_device::opcode_r));
+}
//-------------------------------------------------
// ADDRESS_MAP( tube_z80_io )
//-------------------------------------------------
-ADDRESS_MAP_START(bbc_tube_z80_device::tube_z80_io)
- AM_RANGE(0x00, 0x07) AM_MIRROR(0xff00) AM_DEVREADWRITE("ula", tube_device, parasite_r, parasite_w)
-ADDRESS_MAP_END
+void bbc_tube_z80_device::tube_z80_io(address_map &map)
+{
+ map(0x00, 0x07).mirror(0xff00).rw("ula", FUNC(tube_device::parasite_r), FUNC(tube_device::parasite_w));
+}
//-------------------------------------------------
// ROM( tube_z80 )
diff --git a/src/devices/bus/bbc/tube/tube_zep100.cpp b/src/devices/bus/bbc/tube/tube_zep100.cpp
index e80b53b8f3f..30c48564e89 100644
--- a/src/devices/bus/bbc/tube/tube_zep100.cpp
+++ b/src/devices/bus/bbc/tube/tube_zep100.cpp
@@ -25,18 +25,20 @@ DEFINE_DEVICE_TYPE(BBC_TUBE_ZEP100, bbc_tube_zep100_device, "bbc_tube_zep100", "
// ADDRESS_MAP( tube_zep100_mem )
//-------------------------------------------------
-ADDRESS_MAP_START(bbc_tube_zep100_device::tube_zep100_mem)
- AM_RANGE(0x0000, 0xffff) AM_READWRITE(mem_r, mem_w)
-ADDRESS_MAP_END
+void bbc_tube_zep100_device::tube_zep100_mem(address_map &map)
+{
+ map(0x0000, 0xffff).rw(this, FUNC(bbc_tube_zep100_device::mem_r), FUNC(bbc_tube_zep100_device::mem_w));
+}
//-------------------------------------------------
// ADDRESS_MAP( tube_zep100_io )
//-------------------------------------------------
-ADDRESS_MAP_START(bbc_tube_zep100_device::tube_zep100_io)
- ADDRESS_MAP_UNMAP_HIGH
- AM_RANGE(0x00, 0x07) AM_MIRROR(0xff00) AM_READWRITE(io_r, io_w)
-ADDRESS_MAP_END
+void bbc_tube_zep100_device::tube_zep100_io(address_map &map)
+{
+ map.unmap_value_high();
+ map(0x00, 0x07).mirror(0xff00).rw(this, FUNC(bbc_tube_zep100_device::io_r), FUNC(bbc_tube_zep100_device::io_w));
+}
//-------------------------------------------------
// ROM( tube_zep100 )
diff --git a/src/devices/bus/c64/cpm.cpp b/src/devices/bus/c64/cpm.cpp
index d3e1acdb82a..c74cab3d55b 100644
--- a/src/devices/bus/c64/cpm.cpp
+++ b/src/devices/bus/c64/cpm.cpp
@@ -40,18 +40,20 @@ DEFINE_DEVICE_TYPE(C64_CPM, c64_cpm_cartridge_device, "c64_cpm", "C64 CP/M cartr
// ADDRESS_MAP( z80_mem )
//-------------------------------------------------
-ADDRESS_MAP_START(c64_cpm_cartridge_device::z80_mem)
- AM_RANGE(0x0000, 0xffff) AM_READWRITE(dma_r, dma_w)
-ADDRESS_MAP_END
+void c64_cpm_cartridge_device::z80_mem(address_map &map)
+{
+ map(0x0000, 0xffff).rw(this, FUNC(c64_cpm_cartridge_device::dma_r), FUNC(c64_cpm_cartridge_device::dma_w));
+}
//-------------------------------------------------
// ADDRESS_MAP( z80_io )
//-------------------------------------------------
-ADDRESS_MAP_START(c64_cpm_cartridge_device::z80_io)
- AM_RANGE(0x0000, 0xffff) AM_READWRITE(dma_r, dma_w)
-ADDRESS_MAP_END
+void c64_cpm_cartridge_device::z80_io(address_map &map)
+{
+ map(0x0000, 0xffff).rw(this, FUNC(c64_cpm_cartridge_device::dma_r), FUNC(c64_cpm_cartridge_device::dma_w));
+}
//-------------------------------------------------
diff --git a/src/devices/bus/c64/fcc.cpp b/src/devices/bus/c64/fcc.cpp
index aa42c6e0b26..5a792e12db5 100644
--- a/src/devices/bus/c64/fcc.cpp
+++ b/src/devices/bus/c64/fcc.cpp
@@ -64,10 +64,11 @@ const tiny_rom_entry *c64_final_chesscard_device::device_rom_region() const
// ADDRESS_MAP( c64_fcc_map )
//-------------------------------------------------
-ADDRESS_MAP_START(c64_final_chesscard_device::c64_fcc_map)
- AM_RANGE(0x0000, 0x1fff) AM_MIRROR(0x6000) AM_READWRITE(nvram_r, nvram_w)
- AM_RANGE(0x8000, 0xffff) AM_ROM AM_REGION(G65SC02P4_TAG, 0)
-ADDRESS_MAP_END
+void c64_final_chesscard_device::c64_fcc_map(address_map &map)
+{
+ map(0x0000, 0x1fff).mirror(0x6000).rw(this, FUNC(c64_final_chesscard_device::nvram_r), FUNC(c64_final_chesscard_device::nvram_w));
+ map(0x8000, 0xffff).rom().region(G65SC02P4_TAG, 0);
+}
//-------------------------------------------------
diff --git a/src/devices/bus/c64/multiscreen.cpp b/src/devices/bus/c64/multiscreen.cpp
index 1b2ec8c9735..759c40d1bc8 100644
--- a/src/devices/bus/c64/multiscreen.cpp
+++ b/src/devices/bus/c64/multiscreen.cpp
@@ -102,9 +102,10 @@ const tiny_rom_entry *c64_multiscreen_cartridge_device::device_rom_region() cons
}
-ADDRESS_MAP_START(c64_multiscreen_cartridge_device::multiscreen_mem)
- AM_RANGE(0x0000, 0x1fff) AM_ROM AM_REGION(MC6802P_TAG, 0)
-ADDRESS_MAP_END
+void c64_multiscreen_cartridge_device::multiscreen_mem(address_map &map)
+{
+ map(0x0000, 0x1fff).rom().region(MC6802P_TAG, 0);
+}
//-------------------------------------------------
diff --git a/src/devices/bus/c64/supercpu.cpp b/src/devices/bus/c64/supercpu.cpp
index 1d4206b1c7c..035c878a915 100644
--- a/src/devices/bus/c64/supercpu.cpp
+++ b/src/devices/bus/c64/supercpu.cpp
@@ -49,11 +49,12 @@ const tiny_rom_entry *c64_supercpu_device::device_rom_region() const
// ADDRESS_MAP( c64_supercpu_map )
//-------------------------------------------------
-ADDRESS_MAP_START(c64_supercpu_device::c64_supercpu_map)
- AM_RANGE(0x000000, 0x01ffff) AM_RAM AM_SHARE("sram")
- AM_RANGE(0x020000, 0xf7ffff) AM_RAM AM_SHARE("dimm")
- AM_RANGE(0xf80000, 0xf9ffff) AM_MIRROR(0x60000) AM_ROM AM_REGION(G65816_TAG, 0)
-ADDRESS_MAP_END
+void c64_supercpu_device::c64_supercpu_map(address_map &map)
+{
+ map(0x000000, 0x01ffff).ram().share("sram");
+ map(0x020000, 0xf7ffff).ram().share("dimm");
+ map(0xf80000, 0xf9ffff).mirror(0x60000).rom().region(G65816_TAG, 0);
+}
//-------------------------------------------------
diff --git a/src/devices/bus/cbm2/hrg.cpp b/src/devices/bus/cbm2/hrg.cpp
index 3bc92e62438..367602db211 100644
--- a/src/devices/bus/cbm2/hrg.cpp
+++ b/src/devices/bus/cbm2/hrg.cpp
@@ -66,20 +66,22 @@ const tiny_rom_entry *cbm2_hrg_device::device_rom_region() const
// ADDRESS_MAP( hrg_a_map )
//-------------------------------------------------
-ADDRESS_MAP_START(cbm2_hrg_a_device::hrg_a_map)
- ADDRESS_MAP_GLOBAL_MASK(0x7fff)
- AM_RANGE(0x0000, 0x7fff) AM_RAM
-ADDRESS_MAP_END
+void cbm2_hrg_a_device::hrg_a_map(address_map &map)
+{
+ map.global_mask(0x7fff);
+ map(0x0000, 0x7fff).ram();
+}
//-------------------------------------------------
// ADDRESS_MAP( hrg_b_map )
//-------------------------------------------------
-ADDRESS_MAP_START(cbm2_hrg_b_device::hrg_b_map)
- ADDRESS_MAP_GLOBAL_MASK(0x3fff)
- AM_RANGE(0x0000, 0x3fff) AM_RAM
-ADDRESS_MAP_END
+void cbm2_hrg_b_device::hrg_b_map(address_map &map)
+{
+ map.global_mask(0x3fff);
+ map(0x0000, 0x3fff).ram();
+}
//-------------------------------------------------
diff --git a/src/devices/bus/cbmiec/c1541.cpp b/src/devices/bus/cbmiec/c1541.cpp
index 9d708a588a1..d4455704934 100644
--- a/src/devices/bus/cbmiec/c1541.cpp
+++ b/src/devices/bus/cbmiec/c1541.cpp
@@ -500,12 +500,13 @@ WRITE8_MEMBER( c1541_prologic_dos_classic_device::write )
// ADDRESS_MAP( c1541_mem )
//-------------------------------------------------
-ADDRESS_MAP_START(c1541_device_base::c1541_mem)
- AM_RANGE(0x0000, 0x07ff) AM_MIRROR(0x6000) AM_RAM
- AM_RANGE(0x1800, 0x180f) AM_MIRROR(0x63f0) AM_DEVREADWRITE(M6522_0_TAG, via6522_device, read, write)
- AM_RANGE(0x1c00, 0x1c0f) AM_MIRROR(0x63f0) AM_DEVREADWRITE(M6522_1_TAG, via6522_device, read, write)
- AM_RANGE(0x8000, 0xbfff) AM_MIRROR(0x4000) AM_ROM AM_REGION(M6502_TAG, 0)
-ADDRESS_MAP_END
+void c1541_device_base::c1541_mem(address_map &map)
+{
+ map(0x0000, 0x07ff).mirror(0x6000).ram();
+ map(0x1800, 0x180f).mirror(0x63f0).rw(M6522_0_TAG, FUNC(via6522_device::read), FUNC(via6522_device::write));
+ map(0x1c00, 0x1c0f).mirror(0x63f0).rw(M6522_1_TAG, FUNC(via6522_device::read), FUNC(via6522_device::write));
+ map(0x8000, 0xbfff).mirror(0x4000).rom().region(M6502_TAG, 0);
+}
//-------------------------------------------------
@@ -539,8 +540,9 @@ ADDRESS_MAP_END
// ADDRESS_MAP( c1541pdc_mem )
//-------------------------------------------------
-ADDRESS_MAP_START(c1541_prologic_dos_classic_device::c1541pdc_mem)
- AM_RANGE(0x0000, 0xffff) AM_READWRITE(read, write)
+void c1541_prologic_dos_classic_device::c1541pdc_mem(address_map &map)
+{
+ map(0x0000, 0xffff).rw(this, FUNC(c1541_prologic_dos_classic_device::read), FUNC(c1541_prologic_dos_classic_device::write));
/* AM_RANGE(0x0000, 0x07ff) AM_MIRROR(0x6000) AM_RAM AM_SHARE("share1")
AM_RANGE(0x1800, 0x180f) AM_MIRROR(0x63f0) AM_DEVREADWRITE(M6522_0_TAG, via6522_device, read, write)
AM_RANGE(0x1c00, 0x1c0f) AM_MIRROR(0x63f0) AM_DEVREADWRITE(M6522_1_TAG, via6522_device, read, write)
@@ -549,7 +551,7 @@ ADDRESS_MAP_START(c1541_prologic_dos_classic_device::c1541pdc_mem)
AM_RANGE(0xa000, 0xb7ff) AM_ROM AM_REGION(M6502_TAG, 0x0000)
AM_RANGE(0xb800, 0xb80f) AM_READWRITE(pia_r, pia_w)
AM_RANGE(0xf000, 0xffff) AM_ROM AM_REGION(M6502_TAG, 0x2000)*/
-ADDRESS_MAP_END
+}
WRITE_LINE_MEMBER( c1541_device_base::via0_irq_w )
diff --git a/src/devices/bus/cbmiec/c1571.cpp b/src/devices/bus/cbmiec/c1571.cpp
index e12008a139d..75b830c11fa 100644
--- a/src/devices/bus/cbmiec/c1571.cpp
+++ b/src/devices/bus/cbmiec/c1571.cpp
@@ -144,30 +144,32 @@ const tiny_rom_entry *mini_chief_device::device_rom_region() const
// ADDRESS_MAP( c1571_mem )
//-------------------------------------------------
-ADDRESS_MAP_START(c1571_device::c1571_mem)
- AM_RANGE(0x0000, 0x07ff) AM_RAM
- AM_RANGE(0x1800, 0x180f) AM_MIRROR(0x03f0) AM_DEVREADWRITE(M6522_0_TAG, via6522_device, read, write)
- AM_RANGE(0x1c00, 0x1c0f) AM_MIRROR(0x03f0) AM_READWRITE(via1_r, via1_w)
- AM_RANGE(0x2000, 0x2003) AM_MIRROR(0x1ffc) AM_DEVREADWRITE(WD1770_TAG, wd1770_device, read, write)
- AM_RANGE(0x4000, 0x400f) AM_MIRROR(0x3ff0) AM_DEVREADWRITE(M6526_TAG, mos6526_device, read, write)
- AM_RANGE(0x8000, 0xffff) AM_ROM AM_REGION(M6502_TAG, 0)
-ADDRESS_MAP_END
+void c1571_device::c1571_mem(address_map &map)
+{
+ map(0x0000, 0x07ff).ram();
+ map(0x1800, 0x180f).mirror(0x03f0).rw(M6522_0_TAG, FUNC(via6522_device::read), FUNC(via6522_device::write));
+ map(0x1c00, 0x1c0f).mirror(0x03f0).rw(this, FUNC(c1571_device::via1_r), FUNC(c1571_device::via1_w));
+ map(0x2000, 0x2003).mirror(0x1ffc).rw(WD1770_TAG, FUNC(wd1770_device::read), FUNC(wd1770_device::write));
+ map(0x4000, 0x400f).mirror(0x3ff0).rw(M6526_TAG, FUNC(mos6526_device::read), FUNC(mos6526_device::write));
+ map(0x8000, 0xffff).rom().region(M6502_TAG, 0);
+}
//-------------------------------------------------
// ADDRESS_MAP( mini_chief_mem )
//-------------------------------------------------
-ADDRESS_MAP_START(mini_chief_device::mini_chief_mem)
- AM_RANGE(0x0000, 0x07ff) AM_RAM
- AM_RANGE(0x1800, 0x180f) AM_MIRROR(0x03f0) AM_DEVREADWRITE(M6522_0_TAG, via6522_device, read, write)
- AM_RANGE(0x1c00, 0x1c0f) AM_MIRROR(0x03f0) AM_READWRITE(via1_r, via1_w)
- AM_RANGE(0x2000, 0x2003) AM_MIRROR(0x1ffc) AM_DEVREADWRITE(WD1770_TAG, wd1770_device, read, write)
- AM_RANGE(0x4000, 0x400f) AM_MIRROR(0xff0) AM_DEVREADWRITE(M6526_TAG, mos6526_device, read, write)
- AM_RANGE(0x5000, 0x5fff) AM_MIRROR(0x2000) AM_RAM
- AM_RANGE(0x6000, 0x6fff) AM_RAM
- AM_RANGE(0x8000, 0xffff) AM_ROM AM_REGION(M6502_TAG, 0)
-ADDRESS_MAP_END
+void mini_chief_device::mini_chief_mem(address_map &map)
+{
+ map(0x0000, 0x07ff).ram();
+ map(0x1800, 0x180f).mirror(0x03f0).rw(M6522_0_TAG, FUNC(via6522_device::read), FUNC(via6522_device::write));
+ map(0x1c00, 0x1c0f).mirror(0x03f0).rw(this, FUNC(mini_chief_device::via1_r), FUNC(mini_chief_device::via1_w));
+ map(0x2000, 0x2003).mirror(0x1ffc).rw(WD1770_TAG, FUNC(wd1770_device::read), FUNC(wd1770_device::write));
+ map(0x4000, 0x400f).mirror(0xff0).rw(M6526_TAG, FUNC(mos6526_device::read), FUNC(mos6526_device::write));
+ map(0x5000, 0x5fff).mirror(0x2000).ram();
+ map(0x6000, 0x6fff).ram();
+ map(0x8000, 0xffff).rom().region(M6502_TAG, 0);
+}
WRITE_LINE_MEMBER( c1571_device::via0_irq_w )
diff --git a/src/devices/bus/cbmiec/c1581.cpp b/src/devices/bus/cbmiec/c1581.cpp
index 1244df1f418..d16ca955bc0 100644
--- a/src/devices/bus/cbmiec/c1581.cpp
+++ b/src/devices/bus/cbmiec/c1581.cpp
@@ -89,12 +89,13 @@ const tiny_rom_entry *c1563_device::device_rom_region() const
// ADDRESS_MAP( c1581_mem )
//-------------------------------------------------
-ADDRESS_MAP_START(c1581_device::c1581_mem)
- AM_RANGE(0x0000, 0x1fff) AM_MIRROR(0x2000) AM_RAM
- AM_RANGE(0x4000, 0x400f) AM_MIRROR(0x1ff0) AM_DEVREADWRITE(M8520_TAG, mos8520_device, read, write)
- AM_RANGE(0x6000, 0x6003) AM_MIRROR(0x1ffc) AM_DEVREADWRITE(WD1772_TAG, wd1772_device, read, write)
- AM_RANGE(0x8000, 0xffff) AM_ROM AM_REGION(M6502_TAG, 0)
-ADDRESS_MAP_END
+void c1581_device::c1581_mem(address_map &map)
+{
+ map(0x0000, 0x1fff).mirror(0x2000).ram();
+ map(0x4000, 0x400f).mirror(0x1ff0).rw(M8520_TAG, FUNC(mos8520_device::read), FUNC(mos8520_device::write));
+ map(0x6000, 0x6003).mirror(0x1ffc).rw(WD1772_TAG, FUNC(wd1772_device::read), FUNC(wd1772_device::write));
+ map(0x8000, 0xffff).rom().region(M6502_TAG, 0);
+}
//-------------------------------------------------
diff --git a/src/devices/bus/cbmiec/cmdhd.cpp b/src/devices/bus/cbmiec/cmdhd.cpp
index b6aaefa2008..0a770d370cb 100644
--- a/src/devices/bus/cbmiec/cmdhd.cpp
+++ b/src/devices/bus/cbmiec/cmdhd.cpp
@@ -61,15 +61,16 @@ const tiny_rom_entry *cmd_hd_device::device_rom_region() const
// ADDRESS_MAP( cmd_hd_mem )
//-------------------------------------------------
-ADDRESS_MAP_START(cmd_hd_device::cmd_hd_mem)
- AM_RANGE(0x0000, 0x7fff) AM_RAM
- AM_RANGE(0x8000, 0xffff) AM_ROM AM_REGION(M6502_TAG, 0)
- AM_RANGE(0x8000, 0x800f) AM_MIRROR(0x1f0) AM_DEVWRITE(M6522_1_TAG, via6522_device, write)
- AM_RANGE(0x8400, 0x840f) AM_MIRROR(0x1f0) AM_DEVWRITE(M6522_2_TAG, via6522_device, write)
- AM_RANGE(0x8800, 0x8803) AM_MIRROR(0x1fc) AM_DEVWRITE(I8255A_TAG, i8255_device, write)
- AM_RANGE(0x8c00, 0x8c0f) AM_MIRROR(0x1f0) AM_DEVWRITE(RTC72421A_TAG, rtc72421_device, write)
- AM_RANGE(0x8f00, 0x8f00) AM_MIRROR(0xff) AM_WRITE(led_w)
-ADDRESS_MAP_END
+void cmd_hd_device::cmd_hd_mem(address_map &map)
+{
+ map(0x0000, 0x7fff).ram();
+ map(0x8000, 0xffff).rom().region(M6502_TAG, 0);
+ map(0x8000, 0x800f).mirror(0x1f0).w(M6522_1_TAG, FUNC(via6522_device::write));
+ map(0x8400, 0x840f).mirror(0x1f0).w(M6522_2_TAG, FUNC(via6522_device::write));
+ map(0x8800, 0x8803).mirror(0x1fc).w(I8255A_TAG, FUNC(i8255_device::write));
+ map(0x8c00, 0x8c0f).mirror(0x1f0).w(RTC72421A_TAG, FUNC(rtc72421_device::write));
+ map(0x8f00, 0x8f00).mirror(0xff).w(this, FUNC(cmd_hd_device::led_w));
+}
//-------------------------------------------------
diff --git a/src/devices/bus/cbmiec/fd2000.cpp b/src/devices/bus/cbmiec/fd2000.cpp
index 34323500fbc..2f64d86ac28 100644
--- a/src/devices/bus/cbmiec/fd2000.cpp
+++ b/src/devices/bus/cbmiec/fd2000.cpp
@@ -89,26 +89,28 @@ const tiny_rom_entry *fd4000_device::device_rom_region() const
// ADDRESS_MAP( fd2000_mem )
//-------------------------------------------------
-ADDRESS_MAP_START(fd2000_device::fd2000_mem)
- AM_RANGE(0x0000, 0x3fff) AM_RAM
- AM_RANGE(0x4000, 0x400f) AM_MIRROR(0xbf0) AM_DEVREADWRITE(G65SC22P2_TAG, via6522_device, read, write)
- AM_RANGE(0x4e00, 0x4e07) AM_MIRROR(0x1f8) AM_DEVICE(DP8473V_TAG, dp8473_device, map)
- AM_RANGE(0x5000, 0x7fff) AM_RAM
- AM_RANGE(0x8000, 0xffff) AM_ROM AM_REGION(G65SC02PI2_TAG, 0)
-ADDRESS_MAP_END
+void fd2000_device::fd2000_mem(address_map &map)
+{
+ map(0x0000, 0x3fff).ram();
+ map(0x4000, 0x400f).mirror(0xbf0).rw(G65SC22P2_TAG, FUNC(via6522_device::read), FUNC(via6522_device::write));
+ map(0x4e00, 0x4e07).mirror(0x1f8).m(DP8473V_TAG, FUNC(dp8473_device::map));
+ map(0x5000, 0x7fff).ram();
+ map(0x8000, 0xffff).rom().region(G65SC02PI2_TAG, 0);
+}
//-------------------------------------------------
// ADDRESS_MAP( fd4000_mem )
//-------------------------------------------------
-ADDRESS_MAP_START(fd4000_device::fd4000_mem)
- AM_RANGE(0x0000, 0x3fff) AM_RAM
- AM_RANGE(0x4000, 0x400f) AM_MIRROR(0xbf0) AM_DEVREADWRITE(G65SC22P2_TAG, via6522_device, read, write)
- AM_RANGE(0x4e00, 0x4e07) AM_MIRROR(0x1f8) AM_DEVICE(PC8477AV1_TAG, pc8477a_device, map)
- AM_RANGE(0x5000, 0x7fff) AM_RAM
- AM_RANGE(0x8000, 0xffff) AM_ROM AM_REGION(R65C02P4_TAG, 0)
-ADDRESS_MAP_END
+void fd4000_device::fd4000_mem(address_map &map)
+{
+ map(0x0000, 0x3fff).ram();
+ map(0x4000, 0x400f).mirror(0xbf0).rw(G65SC22P2_TAG, FUNC(via6522_device::read), FUNC(via6522_device::write));
+ map(0x4e00, 0x4e07).mirror(0x1f8).m(PC8477AV1_TAG, FUNC(pc8477a_device::map));
+ map(0x5000, 0x7fff).ram();
+ map(0x8000, 0xffff).rom().region(R65C02P4_TAG, 0);
+}
READ8_MEMBER( fd2000_device::via_pa_r )
diff --git a/src/devices/bus/cbmiec/interpod.cpp b/src/devices/bus/cbmiec/interpod.cpp
index 146f1ecc49c..009229f6674 100644
--- a/src/devices/bus/cbmiec/interpod.cpp
+++ b/src/devices/bus/cbmiec/interpod.cpp
@@ -109,13 +109,14 @@ const tiny_rom_entry *interpod_device::device_rom_region() const
// ADDRESS_MAP( interpod_mem )
//-------------------------------------------------
-ADDRESS_MAP_START(interpod_device::interpod_mem)
- AM_RANGE(0x0000, 0x007f) AM_MIRROR(0x3b80) AM_DEVICE(R6532_TAG, mos6532_new_device, ram_map)
- AM_RANGE(0x0400, 0x041f) AM_MIRROR(0x3be0) AM_DEVICE(R6532_TAG, mos6532_new_device, io_map)
- AM_RANGE(0x2000, 0x2001) AM_MIRROR(0x9ffe) AM_DEVREADWRITE(MC6850_TAG, acia6850_device, read, write)
- AM_RANGE(0x4000, 0x47ff) AM_MIRROR(0xb800) AM_ROM AM_REGION(R6502_TAG, 0)
- AM_RANGE(0x8000, 0x800f) AM_MIRROR(0x5ff0) AM_DEVREADWRITE(R6522_TAG, via6522_device, read, write)
-ADDRESS_MAP_END
+void interpod_device::interpod_mem(address_map &map)
+{
+ map(0x0000, 0x007f).mirror(0x3b80).m(R6532_TAG, FUNC(mos6532_new_device::ram_map));
+ map(0x0400, 0x041f).mirror(0x3be0).m(R6532_TAG, FUNC(mos6532_new_device::io_map));
+ map(0x2000, 0x2001).mirror(0x9ffe).rw(MC6850_TAG, FUNC(acia6850_device::read), FUNC(acia6850_device::write));
+ map(0x4000, 0x47ff).mirror(0xb800).rom().region(R6502_TAG, 0);
+ map(0x8000, 0x800f).mirror(0x5ff0).rw(R6522_TAG, FUNC(via6522_device::read), FUNC(via6522_device::write));
+}
//-------------------------------------------------
diff --git a/src/devices/bus/cbmiec/serialbox.cpp b/src/devices/bus/cbmiec/serialbox.cpp
index d89712fbe01..04682e661de 100644
--- a/src/devices/bus/cbmiec/serialbox.cpp
+++ b/src/devices/bus/cbmiec/serialbox.cpp
@@ -59,9 +59,10 @@ const tiny_rom_entry *serial_box_device::device_rom_region() const
// ADDRESS_MAP( serial_box_mem )
//-------------------------------------------------
-ADDRESS_MAP_START(serial_box_device::serial_box_mem)
- AM_RANGE(0xf000, 0xffff) AM_ROM AM_REGION(M6502_TAG, 0)
-ADDRESS_MAP_END
+void serial_box_device::serial_box_mem(address_map &map)
+{
+ map(0xf000, 0xffff).rom().region(M6502_TAG, 0);
+}
//-------------------------------------------------
diff --git a/src/devices/bus/cbmiec/vic1515.cpp b/src/devices/bus/cbmiec/vic1515.cpp
index f0569d2f44e..20b9420c2b5 100644
--- a/src/devices/bus/cbmiec/vic1515.cpp
+++ b/src/devices/bus/cbmiec/vic1515.cpp
@@ -42,17 +42,19 @@ const tiny_rom_entry *vic1515_device::device_rom_region() const
// ADDRESS_MAP( vic1515_mem )
//-------------------------------------------------
-ADDRESS_MAP_START(vic1515_device::vic1515_mem)
- AM_RANGE(0x0000, 0x0fff) AM_ROM AM_REGION("rom", 0)
-ADDRESS_MAP_END
+void vic1515_device::vic1515_mem(address_map &map)
+{
+ map(0x0000, 0x0fff).rom().region("rom", 0);
+}
//-------------------------------------------------
// ADDRESS_MAP( vic1515_io )
//-------------------------------------------------
-ADDRESS_MAP_START(vic1515_device::vic1515_io)
-ADDRESS_MAP_END
+void vic1515_device::vic1515_io(address_map &map)
+{
+}
//-------------------------------------------------
diff --git a/src/devices/bus/cbmiec/vic1520.cpp b/src/devices/bus/cbmiec/vic1520.cpp
index c20904403ae..c437790cf46 100644
--- a/src/devices/bus/cbmiec/vic1520.cpp
+++ b/src/devices/bus/cbmiec/vic1520.cpp
@@ -82,11 +82,12 @@ const tiny_rom_entry *vic1520_device::device_rom_region() const
// ADDRESS_MAP( vic1520_mem )
//-------------------------------------------------
-ADDRESS_MAP_START(vic1520_device::vic1520_mem)
- ADDRESS_MAP_GLOBAL_MASK(0xfff)
- AM_RANGE(0x000, 0x03f) AM_RAM
- AM_RANGE(0x800, 0xfff) AM_ROM AM_REGION(M6500_1_TAG, 0)
-ADDRESS_MAP_END
+void vic1520_device::vic1520_mem(address_map &map)
+{
+ map.global_mask(0xfff);
+ map(0x000, 0x03f).ram();
+ map(0x800, 0xfff).rom().region(M6500_1_TAG, 0);
+}
//-------------------------------------------------
diff --git a/src/devices/bus/centronics/comxpl80.cpp b/src/devices/bus/centronics/comxpl80.cpp
index 826cafd4ec9..754808223fc 100644
--- a/src/devices/bus/centronics/comxpl80.cpp
+++ b/src/devices/bus/centronics/comxpl80.cpp
@@ -62,7 +62,8 @@ const tiny_rom_entry *comx_pl80_device::device_rom_region() const
// ADDRESS_MAP( comxpl80_mem )
//-------------------------------------------------
-ADDRESS_MAP_START(comx_pl80_device::comxpl80_mem)
+void comx_pl80_device::comxpl80_mem(address_map &map)
+{
/* AM_RANGE(0x000, 0x000) AM_READWRITE(cx005_port_a_r, cx005_port_a_w)
AM_RANGE(0x001, 0x001) AM_READWRITE(cx005_port_b_r, cx005_port_b_w)
AM_RANGE(0x002, 0x002) AM_READWRITE(cx005_port_c_r, cx005_port_c_w)
@@ -73,12 +74,12 @@ ADDRESS_MAP_START(comx_pl80_device::comxpl80_mem)
AM_RANGE(0x007, 0x007) AM_READ(cx005_port_d_analog_r)
AM_RANGE(0x008, 0x008) AM_READWRITE(cx005_timer_data_r, cx005_timer_data_w)
AM_RANGE(0x008, 0x008) AM_READWRITE(cx005_timer_ctrl_r, cx005_timer_ctrl_w)*/
- AM_RANGE(0x00a, 0x01f) AM_NOP // Not Used
- AM_RANGE(0x020, 0x07f) AM_RAM // Internal RAM
- AM_RANGE(0x080, 0xf7f) AM_ROM AM_REGION(CX005_TAG, 0) // Internal ROM
- AM_RANGE(0xf80, 0xff7) AM_ROM AM_REGION(CX005_TAG, 0xf00) // Self-Test
- AM_RANGE(0xff8, 0xfff) AM_ROM AM_REGION(CX005_TAG, 0xf78) // Interrupt Vectors
-ADDRESS_MAP_END
+ map(0x00a, 0x01f).noprw(); // Not Used
+ map(0x020, 0x07f).ram(); // Internal RAM
+ map(0x080, 0xf7f).rom().region(CX005_TAG, 0); // Internal ROM
+ map(0xf80, 0xff7).rom().region(CX005_TAG, 0xf00); // Self-Test
+ map(0xff8, 0xfff).rom().region(CX005_TAG, 0xf78); // Interrupt Vectors
+}
//-------------------------------------------------
diff --git a/src/devices/bus/centronics/epson_ex800.cpp b/src/devices/bus/centronics/epson_ex800.cpp
index 49349a2a19e..ace4bd0ca25 100644
--- a/src/devices/bus/centronics/epson_ex800.cpp
+++ b/src/devices/bus/centronics/epson_ex800.cpp
@@ -198,16 +198,17 @@ const tiny_rom_entry *epson_ex800_device::device_rom_region() const
// ADDRESS_MAP( ex800_mem )
//-------------------------------------------------
-ADDRESS_MAP_START(epson_ex800_device::ex800_mem)
- AM_RANGE(0x0000, 0x7fff) AM_ROM AM_REGION("maincpu", 0)
- AM_RANGE(0x8000, 0xbfff) AM_RAM /* external RAM */
- AM_RANGE(0xc000, 0xc7ff) AM_MIRROR(0x1800) AM_READWRITE(devsel_r, devsel_w)
- AM_RANGE(0xe000, 0xe7ff) AM_READWRITE(gate5a_r, gate5a_w)
- AM_RANGE(0xe800, 0xefff) AM_READWRITE(iosel_r, iosel_w)
- AM_RANGE(0xf000, 0xf001) AM_MIRROR(0x07fc) AM_READ(gate7a_r)
- AM_RANGE(0xf002, 0xf003) AM_MIRROR(0x07fc) AM_WRITE(gate7a_w)
- AM_RANGE(0xf800, 0xfeff) AM_NOP /* not connected */
-ADDRESS_MAP_END
+void epson_ex800_device::ex800_mem(address_map &map)
+{
+ map(0x0000, 0x7fff).rom().region("maincpu", 0);
+ map(0x8000, 0xbfff).ram(); /* external RAM */
+ map(0xc000, 0xc7ff).mirror(0x1800).rw(this, FUNC(epson_ex800_device::devsel_r), FUNC(epson_ex800_device::devsel_w));
+ map(0xe000, 0xe7ff).rw(this, FUNC(epson_ex800_device::gate5a_r), FUNC(epson_ex800_device::gate5a_w));
+ map(0xe800, 0xefff).rw(this, FUNC(epson_ex800_device::iosel_r), FUNC(epson_ex800_device::iosel_w));
+ map(0xf000, 0xf001).mirror(0x07fc).r(this, FUNC(epson_ex800_device::gate7a_r));
+ map(0xf002, 0xf003).mirror(0x07fc).w(this, FUNC(epson_ex800_device::gate7a_w));
+ map(0xf800, 0xfeff).noprw(); /* not connected */
+}
//-------------------------------------------------
diff --git a/src/devices/bus/centronics/epson_lx800.cpp b/src/devices/bus/centronics/epson_lx800.cpp
index 075cf8fb4d0..217421fb275 100644
--- a/src/devices/bus/centronics/epson_lx800.cpp
+++ b/src/devices/bus/centronics/epson_lx800.cpp
@@ -52,13 +52,14 @@ const tiny_rom_entry *epson_lx800_device::device_rom_region() const
// ADDRESS_MAP( lx800_mem )
//-------------------------------------------------
-ADDRESS_MAP_START(epson_lx800_device::lx800_mem)
- AM_RANGE(0x0000, 0x7fff) AM_ROM /* 32k firmware */
- AM_RANGE(0x8000, 0x9fff) AM_RAM /* 8k external RAM */
- AM_RANGE(0xa000, 0xbfff) AM_NOP /* not used */
- AM_RANGE(0xc000, 0xc007) AM_MIRROR(0x1ff8) AM_DEVREADWRITE("ic3b", e05a03_device, read, write)
- AM_RANGE(0xe000, 0xfeff) AM_NOP /* not used */
-ADDRESS_MAP_END
+void epson_lx800_device::lx800_mem(address_map &map)
+{
+ map(0x0000, 0x7fff).rom(); /* 32k firmware */
+ map(0x8000, 0x9fff).ram(); /* 8k external RAM */
+ map(0xa000, 0xbfff).noprw(); /* not used */
+ map(0xc000, 0xc007).mirror(0x1ff8).rw("ic3b", FUNC(e05a03_device::read), FUNC(e05a03_device::write));
+ map(0xe000, 0xfeff).noprw(); /* not used */
+}
//-------------------------------------------------
diff --git a/src/devices/bus/centronics/epson_lx810l.cpp b/src/devices/bus/centronics/epson_lx810l.cpp
index 2de831d80cd..45ba99fa6db 100644
--- a/src/devices/bus/centronics/epson_lx810l.cpp
+++ b/src/devices/bus/centronics/epson_lx810l.cpp
@@ -95,13 +95,14 @@ const tiny_rom_entry *epson_ap2000_device::device_rom_region() const
// ADDRESS_MAP( lx810l_mem )
//-------------------------------------------------
-ADDRESS_MAP_START(epson_lx810l_device::lx810l_mem)
- AM_RANGE(0x0000, 0x7fff) AM_ROM /* 32k firmware */
- AM_RANGE(0x8000, 0x9fff) AM_RAM /* 8k external RAM */
- AM_RANGE(0xa000, 0xbfff) AM_READWRITE(fakemem_r, fakemem_w) /* fake memory, write one, set all */
- AM_RANGE(0xc000, 0xc00f) AM_MIRROR(0x1ff0) AM_DEVREADWRITE("e05a30", e05a30_device, read, write)
- AM_RANGE(0xe000, 0xfeff) AM_NOP /* not used */
-ADDRESS_MAP_END
+void epson_lx810l_device::lx810l_mem(address_map &map)
+{
+ map(0x0000, 0x7fff).rom(); /* 32k firmware */
+ map(0x8000, 0x9fff).ram(); /* 8k external RAM */
+ map(0xa000, 0xbfff).rw(this, FUNC(epson_lx810l_device::fakemem_r), FUNC(epson_lx810l_device::fakemem_w)); /* fake memory, write one, set all */
+ map(0xc000, 0xc00f).mirror(0x1ff0).rw("e05a30", FUNC(e05a30_device::read), FUNC(e05a30_device::write));
+ map(0xe000, 0xfeff).noprw(); /* not used */
+}
//-------------------------------------------------
diff --git a/src/devices/bus/centronics/nec_p72.cpp b/src/devices/bus/centronics/nec_p72.cpp
index b50a34d7714..6af7046955b 100644
--- a/src/devices/bus/centronics/nec_p72.cpp
+++ b/src/devices/bus/centronics/nec_p72.cpp
@@ -36,12 +36,13 @@ const tiny_rom_entry *nec_p72_device::device_rom_region() const
// ADDRESS_MAP( p72_mem )
//-------------------------------------------------
-ADDRESS_MAP_START(nec_p72_device::p72_mem)
- AM_RANGE(0x000000, 0x0fffff) AM_ROM /* 1Mbyte firmware */
+void nec_p72_device::p72_mem(address_map &map)
+{
+ map(0x000000, 0x0fffff).rom(); /* 1Mbyte firmware */
//AM_RANGE(0x100000, 0x1fffff) AM_RAM /* 1Mbyte external RAM */ /* TODO might be 2x1Mbit */
// [RH] 29 August 2016: Commented out because the NEC V33 only has 20 address lines, and
// the V40 has more, but we don't have an NEC V40 implemented yet.
-ADDRESS_MAP_END
+}
//-------------------------------------------------
diff --git a/src/devices/bus/compis/hrg.cpp b/src/devices/bus/compis/hrg.cpp
index 79e22f352ec..ca4cf677a3b 100644
--- a/src/devices/bus/compis/hrg.cpp
+++ b/src/devices/bus/compis/hrg.cpp
@@ -32,15 +32,17 @@ DEFINE_DEVICE_TYPE(COMPIS_UHRG, compis_uhrg_device, "compis_uhrg", "Compis UHRG"
// ADDRESS_MAP( upd7220_map )
//-------------------------------------------------
-ADDRESS_MAP_START(compis_hrg_device::hrg_map)
- ADDRESS_MAP_GLOBAL_MASK(0x7fff)
- AM_RANGE(0x00000, 0x7fff) AM_RAM AM_SHARE("video_ram")
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(compis_uhrg_device::uhrg_map)
- ADDRESS_MAP_GLOBAL_MASK(0x1ffff)
- AM_RANGE(0x00000, 0x1ffff) AM_RAM AM_SHARE("video_ram")
-ADDRESS_MAP_END
+void compis_hrg_device::hrg_map(address_map &map)
+{
+ map.global_mask(0x7fff);
+ map(0x00000, 0x7fff).ram().share("video_ram");
+}
+
+void compis_uhrg_device::uhrg_map(address_map &map)
+{
+ map.global_mask(0x1ffff);
+ map(0x00000, 0x1ffff).ram().share("video_ram");
+}
//-------------------------------------------------
diff --git a/src/devices/bus/dmv/k230.cpp b/src/devices/bus/dmv/k230.cpp
index dd1249240d0..cc86c45e7bf 100644
--- a/src/devices/bus/dmv/k230.cpp
+++ b/src/devices/bus/dmv/k230.cpp
@@ -32,17 +32,19 @@ ROM_START( dmv_k235 )
ROM_LOAD( "dmv_int_8088_pic_33473.bin", 0x0000, 0x1000, CRC(104195dc) SHA1(08d48ca3b84ab26c1a764792e04ec4def7dad2ad))
ROM_END
-ADDRESS_MAP_START(dmv_k230_device::k230_mem)
- ADDRESS_MAP_UNMAP_HIGH
- AM_RANGE( 0x00000, 0x7ffff ) AM_READWRITE(program_r, program_w)
- AM_RANGE( 0x80000, 0xfffff ) AM_READ(rom_r)
-ADDRESS_MAP_END
+void dmv_k230_device::k230_mem(address_map &map)
+{
+ map.unmap_value_high();
+ map(0x00000, 0x7ffff).rw(this, FUNC(dmv_k230_device::program_r), FUNC(dmv_k230_device::program_w));
+ map(0x80000, 0xfffff).r(this, FUNC(dmv_k230_device::rom_r));
+}
-ADDRESS_MAP_START(dmv_k230_device::k230_io)
- ADDRESS_MAP_UNMAP_HIGH
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE( 0x00, 0xff ) AM_READWRITE(io_r, io_w)
-ADDRESS_MAP_END
+void dmv_k230_device::k230_io(address_map &map)
+{
+ map.unmap_value_high();
+ map.global_mask(0xff);
+ map(0x00, 0xff).rw(this, FUNC(dmv_k230_device::io_r), FUNC(dmv_k230_device::io_w));
+}
ADDRESS_MAP_START(dmv_k230_device::k234_mem)
ADDRESS_MAP_UNMAP_HIGH
diff --git a/src/devices/bus/ecbbus/grip.cpp b/src/devices/bus/ecbbus/grip.cpp
index 6ea2ab0ae77..68e0b6f5df8 100644
--- a/src/devices/bus/ecbbus/grip.cpp
+++ b/src/devices/bus/ecbbus/grip.cpp
@@ -124,36 +124,38 @@ const tiny_rom_entry *ecb_grip21_device::device_rom_region() const
// ADDRESS_MAP( grip_mem )
//-------------------------------------------------
-ADDRESS_MAP_START(ecb_grip21_device::grip_mem)
- AM_RANGE(0x0000, 0x3fff) AM_ROM
- AM_RANGE(0x4000, 0x47ff) AM_RAM
- AM_RANGE(0x8000, 0xffff) AM_RAMBANK("videoram")
-ADDRESS_MAP_END
+void ecb_grip21_device::grip_mem(address_map &map)
+{
+ map(0x0000, 0x3fff).rom();
+ map(0x4000, 0x47ff).ram();
+ map(0x8000, 0xffff).bankrw("videoram");
+}
//-------------------------------------------------
// ADDRESS_MAP( grip_io )
//-------------------------------------------------
-ADDRESS_MAP_START(ecb_grip21_device::grip_io)
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_READWRITE(cxstb_r, cxstb_w)
+void ecb_grip21_device::grip_io(address_map &map)
+{
+ map.global_mask(0xff);
+ map(0x00, 0x00).rw(this, FUNC(ecb_grip21_device::cxstb_r), FUNC(ecb_grip21_device::cxstb_w));
// AM_RANGE(0x10, 0x10) AM_WRITE(ccon_w)
- AM_RANGE(0x11, 0x11) AM_WRITE(vol0_w)
+ map(0x11, 0x11).w(this, FUNC(ecb_grip21_device::vol0_w));
// AM_RANGE(0x12, 0x12) AM_WRITE(rts_w)
- AM_RANGE(0x13, 0x13) AM_WRITE(page_w)
+ map(0x13, 0x13).w(this, FUNC(ecb_grip21_device::page_w));
// AM_RANGE(0x14, 0x14) AM_WRITE(cc1_w)
// AM_RANGE(0x15, 0x15) AM_WRITE(cc2_w)
- AM_RANGE(0x16, 0x16) AM_WRITE(flash_w)
- AM_RANGE(0x17, 0x17) AM_WRITE(vol1_w)
- AM_RANGE(0x20, 0x2f) AM_DEVREADWRITE(Z80STI_TAG, z80sti_device, read, write)
- AM_RANGE(0x30, 0x30) AM_READWRITE(lrs_r, lrs_w)
- AM_RANGE(0x40, 0x40) AM_READ(stat_r)
- AM_RANGE(0x50, 0x50) AM_DEVWRITE(MC6845_TAG, mc6845_device, address_w)
- AM_RANGE(0x52, 0x52) AM_DEVWRITE(MC6845_TAG, mc6845_device, register_w)
- AM_RANGE(0x53, 0x53) AM_DEVREAD(MC6845_TAG, mc6845_device, register_r)
- AM_RANGE(0x60, 0x60) AM_DEVWRITE("cent_data_out", output_latch_device, write)
- AM_RANGE(0x70, 0x73) AM_DEVREADWRITE(I8255A_TAG, i8255_device, read, write)
+ map(0x16, 0x16).w(this, FUNC(ecb_grip21_device::flash_w));
+ map(0x17, 0x17).w(this, FUNC(ecb_grip21_device::vol1_w));
+ map(0x20, 0x2f).rw(Z80STI_TAG, FUNC(z80sti_device::read), FUNC(z80sti_device::write));
+ map(0x30, 0x30).rw(this, FUNC(ecb_grip21_device::lrs_r), FUNC(ecb_grip21_device::lrs_w));
+ map(0x40, 0x40).r(this, FUNC(ecb_grip21_device::stat_r));
+ map(0x50, 0x50).w(MC6845_TAG, FUNC(mc6845_device::address_w));
+ map(0x52, 0x52).w(MC6845_TAG, FUNC(mc6845_device::register_w));
+ map(0x53, 0x53).r(MC6845_TAG, FUNC(mc6845_device::register_r));
+ map(0x60, 0x60).w("cent_data_out", FUNC(output_latch_device::write));
+ map(0x70, 0x73).rw(I8255A_TAG, FUNC(i8255_device::read), FUNC(i8255_device::write));
// AM_RANGE(0x80, 0x80) AM_WRITE(bl2out_w)
// AM_RANGE(0x90, 0x90) AM_WRITE(gr2out_w)
// AM_RANGE(0xa0, 0xa0) AM_WRITE(rd2out_w)
@@ -162,7 +164,7 @@ ADDRESS_MAP_START(ecb_grip21_device::grip_io)
// AM_RANGE(0xd0, 0xd0) AM_WRITE(grnout_w)
// AM_RANGE(0xe0, 0xe0) AM_WRITE(redout_w)
// AM_RANGE(0xf0, 0xf0) AM_WRITE(clrg1_w)
-ADDRESS_MAP_END
+}
//**************************************************************************
diff --git a/src/devices/bus/econet/e01.cpp b/src/devices/bus/econet/e01.cpp
index d221ad8025f..dd0e10b86a0 100644
--- a/src/devices/bus/econet/e01.cpp
+++ b/src/devices/bus/econet/e01.cpp
@@ -219,22 +219,23 @@ WRITE_LINE_MEMBER( econet_e01_device::scsi_req_w )
// ADDRESS_MAP( e01_mem )
//-------------------------------------------------
-ADDRESS_MAP_START(econet_e01_device::e01_mem)
- AM_RANGE(0x0000, 0xffff) AM_READWRITE(read, write)
- AM_RANGE(0xfc00, 0xfc00) AM_MIRROR(0x00c3) AM_READWRITE(rtc_address_r, rtc_address_w)
- AM_RANGE(0xfc04, 0xfc04) AM_MIRROR(0x00c3) AM_READWRITE(rtc_data_r, rtc_data_w)
- AM_RANGE(0xfc08, 0xfc08) AM_MIRROR(0x00c0) AM_READ(ram_select_r) AM_WRITE(floppy_w)
- AM_RANGE(0xfc0c, 0xfc0f) AM_MIRROR(0x00c0) AM_DEVREADWRITE(WD2793_TAG, wd2793_device, read, write)
- AM_RANGE(0xfc10, 0xfc1f) AM_MIRROR(0x00c0) AM_DEVREADWRITE(R6522_TAG, via6522_device, read, write)
- AM_RANGE(0xfc20, 0xfc23) AM_MIRROR(0x00c0) AM_DEVREADWRITE(MC6854_TAG, mc6854_device, read, write)
- AM_RANGE(0xfc24, 0xfc24) AM_MIRROR(0x00c3) AM_READWRITE(network_irq_disable_r, network_irq_disable_w)
- AM_RANGE(0xfc28, 0xfc28) AM_MIRROR(0x00c3) AM_READWRITE(network_irq_enable_r, network_irq_enable_w)
- AM_RANGE(0xfc2c, 0xfc2c) AM_MIRROR(0x00c3) AM_READ_PORT("FLAP")
- AM_RANGE(0xfc30, 0xfc30) AM_MIRROR(0x00c0) AM_READWRITE(hdc_data_r, hdc_data_w)
- AM_RANGE(0xfc31, 0xfc31) AM_MIRROR(0x00c0) AM_DEVREAD("scsi_ctrl_in", input_buffer_device, read)
- AM_RANGE(0xfc32, 0xfc32) AM_MIRROR(0x00c0) AM_WRITE(hdc_select_w)
- AM_RANGE(0xfc33, 0xfc33) AM_MIRROR(0x00c0) AM_WRITE(hdc_irq_enable_w)
-ADDRESS_MAP_END
+void econet_e01_device::e01_mem(address_map &map)
+{
+ map(0x0000, 0xffff).rw(this, FUNC(econet_e01_device::read), FUNC(econet_e01_device::write));
+ map(0xfc00, 0xfc00).mirror(0x00c3).rw(this, FUNC(econet_e01_device::rtc_address_r), FUNC(econet_e01_device::rtc_address_w));
+ map(0xfc04, 0xfc04).mirror(0x00c3).rw(this, FUNC(econet_e01_device::rtc_data_r), FUNC(econet_e01_device::rtc_data_w));
+ map(0xfc08, 0xfc08).mirror(0x00c0).r(this, FUNC(econet_e01_device::ram_select_r)).w(this, FUNC(econet_e01_device::floppy_w));
+ map(0xfc0c, 0xfc0f).mirror(0x00c0).rw(WD2793_TAG, FUNC(wd2793_device::read), FUNC(wd2793_device::write));
+ map(0xfc10, 0xfc1f).mirror(0x00c0).rw(R6522_TAG, FUNC(via6522_device::read), FUNC(via6522_device::write));
+ map(0xfc20, 0xfc23).mirror(0x00c0).rw(MC6854_TAG, FUNC(mc6854_device::read), FUNC(mc6854_device::write));
+ map(0xfc24, 0xfc24).mirror(0x00c3).rw(this, FUNC(econet_e01_device::network_irq_disable_r), FUNC(econet_e01_device::network_irq_disable_w));
+ map(0xfc28, 0xfc28).mirror(0x00c3).rw(this, FUNC(econet_e01_device::network_irq_enable_r), FUNC(econet_e01_device::network_irq_enable_w));
+ map(0xfc2c, 0xfc2c).mirror(0x00c3).portr("FLAP");
+ map(0xfc30, 0xfc30).mirror(0x00c0).rw(this, FUNC(econet_e01_device::hdc_data_r), FUNC(econet_e01_device::hdc_data_w));
+ map(0xfc31, 0xfc31).mirror(0x00c0).r("scsi_ctrl_in", FUNC(input_buffer_device::read));
+ map(0xfc32, 0xfc32).mirror(0x00c0).w(this, FUNC(econet_e01_device::hdc_select_w));
+ map(0xfc33, 0xfc33).mirror(0x00c0).w(this, FUNC(econet_e01_device::hdc_irq_enable_w));
+}
//-------------------------------------------------
diff --git a/src/devices/bus/epson_sio/pf10.cpp b/src/devices/bus/epson_sio/pf10.cpp
index 972da3e55a7..296dea50d4c 100644
--- a/src/devices/bus/epson_sio/pf10.cpp
+++ b/src/devices/bus/epson_sio/pf10.cpp
@@ -25,19 +25,21 @@ DEFINE_DEVICE_TYPE(EPSON_PF10, epson_pf10_device, "epson_pf10", "EPSON PF-10 Por
// address maps
//-------------------------------------------------
-ADDRESS_MAP_START(epson_pf10_device::cpu_mem)
- AM_RANGE(0x0000, 0x001f) AM_DEVREADWRITE("maincpu", hd6303y_cpu_device, m6801_io_r, m6801_io_w)
- AM_RANGE(0x0040, 0x00ff) AM_RAM /* 192 bytes internal ram */
- AM_RANGE(0x0800, 0x0fff) AM_RAM /* external 2k ram */
- AM_RANGE(0x1000, 0x17ff) AM_READWRITE(fdc_r, fdc_w)
- AM_RANGE(0x1800, 0x1fff) AM_WRITE(fdc_tc_w)
- AM_RANGE(0xe000, 0xffff) AM_ROM AM_REGION("maincpu", 0)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(epson_pf10_device::cpu_io)
- AM_RANGE(M6801_PORT1, M6801_PORT1) AM_READWRITE(port1_r, port1_w)
- AM_RANGE(M6801_PORT2, M6801_PORT2) AM_READWRITE(port2_r, port2_w)
-ADDRESS_MAP_END
+void epson_pf10_device::cpu_mem(address_map &map)
+{
+ map(0x0000, 0x001f).rw("maincpu", FUNC(hd6303y_cpu_device::m6801_io_r), FUNC(hd6303y_cpu_device::m6801_io_w));
+ map(0x0040, 0x00ff).ram(); /* 192 bytes internal ram */
+ map(0x0800, 0x0fff).ram(); /* external 2k ram */
+ map(0x1000, 0x17ff).rw(this, FUNC(epson_pf10_device::fdc_r), FUNC(epson_pf10_device::fdc_w));
+ map(0x1800, 0x1fff).w(this, FUNC(epson_pf10_device::fdc_tc_w));
+ map(0xe000, 0xffff).rom().region("maincpu", 0);
+}
+
+void epson_pf10_device::cpu_io(address_map &map)
+{
+ map(M6801_PORT1, M6801_PORT1).rw(this, FUNC(epson_pf10_device::port1_r), FUNC(epson_pf10_device::port1_w));
+ map(M6801_PORT2, M6801_PORT2).rw(this, FUNC(epson_pf10_device::port2_r), FUNC(epson_pf10_device::port2_w));
+}
//-------------------------------------------------
diff --git a/src/devices/bus/epson_sio/tf20.cpp b/src/devices/bus/epson_sio/tf20.cpp
index e63527463ae..572baf96621 100644
--- a/src/devices/bus/epson_sio/tf20.cpp
+++ b/src/devices/bus/epson_sio/tf20.cpp
@@ -29,20 +29,22 @@ DEFINE_DEVICE_TYPE(EPSON_TF20, epson_tf20_device, "epson_tf20", "EPSON TF-20 Dua
// address maps
//-------------------------------------------------
-ADDRESS_MAP_START(epson_tf20_device::cpu_mem)
- AM_RANGE(0x0000, 0x7fff) AM_RAMBANK("bank1")
- AM_RANGE(0x8000, 0xffff) AM_RAMBANK("bank2")
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(epson_tf20_device::cpu_io)
- ADDRESS_MAP_UNMAP_HIGH
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0xf0, 0xf3) AM_DEVREADWRITE("3a", upd7201_device, ba_cd_r, ba_cd_w)
- AM_RANGE(0xf6, 0xf6) AM_READ(rom_disable_r)
- AM_RANGE(0xf7, 0xf7) AM_READ_PORT("tf20_dip")
- AM_RANGE(0xf8, 0xf8) AM_READWRITE(upd765_tc_r, fdc_control_w)
- AM_RANGE(0xfa, 0xfb) AM_DEVICE("5a", upd765a_device, map)
-ADDRESS_MAP_END
+void epson_tf20_device::cpu_mem(address_map &map)
+{
+ map(0x0000, 0x7fff).bankrw("bank1");
+ map(0x8000, 0xffff).bankrw("bank2");
+}
+
+void epson_tf20_device::cpu_io(address_map &map)
+{
+ map.unmap_value_high();
+ map.global_mask(0xff);
+ map(0xf0, 0xf3).rw("3a", FUNC(upd7201_device::ba_cd_r), FUNC(upd7201_device::ba_cd_w));
+ map(0xf6, 0xf6).r(this, FUNC(epson_tf20_device::rom_disable_r));
+ map(0xf7, 0xf7).portr("tf20_dip");
+ map(0xf8, 0xf8).rw(this, FUNC(epson_tf20_device::upd765_tc_r), FUNC(epson_tf20_device::fdc_control_w));
+ map(0xfa, 0xfb).m("5a", FUNC(upd765a_device::map));
+}
//-------------------------------------------------
// rom_region - device-specific ROM region
diff --git a/src/devices/bus/hp80_io/82937.cpp b/src/devices/bus/hp80_io/82937.cpp
index e563ceff96e..d37d2050957 100644
--- a/src/devices/bus/hp80_io/82937.cpp
+++ b/src/devices/bus/hp80_io/82937.cpp
@@ -316,11 +316,12 @@ ROM_START(hp82937)
ROM_LOAD("1820-2437.bin" , 0 , 0x800 , CRC(687d1559) SHA1(44dfc8c3f431cd37a270b094f1db751214009214))
ROM_END
-ADDRESS_MAP_START(hp82937_io_card_device::cpu_io_map)
- ADDRESS_MAP_UNMAP_HIGH
- AM_RANGE(0x00 , 0x01) AM_DEVREADWRITE("xlator" , hp_1mb5_device , uc_r , uc_w)
- AM_RANGE(0x03 , 0x03) AM_READWRITE(switch_r , latch_w)
-ADDRESS_MAP_END
+void hp82937_io_card_device::cpu_io_map(address_map &map)
+{
+ map.unmap_value_high();
+ map(0x00, 0x01).rw("xlator", FUNC(hp_1mb5_device::uc_r), FUNC(hp_1mb5_device::uc_w));
+ map(0x03, 0x03).rw(this, FUNC(hp82937_io_card_device::switch_r), FUNC(hp82937_io_card_device::latch_w));
+}
const tiny_rom_entry *hp82937_io_card_device::device_rom_region() const
{
diff --git a/src/devices/bus/hp9845_io/98034.cpp b/src/devices/bus/hp9845_io/98034.cpp
index e98b1c6b7be..e44e845b9eb 100644
--- a/src/devices/bus/hp9845_io/98034.cpp
+++ b/src/devices/bus/hp9845_io/98034.cpp
@@ -339,22 +339,24 @@ ROM_START(hp98034)
ROM_LOAD("1816-1242.bin" , 0 , 0x400 , CRC(301a9f5f) SHA1(3d7c1ace38c4d3178fdbf764c044535d9f6ac94f))
ROM_END
-ADDRESS_MAP_START(hp98034_io_card_device::np_program_map)
- ADDRESS_MAP_UNMAP_HIGH
- AM_RANGE(0x000 , 0x3ff) AM_ROM AM_REGION("np" , 0)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(hp98034_io_card_device::np_io_map)
- ADDRESS_MAP_UNMAP_HIGH
- AM_RANGE(0 , 0) AM_WRITE(hpib_data_w)
- AM_RANGE(1 , 1) AM_WRITE(hpib_ctrl_w)
- AM_RANGE(2 , 2) AM_READ(hpib_ctrl_r)
- AM_RANGE(3 , 3) AM_READ(hpib_data_r)
- AM_RANGE(4 , 4) AM_READ(idr_r)
- AM_RANGE(5 , 5) AM_WRITE(odr_w)
- AM_RANGE(6 , 6) AM_READWRITE(mode_reg_r , mode_reg_clear_w)
- AM_RANGE(7 , 7) AM_READ(switch_r)
-ADDRESS_MAP_END
+void hp98034_io_card_device::np_program_map(address_map &map)
+{
+ map.unmap_value_high();
+ map(0x000, 0x3ff).rom().region("np", 0);
+}
+
+void hp98034_io_card_device::np_io_map(address_map &map)
+{
+ map.unmap_value_high();
+ map(0, 0).w(this, FUNC(hp98034_io_card_device::hpib_data_w));
+ map(1, 1).w(this, FUNC(hp98034_io_card_device::hpib_ctrl_w));
+ map(2, 2).r(this, FUNC(hp98034_io_card_device::hpib_ctrl_r));
+ map(3, 3).r(this, FUNC(hp98034_io_card_device::hpib_data_r));
+ map(4, 4).r(this, FUNC(hp98034_io_card_device::idr_r));
+ map(5, 5).w(this, FUNC(hp98034_io_card_device::odr_w));
+ map(6, 6).rw(this, FUNC(hp98034_io_card_device::mode_reg_r), FUNC(hp98034_io_card_device::mode_reg_clear_w));
+ map(7, 7).r(this, FUNC(hp98034_io_card_device::switch_r));
+}
const tiny_rom_entry *hp98034_io_card_device::device_rom_region() const
{
diff --git a/src/devices/bus/hp9845_io/98035.cpp b/src/devices/bus/hp9845_io/98035.cpp
index fe6c06b114a..17031758fbf 100644
--- a/src/devices/bus/hp9845_io/98035.cpp
+++ b/src/devices/bus/hp9845_io/98035.cpp
@@ -727,27 +727,29 @@ ROM_START(hp98035)
ROM_LOAD("1818-0469.bin" , 0 , 0x800 , CRC(e16ab3bc) SHA1(34e89a37a2822f27af21969941201317dbff615b))
ROM_END
-ADDRESS_MAP_START(hp98035_io_card_device::np_program_map)
- ADDRESS_MAP_UNMAP_HIGH
- AM_RANGE(0x000 , 0x7ff) AM_ROM AM_REGION("np" , 0)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(hp98035_io_card_device::np_io_map)
- ADDRESS_MAP_UNMAP_HIGH
- AM_RANGE(0x0 , 0x0) AM_WRITE(ram_addr_w)
- AM_RANGE(0x1 , 0x1) AM_READ(ram_data_r)
- AM_RANGE(0x2 , 0x2) AM_WRITE(ram_addr_data_w)
- AM_RANGE(0x3 , 0x3) AM_WRITE(ram_data_w)
- AM_RANGE(0x5 , 0x5) AM_WRITE(clock_key_w)
- AM_RANGE(0x7 , 0x7) AM_READ(clock_digit_r)
- AM_RANGE(0x8 , 0x8) AM_WRITE(odr_w)
- AM_RANGE(0x9 , 0x9) AM_READ(idr_r)
- AM_RANGE(0xa , 0xa) AM_READ(np_status_r)
- AM_RANGE(0xb , 0xb) AM_WRITE(clear_np_irq_w)
- AM_RANGE(0xc , 0xc) AM_READ(clock_mux_r)
- AM_RANGE(0xd , 0xd) AM_WRITE(set_irq_w)
- AM_RANGE(0xe , 0xe) AM_READWRITE(clr_inten_r , clr_inten_w)
-ADDRESS_MAP_END
+void hp98035_io_card_device::np_program_map(address_map &map)
+{
+ map.unmap_value_high();
+ map(0x000, 0x7ff).rom().region("np", 0);
+}
+
+void hp98035_io_card_device::np_io_map(address_map &map)
+{
+ map.unmap_value_high();
+ map(0x0, 0x0).w(this, FUNC(hp98035_io_card_device::ram_addr_w));
+ map(0x1, 0x1).r(this, FUNC(hp98035_io_card_device::ram_data_r));
+ map(0x2, 0x2).w(this, FUNC(hp98035_io_card_device::ram_addr_data_w));
+ map(0x3, 0x3).w(this, FUNC(hp98035_io_card_device::ram_data_w));
+ map(0x5, 0x5).w(this, FUNC(hp98035_io_card_device::clock_key_w));
+ map(0x7, 0x7).r(this, FUNC(hp98035_io_card_device::clock_digit_r));
+ map(0x8, 0x8).w(this, FUNC(hp98035_io_card_device::odr_w));
+ map(0x9, 0x9).r(this, FUNC(hp98035_io_card_device::idr_r));
+ map(0xa, 0xa).r(this, FUNC(hp98035_io_card_device::np_status_r));
+ map(0xb, 0xb).w(this, FUNC(hp98035_io_card_device::clear_np_irq_w));
+ map(0xc, 0xc).r(this, FUNC(hp98035_io_card_device::clock_mux_r));
+ map(0xd, 0xd).w(this, FUNC(hp98035_io_card_device::set_irq_w));
+ map(0xe, 0xe).rw(this, FUNC(hp98035_io_card_device::clr_inten_r), FUNC(hp98035_io_card_device::clr_inten_w));
+}
const tiny_rom_entry *hp98035_io_card_device::device_rom_region() const
{
diff --git a/src/devices/bus/ieee488/c2031.cpp b/src/devices/bus/ieee488/c2031.cpp
index 4d337e41600..f18f8dee9cf 100644
--- a/src/devices/bus/ieee488/c2031.cpp
+++ b/src/devices/bus/ieee488/c2031.cpp
@@ -61,12 +61,13 @@ const tiny_rom_entry *c2031_device::device_rom_region() const
// ADDRESS_MAP( c2031_mem )
//-------------------------------------------------
-ADDRESS_MAP_START(c2031_device::c2031_mem)
- AM_RANGE(0x0000, 0x07ff) AM_MIRROR(0x6000) AM_RAM
- AM_RANGE(0x1800, 0x180f) AM_MIRROR(0x63f0) AM_DEVREADWRITE(M6522_0_TAG, via6522_device, read, write)
- AM_RANGE(0x1c00, 0x1c0f) AM_MIRROR(0x63f0) AM_DEVREADWRITE(M6522_1_TAG, via6522_device, read, write)
- AM_RANGE(0x8000, 0xbfff) AM_MIRROR(0x4000) AM_ROM AM_REGION(M6502_TAG, 0)
-ADDRESS_MAP_END
+void c2031_device::c2031_mem(address_map &map)
+{
+ map(0x0000, 0x07ff).mirror(0x6000).ram();
+ map(0x1800, 0x180f).mirror(0x63f0).rw(M6522_0_TAG, FUNC(via6522_device::read), FUNC(via6522_device::write));
+ map(0x1c00, 0x1c0f).mirror(0x63f0).rw(M6522_1_TAG, FUNC(via6522_device::read), FUNC(via6522_device::write));
+ map(0x8000, 0xbfff).mirror(0x4000).rom().region(M6502_TAG, 0);
+}
WRITE_LINE_MEMBER( c2031_device::via0_irq_w )
diff --git a/src/devices/bus/ieee488/c2040.cpp b/src/devices/bus/ieee488/c2040.cpp
index f8b28152f3b..1e4adf7f19e 100644
--- a/src/devices/bus/ieee488/c2040.cpp
+++ b/src/devices/bus/ieee488/c2040.cpp
@@ -168,35 +168,37 @@ const tiny_rom_entry *c4040_device::device_rom_region() const
// ADDRESS_MAP( c2040_main_mem )
//-------------------------------------------------
-ADDRESS_MAP_START(c2040_device::c2040_main_mem)
- ADDRESS_MAP_GLOBAL_MASK(0x7fff)
- AM_RANGE(0x0000, 0x007f) AM_MIRROR(0x0100) AM_DEVICE(M6532_0_TAG, mos6532_new_device, ram_map)
- AM_RANGE(0x0080, 0x00ff) AM_MIRROR(0x0100) AM_DEVICE(M6532_1_TAG, mos6532_new_device, ram_map)
- AM_RANGE(0x0200, 0x021f) AM_MIRROR(0x0d60) AM_DEVICE(M6532_0_TAG, mos6532_new_device, io_map)
- AM_RANGE(0x0280, 0x029f) AM_MIRROR(0x0d60) AM_DEVICE(M6532_1_TAG, mos6532_new_device, io_map)
- AM_RANGE(0x1000, 0x13ff) AM_MIRROR(0x0c00) AM_RAM AM_SHARE("share1")
- AM_RANGE(0x2000, 0x23ff) AM_MIRROR(0x0c00) AM_RAM AM_SHARE("share2")
- AM_RANGE(0x3000, 0x33ff) AM_MIRROR(0x0c00) AM_RAM AM_SHARE("share3")
- AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0x0c00) AM_RAM AM_SHARE("share4")
- AM_RANGE(0x5000, 0x7fff) AM_ROM AM_REGION(M6502_TAG, 0)
-ADDRESS_MAP_END
+void c2040_device::c2040_main_mem(address_map &map)
+{
+ map.global_mask(0x7fff);
+ map(0x0000, 0x007f).mirror(0x0100).m(M6532_0_TAG, FUNC(mos6532_new_device::ram_map));
+ map(0x0080, 0x00ff).mirror(0x0100).m(M6532_1_TAG, FUNC(mos6532_new_device::ram_map));
+ map(0x0200, 0x021f).mirror(0x0d60).m(M6532_0_TAG, FUNC(mos6532_new_device::io_map));
+ map(0x0280, 0x029f).mirror(0x0d60).m(M6532_1_TAG, FUNC(mos6532_new_device::io_map));
+ map(0x1000, 0x13ff).mirror(0x0c00).ram().share("share1");
+ map(0x2000, 0x23ff).mirror(0x0c00).ram().share("share2");
+ map(0x3000, 0x33ff).mirror(0x0c00).ram().share("share3");
+ map(0x4000, 0x43ff).mirror(0x0c00).ram().share("share4");
+ map(0x5000, 0x7fff).rom().region(M6502_TAG, 0);
+}
//-------------------------------------------------
// ADDRESS_MAP( c2040_fdc_mem )
//-------------------------------------------------
-ADDRESS_MAP_START(c2040_device::c2040_fdc_mem)
- ADDRESS_MAP_GLOBAL_MASK(0x1fff)
- AM_RANGE(0x0000, 0x003f) AM_MIRROR(0x0300) AM_DEVICE(M6530_TAG, mos6530_new_device, ram_map)
- AM_RANGE(0x0040, 0x004f) AM_MIRROR(0x0330) AM_DEVICE(M6522_TAG, via6522_device, map)
- AM_RANGE(0x0080, 0x008f) AM_MIRROR(0x0330) AM_DEVICE(M6530_TAG, mos6530_new_device, io_map)
- AM_RANGE(0x0400, 0x07ff) AM_RAM AM_SHARE("share1")
- AM_RANGE(0x0800, 0x0bff) AM_RAM AM_SHARE("share2")
- AM_RANGE(0x0c00, 0x0fff) AM_RAM AM_SHARE("share3")
- AM_RANGE(0x1000, 0x13ff) AM_RAM AM_SHARE("share4")
- AM_RANGE(0x1c00, 0x1fff) AM_ROM AM_REGION(M6504_TAG, 0)
-ADDRESS_MAP_END
+void c2040_device::c2040_fdc_mem(address_map &map)
+{
+ map.global_mask(0x1fff);
+ map(0x0000, 0x003f).mirror(0x0300).m(M6530_TAG, FUNC(mos6530_new_device::ram_map));
+ map(0x0040, 0x004f).mirror(0x0330).m(M6522_TAG, FUNC(via6522_device::map));
+ map(0x0080, 0x008f).mirror(0x0330).m(M6530_TAG, FUNC(mos6530_new_device::io_map));
+ map(0x0400, 0x07ff).ram().share("share1");
+ map(0x0800, 0x0bff).ram().share("share2");
+ map(0x0c00, 0x0fff).ram().share("share3");
+ map(0x1000, 0x13ff).ram().share("share4");
+ map(0x1c00, 0x1fff).rom().region(M6504_TAG, 0);
+}
//-------------------------------------------------
diff --git a/src/devices/bus/ieee488/c8050.cpp b/src/devices/bus/ieee488/c8050.cpp
index 92169a77d6e..c1dffe45afb 100644
--- a/src/devices/bus/ieee488/c8050.cpp
+++ b/src/devices/bus/ieee488/c8050.cpp
@@ -184,34 +184,36 @@ const tiny_rom_entry *sfd1001_device::device_rom_region() const
// ADDRESS_MAP( c8050_main_mem )
//-------------------------------------------------
-ADDRESS_MAP_START(c8050_device::c8050_main_mem)
- AM_RANGE(0x0000, 0x007f) AM_MIRROR(0x0100) AM_DEVICE(M6532_0_TAG, mos6532_new_device, ram_map)
- AM_RANGE(0x0080, 0x00ff) AM_MIRROR(0x0100) AM_DEVICE(M6532_1_TAG, mos6532_new_device, ram_map)
- AM_RANGE(0x0200, 0x021f) AM_MIRROR(0x0d60) AM_DEVICE(M6532_0_TAG, mos6532_new_device, io_map)
- AM_RANGE(0x0280, 0x029f) AM_MIRROR(0x0d60) AM_DEVICE(M6532_1_TAG, mos6532_new_device, io_map)
- AM_RANGE(0x1000, 0x13ff) AM_MIRROR(0x0c00) AM_RAM AM_SHARE("share1")
- AM_RANGE(0x2000, 0x23ff) AM_MIRROR(0x0c00) AM_RAM AM_SHARE("share2")
- AM_RANGE(0x3000, 0x33ff) AM_MIRROR(0x0c00) AM_RAM AM_SHARE("share3")
- AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0x0c00) AM_RAM AM_SHARE("share4")
- AM_RANGE(0xc000, 0xffff) AM_ROM AM_REGION(M6502_TAG, 0)
-ADDRESS_MAP_END
+void c8050_device::c8050_main_mem(address_map &map)
+{
+ map(0x0000, 0x007f).mirror(0x0100).m(M6532_0_TAG, FUNC(mos6532_new_device::ram_map));
+ map(0x0080, 0x00ff).mirror(0x0100).m(M6532_1_TAG, FUNC(mos6532_new_device::ram_map));
+ map(0x0200, 0x021f).mirror(0x0d60).m(M6532_0_TAG, FUNC(mos6532_new_device::io_map));
+ map(0x0280, 0x029f).mirror(0x0d60).m(M6532_1_TAG, FUNC(mos6532_new_device::io_map));
+ map(0x1000, 0x13ff).mirror(0x0c00).ram().share("share1");
+ map(0x2000, 0x23ff).mirror(0x0c00).ram().share("share2");
+ map(0x3000, 0x33ff).mirror(0x0c00).ram().share("share3");
+ map(0x4000, 0x43ff).mirror(0x0c00).ram().share("share4");
+ map(0xc000, 0xffff).rom().region(M6502_TAG, 0);
+}
//-------------------------------------------------
// ADDRESS_MAP( c8050_fdc_mem )
//-------------------------------------------------
-ADDRESS_MAP_START(c8050_device::c8050_fdc_mem)
- ADDRESS_MAP_GLOBAL_MASK(0x1fff)
- AM_RANGE(0x0000, 0x003f) AM_MIRROR(0x0300) AM_DEVICE(M6530_TAG, mos6530_new_device, ram_map)
- AM_RANGE(0x0040, 0x004f) AM_MIRROR(0x0330) AM_DEVICE(M6522_TAG, via6522_device, map)
- AM_RANGE(0x0080, 0x008f) AM_MIRROR(0x0330) AM_DEVICE(M6530_TAG, mos6530_new_device, io_map)
- AM_RANGE(0x0400, 0x07ff) AM_RAM AM_SHARE("share1")
- AM_RANGE(0x0800, 0x0bff) AM_RAM AM_SHARE("share2")
- AM_RANGE(0x0c00, 0x0fff) AM_RAM AM_SHARE("share3")
- AM_RANGE(0x1000, 0x13ff) AM_RAM AM_SHARE("share4")
- AM_RANGE(0x1c00, 0x1fff) AM_DEVICE(M6530_TAG, mos6530_new_device, rom_map)
-ADDRESS_MAP_END
+void c8050_device::c8050_fdc_mem(address_map &map)
+{
+ map.global_mask(0x1fff);
+ map(0x0000, 0x003f).mirror(0x0300).m(M6530_TAG, FUNC(mos6530_new_device::ram_map));
+ map(0x0040, 0x004f).mirror(0x0330).m(M6522_TAG, FUNC(via6522_device::map));
+ map(0x0080, 0x008f).mirror(0x0330).m(M6530_TAG, FUNC(mos6530_new_device::io_map));
+ map(0x0400, 0x07ff).ram().share("share1");
+ map(0x0800, 0x0bff).ram().share("share2");
+ map(0x0c00, 0x0fff).ram().share("share3");
+ map(0x1000, 0x13ff).ram().share("share4");
+ map(0x1c00, 0x1fff).m(M6530_TAG, FUNC(mos6530_new_device::rom_map));
+}
//-------------------------------------------------
diff --git a/src/devices/bus/ieee488/c8280.cpp b/src/devices/bus/ieee488/c8280.cpp
index 19667112ce8..4339075a24c 100644
--- a/src/devices/bus/ieee488/c8280.cpp
+++ b/src/devices/bus/ieee488/c8280.cpp
@@ -73,34 +73,36 @@ const tiny_rom_entry *c8280_device::device_rom_region() const
// ADDRESS_MAP( c8280_main_mem )
//-------------------------------------------------
-ADDRESS_MAP_START(c8280_device::c8280_main_mem)
- AM_RANGE(0x0000, 0x007f) AM_MIRROR(0x100) AM_DEVICE(M6532_0_TAG, mos6532_new_device, ram_map)
- AM_RANGE(0x0080, 0x00ff) AM_MIRROR(0x100) AM_DEVICE(M6532_1_TAG, mos6532_new_device, ram_map)
- AM_RANGE(0x0200, 0x021f) AM_MIRROR(0xd60) AM_DEVICE(M6532_0_TAG, mos6532_new_device, io_map)
- AM_RANGE(0x0280, 0x029f) AM_MIRROR(0xd60) AM_DEVICE(M6532_1_TAG, mos6532_new_device, io_map)
- AM_RANGE(0x1000, 0x13ff) AM_MIRROR(0xc00) AM_RAM AM_SHARE("share1")
- AM_RANGE(0x2000, 0x23ff) AM_MIRROR(0xc00) AM_RAM AM_SHARE("share2")
- AM_RANGE(0x3000, 0x33ff) AM_MIRROR(0xc00) AM_RAM AM_SHARE("share3")
- AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0xc00) AM_RAM AM_SHARE("share4")
- AM_RANGE(0xc000, 0xffff) AM_ROM AM_REGION(M6502_DOS_TAG, 0)
-ADDRESS_MAP_END
+void c8280_device::c8280_main_mem(address_map &map)
+{
+ map(0x0000, 0x007f).mirror(0x100).m(M6532_0_TAG, FUNC(mos6532_new_device::ram_map));
+ map(0x0080, 0x00ff).mirror(0x100).m(M6532_1_TAG, FUNC(mos6532_new_device::ram_map));
+ map(0x0200, 0x021f).mirror(0xd60).m(M6532_0_TAG, FUNC(mos6532_new_device::io_map));
+ map(0x0280, 0x029f).mirror(0xd60).m(M6532_1_TAG, FUNC(mos6532_new_device::io_map));
+ map(0x1000, 0x13ff).mirror(0xc00).ram().share("share1");
+ map(0x2000, 0x23ff).mirror(0xc00).ram().share("share2");
+ map(0x3000, 0x33ff).mirror(0xc00).ram().share("share3");
+ map(0x4000, 0x43ff).mirror(0xc00).ram().share("share4");
+ map(0xc000, 0xffff).rom().region(M6502_DOS_TAG, 0);
+}
//-------------------------------------------------
// ADDRESS_MAP( c8280_fdc_mem )
//-------------------------------------------------
-ADDRESS_MAP_START(c8280_device::c8280_fdc_mem)
- ADDRESS_MAP_GLOBAL_MASK(0x1fff)
- AM_RANGE(0x0000, 0x007f) AM_MIRROR(0x300) AM_RAM
- AM_RANGE(0x0080, 0x0083) AM_MIRROR(0x37c) AM_DEVREADWRITE(WD1797_TAG, fd1797_device, read, write)
- AM_RANGE(0x0400, 0x07ff) AM_RAM AM_SHARE("share1")
- AM_RANGE(0x0800, 0x0bff) AM_RAM AM_SHARE("share2")
- AM_RANGE(0x0c00, 0x0fff) AM_RAM AM_SHARE("share3")
- AM_RANGE(0x1000, 0x13ff) AM_RAM AM_SHARE("share4")
- AM_RANGE(0x1400, 0x1400) AM_MIRROR(0x3ff) AM_READWRITE(fk5_r, fk5_w)
- AM_RANGE(0x1800, 0x1fff) AM_ROM AM_REGION(M6502_FDC_TAG, 0)
-ADDRESS_MAP_END
+void c8280_device::c8280_fdc_mem(address_map &map)
+{
+ map.global_mask(0x1fff);
+ map(0x0000, 0x007f).mirror(0x300).ram();
+ map(0x0080, 0x0083).mirror(0x37c).rw(WD1797_TAG, FUNC(fd1797_device::read), FUNC(fd1797_device::write));
+ map(0x0400, 0x07ff).ram().share("share1");
+ map(0x0800, 0x0bff).ram().share("share2");
+ map(0x0c00, 0x0fff).ram().share("share3");
+ map(0x1000, 0x13ff).ram().share("share4");
+ map(0x1400, 0x1400).mirror(0x3ff).rw(this, FUNC(c8280_device::fk5_r), FUNC(c8280_device::fk5_w));
+ map(0x1800, 0x1fff).rom().region(M6502_FDC_TAG, 0);
+}
//-------------------------------------------------
diff --git a/src/devices/bus/ieee488/d9060.cpp b/src/devices/bus/ieee488/d9060.cpp
index 945b23d112d..8505b8b7da8 100644
--- a/src/devices/bus/ieee488/d9060.cpp
+++ b/src/devices/bus/ieee488/d9060.cpp
@@ -109,33 +109,35 @@ const tiny_rom_entry *d9060_device_base::device_rom_region() const
// ADDRESS_MAP( d9060_main_mem )
//-------------------------------------------------
-ADDRESS_MAP_START(d9060_device_base::d9060_main_mem)
- AM_RANGE(0x0000, 0x007f) AM_MIRROR(0x0100) AM_DEVICE(M6532_0_TAG, mos6532_new_device, ram_map)
- AM_RANGE(0x0080, 0x00ff) AM_MIRROR(0x0100) AM_DEVICE(M6532_1_TAG, mos6532_new_device, ram_map)
- AM_RANGE(0x0200, 0x021f) AM_MIRROR(0x0d60) AM_DEVICE(M6532_0_TAG, mos6532_new_device, io_map)
- AM_RANGE(0x0280, 0x029f) AM_MIRROR(0x0d60) AM_DEVICE(M6532_1_TAG, mos6532_new_device, io_map)
- AM_RANGE(0x1000, 0x13ff) AM_MIRROR(0x0c00) AM_RAM AM_SHARE("share1")
- AM_RANGE(0x2000, 0x23ff) AM_MIRROR(0x0c00) AM_RAM AM_SHARE("share2")
- AM_RANGE(0x3000, 0x33ff) AM_MIRROR(0x0c00) AM_RAM AM_SHARE("share3")
- AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0x0c00) AM_RAM AM_SHARE("share4")
- AM_RANGE(0xc000, 0xffff) AM_ROM AM_REGION(M6502_DOS_TAG, 0)
-ADDRESS_MAP_END
+void d9060_device_base::d9060_main_mem(address_map &map)
+{
+ map(0x0000, 0x007f).mirror(0x0100).m(M6532_0_TAG, FUNC(mos6532_new_device::ram_map));
+ map(0x0080, 0x00ff).mirror(0x0100).m(M6532_1_TAG, FUNC(mos6532_new_device::ram_map));
+ map(0x0200, 0x021f).mirror(0x0d60).m(M6532_0_TAG, FUNC(mos6532_new_device::io_map));
+ map(0x0280, 0x029f).mirror(0x0d60).m(M6532_1_TAG, FUNC(mos6532_new_device::io_map));
+ map(0x1000, 0x13ff).mirror(0x0c00).ram().share("share1");
+ map(0x2000, 0x23ff).mirror(0x0c00).ram().share("share2");
+ map(0x3000, 0x33ff).mirror(0x0c00).ram().share("share3");
+ map(0x4000, 0x43ff).mirror(0x0c00).ram().share("share4");
+ map(0xc000, 0xffff).rom().region(M6502_DOS_TAG, 0);
+}
//-------------------------------------------------
// ADDRESS_MAP( d9060_hdc_mem )
//-------------------------------------------------
-ADDRESS_MAP_START(d9060_device_base::d9060_hdc_mem)
- ADDRESS_MAP_GLOBAL_MASK(0x1fff)
- AM_RANGE(0x0000, 0x007f) AM_MIRROR(0x300) AM_RAM
- AM_RANGE(0x0080, 0x008f) AM_MIRROR(0x370) AM_DEVREADWRITE(M6522_TAG, via6522_device, read, write)
- AM_RANGE(0x0400, 0x07ff) AM_RAM AM_SHARE("share1")
- AM_RANGE(0x0800, 0x0bff) AM_RAM AM_SHARE("share2")
- AM_RANGE(0x0c00, 0x0fff) AM_RAM AM_SHARE("share3")
- AM_RANGE(0x1000, 0x13ff) AM_RAM AM_SHARE("share4")
- AM_RANGE(0x1800, 0x1fff) AM_ROM AM_REGION(M6502_HDC_TAG, 0)
-ADDRESS_MAP_END
+void d9060_device_base::d9060_hdc_mem(address_map &map)
+{
+ map.global_mask(0x1fff);
+ map(0x0000, 0x007f).mirror(0x300).ram();
+ map(0x0080, 0x008f).mirror(0x370).rw(M6522_TAG, FUNC(via6522_device::read), FUNC(via6522_device::write));
+ map(0x0400, 0x07ff).ram().share("share1");
+ map(0x0800, 0x0bff).ram().share("share2");
+ map(0x0c00, 0x0fff).ram().share("share3");
+ map(0x1000, 0x13ff).ram().share("share4");
+ map(0x1800, 0x1fff).rom().region(M6502_HDC_TAG, 0);
+}
//-------------------------------------------------
diff --git a/src/devices/bus/ieee488/hardbox.cpp b/src/devices/bus/ieee488/hardbox.cpp
index af14b14a8b8..a5da9825cc9 100644
--- a/src/devices/bus/ieee488/hardbox.cpp
+++ b/src/devices/bus/ieee488/hardbox.cpp
@@ -105,22 +105,24 @@ const tiny_rom_entry *hardbox_device::device_rom_region() const
// ADDRESS_MAP( hardbox_mem )
//-------------------------------------------------
-ADDRESS_MAP_START(hardbox_device::hardbox_mem)
- AM_RANGE(0x0000, 0x3fff) AM_RAM
- AM_RANGE(0xe000, 0xffff) AM_ROM AM_REGION(Z80_TAG, 0)
-ADDRESS_MAP_END
+void hardbox_device::hardbox_mem(address_map &map)
+{
+ map(0x0000, 0x3fff).ram();
+ map(0xe000, 0xffff).rom().region(Z80_TAG, 0);
+}
//-------------------------------------------------
// ADDRESS_MAP( hardbox_io )
//-------------------------------------------------
-ADDRESS_MAP_START(hardbox_device::hardbox_io)
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x10, 0x13) AM_DEVREADWRITE(I8255_0_TAG, i8255_device, read, write)
- AM_RANGE(0x14, 0x17) AM_DEVREADWRITE(I8255_1_TAG, i8255_device, read, write)
- AM_RANGE(0x18, 0x18) AM_DEVREADWRITE(CORVUS_HDC_TAG, corvus_hdc_device, read, write)
-ADDRESS_MAP_END
+void hardbox_device::hardbox_io(address_map &map)
+{
+ map.global_mask(0xff);
+ map(0x10, 0x13).rw(I8255_0_TAG, FUNC(i8255_device::read), FUNC(i8255_device::write));
+ map(0x14, 0x17).rw(I8255_1_TAG, FUNC(i8255_device::read), FUNC(i8255_device::write));
+ map(0x18, 0x18).rw(CORVUS_HDC_TAG, FUNC(corvus_hdc_device::read), FUNC(corvus_hdc_device::write));
+}
//-------------------------------------------------
diff --git a/src/devices/bus/ieee488/hp9895.cpp b/src/devices/bus/ieee488/hp9895.cpp
index d6d77493d49..c35f820d6fd 100644
--- a/src/devices/bus/ieee488/hp9895.cpp
+++ b/src/devices/bus/ieee488/hp9895.cpp
@@ -847,25 +847,27 @@ ROM_START(hp9895)
ROM_LOAD("1818-1391a.bin" , 0 , 0x2000 , CRC(b50dbfb5) SHA1(96edf9af78be75fbad2a0245b8af43958ba32752))
ROM_END
-ADDRESS_MAP_START(hp9895_device::z80_program_map)
- ADDRESS_MAP_UNMAP_HIGH
- AM_RANGE(0x0000 , 0x1fff) AM_ROM AM_REGION("cpu" , 0)
- AM_RANGE(0x6000 , 0x63ff) AM_RAM
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(hp9895_device::z80_io_map)
- ADDRESS_MAP_UNMAP_HIGH
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x10 , 0x17) AM_DEVWRITE("phi" , phi_device , reg8_w) AM_READ(phi_reg_r)
- AM_RANGE(0x60 , 0x60) AM_READWRITE(data_r , data_w)
- AM_RANGE(0x61 , 0x61) AM_READWRITE(clock_r , clock_w)
- AM_RANGE(0x62 , 0x62) AM_READWRITE(drivstat_r , reset_w)
- AM_RANGE(0x63 , 0x63) AM_READWRITE(switches_r , leds_w)
- AM_RANGE(0x64 , 0x64) AM_WRITE(cntl_w)
- AM_RANGE(0x65 , 0x65) AM_WRITE(drv_w)
- AM_RANGE(0x66 , 0x66) AM_WRITE(xv_w)
- AM_RANGE(0x67 , 0x67) AM_READ(switches2_r)
-ADDRESS_MAP_END
+void hp9895_device::z80_program_map(address_map &map)
+{
+ map.unmap_value_high();
+ map(0x0000, 0x1fff).rom().region("cpu", 0);
+ map(0x6000, 0x63ff).ram();
+}
+
+void hp9895_device::z80_io_map(address_map &map)
+{
+ map.unmap_value_high();
+ map.global_mask(0xff);
+ map(0x10, 0x17).w("phi", FUNC(phi_device::reg8_w)).r(this, FUNC(hp9895_device::phi_reg_r));
+ map(0x60, 0x60).rw(this, FUNC(hp9895_device::data_r), FUNC(hp9895_device::data_w));
+ map(0x61, 0x61).rw(this, FUNC(hp9895_device::clock_r), FUNC(hp9895_device::clock_w));
+ map(0x62, 0x62).rw(this, FUNC(hp9895_device::drivstat_r), FUNC(hp9895_device::reset_w));
+ map(0x63, 0x63).rw(this, FUNC(hp9895_device::switches_r), FUNC(hp9895_device::leds_w));
+ map(0x64, 0x64).w(this, FUNC(hp9895_device::cntl_w));
+ map(0x65, 0x65).w(this, FUNC(hp9895_device::drv_w));
+ map(0x66, 0x66).w(this, FUNC(hp9895_device::xv_w));
+ map(0x67, 0x67).r(this, FUNC(hp9895_device::switches2_r));
+}
static SLOT_INTERFACE_START(hp9895_floppies)
SLOT_INTERFACE("8dsdd" , FLOPPY_8_DSDD)
diff --git a/src/devices/bus/ieee488/shark.cpp b/src/devices/bus/ieee488/shark.cpp
index c6494d5374d..47e3c54134d 100644
--- a/src/devices/bus/ieee488/shark.cpp
+++ b/src/devices/bus/ieee488/shark.cpp
@@ -61,17 +61,19 @@ const tiny_rom_entry *mshark_device::device_rom_region() const
// ADDRESS_MAP( mshark_mem )
//-------------------------------------------------
-ADDRESS_MAP_START(mshark_device::mshark_mem)
- AM_RANGE(0x0000, 0x4fff) AM_ROM AM_REGION(I8085_TAG, 0)
-ADDRESS_MAP_END
+void mshark_device::mshark_mem(address_map &map)
+{
+ map(0x0000, 0x4fff).rom().region(I8085_TAG, 0);
+}
//-------------------------------------------------
// ADDRESS_MAP( mshark_io )
//-------------------------------------------------
-ADDRESS_MAP_START(mshark_device::mshark_io)
-ADDRESS_MAP_END
+void mshark_device::mshark_io(address_map &map)
+{
+}
//-------------------------------------------------
diff --git a/src/devices/bus/ieee488/softbox.cpp b/src/devices/bus/ieee488/softbox.cpp
index 19d1fb7721d..eb002f372d8 100644
--- a/src/devices/bus/ieee488/softbox.cpp
+++ b/src/devices/bus/ieee488/softbox.cpp
@@ -72,25 +72,27 @@ const tiny_rom_entry *softbox_device::device_rom_region() const
// ADDRESS_MAP( softbox_mem )
//-------------------------------------------------
-ADDRESS_MAP_START(softbox_device::softbox_mem)
- AM_RANGE(0x0000, 0xefff) AM_RAM
- AM_RANGE(0xf000, 0xffff) AM_ROM AM_REGION(Z80_TAG, 0)
-ADDRESS_MAP_END
+void softbox_device::softbox_mem(address_map &map)
+{
+ map(0x0000, 0xefff).ram();
+ map(0xf000, 0xffff).rom().region(Z80_TAG, 0);
+}
//-------------------------------------------------
// ADDRESS_MAP( softbox_io )
//-------------------------------------------------
-ADDRESS_MAP_START(softbox_device::softbox_io)
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x08, 0x08) AM_DEVREADWRITE(I8251_TAG, i8251_device, data_r, data_w)
- AM_RANGE(0x09, 0x09) AM_DEVREADWRITE(I8251_TAG, i8251_device, status_r, control_w)
- AM_RANGE(0x0c, 0x0c) AM_WRITE(dbrg_w)
- AM_RANGE(0x10, 0x13) AM_DEVREADWRITE(I8255_0_TAG, i8255_device, read, write)
- AM_RANGE(0x14, 0x17) AM_DEVREADWRITE(I8255_1_TAG, i8255_device, read, write)
- AM_RANGE(0x18, 0x18) AM_DEVREADWRITE(CORVUS_HDC_TAG, corvus_hdc_device, read, write)
-ADDRESS_MAP_END
+void softbox_device::softbox_io(address_map &map)
+{
+ map.global_mask(0xff);
+ map(0x08, 0x08).rw(I8251_TAG, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
+ map(0x09, 0x09).rw(I8251_TAG, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0x0c, 0x0c).w(this, FUNC(softbox_device::dbrg_w));
+ map(0x10, 0x13).rw(I8255_0_TAG, FUNC(i8255_device::read), FUNC(i8255_device::write));
+ map(0x14, 0x17).rw(I8255_1_TAG, FUNC(i8255_device::read), FUNC(i8255_device::write));
+ map(0x18, 0x18).rw(CORVUS_HDC_TAG, FUNC(corvus_hdc_device::read), FUNC(corvus_hdc_device::write));
+}
diff --git a/src/devices/bus/imi7000/imi5000h.cpp b/src/devices/bus/imi7000/imi5000h.cpp
index a86321e64b7..245c04191c5 100644
--- a/src/devices/bus/imi7000/imi5000h.cpp
+++ b/src/devices/bus/imi7000/imi5000h.cpp
@@ -62,31 +62,33 @@ const tiny_rom_entry *imi5000h_device::device_rom_region() const
// ADDRESS_MAP( imi5000h_mem )
//-------------------------------------------------
-ADDRESS_MAP_START(imi5000h_device::imi5000h_mem)
- ADDRESS_MAP_UNMAP_HIGH
- AM_RANGE(0x0000, 0x0fff) AM_MIRROR(0x1000) AM_ROM AM_REGION(Z80_TAG, 0)
- AM_RANGE(0x4000, 0x47ff) AM_MIRROR(0x1800) AM_RAM
- AM_RANGE(0x6000, 0x63ff) AM_MIRROR(0x1c00) AM_RAM
- AM_RANGE(0x8000, 0x83ff) AM_MIRROR(0x1c00) AM_RAM
- AM_RANGE(0xa000, 0xa3ff) AM_MIRROR(0x1c00) AM_RAM
-ADDRESS_MAP_END
+void imi5000h_device::imi5000h_mem(address_map &map)
+{
+ map.unmap_value_high();
+ map(0x0000, 0x0fff).mirror(0x1000).rom().region(Z80_TAG, 0);
+ map(0x4000, 0x47ff).mirror(0x1800).ram();
+ map(0x6000, 0x63ff).mirror(0x1c00).ram();
+ map(0x8000, 0x83ff).mirror(0x1c00).ram();
+ map(0xa000, 0xa3ff).mirror(0x1c00).ram();
+}
//-------------------------------------------------
// ADDRESS_MAP( imi5000h_io )
//-------------------------------------------------
-ADDRESS_MAP_START(imi5000h_device::imi5000h_io)
- ADDRESS_MAP_UNMAP_HIGH
- ADDRESS_MAP_GLOBAL_MASK(0x9f)
- AM_RANGE(0x00, 0x03) AM_DEVREADWRITE(Z80PIO_0_TAG, z80pio_device, read, write)
- AM_RANGE(0x08, 0x0b) AM_DEVREADWRITE(Z80PIO_2_TAG, z80pio_device, read, write)
- AM_RANGE(0x0c, 0x0f) AM_DEVREADWRITE(Z80PIO_3_TAG, z80pio_device, read, write)
- AM_RANGE(0x10, 0x10) AM_MIRROR(0x03) // BEGRDY
- AM_RANGE(0x14, 0x14) AM_MIRROR(0x03) // HSXCLR
- AM_RANGE(0x18, 0x18) AM_MIRROR(0x03) // XFERSTB
- AM_RANGE(0x1c, 0x1f) AM_DEVREADWRITE(Z80CTC_TAG, z80ctc_device, read, write)
-ADDRESS_MAP_END
+void imi5000h_device::imi5000h_io(address_map &map)
+{
+ map.unmap_value_high();
+ map.global_mask(0x9f);
+ map(0x00, 0x03).rw(Z80PIO_0_TAG, FUNC(z80pio_device::read), FUNC(z80pio_device::write));
+ map(0x08, 0x0b).rw(Z80PIO_2_TAG, FUNC(z80pio_device::read), FUNC(z80pio_device::write));
+ map(0x0c, 0x0f).rw(Z80PIO_3_TAG, FUNC(z80pio_device::read), FUNC(z80pio_device::write));
+ map(0x10, 0x10).mirror(0x03); // BEGRDY
+ map(0x14, 0x14).mirror(0x03); // HSXCLR
+ map(0x18, 0x18).mirror(0x03); // XFERSTB
+ map(0x1c, 0x1f).rw(Z80CTC_TAG, FUNC(z80ctc_device::read), FUNC(z80ctc_device::write));
+}
//-------------------------------------------------
diff --git a/src/devices/bus/isa/aha1542.cpp b/src/devices/bus/isa/aha1542.cpp
index f3a2e781c44..75eae0de6e9 100644
--- a/src/devices/bus/isa/aha1542.cpp
+++ b/src/devices/bus/isa/aha1542.cpp
@@ -161,13 +161,14 @@ ROM_START( aha1542 )
ROM_LOAD( "553801-00.u15", 0x0000, 0x8000, CRC(7824397e) SHA1(35bc2c8fab31aad3190a478f2dc8f3a72958cf04) ) /* ADAPTEC, INC MCODE */
ROM_END
-ADDRESS_MAP_START(aha1542_device::z84c0010_mem)
- AM_RANGE(0x0000, 0x7fff) AM_ROM AM_REGION(Z84C0010_TAG, 0)
- AM_RANGE(0x8000, 0x800f) AM_NOP // something is mapped there
- AM_RANGE(0x9000, 0xafff) AM_RAM // 2kb RAM chip
- AM_RANGE(0xe000, 0xe0ff) AM_RAM // probably PC<->Z80 communication area
- AM_RANGE(0xb000, 0xb000) AM_NOP // something?
-ADDRESS_MAP_END
+void aha1542_device::z84c0010_mem(address_map &map)
+{
+ map(0x0000, 0x7fff).rom().region(Z84C0010_TAG, 0);
+ map(0x8000, 0x800f).noprw(); // something is mapped there
+ map(0x9000, 0xafff).ram(); // 2kb RAM chip
+ map(0xe000, 0xe0ff).ram(); // probably PC<->Z80 communication area
+ map(0xb000, 0xb000).noprw(); // something?
+}
const tiny_rom_entry *aha1542_device::device_rom_region() const
{
diff --git a/src/devices/bus/isa/dectalk.cpp b/src/devices/bus/isa/dectalk.cpp
index 709cd6d0b87..0ca61665e33 100644
--- a/src/devices/bus/isa/dectalk.cpp
+++ b/src/devices/bus/isa/dectalk.cpp
@@ -116,29 +116,33 @@ WRITE_LINE_MEMBER(dectalk_isa_device::clock_w)
m_dsp->set_input_line(INPUT_LINE_IRQ0, (!(m_ctl & 0x20) || state) ? CLEAR_LINE : ASSERT_LINE);
}
-ADDRESS_MAP_START(dectalk_isa_device::dectalk_cpu_io)
- AM_RANGE(0x0400, 0x0401) AM_READWRITE(cmd_r, status_w) //PCS0
- AM_RANGE(0x0480, 0x0481) AM_READWRITE(data_r, data_w) //PCS1
- AM_RANGE(0x0500, 0x0501) AM_WRITE(dsp_dma_w) //PCS2
- AM_RANGE(0x0580, 0x0581) AM_READ(host_irq_r) //PCS3
- AM_RANGE(0x0600, 0x0601) AM_WRITE(output_ctl_w) //PCS4
- AM_RANGE(0x0680, 0x0681) AM_READWRITE8(dma_r, dma_w, 0xff) //PCS5
- AM_RANGE(0x0700, 0x0701) AM_WRITE(irq_line_w) //PCS6
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(dectalk_isa_device::dectalk_cpu_map)
- AM_RANGE(0x00000, 0xFBFFF) AM_RAM
- AM_RANGE(0xFC000, 0xFFFFF) AM_ROM AM_REGION("dectalk_cpu", 0)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(dectalk_isa_device::dectalk_dsp_io)
- AM_RANGE(0x0, 0x0) AM_READ(dsp_dma_r)
- AM_RANGE(0x1, 0x1) AM_READWRITE(dsp_dma_r, dac_w)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(dectalk_isa_device::dectalk_dsp_map)
- AM_RANGE(0x0000, 0x0FFF) AM_ROM AM_REGION("dectalk_dsp", 0)
-ADDRESS_MAP_END
+void dectalk_isa_device::dectalk_cpu_io(address_map &map)
+{
+ map(0x0400, 0x0401).rw(this, FUNC(dectalk_isa_device::cmd_r), FUNC(dectalk_isa_device::status_w)); //PCS0
+ map(0x0480, 0x0481).rw(this, FUNC(dectalk_isa_device::data_r), FUNC(dectalk_isa_device::data_w)); //PCS1
+ map(0x0500, 0x0501).w(this, FUNC(dectalk_isa_device::dsp_dma_w)); //PCS2
+ map(0x0580, 0x0581).r(this, FUNC(dectalk_isa_device::host_irq_r)); //PCS3
+ map(0x0600, 0x0601).w(this, FUNC(dectalk_isa_device::output_ctl_w)); //PCS4
+ map(0x0680, 0x0680).rw(this, FUNC(dectalk_isa_device::dma_r), FUNC(dectalk_isa_device::dma_w)); //PCS5
+ map(0x0700, 0x0701).w(this, FUNC(dectalk_isa_device::irq_line_w)); //PCS6
+}
+
+void dectalk_isa_device::dectalk_cpu_map(address_map &map)
+{
+ map(0x00000, 0xFBFFF).ram();
+ map(0xFC000, 0xFFFFF).rom().region("dectalk_cpu", 0);
+}
+
+void dectalk_isa_device::dectalk_dsp_io(address_map &map)
+{
+ map(0x0, 0x0).r(this, FUNC(dectalk_isa_device::dsp_dma_r));
+ map(0x1, 0x1).rw(this, FUNC(dectalk_isa_device::dsp_dma_r), FUNC(dectalk_isa_device::dac_w));
+}
+
+void dectalk_isa_device::dectalk_dsp_map(address_map &map)
+{
+ map(0x0000, 0x0FFF).rom().region("dectalk_dsp", 0);
+}
ROM_START( dectalk_isa )
ROM_REGION( 0x4000, "dectalk_cpu", 0 )
diff --git a/src/devices/bus/isa/finalchs.cpp b/src/devices/bus/isa/finalchs.cpp
index ad708041885..f221a17c35c 100644
--- a/src/devices/bus/isa/finalchs.cpp
+++ b/src/devices/bus/isa/finalchs.cpp
@@ -37,14 +37,15 @@ WRITE8_MEMBER( isa8_finalchs_device::io6000_write )
m_FCH_latch_data = data;
}
-ADDRESS_MAP_START(isa8_finalchs_device::finalchs_mem)
- AM_RANGE( 0x0000, 0x1fff ) AM_RAM
- AM_RANGE( 0x7ff8, 0x7ff8 ) AM_READ(io7ff8_read)
- AM_RANGE( 0x7ff8, 0x7ff8 ) AM_WRITE(io7ff8_write)
- AM_RANGE( 0x6000, 0x6000 ) AM_READ(io6000_read)
- AM_RANGE( 0x6000, 0x6000 ) AM_WRITE(io6000_write)
- AM_RANGE( 0x8000, 0xffff ) AM_ROM
-ADDRESS_MAP_END
+void isa8_finalchs_device::finalchs_mem(address_map &map)
+{
+ map(0x0000, 0x1fff).ram();
+ map(0x7ff8, 0x7ff8).r(this, FUNC(isa8_finalchs_device::io7ff8_read));
+ map(0x7ff8, 0x7ff8).w(this, FUNC(isa8_finalchs_device::io7ff8_write));
+ map(0x6000, 0x6000).r(this, FUNC(isa8_finalchs_device::io6000_read));
+ map(0x6000, 0x6000).w(this, FUNC(isa8_finalchs_device::io6000_write));
+ map(0x8000, 0xffff).rom();
+}
ROM_START(finalchs)
ROM_REGION(0x10000,"maincpu",0)
diff --git a/src/devices/bus/isa/ibm_mfc.cpp b/src/devices/bus/isa/ibm_mfc.cpp
index fbd3fa949f4..cd1bce5ab5c 100644
--- a/src/devices/bus/isa/ibm_mfc.cpp
+++ b/src/devices/bus/isa/ibm_mfc.cpp
@@ -113,22 +113,24 @@ void isa8_ibm_mfc_device::update_z80_interrupts(void)
// Z80 memory map
//-------------------------------------------------
-ADDRESS_MAP_START(isa8_ibm_mfc_device::prg_map)
- AM_RANGE(0x0000, 0x7fff) AM_ROM
- AM_RANGE(0x8000, 0x8000) AM_RAM // Unknown - tested on startup
- AM_RANGE(0xbfff, 0xbfff) AM_RAM // Unknown - tested on startup
- AM_RANGE(0xc000, 0xdfff) AM_RAM
- AM_RANGE(0xe000, 0xffff) AM_RAM
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(isa8_ibm_mfc_device::io_map)
- ADDRESS_MAP_UNMAP_HIGH
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x01) AM_DEVREADWRITE("ym2151", ym2151_device, read, write)
- AM_RANGE(0x10, 0x10) AM_DEVREADWRITE("d71051", i8251_device, data_r, data_w)
- AM_RANGE(0x11, 0x11) AM_DEVREADWRITE("d71051", i8251_device, status_r, control_w)
- AM_RANGE(0x20, 0x23) AM_DEVREADWRITE("d71055c_1", i8255_device, read, write)
-ADDRESS_MAP_END
+void isa8_ibm_mfc_device::prg_map(address_map &map)
+{
+ map(0x0000, 0x7fff).rom();
+ map(0x8000, 0x8000).ram(); // Unknown - tested on startup
+ map(0xbfff, 0xbfff).ram(); // Unknown - tested on startup
+ map(0xc000, 0xdfff).ram();
+ map(0xe000, 0xffff).ram();
+}
+
+void isa8_ibm_mfc_device::io_map(address_map &map)
+{
+ map.unmap_value_high();
+ map.global_mask(0xff);
+ map(0x00, 0x01).rw("ym2151", FUNC(ym2151_device::read), FUNC(ym2151_device::write));
+ map(0x10, 0x10).rw("d71051", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
+ map(0x11, 0x11).rw("d71051", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0x20, 0x23).rw("d71055c_1", FUNC(i8255_device::read), FUNC(i8255_device::write));
+}
//-------------------------------------------------
diff --git a/src/devices/bus/isa/num9rev.cpp b/src/devices/bus/isa/num9rev.cpp
index 01ed3b7b14c..ab0595959ce 100644
--- a/src/devices/bus/isa/num9rev.cpp
+++ b/src/devices/bus/isa/num9rev.cpp
@@ -14,9 +14,10 @@
DEFINE_DEVICE_TYPE(ISA8_NUM_9_REV, isa8_number_9_rev_device, "number_9_rev", "Number Nine Revolution 512x32/1024x8")
-ADDRESS_MAP_START(isa8_number_9_rev_device::upd7220_map)
- AM_RANGE(0x00000, 0x3ffff) AM_NOP
-ADDRESS_MAP_END
+void isa8_number_9_rev_device::upd7220_map(address_map &map)
+{
+ map(0x00000, 0x3ffff).noprw();
+}
UPD7220_DISPLAY_PIXELS_MEMBER( isa8_number_9_rev_device::hgdc_display_pixels )
{
diff --git a/src/devices/bus/isa/pgc.cpp b/src/devices/bus/isa/pgc.cpp
index 4ca3a8b3e34..97d46e98125 100644
--- a/src/devices/bus/isa/pgc.cpp
+++ b/src/devices/bus/isa/pgc.cpp
@@ -105,21 +105,23 @@ read only
3C001 INIT L/INIT H
*/
-ADDRESS_MAP_START(isa8_pgc_device::pgc_map)
- ADDRESS_MAP_UNMAP_HIGH
- AM_RANGE(0x00000, 0x07fff) AM_ROM
- AM_RANGE(0x08000, 0x0ffff) AM_ROM AM_REGION("maincpu", 0x8000)
- AM_RANGE(0x10000, 0x1001f) AM_READWRITE(stateparam_r, stateparam_w)
+void isa8_pgc_device::pgc_map(address_map &map)
+{
+ map.unmap_value_high();
+ map(0x00000, 0x07fff).rom();
+ map(0x08000, 0x0ffff).rom().region("maincpu", 0x8000);
+ map(0x10000, 0x1001f).rw(this, FUNC(isa8_pgc_device::stateparam_r), FUNC(isa8_pgc_device::stateparam_w));
// AM_RANGE(0x18000, 0x18fff) AM_RAM // ??
- AM_RANGE(0x28000, 0x287ff) AM_RAM AM_REGION("commarea", 0) AM_MIRROR(0x800)
- AM_RANGE(0x3c000, 0x3c001) AM_READ(init_r)
+ map(0x28000, 0x287ff).ram().region("commarea", 0).mirror(0x800);
+ map(0x3c000, 0x3c001).r(this, FUNC(isa8_pgc_device::init_r));
// AM_RANGE(0x3e000, 0x3efff) AM_RAM // ??
- AM_RANGE(0xf8000, 0xfffff) AM_ROM AM_REGION("maincpu", 0x8000)
-ADDRESS_MAP_END
+ map(0xf8000, 0xfffff).rom().region("maincpu", 0x8000);
+}
-ADDRESS_MAP_START(isa8_pgc_device::pgc_io)
- ADDRESS_MAP_UNMAP_HIGH
-ADDRESS_MAP_END
+void isa8_pgc_device::pgc_io(address_map &map)
+{
+ map.unmap_value_high();
+}
static const gfx_layout pgc_charlayout =
{
diff --git a/src/devices/bus/isa/sb16.cpp b/src/devices/bus/isa/sb16.cpp
index a643ebd31cd..d67f801c616 100644
--- a/src/devices/bus/isa/sb16.cpp
+++ b/src/devices/bus/isa/sb16.cpp
@@ -373,35 +373,36 @@ ROM_START( sb16 )
ROM_LOAD("ct1741_v413_xor.bin", 0x00, 0x40, CRC(5243d15a) SHA1(c7637c92828843f47e6e2f956af639b07aee4571))
ROM_END
-ADDRESS_MAP_START(sb16_lle_device::sb16_io)
- AM_RANGE(0x0000, 0x0000) AM_MIRROR(0xff00) AM_READWRITE(dsp_data_r, dsp_data_w)
+void sb16_lle_device::sb16_io(address_map &map)
+{
+ map(0x0000, 0x0000).mirror(0xff00).rw(this, FUNC(sb16_lle_device::dsp_data_r), FUNC(sb16_lle_device::dsp_data_w));
// AM_RANGE(0x0001, 0x0001) // MIDI related?
// AM_RANGE(0x0002, 0x0002)
- AM_RANGE(0x0004, 0x0004) AM_MIRROR(0xff00) AM_READWRITE(mode_r, mode_w)
- AM_RANGE(0x0005, 0x0005) AM_MIRROR(0xff00) AM_READWRITE(dac_ctrl_r, dac_ctrl_w)
- AM_RANGE(0x0006, 0x0006) AM_MIRROR(0xff00) AM_READ(dma_stat_r)
+ map(0x0004, 0x0004).mirror(0xff00).rw(this, FUNC(sb16_lle_device::mode_r), FUNC(sb16_lle_device::mode_w));
+ map(0x0005, 0x0005).mirror(0xff00).rw(this, FUNC(sb16_lle_device::dac_ctrl_r), FUNC(sb16_lle_device::dac_ctrl_w));
+ map(0x0006, 0x0006).mirror(0xff00).r(this, FUNC(sb16_lle_device::dma_stat_r));
// AM_RANGE(0x0007, 0x0007) // unknown
- AM_RANGE(0x0008, 0x0008) AM_MIRROR(0xff00) AM_READWRITE(ctrl8_r, ctrl8_w)
- AM_RANGE(0x0009, 0x0009) AM_MIRROR(0xff00) AM_WRITE(rate_w)
- AM_RANGE(0x000A, 0x000A) AM_MIRROR(0xff00) AM_READ(dma8_cnt_lo_r)
- AM_RANGE(0x000B, 0x000B) AM_MIRROR(0xff00) AM_WRITE(dma8_len_lo_w)
- AM_RANGE(0x000C, 0x000C) AM_MIRROR(0xff00) AM_WRITE(dma8_len_hi_w)
- AM_RANGE(0x000D, 0x000D) AM_MIRROR(0xff00) AM_READ(dma8_cnt_hi_r)
- AM_RANGE(0x000E, 0x000E) AM_MIRROR(0xff00) AM_READWRITE(dac_fifo_ctrl_r, dac_fifo_ctrl_w)
- AM_RANGE(0x000F, 0x000F) AM_MIRROR(0xff00) AM_READ(dma8_ready_r)
- AM_RANGE(0x0010, 0x0010) AM_MIRROR(0xff00) AM_READWRITE(ctrl16_r, ctrl16_w)
- AM_RANGE(0x0013, 0x0013) AM_MIRROR(0xff00) AM_WRITE(dma16_len_lo_w)
- AM_RANGE(0x0014, 0x0014) AM_MIRROR(0xff00) AM_WRITE(dma16_len_hi_w)
- AM_RANGE(0x0016, 0x0016) AM_MIRROR(0xff00) AM_READWRITE(adc_fifo_ctrl_r, adc_fifo_ctrl_w)
- AM_RANGE(0x0017, 0x0017) AM_MIRROR(0xff00) AM_READ(adc_data_ready_r)
- AM_RANGE(0x0019, 0x0019) AM_MIRROR(0xff00) AM_WRITE(dac_data_w)
- AM_RANGE(0x001B, 0x001B) AM_MIRROR(0xff00) AM_READ(adc_data_r)
- AM_RANGE(0x001D, 0x001D) AM_MIRROR(0xff00) AM_WRITE(dma8_w)
- AM_RANGE(0x001F, 0x001F) AM_MIRROR(0xff00) AM_READ(dma8_r)
+ map(0x0008, 0x0008).mirror(0xff00).rw(this, FUNC(sb16_lle_device::ctrl8_r), FUNC(sb16_lle_device::ctrl8_w));
+ map(0x0009, 0x0009).mirror(0xff00).w(this, FUNC(sb16_lle_device::rate_w));
+ map(0x000A, 0x000A).mirror(0xff00).r(this, FUNC(sb16_lle_device::dma8_cnt_lo_r));
+ map(0x000B, 0x000B).mirror(0xff00).w(this, FUNC(sb16_lle_device::dma8_len_lo_w));
+ map(0x000C, 0x000C).mirror(0xff00).w(this, FUNC(sb16_lle_device::dma8_len_hi_w));
+ map(0x000D, 0x000D).mirror(0xff00).r(this, FUNC(sb16_lle_device::dma8_cnt_hi_r));
+ map(0x000E, 0x000E).mirror(0xff00).rw(this, FUNC(sb16_lle_device::dac_fifo_ctrl_r), FUNC(sb16_lle_device::dac_fifo_ctrl_w));
+ map(0x000F, 0x000F).mirror(0xff00).r(this, FUNC(sb16_lle_device::dma8_ready_r));
+ map(0x0010, 0x0010).mirror(0xff00).rw(this, FUNC(sb16_lle_device::ctrl16_r), FUNC(sb16_lle_device::ctrl16_w));
+ map(0x0013, 0x0013).mirror(0xff00).w(this, FUNC(sb16_lle_device::dma16_len_lo_w));
+ map(0x0014, 0x0014).mirror(0xff00).w(this, FUNC(sb16_lle_device::dma16_len_hi_w));
+ map(0x0016, 0x0016).mirror(0xff00).rw(this, FUNC(sb16_lle_device::adc_fifo_ctrl_r), FUNC(sb16_lle_device::adc_fifo_ctrl_w));
+ map(0x0017, 0x0017).mirror(0xff00).r(this, FUNC(sb16_lle_device::adc_data_ready_r));
+ map(0x0019, 0x0019).mirror(0xff00).w(this, FUNC(sb16_lle_device::dac_data_w));
+ map(0x001B, 0x001B).mirror(0xff00).r(this, FUNC(sb16_lle_device::adc_data_r));
+ map(0x001D, 0x001D).mirror(0xff00).w(this, FUNC(sb16_lle_device::dma8_w));
+ map(0x001F, 0x001F).mirror(0xff00).r(this, FUNC(sb16_lle_device::dma8_r));
// AM_RANGE(0x0080, 0x0080) // ASP comms
// AM_RANGE(0x0081, 0x0081)
// AM_RANGE(0x0082, 0x0082)
-ADDRESS_MAP_END
+}
const tiny_rom_entry *sb16_lle_device::device_rom_region() const
{
diff --git a/src/devices/bus/isa/stereo_fx.cpp b/src/devices/bus/isa/stereo_fx.cpp
index 1c1d2852472..01e369944be 100644
--- a/src/devices/bus/isa/stereo_fx.cpp
+++ b/src/devices/bus/isa/stereo_fx.cpp
@@ -93,19 +93,21 @@ ROM_START( stereo_fx )
ROM_LOAD("ati_stereo_fx.bin", 0x0000, 0x8000, CRC(1bebffa6) SHA1(e66c2619a6c05199554b5702d67877ae3799d415))
ROM_END
-ADDRESS_MAP_START(stereo_fx_device::stereo_fx_io)
- AM_RANGE(0xFF00, 0xFF00) AM_WRITE(port00_w)
- AM_RANGE(0xFF10, 0xFF10) AM_DEVWRITE("rdac", dac_byte_interface, write)
- AM_RANGE(0xFF20, 0xFF20) AM_WRITE(port20_w)
+void stereo_fx_device::stereo_fx_io(address_map &map)
+{
+ map(0xFF00, 0xFF00).w(this, FUNC(stereo_fx_device::port00_w));
+ map(0xFF10, 0xFF10).w("rdac", FUNC(dac_byte_interface::write));
+ map(0xFF20, 0xFF20).w(this, FUNC(stereo_fx_device::port20_w));
//AM_RANGE(0xFF30, 0xFF30) AM_WRITE() // used only on reset and undocumented cmd 0xc4
- AM_RANGE(0xFF40, 0xFF40) AM_READWRITE(dev_dsp_data_r, dev_dsp_data_w)
- AM_RANGE(0xFF50, 0xFF50) AM_WRITE(raise_drq_w)
- AM_RANGE(0xFF60, 0xFF60) AM_WRITE(dev_host_irq_w)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(stereo_fx_device::stereo_fx_rom)
- AM_RANGE(0x0000, 0x7fff) AM_ROM
-ADDRESS_MAP_END
+ map(0xFF40, 0xFF40).rw(this, FUNC(stereo_fx_device::dev_dsp_data_r), FUNC(stereo_fx_device::dev_dsp_data_w));
+ map(0xFF50, 0xFF50).w(this, FUNC(stereo_fx_device::raise_drq_w));
+ map(0xFF60, 0xFF60).w(this, FUNC(stereo_fx_device::dev_host_irq_w));
+}
+
+void stereo_fx_device::stereo_fx_rom(address_map &map)
+{
+ map(0x0000, 0x7fff).rom();
+}
const tiny_rom_entry *stereo_fx_device::device_rom_region() const
{
diff --git a/src/devices/bus/isa/wdxt_gen.cpp b/src/devices/bus/isa/wdxt_gen.cpp
index 1c4ca395cbf..6771441c886 100644
--- a/src/devices/bus/isa/wdxt_gen.cpp
+++ b/src/devices/bus/isa/wdxt_gen.cpp
@@ -92,9 +92,10 @@ const tiny_rom_entry *wdxt_gen_device::device_rom_region() const
// ADDRESS_MAP( wd1015_io )
//-------------------------------------------------
-ADDRESS_MAP_START(wdxt_gen_device::wd1015_io)
- AM_RANGE(0x00, 0xff) AM_DEVREADWRITE(WD11C00_17_TAG, wd11c00_17_device, read, write)
-ADDRESS_MAP_END
+void wdxt_gen_device::wd1015_io(address_map &map)
+{
+ map(0x00, 0xff).rw(WD11C00_17_TAG, FUNC(wd11c00_17_device::read), FUNC(wd11c00_17_device::write));
+}
//-------------------------------------------------
diff --git a/src/devices/bus/kc/d004.cpp b/src/devices/bus/kc/d004.cpp
index cca93b9470f..9034b34b054 100644
--- a/src/devices/bus/kc/d004.cpp
+++ b/src/devices/bus/kc/d004.cpp
@@ -22,32 +22,35 @@
IMPLEMENTATION
***************************************************************************/
-ADDRESS_MAP_START(kc_d004_device::kc_d004_mem)
- AM_RANGE(0x0000, 0xfbff) AM_RAM
- AM_RANGE(0xfc00, 0xffff) AM_RAM AM_SHARE("koppelram")
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(kc_d004_device::kc_d004_io)
- ADDRESS_MAP_UNMAP_HIGH
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0xf0, 0xf1) AM_DEVICE(UPD765_TAG, upd765a_device, map)
- AM_RANGE(0xf2, 0xf3) AM_DEVREADWRITE(UPD765_TAG, upd765a_device, mdma_r, mdma_w)
- AM_RANGE(0xf4, 0xf4) AM_READ(hw_input_gate_r)
- AM_RANGE(0xf6, 0xf7) AM_WRITE(fdd_select_w)
- AM_RANGE(0xf8, 0xf9) AM_WRITE(hw_terminal_count_w)
- AM_RANGE(0xfc, 0xff) AM_DEVREADWRITE(Z80CTC_TAG, z80ctc_device, read, write)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(kc_d004_gide_device::kc_d004_gide_io)
- ADDRESS_MAP_UNMAP_HIGH
- AM_RANGE(0x0000, 0xffff) AM_READWRITE(gide_r, gide_w)
- AM_RANGE(0x00f0, 0x00f1) AM_MIRROR(0xff00) AM_DEVICE(UPD765_TAG, upd765a_device, map)
- AM_RANGE(0x00f2, 0x00f3) AM_MIRROR(0xff00) AM_DEVREADWRITE(UPD765_TAG, upd765a_device, mdma_r, mdma_w)
- AM_RANGE(0x00f4, 0x00f4) AM_MIRROR(0xff00) AM_READ(hw_input_gate_r)
- AM_RANGE(0x00f6, 0x00f7) AM_MIRROR(0xff00) AM_WRITE(fdd_select_w)
- AM_RANGE(0x00f8, 0x00f9) AM_MIRROR(0xff00) AM_WRITE(hw_terminal_count_w)
- AM_RANGE(0x00fc, 0x00ff) AM_MIRROR(0xff00) AM_DEVREADWRITE(Z80CTC_TAG, z80ctc_device, read, write)
-ADDRESS_MAP_END
+void kc_d004_device::kc_d004_mem(address_map &map)
+{
+ map(0x0000, 0xfbff).ram();
+ map(0xfc00, 0xffff).ram().share("koppelram");
+}
+
+void kc_d004_device::kc_d004_io(address_map &map)
+{
+ map.unmap_value_high();
+ map.global_mask(0xff);
+ map(0xf0, 0xf1).m(UPD765_TAG, FUNC(upd765a_device::map));
+ map(0xf2, 0xf3).rw(UPD765_TAG, FUNC(upd765a_device::mdma_r), FUNC(upd765a_device::mdma_w));
+ map(0xf4, 0xf4).r(this, FUNC(kc_d004_device::hw_input_gate_r));
+ map(0xf6, 0xf7).w(this, FUNC(kc_d004_device::fdd_select_w));
+ map(0xf8, 0xf9).w(this, FUNC(kc_d004_device::hw_terminal_count_w));
+ map(0xfc, 0xff).rw(Z80CTC_TAG, FUNC(z80ctc_device::read), FUNC(z80ctc_device::write));
+}
+
+void kc_d004_gide_device::kc_d004_gide_io(address_map &map)
+{
+ map.unmap_value_high();
+ map(0x0000, 0xffff).rw(this, FUNC(kc_d004_gide_device::gide_r), FUNC(kc_d004_gide_device::gide_w));
+ map(0x00f0, 0x00f1).mirror(0xff00).m(UPD765_TAG, FUNC(upd765a_device::map));
+ map(0x00f2, 0x00f3).mirror(0xff00).rw(UPD765_TAG, FUNC(upd765a_device::mdma_r), FUNC(upd765a_device::mdma_w));
+ map(0x00f4, 0x00f4).mirror(0xff00).r(this, FUNC(kc_d004_gide_device::hw_input_gate_r));
+ map(0x00f6, 0x00f7).mirror(0xff00).w(this, FUNC(kc_d004_gide_device::fdd_select_w));
+ map(0x00f8, 0x00f9).mirror(0xff00).w(this, FUNC(kc_d004_gide_device::hw_terminal_count_w));
+ map(0x00fc, 0x00ff).mirror(0xff00).rw(Z80CTC_TAG, FUNC(z80ctc_device::read), FUNC(z80ctc_device::write));
+}
FLOPPY_FORMATS_MEMBER( kc_d004_device::floppy_formats )
FLOPPY_KC85_FORMAT
diff --git a/src/devices/bus/megadrive/svp.cpp b/src/devices/bus/megadrive/svp.cpp
index d069a556ecd..31228f6ddca 100644
--- a/src/devices/bus/megadrive/svp.cpp
+++ b/src/devices/bus/megadrive/svp.cpp
@@ -318,27 +318,29 @@ INPUT_PORTS_END
// ADDRESS_MAP( svp_ssp_map )
//-------------------------------------------------
-ADDRESS_MAP_START(md_rom_svp_device::md_svp_ssp_map)
+void md_rom_svp_device::md_svp_ssp_map(address_map &map)
+{
// AM_RANGE(0x0000, 0x03ff) AM_READ(rom_read1)
// AM_RANGE(0x0400, 0xffff) AM_READ(rom_read2)
- AM_RANGE(0x0000, 0x03ff) AM_ROMBANK("iram_svp")
- AM_RANGE(0x0400, 0xffff) AM_ROMBANK("cart_svp")
-ADDRESS_MAP_END
+ map(0x0000, 0x03ff).bankr("iram_svp");
+ map(0x0400, 0xffff).bankr("cart_svp");
+}
//-------------------------------------------------
// ADDRESS_MAP( svp_ext_map )
//-------------------------------------------------
-ADDRESS_MAP_START(md_rom_svp_device::md_svp_ext_map)
- ADDRESS_MAP_GLOBAL_MASK(0xf)
- AM_RANGE(0*2, 0*2+1) AM_READWRITE(read_pm0, write_pm0)
- AM_RANGE(1*2, 1*2+1) AM_READWRITE(read_pm1, write_pm1)
- AM_RANGE(2*2, 2*2+1) AM_READWRITE(read_pm2, write_pm2)
- AM_RANGE(3*2, 3*2+1) AM_READWRITE(read_xst, write_xst)
- AM_RANGE(4*2, 4*2+1) AM_READWRITE(read_pm4, write_pm4)
- AM_RANGE(6*2, 6*2+1) AM_READWRITE(read_pmc, write_pmc)
- AM_RANGE(7*2, 7*2+1) AM_READWRITE(read_al, write_al)
-ADDRESS_MAP_END
+void md_rom_svp_device::md_svp_ext_map(address_map &map)
+{
+ map.global_mask(0xf);
+ map(0*2, 0*2+1).rw(this, FUNC(md_rom_svp_device::read_pm0), FUNC(md_rom_svp_device::write_pm0));
+ map(1*2, 1*2+1).rw(this, FUNC(md_rom_svp_device::read_pm1), FUNC(md_rom_svp_device::write_pm1));
+ map(2*2, 2*2+1).rw(this, FUNC(md_rom_svp_device::read_pm2), FUNC(md_rom_svp_device::write_pm2));
+ map(3*2, 3*2+1).rw(this, FUNC(md_rom_svp_device::read_xst), FUNC(md_rom_svp_device::write_xst));
+ map(4*2, 4*2+1).rw(this, FUNC(md_rom_svp_device::read_pm4), FUNC(md_rom_svp_device::write_pm4));
+ map(6*2, 6*2+1).rw(this, FUNC(md_rom_svp_device::read_pmc), FUNC(md_rom_svp_device::write_pmc));
+ map(7*2, 7*2+1).rw(this, FUNC(md_rom_svp_device::read_al), FUNC(md_rom_svp_device::write_al));
+}
//-------------------------------------------------
diff --git a/src/devices/bus/msx_cart/bm_012.cpp b/src/devices/bus/msx_cart/bm_012.cpp
index f010ad91502..fcbda1a0bc4 100644
--- a/src/devices/bus/msx_cart/bm_012.cpp
+++ b/src/devices/bus/msx_cart/bm_012.cpp
@@ -32,10 +32,11 @@ msx_cart_bm_012_device::msx_cart_bm_012_device(const machine_config &mconfig, co
}
-ADDRESS_MAP_START(msx_cart_bm_012_device::bm_012_memory_map)
- AM_RANGE(0x0000, 0x7fff) AM_ROM
- AM_RANGE(0xe000, 0xffff) AM_RAM
-ADDRESS_MAP_END
+void msx_cart_bm_012_device::bm_012_memory_map(address_map &map)
+{
+ map(0x0000, 0x7fff).rom();
+ map(0xe000, 0xffff).ram();
+}
MACHINE_CONFIG_START(msx_cart_bm_012_device::device_add_mconfig)
diff --git a/src/devices/bus/msx_cart/konami.cpp b/src/devices/bus/msx_cart/konami.cpp
index 2d6479515ea..7bdde846cf8 100644
--- a/src/devices/bus/msx_cart/konami.cpp
+++ b/src/devices/bus/msx_cart/konami.cpp
@@ -866,9 +866,10 @@ msx_cart_keyboard_master_device::msx_cart_keyboard_master_device(const machine_c
}
-ADDRESS_MAP_START(msx_cart_keyboard_master_device::vlm_map)
- AM_RANGE(0x0000, 0xffff) AM_READ(read_vlm)
-ADDRESS_MAP_END
+void msx_cart_keyboard_master_device::vlm_map(address_map &map)
+{
+ map(0x0000, 0xffff).r(this, FUNC(msx_cart_keyboard_master_device::read_vlm));
+}
MACHINE_CONFIG_START(msx_cart_keyboard_master_device::device_add_mconfig)
diff --git a/src/devices/bus/msx_cart/moonsound.cpp b/src/devices/bus/msx_cart/moonsound.cpp
index 6ea7a430e17..00b8848a0ef 100644
--- a/src/devices/bus/msx_cart/moonsound.cpp
+++ b/src/devices/bus/msx_cart/moonsound.cpp
@@ -29,10 +29,11 @@ msx_cart_moonsound_device::msx_cart_moonsound_device(const machine_config &mconf
}
-ADDRESS_MAP_START(msx_cart_moonsound_device::ymf278b_map)
- AM_RANGE(0x000000, 0x1fffff) AM_ROM
- AM_RANGE(0x200000, 0x3fffff) AM_RAM // 2MB sram for testing
-ADDRESS_MAP_END
+void msx_cart_moonsound_device::ymf278b_map(address_map &map)
+{
+ map(0x000000, 0x1fffff).rom();
+ map(0x200000, 0x3fffff).ram(); // 2MB sram for testing
+}
MACHINE_CONFIG_START(msx_cart_moonsound_device::device_add_mconfig)
diff --git a/src/devices/bus/newbrain/fdc.cpp b/src/devices/bus/newbrain/fdc.cpp
index 15dce82487b..9d59cd672bc 100644
--- a/src/devices/bus/newbrain/fdc.cpp
+++ b/src/devices/bus/newbrain/fdc.cpp
@@ -69,23 +69,25 @@ const tiny_rom_entry *newbrain_fdc_device::device_rom_region() const
// ADDRESS_MAP( newbrain_fdc_mem )
//-------------------------------------------------
-ADDRESS_MAP_START(newbrain_fdc_device::newbrain_fdc_mem)
- ADDRESS_MAP_UNMAP_HIGH
- AM_RANGE(0x0000, 0x1fff) AM_ROM
-ADDRESS_MAP_END
+void newbrain_fdc_device::newbrain_fdc_mem(address_map &map)
+{
+ map.unmap_value_high();
+ map(0x0000, 0x1fff).rom();
+}
//-------------------------------------------------
// ADDRESS_MAP( newbrain_fdc_io )
//-------------------------------------------------
-ADDRESS_MAP_START(newbrain_fdc_device::newbrain_fdc_io)
- ADDRESS_MAP_UNMAP_HIGH
- ADDRESS_MAP_GLOBAL_MASK(0x71)
- AM_RANGE(0x00, 0x01) AM_MIRROR(0x10) AM_DEVICE(UPD765_TAG, upd765a_device, map)
- AM_RANGE(0x20, 0x20) AM_MIRROR(0x11) AM_WRITE(fdc_auxiliary_w)
- AM_RANGE(0x40, 0x40) AM_MIRROR(0x11) AM_READ(fdc_control_r)
-ADDRESS_MAP_END
+void newbrain_fdc_device::newbrain_fdc_io(address_map &map)
+{
+ map.unmap_value_high();
+ map.global_mask(0x71);
+ map(0x00, 0x01).mirror(0x10).m(UPD765_TAG, FUNC(upd765a_device::map));
+ map(0x20, 0x20).mirror(0x11).w(this, FUNC(newbrain_fdc_device::fdc_auxiliary_w));
+ map(0x40, 0x40).mirror(0x11).r(this, FUNC(newbrain_fdc_device::fdc_control_r));
+}
//-------------------------------------------------
diff --git a/src/devices/bus/odyssey2/chess.cpp b/src/devices/bus/odyssey2/chess.cpp
index e8ac19018c8..8de9c816310 100644
--- a/src/devices/bus/odyssey2/chess.cpp
+++ b/src/devices/bus/odyssey2/chess.cpp
@@ -29,14 +29,16 @@ o2_chess_device::o2_chess_device(const machine_config &mconfig, const char *tag,
}
-ADDRESS_MAP_START(o2_chess_device::chess_mem)
- AM_RANGE(0x0000, 0x07ff) AM_READ(read_rom04)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(o2_chess_device::chess_io)
- ADDRESS_MAP_UNMAP_HIGH
- ADDRESS_MAP_GLOBAL_MASK(0xff)
-ADDRESS_MAP_END
+void o2_chess_device::chess_mem(address_map &map)
+{
+ map(0x0000, 0x07ff).r(this, FUNC(o2_chess_device::read_rom04));
+}
+
+void o2_chess_device::chess_io(address_map &map)
+{
+ map.unmap_value_high();
+ map.global_mask(0xff);
+}
//-------------------------------------------------
diff --git a/src/devices/bus/pc_kbd/iskr1030.cpp b/src/devices/bus/pc_kbd/iskr1030.cpp
index 53abba3641f..e2dd8a7db39 100644
--- a/src/devices/bus/pc_kbd/iskr1030.cpp
+++ b/src/devices/bus/pc_kbd/iskr1030.cpp
@@ -61,9 +61,10 @@ const tiny_rom_entry *iskr_1030_keyboard_device::device_rom_region() const
// ADDRESS_MAP( kb_io )
//-------------------------------------------------
-ADDRESS_MAP_START(iskr_1030_keyboard_device::iskr_1030_keyboard_io)
- AM_RANGE(0x00, 0xff) AM_READWRITE(ram_r, ram_w)
-ADDRESS_MAP_END
+void iskr_1030_keyboard_device::iskr_1030_keyboard_io(address_map &map)
+{
+ map(0x00, 0xff).rw(this, FUNC(iskr_1030_keyboard_device::ram_r), FUNC(iskr_1030_keyboard_device::ram_w));
+}
//-------------------------------------------------
diff --git a/src/devices/bus/pc_kbd/keytro.cpp b/src/devices/bus/pc_kbd/keytro.cpp
index e03d9ecf731..0c0f21b57d0 100644
--- a/src/devices/bus/pc_kbd/keytro.cpp
+++ b/src/devices/bus/pc_kbd/keytro.cpp
@@ -344,13 +344,15 @@ DEFINE_DEVICE_TYPE(PC_KBD_KEYTRONIC_PC3270_AT, pc_kbd_keytronic_pc3270_at_device
ADDRESS MAPS
*****************************************************************************/
-ADDRESS_MAP_START(pc_kbd_keytronic_pc3270_device::keytronic_pc3270_program)
- AM_RANGE(0x0000, 0x0fff) AM_ROM AM_REGION("kb_keytr", 0)
-ADDRESS_MAP_END
+void pc_kbd_keytronic_pc3270_device::keytronic_pc3270_program(address_map &map)
+{
+ map(0x0000, 0x0fff).rom().region("kb_keytr", 0);
+}
-ADDRESS_MAP_START(pc_kbd_keytronic_pc3270_device::keytronic_pc3270_io)
- AM_RANGE(0x0000, 0xffff) AM_READWRITE(internal_data_read, internal_data_write)
-ADDRESS_MAP_END
+void pc_kbd_keytronic_pc3270_device::keytronic_pc3270_io(address_map &map)
+{
+ map(0x0000, 0xffff).rw(this, FUNC(pc_kbd_keytronic_pc3270_device::internal_data_read), FUNC(pc_kbd_keytronic_pc3270_device::internal_data_write));
+}
/***************************************************************************
diff --git a/src/devices/bus/pet/hsg.cpp b/src/devices/bus/pet/hsg.cpp
index 30205f0ca7a..afa3d0d17ba 100644
--- a/src/devices/bus/pet/hsg.cpp
+++ b/src/devices/bus/pet/hsg.cpp
@@ -69,20 +69,22 @@ const tiny_rom_entry *cbm8000_hsg_device::device_rom_region() const
// ADDRESS_MAP( hsg_a_map )
//-------------------------------------------------
-ADDRESS_MAP_START(cbm8000_hsg_a_device::hsg_a_map)
- ADDRESS_MAP_GLOBAL_MASK(0x7fff)
- AM_RANGE(0x0000, 0x7fff) AM_RAM
-ADDRESS_MAP_END
+void cbm8000_hsg_a_device::hsg_a_map(address_map &map)
+{
+ map.global_mask(0x7fff);
+ map(0x0000, 0x7fff).ram();
+}
//-------------------------------------------------
// ADDRESS_MAP( hsg_b_map )
//-------------------------------------------------
-ADDRESS_MAP_START(cbm8000_hsg_b_device::hsg_b_map)
- ADDRESS_MAP_GLOBAL_MASK(0x3fff)
- AM_RANGE(0x0000, 0x3fff) AM_RAM
-ADDRESS_MAP_END
+void cbm8000_hsg_b_device::hsg_b_map(address_map &map)
+{
+ map.global_mask(0x3fff);
+ map(0x0000, 0x3fff).ram();
+}
//-------------------------------------------------
diff --git a/src/devices/bus/pet/superpet.cpp b/src/devices/bus/pet/superpet.cpp
index a66db4451fa..ba4a7964576 100644
--- a/src/devices/bus/pet/superpet.cpp
+++ b/src/devices/bus/pet/superpet.cpp
@@ -60,9 +60,10 @@ const tiny_rom_entry *superpet_device::device_rom_region() const
// ADDRESS_MAP( superpet_mem )
//-------------------------------------------------
-ADDRESS_MAP_START(superpet_device::superpet_mem)
- AM_RANGE(0x0000, 0xffff) AM_READWRITE(read, write)
-ADDRESS_MAP_END
+void superpet_device::superpet_mem(address_map &map)
+{
+ map(0x0000, 0xffff).rw(this, FUNC(superpet_device::read), FUNC(superpet_device::write));
+}
//-------------------------------------------------
diff --git a/src/devices/bus/plus4/c1551.cpp b/src/devices/bus/plus4/c1551.cpp
index 3410b4e5a1e..5ca191c0b44 100644
--- a/src/devices/bus/plus4/c1551.cpp
+++ b/src/devices/bus/plus4/c1551.cpp
@@ -313,11 +313,12 @@ WRITE8_MEMBER( c1551_device::tpi1_pc_w )
// ADDRESS_MAP( c1551_mem )
//-------------------------------------------------
-ADDRESS_MAP_START(c1551_device::c1551_mem)
- AM_RANGE(0x0000, 0x07ff) AM_MIRROR(0x0800) AM_RAM
- AM_RANGE(0x4000, 0x4007) AM_MIRROR(0x3ff8) AM_READWRITE(tpi0_r, tpi0_w)
- AM_RANGE(0xc000, 0xffff) AM_ROM AM_REGION(M6510T_TAG, 0)
-ADDRESS_MAP_END
+void c1551_device::c1551_mem(address_map &map)
+{
+ map(0x0000, 0x07ff).mirror(0x0800).ram();
+ map(0x4000, 0x4007).mirror(0x3ff8).rw(this, FUNC(c1551_device::tpi0_r), FUNC(c1551_device::tpi0_w));
+ map(0xc000, 0xffff).rom().region(M6510T_TAG, 0);
+}
//-------------------------------------------------
diff --git a/src/devices/bus/psi_kbd/ergoline.cpp b/src/devices/bus/psi_kbd/ergoline.cpp
index 1c36ee14d6d..d18ad844670 100644
--- a/src/devices/bus/psi_kbd/ergoline.cpp
+++ b/src/devices/bus/psi_kbd/ergoline.cpp
@@ -22,12 +22,14 @@ DEFINE_DEVICE_TYPE(ERGOLINE_KEYBOARD, ergoline_keyboard_device, "ergoline_kbd",
// address_map - device-specific address maps
//-------------------------------------------------
-ADDRESS_MAP_START(ergoline_keyboard_device::kbd_mem)
- AM_RANGE(0x0000, 0x0fff) AM_ROM AM_REGION("firmware", 0)
-ADDRESS_MAP_END
+void ergoline_keyboard_device::kbd_mem(address_map &map)
+{
+ map(0x0000, 0x0fff).rom().region("firmware", 0);
+}
-ADDRESS_MAP_START(ergoline_keyboard_device::kbd_io)
-ADDRESS_MAP_END
+void ergoline_keyboard_device::kbd_io(address_map &map)
+{
+}
//-------------------------------------------------
diff --git a/src/devices/bus/s100/djdma.cpp b/src/devices/bus/s100/djdma.cpp
index 0a4434af4f6..51cc5104e7d 100644
--- a/src/devices/bus/s100/djdma.cpp
+++ b/src/devices/bus/s100/djdma.cpp
@@ -59,17 +59,19 @@ const tiny_rom_entry *s100_djdma_device::device_rom_region() const
// ADDRESS_MAP( djdma_mem )
//-------------------------------------------------
-ADDRESS_MAP_START(s100_djdma_device::djdma_mem)
- AM_RANGE(0x0000, 0x0fff) AM_ROM AM_REGION("14a", 0)
-ADDRESS_MAP_END
+void s100_djdma_device::djdma_mem(address_map &map)
+{
+ map(0x0000, 0x0fff).rom().region("14a", 0);
+}
//-------------------------------------------------
// ADDRESS_MAP( djdma_io )
//-------------------------------------------------
-ADDRESS_MAP_START(s100_djdma_device::djdma_io)
-ADDRESS_MAP_END
+void s100_djdma_device::djdma_io(address_map &map)
+{
+}
//-------------------------------------------------
diff --git a/src/devices/bus/scsi/s1410.cpp b/src/devices/bus/scsi/s1410.cpp
index 029d7180b5f..67637f3b7fc 100644
--- a/src/devices/bus/scsi/s1410.cpp
+++ b/src/devices/bus/scsi/s1410.cpp
@@ -133,30 +133,32 @@ const tiny_rom_entry *s1410_device::device_rom_region() const
// ADDRESS_MAP( s1410_mem )
//-------------------------------------------------
-ADDRESS_MAP_START(s1410_device::s1410_mem)
- AM_RANGE(0x0000, 0x0fff) AM_ROM AM_REGION(Z8400A_TAG, 0)
- AM_RANGE(0x1000, 0x13ff) AM_RAM
-ADDRESS_MAP_END
+void s1410_device::s1410_mem(address_map &map)
+{
+ map(0x0000, 0x0fff).rom().region(Z8400A_TAG, 0);
+ map(0x1000, 0x13ff).ram();
+}
//-------------------------------------------------
// ADDRESS_MAP( s1410_io )
//-------------------------------------------------
-ADDRESS_MAP_START(s1410_device::s1410_io)
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x66, 0x66) AM_WRITENOP
- AM_RANGE(0x67, 0x67) AM_WRITENOP
- AM_RANGE(0x68, 0x68) AM_READNOP
- AM_RANGE(0x69, 0x69) AM_WRITENOP
- AM_RANGE(0x6a, 0x6a) AM_WRITENOP
- AM_RANGE(0x6b, 0x6b) AM_WRITENOP
- AM_RANGE(0x6c, 0x6c) AM_WRITENOP
- AM_RANGE(0xa0, 0xa0) AM_NOP
- AM_RANGE(0xc1, 0xc1) AM_WRITENOP
- AM_RANGE(0xc2, 0xc2) AM_WRITENOP
- AM_RANGE(0xc3, 0xc3) AM_WRITENOP
-ADDRESS_MAP_END
+void s1410_device::s1410_io(address_map &map)
+{
+ map.global_mask(0xff);
+ map(0x66, 0x66).nopw();
+ map(0x67, 0x67).nopw();
+ map(0x68, 0x68).nopr();
+ map(0x69, 0x69).nopw();
+ map(0x6a, 0x6a).nopw();
+ map(0x6b, 0x6b).nopw();
+ map(0x6c, 0x6c).nopw();
+ map(0xa0, 0xa0).noprw();
+ map(0xc1, 0xc1).nopw();
+ map(0xc2, 0xc2).nopw();
+ map(0xc3, 0xc3).nopw();
+}
//-------------------------------------------------
diff --git a/src/devices/bus/snes/event.cpp b/src/devices/bus/snes/event.cpp
index 4f7ef1f3a7e..4095df98bfd 100644
--- a/src/devices/bus/snes/event.cpp
+++ b/src/devices/bus/snes/event.cpp
@@ -201,18 +201,20 @@ READ16_MEMBER( sns_pfest94_device::necdsp_data_r )
// ADDRESS_MAP( dsp_prg_map )
//-------------------------------------------------
-ADDRESS_MAP_START(sns_pfest94_device::dsp_prg_map_lorom)
- AM_RANGE(0x0000, 0x07ff) AM_READ(necdsp_prg_r)
-ADDRESS_MAP_END
+void sns_pfest94_device::dsp_prg_map_lorom(address_map &map)
+{
+ map(0x0000, 0x07ff).r(this, FUNC(sns_pfest94_device::necdsp_prg_r));
+}
//-------------------------------------------------
// ADDRESS_MAP( dsp_data_map )
//-------------------------------------------------
-ADDRESS_MAP_START(sns_pfest94_device::dsp_data_map_lorom)
- AM_RANGE(0x0000, 0x03ff) AM_READ(necdsp_data_r)
-ADDRESS_MAP_END
+void sns_pfest94_device::dsp_data_map_lorom(address_map &map)
+{
+ map(0x0000, 0x03ff).r(this, FUNC(sns_pfest94_device::necdsp_data_r));
+}
//-------------------------------------------------
diff --git a/src/devices/bus/snes/sa1.cpp b/src/devices/bus/snes/sa1.cpp
index da00f68f12b..576eb70505b 100644
--- a/src/devices/bus/snes/sa1.cpp
+++ b/src/devices/bus/snes/sa1.cpp
@@ -1135,11 +1135,12 @@ WRITE8_MEMBER( sns_sa1_device::sa1_lo_w )
sa1_hi_w(space, offset, data);
}
-ADDRESS_MAP_START(sns_sa1_device::sa1_map)
- AM_RANGE(0x000000, 0x7dffff) AM_READWRITE(sa1_lo_r, sa1_lo_w)
- AM_RANGE(0x7e0000, 0x7fffff) AM_NOP
- AM_RANGE(0x800000, 0xffffff) AM_READWRITE(sa1_hi_r, sa1_hi_w)
-ADDRESS_MAP_END
+void sns_sa1_device::sa1_map(address_map &map)
+{
+ map(0x000000, 0x7dffff).rw(this, FUNC(sns_sa1_device::sa1_lo_r), FUNC(sns_sa1_device::sa1_lo_w));
+ map(0x7e0000, 0x7fffff).noprw();
+ map(0x800000, 0xffffff).rw(this, FUNC(sns_sa1_device::sa1_hi_r), FUNC(sns_sa1_device::sa1_hi_w));
+}
MACHINE_CONFIG_START(sns_sa1_device::device_add_mconfig)
diff --git a/src/devices/bus/snes/sfx.cpp b/src/devices/bus/snes/sfx.cpp
index a93d3d45c0a..d02e811754e 100644
--- a/src/devices/bus/snes/sfx.cpp
+++ b/src/devices/bus/snes/sfx.cpp
@@ -69,14 +69,15 @@ WRITE8_MEMBER( sns_rom_superfx_device::superfx_w_bank3 )
sfx_ram[offset & 0xfffff] = data;
}
-ADDRESS_MAP_START(sns_rom_superfx_device::sfx_map)
- AM_RANGE(0x000000, 0x3fffff) AM_READWRITE(superfx_r_bank1, superfx_w_bank1)
- AM_RANGE(0x400000, 0x5fffff) AM_READWRITE(superfx_r_bank2, superfx_w_bank2)
- AM_RANGE(0x600000, 0x7dffff) AM_READWRITE(superfx_r_bank3, superfx_w_bank3)
- AM_RANGE(0x800000, 0xbfffff) AM_READWRITE(superfx_r_bank1, superfx_w_bank1)
- AM_RANGE(0xc00000, 0xdfffff) AM_READWRITE(superfx_r_bank2, superfx_w_bank2)
- AM_RANGE(0xe00000, 0xffffff) AM_READWRITE(superfx_r_bank3, superfx_w_bank3)
-ADDRESS_MAP_END
+void sns_rom_superfx_device::sfx_map(address_map &map)
+{
+ map(0x000000, 0x3fffff).rw(this, FUNC(sns_rom_superfx_device::superfx_r_bank1), FUNC(sns_rom_superfx_device::superfx_w_bank1));
+ map(0x400000, 0x5fffff).rw(this, FUNC(sns_rom_superfx_device::superfx_r_bank2), FUNC(sns_rom_superfx_device::superfx_w_bank2));
+ map(0x600000, 0x7dffff).rw(this, FUNC(sns_rom_superfx_device::superfx_r_bank3), FUNC(sns_rom_superfx_device::superfx_w_bank3));
+ map(0x800000, 0xbfffff).rw(this, FUNC(sns_rom_superfx_device::superfx_r_bank1), FUNC(sns_rom_superfx_device::superfx_w_bank1));
+ map(0xc00000, 0xdfffff).rw(this, FUNC(sns_rom_superfx_device::superfx_r_bank2), FUNC(sns_rom_superfx_device::superfx_w_bank2));
+ map(0xe00000, 0xffffff).rw(this, FUNC(sns_rom_superfx_device::superfx_r_bank3), FUNC(sns_rom_superfx_device::superfx_w_bank3));
+}
WRITE_LINE_MEMBER(sns_rom_superfx_device::snes_extern_irq_w)
diff --git a/src/devices/bus/snes/upd.cpp b/src/devices/bus/snes/upd.cpp
index 9eb685edcc7..5c08ca15377 100644
--- a/src/devices/bus/snes/upd.cpp
+++ b/src/devices/bus/snes/upd.cpp
@@ -112,18 +112,20 @@ READ16_MEMBER( sns_rom20_necdsp_device::necdsp_data_r )
// ADDRESS_MAP( dsp_prg_map )
//-------------------------------------------------
-ADDRESS_MAP_START(sns_rom20_necdsp_device::dsp_prg_map_lorom)
- AM_RANGE(0x0000, 0x07ff) AM_READ(necdsp_prg_r)
-ADDRESS_MAP_END
+void sns_rom20_necdsp_device::dsp_prg_map_lorom(address_map &map)
+{
+ map(0x0000, 0x07ff).r(this, FUNC(sns_rom20_necdsp_device::necdsp_prg_r));
+}
//-------------------------------------------------
// ADDRESS_MAP( dsp_data_map )
//-------------------------------------------------
-ADDRESS_MAP_START(sns_rom20_necdsp_device::dsp_data_map_lorom)
- AM_RANGE(0x0000, 0x03ff) AM_READ(necdsp_data_r)
-ADDRESS_MAP_END
+void sns_rom20_necdsp_device::dsp_data_map_lorom(address_map &map)
+{
+ map(0x0000, 0x03ff).r(this, FUNC(sns_rom20_necdsp_device::necdsp_data_r));
+}
//-------------------------------------------------
@@ -168,18 +170,20 @@ READ16_MEMBER( sns_rom21_necdsp_device::necdsp_data_r )
// ADDRESS_MAP( dsp_prg_map )
//-------------------------------------------------
-ADDRESS_MAP_START(sns_rom21_necdsp_device::dsp_prg_map_hirom)
- AM_RANGE(0x0000, 0x07ff) AM_READ(necdsp_prg_r)
-ADDRESS_MAP_END
+void sns_rom21_necdsp_device::dsp_prg_map_hirom(address_map &map)
+{
+ map(0x0000, 0x07ff).r(this, FUNC(sns_rom21_necdsp_device::necdsp_prg_r));
+}
//-------------------------------------------------
// ADDRESS_MAP( dsp_data_map )
//-------------------------------------------------
-ADDRESS_MAP_START(sns_rom21_necdsp_device::dsp_data_map_hirom)
- AM_RANGE(0x0000, 0x03ff) AM_READ(necdsp_data_r)
-ADDRESS_MAP_END
+void sns_rom21_necdsp_device::dsp_data_map_hirom(address_map &map)
+{
+ map(0x0000, 0x03ff).r(this, FUNC(sns_rom21_necdsp_device::necdsp_data_r));
+}
//-------------------------------------------------
// device_add_mconfig - add device configuration
diff --git a/src/devices/bus/spc1000/fdd.cpp b/src/devices/bus/spc1000/fdd.cpp
index b0ac8af32c0..7d8f94e2653 100644
--- a/src/devices/bus/spc1000/fdd.cpp
+++ b/src/devices/bus/spc1000/fdd.cpp
@@ -55,19 +55,21 @@ WRITE8_MEMBER( spc1000_fdd_exp_device::control_w )
m_fd1->mon_w(!BIT(data, 0));
}
-ADDRESS_MAP_START(spc1000_fdd_exp_device::sd725_mem)
- ADDRESS_MAP_UNMAP_HIGH
- AM_RANGE(0x0000, 0x1fff) AM_ROM
- AM_RANGE(0x2000, 0xffff) AM_RAM
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(spc1000_fdd_exp_device::sd725_io)
- ADDRESS_MAP_UNMAP_HIGH
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0xf8, 0xf8) AM_READWRITE(tc_r, control_w) // (R) Terminal Count Port (W) Motor Control Port
- AM_RANGE(0xfa, 0xfb) AM_DEVICE("upd765", upd765a_device, map)
- AM_RANGE(0xfc, 0xff) AM_DEVREADWRITE("d8255_master", i8255_device, read, write)
-ADDRESS_MAP_END
+void spc1000_fdd_exp_device::sd725_mem(address_map &map)
+{
+ map.unmap_value_high();
+ map(0x0000, 0x1fff).rom();
+ map(0x2000, 0xffff).ram();
+}
+
+void spc1000_fdd_exp_device::sd725_io(address_map &map)
+{
+ map.unmap_value_high();
+ map.global_mask(0xff);
+ map(0xf8, 0xf8).rw(this, FUNC(spc1000_fdd_exp_device::tc_r), FUNC(spc1000_fdd_exp_device::control_w)); // (R) Terminal Count Port (W) Motor Control Port
+ map(0xfa, 0xfb).m("upd765", FUNC(upd765a_device::map));
+ map(0xfc, 0xff).rw("d8255_master", FUNC(i8255_device::read), FUNC(i8255_device::write));
+}
static SLOT_INTERFACE_START( sd725_floppies )
SLOT_INTERFACE("sd320", EPSON_SD_320)
diff --git a/src/devices/bus/tiki100/8088.cpp b/src/devices/bus/tiki100/8088.cpp
index 04473c5bd40..102a5c7c831 100644
--- a/src/devices/bus/tiki100/8088.cpp
+++ b/src/devices/bus/tiki100/8088.cpp
@@ -49,16 +49,18 @@ const tiny_rom_entry *tiki100_8088_device::device_rom_region() const
}
-ADDRESS_MAP_START(tiki100_8088_device::i8088_mem)
- AM_RANGE(0x00000, 0xbffff) AM_RAM
- AM_RANGE(0xc0000, 0xcffff) AM_DEVREADWRITE(":" TIKI100_BUS_TAG, tiki100_bus_device, exin_mrq_r, exin_mrq_w)
- AM_RANGE(0xff000, 0xfffff) AM_ROM AM_REGION(I8088_TAG, 0)
-ADDRESS_MAP_END
+void tiki100_8088_device::i8088_mem(address_map &map)
+{
+ map(0x00000, 0xbffff).ram();
+ map(0xc0000, 0xcffff).rw(":" TIKI100_BUS_TAG, FUNC(tiki100_bus_device::exin_mrq_r), FUNC(tiki100_bus_device::exin_mrq_w));
+ map(0xff000, 0xfffff).rom().region(I8088_TAG, 0);
+}
-ADDRESS_MAP_START(tiki100_8088_device::i8088_io)
- AM_RANGE(0x7f, 0x7f) AM_READWRITE(read, write)
-ADDRESS_MAP_END
+void tiki100_8088_device::i8088_io(address_map &map)
+{
+ map(0x7f, 0x7f).rw(this, FUNC(tiki100_8088_device::read), FUNC(tiki100_8088_device::write));
+}
//-------------------------------------------------
diff --git a/src/devices/bus/vcs/harmony_melody.cpp b/src/devices/bus/vcs/harmony_melody.cpp
index 48c1bf155d8..c22670d15c5 100644
--- a/src/devices/bus/vcs/harmony_melody.cpp
+++ b/src/devices/bus/vcs/harmony_melody.cpp
@@ -78,8 +78,9 @@ void a26_rom_harmony_device::device_start()
save_item(NAME(m_base_bank));
}
-ADDRESS_MAP_START(a26_rom_harmony_device::harmony_arm7_map)
-ADDRESS_MAP_END
+void a26_rom_harmony_device::harmony_arm7_map(address_map &map)
+{
+}
MACHINE_CONFIG_START(a26_rom_harmony_device::device_add_mconfig)
MCFG_CPU_ADD("arm", LPC2103, 70000000)
diff --git a/src/devices/bus/vme/vme_fccpu20.cpp b/src/devices/bus/vme/vme_fccpu20.cpp
index 705dd37fa10..958962012f3 100644
--- a/src/devices/bus/vme/vme_fccpu20.cpp
+++ b/src/devices/bus/vme/vme_fccpu20.cpp
@@ -226,20 +226,21 @@ DEFINE_DEVICE_TYPE(VME_FCCPU21YB, vme_fccpu21yb_card_device, "fccpu21yb", "Force
#define CLOCK40 XTAL(40'000'000) /* HCJ */
#define CLOCK32 XTAL(32'000'000) /* HCJ */
-ADDRESS_MAP_START(vme_fccpu20_device::cpu20_mem)
- ADDRESS_MAP_UNMAP_HIGH
- AM_RANGE (0x00000000, 0x00000007) AM_RAM AM_WRITE (bootvect_w) /* After first write we act as RAM */
- AM_RANGE (0x00000000, 0x00000007) AM_ROM AM_READ (bootvect_r) /* ROM mirror just during reset */
- AM_RANGE (0x00000008, 0x0007ffff) AM_RAM /* Local SRAM */
- AM_RANGE (0x00080000, 0x000fffff) AM_RAM /* SRAM-22 installed */
- AM_RANGE (0xff040000, 0xff04ffff) AM_RAM
- AM_RANGE (0xff000000, 0xff00ffff) AM_ROM AM_REGION("roms", 0x0000)
- AM_RANGE (0xff800000, 0xff80001f) AM_DEVREADWRITE8("mpcc", mpcc68561_device, read, write, 0xffffffff)
- AM_RANGE (0xff800200, 0xff80021f) AM_DEVREADWRITE8("mpcc2", mpcc68561_device, read, write, 0xffffffff)
- AM_RANGE (0xff800600, 0xff80061f) AM_DEVREADWRITE8("mpcc3", mpcc68561_device, read, write, 0xffffffff)
- AM_RANGE (0xff800800, 0xff80080f) AM_DEVREADWRITE8("bim", bim68153_device, read, write, 0xff00ff00)
- AM_RANGE (0xff800c00, 0xff800dff) AM_DEVREADWRITE8("pit", pit68230_device, read, write, 0xffffffff)
-ADDRESS_MAP_END
+void vme_fccpu20_device::cpu20_mem(address_map &map)
+{
+ map.unmap_value_high();
+ map(0x00000000, 0x00000007).ram().w(this, FUNC(vme_fccpu20_device::bootvect_w)); /* After first write we act as RAM */
+ map(0x00000000, 0x00000007).rom().r(this, FUNC(vme_fccpu20_device::bootvect_r)); /* ROM mirror just during reset */
+ map(0x00000008, 0x0007ffff).ram(); /* Local SRAM */
+ map(0x00080000, 0x000fffff).ram(); /* SRAM-22 installed */
+ map(0xff040000, 0xff04ffff).ram();
+ map(0xff000000, 0xff00ffff).rom().region("roms", 0x0000);
+ map(0xff800000, 0xff80001f).rw("mpcc", FUNC(mpcc68561_device::read), FUNC(mpcc68561_device::write));
+ map(0xff800200, 0xff80021f).rw("mpcc2", FUNC(mpcc68561_device::read), FUNC(mpcc68561_device::write));
+ map(0xff800600, 0xff80061f).rw("mpcc3", FUNC(mpcc68561_device::read), FUNC(mpcc68561_device::write));
+ map(0xff800800, 0xff80080f).rw("bim", FUNC(bim68153_device::read), FUNC(bim68153_device::write)).umask32(0xff00ff00);
+ map(0xff800c00, 0xff800dff).rw("pit", FUNC(pit68230_device::read), FUNC(pit68230_device::write));
+}
MACHINE_CONFIG_START(vme_fccpu20_device::device_add_mconfig)
diff --git a/src/devices/bus/vme/vme_fcisio.cpp b/src/devices/bus/vme/vme_fcisio.cpp
index b04edafbaae..403ea2c390e 100644
--- a/src/devices/bus/vme/vme_fcisio.cpp
+++ b/src/devices/bus/vme/vme_fcisio.cpp
@@ -161,18 +161,19 @@ DEFINE_DEVICE_TYPE(VME_FCISIO1, vme_fcisio1_card_device, "fcisio1", "Force Compu
#define CPU_CLOCK XTAL(20'000'000) /* HCJ */
#define DUSCC_CLOCK XTAL(14'745'600) /* HCJ */
-ADDRESS_MAP_START(vme_fcisio1_card_device::fcisio1_mem)
- ADDRESS_MAP_UNMAP_HIGH
- AM_RANGE (0x000000, 0x01ffff) AM_RAM /* SRAM */
- AM_RANGE (0x000000, 0x000007) AM_ROM AM_READ (bootvect_r) /* Vectors mapped from System EPROM */
- AM_RANGE (0xe00000, 0xe001ff) AM_DEVREADWRITE8("duscc0", duscc68562_device, read, write, 0x00ff)
- AM_RANGE (0xe20000, 0xe201ff) AM_DEVREADWRITE8("duscc1", duscc68562_device, read, write, 0x00ff)
- AM_RANGE (0xe40000, 0xe401ff) AM_DEVREADWRITE8("duscc2", duscc68562_device, read, write, 0x00ff)
- AM_RANGE (0xe60000, 0xe601ff) AM_DEVREADWRITE8("duscc3", duscc68562_device, read, write, 0x00ff)
- AM_RANGE (0xe80000, 0xe80dff) AM_DEVREADWRITE8("pit", pit68230_device, read, write, 0x00ff)
- AM_RANGE (0xf00000, 0xf7ffff) AM_ROM /* System EPROM Area 32Kb DEBUGGER supplied */
+void vme_fcisio1_card_device::fcisio1_mem(address_map &map)
+{
+ map.unmap_value_high();
+ map(0x000000, 0x01ffff).ram(); /* SRAM */
+ map(0x000000, 0x000007).rom().r(this, FUNC(vme_fcisio1_card_device::bootvect_r)); /* Vectors mapped from System EPROM */
+ map(0xe00000, 0xe001ff).rw("duscc0", FUNC(duscc68562_device::read), FUNC(duscc68562_device::write)).umask16(0x00ff);
+ map(0xe20000, 0xe201ff).rw("duscc1", FUNC(duscc68562_device::read), FUNC(duscc68562_device::write)).umask16(0x00ff);
+ map(0xe40000, 0xe401ff).rw("duscc2", FUNC(duscc68562_device::read), FUNC(duscc68562_device::write)).umask16(0x00ff);
+ map(0xe60000, 0xe601ff).rw("duscc3", FUNC(duscc68562_device::read), FUNC(duscc68562_device::write)).umask16(0x00ff);
+ map(0xe80000, 0xe80dff).rw("pit", FUNC(pit68230_device::read), FUNC(pit68230_device::write)).umask16(0x00ff);
+ map(0xf00000, 0xf7ffff).rom(); /* System EPROM Area 32Kb DEBUGGER supplied */
// AM_RANGE (0xc40000, 0xc800ff) AM_READWRITE8 (not_implemented_r, not_implemented_w, 0xffff) /* Dummy mapping af address area to display message */
-ADDRESS_MAP_END
+}
/* ROM definitions */
ROM_START (fcisio1)
diff --git a/src/devices/bus/vme/vme_fcscsi.cpp b/src/devices/bus/vme/vme_fcscsi.cpp
index 7afe6fb2cee..11da7a16334 100644
--- a/src/devices/bus/vme/vme_fcscsi.cpp
+++ b/src/devices/bus/vme/vme_fcscsi.cpp
@@ -185,19 +185,20 @@ DEFINE_DEVICE_TYPE(VME_FCSCSI1, vme_fcscsi1_card_device, "fcscsi1", "Force Compu
#define CPU_CRYSTAL XTAL(20'000'000) /* Jauch */
#define PIT_CRYSTAL XTAL(16'000'000) /* Jauch */
-ADDRESS_MAP_START(vme_fcscsi1_card_device::fcscsi1_mem)
- ADDRESS_MAP_UNMAP_HIGH
- AM_RANGE (0x000000, 0x000007) AM_ROM AM_READ (bootvect_r) /* Vectors mapped from System EPROM */
- AM_RANGE (0x000008, 0x001fff) AM_RAM /* SRAM */
- AM_RANGE (0x002000, 0x01ffff) AM_RAM /* Dual Ported RAM */
- AM_RANGE (0xe00000, 0xe7ffff) AM_ROM /* System EPROM Area 32Kb DEBUGGER supplied */
- AM_RANGE (0xd00000, 0xd0003f) AM_DEVREADWRITE8 ("pit", pit68230_device, read, write, 0x00ff)
+void vme_fcscsi1_card_device::fcscsi1_mem(address_map &map)
+{
+ map.unmap_value_high();
+ map(0x000000, 0x000007).rom().r(this, FUNC(vme_fcscsi1_card_device::bootvect_r)); /* Vectors mapped from System EPROM */
+ map(0x000008, 0x001fff).ram(); /* SRAM */
+ map(0x002000, 0x01ffff).ram(); /* Dual Ported RAM */
+ map(0xe00000, 0xe7ffff).rom(); /* System EPROM Area 32Kb DEBUGGER supplied */
+ map(0xd00000, 0xd0003f).rw("pit", FUNC(pit68230_device::read), FUNC(pit68230_device::write)).umask16(0x00ff);
// AM_RANGE (0xc40000, 0xc4001f) AM_DEVREADWRITE8("scsi", ncr5386_device, read, write, 0x00ff) /* SCSI Controller interface - device support not yet available*/
- AM_RANGE (0xc40000, 0xc4001f) AM_READWRITE8 (scsi_r, scsi_w, 0x00ff)
- AM_RANGE (0xc80000, 0xc800ff) AM_DEVREADWRITE("mc68450", hd63450_device, read, write) /* DMA Controller interface */
- AM_RANGE (0xcc0000, 0xcc0007) AM_DEVREADWRITE8("fdc", wd1772_device, read, write, 0x00ff) /* Floppy Controller interface */
- AM_RANGE (0xcc0008, 0xcc0009) AM_READWRITE8 (tcr_r, tcr_w, 0x00ff) /* The Control Register, SCSI ID and FD drive select bits */
-ADDRESS_MAP_END
+ map(0xc40000, 0xc4001f).rw(this, FUNC(vme_fcscsi1_card_device::scsi_r), FUNC(vme_fcscsi1_card_device::scsi_w)).umask16(0x00ff);
+ map(0xc80000, 0xc800ff).rw("mc68450", FUNC(hd63450_device::read), FUNC(hd63450_device::write)); /* DMA Controller interface */
+ map(0xcc0000, 0xcc0007).rw("fdc", FUNC(wd1772_device::read), FUNC(wd1772_device::write)).umask16(0x00ff); /* Floppy Controller interface */
+ map(0xcc0009, 0xcc0009).rw(this, FUNC(vme_fcscsi1_card_device::tcr_r), FUNC(vme_fcscsi1_card_device::tcr_w)); /* The Control Register, SCSI ID and FD drive select bits */
+}
FLOPPY_FORMATS_MEMBER( vme_fcscsi1_card_device::floppy_formats )
diff --git a/src/devices/bus/vme/vme_hcpu30.cpp b/src/devices/bus/vme/vme_hcpu30.cpp
index 1a7d3d6ea59..1e2818f2623 100644
--- a/src/devices/bus/vme/vme_hcpu30.cpp
+++ b/src/devices/bus/vme/vme_hcpu30.cpp
@@ -53,22 +53,23 @@
DEFINE_DEVICE_TYPE(VME_HCPU30, vme_hcpu30_card_device, "hcpu30", "Besta HCPU30 CPU board")
-ADDRESS_MAP_START(vme_hcpu30_card_device::hcpu30_mem)
- AM_RANGE(0x00000000, 0x00000007) AM_RAM AM_WRITE(bootvect_w) /* After first write we act as RAM */
- AM_RANGE(0x00000000, 0x00000007) AM_ROM AM_READ(bootvect_r) /* ROM mirror just during reset */
- AM_RANGE(0x00000008, 0x001fffff) AM_RAM // local bus DRAM, 4MB
- AM_RANGE(0x00200000, 0x00201fff) AM_RAM // AM_SHARE("iocpu")
- AM_RANGE(0xff000000, 0xff007fff) AM_ROM AM_MIRROR(0x8000) AM_REGION("user1", 0)
- AM_RANGE(0xff020000, 0xff027fff) AM_RAM AM_MIRROR(0x8000) // SRAM 32KB
- AM_RANGE(0xffff8000, 0xffff8fff) AM_UNMAP // shared memory with iocpu
- AM_RANGE(0xffff9000, 0xffff9fff) AM_RAM // SRAM, optional: battery-backed
- AM_RANGE(0xfffff100, 0xfffff11f) AM_UNMAP // VME bus configuration (accessed after DIP switch read)
- AM_RANGE(0xfffff120, 0xfffff123) AM_READ_PORT("SA1")
- AM_RANGE(0xfffff200, 0xfffff2ff) AM_UNMAP
- AM_RANGE(0xfffff300, 0xfffff3ff) AM_DEVREADWRITE8("duscc", duscc68562_device, read, write, 0xffffffff)
- AM_RANGE(0xfffff600, 0xfffff6ff) AM_UNMAP
- AM_RANGE(0xfffff700, 0xfffff7ff) AM_UNMAP
-ADDRESS_MAP_END
+void vme_hcpu30_card_device::hcpu30_mem(address_map &map)
+{
+ map(0x00000000, 0x00000007).ram().w(this, FUNC(vme_hcpu30_card_device::bootvect_w)); /* After first write we act as RAM */
+ map(0x00000000, 0x00000007).rom().r(this, FUNC(vme_hcpu30_card_device::bootvect_r)); /* ROM mirror just during reset */
+ map(0x00000008, 0x001fffff).ram(); // local bus DRAM, 4MB
+ map(0x00200000, 0x00201fff).ram(); // AM_SHARE("iocpu")
+ map(0xff000000, 0xff007fff).rom().mirror(0x8000).region("user1", 0);
+ map(0xff020000, 0xff027fff).ram().mirror(0x8000); // SRAM 32KB
+ map(0xffff8000, 0xffff8fff).unmaprw(); // shared memory with iocpu
+ map(0xffff9000, 0xffff9fff).ram(); // SRAM, optional: battery-backed
+ map(0xfffff100, 0xfffff11f).unmaprw(); // VME bus configuration (accessed after DIP switch read)
+ map(0xfffff120, 0xfffff123).portr("SA1");
+ map(0xfffff200, 0xfffff2ff).unmaprw();
+ map(0xfffff300, 0xfffff3ff).rw("duscc", FUNC(duscc68562_device::read), FUNC(duscc68562_device::write));
+ map(0xfffff600, 0xfffff6ff).unmaprw();
+ map(0xfffff700, 0xfffff7ff).unmaprw();
+}
static INPUT_PORTS_START(hcpu30)
PORT_START("SA1")
diff --git a/src/devices/bus/vme/vme_mvme350.cpp b/src/devices/bus/vme/vme_mvme350.cpp
index 043a9d8ae7e..8a98eb78e0b 100644
--- a/src/devices/bus/vme/vme_mvme350.cpp
+++ b/src/devices/bus/vme/vme_mvme350.cpp
@@ -164,19 +164,20 @@ DEFINE_DEVICE_TYPE(VME_MVME350, vme_mvme350_card_device, "mvme350", "Motorola MV
#define MVME350_CPU_TAG "mvme350_cpu"
#define MVME350_ROM "mvme350_rom"
-ADDRESS_MAP_START(vme_mvme350_card_device::mvme350_mem)
- ADDRESS_MAP_UNMAP_HIGH
- AM_RANGE(0x000000, 0x01ffff) AM_ROM AM_REGION(MVME350_ROM, 0)
- AM_RANGE(0x020000, 0x03ffff) AM_RAM
+void vme_mvme350_card_device::mvme350_mem(address_map &map)
+{
+ map.unmap_value_high();
+ map(0x000000, 0x01ffff).rom().region(MVME350_ROM, 0);
+ map(0x020000, 0x03ffff).ram();
#if 0
- AM_RANGE(0x040000, 0x040035) AM_DEVREADWRITE8("pit", pit68230_device, read, write, 0x00ff) /* PIT ?*/
- AM_RANGE(0x060000, 0x06001f) AM_RAM /* Area is cleared on start */
- AM_RANGE(0x080000, 0x080035) AM_DEVREADWRITE8("pit", pit68230_device, read, write, 0x00ff) /* PIT ?*/
+ map(0x040000, 0x040035).rw("pit", FUNC(pit68230_device::read), FUNC(pit68230_device::write)).umask16(0x00ff); /* PIT ?*/
+ map(0x060000, 0x06001f).ram(); /* Area is cleared on start */
+ map(0x080000, 0x080035).rw("pit", FUNC(pit68230_device::read), FUNC(pit68230_device::write)).umask16(0x00ff); /* PIT ?*/
#endif
//AM_RANGE(0x100000, 0xfeffff) AM_READWRITE(vme_a24_r, vme_a24_w) /* VMEbus Rev B addresses (24 bits) - not verified */
//AM_RANGE(0xff0000, 0xffffff) AM_READWRITE(vme_a16_r, vme_a16_w) /* VMEbus Rev B addresses (16 bits) - not verified */
-ADDRESS_MAP_END
+}
ROM_START( mvme350 )
ROM_REGION (0x20000, MVME350_ROM, 0)
diff --git a/src/devices/bus/wangpc/rtc.cpp b/src/devices/bus/wangpc/rtc.cpp
index eb646527d3f..6fb20379250 100644
--- a/src/devices/bus/wangpc/rtc.cpp
+++ b/src/devices/bus/wangpc/rtc.cpp
@@ -56,35 +56,37 @@ const tiny_rom_entry *wangpc_rtc_device::device_rom_region() const
// ADDRESS_MAP( wangpc_rtc_mem )
//-------------------------------------------------
-ADDRESS_MAP_START(wangpc_rtc_device::wangpc_rtc_mem)
- AM_RANGE(0x0000, 0x0fff) AM_ROM AM_REGION(Z80_TAG, 0)
- AM_RANGE(0x1000, 0xffff) AM_RAM
-ADDRESS_MAP_END
+void wangpc_rtc_device::wangpc_rtc_mem(address_map &map)
+{
+ map(0x0000, 0x0fff).rom().region(Z80_TAG, 0);
+ map(0x1000, 0xffff).ram();
+}
//-------------------------------------------------
// ADDRESS_MAP( wangpc_rtc_io )
//-------------------------------------------------
-ADDRESS_MAP_START(wangpc_rtc_device::wangpc_rtc_io)
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x03) AM_DEVREADWRITE(Z80SIO_TAG, z80sio0_device, cd_ba_r, cd_ba_w)
- AM_RANGE(0x10, 0x1f) AM_DEVREADWRITE(AM9517A_TAG, am9517a_device, read, write)
- AM_RANGE(0x20, 0x23) AM_DEVREADWRITE(Z80CTC_0_TAG, z80ctc_device, read, write)
- AM_RANGE(0x30, 0x30) //AM_WRITE(clear_char_w)
- AM_RANGE(0x31, 0x31) //AM_WRITE(set_char_w)
- AM_RANGE(0x40, 0x40) AM_READ_PORT("SW1") //AM_WRITE(control_w)
- AM_RANGE(0x44, 0x44) //AM_READ(i8086_status_r) AM_WRITE(reset_w)
- AM_RANGE(0x48, 0x48) //AM_WRITE(dte_ready_w)
- AM_RANGE(0x4c, 0x4c) //AM_READWRITE(8232_acu_r, 8232_acu_w)
- AM_RANGE(0x50, 0x50) //AM_READ(outbound_data_r)
- AM_RANGE(0x51, 0x52) //AM_WRITE(status_w)
- AM_RANGE(0x54, 0x54) //AM_WRITE(enable_inbound_data_w)
- AM_RANGE(0x51, 0x52) //AM_WRITE(inbound_data_w)
- AM_RANGE(0x60, 0x63) AM_DEVREADWRITE(Z80CTC_1_TAG, z80ctc_device, read, write)
- AM_RANGE(0x70, 0x70) //AM_READWRITE(led_toggle_r, odd_parity_w)
- AM_RANGE(0x71, 0x71) //AM_WRITE(even_parity_w)
-ADDRESS_MAP_END
+void wangpc_rtc_device::wangpc_rtc_io(address_map &map)
+{
+ map.global_mask(0xff);
+ map(0x00, 0x03).rw(Z80SIO_TAG, FUNC(z80sio0_device::cd_ba_r), FUNC(z80sio0_device::cd_ba_w));
+ map(0x10, 0x1f).rw(AM9517A_TAG, FUNC(am9517a_device::read), FUNC(am9517a_device::write));
+ map(0x20, 0x23).rw(Z80CTC_0_TAG, FUNC(z80ctc_device::read), FUNC(z80ctc_device::write));
+ map(0x30, 0x30); //AM_WRITE(clear_char_w)
+ map(0x31, 0x31); //AM_WRITE(set_char_w)
+ map(0x40, 0x40).portr("SW1"); //AM_WRITE(control_w)
+ map(0x44, 0x44); //AM_READ(i8086_status_r) AM_WRITE(reset_w)
+ map(0x48, 0x48); //AM_WRITE(dte_ready_w)
+ map(0x4c, 0x4c); //AM_READWRITE(8232_acu_r, 8232_acu_w)
+ map(0x50, 0x50); //AM_READ(outbound_data_r)
+ map(0x51, 0x52); //AM_WRITE(status_w)
+ map(0x54, 0x54); //AM_WRITE(enable_inbound_data_w)
+ map(0x51, 0x52); //AM_WRITE(inbound_data_w)
+ map(0x60, 0x63).rw(Z80CTC_1_TAG, FUNC(z80ctc_device::read), FUNC(z80ctc_device::write));
+ map(0x70, 0x70); //AM_READWRITE(led_toggle_r, odd_parity_w)
+ map(0x71, 0x71); //AM_WRITE(even_parity_w)
+}
//-------------------------------------------------
diff --git a/src/devices/bus/wangpc/tig.cpp b/src/devices/bus/wangpc/tig.cpp
index 700024c3fc2..62ef4120320 100644
--- a/src/devices/bus/wangpc/tig.cpp
+++ b/src/devices/bus/wangpc/tig.cpp
@@ -83,11 +83,12 @@ const tiny_rom_entry *wangpc_tig_device::device_rom_region() const
// UPD7220_INTERFACE( hgdc0_intf )
//-------------------------------------------------
-ADDRESS_MAP_START(wangpc_tig_device::upd7220_0_map)
- ADDRESS_MAP_GLOBAL_MASK(0x7fff)
- AM_RANGE(0x0000, 0x0fff) AM_MIRROR(0x1000) AM_RAM // frame buffer
- AM_RANGE(0x4000, 0x7fff) AM_RAM // font memory
-ADDRESS_MAP_END
+void wangpc_tig_device::upd7220_0_map(address_map &map)
+{
+ map.global_mask(0x7fff);
+ map(0x0000, 0x0fff).mirror(0x1000).ram(); // frame buffer
+ map(0x4000, 0x7fff).ram(); // font memory
+}
UPD7220_DRAW_TEXT_LINE_MEMBER( wangpc_tig_device::hgdc_draw_text )
{
@@ -98,10 +99,11 @@ UPD7220_DRAW_TEXT_LINE_MEMBER( wangpc_tig_device::hgdc_draw_text )
// UPD7220_INTERFACE( hgdc1_intf )
//-------------------------------------------------
-ADDRESS_MAP_START(wangpc_tig_device::upd7220_1_map)
- ADDRESS_MAP_GLOBAL_MASK(0xffff)
- AM_RANGE(0x0000, 0xffff) AM_RAM // graphics memory
-ADDRESS_MAP_END
+void wangpc_tig_device::upd7220_1_map(address_map &map)
+{
+ map.global_mask(0xffff);
+ map(0x0000, 0xffff).ram(); // graphics memory
+}
UPD7220_DISPLAY_PIXELS_MEMBER( wangpc_tig_device::hgdc_display_pixels )
{
diff --git a/src/devices/bus/wangpc/wdc.cpp b/src/devices/bus/wangpc/wdc.cpp
index 5f4e67d48d2..9408b8d07f2 100644
--- a/src/devices/bus/wangpc/wdc.cpp
+++ b/src/devices/bus/wangpc/wdc.cpp
@@ -64,26 +64,28 @@ const tiny_rom_entry *wangpc_wdc_device::device_rom_region() const
// ADDRESS_MAP( wangpc_wdc_mem )
//-------------------------------------------------
-ADDRESS_MAP_START(wangpc_wdc_device::wangpc_wdc_mem)
- AM_RANGE(0x0000, 0x0fff) AM_ROM AM_REGION(Z80_TAG, 0)
- AM_RANGE(0x1000, 0x17ff) AM_RAM
- AM_RANGE(0x2000, 0x27ff) AM_RAM
-ADDRESS_MAP_END
+void wangpc_wdc_device::wangpc_wdc_mem(address_map &map)
+{
+ map(0x0000, 0x0fff).rom().region(Z80_TAG, 0);
+ map(0x1000, 0x17ff).ram();
+ map(0x2000, 0x27ff).ram();
+}
//-------------------------------------------------
// ADDRESS_MAP( wangpc_wdc_io )
//-------------------------------------------------
-ADDRESS_MAP_START(wangpc_wdc_device::wangpc_wdc_io)
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x01, 0x01) AM_READ(port_r)
- AM_RANGE(0x03, 0x03) AM_WRITE(status_w)
- AM_RANGE(0x10, 0x10) AM_READWRITE(ctc_ch0_r, ctc_ch0_w)
- AM_RANGE(0x14, 0x14) AM_READWRITE(ctc_ch1_r, ctc_ch1_w)
- AM_RANGE(0x18, 0x18) AM_READWRITE(ctc_ch2_r, ctc_ch2_w)
- AM_RANGE(0x1c, 0x1c) AM_READWRITE(ctc_ch3_r, ctc_ch3_w)
-ADDRESS_MAP_END
+void wangpc_wdc_device::wangpc_wdc_io(address_map &map)
+{
+ map.global_mask(0xff);
+ map(0x01, 0x01).r(this, FUNC(wangpc_wdc_device::port_r));
+ map(0x03, 0x03).w(this, FUNC(wangpc_wdc_device::status_w));
+ map(0x10, 0x10).rw(this, FUNC(wangpc_wdc_device::ctc_ch0_r), FUNC(wangpc_wdc_device::ctc_ch0_w));
+ map(0x14, 0x14).rw(this, FUNC(wangpc_wdc_device::ctc_ch1_r), FUNC(wangpc_wdc_device::ctc_ch1_w));
+ map(0x18, 0x18).rw(this, FUNC(wangpc_wdc_device::ctc_ch2_r), FUNC(wangpc_wdc_device::ctc_ch2_w));
+ map(0x1c, 0x1c).rw(this, FUNC(wangpc_wdc_device::ctc_ch3_r), FUNC(wangpc_wdc_device::ctc_ch3_w));
+}
//-------------------------------------------------
diff --git a/src/devices/machine/ie15.cpp b/src/devices/machine/ie15.cpp
index 62eb2f2a15e..8449a72c53e 100644
--- a/src/devices/machine/ie15.cpp
+++ b/src/devices/machine/ie15.cpp
@@ -332,32 +332,34 @@ WRITE8_MEMBER(ie15_device::flag_w)
}
}
-ADDRESS_MAP_START(ie15_device::ie15_mem)
- ADDRESS_MAP_UNMAP_HIGH
- AM_RANGE(0x0000, 0x0fff) AM_ROM
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(ie15_device::ie15_io)
- ADDRESS_MAP_UNMAP_HIGH
- AM_RANGE(000, 000) AM_READWRITE(mem_r, mem_w) // 00h W: memory request, R: memory data [6.1.2.2]
- AM_RANGE(001, 001) AM_READ(serial_rx_ready_r) AM_WRITENOP // 01h W: memory latch [6.1.2.2]
- AM_RANGE(002, 002) AM_WRITE(mem_addr_hi_w) // 02h W: memory address high [6.1.2.2]
- AM_RANGE(003, 003) AM_WRITE(mem_addr_lo_w) // 03h W: memory address low [6.1.2.2]
- AM_RANGE(004, 004) AM_WRITE(mem_addr_inc_w) // 04h W: memory address counter + [6.1.2.2]
- AM_RANGE(005, 005) AM_WRITE(mem_addr_dec_w) // 05h W: memory address counter - [6.1.2.2]
- AM_RANGE(006, 006) AM_READWRITE(serial_r, serial_w) // 06h W: serial port data [6.1.5.4]
+void ie15_device::ie15_mem(address_map &map)
+{
+ map.unmap_value_high();
+ map(0x0000, 0x0fff).rom();
+}
+
+void ie15_device::ie15_io(address_map &map)
+{
+ map.unmap_value_high();
+ map(000, 000).rw(this, FUNC(ie15_device::mem_r), FUNC(ie15_device::mem_w)); // 00h W: memory request, R: memory data [6.1.2.2]
+ map(001, 001).r(this, FUNC(ie15_device::serial_rx_ready_r)).nopw(); // 01h W: memory latch [6.1.2.2]
+ map(002, 002).w(this, FUNC(ie15_device::mem_addr_hi_w)); // 02h W: memory address high [6.1.2.2]
+ map(003, 003).w(this, FUNC(ie15_device::mem_addr_lo_w)); // 03h W: memory address low [6.1.2.2]
+ map(004, 004).w(this, FUNC(ie15_device::mem_addr_inc_w)); // 04h W: memory address counter + [6.1.2.2]
+ map(005, 005).w(this, FUNC(ie15_device::mem_addr_dec_w)); // 05h W: memory address counter - [6.1.2.2]
+ map(006, 006).rw(this, FUNC(ie15_device::serial_r), FUNC(ie15_device::serial_w)); // 06h W: serial port data [6.1.5.4]
// port 7 is handled in cpu core
- AM_RANGE(010, 010) AM_READWRITE(serial_tx_ready_r, beep_w) // 08h W: speaker control [6.1.5.4]
- AM_RANGE(011, 011) AM_READ(kb_r) // 09h R: keyboard data [6.1.5.2]
- AM_RANGE(012, 012) AM_READ(kb_s_red_r) // 0Ah I: keyboard mode "RED" [6.1.5.2]
- AM_RANGE(013, 013) AM_READ(kb_ready_r) // 0Bh R: keyboard data ready [6.1.5.2]
- AM_RANGE(014, 014) AM_READWRITE(kb_s_sdv_r, serial_speed_w) // 0Ch W: serial port speed [6.1.3.1], R: keyboard mode "SDV" [6.1.5.2]
- AM_RANGE(015, 015) AM_READWRITE(kb_s_dk_r, kb_ready_w) // 0Dh I: keyboard mode "DK" [6.1.5.2]
- AM_RANGE(016, 016) AM_READ(kb_s_dupl_r) // 0Eh I: keyboard mode "DUPL" [6.1.5.2]
- AM_RANGE(017, 017) AM_READ(kb_s_lin_r) // 0Fh I: keyboard mode "LIN" [6.1.5.2]
+ map(010, 010).rw(this, FUNC(ie15_device::serial_tx_ready_r), FUNC(ie15_device::beep_w)); // 08h W: speaker control [6.1.5.4]
+ map(011, 011).r(this, FUNC(ie15_device::kb_r)); // 09h R: keyboard data [6.1.5.2]
+ map(012, 012).r(this, FUNC(ie15_device::kb_s_red_r)); // 0Ah I: keyboard mode "RED" [6.1.5.2]
+ map(013, 013).r(this, FUNC(ie15_device::kb_ready_r)); // 0Bh R: keyboard data ready [6.1.5.2]
+ map(014, 014).rw(this, FUNC(ie15_device::kb_s_sdv_r), FUNC(ie15_device::serial_speed_w)); // 0Ch W: serial port speed [6.1.3.1], R: keyboard mode "SDV" [6.1.5.2]
+ map(015, 015).rw(this, FUNC(ie15_device::kb_s_dk_r), FUNC(ie15_device::kb_ready_w)); // 0Dh I: keyboard mode "DK" [6.1.5.2]
+ map(016, 016).r(this, FUNC(ie15_device::kb_s_dupl_r)); // 0Eh I: keyboard mode "DUPL" [6.1.5.2]
+ map(017, 017).r(this, FUNC(ie15_device::kb_s_lin_r)); // 0Fh I: keyboard mode "LIN" [6.1.5.2]
// simulation of flag registers
- AM_RANGE(020, 027) AM_READWRITE(flag_r, flag_w)
-ADDRESS_MAP_END
+ map(020, 027).rw(this, FUNC(ie15_device::flag_r), FUNC(ie15_device::flag_w));
+}
/* Input ports */
INPUT_PORTS_START( ie15 )
diff --git a/src/devices/machine/ldpr8210.cpp b/src/devices/machine/ldpr8210.cpp
index 58ab311d5ff..76304a9b5d2 100644
--- a/src/devices/machine/ldpr8210.cpp
+++ b/src/devices/machine/ldpr8210.cpp
@@ -148,9 +148,10 @@ static const uint8_t text_bitmap[0x40][7] =
// PR-8210 ROM AND MACHINE INTERFACES
//**************************************************************************
-ADDRESS_MAP_START(pioneer_pr8210_device::pr8210_portmap)
- AM_RANGE(0x00, 0xff) AM_READWRITE(i8049_pia_r, i8049_pia_w)
-ADDRESS_MAP_END
+void pioneer_pr8210_device::pr8210_portmap(address_map &map)
+{
+ map(0x00, 0xff).rw(this, FUNC(pioneer_pr8210_device::i8049_pia_r), FUNC(pioneer_pr8210_device::i8049_pia_w));
+}
ROM_START( pr8210 )
ROM_REGION( 0x800, "pr8210", 0 )
@@ -837,9 +838,10 @@ void pioneer_pr8210_device::overlay_draw_char(bitmap_yuy16 &bitmap, uint8_t ch,
// SIMUTREK ROM AND MACHINE INTERFACES
//**************************************************************************
-ADDRESS_MAP_START(simutrek_special_device::simutrek_portmap)
- AM_RANGE(0x00, 0xff) AM_READ(i8748_data_r)
-ADDRESS_MAP_END
+void simutrek_special_device::simutrek_portmap(address_map &map)
+{
+ map(0x00, 0xff).r(this, FUNC(simutrek_special_device::i8748_data_r));
+}
ROM_START( simutrek )
diff --git a/src/devices/machine/ldv1000.cpp b/src/devices/machine/ldv1000.cpp
index 44624f1a618..50da39d2303 100644
--- a/src/devices/machine/ldv1000.cpp
+++ b/src/devices/machine/ldv1000.cpp
@@ -60,21 +60,23 @@ DEFINE_DEVICE_TYPE(PIONEER_LDV1000, pioneer_ldv1000_device, "ldv1000", "Pioneer
// LD-V1000 ROM AND MACHINE INTERFACES
//**************************************************************************
-ADDRESS_MAP_START(pioneer_ldv1000_device::ldv1000_map)
- AM_RANGE(0x0000, 0x1fff) AM_MIRROR(0x6000) AM_ROM
- AM_RANGE(0x8000, 0x87ff) AM_MIRROR(0x3800) AM_RAM
- AM_RANGE(0xc000, 0xc003) AM_MIRROR(0x1ff0) AM_DEVREADWRITE("ldvppi0", i8255_device, read, write)
- AM_RANGE(0xc004, 0xc007) AM_MIRROR(0x1ff0) AM_DEVREADWRITE("ldvppi1", i8255_device, read, write)
-ADDRESS_MAP_END
-
-
-ADDRESS_MAP_START(pioneer_ldv1000_device::ldv1000_portmap)
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x07) AM_MIRROR(0x38) AM_READWRITE(z80_decoder_display_port_r, z80_decoder_display_port_w)
- AM_RANGE(0x40, 0x40) AM_MIRROR(0x3f) AM_READ(z80_controller_r)
- AM_RANGE(0x80, 0x80) AM_MIRROR(0x3f) AM_WRITE(z80_controller_w)
- AM_RANGE(0xc0, 0xc3) AM_MIRROR(0x3c) AM_DEVREADWRITE("ldvctc", z80ctc_device, read, write)
-ADDRESS_MAP_END
+void pioneer_ldv1000_device::ldv1000_map(address_map &map)
+{
+ map(0x0000, 0x1fff).mirror(0x6000).rom();
+ map(0x8000, 0x87ff).mirror(0x3800).ram();
+ map(0xc000, 0xc003).mirror(0x1ff0).rw("ldvppi0", FUNC(i8255_device::read), FUNC(i8255_device::write));
+ map(0xc004, 0xc007).mirror(0x1ff0).rw("ldvppi1", FUNC(i8255_device::read), FUNC(i8255_device::write));
+}
+
+
+void pioneer_ldv1000_device::ldv1000_portmap(address_map &map)
+{
+ map.global_mask(0xff);
+ map(0x00, 0x07).mirror(0x38).rw(this, FUNC(pioneer_ldv1000_device::z80_decoder_display_port_r), FUNC(pioneer_ldv1000_device::z80_decoder_display_port_w));
+ map(0x40, 0x40).mirror(0x3f).r(this, FUNC(pioneer_ldv1000_device::z80_controller_r));
+ map(0x80, 0x80).mirror(0x3f).w(this, FUNC(pioneer_ldv1000_device::z80_controller_w));
+ map(0xc0, 0xc3).mirror(0x3c).rw("ldvctc", FUNC(z80ctc_device::read), FUNC(z80ctc_device::write));
+}
static const z80_daisy_config daisy_chain[] =
diff --git a/src/devices/machine/ldvp931.cpp b/src/devices/machine/ldvp931.cpp
index 262993c826d..e0d96190ca3 100644
--- a/src/devices/machine/ldvp931.cpp
+++ b/src/devices/machine/ldvp931.cpp
@@ -53,12 +53,13 @@ DEFINE_DEVICE_TYPE(PHILLIPS_22VP931, phillips_22vp931_device, "22vp931", "Philli
// 22VP931 ROM AND MACHINE INTERFACES
//**************************************************************************
-ADDRESS_MAP_START(phillips_22vp931_device::vp931_portmap)
- AM_RANGE(0x00, 0x00) AM_MIRROR(0xcf) AM_READWRITE(i8049_keypad_r, i8049_output0_w)
- AM_RANGE(0x10, 0x10) AM_MIRROR(0xcf) AM_READWRITE(i8049_unknown_r, i8049_output1_w)
- AM_RANGE(0x20, 0x20) AM_MIRROR(0xcf) AM_READWRITE(i8049_datic_r, i8049_lcd_w)
- AM_RANGE(0x30, 0x30) AM_MIRROR(0xcf) AM_READWRITE(i8049_from_controller_r, i8049_to_controller_w)
-ADDRESS_MAP_END
+void phillips_22vp931_device::vp931_portmap(address_map &map)
+{
+ map(0x00, 0x00).mirror(0xcf).rw(this, FUNC(phillips_22vp931_device::i8049_keypad_r), FUNC(phillips_22vp931_device::i8049_output0_w));
+ map(0x10, 0x10).mirror(0xcf).rw(this, FUNC(phillips_22vp931_device::i8049_unknown_r), FUNC(phillips_22vp931_device::i8049_output1_w));
+ map(0x20, 0x20).mirror(0xcf).rw(this, FUNC(phillips_22vp931_device::i8049_datic_r), FUNC(phillips_22vp931_device::i8049_lcd_w));
+ map(0x30, 0x30).mirror(0xcf).rw(this, FUNC(phillips_22vp931_device::i8049_from_controller_r), FUNC(phillips_22vp931_device::i8049_to_controller_w));
+}
ROM_START( vp931 )
diff --git a/src/devices/machine/mpu401.cpp b/src/devices/machine/mpu401.cpp
index 16849816535..37f4c6c23a2 100644
--- a/src/devices/machine/mpu401.cpp
+++ b/src/devices/machine/mpu401.cpp
@@ -57,18 +57,20 @@
#define STAT_TX_FULL (0x40) // indicates the PC has written a new byte we haven't read yet
#define STAT_RX_EMPTY (0x80) // indicates we've written a new byte the PC hasn't read yet
-ADDRESS_MAP_START(mpu401_device::mpu401_map)
- AM_RANGE(0x0000, 0x001f) AM_READWRITE(regs_mode2_r, regs_mode2_w)
- AM_RANGE(0x0020, 0x0021) AM_READWRITE(asic_r, asic_w)
- AM_RANGE(0x0080, 0x00ff) AM_RAM // on-chip RAM
- AM_RANGE(0x0800, 0x0fff) AM_RAM // external RAM
- AM_RANGE(0xf000, 0xffff) AM_ROM AM_REGION(ROM_TAG, 0)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(mpu401_device::mpu401_io_map)
- AM_RANGE(M6801_PORT1, M6801_PORT1) AM_READWRITE(port1_r, port1_w)
- AM_RANGE(M6801_PORT2, M6801_PORT2) AM_READWRITE(port2_r, port2_w)
-ADDRESS_MAP_END
+void mpu401_device::mpu401_map(address_map &map)
+{
+ map(0x0000, 0x001f).rw(this, FUNC(mpu401_device::regs_mode2_r), FUNC(mpu401_device::regs_mode2_w));
+ map(0x0020, 0x0021).rw(this, FUNC(mpu401_device::asic_r), FUNC(mpu401_device::asic_w));
+ map(0x0080, 0x00ff).ram(); // on-chip RAM
+ map(0x0800, 0x0fff).ram(); // external RAM
+ map(0xf000, 0xffff).rom().region(ROM_TAG, 0);
+}
+
+void mpu401_device::mpu401_io_map(address_map &map)
+{
+ map(M6801_PORT1, M6801_PORT1).rw(this, FUNC(mpu401_device::port1_r), FUNC(mpu401_device::port1_w));
+ map(M6801_PORT2, M6801_PORT2).rw(this, FUNC(mpu401_device::port2_r), FUNC(mpu401_device::port2_w));
+}
ROM_START( mpu401 )
ROM_REGION(0x1000, ROM_TAG, 0)
diff --git a/src/devices/machine/pdc.cpp b/src/devices/machine/pdc.cpp
index 220ea0cc881..e09f9ff1777 100644
--- a/src/devices/machine/pdc.cpp
+++ b/src/devices/machine/pdc.cpp
@@ -137,28 +137,30 @@ const tiny_rom_entry *pdc_device::device_rom_region() const
// ADDRESS_MAP( pdc_mem )
//-------------------------------------------------
-ADDRESS_MAP_START(pdc_device::pdc_mem)
- AM_RANGE(0x0000, 0x3fff) AM_ROM AM_REGION("rom", 0)
- AM_RANGE(0x8000, 0x9FFF) AM_RAM AM_SHARE("pdc_ram") // HM6264ALP-12 SRAM 8KB
- AM_RANGE(0xC000, 0xC7FF) AM_RAM // HM6116P-2 SRAM 2KB
-ADDRESS_MAP_END
+void pdc_device::pdc_mem(address_map &map)
+{
+ map(0x0000, 0x3fff).rom().region("rom", 0);
+ map(0x8000, 0x9FFF).ram().share("pdc_ram"); // HM6264ALP-12 SRAM 8KB
+ map(0xC000, 0xC7FF).ram(); // HM6116P-2 SRAM 2KB
+}
//-------------------------------------------------
// ADDRESS_MAP( pdc_io )
//-------------------------------------------------
-ADDRESS_MAP_START(pdc_device::pdc_io)
- AM_RANGE(0x00, 0x07) AM_READWRITE(p0_7_r,p0_7_w) AM_MIRROR(0xFF00)
- AM_RANGE(0x21, 0x2F) AM_READWRITE(fdd_68k_r,fdd_68k_w) AM_MIRROR(0xFF00)
- AM_RANGE(0x38, 0x38) AM_READ(p38_r) AM_MIRROR(0xFF00) // Possibly UPD765 interrupt
- AM_RANGE(0x39, 0x39) AM_READ(p39_r) AM_MIRROR(0xFF00) // HDD related
- AM_RANGE(0x3c, 0x3c) AM_READ_PORT("SW2") AM_MIRROR(0xFF00) /* FDC Dipswitch */
- AM_RANGE(0x3d, 0x3d) AM_READ_PORT("SW1") AM_MIRROR(0xFF00) /* HDC Dipswitch */
- AM_RANGE(0x40, 0x41) AM_DEVREADWRITE(HDC_TAG, hdc9224_device,read,write) AM_MIRROR(0xFF00)
- AM_RANGE(0x42, 0x43) AM_DEVICE(FDC_TAG, upd765a_device, map) AM_MIRROR(0xFF00)
- AM_RANGE(0x50, 0x5f) AM_WRITE(p50_5f_w) AM_MIRROR(0xFF00)
- AM_RANGE(0x60, 0x6f) AM_DEVREADWRITE(FDCDMA_TAG,am9517a_device,read,write) AM_MIRROR(0xFF00)
-ADDRESS_MAP_END
+void pdc_device::pdc_io(address_map &map)
+{
+ map(0x00, 0x07).rw(this, FUNC(pdc_device::p0_7_r), FUNC(pdc_device::p0_7_w)).mirror(0xFF00);
+ map(0x21, 0x2F).rw(this, FUNC(pdc_device::fdd_68k_r), FUNC(pdc_device::fdd_68k_w)).mirror(0xFF00);
+ map(0x38, 0x38).r(this, FUNC(pdc_device::p38_r)).mirror(0xFF00); // Possibly UPD765 interrupt
+ map(0x39, 0x39).r(this, FUNC(pdc_device::p39_r)).mirror(0xFF00); // HDD related
+ map(0x3c, 0x3c).portr("SW2").mirror(0xFF00); /* FDC Dipswitch */
+ map(0x3d, 0x3d).portr("SW1").mirror(0xFF00); /* HDC Dipswitch */
+ map(0x40, 0x41).rw(HDC_TAG, FUNC(hdc9224_device::read), FUNC(hdc9224_device::write)).mirror(0xFF00);
+ map(0x42, 0x43).m(FDC_TAG, FUNC(upd765a_device::map)).mirror(0xFF00);
+ map(0x50, 0x5f).w(this, FUNC(pdc_device::p50_5f_w)).mirror(0xFF00);
+ map(0x60, 0x6f).rw(FDCDMA_TAG, FUNC(am9517a_device::read), FUNC(am9517a_device::write)).mirror(0xFF00);
+}
//-------------------------------------------------
// INPUT_PORTS_START( pdc )
diff --git a/src/devices/machine/smioc.cpp b/src/devices/machine/smioc.cpp
index d512f7d490c..8097594920b 100644
--- a/src/devices/machine/smioc.cpp
+++ b/src/devices/machine/smioc.cpp
@@ -99,15 +99,16 @@ const tiny_rom_entry *smioc_device::device_rom_region() const
// ADDRESS_MAP( smioc_mem )
//-------------------------------------------------
-ADDRESS_MAP_START(smioc_device::smioc_mem)
- AM_RANGE(0x00000, 0x07FFF) AM_RAM AM_SHARE("smioc_ram")
- AM_RANGE(0xC0080, 0xC008F) AM_DEVREADWRITE("dma8237_1",am9517a_device,read,write) // Probably RAM DMA
- AM_RANGE(0xC0090, 0xC009F) AM_DEVREADWRITE("dma8237_2",am9517a_device,read,write) // Serial DMA
- AM_RANGE(0xC00A0, 0xC00AF) AM_DEVREADWRITE("dma8237_3",am9517a_device,read,write) // Serial DMA
- AM_RANGE(0xC00B0, 0xC00BF) AM_DEVREADWRITE("dma8237_4",am9517a_device,read,write) // Serial DMA
- AM_RANGE(0xC00C0, 0xC00CF) AM_DEVREADWRITE("dma8237_5",am9517a_device,read,write) // Serial DMA
- AM_RANGE(0xF8000, 0xFFFFF) AM_ROM AM_REGION("rom", 0)
-ADDRESS_MAP_END
+void smioc_device::smioc_mem(address_map &map)
+{
+ map(0x00000, 0x07FFF).ram().share("smioc_ram");
+ map(0xC0080, 0xC008F).rw("dma8237_1", FUNC(am9517a_device::read), FUNC(am9517a_device::write)); // Probably RAM DMA
+ map(0xC0090, 0xC009F).rw("dma8237_2", FUNC(am9517a_device::read), FUNC(am9517a_device::write)); // Serial DMA
+ map(0xC00A0, 0xC00AF).rw("dma8237_3", FUNC(am9517a_device::read), FUNC(am9517a_device::write)); // Serial DMA
+ map(0xC00B0, 0xC00BF).rw("dma8237_4", FUNC(am9517a_device::read), FUNC(am9517a_device::write)); // Serial DMA
+ map(0xC00C0, 0xC00CF).rw("dma8237_5", FUNC(am9517a_device::read), FUNC(am9517a_device::write)); // Serial DMA
+ map(0xF8000, 0xFFFFF).rom().region("rom", 0);
+}
MACHINE_CONFIG_START(smioc_device::device_add_mconfig)
/* CPU - Intel 80C188 */
diff --git a/src/devices/sound/bsmt2000.cpp b/src/devices/sound/bsmt2000.cpp
index 1c300816099..b8c6dad0042 100644
--- a/src/devices/sound/bsmt2000.cpp
+++ b/src/devices/sound/bsmt2000.cpp
@@ -26,20 +26,22 @@ DEFINE_DEVICE_TYPE(BSMT2000, bsmt2000_device, "bsmt2000", "BSMT2000")
//**************************************************************************
// program map for the DSP (points to internal ROM)
-ADDRESS_MAP_START(bsmt2000_device::tms_program_map)
- ADDRESS_MAP_UNMAP_HIGH
- AM_RANGE(0x000, 0xfff) AM_ROM
-ADDRESS_MAP_END
+void bsmt2000_device::tms_program_map(address_map &map)
+{
+ map.unmap_value_high();
+ map(0x000, 0xfff).rom();
+}
// I/O map for the DSP
-ADDRESS_MAP_START(bsmt2000_device::tms_io_map)
- AM_RANGE(0, 0) AM_READWRITE(tms_register_r, tms_rom_addr_w)
- AM_RANGE(1, 1) AM_READWRITE(tms_data_r, tms_rom_bank_w)
- AM_RANGE(2, 2) AM_READ(tms_rom_r)
- AM_RANGE(3, 3) AM_WRITE(tms_left_w)
- AM_RANGE(7, 7) AM_WRITE(tms_right_w)
-ADDRESS_MAP_END
+void bsmt2000_device::tms_io_map(address_map &map)
+{
+ map(0, 0).rw(this, FUNC(bsmt2000_device::tms_register_r), FUNC(bsmt2000_device::tms_rom_addr_w));
+ map(1, 1).rw(this, FUNC(bsmt2000_device::tms_data_r), FUNC(bsmt2000_device::tms_rom_bank_w));
+ map(2, 2).r(this, FUNC(bsmt2000_device::tms_rom_r));
+ map(3, 3).w(this, FUNC(bsmt2000_device::tms_left_w));
+ map(7, 7).w(this, FUNC(bsmt2000_device::tms_right_w));
+}
// ROM definition for the BSMT2000 program ROM
diff --git a/src/devices/sound/qs1000.cpp b/src/devices/sound/qs1000.cpp
index 74f2b4b0161..487d37cd724 100644
--- a/src/devices/sound/qs1000.cpp
+++ b/src/devices/sound/qs1000.cpp
@@ -137,15 +137,17 @@ DEFINE_DEVICE_TYPE(QS1000, qs1000_device, "qs1000", "QS1000")
// GLOBAL VARIABLES
//**************************************************************************
-ADDRESS_MAP_START(qs1000_device::qs1000_prg_map)
- AM_RANGE(0x0000, 0x7fff) AM_ROM
-ADDRESS_MAP_END
+void qs1000_device::qs1000_prg_map(address_map &map)
+{
+ map(0x0000, 0x7fff).rom();
+}
-ADDRESS_MAP_START(qs1000_device::qs1000_io_map)
- AM_RANGE(0x0000, 0x00ff) AM_RAM
- AM_RANGE(0x0200, 0x0211) AM_WRITE(wave_w)
-ADDRESS_MAP_END
+void qs1000_device::qs1000_io_map(address_map &map)
+{
+ map(0x0000, 0x00ff).ram();
+ map(0x0200, 0x0211).w(this, FUNC(qs1000_device::wave_w));
+}
// ROM definition for the QS1000 internal program ROM
diff --git a/src/devices/sound/qsound.cpp b/src/devices/sound/qsound.cpp
index cda92b96f58..39fad698a72 100644
--- a/src/devices/sound/qsound.cpp
+++ b/src/devices/sound/qsound.cpp
@@ -40,9 +40,10 @@ DEFINE_DEVICE_TYPE(QSOUND, qsound_device, "qsound", "Q-Sound")
// chip decapped by siliconpr0n clearly shows 3x as much ROM as that, a total
// of 12288 words of internal ROM.
// The older DSP16 non-a part has 2048 words of ROM.
-ADDRESS_MAP_START(qsound_device::dsp16_program_map)
- AM_RANGE(0x0000, 0x2fff) AM_ROM
-ADDRESS_MAP_END
+void qsound_device::dsp16_program_map(address_map &map)
+{
+ map(0x0000, 0x2fff).rom();
+}
// data map for the DSP16A; again, Western Electric/AT&T expanded the size of
@@ -50,10 +51,11 @@ ADDRESS_MAP_END
// As originally released, the DSP16A had 1024 words of internal RAM,
// but this was expanded to 2048 words in the DL-1425 decap.
// The older DSP16 non-a part has 512 words of RAM.
-ADDRESS_MAP_START(qsound_device::dsp16_data_map)
- ADDRESS_MAP_UNMAP_HIGH
- AM_RANGE(0x0000, 0x07ff) AM_RAM
-ADDRESS_MAP_END
+void qsound_device::dsp16_data_map(address_map &map)
+{
+ map.unmap_value_high();
+ map(0x0000, 0x07ff).ram();
+}
// ROM definition for the Qsound program ROM