•  Back 
  •  Das Jahr-2000-Problem 
  •  Index 
  •  Tree View 
  •  Cross references 
  •  ATOS Hilfe 
  •  Show info about hypertext 
  •  View a new file 
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-File      ATOS Hardware
         Das Jahr-2000-Problem

Die Hardware                                     Das ATOS-Magazin 3/99

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