so, it is not easy to get my hands on an isa soundcard I can use for testing so I proceeded with what I have for now.
I am using the Atmel 89S51 with the soundblaster 2.02 dsp firmware that TubeTimeUS recovered.
I have the pcmcia enabler working, and the i/o working, so no issue doing dsp version check, , reset, interrupt test etc with sbdiag.exe .
when I request generate sinewave without dma (0F0h) I just get a blip, I am not sure if this is actually implemented fully in the 2.02 code? it certainly could be my absolutely hacked attempt at wiring up the DAC I have close to no idea what I am doing with that, which is why I wanted a known working ISA soundcard I could just attach wires to.
so now when the dsp starts a dma transfer I do an interrupt, and my TSR reads a status flag from the card to know if the interrupt was from IREQUEST or by my DMA emulation, if it was from IREQUEST it just does nothing and calls the normal ISR for the interrupt, if it is from my DMA code it checks the dma register to see location/count to start sending the bytes.
and this is where I am at, trying to get my head around how to do this without a microcontroller, I am only using the DSP and a GAL up until this point. I also have a 8bit fifo chip as I anticipate needing to transfer/store multiple bytes at a time to reduce number of dma emulation interrupt calls.
maybe I should just use a microcontroller. I am doing this as to not have to modify the dsp code, and it is not like I have the ability required to modify that assembly code anyway. not needing modified dsp code also means we could potentially also package this into a PCMCIA->ISA box, you could stick one ISA card in an external enclosure and use any soundcard you have already. maybe a neat idea. i am essentially doing this anyway for testing I think.
and for sure I am going to need help on the analog audio side of this. still hoping if I can have some cobbled together working version it will peak somebodies interest that can do this better.