Index: branches/eam_branches/ipp-20101205/Ohana/src/opihi/dvo/dbExtractImages.c
===================================================================
--- branches/eam_branches/ipp-20101205/Ohana/src/opihi/dvo/dbExtractImages.c	(revision 30507)
+++ branches/eam_branches/ipp-20101205/Ohana/src/opihi/dvo/dbExtractImages.c	(revision 30508)
@@ -241,8 +241,8 @@
 
     case IMAGE_NCAL:
-      value.Int = image[N].Mxxxx;
+      value.Int = image[N].nFitPhotom;
       break;
     case IMAGE_SKY:
-      value.Flt = image[N].Myyyy + 0x8000;
+      value.Flt = NAN;
       break;
     case IMAGE_FLAGS:
@@ -299,4 +299,21 @@
       value.Flt = (field->ID == IMAGE_X_UR_FP) ? x : y;
       break;
+
+    case IMAGE_X_ERR_SYS:
+      value.Flt = image[N].dXpixSys;
+      break;
+    case IMAGE_Y_ERR_SYS:
+      value.Flt = image[N].dXpixSys;
+      break;
+    case IMAGE_MAG_ERR_SYS:
+      value.Flt = image[N].dMagSys;
+      break;
+
+    case IMAGE_NFIT_PHOTOM:
+      value.Int = image[N].nFitPhotom;
+      break;
+    case IMAGE_NFIT_ASTROM:
+      value.Int = image[N].nFitAstrom;
+      break;
   }
   return (value);
Index: branches/eam_branches/ipp-20101205/Ohana/src/opihi/dvo/dbExtractMeasures.c
===================================================================
--- branches/eam_branches/ipp-20101205/Ohana/src/opihi/dvo/dbExtractMeasures.c	(revision 30507)
+++ branches/eam_branches/ipp-20101205/Ohana/src/opihi/dvo/dbExtractMeasures.c	(revision 30508)
@@ -387,4 +387,7 @@
       value.Flt = FromShortPixels(measure[0].dYccd);
       break;
+    case MEAS_POS_SYS_ERR: /* OK */
+      value.Flt = FromShortPixels(measure[0].dRsys);
+      break;
     case MEAS_XMOSAIC: /* OK */
       ra  = average[0].R - measure[0].dR / 3600.0;
Index: branches/eam_branches/ipp-20101205/Ohana/src/opihi/dvo/dbFields.c
===================================================================
--- branches/eam_branches/ipp-20101205/Ohana/src/opihi/dvo/dbFields.c	(revision 30507)
+++ branches/eam_branches/ipp-20101205/Ohana/src/opihi/dvo/dbFields.c	(revision 30508)
@@ -194,4 +194,5 @@
   if (!strcasecmp (fieldName, "XCCD:ERR"))   	 ESCAPE (MEAS_XCCD_ERR,       MAG_NONE, OPIHI_FLT);
   if (!strcasecmp (fieldName, "YCCD:ERR"))   	 ESCAPE (MEAS_YCCD_ERR,       MAG_NONE, OPIHI_FLT);
+  if (!strcasecmp (fieldName, "POS_SYS_ERR"))    ESCAPE (MEAS_POS_SYS_ERR,    MAG_NONE, OPIHI_FLT);
   if (!strcasecmp (fieldName, "XMOSAIC"))    	 ESCAPE (MEAS_XMOSAIC,        MAG_NONE, OPIHI_FLT);
   if (!strcasecmp (fieldName, "YMOSAIC"))    	 ESCAPE (MEAS_YMOSAIC,        MAG_NONE, OPIHI_FLT);
@@ -399,7 +400,6 @@
   if (!strcasecmp (fieldName, "trate"    )) ESCAPE (IMAGE_TRATE,     MAG_NONE, OPIHI_FLT);
 
-  // XXX : these are mapped to ridiculous things: Myyyy + 0x8000 and Mxxxx
   if (!strcasecmp (fieldName, "ncal"     )) ESCAPE (IMAGE_NCAL,      MAG_NONE, OPIHI_INT);
-  if (!strcasecmp (fieldName, "sky"      )) ESCAPE (IMAGE_SKY,       MAG_NONE, OPIHI_FLT);
+  if (!strcasecmp (fieldName, "sky"      )) ESCAPE (IMAGE_SKY,       MAG_NONE, OPIHI_FLT); // deprecated for now
 
   if (!strcasecmp (fieldName, "imflags"  )) ESCAPE (IMAGE_FLAGS,     MAG_NONE, OPIHI_INT);
@@ -428,4 +428,10 @@
   if (!strcasecmp (fieldName, "Y_UR_FP"  )) ESCAPE (IMAGE_Y_UR_FP,   MAG_NONE, OPIHI_FLT);
 
+  if (!strcasecmp (fieldName, "dX_SYS"  )) ESCAPE (IMAGE_X_ERR_SYS,  MAG_NONE, OPIHI_FLT);
+  if (!strcasecmp (fieldName, "dY_SYS"  )) ESCAPE (IMAGE_Y_ERR_SYS,  MAG_NONE, OPIHI_FLT);
+  if (!strcasecmp (fieldName, "dM_SYS"  )) ESCAPE (IMAGE_MAG_ERR_SYS,MAG_NONE, OPIHI_FLT);
+  if (!strcasecmp (fieldName, "NFIT_PHOTOM")) ESCAPE (IMAGE_NFIT_PHOTOM,MAG_NONE, OPIHI_INT);
+  if (!strcasecmp (fieldName, "NFIT_ASTROM")) ESCAPE (IMAGE_NFIT_ASTROM,MAG_NONE, OPIHI_INT);
+
   // for words that don't parse, try a photcode
   gprint (GP_ERR, "unknown field '%s' for image table in DVO database\n", fieldName);
Index: branches/eam_branches/ipp-20101205/Ohana/src/opihi/dvo/gimages.c
===================================================================
--- branches/eam_branches/ipp-20101205/Ohana/src/opihi/dvo/gimages.c	(revision 30507)
+++ branches/eam_branches/ipp-20101205/Ohana/src/opihi/dvo/gimages.c	(revision 30508)
@@ -201,7 +201,5 @@
     }
 
-    /*** XXX we need to re-introduce the use of applyMcal
-    Mcal = applyMcal (&image[i], 2048.0, 2048.0);
-    ***/
+    // XXX Mcal = applyMcal (&image[i], 2048.0, 2048.0);
 
   got_spot:
Index: branches/eam_branches/ipp-20101205/Ohana/src/opihi/dvo/images.c
===================================================================
--- branches/eam_branches/ipp-20101205/Ohana/src/opihi/dvo/images.c	(revision 30507)
+++ branches/eam_branches/ipp-20101205/Ohana/src/opihi/dvo/images.c	(revision 30508)
@@ -223,11 +223,10 @@
       goto got_type;
     }
-    // For 'TrianglePts' (TRI-), we are using the Mx,My, etc terms to save the coordinates
-    // this means triangular images cannot carry photometric zero-point variations
+    // For 'TrianglePts' (TRI-), we are absurdly overloaded values otherwise not used
     if (typehash == TrianglePts) {
       Npts = 3;
-      x[0] = image[i].Mx;   y[0] = image[i].My;
-      x[1] = image[i].Mxxx; y[1] = image[i].Mxyy;
-      x[2] = image[i].Mxxy; y[2] = image[i].Myyy;
+      x[0] = image[0].dXpixSys;      y[0] = image[0].dYpixSys;
+      x[1] = image[0].dMagSys;       y[1] = image[0].nFitAstrom;
+      x[2] = image[0].photom_map_id; y[2] = image[0].astrom_map_id;
       goto got_type;
     }
Index: branches/eam_branches/ipp-20101205/Ohana/src/opihi/dvo/imphot.c
===================================================================
--- branches/eam_branches/ipp-20101205/Ohana/src/opihi/dvo/imphot.c	(revision 30507)
+++ branches/eam_branches/ipp-20101205/Ohana/src/opihi/dvo/imphot.c	(revision 30508)
@@ -9,5 +9,5 @@
   char bufname[64];
   float *p;
-  double fx, fy, x, y, applyMcal();
+  double fx, fy, x, y;
   Image *image;
   Buffer *buf;
@@ -63,5 +63,6 @@
     for (y = 0; y < 200; y+=1.0) {
       for (x = 0; x < 100; x+=1.0, p++) {
-	*p = applyMcal (&image[subset[0]], (fx*x), (fy*y));
+	// *p = applyMcal (&image[subset[0]], (fx*x), (fy*y));
+	*p = image[subset[0]].Mcal;
       }
     }
@@ -70,4 +71,8 @@
   for (j = 0; j < Nsubset; j++) {
     i = subset[j];
+    gprint (GP_ERR, "%s: %f\n", image[i].name, image[i].Mcal);
+
+// XXX old code when we had the option of a 2D zero point model
+# if (0)      
     switch (image[i].order) {
     case 0:
@@ -90,4 +95,5 @@
       break;
     }
+# endif
   }
 
Index: branches/eam_branches/ipp-20101205/Ohana/src/opihi/dvo/skycat.c
===================================================================
--- branches/eam_branches/ipp-20101205/Ohana/src/opihi/dvo/skycat.c	(revision 30507)
+++ branches/eam_branches/ipp-20101205/Ohana/src/opihi/dvo/skycat.c	(revision 30508)
@@ -116,4 +116,6 @@
 
   r = ohana_normalize_angle (r);
+  while (r < Rmin) { r += 360.0; }
+  while (r > Rmax) { r -= 360.0; }
 
   if (*leftside == -1) {
Index: branches/eam_branches/ipp-20101205/Ohana/src/opihi/include/dvoshell.h
===================================================================
--- branches/eam_branches/ipp-20101205/Ohana/src/opihi/include/dvoshell.h	(revision 30507)
+++ branches/eam_branches/ipp-20101205/Ohana/src/opihi/include/dvoshell.h	(revision 30508)
@@ -107,4 +107,5 @@
       MEAS_XCCD_ERR, 
       MEAS_YCCD_ERR, 
+      MEAS_POS_SYS_ERR, 
       MEAS_XMOSAIC, 
       MEAS_YMOSAIC, 
@@ -219,4 +220,9 @@
       IMAGE_Y_UL_FP,
       IMAGE_Y_UR_FP,
+      IMAGE_X_ERR_SYS,
+      IMAGE_Y_ERR_SYS,
+      IMAGE_MAG_ERR_SYS,
+      IMAGE_NFIT_PHOTOM,
+      IMAGE_NFIT_ASTROM
 };
 
