HP-DeskJet Hardcopy-Treiber

Anschrift:

Alman Development GbR mbH

Ilmari Krebs Ob dem Viehweidle 3 W-7400 Tübingen

Programm: Arndt Weinmann Handbuch: Hanno Klomp

4. Juni 1992

1 Vorbemerkungen

Falls Sie kein LaTEXbesitzen, können Sie dieses Handbuch nur als ASCII-Datei lesen. Falls Sie aber gerne in den Besitz eines ordentlichen Handbuchs kommen wollen, schicken Sie uns einfach 5.- DM. Wir schicken Ihnen dann einen Ausdruck des aktuellsten Handbuchs zu. Nachdem ich bei Erklärungen, die den Computer und seine Anwendung betrafen, immer wieder verständnislose Blicke geerntet hatte, habe ich mich entschlossen, einige nicht so geläufige Begriffe zu erklären. Diese Erklärungen befinden sich im Glossar am Ende des Handbuchs. Fast alle Hard- und Softwarebezeichnungen, die in dieser Anleitung Verwendung fanden, sind eingetragene Warenzeichen und sollten als solche betrachtet werden. \underline{Wichtig:} Alman Development GbR mbH übernimmt für die korrekte Funktionsweise der Software keine Garantie. Ausserdem sind wir nicht haftbar für Schäden, die aus Fehlfunktionen oder falscher Anwendung unserer Software entstehen. Im Klartext heisst das, Festplatten, die sich in Rauchwolken auflösen oder sich aus unerfindlichen Gründen formatieren, sind immer Schäden, für die der Anwender selbst verantwortlich ist.

2 Wozu dient HP DESK

Eine wirklich berechtigte Frage, denn bei vielen PD- und Sharewareprogrammen ist das nicht ganz einfach herauszufinden (meistens, weil sie sowieso gleich wieder abstürzen _{···} leidgeprüfter TT-Besitzer). Alle ST- und TT-Computer besitzen eine eingebaute Hardcopy-Funktion, die nach Drücken von [Alternate][Help]^{1} eine Kopie des Bildschirminhaltes auf einen angeschlossenen Drucker ausgibt. Leider ist diese Funktion immer noch für 9-Nadel Drucker ausgelegt (wer hat denn sowas noch ??), so dass sich auf dem HP-DeskJet keine vernünftigen Ergebnisse erzielen lassen. ’HP RES.PRG’ ersetzt die eingebaute Hardcopyroutine durch eine eigene, und damit kann der HP-DeskJet angesprochen werden. Selbst wenn Sie keinen HP-DeskJet besitzen, können Sie den Hardcopytreiber immer noch verwenden. Es besteht die Möglichkeit, den Bildschirminhalt in eine Image-Datei zu schreiben. Diese Datei lässt sich dann mit vielen Malprogrammen weiter verarbeiten und auch auf diesem Weg mit einem anderen Drucker ausdrucken.

3 Shareware

Das Programm ’HP DESK.PRG’ ist Shareware, d.h. jeder kann das Programm kopieren und ausprobieren, ohne dafür zu bezahlen. Voraussetzung dafür ist, dass keine Veränderungen am Programm oder an den begleitenden Dateien vorgenommen werden und das Programm immer nur zusammen mit allen Dateien im Ordner HP DESK.??? weitergegeben wird. Wenn Sie das Programm allerdings regelmässig benutzen, müssen Sie es kaufen. Für 20 DM werden Sie registriert und bekommen die neueste Version des Hardcopytreibers. Eine Version mit zugehörigem Sourcecode ist für 40 DM bei uns zu beziehen. Eine kommerzielle Nutzung des Programms ist ohne unsere ausdrückliche Zustimmung untersagt. Als kleine Zugabe erhalten Sie mit der Diskette auch gleich noch einige Hilfsprogramme zum HP-DeskJet. Also schicken Sie eine Nachricht an obige Adresse und legen Sie 20 DM (Schein oder Verrechnungsscheck) bei, und schon bekommen Sie die neueste Version des Hardcopytreibers. Sie können uns natürlich auch eine Bestellung zusenden und das Geld auf unser Konto überweisen.

1Alle Ausdrücke, die in solchen Klammern stehen, bezeichnen Tasten. Sollten zwei Tasten direkt hintereinander stehen, müssen sie gleichzeitig gedrückt werden.

4 Funktionsbeschreibung zu HP RES.PRG

Der Treiber setzt sich aus zwei Teilen zusammen:

HP RES.PRG den residenten Druckroutinen und HP DESK.APP dem Konfigurationsprogramm als Programm oder HP DESK.ACC als Accessory oder HP DESK.CPX als CPX

Bei HP RES.PRG handelt es sich, wie schon gesagt, um die residenten Druckroutinen, das heisst, dieses Programm wird geladen und bleibt nach Beendigung des Programmlaufes im Speicher stehen, wo es die originalen Hardcopyroutinen des Betriebssystems ersetzt. Das Programm kann sowohl aus dem AUTO-Ordner als auch vom Desktop und alternativen Benutzeroberflächen gestartet werden. Der Aufruf der Hardcopyroutine erfolgt durch [Alternate][Help]. Der Druckvorgang kann mit der Taste [UNDO] abgebrochen werden (nicht möglich beim Abspeichern als Image-Datei). Bei einem zweiten Start deinstalliert sich das Programm, und der ursprüngliche Zustand wird wieder hergestellt. Es ist jedoch anzumerken, dass sich ein Start von einer alternativen Benutzeroberfläche (z.B. Gemini) aus nicht empfiehlt, weil es unweigerlich zur Speicherfragmentierung kommen wird. Speicherfragmentierung heisst, dass der Speicher in kleine Stücke zerteilt wird, die den einzelnen Programmen zur Verfügung gestellt werden. Wenn diese Stücke sehr klein sind, können sie manchmal vom Betriebssystem nicht mehr zu grossen Stücken zusammengefasst werden. Es mag dann noch viele kleine, freie Speicherblöcke geben, aber das Betriebssystem ist dann nicht mehr in der Lage, einem Programm einen grossen zusammenhängenden Bereich zuzuweisen. Man wird dann also öfter die Meldung bekommen, dass nicht mehr genügend Speicherplatz vorhanden ist, obwohl das nicht stimmt. Wenn ein Cookie-Jar installiert ist und noch Einträge frei sind, installiert das Programm einen Cookie mit der Kennung ’AlHP’ (das ist übrigens auch die XBRA-Kennung).

5 HP DESK.APP und HP DESK.ACC

Bei diesem Programm handelt es sich um eine Konfigurationssoftware für den residenten Teil des Hardcopytreibers, d.h. mit diesem Programm ist es möglich, bestimmte Parameter für den Ausdruck zu verändern. Soll der Konfigurationsteil als Accessory laufen, muss er in HP DESK.ACC umbenannt werden und in das Wurzelverzeichnis des Bootlaufwerkes kopiert werden. Beim Aufruf als Accessory erscheint folgender Dialog:

Abbildung 1: Der Dialog des Accessories

Diese Dialogbox sieht nicht ganz wie eine normale Dialogbox aus. Wenn es das erste Mal ist, dass Ihnen so eine Box über den Weg läuft (sonst z.B. vorhanden in Gemini, Rufus, SciGraph etc.) und Sie mehr über diese Art der Benutzerführung wissen wollen, lesen Sie bitte den Abschnitt Erweiterte Benutzerführung.

Sollte das Eselsohr in der rechten oberen Ecke bei Ihnen nicht erscheinen, so sollten Sie sich eine Speichererweiterung kaufen, vernünftige Programme benutzen, die nicht den ganzen freien Speicher für sich beanspruchen, oder einfach nicht so viele Programme auf einmal laufen lassen. Wenn diese Ecke nämlich nicht auftaucht, liegt das daran, dass nicht genügend freier Speicher für die Verschiebefunktion zur Verfügung steht. Beginnen wir mit der Erklärung des wohl wichtigsten Teils, der Parameter:

Gerät hiermit wird das Gerät ausgewählt, an das die Druckausgabe erfolgt. Dabei wird bei Nirwana^{2} die Ausgabe einfach ins “Nirgendwo“ umgeleitet, d.h. der Druckaufruf wird einfach ignoriert. Dieses scheinbar sinnlose Vorgehen hat Sinn bei Programmen, die die Tastenkombination [Alternate][Help] auch belegt haben. Dann wird erst die Programmfunktion ausgeführt und nachher noch der Hardcopytreiber aufgerufen. Diese ständige Ausgabe von Hardcopies ist aber sicher nicht erwünscht, deshalb gibt es diese Einstellungsmöglichkeit. Drucker lenkt die Ausgabe tatsächlich auf den Drucker um (eigentlich erstaunlich bei einem Hardcopytreiber), Datei speichert bei einer Hardcopy den Bildschirminhalt als Image-Datei, OldVec führt die Routine aus, die bei einer Hardcopy ausgeführt wird, wenn HP RES.PRG nicht geladen ist.

Aufl. Mit Aufl. wird die Auflösung festgelegt, in der die Hardcopy ausgedruckt werden soll (hat keinen Einfluss auf die Image-Datei); dabei wird die Hardcopy um so kleiner, je grösser die Auflösung gewählt wird. Unter Umständen kann es sein, dass die Hardcopy bei zu kleinen Auflösungen nicht ganz auf das Papier passt, dann werden vom Drucker Teile abgeschnitten.

Ende Hier kann man wählen, was nach dem Druck passieren soll. Nichts bedeutet dabei, dass nichts weiter geschieht, CR/LF lässt unter der Hardcopy eine Zeile frei und FF bewirkt einen Seitenvorschub, also den Auswurf der Seite.

Qualität Mögliche Optionen sind hier der Draft-Modus oder der High-End-- Quality Modus. Es wird eine Hardcopy in der entsprechenden Qualität erstellt.

Ausrichtung Damit wird die Orientierung des Ausdrucks festgelegt. Es sind Hochund Querformat (um 90^{∘} gedreht) möglich. Beim Druck in eine Datei ist die Einstellung Quer allerdings nicht anwählbar. Wenn man eine Datei mit einer gedrehten Hardcopy möchte, kann man dies mit einem pixelorientierten Malprogramm erreichen.

2Hinweis: Worte, die in der Schriftart Typewriter gesetzt sind, stellen Texte aus Buttons etc. in den Dialogboxen dar.

Hor bestimmt die horizontale Ausrichtung der Hardcopy:

Links ganz an den linken Rand (hängt vom Papierformat ab bzw ist druckerabhängig!)

Mitte zentriert in der Mitte (nur bei DINA4-Seiten, andere Seitenformate kann ich bei Interesse in einer späteren Version implementieren)

Rechts an den rechten Rand (wieder nur bei DINA4)

Ver legt die vertikale Ausrichtung fest. Die Einstellungen sind analog zu denen der horizontalen Ausrichtung. Es gibt jedoch eine Einstellung mehr, nämlich Aktuell; dies bedeutet, die Hardcopy wird an der aktuellen Stelle des Blattes ausgegeben.

Kommen wir nun zum Bereich Special: In der oberen Hälfte des Bereiches sind beim Betrieb von HP DESK.(ACC|APP) als Accessory drei Radiobuttons zu erkennen. Beim Betrieb im Farbmodus sind die Buttons Block und Fenster disabled, da ein Druck in Farbe (noch) nicht möglich ist. Es kann also nur eine Einstellung der Parameter, aber kein Ausdruck erfolgen. Beim Betrieb als Applikation ist nur der Button Schirm zu sehen.

Schirm Durch den Button Schirm wird nur die Einstellung des residenten Treibers geändert. Es folgt hier nicht wie bei den Buttons Block und Fenster ein sofortiger Ausdruck. Dies ist auch an dem Austausch des Buttons Setzen durch den Button Print zu erkennen.

Block Dieser Button dient dazu, direkt einen bestimmten Ausschnitt zu drucken, der mit der Maus durch das Aufziehen eines Rechtecks definiert wird.

Fenster Diese Option bietet die Möglichkeit, das aktuelle Fenster auszudrucken. Der letzte Button im Bereich Special, Mit Fensterelementen drucken, erlaubt es, den Inhalt des Fensters einschliesslich der Rahmenelemente zu drucken. Diese Option macht natürlich nur dann Sinn, wenn ein Fenster gedruckt werden soll, deshalb ist dieser Button auch nur dann enabled. Wenn kein Fenster offen ist, wird der Bildschirm mit bzw. ohne Menueleiste gedruckt.

Die untere Reihe von Buttons versteht sich nun fast schon von selbst. Der erste Button, Info, gibt Auskunft über das Programm. Diese Funktion ist auch mit [Help] zu erreichen. Abbruch bewirkt den Abbruch des Accessories bzw. des Programms, wobei der residente Teil natürlich im Speicher verbleibt und die Parameter nicht verändert werden. Diese Funktion ist auch über [Undo] zu erreichen. Setzen bewirkt, dass der residente Teil gepatcht wird, das heisst, die veränderten Parameter werden an den residenten Teil übergeben. Bei Print erfolgt zusätzlich noch ein Ausdruck. Extra ist der einzige Button, der in diesem Dialog noch nicht ganz verständlich ist, was sich hoffentlich gleich ändert. Mit Hilfe dieses Buttons kommen Sie zu einem weiteren Dialog mit einigen zusätzlichen Einstellungsmöglichkeiten.

Der Extra Dialog:

Abbildung 2: Der Extra Dialog

Im oberen Teil des Dialoges sind wieder drei Radiobuttons zu sehen, die zur Einstellung des Pfades dienen, in dem der Screendump abgespeichert werden soll, falls als Ausgabegerät File angewählt ist. Die Einstellung aktuell bewirkt die Speicherung des Bildes im aktuellen Verzeichnis des aktuellen Laufwerks. Bei fester kann man einen fest eingestellten Pfad vorgeben. Hierzu klickt man auf das Feld Pfad und wählt den Pfad in der erscheinenden Fileselectorbox aus. Clipboard dient dazu die Dateien im Clipboard abzuspeichern, falls ein solches existiert. Hierbei lässt sich der Pfad nicht ändern, da dieser schon vorgegeben sein muss. Ist kein Clipboard installiert, so wird dieser Radiobutton disabled. Im Feld Dateiname kann man, wie der Name schon sagt, einen Dateinamen vorgeben. Autopatch dient dazu, die gewählten Einstellungen abzuspeichern, damit der Treiber beim nächsten Installieren mit diesen Parameteren gestartet wird. Dazu muss in der auftauchenden Fileselectorbox der Dateiname des Treibers angewählt werden, sonst erscheint eine Fehlermeldung. Der Button Extra führt jetzt zum Hauptdialog zurück.

6 Erweiterte Benutzerführung

Der Dialog hat, wie leicht zu erkennen ist, rechts oben ein Eselsohr. Hierbei handelt es sich nicht um einen Programmierfehler, wie Sie jetzt vielleicht annehmen möchten, sondern ist beabsichtigt. Diese abgeknickte Ecke soll kenntlich machen, dass es sich um einen “fliegenden Dialog“ handelt. Das bedeutet: Der Dialog lässt sich mit der Maus verschieben, wenn man den Mauszeiger auf diese Ecke bewegt und dann den linken Knopf gedrückt hält, während man die Maus bewegt. Aber das ist noch nicht das einzige schöne Feature dieses Dialoges. Ein Buchstabe innerhalb des Textes der Buttons ist jeweils unterstrichen, der jeweilige Button ist dann durch die Tastenkombination [Alternate][unterstrichener Buchstabe] anwählbar. Wenn nun aber in einem Datenfeld des Dialogs etwas steht (z.B. Drucker), so erscheint auf einen Mausklick ein Pop-Up-Menue, aus dem man seine Wahl treffen kann. Man kann aber auch den Kreisbutton am Ende des Datenfeldes anklicken, dann erscheint als aktueller Eintrag der nächste Eintrag in der Liste des entsprechenden Pop-Up-Menues. Sie sehen also, die verwendeten Dialoge lassen (hoffentlich) an Bedienungskomfort nicht viel zu wünschen übrig.

7 Technische Beschreibung zu HP RES.PRG

Das Programm hängt sich in die Vektoren scr dump $ 502 und XBIOS (trap # 14) ein. Dabei benutzt es selbstverständlich das XBRA-Verfahren mit der XBRA-Kennung ’AlHP’. Es werden die XBIOS-Aufrufe 20 (Scrdmp) und 36 (Prtblk) abgefangen und selbst ausgewertet. Der Trap-Dispatcher ist dabei 68030-fest. Zur Bestimmung der Grösse des Stackoffsets wird die zwei Byte lange Betriebssystemvariable longframe (Adresse 1438) ausgewertet, ein von 0 verschiedener Wert zeigt einen Stackoffset von 8 Bytes bei einem Trap an, sonst sind es 6 Bytes. Falls es bei installierten Prozessorkarten (z.B. 68020-Karte) zu Problemen bei den XBIOS-Aufrufen kommt, so überprüfen Sie bitte diese Variable und setzen Sie sie notfalls “per Hand”. Wenn ein Cookie-Jar vorhanden ist, installiert der Treiber einen Cookie mit der Kennung ’AlHP’ und einem Pointer auf die im Kapitel Patchen angegebene interne Datenstruktur als Wert. Probleme gab es bei der Implementierung der Auswertung der Prtblk-Funktion aufgrund der mangelhaften Dokumentation dieses Aufrufs. In meinem Treiber bin ich daher nach der in [3] vorgestellten Beschreibung vorgegangen. Danach wird der Funktion Prtblk ein Zeiger auf folgende Struktur übergeben:

typedef struct{ void ∗ pb prtblk; /∗ Startadresse des Druckbereichs ∗/

int  pb offset;  /∗ Offset in Bit (!) zur Startadresse  ∗/
int  pb width;  /∗ Breite des Ausschnitts in Pixeln  ∗/

int  pb left;  /∗ linker Rand in Pixeln  ∗/
int  pb right;  /∗ rechter Rand in Pixeln  ∗/
int  pb scrrez;  /∗ Bildschirmauflösung ??? = Getrez() ?? ∗/
int  pb prrez;  /∗ Druckertyp Atari/Epson ???  ∗/
long pb colptr;  /∗ Drucker auf Farbpalette  ∗/
long pb prtype;  /∗ Druckertyp ???  ∗/
int  pb prport;  /∗ Schnittstelle Centronics/RS 232 (wie?) ∗/
void ∗pb mask;  /∗ Zeiger auf Halbtonmaske (???)  ∗/

}PBDEF;

Mit vielen Werten kann man nicht ganz so viel anfangen, und so habe ich mich entschlossen, nur einige auszuwerten, als da wären: pb prtblk, pb offset, pb width, pb left. Gerade im Hinblick auf OverScan scheint mir diese Funktion etwas kritisch zu sein, z.B. sind bei dem Parameter pb prtblk Offset-Fehler ja geradezu vorprogrammiert, es sei denn, es sind wirklich vorbildliche Programmierer am Werk. (Das einzige Programm, das meines Wissens diese Funktion nutzt, ist DISKUS). Da man für die Berechnung von pb prtblk die Anzahl der Bytes pro Zeile kennen muss, diese Zahl aber mit den VDI-Funktionen nicht erfragbar ist, sondern aus den LineA-Variablen geholt werden muss, verbietet sich der Einsatz dieser Funktion eigentlich in jedem sauber geschriebenen Programm. Aber ich bin gerne bereit, mich eines Besseren belehren zu lassen; überhaupt möchte ich gerne mit anderen Programmierern in Kontakt kommen, um Erfahrungen auszutauschen. Geschrieben wurde das Programm zu gleichen Teilen mit dem TurboAss V. 1.7.2 und dem Pure C Compiler. Die nächste Version des Programms wird wahrscheinlich fast ganz in C geschrieben sein, da die Programmierung wesentlich einfacher ist. Ausserdem lässt sich der Treiber dann auch besser für andere Drucker anpassen.

8 Programmvariablen

Im residenten Teil HP RES.PRG ist die Zeichenketten ’PATCH:’ enthalten. Direkt an diese Zeichenkette schliesst sich die Parameterstruktur an, was sich als C-Struktur folgendermassen darstellt:

typedef struct{ WORD horizontal; WORD vertical; WORD orientation; WORD quality; WORD resolution; WORD device; WORD followed by; WORD version; UWORD date; BYTE ∗filepath; BYTE ∗filename;

}PPB; /∗ Public Para Block ∗/

Auf die Variablen horizontal bis followed by ist der lesende und schreibende Zugriff gestattet, auf alle anderen nur der lesende. Die Variablen können folgende Werte annehmen (und am besten keine anderen):

horizontal: 0 = Links 1 = Mitte 2 = Rechts

vertical: 0 = Oben 1 = Mitte 2 = Aktuell 3 = Unten orientation: 0 = Hoch 1 = Quer quality: 0 = Draft 1 = NLQ resolution: 0 = 75dpi 1 = 100 dpi 2 = 150 dpi 3 = 300 dpi to: 0 = Nirwana 1 = Drucker2 = Datei 3 = OldVec followed by: 0 = Nichts 1 = CR/LF 2 = FF

Die Versionsnummer version ist in der Form $ 0301 = Version 3.01 abgelegt. Das Entstehungsdatum ist im Gemdos-Format kodiert. Bei filepath und filename handelt es sich um zwei Pointer, einmal auf den Pfad, der beim Abspeichern der Images verwendet wird, und einmal auf den Dateinamen selbst. Der Pfad darf dabei bis zu 90 Zeichen lang sein, mit abschliessendem Backslash und nullterminiert. Der Dateiname darf nur 7 Zeichen lang sein (nullterminiert).

9 Hardwarevoraussetzungen

Das Programm stellt keine besonderen Hardwareanforderungen, es sollte nur ein Atari ST/STE/TT (oder Emulator: funktioniert so etwas?) mit genügend Speicher sein. Wenn gedruckt oder gespeichert werden soll, ist jedoch ein Monochrombildschirm (oder nur eine Farbebene) Voraussetzung. Ausserdem sollte der Prozessor Zugriff auf den Bildschirmspeicher haben und der Grafikkartentreiber den Wert von logbase korrekt setzen, sonst wird die Hardcopy nicht ganz das wiedergeben, was Sie gerade sehen.

10 Fehlersuche

Windowupdate Ein Fehler, der hoffentlich nicht häufig auftritt! Es gibt Programme, die so unsauber programmiert sind, dass Sie sich noch zu Wort melden, wenn das HPDeskJet Accessory gestartet ist. Das einzige, mir bisher bekannte Beispiel dieser unrühmlichen Gattung ist Calamus. Gegen diesen Fehler, der sich darin äussert, dass Calamus teilweise weiterarbeitet und den Dialog überschreibt, ist eine sauber und ordentlich programmierte Anwendung leider machtlos. Der Fehler liegt hier eindeutig bei dem jeweiligen anderen Programm und nicht bei uns.

Not installed !! Es gibt mehrere Möglichkeiten, die zu diesem Fehler führen. Die einfachste von diesen ist, dass Sie den residenten Teil HP RES.- PRG noch nicht gestartet haben. Der Fehler ist durch den Start des residenten Teils leicht zu beheben. Es könnte auch sein, dass Sie gerade versuchen, die alte Version mit dem Einstellaccessory zu verändern, was nicht möglich ist. In diesem Fall sollten Sie sich die neue Version des Treibers zulegen. Die dritte und unschönste Möglichkeit ist die, dass sich ein gerade aktives Programm nicht an das XBRA Verfahren hält und so nicht erkannt werden kann, dass der residente Teil bereits geladen wurde. Dieser Fehler tritt nur auf, wenn das aktive Programm den gleichen Vektor verbiegt wie unser Treiber. Dem Programmierer von Diskus jedenfalls scheint das XBRA Verfahren nicht bekannt zu sein, denn der Treiber wird hier nicht erkannt.

Abbildung 3: Fehlermeldung falls der Treiber nicht Installiert ist.

Installation Wenn Sie den alten Treiber installiert hatten und dann den neuen Treiber (PRG-Programm) aufrufen, deinstalliert es nur den alten Treiber und wird selbst erst nach nochmaligem Start installiert.

11 Historie

Die Resonanz auf unseren Hardcopytreiber war sehr gross, womit die Vermutung nahe liegt, dass es hier eine Marktlücke gab. Nachdem wir unser Programm anfänglich als PD vertrieben, sind wir nun dazu übergegangen, den Treiber als Shareware zu vertreiben. Wir hoffen so, noch mehr Anwender dazu bewegen zu können, für die Nutzung des Programms zu zahlen. Dadurch kommen wir dann auch in den Genuss, mit dem Treiber Geld zu verdienen und nicht nur die Unkosten ersetzt zu bekommen.

12 Ausblick

Das grösste Manko im Moment ist sicherlich die nicht vorhandene Farbfähigkeit, besonders im Hinblick auf die TT-Mittel-Auflösung. Ich weiss allerdings nicht, ob und wann ich den Hardcopytreiber auch farbfähig machen werde. Wenn die Resonanz gross genug ist, werde ich vielleicht irgendwann die eine oder andere Neuerung noch implementieren. Im Moment sind allerdings andere Projekte vorrangig, und ich habe nicht genügend Zeit, um mich weiter so intensiv mit dem Programm zu beschäftigen.

Abbildung 4:

13 Danksagung

Wir möchten unseren besonderen Dank allen denen aussprechen, die uns zu den vorhergehenden Versionen geschrieben haben, die uns mit wichtigen Informationen versorgt und die vielen Public-Domain-Programme beigesteuert haben. Ganz besonders möchte ich Severin Stille erwähnen, der durch sein Engagement viel dazu beigetragen hat, die erste Version entstehen zu lassen.

14 Wer ist Alman Development GbR mbH

Bei Alman Development GbR mbH handelt es sich um eine Gruppe von Studenten, die – von der Leistungsfähigkeit des Atari ST überzeugt – auch die angemessene Software für diesen Rechner schreiben will. Dabei soll besonderer Wert auf eine saubere Programmierung gelegt werden, so dass nicht mit jeder neuen TOS- oder Hardwareänderung (OverScan!) gleich alle Programme den Dienst versagen (leider war ja da die erste Version von HP DESK auch so ein schwarzes Schaf, aber wir geloben Besserung). Da wir unsere Programme als Shareware verteiben und somit ein Verdienst entsteht, sahen wir uns gezwungen, eine GbR zu gründen. Vor allen Dingen konnten wir dadurch eine Haftungsbeschränkung einführen, die sich auf die im Gesellschaftsvertrag festgelegte Summe beläuft.

15 Glossar

Accessory Ein Accessory ist ein Programm, das nach dem Laden (aus dem Wurzelverzeichnis) immer im Speicher verbleibt, zumindest teilweise, und immer im linken Drop-Down-Menue der Menueleiste anwählbar sein sollte.

AUTO-Ordner Der AUTO-Ordner ist ein Datei-Ordner auf der Festplatte bzw. Diskette, in dem die Programme enthalten sind, die der Rechner nach dem Anschalten laden soll.

Button Ein Button ist ein Schalter in einem Dialog, der vom Benutzer betätigt, also an– oder ausgeschaltet werden kann, solange er nicht disabled ist. Ist ein Buchstabe innerhalb der Beschriftung eines Buttons unterstrichen, so lässt sich der Button auch über das gleichzeitige Drücken von [Alternate] [unterstrichener Buchstabe] an– bzw. abschalten.

Abbildung 5: Ein Beispiel für Buttons

Betriebssystem Das Betriebssystem ist ein im ROM untergebrachtes Programm, das beim Ausschalten des Computers nicht gelöscht wird. Es sorgt dafür, dass die verschiedenen Einheiten des Computers korrekt miteinander arbeiten, und dass sie mit den nötigen Informationen versorgt werden. Ausserdem stellt es eine Kommunikationsschnittstelle zum Benutzer und eben allen Peripheriegeräten zur Verfügung. Diese Schnittstelle ist genormt und kann von allen Programmen gleich angesprochen werden.

Cookie-Jar Ein Cookie-Jar ist eine zusammenhängende Liste von Cookies, das heisst von Einträgen, wobei jeder Eintrag eine Kennung –möglichst im ASCII Format –hat, die vier Byte gross ist. Danach folgt ein weiterer vier Byte grosser Wert, in den man jede beliebige Information schreiben kann. Meist wird hier eine Versionsnummer oder ähnliches angegeben. Dieses Cookie-Jar enthält auch Einträge des Betriebssystems, an denen ein Programm erkennen kann, welcher Rechner und welches TOS vorliegen.

Dialog-Box Eine Dialog-Box ist die Schnittstelle zwischen einem Programm und dem Benutzer, solange die Kommunikation nicht in einem Fenster abläuft.

Dialog-Boxen finden immer dann Verwendung, wenn es darum geht, Parameter einzustellen oder dem Programm irgendwelche Änderungen mitzuteilen, die nicht in direktem Zusammenhang mit der eigentlichen Funktion desselben stehen. Eine Dialog-Box ist nichts anderes als ein Spezialfenster, in dem Parameter bzw. Daten eingegeben werden.

disabled Disabled bedeutet, dass dieser Button nicht anwählbar ist, was zum Beispiel auftreten kann, wenn eine Option bei der aktuellen Systemkonfiguration oder der aktuellen Parametereinstellung keinen Sinn ergibt. Diese Buttons sind dann hell gezeichnet.

Abbildung 6: Ein Beispiel für disabled Buttons

Hardcopy Eine Hardcopy ist die Ausgabe des aktuellen Bildschirminhalts oder eines definierten Teils desselben an ein Ausgabegerät (dies kann auch eine Datei sein).

Image-Datei Eine Image-Datei ist eine Bilddatei, die ein bestimmtes festgelegtes Format hat. Diese Datei muss immer die Endung .IMG haben, wenn von anderen Programmen erkannt werden soll, dass es sich um eine in diesem Format abgelegte Datei handelt. Das Image-Format wurde definiert, damit ein Austausch von Bilddateien auch zwischen unterschiedlichen Programmen möglich ist. Da die meisten Programme ihr eigenes Format zur Speicherung von Daten benutzen, ist sonst ein Austausch nur unter Verwendung von Hilfsprogrammen möglich, die die einzelnen Formate konvertieren.

Radiobutton Radiobuttons sind im allgemeinen rund und lassen sich im Gegensatz zu normalen Buttons nur umschalten. Sie funktionieren genau wie Stationstasten beim Radio: wenn man eine Taste drückt, gehen alle anderen wieder aus. Von mehreren Radiobuttons muss und kann immer nur genau einer angewählt sein.

Abbildung 7: Ein Beispiel für Radiobuttons

Verschiedene Gruppen von Radiobuttons sind innerhalb eines Dialoges meist graphisch voneinander getrennt, z.B. durch einen Rahmen.

Routine Als Routine bezeichnet man normalerweise einen Baustein eines Programms, der für eine bestimmte Aufgabe zuständig ist. Zum Teil wird dieser Ausdruck auch für kleinere Hilfsprogramme verwendet, insbesondere wenn, diese Teile des Betriebssystems ersetzen.

XBRA-Kennung Die XBRA-Kennung dient dazu, eine gewisse Ordnung in diejenigen Programme zu bekommen, die Vektoren des Betriebssystems verbiegen. Wenn man einen solchen Vektor auf seine eigene Routine verbiegt, soll man vor der Speicherstelle, an die man springt, den String ’XBRA’ einfügen. Danach kommt dann noch eine vier Byte grosse eigene Kennung des Programms. Nun ist es möglich zu erkennen, ob das eigene Programm schon installiert ist, auch wenn nachher noch ein weiteres Programm denselben Vektor verbogen hat. Das funktioniert so, dass man vor der angegeben Anfangsadresse nach dem String XBRA und dann nach der Kennung seines Programms sucht.

Literatur

[1] Atari ST Profibuch, H.-D. Jankowski, D. Rabich, J.F. Reschke, 2. Auflage, SYBEX, 1988

[2] Vom Anfänger zum GEM-Profi, D. Geiss, J. Geiss, 1. Auflage, Hüthig Verlag, 1989

[3] ”Wir lassen drucken”, Uwe Seimet, St Computer, 4, S. 94-96 (1990)