2016 Update
This commit is contained in:
parent
948b86eafa
commit
dcf5d15da3
7965 changed files with 139854 additions and 31002 deletions
22
Task/Queue-Definition/Forth/queue-definition-1.fth
Normal file
22
Task/Queue-Definition/Forth/queue-definition-1.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