ZDDOS: merkwürdiger Fehler beim Modufikations-Datum

  • Hallo zusammen,


    kennt sich zufällig jemand mit ZSDOS bzw. ZDDOS aus?

    Ich habe das seit 1995 auf meinem mc-CP/M-Computer und habe seit einiger Zeit ein merkwürdiges Phänomen: ZDDOS ist ja die abgespeckte Version von ZSDOS ohne ein paar Extras wie den DOS-Pfad z.B., dafür hat ZDDOS den DateStamper-Treiber gleich eingebaut.

    ZSDOS läuft bei mir problemlos, aber ZDDOS macht einen komischen Fehler bei der Jahreszahl des Modifikations-Datums!

    Folgendes habe ich gestern mal abfotografiert:

    Ich habe hier eine Datei 202211, die ich mit einem Cobol-Programm gestern Abend um 19:47 geschrieben habe. Beendet man das Programm und zeigt das Inhaltsverzeichnis an, paßt alles.

    Kopiert man mit COPY jetzt die Datei auf die Diskette D:, dann scheint sofort was nicht zu stimmen: die ältere Zieldatei auf der Diskette wird als neuer als die soeben editierte gemeldet. Kopiert man die trotzdem und guckt sich nachher wieder das Datum an, dann ist die Jahreszahl plötzlich auf 1987! Auf der Diskette steht sie auf ;7! Das Systemdatum ist natürlich nach wie vor okay.

    Dieser Fehler tritt nicht nur nach COPY auf, sondern auch sonst mal. Wann genau, konnte ich noch nicht sagen.

    Wenn ich statt ZDDOS wieder ZSDOS verwende, tritt der Fehler nicht mehr auf. Und es betrifft wohl nur das Modifikations-Datum, die anderen gespeicherten Daten nicht. Und davon nur die Jahreszahl. Kann das irgendwie ein Y2K-Problem sein? Wurde damals vielleicht nur ZSDOS aktualisiert und ZDDOS vergessen? Kennt das Phänomen jemand?


    irritiert,


    Thomas

  • ZSDOS/ZDDOS kenne ich nicht in Detail da ich es nicht nutze.


    Unten sind ein paar Beschreibungen zum ZSDOS/ZDDOS weshalb ich mich dazu kurz fasse.


    Dein Problem benötigt einen Y2K patch für die Uhr. Hast du eine Echtzeituhr verbaut?

    Damalige gängige Echtzeituhren hatten nur 2stellige Jahreszahlen und die Software dazu war auch nicht Y2k tauglich.


    KC-Club.KC-News.00-01-02



    HalBower's Home Page

    HalBower's Home Page

    ZSDOS / ZDDOS

    ZSDOS

    Mit freundlichen Grüßen


    fritz

  • Hallo Fritz,


    danke für die Antwort. Die Dokus kannte ich nur zum Teil, muß ich gestehen.

    Allerdings glaube ich nicht, daß es an einem der fehlenden Patches liegen kann. Die gelten nämlich alle nur für die Dienstprogramme und nicht für das BDOS selbst. Und genau dieselben Dienstprogramme laufen mit ZSDOS problemlos, nur eben mit ZDDOS nicht. Das ist ja das komische.

    Die Uhrzeit kommt übrigens von einem Arduino mit RTC, das BIOS hat eine Einsprungroutine, die über die RS232 den Arduino anruft und sich die Uhrzeit im passenden Format liefern läßt. Und, wie gesagt, die Uhrzeit und das Datum paßt ja auch. Nur die Einträge im Verzeichnis scheinen kaputt zu gehen.


    Beste Grüße,


    Thomas

  • Die Uhrzeit kommt übrigens von einem Arduino mit RTC

    Ah... das ist ja was ganz modernes. :huh:


    Jetzt benötigen wir den Unterschied zwischen ZSDOS und ZDDOS bezüglich der Zeiteinträge.

    Soweit ich mich erinnere werden die Timestamps beim datestamper in einer Datei gespeichert, muss mir dass aber doch mal anschauen.


    Ich selber nutze timestamps nur bei CP/M+ und auch hier ist bei manchen alten Systemen keine Y2K Kompatibilität gegeben.
    Im allgemeinen läuft hier aber NZCOM und Z3PLUS.


    Hast du zu deinem System den Sourcecode und kannst es neu generieren und hast du auch schon mal daran gedacht dein System für 'uns' zu dokumentieren?


    aus http://www.kc85.info/index.php…u-116/95-zsdos-zddos.html


    Zitat

    . Unterstützung von Datumsstempeln

    Mit ZSDOS wird jedoch ein zweiter BDOS-Ersatz namens ZDDOS ausgeliefert. "ZDDOS" steht für "Z-DateStamper DOS". Es beinhaltet bis auf den Uhrentreiber alle Routinen, die für die Speicherung von Zeit- und Datumsinformationen benötigt werden. Die verwendete Methode ist kompatibel zu Plu*Perfect's DateStamper, die von vielen Utilities unterstützt wird. Zu jeder Datei werden drei Informationen gespeichert: Zeitpunkt der Erstellung, der letzten Änderung und des letzten Zugriffs. Zwar bietet ZSDOS diese Funktionen nicht intern, aber sie können über externe Routinen (z. B. innerhalb oder oberhalb des BIOS) nachgebildet werden. Dann besteht sogar die Möglichkeit, zwischen zwei Stempelmethoden zu wählen. Zum einen steht die eben beschriebene Methode zur Verfügung und zum anderen eine zu P2DOS und CP/M Plus kompatible. Nachteilig ist dabei nur, daß mehr Speicher für das System benötigt wird, da die Routinen im Gegensatz zu ZDDOS nicht Bestandteil des BDOS-Segmentes sind.

    Mit freundlichen Grüßen


    fritz

    Einmal editiert, zuletzt von fritzeflink ()

  • Hallo Fritz,


    ja, da hast Du recht mit den Zeiteinträgen: die sind in der Datei !!!TIME&.DAT gespeichert, die immer ganz am "Anfang" des Laufwerks direkt hinter dem Verzeichnis steht. Ich bin mir aber auch nicht sicher, an welcher Stelle im System der Fehler entsteht. Ich hatte schon die Befürchtung, daß irgendwas in meinem teilweise selbstgeschriebenem BIOS ein Byte im BDOS überschreibt, aber irgendwie glaube ich nicht daran, weil der Fehler eben nur bei ZDDOS auftritt.


    Was genau meinst Du mit Source-Code vom System? Vom BIOS?

    Das BIOS ist so eine Sache: der Rechner mit dem Monitor-EPROM ist seinerzeit von D&B in Hamburg entwickelt worden. Dazu gehörte ein mehr oder weniger CP/M-kompatibles Betriebssystem RTS-80. Das war zwar irgendwie ganz gut, aber ziemlich inkompatibel und nicht dokumentiert. Außerdem hatte es nicht die Unterteilung in CCP, BDOS und BIOS. 1995 habe ich mir dann das ZSDOS besorgt, aber weil mir ein originales CP/M fehlte, mußte ich das bestehende Monitor-Programm ummodeln. Das konnte nämlich nur 1024k große Sektoren von den Disketten lesen. Also mußte da noch ein Sektor-Blocking-Deblocking-System rein. Anfang der 2000er habe ich dann noch eine GIDE-Karte dazu besorgt und das BIOS erneut angepaßt, damit man auch Festplatten ansteuern konnte. Die große Unbekannte ist tatsächlich das ganz alte BIOS-Fragment aus dem EPROM, von dem ich natürlich nicht genau sagen kann, ob das eventuell irgendwas in den Speicher schreibt, wo es nicht hin schreiben soll. Aber das mir das immer genau an die selbe Stelle vom ZDDOS schreibt, scheint mir ungewöhnlich. Zumal ich im Laufe der Jahre die CBASE-Adresse immer wieder mal geändert habe, aber der Datums-Fehler war immer der gleiche.

    Vom EPROM habe ich einen disassemblierten Quelltext gemacht, so gut es ging. Und von meinem eigenen BIOS-Teil habe ich selbstverständlich den Quelltext. Falls Interesse besteht, kann ich das gerne veröffentlichen.


    Ich gucke mir aber vielleicht nochmal den originalen BIOS-Teil an, ob mir da irgendwas Auffälliges unterkommt.


    Beste Grüße,


    Thomas

  • Interessant, ich kenne aktuell nur die kurze Beschreibung zu RTS-80 von Bitsch.

    Eine Dokumentation deines Systems wird immer interessanter.


    ... und hier hatten wir ja schon mal einen kleinen Einblick. Gut dass die Suche hilft, mein Gedächtnis ist auch nicht mehr so exact - vielleicht sollte ich mir mal ein Handy zulegen.


    Mit freundlichen Grüßen


    fritz

  • Ach, so sieht man sich wieder. An Deinen Namen hatte ich mich auch nicht erinnert.. Schön.


    Ich hatte just heute morgen beim Kaffeetrinken eine Idee: ich mußte seinerzeit ja ziemlich fummeln, damit ich CP/M 2.2 und danach ZSDOS überhaupt ans Laufen kriegte. Ein Problem war, daß der CCP nicht lief (festhing), weil das BDOS ja dann kein CP/M-BDOS, sondern ZSDOS war, und davon paßte die Seriennummer nicht. (Ich frage mich im Nachhinein, wie ich das ohne Internet rausgefunden habe..) Ich habe dann immer manuell beim Erstellen der Bootdisk die Seriennummer vom BDOS in den CCP kopiert. Und weil mir das irgendwann zu lästig wurde, habe ich in die Warmboot-Routine einen Kopierbefehl eingebaut. Jetzt weiß ich nicht, ob ich die Nummer vom BDOS in den CCP oder umgekehrt kopiere. Vom CCP ins BDOS wäre fatal, weil ich in diesem Beitrag http://forumcpm.gaby.de/viewtopic.php?t=564 gelesen habe, das just ZDDOS diesen Speicherbereich irgendwie nutzt. Das werde ich am Wochenende mal analysieren.


    Das RTS-80 betrifft, war ich irgendwann ziemlich genervt von dem Zeug. Das System ist nicht schlecht:

    - der erkennt verschiedene Diskettenformate automatisch

    - für den Warmstart braucht er keine Systemdiskette

    - die Dienstprogramme waren alle viel professioneller als das CP/M-2.2-Zeug

    allerdings fand ich, daß die Beschreibungen immer ziemlich auf die Kacke hauen. Da werden UNIX-ähnliche Strukturen beschrieben, die ich aber beim besten Willen nicht erkennen kann. Die große Flexibilität wird mit ziemlich viel Speicherhunger erkauft. Das fand ich nicht gut. HI-TECH-C lief damit z.B. gar nicht, weil zu wenig Speicher übrig war. Außerdem funktionierten natürlich einige Programme nicht, weil es diese Struktur von CP/M mit dem CCP, BDOS so nicht gibt.

    Selbst etwas Erweitern war auch nicht drin, weil nicht so wirklich dokumentiert ist, wie das BIOS funktioniert. Die Boot-Diskette läßt sich auch nicht kopieren, weil das so ein Spezialfall ist (ich glaube, System-Spuren haben andere Sektoraufteilung wie der Rest). Und dieses ganze Speicher-Banking-Zeug ist auch nirgendwo dokumentiert.

    Mein Eindruck ist, daß man erst große Pläne hatte, dann aber ziemlich schnell gemerkt hat, daß CP/M aussterben wird und die Brocken an die Ecke gelegt hat. Mir ist nie was zu Ohren gekommen, daß es noch weitere Versionen oder so gab. Auch habe ich noch nie von jemanden gehört, der das System kennt oder gar im Einsatz hat. Möglicherweise habe ich die letzte Kopie davon...


    Für die, die es interessiert, kann ich aber mal die ganze Doku einscannen und bereitstellen. Auch den EPROM-Inhalt und das, was ich disassembliert habe, kann gerne jeder lesen. (Ich denke nicht, daß man Urheberrechtsprobleme kriegt, oder?) Und irgendwie müßte ich die Boot-Disk auch einlesen können, denke ich.



    Beste Grüße,


    Thomas

  • Für die, die es interessiert, kann ich aber mal die ganze Doku einscannen und bereitstellen. Auch den EPROM-Inhalt und das, was ich disassembliert habe, kann gerne jeder lesen. (Ich denke nicht, daß man Urheberrechtsprobleme kriegt, oder?) Und irgendwie müßte ich die Boot-Disk auch einlesen können, denke ich.

    Oder mir die Diskette und Doku zuschicken.

    Die Diskette kann problemlos mit IMD unter MSDOS eingelesen werden.


    Anbei etwas Werbung aus alten c't Zeitschriften.

  • Beim ML-DOS, welches auf dem KC läuft, noch was. Es wurde völlig neu compiliert. Bei der Gelegenheit wurde ZSDOS/ZDDOS mit eingepflegt. Somit gab es die 3 Bestandteile wieder. Das vorher drauf gewesene MicroDOS war ein wilder Klumpen aus Rostock.


    Wende dich doch bitte via robotrontechnik.de/forum an Mario Leubner. Er kann dir sicher eine passende Hilfe geben.

  • Hallo,


    ich habe gestern mal etwas herumexperimentiert und eine erste Lösung für das Problem gefunden:

    Ersmal: das Anpassen der Seriennummer beim Warmstart, das ich automatisiert hatte, war es nicht. Wenn ich das rausnehme, ist der Fehler nach wie vor da.

    Wenn ich mit ZSCONFIG den Parameter "Stamp Access Time" rausnehme, dann geht es tatsächlich. (Eigentlich dachte ich, ich hätte das sowieso ausgeschaltet, aber war's doch nicht.) Diesen Zeiteintrag brauche ich sowieso nicht und kostet auch etwas Rechenzeit. Seitdem habe ich ein paar Dateien kopiert und die waren alle in Ordnung.


    Beste Grüße,


    Thomas