Command Line Syntax Display

When no source file is specified this procedure simply displays Turbo Pascal command line syntax with default switch states.
Procedure WriteSyntax;

  Function Switch (Sw: TCompilerSwitches): Char;
    If Sw in GlobalModuleData^.CompilerSwitches then Switch := '+'
      else Switch := '-';

  Writeln ('Syntax: TPC [options] filename [options]');
  Writeln ('  -B = Build all units                -L = Link buffer on disk');
  Writeln ('  -D<syms> = Define conditionals      -M = Make modified units');
  Writeln ('  -E<path> = EXE/TPU directories      -O<path> = Object directories');
  Writeln ('  -F<seg>:<ofs> = Find error          -Q = Quiet compile');
  Writeln ('  -GD = Detailed map file             -T<path> = TPL/CFG directory');
  Writeln ('  -GP = Map file with publics         -U<path> = Unit directories');
  Writeln ('  -GS = Map file with segments        -V = Debug information in EXE');
  Writeln ('  -I<path> = Include directories      -$<dir> = Compiler directive');
  Writeln ('Compiler switches: -$<letter><state>  (defaults are shown below)');
  Writeln ('  A', Switch (WordAlignment),' Word alignment       I',
                  Switch (IOErrorChecking),' I/O error checking   R',
                  Switch (RangeChecking),' Range checking');
  Writeln ('  B', Switch (FullBooleanEval),' Full boolean eval    L',
                  Switch (LocalDebugSymbols),' Local debug symbols  S',
                  Switch (StackChecking),' Stack checking');
  Writeln ('  D', Switch (DebugInformation),' Debug information    N',
                  Switch (Instructions80x87),' 80x87 instructions   T',
                  Switch (TypedPointers),' Typed pointers');
  Writeln ('  E', Switch (Emulation80x87),' 80x87 emulation      O',
                  Switch (OverlaysAllowed),' Overlays allowed     V',
                  Switch (StrictVarStrings),' Strict var-strings');
  Writeln ('  F', Switch (ForceFarCalls),' Force FAR calls      P',
                  Switch (OpenStringParams),' Open string params   X',
                  Switch (ExtendedSyntax),' Extended syntax');
  Writeln ('  G', Switch (Instructions80286),' 80286 instructions   Q',
                  Switch (OverflowChecking),' Overflow checking');
  Writeln ('Memory sizes: -$M<stack>,<heapmin>,<heapmax>  (default: ',
            GlobalModuleData^.Stack, ',',
            Longint (GlobalModuleData^.HeapMin) * 16, ',',
            Longint (GlobalModuleData^.HeapMax) * 16, ')');
© 2021 Turbo Pascal | Privacy Policy