It is common in my applications (Quickwin) to interact with user via a "text screen" (actually a child window) in which all writing is done with coordinate control via OUTTEXT. Suppose at some key moment the screen is nearly full of text bits, scattered around. then, a text window is opened somewhere and new text is written (or a graphics window is opened and a chart is created), for temporary use. Then that window is closed. I can blank out the area using the original background color, but how can I restore the text that was originally there?
In our old DOS FORTRAN programs we accomplished this easily, exploiting hardware, by saving the current screen as a display page page 1 (say), then temporarily writing to display page 2, and then popping page 1 back on when done. ( We developed simple routines in Assembler to read and write directly to display memory pages, move contents from one display page to another, etc.).
How is this best accomplished now? I know I can save the entire screen to a big string array say CHARACTER(80) :: SCREENTEXT(25) if say there are 25 rows of 80 columns), force all permanent screen writing to go through this array, and rewriting the entire array whenever it needs to be restored. This is very cumbersome (and slow in Quickwin) and I'm hoping there is a better way.