package cell;
abstract class CellLinkUp extends CellLinkDown
{
CellLinkUp(String fileName)
{
super(fileName);
}
public void so( byte col, short row, Object val)
{
float old = af(col, row);
super.so(col, row, val);
float diff = af(col, row) - old;
if (diff == 0.0) return;
CellBase lnk = boot( "LNK");
for (short i = 0; i <= lnk.max(); i++)
{
String srcReg = lnk.mh( LinkControl. SRC_NAME, i);
String destFix = lnk.mh( LinkControl. DEST_NAME, i);
String dest = match( srcReg, destFix, fileName);
if (dest == null) continue;
byte srcStart = Byte.parseByte(lnk.mh( LinkControl. SRC_COL_START, i));
byte colCount = Byte.parseByte( lnk.mh( LinkControl. COL_COUNT, i));
byte destStart = Byte.parseByte( lnk.mh( LinkControl. DEST_COL_START, i));
if (col < srcStart) continue;
if (col >= (srcStart+ colCount)) continue;
float frac = Float.parseFloat( lnk.mh( LinkControl. FRAC, i));
transmit(row, dest, diff, (byte)(destStart+ col), frac);
}
}
}