Made by Kyushu Matsushita Electric, a.k.a. Panasonic
http://www.kme.panasonic.co.jp/
http://panasonic.com/

The same twain driver handle these scanners:
Same family as  KV-SS25, KV-SS50, KV-SS55, KV-SS50EX, KV-SS55EX, KV-SS850, KV-SS855.

Another driver handle the KV-S2055L, KV-S2055W.

However all these scanner show similarities.

/*--------------------------------------------------------------------------*/

SCSI commands supported by the KV-SS25:

TEST UNIT READY:
00 00 00 00 00 00

REQUEST SENSE:
03 00 00 00 0E 00
  a return after a short read is:
      f0 00 60 00 00 00 02 0a 00 00 00 00 00 00 00 00
  a return after a jam (sure?)
      f0 00 03 00 00 00 00 0a 00 00 00 00 80 01 00 00
  no paper
      f0 00 03 00 00 00 00 0a 00 00 00 00 3a 00 00 00
  jam door open:
	  f0 00 02 00 00 00 00 0a 00 00 00 00 04 81 00 00
  paper jam
	  f0 00 03 00 00 00 00 0a 00 00 00 00 80 04 00 00
  after a power cycle
      f0 00 06 00 00 00 00 0a 00 00 00 00 29 00 00 00
  after ????
      f0 00 05 00 00 00 00 0a 00 00 00 00 2c 02 00 00
  out of memory (scan data too big for scanner)
      f0 00 05 00 00 00 00 0a 00 00 00 00 2c 80 00 00

INQUIRY:
12 00 00 00 60 00
  result:
    06 00 02 02 5B 00 00 10 4B 2E 4D 2E 45 2E 20 20 
    4B 56 2D 53 53 32 35 41 20 20 20 20 20 20 20 20 
    31 2E 30 35 00 00 00 00 00 00 00 00 00 00 00 00 
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 

SET WINDOWS:
24 00 00 00 00 00 00 00 00 00
   reset (?)
24 00 00 00 00 00 00 00 48 00
   72 bytes.
   6-7 = 0x40 = window descriptor length
   
   Window Descriptor Block:
   0 = page side 
	 0x00 = front
	 0x80 = back
   2-3 = X resolution
   4-5 = Y Resolution
   14-17 = width  (size in inches * 1200)
   18-21 = length (size in inches * 1200)
   22 = 255 - brightness
   23 = same as 22
   24 = contrast
   25 = image composition
        0x00 = black&white (1 bit)
		0x01 = black&white with halftone pattern
		0x02 = grayscale
   26 = bits/pixel
        0x01, if image comp == 0
        0x04, if image comp == (0x01 || 0x02) -> grayscale 4 bits
		0x08, if image comp == 0x02 -> grayscale 8 bits
   28 = haltone pattern
      0x00 = Bayer 64
      0x01 = Bayer 16
	  0x02 = Dot 32
	  0x03 = Dot 64
	  0x04 = Error diffusion
	  0x80 = User downloaded pattern
   29 = reverse image
      0x00 = no reverse
      0x80 = reverse 
   43 = image emphasis
	  0x80 smooth
	  0x00 none
	  0x01 low
	  0x30 medium (twain default)
	  0x50 high
   44 = gamma (Gray 4/8 only)
      0x00 normal
	  0x01 from CRT
	  0x80 gamma table 0 (previously downloaded)
	  0x81 gamma table 1 (previously downloaded)
	  0x82 gamma table 2 (previously downloaded)
	  0x83 gamma table 3 (previously downloaded)
   47 = ? (only used by the ISIS driver)
      bit 7 = ? set by the ISIS driver
      bit 6 = length control
      bit 2 = ? set by the ISIS driver
      bit 1 = ? set by the ISIS driver
   48-51 = width (again?, maybe paper size)
   52-55 = length (again?, maybe paper size)
   57 = feeder mode
      0x00 = one page
	  other = number of pages to read (TWAIN driver defaults to 0xff)
   58 = auto threshold
      0x00 = none (twain default)
	  0x80 = mode 1
	  0x81 = mode 2
	  0x82 = mode 3
   59 = automatic separation
	  0x00 = no (twain default)
	  0x80 = yes 
   60 = white level
      0x00 = from white stick (twain default)
	  0x80 = from paper
	  0x81 = automatic
   61 = noise reduction
      0x00 = none (twain default)
	  0x01 = 1x1
	  0x02 = 2x2
	  0x03 = 3x3
	  0x04 = 4x4
	  0x05 = 5x5

READ:
28 00 80 00 00 00 00 00 10 00
28 00 00 00 00 00 00 80 00 00
   2 = data type code
	  0x00 image data
	    The TWAIN driver always reads 0x8000 bytes at the time, except for
		the last packet where it read the size left plus 2 more bytes (and
		thus generating a check condition).

        5: page side
		   0x00 = front
		   0x80 = back
  
      0x80 image size in dots
         3(?)-4: number of the page to read. Multipage mode.

         returns 16 bytes:
	       0-3: length in pixels
	       4-7: width in lines

SEND(10):
  2A 00 03 00 00 01 00 01 0A 00
  2 = data type code
    0x02 = halftone pattern 
       data is 10 bytes of header + 64 bytes for the matrix
    0x03 = gamma table
       data is 10 bytes of header + 256 bytes for the table
  5 = gamma table number (data type code is 2)
    the scanner can store 4 gamma tables (from 0 to 3)
  7-8 = length

SET AREA (?)
C0 00 00 00 00 00 00 00 58 00
Total message length = 88 bytes
  7     = length -> 0x40 = 64 bytes
  14-17 = area 1 X
  18-21 = area 1 Y
  22-25 = area 1 width
  26-29 = area 1 length
  33    = image composition
            1 = halftone
  36    = haltone pattern (if image composition == 1)
		    0x00 = Bayer 64
			0x01 = Bayer 16
			0x02 = Dot 32
			0x03 = Dot 64
			0x04 = Error diffusion
  50-53 = area 2 X
  54-57 = area 2 Y
  58-61 = area 2 width
  62-65 = area 2 length
  68-71 = area 3 X
  72-75 = area 3 Y
  76-79 = area 3 width
  80-83 = area 3 length


Other supported commands:
16 RESERVE UNIT
17 RELEASE UNIT
1D SEND DIAGNOSTIC
31 OBJECT POSITION
3B WRITE BUFFER
