summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/netlist/devices
Commit message (Collapse)AuthorAgeFilesLines
* nld_9316_base.hxx: Maximum count for 9310 is 9, not 10 (MT 08787) [Robbbert] AJR2023-11-161-1/+1
|
* netlist: include file work (#10096) couriersud2022-07-161-5/+5
| | | | | | - move code to more appropriate locations - apply clang-format to modified files - fixed some cspell errors - Applied emu.h rule.
* netlist: gtrak10 performance and other improvements and fixes (#10032) couriersud2022-07-052-3/+62
| | | | | | | | | | | | | | | | | | | | | | | | | | - added support parameter FORCE_TRISTATE_LOGIC on mk28000 - add system device SYS_PULSE to generate pulse based on input changes parameters are delay, pulse width, input polarity and output polarity - add USE_SPEED_HACKS define to gtrak10 to enable the use of the above Brings gtrak10 from 18% to 120%. - Improved interlaced video support in fixfreq.cpp Added two interlace modes: progressive and interlaced which can be selected in machine configuration. - more clang format work - rename link to connection - introduced typed aliases. This information may be used later to rewrite netlists. - added a three terminal base device This will allow the analog code to be more easily comparable to literature about MNA (Modal node analysis). BJT code is now a lot better readable. - fix doxygen consistency - added an example for a cmos inverter based on NMOS/PMOS fets. - TRUTHTABLE_START was renamed to TRUTH_TABLE - truth tables are now enclosed in braces - netlists are now enclosed in braces - TRUTHTABLE_END() and NETLIST_END() removed from files - Fixed static solver script - Add file path to includes in nltool
* nld_dm9314.cpp: add RS mode to netlist 9314 (#10016) goldnchild2022-07-011-1/+13
|
* netlist: fix bug, prepare for future changes and improve readability (#9947) couriersud2022-06-2021-338/+219
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * netlist: fix bug, prepare for future changes and improve readability - fix a bug where a net processing error may trigger a nullptr access - applied some clang-tidy recommendations - add no_return to plib::terminate - properly encapsulate dynamic_cast usage - more review of noexcept - added a clang-format file. Over time, all source files will be processed with clang-format - Used clang format on a number of files - Rewrote 74174 - all device constructors now use a struct to pass data on to base classes. Neither netlist state nor the name are intended to be used in a constructor. After the base class was constructed, they can be accessed by state() and name(). - The device construction macros can now be removed. Changes to the core will not need to be reflected in constructors. - Change truth table macros so that going forward NETLIST_END and TRUTH_TABLE_END can be replaced by a closing curly brace. netlists can than use curly braces enclosed blocks. - more clang-format - removed some macros completely - all derived classes from base_device_t now don't use macros any longer. - as a result, delegator_t was removed. This class was only used to support macros :-(
* netlist: fix bugs and more cpp instead of macros (#9897) couriersud2022-06-108-94/+95
| | | | | | | | | | | | | | | | | * netlist: fix bugs and more cpp instead of macros - C-style comments converted to c++ - Fix crash in state saving code when an abort queue processing event is pending. - Fix a bug where a net could be twice in the queue. - Convert more macros to c++ - fixed SUBTARGET=nl build - fixed potential bugs which would allow a terminal to belong to more than one net. This is not possible even for a short time. - moved some member function definitions out-of-class. - moved code out-of-class - added constexpr where appropriate - fixed mamenl build - Cleanup and indentation
* netlist: static solver work and improve code readability (#9841) couriersud2022-05-3021-218/+230
| | | | | | | | | | | - nltool: Added support for building individual static solver files. - Added pre-built documentation files for nltool and nlwav. - plib: Extended typed_version to have patchlevel as well. - plib: Compile more of ppmf.h with nvcc. - create_devinc.py: Add include guards to the generated files. - makefile: Recreate generated files when python code has changed. - Reduced nld_base.h usage in the core. - <oved extern template class declarations to where they belong. - Generally improved code readability and fixed a lot of issues cspell reported.
* netlist: palloc now uses c++17 alignment aware operator new. (#9834) couriersud2022-05-271-1/+1
| | | | | | | | | - Added more documentation to palloc.h - Made the use of allocation arenas more transparent throughout code - palloc now uses c++17 alignment aware operator new. This required further changes to the arena_deleter object to track alignment and size of allocated objects to avoid the use of alignment and size of base classes in case a unique_ptr was cast to a unique_ptr of the base class.
* netlist: Address comments from PR #9794, partially fix issue #9801 (#9805) couriersud2022-05-239-41/+44
| | | | | - added cstddef to includes in ppmf.h - more explicit comments in ppmf.h - Fixed more typos and improved readiability
* netlist: More c++, less macros, added support for cspell (#9794) couriersud2022-05-223-6/+7
| | | | | | | | | | | | | | | | | - More c++, less macros * Significantly reduced the use of unused_var and replaced it with [[maybe_unused]] * use enum class in ppmf.h - Changes to testing code in ptest.h * Catch exceptions in more places * The verbosity of the output can now be controlled * Display of test stats totals - added support for cspell - fixed various typos - fixed SUBTARGET=nl build - fixed more file permissions - srcclean and add fix_permissions target to netlist makefile
* netlist: standalone makefile and prototype modifications (#9708) couriersud2022-05-082-124/+122
| | | | | | - update netlist makefile to more recent compilers - prototypes for NETLISTs in macros are now created create_devinc.py - apply ctidy recommendations - Python None in create_device.py
* Netlist lint, first version of a FAQ and small code changes. (#9684) couriersud2022-05-061-2/+2
| | | | | - Added a first version of a FAQ. - Use better error messages in pfunction. - Made member functions static where appropriate in nld_solver.
* Drop unnecessary executable permissions (#9257) Julian Sikorski2022-02-033-0/+0
|
* netlist: Relicensing of the GPL code to BSD-3 with the blessing of the Olivier Galibert2021-03-0950-50/+50
| | | | | | | | | | copyright owners. Much thanks for that Couriersud, the main creator and contributor, but also to Jonathan Gevaryahu and Sergey Svishchev. There are small remnants in machine/NL_*, specifially breakout, pong doubles and rebound that are also copyrighted by the DICE team, whoever that means. They're not critical since they only concern these drivers and not an important core subsystem.
* -unidasm: Allow input piped from stdin by specifying a bare hyphen as the ↵ Vas Crabb2020-11-1866-844/+612
| | | | | | | | | | filename. [AJR, Vas Crabb] -netlist: Give devices the C++17 namespace treatment. -Tidied up compiler warning options for 3rdparty. -emu/render.cpp: Exposed a few information view item properties.
* -Switch to building MAME as C++17. Vas Crabb2020-11-151-3/+2
| | | | | | | * Updated sol2 to 3.2.2 * Updated pugixml to 1.10 * Increased minimum clang version to 6 * Cleaned up some stuff that can use new features
* netlist: move core_terms to netlist_state. couriersud2020-10-021-1/+1
| | | | | * These are used during creation and reset only. No need to maintain them on net_t level.
* netlist: more clang lint fixes. couriersud2020-10-022-2/+2
|
* netlist: Convert driver filenames to lower case. couriersud2020-09-303-0/+0
|
* netlist: Rewrote frontier documentation. couriersud2020-09-301-28/+21
| | | | * Also includes a small optimization for FP signal code.
* netlist: Remove "extended validation mode" couriersud2020-09-281-13/+3
| | | | * No longer added value.
* netlist: minor code cleanup. couriersud2020-09-256-17/+19
| | | | | | * a number of minor fixes leading to an increase of 570% to 588% on pongf. * admittedly micro optimization. * Includes some comments why certain decisions have been taken.
* netlist: code refactoring couriersud2020-09-247-47/+40
| | | | | | * use default move and copy constructors * various minor edits like adding noexcept * removed a lot of inline keywords - you can't beat the compiler
* Fix a minor error in the CD4076 netlist library device implementation ↵ Lord-Nightmare2020-09-181-1/+1
| | | | definition.
* Netlist devices for MCM14524, CD4029, CD4030, CD4042, CD4049, CD4076 [Lord ↵ Lord-Nightmare2020-09-174-0/+592
| | | | Nightmare]
* netlist: optimize headers. couriersud2020-09-171-2/+0
| | | | * where possible rely on forward declarations to optimiuze compile time.
* netlist: move to generated header and link support files files. couriersud2020-09-12104-1173/+6
| | | | | | | | | | | | | * Removed device and macro header files. * All of those can be generated automatically so going forward there is no need for these any longer. * Introduced the modules concept. Modules are netlists for which automatic lib entries are generated. * Going forward you just store them in macro/modules and they will be automatically registered as device elements. * You need to do a "make generated" is src/lib/netlist/build * Some_device.cpp still needs to be added to netlist.lua * Added documentation on how to add devices to netlist. * Please refer to adding_devices.md for more information.
* netlist: clang tidy fixes. couriersud2020-09-111-1/+1
|
* netlist: Implement voltage dependent timing for CD4006 couriersud2020-09-091-9/+20
|
* netlist: Pedantic and clang tidy updates couriersud2020-09-0610-21/+20
| | | * also fix an issue with netlist vs build
* netlist: code maintenance and performance optimizations. Couriersud2020-09-053-103/+105
| | | | | | | | | | | * rename some misleading type names * remove callback_t and replace by better scalable approach * hide implementations details * move sources classes from putil.h to psources.h * reduce code complexity * improve parsing performance, parsing netlists now is twice as fast. * fix issues around multi-byte string support * moved psplit into pstrutil.h
* netlist: Fix various issues around include directories. couriersud2020-08-25109-135/+135
| | | | | | | | | * removed include directory src/lib/netlist from various genie files to avoid potential issues. * Code using netlist should use #include "netlist/*". * Updated includes. * Fixed standalone makefile depend target to properly deal with relative paths.
* netlist: Add 7417, 7438, 74290/74293 devices. Fix PROM DIPs. Aaron Giles2020-08-241-1/+1
|
* netlist: build system improvements couriersud2020-08-244-1632/+5
| | | | * Medium term this will significantly ease adding devices to netlist.
* netlist: in devices folder all DIP devices were removed. couriersud2020-08-233-88/+6
| | | | * NE555 and MC1455P were the last devices with DIP definitions in devices.
* netlist: References to subdevices should be symbolic. couriersud2020-08-2312-119/+114
| | | | | * Exposing sub-device members is not best practice. * The need for sub-devices is a clear indication that a netlist language implementation would be a better solution.
* netlist: Fix visibility in some devices. couriersud2020-08-238-19/+14
| | | * private rules.
* netlist: templatize 74107 and code maintenance. couriersud2020-08-236-98/+27
| | | | * removed some dead friend declarations * optimized template times_ns2
* netlist: macro dip definition for 8277,am2847,mm5837. couriersud2020-08-237-104/+16
|
* netlist: Macro DIP definitons for TMS4800, 9314, 9334 couriersud2020-08-237-155/+15
|
* netlist: use macro dips for 74175, 74192, 74193, 74194, 74365. couriersud2020-08-2211-241/+23
|
* netlist: remove duplicate device definitions. couriersud2020-08-229-68/+12
|
* netlist: Add NETLIB_DELEGATE_NOOP() couriersud2020-08-222-7/+3
| | | | | * This should be used for inputs which do not need a handler. * Examples are data inputs which are only accessed on a clock change.
* netlist: Fix some pedantic clang warnings. couriersud2020-08-222-3/+3
|
* netlist: optimized 7416 couriersud2020-08-201-24/+28
|
* Sound and other improvements to Sega G-80 games. (#7103) Aaron Giles2020-08-193-45/+57
| | | | | | | | | | | | | | | | | | | | | | | | | | | Sound and other improvements to Sega G-80 games: [Aaron Giles, couriersud] * Added netlist-based sound to Eliminator, Zektor, Space Fury, and Astro Blaster. * Split the Sega Universal Sound Board and Speech Boards into their own separate files. * Improved Universal Sound Board implementation for better accuracy in Star Trek and Tac/Scan. * Wrote netlist-based backend for Universal Sound Board; currently disabled due to limitations in the system. * Wrote netlist-based backend for Speech Board; currently disabled pending future sound system changes. * Implemented wait states and the vector DRAW flag to help improve timing. SP0250 Improvements: [Aaron Giles] * Matched clock divider to real chip measurements. * Fixed behavior when not fed enough data; addresses "gapping" in speech in Sega games. * Implemented accurate LFR noise generator according to real chip measurements. * Added pulse-width modulation DAC output mode for future consumption by netlist. Netlist additions: [Aaron Giles] * Added compile-time option to record nltool-compatible CSV files. * Improved CD4020 implementation. * Fixed CD4053 behavior. * Added 74139 device. * Added TL082 device. 8253 PIT changes: [Aaron Giles] * Added explicit synchronization to all writes. * Cleaned up some timing calculations to avoid double<->attotime conversions.
* -tank: Assorted fixes and changes. For some reason, GNE (H4.6) never goes ↵ Ryan Holtz2020-08-181-1/+1
| | | | low at the start of the game.
* netlist: fix some pedantic clang warnings. couriersud2020-08-174-5/+5
|
* netlist: dead code removal. couriersud2020-08-176-95/+134
| | | | | * moved dead code into examples/lostfound.cpp * This work didn't improve performance but still may serve as examples for complex truth table implementations.
* -netlist: Properly fixed 74165 implementation. Fixed MK28000 address latching. Ryan Holtz2020-08-172-16/+8
|