README.epson, 16th April 1999, Clive Stubbings, www.vjet.demon.co.uk/scanner Its all a bit rambling.... but its my best guess so far as to what the epson FS200 commands do.. Though see the code too... Commands: (reponses) @ - reset (no params) A - set area (8 bytes of params) B - halftone - not for fs200 C - set mode (1 byte of params) [0,2,3,18,19] D - depth (1 byte of params) [1,2,3,4,5,6,7,8] G - scan (no params) H - zoom (2 bytes of params) [50-200] [50-200] (xzoom, yzoom) I - identify (returns stuff) K - orientation (1 byte of params) [0,1,2,3] (1=l/r swap,2=inverted, 3=both) L - brightness (1 byte of params) ?[0,1,2,3,253,254,255] M - colour (1 byte of params) [0,1,16,32,64,128] N - film type (1 byte of params) [0,1,2,3] P - Unknown (1 byte of params) [0-196] Q - sharpen (1 byte of params) (+2 -> -2) [0,1,2,254,255] R - resolution (4 bytes of params) [0-xres, 0-yres] T - Unknown (1 byte of params) [0] W - Unknown (returns data) Z - gamma (1 byte of params) [0,1,2,3,16,32] d - lcount (1 byte of params) [0-255] g - speed? (1 byte of params) [0,1] m - Unknown (1 byte of params) [0-255] z - Unknown (1 byte of params) [66,71,77,82,98,103,109,114][BGMRbgmr] _ - Unknown (returns data) W - returns 21,87,161,1 rather than ACK _ - returns 2,100,32,3 and seems to perform an image scan. Using 32/3 as a buffer size + reading data didn't seem to do much. However - using it as a scan command just crashed everything. M - colour N - filmtype - 0 pos film, 1 neg film, 2 pos slide, 3 neg slide P - all values tried cause scan start to fail... Q - Sharpness -2 to +2 H - zoom 50-200% T - seems to have no effect in colour neg-film or pos-slide g - 1 high speed (low quality preview scan) 0 - fine (normal) scan m - seems to have no effect in binary or colour modes z - seems to have no effect in colour or grey modes scan \033G cancel scan \030 continue scan \006 send: \033G start scan get: 6 bytes (STX,flags,linelen*2,nlines*2) get: buf_len bytes flags: colour (0x08), EOF(0x20), ??(0x40),, Error (oc80) if flag && EOF done else send \006 to continue, \030 to abort set mode: \033C mode(byte) * For the FS200 the only valid modes (8 bit depth) are: * 00000000 - 3 small monochrome images... * 00000010 - colour (need to NOT set lcount) * 00000011 - colour - red/green swapped? * 00010010 - colour - red/green swapped? (need to NOT set lcount) * 00010011 - colour identify \033I [I] Returns a buffer full of info 0: type \ used to identify device capabilities 1: level / R xxxx - DPI options (3 bytes each) xxxx = buf[n+1] + 256*buf[n+2] A xxxx yyyy - X and Y max range (in dots at max DPI) xxxx = buf[n+1] + 256*buf[n+2] in mm's = (xxxx * 25.4) / max_dpi