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
- Default mode. This reverts back to the mode that was set on the command line.
-
Delphi
- 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).
-
DelphiUnicode
- Delphi compatibility mode. All object-pascal extensions are enabled, and
additionally the String keyword refers to a unicode string.
-
ExtendedPascal
- Extended pascal mode. Only available in 3.2 and higher.
-
TP
- 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
- FPC mode. This is the default, if no command line switch is supplied.
-
OBJFPC
- Object pascal mode. This is the same as the -S2 command line option.
-
MACPAS
- 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.
-
ISO
- 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 D, on page 723.