What I _don't_ like is his coding style. If he's writing C++, let him use modern C++...
* He should use C++ standard library header names, not C library headers.
* He should use std::array's rather than plain arrays.
* He asks whether there's a way to define arithmetic ops that's simpler/shorter than using macros - perhaps not, but using lambdas, `std::arrays`, and `<algorithm>` and `<numeric>`, you can get pretty close.
* Way way way too much magic numbers.
* Seems like a bunch of wheel-reinvention. Aren't there libraries for raw interaction with the hardware? e.g. EGA/VGA palettes?
etc.