Der Library-Maker kann aus einer Basic-Datei des Omikron.Basic eine Library erzeugen. ;-) Eine Library - erkennbar an der Extension *.LIB - enthält in sich abgeschlossene Prozeduren und Funktionen, die als eine einzige Programmzeile in den Source-Code eines Basic-Programms eingeladen werden können. Eine Library stellt somit eine Art "Befehlserweiterung" für das Omikron.Basic dar. Oder auch das, was in C als Include-Datei bezeichnet wird.
Die Zeile, an der die Library in dem Basic-Programm erkennbar ist, sieht in etwa so aus:
65536 LIBRARY CODE Gem 'OMIKRON.+ KLiB LIB-Maker (V. 2.49) 18.09.97 19:52:34 GEM-Lib V. 4.0
Was an Prozeduren und Funktionen genau in der Library vorhanden ist, wissen Sie entweder, weil Sie die Library selber geschrieben haben oder Sie müssen dies der Anleitung zu der Library entnehmen. Wenn Sie eine Library mit dem Library-Maker übersetzen, können Sie natürlich im Quellcode der Library nachsehen, was die Library eigentlich tut ...
Der Library-Maker ist ursprünglich ein kommerzielles Programm gewesen. Allerdings nicht so richtig, denn groß geworben hat die Firma Omikron nie dafür. Der einführende Text in dem Begleitheft machte eher den Eindruck, als sei es eine besondere Ehre, dieses Programm benutzen zu dürfen - nachdem dafür 99 DM gezahlt worden waren. Dafür war das, was der Library-Maker bot, von der Oberfläche her allerdings grauenhaft. Vielleicht war das ja auch der Grund dafür, daß Omikron nie so richtig dafür werben mochte?
Seit etwa Herbst 1995 bin ich an der Arbeit für eine umfassende Library, die so ziemlich alles umfaßt, was meinen persönlichen Bedarf betrifft. Das Gesamtprojekt hat den Namen KLiB und ist ebenfalls auf meiner Homepage zu finden. Für dieses umfangreiche Projekt habe ich mir Anfang 1996 den Library-Maker von Omikron besorgt - und war schwer genervt. Zwar konnten Libraries damit erstellt werden, aber die Bedienung war eine Katastrophe. Hinzu kam, daß der alte Library-Maker bei mir unter MagiC konsequent am Programmende das gesamte System zum Absturz brachte und noch nicht einmal die Benutzung von Accessories parallel zum Library-Maker möglich war. Nach jedem Start mußten sämtliche Einstellungen neu gemacht werden, u.a. immer wieder das Geklicke durch Ordner-Berge, um die richtigen Dateien auszuwählen.
In meiner Programmierarbeit hat sich das so ausgewirkt, daß ich den Library-Maker nur sehr selten benutzt habe: nur dann, wenn ich sicher war, daß die neue Version einer Library auch eine Weile Bestand haben würde.
Hinzu kamen die Unzulänglichkeiten des alten Basic unter MagiC, die mich fast dazu gebracht hätten, dem Basic doch den Rücken zu kehren und auf Pascal oder C umzusteigen. In dieser tiefen Sinnkrise kam das Gerücht über eine neue Version des Omikron.Basic, die ich mir auch sofort besorgte, als sie erhältlich war. Meine Begeisterung darüber war - bei allen Bugs, die eine generalüberholte Software zwangsläufig zu Beginn hat - so groß, daß ich mich angeboten habe, für das neue Basic eine ST-Guide-Hilfe zu schreiben (was dann auch passiert ist). Dabei verlor ich mein eigentliches Ziel - KLiB - aber nicht aus den Augen. Erst recht, wenn es eine neue Basic-Version gibt, mußte es doch möglich sein, auch den Library-Maker an den Stand der (TOS-)Zeit anzupassen. Nach verschiedenen Telefonaten mit Uwe Berkhan (dem Programmierer der neuen Basic-Version) und Carsten Kraus (dem Chef (?) von Omikron) bekam ich schließlich eine Diskette mit dem Source-Code des Library-Makers von Uwe Berkhan.
Meine Vermutung, daß die Abstürze des Library-Makers sich durch eine schlichte Neucompilierung mit dem neuen Compiler verflüchtigen würden, haben sich fast bestätigt. Nachdem ich drei oder vier Zeilen Code geändert hatte konnte ich den Library-Maker neu compilieren und seit dem gibt es bei mir auch unter MagiC keine Abstürze mehr damit.
Das darauf folgende Wochenende habe ich damit verbracht, die Dialogboxen in
Fenster zu legen. Dank
KLiB
ging das ziemlich schnell. Danach habe ich mich dann um die Dinge gekümmert,
die bisher noch nicht in KLiB enthalten waren. Und ein bischen "Kleinkram"
war auch noch notwendig. Insgesamt stecken in der Version 2.0 (ohne den Hypertext)
ca. 50 Arbeitsstunden.
Die Arbeit für die Version 2.5 war wesentlich aufwendiger. Ich mußte zunächst einmal durch den Teil des Programms durchsteigen, der für die Code-Erzeugung verantwortlich ist. Da der Quellcode praktisch überhaupt nicht kommentiert war, globale Variablen mit wenig aussagekräftigen Namen (z.T. nur aus einem Buchstaben) benutzt wurden, vereinzelt noch GOTOs darin vorkamen und die gesamte Code-Erzeugung praktisch in zwei Mammut-Prozeduren erfolgte war dies relativ aufwendig. Der erste Schritt bestand deshalb darin, die Code-Erzeugung zu modularisieren. Das ausführbare Programm ist dadurch zwar größer geworden, aber dafür ist der Source-Code für mich jetzt wartbar geworden. Nur so war es überhaupt möglich, Veränderungen an der Code-Erzeugung vorzunehmen.
So weit an dieser Stelle die Lebensgeschichte des Library-Makers aus meiner Sicht. Wer jetzt noch Interesse daran hat und außerdem noch mit Omikron.Basic programmiert (sonst ist der Library-Maker etwas überflüssig, nich') kann ihn sich hier besorgen:
Download mklib252.zip Version 2.52 vom 14.07.2002 (199.658 Bytes)
Die Version 2.52 unterscheidet sich von der Version 2.51 nur dadurch, daß sie nicht mehr beim Speichern abstürzt, wenn zu viel Platz auf dem Medium frei ist.
Die 2.5er-Versionen haben den 2.0er-Versionen voraus, daß sie library-lokale Variablen und Prozeduren kennen. Dadurch ist es möglich, eine Library so zu kapseln, daß nur über eine klar definierte Schnittstelle auf die Library zugegriffen werden kann. Außerdem dürfen bestimmte Elemente wie "Faltklammern" oder Kommentare auch außerhalb von Prozeduren - insbesondere auch vor der ersten Prozedur - vorkommen.
zuletzt geändert: 22.06.2003, Karsten Lüdersen, webmaster@kalue.de