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 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 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 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. (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 Clipper's control (normal program termination, Alt-C, or ending after a 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 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(). Note: Since this section is about DOS-TEXT mode programming, considered as obsolete and details skipped.