Answers to Your Fastgraph Questions Fastgraph is a programmer's graphics library commonly used for writing games, but useful for a variety of graphics applications. Fastgraph was written by Ted Gruber and is supported by Ted and Diana Gruber of Ted Gruber Software. It is available through mail order from the Coriolis Group, which may be contacted at: 1-800-410-0192 (orders only); outside the U.S. call (602) 483-0192; the order fax line is (602) 483-0193. For information and technical support, please do not call the Coriolis Group. Instead, contact Ted Gruber Software directly at: Ted Gruber Software P.O. Box 13408 Las Vegas, NV 89112 (702) 735-1980 (voice) (702) 735-4603 (fax) Email: fastgraph@aol.com ftp: ftp.fastgraph.com/fg web: http://www.fastgraph.com Q: What is a graphics library? A: A graphics library is a collection of general purpose functions which may be linked into your program. The purpose of Fastgraph is to give you complete control of the video environment, including initializing video memory, manipulating it, displaying images on the screen, changing colors, and so on. Q: What is the difference between a graphics library and a game engine? A: Game engines are usually specific to a particular genre of game and provide medium level functions such as collision detection. A graphics library is general purpose low-level functions which can be used in many different kinds of programs. It so happens that most of our customers use Fastgraph to develop games and educational software. Q: How long has Fastgraph been around? A: Ted started writing Fastgraph in 1987, and it has been under constant construction ever since. Diana used Fastgraph to write her first game in 1987. Q: How fast is Fastgraph? A: It's fast. Q: What games have been written with Fastgraph? A: We do not have exact information on this, but the short answer is LOTS. Many commercial and shareware games have been written with Fastgraph, including arcade games, adventure games, puzzle games, card games, RPG's, and so on. Q: Are there any requirements for releasing a game with Fastgraph? A: We only ask that you do not release public domain programs using Fastgraph. Please copyright your software, in your name or in your company's name. You can do this by simply putting "Copyright 1997 John Doe" on your software (for more information consult an attorney or get a good book on the subject). This is for your protection as well as ours. Your software is valuable; you should claim your copyright. We also recommend you register your copyright as appropriate, but that is up to you. Otherwise, there are no restrictions on the distribution of programs written with Fastgraph. There are no royalties or license fees, and you are not required to mention that you used Fastgraph to write your game (although we think it is nice if you do). Q: What is the current version number? A: We are currently shipping Fastgraph 5.00 for DOS and Fastgraph 1.02 for Windows. Q: How much does it cost? A: Fastgraph 5.0 costs $249 with no royalties or license fees. Please visit the Fastgraph Product Family page for complete pricing information. Q: Does that include source code? A: No. Source code is extra. Call the TGS office for information about source code pricing. Q: How much does it cost to upgrade? A: TGS offers substantial discounts on major upgrades. For example, the cost of upgrading from Fastgraph 4.x to 5.0 is $99. For this price, Fastgraph 4.x customers receive the same items (new manuals, new disks, etc.) in the Fastgraph 5.0 package we sell to new customers for $249. Maintenance updates (for example, version 5.00 to 5.01) are available in patch form at no charge on our web page and ftp site. Q: What is Fastgraph/Fonts? A: Fastgraph/Fonts is an add-on product that makes it easy to add bitmapped font support to Fastgraph applications. It includes 40 font files in several point sizes, font scaling and conversion utilities, and an interactive font editor. Requires Fastgraph. Q: What is Fastgraph/Image? A: Fastgraph/Image is an add-on product that provides functions and utilities for managing resource files containing images and other files. While the product was designed to manage and display BMP, PCX, JPEG, FLI/FLC, and pixel run files stored in resource files, Fastgraph/Image can be used with any type of file, including bitmaps, text files, and Fastgraph/Fonts font files. Besides making your product distribution cleaner, Fastgraph/Image resource files save disk space normally lost to disk sectoring. Fastgraph/Image comes with a library manager to conveniently add and remove files in a resource file. The resource files are indexed for quick access. Requires Fastgraph. Q: Is Fastgraph required to use the Fonts and Image products? A: Yes. Q: What do the Fonts and Image Products cost? A: Fastgraph/Fonts and Fastgraph/Image cost $69 each, or $118 if you purchase both products at the same time. Q: Are there any package deals? A: If you already have Fastgraph, you can buy the Fonts and Image products together for $118. That saves you $20. If you want to buy all three products, (Fastgraph, Fastgraph/Fonts, and Fastgraph/Image), we call that the Fastgraph Graphics Power Pack and sell it for $359. Specially-priced DOS and Windows bundles are available for all products. Please visit the Fastgraph Product Family page for complete pricing information. Q: What is Fastgraph/Light? A: Fastgraph/Light is the shareware version of Fastgraph. Q: What is the difference between Fastgraph/Light and Fastgraph? A: The biggest difference is the TSR driver, called FGDRIVER.EXE, which must be loaded into memory before any programs linked with Fastgraph/Light may be run. Fastgraph/Light supports real mode only, while Fastgraph includes libraries for real mode, 16-bit protected mode, and 32-bit protected mode. Also, the light version does not include the world space and software character functions. Q: Do Fastgraph/Light users get documentation and technical support? A: The documentation is archived and distributed online (or on disk) with Fastgraph/Light. Everybody gets technical support. Q: What languages was Fastgraph written in? A: All of Fastgraph is written in assembly language, except for the few functions which expect floating point parameters. Those are written in the language of the supported compiler. Q: What languages does Fastgraph support? A: Fastgraph supports C/C++, Fortran, Basic, Pascal, and ASM. Some programmers have found ways to use Fastgraph with other languages, such as FoxPro and Turbo Prolog, but we do not guarantee support of those languages and cannot offer technical support for them. Q: What compilers does Fastgraph support? A: Fastgraph supports these compilers: Borland C++ (version 2.0 or later) Borland Pascal (version 7.0 or later) MetaWare High C/C++ (version 3.0 or later) Microsoft BASIC PDS (version 7.0 or 7.1) Microsoft C/C++ (version 5.1 or later) Microsoft FORTRAN (version 4.0 or later) Microsoft FORTRAN PowerStation (version 1.0 or later) Microsoft QuickBASIC (version 4.0 or later) Microsoft QuickC (version 2.0 or later) Microsoft Visual Basic for DOS (version 1.0 or later) Microsoft Visual C++ (version 1.0 or later) Microsoft Visual C++ 32-bit Edition (version 1.0 or later) Turbo C (version 2.0 or later) Turbo C++ (version 1.0 or later) Turbo Pascal (version 6.0 or later) Watcom C/C++ (version 9.5 or later) Watcom C32 for DOS (version 9.5 or later) Zortech C++ (version 3.0 or later) Q: What 32-bit DOS extenders does Fastgraph support? A: Fastgraph supports these 32-bit DOS extenders: Borland PowerPack for DOS CauseWay DOSXMSF (Fortran PowerStation) FlashTek X-32 Phar Lap TNT Dos-Extender SDK Phar Lap TNT Dos-Extender Lite Rational Systems DOS/4G Rational Systems DOS/4GW Rational Systems DOS/4GW Professional Q: What 16-bit DOS extenders does Fastgraph support? A: Fastgraph supports these 16-bit DOS extenders: Blinker Borland Pascal 7 (built-in DPMI extender) Borland PowerPack for DOS Phar Lap 286|Dos-Extender SDK Phar Lap 286|Dos-Extender Lite Rational Systems DOS/16M Q: What video modes does Fastgraph support? A: Fastgraph 5.0 supports the following text and graphics modes: 40x25 color text 80x25 color text 80x25 monochrome text 320x200 16-color VGA 640x200 16-color VGA 640x350 monochrome VGA 640x350 16-color VGA 640x480 2-color VGA 640x480 16-color VGA 800x600 16-color SVGA 1024x768 16-color SVGA 1280x1024 16-color SVGA 320x200 256-color VGA 320x200 256-color "mode X" VGA 320x240 256-color "mode X" VGA 320x400 256-color "mode X" VGA 320x480 256-color "mode X" VGA 640x400 256-color SVGA 640x480 256-color SVGA 800x600 256-color SVGA 1024x768 256-color SVGA 1280x1024 256-color SVGA 320x400 64K high color SVGA 640x400 64K high color SVGA 640x480 64K high color SVGA 800x600 64K high color SVGA 1024x768 64K high color SVGA 1280x1024 64K high color SVGA 320x400 16.7M true color SVGA 640x400 16.7M true color SVGA 640x480 16.7M true color SVGA 800x600 16.7M true color SVGA 1024x768 16.7M true color SVGA 1280x1024 16.7M true color SVGA Q: What SVGA chipsets does Fastgraph support? A: Fastgraph 5.0 provides native support for 70 SVGA chipsets, plus VESA BIOS support. Here is a list of the supported SVGA chipsets: Acer Labs 3100 series   new in version 5.0 Ahead V5000A Ahead V5000B Alliance ProMotion 3210/6410   new in version 5.0 Alliance ProMotion 6422/AT24   new in version 5.0 ARK Logic 1000/2000 ATI 18800 ATI 18800-1 ATI 28800/38800 ATI mach32 (68800) ATI mach64 CX/GX ATI mach64 CT/ET/GT/VT   new in version 5.0 Avance Logic 2101 Avance Logic 2201 Avance Logic 2228/2301 Chips & Technologies 82c450/82c453 Chips & Technologies 82c451/82c455/82c456/82c457 Chips & Technologies 82c452 Chips & Technologies 64000 series Chips & Technologies 65510/65520/65525/65530 Chips & Technologies 65535 Chips & Technologies 65540/65545 Chips & Technologies 65548 Chips & Technologies 65550 series   new in version 5.0 Cirrus Logic 5402 Cirrus Logic 5420 Cirrus Logic 5422/5424/5426/5428/5429 Cirrus Logic 5430/5440 series Cirrus Logic 6200 series Cirrus Logic 6245 Cirrus Logic 6400 series Cirrus Logic 7540 series Diamond Viper with Weitek P9000 Genoa 6000 series Hualon (HMC) 86304/86314   new in version 5.0 Matrox MGA 64 Matrox MGA 1064SG/2064W NCR 77C21/77C22 NCR 77C22E NCR 77C32BLT Oak OTI-067 Oak OTI-077 Oak OTI-087 Oak 64000 series   new in version 5.0 Paradise PVGA1a Paradise WD90C00/WD90C10 Paradise WD90C11/WD90C30 Paradise WD90C24/WD90C26 Paradise WD90C31 Paradise WD90C33 Paradise WD9710   new in version 5.0 Realtek 3100 series S3 86C801/86C805 S3 86C911/86C924 S3 86C928 S3 Vision/Trio/ViRGE series Sierra 15064 (Falcon64)   new in version 5.0 SiS 6200 series Trident 8800 Trident 8900/8900B/8900C/9000 Trident 8900CL/8900D/9000C Trident 9200/9400/9600 series Tseng ET3000 Tseng ET4000AX Tseng ET4000/W32 Tseng ET6000   new in version 5.0 UMC 85C408/85C418   new in version 5.0 Video7 Weitek 5286/P9100   new in version 5.0 VESA Q: Are there any special SVGA considerations for Windows 95 or NT? A: The chipset autodetection process in fg_svgainit() will properly identify the SVGA chipset for programs run from Windows 95 and Windows NT full-screen DOS sessions. It will also detect most SVGA chipsets for programs launched directly from Windows (for example, from the Start/Run menu, the Windows 95 Explorer, or a windowed DOS session). However, for some combinations of SVGA chipsets and Windows display drivers, fg_svgainit() will not recognize the chipset (and instead will default to VESA) when programs are launched directly from Windows. There are two solutions to this problem. One, of course, is to have the user run the program from a full-screen DOS session rather than a windowed DOS session (to switch from windowed to full-screen DOS, press Alt+Enter). The better solution is to have the program switch to the equivalent of a full-screen DOS session before calling fg_svgainit(). The easiest way to do this is first select a standard VGA graphics mode with fg_setmode(19), then call fg_svgainit(), and finally set the desired SVGA video mode. Q: What file formats does Fastgraph support? A: Fastgraph supports display and creation of BMP, PCX, and pixel run files, and display of JPEG and FLI/FLC (flic) files. Q: Why did you remove the GIF functions from Fastgraph 5.0? A: Both Unisys and and IBM are claiming patents on the LZW technology, which is the cornerstone of GIF file compression. Now Unisys is requiring a royalty on any program that compresses or decompresses GIF files. If you write a program that uses Fastgraph to read or write a GIF file, you could owe royalties to Unisys. We are opposed to paying royalties to Unisys. We are opposed to software patents in general. We recommend you avoid using the GIF functions. Q: Is there a Windows version of Fastgraph? A: Fastgraph for Windows began shipping in November 1995. You can get more info about FGW from the Fastgraph for Windows FAQ. Windows versions of Fastgraph/Fonts and Fastgraph/Image are available, too. Q: Does Fastgraph support sound cards? A: No. We recommend you use a sound toolkit for that. Q: Does Fastgraph support horizontal scrolling? A: Not directly, but there are ways to do it. For an explanation, see Diana's book, Action Arcade Adventure Set, published by the Coriolis Group. Q: Are Ted and Diana related? A: They are married. Q: Can you tell me a little more about that AAAS book? A: The book documents a game engine for a side-scroller game. It includes the various editors including a level editor, sprite editor and palette manager, as well as code for smooth scrolling and sprite animation. Q: Is there a Fastgraph FTP site? A: Yes. You can get Fastgraph files, including the shareware version, the documentation, and lots of examples and code from ftp.fastgraph.com/fg. Q: So, briefly, what functions are in Fastgraph? A: Fastgraph 5.0 includes over 320 functions. Here's an alphabetical list: fg_allocate() Create a virtual video page fg_alloccms() Create a logical page in conventional memory fg_allocems() Create a logical page in expanded memory fg_allocxms() Create a logical page in extended memory fg_arc() Draw a circular arc in screen space fg_arcw() Draw a circular arc in world space fg_automode() Determine best standard VGA video mode fg_bestmode() Determine best video mode with requested resolution fg_bmphead() Read a BMP file header into a 54-byte buffer fg_bmpmode() Determine the optimal video mode for displaying a BMP image fg_bmppal() Read the palette information from a BMP file fg_bmpsize() Return the width and height of a BMP image fg_box() Draw an unfilled rectangle in screen space fg_boxdepth() Define pixel depth of unfilled rectangles fg_boxw() Draw an unfilled rectangle in world space fg_boxx() Draw an unfilled XOR rectangle in screen space fg_boxxw() Draw an unfilled XOR rectangle in world space fg_button() Return joystick button status fg_capslock() Determine state of CapsLock key fg_chgattr() Apply display attribute to existing characters fg_chgtext() Display characters using existing display attributes fg_chipset() Return active SVGA chipset name string fg_circle() Draw an unfilled circle in screen space fg_circlef() Draw a filled circle in screen space fg_circlefw() Draw a filled circle in world space fg_circlew() Draw an unfilled circle in world space fg_clipdcb() Display a direct color bitmap, with clipping fg_clipmap() Display a monochrome bitmap, with clipping fg_clipmask() Display a masking map, with clipping fg_clpimage() Display a palette-based bitmap, with clipping fg_clprect() Display a filled rectangle in screen space, with clipping fg_clprectw() Display a filled rectangle in world space, with clipping fg_clprectx() Display a filled XOR rectangle in screen space, with clipping fg_colors() Return virtual buffer or video mode color depth fg_copypage() Transfer contents of one video page to another fg_cursor() Define cursor visibility in text modes fg_dash() Draw dashed line in screen space fg_dashrel() Draw relative dashed line in screen space fg_dashrw() Draw relative dashed line in world space fg_dashw() Draw dashed line in world space fg_defcolor() Assign a color value to a virtual color index fg_defpages() Define SVGA banks for extended video pages fg_defpal() Set up default palette for direct color modes fg_dispfile() Display standard or packed pixel run file fg_display() Display standard pixel run map fg_displayp() Display packed pixel run map fg_draw() Draw solid line in screen space fg_drawdcb() Display a direct color bitmap, without clipping fg_drawmap() Display a monochrome bitmap, without clipping fg_drawmask() Display a masking map, without clipping fg_drawrel() Draw relative solid line in screen space fg_drawrelx() Draw relative XOR line in screen space fg_drawrw() Draw relative solid line in world space fg_drawrxw() Draw relative XOR line in world space fg_draww() Draw solid line in world space fg_drawx() Draw XOR line in screen space fg_drawxw() Draw XOR line in world space fg_drect() Draw dithered rectangle in screen space fg_drectw() Draw dithered rectangle in world space fg_drwimage() Display a palette-based bitmap, without clipping fg_egacheck() Determine EGA information (obsolete function) fg_ellipse() Draw unfilled ellipse in screen space fg_ellipsef() Draw filled ellipse in screen space fg_ellipsew() Draw unfilled ellipse in world space fg_ellipsfw() Draw filled ellipse in world space fg_erase() Fill video page with color 0 pixels fg_fadein() Gradually replace visual page contents with hidden page contents fg_fadeout() Gradually replace visual page contents with current color fg_fillpage() Fill video page with pixels of the current color fg_findpage() Find available virtual or logical page number fg_findrgb() Find closest matching color in an array of RGB values fg_fixdiv() Divide two fixed point quantities fg_fixed() Convert floating point value to its fixed point equivalent fg_fixmul() Multiply two fixed point quantities fg_fixtrig() Return the fixed point cosine and sine of a given angle fg_flicdone() Terminate low-level flic file processing fg_flichead() Read a flic file header into a 128-byte buffer fg_flicmode() Determine the optimal video mode for playing a flic file fg_flicopen() Open flic file for low-level processing fg_flicplay() Play one or more frames in a flic file fg_flicsize() Return the width and height of a flic image fg_flicskip() Advance one or more frames while playing a flic file fg_flipdcb() Display a reversed direct color bitmap, with clipping fg_flipmask() Display a reversed masking map, with clipping fg_float() Convert fixed point value to its floating point equivalent fg_flood() Flood fill closed screen space region, with clipping fg_floodw() Flood fill closed world space region, with clipping fg_flpimage() Display a reversed palette-based bitmap, with clipping fg_fontsize() Enable 8x8, 8x14, or 8x16 ROM font fg_freepage() Release virtual or logical video page fg_getaddr() Return address of active video page fg_getattr() Return display attribute of specified character cell fg_getbanks() Low-level interface to Fastgraph's SVGA kernel fg_getblock() Retrieve block of pixels for display with fg_putblock() fg_getchar() Return character value of specified character cell fg_getclip() Return clipping limits fg_getclock() Return number of clock ticks since midnight fg_getcolor() Return current color or display attribute fg_getdacs() Read RGB values of consecutive color registers fg_getdcb() Retrieve a direct color bitmap fg_getentry() Return video page type and address fg_gethpage() Return the hidden video page number fg_getimage() Retrieve a palette-based bitmap fg_getindex() Return color value assigned to a virtual color index fg_getkey() Read a keystroke (wait for one if necessary) fg_getlines() Return number of text rows per video page fg_getmap() Retrieve a monochrome bitmap fg_getmaxx() Return maximum x coordinate in screen space fg_getmaxy() Return maximum y coordinate in screen space fg_getmode() Return current video mode number fg_getpage() Return active video page number fg_getpixel() Return the color value of a specified pixel fg_getrgb() Read RGB values of the specified color register fg_getview() Return viewport extremes and position fg_getvpage() Return visual video page number fg_getworld() Return world space limits fg_getxbox() Return width set by fg_boxdepth() fg_getxjoy() Return horizontal position of specified joystick fg_getxjust() Return horizontal string justification setting fg_getxpos() Return horizontal position of graphics cursor fg_getybox() Return height set by fg_boxdepth() fg_getyjoy() Return vertical position of specified joystick fg_getyjust() Return vertical string justification setting fg_getypos() Return vertical position of graphics cursor fg_gouraud() Draw a Gouraud-shaded convex polygon fg_hush() Stop asynchronous sound now fg_hushnext() Stop asynchronous sound after current iteration fg_imagebuf() Define size and address of internal image buffer fg_imagesiz() Determine bitmap size in bytes fg_initems() Initialize expanded memory for logical pages fg_initjoy() Initialize joysticks fg_initpm() Initialize Fastgraph's protected mode kernel fg_initw() Initialize world space fg_initxms() Initialize extended memory for logical pages fg_inside() Determine if point lies inside a convex polygon fg_intjoy() Return joystick position analogous to keyboard codes fg_intkey() Read a keystroke (don't wait if none available) fg_invdcb() Invert a direct color bitmap fg_invert() Invert any bitmap fg_jpegbuf() Specify the buffer size and address for displaying JPEG files fg_jpeghead() Read a JPEG file header into a 10-byte buffer fg_jpegmem() Return the number of bytes required for the fg_jpegbuf() buffer fg_jpegmode() Determine the optimal video mode for displaying a JPEG image fg_jpegsize() Return the width and height of a JPEG image fg_justify() Define string justification settings fg_kbinit() Initialize Fastgraph's low-level keyboard handler fg_kblast() Return scan code for last key processed by low-level handler fg_kbreset() Reset Fastgraph's low-level keyboard handler fg_kbtest() Check if requested (or any) key is pressed or released fg_loadpcx() Display a PCX file in a virtual buffer fg_locate() Establish text cursor position fg_makebmp() Create a BMP file fg_makepcx() Create a PCX file fg_makeppr() Create a packed pixel run file fg_makespr() Create a standard pixel run file fg_maprgb() Map RGB components to color or palette value fg_measure() Benchmark the system speed fg_memavail() Determine amount of conventional memory available to DOS fg_memory() Determine amount of video memory present fg_modename() Return mode description string for specified mode fg_mouse256() Define 256-color mouse cursor fg_mousebut() Return mouse button press/release counts and position fg_mousecur() Define text mode mouse cursor fg_mousedcb() Define high color or true color mouse cursor fg_mousefin() Terminate mouse processing fg_mouseini() Initialize the mouse fg_mouselim() Define mouse extents fg_mousemov() Move mouse cursor to specified position fg_mousepos() Return mouse position information fg_mouseptr() Define mouse cursor shape and appearance fg_mousesiz() Define mouse cursor size (32-bit libraries only) fg_mousespd() Define speed of mouse movement fg_mousevis() Define mouse cursor visibility fg_move() Establish graphics cursor position fg_move3d() Build 3D transformation matrix for absolute or relative move fg_moverel() Establish graphics cursor position relative to current position fg_moverw() Establish relative graphics cursor position in world space fg_movew() Establish graphics cursor position in world space fg_music() Play sequence of musical tones fg_musicb() Play sequence of musical tones concurrent with other activity fg_numlock() Determine state of NumLock key fg_pack() Convert 256-color bitmap to 16-color bitmap fg_pagesize() Return video page size in bytes fg_paint() Flood fill closed screen space region, without clipping fg_paintw() Flood fill closed world space region, without clipping fg_palette() Define value of a color register using old RGB format fg_palettes() Define value of first 16 color registers using old RGB format fg_pan() Perform hardware panning in screen space fg_panw() Perform hardware panning in world space fg_pattern() Define display pattern for pixel run maps or pixel run files fg_pcxhead() Read a PCX file header into a 128-byte buffer fg_pcxmode() Determine the optimal video mode for displaying a PCX image fg_pcxpal() Read the palette information from a PCX file fg_pcxrange() Return PCX image extents fg_pcxsize() Return PCX image dimensions fg_playing() Determine if asynchronous sound is in progress fg_point() Display a pixel in screen space, with clipping fg_pointw() Display a pixel in world space, with clipping fg_pointx() Display an XOR pixel in screen space, with clipping fg_pointxw() Display an XOR pixel in world space, with clipping fg_polyedge() Specify if fg_polyfill() includes right/bottom edge pixels fg_polyfill() Draw a filled polygon in screen space fg_polygon() Draw an unfilled polygon in screen space (separate x,y arrays) fg_polygonw() Draw an unfilled polygon in world space (separate x,y arrays) fg_polyline() Draw an unfilled polygon in screen space (single x,y array) fg_polyoff() Define offset applied to polygon vertices fg_print() Display a string in screen space, without clipping fg_printc() Display a string in screen space, with clipping fg_project() Project 3D (x,y,z) points to 2D (x,y) screen space points fg_putblock() Display block of pixels retrieved with fg_getblock() fg_putdcb() Display a direct color bitmap with no transparent pixels fg_putimage() Display a palette-based bitmap with no transparent pixels fg_putpixel() Display a pixel in screen space, without clipping fg_quiet() Stop continuous asynchronous sound started with fg_sound() fg_rect() Draw a filled rectangle in screen space fg_rectw() Draw a filled rectangle in world space fg_rectx() Draw an XOR rectangle in screen space fg_reset() Erase screen and restore screen attributes fg_resize() Change dimensions of all video pages fg_restore() Copy rectangular region from hidden page to active page fg_restorew() World space version of fg_restore() fg_resume() Restart suspended asynchronous music fg_revdcb() Display a reversed direct color bitmap, without clipping fg_revimage() Display a reversed palette-based bitmap, without clipping fg_revmask() Display a reversed masking map, without clipping fg_rotate() Perform arbitrary bitmap rotation fg_rotate3d() Build 3D transformation matrix for absolute/relative rotation fg_rotdcb() Rotate a direct color bitmap fg_rotsize() Determine the dimensions of a rotated bitmap fg_save() Copy rectangular region from active page to hidden page fg_savew() World space version of fg_save() fg_scale() Scale a 256-color bitmap fg_scaledcb() Scale a direct color bitmap fg_scrlock() Determine state of ScrollLock key fg_scroll() Vertically scroll a region of the active video page fg_setangle() Define angle of rotation for software characters fg_setattr() Define display attribute for text modes fg_setbanks() Low-level interface to Fastgraph's SVGA kernel fg_setcaps() Define state of CapsLock key fg_setclip() Define clipping limits in screen space fg_setclipw() Define clipping limits in world space fg_setcolor() Define current color fg_setdacs() Define RGB values of consecutive color registers fg_setentry() Manually define video page type and address fg_setfunc() Define logical operation for 16-color graphics modes fg_sethpage() Establish the hidden video page fg_setlines() Extend 80-column text mode to 25, 43, or 50 lines fg_setmode() Establish video mode and initialize Fastgraph's internals fg_setnum() Define state of NumLock key fg_setpage() Establish the active video page fg_setratio() Define aspect ratio for software characters fg_setrgb() Define RGB values of the specified color register fg_setsize() Define height of software characters in screen space fg_setsizew() Define height of software characters in world space fg_setview() Define viewport extremes and position fg_setvpage() Establish the visual video page fg_setworld() Define world space coordinate system fg_shear() Shear a 256-color bitmap fg_sheardcb() Shear a direct color bitmap fg_showbmp() Display a BMP file fg_showflic() Plays an FLI or FLC file fg_showjpeg() Display a JPEG file fg_showpcx() Display a PCX file fg_showppr() Display a packed pixel run file fg_showspr() Display a standard pixel run file fg_sound() Produce tone of specified frequency and duration fg_sounds() Play series of tones concurrent with other activity fg_split() Enable or disable a split screen environment fg_stall() Wait the specified number of delay units fg_suspend() Suspend asynchronous music started with fg_musicb() fg_svgainit() Autodetect SVGA chipset and initialize Fastgraph's SVGA kernel fg_svgastat() Return SVGA information fg_svgaver() Return SVGA kernel version number fg_swchar() Display software characters fg_swlength() Determine width of a string of software characters fg_swtext() Scaled down version of fg_swchar() fg_tcdefine() Define transparency attribute for any color fg_tcmask() Define transparency attributes for first 16 colors fg_tcxfer() Version of fg_transfer() that supports transparent pixels fg_testmode() Determine if requested video mode is available fg_texmap() Draw a texture-mapped convex polygon fg_text() Display a string in character space, without clipping fg_textc() Display a string in character space, with clipping fg_texture() Define texture bitmap for fg_texmap() fg_transfer() Copy rectangular region from one video page to another fg_unmaprgb() Extract RGB color components from an encoded color value fg_unpack() Convert 16-color bitmap to 256-color bitmap fg_vbaddr() Return virtual buffer address fg_vballoc() Create virtual buffer of specified size, automatic allocation fg_vbclose() Close the active virtual buffer fg_vbcopy() Copy rectangular region between virtual buffers fg_vbcut() Copy rectangular region from active video page to virtual buffer fg_vbdefine() Create virtual buffer of specified size, manual allocation fg_vbdepth() Define virtual buffer color depth in bits per pixel fg_vbfree() Release a virtual buffer handle and free its memory fg_vbhandle() Return handle of active virtual buffer fg_vbinit() Initialize Fastgraph's virtual buffer environment fg_vbopen() Make an existing virtual buffer the active virtual buffer fg_vbpaste() Copy rectangular region from virtual buffer to active video page fg_vbscale() Version of fg_vbpaste() that performs scaling fg_vbsize() Return amount of memory needed for a virtual buffer fg_vbtccopy() Version of fg_vbcopy() that supports transparent pixels fg_vbtcxfer() Version of fg_vbpaste() that supports transparent pixels fg_vbundef() Release a virtual buffer handle fg_version() Return Fastgraph version number fg_vgastate() Save or restore VGA state fg_view3d() Define the 3D viewport and projection ratio fg_waitfor() Wait the requested number of clock ticks fg_waitkey() Wait for any keystroke fg_waitvr() Enable or disable vertical retrace synchronization fg_where() Return text cursor position fg_xalpha() Translate screen space x coordinate to character space column fg_xconvert() Translate character space column to screen space x coordinate fg_xscreen() Translate world space x coordinate to screen space fg_xview() Translate horizontal viewport coordinate to screen space fg_xworld() Translate screen space x coordinate to world space fg_yalpha() Translate screen space y coordinate to character space row fg_yconvert() Translate character space row to screen space y coordinate fg_yscreen() Translate world space y coordinate to screen space fg_yview() Translate vertical viewport coordinate to screen space fg_yworld() Translate screen space y coordinate to world space