Borland Pascal 'fixed' most of the things you couldn't do with J&W Pascal like variable length strings.
However, for systems programming you could (alleast in the Borland implementation) do very cool things with sets. Imagine you had an IO port that controlled 4 lights and 4 fans; you could do stuff like this
type IOPins = (light0, light1, light2, light3, fan0, fan1, fan2, fan3);
var myIO : set of IOPins;
myIO := [light0, fan0];
Port[1234] := myIO;
myIO := myIO + fan1 - fan0; (* turn on fan1, turn off fan0 *)
Port[1234] := myIO;
or you could do things like
if (light1 in myIO) THEN
laying out IO ports as sets was completely awesome, and sure beats
Port := Port || _mybit4;
Port := Port && (! mybit2);