aboutsummaryrefslogtreecommitdiff
path: root/amforth-6.5/common/lib/reverse.frt
blob: 9d468f4f68a04ce9092cf330e895ed22fd60acd9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
\ LIFO made FIFO
\ ( X1 .. Xn n -- Xn .. X1 n )
: reverse
   >r
   sp@ sp@ r@ cells +                   \ ( bot-addr top-addr )
   begin
      over over <                       \ bot top cross each other?
   while                                \ no
      dup @ >r                          \ save top-cell content
      over @ over !                     \ replace top-cell
      over r> swap !                    \ replace bot-cell
      cell- swap cell+ swap
   repeat
   2drop
   r>
;