Commander 64 - Version 1
Die Idee zum Commander entstand schon recht früh. Nachdem ich stolzer Besitzer einer CMD HD-540 war, kam sehr schnell der Wunsch nach einem Tool auf, bei dem man sich durch die ganzen Verzeichnisse und Partitionen der Platte bewegen kann.
Hauptfenster des Commander 64
Hauptfenster des Commander 64
Mit Hilfe von Jiffy-Dos kann man sich zwar schon wesentlich besser auf einer Festplatte bewegen, als ohne (das ständige eingeben von »OPEN 1,x,15,"CD:...":CLOSE 1« ist sicher nicht das bequemste), aber wirklich Spaß macht dies nicht.
Von diesem Gedanken animiert begann ich im Sommer 1997 mit der Arbeit am Commander. Zuerst entstanden Routinen für das einlesen von Partitionstabelle und Verzeichnisstruktur. Bei der anschließenden Layout-Arbeit orientierte ich mich vorallem am Unix-Beispiel »Midnight-Commander«. Ich entschied mich dann sehr frür dafür lediglich ein einzelnes Fenster zu benutzen und auf eine Kopierfunktion zu verzichten. Viel Speicher ging für die Speicherung der Directorystruktur drauf, und die Verwaltung von 22 Geräten (rein theoretisch, praktisch fast unmöglich). Desweiteren waren meine ersten Routinen auch gar nicht für ein Splitfenster vorgesehen, dies habe ich alles auf eine Version 2 verschoben (die bis heute aussteht :-().

Eine Kopierfunktion per Split-Screen wäre eines der schönsten Sachen gewesen, aber ich orientiere mich zunächst an der Unterstützung für alle Peripheriegeräte. Abgesehen vom Kopieren sollte man zumindest alle Datenträger und Festspeicher genaustens unter die Lupe nehmen können. So funktioniert die erste Version einwandfrei mit den üblichen Geräten. Selbst die Sub-Directorystruktur der 1581 wird unterstützt (man kann sogar einzelne Verzeichnisse zurück gehen, obwohl die 1581 keinen Befehl hierfür hat, und normal nur zum Rootdir zurückkehren kann).
Der Commander ist so ausgelegt, das man sich bequem durch Verzeichnisse und Partitionen hangeln kann. Man kann zwischendurch auch auf andere Geräte umschalten, ohne das der Directory-Baum verloren geht, rein theoretisch könnte mn also 22 Festplatten gleichzeitig betreiben. Am wichtigsten war für mich damals, das man keinen Unterschied zwischen Partitionen und normalen Unterverzeichnissen sehen sollte. Das ganze wurde so ähnlich organisiert, wie bei der Verzeichnisstruktur unter Unix.
Infofenster des Commander 64
Datei Informationsfenster
Driveauswahlfenster
Geräteauswahl per Menü
Wichtig war für mich, daß man mehrere Dateien markieren und gleichzeitig bearbeiten kann. So kann man per Space einzelne Files markieren, und dann auf einen Schlag umbenennen, sich anzeigen lassen, oder löschen.
Die Anzeigeroutine ist dabei so geschrieben, daß man Dateien sowohl als Text, als auch als Bild darstellen lassen kann (Bitmap und Amica-Paint). Hat man mehrere Dateien markiert, so kann man beim anzeigen auch zwischen "Alles als Text", "Alles als Bild" oder "Einzelabfrage" wählen. Bei der Anzeige als Bild kann man zusätzlich auf Diashow-Modus schalten, bei dem die Bild ohne Tastendruck hintereinander gezeigt werden.
Diese Bildanzeige ging natürlich auf Kosten des freien Speichers. Ich wollte um jeden Preis vermeiden, daß nach der Anzeige eines Bildes ein Verzeichnis neu eingelesen werden muß.
Zum Glück konnte ich hierfür den Speicher von $E000-$FFFF nutzen, der mir für den Rest des Programms nicht zur Verfügung stand, da ich ja ständigen Gebrauch der Systemroutinen machte.
Nach und nach wurde der Commander dann erweitert und kam schließlich in die finale Phase. Jetzt wurde mir eigentlich erst richtig deutlich, wie sehr mir eine Kopierfunktion fehlte.
Also begann ich dann wenigstens einen kleinen Hack einzubauen. Ein kleines Fenster und eine noch kleinere Routine ermöglichte dann wenigstens das expliziete kopieren von markierten Files auf ein beliebiges Gerät in eine beliebiges Verzeichnis. Noch heute benutze ich diese Funktion, um den Inhalt einer Diskette auf meine Platte zu kopieren, und im Grunde ist es gar nicht so mühsam wie man zunächst erwartet. Ich wähle als erste das Zielverzeichnis auf der Platte aus, wechsle danach auf das Floppydrive, markiere die Dateien und tippe im Kopierfenster einfach »D:« ein. Der ausgewählten Pfad hat sich die Platte und der Commander gemerkt. Kopierfunktion
Schließlich gab es doch noch eine Kopiermöglichkeit.
Als das Programm dann fertig war und in der GO64 veröffentlicht wurde, fiel mir auf, wie gut sich das Programm als reines Startutility machen würde.
Ich modifizierte den Commander also um ihn kleiner und auch ein wenig komfortabler zum suchen zu machen. Es wurden im Grunde alle Funktionen entfernt, die man nicht braucht wenn man ein Programm nur starten möchte. Also verschwanden die Funktionen zum löschen, umbennen und kopieren. Dafür konnte man allerdings die Directorys alphabetisch sortieren lassen. Das einlesen der Partitionstabelle wurde um das 50 bis 100fache beschleunigt und ein paar kleinere Bugs entfernt. Das Ergebnis nannte sich dann schlicht und einfach »Fun 64«.


Commander 64 - Download
Die zweite Version des Commanders ist leider immer noch in Arbeit, deshalb kann ich hier nur die erste zum Download anbieten:
  • Commander 64/1 (51 KB, ZIP) enthält den Commander 64 und die Ramlink-Version, sowie eine ausführliche Dokumentation.
  • Commander Pack 1 (34 KB, ZIP) enthält den Commander und die Fun-Version. Daneben ist natürlich auch die Dokumentation, sowie eine Note zur Fun-Version enthalten.
  • Fun 64 (15 KB, LZH) ist nur die Fun-Version mit dem Note-File, also genau die Version die damals in der GO64 veröffentlicht wurde.


Commander 64 - Version 2 - Screenshots
Bisher unvollendet, aber ein paar Screenshots existieren bereits:
Listingmode Einstellungen
Menu zum Einstellen des Listingmodes
Layout Einstellungen
Einstellung des Layouts
Wie aus den Bildern ersichtlich wird, kann das Layout sowohl horizontal, als auch vertikal aufgesplitet werden, Dabei läßt sich die Höhe (bzw. Breite) individuell festlegen, und auch die einzelnen Felder aktivieren. Das ganze Programm ist dafür ausgelegt, daß es mit deutschen, wie auch englischen Menutexten compilierbar ist.

23.5.1999: Etwas unglaubliches ist passiert, ich habe heute doch ein wenig in meinem c2-src Verzeichnis gestöbert und ein paar kleinere Änderungen gemacht. Vielleicht will mir ja jemand helfen ;-) Den derzeitigen Sourcecode gebe ich gerne auf Anfrage frei (6502 Assembler als ASCII-Text, zum assemblieren unter Linux mit einer leicht modifizierten Version von Daniel Dallmanns Luna und lld).