summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/netlist/nl_interface.h
Commit message (Collapse)AuthorAgeFilesLines
* netlist: fix bug, prepare for future changes and improve readability (#9947) couriersud2022-06-201-188/+194
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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: static solver work and improve code readability (#9841) couriersud2022-05-301-1/+4
| | | | | | | | | | | - 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: More c++, less macros, added support for cspell (#9794) couriersud2022-05-221-2/+2
| | | | | | | | | | | | | | | | | - 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: Improved PPMF target support and test coverage. (#9752) couriersud2022-05-151-1/+1
| | | | | | | | | | This addresses most of the issues described in #8590. * Fixed standalone Visual Studio 2019 builds, including support for clang toolchain. * Added static stub to PMF to support MSVC ABI. * Better aligned ppmf syntax with MAME's delegate syntax. * Add tests/test_ppmf*.cpp testing examples given in #8590. Also worked around issues some versions of Apple clang have with 5aaae19230bd39dda6766641672f57276a3f9ea1.
* netlist: Relicensing of the GPL code to BSD-3 with the blessing of the Olivier Galibert2021-03-091-1/+1
| | | | | | | | | | 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.
* netlist: References to subdevices should be symbolic. couriersud2020-08-231-1/+1
| | | | | * 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: buffered_param_setter refactoring couriersud2020-08-161-50/+37
| | | | | | | | | | * Each parameter to set now has a dedicated buffered_param_setter device. * This allows different sample times per device * Updated netlist.cpp for new approach * buffered_param_setter is a template. The template parameter is a class which is expected to support the [] operator. The value passed to [] operator is the requested sample number.
* netlist: make streams accept logic parameters as well. couriersud2020-08-151-5/+18
|
* netlist: Potential regression trigger. couriersud2020-07-171-15/+0
| | | | | | | | | * Removed update and NETLIB_UPDATE completely. * Startup initialization order may change. * This may cause regression tests to trigger. This is expected. Logic TTL devices do not have a defined power-up state. That's why reset circuits exist which create a reset signal *after* all power supply lines are stable.
* netlist: finished input handler refactoring. couriersud2020-07-121-5/+8
| | | * all inputs now explicitly specify a signal handler.
* netlist: first batch of explicit handlers. couriersud2020-07-121-10/+18
| | | | | | | | * Currently devices use the "update" function if no handler is given for an input. * For this to work the update function has to be virtual. This will cause issues on shared execution schemes like CPU/GPU using nvcc. * This is the first batch of changes to ensure that handler resolution is static.
* netlist: remove soft reset support. couriersud2020-07-051-5/+4
| | | | | | | | * Electronic circuits and base components like resistors or capacitors do not have a reset line. You can use them to create reset circuits. There is thus no point to support soft reset, the equivalent to pressing the reset button. * Fixed some bugs around reset and start up logic. * This also fixes the "scramble F3" crash.
* netlist: code maintenance and bug fixes. couriersud2020-07-011-0/+1
| | | | | | | | | | | * palloc.h/pmatrix2d.h: Fix static_assert warnings at the origin. * Rework hints to broaden their use and fix NC hint. * 74377: use NC hint * plists.h: Fix debugging in MSVC * Include cleanup: Move everything not needed by netlists from nl_setup.h into core/setup.h * Fix some clang tidy warnings * srcclean
* srcclean and cleanup (nw) Vas Crabb2020-06-211-13/+13
|
* netlist: clang-tidy, header order fixes. (nw) couriersud2020-06-011-4/+2
|
* netlist: move multiparameter streaming into nl_interface.h (nw) couriersud2020-06-011-0/+116
|
* netlist: device factory enhancements. (nw) couriersud2020-06-011-0/+129
Factory elements can now pass additional parameters to device constructors. This makes the design of interface objects like analog callbacks easier. The change also allowed to remove some "deep" calls into the core from the MAME interface in netlist.h