In your case I'd recommend you use {$Z4} since that's available in Delphi and FPC.
As far as the $8xxxxxxx, you should _not_ change that.
A hex number is not positive or negative, it's just a bit pattern that may be interpreted as a positive number or a negative number. The bit pattern does not have a sign, it may not even have to be interpreted as a number, it's just a bunch of bits whose interpretation depends on where it is used.
IOW, the $8xxxxxxx will be interpreted by FPC as a negative number because FPC interprets enum constants as int32. Regardless of the interpretation, it does not change the bit pattern.
Additionally and, this is very important, it is simply _ridiculous_ to prefix a hex number with a + or - because as stated above, hex numbers are not really numbers, just bit patterns that are written in hex because it is more convenient than writing then in binary (that would necessitate a lot of 1s and 0s.)
Succinctly, use the 8xxxxxxx as they are defined in C. That's actually the clean and correct way of defining the type.
HTH.
Here is an "exercise"
What does the following binary sequence represent ?
a. is it the positive number 32 ?
b. is it the ASCII space ?
c. a mask to select the 6th bit in a set of flags ?
d. any of the above ?
answer is (d) because it depends on the interpretation. prepending a + or - to a hex number is as absurd as prepending a + or - to a binary number. Don't do that.