#!/usr/bin/perl

sub get10
{
  my $R=$_[0];
  return(($R>>30)&1023);
}

sub unminus
{
  my $R=$_[0];
  if($R<0)
  {
    $R+=1<<40;
  }
  return $R;
}

open IN,"gier.debug";

$lasta1=-1;
$lasta2=-1;

$lineno=0;

while($l = <IN>)
{
  $lineno++;
  chomp($l);

  if($l =~ /^Writing (\d+): (\d+) =/)
  {
    $Ferrit[$1] = unminus($2);
  }
  elsif($l =~ /   AC: \d \d{10} \d{10} \d{10} \d{10} \d\d\s+(-?\d+) /)
  {
    $AC=unminus($1);
  }
  elsif($l =~ /   MQ: \d \d{10} \d{10} \d{10} \d{10} \d\d\s+(-?\d+) /)
  {
    $MQ=unminus($1);
  }
  elsif($l =~ /^Execute\[([0-9h]+)]/)
  {
    $r1 = $1;
    if($r1 eq "24")
    {
      $a1 = get10($AC);
    }
    elsif($r1 eq "69")
    {
      $maxdig=$AC;
      print "maxdig: $maxdig\n";
    }
    elsif($r1 eq "33")
    {
      $a2 = get10($AC);
      print "$lineno $a1 $a2";
      if($a1==$lasta1)
      {
	$d=$a2-$lasta2;
	if($d != 1)
	{
	  print "  $maxdig $d";
	}
      }
      print "\n";
      $lasta1 = $a1;
      $lasta2 = $a2;
    }
  }
}


