$B

==============================================================================
Scanner-logiscan

  LOGITECH SCANMAN+ 400 dpi handheld scanner driver  version 0.0.4

  $B$3$N%I%-%e%a%s%H$O!"(B LOGITECH SCANMAN+ 400 dpi $B%O%s%I%X%k%I%9%-%c%JMQ%I%i(B
  $B%$%P(B  Version 0.0.4 $B$KIUB0$N%I%-%e%a%s%H$r:n!'(B README
          $B%U%!%$%k$NF|IU!'(B Feb 14  1995
          $B:n!'(B README.ioctl
          $B%U%!%$%k$NF|IU!'(B Dec 24  1994
          $B:ne5-$O(B logiscan-x.x.tar.gz $B$,!"(B~/ $B%G%#%l%/%H%j$K$"$k>l9g$G$9$,!"$=$l0J30$N(B
     $B;~$O$=$N%G%#%l%/%H%j$K9g$o$;$FJQ$($F2<$5$$(B)
    /usr/src/logiscan-x.x/ $B%G%#%l%/%H%j$,:n$i$l!"$=$3$K%U%!%$%k$,E83+$5$l$^$9!#(B
    logiscan-0.0.4.tar.gz $B$K$O2<5-$N$h$&$J%I%-%e%a%s%H%U%!%$%k$,F~$C$F$$$^$9!#(B
    (1) README 
    (2) README.ioctl (logi32.o $B$K$h$C$FDs6!$5$l$k(B ioctl $B%$%s%?%U%'!<%9$r;H$&(B
                      $B%"%W%j%1!<%7%g%s3+H/e5-$N$&$A(B (1) (2) (6) $B$rLu$7$?(B
    $B$b$N$G$9!#(B (3) (4) (5) $B$O86J8$r$4Mw2<$5$$!#(B

  $B!ZLuCm(B2$B![(B---------------- $B:G?7HG$H%a!<%k%"%I%l%9(B ---------------------------

    $B:G?7HG$O!"(Blogiscan0.0.5 $B$G2<5-$+$i%@%&%s%m!<%I$G$-$^$9!#(B
        http://sunserver1.rz.uni-duesseldorf.de/~becka

    $B:nr7o$K=>$C$F:FG[I[$7$?$jJQ(B
    $B99$9$k$3$H$,$G$-$^$9!#(B

    $B$3$N%W%m%0%i%`$O!"Lr$KN)$D$3$H$r4|BT$7$FG[I[$7$F$$$^$9!#$7$+$7!"$$$+$J$k(B
    $BJ]>Z$b$"$j$^$;$s!#>&IJ@-$dFCDjMQES$X$NE,9g@-$K$D$$$F$N0EL[$NJ]>Z$9$i$"$j(B
    $B$^$;$s!#>\$7$/$O!"(BGNU $B$N(B General Public License $B$r$4Mw2<$5$$!#(B 

    $B$"$J$?$O!"$3$N%W%m%0%i%`$H0l=o$K(B GNU General Public License $B$N%3%T!<$r/$J$/$H$b$=$l$i$N$$$/$D$+$r%5%]!<%H$7$^$9!#(B

1. $B8E$$(B Logitech Scanman : 200dpi $B8GDj$NGr9u%9%-%c%J(B
   ($B$I$J$?$+$3$l$r$*;}$A$G$9$+!)(B $B$3$l$O%G%#%6=hM}$,$G$-$^$9$+!)(B
    $B:#$N$H$3$m$3$l$O2rA|EY8GDj$G(B Scanman32 $B$H$7$F07$o$l$^$9(B)

2. $B>/$7?7$7$$(B Logitech Scanman32 (aka Scanman+) :
   $BGr9u$N(B 100$B!A(B400 dpi $B$N%9%-%c%J$G!"(B 6x6 $B%G%#%6=hM}(B($B2rA|EY$r(B 1/6 $B$K2<$2$F(B
   37$B?'$K$9$k(B)$B$,2DG=!#(B 

3. Logitech Scanman256 :
   100$B!A(B400 dpi $B$N(B $B%0%l%$%9%1!<%k!&%9%-%c%J$G!"%G%#%6=hM}L5$7$G(B 
   1bit($BGr9u#2CM(B), 4bit(16$B3,D4(B), 6bit(64$B3,D4(B), 8bit(256$B3,D4(B)$B$N2rA|EY$,(B
   $B$"$j$^$9!#(B
   $B$3$N%?%$%W$N%9%-%c%J$K$OCm0U$7$F2<$5$$004{$K=R$Y$?$h$&$K$3$l$K$O$$$/$D$+(B
   $B$N%P!<%8%g%s$,$"$j$^$9(B($B0[$J$C$?%O!<%I%&%'%"$r;HMQ$7$F$$$^$9(B)$B!#(B
   $B$"$k?M$,;d$K$3$N(B Rev-03 $B%\!<%I$N07$$J}$r65$($F$/$l$?$N$G!"$3$NLdBj$O(B
   $B8=:_$G$O%U%#%C%/%9$5$l$F$$$k$H;W$&$N$G$9$,!"$b$7$+$7$FB>$N$b$N$,$"$C$?(B
   $B$H$7$?$i(B...
   $B=>$C$F%I%i%$%P$,(B "incompatible scanner-interface" $B$HJs9p$7$F$-$?$i(B
   $B$=$l$OJL$N8_49@-$NL5$$%\!<%I$G$"$k$+!"$"$k$$$O%Y!<%9(B I$B!?(BO $B%"%I%l%9$N@_Dj(B
   $B$,4V0c$C$F$$$^$9!#$3$N$h$&$J;~$O!"$"$J$?$N%9%-%c%J!&%=%U%H%&%'%"!&%G%#%9(B
   $B%/$KF~$C$F$$$k(B HHSCAND.SYS $B$r;d$KAw$C$F2<$5$$!#(B

  $B%I%i%$%P$O(B insmod $B$r;H$C$F%m!<%I$9$k;~$K%9%-%c%J$N%?%$%W$r<+F08!=P$7$^$9!#(B

  $B%I%i%$%P$,(B "Unknown" $B$H%l%]!<%H$9$k$,%9%-%c%J$OF0:n$9$k$H$$$&>l9g(B ($B$3$l$O(B
  code-tweaking $B$,I,MW$G$9$,(B...)$B!"$"$J$?$N%O!<%I%&%'%"$r$I$N$h$&$K$7$F8!=P(B
  $B$9$k$+$r8+$D$1$k$h$&;n$7$F!"$I$N$h$&$JJQ99$,I,MW$+$r;d$K65$($F2<$5$$!#(B
  $B;d$O!"$"$J$?$N%Q%C%A$r:#8e$N%j%j!<%9$KF~$l$k$h$&$K$7$^$9!#(B 
  $BA4$F$rJQ99$9$k$h$&$J%Q%C%A$r;d$KAw$i$J$$$G2<$5$$!#B($A!";d$O8=:_$N$b$N$+$i(B
  $BK\Ev$K0[$J$k$b$N$r07$&$h$&$J%9%-%c%J$O%5%]!<%H$7$^$;$s!#(B

  $B$3$N%I%i%$%P$O%9%-%c%J$KIUB0$N(B MS-LOSS $BMQ%9%-%c%J%I%i%$%P$r5U%"%;%s%V%k(B
  $B$7$F=8$a$?>pJs$r85$K$7$F$$$^$9!#$3$l0J30$NDI2C>pJs!"MWK>!"Ds0F!"%P%0Js9p(B
  $B$,$"$l$P!"1sN8L5$/;d$K8@$C$F2<$5$$!#(B($B2<5-$N%P%0Js9p$r$4Mw2<$5$$(B)
  $B;d$OFC$K!"B>$N%9%-%c%J!&%G%P%$%9%I%i%$%P$r=q$/?M$+$i$N%U%#!<%I%P%C%/$r(B
  $BF@$k$3$H$K6=L#$,$"$j$^$9!#(B
  $B!ZLuCm![(B MS-LOSS $B$H$$$&$N$O!"%?%$%W%_%9$G$O$J$$$H;W$$$^$9!#(B(^_^)

  $B;d$?$A$O(B Linux $B$NA4$F$N%9%-%c%J%I%i%$%P$K;H$o$l$k%$%s%?%U%'!<%9$r0l$D$K(B
  $B$^$H$a$k$3$H$,$G$-$k$+$b$7$l$^$;$s!#$=$&$J$l$PB?$/$N?MC#$,=q$/$G$"$m$&!"(B
  $B%+%i%U%k$J(B X $B%Y!<%9$N%9%-%c%J%W%m%0%i%`$,!"B?$/$N%9%-%c%J$G%5%]!<%H$5$l(B
  $BF0:n$9$k$h$&$K$J$k$G$7$g$&!#(B

  $B;d$O4{$K(B M105 $B$H(B A4-tech $B%I%i%$%P$N:nH(B)$B$KAw$C$F2<$5$$!#(B

  $B$^$?!"$"$J$?$,AGE($J%9%-%c%J%W%m%0%i%`$r=q$$$?$i;d$KAw$C$F2<$5$$!#(B


$B%$%s%9%H!<%k$NJ}K!(B
------------------------------------------------------------------------------

        1) $B%I%i%$%P$O!"%+!<%M%k!&%m!<%@%V%k!&%b%8%e!<%k$J$N$G!"L@$i$+$K:G=i$K(B
           $B$9$k$Y$-$3$H$O(B `modutils' $B%Q%C%1!<%8$r;}$C$F$$$J$$>l9g$O$3$l$rF~$N%O!<%I%&%'%"$K$h$C$F;H$o$l$F$$$J$$$b$N$r;H$C$F2<$5(B
           $B$$!#(B(SoundBlaster $B$,%$%s%9%H!<%k$5$l$F$$$k$J$i(B DMA 1 $B$O;H$o$l$F$$$k(B
           $B$H;W$$$^$9(B)
           $B@_Dj$G$-$k$b$N$O(B IRQ $B$,(B 2(9),3,4,5,7,9(2),11,12 $B$G!"(BDMA $B$,(B 1 $B$^$?$O(B
           3 $B$G$9!#:G?7$N%+!<%M%k(B($B%9%?%C%/%I%b%8%e!<%k$r%5%]!<%H$7$F$$$k(B)$B$H!"(B
           $BBP1~$7$?(B modutils $B$G$O!"%b%8%e!<%k$N%m!<%I;~$K$3$l$i$NCM(B($B$H!"%a%8(B
           $B%c!<%G%P%$%9HV9f!#(B4)$B9`;2>H(B )$B$rJQ99$9$k$3$H$,$G$-$^$9!#(B
           $B$3$l$r$I$N$h$&$K$9$k$N$+$O!"(B"man insmod" $B$GD4$Y$F2<$5$$!#(B
           $B4X78$N$"$kJQ?t$O(B logi32.c $B$N@hF,!"$^$?$O%I%i%$%P$r>oCs$5$;$?;~$K(B
           ksyms $B$N=PNO$NCf$G8+$D$+$j$^$9!#(B

        3) scanner.h $B$r$I$3$+E,Ev$J>l=j(B(usr/local/include $B$,$*4+$a(B)$B$K0\$7$F(B
           $B2<$5$$!#(Bscanner.h $B$O(B $B$"$J$?$N%7%9%F%`>e$G(B "$B$?$@0l$D$N%P!<%8%g%s(B"
           $B$GDs6!$5$l$F$$$k$N$@$H$$$&$3$H$r$h$/3P$($F$*$$$F2<$5$$!#(B
           $B;d$O!"%I%i%$%P$,%9%-%c%J%=%U%H%&%'%"$G$O$J$$B>$N(B scanner.h $B$H%3%s(B
           $B%Q%$%k$5$l$?;~$N%H%i%V%k$rBt;3J9$$$F$$$^$9!#(B

           PINT (UNIX $BMQ$N6&DL%9%-%c%J%$%s%?%U%'!<%9!#(BCopyright (C) 1994
           Kenneth Stailey [email protected])$B$N%5%]!<%H2<$G%3%s%Q%$%k$7$?$$$J$i(B
           Makefile $B$G(B -D $B$KAjEv$9$k$3$H$r%$%M!<%V%k$K$7!"(B<scanio.h> $B%U%!%$%k(B
           $B$rB>$NE,@Z$J>l=j$K0\$7$F2<$5$$!#(B($B$3$l$OB>$N%7%9%F%`>e$N(B
           /usr/[local]/include/sys $B$K$"$k$h$&$K8+$($k$H$$$&E@$KCm0U$7$F2<$5(B
           $B$$!#$@$+$i!"$=$l$r$=$3$KCV$/$H$$$&$N$ONI$$9M$($G$9(B)

           $B%I%i%$%P$r%3%s%Q%$%k$9$k$K$O!"(B
           make
           $B$HF~NO$7$F2<$5$$!#(B
           $B%b%8%e!<%k$rAH$_9~$`$K$O!"(B
           insmod logi32.o
           $B$HF~NO$7$F2<$5$$!#(B

           $B%7%s%\%k$,L5$$$H%m!<%@$,J86g$r8@$C$F$-$?;~$O!"$=$l$i$r(B
           kernel/ksyms.c $B$K2C$($F2<$5$$!#(B
           ($B$^$?$O!"$b$C$HNI$$$N$O!"$=$N%I%i%$%P$K$H$C$F$OK\Ev$K8E$/$5$$(B
            $B%+!<%M%k$r%"%C%W%G!<%H$9$k$3$H$G$9(B...)

           kernel/ksyms.c $B$rJQ99$9$k$Y$-$@$C$?$J$i!"%+!<%M%k$r:F%3%s%Q%$%k(B
           $B$7!"$=$NJQ99$rH?1G$5$;$k$?$a$K%j%V!<%H$9$kI,MW$,$"$j$^$9!#(B

        4) $B%G%P%$%9$N%9%Z%7%c%k%U%!%$%k$r:n@.$7$^$9!#(B
               mknod -m 444 /dev/logiscan c 26 0

           /dev/scan $B$K%7%s%\%k%j%s%/$rD%$j$^$9!#(B
               ln -s /dev/logiscan /dev/scan

           MAKEDEV $B$N:G?7%P!<%8%g%s$O!"E,@Z$J%G%P%$%9$r@8@.$9$k$3$H$b$G$-$k(B
           $B$O$:$G$9!#!V(BMAKEDEV $B$r;H$&A0$K!W(B logi32.o $B$,%m!<%I$5$l$F$$$J$1$l$P(B
           $B$J$i$J$$$3$H$KCm0U$7$F2<$5$$!#(B MAKEDEV $B$O!"(Blogitech $B%9%-%c%J%I%i%$(B
           $B%P$r8!=P$7!"$=$3$KB8:_$9$k%a%8%c!<%G%P%$%9$r8+$D$1$k$?$a$K(B /proc/
           devices $B$N>pJs$r;H$&$+$i$G$9!#(B
           $B$5$i$K>\$7$$$3$H$O!"4X78$9$k%I%-%e%a%s%H$r$4Mw2<$5$$!#(B

           ($BCm(B)  $B>e5-$N(B `26' $B$O%a%8%c!<%G%P%$%9HV9f$G$9!#(B
                 $B$=$l$,4{$K;H$o$l$F$$$k>l9g(B($B$=$l$r%m!<%I$7$h$&$H$9$k:]!"%I(B
                 $B%i%$%P$O!V(Bcannot register major number$B!'%a%8%c!$N;H$o$l$F$$$J$$HV9f$rA*$S(B
                 `logi32.h' $B$N(B LOGI32_SCANNER_MAJOR $B$NDj5A$r$=$l$KJQ99$7$F(B
                 $B2<$5$$!#(B

                 $B?7$7$$%+!<%M%k$G$O!"%a%8%c!<$rF0E*$K3d$jIU$1$k$3$H$,$G$-$^$9!#(B
                 $B$3$N$h$&$K$7$?$$;~$O!"Dj5A$r(B 0 $B$K!V%;%C%H$7$F2<$5$$!#(B
                 $BC"$7!"$3$&$9$k$H!"%I%i%$%P$r%m!<%I$9$kEY$K%a%8%c!<$,JQ$o$k$N(B
                 $B$G!"Kh2s%G%P%$%9$N%9%Z%7%c%k%U%!%$%k$r:n@.$9$kI,MW$,$"$k$H$$(B
                 $B$&$3$H$KCm0U$7$F2<$5$$!#(B

        5) `logi32.o' $B$r%+!<%M%k%b%8%e!<%k$r%-!<%W$9$k$?$a$N$I$3$+$K%3%T!<$7$F(B
           $B2<$5$$!#(B

        6) $BF0:n3NG'(B
                (s)vgalib $B$,F0:n$7$F$$$k$J$i!"(B ./demo $B%G%#%l%/%H%j$N(B gifscan
                $B$r%S%k%I$7$F2<$5$$!#(Bsvgalib $B$,L5$$$J$i!"$3$N%Q%C%1!<%8$KF~$C(B
                $B$F$$$k%9%/%j%W%H(B scan.sh $B$OITMW$G$9!#(B
                $B$@$l$+!"$"$J$?$N$?$a$K>.$5$J%9%-%c%s%W%m%0%i%`$r:n$C$F$/$l$k(B
                $B$$$$?M$r8+$D$1$k$^$G$O!"(Bcat </dev/scan > $B%U%!%$%k$N$h$&$J$d$j(B
                $BJ}$GK~B-$9$kB>$"$j$^$;$s!#(B($B$^$?$O!"(BGIF $B%U%!%$%k$K(B "blind-scan"
                $B$G$-$k$h$&$K$9$k$?$a$K(B gifscan $B$+$iA4$F$N(B vga $B$K4X$9$k$b$N$r(B
                $B@\%9%-%c%s$7$?$b$N$r3JG<$9$k(B pbmscan $B$H$$$&?7(B
                $B$7$$%Q%C%1!<%8$,$"$j$^$9!#$3$l$O(B svgalib $B$,ITMW$G!"(BGIF $B$K=q$-(B
                $B9~$`$h$j$+$J$j9bB.$G$9!#(B
                $B;d$O(B PINT $B%$%s%?%U%'!<%9MQ$K2?$,$"$k$+CN$j$^$;$s!#$3$l$r;H$C$?(B
                $BNI$$%"%W%j%1!<%7%g%s$r65$($F2<$5$$!#(B
                ($B2DG=$J$i(B)$B;d$N%I%i%$%P$GF0$/$J$i(B 


$B%m!<%I;~$N%Q%i%a!<%?$NJQ99J}K!(B
------------------------------------------------------------------------------

  $B?7$7$$(B modutils ($B$H(B $B%9%?%C%/%I%b%8%e!<%k%5%]!<%H(B)$B$G!"%m!<%I;~$K2<5-$N%Q%i%a(B
  $B!<%?$NCM$rM?$($k$3$H$,$G$-$^$9!#=>$C$F@_Dj$rJQ$($?$$>l9g$G$b!"%I%i%$%P$r:F(B
  $B%3%s%Q%$%k$9$kI,MW$O$"$j$^$;$s!#(B

  "insmod logi32.o LOGI_FOOBAR=%d" $B$G%I%i%$%P$r%m!<%I$7$^$9!#(B%d $B$,%Q%i%a!<%?(B
  $B$r@_Dj$9$k$?$a$NCM$G$9!#$3$N5!G=$K4X$9$k$h$j>\$7$$$3$H$O(B insmod $B$N%I%-%e%a(B
  $B%s%H$r$4Mw2<$5$$!#(B

  $B;HMQ$G$-$k%Q%i%a!<%?$O0J2<$N$H$*$j$G$9!#(B

  LOGI_DEBUG    $B$3$l$r(B 0 $B0J30$NCM$K$7$F!"%G%P%C%0%b!<%I$G%3%s%Q%$%k$9$k$H!"(B
                $B%I%i%$%P$O%G%P%C%0>pJs$r=PNO$7$^$9!#$=$&$G$J$$$H$-$O$3$NJQ?t$O(B
                $B8=$l$^$;$s!#(B

  LOGI_MAJOR    $B%a%8%c!Aw$H(BIRQ$B$r;HMQ$7$^$9!#$$$:$l$N%A%c(B
  $B%M%k$b%=%U%H%&%'%"$G@_Dj$G$-$^$9!#(B($B>\$7$/$O(B logi32.h $B$r$4Mw2<$5$$(B)
  $B%9%-%c%J$O#1%i%$%s%9%-%c%s$9$kEY$K3d$j9~$_MW5a$rH/9T$9$k$N$G!"M-8z$J%G!<%?$r(B
  $BF@$k$?$a$K(B busy-wait $B=hM}$r$9$kI,MW$O$"$j$^$;$s!#(B

  $B%I%i%$%P$OFbIt$K(B($B%@%$%J%_%C%/%"%m%1!<%H$N(B)$B%P%C%U%!$r%-!<%W$7$^$9!#$3$N%P%C%U(B
  $B%!$N%G%U%)%k%H$N%5%$%:$O!"(B50 $B%9%-%c%s%i%$%sJ,(B (logi32.h $B$r;2>H(B)$B$G$9$,(B ioctl
  $B%3!<%k$rDL$7$FD4@02DG=$G$9!#(B($B2<5-;2>H(B) /dev/scan $B$r;H$C$F$$$k%W%m%;%9$,8=:_(B
  $BAw$O%P%C%U%!$,%U%k$K$J$k$^$G(B
  $BM-8z$G$"$k$3$H$KCm0U$7$F2<$5$$!#$3$l$O!"%W%m%;%9$,Dd;_$7$?$j%9%o%C%W%"%&%H$7(B
  $B$F$b!"%P%C%U%!%9%Z!<%9$,$"$k$N$G%G!<%?H4$1$OL5$$$H$$$&$3$H$r0UL#$7$^$9!#(B

  $B%I%i%$%P$O!"0l2s$N(B read(2) $B%3!<%k$GG$0U$N%P%$%H?t$rFI$_9~$`$3$H$,$G$-$k$h$&(B
  $B$K$J$C$F$$$^$9$,!"FbIt%P%C%U%!$O0l2s$N(B read(2) $B%3!<%k$G%P%C%U%!$K%U%#%C%H$7(B
  $B$?0J>e$N%P%$%H?t$rMW5a$7$?>l9g$O$&$^$/$$$+$J$$$H$$$&E@$KCm0U$7$F2<$5$$!#(B
  $BDL>o!"(Bb/w $B%b!<%I$G%9%-%c%s$9$k>l9g$O0l2s$K#1%9%-%c%s%i%$%sJ,$rFI$_9~$_!"(B
  $B%O!<%U%H!<%s%b!<%I$N>l9g$O$?$V$s?t%9%-%c%s%i%$%sJ,$rFI$_9~$`$G$7$g$&!#(B
  read(2) $B%3!<%k$,%7%0%J%k$K$h$C$F3d$j9~$^$l$k$H!"(Bread(2) $B$OFI$_9~$s$@%P%$%H?t(B
  $B$rJV$7$^$9!#;d$O$3$l$,(B EINTR $B$NLa$j$N(B `$BI8=`E*$J(B' $B?6$kIq$$$H$O0[$J$k$3$H$r(B
  $BCN$C$F$$$^$9$,!"%9%-%c%J$G$O$3$NJ}K!$,M}$K$+$J$C$F$$$k$N$G$9!#(B($BJL$NJ}K!$G$O(B
  $BFbIt%P%C%U%!$N4{B8$N%G!<%?$r$$$/$i$+<:$C$F$7$^$&(B)
  $B%9%-%c%J%G%P%$%9>e$G(B select(2) $B$r$9$k$H!"%P%C%U%!$NCf$K:GDc$G$b#1%9%-%c%s%i(B
  $B%$%s$N%G!<%?$,$"$l$P!"%G%P%$%9$O(B `ready' $B$H$7$FG'<1$5$l$^$9!#$7$+$7$3$l$b(B
  $BJQ99$G$-$^$9!#(B($B2<5-;2>H(B)

  $B%5%]!<%H$5$l$?(B ioctl $B5!G=$N$?$a$K!"(BREADME.ioctl $B$r$*FI$_2<$5$$!#$7$+$7!"(B
  ioctl $B%$%s%?%U%'!<%9$O$^$@3+H/Cf$G$"$j!"=>$C$FJQ99$,$"$j$=$&$G$9!#(B


$B%P%0Js9p$NCm0UE@(B
------------------------------------------------------------------------------

  $B%P%0$r7P83$5$l$?$i;d$K65$($F2<$5$$!#$"$J$?$N%P%0Js9p$K$O$=$l$r:F8=$9$kJ}K!!"(B
  $B$^$?$O>/$J$/$H$b;d$,J,$+$k$h$&$K@53N$J>u67$r@bL@$7$?$b$N$rE:IU$7$F2<$5$$!#(B
  $B%a%C%;!<%8$NCf$N%P%07k2L!"Nc$($P(B

        general protection: xxxx
        EIP:    0010:xxxxxxxx
        EFLAGS: xxxxxxxx
        eax: xxxxxxxx   ebx: xxxxxxxx   ecx: xxxxxxxx   edx: xxxxxxxx
        esi: xxxxxxxx   edi: xxxxxxxx   ebp: xxxxxxxx
        ds: xxxx  es: xxxx  fs: xxxx  gs: xxxx
        Pid: xx, process nr: xx
        xx xx xx xx xx xx xx xx xx xx

  $B$,!"2hLL$"$k$$$O%7%9%F%`%m%0$K$"$l$P!"$=$l$r@53N$K%3%T!<$7!"%9%-%c%J%I%i%$(B
  $B%P$,%m!<%I$5$l$F$$$k%m%1!<%7%g%s$HHf3S$7$F!"$=$NHO0OFb$+$I$&$+$r8+$F2<$5$$!#(B
  $B$3$l$O(B insmod $B$r$N=j(B)$B>l9g!"(BzSystem.map $B$G(B EIP $B$N(B
  $BCM(B (`0010:'$B$KB3$$$?$b$N$G$O$J$$(B) $B$rA\$7!"(BzSystem.map $B$N4X78$"$kItJ,$r4^$a$F(B
  $B2<$5$$!#(B
  $B$b$7$=$&$J$i$P(B 'nm -n logi32.o >logi32.map' $B%3%^%s%I$r;H$C$F%I%i%$%P$N%^%C%W(B
  $B$r:n$j!"$"$J$?$N%l%]!<%H$K$3$l$r4^$a$F2<$5$$!#(B
  $B$"$J$?$N%P%0Js9p$K!"$3$l$i#2$D$NItJ,$N$I$A$i$+$,7g$1$F$$$k$J$i!";d$K$H$C$F0U(B
  $BL#$,L5$$$H$$$&$3$H$KCm0U$7$F2<$5$$!#(B


$B$5$i$J$k%X%k%W$H>pJs(B
------------------------------------------------------------------------------

  $B%I%i%$%PMQ$N%a!<%j%s%0%j%9%H$,$"$j!"$=$3$K$O:G?7$N>pJs%U%!%$%k$,$"$j$^$9!#(B

  >>>> info logiscan
  [Last updated on: Wed Aug 10 10:41:58 1994]
                             LOGISCAN MILINGLIST
                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~
  !!! $B=EMW$JCm0U(B !!!
  $B$3$N%a!<%j%s%0%j%9%H$O!"(BLOGITECH $B$N8x<0$J%j%9%H$G$O$"$j$^$;$s(B !!!

 .---------------------------------------------------------------------------.
 |  $B$3$N%a!<%j%s%0%j%9%H$O!"(B Linux $BMQ$N(B Logitech $B%9%-%c%J%I%i%$%P$N3+H/$N(B Linux $BMQ$N(B Logitech $B%9%-%c%J%I%i%$%P(B  |
 |  $B$N?7$7$$%P!<%8%g%s$H%Q%C%A$rG[I[$9$k$?$a$K$b;H$o$l$F$$$^$9!#(B             |
 |                                                                           |
 |  Linux $B$G$O$J$$B>$N%*%Z%l!<%F%#%s%0%7%9%F%`$G(B Logitech $B%9%-%c%J$NLdBj$,(B   |
 |  $B$"$k$H$-$O$3$N%j%9%H$r9XFI$7$J$$$G2<$5$$!#$3$3$G$O%X%k%W$rF@$i$l$^$;$s(B   |
 `---------------------------------------------------------------------------'

  $B%j%9%H$r9XFI$9$k$K$O!"%a%C%;!<%8%\%G%#$K2<5-$N$h$&$K=q$$$?%a!<%k$r(B
  [email protected] $B$KAw$C$F2<$5$$!#(B
            subscribe logiscan [return mail address, optional]

  $BpJs$N%F%-%9%H$rM_$7$$$H$-$O!"2<5-$N$h$&$K=q$$$?%a!<%k$r(B
  [email protected] $B$KAw$C$F2<$5$$!#(B
            info logiscan
--------------------------------------------------------------------------
  Bye, Andreas.

  Andreas Beck          [email protected]
  Germany

    $B!ZLuCm![8=:_$N%"%I%l%9$O!"([email protected]

  **************************************************************************
  M105 $B%9%-%c%J%I%i%$%P$r=q$-!"$+$J$j%Y!<%9$H$J$C$?(B
  Thomas Faehnle     [email protected]   $B$KBgJQ46$N%9%-%c%JMQ%G%P%$%9%I%i%$%P$N:n(B
$B2A$7$^$9!#(B

$B;d$O:#$^$G$K(B Kenneth Stailey [email protected] $B$+$i%U%#!<%I%P%C%/$r-Mh%*%W%7%g%s$H$7$F%5%]!<%H$9$kM=Dj$N(B PINT $B$H8F$P$l$k(B UNIX
$BMQ$N%9%-%c%J%$%s%?%U%'!<%9$r4{$K;}$C$F$$$^$9!#(B

$B$3$N%Q%C%1!<%8$N(B pint $B%5%V%G%#%l%/%H%j$K$"$k%I%-%e%a%s%H$r;2>H$7$F2<$5$$!#(B
$B$3$l$O%P!<%8%g%s(B 0.0.3 $B$J$N$G!"$3$3$G=R$Y$?Dj5A$O%I%i%$%P$N3+H/$K1~$8$FIQHK(B
$B$KJQ99$5$l$k$+$b$7$l$J$$$3$H$KCm0U$7$F2<$5$$!#(B

$B;d$O$3$l$^$G%9%-%c%J!"$^$?$OF1MM$N%G%P%$%9$N(B ioctl $B%$%s%?%U%'!<%9$r@_7W$7$?(B
$B$3$H$,$J$$$H$$$&$3$H$rGr>u$7$J$1$l$P$J$j$^$;$s!#$=$3$G;d$N%"%W%m!<%A$K2?$+(B
$B4V0c$C$F$$$kE@$,L5$$$+!"$^$?!"$I$&$9$l$P$b$C$H$h$/$J$k$+$r65$($F2<$5$$!#(B

$B$^$?!"$"$J$?$,$3$N(B ioctl API $B$r;H$C$FAG@2$i$7$$%9%-%c%s%K%s%0!&%W%m%0%i%`$r(B
$B=q$+$l$?$i!";d$KAw$C$F2<$5$$!#(B

$B0J2<$K!"%5%]!<%H$5$l$F$$$k(B ioctl $B5!G=$r=q$-$^$9!#(B

**********************************************************************
#define HSIOCGSCC               0x73e8  /* Get Scanner Capabilities */
**********************************************************************

(ioctls $B$N(B MAGIC NUMBERS $B$O!"6a$$>-Mh(B ioctl $B$N;EMM$,$h$j0BDj$K$J$j(B"$B%a%8%c!<(B
 $B%/%j!<%s%"%C%W(B"$B$,5/$-$?;~$K!"JQ99$5$l$k$@$m$&$H;W$$$^$9(B)
$B$3$l$O%9%-%c%J$N%7%9%F%`!&%3!<%k$NCf$G:G$b=EMW$G$9!#(B
$B$H$$$&$N$O!"%9%-%c%J$K$I$N$h$&$K%"%/%;%9$7!"2?$,%5%]!<%H$5$l$F$$$k$N$+$H$$$&(B
$BI,MW$J>pJs$N$[$H$s$IA4$F$rDs6!$9$k$+$i$G$9!#(B

$B$3$N4X?t$O2<5-$N9=B$BN$rJV$7$^$9!#(B

struct scanner_capabilities {

        int o_scm_mono;         /* Options for monochrome mode */
        int o_scm_grey;         /* Options for greyscale  mode */
        int o_scm_true;         /* Options for true-color mode */

        int o_xdpi;             /* Options for x resolution */
        int o_ydpi;             /* Options for y resolution */

        int o_bright;           /* Options for brightness */
        struct minmax bright;
        int o_contrast;         /* Options for contrast */
        struct minmax contrast;
        int o_hue;              /* Options for hue */
        struct minmax hue;
        int o_sat;              /* Options for saturation */
        struct minmax sat;

        int phys_width;         /* Width in mm */
        int phys_length;        /* Length in mm */

        int av_options;         /* Number of available Options (0-32) */

};

$BF,$K(B 'o_' $B$,IU$/%U%#!<%k%I$OA4$F(B "$B%*%W%7%g%s!&%U%#!<%k%I(B" $B$G2<5-$N%U%i%0$H(B
$BAH$_9g$o$;$k$3$H$,$G$-$^$9!#(B($B$D$^$j!"$3$l$O%S%C%H%U%#!<%k%I$G$9(B)

#define SCC_SOFTSELECT  0x0001  /* $B%*%W%7%g%s$r%=%U%H%&%'%"$GA*Br2DG=(B */
#define SCC_SOFTDETECT  0x0002  /* $B%*%W%7%g%s$r%=%U%H%&%'%"$G8!=P2DG=(B */
#define SCC_HARDSWITCH  0x0004  /* $B%*%W%7%g%s$O%O!<%I%&%'%"%9%$%C%A(B   */ 
                                /* ($B%f!<%6$N4XM?$,I,MW(B) */
#define SCC_EMULATE     0x0008  /* $B%*%W%7%g%s$O%I%i%$%P$G%(%_%e%l!<%H$5$l$k(B */
#define SCC_CANDO       0x000f  /* $B>e5-$N2?$+$,%;%C%H$5$l$?$i%I%i%$%P$,(B */
                                /* $B%5%]!<%H$9$k%*%W%7%g%s(B */

$B$3$N%*%W%7%g%s$r$I$N$h$&$K;H$&$+$NNc$r<($7$^$9!#(B

$B%O!<%I%&%'%"%9%$%C%A$r;H$C$F%9%-%c%J$N(B dpi $B$rA*Br$G$-$F!"$=$N@_Dj$r%I%i%$%P(B
$B$,FI$_9~$`$3$H$,$G$-$k$J$i!"$3$N$h$&$K=q$-$^$9!'(B

    SCC_SOFTDETECT|SCC_HARDSWITCH

$B%9%-%c%J$,#1$D$N(B dpi $B@_Dj$K8GDj$5$l$F$$$k$J$i(B"$B%O!<%I%&%'%"%9%$%C%A(B" $B$O$"$j$^(B
$B$;$s$,!"$U$D$&%I%i%$%P$O8GDj%l!<%H$r(B "$B8!=P2DG=(B" $B$G$"$k$H$$$&$U$j$r$7$^$9!#(B 
($B$7$+$7%l!<%H$O8GDj$J$N$GK\Ev$K8!=P$9$kI,MW$O$"$j$^$;$s(B)$B!'(B

    SCC_SOFTDETECT

$B%9%$%C%A$G(B dpi $B@_Dj$rA*Br$G$-$k$,!"%I%i%$%P$,$=$N@_Dj$rFI$_9~$`J}K!$,L5$$(B
($B$3$l$Ol9g$O!"(BSCC_HARDSWITCH $B$r%;%C%H$7$J$1$l$P$J$j$^$;$s!#(B


$B$3$l$N%"%W%j%1!<%7%g%s$K$H$C$F$N0UL#$O(B
========================================

SCC_SOFTDETECT $B$,;XDj$5$l$F$$$J$$>l9g!"%Q%i%a!<%?$NCM$rCN$i$J$$$N$G$J$$8B$j(B
$B$=$l$rF~NO$9$k$h$&B%$5$l$k$Y$-$G$9!#(B($B;d$O(B SCC_SOFTSELECT $B$,(B SCC_SOFTDETECT $B$r(B
$B4^$^$J$$$H$$$&$h$&$J%1!<%9$rA[A|$G$-$^$;$s(B...) $B$=$7$FCM$r%I%i%$%P$K65$($k$?$a(B
$B$KL@<(E*$K(B SMOD-call $B$K$h$C$F%;%C%H$7$J$1$l$P$J$j$^$;$s!#(B

SCC_HARDSWITCH $B$O!"%"%W%j%1!<%7%g%s$,%f!<%6$K%O!<%I%&%'%"$r@5$7$/@_Dj$9$k$h$&(B
$B$KB%$9I,MW$,$"$k$3$H$r0UL#$9$k$G$7$g$&!#(B($B$3$l$,4{$K9T$o$l$F$$$k$3$H$,J,$+$C$F(B
$B$$$k!"Nc$($P(B SOFTDETECT $B$,=hM}$7$?(B...$B>l9g$r=|$/(B)

SCC_EMULATE $B%*%W%7%g%s$O!"$3$l$,A*Br$5$l$?$H$-!"%O!<%I%&%'%"$,B>$N%b!<%I$G(B
$B$"$C$F$b!"$^$?$O$3$N%b!<%I$r%5%]!<%H$7$F$$$J$/$F$b%I%i%$%P$O$3$N%b!<%I$r%(%_(B
$B%e%l!<%H$9$k$@$m$&$H$$$&$3$H$r0UL#$7$^$9!#(B
($BNc$($P!"A4$F$N%b%N%/%m%9%-%c%J$ODL>o!"%b%N%/%m%G!<%?$rA4$F$N#3(B RGB $BCM$K3HD%(B
$B$9$k$3$H$K$h$j%H%%%k!<%+%i!<%b!<%I$r%(%_%e%l!<%H$7$^$9(B)

phys_* $B%U%#!<%k%I$O!":GBg%9%-%c%s%&%#%s%I%&$NJ*M}E*%5%$%:$r(B mm $B$GI=$7$^$9!#(B

minmax-structs $B$O!"%Q%i%a!<%?$NHO0O!"2<5-$N$h$&$KDj5A$5$l$?9=B$BN$G$9!#(B

    struct minmax {int min,max;};

av_options $B%U%#!<%k%I$K$O!"$3$NFCJL$J%9%-%c%J$N;HMQ2DG=$J%*%W%7%g%s$NHV9f$,(B
$BF~$j$^$9!#$3$NCM$O!"(B 0-32 (inclusive) $B$NHO0O$G!"(BHSIOCGOPT $B%3!<%k$+$i$N%G!<%?$N(B
$B@53N$JJQ49$,I,MW$G$9!#(B

*********************************************************************
#define HSIOCGOPT               0x73e7  /* Get option descriptions */
*********************************************************************

$B$3$N%3!<%k$O!"2<5-%U%)!<%^%C%H$N(B32$B$^$G$N%*%W%7%g%s%G%9%/%j%W%?(B($B$3$l$O(B
 av_options $B%(%s%H%j$rM=Ls$9$k$K$O==J,$G$7$g$&(B)$B$N%U%#!<%k%I$rJV$7$^$9!#(B

struct scanner_option {int  options;    /* Option availability */
                       char name[20];};

'$B%*%W%7%g%s(B'$B%U%i%0$O>e5-$N(B 'o_'$B$NCM$N0l$D$H$7$F(B($B$9$J$o$A!"%O!<%I%&%'%"$^$?$O(B
$B%=%U%H%&%'%"$K$h$C$F%*%W%7%g%s$,A*Br$5$l$?$i!"$=$7$F$=$l$,%=%U%H$G8!=P2DG=!"(B
$B$"$k$$$O%I%i%$%P5!G=$,%(%_%e%l!<%H$9$k$h$&$J$b$N$J$i$P(B)$B07$o$l$^$9!#(B

$B%*%W%7%g%s$H$7$F!"%f!<%6$,%*%W%7%g%s$r(B $BA*Br!?HsA*Br!?I=<((B $B$9$k$?$a$N(B
$B%*%W%7%g%sL>$r<($9%f!<%6%@%$%"%m%0$rDs0F$7$^$9!#(B

$B$3$l$,=PMh$J$$!"$"$k$$$O$7$?$/$J$$(B($BNc$($P(B OCR $B$N$h$&$J%P%C%/%0%i%s%I=hM}(B)$B>l9g!"(B
$B$=$NL>A0$+$i%*%W%7%g%s$N0UL#$r0z$-=P$9$h$&$K$9$k$Y$-$G$9!#(B

$B8_49@-$rJ]>Z$9$k$?$a$K!"%G%P%$%9%I%i%$%P$N:n@.IU$1$NH`$i$N(B
$B%"%$%G%"$r;d$K3NG'$9$k$3$H$,>)Ne$5$l$^$9!#$3$l$O!"F1$8%*%W%7%g%s$KBP$7$FJ#?t$N(B
$BL>A0$rHr$1$k$?$a$K!"$=$7$F$3$NJ8=q$r;d$,99?7$9$k$3$H$,$G$-$k$h$&$K$9$k$?$a$G$9!#(B

$B8=:_!"%I%i%$%P$K$h$C$F;H$o$l$k%*%W%7%g%s$O#1$D$@$1$"$j$^$9!#(B

$B%*%W%7%g%s(B: "Dithering"
$B5!G=(BF     : dithered greyscale $B%b!<%I$r(B on/off $B$9$k(B
$B%I%i%$%P(B  : logi32.o
$B:no$N(B ioctl $B%$%s%?%U%'!<%9$G$O%"%/%;%9$G$-$J$$FCpJs$rF@$^$9!#(B

struct modeinfo_struct {
  int xdpi,ydpi;                /* resolution */
  int sc_mode;
  int depth;                    /* number of different colors (-1) */
  int bpl;                      /* bytes per scanline */
  int left,right;               /* margins in Pixels */
  int top,bottom;               /* margins in Lines */
  int bright;                   /* brightness */
  int contrast;                 /* contrast */
  int hue;                      /* hue */
  int sat;                      /* saturation */
  int options;                  /* enabled options */
};

sc_mode $B$O!"2<5-$N$$$:$l$+0l$D$NCM$r$H$j$^$9!#(B

#define SCM_UNKNOWN 0           /* Scanner modes : */
#define SCM_MONO 1              /* 1 BitPerPixel   */
#define SCM_GREY 2              /* 8 BitsPerPixel  */
#define SCM_TRUE 3              /* 24 Bit RGB      */

$B#0$N>l9g!"%9%-%c%J$OL$Dj5A$N>uBV$G$9!#(B($B5/$-$k$Y$-$G$O$J$$(B)
$B?7$7$$%b!<%I$r%;%C%H$9$k$3$H$b$G$-$^$9$,!"$`$7$m%"%\!<%H$9$k$Y$-$G$9(B...$B!#(B

$B%9%-%c%s%b!<%I$OE>Aw$5$l$?%G!<%?$N%U%)!<%^%C%H$H0[$J$j$^$9!'(B

MONO $B%b!<%I$O%P%$%J%j%(%s%3!<%I$5$l$?9u$HGr$NCM$N%S%C%HNs$rAw$j$^$9!#(B
$BB($A!"(B0x83 0x10 $B$rFI$_9~$s$@>l9g!"%9%-%c%J%X%C%I$N2<$N%Q%?!<%s$O!"(B
* . . . . . * *  . . . * . . . . ;
$B$D$^$j!"#1%P%$%H$K$D$->o$K#88D$N%T%/%;%k(B($B2hAG(B)$B$,$"$j!"0l9T$K$O>o$KJ#?t$N(B
$B#8%T%/%;%k$,$"$j$^$9!#(B($B$3$l$O:81&$rDL$7$F:F8=$5$l$kH&$G$9(B...)

$B%0%l!<%b!<%I$O!"(B0$B!A(B255 $B$^$G$NHO0O$GB,Dj$5$l$?3%?'$NCM$N%P%$%HNs$rAw$j$^$9!#(B
$Bo$K(B0 $B$^$?$O(B255 $B$rAw$j$^$9!#B($A!"#1%T%/%;%k$K$D$-#1%P%$%H$J$N$G$9!#(B  

$B%H%%%k!<%b!<%I$O!"%P%$%H$G(B RGB $BCM$rAw$j$^$9!#=>$C$F!"(B1 $B%T%/%;%k$KIU$-(B3$B%P%$%H(B
$B$"$j$^$9!#$l$NFC@-CM$G$9!#(B

$B%*%W%7%g%s$O!"A*Br$5$l$?%*%W%7%g%s$N%S%C%H%U%#!<%k%I$H$7$F$_$J$5$l$^$9!#(B

**********************************************************
#define HSIOCSMOD               0x73eb  /* Set modeinfo */
**********************************************************

$B$3$N%3!<%k$O!"%9%-%c%J%b!<%I$r%;%C%H$9$k$?$a$K;H$$$^$9!#(B
$B$"$J$?$,M?$($?9=B$BN$O%9%-%c%J$^$?$O%I%i%$%P$,07$&$3$H$N=PMh$kK\Ev$NCM$rH?1G(B
$B$9$k$?$a$K(B"$BJQ99$5$l$k(B"$B$H$$$&E@$KCm0U$7$F2<$5$$!#(B

$BNc$($P!"(B400dpi(X$BJ}8~(B), 600dpi (y$BJ}8~(B), $B%U%k!&%G%W%9$G(B 24$B%S%C%H%b!<%I!"(B
$B%^!<%8%s$O(B 5-1003 ($BJ}8~(Bx),13-4000 (y$BJ}8~(B) $B$H$$$&>r7o$G%9%-%c%s$5$;$?$$>l9g(B
$B2<5-$N$h$&$K$7$F(B SMOD $B$r%3!<%k$7$^$9!#(B

{ 400,600,
  SCM_TRUE,
  0xffffff,
  0,/* bpl doesn't matter */
  5,1003,13,4000,
  ...
}

$B%9%-%c%J$,N>J}$N<4$G(B 300dpi $B$7$+%5%]!<%H$G$-$J$$>l9g!"%O!<%I%&%'%"%9%$%C%A$r(B
$B7PM3$7$F(B SCM_MONO $B$K%;%C%H$7$^$9!#(B($B$=$7$F%I%i%$%P$O%G!<%?$rJQ49$G$-$J$$(B [!])
$B#8$NG\?t$G#1#0%$%s%A$^$G$N%Z!<%8D9$N?eJ?J}8~$N6-3&$N$_%5%]!<%H$7!"(B
$B9=B$BN$Oo$O%f!<%6%l%Y%k$N%"%W%j%1!<%7%g%s$K$O%"%/%;(B
$B%9=PMh$^$;$s!#$3$N%3!<%k$N5!G=$O!"%9%-%c%J$+$i%9%-%c%J$X!"$"$k$$$O%I%i%$%P$+(B
$B$i%I%i%$%P$X!"$H$O0c$$$^$9!#(B

*************************************************************************
#define HSIOCGBUF               0x73f0  /* get/set current buffer size */
#define HSIOCSBUF               0x73f1
*************************************************************************

$B%9%-%c%s$9$k%i%$%s$N8=:_$N%P%C%U%!%5%$%:$rr7o$K=>$C$F:FG[I[$7$?$jJQ(B
    $B99$9$k$3$H$,$G$-$^$9!#(B

    $B$3$N%W%m%0%i%`$O!"Lr$KN)$D$3$H$r4|BT$7$FG[I[$7$F$$$^$9!#$7$+$7!"$$$+$J$k(B
    $BJ]>Z$b$"$j$^$;$s!#>&IJ@-$dFCDjMQES$X$NE,9g@-$K$D$$$F$N0EL[$NJ]>Z$9$i$"$j(B
    $B$^$;$s!#>\$7$/$O!"(BGNU $B$N(B General Public License $B$r$4Mw2<$5$$!#(B 

    $B$"$J$?$O!"$3$N%W%m%0%i%`$H0l=o$K(B GNU General Public License $B$N%3%T!<$r.$5$J%G%b%s%9%H%l!<%7%g%s(B
$B%W%m%0%i%`$G$9!#(B

$B$3$N%W%m%0%i%`$N0lIt$O!"(BThomas Faehnle <[email protected]>
$B$K$h$C$F=q$+$l$?$b$N$G!";d$OH`$NEXNO$K46$C$F0[$J$C$?%9%-%c%J$d4V0c$C$?%Q%i%a!<%?$G;H$C$?;~!"4V0c$C$?7k2L$r:n$k$N$G(B
$B%9%/%j%W%H$Oo$K:G?7HG$r(B /usr/local/include $B$KF~$l$k(B
$B$h$&$K$7$F2<$5$$!#(B
ioctl $B%$%s%?%U%'!<%9$O$^$@$^$@9);v$N:GCf$G$9$+$i!"8E$$(B gifscan $B$N%P%$%J%j$O(B
$B$3$l$r?7$7$$%I%i%$%P$H6&$K;H$&$HDL>o$O%V%l!<%/$7$^$9!#(B

Logitech $B%9%-%c%J$K$O9uGr%b!<%I$H%0%l!<%9%1!<%k%b!<%I$,$"$j$^$9!#(B
$B$3$l$OIT9,$K$b%=%U%H%&%'%"$G8!=PIT2DG=$G$9!#(B($B$=$l$H$b$@$l$+$3$NJ}K!$rCN$C$F(B
$B$^$9$+!)(B)

$B$=$3$G;d$O(B -g x $B$H$$$&%9%$%C%A(B(x $B$O%0%l!<%9%1!<%k!&%^%H%j%/%9$N%5%$%:(B)$B$r(B
$BDI2C$7$^$7$?!#(B($BL$=O$J%*%W%7%g%s=hM}$G$"$k$3$H$OJ,$+$C$F$$$^$9$,!"$?$C$?0l$D(B
$B$N%9%$%C%A$N$?$a$K(B getopt $B$r%$%s%/%k!<%I$7$?$/$J$+$C$?$N$G$9(B...)

**************************************************************************
$B8=%P!<%8%g%s$G$b$3$N%9%$%C%A$O;H$($^$9$,!"?7$7$$%9%?%$%k$N%9%-%c%J%I%i%$%P(B
$B$O%*%W%7%g%s$H$7$F%G%#%6$rDs6!$9$k(B(Logi32 $B$O(B)$BH&$J$N$G!":#8e$O;H$&$Y$-$G$O(B
$B$"$j$^$;$s!#(B
**************************************************************************

$B9uGr%b!<%I$K$O$3$l$r#1(B($B%G%U%)%k%H(B)$B$K!"%0%l!<%9%1!<%k%b!<%I$K$O#6$r%;%C%H$7(B
$B$J$1$l$P$J$j$^$;$s!#(B($B$3$l$O%9%-%c%JFbIt%^%H%j%/%9$N%5%$%:$J$N$G(B)
$B#1$+$i#1#6$^$G$NHO0O$NCM$O!"B>$N%9%-%c%J$G$OM-8z$+$b$7$l$^$;$s$,!"(BLOGITECH
$B$G$O6/$$%b%"%l8z2L$,=P$F$7$^$$$^$9!#(B
$B!ZLuCm![%b%"%l8z2L$H$$$&$N$O!"862hA|$K$OL5$$LOMM$,H/@8$9$k8=>]$G$9!#(B

$B:#EY%5%]!<%H$5$l$?(B Scanman256 $B$K$O??$N%0%l!<%9%1!<%k%b!<%I$,$"$j$^$9!#(B
$B$=$N%b!<%I$NA4$F(B($B9uGr!"(B4,6,8 bit)$B$,!":#%5%]!<%H$5$l$k$Y$-$G$7$?!#(B

$B%9%-%c%sCf$O2<5-$N%-!<$,;H$($^$9!#(B($B%S%8!l9g!"%9%-%c%J$r$+$J$jCY$/A`:n$9$kI,MW$,$"$j$^$9!#(B

$B$3$N%*%W%7%g%s$O$9$0$K>C$(5n$k$@$m$&$+$i!"$@$l$b(B "bit-count-code" ($B;d$O0JA0$N(B
$B%P!<%8%g%s$G$"$k$H$[$N$a$+$7$?(B)$B$r=q$-D>$9I,MW$O$"$j$^$;$s!#(B

Bye, Andreas.

-----------------------------------------------------------------------------
$B$d$k$Y$-$3$H!'$h$jNI$$%f!<%6%$%s%?%U%'!<%9!"%U%!%$%k$N%M!<%_%s%0!"Nc$($P(B
              $B%@%$%"%m%0%\%C%/%9$H$+(B...

BTW ($B!)(B)$B!'(B svgalib $B%0%i%U%#%C%/%9$r;}$C$F$$$J$$!?M_$7$/$J$$!?I,MW$G$J$$?M$N(B
           $B$?$a$K(B PBMSCAN $B$H8F$P$l$k?7$7$$%3%^%s%I%i%$%s$N%9%-%c%s%D!<%k$,(B
           $B$"$j$^$9!#(B

--
Andreas Beck            [email protected]
Germany

    $B!ZLuCm![8=:_$N%"%I%l%9$O!"([email protected]

**************************************************************************
Thomas Faehnle          [email protected]
$B$K$O?<$/46

$B