Index: trunk/Ohana/src/opihi/dvo/ImageOps.c
===================================================================
--- trunk/Ohana/src/opihi/dvo/ImageOps.c	(revision 3393)
+++ trunk/Ohana/src/opihi/dvo/ImageOps.c	(revision 3402)
@@ -44,5 +44,4 @@
 	while (flipped && (r > Rmid)) r-= 360.0;
 	status = RD_to_XY (&X, &Y, r, d, &graph[0].coords);
-
 	if (!status) continue;
 	if (X < graph[0].xmin) continue;
@@ -50,16 +49,18 @@
 	if (Y < graph[0].ymin) continue;
 	if (Y > graph[0].ymax) continue;
-	subset[n] = i;
-	n++;
-	if (n > npts - 1) {
-	  npts += 200;
-	  REALLOCATE (subset, int, npts);
-	}
-	break;
+	goto in_region;
+	/** we miss any images which surround the region.  we are also
+	    missing the DIS images for which the corners don't touch
+	    the region, but which are needed for WRP images with
+	    corners touching the region **/
       }
-      /** we miss any images which surround the region.  we are also
-	  missing the DIS images for which the corners don't touch
-	  the region, but which are needed for WRP images with
-	  corners touching the region **/
+      continue;
+    }
+  in_region:
+    subset[n] = i;
+    n++;
+    if (n > npts - 1) {
+      npts += 200;
+      REALLOCATE (subset, int, npts);
     }
   }
Index: trunk/Ohana/src/opihi/dvo/LoadImages.c
===================================================================
--- trunk/Ohana/src/opihi/dvo/LoadImages.c	(revision 3393)
+++ trunk/Ohana/src/opihi/dvo/LoadImages.c	(revision 3402)
@@ -1,8 +1,8 @@
 # include "dvo.h"
 
-Image *LoadImages (int *Nimage) {
+Image *LoadImages (int *nimage) {
 
   char filename[256];
-  int nimage, NIMAGE;
+  int Nimage, NIMAGE;
   FILE *f;
   Header header;
@@ -11,4 +11,5 @@
   VarConfig ("IMAGE_CATALOG", "%s", filename);
 
+  *nimage = 0;
   NIMAGE = 0;
   Nimage = 0;
@@ -37,11 +38,11 @@
   ALLOCATE (image, Image, NIMAGE);
   fseek (f, header.size, SEEK_SET); 
-  nimage = Fread (image, sizeof(Image), NIMAGE, f, "image");
-  if (nimage != NIMAGE) {
-    fprintf (stderr, "failed to read in all images (%d of %d)\n", nimage, NIMAGE);
+  Nimage = Fread (image, sizeof(Image), NIMAGE, f, "image");
+  if (Nimage != NIMAGE) {
+    fprintf (stderr, "failed to read in all images (%d of %d)\n", Nimage, NIMAGE);
   }
 
   fclose (f);
-  *Nimage = nimage;
+  *nimage = Nimage;
   return (image);
 }
Index: trunk/Ohana/src/opihi/dvo/images.c
===================================================================
--- trunk/Ohana/src/opihi/dvo/images.c	(revision 3393)
+++ trunk/Ohana/src/opihi/dvo/images.c	(revision 3402)
@@ -86,8 +86,16 @@
 
     /* project this image to screen display coords */
-    x[0] = 0;           y[0] = 0;
-    x[1] = image[i].NX; y[1] = 0;
-    x[2] = image[i].NX; y[2] = image[i].NY;
-    x[3] = 0;           y[3] = image[i].NY;
+    /* DIS images represent a field, not a chip */
+    if (!strcmp(&image[i].coords.ctype[4], "-DIS")) {
+      x[0] = -0.5*image[i].NX; y[0] = -0.5*image[i].NY;
+      x[1] = +0.5*image[i].NX; y[1] = -0.5*image[i].NY;
+      x[2] = +0.5*image[i].NX; y[2] = +0.5*image[i].NY;
+      x[3] = -0.5*image[i].NX; y[3] = +0.5*image[i].NY;
+    } else {
+      x[0] = 0;           y[0] = 0;
+      x[1] = image[i].NX; y[1] = 0;
+      x[2] = image[i].NX; y[2] = image[i].NY;
+      x[3] = 0;           y[3] = image[i].NY;
+    }
     status = FALSE;
 
