interpreter

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

commit 26da1a36ce0af3aea605beb209f992dbeb85f15e
parent 8e1359f99e390c7e6b8dce0953b439674d00f144
Author: Samdal <samdal@protonmail.com>
Date:   Sat, 20 Apr 2024 14:14:18 +0200

update readme

Diffstat:
MREADME.md | 17++++++++++++++++-
1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/README.md b/README.md @@ -3,13 +3,28 @@ Implementation of AWA5.0: - https://github.com/TempTempai/AWA5.0 currently tested on hello world, fibonacci script, binary->awatalk, and string->awatalk code. Hopefully it works. -### Compiling +### compiling The program only needs libc as a dependency, it's a terminal program. So just compile with for example: - unix: `cc main.c -o awaparser` - windows: `cl /Fe: awaparser.exe main.c` +### additional opcodes: +- syscall 'sys u10' (0x15)\ +'~wa awawa awawa **awa awa awa awa awa awa awa awawa**' (syscall 1, write) +> The provided u10 is which syscall that will be used\ +> The instruction looks at the top most bubble, it must be a double bubble.\ +> The double bouble contains the arguments (arg1, arg2, arg3...arg6).\ +> The number of arguments depends on the syscall.\ +> A double bouble inside a double bouble is interpreted as a raw byte array\ +> And a pointer to that raw byte array is provided as the argument.\ +> Example: (arg1, (byte1, byte2, byte3, byte4), arg3)\ +> The double bubble used as the argument is NOT popped, as return values might be placed in byte arrays (NOT IMPLEMENTED)\ +> The return value of the syscall is placed at the top of the stack. +- double pop 'p0p' (0x16)\ +'~wa awawa awa awa' +> Same as pop except double boubles are deleted instead of being released into the bubble abyss ### usage ``` command line options: