summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/machine/atari.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/machine/atari.c')
-rw-r--r--src/mame/machine/atari.c39
1 files changed, 17 insertions, 22 deletions
diff --git a/src/mame/machine/atari.c b/src/mame/machine/atari.c
index b007d07d1c5..ee73f938884 100644
--- a/src/mame/machine/atari.c
+++ b/src/mame/machine/atari.c
@@ -35,8 +35,8 @@ static int a800_cart_loaded = 0;
static int a800_cart_is_16k = 0;
#endif
-static void a800xl_mmu(UINT8 new_mmu);
-static void a600xl_mmu(UINT8 new_mmu);
+static void a800xl_mmu(running_machine *machine, UINT8 new_mmu);
+static void a600xl_mmu(running_machine *machine, UINT8 new_mmu);
static void pokey_reset(running_machine *machine);
@@ -88,8 +88,8 @@ static READ8_HANDLER(atari_pia_pb_r)
return atari_input_disabled() ? 0xFF : input_port_read_safe(machine, "djoy_2_3", 0);
}
-static WRITE8_HANDLER(a600xl_pia_pb_w) { a600xl_mmu(data); }
-static WRITE8_HANDLER(a800xl_pia_pb_w) { a800xl_mmu(data); }
+static WRITE8_HANDLER(a600xl_pia_pb_w) { a600xl_mmu(machine, data); }
+static WRITE8_HANDLER(a800xl_pia_pb_w) { a800xl_mmu(machine, data); }
#ifdef MESS
extern WRITE8_HANDLER(atari_pia_cb2_w);
@@ -127,7 +127,7 @@ static const pia6821_interface a800xl_pia_interface =
*
**************************************************************/
-void a600xl_mmu(UINT8 new_mmu)
+void a600xl_mmu(running_machine *machine, UINT8 new_mmu)
{
read8_machine_func rbank2;
write8_machine_func wbank2;
@@ -145,13 +145,12 @@ void a600xl_mmu(UINT8 new_mmu)
rbank2 = SMH_BANK2;
wbank2 = SMH_UNMAP;
}
- memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x5000, 0x57ff, 0, 0, rbank2);
- memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x5000, 0x57ff, 0, 0, wbank2);
+ memory_install_readwrite8_handler(machine, 0, ADDRESS_SPACE_PROGRAM, 0x5000, 0x57ff, 0, 0, rbank2, wbank2);
if (rbank2 == SMH_BANK2)
memory_set_bankptr(2, memory_region(REGION_CPU1)+0x5000);
}
-void a800xl_mmu(UINT8 new_mmu)
+void a800xl_mmu(running_machine *machine, UINT8 new_mmu)
{
read8_machine_func rbank1, rbank2, rbank3, rbank4;
write8_machine_func wbank1, wbank2, wbank3, wbank4;
@@ -178,10 +177,8 @@ void a800xl_mmu(UINT8 new_mmu)
wbank4 = SMH_BANK4;
base4 = memory_region(REGION_CPU1)+0x0d800; /* 4K RAM + 8K RAM */
}
- memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0xc000, 0xcfff, 0, 0, rbank3);
- memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xc000, 0xcfff, 0, 0, wbank3);
- memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0xd800, 0xffff, 0, 0, rbank4);
- memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xd800, 0xffff, 0, 0, wbank4);
+ memory_install_readwrite8_handler(machine, 0, ADDRESS_SPACE_PROGRAM, 0xc000, 0xcfff, 0, 0, rbank3, wbank3);
+ memory_install_readwrite8_handler(machine, 0, ADDRESS_SPACE_PROGRAM, 0xd800, 0xffff, 0, 0, rbank4, wbank4);
memory_set_bankptr(3, base3);
memory_set_bankptr(4, base4);
@@ -200,8 +197,7 @@ void a800xl_mmu(UINT8 new_mmu)
wbank1 = SMH_UNMAP;
base1 = memory_region(REGION_CPU1)+0x10000; /* 8K BASIC */
}
- memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0xa000, 0xbfff, 0, 0, rbank1);
- memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xa000, 0xbfff, 0, 0, wbank1);
+ memory_install_readwrite8_handler(machine, 0, ADDRESS_SPACE_PROGRAM, 0xa000, 0xbfff, 0, 0, rbank1, wbank1);
memory_set_bankptr(1, base1);
/* check if self-test ROM changed */
@@ -219,8 +215,7 @@ void a800xl_mmu(UINT8 new_mmu)
wbank2 = SMH_UNMAP;
base2 = memory_region(REGION_CPU1)+0x15000; /* 0x0800 bytes */
}
- memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x5000, 0x57ff, 0, 0, rbank2);
- memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x5000, 0x57ff, 0, 0, wbank2);
+ memory_install_readwrite8_handler(machine, 0, ADDRESS_SPACE_PROGRAM, 0x5000, 0x57ff, 0, 0, rbank2, wbank2);
memory_set_bankptr(2, base2);
}
@@ -638,9 +633,9 @@ DRIVER_INIT( atari )
/* install RAM */
ram_top = MIN(mess_ram_size, ram_size) - 1;
- memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM,
+ memory_install_read8_handler(machine, 0, ADDRESS_SPACE_PROGRAM,
0x0000, ram_top, 0, 0, SMH_BANK2);
- memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM,
+ memory_install_write8_handler(machine, 0, ADDRESS_SPACE_PROGRAM,
0x0000, ram_top, 0, 0, SMH_BANK2);
memory_set_bankptr(2, mess_ram);
}
@@ -682,9 +677,9 @@ static void a800_setbank(int n)
break;
}
- memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x8000, 0xbfff, 0, 0,
+ memory_install_read8_handler(machine, 0, ADDRESS_SPACE_PROGRAM, 0x8000, 0xbfff, 0, 0,
read_addr ? SMH_BANK1 : SMH_NOP);
- memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x8000, 0xbfff, 0, 0,
+ memory_install_write8_handler(machine, 0, ADDRESS_SPACE_PROGRAM, 0x8000, 0xbfff, 0, 0,
write_addr ? SMH_BANK1 : SMH_NOP);
if (read_addr)
memory_set_bankptr(1, read_addr);
@@ -790,9 +785,9 @@ static void atari_machine_start(running_machine *machine, int type, const pia682
/* install RAM */
ram_top = MIN(mess_ram_size, ram_size) - 1;
- memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM,
+ memory_install_read8_handler(machine, 0, ADDRESS_SPACE_PROGRAM,
0x0000, ram_top, 0, 0, SMH_BANK2);
- memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM,
+ memory_install_write8_handler(machine, 0, ADDRESS_SPACE_PROGRAM,
0x0000, ram_top, 0, 0, SMH_BANK2);
memory_set_bankptr(2, mess_ram);
}