Hallo, ich will hier mal zunächst textlich ein Programm vorstellen, welches ich Anfangs der 1990er Jahre programmiert habe, und mal ausloten, ob an der Perfektionierung des Programms Interesse besteht. Die Beschreibung des Programms muss erstmal aus dem Gedächtnis erfolgen, weil ich wo ich gerade bin keinen Zugriff auf meinen ST habe. Nähere Fragen bzw. Korrekturen zu den Angaben kann ich auf Anfrage Abends am "lebenden Objekt" beantworten - wobei noch die Frage zu klären ist, wie/ob ich einen Screencopy von meinem ST rüber bekomme, oder ob das Tool bereits als Backup auf meinem PC existiert und sich dort in einer Emulation zeigen lässt - einen gewissen Stand meiner ST-Platten/Parttionen habe ich auf meinem PC in einer Form, dass Hatari das als Laufwerke einbinden können müsste - noch nicht getestet. Ich habe außerdem an meinem ST nur 720er Floppys und an meinem PC kein internes Diskettenlaufwerk mehr, und das USB-Laufwerk kann nur HD-Disketten lesen/schreiben, und meinen Falcon habe ich noch nicht so weit dass ich ihn als Brücke nutzen kann, und mein Mega-STE, muss mal gucken ob der ein HD-Laufwerk hat (vergessen...) und erstmal an den ran kommen, der ist unter dem Schreibtisch hinter vielen anderen Sachen "vergraben" ...
(Mal schauen, ob das 12 Jahre alte Thinkpad mit Xp in der Rumpelkammer noch geht...)
Aber nun mal zu dem Programm:
Name: Progman
Ich bin damals um 1991/92 langsam vom ST auf einen PC umgestiegen, und damals war Windows 3.11 bzw. von mir nach kurzer Zeit das bevorzugte OS/2-Warp3 aktuell. Schon nach kurzer Eingewöhnungseit am PC fing ich an, an meinem ST, der noch fleißig parallel genutzt wurde, zu bemängeln, dass man dort immer alle Programmpfade auswendig kennen musste, um sie zu finden und zu starten. Die Verknüpfungen und Programm-Gruppen des Windows 3.11 Programm-Managers waren damals schon eine schöne Sache, die auch unter OS/2 ähnlich ausgeführt war. (Die heute bekannte Startleiste gab es erst ab Dezember 1995 als Windows 95 erschien.) Da fragte ich mich, ob man auf dem ST nicht etwas ähnliches wie den Windows-Programm-Manager realisieren könnte. Da der ST ohne Zusatz nicht Multitasking-fähig ist, wäre ein als Haupt-Programm laufender Programm-Manager natürlich etwas blöd, so dachte ich es mir, weil man dann ja keinen Zugriff auf den für andere Zwecke (z.B. Datei-Operationen) nützlichen Desktop hat, oder man hätte einen komplett neuen Desktop in Konkurrenz zu Gemini oder so schreiben müssen. Oder den Autoren der Alternativ-Desktops diese Idee geben müssen, dass die das einbauen, ohne Internet war aber erstens die Kontaktaufnahme schwierig und zweitens geschah damals in der Richtung nicht viel und drittens wollte ich meine Idee selbst verwirklichen. Also entschied ich mich für einen anderen Weg, der sogar mit Erweiterungen wie Gemini, unter Magic! oder Multitos bzw. MiNT funktionieren sollte.
Die Grundidee war folgende:
1. Die Grundfunktion, nämlich Programm-Gruppen sollen ganz normale Dateiordner sein. Vorteil: Kein Programmieraufwand, Gruppen können wenn man das will auf allen Laufwerken liegen.
2. Darin liegen Dateien, die den Programmnamen des auszuführenden Programms haben, die aber nur eine Textinformation beinhalten, die durch das Programm ausgewertet wird. U.a. liegt dort der Pfad des zu startenden Programms. Also im Prinzip genau das, was unter Windows 9x und später in den *.lnk Desktopverknüpfungen drin ist.
3. Das Programm, Programm-Manager, kurz progman, genannt, wertet diese Dateien aus und startet das darin verknüpfte Programm.
4. Das Programm sollte bei jeder Auflösung funktionieren, sprich nur GEM-Funktionen verwenden.
Im Laufe der Entwicklung wurde diese Grundidee immer weiter ausgebaut und das Programm bekam einige Komfortfunktionen, aber ein grundsätzliches Problem konnte ich nicht befriedigend lösen, bis ich damals das Interesse am ST fast volltändig verlor. Das Programm wurde im Status "Good Enough" verwendet und hat sich bei mir soweit bewährt. Getestet habe ich das Programm damals aber nur unter TOS 2.06 auf meinem mit PAK68/2+Autoswitch-Overscan gepimpten 1040er und später mit dem zufällig ergatterten Mega-STE. Auch mit Gemini und Mint mit Newdesk.prg (also eine Multitaskingumgebung die von Atari in der Szene kursierte, bevor das Multitos für den Falcon erschien) funktionierte das
Für den Progman.PRG reservierte Dateiendung für den Doppelklick aus dem GEM-Desktop Datei-Ordner heraus: *.pgm - Für die PGM-Dateien habe ich auch ein Icon geschaffen, welches dem Symbol des Windows-Programmmanger ähnelte und welches man in die Deskicon.rsc einfügen kann, damit die Verknüpfungen ihr eigenes Symbol bekommen.
Die Installation war im Prinzip wie folgt: Progman.prg und die zugehörige RSC-Datei irgendwo auf der Platte ablegen, z.B. c:\tools\progman. Icon in die Newdesk.rsc einbinden, und PGM-Dateien mit progman.prg verknüpfen. Wo man die PGM-Dateien ablegt, ist einem selbst überlassen, ich habe dafür einfach einen Ordner auf c:\ abelegt, und den geöffnet, und dann Desktop.inf sichern.
Direkter Aufruf von Progman.prg ohne PGM-Datei: Es öffnet sich eine Fileselect-Box, in dem man entweder eine neue PGM-Datei anlegen kann, oder eine existierende PGM-Datei bearbeiten konnte. Im Falle einer neuen PGM-Datei erscheint eine weitere File-Select-Box in der man das auszuführende Programm heraus sucht. Außerden konnte man dem Programmen auch noch Startparameter mitgeben,z.B. automatisch zu öffnende Dateien. Danach wird man nach dem Startmodus gefragt, dazu gleich mehr. Wenn man eine existierende PGM-Datei öffnet, kann man den Startmodus und die Übergabeparameter bearbeiten. Damit man sinnvoll mit progman arbeiten kann, legt man sinnvollerweise auch in seinen Gruppen eine Verknüpfung auf progrman selbst an - ohne Übergabeparameter, denn eine Prüfung auf Rekursion (Progman über PGM-Datei aufrufen, in der wiederum die progrman.pgm als zu öffnende Datei angegeben wird -> Endlosschleife...) hatte ich wenn ich mich noch erinnere, nicht eingebaut.
Der indirekte Aufruf des Progman.prg erfolgt über den Doppelklick auf eine PGM-Datei, es wird die Datei ausgelesen und ausgewertet: Welches Programm soll gestartet werden, und welcher Startmodus. Das wichtigste ist am Ende der Pexec()-Aufruf, der das in der PGM-Datei verknüpfte Programm startet.
Und nun zu dem Problem mit dem Startmodus, welches letztendlich damals zu dem "Good-Enough"-Status führte: Es gab Programme, die beim Aufruf durch Pexec() ihre RSC-Dateien nicht fanden, weil durch den Aufruf von Progrman.prg ein vom GEM-Desktop ein anderes aktuelles Verzeichnis gesetzt war, nämlich das in dem Progman lag. Über den Startmodus konnte nun ausgewählt werden, ob Progman.prg vor dem Pexec()-Aufruf erst das aktuelle Verzeichnis zum Programmverzeichnis des zu startenden Programms ändern soll. Eigentlich klingt das soweit logisch, und hätte der Default sein sollen. Doch gab es auch Programme, die dies übel nahmen, und nur ohne das Verzeichnis zu welchseln funktionierten, sprich ihre (RSC-)Dateien nur so fanden. Das heißt, im Zweifelsfalle musste man den Startmodus durch Bearbeiten der PGM-Datei ändern, siehe oben. Einszwei ganz hartnäckige Fälle sind mir auch noch in Erinnerung, da musste man die RSC/INF-Dateien des auszuführenden Programms mit in den Ordner von Progman.prg legen, damit die starteten. Ich damals habe nie herausbekommen, wie der Desktop bzw. Alternativen wie Gemini dieses Problem automatisch gelöst haben. Könnte auch sein, dass ich damals auch einfach nur was falsch gemacht habe, keine Ahnung...