@@ -338,7 +338,7 @@ private void displayHelp(int exitCode, string errorMsg = "")
338338 stdout.writeln(errorMsg ~
339339`
340340XC=BASIC compiler version ` ~ APP_VERSION ~ " (" ~ __DATE__ ~ " )" ~ `
341- Copyright (c) 2019-2022 by Csaba Fekete (see LICENSE)
341+ Copyright (c) 2019-` ~ __DATE__ [ 7 .. 11 ] ~ ` by Csaba Fekete (see LICENSE)
342342Usage: xcbasic3 [options] <inputfile> <outputfile> [options]
343343Options:
344344 -t
@@ -402,7 +402,7 @@ private void checkLibrary()
402402 */
403403private int [string ] getSymbols (string tmpSymbolfile)
404404{
405- const string [] symbolNames = [" prg_start" , " library_start" , " data_start" , " vars_start" , " vars_end" ];
405+ const string [] symbolNames = [" prg_start" , " library_start" , " data_start" , " vars_start" , " vars_end" , " STACKFRAME_TOP " ];
406406 int [string ] symbols;
407407 auto lines = slurp! (string , string , string )(tmpSymbolfile, " %s %s %s" );
408408 foreach (key, value; lines) {
@@ -433,7 +433,7 @@ private void displayInformation(string tmpSymbolfile)
433433 }
434434 stdout.writeln(" |Program code | $" ~ asHex(symbols[" prg_start" ]) ~ " | $" ~ asHex(symbols[" library_start" ] - 1 ) ~ " |" );
435435 if (symbols[" data_start" ] > symbols[" library_start" ]) {
436- stdout.writeln(" |Library | $" ~ asHex(symbols[" library_start" ]) ~ " | $" ~ asHex(symbols[" data_start" ] - 1 ) ~ " |" );
436+ stdout.writeln(" |Runtime lib. | $" ~ asHex(symbols[" library_start" ]) ~ " | $" ~ asHex(symbols[" data_start" ] - 1 ) ~ " |" );
437437 }
438438 if (symbols[" vars_start" ] > symbols[" data_start" ]) {
439439 stdout.writeln(" |Data & Strings | $" ~ asHex(symbols[" data_start" ]) ~ " | $" ~ asHex(symbols[" vars_start" ] - 1 ) ~ " |" );
@@ -442,6 +442,10 @@ private void displayInformation(string tmpSymbolfile)
442442 stdout.writeln(" |Variables* | $" ~ asHex(symbols[" vars_start" ]) ~ " | $" ~ asHex(symbols[" vars_end" ] - 1 ) ~ " |" );
443443 hasVars = true ;
444444 }
445+ uint stack_top = symbols[" STACKFRAME_TOP" ] - 1 ;
446+ uint str_workarea = stack_top + 256 ;
447+ stdout.writeln(" |Function stack*| ????? | $" ~ asHex(stack_top) ~ " | " );
448+ stdout.writeln(" |String stack* | $" ~ asHex(str_workarea - 255 ) ~ " | $" ~ asHex(str_workarea) ~ " | " );
445449 stdout.writeln(separator);
446450 if (hasVars) {
447451 stdout.writeln(" (*) Uninitialized segment." );
0 commit comments