I'm writing an emulator for a homebrew computer I've built. I would like to create a window that I can treat just as the real hardware screen.

It almost needs to be a simple console app, except for some important differences.

The real hardware is 640x480 pixels, with 8x12 characters. No graphics needed. Unlike a console app, I do need to be able to draw characters to arbitrary screen locations. And I need complete control of the cursor. The font doesn't need to be exactly like my home made ROM, but I need 40x80 characters to fill the screen properly.

I don't want to redraw the entire screen every time a cursor blinks, so constantly dumping my video buffer to a simple console is out (unless that can be done with no flickering of the screen).

I'm willing to lock my window size, but it WOULD be cool if the window was sizeable, and the font always scaled to maintain 40x80. Font manipulation seems poorly documented on the web to me.

I've been pouring over the MS docs, and can really see how to do this. I don't need code, just what parts of the PI can help me.