diff options
author | 2010-01-18 09:34:43 +0000 | |
---|---|---|
committer | 2010-01-18 09:34:43 +0000 | |
commit | e738b79785852050ce8b83e369a7fc4dd46a071b (patch) | |
tree | 1ac39e9f40790b375c57fea4e5d56ca8d132babc /src/emu/cpu/m6502/m6502.h | |
parent | 3f87f47a2ecdccb9d9627d0d52b76f262becb949 (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.h | 6 |
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); /**************************************************************************** |