 void writeChar(char c) {
     
     switch(c) {
+      case 'A':
+        writeA();
+        break;
       case 'B':
         writeB();
         break;
+      case 'C':
+        writeC();
+        break;
+      case 'D':
+        writeD();
+        break;
+      case 'E':
+        writeE();
+        break;
+      case 'F':
+        writeF();
+        break;
       case 'G':
         writeG();
         break;
+      case 'H':
+        writeH();
+        break;
+      case 'I':
+        writeI();
+        break;
+      case 'J':
+        writeJ();
+        break;
+      case 'K':
+        writeK();
+        break;
       case 'L':
         writeL();
         break;
+      case 'M':
+        writeM();
+        break;
+      case 'N':
+        writeN();
+        break;
       case 'O':
         writeO();
         break;
+      case 'P':
+        writeP();
+        break;
+      case 'Q':
+        writeQ();
+        break;
+      case 'R':
+        writeR();
+        break;
+      case 'S':
+        writeS();
+        break;
       case 'T':
         writeT();
+        break;
+      case 'U':
+        writeU();
+        break;
+      case 'V':
+        writeV();
+        break;
+      case 'W':
+        writeW();
+        break;
+      case 'X':
+        writeX();
+        break;
+      case 'Y':
+        writeY();
+        break;
+      case 'Z':
+        writeZ();
         break;
         
       default:

  float x = position.x;
  float y = position.y;
  float w = fontSize * 0.5;
  pushCmd("PD");
  pushTo(x, y + capHeight);
  pushTo(x,y);
  pushTo(x + w, y);
  pushCmd("PU");
  NEXTLETTER
}

void writeO() 
{
  float x = position.x;
  float y = position.y;
  float w = fontSize * 0.5;
  pushCmd("PD");
  pushTo(x + w, y);
  pushTo(x + w, y + capHeight);
  pushTo(x, y + capHeight);
  pushTo(x, y);
  pushCmd("PU");
  NEXTLETTER  
}

void writeT()
{
  float x = position.x;
  float y = position.y;
  float w = fontSize * 0.5;
  pushTo(x + w/2, y);
  pushCmd("PD");
  pushTo(x + w/2, y + capHeight);
  pushTo(x, y + capHeight);
  pushTo(x + w, y + capHeight);
  pushCmd("PU");
  NEXTLETTER  
}



long sqr(long v) {
  return v*v;

  pushTo(x + w, y);
  pushTo(x + w, y + capHeight/3);
  pushTo(x + w/3, y + capHeight/3);
  NEXTLETTER
}

void writeH()
{
  float x = position.x;
  float y = position.y;
  float w = fontSize * 0.5;

  pushCmd("PD");
  pushTo(x, y + capHeight);
  pushTo(x, y + capHeight / 2);
  pushTo(x + w, y + capHeight / 2);
  pushTo(x + w, y + capHeight);
  pushTo(x + w, y);
  NEXTLETTER
}

void writeI()
{
  float x = position.x;
  float y = position.y;
  float w = fontSize * 0.5;

  pushTo(x + w / 2, y);
  pushCmd("PD");
  pushTo(x + w / 2, y + capHeight);
  NEXTLETTER
}

void writeJ()
{
  float x = position.x;
  float y = position.y;
  float w = fontSize * 0.5;

  pushTo(x, y + capHeight / 4);
  pushCmd("PD");
  pushTo(x, y);
  pushTo(x + w, y);
  pushTo(x + w, y + capHeight);
  NEXTLETTER
}

void writeK()
{
  float x = position.x;
  float y = position.y;
  float w = fontSize * 0.5;

  pushCmd("PD");
  pushTo(x, y + capHeight);
  pushCmd("PU");
  pushTo(x + w, y + capHeight);
  pushCmd("PD");
  pushTo(x, y + capHeight / 2);
  pushTo(x + w, y);
  NEXTLETTER
}

