anchor.diff:        if (blk <> nil) then
           blk.Change();
       end;
  +    for var signalId in Self.m_settings.signals do
  +    begin
  +      var blk := Blocks.GetBlkByID(signalId);
  +      if (blk <> nil) then
  +        blk.Change();
  +    end;
   
     end;
   
     Self.ShowIndication();
   end;
  +
  +/// /////////////////////////////////////////////////////////////////////////////
  +
  +function TBlkPst.UsesRCS(addr: TRCSAddr; portType: TRCSIOType): Boolean;
  +begin
  +  if ((portType = TRCSIOType.output) and ((addr = Self.m_settings.rcsOutTaken) or (addr = Self.m_settings.rcsOutHorn))) then
  +    Exit(true);
  +
  +  if ((portType = TRCSIOType.input) and ((addr = Self.m_settings.rcsInTake) or (addr = Self.m_settings.rcsInRelease))) then
  +    Exit(true);
  +
  + Result := false;
  +end;
  +
   
   /// /////////////////////////////////////////////////////////////////////////////
   
  
positive.code:       if ((blk <> nil) and (blk.typ = btTurnout)) then
          TBlkTurnout(blk).PstAdd(Self);
      end;
  
    end else if ((old > pstOff) and (new = pstOff)) then
    begin
  
negative.code:     procedure Disable(); override;
      procedure Reset(); override;
      procedure SetStatus(new: TBlkPstStatus);
      function UsesRCS(addr: TRCSAddr; portType: TRCSIOType): Boolean; override;
  
      procedure Update(); override;
      procedure Change(now: Boolean = false); override;
  