summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/c64
Commit message (Collapse)AuthorAgeFilesLines
* devcb: Eliminate legacy callback syntax (nw) AJR2019-06-061-6/+0
|
* srcclean (nw) Vas Crabb2019-05-262-17/+17
|
* (nw) validation Robbbert2019-05-241-1/+1
|
* finalchs: company official name is Tasc anyway, not TASC (nw) hap2019-05-242-2/+2
|
* New working software list additions hap2019-05-232-2/+2
| | | | | ----------------------------------- ibm5170: The Final ChessCard [hap]
* mc6845: More consistent identification of HD6845S variant (nw) AJR2019-05-182-3/+3
|
* c64: Added skeleton for BusCard II cartridge. [Curt Coder] Curt Coder2019-05-133-0/+289
|
* c64: added mouse controller (nw) hap2019-05-131-0/+2
|
* c64 fcc: clear comms flags on reset (nw) hap2019-05-131-0/+2
|
* c64 fcc: don't use romh for external rom (nw) hap2019-05-135-4/+8
|
* c64: Emulated the BusCard IEE-488 / Centronics cartridge. [Curt Coder] Curt Coder2019-05-132-20/+310
|
* Software list items promoted to working hap2019-05-122-133/+43
| | | | | | | | | | --------------------------------------- c64_cart: The Final ChessCard (Ger, v1.0) [hap] New working software list additions ----------------------------------- c64_cart: The Final ChessCard (Eng, v1.0) [hap, Ratuv] c64_cart: The Final ChessCard (Ger, v1.5) [hap, DDI]
* c64: Route LORAM to expansion port interface for BusCard. [Curt Coder] Curt Coder2019-05-119-35/+39
|
* c64: Added skeleton for BusCard cartridge. [Curt Coder] Curt Coder2019-05-053-0/+239
|
* (nw) Clean up the mess on master Vas Crabb2019-03-26135-479/+438
| | | | | | | | | | | | | This effectively reverts b380514764cf857469bae61c11143a19f79a74c5 and c24473ddff715ecec2e258a6eb38960cf8c8e98e, restoring the state at 598cd5227223c3b04ca31f0dbc1981256d9ea3ff. Before pushing, please check that what you're about to push is sane. Check your local commit log and ensure there isn't anything out-of-place before pushing to mainline. When things like this happen, it wastes everyone's time. I really don't need this in a week when real work™ is busting my balls and I'm behind where I want to be with preparing for MAME release.
* Revert "conflict resolution (nw)" andreasnaive2019-03-25135-438/+479
| | | | | This reverts commit c24473ddff715ecec2e258a6eb38960cf8c8e98e, reversing changes made to 009cba4fb8102102168ef32870892438327f3705.
* mc6845, crtc_ega: Simplify read/write handlers (nw) AJR2019-02-191-3/+3
|
* votrax: Simplify write handlers (nw) AJR2019-02-191-2/+2
|
* bus/c64: Eliminate address_space arguments from handlers (nw) AJR2019-02-19134-272/+272
|
* 6525tpi, mos6526, bus/vic10: Eliminate address_space argument from handlers (nw) AJR2019-02-192-4/+4
|
* bus/generic, bus/vc4000: Eliminate address_space argument from handlers (nw) AJR2019-02-196-14/+14
|
* mc6852, mc6854, mos6551: Simplify read/write handlers (nw) AJR2019-02-183-7/+7
|
* 6821pia, 6840ptm, 6850acia, bus/ss50, cmi01a: Simplify read/write handlers (nw) AJR2019-02-186-13/+13
| | | | 6850acia: Allow disabling side effects for reads (nw)
* screen.h: adddedconstructor for monochrom screens and removed ↵ Ivan Vangelista2019-02-1112-126/+84
| | | | | | | MCFG_SCREEN_ADD_MONOCHROME and MCFG_SCREEN_COLOR (nw) misc MACHINE_CONFIG removal (nw) started work on voltage_regulator_device macros removal (nw)
* some more MCFG macros removal (nw) Ivan Vangelista2019-02-081-1/+1
|
* intelfsh: Eliminate address_space argument from read/write handlers (nw) AJR2019-02-012-6/+6
|
* Remove unnecessary address_space arguments on FM sound chips read/write handlers cam9002019-01-311-2/+2
| | | | 2203intf.cpp, 2608intf.cpp, 2610intf.cpp, 2612intf.cpp, 262intf.cpp, 3526intf.cpp, 3812intf.cpp, 8950intf.cpp, ym2151.cpp, ym2413.cpp, ymf271.cpp, ymf278b.cpp : Simplified handlers (nw)
* output_latch: removed MCFG macros (nw) Ivan Vangelista2019-01-291-4/+5
|
* midi: remove MCFG macros (nw) Ivan Vangelista2019-01-195-25/+25
|
* src/devices: a bit more MCFG macro removal (nw) Ivan Vangelista2019-01-185-10/+10
|
* src/devices: a few less MCFG macros (nw) Ivan Vangelista2019-01-141-1/+1
|
* Start cleaning up palette configuration: Vas Crabb2018-12-291-1/+1
| | | | | | | | | | * Basically, initialisers go in the constructor arguments, and things for setting format go in set_format. * Initialisation patterns can be specified with an enum discriminator or with a FUNC and optionally a tag. * Formats can be specified with an enum discriminator or a size and function pointer. * You must always supply the number of entries when setting the format. * When initislising with a paletter initialisation member, you can specify the entries and indirecte entries together. * The palette_device now has a standard constructor, so use .set_entries if you are specifying entry count with no format/initialisation. * Also killed an overload on delegates that wasn't being useful.
* mc6845, upd7220: removed MCFG macros (nw) Ivan Vangelista2018-11-201-4/+5
|
* less space (nw) smf-2018-09-141-1/+1
|
* -intelfsh: Removed MCFG, nw mooglyguy2018-09-051-4/+5
|
* mos6551: Eliminate MCFG_ macros (nw) AJR2018-08-202-24/+26
| | | | | | a2232: Add input merger device to handle IRQs (nw) superpet: 6809 type identification (nw)
* -amigafdc, at29x, at45dbxx, at_keybc, ataintf, atmel_arm_aic, pci-ide: MCFG ↵ mooglyguy2018-08-151-5/+6
| | | | removal, nw
* c64_expansion_slot, pet_user_port: Eliminate all remaining MCFG_ macro use (nw) AJR2018-08-138-94/+49
| | | | | | bus/c64: Use DERIVED_CLOCK instead of machine().device hackery for passthru carts (nw) c64.cpp, c128.cpp: Use input merger devices for all emulated interrupts (nw)
* -68230pit, 68307, 68340, 6840ptm, 6850acia, 68561mpcc: Removed MCFG macros ↵ mooglyguy2018-08-115-18/+18
| | | | | | and old devcb. [Ryan Holtz] Let's see what I messed up this time, AJR. :) nw
* -pia6821: Removed MCFG and old devcb. [Ryan Holtz] mooglyguy2018-08-101-6/+7
|
* -6525tpi, 6532riot: Removed MCFG and old devcb accessors, nw mooglyguy2018-08-104-33/+67
|
* z80: Remove some MCFG_ macros. (nw) Vinicius Sa2018-07-131-5/+6
|
* sp0256: Remove MCFG_ (nw) Nigel Barnes2018-07-101-15/+7
|
* devcb3 Vas Crabb2018-07-071-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There are multiple issues with the current device callbacks: * They always dispatch through a pointer-to-member * Chained callbacks are a linked list so the branch unit can't predict the early * There's a runtime decision made on the left/right shift direction * There are runtime NULL checks on various objects * Binding a lambda isn't practical * Arbitrary transformations are not supported * When chaining callbacks it isn't clear what the MCFG_DEVCB_ modifiers apply to * It isn't possible to just append to a callback in derived configuration * The macros need a magic, hidden local called devcb * Moving code that uses the magic locals around is error-prone * Writing the MCFG_ macros to make a device usable is a pain * You can't discover applicable MCFG_ macros with intellisense * Macros are not scoped * Using an inappropriate macro isn't detected at compile time * Lots of other things This changeset overcomes the biggest obstacle to remving MCFG_ macros altogether. Essentially, to allow a devcb to be configured, call .bind() and expose the result (a bind target for the callback). Bind target methods starting with "set" repace the current callbacks; methods starting with "append" append to them. You can't reconfigure a callback after resolving it. There's no need to use a macro matching the handler signatures - use FUNC for everything. Current device is implied if no tag/finder is supplied (no need for explicit this). Lambdas are supported, and the memory space and offset are optional. These kinds of things work: * .read_cb().set([this] () { return something; }); * .read_cb().set([this] (offs_t offset) { return ~offset; }); * .write_cb().set([this] (offs_t offset, u8 data) { m_array[offset] = data; }); * .write_cb().set([this] (int state) { some_var = state; }); Arbitrary transforms are allowed, and they can modify offset/mask for example: * .read_cb().set(FUNC(my_state::handler)).transform([] (u8 data) { return bitswap<4>(data, 1, 3, 0, 2); }); * .read_cb().set(m_dev, FUNC(some_device::member)).transform([] (offs_t &offset, u8 data) { offset ^= 3; return data; }); It's possible to stack arbitrary transforms, at the cost of compile time (the whole transform stack gets inlined at compile time). Shifts count as an arbitrary transform, but mask/exor does not. Order of mask/shift/exor now matters. Modifications are applied in the specified order. These are NOT EQUIVALENT: * .read_cb().set(FUNC(my_state::handler)).mask(0x06).lshift(2); * .read_cb().set(FUNC(my_state::handler)).lshift(2).mask(0x06); The bit helper no longer reverses its behaviour for read callbacks, and I/O ports are no longer aware of the field mask. Binding a read callback to no-op is not supported - specify a constant. The GND and VCC aliases have been removed intentionally - they're TTL-centric, and were already being abused. Other quirks have been preserved, including write logger only logging when the data is non-zero (quite unhelpful in many of the cases where it's used). Legacy syntax is still supported for simple cases, but will be phased out. New devices should not have MCFG_ macros. I don't think I've missed any fundamental issues, but if I've broken something, let me know.
* acro removal, disambiguation, debugger side effects (nw) Vas Crabb2018-06-152-10/+10
|
* Remove emupal.h from emu.h (nw) AJR2018-06-131-0/+1
|
* as if millions of this pointers suddenly cried out in terror, and were ↵ Vas Crabb2018-06-084-9/+9
| | | | | | | suddenly silenced * streamline templates in addrmap.h * get rid of overloads on read/write member names - this will become even more important in the near future
* mc146818, ds1302, ds1386, ds2404: Eliminate customized MCFG_DEVICE_ADD ↵ AJR2018-05-271-1/+1
| | | | macros (nw)
* More cleanup/streamlining of machine configuration and macros: Vas Crabb2018-05-151-2/+2
| | | | | | | | | | | | | * Get rid of implicit prefix for GFX decode names and prefix them all * Get rid of special macro for adding GFXDECODE in favour of constructor * Make empty GFX decode a static member of interface * Allow palette to be specified to GFXDECODE as a device finder * Removed diserial.h from emu.h as it's used relatively infrequently Also fix darkseal and vaportra propely. The palette device automatically attaches itself to a share with matching tag. The correct solution here is to rename one or the other out of the way, since it was never attached to a share before.
* dsp16: fix condition mask in disassembler (nw) Vas Crabb2018-05-094-4/+4
| | | | (nw) remove more MCFG macros and make speaker config more explicit