[sane-devel] need help with Microtek 35t+ on SPARC/Solaris

Markku Savela msa@burp.tkv.asdf.org
Tue, 6 Aug 2002 21:37:15 +0300


> From: witold@ict.pwr.wroc.pl (Witold Paluszynski)

> Hi, I am having problems making SANE work with a ScanMaker 35t Plus.

I have 35t+ with linux and sane 1.0.7 didn't work either (I have not
tried with 1.08).

However, as coded it couldn't load 10 bit gamma tables. I don't know
what is wrong, but I got it "working" by forcing 8 bit gamma tables by
modifying the "microtek.c" with the attached diff.

HOWEVER! It definitely not correct, I think it results somewhat odd
gamma table, but at least it scans!

Several months ago I asked on this list who maintains the microtek
backend, and nobody appears to do so.

I could FIX things, if I had the 35t+ programming info. Has anyone
actually managed to get those from Microtek?

I'm fairly pissed off by these scanner makers hiding the info. Is
there *ANY* scanner maker that gives programming info? If so, my next
scanner will definitely be of that brand!!!! (I won't buy anything
from microtek any more).

-------------------------------------------------------------------
*** microtek.c.orig	Sat May 26 11:32:29 2001
--- microtek.c	Sun Feb 10 16:43:09 2002
***************
*** 774,782 ****
--- 774,788 ----
    comm[4] = 0;
    comm[5] = 0;
    comm[6] = 0;
+ #if 1
    comm[7] = ((ms->gamma_entries * ms->gamma_entry_size) >> 8) & 0xFF;
    comm[8] = (ms->gamma_entries * ms->gamma_entry_size) & 0xFF;
    comm[9] = (ms->gamma_entry_size == 2) ? 1 : 0;
+ #else
+   comm[7] = (ms->gamma_entries >> 8) & 0xFF;
+   comm[8] = ms->gamma_entries & 0xFF;
+   comm[9] = 0;
+ #endif
  
    if (!(strcmp(ms->val[OPT_CUSTOM_GAMMA].s, M_TABLE))) {
      /***** Gamma by TABLE *****/
***************
*** 1665,1670 ****
--- 1671,1684 ----
      DBG(15, "parse_inquiry:  Unknown gamma max val!  0x%x\n",
  	result[66]);
    }
+ #if 1
+   if (mi->model_code == 0x62) {
+       mi->max_gamma_bit_depth = 8;
+       mi->gamma_size = 1;
+       mi->max_lookup_size = 256;
+       DBG(4, "parse_inquiry:  35t+ falsely reports 10 bit depth.\n");
+   }
+ #endif
    
    mi->fast_color_preview         = (SANE_Byte)(result[67] & 0x01);
    mi->xfer_format_select         = (SANE_Byte)(result[68] & 0x01);