summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/c64/user.cpp
Commit message (Collapse)AuthorAgeFilesLines
* c64.cpp, c128.cpp: fixed CBM IEC slot address not being set when replacing ↵ Vas Crabb2019-11-151-1/+1
| | | | | | | | | | | | | | | | | | | devices in machine config bus/c64/rex_ep256.cpp: fixed array of EPROM slots not being populated (subdevices don't exist at construction time) cleanup: (nw) * having a macro for a device's expected tag in a header is bad - devices should not make assumptions about their tag or their location in the system hierarchy * device types exist in the global namespace - you must not use overly generic names for them as this is likely to cause collisions * device short names and titles each have their own namespace, but they're also global, and it should be possible to work out vaguely what a device is from its names * POSIX reserves all names ending in "_t" at global scope - we want fewer of these causing potential future issues, not more * if your device is in the global namespace, you should name it in a way that's not asking for name collisions to happen * we have a simple convention for device class names - it doesn't hurt to follow it: - concrete device_t implementations end with "_device" - device_interface implementations end with "_interface" (and often start with "device_") - abstract classes that derive from device_t end with "_device_base" * if you want to give your slot card device classes short, generic names, put them in a namespace for the "bus" * if you really want to use names ending with "_t", put them in a namespace or nest them inside a class
* Make MCFG_DEVICE_ADD and callable device types more flexible: Vas Crabb2018-05-041-9/+10
| | | | | | | | | | | | | | | | | | | | | * Allows defaulted clocks (see subtle example with vboy) * Allows additional constructors (see RS232 port in tranz330) * Allows use of device finder in place of tag in MCFG_DEVICE_ADD * Requires out-of-line destructor for devices using incomplete types * Requires XTAL or explicit u32 for clocks for devices with private types Devices must still define the standard constructor. When writing additional constructors, be aware that the constructor runs before device_add_mconfig in the context of the existing device, not the new device. See osborne1, zorba, tranz330, and vboy for examples of this in use. Compilation is a bit slower, but this is temporary while refactoring is in progress. Eliminated the need for MCFG_SOUND_ROUTE_EX. Removed macros from slot option configuration - they just obfuscated code and slowed it down with needless dynamic casts, but didn't actually simplify it.
* Remove emu.h from headers (nw) Olivier Galibert2017-02-111-0/+1
| | | | | | | | | | | | Per Vas' request. If the compile fails for you (i'm thinking osx and windows native debuggers here in particular), add '#include "emu.h"' as first include of the cpp files that fail. Due to our use of precompilation and forced inclusion, emu.h must be included as the very first non-comment thing we do if we want to be sure msvc compiles are identical to gcc/clang ones. Doing it directly instead of through an include increases the correctness probability by a magnitude.
* Rename *.c -> *.cpp in our source (nw) Miodrag Milanovic2015-11-081-0/+32