This computer has a data bus and a control bus. and on those busses there are external devices that you can send data to/from. the ALU is the same as My old Computer design at https://circuitverse.org/users/15083/projects/8-bit-cpu-80eab5d4-e248-4c33-960d-08b58cd655c3.the opcodes are also the same as my previus vertion.
also this one has a large display at the bottom that displays the time as the X and the line of code executed as the Y and the data bus value as the color.
the default program loads the UI data into ALU register A and loads ram address 1 as ALU register B. witch makes a accumulator. and then displays the value to the user output and the number display, if the user input value == 0 then jump to line 7 and resets the value to zero.
To start, pres the start button.
you can fork it and improve it and do whatever you want with it. Enjoy !!!
My first Computer, its still in Development, and am working on more space for your Code, more commands and etc.
I know this thing is not good at all, but it does its job and here are the possible instructions:
"01" -> Moves Value from next Adress to Register0. Example: Code "01 05" Loads Value 5 in Register0
"02" -> Moves Value form R0 to R1. Example: "02"
"03" -> Addes value from R0 and R1 and saves it in A. Example: "03"
"04" -> Moves Value from A to R0. Example: "04"
"05" -> Jumpes to given Adress in Code. Example: "05 00" Jumpes to Adress 00 in Code
"06" -> Compares if R0 and R1 are equal. Example: "06"
"07" -> Jumpes to given Adress if Command "06" returns false. Example: "07 03", Jumps to Adress 03 if "06" returns false
I know there are missing a lot of usefull commands, but this was my first test and i will work on it to get it better.
Is there any way to get an clock faster than 50ms?