Skip to content

Page files

ZXGuesser edited this page Jul 24, 2023 · 8 revisions

VBIT2 reads its page data from .tti files. TTI is the MRG Systems Teletext Page Format. VBIT2's implementation supports a number of non standard extensions.

TTI is a text based format where each line has a two character command code followed by a variable number of comma delimited arguments followed by a carriage return line feed (CRLF line endings).

VBIT2 interprets the following standard commands:

  • PN – Page Number.
    Takes a single 5 digit number in the form mppss, where m is the magazine number [1-8], pp is the hexadecimal page number [00-FF], and ss is a decimal subpage number.
    If multiple PN lines are encountered, the file is considered to be a carousel and subpages are created for subsequent lines.
    If no PN line is present the page number defaults to 1FF.

  • CT – Cycle Time.
    Takes two arguments. The first argument is the carousel cycle in magazine cycles or seconds. The second argument is C for cycled or T for timed.
    In cycle mode the carousel is advanced after n loops of the magazine cycle. In timed mode the cycle time is a best-effort minimum cycle time unless out of sequence updates are enabled in the Page Status.
    If no CT line is present the cycle time defaults to 1 magazine cycle.

  • PS – Page Status.
    Takes a single 4 digit hexadecimal value which define the state of teletext control bits (ETS 300 706 §9.3.1.3) and transmit flag for the page:

    Bit Meaning
    0 Newsflash (C5)
    1 Subtitle (C6)
    2 Supress Header (C7)
    3 Update (C8)
    4 Interrupted Sequence (C9)
    5 Inhibit Display (C10)
    6 Serial Magazine (C11)
    7-9 National Option Character Subset (C12-C14)
    10-13 Ignored
    14 Erase Page (C4)
    15 Transmit Page

    Pages are only transmitted when the transmit page bit is set.
    If the Update bit is set the page will be transmitted with the C8 Update bit set once, and cleared on subsequent transmissions until the page is re-loaded. The C4 Erase bit is also set to clear old rows in row adaptive transmission.
    If the C9 Interrupted Sequence flag is set on a carousel page it is transmitted immediately when the cycle timer expires.
    If no PS line is present the page status defaults to 0000.

  • SC – Subcode.
    Takes a single 4 digit hexadecimal subpage number per ETS 300 706 §9.3.1.2. Bits 7, 14, and 15 are reserved.
    For carousel pages this value is ignored and the subpages are renumbered per ETS 300 706 Annex A.1.
    For single pages the subcode is used as-is, to permit the use of time coded pages per ETS 300 706 Annex E.2.
    If no SC line is present the subcode of a single page defaults to 0000.

  • OL – Output Line.
    Takes two arguments. The first argument is a teletext row number. The second argument is 40 teletext characters.
    VBIT2 accepts row numbers from 1 to 29. Teletext control codes (characters $00-$1F) can be encoded in an 8-bit translation by setting bit 7, or a 7-bit translation using viewdata style escapes. i.e. the character $1B followed by the control code with bit 6 set.
    Rows greater than 25 use a non-standard encoding scheme.
    If no OL line is present for a given teletext row in the range 1-25 it is assumed to be all spaces.

  • FL – Fastext Link.
    Takes six arguments. Each argument is a three digit page number in the form mpp corresponding to a FLOF linked page per ETS 300 706 Annex H.
    All links are generated with subcode 3F7F. Unused links may be coded 0 or 8FF.
    If no FL line is present, or all links are 8FF, no packet is generated.

VBIT2 also interprets the following non-standard commands:

  • RE – Region.
    Takes a single hexadecimal digit which defines bits 3-6 of the Default G0 and G2 Character Set per ETS 300 706 §15.2.
    If no RE line is present the page defaults to region 0.

  • PF– Page Function and Coding.
    Takes two arguments. The first argument is a hexadecimal digit in the range $0-$B which defines the page function. The second argument is a hexadecimal digit in the range $0-$3 which defines the page coding. These correspond to the values defined in ETS 300 706 §9.4.2.1.
    If no PF line is present the page defaults to Basic Level 1 Teletext (LOP), coded 7-bit data with odd parity.

VBIT2 supports special encoding for non-text rows.

  • For OL lines with row number 26, 28, or 29, the second argument is interpreted as an enhancement packet.
    The low 4 bits of the first character is the packet designation code [$0-$F], the remaining characters encode 13 groups of 18-bit triplet values in the lower 6 bits of three characters. Bit 6 of each character is set, i.e. all characters are in the range $40-$7F.
    This is the enhancement packet data before hamming encoding, which is performed internally by VBIT2.
    Each of these row number may have up to 16 OL lines with unique designation codes.

  • If an OL line for row 28 with designation code 0, 2, 3, or 4 is encountered, VBIT2 will set the page function and coding of the page based on the packet content.
    This overrides the values set by an earlier PF line.

  • OL lines with row number 27 are interpreted as linking packets.
    The low 4 bits of the first character is the packet designation code [$0-$F].
    If the designation code is in the range $0-$3 the remainder of the row encodes 39 nibbles in the low 4 bits. Bit 6 of each character is set, i.e. all characters are in the range $40-$4F. The transmitted CRC word in X/27/0 is generated automatically.
    If the designation code is in the range $4-$F the remainder of the row encodes 13 groups of 18-bit triplet values in the lower 6 bits of three characters. Bit 6 of each character is set, i.e. all characters are in the range $40-$7F.
    If both an FL line and an OL line with row 27 and designation code 0 are present, the FL row is transmitted first.

  • If the page coding is set to $0 (7-bit odd parity), VBIT2 transmits packets X/26/0-X/26/15 followed by packets X/1-X/25. Otherwise packets X/1-X/26/15 are transmitted in order.

  • Page coding $1 (8-bit data) is not currently supported from page files.

  • If the page coding is set to $2, VBIT2 interprets packet X/1-X/25 content using the same encoding as packets X/26.
    Only one OL line of each row number is permitted. i.e. the first character does not act as a designation code.

  • If the page coding is set to $3, VBIT2 interprets packet X/1-X/25 content as 40 nibbles using the same encoding as packets X/27/0-X/27/3. Only one OL line of each row number is permitted. i.e. the first character does not act as a designation code.

  • VBIT2 checks any page with a page number in the form mFF for magazine specific settings.
    An OL line with row number 0 can be used to set a custom header, using the same template substitutions as the header_template in vbit.conf.
    OL lines with the row number 29 are Magazine-Related Page Enhancement Data packets and are not transmitted as part of a page.
    Lines with designation code $0, $1, and $4 are imported into the system, any other lines are ignored.

VBIT2 treats some pages as special pages based on the page function in either a PF line or X/28 packet, and transmits them out of the normal page sequence.
Special pages are any of the following:

Function Description
$2 Global Object definition page (GPOP)
$3 Normal Object definition page (POP)
$4 Global DRCS downloading page (GDRCS)
$5 Normal DRCS downloading page (DRCS)
$6 Magazine Organization table (MOT)
$7 Magazine Inventory page (MIP)

Basic Level 1 Teletext pages and TOP navigation tables are transmitted in the normal page sequence, in page number order.