@DATABASE DCF77.guide
@MASTER DCF77.guide
@$VER: 2.23
@AUTHOR "Ralf Gruner"
@(c) "© Ralf Gruner, Großschönau, Germany"

@NODE "Main" "DCF77 Handbuch"
@{JRIGHT}***RGR***
@{JCENTER}
DCF77:  @{b}Das@{ub} Empfangsprogramm für den Zeitsignalsender DCF77
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

Version 2.34 Demo

Bedienungsanleitung
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

@{JLEFT}
  @{u}Inhalt:@{uu}



  @{" Vorwort " LINK "Vorwort" 0}
  @{" Schnelleinstieg " LINK "Schnelleinstieg" 0}
  @{" Lieferumfang " LINK "Lieferumfang" 0}
  @{" DCF77  -  Normalfrequenz und BCD-Zeitcode " LINK "Normalfrequenz und Zeitcode" 0}
  @{" Funkuhrempfang mit dem Amiga " LINK "Funkuhrempfang mit dem Amiga" 0}
  @{" Installation und Programmstart " LINK "Installation" 0}
  @{" Installation rückgängig machen " link "Desinstallation" 0}
  @{" Eigenschaften " LINK "Eigenschaften" 0}
  @{" Festlegen der Betriebsart " LINK "Betriebsart" 0}
  @{" Genauigkeit " LINK "Genauigkeit" 0}
  @{" Fehlersicherheit " LINK "Fehlersicherheit" 0}
  @{" DCF77-Empfänger und Dongle " link "DCF77-Empfänger und Dongle" 0}
  @{" Unverträglichkeiten mit anderen Programmen " link "Unverträglichkeiten" 0}
  @{" Mögliche Weiterentwicklung " link "Weiterentwicklung" 0}
  @{" Anschluß von Empfängern " link "Anschluß von Empfängern" 0}
  @{" Fehlersuche " LINK "Fehlersuche" 0}
  @{" Hifsprogramme " LINK "Hilfsprogramme" 0}
  @{" Copyright " LINK "Copyright" 0}
  @{" Bestellmöglichkeit " LINK "Registrierung" 0}
@ENDNODE

@NODE "Vorwort" "Vorwort"
@SMARTWRAP
@{LINDENT 1}


Willkommen zur perfekten Uhrzeit-Steuerung Ihres Amiga!


DCF77 ist der Zeitsignalsender in Mainflingen, der die meisten funkgesteuerten
Uhren in Deutschland mit der genauen Zeit versorgt.

Mit der vorliegenden Software steht Ihnen eine zuverlässige Schnittstelle
zwischen dem Amiga-Betriebssystem und den Informationen dieses Senders zur
Verfügung.


Das Programm DCF77 ist ein Commodity und läuft auf allen Amigas, die mit einem
Betriebssystem ab Version 37 (Kickstart 2.04) ausgestattet sind. Es ist entwickelt
worden, um Amiga-Benutzern den professionellen Funkuhr-Einsatz möglich zu machen,
da bisherige Softwarelösungen diesem Anspruch nicht standhalten konnten. Der
Programmierung lagen deshalb die folgenden Eigenschaften als Prämissen zugrunde:

@{lindent 2}

- Ständiger Empfangsbetrieb bei minimalem Rechenzeit-Verbrauch

- Keine Beeinflussung anderer laufender Anwendungsprogramme

- Exaktes und fehlerfreies Stellen der Amiga-Systemzeit

- Weitestgehende Konfigurierbarkeit.
@{lindent 1}


Zum Betrieb mit diesem Programm sind alle Funkuhrempfänger geeignet, die das
demodulierte AM-Signal vom Sender DCF77 als TTL-Signal (für den Gameport oder die
Parallelschnittstelle) oder im V24-Pegel (für die serielle Schnittstelle) zur
Verfügung stellen (z.B. der Amiga-Empfänger von Conrad Electronic).



Die vorliegende Programme sind die @{B}Demoversion@{UB} eines kommerziell
vertriebenen Produkts - es war also eine kleine Einschränkung der Funktionen
unvermeidlich:

Das Empfangsprogramm DCF77 addiert beim Stellen der Systemzeit den Monat in
Stunden zur Uhrzeit. Das klingt aber schlimmer als es ist, denn mit dem
Eintrag @{" OFFSET.HOURS " LINK "OFFSETS" 0} in den Merkmalen (Tool Types) kann
man das leicht kompensieren (im Mai z.B. muß es OFFSET_HOURS=-5 heißen),
nur müssen Sie diesen Eintrag dann monatlich anpassen.

Alle anderen Teile des Programmpaketes sind uneingeschränkt benutzbar.


Die Vollversion des Programmes können Sie bei
@{" OsaMatic " LINK "Registrierung" 0} bestellen.

@ENDNODE

@NODE "Schnelleinstieg" "Schnelleinstieg"
@SMARTWRAP
@{LINDENT 1}

@{B}Schnelleinstieg:@{UB} Starten Sie das Skript "Ausprobieren" durch Anklicken
oder klicken Sie auf das Feld "Ausprobieren" unten auf dieser Seite.


Damit starten Sie die Programme


- Exchange (der Workbench),

- GClock (aus der Schublade Utilities) und

- DCF77-Diagnose (aus der Schublade "DCF77 (Kickstart 2.04)").


DCF77-Diagnose läßt sich mit der Tastenkombination Ctrl-C oder mittels
des zu diesem Zweck gestarteten Exchange wieder beenden.



Diese Vorführung hat aber nur Sinn, wenn Ihr Empfänger am Gameport 2 angeschlossen
ist. Für andere Empfänger ist ein klein wenig Installationsaufwand nötig (Sie müssen
die Merkmale @{" PORT " LINK "PORT" 0} und @{" PIN " LINK "PIN" 0} anpassen).
Sollten Sie nicht wissen, wie man Merkmale verändert, dann lesen Sie bitte das
Kapitel @{" Festlegen der Betriebsart " LINK "Betriebsart" 0}.



@{JCENTER}
@{" Ausprobieren " SYSTEM "execute SofortAusprobieren"}

@ENDNODE

@NODE "Lieferumfang" "Lieferumfang"
@SMARTWRAP
@{LINDENT 1}

@{B}Lieferumfang@{UB}


Das DCF77-Paket besteht aus folgenden Programmen:


@{" DCF77 " LINK "Vorwort"}             @{B}Das Empfangsprogramm@{UB} (als Commodity)

@{" DCF77-1.2 " LINK "DCF77 (Kickstart 1.2)/DCF77-1.2-Anleitung/MAIN"}         Das Empfangsprogramm für Kickstart ab 1.2

@{" DCF77-Diagnose " LINK "DCF77-Diagnose"}    Eine Version des Empfangsprogramms zur Fehlersuche

@{" GClock " LINK "GClock"}            Eine Analog-Uhr mit Anzeige des DCF77-Empfangsstatus

@{" TimeSignal " LINK "TimeSignal"}        Ein akustisches Zeitzeichen (als Commodity)

@{" WaitForDCF77 " LINK "WaitForDCF77"}      Ein Shell-Befehl, der auf den Empfang der DCF77-Zeit wartet

@{" WaitDCF77ifCrash " LINK "WaitDCF77ifCrash"}  Ein Shell-Befehl, der bei verstellter Hardware-Uhr wartet.



Weiterhin finden Sie im Verzeichnis "für Programmierer"
noch die Sourcecodes der beiden Shell-Befehle
(@{" WaitForDCF77.c " LINK "für Programmierer/WaitForDCF77.c/MAIN"} und
@{" WaitDCF77ifCrash.c " LINK "für Programmierer/WaitDCF77ifCrash.c/MAIN"})

und eine @{" Dokumentation " LINK "für Programmierer/DCF77-Datenaustausch/MAIN"}, wie ein Programm den DCF77-Empfangsstatus erfahren kann.

@ENDNODE

@NODE "Normalfrequenz und Zeitcode" "DCF77 - Normalfrequenz und BCD-Zeitcode"
@SMARTWRAP
@{LINDENT 1}

@{B}DCF77  -  Normalfrequenz und BCD-Zeitcode@{UB}


DCF77 - so heißt der Sender, mit dem die Physikalisch-Technische
Bundesanstalt in Braunschweig seit 1959 eine Normalfrequenz und seit 1973
zusätzlich Datum und Uhrzeit ausstrahlt.

Der Sender steht in Mainflingen bei Frankfurt am Main und arbeitet auf
77,5 kHz mit einer Leistung von 50 kW.

Die Zeitbasis stellen dabei mehrere Atom-Uhren (derzeit zwei Cäsium- und
eine Rubidium-Uhr) dar. Die Abweichung des daraus abgeleiteten Signals
beträgt weniger als eine Sekunde in 1 Million Jahren.


Im Zeitgesetz von 1978 wird die Physikalisch-Technische Bundesanstalt mit
der Verbreitung der Gesetzlichen Zeit in Deutschland beauftragt. Die über
DCF77 verbreitete Zeitinformation stellt also die offizielle
Zeit der Bundesrepublik Deutschland dar.


Das DCF77-Signal ist - abhängig von Tages- und Jahreszeit - bis zu einer
Entfernung von etwa 1900 km (tagsüber) bzw. 2100 km (nachts) zu empfangen.
Die Grafik @{" Reichweite " LINK "Reichweite/MAIN" 0}, die sich mit einem
beliebigen Amiga-Grafik-Programm anschauen läßt, illustriert die Ausbreitung
des Langwellensignals.


Im Bereich bis ca. 600 km ist der Sender als Bodenwelle zu empfangen.
Ab ca. 1100 km überwiegt der Raumwellenanteil. Im Abstand von 600 km
bis 1100 km vom Sender kann es gelegentlich bei gleichen Feldstärken
von Boden- und Raumwelle zur Auslöschung des Signals kommen (Fading von
15 min Dauer und mehr).


Die logischen Informationen (die Zeitinformationen) werden zusätzlich zur
Normalfrequenz (der Trägerfrequenz des Senders, also 77,5 kHz) übertragen.
Das geschieht durch negative Modulation des Signals (Absenken der
Trägeramplitude auf 25%).


Der Beginn der Absenkung liegt jeweils auf dem Beginn der Sekunden 0...58
innerhalb einer Minute. In der 59. Sekunde erfolgt keine Absenkung, wodurch
die nachfolgende Sekundenmarke den Beginn einer Minute kennzeichnet, und
der Empfänger synchronisiert werden kann.
Der logische Wert der Zeichen ergibt sich aus der Zeichendauer: 100 ms sind
die "0", 200 ms sind die "1".


Damit stehen innerhalb einer Minute 59 Bit für Informationen zur Verfügung.
Davon werden die Sekundenmarken 1 bis 14 für Betriebsinformationen
verwendet, die nicht für DCF77-Nutzer bestimmt sind.
Die Sekundenmarken 15 bis 19 kennzeichnen die Sendeantenne, die Zeitzone
und kündigen Zeitumstellungen an.
Von der 20. bis zur 58. Sekunde wird die Zeitinformation für die jeweils
nachfolgende Minute seriell in Form von BCD-Zahlen übertragen:


20           Startbit ("1")

21 - 27      Minute

28           Parität Minute

29 - 34      Stunde

35           Parität Stunde

36 - 41      Monatstag

42 - 44      Wochentag

45 - 49      Monat

50 - 57      Jahr

58           Parität Datum


Für den Anwender einer Funkuhr bedeutet das, daß der Empfang mindestens
eine volle Minute laufen muß, bevor die Zeitinformation zur Verfügung
stehen kann.


Die innerhalb dieser Minute decodierte Information ist lediglich durch
drei Paritätsbits gesichert, somit führen bereits zwei fehlerhaft empfangene
Bits zu einem auf diese Weise nicht zu erkennenden Übertragungsfehler.
Um eine zuverlässige Zeitinformation zu erhalten, muß man also zusätzliche
Maßnahmen ergreifen, z.B. indem die Redundanz der Zeitinformation in
aufeinanderfolgenden Minuten ausgewertet wird.


Wer sich noch genauer informieren möchte, findet alles Wissenswerte über
den Sender DCF77 in:

   Dr.-Ing. Peter Hetzel: Zeitinformation und Normalfrequenz,

   telekom praxis, Heft 1/1993, S. 25-36.


@ENDNODE

@NODE "Funkuhrempfang mit dem Amiga" "Funkuhrempfang mit dem Amiga"
@SMARTWRAP
@{LINDENT 1}

@{B}Funkuhrempfang mit dem Amiga@{UB}


Seit einigen Jahren können auch Amiga-Benutzer die Systemzeit ihres
Computers vom Sender DCF77 steuern lassen:


Empfängerschaltungen (ursprünglich einfache Geradeausempfänger) sind 
von verschiedenen Elektronikzeitschriften als Bauanleitung
veröffentlicht worden, zuletzt in Funkamateur 3/95, S.264f.

(Mit einem selbstgebauten Empfänger hat auch der Autor des vorliegenden
Programms vor einigen Jahren seine ersten DCF77-Erfahrungen gesammelt;
aber nicht mit einem Amiga zur Dekodierung des Signals, sondern mit einer
Eigenbau-Z80-Schaltung, die auf Assemblerniveau programmiert wurde.)


Als schließlich ein Empfängerchip zur Verfügung stand, hat als erste
Firma Conrad Electronic einen preisgünstigen Empfänger produziert,
anfangs mit Software für den C64.

Das erste veröffentlichte Amiga-Empfangsprogramm war (soweit bekannt) ein
Amiga-Basic-Programm von Dr. Peter Kittel.

Später kam dann auch eine Amiga-Software von Conrad Electronic dazu.


Während des Einsatzes der Conrad-Software über den Zeitraum von reichlich
einem Jahr auf einem Amiga, der den Info-Kanal einer Kabel-TV-Anlage
steuert, haben sich so viele Probleme damit ergeben, daß die weitere
Benutzung des Programms nicht sinnvoll erschien. Und da nach dieser Zeit
immer noch kein Update von Conrad zu erhalten war, ist mit der
Programmierung der vorliegenden DCF77-Empfangssoftware begonnen worden.


Den Vertrieb dieses Programmpakets hat die OsaMatic übernommen (Conrad hatte
kein Interesse) und bietet zusätzlich einen hochwertigen DCF77-Empfänger
der Firma boeder an, der für den Einsatz am Amiga modifiziert ist.




Die Amiga-Empfangssoftware existiert in zwei Versionen:
eine einfache, die auch noch mit Kickstart 1.2 und 1.3 funktioniert und die
Vollversion, die als Commodity ins System eingebunden wird.


Zusätzlich finden Sie noch eine Analog-Uhr, die neben der Zeit und dem
Datum auch den erfolgreichen Empfang anzeigt,@{LINE}
eine Version des DCF77-Programms, die die laufenden Vorgänge in einem
Textfenster anzeigt, so daß sich der Empfangsvorgang überprüfen läßt,@{LINE}
und ein Zeitzeichen-Commodity.



Das vorliegende Empfangsprogramm unterscheidet sich von anderen dem Autor
bekannten Amiga-DCF77-Programmen im wesentlichen in folgenden Punkten:

@{LINDENT 3} @{PARI -2}

- Es stellt die Uhr genau.

- Es beeinflußt keine anderen Anwendungen, die sich an die
Amiga-Programmierrichtlinien halten.

- Es überprüft zusätzlich zur Auswertung der Paritätsbits die Redundanz
der Zeitinformation in aufeinanderfolgenden Minuten und garantiert
damit eine akzeptabel niedrige Fehlerrate.

- Es läuft im Dauerbetrieb und bricht auch bei längeren Sendepausen die
Empfangsversuche nicht ab (bei Gewitter und Wartungsarbeiten wird der
Sender DCF77 abgeschaltet).

- Es stellt auch die akkugestützte Uhr des Amiga auf die genaue Zeit.

- Es läßt sowohl das Schließen als auch die Änderung der Grafikbetriebsart
des Workbench-Screens zu.

- Es reserviert das Gameport ordnungsgemäß beim Betriebssystem und benutzt
das Gameport Device zum Einlesen der Informationen (kein direkter
Hardwarezugriff in der betreffenden Betriebsart).

- Für spezielle Einsatzfälle kann wahlweise auf die systemkonforme Betriebsart
verzichtet und die Hardware direkt angesprochen werden.

- Es braucht sehr wenig Rechenzeit (auf einem Amiga 4000/040 in der
Standard-Betriebsart am Gameport ca. ein Zehntel gegenüber anderen Lösungen!).


Besonderheiten des Programms sind außerdem:

- Es paßt sich dynamisch (!) an die Zeitkonstanten des jeweiligen Empfängers
an und verbessert dadurch die Auswertung der Informationen auch bei
ungünstigen Empfangsbedingungen.

- Es erkennt automatisch die Phasenlage des benutzten Empfängers.

- Es kann die Uhrzeit für beliebige Zeitzonen einstellen.

- Andere Programme können über eine dokumentierte Software-Schnittstelle den
aktuellen Empfangsstatus erfahren.

@{LINDENT 1}
@{PARI 0}

Bei ausreichendem Interesse für diese Software ist eine ständige
Weiterentwicklung vorgesehen, wobei auf möglichst alle Nutzerwünsche
eingegangen wird.

@ENDNODE

@NODE "Installation" "Installation und Programmstart"
@SMARTWRAP
@{LINDENT 1}

@{b}Installation und Programmstart@{ub}


Wenn Ihr DCF77-Empfänger noch nicht angeschlossen ist: Schalten Sie Ihren Amiga
aus, schließen Sie den DCF77-Empfänger je nach Modell entweder am Gameport 2 an (dem
Joystickanschluß neben dem Mausanschluß) oder an der seriellen Schnittstelle
und schrauben Sie ihn gegebenenfalls fest.

Besitzer von Amiga 1000 und 600 bekommen möglicherweise Probleme beim Anschließen
der von OsaMatic gelieferten Empfänger für Gameport, die mit Standard-Sub-D-Steckern
ausgestattet sind, da die Anschlüsse dieser Computer nur für Maus- und
Joystick-Stecker ohne Verschraubung geeignet sind.
In diesem Fall hilft eine handelsübliche Joystickverlängerung mit angegossenem
Stecker weiter (z.B. hama 42130).


Schalten Sie nun den Amiga wieder ein, und booten Sie wie üblich mit Ihrer Workbench.
Richten Sie den Empfänger dann so aus, daß die Anzeige (wenn Ihr Empfänger eine hat)
im Sekundenabstand blinkt.

Sollte Ihnen das nicht gelingen, achten Sie darauf, daß der Empfänger weit genug
von Störquellen entfernt ist (Mögliche Störquellen: Computer, Monitor,
Fernsehgerät, Drucker, Flachbettscanner usw.). Auch hierbei kann ein
Joystickverlängerungskabel nützlich sein oder ein neunpoliges Kabel mit Buchse und
Stecker, wie es im Computerfachhandel als serielles Verbindungskabel erhältlich
ist.


Falls Sie Elektronikkenntnisse besitzen und einen Empfänger einer anderen
Bauart benutzen wollen, dann lesen Sie bitte den Abschnitt
@{" Anschluß von Empfängern " LINK "Anschluß von Empfängern" 0}.



Das Programm DCF77 kann durch Anklicken gestartet werden. Wenn es automatisch bei
Systemstart aktiviert werden soll, dann kopieren Sie es bitte in die Schublade
WBStartup ihrer Workbench. Dies sollten Sie von dem Installationsskript erledigen
lassen (Doppelklick auf InstallDCF77), weil auf diese Weise sichergestellt wird,
daß frühere Installationen von DCF77 entfernt werden. Nachdem DCF77 gestartet
worden ist, dauert es meistens zwei bis drei Minuten, bis die Systemzeit des Amiga
eingestellt wird (die Übertragung der Zeitinformation benötigt mindestens eine
Minute).


Sollte bei der ersten Benutzung von DCF77 die Systemzeit falsch eingestellt werden
oder der Empfang überhaupt nicht funktionieren, dann lesen Sie den Abschnitt
@{" Fehlersuche " LINK "Fehlersuche" 0}.


Wie alle Commodities läßt sich DCF77 mittels Exchange steuern. Das Programm
Exchange finden Sie im Verzeichnis Tools/Commodities der Workbench. Wenn man mit
Commodities arbeitet, dann verschiebt man Exchange üblicherweise auch nach
WBStartup, damit es ständig verfügbar ist; und damit es bei seinem Start nicht
sofort ein Fenster öffnet, aktiviert man  das Piktogramm von Exchange, wählt den
Menüpunkt Piktogramm/Informationen und ändert bei 'Merkmale' (bzw. 'Tool Types')
den Eintrag CX_POPUP=YES in CX_POPUP=NO. Exchange wird im allgemeinen (falls Sie
das nicht selbst geändert haben) mit der Tastenkombination Ctrl-Alt-Help aktiviert.
@ENDNODE

@NODE "Desinstallation" "Installation rückgängig machen"
@SMARTWRAP
@{LINDENT 1}

@{b}Installation rückgängig machen@{ub}


Das installierte Programm DCF77 läßt sich problemlos mit UninstallDCF77 wieder aus
Ihrem System entfernen.

@ENDNODE

@NODE "Eigenschaften" "Eigenschaften"
@SMARTWRAP
@{LINDENT 1}

@{b}Eigenschaften@{ub}


Das Programm DCF77 wertet kontinuierlich das empfangene Signal aus und stellt bei
erfolgreich gelesener Zeitinformation die Amiga-Systemzeit (im Idealfall also zu
jeder vollen Minute). Beim ersten erfolgreichen Empfang nach dem Programmstart wird
außerdem die akkugestützte Uhr des Computers eingestellt und (wenn das Programm im
Dauerbetrieb läuft) danach aller vierundzwanzig Stunden.


Wenn das Programm DCF77 versucht, die Zeit zu empfangen, dann  ärgern Sie sich
bitte nicht, wenn es evtl. zum Einstellen der Zeit bei kritischen
Empfangsbedingungen länger braucht als andere Funkuhrprogramme. Das ist nämlich
eine Frage der Prioritäten: Das Signal vom Sender DCF77 besitzt leider keine allzu
sichere Codierung. Deshalb muß man sich entscheiden, ob man die Zeit lieber schnell
oder fehlerfrei haben möchte.

Das vorliegende Programm ist für Anwender gedacht, denen eine richtige Uhrzeit
wichtiger ist als eine möglichst schnell empfangene, aber manchmal falsche Uhrzeit.


DCF77 besitzt eine Möglichkeit, andere Programme über seinen Status zu informieren.
Das Signal für erfolgreichen Empfang wird beim Stellen der Systemzeit gesetzt und
nach ca. 2 Stunden ohne erfolgreichen Empfang wieder zurückgesetzt. Außerdem
erkennt DCF77 innerhalb einer Minute, wenn die Systemzeit durch ein anderes
Programm verändert worden ist und löscht auch dann das Signal. Weiterhin können
andere Programme die verbleibende Zeit bis zum nächsten Stellen der Systemzeit
ermitteln.

Hilfsprogramme, die diese Funktionen anwenden, finden Sie in den
Schubladen "Utilities" und "für Programmierer". Für den normalen Anwender ist aber
der einfachste Weg zum Erhalt dieser Informationen, die mitgelieferte Uhr zu
benutzen.


Das Programm DCF77 ist entwickelt worden, um ständig als Task mitzulaufen. Deshalb
wurde bei der Programmierung besonderer Wert darauf gelegt, daß DCF77 beim
Verbrauch von Rechenzeit sehr zurückhaltend ist, damit gleichzeitig arbeitende
Programme nicht beeinträchtigt werden. Bei vielen Aktionen hoher Priorität durch
andere Programme und überhaupt bei hoher Systembelastung nimmt die
Wahrscheinlichkeit für ein erfolgreiches Einlesen der DCF77-Zeit deshalb auch ab.

Wenn Sie bei den ersten Experimenten also schnell Erfolg erzielen wollen, sollten
Sie während der Empfangsphase besonders auf langsamen Amigas auf intensive
Workbenchbenutzung (Öffnen, Verschieben und Schließen von Fenstern) verzichten.
Speziell das Programm DCF77-Diagnose ist aufgrund der ständigen Ausgabe von Texten
in ein Fenster anfällig für Störungen durch Workbench-Funktionen. Wenn Ihnen auch
später ein schneller Empfang wichtiger ist als der unbeeinflußte Betrieb anderer
Programme, können Sie das Programm DCF77 auch mit einer höheren Priorität arbeiten
lassen, z.B. 5. Die Priorität des DCF77-Tasks läßt sich mit dem Eintrag
@{" TASK_PRIORITY " LINK "TASK_PRIORITY" 0} in den Merkmalen (bzw. "Tool Types")
verändern. (Lesen Sie dazu bitte den Abschnitt
@{" Festlegen der Betriebsart " LINK "Betriebsart" 0}.)

Für den praktischen Einsatz im Dauerbetrieb ist allerdings eher eine niedrigere
Priorität zu empfehlen: Wenn man DCF77 mit einer Priorität von beispielsweise
-10 benutzt, dann arbeitet der Empfang wirklich nur noch unter der Voraussetzung,
daß auch Rechenzeit übrig ist. Sobald Anwendungsprogramme mit der üblichen Priorität
Null die CPU vollständig beanspruchen, bekommt DCF77 keine Rechenzeit mehr und der
Empfangsvorgang wird abgebrochen.

Auf diese Art und Weise merkt der Amiga-Benutzer überhaupt nichts mehr
von den Aktivitäten des Funkuhrempfangs, aber die Uhr wird verständlicherweise
etwas seltener eingestellt. Auf dem Computer des Programmautors läuft DCF77 ohne
Änderung der Priorität.


Auf einem Standard-Amiga mit CPU 68000 und 7,09 MHz Taktfrequenz benötigt das
Programm DCF77 ca. 2% der Rechenzeit, auf einem Amiga 4000/040 mit 25MHz sind
es ca. 0,08%.


Noch ein Hinweis: Wenn Sie zum Vergleich mit anderen Funkuhren, der im Fernsehen
angezeigten Zeit oder Rundfunk-Zeitzeichen die  Workbench-Uhr (Utilities/Clock)
benutzen, dann werden Sie geringfügige Zeitabweichungen feststellen. Das Programm
Clock ist mit der Systemzeit nur lose gekoppelt und läßt Schwankungen bis zu minus
einer Sekunde zu (dadurch wird vermutlich ein klein wenig Rechenzeit gespart, oder
der Programmierer hielt eine genauere Anzeige schlicht für überflüssig). Damit Sie
die Möglichkeit haben, sich die genaue Zeit anzusehen, ohne nun erst die diversen
Amiga-PD-Serien nach Uhrenprogrammen absuchen zu müssen (wovon es aber genug gibt),
finden Sie in der Schublade Utilities noch ein Uhrenprogramm, das die Systemzeit
ganz genau anzeigt und außerdem (wie bereits erwähnt) den aktuellen Empfangsstatus
von DCF77 grafisch darstellt.

@ENDNODE

@NODE "Betriebsart" "Festlegen der Betriebsart"
@SMARTWRAP
@{LINDENT 1}

@{b}Festlegen der Betriebsart@{ub}


Die Funktionsweise des Programms DCF77 läßt sich über verschiedene Einträge in den
Merkmalen (bzw. englisch "Tool Types") des DCF77-Piktogramms beeinflussen. Die
voreingestellten Werte sind für den normalen Amiga-Nutzer eingerichtet, so daß Sie
nur dann etwas zu ändern brauchen, wenn Sie spezielle Wünsche haben.


Merkmale ändern Sie auf folgende Weise (Lesen Sie dazu auch Ihr Workbench-Handbuch,
Abschnitt über Merkmale für Piktogramme im Kapitel 3!): Wählen Sie das
DCF77-Piktogramm an (einmal anklicken) und rufen Sie die Funktion "Informationen"
aus dem Menü "Piktogramm" auf. In dem dann erscheinenden Fenster sehen Sie unter
anderem eine Liste von Schlüsselwörtern, die die einzelnen Funktionen beschreiben.
Sie können dann einen Eintrag auswählen, um ihn zu verändern oder zu löschen, oder
Sie können einen neuen Eintrag erzeugen. Im Lieferzustand von DCF77 sind alle
wichtigen Einträge für dieses Programm mit ihren zusätzlichen Angaben vorhanden,
aber in Klammern gesetzt. Die Klammern bedeuten, daß die Einträge nur als Kommentar
gelten und die jeweilige Standardeinstellung wirksam ist. Wenn Sie also etwas
ändern wollen, dann brauchen Sie lediglich die Klammern zu entfernen und dann die
Angaben nach dem Gleichheitszeichen Ihren Wüschen anzupassen. Nachdem Sie die
betreffenden Werte verändert haben, müssen Sie sie speichern, damit sie beim
nächsten Start von DCF77 wirksam werden.


Folgende Schlüsselwörter sind vorgesehen:


  @{" TASK_PRIORITY " LINK "TASK_PRIORITY" 0}

  @{" LOCALE " LINK "LOCALE" 0}

  @{" UPDATE_LOCALE " LINK "UPDATE_LOCALE" 0}

  @{" DST " LINK "DST" 0}

  @{" UTC " LINK "UTC" 0}

  @{" GMT " LINK "UTC" 0}

  @{" PAUSE " LINK "PAUSE" 0}

  @{" ONE_TIME " LINK "ONE_TIME" 0}

  @{" OFFSET.HOURS " LINK "OFFSETS" 0}

  @{" OFFSET.MINUTES " LINK "OFFSETS" 0}

  @{" OFFSET.SECONDS " LINK "OFFSETS" 0}

  @{" OFFSET.MICROSECONDS " LINK "OFFSETS" 0}

  @{" QUIT_AFTER_TRIALS " LINK "QUIT_AFTER_TRIALS" 0}

  @{" SAVE_DST " LINK "SAVE_DST_UTC" 0}

  @{" SAVE_UTC " LINK "SAVE_DST_UTC" 0}

  @{" MAX_TIME_DIFFERENCE " LINK "MAX_TIME_DIFFERENCE" 0}

  @{" ALLOWED_TIME_DIFFERENCE " LINK "ALLOWED_TIME_DIFFERENCE" 0}

  @{" TIMER " LINK "TIMER" 0}

  @{" PORT " LINK "PORT" 0}

  @{" PIN " LINK "PIN" 0}


Weitere Einträge bei den Merkmalen (z.B. CX_PRIORITY oder DONOTWAIT) sind
Standardeinträge des Amiga-Betriebssystems. Lesen Sie dazu bitte die entsprechenden
Abschnitte über Commodities Ihres Workbench-Handbuches (bei Amiga-OS 2 und 3 im
Kapitel 10).

@ENDNODE

@NODE "TASK_PRIORITY" "TASK_PRIORITY"
@SMARTWRAP
@{LINDENT 2}

@{b}TASK_PRIORITY@{ub}             Standardeinstellung:  TASK_PRIORITY=0


Festlegen der Priorität des DCF77-Empfangsprogramms.


Dieses Thema ist schon im Abschnitt @{" Eigenschaften " LINK "Eigenschaften" 0} besprochen worden.

@ENDNODE

@NODE "LOCALE" "LOCALE"
@SMARTWRAP
@{LINDENT 2}

@{b}LOCALE@{ub}                    Standardeinstellung:  LOCALE=YES


In der Einstellung YES berechnet DCF77 die Uhrzeit für die im
Locale-Voreinsteller des Betriebssystems gewählte Zeitzone.
Dabei wird jedoch außerdem die mitteleuropäische Sommerzeit übernommen,
was natürlich nicht für alle Lokalzeiten sinnvoll ist (die Uhr geht dann
während der Sommerzeit eine Stunde vor).

Ändern Sie ggf. den Eintrag @{" DST " LINK "DST" 0}, um die Sommerzeit abzuschalten.


In der Einstellung NO wird die Zeitzone aus Locale nicht berücksichtigt,
so daß die vom Sender DCF77 gesendete MEZ (Mitteleuropäische Zeit) die
Zeitbasis darstellt.

@ENDNODE

@NODE "UPDATE_LOCALE" "UPDATE_LOCALE"
@SMARTWRAP
@{LINDENT 2}

@{b}UPDATE_LOCALE@{ub}             Standardeinstellung:  UPDATE_LOCALE=YES


In der Einstellung YES liest DCF77 vor jedem Einstellen der Systemzeit
die Zeitzone aus Locale neu. Dadurch werden Änderungen der Zeitzone
beim nächsten erfolgreichen Empfang bereits berücksichtigt.


In der Einstellung NO liest DCF77 die Zeitzone nur einmalig beim
Programmstart.
@ENDNODE

@NODE "DST" "DST"
@SMARTWRAP
@{LINDENT 2}

@{b}DST@{ub}                       Standardeinstellung:  DST=YES

                          (DST - Daylight Saving Time)


In der Einstellung YES übernimmt DCF77 die gesendete MESZ
(Mitteleuropäische Sommerzeit).


In der Einstellung NO wird die Sommerzeit nicht eingestellt.

Diese Betriebsart ist in Verbindung mit anderen Zeitzonen sinnvoll.


Alternativ zu DST kann auch das Schlüsselwort MESZ benutzt werden.

@ENDNODE

@NODE "UTC" "UTC"
@SMARTWRAP
@{LINDENT 2}

@{b}UTC@{ub}                       Standardeinstellung:  UTC=NO

                          (UTC - Universal Time Coordinated)


Die Einstellung UTC=YES veranlaßt DCF77, die Zeit auf Koordinierte Weltzeit
einzustellen.

Alternativ zu UTC kann auch das Schlüsselwort @{b}GMT@{ub} (Greenwich Mean Time)
 benutzt werden.

Eigentlich ist die Funktion UTC redundant, weil man dasselbe Ergebnis
erzielen kann, indem man folgende Einstellungen wählt:

  LOCALE=NO

  DST=NO

  OFFSET.HOURS=-1

Wenn UTC=YES eingestellt ist, werden die Argumente für @{" LOCALE " LINK "LOCALE" 0} und @{" DST " LINK "DST" 0} ignoriert; die Offset-Werte (s.u.) bleiben aber gültig.

@ENDNODE

@NODE "PAUSE" "PAUSE"
@SMARTWRAP
@{LINDENT 2}

@{b}PAUSE@{ub}                     Standardeinstellung:  PAUSE=0


Wenn bei PAUSE eine Zeit (in Minuten) angegeben ist, dann wartet DCF77
nach jedem erfolgreichen Empfang diese Zeit, bevor der Empfangsvorgang
wieder gestartet wird. Während dieser Pause wird keine Rechenzeit in
Anspruch genommen.


Wenn Rechenzeit gespart werden soll, ist es im allgemeinen vorzuziehen,
die Task-Priorität von DCF77 zu verringern, weil dann laufende Anwendungen
nicht langsamer werden (sofern man das überhaupt bemerkt) und trotzdem ab
und zu die Zeit empfangen wird.


Die Funktion PAUSE zu benutzen ist dann sinnvoll, wenn eine Anwendung
niedriger priorisierten Tasks überhaupt keine Rechenzeit mehr übrig läßt
(z.B. ein Raytracer oder ein Fraktalgenerator). Eine brauchbare Einstellung
für einen Amiga, auf dem häufig solche Anwendungen laufen, ist beispielsweise:

  TASK-PRIORITY=5

  PAUSE=20

Jedoch ist zu vermuten, daß Raytraycing-Anwendungen eher auf einem
A4000/040 benutzt werden als auf einem 500-er, und auf einem schnellen
Amiga ist der Rechenzeitverbrauch von DCF77 ohnehin kaum noch festzustellen,
so daß man DCF77 dort auch ohne Pause mit einer hohen
Priorität laufen lassen kann.


Die Funktion PAUSE ist zur Zeit auf eine vereinfachte Weise implementiert:
Während der Pause können vorerst keine Commodity-Kommandos empfangen
werden.

@ENDNODE

@NODE "ONE_TIME" "ONE_TIME"
@SMARTWRAP
@{LINDENT 2}

@{b}ONE_TIME@{ub}                  Standardeinstellung:  ONE_TIME=NO


In der Einstellung NO läuft DCF77 im Dauerbetrieb.


In der Einstellung YES stellt das Programm die Systemzeit nur einmalig und
beendet dann seine Tätigkeit.

@ENDNODE

@NODE "OFFSETS" "OFFSETS"
@SMARTWRAP
@{lindent 2}

@{b}OFFSET.HOURS@{ub}              Standardeinstellung:  OFFSET.HOURS=0

@{b}OFFSET.MINUTES@{ub}                                  OFFSET.MINUTES=0

@{b}OFFSET.SECONDS@{ub}                                  OFFSET.SECONDS=0

@{b}OFFSET.MICROSECONDS@{ub}                             OFFSET.MICROSECONDS=0


Mit den verschiedenen Offset-Werten kann man die Zeit für individuelle
Zwecke beeinflussen.

Die jeweiligen Werte werden zur Uhrzeit addiert.


Die Offset-Funktionen arbeiten im Bereich von ±68 Jahren, sofern dabei
nicht der Funktionsbereich der Amiga-Systemzeit verlassen wird:

@{lindent 4}

bis Amiga-OS 2.1   1.1.1978 00:00:00  -  19. 1.2046 03:14:08

ab  Amiga-OS 3.0   1.1.1978 00:00:00  -  31.12.2099 23:59:59.

@ENDNODE

@NODE "QUIT_AFTER_TRIALS" "QUIT_AFTER_TRIALS"
@SMARTWRAP
@{LINDENT 2}

@{b}QUIT_AFTER_TRIALS@{ub}         Standardeinstellung:  QUIT_AFTER_TRIALS=0


Bei der Einstellung Null läuft DCF77 im Dauerbetrieb.


Wenn eine Zahl größer Null angegeben ist, bricht DCF77 seine Tätigkeit
ab, wenn eine entsprechende Anzahl vergeblicher Synchronisationsversuche
erfolgt ist, ohne daß es einen Signalwechsel vom DCF77-Empfänger gegeben
hat.

Der interne Timeout-Wert für diesen Vorgang ist variabel und liegt bei
ca. zwei Sekunden. Soll DCF77 also nach beispielsweise zwei Minuten ohne
Signal vom Empfänger seine Arbeit beenden, dann müssen Sie
QUIT_AFTER_TRIALS=60 eintragen.


Einen solchen Eintrag bei den Merkmalen können Sie dazu verwenden, DCF77
erkennen zu lassen, daß der Empfänger nicht am Amiga angeschlossen ist.
Sie sollten aber nicht außer acht lassen, daß bei Empfangsstörungen
durchaus längere Empfangspausen (im Bereich mehrerer Stunden)
möglich sind. Benutzen Sie ihn also nur, wenn Sie ein gelegentlich
irrtümliches Abbrechen des Empfangsprogramms nicht weiter stört.


Nach dem ersten erfolgreichen Empfang wird QUIT_AFTER_TRIALS intern
auf Null gesetzt und ist damit nicht mehr wirksam.

@ENDNODE

@NODE "SAVE_DST_UTC" "SAVE_DST, SAVE_UTC"
@SMARTWRAP
@{LINDENT 2}

@{b}SAVE_DST@{ub}                  Standardeinstellung:  SAVE_DST=YES

@{b}SAVE_UTC@{ub}                  Standardeinstellung:  SAVE_UTC=NO


Diese zwei Einträge sind momentan (für Amiga-OS bis Version 3.1) noch nicht
von Bedeutung. Sie sind für eine künftige Version des Amiga-Betriebssystems
vorgesehen, die auch die Umstellung auf die lokalen Sommerzeiten
berücksichtigt.

Da das auf verschiedene Weise möglich ist, stellen diese Einträge sicher,
daß sich die vorliegende Programmversion auch bei allen weiterentwickelten
Amiga-OS-Versionen benutzen läßt.


Die möglichen Varianten, zwischen denen sich die Softwareentwickler bei
Amiga Technologies entscheiden müssen, unterscheiden sich in der Differenz
der in der batteriegestützten Uhr abgespeicherten Zeit zur Systemzeit.
Die Systemzeit soll natürlich die jeweils aktuelle Lokalzeit angeben.


@{b}Variante 1@{ub} wäre, daß die abgespeicherte Zeit den gleichen Wert wie die
Systemzeit hat. Dann müßten Sie überhaupt keine Änderungen an den Merkmalen
vornehmen. Diese Variante ist aber nicht zu erwarten, denn sie würde
erfordern, daß sich das Betriebsystem in einer Datei merkt, wann die letzte
Zeitumstellung vorgenommen worden ist.


@{b}Variante 2@{ub}, die ich für die nützlichste halte, besteht darin, daß immer die
normale Zeit der in den Voreinstellern ausgewählten Zeitzone abgespeichert
wird, und daß die Systemzeit während der Sommerzeit um die Differenz vorgestellt
wird. In diesem Fall müßten Sie nach dem Betriebssystem-Update den
Merkmalen den Eintrag SAVE_DST=NO hinzufügen.


@{b}Variante 3@{ub} ist der Weg, immer die Koordinierte Weltzeit (UTC) abzuspeichern
und die jeweilige Lokalzeit nur für die Systemzeit zu benutzen.
Für diesen Fall wäre der Eintrag SAVE_UTC=YES erforderlich.
@ENDNODE

@NODE "MAX_TIME_DIFFERENCE" "MAX_TIME_DIFFERENCE"
@SMARTWRAP
@{LINDENT 2}

@{b}MAX_TIME_DIFFERENCE@{ub}       Standardeinstellung:  MAX_TIME_DIFFERENCE=1


Der hier eingetragene Wert ist die maximale Abweichung zwischen Systemzeit
und Hardwareuhr in Sekunden, die innerhalb einer Minute entstehen darf.
Wenn die Differenz größer ist, löscht DCF77 das Signal für die gültige
DCF77-Zeit.


Normalerweise braucht hier niemand etwas einzutragen. Diesen Wert zu
vergrößern ist nur für Amigas mit defektem Uhrenchip sinnvoll, bei denen
aufgrund einer extremen Gangabweichung das Signal für erfolgreichen
Empfang sofort wieder gelöscht wird.

@ENDNODE

@NODE "ALLOWED_TIME_DIFFERENCE" "ALLOWED_TIME_DIFFERENCE"
@SMARTWRAP
@{LINDENT 2}

@{b}ALLOWED_TIME_DIFFERENCE@{ub}   Standardeinstellung:  ALLOWED_TIME_DIFFERENCE=0


Wenn hier ein Wert größer Null (in Mikrosekunden) eingetragen wird, dann
stellt DCF77 die Systemzeit nur noch in dem Fall, daß ihre Abweichung zur
empfangenen DCF77-Zeit diesen Wert überschreitet.


Einen Nutzen könnte ein solcher Eintrag dann bringen, wenn Sie aus irgendeinem
Grund die kleinen Sprünge der Systemzeit zur vollen Minute stören,
die DCF77 beim Stellen zwangsläufig verursacht. Zwar handelt es sich nur
um Sprünge in der Größenordnung weniger Millisekunden, aber in seltenen
Fällen könnten Anwendungen betroffen sein, die ein kontinuierliches Fortschreiten
der Systemzeit voraussetzen. Bisher ist dem Autor von DCF77
allerdings kein solcher Fall bekannt.

Bei Bedarf dürften Werte ab 5000 sinnvoll sein.

@ENDNODE

@NODE "TIMER" "TIMER"
@SMARTWRAP
@{LINDENT 2}

@{b}TIMER@{ub}                     Standardeinstellung:  TIMER=GAMEPORT_DEVICE


Mit diesem Eintrag legen Sie die Betriebsart von DCF77 bei Benutzung
eines Empfängers am Gameport 2, Pin 6 fest.


Mögliche Einträge sind

TIMER=GAMEPORT_DEVICE und

TIMER=TIMER_DEVICE.


Die Einstellung GAMEPORT_DEVICE ist die ursprüngliche Betriebsart des
Empfangsprogramms. In allen Fällen, wo diese Einstellung benutzt werden kann,
sollten Sie sie auch anwenden, weil das Programm dann die Timeout-Funktion
des Gameport-Devices als Zeitbasis benutzt, wodurch der Rechenzeitverbrauch
extrem niedrig bleibt, weil das Programm nur bei einer Änderung des Pegels
der Eingangsleitung aus seinem Wartezustand herausgeholt wird.


In der anderen möglichen Betriebsart TIMER_DEVICE wird die Eingangsleitung
des betreffenden Ports direkt abgefragt (also auf nicht systemkonforme
Art und Weise). Dies geschieht mittels Timersignalen aller 20 ms.

Auf diese Weise braucht DCF77 jedoch etwa die fünffache Rechenzeit und liegt
damit beim Rechenzeitverbrauch nur noch unwesentlich unter den anderen
Amiga-DCF77-Lösungen.
(Seine sonstigen Vorteile hat das Programm aber nach wie vor.)

Dieses Verfahren bringt außerdem noch den Nachteil mit sich, daß DCF77
leichter durch andere Programme gestört werden kann. Deshalb ist - je nach
Dringlichkeit des Funkuhrempfangs - evtl. eine höhere Taskpriorität
angebracht.


Wenn mit den Einträgen @{" PORT " LINK "PORT" 0} und
@{" PIN " LINK "PIN" 0} ein anderer Anschluß als Gameport 2, Pin 6
ausgewählt wird, dann arbeitet DCF77 grundsätzlich mit dem Timer Device.

@ENDNODE

@NODE "PORT" "PORT"
@SMARTWRAP
@{LINDENT 2}

@{b}PORT@{ub}                      Standardeinstellung:  PORT=GAMEPORT_2


Mit diesem Eintrag teilen Sie DCF77 mit, an welcher Schnittstelle Ihres
Computers der DCF77-Empfänger angeschlossen ist.


Mögliche Einträge sind zur Zeit

PORT=GAMEPORT_2

PORT=SERIAL


Mit dem Merkmal @{" PIN " LINK "PIN" 0} wird die für das DCF77-Signal
benutzte Datenleitung angegeben.

@ENDNODE

@NODE "PIN" "PIN"
@SMARTWRAP
@{LINDENT 2}

@{b}PIN@{ub}                       Standardeinstellung:  PIN=6  (bei PORT=GAMEPORT_2)

                                                PIN=3  (bei PORT=SERIAL)


Dieser Eintrag legt fest, an welcher Datenleitung der mit
@{" PORT " LINK "PORT" 0} ausgewählten Schnittstelle das Signal vom
DCF77-Empfänger erwartet wird.


Mögliche Einträge sind bei PORT=GAMEPORT_2 die Werte 1 bis 6 und 9 (implementiert
sind in der derzeitigen Programmversion erst 1 und 6)

und bei PORT=SERIAL die Werte 3 oder 8.



@ENDNODE

@NODE "Genauigkeit" "Genauigkeit"
@SMARTWRAP
@{LINDENT 1}

@{b}Genauigkeit@{ub}


Die zu erzielende Übereinstimmung der Systemzeit mit der Atomzeit vom Sender hängt
teilweise von der Taktfrequenz und der Rechenzeitbelastung Ihres Computers ab. Die
folgenden Angaben können aber dennoch als allgemeingültig angesehen werden, da die
Einflüsse der Rechenleistung auf die Genauigkeit jedenfalls geringer sind, als man
auf den ersten Blick erwarten würde.


Nachdem die Systemzeit durch DCF77 gestellt worden ist, beträgt ihre Abweichung zum
empfangenen Signal im allgemeinen weniger als 0,02 Sekunden. Weitere Abweichungen
zur genauen Zeit werden durch die Laufzeit des Signals (Entfernung zum Sender DCF77
in Mainflingen) und unterschiedliche Bandbreiten und Zeitkonstanten der Empfänger
verursacht. Die Gesamtabweichung kann sich so innerhalb von  Europa auf ca. 0,04
Sekunden erhöhen.


Bei extrem hoher CPU-Belastung (keine freie Rechenzeit mehr) vergrößert sich der
Fehler beim Stellen der Systemzeit. Messungen haben aber in keinem Fall eine
Abweichung von mehr als 0,15s ergeben. Diesen Fehler kann man durch Erhöhen der
Priorität des DCF77-Tasks vermindern (mit Hilfe des Merkmals
@{" TASK_PRIORITY " LINK "TASK_PRIORITY" 0}).


Übrigens sollten Sie sich bei Vergleichen mit Rundfunk-Zeitzeichen oder im
Fernsehen angezeigten Uhren nicht täuschen lassen:
Falls Sie Ihre Sender über Satellit empfangen, dann verursacht die Signallaufzeit
bis zum geostationären Satelliten und zurück eine auffällige Verzögerung von etwa
0,27 Sekunden, die derzeit von den Sendern nicht kompensiert wird. (Das gilt auch
für die meisten ins Kabel eingespeisten Programme, da sie üblicherweise
auch über Satellit laufen.)

In einem solchen Fall ist also Ihre Amiga-Funkuhr genauer!

@ENDNODE

@NODE "Fehlersicherheit" "Fehlersicherheit"
@SMARTWRAP
@{LINDENT 1}

@{b}Fehlersicherheit@{ub}


Je nach Empfangsbedingungen und Qualität des Empfängers treten durch die
Paritätsprüfung nicht zu erkennende Übertragungsfehler zwischen mehrmals am Tag und
einmal im Monat auf. Meistens wird dann das Datum falsch empfangen, da hierbei nur
ein Paritätsbit für 22 Datenbits zur Verfügung steht.

Ein Teil dieser Fehler wird durch eine Plausibilitätsprüfung eliminiert
(das heißt, unsinnige Werte werden nicht akzeptiert).


Um die verbleibenden Empfangsfehler zu erkennen, wird die Zeit erst dann
als Systemzeit für den Amiga übernommen, wenn die Werte in zwei
aufeinanderfolgenden Minuten identisch empfangen worden sind. (Damit das Programm
DCF77 nach seinem Start nicht erst nach zwei Minuten die Systemzeit einstellt,
dient als erster Vergleichswert die aktuelle Systemzeit.)
Damit dürfte die Fehlerrate auch bei ungünstigen Empfangsbedingungen auf unter
einen Fehler in 100 Jahren sinken.

@ENDNODE

@NODE "DCF77-Empfänger und Dongle" "DCF77-Empfänger und Dongle"
@SMARTWRAP
@{LINDENT 1}

@{b}DCF77-Empfänger und Dongle@{ub}


Der gleichzeitige Betrieb von Scala MM 300 oder Scala Info Channel oder der zu
diesen Programmen gelieferten Player und einem DCF77-Empfänger ist ohne Probleme
gewährleistet.


Leider ist eine Zusammenarbeit eines Empfängers und dem "Security Key" von
Brilliance 1.0 am Gameport - auch mittels Adapter - unmöglich. Zumindest stören
aber erfolglose Zugriffsversuche von Brilliance auf das nicht vorhandene Dongle den
DCF77-Empfang nicht, und umgekehrt stört das laufende DCF77-Empfangsprogramm
Brilliance nicht beim Überprüfen des angesteckten Dongles. Inzwischen gibt es
Brilliance 2.0 ohne Dongle, und damit hat sich das Problem ohnehin erledigt.


@ENDNODE

@NODE "Unverträglichkeiten" "Unverträglichkeiten mit anderen Programmen"
@SMARTWRAP
@{LINDENT 1}

@{b}Unverträglichkeiten mit anderen Programmen@{ub}


DCF77 benutzt in der Betriebsart TIMER=GAMEPORT_DEVICE das Gameport-Device auf
die vorgesehene Art und Weise, indem der Controller auf ABSJOYSTICK gesetzt
wird. Alle systemkonform geschriebene Software sollte damit keine Probleme
haben.

Alle nachfolgend aufgelisteten Konflikte resultieren aus Meldungen von Anwendern
der DCF77-Version 2, bei der das Gameport Device grundsätzlich reserviert wurde.


Um DCF77 zum gleichzeitigen Betrieb mit solchen Programmen zu bewegen, die zum
Teil mit "Hacks" arbeiten, sollten Sie es auch auf die weniger systemkonforme
Betriebsart TIMER=TIMER_DEVICE und evtl. ALLOCATE_RESOURCES=NO einstellen.
Damit können Sie wahrscheinlich alle unten genannten Probleme umgehen.

Der Grund dafür liegt darin, daß im Betriebssystem natürlich keine Mechanismen
vorgesehen sind, die es erlauben, verschiedene Hardware gleichzeitig am selben
Port zu betreiben. Wenn also ein Gerät so konstruiert ist, daß es einige
Datenleitungen des Gameports durch direkten Zugriff unter Umgehung der
Systemfunktionen benutzt und die Schnittstelle mittels Adapter oder
durchgeführten Pins auch noch für andere Hardware zur Verfügung stellt, dann
sollte man erwarten, daß es auch keine Probleme damit hat, wenn die Treiber
für die andere Hardware den Port reservieren, wie das im Betriebssystem
vorgesehen ist.

Wenn das dennoch zum Konflikt führt, ist das dann wohl ein Designfehler...



Bekannte Schwierigkeiten sind:

@{LINDENT 4}
@{PARI -2}

- Die Software zum Genlock G-LOCK (GVP) startet nicht, wenn sie auf
Steuerung über Gameport eingestellt ist und DCF77 läuft.
Das ist zwar in Ordnung, aber leider gibt das Programm keine
entsprechende Meldung aus, sondern funktioniert einfach nicht.


- Wie ein Anwender von DCF77 mitgeteilt hat, gibt es Probleme mit
der arXon-Switchbox. Mangels einer solchen Box kann ich momentan
dazu nichts Genaueres sagen.


- Das Präsentationsprogramm MediaPoint 128 stürzt beim Starten einer
Präsentation und gleichzeitig reserviertem Gameport sofort ab.
Das ist offenbar ein Programmfehler in MediaPoint, der sich nur von
MediaPoint Int. beseitigen läßt. Eine diesbezügliche Nachricht ist
mitsamt einer DCF77-Diskette nach den Niederlanden gegangen.
Hoffen wir auf das nächste Update...


- Das DCF77-Empfangsprogramm von Conrad Electronic greift wahrscheinlich
direkt auf die Register des Portbausteins zu (ohne das Gameport-Device
zu benutzen).
Daher kann man es auch gleichzeitig mit dem vorliegenden Empfangsprogramm
betreiben. Der Nutzen eines solchen Parallelbetriebs erscheint mir
allerdings fraglich...

@ENDNODE

@NODE "Weiterentwicklung" "Mögliche Weiterentwicklung"
@SMARTWRAP
@{LINDENT 1}

@{b}Mögliche Weiterentwicklung@{ub}


An dem Programm DCF77 läßt sich - wie an jedem Programm - noch eine Menge
verbessern.

@{LINDENT 3}
@{PARI -2}

- Der Empfangsalgorithmus ist inzwischen sehr zuverlässig und arbeitet
dank der Adaption an die Empfängerzeitkonstanten auch mit allen Empfängern
problemlos zusammen. Bei ungünstigen Empfangsbedingungen dauert es aber
doch eine ganze Weile bis zum Einstellen der Uhrzeit. Das könnte man
durchaus noch ändern, denn auch aus mehreren fehlerhaft empfangenen Zeit-
telegrammen läßt sich mit dem entsprechenden Aufwand die richtige Zeit
berechnen.


- Commodities, die sich in irgendeiner Form steuern lassen, besitzen
zu diesem Zweck ein Nutzer-Interface, das sich im allgemeinen über einen
Hotkey aufrufen läßt.
DCF77 könnte ein solches Interface erhalten, über das sich alle
Betriebseigenschaften steuern ließen, und das den Empfangsstatus und
z.B. statistische Informationen (Fehlerhäufigkeit) anzeigen würde.


- Vor längerer Zeit (1990/91) hatte ich ein Programm geschrieben, das - ohne
Funkuhr - die Umstellung zwischen Sommer- und Winterzeit durchführt und
beim manuellen Stellen der Uhr die Gangabweichung der akkugestützten Uhr
berechnet und danach den Gangfehler ständig korrigiert. Damit konnte man
immerhin eine Genauigkeit von einer Sekunde Abweichung in einem halben
Jahr erreichen.

Nachdem ab Amiga 3000 ein neuer Uhrenchip eingesetzt wurde,
dessen Registersatz in den mir zugänglichen Unterlagen leider
nicht dokumentiert ist und die Betriebssystemroutinen zum Setzen und
Lesen der Zeit nach wie vor mit einer Abweichung bis zu einer Sekunde
arbeiten und damit für dieses Programm unbrauchbar sind, habe ich daran
nichts mehr weiterentwickelt (Aufwand / Nutzen...).

DCF77 könnte nun die Funktionen erhalten, die die Gangabweichung
berechnen, und damit die Fähigkeit, die Uhr auch ohne angeschlossenen
Empfänger genau zu stellen.

@{LINDENT 1}


So, jetzt wissen Sie, was alles möglich wäre (hoffentlich verlangt niemand noch
einen AREXX-Port). Und wenngleich auch viele Amiga-Programmierer eine solche
Bemerkung ihren Produkten offenbar vergeblich beigefügt haben: Die Zeit für die
Weiterentwicklung von DCF77 steht natürlich nur zur Verfügung, wenn auch genügend
Exemplare davon verkauft werden. Sollten Sie also jemanden im Bekanntenkreis haben,
der bereits einen DCF77-Empfänger besitzt, aber nicht dieses Programm, dann
empfehlen Sie einen Kauf, aber kopieren Sie es bitte nicht weiter.


Falls Sie die bisherige Entwicklungsgeschichte von DCF77 interessiert, 
sollten Sie sich die @{" Änderungsliste " LINK "DCF77 History" 0} anschauen.


@ENDNODE

@NODE "Anschluß von Empfängern" "Anschluß von Empfängern"
@SMARTWRAP
@{LINDENT 1}

@{b}Anschluß von Empfängern@{ub}


Ohne Umbauten lassen sich die Empfänger von @{b}Conrad Electronic@{ub} für Amiga und
(natürlich) die von @{b}OsaMatic@{ub} gelieferten Modelle benutzen.
Bei diesen handelt es sich um Empfänger der Firma SURE GmbH, die als OEM-Produkte
von boeder vertrieben werden und bei OsaMatic für den Betrieb am Amiga-Gameport
modifiziert werden. (Die Wahl ist auf dieses Modell gefallen, weil es - bei noch
erträglichem Preis - besonders gute Empfangseigenschaften aufweist.)


Bei allen anderen dem Autor bekannten Empfängern, die für Gameports irgendwelcher
Computertypen bzw. spezielle Interface-Karten gedacht sind, braucht lediglich der
Stecker ausgetauscht zu werden (dazu muß man allerdings die Lage der Anschlüsse
kennen).


Empfänger für serielle oder parallele Schnittstellen von PC's können nicht benutzt
werden, wenn sie den Empfang selbständig durchführen und nur Datenpakete mit der
kodierten Zeit senden.

Dieses Verfahren scheint dem Autor von DCF77 auch nicht sehr sinnvoll, denn zumindest
mit den aktuellen Modellen wird auf diese Weise nur eine unbefriedigende
Genauigkeit der Systemzeit des Computers erreicht.


@{B}Gameport@{UB}


Der Funkuhr-Empfänger muß am Amiga-Gameport 2 angeschlossen werden.

An diesem 9-poligen Sub-D-Anschluß steht die Betriebsspannung an den Pins 7 (+5V)
und 8 (Masse) zur Verfügung.

Das Signal vom DCF77-Empfänger wird standardmäßig als TTL-Signal am
Pin 6 erwartet (dies ist normalerweise der Eingang für den Joystick-Feuerknopf),
wobei es unerheblich ist, ob die logische 1 high-aktiv oder low-aktiv ist (das
Empfangsprogramm paßt sich selbständig an unterschiedliche Empfängertypen an!).

Wenn Sie in den Merkmalen mit dem Eintrag @{" PIN " LINK "PIN" 0} einen anderen
Anschluß eingestellt haben, liest DCF77 das Signal am betreffenden Eingang.


@{B}Serielle Schnittstelle@{UB}


Die Benutzung der seriellen Schnittstelle zum Funkuhrempfang ist primär für den
Empfänger der Firma SURE GmbH vorgesehen, der ebenfalls von boeder vertrieben wird.
In dieser Betriebsart (PORT=SERIAL, PIN=3)
wird der Empfänger über RTS und DTR mit Betriebsspannung versorgt und muß das
empfangene Signal im V24-Pegel am Pin 3 (RxD) liefern.

In anderen Betriebsarten an der seriellen Schnittstelle wird keine Betriebsspannung
angeboten. Das Signal vom Empfänger muß am entsprechenden Pin anliegen.


@{B}Typische Beschaltung von PC-Gamecard-Empfängern@{UB}


DCF77-Empfänger für Game-Karten von PCs des "Industriestandards" (15-polige
Sub-D-Stiftleiste) lassen sich meistens ohne Probleme für den Amiga-Gameport
umbauen:

Die Betriebsspannung +5V ist entweder am Pin 1 oder 9 angeschlossen. Der
Masseanschluß liegt an Pin 4, 5 oder 12. Das Empfangssignal liegt an einem der
Schaltereingänge Pin 2, 7, 10 oder 14.

Für den Betrieb mit den herkömmlichen Betriebssystemen auf solchen PCs,
die Reaktionen in Echtzeit parallel zu anderen Programmen nicht ohne weiteres
zulassen, liefern einige Empfänger zusätzlich ein manipuliertes Signal,
bei dem der 200ms-Impuls auf ca. 600ms gedehnt ist (die derzeit von OsaMatic
gelieferten boeder-Empfänger gehören auch zu dieser Gruppe).

Verwenden Sie bei einem solchen Empfänger das unveränderte Signal.


---


@{b}Nehmen Sie Umbauten an elektronischen Baugruppen nur vor, wenn Sie über
entsprechende Erfahrung verfügen.@{ub} Schnittstellenbausteine von Computern enthalten
hochempfindliche Bauelemente, die sich bei fehlerhafter Beschaltung schnell in
Elektronikschrott verwandeln. Natürlich können weder der Autor dieses Programms
noch der Vertreiber eine Haftung für Schäden durch den Anschluß von
DCF77-Empfängern übernehmen.


Bitte denken Sie beim Inbetriebnehmen Ihres Empfängers auch daran, daß
Computerperipherie
grundsätzlich @{b}nur bei ausgeschalteter Betriebsspannung@{ub} angeschlossen
werden sollte.

@ENDNODE

@NODE "Fehlersuche" "Fehlersuche"
@SMARTWRAP
@{LINDENT 1}

@{b}Fehlersuche@{ub}

@{LINDENT 3} @{PARI -2}

1. @{b}Kein Empfang@{ub}:


- Passen die Einträge bei den Merkmalen von DCF77
@{" PORT " LINK "PORT" 0} und @{" PIN " LINK "PIN" 0} zum angeschlossenen
Empfängermodell?@{LINE}
Beim der Standard-Gameport-Ausführung genügen die voreingestellten Werte
(es ist also gar keine Angabe erforderlich) und beim Modell für die serielle
Schnittstelle muß PORT=SERIAL eingetragen sein.


- Benutzen Sie das Programm DCF77-Diagnose, um zu überprüfen, ob das Signal
Ihres DCF77-Empfängers die Software erreicht. Das Signalfenster muß im
gleichen Takt wie die Leuchtdiode des Empfängers blinken.@{LINE}
Wenn nicht:@{LINE}
Überprüfen Sie, ob der Empfänger richtig am vorgesehenen Port angeschlossen
ist. Bei Amigas, deren angeschlossenes Zubehör oft gewechselt wird,
sind verbogene oder abgebrochene Kontaktstifte ein typischer Fehler.@{LINE}
Falls die Anschlüsse äußerlich in Ordnung sind, können Sie Ihren Port-Schaltkreis
testen, indem Sie einen Joystick oder Ihre Maus an den Gameport 2
stecken und den Feuerknopf (bzw. die linke Maustaste) drücken.
Auch dann muß das Signalfenster reagieren.@{LINE}
Bei der seriellen Schnittstelle ist eine derartige Überprüfung nicht so einfach,
aber wenn andere serielle Geräte arbeiten, dann liegt der Fehler nicht an der
Schnittstelle.


- Blinkt die Anzeige-LED am Empfänger wirklich genau im Sekundentakt?
Wenn nicht: Legen Sie den Empfänger an einen anderen Ort, richten Sie
ihn neu aus, und suchen Sie nach elektronischen Störquellen.


2. @{b}Falsche Uhrzeit@{ub}:


- Wenn die Systemzeit um mehrere Stunden falsch eingestellt wird, dann ist
die Zeitzone Ihrer Workbench möglicherweise nicht richtig ausgewählt.
Korrigieren Sie das bitte mit dem Programm "Locale" in der Schublade
"Prefs" der Workbench.


- Das vorliegende Programmpaket ist eine Demoversion! Lesen Sie dazu evtl.
einmal den letzten Abschnitt des @{" Vorworts " LINK "Vorwort" 0}.


- Überprüfen Sie die Einträge der Merkmale (Tool Types) von DCF77.
Im Lieferzustand des Programms DCF77 sollten alle Einträge, die die Zeit
beeinflussen, eingeklammert sein (und damit nur als Kommentar gelten).


3. Dialogfenster: @{b}Der Game Controller wird bereits benutzt.@{ub}


- Ein anderes laufendes Programm hat das Gameport-Device für sich
reserviert, oder Sie haben DCF77 versehentlich ein zweites Mal
gestartet. 


4. Dialogfenster: @{b}DCF77 kann nicht mehrfach gestartet werden.@{ub}


- Diese Meldung erscheint, wenn das Gameport-Device zwar nicht reserviert
ist, aber bereits ein Commodity namens DCF77 läuft.


5. @{b}Andere Effekte@{ub}:


- Lesen Sie bitte auch den Abschnitt
@{" Unverträglichkeiten mit anderen Programmen " link "Unverträglichkeiten" 0}.


Wenn alles nicht hilft, dann sollten Sie vielleicht einmal über den Kauf einer
Vollversion des Programms nachdenken, dafür gibt es nämlich dann auch einen
telefonischen Support bei @{" OsaMatic " LINK "Registrierung" 0}.

@ENDNODE

@NODE "DCF77-Diagnose" "DCF77-Diagnose"
@SMARTWRAP
@{LINDENT 1}

@{B}DCF77-Diagnose@{UB}


DCF77-Diagnose ist eine spezielle Variante des Empfangsprogramms, in die zusätzlich
eine Anzeige des Signalstatus und Kommentare über alle laufenden Vorgänge eingebaut
worden sind.


Das Programm öffnet zwei Konsolen-Fenster zur Anzeige.

In dem größeren gibt es Texte über Betriebszustände und den Empfangsvorgang aus, die weitgehend selbsterklärend sind.


Im kleineren Fenster zeigt die Farbe des Fensterinhalts den Status des
Eingangssignals an:

Schwarz - Pause zwischen den Sekundenimpulsen

Weiß    - Sekundenimpuls

Blau    - Phasenlagenerkennung hat gerade umgeschaltet


Da alle Anzeigen der Einfachheit halber Standard-Konsolen-Ausgaben sind, sollten
Sie mit empfindlichen Reaktionen auf Fensteränderungen und sonstige Störungen
rechnen. Auch sollten Sie keine Zeichen in die Fenster eingeben (wenn es
versehentlich passiert, drücken Sie die Eingabetaste).


DCF77-Diagnose kann (zusätzlich zu der Möglichkeit über Exchange) mit Ctrl-C
beendet werden.

@ENDNODE

@NODE "Hilfsprogramme" "Hilfsprogramme"
@SMARTWRAP
@{LINDENT 1}

@{b}Hilfsprogramme@{ub}


Im Verzeichnis @{b}Utilities@{ub} finden Sie einige Hilfsprogramme,
die bei Bedarf auf die Software-Schnittstelle von DCF77 zurückgreifen.


Das wichtigste ist sicherlich die Uhr @{" GClock " LINK "GClock"}, eine
Analog-Uhr, die neben dem Datum auch den Empfangsstatus von DCF77 anzeigt.


Das Zeitzeichenprogramm  @{" TimeSignal " LINK "TimeSignal"} gibt ein
akustisches Zeitzeichen aus, das wahlweise auch mit Hintergrund-Musik in
Form von Audio-Samples unterlegt werden kann.



Weiterhin befinden sich hier zwei Programme, die auf den Empfang des
Uhrzeit warten:


@{" WaitForDCF77 " LINK "WaitForDCF77"} wartet immer, wenn die Zeit noch
nicht empfangen wurde und @{" WaitDCF77ifCrash " LINK "WaitDCF77ifCrash"} wartet
immer dann, wenn die Hardware-Uhr des Computers durch einen Absturz verstellt
worden ist.


Die Source-Codes dieser beiden Programme sind außerdem als Programmierbeispiel
in der Schublade "für Programmierer" enthalten.



Wenn Sie weitere Hilfsprogramme benötigen, dann finden Sie im Aminet
eine sehr große Menge Uhren, Kalender, Terminplaner und andere zeitbezogene
Tools. In der Dokumentation zur letzten Auflage von DCF77 war noch eine Liste
von brauchbaren Programmen enthalten; inzwischen ist es aber kaum noch
möglich, eine solche Liste auf dem aktuellen Stand zu halten, und damit hätte
sie nur einen geringen praktischen Wert.


Nützliche Aminet-Verzeichnisse mit diesen Programmen sind vorwiegend:


util/cdity

util/misc

util/time

util/wb

@ENDNODE


@NODE "GClock" "GClock"
@SMARTWRAP
@{LINDENT 1}

@{b}GClock@{ub}


Das Programm GClock ist ein grafisches Uhrenprogramm, das die Systemzeit  des Amiga
exakt anzeigt. Es ist entwickelt worden, um den Benutzern von  Funkuhrempfängern
eine genaue Uhr zur Verfügung zu stellen, da die  Workbench-Uhr (zumindest bis
Clock 40.1) Abweichungen bis zu minus einer Sekunde zur Amiga-Systemzeit zuläßt.


Das Programm arbeitet - wie andere Amiga-Uhrenprogramme auch - unabhängig von einer
Funkuhr und ist auch nicht auf deren Empfangssoftware angewiesen.


GClock läuft auf allen Amigas ab Betriebssystem Version 37 (Kickstart 2.04).


Es öffnet ein Fenster auf der Workbench, dessen Größe sich wie gewohnt mit der Maus
verändern läßt. Die Darstellung der Uhr paßt sich der eingestellten Fenstergröße
und dem Displaymodus der Workbench optimal an.


Bei aktivem Fenster erscheint das aktuelle Datum im Titel des Workbench-Screens.


Falls das Programm DCF77 (ab Version 1.74) läuft, wird zusätzlich zum Datum der
Empfangsstatus der Funkuhr angezeigt:


   ---        keine DCF77-Zeit verfügbar.

  DCF77       Systemzeit ist eingestellt worden.


Bei gültiger DCF77-Zeit signalisiert ein Symbol im Fenster der Uhr den
erfolgreichen Empfang:


                             ((|))

                               |


Solange die Zeit noch nicht empfangen worden ist, wird außerdem bei gleichzeitigem
Betrieb mit DCF77 ab Version 2.18 der Betriebszustand des Empfangsprogramms mittels
unterschiedlicher Farben eines Anzeigesymbols (das man als Leuchtanzeige
interpretieren könnte) dargestellt: (Die folgenden Angaben beziehen sich auf die
Standard-Workbench-Farben.) 

   Grau    -  kein Signal vom Empfänger

   Weiß    -  DCF77 ist inaktiv

   Schwarz -  Empfang ist gestört

   Blau    -  DCF77 wartet auf Synchronisation.


Während des Empfangsvorgangs von DCF77 veranschaulicht eine Fortschrittsanzeige im
Stil der "progress requester" des Betriebssystems das Einlesen des Zeittelegramms.


Über die Menüs läßt sich die Darstellung der Uhr verändern:

 - mit oder ohne Datumsanzeige

 - verschiedene Zeigertypen

 - mit oder ohne Fensterrahmen

 - Zifferblatt als Ellipse oder Kreis.


Für die Anzeige des Datums benutzt GClock vorzugsweise den Zeichensatz Helvetica.
Wenn dieser nicht in einer geeigneten Größe zur Verfügung steht, wird auf
CGTriumvirate ausgewichen. In diesem Fall dauert der Aufbau des Fensterinhalts von
GClock deutlich länger, da der Zeichensatz erst vom Betriebssystem in der
gewünschten Größe skaliert werden muß. Wenn bei kleinem GClock-Fenster keine
brauchbare Schriftgröße entsteht, versucht GClock, den Standard-Zeichensatz zu
benutzen, und wenn dann das Datum nicht in das Fenster paßt, wird es ganz
weggelassen.


Die aktuellen Einstellungen lassen sich mit dem Menüpunkt "Einstellungen speichern"
("Save Settings") abspeichern (in die Datei ENVARC:GClockPrefs) und werden dann
beim nächsten Programmstart benutzt. Mit dem Menüpunkt  "Einstellungen/auf zuletzt
gespeichertes"  bzw. "Settings/Last Saved"  kann die Uhr auf die zuletzt
gespeicherten Einstellungen zurückgesetzt werden.



@{" Änderungsliste " LINK "GClock History" 0}

@ENDNODE

@NODE TimeSignal
@SMARTWRAP
@{LINDENT 1}

@{b}TimeSignal@{ub}


Dieses Programm bietet Ihnen die Möglichkeit, ein akustisches
Standard-Zeitzeichen auszugeben oder auch eine eigene Variante selbst zu
gestalten.

TimeSignal ist auch (wie DCF77) ein Commodity und kann somit auf die übliche
Weise mittels Exchange gesteuert werden.


Die Betriebsart des Programms können Sie (auch wie bei DCF77) mittels
verschiedener Einträge in den @{" Merkmalen " LINK "TimeSignal - Tool Types" 0} (Tool Types) festlegen.


Ohne Einträge erzeugt TimeSignal ein Standard-Zeitzeichen zur vollen Stunde:

Vier kurze Töne (Dauer 100 ms, Frequenz 1 kHz) zum Beginn der Sekunden
56 bis 59 und einen langen Ton (Dauer 1 s, Frequenz 1 kHz) zur vollen Stunde.


Wenn Ihnen das zu konventionell ist ("Bin ich der Deutschlandfunk?"), dann
können Sie erstens das Zeitzeichen mit einem beliebigen Audio-Sample
unterlegen, dessen Wiedergabe zu einer frei wählbaren Sekunde gestartet wird.

Außerdem lassen sich auch Tonhöhe und Lautstärke der Zeitzeichen-Signaltöne
einstellen, um besondere Effekte zu erzielen.

Sollte Ihnen das immer noch nicht genügen, dann können Sie die Signale auch
durch eigene Audio-Samples ersetzen und somit Ihr Zeitzeichen beliebig
gestalten.


Als einigermaßen spektakuläre Variante sollten Sie einmal folgende
Einstellung ausprobieren:
@{LINDENT 3}


MINUTES=1

BACKGROUND=Background_Audio

VOLUME3=55

FREQUENCY2=1353

START_BACKGROUND_SEC=50

START_SEC=57

AUDIO_FILTER=OFF


Achten Sie bitte darauf, daß sich dabei die Datei "Background_Audio" in
derselben Schublade wie TimeSignal befindet; andernfalls müssen Sie den
vollständigen Pfad angeben

(etwa: BACKGROUND=Work:Audio/Background_Audio).


Und wenn Sie keine Funkuhr benutzen, dann muß auch noch

CHECK_DCF77=NO

eingetragen werden.

@{LINDENT 1}

Genaueres über die Arbeitsweise von TimeSignal können Sie im Abschnitt
@{" Eigenschaften " LINK "TimeSignal - Eigenschaften" 0} lesen.

@ENDNODE

@NODE "TimeSignal - Eigenschaften"
@SMARTWRAP
@{LINDENT 1}

@{b}TimeSignal  -  Eigenschaften des Programms@{ub}


TimeSignal benutzt zur Audio-Ausgabe die Datatypes-Library. Sinn dieses
Vorgehens ist es, das Programm möglichst zukunftssicher zu gestalten.

Momentan ergeben sich daraus allerdings einige Einschränkungen:

Erstens bedeutet es, daß TimeSignal erst ab Amiga OS 3 funktionsfähig ist.


Zweitens können die derzeitigen Audio-Datentypen Samples nur mono abspielen.
Sobald es eine entsprechende Erweiterung des Standards gibt, dürfte das
Programm ohne Änderung mit Stereo-Samples zurechtkommen.


Die 8SVX-Datatype des Amiga-OS 3.0 scheint auch noch einen Bug zu besitzen,
der dazu führt, daß sie das mitgelieferte Jingle
(@{" Background_Audio " SYSTEM "run >nil: c/playsound Utilities/Background_Audio "}) nicht
vollständig abspielen kann (das passiert auch, wenn Sie es hier anklicken).
Installieren Sie also auf Ihrem Computer die Workbench 3.1, um diesem Fehler
zu entgehen oder benutzen Sie eine der zahlreichen PD-Datentypen für Audio,
die sich im Aminet finden.


Vorteile der Benutzung von Datentypen ist, daß das Programm jedes beliebige
Datenformat verarbeiten kann, dessen Datentyp installiert ist.


@{U}Das Ausgeben des Zeitzeichens geschieht folgendermaßen:@{UU}


Sofort beim Programmstart lädt TimeSignal die in den Merkmalen angegebenen
Audio-Samples, sofern entsprechende Einträge existieren.
Wenn sie existieren und die Dateien fehlen (oder der Datentyp unbekannt ist),
wird eine Dialogbox mit einer entsprechenden Meldung ausgegeben.

Danach werden die Samples geschlossen und der angeforderte Speicher wieder
freigegeben.


Dann wartet TimeSignal auf die nächste passende Minute entsprechend der bei
@{" MINUTES " LINK "TimeSignal - MINUTES" 0} angegebenen Zahl.


Fünfzehn Sekunden vor der in
@{" START_BACKGROUND_SEC " LINK "TimeSignal - START_BACKGROUND_SEC" 0} angegebenen
Sekunde öffnet TimeSignal die Datatypes Library und lädt die angegebenen Audio-Samples.
Diese Zeit sollte ausreichen, um parkende Festplatten anlaufen zu lassen.

Falls AUDIO_FILTER=OFF eingetragen ist, wird jetzt der Filter abgeschaltet.


Zur in @{" START_BACKGROUND_SEC " LINK "TimeSignal - START_BACKGROUND_SEC" 0} angegebenen
Sekunde wird dann das Hintergrund-Sample abgespielt,
sofern bei @{" BACKGROUND " LINK "TimeSignal - BACKGROUND" 0} ein Dateiname
angegeben ist.


Dann beginnt die Ausgabe des Zeitzeichens zur in
@{" START_SEC " LINK "TimeSignal - START_SEC" 0} festgelegten Sekunde.
Dabei benutzt TimeSignal entweder das bei @{" BEEP1 " LINK "TimeSignal - BEEP" 0} angegebenen Audio-Sample oder
erzeugt einen Ton mit der Tonhöhe und Länge der Angaben
@{" FREQUENCY1 " LINK "TimeSignal - FREQUENCY" 0} und
@{" DURATION1 " LINK "TimeSignal - DURATION" 0}.


Zur vollen Minute schließlich ertönt das Sample @{" BEEP2 " LINK "TimeSignal - BEEP" 0} oder der Ton, der mit
@{" FREQUENCY2 " LINK "TimeSignal - FREQUENCY" 0} und
@{" DURATION2 " LINK "TimeSignal - DURATION" 0} eingestellt werden kann.


Mit dem Beginn der dritten Sekunde der nachfolgenden Minute werden alle
möglicherweise noch laufenden Audio-Ausgaben abgebrochen, der angeforderte
Speicher wieder freigegeben und gegebenenfalls der Audio-Filter wieder auf den
ursprünglichen Zustand geschaltet.


Wenn TimeSignal während der laufenden Audio-Ausgabe eine Änderung der Systemzeit
feststellt, dann bricht es die aktiven Vorgänge sofort ab und wartet auf die
nächste passende Minute. Um es professionell einzusetzen, sollte also unbedingt
CHECK_DCF77=YES eingestellt sein.

@ENDNODE

@NODE "TimeSignal - Tool Types"
@SMARTWRAP
@{LINDENT 1}


Folgende Merkmale lassen sich für TimeSignal angeben:


@{" MINUTES " LINK "TimeSignal - MINUTES" 0}

@{" BEEP1 " LINK "TimeSignal - BEEP" 0}

@{" BEEP2 " LINK "TimeSignal - BEEP" 0}

@{" BACKGROUND " LINK "TimeSignal - BACKGROUND" 0}

@{" VOLUME1 " LINK "TimeSignal - VOLUMES" 0}

@{" VOLUME2 " LINK "TimeSignal - VOLUMES" 0}

@{" VOLUME3 " LINK "TimeSignal - VOLUMES" 0}

@{" AUDIO_FILTER " LINK "TimeSignal - AUDIO_FILTER" 0}

@{" START_BACKGROUND_SEC " LINK "TimeSignal - START_BACKGROUND_SEC" 0}

@{" START_SEC " LINK "TimeSignal - START_SEC" 0}

@{" ONE_TIME " LINK "TimeSignal - ONE_TIME" 0}

@{" FREQUENCY1 " LINK "TimeSignal - FREQUENCY" 0}

@{" FREQUENCY2 " LINK "TimeSignal - FREQUENCY" 0}

@{" DURATION1 " LINK "TimeSignal - DURATION" 0}

@{" DURATION2 " LINK "TimeSignal - DURATION" 0}

@{" CHECK_DCF77 " LINK "TimeSignal - CHECK_DCF77" 0}

@{" TASK_PRIORITY " LINK "TimeSignal - TASK_PRIORITY" 0}

@ENDNODE

@NODE "TimeSignal - MINUTES"
@SMARTWRAP
@{LINDENT 1}

@{b}MINUTES@{ub}                     Standardeinstellung:  MINUTES=60


Das ist der Zeitabstand zwischen zwei Zeitzeichen in Minuten.


MINUTES=60 z.B. bedeutet, daß das Zeitzeichen jeweils zur vollen Stunde erzeugt wird,
MINUTES=15 hat ein Zeitzeichen aller Viertelstunden zur Folge und MINUTES=1 bewirkt
jede Minute eine akustische Belästigung.

@ENDNODE

@NODE "TimeSignal - BEEP"
@SMARTWRAP
@{LINDENT 1}

@{b}BEEP1@{ub}                       Standardeinstellung:  (kein Eintrag)

@{b}BEEP2@{ub}                       Standardeinstellung:  (kein Eintrag)


Bei BEEP1 und BEEP2 können Sie die Namen der Audio-Samples für die
Zeitzeichen-Töne eintragen.

BEEP1 sind die Sekundentöne ab
START_BACKGROUND_COUNT und BEEP2 ist der Ton zur vollen Minute.

Die Sample-Daten für BEEP1 müssen kürzer als eine Sekunde sein.


Ohne Einträge bei BEEP1 und BEEP2 erzeugt TimeSignal die Töne intern.

@ENDNODE

@NODE "TimeSignal - BACKGROUND"
@SMARTWRAP
@{LINDENT 1}

@{b}BACKGROUND@{ub}                  Standardeinstellung:  (kein Eintrag)


Der Name des Audio-Samples für eine akustische Untermalung des Zeitzeichens, wie sie
derzeit bei vielen Sendern üblich ist.


Beim Aufzeichnen der Audio-Daten sollten Sie daran denken, daß das Abspielen zu einer
vollen Sekunde gestartet wird und Ihre Musik entsprechend gestalten.

@ENDNODE

@NODE "TimeSignal - VOLUMES"
@SMARTWRAP
@{LINDENT 1}

@{b}VOLUME1@{ub}                     Standardeinstellung:  VOLUME1=64

@{b}VOLUME2@{ub}                                           VOLUME2=64

@{b}VOLUME3@{ub}                                           VOLUME3=50


Die Lautstärkeangaben für die Zeitzeichentöne und die akustische Untermalung.

Die Werte müssen zwischen 0 (ganz leise) und 64 (höchste Lautstärke) liegen.

@ENDNODE

@NODE "TimeSignal - AUDIO_FILTER"
@SMARTWRAP
@{LINDENT 1}

@{b}AUDIO_FILTER@{ub}                Standardeinstellung:  AUDIO_FILTER=ON


Mit dem Eintrag AUDIO_FILTER=OFF können Sie TimeSignal veranlassen,
den Amiga-Audiofilter während des Abspielens abzuschalten.


Beachten Sie bitte, daß dies derzeit nur mittels eines direkten Zugriffs auf das
betreffende Register der Amiga-Hardware möglich ist. Bei einer späteren
Amiga-Generation mit geänderter Hardware könnte das zu Problemen führen, die Sie
dann durch Entfernen dieses Eintrags beheben müssen.

@ENDNODE

@NODE "TimeSignal - START_BACKGROUND_SEC"
@SMARTWRAP
@{LINDENT 1}

@{b}START_BACKGROUND_SEC@{ub}        Standardeinstellung:  START_BACKGROUND_SEC=50


Mit diesem Eintrag legen Sie die Sekunde fest, zu der die akustische Untermalung
des Zeitzeichens gestartet wird.


Die Zahl muß einen Wert von 19 bis 55 haben und kleiner
als @{" START_SEC " LINK "TimeSignal - START_SEC" 0} sein.

@ENDNODE

@NODE "TimeSignal - START_SEC"
@SMARTWRAP
@{LINDENT 1}

@{b}START_SEC@{ub}                   Standardeinstellung:  START_SEC=56


Mit diesem Eintrag legen Sie die Sekunde fest, zu der die Ausgabe
des Zeitzeichens gestartet wird.


Der Wert muß größer
als @{" START_BACKGROUND_SEC " LINK "TimeSignal - START_BACKGROUND_SEC" 0} sein.


@ENDNODE

@NODE "TimeSignal - ONE_TIME"
@SMARTWRAP
@{LINDENT 1}

@{b}ONE_TIME@{ub}                    Standardeinstellung:  ONE_TIME=NO


Mit der Einstellung NO läuft TimeSignal im Dauerbetrieb.
Mit der Einstellung YES gibt das Programm das Zeitzeichen nur einmalig aus
und beendet dann seine Tätigkeit.

@ENDNODE

@NODE "TimeSignal - FREQUENCY"
@SMARTWRAP
@{LINDENT 1}

@{b}FREQUENCY1@{ub}                  Standardeinstellung:  FREQUENCY1=1000

@{b}FREQUENCY2@{ub}                  Standardeinstellung:  FREQUENCY2=1000


Diese Einträge legen die Tonhöhen der intern erzeugten Signaltöne fest.
Es werden Sinustöne mit der in Hz angegebenen Frequenz generiert.

Die obere Grenzfrequenz variiert je nach der aktuellen
Bildwiederholfrequenz des Computers (aufgrund der DMA-Hardware).


Auf PAL-Systemen beträgt das Maximum 1440 Hz.


Wenn bei BEEP1 bzw. BEEP2 Audio-Dateien eingetragen sind, werden die
FREQUENCY1- bzw. FREQUENCY2-Angaben ignoriert.

@ENDNODE

@NODE "TimeSignal - DURATION"
@SMARTWRAP
@{LINDENT 1}

@{b}DURATION1@{ub}                   Standardeinstellung:  DURATION1=100

@{b}DURATION2@{ub}                   Standardeinstellung:  DURATION2=1000


Diese Einträge legen die Tondauer (in ms) der intern erzeugten Signaltöne fest.


DURATION1 darf maximal 999 betragen.


Wenn bei BEEP1 bzw. BEEP2 Audio-Dateien eingetragen sind, werden die
DURATION1- bzw. DURATION2-Angaben ignoriert.

@ENDNODE

@NODE "TimeSignal - CHECK_DCF77"
@SMARTWRAP
@{LINDENT 1}

@{b}CHECK_DCF77@{ub}                 Standardeinstellung:  CHECK_DCF77=YES


In der Einstellung YES gibt TimeSignal das Zeitzeichen nur dann aus, wenn
die Uhrzeit von DCF77 gestellt worden ist. Das Programm DCF77 muß dabei
natürlich in Betrieb sein.

In der Einstellung NO wird das Zeitzeichen immer ausgegeben.

@ENDNODE

@NODE "TimeSignal - TASK_PRIORITY"
@SMARTWRAP
@{LINDENT 1}

@{b}TASK_PRIORITY@{ub}               Standardeinstellung:  TASK_PRIORITY=1


Mit diesem Eintrag legen Sie die Task-Priorität von TimeSignal fest.

@ENDNODE


@NODE WaitForDCF77
@SMARTWRAP
@{LINDENT 1}

@{B}WaitForDCF77@{UB}


Das Programm WaitForDCF77 gibt Ihnen die Möglichkeit,
andere Programme abhängig vom erfolgreichen Empfang der
Zeit zu starten.


WaitForDCF77 wird in der Shell (in der Praxis sicherlich
in einem Script) ohne Argumente aufgerufen und wartet dann,
bis das Programm DCF77 die Systemzeit gestellt hat.
Dabei ist es auch zulässig, DCF77 erst nach WaitForDCF77
zu starten.


Wenn DCF77 nicht läuft, wartet WaitForDCF77 unbegrenzt.


@ENDNODE

@NODE WaitDCF77ifCrash
@SMARTWRAP
@{LINDENT 1}

@{B}WaitDCF77ifCrash@{UB}


@{U}Verwendungszweck@{UU}


Das Programm WaitDCF77ifCrash ist dann von Nutzen, wenn Sie Software
haben, die auf ein richtiges Datum angewiesen ist.

Bei Systemabstürzen kommt es gelegentlich dazu, daß die Register der
Hardwareuhr überschrieben werden, wodurch die Uhrzeit verändert wird.


WaitDCF77ifCrash speichert das Datum seines Aufrufs in der Datei
ENVARC:LastBootDate, und wenn es beim nächsten Aufruf feststellt, daß das
Systemdatum älter als das gespeicherte ist oder sich um mehr als ein
halbes Jahr geändert hat, dann wartet es auf den Funkuhrempfang.

Das funktioniert meistens wie gewünscht, da Systemabstürze, die die
Hardwareuhr überschreiben, fast immer ein gründlich verändertes Datum zur
Folge haben.

Natürlich wartet es auch dann, wenn Sie Ihren Amiga ein halbes Jahr nicht
benutzen (wozu brauchen Sie ihn dann überhaupt?), aber nach dieser Zeit
ist wahrscheinlich auch der Akkumulator der Hardware-Uhr entladen.



@{U}Benutzung@{UU}


WaitDCF77ifCrash ist ein Shell-Befehl.

Das Programm wird ohne Argumente in dem Skript aufgerufen, in welchem
später auch Ihre Anwendung gestartet wird, die das fehlerfreie Datum
braucht.



@{U}Beispiel@{UU}


Ein Programm namens "AmigaOrganizer", das sich in der Schublade
"Organizer" auf der Festplatte "Work" befindet, soll abhängig vom
richtigen Datum gestartet werden. Dazu ist folgendes zu tun:


- DCF77 nach WBStartup und WaitDCF77ifCrash nach C: kopieren


- Eine Textzeile in s:user-startup eintragen:


  run >nil: execute s:runorg


- Die Textdatei s:runorg schreiben:


  stack 12000	;Stackgröße je nach Anwendung (voreingestellt ist 4096)

  waitdcf77ifcrash

  cd work:organizer

  amigaorganizer


Die notwendige Größe des Stacks finden Sie entweder im Handbuch des
jeweiligen Programms, oder Sie schauen auf der Workbench mit dem
Menüpunkt Piktogramm/Informationen nach.

@ENDNODE

@NODE "Copyright" "Copyright"
@SMARTWRAP
@{LINDENT 1}

@{b}Copyright, Haftung@{ub}


Software und Dokumentation


Copyright © 1994-1996 OsaMatic System GmbH

                      Schillerstraße 68

                      D-02763 Zittau



Das vorliegende Programmpaket darf beliebig kopiert und in PD-Serien oder
elektronische Archive aufgenommen werden, sofern alle Dateien unverändert sind.
Jegliche Veränderung an Programmen oder Programmteilen sowie Rückübersetzung
sind unzulässig.
Ein kommerzieller Einsatz oder Verkauf dieser Demoversion ist nicht gestattet.



Bei der Entwicklung der Software wurde mit allergrößter Sorgfalt vorgegangen.
Trotzdem sind Fehler nicht vollständig ausgeschlossen. OsaMatic übernimmt keine
Haftung für Schäden, die auf Fehlfunktionen von Programmen zurückzuführen sind.
@ENDNODE

@NODE "Registrierung" "Bestellung"
@{LINDENT 1}

Bestellmöglichkeit für das Programmpaket - mit oder ohne Empfänger:


OsaMatic System GmbH
Schillerstraße 68          Tel. 03583 / 57320
D-02763 Zittau             Fax  03583 / 573223


Die Preise (Stand Juli 1996  -  einschließlich MWSt.):

Software DCF77                     49,- DM
Empfänger (boeder) mit Software   119,- DM
Versandkosten Software              6,- DM Vorkasse (Scheck)
                                    9,- DM Nachnahme
              Hardware + Software   9,- DM Vorkasse
                                   12,- DM Nachnahme



Testberichte von etwas älteren Versionen des Programms finden Sie
in "Amiga Plus" 7/94 S. 109 und "Amiga Magazin" 7/95 S. 136.

Zitat (Amiga Magazin):
"Der Preis wird der gebotenen Qualität voll gerecht."

@ENDNODE


@NODE "DCF77 History" "DCF77 History"
@{LINDENT 1}

@{U}Liste aller veröffentlichten Versionen von DCF77@{UU}



@{i}"Nichts ist langweiliger als ein Programm, das endlich fehlerfrei läuft."
 (Prof. Ungruen)@{ui}



26. 1.94  -  1.65
Erste funktionsfähige Commodity-Version für Empfänger mit
low-aktiven Sekundenimpulsen (Conrad Electronic).

31. 1.94  -  1.69
Automatisches Abspeichern der Zeit in die akkugestützte Uhr
hinzugefügt. Diverse Kleinigkeiten verbessert.

30. 6.94  -  1.70
Änderung für high-aktive Sekundenimpulse. Adaptionsfaktor
speziell an boeder-Empfänger angepaßt. Nicht für Conrad-Empfänger geeignet.

11. 7.94  -  1.71
Programm erkennt jetzt selbständig, ob es sich um einen
Empfänger mit low- oder high-aktiven Sekundenimpulsen handelt. Berechnung
des Adaptionsfaktors verbessert.

13. 7.94  -  1.72
Erhöhung der Fehlersicherheit, indem die Zeit vom Sender
DCF77 erst nach zweimalig identischem Empfang akzeptiert wird.

11. 9.94  -  1.74
Als Startwert für den Zeitvergleich in aufeinanderfolgenden
Minuten wird jetzt die Systemzeit benutzt. Eine SignalSemaphore wurde
eingeführt, die es anderen Programmen erlaubt, den Empfangsstatus von DCF77
zu erfahren. WaitForDCF77 als Hilfsprogramm und Programmierbeispiel
hinzugefügt.

17. 9.94  -  1.75
Diverse Kleinigkeiten verbessert. Neue Demoversion angefertigt.

31.10.94  -  2.0
Auswertung der Zonenzeitbits hinzugefügt. Auswertung des
GMTOffsets der Locale Library hinzugefügt. Tool Types eingeführt (Offset für
Sekunden und Mikrosekunden, Locale, DST, UpdateLocale, UTC, Task-Priorität).

 9.11.94  -  2.02
Tool Types um Pause, One_Time und Quit_After_Trials ergänzt.

17.12.94  -  2.03
Interne Programmstruktur überarbeitet (jetzt werden alle
CX-Kommandos asynchron ausgewertet). WaitDCF77ifCrash als Hilfsprogramm und
Programmierbeispiel hinzugefügt.

28.12.94  -  2.07
Empfangsverhalten bei bestimmten Störungen geringfügig
verbessert. Am 7.2.95 WaitDCF77ifCrash auf Version 1.02 geändert (wartet
jetzt auch bei Datumssprüngen von über einem halben Jahr).
Am 19.2.95 das Installationsskript für WaitDCF77ifCrash hinzugefügt.
Am  4.4.95 das Installations- und das Desinstallationsskript für DCF77
hinzugefügt und die Bedienungsanleitung überarbeitet.

15. 4.95  -  2.08
Auf Amigas ohne Locale-Library wurde von Version 2.0 bis
2.07 die Zeit um zwei Stunden nachgehend eingestellt (die Ursache war ein
fehlendes Minuszeichen bei der Initialisierung einer Variablen). Und das hat
mir bisher niemand mitgeteilt - sind Workbench 2.04 und 2.05 wirklich schon
ausgestorben?

15. 5.95  -  2.11
Erste mehrsprachige Version (deutsch, englisch). Alle Texte intern.

22. 7.95  -  2.12
Auf Amigas mit CPU 68030 und Koprozessor stellt Version 2.11
das Datum um einen Tag vor. Die Ursache liegt in einem Fehler des Compilers
Maxon C++ V3.00, der für 2.11 erstmalig eingesetzt wurde. In DCF77 Version
2.12 wird der Fehler durch Verzicht auf bestimmte Typumwandlungen von
Variablen umgangen.

10. 9.95  -  2.13
Wenn DCF77 über Exchange inaktiv geschaltet wird, gibt es
jetzt den Gameport frei.

27.10.95  -  2.14
Tool Types um SAVE_UTC und SAVE_DST ergänzt.

 5.11.95  -  2.16
DCF77 erkennt jetzt nach maximal einer Minute eine durch ein
anderes Programm veränderte Systemzeit. Tool Types um MAX_TIME_DIFFERENCE
ergänzt.

19.11.95  -  2.17
Kleine Optimierungen.

30.11.95  -  2.18
Die Struktur zur Übergabe des Empfangsstatus an andere
Programme wurde um den Betriebszustand, die verbleibende Zeit bis zum
nächsten Stellen der Systemzeit und den letzten Fehler erweitert.

28.12.95  -  2.21
Rechenzeitverbrauch und Code-Größe durch einige
Optimierungen verringert. Der Empfangsstatus meldet jetzt ein gestörtes
Signal zuverlässiger. DCF77-Demo in DCF77-Diagnose umbenannt, damit der Name
Demo für die frei kopierbare Version des DCF77-Paketes benutzt werden kann.

29. 1.96  -  2.23
Das Signalfenster von DCF77-Diagnose bei Betrieb unter OS 2.x vergrößert.
Tool Types um ALLOWED_TIME_DIFFERENCE ergänzt.

6. 4. 96  -  2.34
Dies ist eine Alpha-Version der geplanten Version 3 des Programms, die
freigegeben worden ist, um schon jetzt den Betrieb an der seriellen
Schnittstelle zu ermöglichen.
Neuerungen sind:
Umfangreiche Überarbeitung der Empfangsalgorithmen,
Wahlweise Gameport Timeout oder Timer Device als Zeitbasis,
Unterstützung der seriellen Schnittstelle (es fehlt noch die Möglichkeit,
die serielle Schnittstelle zu reservieren).
Das Zeitzeichenprogramm TimeSignal ist neu hinzugekommen.


@ENDNODE

@NODE "GClock History" "GClock History"
@{LINDENT 1}

@{U}Änderungsliste aller veröffentlichten Versionen von GClock:@{UU}


30. 1.94  -  beta 0.41 Erste akzeptable Version. Ohne Menüs, Zeiger nur als
Linien.

 7. 2.94  -  1.0 Variable Zeigertypen (als Polygon) und Menüs eingeführt.

14. 2.94  -  1.08 Zeigertyp Standard 2 hinzugefügt.

26. 2.94  -  1.12 Abschaltbarer Fensterrahmen eingeführt. Datumsanzeige im
Screentitel hinzugefügt. Handhabung der IDCMP-Nachrichten jetzt asynchron.

 6. 3.94  -  1.13 Minutenlinien des Zifferblatts jetzt als Polygon gezeichnet
(vorher Linien).

26. 3.94  -  1.14 Darstellung der Minutenlinien an Zeigertyp angepaßt. Drei
Enforcer-Hits beim Programmstart entfernt.

19. 7.94  -  1.17 Verhalten bei Speichermangel verbessert. Datum im Screentitel
wird jetzt in der im Locale-Voreinsteller eingestellten Sprache angezeigt. Diverse
Kleinigkeiten verbessert.

24. 7.94  -  1.19 Mehrmaliges Zeichnen des Hintergrundes bei Zeigerwechsel
entfernt.

 9. 8.94  -  1.23 Rechenzeitverbrauch durch einige Optimierungen verringert.

22. 8.94  -  1.26 Darstellungsarten des Fensterrahmens erweitert (Overlap).
Anpassung an aktuellen Displaymodus verbessert. Begrenzung der Fenstergröße
entfernt und Speicherbedarf zur Laufzeit stark verringert (Arbeitsspeicher für
Grafikoperationen wird jetzt dynamisch angefordert).

17. 9.94  -  1.29 Im Screentitel und durch ein grafisches Symbol im Fenster der Uhr
wird jetzt zusätzlich angezeigt, ob das ggf. gleichzeitig laufende Programm DCF77
die Zeit bereits erfolgreich empfangen hat.

 8.10.94  -  1.31 Fensterabmessungen und -position werden nicht mehr absolut
gespeichert, sondern auf den aktuellen Displaymodus bezogen.

26.10.94  -  1.33 Kreisförmige Darstellung des Zifferblatts (Circular) und
Menüpunkt 'Last Saved' hinzugefügt.

20.11.94  -  1.34 Fließpunktarithmetik zur Koordinatenberechnung durch
Ganzzahlarithmetik ersetzt, damit schnellerer Bildaufbau auf langsamen Amigas.

14. 5.95  -  1.40 Erste mehrsprachige Version (deutsch, englisch).

 4. 1.96  -  1.47 Ein Wettlaufproblem mit dem (asynchronen) Zeichnen des
Fensterrahmens bei der überlappenden Darstellung beseitigt. Darstellungsqualität
durch gepufferte Anwendung der Grafikfunktionen verbessert. Dadurch wird auch der
sich bei allen vorherigen Versionen auswirkende Betriebssystemfehler
(Grafikfehler beim Zeichnen von Polygonen, die teilweise hinter einem anderen
Fenster liegen) umgangen. Das Abfrageintervall für den DCF77-Empfangsstatus von
einer Minute auf 10 Sekunden (bei gültiger Zeit) bzw. 1 Sekunde (während des ersten
Empfangs) verkürzt. Grafische Darstellung des DCF77-Empfangsstatus und
Datumsanzeige eingebaut.

20. 1.96  -  1.48 Fehlerkorrektur: In der vorherigen Version hat die Betriebsart
ohne Fensterrahmen den Rahmen nicht mehr gelöscht.
@ENDNODE

@NODE "abschließende Bemerkung" "abschließende Bemerkung"
@SMARTWRAP
@{LINDENT 1}






So, das wäre es erst einmal. Ich hoffe, daß Ihnen diese Bedienungsanleitung alle
Informationen vermitteln konnte, die Sie sich gewünscht haben.




Viel Erfolg!


Ralf Gruner

@ENDNODE

