summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/machine/i8255.cpp
Commit message (Collapse)AuthorAgeFilesLines
* emu/devcb.h: Eliminated the need to call resolve() on callbacks. (#11333) Vas Crabb2023-06-171-20/+6
| | | | | | | | | | | | Read callbacks now need a default return value supplied at construction. Replaced isnull() with isunset() which tells you if the callback wasn't configured rather than whether it isn't safe to call. Enabled validation of device callbacks (it seems it was disabled at some point, probably accidentally). Device callbacks and object finders now implement the same interface for resolution.
* emu/device.h: Removed device (READ|WRITE)_LINE_MEMBER in favor of explicit ↵ MooglyGuy2023-06-011-3/+3
| | | | function signatures. (#11283) [Ryan Holtz]
* Revert "i8255: update interrupt state with acknowledge/strobe inputs" Patrick Mackinlay2023-02-091-4/+0
| | | | This reverts commit 80e0114cc49d561f384c75473e65f1ab7cd42ee8.
* i8255: update interrupt state with acknowledge/strobe inputs Patrick Mackinlay2023-01-021-0/+4
|
* i8255: always latch input data when strobe is asserted (#9159) shattered2022-01-151-2/+2
|
* -Reworked device type definition macros a little and added more Doxygen. Vas Crabb2021-09-071-1/+0
| | | | | | | | | | | | | | | * Reworked device type definition macros to eliminate one level of indirection when using device types by name. * Fixed a potential initialisation order issue that could affect device parent ROMs. * Eliminated the need for DEFINE_DEVICE_TYPE_NS - just use DEFINE_DEVICE_TYPE or DEFINE_DEVICE_TYPE_PRIVATE with fully-qualified names. * Changed device type aliases to static auto references in the headers. * Added Doxygen comments for system/device definition macros and system flags. -Added ROM parents for m68705u3 and a2diskiing.
* i8255: Set ibf flag in output mode for port a Dirk Best2020-07-131-0/+1
|
* Revert "8255: missed one driver (nw)" Vas Crabb2019-12-171-3/+3
| | | | | | | | | | | | | | | | This reverts commit f115aa8c665fe6b531cf344e0956ff23e7043def. Revert "8255: set default tristate to 0 (nw)" This reverts commit 716d06341dba3ab9ee883ce82abe1d4fe8202b8b. This has been shown to break bw2, and it's very likely it breaks other computers in subtle ways or in ways that are only noticeable when you use a certain peripheral. It's far too dangerous, particularly late in a development cycle and with Christmas/new year coming. You can't push a change like this without checking every use of the device. Please fix any drivers you subsequently modified to depend on the change.
* 8255: set default tristate to 0 (nw) hap2019-12-141-3/+3
|
* New softwarelist additions hap2019-04-061-4/+6
| | | | | | ----------- intellect02: Chess (4 levels) [hap, Berger]
* space, space, space, space, space, space, space, space, mem_mask (nw) smf-2018-09-231-22/+10
|
* i8255: Refactor to make clear the exact sequences of actions acka_r and ↵ AJR2018-08-211-6/+12
| | | | ackb_r correspond to (nw)
* i8255: Add handlers for strobed Port A/B reads in Modes 1 & 2; allow some ↵ AJR2018-08-181-12/+48
| | | | | | side effects to be disabled (nw) vdm79322: Z80/8031 communications enabled (nw)
* (nw) srcclean and some cleanup: Vas Crabb2018-07-221-1/+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
* (nw) clean up properly and remove comments that just repeat function names ↵ Vas Crabb2018-07-141-141/+26
| | | | as they add no value and create clutter
* made device flags const (nw) mahlemiut2018-07-141-20/+12
|
* fix validation (nw) mahlemiut2018-07-121-4/+10
|
* Device types need actual definitions (nw) AJR2018-07-111-0/+2
|
* amstrad: create 8255 PPI clone based on the Amstrad Plus ASIC, and use it ↵ mahlemiut2018-07-121-3/+36
| | | | with the Plus and GX4000 drives. Fixes Plus detection in some games, breaks inputs in Barbarian (correct behaviour).
* misc cleanup and devcb3 prep (nw) Vas Crabb2018-07-031-8/+6
|
* i8255: hopefully improve readback of port C high output latches when port A ↵ Vas Crabb2018-05-101-0/+7
| | | | is in mode 1 (see github #3544) [hap, shattered]
* Sarayan made me do it. Vas Crabb2018-04-281-1/+1
| | | | | | | | | | Concrete device types now have a call operator that instantiates a device. This change means you *must* use DECLARE_DEVICE_TYPE to declare the public interface of your device, even if it's device_t. If you want to use private implementation classes, use DEFINE_DEVICE_TYPE_PRIVATE and instantiate the object finders.
* i8255: added tristate outputs, please replace any driver workarounds (nw) hap2017-06-141-5/+9
|
* Move static data out of devices into the device types. This is a ↵ Vas Crabb2017-05-141-33/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | significant change, so please pay attention. The core changes are: * Short name, full name and source file are no longer members of device_t, they are part of the device type * MACHINE_COFIG_START no longer needs a driver class * MACHINE_CONFIG_DERIVED_CLASS is no longer necessary * Specify the state class you want in the GAME/COMP/CONS line * The compiler will work out the base class where the driver init member is declared * There is one static device type object per driver rather than one per machine configuration Use DECLARE_DEVICE_TYPE or DECLARE_DEVICE_TYPE_NS to declare device type. * DECLARE_DEVICE_TYPE forward-declares teh device type and class, and declares extern object finders. * DECLARE_DEVICE_TYPE_NS is for devices classes in namespaces - it doesn't forward-declare the device type. Use DEFINE_DEVICE_TYPE or DEFINE_DEVICE_TYPE_NS to define device types. * These macros declare storage for the static data, and instantiate the device type and device finder templates. The rest of the changes are mostly just moving stuff out of headers that shouldn't be there, renaming stuff for consistency, and scoping stuff down where appropriate. Things I've actually messed with substantially: * More descriptive names for a lot of devices * Untangled the fantasy sound from the driver state, which necessitates breaking up sound/flip writes * Changed DECO BSMT2000 ready callback into a device delegate * Untangled Microprose 3D noise from driver state * Used object finders for CoCo multipak, KC85 D002, and Irem sound subdevices * Started to get TI-99 stuff out of the TI-990 directory and arrange bus devices properly * Started to break out common parts of Samsung ARM SoC devices * Turned some of FM, SID, SCSP DSP, EPIC12 and Voodoo cores into something resmbling C++ * Tried to make Z180 table allocation/setup a bit safer * Converted generic keyboard/terminal to not use WRITE8 - space/offset aren't relevant * Dynamically allocate generic terminal buffer so derived devices (e.g. teleprinter) can specify size * Imporved encapsulation of Z80DART channels * Refactored the SPC7110 bit table generator loop to make it more readable * Added wrappers for SNES PPU operations so members can be made protected * Factored out some boilerplate for YM chips with PSG * toaplan2 gfx * stic/intv resolution * Video System video * Out Run/Y-board sprite alignment * GIC video hookup * Amstrad CPC ROM box members * IQ151 ROM cart region * MSX cart IRQ callback resolution time * SMS passthrough control devices starting subslots I've smoke-tested several drivers, but I've probably missed something. Things I've missed will likely blow up spectacularly with failure to bind errors and the like. Let me know if there's more subtle breakage (could have happened in FM or Voodoo). And can everyone please, please try to keep stuff clean. In particular, please stop polluting the global namespace. Keep things out of headers that don't need to be there, and use things that can be scoped down rather than macros. It feels like an uphill battle trying to get this stuff under control while more of it's added.
* Start cleaning up duplicate shortnames Vas Crabb2017-03-031-1/+1
|
* Self-registering devices prep: Vas Crabb2017-02-271-2/+2
| | | | | | | | | | | | | | * Make device_creator a variable template and get rid of the ampersands * Remove screen.h and speaker.h from emu.h and add where necessary * Centralise instantiations of screen and speaker finder templates * Add/standardise #include guards in many hearers * Remove many redundant #includes * Order #includesr to help catch headers that can't be #included alone (nw) This changes #include order to be prefix, unit header if applicable then other stuff roughly in order from most dependent to least dependent library. This helps catch headers that don't #include things that they use.
* 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.
* i8255: revert for now but revisit it later (nw) cracyc2017-01-141-5/+0
|
* i8255: in read_pc(), also return data from output latch Sergey Svishchev2017-01-101-0/+5
|
* NOTICE (TYPE NAME CONSOLIDATION) Miodrag Milanovic2016-10-221-23/+23
| | | | | Use standard uint64_t, uint32_t, uint16_t or uint8_t instead of UINT64, UINT32, UINT16 or UINT8 also use standard int64_t, int32_t, int16_t or int8_t instead of INT64, INT32, INT16 or INT8
* reverting: Miodrag Milanovic2016-01-201-26/+26
| | | | | | | SHA-1: 1f90ceab075c4869298e963bf0a14a0aac2f1caa * tags are now strings (nw) fix start project for custom builds in Visual Studio (nw)
* tags are now strings (nw) Miodrag Milanovic2016-01-161-26/+26
| | | | fix start project for custom builds in Visual Studio (nw)
* cleanup (nw) Miodrag Milanovic2015-12-261-3/+3
|
* Rename *.c -> *.cpp in our source (nw) Miodrag Milanovic2015-11-081-0/+995