From 67d25d837ac55f28a366c0a3b262e439a6e75fc3 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Sat, 19 Aug 2017 12:15:28 +0200 Subject: Add AmForth --- amforth-6.5/examples/sierpinsi.frt | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 amforth-6.5/examples/sierpinsi.frt (limited to 'amforth-6.5/examples/sierpinsi.frt') diff --git a/amforth-6.5/examples/sierpinsi.frt b/amforth-6.5/examples/sierpinsi.frt new file mode 100644 index 0000000..19fe920 --- /dev/null +++ b/amforth-6.5/examples/sierpinsi.frt @@ -0,0 +1,26 @@ +\ Sierpinski fractal +\ richard.w@gmail.com, clf 13.2.2015 + +\ additional words from the forth lib +\ #require buffer.frt +\ #require blank.frt +\ #require chars.frt + +64 constant size +char * constant '*' +size buffer: line[] + +line[] size blank '*' size 2/ chars line[] + c! ( init ) + +: .line[] ( -- ) line[] size type cr ; +: =*? ( addr -- f ) c@ '*' = ; +: >char ( f f -- ch ) xor [ '*' bl - ] literal and bl + ; +: init-flags ( -- f-1 f0 ) 0 line[] =*? ; +: sierp-line ( -- ) init-flags line[] size bounds do + i 1 chars + =*? rot over >char i c! + loop 2drop ; +: sierpinski ( -- ) size 2/ 0 do .line[] sierp-line loop ; + +\ +\ sierpinski prints the fractal on the terminal +\ \ No newline at end of file -- cgit v1.2.3