Merged branches

now using timer-based frame scheduling.
n.b. both times I have done this it has performed badly when first
compiled; if it performs poorly, close all Java programs and try again.