home *** CD-ROM | disk | FTP | other *** search
/ Collection of Hack-Phreak Scene Programs / cleanhpvac.zip / cleanhpvac / FAQSYS18.ZIP / FAQS.DAT / MODEX.FAQ < prev    next >
Internet Message Format  |  1995-12-12  |  26KB

  1. From pc@espr.demon.co.uk Thu Oct  6 00:53:37 1994
  2. Newsgroups: rec.games.programmer
  3. From: pc@espr.demon.co.uk (Phil Carlisle)
  4. Subject: Mode X Faq 
  5. Distribution: world
  6. Organization: Independant Graphics Research
  7. Reply-To: pc@espr.demon.co.uk
  8. X-Newsreader: Simple NEWS 1.90 (ka9q DIS 1.21)
  9. Date: Sun, 2 Oct 1994 13:01:25 +0000
  10.  
  11. Ok, this might be the last post for a while, its archived on x2ftp.oulu.fi
  12. thanks to jouni, anyway, I am off again for a few weeks..
  13.  
  14.  
  15.       X-Mode Frequently Asked Questions - By Zoombapup (Phil)  2-Oct-94
  16.       ======================================================================
  17.  
  18.       Foreword
  19.       --------
  20.  
  21.       Hmm, whats new this time??
  22.  
  23.       Well, I am off the net for a coupla weeks, which is kinda hard :)
  24.       dont forget x2ftp.oulu.fi is now a good programmers site, if a
  25.       little slow sometimes, in /pub/msdos/programming you can find
  26.       all sorts.
  27.  
  28.       Basically, READ THE INDEX FILE before you ask about stuff, all jouni
  29.       seems to post is answers to "where is this file or that file" he was
  30.       kind enough to setup and moderate that site, least people could do is
  31.       to do a LITTLE of the work themselves.
  32.  
  33.       Table of Contents
  34.       -----------------
  35.  
  36.       1) What is this FAQ and why should I read it??
  37.       2) What IS mode X?
  38.       3) How do you set mode-x?  (asm source)
  39.       4) Source code reference list
  40.           a) Information Sources
  41.           b) Books & Other sources
  42.           c) Source Code etc...
  43.       5) Simple Questions and answers (read it ok??)
  44.       6) Further helpful reading  (Not necassarily Mode-X)
  45.  
  46.  
  47.       Section 1 - What is this FAQ and why should I read it??
  48.       -------------------------------------------------------
  49.  
  50.       This FAQ (Frequently asked questions file) is here to provide the
  51.       reader with a brief outline of what Mode-X is and to provide some
  52.       useful references for looking into it further. It is also an
  53.       attemp by me to help cut down the posts on Comp.sys.ibm.pc.demos
  54.       asking for information on Mode-X programming when that very same
  55.       information is posted weekly (or seems like it).
  56.  
  57.         It is also a chance for the reader to find reference material
  58.       that may take ages searching to do something specific in Xmode.
  59.  
  60.       If youre really desperate to find something, then maybe its a
  61.       chance to learn how to use archie?? try telnetting to
  62.       archie.doc.ic.ac.uk (or one closer to you), login as archie
  63.       then try typing prog <filename> to search for a particular file
  64.       (and dont forget to note the result!).
  65.  
  66.  
  67.       Section 2 - What IS mode-X??
  68.       ----------------------------
  69.  
  70.       Well, It has been mentioned that perhaps I should make it clear what
  71.       is meant by Mode-X, well, it can really mean two things, the first is
  72.       that it means a mode originally written about by Mike Abrash in Dr Dobbs
  73.       journal (a US programmers magazine), it basically involved tweaking
  74.       (reprogramming) some of the registers on the VGA display adaptor,
  75.       in effect it gave a resolution of 320x240 with 3 pages for graphics,
  76.       and he christened it Mode-X (because there was no bios mode for it).
  77.       After this article it became easier for everyone to write the same
  78.       type of things, using different resolutions, e.g. 320x200x4page etc..
  79.       the problem was, what would one call these modes?? as there are just
  80.       about unlimited combinations, I think it would be better to refer to
  81.       ALL tweaked VGA modes as Mode-X, and as far as I am concerned that
  82.       is what mode-x means......
  83.  
  84.       Anyway, back to the text:-
  85.  
  86.       Over to Themie Gouthias for that one..... (original author of Xlib)
  87.  
  88.       Mode X is a derrivative of the VGA's standard mode 13h
  89.       (320x200 256 color). It is a (family) of undocumented video modes
  90.       that are created by tweaking the VGA's registers. The beauty of mode X
  91.       is that it offers several benefits to the programmer:
  92.  
  93.       - Multiple graphics pages where mode 13h doesn't allowing for page
  94.         flipping (also known as double buffering) and storage of images
  95.         and data in offscreen video memory
  96.  
  97.       - A planar video ram organization which although more difficult
  98.         to program, allows the VGA's plane-oriented hardware to be used
  99.         to process pixels in parallel, improving performance by up to
  100.         4 times over mode 13h
  101.  
  102.       - Loads of other neat tricks associated with having multiple pages
  103.         of video memory to program with, and also smoother animations
  104.         (PC Note that one :) )
  105.  
  106.       Please note BEFORE you go flooding Themie with email about Xlib
  107.       questions that he has taken a break from supporting it himself
  108.       for a while and has left two other people in charge. (see ref)
  109.  
  110.       Section 3 - How to set up mode x
  111.       --------------------------------
  112.  
  113.         Here's  the code needed to set up a tweaked 320*200*256-mode.
  114.         It  was  in  a  text  file  by  some  unknown finnish author,
  115.         It was translated by Saint/EMF (thanks Jani).
  116.         
  117. ---------------------------------------------------------------
  118. 1. Set the BIOS mode 13h, which is the standard 256-color mode.
  119.  
  120.         mov     ax, 0013h
  121.         int     10h
  122.  
  123. 2. Put the CHAIN4-mode of Sequencer off
  124.  
  125.         mov     dx, 03C4h
  126.         mov     ax, 0604h
  127.         out     dx, ax
  128.  
  129. 3. Clear the video memory (setting mode 13h clears only every fourth byte
  130.                            from each plane)
  131.  
  132.         mov     ax, 0F02h
  133.         out     dx, ax
  134.         mov     dx, 0A000h
  135.         mov     es, dx
  136.         xor     di, di
  137.         xor     ax, ax
  138.         mov     cx, 8000h
  139.         rep     stosw
  140.  
  141. Note: Parts 4 and 5 may need switching round, i.e. do part 5 first, then
  142. part 4... but it works anyway....
  143.  
  144. 4. Turn off the CRTC's LONG-mode
  145.  
  146.         mov     dx, 03D4h
  147.         mov     ax, 0014h
  148.         out     dx, ax
  149.  
  150. 5. Turn on the CRTC's BYTE-mode
  151.  
  152.         mov     ax, 0E317h
  153.         out     dx, ax
  154.  
  155.    And now you are in tweaked mode!
  156.    If you want also double the vertical resolution to 320*400*256,
  157.    add this:
  158.  
  159.         mov     ax, 4009h
  160.         out     dx, ax
  161. ---------------------------------------------------------------
  162.  
  163.         The last out is needed if you want to double the Y-resolution
  164.         to 400 lines,  so that  each scanline  has its  own  line  in
  165.         memory.  The bits 0-4 in  the  CTRC register 09h  define  the
  166.         number of  times  to display  the scanline minus one.  To get
  167.         back to  200-line mode,  out 4109h there,  or if  you  want a
  168.         100-line  mode,  out 4309h.  The same thing can be applied to
  169.         the Mode X to get 480- or 120-line modes.
  170.  
  171.       Many Thanks to jani for this, I've only just decided to include
  172.       it in the faq (I had it for months, but I didnt want to confuse
  173.       beginners by supplying source like this, but WTH) -- Phil.
  174.  
  175.  
  176.       Section 4 - Source Code reference list
  177.       --------------------------------------
  178.  
  179.       Alright, this is probably THE most important part, in that this
  180.       is where you'll find all the source code and information you'll
  181.       ever need to program proficiently in mode-x, so if you EVER
  182.       post a question about HOW TO PROGRAM MODE-X after reading this
  183.       list and getting the source etc, then YOU WILL BE SHOT AT DAWN :)
  184.  
  185.       a) Information Sources
  186.       ----------------------
  187.       These sources are good for mode-x stuff..
  188.  
  189.       Filename : xintro18.zip  Where: simtel archives... usually
  190.       Directory : I forgot to write it... should be /VGA will be confirmed.
  191.       Author   : Robert Shmidt (Ztiff Zox??)
  192.  
  193.       Simtel Stuff can be gotten from oak.oakland.edu
  194.       
  195.       Description:
  196.  
  197.       XDiscuss (now called Xintro :)) is a really good description of
  198.       How modeX works, how the memory is organised in planar fashion,
  199.       it includes a few graphics pictures to help visualise the memory
  200.       organisation, really a must have to understand the mode.
  201.  
  202.       ----------------
  203.  
  204.       Filename : Graphpro.lzh Where: wasp in pub/msdos/demo/
  205.                         programming/source 
  206.       Author   : Michael Abrash (Mode X guru)
  207.  
  208.       Description:
  209.  
  210.       This file is a collection of texts and sample source code to loads of
  211.       graphics programming problems, mike was the first person to really
  212.       describe Mode-X in a magazine (Dr Dobbs Journal), in this file he
  213.       goes through a number of interesting routines etc, he also sets up
  214.       a simple 3D polygon filling, lightsourced program called X-Sharp,
  215.       all-in-all this file is A MUST HAVE!
  216.       ---------------------
  217.  
  218.       Filename : Tweakxxx.zip  Where : same place as xintro above
  219.       Author: Robert Shmidt (again!)
  220.  
  221.       Description:
  222.  
  223.       Tweak is a utility that lets you mess around with the registers on
  224.       youre VGA card, which is a real help when trying to come up with
  225.       youre own Xmode, it enables you to test settings on the CRTC regs
  226.       and play with loads of settings.
  227.       ----------------------
  228.  
  229.       Filename : Unchain.zip Where : probably most archives....
  230.       Author: Colin Buckley  (with correct tabs, honest :) )
  231.  
  232.       Description:
  233.  
  234.       Unchain is a utility to help people using turbo debugger to debug
  235.       mode-x programs (because they screw TD's display up usually),
  236.       it allows viewing of the pages in vid ram etc....
  237.  
  238.       UPDATE: Unchain also works with BC,BP and loads of other products..
  239.       ------------------------
  240.  
  241.  
  242.       b) Books & Other Sources
  243.       ------------------------
  244.  
  245.       Nothing I know of in this category as yet, some non-specific
  246.       graphics books are recommended in a FAQ in rec.games.programmer
  247.       I suggest anyone interested in graphics programming read that
  248.       newsgroup (or at the very least get the FAQ, I think its on
  249.       ftp.uwp.edu - but I'll confirm this)
  250.  
  251.       NOTE: For those of you without a VGA reference for the registers
  252.             the r.g.p FAQ has loads of them in, so look out for it!!
  253.  
  254.       Also you can READ comp.sys.ibm.pc.demos for a while, and you
  255.       will usually pick up any info you need to do something that
  256.       you cant get from the files below, only if you have read the
  257.       newsgroup for a while and have not seen what you need posted
  258.       should you post a question, PLEASE DON'T TIE UP THE GROUP
  259.       especially with questions that have been answered over and
  260.       over again....
  261.  
  262.       c) Source Code
  263.       --------------
  264.     
  265.       Most of this stuff can be found on ftp.eng.ufl.edu in the
  266.       directory  pub/msdos/demos/programming/source
  267.  
  268.       NOTE: when I refer to wasp, I mean the above site, this was
  269.       just the old name for the site.
  270.  
  271.       Wasp is probably THE best place to look for new source right
  272.       now, as many other sites have had major space problems, but
  273.       wasp CAN be very slow..... some other programming stuff can
  274.       be found on archive.epas.utoronto.ca mainly soundcard info
  275.       for the gravis ultrasound. (Nice SDK and stuff) but as always
  276.       looking around is the order of the day...
  277.  
  278.       --------------
  279.  
  280.       Filename: Xlib06.zip  Where: wasp
  281.       directory: /pub/msdos/demos/programming/source
  282.       Author: Many contributors, originally by themie gouthias..
  283.  
  284.       Decription:
  285.  
  286.       This really is THE source code to get to be able to use Xmode.
  287.       the archive contains mainly C linkable assembler code that
  288.       covers pretty much everything possible with Mode-X, all the
  289.       code is copyright public domain, and is usually pretty fast.
  290.       In the archive there are also demo programs to show what is
  291.       possible and some useful doc's and further references.
  292.  
  293.       ALSO: Note that there are 2 new re-workings of Xlib in pascal
  294.             called Xlib_tp5.zip and Xlibpas.zip available for pascal
  295.             coders available on the net (ftp etc...)
  296.  
  297.       NOTE: If you have problems with the unit in Xlibpas not working
  298.             be sure to set the compiler switches {$G+} and {$X+} which
  299.             enable 286 code and extended syntax, then everything
  300.             should run allright.
  301.  
  302.       ------------
  303.  
  304.       Filename: stmik020.lzh   Where: TBC (to be confirmed)
  305.       directory: at a guess try ftp.uwp.edu somewhere...
  306.       Author: Future Crew
  307.  
  308.       Description:
  309.  
  310.       This archive is FC's release of the screamtracker music interface
  311.       kit (basically a mod player that you can use in youre demo's),
  312.       whats interesting about it is that they have included the whole
  313.       of thier MENTAL SURGERY demo, which has them setting a Mode-X
  314.       variant, and also I believe setting up a VBI int... good to see
  315.       how a well known (who am I kidding) group does things like
  316.       the usualy horizontal stars....  All code in assembler.
  317.  
  318.       ------------
  319.  
  320.       Filename: vlafont.zip  Where: wasp (look for vlapak1.zip)
  321.       directory: usual wasp programming dir....
  322.       Author: Draeden (of VLA)
  323.  
  324.       Description:
  325.  
  326.       This archive contains all the code and tools to incorporate a
  327.       scrolly mode-X font routine, has sample code (including Y scale)
  328.       and has a good re-working of Mode-X set code from Xlib, all code
  329.       in assembler...
  330.  
  331.       Note: Generally try to get anything with VLA in the title,
  332.             Draeden has released a load of code, and although he's made
  333.             himself scarce for a while, the rest of VLA can be mailed,
  334.             also he has done IMHO the best ModeX setting code for asm
  335.             programmers...
  336.  
  337.       ------------
  338.  
  339.       Filename: mx2_vla.zip Where: TBC
  340.  
  341.       Author: Draeden (of VLA)
  342.  
  343.       This is THE best working of Mode-X set code I've seen, really an update
  344.       on the routines found in vlafont.zip, Its really a must have for asm
  345.       programmers (especially tasm users), it provides loads of useful routines
  346.       like mode setting (really flexible) and palette and other stuff like that.
  347.  
  348.       More stuff about VLA releases next time.
  349.  
  350.  
  351.       Section 4 - Simple questions and answers
  352.       ----------------------------------------
  353.  
  354.       1q) Is it possible to reset mode-x so that the addressing is linear
  355.          like good old 13h but with the 4 pages still??
  356.  
  357.       1a) No, to the best of available knowledge no its not....
  358.  
  359.       Note: Just to update this, there has been some discussion carried on
  360.             and it seems that it IS possible on a very few VGA cards, but
  361.             its so rare that it is practically useless, unless someone
  362.             can get it to work on ALL vga cards
  363.  
  364.       2q) Is it possible to set up my own mode, in some way??
  365.  
  366.       2a) Yes, but it is quite a tricky process, a utility to help you
  367.           try tweaking the registers for this sort of thing is in
  368.           the file section 3a) Information sources (tweak by Rob shmidt?)
  369.  
  370.       3q) I have a (insert a crappy vid card name) VGA card, with 4meg memory
  371.           can I still use ModeX?
  372.  
  373.       3a) Yeah, basically ANY card 100% ibm (tm) VGA compatible can do it..
  374.           and why have you got 4 meg?? :)
  375.  
  376.       4q) I want to be able to double buffer using a VBL is there one on the
  377.           VGA and how do I use it??
  378.  
  379.       4a) There isn't a built in VBL on the vga, but you CAN set one up by
  380.           re-synch-ing one of the timers (08h usually), there is an example
  381.           in the newer Xlib (ver 06).
  382.  
  383.           Note: there are also VBL examples in mental-surgery by Future-Crew
  384.           and in the demoVT example code *for thier magnificent modplayer* :)
  385.           demoVT.arj  (at least demoVT is on ftp.eng.ufl.edu)
  386.  
  387.       5q) I want to do a font routine in 320x200x256x4 mode x, and I cant
  388.           get hold of any fonts, the ones Ive got are scanned left to right
  389.           top to bottom, and they make for a hard font routine, is there
  390.           any fonts that I can use in a different format?
  391.  
  392.       5a) Yes, you can get two utilities for fonts that are perfect for
  393.           mode-x formats, one is in VLAFONT, mentioned elsewhere in the FAQ
  394.           and another is in PCXTOOLS (which is also mentioned elsewhere), if
  395.           you get either one, they hold the font data scanned from top to
  396.           bottom, left to right (i.e. columnwise) which makes drawing them in
  397.           mode-x much faster (dont need to keep setting the plane), also
  398.           this layout lets you do things like move the start of the column
  399.           in a sine wave (for a sin scroller) and other effects..
  400.  
  401.       6q) What sort of effects are possible in mode-x that are not possible
  402.           in 13h? and why would I use them?
  403.  
  404.       6a) Well, basically the effects available in mode-x over the normal
  405.           mode 13h stem from the availability of off-screen video ram, this
  406.           means that you have access to the 256k ram on youre card, rather
  407.           than just the 64k that can be accessed by the PC (the pc address
  408.           space for VGA use is only a 64k window), using off screen ram,
  409.           it is possible to use VGA hardware to do scrolling (via the screen
  410.           start address and pixel pan registers), fast vram-vram copies,
  411.           double buffering (drawing to an offscreen page while you display
  412.           another and then flipping these two *also called page flipping*
  413.           there are MANY things that can be done with mode-x, but sadly
  414.           coding for it is more complex as a result.
  415.  
  416.       NOTE: These techniques require a bit of practice, it would be wise
  417.             to learn the in's and out's of normal mode-x BEFORE posting
  418.             to newsgroups about "How do I?" questions, many times just
  419.             looking at Xlib and other related sources will show you how
  420.             to do these things.
  421.  
  422.       Section 4 - Further Helpful reading
  423.       -----------------------------------
  424.  
  425.       Newsgroups!! pretty simple really, read the graphics newsgroups,
  426.                    rec.games.programmer has some useful info on occasion
  427.                    alt.graphics, comp.graphics (I think), so get a list
  428.                    of newsgroups and take em all!! :) well, a few...
  429.  
  430.       Note: NEVER just go straight to a newsgroup you've never read before
  431.             and post loads of questions, read it for about a month or so
  432.             this gives you a chance to see what the group is about, and
  433.             also to see if there's a faq posted, usually FAQ's are posted
  434.             at least once a month...
  435.  
  436.       Reference Books
  437.       ---------------
  438.  
  439.       General
  440.       -------
  441.  
  442. Beginner:
  443. ---------
  444. -"Assembly Language from Square One", Jeff Duntemann, Scott Foresman IBM
  445. Comptuter Books. ISBN 0-673-38590-6.
  446. -"Assembly Language for the IBM PC", Kip R. Irvine, ISBN 0-02-359840-9
  447. -"Mastering Turbo Assembler", by Tom Swan, Hayden Books, 1989.
  448. ISBN 0-672-48435-8.
  449.  
  450. NOTE: Ive been told this is a good beginner book, might scan through
  451. it when I'm back at uni and do a review for newbie's...
  452.  
  453. -"Assembly Language and Systems Programming for the IBM PC and
  454. Compatables", Karen A. Lemone, Little, Brown, & Co. ISBN 0-316-52069-1.
  455. -"Assembly Language Primer for the IBM PC/XT", Robert Lafore,
  456. Plume/Waite.
  457. -"Using Assembly Language", Allen L. Wyatt Sr., Que 1990.
  458. ISBN 0-88022-464-9.
  459.  
  460. Intermediate:
  461. -------------
  462. -"The Zen of Assembly", Michael Abrash, Scott Foresman Publ.
  463.  
  464. plus "Zen of code optimisation" same author
  465.  
  466. -"Assembly Language Primer for the IBM PC/XT"
  467. -"IBM Microcomputers: A Programmer's Handbook", Julio Sanchez and Maria
  468. P. Canton, McGraw-Hill. ISBN 0-07-054594-4.
  469. -"Programmer's Problem Solver for the IBM PC, XT, and AT", Robert
  470. Jourdain, Prentice Hall 1986. ISBN 0-89303-787-7.
  471. -"IBM PC ASSEMBLER LANGUAGE AND PROGRAMMING", Peter Abel, 1987,
  472. Prentice-Hall, hardcover (college text). ISBN 0-13-448143-7.
  473.  
  474. Advanced:
  475. ---------
  476. -"80386: A Programming and Design Handbook", 2nd ed., Penn & Don Brumm,
  477. TAB Books. ISBN 0-8306-3237-9.
  478. -"80486 Programming", Penn & Don Brumm and Leo J. Scanlon, McGraw-Hill.
  479. ISBN 0-8306-3577-7.
  480. -"ADVANCED ASSEMBLY LANGUAGE", Steven Holzner and Peter Norton Computing,
  481. Inc., Brady Books/Simon and Schuster. ISBN 0-13-658774-7.
  482.  
  483.  
  484.        Video Graphics
  485.        --------------
  486.  
  487. Intermediate:
  488. -------------
  489. -"Programmer's Guide to PC & PS/2 Video Systems", Richard Wilton,
  490. Microsoft Press. ISBN 1-55615-103-9.
  491.  
  492. out of press now i believe.. supposedly good if you can find it..
  493.  
  494. Advanced:
  495. ---------
  496. -"Power Graphics Programming", Michael Abrash, Que Corporation. ISBN
  497. 0-88022-500-9
  498. -"Programmers Guide to the EGA and VGA cards", 2nd Ed., Richard F.
  499. Ferraro, Addison-Wesley Publishing Co. ISBN 0-201-57025-4.
  500.  
  501. I dont recommend this one..
  502.  
  503. -"Advanced Programmers Guide to the EGA/VGA", George Sutty and Steve
  504. Blair, Brady Books/Prentice Hall Trade. ISBN 0-13-729039-X.
  505.  
  506.  
  507.        References/Specialized
  508.        ----------------------
  509.  
  510. Intermediate:
  511. -------------
  512. -"Undocumented DOS", Andrew Schulman, Raymond J. Michels, Jim Kyle, Tim
  513. Paterson, David Maxey, and Ralf Brown, Addison-Wesley. ISBN
  514. 0-201-57064-5.
  515. -"DOS Programmer's Reference", 2nd Edition, Terry Dettmann, QUE.
  516. ISBN 0-88022-458-4.
  517.  
  518. Advanced:
  519. ---------
  520. -"386SX Microprocessor Programmer's Reference Manual", Intel Corp.,
  521. McGraw-Hill. ISBN 0-07-881673-4.
  522. -"i486 Microprocessor Programmer's Reference Manual", Intel Corporation,
  523. McGraw-Hill. ISBN 0-07-881674-2.
  524. -"The Programmer's PC Sourcebook", Thom Hogan, Microsoft Press. ISBN
  525. 1-55615-321-X.
  526. -"System BIOS for IBM PCs, Compatables, and EISA Computers", 2nd Ed.,
  527. Phoenix Technologies Ltd., Addison Wesley. ISBN 0-201-57760-7.
  528. -"PC Magazine Programmers Technical Reference: The Processor and
  529. Coprocessor", Robert L. Hummel, Ziff-Davis Press. ISBN 1-56276-016-5.
  530. -"Mastering Serial Communications", Peter W. Gofton, Sybex 1986.  ISBN
  531. 0-89588-180-2.
  532. -"DOS Programmer's Reference", 2nd Ed.
  533. -"MS-DOS Programmer's Reference", MS Press. ISBN 1-555615-329-5.
  534.  
  535. Also there is a PC programmers reference out there as a file, dosrefxx.zip
  536. which I can REALLY recommend, and also HELPPC21.ZIP which is good too,
  537. look for both on x2ftp.oulu.fi
  538.  
  539.  
  540.       Note: the above taken from a faq I had.. some books are out of print.
  541.       --------------
  542.  
  543.       EGA/VGA a programmers reference guide by Bradley Dyck Kliewer
  544.       ISBN: 0-07-035099-X
  545.  
  546.       Description:
  547.  
  548.       Pretty clear VGA technical reference manual, I prefer it to ferraro's
  549.       (which I will post details on next time), it has all the info you need
  550.       on all the vga's registers, very clearly explained, probably THE best
  551.       vga reference for clarity, although perhaps not as exhaustive on the
  552.       svga than other ref's.
  553.  
  554.       I'd say that this book is really an essential to all those who havent
  555.       got a VGA reference... (my personal opinion)
  556.       ---------------
  557.  
  558.       Introduction to Algorithms - by Thomas H Cormen
  559.       ISBN: 0-262-03141-8  published by Mit press and McGraw Hill..
  560.  
  561.       Description:
  562.  
  563.       A radically good book, covers pretty much ALL the algorithms needed
  564.       in programming, although the title says introduction, it is not just
  565.       an introductory level text, but covers a wide range of levels, it has
  566.       timings, examples, discussion, and information to a mathematical level.
  567.  
  568.       IMHO this book is another must have, at least read it once, I think
  569.       that it pays to have this book as a standard reference, really highly
  570.       recommended....
  571.       ---------------
  572.  
  573.       Photorealism and Ray Tracing in C - Watkins, Coy and Finlay
  574.       ISBN:  1-55851-247-0 published by M&T books...
  575.  
  576.       Description:
  577.  
  578.       I've been looking for a good book that deals with 3D math for a
  579.       long time, given that math isn't my strong point, I wanted a book
  580.       with clear descriptions, diagrams and useful examples, anyway, I
  581.       accidentally ordered this book, (I dont program in C), but I've
  582.       got to say, its been better for 3D math, than ANY 3D math book
  583.       Ive seen to date!    It also covers stuff like colour reduction,
  584.       image enhancements and effects, anti-aliasing, and other useful
  585.       topics....
  586.  
  587.       Overall, a must have book for any graphics programmer.... pc
  588.       -------------
  589.  
  590.       Also It might be a good idea to get back issues of Dr Dobbs journal
  591.       with the articles Michael Abrash wrote about Mode-X in, as you really
  592.       need the pictures to appreciate his stuff.
  593.  
  594.       Footnote: Apparently Mike is now working for Microsoft, poor man, what
  595.                 a cruel twist of fate, that a man so into getting code to
  596.                 run as fast as possible should have to work for them!!
  597.  
  598.       Other magazine's, especially programmer based ones, PC Techniques have
  599.       had some articles, and also game designer magazine, although these
  600.       seem to have been deleted (they are magazine's on disk), try archie
  601.       for GMD*.* GDM1.ARJ and GDM2.ARJ I know about, but they are a little
  602.       too simple for my taste, may be helpful to newer games programmers.
  603.  
  604.       Also, for the more acedemic, or those who are at a good school etc,
  605.       I would reccomend ACM Siggraph papers, and IEEE transactions on
  606.       graphics, both of which are really leading the way, can be a bit
  607.       heavy going, but some useful gems for us PC programmers too.
  608.  
  609.       -=END OF FAQ=-
  610.  
  611.       Written by PC (Phil... philc.... zoombapup etc  ))
  612.       please ask permission before re-printing somewhere else.....
  613.  
  614.       Oh, and If Ive forgotten anyone-anything, please feel free to write
  615.       to me and ask for info to be included (not things like "please email
  616.       me source to set mode-x in quickfortran"), or general questions that
  617.       you feel arent answered here, or in the source files mentioned.
  618.  
  619.       One last thing,
  620.  
  621.       Take care y'all, and have a nice day!
  622.  
  623.       Zoombapup // CodeX   :)
  624.  
  625.  
  626.  
  627.  
  628.  
  629.