 
 // Alphabet
 
-#define NEXTLETTER pushTo(x + w + letterSpacing, y);
+#define NEXTLETTER nextLetter(x + w + letterSpacing, y);
+
+void nextLetter(float x, float y)
+{
+  pushCmd("PU");
+  pushTo(x, y);
+}
+
+void writeA()
+{
+  float x = position.x;
+  float y = position.y;
+  float w = fontSize * 0.5;
+  
+  pushCmd("PD");
+  pushTo(x + w/2, y + capHeight);
+  pushTo(x + w, y);
+  pushCmd("PU");
+  pushTo(x + w / 4, y + capHeight / 2);
+  pushCmd("PD");
+  pushTo(x + 3 * w / 4, y + capHeight / 2 );
+  NEXTLETTER
+}
 
 void writeB()
 {

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


  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);
  NEXTLETTER
}

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

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

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

  pushCmd("PD");
  pushTo(x, y + capHeight);
  pushTo(x + w, y);
  pushTo(x + w, y + capHeight);
  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);
  NEXTLETTER  
}

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

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

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

void writeS() 
{
  float x = position.x;
  float y = position.y;
  float w = fontSize * 0.5;
  
  pushCmd("PD");
  pushTo(x + w, y);
  pushTo(x + w, y + capHeight / 2);
  pushTo(x, y + capHeight / 2);
  pushTo(x, y + capHeight);
  pushTo(x + w, y + capHeight);
  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);
  NEXTLETTER
}

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

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

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

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

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

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

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

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