1132451Sroberto<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2132451Sroberto
3132451Sroberto<html>
4132451Sroberto
5182007Sroberto	<head>
6182007Sroberto		<meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
7182007Sroberto		<meta name="generator" content="HTML Tidy, see www.w3.org">
8182007Sroberto		<title>NTP PARSE clock data formats</title>
9182007Sroberto		<link href="scripts/style.css" type="text/css" rel="stylesheet">
10182007Sroberto	</head>
11132451Sroberto
12182007Sroberto	<body>
13182007Sroberto		<h3>NTP PARSE clock data formats</h3>
14182007Sroberto		<p>The parse driver currently supports several clocks with different query mechanisms. In order for you to find a sample that might be similar to a clock you might want to integrate into parse I'll sum up the major features of the clocks (this information is distributed in the parse/clk_*.c and ntpd/refclock_parse.c files).</p>
15280849Scy<p>Last update:
16280849Scy  <!-- #BeginDate format:En2m -->21-Oct-2010  23:44<!-- #EndDate -->
17280849Scy    UTC</p>
18182007Sroberto		<hr>
19182007Sroberto		<h4>Meinberg clocks</h4>
20182007Sroberto		<pre>
21132451SrobertoMeinberg: start=&lt;STX&gt;, end=&lt;ETX&gt;, sync on start
22132451Sroberto      pattern=&quot;\2D:  .  .  ;T: ;U:  .  .  ;    \3&quot;
23132451Sroberto      pattern=&quot;\2  .  .  ;  ;   :  :  ;        \3&quot;
24132451Sroberto      pattern=&quot;\2  .  .  ;  ;   :  :  ;    :  ;        ;   .         .       &quot;
25132451Sroberto</pre>
26182007Sroberto		<p>Meinberg is a German manufacturer of time code receivers. Those clocks have a pretty common output format in the stock version. In order to support NTP Meinberg was so kind to produce some special versions of the firmware for the use with NTP. So, if you are going to use a Meinberg clock please ask whether there is a special Uni Erlangen version. You can reach <a href="http://www.meinberg.de/">Meinberg</a> via the Web. Information can also be ordered via eMail from <a href="mailto:%20info@meinberg.de">info@meinberg.de</a></p>
27182007Sroberto		<p>General characteristics:<br>
28182007Sroberto			Meinberg clocks primarily output pulse per second and a describing ASCII string. This string can be produced in two modes: either upon the reception of a question mark or every second. NTP uses the latter mechanism. DCF77 AM clocks have a limited accuracy of a few milliseconds. The DCF77 PZF5xx variants provide higher accuracy and have a pretty good relationship between RS232 time code and the PPS signal. Except for early versions of the old GPS166 receiver type, Meinberg GPS receivers have a very good timing relationship between the datagram and the pulse. The beginning of the start bit of the first character has basically the same accuracy as the PPS signal, plus a jitter of up to 1 bit time depending on the selected baud rate, i.e. 52 &mu;s @ 19200. PPS support should always be used, if possible, in order to yield the highest possible accuracy.</p>
29182007Sroberto		<p>The preferred tty setting for Meinberg DCF77 receivers is 9600/7E2:</p>
30182007Sroberto		<pre>
31132451Sroberto		CFLAG		(B9600|CS7|PARENB|CREAD|HUPCL)
32132451Sroberto		IFLAG		(IGNBRK|IGNPAR|ISTRIP)
33132451Sroberto		OFLAG		0
34132451Sroberto		LFLAG		0
35132451Sroberto        </pre>
36182007Sroberto		<p>The tty setting for Meinberg GPS16x/17x receivers is 19200/8N1:</p>
37182007Sroberto		<pre>
38132451Sroberto		CFLAG		(B19200|CS8|PARENB|CREAD|HUPCL)
39132451Sroberto		IFLAG		(IGNBRK|IGNPAR|ISTRIP)
40132451Sroberto		OFLAG		0
41132451Sroberto		LFLAG		0
42132451Sroberto        </pre>
43182007Sroberto		<p>All clocks should be run at datagram once per second.<br><br></p>
44182007Sroberto		<p>Format of the Meinberg standard time string:</p>
45182007Sroberto<pre>
46182007Sroberto        <b><i>&lt;STX&gt;</i>D:<i>dd.mm.yy</i>;T:<i>w</i>;U:<i>hh.mm.ss</i>;<i>uvxy</i><i>&lt;ETX&gt;</i></b>
47182007Sroberto    pos:  0  000000001111111111222222222233  3
48182007Sroberto          1  234567890123456789012345678901  2
49132451Sroberto
50182007Sroberto    <i>&lt;STX&gt;</i>         = start-of-text, ASCII code 0x02
51182007Sroberto    <i>dd.mm.yy</i>      = day of month, month, year of the century, separated by dots
52182007Sroberto    <i>w</i>             = day of week (1..7, Monday = 1)
53182007Sroberto    <i>hh:mm:ss</i>      = hour, minute, second, separated by dots
54182007Sroberto    <i>u</i>             = '#' for GPS receivers: time is <b>not</b> synchronized
55182007Sroberto                           '#' for older PZF5xx receivers: no correlation, not synchronized
56182007Sroberto                           '#' for other devices: never sync'ed since powerup
57182007Sroberto                           ' ' if nothing of the above applies
58182007Sroberto    <i>v</i>             = '*' for GPS receivers: position has <b>not</b> been verified
59182007Sroberto                           '*' for other devices: freewheeling based on internal quartz
60182007Sroberto                           ' ' if nothing of the above applies
61182007Sroberto    <i>x</i>             = 'U' if UTC time is transmitted
62182007Sroberto                           'S' if daylight saving time is active
63182007Sroberto                           ' ' if nothing of the above applies
64182007Sroberto    <i>y</i>             = '!' during the hour preceding start or end of daylight saving time
65182007Sroberto                           'A' during the hour preceding a leap second
66182007Sroberto                           ' ' if nothing of the above applies
67182007Sroberto    <i>&lt;ETX&gt;</i>         = end-of-text, ASCII code 0x03
68132451Sroberto</pre>
69182007Sroberto		<p>Format of the Uni Erlangen time string for PZF5xx receivers:</p>
70182007Sroberto<pre>
71182007Sroberto        <b><i>&lt;STX&gt;</i><i>dd.mm.yy</i>; <i>w</i>; <i>hh:mm:ss</i>; <i>tuvxyza</i><i>&lt;ETX&gt;</i></b>
72182007Sroberto    pos:  0  000000001111111111222222222233  3
73182007Sroberto          1  234567890123456789012345678901  2
74182007Sroberto
75182007Sroberto    <i>&lt;STX&gt;</i>         = start-of-text, ASCII code 0x02
76182007Sroberto    <i>dd.mm.yy</i>      = day of month, month, year of the century, separated by dots
77182007Sroberto    <i>w</i>             = day of week (1..7, Monday = 1)
78182007Sroberto    <i>hh:mm:ss</i>      = hour, minute, second, separated by colons
79182007Sroberto
80182007Sroberto    <i>t</i>             = 'U' if UTC time is transmitted, else ' '
81182007Sroberto    <i>u</i>             = '#' for older PZF5xx receivers: no correlation, not synchronized
82182007Sroberto                           '#' for PZF511 and newer: never sync'ed since powerup
83182007Sroberto                           ' ' if nothing of the above applies
84182007Sroberto    <i>v</i>             = '*' if freewheeling based on internal quartz, else ' '
85182007Sroberto    <i>x</i>             = 'S' if daylight saving time is active, else ' '
86182007Sroberto    <i>y</i>             = '!' during the hour preceding start or end of daylight saving time, else ' '
87182007Sroberto    <i>z</i>             = 'A' during the hour preceding a leap second, else ' '
88182007Sroberto    <i>a</i>             = 'R' alternate antenna (reminiscent of PZF5xx), usually ' ' for GPS receivers
89182007Sroberto    <i>&lt;ETX&gt;</i>         = end-of-text, ASCII code 0x03
90132451Sroberto</pre>
91182007Sroberto		<p>Format of the Uni Erlangen time string for GPS16x/GPS17x receivers:</p>
92182007Sroberto<pre>
93182007Sroberto        <b><i>&lt;STX&gt;</i><i>dd.mm.yy</i>; <i>w</i>; <i>hh:mm:ss</i>; <i>+uu:uu</i>; <i>uvxyzab</i>; <i>ll.lllln</i> <i>lll.lllle</i> <i>hhhh</i>m<i>&lt;ETX&gt;</i></b>
94182007Sroberto    pos:  0  0000000011111111112222222222333333333344444444445555555555666666  6
95182007Sroberto          1  2345678901234567890123456789012345678901234567890123456789012345  6
96182007Sroberto
97182007Sroberto    <i>&lt;STX&gt;</i>         = start-of-text, ASCII code 0x02
98182007Sroberto    <i>dd.mm.yy</i>      = day of month, month, year of the century, separated by dots
99182007Sroberto    <i>w</i>             = day of week (1..7, Monday = 1)
100182007Sroberto    <i>hh:mm:ss</i>      = hour, minute, second, separated by colons
101182007Sroberto    <i>+uu:uu</i>        = offset to UTC in hours and minutes, preceded by + or -
102182007Sroberto    <i>u</i>             = '#' if time is <b>not</b> synchronized, else ' '
103182007Sroberto    <i>v</i>             = '*' if position has <b>not</b> been verified, else ' '
104182007Sroberto    <i>x</i>             = 'S' if daylight saving time is active, else ' '
105182007Sroberto    <i>y</i>             = '!' during the hour preceding start or end of daylight saving time, else ' '
106182007Sroberto    <i>z</i>             = 'A' during the hour preceding a leap second, else ' '
107182007Sroberto    <i>a</i>             = 'R' alternate antenna (reminiscent of PZF5xx), usually ' ' for GPS receivers
108182007Sroberto    <i>b</i>             = 'L' during a leap second, i.e. if the seconds field is 60, else ' '
109182007Sroberto    <i>ll.lllln</i>      = position latitude in degrees, 'n' can actually be 'N' or 'S', i.e. North or South
110182007Sroberto    <i>lll.lllle</i>     = position longitude in degrees, 'e' can actually be 'E' or 'W', i.e. East or West
111182007Sroberto    <i>hhhh</i>          = position altitude in meters, always followed by 'm'
112182007Sroberto    <i>&lt;ETX&gt;</i>         = end-of-text, ASCII code 0x03
113132451Sroberto</pre>
114182007Sroberto		<p>Examples for Uni Erlangen strings from GPS receivers:</p>
115182007Sroberto<pre>
116182007Sroberto        \x02 09.07.93; 5; 08:48:26; +00:00;        ; 49.5736N  11.0280E  373m \x03
117182007Sroberto        \x02 08.11.06; 3; 14:39:39; +00:00;        ; 51.9828N   9.2258E  176m \x03
118182007Sroberto</pre>
119182007Sroberto		<p>The Uni Erlangen formats should be used preferably. Newer Meinberg GPS receivers can be configured to transmit that format, for older devices there may be a special firmware version available.</p>
120182007Sroberto		<p>For the Meinberg parse look into clk_meinberg.c<br><br></p>
121182007Sroberto		<hr>
122182007Sroberto		<h4>Raw DCF77 Data via serial line</h4>
123182007Sroberto		<p>RAWDCF: end=TIMEOUT&gt;1.5s, sync each char (any char),generate psuedo time codes, fixed format</p>
124182007Sroberto		<p>direct DCF77 code input</p>
125182007Sroberto		<p>In Europe it is relatively easy/cheap the receive the german time code transmitter DCF77. The simplest version to process its signal is to feed the 100/200ms pulse of the demodulated AM signal via a level converter to an RS232 port at 50Baud. parse/clk_rawdcf.c holds all necessary decoding logic for the time code which is transmitted each minute for one minute. A bit of the time code is sent once a second.</p>
126182007Sroberto		<pre>
127132451Sroberto	The preferred tty setting is:
128132451Sroberto		CFLAG           (B50|CS8|CREAD|CLOCAL)
129132451Sroberto		IFLAG		0
130132451Sroberto		OFLAG		0
131132451Sroberto 		LFLAG		0
132132451Sroberto</pre>
133182007Sroberto		<h4>DCF77 raw time code</h4>
134182007Sroberto		<p>From &quot;Zur Zeit&quot;, Physikalisch-Technische Bundesanstalt (PTB), Braunschweig und Berlin, M&auml;rz 1989<br>
135182007Sroberto		</p>
136182007Sroberto		<p>Timecode transmission:</p>
137182007Sroberto		<pre>
138132451Sroberto	AM:
139132451Sroberto
140132451Sroberto	time marks are send every second except for the second before the
141132451Sroberto	next minute mark
142132451Sroberto	time marks consist of a reduction of transmitter power to 25%
143132451Sroberto	of the nominal level
144132451Sroberto	the falling edge is the time indication (on time)
145132451Sroberto	time marks of a 100ms duration constitute a logical 0
146132451Sroberto	time marks of a 200ms duration constitute a logical 1
147132451Sroberto</pre>
148182007Sroberto		<p>see the spec. (basically a (non-)inverted psuedo random phase shift) encoding:</p>
149182007Sroberto		<pre>
150132451Sroberto	FM:
151132451Sroberto
152132451Sroberto	Second	Contents
153132451Sroberto	0  - 10	AM: free, FM: 0
154132451Sroberto	11 - 14	free
155132451Sroberto	15		R     - alternate antenna
156132451Sroberto	16		A1    - expect zone change (1 hour before)
157132451Sroberto	17 - 18	Z1,Z2 - time zone
158132451Sroberto		 0  0 illegal
159132451Sroberto		 0  1 MEZ  (MET)
160132451Sroberto		 1  0 MESZ (MED, MET DST)
161132451Sroberto		 1  1 illegal
162182007Sroberto	19	A2    - expect leap insertion/deletion (1 hour before)
163182007Sroberto	20	S     - start of time code (1)
164132451Sroberto	21 - 24	M1    - BCD (lsb first) Minutes
165132451Sroberto	25 - 27	M10   - BCD (lsb first) 10 Minutes
166182007Sroberto	28	P1    - Minute Parity (even)
167132451Sroberto	29 - 32	H1    - BCD (lsb first) Hours
168182007Sroberto	33 - 34	H10   - BCD (lsb first) 10 Hours
169182007Sroberto	35	P2    - Hour Parity (even)
170132451Sroberto	36 - 39	D1    - BCD (lsb first) Days
171132451Sroberto	40 - 41	D10   - BCD (lsb first) 10 Days
172132451Sroberto	42 - 44	DW    - BCD (lsb first) day of week (1: Monday -&gt; 7: Sunday)
173182007Sroberto	45 - 49	MO1   - BCD (lsb first) Month
174182007Sroberto	50	MO10  - 10 Months
175132451Sroberto	51 - 53	Y1    - BCD (lsb first) Years
176132451Sroberto	54 - 57	Y10   - BCD (lsb first) 10 Years
177182007Sroberto	58 	P3    - Date Parity (even)
178182007Sroberto	59	      - usually missing (minute indication), except for leap insertion
179132451Sroberto</pre>
180182007Sroberto		<hr>
181182007Sroberto		<h4>Schmid clock</h4>
182182007Sroberto		<p>Schmid clock: needs poll, binary input, end='\xFC', sync start</p>
183182007Sroberto		<p>The Schmid clock is a DCF77 receiver that sends a binary time code at the reception of a flag byte. The contents if the flag byte determined the time code format. The binary time code is delimited by the byte 0xFC.</p>
184182007Sroberto		<pre>
185132451Sroberto	TTY setup is:
186132451Sroberto		CFLAG		(B1200|CS8|CREAD|CLOCAL)
187132451Sroberto		IFLAG		0
188132451Sroberto		OFLAG		0
189132451Sroberto 		LFLAG		0
190132451Sroberto
191132451Sroberto</pre>
192182007Sroberto		<p>The command to Schmid's DCF77 clock is a single byte; each bit allows the user to select some part of the time string, as follows (the output for the lsb is sent first).</p>
193182007Sroberto		<pre>
194132451Sroberto	Bit 0:	time in MEZ, 4 bytes *binary, not BCD*; hh.mm.ss.tenths
195132451Sroberto	Bit 1:	date 3 bytes *binary, not BCD: dd.mm.yy
196132451Sroberto	Bit 2:	week day, 1 byte (unused here)
197132451Sroberto	Bit 3:	time zone, 1 byte, 0=MET, 1=MEST. (unused here)
198132451Sroberto	Bit 4:	clock status, 1 byte,	0=time invalid,
199132451Sroberto					1=time from crystal backup,
200132451Sroberto					3=time from DCF77
201132451Sroberto	Bit 5:	transmitter status, 1 byte,
202132451Sroberto					bit 0: backup antenna
203132451Sroberto					bit 1: time zone change within 1h
204132451Sroberto					bit 3,2: TZ 01=MEST, 10=MET
205132451Sroberto					bit 4: leap second will be
206132451Sroberto						added within one hour
207132451Sroberto					bits 5-7: Zero
208132451Sroberto	Bit 6:	time in backup mode, units of 5 minutes (unused here)
209132451Sroberto</pre>
210182007Sroberto		<hr>
211182007Sroberto		<h4>Trimble SV6 ASCII time code (TAIP)</h4>
212182007Sroberto		<p>Trimble SV6: needs poll, ascii timecode, start='&gt;', end='&lt;', query='&gt;QTM&lt;', eol='&lt;'</p>
213182007Sroberto		<p>Trimble SV6 is a GPS receiver with PPS output. It needs to be polled. It also need a special tty mode setup (EOL='&lt;').</p>
214182007Sroberto		<pre>
215132451Sroberto	TTY setup is:
216132451Sroberto		CFLAG            (B4800|CS8|CREAD)
217132451Sroberto		IFLAG            (BRKINT|IGNPAR|ISTRIP|ICRNL|IXON)
218132451Sroberto		OFLAG            (OPOST|ONLCR)
219132451Sroberto		LFLAG            (ICANON|ECHOK)
220132451Sroberto</pre>
221182007Sroberto		<p>Special flags are:</p>
222182007Sroberto		<pre>		PARSE_F_PPSPPS	    - use CIOGETEV for PPS time stamping
223132451Sroberto		PARSE_F_PPSONSECOND - the time code is not related to
224132451Sroberto				      the PPS pulse (so use the time code
225132451Sroberto				      only for the second epoch)
226132451Sroberto
227132451Sroberto	Timecode
228132451Sroberto	0000000000111111111122222222223333333	/ char
229132451Sroberto	0123456789012345678901234567890123456	\ posn
230132451Sroberto	&gt;RTMhhmmssdddDDMMYYYYoodnnvrrrrr;*xx&lt;	Actual
231132451Sroberto	----33445566600112222BB7__-_____--99-	Parse
232132451Sroberto	&gt;RTM                      1     ;*  &lt; 	Check
233132451Sroberto</pre>
234182007Sroberto		<hr>
235182007Sroberto		<h4>ELV DCF7000</h4>
236182007Sroberto		<p>ELV DCF7000: end='\r', pattern=&quot; - - - - - - - \r&quot;</p>
237182007Sroberto		<p>The ELV DCF7000 is a cheap DCF77 receiver sending each second a time code (though not very precise!) delimited by '`r'</p>
238182007Sroberto		<pre>
239132451Sroberto	Timecode
240132451Sroberto	  YY-MM-DD-HH-MM-SS-FF\r
241132451Sroberto
242132451Sroberto		FF&amp;0x1	- DST
243132451Sroberto		FF&amp;0x2	- DST switch warning
244132451Sroberto		FF&amp;0x4  - unsynchronised
245132451Sroberto</pre>
246182007Sroberto		<hr>
247182007Sroberto		<h4>HOPF 6021 und Kompatible</h4>
248182007Sroberto		<p>HOPF Funkuhr 6021 mit serieller Schnittstelle Created by F.Schnekenbuehl &lt;frank@comsys.dofn.de&gt; from clk_rcc8000.c Nortel DASA Network Systems GmbH, Department: ND250 A Joint venture of Daimler-Benz Aerospace and Nortel.</p>
249182007Sroberto		<pre>
250132451Sroberto hopf Funkuhr 6021 
251132451Sroberto      used with 9600,8N1,
252132451Sroberto      UTC via serial line
253132451Sroberto      &quot;Sekundenvorlauf&quot; ON
254132451Sroberto      ETX zum Sekundenvorlauf ON
255132451Sroberto      dataformat 6021
256132451Sroberto      output time and date
257132451Sroberto      transmit with control characters
258132451Sroberto      transmit evry second
259132451Sroberto </pre>
260182007Sroberto		<p>Type 6021 Serial Output format</p>
261182007Sroberto		<pre>
262132451Sroberto      000000000011111111 / char
263132451Sroberto      012345678901234567 \ position
264132451Sroberto      sABHHMMSSDDMMYYnre  Actual
265132451Sroberto       C4110046231195     Parse
266132451Sroberto      s              enr  Check
267132451Sroberto
268132451Sroberto  s = STX (0x02), e = ETX (0x03)
269132451Sroberto  n = NL  (0x0A), r = CR  (0x0D)
270132451Sroberto
271132451Sroberto  A B - Status and weekday
272132451Sroberto 
273132451Sroberto  A - Status
274132451Sroberto
275132451Sroberto      8 4 2 1
276132451Sroberto      x x x 0  - no announcement
277132451Sroberto      x x x 1  - Summertime - wintertime - summertime announcement
278132451Sroberto      x x 0 x  - Wintertime
279132451Sroberto      x x 1 x  - Summertime
280132451Sroberto      0 0 x x  - Time/Date invalid
281132451Sroberto      0 1 x x  - Internal clock used 
282132451Sroberto      1 0 x x  - Radio clock
283132451Sroberto      1 1 x x  - Radio clock highprecision
284132451Sroberto
285132451Sroberto  B - 8 4 2 1
286132451Sroberto      0 x x x  - MESZ/MEZ
287132451Sroberto      1 x x x  - UTC
288132451Sroberto      x 0 0 1  - Monday
289132451Sroberto      x 0 1 0  - Tuesday
290132451Sroberto      x 0 1 1  - Wednesday
291132451Sroberto      x 1 0 0  - Thursday
292132451Sroberto      x 1 0 1  - Friday
293132451Sroberto      x 1 1 0  - Saturday
294132451Sroberto      x 1 1 1  - Sunday
295132451Sroberto</pre>
296182007Sroberto		<hr>
297182007Sroberto		<h4>Diem Computime Clock</h4>
298182007Sroberto		<p>The Computime receiver sends a datagram in the following format every minute</p>
299182007Sroberto		<pre>   
300132451Sroberto   Timestamp	T:YY:MM:MD:WD:HH:MM:SSCRLF 
301132451Sroberto   Pos          0123456789012345678901 2 3
302132451Sroberto		0000000000111111111122 2 2
303132451Sroberto   Parse        T:  :  :  :  :  :  :  \r\n
304132451Sroberto   
305132451Sroberto   T	Startcharacter &quot;T&quot; specifies start of the timestamp 
306132451Sroberto   YY	Year MM	Month 1-12 
307132451Sroberto   MD	Day of the month 
308132451Sroberto   WD	Day of week 
309132451Sroberto   HH	Hour 
310132451Sroberto   MM   Minute 
311132451Sroberto   SS   Second
312132451Sroberto   CR   Carriage return 
313132451Sroberto   LF   Linefeed
314132451Sroberto</pre>
315182007Sroberto		<hr>
316182007Sroberto		<h4>WHARTON 400A Series Clock with a 404.2 Serial interface</h4>
317182007Sroberto		<p>The WHARTON 400A Series clock is able to send date/time serial messages in 7 output formats. We use format 1 here because it is the shortest. We set up the clock to send a datagram every second. For use with this driver, the WHARTON 400A Series clock must be set-up as follows :</p>
318182007Sroberto		<pre>
319132451Sroberto  					Programmable	Selected
320132451Sroberto  					Option No	Option
321132451Sroberto	BST or CET display		3		9 or 11
322132451Sroberto	No external controller		7		0
323132451Sroberto	Serial Output Format 1		9		1
324132451Sroberto	Baud rate 9600 bps		10		96
325132451Sroberto	Bit length 8 bits		11		8
326132451Sroberto	Parity even			12		E
327132451Sroberto</pre>
328182007Sroberto		<p>WHARTON 400A Series output format 1 is as follows :</p>
329182007Sroberto		<pre>
330132451Sroberto   Timestamp	STXssmmhhDDMMYYSETX
331132451Sroberto   Pos		0  12345678901234
332132451Sroberto  		0  00000000011111
333132451Sroberto  
334132451Sroberto   STX	start transmission (ASCII 0x02)
335132451Sroberto   ETX	end transmission (ASCII 0x03)
336132451Sroberto   ss	Second expressed in reversed decimal (units then tens)
337132451Sroberto   mm	Minute expressed in reversed decimal
338132451Sroberto   hh	Hour expressed in reversed decimal
339132451Sroberto   DD	Day of month expressed in reversed decimal
340132451Sroberto   MM	Month expressed in reversed decimal (January is 1)
341132451Sroberto   YY	Year (without century) expressed in reversed decimal
342132451Sroberto   S	Status byte : 0x30 +
343132451Sroberto		bit 0	0 = MSF source		1 = DCF source
344132451Sroberto		bit 1	0 = Winter time		1 = Summer time
345132451Sroberto		bit 2	0 = not synchronised	1 = synchronised
346132451Sroberto		bit 3	0 = no early warning	1 = early warning
347132451Sroberto</pre>
348182007Sroberto		<hr>
349182007Sroberto		<script type="text/javascript" language="javascript" src="scripts/footer.txt"></script>
350182007Sroberto	</body>
351132451Sroberto
352280849Scy</html>
353