home *** CD-ROM | disk | FTP | other *** search
-
- PMAPP.ZIP
- May 29, 1994
-
- This is a toolkit to let you build large Borland C Applications that
- run in protected mode. This is an alpha release so please don't judge
- it too harshly. At the end of this document is a list of known problems
- and areas where improvement is needed. I am very interested in any
- feedback.
-
- If any part of this is missing or incomplete, if you have any suggestions
- or if you encounter any problems using it please let me know.
-
-
- COPYRIGHT
- ---------
- This distribution copyright (c) 1994, Kevin Morgan. All rights reserved.
-
- None of Borland's code is included, so this should not infringe on
- Borland's copyright.
-
-
- ADVERTISEMENT
- -------------
-
- This code is distributed as shareware. If you find this toolkit to be
- of value, please send $29.00 to the author:
-
- Kevin Morgan Software Services
- P.O. Box 2760
- Sunnyvale, CA 94087
-
- CompuServe Id: 72426,1466
- Internet: kmorgan@netcom.com
-
- For that $29.00 you will have one future update mailed to you.
-
- If you encounter problems or have suggestions, please report them to me
- even.
-
- It will probably be 3 to 6 months before enough changes have accumulated
- to justify sending out a disk. Meanwhile, I'll be periodically placing updates
- on CompuServe in the Borland C/DOS forum, in the TurboVision section.
-
-
- MANIFEST
- --------
-
- This kit consists of several parts.
-
-
- README This note.
-
- TVPATCH.DOC Instructions for patches to use with TurboVision
-
- EXE\DPMIRUN.EXE Protected mode program loader
-
- EXE\RSTUB.EXE Real mode stub to bind into protected apps
-
- LIB\C0WL.OBJ A module to replace the Borland C0 to start the
- Protected mode application.
-
- CLIB.PRJ BC3.1 Project file to build CLIB.LIB
- CLIB.MAK BC3.1 Make file to build CLIB.LIB
-
- DPMIRUN.PRJ BC3.1 Project file to build DPMIRUN.EXE
- DPMIRUN.MAK BC3.1 Make file to build DPMIRUN.EXE
-
- RSTUB.PRJ BC3.1 Project file to build RSTUB.EXE
- RSTUB.MAK BC3.1 Make file to build RSTUB.EXE
-
- TVGUID01.PRJ BC3.1 Project file to build TVGUID01 as a protected app
- TVGUID01.MAK BC3.1 Make file to build TVGUID01 as a protected app
-
- CSD\CSDUDES.PRJ BC3.1 Project file for Paradox Engine Example
- CSD\CSDUDES.MAK BC3.1 Make file for Paradox Engine Example
-
- DPMI.DEF Def file to be used when linking protected mode apps
-
- CLIB\*.CPP Source for CLIB routines
-
- DPMIRUN\*.* Source for DPMIRUN.EXE
-
- INC\*.* Include files needed
-
- DPMIRTL\BUILDC0.BAT Batch file to build C0WL.OBJ
-
- DPMIRTL\C0.ASM Source for C0WL.OBJ
-
-
- HOW TO USE
- ----------
-
- Patches need to be applied to the TurboVision code. See TVPATCH.DOC.
-
- Patches need to be applied to the C runtime library. See CLPATCH.DOC.
-
- Build your applications just as you would normally for DOS, with the following
- differences:
-
- Compiler:
- Memory Model must be Large
-
- Directory path:
- The library search path should point to the directory containing
- the C0WL.OBJ with this toolkit first. (otherwise, the linker will
- try to link in the regular Windows startup code.
-
- Linker:
- Output should be Windows .EXE
- No default libraries
- No standard libraries
-
- Your project or make file should explicitly link in the following:
-
- CLIB.LIB
-
- TVPROT.LIB (if a turbovision application)
-
- ... any other libraries you need should be explicitly
- linked in
-
- DPMI.DEF
-
-
- When executing the resulting application, the protected mode loader
- DPMIRUN.EXE should be accessible through PATH or the current directory.
-
- When your app runs, the real mode stub (RSTUB.EXE) gets executed.
- It invokes DPMIRUN.EXE which in turn loads and executes your app.
-
- If a fault occurs during execution, the loader will report the exception,
- attempt to give you a traceback, and exit (without doing any real cleanup).
-
- If your executable is compiled and linked with debug information, the
- traceback will be symbolic.
-
- C RUNTIME LIBRARY PATCHES
- -------------------------
-
- The source for all original CLIB routines are included.
-
- The distribution CLIB.LIB needs to have CRTINIT (crtinit.cas) included if
- you want to use cprintf, cout, etc in your protected mode apps.
-
- This should be the Borland standard crtinit.cas with patches in
- CLPATCH.DOC applied to it. You probably want this included in
- CLIB.LIB instead of creating a new CL.LIB.
-
-
- TURBOVISION LIBRARY PATCHES
- ---------------------------
-
- Before using this toolkit with TurboVision, there are a few small
- patches you must apply to the TurboVision library. Then you must built
- a Protected mode version of the library (TVPROT.LIB).
-
- To do this, apply the patches listed in TVPATCH.DOC, then
- build the protected mode library:
-
- SET PROT=y
- make
-
- If this all goes as it should, you should end up with TVPROT.LIB
-
-
- PARADOX DATABASE ENGINE
- -----------------------
- I have not included the source for CSDUDES, a demonstration program
- using the paradox database engine with turbovision, since that's
- available on CompuServe, but I did include the make file and
- project file to build it with this toolkit.
-
- ENHANCEMENTS THIS RELEASE
- -------------------------
- Better traceback when faults occur.
-
- Bimodal async routines included in the loader for comm applications.
-
- Fixes for int86 and int86x.
-
-
- KNOWN PROBLEMS
- --------------
- These are all being worked on.
-
- This kit assumes that you have BC3.1. It will probably work alright
- with 3.0 or 4.0, but I haven't tried it.
-
- The 8087 emulator still does not work.
-
- The math library is untested.
-
- The Paradox database engine seems to work, although I've only done cursory
- testing.
-
- The memory routines (malloc(), etc...) included with this distribution
- are slow and clunky, although they do provide extra safety.
-
-