Windows 3.1x Support Forum

Registrieren || Einloggen || Hilfe/FAQ || Suche || Memberlist || Home || Statistik || Kalender || Staff Willkommen Gast!
[ win31.de ] [ Impressum/Kontakt ] [ Über das Forum/Regeln ]

Windows 3.1x Support Forum » MS DOS 1.x-8.x » DOS Zeit-Datumsauslesefunktion » Threadansicht

Autor Thread - Seiten: -1-
000
20.07.2015, 12:51 Uhr
M.Stocker



Eine Frage zur DOS-Datums- und Zeitfunktion:

Das ist das Problem: Wenn ein unter DOS 6.22 laufender PC (Rhodeus PC104 von Diamond Systems) mehrere Tage ununterbrochen am Stück läuft (wie das in einer Fabrik so üblich ist..) dann 'verliert' das DOS das korrekte Datum, d.h. die Uhr scheint um ein bis mehrere ganze Tage nachzugehen. Ich hole das Datum (+ Uhrzeit) mit einer Library-Funktion von Turbo-Pascal 7 ab. Das Ergebnis ist das gleiche, wenn man einen Direkt-DOS-Aufruf (ASM-Gedöns) schreibt, oder mit dem date-Konsolenbefehl das Datum ausliest.
Fragt man die CMOS-Uhr direkt ab (Register über I/O-Befehle auslesen) kommt aber das richtige Datum, d.h. die CMOS-Uhr wird nicht verändert. Nach einem Kalt- oder Warmstart zeigt auch der DOS-Aufruf wieder das richtige Datum.

Hat schon mal jemand sowas erlebt? Ich habe in den Foren, die ich ergoogelt habe, nichts gefunden.

Vorletzter DOS 6.22-Bug? BIOS-Bug? Sonst ne Idee?
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
001
20.07.2015, 18:31 Uhr
dreael

Avatar von dreael

Ein paar Fundstücke zum Thema NTP:

http://www.josh.com/SNTPC/
http://www.brutman.com/mTCP/mTCP_Sntp.html

Schlussendlich ist auch im LAN-Manager der Befehl

Quellcode:
net time \\server /set /yes

zum Synchronisieren möglich.
GW-BASIC- und QuickBASIC-Programmierer könnten in ihrer Anwendung einfach ein regelmässiges

Quellcode:
server$ = "LXSAMBA"
SHELL "net time \\" + server$ + " /set /yes"

aus ihrer Anwendung heraus aufrufen.

=> Ich würde mir also so etwas überlegen, falls dies das Umfeld (LAN mit DSL-Router) zulässt.
--
Teste die PC-Sicherheit mit www.sec-check.net

Dieser Post wurde am 20.07.2015 um 18:32 Uhr von dreael editiert.
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
002
22.07.2015, 23:33 Uhr
schoela

Avatar von schoela

Ich habe mal Google nach den Suchen "systemzeit weicht von bios ab" und "systemzeit weicht von bios ab dos" bedient. Interessant fand ich dazu diesen Foren Beitrag auf chip.de: http://forum.chip.de/windows-xp-aeltere-versionen/windows-zeit-weicht-bios-zeit-immer-mehr-ab-218644.html

Auch wenn es dabei um Windows 98 (im Prinzip ein DOS-Aufbau) geht, die wesentlichen Problemursachen werden hier wie folgt vermutet:
- "Entwicklungsumgebung, die sich annähernd 100% Prozessorzeit krallt"
- "BIOS-Uhrzeit-Update reicht nicht, Windows fragt nur beim Start nach"

Und hier könnte auch die Ursache für dein Problem liegen. Eine Anwendung Deines Industrie-PCs benötigt soviele Ressourcen, dass die DOS-Systemzeit "lahmt". Rufst Du die Zeit ab, wird immer nur die DOS-Systemzeit zurückgegeben. Erst nach einem Neustart holt DOS sich die Systemzeit vom BIOS wieder.

Der Vorschlag von dreael, sich die Zeit über NTP zu holen, stellt eine Lösung dar. Du benötigst aber halt eine Netzwerkverbindung, was bei alten Industrie-PCs meist nicht der Fall ist (?). Wir müssten also einen Weg finden, die BIOS-Systemzeit direkt auslesen zu können.

Was denkst Du dazu?

Hier noch ein interessanter Link zu Google-Books:
https://books.google.de/books?id=cSaeBgAAQBAJ&lpg=PA219&ots=Dqb4jYsuMH&dq=dos%20bios%20zeit%20auslesen&hl=de&pg=PA219#v=onepage&q=dos%20bios%20zeit%20auslesen&f=false
Seite 219ff scheint klingt infomativ :-)

Und hier noch ein Link bzgl. evtl. Datumsfehler:
http://www.mikrocontroller.net/topic/108071
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
003
26.07.2015, 19:24 Uhr
dreael

Avatar von dreael

Was die Zeit bei der RTC holen betrifft: INT 1Ah, AH=04h

http://www.ctyme.com/intr/rb-2277.htm

Umgekehrt auch

http://www.ctyme.com/intr/rb-2280.htm

beachten, z.B. RTC einmalig mit NTP richtig einstellen beim Bootprozess, danach regelmässig INT 1Ah/AH=04h benützen und damit regelmässig (z.B. alle x Stunden) ein

http://www.ctyme.com/intr/rb-2687.htm
http://www.ctyme.com/intr/rb-2707.htm

machen (zuverlässige RTC-Zeit holen und diese in die DOS-Zeit übertragen).
--
Teste die PC-Sicherheit mit www.sec-check.net
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
004
29.07.2015, 19:41 Uhr
M.Stocker



Vielen Dank für die ausführlichen Antworten!

Zu dreael: Das mit dem Uhrzeit-/Datumsbezug aus dem Netzwerk ist auch eine gute/elegante Idee, dazu muss ich aber zunächst das DOS-Systemchen an das Netzwerk anbinden. Deine Links sind eine ergiebige Quelle dafür (mTCP), und damit hast Du mir evtl. noch an einer anderen Baustelle geholfen! Denn die Netzwerksanbindung der DOS-Rechnerchen ist ebenfalls noch ein Thema, bei dem ich bis jetzt noch keinen Erfolg hatte. Das wäre aber evtl. ein neues Thema, denn die über deine Links gefundenen Packet-Driver erkennen aus irgendeinem Grund den RTL 8139 des Rhodeus nicht oder bleiben hängen. (Georg Potthasts Diagnose-Routine erkennt den PCI-angeschlossenen RTL 8139!)

Zu schoela: Der Rechner verliert auch einen (oder viele) Tageswechsel, wenn nur das Kommandozeilen-Prompt aktiv ist, d.h. der Rechner auf nichts anderes als einen Tastendruck wartet. Das sollte ihn eigentlich nicht überfordern.

Es scheint also tatsächlich ein DOS-Bug zu sein. Die dauerhafte Übergangslösung ist ja schon gefunden: Register der CMOS-Uhr auslesen, bei Port $70/$71, jawoll, so geht man mit störrischen Home-Computer-Betriebssystemen um ;-)
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
005
29.07.2015, 21:59 Uhr
dreael

Avatar von dreael

Zum Thema Netzwerk noch ein Link:

http://www.jacco2.dds.nl/samba/dos.html#lanman

=> dort bekommt man auch heute immer noch den LAN-Manager-Client für DOS.

Wichtig ist einfach die Speicheroptimierung, damit nicht der komplette konventionelle Speicher (die berühmte 640 KB-Grenze der Intel 808x-Architektur; da nützt der Einbau von 2 GB-RAM-Riegeln also nichts!) mit TSRs belegt wird.
--
Teste die PC-Sicherheit mit www.sec-check.net
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
Seiten: -1-     [ MS DOS 1.x-8.x ]  



Win31.de

powered by ThWboard 3 Beta 2.84-php5
© by Paul Baecher & Felix Gonschorek