Das Bildschirmtext ("BTX") Open Source Projekt hat zum Ziel, den gleichnamigen Online-Dienst (1983-2001) wieder verfügbar zu machen.
Dieses Repository besteht aus
- Server-Software zum Bereitstellen des BTX-Dienstes für bestehende Terminals
- einer Sammlung an historischen BTX-Seiten, die über den neuen Dienst wieder erlebt werden können
- neuen BTX-Inhalten
- Tools zum Arbeiten mit CEPT-Dateien
Der BTX Server neu-ulm.py
ist in Python 3 geschrieben und hat folgende Features:
- Ausliefern von Seiten
- Navigation
- Eingabe von Daten in Dialoge
- Benutzerverwaltung und Login
- Der Login-Schirm erwartet die Eingabe von Benutzer-Nummer, Mitbenutzer-Nummer und Kennwort.
- Läßt man die Felder leer, wird man als Gast angemeldet.
- Mitteilungsdienst
- Über
*8#
erreicht man den Mitteilungsdienst. *88#
zeigt eingegangene Mitteilungen an.- Über
*810#
kann eine neue Mitteilung verfaßt werden.
- Über
Es wurde Wert darauf gelegt, die Architektur des Servers der Original-Architektur nachzuempfinden. Seiten historischer Dumps wurden in ihre Bestandteile zerlegt (Palette, Include, Text, Header und Footer der Post), und der Server baut diese Komponenten zur Laufzeit zusammen. So werden Paletten und Zeichensätze nur dann gesendet, wenn sie nicht schon in den Decoder geladen sind. Des weiteren werden die 1. und 24. Zeile des Bildschirms wie beim Originalserver verwendet: Anbieter-Name und Preis werden aus den Metadaten gewonnen, Warnungen und Fehler besitzen die spezifizierten Codes, und die Nutzdaten dürfen diese Zeilen nicht beschreiben.
Der Gastbenutzer (Benutzer 0, Mitbenutzer 1) hat ein leeres Paßwort, man kann sich also als Gast einloggen, indem man beim Start 3x "#" drückt (oder einmal DCT). Eigene Benutzer kann man definieren, indem man Dateien in users/
und secrets/
erstellt.
*00#
: Seite nochmals übertragen (bei Übertragungsfehlern)*09#
: Seite nochmals erstellen (oder neu aus der Datenbank laden)*#
: zur vorherigen Seite zurückkehren*Seitennummer#
: Navigation zu einer bestimmten Seite[0-9]
und#
: Navigation zu einer Folgeseite**
: löscht die Eingabe*9#
: meldet den Benutzer ab
neu-ulm.py
kommuniziert über stdin
und stdout
. Über das Tool socat
kann es mit Terminals oder Decoder-Software in Emulatoren verbunden werden.
Es muß sichergestellt werden, daß die Verzeichnisse messages
und stats
für den Server schreibbar sind!
--modem
: wartet vor dem Senden von Daten auf einen "ATD
" Modem-String--user=
n: meldet Benutzer mit der angegebenen Nummer automatisch an (Mitbenutzer ist hier immer 1)--page=
n: zeigt statt der Anmeldeseite die angegebene Seite an
Manche Hardware-Decoder, wie der LOEWE MultiTel-D, erlauben den Anschluß über RS232. (Auf diesem Gerät: F9
, F3
, F1
, Shift-F1
, 9600
, F9
.) Mit socat
kann der Server folgendermaßen mit dem bestehenden seriellen Port verbunden werden:
socat /dev/tty.usbserial-FTXP1ANL,clocal=1,nonblock=1,ispeed=9600,ospeed=9600,raw system:"python3 neu-ulm.py"
Der Pfad zum seriellen Port muß entsprechend angepaßt werden. Die Optionen von socat
beziehen sich auf macOS, auf anderen Betriebssystemen müssen sie eventuell angepaßt werden.
socat -d -d exec:"python3 neu-ulm.py --modem" pty,raw,echo=0
socat
erzeugt einen virtuellen seriellen Port, der mit der Server-Software verbunden ist. Die Ausgabe beinhaltet den Pfad zu diesem Port.
Im DOSBox-Emulator muß dann folgende Zeile in die Konfigurationsdatei eingetragen werden:
serial3=directserial realport:ttys005
Der Pfad zum seriellen Port muß entsprechend angepaßt werden. Wichtig: Auf Unix-Systemen muß der Pfad /dev/
weggelassen werden!
Der Decoder wird bit BTX1
gestartet, die Einwahl erfolgt mit F10.
In der Konfigurationsdatei kann man im Abschnitt [autoexec]
das Starten der Software automatisieren:
mount c: /Pfad/zum/Decoder
c:
btx1
Geschwindigkeitsoptimierung:
- Die Einwahl kann beschleunigt werden, indem man das Modem auf "Schnelles Modem mit V.32" stellt und die drei
AT
-Strings löscht. - Eine schnellere Datenübertragung erhält man, indem in "Option -> Schnittstelle (Alt-S)" die Baudrate auf 9600 gestellt wird.
Um die Einstellungen zu speichern, muß das Programm regulär beendet werden (Alt-Y).
socat
muß wie beim "PC online" Decoder gestartet werden.
Im VICE-C64-Emulator müssen dann folgende Zeilen in die vicerc
-Konfigurationsdatei eingetragen werden:
RsDevice1="/dev/ttys001"
RsDevice1Baud=1200
RsUserDev=0
RsUserEnable=1
RsUserBaud=1200
Der Pfad zum seriellen Port muß entsprechend angepaßt werden.
Dann kann der Decoder (siehe Downloads unten) gestartet werden. Die Einwahl wird mit F7 gestartet. *
befindet sich auf F1 und #
auf F3.
Es sollte möglich sein, auch andere Software-Decoder über einen virtuellen seriellen Port mit der Server-Software zu verbinden. Über Erfahrungsberichte sind wir dankbar.
Mit Hilfe von socat
kann man den Server über das Netzwerk zugänglich
machen:
socat TCP-LISTEN:20000,reuseaddr,fork 'exec:python neu-ulm.py'
Es existieren einige Software-Decoder für unterschiedliche Betriebssysteme:
- MS-DOS
- Windows 3.x
- Mac OS Classic
- Amiga
- C64
Die Sammlung an BTX-Seiten befindet sich im Unterverzeichnis data
. Unterverzeichnisse bezeichnen unterschiedliche BTX-Anbieter. Die meisten Seiten sind dem Dump des Amiga BTX Decoder entnommen und wurden in ihre Bestandteile zerlegt:
a.glob
für die globalen Metadaten des Anbieters.meta
für die Metadaten der Seite (kann beliebige.pal
und.inc
referenzieren).pal
für die Palette.inc
für den Include für Zeichensatz und Bildschirmfarben- und
.cept
für den Seiteninhalt (darf keine Zeichensätze oder Paletten heinhalten)
Der Server verknüpft die unterschiedlichen Dateien wieder und stellt sicher, daß Palette und Include nur wenn notwendig übertragen werden.
Die Startseite des Amiga-BTX-Demos erreicht man mit *200960#
. Über sie sind alle historischen Seiten erreichbar.
Die Tools im tools
Verzeichnis werden mit make
gebaut.
decode_cept
zeigt den Inhalt einer CEPT-Codierten Datei side-by-side sowohl als Hex als auch mit der Beschreibung der Codes an. Hier ein Ausschnitt aus einer Ausgabe:
[...]
1f 2f 44 # parallel limited mode
1f 42 41 # set cursor to line 2, column 1
1b 2b 20 40 # load DRCs into G3
1b 7c # G3 into right charset
[...]
cut_btx
zerlegt die Dateien des Amiga-Dumps in .glob, .meta, .pal, .inc und .cept-Dateien. Da alle Dateien des Amiga-Dumps bereits konveriert sind, und andere Dumps wohl leicht anderen Code der Post benutzen (weil die Dumps aus einer anderen Zeit stammen), muß es erst für andere Dumps angepasst werden.
https://lists.hanse.de/mailman/listinfo/btx
- Bildschirmtrix von Philipp Maier
- Javascript BTX Server von Norbert Kehrer
- Retrotext von Anna Christina Naß
- btx_modem von Christian Berger
Der Code dieses Projektes steht unter der MIT-Lizenz. Maintainer ist Michael Steil, E-Mail: [email protected]