summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/machine (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Sunplus Plug & Play work (cleanup + fixes + notes based on wrlshunt code ↵ David Haywood2019-12-047-153/+306
| | | | | | | | | | | | | | | | | | analysis) (#6010) * misc sunplus work (nw) * unbreak a few things, remove some test code (nw) * mask shift values, maybe correct based on code study (nw) * refactor (nw) * notes based on code study (nw) * force a different codepath in wrlshunt, static screen, but differnet, no crash, need to see if it's valid (nw) * test (nw)
* -sun4c_mmu: Fixed a few more SS2 self-tests, and hopefully fixed a compile ↵ MooglyGuy2019-12-022-8/+134
| | | | error, nw
* -sun4c_mmu: Fixed a couple of sun4_75 self-tests, nw Ryan Holtz2019-12-022-8/+5
|
* pcf8584: Very minor cleanup (nw) AJR2019-12-011-2/+1
|
* m6802, nsc8105: Internalize internal RAM (nw) AJR2019-12-011-1/+0
|
* fdc37c93x.cpp: use enum constants and not explicit values (nw) yz70s2019-11-292-40/+41
|
* updated my recent commits to initialize bools with false instead of 0, as ↵ Ivan Vangelista2019-11-281-3/+3
| | | | suggested (nw)
* sunplus_gcm394.cpp : wrlshunt / smartfp, continued research (#5972) David Haywood2019-11-264-42/+82
| | | | | | | | | | | | | | | | | | | | * fix opcode (nw) * (nw) * allow wrlshunt to move forward (nw) * more ops (nw) * more ops (nw) * (nw) * more dma fixes (nw) * (nw) * (nw)
* acorn_vidc.cpp: initialize some stuff (nw) Ivan Vangelista2019-11-261-0/+10
|
* sunplus_gcm394.cpp plug & play experiments looking at wrlshunt (#5953) David Haywood2019-11-254-34/+110
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * unsp : goto MR * not banked? (nw) * dma tweaks (nw) * (nw) * prep (nw) * prep (nw) * prep (nw) * prep (nw) * preparation (nw) * experimental (nw) * testing (nw) * cleaner implementation (nw) * skip over EEPROM(?) check (nw) * push forward (nw)
* intelfsh.cpp: sst 49lf020 does not support certain commands in certain ↵ yz70s2019-11-241-3/+11
| | | | states (nw)
* srcclean and indentation cleanup (nw) Vas Crabb2019-11-245-17/+17
|
* Merge pull request #5936 from JoakimLarsson/alfaskop410x_1 Joakim Larsson Edström2019-11-221-62/+24
|\ | | | | WIP Alfaskop S41 skeleton drivers
| * mc6854.cpp: small cleanup for readability Joakim Larsson Edstrom2019-11-211-62/+24
| |
* | new working ZX Spectrum slot devices: DISCiPLE and +D disk interfaces (#5931) Tom2019-11-222-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * plusd working (rom patch) * plusd done * added disciple, not working * disciple working * wd_fdc fix * final tidy-up * ready for pr * Pernod70 changes * cuavas changes #1 * combine devices + files * sort out side_effects
* | mb8421.cpp : Support variable size and data width, Use template for base ↵ cam9002019-11-212-228/+201
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | device, Add notes (#5929) * mb8421.cpp : Support variable size and data width, Reduce duplicate, Add notes twinkle.cpp, firebeat.cpp : Device-fied CY7C131 Dual port SRAM, Add notes esqmr.cpp : Add IDT7130 Dual port SRAM placeholder, Add notes * esqmr.cpp : Fix spacing * mb8421.cpp : Fix data width behavior * mb8421.cpp : Forgot this * mb8421.cpp : Fix spacing * mb8421.cpp : Use const in initializers, Fix class name related to support more similar DPRAMs in future , Add notes, Remove internal helpers * mb8421.cpp : Re-add masking * mb8421.cpp : Fix notes * mb8421.cpp : Fix manufacturer tags, Add notes * mb8421.cpp : Fix ram size argument behavior, Add notes * mb8421.cpp : Use template for base device, Fix build * mb8421.cpp : Use template and static constexprs for RAM defines * mb8421.cpp : Use extern template, Fix build, RAM size
* Merge pull request #5920 from JoakimLarsson/nobaudoutpin Joakim Larsson Edström2019-11-182-46/+7
|\ | | | | ins8250: reverted BAUDOUT pin support and documented findings in eispc.cpp
| * ins8250: reverted BAUDOUT pin support and documented findings in eispc.cpp Joakim Larsson Edstrom2019-11-182-46/+7
| |
* | -sun4c_mmu.cpp: Made generic to support sun4 MMU mode, and cleaned up save ↵ mooglyguy2019-11-182-105/+196
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | state usage. [Ryan Holtz] -sun4.cpp: Various changes: [Ryan Holtz] * Split sun4 and sun4c hardware emulation into separate derived classes. * Hooked up Sbus IRQs. * Removed now-unnecessary duplicate MMU code. -cgsix.cpp: Added VSync IRQ, cleaned up save state usage, and added THC MISC register. [Ryan Holtz] -sparc.cpp: Renamed MB86901 to SPARCV7, and added a separate class for SPARCV8. [Ryan Holtz] -bt45x.cpp: Made logmacro.h usage more consistent. [Ryan Holtz]
* | ficpio2: Fix validation (nw) AJR2019-11-172-21/+21
|/
* ins8250.cpp: fixed regression caused by local BRG used for baudout pin support Joakim Larsson Edstrom2019-11-161-5/+6
|
* netlist: more code maintenance. (nw) couriersud2019-11-161-3/+11
| | | | | | - refactor error messages. - Fix some drivers to cope with outputted added my the mame driver for video and sound. - Fix validation.
* 8042kbdc.cpp: recognize mouse reset command (nw) yz70s2019-11-151-0/+6
|
* netlist: maintenance and bug fixes, remove DUMMY_INPUT. [Couriersud] couriersud2019-11-151-1/+1
| | | | | | | | | | - Removed DUMMY_INPUT. NC (not connected) pins should now use NC_PIN. If a NC_PIN is actually connected, an error will be logged and validation will fail. - Enabled "extended" validation. This will catch now if power terminals are not connected. - Added const and noexcept where appropriate. - Removed dead code. - Fixed the 7414 Schmitt-Trigger device to use nld_power_pins
* ins8250 support for BAUDOUT pin (#5858) and Joakim Larsson Edström2019-11-152-6/+44
| | | | | | | | * 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
* mm74c922: Device overhaul (nw) AJR2019-11-142-49/+54
| | | | | | | - Separate MM74C922 and MM74C923 device types - Add line read handler for data available output - Use array for read callbacks and provide more sensible default value than 0 - Eliminate read_x5 callback (no such line on either MM74C922 or MM74C923)
* netlist: Proxy and power terminal hack removal. [Couriersud] couriersud2019-11-141-0/+3
| | | | | | | | | | | | | | | | | | - Devices ttlhigh and ttlhow are no longer automatically created. - All logic input devices (e.g. TTL_INPUT, LOGIC_INPUT) now need to have their power terminals (VCC, GND) connected. This opens the route for more appropriate proxy devices but comes at a cost. If the connections are omitted your circuit will not work as expected. Example: LOGIC_INPUT(I_SD0, 1, "AY8910PORT") NET_C(VCC, I_SD0.VCC) NET_C(GND, I_SD0.GND) - Updated all netlists. - Removed proxy information from terminal objects. This was replaced by a lookup hash whose life-span does not exceed netlest setup. These changes enable the removal of a number of hacks from the source going forward.
* c64.cpp, c128.cpp: fixed CBM IEC slot address not being set when replacing ↵ Vas Crabb2019-11-152-24/+24
| | | | | | | | | | | | | | | | | | | devices in machine config bus/c64/rex_ep256.cpp: fixed array of EPROM slots not being populated (subdevices don't exist at construction time) cleanup: (nw) * having a macro for a device's expected tag in a header is bad - devices should not make assumptions about their tag or their location in the system hierarchy * device types exist in the global namespace - you must not use overly generic names for them as this is likely to cause collisions * device short names and titles each have their own namespace, but they're also global, and it should be possible to work out vaguely what a device is from its names * POSIX reserves all names ending in "_t" at global scope - we want fewer of these causing potential future issues, not more * if your device is in the global namespace, you should name it in a way that's not asking for name collisions to happen * we have a simple convention for device class names - it doesn't hurt to follow it: - concrete device_t implementations end with "_device" - device_interface implementations end with "_interface" (and often start with "device_") - abstract classes that derive from device_t end with "_device_base" * if you want to give your slot card device classes short, generic names, put them in a namespace for the "bus" * if you really want to use names ending with "_t", put them in a namespace or nest them inside a class
* Plug & Play work (Tv GoGo, Poker inputs etc.) (#5898) David Haywood2019-11-131-50/+54
| | | | | | | | | | | | | | | | | | | | | | * vii.cpp: tvgogo, return value written on a port so that it boots (nw) also for spg2xx_io, add machine().describe_context() to more of the logging calls to make it more informative for debugging. * workaround so poker boots without debugger trick (nw) * uart read notes (nw) * not ideal, but force poker UART reads for now (nw) * improve input (nw) * clickable artwork fixes (nw) * comment (nw) * srcclean (nw) * tidy (nw)
* netlist: code maintenance. (nw) couriersud2019-11-132-70/+70
| | | | | | - move memory pool to netlist_state_t removing one static allocation. - add memory allocation stats to verbose output - nl_assert no longer throws, first step to remove NL_EXCEPT macro.
* v5x: Emulate internal/external timer clock input selection; internalize CPU ↵ AJR2019-11-121-2/+4
| | | | clock divider for V40/V50
* lbpc: Add ISA bus and EGA card so startup process can be visible (nw) AJR2019-11-121-1/+1
| | | | | | v40, v50: Add timer 2 control input (nw) ncr5380n: This error really needs to be non-fatal (nw)
* thomson.cpp: Improve floppy device encapsulation (nw) AJR2019-11-102-4/+4
| | | | | | | - Eliminate all global-level static variables and functions in thomflop.cpp - Simplify read/write handlers for floppy interfaces mc6843: Simplify read/write handlers (nw)
* Make many device_execute_interface functions noexcept, including the ↵ AJR2019-11-094-9/+6
| | | | | | | | "information" overrides. This also covers several time-related functions in attotime, running_machine and emu_timer. (nw) m6805: Calculate min_cycles and max_cycles once at device_start time (Nw) attotime: Add as_khz and as_mhz (nw)
* start putting noexcept on things that have no business throwing exceptions, ↵ Vas Crabb2019-11-104-25/+26
| | | | starting with diimage. also fix a slight bug in the interface matching function for software list parts. (nw)
* start trying to identify more sound related features on the elan hw (nw) + ↵ David Haywood2019-11-082-0/+53
| | | | | | | | | | | | | | | | Senario Poker SunPlus (not working) (#5874) * elan sound stuff (nw) * move more audio bits into audio file (nw) * new NOT WORKING machines ----- Texas Hold'em TV Poker - 6 Player Edition (UK) [David Haywood, Morten Kirkegaard, Peter Wilhelmsen] need to emulate the controllers etc. (currently requires debug hack to boot past initial logo) * start moving some more elan stuff around (nw)
* wd1000: save state 68bit2019-11-082-24/+36
|
* netlist: Minor optimizations. (nw) couriersud2019-11-051-2/+2
|
* loose ends: (nw) Vas Crabb2019-11-061-2/+2
| | | | | | * mm5740 X pins are numbered starting from 1, also fix typo in pinout comment (Y10, not Y0) * make more members protected/private as appropriate * got rid of one more video start override in a clean way
* flopdrv: Even legacy devices need some code cleanup (nw) AJR2019-11-055-34/+73
| | | | | | - Get rid of the hardcoded FLOPPY_n tags as much as practical, mostly adding device finder arrays in their place - Move remaining functions using FLOPPY_n down into appldriv and sonydriv (both of which may be eliminated once FDC emulation is modernized) - Replace CLEAR_LINE and ASSERT_LINE with 0 and 1 (these were being inaccurately used to represent active-low control line states)
* netlist: more consistent exception handling. (nw) couriersud2019-11-051-4/+8
| | | | Still not optimal, but better than what we had previously. No exception logging comes closer.
* netlist: Completed __float128 support. [Couriersud] couriersud2019-11-031-2/+2
| | | | | | Both compiling the core and the shaders with __float128 now work. The support was added to be ready to deal with academic edge cases. Performance drops to 10% of double - thus disabled by default.
* netlist: code maintenance and bugfixes. (nw) couriersud2019-11-011-0/+2
| | | | - fixed a bug in the parray constructor - replaced NL_NOEXCEPT with noexcept where appropriate
* genpc: Make INT and NMI line callbacks (nw) AJR2019-10-312-3/+26
| | | | This is intended to facilitate future planned changes to CPU input lines.
* netlist: Compile with float/double floating point. [Couriersud] couriersud2019-10-312-4/+3
| | | | | | | | | | | Added ability to compile using float instead of double. Specifically the the solver as well as the infrastructure now can have their own floating point type. Currently this is only an academic exercise since numerically demanding circuits like kidniki only work with double/double support. Using float here is pushing numerical stability over the limits. The long term design goal is too have the matrix type (double/float) being a parameter.
* netlist: maintenance and simplifcation. (nw) couriersud2019-10-311-14/+14
| | | | | | | - solver: align matrix population along the various solvers - solver: delete dead code - renamed nl_double to nl_fptype and use nl_fptype where previously double has been used. - renamed param_double_t to param_fp_t
* Spring cleaning: Vas Crabb2019-11-0110-62/+61
| | | | | | | | | | | | * Changed emu_fatalerror to use util::string_format semantics * Fixed some incorrectly marked up stuff in build scripts * Make internal layout compression type a scoped enum (only zlib is supported still, but at least the values aren't magic numbers now) * Fixed memory leaks in Xbox USB * There can only be one "perfect quantum" device - enforce that only the root machine can set it, as allowing subdevices to will cause weird issues with slot cards overiding it * Allow multiple devices to set maximum quantum and use the most restrictive one (it's maximum quantum, it would be minimum interleave) * Got rid of device_slot_card_interface as it wasn't providing value * Added a helper template to reduce certain kinds of boilerplate in slots/buses * Cleaned up some particularly bad slot code (plenty more of that to do), and made some slots more idiomatic
* ds1302: Subtle fix for CE writes; improve logging (nw) AJR2019-10-311-14/+19
|
* netlist: code maintenance. (nw) couriersud2019-10-301-1/+1
| | | | Simplification, remove some trampolines.
* src/devices: Replace output().set_value with output finders (nw) AJR2019-10-306-36/+94
|