I hope you keep working on the computer. We’ve had a few people attempt this and they always seem to falter and stall – including myself! I’ve worked on a computer core for a while – on and off – and have a collection of sub-circuits, including I/O latches, registers, R/W RAM arrays and a 64K * 8 bit ROM array (which uses over 1,000 memory banks!), that should let me connect them to make the computer core. I haven’t decided on some internal architecture issues (how to implement a stack) and that’s pretty much what’s made me stall. But, one thing I decided from the start was that I was going to avoid using bit-wise signals as much as possible. Most of the sub-circuits use ‘analog’ signals and this lets them be much smaller than they would be otherwise. As one example, here is a circuit for a full 4-bit adder that uses only 2 Memory Banks. The picture shows the input and output for the circuit as well.
The I/O takes up much more space than the circuit itself – the block on the right is the actual circuit. That’s all it takes! The design is extremely simple. The two inputs go to the two banks in parallel. One bank is programmed for the 4-bit output sum. The other bank calculates the overflow bit. For a simple 4-bit core, that’s all you need. For a larger word size, the higher order modules are more complex to implement due to the carry, but they work on the same principle. Also, your numerical representation can affect the circuit. This circuit assumes unsigned/positive integers for simplicity.
You can get the world with this simple adder, here: https://www.dropbox.com/s/jsiizxxum8y7gok/Computing.scworld?dl=1
I will be adding this and other computing circuits to the wiki, where I’ll be able to explain them in more detail, and include the ‘code’ for the banks.
A subtraction circuit depends more on your numerical representation scheme. I.e., whether you use signed/unsigned/1’s complement/2’s complement integers. All those options make it tough to present in a simple message reply. However, you can usually subtract by complementing the ‘subtrahend’ and adding them. What ‘complement’ means depends on the representation. I’ll cover subtraction in more detail when I get to it on the wiki.
Anyhoo, keep it up and please post a link when your computer is working!