aboutsummaryrefslogtreecommitdiff
path: root/size.pl
blob: 1d012bc8c0296c48b36dd67c7f25a42ec41ce0a9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/usr/bin/perl -w

my $stack_size = oct(shift) || die "no stack size";

open MAP, "<taipan.map" or die $!;
while(<MAP>) {
	next unless /^BSS/;
	(undef, $bss_start, $bss_end, undef) = split /\s+/;
	$bss_start = hex $bss_start;
	$bss_end = hex $bss_end;
}
close MAP;

$free = (0xbc20 - $stack_size) - $bss_end + 1;

printf " code ends   at \$%04x\n", ($bss_start - 1);
printf "  BSS ends   at \$%04x\n", $bss_end;
printf "stack starts at \$%04x\n", 0xbc20 - $stack_size;
printf "free code space \$%04x (%d, %.1fK)\n", $free, $free, $free / 1024;