`
`Macintosfi Quagra 840AV ang
`
`Macintosh Centris 660AV
`
`Computers
`
`
`
`PART 1 OF 10
`
`Page 1 of 500
`
`Page 1 of 500
`
`
`
`ITC Zapf Dingbats is a registered
`trademark of International Typeface
`Corporation.
`Excel and Microsoft are registered
`trademarks of Microsoft Corporation.
`Motorola is a registered trademark of
`Motorola Corporation.
`NuBus is a trademark of
`Texas Instruments.
`
`QuicKeys is a trademark of
`CE Software, Inc.
`
`UNIX is a registered trademark of
`UNIX System Laboratories, Inc.
`
`LIMITED WARRANTY ON MEDIA AND
`REPLACEMENT
`
`If you discover physical defects in the
`manual or in the media on which a software
`product is distributed, APDA will replace
`the media or manual at no charge to you
`provided you return the item to be replaced
`with proof of purchase to APDA.
`ALL IMPLIED WARRANTIES ON THIS
`MANUAL, INCLUDING IMPLIED
`WARRANTIES OF MERCHANTABILITY
`AND FITNESS FOR A PARTICULAR
`PURPOSE, ARE LIMITED IN DURATION
`TO NINETY (90) DAYS FROM THE DATE
`OF THE ORIGINAL RETAIL PURCHASE
`OF THIS PRODUCT.
`
`Even though Apple has reviewed this
`manual, APPLE MAKES NO WARRANTY
`OR REPRESENTATION, EITHER EXPRESS
`OR IMPLIED, WITH RESPECT TO THIS
`MANUAL, ITS QUALITY, ACCURACY,
`MERCHANTABILITY, OR FITNESS FOR A
`PARTICULAR PURPOSE. AS A RESULT,
`THIS MANUAL IS SOLD ”AS IS,” AND
`YOU, THE PURCHASER, ARE ASSUMING
`THE ENTIRE RISK AS TO ITS QUALITY
`AND ACCURACY.
`IN NO EVENT WILL APPLE BE LIABLE
`FOR DIRECT, INDIRECT, SPECIAL,
`INCIDENTAL, OR CONSEQUENTIAL
`DAMAGES RESULTING FROM ANY
`DEFECT OR INACCURACY IN THIS
`MANUAL, even if advised of the possibility
`of such damages.
`THE WARRANTY AND REMEDIES SET
`FORTH ABOVE ARE EXCLUSIVE AND IN
`LIEU OF ALL OTHERS, ORAL OR
`WRITTEN, EXPRESS OR IMPLIED. No
`Apple dealer, agent, or employee is
`authorized to make any modification,
`extension, or addition to this warranty.
`Some states do not allow the exclusion or
`limitation of implied warranties or liability
`for incidental or consequential damages, so
`the above limitation or exclusion may not
`apply to you. This warranty gives you
`specific legal rights, and you may also have
`other rights which vary from state to state.
`
`G Apple Computer, Inc.
`© 1993, 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 registered
`trademark of Apple Computer, Inc.
`Use of the ”keyboard” Apple logo
`(Option-Shift-K) for commercial
`purposes without the prior written
`consent of Apple may constitute
`trademark infringement and unfair
`competition in violation of federal and
`state laws.
`
`No licenses, express or implied, are
`granted with respect to any of the
`technology described in this book.
`Apple retains all intellectual property
`rights associated with the technology
`described in this book. This book is
`intended to assist application
`developers to develop applications
`only for Apple Macintosh computers.
`Apple Computer, Inc.
`20525 Mariani Avenue
`Cupertino, CA 95014
`408-996-1010
`
`Simultaneously published in the United
`States and Canada.
`
`Apple, the Apple logo, APDA,
`AppleTalk, EtherTalk, LaserWriter,
`LocalTalk, Macintosh, MPW, and
`TokenTalk are trademarks of Apple
`Computer, Inc., registered in the United
`States and other countries.
`
`Apple Desktop Bus, AppleScript, Apple
`SuperDrive, A/ ROSE, Finder, GeoPort,
`Macintosh Centris, Macintosh Quadra,
`MacroMaker, PlainTalk, PowerBook,
`QuickTime, and ResEdit are trademarks
`of Apple Computer, Inc.
`Adobe and PostScript are trademarks of
`Adobe Systems Incorporated, which
`may be registered in certain
`jurisdictions.
`Classic is a registered trademark
`licensed to Apple Computer, Inc.
`DSP321O is a registered trademark of
`AT&T Corporation.
`FileMaker and MacWrite are registered
`trademarks of Claris Corporation.
`FrameMaker is a registered trademark
`of Frame Technology Corporation.
`Helvetica and Palatino are registered
`trademarks of Linotype Company.
`
`Page 2 of 500
`
`Page 2 of 500
`
`
`
`Contents
`
`Figures, Tables, and Listings
`
`xv
`
`About This Developer Note
`
`Contents of This Note
`Hardware Overview
`Software Overview
`
`xxi
`xxiii
`xxiii
`
`xxiv
`xxiv
`
`Digital Signal Processing
`Text-to-Speech Conversion
`Speech Recognition
`xxv
`New SCSI Manager
`xxv
`Other System Software Changes
`Supplementary Documents
`xxvi
`Standard Abbreviations
`xxviii
`
`xxvi
`
`Hardware
`
`Chapter1
`
`Macintosh Centris 66OAV Computers
`
`The Macintosh Quadra 840Av and
`
`Models and Accessories
`
`4
`
`5
`Summary of Features
`Differences Between Models
`
`System Software
`Compatibility Issues
`Machine Identification
`
`7
`
`7
`
`8
`
`Chapter 2
`
`Hardware Details
`
`9
`
`10
`
`Physical Forms
`10
`Parts Layout
`System Architecture
`Functional Units
`Main Processor
`
`10
`
`12
`12
`
`12
`Read-Only Memory
`12
`Random-Access Memory
`Memory Controller and Arbiter
`Digital Signal Processor
`13
`
`Page 3 of 500
`
`Page 3 of 500
`
`
`
`13
`Peripheral Subsystem Controller
`Macintosh Universal NuBus Interface
`
`14
`
`Cyclone Integrated Video Interfaces Controller
`Sebastian
`14
`
`14
`
`Video Data Path Chip
`Mickey
`15
`New Age
`15
`Curio
`
`16
`
`15
`
`Apple Telecom External Clock Synchronizer
`Cuda
`16
`
`16
`
`Singer
`Endeavor
`
`16
`
`17
`
`Digital Multistandard Decoder
`System Clocks
`17
`Signal Buses
`18
`Bus Arbitration
`Bus Timeouts
`
`18
`19
`
`17
`
`ROM and RAM Management
`19
`DRAM Configurations
`Startup Memory Addressing
`Access Timing
`20
`External Device Interfaces
`
`21
`
`19
`
`20
`
`Apple Desktop Bus
`Ethernet Port
`22
`Serial Ports
`22
`SCSI Connection
`
`24
`
`21
`
`24
`Power Budgets
`Internal SCSI Locations
`
`24
`
`26
`Pin Assignments
`Automatic SCSI Termination
`
`Installing Internal SCSI Devices
`Floppy Disk Drive Connection
`PSC Functions
`29
`
`27
`
`28
`
`28
`
`DMA Channels Controlled by the PSC
`Bus Arbitration Performed by the PSC
`Video and Graphics I/ O
`30
`External Video Input
`32
`33
`Video RAM Usage
`Video Monitor Interface
`
`35
`
`29
`29
`
`Video Output Timing
`Miniature Videocam
`
`36
`37
`
`38
`Sound I / O
`NuBus Interface
`Slot Connections
`
`39
`
`40
`
`Digital Audio / Video Expansion Connector
`DAV Sound Interface
`44
`DAV Video Interface
`45
`
`42
`
`Page 4 of 500
`
`Page 4 of 500
`
`
`
`Processor-Direct Cards for the Macintosh Centris 66OAV
`The Macintosh Centris 66OAV PDS Connector
`47
`
`46
`
`Processor Bus Burst Write Timing
`RAM Expansion Cards
`52
`VRAM Expansion Cards
`54
`
`51
`
`Real-Time Data Processing
`
`57
`
`Introduction to Real-Time Data Processing
`
`59
`
`Introduction to Digital Signal Processors
`Concepts of Digital Signal Processing
`Real—Time Processing Capability
`61
`Real-Time Processing Architecture
`62
`Software Model
`64
`
`60
`60
`
`Dual Programming Model
`Real Time Manager
`65
`DSP Operating System
`DSP Driver
`66
`
`64
`
`66
`
`Other Software Components
`Software Layers
`67
`DSP-Aware Applications
`Software Architecture
`71
`
`70
`
`66
`
`Frame Organization
`Frame Size Selection
`
`73
`74
`
`75
`Visible Caching
`DSP and Main Processor Addressing
`Containers
`78
`
`77
`
`Primary and Secondary Pointers
`One-Container Sections
`78
`Two-Container Sections
`78
`
`78
`
`79
`
`On-Chip and Off-Chip Addressing
`Guaranteed Processing Bandwidth
`Smooth and Lumpy Algorithms
`Calculating GPB
`80
`81
`GPB for Lumpy Algorithms
`Fast Execution Versus Real-Time Execution
`Processor Allocation for Timeshare Tasks
`Frame Overruns
`83
`
`79
`80
`
`82
`
`82
`
`Category One Frame Overrun
`Category Two Frame Overrun
`Category Three Frame Overrun
`
`84
`84
`84
`
`Page 5 of 500
`
`Page 5 of 500
`
`
`
`85
`
`Data Structures
`Sections Defined
`AutoCache
`87
`DemandCache
`
`86
`
`87
`
`88
`Sections and Caching
`Container Memory Allocation
`A Complete Software Example
`Data Buffering
`90
`FIFO Buffers
`92
`AIAO Buffers
`94
`Buffer Connections Between Modules
`Buffer Connections Between Tasks
`
`89
`90
`
`Unified I / 0 Architecture
`Execution Models
`102
`
`101
`
`95
`
`97
`
`102
`Section Control Flags
`Setting Up Input and Output for Connections
`AutoCache Execution Model
`104
`DemandCache Execution Model
`
`106
`
`DemandCache for Dynamic Sections
`DemandCache for Static Sections
`Connections in DemandCache
`FIFO Connections
`111
`
`108
`108
`
`107
`
`112
`Grouped Modules
`GPB for Grouped Modules
`Module Scaling
`113
`Selecting Module Scale Factor
`Standard Sound
`116
`
`113
`
`116
`
`Sound Manager Interface
`Standard Sound Task List
`
`117
`117
`
`Sample Rate and Frame Rate Changes
`
`121
`
`Chapter 4
`
`Real Time Manager
`
`123
`
`126
`
`124
`About the Real Time Manager
`124
`Real Time Manager Structure
`Guaranteed Processing Bandwidth
`Devices and Clients
`127
`Tasks
`130
`Modules
`
`131
`
`131
`Module Definition
`Execution Flow for Modules
`Sections
`133
`Section Definition
`
`133
`
`131
`
`Section Flags and Data Types
`Connecting Sections
`135
`
`134
`
`Page 6 of 500
`
`Page 6 of 500
`
`
`
`Using the Real Time Manager
`Accessing the DSP
`137
`Creating a Task
`140
`Loading a Module
`141
`Getting Data
`143
`Putting the Task to Work
`Getting Off the DSP Task List
`Sending Messages
`152
`From DSP to Host
`152
`From Host to DSP
`153
`
`136
`
`147
`
`149
`
`153
`
`155
`
`Message Action Procedure
`Message Format
`154
`Real Time Manager Reference
`Client Routines
`155
`Device Routines
`157
`Task API Routines
`163
`Module API Routines
`Section API Routines
`FIFO API Routines
`
`168
`173
`175
`
`Summary of the Real Time Manager
`Constants
`184
`
`184
`
`Data Types
`Data Structures
`
`188
`
`189
`
`Trap Macros and Routine Selectors
`
`194
`
`DSP Operating System 203
`
`About DSP Modules
`
`204
`
`DSP3210 Register Model
`32-Bit Data Transfers
`
`206
`
`205
`
`DSP Program Information for the Macintosh Programmer
`Input and Output Sections
`206
`Parameter Sections
`207
`
`206
`
`GPB Scaling Vectors
`Grouping Assumptions
`Run-Time Environment
`
`207
`
`207
`207
`
`DSP Operating System Reference
`Creating a Module
`208
`Building a Section
`210
`Code and Variables
`
`212
`
`216
`Data Input
`219
`Data Output
`DSP Operating System Macros
`General Manipulation Macros
`Section Manipulation Macros
`Module Manipulation Macro
`
`223
`223
`225
`228
`
`Page 7 of 500
`
`Page 7 of 500
`
`
`
`229
`Task Manipulation Macros
`230
`FIFO Manipulation Macros
`235
`GPB Manipulation Macros
`Semaphore Manipulation Macros
`239
`Message Manipulation Macro
`Summary of the DSP Operating System
`Constants
`240
`Routines
`252
`
`237
`
`240
`
`Speech Synthesis and Recognition
`
`261
`
`Chapter 6
`
`Speech Manager
`
`263
`
`264
`265
`266
`
`268
`
`269
`
`Speech Manager Overview
`Speech Manager Concepts
`Using the Speech Manager
`Getting Started
`266
`266
`Determining If the Speech Manager Is Available
`Determining Which Version of the Speech Manager Is Running
`Making Some Noise
`267
`Determining If Speaking Is Complete
`A Simple Example
`269
`Essential Calls—Simple and Useful
`Working With Voices
`269
`Managing Connections to Speech Synthesizers
`Starting and Stopping Speech
`275
`Using Basic Speech Controls
`276
`Putting It All Together
`279
`Advanced Routines
`280
`
`267
`
`273
`
`Advanced Speech Controls
`285
`Converting Text Into Phonemes
`Getting Information About a Speech Channel
`Advanced Control Routines
`291
`
`280
`
`Application-Defined Pronunciation Dictionaries
`Associating a Dictionary With a Speech Channel
`Creating and Editing Dictionaries
`301
`Advanced Voice Information Routine
`
`301
`
`302
`Embedded Speech Commands
`Embedded Speech Command Syntax
`304
`Embedded Speech Command Set
`Embedded Speech Command Error Reporting
`Summary of Phonemes and Prosodic Controls
`307
`Phoneme Set
`307
`Prosodic Controls
`
`302
`
`309
`
`286
`
`298
`299
`
`307
`
`Page 8 of 500
`
`Page 8 of 500
`
`
`
`Summary of the Speech Manager
`Constants
`310
`
`310
`
`312
`Data Types
`Speech Manager Routines
`Callback Prototypes
`315
`Error Return Codes
`316
`
`314
`
`Chapter 7
`
`Introduction to Speech Recognition
`
`How Does Casper Work?
`Software Installation
`
`319
`
`318
`
`Using the Microphone
`Getting Started
`321
`Setting Your Computer's Name
`Choosing Speech Feedback
`Setting the Attention Key
`The Casper User Interface
`Operational Control
`Feedback Control
`
`321
`
`324
`325
`
`322
`
`323
`324
`324
`
`326
`
`326
`Speech Macro Editor
`Scripting Tool Requirements
`AppleScript
`326
`QuicKeys
`327
`327
`User Requirements
`Using the Speech Macro Editor
`Recording a New Macro
`Renaming a Macro
`330
`Saving Macro Changes
`Loading Macros
`330
`Built-in Speech Rules and Grammar
`Performance
`332
`
`329
`
`330
`
`328
`
`331
`
`Real-Time Response
`Types of Errors
`333
`Acceptable Limits or Constraints
`
`332
`
`Chapter 8
`
`Speech Rules
`
`335
`
`Overview
`
`336
`
`342
`Speech Rules Files
`Speech Rules File Syntax
`Command Rules
`345
`
`345
`
`Phrases and AppleScript Clauses
`Internal Category Rules
`348
`External Category Rules
`348
`
`Page 9 of 500
`
`Page 9 of 500
`
`
`
`Context Specifiers
`Default Statements
`
`349
`350
`
`351
`Global Scripts
`352
`CompileRules Error Messages
`354
`Apple Events Speech Events
`An Example: A Simple Checkbook
`
`354
`
`System Software Modifications
`
`SCSI Manager 4.3
`
`361
`
`362
`
`SCSI Manager 4.3 Features
`Compatibility
`364
`System Performance Impact
`Impact on Developers
`364
`Design Overview
`365
`General Concepts
`365
`Transport Layer
`367
`SCSI Interface Modules
`CAM Deviations
`368
`
`367
`
`364
`
`368
`Implementation
`Optional Features Not Supported in the SIM
`Compatibility and Emulation
`370
`Virtual Bus
`371
`
`372
`Data Transfer Descriptions
`Guidelines for SCSI Device Driver Developers
`Booting and Drive Mounting
`373
`Asynchronous Behavior
`374
`Virtual Memory Operation
`376
`377
`Guidelines for SIM/ HBA Developers
`SIM Initialization and General Operation
`Support for the Old SCSI Manager
`378
`Interrupt Support
`380
`Handshaking of Data Bytes
`DMA Support
`381
`SCSI Manager 4.3 Reference
`Data Structure
`382
`
`380
`
`381
`
`377
`
`SCSI Manager Parameter Block
`Routines
`386
`Driver Routines
`
`386
`
`382
`
`SCSI Interface Module Calls to Transport
`Transport Calls to SCSI Interface Modules
`
`397
`399
`
`Page 10 of 500
`
`Page 10 of 500
`
`
`
`Summary of the SCSI Manager 4.3
`Constants
`400
`
`400
`
`Data Type
`Routines
`
`403
`404
`
`Chapter 10
`
`DMA Serial Driver
`
`405
`
`Architecture
`
`406
`
`Changes in Implementation
`Interrupt Handling
`407
`DMA Versus Non-DMA Transmissions
`
`407
`
`PollProc Mechanism
`DMA Use
`408
`
`408
`
`Chapter 11
`
`Video Driver
`
`409
`
`410
`Video Television Output
`New Control and Status Routines
`NuBus Block Moves
`411
`
`411
`
`Configuration ROM Programming
`Using the Trap Macro SlotBlockXferCtl
`
`412
`
`412
`
`Chapter 12
`
`New Age Floppy Disk Driver
`
`413
`
`414
`Floppy Disk Support
`Programming Interface Changes
`Operational Compatibility
`415
`
`414
`
`Chapter 13
`
`Virtual Memory Manager
`
`417
`
`AppendixA
`
`DSP d Commands for MacsBug
`
`421
`
`421
`Getting Started
`Using the d Commands
`d Commands Reference
`
`421
`423
`
`Page 11 of 500
`
`Page 11 of 500
`
`
`
`Appendix B
`
`BugLite User’s Guide
`
`427
`
`Getting Started
`Installation
`
`427
`427
`
`What You See When You Launch BugLite
`Tools of the Trade
`429
`
`430
`Using BugLite
`Getting Information
`Task Info Window
`Module Info Window
`Section Information
`
`434
`434
`434
`436
`
`Appendix C
`
`Snoopy User’s Guide
`
`437
`
`Getting Started
`Installation
`
`437
`437
`
`What You See When You Launch Snoopy
`Task/ Module / Section Lists
`438
`
`438
`The Data Display Window
`Run / Store Address Pop-up Menu
`PC Column
`440
`
`439
`
`The Breakpoint Column
`Pane Resizers
`440
`
`440
`
`Using Snoopy
`Menu Bar
`
`440
`441
`
`Control Menu
`
`441
`
`Setting and Clearing Breakpoints
`Breakpoint Restrictions
`442
`Single Stepping
`443
`443
`Inspect Menu
`444
`Formatting
`444
`Editing Data
`445
`Windows Menu
`Additional Information Windows
`Current PC
`446
`
`442
`
`445
`
`The DSP Operating System Routines
`The EVT
`447
`
`446
`
`On-Chip SRAM
`Registers
`448
`Standard Menus
`Find Menu
`449
`Module Menu
`451
`
`448
`
`449
`
`Page 12 of 500
`
`Page 12 of 500
`
`
`
`Appendix D
`
`Mechanical Details
`
`453
`
`Glossary
`
`477
`
`Index
`
`483
`
`Page 13 of 500
`
`Page 13 of 500
`
`
`
`Figures, Tables, and Listings
`
`Chapter 1
`
`The Macintosh Quadra 840Av and
`
`Macintosh Centris 660Av Computers
`
`3
`
`Table 1 -1
`
`Gestalt values for the Macintosh Quadra 840Av and
`Macintosh Centris 660Av
`8
`
`Chapter 2
`
`Hardware Details
`
`9
`
`Figure 2-1
`Figure 2-2
`Figure 2-3
`Figure 2-4
`Figure 2-5
`Figure 2-6
`
`Figure 2-7
`Figure 2-8
`Figure 2-9
`Figure 2-10
`Figure 2-11
`Figure 2-12
`Figure 2-13
`Figure 2-14
`Figure 2-15
`Figure 2-16
`Figure 2-17
`Figure 2-18
`Figure 2-19
`Figure 2-20
`Figure 2-21
`
`Table 2-1
`Table 2-2
`Table 2-1
`Table 2-3
`Table 2-4
`Table 2-5
`Table 2-6
`Table 2-7
`Table 2-8
`Table 2-9
`Table 2-10
`Table 2-11
`Table 2-12
`Table 2-13
`
`Page 14 of 500
`
`Functional diagram
`ADB socket
`21
`
`11
`
`23
`Serial port connectors
`24
`Macintosh Centris 660Av internal SCSI device space
`25
`Macintosh Quadra 840Av internal SCSI device space
`SCSI bus terminators in a typical Macintosh Quadra 840Av
`configuration
`27
`Video and graphics output system block diagram
`Video input subsystem
`32
`Video input connector
`33
`Video monitor connector
`
`35
`
`31
`
`36
`Video timing diagram
`39
`Sound I/O components
`Macintosh Centris 660Av accessory card mounting
`DAV connection on a NuBus card
`43
`
`44
`Singer sound frame
`Sound frame and word synchronization
`Sound subframe synchronization
`45
`DAV video timing
`46
`Burst write timing
`51
`RAM SIMM mechanical dimensions
`VRAM SIMM mechanical dimensions
`
`45
`
`53
`54
`
`External dimensions
`
`10
`
`Clock frequencies
`DRAM configurations
`DRAM access times
`
`17
`
`19
`20
`
`22
`ADB pin assignments
`Ethernet port pin assignments
`Serial port pin assignments
`SCSI power budgets
`24
`SCSI pin assignments
`26
`Floppy disk drive connector pin assignments
`PSC DMA channels
`29
`
`23
`
`22
`
`30
`Priority of DMA channel access
`Video input connector pin assignments
`VRAM sizes and monitor color depths
`
`33
`34
`
`28
`
`Page 14 of 500
`
`
`
`Table 2-14
`Table 2-15
`Table 2-16
`Table 2-17
`Table 2-18
`Table 2-19
`Table 2-20
`Table 2-21
`Table 3-22
`Table 3-23
`Table 3-24
`Table 3-25
`Table 3-26
`
`37
`
`Apple monitor timing values
`Sound I/O signals
`38
`40
`MUNI buffer capacities
`41
`NuBus pin assignments
`Power budget for each slot card
`DAV connector pin assignments
`44
`DAV connector sound signals
`Macintosh Centris 660Av PDS connector pin assignments
`Restricted microprocessor signals on the PDS connector
`Nonmicroprocessor signals on the PDS connector
`50
`RAM SIMM pin assignments
`52
`VRAM SIMM pin assignments
`55
`VRAM access times
`56
`
`42
`43
`
`47
`49
`
`Chapter 3
`
`Introduction to Real-Time Data Processing
`
`59
`
`62
`Frames
`Real-time and timeshare tasks
`Task list
`63
`Real-time data processing organization
`Four-layer Macintosh model
`67
`Six-layer model
`68
`Example of toolbox and driver layers
`Seven-layer real-time model
`70
`Real-time software organization
`Sound player example data flow
`Frame-based processing
`73
`Multiple code module processing
`Process data flow
`74
`77
`DSPAddress structure
`Smooth and lumpy DSP algorithms
`Timeshare capacity figures
`83
`Task with two modules
`86
`The module data structure
`86
`The section data structure
`Dual-container AutoCache example
`Data structure overview
`91
`Example of FIFO buffers
`92
`93
`The FIFO and its data header
`Code module data flow with A|AOs
`95
`Connections between modules
`ITB connections for previous and next tasks
`ITB open and close task configuration
`99
`Example of intertask buffers
`100
`Example of DSP task for telephone answering
`Controlling GPB in grouped modules
`113
`DSP Sound Manager and Sound Driver
`116
`Sound Manager processing
`117
`118
`Standard sound task list
`Equalizer used as a recorder task
`
`Figure 3-1
`Figure 3-2
`Figure 3-3
`Figure 3-4
`Figure 3-5
`Figure 3-6
`Figure 3-7
`Figure 3-8
`Figure 3-9
`Figure 3-10
`Figure 3-11
`Figure 3-12
`Figure 3-13
`Figure 3-14
`Figure 3-15
`Figure 3-16
`Figure 3-17
`Figure 3-18
`Figure 3-19
`Figure 3-20
`Figure 3-21
`Figure 3-22
`Figure 3-23
`Figure 3-24
`Figure 3-25
`Figure 3-26
`Figure 3-27
`Figure 3-28
`Figure 3-29
`Figure 3-30
`Figure 3-31
`Figure 3-32
`Figure 3-33
`Figure 3-34
`
`Page 15 of 500
`
`85
`
`65
`
`69
`
`62
`
`72
`72
`
`74
`
`80
`
`88
`
`94
`
`119
`
`98
`
`112
`
`Page 15 of 500
`
`
`
`Figure 3-35
`Figure 3-36
`
`120
`Equalizer used as a player task
`Equalizer used as a preprocess task
`
`121
`
`Table 3-1
`Table 3-2
`Table 3-3
`Table 3-4
`
`78
`Primary and secondary pointers
`79
`On-chip and off-chip addresses
`Run-time AutoCache flag combinations
`Run-time DemandCache flag combinations
`
`105
`
`110
`
`Chapter 4
`
`Real Time Manager
`
`123
`
`Figure 4-1
`Figure 4-2
`Figure 4-3
`Figure 4-4
`Figure 4-5
`Figure 4-6
`Figure 4-7
`Figure 4-8
`Figure 4-9
`Figure 4-10
`Figure 4-11
`Figure 4-12
`Figure 4-13
`
`Table 4-1
`Table 4-2
`Table 4-3
`Table 4-4
`Table 4-5
`Table 4-6
`
`Listing 4-1
`Listing 4-2
`Listing 4-3
`Listing 4-4
`Listing 4-5
`Listing 4-6
`Listing 4-7
`Listing 4-8
`Listing 4-9
`
`125
`DSP subsystem overview
`Examples of different GPB values
`Examples of different execution paths
`Section interconnection
`136
`
`127
`
`132
`
`137
`Task example
`Task after loading the CD-XA player module
`CD-XA player module structure
`142
`Module structure after DSPNewFIFO call
`Task structure after DSPLoadModule call
`
`144
`144
`
`142
`
`145
`Sections contained in the equalizer module
`CD-XA player with DsPconnectsections to equalizer
`Message passing from DSP to host
`153
`FIFO threshold
`184
`
`147
`
`134
`Section flags
`Section data-type flags
`Setting up a task
`138
`Task insertion locations
`
`135
`
`148
`
`Removing a task
`Message masks
`
`149
`182
`
`DSP bandwidth structure
`
`126
`
`128
`DSP device parameter block structure
`129
`CPU device parameter block structure
`Client information parameter block structure
`Task information parameter block structure
`Module information parameter block structure
`Section information parameter block structure
`Message action procedure
`154
`DSP message format
`154
`
`129
`130
`131
`133
`
`Chapter 5
`
`DSP Operating System
`
`203
`
`Figure 5-1
`Figure 5-2
`Figure 5-3
`
`Table 5-1
`Table 5-2
`
`DSP programming model
`DSP module structure
`
`205
`208
`
`DSP message structure
`
`240
`
`DSP3210 register assignments
`Section flags
`211
`
`205
`
`Page 16 of 500
`
`Page 16 of 500
`
`
`
`Table 5-3
`Table 5-4
`Table 5-5
`
`DSP3210 bank preferences section flags
`Buffer type section flags
`211
`Data type flags
`212
`
`211
`
`Chapter 6
`
`Speech Manager
`
`263
`
`Figure 6-1
`
`Speech synthesis components
`
`264
`
`Table 6-1
`Table 6-2
`Table 6-3
`
`Listing 6-1
`Listing 6-2
`Listing 6-3
`Listing 6-4
`
`304
`Embedded speech commands
`American English phoneme symbols
`Prosodic control symbols
`309
`
`308
`
`Determining if the Speech Manager is available
`Elementary Speech Manager calls
`269
`Getting information about a voice
`273
`Putting it all together
`279
`
`Chapter 7
`
`Introduction to Speech Recognition
`
`317
`
`Figure 7-1
`Figure 7-2
`Figure 7-3
`Figure 7-4
`Figure 7-5
`Figure 7-6
`
`Table 7-1
`
`322
`Speech Setup control panel
`323
`Setting your computer’s name
`323
`Choosing feedback signals
`324
`Setting the attention key
`Typical Speech Macro document window
`Typical New Macro window
`329
`
`328
`
`Grammatical naming conventions
`
`333
`
`Chapter 9
`
`SCSI Manager 4.3
`
`361
`
`Figure 9-1
`
`SCSI Manager software hierarchy
`
`366
`
`Table 9-1
`Table 9-2
`Table 9-3
`
`Listing 9-1
`Listing 9-2
`
`CAM to ACAM terminology conversion
`Old call parameter conversion
`379
`SCSI Manager 4.3 function codes
`
`388
`
`366
`
`Supported old SCSI Manager routines
`SIM initialization information structure
`
`371
`377
`
`Appendix A
`
`DSP d Commands for MacsBug
`
`421
`
`Table A-1
`Table A-2
`Table A-3
`Table A-4
`Table A-5
`
`d commands
`
`423
`
`Task flags
`Module flags
`Section flags
`Section types
`
`423
`425
`425
`426
`
`Page 17 of 500
`
`Page 17 of 500
`
`
`
`Appendix B
`
`BugLite User’s Guide
`
`427
`
`Figure B-1
`Figure B-2
`Figure B-3
`Figure B-4
`Figure B-5
`Figure B-6
`Figure B-7
`Figure B-8
`Figure B-9
`Figure B-10
`Figure B-11
`Figure B-12
`Figure B-13
`
`Task window
`
`428
`
`429
`Open File dialog box
`Graphical representation of a task
`Graphical representation of a module
`Task connected to a module
`431
`
`430
`431
`
`432
`
`432
`Disk play of “funky" file
`Disk player connected to input buffer
`Speaker connection icon
`432
`Data output buffers connected to speakers
`Task with task active indicator
`433
`Task Get Info window
`434
`Module Get Info window
`435
`Section Get Info window
`436
`
`433
`
`Appendix C
`
`Snoopy User's Guide
`
`437
`
`Figure C-1
`Figure C-2
`Figure C-3
`Figure C-4
`Figure C-5
`Figure C-6
`Figure C-7
`Figure C-8
`Figure C-9
`Figure C-10
`Figure C-11
`Figure C-12
`Figure C-13
`Figure C-14
`Figure C-15
`Figure C-16
`Figure C-17
`Figure C-18
`Figure C-19
`Figure C-20
`Figure C-21
`Figure C-22
`Figure C-23
`Figure C-24
`Figure C-25
`Figure C-26
`
`DSP Control window
`Real Time Tasks window
`
`438
`
`439
`
`Run/Store Address pop-up menu
`Vertical and horizontal pane resizers
`Menu bar
`441
`441
`Control menu
`Control commands after break
`
`441
`
`439
`440
`
`442
`Setting breakpoints
`Setting the breakpoint counter
`Inspect menu
`443
`Data display format menu
`Data editing window
`444
`Defined data types
`444
`Windows menu
`445
`Current PC window
`
`446
`
`442
`
`443
`
`DSP Operating System Routines window
`EVT window
`447
`
`447
`
`On-Chip SRAM window
`Example of SRAM layout
`Registers window
`449
`Find menu
`449
`
`448
`448
`
`Find Command dialog box
`Find Data Types menu
`Search In selection menu
`Module menu
`451
`
`450
`
`450
`451
`
`Error in loading symbolic table
`
`452
`
`Appendix D
`
`Mechanical Details
`
`453
`
`Figure D-1
`Figure D-2
`Figure D-3
`
`CD bezel for the Macintosh Centris 660Av
`Blank bezel for the Macintosh Centris 660Av
`
`455
`457
`
`Mounting sled for 5.25-inch SCSI devices
`
`459
`
`Page 18 of 500
`
`Page 18 of 500
`
`
`
`Figure D-4
`Figure D-5
`Figure D-6
`Figure D-7
`Figure D-8
`Figure D-9
`
`Shield for the CD bezel in the Macintosh Centris 660Av
`Magnetic shield for CD-ROM drives
`463
`465
`Blank bezel for the Macintosh Quadra 840Av
`467
`CD bezel for the Macintosh Quadra 840Av
`Accessory-card bracket for the Macintosh Centris 660Av
`Insulator for the Macintosh Centris 660Av accessory-
`card bracket
`471
`
`461
`
`469
`
`Figure D-10
`
`EMI shield for the Macintosh Centris 660Av accessory-
`card bracket
`473
`
`Figure D-11
`
`NuBus adapter card for the Macintosh Centris 660Av
`
`475
`
`Page 19 of 500
`
`Page 19 of 500
`
`
`
`PREFACE
`
`About This Developer Note
`
`This developer note introduces the Macintosh Quadra 840AV and the
`Macintosh Centris 660AV, Apple's newest extensions to the Macintosh family
`of personal computers. It is written primarily for experienced Macintosh
`hardware and software engineers who want to create products that are
`compatible with these computers.
`
`This note assumes that you are already familiar with both the functionality
`and programming requirements of Macintosh computers. If you are
`unfamiliar with Macintosh computers or would like more technical informa-
`tion, you may want to obtain copies of the related technical manuals listed in
`”Supplementary Documents,” later in this preface.
`
`Contents of This Note
`
`This developer note is divided into four main parts, containing a total of
`13 chapters.
`
`Part 1, ”Hardware,” describes the Macintosh Quadra 840AV and Macintosh
`
`Centris 660AV computers from a hardware Viewpoint. It contains two chapters:
`
`I Chapter 1, ”The Macintosh Quadra 840AV and Macintosh Centris 66OAV
`Computers,” gives you an overview of the configurations and features of
`these products.
`
`Chapter 2, ”Hardware Details,” describes the circuit boards for the
`computers, including their physical layout, functional units, signal
`timing and other electronic characteristics, input and output connectors,
`and interfaces with other equipment.
`
`Part2, ”Real-Time Data Processing,” describes the software technology of the
`digital signal processing (DSP) facilities in the Macintosh Quadra 840AV and
`Macintosh Centris 660AV. It contains three chapters:
`
`I Chapter 3, ”Introduction to Real-Time Data Processing,” summarizes the
`software architecture of their real-time data processing facility. This facility
`consists of an AT&T DSP3210 chip that performs data-processing
`operations for applications that contain DSP code.
`
`Chapter 4, ”Real Time Manager,” describes a new part of the Macintosh
`system software that supplies all the services an application requires to use
`the digital signal processor, including loading and running DSP code and
`performing DSP memory management.
`
`Chapter 5, ”DSP Operating System,” covers the DSP operating system,
`contained in the DSP chip. It provides the services every DSP program
`needs to work with the Macintosh Operating System.
`
`Page 20 of 500
`
`Page 20 of 500
`
`
`
`PREFACE
`
`Part 3, ”Speech Synthesis and Recognition,” explains the capabilities of the
`Macintosh Quadra 840AV and Macintosh Centris 660AV system software for
`generating and understanding human speech. It contains three chapters:
`
`I Chapter 6, ”Speech Manager,” describes a new Macintosh system software
`manager that provides a standardized way for applications to generate
`synthesized speech. The Speech Manager also lets an application control
`one or more speech synthesizers, which generate spoken sound in specific
`languages, intonations, and speaking styles.
`
`Chapter 7, ”Introduction to Speech Recognition,” contains a basic tutorial
`for the Speech Setup control panel. This control panel provides commands
`for controlling the speech recognition function.
`
`Chapter 8, ”Speech Rules,” explains the speech rules that are built into the
`Macintosh Quadra 840AV and Macintosh Centris 660AV system software.
`
`Part 4, ”System Software Modifications,” describe miscellaneous changes to
`the Macintosh Quadra 84OAV and Macintosh Centris 660AV system software,
`including a new manager for the internal and external SCSI (Small Computer
`System Interface) ports. It contains five chapters:
`
`I Chapter 9, ”SCSI Manager 4.3,” describes the new SCSI Manager.
`
`I Chapter 10, ”DMA Serial Driver,” details the new hardware-independent
`serial driver that uses direct memory access (DMA).
`
`Chapter 11, ”Video Driver,” describes changes to the video driver.
`
`Chapter 12, ”New Age Floppy Disk Driver,” lists changes to the floppy
`disk driver and tells you how they affect floppy disk compatibility with
`other Macintosh computers.
`
`Chapter 13, ”Virtual Memory Manager," details how the Virtual Memory
`Manager no longer disables interrupts when performing certain tasks.
`
`Four appendixes follow the main parts of this note. They contain information
`that can help you with specific development tasks:
`
`I Appendix A, ”DSP d Commands for MacsBug,” describes three new d
`commands added to Macsbug that help in debugging DSP code.
`
`Appendix B, ”BugLite User's Guide,” describes a DSP module installer
`with a graphical user interface. It helps programmers create and install
`tasks to be executed by the DSP.
`
`Appendix C, ”Snoopy User's Guide,” tells you how to use a browser and
`debugger for the DSP. It helps programmers debug real-time tasks that run
`on the DSP.
`
`Appendix D, ”Mechanical Details” contains foldout drawings of the
`physical mounting facilities that are provided for internal SCSI devices and
`accessory cards in the Macintosh Quadra 840AV and Macintosh
`Centris 660AV.
`
`Page 21 of 500
`
`Page 21 of 500
`
`
`
`PREFACE
`
`At the end of this developer note are a glossary and an index. Terms listed in
`the glossary are printed in boldface where they are first defined in the text.
`
`Hardware Overview
`
`The Macintosh Quadra 840AV and Macintosh Centris 660AV have the most
`
`features of any models in the Macintosh family of desktop computers. The
`Macintosh Quadra 840AV is also the fastest Macintosh computer. The two
`models have nearly identical electronic circuitry. Their differences are that the
`Macintosh Quadra 84OAV is housed in a minitower enclosure with more room
`
`for internal disk drives and accessory cards, while the Macintosh
`Centris 660AV is housed in a low—profile enclosure designed to be placed
`under the user's monitor. The Macintosh Centris 660AV also offers somewhat
`
`lower speed and performance than the Macintosh Quadra 840AV and sells for
`a lower price.
`
`Principal new hardware features of these computers include
`
`I digital signal processing, using an AT&T DSP3210 chip
`
`I video input and output facilities in NTSC, PAL, and SECAM formats
`
`I high-quality sound processing
`
`I direct memory access for peripheral devices
`
`I integrated telephone I / O for ISDN, fax, and other signal forms
`
`Chapter 1, ”The Macintosh Quadra 840AV and Macintosh Centris 660AV
`Computers,” describes these and other hardware features; Chapter 2,
`”Hardware Details,” provides deeper technical information.
`
`Software Overview
`
`The Macintosh Quadra 84OAV and Macintosh Centris 660AV are supplied with
`essentially identical versions of the Macintosh System 7.1 software, in
`ROM and on the internal hard disk. For technical information about standard
`
`System 7.1 software, see Inside Macintosh, listed in ”Supplementary
`Documents,” later in this preface. However, the system software in the
`Macintosh Quadra 840AV and Macintosh Centris 660AV also contains
`
`significant changes and additions to System 7.1. This section summarizes
`those changes and additions, which are described in greater detail in
`Chapters 3 through 13.
`
`Page 22 of 500
`
`Page 22 of 500
`
`
`
`PREFACE
`
`Digital Signal Processing
`
`The Macintosh Quadra 84OAV and Macintosh Centris 66OAV use a digital
`signal processor (DSP) chip separate from the main microprocessor to
`perform real-time data processing, such as playing sound files. In addition,
`the DSP chip can perform processing-intensive operations that do not require
`real-time execution, such as file compression and three-dimensional drawing.
`Chapter 3, ”Intr0duction to Real-Time Data Processing,” explains this
`capability in more detail.
`
`To take advantage of the DSP capability, you must write and compile DSP
`code and include it with your application. A new addition to the Macintosh
`system software, the Real Time Manager, supplies the services your
`application needs to handle DSP code. It contains the calls needed to access
`the DSP, load and run DSP code, and transfer data to a