summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/sorcerer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/sorcerer.cpp')
-rw-r--r--src/mame/drivers/sorcerer.cpp65
1 files changed, 34 insertions, 31 deletions
diff --git a/src/mame/drivers/sorcerer.cpp b/src/mame/drivers/sorcerer.cpp
index f1dfa212191..f3e8da751dd 100644
--- a/src/mame/drivers/sorcerer.cpp
+++ b/src/mame/drivers/sorcerer.cpp
@@ -168,39 +168,42 @@ NOTES (2016-06-06)
#include "speaker.h"
-ADDRESS_MAP_START(sorcerer_state::sorcerer_mem)
- ADDRESS_MAP_UNMAP_HIGH
- AM_RANGE(0x0000, 0x07ff) AM_RAMBANK("boot")
- AM_RANGE(0x0800, 0xbfff) AM_RAM
+void sorcerer_state::sorcerer_mem(address_map &map)
+{
+ map.unmap_value_high();
+ map(0x0000, 0x07ff).bankrw("boot");
+ map(0x0800, 0xbfff).ram();
//AM_RANGE(0xc000, 0xdfff) // mapped by the cartslot
- AM_RANGE(0xe000, 0xefff) AM_ROM /* rom pac and bios */
- AM_RANGE(0xf000, 0xf7ff) AM_RAM AM_REGION("maincpu", 0xf000) /* screen ram */
- AM_RANGE(0xf800, 0xfbff) AM_ROM /* char rom */
- AM_RANGE(0xfc00, 0xffff) AM_RAM AM_REGION("maincpu", 0xfc00) /* programmable chars */
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(sorcerer_state::sorcererd_mem)
- ADDRESS_MAP_UNMAP_HIGH
- AM_RANGE(0x0000, 0x07ff) AM_RAMBANK("boot")
- AM_RANGE(0x0800, 0xbbff) AM_RAM
- AM_RANGE(0xbc00, 0xbcff) AM_ROM
- AM_RANGE(0xbe00, 0xbe03) AM_DEVREADWRITE("fdc", micropolis_device, read, write)
+ map(0xe000, 0xefff).rom(); /* rom pac and bios */
+ map(0xf000, 0xf7ff).ram().region("maincpu", 0xf000); /* screen ram */
+ map(0xf800, 0xfbff).rom(); /* char rom */
+ map(0xfc00, 0xffff).ram().region("maincpu", 0xfc00); /* programmable chars */
+}
+
+void sorcerer_state::sorcererd_mem(address_map &map)
+{
+ map.unmap_value_high();
+ map(0x0000, 0x07ff).bankrw("boot");
+ map(0x0800, 0xbbff).ram();
+ map(0xbc00, 0xbcff).rom();
+ map(0xbe00, 0xbe03).rw("fdc", FUNC(micropolis_device::read), FUNC(micropolis_device::write));
//AM_RANGE(0xc000, 0xdfff) // mapped by the cartslot
- AM_RANGE(0xe000, 0xefff) AM_ROM /* rom pac and bios */
- AM_RANGE(0xf000, 0xf7ff) AM_RAM AM_REGION("maincpu", 0xf000) /* screen ram */
- AM_RANGE(0xf800, 0xfbff) AM_ROM /* char rom */
- AM_RANGE(0xfc00, 0xffff) AM_RAM AM_REGION("maincpu", 0xfc00) /* programmable chars */
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(sorcerer_state::sorcerer_io)
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- ADDRESS_MAP_UNMAP_HIGH
- AM_RANGE(0xfc, 0xfc) AM_DEVREADWRITE("uart", ay31015_device, receive, transmit)
- AM_RANGE(0xfd, 0xfd) AM_READWRITE( sorcerer_fd_r, sorcerer_fd_w )
- AM_RANGE(0xfe, 0xfe) AM_READWRITE( sorcerer_fe_r, sorcerer_fe_w )
- AM_RANGE(0xff, 0xff) AM_DEVREAD("cent_status_in", input_buffer_device, read)
- AM_RANGE(0xff, 0xff) AM_WRITE( sorcerer_ff_w )
-ADDRESS_MAP_END
+ map(0xe000, 0xefff).rom(); /* rom pac and bios */
+ map(0xf000, 0xf7ff).ram().region("maincpu", 0xf000); /* screen ram */
+ map(0xf800, 0xfbff).rom(); /* char rom */
+ map(0xfc00, 0xffff).ram().region("maincpu", 0xfc00); /* programmable chars */
+}
+
+void sorcerer_state::sorcerer_io(address_map &map)
+{
+ map.global_mask(0xff);
+ map.unmap_value_high();
+ map(0xfc, 0xfc).rw(m_uart, FUNC(ay31015_device::receive), FUNC(ay31015_device::transmit));
+ map(0xfd, 0xfd).rw(this, FUNC(sorcerer_state::sorcerer_fd_r), FUNC(sorcerer_state::sorcerer_fd_w));
+ map(0xfe, 0xfe).rw(this, FUNC(sorcerer_state::sorcerer_fe_r), FUNC(sorcerer_state::sorcerer_fe_w));
+ map(0xff, 0xff).r("cent_status_in", FUNC(input_buffer_device::read));
+ map(0xff, 0xff).w(this, FUNC(sorcerer_state::sorcerer_ff_w));
+}
static INPUT_PORTS_START(sorcerer)
PORT_START("VS")