throbber
Developer Note
`
`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

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket