Wait, so is this 2 to 1 CHR compression? 12Me21 made a much smaller function for this:
2 to 1:
T$ = CHR$(ASC("A")+(ASC("B")<<8))1 to 2:
X = ASC("?")
A$ = CHR$(X AND 255)
B$ = CHR$(X>>8)
I suppose you could adapt your functions to feed every two characters into these and make your code a lot smaller.