summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/altos8600.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/altos8600.cpp')
-rw-r--r--src/mame/drivers/altos8600.cpp101
1 files changed, 54 insertions, 47 deletions
diff --git a/src/mame/drivers/altos8600.cpp b/src/mame/drivers/altos8600.cpp
index fd7d1af0372..1912594c91c 100644
--- a/src/mame/drivers/altos8600.cpp
+++ b/src/mame/drivers/altos8600.cpp
@@ -665,53 +665,60 @@ IRQ_CALLBACK_MEMBER(altos8600_state::inta)
return m_pic1->acknowledge();
}
-ADDRESS_MAP_START(altos8600_state::cpu_mem)
- AM_RANGE(0x00000, 0xfffff) AM_READWRITE(cpuram_r, cpuram_w)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(altos8600_state::stack_mem)
- AM_RANGE(0x00000, 0xfffff) AM_READWRITE(stkram_r, stkram_w)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(altos8600_state::code_mem)
- AM_RANGE(0x00000, 0xfffff) AM_READWRITE(coderam_r, coderam_w)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(altos8600_state::extra_mem)
- AM_RANGE(0x00000, 0xfffff) AM_READWRITE(xtraram_r, xtraram_w)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(altos8600_state::cpu_io)
- AM_RANGE(0x0000, 0xffff) AM_READWRITE(cpuio_r, cpuio_w)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(altos8600_state::dmac_mem)
- AM_RANGE(0x00000, 0xfffff) AM_READWRITE(dmacram_r, dmacram_w)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(altos8600_state::dmac_io)
- AM_RANGE(0x0000, 0xffff) AM_READWRITE(nmi_r, nmi_w)
- AM_RANGE(0x0000, 0x0007) AM_READ(fault_r)
- AM_RANGE(0x0008, 0x000f) AM_WRITE(clear_w)
- AM_RANGE(0x0010, 0x0017) AM_READ(errlo_r)
- AM_RANGE(0x0018, 0x001f) AM_READ(errhi_r)
- AM_RANGE(0x0020, 0x0027) AM_READWRITE8(hd_r, hd_w, 0x00ff)
- AM_RANGE(0x0030, 0x0037) AM_WRITE(mode_w)
- AM_RANGE(0x0038, 0x003f) AM_WRITE8(cattn_w, 0xffff)
- AM_RANGE(0x0040, 0x0047) AM_DEVREADWRITE8("ppi", i8255_device, read, write, 0x00ff)
- AM_RANGE(0x0040, 0x0047) AM_DEVREADWRITE8("fd1797", fd1797_device, read, write, 0xff00)
- AM_RANGE(0x0048, 0x004f) AM_DEVREADWRITE8("uart8274", i8274_new_device, cd_ba_r, cd_ba_w, 0x00ff)
- AM_RANGE(0x0048, 0x004f) AM_DEVREADWRITE8("pit", pit8253_device, read, write, 0xff00)
- AM_RANGE(0x0050, 0x0057) AM_READWRITE8(romport_r, romport_w, 0xffff)
- AM_RANGE(0x0058, 0x005f) AM_DEVREADWRITE8("pic8259_1", pic8259_device, read, write, 0x00ff)
- AM_RANGE(0x0058, 0x005f) AM_WRITE8(clrsys_w, 0xff00)
- AM_RANGE(0x0060, 0x0067) AM_DEVREADWRITE8("pic8259_2", pic8259_device, read, write, 0x00ff)
- AM_RANGE(0x0068, 0x006f) AM_DEVREADWRITE8("pic8259_3", pic8259_device, read, write, 0x00ff)
- AM_RANGE(0x0070, 0x0077) AM_NOP
- AM_RANGE(0x0078, 0x0079) AM_WRITE8(ics_attn_w, 0xffff)
- AM_RANGE(0x0200, 0x03ff) AM_READWRITE(mmuflags_r, mmuflags_w)
- AM_RANGE(0x0400, 0x05ff) AM_READWRITE(mmuaddr_r, mmuaddr_w)
-ADDRESS_MAP_END
+void altos8600_state::cpu_mem(address_map &map)
+{
+ map(0x00000, 0xfffff).rw(this, FUNC(altos8600_state::cpuram_r), FUNC(altos8600_state::cpuram_w));
+}
+
+void altos8600_state::stack_mem(address_map &map)
+{
+ map(0x00000, 0xfffff).rw(this, FUNC(altos8600_state::stkram_r), FUNC(altos8600_state::stkram_w));
+}
+
+void altos8600_state::code_mem(address_map &map)
+{
+ map(0x00000, 0xfffff).rw(this, FUNC(altos8600_state::coderam_r), FUNC(altos8600_state::coderam_w));
+}
+
+void altos8600_state::extra_mem(address_map &map)
+{
+ map(0x00000, 0xfffff).rw(this, FUNC(altos8600_state::xtraram_r), FUNC(altos8600_state::xtraram_w));
+}
+
+void altos8600_state::cpu_io(address_map &map)
+{
+ map(0x0000, 0xffff).rw(this, FUNC(altos8600_state::cpuio_r), FUNC(altos8600_state::cpuio_w));
+}
+
+void altos8600_state::dmac_mem(address_map &map)
+{
+ map(0x00000, 0xfffff).rw(this, FUNC(altos8600_state::dmacram_r), FUNC(altos8600_state::dmacram_w));
+}
+
+void altos8600_state::dmac_io(address_map &map)
+{
+ map(0x0000, 0xffff).rw(this, FUNC(altos8600_state::nmi_r), FUNC(altos8600_state::nmi_w));
+ map(0x0000, 0x0007).r(this, FUNC(altos8600_state::fault_r));
+ map(0x0008, 0x000f).w(this, FUNC(altos8600_state::clear_w));
+ map(0x0010, 0x0017).r(this, FUNC(altos8600_state::errlo_r));
+ map(0x0018, 0x001f).r(this, FUNC(altos8600_state::errhi_r));
+ map(0x0020, 0x0027).rw(this, FUNC(altos8600_state::hd_r), FUNC(altos8600_state::hd_w)).umask16(0x00ff);
+ map(0x0030, 0x0037).w(this, FUNC(altos8600_state::mode_w));
+ map(0x0038, 0x003f).w(this, FUNC(altos8600_state::cattn_w));
+ map(0x0040, 0x0047).rw("ppi", FUNC(i8255_device::read), FUNC(i8255_device::write)).umask16(0x00ff);
+ map(0x0040, 0x0047).rw(m_fdc, FUNC(fd1797_device::read), FUNC(fd1797_device::write)).umask16(0xff00);
+ map(0x0048, 0x004f).rw(m_uart8274, FUNC(i8274_new_device::cd_ba_r), FUNC(i8274_new_device::cd_ba_w)).umask16(0x00ff);
+ map(0x0048, 0x004f).rw("pit", FUNC(pit8253_device::read), FUNC(pit8253_device::write)).umask16(0xff00);
+ map(0x0050, 0x0057).rw(this, FUNC(altos8600_state::romport_r), FUNC(altos8600_state::romport_w));
+ map(0x0058, 0x005f).rw(m_pic1, FUNC(pic8259_device::read), FUNC(pic8259_device::write)).umask16(0x00ff);
+ map(0x0058, 0x005f).w(this, FUNC(altos8600_state::clrsys_w)).umask16(0xff00);
+ map(0x0060, 0x0067).rw(m_pic2, FUNC(pic8259_device::read), FUNC(pic8259_device::write)).umask16(0x00ff);
+ map(0x0068, 0x006f).rw(m_pic3, FUNC(pic8259_device::read), FUNC(pic8259_device::write)).umask16(0x00ff);
+ map(0x0070, 0x0077).noprw();
+ map(0x0078, 0x0079).w(this, FUNC(altos8600_state::ics_attn_w));
+ map(0x0200, 0x03ff).rw(this, FUNC(altos8600_state::mmuflags_r), FUNC(altos8600_state::mmuflags_w));
+ map(0x0400, 0x05ff).rw(this, FUNC(altos8600_state::mmuaddr_r), FUNC(altos8600_state::mmuaddr_w));
+}
static SLOT_INTERFACE_START(altos8600_floppies)
SLOT_INTERFACE( "8dd", FLOPPY_8_DSDD )