Topic : Das ATOS-Magazin 3/99
Author : Das ATOS-Team
Version : 12.11.1999
Subject : ATOS Diskettenmagazine
Nodes : 214
Index Size : 7926
HCP-Version : 5
Compiled on : Atari
@charset : atarist
@lang :
@default :
@help : ATOS Hilfe
@options : -i -s -h+zz -t2
@width : 70
View Ref-FileATOS HardwareDas Jahr-2000-ProblemDie Hardware Das ATOS-Magazin 3/99Ob 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, TTund 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 ÜberlaufSind 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.
FehlerbehebungUm 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