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!!!