Goals
- Build real hardware to maintain interest in software development.
- Sanity check before attempting a workstation-capable machine.
- Develop better hardware intuition.
- Include sufficient capability to handle a real application after completion
of experimentation. A calculator or instrument controller would be
satisfactory.
- Establish a performance mark against which to predict/compare future designs.
Principles
- Simplicity.
- Let the implementation guide the definition.
- Keep options open. Postpone decisions where possible.
- Design for debugging and rework. The CPU should be easily instrumented.
- Defining what IS NOT is as important as defining what IS.
- Don’t add functionality unless a real application requires it.
- Don’t get bogged down in I/O. Use modern hardware where helpful.
- Worse is better. If 90% functionality can be implemented for 10% effort, do
it and move on.
- The only thing worse than generalizing from a single example is generalizing
from no example at all.