From 5e9f115e2d938a47a3d3db42188b837d4b57891a Mon Sep 17 00:00:00 2001 From: kdx Date: Sat, 10 Jun 2023 17:40:16 +0200 Subject: that was kinda stupid --- run.sh | 2 +- samples/helloworld.golem | 21 ++++++++++++--------- src/main.c | 3 ++- 3 files changed, 15 insertions(+), 11 deletions(-) diff --git a/run.sh b/run.sh index fefffa3..614342f 100755 --- a/run.sh +++ b/run.sh @@ -1,6 +1,6 @@ #!/bin/sh tup -q || exit 1 ./build/golem "$1" >build/tmp.orgaasm || exit 1 -orgaasm build/tmp.orgaasm build/tmp.rom || exit 1 +orgaasm build/tmp.orgaasm build/tmp.rom -v || exit 1 orgaemu build/tmp.rom #rm -f build/tmp.* diff --git a/samples/helloworld.golem b/samples/helloworld.golem index 5ddde54..6609a51 100644 --- a/samples/helloworld.golem +++ b/samples/helloworld.golem @@ -1,6 +1,9 @@ global str[32]; +global str_i = 0; main() { + local i; + strappend('H'); strappend('e'); strappend('l'); @@ -15,18 +18,18 @@ main() { strappend('!'); strappend('\n'); - print(str); -} - -strappend(c) { - local s; - s = str; + i = 0; loop { - if ([s] == 0) + i = i + 1; + if (i > 9) break; - s = s + 1; + print(str); } - [s] = c; +} + +strappend(c) { + [str+str_i] = c; + str_i = str_i + 1; } print(s) { diff --git a/src/main.c b/src/main.c index 7829547..3dff1fe 100644 --- a/src/main.c +++ b/src/main.c @@ -975,7 +975,8 @@ main(int argc, char **argv) Node *node = parse(tok); - printf("\tJMP ,__fn_main ( entry point )\n"); + printf("\tJRT ,__fn_main ( entry point )\n"); + printf("\tRET\n"); codegen(node); printf("@__stack_ptr\n"); -- cgit v1.2.3