summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/std.kurt45
1 files changed, 45 insertions, 0 deletions
diff --git a/lib/std.kurt b/lib/std.kurt
new file mode 100644
index 0000000..b247604
--- /dev/null
+++ b/lib/std.kurt
@@ -0,0 +1,45 @@
+;; Currently makro stack notation is ignored by the compiler.
+makro stdout 1 son
+makro sys-write 1 son
+makro write (fd string -- )
+ değiş sys-write syscall-3
+son
+
+makro sys-exit 60 son
+makro çık (çıkış-kodu -- )
+ sys-exit syscall-1
+son
+
+makro / (a b -- (a / b)) divmod düş son
+makro % (a b -- (a % b)) divmod değiş düş son
+makro 2eş (a b -- a b a b) üst üst son
+
+makro load64 (bel -- a)
+ 7 + 0
+ 8 << üst oku + değiş 1 - değiş
+ 8 << üst oku + değiş 1 - değiş
+ 8 << üst oku + değiş 1 - değiş
+ 8 << üst oku + değiş 1 - değiş
+ 8 << üst oku + değiş 1 - değiş
+ 8 << üst oku + değiş 1 - değiş
+ 8 << üst oku + değiş 1 - değiş
+ 8 << üst oku + değiş düş
+son
+
+makro byte-max 255 son ;; 2^8 - 1 = 255
+makro store64 (bel a -- )
+ 2eş byte-max & yaz 8 >> değiş 1 + değiş
+ 2eş byte-max & yaz 8 >> değiş 1 + değiş
+ 2eş byte-max & yaz 8 >> değiş 1 + değiş
+ 2eş byte-max & yaz 8 >> değiş 1 + değiş
+ 2eş byte-max & yaz 8 >> değiş 1 + değiş
+ 2eş byte-max & yaz 8 >> değiş 1 + değiş
+ 2eş byte-max & yaz 8 >> değiş 1 + değiş
+ 2eş byte-max & yaz 8 >> düş düş
+son
+
+makro strlen (ptr -- len)
+ 0 değiş döngü eş oku iken
+ 1 + değiş 1 + değiş
+ yap düş
+son