Re: C=Hacking, Issue #20

From: Hársfalvi, Levente (
Date: 2001-04-19 17:08:33



>  That SID digis article is *brilliant*, particularly the stuff about
> the speculative internal workings of the SID chip.

Speaking of that part, thanks for these kind words ;-). BTW, most of them
should go towards Dag Lem, since it's him who got so far with reverse
engineering the SID. Although these analog DC offset measurements and ideas
will probably mean some news for him too, I got the impressions from his ideas
and results. (And BTW, you should see the reSID sources; besides the obvious
things, _so_ much little nuances that probably very few people is determined
enough to collect together (and also implement it to a SID emulator library)).

> How's the plus/4 SND output investigation coming, Levente?

I'm having some problems ;-). I understand what's going on, but I don't know
how the output PWM is controlled. See this example:

The PWM is 16 or 32 dot clock cycles 'long' (depending on the two wave output

For the $b6 $ff11 setting (DC mode, both channels on, volume = 6), the PWM
cycle is 11 high, 5 low cycles constantly.

I wrote a small test program, that first blanks the screen and sets single
clock mode. The program writes two values to $ff11 alternatively, by using an
sta $ff11 stx $ff11 unrolled loop.

When the two values are $86 and $b6, two things can happen, and only depending
on the starting cycle of the unrolled loop:

1: 11 high, 37 low, 11 high, 5 low.
2: 11 high, 5 low, 3 high, 32 low, 8 high, 5 low  :-O

When the values are $80 and $b6, another result comes in:

1: 11 high, 37 low, 11 high, 5 low.
2: 11 high, 24 low, 8 high, 5 low, 11 high, 5 low
3: 11 high, 37 low, 11 high, 5 low.
4: 11 high, 5 low, 3 high, 32 low, 8 high, 5 low 

There must be something with the inner paths, syncing and the whole
construction of the PWM, but I can't come up with a good (matching) model.
What the hell should going on here???

BTW, a similar test gave very strange results with the noise generator too. It
seems like the noise generator also resets just in a certain minute (it is
synced with something), since setting $ff11 bit 7 high didn't always reset it,
when the bit was kept high just for a short period.

That's it - any ideas are welcome, now I'm off.

Best regards,


This message was sent through the cbm-hackers mailing list.
To unsubscribe: echo unsubscribe | mail

Archive generated by hypermail 2.1.1.