About MrWindow CA-Tools Interface
What is MrWindow for CA-Tools
──────────────────────────────────────────────────────────────────────────────
MrWindow is a set of replacement routines that will allow users of CA-Tools
to use MrDebug without modifying any of their existing code.
MrWindow is MrDebug friendly, which means that there is no direct writing to
video modes or crucifying of CA-Clipper internals so you'll be able to use
your CA-Tools code with MrDebug without any problem such as bleed through or
windows appearing at inopportune moments.
When running MrDebug in a screen mode where the application window does not
use all of the screen, a window may not be moved or re-positioned outside of
the application window. Any call made to move a window outside of the
application window will result in the window being moved as close the
original destination, but not outside of the application window.
Should you wish to move windows outside of the application window then you
will have to run MrDebug with Force Application into 80x25 toggled off.
Throughout this section of the guides we may make reference to the
Application Window or window 0. This is used in places where the CA-Clipper
Tools documentation would make reference to the Screen.
MrDebug allows you to run your applications in their own 80x25 window all
CA-Clipper Tools Cloned function are based on the application window and
hence reflect values according to those of the application window.
Linking MrWindow & CA-Tools
The number of the beast may be 666, but the name of the beast is CA-Tools.
The beast is the enemy and the torture that the beast does to CA-Clipper is
intolerable.
Because of the nature of the beast, our first mistake was assuming that
Tools would behave itself and follow the guidelines laid down in the
CA-Clipper API's - BIG MISTAKE!!! CA-Tools breaks more rules than we can
imagine. So if they replace parts of Clipper.LIB ad lib - we have to put
those parts back!
To link your application with MrDebug and CA-Tools, so that you can use the
windowing system you will need to follow one of the link scripts listed
below. The first things you should know, is NOT to link in CTUS.OBJ or
CTUSP.OBJ - the extended driver file is no longer needed when used with
MrDebug and MrWindow.
DO NOT LINK IN CTUSP.OBJ OR CTUS.OBJ
Linking with ExoSpace.
For those poor unfortunate souls who use ExoDogslownotcompatibleSpace you
will have to arrange your link script in a manner similar to the following :
File MrDebug
LIB MrWindow
LIB Clipper
File CTINTP
LIB CTP
Do not link in the CTUSP extended driver. This will break Clipper!
Linking with Blinker.
Please link the files in the following order:
SEA BLXCLP52
LIB Clipper
File CTINTP
LIB CTP
Do not link in the CTUSP extended driver. This will break Clipper!
Linking with Causeway.
You should link the files in the following order:
LIB Clipper
File CTINTP
LIB CTP
Do not link in the CTUSP extended driver. This will break Clipper!
What must you not do?
You must NOT LINK in CTUSP.OBJ or CTUS.OBJ.
So, do not link in CTUSP.OBJ or CTUS.OBJ.
Where you can, use the MrDebug equivalents instead.
Linking with CA-Clipper 5.3
Extra caution has to be taken when linking with CA-Clipper 5.3 as the order
of fileplacement is important.
BEGINAREA
FILE Test // Program files etc.
ENDAREA
FILE MrDbg53.Lib // MrDebug enhancements for 5.3
LIB MrDebug
BEGINAREA
LIB MrWindow
ENDAREA
MODULE MrCommon FROM MrWindow
Note that MrWindow *MUST* come AFTER both MrDebug files, and before any
references to CLIPPER.LIB or any tools libraries.