Chapter I Introduction I.1 Scope I.2 Structure of the Specification I.3 Conventions I.4 Recommended vs. Mandatory Chapter II CD-I Disc Format II.1 General II.1.1 Scope II.1.2 Conventions II.2 CD-I Disc Specification II.2.1 Track Organization II.2.2 Lead-in Area II.2.3 Program Area II.2.4 Lead-out Area II.2.5 Subcode P and Q channels II.3 CD-I Track Specification II.3.1 CD-I Track Layout II.4 CD-I Sector Specification II.4.1 Sector Layout II.4.1.1 General II.4.1.2 Byte Order II.4.2 Scrambling II.4.3 Synchronization Field II.4.4 Header Field II.4.5 Subheader Field II.4.5.1 General Layout II.4.5.2 Subheader Definitions II.4.5.3 Submode II.4.6 General Data Classes II.4.7 Form 1 Sector II.4.7.1 General Layout II.4.7.2 Error Detection Code Field II.4.7.3 Error Correction Code Field II.4.8 Form 2 Sector II.4.8.1 General Layout II.4.8.2 Reserved Field II.4.9 Empty and Message Sectors II.4.9.1 Empty Sector II.4.9.2 Message Sector II.5 CD-I Encoder Model II.5.1 CD-I Disc Encoder Model II.5.2 CD-I Physical Sector Formatter II.6 CD-I Decoder Model II.6.1 CD-I Decoder Model II.6.2 CD-I Sector Processor II.6.3 Byte Order: After the Sector Processor Chapter III Data Retrieval Structure III.1 General III.2 Disc Label III.2.1 General Structure of the Disc Label III.2.2 Detailed Specification of the File Structure Volume Descrip. Record III.2.3 Detailed Specification of a Terminator Record III.2.4 Location of a Disc Label III.2.5 Sector Subheader Format of Disc Label III.2.6 Location of Data Track and Music Tracks III.3 Disc Directory III.3.1 General III.3.2 Directory Structure III.3.3 Directory Search Method III.3.4 Sector Subheader Format III.4 Files III.4.1 General III.4.2 Standard Files III.4.3 Real-time Files III.4.4 Interleaving Files III.4.4.1 General III.4.4.2 File Number Chapter IV Audio Data Representations IV.1 General Audio Encoding IV.2 Sound Quality Levels IV.3 Audio Sector Data Format IV.3.1 General IV.3.2 Subheader Bytes IV.3.2.1 File Number IV.3.2.2 Channel Number IV.3.2.3 Submode IV.3.2.4 Coding Information IV.3.3 Audio Block IV.3.4 Sound Group IV.3.5 Level A Audio IV.3.6 Level B and Level C Audio IV.3.7 Audio Sector Interleaving IV.4 Audio Data Encoding IV.4.1 General IV.4.2 ADPCM Encoder IV.4.3 Sound Parameters IV.5 ADPCM Decoder IV.5.1 Audio Decoder Model IV.5.2 Audio Processing Unit IV.5.3 ADPCM Decoder IV.5.4 Soundmap Unit IV.5.5 Microprocessing Unit IV.6 Audio Data Rearrangements IV.6.1 Non Real-time Rearrangements IV.6.2 Real-time Rearrangements IV.6.3 Audio Mixing Control Unit IV.7 Extended Audio Playing Time Chapter V Real-time Video Data Representations V.1 General V.1.1 Introduction V.1.2 Bit & Byte Ordering and Reserved Conventions V.1.3 The Video Encoding/Decoding Chain V.2 Visual Presentation/Image Structure V.2.1 General V.2.2 Resolution V.2.2.1 Normal Resolution V.2.2.2 Derived Resolutions V.2.3 Safety Area V.2.4 Recommended Display Timing V.2.4.1 Pixel Aspect Ratios V.2.5 Image Sizes V.2.6 Planes V.2.7 Sub-screens V.3 Image Encoding V.3.1 Image Formats V.3.1.1 525 and 625 Line Dedicated Formats V.3.1.2 525/625 Line Compatible Format V.3.1.3 Other Image Formats V.3.1.4 Meaning of 'Compatibility' V.3.2 Encoder Timing and Image Sizes V.3.3 Image Coding Methods V.3.4 Natural Images: DYUV V.3.4.1 DYUV Encoding Model V.3.4.1.1 Matrixing and Normalisation V.3.4.1.2 Filtering and Subsampling V.3.4.1.3 Delta Coding V.3.5 High Resolution Natural Images: DYUV + QHY V.3.5.1 The Coding Scheme V.3.5.2 Encoding the QHY Data V.3.5.3 QHY Quantisation Levels V.3.6 Graphics and Text V.3.6.1 General V.3.6.2 Absolute RGB V.3.6.3 Color Lookup Table V.3.7 Runlength Coding V.3.7.1 Run-coded 7-bit CLUT V.3.7.2 Run-coded 3-bit CLUT V.4 The Video Decoder V.4.1 General Description V.4.2 Display Scanning V.4.3 Planes and Paths V.4.4 Image Representation and Decoding V.4.4.1 General V.4.4.1.1 Representations in Memory V.4.4.1.2 RGB Levels V.4.4.2 DYUV V.4.4.2.1 Representation in Memory V.4.4.2.2 Decoding Model V.4.4.2.3 DYUV Absolute Start Values V.4.4.3 High Resolution DYUV + QHY V.4.4.3.1 Representation in Memory V.4.4.3.2 Decoding Model V.4.4.3.3 Use of QHY for High Resolution Graphics V.4.4.3.4 Loading QHY Quantization Levels V.4.4.4 Absolute RGB V.4.4.5 CLUT V.4.4.5.1 8-bit CLUT V.4.4.5.2 7-bit CLUT V.4.4.5.3 4-bit CLUT V.4.4.6 Runlength Coded CLUT V.4.4.6.1 Runlength 7-bit CLUT V.4.4.6.2 Runlength 3-bit CLUT V.4.4.7 CLUT Organization V.4.4.8 Allowed Image Coding Combinations V.4.4.9 Allowed Image Coding Resolutions V.4.5 Display Control Facilities V.4.5.1 Display Control Program V.4.5.2 Line Pointer Tables V.4.5.2.1 Image Line Pointer Table V.4.5.2.2 Display Line Start Pointers V.4.6 Display Control Functions V.4.6.1 Selecting Image Coding Methods V.4.6.2 Loading DYUV Start Values V.4.7 Error Concealment V.4.7.1 General V.4.7.2 Even/Odd Line Separation V.4.7.3 Concealment Techniques V.4.8 525/625 Line Image Interchange V.5 Visual Effects V.5.1 General V.5.2 Cut V.5.3 Scroll V.5.3.1 Image Positioning V.5.3.2 Scroll V.5.3.2.1 Scroll of DYUV Images V.5.3.2.2 Scroll of Run-length Images V.5.4 Partial Update V.5.4.1 Rectangular Updates V.5.4.2 Irregular Updates V.5.4.3 Partial Update of DYUV Images V.5.4.4 Partial Update of Runlength Images V.5.5 CLUT Update V.5.5.1 CLUT Animation V.5.5.2 Dynamic CLUT Update V.5.5.3 Dual 7-bit CLUT V.5.6 Synchronization to Display Scanning V.5.7 Overlay V.5.7.1 Plane Order V.5.7.2 Transparency Mechanisms V.5.7.2.1 Transparency Bit V.5.7.2.2 Color Key V.5.7.2.3 Transparency via Mattes V.5.7.3 Transparency Control V.5.8 Wipes V.5.8.1 Two-plane Wipes V.5.8.2 Single-plane Wipes V.5.9 Image Contribution Factors V.5.9.1 Image Mixing V.5.9.2 Fades and Dissolves V.5.10 Mattes V.5.10.1 Matte Mechanism V.5.10.2 Matte Commands V.5.10.3 Loading the Matte Control Registers V.5.11 Mosaics V.5.11.1 Basic Facilities V.5.11.1.1 Pixel Hold V.5.11.1.2 Pixel Repeat V.5.11.1.3 Line Hold/Repeat V.5.11.2 Effects V.5.11.2.1 Granulation V.5.11.2.2 Magnification/Zoom V.5.11.2.3 Reduced Resolution V.5.12 Cursor V.5.13 Backdrop V.5.14 Interlace V.6 On-disc Coding Formats V.6.1 General V.6.2 Video Data Sequences V.6.2.1 Packing of VDSQs V.6.3 Video Coding Information Byte V.6.3.1 Format V.6.3.2 Example of Application Specific Coding V.6.4 Image Formats V.6.4.1 General V.6.4.2 RGB555 Images V.6.4.3 Error Concealment V.6.4.4 High Resolution Images V.6.4.4.1 DYUV & QHY V.6.4.4.2 Compatibility with the Base Case V.6.5 Pixel Data Formats V.6.5.1 Natural Images V.6.5.1.1 DYUV V.6.5.1.2 QHY V.6.5.2 RGB555 V.6.5.3 Color Lookup Table V.6.5.3.1 8-bit CLUT V.6.5.3.2 7-bit CLUT V.6.5.3.3 4-bit CLUT V.6.5.4 Run Length Encoded Images V.6.5.4.1 Run-coded 7-bit CLUT V.6.5.4.2 Run-coded 3-bit CLUT Chapter VI Program-related Data Representations VI.1 General VI.2 Executable Object Code VI.2.1 Object Code Files VI.2.2 Instruction Set Summary VI.2.3 System Modules VI.3 Data to be Processed by an Application VI.3.1 Character Sets VI.3.1.1 CD-I Default Character Set VI.3.1.2 Other Character Sets VI.3.2 Phonetic Coding VI.3.3 Binary Data VI.4 Subheader Values VI.4.1 General VI.4.2 Coding Information Byte Chapter VII - Compact Disc Real Time Operating System (CD-RTOS) VII.1 Kernel VII.1.1 General VII.1.1.1 CD-RTOS User State Service Request Summary VII.1.1.2 CD-RTOS I/O Service Request Summary VII.1.1.3 CD-RTOS System State Service Request Summary VII.1.1.4 Signal Handling Facilities VII.1.1.4.1 F$Mask VII.1.1.4.2 F$Alarm (user state call) A$Delete A$Set A$Cycle A$AtDate A$AtJul VII.1.1.4.3 F$Alarm (system state call) VII.1.2 CD-RTOS Startup Procedures Manufacturer dependent routines CD-RTOS routines Initial process routines VII.1.3 Hardware Configuration Status Descriptor VII.1.3.1 General VII.1.3.2 Compilation of the CSD VII.2 File Managers VII.2.1 General VII.2.2 Compact Disc File Manager (CDFM) VII.2.2.1 Introduction VII.2.2.2 Features and Concepts VII.2.2.2.1 Execution Classes VII.2.2.2.2 Scheduling VII.2.2.2.3 File Security System VII.2.2.3 CD Service Requests VII.2.2.3.1 I$GetStt - Getstat Functions SS_Opt SS_EOF SS_Size SS_Pos SS_CDFD SS_Path VII.2.2.3.2 I$SetStt - Setstat Functions SS_Seek SS_Abort SS_CDDA SS_Pause SS_Eject SS_Mount SS_Opt SS_Disable SS_Enable SS_Cont SS_Stop SS_Raw SS_ReadTOC SS_Play Play Control Block Play Control List Play Termination SS_CChan VII.2.2.3.3 I$Seek VII.2.2.3.4 I$Read VII.2.2.3.5 I$ReadLn VII.2.2.3.8 I$ChgDir VII.2.2.4 Audio Functions VII.2.2.4.1 Soundmap Control Functions SM_Creat SM_Out SM_Off SM_Close SM_Cncl SM_Info SM_Stat VII.2.2.4.2 Sound Data Manipulation Functions SD_MMix SD_SMix SD_Loop VII.2.2.4.3 Sound Control Functions SC_Atten VII.2.2.5Open and Close Service Requests VII.2.2.5.1 I$Open VII.2.2.5.2 I$Close VII.2.3 User Communications Manager VII.2.3.1 Introduction VII.2.3.2 Features and Concepts VII.2.3.2.1 Environment VII.2.3.2.2 Display Architecture VII.2.3.2.3 Drawmaps VII.2.3.2.4 Display Control Program (DCP) Video events High resolution DCP instructions VII.2.3.2.5 Coordinate Transformation VII.2.3.2.6 Regions VII.2.3.2.7 Graphics Drawing VII.2.3.2.8 Pattern Indirect Drawing VII.2.3.2.9 Character Output Encoding VII.2.3.2.10 Text Fonts VII.2.3.3General UCM Service Requests VII.2.3.3.1 I$Open VII.2.3.3.2 I$Close VII.2.3.3.3 SS_SLink VII.2.3.4 Video and Graphics Functions VII.2.3.4.1 Drawmap Control Functions DM_Creat Drawmap descriptor Drawmap data type Resolution/data type combinations DM_Org DM_Copy DM_Exch DM_TCpy DM_TExc DM_Write DM_IrWr DM_Read DM_WrPix DM_RdPix DM_Cncl DM_Close DM_DMDup VII.2.3.4.2 Graphics Cursor Functions GC_Pos GC_Show GC_Hide GC_Ptn GC_Col GC_Org GC_Blnk VII.2.3.4.3 Regions RG_Creat RG_Isect RG_Union RG_Diff RG_XOR RG_Move RG_Del VII.2.3.4.4 Drawing Parameter Functions DP_Ptn DP_PAln DP_SCMM DP_SCR DP_GFnt DP_AFnt DP_Dfnt DP_RFnt DP_Clip DP_PnSz DP_PStyl DP_TCol VII.2.3.4.5 Graphics Drawing Functions DR_Dot DR_Line DR_PLin DR_CArc DR_EArc DR_Rect DR_ERect DR_PGon DR_Circ DR_CWdg DR_Elps DR_EWdg DR_DRgn DR_BFil DR_FFil DR_Copy DR_Text DR_JTxt VII.2.3.4.6 Display Control Functions DC_CrFCT DC_RdFCT DC_WrFCT DC_RdFI DC_WrFI DC_DlFCT DC_CrLCT DC_RdLI DC_WrLI DC_DlLCT DC_RdLCT DC_WrLCT DC_PRdLCT DC_PWrLCT DC_NOP DC_SSig DC_Relea DC_SetCmp DC_Intl DC_FLnk DC_LLnk DC_Exec VII.2.3.4.7 Video Inquiry Functions VIQ_TxtL VIQ_CPos VIQ_JCPs VIQ_FDta VIQ_GDta VIQ_RGInfo VIQ_PntR VIQ_RLoc VIQ_DMInfo VII.2.3.4.8 Character Output Functions I$WriteLn I$Write CO_COD CO_SCMM CO_AFnt CO_DFnt VII.2.3.4.9 CRT Terminal Emulation Functions Cursor Up Cursor Down Cursor Right Cursor Left Cursor Home Carriage Return Cursor Address Delete Line Insert Line Show Cursor Hide Cursor Clear to End of Line Clear to End of Screen Start Reverse Video End Reverse Video Start Underlining End Underlining Clear Screen Insert Character Delete Character Turn On Auto Wrap Turn Off Auto Wrap VII.2.3.5 Pointer Input Functions PT_Coord PT_SSig PT_Relea PT_Org PT_Pos VII.2.3.6 Keyboard Input Functions I$Read KB_Rdy KB_Read KB_SSig KB_Rel KB_Repeat KB_Stat VII.2.4 Non-volatile RAM File Manager (NRF) VII.2.4.1 General VII.2.4.2 I$Create VII.2.4.3 I$Open VII.2.4.4 I$Delete VII.2.4.5 I$Seek VII.2.4.6 I$Read, I$ReadLn VII.2.4.7 I$Write, I$WriteLn VII.2.4.8 I$Close VII.2.4.9 Status Functions VII.2.4.10 Changing and Making Directories VII.2.4.11 NRF Directories VII.2.5 Error codes VII.3 Device Drivers VII.3.1 Compact Disc VII.3.1.1 Introduction VII.3.1.2 Basic Functional Requirements of Drivers VII.3.1.3 Driver Module Format VII.3.1.4 Data Structures VII.3.1.4.1 CDFM Device Descriptors VII.3.1.4.1.1 Standard Device Descriptor Header Fields VII.3.1.4.1.2 Device Descriptor Option Fields VII.3.1.4.2 CDFM Path Descriptors VII.3.1.4.2.1 Standard Path Descriptor Fields VII.3.1.4.2.2 File Manager Path Descriptor Fields VII.3.1.4.2.3 Option Table Path De- scriptor VII.3.1.4.3 CDFM Device Driver Static Storage VII.3.1.4.3.1 Drive Tables VII.3.1.5 CDFM Device Driver Subroutines VII.3.1.5.1 The INIT Subroutine VII.3.1.5.2 The READ Subroutine VII.3.1.5.3 The WRITE Subroutine VII.3.1.5.4 The GETSTAT and SETSTAT Subroutines SS_Raw SS_Read TOC SS_Seek SS_CDDA SS_Mount VII.3.1.5.5 The TERMINATE Subroutine VII.3.1.5.6 The TRAP Subroutine VII.3.1.5.7 The PLAY Subroutine VII.3.1.5.8 The IRQ Service Request Subroutine VII.3.2 UCM Driver Interface VII.3.2.1 Driver and Descriptor Organization and Initialization VII.3.2.2 Data Structures VII.3.2.2.1 Device Descriptor Format VII.3.2.2.1.1 Standard Device Descriptor Fields VII.3.2.2.1.2 Device Descriptor Option Fields VII.3.2.2.2 Path Descriptor Format VII.3.2.2.2.1 Standard Fields VII.3.2.2.2.2 File Manager Fields VII.3.2.2.2.3 Options Fields VII.3.2.2.3 Driver Static Storage Format VII.3.2.3 Driver Functions VII.3.2.3.1 Init VII.3.2.3.2 Read VII.3.2.3.3 Write VII.3.2.3.4 GetStat and SetStat VII.3.2.3.5 Term VII.3.2.3.6 The TRAP Subroutine VII.3.2.3.7 IRQ VII.3.3 NRF Driver Interface VII.3.3.1General VII.3.3.2Device Descriptor Format VII.3.3.2.1 Standard Device Descriptor Fields VII.3.3.2.2 Device Descriptor Option Fields VII.3.3.3Path Descriptor Format VII.3.3.3.1 Standard Fields VII.3.3.3.2 File Manager Fields VII.3.3.3.3 Option Fields VII.3.3.4Driver Static Storage VII.3.3.4.1 Logical Format of NVRAM Area VII.3.3.5Driver Functions VII.3.3.5.1 Init VII.3.3.5.2 Read VII.3.3.5.3 Write VII.3.3.5.4 GetStat and SetStat VII.3.3.5.5 Term Chapter VIII Base Case System VIII.1 Introduction VIII.1.1 General VIII.1.2 Base Case Model VIII.2 CD-I Disc Format VIII.2.1 General VIII.2.2 CD-DA VIII.2.3 Mode 1 VIII.2.4 EDC/ECC VIII.2.5 Sector Data Process Delay VIII.3 Data Retrieval Structure VIII.3.1 General VIII.3.2 Mode 1 VIII.4 Base Case Audio VIII.4.1 General VIII.4.2 Audio Mixing Control VIII.4.2.1 Base Case System Audio Source VIII.4.2.2 External Audio Source VIII.4.3 Audio Decoder Delay VIII.4.4 Audio Output VIII.5 Base Case Video VIII.5.1 Display VIII.5.2 Color Resolution VIII.5.3 Video Functions VIII.5.4 Image Resolution VIII.5.5 Display Control Program VIII.5.6 Mosaic Pixel Repeat Factors VIII.5.7 Mattes VIII.5.8 Video Decoder Delay VIII.5.9 External Video Source VIII.6 Program-Related Data Representations VIII.6.1 General VIII.6.2 Executable Object Code VIII.6.3 Character Sets VIII.7 CD-RTOS VIII.7.1 General VIII.7.2 Kernel VIII.7.3 File Managers VIII.7.3.1 CDFM I$Setstt Functions VIII.7.3.2 CDFM Mode 1 VIII.7.4 Device Drivers VIII.8 System Resources and Performance VIII.8.1 General VIII.8.2 MPU VIII.8.3 RAM VIII.8.4 ROM VIII.8.5 NVRAM VIII.8.6 DMA VIII.8.7 CD-Control Unit VIII.8.8 Interrupt VIII.8.9 X-Y Device VIII.8.10 Clock-Calendar VIII.8.11 CD-Player Appendices A I.1 Glossary of Terms A II.1 Subheader Values A II.1.1 File Number A II.1.2 Channel Number A II.1.3 Submode A II.1.4 Coding Information A II.1.4.1 Audio A II.1.4.2 Video A II.1.4.3 Data A V.1 CCIR Level Assignment A V.2 Guidelines for 525/625 Image Interchange A V.2.1 Introduction A V.2.2 Image Interchange A V.2.2.1 Display Compatibility Mode A V.2.2.2 Fitting the Image to the Display A V.2.2.3 The LCT and Visual Effects A V.2.2.4 Cursor Alignment A V.2.2.5 Pointer Alignment A V.2.2.6 More than One Standard on a Disc A V.2.3 Field Timing A V.2.3.1 Motion Video A V.2.3.2 Object Motion A VII.1 CD-RTOS/OS-9/68000 Op. Sys. Tech. Manual (not present on-line) A VII.2 CD-I Peripherals A VII.2.1 General A VII.2.1.1 Scope A VII.2.1.2 Introduction A VII.2.2 CD-IX A VII.2.2.1 Objective A VII.2.2.1.1 CD-IX Configuration A VII.2.2.1.2 CD-IX Extension Options A VII.2.2.1.3 CD-IX Future Options A VII.2.2.2 CD-IX Configuration A VII.2.2.2.1 CD-I Base Case A VII.2.2.2.2 Display System A VII.2.2.2.3 Keyboard A VII.2.2.2.4 Floppy Disc Drive (3.5 inch) A VII.2.2.3 CD-IX Extension Options A VII.2.2.3.1 Printer A VII.2.2.3.2 Modem A VII.2.2.3.3 Hard Disk Drive A VII.2.2.3.4 RAM Disk A VII.2.2.3.5 MIDI Interface A VII.2.2.3.6 Graphics Co-processor A VII.2.2.3.7 Arithmetic Co-processor A VII.2.2.3.8 Local Area Network A VII.2.3 Implementation Aspects of CD-I Peripherals A VII.2.3.1 General A VII.2.3.2 'Built-in' Peripherals A VII.2.3.3 System Bus Based Peripherals A VII.2.3.4 Interface Based Peripherals A VII.2.4 Hardware Configuration Status Descriptor A VII.2.4.1 General A VII.2.4.2 Device Status Descriptors A VII.2.4.2.1 Device Type Field A VII.2.4.2.2 Device Name Field A VII.2.4.2.3 Device Parameter Field A VII.2.4.2.4 Multiple Presence A VII.2.4.3 CSD Access A VII.2.4.4 Adding New Devices to the CSD A VII.2.5 Functional Specification of CD-I Peripherals A VII.2.5.1 Pointing Devices A VII.2.5.1.1 Classes of Pointing Device A VII.2.5.1.2 Pointer Coordinates A VII.2.5.1.3 Pointer Buttons A VII.2.5.1.4 Pointer Input Functions A VII.2.5.2 Keyboards for Latin Alphabets A VII.2.5.2.1 Keygroups A VII.2.5.2.2 Classes of Keyboard A VII.2.5.2.3 National Versions A VII.2.5.2.4 Code Assignments A VII.2.5.2.5 Keyboard Driver A VII.2.5.2.6 Keyboard Input Functions A VII.2.6 Device Status Descriptors A VII.2.6.1 General A VII.2.6.2 Base Case Devices A VII.2.6.2.1 CD-Control Unit A VII.2.6.2.2 Audio Processor A VII.2.6.2.3 Video Output Processor A VII.2.6.2.4 Non-volatile Random Access Memory (NVRAM) A VII.2.6.2.5 Pointing Device A VII.2.6.3 Base Case Peripherals A VII.2.6.3.1 CD-Player A VII.2.6.3.2 Audio Set A VII.2.6.3.3 Display Monitor A VII.2.6.4 Peripheral Extensions A VII.2.6.4.1 Keyboard