aboutsummaryrefslogtreecommitdiff
path: root/amforth-6.5/tests/multitask-test.frt
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2017-08-19 12:15:28 +0200
committerDimitri Sokolyuk <demon@dim13.org>2017-08-19 12:15:28 +0200
commit67d25d837ac55f28a366c0a3b262e439a6e75fc3 (patch)
treedf7715c7724c5935ab87c807f3b8b4ef529315e3 /amforth-6.5/tests/multitask-test.frt
parente0d6784e89dba33226c0edb815bb974486fa7c48 (diff)
Add AmForth
Diffstat (limited to 'amforth-6.5/tests/multitask-test.frt')
-rw-r--r--amforth-6.5/tests/multitask-test.frt45
1 files changed, 45 insertions, 0 deletions
diff --git a/amforth-6.5/tests/multitask-test.frt b/amforth-6.5/tests/multitask-test.frt
new file mode 100644
index 0000000..a479280
--- /dev/null
+++ b/amforth-6.5/tests/multitask-test.frt
@@ -0,0 +1,45 @@
+\ lib/multitask-test.frt
+
+$38 constant PORTB
+$37 constant DDRB
+
+include lib/multitask.frt \ load the multitasker
+
+: ms ( n -- ) \ call pause on wait
+ 0 ?do pause 1ms loop ;
+
+ \ create a persistent task
+variable N
+: init
+ $ff PORTB c! \ portB: all pins high
+ $ff DDRB c! \ all pins output
+ 0 N !
+;
+\ --- task 2 ---
+: run-demo
+ begin
+ N @ invert PORTB c!
+ 1 N +!
+ &500 ms
+ again
+;
+$40 $40 0 task: task_demo \ create task space
+: start-demo
+ task_demo tcb>tid
+ activate \ words after this line are run in new task
+ run-demo
+;
+: starttasker
+ task_demo task-init \ create TCB in RAM
+ start-demo \ activate tasks job
+
+ onlytask \ make cmd loop task-1
+ task_demo tcb>tid alsotask \ start task-2
+ multi \ activate multitasking
+;
+: run-turnkey
+ applturnkey
+ init
+ starttasker
+;
+' run-turnkey is turnkey \ make run-turnkey start on power up