Thanks guys,
The routine below is supposed to take comma-delimited strings and convert them to binary. It should handle the sequence 02,A,A2 for example, properly.
Code:
Preparser:
HSERIN [Wait (":")] ; wait for colon to start
GrabAscii:
HSERIN 500,NoMoreInput,[ASCIN [Y]] ; Load it into small array, first char goes into element zero
IF ASCIN [Y] = "," THEN ; Found a comma This will never be in element zero , but
; may exist in element 1
SELECT CASE Y
CASE 1
MSB = 0
LSB = ASCIN[Y-1]
CASE 2
MSB = ASCIN[Y-2]
LSB = ASCIN[Y-1]
CASE ELSE
HSEROUT ["INPUT ERROR"]
PAUSE 2500
END SELECT
GOSUB IHEX2BIN
OUTARRAY[Z] = ByteVal ; load variable into array
Z = Z + 1
Y = 0 ; Clear Y if we found a comma
ENDIF
Y = Y + 1
Goto GrabAscii
NOMoreInput:
......
';**************************************************************
'; Routine takes HEX Ascii chars
'; and converts to BIN
'; Inputs MSB, LSB ("0" to "F")
'; Outputs ByteVal
';***************************************************************
IHEX2BIN:
LOOKDOWN MSB,["0123456789ABCDEF"],ByteValH
LOOKDOWN LSB,["0123456789ABCDEF"],ByteValL
ByteVal = (ByteValH << 4) + ByteValL
RETURN
';***************************************************************
It is nearly 4 A.M here in CA. Time to go to work and see how the code works!
Bookmarks