FUNCTION BB_ATH(HexStr)
LOCAL LenHex, AsciiStr, HexTable, ScanPos, HiByte, LowByte
LenHex = LEN(HexStr)
IF LenHex % 2 = 0 THEN
HexTable = "0123456789ABCDEF"
FOR ScanPos = 1 TO LenHex STEP 2
HiByte = INSTR(HexTable,UCASE(MID(HexStr, ScanPos, 1))) - 1
LowByte = INSTR(HexTable,UCASE(MID(HexStr, ScanPos + 1, 1))) - 1
IF ISINTEGER(HiByte) AND ISINTEGER(LowByte) THEN
AsciiStr &= CHR(HiByte * 16 + LowByte)
ELSE
AsciiStr = ""
GOTO Exit_For
END IF
NEXT ScanPos
Exit_For:
ELSE
AsciiStr = ""
END IF
BB_ATH = AsciiStr
END FUNCTION
FUNCTION BB_HTA(AsciiStr)
LOCAL AsciiLen,ScanPos,HexStr
AsciiLen = LEN(AsciiStr)
IF AsciiLen THEN
FOR ScanPos = 1 TO AsciiLen
HexStr &= RIGHT("0" & HEX(ASC(MID(AsciiStr, ScanPos, 1))),2)
NEXT ScanPos
ELSE
HexStr = ""
END IF
BB_HTA = HexStr
END FUNCTION
hstr = BB_HTA("0123456789ABCDEF")
PRINT hstr,"\n"
PRINT BB_ATH(hstr),"\n"