AU694521B2 - Television schedule information transmission and utilization system and process - Google Patents

Television schedule information transmission and utilization system and process Download PDF

Info

Publication number
AU694521B2
AU694521B2 AU26355/95A AU2635595A AU694521B2 AU 694521 B2 AU694521 B2 AU 694521B2 AU 26355/95 A AU26355/95 A AU 26355/95A AU 2635595 A AU2635595 A AU 2635595A AU 694521 B2 AU694521 B2 AU 694521B2
Authority
AU
Australia
Prior art keywords
data
data processing
television schedule
schedule information
television
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired
Application number
AU26355/95A
Other versions
AU2635595A (en
Inventor
Giambattista A Alegiani
Alan R Ebright
Jeffrey J Kochy
John H Roop
Konstantine Sokolik
David P. Warden
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
StarSight Telecast Inc
Original Assignee
StarSight Telecast Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority to US239225 priority Critical
Priority to US08/239,225 priority patent/US5790198A/en
Priority to US08/243,598 priority patent/US5619274A/en
Priority to US243598 priority
Application filed by StarSight Telecast Inc filed Critical StarSight Telecast Inc
Priority to PCT/US1995/005169 priority patent/WO1995031069A1/en
Publication of AU2635595A publication Critical patent/AU2635595A/en
Application granted granted Critical
Publication of AU694521B2 publication Critical patent/AU694521B2/en
Anticipated expiration legal-status Critical
Application status is Expired legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/654Transmission by server directed to the client
    • H04N21/6543Transmission by server directed to the client for forcing some client operations, e.g. recording
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/102Programmed access in sequence to addressed parts of tracks of operating record carriers
    • G11B27/107Programmed access in sequence to addressed parts of tracks of operating record carriers of operating tapes
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/11Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information not detectable on the record carrier
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/19Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier
    • G11B27/28Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording
    • G11B27/30Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording on the same track as the main recording
    • G11B27/3027Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording on the same track as the main recording used signal is digitally coded
    • G11B27/3036Time code signal
    • G11B27/3054Vertical Interval Time code [VITC]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/34Indicating arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/23109Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion by placing content in organized collections, e.g. EPG data repository
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • H04N21/2355Processing of additional data, e.g. scrambling of additional data or processing content descriptors involving reformatting operations of additional data, e.g. HTML pages
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/26291Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists for providing content or additional data updates, e.g. updating software modules, stored at the client
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network, synchronizing decoder's clock; Client middleware
    • H04N21/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4334Recording operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network, synchronizing decoder's clock; Client middleware
    • H04N21/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • H04N21/4345Extraction or processing of SI, e.g. extracting service information from an MPEG stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network, synchronizing decoder's clock; Client middleware
    • H04N21/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4622Retrieving content or additional data from different sources, e.g. from a broadcast channel and the Internet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/47214End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for content reservation or setting reminders; for requesting event notification, e.g. of sport results or stock market
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/633Control signals issued by server directed to the network components or client
    • H04N21/6332Control signals issued by server directed to the network components or client directed to client
    • H04N21/6334Control signals issued by server directed to the network components or client directed to client for authorisation, e.g. by transmitting a key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/84Generation or processing of descriptive data, e.g. content descriptors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/44Receiver circuitry
    • H04N5/445Receiver circuitry for displaying additional information
    • H04N5/44543Menu-type displays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/78Television signal recording using magnetic recording
    • H04N5/782Television signal recording using magnetic recording on tape
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/025Systems for the transmission of digital non-picture data, e.g. of text during the active part of a television frame
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/08Systems for the simultaneous or sequential transmission of more than one television signal, e.g. additional information signals, the signals occupying wholly or partially the same frequency band, e.g. by time division
    • H04N7/087Systems for the simultaneous or sequential transmission of more than one television signal, e.g. additional information signals, the signals occupying wholly or partially the same frequency band, e.g. by time division with signal insertion during the vertical blanking interval only
    • H04N7/088Systems for the simultaneous or sequential transmission of more than one television signal, e.g. additional information signals, the signals occupying wholly or partially the same frequency band, e.g. by time division with signal insertion during the vertical blanking interval only the inserted signal being digital
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/08Systems for the simultaneous or sequential transmission of more than one television signal, e.g. additional information signals, the signals occupying wholly or partially the same frequency band, e.g. by time division
    • H04N7/087Systems for the simultaneous or sequential transmission of more than one television signal, e.g. additional information signals, the signals occupying wholly or partially the same frequency band, e.g. by time division with signal insertion during the vertical blanking interval only
    • H04N7/088Systems for the simultaneous or sequential transmission of more than one television signal, e.g. additional information signals, the signals occupying wholly or partially the same frequency band, e.g. by time division with signal insertion during the vertical blanking interval only the inserted signal being digital
    • H04N7/0882Systems for the simultaneous or sequential transmission of more than one television signal, e.g. additional information signals, the signals occupying wholly or partially the same frequency band, e.g. by time division with signal insertion during the vertical blanking interval only the inserted signal being digital for the transmission of character code signals, e.g. for teletext
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/08Systems for the simultaneous or sequential transmission of more than one television signal, e.g. additional information signals, the signals occupying wholly or partially the same frequency band, e.g. by time division
    • H04N7/087Systems for the simultaneous or sequential transmission of more than one television signal, e.g. additional information signals, the signals occupying wholly or partially the same frequency band, e.g. by time division with signal insertion during the vertical blanking interval only
    • H04N7/088Systems for the simultaneous or sequential transmission of more than one television signal, e.g. additional information signals, the signals occupying wholly or partially the same frequency band, e.g. by time division with signal insertion during the vertical blanking interval only the inserted signal being digital
    • H04N7/0884Systems for the simultaneous or sequential transmission of more than one television signal, e.g. additional information signals, the signals occupying wholly or partially the same frequency band, e.g. by time division with signal insertion during the vertical blanking interval only the inserted signal being digital for the transmission of additional display-information, e.g. menu for programme or channel selection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/08Systems for the simultaneous or sequential transmission of more than one television signal, e.g. additional information signals, the signals occupying wholly or partially the same frequency band, e.g. by time division
    • H04N7/087Systems for the simultaneous or sequential transmission of more than one television signal, e.g. additional information signals, the signals occupying wholly or partially the same frequency band, e.g. by time division with signal insertion during the vertical blanking interval only
    • H04N7/088Systems for the simultaneous or sequential transmission of more than one television signal, e.g. additional information signals, the signals occupying wholly or partially the same frequency band, e.g. by time division with signal insertion during the vertical blanking interval only the inserted signal being digital
    • H04N7/0887Systems for the simultaneous or sequential transmission of more than one television signal, e.g. additional information signals, the signals occupying wholly or partially the same frequency band, e.g. by time division with signal insertion during the vertical blanking interval only the inserted signal being digital for the transmission of programme or channel identifying signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/08Systems for the simultaneous or sequential transmission of more than one television signal, e.g. additional information signals, the signals occupying wholly or partially the same frequency band, e.g. by time division
    • H04N7/087Systems for the simultaneous or sequential transmission of more than one television signal, e.g. additional information signals, the signals occupying wholly or partially the same frequency band, e.g. by time division with signal insertion during the vertical blanking interval only
    • H04N7/088Systems for the simultaneous or sequential transmission of more than one television signal, e.g. additional information signals, the signals occupying wholly or partially the same frequency band, e.g. by time division with signal insertion during the vertical blanking interval only the inserted signal being digital
    • H04N7/0888Subscription systems therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/10Adaptations for transmission by electrical cable
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/162Authorising the user terminal, e.g. by paying; Registering the use of a subscription channel, e.g. billing
    • H04N7/165Centralised control of user terminal ; Registering at central

Description

VE1MRON 4

PCT

oadd'r INIO Nunftr r(00) "Ptlirity D 1 tal pIco WVAQ N I1ILB1 IUA4L PA~U Lat x uX U NIZATIOI'4 rIunternational llllrIcal lbiB/ jr.

INTERNATIONAL APPLICATION PUBLISHED UNDER JI PATENT COOPERAJ IO' REATY (PCT) (51) International Patent Classification 6: (11) I~r atlu i Publication Number: WO 95/31069 H04N 7/087, 7/08 Al (43) International Publication Date: 16 November 1995 (16.11.95) (21) International Application Number: PCT/US95/05169 (81) Designated States: AM, AT, AU, BB, BG, BR, BY, CA, CH, CN, CZ, DE, DK, EE, ES, FI, GB, GE, HU, IS, JP, KE, (22) International Filing Date: 24 April 1995 (24.04.95) KG, KP, KR, KZ, LK, LR, LT, LU, LV, MD, MG, MN, MW, MX, NO, NZ, PL, PT, RO, RU, SD, SE, SG, SI, SK, TJ, TM TT, UA, UZ, VN, European patent (AT, BE, CH, Priority Data: DE, DK, ES, FR, GB, GR, IE, IT, LU, MC, NL, PT, SE), 08/239,225 4 May 1994 (04.05.94) US OAPI patent (BF, BJ, CF, CG, CI, CM, GA, GN, ML, MR, 08/243,598 13 May 1994 (13.05.94) US NE, SN, TD, TG), ARIPO patent (KE, MW, SD, SZ, UG).

(71) Applicant: STARSIGHT TELECAST, INC. [US/US]; 3rd Published floor, 39650 Liberty Street, Fremont, CA 94538 With international search report.

(72) Inventors: ROOP, Johnlm, 3511 Cowper Street, Palo Alto, CA 94306 EBRIGHT, Alan, 16121 Wood Acres Road, Los Gatos, CA 95030 KOCHY, Jeffrey, J.; 3532 Pinnacle Court, San Jose, CA 95132 WARDEN, David, P.O. Box 1386, Redwood City, CA 94064 (US).

SOKOLIK, Konstantine; P.O. Box 7357, Redwood City, CA 94065 ALEGIANI, Giambattista, 74 Landers Avenue, San Francisco, CA 94114 (US).

(74) Agents: HIGGINS, Willis, E. et al.; Cooley Godward Castro Huddleson Tatum, Five Palo Alto Square, 3000 El Camino Real, Palo Alto, CA 94306 (US).

(54) Title: TELEVISION SCHEDULE INFORMATION TRANSMISSION AND UTILIZATION SYSTEM AND PROCESS (57) Abstract Television schedule information transmission and utilization systems (50A-50D) transmit TV schedule data and associated network control messages provided by computer (54) as packets via the Video Blanking Interval (VBI) lines in the TV signal from various television program providers This data is acquired by regional data processing systems and forwarded by the regional data processing systems to subscriber units (52) and used to construct an internal database. This internal database can be accessed by the subscriber unit (52) to display a TV schedule for the channels that are received by the user's TV.

(Referred to in PCT Gazette No. 04/1996, Section II) FOR THE PURPOSES OF INFORMATION ONLY Codes used to identify States party to the PCT on the front pages of pamphlets publishing international applications under the PCT.

AT Austria AU Australia BB Barbados BE Belgium BF Burkina Faso BG Bulgaria BJ Benin BR Brazil BY Belarus CA Canada CF Central African Republic CG Congo CH Switzerland CI C6te d'Ivoire CM Cameroon CN China CS Czechoslovakia CZ Czech Republic DE Germany DK Denmark ES Spain FI Finland FR France GA Gabon GB United Kingdom GE Georgia GN Guinea GR Greece HU Hungary IE Ireland IT Italy JP Japan KE Kenya KG Kyrgystan KP Democratic People's Republic of Korea KR Republic of Korea KZ Kazakhstan LI Liechtenstein LK Sri Lanka LU Luxembourg LV Latvia MC Monaco MD Republic of Moldova MG Madagascar ML Mali MN Mongolia Mauritania Malawi Niger Netherlands Norway New Zealand Poland Portugal Romania Russian Federation Sudan Sweden Slovenia Slovakia Senegal Chad Togo Tajikistan Trinidad and Tobago Ukraine United States of America Uzbekistan Viet Nam WO 95/31069 1(01/r0f5169 TELEVISION SCHEDULE INFORMATION TRANSMISSION AND UTILIZATION SYSTEM AND PROCESS ORIGIN OF THE INVENTION This application is a continuation in part of copending, commonly assigned Young et al., Pending U.S. Patent Application Serial No. 08/198,538, filed February 18, 1994, and entitled "User Interface for Television Schedule System," which is in turn a file wrapper continuing application of U.S. Patent Applicition Serial No.

07/579,555, filed September 10, 1990, now abandoned. This application is further a continuation in part of copending, commonly assigned Roop et al., Pending U.S.

Patent Application Serial No. 08/239,225, filed May 4, 1994 and entitled "Television Schedule Information Transmission and Utilization System and Process," Attorney Docket STAR-005/OOUS.

BACKGROUND OF THE INVENTION 1. Field of the Invention: The present invention relates generally to a system and method for broadcasting, receiving and using television schedule information. More particularly, it relates to such a system and method in which the television schedule information is broadcast in, the vertical blanking interval (VBI) of a television broadcast, a schedule of television programs for a user's broadcast area or cable system is compiled from the broadcast, and the schedule is displayed on the user's television set for interactive use. As used herein, the term "broadcast" is used in a broad sense to include such transmission modes as cable and telephonic transmission.

2. Description of the Prior Art: It is known in the art to provide an interactive television program schedule system utilizing broadcast schedule information. For example, such a schedule system is disclosed in commonly assigned Young, U.S. Patent 4,706,121, issued November 10, 1987 and the above referenced Young et al. pending application.

In the design of such a schedule system, only a limited amount of memory and data processing capability can be provided in the user's equipment that receives the schedule information broadcast, compiles the schedule for the user's broadcast I I WO 95/31069 ITUS95105169 2 area or cable system, displays the schedule on the user's television set and interacts with the user, while enabling that equipment to be provided at a low enough price for mass marketing. This memory and data processing limitation was recognized by Hallenbeck, U.S. Patent 5,038,211, issued August 6, 1991. The solution proposed by Hallenbeck is to subdivide the schedule information into prioritized categories, store the highest priority category, and as much of the lower priority categories as possible in the amount of memory available. A significant problem with this approach is that less information may be provided about programs in the schedule when there are more programs in the schedule and the need for more information is greatest. Further development in light of the memory and processor limitations of consumer electronics is therefore required.

When schedule information is transmitted as part of a program broadcast signal and a prior art subscriber unit acquires the schedule information from the program broadcast signal, a potential problem arises when previously broadcast programs have been recorded on a VCR and are played back. The prior art subscriber unit lacks any ability to distinguish a video signal generated from a recorded program from a video signal received in real time from a broadcast. As a result, the subscriber unit may overwrite more recent program schedule information acquired from a real time broadcast with older program schedule information coming from a video tape.

Proposals to transmit television schedule information with television broadcast signals often use a low bandwidth transmission mode, such as one or more lines in the vertical blanking interval (VBI) of the television broadcast signals. The use of such low bandwidth transmission modes means that the format and management of the transmissions must be carefully planned in order to avoid practical problems. For example, when a schedule update is to be transmitted, unless special provisions are made for such updates, worst case transmission delay until the update is received and entered in a user's subscriber unit could amount to five hours, the time for transmission of a complete schedule for a week in an NTSC television broadcast signal using one line of the VBI for the schedule information. In the case of last minute schedule changes, such a delay would be unacceptable.

Data encryption is essential for a subscription-based broadcast television schedule system. Without data encryption, the schedule information could be -p s j IAi IrF 6AJ -3acquired and used by pirate user equipment without payment of the subscription fee.

However, decryption of encoded data is a processor intensive, A conventional approach of encrypting the entire schedule information transmission requires a faster and more expensive microprocessor than would otherwise be suitable for the subscriber units.

When implementing a television schedule system on a national or even international basis, provision must be made for different time zones. Adjusting times in the schedule for the different time zones in the process of transmitting the schedule adds substantial overhead to the data transmission, It would be desirable to eliminate the need for such adjustments in S the transmission.

It may be desirable in the operation of a television schedule system to provide the I schedule information embedded at different places in the television signal at different parts of the system in order to avoid the necessity of imposing uniformity throughout the system.

To do so, it is necessary to provide a way for recipients of the schedule information to identify it in the television signal.

S: 15 In the operation of a broadcast television schedule system, acquisition of new schedule o• information by the subscriber units consumes a substantial proportion of available microprocessor processing time. When obsolete schedule information is deleted and new schedule information is acquired, a substantial portion of the new information, such as program titles, duplicates information already present in stored schedule information or to be deleted with the obsolete schedule information. Avoiding the deletion of information that will form part of new schedule information would help to minimise the amount of processor time devoted to the acquisition of new schedule information.

Because of the severe memory limitations in consumer electronic products, it is necessary to use the memory efficiently in order to provide as much information and as much functionality in the subscriber unit as possible with the available memory.

SUMMARY OF THE INVENTION In accordance with the invention there is provided a television schedule information transmission system, which comprises a central data processing system, means connected to 0O said central data processing system for providing schedule information data including day, 1, 15 6,914 -4 time and channel of television programs for a predetermined territory to said central data processing system, said central data processing system including means for formatting the schedule information data for the predetermined territory into a predetermined schedule information transmission format, means coupled to said central data processing system for transmitting the schedule information data for the predetermined territory in the predetermined schedule information transmission formats, a plurality of regional data processing systems, each located in a region of the predetermined territory, said plurality of regional data processing systems each including means for receiving the schedule information "data for the predetermined territory, means for selecting the schedule information data for the region in which each of said plurality of regional data processing systems is located and means for transmitting the schedule information data for the region, and a plurality of subscriber data processing systems in each of the regions, each of said plurality of subscriber data processing systems including means tfor receiving at least a portion of the schedule inbformation data for the region, means for storing the schedule information data received by 15 the subscriber data processing system, means for assembling portions of the schedule information data received by the subscriber data processing system for display to a user of the subscriber data processing system and a display connected to said means for assembling portions of the schedule information data to display the portions of the schedule information data to the user so that the user can use the portions to select television programs for reception.

In another aspect there is provided a method in a television schedule information transmission system which comprises transmitting schedule intformallon data including day, time and channel of television programs for a predetermined territory to a plurality of regional data processing systems each located in a region of the territory, selecting the schedule information data for each region with its regional data processing system, transmitting the schedule information data for each region with its regional data processing system to a plurality of subscriber data processing systems in each region, assembling portions of the schedule information data received by each subscriber data processing system for display to a user of each subscriber data processing system, and displaying the portions of the schedule 0 information data to the user so that the user can use the portions to select television programs i I 'l I' V i r'A for reception.

In another aspect there is provided a television schedule information transmission system comprising a central data processing system for a predetermined territory having means for transmitting television schedule data including day, time and channel of television programs for the predetermined territory and a plurality of subscriber data processing systems in the predetermined territory, means in said central data processing system for transmitting the television schedule data as commands, the commands including instructions for said plurality of subscriber data processing systems in said system and television schedule i information used by the commands in said plurality of subscriber data processing systems to 10 assemble and display a television schedule to the user so that the user can use the television schedule to select television programs for reception.

In another aspect there is provided a television schedule information transmission to•: system, the method which comprises transmitting commands from a central data processing system to a plurality of subscriber data processing systems, the commands including 4 a 15 instructions for the plurality of subscriber data processing systems in said system and television schedule information used by the commands in the plurality of subscriber data processing systems to assemble and display a television schedule, assembling the television schedule from the television schedule information in each of the plurality of subscriber data processing systems, and displaying the television schedule to a user of each of the plurality of subscriber data processing systems.

In another aspect there is provided a television schedule transmission system comprising a central data processing system for a predetermined territory having means for transmitting television schedule data including day, time and channel of television programs for the predetermined territory and a plurality of subscriber data processing systems in the predetermined territory, means in said central data processing system for transmitting a predetermined character string comprising a portion of said television schedule data to said plurality of subscriber data processing systems for use in selecting which television programs to rt ceive, means in each of said plurality of subscriber data processing systems for determining whether the predetermined character string has been acquired by that subscriber 30 data processing system, and means in each of said plurality of subscriber data processing

C.

II I I 2 r13S -6systems for storing the predetermined character string in that subscriber data processing system if it has not already been acquired.

In another aspect there is provided a television schedule information transmission system, the method which comprises transmitting a predetermined character string comprising a portion of the schedule information including day, time and channel of television programs to a plurality of subscriber data p:ocessing systems in said system, determining in each of the plurality of subscriber data processing systems whether the predetermined character string has been acquired by that subscriber data processing system, and storing the predetermined character string in that subscriber data processing system if it has not alheady been acquired.

10 In another aspect there is provided a television schedule information transmission system including a direct broadcast satellite, a central data processing system having means for transmitting television schedule data for the direct broadcast satellite to the direct p a "broadcast satellite, and subscriber data processing systems having means for receiving the television schedule data for the direct broadcast satellite from the direct broadcast satellite, a.

o 15 the improvement which comprises a plurality of regional data processing systems, each .0 a 9 located in a region of a predetermined territory, a means for transmitting television schedule data for the predetermined territory to said plurality of regional data processing systems, said plurality of regional data processing systems each including means for receiving the television o:'.0I schedule data for the predetermined territory, means, coupled to said means for receiving the television schedule data for the territory, for selecting the television schedule data for the region in which each of said plurality of regional data processing systems is located and means, coupled to said means for selecting the television schedule data for the region, for transmitting the television schedule data for the region to a plurality of said subscriber data processing systems in each of the regions.

In another aspect there is provided a television schedule information transmission system, the method which comprises transmitting television schedule data including day, time and channel of' television programs for a direct broadcast satellite to the direct broadcast satellite, receiving the television schedule data for the direct broadcast satellite from the direct broadcast satellite at a subscriber data processing system, transmitting schedule information data including day, time and channel of television programs for a predetermined territory to ij I' t I 5n 1 lI Iv'fi' -7a plurality of regional data processing systems each located in a region of the territory, receiving schedule information data for a predetermined territory in a regional data processing system located in a region of the predetermined territory, selecting the schedule information data for the region in which the regional data processing system is located and transmitting the schedule information data for the region to a subscriber data processing system for use by a user to select television programs for reception.

In still another aspect of the invention, a television schedule information transmission system includes a central data processing system having means for transmitting television schedule data. A subscriber data processing system has means for receiving at least some of 10 the television schedule data transmitted by the central data processing system. The system is improved by providing a subscriber data processing system including a memory for efticiently storing database items comprising the television schedule information. Each of the database items has a handle as an index into a handle table identifying memory locations 1 5corresponding to the handle. This allows physical movement of database items from one memory location to another for garbage collection. This allows holes in the database memory which arise as data ages and is discarded to be recovered and concatenated into large useful memory blocks. This trades "free" microcontroller cycles for memory, which is expensive.

In a still further aspect of the invention, a method in a television schedule information transmission system includes transmitting television schedule data. At least some of the television schedule data is received at a subscriber data processing system as database items comprising the television schedule information. Each of the database items has a handle. The handle is used as an index into a handle table identifying memory locations corresponding to the handle.

In another aspect of the invention, a television schedule information transmission system includes a central data processing system for a predetermined territory having means for transmitting television schedule data for the predetermined territory including updates of television schedule data previously transmitted. There are a plurality of subscriber data processing systems in the predetermined territory. Each of the plurality of subscriber data processing systems includes a receiver for television schedule data and a memory for storing ,0 television schedule data. The memory is coupled to the receiver. The system is improved ,1 A tI I I 'A by including means in the central data processing system for assigning a transmission priority lor hlie updates of television schedule data previously transmitted relative to other television schedule data.

In a further aspect of the invention, a method in a television schedule information transmission system includes establishing a relative priority f'or transmission of the television schedule information between updates of originally transmitted television schedule information and originally transmitted schedule information. The television schedule information is transmitted in accordance with the relative priority. At least some of the S. transmitted television schedule information is received at a subscriber data processing system.

10 In yet another aspect of the invention there is provided a television schedule information transmission system comprising a central data processing system for a predetermined territory having means for transmitting television schedule data including day, time and channel of television programs for the predetermined territory and a plurality of subscriber data processing systems in the predetermined territory, each of said plurality of 15 subscriber data processing systems including a receiver for said television schedule data, a memory for storing said television schedule data, said memory being coupled to said receiver, means in said central data processing system for identifying said television schedule data by S a time relative to other television schedule data, means in said subscriber data processing •system for determining if said television schedule data received by said subscriber data processing system has a time identification later than a time identification of television schedule data stored in said memory, and a display connected to said means for assembling portions of the schedule information data to display the portions of the schedule information data to the user so that the user can use the portions to select television programs for reception.

In yet a further aspect of the invention, a method in a television schedule transmission system includes transmitting television schedule data with an identification of the transmitted television schedule data by time relative to other transmitted television schedule data. The transmitted television schedule data is received with a subscriber data processing system. The television schedule data is stored in a, memory of the subscriber data processing system.

Television schedule data is subsequently supplied including an identification by time relative -9lo other television schedule data. The identification by time of the subsequently supplied television schedule data is compared with the identiication by time of the television schedule data stored in the memory. The stored television schedule data is replaced with the subsequently supplied television schedule data if the identification by time of the subsequently supplied television schedule data is later than the identification by time of the stored television schedule data. The stored television schedule data is maintained in the memory if the identification by time of the stored television schedule data is later than the identification by time of the subsequently supplied television schedule data.

In another aspect of the invention, a television schedule information transmission *i 10 system includes a central data processing system for a predetermined territory having means Sfor transmitting television schedule data for the predetermined territory and a plurality of subscriber data processing systems in the predetermined territory. Each of the plurality of subscriber data processing systems includes a receiver for television schedule data. A .*memory for storing television schedule data is coupled to the receiver. The system is 15 improved by including a real time clock in the central data processing system for establishing a single system time for the transmission system. The means for transmitting television schedule data includes means for transmitting the single system time. The receiver includes o: imeans for receiving the single system time. The memory has a stored value for calculating local real time from the single system time.

In a further aspect of the invention, a method in a television schedule transmissiol system includes establishing a single system time related to real time. The single system time is transmitted to a subscriber data processing system. Television schedule data expressed in the single system time is transmitted to the subscriber data processing system. A value is provided to the subscriber data processing system for calculating local real time from the single system time. Local times are calculated for a television schedule from the schedule data expressed in the single system time using the value.

In still another aspect of the invention, a television schedule information transmission system includes a central data proctsing system for a predetermined territory having means for transmitting television schedule data for the predetermined territory and a plurality of subscriber data processing systems in the predetermined territory. Each of the plurality of 1) 61 T116W V 1VW8 subscriber data processing systems includes a receiver for television schedule data. A memory for storing television schedule data is coupled to the receiver. The system is improved by having the means for transmitting television schedule data configured to transmit the television schedule data as a show list for each day in the television schedule. The subscriber data processing system is configured to maintain show lists for a rol!in, window comprising a plurality of days extending from present time into future time.

In a still further aspect of the invention, a method in a television schedule information transmission system includes transmitting television schedule data as a show list for each day in the television schedule, Show lists are maintained for a rolling window comprising a 10 plurality of days extending from present time into future time.

In another aspect there is provided a television schedule information transmission system, which comprises a central data processing system, means connected to said central data processing system for providing schedule information data including day, time and channel of television programs for a predetermined territory to said central data processing system, said central data processing system including means for formatting the schedule information data for the predetermined territory into a predetermined schedule information transmission format, means coupled to said central data processing system for transmitting said schedule information data, a plurality of regional data processing systems, each located t in a region of the predetermined territory, said plurality of regional data processing systems each including means for receiving said schedule information data for the predetermined territory, means for selecting a regional portion of said schedule information data for a region in which each of said plurality of regional data processing systems is located and means for transmitting said regional portion of said s hedule information data, and a plurality of subscriber data processing systems in each of the regions, each of said plurality of subscriber data processing systems including means for receiving at least some of said regional portion of said schedule information data, means for storing said regional portion of schedule information data received by the subscriber data processing system, means for assembling selected portions of the schedule information data received by the subscriber data processing system for display to a user of the subscriber data processing system and a display connected 30 to said means for assembling said selected portions of the schedule information data to display Q li|TW!IH()CI".6ll55iV I' lfft 11 said selected portions of the schedule information data; said means for transmitting said regional portion of said schedule information data for the region has an ability to transmit said regional portion of said schedule information data in different places of a television broadcast signal and each of said subscriber data processing systems includes a means for locating said regional portion of said schedule information data in the television broadcast signal.

In another aspect there is provir'c a television schedule information system, comprising: a central data processing system; a data source coupled to the central data processing system, the data source 0 having: 4* 4 4, 4t 4 4 .4 *4 4 4 S tO 1*

S.

S

s television schedule data including day, time and channel of television programs for direct broadcast satellite and for a predetermined territory; the central data processing system comprising: a formatter that changes the television schedule data received from the data source into formatted television schedule data conforming to a predetermined format; and a central transmitter coupled to the formatter which transmits the formatted television schedule data received from the formatter; a direct broadcast satellite which receives the formatted television schedule data for the direct broadcast satellite from the central transmitter; a plurality of regional data processing systems, each regional data processing system receiving the formatted television schedule data for the predetermined territory from the central transmitter and comprising: a data selector which selects a regional portion of the formatted television schedule data for the predetermined territory; and a regional transmitter coupled to the data selector which transmits the regional portion of the formatted television schedule data to a corresponding region; a plurality of subscriber data processing systems located hi each region, 1) 14,14100CIV053 1, 150(dya 12-

U

*r

U.

U

comprising: a data receiver which receives the formatted television schedule data for the direct broadcast satellite from the direct broadcast satellite and at least part of the regional portion of the formatted schedule data supplied by the regional transmitter; a data selector coupled to the data receiver to select at least some of the formatted television schedule data from the direct broadcast satellite and at least some of the regional portion of the formatted television schedule data from the regional transmitter; a memory coupled to the data selector which stores the formatted television schedule data selected by the data selector; a data assembler coupled to the memory which assembles portions of the formatted television schedule data stored in the memory; and a display coupled to the data assembler that displays the assembled portions of the schedule data.

ther aspect there is provided a television schedule information system, In ano comprising: a central data processing system with a transmitter which transmits first and second television schedule data including day, time and channel of television programs for a direct broadcast satellite and for a predetermined territory, respectively; a direct broadcast satellite which receives the first television schedule data from the transmitter of the central data processing system and retransmits the first television schedule data; a plurality of regional data processing systems each of which receives the second television schedule data, selects second television schedule data corresponding to a region of the receiving regional data processing system and transmits the second schedule data for the region to the region; a plurality of subscriber data processing systems, each of which receives the 30 first television schedule data from the direct broadcast satellite and second 7)

N

Q V WI iM/ 12A television schedule data from one of the regional data processing systems and assembles the first and second television schedule data for display; and a television coupled to one of the plurality of subscriber data processing systems which displays at least some of the first and second assembled schedule data.

The attainment of the foregoing and related objects, advantages and features of the invention should be more readily apparent to those skilled in the art, after review of the following more detailed description of the invention, taken together with the drawings, in which: BRIEF DESCRIPTION OF THE DRAWINGS Figures 1-5 are block diagrams of television schedule information transmission and utilisation systems in accordance with the invention.

o 0 *I 0 *0 0* 0 a a

C

0 0 WO 95/31069 PcTUS5/05169 13 Figures 6-25 are schematic representations of message formats used in the systems of Figures Figures 26-60 are schematic representations of data structures, flow charts and display formats used in the systems of Figures DETAILED DESCRIPTION OF THE INVENTION Turning now to the drawings, more particularly to Figures 1-4, there is shown television schedule information transmission and utilization systems 50A-50D.

The systems 50A-50D transmit TV schedule data and associated network control messages as packets via the Video Blanking Interval (VBI) lines-in the TV signal from various television program providers 51, such as PBS, MTV or Showtime.

This data is acquired by StarSight Subscriber Units 52 and used to construct an internal database. This internal database can be accessed by the Subscriber Unit 52 to display a TV schedule for the channels that are received by the user's TV.

Since access to the network systems 50A-50D is via a subscription service, certain messages are encrypted by a security computer 53 to prevent access by nonsubscribers. Essentially any encryption system can be used with the invention, but an encryption system as disclosed in U.S. Patents 4,531,020 and 4,531,021 is preferred.

Packets contain error detection information and system overhead bytes for finding the head of a packet. The information embedded in a Packet is termed a Message. Messages consist of one or more Commands. There are various types of Commands, each type distinguished by a unique code number. Commands contain the different types of information necessary to construct and maintain a TV schedule database, time markers, and user authorization information.

The systems 50A-50D are data networks that deliver specially formatted data to subscribers 52 located throughout the USA. This data is used to build an "on screen program guide" that enables the system subscribers to interactively view television program listings on their TV screen. The information for this network is derived from a database that is built by a computer program running on a UNIX computer 54. To build this database a data provider (DP) 56 is required to supply the computer 54 with program listing files called Show list files.

~i r.

WO 95/31069 )ICT/U159NO5169 14 Television program schedule data is generated by a vendor company at 56 and providedto the StarSight computer center 54 in a simple interchange format.

Information is encoded that specifies what television programs are on at what time and on what channel. This data is received and processed for all channels for the entire country for 10 days. Any changes to the TV schedule are transmitted as soon as they are available on an as needed basis. The following description describes the specific information and fields that are contained in the files.

The Show list files are transferred electronically to the file system in computer 5A through a router connected to the DP's Ethernet and a digital leased line 58, using the standard TCP/IP program, FTP, or other file transfer protocol standard mutually agreed upon. The files may require compression, due to the bulk of data being transferred, using a mutually agreed upon data compression algorithm compatible with the UNIX file system in computer 54. The operating speed of the leased line 58 will be sufficient to transfer all data files in a reasonable length of time.

The files are transferred to the computer 54 on a daily basis 7 days a week, with the file transfer completed by 0800 hours PST. The daily file transfer will be into the home directory corresponding to the login name used to perform the file transfer.

The "Main" file download to the computer 54 will always be for the date 12 days into the future. Thus if today is the 10th, today's data download would be for start times beginning at 0000 hours GMT on the 22nd.

Since the data files are sent on a daily basis some mechanism must be in place to allow for the updating of a program listing that has already been transferred.

This is accomplished via the "Update" file. An Update file contains records of all changes that have been made since the last Update file was produced, which modify any of the data for any date which is still "active". An "active" date is defined as the dates beginning with today's date, and spanning the 11 days following (that is, all dates from today to the date covered by today's "Main" file, but not including that date.

Last minute schedule changes require "Flash Updates", which provide a "Flash Update" file within 5 minutes after entry of any change. Such files "trickle" across the leased line 58 to the computer 54 throughout the day.

IL- I WO 95131069 PCT/US5/051()69 The TV schedule information is processed by the computer 54 and inserted into a master database. During this process, redundant information is removed. For example, if the I Love Lucy show is playing more than one time during the 10 days of schedule information, the character string for the title of that show is only stored once in the master database. For each channel and day, information is stored that specifies what shows are on at what time for the entire day. Each show may, but not necessarily, contain a show title and a show description.

The purpose of the master database is to store all of the TV schedule data in a relational database with standardized methods to access the data. The data is organized in a way that makes retrieval of the data efficient.

Television viewers receive a set of television video signals at the viewing location. Cable television providers assign broadcast and satellite program channels to specific channels. Every cable company has a unique assignment of channels.

Every geographic location has a set of broadcast channels that may be received in that locality. A subscriber unit must have a listing of the program channels and the channel assignments in order to provide a subscriber with the TV schedule data relevant to that subscriber.

Each unique set of channel assignments are assigned to a Reception Group.

Associated with each Reception Group is a region name, reception group type (cable, broadcast, satellite), set of zip codes where this set of program channels may be received, a list of program channels received, and the channel assignment for those program channels.

The Reception Group and program channel information is referred to as a Line Up. Line Up information comes from many sources, such as commercial companies that collect the information, subscribers, cable companies and analysis of broadcast channel transmission coverage.

Line Up information obtained from a single source is not considered correct.

Various processes are used to align data from the multiple sources to obtain one database with superior quality. A master database is created to which all other Line Up data is compared. Changes are made to the master database when a correction is verified. The primary key to associating one Line Up to another is by verifying that the zip code of the Line Ups are the same. Once the zip code information is

I

WO 95/31.069 PCTIUS95105i169 16 verified, the channel assignments are compared and verified by phone calls to the cable company or subscribers in the area.

Once the TV schedule data and Reception Group data are entered into the master database, a computer program processes the data to emit a data stream suitable for transmission over the PBS data network. The data is compressed and organized optimally for the Station Nodes and subscribers 52. The specific format of the output data stream is described below.

The output data stream is grouped and ordered by the data type. Due to the methods employed in the subscriber unit, it is optimal to sequence the data in a particular order. This allows the subscriber unit to collect an entire TV schedule in one pass of the data. The data blocks and their order is as follows: 1. Security Keys Security keys are required to restrict access to the data to only those subscribers authorized to receive the data. Portions of the data stream are encrypted using the industry standard Data Encryption Standard security key algorithm. These keys may be changed at any time. To keep all of the desired subscriber units authorized and to change the keys, a series of messages are transmitted that contain the current and future security keys. A subscriber unit's initial set of det.i w keys are sent in the network message that authorizes the unit to begin colle.t'a ,rt ta.

The keys in this authorization message are encrypted with a key that is unique to the individual subscriber unit.

2. Theme Data Most of the TV programs are categorized by theme categories and sub categories. The master database contains a set of attributes for each category that indicates if that TV program falls into a particular genre. Each unique combination of genre attributes are assigned a unique theme identification. Each show is assigned a theme identification based on a set of genre attributes. A table is transmitted that assigns a text description to each theme identification in the theme data block.

3. Daylight Savings Time Change Data is transmitted that specifies the time when daylight savings begins and ends. A message is repeatedly transmitted on the data network that specifies the exact time that daylight savings time begins and the time that it ends. The subscriber WO 95/310}69 PCI'VI895/05169 17 units 52 pick this message and adjust the local time to compensate for the effect of daylight savings.

4. Reception Group Data Reception Group data contains the necessary channel line up data for all of the unique Reception Groups. This data includes Regiod ID (unique number associated with the reception group), region type (broadcast, cable, satellite), Channel ID (unique number associated with the particular channel), and tune channel number (channel to which the TV must be tuned to receive the channel). Any particular subscriber unit 52 is assigned to a Reception Group during the authorization process. The subscriber unit will only process the data for the Reception Group for which it was authorized. All other Reception Group data is ignored by the subscriber unit.

Channel Data Each channel reference in any reception group must have an associated channel data command. The channel data command contains information about that channel. The native channel number (tune channel for that channel if it were a broadcast channel), station call letters, network affiliation (ABC, NBC, CBS), and an abbreviation for the channel name. The later abbreviation is used to display a 1 to 4 character icon for that channel on the subscriber unit. Data for any particular channel is only transmitted once per data cycle.

6. Show List Data A show list contains a list of the TV programs and their duration for a particular channel and day. The command contains a Channel ID, start time for the first program, and a list of subsequent programs and their duration. Each show contains a Show ID and an optional Description ID. The Show ID and Description ID are each a unique number associated with the text of that show title or description, respectively. Each show also contains a flag that indicates if it is a pay per view program.

7. Show Title Data Every unique show title reference in a show list has an associated Show Title command. The Show Title command contains the Show ID, Theme ID, and show title text. Each unique Show Title is included only once in the data stream, and may WO 95/31069 PCTIUjS95/05169 18 be used many times by the subscriber unit 52. The text in the show title is compressed using Huffman compression techniques, 8. Show Description Data Every unique show description reference in a show list has an associated Show Description command. The Show Description command contains the Show Description ID, MPAA rating, critics rating, and show description text. Each unique Show Description is included only once in the data stream, and may be used many times by the subscriber unit 52. The text in the show description is compressed using Huffman compression techniques.

9. Station Node Data Messages Each PBS station node receives blocks of data that will be retransmitted by that station node. Only data that is required by the subscriber units in the area serviced by the station node is sent to that station node. For example, the station node in San Francisco only receives data for the cable systems and TV stations received by subscribers in the San Francisco area. None of the Los Angeles data is received by the San Francisco station node.

The goal of the security software for the StarSight system is provide conditional access to the StarSight data stream. Portions of the data are encrypted.

Access to the schedule data is conditional in the sense that a subscriber unit 52 must know the decryption key. Only units that are authorized may receive the decryption key.

The conditional access system involves three levels of encryption. At the top, each unit has an RSA public/private key pair. Next, batches of up to 256 units share a DES key, which is called the batch key. At the bottom, program guides are encrypted with a DES key shared by all authorized units, which is called the program key. The program keys, changed periodically, are distributed under the batch keys, and the batch keys are distributed under the RSA keys, giving a threelevel hierarchy.

The various keys are distributed either at the factory, or in later messages as follows: S The RSA private key, as well as a serial number identifying the unit, are preprogrammed at the factory. StarSight keeps a copy of the corresponding RSA public key.

WO 95/31069 )PCT/US089S!069 19 The batch key is distributed in an authorization message, which is encrypted with the unit's RSA public key. The authorization message also gives the unit a batch number, and a unit number within the batch, a "service type" field, as well as the current and next program keys. The authorization message would typically be the first interaction between StarSight and a unit in the field, although it can be sent at any tin:e to reassign batches.

S Program keys are distributed in a key distribution message, which is encrypted with a batch key. The key distribution message also indicates, according to a unit number in the batch, whether a unit is still authorized.

Two of the security system functions are to process the authorization and key distribution messages. A third function is to decrypt encrypted text with one of the program keys. The text is encrypted in cipher block chaining (CBC) mode.

Periodically, the program keys are changed and distributed with the key distribution message. If a subscriber is to be de-authorized, they will not receive a new key distribution message, and will thus be unable to decrypt TV schedule data.

The subscriber unit 52 is a microprocessor based system designed to receive, process and display the TV program schedule data. The subscriber unit 52 hardware includes a microprocessor, read only memory, random access memory, security coprocessor, IR blaster co-processor, on screen display co-processor, and power management circuitry. These components are combined with software that implements the Electronic Program Guide system.

1. Operating System Executive The microprocessor has many tasks to perform as will be described. Each task must be serviced in real time, but may not necessarily be completed each time slice. A "round robin" executive is used to perform this function. A main loop sequentially calls each of the individual tasks. When a task is called, it will perform its defined function, based on its current state. The tasks are required to complete the entire task or a subtask in a pre-defined time period. This way, all of the tasks have an opportunity to execute their defined task within a time period. After the last task has executed its function, the first task is executed again.

2. Memory Management Television program data is dynamic and always changing. Showlists, show titles, and descriptions are variable length and change from day to day. For this WO 95131069 PCTIU89O50 9 reason, a memory managment system is deployed that allows dynamic allocation and recovery of data blocks. Memory is divided into equal sized allocation blocks. The set of memory blocks is referred to as the pool. A handle table is created that makes references to the memory blocks in the pool. An application software subroutine may allocate memory by creating and storing an entry in the handle table, which references one or more allocation units in the memory pool. Memory may be deallocated by releasing the memory references in the handle table.

It is a requirement of the application to have continguous blocks of memory that exceed the length of a single memory block in the pool. This is done by allocating multiple contiguous memory blocks when needed.

After many memory blocks are de-allocated, the memory pool will be fragmented. There will be many blocks of memory of varying size that are not contiguous. One of the background tasks is to de-fragment the memory pool. A procedure is run that moves the allocated memory blocks to the lowest possible memory location. When a block of memory is moved, the references to that memory are changed in the handle table. This way the application program still has a reference to the memory block. Each allocation unit is moved so that any deallocated blocks that are between allocated blocks are collapsed. The net result is that all of the de-allocated memory is at the highest possible memory location and all of the blocks are contiguous.

3. VBI Data Processing VBI data is decoded from the video stream and processed by an 8032 microprocessor. A buffer is used to store the data and assemble packets. A comparator is used to detect a special sync character sequence. As soon as these characters are detected, the buffer is reset and the packet header is assembled. If the correct cyclic redundancy check (CRC) of the packet header is detected, the remaining portion of the packet is assembled. After the complete packet is assembled, an additional CRC is computed to verify that the complete packet was received without an error. Once this is verified, the packet is broken up and individual network messages are passed to the command processor.

4. Command Processor The command processor determines if the encryption bit is set in the command header, and if so, the data is passed to the security module. The security WO 91/3 1069 _1*01/11895/011 21 module then decrypts dithe data and returns it to the command processor. The command processor functions as a dispatcher to send dithe command to the correct processing module, based on the command function.

Database Processing The database processor is responsible for storing and retrieving all TV schedule and channel data. It receives data from the command processor and stores that data into the database. A set of function calls is used to retrieve data for the application program. The organization of the database is described below.

6. Security Processing ,0 The security processor has two major functions: key management and data decryption. When messages are received from the command processor that contain the correct serial number or batch number, the security processor receives the message and decrypts the message. In the case of an authorization message, the data is decrypted using the RSA private key. The batch number, batch key and other control information is decoded and stored for future use. In the case of a key management message, the data is decrypted using the batch key, and the information is stored for future use. Program keys are distributed encrypted under the batch key.

7. User Interface The user interface takes remote control commands as its primary input. A user requests various functions by pressing a button on a remote control. The user interface receives these commands and responds with the requested display screen.

In addition, display commands are generated asynchronously when a recording begins or when the unit attempts to collect data.

The application has over 20 different and distinct display screens. Each display screen has associated with it a particular state. The data and format of the screen is dependent on the previous screen, the time of day, the contents of the database, and what remote control button was pressed. A state table is used to define the screen flow.

For every defined screen, there is an entrance function, an exit function, an update function, and an array of key-handling functions. The entrance function is called when a state is first entered, to collect all necessary data and format the screen. The exit function is called to release memory and data for the screen. The update function is called once per minute to update the screen time and to re-draw WO 9.S/3 1 )9 P CT/F19O1/0 169 22 the screen if any shows have ended or any recordings have started or completed.

Once In a particulnr state, the table contains a reference to another software linction for every key on the remote control. These functions will be executed when the associated remote control button is pressed.

The user interface also manages an array of pop-up windows that may appear and disappear on the screen either synchronously or in response to key presses, There are over 18 popup categories that define the screen priority for each, i.e., which one covers which when several popups are on the screen at once. These popups may be cursors, show descriptions, error messages, help messages, or requests for more information. Each popup category has its own entrance, exit, update, and key-handling routines similar to those of the main screen states.

In addition, the user interface is responsible for locking and unlocking the database while the user is interacting with the program guides, maintaining the selection and ordering of the program channels, controlling the tuner from the guide screens, performing the theme searches in the database, and controlling a demon that automatically collects schedule data at a pre-determined time from the data provider channel.

8. VCR Recording The purpose of the record manager is to maintain a list of recording requests and to then start a recording at the correct time on the correct channel. The user interface defines three types of recordings, once, weekly and daily. The user may record the shows he/she is currently watching or select a particular title from one of the guide screens. The user will move the cursor to a particular title on one of the guides (grid, channel or theme), press the "record" button, and select if the program is to be recorded once, weekly or daily.

Once the user confirms the recording request, an entry is made in the recording queue. The recording queue contains entries for each of these types of recordings. In the case of the daily recordings, up to five individual entries are made in the working record queue. A single entry is made for the weekly and once recordings. The working record queue represents all of the recordings that are to be done for the coming week sorted by-show start times.

A record demon is called from the real time executive that determines if it is time to start a recording. The leading entry in the working record queue is WO 95/31069 P'//1USP9/05 !i)9 23 examined to detemine if it is time to start that recording. If it is time, a software function is executed that will start the recording. Once a recording is started, the record demon will determine if it is time to terminate a recording. When the stop time is reached, a software function is executed that will terminate the recording.

Starting and stopping a VCR recording is done in several ways, based on the configuration of the user's equipment. In the case where a cable converter is not being used, the following actions are taken to start a recording: 1. Toggle the VCR power.

2. Tune the VCR to the desired channel.

3. Put the VCR in record mode.

If a cable converter is being used, the following actions are done: 1. Toggle the VCR power.

2. Tune the VCR to channel 2, 3 or 4, 3. Tune the cable converter to the desired channel.

4. Put the VCR in record mode.

Tell the user interface software what the currently tuned channel is.

To stop the recording, the VCR is put in stop mode and then the power is toggled. In all cases, these commands are performed by sending infrared commands to the device.

Another function of the record demon is to examine the queue of weekly and daily record requests and then to spawn a new entry in the working queue. For example, if it is Monday morning and a daily record request is entered for a program in the atternoon, 5 entries will be made in the working queue, i.e. Monday, Tuesday, Wednesday, Thursday and Friday. After the first recording is finished on Monday afternoon, the entry in the working queue for Monday will be deleted. The record demon will examine the record queue and discover that it is time to add a new entry in the working queue for next Monday. This entry will be added in the time sorted order position in the working queue.

Additionally, the demon maintains the proper start time when a daylight savings boundary is crossed. That is, the demon must add one hour to a show's start time in the fall and subtract one hour in the spring, provided daylight savings time is applicable to the user's region.

WO 95/31069 PCTA/US95/05169C 24 The record manager handles deletions, either singly or muliply depending on the original type of recording.

9. On Screen Display An on screen display (OSD) is used to display the ext and graphic information that makes up the various display screens. A common interface is used to control various devices. Three different devices can be used: the ITT TPU2740, the ITT CCD 3005, and the Zilog Z89300. The user interface has a set of functions defined to draw text, draw an embossed rectangle, draw a channel icon, and to set the display attributes. A set of software functions are used that translate these commands into the correct functions for the particular device.

Details of the subscriber units 52 are provided in Figure 5. The following description is in terms of a subscriber unit 52 for a TV Receive Only (TVRO) system (see also Figure With appropriate modifications, the subscriber unit 52 can also be incorporated in a cable decoder box for use with cable systems. The subscriber unit can also -e built into televisions or VCRs or provided as a separate stand alone unit.

This description is for the electronic hardware of the StarSight Telecast "TVRO Subscriber Unit" 52. TVRO customers are people who have home satellite dishes for television viewing. TVRO stands for "TV Receive Only". The TVRO Subscriber Unit 52 will hook up to the customers TVRO Satellite system and will enable the customer to subscribe to StarSight's Electronic Program Guide Service.

The TVRO Subscriber Utit 52 is a fully self contained, separate unit, that is installed in series with the existing customer TVRO equipment.

The Subscriber Unit receives Baseband Video from the customer TVRO system. The Program guide display screens are merged with the customer video in the Subscriber Unit. The customer has the options of Baseband Video out or Channel 3/4 RF out.

The Subscriber Unit formats and displays TV program schedule information in real time, overlaid on top of the TV viewing screen. The TV schedule information is transmitted in one of the Vertical Blanking Interval (VBI) lines of a conventional TV broadcast. The Subscriber Unit stores this information in local on board memory. The information is displayed in the form of a "Grid Guide" on the TV screen when the customer presses a button on the remote control.

R~XRUIAilRaaWI~Fn~BYnec*14 z*na~ WO 95/31069 PCIT/USS95/05169 The Subscriber Unit 52 consists of the following sub-sections: Inexpensive 8 bit Microprocessor 100.

64K Bytes of code ROM 101.

a 512K of RAM 102 for program data storage.

Custom gate array 103.

Segmented Base Registers 104 for fast memory data manipulation.

Security logic 106 for decoding incoming encrypted data.

Serial Bus 108 for display controller interface.

Serial "StarSight" Bus 110 for inter processor communications. (ISB) Watchdog timer 112 for error recovery.

IR input 113.

Infrared Receiver circuits 114.

Infrared Tiansmitter circuits 116 for TV, VCR control.

IR output 117.

CRC-32 encoding and decoding logic 118.

On board power supply 120.

Power down RAM data retention 122.

Video Input 123.

On Screen Display Controller and Formatter 124.

Custom Color Converter 126 for overlay display.

RF Modulator 127.

Choice of Baseband Video or RF outputs 128 or 130.

The heart of the TVRO Subscriber Unit 52 is an "8032, 8 bit Microprocessor" 100. This microprocessor controls all sections of the Subscriber Unit. A brief description of this processor will be given for reference. For more detail, refer to the 8032 data books from Intel or Signetics.

The 8032 has an 8 bit Data Bus and a 16 bit Address Bus. The upper 8 bits of the address bus are always present. The lower 8 bits of the Address Bus are time multiplexed with the Data Bus and an External Address Latch is required to de-multiplex this bus. This latch is located inside of the DBE 1200 Gate Array 103.

The 8032 has two address spaces, the "CODE" space and the "DATA" space. The DATA space is further divided into the RAM Memory area and the I/O area.

WO 95/31069 PCT/US95/05109 26 "CODE" refers to any access to Program ROM. The Program CODE space is 64K bytes long and the 8032 can only "READ" from this space. All Code access uses the "PSEN" (Program Store ENable) line. The -WR and -RD lines do not assert during CODE accesses. +ALE is the control signal used to de-multiplex the Address Bus. The falling edge of +ALE will latch the lower 8 bits of the address.

-PSEN will then assert to start the ROM read. The current design has the EPROM -CS line always tied to ground. This makes the EPROM "OE ACCESS" time the determining spec for ROM reads. By today's standards, this microprocessor bus timing is very slow and this allows for the use of inexpensive ROMs.

"DATA" refers to any access to external RAM 102. Special additional hardware has been added to the TVRO Subscriber Unit so that the DATA area can extend past the 64K addressing limit. This is done via segmenting "BASE REGISTERS" 104 and will be discussed later. The 8032 -RD strobe will assert for RAM Data Reads and the -WR strobe will assert for RAM Data Writes. PSEN will not assert during Data accesses. The RAM Data accesses can only take place via the "MOVX" instruction. No other 8032 instruction will cause -RD or -WR to assert.

Once again, +ALE is used to latch the address, then -RD or -WR will assert to start the data transfer. Read data must be valid just before -RD negates. The Write data is valid the entire time that -WR is asserted.

Along with the RAM Data Space, there is also a "64K I/O SPACE". This I/O space occupies the same first 64K segment as the DATA RAM. There is a signal called +DRAMENABLE that is used to determine which area will be accessed.

The I/O space is where the system control registers are located. There are 18 write registers and 13 read registers. These registers are used to control the various subsystems in the Subscriber Unit. Features like clock frequency selection, serial bus control, I.R. status and control, are all controlled through this register set.

There are other control registers located in the peripheral chips. The 8032 uses two serial Busses to communicate and control these peripheral chips. The "IM BUS" 108 is a 3 wire serial bus used to talk to the transaction processing unit (TPU 2740) 124. The TPU 2740 collects the incoming VBI data and also formats and displays the various StarSight overlay screens.

~L BYII*~ABLI BPIIIB~~ I "rr WO 95/31069 PCT/US95/05169 27 The Software Serial Bus 110 is used to talk to the Security Microprocessor 106 and also to the IR Blaster Chip 116. This is a two wire bus with a unique serial timing protocol.

The first 64K of 8032 Address Space has three separate overlapping functions.

1. If -PSEN is asserted, then the CODE ROM will be accessed.

2. If +DRAM_ENABLE logic then the I/O registers will be accessed.

3. If +DRAMENABLE logic then the first 64K of RAM will be accessed.

The area above 64K is always RAM and the total length is 512K bytes.

8032 SIGNAL SUMMARY Table I summarizes the input and output signals of the 8032 microprocessor: Signal Name

+ALE

-PSEN

-WR

-RD

-INTO

-INTI

PORT 0 PORT 1 PORT 2 PORT 3 FUNCTION Direction Latches the low 8 bits of the Address Bus. Output Enables Op-Code read fetches from ROM. Output Asserts to Write to external DATA RAM Output Asserts to Read from external DATA RAM Output Interrupt 0-Indicates the ISB circuit requesting service. Input Interrupti Indicates that power is about to fail. Input 8 bit Multiplexed 8032 Data and Address Bus. I/O Various system control bits. I/O Upper 8 bits of the Address Bus Output 8032 control bits. I/O Table I Base Register Description The 8032 Data Address space is only 64K bytes long. The TVRO Subscriber Unit however, is required to store more than 64K bytes of TV program data. The "READ and WRITE BASE REGISTERS" allow the 8032 to access additional memory above the 64K limit.

The 8032 uses an internal 16 bit register called the "Data Pointer Register" (DPTR) to hold the address of the external DATA location. The Base Registers (located in the DBE 1200 Gate Array) hold another 16 bit value that is added to the Data Pointer value to form the actual RAM address. The Base Register contents is I ~s si C-~pp~l 1 I n WO 95/31069 PCT/US95/05169 28 shifted 4 bits left with respect to the Data Pointer so that the RAM address becomes bits long. 20 bits allows for a 1 Megabyte total Data RAM size.

The 8032 can access any 64K byte chunk of the external RAM starting at the address written in the Base Registers. (Since the base register is shifted 4 bits left, the 8032 can access any 64K byte segment starting on even 16 byte boundaries.) There are two base registers so that Memory Block Moves can be performed quickly. It would be very slow and cumbersome to the software if the value of the DPTR had to be changed for each read and then changed again before a write during block moves. The dual Base Registers allow you to put the starting address of the Read (Source) Block into the Read Base Register, and the starting address of the Write (Destination) block into the Write Base Register. A software loop can then be written that does a read followed by a write to the same DPTR address. The DPTR is then incremented and the process repeated. This allows software to quickly move blocks of Data anywhere in external RAM.

A provision has also been added to quickly disable the Base Registers. The signal +ENABLE_BASE will force the outputs of both Base Registers to all zeros.

This is done without altering the contents of the Base Registers. This feature provides a quick method of accessing the first 64K segment of RAM. Both RAM Reads and Writes will go to the same location. Processor related data will be stored in the first 64K segment (Register Images, Software Counter Values, System Parameters The upper segments are used to store TV program information.

Table II below tries to show how the DPTR is added to the Base Register to form the 20 bit RAM address.

Note: Base Reg shifted 4 bits left with respect to Address bus.

Base Reg 15 1413 12 11 10 9 8 7654 32 1 0 8032Addr 15 141312 111098 7654 32 bit Addr 1918 17 16 15 1413 12 1110 9 8 7654 32 +DRAM_EN must 1 to access the external memory area Table II As an example: The READ BASE REGISTER is set to 0001 Hex.

The WRITE BASE REGISTER is set to 1080 Hex.

II I Ir 0 Pa~llB1J~s~"Oserrr~~1. i I--l l~--ul-l WO 95/31069 PCT/US95/05169 29 The Data Pointer (DPTR) is set to 382A Hex.

An 8032 Read (MOVX A,@DPTR), will access address 0383A Hex (note: bits!).

An 8032 Write (MOVX @DPTR,A), will access address 1403A Hex (note: bits!).

+DRAM EN must 0 to access the I/O area.

DATA RAM DESCRIPTION As previously mentioned, the DATA RAM 102 stores the TV program guide information. This RAM is currently available in 3 sizes, 128K bytes, 256K bytes or 512K bytes. The TVRO product uses 512K bytes. The Data RAM uses "PSRAM" chips. "PS" stands for Pseudo Static. The PSRAM is a standard DRAM that has been packaged with STATIC RAM pinouts. Extra logic is added so that DRAM refreshes are simplified. These PSRAMs also have a power down data retention feature that works down to 3 Volts.

There are four modes of PSRAM operation in this product. They are: 1. Sequence Up Mode.

2. Normal Data Transfer Mode.

3. Sequence Down Mode.

4. Power Down Data Retention Mode.

There are two sizes of PSRAM that can be used in this design. The 128K by 8 chip or the 512K by 8 chip. There is a provision to use two of the 128K by 8 parts to obtain 256K bytes of total memory.

These two parts have slightly different pin outs and operate in slightly different methods. Circuitry has been added to compensate for these differences.

There is a bit called +512KRAM that must be set by the software depending on which chip is used.

Also the PSRAMs must go through a "Sequence Up" state after power on and a "Sequence Down" state just prior to power off.

PSRAM OPERATION (Sequence Up Operation) After initial power up, the PSRAMs must be "SEQUENCED UP" before any reads or writes can be done. The Sequence Up procedure is slightly different for 128K and 512K parts. This procedure was added to insure that logic and timing specifications of the PSRAM are maintained when the PSRAMs are in the power i -41 Pc WO 95/31069 PCTIUS95/05169 down data retention mode. There is a provision to use a large Capacitor or a Battery to keep the PSRAMs powered up when the system power is lost.

In order to preserve PSRAM data when the power is off, certain of the PSRAM inputs must be held in a known logic state. On top of this, these pins must follow defined timing constraints when they are put into the known logic states. The pins and logic levels are different for the 128K and the 512K parts.

For the 128K parts: +Chip_Enable2 (Pin 30) and -REFRESH (Pin 1) must both be held at logic '0' when the power is removed to insure data retention. When going from data retention mode to normal operation, -REFRESH (Pin 1) must go high at least 225nS before +CHIPENABLE (Pin 30) goes high.

For the 512K parts: -Chip_Enable (Pin 22) must be held at logic and -OE/-REFRESH (Pin 24) must be held at logic when the power is removed to insure data retention. When going from data retention mode to normal operation, -Chip Enable (Pin 22) must go high at least 50nS before -OE/-REFRESH (Pin 24) goes high.

There is also a timing constraint as to how soon after normal PSRAM REFRESH the above sequences can occur. The Sequence Up logic in the DBE 1200 Gate Array controls the above timing. After a Power On Reset (POR) sequence is finished, the Microprocessor toggles a bit called +SEQUENCE_UP [Wr Addr 7400Hex, bit (Be sure to always return this bit to logic Toggling the +SEQUENCEUP bit will start the Sequence Up State Machine. This State Machine will wait for the end of the next normal Refresh Pulse and then it will remove the forced logic levels using the correct timing as mentioned above. The refresh pulses occur about every lluS and the Sequence Up process takes about luS.

Software should wait at least 15uS from the time that +SEQUENCE_UP is set till when the first PSRAM access is attempted.

PSRAM OPERATION (Normal Operation) Normal PSRAM operation is very straightforward. Refreshes are automatic and transparent to the microprocessor. The PSRAM must be Refreshed at least once every 15uS. The Refresh address is generated inside the PSRAM and is transparent to the user. In order to do a Refresh, the Refresh pin on the PSRAM must be held low for a minimum time. For ease of circuit design, the Refresh Request is

I

~IIYP-( I~ ll~

:I

WO 95/31069 PCT/US95/05169 31 generated by the internal clock divided by 256. With a 24MHz clock, this happens about every 10.7uS.

The Refresh Pulse to the PSRAM chip must not occur at the same time as a PSRAM read or write access. Since the Refresh Request and any PSRAM access are asynchronous, the -PSEN line is used to start a Refresh. When the Refresh Request is detected, the Refresh circuit waits until the next -PSEN falling edge.

-PSEN falls at the beginning of a CODE access to ROM. CODE accesses to ROM happen all the time as the 8032 fetches OP-CODES. During this time, it is impossible for the 8032 to access PSRAM. The Refresh is very fast and it will be finished before the -PSEN CODE fetch is complete.

CAUTION: This system must have -PSEN toggling in order to refresh PSRAM. In normal operation this will happen all of the time. Be careful if you use an 8032 emulator. The refreshes will stop if you ever break and stop the emulator.

Most emulators have an option to insure that -PSEN still asserts even when an emulator breakpoint occurs.

PSRAM OPERATION (Sequence Down Operation) Sequence Down is the opposite of Sequence Up. The system has an "Early Warning Power Fail Detector" that will interrupt the 8032 before the supply voltage starts to drop. The 8032 responds to this interrupt by saving any critical PSRAM data and then asserting the +SEQUENCE DOWN bit. Sequence Down will force the PSRAM critical inputs to their correct state and will do so insuring that the timing specification is maintained. The Sequence Down logic will not start until the end of the next Refresh to insure proper timing. The SEQUENCE DOWN rules are shown below.

For the 128K parts: +Chip_Enable2 (Pin 30) must go to logic at least 60nS before -REFRESH (Pin 1) is forced to logic After the power dies, external components should hold these lines at logic as the gate array outputs will be undefined.

For the 512K parts: -Chip_Enable (Pin 22) must be forced to logic at least 50nS before -OE/-REFRESH (Pin 24) is forced to logic PSRAM OPERATION (Power Down Data Retention)

Y

WO 45/31069 PCT/US95/05169 32 As long as the critical input pins are held at their power down levels (See Above) and the voltage to the PSRAM chips stays above 3,0 Volts, the data will be retained.

PSRAM POWER DOWN LATCH There is a very low current J-K Flip Flop that is powered by the same backup capacitor that powers the PSRAMs. This flip flop lets the software know if the voltage dropped below the minimum voltage specification during a power off period.

At initial power on, this latch should power up to logic The microprocessor can read the state of this latch on the +RAMV_OK line. If the latch is then it should be assumed that the voltage dropped below the PSRAM minimum data retention specification and all RAM data is invalid. If the latch then the PSRAM data is still valid from before the power down.

If +RAMV_OK is logic then the microprocessor can set it to logic '1' after self test diagnostics pass. Once this latch is set to logic it will stay set until the PSRAM Vdd Voltage drops below about 3.1 Volts.

Five conditions are necessary to set this latch.

1. The PSRAM voltage must be greater than 3.1 Volts. (This releases the J-K Flip Flop Reset Pin).

2. The PCB +5 Volt supply must be greater than about 4.5 Volts. (This releases system POR).

3. The -ENBLAT line must be set to logic 4. The +BANDO line must be set to logic The +LATCLK line must be toggled to logic and then to logic The -ENBLAT and +LAT_CLK lines are driven by 8032 microprocessor PORT pins. These pins will be initialized to logic by 8032 hardware at POR time. The +BANDO line comes from the DBE 1200 gate array and is reset to logic at POR time.

By requiring all of these conditions, it is hoped that the latch will not be able to be set by spurious noise glitches at power up. It would not be a bad idea to have checksum locations in PSRAM to verify that the data is valid if the latch reads a logic (Just in case the latch can be set by a noise glitch.) I~ I n r 111- u~ WO 95/31069 PCI'T/895/05 169 33 The MC 14xxx series CMOS devices were chosen for the latch circuit because this family guaranteed very low worst case current drain.

DBE 1200 GATE ARRAY 103 The Gate Array 103 is packaged in an 84 pin PLCC package. The Gate Array terminology is slightly different from the PCB terminology. The PCB uses in front of a signal name to indicate "active high". The Gate Array dropped the and just uses the signal name when the signal is "active high". The PCB uses in front of a signal name to indicate "active low". The Gate Array adds the letter in front of a signal name when it is "active low".

The following abbreviations for addresses and bits will be used.

(6000W.5) Write Address 6000 hex, bit (6C00R.3) Read Address 6C00 hex, bit 3.

ADDRESS DECODING The address decoders are shown on pages 1 and 9 of Appendix A. 74F138 type 1 of 8 decoders are used with the 8032 -RD or -WR strobe used for an enable. The outputs of the 74F138 will be valid only when the proper address is written or read.

The following tables show the Write and Read addresses that are decoded.

The page number refers to the page of the Gate Array schematic of Appendix A that the register can be found on. The "Gate Array Name" is the name of the decoded signal on the schematic. Table III below shows the I/O Write register decodes and Table IV shows the I/O read register decodes.

+DRAM EN must 0 to access these registers.

WRITE

ADDRESS

8032 PORT 1 8032 PORT 3 00O0H 0400H 0800H

OCOOH

1000H 1400H 2000H

WRITE

REGISTER ACCESSED VARIOUS OUTPUT CONTROL BITS VARIOUS CONTROL AND I/O BITS READ BASE REGISTERLOW

READBASEREGISTERHIGH

WRITE BASEREGISTERLOW WRITEBASE REGISTERHIGH PWM CONTROLREGISTERLOW PWMCONTROL REGISTER HI I.M. BUS ADDRESS REGISTER Gate Array Name

XRBASELO

XRBASEHI

XWBASELO

XWBASEHI

XPWMLO

XPWM HI XL IM AD WO 9S/31069 PCT/US95/05169 2400H 2800H 2COOH 3000H 3C00H 6000H 6400H 6800H 6C00H 7000H 7400H 34 12 I.M. WRITE DATA 1 REGISTER 12 I.M. WRITE DATA 2 REGISTER 12 I.M. BUS START TRANSFER REGISTER 9 IM BUS CONTROL REGISTER 9 SECURITY CHIP CLOCK FREQ REGISTE 9 OUTPUT CONTROL REGISTER 13 REFRESH WATCHDOG REGISTER 18 CRC-32 DATA REGISTER 29 ISB CONTROL REGISTER 24 ISB TRANSMIT DATA REGISTER 31 RAM SEQUENCE AND GATE ARRAY TEST REGISTER TABLE III 8032 I/O WRITE REGISTERS XL IM D1 XL IM D2 XSTRT IM XIM CTRL R XCLKREG XCNTRL_1

XWDOGCS

XWR CRC

XISBCTRL

XISBXMIT

XWR TEST

READ

ADDRESS

0400H 0800H

OCOOH

1000H 1400H 1800H 1COOH 6800H 6COOH 7000H 7400H 7800H 7C00H Pg READ Gate Array REGISTER ACCESSED Name 31 READ TEST MULTIPLEXER REGISTER XRDMUX 5 I.R. RECEIVE DATA REGISTER XIRRREG 6 ISB INTERRUPT STATUS REGISTER XRDSTAT 12 I.M. READ DATA BYTE 1 XRDBYT1 12 I.M. READ DATA BYTE 2 XRDBYT2 6 I.M. STATUS AND CHIP I.D. REGISTER XSWLO 6 I.R. RECEIVER STATUS REGISTER XSW HI 24 ISB RECEIVE DATA REGISTER XRRECREG 29 ISB STATUS REGISTER 2 XISB ST2 16 CRC-32 READ REGISTER 3 XRDCRC3 16 CRC-32 READ REGISTER 2 XRDCRC2 17 CRC-32 READ REGISTER 1 XRDCRC1 17 CRC-32 READ REGISTER 0 XRDCRCO I- WO 95/31069 PCT/US95/05169 TABLE IV 8032 1/O READ REGISTERS PSRAM CONTROL The PSRAM Control logic is shown on Page 2 of Appendix A. This logic consists of simple gates that route the control signals to their proper pins depending on the mode the chip is in. The chip has two memory size modes, 128K and 512K.

There is also a Sequence Up mode and Sequence Down mode.

PSRAM CONTROL SIGNALS XRFSH 18 (-ReFreSH or addressbit 18) This is a dual purpose signal that should be tied to pin 1 of the PSRAM chips. When Sequenced Up, this signal is mode dependent.

In 128K mode, the -REFRESH signal is routed to this pin.

In 512K mode, Bit 18 from the Address Mux is routed to this pin.

When Sequenced Down, this signal is forced to logic XRAM_OEO (-RAM Output Enable 0) This is a dual purpose signal that should be tied to pin 24 of the lower PSRAM chip. When Sequenced Up, this signal is mode dependent.

In 128K mode, this is the PSRAM read output enable line for the lower 128K PSRAM chip. It can only assert (active low) if the address is to the lower 128K and the 8032 -RD line asserts.

In 512K mode, this is the PSRAM read output enable AND the Refresh input. If this signal asserts by itself, then a refresh happens. If it asserts along with the -Chip Select pin, then a PSRAM read takes place.

When Sequenced Down, this signal is forced to logic XRAM_WEO (-RAM Write Enable 0) This signal should tie to pin 29 of the low order PSRAM chip. A PSRAM write will be done when this signal asserts along with a valid chip select. When Sequenced Up, this signal is the Write Enable to the PSRAMs in both modes.

When Sequenced Down, this signal is a don't care.

XRAM_OE1 (-RAM Output Enable 1) This is a dual purpose signal that should be tied to pin 24 of the upper PSRAM chip. When Sequenced Up, this signal is the Output Enable control for reads from the upper PSRAM chip in 128K mode. This signal is not used in 512K B~Blgp~a~ilr~arru~ua~~; WO 95/3.io(69 PCTIA895/0N 169 36 mode as there is no upper chip installed. When Sequenced Down, this signal is a don't care.

XRAM_WE1 (-RAM Write Enable 1) This signal should tie to pin 29 of the high order PSRAM chip. A PSRAM write will be done when this signal asserts along with a valid chip select. When Sequenced Up, this signal is the Write Enable to the upper PSRAM in 128K mode.

(Note: The current design does not use an "upper" chip in 512K mode.) When Sequenced Down, this signal is a don't care.

XCE1 (-Chip Enable 1) This is a dual purpose signal that should be tied to pin 22 of the PSRAM chips. When Sequenced Up, this signal enables the PSRAM chips to read and write in both modes. When Sequenced Down, this signal is forced to logic The 512K PSRAM chip requires this line to be forced to logic during power down data retention mode. This line is a don't care on 128K PSRAMs.

CE2_A17 (+Chip Enable 2 or Address_bit_17) This is a dual purpose signal that should be tied to pin 30 of the PSRAM chips. When Sequenced Up, this signal is mode dependent.

In 128K mode, this signal is tied to +Chip Enable and it is always logic In 512K mode, Bit 17 from the Address Mux is routed to this pin.

XWRSTROB (-WRite STROBe) During write, this is a shorter version of the 8032 write strobe.

XWRSTROB is the timing signal used to write to PSRAMS. Data is written to PSRAM at the rising edge of XWRSTROB. This rising edge hits before the rising edge of the 8032 -WR to insure that any PSRAM data hold times are met.

BASE REGISTERS AND ADDRESS MULTIPLEXER Pages 3 and 4 of the Gate Array schematics in Appendix A show the Base gisters and the PSRAM address Multiplexer. See above for a description of the Base Register functions. This section will deal with the circuitry.

The Base Registers are shown at the left of Page 2. The outputs of these registers pass through "AND" gates before going into the Adders. The AND gates allow the base register outputs to be quickly forced to all zeros at the Adder inputs.

The outputs of the Adders feed over to the MUX. This MUX places the results of the READ ADDERS on the PSRAM address pins most of the time by i iir WO 95/31069 pe PAJ89$1051696' 37 default. There is no way to know that the 8032 is going to do a write until the -WR .strobe asse-ts. When -WR asserts, a flip flop switches the MUX over to the WRITE ADDER output. The read adder was chosen for the default value because RAM reads take a little longer than writes. The dual adders are there so that the write address is stable as soon as the -WR strobe asserts.

I.R. RECEIVE CIRCUIT The I.R. Receive circuit has various modes of operation depending on whether the button on the remote is released or if it is continuously held down. This circuit is on page 5 of Appendix A.

When a valid code is clocked into the I.R. RECEIVE DATA REGISTER (0800R), the +IRR VAL (IR Receive Valid) bit and the +VALTILRD (VALid TIL RD) bits will set. The +IRR_VAL bit will remain set until the remote button is released. There are 2 ways to clear the +VALTILRD bit.

1. Reading the I.R. RECEIVE DATA REGISTER will clear "4LTILRD.

2. If the remote button is released and then pressed again, then +VALTILRD will clear when the button is re-pressed.

+IRRNC RECEIVER NO CHANGE) will set the first time that the I.R. RECEIVE DATA REGISTER is read. It will remain set until the remote button is released.

+IRR_RDY goes high as soon as the remote button is pressed and stays set until released.

SECURITY CLOCK GENERATOR The Security Clock Generator is at the lower middle of page 9 in Appendix A. This is a programmable clock generator for the Motorola Security Chip. The original spec for this clock was 5 MHz. To allow for changing oscillator frequencies, this clock was made programmable.

Both the high time and the low time of this clock period can be programmed independently by writing to I/D address 3COOhex. The high time is set with the upper nibble while the lower nibble sets the low time. This time is in multiples of the input oscillator frequency.

The circuit works by loading the program nibbles into 74F169 type counters.

These counters are set up as "down counters" and only one of them will decrement at any one time. Atter one counter reaches zero, the output will toggle, the counter I ki~lgC%#Racasrr~ 88s~ wo 95/31069 PC T/Us95/0S19 38 will re-load and then the other counter will decrement. The inverters at the output of the progrr"- register set the initial value to "divide-by-7".

I.M. SE! IAL BUS CIRCUIT The I.M. Bus is used to talk to the TPU 2740 chip. The I.M. bus circuit is shown in Figures. Refer to the I.M. bus specification for a detailed explanation of this bus.

Briefly, the I.M. bus is a 3 wire serial communication bus. The 3 lines are called I.M._CLOCK, I.M._DATA and I.M._IDENTIFY. The DBE 1200 gate array is always the I.M. Bus Master and therefore always drives the I.M._CLOCK line. The I.M. DATA line is a bi-directional data line (Open Drain with an external pull up resistor). The I.M._IDENTIFY line is an output used to identify the Address" and also to terminate the transfer. An "IM BUS WRITE" is a transfer out of the 8032 to the IM Slave. An "IM BUS READ" is into the 8032 from the IM Slave device.

I.M. bus transfers always start with a 1 byte address and then 1 or 2 bytes of data.. A bit called IIBYTE (3000W.0) determines how many data bytes to transfer.

Another bit called WXRBIT (3000W.1) determines if the transfer will be a read or a write. Page 11 of Appendix A shows the I.M. counter and control logic and Page 12 shows the I.M. Data Shift Registers.

I.M. CIRCUIT OVERVIEW The I.M. circuit is operated via the control and data registers. Here is a quick summary: I.M. BUS ADDRESS REGISTER (2000W page 12 XL IM_AD). The 8032 writes the 8 bit address of the slave device that communication should be established with here. This address is latched in the 74HCT273 in Figure and is transferred to the shift register when the transfer begins. It is not necessary to reload this register if the same address is accessed on two successive I.M. transfers. The byte written to this register will always be the first byte written out of the Gate Array for all I.M. transfers.

I.M. WRITE DATA 1 REGISTER (2400W page 12 XLIM_D1) The byte contained in this register will be the 2nd byte shifted out onto the I.M. bus during I.M. Writes. This register must be reloaded after each transfer.

I.M. WRITE DATA 2 REGISTER (2800W page 12 XL_IM_D2). The byte contained in this register will be the 3rd byte shifted out during I.M. Writes, i st WO 95/31069 JPCMSf9/0S195 69 39 but only if the transfer length is set to 2 bytes. This register must be reloaded after each transfer.

I.M. READ DATA BYTE 1 (1000R page 12 XRD_BYT1) After a read transfer, this register will contain the incoming data byte. If it is a 1 byte read transfer, then the data will be in this register. If it is a 2 byte read transfer, then the second byte received will be in this register.

I.M. READ DATA BYTE 2 (1400R page 12 XRD_BYT2). After a 2 byte read transfer, this register will contain the first incoming data byte. During a 1 byte read transfer, the outgoing address will wrap back and end up in this register.

This wrap feature can be used for error checking or diagnostics..

I.M. BUS CONTROL REGISTER. (3000W page 9 XIM_CTRL) Bit 1 of this register determines whether the transfer is read or write. Bit 0 of this register determines if 1 or 2 data bytes will be transferred.

I.M. BUS START TRANSFER REGISTER. (2C00W page 11 XSTRTIM) Writing any value to this register will start the I.M. bus hardware.

I.M. BUS STATUS REGISTER. (1800R page 6 XSWLO) Bit 7 of this register contains the +IM_BUSY line. This line will be high during the I.M.

transfer.

I.M. CIRCUIT OPERATION The logic on page 11 controls the I.M. Bus transfers. The I.M. clock (IM_PCK) and the 8032 input oscillator clk (OSC_2) are both derived from the 24MHz oscillator. The 8032 does not specify any timing with respect to the input oscillator and the timing that is specified is very loose with respect to a 12MHz input clock.

For this reason, it must be assumed that the Start Transfer Pulse from the 8032 and the IM_P_CK are asynchronous. The first 3 flip flops at the lower left of Figure are used to re-synchronize these signals and to start the I.M. transfer.

After the transfer is started, the 74F269 counter on page 11 will start to count up from zero. The EN_IMCK line will allow the IM_P_CK to gate out to the I.M. bus clock pin 14. The first 8 clocks will clock out the address and the I.M._IDENTIFY line will assert during this time. When the counter reaches a count of 8, the I.M._IDENTIFY line will negate.

If an I.M. Write is in progress, then the I.M._DATA line will continue to be an output for the rest of the transfer. If an I.M. Read is in progress, the I II -c rC WO 95131069 per/M.S/05169TA! I.M._DATA line will switch from an output to an input after the 8th count. The transfer will abort after count 16 or count 24 depending on the state of the I1BYTE bit.

After all of the clocks have completed, the I.M. IDENTIFY line will briefly pulse low one more time to indicate that the transfer is complete. During this entire time, the IM BUSY bit will be asserted and available to the 8032 as status. The IM_P_CLK is created by dividing the 24MHz oscillator by 32. This yields a clock edge at about every 1.3 uS. A full 24 clock transfer takes about 32 uS.

WATCHDOG TIMER The Watchdog Timer is on page 13 of the Gate Array Schematic, Appendix A. This timer can be turned on and off with the bit EN WDOG (3000W.7). The Watchdog is reset in normal operation by writing to address 6400W. The data written to this address is "don't care".

The Watchdog timer is 16 bits long and it is clocked by the OSC_256 clock.

This timer was made out of synchronous counter blocks (I_SCBR) provided by the Gate Array vendor. The Watchdog starts at Zero and counts up. If it is allowed to overflow, then the reset line to the 8032 will assert. The Power on Reset line to the Gate Array will also assert. The 8032 reset line will assert about 256 clocks before the Gate Array POR internal reset asserts. The 8032 requires that a fixed number of clocks be provided while the reset line is asserted in order to properly reset. The internal Gate Array POR line completely resets the Watchdog circuit, so it is necessary to delay these events for proper 8032 reset timing.

NOTE: The Gate Array internal POR line completely resets the chip to a known state except for the OSC divider clocks on page 9 and the IM Read data registers on page 12.

CRC 32 POLYNOMIAL CIRCUIT The CRC-32 circuit is on pages 15-18 of the Gate Array Schematic, This circuit can be used to Check or Generate the CRC-32 Polynomial. This polynomial is four bytes long and is used to verify data integrity.

The circuit has two modes of operation, CRC-32 on and CRC-32 off. The bit X_EN_XOR (6000W.4) determines the mode. When this bit is logic the CRC-32 logic is enabled and any data written to the CRC registers will be multiplied I 14 sp Irgll ~ib~s~ "YB" L"~II"RIIA3e~*~lb~i 41rjlff$9f /0'1s69 WO 95/31069 41 by the CRC-32 polynomial. When this bit is logic the CRC-32 polynomial is disabled and the data shifts into the CRC-32 registers unaltered.

The circuit consists of four 8 bit Read Data Registers, one Write Data Register, the above mentioned control bit and control logic. Here is a summary of the registers.

CRC-32 READ REGISTER 3 (7000R) CRC-32 READ REGISTER 2 (7400R) CRC-32 READ REGISTER 1 (7800R) CRC-32 READ REGISTER 0 (7COOR) CRC-32 WRITE DATA REGISTER (6800W) X_EN_XOR Control bit (6000W.4) CRC 32 CIRCUIT OPERATION Data is entered into the CRC circuit one byte at a time. This is done by writing the byte to the CRC-32 Write Data Register (6800W). After the 8032 completes the write, a hardware state machine will take the byte and shift it into the CRC circuit. (This shift takes about 1.5uS if the OSC is at 24MHz.) When all of the bytes have been shifted in, the resultant can be read out of the four CRC-32 Read Registers. The CRC circuit can be turned off in order to initialize the four registers to a known value.

The CRC-32 Write Data Register is on page 18. This is a parallel in, serial out shift register. The end of the 8032 -WR strobe will start the shift logic in page This logic will synchronize the shift start to the OSC_2 clock. A 3 bit counter will count out exactly 8 clocks, then shut the circuit off.

The X_EN_XOR bit can be used to initialize the CRC-32 circuit to a known value. Some CRC schemes start with all 32 bits set zero, others start with all bits set to one. When X_EN_XOR is set to logic the CRC-32 circuit Exclusive-OR gates are all disabled. This allows the data written to the CRC-32 Write Data Register to enter the CRC-32 flip flop chain unaltered. This feature also allows for breaks in the CRC calculation. When a break occurs, the software could read and store the data in the four CRC-32 READ REGISTERS. At a later time, this data can then be reloaded back into these registers.

The CRC-32 polynomial is: ct- I rs M WO 95/3A069 PCT/US95/05169 42 x^32+x^26+x^23+x^22+x^16+x^12+x^Al +x^10+xA8+x^7+x^5+x^4+x^2+ x+1.

GATE ARRAY PINOUTS Table V shows the pinouts for the gate array

PIN

NO.

1 2 3 4 6 7 8 9 11 12 13 14 16 17 18 19 21 22 23 24 26 PIN NAME GND1 VDD1 PRAM A15 PRAM A16 PXRFSH18

PTESTOUT

PBAND1

PBANDO

PIRR DTA PIRR CLK PIRR RDY P XRESET P IM DTA

PIMCLK

PIMIDEN

PXRAMWE1

PXRAMWEO

PRAM A13 PRAM AS PRAM A6 PRAM A9 GND2 VDD2 PRAM A5 PRAM All PRAM A4 PIN TYPE SPECIAL NOTES

POWER

POWER

OUTPUT_2 OUTPUT_2 OUTPUT _2 OUTPUT_2 OUTPUT_1 OUTPUT_1 INPUT 1 INPUT_1 INPUT_1 INPUT_1 I/O 1 OUTPUT_4 OUTPUT 4 OUTPUT_3 OUTPUT_3 OUTPUT 2 OUTPUT_2 OUTPUT_2 OUTPUT_2

POWER

POWER

OUTPUT_2 OUTPUT_2 OUTPUT 2 drives psram address line drives psram address line.

drives psram rfsh in 128K mode, A18 in 512K mode.

TEST OUTPUT output digital control bit.

output digital control bit.

IR input IR input IR input SYSTEM POWER ON RESET IM bus data line, open drain IM bus clk line, output only IM bus identify line PSRAM #1 R/W line PSRAM #0 R/W line drives psram address line drives psram address line drives psram address line drives psram address line drives psram address line drives psram address line drives psram address line 1_1- I -i -r-;l WO 95/31069 PCT/U895/05169 27 28 29 31 32 33 34 36 37 38 39 41 42 43 44 46 47 48 49 51 52 53 54 56 57 58 PRAM A10

PXRAMOEO

PXRAMOE1 PXCE1 P6805CLK POSC 2

P_XWR

P XRD

PXISBINT

PUPRESET

PDRAM EN

PXENBASE

P_ADO

P_ADI

P AD2 P_AD3 GND3 VDD3 P_AD4 P AD5 P AD6 P AD7 P ALE P XPSEN P A15 P A14 P A13 P_A12 P Al1 P A10 P_A9 PA8 OUTPUT 2 OUTPUT 3 OUTPUT 3 OUTPUT 3 OUTPUT 4 OUTPUT 4 INPUT 1 INPUT 1 OUTPUT 3 OUTPUT 3 INPUT_2 INPUT_2 I/O 2 1/0_2 I/O 2 I/O_2 I/O 2

POWER

POWER

I/O_2 I/O_2 I/O 2 I/O_2 INPUT_1 INPUT_1 INPUT_2 INPUT_2 INPUT_2 INPUT_2 INPUT_2 INPUT 2 INPUT 2 INPUT 2 drives psram address line PSRAM #0 output enable line PSRAM #1 output enable line PSRAM chip select Security Micro Clock 8032 microprocessor clock 8032 write strobe 8032 read strobe ISB interrupt line to 8032 active high reset to 8032 RAM enable bit Base Register enable bit 8032 data bus 8032 data bus 8032 data bus 8032 data bus 8032 data bus 8032 data bus 8032 data bus 8032 data bus 8032 address latch enable 8032 program store enable 8032 upper address bus bit 8032 upper address bus bit 8032 upper address bus bit 8032 upper address bus bit 8032 upper address bus bit 8032 upper address bus bit 8032 upper address bus bit 8032 upper address bus bit 59 PIR-XCLK OUTPUT 4 2 or 4 MHz clk for IR transmitter -iil a4~R*~ IBRI~II-PsaR rrrUr~~l~F WO 95/31069 W CJVUS9$1056' 61 62 63 64 66 67 68 69 71 72 73 74 76 77 78 79 81 82 83 P AO P Al P A2 P A3 GND4 VDD4 PXTAL1 PXTAL2 PA4 P_A5 PA6 PA7

PISBCLK

PISBDTA

PBAND2 PI378_IN P13780UT PPWM OUT PRF SEL2 PRFSEL1

PRFSELO

PRAM A7 PRAM A12 PCE2 A17 OUTPUT 3 OUTPUT 3 OUTPUT 3 OUTPUT 3

POWER

POWER

OSC INPUT OSC OUT OUTPUT 3 OUTPUT 3 OUTPUT 3 OUTPUT 3 I/O 1 I/O 1 OUTPUT 1 INPUT 1 OUTPUT 4 OUTPUT 4

OUTPUT_

OUTPUT 1 OUTPUT 1 OUTPUT 2 OUTPUT 2 OUTPUT 2 OUTPUT 2 demultiplexed 8032 lower address bus bit demultiplexed 8032 lower address bus bit demultiplexed 8032 lower address bus bit demultiplexed 8032 lower address bus bit external crystal oscillator pin external crystal oscillator pin demultiplexed 8032 lower address bus bit demultiplexed 8032 lower, address bus bit demultiplexed 8032 lower address bus bit demultiplexed 8032 lower address bus bit ISB clk line ISB data line output digital control bit.

divide by 2275 clk input for MC1378 divide by 2275 output for MC1378 Pulse Width Modulator output output digital control bit.

output digital control bit.

output digital control bit.

drives psram address line drives psram address line PSRAM CE2 in 128K mode, A17 in 512K mode drives psram address line 84 PRAMA14 OUTPUTI 4mA, NORMAL SPEED, (OUTPUT PORT CONTROL BITS) OUTPUT_2 2mA,, SLOW (10nS) RISE AND FALL TIMES. (PSRAM ADDRESS OUTPUTS) OUTPUT 3 2mA NORMAL SPEED OUTPUT.

OUTPUT 4 4mA NORMAL SPEED OUTPUT. (Used for CLOCKS).

Note: Outputs 1 and 2 grouped differently so output bit current can easily be changed between groups.

I -a -I WO 95/31069 PC1US951/0519 INPUT I TTL INPUT LEVELS WITH SCHMITT TRIGGER INPUT_2 TTL INPUT LEVELS.

I/O_l 2mA OUTPUT DRIVER (with active high enable) OPEN DRAIN OR TRISTATABLE. INPUT IS TTL LEVEL I/O_2 2mA OUTPUT DRIVER (with active high enable). INPUT IS TTL LEVEL [data bus] Table V TPU 2740 ONSCREEN CONTROLLER 124 The TPU 2740 124 functions as an On Screen Display (OSD) controller and also as a Closed Caption Data (CCD) VBI Data Slicer. This device has two functionally separate sections, the OSD and the CCD VBI data slicer. The TPU 2740 contains a RISC based processor called the Fast Processor (FP) that is used to collect the VBI data, communicate with the serial bus, and control the OSD. Some of the internal TPU2740 circuits are running at four times the input clock frequency (This is 72MHz on the TVRO board with an 18MHz input clock). Communications between the 8032 and the TPU2740 are via the 3 wire IM Serial Bus 108.

The TPU 2740 is a fully digital chip, Baseband Video data must first be digitized before the TPU can use it. A 6 bit Analog to Digital converter (uPC660) does this digitizing.

The uPC660 is shown on page 1 of the TVRO schematics in Appendix A.

The input video signal is about 1 Volt P-P and this signal must be "clamped" to a known DC level before it can be digitized. The "VIDEO CLAMP AND FILTER" on page 1 does this using a "Back Porch Clamp" method. This clamp will bias the video signal into the A/D converter so that the "Back Porch" area will be at about 3.69 Volts DC. (The "Back Porch" is the area where the color burst sits.) The resistor network on page 1 comprised of R15, R16, R17 and R18 sets the voltage levels for the clamp and the A/D circuits. The A/D upper reference (pinl 1) is set to about 4.52 Volts and the lower reference (pin 13) is set to about 3.35 Volts. If the input video signal back porch area is biased to 3.69 Volts DC (at pin 12), then the maximum peak to peak swing of the video signal should always be between the voltages at the reference pins. The TPU only uses the incoming video signal to strip off VBI Closed Caption Data. There is no need for the entire 4MHz video bandwidth so R7 and C6 form a low pass filter that rolls off the TPU video at c WO 95/31069 PCI/IJSl 910-519 46 about 1MHz. (Note: The ratios of the clamp voltages are the same as the expected video signal IRE values.) Circuitry in the TPU detects vertical and horizontal sync from the digitized video. The OSD and VBI data slicers use these signals for timing functions. A programmable comparator is used to detect vertical and horizontal sync pulses. It is important that the video clamp function correctly in order for this comparator to accurately detect sync. The FP reads the output of the sync detection circuitry and is able to count horizontal lines, thus is able to read VBI data from a particular VBI line and start the graphic on screen display at the correct video scan line. When a VBI signal that contains the proper lead in and framing data is detected, the VBI circuitry on the TPU will load the VBI data into internal registers that the FP may read. The FP reads this data and inserts it into a buffer. At a later time the VBI data may be read by the 8032 via the IM Bus.

The TPU requires good digitized video and a stable horizontal timing reference on pin 27. The horizontal rate signal is +Burst Gate from the MC1378 and is fed into the TPU at pin 27. If either of these signals is missing or poor, then the TPU will not be able to create a stable overlay.

The OSD portion of the TPU consists of cache memory, character memory, timing functions, and an external 256K by 4 bit DRAM The FP reads high level graphic commands from the IM Bus and stores the graphic information in the external DRAM memory. In conjunction with the cache memory, timing circuitry, and the character generation hardware, the TPU FP outputs the graphic data on the R, G, B, and FBLOUT lines. 8 colors may be generated using the R, G, and B outputs. The FBLOUT (Fast BLanking OUT) signal determines if the video output should contain the R, G, B data from the TPU, or if the incoming live video should be passed through.

The TPU has a 256K x 4 DRAM (U9) for storing overlay screens and data.

This is a fast page mode DRAM and refresh logic is avoided by constantly reading out the screen data, even when there is no overlay on the screen.

R,G,B COLOR CONVERTER.

The StarSight Telecast graphic display requires 8 colors, black, white, gray, yellow, light yellow, light green, and red. These colors are not the standard 8 NTSC saturated colors that the TPU puts out. A "Color Converter Circuit" is WO 95/31069 PCIWUS95/0501 9 47 required to translate the TPU saturated digital colors into the StarSight graphic display "pleasing" colors. This circuit is on page 2 of the PCB schematic.

The Color Converter if made from three "8 into I analog switches". There is one switch for each of the R,G,B outputs. There is a precision voltage divider that creates the desired R,G,B voltages. The analog switches route the proper voltage to their outputs based on the 3 bit digital R,G,B signal from the TPU. The TPU R,G,B outputs are programmed to be open drain so that a full TTL level swing is avaiiable to the multiplexing analog switches. R14 and C18 on page 2 form an inexpensive R-C delay for the Fast Blanking Signal to compensate for delays in the R,G,B channel.

OVERLAY GENERATOR AND VIDEO SYNCHRONIZER.

The Motorola MC1378 is used as a main building block for the Video Synchronizer. The MC1378 operates in REMOTE MODE (pin 1 is set HIGH). In this mode, external video is required to create the synchronizing timing signals. See page 3 of the TVRO Schematic of Appendix A for a block diagram of the 1378.

A 1 volt peak to peak NTSC video signal must be fed into pin 24 to provide timing information for both the 1378 and the TPU.

The signal at pin 24 is the called the "Remote Video Signal". This signal is internally clamped in the 1378 and then Composite sync is separated out. Composite Sync is used to separate out Vertical Sync and also to lock the 4.03 MHz Horizontal Phase Locked Loop. Both Composite Sync (pin 39) and Vertical Sync (pin 38) are externally available for debug and timing.

The separated composite sync is used to lock the 4.03 MHz PLL (using PD1). The VCO in this PLL is formed around a 4.03MHz ceramic resonator. The free running frequency of this ceramic resonator must be adjusted with C39. The best way to adjust this VCO is to use a frequency counter and adjust C39 until the frequency at U1-5 is 15,750 Hz. This adjustment is made with the Video In signal disconnected so that the VCO is free running.

The 4.03 MHz VCO output is divided by 256 to obtain horizontal frequency, and then further decoded to create "BURST GATE". Burst Gate (MC1378 pin 5) is about 4uS wide and is centered around the 3.58MHz color burst. This signal is the main timing reference for the overlay display. It is used extensively by both the 1378 and TPU 2740. The TPU uses Burst Gate to decide when to start the overlay.

I re WO 95/310(9 PCYTI89.1/05169 48 There is a programmable counter in the TPU that sets the delay from Burst Gate to the overlay start. (The overlay starts when +FBLOUT goes low.) Any jitter on Burst Gate will cause an annoying side to side motion on the overlay.

The color burst from the remote video is used to lock the 4X color sub carrier oscillator using PD3 which is gated by burst gate, Phase of the locally generated composite video from the encoder section is compared against the same sub carrier reference used to lock PD3. This is done by means of PD4 so that the sub carrier phases of both the local and the remote signals are made essentially equal.

Phase detector operation summary: 1. PD1 compares and locks the internally counted down 4.03 MHz VCO to the incoming remote horizontal sync. It is fast acting to follow VCR source fluctuation. Its PLL filter network consists of C24, C38, and R19.

2. PD2 is not used in this design.

3. PD3 a gated phase detector, which locks the crystal oscillator frequency divided by four to the incoming remote signal burst.

4. PD4 controls the internal phase shifter to assure that the outgoing local color burst has the same phase as the incoming remote burst at PD3.

PD5 not used in this mode of operation Video paths inside the MC1378 The remote video is AC coupled and fed in through pin 24 and clamped to proper DC level (blanking is at 0 The clamped video is fed to the Fast Video Switch where switching between the local and the remote video occurs controlled by Overlay Enable at pin 25. The second path leads to the PD3 where the remote video burst is compared against crystal oscillator frequency divided by four. The third path leads to Identity Detector which determines whether incoming signal is PAL or

NTSC.

The local video is generated from R, G, and B signals which are direct coupled, 1 volt peak to peak inputs at pins 14, 15, and 16. After that follows the Color Difference and Luma Matrix which produces B-Y, R-Y, and the luminance -Y signals. The B-Y and R-Y signals are clamped and sent to their respective modulators. Modulated B-Y and R-Y signals are summed together thus making 3.58 MHz NTSC chroma signal which is fed out pin 18. This chroma signal is filtered -r lW=1 ~atcaarru~arranar~laa*msn~~sn~ WO 95/3106) PCT/1,S98/0 169 49 by a 3,58 MHz band-pass filter consisting of C33, C, C C35, R22, R13, and TI, The filtered chroma signal is fed back in at pin 20, At this point the chroma signal is added to the luminance signal which passes through a 400 nS delay line. The need for this delay line arises because of the longer path for the chroma signal through the modulators and the band-pass filter, The delay line should have at least 4 MHz bandwidth, and good linearity through its entire bandwidth as well as linear group delay. The chroma and luma signals combined make the composite NTSC video signal which is then clamped by the local video clamp and fed to the fast video switch to be mixed with the remote video at the output pin 27.

To keep the local video amplitude correct in respect to the remote video amplitude the two burst amplitudes are compared in the ACC detector and made equal using a variable gain ACC ampl;ficr in the locally generated chroma path.

The absolute burst amplitude of the remote signal is detected by the kill detector, the chroma of the locally generated signal being turned off when the remote burst falls below a predetermined level. The kill level can be adjusted by changing the value of the resistor R3 at pin 31. 470K kills at about 10-20 mVp-p remote burst. Normal burst is 286 mVp-p.

POWER SUPPLY The system requires 5 VDC digital, 5VDC analog, and possibly 12 VDC analog (for certain RF Modulators).

The current requirements are: VDC Digital 550mA VDC Analog 150mA 12 VDC Analog It is very important that the microprocessor -PWRBAD line is set to zero at least 10mS before the 5 VDC Digital supply drops below 4.75 volts. This allows the microprocessor to complete any pending database transactions and do an orderly shutdown of the DRAM. This is accomplished by monitoring the unregulated power with the Seiko S80731AN power supervisor IC After the unregulated supply drops below about 8 volts, the S80731AN will assert -PWRBAD. This causes an interrupt in the microprocessor which will initiate power down subroutines. U3 monitors the 5VDC supply and controls the -RESET line into the DBE 1200. This I- Wi WO 91/31069 .111.7111,18Q5/05 j 69 enrtsa clean reset~ signal during power up and, power dIown, I.1R, TRANSMITT17,R I [6, 'fle L 1 Trtnsmiter 116 function Is done with a MC6814C0509 nilCrr~Iocasgor, This microprocessor Is programmedwc to Interface with fihe software nrial bun1 I110 fot, 00fllwlilletlol witlh the 80,12. Th Isin mcoprocemor caln generate puissns Oil Its Outputt pilli that sinmulate, JR sipals for most VCR's, The ROM In the MC681005OC9 confalis thia excuable programn and Ohe codes tai-d seq~toncos to control a VCR. via Infrared,, Port D onl tie MC6814C0509 li used to set, tie lerial addlress that It will respond to, The clock signal Is generated by a programmable clock (livider inI the, DB1I200 gate array.

Figure 6 Illustrat~es how lpackato 300, me~ssages 302 antI commnandls 304 are rclatedl, 17lgure 7 provides Wurther details of packets 300, Unless otherwise noted, all leldls are b~nary 2's complement numbers, All uindefineod bits within. fields tire reservedl, and Initiaiz~ed to zero, All muit1-byte variables aire stored most significant 1 5 b~yte first (big ()flill1U formnat), twoles otherwise nioted. Notable exceptions are thle CRC 16 and CRC32 fields, which aire stored InI reverse order, least; signifianlt byte first (little endian format), All vlowable text strinjis are comprisei OxcIlusively of printatble characters, where printable Is defined as any character with ASCII values In tie range of 32 (2011) to 122 (07AI;% Inclusive, B~oth upper and lower case letters are supported, All fixed floldls which contain ASCII strings that (1o not till the field are to padded with NULL (ASCII value 0) characters, Wness; otherwise speciWd, strings which dto fill the field are not NULL terminatedl, Packets 300 Packets 300 consist of error detection Information and informlation to be operated on by a subscriber unit. The packet fields shown In PIgUre 7 have the following descriptions, as shown in Table VI: W( 95/31069 PCT/US9/051< Field sync size packet time stamp Description Code number indicating the start of a Packet. Used to locate the start of a Packet when transmission errors occur. Value is always 2C(hex).

Is the total size of the packet, in bytes. This includes the 'sync', 'size' 'packet time stamp, 'CRC1', 'Message', and 'CRC32' fields. There is no official maximum size for packets. All units which listen to packet streams should be prepared to ignore any packet that exceeds the maximum packet size the unit can handle. First generation Subscriber Units ignore any packet that is greater than 2048 Bytes in length, total.

Is the four byte time stamp of the minute the packet was transmitted. This field is used by subscriber units to differentiate data streams on recorded mediums (such as VCR tapes) from live data streams. The time is encoded as minutes since January 1, 1992, rounded to the nearest minute boundary. Since packet headers are not guaranteed to be transmitted on minute boundaries, the maximum error of this field is up to 30 seconds.

Is a two byte number identifying the unique ID of the VBI stream the command has been transmitted on. This field may be used by subscriber units to identify their assigned "home" data stream, where their key distribution message will be broadcast.

Least significant word (16 bits) of the 32 bit cyclic redundancy code (CRC-32) value for the Packet header The CRC is computed over the 'sync' and 'size' fields. This field is stored least significant byte first (little endian format).

Information bearing portion of a Packet. Contains one or more Commands.

vbi Stream ID CRC1 Message II I--ci 2nra* -rrr WO 95/31069 PCfIUS95/05169 52 Command An entity that contains information pertaining to a specific portion of the database, or time markers, or user authorization informatlo Each type of Command contains a unique code number and a length field.

CRC32 32 bit cyclic redundancy check (CRC.32) value. The CRC is computed over the 'sync', 'size', 'CRCI', and 'Message' fields, The CRC32 generator polynomial is X 3lX2 6 %xF 2.l.Xl16 xl' X I x

I

x1+ l x'-X x" +x 1, This field is stored least significant byte first (little endluan format), Messages 302 Messages 302 are the information bearing portion of a Packet 300. As shown in Figure 8, they consist of one or more Commands 304. Messages contain an integral number of Commands and Commands are not split between Messages, The 'size' field in the packet header is used to determine when all Commands have been processed. The optimal size o; the Message field is 250 bytes or less, Commands that are larger than 250 bytes should be contained singly in a packet. The bytes following the last byte in the last command Is always the first byte of the CRC32 field, Commands 304 Commands 304 are the elements of the StarSight Data Transmission Network required to build a TV schedule database, maintain the current time of day, and handle user authorization and security issues.

The different Commands are distinguished by a unique value known as the 'Cmd type'. It is contained in the least significant 6 bits of the Command's first byte. A total of 64 unique command types are possible. The second field is 'Cmd length', used to determine the byte size of the Command. The size includes the 'Cmd type' and 'Cmd length' fields. The 'Cmd length' field may be a one or two byte quanti:y. Table II lists all commands and specifies the size of the 'Cmd length' fields. Also included in this table is the encryption offset for the command. This concept is discussed in the section that follows this table.

i 9 -arr ~e WO 95/31069 COMMAND NAME Time Command Daylight Saving Time Change Command Region Commaind Chamnl Dtto Comawnd Show list Command ShownTi Command Reserved 1 0 Show lDeseriptlon Commatid Reserved Reserved Themne Category Command Theme Sub-Category Command Subscriber Unit Reset Command Authorization Commnand Reserved Reserved Key Distribution Command Reserved Reserved Sequence Number Command Station Node Status Command Long Assign IR Codes Command Reserved Subscriber Unit Command Reserved Reserved Reserved Reserved Reserved All Future Command Definitions

COMMAND

CODE

1 2 3 4 6 7 9 10 (OAH) I1I (013H) 112 (OCH) 13 (ODH-) 14 (OEH) 15 (0Ff-) 16 (101OH) 17 (11Ff) 18 (12Ff) 19 (131-1) 20 (14Hf) 21 22 (16H) 23 (17141) 24 (18Hf) 25 (1 9H) 26 (1AH) 27 (1 BH) 28 (1 CH) 29 (IDH) 30-63(IEH-3FH2 SIZE FIELD

SIZE

2 2 2 2 2 2 2 2 2 VCTIUS9.IOS 169

ENCRYPTION

OFFSET

2 10 (OAH) 2 2 2 2 2 2 2 2 2 2 2 2 3 3 __1 UBII~ X 1911R r WO 95/31069 PCT/US95/05169 54 Table VII Subscriber units that do not recognize a command type (as will happen in the future when new commands are implemnented) must compute the Command length and skip over/ignore the command.

The most significant bit of the Command's first byte is a flag that signals whether the command is encrypted or not, When set, the command is encrypted, when clear, not encrypted. It is probable that the only commands which are passedi to the Subscriber Unit in an encrypted format are Show list, Authorization, and Key Distribution Commands. The Subscriber Unit should however be prepared to decrypt any command.

The starting offset of the encrypted portion of the command is also listed in the previous table. Most commands leave a portion of their contents in the clear so that network entities which process the packet stream may filter out unneeded commands without decrypting the guts of the command. (Note that the encryption offset for future commands may be changed when the commands are actually implemented.) The second most significant bit of the command's first byte indicates which of two program keys are to be used when decrypting the command. When the bit is clear, decryption program key 0 is used, when set, key 1 is to be used.

Since it is necessary to add an initialization vector and pad characters, the process of encrypting a command increases the amount of memory necessary for storing the command. The initialization vector is an 8 byte field that is always prepended to the start of the encrypted byte stream. The padding is appended to the byte stream before it is encrypted. The purpose of the padding is to help the Security Module determine if the encrypted data has been "tampered" with. Enough pad characters are added to make the length of the raw data stream a multiple of eight. If the length begins as a multiple of eight, 8 pad characters are added. The value of the pad characters are the number of fill bytes that have been added; if 3 extra bytes are added to the command then each fill byte will have the value 3. The encrypted data within the Command is stored as shown in Figure 9.

a I i 9P^ WO 95/31069 PCT/US95/05169 Future revisions of this command set may append field definitions onto existing commands. Command processors should be prepared to ignore all data that follows the last recognized field.

Some commands are addressed to particular units or groups of units. Units are addressed using a logical address that is comprised of two parts; the four byte batch number and the one byte unit number. The batch number is used as the group address, directing the command to a group of units that share the same batch number. A batch number of zero has a reserved meaning it addresses all units. All other possible batch numbers are valid addresses. a command transmitted with batch number 0 is intended as a system wide broadcast, while a command with batch address 23456 is directed towards units in batch group 23456 only. Units in other batch groups should ignore the latter command).

The unit number is used to identify a particular unit within the batch group.

Up to 255 units may be contained within a batch group. The unit number of zero has the reserved meaning of addressing all unit's within a batch group. a logical address with batch number=23456, unit number=0 is directed to all units within the batch group 23456).

Commands required to build the subscriber unit database are typically sent repetitively, in the order shown in Table VIII: Theme Categories Always acquired (if not already acquired).

Theme Subcategories Always acquired (if not already acquired).

Regions Region's list of channels is acquired if the unit has been authorized.

Channel Data Channel data is acquired if the channel is in the region's list of channels.

Show lists Show list is acquired if it is applicable to an active channel in the region's list of channels. Show lists give the schedule data for a single channel for a single day. The current day's data is sent more often than succeeding day's data.

Show Titles Show title is acquired if it is referenced in some acquired Show list and the subscriber unit does not already have it.

~-I

olra~r---u L WO 95/31069 TPCTIU$95/05169 Show Descriptions Key Distributions Show description is acquired if it is referenced in some acquired Show list and the s: ,riber unit does not already have it.

Key distribution commands are always processed, if the batch address of the command matches the unit's assigned batch address.

Table VIII Other messages are interspersed in this cyclic stream on a random basis as required. Note that transmission errors can cause missing messages and commands can therefore be received out of order. Note especially that there can be gaps in the Show lists. Subscriber units must be able to handle missing and out of order messages.

The following sections describe each command. Commands are shown in their non-encrypted form, but the reader must be aware that the above mentioned modifications due to encryption may be made to any command.

Time Command Time Commands (Figure 10) specify the current time of day and date. They are sent periodically, at a predetermined rate. Subscriber Units 52 (Figures 1-4) should reset their current time of day and date to agree with the value received in this message.

The fields of time commands shown in Figure 10 are as described in Table IX: Field Description Cmd type Command type 1. Identifies command as a Time Command.

enc fig Flag indicating if the current command has been encrypted.

Command type and command length fields are never encrypted. O=not encrypted, 1 =encrypted.

key ID Decryption key ID. Identifies which of two current "program" decryption keys should be used to decrypt this command.

Cmd length Number of bytes in the command (including the type and length fields).

L i L I ~I Bb~ WO 95/31069 PCTUS95A05169 Time DS fig sign fig default time offset time (secs) Current time of day and date encoded as number of minutes from midnight, January 1, 1992. Time of day and date is Greenwich Mean Time.

Daylight Saving flag. Flag indicating if Daylight Saving is in effect. Sent whether or not default time zone uses Daylight Saving time. 0 Daylight Saving not in effect, 1 Daylight Saving in effect.

Sign bit for the default time zone offset field, which follows.

If set, it indicates the time zone offset is negative, and should be subtracted from Greenwich mean time. (For data provider stations West of the Greenwich Meridian, i.e. the entire U.S.

and Canada). Note that this implies the time zone offset field is not a two's complement binary number.

Four bit field indicating the number of hours offset from Greenwich Mean Time to the time zone of the data provider station transmitting the StarSight data. Intended to be used when displaying local time before the Subscriber Unit has been authorized (which sets the real time zone). The legal range for this field is from 0 to 12 binary.

Is the low order seconds part of the time field, stored previously in the command. The resolution of this field is seconds past the minute. The legal range is 0 to 59 inclusive.

Table IX Daylight Saving Time Change Command The Daylight Saving Time Change Command defines when the next Daylight Saving time changes will occur so that displays of schedule data for time periods that contain these changes can show the correct adjusted local time. Subscriber units must add their Time Zone offset (obtained from the Authorization Command) to calculate the GMT time for the change corresponding to their local change time.

Show list entries after this calculated GMT time should be shown with a time offset affected by the upcoming Daylight Savings state. The fields in the Daylight Saving Time Change Command as shown in Figure 11 are defined in Table X.

I I I u I 1~LPSs~i~ar~~ WO 95/31069 PCT/US9/5 169 Field Cmd type enc fig key ID Cmd length Description Command type 2. Identifies command as a Daylight Saving Time Change Command.

Flag indicating if the current command has been encrypted.

Command type and command length fields are never encrypted. 0=not encrypted, 1 =encrypted.

Decryption key ID. Identifies which of two current "program" decryption keys should be used to decrypt this command.

Number of bytes in the command (including the type and length fields).

Time of day and date when the Daylight Saving time would be enabled at the Greenwich Meridian. Encoded as number of minutes from midnight, January 1, 1992. Time of day and date is Greenwich Mean Time. The enable time is always less than the disable time.

Time of day and date when the Daylight Saving time would be disabled at the Greenwich Meridian. Encoded as number of minutes from midnight, January 1, 1992. Time of day and date is Greenwich Mean Time. The disable time is always greater than the enable time.

Table X Enable Daylight Saving Disable Daylight Saving Region Command The Region Command identifies all channels for which StarSight Data is available and could possibly be received by a Subscriber Unit in the given region.

One Region Command is sent for each region in the area serviced by a data provider station. For example, the channel lineup for each cable system constitutes a region.

The Authorization Command sends the region ID. Once the region ID is known, the Channel Data for each channel in the region can be acquired from the Channel Data Commands.

The channel IDs in this command are not needed by the subscriber unit after it has acquired the Channel Data for each channel in the user's region. However, i-a ~p~i~raun+arr~ na~ss~ WO 95/31009 PCT/US95/05169 59 the region ID and version must be held in case the Channel Data is lost power outage) or has changed and must be re-acquired.

Channel ID entries are listed in the default order that Subscriber Units should display them in until the user has changed the sequencing using a setup screen.

Channel ordering is more or less numerical, and Channels such as HBO and DISNEY are all given a native channel number equal to 1 and probably ordered alphabetically by the 'name-affiliation' field.

Only Base channels are sent in a Region Command (see Duplicate Channels Command). The fields in the Region Command as shown in Figure 12 are defined in Table XI Field Cmd type enc fig key ID Cmd length Region ID Description Command type 3. Identifies command as a Region Command.

Flag indicating if the current command has been encrypted.

Command type and command length fields are never encrypted. 0=not encrypted, 1 =encrypted.

Decryption key ID. Identifies which of two current "program" decryption keys should be used to decrypt this command.

Number of bytes in the command (including the type and length fields).

Unique region ID number that must match one of the region IDs received in the Authorization Command. Identifies the region for which the following list of channel IDs is appropriate. This field is never to have a zero value.

Indicates if region is a broadcast, cable, or satellite system.

(O=broadcast, 1= standard cable, 2=IRC cable, 3=HRC cable, and 5=satellite. All other values are undefined.).

Offset, in units of 1/2 hours from 6:00PM, to prime time for the region. prime offset 1 means prime time starts at 6:30 PM, 2 means prime time starts at 7:00 PM, etc.

Is a flag indicating how the date field in this command should be interpreted. If this flag is set, the date represents when the region type prime offset date type flag lie 3"-cll-- WO 951/31069 PCT/I[JS95/05169 date nbr Chan IDs Channel ID tune channel nbr information in this command expires. If the flag is clear, the date represents the time the information in this command becomes valid, Specifies the time when the information in this command either expires or becomes active. See the explanation of the date type flag. The date is encoded as number of minutes from midnight January 1, 1992, Greenwich mean time.

Number of channel IDs in the region. This number must be greater than 0.

Channel ID number used to identify the Channel Data Commands required to assemble channel data for all channels in the subscriber's system. This field is never passed with a zero value.

Channel number used to tune a TV/VCR to this channel.

Maximum tunable channel is channel 511.

Note: tune channel number is sent in this command to avoid having to send a Channel ID entry for each cable system that places the channel on a different tuning channel number.

HBO might be on channel 10 on one cable system and on channel 25 on another. Putting the tuning channel number here means only one HBO entry needs to be sent in the Channel Data Commands.

This field has no meaning if region type is broadcast. If region type is satellite, this field indicates the band, (00=C Band, 01 =KU Band, and 02 03 are undefined). If region type is any of the cable types, this field indicates what source this channel is on (00 no source specified, 01 source A, 02 source B, 03 source C).

3 bit field which indicates the type of channel (00 no special attributes, 01 =extended basic, 02 premium, 03 pay per view, 04=video on demand, all other values are reserved.).

source channel type r I-a WO 95/31069 IM/USO95105I 69 satellite alpha ID satellite numeric ID 5 bit field representing the alphabetic portion of the alphanumeric satellite identifier the of satellite S4).

This field is present (in all Channel ID entries) only if the 'region type' field Satellite Field value 1 represents the letter 2 is etc.. The legal range for this field is 1-26 inclusive, representing the alphabetic characters through 5 bit field representing the numeric portion of the alphanumeric satellite identifier the of satellite S4).

This field is present (in all Channel ID entries) only if the 'region type' field Satellite. The field is broken up over two consecutive ytes. The legal range for this field is 1-31 inclusive.

6 bit field representing the transponder number to be used to tune to this channel on a Satellite system. This field is present (in all Channel ID entries) only if the 'region type' field Satellite. This field is never passed with a zero value. It's legal range is 1-63 inclusive.

Table XI transponder no Channel Data Command The Channel Data Command gives channel information used for various displays. Channrm Data Commands are sent for each channel in all the regions serviced by a data provider station (PBS station node). The subscriber unit compiles information on all the channels in its region using the Channel Data Commands that contain a Channel ID entry matching one in its region list.

Only Base channels are sent in Channel Data Commands (see Duplicate Channels Command). The fields of the Channel Data Command as shown in Figure 13 are defined in Table XII.

Field Description Cmd type Command type 4. Identifies command as a Channel Data Command.

1 e 9 911 eamm raraxwoummm- I I I WO 95/31069 I'CT/IIUS95/05169 enc fig key ID Cmd length nbr entries nat chan msb Channel ID name fig native channel nbr name abbreviation bits Flag indicating if the current command has been encrypted.

Command type and command length fields are never encrypted. 0=not encrypted, I =encrypted, Decryption key ID. Identifies which of two current "program" decryption keys should be used to decrypt this command.

Number of bytes in the command (including the type and length fields).

Number of Channel ID entries in the current command (not the total number in the system). This field must always have the value of 1 only ONE channel entry can be included in each command.) Most significant bit for the 'native channel nbr' field.

Channel ID number used to identify the Channel ID entries that match those in the subscriber's region.

Flag indicating if the channel's name should be displayed as a number or as a three character text string. (0=number, 1 =text). This flag must be set if the native channel number is specified as zero.

The channel number associated with the channel if it were in a broadcast region. This is the number used to identify the channel when the 'name fig' is 0. Normally this number matches the tune channel number; however, on cable systems channels get moved around. E.g. channel 5 could be on cable channel 29. In this situation, the tune channel number will be 29 while the native channel number will be 5. If the native channel number is zero, the name_flg field in this command must be set.

A bit field indicating which characters from the name affiliation string should be used as the stations "call letters".

The MSBit (bit 7) of this field represents the first byte in the name affiliation string (byte while the LSBit (bit 0) represents the last byte from the string (byte 15). a value r F1PII ii~s 0 IP~c"" aru~---sa~ l rr* WO 95/31 69 PCTlUS9S51951 63 of 11110000B for this field, with a name affiliation string of ITVU-FOX would indicate the stations call letters .re

KTVU).

If the name fig field is set, a total of one to fou.- bits must be set in this field.

name-affiliation Up to 8 character ASCII text string used to identify the channel for display purposes. Padded with Null characters if.

less than 8 characters long. This string may not be NULL terminated if it is eight characters long.

Table XII Show list Command Show list Commands provide schedule data for one day for a given channel.

Show list commands do not contain schedule gaps (even for periods when the channel is off the air). Show list commands are sent for every channel in all regions of the system. Show list commands contain multiple Show Slot entries, with each entry corresponding to a single show in the channel's schedule.

Show list Commands represent at least 24 hours of schedule data. The first entry for a show list begins at midnight, Greenwich Mean Time. Programs which straddle the boundary between consecutive Show lists are represented only once, in the Show list in which their start time resides. The next Show list represents the portion of time in which a program from a previous Show list overruns into it with a dummy show entry. These filler entries are recognized using the 'dum fig', which when set indicates the entry for the show at this time slot can be found at the tail end of the previous day's show list. Only the first entry in a show list can have the 'dum fig' set. Dummy show entries operate identically to valid show entries, except that their title and description text may be substituted with something that labels it as a filler entry. If a program's start time coincides exactly with the Show list boundary time, it will be represented only once, in the next Show list.

Show list Commands, when they are encrypted, are encrypted starting with byte 11 in the above diagram starting with the 'nbr show slot entries' field).

This allows the Show list Commands to be discarded if they are not applicable to the subscriber unit's region or have already been received. Ignoring unneeded Show lists may help a Subscriber Unit's data processing throughput, since decryption is I i r -r---14 WO 91131069 POT/0891/05169 64 io cosuning. Thio fields of ii Show list Command as shiown In Figure 14 aro dolimd In Table XIII, Pleld Cmid typea 01)0 flg key ID) Cind length version Description Commrid typo 5, Identifies commamnd as a Show list Cormand.

Flag idicating ir thle ourrent commalu iis boon aecrypted.

Comnmandi type and command length fields are never encrypted, 0--not encrypted, I =encerypted.

Decryption key ID, Identifies which of two current "program" decryption keys shiould be uised to decrypti tis commnd.

Number of bytes in the command (including tile type arnd length fields).

Show list version number, Used to identify when changes have been made to thle Show list for the given dlay, 'version' starts at 0 when first sent over the nietwork and increments for every change to the Show list for that day within thle timei period (iLe. one week) that the given dlay is active, If thle version field differs from tile value currently hold by the subscriber unit, then the new schedule replaces the current, ona.

Channel ID number identifying the channel whose schedule is being sent. Matches the channel ID number in one of the Channel Data Command entries, This field will never have a zero value.

Start time and start date for the first show in ais Show list command. Encoded number of minutes from midnight January 1, 1992, Greenwich Mean Time. Start times for subsequent shows are calculated by adding Successive duration's from each Show Slot entry, Thus, a show that starts in one day and finishes in the next Johnny Carson) would be the last show in the list.

Channel ID start time IPIIR(~~E~"L";~Z~C~~N~~lm;W wo O/3IIO)6 p(W* 8l9MABl 169 nbr show slot entries DID fig grp fig pay/view fig fgrp fig dum flg duration Number of shows on this channel for the entire day, counting the dummy entry if one exists.

Flag indicating if a DID field is present in the current Show Slot entry; 0=not present, 1 =present.

Show group flag indicating if this show is a member of a show group. 0=no, 1 =yes.

Indicates show is a pay per view event. 1 yes, 0 not a pay/view.

Show group flag indicating if this show is a member of a show group. 0=no, 1=yes.

Dummy entry flag. Indicates that the program at this time slot can be found at the end of the previous day's Show list. Only the first entry in a show list may have the 'dum fig' set.

Show duration in units of 1 minute. The minimum total show duration is 5 minutes, the maximum is 4 hours, or 240 minutes.

Show ID number. Unique 20 bit number used to identify the Show Title command containing the show's title. This field may have a zero value, which indicates no show information is present.

Description ID number. Unique 16 bit number used to identify the Show Description Command, which contains the show's episode description. If a description for this show does not exist, the DID fig will be left clear and this field will be omitted. This field may not have a zero value.

Show group ID number. Identities program as being a member of the set of programs that all have this same group ID number. Field is only present if the 'grp fig' field =1.

This field may not have a zero value.

Note A SERIES recording for a program that has a show group ID number will cause all members of the group found on the same channel to be recorded. Record queue entries for

DID

show group ID WO 15/31069 P C, T/ us 9.110.516 9 66 show groups are deleted 2 weeks after the last recording is made so that users do not have to turn off group recordings.

Table XIII Show Title Command Show Title Commands contain the name of a program COSBY SHOW) and some program attributes used in Theme searches. Show titles are usually compressed using a Huffman encoding scheme.

The uncompressed show title must be between 1 and 86 bytes in length, inclusive. Since the display capabilities of Subscriber Units is limited, titles which are greater then 38 bytes in length may be truncated.

Show Title Commands must be saved in the database if the show is in the Show list for at least one channel in the subscriber's region. All other Show Title Commands should be ignored. Show Titles that are needed are recognized by matching the SID number in the Show list with the SID number in the Show Title Command. The fields of the Show Title Command as shown in Figure 15 are defined in Table XIV.

Field Description Cmd type Command type 6. Identifies command as a Show Title enc fig key ID Cmd length cmp fig Command.

Flag indicating if the current command has been encrypted.

Command type and command length fields are never encrypted. 0=not encrypted, 1 =encrypted.

Decryptlon key ID. Identifies which of two current "program" decryption keys should be used to decrypt this command.

Number of bytes in the command (including the type and length fields).

Flag indicating title is compressed. A few titles are longer when compressed using the Huffman encoding scheme (e.g.

lots of 'x's or 1=title has been compressed, 0=title is uncompressed ASCII.

Flag indicating show contains closed captioning information (VBI line 21). 0=not close captioned, 1=closed captioned.

WO 95/31069 PCT/Si95/05169 67 stereo Flag indicating show is broadcast in stereo. 0=not stereo, 1 =stereo, BW/C Flag Indicating If show is broadcast in black white or color.

0=color, 1 =black white.

SID 20 bit unique number identifying this show. This Show Title Command is of interest to the subscriber unit only if this number is also found in the Show list for some channel in the.

unit's region. This field is never passed with a zero value.

Theme ID Number that identifies the Theme type and genre information appropriate for this program. Used for Theme searches.

Subcategories have sets of Theme ID numbers identifying the types of shows to be selected when a Theme search is performed for that sub category. Shows whose 'Theme ID' field matches one of the values in the set are selected. A zero value indicates no theme information is present.

show title Huffman encoded or straight ASCII text string giving the show's title. Huffman encoding scheme is described in Appendix A. The string is always NULL terminated. The NULL character is appended before it is Huffman encoded.

Table XIV Show Description Command Show Description Commands contain the description of an episode of a program and some program attributes used in Theme searches. Show descriptions are usually compressed using the same Huffman encoding scheme used for show titles.

The uncompressed show description must be between 1 and 162 bytes in length, inclusive. Since the display capabilities of Subscriber Units is limited, descriptions which are greater then 120 bytes in length may be truncated.

Show Description Commands are sent for all shows that have descriptions in all regions serviced by the data provider. Show Description Commands must be saved in the database if the DID is referenced in the Show list for at least one channel in the subscriber's region. All other Show Description Commands should be ignored.

Show Descriptions that are needed are recognized by matching the DID number in WO 95/31069 PCT/US95/05 9 68 the Show list with the DID number in the Show Description Command. The fields of the Show Description Command as shown in Figure 16 are defined in Table XV.

Field Description Cmd type Command type 8. Identifies command as a Show Description Command, enc fig Flag indicating if the current command has been encrypted.

Command type and command length fields are never encrypted. 0=not encrypted, 1=encrypted.

key ID Decryption key ID. Identifies which of two current "program" decryption keys should be used to decrypt this command.

Cmd length Number of bytes in the command (including the type and length fields).

DID Description ID number. Unique 16 bit number identifying this episode description. This Show Description Command is of interest to the subscriber unit only if this number is also found in the Show list for some active channel in the unit's region. This field is always non-zero.

cmp fig Flag indicating description is compressed. A few descriptions are longer when compressed using the Huffman encoding scheme lots of 'x's or I =title has been compressed, 0=title is uncompressed ASCII.

CC Flag indicating show contains closed captioning information (VBI line 21). 0=not close captioned, 1 =closed captioned.

stereo Flag indicating show is broadcast in stereo. 0=not stereo, 1 stereo.

BW/C Flag indicating if show is broadcast in black white or color.

0=color, 1 =black white.

rating fig Flag indicating if the command has the ratings fields in bytes 7, 8, and 9. Otherwise these bytes are absent and the Theme ID field begins in byte 5. 0=ratings bytes not present, 1 =ratings bytes present.

WO 95/31069 PCT/US95/05169 critic's rating MPAA rating traits bit mask Three bit field representing the critic's rating of the movie. It is a number which Is interpreted as follows Ono rating, 1 =poor, 4 =excellent, Values 5-7 are reserved.

Four bit field indicating the movie audience suitability rating.

0=no rating, I=G, 2=NR, 3=PG, 4=PG13, 5=R, 6=X, 7=NC17. Values 8-15 are reserved.

Eight bit mask indicating program's attributes such as violence or nudity.

Bit Attribute 0 profanity 1 nudity 2 violence 3 adult situation 4 adult themes not used 6 not used 7 adult language The year which the episode was produced minus 1900,o. For example, a movie produced in 1943 would have the binary value 4310. This byte is present only if the 'rating fig' is set. The value 00 indicates that the production year has not been specified.

Huffman encoded or straight ASCII text string giving the show's episode description. Huffman encoding scheme is described in Appendix A. The string is always NULL terminated. The NULL character is appended before it is Huffman encoded.

Table XV year produced show description Theme Category Command The Theme Category Command specifies the major categories displayed in the subscriber unit's theme function. These categories form the first level of indexing in the hierarchical theme search function. For each major theme category a unique 8 bit ID number and a text string is specified. The text string names the category 1(1181*- l"~i wo 95/31069 liIMM895/05169%1G entry. The entries are listed serially within the command in the suggested presentation order.

The command includes a version number which is incremented each time the theme category command is changed. Subscriber Units should replace existing versions of the command stored in memory when a command with a differing version number has been transmitted. The fields of the Theme Category Command as shown in Figure 17 are defined in Table XVI.

Field Description Cmd type Command type 11 (OBH). Identifies command as a Theme Category Command.

enc fig Flag indicating if the current command has been encrypted.

Command type and command length fields are never encrypted. O=not encrypted, 1 =encrypted.

key ID Decryption key ID. Identifies which of two current "program" decryption keys should be used to decrypt this command.

Cmd length Number of bytes in the command (including the type and length fields).

version Theme Category set version number. Version number changes if any category is added, deleted, or the text changes.

A completely new set of categories should be acquired when the version number changes.

nbr categories Total number of primary Theme categories; number of Theme category entries that follow.

Theme Category ID Unique 8 bit number used to identify corresponding sub category entries. This field is never passed with a zero value.

attributes flag word An 8 bit flag word used to specify the properties of the theme sub-category. The meaning of each field in the flag word is as follows Bit 0 DISPLAY NAME WITH DESCRIPTION when set, the theme category name may be displayed with the description of a show with this theme id. (Some category names like ALL or OTHER may appear awkward when WO 95/31969 11CIII/VS95105169i( 71 displayed with a description. These types of entries will have this bit cleared. Other entries, such as MOVIE or DOCUMENTARY are desirable additions to descriptions, and hence may have this bit set.) Bits 1-7: RESERVED.

Category name length Number of bytes in the 'Category name' field. Used to locate the start of the next entry and determine the length of the text.

string that follows. This field will never have a zero value (first generation Subscriber Units will crash if this is passed as zero).

Category name Text string naming the category. This should be used to display dithe name of the category. The text is an uncompressed, null terminated ASCII string.

Table XVI Theme Sub-category Command The Theme Sub-category Command specifies the sub-categories displayed in the subscriber unit's theme function. These are displayed after the user has selected a major theme category. Each major theme category has one or more sub categories, which form the second level of the hierarchical search scheme. The description of each sub category includes the 8 bit ID of the parent category, a unique 16 bit theme ID number and a text string which names the entry. The entries are listed serially within the command in the suggested presentation order.

The command includes a version number which is incremented each time the theme sub-category command is changed. Subscriber Units should replace existing versions of the command stored in memory when a command with a differing version number has been transmitted. All subscriber units should store these sub category names if they do not already have an entry with the same Theme Category ID, Sub category ID, and version number. The fields of the Theme Sub-category Command as shown in Figure 18 are defined in Table XVII.

Field Description Cmd type Command type 12 (OCH). Identifies command as a Theme Sub-category Command.

68~HL~"DY~^U PO~ WO) 9/31069 PCIS1195051O69 enc fig key ID Cmd length Theme Category ID nbr Subcategories Flag indicating if the current command has been encrypted.

Command type and command length fields are never encrypted. Q=not encrypted, I =encrypted.

Decryption key ID. Identifies which of two current "program" decryption keys should be used to decrypt this command.

Number of bytes in the command (including the type and length fields).

Unique 8 bit number used to identify the primary category corresponding to this sub category entry. This field will never have a zero value.

7 bit unsigned number indicating the total number of Theme Subcategories; number of Theme sub category entries that follow. This field will never have a zero value (First generation Subscriber Units will crash if this is passed as zero).

Total number of bytes in current sub category entry including this byte. Used for determining the start offset for the next entry and the number of bytes in the 'sub category name' field. This field will never have a zero value.

An 8 bit flag word used to specify the properties of the theme sub-category. The meaning of each field in the flag word is as follows Bit 0 DISPLAY NAME WITH DESCRIPTION when set, the theme sub-category name may be displayed with the description of a show with this theme id. (Some sub-category names like ALL or OTHER may appear awkward when displayed with a description. These types of entries will have this bit cleared. Other entries, such as COMEDY or DRAMA are desirable additions to descriptions, and hence may have this bit set.) Bits 1-7 RESERVED.

entry length attributes flag word rr WO 95/31069 CW'V(189OI/0{l69 nbr Theme IDs Theme ID 1-k Number of Theme ID ontries that follow this field, In the above diagram, the value of this field would be This field will never have a zero value (First generation Subscriber Units will crash if this is passed as zero).

Set of 16 bit Theme ID numbers used to identify shows that should be selected when a Theme search is done for this sub category. That is, any program whose Show Title or Show Description entry contains any one of these Theme ID numbers would be included in the list of shows selected by this Sub category. These theme ID's are sorted in ascending order. These fields will never have zero values.

Text string naming the category. This should be used to display the name of the category. The text is an uncompressed, null terminated ASCII string.

Table XVII Sub category name Subscriber Unit Reset Command The Subscriber Unit Reset Command allows the StarSight Control Center to reset selected subscriber units. Different types of reset can be sent. The fields of the Subscriber Unit Reset Command as shown in Figure 19 are defined in Table

XVIII,

Field Cmd type enc fig key ID Description Command type 13 (ODH). Identifies command as a Subscriber Unit Reset Command.

Flag indicating if the current command has been encrypted.

Command type and command length fields are never encrypted. 0=not encrypted, 1 =encrypted.

Decryption key ID. Identifies which of two current "program" decryption keys should be used to decrypt this command.

Number of bytes in the command (including the type and length fields).

Cmd length WO0 95/31069 74 reset type Reset Control Bit Field Bit 0 When sot Instructs the unit to clear lthe semi-volatlle memory where the acquired network data is stored. When the unit restarts, it will begin re-acquiring network data (also known as a cold boot).

Bits 1-7 Reserved.

serial nbr 5 byte serial number which idnetifies the subscriber unit this command is addressed to. A serial number which is all zeroes indicates a "group broadcast", so all subscriber units should be prepared to respond to such a command.

Table XVIir Authorization Command The Authorization Command authorizes the subscriber unit to begin collecting and displaying schedule data. It is sent when a subscriber signs up for the StarSight service.

Until the Authorization Command is received, a subscriber unit does not know what region it is in, and hence, does not know which channels to collect data for. Similarly, it does not have the decryption key necessary to decrypt various commands until the Authorization Command is received.

Authorization Commands are addressed to individual subscriber units using the serial number given to a Customer Service rep during the authorization process.

The first generation subscriber units are limited to supporting a single region and one or two separate VBI lines on the same tuning frequency. The fields of the Authorization Command as shown in Figures 20-22 are defined in Table XIX, Pield Description C'md type Command type i 14 (01B), Identifies command as an Authorization Command.

enc fli Flag Indicating If the current command has been enerypted, Command type and eommand length fields are never io encrypted, m-not encrypted, I -oonerypted, key ID Decryption key ID, Identifies which of two currenti "program" dearyptlon keys should be used to decrypt this conmulnd, W(O ON/31006 S U ser'ial nbr 1 0 Authorization data batch Obr uit number Service level music program key 0 program key I ion of (lIn following Number of bytes In the comimnd (including tile type tuld Subscriber unit gerial number assigned by th(mnuacu0r Used to address tile subscriber Unit, during authorization or re-authorlzation, Subsequent conimarnis are addressed to a subscriber urnit Using fihe baitch and unit nurnbers. This number Is given to thle customer service representative during.

the authorization process and determines the RSA public key used to encode the encrypted portion of this command, 72 byte block of authorization data, encrypted with the unit's factory assigned public key. The cryptogram must be decoded using the subscriber Unit's private RSA key assigned to the StarSight Security processor at time of manufacture. The data is stored a~q follows before encryption 32 bit number identifying the encryption group to which the subscriber unit belongs to, When combined with tile one byte Unit number that follows this clement, a unique address for the subscriber unit is formed. These numbers are assigned by this command and Used to address this Unit or its' batch group In all subsequent Conimliuicls, I byte unit ID, E~ach unit within n batch group Is assigned a unique wnit ID, 2 byte bit mask Indicating which StarSight services the User haq stibseribd to, Thle ineanhig of the Individual blis Is TOPD.

All bits tire to be remain zero until (lefined.

'The first 8 byte decryption key. Subsequent IKey Distribution Commands are addressed to this unit's batch assigned group to assign newv program keys, Thle other 8 byte decryption key., Is the number of data bytes remaining In the authorization block, not, Including the empty reserved data block and t-his AVO IM/31069 'CtoMAO (1491/11 ha~tch) key D)P source sign fig field, In the current definition of this coiniandl, this field Is equafl to dt constatnt 20 0l41), 8 byte kay Assigned to 0t8iilt'iis batch group, This key fis used~ to decrypt tha prograin keys transmiltted In thea K~ey fOlstriution comilands Datchl keys areO only Changed If 01h0 key is brokenl for a given batch, Now batch keys fire assigned to a batch by sending new, Authorization Commands to each member of tho group.

Tis field hifs the same imiing as the source Hoeld I the region conmmand, It Is Intended to indiate which input source the data provider signal Is onl, Sign bit for the tinne zone offset field, Which follow$, If SOt, it indicates the time zone offset Is negative, and should be subtracted fr~om Greenwich tnevui time, (For data provider stations West of the Greenwich Meridian, I&e the wntlre US and Canada), Note that this Implies the time zone offiset field Is not a two's complement binary number.

Four ilt field Indlcating the0 number Of hoturs offset fromt Greenwich Mean Time to the time zone the subscriber unit Is locates" within,1 Initenided to be U1sed whenl (liISplaying, local timeo before the Subseriber Unfifts been authorized (which sets thie real tima zonea). The legal rarnge for thig field Is froml' 0 to 12 delmal,..(This field should~ be Interpretedi Identically to thea default t.,ime zone offset field containod I (lit) Time comninh.I) Codie nitiniber Identifying tlie group of VCR control modet4 to be used when commanmding the tuser's VCR to dto at recording, to rewind, etc, This field is, defautlted with value 800H, which means that no code group has been specified, Code number Identl(ifyi cable lbox control codes to ho, wned when commtt111ng thle user's cable box to chan1.go chamiels, This fleld Is defaulted with) value 1300011, which means that no code group hias been specifled.

timne z/one offset VCR code group M( ('uhin box code group WO QM/11 1069 Sntu0ii1ic, code gr'oup TV COdO grut)p Prlimary Raglon IDJ DSA f(p, TuriO C11,1111110 M83 Diata )rnviIer chalmol I1D Codo Ilt1lfliber l(ienlilyiflgA Antolifo control cokse (o ho mae channes This field IN doftailed with value 000011, which niealvn that no( Codle group 11,0 beo mpeoifled.

Code number idm~tiff'Ing codeB used to control thie television reimotly 1 This fleld im defoulted with it mo~ vaiue, 'Phe speific mniYngs of the code groups fire T1,11), U~nique numbor identdfying the region I which tho subscuIber unit Is located. This field speoifies tho set of channels for wIch dtat is collected. It Correspondsl Alh the regionl1 I n the Region Command, PIrst goeration subscriber units can collect (lata for only one region.

IDayhlght Saying applicable flag. plop, lndiicahig if Dayligh1t $,lving time Is tused In the subscriber's Oime zone, Onno, 1 myes.

Most sign11ficanit bit' or the tulle 0ehiumenl nu1mber field, which follows.

Channel ID number for the statlon to be used for recoiving nil1 subsequent StarSight coimands. Normally this will be the station used (luring the authorization proas8, but load balanclig requirements nully force a chanuge.

Is the tuning channel nunibor of'li tha providler. Thlist Information IN tronsrnhttcei hi the titititotizatlon comirl1 so hlint (lhe slubscriber mnit does not have to milt for a Channol Data Command to Initerpret ithe Doli Provider Channel 11) field to logul al ln for thinm fiCll IN 0 to 111 hieiutdve 1 5 bit 1101(1 reproeejing the tilphflbeti portion of the alph an umerrl sAtellIte identifier (iLO. tho IS of satellite Sit), i t lold value I ropmeeno te lotter WA, 2 i.n '11, emc. TIM flo(db IN specified os rvero If tho (latoprovldvr Im af non satellito souree. If thiN field la non-zero, uth legal range In 1-20 Iclusive, repregonting the alphabetic character through 'FTm Chinnel No !4111011110 alphia ID WO 95/31069 1PCTUS95105169 satellite numeric ID transponder no VBI line nbr VBI Stream ID

RESERVED

5 bit field representing the numeric portion of the alphanumeric satellite identifier the of satellite S4).

The field is broken up over two consecutive bytes. The legal range for this field is 1-31 inclusive.

6 bit field representing the transponder number to be used to tune to this channel on a Satellite system. This fields legal range is 0-63 inclusive.

VBI line number to be used for acquiring StarSight data.

Stream ID of primary data provider. The stream ID is transmitted with each time command. Subscriber Units may use this to identify the VBI stream they are listening to. This may be useful for Subscriber Units while searching for the home data stream after a cable company has made an unannounced change to its channel mapping.

10 byte field, reserved for future definitions. All first generation subscriber units will not interpret the contents of this data block.

Table XIX Long Assign IR Codes Command The Long Assign InfraRed Codes Command specifies the control codes to be used by the Subscriber Unit Universal Remote Control chip to control a specific peripheral device. The codes which describe the IR blaster language may optionally be sent for those devices that are not in the URC chip's internal database.

Transmission normally occurs while a Customer Service Rep is in contact with a user who has called StarSight because they did not find the code group for their VCR/Cable Box/TV in the Subscriber Unit manual.

IR Codes may be sent either addressed to a specific unit via its Serial Number, or to groups of units with a given Product Code, Device Type VCR), and Device ID. These commands may either be sent once per user request or repetitively when addressed to groups of SUs. The fields of the Long Assign IR Codes Command as shown in Figure 23 are defined in Table XX.

Field Description

I

WO 95/31069 PCT/US95/05169 Cmd Type enc fig key ID Cmd length Serial Number Interconnect Configuration Vendor Specific Command type 22 (16H). Identifies command as a Long Assign IR Codes Command.

Flag indicating if the current command has been encrypted.

Command type and command length fields are never encrypted. 0 not encrypted, 1 encrypted.

Decryption key ID. Identifies which of two current "program" decryption keys should be used to decrypt this command.

Number of bytes in the command (including the type and length fields).

Subscriber unit serial number to which the command is addressed. A Serial Number of 0 means the command is addressed to all Subscriber Units having a Product Code, Device Type, and Device ID corresponding to the one in this command.

A number corresponding to the way the components controlled by the SU TV,VCR, cable box) are connected.

Values and configurations are TBD.

Byte value whose use depends on the product to which this command is addressed. For example, when addressed to a Zenith TV this value is the tuning method to be used with the downloaded IR codes.

Number identifying the type/model of Subscriber Unit to which this command is addressed. Correlates with the type of URC chip in the SU. This command is ignored by a Subscriber Unit if this number does not match its Product Code when the Serial Number field 0.

Identifies the type of device (VCR, Cable Box, TV, IRD, that can recognize these IR codes.

0 Cable Box 1 TV Product Code Device Type

VCR

IRD

1- -1 WO 95/3!069 iPCT/US95/05169 Device ID Version IR Codes Length IR Codes Code group number for the device that recognizes these IR codes. The Subscriber Unit (only if it has a matching address) replaces whatever code group number it currently has for the given Device Type with this number. Thus the headend can directly set the code group for a specific user.

This is not done if the Serial Number field in this command is 0. In this case, the command is only processed if the user has.

already entered a code number that matches the Device ID for the same Device Type.

Version number for the IR codes in this command. The SU saves the version number for each device type and only processes those Assign IR Codes commands addressed to groups of units if its version number for the specified device differs from the version number in the command.

Number of bytes in the IR Codes field.

Information (normally IR codes) to be used by the URC chip to control devices of the specified type. Structure within this field is determined by the URC chip manufacturer.

Table XX Key Distribution Command Key Distribution Commands give the current and next program keys to be used for decrypting encrypted commands. Subscriber units must watch the data stream for a Key Distribution Command containing its batch number. When the command is found it should send the authorization bit mask, both keys, and the authentication data field to the StarSight Security processor. If the bit in the authorization bit mask corresponding to the subscriber unit's unit number is 0 then the subscriber unit has been de-authorized and must suspend data collection. The fields of the Key Distributioin Command as shown in Figure 24 are defined in Table

XXI.

Field Description Cmd type Command type 17 (011H). Identifies command as a Key Distribution Command.

WO 95/3 i069 'PC'/US9!/051 69 enc fig key ID Cmd length batch nbr authorization bit mask Flag indicating if the current command has been encrypted.

Command type and command length fields are never encrypted. 0=not encrypted, 1 =encrypted.

Decryption key ID. Identifies which of two current "program" decryption keys should be used to decrypt this command.

Number of bytes in the command (including the type and length fields).

32 bit number identifying the encryption group to which the subscriber unit belongs. This number was assigned during the authorization process.

c 256 bit mask (32 bytes) with each bit corresponding to one unit in the batch. The bit applicable to a subscriber unit is the bit corresponding to the unit's unit number. Bit is set if the unit is authorized and reset if not.

Cryptogram encoded using the batch key assigned to the subscriber unit's group. The StarSight Security processor uses this key to decrypt encrypted commands when the 'key ID' field 0.

Cryptogram encoded using the batch key assigned to the subscriber unit's group. The StarSight Security processor uses this key to decrypt encrypted commands when the 'key ID' field 1.

4 byte value used by the StarSight Security processor to authenticate the authorization bit mask and program key fields in this command Table XXI program key 0 program key 1 authentication data Subscriber Unit Command This command is used to transmit data bytes to one or more subscriber units.

The definition of the format and contents is private to subscriber units. The network does not attempt to interpret the data.

This command provides a hook for transmitting commands and initialization data to subscriber units during development, without having to define separate, WO 95/31069 1CVIYUS95105 169 82 formal, network messages for each function, many of which may be temporary in nature. The fields of the Subscriber Unit Command as shown in Figure 25 are defined in Table XXII.

Field Cmd type enc fig key ID Cmd length cmnd sub-type Description Command type 24 (0181H1). Identifies the command as Subscriber Unit Command.

Flag indicating if the current command has been encrypted.

Command type and command length fields are never encrypted. O=not encrypted, 1 =encrypted.

Decryption key ID. Identifies which of two current "program" decryption keys should be used to decrypt this command.

Number of bytes in the command (including the type and length fields).

1 byte field indicating what type of subscriber unit command this is. The following command types have been defined: 01 Enter Diagnostics Menu if this command is addressed to the unit All other type values are reserved.

Is the assigned 5 byte serial number of the Subscriber Unit.

All zeroes in this field indicates a group broadcast to all subscriber units.

SU Serial Nbr Table XXII The following describes the Subscriber Unit 52 Database Engine Internal Data Structures. The general nature of the Subscriber Unit data is hierarchical. The schedule data hierarchy of data structures in descending order follows: CHANNEL DATA TABLE Contains Subscriber Units list of channels SHOW LIST Contains a list of Show Titles, descriptions, start times, and durations for a channel.

SHOW TITLE Contains the Show Title attributes and title text.

WO 95131069 PCT7/US95/05169 83 SHOW DESCRIPTION Contains show ratings, attributes, and description text.

Theme Categories and Theme SubCategories are used to select shows for viewing. They share a common data value (Theme Indexes) that are used to extract shows that match a Theme Category/SubCategory pair. The Theme data hierarchy in descending order follows: THEME TABLE Table of Theme Categories THEME SUB TABLE Table of Theme SubCategories THEME SHOW TABLE Table of Theme selected shows For a description of Network Commands received by the Subscriber Unit see the InSight Data Transmission Network Protocol description.

Database Memory Pool Overview The Memory Manager allocates and frees Blocks of Memory as requested by the application portion of the Subscriber Unit. The application software references Memory Blocks via a HANDLE. The handle of a memory block is an index to a table entry containing a POOL INDEX. The POOL INDEX is a scaled address that translates into the address of a MEMORY BLOCK. The HANDLE approach allows MEMORY BLOCKS to be relocated as system objects age and die, without requiring specific updating of application data structures.

The Memory Manager periodically runs a garbage collection process to collect unused MEMORY BLOCKS and recombine them into larger blocks. Because applications reference MEMORY BLOCKS with HANDLEs through the HANDLE TABLE, MEMORY BLOCKS can be relocated with specific updating of application data structures. In addition the memory pool can be temporarily locked to prevent the relocation of blocks during critical periods.

Each MEMORY BLOCK contains as the very first element the size of, and the OBJECT TYPE of the Memory Block. This aids in the relocation and merging of MEMORY BLOCKS.

The OBJECT TYPES break up into two main groups. The small OBJECTs which always can be defined in less than 16 Blocks of Memory. Currently each block of memory is 16 BYTEs long,. Small OBJECTS have their OBJECT TYPE encoded in the first NIBBLE, and the length in blocks encoded in the second NIBBLE of the first BYTE of the MEMORY BLOCK. Large OBJECTS have their WO 95131069 i'C"0US95/05169 84 OBJECT TYPE encoded as the first BYTE of the MEMORY BLOCK and number of allocation units as the second BYTE of the MEMORY BLOCK.

If the first BYTE of the MEMORY BLOCK bit wise ANDed with OxCO is 0, then this is a Large OBJECT, otherwise it is a small OBJECT.

Database Memory Pool Access Scheme A schematic representation of the database memory pool access scheme is shown in Figure 26. Further details are as follows: Handle Table The Handle Table is a fixed allocation table, as shown in Figure 27, containing two types of entries; free entries and in-use entries. Free entries will always have their 2 MSBs set so as to not be confused with in-use entries.

In-use entries contain the Index into the Pool for database items that are referenced via Handles; Show Title entries. A database item's Handle is an index into the Handle Table. A database item's Pool Index can change due to garbage collection in the Pool, but its Handle will not change as long as that item exists in the database. Items deleted from the database return their Handle to the top of the free list.

Handle Table entry 0 is always the head of the free list. The Table is initialized to all free entries with each entry containing the Index of the next entry.

The size of the Handle Table limits the number of database items that can be kept in the Pool. Systems with various numbers of channels will require different Handle Table sizes.

Field Description Pool Index Index into the Pool for the first Pool Block containing the item.

Database Show Schedule Access Overview The database show schedule access scheme is shown in Figure 28. The Channel Data is maintained in the Internal Database Engine data structure called the Channel Data Table. The Channel Data Table selects the channels accessed by a Region. The Channel Data Table is built by the system command processor from the 71egion Command and Channel Data Commands. The channel related information is extracted from the Region Command and placed in the Channel Data Table.

-I I WO 95131069 PCI7US95105169 The Region Id to use is extracted from the authorization command. The Region Id is the key information for show schedule generation. The Region Id selects the Region Command processed by the subscriber unit, which defines the Channels Id accessed, which defines the Channel Data Table, which defines the Show Lists, which selects the Show Ttles and Show Descriptions, which reference the Themes Categories and Theme Sub Categories. Once the Channel Data Table is defined, the Channels are referenced directly through the Channel Data Table.

Each lower level table in the show schedule is accessed through a HANDLE.

The HANDLE is translated by the Handle Table into a pointer in memory.

Channel Data Table As shown in Figure 29, the Channel Data Table contains information on each channel in the Region. This data is used for access to the schedule data (Show Lists for a channel, tuning, display on the Channel Banner, for channel gliffs, and during Setup. Further details are provided in Table XXIII.

Field Description Type/Nbr Blks Pool Entry Type and number of blocks required to hold this Pool item. The type value indicates that this is a 2 byte field since the length can become very large due to the number of channels in the Region.

Channel Data Table Type =1.

Nbr Channels Number of Channel Entries in the user's Region (including inactive channels).

Table XXII Channel Entry There is one Channel Entry (see also Figure 29) for each channel in the Region. Further details are provided in Table XXIV.

FIELD DESCRIPTION Channel ID Channel's unique ID number assigned by the InSight Control Center. Used to distinguish Show Lists that the Subscriber Unit needs.

Tune Channel Nbr Channel Number to be tuned to receive this channel's broadcasts. Tune Channel Number may differ from the original channel number if the channel is on a WO 95/31069 1'CT/rlUS95/05169 Transponder Nbr Satellite Nbr Original Channel Nbr Signal Strength Data Pro Fig Inact Fig No Desc Fig Name Fig Name-Affiliation Mask Bits Favorite Link cable system. Channel 5 CBS might be broadcast on channel 17 on a cable network.

Satellite Transponder Number, for acquiring Satellite broadcasts.

Satellite Number, and Index used with the Satellite Codes to generate the specific commands for communicating vith the satellite receiver box.

Channel Number displayed in the channel gliff. This is the channel the user recognizes.

Signal Strength rating for the channel acquired during Authorization scanning. Larger numbers represent stronger signals.

Data Provider Flag. Identifies the channel we receive StarSight data from. Bit set during Authorization scan.

Inactive Channel Flag. This bit is set when the user specifies this channel as unwanted. When this bit is set no data is collected for the channel.

No Descriptions Flag. Identifies channels for which no description data is acquired. Set during user Setup.

Flag indicating if channel icon should display the Original Channel Number or the first three characters from the 'Name-Affiliation' Field. 0 use number, 1 use characters.

Text string giving channel's name and (if appropriate) network affiliation; "KTVU- FOX".

Bits which are set indicate which characters in the 'Name- Afflilation' string are to be masked out.

Channel ID Entry number for the next most favorite channel. Set During user Setup. Used when traversing this table in 'favorites' order. Very 1st entry will 02H.

WO 95131069 PCTUS505I 169 Show List Handle Table Handle Dup Chan Handle Handle for this channel's Show List HandleTable.

Handle for table of Duplicate Channels associated with this base channel.

Table XXIV 5 Channel Duplicates Table The Channel Duplicates Table (Figure 30) contains information on each channel in the Region that is the duplicate of a base channel. This data is used to adjust the display of Blocks of pay-for-view type channels. All of the channels share a common base Channel Show List, but add a starting time to the offset of the base channel's Show List. The Base Channel ID is not stored in thie structure. Instead the structure is referenced as a Handle by the channel entry in the Channel Data Table. If a channel entry has duplicate channels, then the Duplicate Channel Handle field has a Handle Number to access the table by. Further details are provided in Table XXV.

Field Description Type/Nbr Blks Pool Entry Type and number of blocks required to hold this Pool item. The type value indicates that this is a 2 byte field since the length can become very large due to the number of channels in the Region.

Number of duplicate Channel entries in the user's region (Including inactive channels).

Table XXV Nbr Channels Channel Duplicates Entry There is one Channel Duplicate Entry for each duplicate channel in the Region. Further details are provided in Table XXVI.

Field Description Tune Chan Nbr Time Offset Tuned Channel Number for the channel that duplicates the Show List of the base channel by some time offset (9 bits).

This is the offset in minutes from the starting time of the Base Channel ID.

W O 95/31069 PCT/US95/OS05169 88 Table XXVI Show List Handle 'rable A Show List Handle Table' (Figure 31) contains Handles to Show Lists for every day of the week. This table is pointed to by the 'Show List Handle Table' Handle located in the Channel Data Table. Via this table we can access Show Lists representing a weeks worth of scheduling. Further details are provided in Table

XXVII.

Field Type/Nbr Blks Reference Count Description Pool Type 40H, Nbr Blks 1. Since both pieces of informatiou are contained in the 1st Byte, this value will equal 41.H.

Number of times this Show List is referenced by another object in database. When this structure is initially created, Reference Count will 1 since Channel Data Table makes reference to it.

One Handle for every day of the week. These Handles point to actual Show Lists representing a given day of the week. Initially, and as necessary, when given Handle 0000, means Show List is needed.

Table XXVII Monday Sunday Show List Handles Show List A Show List (Figure 32) contains 24+ hours of scheduling for a given channel. The only time it will in fact contain more than 24 hours of scheduling is when a program starts in the current day and crosses the 24 hour line while still broadcasting. All Show Lists will always begin at the same time every day. A Dummy Slot will be created to deal with overflow from the previous day if necessary. For a complete set of scheduling, seven separate Show Lists are required for every Program Originator supported by given Subscriber Unit Access to the Show List is via the Show List Handle Table for a given day of the week. Further details are provided in Table XXVIII.

Field Description I WO 95/31069 PCTIUS95/05S169 Type/Nbr Blk Version Start Time Pool Entry Type and Number of Blocks required for the entry. Show List pool type 02H, The current Version of the Show List, allows us to recognize when a new Version of a Show List has arrived.

Start Time in number of minutes since midnight January 1, 1992 GMT) for the First Show in the Show List. Used for determining new schedule days as they come in.

Table XXVIII Show Entry A Channel's schedule is given by an ordered sequence of Show Entries.

These Entries give a show's duration, title, and possibly an episode description.

The entries are either 4 6, or 8 bytes long depending on whether the show has a description and/or Group ID.

Finding the entry that corresponds to a given start time requires the Entries to be scanned, in order, from the beginning of the list and adding Duration values.

There must be no gaps in the Show List. Further details are provided in Table

XXIX.

Field Description Dummy Flag Set if 1st slot Dummy means last show of last Show List DID Flag Duration over. This much time contained in duration.

Description ID Flag. If this bit 1 then a DID Handle field exists for this entry; entry is at least 6 bytes long and the show has a description.

Length of program minutes Range: 1 minute 240 minutes (4 hrs). Shows longer than 4 hours must be broken into multiple parts with each part given a new slot.

Group ID Flag. If this bit 1 then a Group ID field exists for this entry; i.e. entry is at least 6 bytes long and the show is a member of a Record Group. If DID Flag set entry, entry is 8 bytes long.

Handle for ithe Show Title Entry that gives this Show's Title and Theme Category information.

GRP Flag SID Handle

'I

WO 95131069 CT/USS95/O5169 DID Handle Handle for the Show Description Entry that gives this show's episode description and some additional Theme Category information. This field is only present if the 'DID Fig' field is set.

Group ID Value of the Group ID that is used by the Record Manager to identify shows that are members of a Record Group.

Delimiters Prior to 1st show slot there will be an 'EEH' delimiter.

Following last show slot, there will be an 'FFH' delimiter.

Table XXIX Show Title Show Titles (Figure 33) contain the usually compressed text of a Show's Title. There is one entry per unique Show Title.

Show Titles are Pool based items. An entry is created whenever a Show List is received (for a channel the Subscriber Unit is collecting data for) that contains an SID for which the Subscriber Unit does not already have the Show Title. When an entry is created a Handle is allocated to it and the 'Need It' flag is set in the Show Title Handle Table Entry.

The entry size is determined by the length of the title. A single Pool Block is reserved (containing a null title string) when a new SID is received in a Show List. The entry is filled when the appropriate Show Title message is subsequently received and the 'Need It' flag is then cleared. At that time, the entry may be relocated and expanded to multiple Pool Blocks (but its Handle will stay the same).

Further details are provided in Table XXX.

Field Description Type/Nbr Blks Pool entry type and number of consecutive Pool blocks required for the entry. Show Title Pool Type Theme ID Unique number associated with Theme Category Data for this show. This is an index into the Theme Category Data Table.

Compressed Flag Flag indicating if Show Title text is compressed or not.

Sometimes compression actually lengthens the string, so this flag is used to suppress de-compression when compression was not needed. 0 not compressed, 1 compressed I WO 95/ 1069 PCITUSS95/05169 91 CC Flag indicating if show is Closed Captioned. 0 no, 1 yes.

Stereo Flag Indication if show is broadcast in Stereo. 0 no, 1 yes.

BW/C Flag indicating if show is broadcast in Black and White or Color. 0 Color, 1 W.

Reference Count Number of times this Show Title is referenced by a Show List, Record Queue entry, or other item in the database.

When this field is 0 the entry and its correspondinS Show Title Handle Table entry, are candidates for deletion.

Show Title Text string for the Show Name. Normally this string is compressed by Huffman encoding; however, if he "Compressed flag is not set, the text is straight ASCII.

Table XXX Database Show Title Hash Table Access Scheme The database show title hash table access scheme is shown in Figure 34.

Show Title Handle Table Show Title Handle Tables (Figure 35) are Pool based tables used to determine if a show title is needed or if it has already been received. There is one Show Title Handle Table for each possible value that an SID can Hash to; 256 tables.

A Show Title Handle Table entry is made for every unique SID received in any Show List message for a channel that the SU is collecting data for. The particular table that the entry is made in is determined by the SID's Hash value; that is, the SID's least significant 8 bits.

These tables must be updated as SIDs are eliminated from the database. A Show Handle Table Walker background task is turned on and accesses these tables at regular intervals and checks them for Reference Counts that have gone to 0. The Walker looks for entries that can be deleted. Further details are provided in Table

XXXI.

Field Description Type Pool entry type for Show Title Handle Table 03H.

Nbr Blks Number of Pool Blocks required for the entry.

I- c~ M rrsnr 4~lr WO 95/31069 ParUS9/05169 92 Nbr Entries Number of table Entries. Used when searching table for matching SID values. This can never be 0.

Table XXXI Show Title Handle Table Entry The Show Title Handle Table contains multiple entries. Each of these Entries contains the following field: Field Description Need It Flag Flag indicating if the Show Title text string message has beer.

received for this SID. 0 Show Title received, 1- not received.

Show Title Hash Table The Show Title Hash Table (Figure 36) is a fixed size, pre-allocated table containing only Pool indices for each possible SID Hash value. The SID Hash value is an index into this table. The value in the nth entry is an index into the Pool for the Show Title Handle Table containing all SIDs received so far that Hash to n.

Further details are provided in Table XXXII.

Field Description Pool Index Pool Index for the first block of the Show Title Handle Table for SID's that hash to this entries offset from the beginning of the table. A value of 0 means no SID's have been found so far (in Show Lists for channels we collect data for) that have Hashed to this entry.

SID Unique Show ID number. Only the most significant 12 bits are stored since all entries in this table have the same least significant 8 bits. This 20 bit number is unique for each Show Title.

Handle Index into the Handle Table which, in turn, gives the Pool Index for 'the first Pool 13lock containing the corresponding Show Title Entry.

Table XXXII Show Description Show Descriptions (Figure 37) contain the (usually) compressed text of a show's episode description. There is one entry per unique show description.

I WO 95/31069 P6?IVUS95I0169 93 Show Descriptions are Pool based items. An entry is created whenever a Show List is received (for a channel the SU is collecting data for) that contains a DID for which the SU does not already have the show description. That is, the 'need it' flag is set in the Show Description Handle Table entry.

The entry size is determined by the length of the description. A single Pool block is reserved (containing a null description string) when a new DID is received in a Show List. The entry is filled when the appropriate Show Description message.

is subsequently received and the 'need it' flag is cleared. At that time, the entry may be relocated and expanded to multiple Pool blocks (but its handle will stay the same). Further details are provided in Table XXXIII.

Field Description Type/Nbr Blocks Pool entry type and number of consecutive Pool blocks required for the entry. Show Description Pool Type 6?H Cmp Fig Flag indicating if show description text is compressed or not.

Sometimes compression actually lengthens the string, so this flag is used to suppress decompression when compression was not needed. (0 not compressed, 1 compressed).

C7 Flag indicating if the show episode is close captioned. 0=no, 1=yes.

Stereo Flag indicating if the show episode is broadcast in stereo.

0=no, 1=yes.

BW/C Flag indicating if the show episode is in black white or color. 0=color, 1 =B&W.

Rating Flg Flag indicating if rating bytes are present. 0 no, 1 yes.

Critics Rating Number of star's accorded the show by the critics. 0=no rating.

MPAA Rating Audience suitability rating. 0=G, 1=NR, 2=PG, 3=PG13, 4=R,5=X, 6=NC17.

Traits Bit Mask Bit mask indicating show's attributes such as violence or profanity. See 'Show Description Command' for bit assignments.

i I ~"-su3 -maasrr~-- WO 95/31069 1CIUS95105 69 94 Bit Attribute 0 profanity 1 nudity 2 violence 3 adult situation 4 adult themes mild violence 6 brief nudity 7 adult language 8 mature themes 9 not used Reference Count Number of times this show description is referenced by a Show List, Record Queue entry, or other item in the database.

When this field is 0 the entry and its corresponding Show Description Handle Table entry are candidates for deletion.

Theme ID Unique number associated with Theme category data for this episode of the show. This is an index into the Theme Category Data Table.

Show Description Text string for the show name. Normally this string is compressed by Huffman encoding; however, if the 'compressed' flag is not set, the text is straight ASCII. String .s null terminated.

Table XXXIII Database Show Description Access Overview Figure 38 depicts the database show title hash table access scheme.

Show Description Handle Table Show Description Handle Tables (Figure 39) are Pool based tables used to determine if a Show Description is needed or if it has already been received. There is one Show Description Handle Table for each possible value that an DID can Hash to: 256 Tables.

A Show Description Handle Table entry is made for every unique DID received in any Show List message for a channel that the SU is collecting data for.

UII 3X~-~ WO 95131069 PCTIUS955169 The particular table that the entry is made in is determined by the DID's Hash value; that is, the DID's least significant 8 bits.

These tables must be updated as DIDs are eliminated from the database. A Show Handle Table Walker background task is turned on and accesses these tables whenever 5 DIDs have been deleted; i.e. their Reference Counts have gone to 1. The Walker looks for entries that can be deleted. Further details are available in Table XXXIV.

Field Description Type Pool entry Type for Show Title Handle Table 04H Nbr Blocks Number of Pool Blocks required for the, entry.

Nbr Entries Number of Table Entries. Used when searching table for matching DID values.

Table XXXIV Show Description Handle Table Entry The Show Description Handle Table contains multiple entries. Each of these entries contains the fields shown in Table XXXV: Field Description Need It Flag Flag indicating if the Show Description text string message has been received for this DID. 0 Show Description received, 1 not received.

DID Unique Description ID Number. Only the most significant 8 bits are stored since all entries in this table have the same least significant 8 bits. This 16 bit number is unique for each Show Description.

Handle Index into the Handle Table which, in turn, gives the Pool Index for the first Pool Block containing the corresponding Show Description entry.

Table XXXV Show Description Hash Table The Show Description Hash Table (Figure 40) is a fixed size, pre-allocated table containing only Pool indices for each possible DID Hash value. The DID Hash value is an index into this table. The value in the nth entry is an index into the WO 95/31069 1cIM$95/05169 96 Pool for the Show Description Handle Table containing all DIDs received so far that Hash to n. Further details are as follows: Field Description Pool Index Pool Index for the first block of the Show Description Handle Table for DID's that Hash to this entries' offset from the beginning of the table. A value of 0 means no DID's have been found so far in Show Lists for channels we collect data for) that have Hashed to this entry.

Theme Category Table The Theme Category Table (Figure 41) contains the definition of the Themes downloaded to the Subscriber Unit. The Themes Categories are used to search for shows of a particular type. Each Theme Category contains one or more Theme SubCategories. Each Theme Category in the Theme Category Table has a Theme SubCategory Table associated with it. Further details are provided in Table XXXVI.

Field Description Type/Nbr Blks Pool entry type and Number of Blocks required to hold this Pool item. The type value indicates that this is a 2 byte field since the length can become large due to the number of possible Theme Categories.

Reference Count Number of times this table is referenced. Initialized so the garbage collector does not delete it.

Version Version Number of the Theme Category Table New Categories and Sub Categories are collected when the Version Number changes. New Theme Counts must be also be determined.

Nbr Theme Categories Number of Theme Category Entries.

Table XXXVI Theme Category Entry There is one Theme Category Entry for each Theme Category. Further details on the Theme Category Entry are provided in Table XXXVII.

WO 95/31069 1PCT/US95/05169 Field Description Theme Category ID Theme SubCategory Table Handle Theme Category Name Length Theme Category Name The Theme Category's Unique ID assigned by the Head End. Used to Identify Theme SubCategories for this Primary Category.

The Handle to the Memory Pool Block containing the Theme SubCategory Table that corresponds to this Theme Category.

The length of the text string in bytes. Used to locate the start of the next entry.

Compressed text name of Theme Category. Huffman encoded.

Table XXXVII Theme Subcategory Table The Theme SubCategory Table (Figure 42) contains information about Theme SubCategories contained in a Theme Category. Each Theme SubCategory Table is referenced by one Theme Category Entry. Each Theme SubCategory Entry contains a name, qualifiers, and Theme Indexes. The Theme Indexes in Show Titles and in Show Descriptions are matched against the Theme Indexes in a Theme SubCategory. Theme Indexes that match identify which shows are a members of a Theme SubCategory. Further details are provided in Table XXXVIII.

Field Description Type/Nbr Blks Pool entry Type and Number of Blocks required to hold this Pool item. The Type value indicates that this is a 2 byte field since the length can become very large due to the number of Theme SubCategories in the Theme Category.

Theme Category ID Theme Category ID of owning Theme Category.

Reference Count Number of times this object is Referenced.

Nbr Theme Number of Theme SubCategory Entries in the Theme

I-

ll noa~ n*IY~ WO 95/31069 I)MUS95/0O169 98 SubCategories Category.

Table XXXVIII Theme SubCategory Entry There is one Theme SubCategory Entry for each channel in the Region.

Further details on the Theme SubCategory Entry are provided in Table XXXIX.

Field Description SubCategory Show Count of shows that reference this SubCategory. A Show Count Title/Description pair should only be counted once.

Entry Length Total remaining Entry Length in Bytes Indexes Text) Nbr Theme Indexes Number of Theme Indexes that reference this Theme SubCategory.

Theme Index Theme Indexes, 9 bits Nbr extra Theme Index Bits long. This is implementation dependent. The Head End tells the Subscriber Unit how many bits are required for the largest Theme Index. The default is 9 bits. The Subscriber Unit can encode those as 9 bit values, or as 16 bit values.

SubCategory Name Compressed Text SubCategory Name.

Table XXXIX This section describes the messages sent between all processors in a subscriber unit 52. All messages are described even though some subscriber unit implementations may not use or require all of the messages.

Diagrams are given showing the format of the messages followed by a description of each of the fields in the message. Greyed fields represent currently unused fields, but the bits in these fields should be set to O's in order to maintain compatability with future implementations. All fields are binary, 2's complement numbers unless otherwise noted.

Database Engine I/O Processor Interfaces The Database Engine and the I/O Processor communicate via an IM bus running at 1 Mbits per second. The I/O Processor receives Data Transmission Network data via one or more specified Vertical Blanking Interval line(s) and transmits the acquired raw bytes when requested by the Database Engine Processor.

II

WO 95/31069 PC11 us95/1S !69 99 The Database Engine controls the tuned channel and specifies the particular VBI line(s) to be used.

The Database Engine also issues graphic display commands to the I/O Processor such as fill a rectangle with a given color, and save or restore the pixel contents of a given rectangle on the screen. All subscriber unit screens are constructed from these graphic display commands.

The Database Engine issues commands to the I/O Processor in a packet (Figure 43) that contains a packet length field followed by one or more commands.

The I/O Processor transfers all packet bytes to a RAM command buffer and, at the completion of the transfer, begins executing the commands in the order they were received in the packet. The I/O Processor sets a status flag indicating that it is busy until all commands have been executed. Packet size is always the first two bytes received in any command sequence issued to the I/O Processor. Only one command packet can be sent to the I/O Processor at a time.

Graphics Commands The following commands define the primitive graphics operations needed to draw system display screens on a television set connected to or incorporating the subscriber unit 52.

Screen coordinates are based on being in the upper left corwit screen. The TPU 2740 allows X coordinates as high as 503 but the system's maximum X coordinate is 251. This allows the system to keep X coordinates in a single byte and to have two pixels of different colors comprise a 'system pixel'.

Hence (251,207) is the lower right corner of the screen and X coordinates received in commands must be doubled by the 2740.

All colors in the following commands are comprised of two basic TPU 2740 colors in the upper and lower nibbles of the color byte. Using two separate colors in a single system pixel enhances the number of colors that can be shown. Setting a system pixel actually involves setting two successive 2740 pixels along the X axis using the two colors in the color byte.

When areas are filled, the colors must be dithered. That is, the colors used for successive 2740 pixels along the X axis must alternate between the two colors given in the appropriate command color byte. Even rows start with color 1 while WO 95/310(69 PCInMS95/05169 100 odd rows Y coordinate is an odd number) start with color 2 and alternate between the two colors for successive pixels along the X axis.

The 2740's graphics routines clip output if the X or Y coordinate exceeds the limits of the screen. That is, graphics do not wrap if the coordinates of an operation go outside to (251,207).

Commands with illegal parameter values are ignored. An illegal 'cmd type' field causes all subsequent commands in the packet to be ignored; that is, the IOP is finished with a packet if it ever detects an illegal command type.

Graphics commands take precedence over VBI processing.

1 0 Set Graphics Defaults The Set Graphics Defaults command (Figure 44) causes the I/O Processor (IOP) to reset all its graphics variables to their initialization values. This command is used when the Database Engine has come up from a power on reset state. The IOP initializes these values to: shadow width shadow height 3 shadow color BLACK small font delta X 6 small font delta Y large font delta X 8 large font delta Y highlight WHITE underlinel GREY underline2 BLACK Further details are provided in Table XXXX, Field Description cmd type Command ID number 1 identifying this as a Set Graphics Defaults command.

shadow width Number of pixels along the X axis for vertical shadows.

Used by Draw Rectangle command.

shadow height Number of pixels along the Y axis for horizontal shadows.

Used by Draw Rectangle command.

shadow colorl,2 Default colors to be used for shadows.

-~e WO 95/31069 PCT/US9S5/J0 69 small font delta X small font delta Y large font delta X large font delta Y highlightl,2 underline 11,12 underline 21,22 Number of pixels spacing along X axis for small font characters. Used by Write ASCII String command.

Number of pixels spacing along the Y axis allowed for text lines written in small font characters. This value is added to the Y coordinate for the current text line when a carriage return character is encountered in a text string by the Write ASCII String command.

Number of pixels spacing along X axis for large font characters. Used by Write ASCII String command.

Number of pixels spacing along the Y axis allowed for text lines written in large font characters. This value is added to the Y coordinate for the current text line when a carriage return character is encountered in a text string by the Write ASCII String command.

Color ID numbers for the top embossing lines and left side lines.

Color ID numbers for the inner embossing underline and inner right side line.

Color ID numbers for the lowest embossing underline and outside right verticle line.

Table XXXX Erase Screen The Erase Screen command (Figure 45) causes the I/O Processor to blank the screen and set all display buffer pixels to the specified "transparent" color. Further details are provided in Table XXXXI.

Field Description cmd type Command ID number 2 identifying this as an Erase Screen command.

xpar color Color ID number to be used for transparent pixels. Only the lower nibble is used in defining the transparent color.

Table XXXXI Draw Rectangle Wo 95/31069 CTVIUSw9!169 102 Draws a rectangle of specified dithered colors. Rectangle can be filled, outlined, shadowed, and/or embossed in a single operation based on the corresponding flag bits set in the command. Each of these operations can be done independently of the other operations. For example, an empt rectangle can be drawn by setting only the 'outline' flag bit.

For solid color, filled rectangles, both 'fill colorl' and 'fill color2' should be the same value. Rectangles should be filled, then embossed, outlined and shadowed in that order. Further details are provided in Figure 46 and Table XXXXII.

Field Description cmd type Command ID number 3 identifying this as a Draw upper left X upper left Y width height fill colorl,2 outline colorl,2 fill outline shadow Rectangle command.

X coordinate for the upper left corner of the rectangle.

Y coordinate for the upper left corner of the rectangle.

Rectangle size in pixels along the X axis.

Rectangle size in pixels along the Y axis.

Color ID numbers for the dithered colors used to fill the rectangle. Only used if 'fill' bit is set.

Color ID numbers for the dithered colors to be used for the outline around the rectangle. Not used if 'outline' flag 0.

Flag indicating if rectangle should be filled with dithered colors. 0 no, I yes.

Flag indicating if rectangle should be outlined. 0 no outline, 1 outline rectangle with 'outline' color.

Flag indicating if rectangle should have a shadow. If the siiadow bit is set for drawing a pop-up then save and restore rectangle operations must account for the size of the shadow.

Shadow size and color are set by the Set Graphics Defaults command. 0 no shadow, 1= draw shadow.

Flag indicating if rectangle should be embossed to give a 3D effect. Embossing colors used are determined from the 'fill color 1' and 'fill color 2' fields. 0 no embossing, 1 do embossing.

Table XXXXII emboss WO 95/31069 PCMllM/01) 569 103 Example rectangles are shown in Figures 47A-47E.

Save Rectangle Causes the pixel contents of a specified rectangle on the screen to be saved in a temporary buffer for later restoration via a Restore Rectangle command. Further details are provided in Figure 48 and Table XXXXIII.

Field Description cmd type Command ID number 4 identifying this as a Save Rectangle command.

upper left X X coordinate for the upper left corner of the rectangle.

upper left Y Y coordinate for the upper left corner of the rectangle.

width Rectangle size in pixels along the X axis.

height Rectangle size in pixels along the Y axis.

pop-up ID ID number assigned by the command initiator (value is equivalent to nesting level). This field is only used for debugging.

Table XXXXIII Restore Rectangle Restores a rectangle to the screen that was previously saved with a Save Rectangle command. Rectangle to be restored is recognized by its 'pop-up ID' field.

Restoration coordinates allow a previously saved rectangle to be brought back at a different place on the screen, such as when moving a cursor or icon of some sort.

Further details are provided in Figure 49 and Table X)CXNIV.

Field Description cmd type Command ID number 5 identifying this as a Restore Rectangle command.

upper left X X coordinate for the upper left corner of the rectangle.

upper left Y Y coordinate for the upper left corner of the rectangle.

save Flag indicating if rectangle's storage area can be released for use by subsequent save operations. If the 'save' flag is set then another 'restore' operation can be performed without doing a corresponding 'save'. 0 release, 1 save.

pop-up ID ID number previously assigned to a saved rectangle. Not used except for debugging.

I WO 95/31069 PCT(I"95/051 69 104 Table XXXXIV Move Rectangle Vertically The Move Rectangle Vertically command (Figure 50) causes the pixel contents of a specified rectangle to be copied to another place in display memory, effectively moving the rectangle on the screen. Only vertical moves are handled by this command. Rectangles are scrolled up or down one line at a time until the specified scroll size has been achieved. Further details are provided in Table

XXXXV.

Field Description cmd type Command ID number 6 identifying this as a Move upper left X upper left Y width height scroll size delay Rectangle Vertically command.

X coordinate for the upper left corner of the rectangle.

Y coordinate for the upper left corner of the rectangle.

Rectangle size in pixels along the X axis.

Rectangle size in pixels along the Y axis.

Number of pixels to shift the rectangle per move operation.

Negative numbers mean shift the rectangle to a position 'scroll size' pixels higher on the screen. Positive numbers mean shift the rectangle lower on the screen.

Number of horizontal sync pulses to count before starting the next single line scroll operation. Provides some scroll rate control for the Database Engine.

Table XXXXV Write ASCII String Output an ASCII string to the screen. Starting coordinates for the first character of the string correspond to the character's upper left corner. Successive characters are on a horizontal line until an ASCII carriage return character is encountered; subsequent characters are output delta Y' (as specified in he Set Graphics Defaults command for each font) pixels lower on the screen and restarting at the original X coordinate. Illegal characters cause a to be output in their place.

c- WO 95/31069 PCT(rS5M105169 105 Characters can be output in one of two fonts. Only upper case characters are supported in the large font, Further details are provided in Figure 51 and Table

XXXXVI.

Field cmd type font start X start Y text color 1,2 ASCII string Description Command ID number 7 identifying this as a Write ASCII String command.

Identifies which of two fonts should be used for each character in the string. 0= small font, 1 large font.

X coordinate for the upper left corner of the first character in the line.

Y coordinate for the upper left corner of the first character in the line.

Color ID numbers for the pixels that form characters. (Only the lower nibble is used characters are not dithered.) String of ASCII.characters to be output. Output stops when a NULL is found.

Table XXXXVI Draw Channel Icon Draws a channel icon at specified coordinates. Coordinates for the icon represent the upper left corner of a rectangle that would exactly contain the icon if it held a 1 or 2 character channel name These coordinates must be adjusted if the 'ASCII channel name' field is longer than 2 characters In this case, the IOP 'must decrement the X coordinate sent in the command by 3 (channel name length-1).

An empty channel icon is drawn if the channel name string has no characters in it an empty icon of 1-2 character size if byte 5 Further details are provided in Figure 52 and Table XXXXVII.

Field Description cmd type Command ID number 8 identifying this as a Draw Channel Icon command.

upper left X X coordinate for upper left corner of the icon.

upper left Y Y coordinate for upper left corner of the icon, fill colorl,2 Color ID numbers for the fill colors inside the channel icon.

WO 95/31069 PCT/Ss95/05169 106 text colorl,2 Color ID numbers for the text in the channel icon and for the outline of the icon.

ASCII chan name 0 to 4 characters to be used for labeling inside the channel icon. May be a name such as "SHOW", "G3-24", "RESET","CNN" or a channel number such as or "135".

Field has a NULL terminator; i.e. byte 0 after last character of the namne. If this string is of length 0 first byte of this field 0) then an empty icon is drawn.

Table XXXXVII Examples of channel icons are shown in Figures 53A-53C.

Disable Transparent Color The Disable Transparent Color command (Figuic 54) specifies that no color code number represents transparent pixels. This command is used to indicate when no color should be transparent and should be sent each time a full screen display is drawn. Further details are as follows: Field Description cmd type Command ID number 9 identifying this as a Disable Transparent Color command.

Network Data Acquisition and Control Interface System data is received via the PBS network, MTV, Showtime or other transmission source on one or more Vertical Blanking Interval (VBI) lines. The I/O Processor acquires data from each line (if there are multiple lines) and stores it into separate input buffers. Data is stored in the IOP's input buffers even if the framing code is bad for a given field. In this case, two bytes of 03s are stored. Trie data is only transferred to the Database Engine Processor if the command packet contains at least one command that requires a response.

When responding to a Database Engine request, the I/O Processor transfers as many bytes as it can that is less than or equal to the number of requested data bytes. If an input buffer becomes full, the I/O Processor begins dumping the data until the buffer is emptied or a reset is issued. A full buffer causes the 'ovfl' flag to be set in the next response it sends to the Database Engine.

The I/O Processor can handle up to 2 VBI lines of system data or one line of system data and closed caption data from line 21. Data is always acquired from both WO 95131069 PCT/US95/05169 107 fields for each system data VBI line. Closed caption data is also acquired from both fields.

The I/O Processor responds within 10 milliseconds to any command that requires a response.

Stop VBI The Stop VBI command (Figure 55) causes the I/O Processor to initialize its internal variables related to VBI processing. All VBI buffer counters are cleared and.

any acquired data is lost. VBI data acquisition is stopped until a Set VBI Control Parameters or a Flush VBI Buffer command is received. Further details are as follows: Field Description cmd type Command ID number 16 identifying this as a Stop VBI command.

Set VBI Control Parameters The Set VBI Control Parameters command (Figure 56) allows the Database Engine to specifly parameters that control the acquisition of VBI data. This command (or a Flush VBI Buffer command) must be issued after a Stop VBI command in order to enable VBI data acquisition.

Parameters must be sent for all VBI lines (maximum of two lines. Each new Set VBI Control Parameters command replaces all previous parameters.

Parameters must be ordered by line number with the lowest VBI line first. Further details are provided in Table XXXXVIII.

Field Description cmd type Command ID number 17 identifying this as a Set VBI Control Parameters command.

nbr lines Number of VBI lines to use for acquiring system data.

VBI line 1 Primary VBI line number whose data is to be acquired.

fram code 1 Framing code to be used for VBI line 1.

rate 1 Data rate for VBI line 1. 0 Telecaption rate (2 bytes per line), 1 full rate (33 data bytes per line).

VBI line 2 Additional VBI line numbers (if any) whose data is to be acquired. Not present if only one VBI line to be processed.

Maximum of 2 VBI lines.

I WO 95/31069 PCT/US95/05169 108 rate 2 Data rate for VBI line 2. Not present if 'nbr lines' field 1. 0 Telecaption rate (2 bytes per line), 1 full rate (33 data bytes per line).

fram code 2 Framing code to be used for VBI line x. Not present if 'nbr lines' =1.

Table XXXXVIII Read VBI Status The Read VBI Status command (Figure 57) causes the I/O Processor to return status information on the specified VBI line buffer. Further details are provided in Table XXXXIX.

Field Description cmd type Command ID number 18 identifying this as a Read VBI Status command.

VBI line VBI line number whose status is being requested. =0 means return status for all active VTI lines.

Status returned is formated as shown in Figure 58 and further described in Table L: Field Description VBI line VBI line number whose status is being returned. 'VBI line' 0 means a status request was made for a VBI line that the IOP is not collecting data for; an illegal VBI line number was received in the command that generated this response.

(Lines for which data is collected are set with a Set VBI Control Parameters command.) nbr unread bytes Number of data bytes in buffer for 'VBI line' that have not yet been read by the Database Engine. A value of 255 for this field indicates that the IOP has at least 255 bytes available.

ovfl Flag indicating VBI buffer has overflowed since last read request I/O Processor had to drop some VBI data since the buffer was full of unread bytes). 0 no overflow, 1 overflow occurred.

rate Data rate for this VBI line. 0 Telecaption rate, 1 full rate.

WO 95/31069 PCT/US95/05169 109 Table L Read VBI Buffer The Read VBI Buffer command (Figure 59) causes the I/O Processor to return a specified number of data bytes from the buffer for the specified VBI line.

Data is returned in first in, first out order. The number of data bytes actually returned will be less than or equal to the requested number of bytes. Further details are provided in Table LI.

Field Description cmd type Command ID number 19 identifying this as a Read VBI Buffer command.

read again Flag indicating that the last Read VBI Buffer command should be repeated using the same parameters in effect at that time repeat the last Read VBI Buffer command). If this bit is set then the 'VBI line' and 'nbr bytes' fields will not be present in the command. 0 read using parameters specified in this command, 1 read using last specified parameters.

VBI line VBI line number whose data is being requested.

nbr bytes Maximum number of data bytes to be returned. If more bytes are requested than exist in the buffer then the number in the buffer will be returned. If the buffer is empty then a single byte VBI Data Response is returned only byte 0 in Figure 60) indicating that no data is available.

Data returned has the format of Figure 60. Further details are provided in Table

LII.

Field Description err fig Flag indicating if an error occurred since the last VBI access command. Database Engine should do a Read VBI Status to get error information. 0 no error occurred, 1 had error since last VBI access. The error flag is not cleared until a Read VBI Status command is done.

VBI line VBI line number whose status is being returned.

data byte Successive data bytes from the buffers for the given VBI line.

Bytes are returned in first in, first out (FIFO) order. Number WO 95131069 PCT/US95/05169 110 of bytes returned will be less than or equal to the number of requested data bytes. No data bytes are returned if the buffer is empty.

Table LII Flush VBI Buffer The Flush VBI Buffer command causes the I/O Processor to either transfer all existing data in a given VBI buffer or to reset VBI processing for a given VBI line without stopping data acquisition. VBI processing is re-enabled with the parameters sent in the last Set VBI Parameters command. This command re-enables VBI processing that had been suspended due to a Stop VBI command.

If data is transferred then it is returned in the same response format as for a Read VBI Buffer command. Further details are provided in Table LIII.

Field Description cmd type Command ID number 20 identifying this as a Flush VBI Buffer command.

clr fig Flag indicating whether remaining data should be transferred or not. 0 don't transfer remaining data just reset both buffers, 1 transfer any existing data (up to 255 bytes) and then reset both buffers.

VBI line VBI line number that is being flushed. 'VBI line' 0 means flush all VBI buffers. This field is ignored if non-zero and in concatenated VBI data transfer mode.

Reception Groups A Reception Group (or RG) is a named entity which has an associated Channel Lineup. There are three broad categories of Reception Groups: Broadcast, Cable and Satellite. Examples of these are shown in Table LIV: Type of RG Nne Description Broadcast: "SF BAY" all channels receivable via VHF or UHF antennas in the San Francisco Bay Area Cable: "TCI, Fremont, all channels receivable by subscribers to the CA" TCI Fremont cable system Satellite: "TVRO North all channels receivable in North America via WO 95/31069 PCT/US95/05169 111 America" Home Satellite antenna Table LIV Some RGs, and certainly Cable RGs, will have information associated with them which is of interest, and may be helpful in marketing and other operations.

Some examples of such information are: Name of Contact Telephone Number FAX Number

ADI

DMA

Each StarSight Subscriber Unit is considered to be a "member", so to speak, of one and only one RG. When it is first put into operation, the SU must be informed as to which RG it is in, so that it will display the Lineup which is true for that RG.

Lineup Explanation A Lineup is the actual list of channels that are received in a particular RG. In fact at any given time, there is a one-to-one mapping of RGs and active Lineups: for every RG there is one and only one active Lineup, and for every active Lineup there is one and only one RG. It is possible that two RGs could sometimes have identical lists of channels received; it is equally possible that one list could be changed while the other does not. For this reason, each Lineup is RG-specific. A Lineup can usually be thought of as a description of information that could be obtained by viewing a physical geographic map (a map that shows coverage of TV stations and cable systems, that is); it contains information about which channels are available in mtne physical area that the Lineup covers. The purpose of a Lineup is to define what channels in a given RG need to be supported with data.

Because of the well defined physical area of cable TV and broadcast TV, the viewable channels that a TV viewer located in that area would be able to receive are well know n. These channels make up a Lineup, which is required so as to know what listings data to transmit for a given RG.

It is possible for multiple LINEUP maps to cover the same area or overlap.

An example of this might be two neighbors with one receiving TV via a home antenna and the other getting his from cable. In this case the cable subscriber would WO 95/31069 PCTIUS95/05169 112 be in a different RG than his non-cabled neighbor since he would be receiving more different channels from his cable. In the above case the StarSight data destined for both RG's is delivered from one PBS station and each SU listens for the data defined in its SU Lineup.

In the case of broadcast TV a given RG could contain from one to dozens of channels and could include weak stations that are found in the fringe areas. In the case of a cable system the Lineup is very well defined and is the same for all subscribers in that cable system. The Lineup for satellite viewers is fairly constant for all viewers throughout the USA with the possibility of some differences between the east coast and the west coast but is more likely to be just one group covering all of the continental USA.

File Layout Specifications Station List The Station List is made up of records with each record identifying and describing the essential characteristics of one broadcast station or satellite feed.

To deal with unedited stations or repeater stations, a field is used to specify where, if anywhere, the station's schedule information is obtained. If the station is not currently edited, the value in this field is set to zero; if the schedule information is being provided using a different Station ID (in other words, this station is a repeater), then this field will contain the ID of the other station; if the station is handled normally (schedule is edited and data is provided under this ID), this field is left empty.

The Station List is required to contain an entry corresponding to every station or feed for which the vendor supplies data to StarSight, regardless of whether that feed is present in any Lineup supplied by the vendor to StarSight. This is because StarSight sometimes identifies a need for data for a station, due to a show or test. In a case like this StarSight might internally generate a lineup containing this station, and just ask the vendor to supply the schedule information.

In general, the vendor should be supplying data to StarSight for all regularly scheduled stations and feeds in the USA, as well as certain designated local-origination feeds; the Station List must contain an entry identifying each one of these, an entry for each alias for any of these, and an entry for every feed which appears in any lineup supplied by the vendor to StarSight.

1 I-I WO 95/31069 PCTIUS9505169 113 Other fields give the station Call Letters or satellite feed's name, the usual abbreviation for the name, effective date and expiration date (for dealing with Call Letter changes).

Lineup List The Lineup List is made up of two types of records: RG Records Each RG record explains the details about one RG, such as contact names, location, type of service, daylight saving time observed etc.

Lineup Records Each Lineup record describes one of the channels received by the RG. The union of all the currently-effective records describing channels in a given RG comprises the Lineup for that RG. There may also be records which are not currently effective, either because the date they become effective is in the future, or because the date on which they ceased to be effective is in the past. Each record contains sufficient information to unambiguously identify the RG and channel it applies to, and (along with knowledge of the current date) to determine whether or not it is currently effective. It also contains information which allows the construction of composite channels.

The Lineup List can be updated incrementally by transmitting a Lineup List Update, consisting of only the Lineups for RGs that have been modified since the last time the full Lineup List was transmitted. Note that any time a given RG's Lineup is updated, it must be updated in full; that is: a Lineup List Update may update only some of the RGs, but any RG which has its updated must be updated by transmitting all the lineup information for that RG.

Probable usage would be for the full Lineup List to be transmitted weekly, and a Lineup List Update, transmitted daily.

File Naming Conventions Filenames for the Station and Lineup lists shall be assigned as follows: Base name of each file shall consist of six characters signifying year, month and day; basename shall be separated from a suffix by a period, and the suffix shall denote which type of file, according to Table LV below: Basename.Suffix Type of File Examples yymmdd.STD Station List Daily file 940130.STD -1 WO 95/31069 PCT/US95/05169 114 yymmdd.LUW Lineup Weekly file 940519.LUW yymmdd.LUD Lineup List Update 941121.LUD yymmdd.TRD TVRO Lineup File 931225.TRD Table LV File content These files will contain records made up of ASCII text in the range of 20 to 7E hex inclusive. The only exception to this is the end of record terminator OA hex,.

an ASCII Line Feed.

File Transfer The Station and Lineup files are pipe-delimited-format (PDF) ASCII files comprised of newline-terminated records. These files are to be transferred to StarSight electronically.

Composite Channels The issue of composite channels is handled through the Lineup. If a single tunable channel routinely airs programming from more than one programming source, it is then known as a composite channel. (Example: A cable channel #41 might show VH1 for part of the day and HBO for another part of the day, etc.) The Lineup will deal with this by assigning each of the feeds that go into the composite to the same "tune" channel. The start and stop times can then be used to determine what data to compile for that composite.

Composite channels are seldom seen on broadcast TV or on Satellite TV but are quite normal for a cable provider.

Station List Each record in the Station List file is comprised of the fields defined in Table LVI. Each field is delimited from the next with an ASCII "pipe" (7C hex) character.

Fields with a specified default size of 0 may be left empty if no data is available; fields with a nonzero minimum size are mandatory. Note: to inform StarSight that an entry of the Station List is being deleted, a Station List record is transmitted containing data in the the "Station ID" and "Last Modified Date/Time" fields, with all other fields empty. This signals StarSight to stop doing the internal processing associated with this Station.

Station List Record Format WO 95/31069 PCT/US95/05169 Field Field Name Field

MIN

12 Size

MAX

12 Station ID Station Type 0 1 Call Letters or Feed 0 Name Usual Abbreviation of 1 Name Explanation of Name 0 Description The 12 digit I.D.

number of this Station or feed.

0=Full Power Broadcast 1 =Low Pwr TV Station 2=Satellite Feed 3 =Locally-originated 4=other Call Letters or usual name (must fit in 8 characters!): e.g.,HBO-WEST (applies mostly to satellite feeds: must fit in at most 4 characters!) e.g. HBO Fully-descriptive name of the feed (generally applies to satellite feeds).

Leave empty for locally-originated Stations; broadcast channel when received by antenna; for Satellite cable feeds: Sat Type, Satellite, Transponder, Channel Native Channel 0 13 c- -~cl WO 95/31069 PCT/US95/05169 Affiliation Schedule Data Source 0 Network affiliation, if any.

if left empty: schedule data is provided using the ID supplied in field 1 0 no data provided.

for this station any other ID of schedule data source yymmddhhmm yymmddhhmm yymmddhhmm and/or Carriage Return 9.

11.

12.

END of

RECORD

Last Modified Date/ 10 Time Effective Date/Time 10 Expiration Date/Time 0 Comments 0 OA hex and/or OD hex 10 10 10 300 Line Feed Table LVI A detailed description of the station list record format is provided in Table

LVII.

Field 1.

2.

Name Station ID (12 numeric) Unique ID number assigned by vendor. This ID is used to identify the station or feed wherever this is required.

Station Type (empty, or 1 byte, numeric) 0=Full Power Broadcast 1 =Low Pwr TV Station 2=Satellite Feed 3 Locally-originated 4=other Call Letters or Feed Name (up to 8 alphanumeric) WO 95/31069 PCIUS95/05169 117 StarSight requires that no more than 8 characters be used to identify the Station or Feed.

4. Usual Abbreviation of Name (1 to 4 alphanumeric) Note: 4 characters, maximum! If there is a well-known abbreviation, supply it here. Most cable subs don't think about East- and Westcoast feeds, so HBO-WEST would generally be abbreviated as just HBO for cable subs.

Explanation of Name (up to 120 bytes) Give the fully-expanded name, if different from above. For example, if Field 3 contains "YOUTH" and Field 4 contains "YTV", Field might contain "Youth Television" 6. Native Channel (up to 13 bytes, alphanumeric) For broadcast and LPTV stations, this field would contain just a number. For satellite feeds, supply a comma-separated list that describes: Type of Satellite (C or Ku), which satellite (usually a letter and a number, like G5), which transponder (a number), and if necessary which channel within a transponder (required when, for example, 10 compressed channels are available on a transponder).

This field should contain data if the "Station Type" field contains 0, 1, or 2; it may be empty if "Station Type" is 3, 4, or Super Stations such as WTBS, WGN and WWOR deserve special consideration. In their home markets, these stations are just normal broadcast stations with normal broadcast Native channel numbers; but when received from satellite, the Native channel number must refer to a satellite and transponder. This is to be handled by using two separate Station IDs to refer to the two distinct usages of these stations. If the schedule information is the same for both, this can be indicated by having one record give the other "Station ID" in the "Schedule Data Source" field.

7. Affiliation (up to 20 characters) Which network(s), or IND, or empty if unknown 8. Schedule Data Source (up to 12 numeric) if left empty: schedule data is provided using the ID given in field 1

,I

WO 95/31069 PCT/US95/05169 9.

10.

118 0 no data provided for this station any other ID of schedule data source Last Modified Date/Time (10 numeric) The last time any field was modified.

Effective Date/Time (10 numeric) GMT Date/Time this record became or will become effective. Used to specify Station information which is either current, or is not yet true, but will become true at a known future date and time, such as a change of name or Call Letters. This field specifies the date and time the information did or will become effective.

Expiration Date/Time (up to 10 numeric) GMT Date/Time this record did or will expire. Similar to the preceding field, this field specifies a future date and time when this piece of Station information Call Letters) will cease to be in effect.

Comments (up to 300 bytes) Whatever might be useful in assuring the channel or feed is unambiguously identified.

Table LVII An example of a station list record is given in Table LVIII.

Field Field Name 1. Station ID 2. Station Type 3. Call Letters or Feed Name 4. Usual Abbreviation of Name Explanation of Name 6. Native Channel 7. Affiliation 8. Schedule Data Source 9. Last Modified Date/Time Effective Date/Time 11. Expiration Date/Time Sample Data 140032965 2

CARTOON

TCN

The Cartoon Network Ku,G1,8 9309170930 9309170930

I

WO 95/31069 PCT/J9S5/05169 119 12. Comments eh-Th-ch, eh-Th-eh, eh-Th-That's All, Folks! END of RECORD (END of RECORD) Table LVII A record containing the data described above is as follows: 140032965 2 1 CARTOON I TCN The Cartoon Network I Ku,G1,8[ 119309170930193091709301 I eh-Th-eh,eh-Th-eh, eh-Th-That's All, Folks! I (END of RECORD) The Lineup List The Lineup database will contain one record for each currently-effective channel in each RG, and may also contain a future lineup for each RG. A "channel" is any seperately-scheduled feed. Composite channels are described using a separate record for each part of the composite.

Certain conventions must be observed, in order to minimize StarSight's processing burden: 1. Each field is delimited from the next with an ASCII "pipe" (7C hex) character. Fields with a specified default size of 0 may be left empty if no data is available; fields with a nonzero minimum size are mandatory.

2. To inform StarSight that an RG is being deleted, a normal-looking RG record is transmitted, except that it contains a 0 in the "Lineup Record Count" field, as well as a specific Date/Time for expiration, in the "Expiration Date/Time" field; all other fields should be formatted as per this specification. This signals StarSight to stop doing the internal processing associated with this RG, as of the specified Date/Time. Note: due to the delay inherent in processing this type information, it is not a good idea to reuse this RG number to identify a new RG. To assure no problems of this nature, RG numbers should not be reused at all.

3. A lineup must always be described in its entirety, with an RG recor." immediately followed by all the Lineup records associated with this

RG.

WO 95/31069 POW891/01169 IT, 120 4. When there is both a current and a future lineup defined for an RG, the current information is transmitted first, with an RG record having the earlier of the two effective dates, followed by all the current lineup records; then another RG record having an effective date in the future followed by all the lineup records for the future lineup.

If any Lineup data is provided for a given RG, the entire Lineup (including all currently-effective and all scheduled-to-become-effective data) for that RG must be provided.

6. All the records which deal with a given RG must be contiguous in the file; it is not allowed to have records that (eal with RG 100, then RG 101, then again with RG 100, in the same file.

7. Lineup information is to be sorted in ascending order on the following key values: a. RG number b. Effective Date c. Source d. Tune Channel 8. It is possible to explicitly schedule an "Expiration Date/Time" for the information in a given lineup, by providing this information in the optional field of this name in the RG record.

9. Any change to any record of a Lineup must be reflected by updating the "Lineup Info Last Date/Time Modified" field in the RG record for that lineup.

Note that there is not a field in the Lineup record for a "Last Date/Time Modified": this is handled by updating the "Lineup Info Last Date/Time Modified" field in the RG record; an update of the "Lineup Info Last Date/Time Modified" field implies that the entire Lineup for that RG has been updated and verified.

11. Note that there is not a field in the Lineup record for "Effective Date/Time": this is handled by updating the "Effective Date/Time" field in the RG record; the value of the "Effective Date/Time" field implies that the entire list of Lineup records that follow this RG I WO 95/31069 PTV/US95/0169 121 record will become effective (or did become effective) on that Date and Time.

'G record format is shown in Table LVIII.

Field Name Field Size Description MIN MAX Field 3.

5.

6.

7.

8.

9.

10.

11.

12.

13.

14.

Record Type 1 Lineup Record Count 1 RG number 8 RG group type 1 RG name 0 Satellite Name Cable System name 0 Satellite Abbreviation MSO name Sat 0 Operator Contact name(s) 0 Contact tel number 0 Street Address 0 City 0 State 0 ZIP 0 DMA Name Sat 0 Orbit Pos DMA Rank 0 ADI Name 0 ADI Rank 0 1 =normal RG =Satellite.

4 Decimal of Lineup records to follow.

8 (.The 8 digit I.D.

number of this RG) 1 0=broadcast 1,2,3,4=cable 120 Unique name of this Reception Group (if cable, name of headend) 120 (if cable, name of system) 120 (if cable, name of

MSO)

120 120 120 2 120 3 120 3

(DMA)

(DMA Rank) I WO 95131069 Vl'USS/O5/0sI69 21.

122 Communities Served 0 Comments 0 RG General Info 10 Last Modified Date/Time RG Lineup Info 10 Last Modified Date/Time Effective Date/Time 10 Expiration Date/Time 0 300 300 10 yymmddhhmm 10 yymmddhhmm 10 GMT Date/Time this record became or will become effective.

10 GMT Date/Time this record will or did expire.

Line Feed and/or Carriage Return 23.

END of RECORD OA hex and/or OD hex Table LVIII RG Field explanation Field# 1. Record Type (1 byte) This field must always contain one of the uppercase ASCII characters or to specify that this record is an RG record. If Record Type is then the record is being used to describe a particular Satellite, and the meanings of certain fields are redefined (see details below). Both record types have the same number of fields, but several fields will always be empty when Record Type 2. Lineup Record Count (1 4 bytes) The decimal number of Lineup records that follow this record; that is: the number of following records used to completely define the Lineup of this

RG.

3. RG number (8 bytes) This number is the unique 8 decimal digit ID of this RG. RG numbers must not be re-assigned: once an RG number has been assigned, it may eventually pass out of usage (say, because a company goes out of business); but even in this case, its RG Number should not be reused.

WO 95/31069 PCT/US95/05J69 123 4. RG group type (1 byte) The Lineup type defines what type of service this RG is targeted for: 0=Broadcast TV, this is a conventional TV channel RG.

1 =Standard cable system, this is a conventional cable frequency plan.

2=IRC cable system (IRC is a modified cable frequency plan.) 3=HRC cable system, (HRC is another modified cable frequency plan).

4=Cable System, Frequency Plan Unknown Satellite RG Name (if Record Type="R") (up to 120 bytes) Satellite Name (if Record Type="S") Use a verbose description of up to 120 characters to describe the RG or Satellite as unambiguously as possible. If a cable RG, use the MSO Name field if appropriate; RG Name should uniquely identify an entity that can have its own lineup. For example, each headend of a cable system can have its own lineup, so each headend should have a name which is somehow unique, even if it is only a unique number, or a unique combination of the Cable System Name with a number.

6. Cable System Name (if Record Type (up to 120 bytes) Satellite Abbreviation (if Record Type If cable, this may be a system operated by a Multiple System Operator (MSO). If so, give the name commonly used in the community to identify this cable system. If satellite, give the usual letter/number combination used to refer to this satellite, such as G3 for Galaxy 3.

7. MSO Name (if Record Type (up to 120 bytes) Satellite Operator (if Record Type If cable, this may be a system operated by a Multiple System Operator (MSO). If so, name the MSO. If satellite, name the operator of the satellite.

8. RG local contact (0 to 120 bytes) Name of a local contact person at the cable company.

9. Contact Telephone Number (up to 20 bytes) Number of a local contact person at the cable company.

Street Address (up to 120 bytes) Street address of a local contact person at the cable company.

4 WO 95/31069 P'CT/US95/0569 124 11. City (up to 120 bytes) Name of the city where contact is located.

12. State (0 to 2 bytes, alpha) This is the US Postal Service's 2-character abbreviation for the state.

13. ZIP (0 to 10 bytes) The ZIP code is formatted as 5-bytes, dash, 4-bytes. Ouite often only the first 5 bytes are available.

14. DMA Name (if Record Type (up to 120 bytes) Orbit Position (if Record Type What name does Nielsen use to refer to the DMA within which this RG lies? DMA Rank (always empty when Record Type (3 bytes, numeric) What is the Nielsen DMA Rank for the DMA within which this RG lies? 16. ADI Name (always empty when Record Type (up to 120 bytes) What name does Arbitron use to refer to the ADI within which this RG lies? 17. ADI Rank (always empty when Record Type (3 bytes, numeric) What is the Arbitron ADI Rank for the ADI within which this RG lies? 18. Communities Served (empty when Record Type (up to 300 bytes) Comma-separated list of towns, cities, communities, neighborhoods, districts or boroughs served by this RG. The list should be as succinct and correct as possible, but should err, if at all, on the side of including too many, rather than too few, names.

19. Comments (up to 300 bytes) Any special information that might help to distinguish this RG from others nearby, or anything else the person doing data entry feels is important for StarSight to be aware of, especially as it relates to trying to identify which RG a new subscriber is in.

20. RG General Info Last Modified Date/Time (10 bytes, numeric) GMT Date and Time this record was last modified: format yymmddhhmm;For example: 9307110514.

21. RG Lineup Info Last Modified Date/Time (10 bytes, numeric) WO 95/31069 PCT/US95/05169 125 GMT Date and Time any Lineup information associated with this RG was last modified: format yymmddhhmm;For example: 9307110514. Note: the value "0000000000" is reserved, and has the special meaning: "No Lineup available for this RG".

22. Effective Date/Time (10 numeric) GMT Date/Time the following lineup became or will become effective. Used to specify lineup information which is either current, or is not yet effective, but will become effective at a known future date and time. This field specifies the date and time the information did or will become effective.

23. Expiration Date/Time (empty, or 10 numeric) GMT Date/Time this record did or will expire. Similar to the preceding field, this field specifies a future date and time when this piece of lineup information will cease to be in effect. The Date/Time specified is assumed to be non-inclusive of the final minute, meaning that the lineup expires at the beginning of this minute, not the end.

An example of an RG record is provided in Table LIX: Field# Field Name Sample Data 1. Record Type R 2. Lineup Record Count 3. RG number 12345 4. RG group type 1 RG name 12345 6. Cable System name Megacable of Fremont.

7. MSO name Megacable Conglomerates, Inc.

8. Contact name(s) Bob Engineer 9. Contact tel number (510) 555-1212 Street Address 2020 Main Street 11. City Fremont 12. State CA 13. ZIP 94538 14. DMA Name San Francisco Bay Area DMA Rank

I

WO 95/31069 ]PCTUS95/05169 16. ADI Name 17. ADI Rank 18. Communities Served 19. Comments RG General Info Last Modified Date/Time 21. RG Lineup Last Modified Date/Time 22. Effective Date/Time 23. Expiration Date/Time END of RECORD San Francisco Bay Area Fremont, Union City, Sunol Sunol is closer to Dublin, but is on this cable system.

9307060841 9307060841 9307060841 \xOA hex Table LIX A sample record containing the data specified above is as follows: R 120112345 1 1112345 1 Megacable of Fremont. Megacable Conglomerates, Inc. I Bob Engineer 1(510) 555-121212020 Main Street I Fremont I CA 194538 1 San Francisco Bay Area 1 5 San Francisco Bay Area 51 Fremont, Union City, Sunol Sunol is closer to Dublin, but is on this cable system. |9307060841 9307060841 i93070608411 |ENDOF RECORD The lineup record format is shown below in Tabl Field Field Name Field Size MIN Ml 1. Record Type 1 RG number Tuneable channel Source le LX.

Description

AX

1 for normal lineups; for Satellite TVRO lineups 8 (The 8 digit I.D. number of this RG file) 3 (channel or letter) 1 If multiple signal sources are used, which is selected for this channel? If there is only 1 signal source, this field should be left empty.

WO 95/31069 PCT/IUS95/05169 Channel ID Channel Type Days 12 Must be a valid Station ID number from the Station List file 1 0=not identified 1= Basic, 2=Extended Basic, 3= Premium, 4= PPV 7 These numbers are single bytes with the-following meaning: 1 Sunday 2 Monday 3 Tuesday 4 Wednesday Thursday 6 Friday 7 Saturday For non-composite channels, this field should be left empty.

8. Start Time 4 4 GMT Hour/Minute 9. Stop Time 4 4 GMT Hour/Minute 12. End of Record OA Hex and/ ASCII Linefeed and/or or OD Hex Carriage Return Character Table LX A detailed description of the lineup record is as follows: 1. Record Type (1 byte) normal Lineup Record; Satellite TVRO Lineup Record.

2. RG Number (8 numeric) This is the same number used to identify the Reception Group in the RG record.

3. Tunable channel (1 to 3 bytes) This is the channel you would tune to in order to receive this programming.

It is the cable channel number or letter for the cable system (when Record e WO 95/31069) P'CT/USOSg10i69 128 Type= or the transponder number for TVRO (Record Type= If two or more records have the same tune channel then this is a composite channel.

4. Source (empty if Record Type Some cable systems have the capability to select among two or more separate cables; specify which cable B, to use, if this is such a system. Leave empty if this is a single-source system.

Channel ID (12 bytes) This is the unique number used to identify the schedule information for this channel. It refers to one of the stations defined in the Station List, using its unique Station ID.

6. Channel Type (1 numeric) What kind of channel is this (applies to cable and TVRO lineups): a. Don't know 1 Basic 2 Extended Basic 3 Premium 4 PPV b. can be assigned meanings at vendor's request 7. Days (0 to 7 bytes) These are the days in which data from this feed is used. For non composite channels the days would be 1234567. For the non-composite case, since this is by far the most common case, leaving the field empty shall be defined to be equivalent to specifying all 7 days. Any combination of up to 7 days can be specified in this field.

These numbers are single bytes with the following meaning: 1 Sunday 2 Monday 3= Tuesday 4 Wednesday Thursday 6 Friday 7= Saturday Thus a "Days" field of 257 specifies the days Monday, Thursday and Saturday.

8. Start Time (4 bytes) WO 95/31069 PCT/US95/05169 129 This is the starting time (GMT) at which data from this channel should be used. For a non-composite channel the start time will always be 0000 hours

GMT.

9. Stop Time (4 bytes) This is the stop time (GMT) for data from this station. For a non-composite channel the stop time will always be 0000 hours GMT. The Date/Time specified is assumed to be non-inclusive of the final minute, meaning that the.

lineup expires at the beginning of this minute, not the end.

End of Record ASCII Linefeed (OA Hex) and or Carriage Return (OD hex).

Example: Lineup involving Current and Future data for a two-cable system: The fictitious lineup below illustrates a system that uses only two channels on each of two cables, for which there exist both a current and a future lineup. The data are sorted as described above; that is the currently-effective information for source A is given first (sorted in ascending order by tuned channel number), followed by the currently-effective information for source B, then the future information for source A, and finally the future information for source B. The record in boldface is the only record that is actually different between the two lineups; channel 2 on Cable B is being reassigned. Note, however, that the future lineup is given in its entirety.

R 14100000010141 TUCSON CABLEVISION I TUCSON CABLEVISION I INTERMEDIA PARTNERS I CATHY 1 (602)629-8470 1 1440 E ST I TUCSON I AZ 185719-6495 1 1 19310000000193100000001930801040019401150 4001 L 00000010 21 A 110039521 11 123456710101 L 100000010 13 A 10042895111123456710101 L10000001012 B1503409111123456710101 L10000001013 B19353489111123456710101 R 1410000001014 1 TUCSON CABLEVISION I TUCSON CABLEVISION I INTERMEDIA PARTNERS I CATHY 1 (602)629-847011440 E ST TUCSON IAZ 185719-6495 I 1 1931000000019310000000194011504001 I L 00000010 12 A1100395211111234567 0101 L 100000010 31 A110042895111123456710101 WO 95/31069 PCT/IS95/05sW9 130 L100000010 12lB 045098451| 123456710101 L 0000001013|B1935348911|123456710101 Example: Deleting an RG The example below illustrates how to delete the RG which was described in the preceding example, effective January 15, 1994 at 0400 GMT: R 10 100000010141 TUCSON CABLEVISION I TUCSON CABLEVISION I INTERMEDIA PARTNERS I CATHY (602)629-8470 1440 E ST I TUCSON IAZ 185719-6495 |111 19310000000 9310000000 940115040019401150400 Note that this is just a normal-looking RG record, with the Expiration Date/Time filled in. Unlike the usual case, there are no following Lineup Records, as indicated by the 0 in the "Lineup Record Count" field.

Glossary Of Terms The following terms are commonly used in the following description. Other terms not listed in this glossary should be familiar to personnel in the listings' data industry and to personnel involved in similarly connected businesses.

CAC Community Access Channel Channel Discrete frequency band allocated to a TV station Composite Channel Two or more PO's time sharing the programming on a single channel.

DP Data Provider. (provider of program listings' data) Data Provider Supplier of TV program listings' data.

FIELD A sub part of a record. (records are made up of multiple fields) GMT Greenwich Mean Time (Universal Mean Time).

HRC Cable system frequency transmission standard.

StarSight StarSight Telecast Incorporated IRC Cable system frequency transmission standard.

Local The broadcast TV station that resides within 35 miles of the cable provider.

MAP Reference to the physical area of a reception group (RG)

-I

WO 95/31069 PCfI/S91/05169 131 MPAA Motion Picture Artists Association (suitability guidelines for viewers), MSO Multiple System Operator (operates more than one cable system) PO Program Originator (TV station,TV cable provider,Satellite video provider).

Prime Time A segment of evening time considered as Prime Viewing Time.

Program Originator (see PO) PST Pacific Standard Time (West Coast Time), Record A defined string of ASCII characters within a file.

RG Reception Group, The available TV channels in a well-defined geographical area, Runtime The length in minutes of a show or movie.

Service Provider The cable system head end, or Broadcast TV station that carries the StarSight program data.

Show list A file containing records in Pipe Delimited Format which contain schedule listing information as described herein.

Start Time The local time that the show begins.(hour minute) SU Abbreviation for Subscriber Unit. Used to decode StarSight data.

SyndEx Syndicate Exclusivity TCP/IP Transmission Control Protocol Internet Protocol Specified Zone A predetermined distance or area from a broadcast station.

Overview of this description The following description defines in detail the requirements of a Data Provider in relation to delivering television listings' data to StarSight Telecast. It defines in detail the format of the Show list (pipe-delimited file). The format of each record within these files are also defined.

Also outlined are the details of the electronic delivery of these files to StarSight, and the requirements and details of special files that are required due to nation wide program oddities, such as SyndEx.

I

WO 95/31069 PCIVUS9NO-51169(;! 132 The formats of the Show list records that are used In building the StarSight electronic database are highly integrated into our database program and these formats must not be altered or changed in any way without the written consent of StarSight Telecast. Use of the Vendor-Defined Fields (see below) is allowed, provided the syntax and meanings of the fields used are documented in advance.

File Transfer Specifications.

File Transfer Media and Speed.

The Show list flies will be transferred electronically to StarSight Telecast's UNIX file system through a router connected to the DP's Ethernet and a digital leased line, using thL standard TCP/IP program, FTP, The operating speed of the leased line will be sufficient to transfer all data files in a reasonable length of time.

File Transfer Protocol and Compress''',.

The data will be transferred into StarSight Telecast's UNIX file system using TCP/IP file transfer protocol or other file transfer protocol standard mutually agreed upon. The files may require compression due to the bulk of data being transferred using a mutually agreed upon data compression algorithm compatible with our UNIX file system.

File Transfer details The files will be transferred to StarSight on a daily basis 7 days a week with the file transfer completed by 0800 hours PST. The daily file transfer will be into the home directory corresponding to the login name used to perform the file transfer.

The "Main" file download to StarSight will always be for the date 12 days into the future. Thus if today is the 10th, today's data download would be for start times beginning at 0000 hours GMT on the 22nd.

(see GMT specification below in this description) Since the data files are sent on a daily basis some mechanism must be in place to allow for the updating of a program listing that has already been transferred.

This is accomplished via the "Update" file. An Update file contains records of all changes that have been made since the last Update file was produced, which modify any of the data for any date which is still "active". An "active" date is defined as the dates beginning with today's date, and spanning the 11 days following (that is, all dates from today to the date covered by today's "Main" file, but not including that WO 95/31069 PC1141895105169 I'll A class of service, to be Implemented will require "Flash Updates";, this class Of' SerVICe Would p~rovide a "Plash Update" file within 5 milnutes after entry of (Iny change. Such files would "trickle" across the leasedl line to StarSight throughout (lhe day, Show list fI'le Introduction.

StarSight: Telecast operates a data network that delivers specially formatted dlata to StarSight subscribers located throughout the USA, This data Is used to build an "on screen program guide" called StarSight that enables Its subscribers to interactively view television program listings onl their TV screen, Thie information for this network is derived from the StarSight database that is built by a computer program running on our UNIX computer, To build this database a data provider is required to supply StarSight with program listing files called Show list rles,

GMT.

A Show list file is a set of chronologically ordered records of television program listings. StarSight needs Show list files with the first record having its start time at 0000 hours GMT or for the first show starting after 0000 hours GMT. Thus the first record in each Show list file will be for the first show at or after Midnight GMT and the last record in a Show list file would be for the last show starting before 2400 hours GMT.

In other words a given Main file will contain only records for all POs for one day with one day starting at 0000 GMT and ending at 2400 GMT, Conversely a Main file must contain all of the shows for all POs for that day.

Daylight saving time.

Since the "Start Time" field of any Show list record is always given in terms of GMT, the data provider is cautioned that daylight saving time must be accounted for twice a year, once in the spring when daylight saving is invoked and once in the fall when returning to standard time. This time modification must take place for all programn data and all PO's unless the PO resides in a non daylight saving time state or county. Daylight saving time will cause the DP to compile or transfer records into the PO file that are corrected for the 1 hour forward adjustment in spring and the I hour backward adjustment in fall.

WO 95/31069 PCIYUS9/O5 1)9 134 Please note that once showtimes have been adjusted to GMT, the Show list records should always be contiguous with no gaps or overlaps even on Daylight Saving transition dates.

SyndEx and Network Exclusivity Due to FCC regulations a TV cable provider is required to block out programming (at the request of the local station) that directly conflicts in both time and content with the programming of a local broadcast TV station. This may cause the cable provider to substitute programming on that channel for the time in conflict.

StarSight must be irformed of a SyndEx blockout no later than 24 hours prior to the blockout, in order to display the correct schedule for the blocke'd-out time slot.

Sports Blackout Due to FCC regulations a sporting event can be blacked out from local TV coverage if a given percentage of tickets are not sold within 24 hours of that event.

StarSight requires knowledge of the blackout.

Composite Channels Some cable providers will divide a cable channel into multiple programming segments inserting programming from two or more program originators on one channel, at different times. The DP is required to provide StarSight with information that explains clearly what service is on such a channel at any given time. This information will be provided in the PO list for the channel in which the composite programming occurs.

The multiple PO information for composite channels is handled in the "RG List Format Specification" explained above.

Community Access Channels The FCC requires each cable provider to support at least one Community Access Channel (CAC) for public use. Private citizens can request program time on this channel for their public views, public information or approved public programming.

StarSight requires a Show list file with the program information for each CAC, with the CAC Show list file name bound to the cable system name.

Low Power Stations LPTV Low power (mostly privately owned) broadcast TV Stations exist in many areas of the United States. Some of these low power stations will require program WO 95/31069 PCT/US95/05169 135 listing support by the DP. These will be handled on a station by station basis with a Show list file for each LPTV.

The precise format in which the data for SyndEx, Network Exclusivity, Sports Blackout, Composite Channel, Community Access Channel and Low Power Stations is to be provided, is to be determined.

Show list File Definition Show list files are made up of multiple records containing television program listings. The Show list records have a fixed number of fields, Most fields are of a fixed size with a few fields of variable size. This gives a Show list record a minimum and a maximum byte size, (See the Show list record field definition for the exact MIN/MAX size,) Except for the end of record terminator, OA hex (Jine feed) The Show list files will contain only ASCII characters and only within the range of 20 hex to 7E hex inclusive. This precludes any control codes, new line codes or end of record codes being part of any Show list file, Show list Pile Names.

There are three sorts of files (Iscussed In this description. They all inave the same record format, but they are used somewhat differently, They are referred to aq the "Main" file, the "Update" file, and the "Flash" files for a given date. The Main file contains only the data for one particular date. It amounts to the initial load of all data for that date. The Update file contains information that revises Show list data that was provided on earlier days. It contains data which may encompass several different days, just depending on what new information has been entered. The Flash file contains update information that has just been entered.

The Main filename shall consist of the letters "MAIN" followed by four digits that represent the date, then [optionally] ,a period and the suffix "DAT". For example "MAIN0812.DAT" is a valid Main filename, and so is "MAIN0812".

The Update filename shall consist of the letters "UPDT" followed by four digits that represent the date, then [optionally] ,a period and the suffix "DAT". For example, UPDT0812.DAT is a valid Update filename, as is "UPDT0812".

Flash filenames shall consist of the letters "FLSH" followed by four digits that represent the time of day, then [optionally] ,a period and the suffix "DAT". For example, FLSH0642.DAT is a valid Update filename, as is "FLSH0642".

WO 95/31069 PCTIUS95/05169 136 Since interfaces to different types of computer systems are a given, the file naming convention has been chosen so as to work with virtually any computer operating system in existence. The alpha letters within filenames may be in either all uppercase or all lowercase; mixed case is not allowed.

Each PO's data wil have its own portion of the file, identified by identifying the PO In the first field of each record concerned with that PO. The Identification number (not to exceed 12 bytes) will consist of ASCII digits 0 through 9 only, and will be identical to the Station ID number assigned for this PO in the Station List file, which is defined in a separate document.

Show list File Length.

Each file will contain Show list records as defined elsewhere in this document. The file will contain as many of these records as required to fill one 24 hour day.

Each record in a given file has a program length as defined in the "runtime" field and a "starttime" as defined in the starttime field of the Show list record. These Start Times and runtimes will cause the content of a file to be contiguous for the 24 hour day, leaving no gaps in the time sequence.

Contiguous Files, All "Main" file records will have contiguous Start Times and run length from day to day and week to week, etc., without any time gaps.

The Show list record format is shown in Table LXI.

Field No. FIELD NAME MAX MIN DESCRIPTION (bytes) 1. Station ID number 12 Unique ID numb 2. Start Date 8 YYYYMMDD 3. Start Time 4 Program start tin er for this PO ne: Runtime Close Caption Stereo hour, minutes 4 Program runtime minutes 0005 to 9999 1 Close caption indicator. Y, N 1 Program audio broadcast type.

Y, N

I

WO 95/31069 PCT/US95105169 7.

8.

9.

11.

12.

13.

14.

16.

17.

18.

19.

21.

22.

23.

24.

26.

27.

28.

29.

31.

32.

33.

34.

36.

Color 1 Program video broadcast type.

C, B Type 3 Program Type (see table 1, table 2) Movie Number 10 Up to ten decimal digits Group ID 5 unique series program link, 0 to 65536 Title 50 Program title.

Program Descr. #1 300 Program description.

Program Descr. #2 200 Program description.

Program Descr. #3 100 Program description.

Program Descr. #4 50 Program description.

Critique 1 Movie critics rating 0,1,2,3,4 Episode 50 Program episode description.

Year 4 or Year the movie was produced.

Director 25 Name of the movie director Last Name of Star 1 25 Last name of star in the movie.

First Name of Star 1 25 First name of star in the movie.

Last Name of Star 2 25 Last name of star in the movie.

First Name of Star 2 25 First name of star in the movie.

Last Name of Star 3 25 Last name of star in the movie.

First Name of Star 3 25 First name of star in the movie.

Action 1 T, F.

Adventure 1 T, F.

Biography, Biographical 1 T, F.

Classic, Classical 1 T, F.

Comedy 1 T, F.

Dance 1 T, F.

Docudrama 1 T, F.

Documentary 1 T, F.

Drama, Dramatic 1 T, F.

Fantasy 1 T, F.

Historical 1 T, F.

WO 95/31069 PCT/US95/0569 37.

39.

41.

42.

43.

44.

46.

47.

48.

49.

51.

52.

53.

54.

56.

57.

58.

59.

61.

62.

63.

64.

64.

Horror Martial Arts Musical Mystery Opera Romance, Romantic Satire, Satirical Science Science Fiction Suspense Thriller Western Situation Comedy

G

NC17

NR

PG

PG 13

R

AO

PROFANITY

NUDITY

VIOLENCE

ADULT SITUATION ADULT THEME ADULT LANGUAGE PPV EVENT 1 T, F.

1 T, F.

1 T, F.

1 T, F.

1 T, F.

T, F.

1 T, F.

1 T, F.

1 T, F.

1 T, F.

1 T, F.

1 T, F.

1 T, F.

1 T, F.

1 T, F.

1 T, F.

1 T, F.

1 T, F.

1 T, F.

1 T, F.

1 T, F.

1 T, F.

1 T, F.

1 T, F.

1 T, F.

1 T, F.

1 T, F.

65.

63+n.

Vendor-Defined Field 2nd Vendor-Defined Field nth Vendor-defined Field II WO 95/31069 PCT/US95/05169 139 END OF RECORD 1 LINEFEED SJA hex') Table LXI END OF RECORD markers and end of file markers will be a single LINEFEED (OA hex) and or CARRIAGE RETURN (OD hex) Show types for general programming are shown in Table LXII: Show Type Code Description CHL Children's Shows COM Comedies DOC Documentaries MAG Magazine MIN Mini-Series MOV Movies REL Religious GAM Game SGN Sign Off MUS Musicals SER Series SPC Specials SRL Soaps Serials TLK Talk NEW News EXR Exercise MIS Miscellaneous NAT Nature HOW How-to MED Medical NET Network Series SYN Syndicated Series BUS Business PUB Public Affairs LAP Local Access Programming PDP Paid Programming WO 95/31069 PCT/US95/05169

EDU

UNK

Education Unknown Table LXII

NOTE:

Show type designators are always of fixed 3 character length. More designators may be added as required.

Show types for sports programming are shown in Table LXIII: SHOW DESCRIPTION SHOW DESCRIPTION

TYPE

CODE

LSB

LSK

LSW

LSX

LBC

LSN

LSF

LSG

LSY

LSH

LSE

LSL

LSA

LSS

LSQ

LST

LSJ

LSP

LS@

LSZ

LSO

SP1

TYPE

CODE

Baseball Live Basketball -Live Bowling Live Boxing Live Bicycling Live Fishing Live Football Live Golf Live Gymnastics Live Hockey Live Horse Events Live Lacrosse Live Motor Sports Live Soccer Live Snow Skiing Live Tennis Live Track/Field Live Sports Live Water Sports Live Wrestling Live Volley Ball Live Sporting Shows

SPB

SPK

SPW

SPX

SBC

SPN

SPF

SPG

SPY

SPH

SPE

SPL

SPA

SPS

SPQ

SPT

SPJ

SPO

SP@

SPZ

SSO

Baseball Basketball Bowling Boxing Bicycling Fishing Football Golf Gymnastics Hockey Horse Events Lacrosse Motor Sports Soccer Snow Skiing Tennis Track/Field Sports Water Sports Wrestling Volley Ball 4 WO 95131069 P'1 US95/05,169 141 Table LXIII

NOTE:

Show type designators are always of fixed 3 character length. More designators may be added as required.

Detailed Show list field class explanation.

The Show list record fields are divided into four classes. They are data fields that contain the program information, the delimiter fields that separate the data fields, the record terminators that terminate and separate the records and the end of file terminator.

Explanation of the field classes.

Note that all of the fields in the following specification have a minimum and a maximum size described as bytes. Most fields are of a fixed length and must not vary from that specified length. Other fields have a variable minimum and a maximum length while a few are defined as a minimum or maximum. Even if a fixed length field contains no meaningful data, it must be padded out to its minimum length with the appropriate character. The maximum field length must also be adhered to and no field is ever allowed to exceed its maximum length.

Data Field Text The text contained in any field will contain no control codes and all fields will contain only the ASCII character set within the range of the hexadecimal values to 7E inclusive.

Delimiter This one byte character is the pipe PIPE ASCII 7C hex). It separates the different fields of a Show list record, it is unique within a Show list record and will not be used anywhere else in the Show list record except as a delimiter. There are equal numbers of delimiters and data fields. The Show list records have the pattern of FIELD, DELIMITER FIELD, DELIMITER, END OF RECORD.

A delimiter follows the last data field of any record.

End Of Record All records are terminated with an end of record terminator that follows the last delimiter of the last data field in a Show list record. This terminator is the ASCII code for Line Feed (OA hex), or Carriage Return (OD hex), or both together in either order.

I I WO 95/310}69 11C1/11S95/05 169 142 End Of File The end of file terminator is defined to be the text string "ZZZZZEOF". The final data record of a Show list file must be followed by an End of File terminator, ,o signal that all data has been transmitted.

Detailed Data Field Explanation.

Field 1. Station ID (1 to 12 bytes) The Station ID is the unique number (assigned by the data provider: see the Station List record format) used to refer to this program originator (TV station, cable channel or satellite provider). It is never greater than 10 decimal digits. No other characters are allowed.

2. Start Date (8 bytes) 8 byte number describing the GMT date when the program will air. (year, month, day) This date must be the same for all records in a given file. Bytes 1 through 4 define the current year, for example: 1991.

Bytes 3 and 4 define the month, with January numbered as 01, December as 12.

Bytes 5 and 6 display the day of the month from 01 to 31.

3. Start Time (4 bytes) 4 byte number is the program air time GMT and is entered as military time.

Bytes 1 and 2 are the hour in GMT time that the program will air.

(Example 6am 06, noon 12, 6pm 18, midnight 00) Bytes 3 and 4 are the minute that the program will air.

(Example one MIN past the hour =01, 1 minute before the hour =:59) 4. Runtime (4 bytes) Program length in minutes. The minimum show run time length is 0005 minutes and the maximum length is 9999 minutes. (The StarSight data base I II WO 95/31069 PCT/US95/0s169 143 program breaks shows with runtimes greater than 240 minutes into multiple shows of 240 minute lengths.) Runtime data is shown in Table LXIII.

Field Name Field# Sample Data Station ID 1 5963215 Start Date 2 991231 Start Time 3 0900 Run Time 4 0060 Table LXIII Sample Fragment of the above Show list record fields.

596321511199123110900100601 Field Closed Caption (1 byte) If the show is closed captioned this field will be a (yes). If not it will be (no).

6. Stereo (1 byte) If the show is in stereo this field will be a (yes). If not it will be (no).

7. Color (1 byte) If the show is in color this field will be a (color). If not it will be (black white).

8. Type (3 bytes) mnemonic, indicating the program type indicating movie, sports, news, talk show, etc.

(See Tables LXI and LXII) 9. Movie Number (0 to 10 decimal digits) This unique number is provided by the data provider as a unique number for a show and is different for the title of every show or movie ever made. Once used this number remains locked for future reference to that title.

Examples of these fields are given in Table LXIV.

Field Name Field# Sample Data Closed Caption 5 Y Stereo 6 N 95131(069 PC'IIUS9S/O 69 144 Color 7 C Type 8 MOV Movie Number 9 1234567890 Table LXIV A sample fragment of the above Show list record fields is as follows: Y IN I CIMOV 112345678901 Field Group ID bytes) This 5 byte number will be from 00000 for no program link, to 65535 for up to 65,535 unique program links. This number allows for unique groupings of two or more special programs or shows that may need to be linked together for recording purposes. The link' n g or grouping of these programs would be required for the series recording of programs that do not have the same title name as in ROOTS 1 and ROOTS 2. This field will be 00000 if there is no program link and a unique decimal number up to 65,535 if there is a link. This unique number is kept until the linked programming is completed and any show with a reference to that number has passed out of the database. After that time, this number can be recycled and used over again. No provision is made to lock a Group ID number to any show on a permanent basis.

The upper bound of 65,535 is necessary since this number is converted to a 2 byte binary number by StarSight and sent to the SU in this manner.

This number may be used to cross channel boundaries and link together as a group two or more shows on two or more different channels, provided that there is no conflict in record times.

11. Title (0 to 50 bytes) This field contains the title or name of the program, names of sports team, talk show, etc.

Examples of these fields are given in Table LXV.

Field Name Field# Sample Data Group ID 10 0000 Title 11 Man flys.

Table LXV A sample fragment of the above Show list record fields is as follows:

I

WO 95/31069 PCI/US95/05i69 145 00001 Man Flys The following four program description fields are to have different descriptions when available. Multiple descriptions will not show as multiple copies of the same description. A description must go into the smallest field that it will fit completely into. If 4 different program descriptions exist, insert the descriptions into the appropriate length field in descending order.

Fields 12 19: Descriptions, Critique, Episode Title, Production Year, and Director..

12. Program Description 1 (0 to 300 bytes) This is a longest description of the of the program, show, sporting event, etc.

13.Program Description 2 (0 to 200 bytes) This is a shortened description of the of the program, show, sporting event, etc.

14.Program Description 3(0 to 100 bytes) This is a shortened description of the of the program, show, sporting event, etc.

Description 4 (0 to 50 bytes) This is the shortest available description of the of the program, show, sporting event, etc.

16.Critique (1 byte) Critics rating of the movie. This is if there is no rating or a 1,2,3 or 4 depending upon the quality of the movie, 4 being the best.

17.Episode (0 to 50 bytes) This provides for the episode description of a series show.

18. Year (0 or 4 bytes) This is the year that the movie or show was produced. (1956, etc.) 19.Director (0 to 25 bytes) The name of the movie director.

Examples of these fields are given in Table LXVI.

Field Name Field# Sample Data Description 1 12 Man sprouts wings, flys south for the winter and saves the population of a foreign country Description 2 13 Man sprouts wings, flys south for the winter and saves a country Description 3 14 Man sprouts wings and saves a country Description 4 15 Man flys and saves country Critique 16 4 Episode 17 Flying man Year 18 1999 WO 95/31069 PCYUVS%/0169 146 Director 19 John Filmmaker A sample fragment of the above Show list record fields is as follows: Man sprouts wings, flys south for the winter and saves the pojlulation of a foreign country Man sprouts wings, flys south for the winter and saves a couniy Man sprouts wings and saves a country IMan flys and saves country 141 Flying man 11999 John Filmmaker I Fields 20- 25: Names of Stars Star 1 Last Name (0 to 25 bytes) The last name of the 1st actor.

21. Star 1 First Name (0 to 25 bytes) The first (middle) name of the 1st actor.

22. Star 2 Last Name (0 to 25 bytes) The last name of the 2nd actor.

23. Star 2 First Name (0 to 25 bytes) The first (middle) name of 2nd actor.

24. Star 3 Last Name (0 to 25 bytes) The last name of the 3rd actor.

25. Star 3 First Name (0 to 25 bytes) The first (middle) name of 3rd actor.

Examples of these fields are given in Table LXVII.

Field Name Field# Sample Data Star 1 20 Falls Star 1 21 Joe Star 2 22 Floats Star 2 23 Mary Star 3 24 Soars Star 3 25 Sam Table LXVII A sample fragment of the above Show list record fields is as follows: Falls Joe Floats I Mary I Soars I Sam Genre Byte Fields: Fields 26 49 The Genre Byte Fields are divided into 3 categories. The first is the THEME category and it provides for the general description of the show type. StarSight uses this theme information to divide the programs into discrete categories when theme searches are done. The second category is the MPAA rating and is used to inform the viewer of the movie industries rating of appropriate age of the viewer for this WO 95/31069 PCT/USJ9/I 169 147 show. This rating is usually only valid for movies. The third category further explains ltle MPAA rating.

The following 24 data fields are the explanation of (he program theme type.

A maximum of 5 of these 24 fields are set as for any 1 program. Some are mutually exclusive and will not be set to in unison at any time.

Field 26. Action 27. Adventure 28. Biography 29. Classic Comedy 31. Dance 32. Docudrama 33. Documentary 34. Drama Fantasy 36. Historical 37. Horror 38. Martial Arts 39. Musical Mystery 41. Opera 42. Romance 43. Satire 44. Science Science Fiction 46. Suspense 47. Thriller 48. Western 49. Situation Comedy An example of a record fragment involving the fields above is given in Table

LXVIII:

WO 9$/310(9 WO 9lrV3 1069 6*~ 148 Sample Data Field Name Action Adventure Biography Classic Comedy Dance Docudrama Documentary Drama Fantasy Historical Horror Martial Arts Musical Mystery Opera Romance Satire Science Science Fiction Suspense Thriller Western Situation Comedy Field# 26 27 28 29 31 32 33 34 36 37 38 39 41 1 42 43 44 1 46 47 i 48 I 49 I Table LXVIII A sample fragment of the above Show list record fields is as follows:.

TITIFIFITIFIFIFIFITFIFFIFIFIFF IFFIT|IFTI T IFIFIF MPAA rating: fields 50 56 Field G (1 byte) General audience 51. NC17 (1 byte) No children under 17.

52. NR (1 byte) Not rated.

WO 95,'31069 PCT/US95/05169 149 53. PG (1 byte) Parental guidance.

54. PG13 (1 byte) Parental guidance under 13 years.

R (1 byte) Restricted.

56. AO (1 byte) Adult Only. Most severe rating.

Examples of these fields are given in Table LXIX, Field Name Field# Sample Data G 50 T NC17 51 F NR 52 F PG 53 F PG13 54 F R 55 F AO 56 F Table LXIX A sample fragment of fields 50 56 is as follows:

TPIFIFIFIFIFI

MPAA explanation: Fields 57 62.

Field 57. Profanity (1 byte) 58. Nudity (1 byte) 59. Violence (1 byte) Adult Situations (1 byte) 61. Adult Themes (1 byte) 62. Adult Language (1 byte) 63. PPV Event: Field 6?, (1 byte) set to to indicate this show is a Pay-per-View Event, if not, empty if not known.

Examples of these fields are given in Table LXX Field Name Field# Sample Data Profanity 57 T Nudity 58 F Violence 59 T WO 95/31069 PCTIUS95/05169 150 Adult Situations 60 F Adult Themes 61 T Adult Language 62 T PPV Event 63 T Table LXX A record fragment for fields 57-63 is as follows:

TIFITIFITITITI

Fields 64 and Above: Vendor-Defined Fields All fields following the 'PPV Event' field are optional (except the mandatory End of Record terminator). No minimum or maximum number, of these fields is prescribed, and no particular limit is enforced as to the number of characters in any one of these fields.

Vendor may use this portion of the record to provide additonal data related to the show which the prescribed format might make difficult or impossible to convey.

Each Vendor-defined field should be used to describe one data element.

Field content is free-format, with the previously-stated constraint that all data must be transferred as printable ASCII text, with no Vertical Bar(hex 7C), Carriage Return (hex OD), or Linefeed (hex OA) occurring as data, since these characters have the special meanings of "Field Delimiter" (Vertical Bar) and "End-of-Record" (Carriage Return and/or Linefeed), respectively.

The intention is to allow the vendor as free a hand as possible in describing the show. Additional information about show type, genre, category, subcategory, etc.

can be placed in these fields, and also other types of information which may not be currently anticipated. If these fields are used, vendor must separately provide StarSight with a document which defines as fully as possible how these fields are used by the vendor.

The example that follows is not intended to prescribe a set format; it is just illustrating one possible way the Vendor Defined Fields could supplement the other information in the record. In this example, we will assume the vendor has additional categorization available for sports shows, over and above what is prescribed in the normal format. The vendor must document the fields separately from the data itself: let's say Vendor XYZ has provided StarSight with a document containing the following information:

I

WO 95/31069 PCT/US95/05169 151 Field Name Content or Meaning SPNAME Name of sport SPENV "Indoor" or "Outdoor" SP$ "Professional" "Amateur", or "Pro-Am" SPLIVE If present, game is being carried live.

SPTEAM If present, this is a team sport NOTES ON SYNTAX IN VENDOR-DEFINED FIELDS SUPPLIED BY VENDOR XYZ: "Field Name" is an unbroken ASCII string (no spaces or tabs allowed) from the list above. The presence of the field name in some cases implies a "TRUE" status; in other cases a value over and above the field's name is also specified. If a value is being specified, the field name is followed by a single space or tab, and everything else in the field comprises its value.

Given this information, Vendor XYZ could now transmit StarSight a record with Vendor-Defined fields that look like the example below: First Vendor Defined Field 64 SPNAME Field Hockey Second Vendor Defined Field 65 SP$ Professional Third Vendor Defined Field 66 SPENV Outdoor Fourth Vendor Defined Field 67 SPTEAM Fifth Vendor Defined Field 68 SPLIVE Note that even though SPENV, for example, is specified in field #66 in this record, it could be specified in any Vendor-Defined field, or not mentioned at all.

The same observation applies to all the Vendor-Specified fields. This is true because of the method used in this example of giving the name of the field as data.

If the vendor chose to stick to a more rigid convention, in which every field is always present whether there is data for that field or not, the name or usage of each field could be entirely position-dependent, and could be documented separately, thus eliminating the need to transmit field names with the data; either method is acceptable, and if the Vendor has another method they prefer, this would probably be acceptable too, so long as it stays within the rules stated earlier.

A sample fragment of the above Show list record fields is as follows: SPNAME Field Hockey I SP$ Professional I SPENV Outdoor I SPTEAM I SPLIVE I End Of Record (LINEFEED hex OA) and/or (CARRIAGE RETURN hex OD) WO 95/31069 PCT/US95/05169 152 Marks the end of a record. Flexibility of definition is to allow for the transfer of text between different types of computer systems.

End Of File Record Following the final data record in a file, the Vendor must append a special End-of-File record, which is defined to be a record that begins with the text string "ZZZZZEOF", followed (possibly with intervening Vendor-Defined fields) by End of Record. StarSight's software will encounter this text string when it is expecting to.

read a Call Sign value; the value read will be tested against this reserved value, and if they match, StarSight's software will halt reading of the file.

More importantly, this text string will also be used to -test for cumpletion of a file transfer. If a new file appears in the data input directory, the input software will examine the final record of the file for this symbol; if the symbol is not found, then the data transfer has either aborted in midstream, or has not yet completed; in either case, it would not yet be appropriate to begin loading the data.

Note that the definition of this record is that it begins with ZZZZZEOF and ends with End of Record; the remainder of the record may defined by the Vendor, within the usual constraints for Vendor-Defined fields. Supplemental information that would be useful here might include a count of the number of records in the file, the date/time of production, a list of stations with which problems occurred, or any other summary information the vendor considers relevant.

SPECIAL NOTE(s): The format of the Show list records that are used in building the StarSight electronic database are highly integrated into our database program and these formats must not be altered or changed in any way without the written consent of StarSight Telecast. Use of the Vendor-Defined Fields is allowed, provided the syntax and meanings of the fields used are clearly documented in advance of use.

Since the PO names used within the Show list file are referenced by the StarSight database application, the PO names must be unique and remain constant. The changing of any PO name without proper coordination with StarSight will cause a mismatch of data in the StarSight database.

It should now be readily apparent to those skilled in the art that a novel television schedule information transmission system amd method capable of achieving the stated objects of the invention has been provided. The system and method can be WO 95/31069 PCT/US95/05169 153 implemented with low cost microprocessors and memory in subscriber data processing systems. In the system and method, television program schedule data is transmitted and stored in a manner that allows a low cost microprocessor suitable for use in a mass produced consumer product to carry out subset searching of the television program schedule data. Television program schedule information is transmitted to and acquired by the subscriber data processing systems in an efficient manner in the system and method. Fast schedule updates to accommodate schedule changes can be provided with a low bandwidth transmission system and method.

The system and method is able to distinguish between currently broadcast schedule information and older schedule information included with a broadca;t that was recorded. The system and method gives schedule update information priority treatment. The schedule information transmission is selectively encrypted in the system and method. A single system time is employed in schedule information transmission portions of the system and method and compensation for local time is carried out in the subscriber units. In the system and method, the subscriber units are able to identify schedule information provided in different locations of a television broadcast signal. Portions of schedule information already acquired by a subscriber unit and which duplicate portions of new schedule information are retained in the system and method, so that such schedule information portions need not be acquired again by the subscriber unit. Data compression is employed in a unique way to make most efficient use of available memory in the system and method.

It should further be apparent to those skilled in the art that various changes in form and details of the invention as shown and described may be made. It is intended that such changes be included within the spirit and scope of the claims appended hereto.

I

I 'I A '124M 1 15i WAr' 153A Throughout this specification and the claims which follow, unless the context requires otherwise, the word "comprise", and variations such as "comprises" and "comprising", will be understood to imply the inclusion of a stated integer or step or group of integers or steps but not the exclusion of any other integer or step or group of integers or steps.

S.

ee

Claims (3)

  1. 2. The television schedule information transmission system of claim I in which said system additionally includes at least one intermediate data processing system between at least one of said plurality of regional data processing systems and a portion of the plurality of subscriber data processing systems in a region in which said at least one of said plurality of regional data processing systems is located, said intermediate data processing system including means for receiving the schedule
  2. 1120-4 I AMIEDr Ql~., SPEA/U83 'I MAY 1996 -155- information data for the region, means for selecting schedule information data for the portion of the plurality of subsriber data processing systems in the region Ifrom the schedule information data for the region and means for transmitting the schedule information data for the portion of the plurality of of subscriber data processing systems in the region, said means for transmitting being coupled to the of the plurality of subscriber data processing systems. 3. The television schedule information transmission system of claim 2 in which said at least one intermediate data processing system is a cable operator data processing system. 4. The television schedule information transmission system of claim i in which the schedule information data is transmitted in the form of commands. the commands including instructions for the plurality of subscriber data processing systems in each region and television schedule information used by the commands to assemble portions of the television schedule information to display the portions of the schedule information data. The television schedule information transmission system of claim 4 in which the schedule information commands for the predetermined territory include region commands each identifying channels which are available in one of the regions in the territory and a region identification, each of said regional data processing systems having a region identification for comparing with the region identification of each region command to recognize region commands intended for that regional data processing system. 6. The television schedule information transmission system of claim I in which said plurality of subscriber data processing systems in each of the regions includes a means for determining if certain of the television schedule information in the commands has already been acquired by the subscriber data processing system. and in which the certain of the television schedule information is acquired if it has not already been acquired. 2112(1741 o.-53I 19 AMENDED SHEET IIIBr r -156- 7. The television schedule information transmission system of claim 6 in which the certain of the television schedule information includes show titles. 8. The television schedule information transmission system of claim 7 in which the show titles include character strings that have previously been acquired. 9. The television schedule information transmission system of claim 6 in which the certain of the television schedule information includes missing data for future time periods. The television schedule information transmission system of claim I in which each of said plurality of subscriber data processing systems in each of the regions includes a memory for storing database items comprising the television schedule information, each of the database items having a handle as an index into a handle table identifying memory locations corresponding to the handle. 11. In a television schedule information transmission system, the method which comprises transmitting schedule information data including day, time and channel of television programs for a predetermined territory to a plurality of regional data processing systems each located in a region of the territory, selecting the schedule information data for each region with its regional data processing system, transmitting the schedule information data for each region with its regional data processing system to a plurality of subscriber data processing systems in each region, assembling portions of the schedule information data received by each subscriber data processing system for display to a user of each subscriber data processing system, and displaying the portions of the schedule information data to the user so that the user can use the portions to select television programs for reception. 12. The method of claim II additionally comprising the steps of transmitting the schedule information for at least one the regions to at least one intermediate data processing system between at least one of the plurality of regional data processing systems and a portion of the plurality of subscriber data processing systems in a 211Y'41 I I l AMEDED SHEET y PCTI/US 95/0b 9 -157- region in which the at least one of the plurality of regional data processing systems is located, and transmitting the schedule information data for the portion of the plurality of subscriber data processing systems in the region from the intermediate data processing system to the portion of the plurality of subscriber data processing systems. 13. The method of claim 12 in which the schedule information data is transmitted in the form of commands, the commands including instructions for the plurality of subscriber data processing systems in each region and television schedule information used by the commands to assemble portions of the television schedule information to display the portions of the schedule information data. 14. The method of claim 13 in which the schedule information commands for the predetermined territory include region commands each identifying channels which are available in one of the regions in the territory and a region identification, each of the regional data processing systems comparing a stored region identification with the region identification of each region command to recognize region commands intended for that regional data processing system. The method of claim 11 in which each of the plurality of subscriber data processing systems determines if certain of the television schedule information in the commands has already been acquired by the subscriber data processing system, and acquires the certain of the television schedule information if it has not already been acquired. 16. 'The method of claim I in which at least some of the plurality of regional data processing systems transmit the schedule information data in diffi'eren places of a television broadcast signal and each of the plurality of subscriber data processing systems locates the schedule information data in the television broadcast signal. 21 117.11) (l51lfi ~I to -158- 17. The method of claim 11 in which the different places in ille television bIrodcast signal comprise different lines of a vertical blanking interval. 18. A television schedule information transmission system comprising a central data processing system for a predetermined territory having means for ransnmitting television schedule data including day, time and channel of television programs for the predetermined territory and a plurality of subscriber data processing systems in the predetermined territory, means in said central data processing system for transmitting the television schedule data as commands, the commands including instructions for said plurality of subscriber data processing systems in said system and television schedule information used by the commands in said plurality of subscriber data processing systems to assemble and display a television schedule to the user so that the user can use the television schedule to select television programs for reception. 19. The television schedule information transmission system of claim 18 in which each of said plurality of subscriber data processing systems includes a means for determining if certain of the television schedule information in the commands has already been acquired by the subscriber data processing system, and in which the certain of the television schedule information is acquired if it has not already been acquired. The television schedule information transmission system of claim 19 in which the certain of the television schedule information includes show titles. 21. The television schedule information transmission system of claim 20 in which the show titles include character strings that have previously been acquired. 22. The television schedule information transmission system of claim 19 in which the certain of the television schedule information includes missing data for future time periods. 211741 AMENDED SHEET r I PUU)US 9 5/0 516 9 tPEA'S 3 /1 AY 23. Tile television schedule information transmission systemi of claim 18 in which Said system additionally includes 0 Plurality of' reCgional data procUSSingP s~ystenis, each located in a region of (hie predetermined territory, said plurality of' r-egional data processing systemls each including mleanls lb0r receiving (lie schledule information data for ie predetermined territory, means for selecting tile Schedule information data for thle region in which each of said plurality of regional data processing systems is located and meanis for transmitting the schedule infrmlation data for thle region to a portion of said plurality of said subscriber data processing systenms in each of the regions. 24. The television schedule information transmission system of claim 23 in whichi said system additionally includes at least one intermediate data processing system between at least one of said plurality of regional data processing systems and! some of the portion of said plurality of subscriber data processing systems in a region in which said at least one of said plurality of regional data processing systems is located, said intermediate data processing system including means for receiving thle schedule information data for the region, means for selecting schedule information data for the some of the portion of the plurality of subscriber data processing systems inl the region from the schedule information data for the region and means for transmitting thle schedule information data for the somec of the portion Of dile Plurality Of Subscriber data processing systems in the region, said mecans for transmitting being Coupled to dieC SOMe Of thle p)ortion of, the plurality Of suhscriber dlata processing systems, [le television selicdwte I i'l im tiol taninlisinnl 'Ystvn i' C laim 24 inl Mwhi Ii '-md at l01ast ono ntermiediate dita lit011 wesii st it Lithle opertlr dtal lii CSSI g Systenbl l he t,10eleVi~tol schedtileu lnlhtn1iton (timri'iuii0 'aV'tiir of, vhlnn 1 Illi %vhi each ol sid plur'altv ol subscribur dala processnYfii 0h l inI ac 111th 0IIIINII OW) Ivlvvl 3 aa)/0569 51 9 -160- schedule information, each of the database items having a handle as an index into a handle table identifying memory locations corresponding to the handle. 27. In a television schedule information transmission system, the method which comprises transmitting commands from a central data processing system to a plurality of subscriber data processing systems, the commands including instructions for the plurality of subscriber data processing systems in said system and television schedule information used by the commands in the plurality of subscriber data processing systems to assemble and display a television schedule. assembling the television schedule from the television schedule information in each of the plurality of subscriber data processing systems, and displaying the television schedule to a user of each of the plurality of subscriber data processing systems. 28. The method of claim 27 in which each of the plurality of subscriber data processing systems determines if certain of the television schedule information in the commands has already been acquired by the subscriber data processing system, and acquires the certain of the television schedule information if it has not already been acquired. 29. The method of claim 27 additionally comprising the steps of transmitting schedule information data for a predetermined territory to a plurality of regional data processing systems each located in a region of the territory, selecting the schedule information data for each region with its regional data processing system, and transmitting the schedule information data for each region with its regional data processing system to a plurality of subscriber data processing systems in each region. The method of claim 29 additionally comprising the steps of transmitting the schedule information for at least one the regions to at least one intermediate data processing system between at least one of the plurality of regional data processing systems and a portion of the plurality of subscriber data processing systems in a region in which the at least one of the plurality of regional data processing systems is located, and transmitting the schedule information data for the portion of the plurality 2 121)04I t V-i -N I S1i69 1PEA/JU 31: .Y -161- "3""tYiw of subscriber data processing systems in the region from the intermediate data processing s)stem to the portion of the plurality of subscriber data processing systems. 31. The method of claim 29 in which the schedule information commands for the predetermined territory include region commands each identifying channels which are available in one of the regions in the territory and a region identification. each of the regional data processing systems comparing a stored region identification with the region identification of each region command to recognize region commands intended for that regional data processing system. 32. A television schedule transmission system comprising a central data processing system for a predetermined territory having means for transmitting television schedule data including day, time and channel of television programs for the predetermined territory and a plurality of subscriber data processing systems in the predetermined territory, means in said central data processing system for transmitting a predetermined character string comprising a portion of said television schedule data to said plurality of subscriber data processing systems for use in selecting which television programs to receive, means in each of said plurality of subscriber data processing systems for determining whether the predetermined character string has been acquired by that subscriber data processing system, and means in each of said plurality of subscriber data processing systems for storing the predetermined character string in that subscriber data processing system if it has not already been acquired. 33. The television schedule information transmission system of claim 32 in which the certain of the television schedule information includes show titles. 34. The television schedule information transmission system of claim 32 in which the certain of the television schedule information includes missing data for future time periods. 2112 41 1 9 I L- IPEA/IUS 3: \Y 162- The television schedule information transmission system of claim 32 in which each of said plurality of subscriber data processing systems includes a memory for storing database items comprising the television schedule information, each of the database items having a handle as an index into a handle table identifying memory locations corresponding to the handle. 36. The television schedule information transmission system of claim 32 in which said system additionally includes a plurality of regional data processing systems, each located in a region of the predetermined territory, said plurality of regional data processing systems each including means for receiving the schedule information data for the predetermined territory, means for selecting the schedule information data for the region in which each of said plurality of regional data processing systems is located and means for transmitting the schedule information data for the regior to a portion of said plurality of said subscriber data processing systems in each of the regions. 37. The television schedule information transmission system of claim 36 in which said system additionally includes at least one intermediate data processing system between at least one of said plurality of regional data processing systems and some of the portion of said plurality of subscriber data processing systems in a region in which said at least one of said plurality of regional data processing systems is located, said intermediate data processing system including means for recei',ing the schedule information data for the region, means for selecting schedule information data for the some of the portion of the plurality of subscriber data processing systems in the region from the schedule information data for the region and means for transmitting the schedule information data for the some of the portion of the plurality of subscriber data processing systems in the region, said means for transmitting being coupled to the scme of the portion of the plurality of subscriber data processing systems. 2 1120"41 1 5 1'g, AMENlDED SHEET -163- 38. The television schedule information transmission ;ystem of claim 37 in which said at least one intermediate data processing system is a cable operator data processing system. 39. In a television schedule information transmission system, the method which comprises transmitting a predetermined character string comprising a portion of the schedule information including day, time and channel of television programs to a plurality of subscriber data processing systems in said system, determining in each of the plurality of subscriber data processing systems whether the predetermined character string has been acquired by that subscriber data processing system, and storing the predetermined character string in that subscriber data processing system if it has not already been acquired. The method of claim 39 additionally comprising the steps of transmitting schedule information data for a predetermined territory to a plurality of regional data processing systems each located in a region of the territory, selecting the schedule information data for each region with its regional data processing system, and transmitting the schedule information data for each region with its regional data processing system to a plurality of subscriber data processing systems in each region. 41. The method of claim 40 additionally comprising the steps of transmitting the schedule information for at least one the regions to at least one intermediate data processing system between at least one of the plurality of regional data processing systems and a portion of the plurality of subscriber data processing systems in a region in which the at least one of the plurality of regional data processing systems is located, and transmitting the schedule information data for the purtion of the plurality of subscriber data processing systems in the region from the intermediate data processing system to the portion of the plurality of subscriber data processing systems. 42. The method of claim 40 in which the schedule information commands for the predetermined territory include region commands each identifying channels 211211741 AMENDED SHEET t i P 4'I AY 1996 -164- wMuich are available in one of the regions in the territory and a region identification, each of thie regional data processing systems comparing a stored region identification with the region identification of each region command to recognize region commands intended for that regional data processing system. 43. In a television schedule information transmission system including a direct broadcast satellite, a central data processing system having means for transmitting television schedule data for the direct broadcast satellite to the direct broadcast satellite, and subscriber data processing systems having means for receiving the television schedule data for the direct broadcast satellite from the direct broadcast satellite, the improvement which comprises a plurality of regional data processing systems, each located in a region of a predetermined territory, a means for transmitting television schedule data for the predetermined territory to said plurality of regional data processing systems, said plurality of regional data processing systems each including means for receiving the television schedule data for the predetermined territory, means, coupled to said means for receiving the television schedule data for the territory, for selecting the television schedule data for the region in which each of said plurality of regional data processing systems is located and means, coupled to said means for selecting the television schedule data for the region, for transmitting the television schedule data for the region to a plurality of said subscriber data processing systems in each of the regions. 44. The television schedule information transmission system of claim 43 in which each of said plurality of subscriber data processing systems includes means for receiving the television schedule data for the region from the one of said plurality of regional data processing systems for the region, means, coupled to said means for receiving the television schedule data for the direct broadcast satellite and to said means for receiving the television schedule data for the region, for storing at least a portion of the television schedule data received by the subscriber data processing system from said direct broadcast satellite and the one of said plurality of regional data processing systems, means, coupled to said means for storing, for assembling portions of the stored television schedule data received by the subscriber data 2112(17II i3 196 M'P'i'DED SHEE'F r1 p 1lsr -165- processing system for display to a user of the subscriber data processing system and a display coupled to said means for assembling portions of the schedule information data to display the assembled portions of the schedule information data. The television schedule information transmission system of claim 43 in which said system additionally includes at least one intermediate data processing system between at least one of said plurality of regional data processing systems and a portion of the plurality of subscriber data processing systems in a region in which said at least one of said plurality of regional data processing systems is located, said intermediate data processing system including means for receiving the television schedule data for the region from said at least one of said plurality of regional data processing systems, means, coupled to said means for receiving the television schedule data for the region, for selecting television schedule data for the portion of the plurality of subscriber data processing systems in the region from the television schedule data for the region and means, coupled to said means for selecting television schedule data for the portion of the plurality of subscriber data processing systems, for transmitting the television schedule data for the portion of the plurality of subscriber data processing systems in the region, said means for transmitting being coupled to the portion of the plurality of subscriber data processing systems, 46. The television schedule information transmission system of claim 45 in which said at least one intermediate data processing system is a cable operator data processing system. 47. The television schedule it'formation transmission system of claim 43 in which the schedule information data is transmitted in the form of commands, the commands including instructions for thle plurality of subscriber data processing systems in each region and television schedule information used by the commands to assemble portions of the television schedule information to display the portions of the schedule information data. 2112)741 053196 AMENDlED (3HEET rui/uo UDI o ftQ@4?&4,r, +tO9 IPfA/H<? FA .Y, 48. The television schedule information transmission system of claim 47 in which the schedule information commands for the predetermined territory include region commands each identifying channels which are available in one of the regions in the territory and a region identification, each of said regional data processing systems having a region identification for comparing with the region identification of each region command to recognize region commands intended for that regional data processing system. 49. The television schedule information transmission system of claim 43 in which said means for transmitting television schedule data for the direct broadcast satellite is configured to transmit the television schedule data for the direct broadcast satellite as commands, said means for transmitting television schedule data for the predetermined territory is configured to transmit the television schedule data for the predetermined territory as commands and said means for transmitting the television schedule data for the region is configured to transmit the television schedule data for the region as commands, said plurality of subscriber data processing systems in each of the regions includes a means for determining if certain of the television schedule data in the commands has already been acquired by the subscriber data processing system, and in which the certain of the television schedule information is acquired if it has not already been acquired. The television schedule information transmission system of claim 49 in which the certain of the television schedule information includes show titles. 51. The television schedule information transmission system of claim 50 in which the show titles include character strings that have previously been acquired. 52. The television schedule information transmission system of claim 49 in which the certain of the television schedule information includes missing data for future time periods. 21120741 S 053196 L. ^jAMENDED S'T I ru/uo U 3 b USf fP rFA/ U] S f" E,"Y -167- P1 W 53. The television schedule information transmission system of claim 43 in which each of said plurality of subscriber data processing systems in each of the regions includes a memory for storing database items comprising the television schedule data, each of the database items having a handle as an index into a handle table identifying memory locations corresponding to the handlc. 54. In a television schedule information transmission system, the method which comprises transmitting television schedule data including day, time and channel of television programs for a direct broadcast satellite to the direct broadcast satellite, receiving the television schedule data for the direct broadcast satellite from the direct broadcast satellite at a subscriber data processing system, transmitting schedule information data including day, time and channel of television programs for a predetermined territory to a plurality of regional data processing systems each located in a region of the territory, receiving schedule information data for a predetermined territory in a regional data processing system located in a region of the predetermined territory, selecting the schedule information data for the region in which the regional data processing system is located and transmitting the schedule information data for the region to a subscriber data processing system for use by a user to select television programs for reception. The method of claim 54 additionally comprising the steps of receiving the television schedule data for he region from the regional data processing system for the region at the subscriber data processing system, storing at least a portion of the television schedule data received by the subscriber data processing system from the direct broadcast satellite and the regional data processing system, assembling portions of the stored television schedule data received by the subscriber data processing system for display to a user of the subscriber data processing system and displaying the assembled portions of the television schedule data. 56. The method of claim 55 in which the television schedule data received by the subscriber data processing system from the direct broadcast satellite and the regional data processing system is stored as database items comprising the television .11:>2P41 .ll )r 1 1 AMENDED SH-ET ,o 4, -168- schedule dita. each of the database items having a handle as an index into a handle ahle identifying memory locations corresponding to the handle. 57. The method of claim 54 additionally comprising the steps of receiving the television schedule data for the region at an intermediate data processing system between the regional data processing system and the subscriber data processing system, selecting a portion of the television sci-edule data for the subscriber data processing system from the television schedule data for the region and transmitting the portion of the television schedule data for the subscriber data processing system to the subscriber data processing system. 58. The method of claim 54 in which the television schedule data is transmitted in the form of commands, the commands including instructions for the subscriber data processing system and television schedule data used by the commands to assemble portions of the television schedule data to display the portions of the television schedule data. 59. The method of claim 58 in which the television schedule data commands include a region command identifying channels which are available in the region and a region identification, the regional data processing system having a region identification for comparing with the region identification of the region command to recognize the region command intended for the regional data processing system. The method of claim 58 additionally comprising the steps of determining if certain of the television schedule data in the commands has already been acquired b)y the subscriber data processing system, and acquiring the certain of the television schedule data if it has not already been acquired. 61. In a television schedule information transmission system including a central data processing system having means for transmitting television schedule data. and a subscriber data processing system having means for receiving at least some of the television schedule data transmitted by said central data processing system. the 2 1120-41 11^ AMENDED ShtLE c~i--~ln- *I 3 1 MAY 1996 -169- improvement which comprises said subscriber data processing system including a memory for storing database items comprising the television schedule information, each of the database items having a handle as an index into a handle table identifying memory locations corresponding to the handle. 62. In a television schedule information transmission system, the method which comprises transmitting television schedule data, receiving at least some of the television schedule data at a subscriber data processing system as database items comprising the television schedule information, each of the database items having a handle, and using the handle as an index into a handle table identifying memory locations corresponding to the handle. 63. In a television schedule information transmission system including a central data processing system for a predetermined territory having means for transmitting television schedule data for the predetermined territory including updates of television schedule data previously transmitted and a plurality of subscriber data processing systems in the predetermined territory, each of said plurality of subscriber data processing systems including a receiver for television schedule data, a memory for storing television schedule data, said memory being coupled to said receiver, the improvement which comprises means in said central data processing system for assigning a transmission priority for the updates of television schedule data previously transmitted relative to other television schedule data. 64. The television schedule information transmission system of claim 63 in which said means for assigning a transmission priority for the updates includes means for assigning relative transmission priority among the updates. The television schedule information transmission system of claim 64 in which the means for assigning relative transmission priority among the updates assigns the relative transmission priority among the updates using update file names. 'I, I 4A-f3- MZ lS 1 MAY'199 -170- 66. In a television schedule information transmission system, the method which comprists establishing a relative priority for transmission of the television schedule information between updates of originally transmitted television schedule information and originally transmitted schedule information, transmitting the television schedule information in accordance with the relative priority and receiving at least some of the transmitted television schedule information at a subscriber data processing system. 67. The method of claim 66 additionally comprising the steps of assigning relative priority for transmission among the updates of originally transmitted television schedule information, and transmitting the updates of originally transmitted television schedule information in accordance with the relative priority of the updates. 68. The method of claim 66 in which the relative priorities between updates and originally transmitted television schedule information are established by using file names. 69. A television schedule information transmission system comprising a central data processing system for a predetermined territory having means for transmitting television schedule data including day. time and channel of television programs for the predetermined territory and a plurality of subscriber data processing systems in the predetermined territory, each of said plurality of subscriber data processing systems including a receiver for said television schedule data, a memory for storing said television schedule data, said memory being coupled to said receiver, means in said central data processing system for identifying said television schedule data by a time relative to other television schedule data, means in said subscriber data processing system for determining if said television schedule data received by said subscriber data processing system has a time identification later than a time identification of television schedule data stored in said memory, and a display connected to said means for assembling portions of the schedule informatio- data to display the portions of the schedule information data to the user so that the 'iser can use the portions to select television programs for reception. 1112()741 41 'sy PCT/US 9 5/0 51 69 -171- sa Thile television schedule information transmission system of claim 69 in which said system includes a recording device coupled to said subscriber data processing system, the television schedule data being broadcast in a television broadcast signal, said recording device including the television schedule data in a recording of the television broadcast signal, 71. The television schedule information transmission system of claim 69 in which said means for identifying the transmitted television schedule data by time relative to other transmitted television schedule data identifies the transmitted television schedule data by time through a time tag transmitted with the television schedule data. 72. In a television schedule information transmission system, the method which comprises transmitting television schedule data with an identification of the transmitted television schedule data by time relative to other transmitted television schedule data, receiving the transmitted television schedule data with a subscriber data processing system, storing the television schedule data in a memory of the subscriber data processing system, subsequently supplying television schedule data including an identification by time relative to other television schedule data, comparing the identification by time of the subsequently supplied television schedule data with the identification by time of the television schedule data stored in the memory, replacing the stored television schedule data with the subsequently supplied television schedule data if the identification by time of the subsequently supplied television schedule data is later than the identification by time of the stored television schedule data, and maintaining the stored television schedule data in the memory if the identification by time of the stored television schedule data is later than the identifcation by time of the subsequently supplied television schedule data. 73. The method of claim 72 in which the subsequently supplied television schedule data is supplied by transmission.
  3. 211207-11 I I Y F2 iBAUS 3 1 A -172- 74. The method of claim 72 in which the television schedule data is supplied by a recording device. In a television schedule information transmission system including a central data processing system for a predetermined territory having means for transmitting television schedule data for the predetermined territory and a pluiaiity of subscriber data processing systems in the predetermined territory, each of said plurality of subscriber data processing systems including a receiver for television schedule data, a memory for storing television schedule data, said memory being coupled to 'said receiver, the improvement which comprises a real time clock in said central data processing system for establishing a single system time for said transmission system, said means for transmitting television schedule data including means for transmitting the single system time, said receiver including means for receiving the single system time, said memory having a stored value for calculating local real time from the single system time. 76. The television schedule information transmission system of claim 75 in which said means for transmitting television schedule data further includes means for transmitting the value for calculating local real time from the single system time to said subscriber data processing system. 77. In a television schedule information transmission system, the method which comprises establishing a single system time related to real time, transmitting the single system time to a subscriber data processing system, transmitting television schedule data expressed in the single system time to the subscriber data processing system. providing a value to the subscriber data processing system for calculating local real time from the single system time, and calculating local times for a television schedule from the schedule data expressed in the single system time using the value. 'Ii AMENDED SHEET €Y -173- 78. The method of claim 77 in which tie value is provided to the subscriber daia processing system by transmission in the television schedule information Iransmission system. 79. In a television schedule information transmission system including a central data processing system for a predetermined territory having means for transmitting television schedule data for the predetermined territory and a plurality of subscriber data processing systems in the predetermined territory, each of said plurality of subscriber data processing systems including a receiver for television schedule data, a memory for storing television schedule data, said memory being coupled to said receiver, the improvement which comprises said means for transmitting television schedule data being configured to transmit the television schedule data as a show list for each day in the television schedule, said subscriber data processing system being configured to maintain show lists for a rolling window comprising a plurality of days extending from present time into future time. The television schedule transmission system of claim 79 in which the show list contains a list of show titles, show descriptions, show start times and show durations for a channel. 81. The television schedule transmission system of claim 80 in which said subscriber data processing system is configured to maintain a count of a number of times that character strings in the show lists are used in the rolling window of the television schedule and to use the count to retain character strings from the show lists for use in additional show lists, 82. In a television schedule information transmission system, the method which comprises transmitting television schedule data as a show list for each day in the television schedule and maintaining show lists for a rolling window comprising a plurality of days extending from present time into future time. AMENDED SHEET i PCT/US 95/05169 JP96IS g3 I MAY 199 -174- 83. The method of claim 82 in which the show list contains a list of show titles, show descriptions, show start times and show durations for a channel. 84. The method of claim 82 additionally comprising the steps of maintaining a count of a number of times that character strings in the show lisrs are used in the rolling window of the television schedule and to use the count to retain character strings from the show lists for use in additional show lists. The television schedule information transmission system of claim i, where each program is categorized into a group, and each of said plurality of subscriber data processing systems is able to recall the program by its group. 86. The television schedule information transmission system of claim where the transmitter additionally transmits a table that assigns a text description to each group. 87. The television schedule information transmission system of claim where the groups are identified by themes. 88. The television schedule information transmission system of claim I additionally comprising means in said central data processing system for encrypting a selected portion of the television schedule data required by said subscriber data processing system to assemble a television schedule for display and means in said subscriber data processing system for decrypting the selected portion of the television schedule data. 89. The television schedule information transmission system of claim 88 in which said means for encrypting is configured to encrypt a show list portion of the television schedule data. The television schedule information transmission system of claim I in which said subscriber data processing systems being configured to store the television 2 1212'41 I- -175- 1 MAY 1996 -175- schedule data in compressed form in said memory, a read only memory in said data processing system for storing fixed text for said system, the fixed text being stored in said read only memory in compressed form. 91. The television schedule transmission system of claim 90 in which the television schedule data and the fixed text are stored in Huffman encoded form. 92. The television schedule information transmission system of claim 1, wherein said means for assembling portions of ;he schedule information data is configured to change, in response to user input, an order in which a plurality of channels are listed from a first sequence of channels to a second sequence of the channels which is in a different order than the first sequence. 93. The televisicn schedule information transmission system of claim I wherein the schedule information data includes a program description for at least some of the television programs and said means for assembling portions of the schedule information data is configured to provide a program note to said display including the program description in reFponse to a user input. 94. The method of transmitting television schedule information of claim 11, further comprising the step of categorizing each program into a group, and the further step of recalling a portion of the grouped television schedule information stored by one of the subscriber data processing system. The method of claim 11 hich further comprises the step of selectively encrypting a portion of television schedule data necessary to assemble a television schedule for display, transmitting the television schedule data including the encrypted portion, receiving the television schedule data in a subscriber data processing system, decrypting the encrypted portion of the television schedule data, and using the television schedule data, including the portion, to assemble a television schedule for display. 21 120l741 SDENDED SHLEET, I EA/US 3 1 MAY 1s -176- #Y' 96. The method of claim 95 in which the encrypted portion of the television schedule data comprises a show list. 97. The method of claim 11 further comprises storing television schedule data in compressed form in a memory of the system and storing fixed text for the system in a read only memory in compressed form. 98. The method of claim 97 in which the television schedule data and the fixed text are stored in Huffman encoded form. 99. A television schedule information transmission system, which comprises a central data processing system, means connected to said central data processing system for providing schedule information data including day, time and channel of television programs for a predetermined territory to said central data processing system, said central data processing system including means for formatting the s hedule information data for the predetermined territory into a predetermined schedule information transmission format, means coupled to said central data processing system for transmitting said schedule information data, a plurality of regional data processing systems, each located in a region of the predetermined territory, said plurality of regional data processing systems each including means for receiving said schedule information data for the predetermined territory, means for selecting a regional portion of said schedule information data for a region in which each of said plurality of regional data processing systems is located and means for transmitting said regional portion of said schedule information data, and a plurality of subscriber data processing systems in each of the regions, each of said plurality of .,bscriber data processing systems including means for receiving at least some of said regional portion of said schedule information data. means for storing said regional portion of schedule information data received by the subscriber data processing system, means for assembling selected portions of the schedule information data received by the subscriber data processing system for display to a user of the subscriber data processing system and a display connected to said means for assembling said selected portions of the schedule information data to display said 2'1 121)741 _iI_ )i-H I196l~ Pa/US 9/o0516 9 &T4J&M IPEAIJUS t o 'AY p3 -177- selected portions of the schedule information data; said means for transni Tg said regional portion of said schedule information data for the region has an ability to transmit said regional portion of said schedule information data in different places of a television broadcast signal and each of said subscriber data processing systems includes a means for locating said regional portion of said schedule information data in the television broadcast signal. 100. The television schedule information transmission system of claim 99 in which the different places in the television broadcast signal comprise different lines of a vertical blanking interval. 101. A television schedule information system, comprising: a central data processing system: a data source coupled to the central data processing system, the data source having: television schedule data including day, time and channel of television programs for direct broadcast satellite and for a predetermined territory; the central data processing system comprising: a formatter that changes the television schedule data received from the data source into formatted television schedule data conforming to a predetermined format: and a central transmitter coupled to the formatter which transmits the formatted television schedule data received from the formatter: a direct broadcast satellite which receives the foinatted television schedule data for the direct broadcast satellite from the central transmitter: a plurality of regional data processing systems, each regional data processing system receiving the formatted television schedule data for the predetermined territory from the central transmitter and comprising: 211207-11 N6SFEi PCT/US 95/05 19 pE A 3 La: -178- L7"1 a data selector which selects a regional portion of the formatted television schedule data for the predetermined territory: and a regional transmitter coupled to the data selector which transmits the regional portion of the formatted television schedule data to a corresponding region: a plurality of subscriber data processing systems located in each region, comprising: a data receiver which receives the formatted television schedule data for the direct broadcast satellite from the direct broadcast satellite and at least part of the regional portion of the formatted schedule data supplied by the regional transmitter; a data selector coupled to the data receiver to select at least some of the formatted television schedule data from the direct broadcast satellite and at least some of the regional portion of the formatted television schedule data from the regional transmitter; a memory coupled to the data selector which stores the formatted television schedule data selected by the data selector; a data assembler coupled to the memory which assembles portions of the formatted television schedule data stored in the memory; and a display coupled to the data assembler that displays the assembled portions of the schedule data. 102. The television schedule information system of claim 101 in which said system additionally includes: at least one intermediate data processing system between at least one of the plurality of regional data prccessing systems and a p-rtion of the plurality of subscriber data processing systems in a region in 1 2 2(1741 I)53l) ~AMENDED SH-E-" -179- which said at least one of said plurality of regional data processing systems is located, said intermediate data processing system including: an intermediate receiver which receives the regional portion of the formatted television schedule data from the regional transmitter: an intermediate data selector ccupled to the intermediate receiver which selects a part of the formatted television schedule data for the portion of the plurality of subscriber data processing systems in the region from the regional portion of the formatted television schedule data: and an intermediate transmitter coupled to said intermediate data selector which transmits the part of the formatted television schedule data for the portion of the plurality of subscriber data processing systems in the region, said intermediate transmitter being coupled to the portion of the plurality of subscriber data processing systems. 103. The television schedule information system of claim 102 in which said at least one intermediate data processing system is a cable operator data processing system. 104. The television schedule information system of claim 101 in which the formatted television schedule data is transmitted in the form of commands, the comrmnds including instructions for the plurality of subscriber data processing systems in each region and television schedule data used by the commands to assemble portions of the television schedule data to display the portions of the television schedule data. 105. The television schedule information system of claim 104 in which the formatte'l television schedule data commands for the predetermined territory include region commands each identifying channels which are available in one of the regions 21121n l ll-^1Dh ,VTENIDD CIH.EET r~nfs 41 LPA ,1 -180- -h" in the territory and a region identification, each of the regional data processing systems having a region identification for comparing with the region identification of each region command to recognize region commands intended for that regional data processing system. 106. The television schedule information system of claim 104 in which each of the plurality of subscriber data processing systems in each of the regions includes: a comparator coupled to the data selector which determines if certain of the formatted television schedule data in the commands has already been acquired by the subscriber data processing system, and in which the certain of the formatted television schedule data is acquired by a subscriber data processing system in said plurality of subscriber data processing systems if it has not already been acquired. 107. The television schedule information system of claim 106 in which the certain of the formatted television schedule data includes show titles. 108. The television schedule information system of claim 107 in which the show titles include character strings that have previously been acquired. 109. The television schedule information system of claim 106 in which the certain of the formatted television schedule data includes missing data for future time periods. 110. The television schedule information transmission system of claim 101 in which the memory in each of said plurality of subscriber data processing systems stores database items comprising the formatted television schedule data. each of the database items having a handle as an index into a handle table identifying memory locations corresponding to the handle. I1ll. A television schedule information system, comprising: 211211741 0) I 190 P9, S 5/05 16) -181- ^4i a central data processing system with a transmitter which transmits first and second television schedule data including day, time and channel of television programs for a direct broadcast satellite and for a predetermined territory, respectively; a direct broadcast satellite which receives the first television schedule data from the transmitter of the central data processing system and re- transmits the first television schedule data: a plurality of regional data processing systems each of which receives the second television schedule data, selects second television schedule data corresponding to a region of the receiving regional data processing system and transmits the second schedule data for the region to the region; a plurality of subscriber data processing systems, each of which receives the first television schedule data from the direct broadcast satellite and second television schedule data from one of the regional data processing systems and assembles the first and second television schedule data for display; and a television coupled to one of the plurality of subscriber processing systems which displays at least some of the second assembled schedule data. 112. The television schedule information system of claim 111 I in which at least some of the subscriber data processing systems receive the second television schedule data from: an intermediate data processing system coupled between the one of the regional data processing systems and the at least some of the subscriber data processing systems. 113. The television schedule information system of claim 112 in which the intermediate data processing system is a cable operator data processing system. 2 112)7-t1 oNI.h SIll-] 11 o ll26M C Ii tA'm 182- 114. The television schedule information system of claim 111 in which a memory in each of the subscriber data processing systems stores database items comprising the first and second television schedule data, each of the database items having a handle as an index into a handle table identifying memory locations corresponding to the handle. 115. A television schedule information transmission system, substantially as hereinbefore described with reference to the drawings. 116. A method of transmitting schedule information data, substantially as 10 hereinbefore described with reference to the drawings. 117. A method of transmitting commands from a central data processing system to a plurality of subscriber data processing systems, substantially as hereinbefore described with reference to the drawings. 118. A method of transmitting a predetermined character string, substantially as hereinbefore described with reference to the drawings. S C C DATED this 15th day of June, 1998 STARSIGHT TELECAST, INC. By its Patent Attorneys DAVIES COLLISON CAVE
AU26355/95A 1990-09-10 1995-04-24 Television schedule information transmission and utilization system and process Expired AU694521B2 (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
US239225 1994-05-04
US08/239,225 US5790198A (en) 1990-09-10 1994-05-04 Television schedule information transmission and utilization system and process
US08/243,598 US5619274A (en) 1990-09-10 1994-05-13 Television schedule information transmission and utilization system and process
US243598 1994-05-13
PCT/US1995/005169 WO1995031069A1 (en) 1994-05-04 1995-04-24 Television schedule information transmission and utilization system and process

Publications (2)

Publication Number Publication Date
AU2635595A AU2635595A (en) 1995-11-29
AU694521B2 true AU694521B2 (en) 1998-07-23

Family

ID=56289624

Family Applications (1)

Application Number Title Priority Date Filing Date
AU26355/95A Expired AU694521B2 (en) 1990-09-10 1995-04-24 Television schedule information transmission and utilization system and process

Country Status (4)

Country Link
EP (1) EP0761061A4 (en)
CN (1) CN1153461C (en)
AU (1) AU694521B2 (en)
CA (1) CA2189454C (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6424998B2 (en) 1999-04-28 2002-07-23 World Theatre, Inc. System permitting the display of video or still image content on selected displays of an electronic display network according to customer dictates
JP3594187B2 (en) 2001-05-16 2004-11-24 ソニー株式会社 Information processing apparatus and method, an information providing apparatus and method, recording medium, and program
EP2530853A4 (en) * 2010-01-26 2014-11-12 Lg Electronics Inc Station operation method and apparatus in tv whitespace

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5182640A (en) * 1989-04-27 1993-01-26 Sony Corporation Program transmission system and method
US5200823A (en) * 1991-03-29 1993-04-06 Scientific-Atlanta, Inc. Virtual channels for a multiplexed analog component (mac) television system
US5283639A (en) * 1989-10-23 1994-02-01 Esch Arthur G Multiple media delivery network method and apparatus

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5151782A (en) * 1989-05-17 1992-09-29 Reiss Media Enterprises Control system for satellite delivered pay-per-view television system
US5412720A (en) * 1990-09-28 1995-05-02 Ictv, Inc. Interactive home information system
JPH07508388A (en) * 1992-05-13 1995-09-14

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5182640A (en) * 1989-04-27 1993-01-26 Sony Corporation Program transmission system and method
US5283639A (en) * 1989-10-23 1994-02-01 Esch Arthur G Multiple media delivery network method and apparatus
US5200823A (en) * 1991-03-29 1993-04-06 Scientific-Atlanta, Inc. Virtual channels for a multiplexed analog component (mac) television system

Also Published As

Publication number Publication date
AU2635595A (en) 1995-11-29
EP0761061A4 (en) 2000-01-12
CA2189454C (en) 2004-11-02
EP0761061A1 (en) 1997-03-12
CA2189454A1 (en) 1995-11-16
CN1153461C (en) 2004-06-09
CN1152987A (en) 1997-06-25

Similar Documents

Publication Publication Date Title
US7028326B1 (en) Method and interface for linking terms in an electronic message to program information
US9357160B2 (en) Multiple database, user-choice-compiled program and event guide
ES2478668T3 (en) Packet data formats for digital storage media data
US6502241B1 (en) Transmission of an electronic data base of information
KR100609338B1 (en) Method for forming and processing text data for use in program specific information for broadcast
US6020880A (en) Method and apparatus for providing electronic program guide information from a single electronic program guide server
US5666645A (en) Data management and distribution system and method for an electronic television program guide
US6005562A (en) Electronic program guide system using images of reduced size to identify respective programs
RU2390965C2 (en) Receiver of television signals
US6868551B1 (en) Interactive program summary panel
EP1176826B1 (en) Super encrypted storage and retrieval of media programs in a hard-paired receiver and storage device
ES2213226T3 (en) Method and apparatus for handling and storing decoding data encrypted video.
EP0993185B1 (en) Digital television status display
CN1210950C (en) System for acquiring and processing broadcast programs and program guide data
CA2484519C (en) Program storage, retrieval and management based on segmentation messages
CA2272921C (en) Method of processing encrypted video data for generating decrypted program data
US6940873B2 (en) Data stream control system for associating counter values with stored selected data packets from an incoming data transport stream to preserve interpacket time interval information
EP0838951B1 (en) Program information broadcasting system broadcasting device, and receiving terminal unit
US6853728B1 (en) Video on demand pay per view services with unmodified conditional access functionality
CN1129309C (en) Apparatus and methods for downloading recorder programming data in TV signal
US7600246B2 (en) Method and apparatus for analyzing program data
US6993782B1 (en) Program guide information and processor for providing program and channel substitution
CA2228391C (en) Television schedule system with enhanced features
EP0758833B1 (en) Method and apparatus for providing an interactive guide to events available on an information network
CN100369482C (en) Machine top terminal for cabled television transmission system