From 6e9c41a892ed0e0da326e0278b3221ce3f5713b8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=B6rg=20Frings-F=C3=BCrst?= <debian@jff-webhosting.net>
Date: Mon, 6 Oct 2014 14:00:40 +0200
Subject: Initial import of sane-backends version 1.0.24-1.2

---
 doc/teco/teco1.txt | 193 ++++++++++++++++++++++++++++++++++++++
 doc/teco/teco2.txt | 267 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 doc/teco/teco3.txt | 166 +++++++++++++++++++++++++++++++++
 3 files changed, 626 insertions(+)
 create mode 100644 doc/teco/teco1.txt
 create mode 100644 doc/teco/teco2.txt
 create mode 100644 doc/teco/teco3.txt

(limited to 'doc/teco')

diff --git a/doc/teco/teco1.txt b/doc/teco/teco1.txt
new file mode 100644
index 0000000..d555e9e
--- /dev/null
+++ b/doc/teco/teco1.txt
@@ -0,0 +1,193 @@
+
+          BACKEND TECO1
+
+
+
+Relisys RELI 2412 (no ADF, no transparency adapter)
+single pass scanner - 300*1200 dpi - 8.5*14
+Inquiry:
+   000: 06 00 02 02 30 00 00 10 52 45 4c 49 53 59 53 20    ....0...RELISYS 
+   016: 56 4d 33 35 33 30 2b 20 20 20 20 20 20 20 20 20    VM3530+         
+   032: 31 2e 30 38 31 2e 30 38 02 00 54 45 43 4f 20 56    1.081.08..TECO V
+   048: 4d 33 35 33 41                                     M353A
+Inquiry page 0x82
+   000: 06 82 00 12 11 54 45 43 4f 20 56 4d 33 35 33 41    .....TECO VM353A
+   016: 20 56 31 2e 30 36                                   V1.06
+
+AVEC Colour 2412
+three pass scanner - 300*600 dpi - 8.5*14
+    000: 06 00 02 02 30 00 00 10 20 20 20 20 20 20 20 20    ....0...        
+    016: 49 6d 61 67 65 20 53 63 61 6e 6e 65 72 20 20 20    Image Scanner   
+    032: 31 2e 30 38 31 2e 30 38 02 00 54 45 43 4f 20 56    1.081.08..TECO V
+    048: 4d 33 35 32 41                                     M352A
+
+Avec Color Office 2400 (no ADF, no transparency adapter)
+three pass scanner - 300*600 dpi - 8.5*14
+Inquiry:
+   000: 06 00 02 02 30 00 00 10 20 20 20 20 20 20 20 20    ....0...        
+   016: 49 6d 61 67 65 20 53 63 61 6e 6e 65 72 20 20 20    Image Scanner   
+   032: 32 2e 30 34 32 2e 30 34 02 00 54 45 43 4f 20 56    2.042.04..TECO V
+   048: 4d 33 35 32 30                                     M3520
+Inquiry page 0x82
+   000: 06 82 00 12 11 54 45 43 4f 20 56 4d 33 35 32 30    .....TECO VM3520
+   016: 20 56 32 2e 30 34                                   V2.04
+
+RELI 4830 (no ADF, with transparency adapter)
+   000: 06 00 02 02 30 00 00 10 52 45 4c 49 53 59 53 20    ....0...RELISYS 
+   016: 52 45 4c 49 20 34 38 33 30 20 20 20 20 20 20 20    RELI 4830       
+   032: 31 2e 30 33 31 2e 30 33 02 00 54 45 43 4f 20 56    1.031.03..TECO V
+   048: 4d 34 35 34 32                                     M4542
+Inquiry page 0x82
+   000: 06 82 00 12 11 54 45 43 4f 20 56 4d 34 35 34 32    .....TECO VM4542
+   016: 20 56 31 2e 30 33                                  V1.03
+
+Dextra DF-600P - VM3510
+   000: 06 00 02 02 24 00 00 10 44 46 2D 36 30 30 4D 20    ....$...DF-600M 
+   016: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                     
+   032: 31 2E 31 37 31 2E 31 37 02                         1.171.17.       
+
+
+/*--------------------------------------------------------------------------*/
+
+SCSI commands supported by the RELISYS VM3530+:
+
+TEST UNIT READY
+00 00 00 00 00 00
+
+REQ SENSE  
+03 00 00 00 12 00
+
+VENDOR-09
+09 00 00 78 00 00
+  3-4 = length of data to receive. Always 30720 bytes. 
+        Probably 12 lines of calibration at 300dpi. 
+        8.5*300*12=30600
+
+VENDOR-0E (?)
+0E 00 00 00 00 00
+  Always follows VENDOR-09 command
+
+INQUIRY:
+12 00 00 00 35 00
+12 01 82 00 21 00
+  standard inquiry
+    52 bytes - appears to never change
+    32-39: firmware version
+    42-52: real scanner name
+
+  page 0x82 (vendor specific) - real scanner name with version
+     0-3 = page header
+       4 = string length 
+    5-21 = real scanner name with version
+
+MODE SELECT
+15 10 00 00 18 00
+  always sends:
+    00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 01 
+	03 06 02 00 00 01 00 00 
+
+
+SCAN
+1B 00 00 00 00 00
+
+SET WINDOW
+24 00 00 00 00 00 00 00 63 00 
+Total length is 99
+  07 = length (99-8 = 91)
+  10-11 = X Resolution
+  12-13 = Y resolution
+  14-17 = X top left corner
+  18-21 = Y top left corner
+  22-25 = width  (size in inches * 300)
+  26-29 = length (size in inches * 300)
+  31 = 0x80 ?
+  33 = scan mode
+        0x00 = black & white
+        0x02 = grayscale
+		0x05 = color
+  34 = bit depth? - invariants, always 8
+  36 = dither pattern - only for B&W
+     0x00 = line art
+	 0x01 = 2 X 2
+	 0x02 = 3 X 3
+	 0x03 = 4 X 4 Bayer
+	 0x04 = 4 X 4 Smooth
+	 0x05 = 8 X 8 Bayer
+	 0x06 = 8 X 8 Smooth
+	 0x07 = 8 X 8 Horizontal
+	 0x08 = 8 X 8 Vertical
+  37 = 
+     0x80 = RIF (VM353A only?)
+  63 = calibration?
+        0x00 yes
+        0x02 no
+  81 = ??? transparency adapter
+        0x00 no
+        0x01 yes
+  93 =
+     0x80 = ? (seems to activate a contrast value on VM353A)
+
+  37, 55, 57, 59, 61, 65, 67, 69, 71, 73, 75, 77, 79 = 0x80 
+  85, 89, 93, 97 = 0xff
+  
+READ
+28 00 00 00 00 00 00 00 3E 00
+  6-8 = length
+
+SEND
+2A 00 03 00 00 02 00 04 00 00
+  2 = data type code
+       0x03 = gamma - 4*256 bytes
+
+GET DATA BUFFER STATUS
+34 01 00 00 00 00 00 00 12 00
+  1 = bit 1 is wait
+  7-8 allocation length
+
+  returned buffer is 0x10 bytes long.
+    0-2 = additional length (0x10-3 = 0x0D)
+      3 = reserved(?)
+      8 = ? 
+   9-11 = filled data buffer
+  12-13 = number of lines (constant during a scan)
+  14-15 = bytes per line (constant during a scan)  
+
+
+/*--------------------------------------------------------------------------*/
+
+Command sequence
+(simplified, since the TWAIN driver seems to be quite stupid)
+
+Get some info:
+  INQUIRY
+  INQUIRY page 0x82
+
+Setup the scan:
+  TUR
+  MODE SELECT
+  SET WINDOWS
+  GET BUFFER STATUS
+  VENDOR-09
+  VENDOR-0E
+  SEND(10)
+  SET WINDOWS (same as the first one)
+  SCAN
+
+loop until all data read:
+  GET BUFFER STATUS
+  READ(10) if any data available
+
+park the CCD:
+  SET WINDOWS
+  SCAN
+
+/*--------------------------------------------------------------------------*/
+
+The vendor specific command 0x09 and 0x0e are issued by the windows driver to the AVEC 2400, but the scanner rejects them.
+
+/*--------------------------------------------------------------------------*/
+
+The Dextra DF600-P is a VM3510. It's older than the other scanner and
+is a little more primitive. The driver recognizes its scsi id and fake
+a more evolved one. The scan sequence is also simplified. The rest is
+identical.
diff --git a/doc/teco/teco2.txt b/doc/teco/teco2.txt
new file mode 100644
index 0000000..5b64a83
--- /dev/null
+++ b/doc/teco/teco2.txt
@@ -0,0 +1,267 @@
+
+          BACKEND TECO2
+
+INQUIRY
+
+TECO VM3564 (1)
+000: 06 00 02 02 43 00 00 10 52 45 4c 49 53 59 53 20    ....C...RELISYS 
+016: 41 56 45 43 20 49 49 20 53 33 20 20 20 20 20 20    AVEC II S3      
+032: 31 2e 30 37 31 2e 30 37 00 01 54 45 43 4f 20 56    1.071.07..TECO V
+048: 4d 33 35 36 34 20 00 01 01 2c 00 01 02 58 09 f6    M3564 ...,...X..
+064: 0d af 01 2c 00 08 01 00                            ...,....
+
+TECO VM3564 (2)
+000: 06 00 02 02 43 00 00 10 52 45 4c 49 53 59 53 20    ....C...RELISYS 
+016: 41 56 45 43 20 49 49 20 53 33 20 20 20 20 20 20    AVEC II S3      
+032: 31 2e 30 39 31 2e 30 39 00 01 54 45 43 4f 20 56    1.091.09..TECO V
+048: 4d 33 35 36 34 20 00 01 01 2c 00 01 02 58 09 f6    M3564 ...,...X..
+064: 0d af 01 2c 00 08 01 00                            ...,....
+
+TECO VM356A (1)
+000: 06 00 02 02 43 00 00 00 52 45 4c 49 53 59 53 20    ....C...RELISYS
+016: 41 50 4f 4c 4c 4f 20 45 78 70 72 65 73 73 20 33    APOLLO Express 3
+032: 31 2e 30 33 31 2e 30 33 00 01 54 45 43 4f 20 56    1.031.03..TECO V
+048: 4d 33 35 36 41 20 00 01 01 2c 00 01 02 58 09 f6    M356A ...,...X..
+064: 0d af 01 2c 00 08 01 00                            ...,....
+
+TECO VM356A (2)
+000: 06 00 02 02 43 00 00 10 50 72 69 6d 61 78 20 20    ....C...Primax  
+016: 4a 65 77 65 6c 20 20 20 20 20 20 20 20 20 20 20    Jewel           
+032: 31 2e 30 31 31 2e 30 31 00 01 54 45 43 4f 20 56    1.011.01..TECO V
+048: 4d 33 35 36 41 20 00 01 01 2c 00 01 02 58 09 f6    M356A ...,...X..
+064: 0d af 01 2c 00 08 01 00                            ...,....
+
+TECO VM3575
+000: 06 00 02 02 43 00 00 00 20 20 20 20 20 20 20 20    ....C...        
+016: 46 6c 61 74 62 65 64 20 53 63 61 6e 6e 65 72 20    Flatbed Scanner 
+032: 31 2e 30 33 31 2e 30 33 00 01 54 45 43 4f 20 56    1.031.03..TECO V
+048: 4d 33 35 37 35 20 00 01 01 2c 00 01 02 58 09 f6    M3575 ...,...X..
+064: 0d af 01 2c 00 08 01 00                            ...,....
+
+TECO VM656A
+000: 06 00 02 02 43 00 00 00 52 45 4c 49 53 59 53 20    ....C...RELISYS 
+016: 41 50 4f 4c 4c 4f 20 45 78 70 72 65 73 73 20 36    APOLLO Express 6
+032: 31 2e 30 33 31 2e 30 33 00 01 54 45 43 4f 20 56    1.031.03..TECO V
+048: 4d 36 35 36 41 00 01 01 2c 00 01 02 58 09 f6 0d    M656A...,...X...
+064: af 01 2c 00 08 01 00 00                            ..,.....
+
+TECO VM6575
+000: 06 00 02 02 43 00 00 10 52 45 4c 49 53 59 53 20    ....C...RELISYS
+016: 53 43 4f 52 50 49 4f 20 50 72 6f 20 20 20 20 20    SCORPIO Pro
+032: 31 2e 30 31 31 2e 30 31 00 01 54 45 43 4f 20 56    1.011.01..TECO V
+048: 4d 36 35 37 35 20 00 01 01 2c 00 01 02 58 09 f6    M6575 ...,...X..
+064: 0d af 01 2c 00 08 01 00                            ...,....
+
+TECO VM6586
+000: 06 00 02 02 43 00 00 00 20 20 20 20 20 20 20 20    ....C...        
+016: 46 6c 61 74 62 65 64 20 53 63 61 6e 6e 65 72 20    Flatbed Scanner 
+032: 33 2e 30 31 33 2e 30 31 00 01 54 45 43 4f 20 56    3.013.01..TECO V
+048: 4d 36 35 38 36 20 00 01 01 2c 00 01 02 58 09 f6    M6586 ...,...X..
+064: 0d af 01 2c 00 08 01 00                            ...,....
+
+/*--------------------------------------------------------------------------*/
+
+
+
+SCSI Commands supported by the TECO VM3575:
+
+
+
+REQUEST SENSE
+03 00 00 00 12 00
+
+
+VENDOR-06
+???
+Receives 4 bytes of data
+
+
+VENDOR-9
+Get calibration lines - 12 lines
+  2 = ?
+     0x00 color scan
+     0x01 grayscal scan
+     0x02 b&w scan
+  Returns 6 bytes per pixel, probably 2 bytes per color in little endian order.    (2550 * 6 = 15300)
+
+VENDOR-0C
+??? Unsupported?
+
+
+VENDOR-0E
+Set calibration. Apparently the line is computed from the calibration lines. It is not an average though.
+
+
+INQUIRY
+12 00 00 00 48 00 
+  standard inquiry
+    72 bytes
+    32-39: firmware version
+    42-52: real scanner name
+	54-55: min X resolution
+    56-57: max X resolution
+    58-59: min Y resolution
+    60-61: max Y resolution
+    62-63: scan area length
+    64-65: scan area width
+    66-67: unit for scan area (eg 300th of inch)
+
+    eg if 62-63 = 2550 and 66-67 = 300, the length is 2550/300=8.5 inches.
+
+
+SCAN
+1B 00 00 00 00 00
+
+
+VENDOR-1C
+1c 00 00 00 00 00
+(Same opcode as RECEIVE DIAGNOSTIC RESULTS)
+  sends 4 bytes of data.
+
+
+SET WINDOW
+24 00 00 00 00 00 00 00 35 00 (VM3575)
+24 00 00 00 00 00 00 00 38 00 (VM6586)
+
+Total length is 
+  07 = length 
+       VM3575 53-8 = 45
+	   VM6586 56-8 = 48
+	   VM3552 69-8 = 61
+  10-11 = X Resolution
+  12-13 = Y resolution
+  14-17 = X top left corner
+  18-21 = Y top left corner
+  22-25 = width  (size in inches * 300)
+  26-29 = length (size in inches * 300)
+  31 = 0x80 ?
+  33 = scan mode
+        0x00 = black & white
+        0x02 = grayscale
+		0x05 = color
+  34 = bit depth? - invariant, always 8
+  36 = (vm6586 only ?) halftone pattern ?
+         1 = type 1 dithering
+  37 = 
+     0x80 = RIF?
+  48 = color channel to use
+     if scan mode is 0 or 2:
+       0x00 = red 
+       0x01 = green
+       0x02 = blue
+     if scan mode is 05 -> ignored
+       TWAIN leaves 0x02
+  50 = ?
+
+  VM6585 only:
+    52-53 = size of a line expected?
+    54-55 = number of lines expected?
+
+
+READ
+28 00 00 00 00 19 00 1f 0e 00
+  5 = number of lines to read
+  7-8 = buffer size. 
+       Always number of lines to read * size of a line.
+       0x2000 appears to be the upper limit
+  
+
+SEND
+2A 00 03 00 00 04 00 0C 00 00
+  2 = data type code
+       0x03 = gamma
+  4-5 = data type qualifier (?)
+  6-8 = length (0xc00 = 3276 = 3*2^10)
+  or:
+  5-6: length of each gamma
+  7-8: length of all gamma
+
+
+OBJECT POSITION
+31 00 00 00 00 00 00 00 00 00
+Park the CCD.
+
+
+GET DATA BUFFER STATUS
+34 01 00 00 00 00 00 00 12 00
+
+  1   = bit 1 is wait
+  7-8 = allocation length
+
+  returned buffer is 0x12 bytes long.
+  00 00 0f 00 00 00 00 14 00 00 00 80 1b 6c 09 f6 05 05
+    0-2 = additional length (0x12-3 = 0x0F)
+      7 = ? always 0x14
+     11 = bit 7 - (maybe) scanner is ready to send data
+  12-13 = number of lines (constant during a scan)
+  14-15 = bytes per line (constant during a scan)  
+  16-17 = garbage (the command only returns 0x10 bytes)
+
+
+/*--------------------------------------------------------------------------*/
+
+Scan sequence
+
+Get some info:
+  INQUIRY
+
+Setup the scan:
+  REQUEST SENSE
+  TUR
+  SET WINDOWS
+  GET BUFFER STATUS
+  VENDOR-0C
+  VENDOR-09 (read calibration)
+  VENDOR-0E (send new calibration)
+  REQUEST SENSE
+  SEND(10)
+  SET WINDOWS (same as the first one)
+  COMMAND 06
+  RECEIVE DIAGNOSTIC RESULTS
+  SCAN
+  GET BUFFER STATUS
+
+loop until all data read:
+  READ(10)
+
+park the CCD:
+  OBJECT POSITION
+
+/*--------------------------------------------------------------------------*/
+
+calibration
+
+TECO VM3575 reads 12 lines of calibration
+TECO VM656A reads 8 lines of calibration
+TECO VM6586 ??
+
+Algorithms used (text from Alex Wulms):
+The old algorithm was based on the assumption that the calibration value needs 
+to be an offset, to go from the value obtained during input to the average 
+value (0x800).
+
+E.g., if the input value is 0x800, the calibration value must be 0x800 (0x1000 
+- 0x800).
+Likewise, if the input value is 0x700, the calibration value must be 0x900 
+(0x1000 - 0x700)
+And if the input value is 0x600, the calibration value must be 0xA00
+
+The new algorithm is based on the assumption that the calibration needs to be 
+a multiplication factor, to compensate for the too strong or too weak pixel 
+in the sensor. Again, we want to obtain the average value (approximately 
+0x800) for every pixel read during calibration.
+
+E.g., if the input value is 0x800, the calibration value must be 0x800 
+(0x800*0x800 / 0x800).
+Likewise, if the input value is 0x700, the calibration value must be 0x924 
+(0x800*0x800 / 0x700).
+And if the input value is 0x600, the calibration value must 0xAAA (0x800*0x800 
+/ 0x600)
+
+Though, carefull comparison with scans done under windows has shown that the 
+factor is slightly different from 0x800*0x800(=0x400000) but in stead it 
+seems to be approximately 0x40302f (which would mean that the average value 
+is approximately 0x803 in stead of 0x800).
+
+Hope this is clarifies the new algorithm.
+
diff --git a/doc/teco/teco3.txt b/doc/teco/teco3.txt
new file mode 100644
index 0000000..bc6391f
--- /dev/null
+++ b/doc/teco/teco3.txt
@@ -0,0 +1,166 @@
+
+          BACKEND TECO3
+
+
+This scanner capabilities are in the middle of the 3520 and 3575,
+sharing features of both. Hence a third backend.
+
+
+PIOTECH 3024 (TECO Scorpio/Taurus Infinity VM3552):
+   000: 06 00 02 02 43 00 00 10 20 20 20 20 20 20 20 20    ....C...        
+   016: 46 6c 61 74 2d 62 65 64 20 73 63 61 6e 6e 65 72    Flat-bed scanner
+   032: 35 2e 30 38 35 2e 30 38 03 02 54 45 43 4f 20 56    5.085.08..TECO V
+   048: 4d 33 35 35 32 20 00 01 01 2c 00 01 04 b0 09 f6    M3552 ...,......
+   064: 10 68 01 2c 00 00 00 01                            .h.,....
+
+RELISYS INFINiTY SCORPIO:
+   000: 06 00 02 02 43 00 00 10 52 45 4c 49 53 59 53 20    ....C...RELISYS
+   016: 53 63 6f 72 70 69 6f 20 20 20 20 20 20 20 20 20    Scorpio
+   032: 31 2e 30 34 31 2e 30 34 03 02 54 45 43 4f 20 56    1.041.04..TECO V
+   048: 4d 33 35 35 32 20 00 01 01 2c 00 01 04 b0 09 f6    M3552 ...,......
+   064: 10 68 01 2c 00 00 00 00                            .h.,....
+
+Trust Imagery 2400SP:
+   000: 06 00 02 02 43 00 00 10 41 61 73 68 69 6d 61 20    ....C...Aashima
+   016: 49 4d 41 47 45 52 59 20 32 34 30 30 53 50 20 20    IMAGERY 2400SP
+   032: 31 2e 30 30 31 2e 30 30 03 02 54 45 43 4f 20 56    1.001.00..TECO V
+   048: 4d 33 35 35 32 20 00 01 01 2c 00 01 04 b0 09 f6    M3552 ...,......
+   064: 10 68 01 2c 00 00 00 01                            .h.,....
+
+Trust Imagery 4800 SP +:
+   000: 06 00 02 02 43 00 00 10 41 61 73 68 69 6d 61 20    ....C...Aashima
+   016: 49 4d 41 47 45 52 59 20 34 38 30 30 53 50 20 2b    IMAGERY 4800SP +
+   032: 35 2e 30 38 35 2e 30 38 03 02 54 45 43 4f 20 56    5.085.08..TECO V
+   048: 4d 33 35 35 32 20 00 01 01 2c 00 01 04 b0 09 f6    M3552 ...,......
+   064: 10 68 01 2c 00 00 00 00                            .h.,....
+
+/*--------------------------------------------------------------------------*/
+
+SCSI commands supported by the RELISYS VM3530+:
+
+TEST UNIT READY
+00 00 00 00 00 00
+
+REQ SENSE  
+03 00 00 00 12 00
+
+VENDOR-09
+09 00 00 78 00 00
+  3-4 = length of data to receive. Always 30720 bytes. 
+        Probably 12 lines of calibration at 300dpi. 
+        8.5*300*12=30600
+
+VENDOR-0E (?)
+0E 00 00 00 00 00
+  Always follows VENDOR-09 command
+
+INQUIRY:
+12 00 00 00 35 00
+  standard inquiry
+    52 bytes - appears to never change
+    32-39: firmware version
+    42-52: real scanner name
+
+SCAN
+1B 00 00 00 00 00
+
+SET WINDOW
+24 00 00 00 00 00 00 00 45 00 (3552)
+
+Total length is 99
+  07 = length (99-8 = 91)
+  10-11 = X Resolution
+  12-13 = Y resolution
+  14-17 = X top left corner
+  18-21 = Y top left corner
+  22-25 = width  (size in inches * 300)
+  26-29 = length (size in inches * 300)
+  31 = 0x80 ?
+  33 = scan mode
+        0x00 = black & white
+        0x02 = grayscale
+		0x05 = color
+  34 = bit depth? - invariants, always 8
+  36 = dither pattern - only for B&W
+     0x00 = line art
+	 0x01 = 2 X 2
+	 0x02 = 3 X 3
+	 0x03 = 4 X 4 Bayer
+	 0x04 = 4 X 4 Smooth
+	 0x05 = 8 X 8 Bayer
+	 0x06 = 8 X 8 Smooth
+	 0x07 = 8 X 8 Horizontal
+	 0x08 = 8 X 8 Vertical
+  37 = 
+     0x80 = RIF ?
+  48 = color channel to use
+     if scan mode is 0 or 2:
+       0x00 = red
+       0x01 = green
+       0x02 = blue
+     if scan mode is 05 -> ignored
+       TWAIN leaves 0x02
+  50: calibration
+      00 = yes
+      02 = no
+  53, 57, 61, 65: 0xff
+
+  
+READ
+28 00 00 00 00 00 00 00 3E 00
+  6-8 = length
+
+SEND
+2A 00 03 00 00 02 00 04 00 00
+  2 = data type code
+       0x03 = gamma - 4*256 bytes
+
+OBJECT POSITION
+31 00 00 00 00 00 00 00 00 00
+Park the CCD.
+
+GET DATA BUFFER STATUS
+34 01 00 00 00 00 00 00 12 00
+  1 = bit 1 is wait
+  7-8 allocation length
+
+  returned buffer is 0x10 bytes long.
+    0-2 = additional length (0x10-3 = 0x0D)
+      3 = reserved(?)
+    6-8 = scanner memory (with no RAM, it is 32KB on the VM3552)
+   9-11 = filled data buffer
+  12-13 = number of lines (constant during a scan)
+  14-15 = bytes per line (constant during a scan)  
+     16 = ?
+     17 = in color mode, 0x07 seems to means to the colors are shifted
+          and given by rasters. 0x00 seems to mean that there is no
+          color shifting and that each pixel is coded by 3 consecutive
+          bytes.
+
+/*--------------------------------------------------------------------------*/
+
+Command sequence
+(simplified, since the TWAIN driver seems to be quite stupid)
+
+Get some info:
+  INQUIRY
+
+Setup the scan:
+  TUR
+  SET WINDOWS
+  GET BUFFER STATUS
+  VENDOR-09
+  VENDOR-0E
+  SEND(10)
+  SET WINDOWS (same as the first one)
+  SCAN
+
+loop until all data read:
+  GET BUFFER STATUS
+  READ(10) if any data available
+
+park the CCD:
+  OBJECT POSITION
+
+/*--------------------------------------------------------------------------*/
+
-- 
cgit v1.2.3