Need a device we can open to send 2D drawing commands to: * move graphics cursor * set Foreground/background colour * draw line of given thickness * read back area * draw outline rectangle * draw filled rectangle * draw bitmap to area, with colour masking Low level API can work in screen-format data and high level APIs can convert that into pixel colour iterators for embedded-graphics. See the BBC Micro's VDU API for inspiration. Also look at Windows GDI perhaps.