From 48feffd829f30d393b39ae1cbdc7bf3eddca7652 Mon Sep 17 00:00:00 2001 From: "B. Watson" Date: Wed, 18 Feb 2026 13:08:23 -0500 Subject: WIP, still not working. --- size.pl | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 size.pl (limited to 'size.pl') diff --git a/size.pl b/size.pl new file mode 100644 index 0000000..f6cb19f --- /dev/null +++ b/size.pl @@ -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() { + 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; -- cgit v1.2.3