1             3 6 6 6 6 6                                                                   7                               Additional Hardware addendum to TimeServ documentation

This document describes support for hardware not covered in the main documentation.  It often requires you to add a new "type=" line in timeserv.ini, and sometimes requires other initialization.  Feel free to report bugs and comments, but this should be considered unsupported.  Note many of these types were added in later versions, so be careful only to use the newest version of TimeServ.

Type=bc620AT specifies to get the time from this Bancomm ISA board (or the bc627AT).  It requires the device driver (see below).  The bc627AT is well tested; the bc620AT assumes that the timecode is UTC unless a local offset is programmed and is less tested.

Type=bc630AT specifies to get the time from this Bancomm ISA board.  The code is untested.  It requires the device driver (see below) and assumes that the timecode is local (not UTC).

Type=PCLTC specifies to get the time from Adrienne Electronics Corp.'s PC-LTC/IOR ISA board.  It requires the device driver (see below).  This board reads longitudnal video time code.  The code attempts to support both SMPTE and EBU, drop-frame or non-drop-frame.  Additional parameters relating to this type are FPS=25 | 30, to specify frames per second as EBU or SMPTE, Local=yes | no to specify whether the timecode is local or UTC, and LocalOffset=x (where x is a positive or negative number of hours) to specify non-UTC timecode which is not from the same timezone (for example, LocalOffset=-3 means use an Eastern timezone generator for a PC in the Pacific timezone).  Note that this type sets only the time, not the date.  The code was mainly tested by a customer.

Type=PCSG2 specifies to get the time from TrueTime's PC-SG2 or GPS-PC ISA board.  It requires the device driver (see below).  The configuration of the board can be set up using MS-DOS if necessary.  Ideally the "local offset" of GPS-PC should be set to 0; TimeServ can automatically use the time zone from Windows NT.  If a "local offset" is programmed for the GPS-PC, it must be the same time zone (and DST settings) as specified in the normal Windows NT Control Panel.  For non-GPS PC-SG2 (IRIG),  the input is assumed to be UTC unless the user adds a line "local=yes" to their TimeServ.ini file (in which case the time zone and DST settings must match Windows NT settings).  The code has only a small amount of testing.

Type=Atomic specifies to use a 1PPS signal hooked to the Carrier Detect pin of a serial port to round the time to the nearest second.  Of course this requires that the time be set to within a half-second by some other method.  This code has only a small amount of testing.

Type=AMDAT specifies to use the ADC-60 MSF/DCF77 receiver.  The code was tested only by a customer.

Type=MOBATIME specifies to use the IF482 Mobaline DCF77 receiver.  The code was tested only by a customer.

Type=Radiocode specifies to use Radiocode Clock Ltd's Type 2 format from a variety of receivers.  It should be set to 9600 baud, 1 stop bit, and not the automatic once-per-second.  This code was tested only by a customer, using the RCC-8000 MSF receiver.

Type=NMEA specifies to use the NMEA "ZDA" sentence from a device such as a GPS, at 4800 baud.

Supplemental instructions for using TimeServ with board level (ISA) devices
In order for Windows NT to access I/O ports, a device driver is necessary.  For the purposes of TimeServ, it is easiest to use a sample device driver from the DDK, called PortIO or GenPort.  Like an exe or dll, there is a different file (genport.sys) for each processor architecture.  The driver takes two parameters - the base port, and the number of addresses.  For example, the default might be port 300h for 10h addresses for the bc62xAT and bc630AT, or port 320h for 20h addresses for the PC-SG2, or port 2A0 for 10h addresses for the PC-LTC/IOR.

To obtain the driver and data files, use "pkunzip genport.zip -d"

To install the driver, be logged on with administrator privileges and copy genport.sys (for the appropriate processor architecture) to your %SystemRoot%\system32\drivers directory.  Next, you must create certain registry entries.  Be careful to follow the instructions exactly, because the registry is vital to the operation of Windows NT and the Registry Editor is powerful.

File-Run-REGEDT32 (or Start-Run if using the new Shell).
You should see four windows open on within REGEDT32.
Select the window titled HKEY_LOCAL_MACHINE on Local Machine.
Next you will double-click on a number of "keys" to expand down a tree:
First double-click on SYSTEM, then CurrentControlSet, and then Services.
Now use the Edit menu and select Add Key.
In the dialog box, type GenPort and then press the enter key (or OK).
Next, scroll down using the down-arrow key until GenPort is highlighted.
Now use the Registry menu and select Restore...
Enter the filename G30010.REG for the default bc62xAT or bc620AT (port 300, length 10),
or the filename G32020.REG for the default PC-SG2 (port 320, length 20), or the filename G2A010.REG for the default PC-LTC/IOR (port 2A0, length 10).
After pressing the enter key (or OK), you will get a warning popup.
If you are sure that you had highlighted (selected) GenPort, press Yes.
If you need to specify a different base port, it is fairly easy to follow the above steps, then double-click on GenPort, double-click on Parameters, then double-click on the line to the right which says IoPortAddress.  You can then enter a new value (in hex) and press the enter key (or OK).
Finally, use the Registry menu and select Exit.
Now shutdown/reboot the machine, and the device driver should automatically start (watch for any error).

If you attempt to run TimeServ with type=bc62xAT or =bc630AT or =PCSG2 or =PCTLC without the above steps, you should get an error message stating that TimeServ was unable to open the I/O driver.  Another way to verify that the driver installed/started correctly is to use Control Panel-Devices, and scroll down to the entry for GenPort (which should say Started  Automatic).  You can use the Startup button to disable the driver if necessary at some future point.
settings).  The code has only a small amount of testing.

Type=Atomic specifies to use    /
  w |
  r   n i-@  >^-    T^_U  Tuz^  z^b^`^Z^   x^*g	z^?  g	 r'              C  E  I  K        
  	  	  
  
  \  ^              -
  /
  |
          e  g        _        e                9  j          g        _        e             Arial   at from a variety of receivers.  It should be set to 9600 baud, 1 stop bit, and not the automatic once-per-second. 