|
12345678910111213141516 |
- : RLDICT ( target offset -- )
- H@ 2+ ! H@ ! ( H@+2 == offset, H@ == target )
- H@ @ WORD( DUP H@ -^ ( src u )
- DUP ROT SWAP H@ 4 + ( u src u dst )
- SWAP MOVE ( u )
- 4 + DUP CURRENT @ WORD( + ( u we )
- DUP .X CRLF
- SWAP CURRENT @ PREV + DUP .X CRLF ( we wr )
- BEGIN ( we wr )
- DUP ROT ( wr wr we )
- H@ @ H@ 2+ @ ( wr wr we ol o )
- 2SWAP RLWORD ( wr )
- DUP PREV SWAP ( wr oldwr )
- WORD( SWAP ( we wr )
- DUP 4 - H@ <= ( are we finished? )
- UNTIL H@ 4 + .X CRLF ;
|