Figure 1-1 PCI system architecture for Power Macintosh
Table 1-1 Comparison of NuBus and the PCI bus
Table 1-2 PCI options chosen for Power Macintosh
Table 1-3 Bridge support for PCI cycle types
Table 1-4 Commands between PowerPC processor and PCI bus
Table 1-5 PowerPC processor to PCI maximum bandwidth summary
Table 1-6 PCI master to system memory maximum bandwidth summary
Table 1-7 Bridge master errors
Table 1-8 Bridge target errors
Figure 2-1 Big-endian and little-endian addressing
Figure 2-2 Big-endian to big-endian bus transfer
Figure 2-3 Sample frame buffer format
Table 2-1 Power Macintosh memory allocations
Listing 2-1 Endian addressing mode test
Table 3-1 Snag keys supported by Macintosh Open Firmware
Figure 4-1 PCI configuration register map
Figure 4-2 PCI-to-PCI bridge register map
Table 4-1 PowerPC processor addressing
Table 5-1 Open Firmware common symbols
Table 5-2 Forth number base commands
Table 5-3 Forth stack commands
Table 5-4 Forth arithmetic commands
Table 5-5 Forth conditional commands
Table 5-6 Forth commands for loop operations
Table 5-7 Forth commands for keyboard operations
Table 5-8 Forth Memory mapping commands
Table 5-9 Commonly used Open Firmware user interface commands
Table 5-10 SGR escape sequence parameters
Table 5-11 Color table values
Listing 5-1 Example of printenv output
Listing 5-2 Minimal PCI SCSI card FCode support
Listing 5-3 Minimal network FCode driver support
Listing 5-4 Minimal display FCode driver support
Figure 6-1 New system model
Figure 6-2 Typical role of the Name Registry
Figure 6-3 Uniprocessing and multiprocessing execution
Listing 7-1 File-based driver sorting
Listing 7-2 Enabling PCI spaces
Listing 7-3 Getting a device's logical address
Table 8-1 Kind and execution levels for Device Manager requests
Table 8-2 Reserved unit numbers
Table 8-3 Driver gestalt codes
Table 8-4 DCE bits in dCtlflags word
Table 8-5 DriverGestalt selectors
Table 8-6 DriverGestalt selector four character codes and constants
Listing 8-1 Typical driver description
Listing 8-2 Driver handler for DoDriverIO
Listing 8-3 Initialization, finalization, and termination handlers
Listing 8-4 Enabling PCI spaces
Listing 8-5 Device probing
Listing 8-6 Managing open and close commands
Listing 8-7 Sample driver read routine
Listing 8-8 Sample driver control routine
Listing 8-9 Sample driver status routine
Figure 9-1 Position of Driver Loader Library
Figure 9-2 Driver Loader Library functions
Listing 9-1 Finding file-based driver candidates
Listing 9-2 Unloading a driver
Listing 9-3 Using the LookupDrivers function
Figure 10-1 Using name properties
Figure 10-2 Typical Name Registry structure
Table 10-1 Reserved Name Registry property names
Table 10-2 Gestalt properties
Listing 10-1 A typical device tree
Listing 10-2 Adding a name entry to the Name Registry
Listing 10-3 Finding and removing child entries
Listing 10-4 Using RegistryEntrySearch
Listing 10-5 Obtaining an entry ID
Listing 10-6 Obtaining a parent entry
Listing 10-7 Updating or creating a property
Listing 10-8 Iterating through properties
Listing 10-9 Obtaining a property value
Listing 10-10 Saving a property to disk
Listing 10-11 Sample code to fetch virtual memory gestalt
Listing 10-12 Adding a name entry to the Name Registry
Listing 10-13 Retrieving the value of a property
Listing 10-14 Removing a device entry from the Name Registry
Listing 10-15 Listing names and properties
Figure 11-1 IOPreparationTable structure
Table 11-1 BlockMove versions
Table 11-2 Services available to drivers
Listing 11-1 Adding a 'sysz' resource to the system heap
Listing 11-2 Disposing of a property
Figure 11-2 Interrupt source tree example
Listing 11-3 Interrupt registration
Table 12-1 Typical NVRAM space allocations
Listing 12-1 Sample NVRAM manipulation code
Listing 12-2 Determining power consumption
Figure 13-1 Luminosity and electron beam strength
Figure 13-2 Gamma table structure
Figure 13-3 Examples of gamma table correction
Table 13-1 Implementing VESA DPMS modes with SetSync
Table 13-2 Sample csConnectTaggedType and csConnectTaggedData values
Figure 14-1 Packet formats recognized by the CSMA/CD driver
Figure 14-2 Message for enabling a SNAP
Figure 14-3 Message for enabling a group SAP
Listing 15-1 SIM descripto
Figure A-1 Neutral descriptor layout
Figure A-2 Big-endian descriptor layout
Figure A-3 Little-endian descriptor layout
Figure A-4 Byte swapping in NuBus
Figure A-5 Little-endian memory image
Figure A-6 Big-endian memory image
Figure A-7 Big-endian RGB 16-bit pixel format
Figure A-8 Little-endian RGB 16-bit pixel format
Figure A-9 Little-endian descriptor in memory
Figure A-10 Little-endian descriptor with big-endian addresses
Figure A-11 Descriptor swizzled by little-endian processing mode0
Listing A-1 Field value initializer
Listing A-2 Endian mode determination code
Figure B-1 1-bit-per-pixel formats
Figure B-2 16-bits-per-pixel formats
Figure B-3 24- and 32-bits-per-pixel formats
Figure B-4 YUV pixel formats
Listing B-1 C structures for pixel formats
Table C-1 Header files for Macintosh PCI development
Table C-2 PCI-related functions and data structures