First post, by GigAHerZ
- Rank
- Oldbie
Quite a bit ago I wrote about Neo6502: Olimex Neo6502 - Software defined machine!?
It seems like (mostly) it is a real 6502 CPU that has a "virtual"/fake environment created for it by a tiny RPi Pico, making it basically a software-defined computer platform.
... But it is still in hardware.
I'm very... very-very comfortable in software engineering. And it is the very opposite on the hardware side. Hardware issues and debugging has also magnitudes slower round-trip time to try different ideas and fixes.
So, what I figured is that, because I can write code, I could write code that simulates hardware which is defined as pins and connections between them. (I also learn best by building - Once I've built myself a virtual MOS6522 for example, I know very well how to use it.) So I've been playing around with it for 2 days and I think I've gotten somewhere that I kinda like.
On picture is a "platform", that consists of 6502 CPU (i wrapped Asm6502 library into a "Device" compatible for my framework) and 64kB of RAM. (+ pull-up/pull-down resistors provided by the "platform") And it works! But it is somewhat slow: On a Ryzen 7 3700X with Fedora 42 KDE I get platform cycle frequency of ~35kHz. Enough to play around, but nowhere near to do some ~1MHz simulations, unfortunately.
I tried to google and even AI to search for something pre-made. There are SpiceSharp, LogicGraph and SharpCircuit, but they all are way lower-level simulations and therefore quite probably way slower than even my handmade solution. (Those can do analog circuits, too)
Currently I have only a picture to share, showing how the code looks like for such "computer". Any feedback on ideas, concepts and even practical developer experience is very welcomed.
"640K ought to be enough for anybody." - And i intend to get every last bit out of it even after loading every damn driver!
A little about software engineering: https://byteaether.github.io/