#!/usr/bin/perl
##
## legOS - the independent LEGO Mindstorms OS
## util/merge-map - merge a map file with disassembly
## (c) 1998 by Markus L. Noga <noga@inrialpes.fr>
##

# read symbols
$mapname=shift;
open MAP,"<$mapname" || die "Cannot open map file.\n";

while($line=<MAP>) {
  chop $line;
  $line=~/0000([0-9a-fA-F]+) . (.+)/;
  if(!$symbols{$1}) {
    $symbols{$1}=$2;
  }
}

close MAP;


# read and comment disassembly
$disname=shift;
open DIS,"<$disname" || die "Cannot open disassembly.\n";

while($line=<DIS>) {
 if($line=~/0x([0-9a-fA-F]+)/) {
   if($symbols{$1}) {
     $line=~s/0x([0-9a-fA-F]+):*[0-9]*/$symbols{$1}/;
   }
 } elsif($line=~/\(([0-9a-fA-F]+)\)/) {
   if($symbols{$1}) {
     $line=~s/\(([0-9a-fA-F]+)\)/($symbols{$1})/;
   }
 }
 print $line;
}

close DIS;

