Handle H00 and V00
diff --git a/ecp5/gfx.cc b/ecp5/gfx.cc
index 409e8de..1a77488 100644
--- a/ecp5/gfx.cc
+++ b/ecp5/gfx.cc
@@ -447,6 +447,16 @@
 
 void setDestination(GraphicElement &el, int x, int y, WireId dst, IdString dst_type, GfxTileWireId dst_id)
 {
+    if (dst_type == id_WIRE_TYPE_H00) {
+        int group = (dst_id - TILE_WIRE_H00L0000) / 2;
+        el.y2 = y + switchbox_y1 + 0.0017f*(8 - ((dst_id - TILE_WIRE_H00L0000) % 2)*4);
+
+        if (group) {
+            el.x2 = x + switchbox_x2;
+        } else {
+            el.x2 = x + switchbox_x1;
+        }
+    }
     if (dst_type == id_WIRE_TYPE_H01) {
         if (x == dst.location.x) 
             el.x2 = x + switchbox_x1;
@@ -462,6 +472,15 @@
         el.x2 = x + switchbox_x1 + 0.0017f*(96 + (dst_id - TILE_WIRE_H06W0303)+ 10 *(dst.location.x%9));
         el.y2 = y + switchbox_y1;
     }
+    if (dst_type == id_WIRE_TYPE_V00) {
+        int group = (dst_id - TILE_WIRE_V00T0000) / 2;
+        el.x2 = x + switchbox_x2 - 0.0017f*(8 - ((dst_id - TILE_WIRE_V00T0000) % 2)*4);
+        if (group) {
+            el.y2 = y + switchbox_y1;
+        } else {
+            el.y2 = y + switchbox_y2;
+        }
+    }
     if (dst_type == id_WIRE_TYPE_V01) {
         el.x2 = x + switchbox_x2 - 0.0017f*16 + 0.0017f * (dst_id - TILE_WIRE_V01N0001);
         if (y == dst.location.y) 
@@ -563,7 +582,7 @@
     el2.style = style;
 
     setDestination(el2,x,y,dst,dst_type,dst_id);
-    if (dst_type == id_WIRE_TYPE_H01 || src_type == id_WIRE_TYPE_V01) {
+    if (dst_type == id_WIRE_TYPE_H01 || src_type == id_WIRE_TYPE_V01 || dst_type == id_WIRE_TYPE_H00) {
         el.x2 = el.x1;
         el.y2 = el2.y2;
         g.push_back(el);
@@ -605,14 +624,21 @@
     el.type = GraphicElement::TYPE_ARROW;
     el.style = style;
 
+    // To H00
+    if (src_type == id_WIRE_TYPE_V02 && dst_type == id_WIRE_TYPE_H00) {
+        toSameSideH1Ver(g,el,x,y,src,src_type,src_id,dst,dst_type,dst_id,style, dst_id - TILE_WIRE_H00L0000 + 30);
+    }
+    if (src_type == id_WIRE_TYPE_H02 && dst_type == id_WIRE_TYPE_H00) {
+        //toSameSideH1Hor(g,el,x,y,src,src_type,src_id,dst,dst_type,dst_id,style, dst_id - TILE_WIRE_H00L0000);
+        straightLine(g,el,x,y,src,src_type,src_id,dst,dst_type,dst_id);
+    }
+    
+    // To H01
     if (src_type == id_WIRE_TYPE_H06 && dst_type == id_WIRE_TYPE_H01) {
         toSameSideH1Hor(g,el,x,y,src,src_type,src_id,dst,dst_type,dst_id,style, dst_id - TILE_WIRE_H01E0001);
     }
-    if (src_type == id_WIRE_TYPE_V06 && dst_type == id_WIRE_TYPE_V01) {
-        toSameSideH1Hor(g,el,x,y,src,src_type,src_id,dst,dst_type,dst_id,style, dst_id - TILE_WIRE_V01N0001);
-    }
-
-
+    
+    // To H02
     if (src_type == id_WIRE_TYPE_H01 && dst_type == id_WIRE_TYPE_H02) {
         toSameSideH1Hor(g,el,x,y,src,src_type,src_id,dst,dst_type,dst_id,style, dst_id - TILE_WIRE_H02W0701);
     }
@@ -636,6 +662,7 @@
         straightLine(g,el,x,y,src,src_type,src_id,dst,dst_type,dst_id);
     }
         
+    // To H06
     if (src_type == id_WIRE_TYPE_H01 && dst_type == id_WIRE_TYPE_H06) {
         toSameSideH1Hor(g,el,x,y,src,src_type,src_id,dst,dst_type,dst_id,style, dst_id - TILE_WIRE_H06W0303);
     }
@@ -656,6 +683,21 @@
         straightLine(g,el,x,y,src,src_type,src_id,dst,dst_type,dst_id);
     }
 
+    // To V00
+    if (src_type == id_WIRE_TYPE_V02 && dst_type == id_WIRE_TYPE_V00) {
+        //toSameSideH1Hor(g,el,x,y,src,src_type,src_id,dst,dst_type,dst_id,style, dst_id - TILE_WIRE_V00T0000);
+        straightLine(g,el,x,y,src,src_type,src_id,dst,dst_type,dst_id);
+    }
+    if (src_type == id_WIRE_TYPE_H02 && dst_type == id_WIRE_TYPE_V00) {
+        toSameSideV1Ver(g,el,x,y,src,src_type,src_id,dst,dst_type,dst_id,style, src_id - TILE_WIRE_H02W0701 + 20);
+    }
+
+    // To V01
+    if (src_type == id_WIRE_TYPE_V06 && dst_type == id_WIRE_TYPE_V01) {
+        toSameSideH1Hor(g,el,x,y,src,src_type,src_id,dst,dst_type,dst_id,style, dst_id - TILE_WIRE_V01N0001);
+    }
+
+    // To V02
     if (src_type == id_WIRE_TYPE_H01 && dst_type == id_WIRE_TYPE_V02) {
         if (x == src.location.x) {
             toSameSideH1Ver(g,el,x,y,src,src_type,src_id,dst,dst_type,dst_id,style, dst_id - TILE_WIRE_V02N0701);                        
@@ -679,6 +721,7 @@
         toSameSideVer(g,el,x,y,src,src_type,src_id,dst,dst_type,dst_id,style,src_id - TILE_WIRE_V06N0303);
     }
 
+    // To V06
     if (src_type == id_WIRE_TYPE_H01 && dst_type == id_WIRE_TYPE_V06) {
         if (x == src.location.x) {
             toSameSideH1Ver(g,el,x,y,src,src_type,src_id,dst,dst_type,dst_id,style, dst_id - TILE_WIRE_V06N0303);