diff options
Diffstat (limited to 'doc/teco/teco2.txt')
-rw-r--r-- | doc/teco/teco2.txt | 65 |
1 files changed, 32 insertions, 33 deletions
diff --git a/doc/teco/teco2.txt b/doc/teco/teco2.txt index 5b64a83..b45b795 100644 --- a/doc/teco/teco2.txt +++ b/doc/teco/teco2.txt @@ -4,15 +4,15 @@ 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 +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 +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 ...,.... @@ -25,21 +25,21 @@ TECO VM356A (1) 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 +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 +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 +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... @@ -53,8 +53,8 @@ TECO VM6575 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 +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 ...,.... @@ -93,7 +93,7 @@ Set calibration. Apparently the line is computed from the calibration lines. It INQUIRY -12 00 00 00 48 00 +12 00 00 00 48 00 standard inquiry 72 bytes 32-39: firmware version @@ -123,8 +123,8 @@ 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 +Total length is + 07 = length VM3575 53-8 = 45 VM6586 56-8 = 48 VM3552 69-8 = 61 @@ -142,11 +142,11 @@ Total length is 34 = bit depth? - invariant, always 8 36 = (vm6586 only ?) halftone pattern ? 1 = type 1 dithering - 37 = + 37 = 0x80 = RIF? 48 = color channel to use if scan mode is 0 or 2: - 0x00 = red + 0x00 = red 0x01 = green 0x02 = blue if scan mode is 05 -> ignored @@ -161,10 +161,10 @@ Total length is READ 28 00 00 00 00 19 00 1f 0e 00 5 = number of lines to read - 7-8 = buffer size. + 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 @@ -194,7 +194,7 @@ GET DATA BUFFER STATUS 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) + 14-15 = bytes per line (constant during a scan) 16-17 = garbage (the command only returns 0x10 bytes) @@ -236,32 +236,31 @@ 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 +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 +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 +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 +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 +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 +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 +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 +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. - |