Have you ever wanted to build your own computer? And by build your own, I mean from scratch... literally wiring logic gates and registers together. Its really fun actually, I just finished a project for school where I had to not only build my own instruction set architecture, but then use that machine language that I created to write an assembly program for conway's game of life and then run it in the simulator.
Its really rewarding. I remember when I first learned to program BASIC on the calculator and it felt cool I could actually program the thing. And then I learned assembly and I though it was cooler that I was actually writing the lowest level of machine programming. But then we had to use Logisim and now its even cooler to actually wire everything together to create your own instruction set!
Logisim (http://ozark.hendrix.edu/~burch/logisim/)
Its relatively easy to use and its in java so it will run on any platform. I dare someone to try to make a z80 CPU! Its actually much harder than the architecture I created since mine had a single sized, single clock cycle instruction set for simplicity, similar to ARM.
I don't see any fun on that, but that's just me.
I tend to hate hardware and processors, graphic cards, LCD's are a bunch of words that I don't like to use. I prefer programming and software
Its relatively easy to use and its in java so it will run on any platform. I dare someone to try to make a z80 CPU! Its actually much harder than the architecture I created since mine had a single sized, single clock cycle instruction set for simplicity, similar to ARM.
Note that you have to compile the code yourself into hex using the binary table :P registers are 00 for A, 01 for B 10 for C and 11 for D. And for jumps 00 is jump if Zero, 01 is jump if carry, 10 is jump if Not Zero, and 11 is jump if not carryWhen I was making one, I only used 4 registers too. I tried figuring out how to change the registers too.
ld a, $69
ld ($0102), a
ld a, $FF
ld a, ($0102)
Yay, I fixed it. The current instruction register was outputting a 6 just before it got changed to 1. So I just bypassed it for phase 1 and it worked. Off to make a text routine.
Thank you
Oh my wow. Screw programming in hex, I am already loving this. Thank you, I am going to have so much fun with this.
What is the logic called where if both bits are the same, the output bit is 1. Isn't XOR 1 if the inputs are different?
Okay, another logic problem...How is that a problem? That looks perfectly correct to me...
(1,1)=0
(1,0)=1
(0,1)=0
(0,0)=0
If I use NOT on the second number, and then use AND, I get this result...
I think he's asking what the gate is? Note that not all 16 combinations have names :)
0 | 0 | 0 | 0 | 0: | 0 |
0 | 0 | 0 | 0 | 1: | 1 |
0 | 0 | 0 | 1 | 0: | 1 |
0 | 0 | 1 | 0 | 0: | 0 |
0 | 0 | 1 | 0 | 1: | 0 |
Well, this is definitely giving us experience in designing the thing. We can make our own processors!Oh actually OTCalc used a pre-made one.
Here I've been working with an increasingly cluttered mess!Mine looks like a cluttered mess, but I really don't care, because once I start actually interpreting instructions, I'm going to delete most of what I already have. It's mostly just a means of testing the individual components and concepts behind the processor. What I have right now is a simple interpreter (used to test out various methods of interpreting instructions), a LCD toggle pin (used to test actually performing an instruction), an instruction flip-flop for testing out the ideas I mentioned earlier, which is used to modify registers in my register subcircuit. Up until today, the register subcircuit worked with only 4 8-bit registers, but I have an experimental version that allows you to combine two of the 8-bit registers into a 16-bit register. (So you can use A, B, C, D, AB and CD)
Ah, right, that makes a lot of emulators nested in each others. ;DWhat about:
Kinda like if TI-Boy SE ran on the Nspire: It would be a GB emu running in a 84+, running in a TI-Nspire, running in Ncubate or Goplat's emu, running on a virtual machine because you have Mac OS. ;D
Yes, SirCmpwn was talking about it...Yeah, I started on some stuff, but eventually dropped it because it seemed infeasible.
search for "logisim" and you get it :)
Heya and welcome on the forums, by the way. :DThanks!