home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 19 / CD_ASCQ_19_010295.iso / vrac / fgfaq.zip / FASTGRAF.FAQ next >
Text File  |  1994-10-23  |  30KB  |  618 lines

  1. Fastgraph FAQ, last updated 10/23/94
  2.  
  3. Introduction:
  4.  
  5. Fastgraph is a programmer's graphics library commonly used for writing games,
  6. but useful for a variety of graphics applications. Fastgraph was written by
  7. Ted Gruber and is supported by Ted and Diana Gruber of Ted Gruber Software. It
  8. is available through mail order from the Coriolis Group, which may be
  9. contacted at: 1-800-410-0192; outside the U.S. call (602) 483-0192; the order
  10. fax line is (602) 483-0193.
  11.  
  12. For information and technical support, please do not call the Coriolis Group.
  13. Instead, contact Ted Gruber Software directly at:
  14.  
  15. Ted Gruber Software      (702) 735-1980 (voice)
  16. P.O. Box 13408           (702) 735-4603 (fax)
  17. Las Vegas, NV 89112      (702) 796-7134 (BBS)
  18.  
  19. Email: fastgraph@aol.com or 72000.1642@compuserve.com
  20. ftp: ftp@accessnv.com
  21.  
  22. Frequently asked questions:
  23.  
  24. Q. What is a graphics library?
  25. A. A graphics library is a collection of general purpose functions which may
  26. be linked into your program. The purpose of Fastgraph is to give you complete
  27. control of the video environment, including initializing video memory,
  28. manipulating it, displaying images on the screen, changing colors, and so on.
  29.  
  30. Q. What is the difference between a graphics library and a game engine?
  31. A. Game engines are usually specific to a particular genre of game and provide
  32. medium level functions such as collision detection. A graphics library is
  33. general purpose low-level functions which can be used in many different kinds
  34. of programs.
  35.  
  36. Q. How long has Fastgraph been around?
  37. A. Ted started writing Fastgraph in 1987, and it has been under constant
  38. construction ever since. Diana used Fastgraph to write her first game in 1987.
  39.  
  40. Q. How fast is Fastgraph?
  41. A. It's fast.
  42.  
  43. Q. What games have been written with Fastgraph.
  44. A. We do not have exact information on this, but the short answer is LOTS.
  45. Many commercial and shareware games have been written with Fastgraph,
  46. including arcade games, adventure games, puzzle games, card games, RPG's, and
  47. so on. For some sample shareware games, call our bbs at (702) 796-7134 or
  48. check our ftp site at ftp.accessnv.com.
  49.  
  50. Q. Are there any requirements for releasing a game with Fastgraph?
  51. A. We only ask that you do not release public domain programs using Fastgraph.
  52. Please copyright your software. Otherwise, there are no royalties or license
  53. fees, and you are not required to mention that you used Fastgraph to write
  54. your game (although we think it is nice if you do).
  55.  
  56. Q. What is the current version number?
  57. A. We are currently shipping Fastgraph 4.0.
  58.  
  59. Q. How much does it cost?
  60. A. Fastgraph 4.0 costs $249 with no royalties or license fees.
  61.  
  62. Q. Does that include source code?
  63. A. No. Source code is extra. Call the TGS office for information about source
  64. code pricing.
  65.  
  66. Q. How much does it cost to upgrade?
  67. A. You can upgrade from 3.x to 4.0 for $69 plus shipping. That includes a new
  68. manual (approximately 750 pages).
  69.  
  70. Q. What is Fastgraph/Fonts?
  71. A. Fastgraph/Fonts is a Fastgraph add-on product providing 40 bitmapped fonts
  72. and the code to display them, as well as a font editor and a conversion
  73. program to use TrueType fonts with Fastgraph. The Fastgraph Font editor was
  74. written by Steve Hodsdon.
  75.  
  76. Q. What is Fastgraph/Image?
  77. A. Fastgraph/Image is a file resource manager. You can stuff lots of small
  78. files into one binary file, sometimes referred to as a library file. It comes
  79. with a library manager to conveniently add files to the resource file. The
  80. resource file is indexed for quick access.
  81.  
  82. Q. Is Fastgraph required to use the Fonts and Image products?
  83. A. Yes.
  84.  
  85. Q. What do the Fonts and Image products cost?
  86. A. Fastgraph/Fonts costs $69 and Fastgraph/Image costs $69. 
  87.  
  88. Q. Are there any package deals?
  89. A. If you already have Fastgraph, you can buy the Fonts and Image products
  90. together for $118. That saves you $20. If you want to buy all three products,
  91. Fastgraph, Fastgraph/Fonts and Fastgraph/Image, we call that the Fastgraph
  92. Power Pack and sell it for $359.
  93.  
  94. Q. What is Fastgraph/Light?
  95. A. Fastgraph/Light is the shareware version of Fastgraph.
  96.  
  97. Q. What is the difference between Fastgraph/Light and Fastgraph?
  98. A. The biggest difference is the TSR driver, called FGDRIVER.EXE, which must
  99. be loaded into memory before any programs linked with Fastgraph/Light may be
  100. run. Also, there are several functions missing from the Light version,
  101. including the functions which require floating point (world space coordinates
  102. and stroked character fonts) and the GIF functions, which were left out for
  103. size reasons.
  104.  
  105. Q. Do Fastgraph/Light users get documentation and technical support?
  106. A. The documentation is archived and distributed online (or on disk) with
  107. Fastgraph/Light. Everybody gets technical support.
  108.  
  109. Q. What is Fastgraph/Help?
  110. A. Fastgraph/Help is a hypertext help system that may be used as a standalone
  111. program or a tsr. You may highlight Fastgraph functions in your code and press
  112. a hotkey combination, and you will get an explanation of the function and
  113. the parameters that are passed to it.
  114.  
  115. Q. Do you write that?
  116. A. No. Mike Stephenson wrote it. We paid him for it and provide it to you for
  117. free.
  118.  
  119. Q. Has anybody else helped write parts of Fastgraph?
  120. A. Randy Dryburgh wrote parts of Fastgraph/Fonts. John Wagner wrote the
  121. original Fastgraph/Image. Steve Hodson wrote the Fastgraph font editor and
  122. the TrueType conversion program.
  123.  
  124. Q. What languages was Fastgraph written in?
  125. A. All of Fastgraph is written in assembly language, except for the few
  126. functions which expect floating point parameters. Those are written in the
  127. language of the supported compiler.
  128.  
  129. Q. What languages does Fastgraph support?
  130. A. Fastgraph supports C, Fortran, Basic, Pascal, and ASM. Some programmers
  131. have found ways to use Fastgraph with other languages, such as FoxPro and
  132. Turbo Prologue, but we do not guarantee support of those languages and cannot
  133. offer technical support for them.
  134.  
  135. Q. What compilers does Fastgraph support?
  136. A. Borland C++ (version 2.0 or later)
  137.    Borland Pascal (version 7.0 or later)
  138.    MetaWare High C/C++ (version 3.0 or later)
  139.    Microsoft BASIC PDS (version 7.0 or 7.1)
  140.    Microsoft C/C++ (version 5.1 or later)
  141.    Microsoft FORTRAN (version 4.0 or later)
  142.    Microsoft FORTRAN PowerStation (version 1.0 or later)
  143.    Microsoft QuickBASIC (version 4.0 or later)
  144.    Microsoft QuickC (version 2.0 or later)
  145.    Microsoft Visual Basic for DOS (version 1.0 or later)
  146.    Microsoft Visual C++ (version 1.0 or later)
  147.    Microsoft Visual C++ 32-bit Edition (version 1.0 or later)
  148.    Power C (version 2.0 or later)
  149.    Turbo C (version 2.0 or later)
  150.    Turbo C++ (version 1.0 or later)
  151.    Turbo Pascal (version 6.0 or later)
  152.    Watcom C/C++ (version 9.5 or later)
  153.    Watcom C32 for DOS (version 9.5 or later)
  154.    Zortech C++ (version 3.0 or later)
  155.  
  156. Q. What DOS extenders does Fastgraph support?
  157. A. Borland PowerPack 16-bit and 32-bit
  158.    Phar Lap 286 and 386 (TNT)
  159.    Rational Systems DOS/16M and DOS/4G family
  160.  
  161. Q. What video modes does Fastgraph support?
  162. A.
  163.  
  164. Mode                     No. of    Supported                Supported
  165. No.  Type Resolution     Colors    Adapters                 Displays
  166.  
  167.  0   T    40 x 25        16/8      CGA,EGA,VGA,MCGA,SVGA    RGB,ECD,VGA,SVGA
  168.  1   T    40 x 25        16/8      CGA,EGA,VGA,MCGA,SVGA    RGB,ECD,VGA,SVGA
  169.  2   T    80 x 25        16/8      CGA,EGA,VGA,MCGA,SVGA    RGB,ECD,VGA,SVGA
  170.  3   T    80 x 25        16/8      CGA,EGA,VGA,MCGA,SVGA    RGB,ECD,VGA,SVGA
  171.  4   G    320 x 200      4         CGA,EGA,VGA,MCGA,SVGA    RGB,ECD,VGA,SVGA
  172.  5   G    320 x 200      4         CGA,EGA,VGA,MCGA,SVGA    RGB,ECD,VGA,SVGA
  173.  6   G    640 x 200      2/16      CGA,EGA,VGA,MCGA,SVGA    RGB,ECD,VGA,SVGA
  174.  7   T    80 x 25        b/w       MDA,HGC,EGA,VGA,SVGA     Monochrome
  175.  9   G    320 x 200      16        Tandy 1000,PCjr          RGB
  176. 11   G    720 x 348      b/w       HGC                      Monochrome
  177. 12   G    320 x 200      b/w       HGC                      Monochrome
  178. 13   G    320 x 200      16        EGA,VGA,SVGA             RGB,ECD,VGA,SVGA
  179. 14   G    640 x 200      16        EGA,VGA,SVGA             RGB,ECD,VGA,SVGA
  180. 15   G    640 x 350      b/w       EGA,VGA,SVGA             Mono,VGA,SVGA
  181. 16   G    640 x 350      16/64     EGA,VGA,SVGA             ECD,VGA,SVGA
  182. 17   G    640 x 480      2/256K    VGA,MCGA,SVGA            VGA,SVGA
  183. 18   G    640 x 480      16/256K   VGA,SVGA                 VGA,SVGA
  184. 19   G    320 x 200      256/256K  VGA,MCGA,SVGA            VGA,SVGA
  185. 20   G    320 x 200      256/256K  VGA,SVGA                 VGA,SVGA
  186. 21   G    320 x 400      256/256K  VGA,SVGA                 VGA,SVGA
  187. 22   G    320 x 240      256/256K  VGA,SVGA                 VGA,SVGA
  188. 23   G    320 x 480      256/256K  VGA,SVGA                 VGA,SVGA
  189. 24   G    640 x 400      256/256K  SVGA                     SVGA
  190. 25   G    640 x 480      256/256K  SVGA                     SVGA
  191. 26   G    800 x 600      256/256K  SVGA                     SVGA
  192. 27   G    1024 x 768     256/256K  SVGA                     SVGA
  193. 28   G    800 x 600      16/256K   SVGA                     SVGA
  194. 29   G    1024 x 768     16/256K   SVGA                     SVGA
  195.  
  196. Q. What SVGA chipsets does Fastgraph support?
  197. A. Ahead "A" type
  198.    Ahead "B" type
  199.    ATI 18800
  200.    ATI 18800-1
  201.    ATI 28800
  202.    Chips & Technologies 82c451/455/456
  203.    Chips & Technologies 82C452
  204.    Chips & Technologies 82C453
  205.    Cirrus Logic 5400 series
  206.    Genoa 6000 series
  207.    Oak OTI-067
  208.    Paradise PVGA1a
  209.    Paradise WD90C00/WD90C10
  210.    Paradise WD90C11/WD90C30/WD90C31
  211.    S3
  212.    Trident 8800
  213.    Trident 8900
  214.    Trident 8900B/8900C/9000
  215.    Tseng ET3000
  216.    Tseng ET4000
  217.    Video7
  218.    VESA
  219.  
  220. Q. Are any chipsets problematic?
  221. A. Some chipsets, notably those in laptops, sometimes fail the autodetection.
  222. Since it is still possible to initialize those chipsets, we recommend you give
  223. your users some kind of manual override if the autodetection fails.
  224.  
  225. Q. Are any video cards problematic?
  226. A. We've found problems supporting the Diamond Viper card (and so have other
  227. programmers). At this time, this video card is supported through VESA only.
  228.  
  229. Q. What file formats does Fastgraph support?
  230. A. Fastgraph supports reading and writing PCX, GIF, and RLE files, and you can
  231. read (display) Autodesk Animator FLI/FLC files.
  232.  
  233. Q. Are you going to do a Windows version of Fastgraph?
  234. A. Probably some day. We are looking into it.
  235.  
  236. Q. Does Fastgraph support sound cards?
  237. A. No. You need a sound and music library for that, such as the WORX toolkit
  238. from Mystic Software, the Sound Operating System by HMI, or Digpak/Midpak by
  239. the Audio Solution.
  240.  
  241. Q. Does Fastgraph support horizontal scrolling?
  242. A. Not directly, but there is a way to do it. For an explanation, see Diana's
  243. book, Action Arcade Adventure Set, published by the Coriolis Group.
  244.  
  245. Q. Are Ted and Diana related?
  246. A. They are married.
  247.  
  248. Q. How come when I leave Ted email on CompuServe or the Internet, Diana
  249. answers it?
  250. A. Ted is "modem impaired".
  251.  
  252. Q. Can you tell me a little more about that A.A.A.S. book?
  253. A. The book documents a game engine for a side-scroller game. It includes
  254. the various editors including a level editor, sprite editor and palette
  255. manager, as well as code for smooth scrolling and sprite animation.
  256.  
  257. Q. Is there a Fastgraph FTP site?
  258. A. Yes. You can get Fastgraph files, including the shareware version, the
  259. documentation, and lots of examples and code from ftp.accessnv.com.
  260.  
  261. Q. So, briefly, what functions are in Fastgraph?
  262. A. See the Summary of Fastgraph Functions below.
  263.  
  264.                        Summary of Fastgraph Functions
  265.                        ------------------------------
  266.  
  267. Video initialization
  268. --------------------
  269. fg_automode    determine which available video mode offers the highest
  270.                resolution and number of colors
  271. fg_bestmode    choose the best video mode given resolution and video page
  272.                requirements
  273. fg_cursor      turn the text mode cursor on or off
  274. fg_egacheck    return information about the active EGA or VGA adapter and
  275.                display
  276. fg_getlines    get the number of text rows per video page
  277. fg_getmode     return the current video mode number
  278. fg_initpm      initialize Fastgraph's protected mode kernel
  279. fg_reset       erase the screen, restoring screen attributes if ANSI.SYS is
  280.                loaded
  281. fg_setlines    in EGA/VGA/SVGA text modes, establish 25, 43, or 50 line mode
  282. fg_setmode     establish a video mode and initialize Fastgraph
  283. fg_svgainit    autodetect the SVGA chipset (or VESA) and initialize
  284.                Fastgraph's SVGA kernel
  285. fg_testmode    determine whether or not a video mode is available on the
  286.                system
  287.  
  288. Coordinate systems
  289. ------------------
  290. fg_getmaxx     get the maximum x coordinate in screen space
  291. fg_getmaxy     get the maximum y coordinate in screen space
  292. fg_getview     return current viewport extremes
  293. fg_getworld    determine the current limits of the world space coordinate
  294.                system
  295. fg_initw       initialize the world space coordinate system
  296. fg_setview     define viewport extremes and position
  297. fg_setworld    define the floating point world space coordinate system
  298. fg_xalpha      translate screen space x coordinate to character space column
  299. fg_xconvert    translate character space column to screen space x coordinate
  300. fg_xscreen     translate world space x coordinate to screen space x coordinate
  301. fg_xview       translate horizontal viewport coordinate to screen space
  302. fg_xworld      translate screen space x coordinate to world space x coordinate
  303. fg_yalpha      translate screen space y coordinate to character space row
  304. fg_yconvert    translate character space row to screen space y coordinate
  305. fg_yscreen     translate world space y coordinate to screen space y coordinate
  306. fg_yview       translate vertical viewport coordinate to screen space
  307. fg_yworld      translate screen space y coordinate to world space y coordinate
  308.  
  309. Colors and palettes
  310. -------------------
  311. fg_colors      return number of colors available in the current video mode
  312. fg_defcolor    assign a color value to a virtual color index
  313. fg_getcolor    get the current color index (graphics modes) or display
  314.                attributes (text modes)
  315. fg_getdacs     get the RGB components of a block of DAC registers
  316. fg_getindex    get the color value assigned to a virtual color index
  317. fg_getrgb      get the RGB components of a specified DAC register
  318. fg_maprgb      map six-bit RGB components to a 16-color palette value
  319. fg_palette     assign a color value to a palette
  320. fg_palettes    define 16 palette register values
  321. fg_setattr     establish display attributes in text modes
  322. fg_setcolor    establish the current color index
  323. fg_setdacs     specify RGB components of a block of DAC registers
  324. fg_setrgb      define the RGB value of a palette or video DAC register
  325.  
  326. Graphics fundamentals
  327. ---------------------
  328. fg_box         draw a hollow rectangle
  329. fg_boxdepth    specify the outline size of a hollow rectangle
  330. fg_boxw        draw a hollow rectangle in world space
  331. fg_boxx        draw a hollow rectangle in XOR mode
  332. fg_boxxw       draw a hollow rectangle in XOR mode in world space
  333. fg_circle      draw a hollow circle
  334. fg_circlef     draw a filled circle
  335. fg_circlefw    draw a filled circle in world space
  336. fg_circlew     draw a hollow circle in world space
  337. fg_clprect     draw a clipped rectangle
  338. fg_clprectw    draw a clipped rectangle in world space
  339. fg_dash        draw a dashed line
  340. fg_dashrel     draw a dashed line relative to current position
  341. fg_dashrw      draw a relative dashed line in world space
  342. fg_dashw       draw a dashed line in world space
  343. fg_draw        draw a line
  344. fg_drawrel     draw a line relative to the current position
  345. fg_drawrelx    draw a relative XOR line
  346. fg_drawrw      draw a relative line in world space
  347. fg_drawrxw     draw a relative XOR line in world space
  348. fg_draww       draw a line in world space
  349. fg_drawx       draw an XOR line
  350. fg_drawxw      draw an XOR line in world space
  351. fg_drect       draw a dithered rectangle
  352. fg_drectw      draw a dithered rectangle in world space
  353. fg_ellipse     draw an ellipse
  354. fg_ellipsef    draw a filled ellipse
  355. fg_ellipsew    draw an ellipse in world space
  356. fg_ellipsfw    draw a filled ellipse in world space
  357. fg_erase       clear the active video page
  358. fg_fillpage    fill active video page with current color
  359. fg_flood       like fg_paint but observes the clipping limits
  360. fg_floodw      like fg_paintw but observes the clipping limits
  361. fg_getclip     return current clipping limits
  362. fg_getpixel    get the color value of specified pixel
  363. fg_getxbox     return fg_box left and right edge width
  364. fg_getxpos     get screen space x coordinate of graphics cursor
  365. fg_getybox     return fg_box top and bottom edge width
  366. fg_getypos     get the screen space y coordinate of graphics cursor
  367. fg_inside      check if a specified point is inside a convex polygon
  368. fg_move        position the graphics cursor
  369. fg_moverel     position the graphics cursor relative to current position
  370. fg_moverw      position the graphics cursor, relative, in world space
  371. fg_movew       position the graphics cursor in world space
  372. fg_paint       fast flood fill of any closed area, including an area with
  373.                holes
  374. fg_paintw      world space version of fg_paint
  375. fg_point       draw a point
  376. fg_pointw      draw a point in world space
  377. fg_pointx      draw a point in XOR mode
  378. fg_pointxw     draw a point in XOR mode in world space
  379. fg_polyedge    specify fg_polyfill right and bottom edge inclusion
  380. fg_polyfill    draw a filled convex polygon
  381. fg_polygon     draw an unfilled polygon
  382. fg_polygonw    draw an unfilled polygon in world space
  383. fg_polyline    draw an unfilled polygon from one vertex array
  384. fg_polyoff     define polygon offsets for fg_polyfill and fg_polyline
  385. fg_rect        draw a solid rectangle in screen space or character space
  386. fg_rectw       draw a solid rectangle in world space
  387. fg_setclip     establish limits of clipping region for primitives and
  388.                bitmapped images
  389. fg_setclipw    world space version of fg_setclip
  390.  
  391. Character display
  392. -----------------
  393. fg_chgattr     change display attribute for existing text in text modes
  394. fg_chgtext     change text while preserving the display attributes in text
  395.                modes
  396. fg_fontsize    enable 8x8, 8x14, or 8x16 ROM font (VGA/SVGA only)
  397. fg_getattr     get the display attribute of a given character cell in text
  398.                modes
  399. fg_getchar     get the character value of a given character cell in text
  400.                modes
  401. fg_getxjust    return fg_print and fg_printc horizontal justification setting
  402. fg_getyjust    return fg_print and fg_printc vertical justification setting
  403. fg_justify     define justification settings for fg_print
  404. fg_locate      define row and column for character display
  405. fg_print       display hardware characters in screen space
  406. fg_printc      version of fg_print that performs clipping
  407. fg_setangle    define the orientation of software (stroked) characters
  408. fg_setratio    define the aspect ratio for software characters
  409. fg_setsize     define the height of software characters in screen space
  410. fg_setsizew    define the height of software characters in world space
  411. fg_swchar      display software (stroked) characters
  412. fg_swlength    compute the length of a string of software characters
  413. fg_swtext      display software characters
  414. fg_text        display hardware (ROM font) characters
  415. fg_textc       version of fg_text that supports clipping
  416. fg_where       return the text cursor position
  417.  
  418. Video page management
  419. ---------------------
  420. fg_allocate    create a virtual page in conventional memory
  421. fg_alloccms    create a logical page in conventional memory
  422. fg_allocems    create a logical page in expanded memory
  423. fg_allocxms    create a logical page in extended memory
  424. fg_findpage    find an available page number for virtual/logical pages
  425. fg_freepage    release a virtual or logical page
  426. fg_getaddr     get the segment address of the active video page
  427. fg_getentry    get address and type of a physical, virtual or logical page
  428. fg_getpage     get the active video page number
  429. fg_getvpage    get the number of the visual video page
  430. fg_initems     initialize expanded memory (EMS)
  431. fg_initxms     initialize extended memory (XMS)
  432. fg_pagesize    return video page size in bytes
  433. fg_resize      change the size of a video page (use with fg_pan)
  434. fg_setentry    set address and type of a physical, virtual or logical page
  435. fg_setpage     establish the active video page
  436. fg_setvpage    establish the visual video page
  437.  
  438. Virtual buffer management
  439. -------------------------
  440. fg_vbaddr      return address of a virtual buffer
  441. fg_vballoc     create a virtual buffer (allocate memory internally)
  442. fg_vbclose     close the active virtual buffer
  443. fg_vbcopy      copy rectangular region from one virtual buffer to another
  444. fg_vbcut       copy rectangular region from active video page to virtual buffer
  445. fg_vbdefine    create a virtual buffer (from previously allocated memory)
  446. fg_vbfree      release virtual buffer memory allocated with fg_vballoc
  447. fg_vbhandle    return handle of the active virtual buffer
  448. fg_vbinit      initialize Fastgraph's virtual buffer environment
  449. fg_vbopen      make an existing virtual buffer the active virtual buffer
  450. fg_vbpaste     copy rectangular region from virtual buffer to active video page
  451. fg_vbtcxfer    version of fg_vbpaste that supports transparent colors
  452. fg_vbundef     release a virtual buffer handle
  453.  
  454. Bitmapped image management
  455. --------------------------
  456. fg_clipmap     version of fg_drawmap that performs clipping
  457. fg_clipmask    draw a clipped masking map
  458. fg_clpimage    draw a clipped mode-specific bitmap
  459. fg_display     display a pixel run map
  460. fg_displayp    display a packed pixel run map
  461. fg_drawmap     draw a mode-independent bitmap
  462. fg_drawmask    draw a masking map
  463. fg_drwimage    draw a lightning-fast mode-specific bitmap
  464. fg_flipmask    draw an inverted masking map
  465. fg_flpimage    draw an inverted mode-specific bitmap
  466. fg_getimage    retrieve an image as a mode-specific bitmap
  467. fg_getmap      retrieve an image as a mode-independent bitmap
  468. fg_imagesiz    calculate the number of bytes required for mode-specific
  469.                bitmap storage
  470. fg_invert      invert orientation of a bitmapped image array
  471. fg_pack        translate "one pixel per byte" bitmap to mode-specific format
  472. fg_putimage    like fg_drwimage but doesn't check for transparent pixels
  473. fg_revimage    display a reversed mode-specific bitmap
  474. fg_revmask     display a reversed masking map
  475. fg_scale       scale a bitmapped image
  476. fg_shear       shear a bitmapped image
  477. fg_unpack      translate mode-specific bitmap to "one pixel per byte" format
  478.  
  479. Image file routines
  480. -------------------
  481. fg_dispfile    display a pixel run file, packed or unpacked
  482. fg_flicdone    close an FLI or FLC file
  483. fg_flichead    read an FLI or FLC file header
  484. fg_flicmode    determine optimal video mode for an FLI or FLC file
  485. fg_flicopen    open an FLI or FLC file
  486. fg_flicplay    play one or more frames from an FLI or FLC file
  487. fg_flicsize    return FLI or FLC image dimensions
  488. fg_flicskip    advance one or more frames in an FLI or FLC file
  489. fg_gifhead     read a GIF file global header and first local header
  490. fg_gifmode     determine optimal video mode for a GIF file
  491. fg_gifpal      retrieve palette information from a GIF file
  492. fg_gifrange    return GIF image dimensions
  493. fg_imagebuf    define the address and size of the image file buffer
  494. fg_loadpcx     load a PCX image into a virtual buffer
  495. fg_makegif     create a GIF file from a rectangular region of the active
  496.                video page
  497. fg_makepcx     create a PCX file from a rectangular region of the active
  498.                video page
  499. fg_makeppr     create a PPR file from a rectangular region of the active
  500.                video page
  501. fg_makespr     create an SPR file from a rectangular region of the active
  502.                video page
  503. fg_pattern     define dither patterns for pixel run maps
  504. fg_pcxhead     read a PCX file header into a 128-byte buffer
  505. fg_pcxmode     determine the optimal mode for displaying a PCX file
  506. fg_pcxpal      retrieve palette information from a PCX file
  507. fg_pcxrange    return PCX image dimensions
  508. fg_showflic    play an FLI or FLC file
  509. fg_showgif     display a GIF file
  510. fg_showpcx     display a PCX file
  511. fg_showppr     display a packed pixel run (PPR) file
  512. fg_showspr     display a standard pixel run (SPR) file (RLE)
  513.  
  514. Block transfer routines
  515. -----------------------
  516. fg_copypage    copy an entire physical, virtual, or logical page
  517. fg_getblock    transfer rectangular region from video memory to RAM
  518. fg_gethpage    get the number of the current "hidden" video page
  519. fg_putblock    transfer rectangular region from RAM to video memory
  520. fg_restore     fast rectangular area copy from hidden to visual page
  521. fg_restorew    world space version of fg_restore
  522. fg_save        fast rectangular area copy from visual to hidden page
  523. fg_savew       world space version of fg_save
  524. fg_sethpage    establish the hidden video page
  525. fg_tcdefine    define transparent color number for fg_tcxfer
  526. fg_tcmask      define transparent colors for fg_tcxfer
  527. fg_tcxfer      transfer rectangular area with transparent colors
  528. fg_transfer    fast rectangular region copy from any page to any page
  529.                (bitblt)
  530. Special effects
  531. ---------------
  532. fg_fadein      copy hidden to visual page in small, random increments
  533. fg_fadeout     erase the visual page in small, random increments
  534. fg_pan         change the screen origin for full-screen four-directional
  535.                smooth scrolling
  536. fg_panw        world space version of fg_pan
  537. fg_scroll      smooth vertical scrolling of rectangular area
  538. fg_split       enable or disable a split screen environment
  539.  
  540. Keyboard control
  541. ----------------
  542. fg_capslock    turn the CapsLock key on or off
  543. fg_getkey      wait for a keystroke or retrieve the next value from the
  544.                keystroke buffer
  545. fg_intkey      get the next entry from BIOS keyboard buffer if it is not
  546.                empty
  547. fg_kbinit      enable or disable the low-level keyboard handler
  548. fg_kblast      return scan code of most recent keypress
  549. fg_kbreset     reset Fastgraph's low-level keyboard handler
  550. fg_kbtest      determine if a key is now pressed or released
  551. fg_numlock     get the state of the NumLock key
  552. fg_scrlock     get the state of the ScrollLock key
  553. fg_setcaps     turn the CapsLock key on or off
  554. fg_setnum      turn the NumLock key on or off
  555. fg_waitkey     wait for any keystroke
  556.  
  557. Mouse management
  558. ----------------
  559. fg_mouse256    define 256-color mouse cursor
  560. fg_mousebut    get information about the mouse - were buttons pressed, and
  561.                where?
  562. fg_mousecur    define the appearance of the mouse cursor in text modes
  563. fg_mousefin    unhook Fastgraph's XVGA or SVGA mouse handler
  564. fg_mouseini    initialize the mouse
  565. fg_mouselim    define limits the mouse movement
  566. fg_mousemov    position the mouse cursor
  567. fg_mousepos    get the current mouse position and button status
  568. fg_mouseptr    define shape and appearance of mouse cursor in graphics modes
  569. fg_mousespd    control the speed of mouse cursor relative to the speed of
  570.                the mouse
  571. fg_mousevis    make the mouse cursor visible or invisible
  572.  
  573. Joystick support
  574. ----------------
  575. fg_button      get a joystick's button status
  576. fg_getxjoy     get the horizontal position of the specified joystick
  577. fg_getyjoy     get the vertical position of the specified joystick
  578. fg_initjoy     initialize either joystick
  579. fg_intjoy      return keyboard codes analogous to joystick position and
  580.                button status
  581.  
  582. Sound effects and music
  583. -----------------------
  584. fg_hush        immediately stop any asynchronous sound or music
  585. fg_hushnext    stop asynchronous sound or music after the current iteration
  586. fg_music       play a sequence of musical notes
  587. fg_musicb      play asynchronous music (background music)
  588. fg_playing     determine whether there is any asynchronous sound in progress
  589. fg_quiet       stop continuous sound
  590. fg_resume      after suspending asynchronous music, continue the music
  591. fg_sound       produce a tone of specified frequency and duration
  592. fg_sounds      play a series of tones, concurrent with other activity
  593. fg_suspend     suspend asynchronous sound (see fg_resume)
  594. fg_voice       produce sound on TI sound chip (as in Tandy 1000)
  595. fg_voices      play a series of tones on TI sound chip, concurrent with
  596.                other activity
  597. Timing
  598. ------
  599. fg_getclock    get the number of clock ticks since midnight
  600. fg_measure     benchmark the system speed to determine delay units for
  601.                fg_stall
  602. fg_stall       stall for a given number of delay units (see fg_measure)
  603. fg_waitfor     delay a specified number of clock ticks (18.2 per second)
  604.  
  605. Miscellaneous
  606. -------------
  607. fg_getbanks    return current SVGA read and write bank numbers
  608. fg_memavail    determine the amount of conventional memory available to DOS
  609. fg_memory      return the amount of video memory present in kilobytes
  610. fg_setbanks    define SVGA read and write bank numbers
  611. fg_setfunc     specify the logical operation in EGA/VGA modes (for XORing,
  612.                etc.)
  613. fg_svgaver     return Fastgraph SVGA kernel version number
  614. fg_version     return Fastgraph version number
  615. fg_vgastate    save or restore the internal VGA state
  616. fg_waitvr      specify if functions wait internally for vertical retrace
  617.  
  618.