summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/machine/i8214.cpp
Commit message (Collapse)AuthorAgeFilesLines
* emu/devcb.h: Eliminated the need to call resolve() on callbacks. (#11333) Vas Crabb2023-06-171-4/+0
| | | | | | | | | | | | 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.
* i8214: Back out previous changes to device emulation in ↵ AJR2022-05-041-7/+9
| | | | e38360692285e7fa0e0574b8b00585536b696949 except as a system-specific hack
* pc8801.cpp: major groundwork cleanups (#9533) Angelo Salese2022-04-161-2/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * pc80s31k.cpp: minor XTAL cleanup * pc8801.cpp: reduce signature name fns * pc8801.cpp: separate dictionary and CD-ROM later model use into own state machines * pc8801.cpp: clean input ports a bit * pc8801.cpp: bulk printf -> logerror * pc8801.cpp: misc cleanups * pc8801.cpp: more misc cleanups * pc8801.cpp: initial batch of exporting PC8801-31 to a separate device * pc8801_31.cpp: document register map, add machine ID * pc8801.cpp: fix configuration mistake for CPU speed * pc8801.cpp: add base diplocations, massage documentation of ports $30, $31, $40, misc cleanups * pc8801.cpp: fix mouse cursor jump bugs, remove deprecated PORT_RESET usage; pc8801.cpp: rework and extend expansion slot descriptions; * pc8801.cpp: add note about extended FH keyboards * pc8801.cpp: add dip positions for BASIC dips * pc8801_31.cpp: add stub SCSI bus controller * pc8801.cpp: blind fix kanji LV2 hookup * pc8801.cpp: use required_region_ptr for ROM regions, split kanji_lv2 to own one * pc8801.cpp: move a few notes to XML * pc8801_flop.xml: correct Digan no Maseki title * pc8801.cpp: remove unneeded port $33 hookup (should be unmapped on all PC8801 variants) * pc8801.cpp: initial implementation of interrupts using i8214 as base. Fixes at least yojukiko and bishojbg BGMs * pc8801.cpp: add clock calculation for internal DAC1BIT, add reported V1 revision numbers for each romset. * pc8801.cpp: move OPN/OPNA sound chip mounts to internal model types, add stereo mixing * pc8801.cpp: add sound irq pending mechanism, particularly needed by Telenet games * pc8801_flop.xml: update QA notes * pc8801_flop.xml: more misc QA notes * pc8801.cpp: improve irq semantics, connect rxrdy_irq_w signal * pc8801.cpp: fix some irq regressions * pc8801.cpp: make OPNA a bit less louder, QA checkpoint * pc8801.cpp: fix broken link, unmapped I/O documentation * pc8801.cpp: add JMB-X1 map, other minor notes * pc8801_flop.xml: fix metalora title and manufacturer * pc8801.cpp: minor cleanups * pc8801.cpp: start inheriting from base pc8001_base_state, add initial hooks for actual 3301 + i8257 devices * pc8801.cpp: fix port40_r reading mistake * pc8801.cpp: fix 24kHz pixel clock * pc8801.cpp: 3301 irq is tied to VRTC not INT * upd3301.cpp: fix VRTC vblank/display bit timer * pc8801.cpp: fix DMA readback * upd3301.cpp: convert to logmasked * upd3301.cpp: support for no attributes/no special control mode * pc8801.cpp: simplify bitmap 3bpp drawing and add preliminary palette rasters * pc8801.cpp: misc documentation updates * upd3301.cpp: clear bitmap layer on FIFO reset * i8214.cpp: PoC in separating INT ASSERT and CLEAR phases pc8801.cpp: tie acknowledge to INT rather than inside callback. Avoids spurious irq regressions; * upd3301.cpp: handle bitmaps as pure transparent; pc8801.cpp: add BG Pal handling, honor transparency in all bitmap layers; * pc8801.cpp: minor cleanups * pc8801.cpp: better handling of bitmap fills * pc8001.cpp: carry over attribute fetches between lines when 3301 is in color mode * pc8801_flop.xml: update QA, move notes from main driver * pc8801.cpp: implement colorized b&w graphic modes * pc8801.cpp: cleanup obsolete functions * pc8801.cpp: extend a bunch of notes * pc8801.cpp: add boilerplate code for base irq mechanism * pc8801.cpp: add expansion card support, with JMB-X1 (partly addresses #8709), PC-8801-23 and PCG-8100 as PoC examples. * pc8801_exp.h: fix CI clang build * pc8801_31.cpp: SW list hookup New NOT_WORKING software list additions --------------------------------------- pc8801_cdrom.xml: CD Takarabako [r09] * pc8801.cpp: promote some romsets to parent * pc8801.h: reinstate dummy initialization in state machines * pc8801.cpp: save_item to all variables in state machines
* devices/machine: simplified handlers for various devices (nw) Ivan Vangelista2020-03-241-4/+4
|
* -6840ptm: Added specific logging channels. Added direct output state getter. ↵ mooglyguy2020-02-021-8/+57
| | | | | | | | Set output state to 0 when clearing the output callback. [Ryan Holtz, Phil Bennett] -i8214: Updated logging. Adjusted interrupt level check. Added combined B/SGS setter and bulk R setter. [Ryan Holtz, Phil Bennett] -cmi: Numerous IRQ-related fixes. Nearly all CMIINT tests pass. [Ryan Holtz]
* i8214: check pending interrupts when ETLG and INTE lines change (nw) Sergey Svishchev2018-03-281-0/+4
|
* i8214: Update device name (nw) AJR2017-09-251-1/+1
|
* konin: Add a full range of peripherals; only partly configured at the moment ↵ AJR2017-09-251-1/+12
| | | | | | (nw) i8214: Add callback for convenient interrupt vector latching (nw)
* i8212, i8214: Rename IRQ to INT to agree with Intel pin names (nw) AJR2017-09-241-4/+4
|
* Move static data out of devices into the device types. This is a ↵ Vas Crabb2017-05-141-16/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-1/+1
| | | | | | | | | | | | | | * 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.
* NOTICE (TYPE NAME CONSOLIDATION) Miodrag Milanovic2016-10-221-4/+4
| | | | | 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
* -cmi2x: Fix 6809 interrupt vectoring. [Ryan Holtz] therealmogminer@gmail.com2016-09-251-21/+29
|
* reverting: Miodrag Milanovic2016-01-201-8/+8
| | | | | | | 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-8/+8
| | | | fix start project for custom builds in Visual Studio (nw)
* Rename *.c -> *.cpp in our source (nw) Miodrag Milanovic2015-11-081-0/+205