All screen functions paint one column per call

...so make sure you call them at eight times the frequency to get the
same frame rate.  At the same frame rate, however, the screen should
appear smoother, since more time is spent per column with pixels on than
pixels off. You may therefore require less than eight times the previous
frequency to acheive the same perceived smoothness.

Also make some variables static.