#!/usr/bin/perl

open IN1,"gier.debug";
open IN2,"0.asc";

$l1=<IN1>;
$l1=<IN1>;
$l1=<IN1>;

$started1=0;
$started2=0;
$done1=0;
$done2=0;
$lasttd=-1;

while(1)
{
  while($l1 = <IN1>)
  {
    chomp($l1);
#   print "l1: $l1\n";

    if($l1 =~ /^\s+(.*?):\s*?\d (\d{10}) (\d{10}) (\d{10}) (\d{10}) /)
    {
      $reg = $1;
      $r1 = $2;
      $r2 = $3;
      $r3 = $4;
      $r4 = $5;
      $reg = "ADDER" if($reg eq "H-MD" || $reg eq "H+MD");
#   print "$reg: $r1 $r2 $r3 $r4\n";
      $regs1->{$reg} = "$r1 $r2 $r3 $r4";
      $done1=1 if($started1 && $mode1==4);
      last if($reg eq "ADDER" && $started1);
    }
    elsif($l1 =~ /^Mode(\d): MA=(\d+).*?TD: (\d+)$/)
    {
      $mode1 = $1;
      $ma1 = $2;
      $TD1 = $3;
      if(!$started1)
      {
	if($mode1==2 && $ma1 eq "01")
	{
	  $started1=1;
#  print "started1\n";
	}
      }
	
    }
  }
  while($l2 = <IN2>)
  {
    chomp($l2);
#   print "l2: $l2\n";

    if($l2 =~ /^#029/)
    {
      $done2=1;
    }
    elsif($l2 =~ /^\s+(.*?):\s*?\d (\d{10}) (\d{10}) (\d{10}) (\d{10}) /)
    {
      $reg = $1;
      $r1 = $2;
      $r2 = $3;
      $r3 = $4;
      $r4 = $5;
      $reg = "ADDER" if($reg eq "H-MD" || $reg eq "H+MD");
#   print "$reg: $r1 $r2 $r3 $r4\n";
      $regs2->{$reg} = "$r1 $r2 $r3 $r4";
      last if($reg eq "ADDER" && $started2);
    }
    elsif($l2 =~ /^Mode(\d): MA=(\d+).*?TD: (\d+)$/)
    {
      $mode2 = $1;
      $ma2 = $2;
      $TD2 = $3;
      if(!$started2)
      {
	if($mode2==2 && $ma2 eq "01")
	{
	  $started2=1;
#  print "started2\n";
	}
      }
    }
  }
#3 20 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000001101 0000000000 0000000000 0000000000 0000000000 0000000000 0000001100 0000000000 0000000000"
  printf "%2d %2s %2d %2s\n",$mode1,$ma1,$mode2,$ma2;
  print "AC    ".$regs1->{"AC"}." ".$regs2->{"AC"};
  print (($regs1->{"AC"} eq $regs2->{"AC"})?"\n":"  BAD\n");
  print "MQ    ".$regs1->{"MQ"}." ".$regs2->{"MQ"};
  print (($regs1->{"MQ"} eq $regs2->{"MQ"})?"\n":"  BAD\n");
  print "H     ".$regs1->{"H"}." ".$regs2->{"H"};
  print (($regs1->{"H"} eq $regs2->{"H"})?"\n":"  BAD\n");
  print "MD    ".$regs1->{"MD"}." ".$regs2->{"MD"};
  print (($regs1->{"MD"} eq $regs2->{"MD"})?"\n":"  BAD\n");
  print "ADDER ".$regs1->{"ADDER"}." ".$regs2->{"ADDER"};
  print (($regs1->{"ADDER"} eq $regs2->{"ADDER"})?"\n":"  BAD\n");
  print "\n";
  last if($done1&&$done2);
}


