summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/devcb.h
Commit message (Collapse)AuthorAgeFilesLines
...
* Modified the makefile to support experimental optional C++ Aaron Giles2009-02-281-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | compilation: - new option CPP_COMPILE to trigger this (off by default) - split CFLAGS into common, C-only, and C++-only flags - when enabled, CPP_COMPILE causes 'pp' to be appended to the target name NOTE THAT THE SYSTEM CANNOT ACTUALLY BE COMPILED THIS WAY YET. IT IS JUST AN EXPERIMENT. Modified lib.mak to always build zlib/expat as C regardless of CPP_COMPILE. Modified windows.mak to fix warnings with MAXOPT=1, and to leverage the new CFLAGs definitions. Modified vconv.c to do appropriate conversions for new C++ options. Updated sources so that libutil, libocore (Windows), and libosd (Windows) can be cleanly compiled as C or C++. This was mostly adding some casts against void *. Fixed a few more general obvious problems at random locations in the source: - device->class is now device->devclass - TYPES_COMPATIBLE uses typeid() when compiled for C++ - some functions with reserved names ('xor' in particular) were renamed - nested enums and structs were pulled out into separate definitions (under C++ these would need to be scoped to be referenced) - TOKEN_VALUE cannot use .field=x initialization in C++ :(
* Cleanups and version bump.mame0129u4 Aaron Giles2009-02-171-1/+1
|
* 1. Added the ability to invoke CPU input lines with devcb callbacks Nathan Woods2009-01-311-0/+6
| | | | | | | 2. Changed sp0256 to use devcb callbacks 3. Updated sauro driver as per #2
* Cleanups and version bump.mame0129u3 Aaron Giles2009-01-291-25/+25
|
* Added new module devcb, which can generically handle conversions between device Aaron Giles2009-01-261-0/+265
read/write functions and various other types of functions. Introduced new structures and macros to make this possible. To take advantage of this, a device must change its interface to replace and read/write callbacks with the new devcb_read/write structures. During device start time, the device then uses this new devcb module to resolve the information in the devcb_read/write structures into a more efficient form. When the device needs to call one of the callbacks, it uses the inline devcb_call_read/write functions. Once a device has defined its callbacks as devcb_read/write structures, users of the device must use the DEVCB_* macros to specify the type and information about the handler to use: DEVCB_NULL = no handler DEVCB_HANDLER = a standard device read/write handler DEVCB_MEMORY_HANDLER = a memory address space read/write handler DEVCB_DEVICE_HANDLER = a device read/write handler for a different device DEVCB_INPUT_PORT = an input port Converted the 8255PPI device to use this new structure, and updated all users to use the DEVCB macros, removing some unnecessary trampoline functions along the way.