makechart3.pl.txt

binmode STDIN;

print << "HEADER";

<HTML>

<HEAD><TITLE>SC-88 Pro tone names list</TITLE></HEAD>

<BODY>

<H3>SC-88 Pro tone names list</H3>

<TABLE BORDER="1">

<TR><TH>PC</TH><TH>CC0</TH><TH>map</TH><TH>name</TH></TR>

HEADER

@model = ("","55","88","Pro");

undef $/;

$buf = <>;

$pmax = length($buf);

for ($p = 0; $p < $pmax; $p += 16) {

($cc0_,$map_,$pc_,$name_) = unpack("CCCxA12",substr($buf,$p,16));

$k_ = substr("00".$pc_, length($pc_) - 1, 3) .

substr("00".$cc0_, length($cc0_) - 1, 3) .

substr("00".$map_, length($map_) - 1, 3);

$pc{$k_} = $pc_;

$cc0{$k_} = $cc0_;

$map{$k_} = $map_;

$name{$k_} = $name_;

push(@ky, $k_);

}

@ky = sort {$a <=> $b} @ky;

foreach (@ky) {

$pc = $pc{$_}++;

print "<TR><TD>$pc</TD><TD>$cc0{$_}</TD><TD>$model[$map{$_}]</TD><TD>$name{$_}</TD></TR>\n";

}

print << "FOOTER";

</TABLE>

</BODY>

</HTML>

FOOTER