VOGONS


First post, by Bondi

User metadata
Rank Oldbie
Rank
Oldbie

I. There is a sound card built in IBM Thinkpad 755c laptop. It's a card based on Crystal Semiconductor CS4248 chip, it has no SB native support, requires DOS drivers - TPAUDDD.SYS, and works in DOS with it's proprietary audio playback program - PCDEMO.EXE.
It comes also with VDD (Virtual Device Driver) driver SVAUDIO.EXE, that adds some SB/Adlib/GM compatibiliy to it. Wolf3d detects SB/Adlib card if it's loaded. Some other games work as well, but only the real mode games that do not require DMA.
More info about the card in Audio sectoin here http://home.icequake.net/~nemesis/linuxlaptop … m/thinkpad755c/

II. There is the IBM PCMCIA 16-bit audio adapter (NOT the 3d sound card) that has no DOS support except for the audio software that comes with it - same PCDEMO.EXE, it requires only it's PCAUDDD.SYS driver, works without Card and Socket Services.

These two cards appear to be very similar. The PCDEMO.EXE program that comes with both cards looks identical (one is just 16 bytes bigger than the other), and both work fine with both PCMCIA and built in card, play midi as well as wav files.
So my idea was to try if the PCMCIA card can work with SVAUDIO.EXE driver to add compatibility in games.
I took a laptop without any sound built in, installed the PCMCIA card, loaded it's driver and SVAUDIO.EXE driver. It loaded fine. SVAUDIO actually checks if the card's driver is installed. And refuses to load if it's missing. So PCAUDDD.SYS (that comes with PCMCIA) was okay for SVAUDIO.
There is definitely some level of compatibility here. More to that in Wolf3d SB is detected and can be selected. But there is no sound. The game runs fine.
So briefly:
Builtin card - TPAUDDD.SYS+SVAUDIO.EXE=OK (SB detected, sound works in Wolf)
Builtin card - TPAUDDD.SYS+PCDEMO.EXE =OK
PCMCIA card - PCAUDDD.SYS+PCDEMO.EXE = OK
PCMCIA card - PCAUDDD.SYS+SVAUDIO.EXE=FAIL (SB is detected, NO sound in Wolf)

I'm now stuck at this point. There is not much I can change in this setup, only the IRQ (5,10,11,15) for the card - no effect.
I also tried loading CS and SS - nothing changes.
I don't know if it adds something, but found this mention of SVAUDIO.EXE - “emulation” drive for DOS being a full blown 386 protected mode “TSR” which then runs DOS in Virtual 8086 mode. It appears to try to trap certain memory access. It does not appear to try to trap I/O port accesses.
I'm not an expert unfortunately, so I'm not sure that it's about memory or I/O ports addressing, or anything else. Disassembling SVAUDIO.EXE is far beyound my knowledge.
Any Ideas if it's workable at all? And which direction to dig in?

PCMCIA Sound Cards chart
archive.org: PCMCIA software, manuals, drivers

Reply 1 of 2, by bakemono

User metadata
Rank Oldbie
Rank
Oldbie

I always wondered how the 755c audio compared with the PCMCIA audio. Playing MIDI files using the PCDEMO program sounded like they were both using the same (rather strange) instrument set. Running Adlib-compatible DOS games on the 755c used a similarly unusual synthesizer that sounded nothing like OPL2.

There is a datasheet for the CS4232 which says it is compatible with the chip you mentioned except for 16 new registers that can be enabled for additional Windows Sound System functionality. ftp://ftp.alsa-project.org/pub/manuals/cirrus/4232.pdf

But the chip has no built-in synthesizer, it has an option to connect an external one (including real OPL3). The page you linked says there is no synthesizer connected and that it must be emulated in software.

Playing back MIDI on the PCMCIA card under Windows definitely uses software synthesis but it sounds completely different than the DOS program.

In any case, I suspect the PCMCIA card is using a different chip entirely. Because the driver does port I/O at 25x and 34x, and all the 34x accesses are word width, whereas the CS4232 datasheet shows all registers being 8-bit.

The 755c apparently has DMA also. I believe the PCMCIA card has no DMA, and does all audio I/O using interrupts that then fill a FIFO.

Reply 2 of 2, by Bondi

User metadata
Rank Oldbie
Rank
Oldbie

Frankly, I still think it's the same chip. In both PCDEMO and TPDEMO there are exactly the same recording settings, that are supported by the CS4248 chip (which is register compatible with AD1848 chip). Unless they used two different chips with exactly same capabilities, sampling rates and bit rates. Which I doubt.
As for the I/O ports that you mentioned, I guess these are not actually port addresses, but memory addresses. Here is quote from help file:
The Audio Adapter requires the exclusive use of the memory from 250-25F and 340-347
Regarding the MIDI or FM synthesis - there is no hardware FM in both cards. Everything is done by software. Midi files sound exactly the same on both cards, and indeed sound weird, as you mentioned 😀
So logically it's the driver TPAUDDD.SYS/PCAUDDD.SYS that is responsible for software FM.
And SVAUDIO somehow redirects the game sounds to the software FM.
As for the DMA - I'm not sure, but DMA setting is not present in ps2 (IBM setup) program. And also it's not used anyhow in games. Besides, FM does not need DMA at all.

PCMCIA Sound Cards chart
archive.org: PCMCIA software, manuals, drivers