anchor.diff:  
        procedure SetLibName(s: string);
   
  -     // eventy z dll do TMTBIFace:
  -     procedure OnLibBeforeOpen(Sender:TObject); stdcall;
  -     procedure OnLibAfterOpen(Sender:TObject); stdcall;
  -     procedure OnLibBeforeClose(Sender:TObject); stdcall;
  -     procedure OnLibAfterClose(Sender:TObject); stdcall;
  -     procedure OnLibBeforeStart(Sender:TObject); stdcall;
  -     procedure OnLibAfterStart(Sender:TObject); stdcall;
  -     procedure OnLibBeforeStop(Sender:TObject); stdcall;
  -     procedure OnLibAfterStop(Sender:TObject); stdcall;
  -     procedure OnLibError(Sender: TObject; errValue: word; errAddr: byte; errMsg:string); stdcall;
  -     procedure OnLibInputChanged(Sender: TObject; board:byte); stdcall;
  -     procedure OnLibOutputChanged(Sender: TObject; board:byte); stdcall;
  -
     protected
       { Protected declarations }
   
  
positive.code: ////////////////////////////////////////////////////////////////////////////////
  // eventy z dll knihovny:
  
  procedure TMTBIFace.OnLibBeforeOpen(Sender:TObject); stdcall;
   begin
    if (Assigned(Self.OnBeforeOpen)) then Self.OnBeforeOpen(Self);
   end;
  
  procedure TMTBIFace.OnLibAfterOpen(Sender:TObject); stdcall;
   begin
    if (Assigned(Self.OnAfterOpen)) then Self.OnAfterOpen(Self);
   end;
  
  procedure TMTBIFace.OnLibBeforeClose(Sender:TObject); stdcall;
   begin
    if (Assigned(Self.OnBeforeClose)) then Self.OnBeforeClose(Self);
   end;
  
  procedure TMTBIFace.OnLibAfterClose(Sender:TObject); stdcall;
   begin
    if (Assigned(Self.OnAfterClose)) then Self.OnAfterClose(Self);
   end;
  
  procedure TMTBIFace.OnLibBeforeStart(Sender:TObject); stdcall;
   begin
    if (Assigned(Self.OnBeforeStart)) then Self.OnBeforeStart(Self);
   end;
  
  procedure TMTBIFace.OnLibAfterStart(Sender:TObject); stdcall;
   begin
    if (Assigned(Self.OnAfterStart)) then Self.OnAfterStart(Self);
   end;
  
  procedure TMTBIFace.OnLibBeforeStop(Sender:TObject); stdcall;
   begin
    if (Assigned(Self.OnBeforeStop)) then Self.OnBeforeStop(Self);
   end;
  
  procedure TMTBIFace.OnLibAfterStop(Sender:TObject); stdcall;
   begin
    if (Assigned(Self.OnAfterStop)) then Self.OnAfterStop(Self);
   end;
  
  procedure TMTBIFace.OnLibError(Sender: TObject; errValue: word; errAddr: byte; errMsg:string); stdcall;
   begin
    if (Assigned(Self.OnError)) then Self.OnLibError(Self, errValue, errAddr, errMsg);
   end;
  
  procedure TMTBIFace.OnLibInputChanged(Sender: TObject; board:byte); stdcall;
   begin
    if (Assigned(Self.OnInputChanged)) then Self.OnInputChanged(Self, board);
   end;
  
  procedure TMTBIFace.OnLibOutputChanged(Sender: TObject; board:byte); stdcall;
   begin
    if (Assigned(Self.OnOutputChanged)) then Self.OnOutputChanged(Self, board);
   end;
  
  ////////////////////////////////////////////////////////////////////////////////
  
negative.code:   TDllModuleChanedEvent = procedure (Sender:TObject; module:byte) of object;
  
    // prototypy callback funkci z knihivny do TMTBIFace:
    TStdNotifyEvent = procedure (Sender: TObject; data:Pointer); stdcall;
    TStdDllErrEvent = procedure (Sender: TObject; data:Pointer; errValue: word; errAddr: byte; errMsg:string); stdcall;
    TStdDllModuleChanedEvent = procedure (Sender:TObject; data:Pointer; module:byte); stdcall;
  
    // prototypy setteru (funkci naastavujicich callback funkce) z TMTBIFace do dll knihovny:
    TSetDllNotifyEvent = procedure(func:TStdNotifyEvent; data:Pointer); stdcall;
    TSetDllErrEvent = procedure(func:TStdDllErrEvent; data:Pointer); stdcall;
    TSetDllEventChange = procedure (func:TStdDllModuleChanedEvent; data:Pointer); stdcall;
  
    // vlastni vyjimky:
    EFuncNotAssigned = class(Exception);
  