GFNAMES.TXT for GFONTS version 3.0 (September, 1990) A list of all the subprograms and assembly language calls with GFONTS 3.0 The following list give the routine name and calling parameters along with a brief description. Note that unless otherwise indicated, all the calls have the following 6 parameters: (a$, x%, y%, xs%, ys%, clr%) where a$ is the string to print, x% is the x starting position, y% is the y starting position, xs% is the x stepping (distance) between the characters horizontally, ys% is the y stepping (distance) between the characters (vertically), and clr% is the color number (0 to 15.) --------------------------------------------------------------------------- GFTBL (EGAsegment%, EGAoffset%, VGAsegment%, VGAoffset%) Call GFTBL to return the starting addresses of the EGA and VGA ROM character sets (the "universal" 8x8 set is at a standard address in all IBM-compatible PC's.) --------------------------------------------------------------------------- The thirteen ASSEMBLY calls: All of the assembly routines require an EGA or VGA and use the EGA BIOS for direct screen writes. EGA8x8 - assembly "universal" 8x8 characters. EGA8x16 - assembly double-high "universal" 8x8 set. EGA8x14 - assembly EGA set 8x14 characters. EGA8x28 - assembly EGA double-high. EGA16x14 - assembly EGA ROM set double-wide. EGA16x16 - assembly "universal" ROM set double-wide. EGA16x24 - assembly EGA ROM set double-wide, double-high. EGA16x36 - assembly EGA ROM set double-wide, double-high. The VGA... assembly fonts can use either the VGA ROM character set if you have a VGA, or a BLOADED 4k font file. You have to pass the segment and offset of the BLOADED file (using VARSEG and VARPTR) or the GFTBL variables (if using VGA ROM set.) VGA8x16 - VGA ROM set or BLOAD 4k font file. VGA8x32 - same as above except double-high. VGA16x16 - VGA ROM set double-wide. VGA16x32 - same as above only double-high. USER24 (Useg%, Uoff%, a$, x%, y%, xs%, ys%, clr%) 16x24 pixel characters. You must pass the segment and offset of the 12k font file you created with BIGFONT.EXE and BLOADED into QuickBASIC. Three of the assembly fonts (EGA16x24, EGA16x36 and VGA 16x32) only display alternate scan lines (making the font look like a raster, or striped.) To make solid characters you have to call the routines twice (or three times in the case of EGA16x36.) While some folks might find this a bother, this method allows striped messages, solid color messages and two (or three) color messages all with one routine! And they are very fast, to boot. Also, please note that the 16x24 pixel fonts you design with BIGFONT.EXE do not have to use all the available pixels. Very small fonts can be created (someone sent me a 3x5 pixel font made with BIGFONT - cute and tiny!) and you can also create VERTICAL versions up to 16 pixels "tall" (or backwards for computers south of the equator, or upside down for those who compute while doing yoga.) ----------------------------------------------------------------------------- SUBPROGRAMS found in $GFONTS.BAS For all the "GFV..." subprograms you can use either the VGA BIOS ROM character set (if you have a VGA and call GFTBL) or a 4k font file that has been BLOADED into your QB program (and you equate the shared variables, VGAseg and VGAoffset with the address of the BLOADed file, using VARSEG and VARPTR.) The subprograms are arranged roughly by smallest to largest (but see Fill and Erector at the end for variable sizes.) -------------------------- Vertical versions of the three basic fonts: (note that xstart and ystart are the bottom-left pixel of the character) GF8x8vert - universal ROM set GFE8x12vert - EGA ROM set GFV8x14vert - VGA ROM set (or 4k file) ------------------------------------ Universal ROM 8x8 set twice as tall: GF8x16bold - a "thick" sort of bold GF8x16ital - italics GF8x16vert - vertical ------------------------------------- Universal ROM 8x8 three times as tall: GF8x24 --------------------------- EGA 8x14 ROM twice as tall: GFE8x24stripe (a$, x%, y%, xs%, ys%, clr1%, clr2%) stripe is 2 colors allowing "mixed" colors GFE8x24ital - italics GFE8x24vert - vertical ----------------------------------------------------- VGA 8x14 or 4k BLOADED font file (8x16) twice as tall: GFV8x28 GFV12x32box (a$, x%, y%, xs%, ys%, clr1%, clr2%) -has 2 colors and draws a box around character GFV8x28bent (a$, x%, y%, xs%, ys%, clr1%, clr2%) -has 2 colors and sort of backwards italic GFV8x28ital - italic GFV8x28vert - vertical ------------------------------------ EGA 8x12 ROM set three times as tall: GFE8x36 GFE8x36vert - vertical -------------------------------------- VGA 8x14 ROM or 4k BLOADed file (8x16): GFV8x42 GFV8x42vert - vertical -------------------------------------- The three basic ROM sets twice as wide 2 X wide GF16x8 - universal 8x8 ROM GFE16x12 - EGA ROM GFV16x14 - VGA or 4k BLOAD file ----------------------------------------------- GF16x16 - Universal ROM set, 2 times wide and 2 times tall ------------------------------------------------ Universal ROM set, 2 times wide and 3 times tall GF16x24 GF16x24ital - italic --------------------------------------- EGA ROM, 2 times wide and 2 times tall GFE16x24 GFE16x24a (a$, x%, y%, xs%, ys%, clr1%, clr2%) - has 2 colors in broad horizontal stripes GFE16x24ital - italic ------------------------------------------------- VGA ROM or 4k BLOAD 2 times wide and 2 times tall GFV16x28 GFV16x28a (a$, x%, y%, xs%, ys%, clr1%, clr2%) - 2 colors in broad stripes GFV16x28ital --------------------- EGA 2 wide by 3 tall: GFE16x36 GFE16x36bent - sort of backwards italic GFE16x36ital - italic ------------------------------ VGA or BLOAD 2 wide by 3 tall: GFV16x42 GFV16x42bent GFV16x42ital GFV16x42raster ---------------------------------------- The SHADOW fonts for the three ROM sets: The "shadows" have 2 colors and are thicker than normal. clr%1 is background (I think) GF17x25shadow (a$, x%, y%, xs%, ys%, clr1%, clr2%) - 8x8 ROM set GFE24x36shadow (a$, x%, y%, xs%, ys%, clr1%, clr2%) - EGA set GFV24x42shadow (a$, x%, y%, xs%, ys%, clr1%, clr2%) - VGA or 4k BLOAD -------------------------------------- "Stacked dots" for the three ROM sets: The "dots" have 3 colors, which if carefully chosen, make the font appear 3-D. The PSET statement is used for these. GF21x27dots (a$, x%, y%, xs%, ys%, clr1%, clr2%, clr3%) - 8x8 ROM set GFE24x36dots (a$, x%, y%, xs%, ys%, clr1%, clr2%, clr3%) - EGA set GFV24x42dots (a$, x%, y%, xs%, ys%, clr1%, clr2%, clr3%) - VGA or 4k BLOAD ------------------------------------ "Tile" fonts for the three ROM sets: Tiles, Fills, and Erectors are my personal favorites GF18x19tile - 8x8 ROM set 2 wide by 2 tall - simple and nice GFE18x28tile (a$, x%, y%, xs%, ys%, clr1%, clr2%, clr3%) - EGA ROM, 2 wide by 2 tall, example for custom tile colors GFV18x32tile - VGA or 4k BLOAD 2 wide by 2 tall (some BLOAD's don't fit so well) GF26x27tile - 8x8 ROM 3 wide by 3 tall GFE27x27tile - EGA ROM 3 wide by 2 tall GFV27x32tile - VGA ROM or 4k BLOAD, 3 wide by 2 tall GFE27x41tile - EGA ROM 3 wide by 4 tall GFV27x45tile - VGA ROM or 4k BLOAD, 3 wide by 4 tall --------------------------------------------------- "Erector Set" fonts for EGA and VGA (or 4k BLOAD): Erectors have 2 colors, one for vertical and horizontal lines and the other for diagonal lines. The xsize and ysize parameters are a scale multiplier, that is if xsize = 2 and ysize = 3 then the font will be 2 times wider than the ROM size (which is always 8) and will be 3 times taller than the ROM size. GFEerector (a$, x%, y%, xs%, ys%, clr1%, clr2%, xsize%, ysize%) - EGA ROM GFVerector (a$, x%, y%, xs%, ys%, clr1%, clr2%, xsize%, ysize%) - VGA or 4k ------------------------------------------------- "Filled" fonts for the EGA and VGA (or 4k BLOAD): The "fills" have x and y multiply size parameters like the Erector Set fonts above. They are useful for very large characters because they add diagonal fill areas to what would otherwise be very blocky fonts. They also look nice as small characters because of the rounded corners. GFEfill (a$, x%, y%, xs%, ys%, clr%, xsize%, ysize%) - EGA GFVfill (a$, x%, y%, xs%, ys%, clr%, xsize%, ysize%) - VGA or 4k BLOAD ------------------------------------------- "Circle" fonts for EGA and VGA (or 4k BLOAD): These use the CIRCLE statement and have 2 colors, for border and fill color. They are rather slow, but are nice if you intend to "capture" a screen for later use. GFE48x72circ (a$, x%, y%, xs%, ys%, clr1%, clr2%) GFV48x84circ (a$, x%, y%, xs%, ys%, clr1%, clr2%) --------------------------------------------------- GFRainbow is a multicolored raster font. Clr1% is the "background" color (for the bars that don't change color), while clr2% is the beginning palette number. If you repeatedly call this font it will rotate the colors - a very pleasing effect. GFRainbow (a$, x%, y%, xs%, ys%, clr1%, clr2%) ------------------------------------------------------------------------ That's all, folks. If you have a VGA and BLOAD two 12k font files for USER24 and four 4k font files for the BASIC "GFV..." and assembly "VGA..." fonts, and use 6 size combinations for Fill and Erector, you would have over 200 fonts at your fingertips (25 of them using assembly language!) Please remember that ALL source code is included and you can modify these fonts to your heart's content. (I have even experimented with 16x24 fonts using 24 colors in 640x480 256-color mode. They work!) Happy Programming....