PDA

View Full Version : ISA soundcards DMA channels why 8-bit and 16-bit?



JT64
November 14th, 2008, 01:06 AM
In short: Do ISA soundcards that support 8-bit DMA transfer will work in 8-bit isa slots.

The longer question is, "If cards with 8-bit DMA support do not work in 8-bit isa slots what was the 8-bit DMA support used for?"
I suspect the answer have to do with adlib compatbility, or similar.

JT

Trixter
November 14th, 2008, 09:10 AM
Your question doesn't make sense... Cards with 8-bit DMA support most definitely work in 8-bit ISA slots, so what is your question again? Is there some background that is missing from this question?

Chuck(G)
November 14th, 2008, 09:49 AM
I suspect that it depends on the card. Some 16-bit ISA cards were clearly 8-bit implementations with the 16-bit part being only the added device.

I suspect (but am not certain) that cards such as the PAS 16 fall into that category, where the SCSI part is the 16-bit part, as the sound portion has no capability for 16-bit DMA and generates IRQs only in the lower 8.

I've got another 16-bit ISA card in front of me, where it's very clear from the PCB traces that the upper 8 bits of the 16-bit bus go to the IDE controller on the board and not to the OPTI sound chip.

But this may do you no good anyway, as the "added device" drivers are included in the sound drivers and will abort their load if a 16-bit slot isn't detected.

So YMMV.

Great Hierophant
November 16th, 2008, 09:13 PM
I suspect that it depends on the card. Some 16-bit ISA cards were clearly 8-bit implementations with the 16-bit part being only the added device.

I suspect (but am not certain) that cards such as the PAS 16 fall into that category, where the SCSI part is the 16-bit part, as the sound portion has no capability for 16-bit DMA and generates IRQs only in the lower 8.

I've got another 16-bit ISA card in front of me, where it's very clear from the PCB traces that the upper 8 bits of the 16-bit bus go to the IDE controller on the board and not to the OPTI sound chip.

But this may do you no good anyway, as the "added device" drivers are included in the sound drivers and will abort their load if a 16-bit slot isn't detected.

So YMMV.

The PAS 16 and PAS Plus use the 16-bit data bus because those cards process sound data in 8, 12 or 16 bits (and the 16-bit data lines go directly to the MVD-101 chip.) The SCSI chip is the exact same one as was used in the 8-bit PAS and boasts only 690K/sec, weak for a 16-bit controller. Media Vision identified all virtually all IRQ and DMA channels present as 16-bit ISA bus lines as valid IRQ and DMA channels. However, the PAS does not care which DMA channel it uses, so I guess it does not have 16-bit DMA capability.

Device drivers for 16-bit cards are likely to be compiled using 286 or above instructions. Interface drivers are usually separate from sound card drivers, so you may get one to work in an 8-bit system.

Chuck(G)
November 16th, 2008, 10:22 PM
The PAS 16 and PAS Plus use the 16-bit data bus because those cards process sound data in 8, 12 or 16 bits (and the 16-bit data lines go directly to the MVD-101 chip.) The SCSI chip is the exact same one as was used in the 8-bit PAS and boasts only 690K/sec, weak for a 16-bit controller. Media Vision identified all virtually all IRQ and DMA channels present as 16-bit ISA bus lines as valid IRQ and DMA channels. However, the PAS does not care which DMA channel it uses, so I guess it does not have 16-bit DMA capability.

Device drivers for 16-bit cards are likely to be compiled using 286 or above instructions. Interface drivers are usually separate from sound card drivers, so you may get one to work in an 8-bit system.

Thanks for the clarification; I didn't have the PAS 16 in front of me, but I did recall that only 8 bit DMA was supported.

OTOH, the OPTI card I have here definitely does not have the upper 8 bits of the bus connected to the sound chip.

As far as 286 instructions go, there's always the V20 cheat.

Great Hierophant
November 18th, 2008, 08:02 PM
Actually, I think this could be more clear:


However, the PAS does not care which DMA channel it uses, so I guess it does not have 16-bit DMA capability

All DMA channels, whether the bus is XT/8-bit or AT/16-bit have the capability to perform 16-bit data transfers, but as the DMA controller is an 8-bit device, the 16-bit transfer will take longer.

Chuck(G)
November 18th, 2008, 09:28 PM
Actually, I think this could be more clear:

All DMA channels, whether the bus is XT/8-bit or AT/16-bit have the capability to perform 16-bit data transfers, but as the DMA controller is an 8-bit device, the 16-bit transfer will take longer.

Come again? :?

The lower (8 bit) DMA channels transfer one byte per DMA cycle and index the memory address by 1. Transfers can begin on even or odd byte boundaries. The maximum size of a transfer is 65536 bytes and a transfer may not cross a 64KB physical address boundary without "wrapping" around to the beginning of the block.

The upper (16 bit) DMA channels transfer one word per DMA cycle and index the memory address by 2 (by virtue of being connected offset by one bit to the address bus). The maximum size of a transfer is 65536 words. Transfers can start on even byte boundaries only. A transfer may not cross a 128KB physical address boundary without wrapping.

As no data actually passes through the DMA controller, it matters not a whit if it's an 8 bit device or not. It only serves to generate addresses and read/write signals and keep count.

An 8237 could be just as easily rigged to transfer 32-bit doublewords, starting on a doubleword boundary with a limit of 65536 doublewords.

Great Hierophant
November 19th, 2008, 05:24 AM
Come again? :?

The lower (8 bit) DMA channels transfer one byte per DMA cycle and index the memory address by 1. Transfers can begin on even or odd byte boundaries. The maximum size of a transfer is 65536 bytes and a transfer may not cross a 64KB physical address boundary without "wrapping" around to the beginning of the block.

The upper (16 bit) DMA channels transfer one word per DMA cycle and index the memory address by 2 (by virtue of being connected offset by one bit to the address bus). The maximum size of a transfer is 65536 words. Transfers can start on even byte boundaries only. A transfer may not cross a 128KB physical address boundary without wrapping.

As no data actually passes through the DMA controller, it matters not a whit if it's an 8 bit device or not. It only serves to generate addresses and read/write signals and keep count.

An 8237 could be just as easily rigged to transfer 32-bit doublewords, starting on a doubleword boundary with a limit of 65536 doublewords.

Thank you for a clearer explanation of DMA channels. Apparently, the PAS16 will deal with 16-bit audio even if it is assigned to use an 8-bit DMA channel (and the opposite is also true), whereas most 16-bit Sound Blasters will not. However, as 16-bit audio tends to be larger than 8-bit, it would be advisable to use a 16-bit DMA channel on the PAS16 for better performance.

Chuck(G)
November 19th, 2008, 10:15 AM
Thank you for a clearer explanation of DMA channels. Apparently, the PAS16 will deal with 16-bit audio even if it is assigned to use an 8-bit DMA channel (and the opposite is also true), whereas most 16-bit Sound Blasters will not. However, as 16-bit audio tends to be larger than 8-bit, it would be advisable to use a 16-bit DMA channel on the PAS16 for better performance.

I think that you're saying that the size of the audio quantum isn't an issue (it could be 32 or 64 bits just as well). But if a device supports transfers on the 8 bit DMA channels, there's no reason that it shouldn't support 8-bit PIO transfers as well, no?