Chapter 1
Compiler directives

1.1 Introduction
1.2 Local directives
1.2.1 $A or $ALIGN : Align Data
1.2.2 $A1, $A2,$A4 and $A8
1.2.3 $ASMMODE : Assembler mode (Intel 80x86 only)
1.2.4 $B or $BOOLEVAL : Complete boolean evaluation
1.2.5 $C or $ASSERTIONS : Assertion support
1.2.6 $BITPACKING : Enable bitsize packing
1.2.7 $CALLING : Specify calling convention
1.2.8 $CHECKPOINTER : Check pointer values
1.2.9 $CODEALIGN : Set the code alignment
1.2.10 $COPERATORS : Allow C like operators
1.2.11 $DEFINE or $DEFINEC : Define a symbol
1.2.12 $ELSE : Switch conditional compilation
1.2.13 $ELSEC : Switch conditional compilation
1.2.14 $ELSEIF or $ELIFC : Switch conditional compilation
1.2.15 $ENDC : End conditional compilation
1.2.16 $ENDIF : End conditional compilation
1.2.17 $ERROR or $ERRORC : Generate error message
1.2.18 $ENDREGION: End of a collapsible region
1.2.19 $EXCESSPRECISION: use excess precision with float
1.2.20 $EXTENDEDSYM: Ignored
1.2.21 $EXTERNALSYM: Ignored
1.2.22 $F : Far or near functions
1.2.23 $FATAL : Generate fatal error message
1.2.24 $FPUTYPE : Select coprocessor type
1.2.25 $GOTO : Support Goto and Label
1.2.26 $H or $LONGSTRINGS : Use AnsiStrings
1.2.27 $HINT : Generate hint message
1.2.28 $HINTS : Emit hints
1.2.29 $HPPEMIT: Ignored
1.2.30 $IF : Start conditional compilation
1.2.31 $IFC : Start conditional compilation
1.2.32 $IFDEF Name : Start conditional compilation
1.2.33 $IFEND : End conditional compilation
1.2.34 $IFNDEF : Start conditional compilation
1.2.35 $IFOPT : Start conditional compilation
1.2.36 $IMPLICITEXCEPTIONS : Implicit finalization code generation
1.2.37 $INFO : Generate info message
1.2.38 $INLINE : Allow inline code.
1.2.39 $INTERFACES : Specify Interface type.
1.2.40 $I or $IOCHECKS : Input/Output checking
1.2.41 $IEEEERRORS : Enable IEEE error checking for constants
1.2.42 $I or $INCLUDE : Include file
1.2.43 $I or $INCLUDE : Include compiler info
1.2.44 $J or $WRITEABLECONST : Allow assignments to typed consts
1.2.45 $L or $LINK : Link object file
1.2.46 $LIBEXPORT : Ignored
1.2.47 $LINKFRAMEWORK : Link to a framework
1.2.48 $LINKLIB : Link to a library
1.2.49 $M or $TYPEINFO : Generate type info
1.2.50 $MACRO : Allow use of macros.
1.2.51 $MAXFPUREGISTERS : Maximum number of FPU registers for variables
1.2.52 $MESSAGE : Generate user-defined message
1.2.53 $MINENUMSIZE : Specify minimum enumeration size
1.2.54 $MINFPCONSTPREC : Specify floating point constant precision
1.2.55 $MMX : Intel MMX support (Intel 80x86 only)
1.2.56 $NODEFINE : Ignored
1.2.57 $NOTE : Generate note message
1.2.58 $NOTES : Emit notes
1.2.59 $OBJECTCHECKS : Check Object
1.2.60 $OPTIMIZATION : Enable Optimizations
1.2.61 $PACKENUM or $Z : Minimum enumeration type size
1.2.62 $PACKRECORDS : Alignment of record elements
1.2.63 $PACKSET : Specify set size
1.2.64 $POP : Restore compiler settings
1.2.65 $PUSH : Save compiler settings
1.2.66 $Q or $OV or $OVERFLOWCHECKS: Overflow checking
1.2.67 $R or $RANGECHECKS : Range checking
1.2.68 $REGION : Mark start of collapsible region
1.2.69 $R or $RESOURCE : Include resource
1.2.70 $SATURATION : Saturation operations (Intel 80x86 only)
1.2.71 $SAFEFPUEXCEPTIONS Wait when storing FPU values on Intel x86
1.2.72 $SCOPEDENUMS Control use of scoped enumeration types
1.2.73 $SETC : Define and assign a value to a symbol
1.2.74 $S : Stack checking
1.2.75 $STOP : Generate fatal error message
1.2.76 $STRINGCHECKS : Ignored
1.2.77 $T or $TYPEDADDRESS : Typed address operator (@)
1.2.78 $UNDEF or $UNDEFC : Undefine a symbol
1.2.79 $V or $VARSTRINGCHECKS : Var-string checking
1.2.80 $W or $STACKFRAMES : Generate stackframes
1.2.81 $WAIT : Wait for enter key press
1.2.82 $WARN : Control emission of warnings
1.2.83 $WARNING : Generate warning message
1.2.84 $WARNINGS : Emit warnings
1.2.85 $Z1, $Z2 and $Z4
1.3 Global directives
1.3.1 $APPID : Specify application ID.
1.3.2 $APPNAME : Specify application name.
1.3.3 $APPTYPE : Specify type of application.
1.3.4 $CODEPAGE : Set the source codepage
1.3.5 $COPYRIGHT specify copyright info
1.3.6 $D or $DEBUGINFO : Debugging symbols
1.3.7 $DESCRIPTION : Application description
1.3.8 $E : Emulation of coprocessor
1.3.9 $EXTENSION : Extension of generated binary.
1.3.10 $FRAMEWORKPATH : Specify framework path.
1.3.11 $G : Generate 80286 code
1.3.12 $IMAGEBASE : Specify DLL image base location.
1.3.13 $INCLUDEPATH : Specify include path.
1.3.14 $L or $LOCALSYMBOLS : Local symbol information
1.3.15 $LIBPREFIX : Specify library filename prefix.
1.3.16 $LIBRARYPATH : Specify library path.
1.3.17 $LIBSUFFIX : Set the library suffix
1.3.18 $MAXSTACKSIZE : Set maximum stack size
1.3.19 $M or $MEMORY : Memory sizes
1.3.20 $MINSTACKSIZE : Set minimum stack size
1.3.21 $MODE : Set compiler compatibility mode
1.3.22 $MODESWITCH : Select mode features
1.3.23 $N : Numeric processing
1.3.24 $O : Level 2 Optimizations
1.3.25 $OBJECTPATH : Specify object path.
1.3.26 $P or $OPENSTRINGS : Use open strings
1.3.27 $PASCALMAINNAME : Set entry point name
1.3.28 $PIC : Generate PIC code or not
1.3.29 $POINTERMATH : Allow use of pointer math
1.3.30 $PROFILE : Profiling
1.3.31 $SCREENNAME : Specify screen name
1.3.32 $SETPEFLAGS : Specify PE Executable flags
1.3.33 $SMARTLINK : Use smartlinking
1.3.34 $SYSCALLS : Select system calling convention on Amiga/MorphOS
1.3.35 $THREADNAME : Set thread name in Netware
1.3.36 $UNITPATH : Specify unit path.
1.3.37 $VARPROPSETTER : Enable use of var/out/constref parameters for property setters.
1.3.38 $VERSION : Specify DLL version.
1.3.39 $WEAKPACKAGEUNIT : ignored
1.3.40 $X or $EXTENDEDSYNTAX : Extended syntax
1.3.41 $Y or $REFERENCEINFO : Insert Browser information