If I were on an island with an infinite box of NAND gates and an unlimited power supply with the complete working Hack platform developed up to the end of chapter five, how can I go about developing an OS with storage?
First, decide upon an assembly language (as done in the book.) However, I don't want to use the modern convenience of writing an assembler in C++. Let's say I take this approach instead:
1. Decide upon the assembly language. (Done in chapter 5.)
2. Decide upon a way to encode the assembly code onto a 32k 16bit memory chip.
3. Decide upon a way to feed the assembly code to the assembler program (that we have yet to design) on the ROM chip such that the assembler can read the assembly code and do something with it.
4. Now, write the assembler program in assembly by hand on a sheet of paper.
5. Convert the hand written assembly to machine code by hand.
6. Input the assembler machine code onto the ROM.
7. Write a program in assembly (something simple like defining multiplication), put it on the input memory chip.
8. Run the assembler program which reads the input memory chip and outputs this to some other memory chip.
9. Come up with some storage system that handles these .asm and .hack files.
10. Come up with some operating system that allows you to use .hack files through a command prompt.
11. Come up with some program that lets you write .asm files, compile them and store them.
Does anybody know of a good reference to guide me through this process?