Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: GEOS-InfoBase-Forum. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

Freitag, 2. Februar 2018, 16:14

Geht die GEOS-Uhr nach, nachdem der Rechner aus dem Ruhezustand aufgewacht ist?

Die DOSBox geht nach dem Aufwachen des Rechners nach und GEOS natürlich auch. Das ist z.B. doof, wenn man einen Alarm unter GEOS laufen hat, oder wenn man dadurch Dateien / Dokumente mit falschem Datum / falscher Uhrzeit speichert.

Meine Fragen dazu:

- Ist das ein reines DOSBox-Problem, oder ist das unter anderen Systemen / Emus auch so?

- Falls ja, habt Ihr das Problem irgendwie gelöst?
Bernd

2

Sonntag, 4. Februar 2018, 12:14

Hallo Bernd,
bisher habe ich das gar nicht wirklich beachtet/gemerkt. Wahrscheinlich liegt es daran, dass ich Geos/Dosemu fast immer schließe wenn ich den Rechner in den Schlafmodus schicke. (Warum auch immer..) Jetzt habe ich einmal gezielt einen Test gemacht:
Dosemu/Geos gestartet und Dein Programm Uhrwerk Orange gestartet. Dann das Laptop zugeklappt damit es in den Schlafmodus geht. Nach 10 Minuten das Laptop wieder geöffnet. Tatsächlich, die Uhrzeit im Uhrwerk Orange ist nicht weiter gelaufen. Ich habe dann Geos beendet und in der Konsole (Dosemu lief noch) den Befehl "time" eingegeben. Es wurde die um 10 Min. verspätete Uhrzeit angegeben. Ergo ist der Auslöser wohl die Dosemu. Eine Lösung habe ich auch nicht.

Jens
- geos-tiger -

3

Sonntag, 4. Februar 2018, 13:51

Ich muß sagen, ist mir auch noch nie aufgefallen, da ich immer alle Prozesse in GEOS abschließe. Ich werde es auch mal testen...
Gruß Achim



PC/GEOS unter Linux in der DOSEMU = UNSCHLAGBAR!

4

Sonntag, 4. Februar 2018, 14:29

tahrpup 6.02, Dosemu1 (Repositories)

GEOS-Uhr ist stehengeblieben.
"Always Look On The Bright Side Of Life!"

5

Sonntag, 4. Februar 2018, 19:03

1. Danke für das feedback, Jungs!

2. Bei mir kommt es häufiger vor, dass ich die Arbeit unter GEOS unterbrechen muss. Da hat sich das Zuklappen des Rechners bewährt und ich kann halt anschließend gleich weiterpuzzlen.

3. Jörg hatte 1998 das GEOS-Programm 'Uhrenabgleich' veröffentlich, das die GEOS-Uhr wieder auf den aktuellen Stand bringt. Unter DOSBox funktioniert es aber leider nicht. Auch ein DOS-Programm für den gleichen Zweck, das ich im Web gefunden habe, funktioniert nicht.

4. Rainer hat berichtet, dass per SDK oder R-BASIC kein direkter Zugriff auf die Hardware-Uhr des Rechners vorgesehen ist und man das bei Bedarf wahrscheinlich per Assembler realisieren müsste.

5. Ein anderer Lösungsvorschlag von Rainer ist, vom Hostsystem aus eine Datei regelmässig zu bearbeiten, und dadurch jeweils das aktuelle Änderungsdatum der Datei zu überschreiben.

Ich habe daraufhin ein kleines Shellscript geschrieben, das ich automatisch mit GEOS mitstarte und das alle 60 Sek. das Änderungsdatum der 0-Byte-Datei GEOS_ACT.IVE aktualisiert. Sie wird beim STart von GEOS automatisch angelegt und beim Beenden wieder gelöscht. Wenn die Datei gelöscht ist, beendet sich das Script automatisch. Von GEOS aus könnte man Datum und Uhrzeit auslesen und weiterverarbeiten. Die GEOS-Uhr ginge auf diese Weise max. eine Minute nach.

Was haltet ihr davon? Fallen euch alternative Lösungen ein?

Quellcode

1
2
3
4
5
6
7
8
9
10
11
#!/bin/bash
while true
do
if test -f ~/Documents/DOSBox_Laufwerk/4100d/GEOS_ACT.IVE
then
touch ~/Documents/DOSBox_Laufwerk/4100d/GEOS_ACT.IVE
sleep 60
else
break
fi
done
Bernd

6

Sonntag, 4. Februar 2018, 23:07

Hallo Bernd,

hatte heute nachmittag kurz gegoogelt, um etwas zur Zeitaktualisierung in der Dosemu zu finden. Gab auch etwas, nur hatte ich nicht die Zeit, um den Versuch zu unternehmen, das wirklich zu verstehen. Komme aber in den nächsten Tagen dazu. Meine Überlegung: es gibt - zumindest unter Linux - mehr von uns benutzte Hostsysteme als Emulationen, weshalb es mir sinnvoller erscheint, nach Lösungen in der DOSEmu (falls möglich) und in der DOSBox zu suchen. Hier zwei Links:
http://www.dosemu.org/docs/README-tech/1.4/timing.html
http://www.sat.dundee.ac.uk/psc/dosemu_time_advanced.html

Dein Mac-Skript liest sich plausibel und müßte so ähnlich wohl auch unter Linux lauten.
"Always Look On The Bright Side Of Life!"

7

Sonntag, 4. Februar 2018, 23:30

Hallo Martin, wenn man DOSEmu so einstellen kann, dass sie nach dem Aufwachen selbständig die Hardware-Uhr abfragt, wäre das ne elegante Lösung. Ist dann z.B. die Frage, ob ne Emu merken kann, dass sie geschlafen hat.

Ne andere Lösung wäre vielleicht auch, den Ruhemodus des Hostsystems so zu ändern, dass die Software-Uhr der DOSEmu weiterläuft. Ob sowas geht? Mit Linux vielleicht, unter macOS sehe ich da eher schwarz...

Grundsätzlich scheint es so zu sein, dass Betriebssysteme nur einmal beim Start die Hardware-Uhr abfragen und anschließend nur die eigene Software-Uhr verwenden. Unter Linux gibt es aber einen Befehl, mit dem man das auch manuell machen kann.
Bernd

8

Montag, 5. Februar 2018, 00:04

Grundsätzlich scheint es so zu sein, dass Betriebssysteme nur einmal beim Start die Hardware-Uhr abfragen und anschließend nur die eigene Software-Uhr verwenden. Unter Linux gibt es aber einen Befehl, mit dem man das auch manuell machen kann.
Du kannst unter Linux die Zeit mit dem Network Time Protocol automatisch synchronisieren.
Hallo Martin, wenn man DOSEmu so einstellen kann, dass sie nach dem Aufwachen selbständig die Hardware-Uhr abfragt, wäre das ne elegante Lösung. Ist dann z.B. die Frage, ob ne Emu merken kann, dass sie geschlafen hat.

Ne andere Lösung wäre vielleicht auch, den Ruhemodus des Hostsystems so zu ändern, dass die Software-Uhr der DOSEmu weiterläuft. Ob sowas geht? Mit Linux vielleicht, unter macOS sehe ich da eher schwarz...
Die erste Alternative erscheint mir sinnvoller. Die Emulation müßte auch nicht merken, daß sie geschlafen hat, sofern sie nur routinemäßig (minütlich?) die Zeit abfragen würde. Dazu müßte - wahrscheinlich in der global.conf der Dosemu - ein weiterer Befehl eingetragen werden können, der die ermittelte Zeit dann an den GEOS-Prozess in der Dosemu weitergäbe oder von GEOS abgefragt werden könnte. Ein ganzer Absatz im Konjunktiv - aber das muß einen ja nicht entmutigen. Notfalls könnte man die von der Dosemu ermittelte Zeit (wieder mal) in eine Datei ausgeben und diese Datei nach GEOS einlesen, nachdem man den Laptop-Deckel wieder aufgeklappt hat. :D

Das wird spannend und ich veranschlage mindestens zwei Wochen. Wird das kleine Dorf seinen Zeit-Zauberkessel behalten dürfen oder wird es der Übermacht der Hardware, Host- und Virtualisierungssysteme erliegen? Hoffen wir 's Beste, liebe Leser!
"Always Look On The Bright Side Of Life!"

9

Montag, 5. Februar 2018, 10:12

Kleiner Nachtrag zu Bernds Anmerkungen ganz oben: Natürlich kann man vom SDK aus auf die Systemuhr zugreifen, sie lesen und ändern. Unter einer Emulation ist das aber eben die Uhr der Emulation. Wenn die sich nicht selbständig mit der Uhr des Hostsystems abgleicht - was offenbar weder DosBox noch DosEmu machen - haben wir das beschriebene Problem.

Kann jemand das Konzept, das Datum GEOS_ACT.IVE (oder eine andere Datei) alle Nase lang zu ändern, unter Windows umsetzen? Ein kleines GEOS-Programm, dass dann die GEOS Uhr anpasst, ist kein Problem. Ich würde sogar eine wesentlich kleinere Zeitspanne als 1 min. bevorzugen. Vielleicht 10 Sekunden. Damit könnte auch Bernds ALARM-Programm leben, bei einer Minute ist das schon grenzwertig. Die Systembelastung durch so etwas ist extrem gering.

Gruß
Rainer
Es gibt 10 Arten von Menschen - die einen wissen was binär ist, die anderen nicht.

10

Montag, 5. Februar 2018, 11:24

Du kannst unter Linux die Zeit mit dem Network Time Protocol automatisch synchronisieren.
Ja, du hast natürlich recht. Systeme, die online sind, können sich bei Bedarf die Uhrzeit von einem Zeitserver holen. Jörg hatte das auch schon berichtet und sogar einen SNTP-client für DOS ausgegraben. Emus, die offline sind, können diese Möglichkeit aber leider nicht nutzen.
Bernd

11

Montag, 5. Februar 2018, 11:33

Kleiner Nachtrag zu Bernds Anmerkungen ganz oben: Natürlich kann man vom SDK aus auf die Systemuhr zugreifen, sie lesen und ändern. Unter einer Emulation ist das aber eben die Uhr der Emulation. Wenn die sich nicht selbständig mit der Uhr des Hostsystems abgleicht - was offenbar weder DosBox noch DosEmu machen - haben wir das beschriebene Problem.
Ok, danke. Das hatte ich wohl missverstanden.

Zitat

Kann jemand das Konzept, das Datum GEOS_ACT.IVE (oder eine andere Datei) alle Nase lang zu ändern, unter Windows umsetzen? Ein kleines GEOS-Programm, dass dann die GEOS Uhr anpasst, ist kein Problem. Ich würde sogar eine wesentlich kleinere Zeitspanne als 1 min. bevorzugen. Vielleicht 10 Sekunden. Damit könnte auch Bernds ALARM-Programm leben, bei einer Minute ist das schon grenzwertig. Die Systembelastung durch so etwas ist extrem gering.
Stimmt, hatte ich mir auch angesehen. Die Systembelastung ist minimal. Mir ist nur noch nicht klar, inwieweit das ständige Ändern des Datums die Festplatte / SSD belastet, oder ob das keine negativen Auswirkungen hat, weil keine Datei geschrieben, sondern nur ein Eintrag im Dateisystem geändert wird? Wenn das keine negativen Auswirkungen hat, kann man natürlich auch alle 10 Sek. oder sogar sekündlich aktualisieren.
Bernd

12

Montag, 5. Februar 2018, 11:42

Ein (S)NTP-Server könnte theoretisch auch auf dem lokalen Rechner laufen. Der wäre dann auch offline verfügbar.

Grösstes Problem ist aber, dass aus der Emu heraus auf "localhost" / 127.0.0.1 des Rechners zu gegriffen werden müsste, was nur mit einem umständlichen NAT möglich wäre. Alternativ verwendet man ein eigenes Zwischennetz, in welchem die Emu und der Hostrechner je eine IP haben.

Grundsätzlich würde ich zuerst aber bei den Entwicklern von DOSBox / DOSEmu(2) anfragen.

13

Montag, 5. Februar 2018, 11:45

Grundsätzliche Frage wäre hier, wann PC/GEOS überhaupt die Zeit aus der RTC einliest. Macht es dies regelmässig oder nur beim Start ?

http://www.sat.dundee.ac.uk/psc/dosemu_time_advanced.html

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »bolle732« (5. Februar 2018, 13:45)


14

Montag, 5. Februar 2018, 15:53

Kann jemand das Konzept, das Datum GEOS_ACT.IVE (oder eine andere Datei) alle Nase lang zu ändern, unter Windows umsetzen?
Habe spasseshalber mal geschaut, ob Batchdateien noch von Windows unterstützt werden - und tatsächlich, das geht noch.

Habe auf die Schnelle eine kleine Batchdatei geschrieben, die allerdings von mir ungetestet ist. Falls sie nicht läuft, könnte sie vielleicht als Anregung dienen, wie sich das so oder so ähnlich relativ leicht umsetzen lässt:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
@echo off
:: Kommentarzeilen
:: Ob Befehl 'start' notwendig ist, weiß ich nicht. Falls ja, evtl. Parameter notwendig.
:: Alternativ per 'call' weitere Batchdatei aufrufen, die nur LOADER.EXE startet.
start pfad\LOADER.EXE
:ok
if exist pfad\GEOS_AVT.IVE goto start
exit
:start
:: der copy-befehl soll in dieser Schreibweise Datum/Uhrzeit aktualsieren. Testen
:: Alternativ soll es auch einen Touch-Befehl zum nachinstallieren geben
copy /b pfad\GEOS_AVT.IVE+,,
timeout /T 10 /nobreak
goto ok


https://www.script-example.com/themen/Windows_Batch.php
Bernd

15

Montag, 5. Februar 2018, 18:50

Lösung?

Eventuell gibt es für DOSEmu-Benutzer eine Lösung. In der dosemu.conf gibt es die Sektion "dosemu-specific hacks". Dort gibt es verschiedene Arten der RTC-Emulation. Wenn ich dort die Zeile "timemode=..." mit "$_timemode=linux" freischalte, dann wird die DOSEmu die System-Zeitänderungen verfolgen und ggf. umsetzen.
Habe das mal gecheckt und es hat funktioniert. GEOS war nach einigen Minuten in den Schlafmodus gefallen (mitsamt dem Hostsystem) und die Uhr war stehen geblieben. Nachdem das Hostsystem wieder angelaufen war, stellte sich die GEOS-Uhr nach. Allerdings mußte ich auch erst die Maus mit einem Mausklick aufwecken. Vielleicht könnte das noch jemand nachvollziehen.
Edit: Geht auch ohne Maus aufwecken, dauert nur ein wenig länger. ^^
Gruß Achim



PC/GEOS unter Linux in der DOSEMU = UNSCHLAGBAR!

16

Montag, 5. Februar 2018, 22:34

Klappt auch bei mir. :) Habe vor dem Ruhezustand unter GEOS die Stoppuhr gestartet und nach dem Aufwecken sofort daraufgeklickt: die Stoppuhr hatte sofort die aktualisierte Zeit; die GEOS-Uhr reagierte erst nach 30 Sekunden. Danke, Achim.
"Always Look On The Bright Side Of Life!"

17

Dienstag, 6. Februar 2018, 17:00

Klasse, damit habt ihr DOSEmu-User das Problem wohl elegant gelöst.

Unter DOSBox sehe ich da für mich keine Chance. Jörg hat zwar von einer Möglichkeit berichtet, die ist aber programmiertechnisch eindeutig mehrere Level zu schwierig für mich.
Bernd

18

Dienstag, 6. Februar 2018, 23:26

Das eigentliche Problem ist die DosBox selbst. Bei meiner MegaBuild-DosBox-Variante kann man bei DATE und TIME spezielle Kommandozeilenparameter mit angeben, die dafür sorgen, dass die DosBox die DosBox-interne Uhrzeit wieder mit der BIOS-Systemzeit aktualisiert. Und bei DATE kann man sogar sagen, dass sich die DosBox-interne Uhrzeit permanent mit der BIOS-Systemzeit aktualisieren soll. Aber ob es diese Schalter bei jeder DosBox-Version gibt und ob sie auch funktionieren?!
d[ 0_O ]b

19

Mittwoch, 7. Februar 2018, 10:36

Die "normale" DOsBox 0.74 unterstützt weder den date noch den time Befehl :-(
Rainer
Es gibt 10 Arten von Menschen - die einen wissen was binär ist, die anderen nicht.

20

Mittwoch, 7. Februar 2018, 10:47

Klappt auch bei mir.
Nachtrag: DOSEmu 1.4.0.8.
"Always Look On The Bright Side Of Life!"

Zur Zeit ist neben Ihnen 1 Benutzer in diesem Thema unterwegs:

1 Besucher

Ähnliche Themen

Thema bewerten