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!