1141cc406Sopenharmony_ci
2141cc406Sopenharmony_ci          BACKEND TECO3
3141cc406Sopenharmony_ci
4141cc406Sopenharmony_ci
5141cc406Sopenharmony_ciThis scanner capabilities are in the middle of the 3520 and 3575,
6141cc406Sopenharmony_cisharing features of both. Hence a third backend.
7141cc406Sopenharmony_ci
8141cc406Sopenharmony_ci
9141cc406Sopenharmony_ciPIOTECH 3024 (TECO Scorpio/Taurus Infinity VM3552):
10141cc406Sopenharmony_ci   000: 06 00 02 02 43 00 00 10 20 20 20 20 20 20 20 20    ....C...
11141cc406Sopenharmony_ci   016: 46 6c 61 74 2d 62 65 64 20 73 63 61 6e 6e 65 72    Flat-bed scanner
12141cc406Sopenharmony_ci   032: 35 2e 30 38 35 2e 30 38 03 02 54 45 43 4f 20 56    5.085.08..TECO V
13141cc406Sopenharmony_ci   048: 4d 33 35 35 32 20 00 01 01 2c 00 01 04 b0 09 f6    M3552 ...,......
14141cc406Sopenharmony_ci   064: 10 68 01 2c 00 00 00 01                            .h.,....
15141cc406Sopenharmony_ci
16141cc406Sopenharmony_ciRELISYS INFINiTY SCORPIO:
17141cc406Sopenharmony_ci   000: 06 00 02 02 43 00 00 10 52 45 4c 49 53 59 53 20    ....C...RELISYS
18141cc406Sopenharmony_ci   016: 53 63 6f 72 70 69 6f 20 20 20 20 20 20 20 20 20    Scorpio
19141cc406Sopenharmony_ci   032: 31 2e 30 34 31 2e 30 34 03 02 54 45 43 4f 20 56    1.041.04..TECO V
20141cc406Sopenharmony_ci   048: 4d 33 35 35 32 20 00 01 01 2c 00 01 04 b0 09 f6    M3552 ...,......
21141cc406Sopenharmony_ci   064: 10 68 01 2c 00 00 00 00                            .h.,....
22141cc406Sopenharmony_ci
23141cc406Sopenharmony_ciTrust Imagery 2400SP:
24141cc406Sopenharmony_ci   000: 06 00 02 02 43 00 00 10 41 61 73 68 69 6d 61 20    ....C...Aashima
25141cc406Sopenharmony_ci   016: 49 4d 41 47 45 52 59 20 32 34 30 30 53 50 20 20    IMAGERY 2400SP
26141cc406Sopenharmony_ci   032: 31 2e 30 30 31 2e 30 30 03 02 54 45 43 4f 20 56    1.001.00..TECO V
27141cc406Sopenharmony_ci   048: 4d 33 35 35 32 20 00 01 01 2c 00 01 04 b0 09 f6    M3552 ...,......
28141cc406Sopenharmony_ci   064: 10 68 01 2c 00 00 00 01                            .h.,....
29141cc406Sopenharmony_ci
30141cc406Sopenharmony_ciTrust Imagery 4800 SP +:
31141cc406Sopenharmony_ci   000: 06 00 02 02 43 00 00 10 41 61 73 68 69 6d 61 20    ....C...Aashima
32141cc406Sopenharmony_ci   016: 49 4d 41 47 45 52 59 20 34 38 30 30 53 50 20 2b    IMAGERY 4800SP +
33141cc406Sopenharmony_ci   032: 35 2e 30 38 35 2e 30 38 03 02 54 45 43 4f 20 56    5.085.08..TECO V
34141cc406Sopenharmony_ci   048: 4d 33 35 35 32 20 00 01 01 2c 00 01 04 b0 09 f6    M3552 ...,......
35141cc406Sopenharmony_ci   064: 10 68 01 2c 00 00 00 00                            .h.,....
36141cc406Sopenharmony_ci
37141cc406Sopenharmony_ci/*--------------------------------------------------------------------------*/
38141cc406Sopenharmony_ci
39141cc406Sopenharmony_ciSCSI commands supported by the RELISYS VM3530+:
40141cc406Sopenharmony_ci
41141cc406Sopenharmony_ciTEST UNIT READY
42141cc406Sopenharmony_ci00 00 00 00 00 00
43141cc406Sopenharmony_ci
44141cc406Sopenharmony_ciREQ SENSE
45141cc406Sopenharmony_ci03 00 00 00 12 00
46141cc406Sopenharmony_ci
47141cc406Sopenharmony_ciVENDOR-09
48141cc406Sopenharmony_ci09 00 00 78 00 00
49141cc406Sopenharmony_ci  3-4 = length of data to receive. Always 30720 bytes.
50141cc406Sopenharmony_ci        Probably 12 lines of calibration at 300dpi.
51141cc406Sopenharmony_ci        8.5*300*12=30600
52141cc406Sopenharmony_ci
53141cc406Sopenharmony_ciVENDOR-0E (?)
54141cc406Sopenharmony_ci0E 00 00 00 00 00
55141cc406Sopenharmony_ci  Always follows VENDOR-09 command
56141cc406Sopenharmony_ci
57141cc406Sopenharmony_ciINQUIRY:
58141cc406Sopenharmony_ci12 00 00 00 35 00
59141cc406Sopenharmony_ci  standard inquiry
60141cc406Sopenharmony_ci    52 bytes - appears to never change
61141cc406Sopenharmony_ci    32-39: firmware version
62141cc406Sopenharmony_ci    42-52: real scanner name
63141cc406Sopenharmony_ci
64141cc406Sopenharmony_ciSCAN
65141cc406Sopenharmony_ci1B 00 00 00 00 00
66141cc406Sopenharmony_ci
67141cc406Sopenharmony_ciSET WINDOW
68141cc406Sopenharmony_ci24 00 00 00 00 00 00 00 45 00 (3552)
69141cc406Sopenharmony_ci
70141cc406Sopenharmony_ciTotal length is 99
71141cc406Sopenharmony_ci  07 = length (99-8 = 91)
72141cc406Sopenharmony_ci  10-11 = X Resolution
73141cc406Sopenharmony_ci  12-13 = Y resolution
74141cc406Sopenharmony_ci  14-17 = X top left corner
75141cc406Sopenharmony_ci  18-21 = Y top left corner
76141cc406Sopenharmony_ci  22-25 = width  (size in inches * 300)
77141cc406Sopenharmony_ci  26-29 = length (size in inches * 300)
78141cc406Sopenharmony_ci  31 = 0x80 ?
79141cc406Sopenharmony_ci  33 = scan mode
80141cc406Sopenharmony_ci        0x00 = black & white
81141cc406Sopenharmony_ci        0x02 = grayscale
82141cc406Sopenharmony_ci		0x05 = color
83141cc406Sopenharmony_ci  34 = bit depth? - invariants, always 8
84141cc406Sopenharmony_ci  36 = dither pattern - only for B&W
85141cc406Sopenharmony_ci     0x00 = line art
86141cc406Sopenharmony_ci	 0x01 = 2 X 2
87141cc406Sopenharmony_ci	 0x02 = 3 X 3
88141cc406Sopenharmony_ci	 0x03 = 4 X 4 Bayer
89141cc406Sopenharmony_ci	 0x04 = 4 X 4 Smooth
90141cc406Sopenharmony_ci	 0x05 = 8 X 8 Bayer
91141cc406Sopenharmony_ci	 0x06 = 8 X 8 Smooth
92141cc406Sopenharmony_ci	 0x07 = 8 X 8 Horizontal
93141cc406Sopenharmony_ci	 0x08 = 8 X 8 Vertical
94141cc406Sopenharmony_ci  37 =
95141cc406Sopenharmony_ci     0x80 = RIF ?
96141cc406Sopenharmony_ci  48 = color channel to use
97141cc406Sopenharmony_ci     if scan mode is 0 or 2:
98141cc406Sopenharmony_ci       0x00 = red
99141cc406Sopenharmony_ci       0x01 = green
100141cc406Sopenharmony_ci       0x02 = blue
101141cc406Sopenharmony_ci     if scan mode is 05 -> ignored
102141cc406Sopenharmony_ci       TWAIN leaves 0x02
103141cc406Sopenharmony_ci  50: calibration
104141cc406Sopenharmony_ci      00 = yes
105141cc406Sopenharmony_ci      02 = no
106141cc406Sopenharmony_ci  53, 57, 61, 65: 0xff
107141cc406Sopenharmony_ci
108141cc406Sopenharmony_ci
109141cc406Sopenharmony_ciREAD
110141cc406Sopenharmony_ci28 00 00 00 00 00 00 00 3E 00
111141cc406Sopenharmony_ci  6-8 = length
112141cc406Sopenharmony_ci
113141cc406Sopenharmony_ciSEND
114141cc406Sopenharmony_ci2A 00 03 00 00 02 00 04 00 00
115141cc406Sopenharmony_ci  2 = data type code
116141cc406Sopenharmony_ci       0x03 = gamma - 4*256 bytes
117141cc406Sopenharmony_ci
118141cc406Sopenharmony_ciOBJECT POSITION
119141cc406Sopenharmony_ci31 00 00 00 00 00 00 00 00 00
120141cc406Sopenharmony_ciPark the CCD.
121141cc406Sopenharmony_ci
122141cc406Sopenharmony_ciGET DATA BUFFER STATUS
123141cc406Sopenharmony_ci34 01 00 00 00 00 00 00 12 00
124141cc406Sopenharmony_ci  1 = bit 1 is wait
125141cc406Sopenharmony_ci  7-8 allocation length
126141cc406Sopenharmony_ci
127141cc406Sopenharmony_ci  returned buffer is 0x10 bytes long.
128141cc406Sopenharmony_ci    0-2 = additional length (0x10-3 = 0x0D)
129141cc406Sopenharmony_ci      3 = reserved(?)
130141cc406Sopenharmony_ci    6-8 = scanner memory (with no RAM, it is 32KB on the VM3552)
131141cc406Sopenharmony_ci   9-11 = filled data buffer
132141cc406Sopenharmony_ci  12-13 = number of lines (constant during a scan)
133141cc406Sopenharmony_ci  14-15 = bytes per line (constant during a scan)
134141cc406Sopenharmony_ci     16 = ?
135141cc406Sopenharmony_ci     17 = in color mode, 0x07 seems to means to the colors are shifted
136141cc406Sopenharmony_ci          and given by rasters. 0x00 seems to mean that there is no
137141cc406Sopenharmony_ci          color shifting and that each pixel is coded by 3 consecutive
138141cc406Sopenharmony_ci          bytes.
139141cc406Sopenharmony_ci
140141cc406Sopenharmony_ci/*--------------------------------------------------------------------------*/
141141cc406Sopenharmony_ci
142141cc406Sopenharmony_ciCommand sequence
143141cc406Sopenharmony_ci(simplified, since the TWAIN driver seems to be quite stupid)
144141cc406Sopenharmony_ci
145141cc406Sopenharmony_ciGet some info:
146141cc406Sopenharmony_ci  INQUIRY
147141cc406Sopenharmony_ci
148141cc406Sopenharmony_ciSetup the scan:
149141cc406Sopenharmony_ci  TUR
150141cc406Sopenharmony_ci  SET WINDOWS
151141cc406Sopenharmony_ci  GET BUFFER STATUS
152141cc406Sopenharmony_ci  VENDOR-09
153141cc406Sopenharmony_ci  VENDOR-0E
154141cc406Sopenharmony_ci  SEND(10)
155141cc406Sopenharmony_ci  SET WINDOWS (same as the first one)
156141cc406Sopenharmony_ci  SCAN
157141cc406Sopenharmony_ci
158141cc406Sopenharmony_ciloop until all data read:
159141cc406Sopenharmony_ci  GET BUFFER STATUS
160141cc406Sopenharmony_ci  READ(10) if any data available
161141cc406Sopenharmony_ci
162141cc406Sopenharmony_cipark the CCD:
163141cc406Sopenharmony_ci  OBJECT POSITION
164141cc406Sopenharmony_ci
165141cc406Sopenharmony_ci/*--------------------------------------------------------------------------*/
166