The purpose of this project is to understand more about how CPUs work, the limitations of assembly, and how much I don't know I don't know about some of the lowest levels of computing. I figured that the best way to learn all of this was to create my own CPU, subject myself to a lot of the same limitations that real CPUs have, and see what kind of tricks that forces me to use.
My CPU is inefficient, and does some things a real CPU wouldn't. Also I did some dumb things just because they were more convenient to write quickly. Also there are two instances of a bunch of if statements that should really be using cases. However, the goal of this project wasn't to make a good CPU, it was to see how far I could get with my close to zero knowledge on how to actually do this. From that perspective, I think it turned out pretty well.
check out the other branches for cool, but buggy stuff. i even have sprite-based graphics on some branches.