In the GPC docs I found that UCSD (BP) strings are on the todo list for the compiler. Below is an outline for an intermediate solution I write for the Macintosh Toolbox. The "Carbon" API has 700 (!) references to UCSD-Pascal strings. For binary compatibility, I have little choice. If appropriate, I will be pleased to write runtime support routines (in Pascal) for UCSD strings, when they are getting integrated into the compiler. Regards, Adriaan van Os ----------------- TYPE Str255 = PACKED RECORD Length: byte; chars: packed array[ 1..255] of char END; Str32 = PACKED RECORD Length: byte; chars: packed array[ 1..32] of char; pad: char {for binary compatibility} END; {etcetera} OPERATOR + ( const theStr1 : Str255; const theStr2 : Str255) AD: Str255; OPERATOR = ( const theStr1 : Str255; const theStr2 : Str255) EQ: Str255; OPERATOR > ( const theStr1 : Str255; const theStr2 : Str255) GT: Str255; OPERATOR < ( const theStr1 : Str255; const theStr2 : Str255) ST: Str255; OPERATOR >= ( const theStr1 : Str255; const theStr2 : Str255) GE: Str255; OPERATOR <= ( const theStr1 : Str255; const theStr2 : Str255) SE: Str255; Plus: (1) standard routines Pos, Insert, Delete and Concat (2) conversion routines from and to string-constants and GPC "long strings".