Home Anhang Cheatmodes Schaltplan
 

25.12 Y2K


Y2K-Probleme mit Atari



Passiert ist eigentlich, trotz reichlich Panikmache der Medien, sehr wenig. Besonders trifft das auf Atari-Computer Systeme zu. Einzelne Datumsprobleme älterer Software beschreibe ich nicht als Y2K-Problem, sondern als Versäumniss der Programmierer. Was kommen würde war schliesslich lange genug bekannt. Probleme einige Programme können nicht mehr behoben werden da die Autoren ihre Arbeit an diesen Programmen bereits vor Jahren eingestellt haben.

Betroffene Software

 
UPoint, ein UUCP Mailer, stellt seit dem 01.01.2000 die Headerzeilen in den Newsgroups nicht mehr dar.

 
THE_DOT hat ein generelles Problem mit der Datumsanteige im Fenster "Multipoll"

 
ATSTART hat Probleme mit dem Datum. Autor Andreas Schrell@RS.
 
TELE-OFFICE hat ein Problem mit dem Datum.

 
XBOOT3 hat Probleme mit der Jahreszahl.
Die Uhrzeit lässt sich nicht einstellen.

 
SCRIPT5 vergibt bei "Datum einsetzen" eine Jahreszahl von 19100.

 
MENUEINFO hat ebenfalls Probleme mit dem Datum. Hier reicht es aber wenn die entsprechende .INF-Datei gelöscht wird.

 
Hardware

 
Betroffen sind einige nachträglich eingebaute Hardwarehuhren der Firma ICD. Hier stellte sich das Datum auf 1990 zurück. Bei einigen Uhren lässt sich das durch löschen der .INF Dateien wieder beheben. Bei Uhren ohne Treibersoftware nicht.

 
Betroffen sind auch einige DMA->SCSI Hostadapter der gleichen Firma mit integrierter Uhr.

 
XBIOS Lösung

 
Programmname: Y2K_FIX
Version: 0.9
Autor: Ingo Linkweiler
Email: i.linkweiler@gmx.de
Email: ingo linkweiler@do
Web : www.icc-computer.de/starcall

 
Year2000-Fix. Umgeht Jahr-2000 Fehler vieler TOS-Versionen im Xbios, sowie Probleme mit SCSI-Hardware-Uhren.

 
Hardware: ST mit nicht funktionierender XBIOS-Uhr

 
Features:

 
Meine Uhr im ST mag nicht mehr! Dieses Programm kann helfen. Einfach im Autoordner installieren, und alles geht wieder. Incl. Source. Problem war: XBIOS-Uhr geht nur bis 1999.

 
Lösung:
Y2K-Fix stellt beim Setzen der Zeit die XBIOS-Uhr 20 Jahre zurück. Beim Lesen werden wieder 20 Jahre dazugezählt. Zusätzlich wird die Synchronisierung der Gemdos-Uhr durchgeführt.

 
Installation:
Einfach Y2K_FIX.PRG starten oder in den Auto-Ordner kopieren. Bitte NICHT installieren, wenn keine Probleme auftreten.
 



Definition des Problems

Here is a defintion of the problem. Hope it is of interest.

Atari ST Time-of-Day Clock Problems

Definition of the Problems
1. There are two Time-of-day Clocks in the Atari which are not maintained in sync by the hardware or operating system.
2. One of the Time-of-day Clocks fails to operate for dates after 31 Dec 1999.

 
Scope of the Problems
The problems exists on Atari ST machines with TOS levels from 1.0 to 1.62.

 
Background to Atatri ST Time-of-Day Clock Problems
When the Atari ST was released in the mid 1980's there were at least three design errors associated with the Time-of-Day Clock. These were:

 
1. Two Time-of-Day Clocks

 
Two related but different Time-of-Day(TOD) Clocks mechanisms were included. This does not make any sense given the associated functions that were provided in the DOS and XBIOS sections of TOS. The TOS Version 1 code associated with XBIOS can be examined at the addresses shown in the TOS Addresses table below.

 
The two TOD Clocks can be independently set to any date/time, and in consequence, Get Date/Time frequently gives unexpected results if the clocks are not in sync.

 
Since the choice of TOD Clock Function rests with the application programmer, there is likely to be many date incompatible programs. There are various Clock-Sync programs that may help to get the clocks in sync up until 31Dec1999. After that a software fix is needed for the XBIOS Clock functions.

 
XBIOS SetTime/Date Function

 
The XBIOS SetTime/Date function, which accesses the IKBD hardware via the IKBD serial Binary Coded Decimal (BCD) interface, for some strange reason, has #$80 added to the BCD Year value before transmitting it to the IKBD.
 
Programmers have already gone to the trouble of subtracting 1980 from any date inputted by the user so that the year 1980 from the user will be passed to XBIOS (or DOS) as 0.

 
The consequence of this is that year values greater than BCD 19 will be invalid after adding #$80. e.g. BCD_19 + #$80 = BCD_99 which is valid but BCD_20 + #$80 = BCD_A0 which is invalid. The IKBD ignores invalid BCD values so the year is not updated in the IKBD although the time is updated.

 
XBIOS GetTime/Date Function

 
The XBIOS GetTime/Date function, which also accesses the IKBD hardware via the IKBD serial Binary Coded Decimal (BCD) interface, compensates for 2. above by subtracting decimal 80 from the Year AFTER it has been converted from BCD.

 
This means that the Get Year is not the same as the Set Year for input dates above 2060. The Set years 2060 to 2107 map to Get years 2028 to 2075.

 
This may sound a bit academic, but it does affect some of the possible software fix methods.

 
This also accounts for frequently getting the year 2028. When the date in the IKBD rolls over to an invalid number and the IKBD passes back BCD_00. Since BCD_00 from the IKBD Clock becomes BCD_00 - decimal 80 = #$B0, then the top 7-bits are then right-shifted to give #$30 (48 decimal) which is passed back to the application. Add 1980 in the application and you get 2028. Magic, but a pain.

 

Clive Williams Latest update: 02Jan2000






Copyright © Robert Schaffner (doit@doitarchive.de)
Letzte Aktualisierung am 23. Mai 2004
Home Anhang Cheatmodes Schaltplan