diff options
| author | B. Watson <urchlay@slackware.uk> | 2026-04-14 07:47:27 -0400 |
|---|---|---|
| committer | B. Watson <urchlay@slackware.uk> | 2026-04-14 07:47:27 -0400 |
| commit | 2ce1d0d8a2e7f79e1bb008836a4dca48adba867e (patch) | |
| tree | 308170a8db86ed8be5169267f50518e5963330ed /size.pl | |
| parent | be048d3184d451c76cf56dd706be8d087c477d77 (diff) | |
| download | fujinet-chat-2ce1d0d8a2e7f79e1bb008836a4dca48adba867e.tar.gz | |
Diffstat (limited to 'size.pl')
| -rw-r--r-- | size.pl | 29 |
1 files changed, 17 insertions, 12 deletions
@@ -1,26 +1,31 @@ #!/usr/bin/perl -w # from src/atari.cfg: -my $code_start = 0x2000; my $stack_size = 0x0100; +my $p20_start = 0x2000; +my $p20_end = 0x3360; # from memsetup.asm: -my $ramtop = 0x8000; +my $ramtop = 0xc000; 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; + next unless /^[A-Z]+\s+[0-9A-F]{6} /; + ($name, $start, $end, $size) = split /\s+/; + $name = lc $name; + $start{$name} = hex $start; + $end{$name} = hex $end; + $size{$name} = hex $size; } close MAP; -$free = ($ramtop - $stack_size) - $bss_end + 1; -$code_size = $bss_start - $code_start; -$bss_size = $bss_end - $bss_start + 1; +$free_hi = ($ramtop - $stack_size) - $end{code} + 1; +$code_size = $size{code}; +$p20_free = $p20_end - $end{bss} + 1; +$p20_size = $end{bss} - $p20_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; +printf "===> code ends at \$%04x (size %d, %.1fK)\n", $end{code}, $code_size, $code_size / 1024; +printf "===> data ends at \$%04x (size %d, %.1fK)\n", $end{bss}, $p20_size, $p20_size / 1024; +printf "===> free code space \$%04x (%d, %.1fK)\n", $free_hi, $free_hi, $free_hi / 1024; +printf "===> free data space \$%04x (%d, %.1fK)\n", $p20_free, $p20_free, $p20_free / 1024; |
