summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus
Commit message (Collapse)AuthorAgeFilesLines
* remove unused this (nw) smf-2018-08-091-2/+2
|
* -via6522: Removed MCFG acessors, nw mooglyguy2018-08-0913-655/+431
|
* ti99: Hexbus floppy now working for 99/2 Michael Zapf2018-08-085-29/+75
|
* Merge pull request #3834 from pmackinlay/keyboard R. Belmont2018-08-071-72/+72
|\ | | | | interpro lle keyboard: expand mappings (nw)
| * interpro lle keyboard: expand mappings (nw) Patrick Mackinlay2018-08-071-72/+72
| |
* | interpro: devcb3 goodness (nw) (#3737) Patrick Mackinlay2018-08-079-558/+480
|/ | | | | | | | | | | | | | | | | * interpro: devcb3 goodness (nw) * interpro: more mcfg and some devcb3 (nw) Please excuse the mess in the edge driver for now - this is a major WIP and not understood at all well at this point. * interpro: various fixes/improvements (nw) clipper: fix bugs in carry flag handling, prefer sign bit for tests cammu: implement tlb, use memory_access_cache, remove device address map interpro: use locals for mouse and bus ioga: use memory_access_cache * interpro: doh (nw)
* -mac: MACHINE_CONFIG removal, nw mooglyguy2018-08-042-9/+33
|
* Previous commit examples of use (nw) Olivier Galibert2018-08-028-22/+22
|
* Make OG happier about output latches, nw mooglyguy2018-08-026-40/+19
|
* apple2: fixed reverse-logic on TransWarp slot DIPs that caused disks to not ↵ arbee2018-08-021-3/+2
| | | | boot. [R. Belmont]
* bus/isa: Eliminate some region_alloc abuse (nw) AJR2018-08-013-14/+6
|
* ripple_counter: Finish devcb3 conversion (nw) AJR2018-08-011-2/+2
|
* -oric, pet, prodigy, rmnimbus, ssystem3, swtpc09, swyft, sym1, trvquest, ↵ mooglyguy2018-08-018-31/+75
| | | | | | tv950, vectrex, victor9k, wicat: [Ryan Holtz] * Removed MACHINE_CONFIG and MCFG usage where possible.
* -vic20: Removed MCFG and duplicated machine configs. [Ryan Holtz] mooglyguy2018-08-017-39/+62
|
* -c1541, c1571, c2031, c1551, rastersp: Removed MCFG and MACHINE_CONFIG ↵ mooglyguy2018-08-0113-313/+274
| | | | | | | | usage. [Ryan Holtz] -model3: Some basic MACHINE_CONFIG cleanup, nw -pla: Added PLS100 device, nw
* Fix recent regressions, nw mooglyguy2018-08-012-2/+9
|
* -8042kbdc, mb89352, mc6854: Removed legacy devcb accessors. [Ryan Holtz] mooglyguy2018-07-313-13/+21
|
* old scsi: minor stuff (nw) Olivier Galibert2018-07-301-6/+1
|
* -abcbus/hdc, abcbus/lux21056, abcbus/lux4105, zorro/a590:, cbmiec/cmdhd, ↵ mooglyguy2018-07-3017-235/+276
| | | | | | | | | | | | | | econet/e01, ieee488/d9060, video/huc622, x68k_scsiext: device_add_mconfig modernization. [Ryan Holtz] -amiga_dmac: Replaced old devcb with devcb3. [Ryan Holtz] -mc6854, ataintf, mb89352, mc6854, wd33c93: Added devcb3 support. [Ryan Holtz] -8042kbdc, i8255, idectrl, intelfsh, mb89352, ram, wd33c93, volt_reg: Default clocks to 0 (nw) -bebox, indy_indigo2: machine_config modernization. [Ryan Holtz]
* fccpu20 : fixed terminal display Robbbert2018-07-291-0/+10
|
* emu.h fix (nw) smf-2018-07-221-0/+1
|
* (nw) srcclean and some cleanup: Vas Crabb2018-07-223-4/+1
| | | | | | * Make more #include guards follow standard format - using MAME_ as the prefix makes it easy to see which ones come from our code in a preprocessor dump, and having both src/devices/machine/foo.h and src/mame/machine/foo.h causes issues anyway * Get #include "emu.h" out of headers - it should only be the first thing in a complilation unit or we get differences in behaviour with PCH on/off * Add out-of-line destructors to some devices - it forces the compiler to instantiate the vtable in a certain location and avoids some non-deterministic compiler behaviours
* pc9801.cpp: Eliminate bogus XTALs (nw) AJR2018-07-212-8/+4
|
* vip: Give the expansion bus full access to N and TPB (nw) AJR2018-07-196-26/+85
|
* cdp1852: Replace callback macros with devcb3 bindings; use line write ↵ AJR2018-07-192-21/+39
| | | | | | handler to clock output from TPB (nw) comx35: Add SC and TPB handlers for the expansion bus (nw)
* dragon devices: remove MCFG_ and machine().device (nw) Nigel Barnes2018-07-173-50/+32
|
* remove lots of MCFG_ (nw) Vas Crabb2018-07-173-106/+105
|
* Allow per-device internal layouts and remove some more MCFG_ macros. Vas Crabb2018-07-164-16/+12
| | | | | | | | | | | Input and screen tags are now resolved relative to a layout's owner device. Easy way to demonstrate is with: mame64 intlc440 -tty ie15 Previously you'd only get the IE15 terminal's layout and you'd be unable to use the INTELLEC 4/40 front panel. Now you'll get the choice of layouts from both the system and the terminal device in video options.
* New skeleton device: Western Digital WD1007A ESDI hard disk controller [Al ↵ AJR2018-07-143-0/+104
| | | | Kossow]
* more cleanup and removal of mcfg (nw) Vas Crabb2018-07-156-73/+69
|
* Made a pass over the source to eliminate uppercase hex in hashes (nw) Scott Stone2018-07-131-6/+6
|
* (nw) 6821 and 6850 have no clock for bus logic side, remove some MFCG_, fix ↵ Vas Crabb2018-07-136-63/+63
| | | | build, tidy some stuff
* z80: Remove some MCFG_ macros. (nw) Vinicius Sa2018-07-133-14/+17
|
* cleanup (nw) Vas Crabb2018-07-1215-49/+43
|
* sp0256: Remove MCFG_ from coco_ssc (nw) Nigel Barnes2018-07-111-3/+3
|
* sp0256: Remove MCFG_ (nw) Nigel Barnes2018-07-107-67/+42
|
* Acorn Bus slot devices for:- Nigel Barnes2018-07-1031-0/+2775
| | | | | | | | | | | | | | | | | | | | Acorn Atom: - AtomSID - Acorn Atom Disc Pack - Econet Board Acorn System: - 32K Dynamic RAM Board - 8K Static RAM Board - Cassette Interface Board - Econet Board - Floppy Disc Controller Board - 40 Column VDU Board - 80x25 VDU Board - Versatile Interface Board CMS: - CMS 40/80 Video Terminal Card - CMS Floppy Disc Controller - CMS High Resolution Colour Graphics Card
* more of the same (nw) Vas Crabb2018-07-081-32/+4
|
* remove more MCFG_ (nw) Vas Crabb2018-07-074-21/+16
|
* devcb3 Vas Crabb2018-07-07118-652/+705
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* interpro: CLIX boots (on the ip2000) (#3730) Patrick Mackinlay2018-07-054-30/+35
| | | Too many changes to describe in detail. A rewrite of the interrupt and dma code in the ioga, and fixes to the cpu and mmu were the most important things.
* misc cleanup and devcb3 prep (nw) Vas Crabb2018-07-032-3/+3
|
* ti99: Removed deprecated function calls, simplified GROM access, added ↵ Michael Zapf2018-06-3018-257/+370
| | | | logmacro. (nw)
* Merge pull request #3715 from StefanBruens/fix_arm_build ajrhacker2018-06-3012-21/+6
|\ | | | | Avoid multiple explicit instantiations definition of templates
| * Avoid multiple explicit instantiations definition of templates Stefan Brüns2018-06-2912-21/+6
| | | | | | | | | | | | | | | | | | | | According to the C++ standard 14.7 clause 5, "an explicit instantiation definition shall appear at most once in a program". Move the instantiation from the individual implementation files to the interface implementation file. Signed-off-by: Stefan Brüns <stefan.bruens@rwth-aachen.de>
* | emumem: Backend modernization [O. Galibert] Olivier Galibert2018-06-296-11/+18
|/
* Merge tag 'mame0199' Vas Crabb2018-06-272-5/+2
|\ | | | | | | MAME 0.199
| * appease MSVC (nw) Vas Crabb2018-06-252-5/+2
| |
* | copyright holder consistency (nw) hap2018-06-261-1/+1
| |
* | hd63450: Configure device clock (not used yet); back out custom constructor (nw) AJR2018-06-251-1/+2
| |