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/common/lib/multitask-semaphore.frt | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 amforth-6.5/common/lib/multitask-semaphore.frt (limited to 'amforth-6.5/common/lib/multitask-semaphore.frt') diff --git a/amforth-6.5/common/lib/multitask-semaphore.frt b/amforth-6.5/common/lib/multitask-semaphore.frt new file mode 100644 index 0000000..3b9cca4 --- /dev/null +++ b/amforth-6.5/common/lib/multitask-semaphore.frt @@ -0,0 +1,15 @@ +\ Semaphores (Source: B. Rodriguez) +\ cvariable sem1 +\ : read sem1 wait do-something sem1 signal ; +\ do-something has the ressource controlled by sem1 exlusivly +\ wait can be used to communicate with interrupt service routines too +\ +: wait ( addr - ) + begin pause dup c@ until \ wait for non-zero = available + 0 swap c! +; + +: signal ( addr -- ) + 1 swap c! \ non-zero means available +; + -- cgit v1.2.3