Replace invalid characters with HTML entities

— with —
’ with ’
+ with +
× with x
ç with ç
“ with “
” with ”
‘ with ‘
• with •
– with -
µ with µ
† with †
Fix C++
θ with θ
Yen symbol instead of times
Fix broken apos
Bullet again
E-circumflex
This commit is contained in:
James Gregory 2013-12-30 12:50:32 +11:00
commit 500e7f5654
353 changed files with 5091 additions and 5091 deletions

View file

@ -37,17 +37,17 @@
<BR>
<BR><DD><A HREF="01-01.html"><FONT SIZE="4"><B>Part I</B></FONT></A>
<DL>
<DD><A HREF="01-01.html#Heading1"><FONT SIZE="4"><B>Chapter 1&#151;The Best Optimizer Is between Your Ears</B></FONT></A>
<DD><A HREF="01-01.html#Heading1"><FONT SIZE="4"><B>Chapter 1&mdash;The Best Optimizer Is between Your Ears</B></FONT></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="01-01.html#Heading2">The Human Element of Code Optimization</A>
<DD><A HREF="01-01.html#Heading3">Understanding High Performance</A>
<DL>
<DD><A HREF="01-01.html#Heading4">When Fast Isn&#146;t Fast</A>
<DD><A HREF="01-01.html#Heading4">When Fast Isn&rsquo;t Fast</A>
</DL>
<DD><A HREF="01-02.html#Heading5">Rules for Building High-Performance Code</A>
<DL>
<DD><A HREF="01-02.html#Heading6">Know Where You&#146;re Going</A>
<DD><A HREF="01-02.html#Heading6">Know Where You&rsquo;re Going</A>
<DD><A HREF="01-02.html#Heading7">Make a Big Map</A>
<DD><A HREF="01-02.html#Heading8">Make Lots of Little Maps</A>
<DD><A HREF="01-03.html#Heading9">Know the Territory</A>
@ -55,13 +55,13 @@
<DD><A HREF="01-04.html#Heading11">Always Consider the Alternatives</A>
<DD><A HREF="01-05.html#Heading12">Know How to Turn On the Juice</A>
</DL>
<DD><A HREF="01-06.html#Heading13">Where We&#146;ve Been, What We&#146;ve Seen</A>
<DD><A HREF="01-06.html#Heading13">Where We&rsquo;ve Been, What We&rsquo;ve Seen</A>
<DL>
<DD><A HREF="01-06.html#Heading14">Where We&#146;re Going</A>
<DD><A HREF="01-06.html#Heading14">Where We&rsquo;re Going</A>
</DL>
</DL>
</B></FONT>
<DD><A HREF="02-01.html#Heading1"><FONT SIZE="4"><B>Chapter 2&#151;A World Apart</B></FONT></A>
<DD><A HREF="02-01.html#Heading1"><FONT SIZE="4"><B>Chapter 2&mdash;A World Apart</B></FONT></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&#151;Assume Nothing</B></FONT></A>
<DD><A HREF="03-01.html#Heading1"><FONT SIZE="4"><B>Chapter 3&mdash;Assume Nothing</B></FONT></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="03-01.html#Heading2">Understanding and Using the Zen Timer</A>
@ -106,14 +106,14 @@
</DL>
</DL>
</B></FONT>
<DD><A HREF="04-01.html#Heading1"><FONT SIZE="4"><B>Chapter 4&#151;In the Lair of the Cycle-Eaters</B></FONT></A>
<DD><A HREF="04-01.html#Heading1"><FONT SIZE="4"><B>Chapter 4&mdash;In the Lair of the Cycle-Eaters</B></FONT></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="04-01.html#Heading2">How the PC Hardware Devours Code Performance</A>
<DD><A HREF="04-01.html#Heading3">Cycle-Eaters</A>
<DD><A HREF="04-01.html#Heading4">The Nature of Cycle-Eaters</A>
<DL>
<DD><A HREF="04-01.html#Heading5">The 8088&#146;s Ancestral Cycle-Eaters</A>
<DD><A HREF="04-01.html#Heading5">The 8088&rsquo;s Ancestral Cycle-Eaters</A>
</DL>
<DD><A HREF="04-01.html#Heading6">The 8-Bit Bus Cycle-Eater</A>
<DL>
@ -144,7 +144,7 @@
</DL>
</DL>
</B></FONT>
<DD><A HREF="05-01.html#Heading1"><FONT SIZE="4"><B>Chapter 5&#151;Crossing the Border</B></FONT></A>
<DD><A HREF="05-01.html#Heading1"><FONT SIZE="4"><B>Chapter 5&mdash;Crossing the Border</B></FONT></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&#151;Looking Past Face Value</B></FONT></A>
<DD><A HREF="06-01.html#Heading1"><FONT SIZE="4"><B>Chapter 6&mdash;Looking Past Face Value</B></FONT></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&#151;Local Optimization</B></FONT></A>
<DD><A HREF="07-01.html#Heading1"><FONT SIZE="4"><B>Chapter 7&mdash;Local Optimization</B></FONT></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="07-01.html#Heading2">Optimizing Halfway between Algorithms and Cycle Counting</A>
@ -193,19 +193,19 @@
<DD><A HREF="07-03.html#Heading7">Unrolling Loops</A>
<DL>
<DD><A HREF="07-05.html#Heading8">Rotating and Shifting with Tables</A>
<DD><A HREF="07-05.html#Heading9">NOT Flips Bits&#151;Not Flags</A>
<DD><A HREF="07-05.html#Heading9">NOT Flips Bits&mdash;Not Flags</A>
<DD><A HREF="07-05.html#Heading10">Incrementing with and without Carry</A>
</DL>
</DL>
</B></FONT>
<DD><A HREF="08-01.html#Heading1"><FONT SIZE="4"><B>Chapter 8&#151;Speeding Up C with Assembly Language</B></FONT></A>
<DD><A HREF="08-01.html#Heading1"><FONT SIZE="4"><B>Chapter 8&mdash;Speeding Up C with Assembly Language</B></FONT></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="08-01.html#Heading2">Jumping Languages When You Know It&#146;ll Help</A>
<DD><A HREF="08-01.html#Heading2">Jumping Languages When You Know It&rsquo;ll Help</A>
<DL>
<DD><A HREF="08-01.html#Heading3">Billy, Don&#146;t Be a Compiler</A>
<DD><A HREF="08-01.html#Heading3">Billy, Don&rsquo;t Be a Compiler</A>
</DL>
<DD><A HREF="08-01.html#Heading4">Don&#146;t Call Your Functions on Me, Baby</A>
<DD><A HREF="08-01.html#Heading4">Don&rsquo;t Call Your Functions on Me, Baby</A>
<DD><A HREF="08-02.html#Heading5">Stack Frames Slow So Much</A>
<DD><A HREF="08-02.html#Heading6">Torn Between Two Segments</A>
<DL>
@ -217,7 +217,7 @@
</DL>
</DL>
</B></FONT>
<DD><A HREF="09-01.html#Heading1"><FONT SIZE="4"><B>Chapter 9&#151;Hints My Readers Gave Me</B></FONT></A>
<DD><A HREF="09-01.html#Heading1"><FONT SIZE="4"><B>Chapter 9&mdash;Hints My Readers Gave Me</B></FONT></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&#151;Patient Coding, Faster Code</B></FONT></A>
<DD><A HREF="10-01.html#Heading1"><FONT SIZE="4"><B>Chapter 10&mdash;Patient Coding, Faster Code</B></FONT></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&#151;Pushing the 286 and 386</B></FONT></A>
<DD><A HREF="11-01.html#Heading1"><FONT SIZE="4"><B>Chapter 11&mdash;Pushing the 286 and 386</B></FONT></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="11-01.html#Heading2">New Registers, New Instructions, New Timings, New Complications</A>
@ -281,10 +281,10 @@
</DL>
</DL>
</B></FONT>
<DD><A HREF="12-01.html#Heading1"><FONT SIZE="4"><B>Chapter 12&#151;Pushing the 486</B></FONT></A>
<DD><A HREF="12-01.html#Heading1"><FONT SIZE="4"><B>Chapter 12&mdash;Pushing the 486</B></FONT></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="12-01.html#Heading2">It&#146;s Not Just a Bigger 386</A>
<DD><A HREF="12-01.html#Heading2">It&rsquo;s Not Just a Bigger 386</A>
<DL>
<DD><A HREF="12-01.html#Heading3">Enter the 486</A>
</DL>
@ -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&#151;Aiming the 486</B></FONT></A>
<DD><A HREF="13-01.html#Heading1"><FONT SIZE="4"><B>Chapter 13&mdash;Aiming the 486</B></FONT></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&#151;Boyer-Moore String Searching</B></FONT></A>
<DD><A HREF="14-01.html#Heading1"><FONT SIZE="4"><B>Chapter 14&mdash;Boyer-Moore String Searching</B></FONT></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&#151;Linked Lists and plain Unintended Challenges</B></FONT></A>
<DD><A HREF="15-01.html#Heading1"><FONT SIZE="4"><B>Chapter 15&mdash;Linked Lists and plain Unintended Challenges</B></FONT></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&#151;There Ain&#146;t No Such Thing as the Fastest Code</B></FONT></A>
<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>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="16-01.html#Heading2">Lessons Learned in the Pursuit of the Ultimate Word Counter</A>
@ -362,17 +362,17 @@
</DL>
</DL>
</B></FONT>
<DD><A HREF="17-01.html#Heading1"><FONT SIZE="4"><B>Chapter 17&#151;The Game of Life</B></FONT></A>
<DD><A HREF="17-01.html#Heading1"><FONT SIZE="4"><B>Chapter 17&mdash;The Game of Life</B></FONT></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="17-01.html#Heading2">The Triumph of Algorithmic Optimization in a Cellular Automata Game</A>
<DD><A HREF="17-01.html#Heading3">Conway&#146;s Game</A>
<DD><A HREF="17-01.html#Heading3">Conway&rsquo;s Game</A>
<DL>
<DD><A HREF="17-01.html#Heading4">The Rules of the Game</A>
</DL>
<DD><A HREF="17-03.html#Heading5">Where Does the Time Go?</A>
<DD><A HREF="17-03.html#Heading6">The Hazards and Advantages of Abstraction</A>
<DD><A HREF="17-05.html#Heading7">Heavy-Duty C&#43;&#43; Optimization</A>
<DD><A HREF="17-05.html#Heading7">Heavy-Duty C++ Optimization</A>
<DD><A HREF="17-06.html#Heading8">Bringing In the Right Brain</A>
<DL>
<DD><A HREF="17-06.html#Heading9">Re-Examining the Task</A>
@ -381,7 +381,7 @@
</DL>
</DL>
</B></FONT>
<DD><A HREF="18-01.html#Heading1"><FONT SIZE="4"><B>Chapter 18&#151;It&#146;s a plain Wonderful Life</B></FONT></A>
<DD><A HREF="18-01.html#Heading1"><FONT SIZE="4"><B>Chapter 18&mdash;It&rsquo;s a plain Wonderful Life</B></FONT></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="18-01.html#Heading2">Optimization beyond the Pale</A>
@ -389,11 +389,11 @@
<DD><A HREF="18-02.html#Heading4">Table-Driven Magic</A>
<DD><A HREF="18-04.html#Heading5">Keeping Track of Change with a Change List</A>
<DL>
<DD><A HREF="18-05.html#Heading6">A Layperson&#146;s Overview of QLIFE</A>
<DD><A HREF="18-05.html#Heading6">A Layperson&rsquo;s Overview of QLIFE</A>
</DL>
</DL>
</B></FONT>
<DD><A HREF="19-01.html#Heading1"><FONT SIZE="4"><B>Chapter 19&#151;Pentium: Not the Same Old Song</B></FONT></A>
<DD><A HREF="19-01.html#Heading1"><FONT SIZE="4"><B>Chapter 19&mdash;Pentium: Not the Same Old Song</B></FONT></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="19-01.html#Heading2">Learning a Whole Different Set of Optimization Rules</A>
@ -412,10 +412,10 @@
</DL>
</DL>
</B></FONT>
<DD><A HREF="20-01.html#Heading1"><FONT SIZE="4"><B>Chapter 20&#151;Pentium Rules</B></FONT></A>
<DD><A HREF="20-01.html#Heading1"><FONT SIZE="4"><B>Chapter 20&mdash;Pentium Rules</B></FONT></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="20-01.html#Heading2">How Your Carbon-Based Optimizer Can Put the &#147;Super&#148; in Superscalar</A>
<DD><A HREF="20-01.html#Heading2">How Your Carbon-Based Optimizer Can Put the &ldquo;Super&rdquo; in Superscalar</A>
<DD><A HREF="20-01.html#Heading3">An Instruction in Every Pipe</A>
<DD><A HREF="20-02.html#Heading4">V-Pipe-Capable Instructions</A>
<DD><A HREF="20-03.html#Heading5">Lockstep Execution</A>
@ -425,7 +425,7 @@
</DL>
</DL>
</B></FONT>
<DD><A HREF="21-01.html#Heading1"><FONT SIZE="4"><B>Chapter 21&#151;Unleashing the Pentium&#146;s V-Pipe</B></FONT></A>
<DD><A HREF="21-01.html#Heading1"><FONT SIZE="4"><B>Chapter 21&mdash;Unleashing the Pentium&rsquo;s V-Pipe</B></FONT></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="21-01.html#Heading2">Focusing on Keeping Both Pentium Pipes Full</A>
@ -434,17 +434,17 @@
<DL>
<DD><A HREF="21-02.html#Heading5">Exceptions to Register Contention</A>
</DL>
<DD><A HREF="21-02.html#Heading6">Who&#146;s in First?</A>
<DD><A HREF="21-02.html#Heading6">Who&rsquo;s in First?</A>
<DD><A HREF="21-03.html#Heading7">Pentium Optimization in Action</A>
<DL>
<DD><A HREF="21-05.html#Heading8">A Quick Note on the 386 and 486</A>
</DL>
</DL>
</B></FONT>
<DD><A HREF="22-01.html#Heading1"><FONT SIZE="4"><B>Chapter 22&#151;Zenning and the Flexible Mind</B></FONT></A>
<DD><A HREF="22-01.html#Heading1"><FONT SIZE="4"><B>Chapter 22&mdash;Zenning and the Flexible Mind</B></FONT></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="22-01.html#Heading2">Taking a Spin through What You&#146;ve Learned</A>
<DD><A HREF="22-01.html#Heading2">Taking a Spin through What You&rsquo;ve Learned</A>
<DD><A HREF="22-01.html#Heading3">Zenning</A>
</DL>
</DL>
@ -452,7 +452,7 @@
<BR>
<DD><A HREF="23-01.html"><FONT SIZE="4"><B>Part II</B></FONT></A>
<DL>
<DD><A HREF="23-01.html#Heading1"><FONT SIZE="4"><B>Chapter 23&#151;Bones and Sinew</B></FONT></A>
<DD><A HREF="23-01.html#Heading1"><FONT SIZE="4"><B>Chapter 23&mdash;Bones and Sinew</B></FONT></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&#151;Parallel Processing with the VGA</B></FONT></A>
<DD><A HREF="24-01.html#Heading1"><FONT SIZE="4"><B>Chapter 24&mdash;Parallel Processing with the VGA</B></FONT></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="24-01.html#Heading2">Taking on Graphics Memory Four Bytes at a Time</A>
@ -478,13 +478,13 @@
<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&#151;VGA Data Machinery</B></FONT></A>
<DD><A HREF="25-01.html#Heading1"><FONT SIZE="4"><B>Chapter 25&mdash;VGA Data Machinery</B></FONT></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="25-01.html#Heading2">The Barrel Shifter, Bit Mask, and Set/Reset Mechanisms</A>
<DD><A HREF="25-01.html#Heading3">VGA Data Rotation</A>
<DD><A HREF="25-01.html#Heading4">The Bit Mask</A>
<DD><A HREF="25-03.html#Heading5">The VGA&#146;s Set/Reset Circuitry</A>
<DD><A HREF="25-03.html#Heading5">The VGA&rsquo;s Set/Reset Circuitry</A>
<DL>
<DD><A HREF="25-04.html#Heading6">Setting All Planes to a Single Color</A>
<DD><A HREF="25-05.html#Heading7">Manipulating Planes Individually</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&#151;VGA Write Mode 3</B></FONT></A>
<DD><A HREF="26-01.html#Heading1"><FONT SIZE="4"><B>Chapter 26&mdash;VGA Write Mode 3</B></FONT></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="26-01.html#Heading2">The Write Mode That Grows on You</A>
@ -501,31 +501,31 @@
<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&#151;Yet Another VGA Write Mode</B></FONT></A>
<DD><A HREF="27-01.html#Heading1"><FONT SIZE="4"><B>Chapter 27&mdash;Yet Another VGA Write Mode</B></FONT></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="27-01.html#Heading2">Write Mode 2, Chunky Bitmaps,and Text-Graphics Coexistence</A>
<DD><A HREF="27-01.html#Heading3">Write Mode 2 and Set/Reset</A>
<DL>
<DD><A HREF="27-01.html#Heading4">A Byte&#146;s Progress in Write Mode 2</A>
<DD><A HREF="27-01.html#Heading4">A Byte&rsquo;s Progress in Write Mode 2</A>
<DD><A HREF="27-02.html#Heading5">Copying Chunky Bitmaps to VGA Memory Using Write Mode 2</A>
<DD><A HREF="27-03.html#Heading6">Drawing Color-Patterned Lines Using Write Mode 2</A>
</DL>
<DD><A HREF="27-04.html#Heading7">When to Use Write Mode 2 and When to Use Set/Reset</A>
<DD><A HREF="27-04.html#Heading8">Mode 13H&#151;320&#215;200 with 256 Colors</A>
<DD><A HREF="27-04.html#Heading8">Mode 13H&mdash;320x200 with 256 Colors</A>
<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&#151;Reading VGA Memory</B></FONT></A>
<DD><A HREF="28-01.html#Heading1"><FONT SIZE="4"><B>Chapter 28&mdash;Reading VGA Memory</B></FONT></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="28-01.html#Heading2">Read Modes 0 and 1, and the Color Don&#146;t Care Register</A>
<DD><A HREF="28-01.html#Heading2">Read Modes 0 and 1, and the Color Don&rsquo;t Care Register</A>
<DD><A HREF="28-01.html#Heading3">Read Mode 0</A>
<DD><A HREF="28-03.html#Heading4">Read Mode 1</A>
<DD><A HREF="28-04.html#Heading5">When all Planes &#147;Don&#146;t Care&#148;</A>
<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&#151;Saving Screens and Other VGA Mysteries</B></FONT></A>
<DD><A HREF="29-01.html#Heading1"><FONT SIZE="4"><B>Chapter 29&mdash;Saving Screens and Other VGA Mysteries</B></FONT></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="29-01.html#Heading2">Useful Nuggets from the VGA Zen File</A>
@ -536,14 +536,14 @@
<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&#151;Video Est Omnis Divisa</B></FONT></A>
<DD><A HREF="30-01.html#Heading1"><FONT SIZE="4"><B>Chapter 30&mdash;Video Est Omnis Divisa</B></FONT></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>
<DD><A HREF="30-01.html#Heading3">How the Split Screen Works</A>
<DL>
<DD><A HREF="30-01.html#Heading4">The Split Screen in Action</A>
<DD><A HREF="30-03.html#Heading5">VGA and EGA Split-Screen Operation Don&#146;t Mix</A>
<DD><A HREF="30-03.html#Heading5">VGA and EGA Split-Screen Operation Don&rsquo;t Mix</A>
</DL>
<DD><A HREF="30-03.html#Heading6">Setting the Split-Screen-Related Registers</A>
<DD><A HREF="30-03.html#Heading7">The Problem with the EGA Split Screen</A>
@ -556,10 +556,10 @@
<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&#151;Higher 256-Color Resolution on the VGA</B></FONT></A>
<DD><A HREF="31-01.html#Heading1"><FONT SIZE="4"><B>Chapter 31&mdash;Higher 256-Color Resolution on the VGA</B></FONT></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="31-01.html#Heading2">When Is 320&#215;200 Really 320&#215;400?</A>
<DD><A HREF="31-01.html#Heading2">When Is 320x200 Really 320x400?</A>
<DD><A HREF="31-01.html#Heading3">Why 320x200? Only IBM Knows for Sure</A>
<DD><A HREF="31-01.html#Heading4">320x400 256-Color Mode</A>
<DL>
@ -570,21 +570,21 @@
<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&#151;Be It Resolved: 360&#215;480</B></FONT></A>
<DD><A HREF="32-01.html#Heading1"><FONT SIZE="4"><B>Chapter 32&mdash;Be It Resolved: 360x480</B></FONT></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>
<DD><A HREF="32-01.html#Heading3">Extended 256-Color Modes: What&#146;s Not to Like?</A>
<DD><A HREF="32-01.html#Heading3">Extended 256-Color Modes: What&rsquo;s Not to Like?</A>
<DD><A HREF="32-01.html#Heading4">360x480 256-Color Mode</A>
<DD><A HREF="32-04.html#Heading5">How 360&#215;480 256-Color Mode Works</A>
<DD><A HREF="32-04.html#Heading5">How 360x480 256-Color Mode Works</A>
<DL>
<DD><A HREF="32-04.html#Heading6">480 Scan Lines per Screen: A Little Slower, But No Big Deal</A>
<DD><A HREF="32-04.html#Heading7">360 Pixels per Scan Line: No Mean Feat</A>
<DD><A HREF="32-05.html#Heading8">Accessing Display Memory in 360&#215;480 256-Color Mode</A>
<DD><A HREF="32-05.html#Heading8">Accessing Display Memory in 360x480 256-Color Mode</A>
</DL>
</DL>
</B></FONT>
<DD><A HREF="33-01.html#Heading1"><FONT SIZE="4"><B>Chapter 33&#151;Yogi Bear and Eurythmics Confront VGA Colors</B></FONT></A>
<DD><A HREF="33-01.html#Heading1"><FONT SIZE="4"><B>Chapter 33&mdash;Yogi Bear and Eurythmics Confront VGA Colors</B></FONT></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="33-01.html#Heading2">The Basics of VGA Color Generation</A>
@ -597,11 +597,11 @@
<DD><A HREF="33-02.html#Heading8">Setting the Palette RAM</A>
<DD><A HREF="33-03.html#Heading9">Setting the DAC</A>
</DL>
<DD><A HREF="33-03.html#Heading10">If You Can&#146;t Call the BIOS, Who Ya Gonna Call?</A>
<DD><A HREF="33-03.html#Heading10">If You Can&rsquo;t Call the BIOS, Who Ya Gonna Call?</A>
<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&#151;Changing Colors without Writing Pixels</B></FONT></A>
<DD><A HREF="34-01.html#Heading1"><FONT SIZE="4"><B>Chapter 34&mdash;Changing Colors without Writing Pixels</B></FONT></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="34-01.html#Heading2">Special Effects through Realtime Manipulation of DAC Colors</A>
@ -621,12 +621,12 @@
</DL>
</DL>
</B></FONT>
<DD><A HREF="35-01.html#Heading1"><FONT SIZE="4"><B>Chapter 35&#151;Bresenham Is Fast, and Fast Is Good</B></FONT></A>
<DD><A HREF="35-01.html#Heading1"><FONT SIZE="4"><B>Chapter 35&mdash;Bresenham Is Fast, and Fast Is Good</B></FONT></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="35-01.html#Heading2">Implementing and Optimizing Bresenham&#146;s Line-Drawing Algorithm</A>
<DD><A HREF="35-01.html#Heading2">Implementing and Optimizing Bresenham&rsquo;s Line-Drawing Algorithm</A>
<DD><A HREF="35-01.html#Heading3">The Task at Hand</A>
<DD><A HREF="35-01.html#Heading4">Bresenham&#146;s Line-Drawing Algorithm</A>
<DD><A HREF="35-01.html#Heading4">Bresenham&rsquo;s Line-Drawing Algorithm</A>
<DL>
<DD><A HREF="35-02.html#Heading5">Strengths and Weaknesses</A>
</DL>
@ -637,10 +637,10 @@
<DD><A HREF="35-05.html#Heading9">Drawing Each Pixel</A>
</DL>
<DD><A HREF="35-06.html#Heading10">Comments on the C Implementation</A>
<DD><A HREF="35-06.html#Heading11">Bresenham&#146;s Algorithm in Assembly</A>
<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&#151;The Good, the Bad, and the Run-Sliced</B></FONT></A>
<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>
<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&#151;Dead Cats and Lightning Lines</B></FONT></A>
<DD><A HREF="37-01.html#Heading1"><FONT SIZE="4"><B>Chapter 37&mdash;Dead Cats and Lightning Lines</B></FONT></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&#151;The Polygon Primeval</B></FONT></A>
<DD><A HREF="38-01.html#Heading1"><FONT SIZE="4"><B>Chapter 38&mdash;The Polygon Primeval</B></FONT></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&#151;Fast Convex Polygons</B></FONT></A>
<DD><A HREF="39-01.html#Heading1"><FONT SIZE="4"><B>Chapter 39&mdash;Fast Convex Polygons</B></FONT></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&#151;Of Songs, Taxes, and the Simplicity of Complex Polygons</B></FONT></A>
<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>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="40-01.html#Heading2">Dealing with Irregular Polygonal Areas</A>
@ -708,17 +708,17 @@
</DL>
</DL>
</B></FONT>
<DD><A HREF="41-01.html#Heading1"><FONT SIZE="4"><B>Chapter 41&#151;Those Way-Down Polygon Nomenclature Blues</B></FONT></A>
<DD><A HREF="41-01.html#Heading1"><FONT SIZE="4"><B>Chapter 41&mdash;Those Way-Down Polygon Nomenclature Blues</B></FONT></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&#151;Wu&#146;ed in Haste; Fried, Stewed at Leisure</B></FONT></A>
<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>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="42-01.html#Heading2">Fast Antialiased Lines Using Wu&#146;s Algorithm</A>
<DD><A HREF="42-01.html#Heading2">Fast Antialiased Lines Using Wu&rsquo;s Algorithm</A>
<DD><A HREF="42-01.html#Heading3">Wu Antialiasing</A>
<DD><A HREF="42-02.html#Heading4">Tracing and Intensity in One</A>
<DD><A HREF="42-03.html#Heading5">Sample Wu Antialiasing</A>
@ -727,7 +727,7 @@
</DL>
</DL>
</B></FONT>
<DD><A HREF="43-01.html#Heading1"><FONT SIZE="4"><B>Chapter 43&#151;Bit-Plane Animation</B></FONT></A>
<DD><A HREF="43-01.html#Heading1"><FONT SIZE="4"><B>Chapter 43&mdash;Bit-Plane Animation</B></FONT></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&#151;Split Screens Save the Page Flipped Day</B></FONT></A>
<DD><A HREF="44-01.html#Heading1"><FONT SIZE="4"><B>Chapter 44&mdash;Split Screens Save the Page Flipped Day</B></FONT></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="44-01.html#Heading2">640x480 Page Flipped Animation in 64K...Almost</A>
@ -758,11 +758,11 @@
</DL>
</DL>
</B></FONT>
<DD><A HREF="45-01.html#Heading1"><FONT SIZE="4"><B>Chapter 45&#151;Dog Hair and Dirty Rectangles</B></FONT></A>
<DD><A HREF="45-01.html#Heading1"><FONT SIZE="4"><B>Chapter 45&mdash;Dog Hair and Dirty Rectangles</B></FONT></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="45-01.html#Heading2">Different Angles on Animation</A>
<DD><A HREF="45-01.html#Heading3">Plus &#231;a Change</A>
<DD><A HREF="45-01.html#Heading3">Plus &ccedil;a Change</A>
<DD><A HREF="45-01.html#Heading4">VGA Access Times</A>
<DD><A HREF="45-02.html#Heading5">Dirty-Rectangle Animation</A>
<DL>
@ -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&#151;Who Was that Masked Image?</B></FONT></A>
<DD><A HREF="46-01.html#Heading1"><FONT SIZE="4"><B>Chapter 46&mdash;Who Was that Masked Image?</B></FONT></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="46-01.html#Heading2">Optimizing Dirty-Rectangle Animation</A>
@ -788,20 +788,20 @@
</DL>
</DL>
</B></FONT>
<DD><A HREF="47-01.html#Heading1"><FONT SIZE="4"><B>Chapter 47&#151;Mode X: 256-Color VGA Magic</B></FONT></A>
<DD><A HREF="47-01.html#Heading1"><FONT SIZE="4"><B>Chapter 47&mdash;Mode X: 256-Color VGA Magic</B></FONT></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="47-01.html#Heading2">Introducing the VGA&#146;s Undocumented &#147;Animation-Optimal&#148; Mode</A>
<DD><A HREF="47-01.html#Heading2">Introducing the VGA&rsquo;s Undocumented &ldquo;Animation-Optimal&rdquo; Mode</A>
<DD><A HREF="47-01.html#Heading3">What Makes Mode X Special?</A>
<DD><A HREF="47-02.html#Heading4">Selecting 320x240 256-Color Mode</A>
<DD><A HREF="47-04.html#Heading5">Designing from a Mode X Perspective</A>
<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&#151;Mode X Marks the Latch</B></FONT></A>
<DD><A HREF="48-01.html#Heading1"><FONT SIZE="4"><B>Chapter 48&mdash;Mode X Marks the Latch</B></FONT></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="48-01.html#Heading2">The Internals of Animation&#146;s Best Video Display Mode</A>
<DD><A HREF="48-01.html#Heading2">The Internals of Animation&rsquo;s Best Video Display Mode</A>
<DD><A HREF="48-03.html#Heading3">Allocating Memory in Mode X</A>
<DD><A HREF="48-03.html#Heading4">Copying Pixel Blocks within Display Memory</A>
<DL>
@ -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&#151;Mode X 256-Color Animation</B></FONT></A>
<DD><A HREF="49-01.html#Heading1"><FONT SIZE="4"><B>Chapter 49&mdash;Mode X 256-Color Animation</B></FONT></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&#151;Adding a Dimension</B></FONT></A>
<DD><A HREF="50-01.html#Heading1"><FONT SIZE="4"><B>Chapter 50&mdash;Adding a Dimension</B></FONT></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&#151;Sneakers in Space</B></FONT></A>
<DD><A HREF="51-01.html#Heading1"><FONT SIZE="4"><B>Chapter 51&mdash;Sneakers in Space</B></FONT></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="51-01.html#Heading2">Using Backface Removal to Eliminate Hidden Surfaces</A>
@ -855,11 +855,11 @@
<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&#151;Fast 3-D Animation: Meet X-Sharp</B></FONT></A>
<DD><A HREF="52-01.html#Heading1"><FONT SIZE="4"><B>Chapter 52&mdash;Fast 3-D Animation: Meet X-Sharp</B></FONT></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="52-01.html#Heading2">The First Iteration of a Generalized 3-D Animation Package</A>
<DD><A HREF="52-01.html#Heading3">This Chapter&#146;s Demo Program</A>
<DD><A HREF="52-01.html#Heading3">This Chapter&rsquo;s Demo Program</A>
<DD><A HREF="52-07.html#Heading4">A New Animation Framework: X-Sharp</A>
<DD><A HREF="52-07.html#Heading5">Three Keys to Realtime Animation Performance</A>
<DL>
@ -868,7 +868,7 @@
</DL>
</DL>
</B></FONT>
<DD><A HREF="53-01.html#Heading1"><FONT SIZE="4"><B>Chapter 53&#151;Raw Speed and More</B></FONT></A>
<DD><A HREF="53-01.html#Heading1"><FONT SIZE="4"><B>Chapter 53&mdash;Raw Speed and More</B></FONT></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&#151;3-D Shading</B></FONT></A>
<DD><A HREF="54-01.html#Heading1"><FONT SIZE="4"><B>Chapter 54&mdash;3-D Shading</B></FONT></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="54-01.html#Heading2">Putting Realistic Surfaces on Animated 3-D Objects</A>
@ -895,17 +895,17 @@
</DL>
</DL>
</B></FONT>
<DD><A HREF="55-01.html#Heading1"><FONT SIZE="4"><B>Chapter 55&#151;Color Modeling in 256-Color Mode</B></FONT></A>
<DD><A HREF="55-01.html#Heading1"><FONT SIZE="4"><B>Chapter 55&mdash;Color Modeling in 256-Color Mode</B></FONT></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="55-01.html#Heading2">Pondering X-Sharp&#146;s Color Model in an RGB State of Mind</A>
<DD><A HREF="55-01.html#Heading2">Pondering X-Sharp&rsquo;s Color Model in an RGB State of Mind</A>
<DL>
<DD><A HREF="55-01.html#Heading3">A Color Model</A>
<DD><A HREF="55-03.html#Heading4">A Bonus from the BitMan</A>
</DL>
</DL>
</B></FONT>
<DD><A HREF="56-01.html#Heading1"><FONT SIZE="4"><B>Chapter 56&#151;Pooh and the Space Station</B></FONT></A>
<DD><A HREF="56-01.html#Heading1"><FONT SIZE="4"><B>Chapter 56&mdash;Pooh and the Space Station</B></FONT></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&#151;10,000 Freshly Sheared Sheep on the Screen</B></FONT></A>
<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>
<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&#151;Heinlein&#146;s Crystal Ball, Spock&#146;s Brain, and the 9-Cycle Dare</B></FONT></A>
<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>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="58-01.html#Heading2">Using the Whole-Brain Approach to Accelerate Texture Mapping</A>
@ -940,14 +940,14 @@
<DD><A HREF="58-01.html#Heading4">Left-Brain Optimization</A>
<DD><A HREF="58-02.html#Heading5">A 90-Degree Shift in Perspective</A>
</DL>
<DD><A HREF="58-03.html#Heading6">That&#146;s Nice&#151;But it Sure as Heck Ain&#146;t 9 Cycles</A>
<DD><A HREF="58-03.html#Heading6">That&rsquo;s Nice&mdash;But it Sure as Heck Ain&rsquo;t 9 Cycles</A>
<DL>
<DD><A HREF="58-04.html#Heading7">Don&#146;t Stop Thinking about Those Cycles</A>
<DD><A HREF="58-04.html#Heading7">Don&rsquo;t Stop Thinking about Those Cycles</A>
</DL>
<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&#151;The Idea of BSP Trees</B></FONT></A>
<DD><A HREF="59-01.html#Heading1"><FONT SIZE="4"><B>Chapter 59&mdash;The Idea of BSP Trees</B></FONT></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&#151;Compiling BSP Trees</B></FONT></A>
<DD><A HREF="60-01.html#Heading1"><FONT SIZE="4"><B>Chapter 60&mdash;Compiling BSP Trees</B></FONT></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&#151;Frames of Reference</B></FONT></A>
<DD><A HREF="61-01.html#Heading1"><FONT SIZE="4"><B>Chapter 61&mdash;Frames of Reference</B></FONT></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&#151;One Story, Two Rules, and a BSP Renderer</B></FONT></A>
<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>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="62-01.html#Heading2">Taking a Compiled BSP Tree from Logical to Visual Reality</A>
@ -1021,11 +1021,11 @@
</DL>
</DL>
</B></FONT>
<DD><A HREF="63-01.html#Heading1"><FONT SIZE="4"><B>Chapter 63&#151;Floating-Point for Real-Time 3-D</B></FONT></A>
<DD><A HREF="63-01.html#Heading1"><FONT SIZE="4"><B>Chapter 63&mdash;Floating-Point for Real-Time 3-D</B></FONT></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="63-01.html#Heading2">Knowing When to Hurl Conventional Math Wisdom Out the Window</A>
<DD><A HREF="63-01.html#Heading3">Not Your Father&#146;s Floating-Point</A>
<DD><A HREF="63-01.html#Heading3">Not Your Father&rsquo;s Floating-Point</A>
<DD><A HREF="63-01.html#Heading4">Pentium Floating-Point Optimization</A>
<DL>
<DD><A HREF="63-02.html#Heading5">Pipelining, Latency, and Throughput</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&#151;Quake&#146;s Visible-Surface Determination</B></FONT></A>
<DD><A HREF="64-01.html#Heading1"><FONT SIZE="4"><B>Chapter 64&mdash;Quake&rsquo;s Visible-Surface Determination</B></FONT></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,10 +1065,10 @@
<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&#151;3-D Clipping and Other Thoughts</B></FONT></A>
<DD><A HREF="65-01.html#Heading1"><FONT SIZE="4"><B>Chapter 65&mdash;3-D Clipping and Other Thoughts</B></FONT></A>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="65-01.html#Heading2">Determining What&#146;s Inside Your Field of View</A>
<DD><A HREF="65-01.html#Heading2">Determining What&rsquo;s Inside Your Field of View</A>
<DD><A HREF="65-01.html#Heading3">3-D Clipping Basics</A>
<DL>
<DD><A HREF="65-02.html#Heading4">Intersecting a Line Segment with a Plane</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&#151;Quake&#146;s Hidden-Surface Removal</B></FONT></A>
<DD><A HREF="66-01.html#Heading1"><FONT SIZE="4"><B>Chapter 66&mdash;Quake&rsquo;s Hidden-Surface Removal</B></FONT></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&#151;Sorted Spans in Action</B></FONT></A>
<DD><A HREF="67-01.html#Heading1"><FONT SIZE="4"><B>Chapter 67&mdash;Sorted Spans in Action</B></FONT></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&#151;Quake&#146;s Lighting Model</B></FONT></A>
<DD><A HREF="68-01.html#Heading1"><FONT SIZE="4"><B>Chapter 68&mdash;Quake&rsquo;s Lighting Model</B></FONT></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&#151;Surface Caching and Quake&#146;s Triangle Models</B></FONT></A>
<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>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="69-01.html#Heading2">Probing Hardware-Assisted Surfaces and Fast Model Animation Without Sprites</A>
@ -1154,18 +1154,18 @@
<DL>
<DD><A HREF="69-02.html#Heading7">Drawing Triangle Models Fast</A>
<DD><A HREF="69-03.html#Heading8">Trading Subpixel Precision for Speed</A>
<DD><A HREF="69-03.html#Heading9">An Idea that Didn&#146;t Work</A>
<DD><A HREF="69-03.html#Heading9">An Idea that Didn&rsquo;t Work</A>
<DD><A HREF="69-03.html#Heading10">An Idea that Did Work</A>
<DD><A HREF="69-04.html#Heading11">More Ideas that Might Work</A>
</DL>
</DL>
</B></FONT>
<DD><A HREF="70-01.html#Heading1"><FONT SIZE="4"><B>Chapter 70&#151;Quake: A Post-Mortem and a Glimpse into the Future</B></FONT></A>
<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>
<FONT SIZE="3"><B>
<DL>
<DD><A HREF="70-01.html#Heading2">Preprocessing the World</A>
<DD><A HREF="70-02.html#Heading3">The Potentially Visible Set (PVS)</A>
<DD><A HREF="70-03.html#Heading4">Passages: The Last-Minute Change that Didn&#146;t Happen</A>
<DD><A HREF="70-03.html#Heading4">Passages: The Last-Minute Change that Didn&rsquo;t Happen</A>
<DD><A HREF="70-03.html#Heading5">Drawing the World</A>
<DD><A HREF="70-04.html#Heading6">Rasterization</A>
<DL>