diff options
Diffstat (limited to 'src/mame/drivers/i7000.cpp')
-rw-r--r-- | src/mame/drivers/i7000.cpp | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/src/mame/drivers/i7000.cpp b/src/mame/drivers/i7000.cpp index aec1ec0e216..428905e6505 100644 --- a/src/mame/drivers/i7000.cpp +++ b/src/mame/drivers/i7000.cpp @@ -245,31 +245,33 @@ PALETTE_INIT_MEMBER(i7000_state, i7000) /*FIXME: we still need to figure out the proper memory map for the maincpu and where the cartridge slot maps to. */ -ADDRESS_MAP_START(i7000_state::i7000_mem) - AM_RANGE(0x0000, 0x0fff) AM_ROM AM_REGION("boot", 0) - AM_RANGE(0x2000, 0x2fff) AM_RAM AM_SHARE("videoram") - AM_RANGE(0x4000, 0xffff) AM_RAM +void i7000_state::i7000_mem(address_map &map) +{ + map(0x0000, 0x0fff).rom().region("boot", 0); + map(0x2000, 0x2fff).ram().share("videoram"); + map(0x4000, 0xffff).ram(); // AM_RANGE(0x4000, 0xbfff) AM_ROM AM_REGION("cardslot", 0) -ADDRESS_MAP_END +} -ADDRESS_MAP_START(i7000_state::i7000_io) - ADDRESS_MAP_UNMAP_HIGH - ADDRESS_MAP_GLOBAL_MASK (0xff) +void i7000_state::i7000_io(address_map &map) +{ + map.unmap_value_high(); + map.global_mask(0xff); // AM_RANGE(0x06, 0x06) AM_WRITE(i7000_io_?_w) // AM_RANGE(0x08, 0x09) AM_WRITE(i7000_io_?_w) //printer perhaps? // AM_RANGE(0x0c, 0x0c) AM_WRITE(i7000_io_?_w) //0x0C and 0x10 may be related to mem page swapping. (self-test "4. PAG") // AM_RANGE(0x10, 0x10) AM_WRITE(i7000_io_?_w) // AM_RANGE(0x14, 0x15) AM_WRITE(i7000_io_?_w) - AM_RANGE(0x18, 0x1b) AM_DEVREADWRITE("pit8253", pit8253_device, read, write) + map(0x18, 0x1b).rw("pit8253", FUNC(pit8253_device::read), FUNC(pit8253_device::write)); // AM_RANGE(0x1c, 0x1c) AM_WRITE(i7000_io_printer_data_w) //ASCII data - AM_RANGE(0x1d, 0x1d) AM_READ_PORT("DSW") + map(0x1d, 0x1d).portr("DSW"); // AM_RANGE(0x1e, 0x1e) AM_READWRITE(i7000_io_printer_status_r, i7000_io_?_w) // AM_RANGE(0x1f, 0x1f) AM_WRITE(i7000_io_printer_strobe_w) //self-test routine writes 0x08 and 0x09 (it seems that bit 0 is the strobe and bit 3 is an enable signal) // AM_RANGE(0x20, 0x21) AM_READWRITE(i7000_io_keyboard_r, i7000_io_keyboard_w) - AM_RANGE(0x20, 0x21) AM_DEVREADWRITE("i8279", i8279_device, read, write) + map(0x20, 0x21).rw("i8279", FUNC(i8279_device::read), FUNC(i8279_device::write)); // AM_RANGE(0x24, 0x24) AM_READ(i7000_io_?_r) // AM_RANGE(0x25, 0x25) AM_WRITE(i7000_io_?_w) @@ -279,7 +281,7 @@ ADDRESS_MAP_START(i7000_state::i7000_io) // AM_RANGE(0x3b, 0x3b) AM_WRITE(i7000_io_?_w) // AM_RANGE(0x66, 0x67) AM_WRITE(i7000_io_?_w) // AM_RANGE(0xbb, 0xbb) AM_WRITE(i7000_io_?_w) //may be related to page-swapping... -ADDRESS_MAP_END +} DEVICE_IMAGE_LOAD_MEMBER( i7000_state, i7000_card ) { |