Das ATOS-Magazin 3/99
ATOS Hardware
Das Jahr-2000-Problem

# Die Hardware

Ob der eigene Atari nun Jahr-2000-kompatibel ist, hängt vom Modell und ggf. einer nachgerüsteten Uhr ab. Allgemein ist jeder Atari (Mega)ST(E), Stacy, Book, TT oder Falcon hardwareseitig Jahr-2000-kompatibel. Das eigentliche Problem stellt die XBios-Routine `gettime()` des TOS dar. Befindet sich eine TOS-kompatible Uhr im Atari, funktioniert sie korrekt. Die Modelle MegaST, MegaSTE, Stacy, Book, TT und Falcon besitzen diese Uhr ab Werk und sind somit Jahr-2000-kompatibel.

Für die Modelle 260/520/1040ST(E) gilt: Ab TOS 1.02 können sie mit einer solchen Uhr nachgerüstet werden. Bei Modellen mit TOS 1.0 muß dazu TOS 1.02 oder höher installiert werden, da erst ab TOS 1.2 die TOS-kompatible Uhr unterstützt wird.

### Fehler durch Überlauf

Sind diese Modelle nicht mit einer solchen Uhr ausgerüstet, arbeitet `gettime()` fehlerhaft, da die Routine dann auf den Tastaturprozessor (IKBD) zugreift. Hier entsteht ab dem Jahr 2000 ein Überlauf einer Ganzzahlsubtraktion und als Ergebnis wird ein um den Wert 28 zu hohes Jahr zurückgegeben. Da das GEMDOS sein Datum (während der System-Initialisierung und nach der Beendigung eines Anwenderprogrammes durch den GEMDOS-Aufruf `perm(0)`) aus `gettime()` bezieht und dieses wiederum Referenz für das Dateidatum und alle weiteren Anwendungsprogramme ist, wirkt sich der Fehler von `gettime()` auf das gesamte System aus.

### Fehlerbehebung

Um diesen Fehler am eigenen Atari zu beheben, gibt es zur Zeit zwei Jahr-2000-kompatible Möglichkeiten:

1. Die eine Möglichkeit ist, den Rechner mit einer TOS-kompatiblen Uhr auszustatten. Dadurch wird der Fehler im IKBD umgangen und der zweite Fehler (siehe weiter unten) tritt dann ebenfalls nicht mehr auf.
2. Bei der zweiten Möglichkeit wird das TOS selbst gepatcht. Dabei werden ein Divisor und ein Faktor auf den Wert 0 geändert und der Überlauf der Ganzzahlsubtraktion verhindert. Eine weitere (aufgrund eines Fehlers in der Version 1.0 nur für das Jahr 2000 nutzbare) Möglichkeit ist die Installation des Y2K-Patchers (benötigt Trapper), die den Bug des IKBD behebt.

Der zweite Fehler geht von diversen nachrüstbaren -- nicht TOS-kompatiblen -- Uhren aus, die Datum und Uhrzeit mit einem Programm in den IKBD und in das GEMDOS-Datum schreiben. Dazu zählen u.a. die ST-Uhr von Eickmann Computer, die ROM-Port Real Time Clock von Omni-Eureka Electronics Corp. oder die Uhr des ICD-Link+.

Für die ROM-Port Real Time Clock wurden die Treiberprogramme bereits neu geschrieben. Aber auch für die anderen Modelle gibt es mehrere Möglichkeiten, den Fehler zu beheben:

- Die "pflegeleichtere" Lösung stellt wohl die Verwendung eines Empfängers für das DCF-Zeitsignal dar. Das Empfänger-Modul wird an den Joystickport oder einen anderen seriellen Port angeschlossen. Ein kleines Programm wertet dann die empfangenen Zeitinformationen aus und stellt damit Datum und Uhrzeit des Atari. Der Vorteil dieser Uhr ist, das sie keine Batterie benötigt und die Genauigkeit bei ca. 1 Sek. in 300.000 Jahren liegt. Der Nachteil ist aber der, daß das Programm mindestens 1 Min. braucht, um die Informationen aus dem Signal zu empfangen. Zudem kann es passieren, daß man (wie ich) in einem Funkloch wohnt und das Signal nicht empfangen kann.
- Wenn man nun keine TOS-kompatible Uhr bekommt und auch ein DCF-Empfänger keine Alternative ist, gibt es nur noch die Möglichkeit, eine nicht Jahr-2000-kompatible, nachgerüstete Uhr weiter zu benutzen. Dazu bedient man sich des Tricks, die Uhr in ihrem Funktionsbereich -- in der Regel von 1980 bis 1999 -- um einige Jahre zurückzustellen. Während des Bootens stellt das Zusatzprogramm der nachgerüsteten Uhr wie gewohnt Systemdatum und -zeit des Atari. Um nun das Jahr zu korrigieren, muß Date-Up hinter das Zusatzprogramm installiert werden. Dieses Programm stellt dann das Jahr des Systemdatums auf das aktuelle Jahr vor. Der Nachteil bei dieser Methode ist, daß man alle paar Jahre die nachgerüstete Uhr wieder zurücksetzen und die neue Differenz zum gültigen Jahr für Date-Up einstellen muß.
- Nicht verschweigen möchte ich die Möglichkeit, den IKBD mit einer Akku-Pufferung auszugestatten. Das einmal eingestellte Datum wird dann im IKBD gehalten und beim nächsten Einschalten von GEMDOS übernommen. Leider geht der IKBD sehr ungenau, weshalb diese Methode nicht zu empfehlen ist.

Die Übersicht der Modelle