: _
    999 SWAP        ( stop indicator )
    BEGIN
        ?DUP NOT IF EXIT THEN
        10 /MOD         ( r q )
        SWAP '0' + SWAP ( d q )
    AGAIN ;
: . ( n -- )
    ?DUP NOT IF '0' EMIT EXIT THEN ( 0 is a special case )
    ( handle negative )
    DUP 0< IF '-' EMIT -1 * THEN
    _
    BEGIN
        DUP '9' > IF DROP EXIT THEN  ( stop indicator )
        EMIT
    AGAIN ;