Das ist keine vollständige Dokumenation, eher "strange and amazing facts", Sachen die über die Dokumentation in der c't (11/91, 2/92, 3/92, 7/92, 9/92 u. 10/92) hinausgehen bzw. diese besser darstellen. Quellen: Datenblatt SAA5243 %-) sowie eigene Erfahrung. Programmierung des SAA 5246 =========================== Der SAA 5246 ist registerkompatibel mit seinem Vorgängermodell SAA 5243, abgesehen von den neu hinzugekommenen Registern R11B (Statusregister) und R0 (u. a. Umschaltung R11/R11B). ***R1 Bit 2 (TCS on) sorgt für Synchronisation des RGB-Ausgangssignals mit der Videoquelle, sollte für Fernsehdarstellung also immer gesetzt sein. Anscheinend wird es aber beim Einschalt-Reset gelöscht! ***R2: Bit 4 und 5 wählen eine der vier möglichen Empfangseinheiten aus, Bit 6 bestimmt, ob die angeforderte Seite in die obere oder untere Speicherbank abgelegt wird. Trifft eine Seite ein, nach der mehr als eine Empfangseinheit sucht, so wird die Einheit mit der niedrigsten Nummer diese Seite einlesen, die anderen Einheiten ignorieren sie. ***R3: Das _HOLD-Bit ist die angemessene Methode, die Seitensuche einer einzelnen Empfangseinheit zu stoppen, z. B. um in Ruhe ihren Seitenspeicher über den I²C-Bus auslesen zu können. Die Wirkung tritt unmittelbar nach Beschreiben von R3 mit _HOLD=0 ein, d. h. nicht einmal evtl. ausstehende Folgezeilen einer kurz zuvor empfangenen Kopfzeile werden mehr eingelesen. Der restliche Inhalt der R3-Unterregister ist dabei völlig egal, solange bis eine neue Seitenbeschreibung mit _HOLD=1 vorgenommen wird. Der Vorteil gegenüber der Holzhammermethode "ACQ OFF" liegt darin, daß die übrigen Empfangseinheiten nicht behindert werden, und daß die Uhrzeitanzeige am Fernseher weiterläuft. Der Nachteil ist, daß zum Wiedereinschalten die Seitensuche neu programmiert werden muß, ärgerlich, wenn man eigentlich gar nichts verändern, sondern nur weitere Unterseiten sehen will. ***R4: Die zur Anzeige am Fernseher ausgewählte Seite ist auch die einzige, in der laufend die Uhrzeit aktualisiert wird! ***R5/R6: R5 wird auf gewöhnliche Seiten angewandt, R6 auf Schlagzeilen und Untertitel, wenn sie durch die entsprechenden Steuerbits (C5 bzw. C6) gekennzeichnet sind. Sinn: Schlagzeilen/Untertitel sollen für gewöhnlich mit dem Fernsehbild kombiniert werden (und enthalten zu diesem Zweck Boxen: von doppeltem chr(11) und chr(10) umschlossene Bereiche), normale Seiten nicht. nochmal kurz die Bedeutung der Bits: Bit 0: Fernsehbild dient als Boxhintergrund Bit 1: Fernsehbild dient der restlichen Seite als Hintergrund Bit 2: Boxtext ein Bit 3: restlicher Seitentext ein Bit 4: ( Kontrastreduzierung ) Bit 5: ( = Unfug ) Bit 6: Box ist undurchsichtig Bit 7: restliche Seite ist undurchsichtig Besonderheiten: - Wenn eine Box undurchsichtig ist (Bit 6), ist es egal, ob das Fernsehbild hinter ihr sichtbar ist (Bit 0). Wenn dagegen eine ganze Seite undurchsichtig ist (Bit 7), bestimmt Bit 1, ob der Rahmen schwarz ist, oder ob ringsum noch etwas Fernsehbild sichtbar bleibt. - Es ist nicht sinnvoll, hinter einem durchsichtigen Bereich das Fernsehbild auszuschalten: Durchsichtig bewirkt in diesem Fall, daß alle Hintergrund- farben schwarz erscheinen, sieht bei Grafikseiten ziemlich ätzend aus. - Es ist grober Unfug, hinter einem ausgeschaltetem Textbereich das Fernsehbild auszuschalten: Es entstehen einfach schwarze Flächen. Einige sinnvolle Bitkombinationen: Textdarstellung | R5 | R6 -----------------+-------------+------------- Vollbild | %11001100 | %11001100 nur Kernfläche | %11001111 | %01001111 durchsichtig | %00001111 | %00001111 aus | %00000011 | %00000011 Wobei R5=Vollbild/R6=Kernfläche und R5=Vollbild/R6=Vollbild die üblichsten Anwendungen sein dürften ***R8: Der Löschvorgang, der bei Anwählen einer Seite ausgelöst werden kann, dauert laut Datenblatt bis zu 22 ms. ***R11: Für die Programmierung sind insbesondere die Statusdaten in Zeile 25, Byte 0 bis 9 interessant, Lage der Bits s. Datenblatt. Die Steuerbits werden der Kopfzeile entnommen und sind darum sofort nach Ankündigung der neuen Seite (durch Löschen von PBLF und _FOUND) aktuell, ebenso wie die Seiten- und Unterseitennummer. _FOUND: kann durch einen externen Schreibzugriff gesetzt werden, nützlich. PBLF: wird bei der Programmierung der Seitenanforderung (R2/R3) gesetzt, ebenso bei Aktivierung der Empfangseinheit (durch ACQ ON). Kann wie _FOUND auch "von Hand" gesetzt werden, und ist dazu evtl. sogar geeigneter, da es in einem eigenen Byte steht. C4/C8: Ich habe mal geschaut, wie die beiden Steuerbits in der Praxis auftreten. ARD/ZDF verwendet sie nur zusammen, WDR auch schon mal C4 alleine (bei den Testseiten 195 und 199). Die Bits stehen nur in Seiten, deren Text erneuert werden muß, z. B. in Mehrfachseiten, oder einfach bei aktuellen Änderungen des Seiteninhalts. Daß eine Kopfzeile zweimal hintereinander gesendet wird, wie in der c't 10/92 beschrieben, habe ich allerdings nie festgestellt. C5 ("Schlagzeile"): Für Seiten, die dafür gedacht sind, ins laufende Fernsehbild eingeblendet zu werden, wie 111, 222 und 333. C6 ("Untertitel"): Ähnlich C6, aber Untertitel (wie S. 150) sind doch etwas anders als Schlagzeilen, da sich ihr Inhalt *sehr* oft ändert. C7 ("Kopfzeile unterdrücken"): Macht Sinn bei Schlagzeilen und Untertiteln, wo Uhr und Seitenkontrolle nicht dauernd gebraucht werden und eher stören. Wird von ARD/ZDF aber nicht verwendet. C9 ("Unterbrochene Sequenz"): Normalerweise werden alle Seiten zyklisch in Reihenfolge aufsteigender Seitennummer gesendet, von Seite 100 bis Seite 899. Ausnahmen von dieser Regel werden freundlicherweise durch dieses Bit gekennzeichnet und dienen normalerweise dem Zweck, eine wichtige Seitennummer mehrmals (ca. 3-6mal) im Seitenzyklus unterzubringen. Beispiele sind Untertitel, Schlagzeilen, Inhaltsübersichten oder der Flugplan des Düsseldorfer Flughafens auf WDR-Text. Der Decoder benutzt dieses Bit, damit am Fernseher die oben links durchlaufenden Nummern nicht ganz so verwirrend wirken: nur die Seiten aus aufsteigender Sequenz (C9=0) werden hier angezeigt. C10 ("Unterdrückung der Darstellung"): Für Seiten, deren Darstellung dem Benutzer nicht viel bringen würde (falls er überhaupt mal auf sie stoßen sollte), z. B. die Steuerseiten 879 und 880 im WDR-Text. Leider werden nicht alle Seiten mit Binärdaten auf diese Weise geschützt, z. B. nicht die Seite 689 (codierte Verkehrshinweise). ARD/ZDF verwenden das Bit C10 anscheinend gar nicht. C11 ("Serielle Magazinfolge"): Wenn C11 gesetzt ist, folgen auf eine Kopfzeile nur ihre eigenen Unterzeilen, dann kommt die nächste Kopfzeile, usw. Bei C11=0 können dagegen Zeilen von bis zu 8 Seiten durcheinander ankommen. Das ist möglich, da jede Zeile eine Zeilen- und eine Magazinnummer enthält. C11=1 ist das üblichere Verfahren. TOP-Videotext ============= Ziffern in allen TopText-Seiten sind codiert, um Übertragungsfehler erkennen zu können: TopText-Codierung Hex-Ziffer ----------------- ----------  21 $15 %00010101 0  2 $02 %00000010 1 I 73 $49 %01001001 2 ^ 94 $5E %01011110 3 d 100 $64 %01100100 4 s 115 $73 %01110011 5 8 56 $38 %00111000 6 / 47 $2F %00101111 7 P 80 $50 %01010000 8 G 71 $47 %01000111 9  12 $0C %00001100 A  27 $1B %00011011 B ! 33 $21 %00100001 C 6 54 $36 %00110110 D } 125 $7D %01111101 E j 106 $6A %01101010 F Nunja, eigentlich soll man die Übertragungsfehler sogar korrigieren können, da dies ein Hamming-Code ist. Aber um den richtig auswerten zu können, muß man die Paritätsbit-Prüfung des Decoders ausschalten, damit bit 7 nicht nach Prüfung gelöscht wird. Das hätte ich vielleicht früher wissen müssen. Leitseite --------- Die Pseudo-Seitennummern 1F0 (mit einer originellen Unterseitennummer wie 3F60 o. ä.) ist die Toptext-Leitseite. Sie enthält ab der zweiten Zeile 800 Ziffern, die je einer Seitennummer zugeordnet sind. Bedeutung: 0 1 2 3 4 5 6 7 8 9 A B C D E F * Seite nicht benutzt * Untertitel * * * * * Mehrfachseite * * Programmvorschau * * Blockseite * * Gruppenseite * * * * Normale Seite * * * * * * * * * im Schlagwortkatalog erwähnt Der Rest der Seite enthält Angaben über die übrigen TopText-Seiten, in 8er-Gruppen: 3 Byte Seitennummer, 4 Byte Unterseitennummer, 1 Byte Inhaltsangabe: 1=Unterseitentabelle, 2=Schlagwortkatalog, 3=??? Unterseitenstatus ----------------- Die Seite (meist 1F1) enthält ab der zweiten Zeile 800 Ziffern, die die Anzahl Unterseiten der zugehörigen Seitennummer angeben, A=mehr als 9 Unterseiten. Die 1 kommt nie vor, Einfachseiten sind nämlich (was auch logischer ist) durch 0 gekennzeichnet. Unbenutzte Seitennummern kann man hieraus nicht erkennen, nur aus Seite 1F0! Schlagwortkatalog ----------------- Der Schlagwortkatalog ist meistens auf Seite 1F2/1F3 verteilt, manchen Sendern reicht auch 1F2 alleine, MDR benutzt sogar noch 1F4 als dritte Seite. Jede Zeile ab der zweiten enthält zwei Einträge à 20 Byte: 3 Byte Seitennummer, 4 Byte Unterseitennummer, 1 Byte Kurzwahl (für bis zu 15 mächtig wichtige Seiten), 12 Byte Klartext.