`
`PRIOR-ART _0009436
`
`APPLE-PUMA-0009756
`
`PUMA Exhibit 2004
`Apple v. PUMA, IPR2016-01114
`1 of 506
`
`
`
`PRIOR-ART _0009437
`
`APPLE-PUMA-0009757
`
`PUMA Exhibit 2004
`Apple v. PUMA, IPR2016-01114
`2 of 506
`
`
`
`Preface
`
`Contents
`
`Figures, Tables, and Listings
`
`xv
`
`About This Developer Note
`Contents of This Note
`xxi
`Hardware Overview
`xxiii
`Software Overview
`xxiii
`Digital Signal Processing
`Text-to-Speech Conversion
`Speech Recognition
`xxv
`New SCSI Manager
`xxv
`Other System Software Changes
`Supplementary Documents
`xxvi
`Standard Abbreviations
`xxviii
`
`xxiv
`xxiv
`
`xxi
`
`xxvi
`
`Part 1
`
`Hardware
`
`1
`
`Chapter 1
`
`Chapter 2
`
`The Macintosh Quadra 840AV and
`Macintosh Centris 660AV Computers
`Models and Accessories
`4
`5
`Summary of Features
`Differences Between Models
`System Software
`7
`Compatibility Issues
`Machine Identification
`
`7
`
`8
`
`3
`
`6
`
`9
`
`Hardware Details
`Physical Forms
`10
`Parts Layout
`10
`System Architecture
`12
`Functional Units
`12
`Main Processor
`12
`Read -Only Memory
`12
`Random-Access Memory
`Memory Controller and Arbiter
`Digital Signal Processor
`13
`
`10
`
`13
`
`iii
`
`PRIOR-ART _0009438
`
`APPLE-PUMA-0009758
`
`PUMA Exhibit 2004
`Apple v. PUMA, IPR2016-01114
`3 of 506
`
`
`
`15
`
`17
`
`19
`
`20
`
`21
`
`13
`Peripheral Subsystem Controller
`14
`Macintosh Universal NuBus Interface
`Cyclone Integrated Video Interfaces Controller
`Sebastian
`14
`Video Data Path Chip
`Mickey
`15
`New Age
`15
`16
`Curio
`Apple Telecom External Clock Synchronizer
`Cuda
`16
`Singer
`16
`17
`Endeavor
`Digital Multistandard Decoder
`System Clocks
`17
`Signal Buses
`18
`18
`Bus Arbitration
`19
`Bus Timeouts
`ROM and RAM Management
`DRAM Configurations
`19
`Startup Memory Addressing
`Access Timing
`20
`External Device Interfaces
`Apple Desktop Bus
`21
`Ethernet Port
`22
`Serial Ports
`22
`SCSI Connection
`24
`Power Budgets
`24
`Internal SCSI Locations
`Pin Assignments
`26
`Automatic SCSI Termination
`Installing Internal SCSI Devices
`Floppy Disk Drive Connection
`PSC Functions
`29
`DMA Channels Controlled by the PSC
`Bus Arbitration Performed by the PSC
`Video and Graphics 1/ 0
`30
`External Video Input
`32
`Video RAM Usage
`33
`Video Monitor Interface
`Video Output Timing
`Miniature Videocam
`Sound I/O
`38
`NuBus Interface
`Slot Connections
`40
`Digital Audio /Video Expansion Connector
`DAV Sound Interface
`44
`DAV Video Interface
`45
`
`24
`
`27
`
`28
`
`28
`
`29
`29
`
`35
`36
`37
`
`39
`
`14
`
`16
`
`42
`
`iv
`
`PRIOR-ART _0009439
`
`APPLE-PUMA-0009759
`
`PUMA Exhibit 2004
`Apple v. PUMA, IPR2016-01114
`4 of 506
`
`
`
`Processor-Direct Cards for the Macintosh Centris 660AV
`The Macintosh Centris 660AV PDS Connector
`47
`Processor Bus Burst Write Timing
`51
`RAM Expansion Cards
`52
`VRAM Expansion Cards
`54
`
`46
`
`Part 2
`
`Real-Time Data Processing
`
`57
`
`Chapter 3
`
`59
`
`Introduction to Real-Time Data Processing
`Introduction to Digital Signal Processors
`60
`Concepts of Digital Signal Processing
`60
`Real-Time Processing Capability
`61
`Real-Time Processing Architecture
`62
`Software Model
`64
`Dual Programming Model
`65
`Real Time Manager
`DSP Operating System
`DSP Driver
`66
`Other Software Components
`Software Layers
`67
`DSP-Aware Applications
`Software Architecture
`71
`Frame Organization
`73
`Frame Size Selection
`74
`Visible Caching
`75
`DSP and Main Processor Addressing
`Containers
`78
`Primary and Secondary Pointers
`One-Container Sections
`78
`Two-Container Sections
`78
`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
`Category One Frame Overrun
`Category Two Frame Overrun
`Category Three Frame Overrun
`
`64
`
`66
`
`66
`
`70
`
`77
`
`78
`
`79
`79
`80
`
`82
`82
`
`84
`84
`84
`
`v
`
`PRIOR-ART _0009440
`
`APPLE-PUMA-0009760
`
`PUMA Exhibit 2004
`Apple v. PUMA, IPR2016-01114
`5 of 506
`
`
`
`85
`
`86
`
`89
`90
`
`95
`
`97
`
`103
`
`Data Structures
`Sections Defined
`AutoCache
`87
`87
`DemandCache
`Sections and Caching
`88
`Container Memory Allocation
`A Complete Software Example
`Data Buffering
`90
`FIFO Buffers
`92
`AIAO Buffers
`94
`Buffer Connections Between Modules
`Buffer Connections Between Tasks
`Unified I/O Architecture
`101
`Execution Models
`102
`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
`111
`FIFO Connections
`Grouped Modules
`112
`GPB for Grouped Modules
`Module Scaling
`113
`Selecting Module Scale Factor
`Standard Sound
`116
`Sound Manager Interface
`117
`Standard Sound Task List
`117
`Sample Rate and Frame Rate Changes
`
`107
`108
`108
`
`113
`
`116
`
`121
`
`123
`
`Real Time Manager
`124
`About the Real Time Manager
`Real Time Manager Structure
`124
`Guaranteed Processing Bandwidth
`Devices and Clients
`127
`Tasks
`130
`Modules
`131
`131
`Module Definition
`Execution Flow for Modules
`Sections
`133
`Section Definition
`133
`Section Flags and Data Types
`Connecting Sections
`135
`
`131
`
`134
`
`Chapter 4
`
`vi
`
`126
`
`PRIOR-ART _0009441
`
`APPLE-PUMA-0009761
`
`PUMA Exhibit 2004
`Apple v. PUMA, IPR2016-01114
`6 of 506
`
`
`
`136
`
`149
`
`153
`
`155
`
`Using the Real Time Manager
`137
`Accessing the DSP
`Creating a Task
`140
`Loading a Module
`141
`Getting Data
`143
`147
`Putting the Task to Work
`Getting Off the DSP Task List
`Sending Messages
`152
`From DSP to Host
`152
`From Host to DSP
`153
`Message Action Procedure
`Message Format
`154
`Real Time Manager Reference
`Client Routines
`155
`Device Routines
`157
`Task API Routines
`163
`Module API Routines
`168
`Section API Routines
`173
`FIFO API Routines
`175
`Summary of the Real Time Manager
`Constants
`184
`Data Types
`188
`189
`Data Structures
`Trap Macros and Routine Selectors
`
`184
`
`194
`
`Chapter 5
`
`203
`
`DSP Operating System
`About DSP Modules
`204
`205
`DSP3210 Register Model
`206
`32-Bit Data Transfers
`DSP Program Information for the Macintosh Programmer
`Input and Output Sections
`206
`Parameter Sections
`207
`GPB Scaling Vectors
`207
`Grouping Assumptions
`207
`Run-Time Environment
`207
`DSP Operating System Reference
`Creating a Module
`208
`Building a Section
`210
`Code and Variables
`212
`Data Input
`216
`Data Output
`219
`DSP Operating System Macros
`General Manipulation Macros
`Section Manipulation Macros
`Module Manipulation Macro
`
`207
`
`223
`223
`225
`228
`
`206
`
`vii
`
`PRIOR-ART _0009442
`
`APPLE-PUMA-0009762
`
`PUMA Exhibit 2004
`Apple v. PUMA, IPR2016-01114
`7 of 506
`
`
`
`229
`Task Manipulation Macros
`230
`FIFO Manipulation Macros
`GPB Manipulation Macros
`235
`237
`Semaphore Manipulation Macros
`239
`Message Manipulation Macro
`Summary of the DSP Operating System
`Constants
`240
`Routines
`252
`
`240
`
`Part 3
`
`Speech Synthesis and Recognition
`
`261
`
`Chapter 6
`
`viii
`
`263
`
`264
`265
`266
`
`267
`
`268
`
`269
`
`273
`
`286
`
`298
`299
`
`307
`
`Speech Manager
`Speech Manager Overview
`Speech Manager Concepts
`Using the Speech Manager
`Getting Started
`266
`Determining If the Speech Manager Is Available
`266
`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
`280
`Advanced Speech Controls
`285
`Converting Text Into Phonemes
`Getting Information About a Speech Channel
`Advanced Control Routines
`291
`Application-Defined Pronunciation Dictionaries
`Associating a Dictionary With a Speech Channel
`Creating and Editing Dictionaries
`301
`Advanced Voice Information Routine
`301
`Embedded Speech Commands
`302
`302
`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
`
`309
`
`PRIOR-ART _0009443
`
`APPLE-PUMA-0009763
`
`PUMA Exhibit 2004
`Apple v. PUMA, IPR2016-01114
`8 of 506
`
`
`
`Chapter 7
`
`Chapter 8
`
`310
`
`Summary of the Speech Manager
`Constants
`310
`Data Types
`312
`Speech Manager Routines
`Callback Prototypes
`315
`Error Return Codes
`316
`
`314
`
`317
`
`322
`
`326
`
`328
`
`Introduction to Speech Recognition
`How Does Casper Work?
`318
`Software Installation
`319
`Using the Microphone
`321
`Getting Started
`321
`Setting Your Computer's Name
`Choosing Speech Feedback
`323
`Setting the Attention Key
`324
`The Casper User Interface
`324
`Operational Control
`324
`Feedback Control
`325
`Speech Macro Editor
`326
`Scripting Tool Requirements
`AppleScript
`326
`QuicKeys
`327
`327
`User Requirements
`Using the Speech Macro Editor
`Recording a New Macro
`329
`Renaming a Macro
`330
`Saving Macro Changes
`Loading Macros
`330
`Built-in Speech Rules and Grammar
`Performance
`332
`Real-Time Response
`333
`Types of Errors
`Acceptable Limits or Constraints
`
`330
`
`332
`
`331
`
`333
`
`335
`
`Speech Rules
`Overview
`336
`342
`Speech Rules Files
`Speech Rules File Syntax
`Command Rules
`345
`Phrases and AppleScript Clauses
`Internal Category Rules
`348
`External Category Rules
`348
`
`345
`
`347
`
`ix
`
`PRIOR-ART _0009444
`
`APPLE-PUMA-0009764
`
`PUMA Exhibit 2004
`Apple v. PUMA, IPR2016-01114
`9 of 506
`
`
`
`349
`350
`
`Context Specifiers
`Default Statements
`Global Scripts
`351
`352
`CompileRules Error Messages
`354
`Apple Events Speech Events
`An Example: A Simple Checkbook
`
`354
`
`Part 4
`
`System Software Modifications
`
`359
`
`Chapter 9
`
`x
`
`361
`
`362
`
`364
`
`367
`
`SCSI Manager 4.3
`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
`Implementation
`368
`Optional Features Not Supported in the SIM
`Compatibility and Emulation
`370
`Virtual Bus
`371
`372
`Data Transfer Descriptions
`Guidelines for SCSI Device Driver Developers
`373
`Booting and Drive Mounting
`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
`SCSI Manager Parameter Block
`Routines
`386
`386
`Driver Routines
`SCSI Interface Module Calls to Transport
`Transport Calls to SCSI Interface Modules
`
`380
`
`381
`
`382
`
`370
`
`373
`
`377
`
`397
`399
`
`PRIOR-ART _0009445
`
`APPLE-PUMA-0009765
`
`PUMA Exhibit 2004
`Apple v. PUMA, IPR2016-01114
`10 of 506
`
`
`
`Summary of the SCSI Manager 4.3
`Constants
`400
`Data Type
`403
`Routines
`404
`
`400
`
`405
`
`DMA Serial Driver
`Architecture
`406
`Changes in Implementation
`Interrupt Handling
`407
`DMA Versus Non-DMA Transmissions
`408
`PollProc Mechanism
`DMA Use
`408
`
`407
`
`409
`
`Video Driver
`410
`Video Television Output
`New Control and Status Routines
`NuBus Block Moves
`411
`412
`Configuration ROM Programming
`Using the Trap Macro SlotBlockXferCtI
`
`411
`
`408
`
`412
`
`New Age Floppy Disk Driver
`Floppy Disk Support
`414
`Programming Interface Changes
`Operational Compatibility
`415
`
`414
`
`413
`
`Chapter 10
`
`Chapter 11
`
`Chapter 12
`
`Chapter 13
`
`Virtual Memory Manager
`
`417
`
`Appendix A
`
`DSP d Commands for MacsBug
`Getting Started
`421
`Using the d Commands
`d Commands Reference
`
`421
`423
`
`421
`
`xi
`
`PRIOR-ART _0009446
`
`APPLE-PUMA-0009766
`
`PUMA Exhibit 2004
`Apple v. PUMA, IPR2016-01114
`11 of 506
`
`
`
`Appendix B
`
`Appendix C
`
`xii
`
`427
`
`Bug Lite User's Guide
`Getting Started
`427
`Installation
`427
`What You See When You Launch BugLite
`Tools of the Trade
`429
`Using BugLite
`430
`Getting Information
`Task Info Window
`Module Info Window
`Section Information
`
`434
`434
`434
`436
`
`428
`
`438
`
`Snoopy User's Guide
`Getting Started
`437
`Installation
`437
`What You See When You Launch Snoopy
`Task/Module/ Section Lists
`438
`The Data Display Window
`438
`Run/Store Address Pop-up Menu
`PC Column
`440
`The Breakpoint Column
`Pane Resizers
`440
`Using Snoopy
`440
`Menu Bar
`441
`441
`Control Menu
`Setting and Clearing Breakpoints
`Breakpoint Restrictions
`442
`443
`Single Stepping
`Inspect Menu
`443
`Formatting
`444
`Editing Data
`444
`Windows Menu
`445
`Additional Information Windows
`Current PC
`446
`The DSP Operating System Routines
`The EVT
`447
`On-Chip SRAM
`Registers
`448
`Standard Menus
`Find Menu
`449
`Module Menu
`451
`
`437
`
`440
`
`448
`
`449
`
`439
`
`442
`
`445
`
`446
`
`PRIOR-ART _0009447
`
`APPLE-PUMA-0009767
`
`PUMA Exhibit 2004
`Apple v. PUMA, IPR2016-01114
`12 of 506
`
`
`
`Appendix 0
`
`Mechanical Details
`
`453
`
`Glossary
`
`477
`
`Index
`
`483
`
`xiii
`
`PRIOR-ART _0009448
`
`APPLE-PUMA-0009768
`
`PUMA Exhibit 2004
`Apple v. PUMA, IPR2016-01114
`13 of 506
`
`
`
`PRIOR-ART _0009449
`
`APPLE-PUMA-0009769
`
`PUMA Exhibit 2004
`Apple v. PUMA, IPR2016-01114
`14 of 506
`
`
`
`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
`
`11
`
`Functional diagram
`ADB socket
`21
`23
`Serial port connectors
`Macintosh Centris 660AV internal SCSI device space
`24
`Macintosh Quadra 840AV internal SCSI device space
`25
`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
`Video timing diagram
`36
`39
`Sound I/O components
`Macintosh Centris 660AV accessory card mounting
`DAV connection on a NuBus card
`43
`Singer sound frame
`44
`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
`
`31
`
`40
`
`45
`
`53
`54
`
`10
`17
`
`22
`23
`
`External dimensions
`Clock frequencies
`19
`DRAM configurations
`DRAM access times
`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
`Priority of DMA channel access
`30
`Video input connector pin assignments
`VRAM sizes and monitor color depths
`
`33
`34
`
`28
`
`xv
`
`PRIOR-ART _0009450
`
`APPLE-PUMA-0009770
`
`PUMA Exhibit 2004
`Apple v. PUMA, IPR2016-01114
`15 of 506
`
`
`
`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
`NuBus pin assignments
`41
`42
`Power budget for each slot card
`43
`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
`
`47
`49
`
`Chapter 3
`
`Introduction to Real-Time Data Processing
`
`59
`
`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
`
`xvi
`
`65
`
`69
`
`62
`
`72
`72
`
`74
`
`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
`85
`The module data structure
`86
`The section data structure
`86
`Dual-container AutoCache example
`Data structure overview
`91
`Example of FIFO buffers
`92
`The FIFO and its data header
`93
`Code module data flow with AIAOs
`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
`Standard sound task list
`118
`Equalizer used as a recorder task
`
`80
`
`88
`
`94
`
`119
`
`98
`
`112
`
`PRIOR-ART _0009451
`
`APPLE-PUMA-0009771
`
`PUMA Exhibit 2004
`Apple v. PUMA, IPR2016-01114
`16 of 506
`
`
`
`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
`On-chip and off-chip addresses
`79
`Run-time AutoCache flag combinations
`Run-time DemandCache flag combinations
`
`105
`110
`
`Chapter 4
`
`Real Time Manager
`
`123
`
`147
`
`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
`
`127
`132
`
`125
`DSP subsystem overview
`Examples of different GPB values
`Examples of different execution paths
`Section interconnection
`136
`Task example
`137
`Task after loading the CD-XA player module
`CD-XA player module structure
`142
`Module structure after DSPNewFIFO call
`144
`Task structure after DSPLoaclModule call
`144
`Sections contained in the equalizer module
`145
`CD-XA player with DSPConnectSections to equalizer
`Message passing from DSP to host
`153
`FIFO threshold
`184
`
`142
`
`134
`Section flags
`Section data-type flags
`Setti ng up a task
`138
`Task insertion locations
`Removing a task
`149
`Message masks
`182
`
`135
`
`148
`
`126
`DSP bandwidth structure
`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
`DSP message structure
`
`205
`208
`240
`
`DSP3210 register assignments
`Section flags
`211
`
`205
`
`xvii
`
`PRIOR-ART _0009452
`
`APPLE-PUMA-0009772
`
`PUMA Exhibit 2004
`Apple v. PUMA, IPR2016-01114
`17 of 506
`
`
`
`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
`
`266
`
`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
`
`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
`
`Table 7-1
`
`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
`
`CAM to ACAM terminology conversion
`Old call parameter conversion
`379
`SCSI Manager 4.3 function codes
`388
`
`366
`
`Listing 9-1
`Listing 9-2
`
`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
`Task flags
`Module flags
`Section flags
`Section types
`
`423
`423
`425
`425
`426
`
`xviii
`
`PRIOR-ART _0009453
`
`APPLE-PUMA-0009773
`
`PUMA Exhibit 2004
`Apple v. PUMA, IPR2016-01114
`18 of 506
`
`
`
`Appendix B
`
`Bug Lite 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
`
`428
`Task window
`429
`Open File dialog box
`Graphical representation of a task
`Graphical representation of a module
`Task connected to a module
`431
`Disk play of "funky" file
`432
`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
`
`430
`431
`
`432
`
`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
`
`439
`440
`
`441
`
`442
`
`443
`
`438
`DSP Control window
`Real Time Tasks window
`439
`Run/Store Address pop-up menu
`Vertical and horizontal pane resizers
`441
`Menu bar
`441
`Control menu
`Control commands after break
`Setting breakpoints
`442
`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
`DSP Operating System Routines window
`EVT window
`447
`On-Chip SRAM window
`Example of SRAM layout
`Registers window
`449
`Find menu
`449
`Find Command dialog box
`Find Data Types menu
`Search In selection menu
`Module menu
`451
`Error in loading symbolic table
`
`448
`448
`
`450
`450
`451
`
`452
`
`433
`
`447
`
`Appendix D
`
`Mechanical Details
`
`453
`
`Figure 0-1
`Figure 0-2
`Figure 0-3
`
`CD bezel for the Macintosh Centris 660AV
`Blank bezel for the Macintosh Centris 660AV
`Mounting sled for 5.25-inch SCSI devices
`
`455
`457
`459
`
`xix
`
`PRIOR-ART _0009454
`
`APPLE-PUMA-0009774
`
`PUMA Exhibit 2004
`Apple v. PUMA, IPR2016-01114
`19 of 506
`
`
`
`Figure 0-4
`Figure 0-5
`Figure 0-6
`Figure 0-7
`Figure 0-8
`Figure 0-9
`
`Figure 0-10
`
`Figure 0-11
`
`Shield for the CO 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-
`471
`card bracket
`EMI shield for the Macintosh Centris 660AV accessory-
`card bracket
`473
`NuBus adapter card for the Macintosh Centris 660AV
`
`461
`
`469
`
`475
`
`xx
`
`PRIOR-ART _0009455
`
`APPLE-PUMA-0009775
`
`PUMA Exhibit 2004
`Apple v. PUMA, IPR2016-01114
`20 of 506
`
`
`
`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(cid:173)
`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:
`
`• Chapter 1, "The Macintosh Quadra 840AV and Macintosh Centris 660AV
`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.
`
`Part 2, "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:
`
`• 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.
`
`xxi
`
`PRIOR-ART _0009456
`
`APPLE-PUMA-0009776
`
`PUMA Exhibit 2004
`Apple v. PUMA, IPR2016-01114
`21 of 506
`
`
`
`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:
`
`• 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 840AV 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:
`
`• Chapter 9, "SCSI Manager 4.3," describes the new SCSI Manager.
`
`• 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:
`
`• 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.
`
`xxii
`
`PRIOR-ART _0009457
`
`APPLE-PUMA-0009777
`
`PUMA Exhibit 2004
`Apple v. PUMA, IPR2016-01114
`22 of 506
`
`
`
`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 840AV 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
`
`• digital signal processing, using an AT&T DSP3210 chip
`
`• video input and output facilities in NTSC, PAL, and SECAM formats
`
`• high-quality sound processing
`
`•
`
`• direct memory access for peripheral devices
`integrated telephone II 0 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 840AV 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.
`
`xxiii
`
`PRIOR-ART _0009458
`
`APPLE-PUMA-0009778
`
`PUMA Exhibit 2004
`Apple v. PUMA, IPR2016-01114
`23 of 506
`
`
`
`PREFACE
`
`Digital Signal Processing
`The Macintosh Quadra 840AV and Macintosh Centris 660AV 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, "Introduction 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 and from the DSP. The
`Real Time Manager also handles system memory management for the DSP
`and automatically locks and unlocks memory that is accessed by both DSP
`and Macintosh software. Chapter 4, "Real Time Manager," describes these
`functions in detail.
`
`The Real Time Manager coordinates usage of the DSP chip through a new
`concept called guaranteed processing bandwidth (CPB). This type of control
`guarantees that any application that is granted access to the DSP will always
`process the needed data at the time required.
`
`The DSP operating system, contained in the DSP chip, provides the services
`that DSP code needs to drive the chip and work with the Macintosh
`Operating System