diff options
Diffstat (limited to 'src/mame/drivers/tdv2324.cpp')
-rw-r--r-- | src/mame/drivers/tdv2324.cpp | 49 |
1 files changed, 27 insertions, 22 deletions
diff --git a/src/mame/drivers/tdv2324.cpp b/src/mame/drivers/tdv2324.cpp index 7a4311fdae2..fd66194ebce 100644 --- a/src/mame/drivers/tdv2324.cpp +++ b/src/mame/drivers/tdv2324.cpp @@ -132,67 +132,72 @@ WRITE8_MEMBER( tdv2324_state::tdv2324_main_io_e2 ) // ADDRESS_MAP( tdv2324_mem ) //------------------------------------------------- -ADDRESS_MAP_START(tdv2324_state::tdv2324_mem) - AM_RANGE(0x0000, 0x07ff) AM_MIRROR(0x0800) AM_ROM AM_REGION(P8085AH_0_TAG, 0) +void tdv2324_state::tdv2324_mem(address_map &map) +{ + map(0x0000, 0x07ff).mirror(0x0800).rom().region(P8085AH_0_TAG, 0); /* when copying code to 4000 area it runs right off the end of rom; * I'm not sure if its supposed to mirror or read as open bus */ // AM_RANGE(0x4000, 0x5fff) AM_RAM // 0x4000 has the boot code copied to it, 5fff and down are the stack // AM_RANGE(0x6000, 0x6fff) AM_RAM // used by the relocated boot code; shared? - AM_RANGE(0x0800, 0xffff) AM_RAM -ADDRESS_MAP_END + map(0x0800, 0xffff).ram(); +} //------------------------------------------------- // ADDRESS_MAP( tdv2324_io ) //------------------------------------------------- -ADDRESS_MAP_START(tdv2324_state::tdv2324_io) +void tdv2324_state::tdv2324_io(address_map &map) +{ //ADDRESS_MAP_GLOBAL_MASK(0xff) /* 0x30 is read by main code and if high bit isn't set at some point it will never get anywhere */ /* e0, e2, e8, ea are written to */ /* 30, e6 and e2 are readable */ - AM_RANGE(0x30, 0x30) AM_READ(tdv2324_main_io_30) + map(0x30, 0x30).r(this, FUNC(tdv2324_state::tdv2324_main_io_30)); // AM_RANGE(0xe2, 0xe2) AM_WRITE(tdv2324_main_io_e2) console output - AM_RANGE(0xe6, 0xe6) AM_READ(tdv2324_main_io_e6) + map(0xe6, 0xe6).r(this, FUNC(tdv2324_state::tdv2324_main_io_e6)); // AM_RANGE(0x, 0x) AM_DEVREADWRITE(P8253_5_0_TAG, pit8253_device, read, write) // AM_RANGE(0x, 0x) AM_DEVREADWRITE(MK3887N4_TAG, z80dart_device, ba_cd_r, ba_cd_w) // AM_RANGE(0x, 0x) AM_DEVREADWRITE(P8259A_TAG, pic8259_device, read, write) -ADDRESS_MAP_END +} //------------------------------------------------- // ADDRESS_MAP( tdv2324_sub_mem ) //------------------------------------------------- -ADDRESS_MAP_START(tdv2324_state::tdv2324_sub_mem) - AM_RANGE(0x0000, 0x3fff) AM_ROM AM_REGION(P8085AH_1_TAG, 0) - AM_RANGE(0x4000, 0x47ff) AM_RAM - AM_RANGE(0x5000, 0x53ff) AM_RAM // EAROM - AM_RANGE(0x6000, 0x7fff) AM_RAM AM_SHARE("video_ram") -ADDRESS_MAP_END +void tdv2324_state::tdv2324_sub_mem(address_map &map) +{ + map(0x0000, 0x3fff).rom().region(P8085AH_1_TAG, 0); + map(0x4000, 0x47ff).ram(); + map(0x5000, 0x53ff).ram(); // EAROM + map(0x6000, 0x7fff).ram().share("video_ram"); +} //------------------------------------------------- // ADDRESS_MAP( tdv2324_sub_io ) //------------------------------------------------- -ADDRESS_MAP_START(tdv2324_state::tdv2324_sub_io) +void tdv2324_state::tdv2324_sub_io(address_map &map) +{ //ADDRESS_MAP_GLOBAL_MASK(0xff) /* 20, 23, 30-36, 38, 3a, 3c, 3e, 60, 70 are written to */ - AM_RANGE(0x20, 0x23) AM_DEVREADWRITE(P8253_5_1_TAG, pit8253_device, read, write) - AM_RANGE(0x30, 0x3f) AM_DEVREADWRITE(TMS9937NL_TAG, tms9927_device, read, write) // TODO: this is supposed to be a 9937, which is not quite the same as 9927 -ADDRESS_MAP_END + map(0x20, 0x23).rw(m_pit1, FUNC(pit8253_device::read), FUNC(pit8253_device::write)); + map(0x30, 0x3f).rw(m_tms, FUNC(tms9927_device::read), FUNC(tms9927_device::write)); // TODO: this is supposed to be a 9937, which is not quite the same as 9927 +} //------------------------------------------------- // ADDRESS_MAP( tdv2324_fdc_mem ) //------------------------------------------------- -ADDRESS_MAP_START(tdv2324_state::tdv2324_fdc_mem) +void tdv2324_state::tdv2324_fdc_mem(address_map &map) +{ // the following two are probably enabled/disabled via the JP2 jumper block next to the fdc cpu //AM_RANGE(0x0000, 0x001f) AM_RAM // on-6802-die ram (optionally battery backed) //AM_RANGE(0x0020, 0x007f) AM_RAM // on-6802-die ram - AM_RANGE(0x0000, 0x07ff) AM_RAM // TMM2016AP-12 @ U14, tested with A5,5A pattern + map(0x0000, 0x07ff).ram(); // TMM2016AP-12 @ U14, tested with A5,5A pattern //AM_RANGE(0x1000, 0x17ff) AM_RAM // TMM2016AP-12 @ U80, address is wrong // the 3xxx area appears to be closely involved in fdc or other i/o // in particular, reads from 30xx, 38xx, 3Cxx may be actually writes to certain fdc registers with data xx? @@ -201,8 +206,8 @@ ADDRESS_MAP_START(tdv2324_state::tdv2324_fdc_mem) // 0x8000 can also be written to // 0x6000 can also be read from and written to // Somewhere in here, the FDC chip and the hard disk interface live - AM_RANGE(0xe000, 0xffff) AM_ROM AM_REGION(MC68B02P_TAG, 0) // rom "962014 // -4-" @U15 -ADDRESS_MAP_END + map(0xe000, 0xffff).rom().region(MC68B02P_TAG, 0); // rom "962014 // -4-" @U15 +} |