summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/machine/netlist.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Make sure netlist includes are not found directly on include path. couriersud2017-02-101-1/+1
| | | | Instead, they have to be prefixed by "netlist/". Removed unneeded link librariers for nltool and nlwav along the way. (nw)
* Explicitly #include C++ headers for features use, see issue #2048 (nw) Vas Crabb2017-02-091-0/+9
|
* Separate include file usage for netlist. couriersud2017-01-291-22/+414
| | | | | | | | Device implementations (all cpp files in netlist/devices) now should only include nl_base.h. Netlist implementation sources should only include "net_lib.h". Refactored netlist.h and netlist.cpp to avoid namespace congestion in netlist.h. Fixed VC2015 build. (nw)
* Reduce overhead to load data (roms) in netlist significantly. couriersud2017-01-281-39/+19
| | | | | | | | | | The previous solution involved a significant amount of redundant replication of information and objects. Now, a rom name specified as SOMEROM(x21, "romlabel") will automatically be loaded from region "netlisttag:romlabel". Examples are hazl1500 and stuntcyc. [Couriersud]
* Fix warning about non existing memory space when netlist is used ... couriersud2017-01-271-5/+1
| | | ... as an additional cpu. (nw)
* More netlist refactoring: couriersud2017-01-251-2/+2
| | | | | | | | - Remove virtual from some destructors and make them protected. - Various cleanups. - Small performance improvement. - Fixed some inconsistencies. - More c++ refactoring. (nw)
* srcclean (nw) Vas Crabb2017-01-221-1/+1
|
* Assume string literals are UTF8 in netlist code. couriersud2017-01-201-9/+9
| | | | | | | At the same time, any char pointer has to be explicitly converted to pstring by specifying an encoding. Not yet optimal, but certainly better than what was there before. Removed unneeded methods from pstring. (nw)
* - setup_t is owned by netlist_t. Stop being complicated. couriersud2017-01-121-12/+4
| | | | | | - Remove gnd() method. - Further simplification. - Fix potential reset and initialization issues. (nw)
* cstr() ==> c_str() (nw) couriersud2016-12-301-24/+24
|
* Netlist: Roms now specify an identifier in the netlist. couriersud2016-12-271-24/+42
| | | | | | The identifier is used to load data from a source_t implementation. This allos a consistent approach in netlists independent of netlist implementation. Both sources code and parameter code needed quite some rewrite to support this. [Couriersud]
* Well, it sorta looks like Stunt Cycle, at least. (nw) MooglyGuy2016-12-261-0/+37
|
* first srcclean pass (nw) Vas Crabb2016-12-251-1/+1
|
* -netlist: Added shared RAM pointer, for use by netlist RAM devices which ↵ therealmogminer@gmail.com2016-12-211-8/+46
| | | | | | | | | | need updating by non-netlist driver code. [Ryan Holtz] -netlist: Added new devices: [Ryan Holtz] * Intel 2102A 1Kbit (1024 x 1) Static RAM * 74365 Hex Bus Driver with 3-State Outputs * Generic 2- and 3-terminal Tristate device * Note: Tristate device and 74365 do not actually tristate, they are simply a way of combining multiple outputs + chip enables.
* netlist: Device additions: [Ryan Holtz] therealmogminer@gmail.com2016-12-211-2/+2
| | | | | | | * 74161 Synchronous 4-Bit Binary Counter with Clock * 7473 Dual Master-Slave J-K Flip-Flops with Clear and Complementary Outputs * Am2847 Quad 80-bit Static Shift Register * DM9334 8-bit Addressable Latch
* Netlist compile fixes, (nw) therealmogminer@gmail.com2016-12-211-3/+8
|
* -netlist: Add simple ROM hookup capability. [Ryan Holtz] therealmogminer@gmail.com2016-12-211-0/+30
|
* Changed disassembler infrastructure to not use char buffers internally Nathan Woods2016-11-201-4/+2
|
* NOTICE (TYPE NAME CONSOLIDATION) Miodrag Milanovic2016-10-221-25/+25
| | | | | 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
* Make sure all cpu's export STATE_GENPCBASE and use safe_pcbase() for ↵ smf-2016-09-281-1/+2
| | | | everything in the debugger, which allows interruptible cpu's to work properly. [smf]
* Revert "Make sure all cpu's export STATE_GENPCBASE and use safe_pcbase() for ↵ Lord-Nightmare2016-09-271-2/+1
| | | | | | everything in the debugger, which allows interruptible cpu's to work properly. [smf]" This reverts commit 1a186c8a3a16a7ce99d7df2dd217a7552b696c92.
* Make sure all cpu's export STATE_GENPCBASE and use safe_pcbase() for ↵ smf-2016-09-271-1/+2
| | | | everything in the debugger, which allows interruptible cpu's to work properly. [smf]
* Netlist updates: couriersud2016-07-211-2/+2
| | | | | | | | | | | | | | | - Removed trampolines (OUTLOGIC, INPLOGIC and friends). - Started using doxygen comment and documentation style. Added doxygen files to documentation folder. - Refactored code triggered by doxygen output. - Moved internal and support classes into namespace detail. - Use an anordered map in parser. - -Wconversion fixes - All done now. - Fixed -Wold-style-cast warnings in netlist code. - Added iterators to pstring. - Moved two macros, added more RAII and improved exceptions. Fixed some bugs in parser code. - Fixed a number of bugs in parser code and exception handling. [Couriersud]
* Netlist improvements: couriersud2016-07-011-5/+1
| | | | | | | | | | | | | | | | | | | - nltool now accepts -Ddefine=value to pass on to netlists - improved option handling and added "dummy" options to add grouping and examples in help output. - improved --cmd=listdevices output - Fix dynamic timestepping. This will work with breakout using real capacitor modelling instead of delay devices. Really slow, but very useful to calibrate timings. - Fix an awful bug in timing for delay devices. - Switched to clang 3.8 and made code compile with -Weverything -Werror -Wno-old-style-cast -Wno-padded -Wno-weak-vtables -Wno-missing-variable-declarations -Wno-conversion -Wno-c++98-compat -Wno-float-equal -Wno-cast-align -Wno-global-constructors -Wno-c++98-compat-pedantic -Wno-exit-time-destructors -Wno-format-nonliteral -Wno-weak-template-vtables This was a helpful exercise since it brought forward some serious issues with implicit constructors. [Couriersud]
* Netlist changes couriersud2016-06-231-1/+1
| | | | | | | | | | | | | | | | | | | | | - Replaced shared_ptr by unique_ptr. - Better seperation of setup_t and netlist_t. - Fixed bugs in rdtsc code. Refactored timer code. - Simplify conditional activation/deactivation. - Introduced HINT(device, hint) to clarify that hints are inheritent and not specific to devices. - Added improved profiling support to netlist. Statistics output now proposes devices for which whole device activation/deactivation be disabled. No significant improvement for pong, but breakout experiences a 10% improvement. - Moved options code from include to cpp file. - Minor modifications to 7493 and 9316 - Introduced perftime_t and perfcount_t for gathering statistics. These templates do not create any code if statistics are not kept. - Make help2man ./nltool produce usuable output. - More truthtable refactoring. Removed half-finished code for internal state support. As implemented, this would have had no support for timing delays. [Couriersud]
* Merge netlist_dev branch, all code_refactoring: (nw) couriersud2016-06-161-53/+81
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Object model optimisation. Merge remote-tracking branch 'origin/master' into netlist_dev Fix a merge issue. #if ==> #elif. Ouch. Default PHAS_PMF_INTERNAL=0 for 32bit windows mingw. Change UINT8 to uint_[fast|least|8_t. Move state_var so it can be used by base devices as well. Remove last traces of ATTR_ALIGN. Refactored netlist_time into a template. Removed implicit double assignment to netlist. Doomed to produce bugs. Instead, use netlist_time::from_double. Switch to using proper (i.e. bool type) param_logic_t. Formally differentiate between logic inputs (e.g. switches) and int inputs (e.g. resistor ladders or selection switches). Added parameter USE_DEACTIVATE to truthtable devices. Added more constexpr to netlist_time. Fixed some ifdef code paths. - More c++. - Simplify main processing loop. As a nice side-effect that squeezed out some cycles. - More cycle squeezing. - Removed pvector_t. - Use std::sort. - Refactored netlist state manager. - Introduction of state_var object template to be used on device state members. - Changed remaining save occurrences to state_var. - Rewrote nltool's listdevices command. This allowed removal of one member from devices which served solely for listdevices. - Remove hashmap_t. Fix kidniki regression.
* - More code cleanup. couriersud2016-06-071-13/+13
| | | | | | | | | | | | | | - Dead code removal and minor refactoring. - Simplify. Align naming with stl. Fix somed pedantic warnings. - More STL compatability. - Remove ATTR_HOT and ATTR_COLD. Refactored netlist_time. - Fix long standing workaround which would ignore policy of change-only" propagation. - Rewrote for loops to use auto : semantics. - Truthtable cleanup. (nw) - Get rid of nl_math. Remove nl_util.h and moved contents to plib/putil.h. - Fix standalone build. Refactor ptypes.h. [Couriersud]
* - Minor cosmetic refactoring. Added a "uninitialised array" template to balr0g2016-06-071-1/+1
| | | | | | | | | | | allow in-place creation (for increased locality) of netlist classes. Main use is in truthtable class. - Remove PLIB_NAMESPACE macros. - Remove namespace macros. Use explicit namespace declarations. - Moved device definitions into cpp files. - Moved more device definitions into cpp files. - New prefix "nlid" for include files flags purely internal include files not to be leaked into userland. - Fix factory code.
* Moved more code into plib namespace. (nw) couriersud2016-05-271-27/+27
|
* All netlist devices now follow new syntax. Removed dead code. All sub couriersud2016-05-211-3/+3
| | | | devices are now forced to be initialized in the constructor. Device setup now completely in constructor. Removed start call. [Couriersud]
* Converted more devices to new layout. Improved memory handling in couriersud2016-05-211-3/+3
| | | factories. (nw)
* Continuing work to move object initialization from start to constructor. couriersud2016-05-161-1/+1
| | | | | Removed family_t. All of this can be determined at runtime from object as well. As part of this, the "template" to write devices has changed. Converted a number of devices to use the new template. [Couriersud]
* More automatic memory handling. (nw) couriersud2016-05-161-3/+2
|
* Some use of share_ptr to ease memory management. (nw) couriersud2016-05-121-1/+1
|
* Code simplification couriersud2016-05-121-4/+3
|
* Devices are now created after the netlist was parsed. This enables us couriersud2016-05-121-2/+1
| | | | going forward to move everything in start() into the constructor and get a much cleaner object model. (nw)
* A step towards late creation of devices. (nw) couriersud2016-05-101-7/+8
|
* netlist_t no longer descends from netlist::object_t. couriersud2016-04-101-4/+4
|
* Get rid of some init_object calls. couriersud2016-04-101-2/+1
|
* Iterate over core classes C++11 style AJR2016-03-311-3/+3
| | | | | | | | C++11 range-based for loops can now iterate over simple_list, tagged_list, core_options, device_t::subdevice_list, device_t::interface_list, render_primitive_list and all subclasses of the above, and much code has been refactored to use them. Most core classes that have these lists as members now have methods that return the lists themselves, replacing most of the methods that returned the object at an owned list's head. (A few have been retained due to their use in drivers or OSD.) device_t now manages subdevice and interface lists through subclasses, but has given up the work of adding and removing subdevices to machine_config. memory_manager has its tagged lists exposed, though the old rooted tag lookup methods have been removed (they were privatized already).
* netlist: rename plist_t to pvector_t to clarify origin. couriersud2016-03-141-2/+2
|
* reverting: Miodrag Milanovic2016-01-201-17/+17
| | | | | | | SHA-1: 1f90ceab075c4869298e963bf0a14a0aac2f1caa * tags are now strings (nw) fix start project for custom builds in Visual Studio (nw)
* Revert "rest of device parameters to std::string (nw)" Miodrag Milanovic2016-01-201-4/+4
| | | | This reverts commit caba131d844ade3f2b30d6be24ea6cf46b2949d7.
* rest of device parameters to std::string (nw) Miodrag Milanovic2016-01-161-4/+4
|
* tags are now strings (nw) Miodrag Milanovic2016-01-161-17/+17
| | | | fix start project for custom builds in Visual Studio (nw)
* override for for macros that could not be auto recognized by tools (nw) Miodrag Milanovic2015-12-061-1/+1
|
* cleanuo Miodrag Milanovic2015-12-051-19/+19
|
* Rename *.c -> *.cpp in our source (nw) Miodrag Milanovic2015-11-081-0/+661