Figure 4-1: Example of using a logical XOR with a logical true bit to achieve the equivalent of a logical NOT condition.
Figure 4-2: A four-gate (OR, NOT-AND, AND) solution to achieve an equivalent result of a logical XOR
Figure 4-3: A two-gate (ANDC, OR) solution to achieve an equivalent result of a logical XOR
Chapter 5: Bit Wrangling
Figure 5-1: Miscellaneous examples of data types being shifted to the left by one bit
Figure 5-2: Miscellaneous examples of data types being logical shifted to the right by one bit
Figure 5-3: Miscellaneous examples of data types being arithmetically shifted to the right by one bit
Chapter 6: Data Conversion
Figure 6-1: Little-endian data conversion
Figure 6-2: AoS to SoA SIMD conversion
Chapter 8: Floating-Point Anyone?
Figure 8-1: Floating-point formats
Figure 8-2: Floating-point bit expansion
Figure 8-3: FPU registers
Figure 8-4: Ten-byte BCD data storage. The MSB in the far left byte (byte #9) is the sign bit and the rightmost eight bytes (#8...0) contain the BCD value pairs. The 18 th BCD digit resides in the upper nibble of byte #8 and the first BCD digit resides in the lower nibble of byte #0.
Figure 8-5: Sine-cosine waves
Figure 8-6: Sine and cosine trigonometric relationships
Figure 8-7: 2D rotation angle
Figure 8-8: Left/right-handed rotation matrices
Figure 8-9: The relationship of a circle with its quadrants and associated sizes
Chapter 13: FP Vector Multiplication and Division
Figure 13-1: Dot product (inner product). A positive number is an acute angle, zero is perpendicular , and negative is an obtuse angle.
Figure 13-2: Face culling mechanism where if the angle between the camera and the perpendicular to the face plane is obtuse, then the face is pointed away from the camera and can be culled.
Figure 13-3: This shows the cosine of two intersecting lines.
Figure 13-4: Cross product (outer product). The perpendicular to the two vectors v and w.
Chapter 14: Floating-Point Deux
Figure 14-1: 2D right triangle representing a 2D distance
Figure 14-2: Right triangle within 3D Cartesian coordinate system representing a 3D distance and thus its magnitude
Figure 14-3: Monster to player 2D distance calculations
Chapter 15: Binary-Coded Decimal (BCD)
Figure 15-1: Ten-byte BCD data storage. MSB in far left byte (byte #9) is the sign bit and the rightmost eight bytes (#8...0) contain the BCD value pairs. The 18 th BCD digit resides in the upper nibble of byte #8 and the 1 st BCD digit resides in the lower nibble of byte #0.
Chapter 17: PC I/O
Figure 17-1: Parallel port to octal switch
Chapter 18: System
Figure 18-1: CPU status register
Figure 18-2: Protection rings
Chapter 19: Gfx 'R' Asm
Figure 19-1: Imagine these four differently aligned memory strands as eels. We pull out our sushi knife and finely chop off their heads into little 8-bit (1-byte) chunks , chop off the tails into 8-bit (1-byte) chunks, and then coarsely chop the bodies into larger 32-bit (4-byte) chunks, and serve raw.
Figure 19-2: Bitmap dimension information
Figure 19-3: Monster Punch Copy blit of strawberry image on the right into the blender on the left.
Figure 19-4: Monster Punch Transparent blit of strawberry image on the right into the blender on the left.
Figure 19-5: Transparent copy blit of strawberry sprite and blender image background to achieve composite result of both.
Figure 19-6: The blit of a rectangular blender image to a storage buffer, then the transparent blit of a strawberry into blender. A blit of the saved blender image back into blender effectively erases the strawberry.
Figure 19-7: 2D bitmap on left with 2-bit clipping plane on right
Chapter 20: MASM vs. NASM vs. TASM vs. WASM
Figure 20-1: VC6 assembler configuration display
Chapter 21: Debugging Functions
Figure 21-1: About Visual C++ version 6.0
Figure 21-2: About Visual C++ .NET version 7.0
Figure 21-3: Register dump from Visual C++ 6.0(3DNow! extensions)
Figure 21-4: Register dump from Visual C++ .NET version 7.0 (3DNow! professional extensions). Note the 3DNow! and SSE supported registers as well as the extra pop-up menu of register type selections that you can choose from. The enabled selections are based upon the processor type running on the computer that is being debugged .