diff options
Diffstat (limited to 'src/devices/machine/pdc.cpp')
-rw-r--r-- | src/devices/machine/pdc.cpp | 36 |
1 files changed, 19 insertions, 17 deletions
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 ) |