Das ATOS-Magazin 3/99
ATOS Hardware
Das Jahr-2000-Problem
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:
- 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.
- 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
Copyright © ATOS
Letzte Aktualisierung am 7. November 1999