Directory Manager
Hilfe für Disketten
DIR.BIN ist eine RSX-Erweiterung für alle CPCs, die den Umgang mit dem
Directory wesentlich erleichtert. Alle Befehle, die eine Parametereingabe
erfordern, sind mit einer Help-Funktion ausgestattet, die die Anzahl der
benötigten Parameter und deren Reihenfolge und Namen angibt. Die Help-Funktion
wird durch Eingabe des Befehlsnamen (ohne Parameter) aufgerufen.
Im Programm ist ein Datei-Entschützer eingebaut, der unmittelbar nach der
Initialisierung der Erweiterung aktiv wird. Alle mit ",P" gespeicherten
BASIC-Dateien können somit ohne Probleme ganz normal mit dem LOAD-Befehl
geladen werden.
* Eingabe von Dateinamen
* Bei Bezeichnung "filename":
Es kann das übliche Format verwendet werden (Punkt als Trennung zwischen
Dateiname und Erweiterung, Groß- und Kleinschreibung spielt keine Rolle).
Besonderheit:
Wenn der Dateiname acht Zeichen lang ist, braucht der Punkt nicht eingegeben zu
werden (zum Beispiel FILENAMEBAS oder FILENAME.BAS). Bei File-Namen ohne
Extension bitte den Punkt nicht eingeben!
Benutzer eines CPC 464 müssen den Dateinamen in einer Variablen speichern und
rufen diese dann mit dem Klammeraffen auf (zum Beispiel name$="FUNFILE.BAS":
|UNHIDE,0,@file$)
* Bei Bezeichnung "amsfile":
Eingabe des File-Namens im AMSDOS-Format (reiner Dateiname oder User-Nummer,
Laufwerk, Doppelpunkt, Dateiname (zum Beispiel testfile.ext oder
15:testfile.ext oder a:testfile.ext oder 15a:testfile.ext).
* Laufwerk
Eingabe von "0" für Laufwerk A und von "1" für Laufwerk B bei allen
entsprechend bezeichneten Befehlen.
* Anzeige der Dateien:
Nach jeweils 20 angezeigten Dateinamen erfolgt ein Warten auf einen beliebigen
Tastendruck (entsprechender Meldungstext erscheint). Mit der ESC-Taste kann die
weitere Anzeige jedoch verhindert werden. Bei eingeschalteter Totalisierung
werden nur die bisher aufgelaufenen Totale angezeigt (siehe unter
TOTAL-Befehl).
Die Befehle
¯¯¯¯¯¯¯¯¯¯¯
|DIR.READ,laufwerk
Das Directory des entsprechenden Laufwerks wird in den Buffer eingelesen.
DATA- oder CP/M-formatierte Disketten werden automatisch erkannt.
|SHOW.FORMAT
- ohne Parameter:
Zeigt die Formatierung (DATA oder CP/M oder XXXX wenn zuvor kein Directory
eingelesen wurde)
- mit Parameter:
Zeigt die Formatierung auf dem bezeichneten Laufwerk (0=A, 1=B). Empfehlung:
Vor Verwendung des |DISKCOPY-Befehls mittels |SHOW.FORMAT,0 und |SHOW.FORMAT,1
überprüfen, ob beide Disketten gleich formatiert sind. Nötigenfalls
Zieldiskette neu formatieren.
|SHOW.ALL
Zeigt alle Directory-Einträge in der Reihenfolge, in der sie sich auf der
Diskette befinden.
Totalisierung: siehe unter |TOTAL-Befehl.
|SHOW.ERASED
Zeigt nur gelöschte Files.
Totalisierung: siehe unter |TOTAL-Befehl.
|SHOW.USER,user
Zeigt alle Files des angegebenen User-Bereichs an.
Totalisierung: siehe unter |TOTAL-Befehl.
|SHOW.EXCEPT,user
Zeigt alle Files, die nicht dem genannten User entsprechen. Beispiel:
|SHOW.EXCEPT,229 zeigt alle nicht gelöschten Files.
Totalisierung: siehe unter |TOTAL-Befehl.
|SHOW.RO
Zeigt alle Files mit Read-Only-Status (das bedeutet Files, die gegen Umbenennen
und Löschen geschützt sind).
Totalisierung: siehe unter |TOTAL-Befehl.
|SHOW.RW
Zeigt alle Files, die keinen Read-Only-Status haben.
Totalisierung: siehe unter |TOTAL-Befehl.
|SHOW.HIDDEN
Zeigt alle versteckten Files.
Totalisierung: siehe unter |TOTAL-Befehl.
|SHOW.UNHIDDEN
Zeigt alle Files, die nicht versteckt sind.
Totalisierung: siehe unter |TOTAL-Befehl.
|SHOW.FREE
Zeigt Anzahl der freien Directory-Einträge und der freien Kapazität in kByte.
|SHOW.USED
Zeigt Anzahl der benutzten Directory-Einträge und der benutzten Kapazität.
Unter "benutzt" werden Dateien, die als gelöscht gekennzeichnet sind, nicht
gezählt.
|TOTAL.ON
Schaltet die Totalisierung ein (Summenbildung über Anzahl und kBytes der nicht
gelöschten Dateien). Dieser Befehl wird am Anfang automatisch initialisiert.
|TOTAL.OFF
Schaltet die Totalisierung aus
|UNHIDE
Ohne Parameter: Löscht den Hide-Status bei allen Dateien.
|UNHIDE,user,filename
Löscht den Hide-Status nur bei der angegebenen Datei.
|HIDE,user,filename
Versteckt die angegebene Datei.
|RW
Ohne Parameter: Löscht den Read-Only-Status bei allen Dateien.
|RW,user,filename:
Löscht den Read-Only-Status nur bei angegebener Datei.
|RO,user,filename
Setzt Read-Only-Status bei angegebener Datei.
|UNDO
Macht die Befehle |UNHIDE and |RW rückgängig (entsprechende Dateien haben
wieder ihren ursprünglichen HIDE beziehungsweise Read-Only-Status).
|CHANGE.USER,user-neu,user-alt,filename
Wechselt den User-Bereich einer Datei bei gleichbleibendem File-Namen. So
können zum Beispiel gelöschte Dateien wieder benutzbar gemacht werden
(Beispiel: |CHANGE.USER,0,229,filename)
|CHANGE.NAME,filename-neu,user,filename-alt
Ändert den Dateinamen bei gleichbleibendem User-Bereich.
|KILL,user,filename
Entfernt einen Directory-Eintrag definitiv. Aus Sicherheitsgründen nur auf
User-Bereich 229 (gelöschte Dateien) anwendbar.
Sicherheitsabfrage: Entfernung kann mit ESC-Taste verhindert werden.
|DIR.WRITE
Schreibt das Directory wieder auf das Laufwerk zurück, von welchem ursprünglich
eingelesen wurde (Laufwerksbezeichnung wird sicherheitshalber noch einmal
angezeigt).
Sicherheitsabfrage: Mit der ESC-Taste kann das Zurückschreiben verhindert
werden, mit jeder anderen Taste wird die Sicherung durchgeführt.
Diesen Befehl auf alle Fälle vor den Befehlen |DISKCOPY, |FILECOPY, |TYPE oder
|CAT durchführen, da diese Befehle einen Teil des Directory-Buffers
überschreiben!
|FORMAT.DATA,laufwerk
Formatiert die Diskette im angegebenen Laufwerk im DATA-Format.
Sicherheitsabfrage: Formatierung kann mit der ESC-Taste verhindert werden.
|FORMAT.CPM,laufwerk
Formatiert die Diskette im angegebenen Laufwerk im CP/M-Format.
Sicherheitsabfrage: Formatierung kann mit der ESC-Taste verhindert werden.
|DISKCOPY,richtung
Richtung 0 = Es wird von Laufwerk A nach B kopiert.
Richtung 1 = Es wird von Laufwerk B nach A kopiert.
Sicherheitsabfrage: Kopieren kann mit der ESC-Taste verhindert werden.
|FILECOPY,zielfile$,ursprfile$
Die File-Namen werden hier im AMSDOS-Format eingegeben, zum Beispiel
"2a:filename.ext"
Kopiert alle Dateiarten von einem Laufwerk auf ein anderes oder von einem User
zum andern, ganz nach Belieben. Hier ist folgendes zu beachten:
ASCII-Files (Textdateien) können beliebig groß sein.
BASIC- und Binär-Files bis maximal 16kByte Größe:
Bildschirmspeicher wird als Puffer benutzt (wie bei ASCII-Files). Eine
Veränderung des Bildschirminhaltes darf deshalb nicht verwundern und ist völlig
normal. Ab 16 kByte bis maximal 32 kByte: Puffer befindet sich ab Adresse
&1000.
Vorsicht: Ein vorher geladenes BASIC-Programm und auch Variableninhalte gehen
dadurch zum größten Teil verloren. Deshalb BASIC-Programme vor Anwendung dieses
Befehls sichern und nachher wieder nachladen.
Ab 32 kByte erfolgt Meldung "File zu groß", und es wird abgebrochen.
Detaillierter Ablauf des Kopierens eines BASIC- oder Binär-files:
1. Feststellen der File-Größe
2. Festlegen des Pufferanfangs (siehe oben)
3. Einlesen des Files
4. Schrieben nach Zielfile
5. Öffnen des Zielfiles
6. Feststellen der ersten Datenblocknummer
7. Umrechnen der Datenblocknummer in Spur- und Sektornummer
8. Einlesen dieses Sektors
9. Patch der Startadresse
10. Neuberechnung der Checksumme
11. Patch der Checksumme
12. Zurückschreiben des Sektors
Testen Sie deshalb |FILECOPY vorerst mit einer Zieldiskette, auf der keine
unersetzlichen Datenbestände vorhanden sind!
|DETAILS,amsfile
Zeigt alle Details eines Files:
File-Art: ASCII, BASIC-normal, BASIC-geschützt oder Binär
Startadresse: Bei ASCII-Files: &0000, sonst entsprechende Adresse
Länge: Bei ASCII-Files: &0000, sonst entsprechende Länge
Autostart-Adresse: Bei ASCII-Files: &0000, sonst entsprechende Adresse
End-Adresse: Bei ASCII-Files: &FFFF, sonst entsprechende Endadresse
Berechnung: Nach der Formel: (Startadresse + Länge)-1
Block: erste Datenblockadresse des Files *)
Track/Sektor: Erster Track und erster Sektor des Files *)
Status: R/O (Read-Only), HIDDEN (versteckt) oder ERASED (gelöscht)
|TYPE,amsfile
Zeigt ein ASCII-File auf dem Bildschirm an (entspricht dem CP/M-Befehl TYPE).
Nach jeweils 20 Zeilen erfolgt eine Unterbrechung. Mit ESC kann abgebrochen,
mit jeder anderen Taste weitergefahren werden.
_______________________________________________________________________________
*) wichtige Angaben, wenn das File mit einem Diskettenmonitor untersucht werden
soll.
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
|LAUFWERK
Ohne Parameterangabe: Aktuelles Laufwerk wird angezeigt.
LAUFWERK,0: Laufwerk für Datensicherung auf "A" umstellen.
LAUFWERK,1: Laufwerk für Datensicherung auf "B" umstellen.
2 Parameter: Laufwerk und User einstellen, zum Beispiel |LAUFWERK,0,229
Sicherheitshalber anwenden vor dem |DIR.WRITE-Befehl.
|CAT,Laufwerk,User
Komfortablerer CAT-Befehl als unter BASIC. Verlangt die Eingabe des Laufwerks
und des Users. Damit entfällt die umständliche Anwendung des Laufwerkbefehls |A
oder |B und des |USER-Befehls. Umgeht auch die Sperre der höchstzulässigen
User-Nummer 15. Somit können sehr einfach gelöschte Dateien angezeigt werden
(| CAT,0,229 auf Laufwerk A oder |CAT,1,229 auf Laufwerk B)
|HELP
Zeigt eine Übersicht über sämtliche Befehle.
(Markus Wepfer/rs)