DOS-/ProDOS-Version abfragen

  • Hallo liebe Apple II Verrückten,


    seit einiger Zeit bastel ich mir auf meinem Apple IIe enhanced Basic Programme zusammen. Im wesentlichen sind das ein paar Programme rund um Textdateien. Zwei Textviewer, eine Art Textdatei-Dienstprogramm, ein Skript zur Umwandlung von Basicdateien in Textdateien und zur Zeit ein Programm zum schnellen Ausdrucken von Textdateien. Im Grunde sind diese Programme ein wenig aus der Not heraus entstanden, weil ich entsprechende Programme nicht gefunden hatte oder diese einen viel zu großen Funktionsumfang hatten, sie mir nicht gefallen haben, umständlich zu bedienen waren oder was auch immer.


    Meine selbst zusammengefrickelten Programme tun tatsächlich weitestgehend ihren Zweck. Aber ich stoße mit meinem alten Schulbasic aus der Mittelstufe von/vor 30 Jahren an mein Grenzen. Infolgedessen sind die Programme noch nicht so smart wie sie sein könnten. Ich kann z. B. noch keine DOS-/ProDOS-Fehler abfangen. Ein anderes Problem ist, dass ich die Programme gerne unter DOS und auch ProDOS nutzen möchte. Hier also meine erste Frage: Gibt es eine Möglichkeit in Applesoft Basic oder ProDOS Basic die DOS-/ProDOS-Version abzufragen? Anhand des Ergebnisses der Abfrage würde ich dann gerne in die eine oder andere Richtung abbiegen. Ist das möglich oder kann ich mr das aus dem Kopf schlagen?


    :hau:

  • Für DOS 3.3 habe ich gefunden:

    Code
    X=PEEK(46725) Determines DOS version - if X=165 then DOS 3.3.0; if 186 then
       DOS 3.3e; if 182 then DOS 3.3f; if 206 then ProntoDOS

    siehe hier: https://www.vintagecomputer.net/browse_thread.cfm?id=790


    Aber ProDOS? Zumindest in den beiden ProDOS für Aufsteiger Büchern habe ich auf die Schnelle nichts gefunden.

    Denn Feindschaft wird durch Feindschaft nimmermehr gestillt; Versöhnlichkeit schafft Ruh’ – ein Satz, der immer gilt. Man denkt oft nicht daran, sich selbst zurückzuhalten; Wer aber daran denkt, der lässt den Zorn erkalten. Sprüche von Buddha, aus dem ‹Dhammapada›.


    Mein Netz: Acorn | Atari | Milan | Amiga | Apple //e und IIGS | Macintosh | SUN Sparc | NeXT |SGI | IBM RS/6000 | DEC Vaxstation und Decstation| Raspberry Pi | PCs mit OS/2, BeOS, Linux, AROS, Windows, BSD | Stand-alone: Apple //c und III | Commodore 128D | Sinclair QL | Amstrad | PDAs

  • 1. ProDOS hat eigentlich den Anspruch, bei seinem BASIC Interface weitestgehend kompatibel zu DOS 3.3 zu sein. Wenn Du also bei "gängigen" Problemstellungen das Gefühl hast, zwischen DOS 3.3 und ProDOIS unterscheiden zu müssen, könnte das ein Hinweis auf ein Problem "bei Dir" sein.


    2. PEEK(48.896) ist bei ProDOS gleich 76, bei DOS 3.3 hat es einen anderen Wert. So steht es z.B. in 'Beneath Apple ProDOS' Seite 6-63.

  • Für DOS 3.3 habe ich gefunden:

    Code
    X=PEEK(46725) Determines DOS version - if X=165 then DOS 3.3.0; if 186 then
       DOS 3.3e; if 182 then DOS 3.3f; if 206 then ProntoDOS

    siehe hier: https://www.vintagecomputer.net/browse_thread.cfm?id=790


    Aber ProDOS? Zumindest in den beiden ProDOS für Aufsteiger Büchern habe ich auf die Schnelle nichts gefunden.

    Danke yalsi das reicht mir eigentlich schon, um ggf. ProDOS auszuschließen. Muss ich mal testen. :)


    1. ProDOS hat eigentlich den Anspruch, bei seinem BASIC Interface weitestgehend kompatibel zu DOS 3.3 zu sein. Wenn Du also bei "gängigen" Problemstellungen das Gefühl hast, zwischen DOS 3.3 und ProDOIS unterscheiden zu müssen, könnte das ein Hinweis auf ein Problem "bei Dir" sein.


    2. PEEK(48.896) ist bei ProDOS gleich 76, bei DOS 3.3 hat es einen anderen Wert. So steht es z.B. in 'Beneath Apple ProDOS' Seite 6-63.

    Das Problem ist, dass DOS und ProDOS unterschiedlich mit Dateinamen umgehen. Diese können z. B. eine unterschiedliche Länge haben etc.. In Abhängigkeit davon wollte ich Dateinamen einer kleinen Prüfung unterziehen. Stellt sich die Frage ob das notwendig oder sinnvoll ist, wenn man den daraus entstehenden Fehler nicht eh anderweitig abfangen kann.

  • Ich habe da mal etwas programmiert. :) Das Programm, das dabei enstanden ist, habe ich DOS Peeker genannt. Mit Hilfe des Programms kann man die beiden oben genannten Speicherbereiche auslesen (peeken). Die ausgelesenen Werte können optional in eine Textdatei geschrieben werden. Infolgedessen kann man prüfen welche Werte unterschiedliche DOS bzw. ProDOS Versionen in den entsprechenden Speicherbereichen drinstehen haben und jene gut miteinander vergleichen.


    Ich veröffentliche das Programm hier im Forum. yalsi ich hoffe das geht in Ordnung und ich verstoße nicht gegen Forenregeln? Ich bin da nicht so gut im Durcharbeiten von Regelwerken. :oops:


    DOS Peeker kann gerne weitergeben werden und auch verändert werden. Wenn's verändert wird, dann löscht nur bitte mein Pseudonym aus dem Code. Ob DOS Peeker wirklich einen Nutzen für jemanden hat, weiß ich nicht. Das mag bitte jeder für sich selbst entscheiden. Es ist ein kleines Weihnachtsgeschenk. :xmas:


    Ich habe zwei bootfähige 140 kB Diskettenimages für DOS (DSK-Image) und ProDOS (PO-Image) gebastelt. Also schlagt zu und angelt euch DOS_PEEKER.zip!


    :angeln:

  • Danke für das Weihnachtsgeschenk. ::geschenke::


    Das kannst Du hier gern posten, Du bist ja der Autor und damit Rechteinhaber!

    Denn Feindschaft wird durch Feindschaft nimmermehr gestillt; Versöhnlichkeit schafft Ruh’ – ein Satz, der immer gilt. Man denkt oft nicht daran, sich selbst zurückzuhalten; Wer aber daran denkt, der lässt den Zorn erkalten. Sprüche von Buddha, aus dem ‹Dhammapada›.


    Mein Netz: Acorn | Atari | Milan | Amiga | Apple //e und IIGS | Macintosh | SUN Sparc | NeXT |SGI | IBM RS/6000 | DEC Vaxstation und Decstation| Raspberry Pi | PCs mit OS/2, BeOS, Linux, AROS, Windows, BSD | Stand-alone: Apple //c und III | Commodore 128D | Sinclair QL | Amstrad | PDAs