The unified diff between revisions [266fa6a6..] and [0a96338c..] is displayed below. It can also be downloaded as a raw diff.
This diff has been restricted to the following files: 'disassem.pl'
# # old_revision [266fa6a67e73f67581c4c8844d4ec9b62b10da46] # new_revision [0a96338c7403840a62be9a2bee24166bd7688563] # # patch "disassem.pl" # from [547116c9df493de3ef5ba8b453f4070068afb1be] # to [e3a1f4e8b00b7939176a50bbba8005966bc2739e] # ============================================================ --- disassem.pl 547116c9df493de3ef5ba8b453f4070068afb1be +++ disassem.pl e3a1f4e8b00b7939176a50bbba8005966bc2739e @@ -1,4 +1,4 @@ -#!/usr/pkg/bin/perl +#!/usr/bin/env perl open FILE, "input.bin" or die $!; @@ -63,7 +63,7 @@ if (open LABELS, "<input.labels") { $addr = hex $addr; $labels{$addr} = $name; if ($name =~ /^L(\d+)$/) { - $labelnum = $1 + 1 if ($labelnum >= $1); + $labelnum = $1 + 1 if ($1 >= $labelnum); } } } @@ -77,12 +77,12 @@ $output = 0; 0x01 => "PDR1", 0x02 => "PDR2", 0x03 => "PDR3", - 0x04 => "PDR3", - 0x05 => "PDR3", - 0x06 => "PDR3", - 0x07 => "PDR3", - 0x08 => "PDR3", - 0x09 => "PDR3", + 0x04 => "PDR4", + 0x05 => "PDR5", + 0x06 => "PDR6", + 0x07 => "PDR7", + 0x08 => "PDR8", + 0x09 => "PDR9", 0x0A => "PDRA", 0x11 => "DDR1", 0x12 => "DDR2", @@ -158,9 +158,9 @@ $output = 0; 0xB9 => "ICR09", 0xBA => "ICR10", 0xBB => "ICR11", - 0xBC => "ICR22", - 0xBD => "ICR33", - 0xBE => "ICR44", + 0xBC => "ICR12", + 0xBD => "ICR13", + 0xBE => "ICR14", 0xBF => "ICR15", # Specific to LC2412 0xC0 => "KEY0", @@ -210,7 +210,7 @@ foreach my $addr (sort keys %labels) { open LABELS, ">input.labels" or die $!; foreach my $addr (sort keys %labels) { - printf LABELS "%s: %.6x\n", $labels{$addr}, $addr + printf LABELS "%s: %06x\n", $labels{$addr}, $addr if defined($labels{$addr}); } @@ -1550,7 +1550,12 @@ sub read_operand_addr24 my $addr = $byte1; $addr += $byte2 << 8; $addr += $byte3 << 16; - set_operand(sprintf("0x%.6x", $addr)); + if ($branch) { + set_operand(sprintf("%s", get_label($addr))); + add_comment(sprintf("0x%.6x", $addr)); + } else { + set_operand(sprintf("0x%.6x", $addr)); + } } ## ASSUMPTION: This is always the last operand!!!