{
 ÃÄ>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;

