As I already mentioned, I am willing to volunteer for the following changes
in SMSQ.

- have all windows draw their contents in the save area
- background update of windows (same mechanism)

In general I propose the following changes.
- Application should not draw onscreen, but in the save area. When they
properly use the iow.xtop call as exists at the moment, nothing needs to be
done, except that the use of iow.xtop will no longer be necessary (the call
now gives the address with the screen base, so that makes things easy). In
practice the applications which work in extended resolutions will not need
any changes.
- When switching jobs, the picture on screen does not have to be copied to
the save area.
- Applications should be able to mark their save area to make sure the
screen does not reflect changes. This is done to prevent unwanted flicker.
- A scheduler task needs to be written. This should run through the window
pile and for all windows check whether the contents has changed, and update
the lines where the changes took place. In principle it should be
straightforward to write the routines which does this under the assumption
that everything needs to be updated. The drawing routines should be adjusted
to set a bit to mark the line in the save area which has changed.
(Optionally, it might also be good to mark the save area as changed.) If
these bits are stored in a separate vector, they could be tested using 32
rows at once and consume little extra memory.

At a later stage, this approach could be extended to allow save areas to
have a shallower bit depth than the screen, thus saving even more memory.
--
Joachim Van der Auwera
http://www.triathlon98.com/Joachim/

Reply via email to