[b]Rs232[/b] HEX - Added #$ and sorted decimal problem CODE Sorry forget the last code over complex this works faster and better, but still cannot convert the vol level section of the string to an integer, i think due to the conversion not returning a number so it returns a 0. Tried string to int/real with no luck. ReadSerial(1,serialIn,'');{read port} {WRITELN ('SERIALIN = ', SERIALIN); {test comms ok remove this when complete} position := pos(#,serialIn);{find #20 ZONE STATUS POSITION} {WRITELN ('POSITION = ', POSITION); {test line remove when done} if (POSITION > 0) AND (SERIALIN[POSITION]=#){LOOKING FOR #20 ZONE STAT MESSAGE} AND (SERIALIN[POSITION+1]=#</body>) {LOOKING FOR #01 ZONE 1} then BEGIN Copy(ReceivedData, SERIALIN, POSITION,12);{COPYS SERIAL DATA TO STRING} ZONE1STATUS:=(RECEIVEDDATA[4]); ZONE1SOURCE:=(RECEIVEDDATA[5]); ZONE1VOL:=(RECEIVEDDATA[6]); ZONE1VOLUME :=STRINGTOINT (ZONE1VOL); {PROBLEM CODE HERE} SetStringSystemIO("ZONE 1 VOL LEVEL", ZONE1VOL); once ZONE1STATUS = #</body> THEN SetCBusState("COUNTING 1", "AV Control", "ZONE 1 ON OFF", OFF); once ZONE1STATUS = # THEN SetCBusState("COUNTING 1", "AV Control", "ZONE 1 ON OFF", ON); {CLEARBUFFER} FOR COUNTER1:= 1 TO 23 DO BEGIN RECEIVEDDATA[COUNTER2]:='0'; COUNTER1:=COUNTER1+1; COUNTER2:=COUNTER2+1; END; COUNTER1:=0; COUNTER2:=1; END else begin ExitModule; end;