Index: /trunk/SophyaExt/FitsIOServer/fabtcolread.cc
===================================================================
--- /trunk/SophyaExt/FitsIOServer/fabtcolread.cc	(revision 2169)
+++ /trunk/SophyaExt/FitsIOServer/fabtcolread.cc	(revision 2170)
@@ -203,5 +203,4 @@
 
  // Get column type
- int ColTypeCode;
  if(fits_get_coltype(FitsPtr,ColNum+1,&ColTypeCode,NULL,NULL,&sta)) {
    printerror(sta); Delete();
@@ -441,6 +440,6 @@
 }
 
-/*! idem before but for TVector of int_4 */
-long FitsABTColRead::Read(long n1,long n2,TVector<int_4>& data)
+/*! idem before but for TVector of unsigned short */
+long FitsABTColRead::Read(long n1,long n2,TVector<uint_2>& data)
 {
  if(n1<0 || n1>=NBline)
@@ -454,4 +453,27 @@
  if(data.Size()<nread) data.SetSize(nread);
 
+ int sta=0;
+ fits_read_col(FitsPtr,TUSHORT,ColNum+1,n1+1,1,nread,NULL,data.Data(),NULL,&sta);
+ if(sta) {
+   printerror(sta);
+   throw NotAvailableOperation("FitsABTColRead::Read_TVector<uint_2>: Error Reading Fits file\n");
+ }
+
+ return nread;
+}
+
+/*! idem before but for TVector of int_4 */
+long FitsABTColRead::Read(long n1,long n2,TVector<int_4>& data)
+{
+ if(n1<0 || n1>=NBline)
+   throw RangeCheckError("FitsABTColRead::Read TVector bad requested 1srt line \n");
+ if(data.Size()<=0 && n2<n1)
+   throw RangeCheckError("FitsABTColRead::Read TVector bad requested 2sd line \n");
+ if(n2<0) n2 = n1 + data.Size()-1;
+ if(n2>=NBline) n2 = NBline-1;
+
+ sa_size_t nread = n2-n1+1;
+ if(data.Size()<nread) data.SetSize(nread);
+
  //for(long i=n1;i<=n2;i++) data(i-n1) = Read(i);
  int sta=0;
@@ -460,5 +482,5 @@
  if(sta) {
    printerror(sta);
-   throw NotAvailableOperation("FitsABTColRead::Read_TVector<float>: Error Reading Fits file\n");
+   throw NotAvailableOperation("FitsABTColRead::Read_TVector<int_4>: Error Reading Fits file\n");
  }
 
@@ -484,5 +506,5 @@
  if(sta) {
    printerror(sta);
-   throw NotAvailableOperation("FitsABTColRead::Read_TVector<float>: Error Reading Fits file\n");
+   throw NotAvailableOperation("FitsABTColRead::Read_TVector<int_8>: Error Reading Fits file\n");
  }
 
Index: /trunk/SophyaExt/FitsIOServer/fabtcolread.h
===================================================================
--- /trunk/SophyaExt/FitsIOServer/fabtcolread.h	(revision 2169)
+++ /trunk/SophyaExt/FitsIOServer/fabtcolread.h	(revision 2170)
@@ -33,8 +33,10 @@
 
   double Read(long n,bool usebuffer=true);
-  long   Read(long n1,long n2,TVector<double>& data);
-  long   Read(long n1,long n2,TVector<float>& data);
+
+  long   Read(long n1,long n2,TVector<uint_2>& data);
   long   Read(long n1,long n2,TVector<int_4>& data);
   long   Read(long n1,long n2,TVector<int_8>& data);
+  long   Read(long n1,long n2,TVector<float>& data);
+  long   Read(long n1,long n2,TVector<double>& data);
 
   //! return the value of the first row
Index: /trunk/SophyaExt/FitsIOServer/fabtwriter.cc
===================================================================
--- /trunk/SophyaExt/FitsIOServer/fabtwriter.cc	(revision 2169)
+++ /trunk/SophyaExt/FitsIOServer/fabtwriter.cc	(revision 2170)
@@ -306,5 +306,5 @@
   \endverbatim
 */
-void FitsABTWriter::Write(int col,long row,short val)
+void FitsABTWriter::Write(int col,long row,int_2 val)
 {
   if(FirstTime) createtbl();
@@ -312,4 +312,13 @@
   if(fits_write_col(FitsPtr,TSHORT,col+1,row+1,1,1,&val,&sta))
     printerrorwrite("short",col,row,sta);
+}
+
+/*! Write unsigned short (2 Bytes) data to FITS file (see below) */
+void FitsABTWriter::Write(int col,long row,uint_2 val)
+{
+  if(FirstTime) createtbl();
+  int sta=0;
+  if(fits_write_col(FitsPtr,TUSHORT,col+1,row+1,1,1,&val,&sta))
+    printerrorwrite("unsigned short",col,row,sta);
 }
 
@@ -365,4 +374,15 @@
       that is "N-1" is the number of the last row written.
 */
+/*! Write a vector of unsigned short (2 Bytes) data to FITS file (see below) */
+long FitsABTWriter::Write(int col,long row,TVector<uint_2>& val)
+{
+  if(FirstTime) createtbl();
+  long nel = val.Size();
+  int sta=0;
+  if(fits_write_col(FitsPtr,TUSHORT,col+1,row+1,1,nel,val.Data(),&sta))
+    printerrorwrite("long",col,row,sta);
+  return row+nel;
+}
+
 /*! Write a vector of long (4 Bytes) data to FITS file (see below) */
 long FitsABTWriter::Write(int col,long row,TVector<int_4>& val)
@@ -389,5 +409,5 @@
   return row+nel;
 #else
-  throw PException("FitsABTWriter::Write(..,TVector<int_8>&) Not in that cfitio version");
+  throw PException("FitsABTWriter::Write(..,TVector<int_8>&) Not in that cfitsio version");
 #endif
 }
Index: /trunk/SophyaExt/FitsIOServer/fabtwriter.h
===================================================================
--- /trunk/SophyaExt/FitsIOServer/fabtwriter.h	(revision 2169)
+++ /trunk/SophyaExt/FitsIOServer/fabtwriter.h	(revision 2170)
@@ -46,9 +46,11 @@
   inline void SetDebug(int lp=0) {DbgLevel = (unsigned short) lp;}
 
-  void Write(int col,long row,short val);
+  void Write(int col,long row,int_2 val);
+  void Write(int col,long row,uint_2 val);
   void Write(int col,long row,int_4 val);
   void Write(int col,long row,int_8 val);
   void Write(int col,long row,float val);
   void Write(int col,long row,double val);
+  long Write(int col,long row,TVector<uint_2>& val);
   long Write(int col,long row,TVector<int_4>& val);
   long Write(int col,long row,TVector<int_8>& val);
