Das Jahr-2000-Problem am KC unter CP/M
von Mario Leubner
Nach dem Wechsel zum Jahr 2000 stellt sich auch am KC die Frage wie bei allen Computernutzern: Welche Auswirkungen hat das auf meinen Rechner, meine Software und meine Daten? Am KC gibt es keine größeren Probleme, wenn man bedenkt, daß das Datum (das es real ohnehin erst seit dem GIDE-Interface gibt) mehr oder weniger statistische Zwecke erfüllt. Natürlich greifen einige der neueren CP/M-Programme auf die inzwischen standardisierten Schnittstellen mit den Datumsfunktionen zurück und hier sind schon Auswirkungen festzustellen. So etwa nach einem Monat "Jahr-2000" habe ich folgendes festgestellt:
- Echtzeituhr RTC:
- Dieser Chip, indem die Uhr läuft, hat völlig unabhängige BCD-Zähler in sich. Diese zählen die Sekunden, Minuten, Stunden, Tage, Monate und Jahre. Dabei wird das Jahr nur 2-stellig verwaltet und wie zu erwarten, meldete der RTC nach der 99 die 00 - das entspricht dem Jahr 2000 und ist OK.
- BIOS und BDOS:
- Diese beiden interessiert das Jahrhundert auch nicht sonderlich, von den Datumsfunktionen werden ebenfalls nur 2-stellige Zahlen weitergereicht. Somit erscheint entweder 99 für 1999 oder 00 für 2000 im Speicherplatz für das Jahr. In den Konventionen zu DateStamper und ZS-DOS wurde dazu festgelegt:
- Allen Jahreszahlen von 78 bis 99 ist eine 19 voranzustellen.
- Allen Jahreszahlen von 00 bis 77 ist eine 20 voranzustellen.
- CCP:
- Der CCP von ML-DOS berücksichtigt dies. Im Kommando T bekommt man also die korrekte Zeit (4-stellig) angezeigt, die Eingabe erfolgt dagegen 2-stellig und wird so weitergereicht, wie sie eingegeben wurde: Also "01.01.00" eingeben, um die Uhr auf den 1. Januar 2000 zu stellen.
Anwenderprogramme
Alle unter CP/M laufenden Programme, sollten sich an obige Regel halten und demnach zumindest bis zum Jahr 2077 keine Probleme bereiten. Danach muß man sich was neues einfallen lassen, wenn es denn CP/M noch geben sollte!
Es gibt aber scheinbar doch eine ganze Reihe von Programmen, die sich offenbar nicht an diese Regeln halten. Folgende Programme habe ich getestet und dabei einige Fehler bemerkt:
- FILEDATE.COM V2.1
- zeigt Jahreszahlen 2-stellig an, damit geht erst einmal nichts schief. Die Optionen + und - (Sortierung nach Datum) oder < bzw. > (Eingrenzung nach Datum) berücksichtigen den Jahrtausendwechsel jedoch nicht korrekt. Leider gibt es zu diesem Programm keinen Quelltext und auch der Programmautor Carson Wilson konnte nicht mehr ausfindig gemacht werden.
- ZCAL.COM V1.0 (bzw. deutsche Version CAL.COM V1.0)
- zeigt das Jahr 4-stellig an und auch bei Angabe des Jahres in der Kommandozeile den richtigen Kalender. Beim Auslesen der aktuellen Uhrzeit (Aufruf ohne Parameter) wird jedoch die Regel nicht beachtet, so daß statt 2000 das Jahr 1900 dargestellt wird. Zu Quelltext und Autor gilt das selbe wie oben, es stammt wieder von Carson Wilson.
- COPY V1.71 (aus ZSDOS-Paket)
- zeigt Meldungen wie "Replace older?" oder "Replace newer?", und diese sind nicht Jahr-2000-fest. Hier ist der Quelltext vorhanden und könnte angepaßt werden.
- ACOPY V3.5
- Mittels der Option /u werden nur ältere Dateien überschrieben. Das funktioniert solange kein Jahr 2000 auftaucht. Da der Quelltext vorlag, habe ich schnell mal eine Version 3.5a erstellt und den Fehler behoben.
- ZXD V2.0
- zeigt das Datum 4-stellig korrekt an, bei den Dateien 2-stellig. Das ist aber in Ordnung. Da hier der Quelltext vorliegt, besteht eventuell die Möglichkeit, die zusätzlichen Optionen (+, -, <, >) von FILEDATE hineinzubringen und so auf FILEDATE ganz zu verzichten?
- LDIR.COM (LD V1.4a)
- zeigt im Verzeichnis das Datum 2-stellig an, das Jahr 2000 wird allerdings als "A0" dargestellt. Ich bin ja gespannt, wie das dann noch weiter geht! Da der Quelltext vorlag, habe ich die Version 1.4b erstellt und den Fehler behoben.
- LBREXT V3.5
- zeigt das Datum 2-stellig an, 2000 wird hier ebenfalls als "A0" dargestellt. Eine neuere Version ist mir nicht bekannt, der Quelltext liegt vor, kann also überarbeitet werden.
- LPUT V2.2
- zeigt das Datum 2-stellig an, diesmal in einer neuen Form: statt 2000 erhält man ":0" in der Anzeige. Eine neuere Version ist mir nicht bekannt, der Quelltext liegt vor, eine Überarbeitung ist also möglich.
- PMARC/PMEXT
- PMARC zeigt kein Datum, der Uhrentreiber läuft ohne Anzeige, aber korrekt. PMEXT zeigt das Datum 2-stellig, aber korrekt an.
- ARK ZSDOS-Version 1.1
- zeigt kein Datum an, verarbeitet das Datum aber korrekt.
- UNARCZ ZCPR Version 1.3
- zeigt das Datum korrekt 2-stellig an.
- ML.COM V2.5
- zeigt bei der Auflistung von Archiven (LBR, ARC, PMA) das Datum korrekt 4-stellig an.
- SC2:
- Die auf dem KC laufende ZSDOS-Version läuft sauber, für die CP/M-Plus Version gibt es von Tilmann Reh einen neuen Patch auf der Diskette V073.
So, das war mein Testergebnis in Sachen Y2K. Vielleicht gibt es noch weitere Info's dazu in dieser Ausgabe der KC-News. Falls es keine weiteren (neueren) Updates zu den Programmen gibt, bei denen die Quelltexte vorliegen, werde ich mich wohl in nächster Zeit an die Behebung der Fehler machen.