diff options
Diffstat (limited to 'src/mame/drivers/amiga.cpp')
-rw-r--r-- | src/mame/drivers/amiga.cpp | 57 |
1 files changed, 36 insertions, 21 deletions
diff --git a/src/mame/drivers/amiga.cpp b/src/mame/drivers/amiga.cpp index ef3731da8ee..94ebe009ce8 100644 --- a/src/mame/drivers/amiga.cpp +++ b/src/mame/drivers/amiga.cpp @@ -47,6 +47,9 @@ public: void a1000(machine_config &config); void a1000n(machine_config &config); + void a1000_bootrom_map(address_map &map); + void a1000_mem(address_map &map); + void a1000_overlay_map(address_map &map); protected: virtual void machine_start() override; virtual void machine_reset() override; @@ -79,6 +82,7 @@ public: void a2000(machine_config &config); void a2000n(machine_config &config); + void a2000_mem(address_map &map); protected: virtual void machine_reset() override; @@ -114,6 +118,7 @@ public: void a500n(machine_config &config); void a500(machine_config &config); + void a500_mem(address_map &map); protected: virtual void machine_reset() override; @@ -160,6 +165,8 @@ public: void cdtv(machine_config &config); void cdtvn(machine_config &config); + void cdtv_mem(address_map &map); + void cdtv_rc_mem(address_map &map); protected: // driver_device overrides virtual void machine_start() override; @@ -197,6 +204,7 @@ public: void a3000(machine_config &config); void a3000n(machine_config &config); + void a3000_mem(address_map &map); protected: private: @@ -221,6 +229,7 @@ public: void a500pn(machine_config &config); void a500p(machine_config &config); + void a500p_mem(address_map &map); protected: virtual void machine_reset() override; @@ -255,6 +264,7 @@ public: void a600n(machine_config &config); void a600(machine_config &config); + void a600_mem(address_map &map); protected: virtual bool int2_pending() override; @@ -279,6 +289,7 @@ public: void a1200(machine_config &config); void a1200n(machine_config &config); + void a1200_mem(address_map &map); protected: virtual bool int2_pending() override; @@ -316,6 +327,9 @@ public: void a4000n(machine_config &config); void a4000(machine_config &config); void a400030(machine_config &config); + void a400030_mem(address_map &map); + void a4000_mem(address_map &map); + void a4000t_mem(address_map &map); protected: private: @@ -357,6 +371,7 @@ public: void cd32n(machine_config &config); void cd32(machine_config &config); + void cd32_mem(address_map &map); protected: // amiga_state overrides virtual void potgo_w(uint16_t data) override; @@ -965,7 +980,7 @@ WRITE8_MEMBER( cd32_state::akiko_cia_0_port_a_write ) // Akiko custom chip. #if 0 -static ADDRESS_MAP_START( a1000_overlay_map, AS_PROGRAM, 16, a1000_state ) +ADDRESS_MAP_START(a1000_state::a1000_overlay_map) AM_RANGE(0x000000, 0x03ffff) AM_MIRROR(0x1c0000) AM_RAM AM_SHARE("chip_ram") AM_RANGE(0x200000, 0x20ffff) AM_MIRROR(0x030000) AM_ROM AM_REGION("bootrom", 0) AM_RANGE(0x280000, 0x2bffff) AM_MIRROR(0x040000) AM_RAM AM_SHARE("chip_ram") @@ -974,7 +989,7 @@ static ADDRESS_MAP_START( a1000_overlay_map, AS_PROGRAM, 16, a1000_state ) ADDRESS_MAP_END #endif -static ADDRESS_MAP_START( a1000_overlay_map, AS_PROGRAM, 16, a1000_state ) +ADDRESS_MAP_START(a1000_state::a1000_overlay_map) AM_RANGE(0x000000, 0x07ffff) AM_MIRROR(0x180000) AM_RAM AM_SHARE("chip_ram") AM_RANGE(0x200000, 0x20ffff) AM_MIRROR(0x030000) AM_ROM AM_REGION("bootrom", 0) AM_RANGE(0x280000, 0x2fffff) AM_RAM AM_SHARE("chip_ram") @@ -982,12 +997,12 @@ static ADDRESS_MAP_START( a1000_overlay_map, AS_PROGRAM, 16, a1000_state ) AM_RANGE(0x380000, 0x38ffff) AM_MIRROR(0x030000) AM_ROM AM_REGION("bootrom", 0) ADDRESS_MAP_END -static ADDRESS_MAP_START( a1000_bootrom_map, AS_PROGRAM, 16, a1000_state ) +ADDRESS_MAP_START(a1000_state::a1000_bootrom_map) AM_RANGE(0x000000, 0x00ffff) AM_MIRROR(0x30000) AM_ROM AM_REGION("bootrom", 0) AM_WRITE(write_protect_w) AM_RANGE(0x040000, 0x07ffff) AM_ROMBANK("wom") ADDRESS_MAP_END -static ADDRESS_MAP_START( a1000_mem, AS_PROGRAM, 16, a1000_state ) +ADDRESS_MAP_START(a1000_state::a1000_mem) ADDRESS_MAP_UNMAP_HIGH AM_RANGE(0x000000, 0x1fffff) AM_DEVICE("overlay", address_map_bank_device, amap16) AM_RANGE(0xa00000, 0xbfffff) AM_READWRITE(cia_r, cia_w) @@ -999,42 +1014,42 @@ static ADDRESS_MAP_START( a1000_mem, AS_PROGRAM, 16, a1000_state ) ADDRESS_MAP_END // Gary/Super Gary/Gayle with 512KB chip RAM -static ADDRESS_MAP_START( overlay_512kb_map, AS_PROGRAM, 16, amiga_state ) +ADDRESS_MAP_START(amiga_state::overlay_512kb_map) ADDRESS_MAP_UNMAP_HIGH AM_RANGE(0x000000, 0x07ffff) AM_MIRROR(0x180000) AM_RAM AM_SHARE("chip_ram") AM_RANGE(0x200000, 0x27ffff) AM_ROM AM_REGION("kickstart", 0) ADDRESS_MAP_END // Gary/Super Gary/Gayle with 1MB chip RAM -static ADDRESS_MAP_START( overlay_1mb_map, AS_PROGRAM, 16, amiga_state ) +ADDRESS_MAP_START(amiga_state::overlay_1mb_map) ADDRESS_MAP_UNMAP_HIGH AM_RANGE(0x000000, 0x0fffff) AM_MIRROR(0x100000) AM_RAM AM_SHARE("chip_ram") AM_RANGE(0x200000, 0x27ffff) AM_ROM AM_REGION("kickstart", 0) ADDRESS_MAP_END // Gary/Super Gary/Gayle with 1MB chip RAM (32 bit system) -static ADDRESS_MAP_START( overlay_1mb_map32, AS_PROGRAM, 32, amiga_state ) +ADDRESS_MAP_START(amiga_state::overlay_1mb_map32) ADDRESS_MAP_UNMAP_HIGH AM_RANGE(0x000000, 0x0fffff) AM_MIRROR(0x100000) AM_RAM AM_SHARE("chip_ram") AM_RANGE(0x200000, 0x27ffff) AM_ROM AM_REGION("kickstart", 0) ADDRESS_MAP_END // Gary/Super Gary/Gayle with 2MB chip RAM (32 bit system) -static ADDRESS_MAP_START( overlay_2mb_map16, AS_PROGRAM, 16, amiga_state ) +ADDRESS_MAP_START(amiga_state::overlay_2mb_map16) ADDRESS_MAP_UNMAP_HIGH AM_RANGE(0x000000, 0x1fffff) AM_RAM AM_SHARE("chip_ram") AM_RANGE(0x200000, 0x27ffff) AM_ROM AM_REGION("kickstart", 0) ADDRESS_MAP_END // Gary/Super Gary/Gayle with 2MB chip RAM (32 bit system) -static ADDRESS_MAP_START( overlay_2mb_map32, AS_PROGRAM, 32, amiga_state ) +ADDRESS_MAP_START(amiga_state::overlay_2mb_map32) ADDRESS_MAP_UNMAP_HIGH AM_RANGE(0x000000, 0x1fffff) AM_RAM AM_SHARE("chip_ram") AM_RANGE(0x200000, 0x27ffff) AM_ROM AM_REGION("kickstart", 0) ADDRESS_MAP_END // 512KB chip RAM, 512KB slow RAM, RTC -static ADDRESS_MAP_START( a2000_mem, AS_PROGRAM, 16, a2000_state ) +ADDRESS_MAP_START(a2000_state::a2000_mem) ADDRESS_MAP_UNMAP_HIGH AM_RANGE(0x000000, 0x1fffff) AM_DEVICE("overlay", address_map_bank_device, amap16) AM_RANGE(0xa00000, 0xbfffff) AM_READWRITE(cia_r, cia_w) @@ -1052,7 +1067,7 @@ static ADDRESS_MAP_START( a2000_mem, AS_PROGRAM, 16, a2000_state ) ADDRESS_MAP_END // 512KB chip RAM and no clock -static ADDRESS_MAP_START( a500_mem, AS_PROGRAM, 16, a500_state ) +ADDRESS_MAP_START(a500_state::a500_mem) ADDRESS_MAP_UNMAP_HIGH AM_RANGE(0x000000, 0x1fffff) AM_DEVICE("overlay", address_map_bank_device, amap16) AM_RANGE(0xa00000, 0xbfffff) AM_READWRITE(cia_r, cia_w) @@ -1067,7 +1082,7 @@ static ADDRESS_MAP_START( a500_mem, AS_PROGRAM, 16, a500_state ) ADDRESS_MAP_END // 1MB chip RAM, RTC and CDTV specific hardware -static ADDRESS_MAP_START( cdtv_mem, AS_PROGRAM, 16, cdtv_state ) +ADDRESS_MAP_START(cdtv_state::cdtv_mem) ADDRESS_MAP_UNMAP_HIGH AM_RANGE(0x000000, 0x1fffff) AM_DEVICE("overlay", address_map_bank_device, amap16) AM_RANGE(0xa00000, 0xbfffff) AM_READWRITE(cia_r, cia_w) @@ -1084,11 +1099,11 @@ static ADDRESS_MAP_START( cdtv_mem, AS_PROGRAM, 16, cdtv_state ) AM_RANGE(0xf80000, 0xffffff) AM_ROM AM_REGION("kickstart", 0) ADDRESS_MAP_END -static ADDRESS_MAP_START( cdtv_rc_mem, AS_PROGRAM, 8, cdtv_state ) +ADDRESS_MAP_START(cdtv_state::cdtv_rc_mem) AM_RANGE(0x0800, 0x0fff) AM_ROM AM_REGION("rcmcu", 0) ADDRESS_MAP_END -static ADDRESS_MAP_START( a3000_mem, AS_PROGRAM, 32, a3000_state ) +ADDRESS_MAP_START(a3000_state::a3000_mem) ADDRESS_MAP_UNMAP_HIGH AM_RANGE(0x00000000, 0x001fffff) AM_DEVICE("overlay", address_map_bank_device, amap32) AM_RANGE(0x00b80000, 0x00bfffff) AM_READWRITE16(cia_r, cia_w, 0xffffffff) @@ -1105,7 +1120,7 @@ static ADDRESS_MAP_START( a3000_mem, AS_PROGRAM, 32, a3000_state ) ADDRESS_MAP_END // 1MB chip RAM and RTC -static ADDRESS_MAP_START( a500p_mem, AS_PROGRAM, 16, a500p_state ) +ADDRESS_MAP_START(a500p_state::a500p_mem) ADDRESS_MAP_UNMAP_HIGH AM_RANGE(0x000000, 0x1fffff) AM_DEVICE("overlay", address_map_bank_device, amap16) AM_RANGE(0xa00000, 0xbfffff) AM_READWRITE(cia_r, cia_w) @@ -1122,7 +1137,7 @@ static ADDRESS_MAP_START( a500p_mem, AS_PROGRAM, 16, a500p_state ) ADDRESS_MAP_END // 1MB chip RAM, IDE and PCMCIA -static ADDRESS_MAP_START( a600_mem, AS_PROGRAM, 16, a600_state ) +ADDRESS_MAP_START(a600_state::a600_mem) ADDRESS_MAP_UNMAP_HIGH AM_RANGE(0x000000, 0x1fffff) AM_DEVICE("overlay", address_map_bank_device, amap16) AM_RANGE(0x200000, 0xa7ffff) AM_NOP @@ -1146,7 +1161,7 @@ static ADDRESS_MAP_START( a600_mem, AS_PROGRAM, 16, a600_state ) ADDRESS_MAP_END // 2MB chip RAM, IDE and PCMCIA -static ADDRESS_MAP_START( a1200_mem, AS_PROGRAM, 32, a1200_state ) +ADDRESS_MAP_START(a1200_state::a1200_mem) ADDRESS_MAP_UNMAP_HIGH AM_RANGE(0x000000, 0x1fffff) AM_DEVICE("overlay", address_map_bank_device, amap32) AM_RANGE(0x200000, 0xa7ffff) AM_NOP @@ -1170,7 +1185,7 @@ static ADDRESS_MAP_START( a1200_mem, AS_PROGRAM, 32, a1200_state ) ADDRESS_MAP_END // 2MB chip RAM, 4 MB fast RAM, RTC and IDE -static ADDRESS_MAP_START( a4000_mem, AS_PROGRAM, 32, a4000_state ) +ADDRESS_MAP_START(a4000_state::a4000_mem) ADDRESS_MAP_UNMAP_HIGH AM_RANGE(0x00000000, 0x001fffff) AM_DEVICE("overlay", address_map_bank_device, amap32) AM_RANGE(0x00200000, 0x009fffff) AM_NOP // zorro2 expansion @@ -1197,7 +1212,7 @@ static ADDRESS_MAP_START( a4000_mem, AS_PROGRAM, 32, a4000_state ) ADDRESS_MAP_END // 2MB chip RAM, 2 MB fast RAM, RTC and IDE -static ADDRESS_MAP_START( a400030_mem, AS_PROGRAM, 32, a4000_state ) +ADDRESS_MAP_START(a4000_state::a400030_mem) ADDRESS_MAP_UNMAP_HIGH AM_IMPORT_FROM(a4000_mem) AM_RANGE(0x07000000, 0x07dfffff) AM_NOP // motherboard ram @@ -1205,7 +1220,7 @@ static ADDRESS_MAP_START( a400030_mem, AS_PROGRAM, 32, a4000_state ) ADDRESS_MAP_END // 2MB chip RAM and CD-ROM -static ADDRESS_MAP_START( cd32_mem, AS_PROGRAM, 32, cd32_state ) +ADDRESS_MAP_START(cd32_state::cd32_mem) ADDRESS_MAP_UNMAP_HIGH AM_RANGE(0x000000, 0x1fffff) AM_DEVICE("overlay", address_map_bank_device, amap32) AM_RANGE(0xb80000, 0xb8003f) AM_DEVREADWRITE("akiko", akiko_device, read, write) @@ -1217,7 +1232,7 @@ static ADDRESS_MAP_START( cd32_mem, AS_PROGRAM, 32, cd32_state ) ADDRESS_MAP_END // 2 MB chip RAM, IDE, RTC and SCSI -static ADDRESS_MAP_START( a4000t_mem, AS_PROGRAM, 32, a4000_state ) +ADDRESS_MAP_START(a4000_state::a4000t_mem) ADDRESS_MAP_UNMAP_HIGH AM_IMPORT_FROM(a4000_mem) AM_RANGE(0x00dd0000, 0x00dd0fff) AM_READWRITE(scsi_r, scsi_w) |