aboutsummaryrefslogtreecommitdiff
path: root/src/micro
diff options
context:
space:
mode:
Diffstat (limited to 'src/micro')
-rw-r--r--src/micro/micro.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/micro/micro.c b/src/micro/micro.c
index f598c80..23994dd 100644
--- a/src/micro/micro.c
+++ b/src/micro/micro.c
@@ -530,6 +530,9 @@ static int run_from(int p, int s, int r)
Cell dst = m[a + 2], cap = m[a + 3];
if (dst < 0 || cap <= n || (UCell)dst > mw || (UCell)cap > mw - (UCell)dst) result = -1;
else { for (i = 0; i < n; i++) m[dst + i] = (unsigned char)text[i]; m[dst + n] = 0; result = n; }
+ } else if (b == 56) {
+ /* the return stack pointer: the word after the top return address */
+ result = r;
} else if (b == 42) {
/* poll: a streaming port suspends once, so its host can deliver input that is waiting */
result = micro_syscall(m, b, 0, 0, 0);