ChrisCoxArt
efaf184508
remove dep_count after initialization, use differences
2021-09-29 15:54:16 -07:00
ChrisCoxArt
98caf992b4
move gates and dependencies to offsets instead of pointers, reducing memory footprint
2021-09-29 15:29:06 -07:00
ChrisCoxArt
c82d2c8325
make cycle a long, minor cleanup
2021-09-29 14:31:46 -07:00
ChrisCoxArt
a8ace5d6d4
sort gate list and remove duplicates (improves cache coherency a bit)
2021-09-29 14:31:23 -07:00
ChrisCoxArt
d610c3c775
minor cleanup and comments
2021-09-28 23:18:31 -07:00
ChrisCoxArt
cb3cefba9a
remove errant measure.o reference in makefile that prevented building (duplicate mains)
2021-09-28 23:18:13 -07:00
ChrisCoxArt
6d74edb47b
minor tweaks and cleanup
2021-09-28 22:57:18 -07:00
ChrisCoxArt
b24b4cd93e
move node value out of global state
2021-09-28 22:22:31 -07:00
ChrisCoxArt
c5c81e0d30
minor tweaks for performance
2021-09-28 21:09:48 -07:00
ChrisCoxArt
ca293b3783
cleanup
2021-09-28 20:28:18 -07:00
ChrisCoxArt
3ac5525216
put back gitignore entries accidentally removed
2021-09-28 19:34:52 -07:00
ChrisCoxArt
ba0e3dc808
second pass allocation reduction
2021-09-28 19:19:57 -07:00
ChrisCoxArt
55748db9bb
first pass allocation reduction
2021-09-28 18:32:02 -07:00
ChrisCoxArt
101b2c9d5d
fix bad function declarations and type casting (bring up to relatively modern standards)
2021-09-28 17:33:09 -07:00
Michael Steil
268d16647c
fixed measure.c to work with new API
2020-06-13 19:18:57 +02:00
Michael Steil
d4117f915f
Create LICENSE
2020-06-04 19:47:38 +02:00
Michael Steil
3e60b6dd44
cleanup: moved cbmbasic and apple1basic demos into subdirectories
...
* also changed "clang" to "cc"
* enabled optimizations for 64 bit (it's 10 years later!)
* updated README to reflect CPU speed in 2020 (5x faster than 2014!)
* added benchmarking instructions to README
2020-06-04 19:32:59 +02:00
Ian Henderson
cb5469d7c3
optimize addNodeToGroup by improving memory locality
2020-06-04 18:50:24 +02:00
Tom Seddon
350f4b27e0
Add destroyChip.
2019-09-08 15:06:26 +02:00
Michael Steil
224ac909ee
Merge pull request #5 from drfiemost/master
...
Avoid memory pollution
2017-01-22 20:55:00 +01:00
Dr. Fiemost
93bb291203
Fix UBSan error
2017-01-22 19:08:31 +01:00
Dr. Fiemost
dff94ab870
Initialize remaining struct members
2017-01-21 14:17:39 +01:00
Dr. Fiemost
379a588484
Initialize allocated memory
2017-01-21 14:16:26 +01:00
Dr. Fiemost
ed250b1a62
Avoid use of deprecated function
2017-01-21 14:13:06 +01:00
Michael Steil
98026be01f
Merge pull request #4 from drfiemost/master
...
Fix setNode function
2017-01-18 12:39:52 +01:00
Dr. Fiemost
aed0d9a3c3
Fix https://github.com/mist64/perfect6502/issues/3
2017-01-17 20:53:44 +01:00
Michael Steil
4142ac152e
moved nodes names into netlist_6502.h
2014-12-01 16:42:48 +01:00
Michael Steil
0269c1bdf1
cleanups
2014-12-01 14:03:16 +01:00
Michael Steil
76d798db79
split code into generic netlist simulation and 6502-specific code
2014-12-01 13:53:46 +01:00
Michael Steil
44cde717a1
cleanup
2014-12-01 13:29:08 +01:00
Michael Steil
c93f229339
cleanup
2014-12-01 13:10:28 +01:00
Michael Steil
4b70feb863
cleanup
2014-12-01 12:48:41 +01:00
Michael Steil
79d5e114ef
cleanups
2014-12-01 12:44:03 +01:00
Michael Steil
c7ede71e52
actually de-dup transistors!
2014-12-01 12:31:14 +01:00
Michael Steil
e49ca0be5f
cleanups
2014-12-01 12:23:47 +01:00
Michael Steil
b31b545032
malloc'ed all state instead of having a gigantic struct
...
state_t is now 208 bytes on x86_64 instead of 26 MB. Startup is a little slower though because of ~7000 malloc calls.
2014-12-01 12:10:21 +01:00
Michael Steil
1c9eb78154
cleaned up node names
2014-12-01 11:48:01 +01:00
Michael Steil
fc3082a259
updated copyright
2014-12-01 11:01:11 +01:00
Michael Steil
c4f7cfb449
The state pointer is no longer global, but passed down to every function.
...
...and surprisingly, it's not any slower. if anything, it's 1% faster.
2014-12-01 11:00:30 +01:00
Michael Steil
b8af4edbbe
moved all globals into a single global struct -> 3% speedup with clang :)
2014-11-29 00:55:06 +01:00
Michael Steil
b3f4c56541
added README
2014-11-28 08:31:36 +01:00
Michael Steil
9a8e2c396f
fixed line endings
2014-11-28 07:57:38 +01:00
Michael Steil
8161e5e600
added object files to .gitignore
2014-11-28 07:56:51 +01:00
Michael Steil
b2cce88620
optimizations (~25%) and cleanup
...
Optimizations:
1. When a transistor is turned on, only add one of the nodes it
controls to listout, otherwise group calculation would be done twice
for this group. This simplifies recalcNodeList(). (This required
the following change: Instead of adding the nodes that control
transistors that have changed to listout, put the nodes that are
switched by transistors on listout.)
2. The group value is calculated while collecting nodes, and the enum
group_contains_value makes sure we don't check for weaker value
indicators than have already been established.
3. listout is now a set, no node will be visited twice for group
calculation, within one interation.
4. When setting input pins of the package to a value, only recalc the
node if it actually changes.
5. Toggling a transistor is done by assigning it the group value
instead of the inverse of its value.
Cleanup:
* Merge the concept of listin with the concept of nodes that change
from the outside and trigger a recalc.
2014-11-28 07:04:07 +01:00
Michael Steil
bdbe8eff59
...
2010-10-20 07:49:51 +00:00
Michael Steil
63ce225449
added apple1basic
2010-10-12 14:29:11 +00:00
Michael Steil
f424b464f2
cleanup
2010-10-08 04:09:56 +00:00
Michael Steil
48e5756c38
cleanup
2010-10-08 03:58:09 +00:00
Michael Steil
8d948b5f64
indirect lostout
2010-10-08 03:22:54 +00:00
Michael Steil
d9ba3fc769
experimental...
2010-10-07 05:20:49 +00:00