I remember writing against the Zortech Display library - a text-mode interface for writing to the screen for DOS programs. I quickly added an extra layer to make it easier to work with (ah... abstraction). And in one project I added another layer to give me some rudimentary overlapping windows. :-)

Wade