I categorized each thing the software must do, such as setting resource configurations and mixers stuff and came up with an easy no fuzz way to adjust them. How to talk to hardware itself came from the datashits of Yamaha, datasheets of Analog Devices and Crystal (to get WSS side going) and various SB and MIDI docs I have found. Yamaha's stuff is very poor and doesn't give a lot of info, but at least you know what exists and what you got to poke to get somewhere, rest was experimentation very much. Sound Blaster and MPU-401 sides were easy, lot of documentation on them and things work exactly as expected.
For example the PnP EEPROM reading and writing took a while to figure out totally. Apparently you can only read the EEPROM as part of PnP dance, while you can write it anytime, however the write mechanism is actually write only with no sort of busy state check etc. possible so I had to create a time waster between writes that worked on 286 to my C2D without hampering both ends too much. The card and software should work even on a 8086 as the software uses no instructions above the 8086 and the card will work in 8bit ISA slots also (but DMA0 and IRQ10 and 11 are unavailable then). I actually discovered that using a DMA that the hardware doesn't have or manually disconnecting the signals causes the card to fail in some way, it absolutely doesn't like floating DMA ACK inputs and it seems to interfere with the initialization process and normal operation.
Software is written in QB 4.5, very easy to write and debug and I'm one of those people who absolutely cannot stand C and likenesses and some of the functions are written in assembly such as interrupt handlers and few DOS specific things that QB cannot provide on its own. My life would have been lot easier if there was means to get segment/offset of labels or functions in QB but that's not gonna happen 🤣. My first choice would have been FreeBASIC but it can only do pmode and I think it generates code that won't work on any 386 or 486, only Pentium and up.
There currently is one card for really cheap on the one known auction site.
firage wrote:I think good reviews and third party comparisons of the prototypes will raise the profile of the project some going forward. Would love to see this finished as a fully polished product for all to purchase.
I haven't done a whole lot to create awareness, that's something that could have been improved.
The design is now pretty much finalized with the exception of IO ports placement and type due to bracket difficulties. It is a problem that continues to haunt with other stuff too like the video card I want to make.
There's still the 486 bug that I have not managed to figure out either, I spent a month on it and got pretty demotivated for a while which delayed the unveil for quite a bit. It happens with -some- random YMF71x cards also, but I haven't managed to make my card not fail or those functional cards fail, moving chips doesn't move the problem, nor does changing ISA speed or wait states. Even removing all the custom stuff from the card doesn't make a difference. If I had an actual logic analyzer perhaps only then I can get somewhere, but such a thing is in the to buy list and there's time until I can.