Completed basic register set and ALU. Sadly, Logisim cannot really do bidirectional buses. If everything is on one page you can make a bidirectional bus. But that got too complected too quickly. I only need one true bi-directional bus--the system bus. For now I'm treating the system bus like two buses, one for in, one for out. There are 3 additional buses used by the registers: A, B, and C bus. A and B buses are fed into the ALU for math operations, and C bus is used for output from the ALU. There are 8x 8-bit registers. These registers can be assigned to use one of the 4 buses, system, A, B and C. Register can load their value from the system bus or bus C. Registers can output on the system bus, bus A or bus C.
Currently there are 16 control register lines for selecting the bus.
The plan is to have an instruction set that selects the source and destination registers. Consider:
add a, b, c
I shall use 1-bit to direct this instruction to the ALU, 5 bits to control the ALU, and 9-bits for register selection (3-bits for each parameter) for a total of 15 bits.
Created a muxed 8x register set that uses 4 buses: 2 in, and 2 out. In the actual design I would like 4 bidirectional buses to each register.