Remove colour attributes from body and strip most of the font tags out

This commit is contained in:
James Gregory 2013-12-30 13:57:02 +11:00
commit c1f88ddb41
362 changed files with 1632 additions and 1706 deletions

View file

@ -24,9 +24,9 @@
<!--CHAPTER=0//-->
<!--PAGES=0//-->
<!--UNASSIGNED1//-->
<!--UNASSIGNED2//--></HEAD><BODY LINK=#0000FF ALINK=#000099 VLINK=#0000FF BGCOLOR=#FFFFFF>
<!--UNASSIGNED2//--></HEAD><body>
<CENTER><H2><FONT COLOR="#000077">Michael Abrash's Graphics Programming Black Book Special Edition</FONT></H2></CENTER>
<CENTER><H2>Michael Abrash's Graphics Programming Black Book Special Edition</H2></CENTER>
<HR>
<DL>
<FONT SIZE="4"><B>
@ -35,9 +35,9 @@
<DD><A HREF="about_author.html">About the Author</A>
</B></FONT>
<BR>
<BR><DD><A HREF="01-01.html"><FONT SIZE="4"><B>Part I</B></FONT></A>
<BR><DD><A HREF="01-01.html"><B>Part I</B></A>
<DL>
<DD><A HREF="01-01.html#Heading1"><FONT SIZE="4"><B>Chapter 1&mdash;The Best Optimizer Is between Your Ears</B></FONT></A>
<DD><A HREF="01-01.html#Heading1"><B>Chapter 1&mdash;The Best Optimizer Is between Your Ears</B></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="01-01.html#Heading2">The Human Element of Code Optimization</A>
@ -61,7 +61,7 @@
</DL>
</DL>
</B></FONT>
<DD><A HREF="02-01.html#Heading1"><FONT SIZE="4"><B>Chapter 2&mdash;A World Apart</B></FONT></A>
<DD><A HREF="02-01.html#Heading1"><B>Chapter 2&mdash;A World Apart</B></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="02-01.html#Heading2">The Unique Nature of Assembly Language Optimization</A>
@ -78,7 +78,7 @@
</DL>
</DL>
</B></FONT>
<DD><A HREF="03-01.html#Heading1"><FONT SIZE="4"><B>Chapter 3&mdash;Assume Nothing</B></FONT></A>
<DD><A HREF="03-01.html#Heading1"><B>Chapter 3&mdash;Assume Nothing</B></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="03-01.html#Heading2">Understanding and Using the Zen Timer</A>
@ -106,7 +106,7 @@
</DL>
</DL>
</B></FONT>
<DD><A HREF="04-01.html#Heading1"><FONT SIZE="4"><B>Chapter 4&mdash;In the Lair of the Cycle-Eaters</B></FONT></A>
<DD><A HREF="04-01.html#Heading1"><B>Chapter 4&mdash;In the Lair of the Cycle-Eaters</B></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="04-01.html#Heading2">How the PC Hardware Devours Code Performance</A>
@ -144,7 +144,7 @@
</DL>
</DL>
</B></FONT>
<DD><A HREF="05-01.html#Heading1"><FONT SIZE="4"><B>Chapter 5&mdash;Crossing the Border</B></FONT></A>
<DD><A HREF="05-01.html#Heading1"><B>Chapter 5&mdash;Crossing the Border</B></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="05-01.html#Heading2">Searching Files with Restartable Blocks</A>
@ -164,7 +164,7 @@
<DD><A HREF="05-05.html#Heading10">Always Look Where Execution Is Going</A>
</DL>
</B></FONT>
<DD><A HREF="06-01.html#Heading1"><FONT SIZE="4"><B>Chapter 6&mdash;Looking Past Face Value</B></FONT></A>
<DD><A HREF="06-01.html#Heading1"><B>Chapter 6&mdash;Looking Past Face Value</B></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="06-01.html#Heading2">How Machine Instructions May Do More Than You Think</A>
@ -178,7 +178,7 @@
<DD><A HREF="06-02.html#Heading6">Multiplication with LEA Using Non-Powers of Two</A>
</DL>
</B></FONT>
<DD><A HREF="07-01.html#Heading1"><FONT SIZE="4"><B>Chapter 7&mdash;Local Optimization</B></FONT></A>
<DD><A HREF="07-01.html#Heading1"><B>Chapter 7&mdash;Local Optimization</B></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="07-01.html#Heading2">Optimizing Halfway between Algorithms and Cycle Counting</A>
@ -198,7 +198,7 @@
</DL>
</DL>
</B></FONT>
<DD><A HREF="08-01.html#Heading1"><FONT SIZE="4"><B>Chapter 8&mdash;Speeding Up C with Assembly Language</B></FONT></A>
<DD><A HREF="08-01.html#Heading1"><B>Chapter 8&mdash;Speeding Up C with Assembly Language</B></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="08-01.html#Heading2">Jumping Languages When You Know It&rsquo;ll Help</A>
@ -217,7 +217,7 @@
</DL>
</DL>
</B></FONT>
<DD><A HREF="09-01.html#Heading1"><FONT SIZE="4"><B>Chapter 9&mdash;Hints My Readers Gave Me</B></FONT></A>
<DD><A HREF="09-01.html#Heading1"><B>Chapter 9&mdash;Hints My Readers Gave Me</B></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="09-01.html#Heading2">Optimization Odds and Ends from the Field</A>
@ -235,7 +235,7 @@
</DL>
</DL>
</B></FONT>
<DD><A HREF="10-01.html#Heading1"><FONT SIZE="4"><B>Chapter 10&mdash;Patient Coding, Faster Code</B></FONT></A>
<DD><A HREF="10-01.html#Heading1"><B>Chapter 10&mdash;Patient Coding, Faster Code</B></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="10-01.html#Heading2">How Working Quickly Can Bring Execution to a Crawl</A>
@ -252,7 +252,7 @@
</DL>
</DL>
</B></FONT>
<DD><A HREF="11-01.html#Heading1"><FONT SIZE="4"><B>Chapter 11&mdash;Pushing the 286 and 386</B></FONT></A>
<DD><A HREF="11-01.html#Heading1"><B>Chapter 11&mdash;Pushing the 286 and 386</B></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="11-01.html#Heading2">New Registers, New Instructions, New Timings, New Complications</A>
@ -281,7 +281,7 @@
</DL>
</DL>
</B></FONT>
<DD><A HREF="12-01.html#Heading1"><FONT SIZE="4"><B>Chapter 12&mdash;Pushing the 486</B></FONT></A>
<DD><A HREF="12-01.html#Heading1"><B>Chapter 12&mdash;Pushing the 486</B></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="12-01.html#Heading2">It&rsquo;s Not Just a Bigger 386</A>
@ -303,7 +303,7 @@
<DD><A HREF="12-04.html#Heading12">The Story Continues</A>
</DL>
</B></FONT>
<DD><A HREF="13-01.html#Heading1"><FONT SIZE="4"><B>Chapter 13&mdash;Aiming the 486</B></FONT></A>
<DD><A HREF="13-01.html#Heading1"><B>Chapter 13&mdash;Aiming the 486</B></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="13-01.html#Heading2">Pipelines and Other Hazards of the High End</A>
@ -316,7 +316,7 @@
<DD><A HREF="13-04.html#Heading7">32-Bit Addressing Modes</A>
</DL>
</B></FONT>
<DD><A HREF="14-01.html#Heading1"><FONT SIZE="4"><B>Chapter 14&mdash;Boyer-Moore String Searching</B></FONT></A>
<DD><A HREF="14-01.html#Heading1"><B>Chapter 14&mdash;Boyer-Moore String Searching</B></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="14-01.html#Heading2">Optimizing a Pretty Optimum Search Algorithm</A>
@ -327,7 +327,7 @@
<DD><A HREF="14-06.html#Heading7">Know What You Know</A>
</DL>
</B></FONT>
<DD><A HREF="15-01.html#Heading1"><FONT SIZE="4"><B>Chapter 15&mdash;Linked Lists and plain Unintended Challenges</B></FONT></A>
<DD><A HREF="15-01.html#Heading1"><B>Chapter 15&mdash;Linked Lists and plain Unintended Challenges</B></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="15-01.html#Heading2">Unfamiliar Problems with Familiar Data Structures</A>
@ -337,7 +337,7 @@
<DD><A HREF="15-04.html#Heading6">Hi/Lo in 24 Bytes</A>
</DL>
</B></FONT>
<DD><A HREF="16-01.html#Heading1"><FONT SIZE="4"><B>Chapter 16&mdash;There Ain&rsquo;t No Such Thing as the Fastest Code</B></FONT></A>
<DD><A HREF="16-01.html#Heading1"><B>Chapter 16&mdash;There Ain&rsquo;t No Such Thing as the Fastest Code</B></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="16-01.html#Heading2">Lessons Learned in the Pursuit of the Ultimate Word Counter</A>
@ -362,7 +362,7 @@
</DL>
</DL>
</B></FONT>
<DD><A HREF="17-01.html#Heading1"><FONT SIZE="4"><B>Chapter 17&mdash;The Game of Life</B></FONT></A>
<DD><A HREF="17-01.html#Heading1"><B>Chapter 17&mdash;The Game of Life</B></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="17-01.html#Heading2">The Triumph of Algorithmic Optimization in a Cellular Automata Game</A>
@ -381,7 +381,7 @@
</DL>
</DL>
</B></FONT>
<DD><A HREF="18-01.html#Heading1"><FONT SIZE="4"><B>Chapter 18&mdash;It&rsquo;s a plain Wonderful Life</B></FONT></A>
<DD><A HREF="18-01.html#Heading1"><B>Chapter 18&mdash;It&rsquo;s a plain Wonderful Life</B></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="18-01.html#Heading2">Optimization beyond the Pale</A>
@ -393,7 +393,7 @@
</DL>
</DL>
</B></FONT>
<DD><A HREF="19-01.html#Heading1"><FONT SIZE="4"><B>Chapter 19&mdash;Pentium: Not the Same Old Song</B></FONT></A>
<DD><A HREF="19-01.html#Heading1"><B>Chapter 19&mdash;Pentium: Not the Same Old Song</B></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="19-01.html#Heading2">Learning a Whole Different Set of Optimization Rules</A>
@ -412,7 +412,7 @@
</DL>
</DL>
</B></FONT>
<DD><A HREF="20-01.html#Heading1"><FONT SIZE="4"><B>Chapter 20&mdash;Pentium Rules</B></FONT></A>
<DD><A HREF="20-01.html#Heading1"><B>Chapter 20&mdash;Pentium Rules</B></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="20-01.html#Heading2">How Your Carbon-Based Optimizer Can Put the &ldquo;Super&rdquo; in Superscalar</A>
@ -425,7 +425,7 @@
</DL>
</DL>
</B></FONT>
<DD><A HREF="21-01.html#Heading1"><FONT SIZE="4"><B>Chapter 21&mdash;Unleashing the Pentium&rsquo;s V-Pipe</B></FONT></A>
<DD><A HREF="21-01.html#Heading1"><B>Chapter 21&mdash;Unleashing the Pentium&rsquo;s V-Pipe</B></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="21-01.html#Heading2">Focusing on Keeping Both Pentium Pipes Full</A>
@ -441,7 +441,7 @@
</DL>
</DL>
</B></FONT>
<DD><A HREF="22-01.html#Heading1"><FONT SIZE="4"><B>Chapter 22&mdash;Zenning and the Flexible Mind</B></FONT></A>
<DD><A HREF="22-01.html#Heading1"><B>Chapter 22&mdash;Zenning and the Flexible Mind</B></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="22-01.html#Heading2">Taking a Spin through What You&rsquo;ve Learned</A>
@ -450,9 +450,9 @@
</DL>
</B></FONT>
<BR>
<DD><A HREF="23-01.html"><FONT SIZE="4"><B>Part II</B></FONT></A>
<DD><A HREF="23-01.html"><B>Part II</B></A>
<DL>
<DD><A HREF="23-01.html#Heading1"><FONT SIZE="4"><B>Chapter 23&mdash;Bones and Sinew</B></FONT></A>
<DD><A HREF="23-01.html#Heading1"><B>Chapter 23&mdash;Bones and Sinew</B></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="23-01.html#Heading2">At the Very Heart of Standard PC Graphics</A>
@ -470,7 +470,7 @@
<DD><A HREF="23-06.html#Heading12">The Macro Assembler</A>
</DL>
</B></FONT>
<DD><A HREF="24-01.html#Heading1"><FONT SIZE="4"><B>Chapter 24&mdash;Parallel Processing with the VGA</B></FONT></A>
<DD><A HREF="24-01.html#Heading1"><B>Chapter 24&mdash;Parallel Processing with the VGA</B></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="24-01.html#Heading2">Taking on Graphics Memory Four Bytes at a Time</A>
@ -478,7 +478,7 @@
<DD><A HREF="24-03.html#Heading4">Notes on the ALU/Latch Demo Program</A>
</DL>
</B></FONT>
<DD><A HREF="25-01.html#Heading1"><FONT SIZE="4"><B>Chapter 25&mdash;VGA Data Machinery</B></FONT></A>
<DD><A HREF="25-01.html#Heading1"><B>Chapter 25&mdash;VGA Data Machinery</B></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="25-01.html#Heading2">The Barrel Shifter, Bit Mask, and Set/Reset Mechanisms</A>
@ -493,7 +493,7 @@
<DD><A HREF="25-06.html#Heading9">A Brief Note on Word OUTs</A>
</DL>
</B></FONT>
<DD><A HREF="26-01.html#Heading1"><FONT SIZE="4"><B>Chapter 26&mdash;VGA Write Mode 3</B></FONT></A>
<DD><A HREF="26-01.html#Heading1"><B>Chapter 26&mdash;VGA Write Mode 3</B></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="26-01.html#Heading2">The Write Mode That Grows on You</A>
@ -501,7 +501,7 @@
<DD><A HREF="26-03.html#Heading4">A Note on Preserving Register Bits</A>
</DL>
</B></FONT>
<DD><A HREF="27-01.html#Heading1"><FONT SIZE="4"><B>Chapter 27&mdash;Yet Another VGA Write Mode</B></FONT></A>
<DD><A HREF="27-01.html#Heading1"><B>Chapter 27&mdash;Yet Another VGA Write Mode</B></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="27-01.html#Heading2">Write Mode 2, Chunky Bitmaps,and Text-Graphics Coexistence</A>
@ -516,7 +516,7 @@
<DD><A HREF="27-04.html#Heading9">Flipping Pages from Text to Graphics and Back</A>
</DL>
</B></FONT>
<DD><A HREF="28-01.html#Heading1"><FONT SIZE="4"><B>Chapter 28&mdash;Reading VGA Memory</B></FONT></A>
<DD><A HREF="28-01.html#Heading1"><B>Chapter 28&mdash;Reading VGA Memory</B></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="28-01.html#Heading2">Read Modes 0 and 1, and the Color Don&rsquo;t Care Register</A>
@ -525,7 +525,7 @@
<DD><A HREF="28-04.html#Heading5">When all Planes &ldquo;Don&rsquo;t Care&rdquo;</A>
</DL>
</B></FONT>
<DD><A HREF="29-01.html#Heading1"><FONT SIZE="4"><B>Chapter 29&mdash;Saving Screens and Other VGA Mysteries</B></FONT></A>
<DD><A HREF="29-01.html#Heading1"><B>Chapter 29&mdash;Saving Screens and Other VGA Mysteries</B></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="29-01.html#Heading2">Useful Nuggets from the VGA Zen File</A>
@ -536,7 +536,7 @@
<DD><A HREF="29-06.html#Heading7">Modifying VGA Registers</A>
</DL>
</B></FONT>
<DD><A HREF="30-01.html#Heading1"><FONT SIZE="4"><B>Chapter 30&mdash;Video Est Omnis Divisa</B></FONT></A>
<DD><A HREF="30-01.html#Heading1"><B>Chapter 30&mdash;Video Est Omnis Divisa</B></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="30-01.html#Heading2">The Joys and Galling Problems of Using Split Screens on the EGA and VGA</A>
@ -556,7 +556,7 @@
<DD><A HREF="30-07.html#Heading12">How Safe?</A>
</DL>
</B></FONT>
<DD><A HREF="31-01.html#Heading1"><FONT SIZE="4"><B>Chapter 31&mdash;Higher 256-Color Resolution on the VGA</B></FONT></A>
<DD><A HREF="31-01.html#Heading1"><B>Chapter 31&mdash;Higher 256-Color Resolution on the VGA</B></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="31-01.html#Heading2">When Is 320x200 Really 320x400?</A>
@ -570,7 +570,7 @@
<DD><A HREF="31-05.html#Heading8">Something to Think About</A>
</DL>
</B></FONT>
<DD><A HREF="32-01.html#Heading1"><FONT SIZE="4"><B>Chapter 32&mdash;Be It Resolved: 360x480</B></FONT></A>
<DD><A HREF="32-01.html#Heading1"><B>Chapter 32&mdash;Be It Resolved: 360x480</B></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="32-01.html#Heading2">Taking 256-Color Modes About as Far as the Standard VGA Can Take Them</A>
@ -584,7 +584,7 @@
</DL>
</DL>
</B></FONT>
<DD><A HREF="33-01.html#Heading1"><FONT SIZE="4"><B>Chapter 33&mdash;Yogi Bear and Eurythmics Confront VGA Colors</B></FONT></A>
<DD><A HREF="33-01.html#Heading1"><B>Chapter 33&mdash;Yogi Bear and Eurythmics Confront VGA Colors</B></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="33-01.html#Heading2">The Basics of VGA Color Generation</A>
@ -601,7 +601,7 @@
<DD><A HREF="33-03.html#Heading11">An Example of Setting the DAC</A>
</DL>
</B></FONT>
<DD><A HREF="34-01.html#Heading1"><FONT SIZE="4"><B>Chapter 34&mdash;Changing Colors without Writing Pixels</B></FONT></A>
<DD><A HREF="34-01.html#Heading1"><B>Chapter 34&mdash;Changing Colors without Writing Pixels</B></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="34-01.html#Heading2">Special Effects through Realtime Manipulation of DAC Colors</A>
@ -621,7 +621,7 @@
</DL>
</DL>
</B></FONT>
<DD><A HREF="35-01.html#Heading1"><FONT SIZE="4"><B>Chapter 35&mdash;Bresenham Is Fast, and Fast Is Good</B></FONT></A>
<DD><A HREF="35-01.html#Heading1"><B>Chapter 35&mdash;Bresenham Is Fast, and Fast Is Good</B></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="35-01.html#Heading2">Implementing and Optimizing Bresenham&rsquo;s Line-Drawing Algorithm</A>
@ -640,7 +640,7 @@
<DD><A HREF="35-06.html#Heading11">Bresenham&rsquo;s Algorithm in Assembly</A>
</DL>
</B></FONT>
<DD><A HREF="36-01.html#Heading1"><FONT SIZE="4"><B>Chapter 36&mdash;The Good, the Bad, and the Run-Sliced</B></FONT></A>
<DD><A HREF="36-01.html#Heading1"><B>Chapter 36&mdash;The Good, the Bad, and the Run-Sliced</B></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="36-01.html#Heading2">Faster Bresenham Lines with Run-Length Slice Line Drawing</A>
@ -649,7 +649,7 @@
<DD><A HREF="36-03.html#Heading5">Run-Length Slice Details</A>
</DL>
</B></FONT>
<DD><A HREF="37-01.html#Heading1"><FONT SIZE="4"><B>Chapter 37&mdash;Dead Cats and Lightning Lines</B></FONT></A>
<DD><A HREF="37-01.html#Heading1"><B>Chapter 37&mdash;Dead Cats and Lightning Lines</B></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="37-01.html#Heading2">Optimizing Run-Length Slice Line Drawing in a Major Way</A>
@ -660,7 +660,7 @@
</DL>
</DL>
</B></FONT>
<DD><A HREF="38-01.html#Heading1"><FONT SIZE="4"><B>Chapter 38&mdash;The Polygon Primeval</B></FONT></A>
<DD><A HREF="38-01.html#Heading1"><B>Chapter 38&mdash;The Polygon Primeval</B></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="38-01.html#Heading2">Drawing Polygons Efficiently and Quickly</A>
@ -673,7 +673,7 @@
<DD><A HREF="38-04.html#Heading7">Oddball Cases</A>
</DL>
</B></FONT>
<DD><A HREF="39-01.html#Heading1"><FONT SIZE="4"><B>Chapter 39&mdash;Fast Convex Polygons</B></FONT></A>
<DD><A HREF="39-01.html#Heading1"><B>Chapter 39&mdash;Fast Convex Polygons</B></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="39-01.html#Heading2">Filling Polygons in a Hurry</A>
@ -689,7 +689,7 @@
<DD><A HREF="39-04.html#Heading8">Faster Edge Tracing</A>
</DL>
</B></FONT>
<DD><A HREF="40-01.html#Heading1"><FONT SIZE="4"><B>Chapter 40&mdash;Of Songs, Taxes, and the Simplicity of Complex Polygons</B></FONT></A>
<DD><A HREF="40-01.html#Heading1"><B>Chapter 40&mdash;Of Songs, Taxes, and the Simplicity of Complex Polygons</B></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="40-01.html#Heading2">Dealing with Irregular Polygonal Areas</A>
@ -708,14 +708,14 @@
</DL>
</DL>
</B></FONT>
<DD><A HREF="41-01.html#Heading1"><FONT SIZE="4"><B>Chapter 41&mdash;Those Way-Down Polygon Nomenclature Blues</B></FONT></A>
<DD><A HREF="41-01.html#Heading1"><B>Chapter 41&mdash;Those Way-Down Polygon Nomenclature Blues</B></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="41-01.html#Heading2">Names Do Matter when You Conceptualize a Data Structure</A>
<DD><A HREF="41-01.html#Heading3">Nomenclature in Action</A>
</DL>
</B></FONT>
<DD><A HREF="42-01.html#Heading1"><FONT SIZE="4"><B>Chapter 42&mdash;Wu&rsquo;ed in Haste; Fried, Stewed at Leisure</B></FONT></A>
<DD><A HREF="42-01.html#Heading1"><B>Chapter 42&mdash;Wu&rsquo;ed in Haste; Fried, Stewed at Leisure</B></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="42-01.html#Heading2">Fast Antialiased Lines Using Wu&rsquo;s Algorithm</A>
@ -727,7 +727,7 @@
</DL>
</DL>
</B></FONT>
<DD><A HREF="43-01.html#Heading1"><FONT SIZE="4"><B>Chapter 43&mdash;Bit-Plane Animation</B></FONT></A>
<DD><A HREF="43-01.html#Heading1"><B>Chapter 43&mdash;Bit-Plane Animation</B></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="43-01.html#Heading2">A Simple and Extremely Fast Animation Method for Limited Color</A>
@ -741,7 +741,7 @@
<DD><A HREF="43-06.html#Heading8">Beating the Odds in the Jaw-Dropping Contest</A>
</DL>
</B></FONT>
<DD><A HREF="44-01.html#Heading1"><FONT SIZE="4"><B>Chapter 44&mdash;Split Screens Save the Page Flipped Day</B></FONT></A>
<DD><A HREF="44-01.html#Heading1"><B>Chapter 44&mdash;Split Screens Save the Page Flipped Day</B></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="44-01.html#Heading2">640x480 Page Flipped Animation in 64K...Almost</A>
@ -758,7 +758,7 @@
</DL>
</DL>
</B></FONT>
<DD><A HREF="45-01.html#Heading1"><FONT SIZE="4"><B>Chapter 45&mdash;Dog Hair and Dirty Rectangles</B></FONT></A>
<DD><A HREF="45-01.html#Heading1"><B>Chapter 45&mdash;Dog Hair and Dirty Rectangles</B></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="45-01.html#Heading2">Different Angles on Animation</A>
@ -773,7 +773,7 @@
<DD><A HREF="45-06.html#Heading9">Another Interesting Twist on Page Flipping</A>
</DL>
</B></FONT>
<DD><A HREF="46-01.html#Heading1"><FONT SIZE="4"><B>Chapter 46&mdash;Who Was that Masked Image?</B></FONT></A>
<DD><A HREF="46-01.html#Heading1"><B>Chapter 46&mdash;Who Was that Masked Image?</B></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="46-01.html#Heading2">Optimizing Dirty-Rectangle Animation</A>
@ -788,7 +788,7 @@
</DL>
</DL>
</B></FONT>
<DD><A HREF="47-01.html#Heading1"><FONT SIZE="4"><B>Chapter 47&mdash;Mode X: 256-Color VGA Magic</B></FONT></A>
<DD><A HREF="47-01.html#Heading1"><B>Chapter 47&mdash;Mode X: 256-Color VGA Magic</B></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="47-01.html#Heading2">Introducing the VGA&rsquo;s Undocumented &ldquo;Animation-Optimal&rdquo; Mode</A>
@ -798,7 +798,7 @@
<DD><A HREF="47-06.html#Heading6">Hardware Assist from an Unexpected Quarter</A>
</DL>
</B></FONT>
<DD><A HREF="48-01.html#Heading1"><FONT SIZE="4"><B>Chapter 48&mdash;Mode X Marks the Latch</B></FONT></A>
<DD><A HREF="48-01.html#Heading1"><B>Chapter 48&mdash;Mode X Marks the Latch</B></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="48-01.html#Heading2">The Internals of Animation&rsquo;s Best Video Display Mode</A>
@ -810,7 +810,7 @@
<DD><A HREF="48-05.html#Heading6">Who Was that Masked Image Copier?</A>
</DL>
</B></FONT>
<DD><A HREF="49-01.html#Heading1"><FONT SIZE="4"><B>Chapter 49&mdash;Mode X 256-Color Animation</B></FONT></A>
<DD><A HREF="49-01.html#Heading1"><B>Chapter 49&mdash;Mode X 256-Color Animation</B></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="49-01.html#Heading2">How to Make the VGA Really Get up and Dance</A>
@ -824,7 +824,7 @@
<DD><A HREF="49-05.html#Heading8">Works Fast, Looks Great</A>
</DL>
</B></FONT>
<DD><A HREF="50-01.html#Heading1"><FONT SIZE="4"><B>Chapter 50&mdash;Adding a Dimension</B></FONT></A>
<DD><A HREF="50-01.html#Heading1"><B>Chapter 50&mdash;Adding a Dimension</B></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="50-01.html#Heading2">3-D Animation Using Mode X</A>
@ -842,7 +842,7 @@
<DD><A HREF="50-07.html#Heading10">An Ongoing Journey</A>
</DL>
</B></FONT>
<DD><A HREF="51-01.html#Heading1"><FONT SIZE="4"><B>Chapter 51&mdash;Sneakers in Space</B></FONT></A>
<DD><A HREF="51-01.html#Heading1"><B>Chapter 51&mdash;Sneakers in Space</B></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="51-01.html#Heading2">Using Backface Removal to Eliminate Hidden Surfaces</A>
@ -855,7 +855,7 @@
<DD><A HREF="51-06.html#Heading7">Object Representation</A>
</DL>
</B></FONT>
<DD><A HREF="52-01.html#Heading1"><FONT SIZE="4"><B>Chapter 52&mdash;Fast 3-D Animation: Meet X-Sharp</B></FONT></A>
<DD><A HREF="52-01.html#Heading1"><B>Chapter 52&mdash;Fast 3-D Animation: Meet X-Sharp</B></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="52-01.html#Heading2">The First Iteration of a Generalized 3-D Animation Package</A>
@ -868,7 +868,7 @@
</DL>
</DL>
</B></FONT>
<DD><A HREF="53-01.html#Heading1"><FONT SIZE="4"><B>Chapter 53&mdash;Raw Speed and More</B></FONT></A>
<DD><A HREF="53-01.html#Heading1"><B>Chapter 53&mdash;Raw Speed and More</B></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="53-01.html#Heading2">The Naked Truth About Speed in 3-D Animation</A>
@ -880,7 +880,7 @@
</DL>
</DL>
</B></FONT>
<DD><A HREF="54-01.html#Heading1"><FONT SIZE="4"><B>Chapter 54&mdash;3-D Shading</B></FONT></A>
<DD><A HREF="54-01.html#Heading1"><B>Chapter 54&mdash;3-D Shading</B></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="54-01.html#Heading2">Putting Realistic Surfaces on Animated 3-D Objects</A>
@ -895,7 +895,7 @@
</DL>
</DL>
</B></FONT>
<DD><A HREF="55-01.html#Heading1"><FONT SIZE="4"><B>Chapter 55&mdash;Color Modeling in 256-Color Mode</B></FONT></A>
<DD><A HREF="55-01.html#Heading1"><B>Chapter 55&mdash;Color Modeling in 256-Color Mode</B></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="55-01.html#Heading2">Pondering X-Sharp&rsquo;s Color Model in an RGB State of Mind</A>
@ -905,7 +905,7 @@
</DL>
</DL>
</B></FONT>
<DD><A HREF="56-01.html#Heading1"><FONT SIZE="4"><B>Chapter 56&mdash;Pooh and the Space Station</B></FONT></A>
<DD><A HREF="56-01.html#Heading1"><B>Chapter 56&mdash;Pooh and the Space Station</B></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="56-01.html#Heading2">Using Fast Texture Mapping to Place Pooh on a Polygon</A>
@ -916,7 +916,7 @@
<DD><A HREF="56-03.html#Heading5">Fast Texture Mapping: An Implementation</A>
</DL>
</B></FONT>
<DD><A HREF="57-01.html#Heading1"><FONT SIZE="4"><B>Chapter 57&mdash;10,000 Freshly Sheared Sheep on the Screen</B></FONT></A>
<DD><A HREF="57-01.html#Heading1"><B>Chapter 57&mdash;10,000 Freshly Sheared Sheep on the Screen</B></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="57-01.html#Heading2">The Critical Role of Experience in Implementing Fast, Smooth Texture Mapping</A>
@ -931,7 +931,7 @@
</DL>
</DL>
</B></FONT>
<DD><A HREF="58-01.html#Heading1"><FONT SIZE="4"><B>Chapter 58&mdash;Heinlein&rsquo;s Crystal Ball, Spock&rsquo;s Brain, and the 9-Cycle Dare</B></FONT></A>
<DD><A HREF="58-01.html#Heading1"><B>Chapter 58&mdash;Heinlein&rsquo;s Crystal Ball, Spock&rsquo;s Brain, and the 9-Cycle Dare</B></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="58-01.html#Heading2">Using the Whole-Brain Approach to Accelerate Texture Mapping</A>
@ -947,7 +947,7 @@
<DD><A HREF="58-05.html#Heading8">Texture Mapping Notes</A>
</DL>
</B></FONT>
<DD><A HREF="59-01.html#Heading1"><FONT SIZE="4"><B>Chapter 59&mdash;The Idea of BSP Trees</B></FONT></A>
<DD><A HREF="59-01.html#Heading1"><B>Chapter 59&mdash;The Idea of BSP Trees</B></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="59-01.html#Heading2">What BSP Trees Are and How to Walk Them</A>
@ -971,7 +971,7 @@
</DL>
</DL>
</B></FONT>
<DD><A HREF="60-01.html#Heading1"><FONT SIZE="4"><B>Chapter 60&mdash;Compiling BSP Trees</B></FONT></A>
<DD><A HREF="60-01.html#Heading1"><B>Chapter 60&mdash;Compiling BSP Trees</B></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="60-01.html#Heading2">Taking BSP Trees from Concept to Reality</A>
@ -985,7 +985,7 @@
<DD><A HREF="60-04.html#Heading8">BSP Optimization: an Undiscovered Country</A>
</DL>
</B></FONT>
<DD><A HREF="61-01.html#Heading1"><FONT SIZE="4"><B>Chapter 61&mdash;Frames of Reference</B></FONT></A>
<DD><A HREF="61-01.html#Heading1"><B>Chapter 61&mdash;Frames of Reference</B></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="61-01.html#Heading2">The Fundamentals of the Math behind 3-D Graphics</A>
@ -1003,7 +1003,7 @@
<DD><A HREF="61-04.html#Heading10">Rotation by Projection</A>
</DL>
</B></FONT>
<DD><A HREF="62-01.html#Heading1"><FONT SIZE="4"><B>Chapter 62&mdash;One Story, Two Rules, and a BSP Renderer</B></FONT></A>
<DD><A HREF="62-01.html#Heading1"><B>Chapter 62&mdash;One Story, Two Rules, and a BSP Renderer</B></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="62-01.html#Heading2">Taking a Compiled BSP Tree from Logical to Visual Reality</A>
@ -1021,7 +1021,7 @@
</DL>
</DL>
</B></FONT>
<DD><A HREF="63-01.html#Heading1"><FONT SIZE="4"><B>Chapter 63&mdash;Floating-Point for Real-Time 3-D</B></FONT></A>
<DD><A HREF="63-01.html#Heading1"><B>Chapter 63&mdash;Floating-Point for Real-Time 3-D</B></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="63-01.html#Heading2">Knowing When to Hurl Conventional Math Wisdom Out the Window</A>
@ -1039,7 +1039,7 @@
<DD><A HREF="63-04.html#Heading12">A Farewell to 3-D Fixed-Point</A>
</DL>
</B></FONT>
<DD><A HREF="64-01.html#Heading1"><FONT SIZE="4"><B>Chapter 64&mdash;Quake&rsquo;s Visible-Surface Determination</B></FONT></A>
<DD><A HREF="64-01.html#Heading1"><B>Chapter 64&mdash;Quake&rsquo;s Visible-Surface Determination</B></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="64-01.html#Heading2">The Challenge of Separating All Things Seen from All Things Unseen</A>
@ -1065,7 +1065,7 @@
<DD><A HREF="64-04.html#Heading18">References</A>
</DL>
</B></FONT>
<DD><A HREF="65-01.html#Heading1"><FONT SIZE="4"><B>Chapter 65&mdash;3-D Clipping and Other Thoughts</B></FONT></A>
<DD><A HREF="65-01.html#Heading1"><B>Chapter 65&mdash;3-D Clipping and Other Thoughts</B></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="65-01.html#Heading2">Determining What&rsquo;s Inside Your Field of View</A>
@ -1082,7 +1082,7 @@
<DD><A HREF="65-04.html#Heading9">Further Reading</A>
</DL>
</B></FONT>
<DD><A HREF="66-01.html#Heading1"><FONT SIZE="4"><B>Chapter 66&mdash;Quake&rsquo;s Hidden-Surface Removal</B></FONT></A>
<DD><A HREF="66-01.html#Heading1"><B>Chapter 66&mdash;Quake&rsquo;s Hidden-Surface Removal</B></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="66-01.html#Heading2">Struggling with Z-Order Solutions to the Hidden Surface Problem</A>
@ -1102,7 +1102,7 @@
<DD><A HREF="66-04.html#Heading12">Decisions Deferred</A>
</DL>
</B></FONT>
<DD><A HREF="67-01.html#Heading1"><FONT SIZE="4"><B>Chapter 67&mdash;Sorted Spans in Action</B></FONT></A>
<DD><A HREF="67-01.html#Heading1"><B>Chapter 67&mdash;Sorted Spans in Action</B></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="67-01.html#Heading2">Implementing Independent Span Sorting for Rendering without Overdraw</A>
@ -1119,7 +1119,7 @@
</DL>
</DL>
</B></FONT>
<DD><A HREF="68-01.html#Heading1"><FONT SIZE="4"><B>Chapter 68&mdash;Quake&rsquo;s Lighting Model</B></FONT></A>
<DD><A HREF="68-01.html#Heading1"><B>Chapter 68&mdash;Quake&rsquo;s Lighting Model</B></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="68-01.html#Heading2">A Radically Different Approach to Lighting Polygons</A>
@ -1141,7 +1141,7 @@
</DL>
</DL>
</B></FONT>
<DD><A HREF="69-01.html#Heading1"><FONT SIZE="4"><B>Chapter 69&mdash;Surface Caching and Quake&rsquo;s Triangle Models</B></FONT></A>
<DD><A HREF="69-01.html#Heading1"><B>Chapter 69&mdash;Surface Caching and Quake&rsquo;s Triangle Models</B></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="69-01.html#Heading2">Probing Hardware-Assisted Surfaces and Fast Model Animation Without Sprites</A>
@ -1160,7 +1160,7 @@
</DL>
</DL>
</B></FONT>
<DD><A HREF="70-01.html#Heading1"><FONT SIZE="4"><B>Chapter 70&mdash;Quake: A Post-Mortem and a Glimpse into the Future</B></FONT></A>
<DD><A HREF="70-01.html#Heading1"><B>Chapter 70&mdash;Quake: A Post-Mortem and a Glimpse into the Future</B></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="70-01.html#Heading2">Preprocessing the World</A>
@ -1201,7 +1201,7 @@
<hr width="90%" size="1" noshade>
<div align="center">
<font face="Verdana,sans-serif" size="1">Graphics Programming Black Book &copy; 2001 Michael Abrash</font>
Graphics Programming Black Book &copy; 2001 Michael Abrash
</div>
<!-- all of the reference materials (books) have the footer and subfoot reveresed -->
<!-- reference_subfoot = footer -->