anchor.diff:  
   /obj/machinery/computer/telecrystals/uplinker/proc/donateTC(amt, addLog = 1)
   	if(uplinkholder && linkedboss)
  -		if(amt <= uplinkholder.hidden_uplink.telecrystals)
  +		if(amt < 0)
  +			linkedboss.storedcrystals += uplinkholder.hidden_uplink.telecrystals
  +			if(addLog)
  +				linkedboss.logTransfer("[src] donated [uplinkholder.hidden_uplink.telecrystals] telecrystals to [linkedboss].")
  +			uplinkholder.hidden_uplink.telecrystals = 0
  +		else if(amt <= uplinkholder.hidden_uplink.telecrystals)
   			uplinkholder.hidden_uplink.telecrystals -= amt
   			linkedboss.storedcrystals += amt
   			if(addLog)
  
positive.code: 	if(href_list["scan"])
  		scanUplinkers()
  
  	if(href_list["give1"])
  		var/obj/machinery/computer/telecrystals/uplinker/A = locate(href_list["give1"])
  		A.giveTC(1)
  
  	if(href_list["give5"])
  		var/obj/machinery/computer/telecrystals/uplinker/A = locate(href_list["give5"])
  		A.giveTC(5)
  
  	if(href_list["distrib"])
  		var/sanity = 0
  
negative.code: 	if(..())
  		return
  
  	if(href_list["donate"])
  		var/tcamt = text2num(href_list["donate"])
  		donateTC(tcamt)
  
  	if(href_list["eject"])
  		ejectuplink()
  