anchor.diff:  begin
     Enable := true;
     try
  -    for rcsaddr in Self.RozpSettings.RCSAddrs do
  +    for rcsaddr in Self.m_settings.RCSAddrs do
         if (not RCSi.IsNonFailedModule(rcsaddr.board)) then
           Enable := false;
     except
       Enable := false;
     end;
   
  -  Self.RozpStav.rcsFailed := not Enable;
  +  Self.m_state.rcsFailed := not Enable;
   
     if (Enable) then
       Self.state := TBlkDiscBasicState.not_selected;
  
positive.code: 
    TBlkDisconnector = class(TBlk)
    const
      _def_rozp_stav: TBlkDiscState = (state: disabled; rcsFailed: false; note: '';);
  
    private const
      _MOUNT_TO_ACTIVE_TIME_SEC = 3;
      _ACTIVE_TO_DISABLE_TIME_SEC = 60;
  
    private
      RozpSettings: TBlkDiscSettings;
      RozpStav: TBlkDiscState;
  
      procedure SetState(status: TBlkDiscBasicState);
      procedure UpdateOutput();
  
negative.code: procedure TBlkDisconnector.Disable();
  begin
    Self.state := TBlkDiscBasicState.disabled;
    Self.m_state.rcsFailed := false;
    Self.Change(true);
  end;
  
  function TBlkDisconnector.UsesRCS(addr: TRCSAddr; portType: TRCSIOType): Boolean;
  begin
    Result := ((portType = TRCSIOType.output) and (Self.m_settings.RCSAddrs.Contains(addr)));
  end;
  
  /// /////////////////////////////////////////////////////////////////////////////
  
  procedure TBlkDisconnector.Update();
  begin
    if ((Self.state <> TBlkDiscBasicState.disabled) and (not RCSi.IsNonFailedModule(Self.m_settings.RCSAddrs[0].board)))
    then
    begin
      Self.state := TBlkDiscBasicState.disabled;
      Self.m_state.rcsFailed := true;
    end;
  
    case (Self.state) of
      TBlkDiscBasicState.disabled:
        begin
          if ((Self.m_state.rcsFailed) and (RCSi.IsNonFailedModule(Self.m_settings.RCSAddrs[0].board))) then
          begin
            Self.m_state.rcsFailed := false;
            Self.state := TBlkDiscBasicState.not_selected;
          end;
        end;
      TBlkDiscBasicState.mounting:
        begin
          if (Now > Self.m_state.finish) then
          begin
            Self.m_state.finish := Now + EncodeTime(0, Self._ACTIVE_TO_DISABLE_TIME_SEC div 60,
                                                     Self._ACTIVE_TO_DISABLE_TIME_SEC mod 60, 0);
            Self.state := TBlkDiscBasicState.active;
          end;
        end;
      TBlkDiscBasicState.active:
        if (Now > Self.m_state.finish) then
          Self.state := TBlkDiscBasicState.not_selected;
    end; // case
  
  