1 #!/usr/bin/perl 2 # 3 # $Id$ 4 # 5 # Read output file from as86 (e.g. rombios.txt) and write out a symbol 6 # table suitable for the Bochs debugger. 7 # 8 9 $WHERE_BEFORE_SYM_TABLE = 0; 10 $WHERE_IN_SYM_TABLE = 1; 11 $WHERE_AFTER_SYM_TABLE = 2; 12 13 $where = $WHERE_BEFORE_SYM_TABLE; 14 while (<STDIN>) { 15 chop; 16 if ($where == WHERE_BEFORE_SYM_TABLE && /^Symbols:/) { 17 $where = $WHERE_IN_SYM_TABLE; 18 } elsif ($where == $WHERE_IN_SYM_TABLE && /^$/) { 19 $where = $WHERE_AFTER_SYM_TABLE; 20 } 21 if ($where == $WHERE_IN_SYM_TABLE) { 22 @F = split (/\s+/); 23 ($name[0], $junk, $addr[0], $junk, $name[1], $junk, $addr[1]) = @F; 24 foreach $col (0,1) { 25 next if length $addr[$col] < 1; 26 $addr[$col] =~ tr/A-Z/a-z/; 27 $addr[$col] = "000f" . $addr[$col]; 28 print "$addr[$col] $name[$col]\n"; 29 } 30 } 31 } 32