anchor.diff:      call_port({usb_bus_list}).
   
   call_port(Msg) ->
  -    erlusb ! {call, self(), Msg},
  +    ?MODULE ! {call, self(), Msg},
       receive
  -	{erlusb, Result} ->
  +	{?MODULE, Result} ->
   	    Result
       end.
   
   init(ExtPrg) ->
  -    register(erlusb, self()),
  +    register(?MODULE, self()),
       process_flag(trap_exit, true),
       Port = open_port({spawn, ExtPrg},
   		     [
  
positive.code: % Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
  
  -module(erlusb).
  -export([start/1, stop/0, init/1]).
  -export([usb_bus_list/0]).
  -export([ei_tests/0]).
  -include("erlusb.hrl").
  
  start(ExtPrg) ->
      spawn(?MODULE, init, [ExtPrg]).
  stop() ->
      erlusb ! stop.
  
  ei_tests() ->
      [ {Atom,Result}={Atom,call_port({Atom})}
  
negative.code: 		      hide,
  		      binary
  		     ]),
      loop(#state{port=Port}).
  
  loop(#state{port=Port} = State) ->
      receive
  	{call, Caller, Msg} ->
  	    Port ! {self(), {command, term_to_binary(Msg)}},
  	    receive
  		{Port, {data, Data}} ->
  		    io:format("Received data for ~p: ~p~n", [Msg, Data]),
  		    Caller ! {?MODULE, binary_to_term(Data)}
  	    end,
  	    loop(State);
  	stop ->
  	    Port ! {self(), close},
  	    io:format("Waiting for close ack~n", []),
  