Hi,
Not sure if I should write here or in Hardware forum, however as I've done my tests in Basic on OpenMSX ... this could also be a SW "feature".
I wrote a PSG tester (in Basic) - originally because my NMS8255 still seems to have some mixing issues with it's internal PSG, and I need to troubleshoot it a bit - but I got a bit (a lot) carried away.
Now in many places it is told that the PSG produces sound according to formula:
value = Fi / (16 * Freq)
where Fi is the internal frequency (1789772.5 Hz according to the Wiki on the MSX), Freq is the frequency produced and value is the value in the register. This is mentioned in the Wiki on this page where the Basic sound command is mentioned and elsewhere.
Now what happens when the register value is near zero? I can not find this information anywhere! Not even the application manuals I can find are clear on this. With the sound channels the frequency will be outside hearing range of human beings (maybe the analog circuits still can produce the sound, maybe not, an oscilloscope could tell) but with the noise generator I can hear the sound produced if I type:
sound6,0 sound6,1
(with mixing mask etc. set so that one can hear the noise from some/one of the channels)
I can definitely hear a definite difference with these settings. So 0 and 1 are handled differently by the PSG! Although, according to the documentation I've found, 0 should result in "division by zero" in the PSG - so it must handle it somehow. It is not replacing it by 1 (since I can hear a difference), or Basic is doing something behind my back?
I should mention I made these test with OpenMSX (I'm assuming it's emulation is accurate enough, though must admit haven't tried on real hardware).
Anyone have any idea, what is happening at frequence register = 0 value?
p.s. As a sidenote, I've noticed I can not read or write PSG registers (with OpenMSX) with OUT&hFA0,7:OUT&HF1,&b000000:INP(&HF2) - only sometimes the values are actually written, sometimes they aren't, and reading also works only sometimes. Any idea, why?

In the sidenote:
.
(though, I didn't mean to test the noise, I wanted to test volume levels - but that's another issue).