• Please review our updated Terms and Rules here

Tandy Sound Compatible PCB

Has anyone tested out the mute circuit yet? Life got a little busy for me the past few weeks, I haven't had any time for hobbies.

If not, I'll take another look at it this week.
 
I don't have the proper parts ATM, and i've been busier actually patching games to make this card more useful. And real life gets in the way here and there.
 
I don't have the proper parts ATM, and i've been busier actually patching games to make this card more useful. And real life gets in the way here and there.

No worries. I mostly just wanted to be sure I hadn't missed any updates or schematic changes in the past month or so.
 
Suggested mute circuit:

Mute-On-Reset-r01.JPG


*CS-PSG goes to '688 pin 19; *MUTE goes to SN76 pin 9 (which should be removed from the socket).

James, does pin 9 really need to be removed from socket? It seems unconnected on my board, I have already jumpered to the back of it.

Also, is this a new LS74 chip (IC8) or am I connecting to the existing LS74?
 
Having some fun with my card...
NewRisingSun made a special patch for DOSBox, which allows you to capture Tandy/PCjr music: https://vgmrips.net/forum/viewtopic.php?f=3&t=2585
Naturally we would capture Rob Hubbard's stuff first, so Skate or Die it is.

I've been refining my VGM player, to make it as fast as possible on an 8088, so it can also handle samples.
I've arrived at a system where I first preprocess the data into a stream that can be fed directly to the PIT and the SN76489, which can be done from a simple interrupt handler.
The PIT values are especially interesting, since you basically have no fixed frequency in your data. The handler just programs the next interrupt to happen whenever the next data needs to be sent to the SN76489. That is the only way to play VGMs with samples in them, because the data rate changes all the time (the same approach would probably also work very well for MIDI data).
I've integrated this system with my earlier streaming player that I did for PC speaker/Covox PCM data.
Now it can stream preprocessed VGM data from disk (capturing 1:30 of Skate or Die music amounted to about 1.2MB of VGM data, and 1.5MB of preprocessed data):

Only problem here is that I put the card in a machine that only has floppy drives, and the floppy can't quite keep up at times.
But as you can hopefully hear, whenever the data arrives in memory on time (with a decent HDD that should be all the time), the music plays back perfectly on the card.
 
only *MUTE.

Allrighty, I think I have this all set up.

It's not muting, and it's causing the startup noise to persist into the general audio, vgmplay no longer resets the chip fully there's somewhat garbled music and the persistent low-level buzz at the same time.

Double-checking my wiring.

ISA Reset is pin B2 on the ISA bus, right?
 
Sorry I missed this. Thanks for testing. Yes RESET is B2, which is the second contact closest to the slot bracket on the solder side.
 
0VNm5on.jpg


This is what I wired. No capacitors on vcc connections, supplied from breadboard 5v power supply.

I'll get an audio recording up. It's not working, and causes the boot static to appear even after vgmplay playback has started.

I'll try a different SN76489AN chip as well, and get a recording.

Any advice on test points for this?
 
Last edited:
Allrighty looks like I had a bad tandy sound chip; replaced and it's behaving like normal.

The mute circuit still isn't working, but vgmplay sounds normal and clears the background buzz like it used to.
 
How much more difficult/costly would it be to just put ROM on there?
With a ROM we know for sure that we can shut up the chip when the PC boots.
And while it may be a bit of 'overkill' to use a ROM just for 4 volume commands... you have another card where you can put a ROM in your system!
Some people put a network card in their system for just that reason.
The ROM can be optional, you could still just put sndoff.com in your autoexec.bat.
 
How much more difficult/costly would it be to just put ROM on there?
With a ROM we know for sure that we can shut up the chip when the PC boots.
And while it may be a bit of 'overkill' to use a ROM just for 4 volume commands... you have another card where you can put a ROM in your system!
Some people put a network card in their system for just that reason.
The ROM can be optional, you could still just put sndoff.com in your autoexec.bat.

That may be the easiest way. I've already tested that, in fact, using my xi8088 and a slightly modified bios, so we know it works pretty well.

The problem would be that it might not simply "work", considering the array of options there are for tandy sound chip addressing. It'd also consume yet another XXKb window in the ROM address area.

A physical cut in the output line would be a better option IMO.
 
The problem would be that it might not simply "work", considering the array of options there are for tandy sound chip addressing.

Well, we only have 3 options.
And only one option would be 'dangerous', I think: writing to C0, if there is a DMA controller there.
1E0h and 2C0h should be pretty safe to write to.
And we can be reasonably sure that we run on an AT, we can detect the second DMA controller. C0h would be the start address.
We could try to write a start address and read it back. if that is successful, then clearly the Tandy card is not there, so don't write the volume commands to that port.
1E0h should always be safe. So the BIOS could always write to that.
2C0h... no idea, the only thing I see on ports.lst is some AST clock.
Perhaps we can detect that as well... or just not care :) If you happen to have a rare case where the BIOS causes issues, just pull out the chip, and live with the noise until SNDOFF.COM runs.
 
Well, we only have 3 options.
And only one option would be 'dangerous', I think: writing to C0, if there is a DMA controller there.
1E0h and 2C0h should be pretty safe to write to.
And we can be reasonably sure that we run on an AT, we can detect the second DMA controller. C0h would be the start address.
We could try to write a start address and read it back. if that is successful, then clearly the Tandy card is not there, so don't write the volume commands to that port.
1E0h should always be safe. So the BIOS could always write to that.
2C0h... no idea, the only thing I see on ports.lst is some AST clock.
Perhaps we can detect that as well... or just not care :) If you happen to have a rare case where the BIOS causes issues, just pull out the chip, and live with the noise until SNDOFF.COM runs.

I actually thought James was going to allow arbitrary addressing and expose all the port selection options, which means it could be a pretty broad array.

I can't recall for sure, and 50 pages is a lot to look through.

PCB relays don't seem to be very expensive, a ROM would probably require just about as many additional ICs for support. A rom would be a more "Tandy" way to do it, considering that's how the real 1000-series handle it.

I wonder if a PIC could sit on the board directly connected to the appropriate SN76-series pins and simply output the mute command directly? I feel like that's something a PIC could do, but I don't really know for sure not knowing much about electronics.
 
PCB relays don't seem to be very expensive

Yes, that would be a nice way to do it, but how do you control it?
Ideally you'd want something that always gives you a 0 when you power up the machine, and goes to 1 as soon as a command is written to the chip. Perhaps it should be triggered on the READY line coming back from the SN76489? That is, as soon as the chip responds to the machine, the relay will switch on, and stay on, until the machine is reset.
 
Yes, that would be a nice way to do it, but how do you control it?
Ideally you'd want something that always gives you a 0 when you power up the machine, and goes to 1 as soon as a command is written to the chip. Perhaps it should be triggered on the READY line coming back from the SN76489? That is, as soon as the chip responds to the machine, the relay will switch on, and stay on, until the machine is reset.

I was thinking we'd just tie the PIC directly into the CE/D0-D7 traces on the PCB, but now that I think about it that might corrupt valid data on the ISA bus...
 
Back
Top