- we need to start by literally simulating the RAM that we are going to be able to operate on
- luckily in CHIP-8, itβs very simple
- 4KB literally means 4096 bytes
- represented as a
uint8_t array of size 4096 in C
- creating a
ChripMemory struct to wrap around this memory
- benefits: creating abstraction above the memory to avoid unrestricted access to the actual array
- memory regions (from
0x000 to 0xFFF):
0x000 to 0x1FF β CHIP-8 interpreter (not written to)
0x050 to 0x0A0 β storage space for built in characters (refer to fonts)
0x200 to 0xFFF β instructions from ROM

- because our
PC needs to point to an index in this block, we immediately treat each array index as a byte in the memory
- so the
PC starts at 0x200 as discussed above