summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/cpu/m6502/m6502.h
diff options
context:
space:
mode:
author Aaron Giles <aaron@aarongiles.com>2010-01-18 09:34:43 +0000
committer Aaron Giles <aaron@aarongiles.com>2010-01-18 09:34:43 +0000
commite738b79785852050ce8b83e369a7fc4dd46a071b (patch)
tree1ac39e9f40790b375c57fea4e5d56ca8d132babc /src/emu/cpu/m6502/m6502.h
parent3f87f47a2ecdccb9d9627d0d52b76f262becb949 (diff)
Correct a long-standing design flaw: device configuration state
is now separate from runtime device state. I have larger plans for devices, so there is some temporary scaffolding to hold everything together, but this first step does separate things out. There is a new class 'running_device' which represents the state of a live device. A list of these running_devices sits in machine->devicelist and is created when a running_machine is instantiated. To access the configuration state, use device->baseconfig() which returns a reference to the configuration. The list of running_devices in machine->devicelist has a 1:1 correspondance with the list of device configurations in machine->config->devicelist, and most navigation options work equally on either (scanning by class, type, etc.) For the most part, drivers will now deal with running_device objects instead of const device_config objects. In fact, in order to do this patch, I did the following global search & replace: const device_config -> running_device device->static_config -> device->baseconfig().static_config device->inline_config -> device->baseconfig().inline_config and then fixed up the compiler errors that fell out. Some specifics: Removed device_get_info_* functions and replaced them with methods called get_config_*. Added methods for get_runtime_* to access runtime state from the running_device. DEVICE_GET_INFO callbacks are only passed a device_config *. This means they have no access to the token or runtime state at all. For most cases this is fine. Added new DEVICE_GET_RUNTIME_INFO callback that is passed the running_device for accessing data that is live at runtime. In the future this will go away to make room for a cleaner mechanism. Cleaned up the handoff of memory regions from the memory subsystem to the devices.
Diffstat (limited to 'src/emu/cpu/m6502/m6502.h')
-rw-r--r--src/emu/cpu/m6502/m6502.h6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/emu/cpu/m6502/m6502.h b/src/emu/cpu/m6502/m6502.h
index dd3a3ef4b7b..8091e86eb07 100644
--- a/src/emu/cpu/m6502/m6502.h
+++ b/src/emu/cpu/m6502/m6502.h
@@ -51,8 +51,8 @@ enum
positiv edge sets overflow flag */
#define M6502_SET_OVERFLOW 1
-typedef UINT8 (*m6510_port_read_func)(const device_config *device, UINT8 direction);
-typedef void (*m6510_port_write_func)(const device_config *device, UINT8 direction, UINT8 data);
+typedef UINT8 (*m6510_port_read_func)(running_device *device, UINT8 direction);
+typedef void (*m6510_port_write_func)(running_device *device, UINT8 direction, UINT8 data);
/* Optional interface to set callbacks */
@@ -173,7 +173,7 @@ extern CPU_GET_INFO( n2a03 );
Bit 7 of address $4011 (the PSG's DPCM control register), when set,
causes an IRQ to be generated. This function allows the IRQ to be called
from the PSG core when such an occasion arises. */
-extern void n2a03_irq(const device_config *device);
+extern void n2a03_irq(running_device *device);
/****************************************************************************