*35C3 Vorspannmusik*
Herald: Wer von euch im Publikum kennt noch den Bildschirmtext? Bitte mal
aufzeigen! Und wer von euch kennt noch den BTX-Hack vom CCC? Sehr schön, wir haben
hier also ein Fachpublikum sitzen für einen Fachvortrag. Und der Vortragende,
das ist Christian Berger. Christian Berger ist Elektroingenieur der
Nachrichtentechnik und das aus Leidenschaft, und seine besondere Vorliebe
gilt antiken Technologien, wie etwa dem Bildschirmtext. Und in diesem Vortrag wird
er euch gleich erklären, wie das ganze damals funktioniert hat, und was für
Aspekte dieser Technologie man vielleicht für einen Webservice wiederverwenden kann.
Einen herzlichen Applaus bitte für Christian Berger.
*Applaus*
Christian: So also guten Morgen erstmal! Der Vortrag ist zugegeben etwas radikaler,
er geht von den Grundlagen aus, getreu dem Motto Refreshing Memories beschreibe ich
hierbei quasi die Dinge, die nicht in den Standarddokumenten drin stehen, so dass
man mal die Grundlagen hat. Ich kann da aber bisher schneller darüber eingehen.
Also erstmal die absoluten Grundlagen. Binäre Daten: man immer zwei Zustände,
1 und 0. Die werden dann irgendwie darstellt. Bei BTX in dem Fall da das
traditionell über ein FSK-Modem geht, wird es über eine Tonhöhe, also über die
Frequenz von dem Ton beschrieben. Und da gibt's zwei Kanäle. Der eine Kanal, der
Forward-Kanal, der hat 1200 Bits pro Sekunde und der Backward-Kanal hat 75 Bits
pro Sekunde. Um da jetzt genau zu sagen, wann gilt der Zustand, verwendet man bei
BTX die asynchrone Datenübertragung, sprich man lässt es quasi immer im
Zustand 1, und wenn man was schicken will, wechselt man in den Zustand 0, und das ist
quasi der Beginn des sog. Startbits, und man weiß dann, wann die nächsten Bits
anfangen und enden. Und somit kann man eben z. B. 8 Bits übertragen bei BTX, und
dann ein Stoppbit übertragen, so dass die Hardware auch noch feststellen kann, ob
nicht vielleicht irgendwie ein Fehler passiert ist, und auch Zeit hat, um es
weiter zu verarbeiten. Damit wir das effizienter schreiben können, tun wir
einfach vier Bits in ein Hexadezimalzeichen. Dass ist auch wichtig, wenn man
die Standards verstehen möchte, da ist es nämlich immer quasi in Vier-Bit-Gruppen
beziehungsweise Hexadezimalzahlen untergliedert, damit man es versteht.
Man möchte jetzt natürlich nicht nur Zahlen oder einzelne Bits übertragen, sondern
Buchstaben oder Texte. Dafür gibt es den ASCII-Code, der hier in den Spalten 2 bis 7
druckbare Zeichen hat, also Buchstaben, Zahlen, Sonderzeichen; und hier in den
ersten beiden Spalten links spezielle Steuerzeichen, die besondere Bedeutung
haben und eben je nach Standard, der dann drüber liegt, unterschiedlich benutzt
werden. Bei BTX wird z. B. schon mal direkt über der Modemschicht eine
Fehlerkorrektur gemacht. Sprich man überträgt die Daten, bzw. man teilt die
Daten in Blöcke ein, setzt dann davor ein STX-Zeichen, dahinter ein ETX-Zeichen, so
dass man weiß, wo der beginnt und endet. Dann überträgt man eine Prüfsumme und das
Terminal bestätigt dass dann. Die Idee dahinter ist: wenn bei der Übertragung ein
Fehler passiert, dann kann das Terminal sagen: NAK, da ist ein Fehler passiert.
Dann kann der Zentralrechner quasi die Daten noch mal schicken. Und somit kriegt
man auch über schlechtere Verbindungen eine fehlerfreie Verbindung. Das ist vor
allen Dingen jetzt auch bei VoIP wichtig, weil da kann es manchmal sein, dass wenn
der Takt vom ATA und der Takt vom Zentralrechner auseinanderdriften, dann
sind irgendwann mal zu wenig oder zu viele Samples drin, und dann muss er entweder
Stille einfügen oder Samples wegwerfen, und das gibt natürlich dann Bitfehler. Und
deswegen ist es heutzutage relativ wichtig dass das drin ist. Zur Not geht es im LAN
auch ohne, aber es ist schon besser mit. Dann die grundlegende Sache: manche kennen
ja vielleicht so Web Services, so traditionelle, bzw. das World Wide Web. Da
ist es so: da wird ein Dokument komplett übertragen und dann durch den Client
dargestellt. Ein Terminal hingegen hat eine ganz andere, hat einen ganz anderen
Gedanken dahinter, man hat quasi ein Dokument, zum Beispiel traditionell ein
Blatt Papier, und man schickt dann Befehle an das Terminal, quasi z. B. das Zeichen
"A", und das Terminal druckt dann auf dieses Dokument ein "A". Dadurch ist es
sehr einfach, Änderungen an dem Dokument durchzuführen. Das ist für Anwendungen
sehr praktisch. Kann man damit sehr leicht machen, während man im Web z. B. die
komplette HTML-Seite nochmal übertragen müsste - nach der reinen Lehre - auch wenn
man jetzt irgendwie nur ein Zeichen ändern wollte. Jetzt wie schaut dieses Dokument
aus? Als man ursprünglich begonnen hat mit der Idee Bildschirmtext zu machen, hat man -
war RAM noch extrem teuer. Deswegen hat man sich überlegt, nimmt man doch 7 Bit
pro Zeichen, das geht dann, da gab's schon entsprechende Chips, die genügend Speicher
hatten. Und man wollte aber trotzdem farbige Grafiken haben, bzw. farbigen
Text. Deswegen hat man sich hierbei überlegt, man sieht hier die Wörter, und
dazwischen sind Steuerzeichen. Jedes Steuerzeichen belegt einen Platz im
Bildschirmspeicher bzw. eine Zeichenposition. Da man de facto eh jetzt
ein Wort vielleicht in einer Farbe haben möchte, oder z. B. ein Wort in doppelter
Höhe oder blinkend machen möchte - Blinken sieht man jetzt natürlich nicht - ist es
keine große Einschränkung und das ist tatsächlich auch das, was im Videotext
auch heute noch verwendet wird. Ursprünglich war auch der Gedanke, dass
man an den schon vorhandenen Videotext- Dekoder im Fernsehgerät quasi noch einen
Mikroprozessor und ein Modem dranhängt, um damit dann Bildschirmtext zu machen, was
natürlich die Kosten und die Verbreitung enorm beflügelt hätte. Minitel macht es
meines Wissens nach auch so, also mit dem einfacheren Verfahren. Aber man hat
festgestellt, also gut, bei Videotext muss man quasi immer die komplette Seite
übertragen. Das ist natürlich jetzt, wenn man nur 1200 Bits pro Sekunde hat, eine
relativ mühselige Sache. Deswegen gibt's Cursor-Steuerzeichen. Es gibt da immer
einen gedachten Cursor. den kann man bewegen, in dem Fall nach links, rechts,
oben, unten. Man kann die Bildschirm komplett löschen. Man kann ganz nach links
gehen auf der Zeile und man kann zu einer bestimmten Position gehen. Damit kann man
sehr effizient dann eben bestimmte Bereiche vom Bildschirm aktualisieren,
ohne den Rest zu ändern. Aber jetzt kamen plötzlich die 80er Jahre auf.
Arbeitsspeicher war relativ, er ist billiger geworden und es war absehbar,
dass Arbeitsspeicher billiger wird, das heißt man hat sich dann leisten können
nicht nur 7 Bit pro Zeichen zu verwenden, sondern 32 Bit. Damit kann man
dann für jedes Zeichen einzeln die Farbe bestimmen, auch die Hintergrundfarbe. Man
kann benutzerdefinierte Zeichen machen, also extra nochmal Zeichen, die man
beliebig definieren kann, um Grafiken zu machen. Man kann auch die Größe
einstellen. Dann kam auch die Laser Disk auf, so als ewig futuristisches Medium.
Man dachte sich damals, das man vielleicht einen Laser-Disk-Player an den
Bildschirmtextdecoder anschließt, und wenn man dann im Versand, also im $versandhaus
bestellt, kriegt man anstelle vom Katalog eine Laser Disk, die legt man ein. Man
wählt sich dann in BTX ein und sieht dann quasi die Preise und die
Produktbeschreibungen, die kommen über die Telefonleitung, aber die Bilder im
Hintergrund kommen quasi von der Laser Disc. Oder die nächste Stufe dann wenn der
Glasfaserausbau Mitte der 90er Jahre fertig ist...
*Gelächter* *Applaus*
Ja, damals war man noch optimistisch und
damals gab es auch noch keinen Schwarz-Schilling. Damals, also,
dann war eben auch der Gedanke, dass man vielleicht
sogar komplette Hintergrund-Videos überträgt. Weil es war damals schon dafür
ausgelegt, dass man Video überträgt mit 280 Megabit downstream, 140 Megabit
upstream, und da kann man natürlich ein Videosignal einfach übertragen, das dann
von der Zentrale kommt. Deswegen wollte man da mehr machen, und hat da auch
ziemlich viel dann reingestopft und auch ziemlich viel in die Standards gemacht.
Man möchte da jetzt mehr Zeichen darstellen, man möchte nicht bloß einen
deutschen Zeichensatz haben, oder einen amerikanischen, sondern man möchte
eigentlich Texte in allen europäischen Sprachen darstellen können.
An chinesischer oder sowas hat damals noch niemand gedacht. Deswegen möchte man mehr
als die 96 Zeichen vom ASCII-Code darstellen. Deswegen hat man sich
überlegt, den Zeichenvorrat von 256 Zeichen, das sind ja 96 beim ASCII-Code
als druckbare Zeichen definiert, dass man nochmal ein gleiches Fenster daneben
macht, quasi mit dem höchstwertigen Bit gesetzt. Somit hat man zwei Fenster, in
denen Zeichensätze quasi einblenden konnte. Sprich man sagt dann z. B.
Single Shift 2, dann wird hierbei das nächste Zeichen aus dem Zeichensatz G2
gewählt. Wenn ich jetzt also ein "$" haben möchte, schicke ich Single Shift 2
und den entsprechenden Code für das Dollarzeichen dann. Weiß ich jetzt nicht
auswendig, aber es müsste eine Ziffer sein. Und da gibt es auch die Möglichkeit
das als Locking Shift zu machen, dann bleibt es an der Stelle drin, oder nur als
Single Shift. Und diese Zeichen hier, die so grau hinterlegt ist - ich weiß nicht,
sieht man das? Nö, das sieht man ganz leicht - auf jeden Fall von - bis hier,
das ist das letzte - die sind quasi Akzente. Man hat damals gesagt, Single
Shift G2, dann das Zeichen und dann "A", da er ein "Ä" gedruckt, z. B. Damit kann
man eben sich viel sparen, muss nicht so viel Zeichencodes machen, und vor allen
Dingen, wenn ein Terminal jetzt kein "Ä" kann, dann kann es immer noch "A" drucken,
und das ist lesbar. Es so weit ist es eigentlich noch ziemlich so, wie auch die
üblichen VT100-Terminals, die auf unseren Rechnern als Emulation heute noch laufen.
Aber wie macht man jetzt da Bild und Ton? Man hat sich damals auch schon überlegt,
vielleicht direkt über den digitalen Kanal Bild und Ton zu machen, deswegen hat man
sich überlegt dass man dann noch mal ein gedachtes Protokoll darüber schickt.
Sprich man hat hierbei das Zeichen 1F, Unit Separator, und hier unten ist das was
wir vorher schon gesehen haben, quasi der Sprung des Cursors zu einer bestimmten
Position und das alles hier oben sind im Prinzip ungültige Positionen. Das heißt,
ein sorgfältig produzierter Decoder würde sich dann quasi da abschalten und dann
erst wieder sich einschalten wenn er wieder irgendwo in den Bildbereich
springt. Was man darüber aber machen kann sind Zusatzfunktionen. Zum Beispiel also -
es gibt hierbei die Möglichkeit - ich weiß nicht, ob das irgend jemand benutzt hat -
dass das Terminal sich selbst meldet bzw. das man anfragen kann, was denn das
Terminal kann. Es gibt da die User Defined Characters, die im Bildschirmtext intensiv
genutzt wurden. Damit kann man dann Grafiken machen. Die Zeichen sind
standardmäßig in zwölf mal zehn Pixel, was auf Heimcomputern ein bißchen ein Problem
war. Also auf dem C64 hat man dass nicht gut darstellen können. Man hat aber auch
niedrigere Auflösungen nehmen können, um mehr Farben - da gab es alle Spielarten.
Man hat die Palette neu definieren können: man hatte quasi 4x8 Farben zur Verfügung
und die konnte man beliebig auswählen aus einer Palette von 4096 Farben. Also
richtig schöne Farbgrafiken damit machen. Man kann hier mit Define Format kann man -
bin ich mir jetzt gerade nicht sicher - aber Timing Control, damit kann man Delays
machen, weil wenn man jetzt eine schnellere Verbindung hat, z. B. ISDN,
dann möchte man eventuell beim Bildaufbau mal kurz warten und anhalten und dann
weiter machen. Man kann auch die Bildschirmgröße sogar einstellen, das ist
tatsächlich im Standard vorgesehen, im Prinzip beliebig groß. Man würde dann halt
hierbei anstelle von einem Zeichen mehrere Zeichen hernehmen, wenn die Bildgröße
jetzt größer ist als hier quasi vorgesehen ist. Ich glaub, das Limit ist irgendwo -
das sind normalerweise alphabetische Zeichen hier. Und hier sind die Features,
die in Deutschland nicht eingesetzt worden sind. Also das ist Geometriedaten,
Vektorgrafiken in 2D und 3D. Das österreichische System MUPID hat 2D-Grafik
unterstützt, 3D weiß ich nicht ob es irgendjemand unterstützt hat. Und hier
Photographic Pixel und Table Data, das ist quasi so eine Art Proto-JPEG, mit dem man
dann Hintergrundgrafiken darstellen kann. Die Idee dahinter war man hat quasi
mehrere Ebenen - mehrere Bildebenen hintereinander und immer wenn die
vorherige transparent ist, wird die dahinterliegende angezeigt. Und es gab
auch - wobei das ich glaub nicht ganz definiert war - die Möglichkeit Sound zu
übertragen in so 80er-Jahre Codecs, die dann so 720 Kilobit pro Sekunde gebraucht
haben für gute Qualität - in Mono, mit denen man heute auch im Prinzip dann OPUS
machen könnte, wenn man neue Standards machen würde. Telesoftware und
Transparente Daten ist mehr oder weniger selbst erklärend. Hier sind die Standards,
wo die ganzen Details definiert sind. Es gibt hier auch schöne Bücher dazu. Das
Buch hier z. B. hat die Codesequenzen drin. Und hier sind auch noch zwei
Websites. Und ich möchte noch Philipp Maier und Michael Steil noch danken dafür
dass - die haben quasi die Software geschrieben, die über der Link-Layer-
Schicht läuft auf den Terminals beim Vintage Computing drüben.
Und hier sind noch meine Kontaktdaten.
Herald: Ja vielen herzlichen Dank, einen großartigen Applaus würde ich sagen!
*Applaus*
Herald: Da wir eben schon herausgefunden haben, dass wir hier ein Fachpublikum vor
uns sitzen haben, würde ich gerne darum bitten, Fragen zu stellen. Wir haben jetzt
noch 3, 4 Minuten Zeit für Fragen. Das heißt, der eine oder andere kann jetzt das
loswerden, was er immer schon mal fragen wollte.
Frage: In der Ankündigung hast du geschrieben, dass du planst, das irgendwie
jetzt wieder aufzubauen. BTX ist ja tot, die Serverhardware ist wahrscheinlich
komplett verschrottet worden, da gibt es nichts mehr, aber man könnte quasi die
Servertechnik emulieren, neu bauen. Christian: Genau! Natürlich, wir haben
tatsächlich auch im Vintage Computing die Servertechnik emuliert. Was auch noch der
Gedanke ist: die Clients werden jetzt auch immer älter und immer kaputter. Man kann
natürlich so was auch wunderbar in ein Badge bringen, und dann hat man den
Vorteil, man muss nicht mehr irgendwie die Entwicklungsumgebung der Badge haben,
sondern man kann einfach den kleinen Serverdienst starten irgendwo auf einem
Raspberry Pi, der irgendwo rum steht, und dann mit einer kleinen Zehnertastatur,
weil mehr braucht man für BTX für die Bedienung nicht, dann Dienste nutzen, dass
wir darüber quasi dann interaktive Dienste haben kann, ohne dass man gleich eben sich
einarbeiten muss in die Badge.
Frage: Du hattest gesagt dass es Pläne gab
für Hintergrundbilder von Laser Disc, gab es denn da überhaupt schon - oder oder
über Glasfaser - gab es denn da überhaupt schon entsprechende Dateiformate? Also
Laser - also für Bilder weiß es nicht, bei Videos war es ja so, Laser Disk ist ja ein
analoges Videoverfahren... Christian: genau
Frage: ... wie wäre das mit Video, mit Bildern gewesen?
Christian: Also es gab - mit Laser Disk hätte man einfach ein Standbild genommen,
das kann Laser Disc, und bei - also in Singapur soll angeblich der Datenkanal von
der Zentrale über Funk gegangen sein und da war das dann quasi so ein JPEG-Format,
das ist im Standard definiert, das ist ungefähr JPEG.
Herald: Und damit sind wir am Ende von diesem Talk! Vielen Dank für eure
Aufmerksamkeit, für eure Fragen und dir Christian ganz herzlichen Dank für diesen
super Vortrag! Einen herzlichen Applaus noch mal!
*Applaus*
*Abspannmusik*
Untertitel erstellt von c3subtitles.de im Jahr 2019. Mach mit und hilf uns!