#define	IDENTITY			(LONG)'zDCF'		/* Cookie-Kennung		*/
#define	DCF_VERS			0x0600				/* Protokoll:	06
															Programm:	xx		*/


typedef enum {DCF_OK, DCF_SYNC, DCF_RX, DCF_ERR}	DCF_MSG;
typedef enum {LOC=-1, UTC, MEZ, MESZ, UTC_3}	ZONE;
typedef enum {JOY_PORT, RI1_PORT, RI2_PORT}	DCF_PORT;
typedef struct	{	UWORD		version;
						DCF_MSG	valid;
						BOOLEAN	res_ant,
									a1,			/* Wechsel Winter-/Sommer-Zeit	*/
									a2;			/* Schaltsekunde						*/
						ZONE		zone;			/* dekodierte Zone					*/
						struct tm	_tm;		/* dekodierte Daten (valid?)		*/
						ZONE		zeitzone;	/* gewnschte Zeitzone				*/
						UWORD		intervall;	/* Zeit-Setz-Intervall (Minuten)	*/
						BOOLEAN	gem_set;		/* set-only: Zeit neu setzen		*/
						BOOLEAN	xbs_set;		/* set-only: Zeit neu setzen		*/
						ULONG		last_gem;	/* Zeit des letzten Zeit-Stellens*/
						ULONG		last_xbs;	/* Zeit des letzten Zeit-Stellens*/
						DCF_PORT	port;			/* Benutzter DCF-Port				*/
						BOOLEAN	quick_set;	/* Schnelles Setzen beim Start?	*/
						WORD		last_err;	/* Nummer des letzten Fehlers		*/
						ULONG		time_err;	/* _hz_200 des letzten Fehlers	*/
						BOOLEAN	boot_text;	/* Gespraechigkeit beim Booten	*/
					} DCF77;

/* Fehler-Nummern fr last_err:	*/
#define	E_GENERAL		0x1				/* Allgemeiner Fehler				*/
#define	E_FRAME			0x2				/* Fehler im Zeittelegramm			*/
#define	E_PARITY			0x3				/* Parity-Fehler im Telegramm		*/
#define	E_S_SHORT		0x4				/* Signal zu kurz						*/
#define	E_S_LONG			0x5				/* Signal zu lang						*/
#define	E_P_SHORT		0x6				/* Pause zu kurz						*/
#define	E_P_LONG			0x7				/* Pause zu lang						*/
#define	E_P_NOVAL		0x8				/* Pause hat falsche Lnge			*/
