anchor.diff:      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;
  
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:       if ((blk <> nil) and (blk.typ = btTurnout)) then
          TBlkTurnout(blk).PstRemove(Self);
      end;
      for var signalId in Self.m_settings.signals do
      begin
        var blk := Blocks.GetBlkByID(signalId);
        if ((blk <> nil) and (blk.typ = btSignal)) then
          TBlkSignal(blk).PstRemove(Self);
      end;
      // unlock all refugees
      for var refugeeZav in Self.m_settings.refugees do
      begin
  