aboutsummaryrefslogtreecommitdiff
path: root/samples/std.orgaasm
diff options
context:
space:
mode:
Diffstat (limited to 'samples/std.orgaasm')
-rw-r--r--samples/std.orgaasm27
1 files changed, 27 insertions, 0 deletions
diff --git a/samples/std.orgaasm b/samples/std.orgaasm
new file mode 100644
index 0000000..958e0d3
--- /dev/null
+++ b/samples/std.orgaasm
@@ -0,0 +1,27 @@
+@clamp ( min max a -- b )
+ /min /max RET
+
+@min ( a b -- a < b ? a : b )
+ OVR OVR LTH
+ JNZ ,min/morethan
+ SWP
+@min/morethan
+ POP
+ RET
+
+@max ( a b -- a > b ? a : b )
+ OVR OVR GTH
+ JNZ ,max/lessthan
+ SWP
+@max/lessthan
+ POP
+ RET
+
+@memcpy.n 0000
+@memcpy ( srcaddr dstaddr n -- ) ( !! doesn't work with n=0 )
+ DEC -memcpy.n STA
+ OVR OVR
+ -memcpy.n LDA
+ DUP ROT ADD SWP ROT OVR ADD LDA ROT STA
+ DUP JNZ ,memcpy
+ POP POP POP RET