2 \ Multitasker Demo Program
\r
4 \ This demo is very crude, however, it shows hForth's multitasking ability.
\r
6 \ Reserve enough space for data and return stack for each task.
\r
7 \ Data stack and return stack seems to be at lease 50 CELLS deep for MS-DOS.
\r
14 0 50 CELLS 50 CELLS HAT TASK0
\r
15 0 50 CELLS 50 CELLS HAT TASK1
\r
16 0 50 CELLS 50 CELLS HAT TASK2
\r
17 0 50 CELLS 50 CELLS HAT TASK3
\r
22 :NONAME TASK0 ACTIVATE BEGIN 1000 0 DO PAUSE LOOP [CHAR] 0 EMIT AGAIN ; EXECUTE
\r
23 :NONAME TASK1 ACTIVATE BEGIN 2000 0 DO PAUSE LOOP [CHAR] 1 EMIT AGAIN ; EXECUTE
\r
24 :NONAME TASK2 ACTIVATE BEGIN 4000 0 DO PAUSE LOOP [CHAR] 2 EMIT AGAIN ; EXECUTE
\r
25 :NONAME TASK3 ACTIVATE BEGIN 8000 0 DO PAUSE LOOP [CHAR] 3 EMIT AGAIN ; EXECUTE
\r
32 CR .( Try 'TASK1 AWAKE TASK2 AWAKE' and wait for a while.)
\r
33 CR .( Try 'TASK2 SLEEP' and wait for a while and try 'TASK1 SLEEP'.)
\r
34 CR .( You will get the idea.)
\r
36 CHAR " PARSE FILE" ENVIRONMENT?
\r
38 0= [IF] << CON [THEN]
\r