aboutsummaryrefslogtreecommitdiff
path: root/sts/common/print.sts
diff options
context:
space:
mode:
Diffstat (limited to 'sts/common/print.sts')
-rw-r--r--sts/common/print.sts30
1 files changed, 30 insertions, 0 deletions
diff --git a/sts/common/print.sts b/sts/common/print.sts
new file mode 100644
index 0000000..a3bea56
--- /dev/null
+++ b/sts/common/print.sts
@@ -0,0 +1,30 @@
+defword get_hex
+ f and
+ dup 9 > if
+ a - 'a' +
+ else
+ '0' +
+ fi
+exit
+
+defword print_hex
+ dup 1c shr get_hex sys_write
+ dup 18 shr get_hex sys_write
+ dup 14 shr get_hex sys_write
+ dup 10 shr get_hex sys_write
+ dup c shr get_hex sys_write
+ dup 8 shr get_hex sys_write
+ dup 4 shr get_hex sys_write
+ get_hex sys_write
+exit
+
+defword print_stack
+ dup
+ do
+ over over - 2 + get print_hex
+ 1 - dup 0 = until
+ space sys_write
+ od newline sys_write
+ drop
+ drop
+exit