anchor.diff:      procedure SetUIStatus(const Value: TDebugUIStatus);
       procedure DisableUI;
       procedure EnableUI;
  -    procedure SetForceKeyboard(Value: Boolean); // TODO: refactor this away -- we should use only FUIStatus
       function GetStatusText: string;
       procedure SetStatusText(Value: string);
       procedure UpdateDebugStatusForm;   // I4809
  
positive.code:   end;
  end;
  
  procedure TfrmDebug.SetForceKeyboard(Value: Boolean);
  begin
    if Value <> FForceKeyboard then
    begin
      FForceKeyboard := Value;
  
      if FForceKeyboard then
      begin
        try
          memo.SetFocus;
  
          FDebugCore := TDebugCore.Create(FFileName, True);
          frmDebugStatus.SetDebugCore(FDebugCore);
  
        except
          on E:Exception do
          begin
            CleanupCoreState;
            Winapi.Windows.SetFocus(0);
            HideDebugForm;
            FForceKeyboard := False;
            ShowMessage(E.Message);
            Exit;
          end;
        end;
      end
      else
      begin
        CleanupCoreState;
      end;
    end;
  end;
  
  procedure TfrmDebug.CleanupCoreState;
  begin
    FreeAndNil(FDebugCore);
  
negative.code: 
      FDebugVisible: Boolean;
      FBreakpoints: TDebugBreakpoints;
      FRunning, FFoundBreakpoint: Boolean;
      FFileName: string;
      FExecutionPointLine: Integer;
      debugkeyboard: TDebugKeyboard;
  