The unified diff between revisions [abcf284a..] and [34f8050e..] 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 [abcf284afd29d344048f9b85810ae6c45a749373] # new_revision [34f8050e1dacbf46115264d7077d7a0098397e5f] # # patch "disassem.pl" # from [0c00d5d43fc3648c697a2380e358275828b2e5b9] # to [02870da1e88f2384ce53dafaa61e56202225c42d] # ============================================================ --- disassem.pl 0c00d5d43fc3648c697a2380e358275828b2e5b9 +++ disassem.pl 02870da1e88f2384ce53dafaa61e56202225c42d @@ -56,6 +56,21 @@ $labelnum = 0; %labels = {}; $labelnum = 0; +if (open LABELS, "<input.labels") { + while (<LABELS>) { + chomp; + if (($name, $addr) = /(.*): (.*)/) { + $addr = hex $addr; + $labels{$addr} = $name; + if ($name =~ /^L(\d+)$/) { + $labelnum = $1 + 1 if ($labelnum >= $1); + } + } + } +} + +close LABELS; + $output = 0; %io = ( @@ -147,6 +162,20 @@ $output = 0; 0xBD => "ICR33", 0xBE => "ICR44", 0xBF => "ICR15", +# Specific to LC2412 + 0xC0 => "KEY0", + 0xC1 => "KEY1", + 0xC2 => "KEY2", + 0xC3 => "KEY3", + 0xC4 => "KEY4", + 0xC5 => "LEDC", + 0xC6 => "LCD", + 0xC8 => "PC_ADL", + 0xC9 => "PC_ADM", + 0xCA => "PC_ADH", + 0xCB => "PC_DW", + 0xCC => "PC_DR", + 0xCD => "PC_CR", ); @@ -178,6 +207,15 @@ for my $pass (0..1) { } } +open LABELS, ">input.labels" or die $!; + +foreach my $addr (sort keys %labels) { + printf LABELS "%s: %.6x\n", $labels{$addr}, $addr + if defined($labels{$addr}); +} + +close LABELS; + sub disassemble { my ($start) = @_;