Log inRegister an accountBrowse CSDbHelp & documentationFacts & StatisticsThe forumsAvailable RSS-feeds on CSDbSupport CSDb Commodore 64 Scene Database
You are not logged in - nap
CSDb User Forums


Forums > C64 Coding > C64 Clock/Time routine
2009-02-04 00:40
SIDWAVE
Account closed

Registered: Apr 2002
Posts: 2238
C64 Clock/Time routine

Houston we have a problem!

About all clocks i have seen on C64, run too slow.

More specificly i am annoyed with SDI music tracker, and PSID64 clocks.

They run too slow!

If they play music for 4 minutes, they will claim they only played like 3:41 or so.

So my question is:

Are the coders on the wrong path, or is the C64 ?
 
... 23 posts hidden. Click here to view all posts....
 
2009-02-06 08:56
JackAsser

Registered: Jun 2002
Posts: 2014
Quote: oh noes.. I just remembered that the SX-64 has 60Hz TOD ONLY!

This means that even if you detect a PAL SX-64 correctly as PAL, you still end up gaining roughtly 10 seconds every minute if you set $DC0E bit 7 to 1 (50Hz)

So how does one properly detect an SX-64 if its KERNAL got replaced?

Seems to me like you have to "measure" the time of the TOD to be sure if its 50 or 60Hz clocked :(



Not that my detection routine solves that issue... :)
2009-02-06 09:49
Devia

Registered: Oct 2004
Posts: 401
heh.. appreciate your efforts, but no, that doesn't really solve the problem ;-)

2009-02-06 10:08
yago

Registered: May 2002
Posts: 333
Quote: TOD is more than good enough to measure 4 minutes accuratly

Unfortunately, no.
While playing around with TOD, i sent my testprg around the world, and in some places,where power-frequency ought to be 50Hz, it was 60Hz.
(On many places, the difference was smaller, but on many the clock will go wrong after 4 minutes)

With other Words: Its 2009, Power Companies deliver worse Quality then ever.
2009-02-06 11:35
Devia

Registered: Oct 2004
Posts: 401
Hmm.. yeah.. so unless you have a xtal generating the TOD clk, like in the SX-64, you're at the mercy of your local power company in regards to TOD precision.

So the conlusion must be that TOD is reliable only under controlled circumstances and is definately not to be relied on in all cases.

That sux.


2009-02-06 13:04
yago

Registered: May 2002
Posts: 333
Dont be so negative!
TOD can be used to measure quality of power!
;-)
2009-02-06 18:29
chatGPZ

Registered: Dec 2001
Posts: 11386
Quote:
and in some places,where power-frequency ought to be 50Hz, it was 60Hz.


seriously, if that is the case you have a much bigger problem than a clock that doesnt work right :)

you can be pretty sure that there is no problem all over europe, and all over the usa (both unified power nets, which makes it kinda impossible that frequencies are not what you expect).

also i kinda doubt it, a broken pal/ntsc detection is much more likely :) what country would that be that has "wrong" power frequency? (and after reading devias post: were sx-64s involved?).

seriously, the power frequency beeing wrong is... something you might experience in a handful 3rd world countries that dont have unified power nets. anywhere else.... no.
2009-02-08 00:36
Devia

Registered: Oct 2004
Posts: 401
ha HA!

I found a solution..

To properly initialize the TOD on any platform(*) do this:

1. Detect PAL/NTSC
2. If PAL, set 60Hz, else set 50Hz TOD
3. Wait for more than 5 and less than 6 frames
4. If $DC08 == 1, set 60Hz, else set 50Hz TOD

This method should work on PAL and NTSC with both 50Hz and 60Hz clocked TODs.

(*) - Well.. any platform but Vice apparently. Vice seems to ignore bit 7 of $DC0E, so it will always be correct ;)

I don't have any NTSC machines, so if there's someone out there with an NTSC c64 who wants to test this, please PM me.
2009-02-09 08:44
Devia

Registered: Oct 2004
Posts: 401
uh oh.. In regards to Step 3 above, you'd of course have to first synchronize the raster to the Power Plant's net frequency or you'd have a slack factor of up to almost 1 frame +/-... this is of course also easily achieved by doing a simple lda $dc08, cmp #nextval, bne *-5 or similar..

yes.. a code example of all this will be published at codebase64.or once it's done and verified.. but I need an NTSC tester!!!
2009-02-09 09:55
Frantic

Registered: Mar 2003
Posts: 1648
Quote: uh oh.. In regards to Step 3 above, you'd of course have to first synchronize the raster to the Power Plant's net frequency or you'd have a slack factor of up to almost 1 frame +/-... this is of course also easily achieved by doing a simple lda $dc08, cmp #nextval, bne *-5 or similar..

yes.. a code example of all this will be published at codebase64.or once it's done and verified.. but I need an NTSC tester!!!


@Devia: Good boy! ;)
2009-02-13 01:08
Devia

Registered: Oct 2004
Posts: 401
Ok, I found another solution which was way easier to implement and added some info on it here: http://codebase64.org/doku.php?id=base:initialize_tod_clock_on_..

You'll also find a link to a binary there, which you can test your REAL c64s with. I still would like just a single report on the behaviour on NTSC machines.

Previous - 1 | 2 | 3 | 4 - Next
RefreshSubscribe to this thread:

You need to be logged in to post in the forum.

Search the forum:
Search   for   in  
All times are CET.
Search CSDb
Advanced
Users Online
Thierry
Urban Space Cowboy
Meikel aka ZUX/Sparks
E$G/HF ⭐ 7
Guests online: 136
Top Demos
1 Next Level  (9.7)
2 13:37  (9.7)
3 Mojo  (9.7)
4 Coma Light 13  (9.6)
5 Edge of Disgrace  (9.6)
6 What Is The Matrix 2  (9.6)
7 The Demo Coder  (9.6)
8 Uncensored  (9.6)
9 Comaland 100%  (9.6)
10 Wonderland XIV  (9.6)
Top onefile Demos
1 No Listen  (9.6)
2 Layers  (9.6)
3 Cubic Dream  (9.6)
4 Party Elk 2  (9.6)
5 Copper Booze  (9.6)
6 X-Mas Demo 2024  (9.5)
7 Dawnfall V1.1  (9.5)
8 Rainbow Connection  (9.5)
9 Onscreen 5k  (9.5)
10 Morph  (9.5)
Top Groups
1 Performers  (9.3)
2 Booze Design  (9.3)
3 Oxyron  (9.3)
4 Censor Design  (9.3)
5 Triad  (9.3)
Top Graphicians
1 Mirage  (9.8)
2 Archmage  (9.7)
3 Pal  (9.6)
4 Carrion  (9.6)
5 Sulevi  (9.6)

Home - Disclaimer
Copyright © No Name 2001-2024
Page generated in: 0.054 sec.