Vortrag über Bildschirmtext auf der Classic Computing 2025

Christian Berger (Casandro) und Hans Hübner (hans) haben auf der Classic Computing 2025 einen Vortrag über Bildschirmtext gehalten.

Neue Version von rpi-dbt03

Die Software von rpi-dbt03 kann jetzt endlich auch direkt in ein Image gepatcht werden, mit Domänennamen umgehen und sogar noch zur Laufzeit über die boot-Partition konfiguriert werden.

Man kann da eine Datei btx_config.txt rein legen, welche dann die Variablen BTX_HOST und BTX_PORT setzen kann.

Rekonstruktion von Teletextseiten von Bändern

Kürzlich habe ich eine Kiste mit alten Compaktkassetten mit BTX-Daten der BTX-Agentur „GG-Design“ bekommen.

Auf github gibt es jetzt auch ein Repository mit den Daten die bislang rekonstruiert wurden. Dort liegt auch eine meta.yml Datei mit Metadaten, aus denen man dann zukünftig neuere Dinge ableiten könnte. Pull-Requests sind willkommen.

Der V23 Tape Decoder

I have written a little software package to decode v23 encoded files. It can be adapted to support parity. It can back-track in case of parity/framing errors.

Another neat feature is the timed octets output which preserves timing information.

https://github.com/Casandro/v23_tape_recovery

Einige Aspekte des BTL Formates

Beim Abgleichen der BTL-Dateien mit der Batch-Download-Spezifikation (FTZ 157 D2 BULK) habe ich festgestellt, dass beide identisch sind.

Es ist wirklich so, dass jeder 2048-Byte Block genau eine Seite enthält. Seitenzahlen werden in einem modifizierten BCD-Format gespeichert. Dabei wird jede Ziffer um eins erhöht. Die Null ist das Endezeichen.

Seiten haben einen Bereich für die „Dekoderinformationen“ und den „Aufbaucode“ auch noch die Daten der ersten und letzten Zeile. Außerdem können auch noch Felder definiert werden, wohl für „Dialogseiten“. Seiten können auch andere Mutterseiten mit einbinden. Die Auswahlmöglichkeiten sind auch in diesen 2048 Bytes enthalten.

Cept to Image

In unserem auf xcept basierenden BTX-Dekoder  haben wir jetzt auch ein Programm welches CEPT-Dateien in Bilder umwandeln kann. Das Programm gibt nur Portable Anymap Bilder aus, welche jedoch einfach in PNG oder andere Formate konvertiert werden kann.

Wie man das ESP32 DBT03 Projekt zum Laufen bekommt

Zunächst benötigt man das ESP-IDF Framework. Wie man das installiert wird hier erklärt: https://docs.espressif.com/projects/esp-idf/en/latest/get-started/linux-setup.html

Es ist wichtig, dass man die Umgebungsvariablen setzt wie in Punkt 4 erklärt.

Ist das Framework installiert so holt man sich den Quellcode von hier: https://github.com/bildschirmtext/esp32_dbt03

Mit make menuconfig kann man die Einstellungen der Umgebung anpassen. Dort ist zum Beispiel unter „Serial flasher config“ der serielle Port auszuwählen. (häufig /dev/ttyUSB0, kann aber auch was anderes sein. Einfach mal ls /dev/ttyUSB* eingeben, mal mit und mal ohne eingesteckten Programmer und sehen welches dazu kommt)

Im Prinzip muss man dann nur noch make ausführen welches am Ende ausgibt welchen Befehl man zum Flashen eingeben soll.

Wenn das Gerät keine WLAN-Verbindung aufbauen kann, wartet es auf die Eingabe von 1. Gibt man das ein, so bekommt man ein Menü in dem man die Einstellungen bezüglich des WLANs und der TCP/IP Verbindung zum Server.

Neues Werkzeug zum Finden von Chunks in BTL-Dateien

Unter https://github.com/bildschirmtext/btl_recovery/tree/master/src/tools gibt es jetzt display_chunks.c und split_chunks.c

display_chunks.c sucht in den Blöcken nach Zeiger-Längen-Tupeln die auf nicht-überlappende Bereiche zeichen und gibt diese, wenn man irgendeinen Parameter mitgibt, auf einer 256-Farbenkonsole bunt markiert aus. Die Position des Zeiger-Längen-Tupel wird oben in der gleichne Farbkombination markiert. So hat man einen guten Eindruck davon welche Elemente die Datei enthält.

split_chunks.c trennt einen Block in seine Chunks auf.

Erste Beobachtungen beim InfoCept03 Dateiformat

Wir haben einige Dateien bekommen welche wohl aus dem Programm BTX-Infotool 3 stammen. Dieses Programm diente wohl zur Erstellung von Bildschirmtextseiten und stammt von einer inzwischen nicht mehr existierenden Firma namens InfoTeSys in Düsseldorf.

Das Dateiformat scheint Blöcke von 2048 Bytes aufzuweisen und jeder dieser Blöcke (bis auf die ersten 3) wird mit 0-Bytes aufgefüllt. Davor befinden sich die CEPT Daten. Allerdings sind diese immer an unterschiedlicher Position innerhalb des Blockes.

Ein einfaches Programm welches versucht den Anfang des CEPT Teils zu erkennen findet sich hier:
https://github.com/bildschirmtext/btl_recovery

Ein exemplarischer Block. Man sieht am Ende das Padding mit 0-Bytes und ab Stelle 0x126 den CEPT Text. Ob der ASCII-Text davor dazu gehört ist noch unklar.