: 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 ;