// Configuration files for the application and Borland C/C++.

// Some general parameters for this file are:

//   * The program will run under the control of the debugger or is
//     downloaded using RTRun.
//   * Paging is enabled.
//   * The program privilege level is set to 3 for maximum protection.
//   * Boot code and the Monitor are placed in low (conventional) memory.
//   * The program is placed in high (extended) memory.
//   * Unused low memory is remapped and appended to the high memory area.
//   * The Turbo Debugger symbol tables are pulled in to support
//     task positions at source level.

@HARDWARE.CFG

// Either use the monitor, or create bootable code.
#ifdef MONITOR
  Reserve  Monitor                             // leave room for Debug Monitor
#elifdef DEBUGDOS
  Locate BootCode   BIOSBOOT.EXE LowMem  // boot from disk
  Locate BootData   BootData     LowMem  // must be in conventional mem
  Locate DiskBuffer DiskIO       LowMem 16k 16k // needed by disk boot code
  NoFPU=0 // Check FPU
  CPL = 3 // normal priveleges
  VideoRAM ColorText // program output sent to Graphic Card
#else
  Locate BootCode   BIOSBOOT.EXE LowMem      // boot from disk
  Locate BootData   BootData     LowMem 0 16 // must be in conventional mem
  Locate DiskBuffer DiskIO       LowMem 16k 16k // needed by disk boot code
  NoFPU=0 // Check FPU
  CPL = 3 // normal priveleges
// VideoRAM ColorText // program output sent to Graphic Card
  VideoRAM None // program output sent to file and host
#endif

FillRAM HeapMem                                 // remap unused RAM

Locate   Header    Header      LowMem // application header
Locate   PageTable Paging      LowMem 20k // paging to use this
Locate   NTSection CODE        ProgMem->HighMem // code section
Locate   NTSection DATA        ProgMem->HighMem // data section
Locate   NTSection .tls        ProgMem->HighMem // TLS data section
Locate   NTSection .rdata      ProgMem->HighMem // TLS directory
Locate   Stack     Stack       StackMem->LowMem 6k // stack space for main()
Locate   Heap      Heap        HeapMem // and the rest for the heap

// Compression needed if we are short on disk space - but shortens download
// Note that this is discardable, unless we use -d- option of RTLoc
Locate   DecompCode Expand    LowMem // include decompression stuff
Locate   DecompData ExBuffer  LowMem

Locate   Copy       Paging    LowMem // compress Paging
Locate   Copy       CODE      HighMem // compress CODE
Locate   Copy       DATA      HighMem // compress DATA

Locate   Nothing    FloppyDMA MoreLowMem 18k 64k ReadWrite // floppy driver

Init _Init      // do some standard initializations (see init.c)

CommandLine "bacnet.exe"