aboutsummaryrefslogtreecommitdiff
path: root/amforth-6.5/common/lib/forth2012/blocks/load.frt
diff options
context:
space:
mode:
Diffstat (limited to 'amforth-6.5/common/lib/forth2012/blocks/load.frt')
-rw-r--r--amforth-6.5/common/lib/forth2012/blocks/load.frt20
1 files changed, 20 insertions, 0 deletions
diff --git a/amforth-6.5/common/lib/forth2012/blocks/load.frt b/amforth-6.5/common/lib/forth2012/blocks/load.frt
new file mode 100644
index 0000000..55cd14b
--- /dev/null
+++ b/amforth-6.5/common/lib/forth2012/blocks/load.frt
@@ -0,0 +1,20 @@
+\ load a block and evaluate its content
+\
+: source-block1
+ blk1-buffer blocksize
+;
+
+: load ( i*x n -- j*y )
+ ['] source defer@ >r >in @ >r
+ 0 >in !
+ buffer drop
+ ['] source-block1 is source
+ ['] interpret catch
+ r> >in ! r> is source
+ throw
+;
+
+
+: thru ( i*x n1 n2 -- j*y )
+ 1+ swap ?do i load loop
+;