# [DRAFT] Design for the _MicroCardiograph_ microprocessor trainer The MicroCardiograph uses memory-mapped IO. ## Memory map | Address | Used for... | |----------|-----------------------------------------------| | 00 to 19 | display (5x5) | | 1A | pointer to display memory | | 1B | keypad: value of latest key pressed | | 1C | reserved for future use (bank switching flag) | | 1D | initial IP | | 1D to FE | free | | FF | * ROM (unwriteable) pointer to initial IP | \* Not implemented yet ## Peripherals ### Keypad The value of the latest keypress on a hex keypad is stored at `$1B`. The keypad uses the same layout as the COSMAC VIP (and CHIP-8). The CPU simulator maps those keys onto a Qwerty set: `1` `2` `3` `C`   =   `1` `2` `3` `4` `4` `5` `6` `D`   =   `Q` `W` `E` `R` `7` `8` `9` `E`   =   `A` `S` `D` `F` `A` `0` `B` `F`   =   `Z` `X` `C` `V` The arrow keys are also mapped onto the hex keypad: ` ` `5` ` `   =   ` ` `↑` ` ` `7` `8` `9`   =   `←` `↓` `→` ### Keypad as monitor input TODO