%%HP: T(3)A(D)F(.);

\<<
    # 0d

    \-> col

    \<<
        1

        "..........ABCDEF....GHIJKL....MNOPQR....STUVWX....
YZ........789/......456*......123-......0. +"

        "..........abcdef....ghijkl....mnopqr....stuvwx....
yz........789/......456*......123-......0. +"

        \<<
            DUP RCL 55 8 CHR REPL SWAP STO
        \>>

        \<<
            PICT DUP { # 0d # 0d } OVER
            { # 0d # 8d } { # 130d # 63d } SUB REPL
            {# 0d # 56d } # 131d # 8d BLANK REPL
             # 0d 'col' STO
        \>>

        \-> caps uctbl lctbl addbs nl

        \<<
            'uctbl' addbs EVAL
            'lctbl' addbs EVAL

            -40 CF
            OPENIO
            { # 0d # 0d } PVIEW
            7 FREEZE
            nl EVAL

            WHILE 1 REPEAT
                IF KEY THEN
                    IF DUP 61 == THEN
                        DROP caps NOT 'caps' STO
                    ELSE
                        IF caps THEN
                            uctbl
                        ELSE
                            lctbl
                        END
                        SWAP DUP SUB XMIT DROP
                    END
                END

                IF BUFLEN DROP THEN
                    1 SRECV DROP DUP NUM
                    CASE
                        DUP 8 == THEN
                            DROP2
                            IF col # 0d > THEN
                                col # 6d - 'col' STO
                            END
                        END

                        13 == THEN
                            DROP nl EVAL
                        END

                        2 \->GROB
                        PICT col # 56d 2 \->LIST ROT REPL
                        # 6d 'col' STO+
                        IF col # 131d > THEN
                            nl EVAL
                        END
                    END
                END
            END
        \>>
    \>>
\>>

