Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

How to test SID filters

203 views
Skip to first unread message

Chrom_

unread,
Jun 19, 2009, 2:31:54 PM6/19/09
to
Hi all,

I've recently swapped a faulty SID chip with a good one in one of my
C64. I successfully tested the 3 SID voices with a small basic program
because in this moment I have no means of loading any tape/disk/
cartridge.

Here is the program I used:

10 FORL=54272TO54296:POKEL,0:NEXT:POKE54296,15:GOSUB60
20 POKEW,17:POKEA,9:POKEHF,15:POKELF,35:POKES,128:GOSUB50:GOSUB70
30 POKEW,17:POKEA,9:POKEHF,20:POKELF,40:POKES,128:GOSUB50:GOSUB80
40 POKEW,17:POKEA,9:POKEHF,25:POKELF,50:POKES,128:GOSUB50:GOTO10
50 FORX=1TO2000:NEXTX:RETURN
60 W=54276:A=54277:HF=54273:LF=54272:S=54278:RETURN
70 W=54283:A=54284:HF=54280:LF=54279:S=54285:RETURN
80 W=54290:A=54291:HF=54287:LF=54286:S=54292:RETURN

I was wondering if there's a way to test filters too, maybe by
modifying the program. I wanna be sure that the SID has no faulty
filter.

Thanks for any opinion you wanna share.

Andreas Kohlbach

unread,
Jun 19, 2009, 9:41:07 PM6/19/09
to

I forgot the registers by now, but did play a lot with filters back in
"the years".

By "testing" you can only hear if they would work. Not if they filter as
they are supposed to. And IIRC there were SIDs with slightly different
filters, which you could hear playing the same SID on two different
machines.

Anyway, there are (IIRC, I didn't do it (that too ;-) for quite some time
now) three types of filters. Lowpass, Highpass and Bandpass. And you have
a high- and a lowbyte to control the width. You could trigger one filter
type after the other and change the width via a loop in a Basic program
again.

What the control registers were Google should know.
--
Andreas
My Commodore 64 classic game music page at
http://freenet-homepage.de/ankman/sid.html

Greg King

unread,
Jun 24, 2009, 12:52:04 PM6/24/09
to
"Chrom_" wrote in message...

>
> I've recently swapped a faulty SID chip with a good one in one
> of my C64s. I successfully tested the 3 SID voices with a small
> BASIC program because, at this moment, I have no means of

> loading any tape/disk/cartridge.
>
> Here is the program I used:
> ... (snip) ...

>
> I was wondering if there's a way to test filters too, maybe by
> modifying the program. I wanna be sure that the SID has no faulty
> filter.

You could try a "filter sweep" (it is what happens when guitar players use
"wow-wow" [or, is it "wah-wah," I can't remember] pedals).

Set each voice to play a pulse wave-form (it makes harmonics). Send that
voice through each filter. Use FOR loops to slide ("sweep") the filter's
frequency setting up and down.

Alan Jones

unread,
Jun 24, 2009, 10:16:55 PM6/24/09
to
On Wed, 24 Jun 2009 16:52:04 GMT, "Greg King" <greg....@verizon.net>
wrote:

I did something similar over 20 years ago. I fixed the filter values
(input values) and I swept the frequency via game paddles. I ran
sound output into an old tape deck with analog VU metiers conveniently
calibrated in Db. I was able to plot some crude frequency responses
for the SID filters. You have to be a bit creative in synthesizing
SID waveforms to test at the higher frequencies. This was all easy to
do using COMAL. However, I think Chris just wants a simple pass/fail
SID filter test.

Alan

Chrom_

unread,
Jun 25, 2009, 3:27:13 AM6/25/09
to
So no BASIC code that anyone remembers?

I think it becomes quite tricky to do that without a sequencer. Is
there any specifical program that you know that tests filters?

Mauro

Greg King

unread,
Jul 4, 2009, 6:02:48 PM7/4/09
to
"Chrom_" wrote...
>
> So, no BASIC code that anyone remembers?

> I think it becomes quite tricky to do that without a sequencer.
> Is there any specific program that you know that tests filters?

10 poke54296,15+32 :rem filters: +16=low-pass, +32=band-pass, +64=high-pass
20 forv=1to3:print:print"voice";v:forl=54272to54295:pokel,0:next
30 onvgosub80,90,100:pokehf,15:pokelf,35:pokehp,8:pokelp,0:pokea,9:pokes,128
40 pokew,65:poke54295,2^(v-1)+128:forp=0to1
50 forf=0to2047step9:gosub70:next:forf=2047to0step-9:gosub70:next:next:next
60 forl=54272to54296:pokel,0:next:end
70 printf;"{left} {up}":poke54294,f/8:poke54293,fand7:return
80 w=54276:a=54277:s=54278:hf=54273:lf=54272:hp=54275:lp=54274:return
90 w=54283:a=54284:s=54285:hf=54280:lf=54279:hp=54282:lp=54281:return
100 w=54290:a=54291:s=54292:hf=54287:lf=54286:hp=54289:lp=54288:return

Chrom_

unread,
Jul 16, 2009, 1:20:31 PM7/16/09
to
Amazing, thank you!

On Jul 5, 12:02 am, "Greg King" <greg.ki...@verizon.net> wrote:
> 10 poke54296,15+32 :rem filters:  +16=low-pass, +32=band-pass, +64=high-pass

[snip...]

Chrom_

unread,
Jul 17, 2009, 6:08:53 PM7/17/09
to
Just in case someone else is interested in this topic, but is too lazy
to copy the basic programs, I've made a d64 image with a basic SID 3
voices test (by Ray Carlsen), and the 3 versions (one for each filter
to test) of the program that Greg King brilliantly suggested.

I've posted the file on comp.binaries.cbm (I wanted to post it here,
uuencoded, because it's just 1k, but then I decided not to force
rules).

Regards,
Mauro

Cameron Kaiser

unread,
Jul 18, 2009, 12:38:02 AM7/18/09
to
Chrom_ <mauro...@gmail.com> writes:

It seems the filter has eaten it (see the mini FAQ). If you're not sure,
send me the uuencoded post in E-mail and I'll force it through on your
behalf.

--
Cameron Kaiser * cka...@floodgap.com * posting with a Commodore 128
personal page: http://www.cameronkaiser.com/
** Computer Workshops: games, productivity software and more for C64/128! **
** http://www.armory.com/%7Espectre/cwi/ **

0 new messages