home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Crawly Crypt Collection 1
/
crawlyvol1.bin
/
utility
/
misc
/
dcf_time
/
dcf_time.txt
< prev
next >
Wrap
Text File
|
1993-06-02
|
19KB
|
475 lines
DCF_TIME Version 1.2
Die ultimative Software zu allen DCF77-Empfängern!
Atari (Mega)ST(E), TT, Falcon
Copyright © 1991-93 by
Ralf Zimmermann
2. Juni 1993
1 Kurze Beschreibung des Programms
Es gibt einige Module für den Atari, welche die DCF77-Zeitzeichen
empfangen und dem Rechner zur Dekodierung zur Verfügung stellen. Die
zum Teil mitgelieferte Software lässt einige Wünsche offen (ich halte
mich stark zurück...). Diesem Übel hilft diese Software ab.
DCF_TIME ist eine zuverlässige und schnelle Software zur Dekodierung
der DCF77-Signale. Es werden verschiedene Ports für die ankommenden
Signale unterstützt.
ACHTUNG: Die Software empfängt natürlich keine DCF-Signale! Dazu
brauchen Sie eine kleine Zusatz-Hardware, eben einen der beschriebenen
Empfänger.
DCF_TIME ist nur eine alternative Dekodier-Software dazu!
2 Copyright
DCF_TIME ist ein Freeware-Programm von
Ralf Zimmermann
Am Ruhwehr 35
6200 Wiesbaden
3 Entstehungsgeschichte
Für Rechner ohne Hardware-Uhr gibt es von verschiedenen Firmen
DCF77-Empfänger, die man mit dem Rechner verbindet, um damit die
offizielle Richtzeit der Bundesrepublik Deutschland mit hoher
Genauigkeit zu empfangen.
Ich besitze einen solchen Empfänger von der Firma Conrad. Die
Dekodierung erfolgt per Software. Die mitgelieferte Software lässt
einige Wünsche offen.
DCF_TIME bietet nun die Möglichkeit, die vom Empfänger gelieferten
Signale zuverlässig und unauffällig zu dekodieren. Die Dekodierung
läuft im Hintergrund und sorgt regelmässig für die aktuelle Uhrzeit.
Als besonderes Feature kann man zwischen der Ortszeit in Deutschland
(MEZ, MESZ) und der Weltzeit UTC wählen. Die Sommerzeit wird
automatisch beachtet.
Als Freeware-Produkt erhalten Sie hiermit alle zu DCF_TIME nötigen
Dateien und Informationen. DCF_TIME besteht aus folgenden Dateien:
DCF_TIME.PRG Das Programm für den AUTO-Ordner
DCF_TIME.INF Beispiel-Datei für Konfiguration
DCF_TIME.TXT Der Text den Sie gerade lesen
DCF_TIME.CPX Ein CPX-Modul zur Anzeige der empfangenen
Daten
DCF_WAIT.TOS Ein Hilfsprogramm für Batch-Verarbeitung
DCF77.H Die Header-Datei für C, sie enthält alle
wichtigen Informationen zur Einbindung des
Decoders in eigene Programme
4 Installation
Kopieren Sie einfach das Programm DCF_TIME.PRG in den AUTO-Ordner
Ihres Bootlaufwerks. Dann neu booten und fertig!
Falls Sie Ihren DCF77-Empfänger nicht am Joystick-Port angeschlossen
haben, so müssen Sie noch eine Datei mit den Parametern für den
Decoder erstellen. Dasselbe gilt, falls Sie die weiteren
Möglichkeiten des Decoders nutzen wollen. Die nötige Datei nennt sich
DCF_TIME.INF und sollte im selben Verzeichnis wie DCF_TIME.PRG liegen.
Am einfachsten lässt sich eine solche Datei mit dem CPX-Modul
DCF_TIME.CPX erstellen.
Nach einem Kaltstart haben Sie bei korrektem Empfang nach knapp 2
Minuten die korrekte Zeit im ST! Nach einem Warmstart bleibt die
System-Zeit durch Zwischenspeichern im Tastaturprozessor erhalten.
Falls Sie das mitgelieferte CPX-Modul verwenden wollen (dies ist zur
eigentlichen Dekodierung nicht nötig!), so kopieren sie es bitte zu
Ihren anderen CPX-Modulen. XControl wird es dann beim Starten finden.
Anmerkung: 'XControl' ist das neue erweiterte Kontrollfeld von Atari,
es wird mit Rechnern ausgeliefert, die eine TOS-Version >2.00 haben.
Dieses neue Kontrollfeld erlaubt es, einzelne Module (mit der Endung
CPX) nachzuladen.
Für ältere TOS-Versionen ist das neue Kontrollfeld nicht vorgesehen -
aber abgesehen von ein paar Modulen läuft es z. B. auch unter TOS 1.04
ohne Probleme. Ich benutze es täglich und kann es nur empfehlen!
DCF_TIME läuft auf allen ST, STe, Mega-ST, Mega-STe, TT und
Falcon-Rechnern von Atari.
5 Funktionsweise der Programme
Das Auto-Ordner-Programm DCF_TIME.PRG sucht beim Start die Datei
DCF_TIME.INF und wertet sie aus. Nach Möglichkeit wird eine
Dekodier-Routine im Hintergrund installiert.
Die Uhrzeit wird aus dem Tastatur-Prozessor gelesen. Damit wird
erreicht, dass nach einem Warmstart sofort wieder die dorthin
gesicherte Zeit zur Verfügung steht.
Ab sofort sorgt die Decoder-Routine im Hintergrund für eine
bestmögliche Entzifferung des empfangenen DCF-Signals. Desgleichen
wird die System-Zeit im Rechner in regelmässigen Abständen gesetzt.
Anmerkung: Das Dekoder-Programm ist jetzt schon knapp 9 kB gross.
Davon bleiben aber nur knappe 2 kB resident. Der Speicherbedarf durch
den residenten Decoder ist also denkbar klein!
Das CPX-Modul DCF_TIME.CPX kann von dem vorhandenen Accessory XCONTROL
(von Atari) geladen werden. Das Modul zeigt sämtliche Daten über das
empfangene DCF77-Signal sowie über den Decoder an.
Es dient also hauptsächlich zur Information, was der Decoder denn so
treibt. Für die eigentliche Funktion des Zeit-Dekodierens und
-Stellens hat es keine Bedeutung.
Desweiteren lässt sich hiermit das Verhalten des Dekoders
beeinflussen.
Das Programm DCF_WAIT.TOS ist für diejenigen gedacht, die automatisch
irgendwelchen Datenbestand crunchen lassen. Falls dieses Crunchen mit
dem Datum als Kriterium geschieht, so ist es natürlich fatal, wenn die
Uhrzeit im Rechner nach dem Starten irgendwelche utopischen Werte
annimmt. Dieses Problem behebt dieses Programm.
DCF_WAIT wartet nach dem Start einfach solange, bis die Rechner-Zeit
vom Decoder gesetzt wurde.
Bei mir wird DCF_WAIT in der Stapelverarbeitung direkt vor meinem
Message-Cruncher aufgerufen. Wenn die Zeit stimmt, geht's gleich
weiter - falls nicht wird gewartet. Und schon sind alle Probleme
beseitigt.
6 Die Bedienungselemente des CPX-Moduls
Das CPX-Modul erlaubt das ausführliche Anzeigen der Aktionen rund um
den DCF77-Decoder. Man kann alle empfangenen Signale ablesen sowie ein
paar Parameter einstellen.
o Im Hauptdialog des Moduls sieht man die wichtigsten Informationen
auf einen Blick. Von dort kann man mittels eines Popup-Dialoges
unter dem Knopf 'Weitere Dialoge...' weitere Dialoge wählen. (Wer
hätte DAS gedacht?)
o Über DCF_TIME...
Hier kann man sehen, welche Version des DCF-Decoders man
verwendet und wer das Programm geschrieben hat.
o Konfiguration...
Zur Zeit kann man die Zeitzone und das Zeit-Stellen-Intervall
einstellen. Mittels 'Sichern' wird diese Information in die Datei
DCF_TIME.INF geschrieben. Es wird nach der Datei
\AUTO\DCF_TIME.INF gesucht und die Parameter dort gesichert.
Falls die Datei nicht existiert, wird eine neue erstellt.
o DCF77-Signale...
Hier kann man alle Informationen sehen, die das ursprüngliche
DCF-Signal übermittelt hat.
o Letztes Stellen...
Hier können Sie sehen, wann der Decoder die Rechner-Zeit zum
letzten Mal gestellt hat. Es wird in zwei Angaben unterschieden:
Gemdos: Dies ist die Zeit, welche von den meisten Programmen
als Rechner-Zeit verwendet wird.
XBios: Dies ist die eventuell vorhandene Hardware-Uhr, bzw.
die Uhr im Tastaturprozessor. Diese Uhr wird vom
Decoder auch gestellt!
7 Programmiertechnisches
Das AUTO-Ordner-Programm installiert sich in den entsprechenden
Vektoren mit der XBRA-Kennung zDCF. Ebenso installiert es einen Cookie
mit der Kennung zDCF. Der Cookie-Wert ist ein Zeiger auf eine
DCF77-Struktur.
Die Definition dieser Struktur finden Sie in der Datei DCF77.H, sie
erlaubt es Ihnen, den Decoder in eigenen Programmen anzusprechen.
Die C-Struktur tm ist folgendermassen definiert:
struct tm
{
WORD tm_sec; /* Sekunden */
WORD tm_min; /* Minuten */
WORD tm_hour; /* Stunden (0..23) */
WORD tm_mday; /* Tag im Monat (1..31) */
WORD tm_mon; /* Monat (0..11) */
WORD tm_year; /* Jahr */
WORD tm_wday; /* Wochentag (0..6) ! (So..Sa) */
WORD tm_yday; /* Tag im Jahr (0..365) */
WORD tm_isdst; /* ungleich Null entspricht Sommerzeit */
};
8 Zur Hardware
Ursprünglich war diese Software dafür ausgelegt, die Signale des
DCF-Empfängermoduls der Fa. Conrad für den Atari-ST auszuwerten. Der
Anschluss an den Rechner erfolgt über den zweiten Joystick-Port.
Mittlerweile läuft die Software auch mit anderen Empfänger-Modulen und
an anderen Schnittstellen.
Der vorliegenden Version von DCF_TIME ging eine aufwendige
Beta-Test-Phase vorraus. Sie arbeitet nun mit verschiedenen Eingängen
(Ports genannt) für das DCF77-Signal und mit verschiedenen
Empfängermodulen zusammen. Nachfolgend beschreibe ich die bisher
benutzten Ports. Falls es Probleme beim Anschluss gibt, so kann ich
gerne mit Tips aushelfen. Möchte jemand einen anderen Port benutzen,
der hier noch nicht aufgeführt ist, so kann er sich ja mit mir in
Verbindung setzen. Bisher werden drei Ports unterstützt:
JOY Joystick-Port (JOY1, also nicht die Maus)
RI1 Ring-Indicator von MODEM1
RI2 Ring-Indicator von MODEM2
8.1 Anschluss am Joystick-Port (JOY)
Der Anschluss des Moduls an den Rechner erfolgt über einen 9-poligen
Sub-D-Verbinder.
Die Belegung der Anschlüsse ist folgende:
1: Signal
7: +5V
8: Masse
8.2 Anschluss an MODEM1 (RI1)
Das Signal wird über den Ring-Indicator-Anschluss (RI genannt) in den
Rechner gebracht. Dazu muss die Verbindung des RI zu einem eventuell
vorhandenen Modem getrennt werden. Da die meiste Software zum Betrieb
von Modems den RI nicht benutzt, ist dies kein Verlust an
Funktionalität.
Lediglich einige Fax-Programme für den Atari fragen explizit den
RI-Kontakt ab. In diesem Fall sollte man seinen DCF-Empfänger
natürlich nicht an diesem Anschluss betreiben.
Aber man hat ja die Wahl...! ;-)
Der Anschluss an MODEM1 wurde von einigen Beta-Testern erfolgreich
benutzt, es sollte also auch bei Ihnen funktonieren. Man spart sich
vor allem das Kabel zur abgesetzten Tastatur, wo sich der
Joystick-Port befindet.
Ein kleiner Tip: Die Eingänge der MODEM1-Schnittstelle kann man auch
mit TTL-Pegeln benutzen! Die im Atari benutzten
Schnittstellen-Bausteine sind da sehr tolerant.
8.3 Anschluss an MODEM2 (RI2)
Dies funktioniert analog zu dem Anschluss an MODEM1, es wird ebenfalls
der RI benutzt. Leider konnte ich speziell diesen Port noch nicht
ausführlich testen.
Aber wie in der letzten Version versprochen kann nun auch dieser Port
verwendet werden. Ein paar Betatester haben das mittlerweile
erfolgreich ausprobiert.
Leider ist der MODEM2-RingIndicator-Anschluss beim MegaSTe wohl leider
nicht angeschlossen, es fehlt ja auch der zweite MFP, der diese
Leitung sonst verwaltet. Deshalb kann dieser Port bei dem MegaSTe
leider nicht verwendet werden!
9 Das Format der Datei DCF_TIME.INF
Das Decoder-Programm kann nun mittels einer Datei konfiguriert werden.
Dies ist nützlich, falls man nicht die Default-Einstellungen verwenden
möchte und XControl nicht benutzt. Damit ergibt sich dann ein
minimaler Verbrauch von Speicher!
Die Datei dazu heist DCF_TIME.INF und wird beim Programmstart im
selben Verzeichnis wie das Programm erwartet. Die Datei kann jeder
selbst mit Hilfe eines ASCII-Editors erstellen, oder man lässt sie
einfach von dem CPX-Modul mittels 'Konfiguration sichern' erzeugen.
Bisher werden folgende Variablen ausgewertet:
9.1 PORT
Bestimmt, welcher Port für die DCF77-Signale verwendet werden soll.
Mögliche Werte sind:
JOY Es wird der Joystick-Port verwendet
RI1 Es wird der RI von MODEM1 verwendet
RI2 Es wird der RI von MODEM2 verwendet
9.2 ZONE
Bestimmt, welche Zeitzone vom Dekoder zur Verfügung gestellt wird.
Mögliche Werte sind:
LOC Deutsche Ortszeit
UTC Weltzeit (UTC)
MEZ MittelEuropäische Zeit
MESZ MittelEuropäische SommerZeit
Die Weltzeit (UTC) ist wohl vor allem für die Funkamateure unter uns
(73!) interessant.
Die beiden letzten Einstellungen (MEZ, MESZ) sind nicht unbedingt
praxistauglich.
9.3 SET_EVERY
Bestimmt die Anzahl der Minuten zwischen zweimal Zeit-Setzen (0-60).
Ein Wert von 0 bedeutet, dass die Zeit nur einmal übernommen wird, 60
bedeutet ein stündliches Setzen der Zeit. Werte darüber sind nicht
erlaubt.
9.4 QUICK_SET
Definiert das Verhalten des Decoders für das erstmalige Stellen der
Zeit:
ON Auch beim erstmaligen Stellen der Uhrzeit wird ein zweites
Zeittelegramm abgewartet, um eventuelle Fehler bei
schlechtem Empfang zu verhindern. Dadurch Verzögert sich das
Stellen nach dem Booten natürlich um eine weitere Minute.
OFF Dies ist die schnellere Möglichkeit, es wird das erste
korrekte Zeittelegramm zum Stellen verwendet. Danach werden
wieder jeweils zwei Telegramme verglichen, bevor die Zeit
übernommen wird.
9.5 BOOT_TEXT
Bestimmt, welcher Text beim Starten des AUTO-Ordner-Programmes
ausgegeben wird:
SHORT Es wird nur die Copyright-Meldung mit Versionsnummer und
Erstellungsdatum ausgegeben. Dies ist ganz nützlich, wenn
alles ordentlich läuft und man beim booten sowieso schon so
viele Texte angezeigt bekommt. Fehlermeldungen werden
natürlich nicht unterdrückt!
LONG Es wird die selbe Meldung wie bei SHORT ausgegeben, aber
zusätzlich meldet DCF_TIME jede Aktion und gibt die
eingestellten Parameter aus.
9.6 Beispiel
Das File enthält z. B. folgende Zeilen:
PORT = JOY
ZONE = LOC
SET_EVERY = 60
Das bedeutet in diesem Beispiel, dass die Signale am Joystick-Port
erwartet werden, die Zeit in Ortszeit (LOC) dekodiert wird und die
Zeit alle 60 Minuten in den Rechner übernommen wird.
Die Reihenfolge der Zeilen in der Datei ist egal.
10 History
o Version 1.0
Dies ist die erste Version, die einer kleinen "Offentlichkeit
vorgestellt wurde. Es gab noch kein CPX-Modul, dafür erfolgten
alle Einstellungen über ein Accessorie.
Alles funktioniert funktionierte schon prächtig, aber es gibt ja
bekanntlich nichts, was man nicht besser machen kann.
o Version 1.1
Nennen wir diese Version mal Public Edition. DCF_TIME wurde in
dieser Version zum ersten Mal weit verbreitet, vor allem über das
Maus-Netz.
- Zum ersten Mal werden verschieden Schnittstellen für das
DCF77-Signal unterstützt.
- Alle Einstellungen erfolgen jetzt über ein CPX-Modul.
o Version 1.2
- Nun funktioniert auch der RI2-Port (RingIndicator von
MODEM2).
- Der Decoder ist jetzt etwas schneller geworden.
- Die Erkennung von gestörten Signalen und unsinnigen
Zeitangaben wurde stark verbessert. Dies ist lediglich für
Benutzer interessant, die immer einen schlechten Empfang
haben.
- In Zusammenhang mit HSMODEM1.PRG wurde ein Problem im
Interrupt Handling offenbar. DCF_TIME brachte etwas zuviel
Zeit in seinen Berechnungen zu.
Durch eine kleine Interrupt-Kosmetik konnte das Problem
beseitigt werden, DCF_TIME setzt seine Priorität herab und
behindert keine High-Speed-Übertragungen mehr.
(Hallo Harun!)
11 Neue Versionen
Wenn das Echo auf meine Software positiv ist, so wird es auch
weiterhin neue Versionen von DCF_TIME geben. Zumindestens werde ich es
für den eigenen Gebrauch weiter verbessern.
12 Copyright (Das Unvermeidliche...)
DCF_TIME ist ein Freeware-Produkt. Das bedeutet, Sie dürfen die
Dateien frei kopieren und weitergeben. Eine kommerzielle Auswertung
dieses Produktes durch andere als mich, den Autor, ist nicht erlaubt.
Wer DCF_TIME kommerziell einsetzen will (also z.B. in einer Firma)
wende sich bitte direkt an mich, es gibt da einen speziellen Tarif für
solche Verwendung.
Da mich dieses Produkt einige Mühe, Zeit und sogar Geld gekostet hat,
möchte ich Sie gerne bitten, mir bei Benutzung dieser Software 10 DM
zukommen zu lassen.
Dieser Betrag ist ja wohl wirklich nicht zuviel! Sie kostet es nicht
die Welt und ich könnte damit wenigstens die Kosten für meinen
C-Compiler wieder reinholen. Halten Sie das nicht für eine faire
Sache?
Meine Postalische Anschrift finden Sie oben in diesem Text, hier meine
Bankverbindung:
Nassauische Sparkasse Wiesbaden
BLZ 510 500 15
Konto 1010 299 72
Für Anregungen und Fehlerberichte bin ich immer dankbar!
Viel Spass und guten Empfang wünscht
Ralf Zimmermann
Auf elektronischem Weg bin ich zu erreichen unter:
Maus-Netz : Ralf Zimmermann @ WI2
Fido-Netz : Ralf Zimmermann on 2:2405/1.9
Packet-Radio : DL1FDT @ DB0GV (ex. DG8FCA)
13 Post Scriptum (War eigentlich nicht geplant)
Zu der vorliegenden Version habe ich die Anleitung in LaTeX, meinem
Lieblingstextsystem verfast. Natürlich sehe ich ein, das dem Programm
eine Anleitung als ASCII-Text beiliegen muss! Deshalb habe ich mit
verschiedenen Programmen (TEX2TXT, DVI2TTY) versucht einen solchen
ASCII-Text automatisch erstellen zu lassen.
Vorweg: es ist nicht gelungen...!
Mit dem erstgenannten Programm gab es etliche Probleme - ich sollte
dem Autor wohl mal schreiben. Der hier vorliegende Text wurde nun mit
DVI2TTY erstellt und dann von Hand nachbearbeitet - es hat keinen Spaß
gemacht!
Wenn dieser Text also etwas übel aussieht, dann bitte ich um
Entschuldigung, der Inhalt sollte aber auch so rüberkommen. Vielleicht
bekomme ich dieses Problem ja noch in den Griff. Ich wollte nur
endlich die Anleitung fertigmachen, da dies seit Wochen das einzige
ist, was die Auslieferung der Version 1.2 verzögert.