(MS) DOS und das Jahr 2010 inkompatibel?!
Steel
- sonstiges
Moinsen!
Eine komische Frage, die sich hier grad so ergeben hat: Jemand laedt Daten in ein System. Ein Teil dieser Daten ist das aktuelle Datum. Dieser Jemand laedt aber immer ein Datum letzten Jahres in das System. (statt 14.12.2010 den 14.12.2009) Das verursacht einige Probleme. Darauf angesprochen kam folgendes Statement von der IT dort: "Es wird ein altes System benutzt, das auf DOS laeuft. DOS kann kein Datum ueber 2009."
Mal davon ab, dass man auch mit DOS problemlos einen String generieren kann, der ein aktuelles Datum darstellt: Was hab ich verpasst? Den Scherz? Eine Eigenschaft von DOS? Dass wir fuer dumm verkauft werden?
Das is doch wohl eher nen *g* zur Wochenmitte?
"DOS kann kein Datum ueber 2009."
Das kann schon sein, dass bestimmte alte DOS-Varianten tatsächlich derart seltsam funktionieren.
Bei Symantec gabs zum Jahreswechsel das Problem, dass die Virendefintionen veraltet waren, weil der wieder auf 2009 zurückgefallen ist.
Mal davon ab, dass man auch mit DOS problemlos einen String generieren kann, der ein aktuelles Datum darstellt: Was hab ich verpasst? Den Scherz? Eine Eigenschaft von DOS? Dass wir fuer dumm verkauft werden?
Das is doch wohl eher nen *g* zur Wochenmitte?
Nein, das Jahr-2010-Problem ist durchaus real und kein Scherz, es hat sogar weit mehr Probleme verursacht als das gefürchtete Jahr-2000-Problem. Darauf war man vorbereitet, auf den 2010-Overflow nicht.
In den meisten Fällen war es ein Dezimal/Hex-Irrtum wo statt 09 -> 10 dann 09 -> 16 als Hex interpretiert wurde. Kreditkarten und Bankomatkarten wurde da zeitweise unbrauchbar.
Hoi!
Ich persoenlich vermute da eher ein Fehler im DOS-Programm, nicht im DOS selbst.
Ich persoenlich vermute da eher ein Fehler im DOS-Programm, nicht im DOS selbst.
Oder so herum, ja.
Hello,
Ich persoenlich vermute da eher ein Fehler im DOS-Programm, nicht im DOS selbst.
Oder so herum, ja.
Das Datum wurde oft im BCD-Format verwaltet, um Platz zu sparen.
Allerdings gibt es schon ziemlich lange den Int
http://www.i8086.de/dos-int-21h/funktion-2b.html
der, wie man sieht, die Jahreszahl als Word (2 Bytes) im Register CX übernimmt.
Wenn es allerdings um das Alter von Dateien geht, dann kann DOS nur Daten
von 1853 bis 2108 verwalten.
http://www.datasource.de/programmierung/tab18_dosint21_3h.html#tab9
Tag und Monat sind BCD-codiert, das Jahr hat ein ganzes Byte (signed) mit dem Jahr 1980 als Referenzjahr, was dann 1980-127 und 1980+128 als Grenzen ergibt.
Wenn also jemand behauptet, es gäbe bei DOS ein Jahr-2010-Problem, dann kann ich das nicht nachvollziehen. Weder im BIOS (wenn es denn das Jahr 2000 gewschafft hat), noch im DOS (Realmode) wäre das begründet.
Bei Verwendung des/eines DPMI (DOS Protectet Mode Interface) gelten sowieso wieder ganz andere Regeln, weil hier ganze Teile der Microprgrammierung komplett getauscht werden.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg