Dokumente des ‚Brother Textsystem WP-1‘ am PC einlesen

In den 1980er Jahren kamen viele neue Computer auf den Markt – neben den Homecomputern von Commodore, Sinclair Spectrum, Atari, Schneider, MSX, Apple, IBM – und ich habe bestimmt noch ein paar vergessen…
Durch die neuen Möglichkeiten der Mikroprozessoren wurden auch mechanischen Geräte wie die Schreibmaschine modernisiert – Textverarbeitung. Die Datenträger wurden auch handlicher und robuster – wobei die Nutzung des Magnetismus immer ein Risiko für die Disketten war und noch ist. Die Daten wurden ähnlich wie beim Tonband oder der Kassette auf die Disketten geschrieben.
Das Format, wie die Diskette in Blöcken, Sektoren, Tracks und Seiten eingeteilt („formatiert“) wurde, ist von einem Hersteller zum anderen verschieden. So passen 3,5-Zoll-Disketten zwar auch in ein Laufwerk eines älteren PCs, aber das Betriebssystem kann die Diskette trotzdem nicht auslesen. Sind die Daten verloren?

Brother WP-1 Textsystem

Das Textsystem von Brother, der WP-1 (wordprocessor), ist eine Schreibmaschine mit einem auswechselbaren Typenrad. Das Typenrad hat z.B. 97 Zeichen (Letter Gothic 12; siehe weiter unten im Text), die für den Druck durch Drehung nacheinander in die Schlagposition des Hammers gebracht werden, der dann zusammen mit dem Farbband das Zeichen ins Papier schlägt. Wie schon mit einer mechanischen Schreibmaschine kann der Benutzer durch Kombination, also das Überdrucken mehrerer Zeichen, weit mehr als die 97 Zeichen des Typenrades aufs Papier bringen. Beispielsweise kann durch das Drucken eines O, dann einen Schritt zurück und darüber das Drucken eines / in dieser Kombination ein Ø (Durchmesser-Zeichen) geschaffen werden.
Der WP-1 kann nicht nur als Schreibmaschine genutzt werden (also wenn ich eine Taste tippe, wird das Zeichen sofort gedruckt), sondern auch als Textverarbeitungssystem, des er hat auch einen Bildschirm, auf dem der Text vor dem Druck fast beliebig editiert werden kann. Das so vorbereitete Dokument kann auf Knopfdruck mehrfach ausgedruckt werden – und auf dem Diskettenlaufwerk für einen späteren Zeitpunkt auf Diskette gespeichert werden.
Auf diesem System wurden so im Laufe der Jahre – und bei manchen Nutzern auch heute noch – Tausende Disketten beschrieben.

Der WP-1 speichert seine Dokumente auf 3,5-Zoll-Disketten. Es können hierbei jedoch nur D- oder DD-Disketten verwendet werden, HD-Disketten kann das Laufwerk nicht verwenden. Es können bis zu 64 Dokumente auf der Diskette gespeichert werden, jedoch insgesamt nur 120kB. Diese Disketten können mit Windows nicht gelesen werden, auch damals zu MS-DOS-Zeiten konnten die Disketten am PC nicht gelesen werden. Spätere Modelle von Brother verwendeten zur Kompatibilität auch DOS-lesbare Disketten, nicht aber der WP-1. Und jetzt? Dokumente verloren?

Die Überlegung liegt nahe, irgendwas mit dem Diskettenlaufwerk zu machen, daß man die Daten doch in den PC hinein bekommt.
Hier setzt das Projekt KryoFlux an: Disketten lesen, die nicht für den PC erstellt wurden.
In einem ähnlichen neueren und kostengünstigerem Projekt, FluxEngine, wird aktuell auf das Ziel hingearbeitet, alle Diskettenformate am PC einlesen zu können – mir reicht schon das Lesen der WP-1-Disketten.

FluxEngine in der Schachtel

David Given hat die FluxEngine ins Leben gerufen. In seinem Projekt beschreibt er auf seiner Webseite seine Fortschritte und stellt den Sourcecode und Firmware in Github zum Nachbauen bereit. Ich bin ein Laie mit dem Lötkolben, habe es aber auch hinbekommen. Ein altes Diskettenlaufwerk hatte ich schon, den Adapter habe ich mir wie beschrieben zusammengebaut und es hat auf Anhieb funktioniert (nachdem ich gelernt habe, wie man das alles compiliert) – ich kann jetzt WP-1-Disketten ins aktuelle Windows einlesen!

David’s Software generiert beim Auslesen der Disketten ein Image. DOS-Disketten-Images kann ich dann mit 7-zip öffnen und die Dateien daraus entpacken. Die WP-1-Disketten-Images jedoch funktionieren anders. David hat ein Tool geschrieben, das die Dokumente aus dem Image herauskopiert. Wer jetzt hofft, diese Dokumente am PC gleich weiterverarbeiten zu können, wird enttäuscht.

WP-1-Dokumente orientieren sich nicht an dem gewohnten Zeichensatz, den wir am PC verwenden. Die Dokumente enthalten viele Steuerzeichen für die Seitenaufteilung, Tabulatoren, Textweite, Sonderzeichen, …

Brother kündigte damals an, es werde ein Konverter kommen, der die Texte für den PC lesbar machen wird. Der Konverter kam jedoch nie auf den Markt.

Ansicht des Konverters

Heute versuche ich mich daran, den Konverter zu realisieren und es sieht bis jetzt schon gut aus!

Ich verwende einen original WP-1, gebe dort Testtexte ein, speichere sie auf der Diskette, die ich dann mit der FluxEngine auf den PC übertrage. Zusammen mit dem Hexeditor und der Originalansicht auf dem WP-1 erkenne ich, welche Zeichen der PC für die WP-1-Zeichen darstellt. Daraufhin passe ich den Konverter an. Beispielsweise schreibe ich ein „-“ am WP-1 und sehe am PC für dieses Zeichen ein „ö“. Also weise ich den Konverter an, wenn ein „ö“ im Text kommt, an dieser Stelle ein „-“ zu schreiben. Schwierig sind die Kombinationen mit „Tot-Zeichen“ ´`^ und ~° – mit diesen Zeichen können internationale Zeichen gedruckt werden wie é, è, ê und dann nochmal in Großbuchstaben – in 3 Schrifttabellen und dann noch fett und unterstrichen… Für alles sind Codes in dem Dokument gespeichert, sie folgen aber einer Logik und sind nicht verschlüsselt, das macht es relativ einfach. Mit dem Handbuch zum WP-1 entdecke ich weitere Funktionen, die ich in Testtexten dann ausprobiere und analysiere.

Sobald ich die Texte aus meiner Sicht vollständig konvertieren kann, stelle ich eine Beta zum Download bereit und würde mich über Feedback freuen, wenn deine Texte noch nicht ganz korrekt wiedergegeben würden. Die Dokumente können dann auch vom Konverter aus gedruckt bzw. als RTF (Richtextformat) gespeichert werden.


Update 28.04.19

Ich habe schon fast alle Zeichen entschlüsselt (bei den grauen Flächen fehlt es noch, vielleicht sind diese Codes auch unbelegt?!) und erweitere mein Tool um die Funktion, das vom FluxEngine erzeugte Disketten-Image direkt einzulesen, so dass die Dokumente darauf nicht extra ausgepackt werden müssen.

Codetabelle (Charmap) WP-1

Update 05.05.19

Kurz nach dem Hochladen der Codetabelle habe ich bemerkt, daß das Steuerzeichen für „sub script“ nicht $FC ist sondern $FD. Fallen mir noch andere Dinge auf, werde ich eine neue Grafik hochladen.

Das Typenrad

Heute habe ich mir das Typenrad „German 08“ (Letter Gothic 12) angesehen. Im Zentrum ist ein Loch und am Ring dort herum ist ein kleiner gefederter Metallstift, an dem der WP-1 im Druckkopf das Typenrad dreht. Ausgehend von diesem Stift im Uhrzeigersinn gedreht, beginnt das Rad mit dem Stempel des Punktes
.ersaioctmlhpnbfgukvdyzqxjw/%1324567809$öüä#³Ö²µß´§!Ü`Ä°R'Q_OJG?D"C-FE=BV&YATLSPZ*X+K(H)UIN;W:M,

Ich habe auch ein Typenrad „International“ (Prestige 1012):
.ersaioctmlhpnbfgukvdyzqxjw/%1324567809$¥#¿ç¡£|¨ß´ñ!Ñ`‗^R'Q_OJG?D"C-FE=BV&YATLSPZ*X+K(H)UIN;W:M,
Das ist fast gleich zum deutschen Typenrad, es gibt hier nur eine Änderung in dem rot markierten Bereich.
Wer also viele Briefe für das Ausland schrieb, konnte mit diesem Rad und durch Verwendung des Umlautzeichens ¨ durch Überdrucken auch die äöüÄÖÜ erzeugen.

Ein Symbol-Typenrad habe ich leider nicht…

Interessant ist also, daß das Typenrad nicht alphabetisch sortiert ist, sondern die Zeichen scheinbar wild durcheinander gewürfelt sind. Dies ist jedoch nicht unlogisch angeordnet, denn ausgehend von der Mittelposition werden die am häufigsten genutzten Zeichen in der unmittelbaren Nähe angeordnet (die oben notierte Zeichenfolge gehört zu einem deutschen Typenrad). Dadurch kann der WP-1 sehr schnell drucken, weil nur sehr kleine Drehwinkel bzw. wenige Schrittmotor-Schritte bis zum nötigen Zeichen sind.

Woher nun aber die Schreibmaschine weiß, welche Reihenfolge das Typenrad hat, ist ein Geheimnis in der Firmware…

Wenn ich nun die Zeichen des Typenrads mit der Codetabelle vergleiche… – verwende ich also in meinem Dokument Sonderzeichen, kann ich das zwar einfach am Bildschirm editieren. Aber der Ausdruck dauert dann länger, weil ich immer wieder die Typenräder austauschen muss.

Steuerbefehle im Dokument

Wie wir in der Codetabelle sehen können, gibt es im Bereich $01 bis $0F und $F1 bis $FF Steuerzeichen.
Der Aufbau der WP-1-Dokumente sind dem von Richtext recht ähnlich, wobei die Richtext-Steuerbefehle ausgeschrieben werden, jedoch im WP-1-Dokument aber nur mit Bytes codiert sind.

Betrachten wir die Dokumentendatei im Hexeditor, finden wir sowohl einzelne Bytes als auch Byte-Sequenzen im Text. Hier nun Forschungsergebnisse:

$02

Das Byte zeigt ein Ende des Absatzes an. Das nächste Byte ist entweder $0F, das einen neuen Absatz mit den zuvor verwendeten Einstellungen beginnt oder $F1, das ein Startcode für neue eine Einstellung für den kommenden Absatz ist.

$0B

Zeilensteuerung – Das nächste Zeichen gibt entweder die Zahl von Leerzeichen vom Linken Rand an (Einrückung), oder bei $0F ein Zeilenumbruch (innerhalb des Absatzes), oder $FF (Dokument-Ende).

$F1

Neue Einstellungen für den kommenden Absatz. Die Bytesequenz hat gewöhnlich 7 Bytes, nach dem 7. Byte folgt entweder $F2, was das Ende der Sequenz kennzeichnet, oder Words (Zahlentyp, der 2 Bytes groß ist für Werte 0..65535), die Tabulator-Positionen vom linken Rand definieren (in twips). Ein Twip ist der 1440. Teil eines Zolls.

Die Bedeutung der 7 Bytes ist:

  • Byte 1+2 (Word 1): Abstand des linken Rands in twips
  • Byte 3+4 (Word 2): Abstand des rechten Rands in twips (von links aus gezählt, daher ist der Wert immer größer als der Wert von Word 1)
  • Byte 5: Pitch (Zeichensatzbreite) – dieser Wert steht für folgende Fontbreite in Punkt (pt).
    • $18 = 10pt
    • $14 = 12pt
    • $10 = 15pt
  • Byte 6: Zeilenabstand
    • $01 = 1,0
    • $02 = 2,0
    • $03 = 1,5
  • Byte 7: unbekannt – ist bei meinen Dokumenten bisher immer $00 gewesen.
$01

Dieses Steuerzeichen findet sich in Absätzen, in denen Tabulatoren definiert wurden und positioniert somit den danach folgenden Text an die jeweils nächste Tabulator-Position.

$06 – KB I
$07 – KB II
$08 – KB III

Werden in einem Absatz die Zeichensätze gemischt, also „KB I“-Text mit Symbolen aus „KB II“ (internationales Typenrad) oder „KB III“ (Symbol-Typen), so finden wir diese Steuercodes mitten im Text, wenn es eine Zeichensatzänderung gibt. Ist dann ein Absatz-Wechsel während dem „KB II“-Modus, wird die Wechselsequenz $020F mit einem $06 eingeleitet (also ist ein Absatzwechsel in der Logik des WP-1 nur im „KB I“-Modus vorgesehen).

$09 – zentrieren
$0A – rechtsbündig

Die Ausrichtung des Textes ist standardmäßig links.
Soll Text zentriert oder rechtsbündig sein, tauchen diese Steuerzeichen auf und gelten jeweils nur bis zum Absatz-Ende (Wagenrücklauftaste).

$0C

Dies ist ein Stopp-Code. An dieser Stelle hält der WP-1 den Ausdruck an, so daß der Anwender zB ein anderes Typenrad einsetzen kann, oder was am Papier verändern oder …

$0E

Neue Seite beginnen.

$0D

Dieses Steuerzeichen kennzeichnet das Ende einer TOT-Kombination, also Zeichen, die übereinander gedruckt werden. Dies ist nützlich mit einem zB deutschen Typenrad und ich benötige jetzt aber ein französisches É – ich finde dann im Text eine Sequenz die mit dem TOT-Zeichen beginnt (hier dem ´ ) und das folgende Zeichen damit kombiniert (hier das E). Das $0D schließt diese Sequenz und druckt dann die Kombination aus.

  • $8B – TOT-Zeichen ^
  • $8C – TOT-Zeichen .. (Umlautpunkte über dem Buchstaben, zB die „Tüttelchen“ über dem U -> Ü )
  • $8D – TOT-Zeichen ` (also vergrößert das Hochkomma in diese Richtung: \ )
  • $8E – TOT-Zeichen ´ (also vergrößert das Hochkomma in diese Richtung: / )
$F5

Für das Überdrucken von Zeichen, zB für einen Durchmesser bestehend aus O und / muss ein Rückschritt des Druckkopfes ausgeführt werden, An dieser Stelle finden wir im Dokument dann das $F5

$F7 – Fettdruck
$F9 – Unterstreichen

Der Text kann durch automatische Rückschritte und leicht versetztes Überdrucken Fett gedruckt werden bzw. Einen Strich unter ein Zeichen bekommen – also unterstrichen. Auch die Kombination beider Styles sind möglich. Die nötigen Rückschritte führt der WP-1 dabei ohne weitere Steuerzeichen im Text aus.

Wo endet der Style?

Für $F7 endet der Fettdruck mit dem Steuerzeichen $F8.
Für $F9 endet der Unterstreichdruck mit dem Code $FA.

$FB – Hochgestellt
$FD – Tiefgestellt

Text kann auch hoch- und tiefgestellt gedruckt werden. Die 2 für Quadratmeter (m2) kann für Unwissende hochgestellt gedruckt werden – Wissende nutzen das auf dem Typenrad vorhandene ²
Für chemische Formeln oder Indizes können Zeichen auch tiefgestellt werden, zB für H2O.

Dabei wird die Stellung für jeweils genau 1 Zeichen verwendet – das direkt auf das Steuerzeichen folgende Zeichen.

$FF

Dokument ist zu Ende.
Durch Änderungen im Text kann das Textende sich im Sektor verschieben und auch kürzer werden, sodaß der Rest des Diskettensektors nur Müll enthält, denn alles, was nach dem $FF kommt, wird nicht mehr verarbeitet.


27.05.19 – Alpha-Version jetzt verfügbar – Details

You May Also Like

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.