Nur der Dumme räumt auf, das Genie beherrscht das Chaos. Aber mal ganz ernsthaft, wem ist es noch nicht passiert, daß nach einer Kopieraktion von drei zusammengehörigen Programmen sich zwei davon auf der falschen Diskette wiederfanden, oder daß ihm die Reihenfolge seiner Programme nicht gefiel und er bei dem Versuch das zu ändern nach einigen Stunden SCRATCH & SAVE verzweifelt aufgab?
Dies muß ein Ende haben, dachte ich mir und ging daran, ein Werkzeug zu entwickeln, daß das Chaos beherrscht und Ordnung in wirre Diskettenverhältnisse bringt. Ob das Programm deswegen geniale Züge trägt, verbietet mir die Bescheidenheit zu diskutieren. Bleiben wir bei den Fakten.
Track 18 ist von der Grundkonzeption her dafür gedacht, ein Diskettendirectory umzusortieren und an geeigneter Stelle Bemerkungen anzubringen. Darüber hinaus bietet es einige nützliche und teilweise nicht alltägliche Features. So zum Beispiel die Möglichkeit, eine Bemerkung (etwa Informationen über einzelne Programme) in einen freien Bereich auf Spur 18 zu schreiben. Sollte jemand, wie ich auch, es vorziehen, Schreibschutzaufkleber zum Beschriften seiner Disketten zu verwenden, es sei ihm gewährt - Track 18 bietet auch einen Softschutz. Auch die Möglichkeit einzelne Files zu schützen, die das DOS der 1541 vorsieht, wird genutzt.
Das Programm arbeitet ausschließlich mit Spur 18 (Hex $12), wenn man von den Auswirkungen einiger Diskettenbefehle absieht.
Die Programmbedienung wird dem Anwender durch konsequente Menüführung leicht gemacht.
Der Aufbau en Detail:
Das Hauptmenü:
Directory einlesen
Directory bearbeiten
Neues Directory schreiben
Directory von Disk
Disk Command senden
Diskettennamen ändern
Disk-Kommentar
Files schützen/freigeben
Schreibschutz
Ende
Der aktuelle Menüpunkt ist durch reverse Schrift hervorgehoben. Die Auswahl der Positionen erfolgt über die Cursor-up/down Taste, die den reversen »Balken« verschiebt. Aus dem angewählten Programmteil kann zu jedem Zeitpunkt durch F1 ins Hauptmenü zurückgekehrt werden.
Directory einlesen
Dieser Menüpunkt gehört zu dem auch optisch abgetrennten Komplex »Directory bearbeiten«. Das Directory muß zur Bearbeitung in den Speicher gelesen werden. Nur hier wird umgestellt, sortiert und eingefügt. Und um genau diese Dinge zu tun, bewege der geneigte Anwender den reversen Balken auf den Menüpunkt.
Directory bearbeiten
Sofort nach Betätigen der Return-Taste (vorausgesetzt man hat vorher das Directory eingelesen) erscheint ein komplettes Inhaltsverzeichnis auf dem Bildschirm. Die bis zu 144 Files werden auf 9 Seiten dargestellt, die mit der Cursor-up/down Taste umgeblättert werden können. Komplett heißt, auch freie Plätze, die durch SCRATCH entstanden sind, werden angezeigt und können mit den Funktionen
F3 = Sortieren
F5 = Einfügen
F7 = Löschen
wie jeder andere Fileeintrag behandelt werden. So kann ein Freiplatz an eine Stelle verschoben werden, wo beim nächsten SAVE der Programmname aufgenommen werden soll.
Sortieren
Die Routine ermöglicht das Verschieben eines Files von einer Position zu einer anderen. Nach Drücken von F3 wird erst nach der Platznummer des Files gefragt, das verschoben werden soll, dann wohin es geschoben werden soll.
Einfügen
Hier wird nach der Platznummer gefragt, vor die eine Bemerkung gestellt werden soll. Da das System niemandem vorschreibt, welcher Art eine solche Bemerkung sein soll, — es wird unverbindlich eine Reihe Bindestriche angeboten — fragt es noch nach dem Bemerkungstext. Dieser wird dann als Programmfile getarnt in die Inhaltsliste aufgenommen. Ein Versuch diesen »blinden Passagier« durch LOAD später aufzurufen endet allerdings mit einem ERROR, da der Verweis auf den Fileanfang auf der Diskette fehlt.
Löschen
Dieser Menüpunkt ist mit etwas Vorsicht zu genießen. Nach Angabe der gewünschten Platznummer wird dieser Platz, ob Bemerkung, ob File, schonungslos gestrichen — wohlgemerkt nur im Speicher. Erst die Rückkehr ins Hauptmenü und dann die Anwahl des Punktes.
Neues Directory schreiben
bannt alle Veränderungen auf die Diskette. Da dieser Programmteil alle, auch ungewollte Änderungen am Directory endgültig macht, wird zur Sicherheit noch einmal eine Befehlsbestätigung verlangt. Sollte man sich seiner Sache nicht ganz sicher sein, ist es ratsam, noch einmal einzulesen.
Ein auf die Diskette zurückgeschriebenes Inhaltsverzeichnis ist natürlich ohne Einschränkungen funktionsfähig.
Directory von Disk
Dieser Programmteil stellt das im Moment tatsächlich auf der Diskette vorhandene Directory dar, ebenfalls in Seiten zu je 16 Files. Die Routine ist nicht übermäßig schnell und kann daher zu jedem Zeitpunkt mit F1 abgebrochen werden. Man kann auf diese Weise sofort den Erfolg seiner Arbeit kontrollieren, denn die Art der Darstellung entspricht genau dem »LOAD "$"« Befehl in Basic.
Die im Folgenden beschriebenen Programmfunktionen beinhalten praktisch alles, was man braucht, wenn man die in Spur 18 enthaltenen Informationen verändert. Zunächst jedoch die einzige Routine, die etwas aus dem Rahmen fällt, weil sie nicht auf Spur 18 begrenzt ist:
Disk-Kommando senden
Ohne OPEN-Anweisung kann jeder Befehl, den das DOS versteht, an die Diskettenstation geschickt werden. Das Format der Befehle ist dasselbe wie bei »OPEN«. Jedoch wird nur der Teil gebraucht, der normalerweise in Anführungszeichen steht. Ein Befehl darf bis zu 70 Zeichen lang sein.
Diskettennamen ändern
Wer möchte nicht manchmal eine Diskette umbenennen, ohne sie gleich zu formatieren? Name und ID sind gemeinsam oder einzeln veränderbar, ohne die übrigen Informationen auf der Diskette zu berühren. Ein echter Leckerbissen.
Disk-Kommentar
Hier wird brachliegender Speicherplatz sinnvoll genutzt! In 80 freie Bytes des Block 0 auf Spur 18 kann eine 80 Zeichen lange Bemerkung geschrieben werden. Nach dem Anwählen dieses Menüpunktes gelangt man in ein Untermenü mit den Positionen:
Lesen
hier wird nur der vorhandene Text ausgelesen.
Schreiben
Vor jedem Schreibvorgang wird der schon vorhandene Text eingelesen und im vier Zeilen langen Arbeitsfeld dargestellt. Er kann nun überschrieben oder zeilenweise editiert werden.
Files schützen/freigeben
Das DOS bietet eine Möglichkeit, einzelne Files vor versehentlichem »exitus« zu beschützen. Ein geschütztes File kann nicht geSCRATCHt werden. Es ist höchstens noch mit der Löschen-Funktion von »Track 18« auszuradieren (außer man gibt es vorher wieder frei).
Und hier ist die vielleicht wichtigste Routine:
Schreibschutz
Was bisher nur mit einem Klebeschild zu bewerkstelligen war, findet nun unsichtbar softmäßig auf der Diskette statt. Eine Diskette, die mit »Track 18« geschützt ist, verweigert jeglichen Schreibzugriff. Lesen ist weiterhin problemlos möglich. Als Kennzeichen steht in der Namenszeile des Directory beim Laden nicht mehr 2A, sondern zwei »Kleiner«-Zeichen.
Der Vollständigkeit halber befindet sich noch die Anweisung
Ende
im Menü. Das Programm beendet sich nach einer Rückfrage selbst mit einem normalen END. Wer möchte, kann statt der END-Anweisung den Befehl SYS 64738 einfügen. Damit findet dann ein Reset statt, und der Computer steht für weitere Aufgaben wieder jungfräulich zur Verfügung.
Nach dieser ausführlichen Erläuterung bleibt mir nur noch ein Ratschlag: Für Probeläufe nach dem Eintippen und zum Einarbeiten auf jeden Fall eine besondere Probediskette verwenden, damit bei Eingabefehlern keine wichtigen Daten oder Programme zerstört werden.
Tips zum Tippen
Die im Programm verwendeten REM-Zeilen dienen nur der optischen Gliederung des Listings. Sie werden von keiner Sprunganweisung angesprungen, so daß man ohne unangenehme Folgen darauf verzichten kann.
Die folgende »PRINT AT«-Maschinenroutine habe ich dem Data Becker Buch »64 Intern« entnommen. Sie ist die kürzeste, die mir bekannt ist. Im Programm wird sie mit SYS P,x,y aufgerufen, wobei P=828 (=$033C).
Allen leidenschaftlichen Programmierern und Programmverbesserern sei gesagt: »Track 18« ist ausbaufähig! Für diesen Zweck habe ich mir Mühe gegeben, das Programm modular aufzubauen und zumindest die wichtigsten Routinen wasserdicht zu machen. Das heißt, vor dem Aufruf mit GOSUB werden die benötigten Werte in einige festgelegte Variablen geschrieben und die Routine gibt ihre Antwort über andere festgelegte Variablen. Jede andere von der Routine benutzte Variable wird direkt am Ort des Geschehens neu belegt (Arrays und Programmkonstanten ausgenommen). Wer diesem Prinzip treu bleibt, wird bei einem Ausbau des Programms keine Probleme haben.