use a hidden double buffer and scale display up
re-format some code
added interface to canvas data, fixed a bug that was ignoring the CL register (clear value)