Unterthema: Wichtige WFS-Prozeduren
Bisher beschränkten sich Schnittstellen vom Transputer zum PC auf die Ein- und Ausgabe von Zeichenketten oder der Aufbau einer hochauflösenden Farbgrafik artete zum Geduldsspiel für den geplagten Programmierer aus, da die meisten Server für jedes einzelne Pixel auf das BIOS des PC zugreifen mußten.
Der Transputerbegeisterte mit einem etwas kleineren Softwarebudget mußte daher Hilfsprogramme in einer PC-basierten Programmiersprache schreiben, um brauchbare Ein- und Ausgabemöglichkeiten zu gewährleisten. Als Beispiel sei hier die in c't von Heinz Ebert vorgestellte Möglichkeit der Verbindung von Turbo-Pascal auf dem Wirtsrechner mit Occam 2 auf der TEK4/8-Seite zu nennen [3]. Es ist jedoch nicht jedermanns Sache, bei der Programmentwicklung regelmäßig zwischen fortschrittlicher paralleler und `herkömmlicher´ sequentieller Denkweise umzuschalten.
Mit komfortablen Front-Ends wie dem X Window System (zum Beispiel unter dem Betriebssystem HELIOS) lassen sich dagegen ausgezeichnete Mensch-Maschine-Interfaces realisieren. Allerdings verhindern der zumeist erforderliche große Hardwareaufwand (transputerunterstützte Grafik, große Festplatte, et cetera) und die nicht zu unterschätzenden Softwarekosten in Größenordnungen von einigen tausend Mark einen Einsatz im Low-Cost-Bereich.
Einen preisgünstigen Ausweg aus dieser `Krise´ zeigt die relativ kleine englische Firma Nexis Technology Ltd., Southampton. Ihr Windows File Server für Transputerboards ist ein Ersatz für Inmos´ Alien-Fileserver. `Ersatz´ ist aber einigermaßen untertrieben: WFS stellt Transputerprogrammen die WIMPS-Ressourcen (Windows, Icons, Mouse Pointer Systems) von Microsoft Windows zur Verfügung.
Im Gegensatz zu MS-Windows selbst läuft beim WFS ohne Maus überhaupt nichts. Zu den Prozessoren ist folgendes zu sagen: Mit den zum Test verwendeten Transputern T414B-20 und T800D-20 ließ sich kein Systemabsturz `provozieren´. Mit den ersten auf den Markt gelangten Transputerchips (Revision A) kann WFS jedoch nichts anfangen, da diese Bauelemente bekannterweise den Fehler aufweisen, nicht in Bytes kommunizieren zu können. Es empfiehlt sich daher nachzuschauen, ob es sich bei dem Prozessor nicht vielleicht um ein Bug-behaftetes Bauelement handelt.
Die Installationsprozedur des WFS-Paketes hebt sich durch die Integration in MS-Windows wohltuend von Nullachtfünfzehn-Setup-Routinen der meisten Softwareprodukte (inklusive Windows selbst) ab.
Die Demonstrationsfiles auf der letzten von vier im Lieferumfang enthaltenen Disketten verdeutlichen beeindruckend, wie einfach sich die Handhabung paralleler Prozeduren in verschiedenen Fenstern gestalten kann. Es werden alle Möglichkeiten des WFS-Systems aufgezeigt, einschließlich Icon-Management, Mousehandling, Windowing, Pulldown-Menüs und Grafiksupport.
Das System erkennt aber automatisch, wenn der Displayspeicher nahezu voll ist und lagert dann nach dem FIFO-Verfahren (First In First Out) Tasks auf die Festplatte aus. Dies geschieht auch generell mit den zu Icons eingefrorenen Tasks.
Um darauf schnell zugreifen zu können, empfiehlt es sich, dem WFS als Puffermedium eine RAM-Disk anzubieten, zum Beispiel im XMS - sofern Windows sich nicht schon darin breitgemacht hat.
Diese Klimmzüge kann man sich ab Windows 3.0 schenken - wenn der PC über genügend Hauptspeicher verfügt und im Protected Mode zu arbeiten gewillt ist (am besten gleich ein echter 386er). Dann kann man sich nämlich zur WFS-Version für Windows 3.0 aufschwingen, die bereits erhältlich sein soll, wenn Sie diese Zeilen lesen. Für registrierte WFS-Käufer gibt es die neue Version als kostenloses Update (bis auf die Zustellgebühren). Zur Zeit ist außerdem eine Version des WFS in Arbeit, die auch die exotischsten Funktionen des neuen, so äußerst erfolgreichen Windows-Paketes benützt.
Die Routinen, die der Windows File Server zur Verfügung stellt, lassen sich grob in drei Gruppen einteilen: die menüaufbauenden Prozeduren, die sogenannten Graphic Primitives und die Bitmap-Manipulationsaufrufe. GetWindowBits zum Beispiel ermöglicht das Kopieren eines Bildschirmteiles oder des ganzen Displays, um ihn im Transputerspeicher manipulieren zu können. Die Bitmap-Routinen unterstützen zur Zeit allerdings noch keine Farbe.
Wenn gewünscht, läßt sich der manipulierte Grafikausschnitt wieder in andere Applikationen transferieren, um ihn zum Beispiel mit Aldus-PageMaker weiterzubearbeiten. GetGraphicsMetrics fragt Windows nach der X- und Y-Auflösung des verwendeten Displays. Dies ist besonders dann nützlich, wenn man Anwenderprogramme schreibt, die sich automatisch an unterschiedliche Grafikausstattungen anpassen sollen. (Reden wir hier einmal nicht vom Mac-Betriebssystem, das solche Umrechnungen automatisch macht.) Daneben kann WFS auch die Text-Fontgröße und die Pixelgröße bestimmen, um eine optimale Bildschirmgestaltung zu gewährleisten. Mit dem Befehl EnableClipBoardMenu fügt man das Windows Clipboard Sytem an das eigene Programmenü an, um den Austausch von Daten mit anderen Windows-Applikationen zu erleichtern.
Neben diesen Bibliotheksroutinen gibt es noch eine Reihe von Tasks, die die Arbeit mit WFS erleichtern (siehe Tabelle). Damit ist es jetzt doch eine fast triviale Aufgabe, sich kundenspezifische Benutzeroberflächen auszudenken. `Gehirnschmalz´ muß man nur noch da investieren, wo er hingehört, nämlich bei der Projektierung und Kodierung der Anwendungsprogramme.
Selten habe ich ein derart professionell aufgezogenes Manual in Händen gehabt, wie das WFS-Handbuch. In Zeiten, in denen anscheinend Masse bei Dokumentationen mehr gilt als Klasse, kann die durchdachte WFS-Dokumentation mit klarer Sprache und stringenter Struktur glänzen. Leider existiert bis jetzt nur eine englische Version.
Sieht man einmal von den angesprochenen kleinen Unzulänglichkeiten ab, kann man WFS getrost eine große Zukunft voraussagen. Sie ist durch den Erfolg von Windows 3.0 vorprogrammiert - schließlich fallen in der nächsten Version ja auch noch die wenigen Punktabzüge weg. Der außerordentlich günstige Preis von 250 £ Sterling für dieses komplexe Softwareprodukt wird sicher (hoffentlich?) dazu beitragen, die Marktakzeptanz für PC-gestützte Transputersysteme zu erhöhen. (it)
[2] Nik Spicer, Review WFS, Parallelogramm 10/89.
[3] Heinz Ebert, Occamierung auf Transputer, ab c't 1/88.
DrawLine, DrawBox, DrawEllipse, InvertArea, FillArea, CopyArea, OpenWindow, CloseWindow, ClearWindow, ScrollWindow, LoadBitmap, SaveBitmap, GetGraphicsMetrics.
Ein-/Ausgabe
PrintInRegion, PrintString, TextPrint, InputAt, InputInsert, ReadLastKey, GetMouseCoordinates, GetMouseButtons.
Menüsteuerung
AddMenuItem, AddPopUpItem, AddPopUpMenu, DisableMenus, EnableMenus, DisablePopupItem, EnablePopupItem, ChangeMenuItem, ChangePopupItem, DeleteAllPopUpItems, DeleteMenuItem, DeletePopUpItem, EnableClipboardMenu, DisableClipboardMenu.