summaryrefslogtreecommitdiff
path: root/doc/teco/teco1.txt
blob: d555e9e57464927b3741b03913b40f10bbe34182 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
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.