Dec 272017
Call NIST and set your clock to within a zillion-billionth of a second. COM1/2 only.
File NISTSET2.ZIP from The Programmer’s Corner in
Category Communications
Call NIST and set your clock to within a zillion-billionth of a second. COM1/2 only.
File Name File Size Zip Size Zip Type
NISTSET.COM 1310 1021 deflated
NISTSET.DOC 7356 3283 deflated

Download File NISTSET2.ZIP Here

Contents of the NISTSET.DOC file


by Joe Terwilliger

For revision notices see end of document

There are probably quite a few other programs out there which will
do this same thing as this, but so far I haven't seen anything this compact
with as many features. What with the Olympics going on and all I figured
I'd might as well set a record too. (Jt 2/14/92)


NISTSET will call the National Institute of Standards and Technology and
get the latest time and update your system clock IMMEDIATELY. Due to
processor speeds and whatnot you will likely lose a few nanoseconds, but for
crying out loud, TECHNICALLY the actual time is different at each minute in
longitude around the world, but hey, we have to have SOME consistency, right?

NISTSET does not set the date. I leave this task up to you - buy a calendar.

There are quite a few parameters available for NISTSET, but first there is
one requirement:

You must have a Hayes compatible type modem with at least 300 baud capacity
(ooooh, scary!) ie, your modem must utilize the AT command set. The
default speed setting is 1200 baud. If you ARE using a 300 baud modem
be sure to use the /3 parameter when running the program.


The default settings are:

1200 baud on COM1: (parity and bits are set automatically)
Touch Tone Dialing
Long Distance, Out-of-State call.
Set to Eastern Standard Time.


There are a few command line parameters for operating NISTSET on different
machines and in different areas. The command line structure is as follows
(all parameters are optional)

NISTSET COMn: /3 /UTC n /P /L /T /AT initstring

COMn: Change this only if you are using another com port other than

/3 Changes baud rate to 300.

/UTC n Changes your Universal Time Coordinate. The time received
from NIST will be in UTC (previously GMT - Greenwich Mean Time)
The adjustments can range from 1 to 10 which will be SUBTRACTED
from the UTC value. Since this program will only currently run
work in countries using the US area code format (ie, Canada, Mexico,
etc...) I have only accounted for UTC adjustments in that area (1 to
10 - hey, I just said that) Here are some common UTC adjustments:

Code Locale

1 Canary Islands
2 Atlantic Ocean
3 Greenland / Rio
4 Dominican Republic / Canadian Maritimes
9 Alaska
10 Hawaii

The default setting once again is USA Eastern Standard Time

/P This sends an ATDP command to the modem before sending the
phone number instead of ATDT. Non-technically that means it dials
PULSE. Again, you must have a Hayes compatible modem to do this.

/T If you live within the 303 area code, use this to dial Toll to
NIST (with a 1- prefix).

/L Use this if you live in the 303 area code and the /T doesn't
seem to be working. (This dials the number locally)

/AT initstring
If you wish to Initialize the modem replace initstring with
your commands. You MUST seperate /AT and the string with a space
and you must terminate the string with a space unless it is the last
command on the line. Do not start the string with AT as it is
sent automatically.

For a quick list of parameters type NISTSET /?.


At any time during the dialing or connection before the computer has received
the time, you may press ESC to abort the program. If it has connected NISTSET
will attempt to send +++ then ATH to hangup. If your modem is still cooking
after doing this than it didn't quite manage to hang up and you'll have to do
it yourself (shut off your computer or just your modem if it's external).


There is a problem with the IBM BIOS command INT 14h that it requires a
proper response from the com port before it will send ANY data down the line.
If the Carrier Detect is enabled on your modem or the Data Set Ready is
enabled then you will get a time out error. There is a way to avoid this -
by using direct IN and OUT statements to the COM port - however in an effort
to keep this program small and to save me some time, I haven't incorporated
these methods within the program. If you ARE having a time out problem with
the program then you can use the other enclosed program - AT.COM - to set
your CD and DSR off. For Hayes compatible 2400 style modems enter the
following at the DOS prompt: AT &C0&D0. I don't know the commands for
1200 or 300 baud modems; check your manual. The easiest way to reset the
parameters is to issue an AT Z and/or AT &F command to your modem. 99% of
the time this will work.
FYI, I am not issuing a faulty or 'buggy' program here, these errors are
problems with your MODEM which you have to correct yourself (if indeed you
are getting a time-out error).

This is the first ever version of NISTSET. I have tested it out as many ways
as I could think of, but still I offer NO guarantees that it will work
perfectly or at all. The author (that's me) takes NO responsibility for any
damage - good or evil - that this program may inflict on your system.
However, the author wishes to assure you that he would never do ANYTHING like
that intentionally unless you drive a Yugo. In keeping with good ShareWare
standards the author would also like to invite any bug reports or suggestions
for improvements be sent to him at the address listed below.

If indeed you did find this program useful for setting your VCR clock
accurately or assuring your boss that you were NOT late, but that HIS watch is
off, then please consider registering your version of NISTSET. It's only $5
and if you do, the author will provide you with a receipt and written
notification of any future releases or improvements to the program which will
be upgradable for FREE.

For $20 I will send a printed copy of the source code for the latest version
of NISTSET AND register you as an owner of NISTSET.

Send anything and everything (except complaints - see below) to:

Joe Terwilliger
RR1 Box 5880
Sebago Lake, ME 04075

If you have a complaint, please write in red crayon on a 3x5 card, and give it
to your local grocer. He'll know what to do with it.



Added compensation for DST during the summer months (oops!) Since this is
now automatically detected depending on codes received from NIST, do NOT
adjust the UTC code to compensate manually! It's not like the world will
end if you do though, your time will just be an hour off...

Added minor error detection routine. It's good if you have your modem set
to ignore the DTR (data terminal ready) and CD (carrier detect) and you
won't get this message.


Changed /AT command parameters to shorten program length. The /AT switch must
now be the LAST switch on the command line.

 December 27, 2017  Add comments

Leave a Reply