Scanner overview - One pass scanner - 10 DPI minimum. Max X=600 dpi, max Y=1200 dpi. - A4 size /*--------------------------------------------------------------------------*/ Components: - Weltrend WT8616 - TEMIC TSC 80C31 (CMOS 0 to 44 MHz Single-Chip 8 Bit Microcontroller) /*--------------------------------------------------------------------------*/ SCSI overview - the SCSI implementation in this scanner is non-standard but simple. - there is no REQUEST SENSE command. - since there is no sense, it is impossible to know if a command has succeeded. /*--------------------------------------------------------------------------*/ SCSI commands: TEST UNIT READY 00 00 00 00 01 00 Returns 1 byte of data: 00 = scanner ready ff = scanner not ready Vendor Spec 02 00 00 00 04 00 Get 4 bytes of status. Used to check the button. Default result when the button is not pressed 06 00 00 00 INQUIRY result: 06 00 02 02 30 00 00 10 4b 49 4e 50 4f 20 20 20 ....0...KINPO 56 69 76 69 64 73 63 61 6e 20 53 31 32 30 20 20 Vividscan S120 53 31 33 20 20 20 20 20 02 01 00 00 4a 45 46 46 S13 ....JEFF ... MODE SEL 15 10 00 00 18 00 SCAN 1B 00 00 00 00 00 RECEIVE DIAG 1C 00 00 00 03 00 SEND DIAG 1D 00 80 00 00 00 SET WINDOW 24 00 00 00 00 00 00 00 52 00 The window size is always 0x52 bytes. The parameters look standard: - X/Y resolution | - Upper left X,Y |- all three coded in 600 dpi units - Width, Length | The supported scan modes are: - lineart image comp=0, halftone=0, depth=1 - halftone image comp=0, haltone=1 to 4, depth=1 - grayscale image comp=2, halftone=0, depth=8 - color image comp=5, halftone=0, depth=24 Y resolution is not used (X is also used for Y) X resolution is limited to 600 (if above, scanner defaults to 600) Y resolution is limited to 1200 (if above, scanner defaults to 1200) Image composition is byte 33, halftone is byte 36, depth is byte 34 READ (10) 28 00 00 00 00 00 00 FE 9A 00 SEND (10) 2A 00 03 00 00 02 00 03 00 00 Sends 300h bytes of gamma. 100h bytes per color. What is the color order? GET DATA BUFFER STATUS 34 01 00 00 00 00 00 00 10 00 Returns: - byte 0 to 7: ? (these bytes looks rather standard) - byte 8 to 11: total size left to read - byte 12 to 13: number of lines (constant during a scan) - byte 14 to 15: pixels per line (constant during a scan) /*--------------------------------------------------------------------------*/ Color shifts Color order returned by the scanner is Red, then Green, then Blue. There is a color shift, meaning the raster for the Red is not followed by the Green raster for the same line. The shifts are: dpi lines per color 1200 16 1125 15 1050 14 900 12 750 10 600 8 450 6 300 4 150 2 90 1 75 1 50 0 Some resolution give garbage. However that table might not be complete.