From 8d0c5f3302c847c5c2177c23fa8d5925067a4e58 Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Tue, 6 Jun 2006 15:29:14 +0000 Subject: [PATCH] Use byte 6 for the checksum, rather than byte 5. (Byte 5 may be part of the jmp instruction). --- src/util/makerom.pl | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/src/util/makerom.pl b/src/util/makerom.pl index 9d751e19..2bd8e1f9 100755 --- a/src/util/makerom.pl +++ b/src/util/makerom.pl @@ -131,9 +131,9 @@ sub writerom ($$) { sub checksum ($) { my ($romref) = @_; - substr($$romref, 5, 1) = "\x00"; + substr($$romref, 6, 1) = "\x00"; my $sum = unpack('%8C*', $$romref); - substr($$romref, 5, 1) = chr(256 - $sum); + substr($$romref, 6, 1) = chr(256 - $sum); # Double check $sum = unpack('%8C*', $$romref); if ($sum != 0) { @@ -168,14 +168,10 @@ sub makerom () { $romsize = ($filesize + 511) & ~511 } } else { - $romsize = getromsize(\$rom); - # 0 put there by *loader.S means makerom should pick the size - if ($romsize == 0) { - # Shrink romsize down to the smallest power of two that will do - for ($romsize = MAXROMSIZE; - $romsize > MINROMSIZE and $romsize >= 2*$filesize; - $romsize /= 2) { } - } + # Shrink romsize down to the smallest power of two that will do + for ($romsize = MAXROMSIZE; + $romsize > MINROMSIZE and $romsize >= 2*$filesize; + $romsize /= 2) { } } if ($filesize > $romsize) { print STDERR "ROM size of $romsize not big enough for data, ";