        RecoverX - v00 - .hpr'98 - fr den Sinclair QL, QDOS und QXL

       QXL Dateien-Auszugs- und -Rettungsprogramm, erste Probeversion
           QXL-files Extraction and Recovery - re "RecoverX_doc"


 Copyright (C) 1998 und Urheberrecht beim Autor, H.-Peter Recktenwald, Berlin
                       email: phpr@mail.geocities.com
 Das Programm kann im Rahmen der in deutscher bersetzung als "GNU-G_txt" bei-
 gefgten GNU-Lizenz auf eigenes Risiko frei verteilt und benutzt werden, bei
 Widerspruch gegen Teile davon oder Nichteinhalten gilt sie als nicht gewhrt.
 Es sei aber darauf hingewiesen, da beim Weitergabe auf beliebig geartete Ge-
 genleistung neben den stets geltenden Bestimmungen des Urheberrechts dann auch
 Produkthafung und AGBG zulasten des Versenders Rechtskraft bekommen, ohne die
 Mglichkeit, das auszuschlieen.


Files:
        RecoverX                das eigenstndig ausfhrbare Programm.
        GNU_txt               \ die GNU-Lizenz (Original)
        GNU-G_txt             / dto. deutsch.

        qxlwin_scr              Quelltext, erfordert den "QF"-Basisjob v818,
                                "forth_scr" und "qxlsec_dat". Zur Bearbeitung
                                der Quelle wird auerdem ein Editor bentigt,
                                der Text ohne Steuerzeichen auf festliegender
                                Breite von 64 Zeichen wiedergibt ("f6ed" oder
                                jeder andere Forth-typische Blockfile-Editor).
        qxlsec_dat              leere QXL-Sector-Vorlage



Zum Programm:


RecoverX ist ein aus dem GF6 erstelltes Forth-Programm zum Extrahieren und
Wiederherstellen von Dateien aus QXL.WIN-Laufwerken oder -Dateien. Es wird
interaktiv bei uneingeschrnktem Zugriff auf das zugrundeliegende F6-System
betrieben und ist frei prgrammier- und nderbar, sowohl interaktiv als auch
durch einen bis zu 1000 Zeichen langen Parameterstring beim EX-Aufruf.

Dazu stehen neben den Programmworten im Vocabular RQX smtliche Worte des F6
zur Verfgung. Insofern ist es einer "shell" entsprechend, wie sie auch das
*Basic des QL darstellt, die um die eigentlichen Worte des Anwendungszwecks
erweitert ist. Darberhinas kann jederzeit sein aktueller Zustand als neuer
ausfhrbarer Job gesichert wreden (s.u.).

Aber keine Panik:
Fr die vorgesehene Verwendung sind Forth-Kenntnisse nicht erforderlich...
Und, was hier "Wort" heit, entspricht recht genau der *Basic "PROCedure".

Details knnen der beigefgten (englisch) kommentierten Programmquelle und
dem Hilfstext im Programm entnommen werden. Hier nur das Ntigste zum Start.


Voraussetzungen:


Systemanforderungen:

        keine (so sollte es immerhin sein), auer, da das Programm irgendetwas
        QDOS-Compatibles erwartet. Insbes. ist es unabhngig von irgendwelchen
        "Levels" der Filesyteme im Arbeits- wie im Zielrechner.
        Vorhandensein des PIF (Pointer I.F., "environment") ist vorteilhaft,
        aber zur Funktion nicht erforderlich.
        Die "comand line history" von Boris Jakubith wird automatisch mit 40
        Zeilen initiiert, wenn der Code vor dem Programmstart aktiviert wurde.
        Ergnzende (d.h. nicht notwendige) Funktionen, wenn IO2 vorhanden ist.

Speicherbedarf:

        84K fr Programm und Arbeitsspeicher, sowie etwa
         1K heap-Speicher je MB des betr. (pseudo-)Laufwerks
        fr die Verteilungstabelle der darin enthaltenen Datenblcke. Jene
        bestehen aus einer im Laufwerk selbst verankerten gleichbleibenden
        Anzahl aufeinanderfolgender Sectoren, z.B. vier. Der Speicherbedarf
        kann damit folgendermaen ermittelt werden:
                        map-memory = allocation-units * 2 + 80
                                   = total-sectors / secs/alloc.unit * 2 + 80
        d.h. bei vier Sectoren/Block, was 2K Bytes entspricht, ist ein 80MB
        WIN-Laufwerk in 40K solcher Zuweisungs- Einheiten aufgeteilt, die je
        ber einen 16-Bit-Index verwaltet werden. Das sind insges. 80K Bytes.

Andere Erfordernisse:

        ... ein taugliches QDOS.
        Entwickelt und unfassend geprft wurde RecoverX in der in der QXL,
        ein paar Tests wurden auch ber das QDOS-NETzwerk mit Hilfe zweier
        MINERVA/GC-QL durchgefhrt.
        U.a. Aufruf von X (s.u.) mit
                Quelle (1MB, QXL): n3_flp2_qxl.win
                Speicher (QL)    : ram1_qxldir.out
                Ziel (QL)        : n1_flp1
        Mit seinem Transfer von 2K/sec gewi nichts fr die Alltagsarbeit, aber
        immerhin ein RecoverX-Hrtetest - bei dem im brigen die Floppy des PC
        die eigentliche Bremse darstellt...
        Andere Prfungen fanden mit dem UQLX-Emulator statt, der zwar extrem
        langsam ist (halbe GC-Geschwindigkeit), was aber durch die Verbindung
        mit der LINUX/UNIX-Umgebung wieder weitgehend ausgegliche wird. Dort
        wurde der Inhalt verschiedener QXL.WIN-Files zwischen 50MB und 80MB
        Gre erfolgreich in das UQLX-Dateiensystem eingeordnet.

Mgliche Fehler:

        Auer dem bekannten(?) SMSQ/WIN-Desaster in der QXL (auch, und dann
        besonders weitreichend, nach NETzwerk-Aktionen beobachtet) sind Fehler
        bis dato nicht aufgetreten. Dazu nur kurz:
        Falls es Fehlermeldungen "bad medium" gibt, mu das Laufwerk noch
        keineswegs verdorben sein, jedoch sind dann im allgemeinen die Slave-
        Blcke im Speicher zerstrt. Gegen tiefgreifende Schden hilft dann
        nur(!) unverzgliches Aufgeben des gesamten QXL-Systems.
        Solche Fehler sind nach entsprechenden Vorkehrungen im F6-System wie
        auch im Programm nicht mehr aufgetreten.

        Im UQLX gibt es mitunter Fehlanzeigen/-Funktionen wegen mangelhafter
        Ausfhrung einiger QDOS-Traps des Filesystems (Stand 3/1998), die z.B
        bei CHANS (s.u.) zum Tragen kommen, die aber allem Anschein nach die
        Grundfunktionen des Programms nicht weiter stren.

        Es waren leider keine fehlerfreien Unterlagen zum Aufbau der QXL-Files
        aufzutreiben, auch die jngsten Verffentlichungen zhlen dazu. Es ist
        bedauerlich, da aus welchen (zweifelhaften) Grnden auch immer die an
        dem betr. Filesystem Beteiligten keinerlei diesbezgliche Dokumentation
        verffentlichen, und Interessenten dann zynisch auf dem "Rat" hngen-
        lassen, man mge die Strukturdaten experimentell selbst ermitteln.
        So weit, so schlecht, RecoverX ist aus eben diesem Grunde nur fr die
        QXL-WIN-Laufwerke geeignet, Werte von "Spuren" oder "Cylindern" werden
        nicht bercksichtigt. Sollten die Verantwortlichen sich doch noch zu
        einer frei zugnglichen serisen Dokumentation durchringen, knnte das
        Programm dann auch auf andere Aufzeichnungsstrukturen erweitert werden.
        Ausreichende Vorbereitungen dazu sind bereits getroffen.
        Alle erkannten Dinge wurden bercksichtigt, doch mu das Programm nicht
        unbedingt sicher sein. Darum, und weil die direkte Manipulation eines
        Laufwerks immer mit besonders hohen Risiken behaftet ist, wird in jedem
        Falle zustzliche Vorsicht angeraten sein.

        Direktzugriff auf QXL-Laufwerke ber Netz scheitert an Inkonsistenzen
        im TK2-Fileserver, der anscheinend die Filepositionierung falsch an das
        Ziel weiterreicht, oder sie in der Quelle nicht erkennt - oder aufgrund
        der etwas merkwrdigen Bewertung der Filepositionierung als Kriterium
        fr die Natur eines Datenpakets ordnungsmige bertragungen nicht
        zustandebringt. Von Programmen aus ist darauf kaum ein Einflu mglich,
        und so wird man wohl (vergeblich, wie die Erfahrung zeigt) auf Korrek-
        turen seitens Mr.T. zu warten haben...


Start:

Das aus dem *Basic z.B. mit EX, EW, EXEC oder EXEC_W gestartete Programm ist
zunchst inaktiv und erwartet (hnlich dem *Basic) nun irgendwelche Eingaben.
Um etwa die Dateien-bertragung zu beginnen, schreibt man im einfachsten
Falle hin:
                X
und bettigt die <enter>-Taste.
Dann werden der Reihe nach die unten erklrten Eingaben abgefragt.
Sofern alle Namen brauchbar waren, beginnt danach der Programmablauf.

In derselben Reihenfolge knnen die betr. Namen auch unmittelbar nach dem "X"
hingeschrieben oder dem EXEC-Aufruf als Parameterstring mitgegeben werden:
                EX RecoverX
und darin die Eingabe
                X win1_*d2d win2_directory-win1_dat win3_x-dir

oder, nur zur einmaligen sofortigen Ausfhrung des Kommandos
                EX RecoverX;"X win1_*d2d win2_directory-win1_dat win3_x-dir bye"

Das angehngte BYE sorgt dafr, da sich das Programm zum Schlu selbsttig
aus dem Speicher entfernt.

Da ein Forth-System immer auch einen Textinterpreter enthlt, erbrigen sich
obscure "Schalter" und "Optionen", oder das allem Anschein nach mehr zufllig
(wenn berhaupt) funktionierende Warten auf Tastenbettigung wie bei einigen
"C"-Programmen. Man bgibt im Parameterstring den Text einfch genauso, wie man
ihn auch in direkter Eingabe hinschreiben wrde.
Der String wird bis zu einer Lnge von 1000 Zeichen angenommen.
Interaktiv akzeptiert der Interpreter Zeilen von bis zu 170 Zeichen Lnge.



* Die Aufrufe im einzelnen:

- Die hier angegebenen "[", "]", "<", ">" sind nicht mitzuschreiben:
  [ .. ] fat optionale Angaben ein, < .. > steht fr Tastaturaktionen.
  "nn" vor einem Wortnamen steht fr eine vorher hinzuschreibende Zahl.
  Die Schreibweise gro oder klein ist ausnahmslos ohne Belang.
  Nahezu alle Worte des Programms stehen im Vocabular RQX; der besseren
  bersicht halber sind aus dem standardmig allein aktiven Vocabular
  FORTH nur die hier notierten Worte sofort zugnglich.



    X [ qxlfile [ dirfile [ zieldirectory [ refrenzenfile ]]]]

Trennzeichen ist das Leerzeichen; davon knnen beliebig viele hingeschrieben
werden. Fr die Namen gelten alle Schriftzeichen aus dem Codebereich 33 bis
255 (alle Schrift-, Markierungs- und Rechenzeichen mit der einzigen Ausnahme
des Leerzeichens, sowie die z.B. mit MINERVA darstellbaren Sonderzeichen im
Bereich ab Code 192). Bei der interaktiven Namensanforderung ist auch das Leer-
zeichen zulssig, die Zeichen ab Code 192 sind von dort aus nicht zugnglich.

Die Dateien-bertragung beginnt, sobald alle Namen gltig angegeben wurden; sie
kann mit <ESC> zum Ende der ggf. gerade bearbeiteten Datei abgebrochen werden.
Unbrauchbare Namen knnen nach einer dann erscheinenden Abfrage gendert werden,
mehr dazu s.u. bei "ANY" und "WAIT".


Quelle: "device+qxlfilename"
z.B.:           n3_win1_*d2d
                flp2_qxlfiles_qxl-1.win
eine QXL.WIN-Copie beliebigen Namens, oder in der QXL auch das Originallauferk,
das dann mit dem Filenamen entsprechend dem Direktzugriff fr DD-Disketten zu
bezeichnen ist, etwa "win3_*d2d" fr WIN3.
Die Auswahl QXL.WIN-File oder Direktzugriff in der QXL erfolgt allein ber
den Namen: Steht an vierter Stelle vom Ende des Namen her gezhlt ein "*", so
wird Direktzugriff angenommen. Alles andere gilt als gewhnlicher Dateiname.
Die hiervon abhngig unterschiedlichen Zugriffsmodalitten werden im Programm
dann selbsttig verwaltet. Besondere Angaben dazu sind nicht ntig.

QXL-Directoryspeicher: "device+dirfilename"
z.B.:           mdv1_qxlwin_dir
ein Beliebiger Device+Filename, wo smtliche existierenden und gelschten(!)
Directoryeintragungen Platz finden mssen. Da je nach Gre der Quelle sehr
viele Eintragungen zusammenkommen knnen, wurde hierfr nicht der Speicher des
Rechners gewhlt. Wer dort gengend Platz hat, gibt z.B. RAM1_ als Device an.

Zieldirectory: "device+zieldirectory"
z.B.:           win6_q
irgendein Device+Pfadname, dieser aber ohne(!) abschlieenden "_" Unterstrich
und mglichst kurz, da sonst ausschweifend "descriptive" Filenamen der Quelle
im Ziel sehr leicht fr das QDOS-Limit von 36 Zeichen zu lang werden knnen.

Sollte dieser Fall eintreten, erscheint ein entsprechender Hinweis, und die
Frage nach entweder einem neuen Pfad+Filenamen, oder der Markierung des Teils
des angegebenen Pfades, der durch einen danach einzugebenden krzeren Pfad
ersetzt werden soll. Dafr mu die Krzung des ursprnglichen Namen vom Ende
her erfolgen und der verbleibende Teil mu mit einem "_" Unterstrich enden,
der als Hinweis an das Programm dient, diese Ersetzung einzuleiten. Beide
Teilpfade gelten jeweils fr den und ab dem Anfang des betr. Gesamtnamen.
Waren die Eingaben korrekt, so gilt der Ersatzpfad von da an ohne erneute
Abfrage fr alle Dateien des angegebenen Ursprungspfades.

Die Namensersetzung kann bereits vor der eigentlichen Dateien-bertragung
prpariert werden. Mehr dazu weiter unten. Danach bedarf der eigentliche
bertragungsvorgang keiner weiteren Eingabe mehr.

Das Programm arbeitet unabhngig davon, ob die Versuche, im Zielgert "echte"
Directories anzulegen, erfolg haben, oder nicht. Der Pfad wird Vorspann fr die
extrahierten Filenamen, und dabei ist eine wie auch immer geartete "Echtheit"
von Directories vollkommen belanglos:
Der Pfad hat ordnende Funktion und gibt eine Mglichkeit, sonst gleichnamige
schon vorhandene Dateien vor dem berschreiben zu schtzen.


Referenzenfile: "device+filename"
z.B.:           mdv1_qxlwin_ref
Liste von Filenamen die durch Ersatznamen verndert wurden.

Zu Beginn des Aufrufs X erscheint ggf. die Frage, ob eine schon angelegte
Ersetzungsliste gelscht werden soll. Dies ist zum einen sinnvoll, wenn sonst
mehrdeutige Namen entstnden, und zum andern, wenn sie bereits so lang ist,
da der intern verfgbare Speicher zu knapp wird: Jeder Ersatzblock bentigt
neben der Lnge beider Namen zusammen noch weitere 8 Bytes Platz. Gre des
noch freien Speichers wird angezeigt, wieviel davon belegt werden wird, mu
zuvor abgeschtz werden. Notfalls bricht die Procedur ab, wenn die Grenze des
fr das Programm selbst erforderlichen Bereichs erreicht ist.

Danach folgt die Frage, ob zuerst Ersatznamen gebildet werden sollen. Wird
sie verneint, beginnt die Dateienbertragung sofort und Ersatznamen werden
in deren Verlauf bedarfsweise angefordert. Meist wird es jedoch gnstiger
sein, die Ersatzpfade bereits zu anfang anzugeben, da nur dann smtliche
zugehrigen Dateien dort eingeordnet werden, und dies nicht erst geschieht,
nachdem womglich schon einige Dateien unter dem Originalnamen bertragen
wurden.

Andernfalls wird der Filename fr die Datei der genderten Namen angefordert
und das Programm durchsucht die zu deisem Zeitpunkt schon vorhandene Directory-
datei. Ntigenfalls wird dann zur Eingabe der zu ersetzenden und der neuen
Pfadanteile aufgefordert.
Alle mit verndertem Namen abzulegenden Dateien werden in der obenganannten
Datei in Form einer Liste notiert, worin neben den neuen auch die ursprng-
lichen Namen verzeichnet sind, soda spter alle Files leicht in die erzeugte
Directory- und Programmstruktur eingeordnet werden knnen.
Aufgezeichnet werden in je einer Zeile, je durch Leerzeichen abgeschlossen und
von der Dateienart unabhngig:
     Erzeugter Pfad+Name
     Originalpfad+Name oder Index bei fehlendem/verdorbenem Namen
     File-Lnge
     Dataspace
     File-Typ
     Zugriffscode
     Nummer im Directory
     Index des ersten Blocks

Fr den Fall, da auf diese vorbereitende Kontrolle verzichtet wurde, oder
da noch infragekommende Namen unbearbeitet geblieben sind, erfolgt die
Abrage whrend des Programmablaufs auerdem bedarfsweise fr jeden Filenamen:

Um die automatische bertragung der ganzen Quelle nicht unntig zu verzgern,
ist die einleitende Frage, ob berhaupt eine nderung durchgefhrt werden soll,
mit anfangs sechs Sekunden Wartezeit versehen. Wurde sie verneint oder innerhalb
der Wartezeit nicht beantwortet, setzt das Programm die bertragung fort und
ersetzt ungeeignete Namen ohne weitere Abfrage durch die Nummer ihres Block-
Index. Auerdem reduziert sich die Wartezeit dann solange je um ein Viertel,
bis das Minimum von 0,4 Sekunden erreicht ist. Sie stellt sich wieder auf den
Anfangswert ein, wenn irgendwann zwischendurch eine positive Antwort gegeben
wurde (Taste "Y" oder "J").
In direkter Eingabe kann die Wartezeit durch NO-WAIT stillgelegt, oder durch
Hinschreiben einer Zahl 0..655 und das Wort WAIT auf die entsprechende Dauer
in Sekunden eingestellt werden (s.u.).


Directory:

    XDIR [ qxlsubdir [ device+qxlfilename ]]
zeigt das aktuelle oder an- rsp. eingegebene QXL-Directory an. Mit <ESC> kann
die Procedur abgebrochen werden, und mit <SPACE> wird die Ausgabe angehalten.
"qxlsubdir" kann zur Directoryauswahl angegeben werden. Mit ".." wird diese
Auswahl zurckgenommen, bis dahin gilt sie fr alle weiteren Aufrufe von XDIR.
Bei fhrendem "_" wird der Name an einen ggf. schon vorhandenen angefgt.
Nach ANY.. gilt der Auswahlstring fr beliebige Positionen in den jeweiligen
Namen, bei VALID.. nur, wenn er am Anfang des betr. Namen gefunden wird (s.u.).


Einzeldatai:

 nn XTRACT [ device+zieldirectory ]
erwartet eine Filenummer, wie sie z.B. mit XDIR angezeigt wird, extrahiert
diese eine Datei und legt sie im aktuellen rsp anzugebenden Directory ab.
Fr nn gilt 0 < nn <= NFILES.


    XTRACT pfad[+filename] 
extrahiert eine namentlich bezeichnete Datei oder, bei abschlieendem "_",
die entsprechende Dateiengruppe. Nach ANY (s.u.) werden ggf. smtliche
Files bernommen, die das angegebene Textstck enthalten. Mit Verlassen
der Procedur wird stets der Zustand VALID (s.u.) hergestellt.
Das Zeichen "" (Code 159, Taste CTR/SH/"-") schliet den Parameterstring,
ein, innerhalb dessen smtliche anderen Zeichen zulssig sind.
Den Namen umschlieende Leerzeichen werden gekappt; wenigstens ein Leerzeichen
nach dem Wort XTRACT ist erforderlich.
Beim UQLX-Emulator werden "/" Schrgstriche ersetzt (s.u.).


Programm (aus einem Standard-QDOS-Filesystem) als Job ausfhren:

    EX-P dev+pfad+filename  ..{parameterstring}.. 
entspricht den Job-Aufruf aus dem *Basic, wobei aber das RecoverX-Programm
zum Besitzer des neuen Jobs wird.
Kanle knnen bergeben werden, indem deren Kanal-ID(s) als vollstndige
"doppeltgenaue" Zahl(en) zwischen Filenamen und Parameterstring hingeschrieben
werden (was aber bislang nur oberflchlich geprft ist, die Stringbergabe
dagegen ist sicher). Eine "doppeltgenaue" Zahl entsteht dadurch, da sie
irgendwo (mindestens) einen "." Punkt oder ein "," Komma enthlt:
    EX-P jobfilename $0001.0001 ..parameter..
startet einen Job, der das Standardfenster #1 des ersten *Basic benutzt.

Das Zeichen "" (Code 159, Taste CTR/SH/"-") schliet den Parameterstring,
ein, innerhalb dessen smtliche anderen Zeichen zulssig sind.

    EW-P
arbeitet gleichartig, jedoch mit Rckkehr in das aufrufende Programm erst
nach Beendigung des auszufhrenden Jobs.

    ET-P
legt einen inaktiven Job an.

Fr Aufrufe ohne Parameter sind EX und EW vorhanden. Alle diese Worte hinter-
lassen den Fehlercode und ggf. die neue Job-ID, die z.B. als sedezimale Zahlen
hingeschrieben werden knnen mit
        D$. (Fehlercode) D$. (Job-ID)
Die Jobs werden mit Priorittszahl 10 eingerichtet; dieser Wert kann vor dem
EX..-Aufruf gendert werden mit
        ( zahl ) IS X-PRI


Quellenstruktur:

    ?XDATA [ device+qxlfilename ]
zeigt die Strukturdaten des aktuellen rsp. angegebenen Laufwerks an.
    .XDATA
gibt die jngsten Laufwerksdaten ohne erneuten Datentrgerzugriff an.


Esatznamen:

    MX-FN
ist die von X ausgefhrte Procedur zur Festlegung von Ersatznamen, die auch
einzeln aufgerufen werden kann, wenn zuvor z.B. mit FILES sichergestellt wurde,
da alle ntigen Daten vorhanden sind und die Directorydatei geffnet ist.


    FILES
Vorspann in X, XTRACT, XDIR zum bedarfsweisen ffnen der erforderlichen Files
und zum Hereinholen der intern bentigten Daten. Kann einzeln aufgerufen werden.


Programmende:

    BYE
Programm verlassen/aufgeben.


Neue Quelle:

    A-CLOSE
schliet alle File-Kanle und sorgt so u.a. dafr, da bei erneutem Aufruf
von X oder XDIR, etc., die Anforderung zur Namenseingabe aktiviert wird,
was die Arbeit an unterschiedlichen Quellen rsp. Files ermglicht.


Hilfe:

    H
gibt ein paar Hilfsseiten aus.
Wenn das PIF vorhanden ist, wird danach der Hintergrund wiederhergestellt.


Fenster:

    W
Verndern der Fensterabmessungen rsp. Verschieben des gesamten Fensters:
Verschieben mit den Cursortasten,
Mae am rechten oder am unteren Rand verndern mit SHIFT und Cursortasten.
Bei Tastenbettigung zugleich mit ALT werden die entsprechenden Schritte vergrert.
Verkleinern auf Cursorgre mit <SPACE>, beenden mit <ENTER>.
Das PIF ist hierfr erforderlich.



Systemparameter:

Zahlen zur Gestalt der Daten-QUELLE (alle anderen Werte werden entsprechend
den aktuellen Verhltnissen whrend des Programmablaufs selbsttig ermittelt):

Diese sind smtlich mit IS nderbar, z.B.
                64 IS HED       <enter>

    F/N
Standardlnge+Zhlerposten fr gltige Filenamen (38).
    C/N
entsprechend nur die Anzahl zulssiger Zeichen (36).

    FHD
Standardlnge eines Fileheaders im Datentrger (64).

    HED
Standardlnge einer Directoryeintragung (64).

    DIRT
Standard-Typencode fr Directoryfiles (255).

    B/SEC
Standardlnge eines Massenspeicher-Sectors (512). Das ist die Einheit,
in der z.B. das DIR des *Basic die Laufwerkskapazitt hinschreibt.

    DSP
schaltet die Bildschirmausgabe von X und XTRACT. Sie wird stillgelegt mit
        0 IS DSP
und aktiviert durch irgendeine Zahl =/= Null (Vorgabe ist 1).

    MXL
Doppeltgenaue Constante mit der maximalen Lnge fr wiederherzustellende Files.
Vorgabe $7f.ffff, entspr. 8M Bytes; ndern z.B. mit
    100 KB IS MXL               auf 100K Bytes
    50.000 IS MXL               auf 50.000 Bytes
Die bergebene Zahl mu einen "." Punkt oder ein "," Komma enthalten,
sofern sie nicht in der ersten Form mit KB hingeschrieben wird!

    "/"
Diese Constante enthlt ein Zeichen, durch das im UQLX-Emulator Schrgstriche
innerhalb von QDOS-Filenamen ersetzt werden. Vorgabe ist "&"; einstellbar z.B.:
    {- IS "/"
was des Minuszeichen als Eratzzeichen bestimmt.
Die fhrende "{" Klammer ist als Signal erforderlich, die Constante heit "/",
einschlielich der Anfhrungszeichen.


Ausgabe-Modifizierung:

Die betr. Worte sind zu verwenden in der Art
        any short xdir
oder:   33 valid xtract
oder:   any x


    SHORT
stellt kurzgefate Directory-Ausgabe ein.


    LONG
stellt ausfhrliche Directory-Ausgabe ein.


    VALID
schrnkt die Fileauswahl auf gltige Dateien ein. Als gltig werden solche
mit intaktem Filenamen im Header angesehen, Kriterium dafr ist die Lngen-
eintragung dort im Bereich 1 bis F/N.
VALID gilt fr XDIR und fr XTRACT sowie X.


    ANY
gibt bertragung auch von verlorenen Ketten frei, sofern im Fileheader noch
wenigstens der Anfangs-Index intakt scheint. bertragung solcher Ketten wird
nach Mglichkeit bei der ursprnglichen Lnge der verlorenen Datei abgebrochen.
Dies wird jedoch nicht immer gelingen, darum kann Abbruch auch mit der <ESC>-
Taste herbeigefhrt werden. ANY gilt fr XDIR und fr XTRACT sowie X.


Wartezeit:

 nn WAIT
erwartet eine Anzahl Sekunden, auf die dann die Wartezeit zur nderungsabfrage
bei unbrauchbaren Filenamen eingestellt wird. - Mehr hierzu s.o bei "X".
Beim Start vorgegeben sind 6 Sekunden.

    NO-WAIT
Keine Wartezeit fr die nderungsabfrage.


Weitere Forth-Kommandos:

Aus dem zugrundeliegenden F6 Forth-System knnen smtliche Aktionen ausge-
fhrt werden, die vom *Basic her bekannt sind, und vieles mehr, was sonst
nur mit Hilfe besonderer Programme mglich ist.
All das ist in F6WORDS_txt als Teil der GF6-Sammlung umfassend beschrieben,
die vom Autor oder aus dem I-net (www.snafu.de/~phpr) bezogen werden kann.
Hier nur kurz ein paar Angaben zu einigen fr dieses Programm mglicherweise
hilfreiche Worte:


    BACKUP device+pfad+quellenfilename device+pfad+zielfilename
Copie der Quellendatei in die Zieldatei anfertigen, berschreibend.

    ?BACKUP
dasselbe mit interaktiver Namenseingabe.


    CHANS
gibt die Namen der zum Zeitpunkt des Aufrufs fr RecoverX offenen Kanle an.
Erfat werden Fenster, Files und alles andere, was die QDOS-Trap md.inf zu-
lt - wozu, wei der Geier (oder Tebby) warum, die Kanle des Direktzugriffs
NICHT zhlen. In jedem Falle wird die betr. Kanal-ID hingeschrieben.


    DIR device+directoryname_
zeigt hnlich dem *Basic-Befehl das mit vollstndigem Pfad und abschlieen-
dem "_" Unterstrich hinzuschreibende Directory an. Dieser Pfad erscheint
je Darstellungsseite nur als berschrift, es folgen die Dateinamen ohne Pfad,
mit vorangestellter File-Lnge, den Dateientyp und dem Zugriffscode.


    .JOBS
gibt die aktuellen Jobs an, deren Basis- und Startadresse, Job-Nummer, -Tag,
-Name, und die evtl. verbleibende Wartezeit bis zu deren (Re-)Aktivierung.


    NO-SUBS
Falls Pfadnamen-Ersatzstrings angelegt wurden und eigene Forth-Worte neu
definiert werden sollen, mssen(!) die Strings zuerst mit NO-SUBS gelscht
werden. SAFE! schtzt die Worte dann vor z.B. FORGET oder EMPTY.


    W-SAVE device+jobfilename
Das Programm selbst wird mit all seinen Einstellungen (einschlielich Fenster-
Position und -Gre), nderungen und ggf. neu hinzugefgten Worten unter dem
angegebenen Namen gesichert und kann spter in derselben Weise als ausfhrbarer
Job benutzt werden.


    VLIST
fr Neugierige: "VocabularyLIST". Man schreibt den Namen des zu untersuchenden
Vocabulars hin, dann VLIST und <enter>, um sich alle Worte des betr. Vocabulars
anzeigen zu lassen. Vocabulare erfllen im Forth eine auf die Befehle (Worte)
der Programmiersparache bezogene hnlich ntzliche und beraus hilfreiche Funk-
tion wie Directories fr Files. Es gibt auch eine dem Suchpfad ("PATH") von
Filesystemen vergleichbare Einrichtung, den "Vocabularstack", der alle Vocabu-
lare enthlt, in denen der Interpreter dann nach eingegebenen Worten sucht und
sie ggf. ausfhrt. Im F6 existieren
        ASSEMBLER, EDITOR, FORTH, FP, HIDDEN, PIF, QDOS, ROOT
Auerdem fr dieses Programm
        RQX

    .VOCS
schreibt den Inhalt des Vocabularstacks hin, alle berhaupt vorhandenen
Vocabularnamen, und eine speziell dem F6 eigene Vocabularverkettung, die zur
Untersttzung objektorientierter Programmierung eingerichtet ist.


 eof 
