diff options
author | Kyle Gunger <kgunger12@gmail.com> | 2023-05-18 23:30:18 -0400 |
---|---|---|
committer | Kyle Gunger <kgunger12@gmail.com> | 2023-05-18 23:30:18 -0400 |
commit | fe7d97a0a608398f500b1c64ff885acecf2541d5 (patch) | |
tree | 2518859272af7dc0d4e1b0a4b6f16b342d5d35f4 /tnslc/hello.tnsl | |
parent | b6cd30ba672c64f3d96aa2b0c98bc13f4c603d21 (diff) |
File reading/writing
Diffstat (limited to 'tnslc/hello.tnsl')
-rw-r--r-- | tnslc/hello.tnsl | 31 |
1 files changed, 28 insertions, 3 deletions
diff --git a/tnslc/hello.tnsl b/tnslc/hello.tnsl index 8fb98a3..0742564 100644 --- a/tnslc/hello.tnsl +++ b/tnslc/hello.tnsl @@ -1,8 +1,33 @@ :include "c_wrap.tnsl" -{}uint8 hello = "Hello World!\n\0" +{}uint8 star = "hello.tnsl\0" +{}uint8 space = " \0" +{}uint8 new_line = "\n\0" -/; main [int] - _printf(~hello{0}) +/; print_triangle (int argc) + /; loop (int i = 0; i < argc) [i++] + /; loop (int j = 0; j < argc - i) [j++] + _printf(~space{0}) + ;/ + /; loop (int j = 0; j < 1 + 2*i) [j++] + _printf(~star{0}) + ;/ + _printf(~new_line{0}) + ;/ +;/ + +/; main (int argc, ~~uint8 argv) [int] + # On windows, the first two arguments are passed in RCX and RDX, so we need to + # update their positions here or else tnsl will have garbage values in r8 and r9 + asm "mov r8, rcx" + asm "mov r9, rdx" + + # If on linux, you would use rdi and rsi instead of rcx and rdx, respectively + # simply comment out the bove asm, and uncomment the below lines + # asm "mov r8, rdi" + # asm "mov r9, rsi" + + print_triangle(argc) + return 0 ;/
\ No newline at end of file |