diff options
Diffstat (limited to 'src/mame/drivers/lb186.cpp')
-rw-r--r-- | src/mame/drivers/lb186.cpp | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/src/mame/drivers/lb186.cpp b/src/mame/drivers/lb186.cpp index 419ac7cccbe..220c8ee3f04 100644 --- a/src/mame/drivers/lb186.cpp +++ b/src/mame/drivers/lb186.cpp @@ -92,19 +92,21 @@ WRITE8_MEMBER(lb186_state::drive_sel_w) floppy->ss_w(BIT(data, 4)); } -ADDRESS_MAP_START(lb186_state::lb186_map) - AM_RANGE(0x00000, 0x3ffff) AM_RAM // fixed 256k for now - AM_RANGE(0xfc000, 0xfffff) AM_ROM AM_REGION("bios", 0) -ADDRESS_MAP_END - -ADDRESS_MAP_START(lb186_state::lb186_io) - ADDRESS_MAP_UNMAP_HIGH - AM_RANGE(0x1000, 0x101f) AM_DEVREADWRITE8("duart", scn2681_device, read, write, 0x00ff) - AM_RANGE(0x1080, 0x108f) AM_DEVREADWRITE8("scsibus:7:ncr5380", ncr5380n_device, read, write, 0x00ff) - AM_RANGE(0x1100, 0x1107) AM_DEVREADWRITE8("fdc", wd1772_device, read, write, 0x00ff) - AM_RANGE(0x1180, 0x1181) AM_READWRITE8(scsi_dack_r, scsi_dack_w, 0x00ff) - AM_RANGE(0x1200, 0x1201) AM_WRITE8(drive_sel_w, 0x00ff) -ADDRESS_MAP_END +void lb186_state::lb186_map(address_map &map) +{ + map(0x00000, 0x3ffff).ram(); // fixed 256k for now + map(0xfc000, 0xfffff).rom().region("bios", 0); +} + +void lb186_state::lb186_io(address_map &map) +{ + map.unmap_value_high(); + map(0x1000, 0x101f).rw("duart", FUNC(scn2681_device::read), FUNC(scn2681_device::write)).umask16(0x00ff); + map(0x1080, 0x108f).rw(m_scsi, FUNC(ncr5380n_device::read), FUNC(ncr5380n_device::write)).umask16(0x00ff); + map(0x1100, 0x1107).rw(m_fdc, FUNC(wd1772_device::read), FUNC(wd1772_device::write)).umask16(0x00ff); + map(0x1180, 0x1180).rw(this, FUNC(lb186_state::scsi_dack_r), FUNC(lb186_state::scsi_dack_w)); + map(0x1200, 0x1200).w(this, FUNC(lb186_state::drive_sel_w)); +} static SLOT_INTERFACE_START( lb186_floppies ) SLOT_INTERFACE("525dd", FLOPPY_525_DD) |