tag:blogger.com,1999:blog-1450941121960653488.post6833594892729642982..comments2023-01-09T11:24:42.367-08:00Comments on Retro Tinker: Marking TimeJohn W. Linvillehttp://www.blogger.com/profile/06733985097169878581noreply@blogger.comBlogger1125tag:blogger.com,1999:blog-1450941121960653488.post-20897950941553395832014-06-25T10:06:27.850-07:002014-06-25T10:06:27.850-07:00Not so much these days, but in the earlier days of...Not so much these days, but in the earlier days of PCs, PCs had notoriously bad clocks built in. I once came across an MS DOS program that addressed the bad clock issues, and the solution was actually pretty cool. Basically, you'd install the program, and for the first week or two, you would adjust the clock once a day or so while the program was in "learn" mode. After a week of you manually adjusting the clock each day the program would have a good idea of how much drift (and what direction, fast or slow... usually slow), and would then "take over" adjusting the clock. At that point, say it needed to make up 5 minutes per day (which was about how bad our clocks were). The program would then proceed to adjust the clock spreading out the adjustment over the day. For example, 5 minutes is 300 seconds, 300 seconds / 24 hours = 12.5 seconds per hour, or about .2 seconds per minute. So it would probably adjust 1 second every 5 minutes or so. This worked really well and the clocks would stay accurate for weeks or months rather than a couple of days. I wrote a clock program not that long ago for the CoCo using BASIC and the timer function, and you're right, it was horrendously poor at keeping time, to the tune of about 10 minutes per hour. I bet a similar drift compensation program for the CoCo could yield similar results. The system I worked on was a POS system for a pizza shop, and it had a server with 5 other computers networked to the server. A make line station to display incoming orders, 3 order taking stations, and a dispatch station for drivers. These stations communicated with the server where the customer database was kept, and I think the constant communication between stations and the server were the cause because those old school network cards would halt the PC CPU while communicating with the servers.<br /><br />John LauryJohn Laury https://www.blogger.com/profile/02211207675742541182noreply@blogger.com