|
types. Created a binding_type_exception which is thrown when
a bind attempt fails due to mismatched types.
Added helper templates to driver_device to wrap legacy
device read/write handlers into driver_device member functions.
This should help move some things forward until more common
code is converted into proper devices.
Introduce new module devcb2 which contains modernized
versions of devcb. Compared to previous implementation
this one is simpler overall, trampolining calls through
a single internal set of adapter functions. The new
versions are also designed to be specified in the
machine_config rather than in structures, so they are
no longer simple POD types. Additional new/changed
features:
* reads and writes can map to delegates for line or 8/16/32/64-bit
* reads and writes can map to an I/O port
* reads can be mapped to a constant value, with or without logging
* writes can be mapped to a device's input line
* all reads/writes can have a shift, mask, and/or xor applied
* devices can opt to make the functions safe-if-NULL when resolving
* only member function types are supported
Rewrote the YM2151 interface to be fully modernized, and
removed the ym2151_interface struct in favor of inline configs
using the new devcb2 mechanism. In many cases, removed
no longer needed trampolines, instead taking advantage of
direct support for input line writes.
|