Project

General

Profile

#!/usr/bin/perl -w
use strict;

my $section;
my $program = 0;
my %bytype;
my $type;
my $pos = -1;
while (<>)
{
if (/Max 10 (.*)/)
{
$section = $1;
$program = 0;
if ($section=~/^Program (....)$/)
{
$program = 1;
$type = $1;
$bytype{$type} = "";
$pos = -1;
}
}
if ($program and /SDR 32 TDI \(([A-F0-9]+)\);/)
{
$bytype{$type} = $bytype{$type}.$1;
$pos = $pos + length($1)/2;
}
if ($program and /SDR 23 TDI \((.*?)\);/)
{
my $count = $1;
my $count2 = unpack "H*", pack 'B*', unpack 'b*', pack("H*",$count);
$count2 =~ /(..)(..)(..)/;
$count2 = "$3$2$1";

my $count2dec = hex($count2)*2;
if ($pos<1)
{
$pos = $count2dec;
}
else
{
print "Pos:$pos ";
my $adj = $count2dec-$pos;
$pos = $pos+$adj;
my $skip = "F"x($adj*2);
$bytype{$type} = $bytype{$type}.$skip;

print " adj:$adj req:$count2dec\n";
}
print "$type seek to $count2($count2dec) -> $pos\n";
}
}

foreach (keys %bytype)
{
print "$_:".length($bytype{$_})."\n";
open OUT,">$_.bin";
binmode(OUT);

print OUT pack 'B*', unpack 'b*', pack("H*",$bytype{$_});
#print OUT pack("H*",$bytype{$_});
close(OUT);
}

(3-3/7)