![]() ![]() #USB AUDIO DRIVER STACKEXCHANGE DRIVERS#Games use a collection of per-card drivers to talk to the appropriate hardware interface of the sound card, such as one of the Sound Blaster interface tiers, or the Gravis Ultrasound wavetable. Exotic cards may need memory-resident translation layers. Later PNP Sound Blasters (SB16/AWE) and clones may need a driver that performs one-time initialisation. ![]() Real ISA Sound Blaster cards don't need any drivers to initialise or support them. You basically wrote a piece of code that should only give a certain result in the presence of the expected device (fx setting up the on-board timers on the AdLib card), ran it blindly against the conventional or specified I/O addresses and saw what dropped out of the sky. Mainly, detection was based on conventional I/O, IRQ and DMA allocations supplemented by environment variable conventions specifying these configuration points. It is possible that some devices only monitored a minimal I/O footprint until an init sequence was performed to reduce this risk, but this is not behaviour I recognize from the sound routines I wrote myself for AdLib, Roland MPU-401 MIDI and classic SoundBlaster cards. With no resource management provided by DOS, you would have to detect devices manually which could be a bit tricky and potentially trigger crashes depending on what happened to be installed in the I/O space. Maybe due, in part at least, to the fact that multimedia services were rapidly evolving. In the sound context, however, programs would typically do the device I/O directly by reading and writing I/O ports directly, handling interrupts and DMA transfers when relevant. The typical way to provide "driver" services to other programs in DOS is to run a TSR (Terminate and Stay Resident) program installing a software interrupt vector such that running DOS programs could invoke this INT for services (see Ralph Brown's Interrupt List). ![]()
0 Comments
Leave a Reply. |
Details
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |