Module CheckIt { Global All$, nl$ \\ upgrade to document Document All$ Nl$<={ } Function Encode$(Inp$) { Def SymbolTable$="abcdefghijklmnopqrstuvwxyz", Out$="" For i=1 to Len(Inp$) c$=Mid$(Inp$, i, 1) k=Instr(SymbolTable$, c$) Insert k, 1 SymbolTable$="" Out$=If$(Out$="" -> Quote$(k-1),Quote$(Param(Out$), k-1)) Insert 1 SymbolTable$=c$ \\ we use <= for globals All$<=Format$(" {0} {1:30} {2}", c$, Out$, SymbolTable$)+nl$ Next i =Out$ } Function Decode$(Inp$) { Def SymbolTable$="abcdefghijklmnopqrstuvwxyz", Out$="" flush Data Param(Inp$) While not empty { k=Number+1 c$=Mid$(SymbolTable$, k, 1) Out$+=c$ Insert k, 1 SymbolTable$="" ' erase at position k Insert 1 SymbolTable$=c$ All$<=Format$("{0::-2} {1} {2:30} {3}", k-1, c$, Out$, SymbolTable$)+nl$ } =Out$ } TryThis("broood") TryThis("bananaaa") TryThis("hiphophiphop") ClipBoard All$ Sub TryThis(a$) Local Out$=Encode$(a$) Local final$=Decode$(Out$) Print final$, final$=a$ End Sub } CheckIt