i turned your #Forth into Pascal and you can't do nothing about it!
10 constant n
create list
3 , 4 , 1 , 9 , 5 , 7 , 2 , 8 , 0 , 6 ,
: show
n 0 do i cells list + ? loop cr ;
procedure ( sort ) of: list^ of: a' of: b'
var a var b var x
: item ( i -- addr ) cells list^ @ + ;
called sort
a' @ a ! b' @ b !
a @ b @ + 2/ item @ x !
begin
begin a @ item @ x @ < while 1 a +! repeat
begin x @ b @ item @ < while -1 b +! repeat
a @ b @ <= if
a @ item @ b @ item @
a @ item ! b @ item !
1 a +! -1 b +!
show
then
a @ b @ > until
a' @ b @ < if list^ @ a' @ b @ recurse then
a @ b' @ < if list^ @ a @ b' @ recurse then
end
show
list 0 n 1- sort



