int edge_end2(unsigned v1, int e) {
unsigned x, y;
- y= (v1 & YMASK) + dy[e];
+ y= (v1 & ~XMASK) + dy[e];
if (y >= Y*Y1) return -1;
x= (v1 & XMASK) + dx[(v1 >> YSHIFT) & 1][e];
int edge_reverse(int v1, int e) {
unsigned x2;
- int flip;
+ int flip, eprime;
x2= (v1 & XMASK) + dx[(v1 >> YSHIFT) & 1][e];
flip= !!(x2 & ~XMASK);
- return reverse[flip][e];
+ eprime= reverse[flip][e];
+// printf("%60s %02x -%d->,<-%d- (%02x) [x2=%x flip=%d]\n","",
+// v1,e,eprime, EDGE_END2(v1,e), x2,flip);
+ return eprime;
}