ð Developer Note Macintosh 630 DOS Compatible Computers Macintosh LC 630 DOS Compatible Computer Macintosh Quadra 630 DOS Compatible Computer Macintosh Performa 640 DOS Compatible Computer ð Developer Note Developer Press Apple Computer, Inc.
ð Apple Computer, Inc. 1995 Apple Computer, Inc. All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by any means, mechanical, electronic, photocopying, recording, or otherwise, without prior written permission of Apple Computer, Inc. Printed in the United States of America. The Apple logo is a trademark of Apple Computer, Inc.
Contents Figures and Tables Preface vii About This Note ix Contents of This Note ix Supplementary Documents ix Obtaining Information From APDA Conventions and Abbreviations x Typographical Conventions xi Standard Abbreviations xi Chapter 1 Introduction x 1 Features 2 How the DOS Compatibility Subsystem Works Outline of Operation 5 I/O Capabilities 6 Floppy Disk 6 Hard Disk 6 Serial Ports 6 Parallel Printer Port 7 Keyboard and Mouse 7 Sound 8 Video Monitor 8 Game Controller Port 8 Chapter 2 Hardw
Clock Generation 19 ISA Bus Control 20 84035 Data Path Controller 20 Clocks 20 System Reset 20 Interrupt Control 21 Portola Bus Adapter IC 21 Burst Transfers 21 Video Components 21 Sharing a Monitor 22 Monitors Supported 22 Monitor Sense Lines 23 Video Timing 23 Video Components 25 82C450 VGA Controller 25 MU9C9760 SynDAC 25 I/O Components 26 Pretzel Logic I/O Controller IC 26 DMA Channels 26 Address Translation 27 Serial Port Support 27 Printer Port Support 27 Keyboard and Mouse Emulation 28 Message Mailbo
rsSetComPortConfig 37 rsSetParallelPortConfig 38 rsSetDeactivateKey 39 Control and Status Calls 39 rsPCStatus 40 rsBootPC 41 rsResetPC 41 rsEnableVideo 41 rsDisableVideo 42 rsMountDisks 42 rsDontMountDisks 42 rsActivateKB 43 rsDeactivateKB 43 rsBeginMouseTracking 43 rsEndMouseTracking 43 rsEndPrintJob 44 Detecting Errors 44 rsSetNotificationProc 44 rsLastError 45 Passing Messages 45 Message Conventions 45 Macintosh Interface 45 PC Interface 46 Registering Messages 46 On the Mac OS 46 On the PC 46 Sending a
Figures and Tables Preface About This Note Chapter 1 Introduction 1 Table 1-1 Figure 1-1 Figure 1-2 Table 1-2 Figure 1-3 Comparison with a midrange PC The DOS compatibility subsystem Simplified block diagram 5 Corresponding serial-port signals Installing the joystick 9 Chapter 2 Hardware Design Figure 2-1 Table 2-1 Table 2-2 Table 2-3 Table 2-4 Table 2-5 Figure 2-2 Table 2-6 Table 2-7 Chapter 3 ix 4 6 11 Detailed block diagram 13 Microprocessor transfer comparison 16 Definitions of PC interrup
P R E F A C E About This Note This developer note describes the Macintosh 630 DOS compatible computer, a Macintosh computer with a built-in 486-type microprocessor. This developer note describes the DOS compatibility features of this computer and the way DOS software can communicate with Mac OS software. Note This developer note applies to the Macintosh LC 630 DOS Compatible, the Macintosh Quadra 630 DOS Compatible, and the Macintosh Performa 640 DOS Compatible computers.
P R E F A C E For information about the Cx486DX2 microprocessor, refer to Cx486DX/DX2 3 and 5 Volt Microprocessors published by Cyrix Corporation. For a general description of big-endian and little-endian byte addressing, please refer to Appendix A, “Overview of PowerPC Technology,” in Macintosh Developer Note Number 8, APDA catalog number R0566LL/A. Developers may also need copies of the appropriate Apple reference books.
P R E F A C E Typographical Conventions 0 Computer-language text—any text that is literally the same as it appears in computer input or output—appears in Courier font. Hexadecimal numbers are preceded by a dollar sign ($). For example, the hexadecimal equivalent of decimal 16 is written as $10. Note A note like this contains information that is interesting but not essential for an understanding of the text.
P R E F A C E xii CGA Color Graphics Adapter CLUT color lookup table codec coder/decoder CPU central processing unit DAC digital-to-analog converter DC direct current DMA direct memory access DOS disk operating system DRAM dynamic RAM EGA Enhanced Graphics Adapter FIFO first in, first out FM frequency modulation GND ground IC integrated circuit I/O input and output IRQ interrupt request ISA Industry Standard Architecture Mac OS Macintosh Operating System MDA Monochrome
C H A P T E R Figure 1-0 Listing 1-0 Table 1-0 1 Introduction 1
C H A P T E R 1 Introduction The Macintosh 630 DOS Compatible computers are modified Macintosh LC 630, Macintosh Quadra 630, and Macintosh Performa 640 computers with additional hardware that provides IBM-compatible PC functionality. The added hardware includes a 486-type microprocessor and interface devices that allow it to use the I/O capabilities of the host computer. The Macintosh 630 DOS Compatible computer provides a cost-effective system with DOS performance equivalent to a stand-alone PC.
C H A P T E R 1 Introduction Sound Blaster cards. Sounds are played through the host computer’s sound output jack and built-in speaker. ■ Serial ports. The DOS compatibility subsystem uses the host computer’s two serial ports by way of serial port interfaces emulated in hardware. ■ Parallel port. The DOS compatibility subsystem has access to a printer on the host computer by way of a parallel port interface emulated in hardware. ■ Floppy disk.
C H A P T E R 1 Introduction Notice that the Macintosh 630 DOS Compatible computer has greater sound and networking capabilities than a midrange PC. In addition, the Macintosh 630 DOS Compatible computer provides external SCSI expansion (for hard drives and removablemedia devices only). How the DOS Compatibility Subsystem Works The DOS compatibility subsystem occupies both the 68040 microprocessor socket and the I/O expansion slot of the host Macintosh 630–series computer.
C H A P T E R 1 Introduction Outline of Operation 1 Figure 1-2 shows a simplified block diagram of the DOS compatibility subsystem installed in a Macintosh 630–series computer.
C H A P T E R 1 Introduction I/O Capabilities 1 The DOS compatibility subsystem uses I/O devices built into or connected to the Macintosh host computer. This section describes the I/O capabilities; for more information on their operation, see “I/O Components” on page 26. Floppy Disk 1 The DOS compatibility subsystem has access to the Macintosh host computer’s 3.5-inch internal floppy drive, which can read and write DOS-formatted floppy disks.
C H A P T E R 1 Introduction Table 1-2 Corresponding serial-port signals (continued) Pin number on Macintosh serial port RS-422 signal name Pin number on 25-pin PC serial port 7 GPi n.c. 8 RXD+ 7 9 +5V n.c. Pin number on 9-pin PC serial port RS-232 signal name none 5 GND none The Macintosh serial ports are RS-422 ports and do not support all the RS-232 signals.
C H A P T E R 1 Introduction Sound 1 Sound is generated on the DOS compatibility subsystem either by the 8254 interval timer on the main compatibility card or by the sound expansion card. The 8254 interval timer is responsible for the standard system beep (square wave output) and sound effects. The sound expansion card provides 16-bit stereo sound output only and is software compatible with the Sound Blaster register model.
C H A P T E R 1 Introduction Figure 1-3 Installing the joystick How the DOS Compatibility Subsystem Works 9
C H A P T E R Figure 2-0 Listing 2-0 Table 2-0 2 Hardware Design 2
C H A P T E R 2 Hardware Design The DOS compatibility subsystem contains three printed circuits cards: the main compatibility card, the game adapter card, and the sound expansion card. The main compatibility card contains the processor and memory components, the video display components, and the I/O components. The game adapter card contains the slot declaration ROM and the game controller port. The sound expansion card contains the sound generation ICs.
C H A P T E R 2 Hardware Design Figure 2-1 Detailed block diagram D(31:0) CPU Cx486DX2 XA(15:0) A(31:2) 84035 data path controller 84031 XD(7:0) Memory controller Sound expansion connector Sound output card 8242 Keyboard controller 558 Game timer Game port 512KB DRAM 72-pin RAM SIMM 82C450 VGA controller Socket for 68040 CPU Pretzel Logic I/O interface Declaration ROM Processor and Memory Components Video and audio out CLUT Header for CPU socket Portola bus adapter Header for I/O expan
C H A P T E R 2 Hardware Design Some of the key features of the Cx486DX2 are listed below. Please refer to Cx486DX/DX2 3 and 5 Volt Microprocessors from Cyrix Corporation for further information.
C H A P T E R 2 Hardware Design The 680x0 microprocessors use big-endian byte addressing and the 80x86 microprocessors use little-endian byte addressing. This disparity poses a problem for the DOS compatibility subsystem because its 80486-type microprocessor is dependent on the Mac OS to load applications and data from peripheral devices. When the Mac OS loads PC data from floppy disk, it stores that data at addresses that match the big-endian convention.
C H A P T E R 2 Hardware Design Table 2-1 Microprocessor transfer comparison Transfer size Bytes enabled on a 68040 microprocessor Bytes enabled on a 80486 microprocessor 1 byte 3 0 2 1 1 2 0 3 3, 2 0, 1 1, 0 1, 2 2 bytes 2, 3 3 bytes Not supported 1, 2, 3 0, 1, 2 4 bytes 3, 2, 1, 0 0, 1, 2, 3 Interrupts 2 The 84031 and 84035 ICs, described in later sections, are responsible for generating all interrupt requests to the Cx486DX2 microprocessor.
C H A P T E R 2 Hardware Design The source of the Macintosh interrupt (SLOT_E signal) is the Pretzel Logic IC (described on page 26). With the exception of transfers in which the Pretzel Logic IC becomes bus master, all service between the PC side and the Macintosh host computer is interrupt driven. The master interrupt status register in the Pretzel Logic IC contains the state of all interrupt sources on the card.
C H A P T E R 2 Hardware Design The Macintosh system bus on the Macintosh Quadra 630 computer can support three bus masters. Table 2-3 summarizes the priorities assigned to the fixed arbitration devices. Table 2-3 Arbitration priorities Priority Device Highest DRAM refresh Network DMA Lowest Pretzel Logic and the 68040 A secondary DMA arbitration circuit in the Portola IC arbitrates between the 68040 and the Pretzel Logic DMA transfers to the host computer’s memory and I/O devices.
C H A P T E R 2 Hardware Design DRAM Control 2 The DRAM on the card is directly interfaced to the local data bus. The /RAS, /CAS, /DWE, and MA lines are driven directly from the 84031 memory controller IC without external buffers. The DRAM controller in the 84031 supports page mode operation. For memory read operations, the page hit cycles are either 3-2-2-2 or 4-2-2-2 bursts. For write operations, the page hits are 1-wait-state accesses.
C H A P T E R 2 Hardware Design ISA Bus Control 2 The 84031 memory controller IC handles all accesses to the ISA bus by the Cx486DX2. In addition, the memory controller performs data buffering to form the XD bus for local peripherals such as the keyboard, joystick, and VGA controllers. The memory controller also provides support for local bus slaves such as the Pretzel Logic IC.
C H A P T E R 2 Hardware Design Keyboard reset and shutdown are sent to the 84035 data path controller through the control link from the 84031 memory controller, which decodes shutdown cycles and receives keyboard reset from the 8242 keyboard and mouse controller. The 84035 data path controller IC generates the /A20M signal to the Cx486DX2 microprocessor. The 84035 generates the /A20M signal by ORing together the GATEA20 signal from the keyboard controller and bit 1 of port 92 in the 84035.
C H A P T E R 2 Hardware Design Sharing a Monitor 2 Video output from the DOS compatibility subsystem is displayed on a monitor shared with the host Macintosh computer. A ribbon cable carries the video signals from the main compatibility card to the main logic board in the host computer. The user can switch the monitor (along with the keyboard and mouse) from one computer subsystem to the other by typing a programmable command key sequence (hot key).
C H A P T E R 2 Hardware Design Monitor Sense Lines 2 The host computer detects the monitor type by way of sense lines in the video cable. Information about the monitor type is made available to the VGA driver so that it can program the card’s video control registers appropriately. Video Timing 2 Table 2-5 and Figure 2-2 on page 24 define the video monitors and timings supported by the Macintosh host computer that are also supported by DOS compatibility subsystem.
C H A P T E R 2 Hardware Design Note The DOS compatibility subsystem can operate with a 17-inch (or larger) monitor. With a large monitor, the user can open the Monitors control panel and set the display to either 640 by 480 pixels or 832 by 624 pixels.
C H A P T E R 2 Hardware Design To accommodate the various VGA and SVGA modes on the Macintosh monitors, the video controller must have its timing parameters changed by the BIOS. To do that, the Macintosh software reads the video sense lines and loads the appropriate values for the video BIOS before starting up the PC. (Remember that system and video BIOS reside in Macintosh system memory and are modifiable by the software.
C H A P T E R 2 Hardware Design I/O Components 2 The I/O components in the DOS compatibility subsystem are the Pretzel Logic IC and the 8242 keyboard and mouse controller. Pretzel Logic I/O Controller IC 2 The main I/O component in the DOS compatibility subsystem is the Pretzel Logic IC. It acts as a bus converter between the PC processor bus and the Macintosh processor bus.
C H A P T E R 2 Hardware Design The second DMA channel is used to perform I/O data transfers between Macintosh peripherals and PC memory. This I/O DMA channel is used when a DRAM SIMM is installed on the main compatibility card. Address Translation 2 The address translation register provides 32-bit address translation between the PC and the host computer.
C H A P T E R 2 Hardware Design Keyboard and Mouse Emulation 2 The Pretzel Logic IC emulates in hardware the PC’s keyboard and mouse. The 8242 keyboard and mouse controller is configured to support a PS/2 mouse making the protocol identical for the keyboard and mouse. The Pretzel Logic IC generates the appropriate serial clock protocol and serial bit stream to communicate with the 8242.
C H A P T E R 2 Hardware Design Game Adapter Card 2 The game adapter card contains the declaration ROM and the game controller port. The game adapter card occupies the I/O expansion slot. The game controller port is a DB-15 connector for connecting a standard PC-style game controller (joystick). The game controller port occupies the I/O expansion opening in the back of the computer. The declaration ROM is similar to the standard declaration ROM used for Macintosh expansion cards.
C H A P T E R 2 Hardware Design ■ a Sound Blaster–compatible mixer with AGC ■ a control interface for the FM synthesizer IC The CT2501 sound system IC allows analog mixing of audio from the PC and from the FM synthesizer IC. The audio signal from the sound card is then mixed with the square wave sounds generated on the main compatibility card. The resulting sound signal is sent to the Macintosh host computer where it is mixed with the Macintosh computer’s sound signals and sent to the sound outputs.
C H A P T E R 2 Hardware Design the signals on the card’s 68040 socket are connected directly to the corresponding pins on the 68040 header on the card. A few of the signals from the 68040 are qualified by the Portola bus adapter and then sent on to the pins of the 68040 header. The I/O Expansion Slot 2 Only 33 of the signals on the I/O expansion slot are used by the DOS compatibility subsystem. Those signals include ■ the /PDS.
C H A P T E R 2 Hardware Design Audio and Video Connector 2 A ribbon cable carries the audio and video signals from the main compatibility card to the main logic board in the host computer. Table 2-7 gives the signal assignments on the ribbon cable’s 16-pin connector.
C H A P T E R Figure 3-0 Listing 3-0 Table 3-0 3 The PC Interface Driver 3
C H A P T E R 3 The PC Interface Driver The PC Interface driver provides communication and control between the Macintosh Operating System (Mac OS) and the DOS compatibility subsystem. Programs running on the Mac OS can use the driver to configure and control the card. Programs in both environments can use the driver to exchange messages; see the section “Passing Messages” beginning on page 45. Initializing the Driver 3 The PC interface driver is named .Symbiosis.
C H A P T E R 3 The PC Interface Driver rsSetMemoryConfig 3 You can use the rsSetMemoryConfig control call to make memory on the Macintosh computer available for the PC. The calling program first allocates the memory and sets it locked and contiguous. The control call sets the base address and length of the memory. This call is needed only when no RAM SIMM is installed for the PC.
C H A P T E R 3 The PC Interface Driver If the value of type is rsNULLDrive, the corresponding drive does not exist to the PC and no other fields need to be filled in. If the value of type is rsFloppyDrive, the corresponding drive on the PC is connected to one of the Macintosh computer’s floppy drives. If the value of type is rsFileDrive, the corresponding drive is connected to a Macintosh file system file.
C H A P T E R 3 The PC Interface Driver The caller can use the returned pointer to modify an entry in the RSNetDriveConfig data structure and then call the rsSetNetDriveConfig control call. rsSetNetDriveConfig 3 You can use the rsSetNetDriveConfig control call to establish links between Macintosh directories and PC drive letters.
C H A P T E R 3 The PC Interface Driver When a PC port is connected to the null device, any output from the PC is ignored. When a PC port is connected to the modem or printer port, the PC controls the port by means of the UART emulation register in the DOS compatibility subsystem. For example, when the PC sets the baud rate divisor in the UART emulation register, the PC Interface driver intercepts the operation and translates the action to a control call to the driver for the modem or printer port.
C H A P T E R 3 The PC Interface Driver rsSetDeactivateKey 3 You can use the rsSetDeactivateKey control call to set the deactivate key along with its modifiers and a user-defined task. When the PC has control of the keyboard, the driver monitors the keyboard input data for the deactivate key combination and calls the user-defined task when that key combination occurs.
C H A P T E R 3 The PC Interface Driver rsPCStatus 3 You can use the rsPCStatus status call to get information about the state of the PC hardware. This call returns the current state of the PC. Parameter block → ← → → ← ioCompletion ioResult ioRefNum csCode csParam+4 long word word word long Pointer to the completion routine Equals rsPCStatus The status word Table 3-1 shows the meanings of the bits in the status word.
C H A P T E R 3 The PC Interface Driver rsBootPC 3 You can use the rsBootPC control call to start up the PC. This call resets the PC’s processor and boots the PC’s system BIOS. If the PC is already running, this call resets it. Parameter block → ← → → ioCompletion ioResult ioRefNum csCode long word word word Pointer to the completion routine Equals rsBootPC The calling program must set up the PC’s configuration before booting the PC.
C H A P T E R 3 The PC Interface Driver rsDisableVideo 3 You can use the rsDisableVideo control call to disable the VGA display output when the Macintosh video output is selected. Parameter block → ← → → ioCompletion ioResult ioRefNum csCode long word word word Pointer to the completion routine Equals rsDisableVideo rsMountDisks 3 You can use the rsMountDisks call to enable the mounting and unmounting of PC disks.
C H A P T E R 3 The PC Interface Driver rsActivateKB 3 You can use the rsActivateKB control call to direct the data from the computer’s keyboard to the PC side. All keys except the Command key are trapped; key codes are translated and transmitted to the PC.
C H A P T E R 3 The PC Interface Driver rsEndPrintJob 3 You can use the rsEndPrintJob control call to end the current print job and close the spool file (if any). Any subsequent data from the PC to the parallel port starts a new spool file.
C H A P T E R 3 The PC Interface Driver The events are rsPrintSpoolErr = problem opening or writing to a print spool file rsCOM1SpoolErr = problem opening or writing to the COM1 spool file rsCOM2SpoolErr = problem opening or writing to the COM2 spool file rsDiskFileErr = problem reading the disk file rsLastError 3 You can use the rsLastError status call to obtain the last nonzero error code returned by the driver.
C H A P T E R 3 The PC Interface Driver PC Interface 3 Programs on the PC communicate with the PC Interface driver through a software interrupt interface. The program loads registers with appropriate values, including a function selector in register AH, and calls the PC Interface driver with an INT 5Fh call. PC programs can determine whether the PC Interface driver interface is available by calling INT 5Fh with register AH = 0.
C H A P T E R 3 The PC Interface Driver Sending a Message 3 To send a message, you must pass a message parameter block (MsgPBlk) to the PC Interface driver. The rsSendMessage routine is always asynchronous; it simply queues the message parameter block and returns to the caller. The msgResult field is set to 1 (busy) until the message has been sent. After the message has been sent, the msgResult field is set to 0 (no error) or –3 (MsgTimeout).
C H A P T E R 3 The PC Interface Driver On the PC 3 The MsgPBlk data structure on the PC has the following format. Please note that the sizes of some of the fields are different from the Mac OS equivalent.
C H A P T E R 3 The PC Interface Driver A message handler is described by a MsgRecElem record. The recProc field points to the handler procedure; the values of recBaseCmd and recCmdCount are the values allocated by rsRegisterMessage. IMPORTANT Before your program terminates, you must remove your message handler so that the PC Interface driver will not call it after you are gone. See the section “Removing a Message Handler” on page 50.
C H A P T E R 3 The PC Interface Driver On the PC 3 For a program on the PC, the MsgRecElem data structure has the following format: MsgRecElem STRUCT Link DWORD ? ; Pointer to next link Code DWORD ? ; Pointer to the code for this link cmdBase WORD ? ; Base message number for this procedure cmdCount WORD ? ; Number of message numbers for this procedure userData DWORD ? ; For caller’s use msgVXD DWORD ? ; Reserved for driver use MsgRecElem ENDS To install a message handler on
C H A P T E R 3 The PC Interface Driver On the PC 3 To remove a message handler on the PC, your program makes a call to INT 5Fh with AH = 3 and with a pointer to the MsgRecElem record in registers ES:BX. Header File for PC Interface 3 Here is a sample header file for access to the PC interface driver. /* File: PCCardCalls.h Contains:This file contains the data structures and equates needed to call the PC Card driver on the Macintosh side. Copyright: 1994 by Apple Computer, Inc.
C H A P T E R 3 The PC Interface Driver / *---------------------------------------------------------------------------; Misc. Equates ;--------------------------------------------------------------------------*/ #defineRSDriverName"\p.
C H A P T E R 3 The PC Interface Driver ProcPtr ioCompletion; // completion routine addr (0 for synch calls) OSErr ioResult; // result code StringPtr ioNamePtr; // ptr to Vol:FileName string short ioVRefNum; // volume refnum (DrvNum for Eject and MountVol) short ioCRefNum; // refNum for I/O operation short csCode; // The operation code void * csPtr; // pointer to proceedure or data long csData; // data long csData2; // data } RSParamBlockRec, *RSParamBlockRecPtr; / *--------------------------------------
C H A P T E R 3 The PC Interface Driver rsSharedEnabled rsDMAEnabled rsCableInstalled rsModemUsedByCom1 rsPrinterUsedByCom1 rsModemUsedByCom2 rsPrinterUsedByCom2 rsSoundEnabled rsBIOSModified = = = = = = = = = 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192 // // // // // // // // // Mask Mask Mask Mask Mask Mask Mask Mask Mask for for for for for for for for for Shared Memory Enabled DMA Enabled video Cable Installed modem use by com1 printer use by com1 modem use by com2 printer use by com2 Sound E
C H A P T E R 3 The PC Interface Driver / *---------------------------------------------------------------------------; Mouse ;--------------------------------------------------------------------------*/ // Control Codes enum{ rsSetMouseButtonKey = 200, rsBeginMouseTracking = 201, rsEndMouseTracking = 202 // Sets which key to use as the second mouse button // Tells the driver to track the mouse movement // Releases control of the mouse }; / *--------------------------------------------------------
C H A P T E R 3 The PC Interface Driver // Parameter Block data structures typedefstruct{ short type; // The port type (rsModemComPort, rsPrinterComPort, etc..
C H A P T E R 3 The PC Interface Driver // Fixed Drive Array Index Numbers enum{ rsDriveA rsDriveB rsDriveC rsDriveD }; = = = = 0, 1, 2, 3 // // // // Floppy Drive A: Floppy Drive B: Hard Drive C: Hard Drive D: // Control Codes enum{ rsSetDriveConfig rsMountDisks rsDontMountDisks }; = 500, = 501, = 502 // Initialize the Drive Configuration // Mount any disk that is inserted // Do not mount any disk that is inserted // Fixed Disk Data Structures typedef struct{ short type; short vRefNum; long dirI
C H A P T E R 3 The PC Interface Driver // Data Structure typedef struct{ char status; char changed; short vRefNum; long dirID; } RSNetDriveConfig[26], // 0 = unusable, - = inuse, + = can be used // Used by driver! // which mac volume (0 = no net drive) // the Directory ID *RSNetDriveConfigPtr; / *---------------------------------------------------------------------------; Messaging ;--------------------------------------------------------------------------*/ // Message control codes enum{ rsSendMessag
C H A P T E R 3 The PC Interface Driver typedef struct MsgRecElem { struct MsgRecElem* recQLink; short recQType; short recFlags; ProcPtr recProc; short recCmdBase; short recCmdCount; long recUserData; } MsgRecElem, *MsgRecElemPtr; // // // // // // // Next queue element queue flags Not used...Yet...Set to zero Ptr to the receive proceedure first command received by this proc # of commands allocated for this proc For caller's use (could be A5...
C H A P T E R 3 The PC Interface Driver // Status Codes enum{ rsEventSample }; = 1100 // Sample data on an event / *---------------------------------------------------------------------------; NotifyUPP definition ;--------------------------------------------------------------------------*/ /* pcCardNotificationProcs cannot be written in or called from a high-level language without the help of mixed mode or assembly glue because they use the following parameter-passing convention: typedef pascal void
C H A P T E R 3 The PC Interface Driver #define NewPCCardNotifyProc(userRoutine) (PCCardNotifyUPP)((userRoutine)) \ #endif / *---------------------------------------------------------------------------; function prototypes ;--------------------------------------------------------------------------*/ OSErr OpenPCCardDriver(short *refNum); OSErr CallrsBootPCSync(short refNum); OSErr CallrsResetPCSync(short refNum); OSErr CallrsPCStatusSync(short refNum, long *status); OSErr CallrsEnableVideoSync(short re
Index Numerals 16C450 serial port IC 27 68040 microprocessor 2, 18 80486DX2 microprocessor 2, 14 8242 keyboard and mouse controller IC 28 8254 interval timer 8 8259 interrupt controller 21 82C450 VGA controller IC 25 84031 memory controller IC 16, 17, 18–20 84035 data path controller IC 16, 20–21 reset logic in 20 command key, to switch to PC operation 7 comparison with a PC 3 configuring the PC 34 connectors 68040 socket 31 audio and video 32 I/O expansion slot 31 joystick 8, 29 serial port 6 CT2501 sound
I N D E X H hard disk 6 hot key, to switch to PC operation 7 I interrupt control 21 interrupts 16 interrupt status register 17 I/O components 26–28 I/O devices 6 I/O expansion slot 31 ISA bus control 20 J MsgRecElem data structure 49, 50 registering messages 46 rsRegisterMessage control call 46 rsSendMessage routine 47 sending messages 47 message-passing hardware 28 microprocessor 2, 13 microprocessor clock speed 2, 13 misalignment of data 15 monitor sense lines 23 monitors.
I N D E X rsGetNetDriveConfig routine 36 rsSetComPortConfig routine 37 rsSetDeactivateKey routine 39 rsSetDriveConfig routine 35 rsSetMemoryConfig routine 35 rsSetNetDriveConfig routine 37 rsSetParallelPortConfig routine 38 PC system bus 14 PDS.
T H E A P P L E P U B L I S H I N G This Apple manual was written, edited, and composed on a desktop publishing system using Apple Macintosh computers and FrameMaker software. Proof pages and final pages were created on an Apple LaserWriter Pro printer. Line art was created using Adobe Illustrator and Adobe Photoshop . PostScript , the page-description language for the LaserWriter, was developed by Adobe Systems Incorporated. Text type is Palatino and display type is Helvetica.