The {$MODE} sets the compatibility mode of the compiler. This is equivalent to setting one of the command line options -So, -Sd, -Sp or -S2. it has the following arguments:
Default mode. This reverts back to the mode that was set on the command line.
Delphi compatibility mode. All object-pascal extensions are enabled. This is the same as the command line option -Sd. Note that this also implies {$H ON} (i.e., in Delphi mode, ansistrings are the default).
Delphi compatibility mode. All object-pascal extensions are enabled, and additionally the String keyword refers to a unicode string.
Extended pascal mode. Only available in 3.2 and higher.
Turbo pascal compatibility mode. Object pascal extensions are disabled, except ansistrings, which remain valid. This is the same as the command line option -So.
FPC mode. This is the default, if no command line switch is supplied.
Object pascal mode. This is the same as the -S2 command line option.
MACPAS mode. In this mode, the compiler tries to be more compatible to commonly used pascal dialects on the Mac OS, such as Think Pascal, Metrowerks Pascal, MPW Pascal.
Standard Pascal, ISO 7185 mode. In this mode, the compiler complies with the requirements of level 0 of ISO/IEC 7185.
For an exact description of each of these modes, see appendix B.2, on page 732.