25 lines
765 B
Perl
25 lines
765 B
Perl
|
#!/usr/bin/env perl
|
||
|
# SPDX-License-Identifier: GPL-2.0+
|
||
|
# (c) 2020, Andreas Kemnade
|
||
|
|
||
|
sub usage {
|
||
|
print "Usage: $0 disk epdc.fw\ndisk is the Kobo/Toline disk (image) containing a waveform\n";
|
||
|
exit(1);
|
||
|
}
|
||
|
|
||
|
&usage unless $#ARGV == 1;
|
||
|
|
||
|
open IMGFILE, '<:raw', @ARGV[0] or die "cannot open @ARGV[0]";
|
||
|
seek IMGFILE, 0x700000-16, 0;
|
||
|
read IMGFILE, $magic, 8;
|
||
|
(unpack("x0 H16", $magic) eq "fff5afff78563412") or die "invalid magic";
|
||
|
|
||
|
seek IMGFILE, 0x700000-8, 0;
|
||
|
read IMGFILE, $lengthbytes, 4;
|
||
|
$length = unpack("x0 V", $lengthbytes) or die "invalid length";
|
||
|
print $length . " bytes\n" ;
|
||
|
seek IMGFILE, 0x700000, 0 or die "seek failed, file too short?";
|
||
|
open OUTFILE, '>:raw', @ARGV[1] or die "cannot open @ARGV[1]";
|
||
|
read IMGFILE, $waveform, $length;
|
||
|
print OUTFILE $waveform;
|