MyDos 4.5x Welcher Befehl testet ein Unterverzeichnis?


MyDos 4.5x Welcher Befehl testet ein Unterverzeichnis?

von Bernd » Mo 25. Jul 2011, 23:03
Hallo,
mit welchen Befehl kann man bei MyDos 4.5x ein Unterverzeichnis kontrollieren - überprüfen ob es vorhanden ist?
In den Anleitungen bin ich nicht fündig geworden. Öffnet man ein falsches Verzeichnis, gibt´s die Fehlermeldung 174,
die ich gerne vermeiden möchte. Muss ich mir selber ein Programm dafür schreiben? Verzeichnis eingeben,
Inhaltsverzeichnis einlesen und bei einem ":" den Namen dahinter vergleichen....ist in Assembler einiges an Code....

Bernd

Re: MyDos 4.5x Welcher Befehl testet ein Unterverzeichnis?

von Mathy » Mo 25. Jul 2011, 23:43
Hallo Bernd

Wahrscheinlich schon. Mehr als den "Error 174" Trick den Du schon beschriebst gibt es wahrscheinlich nicht. Aber ab 4.55 kann man mit "::" kann man eine Subdirectory zurückspringen. Vielleicht hilft das. Also von D1:DIR1:SUB1:SUB2: zurück nach D1:DIR1:SUB1:

Tschüß

Mathy

Re: MyDos 4.5x Welcher Befehl testet ein Unterverzeichnis?

von Dietrich » Di 26. Jul 2011, 23:24
Hi Bernd,

ich verstehe nicht ganz, was Du meinst. Gib doch einfach den Pfad an, das ist dann nur ein CIO-Aufruf, z.B. "D2:GAMES:P:PO". Am einfachsten ist wohl ein Status-Call (Kommando-Byte 13). Dann sollte ein Error 174 (path not found) zurückkommen, wenn der Pfad nicht existiert. Sollte das bei MyDOS nicht funktionieren, kannst Du noch "Change Directory" probieren (XIO 41), das muss auf jeden Fall gehen.

Bin übrigens gerade dabei, XDOS in DOS.SYS und DUP.SYS aufzuteilen, ist leider nicht ganz so einfach ...

Re: MyDos 4.5x Welcher Befehl testet ein Unterverzeichnis?

von Bernd » Mi 27. Jul 2011, 20:38
Arbeite gerade an einer neuen Version meines Flashprogramms. Den Speeder habe ich herausgenommen um mit dem KMK2 keine Probleme zu kriegen.
Ist der aktiv läuft gar nichts mehr mit dem Interface. Dafür kann man dann die Daten in mehreren hintereinander verschalteten Unterverzeichnissen
liegen haben. Nach Eingabe des kompletten Verzeichnispfades wird das Inhaltverzeichnis anschließend ausgegeben. Erscheint dass die Fehlermeldung 174....
war die Eingabe falsch. Wie es so immer ist nach Murphys Gesetze - bei kleinen Änderungen im Assemblerprogramm muss man immer große
Teile neu schreiben.....wie war...wie war.....

Bernd

PS: @Dietrich DANKE DANKE DANKE :notworthy: ........dein DOS wird der Standart für mein Flashprogramm sein...

Re: MyDos 4.5x Welcher Befehl testet ein Unterverzeichnis?

von Bernd » Mi 27. Jul 2011, 21:28
@Dietrich...
Ich brauche dann von dir folgende Angaben an Adressen in deinem Dos...
Lowmem - da wirst du wohl alles unterbieten :wink:
Adresse bei dem das aktive Laufwerk ablegt ist. (Bei MyDos ist dies $70B)
Adresse bei der das angewählte Unterverzeichnisse liegt. (Unter MyDos nicht heraus zu finden)

Mit den beiden letzten Angaben kann ich von meinem Programm aus eine Konfig-Datei nachladen.

Hat natürlich noch Zeit bis du so weit bis...

Mit deinem neuen Dos schaffst du es dann MyDos zu verdrängen.

Freu mich schon darauf,
Bernd

Re: MyDos 4.5x Welcher Befehl testet ein Unterverzeichnis?

von Mathy » Mi 27. Jul 2011, 23:57
Hallo Bernd

Bernd hat geschrieben:Adresse bei der das angewählte Unterverzeichnisse liegt. (Unter MyDos nicht heraus zu finden)

Ne Email an Lee ist schon raus. Mal sehen was er dazu sagt.

Tschüß

Mathy

Re: MyDos 4.5x Welcher Befehl testet ein Unterverzeichnis?

von Bernd » Do 28. Jul 2011, 14:10
Danke für deine Hilfe Mathy, ich lerne gerne dazu.

Bernd

Re: MyDos 4.5x Welcher Befehl testet ein Unterverzeichnis?

von Dietrich » Do 28. Jul 2011, 23:42
bernd hat geschrieben:Adresse bei dem das aktive Laufwerk ablegt ist. (Bei MyDos ist dies $70B)
Adresse bei der das angewählte Unterverzeichnisse liegt. (Unter MyDos nicht heraus zu finden)

??? Unterverzeichnisse werden nicht im Speicher gehalten, daher gibt es auch keine Adresse dafür.
Ich vermute mal, Du meinst damit einen Befehl, mit dem Du den Pfad des per "Pick Directory" eingestellten Verzeichnisses rauskriegst? Aber wozu brauchst Du das? Mit D: kannst Du doch auf dieses Verzeichnis zugreifen! Außerdem hast Du geschrieben, dass der Benutzer den Pfad in deiner Anwendung selber eingibt. Dann kennst Du doch den Pfad sowieso (sofern der Benutzer keine Wildcards benutzt hat)?!?

Zu LOMEM in XDOS 3.0 kann ich erstmal nichts sagen. Zwar fällt in DOS.SYS das DUP (1,5 KB) weg, das wird aber wahrscheinlich durch größere Pufferbereiche, die DUP.SYS-Logik, die Unterstützung großer Disks und Unterverzeichnisse wieder aufgefressen. Über $1f00 will ich aber keinesfalls gehen.

Re: MyDos 4.5x Welcher Befehl testet ein Unterverzeichnis?

von Bernd » Fr 29. Jul 2011, 20:58
Hier die Idee:
Mein Programm liegt in einem beliebigen Verzeichnis. Beim Start möchte ich gerne eine Konfigurationsdatei öffnen, die im gleichen
Verzeichnis steht. Beim laden meines Programmes wird DUP.SYS mit den Verzeichnis Infos im Speicher überschrieben, da komme ich
anschließend nicht mehr heran. Eine Möglichkeit wäre die Konfig-Datei in der obersten Ebene abzulegen. Wenn es nicht geht
greife ich darauf zurück.

Viele Grüße,
Bernd

Re: MyDos 4.5x Welcher Befehl testet ein Unterverzeichnis?

von Dietrich » Fr 29. Jul 2011, 23:37
Achso, jetzt ist die Sache klar: Du willst den Pfad des gestarteten Programms haben. Da hilft wohl nur folgender Hack: Erst den eingebenen Pfad im Speicher suchen (L im MyDOS-Menü, Pfad+Name eingeben, der einen Error 170 produziert, dann in einen Monitor gehen und dort suchen). Damit hast Du schonmal die Adresse des Pfades.

Dein Programm besteht nun aus 4 Segmenten:
1) kleiner Programmteil, der den Pfad aus dem MyDOS-DUP an eine sichere Stelle kopiert
2) Init-Adresse auf 1)
3) Rest des Programms
4) Run-Adresse

Natürlich wird das nur unter Deiner MyDOS-Version funktionieren, Du solltest also checken, ob Dein Programm von genau dieser MyDOS-Version gestartet wurde (zusätzliche Abfrage einiger Bytes im DUP) ...

Gruß Dietrich

Re: MyDos 4.5x Welcher Befehl testet ein Unterverzeichnis?

von Bernd » Sa 30. Jul 2011, 20:35
Dietrich hat geschrieben:Natürlich wird das nur unter Deiner MyDOS-Version funktionieren, Du solltest also checken, ob Dein Programm von genau dieser MyDOS-Version gestartet wurde (zusätzliche Abfrage einiger Bytes im DUP) ...

Die externe Konfig Datei habe ich erstmal verworfen, da warte ich lieber auf dein Dos...
Bei den neuen Versionen vom Flash + MultiRomLoader kann jetzt ein Unterverzeichnis angewählt werden,
damit läßt sich der Platz bei einem 16MB ATR-File besser ausnutzen. Als Basis dient MyDos 4.53-4.
Nach erfolgreichen Testlauf gibt es demnächst ein Update auf meiner Webseite.

Bernd