            

32000   DEF FNW0$(W%,W1%,W2%)\
        ON ERROR GOTO 32030\
        W$ = ""\
        W3%=0%\
        W8%=W1%\
        FIELD #W%, W2%-1% AS W2$, 513%-W2% AS W1$\
        GET #W%, RECORD W1%

32010   W0%=INSTR(1%,W1$,CHR$(126%))\
        IF W0% THEN 32020 ELSE W$=W$+W1$\
        FIELD #W%, 512% AS W1$\
        GET #W%\
        W8%=W8%+1%\
        GOTO 32010

32020   W$=W$+LEFT(W1$,W0%-1%)\
        W9%=W2%+LEN(W$)+1%\
        W9%=W9%-512% WHILE W9%>=512%\
        FNW0$=W$\
        GOTO 32040

32030   FNW0$=""\
        W3%=-1%\
        RESUME 32040

32040   ON ERROR GOTO 0\
        FNEND


32050   DEF FNW0%(W%,W$)\
        ON ERROR GOTO 32090\
        W0$=W$+CHR$(126%)\
        W3%=0%\
        W0%=LEN(W0$)\
        FIELD #W%, 2% AS W1$, 2% AS W2$\
        GET #W%, RECORD 1%\
        W1%,W7%=CVT$%(W1$)\
        W4%=CVT$%(W2$)\
        W2%=W4%+1%

32060   GET #W%, RECORD W7%\
        W5%=512%-W4%\
        FIELD #W%, W4% AS W1$, W5% AS W2$\
        LSET W2$=W0$\
        W6%=W4%+W0%\
        W6%=W6%-512% WHILE W6%>512%

32070   W0%=W0%-W5%\
        IF W0%<=0% THEN 32080 ELSE PUT #W%, RECORD W7%\
        W7%=W7%+1%\
        W0$=RIGHT(W0$,W5%+1%)\
        FIELD #W%, 512% AS W2$\
        LSET W2$=W0$\
        W5%=512%\
        GOTO 32070

32080   PUT #W%, RECORD W7%\
        GET #W%, RECORD 1%\
        FIELD #W%, 2% AS W1$, 2% AS W2$\
        LSET W1$=CVT%$(W7%)\
        LSET W2$=CVT%$(W6%)\
        PUT #W%, RECORD 1%\
        GOTO 32100

32090   W1%,W2%,W3%=-1%\
        RESUME 32100

32100   ON ERROR GOTO 0\
        FNW0%=W3%\
        FNEND


32110   DEF FNW1%(W%,W4%,W5%,W4$)\
        ON ERROR GOTO 32140\
        W0$=FNW0$(W%,W4%,W5%)\
        GOTO 32150 IF W3%\
        W0%=LEN(W0$)\
        W6%=LEN(W4$)\
        W0$=W4$+STRING$(W0%-W6%,0%) IF W0%>=W6%\
        W8%=W4%\
        W7%=W5%\
        IF W6%>W0% THEN W3%=-2%\
        GOTO 32150

32120   GET #W%, RECORD W8%\
        W6%,W9%=LEN(W0$)\
        W9%=513%-W7% IF (W7%+W9%)>513%\
        FIELD #W%, W7%-1% AS W1$, W9% AS W2$\
        LSET W2$=W0$\
        PUT #W%, RECORD W8%

32130   IF (W6%+W7%)<=513% THEN 32150 ELSE
                W8%=W8%+1%\
                W7%=1%\
                W0$=RIGHT(W0$,514%-W7%)\
                W6%=LEN(W0$)\
                GOTO 32120

32140   W3%=-1%\
        RESUME 32150

32150   ON ERROR GOTO 0\
        FNW1%=W3%\
        FNEND


32767   END

