     }    
     // Flick the latch
     digitalWrite(latchPin, 1);
-    delay(1);
+  //  delay(1);
     digitalWrite(latchPin, 0);
     // Turn on next row.
     digitalWrite(i + 13, 0);    
   }
 }
 
-void printLetter(char ch, byte pos)
+void printString();
+
+void printChar(char ch, byte pos)
 {  
   // The display is 40 bits wide, the buffer only 32. Time to select the correct one.
   int bufferpos = 0;

// Stood on the shoulders of:
// http://www.openobject.org/opensourceurbanism/Bike_POV_Beta_4 // Font renderer, jay!
// http://playground.arduino.cc/Code/BitMath // Bit manipulation hurts my brain!

#include "font.h"


    else {
      bufferpointer = 1;
      bufferlength = 7;
      bufferpos = pos - 8;
    }
    
    // 0 1 2 3 4
    // 30
    
    //  0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
    // 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10  9  8  7  6  5  4  3  2  1  0 
    //                                                                                                  7  6  5  4  3  2  1  0
    
    // bit shift through the byte, set it in the buffer
    for (int j=0; j<7; j++) {
      if (b & (1 << j)) {        
        bitSet(screenbuffer[activebuffer][j][bufferpointer], 31-i-bufferpos);
