3

I'm programming my own sound mixing engine and drivers for MS-DOS, but I can't find any documentation for programming for Microsoft Windows Sound System interface sound cards.

Was there any documentation (official or otherwise) for programming Microsoft Windows Sound System sound cards?

I have the AD1848(K) and CS4231(A) chip datasheets by themselves, but they're a little obtuse. I'd prefer something a little more goal-oriented rather than exhaustive :)

What would be ideal is something similar to the Creative Labs Sound Blaster Series Hardware Programming Guide and AWE32/EMU8000 Programmer’s Guide, but for WSS.

I could look at the source code to Allegro, SEAL or Housemarque/MIDAS, which all support WSS, but I want to understand the code from first principles at the port level, not copy blindly.

The only other source of information I've seen has come from a component-by-component breakdown of the PC-98XX range, in Japanese.

--

More info: In Microsoft OEM Briefing: Windows Into The Future, Microsoft gives two names to the WSS documentation: Developers Assistance Kit and MS-DOS Developers Kit. These are both named in MSDN News 1993 Jan, which can be read on Microsoft Developer Network - Disk 4 - Summer 93 - which unfortunately does not contain the DAKs themselves. :(

7
  • 1
    If I get 'Windows Sound -System-' and 'Disney Sound -Source-' mixed up one more time... – knol Oct 9 '20 at 0:35
  • 2
    You could also have a look at the Linux kernel implementation if you get stuck: elixir.bootlin.com/linux/v2.6.32.35/source/sound/isa/cs423x/… and elixir.bootlin.com/linux/v2.6.32.35/source/sound/isa/wss/… seem to be the main parts of the implementation. – occipita Oct 9 '20 at 3:16
  • The data sheets describe the registers on the port level, did you have a look at that? Though you need to know to which x86 port range the direct registers are mappend (which you could see from the various source codes). You also need to understand how the DMA interface is integrated into the x86 (again, source code). Data sheets usually work at this level of "obtuseness", you are supposed to know the rest of the system from other sources. – dirkt Oct 9 '20 at 4:50
  • 1
    @cup - The chips mentioned aren't PSG/FM style waveform generators. They're codec/interface chips similar to the Sound Blaster's DSP. They interface with the ISA bus and request samples through DMA. I know I'll at least need to set the sample rate/period, sample format, and so on like an SB, but I'd rather read a worked example (from MS or elsewhere) than guess and maybe cause damage. – knol Oct 9 '20 at 10:30
  • 1
    Pcem emulates WSS, could be interesting to see. – aybe Oct 9 '20 at 10:51
4

The most accessible Microsoft documentation relating to writing a driver (MS-DOS or otherwise) for the Microsoft Windows Sound System AD-based hardware is MSDN #94396 Windows NT DDK 4.0 Workstation US (01/1997) in the folder /ddk/src/mmedia/sndsys/. It includes a complete reference driver for AD1848-based cards, accessing the ports directly, as expected. It's intended as an example for writing multimedia drivers under Windows NT, but it does show the process of acquiring the card and beginning output.


Microsoft published several tiers of documentation and support for WSS in 1993, including at least the Windows Sound System Driver Development Kit (DDK) (for $450) and the MS-DOS Developers Kit.

Dr. Dobbs carried an advert for them, and Microsoft list it on their history, but I haven't been able to find either of them. It would be ideal if the MS-DOS Kit contained a commented MS-DOS-ready driver with a readme indicating step-by-step minimal examples for startup and configuration, but we won't know until it's found.

The screenshot in Geo...'s answer is of the MSDN Library Archive 1997 disc - a big hypertext WinHelp-style interface with a lot of programming information, and some release notes, bulletins (such as this one marking the release of the DDK) and odds-and-sods. Sometimes it's comprehensive, sometimes it's not. The screenshot itself shows the Windows Sound System Version 2.0 DDK Release Notes that would accompany the DDK, but unfortunately the DDK isn't present on the disc itself. Part of the document is a list of filenames from the sample driver showing their role, so I looked them up to see if anybody had mirrored the DDK on Github or elsewhere.

I found that the names are reused from a precursor to the WSS DDK called the Multimedia Device Development Kit (link to a mirror) which contains driver source code for Adlib and Sound Blaster (and the Pioneer 4200 Videodisc Player surprisingly) for Win 3.1.

By the same method, I found this Introduction to Multimedia Drivers document which comes from the Windows NT DDK, indicating that it has sample drivers including source code for Pro Audio Spectrum 16, Sound Blaster and Windows Sound System.

As linked above, the Windows NT DDKs are a lot easier to find, and they do indeed contain WSS drivers for the AD1848 codec, complete with notes and warnings about when to use the enhanced modes. I'm looking through the rest of the disc to see if there's help files specifically about the card, but this might be as good as it gets. I doubt there's much more about it in the manual (if there was one).


Other references:

Datasheets:

1
  • 1
    Laserdisc support was considered an important part of the early Windows Multimedia APIs. There really wasn't any other way to have decent quality video on a early 90's PC. – user722 Oct 9 '20 at 23:58
1

Back in the days before the interwebs were the sum of all human knowledge, Microsoft used to supply documentation to MSDN subscribers on funny little plastic discs, affectionately known as 'CDs'. I think sometime around 97 or 98 they published the "Library Archive" as a final, last hurrah, for outdated technical documentation.

MSDN Library Archive CD-ROM

According to the fold:

This Library Archive CD contains older, static, content taken from the regular MSDN Library to give us more space for new and updated content. The Library Archive CD provides samples, technical articles, documentation, specs, utilities and more for development based on pre-Windows 95 technologies.

I installed the library on my Windows 98 box and did a quick search, which turned up the following:

enter image description here

This (to me) looks like the information you are looking for, you might try searching the net for an ISO of the Library Archive (mine requires my old 10 digit MSDN key to install, so there is another barrier), or maybe the DDK docs are out there somewhere as PDF's.

EDIT

10 seconds after posting this, I did a quick google and derp, it looks like the Internet Archive to the rescue

MSDN Library Archive CD-ROM (1998)

12
  • Thank you for the lead :) - I did see mention of the DDK when I searched but only in the article Q124210 which suggested that it -wouldn't- be on some CDs and had to be ordered separately. I'll try tracking it down. – knol Oct 9 '20 at 12:12
  • Oh snap. archive.org/details/MSDN_Library_Archive_1998 – Geo... Oct 9 '20 at 12:12
  • Aye, it just remains to be seen if it'll let me in when I get it, and if it'll have info on both WSS 1.0 (the sound card architecture based on the AD1848) as well as the WSS 2.0 page you found (which is an API layer for Windows that can abstract other cards including WSS 1.0 cards if I'm reading it right). – knol Oct 9 '20 at 12:35
  • Also, maybe this? winworldpc.com/product/microsoft-windows-sound-system/10 – Geo... Oct 9 '20 at 13:06
  • That is unfortunately just a driver for Windows 3.1 as far as I can tell. No programming info in there. – knol Oct 9 '20 at 13:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.