Question: *I am currently taking the [Nand2Tetris](http://www.nand2tetris.org/) course online, where I am in the process of building a virtual computer all from nand gates. I have learned what an ALU is, how it works, and build a simple virtual one myself.*

Now I would like to make my own physical 8 bit ALU from simple 74(HC) series IC's. I have experience in building electronics and using the IC's, on a hobby level. My only real problem is that I don't know which functions to choose for my new ALU. In the virtual ALU I build there are input x and y, and 6 functions:   

- zero x  

- not x (bitwise),   

- zero y,   

- not y (bitwise),   

- f (0: x AND y 1: x + y),   

- not(bitwise, on everything).

I am going to build a whole whole computer, so i could of course just for example add multiplication with software later, but I would probably like to have more hardware functions. From my research i found out about in- and decrementers, left/right shifting, other "full" multiplying/dividing circuits and of course more logical implementations. **But i have no idea what functions are needed/useful to have in an ALU, and what is a good balance between hardware and software implementations.**

Answer: 
I currently use GIT with Altium to back up my files. I watched this <https://www.youtube.com/watch?v=XXSMZMNnvww> video which helped me set it up. It's not an exact Altium to GIT but it does give you the general steps to do so.
[Git](http://en.wikipedia.org/wiki/Git_%28software%29) is one popular free open-source choice that is scalable (it works with distributed workflows).