Difference between revisions of "UVSG Satellite Data"

From Prevue Guide Wiki
Jump to navigation Jump to search
Line 12: Line 12:
  
 
In this example, the select code being addressed is 2A, or the ASCII code for an asterisk (*). This means every machine that is listening to the satellite feed will act on this command. Then, a 00 to terminate the string, and a checksum (94). After the 55 AA, you see the mode byte (54, or T for '''T'''itle), and then an ASCII string (PREVUE GUIDE). Lastly, there is another 00 to terminate the string, and D0, the checksum for the entire string.
 
In this example, the select code being addressed is 2A, or the ASCII code for an asterisk (*). This means every machine that is listening to the satellite feed will act on this command. Then, a 00 to terminate the string, and a checksum (94). After the 55 AA, you see the mode byte (54, or T for '''T'''itle), and then an ASCII string (PREVUE GUIDE). Lastly, there is another 00 to terminate the string, and D0, the checksum for the entire string.
 +
 +
==Inital Checksum==
 +
 +
Most commands have a checksum that is calculated on all the bytes of the data part of the command. This is sent over the serial port and compared by the receiving Prevue Guide computer. If the checksum does not match, the computer discards the whole command. The checksum is calculated by bitwise XOR of each byte of data within the command excluding the command letter itself. Each command has it's own hardcoded seed checksum which is loaded as the initial value of the checksum, as soon as the initial command letter is recieved.
 +
 +
==Command letters==
 +
 +
Some of this is conjecture and named according to clues found in the reverse-engineered code - it's subject to change and mistakes!
 +
 +
A - Address (notifies Prevue Guide machines to listen to following messages. Is followed by select code/wildcards to notify which machines should listen)
 +
C - Channel (Channel information - list of Call letters, Channel number, Source)
 +
F - Configuration (Including BCK and FWD flags, scroll speed, number of text adverts, number of lines per advert, system timezone, weather to obey DST)
 +
H - Write file to disk (for Amiga, possibly only later Prevue Grid)
 +
J - Order information (for PPV channels)
 +
j - Order information (possibly newer format)
 +
K - Time(sets the clock centrally)
 +
P - Programme (programme information)
 +
p - Programme (programme information (possibly newer format)
 +
Q - (unsure at present, possibly more to do with PPV channels)
 +
T - Title bar string (only for Prevue List)
 +
[0xBB] - End of block (notifies all Prevue Guide machines previously addressed with "A" to stop listening)
 +
 +
 +
 +
  
 
[[Category:Prevue Emulation]]
 
[[Category:Prevue Emulation]]

Revision as of 12:56, 29 November 2010

This was the format used by United Video Satellite Group to send data out at 2400 baud through the VBI of both WGN Superstation (from 1981 through 2005) and the C-band Prevue Channel feed (from 1988 through 1999). Many different types of information were sent out through this feed, including time/date information, system settings, channel listings, system updates, and information on previews/promos currently playing through the C-band feed.

Tin has successfully reverse engineered some parts of this format, and it is now possible to send our own messages to emulated or real EPG/Prevue machines over serial.

Overview

Every message always starts with the header "55 AA", followed by a select code, a 00, and a checksum. This is followed by another "55 AA", then a byte indicating which mode of command is being sent out, then the data of the command, which is usually followed by checksum.


For example, here's a command that will change the title of the EPG to "PREVUE GUIDE":

55 AA 41 2A 00 94 55 AA 54 50 52 45 56 55 45 20 47 55 49 44 45 00 D0

In this example, the select code being addressed is 2A, or the ASCII code for an asterisk (*). This means every machine that is listening to the satellite feed will act on this command. Then, a 00 to terminate the string, and a checksum (94). After the 55 AA, you see the mode byte (54, or T for Title), and then an ASCII string (PREVUE GUIDE). Lastly, there is another 00 to terminate the string, and D0, the checksum for the entire string.

Inital Checksum

Most commands have a checksum that is calculated on all the bytes of the data part of the command. This is sent over the serial port and compared by the receiving Prevue Guide computer. If the checksum does not match, the computer discards the whole command. The checksum is calculated by bitwise XOR of each byte of data within the command excluding the command letter itself. Each command has it's own hardcoded seed checksum which is loaded as the initial value of the checksum, as soon as the initial command letter is recieved.

Command letters

Some of this is conjecture and named according to clues found in the reverse-engineered code - it's subject to change and mistakes!

A - Address (notifies Prevue Guide machines to listen to following messages. Is followed by select code/wildcards to notify which machines should listen) C - Channel (Channel information - list of Call letters, Channel number, Source) F - Configuration (Including BCK and FWD flags, scroll speed, number of text adverts, number of lines per advert, system timezone, weather to obey DST) H - Write file to disk (for Amiga, possibly only later Prevue Grid) J - Order information (for PPV channels) j - Order information (possibly newer format) K - Time(sets the clock centrally) P - Programme (programme information) p - Programme (programme information (possibly newer format) Q - (unsure at present, possibly more to do with PPV channels) T - Title bar string (only for Prevue List) [0xBB] - End of block (notifies all Prevue Guide machines previously addressed with "A" to stop listening)