{ ÃÄ>I would like to implement color codes into my on-line doors. You know ÃÄ>the type that Wildcat or PCB have. The @ codes. Does anyone have a ÃÄ>routine that would (I assume) read in a file bite by bite and when it ÃÄ>comes across the @ char it would read the next 3 bits and determine what ÃÄ>action to take? Hi Larry! Sure do have one for 'ya! Try this one out for size. It can be optimized to be smaller, but as an example, this one works for sure! You'll have to incorporate it into your code to dump out to the modem (no problem I hope!) Give this a try: } type string255=string[255]; procedure outgoing(stream:string255; ret:integer); var _retval:integer; out,out1:string[5]; begin for _retval:=1 to length(stream) do begin out:=copy(stream,_retval,1); case out[1] of '@':begin { COLOR CODE ---> @X1F or other } out1:=copy(stream,_retval+2,1); case out1[1] of '0':textbackground(0); '1':textbackground(1); '2':textbackground(2); '3':textbackground(3); '4':textbackground(4); '5':textbackground(5); '6':textbackground(6); '7':textbackground(7); '8':textbackground(8); '9':textbackground(9); 'A':textbackground(10); 'B':textbackground(11); 'C':textbackground(12); 'D':textbackground(13); 'E':textbackground(14); 'F':textbackground(15); end; out1:=copy(stream,_retval+3,1); case out1[1] of '0':textcolor(0); '1':textcolor(1); '2':textcolor(2); '3':textcolor(3); '4':textcolor(4); '5':textcolor(5); '6':textcolor(6); '7':textcolor(7); '8':textcolor(8); '9':textcolor(9); 'A':textcolor(10); 'B':textcolor(11); 'C':textcolor(12); 'D':textcolor(13); 'E':textcolor(14); 'F':textcolor(15); end; _retval:=_retval+3; end; else write(out[1]); end; end; if ret=2 then writeln; end;