tasks a-s
This commit is contained in:
parent
47bf37c096
commit
b83f433714
12433 changed files with 156208 additions and 123 deletions
22
Task/Queue-Definition/Forth/queue-definition.fth
Normal file
22
Task/Queue-Definition/Forth/queue-definition.fth
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
1024 constant size
|
||||
create buffer size cells allot
|
||||
here constant end
|
||||
variable head buffer head !
|
||||
variable tail buffer tail !
|
||||
variable used 0 used !
|
||||
|
||||
: empty? used @ 0= ;
|
||||
: full? used @ size = ;
|
||||
|
||||
: next ( ptr -- ptr )
|
||||
cell+ dup end = if drop buffer then ;
|
||||
|
||||
: put ( n -- )
|
||||
full? abort" buffer full"
|
||||
\ begin full? while pause repeat
|
||||
tail @ ! tail @ next tail ! 1 used +! ;
|
||||
|
||||
: get ( -- n )
|
||||
empty? abort" buffer empty"
|
||||
\ begin empty? while pause repeat
|
||||
head @ @ head @ next head ! -1 used +! ;
|
||||
Loading…
Add table
Add a link
Reference in a new issue