X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=specs%2Ffreevga%2Fhome.htm;fp=specs%2Ffreevga%2Fhome.htm;h=e27835dddc11ef485c955ea8882aff4956537dc6;hb=8af06d1fd50343e17229618ef4d2693193b2b3d9;hp=0000000000000000000000000000000000000000;hpb=d0d14ca50fbac167253e1e1d8d806bfd749a5e8a;p=pintos-anon
diff --git a/specs/freevga/home.htm b/specs/freevga/home.htm
new file mode 100644
index 0000000..e27835d
--- /dev/null
+++ b/specs/freevga/home.htm
@@ -0,0 +1,486 @@
+
+
+
+
+
+
+ FreeVGA Project Home - Hardware level VGA and SVGA programming info
+
+
+
+Home News Mirrors
+Preface Background VGA
+SVGA Tricks Links
+Disclaimer Products Feedback
+Back
+
Hardware Level VGA and SVGA Video Programming Information Page
+
+Home
+
+
+
+
+
+
+7 |
+
+6 |
+
+5 |
+
+4 |
+
+3 |
+
+2 |
+
+1 |
+
+0 |
+
+
+
+F |
+
+R |
+
+E |
+
+E |
+
+ |
+
+V |
+
+G |
+
+A |
+
+
+
+This page is home to the FreeVGA Project
+-- dedicated to providing a totally FREE source of information about video
+hardware. Additional goals/information are
+located here.
+
+"Keep on rocking in the free world." - Neil Young
+
+
+Latest News
+
08/01/1998 -- More
+information is now up, including a large portion of the "standard" VGA
+reference. Some other minor changes have been made to other information.
+Expect more updates in the not too far future.
+
+
06/20/1998 -- The
+work contiues. Added three new mirrors. Some of the information
+that was located in the VGA reference, but really applies to video programming
+in general has been moved to the new Background Information (formerly Introduction)
+section of this page, and has been released. Also, a glossary has
+been added defining terms related to video programming, but is not very
+comprehensive at the moment, although this should improve over time. Many
+minor corrections have been made to the released material after being pointed
+out by the insightful people reading the information. Thank you!
+
+
06/08/1998 -- The
+mirror list has been updated with the new entries. Special thanks goes
+out to all those who have donated their personal resources to advance the
+project's goals. Also, the first section of *real* information is
+online, the low-level programming introduction. This section has
+been relatively stable for quite some time, and seems to be releasable.
+It is my goal to release the information after it stabilizes, and has been
+verified for accuracy.
+
+
06/04/1998 -- If
+you are looking for the current work-in-progress, and have been given the
+passwords for the archive for review purposes, it can be downloaded here.
+For those with current problems/questions that this page addresses, please
+feel free to use the Feedback Form to contact the
+author. If a link is marked with (WIP), it is not posted online
+and at this time is available only for review, upon request, and under
+specific limitations.
+
+
Mirror Sites
+
At this time, the project
+is experimenting with the feasibility of maintaining mirror sites to make
+this information more widely available. The following mirror sites
+are provided for your convenience. If you are interested in hosting
+a mirror site of this information, please contact the author for more information.
+If you are experiencing problems with any of these mirrors please use the
+Feedback Form to contact the author, as it is likely
+my fault that the problem has arisen.
+
+-
+USA, Arizona,
+Phoenix -- hosted by Joshua Neal
+
+-
+USA, California, San
+Francisco -- hosted by Marty Price
+
+-
+USA, Massachusetts,
+Boston -- hosted by Leif Hardison
+
+-
+USA, Oregon,
+Eugene -- hosted by Byron
+Miller
+
+-
+Australia,
+Canberra -- hosted by David
+Murn
+
+-
+Hungary
+-- hosted by Justin Doiel
+
+-
+The
+Netherlands, Apeldoorn -- hosted by Simon
+Weijgers
+
+-
+The
+Netherlands, Nijmegen -- hosted by Simon
+Weijgers
+
+Preface
+
This page's purpose is to
+provide free low-level programming information to programmers interested
+in the low-level details of programming the VGA and Super VGA adapters,
+in a format independent of operating environment or programming language.
+This page is not intended to be a reference to graphics or game programming
+algorithms but rather a reference for those people attempting to implement
+such algorithms in whatever environment they are using. This page is not
+intended to be a showcase of web technology and thus will use HTML features
+and graphics only when it is necessary to convey information. For example,
+I have left the colors and fonts set to the default, so you can actually
+use the default preferences in your browser. I am continuously adding material
+to this page and have tried to incorporate links to other sites with valuable
+information.
+
+Background Information
+
Foremost, this page is meant
+to be a place online where one can learn about low-level programming (If
+everyone knew all of this information then this page would be redundant!)
+This section contains general information that can be very helpful when
+attempting to use the programming information located on this site.
+
+Standard VGA Chipset Reference
+
This section documents
+the subset of functionality present on nearly all computers today. The
+VGA BIOS utilizes only a fraction of the capability of the VGA hardware.
+By programming the hardware at the lowest level, one gains the flexibility
+to unleash the hardware's full potential.
+
+Super VGA Hardware Chipset Reference
+
This section documents the
+known functionality of specific VGA/SVGA chipsets. Because developers of
+chipsets and video cards face incredible competition, they have added features
+and functionality far beyond the standard VGA hardware. Unfortunately to
+programmers, these features have been implemented differently in each particular
+chipset, and even differently between products by the same manufacturer.
+It is difficult to obtaining information on these chipsets and their implementations,
+particularly so if the chipset is considered "obsolete" by the manufacturer.
+Because of the open-ended nature of this topic (chipsets are under constant
+development) this page will be updated constantly as new information becomes
+available.
+
+Other Video Hardware Reference
+
This section is for
+video hardware that does not specifically fit into the category of VGA
+or SVGA, such as MPEG hardware, video capture hardware, non-integrated
+3D accelerators, virtual reality gear, digital video cameras, stereoscopic
+3D goggles, TV tuner cards, non-VGA compatible video adapters and the like.
+This is another open-ended topic but is not the primary focus of this page.
+
+Tricks and Techniques
+
This section contains useful
+information on how to utilize the VGA/SVGA hardware to optimize specific
+tasks or implement visual effects. Many of these techniques have been utilized
+by game and demo programmers alike to push the envelope of the hardware's
+capacity.
+
+Other References:
+
This section gives
+some pointers to other available VGA hardware information available. Note
+that they are listed here because
+
+-
+Online Information
+
+
+-
+The COMP.SYS.IBM.PC.HARDWARE.VIDEO
+Frequently Asked Questions (FAQ) document, although not programming
+oriented does contain much useful information about video hardware. The
+site also includes links to nearly every vendor of video cards and monitors,
+as well as links to pages covering monitor specifications. If you are looking
+for video hardware related information not covered by the FreeVGA Project's
+goals, you will likely find it or a link to it here.
+
+-
+Finn Thøgersen's VGADOC
+& WHATVGA Homepage -- An excellent collection of information for
+programming VGA and SVGA.
+
+-
+Boone's Programming
+the VGA Registers -- Contains a very sketchy "Documentation Over the
+I/O Registers for Standard VGA Cards" by "Shaggy of The Yellow One." It
+is free and distributable over the "Feel free to spread this to whoever
+wants it....." licensing agreement.
+
+-
+Andrew Scott's VGA Programmers Master Reference Manual (click
+here to download from ftp.cdrom.com) -- A dated ('91) document that
+is interesting if only because it attempts to document the VGA hardware
+(actually the Trident TVGA8900 hardware) in a form useful for "writing
+an applications specific BIOS." Begins with a very general description
+the topic (a wordy definition of computation in general) and ends with
+detailed register descriptions. Unfortunately, it lacks much material between
+these areas. Worse, far from being a free resource, it requires shareware
+registration fees that must be sent to the U.K. by means of a check drawn
+from a U.K. bank only!
+
+-
+Richard Wilton's Programmer's Guide to PC and PS/2 Video Systems
+(click here
+to download from www.dc.ee) An older reference, covers MDA, Hercules,
+CGA, MCGA, and VGA. Not much VGA material but does have some register documentation.
+
+-
+IBM's RS/6000 CHRP I/O Device Reference Appendix
+A: VGA Programming Model -- A good VGA reference from the makers of
+the IBM VGA. Better than most on-line references as it contains programming
+information in addition to a register description of the hardware; however
+it is still vague in many areas. Especially interesting as it begins with
+an acknowledgment of the many "clones" of the VGA hardware.
+
+-
+Some brief VGA register info is available from the Chip
+Directory, also mirrored at other sites (see Chip
+Directory home page).
+
+-
+Eric S. Raymond's The
+XFree86 Video Timings HOWTO -- explains video mode and timing information
+used in configuring XFree86 to support a given monitor, intended to be
+used by the end user. Much of the information is not sepcific to
+XFree86, and can be used by a programmer as an example of how a low-level
+video routine can allow the end-users to setup video modes that pertain
+to their monitors, as well as being useful to an end-user of such a program
+attempting to configure such a routine to work with their monitors.
+
+-
+Tomi Engdahl's electronics
+info page has some information about video and vga timings, as well
+as a section on VGA to TV converters and homemade circuitry. The
+VGA
+to TV converter page contans much information that pertains to driving
+custom TV and monitors with a VGA or SVGA card that doesn't have the capability
+built-in.
+
+
+-
+Offline Information
+
+
+-
+Richard F. Ferraro's Programmer's Guide to the EGA, VGA, and
+Super VGA Cards, Third Edition -- A good text, one of the few good
+books on a subject as broad and as complicated as low-level I/O.
+
+-
+Frank van Gilluwe's The Undocumented PC, Second Edition -- A Programmer's
+Guide to I/O, CPUs and Fixed Memory Areas -- An excellent book, which
+is the likely the most complete PC technical reference ever written, and
+includes 100+ pages of video programming information, although very little
+VGA register information.
+
+-
+Bertelsons, Rasch & Hoffman's PC Underground: Unconventional Programming
+Topics -- I bought this book on markdown, due to it having some VGA information
+in it. I was surprised to find that not only did it have a register
+description, but it also described some possible effects that can be done
+with that register.
+
+
+-
+Miscellaneous Information (Information not specific to video hardware,
+but useful to video programmers.)
+
+
+-
+Norman Walsh's The
+comp.fonts FAQ -- An excellent resource on fonts, typefaces, and such.
+Particularly helpful is the section on intellectual property protection
+for fonts, as the copyright legality of fonts and typefaces is somewhat
+confusing. Note -- Norman Walsh has ceased maintaining the FAQ, however,
+this link will remain until a new version of the FAQ is produced.
+
+
+Product Recommendations
+
The FreeVGA Project does
+not make hardware recommendations as pertains to hardware covered by the
+documentation, in an attempt to prevent any conflicts of interest.
+However, there are other products that can be extremely helpful when implementing
+the information found here, such as monitors, test equipment, and software.
+I will not refuse any request to list a product on this page, however I
+will categorize it depending upon its importance and suitability for video
+related software development using opinions of myself and others.
+If you disagree with the opinion here, please use the Feedback Form to
+voice that opinion, such that it can be taken into account.
+
+Warnings and Disclaimer
+
+-
+Danger: Monitors are designed to operate within certain frequency
+ranges, or for fixed frequency monitors at certain frequencies. Driving
+a monitor at a frequency that it is not designed for is not recommended
+and may cause damage to the monitor's circuitry which can result in a fire
+and safety risk. It is wise to know and understand the specifications
+of the monitor(s) that you will be driving in order to prevent damage.
+Consult the manufacturers documentation for the monitor for the information,
+or if not available, contact the manufacturer directly. If the monitor
+makes unusual noises, or the internal temperature exceeds the rated temperature
+of its components, the monitor is likely to experience failure. This
+failure may not be immediate, but is under most circumstances inevitable.
+Monitor failures can be violent in nature, and can explode and produce
+shrapnel, as well as overheat and catch fire. In no circumstance
+should one leave a monitor unattended in an uncertain state. Furthermore,
+exceeding the rated maximum frequencies of a monitor may cause the phosphors
+to age prematurely, as well as increase the amount of harmful radiation
+projected towards the viewer beyond the specified maximums.
+
+-
+Warning: Clock chips and RAMDACs as well as other components
+of the video card are designed with a maximum frequency. Programming
+these chips to operate at a frequency greater than they were designed for
+causes the chips to run hotter than they were designed to operate, and
+may cause the component to fail. It is wise to know and understand
+the maximum operating frequency of the components of any video subsystem
+you will be programming. Do not assume that the component is safe to operate
+at a particular frequency because it can be programmed to operate at that
+frequency. The rated frequencies are rated and verified according
+to batch yield. As clock frequencies increase, the failure rate of
+the chips during manufacturing testing increases. It is impossible
+to predict the actual point at which a given semiconductor will fail, thus
+manufacturers monitor the failure rate statistically to determine the frequency
+that gives an acceptable batch yield. These failures are typically
+unobservable and require a method of testing every gate on the chip, as
+many failures may only be observable under very specific circumstances,
+typically resulting in intermittent failures, although complete "meltdown"
+due to a newly formed short is also possible. If they
+occur, the entire semiconductor must be rejected due to these failures
+being irrepairable. As you exceed the rated frequency you are taking
+a semiconductor that has passed a thourough test at its rated frequency
+and entering the realm of statistical probability. Attempting to
+find the maximum frequency is impossible, as by the time a failure is noticable
+the semiconductor has already been permanently damaged. Cooling the
+external package by using a heat sink and/or fan may increase the frequency
+at which a semiconductor can operate; however, there is still no way to
+determine the frequency at which a specific semiconductor will fail as
+it can only be done statistically and practically undetectable without
+being able to determine the proper operation of every gate on the semiconductor.
+Semiconductors such as fast CPU's are rated with the required heat sink
+and/or cooling fan in place. Aftermarket cooling devices are sold
+as "performance coolers" due to the inability to determine the statistical
+likelyhood of failure and the inability of the end user to simply reject
+failed semiconductors. Under no circumstances should a programmer
+develop software that overclocks an end-user's hardware without the end
+user being warned of the statistical likelyhood of failure.
+Making any claims about the safety of the software's operation can leave
+the programmer with legal liability that cannot be excluded by disclaimer.
+
+-
+Disclaimer: The author presents this information as-is without
+any warranty, including suitability for intended purpose. The author is
+not responsible for damages resulting by the use of the information, incidental
+or otherwise. By utilizing this information, you as the programmer take
+full liability for any damages caused by your use of this information.
+If you are not satisfied with these terms, then your only recourse is to
+not use this information. While every reasonable effort is made to ensure
+that this information is correct, the possibility exists for error and
+is not guaranteed for accuracy, and disclaims liability for any changes,
+errors or omissions and is not responsible for any damages that may arise
+from the use or misuse of this information. License to use this information
+is only granted where this disclaimer applies in whole.
+
+Feedback
+
I can be reached online
+via the Feedback Form. Consider it your
+moral obligation to send feedback about the page, including inaccuracies,
+confusing parts, missing info, questions/answers and other feedback type
+thingies.
+
+
+Notice: All trademarks used or referred to on this page are the property
+of their respective owners.
+
All pages are Copyright © 1997, 1998, J. D. Neal, except where
+noted. Permission for utilization and distribution is subject to the terms
+of the FreeVGA Project Copyright License.
+
+