summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/machine/ins8250.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Major timer object reshuffling. timer_expired_delegate wraps the various ↵ Aaron Giles2021-03-261-1/+1
| | | | callback types. timer_callback is a class containing a timer_expired_delegate plus a user-supplied pointer, and accounting information for registration. timer_instance is a single active timer in the scheduler. persistent_timer is what you get back from timer_alloc() now, and has methods for dynamic changes. transient_timer_factory is what you use to create transient timers. Devices now own a transient_timer_factory for transient device timers. persistent_timers can be emedded and initialized directly.
* Add scheduler object and accessor to device_t. Upgrade all 3 timer ↵ Aaron Giles2021-03-241-1/+1
| | | | parameters to u64. Change first parameter of device timers to be emu_timer const. Updated all device timers to follow suit.
* Uninitialized variable fixes (#7406) Sven Schnelle2020-10-271-0/+1
| | | | | | | | | | | | | | | | | | * hp98265a: initialize members * hp98543: initialize members * hp98544: initialize members * hp98550: initialize members * hp98620: initialize members * hp98644: initialize members * hp_dio: initialize members * human_interface: initialize members * hlebase: initialize members * hlemouse: initialize members * hp_hil: initialize members * 8291a: initialize members * ins8250: initialize members * tms9914: initialize members * catseye: initialize members
* hp80: HP82939 serial I/O module added (#6366) fulivi2020-03-011-17/+15
| | | | | | | | * hp80: added HP82939 serial I/O module. Fixed a small bug in INS8250 that prevented module self-test to pass. Improved the interrupt handling of hp80 systems. * hp80: changed scheduling to use "set_perfect_quantum"
* ins8250: ignore fifo bits when clearing interrupt (nw) Patrick Mackinlay2020-01-071-1/+1
|
* ins8250: reverted BAUDOUT pin support and documented findings in eispc.cpp Joakim Larsson Edstrom2019-11-181-39/+7
|
* ins8250.cpp: fixed regression caused by local BRG used for baudout pin support Joakim Larsson Edstrom2019-11-161-5/+6
|
* ins8250 support for BAUDOUT pin (#5858) and Joakim Larsson Edström2019-11-151-6/+37
| | | | | | | | * ins8250: improved support for BAUDOUT pin and added rclk_w to allow special receiver clock circuit required for descrete BRG of the epc driver * epc: Added 8087 support * epc: Added S21 jumper supporting secondary keyboard connector interface and completed the descrete BRG
* ins8250: fix cleared pending THRE interrupt 68bit2019-10-161-2/+5
| | | | | | | | | | | | | The code notes that reading the iir register "will clear the int if this is the source of the int" and the code cleared a pending THRE interrupt if it was *pending*. This causes a lost THRE interrupt for the SWTPC 8121 terminal firmware and this locks up the TX side of the terminal. This occurred regularly when the ISR read this register upon a higher priority RX pending interrupt. The documented operation has been reinterpreted as only clearly the THRE interrupt if THRE is the highest priority interrupt and so is the pending interrupt *causing* the interrupt. This fixes that lost THRE interrupt for the SWTPC 8121 terminal.
* devices/machine/ins8250.cpp : Simplify handlers, Use shorter type values cam9002019-03-301-34/+34
|
* (nw) Clean up the mess on master Vas Crabb2019-03-261-0/+2
| | | | | | | | | | | | | 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-251-2/+0
| | | | | This reverts commit c24473ddff715ecec2e258a6eb38960cf8c8e98e, reversing changes made to 009cba4fb8102102168ef32870892438327f3705.
* ins8250: Allow writes to MSR with lower 4 bits zero to clear the associated ↵ AJR2019-01-211-0/+2
| | | | interrupt. This is not confirmed behavior, but is logically consistent with nonzero bits causing interrupts when written.
* ins8250: Detect framing and parity errors; allow side effects of reads to be ↵ AJR2018-12-281-21/+58
| | | | disabled
* hazl1420: Add interrupts and hook up DIP switches through I/O expanders (nw) AJR2018-09-241-0/+4
|
* mcs48: Eliminate now-unneeded arguments from p1_r and p2_r handlers (nw) AJR2018-09-231-0/+5
| | | | ins8250: Add interrupt line read handler for later use (nw)
* ins8250.cpp: Notes on Intel variants (nw) AJR2018-04-111-0/+10
|
* ins8250: Add hack to reset transmitter when baud rate is changed AJR2018-03-111-2/+13
| | | | (nw) This is needed to make the VT102 printer loopback test pass because ins8250_uart_device does not fully emulate the baud rate generator as the independent block it really is, but relies on the all-purpose, somewhat faulty device_serial_interface implementation.
* ins8250: unbreak the pcjr (nw) cracyc2018-02-031-1/+1
|
* Fix macOS build. constexpr considered harmful, etc. (nw) arbee2017-08-271-7/+7
|
* add and use INS8250 register defines (#2601) Sven Schnelle2017-08-271-37/+60
| | | | | * replace LSR bits by defines * replace MCR by bit defines * replace LCR by bit defines
* Cleaned up serial, matrix keyboard and TI-8x link protocol interfaces: Vas Crabb2017-07-111-9/+1
| | | | | | | | | | * Switched to delegate timers - Frees implementations from having to call timer method - Eliminates risk of ID conflicts with implementations/other interfaces * Moved save state registration to interface post start - Plays nicely with device_missing_dependencies exceptions - Frees implementation from having to call save state registration method - Improves save state support in devices that neglected to call method
* Move static data out of devices into the device types. This is a ↵ Vas Crabb2017-05-141-29/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Self-registering devices prep: Vas Crabb2017-02-271-4/+4
| | | | | | | | | | | | | | * 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.
* NOTICE (TYPE NAME CONSOLIDATION) Miodrag Milanovic2016-10-221-10/+10
| | | | | 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
* ins8250: be a bit more careful (nw) cracyc2016-07-261-1/+1
|
* atapicdr: unbreak firebeat (nw) cracyc2016-07-261-0/+2
| | | | ins8250: reassert thre irq when setting mask (nw)
* ins8250: don't clear THRE on write to the line status register Dirk Best2016-03-171-1/+1
|
* reverting: Miodrag Milanovic2016-01-201-5/+5
| | | | | | | SHA-1: 1f90ceab075c4869298e963bf0a14a0aac2f1caa * tags are now strings (nw) fix start project for custom builds in Visual Studio (nw)
* Revert "some additional (nw)" Miodrag Milanovic2016-01-201-1/+1
| | | | This reverts commit e8512cb57bfcfc69d5abab5f2e993f139f306536.
* some additional (nw) Miodrag Milanovic2016-01-161-1/+1
|
* tags are now strings (nw) Miodrag Milanovic2016-01-161-5/+5
| | | | fix start project for custom builds in Visual Studio (nw)
* Rename *.c -> *.cpp in our source (nw) Miodrag Milanovic2015-11-081-0/+705