Difference between revisions of "Prevue Emulation:Curday.dat and Nxtday.dat"

From Prevue Guide Wiki
Jump to navigation Jump to search
 
(45 intermediate revisions by 2 users not shown)
Line 1: Line 1:
Curday.dat and Nxtday.dat Breakdowns...
+
Curday.dat and Nxtday.dat Breakdowns...This is a Work in Progress and will be cleaned up soon...
  
 +
==The header information==
  
1 code then 6xFF then 1 code then FF3030
+
  AE3365N<ETX><SOH>6NYNNYYNYl<NUL><NUL>0<NUL>DREV 5<NUL>KHHR<NUL>Hawthorne<NUL>250<NUL>91<NUL>130<NUL>1300<NUL>
CH#                      Source  Ch ID              Channel Attributes                                  Source
 
[5Char  6 nul chars      6CHar nul 6Char 2Nul  18 char id    (blank space is HEX A0)          2NUL ETX 6 chars
 
  
 +
'''Settings block:'''
  
 +
41  A  (BCK in Diagnostics)
  
The first character (in this case the '[') is the character that corresponds to the HEX code for the Julian Date. All characters are good and will reset after FF to 00. It changes daily and also corresponds to the Nxtday.dat file as well.
+
45  E  (FWD in Diagnostics)
  
All channels have an 18-character ID/Attributes section
+
33  3  (Scroll Speed)
  
IMPORTANT: For channels showing None and Stereo, there is a hidden HEX Code 81 (decimal 129) at the beginning (listings that appears to be 17 digits in the code) - The HEX 81 does not print on-screen and is only visible in a HEX editor.
+
33  3  (Number of Text Ads allowed in Diagnostics)
  
C Command Syntax
+
36  6   (Number of Text Ads allowed in Diagnostics)
0x43 [Julian day, byte]
 
0x12 [flags, byte] [6-character source, string]
 
0x11 [Channel #, string]
 
0x01 [5- to 6-character channel name, string]
 
0x00 [checksum, byte]
 
 
NOTE: On EPG Jr. the channel name has a limit of 5 characters
 
  
C Commmand Flags
+
35  5  (LINE in Diagnostics - # of Lines allowed in Text Ads)
  
Flag name Hex value   Determined in the EXCEL FILE
+
4E  N   ???(Or GRPH    DST Y OR N in Diagnostics)
  
None 0x01
+
03 (ETX)
HILITESRC 0x02
 
SUMBYSRC 0x04
 
VIDEO_TAG_DISABLE 0x08
 
CAF_PPVSRC 0x10
 
DITTO 0x20
 
ALTHILITESRC 0x40
 
STEREO 0x80
 
  
Hex 01 <SOH> Not in Stereo
+
01 (SOH)
Hex 03 <ETX> End of Listings
 
Hex 13 <DC3> if for Hidden listing
 
Hex A2 ¢    is Red HiliteSRC    HiliteSRC Ditto and Stereo
 
Hex 00 <NUL> Nothing shows (Did not show)
 
Hex 10 <DLE> CAF_PPVSRC (Did not show)
 
Hex 20 Space DITTO (Showed regular)
 
Hex 30 0    CAF_PPVSRC DITTO (Showed regular)
 
Hex 40 @    ALTHILITESRC (Did not show)
 
Hex 50 P    CAFPPVSRC ALTHILITESRC (Did not show)
 
Hex 60 `    DITTO ALTHILITESRC (Showed blue)
 
Hex 70 p    CAF_PPVSRC DITTO ALTHILITESRC (Showed blue)
 
Hex 80 €    STEREO (Did not show)
 
Hex 90       CAF_PPVSRC STEREO (Did not show)
 
Hex A0      Turned all back to normal blue color... both ditto and normal listings.     is Ditto Stereo
 
Hex B0 °    Turned all back to normal blue color... both ditto and normal listings.      CAF_PPVSRC Ditto and Stereo
 
Hex C0 À    is AltHiliteSRC (did remove the Ditto Listings from being shown)                AltHiliteSRC and Stereo
 
Hex D0 Р   is for Listing Blue (did remove the Ditto listings from being shown) CAF_PPVSRC AltHiliteSRC and Stereo
 
Hex E0 à    is for Ditto Blue (did take a full listing from being shown)              Ditto AltHiliteSRC and Stereo
 
Hex F0 ð    is for blue color (showed all listings for blue color)         CAF_PPVSRC Ditto AltHiliteSRC and Stereo
 
  
 +
36  6  (TZ - TimeZone in Diagnostics)
  
 +
4E  N
  
 +
59  Y  (CONT?)
  
 +
4E  N
  
ÿÿÿÿÿÿ block is for times the grid will show specific channel / message
+
4E  N
1 5:00am to 8:59am
 
2 9:00am to 12:59pm
 
3 1:00pm to 4:59pm
 
4 5:00pm to 8:59pm
 
5 9:00pm to 12:59am
 
6 1:00am to 4:59am
 
NUL Char will drop the listing from the list
 
ü char will show the listing for the times that have ÿ
 
ETX will show the off-air message.
 
À will hide the listing
 
HEX F2 will appear the listing as DNICHE and DMPLEX
 
  
 +
59  Y  (CONT?)
  
flag1 = 0x%02X, flag2 = 0x%04X, BgColor = 0x%02X, FgColor = 0x%02X, BrushId = %s
+
59  Y  (CONT?)
  
          ‚                                ÿ            ÿ              00<nul><nul>  
+
4E  N
 +
 
 +
59  Y  (CONT?)
 +
 
 +
6C  l  (VIN in Diagnostics)
 +
 
 +
00  (NUL)
 +
 
 +
00  (NUL)
 +
 
 +
 
 +
'''0 <NUL>'''  This is still being checked
 +
 
 +
'''DREV 5 <NUL>''' Hypothesis: This is a Data Revision # - If this is changed the grid is horribly messed up. This probably matches the various versions of Prevue software.
 +
 
 +
'''KHHR <NUL>''' 4 Letter Code for the Airport that Weather Conditions are downloaded for. - Set with I select code
 +
 
 +
'''Hawthorne <NUL>''' Displayed city name for Weather Conditions - Set with I select code
 +
 
 +
'''250 <NUL>''' Julian date from 0 to 255 - resets to 0 on day 256.
 +
 
 +
'''91 <NUL>''' Number of channel listings. Decreasing this in Curday.dat will remove channels from bottom of list. This is automatically built when the channel lineup is sent and data is saved to disk.
 +
 
 +
'''130 <NUL>''' This is still being checked
 +
 
 +
'''1300 <NUL>''' This is still being checked
 +
 
 +
==The general pattern of Channel information for DREV 5:==
 +
 
 +
1 Hex Character - Value is the Julian Day - in our example '['
 +
 
 +
5 digits for Channel number (string of data - no more than 5 characters)
 +
 
 +
6 null characters
 +
 
 +
6 character Source ID (if the Source ID is less than 6 characters, null characters will fill the rest of the space)
 +
 
 +
1 null character
 +
 
 +
6 character Call Letters (if the Call Letters are less than 6 characters, null characters will fill the rest of the space)
 +
 
 +
2 null characters
 +
 
 +
1 Hex Character 1st Flag of information (None, HiliteSrc, SumbySrc, VideoTagDisable, CAF_PPVSRC, Ditto, AltHiliteSrc, Stereo)
 +
 
 +
6 Hex character Timeslot Mask (in our example showing 6 ""ÿ"" characters)
 +
 
 +
6 Hex character Blackout Mask (in our example showing 6 null characters)
 +
 
 +
1 Hex Character for Flag #2 (still working on what thie one does, possibly flags the channel for Sports and Movie Summaries)
 +
 
 +
2 Hex Characters for Background Color (colors available are determined by Gradient.ini - in our example ÿÿ)
 +
 
 +
2 Characters for Brush ID (unknown format yet - possibly string - in our example 00)
 +
 
 +
2 Null Characters
 +
 
 +
1 Hex Character for 3rd Flag of information (Grid, MR, DNICHE, DMPLEX, and CF2_DPPV - possibly 3 additional flags as well)
 +
 
 +
6 Character Source ID again
 +
 
 +
Then the listings follows after this...
 +
 
 +
Notes:
 +
 
 +
The first character (in this case of the untouched listings - '[') is the character that corresponds to the HEX code for the Julian Date. All characters are good and will reset after FF to 00. This character changes daily.
 +
 
 +
 
 +
==Flag #1==
 +
This flag controls the following:
 +
{| class="wikitable" style="text-align:center" border="1";
 +
!HEX1
 +
!STEREO
 +
!ALTHILITESRC
 +
!DITTO
 +
!CAF_PPVSRC
 +
!
 +
!HEX2
 +
!VIDEO_TAG_DISABLE
 +
!SumbySrc
 +
!HiliteSrc
 +
!None
 +
 
 +
|-
 +
| 0
 +
|
 +
|
 +
|
 +
|
 +
|
 +
| 0
 +
|
 +
|
 +
|
 +
|
 +
|-
 +
| 1
 +
|
 +
|
 +
|
 +
| x
 +
|
 +
| 1
 +
|
 +
|
 +
|
 +
| x
 +
|-
 +
| 2
 +
|
 +
|
 +
| x
 +
|
 +
|
 +
| 2
 +
|
 +
|
 +
| x
 +
|
 +
|-
 +
| 3
 +
|
 +
|
 +
| x
 +
| x
 +
|
 +
| 3
 +
|
 +
|
 +
| x
 +
| x
 +
|-
 +
| 4
 +
|
 +
| x
 +
|
 +
|
 +
|
 +
| 4
 +
|
 +
| x
 +
|
 +
|
 +
|-
 +
| 5
 +
|
 +
| x
 +
|
 +
| x
 +
|
 +
| 5
 +
|
 +
| x
 +
|
 +
| x
 +
|-
 +
| 6
 +
|
 +
| x
 +
| x
 +
|
 +
|
 +
| 6
 +
|
 +
| x
 +
| x
 +
|
 +
|-
 +
| 7
 +
|
 +
| x
 +
| x
 +
| x
 +
|
 +
| 7
 +
|
 +
| x
 +
| x
 +
| x
 +
|-
 +
| 8
 +
| x
 +
|
 +
|
 +
|
 +
|
 +
| 8
 +
| x
 +
|
 +
|
 +
|
 +
|-
 +
| 9
 +
| x
 +
|
 +
|
 +
| x
 +
|
 +
| 9
 +
| x
 +
|
 +
|
 +
| x
 +
|-
 +
| A
 +
| x
 +
|
 +
| x
 +
|
 +
|
 +
| A
 +
| x
 +
|
 +
| x
 +
|
 +
|-
 +
| B
 +
| x
 +
|
 +
| x
 +
| x
 +
|
 +
| B
 +
| x
 +
|
 +
| x
 +
| x
 +
|-
 +
| C
 +
| x
 +
| x
 +
|
 +
|
 +
|
 +
| C
 +
| x
 +
| x
 +
|
 +
|
 +
|-
 +
| D
 +
| x
 +
| x
 +
|
 +
| x
 +
|
 +
| D
 +
| x
 +
| x
 +
|
 +
| x
 +
|-
 +
| E
 +
| x
 +
| x
 +
| x
 +
|
 +
|
 +
| E
 +
| x
 +
| x
 +
| x
 +
|
 +
|-
 +
| F
 +
| x
 +
| x
 +
| x
 +
| x
 +
|
 +
| F
 +
| x
 +
| x
 +
| x
 +
| x
 +
|}
 +
 
 +
Flag 1 is created by using 2 HEX positions and the combination is converted into a single char.
 +
 
 +
The 1st HEX position controls STEREO/ALTHILITESRC/DITTO/CAF_PPVSRC
 +
The 2nd HEX position controls VIDEO_TAG_DISABLE/SumbySrc/HiliteSrc/None
 +
 
 +
The table above breaks down what each HEX position represents.
 +
 
 +
IMPORTANT when viewing in a text editor: For channels showing None and Stereo, there is a hidden HEX Code 81 that represents flag 1) - The HEX 81 does not print on-screen and is only visible in a HEX editor.
 +
 
 +
==Timeslot & Blackout Masks==
 +
 
 +
ÿÿÿÿÿÿ<NUL><NUL><NUL><NUL><NUL><NUL>
 +
 
 +
The first 6 characters are called the Timeslot Mask
 +
The last 6 characters are called the Blackout Mask
 +
 
 +
The Timeslot Mask controls the times that a specific channel is displayed within the grid. In our example listings, you will notice that on channel 95, the listings have both TWC and GOLF listed. You will also notice, that this block is different than all other 24hr/day channels.
 +
 
 +
The Blackout Mask controls the times that a channel is removed from the listings or displays a message that a particular program is blacked out (usually due to SyndEx Rules or Sports Blackout rules.)
 +
 
 +
How this works is that each char in the block controls a certain daypart, which is a block of 4 hours. The table below shows which character in the block controls each daypart.
 +
 
 +
{| class="wikitable" style="text-align:center" border="1";
 +
|-
 +
| Position 1
 +
|5:00am to 8:59am
 +
|-
 +
| Position 2
 +
|9:00am to 12:59pm
 +
|-
 +
| Position 3
 +
|1:00pm to 4:59pm
 +
|-
 +
| Position 4
 +
|5:00pm to 8:59pm
 +
|-
 +
| Position 5
 +
|9:00pm to 12:59am
 +
|-
 +
| Position 6
 +
|1:00am to 4:59am
 +
|-
 +
|}
 +
 
 +
For each daypart, there is a char that represents the timing as to when the channel will go into Off Air.
 +
 
 +
As a recurring theme, you guessed it... It is a HEX code. Here is how it is broken down:
 +
 
 +
The first HEX position controls the first two hours of the daypart and the second HEX position controls the last two hours of the daypart.
 +
 
 +
{| class="wikitable" style="text-align:center" border="1";
 +
!HEX1
 +
! begin - 30 min
 +
! 30 min - 1 hr
 +
! 1 hr - 1 hr 30 min
 +
! 1 hr 30 - 2 hrs
 +
!
 +
!HEX2
 +
! 2 hrs - 2 hrs 30 min
 +
! 2 hrs 30 min - 3 hrs
 +
! 3 hrs - 3 hrs 30 min
 +
! 3 hrs 30 mins - end
 +
 
 +
|-
 +
| 0
 +
| Off-Air
 +
| Off-Air
 +
| Off-Air
 +
| Off-Air
 +
|
 +
| 0
 +
| Off-Air
 +
| Off-Air
 +
| Off-Air
 +
| Off-Air
 +
|-
 +
| 1
 +
| Off-Air
 +
| Off-Air
 +
| Off-Air
 +
| Listing
 +
|
 +
| 1
 +
| Off-Air
 +
| Off-Air
 +
| Off-Air
 +
| Listing
 +
|-
 +
| 2
 +
| Off-Air
 +
| Off-Air
 +
| Listing
 +
| Off-Air
 +
|
 +
| 2
 +
| Off-Air
 +
| Off-Air
 +
| Listing
 +
| Off-Air
 +
|-
 +
| 3
 +
| Off-Air
 +
| Off-Air
 +
| Listing
 +
| Listing
 +
|
 +
| 3
 +
| Off-Air
 +
| Off-Air
 +
| Listing
 +
| Listing
 +
|-
 +
| 4
 +
| Off-Air
 +
| Listing
 +
| Off-Air
 +
| Off-Air
 +
|
 +
| 4
 +
| Off-Air
 +
| Listing
 +
| Off-Air
 +
| Off-Air
 +
|-
 +
| 5
 +
| Off-Air
 +
| Listing
 +
| Off-air
 +
| Listing
 +
|
 +
| 5
 +
| Off-Air
 +
| Listing
 +
| Off-air
 +
| Listing
 +
|-
 +
| 6
 +
| Off-Air
 +
| Listing
 +
| Listing
 +
| Off-Air
 +
|
 +
| 6
 +
| Off-Air
 +
| Listing
 +
| Listing
 +
| Off-Air
 +
|-
 +
| 7
 +
| Off-Air
 +
| Listing
 +
| Listing
 +
| Listing
 +
|
 +
| 7
 +
| Off-Air
 +
| Listing
 +
| Listing
 +
| Listing
 +
|-
 +
| 8
 +
| Listing
 +
| Off-Air
 +
| Off-Air
 +
| Off-Air
 +
|
 +
| 8
 +
| Listing
 +
| Off-Air
 +
| Off-Air
 +
| Off-Air
 +
|-
 +
| 9
 +
| Listing
 +
| Off-Air
 +
| Off-Air
 +
| Listing
 +
|
 +
| 9
 +
| Listing
 +
| Off-Air
 +
| Off-Air
 +
| Listing
 +
|-
 +
| A
 +
| Listing
 +
| Off-Air
 +
| Listing
 +
| Off-Air
 +
|
 +
| A
 +
| Listing
 +
| Off-Air
 +
| Listing
 +
| Off-Air
 +
|-
 +
| B
 +
| Listing
 +
| Off-Air
 +
| Listing
 +
| Listing
 +
|
 +
| B
 +
| Listing
 +
| Off-Air
 +
| Listing
 +
| Listing
 +
|-
 +
| C
 +
| Listing
 +
| Listing
 +
| Off-Air
 +
| Off-Air
 +
|
 +
| C
 +
| Listing
 +
| Listing
 +
| Off-Air
 +
| Off-Air
 +
|-
 +
| D
 +
| Listing
 +
| Listing
 +
| Off-Air
 +
| Listing
 +
|
 +
| D
 +
| Listing
 +
| Listing
 +
| Off-Air
 +
| Listing
 +
|-
 +
| E
 +
| Listing
 +
| Listing
 +
| Listing
 +
| Off-Air
 +
|
 +
| E
 +
| Listing
 +
| Listing
 +
| Listing
 +
| Off-Air
 +
|-
 +
| F
 +
| Listing
 +
| Listing
 +
| Listing
 +
| Listing
 +
|
 +
| F
 +
| Listing
 +
| Listing
 +
| Listing
 +
| Listing
 +
|}
 +
 
 +
The Blackout Mask works the same way using the same dayparts. Instead of an off-air message, this block will remove the listing or list Blacked-Out.
 +
 
 +
Note: Every entry has both a Timeslot Mask and a Blackout Mask. Most 24 hour channels will have all 0xFF for the timeslot mask and all <NUL> for the Blackout Mask.
 +
 
 +
==Flag #2==
 +
 
 +
(Hex character 09 must be changed in a Hex editor only)
 +
0-10, 11-20, 21-30, 31-40, 41-50, 51-60,61-70, 71-80, 81-90, 91-100, 101-110
 +
 
 +
==Color Flags:==
 +
flag1 = 0x%02X, flag2 = 0x%04X, BgColor = 0x%02X, FgColor = 0x%02X, BrushId = %s
 +
          ‚                                ÿ            ÿ              00<nul><nul>  
  
 
                                     HEX 03 Yellow    HEX03 Yellow  
 
                                     HEX 03 Yellow    HEX03 Yellow  
 
    HEX 06 Gray      HEX anything else is white
 
    HEX 06 Gray      HEX anything else is white
 +
 
Colors are determined in Gradient.ini file - any color listed can be used for background...
 
Colors are determined in Gradient.ini file - any color listed can be used for background...
 +
 
Foreground Text is either Yellow (HEX03) or White (any other HEX value)
 
Foreground Text is either Yellow (HEX03) or White (any other HEX value)
  
(Hex character 09 must be changed in a Hex editor only)
+
==Flag #3==
0-10, 11-20, 21-30, 31-40, 41-50, 51-60,61-70, 71-80, 81-90, 91-100
+
 
101-110
+
This flag controls the MR, Grid, and DMPLEX, DNICHE, CF2_DPPV. When a listing is built by default, it will build with a HEX 03, which would turn on MR and Grid. It is still being determined how this information is transmitted, as it is not part of the original C channel lineup serial data.
 +
 
 +
{| class="wikitable" style="text-align:center" border="1";
 +
!HEX1
 +
!(reserved)
 +
!(reserved)
 +
!(reserved)
 +
!CF2_DPPV
 +
!
 +
!HEX2
 +
!DMPLEX
 +
!DNICHE
 +
!MR
 +
!Grid
 +
 
 +
|-
 +
| 0
 +
|
 +
|
 +
|
 +
|
 +
|
 +
| 0
 +
|
 +
|
 +
|
 +
|
 +
|-
 +
| 1
 +
|
 +
|
 +
|
 +
| x
 +
|
 +
| 1
 +
|
 +
|
 +
|
 +
| x
 +
|-
 +
| 2
 +
|
 +
|
 +
| x
 +
|
 +
|
 +
| 2
 +
|
 +
|
 +
| x
 +
|
 +
|-
 +
| 3
 +
|
 +
|
 +
| x
 +
| x
 +
|
 +
| 3
 +
|
 +
|
 +
| x
 +
| x
 +
|-
 +
| 4
 +
|
 +
| x
 +
|
 +
|
 +
|
 +
| 4
 +
|
 +
| x
 +
|
 +
|
 +
|-
 +
| 5
 +
|
 +
| x
 +
|
 +
| x
 +
|
 +
| 5
 +
|
 +
| x
 +
|
 +
| x
 +
|-
 +
| 6
 +
|
 +
| x
 +
| x
 +
|
 +
|
 +
| 6
 +
|
 +
| x
 +
| x
 +
|
 +
|-
 +
| 7
 +
|
 +
| x
 +
| x
 +
| x
 +
|
 +
| 7
 +
|
 +
| x
 +
| x
 +
| x
 +
|-
 +
| 8
 +
| x
 +
|
 +
|
 +
|
 +
|
 +
| 8
 +
| x
 +
|
 +
|
 +
|
 +
|-
 +
| 9
 +
| x
 +
|
 +
|
 +
| x
 +
|
 +
| 9
 +
| x
 +
|
 +
|
 +
| x
 +
|-
 +
| A
 +
| x
 +
|
 +
| x
 +
|
 +
|
 +
| A
 +
| x
 +
|
 +
| x
 +
|
 +
|-
 +
| B
 +
| x
 +
|
 +
| x
 +
| x
 +
|
 +
| B
 +
| x
 +
|
 +
| x
 +
| x
 +
|-
 +
| C
 +
| x
 +
| x
 +
|
 +
|
 +
|
 +
| C
 +
| x
 +
| x
 +
|
 +
|
 +
|-
 +
| D
 +
| x
 +
| x
 +
|
 +
| x
 +
|
 +
| D
 +
| x
 +
| x
 +
|
 +
| x
 +
|-
 +
| E
 +
| x
 +
| x
 +
| x
 +
|
 +
|
 +
| E
 +
| x
 +
| x
 +
| x
 +
|
 +
|-
 +
| F
 +
| x
 +
| x
 +
| x
 +
| x
 +
|
 +
| F
 +
| x
 +
| x
 +
| x
 +
| x
 +
|}
 +
 
 +
1st HEX Char = CF2_DPPV
 +
 
 +
2nd HEX Char = DMPLEX / DNICHE / MR / Grid
  
Last 4 characters may control the Digital Niche and Digital MPlex Channels...
+
Last Character before the last Source ID- Flag #3
 
 
  
==For the listings themselves==
+
==For the Listings Themselves==
  
<NUL>TimeSlot<NUL>Program Flags<NUL>Program Type<NUL>Program Type2<NUL>number5<NUL>
+
<NUL> TimeSlot <NUL> Program Flags <NUL> Program Type <NUL> Movie Category <NUL> unknown type <NUL>
  
 
TimeSlot - between 0 and 49
 
TimeSlot - between 0 and 49
 +
 
Program Flags - in decimal form 0 to 255
 
Program Flags - in decimal form 0 to 255
 +
 
Program Type - 1 for Movie, 5 for Sports, 19 for Children, 22 for News, 34 for General, etc. This is in decimal form
 
Program Type - 1 for Movie, 5 for Sports, 19 for Children, 22 for News, 34 for General, etc. This is in decimal form
 +
 
Movie Category (1 for Adult, 4-Comedy, 5, 7, 10-Musical 18(SciFi?), etc) This is in decimal form
 
Movie Category (1 for Adult, 4-Comedy, 5, 7, 10-Musical 18(SciFi?), etc) This is in decimal form
Color: Last number appears to be 0 only, still figuring what this does. This is in Hex Form
 
  
p_type=%03d, movie_cat=%03d, color=0x%02x
+
unknown type: Last number appears to be 0 only, still trying to determine - could be carry over to Win NT Guide
  
 
[[Category:Prevue Emulation]]
 
[[Category:Prevue Emulation]]

Latest revision as of 19:05, 22 December 2013

Curday.dat and Nxtday.dat Breakdowns...This is a Work in Progress and will be cleaned up soon...

The header information

AE3365N<ETX><SOH>6NYNNYYNYl<NUL><NUL>0<NUL>DREV 5<NUL>KHHR<NUL>Hawthorne<NUL>250<NUL>91<NUL>130<NUL>1300<NUL>

Settings block:

41 A (BCK in Diagnostics)

45 E (FWD in Diagnostics)

33 3 (Scroll Speed)

33 3 (Number of Text Ads allowed in Diagnostics)

36 6 (Number of Text Ads allowed in Diagnostics)

35 5 (LINE in Diagnostics - # of Lines allowed in Text Ads)

4E N ???(Or GRPH DST Y OR N in Diagnostics)

03 (ETX)

01 (SOH)

36 6 (TZ - TimeZone in Diagnostics)

4E N

59 Y (CONT?)

4E N

4E N

59 Y (CONT?)

59 Y (CONT?)

4E N

59 Y (CONT?)

6C l (VIN in Diagnostics)

00 (NUL)

00 (NUL)


0 <NUL> This is still being checked

DREV 5 <NUL> Hypothesis: This is a Data Revision # - If this is changed the grid is horribly messed up. This probably matches the various versions of Prevue software.

KHHR <NUL> 4 Letter Code for the Airport that Weather Conditions are downloaded for. - Set with I select code

Hawthorne <NUL> Displayed city name for Weather Conditions - Set with I select code

250 <NUL> Julian date from 0 to 255 - resets to 0 on day 256.

91 <NUL> Number of channel listings. Decreasing this in Curday.dat will remove channels from bottom of list. This is automatically built when the channel lineup is sent and data is saved to disk.

130 <NUL> This is still being checked

1300 <NUL> This is still being checked

The general pattern of Channel information for DREV 5:

1 Hex Character - Value is the Julian Day - in our example '['

5 digits for Channel number (string of data - no more than 5 characters)

6 null characters

6 character Source ID (if the Source ID is less than 6 characters, null characters will fill the rest of the space)

1 null character

6 character Call Letters (if the Call Letters are less than 6 characters, null characters will fill the rest of the space)

2 null characters

1 Hex Character 1st Flag of information (None, HiliteSrc, SumbySrc, VideoTagDisable, CAF_PPVSRC, Ditto, AltHiliteSrc, Stereo)

6 Hex character Timeslot Mask (in our example showing 6 ""ÿ"" characters)

6 Hex character Blackout Mask (in our example showing 6 null characters)

1 Hex Character for Flag #2 (still working on what thie one does, possibly flags the channel for Sports and Movie Summaries)

2 Hex Characters for Background Color (colors available are determined by Gradient.ini - in our example ÿÿ)

2 Characters for Brush ID (unknown format yet - possibly string - in our example 00)

2 Null Characters

1 Hex Character for 3rd Flag of information (Grid, MR, DNICHE, DMPLEX, and CF2_DPPV - possibly 3 additional flags as well)

6 Character Source ID again

Then the listings follows after this...

Notes:

The first character (in this case of the untouched listings - '[') is the character that corresponds to the HEX code for the Julian Date. All characters are good and will reset after FF to 00. This character changes daily.


Flag #1

This flag controls the following:

HEX1 STEREO ALTHILITESRC DITTO CAF_PPVSRC HEX2 VIDEO_TAG_DISABLE SumbySrc HiliteSrc None
0 0
1 x 1 x
2 x 2 x
3 x x 3 x x
4 x 4 x
5 x x 5 x x
6 x x 6 x x
7 x x x 7 x x x
8 x 8 x
9 x x 9 x x
A x x A x x
B x x x B x x x
C x x C x x
D x x x D x x x
E x x x E x x x
F x x x x F x x x x

Flag 1 is created by using 2 HEX positions and the combination is converted into a single char.

The 1st HEX position controls STEREO/ALTHILITESRC/DITTO/CAF_PPVSRC The 2nd HEX position controls VIDEO_TAG_DISABLE/SumbySrc/HiliteSrc/None

The table above breaks down what each HEX position represents.

IMPORTANT when viewing in a text editor: For channels showing None and Stereo, there is a hidden HEX Code 81 that represents flag 1) - The HEX 81 does not print on-screen and is only visible in a HEX editor.

Timeslot & Blackout Masks

ÿÿÿÿÿÿ<NUL><NUL><NUL><NUL><NUL><NUL> 

The first 6 characters are called the Timeslot Mask The last 6 characters are called the Blackout Mask

The Timeslot Mask controls the times that a specific channel is displayed within the grid. In our example listings, you will notice that on channel 95, the listings have both TWC and GOLF listed. You will also notice, that this block is different than all other 24hr/day channels.

The Blackout Mask controls the times that a channel is removed from the listings or displays a message that a particular program is blacked out (usually due to SyndEx Rules or Sports Blackout rules.)

How this works is that each char in the block controls a certain daypart, which is a block of 4 hours. The table below shows which character in the block controls each daypart.

Position 1 5:00am to 8:59am
Position 2 9:00am to 12:59pm
Position 3 1:00pm to 4:59pm
Position 4 5:00pm to 8:59pm
Position 5 9:00pm to 12:59am
Position 6 1:00am to 4:59am

For each daypart, there is a char that represents the timing as to when the channel will go into Off Air.

As a recurring theme, you guessed it... It is a HEX code. Here is how it is broken down:

The first HEX position controls the first two hours of the daypart and the second HEX position controls the last two hours of the daypart.

HEX1 begin - 30 min 30 min - 1 hr 1 hr - 1 hr 30 min 1 hr 30 - 2 hrs HEX2 2 hrs - 2 hrs 30 min 2 hrs 30 min - 3 hrs 3 hrs - 3 hrs 30 min 3 hrs 30 mins - end
0 Off-Air Off-Air Off-Air Off-Air 0 Off-Air Off-Air Off-Air Off-Air
1 Off-Air Off-Air Off-Air Listing 1 Off-Air Off-Air Off-Air Listing
2 Off-Air Off-Air Listing Off-Air 2 Off-Air Off-Air Listing Off-Air
3 Off-Air Off-Air Listing Listing 3 Off-Air Off-Air Listing Listing
4 Off-Air Listing Off-Air Off-Air 4 Off-Air Listing Off-Air Off-Air
5 Off-Air Listing Off-air Listing 5 Off-Air Listing Off-air Listing
6 Off-Air Listing Listing Off-Air 6 Off-Air Listing Listing Off-Air
7 Off-Air Listing Listing Listing 7 Off-Air Listing Listing Listing
8 Listing Off-Air Off-Air Off-Air 8 Listing Off-Air Off-Air Off-Air
9 Listing Off-Air Off-Air Listing 9 Listing Off-Air Off-Air Listing
A Listing Off-Air Listing Off-Air A Listing Off-Air Listing Off-Air
B Listing Off-Air Listing Listing B Listing Off-Air Listing Listing
C Listing Listing Off-Air Off-Air C Listing Listing Off-Air Off-Air
D Listing Listing Off-Air Listing D Listing Listing Off-Air Listing
E Listing Listing Listing Off-Air E Listing Listing Listing Off-Air
F Listing Listing Listing Listing F Listing Listing Listing Listing

The Blackout Mask works the same way using the same dayparts. Instead of an off-air message, this block will remove the listing or list Blacked-Out.

Note: Every entry has both a Timeslot Mask and a Blackout Mask. Most 24 hour channels will have all 0xFF for the timeslot mask and all <NUL> for the Blackout Mask.

Flag #2

(Hex character 09 must be changed in a Hex editor only) 0-10, 11-20, 21-30, 31-40, 41-50, 51-60,61-70, 71-80, 81-90, 91-100, 101-110

Color Flags:

flag1 = 0x%02X, flag2 = 0x%04X, BgColor = 0x%02X, FgColor = 0x%02X, BrushId = %s
         ‚                                 ÿ             ÿ              00<nul><nul> 
                                   HEX 03 Yellow    HEX03 Yellow 

HEX 06 Gray HEX anything else is white

Colors are determined in Gradient.ini file - any color listed can be used for background...

Foreground Text is either Yellow (HEX03) or White (any other HEX value)

Flag #3

This flag controls the MR, Grid, and DMPLEX, DNICHE, CF2_DPPV. When a listing is built by default, it will build with a HEX 03, which would turn on MR and Grid. It is still being determined how this information is transmitted, as it is not part of the original C channel lineup serial data.

HEX1 (reserved) (reserved) (reserved) CF2_DPPV HEX2 DMPLEX DNICHE MR Grid
0 0
1 x 1 x
2 x 2 x
3 x x 3 x x
4 x 4 x
5 x x 5 x x
6 x x 6 x x
7 x x x 7 x x x
8 x 8 x
9 x x 9 x x
A x x A x x
B x x x B x x x
C x x C x x
D x x x D x x x
E x x x E x x x
F x x x x F x x x x

1st HEX Char = CF2_DPPV

2nd HEX Char = DMPLEX / DNICHE / MR / Grid

Last Character before the last Source ID- Flag #3

For the Listings Themselves

<NUL> TimeSlot <NUL> Program Flags <NUL> Program Type <NUL> Movie Category <NUL> unknown type <NUL>

TimeSlot - between 0 and 49

Program Flags - in decimal form 0 to 255

Program Type - 1 for Movie, 5 for Sports, 19 for Children, 22 for News, 34 for General, etc. This is in decimal form

Movie Category (1 for Adult, 4-Comedy, 5, 7, 10-Musical 18(SciFi?), etc) This is in decimal form

unknown type: Last number appears to be 0 only, still trying to determine - could be carry over to Win NT Guide