Skip to content

Commit 79c8e0d

Browse files
author
Csaba Fekete
committed
Fixes #276 Additional info in compiler output
1 parent 25efed0 commit 79c8e0d

1 file changed

Lines changed: 7 additions & 3 deletions

File tree

source/app.d

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -338,7 +338,7 @@ private void displayHelp(int exitCode, string errorMsg = "")
338338
stdout.writeln(errorMsg ~
339339
`
340340
XC=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)
342342
Usage: xcbasic3 [options] <inputfile> <outputfile> [options]
343343
Options:
344344
-t
@@ -402,7 +402,7 @@ private void checkLibrary()
402402
*/
403403
private 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

Comments
 (0)