On the subject of range checking, another difference that Mac Pascals implemented was unrangechecked arrays where the lower and upper bound are both 0.
That is:
type UnboundArray = array[0..0] of Whatever;
disables the range check tests for array access.
Generally this is used for open arrays as parameters, and it pretty much just avoids having to define a specific maximum array size (which can also get in to trouble, such as:
type UnboundArray = array[0..kMaxInt] of Whatever;
which can have a size bigger than 4Gig if Whatever has any noticeable size, and which can cause problems (does GPC handle record/array sizes larger than 32 bits on 32 bit platforms?).
Anyway, I don't know that this is worth emulating even with --mac-pascal turned on, but I figured I'd mention it while I thought of it and while range checks were being discussed.
Enjoy, Peter.