File primax.desc version 0.50 BACKEND PRIMAX-TECOx ------------------------------------------------------------------------- TECO VM3564 (type plate VM3564) 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 VM356A (type plate VM3564) 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 30 31 2e 30 30 00 01 54 45 43 4f 20 56 1.001.00..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 ...,.... 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 ...,.... 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 ...,.... /*--------------------------------------------------------------------------*/ BACKEND TECO2 from teco2 driver 29082002 INQUIRY 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 ...,.... 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 ...,.... /*--------------------------------------------------------------------------*/ TEST UNIT READY 00 0 0 0 0 0 00000000 0006 00 0 0 0 0 0 00000000 0000 jewel COMMAND 02 02 0 0 e 10 0 00000e10 0006 R REQUEST SENSE 03 0 0 0 13 0 00000013 0006 R f0 00 00 00 00 00 00 0b 00 00 jewel? 00 00 00 00 00 00 00 00 01 03 0 0 0 12 0 00000012 0000 R f0 00 00 00 00 00 00 0b 00 00 jewel 00 00 00 00 00 00 00 01 03 00 00 00 12 00 VM3575 VENDOR-06 VM3575 ??? Receives 4 bytes of data 06 00 00 0E D8 00 Jewel, buflen = 3800 VENDOR-9 VM3575 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) COMMAND 09 jewel, it seems instead of 12 or 16 bit data, for the jewel 8 bit data is used for calibration. 9 0 2 ef 10 0 9 0 0 ef 10 0 0000ef10 0000 R 00 59 57 5a 59 58 58 5a 57 59 57 5a 56 58 57 5b 57 58 59 58 57 58 5a 5c 57 59 5a 5d 5d 5a 5a 58 5c 5f 58 5d 5d 5d 59 5e 5d 5a 5b 5c 5c 5f 5d 5e 5a 5c 58 5a 5d 5c 5c 5f 5c 5e 5e 5d 5c 61 5d 5e 5b 5e 5f 5e 60 5e 5d 5f 5c 5f 62 60 5c 60 5e 60 60 5f 5e 5e 5e 61 5d 5a 63 61 62 62 5b 5f 5f 60 62 62 5f 63 61 5f 5f 63 5c 60 61 61 63 5f 61 61 61 62 60 62 63 64 62 61 61 62 60 66 5f 63 64 64 9 0 0 ef 10 0 0000ef10 0000 R 50 57 54 58 57 58 58 59 57 57 57 56 55 58 59 59 59 59 57 59 58 58 5d 59 57 58 59 5d 59 5a 5e 5a 5b 5b 58 5b 59 5b 58 5e 5d 5d 5e 5a 5c 5b 5b 5c 5a 5b 5b 5a 5c 5d 5a 5e 5d 5c 5a 5e 5e 5f 5c 5d 60 5f 60 5f 5c 5b 5d 60 5c 5f 5b 5e 5d 60 5d 60 5f 5f 5c 5d 61 62 60 5e 5e 5e 5f 61 5f 5f 60 5e 60 5f 60 65 62 5d 5d 61 5d 60 5f 5f 63 5e 60 64 5e 5f 61 61 61 61 61 61 61 5f 5f 64 5f 60 60 62 9 0 2 ef 10 0 0000ef10 0000 R 00 57 58 58 5b 59 58 57 5c 5a 5a 58 58 5c 59 5b 5b 59 5c 5b 5a 58 5b 5c 59 5a 5b 5f 5b 5a 5d 5b 5c 5d 59 5d 62 5e 5b 5d 5d 5d 5d 5d 5c 5d 59 5d 5e 5d 5a 5c 60 5f 5e 5d 5f 5d 61 5e 60 5e 5e 62 5f 5e 5e 60 5d 5d 5e 60 60 61 60 60 5e 60 62 5e 63 61 60 5f 61 5f 60 5e 64 61 60 61 5d 61 5d 61 66 62 61 63 64 60 63 64 62 62 62 62 65 61 62 66 62 61 66 5e 64 61 62 61 62 60 5e 65 61 61 61 62 9 0 2 ef 10 0 0000ef10 0000 R 53 58 57 5a 5c 58 59 5a 5c 57 58 58 59 59 5b 5b 5b 5b 5c 5b 56 5a 5c 5d 59 5b 59 5e 5b 5c 5d 5b 5b 5e 59 5b 5c 5c 5c 5f 5d 5f 5d 5e 5f 5d 5e 5d 5d 5f 59 5d 5f 5d 5b 5d 5c 5e 5f 5d 5f 5d 5c 5f 5d 5f 62 5e 60 61 5f 63 5d 5f 5e 5d 5f 61 5f 61 60 60 5e 5d 63 60 5e 5d 60 5f 60 61 5c 5f 61 61 65 62 5f 62 63 5e 5f 64 60 62 61 62 61 5f 62 61 60 63 63 62 63 63 65 61 63 5f 60 64 62 64 61 62 9 0 1 ef 10 0 0000ef10 0000 R 00 5a 5a 5c 5d 5b 5e 5b 5a 5c 5b 5b 5b 5c 5a 5e 5d 5e 5d 5a 5e 5e 5d 5c 5b 5c 5c 60 5e 5f 60 5c 60 60 5c 5f 5f 5f 5e 5d 5e 5e 5e 60 61 64 61 60 63 62 5e 63 62 61 5e 63 5f 60 5f 64 61 61 60 60 61 5f 63 64 61 61 61 63 62 63 61 62 63 64 61 62 66 61 63 64 65 66 61 5d 66 63 61 65 64 65 65 63 67 65 64 68 65 63 66 67 65 64 68 64 65 64 65 66 65 62 68 65 64 67 65 66 65 64 64 67 67 67 69 66 9 0 1 ef 10 0 0000ef10 0000 R 53 58 56 59 5e 58 58 5a 5b 5b 58 59 5b 5c 59 5c 5e 57 5b 5b 5b 58 5b 5d 5b 59 5b 60 5d 5c 5d 5b 5d 5e 58 5e 5f 5f 5a 5e 60 5d 5d 5f 5d 5f 60 5f 5c 5e 5c 5e 5f 5e 5d 62 5f 5d 60 5f 5f 5f 5e 5f 61 5d 5e 60 5e 5e 5d 62 5d 62 5d 61 62 61 5e 60 62 60 5f 60 62 64 60 5e 64 60 61 64 60 62 63 62 66 64 62 67 65 62 63 64 61 62 62 62 62 61 65 64 62 64 62 61 64 63 62 64 65 63 63 66 5f 64 64 61 9 0 0 ef 10 0 f0000004 0000 S f0 00 00 00 00 00 00 0b 00 00 00 00 00 01 9 0 1 ef 10 0 f0000004 0000 S f0 00 00 00 00 00 00 0b 00 00 00 00 00 01 9 0 1 ef 10 0 80000004 0000 9 0 2 ef 10 0 f0000004 0000 S f0 00 00 00 00 00 00 0b 00 00 00 00 00 01 VENDOR-0C VM3575 ??? Unsupported? COMMAND 0C jewel c 0 0 0 0 0 f0000004 0000 S f0 00 00 00 00 00 00 0b 00 00 00 00 00 01 c 0 1 0 0 0 f0000004 0000 S f0 00 00 00 00 00 00 0b 00 00 00 00 00 01 c 0 1 0 0 0 80000004 0000 c 0 2 0 0 0 f0000004 0000 S f0 00 00 00 00 00 00 0b 00 00 00 00 00 01 byte 2 00 = color 01 = gray 02 = b/w VENDOR-0E VM3575, Set calibration. Apparently the line is computed from the calibration lines. It is not an average though. COMMAND 0E jewel, it seems no calibration computing, the scanner auto-calibrates but needs commands to be issued? E 0 0 3b c4 0 e 0 2 3b c4 0 00003bc4 0000 W 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 e 0 1 3b c4 0 00003bc4 0000 W 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 e 1 0 9 f6 0 000009f6 0000 W 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 00 04 INQUIRY 12 0 0 0 24 0 00000024 0000 R 05 80 00 21 1f 00 00 00 45 2d 49 44 45 20 20 20 43 44 2d 39 35 32 45 2f 54 4b 55 20 20 20 20 20 46 35 30 20 12 0 0 0 24 0 00000024 0100 R 05 80 00 21 1f 00 00 00 45 2d 49 44 45 20 20 20 43 44 2d 39 35 32 45 2f 54 4b 55 20 20 20 20 20 46 35 30 20 12 0 0 0 48 0 80000082 0001 12 0 0 0 48 0 80000082 0007 12 0 0 0 48 0 f0000082 0007 S f0 00 00 00 00 00 00 0b 00 00 00 00 00 01 12 0 0 0 48 0 f0000082 0006 S f0 00 00 00 00 00 00 0b 00 00 00 00 00 01 12 0 0 0 48 0 f0000082 0005 S f0 00 00 00 00 00 00 0b 00 00 00 00 00 01 12 0 0 0 48 0 f0000082 0004 S f0 00 00 00 00 00 00 0b 00 00 00 00 00 01 12 0 0 0 48 0 f0000082 0003 S f0 00 00 00 00 00 00 0b 00 00 00 00 00 01 12 0 0 0 48 0 f0000082 0002 S f0 00 00 00 00 00 00 0b 00 00 00 00 00 01 12 0 0 0 48 0 f0000082 0001 S f0 00 00 00 00 00 00 0b 00 00 00 00 00 01 12 0 0 0 48 0 00000048 0006 R 06 00 02 02 43 00 00 10 50 72 69 6d 61 78 20 20 4a 65 77 65 6c 20 20 20 20 20 20 20 20 20 20 20 31 2e 30 30 31 2e 30 30 00 01 54 45 43 4f 20 56 4d 33 35 36 41 20 00 01 01 2c 00 01 02 58 09 f6 0d af 01 2c 00 08 01 00 standard inquiry 72 bytes for this scanner 32-39: firmware version 1.001.00 42-52: real scanner name TECO VM356A 54-55: min X resolution 0001-->0001 56-57: max X resolution 012C-->0300 58-59: min Y resolution 0001-->0001 60-61: max Y resolution 0258-->0600 62-63: scan area length 09F6-->2550--> 8.5 inch 64-65: scan area width 0daf-->3503--> 11.67 inch -->11.7 inch 66-67: unit for scan area (eg 300th of inch) 012C-->0300 eg if 62-63 = 2550 and 66-67 = 300, the length is 2550/300=8.5 inches. 12 0 0 0 48 0 80000082 0007 SCAN VM3575 1B 00 00 00 00 00 VENDOR-1C VM3575, not for jewel 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) 24 00 00 00 00 00 00 00 45 00 (VM356A) Total length is 07 = length VM3575 53-8 = 45 VM6586 56-8 = 48 VM356A 69-8 = 61 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 0 0 0 0 10 0 0 1 0 00000800 0100 R 01 43 44 30 30 31 01 00 41 50 50 4c 45 20 43 4f 4d 50 55 54 45 52 2c 20 49 4e 43 2e 2c 20 54 59 50 45 3a 20 30 30 30 32 56 5a 4d 53 31 30 38 34 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 00 00 00 00 00 00 00 00 75 3f 02 00 00 02 3f 75 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 01 00 00 01 01 00 00 01 READ VM3575 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 VM3575 2A 00 03 00 00 04 00 0C 00 00 not for jewel 2a 0 3 0 0 4 0 c 0 0 f0000004 0000 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 VM3575, jewel 31 00 00 00 00 00 00 00 00 00 Park the CCD. GET DATA BUFFER STATUS VM3575 34 01 00 00 00 00 00 00 12 00 for jewel ? seems ok 34 1 0 0 0 0 0 0 12 0 00000012 0000 R 00 00 0f 00 00 00 00 14 00 00 00 00 04 ad 04 b6 00 01 34 1 0 0 0 0 0 0 12 0 00000012 0000 R 00 00 0f 00 00 00 00 14 00 00 00 00 04 ad 00 96 00 01 34 1 0 0 0 0 0 0 12 0 00000012 0000 R 00 00 0f 00 00 00 00 14 00 00 00 00 00 8e 01 6c 00 01 34 1 0 0 0 0 0 0 12 0 00000012 0000 R 00 00 0f 00 00 00 00 14 00 00 00 00 02 0a 03 fc 00 01 34 1 0 0 0 0 0 0 12 0 00000012 0000 R 00 00 0f 00 00 00 00 14 00 00 00 00 01 68 01 23 00 01 34 1 0 0 0 0 0 0 12 0 00000012 0000 R 00 00 0f 00 00 00 00 14 00 00 00 00 02 0a 03 f0 00 01 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 (wait_for_data return in logfile) 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) for jewel 04 ad? 14-15 = bytes per line (constant during a scan) for jewel 04 b6? 16-17 = garbage (the command only returns 0x10 bytes) 00 01 COMMAND 43 43 2 0 0 0 0 1 3 24 0 00000324 0100 R 00 12 01 01 00 14 01 00 00 00 02 00 00 14 aa 00 00 20 34 13 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 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 MODE SENSE 5a 0 2a 0 0 0 0 0 10 0 00000010 0000 R 00 0e 70 00 00 00 00 00 2a 12 07 00 71 73 29 03 5a 0 e 0 0 0 0 0 18 0 00000018 0100 R 00 16 70 00 00 00 00 00 0e 0e 04 00 00 00 00 4b 01 ff 02 ff 00 00 00 00 /*--------------------------------------------------------------------------*/ Scan sequence Get some info: INQUIRY Setup the scan: REQUEST SENSE TUR COMMAND 06 (for jewel without 1C command) SET WINDOWS GET BUFFER STATUS COMMAND 06 (sometimes for jewel without 1C command) VENDOR-0C VENDOR-09 (read calibration) VENDOR-0E (send new calibration) REQUEST SENSE SEND(10) SET WINDOWS (same as the first one) COMMAND 06 (not for jewel) RECEIVE DIAGNOSTIC RESULTS SCAN GET BUFFER STATUS loop until all data read: GET BUFFER STATUS (needed for jewel) READ(10) park the CCD: OBJECT POSITION /*--------------------------------------------------------------------------*/ calibration TECO VM356A reads 8 bit instead 12/16 bits voor calibration data TECO VM3575 reads 12 lines of calibration TECO VM656A reads 8 lines of calibration TECO VM6586 ?? /*--------------------------------------------------------------------------*/