                 Borland Pascal with Objects 7.0
                   Run-time Library Source Code
                 -------------------------------

Please read this document carefully. It is the only documentation
for the Borland Pascal with Objects run-time library source code.


TABLE OF CONTENTS
-----------------

1. System requirements
2. Run-time library source code support policy
3. Installing the run-time library source code
4. Run-time library source code overview
5. Building the run-time library
6. Modifying the run-time library source code


1. SYSTEM REQUIREMENTS
----------------------

  The Borland Pascal with Objects run-time library source code
  requires:

    o MS-DOS 3.0 or later
    o 2Mb of available extended memory
    o 80286 or later processor
    o approximately 1.6Mb of disk space (source only)
    o Borland Pascal with Objects 7.0


2. RUN-TIME LIBRARY SOURCE CODE SUPPORT POLICY
----------------------------------------------

IMPORTANT: Borland Technical Support will not answer questions or
provide any assistance relating to this product. This product is
provided "as is."

If you find a genuine problem with the source code, please send a
written description to our Technical Support Department by one of
two methods:

    1. Type GO BPROGA on the CompuServe bulletin board system for
       instant access to the Borland forums.

    2. Or you can write to:

          Borland International
          Borland Pascal RTL Source Code Technical Support
          P.O. Box 660001
          1800 Green Hills Road
          Scotts Valley, CA 95067-0001

    Please include the following information in your
    correspondence:

      A.  Product name and serial number from your original
          distribution disk.

      B.  Computer brand, model, and the brands and model numbers
          of any additional hardware.

      C.  Operating system and version number. The version number
          can be determined by typing VER at the DOS prompt.

      D.  Contents of your AUTOEXEC.BAT file.

      E.  Contents of your CONFIG.SYS file.

      F.  A complete description of the problem.


3. INSTALLING THE RUN-TIME LIBRARY SOURCE CODE
----------------------------------------------
The Borland Pascal with Objects run-time library source code
installation program, INSTALL.EXE, sets up the run-time library
source code on your system. To use INSTALL on Drive A, for
example, place the distribution disk in Drive A and type

  A:INSTALL

You can select the base directory for the run-time library by
selecting the "Run-time library directory" option, and entering
the desired path.  The install program will create several other
directories below the directory you specify.

The MAKEFILE included with the run-time library assumes that you
have installed Borland Pascal with Objects to the \BP directory,
and that you will accept the default RTL directory of \BP\RTL.
If you change either of these paths, you need to modify the
RTL's MAKEFILE accordingly. The remainder of this document
assumes that you are using the default directories.


4. RUN-TIME LIBRARY SOURCE CODE OVERVIEW
----------------------------------------
The source and object modules contained in this package
correspond to Borland Pascal with Objects 7.0.  We assume that
you own a copy of Borland Pascal with Objects 7.0 (including
Turbo Assembler 3.2), which you need to compile the run-time
library sources.

Borland Pascal with Objects' run-time library consists of source
code for the standard units, the Turbo Vision and ObjectWindows
application frameworks, and the Windows 3.1 interface files.
Sources are not supplied for following items: the 8087 emulator
part of the System unit, the assembly language parts of the
Overlay unit, the Graph unit, the .BGI or .CHR files, the GRAPH3
unit, or the TURBO3 unit.

Also included in the run-time library source code package is the
file MAKEFILE, which contains a script for building the entire
run-time library and application frameworks. In order to process
this script, you need the MAKE.EXE utility which comes with
Borland Pascal with Objects 7.0.


5. BUILDING THE RUN-TIME LIBRARY
--------------------------------
For each run-time library component, MAKEFILE defines which object
files depend on which source files, and what commands to execute
to update those object files. To do a "make" of the run-time
library source code, first make sure that MAKE.EXE, BPC.EXE, and
TASM.EXE are on your DOS PATH; then change to the \BP\RTL
directory and type:

   MAKE

MAKE will execute all necessary commands to completely update the
run-time libraries (TURBO.TPL, TPP.TPL, and TPW.TPL), Turbo
Vision, ObjectWindows, and the Windows 3.1 interface.

Don't be alarmed if MAKE doesn't assemble or compile anything;
that's just an indication that everything is up-to-date (i.e.,
all object files are more recent than their corresponding source
files).

The compiled versions of the run-time libraries and application
frameworks are written to directories under the \RTL\BIN
directory.  Below is a map of the directory structure, and what
files you should expect to find there:

  \RTL\BIN        - contains TURBO.TPL, TPP.TPL and TPW.TPL
  \RTL\BIN\TPU    - contains the .TPU files from TURBO.TPL
  \RTL\BIN\TPP    - contains the .TPP files from TPP.TPL
  \RTL\BIN\TPW    - contains the .TPW files from TPW.TPL
  \RTL\BIN\TV     - contains the Turbo Vision .TPU/.TPP files
  \RTL\BIN\OWL    - contains the ObjectWindows .TPW files
  \RTL\BIN\WIN31  - contains the Windows 3.1 .TPW files

In order to use the newly built versions of the run-time library,
you must copy the file(s) to the appropriate working directory.
By default, the .TPL files should be copied to the \BP\BIN
directory, and the Turbo Vision, ObjectWindows and Windows 3.1
interface files to the \BP\UNITS directory.


Creating a debug version of the run-time library
------------------------------------------------
You can build a version of the run-time library which contains
debug information, by using the following command line:

  MAKE -DDEBUG

Note: If you have already built the RTL, you will need to
instruct MAKE to do a build instead of a make.  Use the -B switch
to force MAKE to rebuild all files even if they are up to date:

  MAKE -B -DDEBUG

Once you have compiled the debug version, you can use the IDE's
integrated debugger (or other debugger) to trace into the RTL
itself. To allow the IDE to find RTL assembler source, use the
Options|Directories menu to set the INCLUDE directory path to
\BP\RTL and then re-compile your program.


Building parts of the run-time library
--------------------------------------
You can build specific parts of the run-time library by supplying
additional command line parameters to the MAKE utility.  For
example, you might want to rebuild only TURBO.TPL, the DOS
real-mode library, or only the ObjectWindows application
framework.  Below is a table of run-time library components you
can build separately, and the command lines to use for each:

  Component           Command line
  --------------      ---------------
  TURBO.TPL           MAKE rtldos
  TPP.TPL             MAKE rtldpmi
  TPW.TPL             MAKE rtlwin
  Turbo Vision        MAKE tv
  ObjectWindows       MAKE owl
  Win 3.1 interface   MAKE win31


6. MODIFYING THE RUN-TIME LIBRARY SOURCE CODE
---------------------------------------------
With the exception of the System unit, all RTL units are "normal"
Borland Pascal with Objects units. The System unit, however, has
a number of special properties.

The interface part of SYSTEM.PAS defines only variables and typed
constants--the remaining symbols are contained in a bootstrap
symbol table contained in the file SYSTEM.TPS. Furthermore, you
will notice a number of external procedures in the implementation
part; these "semi-hidden" procedures cannot be called directly
(since they are not exported), but the compiler knows about them.
When you call a built-in procedure or function, such as Writeln,
the compiler translates the reference into one or more calls to
hidden procedures in the System unit. Since the compiler depends
upon the hidden routines' order of declaration, it is very
important that you don't change their ordering.

We strongly recommend that you refrain from changing the System
unit's interface section, and only modify the implementation
section and the assembly language files. Very few changes are
possible in the interface section, and any change, however minor,
will cause a unit version mismatch between the System unit and
ALL OTHER UNITS compiled with the shipping RTL.



*  *  *  *  *  *
