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

Logo wp2rtf
Inhalt
Einleitung

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 mit einem 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 1D- oder 2D (DD)-Disketten verwendet werden, also mit einfacher oder doppelter Datendichte auf der Datenscheibe – HD-Disketten kann das Laufwerk laut Handbuch nicht verwenden (tatsächlich geht das aber doch meist gut, es passt trotzdem nicht mehr drauf). Es können bis zu 64 Dokumente auf der Diskette gespeichert werden, jedoch insgesamt nur 120kB. Diese Disketten können weder von MS-DOS noch von Windows eingelesen 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 (übrigens aller Arten, also auch für andere alte Computer, die ein Diskettenlaufwerk hatten) ein Abbild der Diskette (Image). Beispielsweise 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. Ich vermute: weil die Disketten nicht am PC lesbar sind.

Ansicht des Konverters

Heute (2019) 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.

… deshalb gibt es heute einen Konverter nach dem Motto „lass es den Computer machen, dafür haben wir ihn ja“. 😉


Hinweis 27.04.20 / aktualisiert 12.03.23

Da ich in letzter Zeit vermehrt Anfragen erhalte, ob ich Disketten bitte konvertieren könnte…?
Ja, das kann ich gerne als Dienstleistung machen. Fragen Sie einfach an.

… und plötzlich können keine Disketten mehr im WP-1 gelesen werden – er rappelt ganz laut und gibt dann „DISKETTENFEHLER – Soll die Diskette formatiert werden?“ aus. Bloß nicht!

Es gibt 2 Gründe für den „Diskettenfehler“:

  1. Es liegt am Diskettenlaufwerk. Also entweder ein elektronisches Problem – eher unwahrscheinlich, die Elektronik ist sehr robust in dem Gerät – oder ein mechanisches.
    Tatsächlich läßt die Elastizität des Laufbandgummi nach (oder wird sogar morsch und zerreißt), der von der Motorachse (kleines Rädchen) die Kraft auf den Antrieb der Datenscheibe (großes Rad) überträgt.
    Das Gummiband rutscht dann durch und die Datenscheibe dreht sich nicht. Der WP1 bekommt kein Signal und versucht es erneut – das „Rappeln in der Kiste“ kommt von der Lesekopfmechanik, die wiederholt geöffnet und geschlossen wird, um den Antrieb zu entlasten, damit sich also die Datenscheibe von Stand aus losdrehen kann, bis sie ihre Arbeitsgeschwindigkeit hat und so der WP1 Daten bekommt, mit denen er was anfangen kann.
    Leider weiß ich nicht, wo man neue Laufbandgummis herbekommt, um das Diskettenlaufwerk reparieren zu können.
  2. Die Diskette ist wirklich das Problem:

Es hat sich herausgestellt, daß wenige Disketten im Laufe der Jahre nicht mehr gelesen werden können und im Laufwerk ein schleifendes Geräusch machen…
Das liegt daran, daß der Kleber des Rings morsch wird und sich ablöst, der die Magnetscheibe mit dem Transportelement (die Metallscheibe in der Mitte der Diskette) zusammenhält. Die Magnetscheibe dreht sich also nicht mehr mit und folglich wird sie nicht ausgelesen – defekt, Datenverlust.

Ich habe bei der Suche nach der Ursache aber eine Methode gefunden, wie ich sie wieder reparieren kann – es ist fummelig und zeitaufwändig, aber oft klappt es dann wieder mit dem Auslesen der Daten, jedoch nicht immer. Aber ich kann es versuchen.

Ein anderes Problem sind HD-Disketten. Offiziell kann der WP-1 nur DD-Disketten beschreiben. HD-Disketten beschreibt sein Diskettenlaufwerk zwar auch, aber hat selbst etwas Probleme damit, es dauert länger.
Mit dem PC-Laufwerk, das ich zum Auslesen der DD-Disketten verwende, lassen sich diese vom WP-1 beschriebenen HD-Disketten zunächst nicht lesen. Inzwischen habe ich getan, was man sonst tunlichst vermeidet, weil man ja selbst klug ist… – das Handbuch zum Diskettenlaufwerk studiert und dabei entdeckt, wie auch vom WP1 beschriebene HD-Disketten übertragen werden können – bislang habe ich die HD-Disketten nur zeitaufwändig im WP-1 per Disk-Copy auf eine DD-Diskette kopieren müssen. Danach funktionierte es, weil ich dann ja wieder eine DD-Diskette habe. Das Kopieren von HD auf DD dauert halt so seine Zeit und macht es sehr aufwändig – was jetzt aber eben durch ein einfaches „RTFM“ viel leichter geworden ist!


Update 15.09.19

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

Noch unbekannt ist, wo die Zeichen [ ] und à der schweizer Version des WP-1 codiert wurden, da sie auf dem Typenrad drauf sind.

Codetabelle (Charmap) WP-1

Wenn jemand beim Anwenden des Tools fehlerhafte Zeichen entdeckt, bitte mir das Image schicken und wie der Text korrekt lauten sollte. Dann prüfe ich das und kann die Codetabelle weiter vervollständigen.


Das Typenrad

Ich habe mir das Typenrad „German 08“ (Letter Gothic 12) genauer 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.

Im Sept. 2019 habe ich Fotos von einem Typenrad „Swiss 36“ (Brougham 10) bekommen:
.ersaioctmlhpnbfgukvdyzqxjw/%1324567809$öüä£çèé¨à´§°]`[^R'Q_OJG?D"C-FE=BV&YATLSPZ*X+K)H(UIN;W:M,
Auch hier gleicht es dem deutschen Typenrad, aber es gibt nur die kleinen Umlaute äöü. Die großgeschriebenen ÄÖÜ lassen sich dann mit dem Umlautzeichen ¨ durch Überdrucken erzeugen.
Durch Texte aus einem Image einer Diskette, die von einer schweizer Maschine beschrieben wurde, konnte ich auch weitere Zeichen der Codetabelle ausfindig machen, so daß mein Tool nun 2 weitere Zeichen richtig konvertiert.

Update 12.02.24 – Ein Foto des Symbol-Typenrad (Symbol 10) habe ich von Tim-David Sand erhalten – vielen Dank:

Symbol-Typenrad

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 möglicherweise 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:
    • $00 = Linksbündig
    • $01 = Blocksatz
  • Dann wird der Block mit $F2 beendet – oder es folgen bis zu 10 Word-Werte für Tabulatoren in twips
$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 – wird im Absatzblock definiert, der mit $F1 beginnt.
Soll Text zentriert oder rechtsbündig sein, tauchen diese Steuerzeichen mitten im Text 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.
Siehe auch Wikipedia, was die Tottaste ist.

  • $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.


Dokumente in Windows weiter verarbeiten können

Da die Texte roh in Windows geöffnet mit Steuerzeichen und „falschen Buchstaben“ gefüllt sind, setzt mein Konverter Zeichen für Zeichen die „richtigen“ Buchstaben in den Text ein und folgt der oben beschriebenen Logik für eine Textausgabe, mit der wir in Windows etwas anfangen können.

Der Konverter assistiert beim Erstellen von Disketten-Abbildern (Images, .img-Dateien – diese Dateierweiterung wird auch in Windows verwendet, ebenfalls für Dateisystem-Abbilder, aber diese sind mit dem Konverter nicht kompatibel! Der wp2rtf liest nur Brother-Diskettenabbilder ein).
Wenn Sie also bereits .img-Dateien haben, die von den WP-1 Disketten erstellt wurden, können Sie diese Images leicht mit dem Konverter öffnen und die Dateien direkt auslesen und abspeichern.
Geschrieben wird die Datei dann im Richtext File-Format oder als einfache Text-Datei.

Der Konverter kann den Text auch als Fließtext ausgeben – viele Anwender des WP1 haben es nicht der Schreibmaschine überlassen, den Zeilenumbruch zu berechnen, sondern am rechten Bildschirmrand die Zeilenvorschubtaste gedrückt (Return/Enter).
Dadurch sind eigentlich unbeendete Sätze unterbrochen. Der Konverter kann auf Wunsch diese Umbrüche aus dem Text entfernen – ebenso die Worttrennungen am Zeilenende. So kommt in der aktuellen Version bereits ein Fließtext heraus, der dann gut in modernen Textsystemen weiterverarbeitet werden kann.

NEU in v0.7: Ist das Image korrupt, daß heißt ein oder mehrere Datenbereich/e mitten im Text sind beschädigt, liest der Konverter die Datei ein, aber notiert mit roter Schrift im Text die Stelle und Menge der Daten, die nicht interpretiert werden konnten. Danach wird die Konvertierung beim nächsten Absatz normal fortgesetzt.

Update 12.03.23 – Beta-Version – Details

You May Also Like