Commit | Line | Data |
---|---|---|
bc5b63cf AT |
1 | Goals |
2 | ===== | |
3 | ||
4 | * Build real hardware to maintain interest in software development. | |
5 | * Sanity check before attempting a workstation-capable machine. | |
6 | * Develop better hardware intuition. | |
7 | * Include sufficient capability to handle a real application after completion | |
8 | of experimentation. A calculator or instrument controller would be | |
9 | satisfactory. | |
10 | * Establish a performance mark against which to predict/compare future designs. | |
11 | ||
12 | Principles | |
13 | ========== | |
14 | ||
15 | * Simplicity. | |
16 | * Let the implementation guide the definition. | |
17 | * Keep options open. Postpone decisions where possible. | |
18 | * Design for debugging and rework. The CPU should be easily instrumented. | |
19 | * Defining what IS NOT is as important as defining what IS. | |
20 | * Don't add functionality unless a real application requires it. | |
21 | * Don't get bogged down in I/O. Use modern hardware where helpful. | |
22 | * Worse is better. If 90% functionality can be implemented for 10% effort, do | |
23 | it and move on. | |
24 | * The only thing worse than generalizing from a single example is generalizing | |
25 | from no example at all. |