mirror of
https://github.com/holub/mame
synced 2025-07-04 01:18:59 +03:00
Readded generic calls to install memory handlers that were in long before
0.126u5 - these are useful on the MESS side for things like the PC driver
This commit is contained in:
parent
cbe9983e42
commit
15969c0428
@ -1496,6 +1496,19 @@ int memory_get_log_unmap(int spacenum)
|
|||||||
X-bit case
|
X-bit case
|
||||||
-------------------------------------------------*/
|
-------------------------------------------------*/
|
||||||
|
|
||||||
|
void *_memory_install_handler(running_machine *machine, int cpunum, int spacenum, offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, FPTR rhandler, FPTR whandler, const char *rhandler_name, const char *whandler_name)
|
||||||
|
{
|
||||||
|
addrspace_data *space = &cpudata[cpunum].space[spacenum];
|
||||||
|
if (rhandler >= STATIC_COUNT || whandler >= STATIC_COUNT)
|
||||||
|
fatalerror("fatal: can only use static banks with memory_install_handler()");
|
||||||
|
if (rhandler != 0)
|
||||||
|
space_map_range(space, ROW_READ, space->dbits, 0, addrstart, addrend, addrmask, addrmirror, (genf *)(FPTR)rhandler, machine, rhandler_name);
|
||||||
|
if (whandler != 0)
|
||||||
|
space_map_range(space, ROW_WRITE, space->dbits, 0, addrstart, addrend, addrmask, addrmirror, (genf *)(FPTR)whandler, machine, whandler_name);
|
||||||
|
mem_dump();
|
||||||
|
return memory_find_base(cpunum, spacenum, ADDR2BYTE(space, addrstart));
|
||||||
|
}
|
||||||
|
|
||||||
UINT8 *_memory_install_handler8(running_machine *machine, int cpunum, int spacenum, offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, read8_machine_func rhandler, write8_machine_func whandler, const char *rhandler_name, const char *whandler_name)
|
UINT8 *_memory_install_handler8(running_machine *machine, int cpunum, int spacenum, offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, read8_machine_func rhandler, write8_machine_func whandler, const char *rhandler_name, const char *whandler_name)
|
||||||
{
|
{
|
||||||
addrspace_data *space = &cpudata[cpunum].space[spacenum];
|
addrspace_data *space = &cpudata[cpunum].space[spacenum];
|
||||||
@ -1547,6 +1560,19 @@ UINT64 *_memory_install_handler64(running_machine *machine, int cpunum, int spac
|
|||||||
for X-bit case
|
for X-bit case
|
||||||
-------------------------------------------------*/
|
-------------------------------------------------*/
|
||||||
|
|
||||||
|
void *_memory_install_device_handler(const device_config *device, int cpunum, int spacenum, offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, FPTR rhandler, FPTR whandler, const char *rhandler_name, const char *whandler_name)
|
||||||
|
{
|
||||||
|
addrspace_data *space = &cpudata[cpunum].space[spacenum];
|
||||||
|
if (rhandler >= STATIC_COUNT || whandler >= STATIC_COUNT)
|
||||||
|
fatalerror("fatal: can only use static banks with memory_install_device_handler()");
|
||||||
|
if (rhandler != 0)
|
||||||
|
space_map_range(space, ROW_READ, space->dbits, 0, addrstart, addrend, addrmask, addrmirror, (genf *)(FPTR)rhandler, (void *)device, rhandler_name);
|
||||||
|
if (whandler != 0)
|
||||||
|
space_map_range(space, ROW_WRITE, space->dbits, 0, addrstart, addrend, addrmask, addrmirror, (genf *)(FPTR)whandler, (void *)device, whandler_name);
|
||||||
|
mem_dump();
|
||||||
|
return memory_find_base(cpunum, spacenum, ADDR2BYTE(space, addrstart));
|
||||||
|
}
|
||||||
|
|
||||||
UINT8 *_memory_install_device_handler8(const device_config *device, int cpunum, int spacenum, offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, read8_device_func rhandler, write8_device_func whandler, const char *rhandler_name, const char *whandler_name)
|
UINT8 *_memory_install_device_handler8(const device_config *device, int cpunum, int spacenum, offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, read8_device_func rhandler, write8_device_func whandler, const char *rhandler_name, const char *whandler_name)
|
||||||
{
|
{
|
||||||
addrspace_data *space = &cpudata[cpunum].space[spacenum];
|
addrspace_data *space = &cpudata[cpunum].space[spacenum];
|
||||||
|
@ -484,6 +484,8 @@ union _addrmap64_token
|
|||||||
|
|
||||||
|
|
||||||
/* wrappers for dynamic read handler installation */
|
/* wrappers for dynamic read handler installation */
|
||||||
|
#define memory_install_read_handler(machine, cpu, space, start, end, mask, mirror, rhandler) \
|
||||||
|
_memory_install_handler(machine, cpu, space, start, end, mask, mirror, rhandler, (FPTR)NULL, #rhandler, NULL)
|
||||||
#define memory_install_read8_handler(machine, cpu, space, start, end, mask, mirror, rhandler) \
|
#define memory_install_read8_handler(machine, cpu, space, start, end, mask, mirror, rhandler) \
|
||||||
_memory_install_handler8(machine, cpu, space, start, end, mask, mirror, rhandler, NULL, #rhandler, NULL)
|
_memory_install_handler8(machine, cpu, space, start, end, mask, mirror, rhandler, NULL, #rhandler, NULL)
|
||||||
#define memory_install_read16_handler(machine, cpu, space, start, end, mask, mirror, rhandler) \
|
#define memory_install_read16_handler(machine, cpu, space, start, end, mask, mirror, rhandler) \
|
||||||
@ -493,6 +495,8 @@ union _addrmap64_token
|
|||||||
#define memory_install_read64_handler(machine, cpu, space, start, end, mask, mirror, rhandler) \
|
#define memory_install_read64_handler(machine, cpu, space, start, end, mask, mirror, rhandler) \
|
||||||
_memory_install_handler64(machine, cpu, space, start, end, mask, mirror, rhandler, NULL, #rhandler, NULL)
|
_memory_install_handler64(machine, cpu, space, start, end, mask, mirror, rhandler, NULL, #rhandler, NULL)
|
||||||
|
|
||||||
|
#define memory_install_read_device_handler(device, cpu, space, start, end, mask, mirror, rhandler) \
|
||||||
|
_memory_install_device_handler(device, cpu, space, start, end, mask, mirror, rhandler, NULL, #rhandler, NULL)
|
||||||
#define memory_install_read8_device_handler(device, cpu, space, start, end, mask, mirror, rhandler) \
|
#define memory_install_read8_device_handler(device, cpu, space, start, end, mask, mirror, rhandler) \
|
||||||
_memory_install_device_handler8(device, cpu, space, start, end, mask, mirror, rhandler, NULL, #rhandler, NULL)
|
_memory_install_device_handler8(device, cpu, space, start, end, mask, mirror, rhandler, NULL, #rhandler, NULL)
|
||||||
#define memory_install_read16_device_handler(device, cpu, space, start, end, mask, mirror, rhandler) \
|
#define memory_install_read16_device_handler(device, cpu, space, start, end, mask, mirror, rhandler) \
|
||||||
@ -504,6 +508,8 @@ union _addrmap64_token
|
|||||||
|
|
||||||
|
|
||||||
/* wrappers for dynamic write handler installation */
|
/* wrappers for dynamic write handler installation */
|
||||||
|
#define memory_install_write_handler(machine, cpu, space, start, end, mask, mirror, whandler) \
|
||||||
|
_memory_install_handler(machine, cpu, space, start, end, mask, mirror, (FPTR)NULL, whandler, NULL, #whandler)
|
||||||
#define memory_install_write8_handler(machine, cpu, space, start, end, mask, mirror, whandler) \
|
#define memory_install_write8_handler(machine, cpu, space, start, end, mask, mirror, whandler) \
|
||||||
_memory_install_handler8(machine, cpu, space, start, end, mask, mirror, NULL, whandler, NULL, #whandler)
|
_memory_install_handler8(machine, cpu, space, start, end, mask, mirror, NULL, whandler, NULL, #whandler)
|
||||||
#define memory_install_write16_handler(machine, cpu, space, start, end, mask, mirror, whandler) \
|
#define memory_install_write16_handler(machine, cpu, space, start, end, mask, mirror, whandler) \
|
||||||
@ -513,6 +519,8 @@ union _addrmap64_token
|
|||||||
#define memory_install_write64_handler(machine, cpu, space, start, end, mask, mirror, whandler) \
|
#define memory_install_write64_handler(machine, cpu, space, start, end, mask, mirror, whandler) \
|
||||||
_memory_install_handler64(machine, cpu, space, start, end, mask, mirror, NULL, whandler, NULL, #whandler)
|
_memory_install_handler64(machine, cpu, space, start, end, mask, mirror, NULL, whandler, NULL, #whandler)
|
||||||
|
|
||||||
|
#define memory_install_write_device_handler(device, cpu, space, start, end, mask, mirror, whandler) \
|
||||||
|
_memory_install_device_handler(device, cpu, space, start, end, mask, mirror, NULL, whandler, NULL, #whandler)
|
||||||
#define memory_install_write8_device_handler(device, cpu, space, start, end, mask, mirror, whandler) \
|
#define memory_install_write8_device_handler(device, cpu, space, start, end, mask, mirror, whandler) \
|
||||||
_memory_install_device_handler8(device, cpu, space, start, end, mask, mirror, NULL, whandler, NULL, #whandler)
|
_memory_install_device_handler8(device, cpu, space, start, end, mask, mirror, NULL, whandler, NULL, #whandler)
|
||||||
#define memory_install_write16_device_handler(device, cpu, space, start, end, mask, mirror, whandler) \
|
#define memory_install_write16_device_handler(device, cpu, space, start, end, mask, mirror, whandler) \
|
||||||
@ -524,6 +532,8 @@ union _addrmap64_token
|
|||||||
|
|
||||||
|
|
||||||
/* wrappers for dynamic read/write handler installation */
|
/* wrappers for dynamic read/write handler installation */
|
||||||
|
#define memory_install_readwrite_handler(machine, cpu, space, start, end, mask, mirror, rhandler, whandler) \
|
||||||
|
_memory_install_handler(machine, cpu, space, start, end, mask, mirror, rhandler, whandler, #rhandler, #whandler)
|
||||||
#define memory_install_readwrite8_handler(machine, cpu, space, start, end, mask, mirror, rhandler, whandler) \
|
#define memory_install_readwrite8_handler(machine, cpu, space, start, end, mask, mirror, rhandler, whandler) \
|
||||||
_memory_install_handler8(machine, cpu, space, start, end, mask, mirror, rhandler, whandler, #rhandler, #whandler)
|
_memory_install_handler8(machine, cpu, space, start, end, mask, mirror, rhandler, whandler, #rhandler, #whandler)
|
||||||
#define memory_install_readwrite16_handler(machine, cpu, space, start, end, mask, mirror, rhandler, whandler) \
|
#define memory_install_readwrite16_handler(machine, cpu, space, start, end, mask, mirror, rhandler, whandler) \
|
||||||
@ -533,6 +543,8 @@ union _addrmap64_token
|
|||||||
#define memory_install_readwrite64_handler(machine, cpu, space, start, end, mask, mirror, rhandler, whandler) \
|
#define memory_install_readwrite64_handler(machine, cpu, space, start, end, mask, mirror, rhandler, whandler) \
|
||||||
_memory_install_handler64(machine, cpu, space, start, end, mask, mirror, rhandler, whandler, #rhandler, #whandler)
|
_memory_install_handler64(machine, cpu, space, start, end, mask, mirror, rhandler, whandler, #rhandler, #whandler)
|
||||||
|
|
||||||
|
#define memory_install_readwrite_device_handler(device, cpu, space, start, end, mask, mirror, rhandler, whandler) \
|
||||||
|
_memory_install_device_handler(device, cpu, space, start, end, mask, mirror, rhandler, whandler, #rhandler, #whandler)
|
||||||
#define memory_install_readwrite8_device_handler(device, cpu, space, start, end, mask, mirror, rhandler, whandler) \
|
#define memory_install_readwrite8_device_handler(device, cpu, space, start, end, mask, mirror, rhandler, whandler) \
|
||||||
_memory_install_device_handler8(device, cpu, space, start, end, mask, mirror, rhandler, whandler, #rhandler, #whandler)
|
_memory_install_device_handler8(device, cpu, space, start, end, mask, mirror, rhandler, whandler, #rhandler, #whandler)
|
||||||
#define memory_install_readwrite16_device_handler(device, cpu, space, start, end, mask, mirror, rhandler, whandler) \
|
#define memory_install_readwrite16_device_handler(device, cpu, space, start, end, mask, mirror, rhandler, whandler) \
|
||||||
|
Loading…
Reference in New Issue
Block a user