anchor.diff:    private
       fl:textfile;
       fLogPath:string;
  -    PreviousTick:cardinal;
  +    fFirstTick:cardinal;
  +    fPreviousTick:cardinal;
       procedure AddLine(const aText:string);
       procedure AddLineNoTime(const aText:string);
     public
  
positive.code: begin
    Inherited Create;
    fLogPath := aPath;
    AssignFile(fl, fLogPath);
    rewrite(fl);
    closefile(fl);
    AddToLog('');
    AddToLog('');
    AddToLog('Log is up and running');
  end;
  
  
  {Lines are timestamped, each line invokes file open/close for writing,
  meaning no lines will be lost if Remake crashes}
  procedure TKMLog.AddLine(const aText:string);
  var Delta:cardinal;
  begin
    Delta := TimeGetTime - PreviousTick;
    PreviousTick := TimeGetTime;
    if Delta>100000 then Delta:=0; //ommit first usage
    AssignFile(fl, fLogPath);
    append(fl);
    writeln(fl,#9+inttostr(Delta)+'ms'+#9+aText);
    closefile(fl);   
  end;
  
  
  
negative.code: procedure TKMLog.AddLineNoTime(const aText:string);
  begin
    AssignFile(fl, fLogPath);
    Append(fl);
    WriteLn(fl,#9+#9+aText);
    CloseFile(fl);
  end;
  
  
  