From 7d8d442d3561d136d7b14082413643fa374750f2 Mon Sep 17 00:00:00 2001 From: crc Date: Wed, 11 Dec 2019 18:10:57 +0000 Subject: [PATCH] add a ^ prefix FossilOrigin-Name: 5723f858deedf26c1cf95df3f9a68438619b9a52d1c2ae20577d965ac6dfedf8 --- image/retro.forth | 7 +- ngaImage | Bin 38508 -> 38568 bytes vm/nga-c/retro-image.c | 1304 ++++++++++++++++++++-------------------- 3 files changed, 655 insertions(+), 656 deletions(-) diff --git a/image/retro.forth b/image/retro.forth index ec89c23..fde94a3 100644 --- a/image/retro.forth +++ b/image/retro.forth @@ -226,10 +226,9 @@ It's sometimes useful to inline values directly. I use a backtick prefix for this. ~~~ -:prefix:` (s-) - s:to-number , ; immediate -:prefix:\ - i ; immediate +:prefix:` (s-) s:to-number , ; immediate +:prefix:\ (s-) i ; immediate +:prefix:^ (s-) r ; immediate ~~~ It's traditional to have a word named `here` which returns the diff --git a/ngaImage b/ngaImage index 3adbc7eb7f3dd9807a703fc39bf4c2f27ebcd856..c16beb48897ac16e95a3a8627ab4ef87822b8f88 100644 GIT binary patch literal 38568 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 S*SE0q+DxY%fm_em_J08FvzIae literal 38508 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