diff options
Diffstat (limited to 'size.pl')
| -rw-r--r-- | size.pl | 26 |
1 files changed, 26 insertions, 0 deletions
@@ -0,0 +1,26 @@ +#!/usr/bin/perl -w + +# from src/atari.cfg: +my $code_start = 0x2000; +my $stack_size = 0x0800; + +# from memsetup.asm: +my $ramtop = 0xa000; + +open MAP, "client.xex.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 = ($ramtop - $stack_size) - $bss_end + 1; +$code_size = $bss_start - $code_start; +$bss_size = $bss_end - $bss_start + 1; + +printf "===> code ends at \$%04x (%d, %.1fK)\n", ($bss_start - 1), $code_size, $code_size / 1024; +printf "===> BSS ends at \$%04x (%d, %.1fK)\n", $bss_end, $bss_size, $bss_size / 1024; +printf "===> stack starts at \$%04x\n", $ramtop - $stack_size; +printf "===> free code space \$%04x (%d, %.1fK)\n", $free, $free, $free / 1024; |
