Introduction

     In addition to supporting the window functions, the CTUS.LIB extended
     driver contains a series of independent functions, all of which are
     described in this chapter.

     We are concerned here with functions that relate directly to CA-Clipper
     keyboard input, screen and printer output, or other internal functions.
     To use these internal functions, the driver must be linked in.  The use
     of CTUS.LIB does not mean that all the code for all the functions
     contained in CTUS.LIB is linked to your application.  An intensive
     modularization effort causes RTLINK to link only those portions that are
     actually needed.

 The Use of CTUS.LIB

     The extended driver is delivered as an .OBJ file (CTUS.OBJ) to allow
     replacement of the CA-Clipper driver module in CLIPPER.LIB during
     linking.  The extended driver must be included in the list of object
     files.

 Video Modes

     Some functions which relate to screen adapters are found in the Video
     Modes chapter rather than in the  Video Functions chapter.

 Changing Modes

     Some settings are reset by a mode change:

     Cursor position to:      Line 0, Column 0

     Screen page 0:           SETPAGE()

     All font information:    SETFONT(), FONTLOAD(), FONTSELECT()

     All palette information: EGAPALETTE(), VGAPALETTE()

     Border settings:         SET COLOR TO

 DSETWINDOW()/External Screen Output

     This is a very important switch for CA-Clipper Tools that impacts many
     functions and other modules.  DSETWINDOW() determines whether or not the
     output of external programs or modules is redirected to a window.
     (CA-Clipper Tools functions are considered "external").

     The default setting for this switch (.T.) redirects the output.  To make
     this possible, the driver changes the interrupt vector 10H.  Under
     certain circumstances external programs will not accept changes in
     particular interrupt vectors, which is why you must call DSETWINDOW(.F.)
     before you call the RUN function.

     Certain other functions, like ISANSI() or NUMCOL(), return false or
     differing values in conjunction with DSETWINDOW().  Pay attention to the
     accompanying notes in the function descriptions.

 System Settings Are Saved

     When you end an application under CA-Clipper's control (normal program
     termination, Alt-C, or ending after a CA-Clipper error message), the
     cursor type, color attribute, and interrupt vectors 0 to 127 are
     restored.

     However, if you exit a program in any other way (usually with an
     external module containing errors) then the extended driver system
     settings cannot be restored.  Previously changed interrupt vectors are
     probably still changed, which sooner or later result in a system crash.
     If this occurs, reboot as soon as possible.

 The QUIT File

     A QUIT file can be added to any of the extended driver functions.  The
     QUIT file provides information at the next program start as to whether
     the previous run ended correctly.  Additionally, the user's keyboard
     input is also recorded.

     The default name for this file is the same name as your CA-Clipper
     program except that it has a .Q extension instead of a .EXE extension.
     However, you can select another name for the file.  For more
     information, please see DSETQFILE(), DSETQNAME() and KEYREAD().