Retro video games delivered to your door every month!
Click above to get retro games delivered to your door ever month!
X-Hacker.org- CA-Clipper Tools . Books 1-3 - <b>fontload()</b> http://www.X-Hacker.org [<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
 FONTLOAD()
 Loads EGA/VGA fonts from another file
------------------------------------------------------------------------------
 Syntax

     FONTLOAD(<cFileName>, <nFontArea>, [<nOffset>],
        [<nCounter>]) --> nErrorCode

     or

     FONTLOAD (<cFileName>, <nFontArea>,
        [<lOtherPixelHeight>])--> nErrorCode

 Arguments

     <cFileName>  Designates the name and path of the font file.

     <nFontArea>  Designates the number of the specified font area.  For
     EGA, the values 1 to 4 are allowed, or whatever values MAXFONT()
     permits.  For VGA, the values 1 to 8 are allowed, or whatever MAXFONT()
     permits.

     <nOffset>  Designates from what character position the screen
     adapter font table is overwritten.  The default value is 0.

     <nCounter>  Designates how many characters to load from the new
     font.  The default value is 256.

     <lOtherPixelHeight>  Designates .T. to allow the function to modify
     the pixel height.  This leads to a mode change and character count.
     Please note that you must designate both <nOffset> and <nCounter> to
     implement this parameter.

 Returns

     The function returns an error code which corresponds to the explanation
     below:

     Table 6-1: Values returned for FONTLOAD()
     ------------------------------------------------------------------------
     Error Code   Explanation
     ------------------------------------------------------------------------
      0           Font loaded successfully
     -2           Impossible in current video mode
     -3           Font file not found
     -4           The <lOtherPixelHeight> mode is not possible (the Extended
                  Drivers are not linked in)
     ------------------------------------------------------------------------

 Description

     FONTLOAD() allows you to load the font definitions from a file into the
     font area of an EGA or VGA card.  Use FONTSELECT() to determine which
     fonts serve as normal and high density for output.

     You may already have some of these fonts on the CA-Clipper Tools disk,
     and others can be created with the accompanying font editor.

 Technical Background

     The EGA and VGA cards permit you to modify a portion or all 256
     characters of the character generator with software.  To do this, a
     previously created pixel pattern for the character is loaded in the
     corresponding position in a font area on the screen card.  Normally, an
     EGA card has a maximum of four font areas and a VGA has eight, within
     which you can redefine all 256 characters.  Use MAXFONT() to determine
     the exact count of font areas.

     Building fonts into a program requires unnecessary memory space.
     Constructing fonts as a string within a program is also awkward.  With
     the GETFONT() and SETFONT() functions, you can load a font from a screen
     card into a string variable, or from such a variable, into a font area
     on the card.  However, FONTLOAD() only allows you to load a font from a
     file into a particular area of the screen card.  In both cases, use
     ONTSELECT() to activate the loaded font.

     On the CA-Clipper Tools sample disk, you will find a font editor to
     construct new fonts in CA-Clipper source code.

 Variable Pixel Height

     In principle, EGA and VGA screen adapters provide the opportunity to
     display fonts with 2 to 32 pixels per character (1 pixel/character only,
     when there are 200 scan lines).  ROM fonts are only available for pixel
     heights of 8, 14 and 16, which accounts for the great expansion of the
     EGA 25-/43-line modes and VGA 25-/28-/50-line modes.  You must construct
     individual fonts for all other pixel heights.  The CA-Clipper font
     editor can make this easy.

     When FONTLOAD() loads a font, it also computes the pixel height from the
     font data length.  Since a font file always contains all 256 character
     definitions, there is a formula:

        Pixel height = LEN(Font-Data)/256

     The <lOtherPixelHeight> parameter determines whether the fonts that do
     not match the pixel height just set are accepted.  This must be
     explicitly indicated, since the line count and screen mode will change.
     For this reason, you must always link in the CTUS.LIB Extended Drivers
     (see Table 6-1, returned value -4).

 Notes

     .  You cannot use FONTRESET() when a font is loaded for which
        there is no associated ROM font (all pixel heights except 8, 14, 16).
        Prior to a FONTRESET(), switch back to a permissible mode.

     .  All previously successful FONTSELECT() settings are discarded
        again during FONTLOAD().

     .  If an EGA card does not span the entire memory range, then you
        can reduce a maximum of four available font areas.  MAXFONT()
        determines the number of available fonts.

 Examples

     .  Load all 256 characters of an EGA font in area 2:

        ? FONTLOAD("\FONTS\OLDENG.014", 2)              // 0 OK<
        FONTSELECT(2)

     .  Exchange the fonts for the upper 128 characters in area 3:

        ? FONTLOAD("\FONTS\OLDENG.EGA", 3, 128, 128)    // 0 OK
        FONTSELECT(3)                                   // Select

     .  Load a 24-pixel font in the last font area:

        ? FONTLOAD("\FONTS\PC.024", MAXFONT(), .T.)


See Also: FONTSELECT() FONTRESET() GETFONT() SETFONT()

Online resources provided by: http://www.X-Hacker.org --- NG 2 HTML conversion by Dave Pearson